From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hoegeun Kwon Subject: [PATCH v2 1/2] drm/panel: Add support for S6E3HA2 panel driver on TM2 board Date: Tue, 27 Dec 2016 18:05:47 +0900 Message-ID: <1482829548-20842-2-git-send-email-hoegeun.kwon@samsung.com> References: <1482829548-20842-1-git-send-email-hoegeun.kwon@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-reply-to: <1482829548-20842-1-git-send-email-hoegeun.kwon@samsung.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: robh@kernel.org, thierry.reding@gmail.com, airlied@linux.ie, kgene@kernel.org, krzk@kernel.org Cc: devicetree@vger.kernel.org, linux-samsung-soc@vger.kernel.org, Donghwa Lee , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, cw00.choi@samsung.com, Hyungwon Hwang , Hoegeun Kwon List-Id: devicetree@vger.kernel.org VGhpcyBwYXRjaCBhZGQgc3VwcG9ydCBmb3IgTUlQSS1EU0kgYmFzZWQgUzZFM0hBMiBBTU9MRUQg cGFuZWwKZHJpdmVyLiBUaGlzIHBhbmVsIGhhcyAxNDQweDI1NjAgcmVzb2x1dGlvbiBpbiA1Ljct aW5jaCBwaHlzaWNhbApwYW5lbCBpbiB0aGUgVE0yIGRldmljZS4KClNpZ25lZC1vZmYtYnk6IERv bmdod2EgTGVlIDxkaDA5LmxlZUBzYW1zdW5nLmNvbT4KU2lnbmVkLW9mZi1ieTogSHl1bmd3b24g SHdhbmcgPGh1bWFuLmh3YW5nQHNhbXN1bmcuY29tPgpTaWduZWQtb2ZmLWJ5OiBIb2VnZXVuIEt3 b24gPGhvZWdldW4ua3dvbkBzYW1zdW5nLmNvbT4KLS0tCkNoYW5nZXMgZm9yIFYyOgoKLSBGaXhl ZCB0aGUgc2Ftc3VuZyxzNmUzaGEyLnR4dCBEVCBkb2N1bWVudC4KICAtIEFkZGVkIGFjdGl2ZSBo aWdoIG9yIGxvdyBhZnRlciB0aGUgZGVzY3JpcHRpb24gb2YgdGhlIEdQSU9zLgogIC0gUmVtb3Zl ZCB0aGUgcmVnIGFuZCBhZGRlZCBhIGRlc2NyaXB0aW9uIG9mIHRoZSB2aXJ0dWFsCiAgICBjaGFu bmVsIG51bWJlciBvZiBhIERTSSBwZXJpcGhlcmFsLgoKIC4uLi9iaW5kaW5ncy9kaXNwbGF5L3Bh bmVsL3NhbXN1bmcsczZlM2hhMi50eHQgICAgIHwgIDYyICsrCiBkcml2ZXJzL2dwdS9kcm0vcGFu ZWwvS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArCiBkcml2ZXJzL2dwdS9kcm0v cGFuZWwvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBkcml2ZXJzL2dwdS9k cm0vcGFuZWwvcGFuZWwtc2Ftc3VuZy1zNmUzaGEyLmMgICAgICB8IDc1NiArKysrKysrKysrKysr KysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgODI1IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9z YW1zdW5nLHM2ZTNoYTIudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3Bh bmVsL3BhbmVsLXNhbXN1bmctczZlM2hhMi5jCgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9k ZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvc2Ftc3VuZyxzNmUzaGEyLnR4dCBiL0Rv Y3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL3NhbXN1bmcsczZl M2hhMi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmU5ODllZQotLS0g L2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5 L3BhbmVsL3NhbXN1bmcsczZlM2hhMi50eHQKQEAgLTAsMCArMSw2MiBAQAorU2Ftc3VuZyBTNkUz SEEyIDUuNyIgMTQ0MHgyNTYwIEFNT0xFRCBwYW5lbAorCitSZXF1aXJlZCBwcm9wZXJ0aWVzOgor ICAtIGNvbXBhdGlibGU6ICJzYW1zdW5nLHM2ZTNoYTIiCisgIC0gdmRkMy1zdXBwbHk6IGNvcmUg dm9sdGFnZSBzdXBwbHkKKyAgLSB2Y2ktc3VwcGx5OiB2b2x0YWdlIHN1cHBseSBmb3IgYW5hbG9n IGNpcmN1aXRzCisgIC0gcmVzZXQtZ3Bpb3M6IGEgR1BJTyBzcGVjIGZvciB0aGUgcmVzZXQgcGlu IChhY3RpdmUgaGlnaCkKKyAgLSBlbmFibGUtZ3Bpb3M6IGEgR1BJTyBzcGVjIGZvciB0aGUgcGFu ZWwgZW5hYmxlIHBpbiAoYWN0aXZlIGhpZ2gpCisgIC0gdGUtZ3Bpb3M6IGEgR1BJTyBzcGVjIGZv ciB0aGUgdGVhcmluZyBlZmZlY3Qgc3luY2hyb25pemF0aW9uIHNpZ25hbAorICAgIGdwaW8gcGlu IChhY3RpdmUgaGlnaCkKKworT3B0aW9uYWwgcHJvcGVydGllczoKKyAgLSBkaXNwbGF5LXRpbWlu Z3M6IHRpbWluZ3MgZm9yIHRoZSBjb25uZWN0ZWQgcGFuZWwgYXMgZGVzY3JpYmVkIGJ5IFsxXQor CitUaGUgZGV2aWNlIG5vZGUgY2FuIGNvbnRhaW4gb25lICdwb3J0JyBjaGlsZCBub2RlIHdpdGgg b25lIGNoaWxkCisnZW5kcG9pbnQnIG5vZGUsIGFjY29yZGluZyB0byB0aGUgYmluZGluZ3MgZGVm aW5lZCBpbiBbMl0uIFRoaXMKK25vZGUgc2hvdWxkIGRlc2NyaWJlIHBhbmVsJ3MgdmlkZW8gYnVz LgorCitUaGUgdmlydHVhbCBjaGFubmVsIG51bWJlciBvZiBhIERTSSBwZXJpcGhlcmFsIGFzIGRl c2NyaWJlZCBieSBbM10uCitNdXN0IGJlIGluIHRoZSByYW5nZSBmcm9tIDAgdG8gMy4KKy8qIHBl cmlwaGVyYWwgcmVzcG9uZHMgdG8gdmlydHVhbCBjaGFubmVsIDAgKi8KK3BlcmlwaGVyYWxAMCB7 CisJY29tcGF0aWJsZSA9ICIuLi4iOworCXJlZyA9IDwwPjsKK307CisKK1sxXTogRG9jdW1lbnRh dGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvZGlzcGxheS10aW1pbmcudHh0 CitbMl06IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tZWRpYS92aWRlby1pbnRl cmZhY2VzLnR4dAorWzNdOiBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxh eS9taXBpLWRzaS1idXMudHh0CisKK0V4YW1wbGU6CisKKwlwYW5lbEAwIHsKKwkJLi4uCisKKwkJ Y29tcGF0aWJsZSA9ICJzYW1zdW5nLHM2ZTNoYTIiOworCQl2ZGQzLXN1cHBseSA9IDwmbGRvMjdf cmVnPjsKKwkJdmNpLXN1cHBseSA9IDwmbGRvMjhfcmVnPjsKKwkJcmVzZXQtZ3Bpb3MgPSA8Jmdw ZzAgMCBHUElPX0FDVElWRV9ISUdIPjsKKwkJZW5hYmxlLWdwaW9zID0gPCZncGYxIDUgR1BJT19B Q1RJVkVfSElHSD47CisJCXRlLWdwaW9zID0gPCZncGYxIDMgR1BJT19BQ1RJVkVfSElHSD47CisK KwkJZGlzcGxheS10aW1pbmdzIHsKKwkJCXRpbWluZy0wIHsKKwkJCQljbG9jay1mcmVxdWVuY3kg PSA8MD47CisJCQkJaGFjdGl2ZSA9IDwxNDQwPjsKKwkJCQl2YWN0aXZlID0gPDI1NjA+OworCQkJ CWhmcm9udC1wb3JjaCA9IDwxPjsKKwkJCQloYmFjay1wb3JjaCA9IDwxPjsKKwkJCQloc3luYy1s ZW4gPSA8MT47CisJCQkJdmZyb250LXBvcmNoID0gPDE+OworCQkJCXZiYWNrLXBvcmNoID0gPDE1 PjsKKwkJCQl2c3luYy1sZW4gPSA8MT47CisJCQl9OworCQl9OworCisJCXBvcnQgeworCQkJZHNp X2luOiBlbmRwb2ludCB7CisJCQkJcmVtb3RlLWVuZHBvaW50ID0gPCZkc2lfb3V0PjsKKwkJCX07 CisJCX07CisJfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9LY29uZmlnIGIv ZHJpdmVycy9ncHUvZHJtL3BhbmVsL0tjb25maWcKaW5kZXggNjJhYmE5Ny4uZTFhMmZjZCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL0tjb25maWcKKysrIGIvZHJpdmVycy9ncHUv ZHJtL3BhbmVsL0tjb25maWcKQEAgLTU4LDYgKzU4LDEyIEBAIGNvbmZpZyBEUk1fUEFORUxfU0FN U1VOR19TNkU4QUEwCiAJc2VsZWN0IERSTV9NSVBJX0RTSQogCXNlbGVjdCBWSURFT01PREVfSEVM UEVSUwogCitjb25maWcgRFJNX1BBTkVMX1NBTVNVTkdfUzZFM0hBMgorCXRyaXN0YXRlICJTYW1z dW5nIFM2RTNIQTIgRFNJIHZpZGVvIG1vZGUgcGFuZWwiCisJZGVwZW5kcyBvbiBPRgorCXNlbGVj dCBEUk1fTUlQSV9EU0kKKwlzZWxlY3QgVklERU9NT0RFX0hFTFBFUlMKKwogY29uZmlnIERSTV9Q QU5FTF9TSEFSUF9MUTEwMVIxU1gwMQogCXRyaXN0YXRlICJTaGFycCBMUTEwMVIxU1gwMSBwYW5l bCIKIAlkZXBlbmRzIG9uIE9GCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvTWFr ZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvTWFrZWZpbGUKaW5kZXggYTVjN2VjMC4uOTkz Njk5YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL01ha2VmaWxlCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9wYW5lbC9NYWtlZmlsZQpAQCAtNCw1ICs0LDYgQEAgb2JqLSQoQ09ORklH X0RSTV9QQU5FTF9MR19MRzQ1NzMpICs9IHBhbmVsLWxnLWxnNDU3My5vCiBvYmotJChDT05GSUdf RFJNX1BBTkVMX1BBTkFTT05JQ19WVlgxMEYwMzROMDApICs9IHBhbmVsLXBhbmFzb25pYy12dngx MGYwMzRuMDAubwogb2JqLSQoQ09ORklHX0RSTV9QQU5FTF9TQU1TVU5HX0xEOTA0MCkgKz0gcGFu ZWwtc2Ftc3VuZy1sZDkwNDAubwogb2JqLSQoQ09ORklHX0RSTV9QQU5FTF9TQU1TVU5HX1M2RThB QTApICs9IHBhbmVsLXNhbXN1bmctczZlOGFhMC5vCitvYmotJChDT05GSUdfRFJNX1BBTkVMX1NB TVNVTkdfUzZFM0hBMikgKz0gcGFuZWwtc2Ftc3VuZy1zNmUzaGEyLm8KIG9iai0kKENPTkZJR19E Uk1fUEFORUxfU0hBUlBfTFExMDFSMVNYMDEpICs9IHBhbmVsLXNoYXJwLWxxMTAxcjFzeDAxLm8K IG9iai0kKENPTkZJR19EUk1fUEFORUxfU0hBUlBfTFMwNDNUMUxFMDEpICs9IHBhbmVsLXNoYXJw LWxzMDQzdDFsZTAxLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1z YW1zdW5nLXM2ZTNoYTIuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zYW1zdW5nLXM2 ZTNoYTIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNmFkNjNiCi0tLSAv ZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZlM2hh Mi5jCkBAIC0wLDAgKzEsNzU2IEBACisvKgorICogTUlQSS1EU0kgYmFzZWQgczZlM2hhMiBBTU9M RUQgNS43IGluY2ggcGFuZWwgZHJpdmVyLgorICoKKyAqIENvcHlyaWdodCAoYykgMjAxNiBTYW1z dW5nIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorICogRG9uZ2h3YSBMZWUgPGRoMDkubGVlQHNhbXN1 bmcuY29tPgorICogSHl1bmd3b24gSHdhbmcgPGh1bWFuLmh3YW5nQHNhbXN1bmcuY29tPgorICog SG9lZ2V1biBLd29uIDxob2VnZXVuLmt3b25Ac2Ftc3VuZy5jb20+CisgKgorICogVGhpcyBwcm9n cmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbi4KKyovCisKKyNpbmNsdWRlIDxkcm0vZHJtUC5oPgorI2luY2x1ZGUgPGRybS9kcm1fbWlw aV9kc2kuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3BhbmVsLmg+CisjaW5jbHVkZSA8bGludXgvZ3Bp by9jb25zdW1lci5oPgorI2luY2x1ZGUgPGxpbnV4L3JlZ3VsYXRvci9jb25zdW1lci5oPgorI2lu Y2x1ZGUgPHZpZGVvL21pcGlfZGlzcGxheS5oPgorI2luY2x1ZGUgPHZpZGVvL29mX3ZpZGVvbW9k ZS5oPgorI2luY2x1ZGUgPHZpZGVvL3ZpZGVvbW9kZS5oPgorI2luY2x1ZGUgPGxpbnV4L2JhY2ts aWdodC5oPgorCisjZGVmaW5lIFM2RTNIQTJfTUlOX0JSSUdIVE5FU1MJCTAKKyNkZWZpbmUgUzZF M0hBMl9NQVhfQlJJR0hUTkVTUwkJMTAwCisjZGVmaW5lIFM2RTNIQTJfREVGQVVMVF9CUklHSFRO RVNTCTgwCisKKyNkZWZpbmUgUzZFM0hBMl9OVU1fR0FNTUFfU1RFUFMJCTQ2CisjZGVmaW5lIFM2 RTNIQTJfR0FNTUFfQ01EX0NOVAkJMzUKKyNkZWZpbmUgUzZFM0hBMl9WSU5UX1NUQVRVU19NQVgJ CTEwCisKK3N0YXRpYyBjb25zdCB1OCBnYW1tYV90YmxbUzZFM0hBMl9OVU1fR0FNTUFfU1RFUFNd W1M2RTNIQTJfR0FNTUFfQ01EX0NOVF0gPSB7CisJeyAweDAwLCAweGI4LCAweDAwLCAweGMzLCAw eDAwLCAweGIxLCAweDg5LCAweDg3LCAweDg3LCAweDgyLCAweDgzLAorCSAgMHg4NSwgMHg4OCwg MHg4YiwgMHg4YiwgMHg4NCwgMHg4OCwgMHg4MiwgMHg4MiwgMHg4OSwgMHg4NiwgMHg4YywKKwkg IDB4OTQsIDB4ODQsIDB4YjEsIDB4YWYsIDB4OGUsIDB4Y2YsIDB4YWQsIDB4YzksIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGI4LCAweDAwLCAweGMzLCAw eDAwLCAweGIxLCAweDg5LCAweDg3LCAweDg3LCAweDg0LCAweDg0LAorCSAgMHg4NSwgMHg4Nywg MHg4YiwgMHg4YSwgMHg4NCwgMHg4OCwgMHg4MiwgMHg4MiwgMHg4OSwgMHg4NiwgMHg4YSwKKwkg IDB4OTMsIDB4ODQsIDB4YjAsIDB4YWUsIDB4OGUsIDB4YzksIDB4YTgsIDB4YzUsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGI4LCAweDAwLCAweGMzLCAw eDAwLCAweGIxLCAweDg5LCAweDg3LCAweDg3LCAweDgzLCAweDgzLAorCSAgMHg4NSwgMHg4Niwg MHg4YSwgMHg4YSwgMHg4NCwgMHg4OCwgMHg4MSwgMHg4NCwgMHg4YSwgMHg4OCwgMHg4YSwKKwkg IDB4OTEsIDB4ODQsIDB4YjEsIDB4YWUsIDB4OGIsIDB4ZDUsIDB4YjIsIDB4Y2MsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGI4LCAweDAwLCAweGMzLCAw eDAwLCAweGIxLCAweDg5LCAweDg3LCAweDg3LCAweDgzLCAweDgzLAorCSAgMHg4NSwgMHg4Niwg MHg4YSwgMHg4YSwgMHg4NCwgMHg4NywgMHg4MSwgMHg4NCwgMHg4YSwgMHg4NywgMHg4YSwKKwkg IDB4OTEsIDB4ODUsIDB4YWUsIDB4YWMsIDB4OGEsIDB4YzMsIDB4YTMsIDB4YzAsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGI4LCAweDAwLCAweGMzLCAw eDAwLCAweGIxLCAweDg4LCAweDg2LCAweDg3LCAweDg1LCAweDg1LAorCSAgMHg4NiwgMHg4NSwg MHg4OCwgMHg4OSwgMHg4NCwgMHg4OSwgMHg4MiwgMHg4NCwgMHg4NywgMHg4NSwgMHg4YiwKKwkg IDB4OTEsIDB4ODgsIDB4YWQsIDB4YWIsIDB4OGEsIDB4YjcsIDB4OWIsIDB4YjYsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGI4LCAweDAwLCAweGMzLCAw eDAwLCAweGIxLCAweDg5LCAweDg3LCAweDg3LCAweDgzLCAweDgzLAorCSAgMHg4NSwgMHg4Niwg MHg4OSwgMHg4YSwgMHg4NCwgMHg4OSwgMHg4MywgMHg4MywgMHg4NiwgMHg4NCwgMHg4YiwKKwkg IDB4OTAsIDB4ODQsIDB4YjAsIDB4YWUsIDB4OGIsIDB4Y2UsIDB4YWQsIDB4YzgsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGI4LCAweDAwLCAweGMzLCAw eDAwLCAweGIxLCAweDg5LCAweDg3LCAweDg3LCAweDgzLCAweDgzLAorCSAgMHg4NSwgMHg4Nywg MHg4OSwgMHg4YSwgMHg4MywgMHg4NywgMHg4MiwgMHg4NSwgMHg4OCwgMHg4NywgMHg4OSwKKwkg IDB4OGYsIDB4ODQsIDB4YWMsIDB4YWEsIDB4ODksIDB4YjEsIDB4OTgsIDB4YWYsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGI4LCAweDAwLCAweGMzLCAw eDAwLCAweGIxLCAweDg5LCAweDg3LCAweDg3LCAweDgzLCAweDgzLAorCSAgMHg4NSwgMHg4Niwg MHg4OCwgMHg4OSwgMHg4NCwgMHg4OCwgMHg4MywgMHg4MiwgMHg4NSwgMHg4NCwgMHg4YywKKwkg IDB4OTEsIDB4ODYsIDB4YWMsIDB4YWEsIDB4ODksIDB4YzIsIDB4YTUsIDB4YmQsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGI4LCAweDAwLCAweGMzLCAw eDAwLCAweGIxLCAweDg4LCAweDg2LCAweDg3LCAweDg0LCAweDg0LAorCSAgMHg4NSwgMHg4Nywg MHg4OSwgMHg4YSwgMHg4MywgMHg4NywgMHg4MiwgMHg4NSwgMHg4OCwgMHg4NywgMHg4OCwKKwkg IDB4OGIsIDB4ODIsIDB4YWQsIDB4YWEsIDB4OGEsIDB4YzIsIDB4YTUsIDB4YmQsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGI4LCAweDAwLCAweGMzLCAw eDAwLCAweGIxLCAweDg5LCAweDg3LCAweDg3LCAweDgzLCAweDgzLAorCSAgMHg4NSwgMHg4Niwg MHg4NywgMHg4OSwgMHg4NCwgMHg4OCwgMHg4MywgMHg4MiwgMHg4NSwgMHg4NCwgMHg4YSwKKwkg IDB4OGUsIDB4ODQsIDB4YWUsIDB4YWMsIDB4ODksIDB4ZGEsIDB4YjcsIDB4ZDAsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGI4LCAweDAwLCAweGMzLCAw eDAwLCAweGIxLCAweDg4LCAweDg2LCAweDg3LCAweDg0LCAweDg0LAorCSAgMHg4NSwgMHg4Niwg MHg4NywgMHg4OSwgMHg4NCwgMHg4OCwgMHg4MywgMHg4MCwgMHg4MywgMHg4MiwgMHg4YiwKKwkg IDB4OGUsIDB4ODUsIDB4YWMsIDB4YWEsIDB4ODksIDB4YzgsIDB4YWEsIDB4YzEsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGI4LCAweDAwLCAweGMzLCAw eDAwLCAweGIxLCAweDg4LCAweDg2LCAweDg3LCAweDg0LCAweDg0LAorCSAgMHg4NSwgMHg4Niwg MHg4NywgMHg4OSwgMHg4MSwgMHg4NSwgMHg4MSwgMHg4NCwgMHg4NiwgMHg4NCwgMHg4YywKKwkg IDB4OGMsIDB4ODQsIDB4YTksIDB4YTgsIDB4ODcsIDB4YTMsIDB4OTIsIDB4YTEsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGI4LCAweDAwLCAweGMzLCAw eDAwLCAweGIxLCAweDg4LCAweDg2LCAweDg3LCAweDg0LCAweDg0LAorCSAgMHg4NSwgMHg4Niwg MHg4NywgMHg4OSwgMHg4NCwgMHg4NiwgMHg4MywgMHg4MCwgMHg4MywgMHg4MSwgMHg4YywKKwkg IDB4OGQsIDB4ODQsIDB4YWEsIDB4YWEsIDB4ODksIDB4Y2UsIDB4YWYsIDB4YzUsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGI4LCAweDAwLCAweGMzLCAw eDAwLCAweGIxLCAweDg4LCAweDg2LCAweDg3LCAweDg0LCAweDg0LAorCSAgMHg4NSwgMHg4Niwg MHg4NywgMHg4OSwgMHg4MSwgMHg4MywgMHg4MCwgMHg4MywgMHg4NSwgMHg4NSwgMHg4YywKKwkg IDB4OGMsIDB4ODQsIDB4YTgsIDB4YTgsIDB4ODgsIDB4YjUsIDB4OWYsIDB4YjAsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGI4LCAweDAwLCAweGMzLCAw eDAwLCAweGIxLCAweDg4LCAweDg2LCAweDg3LCAweDg0LCAweDg0LAorCSAgMHg4NiwgMHg4Niwg MHg4NywgMHg4OCwgMHg4MSwgMHg4MywgMHg4MCwgMHg4MywgMHg4NSwgMHg4NSwgMHg4YywKKwkg IDB4OGIsIDB4ODQsIDB4YWIsIDB4YTgsIDB4ODYsIDB4ZDQsIDB4YjQsIDB4YzksIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGI4LCAweDAwLCAweGMzLCAw eDAwLCAweGIxLCAweDg4LCAweDg2LCAweDg3LCAweDg0LCAweDg0LAorCSAgMHg4NiwgMHg4Niwg MHg4NywgMHg4OCwgMHg4MSwgMHg4MywgMHg4MCwgMHg4NCwgMHg4NCwgMHg4NSwgMHg4YiwKKwkg IDB4OGEsIDB4ODMsIDB4YTYsIDB4YTUsIDB4ODQsIDB4YmIsIDB4YTQsIDB4YjMsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGI4LCAweDAwLCAweGMzLCAw eDAwLCAweGIxLCAweDg4LCAweDg2LCAweDg3LCAweDg0LCAweDg0LAorCSAgMHg4NiwgMHg4NSwg MHg4NiwgMHg4NiwgMHg4MiwgMHg4NSwgMHg4MSwgMHg4MiwgMHg4MywgMHg4NCwgMHg4ZSwKKwkg IDB4OGIsIDB4ODMsIDB4YTQsIDB4YTMsIDB4OGEsIDB4YTEsIDB4OTMsIDB4OWQsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGI4LCAweDAwLCAweGMzLCAw eDAwLCAweGIxLCAweDg4LCAweDg2LCAweDg3LCAweDgzLCAweDgzLAorCSAgMHg4NSwgMHg4Niwg MHg4NywgMHg4NywgMHg4MiwgMHg4NSwgMHg4MSwgMHg4MiwgMHg4MiwgMHg4NCwgMHg4ZSwKKwkg IDB4OGIsIDB4ODMsIDB4YTQsIDB4YTIsIDB4ODYsIDB4YzEsIDB4YTksIDB4YjcsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGI4LCAweDAwLCAweGMzLCAw eDAwLCAweGIxLCAweDg4LCAweDg2LCAweDg3LCAweDgzLCAweDgzLAorCSAgMHg4NSwgMHg4Niwg MHg4NywgMHg4NywgMHg4MiwgMHg4NSwgMHg4MSwgMHg4MiwgMHg4MiwgMHg4NCwgMHg4ZCwKKwkg IDB4ODksIDB4ODIsIDB4YTIsIDB4YTEsIDB4ODQsIDB4YTcsIDB4OTgsIDB4YTEsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGI4LCAweDAwLCAweGMzLCAw eDAwLCAweGIxLCAweDg4LCAweDg2LCAweDg3LCAweDgzLCAweDgzLAorCSAgMHg4NSwgMHg4Niwg MHg4NywgMHg4NywgMHg4MiwgMHg4NSwgMHg4MSwgMHg4MywgMHg4MywgMHg4NSwgMHg4YywKKwkg IDB4ODcsIDB4N2YsIDB4YTIsIDB4OWQsIDB4ODgsIDB4OGQsIDB4ODgsIDB4OGIsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGJiLCAweDAwLCAweGM1LCAw eDAwLCAweGI0LCAweDg3LCAweDg2LCAweDg2LCAweDg0LCAweDgzLAorCSAgMHg4NiwgMHg4Nywg MHg4NywgMHg4NywgMHg4MCwgMHg4MiwgMHg3ZiwgMHg4NiwgMHg4NiwgMHg4OCwgMHg4YSwKKwkg IDB4ODQsIDB4N2UsIDB4OWQsIDB4OWMsIDB4ODIsIDB4OGQsIDB4ODgsIDB4OGIsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGJkLCAweDAwLCAweGM3LCAw eDAwLCAweGI3LCAweDg3LCAweDg1LCAweDg1LCAweDg0LCAweDgzLAorCSAgMHg4NiwgMHg4Niwg MHg4NiwgMHg4OCwgMHg4MSwgMHg4MywgMHg4MCwgMHg4MywgMHg4NCwgMHg4NSwgMHg4YSwKKwkg IDB4ODUsIDB4N2UsIDB4OWMsIDB4OWIsIDB4ODUsIDB4ODAsIDB4ODAsIDB4ODAsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGMwLCAweDAwLCAweGNhLCAw eDAwLCAweGJiLCAweDg3LCAweDg2LCAweDg1LCAweDgzLCAweDgzLAorCSAgMHg4NSwgMHg4Niwg MHg4NiwgMHg4OCwgMHg4MSwgMHg4MywgMHg4MCwgMHg4NCwgMHg4NSwgMHg4NiwgMHg4OSwKKwkg IDB4ODMsIDB4N2QsIDB4OWMsIDB4OTksIDB4ODcsIDB4N2IsIDB4N2IsIDB4N2MsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGM0LCAweDAwLCAweGNkLCAw eDAwLCAweGJlLCAweDg3LCAweDg2LCAweDg1LCAweDgzLCAweDgzLAorCSAgMHg4NiwgMHg4NSwg MHg4NSwgMHg4NywgMHg4MSwgMHg4MiwgMHg4MCwgMHg4MiwgMHg4MiwgMHg4MywgMHg4YSwKKwkg IDB4ODUsIDB4N2YsIDB4OWYsIDB4OWIsIDB4ODYsIDB4YjQsIDB4YTEsIDB4YWMsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGM3LCAweDAwLCAweGQwLCAw eDAwLCAweGMyLCAweDg3LCAweDg1LCAweDg1LCAweDgzLCAweDgyLAorCSAgMHg4NSwgMHg4NSwg MHg4NSwgMHg4NiwgMHg4MiwgMHg4MywgMHg4MCwgMHg4MiwgMHg4MiwgMHg4NCwgMHg4NywKKwkg IDB4ODYsIDB4ODAsIDB4OWUsIDB4OWEsIDB4ODcsIDB4YTcsIDB4OTgsIDB4YTEsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGNhLCAweDAwLCAweGQyLCAw eDAwLCAweGM1LCAweDg3LCAweDg1LCAweDg0LCAweDgyLCAweDgyLAorCSAgMHg4NCwgMHg4NSwg MHg4NSwgMHg4NiwgMHg4MSwgMHg4MiwgMHg3ZiwgMHg4MiwgMHg4MiwgMHg4NCwgMHg4OCwKKwkg IDB4ODYsIDB4ODEsIDB4OWQsIDB4OTgsIDB4ODYsIDB4OGQsIDB4ODgsIDB4OGIsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGNlLCAweDAwLCAweGQ2LCAw eDAwLCAweGNhLCAweDg2LCAweDg1LCAweDg0LCAweDgzLCAweDgzLAorCSAgMHg4NSwgMHg4NCwg MHg4NCwgMHg4NSwgMHg4MSwgMHg4MiwgMHg4MCwgMHg4MSwgMHg4MSwgMHg4MiwgMHg4OSwKKwkg IDB4ODYsIDB4ODEsIDB4OWMsIDB4OTcsIDB4ODYsIDB4YTcsIDB4OTgsIDB4YTEsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGQxLCAweDAwLCAweGQ5LCAw eDAwLCAweGNlLCAweDg2LCAweDg0LCAweDgzLCAweDgzLCAweDgyLAorCSAgMHg4NSwgMHg4NSwg MHg4NSwgMHg4NiwgMHg4MSwgMHg4MywgMHg4MSwgMHg4MiwgMHg4MiwgMHg4MywgMHg4NiwKKwkg IDB4ODMsIDB4N2YsIDB4OTksIDB4OTUsIDB4ODYsIDB4YmIsIDB4YTQsIDB4YjMsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGQ0LCAweDAwLCAweGRiLCAw eDAwLCAweGQxLCAweDg2LCAweDg1LCAweDgzLCAweDgzLCAweDgyLAorCSAgMHg4NSwgMHg4NCwg MHg4NCwgMHg4NSwgMHg4MCwgMHg4MywgMHg4MiwgMHg4MCwgMHg4MCwgMHg4MSwgMHg4NywKKwkg IDB4ODQsIDB4ODEsIDB4OTgsIDB4OTMsIDB4ODUsIDB4YWUsIDB4OWMsIDB4YTgsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGQ4LCAweDAwLCAweGRlLCAw eDAwLCAweGQ2LCAweDg2LCAweDg0LCAweDgzLCAweDgxLCAweDgxLAorCSAgMHg4MywgMHg4NSwg MHg4NSwgMHg4NSwgMHg4MiwgMHg4MywgMHg4MSwgMHg4MSwgMHg4MSwgMHg4MywgMHg4NiwKKwkg IDB4ODQsIDB4ODAsIDB4OTgsIDB4OTEsIDB4ODUsIDB4N2IsIDB4N2IsIDB4N2MsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGRjLCAweDAwLCAweGUyLCAw eDAwLCAweGRhLCAweDg1LCAweDg0LCAweDgzLCAweDgyLCAweDgyLAorCSAgMHg4NCwgMHg4NCwg MHg4NCwgMHg4NSwgMHg4MSwgMHg4MiwgMHg4MiwgMHg4MCwgMHg4MCwgMHg4MSwgMHg4MywKKwkg IDB4ODIsIDB4N2YsIDB4OTksIDB4OTMsIDB4ODYsIDB4OTQsIDB4OGIsIDB4OTIsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGRmLCAweDAwLCAweGU1LCAw eDAwLCAweGRlLCAweDg1LCAweDg0LCAweDgyLCAweDgyLCAweDgyLAorCSAgMHg4NCwgMHg4Mywg MHg4MywgMHg4NCwgMHg4MSwgMHg4MSwgMHg4MCwgMHg4MywgMHg4MiwgMHg4NCwgMHg4MiwKKwkg IDB4ODEsIDB4N2YsIDB4OTksIDB4OTIsIDB4ODYsIDB4N2IsIDB4N2IsIDB4N2MsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGU0LCAweDAwLCAweGU5LCAw eDAwLCAweGUzLCAweDg0LCAweDgzLCAweDgyLCAweDgxLCAweDgxLAorCSAgMHg4MiwgMHg4Mywg MHg4MywgMHg4NCwgMHg4MCwgMHg4MSwgMHg4MCwgMHg4MywgMHg4MywgMHg4NCwgMHg4MCwKKwkg IDB4ODEsIDB4N2MsIDB4OTksIDB4OTIsIDB4ODcsIDB4YTEsIDB4OTMsIDB4OWQsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGU0LCAweDAwLCAweGU5LCAw eDAwLCAweGUzLCAweDg1LCAweDg0LCAweDgzLCAweDgxLCAweDgxLAorCSAgMHg4MiwgMHg4Miwg MHg4MiwgMHg4MywgMHg4MCwgMHg4MSwgMHg4MCwgMHg4MSwgMHg4MCwgMHg4MiwgMHg4MywKKwkg IDB4ODIsIDB4ODAsIDB4OTEsIDB4OGQsIDB4ODMsIDB4OWEsIDB4OTAsIDB4OTYsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGU0LCAweDAwLCAweGU5LCAw eDAwLCAweGUzLCAweDg0LCAweDgzLCAweDgyLCAweDgxLCAweDgxLAorCSAgMHg4MiwgMHg4Mywg MHg4MywgMHg4NCwgMHg4MCwgMHg4MSwgMHg4MCwgMHg4MSwgMHg4MCwgMHg4MiwgMHg4MywKKwkg IDB4ODEsIDB4N2YsIDB4OTEsIDB4OGMsIDB4ODIsIDB4OGQsIDB4ODgsIDB4OGIsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGU0LCAweDAwLCAweGU5LCAw eDAwLCAweGUzLCAweDg0LCAweDgzLCAweDgyLCAweDgxLCAweDgxLAorCSAgMHg4MiwgMHg4Mywg MHg4MywgMHg4MywgMHg4MiwgMHg4MiwgMHg4MSwgMHg4MSwgMHg4MCwgMHg4MiwgMHg4MiwKKwkg IDB4ODIsIDB4N2YsIDB4OTQsIDB4ODksIDB4ODQsIDB4ODAsIDB4ODAsIDB4ODAsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGU0LCAweDAwLCAweGU5LCAw eDAwLCAweGUzLCAweDg0LCAweDgzLCAweDgyLCAweDgxLCAweDgxLAorCSAgMHg4MiwgMHg4Mywg MHg4MywgMHg4MywgMHg4MiwgMHg4MiwgMHg4MSwgMHg4MSwgMHg4MCwgMHg4MiwgMHg4MywKKwkg IDB4ODIsIDB4N2YsIDB4OTEsIDB4ODUsIDB4ODEsIDB4ODAsIDB4ODAsIDB4ODAsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGU0LCAweDAwLCAweGU5LCAw eDAwLCAweGUzLCAweDg0LCAweDgzLCAweDgyLCAweDgxLCAweDgxLAorCSAgMHg4MiwgMHg4Mywg MHg4MywgMHg4MywgMHg4MCwgMHg4MCwgMHg3ZiwgMHg4MywgMHg4MiwgMHg4NCwgMHg4MywKKwkg IDB4ODIsIDB4N2YsIDB4OTAsIDB4ODQsIDB4ODEsIDB4OWEsIDB4OTAsIDB4OTYsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGU0LCAweDAwLCAweGU5LCAw eDAwLCAweGUzLCAweDg0LCAweDgzLCAweDgyLCAweDgwLCAweDgwLAorCSAgMHg4MiwgMHg4Mywg MHg4MywgMHg4MywgMHg4MCwgMHg4MCwgMHg3ZiwgMHg4MCwgMHg4MCwgMHg4MSwgMHg4MSwKKwkg IDB4ODIsIDB4ODMsIDB4N2UsIDB4ODAsIDB4N2MsIDB4YTQsIDB4OTcsIDB4OWYsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGU5LCAweDAwLCAweGVjLCAw eDAwLCAweGU4LCAweDg0LCAweDgzLCAweDgyLCAweDgxLCAweDgxLAorCSAgMHg4MiwgMHg4Miwg MHg4MiwgMHg4MywgMHg3ZiwgMHg3ZiwgMHg3ZiwgMHg4MSwgMHg4MCwgMHg4MiwgMHg4MywKKwkg IDB4ODMsIDB4ODQsIDB4NzksIDB4N2MsIDB4NzksIDB4YjEsIDB4YTAsIDB4YWEsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGVkLCAweDAwLCAweGYwLCAw eDAwLCAweGVjLCAweDgzLCAweDgzLCAweDgyLCAweDgwLCAweDgwLAorCSAgMHg4MSwgMHg4Miwg MHg4MiwgMHg4MiwgMHg3ZiwgMHg3ZiwgMHg3ZSwgMHg4MSwgMHg4MSwgMHg4MiwgMHg4MCwKKwkg IDB4ODEsIDB4ODEsIDB4ODQsIDB4ODQsIDB4ODMsIDB4ODAsIDB4ODAsIDB4ODAsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGYxLCAweDAwLCAweGY0LCAw eDAwLCAweGYxLCAweDgzLCAweDgyLCAweDgyLCAweDgwLCAweDgwLAorCSAgMHg4MSwgMHg4Miwg MHg4MiwgMHg4MiwgMHg4MCwgMHg4MCwgMHg4MCwgMHg4MCwgMHg4MCwgMHg4MSwgMHg3ZCwKKwkg IDB4N2UsIDB4N2YsIDB4ODQsIDB4ODQsIDB4ODMsIDB4ODAsIDB4ODAsIDB4ODAsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGY2LCAweDAwLCAweGY3LCAw eDAwLCAweGY1LCAweDgyLCAweDgyLCAweDgxLCAweDgwLCAweDgwLAorCSAgMHg4MCwgMHg4Miwg MHg4MiwgMHg4MiwgMHg4MCwgMHg4MCwgMHg4MCwgMHg3ZiwgMHg3ZiwgMHg3ZiwgMHg4MiwKKwkg IDB4ODIsIDB4ODIsIDB4ODAsIDB4ODAsIDB4ODAsIDB4ODAsIDB4ODAsIDB4ODAsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAwLCAweGZhLCAweDAwLCAweGZiLCAw eDAwLCAweGZhLCAweDgxLCAweDgxLCAweDgxLCAweDgwLCAweDgwLAorCSAgMHg4MCwgMHg4Miwg MHg4MiwgMHg4MiwgMHg4MCwgMHg4MCwgMHg4MCwgMHg4MCwgMHg4MCwgMHg4MCwgMHg4MCwKKwkg IDB4ODAsIDB4ODAsIDB4ODAsIDB4ODAsIDB4ODAsIDB4ODAsIDB4ODAsIDB4ODAsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAxLCAweDAwLCAweDAxLCAweDAwLCAw eDAxLCAweDAwLCAweDgwLCAweDgwLCAweDgwLCAweDgwLCAweDgwLAorCSAgMHg4MCwgMHg4MCwg MHg4MCwgMHg4MCwgMHg4MCwgMHg4MCwgMHg4MCwgMHg4MCwgMHg4MCwgMHg4MCwgMHg4MCwKKwkg IDB4ODAsIDB4ODAsIDB4ODAsIDB4ODAsIDB4ODAsIDB4ODAsIDB4ODAsIDB4ODAsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0sCisJeyAweDAxLCAweDAwLCAweDAxLCAweDAwLCAw eDAxLCAweDAwLCAweDgwLCAweDgwLCAweDgwLCAweDgwLCAweDgwLAorCSAgMHg4MCwgMHg4MCwg MHg4MCwgMHg4MCwgMHg4MCwgMHg4MCwgMHg4MCwgMHg4MCwgMHg4MCwgMHg4MCwgMHg4MCwKKwkg IDB4ODAsIDB4ODAsIDB4ODAsIDB4ODAsIDB4ODAsIDB4ODAsIDB4ODAsIDB4ODAsIDB4MDAsIDB4 MDAsIDB4MDAsCisJICAweDAwLCAweDAwIH0KK307CisKK3Vuc2lnbmVkIGNoYXIgVklOVF9UQUJM RVtTNkUzSEEyX1ZJTlRfU1RBVFVTX01BWF0gPSB7CisJMHgxOCwgMHgxOSwgMHgxYSwgMHgxYiwg MHgxYywKKwkweDFkLCAweDFlLCAweDFmLCAweDIwLCAweDIxCit9OworCitzdHJ1Y3QgczZlM2hh MiB7CisJc3RydWN0IGRldmljZSAqZGV2OworCXN0cnVjdCBkcm1fcGFuZWwgcGFuZWw7CisJc3Ry dWN0IGJhY2tsaWdodF9kZXZpY2UgKmJsX2RldjsKKworCXN0cnVjdCByZWd1bGF0b3JfYnVsa19k YXRhIHN1cHBsaWVzWzJdOworCXN0cnVjdCBncGlvX2Rlc2MgKnJlc2V0X2dwaW87CisJc3RydWN0 IGdwaW9fZGVzYyAqZW5hYmxlX2dwaW87CisJdTMyIHBvd2VyX29uX2RlbGF5OworCXUzMiByZXNl dF9kZWxheTsKKwlzdHJ1Y3QgdmlkZW9tb2RlIHZtOworCisJLyogVGhpcyBmaWVsZCBpcyB0ZXN0 ZWQgYnkgZnVuY3Rpb25zIGRpcmVjdGx5IGFjY2Vzc2luZyBEU0kgYnVzIGJlZm9yZQorCSAqIHRy YW5zZmVyLCB0cmFuc2ZlciBpcyBza2lwcGVkIGlmIGl0IGlzIHNldC4gSW4gY2FzZSBvZiB0cmFu c2ZlcgorCSAqIGZhaWx1cmUgb3IgdW5leHBlY3RlZCByZXNwb25zZSB0aGUgZmllbGQgaXMgc2V0 IHRvIGVycm9yIHZhbHVlLgorCSAqIFN1Y2ggY29uc3RydWN0IGFsbG93cyB0byBlbGltaW5hdGUg bWFueSBjaGVja3MgaW4gaGlnaGVyIGxldmVsCisJICogZnVuY3Rpb25zLgorCSAqLworCWludCBl cnJvcjsKK307CisKK3N0YXRpYyBpbnQgIHM2ZTNoYTJfY2xlYXJfZXJyb3Ioc3RydWN0IHM2ZTNo YTIgKmN0eCkKK3sKKwlpbnQgcmV0ID0gY3R4LT5lcnJvcjsKKworCWN0eC0+ZXJyb3IgPSAwOwor CXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIHM2ZTNoYTJfZGNzX3dyaXRlKHN0cnVjdCBz NmUzaGEyICpjdHgsIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCBsZW4pCit7CisJc3RydWN0IG1p cGlfZHNpX2RldmljZSAqZHNpID0gdG9fbWlwaV9kc2lfZGV2aWNlKGN0eC0+ZGV2KTsKKwlzc2l6 ZV90IHJldDsKKworCWlmIChjdHgtPmVycm9yIDwgMCkKKwkJcmV0dXJuOworCisJcmV0ID0gbWlw aV9kc2lfZGNzX3dyaXRlX2J1ZmZlcihkc2ksIGRhdGEsIGxlbik7CisJaWYgKHJldCA8IDApIHsK KwkJZGV2X2VycihjdHgtPmRldiwgImVycm9yICV6ZCB3cml0aW5nIGRjcyBzZXE6ICUqcGhcbiIs CisJCQkJCQlyZXQsIChpbnQpbGVuLCBkYXRhKTsKKwkJY3R4LT5lcnJvciA9IHJldDsKKwl9Cit9 CisKKyNkZWZpbmUgczZlM2hhMl9kY3Nfd3JpdGVfc2VxX3N0YXRpYyhjdHgsIHNlcS4uLikgZG8g ewlcCisJc3RhdGljIGNvbnN0IHU4IGRbXSA9IHsgc2VxIH07CQkJXAorCXM2ZTNoYTJfZGNzX3dy aXRlKGN0eCwgZCwgQVJSQVlfU0laRShkKSk7CVwKK30gd2hpbGUgKDApCisKK3N0YXRpYyB2b2lk IHM2ZTNoYTJfdGVzdF9rZXlfb25fZjAoc3RydWN0IHM2ZTNoYTIgKmN0eCkKK3sKKwlzNmUzaGEy X2Rjc193cml0ZV9zZXFfc3RhdGljKGN0eCwgMHhmMCwgMHg1YSwgMHg1YSk7Cit9CisKK3N0YXRp YyB2b2lkIHM2ZTNoYTJfdGVzdF9rZXlfb2ZmX2YwKHN0cnVjdCBzNmUzaGEyICpjdHgpCit7CisJ czZlM2hhMl9kY3Nfd3JpdGVfc2VxX3N0YXRpYyhjdHgsIDB4ZjAsIDB4YTUsIDB4YTUpOworfQor CitzdGF0aWMgdm9pZCBzNmUzaGEyX3Rlc3Rfa2V5X29uX2ZjKHN0cnVjdCBzNmUzaGEyICpjdHgp Cit7CisJczZlM2hhMl9kY3Nfd3JpdGVfc2VxX3N0YXRpYyhjdHgsIDB4ZmMsIDB4NWEsIDB4NWEp OworfQorCitzdGF0aWMgdm9pZCBzNmUzaGEyX3Rlc3Rfa2V5X29mZl9mYyhzdHJ1Y3QgczZlM2hh MiAqY3R4KQoreworCXM2ZTNoYTJfZGNzX3dyaXRlX3NlcV9zdGF0aWMoY3R4LCAweGZjLCAweGE1 LCAweGE1KTsKK30KKworc3RhdGljIHZvaWQgczZlM2hhMl9zaW5nbGVfZHNpX3NldChzdHJ1Y3Qg czZlM2hhMiAqY3R4KQoreworCXM2ZTNoYTJfZGNzX3dyaXRlX3NlcV9zdGF0aWMoY3R4LCAweGYy LCAweDY3KTsKKwlzNmUzaGEyX2Rjc193cml0ZV9zZXFfc3RhdGljKGN0eCwgMHhmOSwgMHgwOSk7 Cit9CisKK3N0YXRpYyB2b2lkIHM2ZTNoYTJfZnJlcV9jYWxpYnJhdGlvbihzdHJ1Y3QgczZlM2hh MiAqY3R4KQoreworCXM2ZTNoYTJfZGNzX3dyaXRlX3NlcV9zdGF0aWMoY3R4LCAweGZkLCAweDFj KTsKKwlzNmUzaGEyX2Rjc193cml0ZV9zZXFfc3RhdGljKGN0eCwgMHhmZSwgMHgyMCwgMHgzOSk7 CisJczZlM2hhMl9kY3Nfd3JpdGVfc2VxX3N0YXRpYyhjdHgsIDB4ZmUsIDB4YTApOworCXM2ZTNo YTJfZGNzX3dyaXRlX3NlcV9zdGF0aWMoY3R4LCAweGZlLCAweDIwKTsKKwlzNmUzaGEyX2Rjc193 cml0ZV9zZXFfc3RhdGljKGN0eCwgMHhjZSwgMHgwMywgMHgzYiwgMHgxMiwgMHg2MiwKKwkJMHg0 MCwgMHg4MCwgMHhjMCwgMHgyOCwgMHgyOCwgMHgyOCwgMHgyOCwgMHgzOSwgMHhjNSk7Cit9CisK K3N0YXRpYyB2b2lkIHM2ZTNoYTJfYW9yX2NvbnRyb2woc3RydWN0IHM2ZTNoYTIgKmN0eCkKK3sK KwlzNmUzaGEyX2Rjc193cml0ZV9zZXFfc3RhdGljKGN0eCwgMHhiMiwgMHgwMywgMHgxMCk7Cit9 CisKK3N0YXRpYyB2b2lkIHM2ZTNoYTJfY2Fwc19lbHZzc19zZXQoc3RydWN0IHM2ZTNoYTIgKmN0 eCkKK3sKKwlzNmUzaGEyX2Rjc193cml0ZV9zZXFfc3RhdGljKGN0eCwgMHhiNiwgMHg5YywgMHgw YSk7Cit9CisKK3N0YXRpYyB2b2lkIHM2ZTNoYTJfYWNsX29mZihzdHJ1Y3QgczZlM2hhMiAqY3R4 KQoreworCXM2ZTNoYTJfZGNzX3dyaXRlX3NlcV9zdGF0aWMoY3R4LCAweDU1LCAweDAwKTsKK30K Kworc3RhdGljIHZvaWQgczZlM2hhMl9hY2xfb2ZmX29wcihzdHJ1Y3QgczZlM2hhMiAqY3R4KQor eworCXM2ZTNoYTJfZGNzX3dyaXRlX3NlcV9zdGF0aWMoY3R4LCAweGI1LCAweDQwKTsKK30KKwor c3RhdGljIHZvaWQgczZlM2hhMl90ZXN0X2dsb2JhbChzdHJ1Y3QgczZlM2hhMiAqY3R4KQorewor CXM2ZTNoYTJfZGNzX3dyaXRlX3NlcV9zdGF0aWMoY3R4LCAweGIwLCAweDA3KTsKK30KKworc3Rh dGljIHZvaWQgczZlM2hhMl90ZXN0KHN0cnVjdCBzNmUzaGEyICpjdHgpCit7CisJczZlM2hhMl9k Y3Nfd3JpdGVfc2VxX3N0YXRpYyhjdHgsIDB4YjgsIDB4MTkpOworfQorCitzdGF0aWMgdm9pZCBz NmUzaGEyX3RvdWNoX2hzeW5jX29uMShzdHJ1Y3QgczZlM2hhMiAqY3R4KSB7CisJczZlM2hhMl9k Y3Nfd3JpdGVfc2VxX3N0YXRpYyhjdHgsCisJCQkweGJkLCAweDMzLCAweDExLCAweDAyLCAweDE2 LCAweDAyLCAweDE2KTsKK30KKworc3RhdGljIHZvaWQgczZlM2hhMl9wZW50aWxlX2NvbnRyb2wo c3RydWN0IHM2ZTNoYTIgKmN0eCkKK3sKKwlzNmUzaGEyX2Rjc193cml0ZV9zZXFfc3RhdGljKGN0 eCwgMHhjMCwgMHgwMCwgMHgwMCwgMHhkOCwgMHhkOCk7Cit9CisKK3N0YXRpYyB2b2lkIHM2ZTNo YTJfcG9jX2dsb2JhbChzdHJ1Y3QgczZlM2hhMiAqY3R4KQoreworCXM2ZTNoYTJfZGNzX3dyaXRl X3NlcV9zdGF0aWMoY3R4LCAweGIwLCAweDIwKTsKK30KKworc3RhdGljIHZvaWQgczZlM2hhMl9w b2Nfc2V0dGluZyhzdHJ1Y3QgczZlM2hhMiAqY3R4KQoreworCXM2ZTNoYTJfZGNzX3dyaXRlX3Nl cV9zdGF0aWMoY3R4LCAweGZlLCAweDA4KTsKK30KKworc3RhdGljIHZvaWQgczZlM2hhMl9wY2Rf c2V0X29mZihzdHJ1Y3QgczZlM2hhMiAqY3R4KQoreworCXM2ZTNoYTJfZGNzX3dyaXRlX3NlcV9z dGF0aWMoY3R4LCAweGNjLCAweDQwLCAweDUxKTsKK30KKworc3RhdGljIHZvaWQgczZlM2hhMl9l cnJfZmdfc2V0KHN0cnVjdCBzNmUzaGEyICpjdHgpCit7CisJczZlM2hhMl9kY3Nfd3JpdGVfc2Vx X3N0YXRpYyhjdHgsIDB4ZWQsIDB4NDQpOworfQorCitzdGF0aWMgdm9pZCBzNmUzaGEyX2hibV9v ZmYoc3RydWN0IHM2ZTNoYTIgKmN0eCkKK3sKKwlzNmUzaGEyX2Rjc193cml0ZV9zZXFfc3RhdGlj KGN0eCwgMHg1MywgMHgwMCk7Cit9CisKK3N0YXRpYyB2b2lkIHM2ZTNoYTJfdGVfc3RhcnRfc2V0 dGluZyhzdHJ1Y3QgczZlM2hhMiAqY3R4KQoreworCXM2ZTNoYTJfZGNzX3dyaXRlX3NlcV9zdGF0 aWMoY3R4LCAweGI5LCAweDEwLCAweDA5LCAweGZmLCAweDAwLCAweDA5KTsKK30KKworc3RhdGlj IHZvaWQgczZlM2hhMl9nYW1tYV91cGRhdGUoc3RydWN0IHM2ZTNoYTIgKmN0eCkKK3sKKwlzNmUz aGEyX2Rjc193cml0ZV9zZXFfc3RhdGljKGN0eCwgMHhmNywgMHgwMyk7CisJbmRlbGF5KDEwMCk7 IC8qIG5lZWQgZm9yIDEwMG5zIGRlbGF5ICovCisJczZlM2hhMl9kY3Nfd3JpdGVfc2VxX3N0YXRp YyhjdHgsIDB4ZjcsIDB4MDApOworfQorCitzdGF0aWMgaW50IHM2ZTNoYTJfZ2V0X2JyaWdodG5l c3Moc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmJsX2RldikKK3sKKwlyZXR1cm4gYmxfZGV2LT5w cm9wcy5icmlnaHRuZXNzOworfQorCitzdGF0aWMgdm9pZCBzNmUzaGEyX3NldF92aW50KHN0cnVj dCBzNmUzaGEyICpjdHgpIHsKKwlzdHJ1Y3QgYmFja2xpZ2h0X2RldmljZSAqYmxfZGV2ID0gY3R4 LT5ibF9kZXY7CisJdW5zaWduZWQgaW50IGJyaWdodG5lc3MgPSBibF9kZXYtPnByb3BzLmJyaWdo dG5lc3M7CisJdW5zaWduZWQgY2hhciBkYXRhW10gPSB7IDB4ZjQsIDB4OGIsCisJCQlWSU5UX1RB QkxFW2JyaWdodG5lc3MgKiAoUzZFM0hBMl9WSU5UX1NUQVRVU19NQVggLSAxKSAvCisJCQlTNkUz SEEyX01BWF9CUklHSFRORVNTXSB9OworCisJczZlM2hhMl9kY3Nfd3JpdGUoY3R4LCBkYXRhLCAz KTsKK30KKworc3RhdGljIHVuc2lnbmVkIGludCBzNmUzaGEyX2dldF9icmlnaHRuZXNzX2luZGV4 KHVuc2lnbmVkIGludCBicmlnaHRuZXNzKQoreworCXJldHVybiAoYnJpZ2h0bmVzcyAqIChTNkUz SEEyX05VTV9HQU1NQV9TVEVQUyAtIDEpKSAvCisJCVM2RTNIQTJfTUFYX0JSSUdIVE5FU1M7Cit9 CisKK3N0YXRpYyBpbnQgczZlM2hhMl91cGRhdGVfZ2FtbWEoc3RydWN0IHM2ZTNoYTIgKmN0eCwg dW5zaWduZWQgaW50IGJyaWdodG5lc3MpCit7CisJc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmJs X2RldiA9IGN0eC0+YmxfZGV2OworCXVuc2lnbmVkIGludCBpbmRleCA9IHM2ZTNoYTJfZ2V0X2Jy aWdodG5lc3NfaW5kZXgoYnJpZ2h0bmVzcyk7CisJdTggZGF0YVtTNkUzSEEyX0dBTU1BX0NNRF9D TlQgKyAxXSA9IHsgMHhjYSwgfTsKKworCW1lbWNweShkYXRhICsgMSwgZ2FtbWFfdGJsICsgaW5k ZXgsIFM2RTNIQTJfR0FNTUFfQ01EX0NOVCk7CisJczZlM2hhMl9kY3Nfd3JpdGUoY3R4LCBkYXRh LCBBUlJBWV9TSVpFKGRhdGEpKTsKKworCXM2ZTNoYTJfZ2FtbWFfdXBkYXRlKGN0eCk7CisJYmxf ZGV2LT5wcm9wcy5icmlnaHRuZXNzID0gYnJpZ2h0bmVzczsKKworCXJldHVybiAwOworfQorCitz dGF0aWMgaW50IHM2ZTNoYTJfc2V0X2JyaWdodG5lc3Moc3RydWN0IGJhY2tsaWdodF9kZXZpY2Ug KmJsX2RldikKK3sKKwlzdHJ1Y3QgczZlM2hhMiAqY3R4ID0gKHN0cnVjdCBzNmUzaGEyICopYmxf Z2V0X2RhdGEoYmxfZGV2KTsKKwl1bnNpZ25lZCBpbnQgYnJpZ2h0bmVzcyA9IGJsX2Rldi0+cHJv cHMuYnJpZ2h0bmVzczsKKworCWlmIChicmlnaHRuZXNzIDwgUzZFM0hBMl9NSU5fQlJJR0hUTkVT UyB8fAorCQlicmlnaHRuZXNzID4gYmxfZGV2LT5wcm9wcy5tYXhfYnJpZ2h0bmVzcykgeworCQlk ZXZfZXJyKGN0eC0+ZGV2LCAiSW52YWxpZCBicmlnaHRuZXNzOiAldVxuIiwgYnJpZ2h0bmVzcyk7 CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWlmIChibF9kZXYtPnByb3BzLnBvd2VyID4gRkJf QkxBTktfTk9STUFMKSB7CisJCWRldl9lcnIoY3R4LT5kZXYsCisJCQkicGFuZWwgbXVzdCBiZSBh dCBsZWFzdCBpbiBmYiBibGFuayBub3JtYWwgc3RhdGVcbiIpOworCQlyZXR1cm4gLUVQRVJNOwor CX0KKworCXM2ZTNoYTJfdGVzdF9rZXlfb25fZjAoY3R4KTsKKwlzNmUzaGEyX3VwZGF0ZV9nYW1t YShjdHgsIGJyaWdodG5lc3MpOworCXM2ZTNoYTJfYW9yX2NvbnRyb2woY3R4KTsKKwlzNmUzaGEy X3NldF92aW50KGN0eCk7CisJczZlM2hhMl90ZXN0X2tleV9vZmZfZjAoY3R4KTsKKworCXJldHVy biBjdHgtPmVycm9yOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGJhY2tsaWdodF9vcHMgczZl M2hhMl9ibF9vcHMgPSB7CisJLmdldF9icmlnaHRuZXNzID0gczZlM2hhMl9nZXRfYnJpZ2h0bmVz cywKKwkudXBkYXRlX3N0YXR1cyA9IHM2ZTNoYTJfc2V0X2JyaWdodG5lc3MsCit9OworCitzdGF0 aWMgdm9pZCBzNmUzaGEyX3BhbmVsX2luaXQoc3RydWN0IHM2ZTNoYTIgKmN0eCkKK3sKKwlzdHJ1 Y3QgbWlwaV9kc2lfZGV2aWNlICpkc2kgPSB0b19taXBpX2RzaV9kZXZpY2UoY3R4LT5kZXYpOwor CXUzMiByZXNldF9kZWxheSA9IGN0eC0+cmVzZXRfZGVsYXkgKiAxMDAwOworCisJbWlwaV9kc2lf ZGNzX2V4aXRfc2xlZXBfbW9kZShkc2kpOworCXVzbGVlcF9yYW5nZShyZXNldF9kZWxheSwgcmVz ZXRfZGVsYXkgKyAxMDAwKTsKKworCXM2ZTNoYTJfdGVzdF9rZXlfb25fZjAoY3R4KTsKKwlzNmUz aGEyX3NpbmdsZV9kc2lfc2V0KGN0eCk7CisJczZlM2hhMl90ZXN0X2tleV9vbl9mYyhjdHgpOwor CXM2ZTNoYTJfZnJlcV9jYWxpYnJhdGlvbihjdHgpOworCXM2ZTNoYTJfdGVzdF9rZXlfb2ZmX2Zj KGN0eCk7CisJczZlM2hhMl90ZXN0X2tleV9vZmZfZjAoY3R4KTsKK30KKworc3RhdGljIGludCBz NmUzaGEyX3Bvd2VyX29mZihzdHJ1Y3QgczZlM2hhMiAqY3R4KQoreworCXJldHVybiByZWd1bGF0 b3JfYnVsa19kaXNhYmxlKEFSUkFZX1NJWkUoY3R4LT5zdXBwbGllcyksIGN0eC0+c3VwcGxpZXMp OworfQorCitzdGF0aWMgaW50IHM2ZTNoYTJfZGlzYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5l bCkKK3sKKwlzdHJ1Y3QgczZlM2hhMiAqY3R4ID0gY29udGFpbmVyX29mKHBhbmVsLCBzdHJ1Y3Qg czZlM2hhMiwgcGFuZWwpOworCXN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRzaSA9IHRvX21pcGlf ZHNpX2RldmljZShjdHgtPmRldik7CisKKwltaXBpX2RzaV9kY3NfZW50ZXJfc2xlZXBfbW9kZShk c2kpOworCWlmIChjdHgtPmVycm9yICE9IDApCisJCWdvdG8gZXJyOworCisJbWlwaV9kc2lfZGNz X3NldF9kaXNwbGF5X29mZihkc2kpOworCWlmIChjdHgtPmVycm9yICE9IDApCisJCWdvdG8gZXJy OworCisJbXNsZWVwKDQwKTsKKwljdHgtPmJsX2Rldi0+cHJvcHMucG93ZXIgPSBGQl9CTEFOS19O T1JNQUw7CisKKwlyZXR1cm4gMDsKK2VycjoKKwlyZXR1cm4gY3R4LT5lcnJvcjsKK30KKworc3Rh dGljIGludCBzNmUzaGEyX3VucHJlcGFyZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3sKKwlz dHJ1Y3QgczZlM2hhMiAqY3R4ID0gY29udGFpbmVyX29mKHBhbmVsLCBzdHJ1Y3QgczZlM2hhMiwg cGFuZWwpOworCWludCByZXQ7CisKKwlyZXQgPSBzNmUzaGEyX2NsZWFyX2Vycm9yKGN0eCk7CisJ aWYgKCFyZXQpCisJCWN0eC0+YmxfZGV2LT5wcm9wcy5wb3dlciA9IEZCX0JMQU5LX1BPV0VSRE9X TjsKKworCXJldHVybiBzNmUzaGEyX3Bvd2VyX29mZihjdHgpOworfQorCitzdGF0aWMgaW50IHM2 ZTNoYTJfcG93ZXJfb24oc3RydWN0IHM2ZTNoYTIgKmN0eCkKK3sKKwl1MzIgcmVzZXRfZGVsYXkg PSBjdHgtPnJlc2V0X2RlbGF5ICogMTAwMDsKKwlpbnQgcmV0OworCisJcmV0ID0gcmVndWxhdG9y X2J1bGtfZW5hYmxlKEFSUkFZX1NJWkUoY3R4LT5zdXBwbGllcyksIGN0eC0+c3VwcGxpZXMpOwor CWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJbXNsZWVwKGN0eC0+cG93ZXJfb25fZGVs YXkpOworCisJZ3Bpb2Rfc2V0X3ZhbHVlKGN0eC0+ZW5hYmxlX2dwaW8sIDApOworCXVzbGVlcF9y YW5nZShyZXNldF9kZWxheSwgcmVzZXRfZGVsYXkgKyAxMDAwKTsKKwlncGlvZF9zZXRfdmFsdWUo Y3R4LT5lbmFibGVfZ3BpbywgMSk7CisKKwlncGlvZF9zZXRfdmFsdWUoY3R4LT5yZXNldF9ncGlv LCAwKTsKKwl1c2xlZXBfcmFuZ2UocmVzZXRfZGVsYXksIHJlc2V0X2RlbGF5ICsgMTAwMCk7CisJ Z3Bpb2Rfc2V0X3ZhbHVlKGN0eC0+cmVzZXRfZ3BpbywgMSk7CisJdXNsZWVwX3JhbmdlKHJlc2V0 X2RlbGF5LCByZXNldF9kZWxheSArIDEwMDApOworCisJcmV0dXJuIDA7Cit9CitzdGF0aWMgaW50 IHM2ZTNoYTJfcHJlcGFyZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3sKKwlzdHJ1Y3QgczZl M2hhMiAqY3R4ID0gY29udGFpbmVyX29mKHBhbmVsLCBzdHJ1Y3QgczZlM2hhMiwgcGFuZWwpOwor CWludCByZXQ7CisKKwlyZXQgPSBzNmUzaGEyX3Bvd2VyX29uKGN0eCk7CisJaWYgKHJldCA8IDAp CisJCXJldHVybiByZXQ7CisKKwlzNmUzaGEyX3BhbmVsX2luaXQoY3R4KTsKKworCXJldCA9IHM2 ZTNoYTJfY2xlYXJfZXJyb3IoY3R4KTsKKwlpZiAocmV0IDwgMCkgeworCQlzNmUzaGEyX3Bvd2Vy X29mZihjdHgpOworCQlyZXR1cm4gcmV0OworCX0KKworCWN0eC0+YmxfZGV2LT5wcm9wcy5wb3dl ciA9IEZCX0JMQU5LX05PUk1BTDsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHM2ZTNo YTJfZW5hYmxlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQoreworCXN0cnVjdCBzNmUzaGEyICpj dHggPSBjb250YWluZXJfb2YocGFuZWwsIHN0cnVjdCBzNmUzaGEyLCBwYW5lbCk7CisJc3RydWN0 IG1pcGlfZHNpX2RldmljZSAqZHNpID0gdG9fbWlwaV9kc2lfZGV2aWNlKGN0eC0+ZGV2KTsKKwor CS8qIGNvbW1vbiBzZXR0aW5nICovCisJbWlwaV9kc2lfZGNzX3NldF90ZWFyX29uKGRzaSwgTUlQ SV9EU0lfRENTX1RFQVJfTU9ERV9WQkxBTkspOworCisJczZlM2hhMl90ZXN0X2tleV9vbl9mMChj dHgpOworCXM2ZTNoYTJfdGVzdF9rZXlfb25fZmMoY3R4KTsKKwlzNmUzaGEyX3RvdWNoX2hzeW5j X29uMShjdHgpOworCXM2ZTNoYTJfcGVudGlsZV9jb250cm9sKGN0eCk7CisJczZlM2hhMl9wb2Nf Z2xvYmFsKGN0eCk7CisJczZlM2hhMl9wb2Nfc2V0dGluZyhjdHgpOworCXM2ZTNoYTJfdGVzdF9r ZXlfb2ZmX2ZjKGN0eCk7CisKKwkvKiBwY2Qgc2V0dGluZyBvZmYgZm9yIFRCICovCisJczZlM2hh Ml9wY2Rfc2V0X29mZihjdHgpOworCXM2ZTNoYTJfZXJyX2ZnX3NldChjdHgpOworCXM2ZTNoYTJf dGVfc3RhcnRfc2V0dGluZyhjdHgpOworCisJLyogYnJpZ2h0bmVzcyBzZXR0aW5nICovCisJczZl M2hhMl9zZXRfYnJpZ2h0bmVzcyhjdHgtPmJsX2Rldik7CisJczZlM2hhMl9hb3JfY29udHJvbChj dHgpOworCXM2ZTNoYTJfY2Fwc19lbHZzc19zZXQoY3R4KTsKKwlzNmUzaGEyX2dhbW1hX3VwZGF0 ZShjdHgpOworCXM2ZTNoYTJfYWNsX29mZihjdHgpOworCXM2ZTNoYTJfYWNsX29mZl9vcHIoY3R4 KTsKKwlzNmUzaGEyX2hibV9vZmYoY3R4KTsKKworCS8qIGVsdnNzIHRlbXAgY29tcGVuc2F0aW9u ICovCisJczZlM2hhMl90ZXN0X2dsb2JhbChjdHgpOworCXM2ZTNoYTJfdGVzdChjdHgpOworCXM2 ZTNoYTJfdGVzdF9rZXlfb2ZmX2YwKGN0eCk7CisKKwltaXBpX2RzaV9kY3Nfc2V0X2Rpc3BsYXlf b24oZHNpKTsKKwlpZiAoY3R4LT5lcnJvciAhPSAwKQorCQlyZXR1cm4gY3R4LT5lcnJvcjsKKwor CWN0eC0+YmxfZGV2LT5wcm9wcy5wb3dlciA9IEZCX0JMQU5LX1VOQkxBTks7CisKKwlyZXR1cm4g MDsKK30KKworc3RhdGljIGludCBzNmUzaGEyX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpw YW5lbCkKK3sKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gcGFuZWwtPmNvbm5l Y3RvcjsKKwlzdHJ1Y3QgczZlM2hhMiAqY3R4ID0gY29udGFpbmVyX29mKHBhbmVsLCBzdHJ1Y3Qg czZlM2hhMiwgcGFuZWwpOworCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOworCisJbW9k ZSA9IGRybV9tb2RlX2NyZWF0ZShjb25uZWN0b3ItPmRldik7CisJaWYgKCFtb2RlKSB7CisJCURS TV9FUlJPUigiZmFpbGVkIHRvIGNyZWF0ZSBhIG5ldyBkaXNwbGF5IG1vZGVcbiIpOworCQlyZXR1 cm4gMDsKKwl9CisKKwlkcm1fZGlzcGxheV9tb2RlX2Zyb21fdmlkZW9tb2RlKCZjdHgtPnZtLCBt b2RlKTsKKwltb2RlLT52cmVmcmVzaCA9IDYwOworCW1vZGUtPndpZHRoX21tID0gNzE7CisJbW9k ZS0+aGVpZ2h0X21tID0gMTI1OworCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLndpZHRoX21tID0g bW9kZS0+d2lkdGhfbW07CisJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tID0gbW9k ZS0+aGVpZ2h0X21tOworCisJbW9kZS0+dHlwZSA9IERSTV9NT0RFX1RZUEVfRFJJVkVSIHwgRFJN X01PREVfVFlQRV9QUkVGRVJSRUQ7CisJZHJtX21vZGVfcHJvYmVkX2FkZChjb25uZWN0b3IsIG1v ZGUpOworCisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3BhbmVsX2Z1 bmNzIHM2ZTNoYTJfZHJtX2Z1bmNzID0geworCS5kaXNhYmxlID0gczZlM2hhMl9kaXNhYmxlLAor CS51bnByZXBhcmUgPSBzNmUzaGEyX3VucHJlcGFyZSwKKwkucHJlcGFyZSA9IHM2ZTNoYTJfcHJl cGFyZSwKKwkuZW5hYmxlID0gczZlM2hhMl9lbmFibGUsCisJLmdldF9tb2RlcyA9IHM2ZTNoYTJf Z2V0X21vZGVzLAorfTsKKworc3RhdGljIGludCBzNmUzaGEyX3BhcnNlX2R0KHN0cnVjdCBzNmUz aGEyICpjdHgpCit7CisJc3RydWN0IGRldmljZSAqZGV2ID0gY3R4LT5kZXY7CisJc3RydWN0IGRl dmljZV9ub2RlICpucCA9IGRldi0+b2Zfbm9kZTsKKwlpbnQgcmV0OworCisJcmV0ID0gb2ZfZ2V0 X3ZpZGVvbW9kZShkZXYtPm9mX25vZGUsICZjdHgtPnZtLCAwKTsKKwlpZiAocmV0IDwgMCkKKwkJ cmV0dXJuIHJldDsKKworCW9mX3Byb3BlcnR5X3JlYWRfdTMyKG5wLCAicG93ZXItb24tZGVsYXki LCAmY3R4LT5wb3dlcl9vbl9kZWxheSk7CisJb2ZfcHJvcGVydHlfcmVhZF91MzIobnAsICJyZXNl dC1kZWxheSIsICZjdHgtPnJlc2V0X2RlbGF5KTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMg aW50IHM2ZTNoYTJfcHJvYmUoc3RydWN0IG1pcGlfZHNpX2RldmljZSAqZHNpKQoreworCXN0cnVj dCBkZXZpY2UgKmRldiA9ICZkc2ktPmRldjsKKwlzdHJ1Y3QgczZlM2hhMiAqY3R4OworCWludCBy ZXQ7CisKKwljdHggPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKmN0eCksIEdGUF9LRVJORUwp OworCWlmICghY3R4KQorCQlyZXR1cm4gLUVOT01FTTsKKworCW1pcGlfZHNpX3NldF9kcnZkYXRh KGRzaSwgY3R4KTsKKworCWN0eC0+ZGV2ID0gZGV2OworCisJZHNpLT5sYW5lcyA9IDQ7CisJZHNp LT5mb3JtYXQgPSBNSVBJX0RTSV9GTVRfUkdCODg4OworCWRzaS0+bW9kZV9mbGFncyA9IE1JUElf RFNJX0NMT0NLX05PTl9DT05USU5VT1VTOworCisJcmV0ID0gczZlM2hhMl9wYXJzZV9kdChjdHgp OworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJY3R4LT5zdXBwbGllc1swXS5zdXBw bHkgPSAidmRkMyI7CisJY3R4LT5zdXBwbGllc1sxXS5zdXBwbHkgPSAidmNpIjsKKworCXJldCA9 IGRldm1fcmVndWxhdG9yX2J1bGtfZ2V0KGRldiwgQVJSQVlfU0laRShjdHgtPnN1cHBsaWVzKSwK KwkJCQkgICAgICBjdHgtPnN1cHBsaWVzKTsKKwlpZiAocmV0IDwgMCkgeworCQlkZXZfZXJyKGRl diwgImZhaWxlZCB0byBnZXQgcmVndWxhdG9yczogJWRcbiIsIHJldCk7CisJCXJldHVybiByZXQ7 CisJfQorCisJY3R4LT5yZXNldF9ncGlvID0gZGV2bV9ncGlvZF9nZXQoZGV2LCAicmVzZXQiLCBH UElPRF9PVVRfSElHSCk7CisJaWYgKElTX0VSUihjdHgtPnJlc2V0X2dwaW8pKSB7CisJCWRldl9l cnIoZGV2LCAiY2Fubm90IGdldCByZXNldC1ncGlvcyAlbGRcbiIsCisJCQlQVFJfRVJSKGN0eC0+ cmVzZXRfZ3BpbykpOworCQlyZXR1cm4gUFRSX0VSUihjdHgtPnJlc2V0X2dwaW8pOworCX0KKwor CWN0eC0+ZW5hYmxlX2dwaW8gPSBkZXZtX2dwaW9kX2dldChkZXYsICJlbmFibGUiLCBHUElPRF9P VVRfSElHSCk7CisJaWYgKElTX0VSUihjdHgtPmVuYWJsZV9ncGlvKSkgeworCQlkZXZfZXJyKGRl diwgImNhbm5vdCBnZXQgZW5hYmxlLWdwaW9zICVsZFxuIiwKKwkJCVBUUl9FUlIoY3R4LT5lbmFi bGVfZ3BpbykpOworCQlyZXR1cm4gUFRSX0VSUihjdHgtPmVuYWJsZV9ncGlvKTsKKwl9CisKKwlj dHgtPmJsX2RldiA9IGJhY2tsaWdodF9kZXZpY2VfcmVnaXN0ZXIoInM2ZTNoYTIiLCBkZXYsIGN0 eCwKKwkJCQkJCSZzNmUzaGEyX2JsX29wcywgTlVMTCk7CisJaWYgKElTX0VSUihjdHgtPmJsX2Rl dikpIHsKKwkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gcmVnaXN0ZXIgYmFja2xpZ2h0IGRldmlj ZVxuIik7CisJCXJldHVybiBQVFJfRVJSKGN0eC0+YmxfZGV2KTsKKwl9CisKKwljdHgtPmJsX2Rl di0+cHJvcHMubWF4X2JyaWdodG5lc3MgPSBTNkUzSEEyX01BWF9CUklHSFRORVNTOworCWN0eC0+ YmxfZGV2LT5wcm9wcy5icmlnaHRuZXNzID0gUzZFM0hBMl9ERUZBVUxUX0JSSUdIVE5FU1M7CisJ Y3R4LT5ibF9kZXYtPnByb3BzLnBvd2VyID0gRkJfQkxBTktfUE9XRVJET1dOOworCisJZHJtX3Bh bmVsX2luaXQoJmN0eC0+cGFuZWwpOworCWN0eC0+cGFuZWwuZGV2ID0gZGV2OworCWN0eC0+cGFu ZWwuZnVuY3MgPSAmczZlM2hhMl9kcm1fZnVuY3M7CisKKwlyZXQgPSBkcm1fcGFuZWxfYWRkKCZj dHgtPnBhbmVsKTsKKwlpZiAocmV0IDwgMCkKKwkJZ290byB1bnJlZ2lzdGVyX2JhY2tsaWdodDsK KworCXJldCA9IG1pcGlfZHNpX2F0dGFjaChkc2kpOworCWlmIChyZXQgPCAwKQorCQlnb3RvIHJl bW92ZV9wYW5lbDsKKworCXJldHVybiByZXQ7CisKK3JlbW92ZV9wYW5lbDoKKwlkcm1fcGFuZWxf cmVtb3ZlKCZjdHgtPnBhbmVsKTsKKwordW5yZWdpc3Rlcl9iYWNrbGlnaHQ6CisJYmFja2xpZ2h0 X2RldmljZV91bnJlZ2lzdGVyKGN0eC0+YmxfZGV2KTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0 YXRpYyBpbnQgczZlM2hhMl9yZW1vdmUoc3RydWN0IG1pcGlfZHNpX2RldmljZSAqZHNpKQorewor CXN0cnVjdCBzNmUzaGEyICpjdHggPSBtaXBpX2RzaV9nZXRfZHJ2ZGF0YShkc2kpOworCisJbWlw aV9kc2lfZGV0YWNoKGRzaSk7CisJZHJtX3BhbmVsX3JlbW92ZSgmY3R4LT5wYW5lbCk7CisJYmFj a2xpZ2h0X2RldmljZV91bnJlZ2lzdGVyKGN0eC0+YmxfZGV2KTsKKworCXJldHVybiAwOworfQor CitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzNmUzaGEyX29mX21hdGNoW10gPSB7 CisJeyAuY29tcGF0aWJsZSA9ICJzYW1zdW5nLHM2ZTNoYTIiIH0sCisJeyB9Cit9OworTU9EVUxF X0RFVklDRV9UQUJMRShvZiwgczZlM2hhMl9vZl9tYXRjaCk7CisKK3N0YXRpYyBzdHJ1Y3QgbWlw aV9kc2lfZHJpdmVyIHM2ZTNoYTJfZHJpdmVyID0geworCS5wcm9iZSA9IHM2ZTNoYTJfcHJvYmUs CisJLnJlbW92ZSA9IHM2ZTNoYTJfcmVtb3ZlLAorCS5kcml2ZXIgPSB7CisJCS5uYW1lID0gInBh bmVsLXNhbXN1bmctczZlM2hhMiIsCisJCS5vZl9tYXRjaF90YWJsZSA9IHM2ZTNoYTJfb2ZfbWF0 Y2gsCisJfSwKK307Cittb2R1bGVfbWlwaV9kc2lfZHJpdmVyKHM2ZTNoYTJfZHJpdmVyKTsKKwor TU9EVUxFX0FVVEhPUigiRG9uZ2h3YSBMZWUgPGRoMDkubGVlQHNhbXN1bmcuY29tPiIpOworTU9E VUxFX0FVVEhPUigiSHl1bmd3b24gSHdhbmcgPGh1bWFuLmh3YW5nQHNhbXN1bmcuY29tPiIpOwor TU9EVUxFX0FVVEhPUigiSG9lZ2V1biBLd29uIDxob2VnZXVuLmt3b25Ac2Ftc3VuZy5jb20+Iik7 CitNT0RVTEVfREVTQ1JJUFRJT04oIk1JUEktRFNJIGJhc2VkIHM2ZTNoYTIgQU1PTEVEIFBhbmVs IERyaXZlciIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwotLSAKMS45LjEKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=