From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from metis.ext.pengutronix.de ([2001:6f8:1178:4:290:27ff:fe1d:cc33]) by merlin.infradead.org with esmtps (Exim 4.76 #1 (Red Hat Linux)) id 1TjBgY-0004wV-5U for barebox@lists.infradead.org; Thu, 13 Dec 2012 16:31:21 +0000 From: Jan Luebbe Date: Thu, 13 Dec 2012 17:30:48 +0100 Message-Id: <1355416249-22364-14-git-send-email-jlu@pengutronix.de> In-Reply-To: <1355416249-22364-1-git-send-email-jlu@pengutronix.de> References: <1355416249-22364-1-git-send-email-jlu@pengutronix.de> MIME-Version: 1.0 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: barebox-bounces@lists.infradead.org Errors-To: barebox-bounces+u.kleine-koenig=pengutronix.de@lists.infradead.org Subject: =?UTF-8?q?=5BPATCH=2013/14=5D=20arm=3A=20beaglebone=3A=20add=20first-stage=20support=20for=20AM335x=20and=20board?= To: barebox@lists.infradead.org U2lnbmVkLW9mZi1ieTogSmFuIEx1ZWJiZSA8amx1QHBlbmd1dHJvbml4LmRlPgotLS0KIGFyY2gv YXJtL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBh cmNoL2FybS9ib2FyZHMvYmVhZ2xlYm9uZS9NYWtlZmlsZSAgICAgICAgICAgICAgICB8ICAgIDEg KwogYXJjaC9hcm0vYm9hcmRzL2JlYWdsZWJvbmUvYm9hcmQuYyAgICAgICAgICAgICAgICAgfCAg MzY0ICsrKysrKysrKysrKysrCiBhcmNoL2FybS9ib2FyZHMvYmVhZ2xlYm9uZS9jb25maWcuaCAg ICAgICAgICAgICAgICB8ICAgMTcgKwogYXJjaC9hcm0vYm9hcmRzL2JlYWdsZWJvbmUvZW52L2Jv b3Qvc2QgICAgICAgICAgICAgfCAgIDExICsKIGFyY2gvYXJtL2JvYXJkcy9iZWFnbGVib25lL2Vu di9jb25maWcgICAgICAgICAgICAgIHwgICAyMSArCiBhcmNoL2FybS9jb25maWdzL2FtMzM1eF9i ZWFnbGVib25lX2RlZmNvbmZpZyAgICAgICB8ICAgNTQgKysrCiAuLi4vY29uZmlncy9hbTMzNXhf YmVhZ2xlYm9uZV9tbG9fbGFyZ2VfZGVmY29uZmlnICB8ICAgNTUgKysrCiAuLi4vY29uZmlncy9h bTMzNXhfYmVhZ2xlYm9uZV9tbG9fc21hbGxfZGVmY29uZmlnICB8ICAgMzEgKysKIGFyY2gvYXJt L21hY2gtb21hcC9LY29uZmlnICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMSArLQogYXJj aC9hcm0vbWFjaC1vbWFwL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICst CiBhcmNoL2FybS9tYWNoLW9tYXAvYW0zM3h4X2Nsb2NrLmMgICAgICAgICAgICAgICAgICB8ICAy ODkgKysrKysrKysrKysKIGFyY2gvYXJtL21hY2gtb21hcC9hbTMzeHhfZ2VuZXJpYy5jICAgICAg ICAgICAgICAgIHwgICA2OCArKysKIGFyY2gvYXJtL21hY2gtb21hcC9hbTMzeHhfbXV4LmMgICAg ICAgICAgICAgICAgICAgIHwgIDUwNiArKysrKysrKysrKysrKysrKysrKwogYXJjaC9hcm0vbWFj aC1vbWFwL2dwbWMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAzICsKIGFyY2gvYXJt L21hY2gtb21hcC9pbmNsdWRlL21hY2gvYW0zM3h4LWNsb2NrLmggICAgIHwgIDE3MSArKysrKysr CiBhcmNoL2FybS9tYWNoLW9tYXAvaW5jbHVkZS9tYWNoL2FtMzN4eC1tdXguaCAgICAgICB8ICAg MjIgKwogYXJjaC9hcm0vbWFjaC1vbWFwL2luY2x1ZGUvbWFjaC9hbTMzeHgtc2lsaWNvbi5oICAg fCAgMTQ1ICsrKysrLQogYXJjaC9hcm0vbWFjaC1vbWFwL2luY2x1ZGUvbWFjaC94bG9hZC5oICAg ICAgICAgICAgfCAgICAxICsKIGFyY2gvYXJtL21hY2gtb21hcC94bG9hZC5jICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgMiArCiAyMCBmaWxlcyBjaGFuZ2VkLCAxNzcyIGluc2VydGlvbnMo KyksIDMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vYm9hcmRzL2Jl YWdsZWJvbmUvTWFrZWZpbGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9ib2FyZHMvYmVh Z2xlYm9uZS9ib2FyZC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vYm9hcmRzL2JlYWds ZWJvbmUvY29uZmlnLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9ib2FyZHMvYmVhZ2xl Ym9uZS9lbnYvYm9vdC9zZAogY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL2JvYXJkcy9iZWFn bGVib25lL2Vudi9jb25maWcKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9jb25maWdzL2Ft MzM1eF9iZWFnbGVib25lX2RlZmNvbmZpZwogY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL2Nv bmZpZ3MvYW0zMzV4X2JlYWdsZWJvbmVfbWxvX2xhcmdlX2RlZmNvbmZpZwogY3JlYXRlIG1vZGUg MTAwNjQ0IGFyY2gvYXJtL2NvbmZpZ3MvYW0zMzV4X2JlYWdsZWJvbmVfbWxvX3NtYWxsX2RlZmNv bmZpZwogY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL21hY2gtb21hcC9hbTMzeHhfY2xvY2su YwogY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL21hY2gtb21hcC9hbTMzeHhfbXV4LmMKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9tYWNoLW9tYXAvaW5jbHVkZS9tYWNoL2FtMzN4eC1t dXguaAoKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL01ha2VmaWxlIGIvYXJjaC9hcm0vTWFrZWZpbGUK aW5kZXggM2JkNjQ1Zi4uNTA4MmExMyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vTWFrZWZpbGUKKysr IGIvYXJjaC9hcm0vTWFrZWZpbGUKQEAgLTEwMyw2ICsxMDMsNyBAQCBib2FyZC0kKENPTkZJR19N QUNIX05PTUFESUtfODgxNU5ISykJCTo9IG5oazg4MTUKIGJvYXJkLSQoQ09ORklHX01BQ0hfTlhE QjUwMCkJCQk6PSBuZXR4CiBib2FyZC0kKENPTkZJR19NQUNIX09NQVAzNDN4U0RQKQkJOj0gb21h cDM0M3hkc3AKIGJvYXJkLSQoQ09ORklHX01BQ0hfQkVBR0xFKQkJCTo9IGJlYWdsZQorYm9hcmQt JChDT05GSUdfTUFDSF9CRUFHTEVCT05FKQkJCTo9IGJlYWdsZWJvbmUKIGJvYXJkLSQoQ09ORklH X01BQ0hfT01BUDNFVk0pCQkJOj0gb21hcDNldm0KIGJvYXJkLSQoQ09ORklHX01BQ0hfUEFOREEp CQkJOj0gcGFuZGEKIGJvYXJkLSQoQ09ORklHX01BQ0hfQVJDSE9TRzkpCQkJOj0gYXJjaG9zZzkK ZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2JvYXJkcy9iZWFnbGVib25lL01ha2VmaWxlIGIvYXJjaC9h cm0vYm9hcmRzL2JlYWdsZWJvbmUvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uZGNmYzI5MwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL2JvYXJkcy9iZWFn bGVib25lL01ha2VmaWxlCkBAIC0wLDAgKzEgQEAKK29iai15ICs9IGJvYXJkLm8KZGlmZiAtLWdp dCBhL2FyY2gvYXJtL2JvYXJkcy9iZWFnbGVib25lL2JvYXJkLmMgYi9hcmNoL2FybS9ib2FyZHMv YmVhZ2xlYm9uZS9ib2FyZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZk MzBkZDkKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9ib2FyZHMvYmVhZ2xlYm9uZS9ib2Fy ZC5jCkBAIC0wLDAgKzEsMzY0IEBACisvKgorICogKEMpIENvcHlyaWdodCAyMDA4CisgKiBUZXhh cyBJbnN0cnVtZW50cywgPHd3dy50aS5jb20+CisgKiBSYWdoYXZlbmRyYSBLSCA8ci1raGFuZGVu YWhhbGx5QHRpLmNvbT4KKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSmFuIEx1ZWJiZSA8ai5s dWViYmVAcGVuZ3V0cm9uaXguZGU+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAqIHB1Ymxpc2hl ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCisg KiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq CisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICovCisKKy8qKgorICogQGZpbGUKKyAqIEBicmllZiBC ZWFnbGVCb25lIFNwZWNpZmljIEJvYXJkIEluaXRpYWxpemF0aW9uIHJvdXRpbmVzCisgKi8KKwor I2luY2x1ZGUgPGNvbW1vbi5oPgorI2luY2x1ZGUgPGNvbnNvbGUuaD4KKyNpbmNsdWRlIDxpbml0 Lmg+CisjaW5jbHVkZSA8ZHJpdmVyLmg+CisjaW5jbHVkZSA8ZnMuaD4KKyNpbmNsdWRlIDxsaW51 eC9zdGF0Lmg+CisjaW5jbHVkZSA8ZW52aXJvbm1lbnQuaD4KKyNpbmNsdWRlIDxzaXplcy5oPgor I2luY2x1ZGUgPGlvLmg+CisjaW5jbHVkZSA8bnMxNjU1MC5oPgorI2luY2x1ZGUgPGFzbS9hcm1s aW51eC5oPgorI2luY2x1ZGUgPGdlbmVyYXRlZC9tYWNoLXR5cGVzLmg+CisjaW5jbHVkZSA8bWFj aC9hbTMzeHgtc2lsaWNvbi5oPgorI2luY2x1ZGUgPG1hY2gvYW0zM3h4LWNsb2NrLmg+CisjaW5j bHVkZSA8bWFjaC9zZHJjLmg+CisjaW5jbHVkZSA8bWFjaC9zeXNfaW5mby5oPgorI2luY2x1ZGUg PG1hY2gvc3lzbGliLmg+CisjaW5jbHVkZSA8bWFjaC9ncG1jLmg+CisjaW5jbHVkZSA8bWFjaC9l aGNpLmg+CisjaW5jbHVkZSA8aTJjL2kyYy5oPgorI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgorI2lu Y2x1ZGUgPHVzYi9laGNpLmg+CisjaW5jbHVkZSA8bWFjaC94bG9hZC5oPgorI2luY2x1ZGUgPG1h Y2gvYW0zM3h4LW11eC5oPgorCisvKiBVQVJUIERlZmluZXMgKi8KKyNkZWZpbmUgVUFSVF9TWVND RkdfT0ZGU0VUICAoMHg1NCkKKyNkZWZpbmUgVUFSVF9TWVNTVFNfT0ZGU0VUICAoMHg1OCkKKwor I2RlZmluZSBVQVJUX1JFU0VUICAgICAgKDB4MSA8PCAxKQorI2RlZmluZSBVQVJUX0NMS19SVU5O SU5HX01BU0sgICAweDEKKyNkZWZpbmUgVUFSVF9TTUFSVF9JRExFX0VOICAoMHgxIDw8IDB4MykK KworLyogQU0zMzVYIEVNSUYgUmVnaXN0ZXIgdmFsdWVzICovCisjZGVmaW5lIEVNSUZfU0RNR1QJ CTB4ODAwMDAwMDAKKyNkZWZpbmUgRU1JRl9TRFJBTQkJMHgwMDAwNDY1MAorI2RlZmluZSBFTUlG X1BIWUNGRwkJMHgyCisjZGVmaW5lIEREUl9QSFlfUkVTRVQJCSgweDEgPDwgMTApCisjZGVmaW5l IEREUl9GVU5DVElPTkFMX01PREVfRU4JMHgxCisjZGVmaW5lIEREUl9QSFlfUkVBRFkJCSgweDEg PDwgMikKKyNkZWZpbmUJVlRQX0NUUkxfUkVBRFkJCSgweDEgPDwgNSkKKyNkZWZpbmUgVlRQX0NU UkxfRU5BQkxFCQkoMHgxIDw8IDYpCisjZGVmaW5lIFZUUF9DVFJMX0xPQ0tfRU4JKDB4MSA8PCA0 KQorI2RlZmluZSBWVFBfQ1RSTF9TVEFSVF9FTgkoMHgxKQorI2RlZmluZSBERFIyX1JBVElPCQkw eDgwCS8qIGZvciBtRERSICovCisjZGVmaW5lIENNRF9GT1JDRQkJMHgwMAkvKiBjb21tb24gI2Rl ZiAqLworI2RlZmluZSBDTURfREVMQVkJCTB4MDAKKworI2RlZmluZSBFTUlGX1JFQURfTEFURU5D WQkweDA1CisjZGVmaW5lIEVNSUZfVElNMQkJMHgwNjY2QjNENgorI2RlZmluZSBFTUlGX1RJTTIJ CTB4MTQzNzMxREEKKyNkZWZpbmUJRU1JRl9USU0zCQkweDAwMDAwMzQ3CisjZGVmaW5lIEVNSUZf U0RDRkcJCTB4NDM4MDUzMzIKKyNkZWZpbmUgRU1JRl9TRFJFRgkJMHgwMDAwMDgxYQorI2RlZmlu ZSBERFIyX0RMTF9MT0NLX0RJRkYJMHgwCisjZGVmaW5lIEREUjJfUkRfRFFTCQkweDEyCisjZGVm aW5lIEREUjJfUEhZX0ZJRk9fV0UJMHg4MAorCisjZGVmaW5lCUREUjJfSU5WRVJUX0NMS09VVAkw eDAwCisjZGVmaW5lCUREUjJfV1JfRFFTCQkweDAwCisjZGVmaW5lCUREUjJfUEhZX1dSTFZMCQkw eDAwCisjZGVmaW5lCUREUjJfUEhZX0dBVEVMVkwJMHgwMAorI2RlZmluZQlERFIyX1BIWV9XUl9E QVRBCTB4NDAKKyNkZWZpbmUJUEhZX1JBTkswX0RFTEFZCQkweDAxCisjZGVmaW5lIFBIWV9ETExf TE9DS19ESUZGCTB4MAorI2RlZmluZSBERFJfSU9DVFJMX1ZBTFVFCTB4MThCCisKK3N0YXRpYyB2 b2lkIGJlYWdsZWJvbmVfZGF0YV9tYWNyb19jb25maWcoaW50IGRhdGFNYWNyb051bSkKK3sKKwl1 MzIgQmFzZUFkZHJPZmZzZXQgPSAweDAwOzsKKworCWlmIChkYXRhTWFjcm9OdW0gPT0gMSkKKwkJ QmFzZUFkZHJPZmZzZXQgPSAweEE0OworCisJX19yYXdfd3JpdGVsKCgoRERSMl9SRF9EUVM8PDMw KXwoRERSMl9SRF9EUVM8PDIwKQorCQl8KEREUjJfUkRfRFFTPDwxMCl8KEREUjJfUkRfRFFTPDww KSksCisJCShEQVRBMF9SRF9EUVNfU0xBVkVfUkFUSU9fMCArIEJhc2VBZGRyT2Zmc2V0KSk7CisJ X19yYXdfd3JpdGVsKEREUjJfUkRfRFFTPj4yLAorCQkoREFUQTBfUkRfRFFTX1NMQVZFX1JBVElP XzEgKyBCYXNlQWRkck9mZnNldCkpOworCV9fcmF3X3dyaXRlbCgoKEREUjJfV1JfRFFTPDwzMCl8 KEREUjJfV1JfRFFTPDwyMCkKKwkJfChERFIyX1dSX0RRUzw8MTApfChERFIyX1dSX0RRUzw8MCkp LAorCQkoREFUQTBfV1JfRFFTX1NMQVZFX1JBVElPXzAgKyBCYXNlQWRkck9mZnNldCkpOworCV9f cmF3X3dyaXRlbChERFIyX1dSX0RRUz4+MiwKKwkJKERBVEEwX1dSX0RRU19TTEFWRV9SQVRJT18x ICsgQmFzZUFkZHJPZmZzZXQpKTsKKwlfX3Jhd193cml0ZWwoKChERFIyX1BIWV9XUkxWTDw8MzAp fChERFIyX1BIWV9XUkxWTDw8MjApCisJCXwoRERSMl9QSFlfV1JMVkw8PDEwKXwoRERSMl9QSFlf V1JMVkw8PDApKSwKKwkJKERBVEEwX1dSTFZMX0lOSVRfUkFUSU9fMCArIEJhc2VBZGRyT2Zmc2V0 KSk7CisJX19yYXdfd3JpdGVsKEREUjJfUEhZX1dSTFZMPj4yLAorCQkoREFUQTBfV1JMVkxfSU5J VF9SQVRJT18xICsgQmFzZUFkZHJPZmZzZXQpKTsKKwlfX3Jhd193cml0ZWwoKChERFIyX1BIWV9H QVRFTFZMPDwzMCl8KEREUjJfUEhZX0dBVEVMVkw8PDIwKQorCQl8KEREUjJfUEhZX0dBVEVMVkw8 PDEwKXwoRERSMl9QSFlfR0FURUxWTDw8MCkpLAorCQkoREFUQTBfR0FURUxWTF9JTklUX1JBVElP XzAgKyBCYXNlQWRkck9mZnNldCkpOworCV9fcmF3X3dyaXRlbChERFIyX1BIWV9HQVRFTFZMPj4y LAorCQkoREFUQTBfR0FURUxWTF9JTklUX1JBVElPXzEgKyBCYXNlQWRkck9mZnNldCkpOworCV9f cmF3X3dyaXRlbCgoKEREUjJfUEhZX0ZJRk9fV0U8PDMwKXwoRERSMl9QSFlfRklGT19XRTw8MjAp CisJCXwoRERSMl9QSFlfRklGT19XRTw8MTApfChERFIyX1BIWV9GSUZPX1dFPDwwKSksCisJCShE QVRBMF9GSUZPX1dFX1NMQVZFX1JBVElPXzAgKyBCYXNlQWRkck9mZnNldCkpOworCV9fcmF3X3dy aXRlbChERFIyX1BIWV9GSUZPX1dFPj4yLAorCQkoREFUQTBfRklGT19XRV9TTEFWRV9SQVRJT18x ICsgQmFzZUFkZHJPZmZzZXQpKTsKKwlfX3Jhd193cml0ZWwoKChERFIyX1BIWV9XUl9EQVRBPDwz MCl8KEREUjJfUEhZX1dSX0RBVEE8PDIwKQorCQl8KEREUjJfUEhZX1dSX0RBVEE8PDEwKXwoRERS Ml9QSFlfV1JfREFUQTw8MCkpLAorCQkoREFUQTBfV1JfREFUQV9TTEFWRV9SQVRJT18wICsgQmFz ZUFkZHJPZmZzZXQpKTsKKwlfX3Jhd193cml0ZWwoRERSMl9QSFlfV1JfREFUQT4+MiwKKwkJKERB VEEwX1dSX0RBVEFfU0xBVkVfUkFUSU9fMSArIEJhc2VBZGRyT2Zmc2V0KSk7CisJX19yYXdfd3Jp dGVsKFBIWV9ETExfTE9DS19ESUZGLAorCQkoREFUQTBfRExMX0xPQ0tfRElGRl8wICsgQmFzZUFk ZHJPZmZzZXQpKTsKK30KKworc3RhdGljIHZvaWQgYmVhZ2xlYm9uZV9jbWRfbWFjcm9fY29uZmln KHZvaWQpCit7CisJX19yYXdfd3JpdGVsKEREUjJfUkFUSU8sIENNRDBfQ1RSTF9TTEFWRV9SQVRJ T18wKTsKKwlfX3Jhd193cml0ZWwoQ01EX0ZPUkNFLCBDTUQwX0NUUkxfU0xBVkVfRk9SQ0VfMCk7 CisJX19yYXdfd3JpdGVsKENNRF9ERUxBWSwgQ01EMF9DVFJMX1NMQVZFX0RFTEFZXzApOworCV9f cmF3X3dyaXRlbChERFIyX0RMTF9MT0NLX0RJRkYsIENNRDBfRExMX0xPQ0tfRElGRl8wKTsKKwlf X3Jhd193cml0ZWwoRERSMl9JTlZFUlRfQ0xLT1VULCBDTUQwX0lOVkVSVF9DTEtPVVRfMCk7CisK KwlfX3Jhd193cml0ZWwoRERSMl9SQVRJTywgQ01EMV9DVFJMX1NMQVZFX1JBVElPXzApOworCV9f cmF3X3dyaXRlbChDTURfRk9SQ0UsIENNRDFfQ1RSTF9TTEFWRV9GT1JDRV8wKTsKKwlfX3Jhd193 cml0ZWwoQ01EX0RFTEFZLCBDTUQxX0NUUkxfU0xBVkVfREVMQVlfMCk7CisJX19yYXdfd3JpdGVs KEREUjJfRExMX0xPQ0tfRElGRiwgQ01EMV9ETExfTE9DS19ESUZGXzApOworCV9fcmF3X3dyaXRl bChERFIyX0lOVkVSVF9DTEtPVVQsIENNRDFfSU5WRVJUX0NMS09VVF8wKTsKKworCV9fcmF3X3dy aXRlbChERFIyX1JBVElPLCBDTUQyX0NUUkxfU0xBVkVfUkFUSU9fMCk7CisJX19yYXdfd3JpdGVs KENNRF9GT1JDRSwgQ01EMl9DVFJMX1NMQVZFX0ZPUkNFXzApOworCV9fcmF3X3dyaXRlbChDTURf REVMQVksIENNRDJfQ1RSTF9TTEFWRV9ERUxBWV8wKTsKKwlfX3Jhd193cml0ZWwoRERSMl9ETExf TE9DS19ESUZGLCBDTUQyX0RMTF9MT0NLX0RJRkZfMCk7CisJX19yYXdfd3JpdGVsKEREUjJfSU5W RVJUX0NMS09VVCwgQ01EMl9JTlZFUlRfQ0xLT1VUXzApOworfQorCitzdGF0aWMgdm9pZCBiZWFn bGVib25lX2NvbmZpZ192dHAodm9pZCkKK3sKKwlfX3Jhd193cml0ZWwoX19yYXdfcmVhZGwoVlRQ MF9DVFJMX1JFRykgfCBWVFBfQ1RSTF9FTkFCTEUsCisJCVZUUDBfQ1RSTF9SRUcpOworCV9fcmF3 X3dyaXRlbChfX3Jhd19yZWFkbChWVFAwX0NUUkxfUkVHKSAmICh+VlRQX0NUUkxfU1RBUlRfRU4p LAorCQlWVFAwX0NUUkxfUkVHKTsKKwlfX3Jhd193cml0ZWwoX19yYXdfcmVhZGwoVlRQMF9DVFJM X1JFRykgfCBWVFBfQ1RSTF9TVEFSVF9FTiwKKwkJVlRQMF9DVFJMX1JFRyk7CisKKwkvKiBQb2xs IGZvciBSRUFEWSAqLworCXdoaWxlICgoX19yYXdfcmVhZGwoVlRQMF9DVFJMX1JFRykgJiBWVFBf Q1RSTF9SRUFEWSkgIT0gVlRQX0NUUkxfUkVBRFkpOworfQorCitzdGF0aWMgdm9pZCBiZWFnbGVi b25lX2NvbmZpZ19lbWlmX2RkcjIodm9pZCkKK3sKKwl1MzIgaTsKKworCS8qUHJvZ3JhbSBFTUlG MCBDRkcgUmVnaXN0ZXJzKi8KKwlfX3Jhd193cml0ZWwoRU1JRl9SRUFEX0xBVEVOQ1ksIEVNSUY0 XzBfRERSX1BIWV9DVFJMXzEpOworCV9fcmF3X3dyaXRlbChFTUlGX1JFQURfTEFURU5DWSwgRU1J RjRfMF9ERFJfUEhZX0NUUkxfMV9TSEFET1cpOworCV9fcmF3X3dyaXRlbChFTUlGX1JFQURfTEFU RU5DWSwgRU1JRjRfMF9ERFJfUEhZX0NUUkxfMik7CisJX19yYXdfd3JpdGVsKEVNSUZfVElNMSwg RU1JRjRfMF9TRFJBTV9USU1fMSk7CisJX19yYXdfd3JpdGVsKEVNSUZfVElNMSwgRU1JRjRfMF9T RFJBTV9USU1fMV9TSEFET1cpOworCV9fcmF3X3dyaXRlbChFTUlGX1RJTTIsIEVNSUY0XzBfU0RS QU1fVElNXzIpOworCV9fcmF3X3dyaXRlbChFTUlGX1RJTTIsIEVNSUY0XzBfU0RSQU1fVElNXzJf U0hBRE9XKTsKKwlfX3Jhd193cml0ZWwoRU1JRl9USU0zLCBFTUlGNF8wX1NEUkFNX1RJTV8zKTsK KwlfX3Jhd193cml0ZWwoRU1JRl9USU0zLCBFTUlGNF8wX1NEUkFNX1RJTV8zX1NIQURPVyk7CisK KwlfX3Jhd193cml0ZWwoRU1JRl9TRENGRywgRU1JRjRfMF9TRFJBTV9DT05GSUcpOworCV9fcmF3 X3dyaXRlbChFTUlGX1NEQ0ZHLCBFTUlGNF8wX1NEUkFNX0NPTkZJRzIpOworCisJLyogX19yYXdf d3JpdGVsKEVNSUZfU0RNR1QsIEVNSUYwXzBfU0RSQU1fTUdNVF9DVFJMKTsKKwlfX3Jhd193cml0 ZWwoRU1JRl9TRE1HVCwgRU1JRjBfMF9TRFJBTV9NR01UX0NUUkxfU0hEKTsgKi8KKwlfX3Jhd193 cml0ZWwoMHgwMDAwNDY1MCwgRU1JRjRfMF9TRFJBTV9SRUZfQ1RSTCk7CisJX19yYXdfd3JpdGVs KDB4MDAwMDQ2NTAsIEVNSUY0XzBfU0RSQU1fUkVGX0NUUkxfU0hBRE9XKTsKKworCWZvciAoaSA9 IDA7IGkgPCA1MDAwOyBpKyspIHsKKworCX0KKworCS8qIF9fcmF3X3dyaXRlbChFTUlGX1NETUdU LCBFTUlGMF8wX1NEUkFNX01HTVRfQ1RSTCk7CisJX19yYXdfd3JpdGVsKEVNSUZfU0RNR1QsIEVN SUYwXzBfU0RSQU1fTUdNVF9DVFJMX1NIRCk7ICovCisJX19yYXdfd3JpdGVsKEVNSUZfU0RSRUYs IEVNSUY0XzBfU0RSQU1fUkVGX0NUUkwpOworCV9fcmF3X3dyaXRlbChFTUlGX1NEUkVGLCBFTUlG NF8wX1NEUkFNX1JFRl9DVFJMX1NIQURPVyk7CisKKwlfX3Jhd193cml0ZWwoRU1JRl9TRENGRywg RU1JRjRfMF9TRFJBTV9DT05GSUcpOworCV9fcmF3X3dyaXRlbChFTUlGX1NEQ0ZHLCBFTUlGNF8w X1NEUkFNX0NPTkZJRzIpOworfQorCitzdGF0aWMgdm9pZCBiZWFnbGVib25lX2NvbmZpZ19kZHIo dm9pZCkKK3sKKwllbmFibGVfZGRyX2Nsb2NrcygpOworCisJYmVhZ2xlYm9uZV9jb25maWdfdnRw KCk7CisKKwliZWFnbGVib25lX2NtZF9tYWNyb19jb25maWcoKTsKKwliZWFnbGVib25lX2RhdGFf bWFjcm9fY29uZmlnKDApOworCWJlYWdsZWJvbmVfZGF0YV9tYWNyb19jb25maWcoMSk7CisKKwlf X3Jhd193cml0ZWwoUEhZX1JBTkswX0RFTEFZLCBEQVRBMF9SQU5LMF9ERUxBWVNfMCk7CisJX19y YXdfd3JpdGVsKFBIWV9SQU5LMF9ERUxBWSwgREFUQTFfUkFOSzBfREVMQVlTXzApOworCisJX19y YXdfd3JpdGVsKEREUl9JT0NUUkxfVkFMVUUsIEREUl9DTUQwX0lPQ1RSTCk7CisJX19yYXdfd3Jp dGVsKEREUl9JT0NUUkxfVkFMVUUsIEREUl9DTUQxX0lPQ1RSTCk7CisJX19yYXdfd3JpdGVsKERE Ul9JT0NUUkxfVkFMVUUsIEREUl9DTUQyX0lPQ1RSTCk7CisJX19yYXdfd3JpdGVsKEREUl9JT0NU UkxfVkFMVUUsIEREUl9EQVRBMF9JT0NUUkwpOworCV9fcmF3X3dyaXRlbChERFJfSU9DVFJMX1ZB TFVFLCBERFJfREFUQTFfSU9DVFJMKTsKKworCV9fcmF3X3dyaXRlbChfX3Jhd19yZWFkbChERFJf SU9fQ1RSTCkgJiAweGVmZmZmZmZmLCBERFJfSU9fQ1RSTCk7CisJX19yYXdfd3JpdGVsKF9fcmF3 X3JlYWRsKEREUl9DS0VfQ1RSTCkgfCAweDAwMDAwMDAxLCBERFJfQ0tFX0NUUkwpOworCisJYmVh Z2xlYm9uZV9jb25maWdfZW1pZl9kZHIyKCk7Cit9CisKKy8qCisgKiBlYXJseSBzeXN0ZW0gaW5p dCBvZiBtdXhpbmcgYW5kIGNsb2Nrcy4KKyAqLwordm9pZCBiZWFnbGVib25lX3NyYW1faW5pdCh2 b2lkKQoreworCXUzMiByZWdWYWwsIHVhcnRfYmFzZTsKKworCS8qIFNldHVwIHRoZSBQTExzIGFu ZCB0aGUgY2xvY2tzIGZvciB0aGUgcGVyaXBoZXJhbHMgKi8KKwlwbGxfaW5pdCgpOworCisJYmVh Z2xlYm9uZV9jb25maWdfZGRyKCk7CisKKwkvKiBVQVJUIHNvZnRyZXNldCAqLworCXVhcnRfYmFz ZSA9IEFNMzNYWF9VQVJUMF9CQVNFOworCisJcmVnVmFsID0gX19yYXdfcmVhZGwodWFydF9iYXNl ICsgVUFSVF9TWVNDRkdfT0ZGU0VUKTsKKwlyZWdWYWwgfD0gVUFSVF9SRVNFVDsKKwlfX3Jhd193 cml0ZWwocmVnVmFsLCAodWFydF9iYXNlICsgVUFSVF9TWVNDRkdfT0ZGU0VUKSApOworCXdoaWxl ICgoX19yYXdfcmVhZGwodWFydF9iYXNlICsgVUFSVF9TWVNTVFNfT0ZGU0VUKSAmCisJCVVBUlRf Q0xLX1JVTk5JTkdfTUFTSykgIT0gVUFSVF9DTEtfUlVOTklOR19NQVNLKTsKKworCS8qIERpc2Fi bGUgc21hcnQgaWRsZSAqLworCXJlZ1ZhbCA9IF9fcmF3X3JlYWRsKCh1YXJ0X2Jhc2UgKyBVQVJU X1NZU0NGR19PRkZTRVQpKTsKKwlyZWdWYWwgfD0gVUFSVF9TTUFSVF9JRExFX0VOOworCV9fcmF3 X3dyaXRlbChyZWdWYWwsICh1YXJ0X2Jhc2UgKyBVQVJUX1NZU0NGR19PRkZTRVQpKTsKK30KKwor CisvKioKKyAqIEBicmllZiBUaGUgYmFzaWMgZW50cnkgcG9pbnQgZm9yIGJvYXJkIGluaXRpYWxp emF0aW9uLgorICoKKyAqIFRoaXMgaXMgY2FsbGVkIGFzIHBhcnQgb2YgbWFjaGluZSBpbml0IChh ZnRlciBhcmNoIGluaXQpLgorICogVGhpcyBpcyBhZ2FpbiBjYWxsZWQgd2l0aCBzdGFjayBpbiBT UkFNLCBzbyBub3QgdG9vIG1hbnkKKyAqIGNvbnN0cnVjdHMgcG9zc2libGUgaGVyZS4KKyAqCisg KiBAcmV0dXJuIHZvaWQKKyAqLworc3RhdGljIGludCBiZWFnbGVib25lX2JvYXJkX2luaXQodm9p ZCkKK3sKKwlpbnQgaW5fc2RyYW0gPSBydW5uaW5nX2luX3NkcmFtKCk7CisKKwkvKiBXRFQxIGlz IGFscmVhZHkgcnVubmluZyB3aGVuIHRoZSBib290bG9hZGVyIGdldHMgY29udHJvbAorCSAqIERp c2FibGUgaXQgdG8gYXZvaWQgInJhbmRvbSIgcmVzZXRzCisJICovCisJX19yYXdfd3JpdGVsKDB4 QUFBQSwgV0RUX1dTUFIpOworCXdoaWxlKF9fcmF3X3JlYWRsKFdEVF9XV1BTKSAhPSAweDApOwor CV9fcmF3X3dyaXRlbCgweDU1NTUsIFdEVF9XU1BSKTsKKwl3aGlsZShfX3Jhd19yZWFkbChXRFRf V1dQUykgIT0gMHgwKTsKKworCS8qIERvbnQgcmVjb25maWd1cmUgU0RSQU0gd2hpbGUgcnVubmlu ZyBpbiBTRFJBTSEgKi8KKwlpZiAoIWluX3NkcmFtKQorCQliZWFnbGVib25lX3NyYW1faW5pdCgp OworCisJLyogRW5hYmxlIHBpbiBtdXggKi8KKwllbmFibGVfdWFydDBfcGluX211eCgpOworCisJ cmV0dXJuIDA7Cit9CitwdXJlX2luaXRjYWxsKGJlYWdsZWJvbmVfYm9hcmRfaW5pdCk7CisKKy8q KioqKioqKioqKioqKioqKioqKiBCb2FyZCBSdW4gVGltZSAqKioqKioqKioqKioqKioqKioqLwor CisjaWZkZWYgQ09ORklHX0RSSVZFUl9TRVJJQUxfTlMxNjU1MAorCitzdGF0aWMgc3RydWN0IE5T MTY1NTBfcGxhdCBzZXJpYWxfcGxhdCA9IHsKKwkuY2xvY2sgPSA0ODAwMDAwMCwgICAgICAvKiA0 OE1IeiAoQVBMTDk2LzIpICovCisJLnNoaWZ0ID0gMiwKK307CisKKy8qKgorICogQGJyaWVmIFVB UlQgc2VyaWFsIHBvcnQgaW5pdGlhbGl6YXRpb24gLSByZW1lbWJlciB0byBlbmFibGUgQ09NIGNs b2NrcyBpbgorICogYXJjaAorICoKKyAqIEByZXR1cm4gcmVzdWx0IG9mIGRldmljZSByZWdpc3Ry YXRpb24KKyAqLworc3RhdGljIGludCBiZWFnbGVib25lX2NvbnNvbGVfaW5pdCh2b2lkKQorewor CS8qIFJlZ2lzdGVyIHRoZSBzZXJpYWwgcG9ydCAqLworCWFkZF9uczE2NTUwX2RldmljZSgtMSwg QU0zM1hYX1VBUlQwX0JBU0UsIFNaXzFLLCBJT1JFU09VUkNFX01FTV84QklULAorCQkJICAgJnNl cmlhbF9wbGF0KTsKKworCXJldHVybiAwOworfQorY29uc29sZV9pbml0Y2FsbChiZWFnbGVib25l X2NvbnNvbGVfaW5pdCk7CisjZW5kaWYgLyogQ09ORklHX0RSSVZFUl9TRVJJQUxfTlMxNjU1MCAq LworCitzdGF0aWMgaW50IGJlYWdsZWJvbmVfbWVtX2luaXQodm9pZCkKK3sKKwlhcm1fYWRkX21l bV9kZXZpY2UoInJhbTAiLCAweDgwMDAwMDAwLCAyNTYgKiAxMDI0ICogMTAyNCk7CisKKwlyZXR1 cm4gMDsKK30KK21lbV9pbml0Y2FsbChiZWFnbGVib25lX21lbV9pbml0KTsKKworc3RhdGljIGlu dCBiZWFnbGVib25lX2RldmljZXNfaW5pdCh2b2lkKQoreworCWFkZF9nZW5lcmljX2RldmljZSgi b21hcC1oc21tYyIsIERFVklDRV9JRF9EWU5BTUlDLCBOVUxMLAorCSAgICAgICAgICAgICAgICAg ICBBTTMzWFhfTU1DSFMwX0JBU0UrMHgxMDAsIFNaXzRLLAorCSAgICAgICAgICAgICAgICAgICBJ T1JFU09VUkNFX01FTSwgTlVMTCk7CisKKwllbmFibGVfaTJjMF9waW5fbXV4KCk7CisKKwlhcm1s aW51eF9zZXRfYm9vdHBhcmFtcygodm9pZCAqKTB4ODAwMDAxMDApOworCWFybWxpbnV4X3NldF9h cmNoaXRlY3R1cmUoTUFDSF9UWVBFX0JFQUdMRUJPTkUpOworCisJcmV0dXJuIDA7Cit9CitkZXZp Y2VfaW5pdGNhbGwoYmVhZ2xlYm9uZV9kZXZpY2VzX2luaXQpOworCisjaWZkZWYgQ09ORklHX0RF RkFVTFRfRU5WSVJPTk1FTlQKK3N0YXRpYyBpbnQgYmVhZ2xlYm9uZV9lbnZfaW5pdCh2b2lkKQor eworCXN0cnVjdCBzdGF0IHM7CisJY2hhciAqZGlza2RldiA9ICIvZGV2L2Rpc2swLjAiOworCWlu dCByZXQ7CisKKwlyZXQgPSBzdGF0KGRpc2tkZXYsICZzKTsKKwlpZiAocmV0KSB7CisJCXByaW50 ZigiZGV2aWNlICVzIG5vdCBmb3VuZC4gVXNpbmcgZGVmYXVsdCBlbnZpcm9ubWVudFxuIiwgZGlz a2Rldik7CisJCXJldHVybiAwOworCX0KKworCW1rZGlyICgiL2Jvb3QiLCAwNjY2KTsKKwlyZXQg PSBtb3VudChkaXNrZGV2LCAiZmF0IiwgIi9ib290Iik7CisJaWYgKHJldCkgeworCQlwcmludGYo ImZhaWxlZCB0byBtb3VudCAlc1xuIiwgZGlza2Rldik7CisJCXJldHVybiAwOworCX0KKworCWlm IChJU19FTkFCTEVEKENPTkZJR19PTUFQX0JVSUxEX0lGVCkpCisJCWRlZmF1bHRfZW52aXJvbm1l bnRfcGF0aCA9ICIvZGV2L2RlZmF1bHRlbnYiOworCWVsc2UKKwkJZGVmYXVsdF9lbnZpcm9ubWVu dF9wYXRoID0gIi9ib290L2JhcmVib3guZW52IjsKKworCXJldHVybiAwOworfQorbGF0ZV9pbml0 Y2FsbChiZWFnbGVib25lX2Vudl9pbml0KTsKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0v Ym9hcmRzL2JlYWdsZWJvbmUvY29uZmlnLmggYi9hcmNoL2FybS9ib2FyZHMvYmVhZ2xlYm9uZS9j b25maWcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTJhYTc5Ci0tLSAv ZGV2L251bGwKKysrIGIvYXJjaC9hcm0vYm9hcmRzL2JlYWdsZWJvbmUvY29uZmlnLmgKQEAgLTAs MCArMSwxNyBAQAorLyoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgorICogdGhlIExpY2Vu c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4KKyAqCisgKi8KKworI2lmbmRlZiBfQ09ORklHX0hfCisjIGRlZmluZSBfQ09O RklHX0hfCisKKyNlbmRpZiAvKiBfQ09ORklHX0hfICovCmRpZmYgLS1naXQgYS9hcmNoL2FybS9i b2FyZHMvYmVhZ2xlYm9uZS9lbnYvYm9vdC9zZCBiL2FyY2gvYXJtL2JvYXJkcy9iZWFnbGVib25l L2Vudi9ib290L3NkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjZTA2MDUK LS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9ib2FyZHMvYmVhZ2xlYm9uZS9lbnYvYm9vdC9z ZApAQCAtMCwwICsxLDExIEBACisjIS9iaW4vc2gKKworaWYgWyAiJDEiID0gbWVudSBdOyB0aGVu CisJYm9vdC1tZW51LWFkZC1lbnRyeSAiJDAiICJrZXJuZWwgJiByb290ZnMgb24gU0QgY2FyZCIK KwlleGl0CitmaQorCitnbG9iYWwuYm9vdG0uaW1hZ2U9L2Jvb3QvdUltYWdlCitnbG9iYWwuYm9v dG0ub2Z0cmVlPS9ib290L29mdHJlZQorI2dsb2JhbC5ib290bS5pbml0cmQ9PHBhdGggdG8gaW5p dHJkPgorZ2xvYmFsLmxpbnV4LmJvb3RhcmdzLmR5bi5yb290PSJyb290PS9kZXYvbW1jYmxrMHAy IHJvb3Rmc3R5cGU9ZXh0NCByb290d2FpdCIKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2JvYXJkcy9i ZWFnbGVib25lL2Vudi9jb25maWcgYi9hcmNoL2FybS9ib2FyZHMvYmVhZ2xlYm9uZS9lbnYvY29u ZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRiN2E2MzUKLS0tIC9kZXYv bnVsbAorKysgYi9hcmNoL2FybS9ib2FyZHMvYmVhZ2xlYm9uZS9lbnYvY29uZmlnCkBAIC0wLDAg KzEsMjEgQEAKKyMhL2Jpbi9zaAorCisjIGNoYW5nZSBuZXR3b3JrIHNldHRpbmdzIGluIC9lbnYv bmV0d29yay9ldGgwCisjIGNoYW5nZSBtdGQgcGFydGl0aW9uIHNldHRpbmdzIGFuZCBhdXRvbW91 bnRwb2ludHMgaW4gL2Vudi9pbml0LyoKKworZ2xvYmFsLmhvc3RuYW1lPWJlYWdsZWJvbmUKKwor IyBzZXQgdG8gZmFsc2UgaWYgeW91IGRvIG5vdCB3YW50IHRvIGhhdmUgY29sb3JzCitnbG9iYWwu YWxsb3dfY29sb3I9dHJ1ZQorCisjIHVzZXIgKHVzZWQgZm9yIG5ldHdvcmsgZmlsZW5hbWVzKQor Z2xvYmFsLnVzZXI9bm9uZQorCisjIHRpbWVvdXQgaW4gc2Vjb25kcyBiZWZvcmUgdGhlIGRlZmF1 bHQgYm9vdCBlbnRyeSBpcyBzdGFydGVkCitnbG9iYWwuYXV0b2Jvb3RfdGltZW91dD0zCisKKyMg ZGVmYXVsdCBib290IGVudHJ5IChvbmUgb2YgL2Vudi9ib290LyopCitnbG9iYWwuYm9vdC5kZWZh dWx0PXNkCisKKyMgYmFzZSBib290YXJncworZ2xvYmFsLmxpbnV4LmJvb3RhcmdzLmJhc2U9ImNv bnNvbGU9dHR5TzAsMTE1MjAwbjgiCmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL2FtMzM1 eF9iZWFnbGVib25lX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvYW0zMzV4X2JlYWdsZWJv bmVfZGVmY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwNjZkOWMK LS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9jb25maWdzL2FtMzM1eF9iZWFnbGVib25lX2Rl ZmNvbmZpZwpAQCAtMCwwICsxLDU0IEBACitDT05GSUdfQVJDSF9PTUFQPXkKK0NPTkZJR19BUkNI X0FNMzNYWD15CitDT05GSUdfQUVBQkk9eQorQ09ORklHX0FSTV9PUFRJTVpFRF9TVFJJTkdfRlVO Q1RJT05TPXkKK0NPTkZJR19BUk1fVU5XSU5EPXkKK0NPTkZJR19NTVU9eQorQ09ORklHX1RFWFRf QkFTRT0weDgxMDAwMDAwCitDT05GSUdfS0FMTFNZTVM9eQorQ09ORklHX1BST01QVD0iYmFyZWJv eD4gIgorQ09ORklHX0xPTkdIRUxQPXkKK0NPTkZJR19IVVNIX0ZBTkNZX1BST01QVD15CitDT05G SUdfQ01ETElORV9FRElUSU5HPXkKK0NPTkZJR19BVVRPX0NPTVBMRVRFPXkKK0NPTkZJR19NRU5V PXkKKyMgQ09ORklHX1RJTUVTVEFNUCBpcyBub3Qgc2V0CitDT05GSUdfREVGQVVMVF9FTlZJUk9O TUVOVF9HRU5FUklDX05FVz15CitDT05GSUdfREVGQVVMVF9FTlZJUk9OTUVOVF9QQVRIPSJhcmNo L2FybS9ib2FyZHMvYmVhZ2xlYm9uZS9lbnYiCitDT05GSUdfQ01EX0VESVQ9eQorQ09ORklHX0NN RF9TTEVFUD15CitDT05GSUdfQ01EX1NBVkVFTlY9eQorQ09ORklHX0NNRF9FWFBPUlQ9eQorQ09O RklHX0NNRF9QUklOVEVOVj15CitDT05GSUdfQ01EX1JFQURMSU5FPXkKK0NPTkZJR19DTURfTUVO VT15CitDT05GSUdfQ01EX01FTlVfTUFOQUdFTUVOVD15CitDT05GSUdfQ01EX1RJTUU9eQorQ09O RklHX0NNRF9FQ0hPX0U9eQorQ09ORklHX0NNRF9NRU1JTkZPPXkKK0NPTkZJR19DTURfQ1JDPXkK K0NPTkZJR19DTURfQ1JDX0NNUD15CitDT05GSUdfQ01EX0JPT1RNX1NIT1dfVFlQRT15CitDT05G SUdfQ01EX0JPT1RNX1ZFUkJPU0U9eQorQ09ORklHX0NNRF9CT09UTV9JTklUUkQ9eQorQ09ORklH X0NNRF9CT09UTV9PRlRSRUU9eQorQ09ORklHX0NNRF9CT09UTV9PRlRSRUVfVUlNQUdFPXkKK0NP TkZJR19DTURfVUlNQUdFPXkKK0NPTkZJR19DTURfUkVTRVQ9eQorQ09ORklHX0NNRF9HTz15CitD T05GSUdfQ01EX09GVFJFRT15CitDT05GSUdfQ01EX1RJTUVPVVQ9eQorQ09ORklHX0NNRF9QQVJU SVRJT049eQorQ09ORklHX0NNRF9NQUdJQ1ZBUj15CitDT05GSUdfQ01EX01BR0lDVkFSX0hFTFA9 eQorQ09ORklHX0NNRF9HUElPPXkKK0NPTkZJR19DTURfVU5DT01QUkVTUz15CitDT05GSUdfRFJJ VkVSX1NFUklBTF9OUzE2NTUwPXkKK0NPTkZJR19EUklWRVJfU0VSSUFMX05TMTY1NTBfT01BUF9F WFRFTlNJT05TPXkKKyMgQ09ORklHX1NQSSBpcyBub3Qgc2V0CitDT05GSUdfTUNJPXkKK0NPTkZJ R19NQ0lfU1RBUlRVUD15CitDT05GSUdfTUNJX09NQVBfSFNNTUM9eQorQ09ORklHX0ZTX0ZBVD15 CitDT05GSUdfRlNfRkFUX1dSSVRFPXkKK0NPTkZJR19GU19GQVRfTEZOPXkKZGlmZiAtLWdpdCBh L2FyY2gvYXJtL2NvbmZpZ3MvYW0zMzV4X2JlYWdsZWJvbmVfbWxvX2xhcmdlX2RlZmNvbmZpZyBi L2FyY2gvYXJtL2NvbmZpZ3MvYW0zMzV4X2JlYWdsZWJvbmVfbWxvX2xhcmdlX2RlZmNvbmZpZwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOTBmNTgxCi0tLSAvZGV2L251bGwK KysrIGIvYXJjaC9hcm0vY29uZmlncy9hbTMzNXhfYmVhZ2xlYm9uZV9tbG9fbGFyZ2VfZGVmY29u ZmlnCkBAIC0wLDAgKzEsNTUgQEAKK0NPTkZJR19BUkNIX09NQVA9eQorQ09ORklHX0FSQ0hfQU0z M1hYPXkKKyMgQ09ORklHX09NQVBfR1BNQyBpcyBub3Qgc2V0CitDT05GSUdfT01BUF9CVUlMRF9J RlQ9eQorQ09ORklHX1RIVU1CMl9CQVJFQk9YPXkKKyMgQ09ORklHX0NNRF9BUk1fQ1BVSU5GTyBp cyBub3Qgc2V0CitDT05GSUdfTU1VPXkKK0NPTkZJR19URVhUX0JBU0U9MHg0MDJGMDQwMAorQ09O RklHX01FTU9SWV9MQVlPVVRfRklYRUQ9eQorQ09ORklHX1NUQUNLX0JBU0U9MHg0MDMwQjgwMAor Q09ORklHX1NUQUNLX1NJWkU9MHgxNjAwCitDT05GSUdfTUFMTE9DX0JBU0U9MHg4RjAwMDAwMAor Q09ORklHX01BTExPQ19TSVpFPTB4MTAwMDAwMAorQ09ORklHX1BST01QVD0iYmFyZWJveD4gIgor Q09ORklHX0hVU0hfRkFOQ1lfUFJPTVBUPXkKK0NPTkZJR19DTURMSU5FX0VESVRJTkc9eQorQ09O RklHX0FVVE9fQ09NUExFVEU9eQorIyBDT05GSUdfVElNRVNUQU1QIGlzIG5vdCBzZXQKK0NPTkZJ R19ERUZBVUxUX0VOVklST05NRU5UX0dFTkVSSUNfTkVXPXkKK0NPTkZJR19ERUZBVUxUX0VOVklS T05NRU5UX1BBVEg9ImFyY2gvYXJtL2JvYXJkcy9iZWFnbGVib25lL2VudiIKK0NPTkZJR19CQVJF Qk9YRU5WX1RBUkdFVD15CitDT05GSUdfQ01EX0VESVQ9eQorQ09ORklHX0NNRF9TTEVFUD15CitD T05GSUdfQ01EX0VYUE9SVD15CitDT05GSUdfQ01EX1BSSU5URU5WPXkKK0NPTkZJR19DTURfUkVB RExJTkU9eQorIyBDT05GSUdfQ01EX1VNT1VOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DTURfQ0xF QVIgaXMgbm90IHNldAorQ09ORklHX0NNRF9FQ0hPX0U9eQorQ09ORklHX0NNRF9JT01FTT15CitD T05GSUdfQ01EX0NSQz15CitDT05GSUdfQ01EX0NSQ19DTVA9eQorQ09ORklHX0NNRF9CT09UTV9T SE9XX1RZUEU9eQorQ09ORklHX0NNRF9CT09UTV9WRVJCT1NFPXkKK0NPTkZJR19DTURfQk9PVE1f SU5JVFJEPXkKK0NPTkZJR19DTURfQk9PVE1fT0ZUUkVFPXkKK0NPTkZJR19DTURfQk9PVE1fT0ZU UkVFX1VJTUFHRT15CisjIENPTkZJR19DTURfQk9PVFUgaXMgbm90IHNldAorQ09ORklHX0NNRF9S RVNFVD15CitDT05GSUdfQ01EX0dPPXkKK0NPTkZJR19DTURfT0ZUUkVFPXkKK0NPTkZJR19DTURf VElNRU9VVD15CisjIENPTkZJR19DTURfVkVSU0lPTiBpcyBub3Qgc2V0CitDT05GSUdfQ01EX01B R0lDVkFSPXkKK0NPTkZJR19DTURfTUFHSUNWQVJfSEVMUD15CitDT05GSUdfRFJJVkVSX1NFUklB TF9OUzE2NTUwPXkKK0NPTkZJR19EUklWRVJfU0VSSUFMX05TMTY1NTBfT01BUF9FWFRFTlNJT05T PXkKKyMgQ09ORklHX1NQSSBpcyBub3Qgc2V0CitDT05GSUdfTUNJPXkKK0NPTkZJR19NQ0lfU1RB UlRVUD15CisjIENPTkZJR19NQ0lfSU5GTyBpcyBub3Qgc2V0CisjIENPTkZJR19NQ0lfV1JJVEUg aXMgbm90IHNldAorQ09ORklHX01DSV9PTUFQX0hTTU1DPXkKK0NPTkZJR19GU19GQVQ9eQorQ09O RklHX0ZTX0ZBVF9MRk49eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9hbTMzNXhfYmVh Z2xlYm9uZV9tbG9fc21hbGxfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9hbTMzNXhfYmVh Z2xlYm9uZV9tbG9fc21hbGxfZGVmY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjg4NmRhZDkKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9jb25maWdzL2FtMzM1 eF9iZWFnbGVib25lX21sb19zbWFsbF9kZWZjb25maWcKQEAgLTAsMCArMSwzMSBAQAorQ09ORklH X0FSQ0hfT01BUD15CitDT05GSUdfQVJDSF9BTTMzWFg9eQorIyBDT05GSUdfT01BUF9HUE1DIGlz IG5vdCBzZXQKK0NPTkZJR19PTUFQX0JVSUxEX0lGVD15CitDT05GSUdfVEhVTUIyX0JBUkVCT1g9 eQorIyBDT05GSUdfQ01EX0FSTV9DUFVJTkZPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JBTk5FUiBp cyBub3Qgc2V0CisjIENPTkZJR19NRU1JTkZPIGlzIG5vdCBzZXQKK0NPTkZJR19FTlZJUk9OTUVO VF9WQVJJQUJMRVM9eQorQ09ORklHX01NVT15CitDT05GSUdfVEVYVF9CQVNFPTB4NDAyRjA0MDAK K0NPTkZJR19NRU1PUllfTEFZT1VUX0ZJWEVEPXkKK0NPTkZJR19TVEFDS19CQVNFPTB4NDAzMEI4 MDAKK0NPTkZJR19TVEFDS19TSVpFPTB4MTYwMAorQ09ORklHX01BTExPQ19CQVNFPTB4OEYwMDAw MDAKK0NPTkZJR19NQUxMT0NfU0laRT0weDEwMDAwMDAKK0NPTkZJR19QUk9NUFQ9Ik1MTz4iCitD T05GSUdfU0hFTExfTk9ORT15CisjIENPTkZJR19FUlJOT19NRVNTQUdFUyBpcyBub3Qgc2V0Cisj IENPTkZJR19USU1FU1RBTVAgaXMgbm90IHNldAorIyBDT05GSUdfREVGQVVMVF9FTlZJUk9OTUVO VCBpcyBub3Qgc2V0CitDT05GSUdfRFJJVkVSX1NFUklBTF9OUzE2NTUwPXkKK0NPTkZJR19EUklW RVJfU0VSSUFMX05TMTY1NTBfT01BUF9FWFRFTlNJT05TPXkKKyMgQ09ORklHX1NQSSBpcyBub3Qg c2V0CitDT05GSUdfTUNJPXkKK0NPTkZJR19NQ0lfU1RBUlRVUD15CitDT05GSUdfTUNJX09NQVBf SFNNTUM9eQorIyBDT05GSUdfRlNfUkFNRlMgaXMgbm90IHNldAorIyBDT05GSUdfRlNfREVWRlMg aXMgbm90IHNldAorQ09ORklHX0ZTX0ZBVD15CitDT05GSUdfRlNfRkFUX0xGTj15CmRpZmYgLS1n aXQgYS9hcmNoL2FybS9tYWNoLW9tYXAvS2NvbmZpZyBiL2FyY2gvYXJtL21hY2gtb21hcC9LY29u ZmlnCmluZGV4IGI5NDUwMGEuLmFlMWUwN2UgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21h cC9LY29uZmlnCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcC9LY29uZmlnCkBAIC0xMDUsNyArMTA1 LDggQEAgY29uZmlnIE9NQVA0X1VTQkJPT1QKIGNvbmZpZyBCT0FSRElORk8KIAlkZWZhdWx0ICJB cmNob3MgRzkiIGlmIE1BQ0hfQVJDSE9TRzkKIAlkZWZhdWx0ICJUZXhhcyBJbnN0cnVtZW50J3Mg U0RQMzQzeCIgaWYgTUFDSF9PTUFQMzQzeFNEUAotCWRlZmF1bHQgIlRleGFzIEluc3RydW1lbnQn cyBCZWFnbGUiIGlmIE1BQ0hfQkVBR0xFCisJZGVmYXVsdCAiVGV4YXMgSW5zdHJ1bWVudCdzIEJl YWdsZSBCb2FyZCIgaWYgTUFDSF9CRUFHTEUKKwlkZWZhdWx0ICJUZXhhcyBJbnN0cnVtZW50J3Mg QmVhZ2xlIEJvbmUiIGlmIE1BQ0hfQkVBR0xFQk9ORQogCWRlZmF1bHQgIlRleGFzIEluc3RydW1l bnQncyBPTUFQM0VWTSIgaWYgTUFDSF9PTUFQM0VWTQogCWRlZmF1bHQgIlRleGFzIEluc3RydW1l bnQncyBQYW5kYSIgaWYgTUFDSF9QQU5EQQogCWRlZmF1bHQgIlBoeXRlYyBwaHlDT1JFIHBjbTA0 OSIgaWYgTUFDSF9QQ00wNDkKQEAgLTEyOSw2ICsxMzAsMTQgQEAgY29uZmlnIE1BQ0hfQkVBR0xF CiAJaGVscAogCSAgU2F5IFkgaGVyZSBpZiB5b3UgYXJlIHVzaW5nIEJlYWdsZSBCb2FyZAogCitj b25maWcgTUFDSF9CRUFHTEVCT05FCisJYm9vbCAiVGV4YXMgSW5zdHJ1bWVudCdzIEJlYWdsZSBC b25lIgorCXNlbGVjdCBPTUFQX0NMT0NLX0FMTAorCXNlbGVjdCBIQVZFX05PU0hFTEwKKwlkZXBl bmRzIG9uIEFSQ0hfQU0zM1hYCisJICBoZWxwCisJICBTYXkgWSBoZXJlIGlmIHlvdSBhcmUgdXNp bmcgQmVhZ2xlIEJvbmUKKwogY29uZmlnIE1BQ0hfT01BUDNFVk0KIAlib29sICJUZXhhcyBJbnN0 cnVtZW50J3MgT01BUDMgRVZNIgogCXNlbGVjdCBIQVZFX05PU0hFTEwKZGlmZiAtLWdpdCBhL2Fy Y2gvYXJtL21hY2gtb21hcC9NYWtlZmlsZSBiL2FyY2gvYXJtL21hY2gtb21hcC9NYWtlZmlsZQpp bmRleCAyOTAwMzRlLi4xNTM2NzQ0IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAvTWFr ZWZpbGUKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwL01ha2VmaWxlCkBAIC0yMyw3ICsyMyw3IEBA IG9iai0kKENPTkZJR19BUkNIX09NQVAzKSArPSBvbWFwM19jb3JlLm8gb21hcDNfZ2VuZXJpYy5v IGF1eGNyLm8KIHBibC0kKENPTkZJR19BUkNIX09NQVAzKSArPSBvbWFwM19jb3JlLm8gb21hcDNf Z2VuZXJpYy5vIGF1eGNyLm8KIG9iai0kKENPTkZJR19BUkNIX09NQVA0KSArPSBvbWFwNF9nZW5l cmljLm8gb21hcDRfY2xvY2subwogcGJsLSQoQ09ORklHX0FSQ0hfT01BUDQpICs9IG9tYXA0X2dl bmVyaWMubyBvbWFwNF9jbG9jay5vCi1vYmotJChDT05GSUdfQVJDSF9BTTMzWFgpICs9IGFtMzN4 eF9nZW5lcmljLm8KK29iai0kKENPTkZJR19BUkNIX0FNMzNYWCkgKz0gYW0zM3h4X2dlbmVyaWMu byBhbTMzeHhfY2xvY2subyBhbTMzeHhfbXV4Lm8KIG9iai0kKENPTkZJR19PTUFQM19DTE9DS19D T05GSUcpICs9IG9tYXAzX2Nsb2NrLm8KIHBibC0kKENPTkZJR19PTUFQM19DTE9DS19DT05GSUcp ICs9IG9tYXAzX2Nsb2NrLm8KIG9iai0kKENPTkZJR19PTUFQX0dQTUMpICs9IGdwbWMubyBkZXZp Y2VzLWdwbWMtbmFuZC5vCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAvYW0zM3h4X2Ns b2NrLmMgYi9hcmNoL2FybS9tYWNoLW9tYXAvYW0zM3h4X2Nsb2NrLmMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uYTI4NTQwYwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJt L21hY2gtb21hcC9hbTMzeHhfY2xvY2suYwpAQCAtMCwwICsxLDI4OSBAQAorLyoKKyAqIHBsbC5j CisgKgorICogQ29weXJpZ2h0IChDKSAyMDExIFRleGFzIEluc3RydW1lbnRzIEluY29ycG9yYXRl ZCAtIGh0dHA6Ly93d3cudGkuY29tLworICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisgKiBwdWJsaXNo ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiB2ZXJzaW9uIDIuCisgKgorICogVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkICJhcyBpcyIgV0lUSE9VVCBBTlkgV0FSUkFOVFkgb2Yg YW55CisgKiBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZDsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5CisgKiBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKi8KKyNpbmNsdWRlIDxjb21tb24uaD4KKyNpbmNsdWRl IDxhc20vaW8uaD4KKyNpbmNsdWRlIDxtYWNoL2FtMzN4eC1jbG9jay5oPgorCisjZGVmaW5lIFBS Q01fTU9EX0VOCQkweDIKKyNkZWZpbmUJUFJDTV9GT1JDRV9XQUtFVVAJMHgyCisKKyNkZWZpbmUg UFJDTV9FTUlGX0NMS19BQ1RJVklUWQkoMHgxIDw8IDIpCisjZGVmaW5lIFBSQ01fTDNfR0NMS19B Q1RJVklUWQkoMHgxIDw8IDQpCisKKyNkZWZpbmUgUExMX0JZUEFTU19NT0RFCTB4NAorI2RlZmlu ZSBQTExfTE9DS19NT0RFCTB4NworI2RlZmluZSBQTExfTVVMVElQTElFUl9TSElGVAkgOAorCitz dGF0aWMgdm9pZCBpbnRlcmZhY2VfY2xvY2tzX2VuYWJsZSh2b2lkKQoreworCS8qIEVuYWJsZSBh bGwgdGhlIEludGVyY29ubmVjdCBNb2R1bGVzICovCisJX19yYXdfd3JpdGVsKFBSQ01fTU9EX0VO LCBDTV9QRVJfTDNfQ0xLQ1RSTCk7CisJd2hpbGUgKF9fcmF3X3JlYWRsKENNX1BFUl9MM19DTEtD VFJMKSAhPSBQUkNNX01PRF9FTik7CisKKwlfX3Jhd193cml0ZWwoUFJDTV9NT0RfRU4sIENNX1BF Ul9MNExTX0NMS0NUUkwpOworCXdoaWxlIChfX3Jhd19yZWFkbChDTV9QRVJfTDRMU19DTEtDVFJM KSAhPSBQUkNNX01PRF9FTik7CisKKwlfX3Jhd193cml0ZWwoUFJDTV9NT0RfRU4sIENNX1BFUl9M NEZXX0NMS0NUUkwpOworCXdoaWxlIChfX3Jhd19yZWFkbChDTV9QRVJfTDRGV19DTEtDVFJMKSAh PSBQUkNNX01PRF9FTik7CisKKwlfX3Jhd193cml0ZWwoUFJDTV9NT0RfRU4sIENNX1dLVVBfTDRX S1VQX0NMS0NUUkwpOworCXdoaWxlIChfX3Jhd19yZWFkbChDTV9XS1VQX0w0V0tVUF9DTEtDVFJM KSAhPSBQUkNNX01PRF9FTik7CisKKwlfX3Jhd193cml0ZWwoUFJDTV9NT0RfRU4sIENNX1BFUl9M M19JTlNUUl9DTEtDVFJMKTsKKwl3aGlsZSAoX19yYXdfcmVhZGwoQ01fUEVSX0wzX0lOU1RSX0NM S0NUUkwpICE9IFBSQ01fTU9EX0VOKTsKKworCV9fcmF3X3dyaXRlbChQUkNNX01PRF9FTiwgQ01f UEVSX0w0SFNfQ0xLQ1RSTCk7CisJd2hpbGUgKF9fcmF3X3JlYWRsKENNX1BFUl9MNEhTX0NMS0NU UkwpICE9IFBSQ01fTU9EX0VOKTsKKworCV9fcmF3X3dyaXRlbChQUkNNX01PRF9FTiwgQ01fUEVS X1NQSTFfQ0xLQ1RSTCk7CisJd2hpbGUgKF9fcmF3X3JlYWRsKENNX1BFUl9TUEkxX0NMS0NUUkwp ICE9IFBSQ01fTU9EX0VOKTsKKworCS8qIEdQSU8wICovCisJX19yYXdfd3JpdGVsKFBSQ01fTU9E X0VOLCBDTV9XS1VQX0dQSU8wX0NMS0NUUkwpOworCXdoaWxlIChfX3Jhd19yZWFkbChDTV9XS1VQ X0dQSU8wX0NMS0NUUkwpICE9IFBSQ01fTU9EX0VOKTsKK30KKworc3RhdGljIHZvaWQgcG93ZXJf ZG9tYWluX3RyYW5zaXRpb25fZW5hYmxlKHZvaWQpCit7CisJLyoKKwkgKiBGb3JjZSBwb3dlciBk b21haW4gd2FrZSB1cCB0cmFuc2l0aW9uCisJICogRW5zdXJlIHRoYXQgdGhlIGNvcnJlc3BvbmRp bmcgaW50ZXJmYWNlIGNsb2NrIGlzIGFjdGl2ZSBiZWZvcmUKKwkgKiB1c2luZyB0aGUgcGVyaXBo ZXJhbAorCSAqLworCV9fcmF3X3dyaXRlbChQUkNNX0ZPUkNFX1dBS0VVUCwgQ01fUEVSX0wzX0NM S1NUQ1RSTCk7CisKKwlfX3Jhd193cml0ZWwoUFJDTV9GT1JDRV9XQUtFVVAsIENNX1BFUl9MNExT X0NMS1NUQ1RSTCk7CisKKwlfX3Jhd193cml0ZWwoUFJDTV9GT1JDRV9XQUtFVVAsIENNX1dLVVBf Q0xLU1RDVFJMKTsKKworCV9fcmF3X3dyaXRlbChQUkNNX0ZPUkNFX1dBS0VVUCwgQ01fUEVSX0w0 RldfQ0xLU1RDVFJMKTsKKworCV9fcmF3X3dyaXRlbChQUkNNX0ZPUkNFX1dBS0VVUCwgQ01fUEVS X0wzU19DTEtTVENUUkwpOworfQorCisvKgorICogRW5hYmxlIHRoZSBtb2R1bGUgY2xvY2sgYW5k IHRoZSBwb3dlciBkb21haW4gZm9yIHJlcXVpcmVkIHBlcmlwaGVyYWxzCisgKi8KK3N0YXRpYyB2 b2lkIHBlcl9jbG9ja3NfZW5hYmxlKHZvaWQpCit7CisJLyogRW5hYmxlIHRoZSBtb2R1bGUgY2xv Y2sgKi8KKwlfX3Jhd193cml0ZWwoUFJDTV9NT0RfRU4sIENNX1BFUl9USU1FUjJfQ0xLQ1RSTCk7 CisJd2hpbGUgKF9fcmF3X3JlYWRsKENNX1BFUl9USU1FUjJfQ0xLQ1RSTCkgIT0gUFJDTV9NT0Rf RU4pOworCisJLyogU2VsZWN0IHRoZSBNYXN0ZXIgb3NjIDI0IE1IWiBhcyBUaW1lcjIgY2xvY2sg c291cmNlICovCisJX19yYXdfd3JpdGVsKDB4MSwgQ0xLU0VMX1RJTUVSMl9DTEspOworCisJLyog VUFSVDAgKi8KKwlfX3Jhd193cml0ZWwoUFJDTV9NT0RfRU4sIENNX1dLVVBfVUFSVDBfQ0xLQ1RS TCk7CisJd2hpbGUgKF9fcmF3X3JlYWRsKENNX1dLVVBfVUFSVDBfQ0xLQ1RSTCkgIT0gUFJDTV9N T0RfRU4pOworCisJLyogVUFSVDMgKi8KKwlfX3Jhd193cml0ZWwoUFJDTV9NT0RfRU4sIENNX1BF Ul9VQVJUM19DTEtDVFJMKTsKKwl3aGlsZSAoX19yYXdfcmVhZGwoQ01fUEVSX1VBUlQzX0NMS0NU UkwpICE9IFBSQ01fTU9EX0VOKTsKKworCS8qIEdQTUMgKi8KKwlfX3Jhd193cml0ZWwoUFJDTV9N T0RfRU4sIENNX1BFUl9HUE1DX0NMS0NUUkwpOworCXdoaWxlIChfX3Jhd19yZWFkbChDTV9QRVJf R1BNQ19DTEtDVFJMKSAhPSBQUkNNX01PRF9FTik7CisKKwkvKiBFTE0gKi8KKwlfX3Jhd193cml0 ZWwoUFJDTV9NT0RfRU4sIENNX1BFUl9FTE1fQ0xLQ1RSTCk7CisJd2hpbGUgKF9fcmF3X3JlYWRs KENNX1BFUl9FTE1fQ0xLQ1RSTCkgIT0gUFJDTV9NT0RfRU4pOworCisJLyogaTJjMCAqLworCV9f cmF3X3dyaXRlbChQUkNNX01PRF9FTiwgQ01fV0tVUF9JMkMwX0NMS0NUUkwpOworCXdoaWxlIChf X3Jhd19yZWFkbChDTV9XS1VQX0kyQzBfQ0xLQ1RSTCkgIT0gUFJDTV9NT0RfRU4pOworCisJLyog aTJjMSAqLworCV9fcmF3X3dyaXRlbChQUkNNX01PRF9FTiwgQ01fUEVSX0kyQzFfQ0xLQ1RSTCk7 CisJd2hpbGUgKF9fcmF3X3JlYWRsKENNX1BFUl9JMkMxX0NMS0NUUkwpICE9IFBSQ01fTU9EX0VO KTsKKworCS8qIGkyYzIgKi8KKwlfX3Jhd193cml0ZWwoUFJDTV9NT0RfRU4sIENNX1BFUl9JMkMy X0NMS0NUUkwpOworCXdoaWxlIChfX3Jhd19yZWFkbChDTV9QRVJfSTJDMl9DTEtDVFJMKSAhPSBQ UkNNX01PRF9FTik7CisKKwkvKiBFdGhlcm5ldCAqLworCV9fcmF3X3dyaXRlbChQUkNNX01PRF9F TiwgQ01fUEVSX0NQR01BQzBfQ0xLQ1RSTCk7CisJX19yYXdfd3JpdGVsKFBSQ01fTU9EX0VOLCBD TV9QRVJfQ1BTV19DTEtTVENUUkwpOworCXdoaWxlICgoX19yYXdfcmVhZGwoQ01fUEVSX0NQR01B QzBfQ0xLQ1RSTCkgJiAweDMwMDAwKSAhPSAweDApOworCisJLyogTU1DIDAgJiAxICovCisJX19y YXdfd3JpdGVsKFBSQ01fTU9EX0VOLCBDTV9QRVJfTU1DMF9DTEtDVFJMKTsKKwl3aGlsZSAoX19y YXdfcmVhZGwoQ01fUEVSX01NQzBfQ0xLQ1RSTCkgIT0gUFJDTV9NT0RfRU4pOworCV9fcmF3X3dy aXRlbChQUkNNX01PRF9FTiwgQ01fUEVSX01NQzFfQ0xLQ1RSTCk7CisJd2hpbGUgKF9fcmF3X3Jl YWRsKENNX1BFUl9NTUMxX0NMS0NUUkwpICE9IFBSQ01fTU9EX0VOKTsKKworCS8qIEVuYWJsZSB0 aGUgY29udHJvbCBtb2R1bGUgdGhvdWdoIFJCTCB3b3VsZCBoYXZlIGRvbmUgaXQqLworCV9fcmF3 X3dyaXRlbChQUkNNX01PRF9FTiwgQ01fV0tVUF9DT05UUk9MX0NMS0NUUkwpOworCXdoaWxlIChf X3Jhd19yZWFkbChDTV9XS1VQX0NPTlRST0xfQ0xLQ1RSTCkgIT0gUFJDTV9NT0RfRU4pOworCisJ LyogU1BJIDAgJiAxICovCisJX19yYXdfd3JpdGVsKFBSQ01fTU9EX0VOLCBDTV9QRVJfU1BJMF9D TEtDVFJMKTsKKwl3aGlsZSAoX19yYXdfcmVhZGwoQ01fUEVSX1NQSTBfQ0xLQ1RSTCkgIT0gUFJD TV9NT0RfRU4pOworCisJX19yYXdfd3JpdGVsKFBSQ01fTU9EX0VOLCBDTV9QRVJfU1BJMV9DTEtD VFJMKTsKKwl3aGlsZSAoX19yYXdfcmVhZGwoQ01fUEVSX1NQSTFfQ0xLQ1RSTCkgIT0gUFJDTV9N T0RfRU4pOworfQorCitzdGF0aWMgdm9pZCBtcHVfcGxsX2NvbmZpZyhpbnQgbXB1cGxsX00pCit7 CisJdTMyIGNsa21vZGUsIGNsa3NlbCwgZGl2X20yOworCisJY2xrbW9kZSA9IF9fcmF3X3JlYWRs KENNX0NMS01PREVfRFBMTF9NUFUpOworCWNsa3NlbCA9IF9fcmF3X3JlYWRsKENNX0NMS1NFTF9E UExMX01QVSk7CisJZGl2X20yID0gX19yYXdfcmVhZGwoQ01fRElWX00yX0RQTExfTVBVKTsKKwor CS8qIFNldCB0aGUgUExMIHRvIGJ5cGFzcyBNb2RlICovCisJX19yYXdfd3JpdGVsKFBMTF9CWVBB U1NfTU9ERSwgQ01fQ0xLTU9ERV9EUExMX01QVSk7CisKKwl3aGlsZShfX3Jhd19yZWFkbChDTV9J RExFU1RfRFBMTF9NUFUpICE9IDB4MDAwMDAxMDApOworCisJY2xrc2VsID0gY2xrc2VsICYgKH4w eDdmZmZmKTsKKwljbGtzZWwgPSBjbGtzZWwgfCAoKG1wdXBsbF9NIDw8IDB4OCkgfCBNUFVQTExf Tik7CisJX19yYXdfd3JpdGVsKGNsa3NlbCwgQ01fQ0xLU0VMX0RQTExfTVBVKTsKKworCWRpdl9t MiA9IGRpdl9tMiAmIH4weDFmOworCWRpdl9tMiA9IGRpdl9tMiB8IE1QVVBMTF9NMjsKKwlfX3Jh d193cml0ZWwoZGl2X20yLCBDTV9ESVZfTTJfRFBMTF9NUFUpOworCisJY2xrbW9kZSA9IGNsa21v ZGUgfCAweDc7CisJX19yYXdfd3JpdGVsKGNsa21vZGUsIENNX0NMS01PREVfRFBMTF9NUFUpOwor CisJd2hpbGUoX19yYXdfcmVhZGwoQ01fSURMRVNUX0RQTExfTVBVKSAhPSAweDEpOworfQorCitz dGF0aWMgdm9pZCBjb3JlX3BsbF9jb25maWcodm9pZCkKK3sKKwl1MzIgY2xrbW9kZSwgY2xrc2Vs LCBkaXZfbTQsIGRpdl9tNSwgZGl2X202OworCisJY2xrbW9kZSA9IF9fcmF3X3JlYWRsKENNX0NM S01PREVfRFBMTF9DT1JFKTsKKwljbGtzZWwgPSBfX3Jhd19yZWFkbChDTV9DTEtTRUxfRFBMTF9D T1JFKTsKKwlkaXZfbTQgPSBfX3Jhd19yZWFkbChDTV9ESVZfTTRfRFBMTF9DT1JFKTsKKwlkaXZf bTUgPSBfX3Jhd19yZWFkbChDTV9ESVZfTTVfRFBMTF9DT1JFKTsKKwlkaXZfbTYgPSBfX3Jhd19y ZWFkbChDTV9ESVZfTTZfRFBMTF9DT1JFKTsKKworCS8qIFNldCB0aGUgUExMIHRvIGJ5cGFzcyBN b2RlICovCisJX19yYXdfd3JpdGVsKFBMTF9CWVBBU1NfTU9ERSwgQ01fQ0xLTU9ERV9EUExMX0NP UkUpOworCisJd2hpbGUoX19yYXdfcmVhZGwoQ01fSURMRVNUX0RQTExfQ09SRSkgIT0gMHgwMDAw MDEwMCk7CisKKwljbGtzZWwgPSBjbGtzZWwgJiAofjB4N2ZmZmYpOworCWNsa3NlbCA9IGNsa3Nl bCB8ICgoQ09SRVBMTF9NIDw8IDB4OCkgfCBDT1JFUExMX04pOworCV9fcmF3X3dyaXRlbChjbGtz ZWwsIENNX0NMS1NFTF9EUExMX0NPUkUpOworCisJZGl2X200ID0gZGl2X200ICYgfjB4MWY7CisJ ZGl2X200ID0gZGl2X200IHwgQ09SRVBMTF9NNDsKKwlfX3Jhd193cml0ZWwoZGl2X200LCBDTV9E SVZfTTRfRFBMTF9DT1JFKTsKKworCWRpdl9tNSA9IGRpdl9tNSAmIH4weDFmOworCWRpdl9tNSA9 IGRpdl9tNSB8IENPUkVQTExfTTU7CisJX19yYXdfd3JpdGVsKGRpdl9tNSwgQ01fRElWX001X0RQ TExfQ09SRSk7CisKKwlkaXZfbTYgPSBkaXZfbTYgJiB+MHgxZjsKKwlkaXZfbTYgPSBkaXZfbTYg fCBDT1JFUExMX002OworCV9fcmF3X3dyaXRlbChkaXZfbTYsIENNX0RJVl9NNl9EUExMX0NPUkUp OworCisKKwljbGttb2RlID0gY2xrbW9kZSB8IDB4NzsKKwlfX3Jhd193cml0ZWwoY2xrbW9kZSwg Q01fQ0xLTU9ERV9EUExMX0NPUkUpOworCisJd2hpbGUoX19yYXdfcmVhZGwoQ01fSURMRVNUX0RQ TExfQ09SRSkgIT0gMHgxKTsKK30KKworc3RhdGljIHZvaWQgcGVyX3BsbF9jb25maWcodm9pZCkK K3sKKwl1MzIgY2xrbW9kZSwgY2xrc2VsLCBkaXZfbTI7CisKKwljbGttb2RlID0gX19yYXdfcmVh ZGwoQ01fQ0xLTU9ERV9EUExMX1BFUik7CisJY2xrc2VsID0gX19yYXdfcmVhZGwoQ01fQ0xLU0VM X0RQTExfUEVSKTsKKwlkaXZfbTIgPSBfX3Jhd19yZWFkbChDTV9ESVZfTTJfRFBMTF9QRVIpOwor CisJLyogU2V0IHRoZSBQTEwgdG8gYnlwYXNzIE1vZGUgKi8KKwlfX3Jhd193cml0ZWwoUExMX0JZ UEFTU19NT0RFLCBDTV9DTEtNT0RFX0RQTExfUEVSKTsKKworCXdoaWxlKF9fcmF3X3JlYWRsKENN X0lETEVTVF9EUExMX1BFUikgIT0gMHgwMDAwMDEwMCk7CisKKwljbGtzZWwgPSBjbGtzZWwgJiAo fjB4N2ZmZmYpOworCWNsa3NlbCA9IGNsa3NlbCB8ICgoUEVSUExMX00gPDwgMHg4KSB8IFBFUlBM TF9OKTsKKwlfX3Jhd193cml0ZWwoY2xrc2VsLCBDTV9DTEtTRUxfRFBMTF9QRVIpOworCisJZGl2 X20yID0gZGl2X20yICYgfjB4N2Y7CisJZGl2X20yID0gZGl2X20yIHwgUEVSUExMX00yOworCV9f cmF3X3dyaXRlbChkaXZfbTIsIENNX0RJVl9NMl9EUExMX1BFUik7CisKKwljbGttb2RlID0gY2xr bW9kZSB8IDB4NzsKKwlfX3Jhd193cml0ZWwoY2xrbW9kZSwgQ01fQ0xLTU9ERV9EUExMX1BFUik7 CisKKwl3aGlsZShfX3Jhd19yZWFkbChDTV9JRExFU1RfRFBMTF9QRVIpICE9IDB4MSk7Cit9CisK K3N0YXRpYyB2b2lkIGRkcl9wbGxfY29uZmlnKHZvaWQpCit7CisJdTMyIGNsa21vZGUsIGNsa3Nl bCwgZGl2X20yOworCisJY2xrbW9kZSA9IF9fcmF3X3JlYWRsKENNX0NMS01PREVfRFBMTF9ERFIp OworCWNsa3NlbCA9IF9fcmF3X3JlYWRsKENNX0NMS1NFTF9EUExMX0REUik7CisJZGl2X20yID0g X19yYXdfcmVhZGwoQ01fRElWX00yX0RQTExfRERSKTsKKworCS8qIFNldCB0aGUgUExMIHRvIGJ5 cGFzcyBNb2RlICovCisJY2xrbW9kZSA9IChjbGttb2RlICYgMHhmZmZmZmZmOCkgfCAweDAwMDAw MDA0OworCV9fcmF3X3dyaXRlbChjbGttb2RlLCBDTV9DTEtNT0RFX0RQTExfRERSKTsKKworCXdo aWxlICgoX19yYXdfcmVhZGwoQ01fSURMRVNUX0RQTExfRERSKSAmIDB4MDAwMDAxMDApICE9IDB4 MDAwMDAxMDApOworCisJY2xrc2VsID0gY2xrc2VsICYgKH4weDdmZmZmKTsKKwljbGtzZWwgPSBj bGtzZWwgfCAoKEREUlBMTF9NIDw8IDB4OCkgfCBERFJQTExfTik7CisJX19yYXdfd3JpdGVsKGNs a3NlbCwgQ01fQ0xLU0VMX0RQTExfRERSKTsKKworCWRpdl9tMiA9IGRpdl9tMiAmIDB4RkZGRkZG RTA7CisJZGl2X20yID0gZGl2X20yIHwgRERSUExMX00yOworCV9fcmF3X3dyaXRlbChkaXZfbTIs IENNX0RJVl9NMl9EUExMX0REUik7CisKKwljbGttb2RlID0gKGNsa21vZGUgJiAweGZmZmZmZmY4 KSB8IDB4NzsKKwlfX3Jhd193cml0ZWwoY2xrbW9kZSwgQ01fQ0xLTU9ERV9EUExMX0REUik7CisK Kwl3aGlsZSAoKF9fcmF3X3JlYWRsKENNX0lETEVTVF9EUExMX0REUikgJiAweDAwMDAwMDAxKSAh PSAweDEpOworfQorCit2b2lkIGVuYWJsZV9kZHJfY2xvY2tzKHZvaWQpCit7CisJLyogRW5hYmxl IHRoZSAgRU1JRl9GVyBGdW5jdGlvbmFsIGNsb2NrICovCisJX19yYXdfd3JpdGVsKFBSQ01fTU9E X0VOLCBDTV9QRVJfRU1JRl9GV19DTEtDVFJMKTsKKwkvKiBFbmFibGUgRU1JRjAgQ2xvY2sgKi8K KwlfX3Jhd193cml0ZWwoUFJDTV9NT0RfRU4sIENNX1BFUl9FTUlGX0NMS0NUUkwpOworCS8qIFBv bGwgZm9yIGVtaWZfZ2NsayAgJiBMM19HIGNsb2NrICBhcmUgYWN0aXZlICovCisJd2hpbGUgKChf X3Jhd19yZWFkbChDTV9QRVJfTDNfQ0xLU1RDVFJMKSAmIChQUkNNX0VNSUZfQ0xLX0FDVElWSVRZ IHwKKwkJUFJDTV9MM19HQ0xLX0FDVElWSVRZKSkgIT0gKFBSQ01fRU1JRl9DTEtfQUNUSVZJVFkg fAorCQlQUkNNX0wzX0dDTEtfQUNUSVZJVFkpKTsKKwkvKiBQb2xsIGlmIG1vZHVsZSBpcyBmdW5j dGlvbmFsICovCisJd2hpbGUgKChfX3Jhd19yZWFkbChDTV9QRVJfRU1JRl9DTEtDVFJMKSkgIT0g UFJDTV9NT0RfRU4pOworCit9CisKKy8qCisgKiBDb25maWd1cmUgdGhlIFBMTC9QUkNNIGZvciBu ZWNlc3NhcnkgcGVyaXBoZXJhbHMKKyAqLwordm9pZCBwbGxfaW5pdCgpCit7CisJbXB1X3BsbF9j b25maWcoTVBVUExMX01fNTAwKTsKKwljb3JlX3BsbF9jb25maWcoKTsKKwlwZXJfcGxsX2NvbmZp ZygpOworCWRkcl9wbGxfY29uZmlnKCk7CisJLyogRW5hYmxlIHRoZSByZXF1aXJlZCBpbnRlcmNv bm5lY3QgY2xvY2tzICovCisJaW50ZXJmYWNlX2Nsb2Nrc19lbmFibGUoKTsKKwkvKiBFbmFibGUg cG93ZXIgZG9tYWluIHRyYW5zaXRpb24gKi8KKwlwb3dlcl9kb21haW5fdHJhbnNpdGlvbl9lbmFi bGUoKTsKKwkvKiBFbmFibGUgdGhlIHJlcXVpcmVkIHBlcmlwaGVyYWxzICovCisJcGVyX2Nsb2Nr c19lbmFibGUoKTsKK30KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcC9hbTMzeHhfZ2Vu ZXJpYy5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwL2FtMzN4eF9nZW5lcmljLmMKaW5kZXggZjczZjk0 Ni4uZTgyOTNmNyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwL2FtMzN4eF9nZW5lcmlj LmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwL2FtMzN4eF9nZW5lcmljLmMKQEAgLTEsNSArMSw2 IEBACiAvKgogICogKEMpIENvcHlyaWdodCAyMDEyIFRlcmVzYSBHw6FtZXosIFBoeXRlYyBNZXNz dGVjaG5payBHbWJICisgKiAoQykgQ29weXJpZ2h0IDIwMTIgSmFuIEx1ZWJiZSA8ai5sdWViYmVA cGVuZ3V0cm9uaXguZGU+CiAgKgogICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKQEAgLTIwLDYgKzIxLDggQEAK ICNpbmNsdWRlIDxpby5oPgogI2luY2x1ZGUgPG1hY2gvYW0zM3h4LXNpbGljb24uaD4KICNpbmNs dWRlIDxtYWNoL2FtMzN4eC1jbG9jay5oPgorI2luY2x1ZGUgPG1hY2gvc3lzX2luZm8uaD4KKyNp bmNsdWRlIDxtYWNoL3hsb2FkLmg+CiAKIHZvaWQgX19ub3JldHVybiByZXNldF9jcHUodW5zaWdu ZWQgbG9uZyBhZGRyKQogewpAQCAtMjcsMyArMzAsNjggQEAgdm9pZCBfX25vcmV0dXJuIHJlc2V0 X2NwdSh1bnNpZ25lZCBsb25nIGFkZHIpCiAKIAl3aGlsZSAoMSk7CiB9CisKKy8qKgorICogQGJy aWVmIEdldCB0aGUgdXBwZXIgYWRkcmVzcyBvZiBjdXJyZW50IGV4ZWN1dGlvbgorICoKKyAqIHdl IGNhbiB1c2UgdGhpcyB0byBmaWd1cmUgb3V0IGlmIHdlIGFyZSBydW5uaW5nIGluIFNSQU0gLwor ICogWElQIEZsYXNoIG9yIGluIFNEUkFNCisgKgorICogQHJldHVybiBiYXNlIGFkZHJlc3MKKyAq LwordTMyIGdldF9iYXNlKHZvaWQpCit7CisJdTMyIHZhbDsKKwlfX2FzbV9fIF9fdm9sYXRpbGVf XygibW92ICUwLCBwYyBcbiI6Ij1yIih2YWwpOjoibWVtb3J5Iik7CisJdmFsICY9IDB4RjAwMDAw MDA7CisJdmFsID4+PSAyODsKKwlyZXR1cm4gdmFsOworfQorCisvKioKKyAqIEBicmllZiBBcmUg d2UgcnVubmluZyBpbiBGbGFzaCBYSVA/CisgKgorICogSWYgdGhlIGJhc2UgaXMgaW4gR1BNQyBh ZGRyZXNzIHNwYWNlLCB3ZSBwcm9iYWJseSBhcmUhCisgKgorICogQHJldHVybiAxIGlmIHdlIGFy ZSBydW5uaW5nIGluIFhJUCBtb2RlLCBlbHNlIHJldHVybiAwCisgKi8KK3UzMiBydW5uaW5nX2lu X2ZsYXNoKHZvaWQpCit7CisJaWYgKGdldF9iYXNlKCkgPCA0KQorCQlyZXR1cm4gMTsJLyogaW4g Zmxhc2ggKi8KKwlyZXR1cm4gMDsJCS8qIHJ1bm5pbmcgaW4gU1JBTSBvciBTRFJBTSAqLworfQor CisvKioKKyAqIEBicmllZiBBcmUgd2UgcnVubmluZyBpbiBPTUFQIGludGVybmFsIFNSQU0/Cisg KgorICogSWYgaW4gU1JBTSBhZGRyZXNzLCB0aGVuIHllcyEKKyAqCisgKiBAcmV0dXJuICAxIGlm IHdlIGFyZSBydW5uaW5nIGluIFNSQU0sIGVsc2UgcmV0dXJuIDAKKyAqLwordTMyIHJ1bm5pbmdf aW5fc3JhbSh2b2lkKQoreworCWlmIChnZXRfYmFzZSgpID09IDQpCisJCXJldHVybiAxOwkvKiBp biBTUkFNICovCisJcmV0dXJuIDA7CQkvKiBydW5uaW5nIGluIEZMQVNIIG9yIFNEUkFNICovCit9 CisKKy8qKgorICogQGJyaWVmIEFyZSB3ZSBydW5uaW5nIGluIFNEUkFNPworICoKKyAqIGlmIHdl IGFyZSBub3QgaW4gR1BNQyBub3IgaW4gU1JBTSBhZGRyZXNzIHNwYWNlLAorICogd2UgYXJlIGlu IFNEUkFNIGV4ZWN1dGlvbiBhcmVhCisgKgorICogQHJldHVybiAxIGlmIHdlIGFyZSBydW5uaW5n IGZyb20gU0RSQU0sIGVsc2UgcmV0dXJuIDAKKyAqLwordTMyIHJ1bm5pbmdfaW5fc2RyYW0odm9p ZCkKK3sKKwlpZiAoZ2V0X2Jhc2UoKSA+IDQpCisJCXJldHVybiAxOwkvKiBpbiBzZHJhbSAqLwor CXJldHVybiAwOwkJLyogcnVubmluZyBpbiBTUkFNIG9yIEZMQVNIICovCit9CisKK2VudW0gb21h cF9ib290X3NyYyBhbTMzeHhfYm9vdHNyYyh2b2lkKQoreworCXJldHVybiBPTUFQX0JPT1RTUkNf TU1DMTsgLyogb25seSBNTUMgZm9yIG5vdyAqLworfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFj aC1vbWFwL2FtMzN4eF9tdXguYyBiL2FyY2gvYXJtL21hY2gtb21hcC9hbTMzeHhfbXV4LmMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjJiZjMxNwotLS0gL2Rldi9udWxsCisr KyBiL2FyY2gvYXJtL21hY2gtb21hcC9hbTMzeHhfbXV4LmMKQEAgLTAsMCArMSw1MDYgQEAKKy8q CisgKiBtdXguYworICoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBUZXhhcyBJbnN0cnVtZW50cyBJ bmNvcnBvcmF0ZWQgLSBodHRwOi8vd3d3LnRpLmNvbS8KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwor ICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gdmVyc2lvbiAyLgor ICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCAiYXMgaXMiIFdJVEhPVVQgQU5ZIFdB UlJBTlRZIG9mIGFueQorICoga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQ7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eQorICogb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICovCisjaW5jbHVkZSA8Y29tbW9uLmg+ CisjaW5jbHVkZSA8Y29uZmlnLmg+CisjaW5jbHVkZSA8YXNtL2lvLmg+CisjaW5jbHVkZSA8bWFj aC9hbTMzeHgtc2lsaWNvbi5oPgorCisjZGVmaW5lIE1VWF9DRkcodmFsdWUsIG9mZnNldCkJXAor CV9fcmF3X3dyaXRlbCh2YWx1ZSwgKEFNMzNYWF9DVFJMX0JBU0UgKyBvZmZzZXQpKTsKKworLyog UEFEIENvbnRyb2wgRmllbGRzICovCisjZGVmaW5lIFNMRVdDVFJMCSgweDEgPDwgNikKKyNkZWZp bmUJUlhBQ1RJVkUJKDB4MSA8PCA1KQorI2RlZmluZQlQVUxMVVBfRU4JKDB4MSA8PCA0KSAvKiBQ dWxsIFVQIFNlbGVjdGlvbiAqLworI2RlZmluZSBQVUxMVURFTgkoMHgwIDw8IDMpIC8qIFB1bGwg dXAgZW5hYmxlZCAqLworI2RlZmluZSBQVUxMVURESVMJKDB4MSA8PCAzKSAvKiBQdWxsIHVwIGRp c2FibGVkICovCisjZGVmaW5lIE1PREUodmFsKQl2YWwKKworLyoKKyAqIFBBRCBDT05UUk9MIE9G RlNFVFMKKyAqIEZpZWxkIG5hbWVzIGNvcnJlc3BvbmRzIHRvIHRoZSBwYWQgc2lnbmFsIG5hbWUK KyAqLworLyogVE9ETyByZXBsYWNlIHdpdGggZGVmaW5lcyAqLworc3RydWN0IHBhZF9zaWduYWxz IHsKKwlpbnQgZ3BtY19hZDA7CisJaW50IGdwbWNfYWQxOworCWludCBncG1jX2FkMjsKKwlpbnQg Z3BtY19hZDM7CisJaW50IGdwbWNfYWQ0OworCWludCBncG1jX2FkNTsKKwlpbnQgZ3BtY19hZDY7 CisJaW50IGdwbWNfYWQ3OworCWludCBncG1jX2FkODsKKwlpbnQgZ3BtY19hZDk7CisJaW50IGdw bWNfYWQxMDsKKwlpbnQgZ3BtY19hZDExOworCWludCBncG1jX2FkMTI7CisJaW50IGdwbWNfYWQx MzsKKwlpbnQgZ3BtY19hZDE0OworCWludCBncG1jX2FkMTU7CisJaW50IGdwbWNfYTA7CisJaW50 IGdwbWNfYTE7CisJaW50IGdwbWNfYTI7CisJaW50IGdwbWNfYTM7CisJaW50IGdwbWNfYTQ7CisJ aW50IGdwbWNfYTU7CisJaW50IGdwbWNfYTY7CisJaW50IGdwbWNfYTc7CisJaW50IGdwbWNfYTg7 CisJaW50IGdwbWNfYTk7CisJaW50IGdwbWNfYTEwOworCWludCBncG1jX2ExMTsKKwlpbnQgZ3Bt Y193YWl0MDsKKwlpbnQgZ3BtY193cG47CisJaW50IGdwbWNfYmUxbjsKKwlpbnQgZ3BtY19jc24w OworCWludCBncG1jX2NzbjE7CisJaW50IGdwbWNfY3NuMjsKKwlpbnQgZ3BtY19jc24zOworCWlu dCBncG1jX2NsazsKKwlpbnQgZ3BtY19hZHZuX2FsZTsKKwlpbnQgZ3BtY19vZW5fcmVuOworCWlu dCBncG1jX3dlbjsKKwlpbnQgZ3BtY19iZTBuX2NsZTsKKwlpbnQgbGNkX2RhdGEwOworCWludCBs Y2RfZGF0YTE7CisJaW50IGxjZF9kYXRhMjsKKwlpbnQgbGNkX2RhdGEzOworCWludCBsY2RfZGF0 YTQ7CisJaW50IGxjZF9kYXRhNTsKKwlpbnQgbGNkX2RhdGE2OworCWludCBsY2RfZGF0YTc7CisJ aW50IGxjZF9kYXRhODsKKwlpbnQgbGNkX2RhdGE5OworCWludCBsY2RfZGF0YTEwOworCWludCBs Y2RfZGF0YTExOworCWludCBsY2RfZGF0YTEyOworCWludCBsY2RfZGF0YTEzOworCWludCBsY2Rf ZGF0YTE0OworCWludCBsY2RfZGF0YTE1OworCWludCBsY2RfdnN5bmM7CisJaW50IGxjZF9oc3lu YzsKKwlpbnQgbGNkX3BjbGs7CisJaW50IGxjZF9hY19iaWFzX2VuOworCWludCBtbWMwX2RhdDM7 CisJaW50IG1tYzBfZGF0MjsKKwlpbnQgbW1jMF9kYXQxOworCWludCBtbWMwX2RhdDA7CisJaW50 IG1tYzBfY2xrOworCWludCBtbWMwX2NtZDsKKwlpbnQgbWlpMV9jb2w7CisJaW50IG1paTFfY3Jz OworCWludCBtaWkxX3J4ZXJyOworCWludCBtaWkxX3R4ZW47CisJaW50IG1paTFfcnhkdjsKKwlp bnQgbWlpMV90eGQzOworCWludCBtaWkxX3R4ZDI7CisJaW50IG1paTFfdHhkMTsKKwlpbnQgbWlp MV90eGQwOworCWludCBtaWkxX3R4Y2xrOworCWludCBtaWkxX3J4Y2xrOworCWludCBtaWkxX3J4 ZDM7CisJaW50IG1paTFfcnhkMjsKKwlpbnQgbWlpMV9yeGQxOworCWludCBtaWkxX3J4ZDA7CisJ aW50IHJtaWkxX3JlZmNsazsKKwlpbnQgbWRpb19kYXRhOworCWludCBtZGlvX2NsazsKKwlpbnQg c3BpMF9zY2xrOworCWludCBzcGkwX2QwOworCWludCBzcGkwX2QxOworCWludCBzcGkwX2NzMDsK KwlpbnQgc3BpMF9jczE7CisJaW50IGVjYXAwX2luX3B3bTBfb3V0OworCWludCB1YXJ0MF9jdHNu OworCWludCB1YXJ0MF9ydHNuOworCWludCB1YXJ0MF9yeGQ7CisJaW50IHVhcnQwX3R4ZDsKKwlp bnQgdWFydDFfY3RzbjsKKwlpbnQgdWFydDFfcnRzbjsKKwlpbnQgdWFydDFfcnhkOworCWludCB1 YXJ0MV90eGQ7CisJaW50IGkyYzBfc2RhOworCWludCBpMmMwX3NjbDsKKwlpbnQgbWNhc3AwX2Fj bGt4OworCWludCBtY2FzcDBfZnN4OworCWludCBtY2FzcDBfYXhyMDsKKwlpbnQgbWNhc3AwX2Fo Y2xrcjsKKwlpbnQgbWNhc3AwX2FjbGtyOworCWludCBtY2FzcDBfZnNyOworCWludCBtY2FzcDBf YXhyMTsKKwlpbnQgbWNhc3AwX2FoY2xreDsKKwlpbnQgeGRtYV9ldmVudF9pbnRyMDsKKwlpbnQg eGRtYV9ldmVudF9pbnRyMTsKKwlpbnQgbnJlc2V0aW5fb3V0OworCWludCBwb3J6OworCWludCBu bm1pOworCWludCBvc2MwX2luOworCWludCBvc2MwX291dDsKKwlpbnQgcnN2ZDE7CisJaW50IHRt czsKKwlpbnQgdGRpOworCWludCB0ZG87CisJaW50IHRjazsKKwlpbnQgbnRyc3Q7CisJaW50IGVt dTA7CisJaW50IGVtdTE7CisJaW50IG9zYzFfaW47CisJaW50IG9zYzFfb3V0OworCWludCBwbWlj X3Bvd2VyX2VuOworCWludCBydGNfcG9yejsKKwlpbnQgcnN2ZDI7CisJaW50IGV4dF93YWtldXA7 CisJaW50IGVuel9rYWxkb18xcDh2OworCWludCB1c2IwX2RtOworCWludCB1c2IwX2RwOworCWlu dCB1c2IwX2NlOworCWludCB1c2IwX2lkOworCWludCB1c2IwX3ZidXM7CisJaW50IHVzYjBfZHJ2 dmJ1czsKKwlpbnQgdXNiMV9kbTsKKwlpbnQgdXNiMV9kcDsKKwlpbnQgdXNiMV9jZTsKKwlpbnQg dXNiMV9pZDsKKwlpbnQgdXNiMV92YnVzOworCWludCB1c2IxX2RydnZidXM7CisJaW50IGRkcl9y ZXNldG47CisJaW50IGRkcl9jc24wOworCWludCBkZHJfY2tlOworCWludCBkZHJfY2s7CisJaW50 IGRkcl9uY2s7CisJaW50IGRkcl9jYXNuOworCWludCBkZHJfcmFzbjsKKwlpbnQgZGRyX3dlbjsK KwlpbnQgZGRyX2JhMDsKKwlpbnQgZGRyX2JhMTsKKwlpbnQgZGRyX2JhMjsKKwlpbnQgZGRyX2Ew OworCWludCBkZHJfYTE7CisJaW50IGRkcl9hMjsKKwlpbnQgZGRyX2EzOworCWludCBkZHJfYTQ7 CisJaW50IGRkcl9hNTsKKwlpbnQgZGRyX2E2OworCWludCBkZHJfYTc7CisJaW50IGRkcl9hODsK KwlpbnQgZGRyX2E5OworCWludCBkZHJfYTEwOworCWludCBkZHJfYTExOworCWludCBkZHJfYTEy OworCWludCBkZHJfYTEzOworCWludCBkZHJfYTE0OworCWludCBkZHJfYTE1OworCWludCBkZHJf b2R0OworCWludCBkZHJfZDA7CisJaW50IGRkcl9kMTsKKwlpbnQgZGRyX2QyOworCWludCBkZHJf ZDM7CisJaW50IGRkcl9kNDsKKwlpbnQgZGRyX2Q1OworCWludCBkZHJfZDY7CisJaW50IGRkcl9k NzsKKwlpbnQgZGRyX2Q4OworCWludCBkZHJfZDk7CisJaW50IGRkcl9kMTA7CisJaW50IGRkcl9k MTE7CisJaW50IGRkcl9kMTI7CisJaW50IGRkcl9kMTM7CisJaW50IGRkcl9kMTQ7CisJaW50IGRk cl9kMTU7CisJaW50IGRkcl9kcW0wOworCWludCBkZHJfZHFtMTsKKwlpbnQgZGRyX2RxczA7CisJ aW50IGRkcl9kcXNuMDsKKwlpbnQgZGRyX2RxczE7CisJaW50IGRkcl9kcXNuMTsKKwlpbnQgZGRy X3ZyZWY7CisJaW50IGRkcl92dHA7CisJaW50IGRkcl9zdHJiZW4wOworCWludCBkZHJfc3RyYmVu MTsKKwlpbnQgYWluNzsKKwlpbnQgYWluNjsKKwlpbnQgYWluNTsKKwlpbnQgYWluNDsKKwlpbnQg YWluMzsKKwlpbnQgYWluMjsKKwlpbnQgYWluMTsKKwlpbnQgYWluMDsKKwlpbnQgdnJlZnA7CisJ aW50IHZyZWZuOworfTsKKworc3RydWN0IG1vZHVsZV9waW5fbXV4IHsKKwlzaG9ydCByZWdfb2Zm c2V0OworCXVuc2lnbmVkIGNoYXIgdmFsOworfTsKKworI2RlZmluZSBQQURfQ1RSTF9CQVNFCTB4 ODAwCisjZGVmaW5lIE9GRlNFVCh4KQkodW5zaWduZWQgaW50KSAoJigoc3RydWN0IHBhZF9zaWdu YWxzICopIFwKKwkJCQkoUEFEX0NUUkxfQkFTRSkpLT54KQorCitzdGF0aWMgY29uc3QgX19tYXli ZV91bnVzZWQgc3RydWN0IG1vZHVsZV9waW5fbXV4IHVhcnQwX3Bpbl9tdXhbXSA9IHsKKwl7T0ZG U0VUKHVhcnQwX3J4ZCksIChNT0RFKDApIHwgUFVMTFVQX0VOIHwgUlhBQ1RJVkUpfSwJLyogVUFS VDBfUlhEICovCisJe09GRlNFVCh1YXJ0MF90eGQpLCAoTU9ERSgwKSB8IFBVTExVREVOKX0sCQkv KiBVQVJUMF9UWEQgKi8KKwl7LTF9LAorfTsKKworc3RhdGljIGNvbnN0IF9fbWF5YmVfdW51c2Vk IHN0cnVjdCBtb2R1bGVfcGluX211eCB1YXJ0M19waW5fbXV4W10gPSB7CisJe09GRlNFVChzcGkw X2NzMSksIChNT0RFKDEpIHwgUFVMTFVERU4gfCBSWEFDVElWRSl9LAkvKiBVQVJUM19SWEQgKi8K Kwl7T0ZGU0VUKGVjYXAwX2luX3B3bTBfb3V0KSwgKE1PREUoMSkgfCBQVUxMVURFTil9LAkvKiBV QVJUM19UWEQgKi8KKwl7LTF9LAorfTsKKworCisjaWZkZWYgQ09ORklHX05BTkQKK3N0YXRpYyBj b25zdCBfX21heWJlX3VudXNlZCBzdHJ1Y3QgbW9kdWxlX3Bpbl9tdXggbmFuZF9waW5fbXV4W10g PSB7CisJe09GRlNFVChncG1jX2FkMCksIChNT0RFKDApIHwgUFVMTFVQX0VOIHwgUlhBQ1RJVkUp fSwJLyogTkFORCBBRDAgKi8KKwl7T0ZGU0VUKGdwbWNfYWQxKSwgKE1PREUoMCkgfCBQVUxMVVBf RU4gfCBSWEFDVElWRSl9LAkvKiBOQU5EIEFEMSAqLworCXtPRkZTRVQoZ3BtY19hZDIpLCAoTU9E RSgwKSB8IFBVTExVUF9FTiB8IFJYQUNUSVZFKX0sCS8qIE5BTkQgQUQyICovCisJe09GRlNFVChn cG1jX2FkMyksIChNT0RFKDApIHwgUFVMTFVQX0VOIHwgUlhBQ1RJVkUpfSwJLyogTkFORCBBRDMg Ki8KKwl7T0ZGU0VUKGdwbWNfYWQ0KSwgKE1PREUoMCkgfCBQVUxMVVBfRU4gfCBSWEFDVElWRSl9 LAkvKiBOQU5EIEFENCAqLworCXtPRkZTRVQoZ3BtY19hZDUpLCAoTU9ERSgwKSB8IFBVTExVUF9F TiB8IFJYQUNUSVZFKX0sCS8qIE5BTkQgQUQ1ICovCisJe09GRlNFVChncG1jX2FkNiksIChNT0RF KDApIHwgUFVMTFVQX0VOIHwgUlhBQ1RJVkUpfSwJLyogTkFORCBBRDYgKi8KKwl7T0ZGU0VUKGdw bWNfYWQ3KSwgKE1PREUoMCkgfCBQVUxMVVBfRU4gfCBSWEFDVElWRSl9LAkvKiBOQU5EIEFENyAq LworCXtPRkZTRVQoZ3BtY193YWl0MCksIChNT0RFKDApIHwgUlhBQ1RJVkUgfCBQVUxMVVBfRU4p fSwgLyogTkFORCBXQUlUICovCisJe09GRlNFVChncG1jX3dwbiksIChNT0RFKDcpIHwgUFVMTFVQ X0VOIHwgUlhBQ1RJVkUpfSwJLyogTkFORF9XUE4gKi8KKwl7T0ZGU0VUKGdwbWNfY3NuMCksIChN T0RFKDApIHwgUFVMTFVERU4pfSwJLyogTkFORF9DUzAgKi8KKwl7T0ZGU0VUKGdwbWNfYWR2bl9h bGUpLCAoTU9ERSgwKSB8IFBVTExVREVOKX0sIC8qIE5BTkRfQURWX0FMRSAqLworCXtPRkZTRVQo Z3BtY19vZW5fcmVuKSwgKE1PREUoMCkgfCBQVUxMVURFTil9LAkvKiBOQU5EX09FICovCisJe09G RlNFVChncG1jX3dlbiksIChNT0RFKDApIHwgUFVMTFVERU4pfSwJLyogTkFORF9XRU4gKi8KKwl7 T0ZGU0VUKGdwbWNfYmUwbl9jbGUpLCAoTU9ERSgwKSB8IFBVTExVREVOKX0sCS8qIE5BTkRfQkVf Q0xFICovCisJey0xfSwKK307CisjZW5kaWYKKworc3RhdGljIGNvbnN0IF9fbWF5YmVfdW51c2Vk IHN0cnVjdCBtb2R1bGVfcGluX211eCBpMmMwX3Bpbl9tdXhbXSA9IHsKKwl7T0ZGU0VUKGkyYzBf c2RhKSwgKE1PREUoMCkgfCBSWEFDVElWRSB8IFBVTExVREVOIHwgU0xFV0NUUkwpfSwJLyogSTJD X0RBVEEgKi8KKwl7T0ZGU0VUKGkyYzBfc2NsKSwgKE1PREUoMCkgfCBSWEFDVElWRSB8IFBVTExV REVOIHwgU0xFV0NUUkwpfSwJLyogSTJDX1NDTEsgKi8KKwl7LTF9LAorfTsKKworc3RhdGljIGNv bnN0IF9fbWF5YmVfdW51c2VkIHN0cnVjdCBtb2R1bGVfcGluX211eCBpMmMxX3Bpbl9tdXhbXSA9 IHsKKwl7T0ZGU0VUKHNwaTBfZDEpLCAoTU9ERSgyKSB8IFJYQUNUSVZFIHwgUFVMTFVERU4gfCBT TEVXQ1RSTCl9LAkvKiBJMkNfREFUQSAqLworCXtPRkZTRVQoc3BpMF9jczApLCAoTU9ERSgyKSB8 IFJYQUNUSVZFIHwgUFVMTFVERU4gfCBTTEVXQ1RSTCl9LAkvKiBJMkNfU0NMSyAqLworCXstMX0s Cit9OworCitzdGF0aWMgY29uc3QgX19tYXliZV91bnVzZWQgc3RydWN0IG1vZHVsZV9waW5fbXV4 IGkyYzJfcGluX211eFtdID0geworCXtPRkZTRVQodWFydDFfY3RzbiksIChNT0RFKDMpIHwgUlhB Q1RJVkUgfCBQVUxMVURFTiB8IFNMRVdDVFJMKX0sICAvKiBJMkNfREFUQSAqLworCXtPRkZTRVQo dWFydDFfcnRzbiksIChNT0RFKDMpIHwgUlhBQ1RJVkUgfCBQVUxMVURFTiB8IFNMRVdDVFJMKX0s IC8qIEkyQ19TQ0xLICovCisJey0xfSwKK307CisKK3N0YXRpYyBjb25zdCBfX21heWJlX3VudXNl ZCBzdHJ1Y3QgbW9kdWxlX3Bpbl9tdXggcmdtaWkxX3Bpbl9tdXhbXSA9IHsKKwl7T0ZGU0VUKG1p aTFfdHhlbiksIE1PREUoMil9LAkJCS8qIFJHTUlJMV9UQ1RMICovCisJe09GRlNFVChtaWkxX3J4 ZHYpLCBNT0RFKDIpIHwgUlhBQ1RJVkV9LAkvKiBSR01JSTFfUkNUTCAqLworCXtPRkZTRVQobWlp MV90eGQzKSwgTU9ERSgyKX0sCQkJLyogUkdNSUkxX1REMyAqLworCXtPRkZTRVQobWlpMV90eGQy KSwgTU9ERSgyKX0sCQkJLyogUkdNSUkxX1REMiAqLworCXtPRkZTRVQobWlpMV90eGQxKSwgTU9E RSgyKX0sCQkJLyogUkdNSUkxX1REMSAqLworCXtPRkZTRVQobWlpMV90eGQwKSwgTU9ERSgyKX0s CQkJLyogUkdNSUkxX1REMCAqLworCXtPRkZTRVQobWlpMV90eGNsayksIE1PREUoMil9LAkJCS8q IFJHTUlJMV9UQ0xLICovCisJe09GRlNFVChtaWkxX3J4Y2xrKSwgTU9ERSgyKSB8IFJYQUNUSVZF fSwJLyogUkdNSUkxX1JDTEsgKi8KKwl7T0ZGU0VUKG1paTFfcnhkMyksIE1PREUoMikgfCBSWEFD VElWRX0sCS8qIFJHTUlJMV9SRDMgKi8KKwl7T0ZGU0VUKG1paTFfcnhkMiksIE1PREUoMikgfCBS WEFDVElWRX0sCS8qIFJHTUlJMV9SRDIgKi8KKwl7T0ZGU0VUKG1paTFfcnhkMSksIE1PREUoMikg fCBSWEFDVElWRX0sCS8qIFJHTUlJMV9SRDEgKi8KKwl7T0ZGU0VUKG1paTFfcnhkMCksIE1PREUo MikgfCBSWEFDVElWRX0sCS8qIFJHTUlJMV9SRDAgKi8KKwl7T0ZGU0VUKG1kaW9fZGF0YSksIE1P REUoMCkgfCBSWEFDVElWRSB8IFBVTExVUF9FTn0sIC8qIE1ESU9fREFUQSAqLworCXtPRkZTRVQo bWRpb19jbGspLCBNT0RFKDApIHwgUFVMTFVQX0VOfSwJLyogTURJT19DTEsgKi8KKwl7LTF9LAor fTsKKworc3RhdGljIGNvbnN0IF9fbWF5YmVfdW51c2VkIHN0cnVjdCBtb2R1bGVfcGluX211eCBy Z21paTJfcGluX211eFtdID0geworCXtPRkZTRVQoZ3BtY19hMCksIE1PREUoMil9LAkJCS8qIFJH TUlJMl9UQ1RMICovCisJe09GRlNFVChncG1jX2ExKSwgTU9ERSgyKSB8IFJYQUNUSVZFfSwJCS8q IFJHTUlJMl9SQ1RMICovCisJe09GRlNFVChncG1jX2EyKSwgTU9ERSgyKX0sCQkJLyogUkdNSUky X1REMyAqLworCXtPRkZTRVQoZ3BtY19hMyksIE1PREUoMil9LAkJCS8qIFJHTUlJMl9URDIgKi8K Kwl7T0ZGU0VUKGdwbWNfYTQpLCBNT0RFKDIpfSwJCQkvKiBSR01JSTJfVEQxICovCisJe09GRlNF VChncG1jX2E1KSwgTU9ERSgyKX0sCQkJLyogUkdNSUkyX1REMCAqLworCXtPRkZTRVQoZ3BtY19h NiksIE1PREUoMil9LAkJCS8qIFJHTUlJMl9UQ0xLICovCisJe09GRlNFVChncG1jX2E3KSwgTU9E RSgyKSB8IFJYQUNUSVZFfSwJCS8qIFJHTUlJMl9SQ0xLICovCisJe09GRlNFVChncG1jX2E4KSwg TU9ERSgyKSB8IFJYQUNUSVZFfSwJCS8qIFJHTUlJMl9SRDMgKi8KKwl7T0ZGU0VUKGdwbWNfYTkp LCBNT0RFKDIpIHwgUlhBQ1RJVkV9LAkJLyogUkdNSUkyX1JEMiAqLworCXtPRkZTRVQoZ3BtY19h MTApLCBNT0RFKDIpIHwgUlhBQ1RJVkV9LAkJLyogUkdNSUkyX1JEMSAqLworCXtPRkZTRVQoZ3Bt Y19hMTEpLCBNT0RFKDIpIHwgUlhBQ1RJVkV9LAkJLyogUkdNSUkyX1JEMCAqLworCXtPRkZTRVQo bWRpb19kYXRhKSwgTU9ERSgwKSB8IFJYQUNUSVZFIHwgUFVMTFVQX0VOfSwgLyogTURJT19EQVRB ICovCisJe09GRlNFVChtZGlvX2NsayksIE1PREUoMCkgfCBQVUxMVVBfRU59LAkvKiBNRElPX0NM SyAqLworCXstMX0sCit9OworCitzdGF0aWMgY29uc3QgX19tYXliZV91bnVzZWQgc3RydWN0IG1v ZHVsZV9waW5fbXV4IG1paTFfcGluX211eFtdID0geworCXtPRkZTRVQobWlpMV9yeGVyciksIE1P REUoMCkgfCBSWEFDVElWRX0sCS8qIE1JSTFfUlhFUlIgKi8KKwl7T0ZGU0VUKG1paTFfdHhlbiks IE1PREUoMCl9LAkJCS8qIE1JSTFfVFhFTiAqLworCXtPRkZTRVQobWlpMV9yeGR2KSwgTU9ERSgw KSB8IFJYQUNUSVZFfSwJLyogTUlJMV9SWERWICovCisJe09GRlNFVChtaWkxX3R4ZDMpLCBNT0RF KDApfSwJCQkvKiBNSUkxX1RYRDMgKi8KKwl7T0ZGU0VUKG1paTFfdHhkMiksIE1PREUoMCl9LAkJ CS8qIE1JSTFfVFhEMiAqLworCXtPRkZTRVQobWlpMV90eGQxKSwgTU9ERSgwKX0sCQkJLyogTUlJ MV9UWEQxICovCisJe09GRlNFVChtaWkxX3R4ZDApLCBNT0RFKDApfSwJCQkvKiBNSUkxX1RYRDAg Ki8KKwl7T0ZGU0VUKG1paTFfdHhjbGspLCBNT0RFKDApIHwgUlhBQ1RJVkV9LAkvKiBNSUkxX1RY Q0xLICovCisJe09GRlNFVChtaWkxX3J4Y2xrKSwgTU9ERSgwKSB8IFJYQUNUSVZFfSwJLyogTUlJ MV9SWENMSyAqLworCXtPRkZTRVQobWlpMV9yeGQzKSwgTU9ERSgwKSB8IFJYQUNUSVZFfSwJLyog TUlJMV9SWEQzICovCisJe09GRlNFVChtaWkxX3J4ZDIpLCBNT0RFKDApIHwgUlhBQ1RJVkV9LAkv KiBNSUkxX1JYRDIgKi8KKwl7T0ZGU0VUKG1paTFfcnhkMSksIE1PREUoMCkgfCBSWEFDVElWRX0s CS8qIE1JSTFfUlhEMSAqLworCXtPRkZTRVQobWlpMV9yeGQwKSwgTU9ERSgwKSB8IFJYQUNUSVZF fSwJLyogTUlJMV9SWEQwICovCisJe09GRlNFVChtZGlvX2RhdGEpLCBNT0RFKDApIHwgUlhBQ1RJ VkUgfCBQVUxMVVBfRU59LCAvKiBNRElPX0RBVEEgKi8KKwl7T0ZGU0VUKG1kaW9fY2xrKSwgTU9E RSgwKSB8IFBVTExVUF9FTn0sCS8qIE1ESU9fQ0xLICovCisJey0xfSwKK307CisKK3N0YXRpYyBj b25zdCBfX21heWJlX3VudXNlZCBzdHJ1Y3QgbW9kdWxlX3Bpbl9tdXggcm1paTFfcGluX211eFtd ID0geworCXtPRkZTRVQobWlpMV9jcnMpLCBNT0RFKDEpIHwgUlhBQ1RJVkV9LCAgICAgLyogUk1J STFfQ1JTICovCisJe09GRlNFVChtaWkxX3J4ZXJyKSwgTU9ERSgxKSB8IFJYQUNUSVZFfSwgICAv KiBSTUlJMV9SWEVSUiAqLworCXtPRkZTRVQobWlpMV90eGVuKSwgTU9ERSgxKX0sICAgICAgICAg ICAvKiBSTUlJMV9UWEVOICovCisJe09GRlNFVChtaWkxX3R4ZDEpLCBNT0RFKDEpfSwgICAgICAg ICAgIC8qIFJNSUkxX1RYRDEgKi8KKwl7T0ZGU0VUKG1paTFfdHhkMCksIE1PREUoMSl9LCAgICAg ICAgICAgLyogUk1JSTFfVFhEMCAqLworCXtPRkZTRVQobWlpMV9yeGQxKSwgTU9ERSgxKSB8IFJY QUNUSVZFfSwgICAgLyogUk1JSTFfUlhEMSAqLworCXtPRkZTRVQobWlpMV9yeGQwKSwgTU9ERSgx KSB8IFJYQUNUSVZFfSwgICAgLyogUk1JSTFfUlhEMCAqLworCXtPRkZTRVQobWRpb19kYXRhKSwg TU9ERSgwKSB8IFJYQUNUSVZFIHwgUFVMTFVQX0VOfSwgLyogTURJT19EQVRBICovCisJe09GRlNF VChtZGlvX2NsayksIE1PREUoMCkgfCBQVUxMVVBfRU59LCAgICAvKiBNRElPX0NMSyAqLworCXtP RkZTRVQocm1paTFfcmVmY2xrKSwgTU9ERSgwKSB8IFJYQUNUSVZFfSwgLyogUk1JSTFfUkVGQ0xL ICovCisJey0xfSwKK307CisKKyNpZmRlZiBDT05GSUdfTk9SCitzdGF0aWMgY29uc3QgX19tYXli ZV91bnVzZWQgc3RydWN0IG1vZHVsZV9waW5fbXV4IG5vcl9waW5fbXV4W10gPSB7CisJe09GRlNF VChsY2RfZGF0YTApLCBNT0RFKDEpIHwgUFVMTFVERU59LAkvKiBOT1JfQTAgKi8KKwl7T0ZGU0VU KGxjZF9kYXRhMSksIE1PREUoMSkgfCBQVUxMVURFTn0sCS8qIE5PUl9BMSAqLworCXtPRkZTRVQo bGNkX2RhdGEyKSwgTU9ERSgxKSB8IFBVTExVREVOfSwJLyogTk9SX0EyICovCisJe09GRlNFVChs Y2RfZGF0YTMpLCBNT0RFKDEpIHwgUFVMTFVERU59LAkvKiBOT1JfQTMgKi8KKwl7T0ZGU0VUKGxj ZF9kYXRhNCksIE1PREUoMSkgfCBQVUxMVURFTn0sCS8qIE5PUl9BNCAqLworCXtPRkZTRVQobGNk X2RhdGE1KSwgTU9ERSgxKSB8IFBVTExVREVOfSwJLyogTk9SX0E1ICovCisJe09GRlNFVChsY2Rf ZGF0YTYpLCBNT0RFKDEpIHwgUFVMTFVERU59LAkvKiBOT1JfQTYgKi8KKwl7T0ZGU0VUKGxjZF9k YXRhNyksIE1PREUoMSkgfCBQVUxMVURFTn0sCS8qIE5PUl9BNyAqLworCXtPRkZTRVQoZ3BtY19h OCksIE1PREUoMCl9LAkJCS8qIE5PUl9BOCAqLworCXtPRkZTRVQoZ3BtY19hOSksIE1PREUoMCl9 LAkJCS8qIE5PUl9BOSAqLworCXtPRkZTRVQoZ3BtY19hMTApLCBNT0RFKDApfSwJCQkvKiBOT1Jf QTEwICovCisJe09GRlNFVChncG1jX2ExMSksIE1PREUoMCl9LAkJCS8qIE5PUl9BMTEgKi8KKwl7 T0ZGU0VUKGxjZF9kYXRhOCksIE1PREUoMSkgfCBQVUxMVURFTn0sCS8qIE5PUl9BMTIgKi8KKwl7 T0ZGU0VUKGxjZF9kYXRhOSksIE1PREUoMSkgfCBQVUxMVURFTn0sCS8qIE5PUl9BMTMgKi8KKwl7 T0ZGU0VUKGxjZF9kYXRhMTApLCBNT0RFKDEpIHwgUFVMTFVERU59LAkvKiBOT1JfQTE0ICovCisJ e09GRlNFVChsY2RfZGF0YTExKSwgTU9ERSgxKSB8IFBVTExVREVOfSwJLyogTk9SX0ExNSAqLwor CXtPRkZTRVQobGNkX2RhdGExMiksIE1PREUoMSkgfCBQVUxMVURFTn0sCS8qIE5PUl9BMTYgKi8K Kwl7T0ZGU0VUKGxjZF9kYXRhMTMpLCBNT0RFKDEpIHwgUFVMTFVERU59LAkvKiBOT1JfQTE3ICov CisJe09GRlNFVChsY2RfZGF0YTE0KSwgTU9ERSgxKSB8IFBVTExVREVOfSwJLyogTk9SX0ExOCAq LworCXtPRkZTRVQobGNkX2RhdGExNSksIE1PREUoMSkgfCBQVUxMVURFTn0sCS8qIE5PUl9BMTkg Ki8KKwl7T0ZGU0VUKGdwbWNfYTQpLCBNT0RFKDQpfSwJCQkvKiBOT1JfQTIwICovCisJe09GRlNF VChncG1jX2E1KSwgTU9ERSg0KX0sCQkJLyogTk9SX0EyMSAqLworCXtPRkZTRVQoZ3BtY19hNiks IE1PREUoNCl9LAkJCS8qIE5PUl9BMjIgKi8KKwl7T0ZGU0VUKGdwbWNfYWQwKSwgTU9ERSgwKSB8 IFJYQUNUSVZFfSwJCS8qIE5PUl9BRDAgKi8KKwl7T0ZGU0VUKGdwbWNfYWQxKSwgTU9ERSgwKSB8 IFJYQUNUSVZFfSwJCS8qIE5PUl9BRDEgKi8KKwl7T0ZGU0VUKGdwbWNfYWQyKSwgTU9ERSgwKSB8 IFJYQUNUSVZFfSwJCS8qIE5PUl9BRDIgKi8KKwl7T0ZGU0VUKGdwbWNfYWQzKSwgTU9ERSgwKSB8 IFJYQUNUSVZFfSwJCS8qIE5PUl9BRDMgKi8KKwl7T0ZGU0VUKGdwbWNfYWQ0KSwgTU9ERSgwKSB8 IFJYQUNUSVZFfSwJCS8qIE5PUl9BRDQgKi8KKwl7T0ZGU0VUKGdwbWNfYWQ1KSwgTU9ERSgwKSB8 IFJYQUNUSVZFfSwJCS8qIE5PUl9BRDUgKi8KKwl7T0ZGU0VUKGdwbWNfYWQ2KSwgTU9ERSgwKSB8 IFJYQUNUSVZFfSwJCS8qIE5PUl9BRDYgKi8KKwl7T0ZGU0VUKGdwbWNfYWQ3KSwgTU9ERSgwKSB8 IFJYQUNUSVZFfSwJCS8qIE5PUl9BRDcgKi8KKwl7T0ZGU0VUKGdwbWNfYWQ4KSwgTU9ERSgwKSB8 IFJYQUNUSVZFfSwJCS8qIE5PUl9BRDggKi8KKwl7T0ZGU0VUKGdwbWNfYWQ5KSwgTU9ERSgwKSB8 IFJYQUNUSVZFfSwJCS8qIE5PUl9BRDkgKi8KKwl7T0ZGU0VUKGdwbWNfYWQxMCksIE1PREUoMCkg fCBSWEFDVElWRX0sCS8qIE5PUl9BRDEwICovCisJe09GRlNFVChncG1jX2FkMTEpLCBNT0RFKDAp IHwgUlhBQ1RJVkV9LAkvKiBOT1JfQUQxMSAqLworCXtPRkZTRVQoZ3BtY19hZDEyKSwgTU9ERSgw KSB8IFJYQUNUSVZFfSwJLyogTk9SX0FEMTIgKi8KKwl7T0ZGU0VUKGdwbWNfYWQxMyksIE1PREUo MCkgfCBSWEFDVElWRX0sCS8qIE5PUl9BRDEzICovCisJe09GRlNFVChncG1jX2FkMTQpLCBNT0RF KDApIHwgUlhBQ1RJVkV9LAkvKiBOT1JfQUQxNCAqLworCXtPRkZTRVQoZ3BtY19hZDE1KSwgTU9E RSgwKSB8IFJYQUNUSVZFfSwJLyogTk9SX0FEMTUgKi8KKwl7T0ZGU0VUKGdwbWNfY3NuMCksIChN T0RFKDApIHwgUFVMTFVQX0VOKX0sCS8qIE5PUl9DRSAqLworCXtPRkZTRVQoZ3BtY19vZW5fcmVu KSwgKE1PREUoMCkgfCBQVUxMVVBfRU4pfSwJLyogTk9SX09FICovCisJe09GRlNFVChncG1jX3dl biksIChNT0RFKDApIHwgUFVMTFVQX0VOKX0sCS8qIE5PUl9XRU4gKi8KKwl7T0ZGU0VUKGdwbWNf d2FpdDApLCAoTU9ERSgwKSB8IFJYQUNUSVZFIHwgUFVMTFVQX0VOKX0sIC8qIE5PUiBXQUlUICov CisJe09GRlNFVChsY2RfYWNfYmlhc19lbiksIE1PREUoNykgfCBSWEFDVElWRSB8IFBVTExVREVO fSwgLyogTk9SIFJFU0VUICovCisJey0xfSwKK307CisjZW5kaWYKKworc3RhdGljIGNvbnN0IF9f bWF5YmVfdW51c2VkIHN0cnVjdCBtb2R1bGVfcGluX211eCBtbWMwX3Bpbl9tdXhbXSA9IHsKKwl7 T0ZGU0VUKG1tYzBfZGF0MyksIChNT0RFKDApIHwgUlhBQ1RJVkUgfCBQVUxMVVBfRU4pfSwJLyog TU1DMF9EQVQzICovCisJe09GRlNFVChtbWMwX2RhdDIpLCAoTU9ERSgwKSB8IFJYQUNUSVZFIHwg UFVMTFVQX0VOKX0sCS8qIE1NQzBfREFUMiAqLworCXtPRkZTRVQobW1jMF9kYXQxKSwgKE1PREUo MCkgfCBSWEFDVElWRSB8IFBVTExVUF9FTil9LAkvKiBNTUMwX0RBVDEgKi8KKwl7T0ZGU0VUKG1t YzBfZGF0MCksIChNT0RFKDApIHwgUlhBQ1RJVkUgfCBQVUxMVVBfRU4pfSwJLyogTU1DMF9EQVQw ICovCisJe09GRlNFVChtbWMwX2NsayksIChNT0RFKDApIHwgUlhBQ1RJVkUgfCBQVUxMVVBfRU4p fSwJLyogTU1DMF9DTEsgKi8KKwl7T0ZGU0VUKG1tYzBfY21kKSwgKE1PREUoMCkgfCBSWEFDVElW RSB8IFBVTExVUF9FTil9LAkvKiBNTUMwX0NNRCAqLworCXtPRkZTRVQobWNhc3AwX2FjbGtyKSwg KE1PREUoNCkgfCBSWEFDVElWRSl9LAkJLyogTU1DMF9XUCAqLworCXtPRkZTRVQoc3BpMF9jczEp LCAoTU9ERSg1KSB8IFJYQUNUSVZFIHwgUFVMTFVQX0VOKX0sCS8qIE1NQzBfQ0QgKi8KKwl7LTF9 LAorfTsKKworc3RhdGljIGNvbnN0IF9fbWF5YmVfdW51c2VkIHN0cnVjdCBtb2R1bGVfcGluX211 eCBtbWMxX3Bpbl9tdXhbXSA9IHsKKwl7T0ZGU0VUKGdwbWNfYWQzKSwgKE1PREUoMSkgfCBSWEFD VElWRSl9LAkvKiBNTUMxX0RBVDMgKi8KKwl7T0ZGU0VUKGdwbWNfYWQyKSwgKE1PREUoMSkgfCBS WEFDVElWRSl9LAkvKiBNTUMxX0RBVDIgKi8KKwl7T0ZGU0VUKGdwbWNfYWQxKSwgKE1PREUoMSkg fCBSWEFDVElWRSl9LAkvKiBNTUMxX0RBVDEgKi8KKwl7T0ZGU0VUKGdwbWNfYWQwKSwgKE1PREUo MSkgfCBSWEFDVElWRSl9LAkvKiBNTUMxX0RBVDAgKi8KKwl7T0ZGU0VUKGdwbWNfY3NuMSksIChN T0RFKDIpIHwgUlhBQ1RJVkUgfCBQVUxMVVBfRU4pfSwJLyogTU1DMV9DTEsgKi8KKwl7T0ZGU0VU KGdwbWNfY3NuMiksIChNT0RFKDIpIHwgUlhBQ1RJVkUgfCBQVUxMVVBfRU4pfSwJLyogTU1DMV9D TUQgKi8KKwl7T0ZGU0VUKHVhcnQxX3J4ZCksIChNT0RFKDEpIHwgUlhBQ1RJVkUgfCBQVUxMVVBf RU4pfSwJLyogTU1DMV9XUCAqLworCXtPRkZTRVQobWNhc3AwX2ZzeCksIChNT0RFKDQpIHwgUlhB Q1RJVkUpfSwJLyogTU1DMV9DRCAqLworCXstMX0sCit9OworCitzdGF0aWMgY29uc3QgX19tYXli ZV91bnVzZWQgc3RydWN0IG1vZHVsZV9waW5fbXV4IHNwaTBfcGluX211eFtdID0geworCXtPRkZT RVQoc3BpMF9zY2xrKSwgTU9ERSgwKSB8IFBVTExVREVOIHwgUlhBQ1RJVkV9LAkvKlNQSTBfU0NM SyAqLworCXtPRkZTRVQoc3BpMF9kMCksIE1PREUoMCkgfCBQVUxMVURFTiB8IFBVTExVUF9FTiB8 CisJCQkJCQkJUlhBQ1RJVkV9LCAvKlNQSTBfRDAgKi8KKwl7T0ZGU0VUKHNwaTBfZDEpLCBNT0RF KDApIHwgUFVMTFVERU4gfAorCQkJCQkJCVJYQUNUSVZFfSwgLypTUEkwX0QxICovCisJe09GRlNF VChzcGkwX2NzMCksIE1PREUoMCkgfCBQVUxMVURFTiB8IFBVTExVUF9FTiB8IFJYQUNUSVZFfSwJ LypTUEkwX0NTMCAqLworCXstMX0sCit9OworCitzdGF0aWMgY29uc3QgX19tYXliZV91bnVzZWQg c3RydWN0IG1vZHVsZV9waW5fbXV4IHNwaTFfcGluX211eFtdID0geworCXtPRkZTRVQobWNhc3Aw X2FjbGt4KSwgTU9ERSgzKSB8IFBVTExVREVOIHwgUlhBQ1RJVkV9LAkvKlNQSTBfU0NMSyAqLwor CXtPRkZTRVQobWNhc3AwX2ZzeCksIE1PREUoMykgfCBQVUxMVURFTiB8IFBVTExVUF9FTiB8CisJ CQkJCQkJUlhBQ1RJVkV9LCAvKlNQSTBfRDAgKi8KKwl7T0ZGU0VUKG1jYXNwMF9heHIwKSwgTU9E RSgzKSB8IFBVTExVREVOIHwgUlhBQ1RJVkV9LCAvKlNQSTBfRDEgKi8KKwl7T0ZGU0VUKG1jYXNw MF9haGNsa3IpLCBNT0RFKDMpIHwgUFVMTFVERU4gfCBQVUxMVVBfRU4gfAorCQkJCQkJCVJYQUNU SVZFfSwgLypTUEkwX0NTMCAqLworCXstMX0sCit9OworCisvKgorICogQ29uZmlndXJlIHRoZSBw aW4gbXV4IGZvciB0aGUgbW9kdWxlCisgKi8KK3N0YXRpYyB2b2lkIGNvbmZpZ3VyZV9tb2R1bGVf cGluX211eChjb25zdCBzdHJ1Y3QgbW9kdWxlX3Bpbl9tdXggKm1vZF9waW5fbXV4KQoreworCWlu dCBpOworCisJaWYgKCFtb2RfcGluX211eCkKKwkJcmV0dXJuOworCisJZm9yIChpID0gMDsgbW9k X3Bpbl9tdXhbaV0ucmVnX29mZnNldCAhPSAtMTsgaSsrKQorCQlNVVhfQ0ZHKG1vZF9waW5fbXV4 W2ldLnZhbCwgbW9kX3Bpbl9tdXhbaV0ucmVnX29mZnNldCk7Cit9CisKK3ZvaWQgZW5hYmxlX21p aTFfcGluX211eCh2b2lkKQoreworCWNvbmZpZ3VyZV9tb2R1bGVfcGluX211eChtaWkxX3Bpbl9t dXgpOworfQorCit2b2lkIGVuYWJsZV9pMmMwX3Bpbl9tdXgodm9pZCkKK3sKKwljb25maWd1cmVf bW9kdWxlX3Bpbl9tdXgoaTJjMF9waW5fbXV4KTsKK30KKwordm9pZCBlbmFibGVfaTJjMV9waW5f bXV4KHZvaWQpCit7CisJY29uZmlndXJlX21vZHVsZV9waW5fbXV4KGkyYzFfcGluX211eCk7Cit9 CisKK3ZvaWQgZW5hYmxlX2kyYzJfcGluX211eCh2b2lkKQoreworCWNvbmZpZ3VyZV9tb2R1bGVf cGluX211eChpMmMyX3Bpbl9tdXgpOworfQorCit2b2lkIGVuYWJsZV91YXJ0MF9waW5fbXV4KHZv aWQpCit7CisJY29uZmlndXJlX21vZHVsZV9waW5fbXV4KHVhcnQwX3Bpbl9tdXgpOworfQpkaWZm IC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwL2dwbWMuYyBiL2FyY2gvYXJtL21hY2gtb21hcC9n cG1jLmMKaW5kZXggNGY1NGExMC4uM2FhYTRmNiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1v bWFwL2dwbWMuYworKysgYi9hcmNoL2FybS9tYWNoLW9tYXAvZ3BtYy5jCkBAIC0yNiw2ICsyNiw3 IEBACiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxtYWNoL29tYXAzLXNpbGljb24uaD4K ICNpbmNsdWRlIDxtYWNoL29tYXA0LXNpbGljb24uaD4KKyNpbmNsdWRlIDxtYWNoL2FtMzN4eC1z aWxpY29uLmg+CiAjaW5jbHVkZSA8bWFjaC9ncG1jLmg+CiAjaW5jbHVkZSA8bWFjaC9zeXNfaW5m by5oPgogI2luY2x1ZGUgPG1hY2gvc3lzbGliLmg+CkBAIC0zOCw2ICszOSw4IEBAIHN0YXRpYyBp bnQgZ3BtY19pbml0KHZvaWQpCiAJb21hcF9ncG1jX2Jhc2UgPSAodm9pZCAqKU9NQVAzX0dQTUNf QkFTRTsKICNlbGlmIGRlZmluZWQoQ09ORklHX0FSQ0hfT01BUDQpCiAJb21hcF9ncG1jX2Jhc2Ug PSAodm9pZCAqKU9NQVA0NFhYX0dQTUNfQkFTRTsKKyNlbGlmIGRlZmluZWQoQ09ORklHX0FSQ0hf QU0zM1hYKQorCW9tYXBfZ3BtY19iYXNlID0gKHZvaWQgKilBTTMzWFhfR1BNQ19CQVNFOwogI2Vs c2UKICNlcnJvciAiVW5rbm93biBBUkNIIgogI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL2FybS9t YWNoLW9tYXAvaW5jbHVkZS9tYWNoL2FtMzN4eC1jbG9jay5oIGIvYXJjaC9hcm0vbWFjaC1vbWFw L2luY2x1ZGUvbWFjaC9hbTMzeHgtY2xvY2suaAppbmRleCA2ODQ1NDEyLi4zOWMxMDdmIDEwMDY0 NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAvaW5jbHVkZS9tYWNoL2FtMzN4eC1jbG9jay5oCisr KyBiL2FyY2gvYXJtL21hY2gtb21hcC9pbmNsdWRlL21hY2gvYW0zM3h4LWNsb2NrLmgKQEAgLTE5 LDUgKzE5LDE3NiBAQAogI2lmbmRlZiBfQU0zM1hYX0NMT0NLU19IXwogI2RlZmluZSBfQU0zM1hY X0NMT0NLU19IXwogCisjaW5jbHVkZSAiYW0zM3h4LXNpbGljb24uaCIKKworLyogUHV0IHRoZSBw bGwgY29uZmlnIHZhbHVlcyBvdmVyIGhlcmUgKi8KKworI2RlZmluZSBPU0MJMjQKKworLyogTUFJ TiBQTEwgRmRsbCA9IDEgR0haLCAqLworI2RlZmluZSBNUFVQTExfTV81MDAJNTAwCS8qIDEyNSAq IG4gKi8KKyNkZWZpbmUgTVBVUExMX01fNTUwCTU1MAkvKiAxMjUgKiBuICovCisjZGVmaW5lIE1Q VVBMTF9NXzYwMAk2MDAJLyogMTI1ICogbiAqLworI2RlZmluZSBNUFVQTExfTV83MjAJNzIwCS8q IDEyNSAqIG4gKi8KKworI2RlZmluZSBNUFVQTExfTgkyMwkvKiAobiAtMSApICovCisjZGVmaW5l IE1QVVBMTF9NMgkxCisKKy8qIENvcmUgUExMIEZkbGwgPSAxIEdIWiwgKi8KKyNkZWZpbmUgQ09S RVBMTF9NCTEwMDAJLyogMTI1ICogbiAqLworI2RlZmluZSBDT1JFUExMX04JMjMJLyogKG4gLTEg KSAqLworCisjZGVmaW5lIENPUkVQTExfTTQJMTAJLyogQ09SRV9DTEtPVVRNNCA9IDIwMCBNSFog Ki8KKyNkZWZpbmUgQ09SRVBMTF9NNQk4CS8qIENPUkVfQ0xLT1VUTTUgPSAyNTAgTUhaICovCisj ZGVmaW5lIENPUkVQTExfTTYJNAkvKiBDT1JFX0NMS09VVE02ID0gNTAwIE1IWiAqLworCisvKgor ICogVVNCIFBIWSBjbG9jayBpcyA5NjAgTUhaLiBTaW5jZSwgdGhpcyBjb21lcyBkaXJlY3RseSBm cm9tIEZkbGwsIEZkbGwKKyAqIGZyZXF1ZW5jeSBuZWVkcyB0byBiZSBzZXQgdG8gOTYwIE1IWi4g SGVuY2UsCisgKiBGb3IgY2xrb3V0ID0gMTkyIE1IWiwgRmRsbCA9IDk2MCBNSFosIGRpdmlkZXIg dmFsdWVzIGFyZSBnaXZlbiBiZWxvdworICovCisjZGVmaW5lIFBFUlBMTF9NCTk2MAorI2RlZmlu ZSBQRVJQTExfTgkyMworI2RlZmluZSBQRVJQTExfTTIJNQorCisvKiBERFIgRnJlcSBpcyAxNjYg TUhaIGZvciBub3cqLworLyogU2V0IEZkbGwgPSA0MDAgTUhaICwgRmRsbCA9IE0gKiAyICogQ0xL SU5QLyBOICsgMTsgY2xrb3V0ID0gRmRsbCAvKDIgKiBNMikgKi8KKy8vI2lmCShDT05GSUdfQU0z MzVYX0VWTV9JU18xM3gxMyA9PSAxKQorI2lmIDAKKyNkZWZpbmUgRERSUExMX00JMTY2CS8qIE0v TiArIDEgPSAyNS8zICovCisjZWxzZQorI2RlZmluZSBERFJQTExfTQkyNjYKKyNlbmRpZgorCisj ZGVmaW5lIEREUlBMTF9OCTIzCisjZGVmaW5lIEREUlBMTF9NMgkxCisKKy8qIFBSQ00gKi8KKy8q IE1vZHVsZSBPZmZzZXRzICovCisjZGVmaW5lIENNX1BFUiAgICAgICAgICAgICAgICAgICAgICAg ICAgKEFNMzNYWF9QUk1fQkFTRSArIDB4MCkKKyNkZWZpbmUgQ01fV0tVUCAgICAgICAgICAgICAg ICAgICAgICAgICAoQU0zM1hYX1BSTV9CQVNFICsgMHg0MDApCisjZGVmaW5lIENNX0RQTEwgICAg ICAgICAgICAgICAgICAgICAgICAgKEFNMzNYWF9QUk1fQkFTRSArIDB4NTAwKQorI2RlZmluZSBD TV9ERVZJQ0UgICAgICAgICAgICAgICAgICAgICAgIChBTTMzWFhfUFJNX0JBU0UgKyAweDA3MDAp CisjZGVmaW5lIENNX0NFRlVTRSAgICAgICAgICAgICAgICAgICAgICAgKEFNMzNYWF9QUk1fQkFT RSArIDB4MEEwMCkKKyNkZWZpbmUgUFJNX0RFVklDRSAgICAgICAgICAgICAgICAgICAgICAoQU0z M1hYX1BSTV9CQVNFICsgMHgwRjAwKQorLyogUmVnaXN0ZXIgT2Zmc2V0cyAqLworLyogQ29yZSBQ TEwgQURQTExTICovCisjZGVmaW5lIENNX0NMS1NFTF9EUExMX0NPUkUgICAgICAgICAgICAgKENN X1dLVVAgKyAweDY4KQorI2RlZmluZSBDTV9DTEtNT0RFX0RQTExfQ09SRSAgICAgICAgICAgIChD TV9XS1VQICsgMHg5MCkKKworLyogQ29yZSBIU0RJViAqLworI2RlZmluZSBDTV9ESVZfTTRfRFBM TF9DT1JFICAgICAgICAgICAgIChDTV9XS1VQICsgMHg4MCkKKyNkZWZpbmUgQ01fRElWX001X0RQ TExfQ09SRSAgICAgICAgICAgICAoQ01fV0tVUCArIDB4ODQpCisjZGVmaW5lIENNX0RJVl9NNl9E UExMX0NPUkUgICAgICAgICAgICAgKENNX1dLVVAgKyAweEQ4KQorI2RlZmluZSBDTV9JRExFU1Rf RFBMTF9DT1JFICAgICAgICAgICAgIChDTV9XS1VQICsgMHg1YykKKworLyogUGVyaXBoZXJhbCBQ TEwgKi8KKyNkZWZpbmUgQ01fQ0xLU0VMX0RQTExfUEVSICAgICAgICAgICAgICAoQ01fV0tVUCAr IDB4OWMpCisjZGVmaW5lIENNX0NMS01PREVfRFBMTF9QRVIgICAgICAgICAgICAgKENNX1dLVVAg KyAweDhjKQorI2RlZmluZSBDTV9ESVZfTTJfRFBMTF9QRVIgICAgICAgICAgICAgIChDTV9XS1VQ ICsgMHhBQykKKyNkZWZpbmUgQ01fSURMRVNUX0RQTExfUEVSICAgICAgICAgICAgICAoQ01fV0tV UCArIDB4NzApCisKKy8qIERpc3BsYXkgUExMICovCisjZGVmaW5lIENNX0NMS1NFTF9EUExMX0RJ U1AgICAgICAgICAgICAgKENNX1dLVVAgKyAweDU0KQorI2RlZmluZSBDTV9DTEtNT0RFX0RQTExf RElTUCAgICAgICAgICAgIChDTV9XS1VQICsgMHg5OCkKKyNkZWZpbmUgQ01fRElWX00yX0RQTExf RElTUCAgICAgICAgICAgICAoQ01fV0tVUCArIDB4QTQpCisKKy8qIEREUiBQTEwgKi8KKyNkZWZp bmUgQ01fQ0xLU0VMX0RQTExfRERSICAgICAgICAgICAgICAoQ01fV0tVUCArIDB4NDApCisjZGVm aW5lIENNX0NMS01PREVfRFBMTF9ERFIgICAgICAgICAgICAgKENNX1dLVVAgKyAweDk0KQorI2Rl ZmluZSBDTV9ESVZfTTJfRFBMTF9ERFIgICAgICAgICAgICAgIChDTV9XS1VQICsgMHhBMCkKKyNk ZWZpbmUgQ01fSURMRVNUX0RQTExfRERSICAgICAgICAgICAgICAoQ01fV0tVUCArIDB4MzQpCisK Ky8qIE1QVSBQTEwgKi8KKyNkZWZpbmUgQ01fQ0xLU0VMX0RQTExfTVBVICAgICAgICAgICAgICAo Q01fV0tVUCArIDB4MmMpCisjZGVmaW5lIENNX0NMS01PREVfRFBMTF9NUFUgICAgICAgICAgICAg KENNX1dLVVAgKyAweDg4KQorI2RlZmluZSBDTV9ESVZfTTJfRFBMTF9NUFUgICAgICAgICAgICAg IChDTV9XS1VQICsgMHhBOCkKKyNkZWZpbmUgQ01fSURMRVNUX0RQTExfTVBVICAgICAgICAgICAg ICAoQ01fV0tVUCArIDB4MjApCisKKy8qIFRJTUVSIENsb2NrIFNvdXJjZSBTZWxlY3QgKi8KKyNk ZWZpbmUgQ0xLU0VMX1RJTUVSMl9DTEsgICAgICAgICAgICAgICAoQ01fRFBMTCArIDB4OCkKKwor LyogSW50ZXJjb25uZWN0IGNsb2NrcyAqLworI2RlZmluZSBDTV9QRVJfTDRMU19DTEtDVFJMICAg ICAgICAgICAgIChDTV9QRVIgKyAweDYwKSAvKiBFTUlGICovCisjZGVmaW5lIENNX1BFUl9MNEZX X0NMS0NUUkwgICAgICAgICAgICAgKENNX1BFUiArIDB4NjQpIC8qIEVNSUYgRlcgKi8KKyNkZWZp bmUgQ01fUEVSX0wzX0NMS0NUUkwgICAgICAgICAgICAgICAoQ01fUEVSICsgMHhFMCkgLyogT0NN QyBSQU0gKi8KKyNkZWZpbmUgQ01fUEVSX0wzX0lOU1RSX0NMS0NUUkwgICAgICAgICAoQ01fUEVS ICsgMHhEQykKKyNkZWZpbmUgQ01fUEVSX0w0SFNfQ0xLQ1RSTCAgICAgICAgICAgICAoQ01fUEVS ICsgMHgxMjApCisjZGVmaW5lIENNX1dLVVBfTDRXS1VQX0NMS0NUUkwgICAgICAgICAgKENNX1dL VVAgKyAweDBjKS8qIFVBUlQwICovCisKKy8qIERvbWFpbiBXYWtlIFVQICovCisjZGVmaW5lIENN X1dLVVBfQ0xLU1RDVFJMICAgICAgICAgICAgICAgKENNX1dLVVAgKyAwKSAgIC8qIFVBUlQwICov CisjZGVmaW5lIENNX1BFUl9MNExTX0NMS1NUQ1RSTCAgICAgICAgICAgKENNX1BFUiArIDB4MCkg IC8qIFRJTUVSMiAqLworI2RlZmluZSBDTV9QRVJfTDNfQ0xLU1RDVFJMICAgICAgICAgICAgIChD TV9QRVIgKyAweDBjKSAvKiBFTUlGICovCisjZGVmaW5lIENNX1BFUl9MNEZXX0NMS1NUQ1RSTCAg ICAgICAgICAgKENNX1BFUiArIDB4MDgpIC8qIEVNSUYgRlcgKi8KKyNkZWZpbmUgQ01fUEVSX0wz U19DTEtTVENUUkwgICAgICAgICAgICAoQ01fUEVSICsgMHg0KQorI2RlZmluZSBDTV9QRVJfTDRI U19DTEtTVENUUkwgICAgICAgICAgIChDTV9QRVIgKyAweDAxMWMpCisjZGVmaW5lIENNX0NFRlVT RV9DTEtTVENUUkwgICAgICAgICAgICAgKENNX0NFRlVTRSArIDB4MCkKKworLyogTW9kdWxlIEVu YWJsZSBSZWdpc3RlcnMgKi8KKyNkZWZpbmUgQ01fUEVSX1RJTUVSMl9DTEtDVFJMICAgICAgICAg ICAoQ01fUEVSICsgMHg4MCkgLyogVGltZXIyICovCisjZGVmaW5lIENNX1dLVVBfVUFSVDBfQ0xL Q1RSTCAgICAgICAgICAgKENNX1dLVVAgKyAweEI0KS8qIFVBUlQwICovCisjZGVmaW5lIENNX1dL VVBfQ09OVFJPTF9DTEtDVFJMICAgICAgICAgKENNX1dLVVAgKyAweDQpIC8qIENvbnRyb2wgTW9k dWxlICovCisjZGVmaW5lIENNX1BFUl9FTUlGX0NMS0NUUkwgICAgICAgICAgICAgKENNX1BFUiAr IDB4MjgpIC8qIEVNSUYgKi8KKyNkZWZpbmUgQ01fUEVSX0VNSUZfRldfQ0xLQ1RSTCAgICAgICAg ICAoQ01fUEVSICsgMHhEMCkgLyogRU1JRiBGVyAqLworI2RlZmluZSBDTV9QRVJfR1BNQ19DTEtD VFJMICAgICAgICAgICAgIChDTV9QRVIgKyAweDMwKSAvKiBHUE1DICovCisjZGVmaW5lIENNX1BF Ul9FTE1fQ0xLQ1RSTCAgICAgICAgICAgICAgKENNX1BFUiArIDB4NDApIC8qIEVMTSAqLworI2Rl ZmluZSBDTV9QRVJfU1BJMF9DTEtDVFJMICAgICAgICAgICAgIChDTV9QRVIgKyAweDRjKSAvKiBT UEkwICovCisjZGVmaW5lIENNX1BFUl9TUEkxX0NMS0NUUkwgICAgICAgICAgICAgKENNX1BFUiAr IDB4NTApIC8qIFNQSTEgKi8KKyNkZWZpbmUgQ01fV0tVUF9JMkMwX0NMS0NUUkwgICAgICAgICAg ICAoQ01fV0tVUCArIDB4QjgpIC8qIEkyQzAgKi8KKyNkZWZpbmUgQ01fUEVSX0NQR01BQzBfQ0xL Q1RSTCAgICAgICAgICAoQ01fUEVSICsgMHgxNCkgLyogRXRoZXJuZXQgKi8KKyNkZWZpbmUgQ01f UEVSX0NQU1dfQ0xLU1RDVFJMICAgICAgICAgICAoQ01fUEVSICsgMHgxNDQpLyogRXRoZXJuZXQg Ki8KKyNkZWZpbmUgQ01fUEVSX09DTUNSQU1fQ0xLQ1RSTCAgICAgICAgICAoQ01fUEVSICsgMHgy QykgLyogT0NNQyBSQU0gKi8KKyNkZWZpbmUgQ01fUEVSX0dQSU8yX0NMS0NUUkwgICAgICAgICAg ICAoQ01fUEVSICsgMHhCMCkgLyogR1BJTzIgKi8KKyNkZWZpbmUgQ01fUEVSX1VBUlQzX0NMS0NU UkwgICAgICAgICAgICAoQ01fUEVSICsgMHg3NCkgLyogVUFSVDMgKi8KKyNkZWZpbmUgQ01fUEVS X0kyQzFfQ0xLQ1RSTCAgICAgICAgICAgICAoQ01fUEVSICsgMHg0OCkgLyogSTJDMSAqLworI2Rl ZmluZSBDTV9QRVJfSTJDMl9DTEtDVFJMICAgICAgICAgICAgIChDTV9QRVIgKyAweDQ0KSAvKiBJ MkMyICovCisjZGVmaW5lIENNX1dLVVBfR1BJTzBfQ0xLQ1RSTCAgICAgICAgICAgKENNX1dLVVAg KyAweDgpIC8qIEdQSU8wICovCisKKyNkZWZpbmUgQ01fUEVSX01NQzBfQ0xLQ1RSTCAgICAgICAg ICAgICAoQ01fUEVSICsgMHgzQykKKyNkZWZpbmUgQ01fUEVSX01NQzFfQ0xLQ1RSTCAgICAgICAg ICAgICAoQ01fUEVSICsgMHhGNCkKKyNkZWZpbmUgQ01fUEVSX01NQzJfQ0xLQ1RSTCAgICAgICAg ICAgICAoQ01fUEVSICsgMHhGOCkKKworLyogUFJDTSAqLworI2RlZmluZSBDTV9EUExMX09GRlNF VCAgICAgICAgICAgICAgICAgIChBTTMzWFhfUFJNX0JBU0UgKyAweDAzMDApCisKKyNkZWZpbmUg Q01fQUxXT05fV0RUSU1FUl9DTEtDVFJMICAgICAgICAoQU0zM1hYX1BSTV9CQVNFICsgMHgxNThD KQorI2RlZmluZSBDTV9BTFdPTl9TUElfQ0xLQ1RSTCAgICAgICAgICAgIChBTTMzWFhfUFJNX0JB U0UgKyAweDE1OTApCisjZGVmaW5lIENNX0FMV09OX0NPTlRST0xfQ0xLQ1RSTCAgICAgICAgKEFN MzNYWF9QUk1fQkFTRSArIDB4MTVDNCkKKworI2RlZmluZSBDTV9BTFdPTl9MM19TTE9XX0NMS1NU Q1RSTCAgICAgIChBTTMzWFhfUFJNX0JBU0UgKyAweDE0MDApCisKKyNkZWZpbmUgQ01fQUxXT05f R1BJT18wX0NMS0NUUkwgICAgICAgICAoQU0zM1hYX1BSTV9CQVNFICsgMHgxNTVjKQorI2RlZmlu ZSBDTV9BTFdPTl9HUElPXzBfT1BURkNMS0VOX0RCQ0xLIChBTTMzWFhfUFJNX0JBU0UgKyAweDE1 NWMpCisKKy8qIEV0aGVybmV0ICovCisjZGVmaW5lIENNX0VUSEVSTkVUX0NMS1NUQ1RSTCAgICAg ICAgICAgKEFNMzNYWF9QUk1fQkFTRSArIDB4MTQwNCkKKyNkZWZpbmUgQ01fQUxXT05fRVRIRVJO RVRfMF9DTEtDVFJMICAgICAoQU0zM1hYX1BSTV9CQVNFICsgMHgxNUQ0KQorI2RlZmluZSBDTV9B TFdPTl9FVEhFUk5FVF8xX0NMS0NUUkwgICAgIChBTTMzWFhfUFJNX0JBU0UgKyAweDE1RDgpCisK Ky8qIFVBUlRzICovCisjZGVmaW5lIENNX0FMV09OX1VBUlRfMF9DTEtDVFJMICAgICAgICAgKEFN MzNYWF9QUk1fQkFTRSArIDB4MTU1MCkKKyNkZWZpbmUgQ01fQUxXT05fVUFSVF8xX0NMS0NUUkwg ICAgICAgICAoQU0zM1hYX1BSTV9CQVNFICsgMHgxNTU0KQorI2RlZmluZSBDTV9BTFdPTl9VQVJU XzJfQ0xLQ1RSTCAgICAgICAgIChBTTMzWFhfUFJNX0JBU0UgKyAweDE1NTgpCisKKy8qIEkyQyAq LworLyogTm90ZTogSW4gdGk4MTR4IEkyQzAgYW5kIEkyQzIgaGF2ZSBjb21tb24gY2xrIGNvbnRy b2wgKi8KKyNkZWZpbmUgQ01fQUxXT05fSTJDXzBfQ0xLQ1RSTCAgICAgICAgICAoQU0zM1hYX1BS TV9CQVNFICsgMHgxNTY0KQorCisvKiBFTUlGNCBQUkNNIERlZmludGlvbiAqLworI2RlZmluZSBD TV9ERUZBVUxUX0wzX0ZBU1RfQ0xLU1RDVFJMICAgIChBTTMzWFhfUFJNX0JBU0UgKyAweDA1MDgp CisjZGVmaW5lIENNX0RFRkFVTFRfRU1JRl8wX0NMS0NUUkwgICAgICAgKEFNMzNYWF9QUk1fQkFT RSArIDB4MDUyMCkKKyNkZWZpbmUgQ01fREVGQVVMVF9FTUlGXzFfQ0xLQ1RSTCAgICAgICAoQU0z M1hYX1BSTV9CQVNFICsgMHgwNTI0KQorI2RlZmluZSBDTV9ERUZBVUxUX0RNTV9DTEtDVFJMICAg ICAgICAgIChBTTMzWFhfUFJNX0JBU0UgKyAweDA1MjgpCisjZGVmaW5lIENNX0RFRkFVTFRfRldf Q0xLQ1RSTCAgICAgICAgICAgKEFNMzNYWF9QUk1fQkFTRSArIDB4MDUyQykKKworLyogQUxXT04g UFJDTSAqLworI2RlZmluZSBDTV9BTFdPTl9PQ01DXzBfQ0xLU1RDVFJMICAgICAgIENNX1BFUl9M M19DTEtTVENUUkwKKyNkZWZpbmUgQ01fQUxXT05fT0NNQ18wX0NMS0NUUkwgICAgICAgICBDTV9Q RVJfT0NNQ1JBTV9DTEtDVFJMCisKKyNkZWZpbmUgQ01fQUxXT05fR1BNQ19DTEtDVFJMICAgICAg ICAgICBDTV9QRVJfR1BNQ19DTEtDVFJMCisKK2V4dGVybiB2b2lkIHBsbF9pbml0KHZvaWQpOwor ZXh0ZXJuIHZvaWQgZW5hYmxlX2Rkcl9jbG9ja3Modm9pZCk7CiAKICNlbmRpZiAgLyogZW5kaWYg X0FNMzNYWF9DTE9DS1NfSF8gKi8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcC9pbmNs dWRlL21hY2gvYW0zM3h4LW11eC5oIGIvYXJjaC9hcm0vbWFjaC1vbWFwL2luY2x1ZGUvbWFjaC9h bTMzeHgtbXV4LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQzMjhmNQot LS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcC9pbmNsdWRlL21hY2gvYW0zM3h4 LW11eC5oCkBAIC0wLDAgKzEsMjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgVGV4YXMg SW5zdHJ1bWVudHMgSW5jb3Jwb3JhdGVkIC0gaHR0cDovL3d3dy50aS5jb20vCisgKgorICogVGhp cyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u IHZlcnNpb24gMi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgImFzIGlzIiBX SVRIT1VUIEFOWSBXQVJSQU5UWSBvZiBhbnkKKyAqIGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBp bXBsaWVkOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkKKyAqIG9mIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZQorICog R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqLworI2lmbmRl ZiBfX0FNMzNYWF9NVVhfSF9fCisjZGVmaW5lIF9fQU0zM1hYX01VWF9IX18KKworZXh0ZXJuIHZv aWQgZW5hYmxlX21paTFfcGluX211eCh2b2lkKTsKK2V4dGVybiB2b2lkIGVuYWJsZV9pMmMwX3Bp bl9tdXgodm9pZCk7CitleHRlcm4gdm9pZCBlbmFibGVfaTJjMV9waW5fbXV4KHZvaWQpOworZXh0 ZXJuIHZvaWQgZW5hYmxlX2kyYzJfcGluX211eCh2b2lkKTsKK2V4dGVybiB2b2lkIGVuYWJsZV91 YXJ0MF9waW5fbXV4KHZvaWQpOworCisjZW5kaWYgLypfX0FNMzNYWF9NVVhfSF9fICovCmRpZmYg LS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAvaW5jbHVkZS9tYWNoL2FtMzN4eC1zaWxpY29uLmgg Yi9hcmNoL2FybS9tYWNoLW9tYXAvaW5jbHVkZS9tYWNoL2FtMzN4eC1zaWxpY29uLmgKaW5kZXgg MTg1ODc1Ni4uZWE0NGQyNSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwL2luY2x1ZGUv bWFjaC9hbTMzeHgtc2lsaWNvbi5oCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcC9pbmNsdWRlL21h Y2gvYW0zM3h4LXNpbGljb24uaApAQCAtNDMsNyArNDMsMTUwIEBACiAjZGVmaW5lIEFNMzNYWF9E TVRJTUVSMF9CQVNFCQkoQU0zM1hYX0w0X1dLVVBfQkFTRSArIDB4MjA1MDAwKQogCiAvKiBQUk0g Ki8KLSNkZWZpbmUgT01BUF9QUk1fQkFTRQkJCShBTTMzWFhfTDRfV0tVUF9CQVNFICsgMHgyMDAw MDApCisjZGVmaW5lIEFNMzNYWF9QUk1fQkFTRQkJCShBTTMzWFhfTDRfV0tVUF9CQVNFICsgMHgy MDAwMDApCiAKKyNkZWZpbmUgQU0zM1hYX1BSTV9SU1RDVFJMCQkoQU0zM1hYX1BSTV9CQVNFICsg MHgwZjAwKQorI2RlZmluZSBBTTMzWFhfUFJNX1JTVENUUkxfUkVTRVQJMHgxCisKKy8qIENUUkwg Ki8KKyNkZWZpbmUgQU0zM1hYX0NUUkxfQkFTRQkJKEFNMzNYWF9MNF9XS1VQX0JBU0UgKyAweDIx MDAwMCkKKworLyogV2F0Y2hkb2cgVGltZXIgKi8KKyNkZWZpbmUgV0RUX0JBU0UgICAgICAgICAg ICAgICAgICAgICAgICAweDQ0RTM1MDAwCisKKy8qIEVNSUYgQmFzZSBhZGRyZXNzICovCisjZGVm aW5lIEVNSUY0XzBfQ0ZHX0JBU0UgICAgICAgICAgICAgICAgMHg0QzAwMDAwMAorI2RlZmluZSBF TUlGNF8xX0NGR19CQVNFICAgICAgICAgICAgICAgIDB4NEQwMDAwMDAKKyNkZWZpbmUgRE1NX0JB U0UgICAgICAgICAgICAgICAgICAgICAgICAweDRFMDAwMDAwCisKKyNkZWZpbmUgQU0zMzVYX0NQ U1dfQkFTRQkJMHg0QTEwMDAwMAorI2RlZmluZSBBTTMzNVhfQ1BTV19NRElPX0JBU0UJCTB4NEEx MDEwMDAKKworLypETU0gJiBFTUlGNCBNTVIgRGVjbGFyYXRpb24qLworI2RlZmluZSBETU1fTElT QV9NQVBfXzAJCQkoRE1NX0JBU0UgKyAweDQwKQorI2RlZmluZSBETU1fTElTQV9NQVBfXzEJCQko RE1NX0JBU0UgKyAweDQ0KQorI2RlZmluZSBETU1fTElTQV9NQVBfXzIJCQkoRE1NX0JBU0UgKyAw eDQ4KQorI2RlZmluZSBETU1fTElTQV9NQVBfXzMJCQkoRE1NX0JBU0UgKyAweDRDKQorI2RlZmlu ZSBETU1fUEFUX0JBU0VfQUREUgkJKERNTV9CQVNFICsgMHg0NjApCisKKyNkZWZpbmUgRU1JRl9N T0RfSURfUkVWCQkJKEVNSUY0XzBfQ0ZHX0JBU0UgKyAweDApCisjZGVmaW5lIEVNSUY0XzBfU0RS QU1fU1RBVFVTICAgICAgICAgICAgKEVNSUY0XzBfQ0ZHX0JBU0UgKyAweDA0KQorI2RlZmluZSBF TUlGNF8wX1NEUkFNX0NPTkZJRyAgICAgICAgICAgIChFTUlGNF8wX0NGR19CQVNFICsgMHgwOCkK KyNkZWZpbmUgRU1JRjRfMF9TRFJBTV9DT05GSUcyICAgICAgICAgICAoRU1JRjRfMF9DRkdfQkFT RSArIDB4MEMpCisjZGVmaW5lIEVNSUY0XzBfU0RSQU1fUkVGX0NUUkwgICAgICAgICAgKEVNSUY0 XzBfQ0ZHX0JBU0UgKyAweDEwKQorI2RlZmluZSBFTUlGNF8wX1NEUkFNX1JFRl9DVFJMX1NIQURP VyAgIChFTUlGNF8wX0NGR19CQVNFICsgMHgxNCkKKyNkZWZpbmUgRU1JRjRfMF9TRFJBTV9USU1f MSAgICAgICAgICAgICAoRU1JRjRfMF9DRkdfQkFTRSArIDB4MTgpCisjZGVmaW5lIEVNSUY0XzBf U0RSQU1fVElNXzFfU0hBRE9XICAgICAgKEVNSUY0XzBfQ0ZHX0JBU0UgKyAweDFDKQorI2RlZmlu ZSBFTUlGNF8wX1NEUkFNX1RJTV8yICAgICAgICAgICAgIChFTUlGNF8wX0NGR19CQVNFICsgMHgy MCkKKyNkZWZpbmUgRU1JRjRfMF9TRFJBTV9USU1fMl9TSEFET1cgICAgICAoRU1JRjRfMF9DRkdf QkFTRSArIDB4MjQpCisjZGVmaW5lIEVNSUY0XzBfU0RSQU1fVElNXzMgICAgICAgICAgICAgKEVN SUY0XzBfQ0ZHX0JBU0UgKyAweDI4KQorI2RlZmluZSBFTUlGNF8wX1NEUkFNX1RJTV8zX1NIQURP VyAgICAgIChFTUlGNF8wX0NGR19CQVNFICsgMHgyQykKKyNkZWZpbmUgRU1JRjBfMF9TRFJBTV9N R01UX0NUUkwgICAgICAgICAoRU1JRjRfMF9DRkdfQkFTRSArIDB4MzgpCisjZGVmaW5lIEVNSUYw XzBfU0RSQU1fTUdNVF9DVFJMX1NIRCAgICAgKEVNSUY0XzBfQ0ZHX0JBU0UgKyAweDNDKQorI2Rl ZmluZSBFTUlGNF8wX0REUl9QSFlfQ1RSTF8xICAgICAgICAgIChFTUlGNF8wX0NGR19CQVNFICsg MHhFNCkKKyNkZWZpbmUgRU1JRjRfMF9ERFJfUEhZX0NUUkxfMV9TSEFET1cgICAoRU1JRjRfMF9D RkdfQkFTRSArIDB4RTgpCisjZGVmaW5lIEVNSUY0XzBfRERSX1BIWV9DVFJMXzIgICAgICAgICAg KEVNSUY0XzBfQ0ZHX0JBU0UgKyAweEVDKQorI2RlZmluZSBFTUlGNF8wX0lPREZUX1RMR0MgICAg ICAgICAgICAgIChFTUlGNF8wX0NGR19CQVNFICsgMHg2MCkKKworI2RlZmluZSBFTUlGNF8xX1NE UkFNX0NPTkZJRwkJKEVNSUY0XzFfQ0ZHX0JBU0UgKyAweDA4KQorI2RlZmluZSBFTUlGNF8xX1NE UkFNX0NPTkZJRzIJCShFTUlGNF8xX0NGR19CQVNFICsgMHgwQykKKyNkZWZpbmUgRU1JRjRfMV9T RFJBTV9SRUZfQ1RSTAkJKEVNSUY0XzFfQ0ZHX0JBU0UgKyAweDEwKQorI2RlZmluZSBFTUlGNF8x X1NEUkFNX1JFRl9DVFJMX1NIQURPVwkoRU1JRjRfMV9DRkdfQkFTRSArIDB4MTQpCisjZGVmaW5l IEVNSUY0XzFfU0RSQU1fVElNXzEJCShFTUlGNF8xX0NGR19CQVNFICsgMHgxOCkKKyNkZWZpbmUg RU1JRjRfMV9TRFJBTV9USU1fMV9TSEFET1cJKEVNSUY0XzFfQ0ZHX0JBU0UgKyAweDFDKQorI2Rl ZmluZSBFTUlGNF8xX1NEUkFNX1RJTV8yCQkoRU1JRjRfMV9DRkdfQkFTRSArIDB4MjApCisjZGVm aW5lIEVNSUY0XzFfU0RSQU1fVElNXzJfU0hBRE9XCShFTUlGNF8xX0NGR19CQVNFICsgMHgyNCkK KyNkZWZpbmUgRU1JRjRfMV9TRFJBTV9USU1fMwkJKEVNSUY0XzFfQ0ZHX0JBU0UgKyAweDI4KQor I2RlZmluZSBFTUlGNF8xX1NEUkFNX1RJTV8zX1NIQURPVwkoRU1JRjRfMV9DRkdfQkFTRSArIDB4 MkMpCisjZGVmaW5lIEVNSUY0XzFfRERSX1BIWV9DVFJMXzEJCShFTUlGNF8xX0NGR19CQVNFICsg MHhFNCkKKyNkZWZpbmUgRU1JRjRfMV9ERFJfUEhZX0NUUkxfMV9TSEFET1cJKEVNSUY0XzFfQ0ZH X0JBU0UgKyAweEU4KQorI2RlZmluZSBFTUlGNF8xX0lPREZUX1RMR0MJCShFTUlGNF8xX0NGR19C QVNFICsgMHg2MCkKKworI2RlZmluZSBWVFAwX0NUUkxfUkVHCQkJMHg0NEUxMEUwQworI2RlZmlu ZSBWVFAxX0NUUkxfUkVHCQkJMHg0ODE0MEUxMAorCisvKiBPQ01DICovCisjZGVmaW5lIFNSQU0w X1NJWkUJCQkoMHgxQjQwMCkgLyogMTA5IEtCICovCisjZGVmaW5lIFNSQU1fR1BNQ19TVEFDS19T SVpFCQkoMHg0MCkKKworI2RlZmluZSBMT1dfTEVWRUxfU1JBTV9TVEFDSwkJKFNSQU0wX1NUQVJU ICsgU1JBTTBfU0laRSAtIDQpCisKKy8qIEREUiBvZmZzZXRzICovCisjZGVmaW5lCUREUl9QSFlf QkFTRV9BRERSCQkweDQ0RTEyMDAwCisjZGVmaW5lCUREUl9JT19DVFJMCQkJMHg0NEUxMEUwNAor I2RlZmluZQlERFJfQ0tFX0NUUkwJCQkweDQ0RTExMzFDCisjZGVmaW5lCUNPTlRST0xfQkFTRV9B RERSCQkweDQ0RTEwMDAwCisKKyNkZWZpbmUJRERSX0NNRDBfSU9DVFJMCQkJKENPTlRST0xfQkFT RV9BRERSICsgMHgxNDA0KQorI2RlZmluZQlERFJfQ01EMV9JT0NUUkwJCQkoQ09OVFJPTF9CQVNF X0FERFIgKyAweDE0MDgpCisjZGVmaW5lCUREUl9DTUQyX0lPQ1RSTAkJCShDT05UUk9MX0JBU0Vf QUREUiArIDB4MTQwQykKKyNkZWZpbmUJRERSX0RBVEEwX0lPQ1RSTAkJKENPTlRST0xfQkFTRV9B RERSICsgMHgxNDQwKQorI2RlZmluZQlERFJfREFUQTFfSU9DVFJMCQkoQ09OVFJPTF9CQVNFX0FE RFIgKyAweDE0NDQpCisKKyNkZWZpbmUJQ01EMF9DVFJMX1NMQVZFX1JBVElPXzAJCShERFJfUEhZ X0JBU0VfQUREUiArIDB4MDFDKQorI2RlZmluZQlDTUQwX0NUUkxfU0xBVkVfRk9SQ0VfMAkJKERE Ul9QSFlfQkFTRV9BRERSICsgMHgwMjApCisjZGVmaW5lCUNNRDBfQ1RSTF9TTEFWRV9ERUxBWV8w CQkoRERSX1BIWV9CQVNFX0FERFIgKyAweDAyNCkKKyNkZWZpbmUJQ01EMF9ETExfTE9DS19ESUZG XzAJCShERFJfUEhZX0JBU0VfQUREUiArIDB4MDI4KQorI2RlZmluZQlDTUQwX0lOVkVSVF9DTEtP VVRfMAkJKEREUl9QSFlfQkFTRV9BRERSICsgMHgwMkMpCisKKyNkZWZpbmUJQ01EMV9DVFJMX1NM QVZFX1JBVElPXzAJCShERFJfUEhZX0JBU0VfQUREUiArIDB4MDUwKQorI2RlZmluZQlDTUQxX0NU UkxfU0xBVkVfRk9SQ0VfMAkJKEREUl9QSFlfQkFTRV9BRERSICsgMHgwNTQpCisjZGVmaW5lCUNN RDFfQ1RSTF9TTEFWRV9ERUxBWV8wCQkoRERSX1BIWV9CQVNFX0FERFIgKyAweDA1OCkKKyNkZWZp bmUJQ01EMV9ETExfTE9DS19ESUZGXzAJCShERFJfUEhZX0JBU0VfQUREUiArIDB4MDVDKQorI2Rl ZmluZQlDTUQxX0lOVkVSVF9DTEtPVVRfMAkJKEREUl9QSFlfQkFTRV9BRERSICsgMHgwNjApCisK KyNkZWZpbmUJQ01EMl9DVFJMX1NMQVZFX1JBVElPXzAJCShERFJfUEhZX0JBU0VfQUREUiArIDB4 MDg0KQorI2RlZmluZQlDTUQyX0NUUkxfU0xBVkVfRk9SQ0VfMAkJKEREUl9QSFlfQkFTRV9BRERS ICsgMHgwODgpCisjZGVmaW5lCUNNRDJfQ1RSTF9TTEFWRV9ERUxBWV8wCQkoRERSX1BIWV9CQVNF X0FERFIgKyAweDA4QykKKyNkZWZpbmUJQ01EMl9ETExfTE9DS19ESUZGXzAJCShERFJfUEhZX0JB U0VfQUREUiArIDB4MDkwKQorI2RlZmluZQlDTUQyX0lOVkVSVF9DTEtPVVRfMAkJKEREUl9QSFlf QkFTRV9BRERSICsgMHgwOTQpCisKKyNkZWZpbmUgREFUQTBfUkRfRFFTX1NMQVZFX1JBVElPXzAJ KEREUl9QSFlfQkFTRV9BRERSICsgMHgwQzgpCisjZGVmaW5lIERBVEEwX1JEX0RRU19TTEFWRV9S QVRJT18xCShERFJfUEhZX0JBU0VfQUREUiArIDB4MENDKQorI2RlZmluZQlEQVRBMF9XUl9EUVNf U0xBVkVfUkFUSU9fMAkoRERSX1BIWV9CQVNFX0FERFIgKyAweDBEQykKKworI2RlZmluZQlEQVRB MF9XUl9EUVNfU0xBVkVfUkFUSU9fMQkoRERSX1BIWV9CQVNFX0FERFIgKyAweDBFMCkKKyNkZWZp bmUJREFUQTBfV1JMVkxfSU5JVF9SQVRJT18wCShERFJfUEhZX0JBU0VfQUREUiArIDB4MEYwKQor CisjZGVmaW5lCURBVEEwX1dSTFZMX0lOSVRfUkFUSU9fMQkoRERSX1BIWV9CQVNFX0FERFIgKyAw eDBGNCkKKyNkZWZpbmUJREFUQTBfR0FURUxWTF9JTklUX1JBVElPXzAJKEREUl9QSFlfQkFTRV9B RERSICsgMHgwRkMpCisKKyNkZWZpbmUJREFUQTBfR0FURUxWTF9JTklUX1JBVElPXzEJKEREUl9Q SFlfQkFTRV9BRERSICsgMHgxMDApCisjZGVmaW5lCURBVEEwX0ZJRk9fV0VfU0xBVkVfUkFUSU9f MAkoRERSX1BIWV9CQVNFX0FERFIgKyAweDEwOCkKKworI2RlZmluZQlEQVRBMF9GSUZPX1dFX1NM QVZFX1JBVElPXzEJKEREUl9QSFlfQkFTRV9BRERSICsgMHgxMEMpCisjZGVmaW5lCURBVEEwX1dS X0RBVEFfU0xBVkVfUkFUSU9fMAkoRERSX1BIWV9CQVNFX0FERFIgKyAweDEyMCkKKworI2RlZmlu ZQlEQVRBMF9XUl9EQVRBX1NMQVZFX1JBVElPXzEJKEREUl9QSFlfQkFTRV9BRERSICsgMHgxMjQp CisjZGVmaW5lIERBVEEwX0RMTF9MT0NLX0RJRkZfMAkJKEREUl9QSFlfQkFTRV9BRERSICsgMHgx MzgpCisKKyNkZWZpbmUgREFUQTBfUkFOSzBfREVMQVlTXzAJCShERFJfUEhZX0JBU0VfQUREUiAr IDB4MTM0KQorI2RlZmluZQlEQVRBMV9SQU5LMF9ERUxBWVNfMAkJKEREUl9QSFlfQkFTRV9BRERS ICsgMHgxRDgpCisKKy8qIEV0aGVybmV0IE1BQyBJRCBmcm9tIEVGdXNlICovCisjZGVmaW5lIE1B Q19JRDBfTE8JKEFNMzNYWF9DVFJMX0JBU0UgKyAweDYzMCkKKyNkZWZpbmUgTUFDX0lEMF9ISQko QU0zM1hYX0NUUkxfQkFTRSArIDB4NjM0KQorI2RlZmluZSBNQUNfSUQxX0xPCShBTTMzWFhfQ1RS TF9CQVNFICsgMHg2MzgpCisjZGVmaW5lIE1BQ19JRDFfSEkJKEFNMzNYWF9DVFJMX0JBU0UgKyAw eDYzYykKKyNkZWZpbmUgTUFDX01JSV9TRUwJKEFNMzNYWF9DVFJMX0JBU0UgKyAweDY1MCkKKwor LyogV0RUIHJlbGF0ZWQgKi8KKyNkZWZpbmUgV0RUX1dEU0MJKFdEVF9CQVNFICsgMHgwMTApCisj ZGVmaW5lIFdEVF9XRFNUCShXRFRfQkFTRSArIDB4MDE0KQorI2RlZmluZSBXRFRfV0lTUgkoV0RU X0JBU0UgKyAweDAxOCkKKyNkZWZpbmUgV0RUX1dJRVIJKFdEVF9CQVNFICsgMHgwMUMpCisjZGVm aW5lIFdEVF9XV0VSCShXRFRfQkFTRSArIDB4MDIwKQorI2RlZmluZSBXRFRfV0NMUgkoV0RUX0JB U0UgKyAweDAyNCkKKyNkZWZpbmUgV0RUX1dDUlIJKFdEVF9CQVNFICsgMHgwMjgpCisjZGVmaW5l IFdEVF9XTERSCShXRFRfQkFTRSArIDB4MDJDKQorI2RlZmluZSBXRFRfV1RHUgkoV0RUX0JBU0Ug KyAweDAzMCkKKyNkZWZpbmUgV0RUX1dXUFMJKFdEVF9CQVNFICsgMHgwMzQpCisjZGVmaW5lIFdE VF9XRExZCShXRFRfQkFTRSArIDB4MDQ0KQorI2RlZmluZSBXRFRfV1NQUgkoV0RUX0JBU0UgKyAw eDA0OCkKKyNkZWZpbmUgV0RUX1dJUlFFT0kJKFdEVF9CQVNFICsgMHgwNTApCisjZGVmaW5lIFdE VF9XSVJRU1RBVFJBVwkoV0RUX0JBU0UgKyAweDA1NCkKKyNkZWZpbmUgV0RUX1dJUlFTVEFUCShX RFRfQkFTRSArIDB4MDU4KQorI2RlZmluZSBXRFRfV0lSUUVOU0VUCShXRFRfQkFTRSArIDB4MDVD KQorI2RlZmluZSBXRFRfV0lSUUVOQ0xSCShXRFRfQkFTRSArIDB4MDYwKQogCiAjZW5kaWYKZGlm ZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcC9pbmNsdWRlL21hY2gveGxvYWQuaCBiL2FyY2gv YXJtL21hY2gtb21hcC9pbmNsdWRlL21hY2gveGxvYWQuaAppbmRleCA0NGQzNzU0Li5kNjMyNzM1 IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAvaW5jbHVkZS9tYWNoL3hsb2FkLmgKKysr IGIvYXJjaC9hcm0vbWFjaC1vbWFwL2luY2x1ZGUvbWFjaC94bG9hZC5oCkBAIC05LDYgKzksNyBA QCBlbnVtIG9tYXBfYm9vdF9zcmMgewogCU9NQVBfQk9PVFNSQ19VU0IxLAogfTsKIAorZW51bSBv bWFwX2Jvb3Rfc3JjIGFtMzN4eF9ib290c3JjKHZvaWQpOwogZW51bSBvbWFwX2Jvb3Rfc3JjIG9t YXAzX2Jvb3RzcmModm9pZCk7CiBlbnVtIG9tYXBfYm9vdF9zcmMgb21hcDRfYm9vdHNyYyh2b2lk KTsKIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwL3hsb2FkLmMgYi9hcmNoL2FybS9t YWNoLW9tYXAveGxvYWQuYwppbmRleCAyNDBkM2ZmLi40N2M1ZDk4IDEwMDY0NAotLS0gYS9hcmNo L2FybS9tYWNoLW9tYXAveGxvYWQuYworKysgYi9hcmNoL2FybS9tYWNoLW9tYXAveGxvYWQuYwpA QCAtMTYzLDYgKzE2Myw4IEBAIGVudW0gb21hcF9ib290X3NyYyBvbWFwX2Jvb3RzcmModm9pZCkK IAlyZXR1cm4gb21hcDNfYm9vdHNyYygpOwogI2VsaWYgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQ NCkKIAlyZXR1cm4gb21hcDRfYm9vdHNyYygpOworI2VsaWYgZGVmaW5lZChDT05GSUdfQVJDSF9B TTMzWFgpCisJcmV0dXJuIGFtMzN4eF9ib290c3JjKCk7CiAjZW5kaWYKIH0KIAotLSAKMS43LjEw LjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpiYXJl Ym94IG1haWxpbmcgbGlzdApiYXJlYm94QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3Rz LmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9iYXJlYm94Cg==