From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from smtp2-g21.free.fr ([212.27.42.2]) by bombadil.infradead.org with esmtp (Exim 4.72 #1 (Red Hat Linux)) id 1OMcPu-00019s-HA for barebox@lists.infradead.org; Thu, 10 Jun 2010 07:43:14 +0000 From: =?utf-8?q?Eric=20B=C3=A9nard?= Date: Thu, 10 Jun 2010 09:43:02 +0200 Message-Id: <1276155782-6173-1-git-send-email-eric@eukrea.com> 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: [PATCH] Add support for Eukrea CPUIMX35 To: s.hauer@pengutronix.de Cc: barebox@lists.infradead.org RnJvbTogRXJpYyBCZW5hcmQgPGVyaWNAZXVrcmVhLmNvbT4KCnRoaXMgbW9kdWxlcyBpcyBiYXNl ZCBvbiBGcmVlc2NhbGUncyBpLk1YMzU3IENQVSwgd2l0aCAxMjhNQiBvZgptRERSLCAyNTYgTUIg TkFORCwgYW5kIGV0aGVybmV0IFBIWS4KClNpZ25lZC1vZmYtYnk6IEVyaWMgQsOpbmFyZCA8ZXJp Y0BldWtyZWEuY29tPgotLS0KIGFyY2gvYXJtL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAxICsKIGFyY2gvYXJtL2NvbmZpZ3MvZXVrcmVhX2NwdWlteDM1X2RlZmNvbmZp ZyAgfCAgMjU0ICsrKysrKysrKysrKysrKysrKysrCiBhcmNoL2FybS9tYWNoLWlteC9LY29uZmln ICAgICAgICAgICAgICAgICAgIHwgICAxMSArCiBib2FyZC9ldWtyZWFfY3B1aW14MzUvTWFrZWZp bGUgICAgICAgICAgICAgIHwgICAyNSArKwogYm9hcmQvZXVrcmVhX2NwdWlteDM1L2NvbmZpZy5o ICAgICAgICAgICAgICB8ICAgMjMgKysKIGJvYXJkL2V1a3JlYV9jcHVpbXgzNS9lbnYvYmluL191 cGRhdGUgICAgICAgfCAgIDM2ICsrKwogYm9hcmQvZXVrcmVhX2NwdWlteDM1L2Vudi9iaW4vYm9v dCAgICAgICAgICB8ICAgNTIgKysrKwogYm9hcmQvZXVrcmVhX2NwdWlteDM1L2Vudi9iaW4vaHVz aF9oYWNrICAgICB8ICAgIDEgKwogYm9hcmQvZXVrcmVhX2NwdWlteDM1L2Vudi9iaW4vaW5pdCAg ICAgICAgICB8ICAgNDEgKysrKwogYm9hcmQvZXVrcmVhX2NwdWlteDM1L2Vudi9iaW4vdXBkYXRl X2tlcm5lbCB8ICAgIDggKwogYm9hcmQvZXVrcmVhX2NwdWlteDM1L2Vudi9iaW4vdXBkYXRlX3Jv b3QgICB8ICAgIDggKwogYm9hcmQvZXVrcmVhX2NwdWlteDM1L2Vudi9jb25maWcgICAgICAgICAg ICB8ICAgMjcgKysKIGJvYXJkL2V1a3JlYV9jcHVpbXgzNS9ldWtyZWFfY3B1aW14MzUuYyAgICAg fCAgMzQzICsrKysrKysrKysrKysrKysrKysrKysrKysrKwogYm9hcmQvZXVrcmVhX2NwdWlteDM1 L2V1a3JlYV9jcHVpbXgzNS5kb3ggICB8ICAgIDQgKwogYm9hcmQvZXVrcmVhX2NwdWlteDM1L2Zs YXNoX2hlYWRlci5jICAgICAgICB8ICAgNjAgKysrKysKIGJvYXJkL2V1a3JlYV9jcHVpbXgzNS9s b3dsZXZlbC5jICAgICAgICAgICAgfCAgMjE4ICsrKysrKysrKysrKysrKysrCiAxNiBmaWxlcyBj aGFuZ2VkLCAxMTEyIGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAx MDA2NDQgYXJjaC9hcm0vY29uZmlncy9ldWtyZWFfY3B1aW14MzVfZGVmY29uZmlnCiBjcmVhdGUg bW9kZSAxMDA2NDQgYm9hcmQvZXVrcmVhX2NwdWlteDM1L01ha2VmaWxlCiBjcmVhdGUgbW9kZSAx MDA2NDQgYm9hcmQvZXVrcmVhX2NwdWlteDM1L2NvbmZpZy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQg Ym9hcmQvZXVrcmVhX2NwdWlteDM1L2Vudi9iaW4vX3VwZGF0ZQogY3JlYXRlIG1vZGUgMTAwNjQ0 IGJvYXJkL2V1a3JlYV9jcHVpbXgzNS9lbnYvYmluL2Jvb3QKIGNyZWF0ZSBtb2RlIDEwMDY0NCBi b2FyZC9ldWtyZWFfY3B1aW14MzUvZW52L2Jpbi9odXNoX2hhY2sKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBib2FyZC9ldWtyZWFfY3B1aW14MzUvZW52L2Jpbi9pbml0CiBjcmVhdGUgbW9kZSAxMDA2NDQg Ym9hcmQvZXVrcmVhX2NwdWlteDM1L2Vudi9iaW4vdXBkYXRlX2tlcm5lbAogY3JlYXRlIG1vZGUg MTAwNjQ0IGJvYXJkL2V1a3JlYV9jcHVpbXgzNS9lbnYvYmluL3VwZGF0ZV9yb290CiBjcmVhdGUg bW9kZSAxMDA2NDQgYm9hcmQvZXVrcmVhX2NwdWlteDM1L2Vudi9jb25maWcKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBib2FyZC9ldWtyZWFfY3B1aW14MzUvZXVrcmVhX2NwdWlteDM1LmMKIGNyZWF0ZSBt b2RlIDEwMDY0NCBib2FyZC9ldWtyZWFfY3B1aW14MzUvZXVrcmVhX2NwdWlteDM1LmRveAogY3Jl YXRlIG1vZGUgMTAwNjQ0IGJvYXJkL2V1a3JlYV9jcHVpbXgzNS9mbGFzaF9oZWFkZXIuYwogY3Jl YXRlIG1vZGUgMTAwNjQ0IGJvYXJkL2V1a3JlYV9jcHVpbXgzNS9sb3dsZXZlbC5jCgpkaWZmIC0t Z2l0IGEvYXJjaC9hcm0vTWFrZWZpbGUgYi9hcmNoL2FybS9NYWtlZmlsZQppbmRleCAwYmRjZTIx Li44NWZmOWM4IDEwMDY0NAotLS0gYS9hcmNoL2FybS9NYWtlZmlsZQorKysgYi9hcmNoL2FybS9N YWtlZmlsZQpAQCAtNjMsNiArNjMsNyBAQCBib2FyZC0kKENPTkZJR19NQUNIX0VEQjkzMTUpCQkJ Oj0gZWRiOTN4eAogYm9hcmQtJChDT05GSUdfTUFDSF9FREI5MzE1QSkJCQk6PSBlZGI5M3h4CiBi b2FyZC0kKENPTkZJR19NQUNIX0VVS1JFQV9DUFVJTVgyNSkJCTo9IGV1a3JlYV9jcHVpbXgyNQog Ym9hcmQtJChDT05GSUdfTUFDSF9FVUtSRUFfQ1BVSU1YMjcpCQk6PSBldWtyZWFfY3B1aW14MjcK K2JvYXJkLSQoQ09ORklHX01BQ0hfRVVLUkVBX0NQVUlNWDM1KQkJOj0gZXVrcmVhX2NwdWlteDM1 CiBib2FyZC0kKENPTkZJR19NQUNIX0ZSRUVTQ0FMRV9NWDI1XzNTVEFDSykJOj0gZnJlZXNjYWxl LW14MjUtMy1zdGFjawogYm9hcmQtJChDT05GSUdfTUFDSF9GUkVFU0NBTEVfTVgzNV8zU1RBQ0sp CTo9IGZyZWVzY2FsZS1teDM1LTMtc3RhY2sKIGJvYXJkLSQoQ09ORklHX01BQ0hfSU1YMjFBRFMp CQkJOj0gaW14MjFhZHMKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvZXVrcmVhX2NwdWlt eDM1X2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvZXVrcmVhX2NwdWlteDM1X2RlZmNvbmZp ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZjY1NDdmCi0tLSAvZGV2L251 bGwKKysrIGIvYXJjaC9hcm0vY29uZmlncy9ldWtyZWFfY3B1aW14MzVfZGVmY29uZmlnCkBAIC0w LDAgKzEsMjU0IEBACisjCisjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBk b24ndCBlZGl0CisjIGJhcmVib3ggdmVyc2lvbjogMjAxMC4wNi4wCisjIE1vbiBKdW4gIDcgMTg6 MjU6NDcgMjAxMAorIworIyBDT05GSUdfQk9BUkRfTElOS0VSX1NDUklQVCBpcyBub3Qgc2V0CitD T05GSUdfR0VORVJJQ19MSU5LRVJfU0NSSVBUPXkKK0NPTkZJR19BUk09eQorCisjCisjIFN5c3Rl bSBUeXBlCisjCisjIENPTkZJR19BUkNIX0FUOTEgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9B VDkxUk05MjAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRVA5M1hYIGlzIG5vdCBzZXQKK0NP TkZJR19BUkNIX0lNWD15CisjIENPTkZJR19BUkNIX05FVFggaXMgbm90IHNldAorIyBDT05GSUdf QVJDSF9PTUFQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUzNDMjR4eCBpcyBub3Qgc2V0CisK KyMKKyMgUHJvY2Vzc29yIFR5cGUKKyMKK0NPTkZJR19DUFVfMzI9eQorQ09ORklHX0NQVV9WNj15 CitDT05GSUdfQ1BVXzMydjY9eQorCisjCisjIHByb2Nlc3NvciBmZWF0dXJlcworIworQ09ORklH X0FSQ0hfSEFTX0wyWDA9eQorQ09ORklHX0NBQ0hFX0wyWDA9eQorQ09ORklHX0FSQ0hfVEVYVF9C QVNFPTB4ODdmMDAwMDAKK0NPTkZJR19CT0FSRElORk89IkV1a3JlYSBDUFVJTVgzNSIKK0NPTkZJ R19BUkNIX0hBU19GRUNfSU1YPXkKK0NPTkZJR19BUkNIX0lNWF9JTlRFUk5BTF9CT09UPXkKKwor IworIyBGcmVlc2NhbGUgaS5NWCBTeXN0ZW0tb24tQ2hpcAorIworIyBDT05GSUdfQVJDSF9JTVgx IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU1YMjEgaXMgbm90IHNldAorIyBDT05GSUdfQVJD SF9JTVgyNSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lNWDI3IGlzIG5vdCBzZXQKKyMgQ09O RklHX0FSQ0hfSU1YMzEgaXMgbm90IHNldAorQ09ORklHX0FSQ0hfSU1YMzU9eQorQ09ORklHX01B Q0hfRVVLUkVBX0NQVUlNWDM1PXkKKyMgQ09ORklHX01BQ0hfRlJFRVNDQUxFX01YMzVfM1NUQUNL IGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ0hfUENNMDQzIGlzIG5vdCBzZXQKKworIworIyBCb2Fy ZCBzcGVjaWZpYyBzZXR0aW5ncyAgICAgICAKKyMKKworIworIyBpLk1YIHNwZWNpZmljIHNldHRp bmdzICAgICAgICAKKyMKKyMgQ09ORklHX0lNWF9DTEtPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FF QUJJIGlzIG5vdCBzZXQKKworIworIyBBcm0gc3BlY2lmaWMgc2V0dGluZ3MgICAgICAgICAKKyMK K0NPTkZJR19DTURfQVJNX0NQVUlORk89eQorQ09ORklHX0FSTV9PUFRJTVpFRF9TVFJJTkdfRlVO Q1RJT05TPXkKK0NPTkZJR19HUkVHT1JJQU5fQ0FMRU5ERVI9eQorQ09ORklHX0hBU19LQUxMU1lN Uz15CitDT05GSUdfSEFTX01PRFVMRVM9eQorQ09ORklHX0NNRF9NRU1PUlk9eQorQ09ORklHX0VO Vl9IQU5ETElORz15CitDT05GSUdfR0VORVJJQ19HUElPPXkKKworIworIyBHZW5lcmFsIFNldHRp bmdzICAgICAgICAgICAgICAKKyMKK0NPTkZJR19MT0NBTFZFUlNJT05fQVVUTz15CisKKyMKKyMg bWVtb3J5IGxheW91dCAgICAgICAgICAgICAgICAgCisjCitDT05GSUdfSEFWRV9NTVU9eQorQ09O RklHX01NVT15CitDT05GSUdfSEFWRV9DT05GSUdVUkFCTEVfVEVYVF9CQVNFPXkKK0NPTkZJR19U RVhUX0JBU0U9MHg4N2YwMDAwMAorQ09ORklHX0hBVkVfQ09ORklHVVJBQkxFX01FTU9SWV9MQVlP VVQ9eQorQ09ORklHX01FTU9SWV9MQVlPVVRfREVGQVVMVD15CisjIENPTkZJR19NRU1PUllfTEFZ T1VUX0ZJWEVEIGlzIG5vdCBzZXQKK0NPTkZJR19TVEFDS19TSVpFPTB4ODAwMAorQ09ORklHX01B TExPQ19TSVpFPTB4ODAwMDAwCisjIENPTkZJR19CUk9LRU4gaXMgbm90IHNldAorIyBDT05GSUdf RVhQRVJJTUVOVEFMIGlzIG5vdCBzZXQKK0NPTkZJR19NQUNIX0hBU19MT1dMRVZFTF9JTklUPXkK K0NPTkZJR19NQUNIX0RPX0xPV0xFVkVMX0lOSVQ9eQorQ09ORklHX1BST01QVD0iYmFyZWJveDoi CitDT05GSUdfQkFVRFJBVEU9MTE1MjAwCitDT05GSUdfTE9OR0hFTFA9eQorQ09ORklHX0NCU0la RT0xMDI0CitDT05GSUdfTUFYQVJHUz0xNgorQ09ORklHX1NIRUxMX0hVU0g9eQorIyBDT05GSUdf U0hFTExfU0lNUExFIGlzIG5vdCBzZXQKK0NPTkZJR19HTE9CPXkKK0NPTkZJR19QUk9NUFRfSFVT SF9QUzI9Ij4gIgorQ09ORklHX0hVU0hfRkFOQ1lfUFJPTVBUPXkKK0NPTkZJR19DTURMSU5FX0VE SVRJTkc9eQorQ09ORklHX0FVVE9fQ09NUExFVEU9eQorQ09ORklHX0RZTkFNSUNfQ1JDX1RBQkxF PXkKK0NPTkZJR19FUlJOT19NRVNTQUdFUz15CitDT05GSUdfVElNRVNUQU1QPXkKK0NPTkZJR19D T05TT0xFX0ZVTEw9eQorQ09ORklHX0NPTlNPTEVfQUNUSVZBVEVfRklSU1Q9eQorIyBDT05GSUdf T0ZfRkxBVF9UUkVFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBUlRJVElPTiBpcyBub3Qgc2V0Cisj IENPTkZJR19ERUZBVUxUX0VOVklST05NRU5UIGlzIG5vdCBzZXQKKworIworIyBEZWJ1Z2dpbmcg ICAgICAgICAgICAgICAgICAgICAKKyMKKyMgQ09ORklHX0RFQlVHX0lORk8gaXMgbm90IHNldAor IyBDT05GSUdfRU5BQkxFX0ZMQVNIX05PSVNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VOQUJMRV9Q QVJUSVRJT05fTk9JU0UgaXMgbm90IHNldAorIyBDT05GSUdfRU5BQkxFX0RFVklDRV9OT0lTRSBp cyBub3Qgc2V0CisKKyMKKyMgQ29tbWFuZHMgICAgICAgICAgICAgICAgICAgICAgCisjCisKKyMK KyMgc2NyaXB0aW5nICAgICAgICAgICAgICAgICAgICAgCisjCitDT05GSUdfQ01EX0VESVQ9eQor Q09ORklHX0NNRF9TTEVFUD15CitDT05GSUdfQ01EX1NBVkVFTlY9eQorQ09ORklHX0NNRF9MT0FE RU5WPXkKK0NPTkZJR19DTURfRVhQT1JUPXkKK0NPTkZJR19DTURfUFJJTlRFTlY9eQorQ09ORklH X0NNRF9SRUFETElORT15CitDT05GSUdfQ01EX1RSVUU9eQorQ09ORklHX0NNRF9GQUxTRT15CisK KyMKKyMgZmlsZSBjb21tYW5kcyAgICAgICAgICAgICAgICAgCisjCitDT05GSUdfQ01EX0xTPXkK K0NPTkZJR19DTURfUk09eQorQ09ORklHX0NNRF9DQVQ9eQorQ09ORklHX0NNRF9NS0RJUj15CitD T05GSUdfQ01EX1JNRElSPXkKK0NPTkZJR19DTURfQ1A9eQorQ09ORklHX0NNRF9QV0Q9eQorQ09O RklHX0NNRF9DRD15CitDT05GSUdfQ01EX01PVU5UPXkKK0NPTkZJR19DTURfVU1PVU5UPXkKKwor IworIyBjb25zb2xlICAgICAgICAgICAgICAgICAgICAgICAKKyMKK0NPTkZJR19DTURfQ0xFQVI9 eQorQ09ORklHX0NNRF9FQ0hPPXkKK0NPTkZJR19DTURfRUNIT19FPXkKKworIworIyBtZW1vcnkg ICAgICAgICAgICAgICAgICAgICAgICAKKyMKK0NPTkZJR19DTURfTE9BREI9eQorQ09ORklHX0NN RF9NRU1JTkZPPXkKK0NPTkZJR19DTURfQ1JDPXkKK0NPTkZJR19DTURfTVRFU1Q9eQorIyBDT05G SUdfQ01EX01URVNUX0FMVEVSTkFUSVZFIGlzIG5vdCBzZXQKKworIworIyBmbGFzaCAgICAgICAg ICAgICAgICAgICAgICAgICAKKyMKKyMgQ09ORklHX0NNRF9GTEFTSCBpcyBub3Qgc2V0CisKKyMK KyMgYm9vdGluZyAgICAgICAgICAgICAgICAgICAgICAgCisjCitDT05GSUdfQ01EX0JPT1RNPXkK KyMgQ09ORklHX0NNRF9CT09UTV9aTElCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NNRF9CT09UTV9C WkxJQiBpcyBub3Qgc2V0CisjIENPTkZJR19DTURfQk9PVE1fU0hPV19UWVBFIGlzIG5vdCBzZXQK K0NPTkZJR19DTURfQk9PVFo9eQorQ09ORklHX0NNRF9CT09UVT15CisjIENPTkZJR19DTURfTElO VVgxNiBpcyBub3Qgc2V0CitDT05GSUdfQ01EX1JFU0VUPXkKK0NPTkZJR19DTURfR089eQorQ09O RklHX0NNRF9USU1FT1VUPXkKK0NPTkZJR19DTURfUEFSVElUSU9OPXkKK0NPTkZJR19DTURfVEVT VD15CitDT05GSUdfQ01EX1ZFUlNJT049eQorQ09ORklHX0NNRF9IRUxQPXkKK0NPTkZJR19DTURf REVWSU5GTz15CitDT05GSUdfQ01EX0JNUD15CitDT05GSUdfQ01EX0dQSU89eQorQ09ORklHX0NN RF9VTkxaTz15CitDT05GSUdfTkVUPXkKK0NPTkZJR19ORVRfREhDUD15CisjIENPTkZJR19ORVRf UkFSUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfTkZTIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRf UElORz15CitDT05GSUdfTkVUX1RGVFA9eQorCisjCisjIERyaXZlcnMgICAgICAgICAgICAgICAg ICAgICAgIAorIworCisjCisjIHNlcmlhbCBkcml2ZXJzICAgICAgICAgICAgICAgIAorIworIyBD T05GSUdfRFJJVkVSX1NFUklBTF9BUk1fRENDIGlzIG5vdCBzZXQKK0NPTkZJR19EUklWRVJfU0VS SUFMX0lNWD15CisjIENPTkZJR19EUklWRVJfU0VSSUFMX05TMTY1NTAgaXMgbm90IHNldAorQ09O RklHX01JSVBIWT15CisKKyMKKyMgTmV0d29yayBkcml2ZXJzICAgICAgICAgICAgICAgCisjCisj IENPTkZJR19EUklWRVJfTkVUX1NNQzkxMVggaXMgbm90IHNldAorIyBDT05GSUdfRFJJVkVSX05F VF9TTUM5MTExMSBpcyBub3Qgc2V0CitDT05GSUdfRFJJVkVSX05FVF9GRUNfSU1YPXkKKworIwor IyBTUEkgZHJpdmVycyAgICAgICAgICAgICAgICAgICAKKyMKKyMgQ09ORklHX1NQSSBpcyBub3Qg c2V0CisjIENPTkZJR19JMkMgaXMgbm90IHNldAorCisjCisjIGZsYXNoIGRyaXZlcnMgICAgICAg ICAgICAgICAgIAorIworIyBDT05GSUdfRFJJVkVSX0NGSSBpcyBub3Qgc2V0CitDT05GSUdfTkFO RD15CitDT05GSUdfTkFORF9JTVg9eQorIyBDT05GSUdfTkFORF9JTVhfQk9PVCBpcyBub3Qgc2V0 CisjIENPTkZJR19NVERfTkFORF9WRVJJRllfV1JJVEUgaXMgbm90IHNldAorIyBDT05GSUdfTVRE X05BTkRfRUNDX1NNQyBpcyBub3Qgc2V0CitDT05GSUdfTVREX05BTkRfSURTPXkKKyMgQ09ORklH X0FUQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dB REdFVCBpcyBub3Qgc2V0CitDT05GSUdfVklERU89eQorQ09ORklHX0RSSVZFUl9WSURFT19JTVhf SVBVPXkKKworIworIyBGaWxlc3lzdGVtIHN1cHBvcnQgICAgICAgICAgICAKKyMKKyMgQ09ORklH X0ZTX0NSQU1GUyBpcyBub3Qgc2V0CitDT05GSUdfRlNfUkFNRlM9eQorQ09ORklHX0ZTX0RFVkZT PXkKK0NPTkZJR19DUkMzMj15CitDT05GSUdfQ1JDMTY9eQorIyBDT05GSUdfR0VORVJJQ19GSU5E X05FWFRfQklUIGlzIG5vdCBzZXQKK0NPTkZJR19QUk9DRVNTX0VTQ0FQRV9TRVFVRU5DRT15CitD T05GSUdfTFpPX0RFQ09NUFJFU1M9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1pbXgvS2Nv bmZpZyBiL2FyY2gvYXJtL21hY2gtaW14L0tjb25maWcKaW5kZXggNDE5ZGFhYi4uYWZkOGNhZSAx MDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1pbXgvS2NvbmZpZworKysgYi9hcmNoL2FybS9tYWNo LWlteC9LY29uZmlnCkBAIC00LDYgKzQsNyBAQCBjb25maWcgQVJDSF9URVhUX0JBU0UKIAloZXgK IAlkZWZhdWx0IDB4ODNmMDAwMDAgaWYgTUFDSF9FVUtSRUFfQ1BVSU1YMjUKIAlkZWZhdWx0IDB4 YTAwMDAwMDAgaWYgTUFDSF9FVUtSRUFfQ1BVSU1YMjcKKwlkZWZhdWx0IDB4ODdmMDAwMDAgaWYg TUFDSF9FVUtSRUFfQ1BVSU1YMzUKIAlkZWZhdWx0IDB4MDhmMDAwMDAgaWYgTUFDSF9NWDFBRFMK IAlkZWZhdWx0IDB4YzAwMDAwMDAgaWYgTUFDSF9JTVgyMUFEUwogCWRlZmF1bHQgMHhhMDAwMDAw MCBpZiBNQUNIX0lNWDI3QURTCkBAIC0xOSw2ICsyMCw3IEBAIGNvbmZpZyBBUkNIX1RFWFRfQkFT RQogY29uZmlnIEJPQVJESU5GTwogCWRlZmF1bHQgIkV1a3JlYSBDUFVJTVgyNSIgaWYgTUFDSF9F VUtSRUFfQ1BVSU1YMjUKIAlkZWZhdWx0ICJFdWtyZWEgQ1BVSU1YMjciIGlmIE1BQ0hfRVVLUkVB X0NQVUlNWDI3CisJZGVmYXVsdCAiRXVrcmVhIENQVUlNWDM1IiBpZiBNQUNIX0VVS1JFQV9DUFVJ TVgzNQogCWRlZmF1bHQgIkZyZWVzY2FsZSBpLk1YMjEgQURTIiBpZiBNQUNIX0lNWDIxQURTCiAJ ZGVmYXVsdCAiRnJlZXNjYWxlIGkuTVgyNyBBRFMiIGlmIE1BQ0hfSU1YMjdBRFMKIAlkZWZhdWx0 ICJGcmVlc2NhbGUgTVgzNSAzU3RhY2siIGlmIE1BQ0hfRlJFRVNDQUxFX01YMzVfM1NUQUNLCkBA IC0yMjMsNiArMjI1LDE1IEBAIGNob2ljZQogCiAJcHJvbXB0ICJpLk1YMzUgQm9hcmQgVHlwZSIK IAorY29uZmlnIE1BQ0hfRVVLUkVBX0NQVUlNWDM1CisJYm9vbCAiRVVLUkVBIENQVUlNWDM1Igor CXNlbGVjdCBIQVZFX01NVQorCXNlbGVjdCBNQUNIX0hBU19MT1dMRVZFTF9JTklUCisJc2VsZWN0 IEFSQ0hfSEFTX0wyWDAKKwloZWxwCisJICBTYXkgWSBoZXJlIGlmIHlvdSBhcmUgdXNpbmcgRXVr cmVhJ3MgQ1BVSU1YMzUgZXF1aXBwZWQKKwkgIHdpdGggYSBGcmVlc2NhbGUgaS5NWDM1IFByb2Nl c3NvcgorCiBjb25maWcgTUFDSF9GUkVFU0NBTEVfTVgzNV8zU1RBQ0sKIAlib29sICJGcmVlc2Nh bGUgTVgzNSAzc3RhY2siCiAJc2VsZWN0IEhBU19DRkkKZGlmZiAtLWdpdCBhL2JvYXJkL2V1a3Jl YV9jcHVpbXgzNS9NYWtlZmlsZSBiL2JvYXJkL2V1a3JlYV9jcHVpbXgzNS9NYWtlZmlsZQpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMmZmZTQyCi0tLSAvZGV2L251bGwKKysr IGIvYm9hcmQvZXVrcmVhX2NwdWlteDM1L01ha2VmaWxlCkBAIC0wLDAgKzEsMjUgQEAKKyMKKyMg KEMpIENvcHlyaWdodCAyMDA3IEp1ZXJnZW4gQmVpc2VydCA8amJlQHBlbmd1dHJvbml4LmRlPgor IworIyBTZWUgZmlsZSBDUkVESVRTIGZvciBsaXN0IG9mIHBlb3BsZSB3aG8gY29udHJpYnV0ZWQg dG8gdGhpcworIyBwcm9qZWN0LgorIworIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisjIHB1Ymxpc2hlZCBieSB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCisjIHRoZSBM aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlz IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYg bm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBU ZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLAorIyBNQSAwMjExMS0xMzA3IFVTQQorIwor CitvYmoteQkJCQkJKz0gbG93bGV2ZWwubworb2JqLXkJCQkJCSs9IGV1a3JlYV9jcHVpbXgzNS5v CitvYmotJChDT05GSUdfQVJDSF9JTVhfSU5URVJOQUxfQk9PVCkJKz0gZmxhc2hfaGVhZGVyLm8K ZGlmZiAtLWdpdCBhL2JvYXJkL2V1a3JlYV9jcHVpbXgzNS9jb25maWcuaCBiL2JvYXJkL2V1a3Jl YV9jcHVpbXgzNS9jb25maWcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5i ZmQzYjM5Ci0tLSAvZGV2L251bGwKKysrIGIvYm9hcmQvZXVrcmVhX2NwdWlteDM1L2NvbmZpZy5o CkBAIC0wLDAgKzEsMjMgQEAKKy8qCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworICogcHVibGlzaGVkIGJ5 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YKKyAqIHRo ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4JIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9u LCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLAorICogTUEgMDIxMTEt MTMwNyBVU0EKKyAqLworCisjaWZuZGVmIF9fQ09ORklHX0gKKyNkZWZpbmUgX19DT05GSUdfSAor CisjZGVmaW5lIENPTkZJR19NWDM1X0hDTEtfRlJFUSAgICAgICAgMjQwMDAwMDAKKworI2VuZGlm CS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2JvYXJkL2V1a3JlYV9jcHVpbXgzNS9lbnYv YmluL191cGRhdGUgYi9ib2FyZC9ldWtyZWFfY3B1aW14MzUvZW52L2Jpbi9fdXBkYXRlCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxNGJjZTMKLS0tIC9kZXYvbnVsbAorKysg Yi9ib2FyZC9ldWtyZWFfY3B1aW14MzUvZW52L2Jpbi9fdXBkYXRlCkBAIC0wLDAgKzEsMzYgQEAK KyMhL2Jpbi9zaAorCitpZiBbIC16ICIkcGFydCIgLW8gLXogIiRpbWFnZSIgXTsgdGhlbgorCWVj aG8gImRlZmluZSBcJHBhcnQgYW5kIFwkaW1hZ2UiCisJZXhpdCAxCitmaQorCitpZiBbICEgLWUg IiRwYXJ0IiBdOyB0aGVuCisJZWNobyAiUGFydGl0aW9uICRwYXJ0IGRvZXMgbm90IGV4aXN0Igor CWV4aXQgMQorZmkKKworaWYgWyAkIyA9IDEgXTsgdGhlbgorCWltYWdlPSQxCitmaQorCitpZiBb IHgkaXAgPSB4ZGhjcCBdOyB0aGVuCisJZGhjcAorZmkKKworcGluZyAkZXRoMC5zZXJ2ZXJpcAor aWYgWyAkPyAtbmUgMCBdIDsgdGhlbgorCWVjaG8gInVwZGF0ZSBhYm9ydGVkIgorCWV4aXQgMQor ZmkKKwordW5wcm90ZWN0ICRwYXJ0CisKK2VjaG8KK2VjaG8gImVyYXNpbmcgcGFydGl0aW9uICRw YXJ0IgorZXJhc2UgJHBhcnQKKworZWNobworZWNobyAiZmxhc2hpbmcgJGltYWdlIHRvICRwYXJ0 IgorZWNobwordGZ0cCAkaW1hZ2UgJHBhcnQKZGlmZiAtLWdpdCBhL2JvYXJkL2V1a3JlYV9jcHVp bXgzNS9lbnYvYmluL2Jvb3QgYi9ib2FyZC9ldWtyZWFfY3B1aW14MzUvZW52L2Jpbi9ib290Cm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjYTViOGMKLS0tIC9kZXYvbnVsbAor KysgYi9ib2FyZC9ldWtyZWFfY3B1aW14MzUvZW52L2Jpbi9ib290CkBAIC0wLDAgKzEsNTIgQEAK KyMhL2Jpbi9zaAorCisuIC9lbnYvY29uZmlnCisKK2lmIFsgeCQxID0geGpmZlMyIF07IHRoZW4K Kwlyb290PWpmZnMyCisJa2VybmVsPW5hbmQKK2ZpCisKK2lmIFsgeCQxID0geHViaWZzIF07IHRo ZW4KKwlyb290PXViaWZzCisJa2VybmVsPW5hbmQKK2ZpCisKK2lmIFsgeCQxID0geG5ldCBdOyB0 aGVuCisJcm9vdD1uZXQKKwlrZXJuZWw9bmV0CitmaQorCitpZiBbIHgkaXAgPSB4ZGhjcCBdOyB0 aGVuCisJYm9vdGFyZ3M9IiRib290YXJncyBpcD1kaGNwIgorZWxzZQorCWlmIFsgeCRpcCA9IHhv ZmYgXTsgdGhlbgorCQlib290YXJncz0iJGJvb3RhcmdzIGlwPW9mZiIKKwllbHNlCisJCWJvb3Rh cmdzPSIkYm9vdGFyZ3MgaXA9JGV0aDAuaXBhZGRyOiRldGgwLnNlcnZlcmlwOiRldGgwLmdhdGV3 YXk6JGV0aDAubmV0bWFzazo6OiIKKwlmaQorZmkKKworaWYgWyB4JHJvb3QgPSB4amZmczIgXTsg dGhlbgorCWJvb3RhcmdzPSIkYm9vdGFyZ3Mgcm9vdD0vZGV2L210ZGJsb2NrJHJvb3RwYXJ0bnVt X25hbmQgcm9vdGZzdHlwZT1qZmZzMiIKK2ZpCisKK2lmIFsgeCRyb290ID0geHViaWZzIF07IHRo ZW4KKwlib290YXJncz0iJGJvb3RhcmdzIHJvb3Q9dWJpMDokdWJpcm9vdCB1YmkubXRkPSRyb290 cGFydG51bV9uYW5kIHJvb3Rmc3R5cGU9dWJpZnMiCitmaQorCitpZiBbIHgkcm9vdCA9IHhuZXQg XTsgdGhlbgorCWJvb3RhcmdzPSIkYm9vdGFyZ3Mgcm9vdD0vZGV2L25mcyBuZnNyb290PSRldGgw LnNlcnZlcmlwOiRuZnNyb290LHYzLHRjcCIKK2ZpCisKK2Jvb3RhcmdzPSIkYm9vdGFyZ3MgbXRk cGFydHM9bXhjX25hbmQ6JG5hbmRfcGFydHMiCisKK2lmIFsgJGtlcm5lbCA9IG5ldCBdOyB0aGVu CisJaWYgWyB4JGlwID0geGRoY3AgXTsgdGhlbgorCQlkaGNwCisJZmkKKwl0ZnRwICR1aW1hZ2Ug dUltYWdlIHx8IGV4aXQgMQorCWJvb3RtIHVJbWFnZQorZWxzZQorCWJvb3RtIC9kZXYvbmFuZDAu a2VybmVsLmJiCitmaQpkaWZmIC0tZ2l0IGEvYm9hcmQvZXVrcmVhX2NwdWlteDM1L2Vudi9iaW4v aHVzaF9oYWNrIGIvYm9hcmQvZXVrcmVhX2NwdWlteDM1L2Vudi9iaW4vaHVzaF9oYWNrCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmZmZhOTIKLS0tIC9kZXYvbnVsbAorKysg Yi9ib2FyZC9ldWtyZWFfY3B1aW14MzUvZW52L2Jpbi9odXNoX2hhY2sKQEAgLTAsMCArMSBAQAor bmFuZCAtYSAvZGV2L25hbmQwLioKZGlmZiAtLWdpdCBhL2JvYXJkL2V1a3JlYV9jcHVpbXgzNS9l bnYvYmluL2luaXQgYi9ib2FyZC9ldWtyZWFfY3B1aW14MzUvZW52L2Jpbi9pbml0Cm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5ZTU0YzUKLS0tIC9kZXYvbnVsbAorKysgYi9i b2FyZC9ldWtyZWFfY3B1aW14MzUvZW52L2Jpbi9pbml0CkBAIC0wLDAgKzEsNDEgQEAKKyMhL2Jp bi9zaAorCitQQVRIPS9lbnYvYmluCitleHBvcnQgUEFUSAorCisuIC9lbnYvY29uZmlnCitpZiBb IC1lIC9kZXYvbmFuZDAgXTsgdGhlbgorCWFkZHBhcnQgL2Rldi9uYW5kMCAkbmFuZF9wYXJ0cwor CisJIyBVaCwgb2gsIGh1c2ggZmlyc3QgZXhwYW5kcyB3aWxkY2FyZHMgYW5kIHRoZW4gc3RhcnRz IGV4ZWN1dGluZworCSMgY29tbWFuZHMuIFdoYXQgYSBidWchCisJc291cmNlIC9lbnYvYmluL2h1 c2hfaGFjayAKK2ZpCisKK2lmIFsgLWYgL2Vudi9sb2dvLmJtcCBdOyB0aGVuCisJYm1wIC9lbnYv bG9nby5ibXAKK2VsaWYgWyAtZiAvZW52L2xvZ28uYm1wLmx6byBdOyB0aGVuCisJdW5sem8gL2Vu di9sb2dvLmJtcC5sem8gL2xvZ28uYm1wCisJYm1wIC9sb2dvLmJtcAorZmkKKworaWYgWyAteiAk ZXRoMC5ldGhhZGRyIF07IHRoZW4KKwl3aGlsZSBbIC16ICRldGgwLmV0aGFkZHIgXTsgZG8KKwkJ cmVhZGxpbmUgIm5vIE1BQyBhZGRyZXNzIHNldCBmb3IgZXRoMC4gcGxlYXNlIGVudGVyIHRoZSBv bmUgZm91bmQgb24geW91ciBib2FyZDogIiBldGgwLmV0aGFkZHIKKwlkb25lCisJZWNobyAtYSAv ZW52L2NvbmZpZyAiZXRoMC5ldGhhZGRyPSRldGgwLmV0aGFkZHIiCisJc2F2ZWVudgorZmkKKwor ZWNobworZWNobyAtbiAiSGl0IGFueSBrZXkgdG8gc3RvcCBhdXRvYm9vdDogIgordGltZW91dCAt YSAkYXV0b2Jvb3RfdGltZW91dAoraWYgWyAkPyAhPSAwIF07IHRoZW4KKwllY2hvCisJZWNobyAi dHlwZSB1cGRhdGVfa2VybmVsIFs8aW1hZ2VuYW1lPl0gdG8gdXBkYXRlIGtlcm5lbCBpbnRvIGZs YXNoIgorCWVjaG8gInR5cGUgdXBkYXRlX3Jvb3QgWzxpbWFnZW5hbWU+XSB0byB1cGRhdGUgcm9v dGZzIGludG8gZmxhc2giCisJZWNobworCWV4aXQKK2ZpCisKK2Jvb3QKZGlmZiAtLWdpdCBhL2Jv YXJkL2V1a3JlYV9jcHVpbXgzNS9lbnYvYmluL3VwZGF0ZV9rZXJuZWwgYi9ib2FyZC9ldWtyZWFf Y3B1aW14MzUvZW52L2Jpbi91cGRhdGVfa2VybmVsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLmMyZDJjYzMKLS0tIC9kZXYvbnVsbAorKysgYi9ib2FyZC9ldWtyZWFfY3B1aW14 MzUvZW52L2Jpbi91cGRhdGVfa2VybmVsCkBAIC0wLDAgKzEsOCBAQAorIyEvYmluL3NoCisKKy4g L2Vudi9jb25maWcKKworaW1hZ2U9JHVpbWFnZQorcGFydD0vZGV2L25hbmQwLmtlcm5lbC5iYgor CisuIC9lbnYvYmluL191cGRhdGUgJDEKZGlmZiAtLWdpdCBhL2JvYXJkL2V1a3JlYV9jcHVpbXgz NS9lbnYvYmluL3VwZGF0ZV9yb290IGIvYm9hcmQvZXVrcmVhX2NwdWlteDM1L2Vudi9iaW4vdXBk YXRlX3Jvb3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGQ4OWE1YQotLS0g L2Rldi9udWxsCisrKyBiL2JvYXJkL2V1a3JlYV9jcHVpbXgzNS9lbnYvYmluL3VwZGF0ZV9yb290 CkBAIC0wLDAgKzEsOCBAQAorIyEvYmluL3NoCisKKy4gL2Vudi9jb25maWcKKworaW1hZ2U9JHJv b3RmcworcGFydD0vZGV2L25hbmQwLnJvb3QuYmIKKworLiAvZW52L2Jpbi9fdXBkYXRlICQxCmRp ZmYgLS1naXQgYS9ib2FyZC9ldWtyZWFfY3B1aW14MzUvZW52L2NvbmZpZyBiL2JvYXJkL2V1a3Jl YV9jcHVpbXgzNS9lbnYvY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmRmMjA3OWYKLS0tIC9kZXYvbnVsbAorKysgYi9ib2FyZC9ldWtyZWFfY3B1aW14MzUvZW52L2Nv bmZpZwpAQCAtMCwwICsxLDI3IEBACisjIS9iaW4vc2gKKworIyBjYW4gYmUgZWl0aGVyICduZXQn IG9yICduYW5kJycKK2tlcm5lbD1uYW5kCityb290PXViaWZzCisKK2Jhc2VkaXI9Y3B1aW14MzUK K3VpbWFnZT0kYmFzZWRpci91SW1hZ2UKK3Jvb3Rmcz0kYmFzZWRpci9yb290ZnMKKworYXV0b2Jv b3RfdGltZW91dD0xCisKK25mc3Jvb3Q9IiIKK2Jvb3RhcmdzPSJjb25zb2xlPXR0eW14YzAsMTE1 MjAwIgorCituYW5kX3BhcnRzPSIyNTZrKGJhcmVib3gpcm8sMTI4ayhiYXJlYm94ZW52KSwyMTc2 ayhrZXJuZWwpLC0ocm9vdCkiCityb290cGFydG51bV9uYW5kPTMKK3ViaXJvb3Q9ImV1a3JlYS1j cHVpbXgzNS1yb290ZnMiCisKKyMgdXNlICdkaGNwJyB0byBkbyBkaGNwIGluIGJhcmVib3ggYW5k IGluIGtlcm5lbAoraXA9b2ZmCisKKyMgb3Igc2V0IHlvdXIgbmV0d29ya2luZyBwYXJhbWV0ZXJz IGhlcmUKKyNldGgwLmlwYWRkcj1hLmIuYy5kCisjZXRoMC5uZXRtYXNrPWEuYi5jLmQKKyNldGgw LmdhdGV3YXk9YS5iLmMuZAorI2V0aDAuc2VydmVyaXA9YS5iLmMuZApkaWZmIC0tZ2l0IGEvYm9h cmQvZXVrcmVhX2NwdWlteDM1L2V1a3JlYV9jcHVpbXgzNS5jIGIvYm9hcmQvZXVrcmVhX2NwdWlt eDM1L2V1a3JlYV9jcHVpbXgzNS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjdmMWM3ODIKLS0tIC9kZXYvbnVsbAorKysgYi9ib2FyZC9ldWtyZWFfY3B1aW14MzUvZXVrcmVh X2NwdWlteDM1LmMKQEAgLTAsMCArMSwzNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcg U2FzY2hhIEhhdWVyLCBQZW5ndXRyb25peAorICogICAgICAgICAgICAgICAyMDA5IE1hcmMgS2xl aW5lLUJ1ZGRlLCBQZW5ndXRyb25peAorICogKGMpIDIwMTAgRXVrcmVhIEVsZWN0cm9tYXRpcXVl LCBFcmljIELDqW5hcmQgPGVyaWNAZXVrcmVhLmNvbT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwor ICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJz aW9uIDIgb2YKKyAqIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFs b25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJl CisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9u LAorICogTUEgMDIxMTEtMTMwNyBVU0EKKyAqCisgKiBEZXJpdmVkIGZyb206CisgKgorICogKiBt eDM1XzNzdGFjay5jIC0gYm9hcmQgZmlsZSBmb3IgdWJvb3QtdjEKKyAqICAgQ29weXJpZ2h0IChD KSAyMDA3LCBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CisgKiAgIChDKSBDb3B5 cmlnaHQgMjAwOC0yMDA5IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuCisgKgorICovCisK KyNpbmNsdWRlIDxjb21tb24uaD4KKyNpbmNsdWRlIDxjb21tYW5kLmg+CisjaW5jbHVkZSA8ZW52 aXJvbm1lbnQuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5j bHVkZSA8ZmVjLmg+CisjaW5jbHVkZSA8ZnMuaD4KKyNpbmNsdWRlIDxpbml0Lmg+CisjaW5jbHVk ZSA8bmFuZC5oPgorI2luY2x1ZGUgPG5ldC5oPgorI2luY2x1ZGUgPHBhcnRpdGlvbi5oPgorCisj aW5jbHVkZSA8YXNtL2FybWxpbnV4Lmg+CisjaW5jbHVkZSA8YXNtL2lvLmg+CisjaW5jbHVkZSA8 YXNtL21hY2gtdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vbW11Lmg+CisKKyNpbmNsdWRlIDxtYWNo L2dwaW8uaD4KKyNpbmNsdWRlIDxtYWNoL2lteC1uYW5kLmg+CisjaW5jbHVkZSA8bWFjaC9pbXgt cmVncy5oPgorI2luY2x1ZGUgPG1hY2gvaW9tdXgtbXgzNS5oPgorI2luY2x1ZGUgPG1hY2gvaW9t dXgtdjMuaD4KKyNpbmNsdWRlIDxtYWNoL3BtaWMuaD4KKyNpbmNsdWRlIDxtYWNoL2lteC1pcHUt ZmIuaD4KKyNpbmNsdWRlIDxtYWNoL2lteC1wbGwuaD4KKworc3RhdGljIHN0cnVjdCBmZWNfcGxh dGZvcm1fZGF0YSBmZWNfaW5mbyA9IHsKKwkueGN2X3R5cGUJPSBNSUkxMDAsCisJLnBoeV9hZGRy CT0gMHgxRiwKK307CisKK3N0YXRpYyBzdHJ1Y3QgZGV2aWNlX2QgZmVjX2RldiA9IHsKKwkubmFt ZQkJPSAiZmVjX2lteCIsCisJLm1hcF9iYXNlCT0gSU1YX0ZFQ19CQVNFLAorCS5wbGF0Zm9ybV9k YXRhCT0gJmZlY19pbmZvLAorfTsKKworc3RhdGljIHN0cnVjdCBtZW1vcnlfcGxhdGZvcm1fZGF0 YSBzZHJhbV9wZGF0YSA9IHsKKwkubmFtZQk9ICJyYW0wIiwKKwkuZmxhZ3MJPSBERVZGU19SRFdS LAorfTsKKworc3RhdGljIHN0cnVjdCBkZXZpY2VfZCBzZHJhbV9kZXYgPSB7CisJLm5hbWUJCT0g Im1lbSIsCisJLm1hcF9iYXNlCT0gSU1YX1NEUkFNX0NTMCwKKwkuc2l6ZQkJPSAxMjggKiAxMDI0 ICogMTAyNCwKKwkucGxhdGZvcm1fZGF0YQk9ICZzZHJhbV9wZGF0YSwKK307CisKK3N0cnVjdCBp bXhfbmFuZF9wbGF0Zm9ybV9kYXRhIG5hbmRfaW5mbyA9IHsKKwkud2lkdGgJCT0gMSwKKwkuaHdf ZWNjCQk9IDEsCisJLmZsYXNoX2JidAk9IDEsCit9OworCitzdGF0aWMgc3RydWN0IGRldmljZV9k IG5hbmRfZGV2ID0geworCS5uYW1lCQk9ICJpbXhfbmFuZCIsCisJLm1hcF9iYXNlCT0gSU1YX05G Q19CQVNFLAorCS5wbGF0Zm9ybV9kYXRhCT0gJm5hbmRfaW5mbywKK307CisKK3N0YXRpYyBzdHJ1 Y3QgZmJfdmlkZW9tb2RlIGlteGZiX21vZGUgPSB7CisJLm5hbWUJCT0gIkNNT19RVkdBIiwKKwku cmVmcmVzaAk9IDYwLAorCS54cmVzCQk9IDMyMCwKKwkueXJlcwkJPSAyNDAsCisJLnBpeGNsb2Nr CT0gS0haMlBJQ09TKDcwMDApLAorCS5sZWZ0X21hcmdpbgk9IDY4LAorCS5yaWdodF9tYXJnaW4J PSAyMCwKKwkudXBwZXJfbWFyZ2luCT0gMTUsCisJLmxvd2VyX21hcmdpbgk9IDQsCisJLmhzeW5j X2xlbgk9IDMwLAorCS52c3luY19sZW4JPSAzLAorCS5zeW5jCQk9IEZCX1NZTkNfT0VfQUNUX0hJ R0gsCisJLnZtb2RlCQk9IEZCX1ZNT0RFX05PTklOVEVSTEFDRUQsCisJLmZsYWcJCT0gMCwKK307 CisKK3N0YXRpYyBzdHJ1Y3QgaW14X2lwdV9mYl9wbGF0Zm9ybV9kYXRhIGlwdV9mYl9kYXRhID0g eworCS5tb2RlCQk9ICZpbXhmYl9tb2RlLAorCS5icHAJCT0gMTYsCit9OworCitzdGF0aWMgc3Ry dWN0IGRldmljZV9kIGlteGZiX2RldiA9IHsKKwkubmFtZQkJPSAiaW14LWlwdS1mYiIsCisJLm1h cF9iYXNlCT0gMHg1M2ZjMDAwMCwKKwkuc2l6ZQkJPSAweDEwMDAsCisJLnBsYXRmb3JtX2RhdGEJ PSAmaXB1X2ZiX2RhdGEsCit9OworCisjaWZkZWYgQ09ORklHX01NVQorc3RhdGljIGludCBldWty ZWFfY3B1aW14MzVfbW11X2luaXQodm9pZCkKK3sKKwltbXVfaW5pdCgpOworCisJYXJtX2NyZWF0 ZV9zZWN0aW9uKDB4ODAwMDAwMDAsIDB4ODAwMDAwMDAsIDEyOCwgUE1EX1NFQ1RfREVGX0NBQ0hF RCk7CisJYXJtX2NyZWF0ZV9zZWN0aW9uKDB4OTAwMDAwMDAsIDB4ODAwMDAwMDAsIDEyOCwgUE1E X1NFQ1RfREVGX1VOQ0FDSEVEKTsKKworCXNldHVwX2RtYV9jb2hlcmVudCgweDEwMDAwMDAwKTsK KworI2lmIFRFWFRfQkFTRSAmICgweDEwMDAwMCAtIDEpCisjd2FybmluZyBjYW5ub3QgY3JlYXRl IHZlY3RvciBzZWN0aW9uLiBBZGp1c3QgVEVYVF9CQVNFIHRvIGEgMU0gYm91bmRhcnkKKyNlbHNl CisJYXJtX2NyZWF0ZV9zZWN0aW9uKDB4MCwgICAgICAgIFRFWFRfQkFTRSwgICAxLCBQTURfU0VD VF9ERUZfVU5DQUNIRUQpOworI2VuZGlmCisJbW11X2VuYWJsZSgpOworCisjaWZkZWYgQ09ORklH X0NBQ0hFX0wyWDAKKwlsMngwX2luaXQoKHZvaWQgX19pb21lbSAqKTB4MzAwMDAwMDAsIDB4MDAw MzAwMjQsIDB4MDAwMDAwMDApOworI2VuZGlmCisJcmV0dXJuIDA7Cit9Citwb3N0Y29yZV9pbml0 Y2FsbChldWtyZWFfY3B1aW14MzVfbW11X2luaXQpOworI2VuZGlmCisKK3N0YXRpYyBpbnQgZXVr cmVhX2NwdWlteDM1X2RldmljZXNfaW5pdCh2b2lkKQoreworCXJlZ2lzdGVyX2RldmljZSgmbmFu ZF9kZXYpOworCisJZGV2ZnNfYWRkX3BhcnRpdGlvbigibmFuZDAiLCAweDAwMDAwLCAweDQwMDAw LCBQQVJUSVRJT05fRklYRUQsICJzZWxmX3JhdyIpOworCWRldl9hZGRfYmJfZGV2KCJzZWxmX3Jh dyIsICJzZWxmMCIpOworCWRldmZzX2FkZF9wYXJ0aXRpb24oIm5hbmQwIiwgMHg0MDAwMCwgMHgy MDAwMCwgUEFSVElUSU9OX0ZJWEVELCAiZW52X3JhdyIpOworCWRldl9hZGRfYmJfZGV2KCJlbnZf cmF3IiwgImVudjAiKTsKKworCXJlZ2lzdGVyX2RldmljZSgmZmVjX2Rldik7CisKKwlyZWdpc3Rl cl9kZXZpY2UoJnNkcmFtX2Rldik7CisJcmVnaXN0ZXJfZGV2aWNlKCZpbXhmYl9kZXYpOworCisJ YXJtbGludXhfYWRkX2RyYW0oJnNkcmFtX2Rldik7CisJYXJtbGludXhfc2V0X2Jvb3RwYXJhbXMo KHZvaWQgKikweDgwMDAwMTAwKTsKKwlhcm1saW51eF9zZXRfYXJjaGl0ZWN0dXJlKE1BQ0hfVFlQ RV9FVUtSRUFfQ1BVSU1YMzUpOworCisJcmV0dXJuIDA7Cit9CisKK2RldmljZV9pbml0Y2FsbChl dWtyZWFfY3B1aW14MzVfZGV2aWNlc19pbml0KTsKKworc3RhdGljIGludCBldWtyZWFfY3B1aW14 MzVfZW5hYmxlX2Rpc3BsYXkodm9pZCkKK3sKKwlncGlvX2RpcmVjdGlvbl9vdXRwdXQoMSwgMSk7 CisJZ3Bpb19kaXJlY3Rpb25fb3V0cHV0KDAsIDApOworCXJldHVybiAwOworfQorCitsYXRlX2lu aXRjYWxsKGV1a3JlYV9jcHVpbXgzNV9lbmFibGVfZGlzcGxheSk7CisKK3N0YXRpYyBzdHJ1Y3Qg ZGV2aWNlX2QgZXVrcmVhX2NwdWlteDM1X3NlcmlhbF9kZXZpY2UgPSB7CisJLm5hbWUJCT0gImlt eF9zZXJpYWwiLAorCS5tYXBfYmFzZQk9IElNWF9VQVJUMV9CQVNFLAorCS5zaXplCQk9IDQwOTYs Cit9OworCitzdGF0aWMgc3RydWN0IHBhZF9kZXNjIGV1a3JlYV9jcHVpbXgzNV9wYWRzW10gPSB7 CisJTVgzNV9QQURfRkVDX1RYX0NMS19fRkVDX1RYX0NMSywKKwlNWDM1X1BBRF9GRUNfUlhfQ0xL X19GRUNfUlhfQ0xLLAorCU1YMzVfUEFEX0ZFQ19SWF9EVl9fRkVDX1JYX0RWLAorCU1YMzVfUEFE X0ZFQ19DT0xfX0ZFQ19DT0wsCisJTVgzNV9QQURfRkVDX1JEQVRBMF9fRkVDX1JEQVRBXzAsCisJ TVgzNV9QQURfRkVDX1REQVRBMF9fRkVDX1REQVRBXzAsCisJTVgzNV9QQURfRkVDX1RYX0VOX19G RUNfVFhfRU4sCisJTVgzNV9QQURfRkVDX01EQ19fRkVDX01EQywKKwlNWDM1X1BBRF9GRUNfTURJ T19fRkVDX01ESU8sCisJTVgzNV9QQURfRkVDX1RYX0VSUl9fRkVDX1RYX0VSUiwKKwlNWDM1X1BB RF9GRUNfUlhfRVJSX19GRUNfUlhfRVJSLAorCU1YMzVfUEFEX0ZFQ19DUlNfX0ZFQ19DUlMsCisJ TVgzNV9QQURfRkVDX1JEQVRBMF9fRkVDX1JEQVRBXzAsCisJTVgzNV9QQURfRkVDX1REQVRBMF9f RkVDX1REQVRBXzAsCisJTVgzNV9QQURfRkVDX1JEQVRBMV9fRkVDX1JEQVRBXzEsCisJTVgzNV9Q QURfRkVDX1REQVRBMV9fRkVDX1REQVRBXzEsCisJTVgzNV9QQURfRkVDX1JEQVRBMl9fRkVDX1JE QVRBXzIsCisJTVgzNV9QQURfRkVDX1REQVRBMl9fRkVDX1REQVRBXzIsCisJTVgzNV9QQURfRkVD X1JEQVRBM19fRkVDX1JEQVRBXzMsCisJTVgzNV9QQURfRkVDX1REQVRBM19fRkVDX1REQVRBXzMs CisKKwlNWDM1X1BBRF9SWEQxX19VQVJUMV9SWERfTVVYLAorCU1YMzVfUEFEX1RYRDFfX1VBUlQx X1RYRF9NVVgsCisJTVgzNV9QQURfUlRTMV9fVUFSVDFfUlRTLAorCU1YMzVfUEFEX0NUUzFfX1VB UlQxX0NUUywKK307CisKK3N0YXRpYyBpbnQgZXVrcmVhX2NwdWlteDM1X2NvbnNvbGVfaW5pdCh2 b2lkKQoreworCW14Y19pb211eF92M19zZXR1cF9tdWx0aXBsZV9wYWRzKGV1a3JlYV9jcHVpbXgz NV9wYWRzLAorCQlBUlJBWV9TSVpFKGV1a3JlYV9jcHVpbXgzNV9wYWRzKSk7CisKKwlyZWdpc3Rl cl9kZXZpY2UoJmV1a3JlYV9jcHVpbXgzNV9zZXJpYWxfZGV2aWNlKTsKKwlyZXR1cm4gMDsKK30K KworY29uc29sZV9pbml0Y2FsbChldWtyZWFfY3B1aW14MzVfY29uc29sZV9pbml0KTsKKworc3Rh dGljIGludCBldWtyZWFfY3B1aW14MzVfY29yZV9pbml0KHZvaWQpCit7CisJdTMyIHJlZzsKKwor CS8qIGVuYWJsZSBjbG9jayBmb3IgSTJDMSBhbmQgRkVDICovCisJcmVnID0gcmVhZGwoSU1YX0ND TV9CQVNFICsgQ0NNX0NHUjEpOworCXJlZyB8PSAweDMgPDwgQ0NNX0NHUjFfRkVDX1NISUZUOwor CXJlZyA9IHdyaXRlbChyZWcsIElNWF9DQ01fQkFTRSArIENDTV9DR1IxKTsKKworCS8qIEFJUFMg c2V0dXAgLSBPbmx5IHNldHVwIE1QUk9UeCByZWdpc3RlcnMuIFRoZSBQQUNSIGRlZmF1bHQgdmFs dWVzIGFyZSBnb29kLiovCisJLyoKKwkgKiBTZXQgYWxsIE1QUk9UeCB0byBiZSBub24tYnVmZmVy YWJsZSwgdHJ1c3RlZCBmb3IgUi9XLAorCSAqIG5vdCBmb3JjZWQgdG8gdXNlci1tb2RlLgorCSAq LworCXdyaXRlbCgweDc3Nzc3Nzc3LCBJTVhfQUlQUzFfQkFTRSk7CisJd3JpdGVsKDB4Nzc3Nzc3 NzcsIElNWF9BSVBTMV9CQVNFICsgMHg0KTsKKwl3cml0ZWwoMHg3Nzc3Nzc3NywgSU1YX0FJUFMy X0JBU0UpOworCXdyaXRlbCgweDc3Nzc3Nzc3LCBJTVhfQUlQUzJfQkFTRSArIDB4NCk7CisKKwkv KgorCSAqIENsZWFyIHRoZSBvbiBhbmQgb2ZmIHBlcmlwaGVyYWwgbW9kdWxlcyBTdXBlcnZpc29y IFByb3RlY3QgYml0CisJICogZm9yIFNETUEgdG8gYWNjZXNzIHRoZW0uIERpZCBub3QgY2hhbmdl IHRoZSBBSVBTIGNvbnRyb2wgcmVnaXN0ZXJzCisJICogKG9mZnNldCAweDIwKSBhY2Nlc3MgdHlw ZQorCSAqLworCXdyaXRlbCgweDAsIElNWF9BSVBTMV9CQVNFICsgMHg0MCk7CisJd3JpdGVsKDB4 MCwgSU1YX0FJUFMxX0JBU0UgKyAweDQ0KTsKKwl3cml0ZWwoMHgwLCBJTVhfQUlQUzFfQkFTRSAr IDB4NDgpOworCXdyaXRlbCgweDAsIElNWF9BSVBTMV9CQVNFICsgMHg0Qyk7CisJcmVnID0gcmVh ZGwoSU1YX0FJUFMxX0JBU0UgKyAweDUwKTsKKwlyZWcgJj0gMHgwMEZGRkZGRjsKKwl3cml0ZWwo cmVnLCBJTVhfQUlQUzFfQkFTRSArIDB4NTApOworCisJd3JpdGVsKDB4MCwgSU1YX0FJUFMyX0JB U0UgKyAweDQwKTsKKwl3cml0ZWwoMHgwLCBJTVhfQUlQUzJfQkFTRSArIDB4NDQpOworCXdyaXRl bCgweDAsIElNWF9BSVBTMl9CQVNFICsgMHg0OCk7CisJd3JpdGVsKDB4MCwgSU1YX0FJUFMyX0JB U0UgKyAweDRDKTsKKwlyZWcgPSByZWFkbChJTVhfQUlQUzJfQkFTRSArIDB4NTApOworCXJlZyAm PSAweDAwRkZGRkZGOworCXdyaXRlbChyZWcsIElNWF9BSVBTMl9CQVNFICsgMHg1MCk7CisKKwkv KiBNQVggKE11bHRpLUxheWVyIEFIQiBDcm9zc2JhciBTd2l0Y2gpIHNldHVwICovCisKKwkvKiBN UFIgLSBwcmlvcml0eSBpcyBNNCA+IE0yID4gTTMgPiBNNSA+IE0wID4gTTEgKi8KKyNkZWZpbmUg TUFYX1BBUkFNMSAweDAwMzAyMTU0CisJd3JpdGVsKE1BWF9QQVJBTTEsIElNWF9NQVhfQkFTRSAr IDB4MDAwKTsgLyogZm9yIFMwICovCisJd3JpdGVsKE1BWF9QQVJBTTEsIElNWF9NQVhfQkFTRSAr IDB4MTAwKTsgLyogZm9yIFMxICovCisJd3JpdGVsKE1BWF9QQVJBTTEsIElNWF9NQVhfQkFTRSAr IDB4MjAwKTsgLyogZm9yIFMyICovCisJd3JpdGVsKE1BWF9QQVJBTTEsIElNWF9NQVhfQkFTRSAr IDB4MzAwKTsgLyogZm9yIFMzICovCisJd3JpdGVsKE1BWF9QQVJBTTEsIElNWF9NQVhfQkFTRSAr IDB4NDAwKTsgLyogZm9yIFM0ICovCisKKwkvKiBTR1BDUiAtIGFsd2F5cyBwYXJrIG9uIGxhc3Qg bWFzdGVyICovCisJd3JpdGVsKDB4MTAsIElNWF9NQVhfQkFTRSArIDB4MTApOwkvKiBmb3IgUzAg Ki8KKwl3cml0ZWwoMHgxMCwgSU1YX01BWF9CQVNFICsgMHgxMTApOwkvKiBmb3IgUzEgKi8KKwl3 cml0ZWwoMHgxMCwgSU1YX01BWF9CQVNFICsgMHgyMTApOwkvKiBmb3IgUzIgKi8KKwl3cml0ZWwo MHgxMCwgSU1YX01BWF9CQVNFICsgMHgzMTApOwkvKiBmb3IgUzMgKi8KKwl3cml0ZWwoMHgxMCwg SU1YX01BWF9CQVNFICsgMHg0MTApOwkvKiBmb3IgUzQgKi8KKworCS8qIE1HUENSIC0gcmVzdG9y ZSBkZWZhdWx0IHZhbHVlcyAqLworCXdyaXRlbCgweDAsIElNWF9NQVhfQkFTRSArIDB4ODAwKTsJ LyogZm9yIE0wICovCisJd3JpdGVsKDB4MCwgSU1YX01BWF9CQVNFICsgMHg5MDApOwkvKiBmb3Ig TTEgKi8KKwl3cml0ZWwoMHgwLCBJTVhfTUFYX0JBU0UgKyAweGEwMCk7CS8qIGZvciBNMiAqLwor CXdyaXRlbCgweDAsIElNWF9NQVhfQkFTRSArIDB4YjAwKTsJLyogZm9yIE0zICovCisJd3JpdGVs KDB4MCwgSU1YX01BWF9CQVNFICsgMHhjMDApOwkvKiBmb3IgTTQgKi8KKwl3cml0ZWwoMHgwLCBJ TVhfTUFYX0JBU0UgKyAweGQwMCk7CS8qIGZvciBNNSAqLworCisJLyoKKwkgKiBNM0lGIENvbnRy b2wgUmVnaXN0ZXIgKE0zSUZDVEwpCisJICogTVJSUFswXSA9IEwyQ0MwIG5vdCBvbiBwcmlvcml0 eSBsaXN0ICgwIDw8IDApCT0gMHgwMDAwMDAwMAorCSAqIE1SUlBbMV0gPSBNQVgxIG5vdCBvbiBw cmlvcml0eSBsaXN0ICgwIDw8IDApCQk9IDB4MDAwMDAwMDAKKwkgKiBNUlJQWzJdID0gTDJDQzEg bm90IG9uIHByaW9yaXR5IGxpc3QgKDAgPDwgMCkJPSAweDAwMDAwMDAwCisJICogTVJSUFszXSA9 IFVTQiAgbm90IG9uIHByaW9yaXR5IGxpc3QgKDAgPDwgMCkJCT0gMHgwMDAwMDAwMAorCSAqIE1S UlBbNF0gPSBTRE1BIG5vdCBvbiBwcmlvcml0eSBsaXN0ICgwIDw8IDApCQk9IDB4MDAwMDAwMDAK KwkgKiBNUlJQWzVdID0gR1BVIG5vdCBvbiBwcmlvcml0eSBsaXN0ICgwIDw8IDApCQk9IDB4MDAw MDAwMDAKKwkgKiBNUlJQWzZdID0gSVBVMSBvbiBwcmlvcml0eSBsaXN0ICgxIDw8IDYpCQk9IDB4 MDAwMDAwNDAKKwkgKiBNUlJQWzddID0gSVBVMiBub3Qgb24gcHJpb3JpdHkgbGlzdCAoMCA8PCAw KQkJPSAweDAwMDAwMDAwCisJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0tCisJICogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDAKKwkgKi8KKwl3cml0 ZWwoMHg0MCwgSU1YX00zSUZfQkFTRSk7CisKKwlyZXR1cm4gMDsKK30KKworY29yZV9pbml0Y2Fs bChldWtyZWFfY3B1aW14MzVfY29yZV9pbml0KTsKKworI2RlZmluZSBNUENUTF9QQVJBTV8zOTkg ICAgIChJTVhfUExMX1BEKDApIHwgSU1YX1BMTF9NRkQoMTUpIHwgSU1YX1BMTF9NRkkoOCkgfCBJ TVhfUExMX01GTig1KSkKKyNkZWZpbmUgTVBDVExfUEFSQU1fNTMyICAgICAoKDEgPDwgMzEpIHwg SU1YX1BMTF9QRCgwKSB8IElNWF9QTExfTUZEKDExKSB8IElNWF9QTExfTUZJKDExKSB8IElNWF9Q TExfTUZOKDEpKQorCitzdGF0aWMgaW50IGRvX2NwdWZyZXEoc3RydWN0IGNvbW1hbmQgKmNtZHRw LCBpbnQgYXJnYywgY2hhciAqYXJndltdKQoreworCXVuc2lnbmVkIGxvbmcgZnJlcTsKKworCWlm IChhcmdjICE9IDIpCisJCXJldHVybiBDT01NQU5EX0VSUk9SX1VTQUdFOworCisJZnJlcSA9IHNp bXBsZV9zdHJ0b3VsKGFyZ3ZbMV0sIE5VTEwsIDApOworCisJc3dpdGNoIChmcmVxKSB7CisJY2Fz ZSAzOTk6CisJCXdyaXRlbChNUENUTF9QQVJBTV8zOTksIElNWF9DQ01fQkFTRSArIENDTV9NUENU TCk7CisJCWJyZWFrOworCWNhc2UgNTMyOgorCQl3cml0ZWwoTVBDVExfUEFSQU1fNTMyLCBJTVhf Q0NNX0JBU0UgKyBDQ01fTVBDVEwpOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1cm4gQ09N TUFORF9FUlJPUl9VU0FHRTsKKwl9CisKKwlwcmludGYoIlN3aXRjaGVkIENQVSBmcmVxdWVuY3kg dG8gJWRNSHpcbiIsIGZyZXEpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBfX21h eWJlX3VudXNlZCBjaGFyIGNtZF9jcHVmcmVxX2hlbHBbXSA9CisiVXNhZ2U6IGNwdWZyZXEgMzk5 fDUzMlxuIgorIlxuIgorIlNldCBDUFUgZnJlcXVlbmN5IHRvIDxmcmVxPiBNSHpcbiI7CisKK0JB UkVCT1hfQ01EX1NUQVJUKGNwdWZyZXEpCisJLmNtZCAgICAgICAgICAgID0gZG9fY3B1ZnJlcSwK KwkudXNhZ2UgICAgICAgICAgPSAiYWRqdXN0IENQVSBmcmVxdWVuY3kiLAorCUJBUkVCT1hfQ01E X0hFTFAoY21kX2NwdWZyZXFfaGVscCkKK0JBUkVCT1hfQ01EX0VORApkaWZmIC0tZ2l0IGEvYm9h cmQvZXVrcmVhX2NwdWlteDM1L2V1a3JlYV9jcHVpbXgzNS5kb3ggYi9ib2FyZC9ldWtyZWFfY3B1 aW14MzUvZXVrcmVhX2NwdWlteDM1LmRveApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi5jYmRmNjlkCi0tLSAvZGV2L251bGwKKysrIGIvYm9hcmQvZXVrcmVhX2NwdWlteDM1L2V1 a3JlYV9jcHVpbXgzNS5kb3gKQEAgLTAsMCArMSw0IEBACisvKiogQHBhZ2UgZXVrcmVhX2NwdWlt eDM1IEV1a3JlYSdzIENQVUlNWDM1CisKKworKi8KZGlmZiAtLWdpdCBhL2JvYXJkL2V1a3JlYV9j cHVpbXgzNS9mbGFzaF9oZWFkZXIuYyBiL2JvYXJkL2V1a3JlYV9jcHVpbXgzNS9mbGFzaF9oZWFk ZXIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMGNjZjVjCi0tLSAvZGV2 L251bGwKKysrIGIvYm9hcmQvZXVrcmVhX2NwdWlteDM1L2ZsYXNoX2hlYWRlci5jCkBAIC0wLDAg KzEsNjAgQEAKKyNpbmNsdWRlIDxjb21tb24uaD4KKyNpbmNsdWRlIDxtYWNoL2lteC1mbGFzaC1o ZWFkZXIuaD4KKworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX3N0ZXh0OworCit2b2lkIF9fbmFrZWQg X19mbGFzaF9oZWFkZXJfc3RhcnQgZ28odm9pZCkKK3sKKwlfX2FzbV9fIF9fdm9sYXRpbGVfXygi YiBleGNlcHRpb25fdmVjdG9yc1xuIik7Cit9CisKK3N0cnVjdCBpbXhfZGNkX2VudHJ5IF9fZGNk X2VudHJ5XzB4NDAwIGRjZF9lbnRyeVtdID0geworCXsgLnB0cl90eXBlID0gNCwgLmFkZHIgPSAw eEI4MDAxMDEwLCAudmFsID0gMHgwMDAwMDAwNCwgfSwKKwl7IC5wdHJfdHlwZSA9IDQsIC5hZGRy ID0gMHhCODAwMTAxMCwgLnZhbCA9IDB4MDAwMDAwMEMsIH0sCisJeyAucHRyX3R5cGUgPSA0LCAu YWRkciA9IDB4QjgwMDEwMDQsIC52YWwgPSAweDAwN2ZmYzNmLCB9LAorCXsgLnB0cl90eXBlID0g NCwgLmFkZHIgPSAweEI4MDAxMDAwLCAudmFsID0gMHg5MjIyMDAwMCwgfSwKKwl7IC5wdHJfdHlw ZSA9IDEsIC5hZGRyID0gMHg4MDAwMDQwMCwgLnZhbCA9IDB4MTIzNDU2NzgsIH0sCisJeyAucHRy X3R5cGUgPSA0LCAuYWRkciA9IDB4QjgwMDEwMDAsIC52YWwgPSAweEEyMjIwMDAwLCB9LAorCXsg LnB0cl90eXBlID0gMSwgLmFkZHIgPSAweDgwMDAwMDAwLCAudmFsID0gMHg4NzY1NDMyMSwgfSwK Kwl7IC5wdHJfdHlwZSA9IDEsIC5hZGRyID0gMHg4MDAwMDAwMCwgLnZhbCA9IDB4ODc2NTQzMjEs IH0sCisJeyAucHRyX3R5cGUgPSA0LCAuYWRkciA9IDB4QjgwMDEwMDAsIC52YWwgPSAweEIyMjIw MDAwLCB9LAorCXsgLnB0cl90eXBlID0gMSwgLmFkZHIgPSAweDgwMDAwMDMzLCAudmFsID0gMHhk YSwgfSwKKwl7IC5wdHJfdHlwZSA9IDEsIC5hZGRyID0gMHg4MjAwMDAwMCwgLnZhbCA9IDB4ZGEs IH0sCisJeyAucHRyX3R5cGUgPSA0LCAuYWRkciA9IDB4QjgwMDEwMDQsIC52YWwgPSAweDAwN2Zm YzJmLCB9LAorCXsgLnB0cl90eXBlID0gNCwgLmFkZHIgPSAweEI4MDAxMDA0LCAudmFsID0gMHgw MDdmZmMyZiwgfSwKKwl7IC5wdHJfdHlwZSA9IDQsIC5hZGRyID0gMHhCODAwMTAwNCwgLnZhbCA9 IDB4MDA3ZmZjMmYsIH0sCisJeyAucHRyX3R5cGUgPSA0LCAuYWRkciA9IDB4QjgwMDEwMDQsIC52 YWwgPSAweDAwN2ZmYzJmLCB9LAorCXsgLnB0cl90eXBlID0gNCwgLmFkZHIgPSAweEI4MDAxMDA0 LCAudmFsID0gMHgwMDdmZmMyZiwgfSwKKwl7IC5wdHJfdHlwZSA9IDQsIC5hZGRyID0gMHhCODAw MTAwNCwgLnZhbCA9IDB4MDA3ZmZjMmYsIH0sCisJeyAucHRyX3R5cGUgPSA0LCAuYWRkciA9IDB4 QjgwMDEwMDQsIC52YWwgPSAweDAwN2ZmYzJmLCB9LAorCXsgLnB0cl90eXBlID0gNCwgLmFkZHIg PSAweEI4MDAxMDA0LCAudmFsID0gMHgwMDdmZmMyZiwgfSwKKwl7IC5wdHJfdHlwZSA9IDQsIC5h ZGRyID0gMHhCODAwMTAwNCwgLnZhbCA9IDB4MDA3ZmZjMmYsIH0sCisJeyAucHRyX3R5cGUgPSA0 LCAuYWRkciA9IDB4QjgwMDEwMDQsIC52YWwgPSAweDAwN2ZmYzJmLCB9LAorCXsgLnB0cl90eXBl ID0gNCwgLmFkZHIgPSAweEI4MDAxMDA0LCAudmFsID0gMHgwMDdmZmMyZiwgfSwKKwl7IC5wdHJf dHlwZSA9IDQsIC5hZGRyID0gMHhCODAwMTAwNCwgLnZhbCA9IDB4MDA3ZmZjMmYsIH0sCisJeyAu cHRyX3R5cGUgPSA0LCAuYWRkciA9IDB4QjgwMDEwMDQsIC52YWwgPSAweDAwN2ZmYzJmLCB9LAor CXsgLnB0cl90eXBlID0gNCwgLmFkZHIgPSAweEI4MDAxMDAwLCAudmFsID0gMHg4MjIyMDA4MCwg fSwKKwl7IC5wdHJfdHlwZSA9IDQsIC5hZGRyID0gMHhCODAwMTAwMCwgLnZhbCA9IDB4ODIyMjgw ODAsIH0sCisJeyAucHRyX3R5cGUgPSA0LCAuYWRkciA9IDB4QjgwMDEwMjAsIC52YWwgPSAweDgw MDAwMDI4LCB9LAorCXsgLnB0cl90eXBlID0gNCwgLmFkZHIgPSAweEI4MDAxMDI0LCAudmFsID0g MHg4MDAwMDAyOCwgfSwKKwl7IC5wdHJfdHlwZSA9IDQsIC5hZGRyID0gMHhCODAwMTAyOCwgLnZh bCA9IDB4ODAwMDAwMjgsIH0sCisJeyAucHRyX3R5cGUgPSA0LCAuYWRkciA9IDB4QjgwMDEwMmMs IC52YWwgPSAweDgwMDAwMDI4LCB9LAorCXsgLnB0cl90eXBlID0gNCwgLmFkZHIgPSAweEI4MDAx MDMwLCAudmFsID0gMHg4MDAwMDAyOCwgfSwKK307CisKKyNkZWZpbmUgQVBQX0RFU1QJMHg4MDAw MDAwMAorCitzdHJ1Y3QgaW14X2ZsYXNoX2hlYWRlciBfX2ZsYXNoX2hlYWRlcl8weDQwMCBmbGFz aF9oZWFkZXIgPSB7CisJLmFwcF9jb2RlX2p1bXBfdmVjdG9yCT0gQVBQX0RFU1QgKyAweDEwMDAs CisJLmFwcF9jb2RlX2Jhcmtlcgk9IEFQUF9DT0RFX0JBUktFUiwKKwkuYXBwX2NvZGVfY3NmCQk9 IDAsCisJLmRjZF9wdHJfcHRyCQk9IEFQUF9ERVNUICsgMHg0MDAgKyBvZmZzZXRvZihzdHJ1Y3Qg aW14X2ZsYXNoX2hlYWRlciwgZGNkKSwKKwkuc3VwZXJfcm9vdF9rZXkJCT0gMCwKKwkuZGNkCQkJ PSBBUFBfREVTVCArIDB4NDAwICsgb2Zmc2V0b2Yoc3RydWN0IGlteF9mbGFzaF9oZWFkZXIsIGRj ZF9iYXJrZXIpLAorCS5hcHBfZGVzdAkJPSBBUFBfREVTVCwKKwkuZGNkX2JhcmtlcgkJPSBEQ0Rf QkFSS0VSLAorCS5kY2RfYmxvY2tfbGVuCQk9IHNpemVvZiAoZGNkX2VudHJ5KSwKK307CisKK3Vu c2lnbmVkIGxvbmcgX19pbWFnZV9sZW5fMHg0MDAgYmFyZWJveF9sZW4gPSAweDQwMDAwOworCmRp ZmYgLS1naXQgYS9ib2FyZC9ldWtyZWFfY3B1aW14MzUvbG93bGV2ZWwuYyBiL2JvYXJkL2V1a3Jl YV9jcHVpbXgzNS9sb3dsZXZlbC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjQ0ZjNjZjAKLS0tIC9kZXYvbnVsbAorKysgYi9ib2FyZC9ldWtyZWFfY3B1aW14MzUvbG93bGV2 ZWwuYwpAQCAtMCwwICsxLDIxOCBAQAorLyoKKyAqCisgKiAoYykgMjAwNyBQZW5ndXRyb25peCwg U2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgorICoKKyAqIFNlZSBmaWxlIENS RURJVFMgZm9yIGxpc3Qgb2YgcGVvcGxlIHdobyBjb250cmlidXRlZCB0byB0aGlzCisgKiBwcm9q ZWN0LgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgorICogdGhlIExpY2Vuc2UsIG9y IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFt IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5v dCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRl bXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sCisgKiBNQSAwMjExMS0xMzA3IFVTQQorICov CisjaW5jbHVkZSA8Y29tbW9uLmg+CisjaW5jbHVkZSA8aW5pdC5oPgorI2luY2x1ZGUgPG1hY2gv aW14LXJlZ3MuaD4KKyNpbmNsdWRlIDxtYWNoL2lteC1wbGwuaD4KKyNpbmNsdWRlIDxtYWNoL2Vz ZGN0bC5oPgorI2luY2x1ZGUgPGFzbS9jYWNoZS1sMngwLmg+CisjaW5jbHVkZSA8YXNtL2lvLmg+ CisjaW5jbHVkZSA8bWFjaC9pbXgtbmFuZC5oPgorI2luY2x1ZGUgPGFzbS9iYXJlYm94LWFybS5o PgorI2luY2x1ZGUgPGFzbS1nZW5lcmljL21lbW9yeV9sYXlvdXQuaD4KKyNpbmNsdWRlIDxhc20v c3lzdGVtLmg+CisKKy8qIEFzc3VtaW5nIDI0TUh6IGlucHV0IGNsb2NrICovCisjZGVmaW5lIE1Q Q1RMX1BBUkFNXzM5OSAgICAgKElNWF9QTExfUEQoMCkgfCBJTVhfUExMX01GRCgxNSkgfCBJTVhf UExMX01GSSg4KSB8IElNWF9QTExfTUZOKDUpKQorI2RlZmluZSBNUENUTF9QQVJBTV81MzIgICAg ICgoMSA8PCAzMSkgfCBJTVhfUExMX1BEKDApIHwgSU1YX1BMTF9NRkQoMTEpIHwgSU1YX1BMTF9N RkkoMTEpIHwgSU1YX1BMTF9NRk4oMSkpCisjZGVmaW5lIFBQQ1RMX1BBUkFNXzMwMCAgICAgKElN WF9QTExfUEQoMCkgfCBJTVhfUExMX01GRCgzKSB8IElNWF9QTExfTUZJKDYpIHwgSU1YX1BMTF9N Rk4oMSkpCisKKyNpZmRlZiBDT05GSUdfTkFORF9JTVhfQk9PVAorc3RhdGljIHZvaWQgX19iYXJl X2luaXQgX19uYWtlZCBpbnNkcmFtKHZvaWQpCit7CisJdWludDMyX3QgcjsKKworCS8qIFNwZWVk IHVwIE5BTkQgY29udHJvbGxlciBieSBhZGp1c3RpbmcgdGhlIE5GQyBkaXZpZGVyICovCisJciA9 IHJlYWRsKElNWF9DQ01fQkFTRSArIENDTV9QRFI0KTsKKwlyICY9IH4oMHhmIDw8IDI4KTsKKwly IHw9IDB4MSA8PCAyODsKKwl3cml0ZWwociwgSU1YX0NDTV9CQVNFICsgQ0NNX1BEUjQpOworCisJ Lyogc2V0dXAgYSBzdGFjayB0byBiZSBhYmxlIHRvIGNhbGwgaW14X25hbmRfbG9hZF9pbWFnZSgp ICovCisJciA9IFNUQUNLX0JBU0UgKyBTVEFDS19TSVpFIC0gMTI7CisJX19hc21fXyBfX3ZvbGF0 aWxlX18oIm1vdiBzcCwgJTAiIDogOiAiciIocikpOworCisJaW14X25hbmRfbG9hZF9pbWFnZSgo dm9pZCAqKVRFWFRfQkFTRSwgMjU2ICogMTAyNCk7CisKKwlib2FyZF9pbml0X2xvd2xldmVsX3Jl dHVybigpOworfQorI2VuZGlmCisKK3ZvaWQgX19iYXJlX2luaXQgX19uYWtlZCBib2FyZF9pbml0 X2xvd2xldmVsKHZvaWQpCit7CisJdWludDMyX3QgciwgczsKKwl1bnNpZ25lZCBsb25nIGNjbV9i YXNlID0gSU1YX0NDTV9CQVNFOworCXVuc2lnbmVkIGxvbmcgaW9tdXhjX2Jhc2UgPSBJTVhfSU9N VVhDX0JBU0U7CisjaWZkZWYgQ09ORklHX05BTkRfSU1YX0JPT1QKKwl1bnNpZ25lZCBpbnQgKnRy ZywgKnNyYzsKKwlpbnQgaTsKKyNlbmRpZgorCisJciA9IGdldF9jcigpOworCXIgfD0gQ1JfWjsg LyogRmxvdyBwcmVkaWN0aW9uIChaKSAqLworCXIgfD0gQ1JfVTsgLyogdW5hbGlnbmVkIGFjY2Vz c2VzICAqLworCXIgfD0gQ1JfRkk7IC8qIExvdyBJbnQgTGF0ZW5jeSAgICAgKi8KKworCV9fYXNt X18gX192b2xhdGlsZV9fKCJtcmMgcDE1LCAwLCAlMCwgYzEsIGMwLCAxIjoiPXIiKHMpKTsKKwlz IHw9IDB4NzsKKwlfX2FzbV9fIF9fdm9sYXRpbGVfXygibWNyIHAxNSwgMCwgJTAsIGMxLCBjMCwg MSIgOiA6ICJyIihzKSk7CisKKwlzZXRfY3Iocik7CisKKwlyID0gMDsKKwlfX2FzbV9fIF9fdm9s YXRpbGVfXygibWNyIHAxNSwgMCwgJTAsIGMxNSwgYzIsIDQiIDogOiAiciIocikpOworCisJLyoK KwkgKiBCcmFuY2ggcHJlZGljaXRpb24gaXMgbm93IGVuYWJsZWQuICBGbHVzaCB0aGUgQlRBQyB0 byBlbnN1cmUgYSB2YWxpZAorCSAqIHN0YXJ0aW5nIHBvaW50LiAgRG9uJ3QgZmx1c2ggQlRBQyB3 aGlsZSBpdCBpcyBkaXNhYmxlZCB0byBhdm9pZAorCSAqIEFSTTExMzYgZXJyYXR1bSA0MDgwMjMu CisJICovCisJX19hc21fXyBfX3ZvbGF0aWxlX18oIm1jciBwMTUsIDAsICUwLCBjNywgYzUsIDYi IDogOiAiciIocikpOworCisJLyogaW52YWxpZGF0ZSBJIGNhY2hlIGFuZCBEIGNhY2hlICovCisJ X19hc21fXyBfX3ZvbGF0aWxlX18oIm1jciBwMTUsIDAsICUwLCBjNywgYzcsIDAiIDogOiAiciIo cikpOworCisJLyogaW52YWxpZGF0ZSBUTEJzICovCisJX19hc21fXyBfX3ZvbGF0aWxlX18oIm1j ciBwMTUsIDAsICUwLCBjOCwgYzcsIDAiIDogOiAiciIocikpOworCisJLyogRHJhaW4gdGhlIHdy aXRlIGJ1ZmZlciAqLworCV9fYXNtX18gX192b2xhdGlsZV9fKCJtY3IgcDE1LCAwLCAlMCwgYzcs IGMxMCwgNCIgOiA6ICJyIihyKSk7CisKKwkvKiBBbHNvIHNldHVwIHRoZSBQZXJpcGhlcmFsIFBv cnQgUmVtYXAgcmVnaXN0ZXIgaW5zaWRlIHRoZSBjb3JlICovCisJciA9IDB4NDAwMDAwMTU7IC8q IHN0YXJ0IGZyb20gQUlQUyAyR0IgcmVnaW9uICovCisJX19hc21fXyBfX3ZvbGF0aWxlX18oIm1j ciBwMTUsIDAsICUwLCBjMTUsIGMyLCA0IiA6IDogInIiKHIpKTsKKworCS8qCisJICogRW5kIG9m IEFSTTExMzYgaW5pdAorCSAqLworCisJd3JpdGVsKDB4MDAzRjQyMDgsIGNjbV9iYXNlICsgQ0NN X0NDTVIpOworCisJLyogU2V0IE1QTEwgLCBhcm0gY2xvY2sgYW5kIGFoYiBjbG9jayovCisJd3Jp dGVsKE1QQ1RMX1BBUkFNXzUzMiwgY2NtX2Jhc2UgKyBDQ01fTVBDVEwpOworCisJd3JpdGVsKFBQ Q1RMX1BBUkFNXzMwMCwgY2NtX2Jhc2UgKyBDQ01fUFBDVEwpOworCXdyaXRlbCgweDAwMDAxMDAw LCBjY21fYmFzZSArIENDTV9QRFIwKTsKKworCXIgPSByZWFkbChjY21fYmFzZSArIENDTV9DR1Iw KTsKKwlyIHw9IDB4MDAzMDAwMDA7CisJd3JpdGVsKHIsIGNjbV9iYXNlICsgQ0NNX0NHUjApOwor CisJciA9IHJlYWRsKGNjbV9iYXNlICsgQ0NNX0NHUjEpOworCXIgfD0gMHgwMDAwMEMwMDsKKwly IHw9IDB4MDAwMDAwMDM7CisJd3JpdGVsKHIsIGNjbV9iYXNlICsgQ0NNX0NHUjEpOworCisJciA9 IHJlYWRsKElNWF9MMkNDX0JBU0UgKyBMMlgwX0FVWF9DVFJMKTsKKwlyIHw9IDB4MTAwMDsKKwl3 cml0ZWwociwgSU1YX0wyQ0NfQkFTRSArIEwyWDBfQVVYX0NUUkwpOworCisJLyogU2tpcCBTRFJB TSBpbml0aWFsaXphdGlvbiBpZiB3ZSBydW4gZnJvbSBSQU0gKi8KKwlyID0gZ2V0X3BjKCk7CisJ aWYgKHIgPiAweDgwMDAwMDAwICYmIHIgPCAweDkwMDAwMDAwKQorCQlib2FyZF9pbml0X2xvd2xl dmVsX3JldHVybigpOworCisJLyogU2V0IEREUiBUeXBlIHRvIFNEUkFNLCBkcml2ZSBzdHJlbmd0 aCB3b3JrYXJvdW5kCSoKKwkgKiAweDAwMDAwMDAwCU1ERFIJCQkJCSoKKwkgKiAweDAwMDAwODAw CTMsM1YgU0RSQU0JCQkJKi8KKworCXIgPSAweDAwMDAwODAwOworCXdyaXRlbChyLCBpb211eGNf YmFzZSArIDB4Nzk0KTsKKwl3cml0ZWwociwgaW9tdXhjX2Jhc2UgKyAweDc5OCk7CisJd3JpdGVs KHIsIGlvbXV4Y19iYXNlICsgMHg3OWMpOworCXdyaXRlbChyLCBpb211eGNfYmFzZSArIDB4N2Ew KTsKKwl3cml0ZWwociwgaW9tdXhjX2Jhc2UgKyAweDdhNCk7CisKKwkvKiBNRERSIGluaXQsIGVu YWJsZSBtRERSKi8KKwl3cml0ZWwoMHgwMDAwMDMwNCwgRVNETUlTQyk7IC8qIHdhcyAweDAwMDAw MDA0ICovCisKKwkvKiBzZXQgdGltaW5nIHBhcmFtdGVycyAqLworCXdyaXRlbCgweDAwMjU1NDE3 LCBFU0RDRkcwKTsKKwkvKiBzZWxlY3QgUHJlY2hhcmdlLUFsbCBtb2RlICovCisJd3JpdGVsKDB4 OTIyMjAwMDAsIEVTRENUTDApOworCS8qIFByZWNoYXJnZS1BbGwgKi8KKwl3cml0ZWwoMHgxMjM0 NTY3OCwgSU1YX1NEUkFNX0NTMCArIDB4NDAwKTsKKworCS8qIHNlbGVjdCBMb2FkLU1vZGUtUmVn aXN0ZXIgbW9kZSAqLworCXdyaXRlbCgweEI4MDAxMDAwLCBFU0RDVEwwKTsKKwkvKiBMb2FkIHJl ZyBFTVIyICovCisJd3JpdGViKDB4ZGEsIDB4ODQwMDAwMDApOworCS8qIExvYWQgcmVnIEVNUjMg Ki8KKwl3cml0ZWIoMHhkYSwgMHg4NjAwMDAwMCk7CisJLyogTG9hZCByZWcgRU1SMSAtLSBlbmFi bGUgRExMICovCisJd3JpdGViKDB4ZGEsIDB4ODIwMDA0MDApOworCS8qIExvYWQgcmVnIE1SIC0t IHJlc2V0IERMTCAqLworCXdyaXRlYigweGRhLCAweDgwMDAwMzMzKTsKKworCS8qIHNlbGVjdCBQ cmVjaGFyZ2UtQWxsIG1vZGUgKi8KKwl3cml0ZWwoMHg5MjIyMDAwMCwgRVNEQ1RMMCk7CisJLyog UHJlY2hhcmdlLUFsbCAqLworCXdyaXRlbCgweDEyMzQ1Njc4LCBJTVhfU0RSQU1fQ1MwICsgMHg0 MDApOworCisJLyogc2VsZWN0IE1hbnVhbC1SZWZyZXNoIG1vZGUgKi8KKwl3cml0ZWwoMHhBMjIy MDAwMCwgRVNEQ1RMMCk7CisJLyogTWFudWFsLVJlZnJlc2ggMiB0aW1lcyAqLworCXdyaXRlbCgw eDg3NjU0MzIxLCBJTVhfU0RSQU1fQ1MwKTsKKwl3cml0ZWwoMHg4NzY1NDMyMSwgSU1YX1NEUkFN X0NTMCk7CisKKwkvKiBzZWxlY3QgTG9hZC1Nb2RlLVJlZ2lzdGVyIG1vZGUgKi8KKwl3cml0ZWwo MHhCMjIyMDAwMCwgRVNEQ1RMMCk7CisJLyogTG9hZCByZWcgTVIgLS0gQ0wzLCBCTDgsIGVuZCBE TEwgcmVzZXQgKi8KKwl3cml0ZWIoMHhkYSwgMHg4MDAwMDIzMyk7CisJLyogTG9hZCByZWcgRU1S MSAtLSBPQ0QgZGVmYXVsdCAqLworCXdyaXRlYigweGRhLCAweDgyMDAwNzgwKTsKKwkvKiBMb2Fk IHJlZyBFTVIxIC0tIE9DRCBleGl0ICovCisJd3JpdGViKDB4ZGEsIDB4ODIwMDA0MDApOworCisJ Lyogc2VsZWN0IG5vcm1hbC1vcGVyYXRpb24gbW9kZQorCSAqIERTSVozMi1iaXQsIEJMOCwgQ09M MTAtYml0LCBST1cxMy1iaXQKKwkgKiBkaXNhYmxlIFBXVCAmIFBSQ1QKKwkgKiBkaXNhYmxlIEF1 dG8tUmVmcmVzaCAqLworCXdyaXRlbCgweDgyMjIwMDgwLCBFU0RDVEwwKTsKKworCS8qIGVuYWJs ZSBBdXRvLVJlZnJlc2ggKi8KKwl3cml0ZWwoMHg4MjIyODA4MCwgRVNEQ1RMMCk7CisJLyogZW5h YmxlIEF1dG8tUmVmcmVzaCAqLworCXdyaXRlbCgweDAwMDAyMDAwLCBFU0RDVEwxKTsKKworI2lm ZGVmIENPTkZJR19OQU5EX0lNWF9CT09UCisJLyogc2tpcCBOQU5EIGJvb3QgaWYgbm90IHJ1bm5p bmcgZnJvbSBORkMgc3BhY2UgKi8KKwlyID0gZ2V0X3BjKCk7CisJaWYgKHIgPCBJTVhfTkZDX0JB U0UgfHwgciA+IElNWF9ORkNfQkFTRSArIDB4ODAwKQorCQlib2FyZF9pbml0X2xvd2xldmVsX3Jl dHVybigpOworCisJc3JjID0gKHVuc2lnbmVkIGludCAqKUlNWF9ORkNfQkFTRTsKKwl0cmcgPSAo dW5zaWduZWQgaW50ICopVEVYVF9CQVNFOworCisJLyogTW92ZSBvdXJzZWx2ZXMgb3V0IG9mIE5G QyBTUkFNICovCisJZm9yIChpID0gMDsgaSA8IDB4ODAwIC8gc2l6ZW9mKGludCk7IGkrKykKKwkJ KnRyZysrID0gKnNyYysrOworCisJLyogSnVtcCB0byBTRFJBTSAqLworCXIgPSAodW5zaWduZWQg aW50KSZpbnNkcmFtOworCV9fYXNtX18gX192b2xhdGlsZV9fKCJtb3YgcGMsICUwIiA6IDogInIi KHIpKTsKKyNlbHNlCisJYm9hcmRfaW5pdF9sb3dsZXZlbF9yZXR1cm4oKTsKKyNlbmRpZgorfQor Ci0tIAoxLjYuMy4zCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KYmFyZWJveCBtYWlsaW5nIGxpc3QKYmFyZWJveEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0 dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vYmFyZWJveAo=