From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH 3/5] drm/amdgpu: Avoid to use SOC15_REG_OFFSET in static const array Date: Fri, 1 Dec 2017 09:20:01 +0100 Message-ID: References: <1511982590-8745-1-git-send-email-Shaoyun.Liu@amd.com> <7053a3c3-6206-92e9-5e7d-af0bbf4a7550@gmail.com> Reply-To: christian.koenig-5C7GfCeVMHo@public.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-US List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: "Liu, Shaoyun" , "Koenig, Christian" , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" PiBzdGF0aWMgY29uc3Qgc3RydWN0IGFtZGdwdV9yaW5nX2Z1bmNzIHV2ZF92N18wX3Jpbmdfdm1f ZnVuY3MgPSB7Cj4gICAgICAJLnR5cGUgPSBBTURHUFVfUklOR19UWVBFX1VWRCwKPiAgICAgIAku YWxpZ25fbWFzayA9IDB4ZiwKPiAJLm5vcCA9IFBBQ0tFVDAoU09DMTVfUkVHX09GRlNFVChVVkQs IDAsIG1tVVZEX05PX09QKSwgMCksClRoYXQgb25lIGlzIHRyaXZpYWwuIFRoZXJlIGlzIGFuIC5p bnNlcnRfbm9wIGNhbGxiYWNrIGEgYml0IGZ1cnRoZXIgZG93bjoKPiAuaW5zZXJ0X25vcCA9IGFt ZGdwdV9yaW5nX2luc2VydF9ub3AsCgpXaGVuIHlvdSBvdmVycmlkZSB0aGlzIHRoZSAubm9wIG1l bWJlciBpc24ndCB1c2VkIGFueSBtb3JlLiBTZWUgCmFtZGdwdV9yaW5nX2luc2VydF9ub3AoKSBh cyB3ZWxsLgoKPiBIb3cgdG8gY2hhbmdlIHRoZSBTT0MxNV9SRUdfT0ZGU0VUIHVzZWQgaW4gdGhl IGZvbGxvd2luZyAgY2FzZSA6Cj4gY29uc3Qgc3RydWN0IG5iaW9faGRwX2ZsdXNoX3JlZyBuYmlv X3Y3XzBfaGRwX2ZsdXNoX3JlZyA9IHsKPiAJLmhkcF9mbHVzaF9yZXFfb2Zmc2V0ID0gU09DMTVf UkVHX09GRlNFVChOQklPLCAwLCBtbUdQVV9IRFBfRkxVU0hfUkVRKSwKPiAJLmhkcF9mbHVzaF9k b25lX29mZnNldCA9IFNPQzE1X1JFR19PRkZTRVQoTkJJTywgMCwgbW1HUFVfSERQX0ZMVVNIX0RP TkUpLAo+IC4uLgpUaGF0IG9uZSBsb29rcyBtb3JlIHRyaWNreSwgYnV0IHByb2JhYmx5IGRvYWJs ZSBhcyB3ZWxsLgoKQW5kIHRha2luZyBhIGxvb2sgYXQgaG93IHRoaXMgaXMgdXNlZCBpbiBnZnhf djlfMF9yaW5nX2VtaXRfaGRwX2ZsdXNoKCkgCmZvciBleGFtcGxlOgo+IMKgwqDCoMKgwqDCoMKg IGlmIChyaW5nLT5hZGV2LT5mbGFncyAmIEFNRF9JU19BUFUpCj4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIG5iaW9faGZfcmVnID0gJm5iaW9fdjdfMF9oZHBfZmx1c2hfcmVnOwo+IMKg wqDCoMKgwqDCoMKgIGVsc2UKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbmJpb19o Zl9yZWcgPSAmbmJpb192Nl8xX2hkcF9mbHVzaF9yZWc7Ci4uLgoKVGhhdCBsb29rcyBsaWtlIGEg Z29vZCBjYW5kaWRhdGUgZm9yIGEgY2xlYW51cCBhbnl3YXkuCgpQcm9iYWJseSBiZXN0IGFwcHJv YWNoIGlzIHRvIHB1dCBzb21lIGhkcF9mdW5jcyBpbnRvIGFkZXYuIFRoaXMgY2FuIHRoZW4gCmJl IHVzZWQgdG8gY2xlYW51cCBzaW1pbGFyIGNvZGUgaW4gdGhlIGdtY192OV8wLmMgYXMgd2VsbDoK PiDCoMKgwqDCoMKgwqDCoCAvKiBBZnRlciBIRFAgaXMgaW5pdGlhbGl6ZWQsIGZsdXNoIEhEUC4q Lwo+IMKgwqDCoMKgwqDCoMKgIGlmIChhZGV2LT5mbGFncyAmIEFNRF9JU19BUFUpCj4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG5iaW9fdjdfMF9oZHBfZmx1c2goYWRldik7Cj4gwqDC oMKgwqDCoMKgwqAgZWxzZQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBuYmlvX3Y2 XzFfaGRwX2ZsdXNoKGFkZXYpOwoKVGhhbmtzIGZvciB0YWtpbmcgY2FyZSBvZiB0aGlzLApDaHJp c3RpYW4uCgpBbSAzMC4xMS4yMDE3IHVtIDIyOjE3IHNjaHJpZWIgTGl1LCBTaGFveXVuOgo+IE9r ICwgIEkgIHRoaW5rIGNhbiBtYWtlIHRoZSBjaGFuZ2UgLiBJdCBpbnZvbHZlZCBsb2dpYyBjaGFu Z2UgLCBwbGVhc2UgY2FyZWZ1bGx5IHJldmlldyBpdCAuCj4KPiBIb3cgdG8gY2hhbmdlIHRoZSBT T0MxNV9SRUdfT0ZGU0VUIHVzZWQgaW4gdGhlIGZvbGxvd2luZyAgY2FzZSA6Cj4gY29uc3Qgc3Ry dWN0IG5iaW9faGRwX2ZsdXNoX3JlZyBuYmlvX3Y3XzBfaGRwX2ZsdXNoX3JlZyA9IHsKPiAJLmhk cF9mbHVzaF9yZXFfb2Zmc2V0ID0gU09DMTVfUkVHX09GRlNFVChOQklPLCAwLCBtbUdQVV9IRFBf RkxVU0hfUkVRKSwKPiAJLmhkcF9mbHVzaF9kb25lX29mZnNldCA9IFNPQzE1X1JFR19PRkZTRVQo TkJJTywgMCwgbW1HUFVfSERQX0ZMVVNIX0RPTkUpLAo+IC4uLgo+IAkKPgo+IGFuZCBzaW1pbGFy IDoKPiBzdGF0aWMgY29uc3Qgc3RydWN0IGFtZGdwdV9yaW5nX2Z1bmNzIHV2ZF92N18wX3Jpbmdf dm1fZnVuY3MgPSB7Cj4gICAgICAJLnR5cGUgPSBBTURHUFVfUklOR19UWVBFX1VWRCwKPiAgICAg IAkuYWxpZ25fbWFzayA9IDB4ZiwKPiAJLm5vcCA9IFBBQ0tFVDAoU09DMTVfUkVHX09GRlNFVChV VkQsIDAsIG1tVVZEX05PX09QKSwgMCksCj4gLi4uCj4KPiBDYW4gd2UgYXZvaWQgdXNlIGZpeGVk ICBJUF9CQVNFX0lOU1QqX1NFRyogICsgbW1SZWcgIGZvciB0aGVtID8KPgo+IFJlZ2FyZHMKPiBT aGFveXVuLmxpdQo+Cj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPiBGcm9tOiBLb2VuaWcs IENocmlzdGlhbgo+IFNlbnQ6IFRodXJzZGF5LCBOb3ZlbWJlciAzMCwgMjAxNyAzOjAwIFBNCj4g VG86IExpdSwgU2hhb3l1bjsgYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBTdWJqZWN0 OiBSZTogW1BBVENIIDMvNV0gZHJtL2FtZGdwdTogQXZvaWQgdG8gdXNlIFNPQzE1X1JFR19PRkZT RVQgaW4gc3RhdGljIGNvbnN0IGFycmF5Cj4KPj4gTGlrZSBzdGF0aWMgY29uc3Qgc3RydWN0IGFt ZGdwdV9nZHNfcmVnX29mZnNldCBhbWRncHVfZ2RzX3JlZ19vZmZzZXRbXQo+IEFjdHVhbGx5IHRo b3NlIGNvdWxkIGJlIGNvbXBsZXRlbHkgbnVrZWQgaW5zdGVhZC4KPgo+IFdlIGFkZGVkIHRob3Nl IGJlY2F1c2Ugd2UgZmVhcmVkIHRoYXQgdGhlIEdEUyByZWdpc3RlcnMgc2ltaWxhciB0byB0aGUg Vk1JRCBiYXNlIHJlZ2lzdGVycyBhcmVuJ3QgY29udGludW91c2x5IGZvciBvbGRlciBoYXJkd2Fy ZSBnZW5lcmF0aW9ucy4KPgo+IEJ1dCBzb21lYm9keSBqdXN0IGNvcHkgJiBwYXN0ZWQgdGhlIGNv ZGUgZnJvbSBnZng4IG92ZXIgdG8gZ2Z4OSBhbmQgaGVyZSBpdCBkb2Vzbid0IG1ha2UgdG8gbXVj aCBzZW5zZSBhbnkgbW9yZS4KPgo+IFBsZWFzZSBqdXN0IHJlbW92ZSB0aG9zZSBhcnJheXMgYW5k IHJlcGxhY2UgdGhlbSB3aXRoIHJlZ2lzdGVyIG9mZnNldHMgZGlyZWN0bHkgaW4gdGhlIGNvZGUu Cj4KPiBFLmcuIGluc3RlYWQgb2YgYW1kZ3B1X2dkc19yZWdfb2Zmc2V0W3ZtaWRdLm1lbV9iYXNl IHVzZSBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19WTUlEMF9CQVNFKSArIDIgKiB2bWlk LiBldGMuLgo+Cj4gVGhhbmtzLAo+IENocmlzdGlhbi4KPgo+IEFtIDMwLjExLjIwMTcgdW0gMTk6 NTggc2NocmllYiBMaXUsIFNoYW95dW46Cj4+IEkgdGhpbmsgd2hhdCB5b3UgYXJlIHRhbGtpbmcg aXMgdGhlICBnb2xkZW4gc2V0dGluZyByZWdpc3RlcnMgYXMgc3VjaCBhcyAgIGdvbGRlbl9zZXR0 aW5nc19nY185XzBbXSAgIGV0YyAuICBJIGNhbiBjaGFuZ2UgdGhlbSBhcyBzdWdnZXN0ZWQgKFVz ZSAgU09DMTVfUkVHX0dPTERFTl9WQUxVRSAgYW5kIGRlZmluZSBhIHN0cnVjdHVyZSBmb3IgdGhl IGdvbGRlbiByZWdpc3RlciB2YWx1ZXMpLgo+Pgo+PiBUaGVyZSBhcmUgc29tZSBwbGFjZXMgdGhh dCByZXF1aXJlcyBkaXJlY3RseSB1c2UgdGhlIHJlZ2lzdGVyIG9mZnNldCAgaW4gdGhlIGNvbnN0 YW50IGFycmF5IC4gIExpa2UKPj4gICAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfZ2RzX3Jl Z19vZmZzZXQgYW1kZ3B1X2dkc19yZWdfb2Zmc2V0W10KPj4gVGhlIHN0cnVjdHVyZSBhbWRncHVf Z2RzX3JlZ19vZmZzZXQgcmVxdWlyZSBkcml2ZXIgZGlyZWN0bHkgcHV0IHRoZSBvZmZzZXQgaW4g dGhlIGFycmF5IC4gIEl0IHdpbGwgaW50cm9kdWNlIGEgbG90IG90aGVyIHVuLWNsZWFuIGFuZCB1 bm5lY2Vzc2FyeSAgY2hhbmdlcyAgaWYgd2UgY2hhbmdlIHRoZSBzdHJ1Y3R1cmUgLiBGb3IgdGhp cyBraW5kIG9mIGNhc2UgLCBJIHdvdWxkIHJhdGhlciBhZGQgdGhlIGZpeGVkIGJhc2UgICsgcmVn IG9mZnNldCBhcyAgbWVudGlvbmVkIGJlZm9yZSA6ICAgICNkZWZpbmUgIFZHMTBfR0NfQkFTRTBf T0ZGU0VUKHJlZykgICgweDIwMDAgKyByZWcpICwgIHNpbmNlIGFsbCBvZiB0aGVzZSBHRFMgcmVn aXN0ZXIgIGFyZSBiYXNlZCBvbiBzYW1lICBHQ19CQVNFMC4KPj4KPj4gUmVnYXJkcwo+PiBTaGFv eXVuLmxpdQo+Pgo+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+PiBGcm9tOiBDaHJpc3Rp YW4gS8O2bmlnIFttYWlsdG86Y2tvZW5pZy5sZWljaHR6dW1lcmtlbkBnbWFpbC5jb21dCj4+IFNl bnQ6IFRodXJzZGF5LCBOb3ZlbWJlciAzMCwgMjAxNyAzOjQyIEFNCj4+IFRvOiBMaXUsIFNoYW95 dW47IEtvZW5pZywgQ2hyaXN0aWFuOyBhbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+PiBT dWJqZWN0OiBSZTogW1BBVENIIDMvNV0gZHJtL2FtZGdwdTogQXZvaWQgdG8gdXNlIFNPQzE1X1JF R19PRkZTRVQgaW4KPj4gc3RhdGljIGNvbnN0IGFycmF5Cj4+Cj4+IEkgd291bGQgcmF0aGVyIGdv IHdpdGggc29tZXRoaW5nIGxpa2UgdGhpczoKPj4KPj4gI2RlZmluZSBTT0MxNV9SRUdfR09MREVO X1ZBTFVFKGlwLCBpbnN0LCByZWcsIHZhbHVlLCBtYXNrKSB7Cj4+IGlwIyNfSFdJUCwgaW5zdCwg cmVnIyNfQkFTRV9JRFgsIHJlZywgdmFsdWUsIG1hc2sgfQo+Pgo+PiBBbmQgcGxlYXNlIGRlZmlu ZSBhIHN0cnVjdHVyZSBmb3IgdGhlIGdvbGRlbiByZWdpc3RlciB2YWx1ZXMgaW5zdGVhZCBvZiBq dXN0IHVzaW5nIGFuIHUzMiBhcnJheS4KPj4KPj4gUmVnYXJkcywKPj4gQ2hyaXN0aWFuLgo+Pgo+ PiBBbSAyOS4xMS4yMDE3IHVtIDIxOjUyIHNjaHJpZWIgTGl1LCBTaGFveXVuOgo+Pj4gVGhlcmUg YXJlIG90aGVyIHBsYWNlIG9mIHRoZSBnb2xkZW4gcmVnaXN0ZXIgc2V0dGluZyB3aGVyZSBJIGFs cmVhZHkgcmVwbGFjZSB0aGUgU09DMTVfUkVHX09GRlNFVCB3aXRoIFNPQzE1X1JFR19FTlRSWS4g ICBBbGwgdGhlc2UgR0RTIHJlZ2lzdGVyIG9mZnNldCBhcmUgYmFzZWQgb24gR0NfQkFTRTAgKDB4 MjAwMCkgc28gaG93IGFib3V0IEkgdXNlIGZvbGxvd2luZyBkZWZpbmVzCj4+Pgo+Pj4gI2RlZmlu ZSAgVkcxMF9HQ19CQVNFMF9PRkZTRVQocmVnKSAgKDB4MjAwMCArIHJlZykKPj4+Cj4+PiBBbmQg dXNlIGl0IHRvIHJlcGxhY2UgdGhlIFNPQzE1X1JFR19PRkZTRVQgdXNlZCBpbgo+Pj4gYW1kZ3B1 X2dkc19yZWdfb2Zmc2V0W10KPj4+Cj4+PiBSZWdhcmRzCj4+PiBTaGFveXVuLmxpdQo+Pj4KPj4+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4+PiBGcm9tOiBDaHJpc3RpYW4gS8O2bmlnIFtt YWlsdG86Y2tvZW5pZy5sZWljaHR6dW1lcmtlbkBnbWFpbC5jb21dCj4+PiBTZW50OiBXZWRuZXNk YXksIE5vdmVtYmVyIDI5LCAyMDE3IDM6MDggUE0KPj4+IFRvOiBMaXUsIFNoYW95dW47IGFtZC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+PiBTdWJqZWN0OiBSZTogW1BBVENIIDMvNV0gZHJt L2FtZGdwdTogQXZvaWQgdG8gdXNlIFNPQzE1X1JFR19PRkZTRVQgaW4KPj4+IHN0YXRpYyBjb25z dCBhcnJheQo+Pj4KPj4+IEFtIDI5LjExLjIwMTcgdW0gMjA6MDkgc2NocmllYiBTaGFveXVuIExp dToKPj4+PiBDaGFuZ2UtSWQ6IEk1OTgyOGE5YTEwNjUyOTg4ZTIyYjUwZDg3ZGQxZWM5ZGY4YWU3 YTFkCj4+Pj4gU2lnbmVkLW9mZi1ieTogU2hhb3l1biBMaXUgPFNoYW95dW4uTGl1QGFtZC5jb20+ Cj4+Pj4gLS0tCj4+Pj4gICAgICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjlfMC5j ICAgICB8IDI1OSArKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KPj4+PiAgICAgIGRyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192OV8wLmMgICAgIHwgIDE0ICstCj4+Pj4gICAgICBk cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9uYmlvX3Y2XzEuYyAgICB8ICAxMyArLQo+Pj4+ICAg ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbmJpb192N18wLmMgICAgfCAgMTIgKy0KPj4+ PiAgICAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjRfMC5jICAgIHwgIDg4ICsr KysrLS0tLS0KPj4+PiAgICAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NvYzE1LmMgICAg ICAgIHwgIDkzICsrKysrKysrLS0tCj4+Pj4gICAgICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9zb2MxNS5oICAgICAgICB8ICAgNCArCj4+Pj4gICAgICBkcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9zb2MxNV9jb21tb24uaCB8ICAgMyArCj4+Pj4gICAgICBkcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS91dmRfdjdfMC5jICAgICB8ICAgMyArLQo+Pj4+ICAgICAgZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvdmNuX3YxXzAuYyAgICAgfCAgIDIgKy0KPj4+PiAgICAgIDEwIGZpbGVzIGNo YW5nZWQsIDI3OCBpbnNlcnRpb25zKCspLCAyMTMgZGVsZXRpb25zKC0pCj4+Pj4KPj4+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y5XzAuYwo+Pj4+IGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y5XzAuYwo+Pj4+IGluZGV4IDU0OTdlZDYuLmYw NTYwZDIgMTAwNjQ0Cj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y5 XzAuYwo+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92OV8wLmMKPj4+ PiBAQCAtNjcsMTUwICs2NywxNTEgQEAKPj4+PiAgICAgIAo+Pj4+ICAgICAgc3RhdGljIGNvbnN0 IHN0cnVjdCBhbWRncHVfZ2RzX3JlZ19vZmZzZXQgYW1kZ3B1X2dkc19yZWdfb2Zmc2V0W10gPQo+ Pj4+ICAgICAgewo+Pj4+IC0JeyBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19WTUlEMF9C QVNFKSwKPj4+PiAtCSAgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HRFNfVk1JRDBfU0laRSks Cj4+Pj4gLQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX0dXU19WTUlEMCksCj4+Pj4g LQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX09BX1ZNSUQwKSB9LAo+Pj4+IC0JeyBT T0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19WTUlEMV9CQVNFKSwKPj4+PiAtCSAgU09DMTVf UkVHX09GRlNFVChHQywgMCwgbW1HRFNfVk1JRDFfU0laRSksCj4+Pj4gLQkgIFNPQzE1X1JFR19P RkZTRVQoR0MsIDAsIG1tR0RTX0dXU19WTUlEMSksCj4+Pj4gLQkgIFNPQzE1X1JFR19PRkZTRVQo R0MsIDAsIG1tR0RTX09BX1ZNSUQxKSB9LAo+Pj4+IC0JeyBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAw LCBtbUdEU19WTUlEMl9CQVNFKSwKPj4+PiAtCSAgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1H RFNfVk1JRDJfU0laRSksCj4+Pj4gLQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX0dX U19WTUlEMiksCj4+Pj4gLQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX09BX1ZNSUQy KSB9LAo+Pj4+IC0JeyBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19WTUlEM19CQVNFKSwK Pj4+PiAtCSAgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HRFNfVk1JRDNfU0laRSksCj4+Pj4g LQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX0dXU19WTUlEMyksCj4+Pj4gLQkgIFNP QzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX09BX1ZNSUQzKSB9LAo+Pj4+IC0JeyBTT0MxNV9S RUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19WTUlENF9CQVNFKSwKPj4+PiAtCSAgU09DMTVfUkVHX09G RlNFVChHQywgMCwgbW1HRFNfVk1JRDRfU0laRSksCj4+Pj4gLQkgIFNPQzE1X1JFR19PRkZTRVQo R0MsIDAsIG1tR0RTX0dXU19WTUlENCksCj4+Pj4gLQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAs IG1tR0RTX09BX1ZNSUQ0KSB9LAo+Pj4+IC0JeyBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdE U19WTUlENV9CQVNFKSwKPj4+PiAtCSAgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HRFNfVk1J RDVfU0laRSksCj4+Pj4gLQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX0dXU19WTUlE NSksCj4+Pj4gLQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX09BX1ZNSUQ1KSB9LAo+ Pj4+IC0JeyBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19WTUlENl9CQVNFKSwKPj4+PiAt CSAgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HRFNfVk1JRDZfU0laRSksCj4+Pj4gLQkgIFNP QzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX0dXU19WTUlENiksCj4+Pj4gLQkgIFNPQzE1X1JF R19PRkZTRVQoR0MsIDAsIG1tR0RTX09BX1ZNSUQ2KSB9LAo+Pj4+IC0JeyBTT0MxNV9SRUdfT0ZG U0VUKEdDLCAwLCBtbUdEU19WTUlEN19CQVNFKSwKPj4+PiAtCSAgU09DMTVfUkVHX09GRlNFVChH QywgMCwgbW1HRFNfVk1JRDdfU0laRSksCj4+Pj4gLQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAs IG1tR0RTX0dXU19WTUlENyksCj4+Pj4gLQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RT X09BX1ZNSUQ3KSB9LAo+Pj4+IC0JeyBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19WTUlE OF9CQVNFKSwKPj4+PiAtCSAgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HRFNfVk1JRDhfU0la RSksCj4+Pj4gLQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX0dXU19WTUlEOCksCj4+ Pj4gLQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX09BX1ZNSUQ4KSB9LAo+Pj4+IC0J eyBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19WTUlEOV9CQVNFKSwKPj4+PiAtCSAgU09D MTVfUkVHX09GRlNFVChHQywgMCwgbW1HRFNfVk1JRDlfU0laRSksCj4+Pj4gLQkgIFNPQzE1X1JF R19PRkZTRVQoR0MsIDAsIG1tR0RTX0dXU19WTUlEOSksCj4+Pj4gLQkgIFNPQzE1X1JFR19PRkZT RVQoR0MsIDAsIG1tR0RTX09BX1ZNSUQ5KSB9LAo+Pj4+IC0JeyBTT0MxNV9SRUdfT0ZGU0VUKEdD LCAwLCBtbUdEU19WTUlEMTBfQkFTRSksCj4+Pj4gLQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAs IG1tR0RTX1ZNSUQxMF9TSVpFKSwKPj4+PiAtCSAgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1H RFNfR1dTX1ZNSUQxMCksCj4+Pj4gLQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX09B X1ZNSUQxMCkgfSwKPj4+PiAtCXsgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HRFNfVk1JRDEx X0JBU0UpLAo+Pj4+IC0JICBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19WTUlEMTFfU0la RSksCj4+Pj4gLQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX0dXU19WTUlEMTEpLAo+ Pj4+IC0JICBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19PQV9WTUlEMTEpIH0sCj4+Pj4g LQl7IFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX1ZNSUQxMl9CQVNFKSwKPj4+PiAtCSAg U09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HRFNfVk1JRDEyX1NJWkUpLAo+Pj4+IC0JICBTT0Mx NV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19HV1NfVk1JRDEyKSwKPj4+PiAtCSAgU09DMTVfUkVH X09GRlNFVChHQywgMCwgbW1HRFNfT0FfVk1JRDEyKX0sCj4+Pj4gLQl7IFNPQzE1X1JFR19PRkZT RVQoR0MsIDAsIG1tR0RTX1ZNSUQxM19CQVNFKSwKPj4+PiAtCSAgU09DMTVfUkVHX09GRlNFVChH QywgMCwgbW1HRFNfVk1JRDEzX1NJWkUpLAo+Pj4+IC0JICBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAw LCBtbUdEU19HV1NfVk1JRDEzKSwKPj4+PiAtCSAgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1H RFNfT0FfVk1JRDEzKSB9LAo+Pj4+IC0JeyBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19W TUlEMTRfQkFTRSksCj4+Pj4gLQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX1ZNSUQx NF9TSVpFKSwKPj4+PiAtCSAgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HRFNfR1dTX1ZNSUQx NCksCj4+Pj4gLQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX09BX1ZNSUQxNCkgfSwK Pj4+PiAtCXsgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HRFNfVk1JRDE1X0JBU0UpLAo+Pj4+ IC0JICBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19WTUlEMTVfU0laRSksCj4+Pj4gLQkg IFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX0dXU19WTUlEMTUpLAo+Pj4+IC0JICBTT0Mx NV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19PQV9WTUlEMTUpIH0KPj4+PiArCS8qIEZpeCBtZSBp ZiBHQyBiYXNlIGZvciB0aGUgcmVnaXN0ZXIgaXMgbm90IDB4MjAwMCBpbiB0aGUgZnV0dXJlCj4+ Pj4gK2FzaWMgKi8KPj4+IFllYWgsIHdlIG5lZWQgYSBiZXR0ZXIgc29sdXRpb24gZm9yIHRoaXMu Cj4+Pgo+Pj4gSG93IGFib3V0IGEgVkcxMF9HT0xERU5fUkVHIG1hY3JvIG9yIHNvbWV0aGluZyBs aWtlIHRoaXM/Cj4+Pgo+Pj4gUmVnYXJkcywKPj4+IENocmlzdGlhbi4KPj4+Cj4+Pj4gKwl7ICgw eDIwMDAgKyBtbUdEU19WTUlEMF9CQVNFKSwKPj4+PiArCSAgKDB4MjAwMCArIG1tR0RTX1ZNSUQw X1NJWkUpLAo+Pj4+ICsJICAoMHgyMDAwICsgbW1HRFNfR1dTX1ZNSUQwKSwKPj4+PiArCSAgKDB4 MjAwMCArIG1tR0RTX09BX1ZNSUQwKSB9LAo+Pj4+ICsJeyAoMHgyMDAwICsgbW1HRFNfVk1JRDFf QkFTRSksCj4+Pj4gKwkgICgweDIwMDAgKyBtbUdEU19WTUlEMV9TSVpFKSwKPj4+PiArCSAgKDB4 MjAwMCArIG1tR0RTX0dXU19WTUlEMSksCj4+Pj4gKwkgICgweDIwMDAgKyBtbUdEU19PQV9WTUlE MSkgfSwKPj4+PiArCXsgKDB4MjAwMCArIG1tR0RTX1ZNSUQyX0JBU0UpLAo+Pj4+ICsJICAoMHgy MDAwICsgbW1HRFNfVk1JRDJfU0laRSksCj4+Pj4gKwkgICgweDIwMDAgKyBtbUdEU19HV1NfVk1J RDIpLAo+Pj4+ICsJICAoMHgyMDAwICsgbW1HRFNfT0FfVk1JRDIpIH0sCj4+Pj4gKwl7ICgweDIw MDAgKyBtbUdEU19WTUlEM19CQVNFKSwKPj4+PiArCSAgKDB4MjAwMCArIG1tR0RTX1ZNSUQzX1NJ WkUpLAo+Pj4+ICsJICAoMHgyMDAwICsgbW1HRFNfR1dTX1ZNSUQzKSwKPj4+PiArCSAgKDB4MjAw MCArIG1tR0RTX09BX1ZNSUQzKSB9LAo+Pj4+ICsJeyAoMHgyMDAwICsgbW1HRFNfVk1JRDRfQkFT RSksCj4+Pj4gKwkgICgweDIwMDAgKyBtbUdEU19WTUlENF9TSVpFKSwKPj4+PiArCSAgKDB4MjAw MCArIG1tR0RTX0dXU19WTUlENCksCj4+Pj4gKwkgICgweDIwMDAgKyBtbUdEU19PQV9WTUlENCkg fSwKPj4+PiArCXsgKDB4MjAwMCArIG1tR0RTX1ZNSUQ1X0JBU0UpLAo+Pj4+ICsJICAoMHgyMDAw ICsgbW1HRFNfVk1JRDVfU0laRSksCj4+Pj4gKwkgICgweDIwMDAgKyBtbUdEU19HV1NfVk1JRDUp LAo+Pj4+ICsJICAoMHgyMDAwICsgbW1HRFNfT0FfVk1JRDUpIH0sCj4+Pj4gKwl7ICgweDIwMDAg KyBtbUdEU19WTUlENl9CQVNFKSwKPj4+PiArCSAgKDB4MjAwMCArIG1tR0RTX1ZNSUQ2X1NJWkUp LAo+Pj4+ICsJICAoMHgyMDAwICsgbW1HRFNfR1dTX1ZNSUQ2KSwKPj4+PiArCSAgKDB4MjAwMCAr IG1tR0RTX09BX1ZNSUQ2KSB9LAo+Pj4+ICsJeyAoMHgyMDAwICsgbW1HRFNfVk1JRDdfQkFTRSks Cj4+Pj4gKwkgICgweDIwMDAgKyBtbUdEU19WTUlEN19TSVpFKSwKPj4+PiArCSAgKDB4MjAwMCAr IG1tR0RTX0dXU19WTUlENyksCj4+Pj4gKwkgICgweDIwMDAgKyBtbUdEU19PQV9WTUlENykgfSwK Pj4+PiArCXsgKDB4MjAwMCArIG1tR0RTX1ZNSUQ4X0JBU0UpLAo+Pj4+ICsJICAoMHgyMDAwICsg bW1HRFNfVk1JRDhfU0laRSksCj4+Pj4gKwkgICgweDIwMDAgKyBtbUdEU19HV1NfVk1JRDgpLAo+ Pj4+ICsJICAoMHgyMDAwICsgbW1HRFNfT0FfVk1JRDgpIH0sCj4+Pj4gKwl7ICgweDIwMDAgKyBt bUdEU19WTUlEOV9CQVNFKSwKPj4+PiArCSAgKDB4MjAwMCArIG1tR0RTX1ZNSUQ5X1NJWkUpLAo+ Pj4+ICsJICAoMHgyMDAwICsgbW1HRFNfR1dTX1ZNSUQ5KSwKPj4+PiArCSAgKDB4MjAwMCArIG1t R0RTX09BX1ZNSUQ5KSB9LAo+Pj4+ICsJeyAoMHgyMDAwICsgbW1HRFNfVk1JRDEwX0JBU0UpLAo+ Pj4+ICsJICAoMHgyMDAwICsgbW1HRFNfVk1JRDEwX1NJWkUpLAo+Pj4+ICsJICAoMHgyMDAwICsg bW1HRFNfR1dTX1ZNSUQxMCksCj4+Pj4gKwkgICgweDIwMDAgKyBtbUdEU19PQV9WTUlEMTApIH0s Cj4+Pj4gKwl7ICgweDIwMDAgKyBtbUdEU19WTUlEMTFfQkFTRSksCj4+Pj4gKwkgICgweDIwMDAg KyBtbUdEU19WTUlEMTFfU0laRSksCj4+Pj4gKwkgICgweDIwMDAgKyBtbUdEU19HV1NfVk1JRDEx KSwKPj4+PiArCSAgKDB4MjAwMCArIG1tR0RTX09BX1ZNSUQxMSkgfSwKPj4+PiArCXsgKDB4MjAw MCArIG1tR0RTX1ZNSUQxMl9CQVNFKSwKPj4+PiArCSAgKDB4MjAwMCArIG1tR0RTX1ZNSUQxMl9T SVpFKSwKPj4+PiArCSAgKDB4MjAwMCArIG1tR0RTX0dXU19WTUlEMTIpLAo+Pj4+ICsJICAoMHgy MDAwICsgbW1HRFNfT0FfVk1JRDEyKX0sCj4+Pj4gKwl7ICgweDIwMDAgKyBtbUdEU19WTUlEMTNf QkFTRSksCj4+Pj4gKwkgICgweDIwMDAgKyBtbUdEU19WTUlEMTNfU0laRSksCj4+Pj4gKwkgICgw eDIwMDAgKyBtbUdEU19HV1NfVk1JRDEzKSwKPj4+PiArCSAgKDB4MjAwMCArIG1tR0RTX09BX1ZN SUQxMykgfSwKPj4+PiArCXsgKDB4MjAwMCArIG1tR0RTX1ZNSUQxNF9CQVNFKSwKPj4+PiArCSAg KDB4MjAwMCArIG1tR0RTX1ZNSUQxNF9TSVpFKSwKPj4+PiArCSAgKDB4MjAwMCArIG1tR0RTX0dX U19WTUlEMTQpLAo+Pj4+ICsJICAoMHgyMDAwICsgbW1HRFNfT0FfVk1JRDE0KSB9LAo+Pj4+ICsJ eyAoMHgyMDAwICsgbW1HRFNfVk1JRDE1X0JBU0UpLAo+Pj4+ICsJICAoMHgyMDAwICsgbW1HRFNf Vk1JRDE1X1NJWkUpLAo+Pj4+ICsJICAoMHgyMDAwICsgbW1HRFNfR1dTX1ZNSUQxNSksCj4+Pj4g KwkgICgweDIwMDAgKyBtbUdEU19PQV9WTUlEMTUpIH0KPj4+PiAgICAgIH07Cj4+Pj4gICAgICAK Pj4+PiAgICAgIHN0YXRpYyBjb25zdCB1MzIgZ29sZGVuX3NldHRpbmdzX2djXzlfMFtdID0KPj4+ PiAgICAgIHsKPj4+PiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tQ1BDX1VUQ0wxX0NOVEwp LCAweDA4MDAwMDAwLCAweDA4MDAwMDgwLAo+Pj4+IC0JU09DMTVfUkVHX09GRlNFVChHQywgMCwg bW1DUEZfVVRDTDFfQ05UTCksIDB4MDgwMDAwMDAsIDB4MDgwMDAwODAsCj4+Pj4gLQlTT0MxNV9S RUdfT0ZGU0VUKEdDLCAwLCBtbUNQR19VVENMMV9DTlRMKSwgMHgwODAwMDAwMCwgMHgwODAwMDA4 MCwKPj4+PiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tREJfREVCVUcyKSwgMHhmMDBmZmZm ZiwgMHgwMDAwMDQyMCwKPj4+PiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0JfR1BVX0lE KSwgMHgwMDAwMDAwZiwgMHgwMDAwMDAwMCwKPj4+PiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAs IG1tSUFfVVRDTDFfQ05UTCksIDB4MDgwMDAwMDAsIDB4MDgwMDAwODAsCj4+Pj4gLQlTT0MxNV9S RUdfT0ZGU0VUKEdDLCAwLCBtbVBBX1NDX0JJTk5FUl9FVkVOVF9DTlRMXzMpLCAweDAwMDAwMDAz LCAweDgyNDAwMDI0LAo+Pj4+IC0JU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1QQV9TQ19FTkhB TkNFKSwgMHgzZmZmZmZmZiwgMHgwMDAwMDAwMSwKPj4+PiAtCVNPQzE1X1JFR19PRkZTRVQoR0Ms IDAsIG1tUEFfU0NfTElORV9TVElQUExFX1NUQVRFKSwgMHgwMDAwZmYwZiwgMHgwMDAwMDAwMCwK Pj4+PiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tUkxDX0dQTV9VVENMMV9DTlRMXzApLCAw eDA4MDAwMDAwLCAweDA4MDAwMDgwLAo+Pj4+IC0JU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1S TENfR1BNX1VUQ0wxX0NOVExfMSksIDB4MDgwMDAwMDAsIDB4MDgwMDAwODAsCj4+Pj4gLQlTT0Mx NV9SRUdfT0ZGU0VUKEdDLCAwLCBtbVJMQ19HUE1fVVRDTDFfQ05UTF8yKSwgMHgwODAwMDAwMCwg MHgwODAwMDA4MCwKPj4+PiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tUkxDX1BSRVdBTEtF Ul9VVENMMV9DTlRMKSwgMHgwODAwMDAwMCwgMHgwODAwMDA4MCwKPj4+PiAtCVNPQzE1X1JFR19P RkZTRVQoR0MsIDAsIG1tUkxDX1NQTV9VVENMMV9DTlRMKSwgMHgwODAwMDAwMCwgMHgwODAwMDA4 MCwKPj4+PiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tU0hfTUVNX0NPTkZJRyksIDB4MDAw MDEwMDAsIDB4MDAwMDEwMDAsCj4+Pj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbVNQSV9D T05GSUdfQ05UTF8xKSwgMHgwMDAwMDAwZiwgMHgwMTAwMDEwNywKPj4+PiAtCVNPQzE1X1JFR19P RkZTRVQoR0MsIDAsIG1tU1FDX0NPTkZJRyksIDB4MDMwMDAwMDAsIDB4MDIwYTIwMDAsCj4+Pj4g LQlTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbVRBX0NOVExfQVVYKSwgMHhmZmZmZmVlZiwgMHgw MTBiMDAwMCwKPj4+PiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tVENQX0NIQU5fU1RFRVJf SEkpLCAweGZmZmZmZmZmLCAweDRhMmMwZTY4LAo+Pj4+IC0JU09DMTVfUkVHX09GRlNFVChHQywg MCwgbW1UQ1BfQ0hBTl9TVEVFUl9MTyksIDB4ZmZmZmZmZmYsIDB4YjVkM2YxOTcsCj4+Pj4gLQlT T0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbVZHVF9DQUNIRV9JTlZBTElEQVRJT04pLCAweDNmZmYz YWYzLCAweDE5MjAwMDAwLAo+Pj4+IC0JU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1WR1RfR1Nf TUFYX1dBVkVfSUQpLCAweDAwMDAwZmZmLCAweDAwMDAwM2ZmLAo+Pj4+IC0JU09DMTVfUkVHX09G RlNFVChHQywgMCwgbW1XRF9VVENMMV9DTlRMKSwgMHgwODAwMDAwMCwgMHgwODAwMDA4MAo+Pj4+ ICsJU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUNQQ19VVENMMV9DTlRMKSwgMHgwODAwMDAwMCwg MHgwODAwMDA4MCwKPj4+PiArCVNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1DUEZfVVRDTDFfQ05U TCksIDB4MDgwMDAwMDAsIDB4MDgwMDAwODAsCj4+Pj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAs IG1tQ1BHX1VUQ0wxX0NOVEwpLCAweDA4MDAwMDAwLCAweDA4MDAwMDgwLAo+Pj4+ICsJU09DMTVf UkVHX0VOVFJZKEdDLCAwLCBtbURCX0RFQlVHMiksIDB4ZjAwZmZmZmYsIDB4MDAwMDA0MjAsCj4+ Pj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tR0JfR1BVX0lEKSwgMHgwMDAwMDAwZiwgMHgw MDAwMDAwMCwKPj4+PiArCVNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1JQV9VVENMMV9DTlRMKSwg MHgwODAwMDAwMCwgMHgwODAwMDA4MCwKPj4+PiArCVNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1Q QV9TQ19CSU5ORVJfRVZFTlRfQ05UTF8zKSwgMHgwMDAwMDAwMywgMHg4MjQwMDAyNCwKPj4+PiAr CVNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1QQV9TQ19FTkhBTkNFKSwgMHgzZmZmZmZmZiwgMHgw MDAwMDAwMSwKPj4+PiArCVNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1QQV9TQ19MSU5FX1NUSVBQ TEVfU1RBVEUpLCAweDAwMDBmZjBmLCAweDAwMDAwMDAwLAo+Pj4+ICsJU09DMTVfUkVHX0VOVFJZ KEdDLCAwLCBtbVJMQ19HUE1fVVRDTDFfQ05UTF8wKSwgMHgwODAwMDAwMCwgMHgwODAwMDA4MCwK Pj4+PiArCVNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1STENfR1BNX1VUQ0wxX0NOVExfMSksIDB4 MDgwMDAwMDAsIDB4MDgwMDAwODAsCj4+Pj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tUkxD X0dQTV9VVENMMV9DTlRMXzIpLCAweDA4MDAwMDAwLCAweDA4MDAwMDgwLAo+Pj4+ICsJU09DMTVf UkVHX0VOVFJZKEdDLCAwLCBtbVJMQ19QUkVXQUxLRVJfVVRDTDFfQ05UTCksIDB4MDgwMDAwMDAs IDB4MDgwMDAwODAsCj4+Pj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tUkxDX1NQTV9VVENM MV9DTlRMKSwgMHgwODAwMDAwMCwgMHgwODAwMDA4MCwKPj4+PiArCVNPQzE1X1JFR19FTlRSWShH QywgMCwgbW1TSF9NRU1fQ09ORklHKSwgMHgwMDAwMTAwMCwgMHgwMDAwMTAwMCwKPj4+PiArCVNP QzE1X1JFR19FTlRSWShHQywgMCwgbW1TUElfQ09ORklHX0NOVExfMSksIDB4MDAwMDAwMGYsIDB4 MDEwMDAxMDcsCj4+Pj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tU1FDX0NPTkZJRyksIDB4 MDMwMDAwMDAsIDB4MDIwYTIwMDAsCj4+Pj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tVEFf Q05UTF9BVVgpLCAweGZmZmZmZWVmLCAweDAxMGIwMDAwLAo+Pj4+ICsJU09DMTVfUkVHX0VOVFJZ KEdDLCAwLCBtbVRDUF9DSEFOX1NURUVSX0hJKSwgMHhmZmZmZmZmZiwgMHg0YTJjMGU2OCwKPj4+ PiArCVNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1UQ1BfQ0hBTl9TVEVFUl9MTyksIDB4ZmZmZmZm ZmYsIDB4YjVkM2YxOTcsCj4+Pj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tVkdUX0NBQ0hF X0lOVkFMSURBVElPTiksIDB4M2ZmZjNhZjMsIDB4MTkyMDAwMDAsCj4+Pj4gKwlTT0MxNV9SRUdf RU5UUlkoR0MsIDAsIG1tVkdUX0dTX01BWF9XQVZFX0lEKSwgMHgwMDAwMGZmZiwgMHgwMDAwMDNm ZiwKPj4+PiArCVNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1XRF9VVENMMV9DTlRMKSwgMHgwODAw MDAwMCwgMHgwODAwMDA4MAo+Pj4+ICAgICAgfTsKPj4+PiAgICAgIAo+Pj4+ICAgICAgc3RhdGlj IGNvbnN0IHUzMiBnb2xkZW5fc2V0dGluZ3NfZ2NfOV8wX3ZnMTBbXSA9Cj4+Pj4gICAgICB7Cj4+ Pj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUNCX0hXX0NPTlRST0wpLCAweDAwMDBmMDAw LCAweDAwMDEyMTA3LAo+Pj4+IC0JU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1DQl9IV19DT05U Uk9MXzMpLCAweDMwMDAwMDAwLCAweDEwMDAwMDAwLAo+Pj4+IC0JU09DMTVfUkVHX09GRlNFVChH QywgMCwgbW1HQl9BRERSX0NPTkZJRyksIDB4ZmZmZjc3ZmYsIDB4MmExMTQwNDIsCj4+Pj4gLQlT T0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdCX0FERFJfQ09ORklHX1JFQUQpLCAweGZmZmY3N2Zm LCAweDJhMTE0MDQyLAo+Pj4+IC0JU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1QQV9TQ19FTkhB TkNFXzEpLCAweDAwMDA4MDAwLCAweDAwMDQ4MDAwLAo+Pj4+IC0JU09DMTVfUkVHX09GRlNFVChH QywgMCwgbW1STUlfVVRDTDFfQ05UTDIpLCAweDAwMDMwMDAwLCAweDAwMDIwMDAwLAo+Pj4+IC0J U09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1URF9DTlRMKSwgMHgwMDAwMTgwMCwgMHgwMDAwMDgw MAo+Pj4+ICsJU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUNCX0hXX0NPTlRST0wpLCAweDAwMDBm MDAwLCAweDAwMDEyMTA3LAo+Pj4+ICsJU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUNCX0hXX0NP TlRST0xfMyksIDB4MzAwMDAwMDAsIDB4MTAwMDAwMDAsCj4+Pj4gKwlTT0MxNV9SRUdfRU5UUlko R0MsIDAsIG1tR0JfQUREUl9DT05GSUcpLCAweGZmZmY3N2ZmLCAweDJhMTE0MDQyLAo+Pj4+ICsJ U09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUdCX0FERFJfQ09ORklHX1JFQUQpLCAweGZmZmY3N2Zm LCAweDJhMTE0MDQyLAo+Pj4+ICsJU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVBBX1NDX0VOSEFO Q0VfMSksIDB4MDAwMDgwMDAsIDB4MDAwNDgwMDAsCj4+Pj4gKwlTT0MxNV9SRUdfRU5UUlkoR0Ms IDAsIG1tUk1JX1VUQ0wxX0NOVEwyKSwgMHgwMDAzMDAwMCwgMHgwMDAyMDAwMCwKPj4+PiArCVNP QzE1X1JFR19FTlRSWShHQywgMCwgbW1URF9DTlRMKSwgMHgwMDAwMTgwMCwgMHgwMDAwMDgwMAo+ Pj4+ICAgICAgfTsKPj4+PiAgICAgIAo+Pj4+ICAgICAgc3RhdGljIGNvbnN0IHUzMiBnb2xkZW5f c2V0dGluZ3NfZ2NfOV8xW10gPQo+Pj4+ICAgICAgewo+Pj4+IC0JU09DMTVfUkVHX09GRlNFVChH QywgMCwgbW1DQl9IV19DT05UUk9MKSwgMHhmZmZkZjNjZiwgMHgwMDAxNDEwNCwKPj4+PiAtCVNP QzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tQ1BDX1VUQ0wxX0NOVEwpLCAweDA4MDAwMDAwLCAweDA4 MDAwMDgwLAo+Pj4+IC0JU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1DUEZfVVRDTDFfQ05UTCks IDB4MDgwMDAwMDAsIDB4MDgwMDAwODAsCj4+Pj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBt bUNQR19VVENMMV9DTlRMKSwgMHgwODAwMDAwMCwgMHgwODAwMDA4MCwKPj4+PiAtCVNPQzE1X1JF R19PRkZTRVQoR0MsIDAsIG1tREJfREVCVUcyKSwgMHhmMDBmZmZmZiwgMHgwMDAwMDQyMCwKPj4+ PiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0JfR1BVX0lEKSwgMHgwMDAwMDAwZiwgMHgw MDAwMDAwMCwKPj4+PiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tSUFfVVRDTDFfQ05UTCks IDB4MDgwMDAwMDAsIDB4MDgwMDAwODAsCj4+Pj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBt bVBBX1NDX0JJTk5FUl9FVkVOVF9DTlRMXzMpLCAweDAwMDAwMDAzLCAweDgyNDAwMDI0LAo+Pj4+ IC0JU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1QQV9TQ19FTkhBTkNFKSwgMHgzZmZmZmZmZiwg MHgwMDAwMDAwMSwKPj4+PiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tUEFfU0NfTElORV9T VElQUExFX1NUQVRFKSwgMHgwMDAwZmYwZiwgMHgwMDAwMDAwMCwKPj4+PiAtCVNPQzE1X1JFR19P RkZTRVQoR0MsIDAsIG1tUkxDX0dQTV9VVENMMV9DTlRMXzApLCAweDA4MDAwMDAwLCAweDA4MDAw MDgwLAo+Pj4+IC0JU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1STENfR1BNX1VUQ0wxX0NOVExf MSksIDB4MDgwMDAwMDAsIDB4MDgwMDAwODAsCj4+Pj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEdDLCAw LCBtbVJMQ19HUE1fVVRDTDFfQ05UTF8yKSwgMHgwODAwMDAwMCwgMHgwODAwMDA4MCwKPj4+PiAt CVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tUkxDX1BSRVdBTEtFUl9VVENMMV9DTlRMKSwgMHgw ODAwMDAwMCwgMHgwODAwMDA4MCwKPj4+PiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tUkxD X1NQTV9VVENMMV9DTlRMKSwgMHgwODAwMDAwMCwgMHgwODAwMDA4MCwKPj4+PiAtCVNPQzE1X1JF R19PRkZTRVQoR0MsIDAsIG1tVEFfQ05UTF9BVVgpLCAweGZmZmZmZWVmLCAweDAxMGIwMDAwLAo+ Pj4+IC0JU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1UQ1BfQ0hBTl9TVEVFUl9ISSksIDB4ZmZm ZmZmZmYsIDB4MDAwMDAwMDAsCj4+Pj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbVRDUF9D SEFOX1NURUVSX0xPKSwgMHhmZmZmZmZmZiwgMHgwMDAwMzEyMCwKPj4+PiAtCVNPQzE1X1JFR19P RkZTRVQoR0MsIDAsIG1tVkdUX0NBQ0hFX0lOVkFMSURBVElPTiksIDB4M2ZmZjNhZjMsIDB4MTky MDAwMDAsCj4+Pj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbVZHVF9HU19NQVhfV0FWRV9J RCksIDB4MDAwMDBmZmYsIDB4MDAwMDAwZmYsCj4+Pj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEdDLCAw LCBtbVdEX1VUQ0wxX0NOVEwpLCAweDA4MDAwMDAwLCAweDA4MDAwMDgwCj4+Pj4gKwlTT0MxNV9S RUdfRU5UUlkoR0MsIDAsIG1tQ0JfSFdfQ09OVFJPTCksIDB4ZmZmZGYzY2YsIDB4MDAwMTQxMDQs Cj4+Pj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tQ1BDX1VUQ0wxX0NOVEwpLCAweDA4MDAw MDAwLCAweDA4MDAwMDgwLAo+Pj4+ICsJU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUNQRl9VVENM MV9DTlRMKSwgMHgwODAwMDAwMCwgMHgwODAwMDA4MCwKPj4+PiArCVNPQzE1X1JFR19FTlRSWShH QywgMCwgbW1DUEdfVVRDTDFfQ05UTCksIDB4MDgwMDAwMDAsIDB4MDgwMDAwODAsCj4+Pj4gKwlT T0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tREJfREVCVUcyKSwgMHhmMDBmZmZmZiwgMHgwMDAwMDQy MCwKPj4+PiArCVNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1HQl9HUFVfSUQpLCAweDAwMDAwMDBm LCAweDAwMDAwMDAwLAo+Pj4+ICsJU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUlBX1VUQ0wxX0NO VEwpLCAweDA4MDAwMDAwLCAweDA4MDAwMDgwLAo+Pj4+ICsJU09DMTVfUkVHX0VOVFJZKEdDLCAw LCBtbVBBX1NDX0JJTk5FUl9FVkVOVF9DTlRMXzMpLCAweDAwMDAwMDAzLCAweDgyNDAwMDI0LAo+ Pj4+ICsJU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVBBX1NDX0VOSEFOQ0UpLCAweDNmZmZmZmZm LCAweDAwMDAwMDAxLAo+Pj4+ICsJU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVBBX1NDX0xJTkVf U1RJUFBMRV9TVEFURSksIDB4MDAwMGZmMGYsIDB4MDAwMDAwMDAsCj4+Pj4gKwlTT0MxNV9SRUdf RU5UUlkoR0MsIDAsIG1tUkxDX0dQTV9VVENMMV9DTlRMXzApLCAweDA4MDAwMDAwLCAweDA4MDAw MDgwLAo+Pj4+ICsJU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVJMQ19HUE1fVVRDTDFfQ05UTF8x KSwgMHgwODAwMDAwMCwgMHgwODAwMDA4MCwKPj4+PiArCVNPQzE1X1JFR19FTlRSWShHQywgMCwg bW1STENfR1BNX1VUQ0wxX0NOVExfMiksIDB4MDgwMDAwMDAsIDB4MDgwMDAwODAsCj4+Pj4gKwlT T0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tUkxDX1BSRVdBTEtFUl9VVENMMV9DTlRMKSwgMHgwODAw MDAwMCwgMHgwODAwMDA4MCwKPj4+PiArCVNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1STENfU1BN X1VUQ0wxX0NOVEwpLCAweDA4MDAwMDAwLCAweDA4MDAwMDgwLAo+Pj4+ICsJU09DMTVfUkVHX0VO VFJZKEdDLCAwLCBtbVRBX0NOVExfQVVYKSwgMHhmZmZmZmVlZiwgMHgwMTBiMDAwMCwKPj4+PiAr CVNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1UQ1BfQ0hBTl9TVEVFUl9ISSksIDB4ZmZmZmZmZmYs IDB4MDAwMDAwMDAsCj4+Pj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tVENQX0NIQU5fU1RF RVJfTE8pLCAweGZmZmZmZmZmLCAweDAwMDAzMTIwLAo+Pj4+ICsJU09DMTVfUkVHX0VOVFJZKEdD LCAwLCBtbVZHVF9DQUNIRV9JTlZBTElEQVRJT04pLCAweDNmZmYzYWYzLCAweDE5MjAwMDAwLAo+ Pj4+ICsJU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVZHVF9HU19NQVhfV0FWRV9JRCksIDB4MDAw MDBmZmYsIDB4MDAwMDAwZmYsCj4+Pj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tV0RfVVRD TDFfQ05UTCksIDB4MDgwMDAwMDAsIDB4MDgwMDAwODAKPj4+PiAgICAgIH07Cj4+Pj4gICAgICAK Pj4+PiAgICAgIHN0YXRpYyBjb25zdCB1MzIgZ29sZGVuX3NldHRpbmdzX2djXzlfMV9ydjFbXSA9 Cj4+Pj4gICAgICB7Cj4+Pj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUNCX0hXX0NPTlRS T0xfMyksIDB4MzAwMDAwMDAsIDB4MTAwMDAwMDAsCj4+Pj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEdD LCAwLCBtbUdCX0FERFJfQ09ORklHKSwgMHhmZmZmNzdmZiwgMHgyNDAwMDA0MiwKPj4+PiAtCVNP QzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0JfQUREUl9DT05GSUdfUkVBRCksIDB4ZmZmZjc3ZmYs IDB4MjQwMDAwNDIsCj4+Pj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbVBBX1NDX0VOSEFO Q0VfMSksIDB4ZmZmZmZmZmYsIDB4MDQwNDgwMDAsCj4+Pj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEdD LCAwLCBtbVBBX1NDX01PREVfQ05UTF8xKSwgMHgwNjAwMDAwMCwgMHgwNjAwMDAwMCwKPj4+PiAt CVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tUk1JX1VUQ0wxX0NOVEwyKSwgMHgwMDAzMDAwMCwg MHgwMDAyMDAwMCwKPj4+PiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tVERfQ05UTCksIDB4 MDFiZDlmMzMsIDB4MDAwMDA4MDAKPj4+PiArCVNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1DQl9I V19DT05UUk9MXzMpLCAweDMwMDAwMDAwLCAweDEwMDAwMDAwLAo+Pj4+ICsJU09DMTVfUkVHX0VO VFJZKEdDLCAwLCBtbUdCX0FERFJfQ09ORklHKSwgMHhmZmZmNzdmZiwgMHgyNDAwMDA0MiwKPj4+ PiArCVNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1HQl9BRERSX0NPTkZJR19SRUFEKSwgMHhmZmZm NzdmZiwgMHgyNDAwMDA0MiwKPj4+PiArCVNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1QQV9TQ19F TkhBTkNFXzEpLCAweGZmZmZmZmZmLCAweDA0MDQ4MDAwLAo+Pj4+ICsJU09DMTVfUkVHX0VOVFJZ KEdDLCAwLCBtbVBBX1NDX01PREVfQ05UTF8xKSwgMHgwNjAwMDAwMCwgMHgwNjAwMDAwMCwKPj4+ PiArCVNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1STUlfVVRDTDFfQ05UTDIpLCAweDAwMDMwMDAw LCAweDAwMDIwMDAwLAo+Pj4+ICsJU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVREX0NOVEwpLCAw eDAxYmQ5ZjMzLCAweDAwMDAwODAwCj4+Pj4gICAgICB9Owo+Pj4+ICAgICAgCj4+Pj4gICAgICBz dGF0aWMgY29uc3QgdTMyIGdvbGRlbl9zZXR0aW5nc19nY185X3hfY29tbW9uW10gPQo+Pj4+ICAg ICAgewo+Pj4+IC0JU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HUkJNX0NBTV9JTkRFWCksIDB4 ZmZmZmZmZmYsIDB4MDAwMDAwMDAsCj4+Pj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdS Qk1fQ0FNX0RBVEEpLCAweGZmZmZmZmZmLCAweDI1NDRjMzgyCj4+Pj4gKwlTT0MxNV9SRUdfRU5U UlkoR0MsIDAsIG1tR1JCTV9DQU1fSU5ERVgpLCAweGZmZmZmZmZmLCAweDAwMDAwMDAwLAo+Pj4+ ICsJU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUdSQk1fQ0FNX0RBVEEpLCAweGZmZmZmZmZmLCAw eDI1NDRjMzgyCj4+Pj4gICAgICB9Owo+Pj4+ICAgICAgCj4+Pj4gICAgICAjZGVmaW5lIFZFR0Ex MF9HQl9BRERSX0NPTkZJR19HT0xERU4gMHgyYTExNDA0MiBAQCAtMjMwLDE4Cj4+Pj4gKzIzMSwx OCBAQCBzdGF0aWMgdm9pZCBnZnhfdjlfMF9pbml0X2dvbGRlbl9yZWdpc3RlcnMoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYpCj4+Pj4gICAgICB7Cj4+Pj4gICAgICAJc3dpdGNoIChhZGV2LT5h c2ljX3R5cGUpIHsKPj4+PiAgICAgIAljYXNlIENISVBfVkVHQTEwOgo+Pj4+IC0JCWFtZGdwdV9w cm9ncmFtX3JlZ2lzdGVyX3NlcXVlbmNlKGFkZXYsCj4+Pj4gKwkJc29jMTVfcHJvZ3JhbV9yZWdp c3Rlcl9zZXF1ZW5jZShhZGV2LAo+Pj4+ICAgICAgCQkJCQkJIGdvbGRlbl9zZXR0aW5nc19nY185 XzAsCj4+Pj4gICAgICAJCQkJCQkgQVJSQVlfU0laRShnb2xkZW5fc2V0dGluZ3NfZ2NfOV8wKSk7 Cj4+Pj4gLQkJYW1kZ3B1X3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2UoYWRldiwKPj4+PiArCQlz b2MxNV9wcm9ncmFtX3JlZ2lzdGVyX3NlcXVlbmNlKGFkZXYsCj4+Pj4gICAgICAJCQkJCQkgZ29s ZGVuX3NldHRpbmdzX2djXzlfMF92ZzEwLAo+Pj4+ICAgICAgCQkJCQkJIEFSUkFZX1NJWkUoZ29s ZGVuX3NldHRpbmdzX2djXzlfMF92ZzEwKSk7Cj4+Pj4gICAgICAJCWJyZWFrOwo+Pj4+ICAgICAg CWNhc2UgQ0hJUF9SQVZFTjoKPj4+PiAtCQlhbWRncHVfcHJvZ3JhbV9yZWdpc3Rlcl9zZXF1ZW5j ZShhZGV2LAo+Pj4+ICsJCXNvYzE1X3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2UoYWRldiwKPj4+ PiAgICAgIAkJCQkJCSBnb2xkZW5fc2V0dGluZ3NfZ2NfOV8xLAo+Pj4+ICAgICAgCQkJCQkJIEFS UkFZX1NJWkUoZ29sZGVuX3NldHRpbmdzX2djXzlfMSkpOwo+Pj4+IC0JCWFtZGdwdV9wcm9ncmFt X3JlZ2lzdGVyX3NlcXVlbmNlKGFkZXYsCj4+Pj4gKwkJc29jMTVfcHJvZ3JhbV9yZWdpc3Rlcl9z ZXF1ZW5jZShhZGV2LAo+Pj4+ICAgICAgCQkJCQkJIGdvbGRlbl9zZXR0aW5nc19nY185XzFfcnYx LAo+Pj4+ICAgICAgCQkJCQkJIEFSUkFZX1NJWkUoZ29sZGVuX3NldHRpbmdzX2djXzlfMV9ydjEp KTsKPj4+PiAgICAgIAkJYnJlYWs7Cj4+Pj4gQEAgLTI0OSw3ICsyNTAsNyBAQCBzdGF0aWMgdm9p ZCBnZnhfdjlfMF9pbml0X2dvbGRlbl9yZWdpc3RlcnMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYpCj4+Pj4gICAgICAJCWJyZWFrOwo+Pj4+ICAgICAgCX0KPj4+PiAgICAgIAo+Pj4+IC0JYW1k Z3B1X3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2UoYWRldiwgZ29sZGVuX3NldHRpbmdzX2djXzlf eF9jb21tb24sCj4+Pj4gKwlzb2MxNV9wcm9ncmFtX3JlZ2lzdGVyX3NlcXVlbmNlKGFkZXYsCj4+ Pj4gK2dvbGRlbl9zZXR0aW5nc19nY185X3hfY29tbW9uLAo+Pj4+ICAgICAgCQkJCQkoY29uc3Qg dTMyKUFSUkFZX1NJWkUoZ29sZGVuX3NldHRpbmdzX2djXzlfeF9jb21tb24pKTsKPj4+PiAgICAg IH0KPj4+PiAgICAgIAo+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9nbWNfdjlfMC5jCj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjlfMC5j Cj4+Pj4gaW5kZXggMzBlYjYyNS4uY2E2NmUxYyAxMDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9nbWNfdjlfMC5jCj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvZ21jX3Y5XzAuYwo+Pj4+IEBAIC0zNSw2ICszNSw3IEBACj4+Pj4gICAgICAjaW5j bHVkZSAibW1odWIvbW1odWJfMV8wX29mZnNldC5oIgo+Pj4+ICAgICAgI2luY2x1ZGUgImF0aHVi L2F0aHViXzFfMF9vZmZzZXQuaCIKPj4+PiAgICAgIAo+Pj4+ICsjaW5jbHVkZSAic29jMTUuaCIK Pj4+PiAgICAgICNpbmNsdWRlICJzb2MxNV9jb21tb24uaCIKPj4+PiAgICAgICNpbmNsdWRlICJ1 bWMvdW1jXzZfMF9zaF9tYXNrLmgiCj4+Pj4gICAgICAKPj4+PiBAQCAtNzYsMTQgKzc3LDE0IEBA Cj4+Pj4gICAgICAKPj4+PiAgICAgIHN0YXRpYyBjb25zdCB1MzIgZ29sZGVuX3NldHRpbmdzX21t aHViXzFfMF8wW10gPQo+Pj4+ICAgICAgewo+Pj4+IC0JU09DMTVfUkVHX09GRlNFVChNTUhVQiwg MCwgbW1EQUdCMV9XUkNMSTIpLCAweDAwMDAwMDA3LCAweGZlNWZlMGZhLAo+Pj4+IC0JU09DMTVf UkVHX09GRlNFVChNTUhVQiwgMCwgbW1NTUVBMV9EUkFNX1dSX0NMSTJHUlBfTUFQMCksIDB4MDAw MDAwMzAsIDB4NTU1NTU1NjUKPj4+PiArCVNPQzE1X1JFR19FTlRSWShNTUhVQiwgMCwgbW1EQUdC MV9XUkNMSTIpLCAweDAwMDAwMDA3LCAweGZlNWZlMGZhLAo+Pj4+ICsJU09DMTVfUkVHX0VOVFJZ KE1NSFVCLCAwLCBtbU1NRUExX0RSQU1fV1JfQ0xJMkdSUF9NQVAwKSwKPj4+PiArMHgwMDAwMDAz MCwKPj4+PiArMHg1NTU1NTU2NQo+Pj4+ICAgICAgfTsKPj4+PiAgICAgIAo+Pj4+ICAgICAgc3Rh dGljIGNvbnN0IHUzMiBnb2xkZW5fc2V0dGluZ3NfYXRodWJfMV8wXzBbXSA9Cj4+Pj4gICAgICB7 Cj4+Pj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEFUSFVCLCAwLCBtbVJQQl9BUkJfQ05UTCksIDB4MDAw MGZmMDAsIDB4MDAwMDA4MDAsCj4+Pj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEFUSFVCLCAwLCBtbVJQ Ql9BUkJfQ05UTDIpLCAweDAwZmYwMGZmLCAweDAwMDgwMDA4Cj4+Pj4gKwlTT0MxNV9SRUdfRU5U UlkoQVRIVUIsIDAsIG1tUlBCX0FSQl9DTlRMKSwgMHgwMDAwZmYwMCwgMHgwMDAwMDgwMCwKPj4+ PiArCVNPQzE1X1JFR19FTlRSWShBVEhVQiwgMCwgbW1SUEJfQVJCX0NOVEwyKSwgMHgwMGZmMDBm ZiwgMHgwMDA4MDAwOAo+Pj4+ICAgICAgfTsKPj4+PiAgICAgIAo+Pj4+ICAgICAgLyogRWNjIHJl bGF0ZWQgcmVnaXN0ZXIgYWRkcmVzc2VzLCAoQkFTRSArIHJlZyBvZmZzZXQpICovIEBACj4+Pj4g LTg5NSwxMgo+Pj4+ICs4OTYsMTMgQEAgc3RhdGljIGludCBnbWNfdjlfMF9zd19maW5pKHZvaWQg KmhhbmRsZSkKPj4+PiAgICAgIAo+Pj4+ICAgICAgc3RhdGljIHZvaWQgZ21jX3Y5XzBfaW5pdF9n b2xkZW5fcmVnaXN0ZXJzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+Pj4+ICAgICAgewo+ Pj4+ICsKPj4+PiAgICAgIAlzd2l0Y2ggKGFkZXYtPmFzaWNfdHlwZSkgewo+Pj4+ICAgICAgCWNh c2UgQ0hJUF9WRUdBMTA6Cj4+Pj4gLQkJYW1kZ3B1X3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2Uo YWRldiwKPj4+PiArCQlzb2MxNV9wcm9ncmFtX3JlZ2lzdGVyX3NlcXVlbmNlKGFkZXYsCj4+Pj4g ICAgICAJCQkJCQlnb2xkZW5fc2V0dGluZ3NfbW1odWJfMV8wXzAsCj4+Pj4gICAgICAJCQkJCQlB UlJBWV9TSVpFKGdvbGRlbl9zZXR0aW5nc19tbWh1Yl8xXzBfMCkpOwo+Pj4+IC0JCWFtZGdwdV9w cm9ncmFtX3JlZ2lzdGVyX3NlcXVlbmNlKGFkZXYsCj4+Pj4gKwkJc29jMTVfcHJvZ3JhbV9yZWdp c3Rlcl9zZXF1ZW5jZShhZGV2LAo+Pj4+ICAgICAgCQkJCQkJZ29sZGVuX3NldHRpbmdzX2F0aHVi XzFfMF8wLAo+Pj4+ICAgICAgCQkJCQkJQVJSQVlfU0laRShnb2xkZW5fc2V0dGluZ3NfYXRodWJf MV8wXzApKTsKPj4+PiAgICAgIAkJYnJlYWs7Cj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L25iaW9fdjZfMS5jCj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9uYmlvX3Y2XzEuYwo+Pj4+IGluZGV4IDc2ZGI3MTEuLjNiODdiOGEgMTAwNjQ0Cj4+Pj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbmJpb192Nl8xLmMKPj4+PiArKysgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9uYmlvX3Y2XzEuYwo+Pj4+IEBAIC03OCw4ICs3OCw4 IEBAIHUzMiBuYmlvX3Y2XzFfZ2V0X21lbXNpemUoc3RydWN0IGFtZGdwdV9kZXZpY2UKPj4+PiAq YWRldikKPj4+PiAgICAgIAo+Pj4+ICAgICAgc3RhdGljIGNvbnN0IHUzMiBuYmlvX3NkbWFfZG9v cmJlbGxfcmFuZ2VfcmVnW10gPQo+Pj4+ICAgICAgewo+Pj4+IC0JU09DMTVfUkVHX09GRlNFVChO QklPLCAwLCBtbUJJRl9TRE1BMF9ET09SQkVMTF9SQU5HRSksCj4+Pj4gLQlTT0MxNV9SRUdfT0ZG U0VUKE5CSU8sIDAsIG1tQklGX1NETUExX0RPT1JCRUxMX1JBTkdFKQo+Pj4+ICsJKDB4ZDIwICsg bW1CSUZfU0RNQTBfRE9PUkJFTExfUkFOR0UpLAo+Pj4+ICsJKDB4ZDIwICsgbW1CSUZfU0RNQTFf RE9PUkJFTExfUkFOR0UpCj4+Pj4gICAgICB9Owo+Pj4+ICAgICAgCj4+Pj4gICAgICB2b2lkIG5i aW9fdjZfMV9zZG1hX2Rvb3JiZWxsX3JhbmdlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+ Pj4+IGludCBpbnN0YW5jZSwgQEAgLTk0LDYgKzk0LDcgQEAgdm9pZCBuYmlvX3Y2XzFfc2RtYV9k b29yYmVsbF9yYW5nZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgaW50IGluc3RhbmNlLAo+ Pj4+ICAgICAgCQlkb29yYmVsbF9yYW5nZSA9IFJFR19TRVRfRklFTEQoZG9vcmJlbGxfcmFuZ2Us Cj4+Pj4gQklGX1NETUEwX0RPT1JCRUxMX1JBTkdFLCBTSVpFLCAwKTsKPj4+PiAgICAgIAo+Pj4+ ICAgICAgCVdSRUczMihuYmlvX3NkbWFfZG9vcmJlbGxfcmFuZ2VfcmVnW2luc3RhbmNlXSwgZG9v cmJlbGxfcmFuZ2UpOwo+Pj4+ICsKPj4+PiAgICAgIH0KPj4+PiAgICAgIAo+Pj4+ICAgICAgdm9p ZCBuYmlvX3Y2XzFfZW5hYmxlX2Rvb3JiZWxsX2FwZXJ0dXJlKHN0cnVjdCBhbWRncHVfZGV2aWNl Cj4+Pj4gKmFkZXYsIEBAIC0yMTYsOCArMjE3LDggQEAgdm9pZCBuYmlvX3Y2XzFfZ2V0X2Nsb2Nr Z2F0aW5nX3N0YXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1MzIgKmZsYWdzKQo+Pj4+ ICAgICAgfQo+Pj4+ICAgICAgCj4+Pj4gICAgICBjb25zdCBzdHJ1Y3QgbmJpb19oZHBfZmx1c2hf cmVnIG5iaW9fdjZfMV9oZHBfZmx1c2hfcmVnID0gewo+Pj4+IC0JLmhkcF9mbHVzaF9yZXFfb2Zm c2V0ID0gU09DMTVfUkVHX09GRlNFVChOQklPLCAwLCBtbUJJRl9CWF9QRjBfR1BVX0hEUF9GTFVT SF9SRVEpLAo+Pj4+IC0JLmhkcF9mbHVzaF9kb25lX29mZnNldCA9IFNPQzE1X1JFR19PRkZTRVQo TkJJTywgMCwgbW1CSUZfQlhfUEYwX0dQVV9IRFBfRkxVU0hfRE9ORSksCj4+Pj4gKwkuaGRwX2Zs dXNoX3JlcV9vZmZzZXQgPSAgMHhkMjAgKyBtbUJJRl9CWF9QRjBfR1BVX0hEUF9GTFVTSF9SRVEs Cj4+Pj4gKwkuaGRwX2ZsdXNoX2RvbmVfb2Zmc2V0ID0gMHhkMjAgKyBtbUJJRl9CWF9QRjBfR1BV X0hEUF9GTFVTSF9ET05FLAo+Pj4+ICAgICAgCS5yZWZfYW5kX21hc2tfY3AwID0gQklGX0JYX1BG MF9HUFVfSERQX0ZMVVNIX0RPTkVfX0NQMF9NQVNLLAo+Pj4+ICAgICAgCS5yZWZfYW5kX21hc2tf Y3AxID0gQklGX0JYX1BGMF9HUFVfSERQX0ZMVVNIX0RPTkVfX0NQMV9NQVNLLAo+Pj4+ICAgICAg CS5yZWZfYW5kX21hc2tfY3AyID0gQklGX0JYX1BGMF9HUFVfSERQX0ZMVVNIX0RPTkVfX0NQMl9N QVNLLAo+Pj4+IEBAIC0yMzMsOCArMjM0LDggQEAgdm9pZCBuYmlvX3Y2XzFfZ2V0X2Nsb2NrZ2F0 aW5nX3N0YXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1MzIgKmZsYWdzKQo+Pj4+ICAg ICAgfTsKPj4+PiAgICAgIAo+Pj4+ICAgICAgY29uc3Qgc3RydWN0IG5iaW9fcGNpZV9pbmRleF9k YXRhIG5iaW9fdjZfMV9wY2llX2luZGV4X2RhdGEgPSB7Cj4+Pj4gLQkuaW5kZXhfb2Zmc2V0ID0g U09DMTVfUkVHX09GRlNFVChOQklPLCAwLCBtbVBDSUVfSU5ERVgpLAo+Pj4+IC0JLmRhdGFfb2Zm c2V0ID0gU09DMTVfUkVHX09GRlNFVChOQklPLCAwLCBtbVBDSUVfREFUQSksCj4+Pj4gKwkuaW5k ZXhfb2Zmc2V0ID0gMHgwICsgbW1QQ0lFX0lOREVYLAo+Pj4+ICsJLmRhdGFfb2Zmc2V0ID0gMHgw ICsgbW1QQ0lFX0RBVEEsCj4+Pj4gICAgICB9Owo+Pj4+ICAgICAgCj4+Pj4gICAgICB2b2lkIG5i aW9fdjZfMV9kZXRlY3RfaHdfdmlydChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikgZGlmZgo+ Pj4+IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbmJpb192N18wLmMKPj4+PiBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L25iaW9fdjdfMC5jCj4+Pj4gaW5kZXggMWZiNzcx Ny4uNzI1MmQ1NzIgMTAwNjQ0Cj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv bmJpb192N18wLmMKPj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9uYmlvX3Y3 XzAuYwo+Pj4+IEBAIC03NSw4ICs3NSw4IEBAIHUzMiBuYmlvX3Y3XzBfZ2V0X21lbXNpemUoc3Ry dWN0IGFtZGdwdV9kZXZpY2UKPj4+PiAqYWRldikKPj4+PiAgICAgIAo+Pj4+ICAgICAgc3RhdGlj IGNvbnN0IHUzMiBuYmlvX3NkbWFfZG9vcmJlbGxfcmFuZ2VfcmVnW10gPQo+Pj4+ICAgICAgewo+ Pj4+IC0JU09DMTVfUkVHX09GRlNFVChOQklPLCAwLCBtbUJJRl9TRE1BMF9ET09SQkVMTF9SQU5H RSksCj4+Pj4gLQlTT0MxNV9SRUdfT0ZGU0VUKE5CSU8sIDAsIG1tQklGX1NETUExX0RPT1JCRUxM X1JBTkdFKQo+Pj4+ICsJKDB4ZDIwICsgbW1CSUZfU0RNQTBfRE9PUkJFTExfUkFOR0UpLAo+Pj4+ ICsJKDB4ZDIwICsgbW1CSUZfU0RNQTFfRE9PUkJFTExfUkFOR0UpCj4+Pj4gICAgICB9Owo+Pj4+ ICAgICAgCj4+Pj4gICAgICB2b2lkIG5iaW9fdjdfMF9zZG1hX2Rvb3JiZWxsX3JhbmdlKHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2LAo+Pj4+IGludCBpbnN0YW5jZSwgQEAgLTE4Niw4ICsxODYs OCBAQCB2b2lkIG5iaW9fdjdfMF9paF9jb250cm9sKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 KQo+Pj4+ICAgICAgfQo+Pj4+ICAgICAgCj4+Pj4gICAgICBjb25zdCBzdHJ1Y3QgbmJpb19oZHBf Zmx1c2hfcmVnIG5iaW9fdjdfMF9oZHBfZmx1c2hfcmVnID0gewo+Pj4+IC0JLmhkcF9mbHVzaF9y ZXFfb2Zmc2V0ID0gU09DMTVfUkVHX09GRlNFVChOQklPLCAwLCBtbUdQVV9IRFBfRkxVU0hfUkVR KSwKPj4+PiAtCS5oZHBfZmx1c2hfZG9uZV9vZmZzZXQgPSBTT0MxNV9SRUdfT0ZGU0VUKE5CSU8s IDAsIG1tR1BVX0hEUF9GTFVTSF9ET05FKSwKPj4+PiArCS5oZHBfZmx1c2hfcmVxX29mZnNldCA9 IDB4ZDIwICsgbW1HUFVfSERQX0ZMVVNIX1JFUSwKPj4+PiArCS5oZHBfZmx1c2hfZG9uZV9vZmZz ZXQgPSAweGQyMCArIG1tR1BVX0hEUF9GTFVTSF9ET05FLAo+Pj4+ICAgICAgCS5yZWZfYW5kX21h c2tfY3AwID0gR1BVX0hEUF9GTFVTSF9ET05FX19DUDBfTUFTSywKPj4+PiAgICAgIAkucmVmX2Fu ZF9tYXNrX2NwMSA9IEdQVV9IRFBfRkxVU0hfRE9ORV9fQ1AxX01BU0ssCj4+Pj4gICAgICAJLnJl Zl9hbmRfbWFza19jcDIgPSBHUFVfSERQX0ZMVVNIX0RPTkVfX0NQMl9NQVNLLCBAQCAtMjAzLDYK Pj4+PiArMjAzLDYgQEAgdm9pZCBuYmlvX3Y3XzBfaWhfY29udHJvbChzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldikKPj4+PiAgICAgIH07Cj4+Pj4gICAgICAKPj4+PiAgICAgIGNvbnN0IHN0cnVj dCBuYmlvX3BjaWVfaW5kZXhfZGF0YSBuYmlvX3Y3XzBfcGNpZV9pbmRleF9kYXRhID0gewo+Pj4+ IC0JLmluZGV4X29mZnNldCA9IFNPQzE1X1JFR19PRkZTRVQoTkJJTywgMCwgbW1QQ0lFX0lOREVY MiksCj4+Pj4gLQkuZGF0YV9vZmZzZXQgPSBTT0MxNV9SRUdfT0ZGU0VUKE5CSU8sIDAsIG1tUENJ RV9EQVRBMikKPj4+PiArCS5pbmRleF9vZmZzZXQgPSAweDAgKyBtbVBDSUVfSU5ERVgyLAo+Pj4+ ICsJLmRhdGFfb2Zmc2V0ID0gMHgwICsgbW1QQ0lFX0RBVEEyCj4+Pj4gICAgICB9Owo+Pj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1hX3Y0XzAuYwo+Pj4+IGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2RtYV92NF8wLmMKPj4+PiBpbmRleCBlMzI0YzY2 Li5jNjUzNjk1IDEwMDY0NAo+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3Nk bWFfdjRfMC5jCj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2RtYV92NF8w LmMKPj4+PiBAQCAtNTQsNTcgKzU0LDU3IEBACj4+Pj4gICAgICBzdGF0aWMgdm9pZCBzZG1hX3Y0 XzBfc2V0X2lycV9mdW5jcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7Cj4+Pj4gICAgICAK Pj4+PiAgICAgIHN0YXRpYyBjb25zdCB1MzIgZ29sZGVuX3NldHRpbmdzX3NkbWFfNFtdID0gewo+ Pj4+IC0JU09DMTVfUkVHX09GRlNFVChTRE1BMCwgMCwgbW1TRE1BMF9DSElDS0VOX0JJVFMpLCAw eGZlOTMxZjA3LCAweDAyODMxZDA3LAo+Pj4+IC0JU09DMTVfUkVHX09GRlNFVChTRE1BMCwgMCwg bW1TRE1BMF9DTEtfQ1RSTCksIDB4ZmYwMDBmZjAsIDB4M2YwMDAxMDAsCj4+Pj4gLQlTT0MxNV9S RUdfT0ZGU0VUKFNETUEwLCAwLCBtbVNETUEwX0dGWF9JQl9DTlRMKSwgMHg4MDBmMDEwMCwgMHgw MDAwMDEwMCwKPj4+PiAtCVNPQzE1X1JFR19PRkZTRVQoU0RNQTAsIDAsIG1tU0RNQTBfR0ZYX1JC X1dQVFJfUE9MTF9DTlRMKSwgMHhmZmZmZmZmNywgMHgwMDQwMzAwMCwKPj4+PiAtCVNPQzE1X1JF R19PRkZTRVQoU0RNQTAsIDAsIG1tU0RNQTBfUEFHRV9JQl9DTlRMKSwgMHg4MDBmMDEwMCwgMHgw MDAwMDEwMCwKPj4+PiAtCVNPQzE1X1JFR19PRkZTRVQoU0RNQTAsIDAsIG1tU0RNQTBfUEFHRV9S Ql9XUFRSX1BPTExfQ05UTCksIDB4MDAwMGZmZjAsIDB4MDA0MDMwMDAsCj4+Pj4gLQlTT0MxNV9S RUdfT0ZGU0VUKFNETUEwLCAwLCBtbVNETUEwX1BPV0VSX0NOVEwpLCAweDAwM2ZmMDA2LCAweDAw MDNjMDAwLAo+Pj4+IC0JU09DMTVfUkVHX09GRlNFVChTRE1BMCwgMCwgbW1TRE1BMF9STEMwX0lC X0NOVEwpLCAweDgwMGYwMTAwLCAweDAwMDAwMTAwLAo+Pj4+IC0JU09DMTVfUkVHX09GRlNFVChT RE1BMCwgMCwgbW1TRE1BMF9STEMwX1JCX1dQVFJfUE9MTF9DTlRMKSwgMHgwMDAwZmZmMCwgMHgw MDQwMzAwMCwKPj4+PiAtCVNPQzE1X1JFR19PRkZTRVQoU0RNQTAsIDAsIG1tU0RNQTBfUkxDMV9J Ql9DTlRMKSwgMHg4MDBmMDEwMCwgMHgwMDAwMDEwMCwKPj4+PiAtCVNPQzE1X1JFR19PRkZTRVQo U0RNQTAsIDAsIG1tU0RNQTBfUkxDMV9SQl9XUFRSX1BPTExfQ05UTCksIDB4MDAwMGZmZjAsIDB4 MDA0MDMwMDAsCj4+Pj4gLQlTT0MxNV9SRUdfT0ZGU0VUKFNETUEwLCAwLCBtbVNETUEwX1VUQ0wx X1BBR0UpLCAweDAwMDAwM2ZmLCAweDAwMDAwM2MwLAo+Pj4+IC0JU09DMTVfUkVHX09GRlNFVChT RE1BMSwgMCwgbW1TRE1BMV9DSElDS0VOX0JJVFMpLCAweGZlOTMxZjA3LCAweDAyODMxZjA3LAo+ Pj4+IC0JU09DMTVfUkVHX09GRlNFVChTRE1BMSwgMCwgbW1TRE1BMV9DTEtfQ1RSTCksIDB4ZmZm ZmZmZmYsIDB4M2YwMDAxMDAsCj4+Pj4gLQlTT0MxNV9SRUdfT0ZGU0VUKFNETUExLCAwLCBtbVNE TUExX0dGWF9JQl9DTlRMKSwgMHg4MDBmMDEwMCwgMHgwMDAwMDEwMCwKPj4+PiAtCVNPQzE1X1JF R19PRkZTRVQoU0RNQTEsIDAsIG1tU0RNQTFfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMKSwgMHgwMDAw ZmZmMCwgMHgwMDQwMzAwMCwKPj4+PiAtCVNPQzE1X1JFR19PRkZTRVQoU0RNQTEsIDAsIG1tU0RN QTFfUEFHRV9JQl9DTlRMKSwgMHg4MDBmMDEwMCwgMHgwMDAwMDEwMCwKPj4+PiAtCVNPQzE1X1JF R19PRkZTRVQoU0RNQTEsIDAsIG1tU0RNQTFfUEFHRV9SQl9XUFRSX1BPTExfQ05UTCksIDB4MDAw MGZmZjAsIDB4MDA0MDMwMDAsCj4+Pj4gLQlTT0MxNV9SRUdfT0ZGU0VUKFNETUExLCAwLCBtbVNE TUExX1BPV0VSX0NOVEwpLCAweDAwM2ZmMDAwLCAweDAwMDNjMDAwLAo+Pj4+IC0JU09DMTVfUkVH X09GRlNFVChTRE1BMSwgMCwgbW1TRE1BMV9STEMwX0lCX0NOVEwpLCAweDgwMGYwMTAwLCAweDAw MDAwMTAwLAo+Pj4+IC0JU09DMTVfUkVHX09GRlNFVChTRE1BMSwgMCwgbW1TRE1BMV9STEMwX1JC X1dQVFJfUE9MTF9DTlRMKSwgMHgwMDAwZmZmMCwgMHgwMDQwMzAwMCwKPj4+PiAtCVNPQzE1X1JF R19PRkZTRVQoU0RNQTEsIDAsIG1tU0RNQTFfUkxDMV9JQl9DTlRMKSwgMHg4MDBmMDEwMCwgMHgw MDAwMDEwMCwKPj4+PiAtCVNPQzE1X1JFR19PRkZTRVQoU0RNQTEsIDAsIG1tU0RNQTFfUkxDMV9S Ql9XUFRSX1BPTExfQ05UTCksIDB4MDAwMGZmZjAsIDB4MDA0MDMwMDAsCj4+Pj4gLQlTT0MxNV9S RUdfT0ZGU0VUKFNETUExLCAwLCBtbVNETUExX1VUQ0wxX1BBR0UpLCAweDAwMDAwM2ZmLCAweDAw MDAwM2MwCj4+Pj4gKwlTT0MxNV9SRUdfRU5UUlkoU0RNQTAsIDAsIG1tU0RNQTBfQ0hJQ0tFTl9C SVRTKSwgMHhmZTkzMWYwNywgMHgwMjgzMWQwNywKPj4+PiArCVNPQzE1X1JFR19FTlRSWShTRE1B MCwgMCwgbW1TRE1BMF9DTEtfQ1RSTCksIDB4ZmYwMDBmZjAsIDB4M2YwMDAxMDAsCj4+Pj4gKwlT T0MxNV9SRUdfRU5UUlkoU0RNQTAsIDAsIG1tU0RNQTBfR0ZYX0lCX0NOVEwpLCAweDgwMGYwMTAw LCAweDAwMDAwMTAwLAo+Pj4+ICsJU09DMTVfUkVHX0VOVFJZKFNETUEwLCAwLCBtbVNETUEwX0dG WF9SQl9XUFRSX1BPTExfQ05UTCksIDB4ZmZmZmZmZjcsIDB4MDA0MDMwMDAsCj4+Pj4gKwlTT0Mx NV9SRUdfRU5UUlkoU0RNQTAsIDAsIG1tU0RNQTBfUEFHRV9JQl9DTlRMKSwgMHg4MDBmMDEwMCwg MHgwMDAwMDEwMCwKPj4+PiArCVNPQzE1X1JFR19FTlRSWShTRE1BMCwgMCwgbW1TRE1BMF9QQUdF X1JCX1dQVFJfUE9MTF9DTlRMKSwgMHgwMDAwZmZmMCwgMHgwMDQwMzAwMCwKPj4+PiArCVNPQzE1 X1JFR19FTlRSWShTRE1BMCwgMCwgbW1TRE1BMF9QT1dFUl9DTlRMKSwgMHgwMDNmZjAwNiwgMHgw MDAzYzAwMCwKPj4+PiArCVNPQzE1X1JFR19FTlRSWShTRE1BMCwgMCwgbW1TRE1BMF9STEMwX0lC X0NOVEwpLCAweDgwMGYwMTAwLCAweDAwMDAwMTAwLAo+Pj4+ICsJU09DMTVfUkVHX0VOVFJZKFNE TUEwLCAwLCBtbVNETUEwX1JMQzBfUkJfV1BUUl9QT0xMX0NOVEwpLCAweDAwMDBmZmYwLCAweDAw NDAzMDAwLAo+Pj4+ICsJU09DMTVfUkVHX0VOVFJZKFNETUEwLCAwLCBtbVNETUEwX1JMQzFfSUJf Q05UTCksIDB4ODAwZjAxMDAsIDB4MDAwMDAxMDAsCj4+Pj4gKwlTT0MxNV9SRUdfRU5UUlkoU0RN QTAsIDAsIG1tU0RNQTBfUkxDMV9SQl9XUFRSX1BPTExfQ05UTCksIDB4MDAwMGZmZjAsIDB4MDA0 MDMwMDAsCj4+Pj4gKwlTT0MxNV9SRUdfRU5UUlkoU0RNQTAsIDAsIG1tU0RNQTBfVVRDTDFfUEFH RSksIDB4MDAwMDAzZmYsIDB4MDAwMDAzYzAsCj4+Pj4gKwlTT0MxNV9SRUdfRU5UUlkoU0RNQTEs IDAsIG1tU0RNQTFfQ0hJQ0tFTl9CSVRTKSwgMHhmZTkzMWYwNywgMHgwMjgzMWYwNywKPj4+PiAr CVNPQzE1X1JFR19FTlRSWShTRE1BMSwgMCwgbW1TRE1BMV9DTEtfQ1RSTCksIDB4ZmZmZmZmZmYs IDB4M2YwMDAxMDAsCj4+Pj4gKwlTT0MxNV9SRUdfRU5UUlkoU0RNQTEsIDAsIG1tU0RNQTFfR0ZY X0lCX0NOVEwpLCAweDgwMGYwMTAwLCAweDAwMDAwMTAwLAo+Pj4+ICsJU09DMTVfUkVHX0VOVFJZ KFNETUExLCAwLCBtbVNETUExX0dGWF9SQl9XUFRSX1BPTExfQ05UTCksIDB4MDAwMGZmZjAsIDB4 MDA0MDMwMDAsCj4+Pj4gKwlTT0MxNV9SRUdfRU5UUlkoU0RNQTEsIDAsIG1tU0RNQTFfUEFHRV9J Ql9DTlRMKSwgMHg4MDBmMDEwMCwgMHgwMDAwMDEwMCwKPj4+PiArCVNPQzE1X1JFR19FTlRSWShT RE1BMSwgMCwgbW1TRE1BMV9QQUdFX1JCX1dQVFJfUE9MTF9DTlRMKSwgMHgwMDAwZmZmMCwgMHgw MDQwMzAwMCwKPj4+PiArCVNPQzE1X1JFR19FTlRSWShTRE1BMSwgMCwgbW1TRE1BMV9QT1dFUl9D TlRMKSwgMHgwMDNmZjAwMCwgMHgwMDAzYzAwMCwKPj4+PiArCVNPQzE1X1JFR19FTlRSWShTRE1B MSwgMCwgbW1TRE1BMV9STEMwX0lCX0NOVEwpLCAweDgwMGYwMTAwLCAweDAwMDAwMTAwLAo+Pj4+ ICsJU09DMTVfUkVHX0VOVFJZKFNETUExLCAwLCBtbVNETUExX1JMQzBfUkJfV1BUUl9QT0xMX0NO VEwpLCAweDAwMDBmZmYwLCAweDAwNDAzMDAwLAo+Pj4+ICsJU09DMTVfUkVHX0VOVFJZKFNETUEx LCAwLCBtbVNETUExX1JMQzFfSUJfQ05UTCksIDB4ODAwZjAxMDAsIDB4MDAwMDAxMDAsCj4+Pj4g KwlTT0MxNV9SRUdfRU5UUlkoU0RNQTEsIDAsIG1tU0RNQTFfUkxDMV9SQl9XUFRSX1BPTExfQ05U TCksIDB4MDAwMGZmZjAsIDB4MDA0MDMwMDAsCj4+Pj4gKwlTT0MxNV9SRUdfRU5UUlkoU0RNQTEs IDAsIG1tU0RNQTFfVVRDTDFfUEFHRSksIDB4MDAwMDAzZmYsCj4+Pj4gKzB4MDAwMDAzYzAKPj4+ PiAgICAgIH07Cj4+Pj4gICAgICAKPj4+PiAgICAgIHN0YXRpYyBjb25zdCB1MzIgZ29sZGVuX3Nl dHRpbmdzX3NkbWFfdmcxMFtdID0gewo+Pj4+IC0JU09DMTVfUkVHX09GRlNFVChTRE1BMCwgMCwg bW1TRE1BMF9HQl9BRERSX0NPTkZJRyksIDB4MDAxODc3M2YsIDB4MDAxMDQwMDIsCj4+Pj4gLQlT T0MxNV9SRUdfT0ZGU0VUKFNETUEwLCAwLCBtbVNETUEwX0dCX0FERFJfQ09ORklHX1JFQUQpLCAw eDAwMTg3NzNmLCAweDAwMTA0MDAyLAo+Pj4+IC0JU09DMTVfUkVHX09GRlNFVChTRE1BMSwgMCwg bW1TRE1BMV9HQl9BRERSX0NPTkZJRyksIDB4MDAxODc3M2YsIDB4MDAxMDQwMDIsCj4+Pj4gLQlT T0MxNV9SRUdfT0ZGU0VUKFNETUExLCAwLCBtbVNETUExX0dCX0FERFJfQ09ORklHX1JFQUQpLCAw eDAwMTg3NzNmLCAweDAwMTA0MDAyCj4+Pj4gKwlTT0MxNV9SRUdfRU5UUlkoU0RNQTAsIDAsIG1t U0RNQTBfR0JfQUREUl9DT05GSUcpLCAweDAwMTg3NzNmLCAweDAwMTA0MDAyLAo+Pj4+ICsJU09D MTVfUkVHX0VOVFJZKFNETUEwLCAwLCBtbVNETUEwX0dCX0FERFJfQ09ORklHX1JFQUQpLCAweDAw MTg3NzNmLCAweDAwMTA0MDAyLAo+Pj4+ICsJU09DMTVfUkVHX0VOVFJZKFNETUExLCAwLCBtbVNE TUExX0dCX0FERFJfQ09ORklHKSwgMHgwMDE4NzczZiwgMHgwMDEwNDAwMiwKPj4+PiArCVNPQzE1 X1JFR19FTlRSWShTRE1BMSwgMCwgbW1TRE1BMV9HQl9BRERSX0NPTkZJR19SRUFEKSwKPj4+PiAr MHgwMDE4NzczZiwKPj4+PiArMHgwMDEwNDAwMgo+Pj4+ICAgICAgfTsKPj4+PiAgICAgIAo+Pj4+ ICAgICAgc3RhdGljIGNvbnN0IHUzMiBnb2xkZW5fc2V0dGluZ3Nfc2RtYV80XzFbXSA9Cj4+Pj4g ICAgICB7Cj4+Pj4gLQlTT0MxNV9SRUdfT0ZGU0VUKFNETUEwLCAwLCBtbVNETUEwX0NISUNLRU5f QklUUyksIDB4ZmU5MzFmMDcsIDB4MDI4MzFkMDcsCj4+Pj4gLQlTT0MxNV9SRUdfT0ZGU0VUKFNE TUEwLCAwLCBtbVNETUEwX0NMS19DVFJMKSwgMHhmZmZmZmZmZiwgMHgzZjAwMDEwMCwKPj4+PiAt CVNPQzE1X1JFR19PRkZTRVQoU0RNQTAsIDAsIG1tU0RNQTBfR0ZYX0lCX0NOVEwpLCAweDgwMGYw MTExLCAweDAwMDAwMTAwLAo+Pj4+IC0JU09DMTVfUkVHX09GRlNFVChTRE1BMCwgMCwgbW1TRE1B MF9HRlhfUkJfV1BUUl9QT0xMX0NOVEwpLCAweGZmZmZmZmY3LCAweDAwNDAzMDAwLAo+Pj4+IC0J U09DMTVfUkVHX09GRlNFVChTRE1BMCwgMCwgbW1TRE1BMF9QT1dFUl9DTlRMKSwgMHhmYzNmZmZm ZiwgMHg0MDAwMDA1MSwKPj4+PiAtCVNPQzE1X1JFR19PRkZTRVQoU0RNQTAsIDAsIG1tU0RNQTBf UkxDMF9JQl9DTlRMKSwgMHg4MDBmMDExMSwgMHgwMDAwMDEwMCwKPj4+PiAtCVNPQzE1X1JFR19P RkZTRVQoU0RNQTAsIDAsIG1tU0RNQTBfUkxDMF9SQl9XUFRSX1BPTExfQ05UTCksIDB4ZmZmZmZm ZjcsIDB4MDA0MDMwMDAsCj4+Pj4gLQlTT0MxNV9SRUdfT0ZGU0VUKFNETUEwLCAwLCBtbVNETUEw X1JMQzFfSUJfQ05UTCksIDB4ODAwZjAxMTEsIDB4MDAwMDAxMDAsCj4+Pj4gLQlTT0MxNV9SRUdf T0ZGU0VUKFNETUEwLCAwLCBtbVNETUEwX1JMQzFfUkJfV1BUUl9QT0xMX0NOVEwpLCAweGZmZmZm ZmY3LCAweDAwNDAzMDAwLAo+Pj4+IC0JU09DMTVfUkVHX09GRlNFVChTRE1BMCwgMCwgbW1TRE1B MF9VVENMMV9QQUdFKSwgMHgwMDAwMDNmZiwgMHgwMDAwMDNjMAo+Pj4+ICsJU09DMTVfUkVHX0VO VFJZKFNETUEwLCAwLCBtbVNETUEwX0NISUNLRU5fQklUUyksIDB4ZmU5MzFmMDcsIDB4MDI4MzFk MDcsCj4+Pj4gKwlTT0MxNV9SRUdfRU5UUlkoU0RNQTAsIDAsIG1tU0RNQTBfQ0xLX0NUUkwpLCAw eGZmZmZmZmZmLCAweDNmMDAwMTAwLAo+Pj4+ICsJU09DMTVfUkVHX0VOVFJZKFNETUEwLCAwLCBt bVNETUEwX0dGWF9JQl9DTlRMKSwgMHg4MDBmMDExMSwgMHgwMDAwMDEwMCwKPj4+PiArCVNPQzE1 X1JFR19FTlRSWShTRE1BMCwgMCwgbW1TRE1BMF9HRlhfUkJfV1BUUl9QT0xMX0NOVEwpLCAweGZm ZmZmZmY3LCAweDAwNDAzMDAwLAo+Pj4+ICsJU09DMTVfUkVHX0VOVFJZKFNETUEwLCAwLCBtbVNE TUEwX1BPV0VSX0NOVEwpLCAweGZjM2ZmZmZmLCAweDQwMDAwMDUxLAo+Pj4+ICsJU09DMTVfUkVH X0VOVFJZKFNETUEwLCAwLCBtbVNETUEwX1JMQzBfSUJfQ05UTCksIDB4ODAwZjAxMTEsIDB4MDAw MDAxMDAsCj4+Pj4gKwlTT0MxNV9SRUdfRU5UUlkoU0RNQTAsIDAsIG1tU0RNQTBfUkxDMF9SQl9X UFRSX1BPTExfQ05UTCksIDB4ZmZmZmZmZjcsIDB4MDA0MDMwMDAsCj4+Pj4gKwlTT0MxNV9SRUdf RU5UUlkoU0RNQTAsIDAsIG1tU0RNQTBfUkxDMV9JQl9DTlRMKSwgMHg4MDBmMDExMSwgMHgwMDAw MDEwMCwKPj4+PiArCVNPQzE1X1JFR19FTlRSWShTRE1BMCwgMCwgbW1TRE1BMF9STEMxX1JCX1dQ VFJfUE9MTF9DTlRMKSwgMHhmZmZmZmZmNywgMHgwMDQwMzAwMCwKPj4+PiArCVNPQzE1X1JFR19F TlRSWShTRE1BMCwgMCwgbW1TRE1BMF9VVENMMV9QQUdFKSwgMHgwMDAwMDNmZiwKPj4+PiArMHgw MDAwMDNjMAo+Pj4+ICAgICAgfTsKPj4+PiAgICAgIAo+Pj4+ICAgICAgc3RhdGljIGNvbnN0IHUz MiBnb2xkZW5fc2V0dGluZ3Nfc2RtYV9ydjFbXSA9Cj4+Pj4gICAgICB7Cj4+Pj4gLQlTT0MxNV9S RUdfT0ZGU0VUKFNETUEwLCAwLCBtbVNETUEwX0dCX0FERFJfQ09ORklHKSwgMHgwMDE4NzczZiwg MHgwMDAwMDAwMiwKPj4+PiAtCVNPQzE1X1JFR19PRkZTRVQoU0RNQTAsIDAsIG1tU0RNQTBfR0Jf QUREUl9DT05GSUdfUkVBRCksIDB4MDAxODc3M2YsIDB4MDAwMDAwMDIKPj4+PiArCVNPQzE1X1JF R19FTlRSWShTRE1BMCwgMCwgbW1TRE1BMF9HQl9BRERSX0NPTkZJRyksIDB4MDAxODc3M2YsIDB4 MDAwMDAwMDIsCj4+Pj4gKwlTT0MxNV9SRUdfRU5UUlkoU0RNQTAsIDAsIG1tU0RNQTBfR0JfQURE Ul9DT05GSUdfUkVBRCksCj4+Pj4gKzB4MDAxODc3M2YsCj4+Pj4gKzB4MDAwMDAwMDIKPj4+PiAg ICAgIH07Cj4+Pj4gICAgICAKPj4+PiAgICAgICNkZWZpbmUgc2RtYV92NF8wX2dldF9yZWdfb2Zm c2V0KGluc3QsIG9mZnNldCkgKCAwID09IGluc3QgPyBcCj4+Pj4gQEAKPj4+PiAtMTE1LDE4ICsx MTUsMTggQEAgc3RhdGljIHZvaWQgc2RtYV92NF8wX2luaXRfZ29sZGVuX3JlZ2lzdGVycyhzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPj4+PiAgICAgIHsKPj4+PiAgICAgIAlzd2l0Y2ggKGFk ZXYtPmFzaWNfdHlwZSkgewo+Pj4+ICAgICAgCWNhc2UgQ0hJUF9WRUdBMTA6Cj4+Pj4gLQkJYW1k Z3B1X3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2UoYWRldiwKPj4+PiArCQlzb2MxNV9wcm9ncmFt X3JlZ2lzdGVyX3NlcXVlbmNlKGFkZXYsCj4+Pj4gICAgICAJCQkJCQkgZ29sZGVuX3NldHRpbmdz X3NkbWFfNCwKPj4+PiAgICAgIAkJCQkJCSBBUlJBWV9TSVpFKGdvbGRlbl9zZXR0aW5nc19zZG1h XzQpKTsKPj4+PiAtCQlhbWRncHVfcHJvZ3JhbV9yZWdpc3Rlcl9zZXF1ZW5jZShhZGV2LAo+Pj4+ ICsJCXNvYzE1X3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2UoYWRldiwKPj4+PiAgICAgIAkJCQkJ CSBnb2xkZW5fc2V0dGluZ3Nfc2RtYV92ZzEwLAo+Pj4+ICAgICAgCQkJCQkJIEFSUkFZX1NJWkUo Z29sZGVuX3NldHRpbmdzX3NkbWFfdmcxMCkpOwo+Pj4+ICAgICAgCQlicmVhazsKPj4+PiAgICAg IAljYXNlIENISVBfUkFWRU46Cj4+Pj4gLQkJYW1kZ3B1X3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVu Y2UoYWRldiwKPj4+PiArCQlzb2MxNV9wcm9ncmFtX3JlZ2lzdGVyX3NlcXVlbmNlKGFkZXYsCj4+ Pj4gICAgICAJCQkJCQkgZ29sZGVuX3NldHRpbmdzX3NkbWFfNF8xLAo+Pj4+ICAgICAgCQkJCQkJ IEFSUkFZX1NJWkUoZ29sZGVuX3NldHRpbmdzX3NkbWFfNF8xKSk7Cj4+Pj4gLQkJYW1kZ3B1X3By b2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2UoYWRldiwKPj4+PiArCQlzb2MxNV9wcm9ncmFtX3JlZ2lz dGVyX3NlcXVlbmNlKGFkZXYsCj4+Pj4gICAgICAJCQkJCQkgZ29sZGVuX3NldHRpbmdzX3NkbWFf cnYxLAo+Pj4+ICAgICAgCQkJCQkJIEFSUkFZX1NJWkUoZ29sZGVuX3NldHRpbmdzX3NkbWFfcnYx KSk7Cj4+Pj4gICAgICAJCWJyZWFrOwo+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9zb2MxNS5jCj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zb2Mx NS5jCj4+Pj4gaW5kZXggN2M4OGJjYi4uNzc5YzY3MSAxMDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9zb2MxNS5jCj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvc29jMTUuYwo+Pj4+IEBAIC0zMzIsMjUgKzMzMiwzNCBAQCBzdGF0aWMgYm9vbCBz b2MxNV9yZWFkX2Jpb3NfZnJvbV9yb20oc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4+Pj4g ICAgICAJcmV0dXJuIHRydWU7Cj4+Pj4gICAgICB9Cj4+Pj4gICAgICAKPj4+PiAtc3RhdGljIHN0 cnVjdCBhbWRncHVfYWxsb3dlZF9yZWdpc3Rlcl9lbnRyeSBzb2MxNV9hbGxvd2VkX3JlYWRfcmVn aXN0ZXJzW10gPSB7Cj4+Pj4gLQl7IFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR1JCTV9TVEFU VVMpfSwKPj4+PiAtCXsgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HUkJNX1NUQVRVUzIpfSwK Pj4+PiAtCXsgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HUkJNX1NUQVRVU19TRTApfSwKPj4+ PiAtCXsgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HUkJNX1NUQVRVU19TRTEpfSwKPj4+PiAt CXsgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HUkJNX1NUQVRVU19TRTIpfSwKPj4+PiAtCXsg U09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HUkJNX1NUQVRVU19TRTMpfSwKPj4+PiAtCXsgU09D MTVfUkVHX09GRlNFVChTRE1BMCwgMCwgbW1TRE1BMF9TVEFUVVNfUkVHKX0sCj4+Pj4gLQl7IFNP QzE1X1JFR19PRkZTRVQoU0RNQTEsIDAsIG1tU0RNQTFfU1RBVFVTX1JFRyl9LAo+Pj4+IC0JeyBT T0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUNQX1NUQVQpfSwKPj4+PiAtCXsgU09DMTVfUkVHX09G RlNFVChHQywgMCwgbW1DUF9TVEFMTEVEX1NUQVQxKX0sCj4+Pj4gLQl7IFNPQzE1X1JFR19PRkZT RVQoR0MsIDAsIG1tQ1BfU1RBTExFRF9TVEFUMil9LAo+Pj4+IC0JeyBTT0MxNV9SRUdfT0ZGU0VU KEdDLCAwLCBtbUNQX1NUQUxMRURfU1RBVDMpfSwKPj4+PiAtCXsgU09DMTVfUkVHX09GRlNFVChH QywgMCwgbW1DUF9DUEZfQlVTWV9TVEFUKX0sCj4+Pj4gLQl7IFNPQzE1X1JFR19PRkZTRVQoR0Ms IDAsIG1tQ1BfQ1BGX1NUQUxMRURfU1RBVDEpfSwKPj4+PiAtCXsgU09DMTVfUkVHX09GRlNFVChH QywgMCwgbW1DUF9DUEZfU1RBVFVTKX0sCj4+Pj4gLQl7IFNPQzE1X1JFR19PRkZTRVQoR0MsIDAs IG1tQ1BfQ1BDX1NUQUxMRURfU1RBVDEpfSwKPj4+PiAtCXsgU09DMTVfUkVHX09GRlNFVChHQywg MCwgbW1DUF9DUENfU1RBVFVTKX0sCj4+Pj4gLQl7IFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1t R0JfQUREUl9DT05GSUcpfSwKPj4+PiArc3RydWN0IHNvYzE1X2FsbG93ZWRfcmVnaXN0ZXJfZW50 cnkgewo+Pj4+ICsJdWludDMyX3QgaHdpcDsKPj4+PiArCXVpbnQzMl90IGluc3Q7Cj4+Pj4gKwl1 aW50MzJfdCBzZWc7Cj4+Pj4gKwl1aW50MzJfdCByZWdfb2Zmc2V0Owo+Pj4+ICsJYm9vbCBncmJt X2luZGV4ZWQ7Cj4+Pj4gK307Cj4+Pj4gKwo+Pj4+ICsKPj4+PiArc3RhdGljIHN0cnVjdCBzb2Mx NV9hbGxvd2VkX3JlZ2lzdGVyX2VudHJ5IHNvYzE1X2FsbG93ZWRfcmVhZF9yZWdpc3RlcnNbXSA9 IHsKPj4+PiArCXsgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUdSQk1fU1RBVFVTKX0sCj4+Pj4g Kwl7IFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1HUkJNX1NUQVRVUzIpfSwKPj4+PiArCXsgU09D MTVfUkVHX0VOVFJZKEdDLCAwLCBtbUdSQk1fU1RBVFVTX1NFMCl9LAo+Pj4+ICsJeyBTT0MxNV9S RUdfRU5UUlkoR0MsIDAsIG1tR1JCTV9TVEFUVVNfU0UxKX0sCj4+Pj4gKwl7IFNPQzE1X1JFR19F TlRSWShHQywgMCwgbW1HUkJNX1NUQVRVU19TRTIpfSwKPj4+PiArCXsgU09DMTVfUkVHX0VOVFJZ KEdDLCAwLCBtbUdSQk1fU1RBVFVTX1NFMyl9LAo+Pj4+ICsJeyBTT0MxNV9SRUdfRU5UUlkoU0RN QTAsIDAsIG1tU0RNQTBfU1RBVFVTX1JFRyl9LAo+Pj4+ICsJeyBTT0MxNV9SRUdfRU5UUlkoU0RN QTEsIDAsIG1tU0RNQTFfU1RBVFVTX1JFRyl9LAo+Pj4+ICsJeyBTT0MxNV9SRUdfRU5UUlkoR0Ms IDAsIG1tQ1BfU1RBVCl9LAo+Pj4+ICsJeyBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tQ1BfU1RB TExFRF9TVEFUMSl9LAo+Pj4+ICsJeyBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tQ1BfU1RBTExF RF9TVEFUMil9LAo+Pj4+ICsJeyBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tQ1BfU1RBTExFRF9T VEFUMyl9LAo+Pj4+ICsJeyBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tQ1BfQ1BGX0JVU1lfU1RB VCl9LAo+Pj4+ICsJeyBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tQ1BfQ1BGX1NUQUxMRURfU1RB VDEpfSwKPj4+PiArCXsgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUNQX0NQRl9TVEFUVVMpfSwK Pj4+PiArCXsgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUNQX0NQQ19TVEFMTEVEX1NUQVQxKX0s Cj4+Pj4gKwl7IFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1DUF9DUENfU1RBVFVTKX0sCj4+Pj4g Kwl7IFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1HQl9BRERSX0NPTkZJRyl9LAo+Pj4+ICAgICAg fTsKPj4+PiAgICAgIAo+Pj4+ICAgICAgc3RhdGljIHVpbnQzMl90IHNvYzE1X3JlYWRfaW5kZXhl ZF9yZWdpc3RlcihzdHJ1Y3QgYW1kZ3B1X2RldmljZQo+Pj4+ICphZGV2LCB1MzIgc2VfbnVtLCBA QCAtMzkwLDEwICszOTksMTMgQEAgc3RhdGljIGludCBzb2MxNV9yZWFkX3JlZ2lzdGVyKHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2LCB1MzIgc2VfbnVtLAo+Pj4+ICAgICAgCQkJICAgIHUzMiBz aF9udW0sIHUzMiByZWdfb2Zmc2V0LCB1MzIgKnZhbHVlKQo+Pj4+ICAgICAgewo+Pj4+ICAgICAg CXVpbnQzMl90IGk7Cj4+Pj4gKwlzdHJ1Y3Qgc29jMTVfYWxsb3dlZF9yZWdpc3Rlcl9lbnRyeSAg KmVuOwo+Pj4+ICAgICAgCj4+Pj4gICAgICAJKnZhbHVlID0gMDsKPj4+PiAgICAgIAlmb3IgKGkg PSAwOyBpIDwgQVJSQVlfU0laRShzb2MxNV9hbGxvd2VkX3JlYWRfcmVnaXN0ZXJzKTsgaSsrKSB7 Cj4+Pj4gLQkJaWYgKHJlZ19vZmZzZXQgIT0gc29jMTVfYWxsb3dlZF9yZWFkX3JlZ2lzdGVyc1tp XS5yZWdfb2Zmc2V0KQo+Pj4+ICsJCWVuID0gJnNvYzE1X2FsbG93ZWRfcmVhZF9yZWdpc3RlcnNb aV07Cj4+Pj4gKwkJaWYgKHJlZ19vZmZzZXQgIT0gKGFkZXYtPnJlZ19vZmZzZXRbZW4tPmh3aXBd W2VuLT5pbnN0XVtlbi0+c2VnXQo+Pj4+ICsJCQkJCSsgZW4tPnJlZ19vZmZzZXQpKQo+Pj4+ICAg ICAgCQkJY29udGludWU7Cj4+Pj4gICAgICAKPj4+PiAgICAgIAkJKnZhbHVlID0gc29jMTVfZ2V0 X3JlZ2lzdGVyX3ZhbHVlKGFkZXYsIEBAIC00MDQsNiArNDE2LDQ3IEBACj4+Pj4gc3RhdGljIGlu dCBzb2MxNV9yZWFkX3JlZ2lzdGVyKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1MzIgc2Vf bnVtLAo+Pj4+ICAgICAgCXJldHVybiAtRUlOVkFMOwo+Pj4+ICAgICAgfQo+Pj4+ICAgICAgCj4+ Pj4gKwo+Pj4+ICsvKioKPj4+PiArICogc29jMTVfcHJvZ3JhbV9yZWdpc3Rlcl9zZXF1ZW5jZSAt IHByb2dyYW0gYW4gYXJyYXkgb2YgcmVnaXN0ZXJzLgo+Pj4+ICsgKgo+Pj4+ICsgKiBAYWRldjog YW1kZ3B1X2RldmljZSBwb2ludGVyCj4+Pj4gKyAqIEByZWdzOiBwb2ludGVyIHRvIHRoZSByZWdp c3RlciBhcnJheQo+Pj4+ICsgKiBAYXJyYXlfc2l6ZTogc2l6ZSBvZiB0aGUgcmVnaXN0ZXIgYXJy YXkKPj4+PiArICoKPj4+PiArICogUHJvZ3JhbXMgYW4gYXJyYXkgb3IgcmVnaXN0ZXJzIHdpdGgg YW5kIGFuZCBvciBtYXNrcy4KPj4+PiArICogVGhpcyBpcyBhIGhlbHBlciBmb3Igc2V0dGluZyBn b2xkZW4gcmVnaXN0ZXJzLgo+Pj4+ICsgKi8KPj4+PiArCj4+Pj4gK3ZvaWQgc29jMTVfcHJvZ3Jh bV9yZWdpc3Rlcl9zZXF1ZW5jZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPj4+PiArCQkJ CQkgICAgIGNvbnN0IHUzMiAqcmVncywKPj4+PiArCQkJCQkgICAgIGNvbnN0IHUzMiBhcnJheV9z aXplKQo+Pj4+ICt7Cj4+Pj4gKwl1MzIgdG1wLCByZWcsIGFuZF9tYXNrLCBvcl9tYXNrOwo+Pj4+ ICsJaW50IGk7Cj4+Pj4gKwo+Pj4+ICsJaWYgKGFycmF5X3NpemUgJSA2KQo+Pj4+ICsJCXJldHVy bjsKPj4+PiArCj4+Pj4gKwlmb3IgKGkgPSAwOyBpIDwgYXJyYXlfc2l6ZTsgaSArPTYpIHsKPj4+ PiArCQlyZWcgPSAgYWRldi0+cmVnX29mZnNldFtyZWdzW2kgKyAwXV1bcmVnc1tpICsgMV1dW3Jl Z3NbaSArIDJdXSArCj4+Pj4gKwkJCXJlZ3NbaSArIDNdOwo+Pj4+ICsJCWFuZF9tYXNrID0gcmVn c1tpICsgNF07Cj4+Pj4gKwkJb3JfbWFzayA9IHJlZ3NbaSArIDVdOwo+Pj4+ICsKPj4+PiArCQlp ZiAoYW5kX21hc2sgPT0gMHhmZmZmZmZmZikgewo+Pj4+ICsJCQl0bXAgPSBvcl9tYXNrOwo+Pj4+ ICsJCX0gZWxzZSB7Cj4+Pj4gKwkJCXRtcCA9IFJSRUczMihyZWcpOwo+Pj4+ICsJCQl0bXAgJj0g fmFuZF9tYXNrOwo+Pj4+ICsJCQl0bXAgfD0gb3JfbWFzazsKPj4+PiArCQl9Cj4+Pj4gKwkJV1JF RzMyKHJlZywgdG1wKTsKPj4+PiArCX0KPj4+PiArCj4+Pj4gK30KPj4+PiArCj4+Pj4gKwo+Pj4+ ICAgICAgc3RhdGljIGludCBzb2MxNV9hc2ljX3Jlc2V0KHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2KQo+Pj4+ICAgICAgewo+Pj4+ICAgICAgCXUzMiBpOwo+Pj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zb2MxNS5oCj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9zb2MxNS5oCj4+Pj4gaW5kZXggYzM0NDk2Zi4uNDg4MjMwNyAxMDA2NDQKPj4+PiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zb2MxNS5oCj4+Pj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvc29jMTUuaAo+Pj4+IEBAIC0zMyw2ICszMywxMCBAQCB2b2lk IHNvYzE1X2dyYm1fc2VsZWN0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+Pj4+ICAgICAg CQkgICAgdTMyIG1lLCB1MzIgcGlwZSwgdTMyIHF1ZXVlLCB1MzIgdm1pZCk7Cj4+Pj4gICAgICBp bnQgc29jMTVfc2V0X2lwX2Jsb2NrcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7Cj4+Pj4g ICAgICAKPj4+PiArdm9pZCBzb2MxNV9wcm9ncmFtX3JlZ2lzdGVyX3NlcXVlbmNlKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2LAo+Pj4+ICsJCQkJCSAgICAgY29uc3QgdTMyICpyZWdpc3RlcnMs Cj4+Pj4gKwkJCQkJICAgICBjb25zdCB1MzIgYXJyYXlfc2l6ZSk7Cj4+Pj4gKwo+Pj4+ICAgICAg aW50IHZlZ2ExMF9yZWdfYmFzZV9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKPj4+ PiAgICAgIAo+Pj4+ICAgICAgI2VuZGlmCj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L3NvYzE1X2NvbW1vbi5oCj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9zb2MxNV9jb21tb24uaAo+Pj4+IGluZGV4IDYyYTZlMjEuLjdmNzMxMjUgMTAwNjQ0Cj4+ Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc29jMTVfY29tbW9uLmgKPj4+PiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zb2MxNV9jb21tb24uaAo+Pj4+IEBAIC01 Myw2ICs1Myw5IEBAIHN0cnVjdCBuYmlvX3BjaWVfaW5kZXhfZGF0YSB7Cj4+Pj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgzID09 Cj4+Pj4gcmVnIyNfQkFTRV9JRFggPyBpcCMjX0JBU0VfX0lOU1QjI2luc3QjI19TRUczICsgcmVn IDogXAo+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCj4+Pj4gKGlwIyNfQkFTRV9fSU5TVCMjaW5zdCMjX1NFRzQgKyBy ZWcpKSkpKQo+Pj4+ICAgICAgCj4+Pj4gKyNkZWZpbmUgU09DMTVfUkVHX0VOVFJZKGlwLCBpbnN0 LCByZWcpCWlwIyNfSFdJUCwgaW5zdCwgcmVnIyNfQkFTRV9JRFgsIHJlZwo+Pj4+ICsKPj4+PiAr Cj4+Pj4gICAgICAjZGVmaW5lIFdSRUczMl9GSUVMRDE1KGlwLCBpZHgsIHJlZywgZmllbGQsIHZh bCkJXAo+Pj4+ICAgICAgCVdSRUczMihhZGV2LT5yZWdfb2Zmc2V0W2lwIyNfSFdJUF1baWR4XVtt bSMjcmVnIyNfQkFTRV9JRFhdICsgbW0jI3JlZywJXAo+Pj4+ICAgICAgCShSUkVHMzIoYWRldi0+ cmVnX29mZnNldFtpcCMjX0hXSVBdW2lkeF1bbW0jI3JlZyMjX0JBU0VfSURYXSArIG1tIyNyZWcp CVwKPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdXZkX3Y3XzAu Ywo+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdXZkX3Y3XzAuYwo+Pj4+IGluZGV4 IDY2MGZhNDEuLjY4MjNjN2IgMTAwNjQ0Cj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvdXZkX3Y3XzAuYwo+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3V2 ZF92N18wLmMKPj4+PiBAQCAtMTY4MSw3ICsxNjgxLDggQEAgc3RhdGljIGludCB1dmRfdjdfMF9z ZXRfY2xvY2tnYXRpbmdfc3RhdGUodm9pZCAqaGFuZGxlLAo+Pj4+ICAgICAgc3RhdGljIGNvbnN0 IHN0cnVjdCBhbWRncHVfcmluZ19mdW5jcyB1dmRfdjdfMF9yaW5nX3ZtX2Z1bmNzID0gewo+Pj4+ ICAgICAgCS50eXBlID0gQU1ER1BVX1JJTkdfVFlQRV9VVkQsCj4+Pj4gICAgICAJLmFsaWduX21h c2sgPSAweGYsCj4+Pj4gLQkubm9wID0gUEFDS0VUMChTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgMCwg bW1VVkRfTk9fT1ApLCAwKSwKPj4+PiArCS8qRml4IG1lICBpZiBVVkRfSFdJUCBiYXNlIG9yICBt bVVWRF9OT19PUF9CQVNFX0lEWCBjaGFuZ2VkIGluIGZ1dHVyZSBhc2ljICovCj4+Pj4gKwkubm9w ID0gUEFDS0VUMCgoMHg3ZTAwICsgbW1VVkRfTk9fT1ApLCAwKSwKPj4+PiAgICAgIAkuc3VwcG9y dF82NGJpdF9wdHJzID0gZmFsc2UsCj4+Pj4gICAgICAJLnZtaHViID0gQU1ER1BVX01NSFVCLAo+ Pj4+ICAgICAgCS5nZXRfcnB0ciA9IHV2ZF92N18wX3JpbmdfZ2V0X3JwdHIsIGRpZmYgLS1naXQK Pj4+PiBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3Zjbl92MV8wLmMKPj4+PiBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3Zjbl92MV8wLmMKPj4+PiBpbmRleCBlNDY3M2Y3Li5mOTNj YTIxIDEwMDY0NAo+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3Zjbl92MV8w LmMKPj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92Y25fdjFfMC5jCj4+Pj4g QEAgLTExMDAsNyArMTEwMCw3IEBAIHN0YXRpYyBpbnQgdmNuX3YxXzBfcHJvY2Vzc19pbnRlcnJ1 cHQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4+Pj4gICAgICBzdGF0aWMgY29uc3Qgc3Ry dWN0IGFtZGdwdV9yaW5nX2Z1bmNzIHZjbl92MV8wX2RlY19yaW5nX3ZtX2Z1bmNzID0gewo+Pj4+ ICAgICAgCS50eXBlID0gQU1ER1BVX1JJTkdfVFlQRV9WQ05fREVDLAo+Pj4+ICAgICAgCS5hbGln bl9tYXNrID0gMHhmLAo+Pj4+IC0JLm5vcCA9IFBBQ0tFVDAoU09DMTVfUkVHX09GRlNFVChVVkQs IDAsIG1tVVZEX05PX09QKSwgMCksCj4+Pj4gKwkubm9wID0gUEFDS0VUMCgweDgxZmYsIDApLAo+ Pj4+ICAgICAgCS5zdXBwb3J0XzY0Yml0X3B0cnMgPSBmYWxzZSwKPj4+PiAgICAgIAkudm1odWIg PSBBTURHUFVfTU1IVUIsCj4+Pj4gICAgICAJLmdldF9ycHRyID0gdmNuX3YxXzBfZGVjX3Jpbmdf Z2V0X3JwdHIsCj4+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwo+Pj4gYW1kLWdmeCBtYWlsaW5nIGxpc3QKPj4+IGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCj4+PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2FtZC1nZngKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Xwo+IGFtZC1nZnggbWFpbGluZyBsaXN0Cj4gYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZngg bWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=