From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail.phycard.de ([217.6.246.34] helo=root.phytec.de) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1dyxex-00073d-6L for barebox@lists.infradead.org; Mon, 02 Oct 2017 10:09:14 +0000 Received: from idefix.phytec.de (idefix.phytec.de [172.16.0.10]) by root.phytec.de (Postfix) with ESMTP id 6A2EBA00273 for ; Mon, 2 Oct 2017 12:10:34 +0200 (CEST) References: <20170928231249.4158-1-antonynpavlov@gmail.com> <20170928231249.4158-2-antonynpavlov@gmail.com> <6767ad4e-80b7-2c69-49ff-ecfb64ab19e0@rempel-privat.de> From: Daniel Schultz Message-ID: Date: Mon, 2 Oct 2017 12:08:58 +0200 MIME-Version: 1.0 In-Reply-To: <6767ad4e-80b7-2c69-49ff-ecfb64ab19e0@rempel-privat.de> Content-Language: de-DE List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "barebox" Errors-To: barebox-bounces+u.kleine-koenig=pengutronix.de@lists.infradead.org Subject: Re: [RFC v4 01/10] Add initial RISC-V architecture support To: barebox@lists.infradead.org SGksCgoKT24gMDkvMjkvMjAxNyAwMjowNyBQTSwgT2xla3NpaiBSZW1wZWwgd3JvdGU6Cj4gSGks Cj4KPiBobS4uLiBtb3N0bHkgbG9va3MgaWRlbnRpY2FsIHdpdGggZXhpc3RpbmcgYXJjaAo+Cj4g QW0gMjkuMDkuMjAxNyB1bSAwMToxMiBzY2hyaWViIEFudG9ueSBQYXZsb3Y6Cj4+IFNpZ25lZC1v ZmYtYnk6IEFudG9ueSBQYXZsb3YgPGFudG9ueW5wYXZsb3ZAZ21haWwuY29tPgo+PiAtLQo+PiBU T0RPczoKPj4KPj4gICAgKiBzcGxpdCBwYXRjaDsKPj4gLS0tCj4+ICAgYXJjaC9yaXNjdi9LY29u ZmlnICAgICAgICAgICAgICAgICAgIHwgNzMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK Pj4gICBhcmNoL3Jpc2N2L01ha2VmaWxlICAgICAgICAgICAgICAgICAgfCA2OCArKysrKysrKysr KysrKysrKysrKysrKysrKysKPj4gICBhcmNoL3Jpc2N2L2Jvb3QvTWFrZWZpbGUgICAgICAgICAg ICAgfCAgMiArCj4+ICAgYXJjaC9yaXNjdi9ib290L21haW5fZW50cnkuYyAgICAgICAgIHwgNDAg KysrKysrKysrKysrKysrKwo+PiAgIGFyY2gvcmlzY3YvYm9vdC9zdGFydC5TICAgICAgICAgICAg ICB8IDc0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+PiAgIGFyY2gvcmlzY3YvZHRz Ly5naXRpZ25vcmUgICAgICAgICAgICB8ICA+ICBhcmNoL3Jpc2N2L2R0cy9NYWtlZmlsZSAgICAg ICAgICAgICAgfCAgOSArKysrCj4+ICAgYXJjaC9yaXNjdi9kdHMvc2tlbGV0b24uZHRzaSAgICAg ICAgIHwgMTMgKysrKysrCj4+ICAgYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9iYXJlYm94LmggICAg IHwgIDEgKwo+PiAgIGFyY2gvcmlzY3YvaW5jbHVkZS9hc20vYml0b3BzLmggICAgICB8IDM1ICsr KysrKysrKysrKysrCj4+ICAgYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9iaXRzcGVybG9uZy5oIHwg MTAgKysrKwo+PiAgIGFyY2gvcmlzY3YvaW5jbHVkZS9hc20vYnl0ZW9yZGVyLmggICB8IDEwICsr KysKPj4gICBhcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2NvbW1vbi5oICAgICAgfCAgNiArKysKPj4g ICBhcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2VsZi5oICAgICAgICAgfCAxMSArKysrKwo+PiAgIGFy Y2gvcmlzY3YvaW5jbHVkZS9hc20vaW8uaCAgICAgICAgICB8ICA4ICsrKysKPj4gICBhcmNoL3Jp c2N2L2luY2x1ZGUvYXNtL21tdS5oICAgICAgICAgfCAgNiArKysKPj4gICBhcmNoL3Jpc2N2L2lu Y2x1ZGUvYXNtL3Bvc2l4X3R5cGVzLmggfCAgMSArCj4+ICAgYXJjaC9yaXNjdi9pbmNsdWRlL2Fz bS9zZWN0aW9ucy5oICAgIHwgIDEgKwo+PiAgIGFyY2gvcmlzY3YvaW5jbHVkZS9hc20vc3RyaW5n LmggICAgICB8ICAxICsKPj4gICBhcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3N3YWIuaCAgICAgICAg fCAgNiArKysKPj4gICBhcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3R5cGVzLmggICAgICAgfCA2MCAr KysrKysrKysrKysrKysrKysrKysrKysKPj4gICBhcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3VuYWxp Z25lZC5oICAgfCAxOSArKysrKysrKwo+PiAgIGFyY2gvcmlzY3YvbGliLy5naXRpZ25vcmUgICAg ICAgICAgICB8ICAxICsKPj4gICBhcmNoL3Jpc2N2L2xpYi9NYWtlZmlsZSAgICAgICAgICAgICAg fCAgOSArKysrCj4+ICAgYXJjaC9yaXNjdi9saWIvYXNobGRpMy5jICAgICAgICAgICAgIHwgMjgg KysrKysrKysrKysrCj4+ICAgYXJjaC9yaXNjdi9saWIvYXNocmRpMy5jICAgICAgICAgICAgIHwg MzAgKysrKysrKysrKysrCj4+ICAgYXJjaC9yaXNjdi9saWIvYXNtLW9mZnNldHMuYyAgICAgICAg IHwgMTIgKysrKysKPj4gICBhcmNoL3Jpc2N2L2xpYi9iYXJlYm94Lmxkcy5TICAgICAgICAgfCA4 OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPj4gICBhcmNoL3Jpc2N2L2xp Yi9kdGIuYyAgICAgICAgICAgICAgICAgfCA0MSArKysrKysrKysrKysrKysrKwo+PiAgIGFyY2gv cmlzY3YvbGliL2xpYmdjYy5oICAgICAgICAgICAgICB8IDI5ICsrKysrKysrKysrKwo+PiAgIGFy Y2gvcmlzY3YvbGliL2xzaHJkaTMuYyAgICAgICAgICAgICB8IDI4ICsrKysrKysrKysrKwo+PiAg IGFyY2gvcmlzY3YvbGliL3Jpc2N2X3RpbWVyLmMgICAgICAgICB8IDY4ICsrKysrKysrKysrKysr KysrKysrKysrKysrKwo+PiAgIGRyaXZlcnMvb2YvS2NvbmZpZyAgICAgICAgICAgICAgICAgICB8 ICAyICstCj4+ICAgMzMgZmlsZXMgY2hhbmdlZCwgNzkxIGluc2VydGlvbnMoKyksIDEgZGVsZXRp b24oLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvS2NvbmZpZyBiL2FyY2gvcmlzY3Yv S2NvbmZpZwo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwMDAuLmIyZjA4 MTdlZgo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL2FyY2gvcmlzY3YvS2NvbmZpZwo+PiBAQCAt MCwwICsxLDczIEBACj4+ICtjb25maWcgUklTQ1YKPj4gKwlib29sCj4+ICsJc2VsZWN0IEdFTkVS SUNfRklORF9ORVhUX0JJVAo+PiArCXNlbGVjdCBIQVZFX0NPTkZJR1VSQUJMRV9NRU1PUllfTEFZ T1VUCj4+ICsJc2VsZWN0IEhBVkVfQ09ORklHVVJBQkxFX1RFWFRfQkFTRQo+PiArCXNlbGVjdCBH UElPTElCCj4+ICsJc2VsZWN0IE9GVFJFRQo+PiArCXNlbGVjdCBDT01NT05fQ0xLCj4+ICsJc2Vs ZWN0IENPTU1PTl9DTEtfT0ZfUFJPVklERVIKPj4gKwlzZWxlY3QgQ0xLREVWX0xPT0tVUAo+PiAr CWRlZmF1bHQgeQo+PiArCj4+ICtjb25maWcgQVJDSF9URVhUX0JBU0UKPj4gKwloZXgKPj4gKwlk ZWZhdWx0IDB4MAo+PiArCj4+ICtjb25maWcgR0VORVJJQ19MSU5LRVJfU0NSSVBUCj4+ICsJYm9v bAo+PiArCWRlZmF1bHQgeQo+PiArCj4+ICttZW51ICJNYWNoaW5lIHNlbGVjdGlvbiIKPj4gKwo+ PiArY2hvaWNlCj4+ICsJcHJvbXB0ICJDUFUgc2VsZWN0aW9uIgo+PiArCWRlZmF1bHQgQ1BVX1JW X0dFTkVSSUMKPj4gKwo+PiArY29uZmlnIENQVV9SVl9HRU5FUklDCj4+ICsJYm9vbCAiR2VuZXJp YyBSSVNDLVYiCj4+ICsJc2VsZWN0IENQVV9TVVBQT1JUU18zMkJJVF9LRVJORUwKPj4gKwlzZWxl Y3QgQ1BVX1NVUFBPUlRTXzY0QklUX0tFUk5FTAo+PiArCj4+ICtlbmRjaG9pY2UKPj4gKwo+PiAr Y29uZmlnIENQVV9TVVBQT1JUU18zMkJJVF9LRVJORUwKPj4gKwlib29sCj4+ICtjb25maWcgQ1BV X1NVUFBPUlRTXzY0QklUX0tFUk5FTAo+PiArCWJvb2wKPj4gKwo+PiArY2hvaWNlCj4+ICsJcHJv bXB0ICJiYXJlYm94IGNvZGUgbW9kZWwiCj4+ICsJZGVmYXVsdCA2NEJJVAo+PiArCj4+ICtjb25m aWcgMzJCSVQKPj4gKwlib29sICIzMi1iaXQgYmFyZWJveCIKPj4gKwlkZXBlbmRzIG9uIENQVV9T VVBQT1JUU18zMkJJVF9LRVJORUwKPj4gKwloZWxwCj4+ICsJICBTZWxlY3QgdGhpcyBvcHRpb24g dG8gYnVpbGQgYSAzMi1iaXQgYmFyZWJveC4KPj4gKwo+PiArY29uZmlnIDY0QklUCj4+ICsJYm9v bCAiNjQtYml0IGJhcmVib3giCj4+ICsJZGVwZW5kcyBvbiBDUFVfU1VQUE9SVFNfNjRCSVRfS0VS TkVMCj4+ICsJaGVscAo+PiArCSAgU2VsZWN0IHRoaXMgb3B0aW9uIHRvIGJ1aWxkIGEgNjQtYml0 IGJhcmVib3guCj4+ICsKPj4gK2VuZGNob2ljZQo+PiArCj4+ICtjb25maWcgQlVJTFRJTl9EVEIK Pj4gKwlib29sICJsaW5rIGEgRFRCIGludG8gdGhlIGJhcmVib3ggaW1hZ2UiCj4+ICsJZGVwZW5k cyBvbiBPRlRSRUUKPj4gKwo+PiArY29uZmlnIEJVSUxUSU5fRFRCX05BTUUKPj4gKwlzdHJpbmcg IkRUQiB0byBidWlsZCBpbnRvIHRoZSBiYXJlYm94IGltYWdlIgo+PiArCWRlcGVuZHMgb24gQlVJ TFRJTl9EVEIKPj4gKwo+PiArZW5kbWVudQo+PiArCj4+ICtzb3VyY2UgY29tbW9uL0tjb25maWcK Pj4gK3NvdXJjZSBjb21tYW5kcy9LY29uZmlnCj4+ICtzb3VyY2UgbmV0L0tjb25maWcKPj4gK3Nv dXJjZSBkcml2ZXJzL0tjb25maWcKPj4gK3NvdXJjZSBmcy9LY29uZmlnCj4+ICtzb3VyY2UgbGli L0tjb25maWcKPj4gK3NvdXJjZSBjcnlwdG8vS2NvbmZpZwo+PiBkaWZmIC0tZ2l0IGEvYXJjaC9y aXNjdi9NYWtlZmlsZSBiL2FyY2gvcmlzY3YvTWFrZWZpbGUKPj4gbmV3IGZpbGUgbW9kZSAxMDA2 NDQKPj4gaW5kZXggMDAwMDAwMDAwLi40ZTMzMThjZjEKPj4gLS0tIC9kZXYvbnVsbAo+PiArKysg Yi9hcmNoL3Jpc2N2L01ha2VmaWxlCj4+IEBAIC0wLDAgKzEsNjggQEAKPj4gK0NQUEZMQUdTICs9 IC1mbm8tc3RyaWN0LWFsaWFzaW5nCj4+ICsKPj4gK2NmbGFncy15ICs9IC1mbm8tcGljIC1waXBl Cj4+ICtjZmxhZ3MteSArPSAtV2FsbCAtV21pc3NpbmctcHJvdG90eXBlcyAtV3N0cmljdC1wcm90 b3R5cGVzIFwKPj4gKwktV25vLXVuaW5pdGlhbGl6ZWQgLVduby1mb3JtYXQgLVduby1tYWluIC1t Y21vZGVsPW1lZGFueQo+PiArCj4+ICtMREZMQUdTICs9ICQobGRmbGFncy15KQo+PiArTERGTEFH U19iYXJlYm94ICs9IC1ub3N0ZGxpYgo+PiArCj4+ICtURVhUX0JBU0UgPSAkKENPTkZJR19URVhU X0JBU0UpCj4+ICtDUFBGTEFHUyArPSAtRFRFWFRfQkFTRT0kKENPTkZJR19URVhUX0JBU0UpCj4+ ICsKPj4gK2lmbmRlZiBDT05GSUdfTU9EVUxFUwo+PiArIyBBZGQgY2xlYW51cCBmbGFncwo+PiAr Q1BQRkxBR1MgKz0gLWZkYXRhLXNlY3Rpb25zIC1mZnVuY3Rpb24tc2VjdGlvbnMKPj4gK0xERkxB R1NfYmFyZWJveCArPSAtc3RhdGljIC0tZ2Mtc2VjdGlvbnMKPj4gK2VuZGlmCj4+ICsKPj4gK0tC VUlMRF9CSU5BUlkgOj0gYmFyZWJveC5iaW4KPj4gKwo+PiArbWFjaGRpcnMgOj0gJChwYXRzdWJz dCAlLGFyY2gvcmlzY3YvbWFjaC0lLywkKG1hY2hpbmUteSkpCj4+ICsKPj4gK2lmbmVxICgkKGJv YXJkLXkpLCkKPj4gK0JPQVJEIDo9IGFyY2gvcmlzY3YvYm9hcmRzLyQoYm9hcmQteSkvCj4+ICtl bHNlCj4+ICtCT0FSRCA6PQo+PiArZW5kaWYKPj4gKwo+PiAraWZlcSAoJChLQlVJTERfU1JDKSwp Cj4+ICtDUFBGTEFHUyArPSAtSSQoQk9BUkQpL2luY2x1ZGUKPj4gK2Vsc2UKPj4gK0NQUEZMQUdT ICs9IC1JJChzcmN0cmVlKS8kKEJPQVJEKS9pbmNsdWRlCj4+ICtlbmRpZgo+PiArCj4+ICtpZmVx ICgkKEtCVUlMRF9TUkMpLCkKPj4gK0NQUEZMQUdTICs9ICQocGF0c3Vic3QgJSwtSSVpbmNsdWRl LCQobWFjaGRpcnMpKQo+PiArZWxzZQo+PiArQ1BQRkxBR1MgKz0gJChwYXRzdWJzdCAlLC1JJChz cmN0cmVlKS8laW5jbHVkZSwkKG1hY2hkaXJzKSkKPj4gK2VuZGlmCj4+ICsKPj4gK2FyY2hwcmVw YXJlOiBtYWtldG9vbHMKPj4gKwo+PiArUEhPTlkgKz0gbWFrZXRvb2xzCj4+ICsKPj4gK2lmbmVx ICgkKG1hY2hpbmUteSksKQo+PiArTUFDSCAgOj0gYXJjaC9yaXNjdi9tYWNoLSQobWFjaGluZS15 KS8KPj4gK2Vsc2UKPj4gK01BQ0ggIDo9Cj4+ICtlbmRpZgo+PiArCj4+ICtpZm5lcSAoJChib2Fy ZC15KSwpCj4+ICtCT0FSRCA6PSBhcmNoL3Jpc2N2L2JvYXJkcy8kKGJvYXJkLXkpLwo+PiArZWxz ZQo+PiArQk9BUkQgOj0KPj4gK2VuZGlmCj4+ICsKPj4gK2NvbW1vbi15ICs9ICQoQk9BUkQpICQo TUFDSCkKPj4gK2NvbW1vbi15ICs9IGFyY2gvcmlzY3YvbGliLwo+PiArY29tbW9uLXkgKz0gYXJj aC9yaXNjdi9ib290Lwo+PiArCj4+ICtjb21tb24tJChDT05GSUdfT0ZUUkVFKSArPSBhcmNoL3Jp c2N2L2R0cy8KPj4gKwo+PiArQ1BQRkxBR1MgKz0gJChjZmxhZ3MteSkKPj4gK0NGTEFHUyArPSAk KGNmbGFncy15KQo+PiArCj4+ICtsZHMteQk6PSBhcmNoL3Jpc2N2L2xpYi9iYXJlYm94Lmxkcwo+ PiArCj4+ICtDTEVBTl9GSUxFUyArPSBhcmNoL3Jpc2N2L2xpYi9iYXJlYm94Lmxkcwo+PiBkaWZm IC0tZ2l0IGEvYXJjaC9yaXNjdi9ib290L01ha2VmaWxlIGIvYXJjaC9yaXNjdi9ib290L01ha2Vm aWxlCj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4+IGluZGV4IDAwMDAwMDAwMC4uZDZkMjhjZTY1 Cj4+IC0tLSAvZGV2L251bGwKPj4gKysrIGIvYXJjaC9yaXNjdi9ib290L01ha2VmaWxlCj4+IEBA IC0wLDAgKzEsMiBAQAo+PiArb2JqLXkgKz0gc3RhcnQubwo+PiArb2JqLXkgKz0gbWFpbl9lbnRy eS5vCj4+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2Jvb3QvbWFpbl9lbnRyeS5jIGIvYXJjaC9y aXNjdi9ib290L21haW5fZW50cnkuYwo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAw MDAwMDAwMDAuLjE4ZGI4NmRhNQo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL2FyY2gvcmlzY3Yv Ym9vdC9tYWluX2VudHJ5LmMKPj4gQEAgLTAsMCArMSw0MCBAQAo+PiArLyoKPj4gKyAqIENvcHly aWdodCAoQykgMjAxNiBBbnRvbnkgUGF2bG92IDxhbnRvbnlucGF2bG92QGdtYWlsLmNvbT4KPj4g KyAqCj4+ICsgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBiYXJlYm94Lgo+PiArICogU2VlIGZpbGUg Q1JFRElUUyBmb3IgbGlzdCBvZiBwZW9wbGUgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMgcHJvamVj dC4KPj4gKyAqCj4+ICsgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCj4+ICsgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwo+PiArICogcHVibGlzaGVkIGJ5IHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YKPj4gKyAqIHRo ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgo+PiArICoK Pj4gKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAo+PiArICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKPj4gKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKPj4gKyAqIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCj4+ICsgKgo+PiArICovCj4+ICsKPj4g KyNpbmNsdWRlIDxjb21tb24uaD4KPj4gKyNpbmNsdWRlIDxtZW1vcnkuaD4KPj4gKyNpbmNsdWRl IDxhc20tZ2VuZXJpYy9tZW1vcnlfbGF5b3V0Lmg+Cj4+ICsjaW5jbHVkZSA8YXNtL3NlY3Rpb25z Lmg+Cj4+ICsKPj4gK3ZvaWQgbWFpbl9lbnRyeSh2b2lkKTsKPj4gKwo+PiArLyoqCj4+ICsgKiBD YWxsZWQgcGxhaW5seSBmcm9tIGFzc2VtYmxlciBjb2RlCj4+ICsgKgo+PiArICogQG5vdGUgVGhl IEMgZW52aXJvbm1lbnQgaXNuJ3QgaW5pdGlhbGl6ZWQgeWV0Cj4+ICsgKi8KPj4gK3ZvaWQgbWFp bl9lbnRyeSh2b2lkKQo+PiArewo+PiArCS8qIGNsZWFyIHRoZSBCU1MgZmlyc3QgKi8KPj4gKwlt ZW1zZXQoX19ic3Nfc3RhcnQsIDB4MDAsIF9fYnNzX3N0b3AgLSBfX2Jzc19zdGFydCk7Cj4+ICsK Pj4gKwltZW1fbWFsbG9jX2luaXQoKHZvaWQgKilNQUxMT0NfQkFTRSwKPj4gKwkJCSh2b2lkICop KE1BTExPQ19CQVNFICsgTUFMTE9DX1NJWkUgLSAxKSk7Cj4+ICsKPj4gKwlzdGFydF9iYXJlYm94 KCk7Cj4+ICt9Cj4+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2Jvb3Qvc3RhcnQuUyBiL2FyY2gv cmlzY3YvYm9vdC9zdGFydC5TCj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4+IGluZGV4IDAwMDAw MDAwMC4uMmZkMDBmNjNkCj4+IC0tLSAvZGV2L251bGwKPj4gKysrIGIvYXJjaC9yaXNjdi9ib290 L3N0YXJ0LlMKPj4gQEAgLTAsMCArMSw3NCBAQAo+PiArLyoKPj4gKyAqIFN0YXJ0dXAgQ29kZSBm b3IgTUlQUyBDUFUKPj4gKyAqCj4+ICsgKiBiYXNlZCBvbiBjb3JlYm9vdC9zcmMvYXJjaC9yaXNj di9ib290YmxvY2suUwo+PiArICoKPj4gKyAqIENvcHlyaWdodCAoQykgMjAxNiBBbnRvbnkgUGF2 bG92IDxhbnRvbnlucGF2bG92QGdtYWlsLmNvbT4KPj4gKyAqCj4+ICsgKiBUaGlzIGZpbGUgaXMg cGFydCBvZiBiYXJlYm94Lgo+PiArICogU2VlIGZpbGUgQ1JFRElUUyBmb3IgbGlzdCBvZiBwZW9w bGUgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMgcHJvamVjdC4KPj4gKyAqCj4+ICsgKiBUaGlzIHBy b2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeQo+PiArICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSB2ZXJzaW9uIDIKPj4gKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLgo+PiArICoKPj4gKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAo+PiArICogYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKPj4gKyAqIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0 aGUKPj4gKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCj4+ ICsgKgo+PiArICovCj4+ICsKPj4gKyNpbmNsdWRlIDxhc20tZ2VuZXJpYy9tZW1vcnlfbGF5b3V0 Lmg+Cj4+ICsKPj4gKwkudGV4dAo+PiArCS5zZWN0aW9uICIudGV4dF9lbnRyeSIKPj4gKwkuYWxp Z24gMgo+PiArCj4+ICsuZ2xvYmwgX3N0YXJ0Cj4+ICtfc3RhcnQ6Cj4+ICsJbGkgc3AsIFNUQUNL X0JBU0UgKyBTVEFDS19TSVpFCj4+ICsKPj4gKwkjIG1ha2Ugcm9vbSBmb3IgSExTIGFuZCBpbml0 aWFsaXplIGl0Cj4+ICsJYWRkaSBzcCwgc3AsIC02NCAvKiBNRU5UUllfRlJBTUVfU0laRSAqLwo+ PiArCj4+ICsJIyBwb2lzb24gdGhlIHN0YWNrCj4+ICsJbGkgdDEsIFNUQUNLX0JBU0UKPj4gKwls aSB0MCwgMHhkZWFkYmVlZgo+PiArCXN3IHQwLCAwKHQxKQo+PiArCj4+ICsJIyBjbGVhciBhbnkg cGVuZGluZyBpbnRlcnJ1cHRzCj4+ICsJLy9jc3J3aSBtaXAsIDAKPiBzaG91bGQgYmUgcmVtb3Zl ZC4KPgo+PiArCS8qIGNvcHkgYmFyZWJveCB0byBsaW5rIGxvY2F0aW9uICovCj4+ICsKPj4gKwls YQlhMCwgX3N0YXJ0CS8qIGEwIDwtIF9zdGFydCBhY3R1YWwgYWRkcmVzcyAqLwo+PiArCWxpCWEx LCBDT05GSUdfVEVYVF9CQVNFCS8qIGExIDwtIF9zdGFydCBsaW5rIGFkZHJlc3MgKi8KPj4gKwo+ PiArCWJlcQlhMCwgYTEsIG1haW5fZW50cnkKPj4gKwo+PiArCWxhCWEyLCBfX2Jzc19zdGFydAo+ PiArCj4+ICsjZGVmaW5lIExPTkdTSVpFIDQKPj4gKwo+PiArY29weV9sb29wOgo+PiArCS8qIGNv cHkgZnJvbSBzb3VyY2UgYWRkcmVzcyBbYTBdICovCj4+ICsJbHcJdDAsIExPTkdTSVpFICogMChh MCkKPj4gKwlsdwl0MSwgTE9OR1NJWkUgKiAxKGEwKQo+PiArCWx3CXQyLCBMT05HU0laRSAqIDIo YTApCj4+ICsJbHcJdDMsIExPTkdTSVpFICogMyhhMCkKPj4gKwkvKiBjb3B5IHRvIHRhcmdldCBh ZGRyZXNzIFthMV0gKi8KPj4gKwlzdwl0MCwgTE9OR1NJWkUgKiAwKGExKQo+PiArCXN3CXQxLCBM T05HU0laRSAqIDEoYTEpCj4+ICsJc3cJdDIsIExPTkdTSVpFICogMihhMSkKPj4gKwlzdwl0Mywg TE9OR1NJWkUgKiAzKGExKQo+PiArCWFkZGkJYTAsIGEwLCBMT05HU0laRSAqIDIKPj4gKwlhZGRp CWExLCBhMSwgTE9OR1NJWkUgKiAyCj4+ICsJYmdldQlhMiwgYTAsIGNvcHlfbG9vcAo+PiArCj4+ ICsJLyogQWxhcyEgQXQgdGhlIG1vbWVudCBJIGNhbid0IGxvYWQgbWFpbl9lbnRyeSBfX2xpbmtf XyBhZGRyZXNzCj4+ICsJICAgaW50byBhMCB3aXRoIGxhLiBVc2UgQ09ORklHX1RFWFRfQkFTRSBp bnN0ZWFkLiBUaGlzIHNvbHV0aW9uCj4+ICsJICAgbGVhZHMgdG8gZXh0cmEgY3ljbGVzIGZvciBy ZXBlYXQgc3AgaW5pdGlhbGl6YXRpb24uICovCj4+ICsKPj4gKwlsaQlhMCwgQ09ORklHX1RFWFRf QkFTRQo+PiArCWphbHIJYTAKPj4gZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvZHRzLy5naXRpZ25v cmUgYi9hcmNoL3Jpc2N2L2R0cy8uZ2l0aWdub3JlCj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4+ IGluZGV4IDAwMDAwMDAwMC4uMDc3OTAzYzUwCj4+IC0tLSAvZGV2L251bGwKPj4gKysrIGIvYXJj aC9yaXNjdi9kdHMvLmdpdGlnbm9yZQo+PiBAQCAtMCwwICsxIEBACj4+ICsqZHRiKgo+PiBkaWZm IC0tZ2l0IGEvYXJjaC9yaXNjdi9kdHMvTWFrZWZpbGUgYi9hcmNoL3Jpc2N2L2R0cy9NYWtlZmls ZQo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwMDAuLmY4MzgwYjExYwo+ PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL2FyY2gvcmlzY3YvZHRzL01ha2VmaWxlCj4+IEBAIC0w LDAgKzEsOSBAQAo+PiArQlVJTFRJTl9EVEIgOj0gJChwYXRzdWJzdCAiJSIsJSwkKENPTkZJR19C VUlMVElOX0RUQl9OQU1FKSkKPj4gK29iai0kKENPTkZJR19CVUlMVElOX0RUQikgKz0gJChCVUlM VElOX0RUQikuZHRiLm8KPj4gKwo+PiArIyBqdXN0IHRvIGJ1aWxkIGEgYnVpbHQtaW4uby4gT3Ro ZXJ3aXNlIGNvbXBpbGF0aW9uIGZhaWxzIHdoZW4gbm8gZGV2aWNldHJlZSBpcwo+PiArIyBjcmVh dGVkLgo+PiArb2JqLSArPSBkdW1teS5vCj4+ICsKPj4gK2Fsd2F5cyA6PSAkKGR0Yi15KQo+PiAr Y2xlYW4tZmlsZXMgOj0gKi5kdGIgKi5kdGIuUyAuKi5kdGMgLioucHJlIC4qLmR0cwo+PiBkaWZm IC0tZ2l0IGEvYXJjaC9yaXNjdi9kdHMvc2tlbGV0b24uZHRzaSBiL2FyY2gvcmlzY3YvZHRzL3Nr ZWxldG9uLmR0c2kKPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5kZXggMDAwMDAwMDAwLi4z OGVhZDgyMWIKPj4gLS0tIC9kZXYvbnVsbAo+PiArKysgYi9hcmNoL3Jpc2N2L2R0cy9za2VsZXRv bi5kdHNpCj4+IEBAIC0wLDAgKzEsMTMgQEAKPj4gKy8qCj4+ICsgKiBTa2VsZXRvbiBkZXZpY2Ug dHJlZTsgdGhlIGJhcmUgbWluaW11bSBuZWVkZWQgdG8gYm9vdDsganVzdCBpbmNsdWRlIGFuZAo+ PiArICogYWRkIGEgY29tcGF0aWJsZSB2YWx1ZS4gIFRoZSBib290bG9hZGVyIHdpbGwgdHlwaWNh bGx5IHBvcHVsYXRlIHRoZSBtZW1vcnkKPj4gKyAqIG5vZGUuCj4+ICsgKi8KPj4gKwo+PiArLyB7 Cj4+ICsJI2FkZHJlc3MtY2VsbHMgPSA8Mj47Cj4+ICsJI3NpemUtY2VsbHMgPSA8MT47Cj4+ICsJ Y2hvc2VuIHsgfTsKPj4gKwlhbGlhc2VzIHsgfTsKPj4gKwltZW1vcnkgeyBkZXZpY2VfdHlwZSA9 ICJtZW1vcnkiOyByZWcgPSA8MCAwIDA+OyB9Owo+ICJyZWcgPSA8MCAwPiIgaW5zdGVhZD8KPgo+ PiArfTsKPj4gZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vYmFyZWJveC5oIGIv YXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9iYXJlYm94LmgKPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQK Pj4gaW5kZXggMDAwMDAwMDAwLi4yOTk3NTg3ZDgKPj4gLS0tIC9kZXYvbnVsbAo+PiArKysgYi9h cmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2JhcmVib3guaAo+PiBAQCAtMCwwICsxIEBACj4+ICsvKiBk dW1teSAqLwo+PiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9iaXRvcHMuaCBi L2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vYml0b3BzLmgKPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQK Pj4gaW5kZXggMDAwMDAwMDAwLi5lNzdhYjgzMjAKPj4gLS0tIC9kZXYvbnVsbAo+PiArKysgYi9h cmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2JpdG9wcy5oCj4+IEBAIC0wLDAgKzEsMzUgQEAKPj4gKy8q Cj4+ICsgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yCj4+ICsgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwo+PiArICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YKPj4gKyAqIHRoZSBMaWNlbnNl LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgo+PiArICoKPj4gKyAqIFRo aXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLAo+PiArICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YKPj4gKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKPj4gKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCj4+ICsgKgo+PiArICoKPj4gKyAqLwo+PiArCj4+ICsj aWZuZGVmIF9BU01fQklUT1BTX0hfCj4+ICsjZGVmaW5lIF9BU01fQklUT1BTX0hfCj4+ICsKPj4g KyNpbmNsdWRlIDxhc20tZ2VuZXJpYy9iaXRvcHMvX19mZnMuaD4KPj4gKyNpbmNsdWRlIDxhc20t Z2VuZXJpYy9iaXRvcHMvX19mbHMuaD4KPj4gKyNpbmNsdWRlIDxhc20tZ2VuZXJpYy9iaXRvcHMv ZmZzLmg+Cj4+ICsjaW5jbHVkZSA8YXNtLWdlbmVyaWMvYml0b3BzL2Zscy5oPgo+PiArI2luY2x1 ZGUgPGFzbS1nZW5lcmljL2JpdG9wcy9mZnouaD4KPj4gKyNpbmNsdWRlIDxhc20tZ2VuZXJpYy9i aXRvcHMvaHdlaWdodC5oPgo+PiArI2luY2x1ZGUgPGFzbS1nZW5lcmljL2JpdG9wcy9mbHM2NC5o Pgo+PiArI2luY2x1ZGUgPGFzbS1nZW5lcmljL2JpdG9wcy9maW5kLmg+Cj4+ICsjaW5jbHVkZSA8 YXNtLWdlbmVyaWMvYml0b3BzL29wcy5oPgo+PiArCj4+ICsjZGVmaW5lIHNldF9iaXQoeCwgeSkJ CQlfX3NldF9iaXQoeCwgeSkKPj4gKyNkZWZpbmUgY2xlYXJfYml0KHgsIHkpCQkJX19jbGVhcl9i aXQoeCwgeSkKPj4gKyNkZWZpbmUgY2hhbmdlX2JpdCh4LCB5KQkJX19jaGFuZ2VfYml0KHgsIHkp Cj4+ICsjZGVmaW5lIHRlc3RfYW5kX3NldF9iaXQoeCwgeSkJCV9fdGVzdF9hbmRfc2V0X2JpdCh4 LCB5KQo+PiArI2RlZmluZSB0ZXN0X2FuZF9jbGVhcl9iaXQoeCwgeSkJX190ZXN0X2FuZF9jbGVh cl9iaXQoeCwgeSkKPj4gKyNkZWZpbmUgdGVzdF9hbmRfY2hhbmdlX2JpdCh4LCB5KQlfX3Rlc3Rf YW5kX2NoYW5nZV9iaXQoeCwgeSkKPj4gKwo+PiArI2VuZGlmIC8qIF9BU01fQklUT1BTX0hfICov Cj4+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2JpdHNwZXJsb25nLmggYi9h cmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2JpdHNwZXJsb25nLmgKPj4gbmV3IGZpbGUgbW9kZSAxMDA2 NDQKPj4gaW5kZXggMDAwMDAwMDAwLi40NjQxZTdlNDgKPj4gLS0tIC9kZXYvbnVsbAo+PiArKysg Yi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2JpdHNwZXJsb25nLmgKPj4gQEAgLTAsMCArMSwxMCBA QAo+PiArI2lmbmRlZiBfX0FTTV9CSVRTUEVSTE9OR19ICj4+ICsjZGVmaW5lIF9fQVNNX0JJVFNQ RVJMT05HX0gKPj4gKwo+PiArI2lmZGVmIF9fcmlzY3Y2NAo+PiArI2RlZmluZSBCSVRTX1BFUl9M T05HIDY0Cj4+ICsjZWxzZQo+PiArI2RlZmluZSBCSVRTX1BFUl9MT05HIDMyCj4+ICsjZW5kaWYK Pj4gKwo+PiArI2VuZGlmIC8qIF9fQVNNX0JJVFNQRVJMT05HX0ggKi8KPj4gZGlmZiAtLWdpdCBh L2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vYnl0ZW9yZGVyLmggYi9hcmNoL3Jpc2N2L2luY2x1ZGUv YXNtL2J5dGVvcmRlci5oCj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4+IGluZGV4IDAwMDAwMDAw MC4uNzc4YmI3MjI0Cj4+IC0tLSAvZGV2L251bGwKPj4gKysrIGIvYXJjaC9yaXNjdi9pbmNsdWRl L2FzbS9ieXRlb3JkZXIuaAo+PiBAQCAtMCwwICsxLDEwIEBACj4+ICsjaWZuZGVmIF9BU01fUklT Q1ZfQllURU9SREVSX0gKPj4gKyNkZWZpbmUgX0FTTV9SSVNDVl9CWVRFT1JERVJfSAo+PiArCj4+ ICsjaWYgZGVmaW5lZChfX1JJU0NWRUJfXykKPj4gKyNpbmNsdWRlIDxsaW51eC9ieXRlb3JkZXIv YmlnX2VuZGlhbi5oPgo+PiArI2Vsc2UKPj4gKyNpbmNsdWRlIDxsaW51eC9ieXRlb3JkZXIvbGl0 dGxlX2VuZGlhbi5oPgo+PiArI2VuZGlmCj4+ICsKPj4gKyNlbmRpZiAvKiBfQVNNX1JJU0NWX0JZ VEVPUkRFUl9IICovCj4+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2NvbW1v bi5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9jb21tb24uaAo+PiBuZXcgZmlsZSBtb2RlIDEw MDY0NAo+PiBpbmRleCAwMDAwMDAwMDAuLmJjOGExN2UzMAo+PiAtLS0gL2Rldi9udWxsCj4+ICsr KyBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vY29tbW9uLmgKPj4gQEAgLTAsMCArMSw2IEBACj4+ ICsjaWZuZGVmIEFTTV9SSVNDVl9DT01NT05fSAo+PiArI2RlZmluZSBBU01fUklTQ1ZfQ09NTU9O X0gKPj4gKwo+PiArLyogbm90aGluZyBzcGVjaWFsIHlldCAqLwo+PiArCj4+ICsjZW5kaWYgLyog QVNNX1JJU0NWX0NPTU1PTl9IICovCj4+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUv YXNtL2VsZi5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9lbGYuaAo+PiBuZXcgZmlsZSBtb2Rl IDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwMDAuLjcxMzRmYTA1OAo+PiAtLS0gL2Rldi9udWxsCj4+ ICsrKyBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vZWxmLmgKPj4gQEAgLTAsMCArMSwxMSBAQAo+ PiArI2lmbmRlZiBfX0FTTV9SSVNDVl9FTEZfSF9fCj4+ICsjZGVmaW5lIF9fQVNNX1JJU0NWX0VM Rl9IX18KPj4gKwo+PiArI2lmIF9fU0laRU9GX1BPSU5URVJfXyA9PSA4Cj4+ICsjZGVmaW5lIEVM Rl9DTEFTUwlFTEZDTEFTUzY0Cj4+ICsjZGVmaW5lIENPTkZJR19QSFlTX0FERFJfVF82NEJJVAo+ PiArI2Vsc2UKPj4gKyNkZWZpbmUgRUxGX0NMQVNTCUVMRkNMQVNTMzIKPj4gKyNlbmRpZgo+PiAr Cj4+ICsjZW5kaWYgLyogX19BU01fUklTQ1ZfRUxGX0hfXyAqLwo+PiBkaWZmIC0tZ2l0IGEvYXJj aC9yaXNjdi9pbmNsdWRlL2FzbS9pby5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9pby5oCj4+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4+IGluZGV4IDAwMDAwMDAwMC4uM2NkZWE3ZmNhCj4+IC0t LSAvZGV2L251bGwKPj4gKysrIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9pby5oCj4+IEBAIC0w LDAgKzEsOCBAQAo+PiArI2lmbmRlZiBfX0FTTV9SSVNDVl9JT19ICj4+ICsjZGVmaW5lIF9fQVNN X1JJU0NWX0lPX0gKPj4gKwo+PiArI2RlZmluZSBJT19TUEFDRV9MSU1JVCAwCj4+ICsKPj4gKyNp bmNsdWRlIDxhc20tZ2VuZXJpYy9pby5oPgo+PiArCj4+ICsjZW5kaWYgLyogX19BU01fUklTQ1Zf SU9fSCAqLwo+PiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9tbXUuaCBiL2Fy Y2gvcmlzY3YvaW5jbHVkZS9hc20vbW11LmgKPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5k ZXggMDAwMDAwMDAwLi45NWFmODcxNDIKPj4gLS0tIC9kZXYvbnVsbAo+PiArKysgYi9hcmNoL3Jp c2N2L2luY2x1ZGUvYXNtL21tdS5oCj4+IEBAIC0wLDAgKzEsNiBAQAo+PiArI2lmbmRlZiBfX0FT TV9NTVVfSAo+PiArI2RlZmluZSBfX0FTTV9NTVVfSAo+PiArCj4+ICsjZGVmaW5lIE1BUF9BUkNI X0RFRkFVTFQgTUFQX1VOQ0FDSEVECj4+ICsKPj4gKyNlbmRpZiAvKiBfX0FTTV9NTVVfSCAqLwo+ PiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9wb3NpeF90eXBlcy5oIGIvYXJj aC9yaXNjdi9pbmNsdWRlL2FzbS9wb3NpeF90eXBlcy5oCj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 Cj4+IGluZGV4IDAwMDAwMDAwMC4uMjJjYWU2MjMwCj4+IC0tLSAvZGV2L251bGwKPj4gKysrIGIv YXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9wb3NpeF90eXBlcy5oCj4+IEBAIC0wLDAgKzEgQEAKPj4g KyNpbmNsdWRlIDxhc20tZ2VuZXJpYy9wb3NpeF90eXBlcy5oPgo+PiBkaWZmIC0tZ2l0IGEvYXJj aC9yaXNjdi9pbmNsdWRlL2FzbS9zZWN0aW9ucy5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9z ZWN0aW9ucy5oCj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4+IGluZGV4IDAwMDAwMDAwMC4uMmI4 YzUxNjAzCj4+IC0tLSAvZGV2L251bGwKPj4gKysrIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9z ZWN0aW9ucy5oCj4+IEBAIC0wLDAgKzEgQEAKPj4gKyNpbmNsdWRlIDxhc20tZ2VuZXJpYy9zZWN0 aW9ucy5oPgo+PiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9zdHJpbmcuaCBi L2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vc3RyaW5nLmgKPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQK Pj4gaW5kZXggMDAwMDAwMDAwLi4yOTk3NTg3ZDgKPj4gLS0tIC9kZXYvbnVsbAo+PiArKysgYi9h cmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3N0cmluZy5oCj4+IEBAIC0wLDAgKzEgQEAKPj4gKy8qIGR1 bW15ICovCj4+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3N3YWIuaCBiL2Fy Y2gvcmlzY3YvaW5jbHVkZS9hc20vc3dhYi5oCj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4+IGlu ZGV4IDAwMDAwMDAwMC4uNjBhOTAxMjBiCj4+IC0tLSAvZGV2L251bGwKPj4gKysrIGIvYXJjaC9y aXNjdi9pbmNsdWRlL2FzbS9zd2FiLmgKPj4gQEAgLTAsMCArMSw2IEBACj4+ICsjaWZuZGVmIF9B U01fU1dBQl9ICj4+ICsjZGVmaW5lIF9BU01fU1dBQl9ICj4+ICsKPj4gKy8qIG5vdGhpbmcuIHVz ZSBnZW5lcmljIGZ1bmN0aW9ucyAqLwo+PiArCj4+ICsjZW5kaWYgLyogX0FTTV9TV0FCX0ggKi8K Pj4gZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vdHlwZXMuaCBiL2FyY2gvcmlz Y3YvaW5jbHVkZS9hc20vdHlwZXMuaAo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAw MDAwMDAwMDAuLmJhMzg2YWI0Ywo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL2FyY2gvcmlzY3Yv aW5jbHVkZS9hc20vdHlwZXMuaAo+PiBAQCAtMCwwICsxLDYwIEBACj4+ICsjaWZuZGVmIF9fQVNN X1JJU0NWX1RZUEVTX0gKPj4gKyNkZWZpbmUgX19BU01fUklTQ1ZfVFlQRVNfSAo+PiArCj4+ICsj aWZkZWYgX19yaXNjdjY0Cj4+ICsvKgo+PiArICogVGhpcyBpcyB1c2VkIGluIGRsbWFsbG9jLiBP biBSSVNDVjY0IHdlIG5lZWQgaXQgdG8gYmUgNjQgYml0Cj4+ICsgKi8KPj4gKyNkZWZpbmUgSU5U RVJOQUxfU0laRV9UIHVuc2lnbmVkIGxvbmcKPj4gKwo+PiArLyoKPj4gKyAqIFRoaXMgaXMgYSBL Y29uZmlnIHZhcmlhYmxlIGluIHRoZSBLZXJuZWwsIGJ1dCB3ZSB3YW50IHRvIGRldGVjdAo+PiAr ICogdGhpcyBkdXJpbmcgY29tcGlsZSB0aW1lLCBzbyB3ZSBzZXQgaXQgaGVyZS4KPj4gKyAqLwo+ PiArI2RlZmluZSBDT05GSUdfUEhZU19BRERSX1RfNjRCSVQKPj4gKwo+PiArI2VuZGlmCj4+ICsK Pj4gK3R5cGVkZWYgdW5zaWduZWQgc2hvcnQgdW1vZGVfdDsKPj4gKwo+PiArLyoKPj4gKyAqIF9f eHggaXMgb2s6IGl0IGRvZXNuJ3QgcG9sbHV0ZSB0aGUgUE9TSVggbmFtZXNwYWNlLiBVc2UgdGhl c2UgaW4gdGhlCj4+ICsgKiBoZWFkZXIgZmlsZXMgZXhwb3J0ZWQgdG8gdXNlciBzcGFjZQo+PiAr ICovCj4+ICsKPj4gK3R5cGVkZWYgX19zaWduZWRfXyBjaGFyIF9fczg7Cj4+ICt0eXBlZGVmIHVu c2lnbmVkIGNoYXIgX191ODsKPj4gKwo+PiArdHlwZWRlZiBfX3NpZ25lZF9fIHNob3J0IF9fczE2 Owo+PiArdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBfX3UxNjsKPj4gKwo+PiArdHlwZWRlZiBfX3Np Z25lZF9fIGludCBfX3MzMjsKPj4gK3R5cGVkZWYgdW5zaWduZWQgaW50IF9fdTMyOwo+PiArCj4+ ICsjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgIWRlZmluZWQoX19TVFJJQ1RfQU5TSV9fKQo+PiAr dHlwZWRlZiBfX3NpZ25lZF9fIGxvbmcgbG9uZyBfX3M2NDsKPj4gK3R5cGVkZWYgdW5zaWduZWQg bG9uZyBsb25nIF9fdTY0Owo+PiArI2VuZGlmCj4+ICsKPj4gKy8qCj4+ICsgKiBUaGVzZSBhcmVu J3QgZXhwb3J0ZWQgb3V0c2lkZSB0aGUga2VybmVsIHRvIGF2b2lkIG5hbWUgc3BhY2UgY2xhc2hl cwo+PiArICovCj4+ICsjaWZkZWYgX19LRVJORUxfXwo+PiArCj4+ICt0eXBlZGVmIHNpZ25lZCBj aGFyIHM4Owo+PiArdHlwZWRlZiB1bnNpZ25lZCBjaGFyIHU4Owo+PiArCj4+ICt0eXBlZGVmIHNp Z25lZCBzaG9ydCBzMTY7Cj4+ICt0eXBlZGVmIHVuc2lnbmVkIHNob3J0IHUxNjsKPj4gKwo+PiAr dHlwZWRlZiBzaWduZWQgaW50IHMzMjsKPj4gK3R5cGVkZWYgdW5zaWduZWQgaW50IHUzMjsKPj4g Kwo+PiArdHlwZWRlZiBzaWduZWQgbG9uZyBsb25nIHM2NDsKPj4gK3R5cGVkZWYgdW5zaWduZWQg bG9uZyBsb25nIHU2NDsKPj4gKwo+PiArI2luY2x1ZGUgPGFzbS9iaXRzcGVybG9uZy5oPgo+PiAr Cj4+ICsjZW5kaWYgLyogX19LRVJORUxfXyAqLwo+PiArCj4+ICsjZW5kaWYgLyogX19BU01fUklT Q1ZfVFlQRVNfSCAqLwo+PiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS91bmFs aWduZWQuaCBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vdW5hbGlnbmVkLmgKPj4gbmV3IGZpbGUg bW9kZSAxMDA2NDQKPj4gaW5kZXggMDAwMDAwMDAwLi5hYWViYzA2NDEKPj4gLS0tIC9kZXYvbnVs bAo+PiArKysgYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3VuYWxpZ25lZC5oCj4+IEBAIC0wLDAg KzEsMTkgQEAKPj4gKyNpZm5kZWYgX0FTTV9SSVNDVl9VTkFMSUdORURfSAo+PiArI2RlZmluZSBf QVNNX1JJU0NWX1VOQUxJR05FRF9ICj4+ICsKPj4gKy8qCj4+ICsgKiBGSVhNRTogdGhpcyBmaWxl IGlzIGNvcHktbi1wYXN0ZWQgZnJvbSBzYW5kYm94J3MgdW5hbGlnbmVkLmgKPj4gKyAqLwo+PiAr Cj4+ICsjaW5jbHVkZSA8bGludXgvdW5hbGlnbmVkL2FjY2Vzc19vay5oPgo+PiArI2luY2x1ZGUg PGxpbnV4L3VuYWxpZ25lZC9nZW5lcmljLmg+Cj4+ICsKPj4gKyNpZiBfX0JZVEVfT1JERVIgPT0g X19MSVRUTEVfRU5ESUFOCj4+ICsjZGVmaW5lIGdldF91bmFsaWduZWQgX19nZXRfdW5hbGlnbmVk X2xlCj4+ICsjZGVmaW5lIHB1dF91bmFsaWduZWQgX19wdXRfdW5hbGlnbmVkX2xlCj4+ICsjZWxz ZQo+PiArI2RlZmluZSBnZXRfdW5hbGlnbmVkIF9fZ2V0X3VuYWxpZ25lZF9iZQo+PiArI2RlZmlu ZSBwdXRfdW5hbGlnbmVkIF9fcHV0X3VuYWxpZ25lZF9iZQo+PiArI2VuZGlmCj4+ICsKPj4gKyNl bmRpZiAvKiBfQVNNX1JJU0NWX1VOQUxJR05FRF9IICovCj4+IGRpZmYgLS1naXQgYS9hcmNoL3Jp c2N2L2xpYi8uZ2l0aWdub3JlIGIvYXJjaC9yaXNjdi9saWIvLmdpdGlnbm9yZQo+PiBuZXcgZmls ZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwMDAuLmQxMTY1Nzg4Ywo+PiAtLS0gL2Rldi9u dWxsCj4+ICsrKyBiL2FyY2gvcmlzY3YvbGliLy5naXRpZ25vcmUKPj4gQEAgLTAsMCArMSBAQAo+ PiArYmFyZWJveC5sZHMKPj4gZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvbGliL01ha2VmaWxlIGIv YXJjaC9yaXNjdi9saWIvTWFrZWZpbGUKPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5kZXgg MDAwMDAwMDAwLi4zMTMzNjNjMWEKPj4gLS0tIC9kZXYvbnVsbAo+PiArKysgYi9hcmNoL3Jpc2N2 L2xpYi9NYWtlZmlsZQo+PiBAQCAtMCwwICsxLDkgQEAKPj4gK2V4dHJhLSQoQ09ORklHX0dFTkVS SUNfTElOS0VSX1NDUklQVCkgKz0gYmFyZWJveC5sZHMKPj4gKwo+PiArb2JqLXkgKz0gcmlzY3Zf dGltZXIubwo+PiArCj4+ICtvYmotJChDT05GSUdfMzJCSVQpICs9IGxzaHJkaTMubwo+PiArb2Jq LSQoQ09ORklHXzMyQklUKSArPSBhc2hsZGkzLm8KPj4gK29iai0kKENPTkZJR18zMkJJVCkgKz0g YXNocmRpMy5vCj4+ICsKPj4gK29iai0kKENPTkZJR19CVUlMVElOX0RUQikgKz0gZHRiLm8KPj4g ZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvbGliL2FzaGxkaTMuYyBiL2FyY2gvcmlzY3YvbGliL2Fz aGxkaTMuYwo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwMDAuLmNiZGJj YmI2YQo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL2FyY2gvcmlzY3YvbGliL2FzaGxkaTMuYwo+ PiBAQCAtMCwwICsxLDI4IEBACj4+ICsjaW5jbHVkZSA8bW9kdWxlLmg+Cj4+ICsKPj4gKyNpbmNs dWRlICJsaWJnY2MuaCIKPj4gKwo+PiArbG9uZyBsb25nIF9fYXNobGRpMyhsb25nIGxvbmcgdSwg d29yZF90eXBlIGIpCj4+ICt7Cj4+ICsJRFd1bmlvbiB1dSwgdzsKPj4gKwl3b3JkX3R5cGUgYm07 Cj4+ICsKPj4gKwlpZiAoYiA9PSAwKQo+PiArCQlyZXR1cm4gdTsKPj4gKwo+PiArCXV1LmxsID0g dTsKPj4gKwlibSA9IDMyIC0gYjsKPj4gKwo+PiArCWlmIChibSA8PSAwKSB7Cj4+ICsJCXcucy5s b3cgPSAwOwo+PiArCQl3LnMuaGlnaCA9ICh1bnNpZ25lZCBpbnQpIHV1LnMubG93IDw8IC1ibTsK Pj4gKwl9IGVsc2Ugewo+PiArCQljb25zdCB1bnNpZ25lZCBpbnQgY2FycmllcyA9ICh1bnNpZ25l ZCBpbnQpIHV1LnMubG93ID4+IGJtOwo+PiArCj4+ICsJCXcucy5sb3cgPSAodW5zaWduZWQgaW50 KSB1dS5zLmxvdyA8PCBiOwo+PiArCQl3LnMuaGlnaCA9ICgodW5zaWduZWQgaW50KSB1dS5zLmhp Z2ggPDwgYikgfCBjYXJyaWVzOwo+PiArCX0KPj4gKwo+PiArCXJldHVybiB3LmxsOwo+PiArfQo+ PiArRVhQT1JUX1NZTUJPTChfX2FzaGxkaTMpOwo+PiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9s aWIvYXNocmRpMy5jIGIvYXJjaC9yaXNjdi9saWIvYXNocmRpMy5jCj4+IG5ldyBmaWxlIG1vZGUg MTAwNjQ0Cj4+IGluZGV4IDAwMDAwMDAwMC4uOTI4ZDZkOTdjCj4+IC0tLSAvZGV2L251bGwKPj4g KysrIGIvYXJjaC9yaXNjdi9saWIvYXNocmRpMy5jCj4+IEBAIC0wLDAgKzEsMzAgQEAKPj4gKyNp bmNsdWRlIDxtb2R1bGUuaD4KPj4gKwo+PiArI2luY2x1ZGUgImxpYmdjYy5oIgo+PiArCj4+ICts b25nIGxvbmcgX19hc2hyZGkzKGxvbmcgbG9uZyB1LCB3b3JkX3R5cGUgYikKPj4gK3sKPj4gKwlE V3VuaW9uIHV1LCB3PiArCXdvcmRfdHlwZSBibTsKPj4gKwo+PiArCWlmIChiID09IDApCj4+ICsJ CXJldHVybiB1Owo+PiArCj4+ICsJdXUubGwgPSB1Owo+PiArCWJtID0gMzIgLSBiOwo+PiArCj4+ ICsJaWYgKGJtIDw9IDApIHsKPj4gKwkJLyogdy5zLmhpZ2ggPSAxLi4xIG9yIDAuLjAgKi8KPj4g KwkJdy5zLmhpZ2ggPQo+PiArCQkgICAgdXUucy5oaWdoID4+IDMxOwo+PiArCQl3LnMubG93ID0g dXUucy5oaWdoID4+IC1ibTsKPj4gKwl9IGVsc2Ugewo+PiArCQljb25zdCB1bnNpZ25lZCBpbnQg Y2FycmllcyA9ICh1bnNpZ25lZCBpbnQpIHV1LnMuaGlnaCA8PCBibTsKPj4gKwo+PiArCQl3LnMu aGlnaCA9IHV1LnMuaGlnaCA+PiBiOwo+PiArCQl3LnMubG93ID0gKCh1bnNpZ25lZCBpbnQpIHV1 LnMubG93ID4+IGIpIHwgY2FycmllczsKPj4gKwl9Cj4+ICsKPj4gKwlyZXR1cm4gdy5sbDsKPj4g K30KPj4gK0VYUE9SVF9TWU1CT0woX19hc2hyZGkzKTsKPj4gZGlmZiAtLWdpdCBhL2FyY2gvcmlz Y3YvbGliL2FzbS1vZmZzZXRzLmMgYi9hcmNoL3Jpc2N2L2xpYi9hc20tb2Zmc2V0cy5jCj4+IG5l dyBmaWxlIG1vZGUgMTAwNjQ0Cj4+IGluZGV4IDAwMDAwMDAwMC4uMjJmMzgyYjcxCj4+IC0tLSAv ZGV2L251bGwKPj4gKysrIGIvYXJjaC9yaXNjdi9saWIvYXNtLW9mZnNldHMuYwo+PiBAQCAtMCww ICsxLDEyIEBACj4+ICsvKgo+PiArICogR2VuZXJhdGUgZGVmaW5pdGlvbnMgbmVlZGVkIGJ5IGFz c2VtYmx5IGxhbmd1YWdlIG1vZHVsZXMuCj4+ICsgKiBUaGlzIGNvZGUgZ2VuZXJhdGVzIHJhdyBh c20gb3V0cHV0IHdoaWNoIGlzIHBvc3QtcHJvY2Vzc2VkIHRvIGV4dHJhY3QKPj4gKyAqIGFuZCBm b3JtYXQgdGhlIHJlcXVpcmVkIGRhdGEuCj4+ICsgKi8KPj4gKwo+PiArI2luY2x1ZGUgPGxpbnV4 L2tidWlsZC5oPgo+PiArCj4+ICtpbnQgbWFpbih2b2lkKQo+PiArewo+PiArCXJldHVybiAwOwo+ PiArfQo+PiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9saWIvYmFyZWJveC5sZHMuUyBiL2FyY2gv cmlzY3YvbGliL2JhcmVib3gubGRzLlMKPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5kZXgg MDAwMDAwMDAwLi45NDY4ZmI4YjUKPj4gLS0tIC9kZXYvbnVsbAo+PiArKysgYi9hcmNoL3Jpc2N2 L2xpYi9iYXJlYm94Lmxkcy5TCj4+IEBAIC0wLDAgKzEsODkgQEAKPj4gKy8qCj4+ICsgKiBDb3B5 cmlnaHQgKEMpIDIwMTYgQW50b255IFBhdmxvdiA8YW50b255bnBhdmxvdkBnbWFpbC5jb20+Cj4+ ICsgKgo+PiArICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgYmFyZWJveC4KPj4gKyAqIFNlZSBmaWxl IENSRURJVFMgZm9yIGxpc3Qgb2YgcGVvcGxlIHdobyBjb250cmlidXRlZCB0byB0aGlzIHByb2pl Y3QuCj4+ICsgKgo+PiArICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKPj4gKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyCj4+ICsgKiBhcyBwdWJs aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KPj4gKyAqCj4+ICsgKiBUaGlz IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKPj4gKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCj4+ICsgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCj4+ICsgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgo+PiArICoKPj4gKyAqLwo+PiArCj4+ICsjaW5jbHVkZSA8 YXNtLWdlbmVyaWMvYmFyZWJveC5sZHMuaD4KPj4gKwo+PiArT1VUUFVUX0FSQ0gocmlzY3YpCj4+ ICtFTlRSWShfc3RhcnQpCj4+ICtTRUNUSU9OUwo+PiArewo+PiArCS4gPSBURVhUX0JBU0U7Cj4+ ICsKPj4gKwkuID0gQUxJR04oOCk7Cj4+ICsJLnRleHQgICAgICA6Cj4+ICsJewo+PiArCQlfc3Rl eHQgPSAuOwo+PiArCQlfc3RhcnQgPSAuOwo+PiArCQlLRUVQKCooLnRleHRfZW50cnkqKSkKPj4g KwkJX3RleHQgPSAuOwo+PiArCQlfX2JhcmVfaW5pdF9zdGFydCA9IC47Cj4+ICsJCSooLnRleHRf YmFyZV9pbml0KikKPj4gKwkJX19iYXJlX2luaXRfZW5kID0gLjsKPj4gKwkJKigudGV4dCopCj4+ ICsJfQo+PiArCUJBUkVCT1hfQkFSRV9JTklUX1NJWkUKPj4gKwo+PiArCVBSRV9JTUFHRQo+PiAr Cj4+ICsJLiA9IEFMSUdOKDgpOwo+PiArCS5yb2RhdGEgOiB7ICooLnJvZGF0YSopIH0KPj4gKwo+ PiArCV9ldGV4dCA9IC47CQkJLyogRW5kIG9mIHRleHQgYW5kIHJvZGF0YSBzZWN0aW9uICovCj4+ ICsJX3NkYXRhID0gLjsKPj4gKwo+PiArCS4gPSBBTElHTig4KTsKPj4gKwkuZGF0YSA6IHsgKigu ZGF0YSopIH0KPj4gKwo+PiArCS5iYXJlYm94X2ltZCA6IHsgQkFSRUJPWF9JTUQgfQo+PiArCj4+ ICsJLiA9IEFMSUdOKDgpOwo+PiArCS5nb3QgOiB7ICooLmdvdCopIH0KPj4gKwo+PiArCS4gPSAu Owo+PiArCV9fYmFyZWJveF9jbWRfc3RhcnQgPSAuOwo+PiArCS5iYXJlYm94X2NtZCA6IHsgQkFS RUJPWF9DTURTIH0KPj4gKwlfX2JhcmVib3hfY21kX2VuZCA9IC47Cj4+ICsKPj4gKwlfX2JhcmVi b3hfbWFnaWN2YXJfc3RhcnQgPSAuOwo+PiArCS5iYXJlYm94X21hZ2ljdmFyIDogeyBCQVJFQk9Y X01BR0lDVkFSUyB9Cj4+ICsJX19iYXJlYm94X21hZ2ljdmFyX2VuZCA9IC47Cj4+ICsKPj4gKwlf X2JhcmVib3hfaW5pdGNhbGxzX3N0YXJ0ID0gLjsKPj4gKwkuYmFyZWJveF9pbml0Y2FsbHMgOiB7 IElOSVRDQUxMUyB9Cj4+ICsJX19iYXJlYm94X2luaXRjYWxsc19lbmQgPSAuOwo+PiArCj4+ICsJ X19iYXJlYm94X2V4aXRjYWxsc19zdGFydCA9IC47Cj4+ICsJLmJhcmVib3hfZXhpdGNhbGxzIDog eyBFWElUQ0FMTFMgfQo+PiArCV9fYmFyZWJveF9leGl0Y2FsbHNfZW5kID0gLjsKPj4gKwo+PiAr CV9fdXN5bXRhYl9zdGFydCA9IC47Cj4+ICsJX191c3ltdGFiIDogeyBCQVJFQk9YX1NZTVMgfQo+ PiArCV9fdXN5bXRhYl9lbmQgPSAuOwo+PiArCj4+ICsJLnJlbGEuZHluIDogeyAqKC5yZWxhKikg fQo+PiArCj4+ICsJLm9mdGFibGVzIDogeyBCQVJFQk9YX0NMS19UQUJMRSgpIH0KPj4gKwo+PiAr CS5kdGIgOiB7IEJBUkVCT1hfRFRCKCkgfQo+PiArCj4+ICsJX2VkYXRhID0gLjsKPj4gKwkuID0g QUxJR04oOCk7Cj4+ICsJX19ic3Nfc3RhcnQgPSAuOwo+PiArCS5ic3MgOiB7ICooLmJzcyopICoo LnNic3MqKSB9Cj4+ICsJX19ic3Nfc3RvcCA9IC47Cj4+ICsJX2VuZCA9IC47Cj4+ICt9Cj4+IGRp ZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2xpYi9kdGIuYyBiL2FyY2gvcmlzY3YvbGliL2R0Yi5jCj4+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4+IGluZGV4IDAwMDAwMDAwMC4uMDlmNTE5ZGNjCj4+IC0t LSAvZGV2L251bGwKPj4gKysrIGIvYXJjaC9yaXNjdi9saWIvZHRiLmMKPj4gQEAgLTAsMCArMSw0 MSBAQAo+PiArLyoKPj4gKyAqIENvcHlyaWdodCAoQykgMjAxNiBBbnRvbnkgUGF2bG92IDxhbnRv bnlucGF2bG92QGdtYWlsLmNvbT4KPj4gKyAqCj4+ICsgKiBTZWUgZmlsZSBDUkVESVRTIGZvciBs aXN0IG9mIHBlb3BsZSB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcwo+PiArICogcHJvamVjdC4KPj4g KyAqCj4+ICsgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQo+PiArICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIKPj4gKyAqIGFzIHB1Ymxpc2hlZCBi eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgo+PiArICoKPj4gKyAqIFRoaXMgcHJvZ3Jh bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAo+PiAr ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKPj4gKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUKPj4gKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCj4+ICsgKgo+PiArICovCj4+ICsjaW5jbHVkZSA8Y29tbW9uLmg+Cj4+ ICsjaW5jbHVkZSA8aW5pdC5oPgo+PiArI2luY2x1ZGUgPG9mLmg+Cj4+ICsKPj4gK2V4dGVybiBj aGFyIF9fZHRiX3N0YXJ0W107Cj4+ICsKPj4gK3N0YXRpYyBpbnQgb2ZfcmlzY3ZfaW5pdCh2b2lk KQo+PiArewo+PiArCXN0cnVjdCBkZXZpY2Vfbm9kZSAqcm9vdDsKPj4gKwo+PiArCXJvb3QgPSBv Zl9nZXRfcm9vdF9ub2RlKCk7Cj4+ICsJaWYgKHJvb3QpCj4+ICsJCXJldHVybiAwOwo+PiArCj4+ ICsJcm9vdCA9IG9mX3VuZmxhdHRlbl9kdGIoX19kdGJfc3RhcnQpOwo+PiArCWlmICghSVNfRVJS KHJvb3QpKSB7Cj4+ICsJCXByX2RlYnVnKCJ1c2luZyBpbnRlcm5hbCBEVEJcbiIpOwo+PiArCQlv Zl9zZXRfcm9vdF9ub2RlKHJvb3QpOwo+PiArCQlpZiAoSVNfRU5BQkxFRChDT05GSUdfT0ZERVZJ Q0UpKQo+PiArCQkJb2ZfcHJvYmUoKTsKPj4gKwl9Cj4+ICsKPj4gKwlyZXR1cm4gMDsKPj4gK30K Pj4gK2NvcmVfaW5pdGNhbGwob2ZfcmlzY3ZfaW5pdCk7Cj4+IGRpZmYgLS1naXQgYS9hcmNoL3Jp c2N2L2xpYi9saWJnY2MuaCBiL2FyY2gvcmlzY3YvbGliL2xpYmdjYy5oCj4+IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0Cj4+IGluZGV4IDAwMDAwMDAwMC4uNTkzZTU5ODAyCj4+IC0tLSAvZGV2L251bGwK Pj4gKysrIGIvYXJjaC9yaXNjdi9saWIvbGliZ2NjLmgKPj4gQEAgLTAsMCArMSwyOSBAQAo+PiAr I2lmbmRlZiBfX0FTTV9MSUJHQ0NfSAo+PiArI2RlZmluZSBfX0FTTV9MSUJHQ0NfSAo+PiArCj4+ ICsjaW5jbHVkZSA8YXNtL2J5dGVvcmRlci5oPgo+PiArCj4+ICt0eXBlZGVmIGludCB3b3JkX3R5 cGUgX19hdHRyaWJ1dGVfXyAoKG1vZGUgKF9fd29yZF9fKSkpOwo+PiArI2lmZGVmIF9fQklHX0VO RElBTgo+PiArc3RydWN0IERXc3RydWN0IHsKPj4gKwlpbnQgaGlnaCwgbG93Owo+PiArfTsKPj4g KyNlbGlmIGRlZmluZWQoX19MSVRUTEVfRU5ESUFOKQo+PiArc3RydWN0IERXc3RydWN0IHsKPj4g KwlpbnQgbG93LCBoaWdoOwo+PiArfTsKPj4gKyNlbHNlCj4+ICsjZXJyb3IgSSBmZWVsIHNpY2su Cj4+ICsjZW5kaWYKPj4gKwo+PiArdHlwZWRlZiB1bmlvbiB7Cj4+ICsJc3RydWN0IERXc3RydWN0 IHM7Cj4+ICsJbG9uZyBsb25nIGxsOwo+PiArfSBEV3VuaW9uOwo+PiArCj4+ICtsb25nIGxvbmcg X19sc2hyZGkzKGxvbmcgbG9uZyB1LCB3b3JkX3R5cGUgYik7Cj4+ICtsb25nIGxvbmcgX19hc2hs ZGkzKGxvbmcgbG9uZyB1LCB3b3JkX3R5cGUgYik7Cj4+ICtsb25nIGxvbmcgX19hc2hyZGkzKGxv bmcgbG9uZyB1LCB3b3JkX3R5cGUgYik7Cj4+ICsKPj4gKyNlbmRpZiAvKiBfX0FTTV9MSUJHQ0Nf SCAqLwo+PiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9saWIvbHNocmRpMy5jIGIvYXJjaC9yaXNj di9saWIvbHNocmRpMy5jCj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4+IGluZGV4IDAwMDAwMDAw MC4uNzRhNDg0NmU5Cj4+IC0tLSAvZGV2L251bGwKPj4gKysrIGIvYXJjaC9yaXNjdi9saWIvbHNo cmRpMy5jCj4+IEBAIC0wLDAgKzEsMjggQEAKPj4gKyNpbmNsdWRlIDxtb2R1bGUuaD4KPj4gKwo+ PiArI2luY2x1ZGUgImxpYmdjYy5oIgo+PiArCj4+ICtsb25nIGxvbmcgX19sc2hyZGkzKGxvbmcg bG9uZyB1LCB3b3JkX3R5cGUgYikKPj4gK3sKPj4gKwlEV3VuaW9uIHV1LCB3Owo+PiArCXdvcmRf dHlwZSBibTsKPj4gKwo+PiArCWlmIChiID09IDApCj4+ICsJCXJldHVybiB1Owo+PiArCj4+ICsJ dXUubGwgPSB1Owo+PiArCWJtID0gMzIgLSBiOwo+PiArCj4+ICsJaWYgKGJtIDw9IDApIHsKPj4g KwkJdy5zLmhpZ2ggPSAwOwo+PiArCQl3LnMubG93ID0gKHVuc2lnbmVkIGludCkgdXUucy5oaWdo ID4+IC1ibTsKPj4gKwl9IGVsc2Ugewo+PiArCQljb25zdCB1bnNpZ25lZCBpbnQgY2FycmllcyA9 ICh1bnNpZ25lZCBpbnQpIHV1LnMuaGlnaCA8PCBibTsKPj4gKwo+PiArCQl3LnMuaGlnaCA9ICh1 bnNpZ25lZCBpbnQpIHV1LnMuaGlnaCA+PiBiOwo+PiArCQl3LnMubG93ID0gKCh1bnNpZ25lZCBp bnQpIHV1LnMubG93ID4+IGIpIHwgY2FycmllczsKPj4gKwl9Cj4+ICsKPj4gKwlyZXR1cm4gdy5s bDsKPj4gK30KPj4gK0VYUE9SVF9TWU1CT0woX19sc2hyZGkzKTsKPj4gZGlmZiAtLWdpdCBhL2Fy Y2gvcmlzY3YvbGliL3Jpc2N2X3RpbWVyLmMgYi9hcmNoL3Jpc2N2L2xpYi9yaXNjdl90aW1lci5j Cj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4+IGluZGV4IDAwMDAwMDAwMC4uNDYxODFmODc3Cj4+ IC0tLSAvZGV2L251bGwKPj4gKysrIGIvYXJjaC9yaXNjdi9saWIvcmlzY3ZfdGltZXIuYwo+PiBA QCAtMCwwICsxLDY4IEBACj4+ICsvKgo+PiArICogQ29weXJpZ2h0IChDKSAyMDE3IEFudG9ueSBQ YXZsb3YgPGFudG9ueW5wYXZsb3ZAZ21haWwuY29tPgo+PiArICoKPj4gKyAqIFRoaXMgZmlsZSBp cyBwYXJ0IG9mIGJhcmVib3guCj4+ICsgKiBTZWUgZmlsZSBDUkVESVRTIGZvciBsaXN0IG9mIHBl b3BsZSB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcyBwcm9qZWN0Lgo+PiArICoKPj4gKyAqIFRoaXMg cHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3Ig bW9kaWZ5Cj4+ICsgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIHZlcnNpb24gMgo+PiArICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24uCj4+ICsgKgo+PiArICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCj4+ICsgKiBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgo+PiArICog TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZQo+PiArICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K Pj4gKyAqCj4+ICsgKi8KPj4gKwo+PiArLyoqCj4+ICsgKiBAZmlsZQo+PiArICogQGJyaWVmIENs b2Nrc291cmNlIGJhc2VkIG9uIFJJU0NWIGN5Y2xlIENTUiB0aW1lcgo+PiArICovCj4+ICsKPj4g KyNpbmNsdWRlIDxpbml0Lmg+Cj4+ICsjaW5jbHVkZSA8b2YuaD4KPj4gKyNpbmNsdWRlIDxsaW51 eC9jbGsuaD4KPj4gKyNpbmNsdWRlIDxjbG9jay5oPgo+PiArI2luY2x1ZGUgPGlvLmg+Cj4+ICsK Pj4gK3N0YXRpYyB1aW50NjRfdCByZGN5Y2xlX3JlYWQodm9pZCkKPj4gK3sKPj4gKwlyZWdpc3Rl ciB1bnNpZ25lZCBsb25nIF9fdjsKPj4gKwo+PiArCV9fYXNtX18gX192b2xhdGlsZV9fICgicmRj eWNsZSAlMCIgOiAiPXIiIChfX3YpKTsKPj4gKwpNYXliZSB5b3Ugc2hvdWxkIGFsc28gYWRkIHN1 cHBvcnQgZm9yIDMyLWJpdCBjb3Jlcy4KPj4gKwlyZXR1cm4gX192Owo+PiArfQo+PiArCj4+ICtz dGF0aWMgc3RydWN0IGNsb2Nrc291cmNlIHJkY3ljbGVfY3MgPSB7Cj4+ICsJLnJlYWQJPSByZGN5 Y2xlX3JlYWQsCj4+ICsJLm1hc2sJPSBDTE9DS1NPVVJDRV9NQVNLKDMyKSwKPj4gK307Cj4+ICsK Ci0tIApNaXQgZnJldW5kbGljaGVuIEdyw7zDn2VuLApXaXRoIGJlc3QgcmVnYXJkcywKICAgRGFu aWVsIFNjaHVsdHoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpiYXJlYm94IG1haWxpbmcgbGlzdApiYXJlYm94QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0 cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9iYXJlYm94Cg==