From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from smtp38.i.mail.ru ([94.100.177.98]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gYlpO-0007sr-9V for barebox@lists.infradead.org; Mon, 17 Dec 2018 05:52:34 +0000 From: Alexander Shiyan Date: Mon, 17 Dec 2018 08:51:49 +0300 Message-Id: <20181217055149.15355-2-shc_work@mail.ru> In-Reply-To: <20181217055149.15355-1-shc_work@mail.ru> References: <20181217055149.15355-1-shc_work@mail.ru> 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" Errors-To: barebox-bounces+u.kleine-koenig=pengutronix.de@lists.infradead.org Subject: [PATCH V2 2/2] ARM: CCMX51: Switch to multiimage support To: barebox@lists.infradead.org VGhpcyBpcyBhIGN1bXVsYXRpdmUgcGF0Y2ggZm9yIHRoZSBEaWdpIENvbm5lY3RDb3JlIENDTVg1 MSBTT00uCkl0IGluY2x1ZGVzOgotIFN3aXRjaCBib2FyZCB0byBkZXZpY2V0cmVlIHByb2JlLgot IEFkZCBNTUMgdXBkYXRlIGhhbmRsZXIuCi0gU3dpdGNoIHRvIG11bHRpaW1hZ2Ugc3VwcG9ydC4K LSBDbGVhbnVwIGFuZCBvcHRpbWl6ZSBib2FyZCBjb2RlLgoKU2lnbmVkLW9mZi1ieTogQWxleGFu ZGVyIFNoaXlhbiA8c2hjX3dvcmtAbWFpbC5ydT4KLS0tCiBhcmNoL2FybS9NYWtlZmlsZSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSAtCiBhcmNoL2FybS9ib2FyZHMvY2N4 bXg1MS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogYXJjaC9hcm0vYm9hcmRz L2NjeG14NTEvY2N4bXg1MS5jICAgICAgICAgICAgICAgICAgfCA2MjEgKysrKysrKy0tLS0tLS0t LS0tLS0tCiBhcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9jY3hteDUxLmggICAgICAgICAgICAgICAg ICB8ICAzNSAtLQogYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvY2N4bXg1MWpzLmMgICAgICAgICAg ICAgICAgfCAxMDMgLS0tLQogLi4uL2NjeG14NTEve2VudiA9PiBkZWZhdWx0ZW52LWNjeG14NTF9 L2Jvb3QvbmFuZCAgfCAgIDAKIC4uLi9udi9hdXRvYm9vdF90aW1lb3V0ICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAwCiAuLi4ve2VudiA9PiBkZWZhdWx0ZW52LWNjeG14NTF9L252L2Jv b3QuZGVmYXVsdCAgICB8ICAgMAogLi4uL2RlZmF1bHRlbnYtY2N4bXg1MS9udi9saW51eC5ib290 YXJncy5iYXNlICAgICAgfCAgIDEgKwogYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvZW52L2luaXQv bXRkcGFydHMtbmFuZCAgICAgfCAgIDYgLQogYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvbG93bGV2 ZWwuYyAgICAgICAgICAgICAgICAgfCAgMTIgKy0KIGFyY2gvYXJtL2NvbmZpZ3MvY2NteDUxX2Rl ZmNvbmZpZyAgICAgICAgICAgICAgICAgIHwgIDYwIC0tCiBhcmNoL2FybS9jb25maWdzL2lteF92 N19kZWZjb25maWcgICAgICAgICAgICAgICAgICB8ICAgMiArLQogYXJjaC9hcm0vZHRzL01ha2Vm aWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogYXJjaC9hcm0vZHRzL2lt eDUxLWNjeG14NTEuZHRzICAgICAgICAgICAgICAgICAgICAgfCAgMzggKysKIGFyY2gvYXJtL21h Y2gtaW14L0tjb25maWcgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMxICstCiBpbWFnZXMv TWFrZWZpbGUuaW14ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNSArCiAxNyBm aWxlcyBjaGFuZ2VkLCAyODQgaW5zZXJ0aW9ucygrKSwgNjM2IGRlbGV0aW9ucygtKQogZGVsZXRl IG1vZGUgMTAwNjQ0IGFyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2NjeG14NTEuaAogZGVsZXRlIG1v ZGUgMTAwNjQ0IGFyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2NjeG14NTFqcy5jCiByZW5hbWUgYXJj aC9hcm0vYm9hcmRzL2NjeG14NTEve2VudiA9PiBkZWZhdWx0ZW52LWNjeG14NTF9L2Jvb3QvbmFu ZCAoMTAwJSkKIHJlbmFtZSBhcmNoL2FybS9ib2FyZHMvY2N4bXg1MS97ZW52ID0+IGRlZmF1bHRl bnYtY2N4bXg1MX0vbnYvYXV0b2Jvb3RfdGltZW91dCAoMTAwJSkKIHJlbmFtZSBhcmNoL2FybS9i b2FyZHMvY2N4bXg1MS97ZW52ID0+IGRlZmF1bHRlbnYtY2N4bXg1MX0vbnYvYm9vdC5kZWZhdWx0 ICgxMDAlKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2RlZmF1 bHRlbnYtY2N4bXg1MS9udi9saW51eC5ib290YXJncy5iYXNlCiBkZWxldGUgbW9kZSAxMDA2NDQg YXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvZW52L2luaXQvbXRkcGFydHMtbmFuZAogZGVsZXRlIG1v ZGUgMTAwNjQ0IGFyY2gvYXJtL2NvbmZpZ3MvY2NteDUxX2RlZmNvbmZpZwogY3JlYXRlIG1vZGUg MTAwNjQ0IGFyY2gvYXJtL2R0cy9pbXg1MS1jY3hteDUxLmR0cwoKZGlmZiAtLWdpdCBhL2FyY2gv YXJtL01ha2VmaWxlIGIvYXJjaC9hcm0vTWFrZWZpbGUKaW5kZXggNWRiNjdiOWRiLi4yZDU1YmM2 OWEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL01ha2VmaWxlCisrKyBiL2FyY2gvYXJtL01ha2VmaWxl CkBAIC0yNDYsNyArMjQ2LDYgQEAgYmFyZWJveC5pbXhpbWc6ICQoS0JVSUxEX0JJTkFSWSkgRk9S Q0UKIAogYm9hcmRkaXIgPSAkKHNyY3RyZWUpL2FyY2gvYXJtL2JvYXJkcwogaW14Y2ZnLSQoQ09O RklHX01BQ0hfRlJFRVNDQUxFX01YNTNfU01EKSArPSAkKGJvYXJkZGlyKS9mcmVlc2NhbGUtbXg1 My1zbWQvZmxhc2gtaGVhZGVyLmlteGNmZwotaW14Y2ZnLSQoQ09ORklHX01BQ0hfQ0NNWDUxKSAr PSAkKGJvYXJkZGlyKS9jY3hteDUxL2ZsYXNoLWhlYWRlci5pbXhjZmcKIGlteGNmZy0kKENPTkZJ R19NQUNIX1RYNTEpICs9ICQoYm9hcmRkaXIpL2thcm8tdHg1MS9mbGFzaC1oZWFkZXIta2Fyby10 eDUxLmlteGNmZwogaW14Y2ZnLSQoQ09ORklHX01BQ0hfR1VGX1ZJTkNFTEwpICs9ICQoYm9hcmRk aXIpL2d1Zi12aW5jZWxsL2ZsYXNoLWhlYWRlci5pbXhjZmcKIGlteGNmZy0kKENPTkZJR19NQUNI X0VVS1JFQV9DUFVJTVg1MVNEKSArPSAkKGJvYXJkZGlyKS9ldWtyZWFfY3B1aW14NTEvZmxhc2gt aGVhZGVyLmlteGNmZwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvTWFrZWZp bGUgYi9hcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9NYWtlZmlsZQppbmRleCA2YmE5OGIxMmQuLjUw Y2Y5MjljNSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvTWFrZWZpbGUKKysr IGIvYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvTWFrZWZpbGUKQEAgLTEsMyArMSwzIEBACiBvYmot eQkJCQkJKz0gY2N4bXg1MS5vCi1sd2wteQkJCQkrPSBsb3dsZXZlbC5vCi1vYmotJChDT05GSUdf TUFDSF9DQ01YNTFfQkFTRUJPQVJEKQkrPSBjY3hteDUxanMubworbHdsLXkJCQkJCSs9IGxvd2xl dmVsLm8KK2JiZW52LSQoQ09ORklHX0RFRkFVTFRfRU5WSVJPTk1FTlQpCSs9IGRlZmF1bHRlbnYt Y2N4bXg1MQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvY2N4bXg1MS5jIGIv YXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvY2N4bXg1MS5jCmluZGV4IDcxYTUxZTE5Mi4uMzA4ZWRl MmJmIDEwMDY0NAotLS0gYS9hcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9jY3hteDUxLmMKKysrIGIv YXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvY2N4bXg1MS5jCkBAIC0yLDQ3NiArMiwyODUgQEAKICAq IChDKSBDb3B5cmlnaHQgMjAwOS0yMDEwIERpZ2kgSW50ZXJuYXRpb25hbCwgSW5jLgogICogQ29w eXJpZ2h0IChDKSAyMDA3IFNhc2NoYSBIYXVlciwgUGVuZ3V0cm9uaXgKICAqIChjKSAyMDExIEV1 a3JlYSBFbGVjdHJvbWF0aXF1ZSwgRXJpYyBCw6luYXJkIDxlcmljQGV1a3JlYS5jb20+CisgKiBN b2RpZmllZCBmb3IgYmFyZWJveCBieSBBbGV4YW5kZXIgU2hpeWFuIDxzaGNfd29ya0BtYWlsLnJ1 PgogICoKICAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCiAgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgogICogdGhlIExpY2Vuc2UsIG9yIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQotICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KLSAqCiAgKi8KIAogI2luY2x1ZGUgPGNvbW1vbi5oPgotI2luY2x1ZGUgPG5ldC5oPgorI2lu Y2x1ZGUgPGVudmZzLmg+CiAjaW5jbHVkZSA8aW5pdC5oPgotI2luY2x1ZGUgPGVudmlyb25tZW50 Lmg+Ci0jaW5jbHVkZSA8bWFjaC9pbXg1MS1yZWdzLmg+Ci0jaW5jbHVkZSA8cGxhdGZvcm1fZGF0 YS9ldGgtZmVjLmg+CisjaW5jbHVkZSA8bmV0Lmg+CisjaW5jbHVkZSA8bm90aWZpZXIuaD4KICNp bmNsdWRlIDxhc20vYXJtbGludXguaD4KLSNpbmNsdWRlIDxnZW5lcmF0ZWQvbWFjaC10eXBlcy5o PgotI2luY2x1ZGUgPHBhcnRpdGlvbi5oPgotI2luY2x1ZGUgPGZzLmg+Ci0jaW5jbHVkZSA8ZmNu dGwuaD4KICNpbmNsdWRlIDxsaW51eC9zaXplcy5oPgotI2luY2x1ZGUgPG5hbmQuaD4KLSNpbmNs dWRlIDxub3RpZmllci5oPgotI2luY2x1ZGUgPHNwaS9zcGkuaD4KICNpbmNsdWRlIDxtZmQvbWMx M3h4eC5oPgotI2luY2x1ZGUgPGFzbS9pby5oPgotI2luY2x1ZGUgPG1hY2gvaW14LW5hbmQuaD4K LSNpbmNsdWRlIDxtYWNoL3NwaS5oPgotI2luY2x1ZGUgPG1hY2gvZ2VuZXJpYy5oPgotI2luY2x1 ZGUgPG1hY2gvaW9tdXgtbXg1MS5oPgotI2luY2x1ZGUgPG1hY2gvZGV2aWNlcy1pbXg1MS5oPgor I2luY2x1ZGUgPG1mZC9tYzEzODkyLmg+CisKKyNpbmNsdWRlIDxtYWNoL2JidS5oPgorI2luY2x1 ZGUgPG1hY2gvZXNkY3RsLmg+CiAjaW5jbHVkZSA8bWFjaC9paW0uaD4KLSNpbmNsdWRlIDxtYWNo L2Nsb2NrLWlteDUxXzUzLmg+CiAjaW5jbHVkZSA8bWFjaC9pbXg1Lmg+CisjaW5jbHVkZSA8bWFj aC9pbXg1MS1yZWdzLmg+CiAjaW5jbHVkZSA8bWFjaC9yZXZpc2lvbi5oPgotI2luY2x1ZGUgPG1h Y2gvZXNkY3RsLmg+Ci0KLSNpbmNsdWRlICJjY3hteDUxLmgiCi0KLXN0YXRpYyBzdHJ1Y3QgY2N4 bXg1MV9pZGVudCBjY3hteDUxX2lkc1tdID0gewotLyogMHgwMCAqLwl7ICJVbmtub3duIiwJCQkJ CQkwLCAgICAgICAwLCAwLCAwLCAwIH0sCi0vKiAweDAxICovCXsgIk5vdCBzdXBwb3J0ZWQiLAkJ CQkJMCwgICAgICAgMCwgMCwgMCwgMCB9LAotLyogMHgwMiAqLwl7ICJpLk1YNTE1QDgwME1Ieiwg V2lyZWxlc3MsIFBIWSwgRXh0LiBFdGgsIEFjY2VsIiwJU1pfNTEyTSwgMCwgMSwgMSwgMSB9LAot LyogMHgwMyAqLwl7ICJpLk1YNTE1QDgwME1IeiwgUEhZLCBFeHQuIEV0aCwgQWNjZWwiLAkJU1pf NTEyTSwgMCwgMSwgMSwgMCB9LAotLyogMHgwNCAqLwl7ICJpLk1YNTE1QDYwME1IeiwgV2lyZWxl c3MsIFBIWSwgRXh0LiBFdGgsIEFjY2VsIiwJU1pfNTEyTSwgMSwgMSwgMSwgMSB9LAotLyogMHgw NSAqLwl7ICJpLk1YNTE1QDYwME1IeiwgUEhZLCBFeHQuIEV0aCwgQWNjZWwiLAkJU1pfNTEyTSwg MSwgMSwgMSwgMCB9LAotLyogMHgwNiAqLwl7ICJpLk1YNTE1QDgwME1IeiwgV2lyZWxlc3MsIFBI WSwgQWNjZWwiLAkJU1pfNTEyTSwgMCwgMSwgMCwgMSB9LAotLyogMHgwNyAqLwl7ICJpLk1YNTE1 QDgwME1IeiwgUEhZLCBBY2NlbCIsCQkJCVNaXzUxMk0sIDAsIDEsIDAsIDAgfSwKLS8qIDB4MDgg Ki8JeyAiaS5NWDUxNUA4MDBNSHosIFdpcmVsZXNzLCBQSFksIEFjY2VsIiwJCVNaXzI1Nk0sIDAs IDEsIDAsIDEgfSwKLS8qIDB4MDkgKi8JeyAiaS5NWDUxNUA4MDBNSHosIFBIWSwgQWNjZWwiLAkJ CQlTWl8yNTZNLCAwLCAxLCAwLCAwIH0sCi0vKiAweDBhICovCXsgImkuTVg1MTVANjAwTUh6LCBX aXJlbGVzcywgUEhZLCBBY2NlbCIsCQlTWl8yNTZNLCAxLCAxLCAwLCAxIH0sCi0vKiAweDBiICov CXsgImkuTVg1MTVANjAwTUh6LCBQSFksIEFjY2VsIiwJCQkJU1pfMjU2TSwgMSwgMSwgMCwgMCB9 LAotLyogMHgwYyAqLwl7ICJpLk1YNTE1QDgwME1IeiwgV2lyZWxlc3MsIFBIWSwgQWNjZWwiLAkJ U1pfMTI4TSwgMCwgMSwgMCwgMSB9LAotLyogMHgwZCAqLwl7ICJpLk1YNTEyQDgwME1IeiIsCQkJ CQlTWl8xMjhNLCAwLCAwLCAwLCAwIH0sCi0vKiAweDBlICovCXsgImkuTVg1MTVAODAwTUh6LCBX aXJlbGVzcywgUEhZLCBBY2NlbCIsCQlTWl81MTJNLCAwLCAxLCAwLCAxIH0sCi0vKiAweDBmICov CXsgImkuTVg1MTVANjAwTUh6LCBQSFksIEFjY2VsIiwJCQkJU1pfMTI4TSwgMSwgMSwgMCwgMCB9 LAotLyogMHgxMCAqLwl7ICJpLk1YNTE1QDYwME1IeiwgV2lyZWxlc3MsIFBIWSwgQWNjZWwiLAkJ U1pfMTI4TSwgMSwgMSwgMCwgMSB9LAotLyogMHgxMSAqLwl7ICJpLk1YNTE1QDgwME1IeiwgUEhZ LCBBY2NlbCIsCQkJCVNaXzEyOE0sIDAsIDEsIDAsIDAgfSwKLS8qIDB4MTIgKi8JeyAiaS5NWDUx NUA2MDBNSHosIFdpcmVsZXNzLCBQSFksIEFjY2VsIiwJCVNaXzUxMk0sIDEsIDEsIDAsIDEgfSwK LS8qIDB4MTMgKi8JeyAiaS5NWDUxNUA4MDBNSHosIFBIWSwgQWNjZWwiLAkJCQlTWl81MTJNLCAw LCAxLCAwLCAwIH0sCi19OwotCi1zdHJ1Y3QgY2N4bXg1MV9pZGVudCAqY2N4bXg1MV9pZDsKLQot c3RydWN0IGlteF9uYW5kX3BsYXRmb3JtX2RhdGEgbmFuZF9pbmZvID0gewotCS53aWR0aAkJPSAx LAotCS5od19lY2MJCT0gMSwKLQkuZmxhc2hfYmJ0CT0gMSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3Qg ZmVjX3BsYXRmb3JtX2RhdGEgZmVjX2luZm8gPSB7Ci0JLnhjdl90eXBlCT0gUEhZX0lOVEVSRkFD RV9NT0RFX01JSSwKLQkucGh5X2FkZHIJPSA3LAotfTsKIAotc3RhdGljIGlvbXV4X3YzX2NmZ190 IGNjeG14NTFfcGFkc1tdID0gewotCS8qIFVBUlQxICovCi0JTVg1MV9QQURfVUFSVDFfUlhEX19V QVJUMV9SWEQsCi0JTVg1MV9QQURfVUFSVDFfVFhEX19VQVJUMV9UWEQsCi0JLyogVUFSVDIgKi8K LQlNWDUxX1BBRF9VQVJUMl9SWERfX1VBUlQyX1JYRCwKLQlNWDUxX1BBRF9VQVJUMl9UWERfX1VB UlQyX1RYRCwKLQkvKiBVQVJUMyAqLwotCU1YNTFfUEFEX1VBUlQzX1JYRF9fVUFSVDNfUlhELAot CU1YNTFfUEFEX1VBUlQzX1RYRF9fVUFSVDNfVFhELAotCS8qIEkyQzIgKi8KLQlNWDUxX1BBRF9H UElPMV8yX19JMkMyX1NDTCwKLQlNWDUxX1BBRF9HUElPMV8zX19JMkMyX1NEQSwKLQkvKiBlQ1NQ STEgKi8KLQlNWDUxX1BBRF9DU1BJMV9NT1NJX19FQ1NQSTFfTU9TSSwKLQlNWDUxX1BBRF9DU1BJ MV9NSVNPX19FQ1NQSTFfTUlTTywKLQlNWDUxX1BBRF9DU1BJMV9TQ0xLX19FQ1NQSTFfU0NMSywK LQlNWDUxX1BBRF9DU1BJMV9SRFlfX0VDU1BJMV9SRFksCi0JTVg1MV9QQURfQ1NQSTFfU1MwX19F Q1NQSTFfU1MwLAotCU1YNTFfUEFEX0NTUEkxX1NTMV9fRUNTUEkxX1NTMSwKLQkvKiBGRUMgKi8K LQlNWDUxX1BBRF9ESVNQMl9EQVQxNF9fRkVDX1JEQVRBMCwKLQlNWDUxX1BBRF9ESTJfRElTUF9D TEtfX0ZFQ19SREFUQTEsCi0JTVg1MV9QQURfRElfR1A0X19GRUNfUkRBVEEyLAotCU1YNTFfUEFE X0RJU1AyX0RBVDBfX0ZFQ19SREFUQTMsCi0JTVg1MV9QQURfRElTUDJfREFUMTVfX0ZFQ19UREFU QTAsCi0JTVg1MV9QQURfRElTUDJfREFUNl9fRkVDX1REQVRBMSwKLQlNWDUxX1BBRF9ESVNQMl9E QVQ3X19GRUNfVERBVEEyLAotCU1YNTFfUEFEX0RJU1AyX0RBVDhfX0ZFQ19UREFUQTMsCi0JTVg1 MV9QQURfRElTUDJfREFUOV9fRkVDX1RYX0VOLAotCU1YNTFfUEFEX0RJU1AyX0RBVDEwX19GRUNf Q09MLAotCU1YNTFfUEFEX0RJU1AyX0RBVDExX19GRUNfUlhfQ0xLLAotCU1YNTFfUEFEX0RJU1Ay X0RBVDEyX19GRUNfUlhfRFYsCi0JTVg1MV9QQURfRElTUDJfREFUMTNfX0ZFQ19UWF9DTEssCi0J TVg1MV9QQURfREkyX1BJTjJfX0ZFQ19NREMsCi0JTVg1MV9QQURfREkyX1BJTjRfX0ZFQ19DUlMs Ci0JTVg1MV9QQURfREkyX1BJTjNfX0ZFQ19NRElPLAotCU1YNTFfUEFEX0RJX0dQM19fRkVDX1RY X0VSLAotCU1YNTFfUEFEX0RJU1AyX0RBVDFfX0ZFQ19SWF9FUiwKLQkvKiBXRUlNICovCi0JTVg1 MV9QQURfRUlNX0RBMF9fRUlNX0RBMCwKLQlNWDUxX1BBRF9FSU1fREExX19FSU1fREExLAotCU1Y NTFfUEFEX0VJTV9EQTJfX0VJTV9EQTIsCi0JTVg1MV9QQURfRUlNX0RBM19fRUlNX0RBMywKLQlN WDUxX1BBRF9FSU1fREE0X19FSU1fREE0LAotCU1YNTFfUEFEX0VJTV9EQTVfX0VJTV9EQTUsCi0J TVg1MV9QQURfRUlNX0RBNl9fRUlNX0RBNiwKLQlNWDUxX1BBRF9FSU1fREE3X19FSU1fREE3LAot CU1YNTFfUEFEX0VJTV9EMTZfX0VJTV9EMTYsCi0JTVg1MV9QQURfRUlNX0QxN19fRUlNX0QxNywK LQlNWDUxX1BBRF9FSU1fRDE4X19FSU1fRDE4LAotCU1YNTFfUEFEX0VJTV9EMTlfX0VJTV9EMTks Ci0JTVg1MV9QQURfRUlNX0QyMF9fRUlNX0QyMCwKLQlNWDUxX1BBRF9FSU1fRDIxX19FSU1fRDIx LAotCU1YNTFfUEFEX0VJTV9EMjJfX0VJTV9EMjIsCi0JTVg1MV9QQURfRUlNX0QyM19fRUlNX0Qy MywKLQlNWDUxX1BBRF9FSU1fRDI0X19FSU1fRDI0LAotCU1YNTFfUEFEX0VJTV9EMjVfX0VJTV9E MjUsCi0JTVg1MV9QQURfRUlNX0QyNl9fRUlNX0QyNiwKLQlNWDUxX1BBRF9FSU1fRDI3X19FSU1f RDI3LAotCU1YNTFfUEFEX0VJTV9EMjhfX0VJTV9EMjgsCi0JTVg1MV9QQURfRUlNX0QyOV9fRUlN X0QyOSwKLQlNWDUxX1BBRF9FSU1fRDMwX19FSU1fRDMwLAotCU1YNTFfUEFEX0VJTV9EMzFfX0VJ TV9EMzEsCi0JTVg1MV9QQURfRUlNX09FX19FSU1fT0UsCi0JTVg1MV9QQURfRUlNX0NTNV9fRUlN X0NTNSwKLQkvKiBOQU5EICovCi0JTVg1MV9QQURfTkFOREZfRDBfX05BTkRGX0QwLAotCU1YNTFf UEFEX05BTkRGX0QxX19OQU5ERl9EMSwKLQlNWDUxX1BBRF9OQU5ERl9EMl9fTkFOREZfRDIsCi0J TVg1MV9QQURfTkFOREZfRDNfX05BTkRGX0QzLAotCU1YNTFfUEFEX05BTkRGX0Q0X19OQU5ERl9E NCwKLQlNWDUxX1BBRF9OQU5ERl9ENV9fTkFOREZfRDUsCi0JTVg1MV9QQURfTkFOREZfRDZfX05B TkRGX0Q2LAotCU1YNTFfUEFEX05BTkRGX0Q3X19OQU5ERl9ENywKLQlNWDUxX1BBRF9OQU5ERl9B TEVfX05BTkRGX0FMRSwKLQlNWDUxX1BBRF9OQU5ERl9DTEVfX05BTkRGX0NMRSwKLQlNWDUxX1BB RF9OQU5ERl9SRV9CX19OQU5ERl9SRV9CLAotCU1YNTFfUEFEX05BTkRGX1dFX0JfX05BTkRGX1dF X0IsCi0JTVg1MV9QQURfTkFOREZfV1BfQl9fTkFOREZfV1BfQiwKLQlNWDUxX1BBRF9OQU5ERl9D UzBfX05BTkRGX0NTMCwKLQlNWDUxX1BBRF9OQU5ERl9SQjBfX05BTkRGX1JCMCwKLQkvKiBMQU45 MjIxIElSUSAoR1BJTzEuOSkgKi8KLQlNWDUxX1BBRF9HUElPMV85X19HUElPMV85LAotCS8qIE1D MTM4OTIgSVJRIChHUElPMS41KSAqLwotCU1YNTFfUEFEX0dQSU8xXzVfX0dQSU8xXzUsCi0JLyog TU1BNzQ1NUxSIElSUTEgKEdQSU8xLjcpICovCi0JTVg1MV9QQURfR1BJTzFfN19fR1BJTzFfNywK LQkvKiBNTUE3NDU1TFIgSVJRMiAoR1BJTzEuNikgKi8KLQlNWDUxX1BBRF9HUElPMV82X19HUElP MV82LAotCS8qIFVzZXIgR1BJT3MgKi8KLQlNWDUxX1BBRF9HUElPMV8wX19HUElPMV8wLAotCU1Y NTFfUEFEX0dQSU8xXzFfX0dQSU8xXzEsCi0JTVg1MV9QQURfR1BJTzFfOF9fR1BJTzFfOCwKLQlN WDUxX1BBRF9ESTFfUElOMTFfX0dQSU8zXzAsCi0JTVg1MV9QQURfREkxX1BJTjEyX19HUElPM18x LAotCU1YNTFfUEFEX0RJMV9QSU4xM19fR1BJTzNfMiwKLQlNWDUxX1BBRF9ESTFfRDBfQ1NfX0dQ SU8zXzMsCi0JTVg1MV9QQURfREkxX0QxX0NTX19HUElPM180LAotCU1YNTFfUEFEX0RJU1BCMl9T RVJfRElOX19HUElPM181LAotCU1YNTFfUEFEX0RJU1BCMl9TRVJfRElPX19HUElPM182LAotCU1Y NTFfUEFEX0RJU1BCMl9TRVJfQ0xLX19HUElPM183LAotCU1YNTFfUEFEX0RJU1BCMl9TRVJfUlNf X0dQSU8zXzgsCi0JTVg1MV9QQURfTkFOREZfUkIxX19HUElPM185LAotCU1YNTFfUEFEX05BTkRG X1JCMl9fR1BJTzNfMTAsCi0JTVg1MV9QQURfTkFOREZfUkIzX19HUElPM18xMSwKLQlNWDUxX1BB RF9DU0kxX0Q4X19HUElPM18xMiwKLQlNWDUxX1BBRF9DU0kxX0Q5X19HUElPM18xMywKLQlNWDUx X1BBRF9OQU5ERl9DUzFfX0dQSU8zXzE3LAotCU1YNTFfUEFEX05BTkRGX0NTMl9fR1BJTzNfMTgs Ci0JTVg1MV9QQURfTkFOREZfQ1MzX19HUElPM18xOSwKLQlNWDUxX1BBRF9OQU5ERl9DUzRfX0dQ SU8zXzIwLAotCU1YNTFfUEFEX05BTkRGX0NTNV9fR1BJTzNfMjEsCi0JTVg1MV9QQURfTkFOREZf Q1M2X19HUElPM18yMiwKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY2N4bXhfaWRlbnQgeworCWNoYXIJ CSppZF9zdHJpbmc7CisJdW5zaWduZWQgaW50CW1lbV9zejsKKwl1bnNpZ25lZCBpbnQJY3B1X21o ejsKKwl1bnNpZ25lZCBjaGFyCWV0aDA6MTsKKwl1bnNpZ25lZCBjaGFyCWV0aDE6MTsKKwl1bnNp Z25lZCBjaGFyCXdsZXNzOjE7CisJdW5zaWduZWQgY2hhcglhY2NlbDoxOworfSAqY2N4bXhfaWQs IGNjeG14NTFfaWRzW10gPSB7CisJWzB4MDBdID0geyBOVUxMIC8qIFVua25vd24gKi8sCQkJCQkw LCAgICAgICAwLCAgIDAsIDAsIDAsIDAgfSwKKwlbMHgwMV0gPSB7IE5VTEwgLyogTm90IHN1cHBv cnRlZCAqLywJCQkJMCwgICAgICAgMCwgICAwLCAwLCAwLCAwIH0sCisJWzB4MDJdID0geyAiaS5N WDUxNUA4MDBNSHosIFdpcmVsZXNzLCBQSFksIEV4dC4gRXRoLCBBY2NlbCIsCVNaXzUxMk0sIDgw MCwgMSwgMSwgMSwgMSB9LAorCVsweDAzXSA9IHsgImkuTVg1MTVAODAwTUh6LCBQSFksIEV4dC4g RXRoLCBBY2NlbCIsCQlTWl81MTJNLCA4MDAsIDEsIDEsIDAsIDEgfSwKKwlbMHgwNF0gPSB7ICJp Lk1YNTE1QDYwME1IeiwgV2lyZWxlc3MsIFBIWSwgRXh0LiBFdGgsIEFjY2VsIiwJU1pfNTEyTSwg NjAwLCAxLCAxLCAxLCAxIH0sCisJWzB4MDVdID0geyAiaS5NWDUxNUA2MDBNSHosIFBIWSwgRXh0 LiBFdGgsIEFjY2VsIiwJCVNaXzUxMk0sIDYwMCwgMSwgMSwgMCwgMSB9LAorCVsweDA2XSA9IHsg ImkuTVg1MTVAODAwTUh6LCBXaXJlbGVzcywgUEhZLCBBY2NlbCIsCQlTWl81MTJNLCA4MDAsIDEs IDAsIDEsIDEgfSwKKwlbMHgwN10gPSB7ICJpLk1YNTE1QDgwME1IeiwgUEhZLCBBY2NlbCIsCQkJ U1pfNTEyTSwgODAwLCAxLCAwLCAwLCAxIH0sCisJWzB4MDhdID0geyAiaS5NWDUxNUA4MDBNSHos IFdpcmVsZXNzLCBQSFksIEFjY2VsIiwJCVNaXzI1Nk0sIDgwMCwgMSwgMCwgMSwgMSB9LAorCVsw eDA5XSA9IHsgImkuTVg1MTVAODAwTUh6LCBQSFksIEFjY2VsIiwJCQlTWl8yNTZNLCA4MDAsIDEs IDAsIDAsIDEgfSwKKwlbMHgwYV0gPSB7ICJpLk1YNTE1QDYwME1IeiwgV2lyZWxlc3MsIFBIWSwg QWNjZWwiLAkJU1pfMjU2TSwgNjAwLCAxLCAwLCAxLCAxIH0sCisJWzB4MGJdID0geyAiaS5NWDUx NUA2MDBNSHosIFBIWSwgQWNjZWwiLAkJCVNaXzI1Nk0sIDYwMCwgMSwgMCwgMCwgMSB9LAorCVsw eDBjXSA9IHsgImkuTVg1MTVAODAwTUh6LCBXaXJlbGVzcywgUEhZLCBBY2NlbCIsCQlTWl8xMjhN LCA4MDAsIDEsIDAsIDEsIDEgfSwKKwlbMHgwZF0gPSB7ICJpLk1YNTEyQDgwME1IeiIsCQkJCQlT Wl8xMjhNLCA4MDAsIDAsIDAsIDAsIDAgfSwKKwlbMHgwZV0gPSB7ICJpLk1YNTE1QDgwME1Ieiwg V2lyZWxlc3MsIFBIWSwgQWNjZWwiLAkJU1pfNTEyTSwgODAwLCAxLCAwLCAxLCAxIH0sCisJWzB4 MGZdID0geyAiaS5NWDUxNUA2MDBNSHosIFBIWSwgQWNjZWwiLAkJCVNaXzEyOE0sIDYwMCwgMSwg MCwgMCwgMSB9LAorCVsweDEwXSA9IHsgImkuTVg1MTVANjAwTUh6LCBXaXJlbGVzcywgUEhZLCBB Y2NlbCIsCQlTWl8xMjhNLCA2MDAsIDEsIDAsIDEsIDEgfSwKKwlbMHgxMV0gPSB7ICJpLk1YNTE1 QDgwME1IeiwgUEhZLCBBY2NlbCIsCQkJU1pfMTI4TSwgODAwLCAxLCAwLCAwLCAxIH0sCisJWzB4 MTJdID0geyAiaS5NWDUxNUA2MDBNSHosIFdpcmVsZXNzLCBQSFksIEFjY2VsIiwJCVNaXzUxMk0s IDYwMCwgMSwgMCwgMSwgMSB9LAorCVsweDEzXSA9IHsgImkuTVg1MTVAODAwTUh6LCBQSFksIEFj Y2VsIiwJCQlTWl81MTJNLCA4MDAsIDEsIDAsIDAsIDEgfSwKIH07CiAKLSNkZWZpbmUgQ0NYTVg1 MV9FQ1NQSTFfQ1MwCUlNWF9HUElPX05SKDQsIDI0KQotI2RlZmluZSBDQ1hNWDUxX0VDU1BJMV9D UzEJSU1YX0dQSU9fTlIoNCwgMjUpCi0KLXN0YXRpYyBpbnQgZWNzcGlfMF9jc1tdID0geyBDQ1hN WDUxX0VDU1BJMV9DUzAsIENDWE1YNTFfRUNTUEkxX0NTMSwgfTsKK3N0YXRpYyB1MzIgYm9hcmRz ZXJpYWw7CiAKLXN0YXRpYyBzdHJ1Y3Qgc3BpX2lteF9tYXN0ZXIgZWNzcGlfMF9kYXRhID0gewot CS5jaGlwc2VsZWN0CT0gZWNzcGlfMF9jcywKLQkubnVtX2NoaXBzZWxlY3QJPSBBUlJBWV9TSVpF KGVjc3BpXzBfY3MpLAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBzcGlfYm9hcmRfaW5mbyBj Y3hteDUxX3NwaV9ib2FyZF9pbmZvW10gPSB7Ci0JewotCQkubmFtZQkJPSAibWMxMzg5MiIsCi0J CS5idXNfbnVtCT0gMCwKLQkJLmNoaXBfc2VsZWN0CT0gMCwKLQl9LAotfTsKLQotc3RhdGljIHN0 cnVjdCBpbXh1c2JfcGxhdGZvcm1kYXRhIGNjeG14NTFfb3RnX3BkYXRhID0gewotCS5mbGFncwk9 IE1YQ19FSENJX01PREVfVVRNSV8xNl9CSVQgfCBNWENfRUhDSV9QT1dFUl9QSU5TX0VOQUJMRUQs Ci0JLm1vZGUJPSBJTVhfVVNCX01PREVfSE9TVCwKLX07Ci0KLXN0YXRpYyBpbnQgY2N4bXg1MV9w b3dlcl9pbml0KHZvaWQpCitzdGF0aWMgdm9pZCBjY3hteDUxX3Bvd2VyX2luaXQoc3RydWN0IG1j MTN4eHggKm1jMTN4eHgpCiB7Ci0Jc3RydWN0IG1jMTN4eHggKm1jMTN4eHhfZGV2OwogCXUzMiB2 YWw7CiAKLQltYzEzeHh4X2RldiA9IG1jMTN4eHhfZ2V0KCk7Ci0JaWYgKCFtYzEzeHh4X2RldikK LQkJcmV0dXJuIC1FTk9ERVY7Ci0KLQltYzEzeHh4X3JlZ19yZWFkKG1jMTN4eHhfZGV2LCBNQzEz ODkyX1JFR19QT1dFUl9NSVNDLCAmdmFsKTsKLQkvKiBSZXNldCBkZXZpY2VzIGJ5IGNsZWFyaW5n IEdQMDEtR1BPNCAqLwotCXZhbCAmPSB+KCgxIDw8IDIxKSB8ICgzIDw8IDEyKSB8ICgzIDw8IDEw KSB8ICgzIDw8IDgpIHwgKDMgPDwgNikpOwotCS8qIFN3aXRjaGluZyBvZmYgdGhlIFBXR1QxU1BJ RU4gKi8KLQl2YWwgfD0gKDEgPDwgMTUpOwotCS8qIFN3aXRjaGluZyBvbiB0aGUgUFdHVDJTUElF TiAqLwotCXZhbCAmPSB+KDEgPDwgMTYpOwotCS8qIEVuYWJsZSBzaG9ydCBjaXJjdWl0IHByb3Rl Y3Rpb24gKi8KLQl2YWwgfD0gKDEgPDwgMCk7Ci0JbWMxM3h4eF9yZWdfd3JpdGUobWMxM3h4eF9k ZXYsIE1DMTM4OTJfUkVHX1BPV0VSX01JU0MsIHZhbCk7Ci0KLQkvKiBBbGxvdyBjaGFyZ2VyIHRv IGNoYXJnZSAoNC4yViBhbmQgNTYwbUEpICovCi0JdmFsID0gMHgyMzgwMzM7Ci0JbWMxM3h4eF9y ZWdfd3JpdGUobWMxM3h4eF9kZXYsIE1DMTM4OTJfUkVHX0NIQVJHRSwgdmFsKTsKLQotCWlmIChp bXhfc2lsaWNvbl9yZXZpc2lvbigpIDwgSU1YX0NISVBfUkVWXzNfMCkgewotCQkvKiBTZXQgY29y ZSB2b2x0YWdlIChTVzEpIHRvIDEuMVYgKi8KLQkJbWMxM3h4eF9yZWdfcmVhZChtYzEzeHh4X2Rl diwgTUMxMzg5Ml9SRUdfU1dfMCwgJnZhbCk7Ci0JCXZhbCAmPSB+MHgwMDAwMWY7Ci0JCXZhbCB8 PSAgMHgwMDAwMTQ7Ci0JCW1jMTN4eHhfcmVnX3dyaXRlKG1jMTN4eHhfZGV2LCBNQzEzODkyX1JF R19TV18wLCB2YWwpOwotCi0JCS8qIFNldHVwIFZDQyAoU1cyKSB0byAxLjI1ICovCi0JCW1jMTN4 eHhfcmVnX3JlYWQobWMxM3h4eF9kZXYsIE1DMTM4OTJfUkVHX1NXXzEsICZ2YWwpOwotCQl2YWwg Jj0gfjB4MDAwMDFmOwotCQl2YWwgfD0gIDB4MDAwMDFhOwotCQltYzEzeHh4X3JlZ193cml0ZSht YzEzeHh4X2RldiwgTUMxMzg5Ml9SRUdfU1dfMSwgdmFsKTsKLQotCQkvKiBTZXR1cCAxVjJfRElH MSAoU1czKSB0byAxLjI1ICovCi0JCW1jMTN4eHhfcmVnX3JlYWQobWMxM3h4eF9kZXYsIE1DMTM4 OTJfUkVHX1NXXzIsICZ2YWwpOwotCQl2YWwgJj0gfjB4MDAwMDFmOwotCQl2YWwgfD0gIDB4MDAw MDFhOwotCQltYzEzeHh4X3JlZ193cml0ZShtYzEzeHh4X2RldiwgTUMxMzg5Ml9SRUdfU1dfMiwg dmFsKTsKLQl9IGVsc2UgewotCQkvKiBTZXR1cCBWQ0MgKFNXMikgdG8gMS4yMjUgKi8KLQkJbWMx M3h4eF9yZWdfcmVhZChtYzEzeHh4X2RldiwgTUMxMzg5Ml9SRUdfU1dfMSwgJnZhbCk7Ci0JCXZh bCAmPSB+MHgwMDAwMWY7Ci0JCXZhbCB8PSAgMHgwMDAwMTk7Ci0JCW1jMTN4eHhfcmVnX3dyaXRl KG1jMTN4eHhfZGV2LCBNQzEzODkyX1JFR19TV18xLCB2YWwpOwotCi0JCS8qIFNldHVwIDFWMl9E SUcxIChTVzMpIHRvIDEuMiAqLwotCQltYzEzeHh4X3JlZ19yZWFkKG1jMTN4eHhfZGV2LCBNQzEz ODkyX1JFR19TV18yLCAmdmFsKTsKLQkJdmFsICY9IH4weDAwMDAxZjsKLQkJdmFsIHw9ICAweDAw MDAxODsKLQkJbWMxM3h4eF9yZWdfd3JpdGUobWMxM3h4eF9kZXYsIE1DMTM4OTJfUkVHX1NXXzIs IHZhbCk7Ci0JfQotCi0JaWYgKG1jMTN4eHhfcmV2aXNpb24obWMxM3h4eF9kZXYpIDw9IE1DMTM4 OTJfUkVWSVNJT05fMl8wKSB7Ci0JCS8qIFNldCBzd2l0Y2hlcnMgaW4gUFdNIG1vZGUgZm9yIEF0 bGFzIDIuMCBhbmQgbG93ZXIgKi8KLQkJLyogU2V0dXAgdGhlIHN3aXRjaGVyIG1vZGUgZm9yIFNX MSAmIFNXMiovCi0JCW1jMTN4eHhfcmVnX3JlYWQobWMxM3h4eF9kZXYsIE1DMTM4OTJfUkVHX1NX XzQsICZ2YWwpOwotCQl2YWwgJj0gfjB4MDAzYzBmOwotCQl2YWwgfD0gIDB4MDAxNDA1OwotCQlt YzEzeHh4X3JlZ193cml0ZShtYzEzeHh4X2RldiwgTUMxMzg5Ml9SRUdfU1dfNCwgdmFsKTsKLQot CQkvKiBTZXR1cCB0aGUgc3dpdGNoZXIgbW9kZSBmb3IgU1czICYgU1c0ICovCi0JCW1jMTN4eHhf cmVnX3JlYWQobWMxM3h4eF9kZXYsIE1DMTM4OTJfUkVHX1NXXzUsICZ2YWwpOwotCQl2YWwgJj0g fjB4MDAwZjBmOwotCQl2YWwgfD0gIDB4MDAwNTA1OwotCQltYzEzeHh4X3JlZ193cml0ZShtYzEz eHh4X2RldiwgTUMxMzg5Ml9SRUdfU1dfNSwgdmFsKTsKLQl9IGVsc2UgewotCQkvKiBTZXQgc3dp dGNoZXJzIGluIEF1dG8gaW4gTk9STUFMIG1vZGUgJiBTVEFOREJZIG1vZGUgZm9yIEF0bGFzIDIu MGEgKi8KLQkJLyogU2V0dXAgdGhlIHN3aXRjaGVyIG1vZGUgZm9yIFNXMSAmIFNXMiovCi0JCW1j MTN4eHhfcmVnX3JlYWQobWMxM3h4eF9kZXYsIE1DMTM4OTJfUkVHX1NXXzQsICZ2YWwpOwotCQl2 YWwgJj0gfjB4MDAzYzBmOwotCQl2YWwgfD0gIDB4MDAyMDA4OwotCQltYzEzeHh4X3JlZ193cml0 ZShtYzEzeHh4X2RldiwgTUMxMzg5Ml9SRUdfU1dfNCwgdmFsKTsKLQotCQkvKiBTZXR1cCB0aGUg c3dpdGNoZXIgbW9kZSBmb3IgU1czICYgU1c0ICovCi0JCW1jMTN4eHhfcmVnX3JlYWQobWMxM3h4 eF9kZXYsIE1DMTM4OTJfUkVHX1NXXzUsICZ2YWwpOwotCQl2YWwgJj0gfjB4MDAwZjBmOwotCQl2 YWwgfD0gIDB4MDAwODA4OwotCQltYzEzeHh4X3JlZ193cml0ZShtYzEzeHh4X2RldiwgTUMxMzg5 Ml9SRUdfU1dfNSwgdmFsKTsKLQl9Ci0KLQkvKiBTZXQgVlZJREVPIHRvIDIuNzc1ViwgVkFVRElP IHRvIDNWLCBWU0QgdG8gMy4xNVYgKi8KLQltYzEzeHh4X3JlZ19yZWFkKG1jMTN4eHhfZGV2LCBN QzEzODkyX1JFR19TRVRUSU5HXzEsICZ2YWwpOwotCXZhbCAmPSB+MHgwMDAxZmM7Ci0JdmFsIHw9 ICAweDAwMDFmNDsKLQltYzEzeHh4X3JlZ193cml0ZShtYzEzeHh4X2RldiwgTUMxMzg5Ml9SRUdf U0VUVElOR18xLCB2YWwpOworCS8qIENsZWFyIEdQMDEtR1BPNCwgZW5hYmxlIHNob3J0IGNpcmN1 aXQgcHJvdGVjdGlvbiwgIFBXR1QxU1BJRU4gb2ZmICovCisJdmFsID0gTUMxMzg5Ml9QT1dFUl9N SVNDX1JFR1NDUEVOIHwgTUMxMzg5Ml9QT1dFUl9NSVNDX1BXR1QxU1BJRU47CisJdmFsIHw9IE1D MTM4OTJfUE9XRVJfTUlTQ19HUE80QURJTjsKKwltYzEzeHh4X3JlZ193cml0ZShtYzEzeHh4LCBN QzEzODkyX1JFR19QT1dFUl9NSVNDLCB2YWwpOworCisJLyogU2V0IElDSFJHIGluIGV4dGVybmFs bHkgcG93ZXJlZCBtb2RlLCA0LjJWLCBEaXNhYmxlIHRoZXJtaXN0b3IgKi8KKwltYzEzeHh4X3Jl Z193cml0ZShtYzEzeHh4LCBNQzEzODkyX1JFR19DSEFSR0UsIDB4YTM4MjdiKTsKKworCS8qIFNl dCBjb3JlIHZvbHRhZ2UgKFNXMSkgdG8gMS4xViBOT1JNQUwsIDEuMDVWIFNUQU5EQlkgKi8KKwlt YzEzeHh4X3JlZ19yZWFkKG1jMTN4eHgsIE1DMTM4OTJfUkVHX1NXXzAsICZ2YWwpOworCXZhbCAm PSB+KE1DMTM4OTJfU1d4X1NXeF9WT0xUX01BU0sgPDwgTUMxMzg5Ml9TV01PREUxX1NISUZUKTsK Kwl2YWwgfD0gTUMxMzg5Ml9TV3hfU1d4XzFfMTAwViA8PCBNQzEzODkyX1NXTU9ERTFfU0hJRlQ7 CisJdmFsICY9IH4oTUMxMzg5Ml9TV3hfU1d4X1ZPTFRfTUFTSyA8PCBNQzEzODkyX1NXTU9ERTJf U0hJRlQpOworCXZhbCB8PSBNQzEzODkyX1NXeF9TV3hfMV8wNTBWIDw8IE1DMTM4OTJfU1dNT0RF Ml9TSElGVDsKKwltYzEzeHh4X3JlZ193cml0ZShtYzEzeHh4LCBNQzEzODkyX1JFR19TV18wLCB2 YWwpOworCisJLyogU2V0dXAgVkNDIChTVzIpIHRvIDEuMjI1IE5PUk1BTCwgMS4xNzVWIFNUQU5E QlkgKi8KKwltYzEzeHh4X3JlZ19yZWFkKG1jMTN4eHgsIE1DMTM4OTJfUkVHX1NXXzEsICZ2YWwp OworCXZhbCAmPSB+KE1DMTM4OTJfU1d4X1NXeF9WT0xUX01BU0sgPDwgTUMxMzg5Ml9TV01PREUx X1NISUZUKTsKKwl2YWwgfD0gTUMxMzg5Ml9TV3hfU1d4XzFfMjI1ViA8PCBNQzEzODkyX1NXTU9E RTFfU0hJRlQ7CisJdmFsICY9IH4oTUMxMzg5Ml9TV3hfU1d4X1ZPTFRfTUFTSyA8PCBNQzEzODky X1NXTU9ERTJfU0hJRlQpOworCXZhbCB8PSBNQzEzODkyX1NXeF9TV3hfMV8xNzVWIDw8IE1DMTM4 OTJfU1dNT0RFMl9TSElGVDsKKwltYzEzeHh4X3JlZ193cml0ZShtYzEzeHh4LCBNQzEzODkyX1JF R19TV18xLCB2YWwpOworCisJLyogU2V0dXAgMVYyX0RJRzEgKFNXMykgdG8gMS4yIE5PUk1BTCwg MS4xNVYgU1RBTkRCWSAqLworCW1jMTN4eHhfcmVnX3JlYWQobWMxM3h4eCwgTUMxMzg5Ml9SRUdf U1dfMiwgJnZhbCk7CisJdmFsICY9IH4oTUMxMzg5Ml9TV3hfU1d4X1ZPTFRfTUFTSyA8PCBNQzEz ODkyX1NXTU9ERTFfU0hJRlQpOworCXZhbCB8PSBNQzEzODkyX1NXeF9TV3hfMV8yMDBWIDw8IE1D MTM4OTJfU1dNT0RFMV9TSElGVDsKKwl2YWwgJj0gfihNQzEzODkyX1NXeF9TV3hfVk9MVF9NQVNL IDw8IE1DMTM4OTJfU1dNT0RFMl9TSElGVCk7CisJdmFsIHw9IE1DMTM4OTJfU1d4X1NXeF8xXzE1 MFYgPDwgTUMxMzg5Ml9TV01PREUyX1NISUZUOworCW1jMTN4eHhfcmVnX3dyaXRlKG1jMTN4eHgs IE1DMTM4OTJfUkVHX1NXXzIsIHZhbCk7CisKKwkvKiBTZXQgU1cxLVNXNCBzd2l0Y2hlciBpbiBB dXRvIGluIE5PUk1BTCAmIFNUQU5EQlkgbW9kZSAqLworCW1jMTN4eHhfcmVnX3JlYWQobWMxM3h4 eCwgTUMxMzg5Ml9SRUdfU1dfNCwgJnZhbCk7CisJdmFsICY9IH4oTUMxMzg5Ml9TV01PREVfTUFT SyA8PCBNQzEzODkyX1NXTU9ERTFfU0hJRlQpOworCXZhbCB8PSBNQzEzODkyX1NXTU9ERV9BVVRP X0FVVE8gPDwgTUMxMzg5Ml9TV01PREUxX1NISUZUOworCXZhbCAmPSB+KE1DMTM4OTJfU1dNT0RF X01BU0sgPDwgTUMxMzg5Ml9TV01PREUyX1NISUZUKTsKKwl2YWwgfD0gTUMxMzg5Ml9TV01PREVf QVVUT19BVVRPIDw8IE1DMTM4OTJfU1dNT0RFMl9TSElGVDsKKwkvKiBEaXNhYmxlIGN1cnJlbnQg bGltaXQgKi8KKwl2YWwgfD0gMSA8PCAyMjsKKwltYzEzeHh4X3JlZ193cml0ZShtYzEzeHh4LCBN QzEzODkyX1JFR19TV180LCB2YWwpOworCisJbWMxM3h4eF9yZWdfcmVhZChtYzEzeHh4LCBNQzEz ODkyX1JFR19TV181LCAmdmFsKTsKKwl2YWwgJj0gfihNQzEzODkyX1NXTU9ERV9NQVNLIDw8IE1D MTM4OTJfU1dNT0RFM19TSElGVCk7CisJdmFsIHw9IE1DMTM4OTJfU1dNT0RFX0FVVE9fQVVUTyA8 PCBNQzEzODkyX1NXTU9ERTNfU0hJRlQ7CisJdmFsICY9IH4oTUMxMzg5Ml9TV01PREVfTUFTSyA8 PCBNQzEzODkyX1NXTU9ERTRfU0hJRlQpOworCXZhbCB8PSBNQzEzODkyX1NXTU9ERV9BVVRPX0FV VE8gPDwgTUMxMzg5Ml9TV01PREU0X1NISUZUOworCS8qIEVuYWJsZSBTV0JTVCAqLworCXZhbCB8 PSAxIDw8IDIwOworCW1jMTN4eHhfcmVnX3dyaXRlKG1jMTN4eHgsIE1DMTM4OTJfUkVHX1NXXzUs IHZhbCk7CisKKwkvKiBTZXQgVlZJREVPPTIuNzc1ViwgVkFVRElPPTNWLCBWU0Q9My4xNVYgKi8K Kwl2YWwgPSBNQzEzODkyX1NFVFRJTkdfMV9WVklERU9fMl83NzUgfCBNQzEzODkyX1NFVFRJTkdf MV9WQVVESU9fM18wOworCXZhbCB8PSBNQzEzODkyX1NFVFRJTkdfMV9WU0RfM18xNTsKKwltYzEz eHh4X3JlZ193cml0ZShtYzEzeHh4LCBNQzEzODkyX1JFR19TRVRUSU5HXzEsIHZhbCk7CiAKIAkv KiBDb25maWd1cmUgVkdFTjMgYW5kIFZDQU0gcmVndWxhdG9ycyB0byB1c2UgZXh0ZXJuYWwgUE5Q ICovCi0JdmFsID0gMHgwMDAyMDg7Ci0JbWMxM3h4eF9yZWdfd3JpdGUobWMxM3h4eF9kZXYsIE1D MTM4OTJfUkVHX01PREVfMSwgdmFsKTsKKwl2YWwgPSBNQzEzODkyX01PREVfMV9WR0VOM0NPTkZJ RyB8IE1DMTM4OTJfTU9ERV8xX1ZDQU1DT05GSUc7CisJbWMxM3h4eF9yZWdfd3JpdGUobWMxM3h4 eCwgTUMxMzg5Ml9SRUdfTU9ERV8xLCB2YWwpOwogCXVkZWxheSgyMDApOwogCi0JLyogU2V0IFZH RU4zIHRvIDEuOFYgKi8KLQltYzEzeHh4X3JlZ19yZWFkKG1jMTN4eHhfZGV2LCBNQzEzODkyX1JF R19TRVRUSU5HXzAsICZ2YWwpOwotCXZhbCAmPSB+KDEgPDwgMTQpOwotCW1jMTN4eHhfcmVnX3dy aXRlKG1jMTN4eHhfZGV2LCBNQzEzODkyX1JFR19TRVRUSU5HXzAsIHZhbCk7Ci0KLQkvKiBFbmFi bGUgVkdFTjMsIFZDQU0sIFZBVURJTywgVlZJREVPLCBWU0QgcmVndWxhdG9ycyAqLwotCXZhbCA9 IDB4MDQ5MjQ5OwotCW1jMTN4eHhfcmVnX3dyaXRlKG1jMTN4eHhfZGV2LCBNQzEzODkyX1JFR19N T0RFXzEsIHZhbCk7CisJLyogU2V0IFZHRU4yPTMuMTVWLCBWR0VOMz0xLjhWLCBWRElHPTEuMjVW LCBWQ0FNPTIuNzVWICovCisJbWMxM3h4eF9yZWdfcmVhZChtYzEzeHh4LCBNQzEzODkyX1JFR19T RVRUSU5HXzAsICZ2YWwpOworCXZhbCAmPSB+KE1DMTM4OTJfU0VUVElOR18wX1ZHRU4yX01BU0sg fCBNQzEzODkyX1NFVFRJTkdfMF9WR0VOM19NQVNLKTsKKwl2YWwgfD0gTUMxMzg5Ml9TRVRUSU5H XzBfVkdFTjJfM18xNSB8IE1DMTM4OTJfU0VUVElOR18wX1ZHRU4zXzFfODsKKwl2YWwgJj0gfihN QzEzODkyX1NFVFRJTkdfMF9WRElHX01BU0sgfCBNQzEzODkyX1NFVFRJTkdfMF9WQ0FNX01BU0sp OworCXZhbCB8PSBNQzEzODkyX1NFVFRJTkdfMF9WRElHXzFfMjUgfCBNQzEzODkyX1NFVFRJTkdf MF9WQ0FNXzJfNzU7CisJbWMxM3h4eF9yZWdfd3JpdGUobWMxM3h4eCwgTUMxMzg5Ml9SRUdfU0VU VElOR18wLCB2YWwpOwogCi0JLyogRW5hYmxlIFVTQjEgY2hhcmdlciAqLwotCXZhbCA9IDB4MDAw NDA5OwotCW1jMTN4eHhfcmVnX3dyaXRlKG1jMTN4eHhfZGV2LCBNQzEzODkyX1JFR19VU0IxLCB2 YWwpOworCS8qIEVuYWJsZSBPVEcgZnVuY3Rpb24gKi8KKwltYzEzeHh4X3JlZ193cml0ZShtYzEz eHh4LCBNQzEzODkyX1JFR19VU0IxLCAweDQwOSk7CiAKLQkvKiBTZXQgVkNPSU4gdG8gMy4wViBh bmQgRW5hYmxlIEl0ICovCi0JbWMxM3h4eF9yZWdfcmVhZChtYzEzeHh4X2RldiwgTUMxMzg5Ml9S RUdfUE9XRVJfQ1RMMCwgJnZhbCk7CisJLyogRW5hYmxlIFZHRU4zLCBWQ0FNLCBWQVVESU8sIFZW SURFTywgVlNEIHJlZ3VsYXRvcnMgKi8KKwl2YWwgPSBNQzEzODkyX01PREVfMV9WR0VOM0VOIHwg TUMxMzg5Ml9NT0RFXzFfVkdFTjNDT05GSUc7CisJdmFsIHw9IE1DMTM4OTJfTU9ERV8xX1ZDQU1F TiB8IE1DMTM4OTJfTU9ERV8xX1ZDQU1DT05GSUc7CisJdmFsIHw9IE1DMTM4OTJfTU9ERV8xX1ZW SURFT0VOIHwgTUMxMzg5Ml9NT0RFXzFfVkFVRElPRU47CisJdmFsIHw9IE1DMTM4OTJfTU9ERV8x X1ZTREVOOworCW1jMTN4eHhfcmVnX3dyaXRlKG1jMTN4eHgsIE1DMTM4OTJfUkVHX01PREVfMSwg dmFsKTsKKworCS8qIFNldCBWQ09JTj0zLjBWLCBLZWVwcyBWU1JUQyBhbmQgQ0xLMzJLTUNVICov CisJbWMxM3h4eF9yZWdfcmVhZChtYzEzeHh4LCBNQzEzODkyX1JFR19QT1dFUl9DVEwwLCAmdmFs KTsKIAl2YWwgJj0gfig3IDw8IDIwKTsKLQl2YWwgfD0gKDQgPDwgMjApIHwgKDEgPDwgMjMpOwot CW1jMTN4eHhfcmVnX3dyaXRlKG1jMTN4eHhfZGV2LCBNQzEzODkyX1JFR19QT1dFUl9DVEwwLCB2 YWwpOwotCS8qIEtlZXBzIFZTUlRDIGFuZCBDTEszMktNQ1UgKi8KLQl2YWwgfD0gKDEgPDwgNCk7 Ci0JbWMxM3h4eF9yZWdfd3JpdGUobWMxM3h4eF9kZXYsIE1DMTM4OTJfUkVHX1BPV0VSX0NUTDAs IHZhbCk7Ci0KLQkvKiBEZS1hc3NlcnQgcmVzZXQgb2YgZXh0ZXJuYWwgZGV2aWNlcyBvbiBHUDAx LCBHUE8yLCBHUE8zIGFuZCBHUE80ICovCi0JbWMxM3h4eF9yZWdfcmVhZChtYzEzeHh4X2Rldiwg TUMxMzg5Ml9SRUdfUE9XRVJfTUlTQywgJnZhbCk7CisJdmFsIHw9ICgxIDw8IDQpIHwgKDQgPDwg MjApIHwgKDEgPDwgMjMpOworCW1jMTN4eHhfcmVnX3dyaXRlKG1jMTN4eHgsIE1DMTM4OTJfUkVH X1BPV0VSX0NUTDAsIHZhbCk7CisKKwkvKiBEZS1hc3NlcnQgcmVzZXQgb2YgZXh0ZXJuYWwgZGV2 aWNlcyBvbiBHUDAxLUdQTzQgKi8KKwltYzEzeHh4X3JlZ19yZWFkKG1jMTN4eHgsIE1DMTM4OTJf UkVHX1BPV0VSX01JU0MsICZ2YWwpOwogCS8qIEdQTzEgLSBFeHRlcm5hbCAqLwogCS8qIEdQMDIg LSBMQU45MjIxIFBvd2VyICovCiAJLyogR1AwMyAtIEZFQyBSZXNldCAqLwogCS8qIEdQMDQgLSBX aXJlbGVzcyBQb3dlciAqLwotCWlmIChJU19FTkFCTEVEKENPTkZJR19EUklWRVJfTkVUX1NNQzkx MVgpICYmIGNjeG14NTFfaWQtPmV0aDEpIHsKLQkJdmFsIHw9ICgxIDw8IDgpOwotCQltZGVsYXko NTApOworCWlmIChjY3hteF9pZC0+ZXRoMSkgeworCQl2YWwgfD0gTUMxMzg5Ml9QT1dFUl9NSVND X0dQTzJFTjsKKwkJbWRlbGF5KDEwMCk7CiAJfQotCWlmIChJU19FTkFCTEVEKENPTkZJR19EUklW RVJfTkVUX0ZFQ19JTVgpICYmIGNjeG14NTFfaWQtPmV0aDApCi0JCXZhbCB8PSAoMSA8PCAxMCk7 Ci0JaWYgKGNjeG14NTFfaWQtPndsZXNzKQotCQl2YWwgfD0gKDEgPDwgMTIpOwotCW1jMTN4eHhf cmVnX3dyaXRlKG1jMTN4eHhfZGV2LCBNQzEzODkyX1JFR19QT1dFUl9NSVNDLCB2YWwpOworCWlm IChjY3hteF9pZC0+ZXRoMCkKKwkJdmFsIHw9IE1DMTM4OTJfUE9XRVJfTUlTQ19HUE8zRU47CisJ aWYgKGNjeG14X2lkLT53bGVzcykKKwkJdmFsIHw9IE1DMTM4OTJfUE9XRVJfTUlTQ19HUE80RU47 CisJbWMxM3h4eF9yZWdfd3JpdGUobWMxM3h4eCwgTUMxMzg5Ml9SRUdfUE9XRVJfTUlTQywgdmFs KTsKIAogCXVkZWxheSgxMDApOwogCi0JcmV0dXJuIDA7CisJY29uc29sZV9mbHVzaCgpOworCWlt eDUxX2luaXRfbG93bGV2ZWwoY2N4bXhfaWQtPmNwdV9taHopOworCWNsb2NrX25vdGlmaWVyX2Nh bGxfY2hhaW4oKTsKKworCXByaW50ZigiTUMxMzg5MiBQTUlDIGluaXRpYWxpemVkLlxuIik7CiB9 CiAKLS8qCi0gKiBPbiB0aGlzIGJvYXJkIHRoZSBTRFJBTSBpcyBhbHdheXMgY29uZmlndXJlZCBm b3IgNTEyTWliLiBUaGUgcmVhbAotICogc2l6ZSBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBib2FyZCBp ZCByZWFkIGZyb20gdGhlIElJTSBtb2R1bGUuCi0gKi8KLXN0YXRpYyBpbnQgY2N4bXg1MV9zZHJh bV9maXh1cCh2b2lkKQorc3RhdGljIGludCBjY3hteDUxX2lzX2NvbXBhdGlibGUodm9pZCkKIHsK LQlpbXhfZXNkY3RsX2Rpc2FibGUoKTsKKwlyZXR1cm4gb2ZfbWFjaGluZV9pc19jb21wYXRpYmxl KCJkaWdpLGNvbm5lY3Rjb3JlLWNjeG14NTEtc29tIik7Cit9CisKK3N0YXRpYyB2b2lkIGNjeG14 NTFfZGlzYWJsZV9kZXZpY2Uoc3RydWN0IGRldmljZV9ub2RlICpyb290LCBjb25zdCBjaGFyICps YWJlbCkKK3sKKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wID0gb2ZfZmluZF9ub2RlX2J5X25hbWUo cm9vdCwgbGFiZWwpOworCWlmIChucCkKKwkJb2ZfZGV2aWNlX2Rpc2FibGUobnApOworfQorCitz dGF0aWMgaW50IGNjeG14NTFfYm9hcmRfZml4dXAoc3RydWN0IGRldmljZV9ub2RlICpyb290LCB2 b2lkICp1bnVzZWQpCit7CisJY2hhciAqc2VyaWFsOworCisJaWYgKCFjY3hteF9pZC0+YWNjZWwp CisJCWNjeG14NTFfZGlzYWJsZV9kZXZpY2Uocm9vdCwgIm1tYTc0NTVsQDFkIik7CisKKwlpZiAo IWNjeG14X2lkLT5ldGgwKQorCQljY3hteDUxX2Rpc2FibGVfZGV2aWNlKHJvb3QsICJldGhlcm5l dEA4M2ZlYzAwMCIpOworCisJaWYgKCFjY3hteF9pZC0+ZXRoMSkKKwkJY2N4bXg1MV9kaXNhYmxl X2RldmljZShyb290LCAibGFuOTIyMUA1LDAiKTsKKworCWlmICghY2N4bXhfaWQtPndsZXNzKQor CQljY3hteDUxX2Rpc2FibGVfZGV2aWNlKHJvb3QsICJlc2RoY0A3MDAwODAwMCIpOworCisJc2Vy aWFsID0gYmFzcHJpbnRmKCIlMDh4JTA4eCIsIDAsIGJvYXJkc2VyaWFsKTsKKwlvZl9zZXRfcHJv cGVydHkocm9vdCwgInNlcmlhbC1udW1iZXIiLCBzZXJpYWwsIHN0cmxlbihzZXJpYWwpICsgMSwg MSk7CisJZnJlZShzZXJpYWwpOwogCiAJcmV0dXJuIDA7CiB9Ci1wb3N0Y29yZV9pbml0Y2FsbChj Y3hteDUxX3NkcmFtX2ZpeHVwKTsKIAotc3RhdGljIGludCBjY3hteDUxX21lbW9yeV9pbml0KHZv aWQpCitzdGF0aWMgaW50IGNjeG14NTFfc2RyYW1fZml4dXAodm9pZCkKIHsKKwlpZiAoIWNjeG14 NTFfaXNfY29tcGF0aWJsZSgpKQorCQlyZXR1cm4gMDsKKwogCWFybV9hZGRfbWVtX2RldmljZSgi cmFtMCIsIE1YNTFfQ1NEMF9CQVNFX0FERFIsIFNaXzEyOE0pOwogCisJLyoKKwkgKiBPbiB0aGlz IGJvYXJkIHRoZSBTRFJBTSBpcyBhbHdheXMgY29uZmlndXJlZCBmb3IgNTEyTWliLiBUaGUgcmVh bAorCSAqIHNpemUgaXMgZGV0ZXJtaW5lZCBieSB0aGUgYm9hcmQgaWQgcmVhZCBmcm9tIHRoZSBJ SU0gbW9kdWxlLgorCSAqLworCWlteF9lc2RjdGxfZGlzYWJsZSgpOworCisJb2ZfcmVnaXN0ZXJf Zml4dXAoY2N4bXg1MV9ib2FyZF9maXh1cCwgTlVMTCk7CisKIAlyZXR1cm4gMDsKIH0KLW1lbV9p bml0Y2FsbChjY3hteDUxX21lbW9yeV9pbml0KTsKK3Bvc3Rjb3JlX2luaXRjYWxsKGNjeG14NTFf c2RyYW1fZml4dXApOwogCi1zdGF0aWMgaW50IGNjeG14NTFfZGV2aWNlc19pbml0KHZvaWQpCitz dGF0aWMgaW50IGNjeG14NTFfaW5pdCh2b2lkKQogeworCWNoYXIgbWFubG9jID0gJ04nOwogCXU4 IGh3aWRbNl07Ci0JaW50IHB3cjsKLQljaGFyIG1hbmxvYzsKLQotCWlmICgoaW14X2lpbV9yZWFk KDEsIDksIGh3aWQsIHNpemVvZihod2lkKSkgIT0gc2l6ZW9mKGh3aWQpKSB8fCAoaHdpZFswXSA8 IDB4MDIpIHx8IChod2lkWzBdID49IEFSUkFZX1NJWkUoY2N4bXg1MV9pZHMpKSkKLQkJbWVtc2V0 KGh3aWQsIDB4MDAsIHNpemVvZihod2lkKSk7Ci0KLQljY3hteDUxX2lkID0gJmNjeG14NTFfaWRz W2h3aWRbMF1dOwotCXByaW50ZigiTW9kdWxlIFZhcmlhbnQ6ICVzICgweCUwMngpXG4iLCBjY3ht eDUxX2lkLT5pZF9zdHJpbmcsIGh3aWRbMF0pOwotCi0JaWYgKGh3aWRbMF0pIHsKLQkJcHJpbnRm KCJNb2R1bGUgSFcgUmV2IDogJTAyeFxuIiwgaHdpZFsxXSArIDEpOwotCQlzd2l0Y2ggKGh3aWRb Ml0gJiAweGMwKSB7Ci0JCWNhc2UgMHgwMDoKLQkJCW1hbmxvYyA9ICdCJzsKLQkJCWJyZWFrOwot CQljYXNlIDB4NDA6Ci0JCQltYW5sb2MgPSAnVyc7Ci0JCQlicmVhazsKLQkJY2FzZSAweDgwOgot CQkJbWFubG9jID0gJ1MnOwotCQkJYnJlYWs7Ci0JCWRlZmF1bHQ6Ci0JCQltYW5sb2MgPSAnTic7 Ci0JCQlicmVhazsKLQkJfQotCQlwcmludGYoIk1vZHVsZSBTZXJpYWwgOiAlYyVkXG4iLCBtYW5s b2MsICgoaHdpZFsyXSAmIDB4M2YpIDw8IDI0KSB8IChod2lkWzNdIDw8IDE2KSB8IChod2lkWzRd IDw8IDgpIHwgaHdpZFs1XSk7Ci0JCWlmICgoY2N4bXg1MV9pZC0+bWVtX3N6IC0gU1pfMTI4TSkg PiAwKQotCQkJYXJtX2FkZF9tZW1fZGV2aWNlKCJyYW0xIiwgTVg1MV9DU0QwX0JBU0VfQUREUiAr IFNaXzEyOE0sIGNjeG14NTFfaWQtPm1lbV9zeiAtIFNaXzEyOE0pOwotCX0gZWxzZQotCQlyZXR1 cm4gLUVOT1NZUzsKLQotCWlteDUxX2FkZF91YXJ0MSgpOwotCWlteDUxX2FkZF91YXJ0MigpOwot Ci0Jc3BpX3JlZ2lzdGVyX2JvYXJkX2luZm8oY2N4bXg1MV9zcGlfYm9hcmRfaW5mbywgQVJSQVlf U0laRShjY3hteDUxX3NwaV9ib2FyZF9pbmZvKSk7Ci0JaW14NTFfYWRkX3NwaTAoJmVjc3BpXzBf ZGF0YSk7Ci0KLQlwd3IgPSBjY3hteDUxX3Bvd2VyX2luaXQoKTsKLQljb25zb2xlX2ZsdXNoKCk7 Ci0JaW14NTFfaW5pdF9sb3dsZXZlbCgoY2N4bXg1MV9pZC0+aW5kdXN0cmlhbCB8fCBwd3IpID8g NjAwIDogODAwKTsKLQljbG9ja19ub3RpZmllcl9jYWxsX2NoYWluKCk7Ci0JaWYgKHB3cikKLQkJ cHJpbnRmKCJDb3VsZCBub3Qgc2V0dXAgUE1JQy4gQ2xvY2tzIG5vdCBhZGp1c3RlZC5cbiIpOwog Ci0JaW14NTFfYWRkX2kyYzEoTlVMTCk7CisJaWYgKCFjY3hteDUxX2lzX2NvbXBhdGlibGUoKSkK KwkJcmV0dXJuIDA7CiAKLQlpbXg1MV9hZGRfbmFuZCgmbmFuZF9pbmZvKTsKLQlkZXZmc19hZGRf cGFydGl0aW9uKCJuYW5kMCIsIDB4MDAwMDAsIDB4ODAwMDAsIERFVkZTX1BBUlRJVElPTl9GSVhF RCwgInNlbGZfcmF3Iik7Ci0JZGV2X2FkZF9iYl9kZXYoInNlbGZfcmF3IiwgInNlbGYwIik7Ci0J ZGV2ZnNfYWRkX3BhcnRpdGlvbigibmFuZDAiLCAweDgwMDAwLCAweDQwMDAwLCBERVZGU19QQVJU SVRJT05fRklYRUQsICJlbnZfcmF3Iik7Ci0JZGV2X2FkZF9iYl9kZXYoImVudl9yYXciLCAiZW52 MCIpOwotCi0JaWYgKElTX0VOQUJMRUQoQ09ORklHX0RSSVZFUl9ORVRfRkVDX0lNWCkgJiYgY2N4 bXg1MV9pZC0+ZXRoMCAmJiAhcHdyKSB7Ci0JCWV0aF9yZWdpc3Rlcl9ldGhhZGRyKDAsIGh3aWQp OwotCQlpbXg1MV9hZGRfZmVjKCZmZWNfaW5mbyk7CisJaWYgKChpbXhfaWltX3JlYWQoMSwgOSwg aHdpZCwgc2l6ZW9mKGh3aWQpKSAhPSBzaXplb2YoaHdpZCkpIHx8CisJICAgIChod2lkWzBdIDwg MHgwMikgfHwgKGh3aWRbMF0gPj0gQVJSQVlfU0laRShjY3hteDUxX2lkcykpKSB7CisJCXByaW50 ZigiVW5rbm93biBib2FyZCB2YXJpYW50ICgweCUwMngpLiBTeXN0ZW0gaGFsdGVkLlxuIiwgaHdp ZFswXSk7CisJCWhhbmcoKTsKIAl9CiAKLQlpZiAoSVNfRU5BQkxFRChDT05GSUdfRFJJVkVSX05F VF9TTUM5MTFYKSAmJiBjY3hteDUxX2lkLT5ldGgxICYmICFwd3IpIHsKLQkJLyogQ29uZmlndXJl IHRoZSBXRUlNIENTNSB0aW1taW5nLCBidXMgd2lkdGgsIGV0YyAqLwotCQkvKiAxNiBiaXQgb24g REFUQVszMS4uMTZdLCBub3QgbXVsdGlwbGV4ZWQsIGFzeW5jICovCi0JCXdyaXRlbCgweDAwNDIw MDgxLCBNWDUxX1dFSU1fQkFTRV9BRERSICsgV0VJTV9DU3hHQ1IxKDUpKTsKLQkJLyogQURIIGhh cyBub3QgZWZmZWN0IG9uIG5vbiBtdXhlZCBidXMgKi8KLQkJd3JpdGVsKDAsIE1YNTFfV0VJTV9C QVNFX0FERFIgKyBXRUlNX0NTeEdDUjIoNSkpOwotCQkvKiBSV1NDPTUwLCBSQURWQT0yLCBSQURW Tj02LCBPRUE9MCwgT0VOPTAsIFJDU0E9MCwgUkNTTj0wICovCi0JCXdyaXRlbCgweDMyMjYwMDAw LCBNWDUxX1dFSU1fQkFTRV9BRERSICsgV0VJTV9DU3hSQ1IxKDUpKTsKLQkJLyogQVBSPTAgKi8K LQkJd3JpdGVsKDAsIE1YNTFfV0VJTV9CQVNFX0FERFIgKyBXRUlNX0NTeFJDUjIoNSkpOwotCQkv KiBXQUw9MCwgV0JFRD0xLCBXV1NDPTUwLCBXQURWQT0yLCBXQURWTj02LCBXRUE9MCwgV0VOPTAs IFdDU0E9MCAqLwotCQl3cml0ZWwoMHg3MjA4MGYwMCwgTVg1MV9XRUlNX0JBU0VfQUREUiArIFdF SU1fQ1N4V0NSMSg1KSk7Ci0KLQkJLyogTEFOOTIyMSBuZXR3b3JrIGNvbnRyb2xsZXIgKi8KLQkJ YWRkX2dlbmVyaWNfZGV2aWNlKCJzbWM5MTF4IiwgMSwgTlVMTCwgTVg1MV9DUzVfQkFTRV9BRERS LCBTWl80SywgSU9SRVNPVVJDRV9NRU0sIE5VTEwpOworCWNjeG14X2lkID0gJmNjeG14NTFfaWRz W2h3aWRbMF1dOworCisJc3dpdGNoIChod2lkWzJdICYgMHhjMCkgeworCWNhc2UgMHgwMDoKKwkJ bWFubG9jID0gJ0InOworCQlicmVhazsKKwljYXNlIDB4NDA6CisJCW1hbmxvYyA9ICdXJzsKKwkJ YnJlYWs7CisJY2FzZSAweDgwOgorCQltYW5sb2MgPSAnUyc7CisJCWJyZWFrOworCWRlZmF1bHQ6 CisJCWJyZWFrOwogCX0KIAotCWlteDUxX2FkZF91c2JvdGcoJmNjeG14NTFfb3RnX3BkYXRhKTsK KwlldGhfcmVnaXN0ZXJfZXRoYWRkcigwLCBod2lkKTsKIAotCWFybWxpbnV4X3NldF9hcmNoaXRl Y3R1cmUoY2N4bXg1MV9pZC0+d2xlc3MgPyBNQUNIX1RZUEVfQ0NXTVg1MSA6IE1BQ0hfVFlQRV9D Q01YNTEpOworCWJvYXJkc2VyaWFsID0gKChod2lkWzJdICYgMHgzZikgPDwgMjQpIHwgKGh3aWRb M10gPDwgMTYpIHwgKGh3aWRbNF0gPDwgOCkgfCBod2lkWzVdOwogCi0JcmV0dXJuIDA7Ci19Ci1k ZXZpY2VfaW5pdGNhbGwoY2N4bXg1MV9kZXZpY2VzX2luaXQpOworCXByaW50ZigiTW9kdWxlIFZh cmlhbnQ6ICVzICgweCUwMngpXG4iLCBjY3hteF9pZC0+aWRfc3RyaW5nLCBod2lkWzBdKTsKKwlw cmludGYoIk1vZHVsZSBIVyBSZXYgOiAlMDJ4XG4iLCBod2lkWzFdICsgMSk7CisJcHJpbnRmKCJN b2R1bGUgU2VyaWFsIDogJWMlZFxuIiwgbWFubG9jLCBib2FyZHNlcmlhbCk7CiAKLXN0YXRpYyBp bnQgY2N4bXg1MV9jb25zb2xlX2luaXQodm9pZCkKLXsKLQlteGNfaW9tdXhfdjNfc2V0dXBfbXVs dGlwbGVfcGFkcyhjY3hteDUxX3BhZHMsIEFSUkFZX1NJWkUoY2N4bXg1MV9wYWRzKSk7CisJaWYg KChjY3hteF9pZC0+bWVtX3N6IC0gU1pfMTI4TSkgPiAwKQorCQlhcm1fYWRkX21lbV9kZXZpY2Uo InJhbTEiLCBNWDUxX0NTRDBfQkFTRV9BRERSICsgU1pfMTI4TSwKKwkJCQkgICBjY3hteF9pZC0+ bWVtX3N6IC0gU1pfMTI4TSk7CisKKwltYzEzeHh4X3JlZ2lzdGVyX2luaXRfY2FsbGJhY2soY2N4 bXg1MV9wb3dlcl9pbml0KTsKIAogCWJhcmVib3hfc2V0X21vZGVsKCJEaWdpIENvbm5lY3RDb3Jl IGkuTVg1MSIpOwotCWJhcmVib3hfc2V0X2hvc3RuYW1lKCJjY214NTEiKTsKKwliYXJlYm94X3Nl dF9ob3N0bmFtZSgiY2N4bXg1MSIpOworCisJaW14NTFfYmJ1X2ludGVybmFsX21tY19yZWdpc3Rl cl9oYW5kbGVyKCJtbWMiLCAiL2Rldi9tbWMwIiwKKwkJCQkJCUJCVV9IQU5ETEVSX0ZMQUdfREVG QVVMVCk7CiAKLQlpbXg1MV9hZGRfdWFydDAoKTsKKwlpZiAoSVNfRU5BQkxFRChDT05GSUdfREVG QVVMVF9FTlZJUk9OTUVOVCkpCisJCWRlZmF1bHRlbnZfYXBwZW5kX2RpcmVjdG9yeShkZWZhdWx0 ZW52X2NjeG14NTEpOwogCiAJcmV0dXJuIDA7CiB9Ci1jb25zb2xlX2luaXRjYWxsKGNjeG14NTFf Y29uc29sZV9pbml0KTsKK2ZzX2luaXRjYWxsKGNjeG14NTFfaW5pdCk7CmRpZmYgLS1naXQgYS9h cmNoL2FybS9ib2FyZHMvY2N4bXg1MS9jY3hteDUxLmggYi9hcmNoL2FybS9ib2FyZHMvY2N4bXg1 MS9jY3hteDUxLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNmZWFjYWMwMy4uMDAw MDAwMDAwCi0tLSBhL2FyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2NjeG14NTEuaAorKysgL2Rldi9u dWxsCkBAIC0xLDM1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgMjAxMCBEaWdpIEludGVybmF0 aW9uYWwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICovCi0KLS8qCi0gKiBUaGUgY29kZSBj b250YWluZWQgaGVyZWluIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMK LSAqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UKLSAqIFZlcnNpb24gMiBvciBsYXRlciBhdCB0aGUgZm9sbG93aW5nIGxvY2F0 aW9uczoKLSAqCi0gKiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2dwbC1saWNl bnNlLmh0bWwKLSAqIGh0dHA6Ly93d3cuZ251Lm9yZy9jb3B5bGVmdC9ncGwuaHRtbAotICovCi0K LSNpZm5kZWYgX0NDWE1YNTFfSF8KLSNkZWZpbmUgX0NDWE1YNTFfSF8KLQotc3RydWN0IGNjeG14 NTFfaHdpZCB7Ci0JdTgJCXZhcmlhbnQ7Ci0JdTgJCXZlcnNpb247Ci0JdTMyCQlzbjsKLQljaGFy CQltbG9jOwotfTsKLQotc3RydWN0IGNjeG14NTFfaWRlbnQgewotCWNvbnN0IGNoYXIJKmlkX3N0 cmluZzsKLQljb25zdCBpbnQJbWVtX3N6OwotCWNvbnN0IGNoYXIJaW5kdXN0cmlhbDsKLQljb25z dCBjaGFyCWV0aDA7Ci0JY29uc3QgY2hhcglldGgxOwotCWNvbnN0IGNoYXIJd2xlc3M7Ci19Owot Ci1leHRlcm4gc3RydWN0IGNjeG14NTFfaWRlbnQgKmNjeG14NTFfaWQ7Ci0KLSNlbmRpZgkvKiBf Q0NYTVg1MV9IXyAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvY2N4bXg1 MWpzLmMgYi9hcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9jY3hteDUxanMuYwpkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggN2YwNjhlMjM5Li4wMDAwMDAwMDAKLS0tIGEvYXJjaC9hcm0vYm9h cmRzL2NjeG14NTEvY2N4bXg1MWpzLmMKKysrIC9kZXYvbnVsbApAQCAtMSwxMDMgKzAsMCBAQAot LyoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGFzCi0gKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgotICogdGhlIExpY2Vuc2UsIG9yIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgot ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZQotICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K LSAqCi0gKi8KLQotI2luY2x1ZGUgPGNvbW1vbi5oPgotI2luY2x1ZGUgPGlvLmg+Ci0jaW5jbHVk ZSA8aW5pdC5oPgotI2luY2x1ZGUgPGdwaW8uaD4KLSNpbmNsdWRlIDxtY2kuaD4KLSNpbmNsdWRl IDxhc20vYXJtbGludXguaD4KLSNpbmNsdWRlIDxtYWNoL2dlbmVyaWMuaD4KLSNpbmNsdWRlIDxt YWNoL2lteDUxLXJlZ3MuaD4KLSNpbmNsdWRlIDxtYWNoL2lvbXV4LW14NTEuaD4KLSNpbmNsdWRl IDxtYWNoL2RldmljZXMtaW14NTEuaD4KLSNpbmNsdWRlIDxnZW5lcmF0ZWQvbWFjaC10eXBlcy5o PgotCi0jaW5jbHVkZSAiY2N4bXg1MS5oIgotCi0jZGVmaW5lIENDWE1YNTFKU19VU0JIMV9SRVNF VAlJTVhfR1BJT19OUigzLCA4KQotI2RlZmluZSBDQ1hNWDUxSlNfU0QzX1dQCUlNWF9HUElPX05S KDMsIDE3KQotCi1zdGF0aWMgaW9tdXhfdjNfY2ZnX3QgY2N4bXg1MWpzX3BhZHNbXSA9IHsKLQkv KiBTRDEgKi8KLQlNWDUxX1BBRF9TRDFfQ0xLX19TRDFfQ0xLLAotCU1YNTFfUEFEX1NEMV9DTURf X1NEMV9DTUQsCi0JTVg1MV9QQURfU0QxX0RBVEEwX19TRDFfREFUQTAsCi0JTVg1MV9QQURfU0Qx X0RBVEExX19TRDFfREFUQTEsCi0JTVg1MV9QQURfU0QxX0RBVEEyX19TRDFfREFUQTIsCi0JTVg1 MV9QQURfU0QxX0RBVEEzX19TRDFfREFUQTMsCi0JLyogU0QzICovCi0JTVg1MV9QQURfTkFOREZf Q1M3X19TRDNfQ0xLLAotCU1YNTFfUEFEX05BTkRGX1JEWV9JTlRfX1NEM19DTUQsCi0JTVg1MV9Q QURfTkFOREZfRDhfX1NEM19EQVRBMCwKLQlNWDUxX1BBRF9OQU5ERl9EOV9fU0QzX0RBVEExLAot CU1YNTFfUEFEX05BTkRGX0QxMF9fU0QzX0RBVEEyLAotCU1YNTFfUEFEX05BTkRGX0QxMV9fU0Qz X0RBVEEzLAotCU1YNTFfUEFEX05BTkRGX0QxMl9fU0QzX0RBVDQsCi0JTVg1MV9QQURfTkFOREZf RDEzX19TRDNfREFUNSwKLQlNWDUxX1BBRF9OQU5ERl9EMTRfX1NEM19EQVQ2LAotCU1YNTFfUEFE X05BTkRGX0QxNV9fU0QzX0RBVDcsCi0JLyogVVNCIEhPU1QxICovCi0JTVg1MV9QQURfVVNCSDFf Q0xLX19VU0JIMV9DTEssCi0JTVg1MV9QQURfVVNCSDFfRElSX19VU0JIMV9ESVIsCi0JTVg1MV9Q QURfVVNCSDFfTlhUX19VU0JIMV9OWFQsCi0JTVg1MV9QQURfVVNCSDFfU1RQX19VU0JIMV9TVFAs Ci0JTVg1MV9QQURfVVNCSDFfREFUQTBfX1VTQkgxX0RBVEEwLAotCU1YNTFfUEFEX1VTQkgxX0RB VEExX19VU0JIMV9EQVRBMSwKLQlNWDUxX1BBRF9VU0JIMV9EQVRBMl9fVVNCSDFfREFUQTIsCi0J TVg1MV9QQURfVVNCSDFfREFUQTNfX1VTQkgxX0RBVEEzLAotCU1YNTFfUEFEX1VTQkgxX0RBVEE0 X19VU0JIMV9EQVRBNCwKLQlNWDUxX1BBRF9VU0JIMV9EQVRBNV9fVVNCSDFfREFUQTUsCi0JTVg1 MV9QQURfVVNCSDFfREFUQTZfX1VTQkgxX0RBVEE2LAotCU1YNTFfUEFEX1VTQkgxX0RBVEE3X19V U0JIMV9EQVRBNywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgZXNkaGNfcGxhdGZvcm1fZGF0YSBzZGhj MV9wZGF0YSA9IHsKLQkuY2RfdHlwZQk9IEVTREhDX0NEX05PTkUsCi0JLndwX3R5cGUJPSBFU0RI Q19XUF9OT05FLAotCS5jYXBzCQk9IE1NQ19DQVBfNF9CSVRfREFUQSwKLX07Ci0KLXN0YXRpYyBz dHJ1Y3QgZXNkaGNfcGxhdGZvcm1fZGF0YSBzZGhjM19wZGF0YSA9IHsKLQkuY2RfdHlwZQk9IEVT REhDX0NEX05PTkUsCi0JLndwX3R5cGUJPSBFU0RIQ19XUF9HUElPLAotCS53cF9ncGlvCT0gQ0NY TVg1MUpTX1NEM19XUCwKLQkuY2FwcwkJPSBNTUNfQ0FQXzRfQklUX0RBVEEgfCBNTUNfQ0FQXzhf QklUX0RBVEEsCi19OwotCi1zdGF0aWMgc3RydWN0IGlteHVzYl9wbGF0Zm9ybWRhdGEgY2N4bXg1 MWpzX3VzYmhvc3QxX3BkYXRhID0gewotCS5mbGFncwk9IE1YQ19FSENJX01PREVfVUxQSSB8IE1Y Q19FSENJX0lUQ19OT19USFJFU0hPTEQsCi0JLm1vZGUJPSBJTVhfVVNCX01PREVfSE9TVCwKLX07 Ci0KLXN0YXRpYyBpbnQgY2N4bXg1MWpzX2luaXQodm9pZCkKLXsKLQlteGNfaW9tdXhfdjNfc2V0 dXBfbXVsdGlwbGVfcGFkcyhjY3hteDUxanNfcGFkcywgQVJSQVlfU0laRShjY3hteDUxanNfcGFk cykpOwotCi0JaWYgKElTX0VOQUJMRUQoQ09ORklHX01DSV9JTVhfRVNESEMpKSB7Ci0JCWlteDUx X2FkZF9tbWMwKCZzZGhjMV9wZGF0YSk7Ci0JCWlteDUxX2FkZF9tbWMyKCZzZGhjM19wZGF0YSk7 Ci0JfQotCi0JZ3Bpb19kaXJlY3Rpb25fb3V0cHV0KENDWE1YNTFKU19VU0JIMV9SRVNFVCwgMCk7 Ci0JbWRlbGF5KDEwKTsKLQlncGlvX3NldF92YWx1ZShDQ1hNWDUxSlNfVVNCSDFfUkVTRVQsIDEp OwotCW1kZWxheSgxMCk7Ci0JaW14NTFfYWRkX3VzYmgxKCZjY3hteDUxanNfdXNiaG9zdDFfcGRh dGEpOwotCi0JYXJtbGludXhfc2V0X2FyY2hpdGVjdHVyZShjY3hteDUxX2lkLT53bGVzcyA/IE1B Q0hfVFlQRV9DQ1dNWDUxSlMgOiBNQUNIX1RZUEVfQ0NNWDUxSlMpOwotCi0JcmV0dXJuIDA7Ci19 Ci0KLWxhdGVfaW5pdGNhbGwoY2N4bXg1MWpzX2luaXQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0v Ym9hcmRzL2NjeG14NTEvZW52L2Jvb3QvbmFuZCBiL2FyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2Rl ZmF1bHRlbnYtY2N4bXg1MS9ib290L25hbmQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBm cm9tIGFyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2Vudi9ib290L25hbmQKcmVuYW1lIHRvIGFyY2gv YXJtL2JvYXJkcy9jY3hteDUxL2RlZmF1bHRlbnYtY2N4bXg1MS9ib290L25hbmQKZGlmZiAtLWdp dCBhL2FyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2Vudi9udi9hdXRvYm9vdF90aW1lb3V0IGIvYXJj aC9hcm0vYm9hcmRzL2NjeG14NTEvZGVmYXVsdGVudi1jY3hteDUxL252L2F1dG9ib290X3RpbWVv dXQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGFyY2gvYXJtL2JvYXJkcy9jY3ht eDUxL2Vudi9udi9hdXRvYm9vdF90aW1lb3V0CnJlbmFtZSB0byBhcmNoL2FybS9ib2FyZHMvY2N4 bXg1MS9kZWZhdWx0ZW52LWNjeG14NTEvbnYvYXV0b2Jvb3RfdGltZW91dApkaWZmIC0tZ2l0IGEv YXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvZW52L252L2Jvb3QuZGVmYXVsdCBiL2FyY2gvYXJtL2Jv YXJkcy9jY3hteDUxL2RlZmF1bHRlbnYtY2N4bXg1MS9udi9ib290LmRlZmF1bHQKc2ltaWxhcml0 eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGFyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2Vudi9udi9i b290LmRlZmF1bHQKcmVuYW1lIHRvIGFyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2RlZmF1bHRlbnYt Y2N4bXg1MS9udi9ib290LmRlZmF1bHQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2JvYXJkcy9jY3ht eDUxL2RlZmF1bHRlbnYtY2N4bXg1MS9udi9saW51eC5ib290YXJncy5iYXNlIGIvYXJjaC9hcm0v Ym9hcmRzL2NjeG14NTEvZGVmYXVsdGVudi1jY3hteDUxL252L2xpbnV4LmJvb3RhcmdzLmJhc2UK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi43MTA2YTE5ZjcKLS0tIC9kZXYv bnVsbAorKysgYi9hcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9kZWZhdWx0ZW52LWNjeG14NTEvbnYv bGludXguYm9vdGFyZ3MuYmFzZQpAQCAtMCwwICsxIEBACitlYXJseXByaW50awpkaWZmIC0tZ2l0 IGEvYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvZW52L2luaXQvbXRkcGFydHMtbmFuZCBiL2FyY2gv YXJtL2JvYXJkcy9jY3hteDUxL2Vudi9pbml0L210ZHBhcnRzLW5hbmQKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDI3ZWQzOGE4OC4uMDAwMDAwMDAwCi0tLSBhL2FyY2gvYXJtL2JvYXJk cy9jY3hteDUxL2Vudi9pbml0L210ZHBhcnRzLW5hbmQKKysrIC9kZXYvbnVsbApAQCAtMSw2ICsw LDAgQEAKLSMhL2Jpbi9zaAotCi1tdGRwYXJ0cz0iNTEyayhiYXJlYm94KXJvLDI1NmsoYmFyZWJv eGVudiksMzMyOGsoa2VybmVsKSwtKHJvb3QpIgota2VybmVsbmFtZT0ibXhjX25hbmQiCi0KLW10 ZHBhcnRzLWFkZCAtYiAtZCBuYW5kMCAtayAke2tlcm5lbG5hbWV9IC1wICR7bXRkcGFydHN9CmRp ZmYgLS1naXQgYS9hcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9sb3dsZXZlbC5jIGIvYXJjaC9hcm0v Ym9hcmRzL2NjeG14NTEvbG93bGV2ZWwuYwppbmRleCAyYjNkYzQyZTguLjIwN2Q2OGRjZCAxMDA2 NDQKLS0tIGEvYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvbG93bGV2ZWwuYworKysgYi9hcmNoL2Fy bS9ib2FyZHMvY2N4bXg1MS9sb3dsZXZlbC5jCkBAIC01LDggKzUsMTYgQEAKICNpbmNsdWRlIDxh c20vYmFyZWJveC1hcm0taGVhZC5oPgogI2luY2x1ZGUgPG1hY2gvaW14NTEtcmVncy5oPgogCi12 b2lkIF9fbmFrZWQgYmFyZWJveF9hcm1fcmVzZXRfdmVjdG9yKHZvaWQpCitFTlRSWV9GVU5DVElP TihzdGFydF9jY3hteDUxLCByMCwgcjEsIHIyKQogeworCWV4dGVybiBjaGFyIF9fZHRiX2lteDUx X2NjeG14NTFfc3RhcnRbXTsKKwl2b2lkICpmZHQ7CisKIAlpbXg1X2NwdV9sb3dsZXZlbF9pbml0 KCk7Ci0JYmFyZWJveF9hcm1fZW50cnkoTVg1MV9DU0QwX0JBU0VfQUREUiwgU1pfMTI4TSwgTlVM TCk7CisKKwlhcm1fc2V0dXBfc3RhY2soMHgyMDAwMDAwMCAtIDE2KTsKKworCWZkdCA9IF9fZHRi X2lteDUxX2NjeG14NTFfc3RhcnQgKyBnZXRfcnVudGltZV9vZmZzZXQoKTsKKworCWJhcmVib3hf YXJtX2VudHJ5KE1YNTFfQ1NEMF9CQVNFX0FERFIsIFNaXzEyOE0sIGZkdCk7CiB9CmRpZmYgLS1n aXQgYS9hcmNoL2FybS9jb25maWdzL2NjbXg1MV9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdz L2NjbXg1MV9kZWZjb25maWcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMxNmY3M2Y3 Yi4uMDAwMDAwMDAwCi0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvY2NteDUxX2RlZmNvbmZpZworKysg L2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAKLUNPTkZJR19BUkNIX0lNWD15Ci1DT05GSUdfTUFD SF9DQ01YNTE9eQotQ09ORklHX0FFQUJJPXkKLUNPTkZJR19BUk1fT1BUSU1aRURfU1RSSU5HX0ZV TkNUSU9OUz15Ci1DT05GSUdfTU1VPXkKLUNPTkZJR19NQUxMT0NfU0laRT0weDIwMDAwMDAKLUNP TkZJR19IVVNIX0ZBTkNZX1BST01QVD15Ci1DT05GSUdfQ01ETElORV9FRElUSU5HPXkKLUNPTkZJ R19BVVRPX0NPTVBMRVRFPXkKLUNPTkZJR19CT09UTV9TSE9XX1RZUEU9eQotQ09ORklHX0RFRkFV TFRfRU5WSVJPTk1FTlRfR0VORVJJQ19ORVc9eQotQ09ORklHX0RFRkFVTFRfRU5WSVJPTk1FTlRf UEFUSD0iYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvZW52IgotQ09ORklHX0xPTkdIRUxQPXkKLUNP TkZJR19DTURfTUVNSU5GTz15Ci1DT05GSUdfQ01EX0FSTV9NTVVJTkZPPXkKLUNPTkZJR19DTURf Qk9PVFo9eQotQ09ORklHX0NNRF9HTz15Ci1DT05GSUdfQ01EX1JFU0VUPXkKLUNPTkZJR19DTURf UEFSVElUSU9OPXkKLUNPTkZJR19DTURfRVhQT1JUPXkKLUNPTkZJR19DTURfUFJJTlRFTlY9eQot Q09ORklHX0NNRF9NQUdJQ1ZBUj15Ci1DT05GSUdfQ01EX01BR0lDVkFSX0hFTFA9eQotQ09ORklH X0NNRF9TQVZFRU5WPXkKLUNPTkZJR19DTURfU0xFRVA9eQotQ09ORklHX0NNRF9ESENQPXkKLUNP TkZJR19DTURfUElORz15Ci1DT05GSUdfQ01EX0VDSE9fRT15Ci1DT05GSUdfQ01EX0VESVQ9eQot Q09ORklHX0NNRF9SRUFETElORT15Ci1DT05GSUdfQ01EX1RJTUVPVVQ9eQotQ09ORklHX0NNRF9D UkM9eQotQ09ORklHX0NNRF9DUkNfQ01QPXkKLUNPTkZJR19DTURfQ0xLPXkKLUNPTkZJR19DTURf RkxBU0g9eQotQ09ORklHX0NNRF9HUElPPXkKLUNPTkZJR19DTURfSTJDPXkKLUNPTkZJR19DTURf TkFORFRFU1Q9eQotQ09ORklHX0NNRF9TUEk9eQotQ09ORklHX0NNRF9PRlRSRUU9eQotQ09ORklH X05FVD15Ci1DT05GSUdfRFJJVkVSX05FVF9GRUNfSU1YPXkKLUNPTkZJR19EUklWRVJfTkVUX1NN QzkxMVg9eQotQ09ORklHX0kyQz15Ci1DT05GSUdfSTJDX0lNWD15Ci1DT05GSUdfTVREPXkKLUNP TkZJR19OQU5EPXkKLUNPTkZJR19OQU5EX0lNWD15Ci1DT05GSUdfVVNCX0hPU1Q9eQotQ09ORklH X1VTQl9JTVhfQ0hJUElERUE9eQotQ09ORklHX1VTQl9FSENJPXkKLUNPTkZJR19VU0JfVUxQST15 Ci1DT05GSUdfVVNCX1NUT1JBR0U9eQotQ09ORklHX01DST15Ci1DT05GSUdfTUNJX0lNWF9FU0RI Qz15Ci1DT05GSUdfRlNfQ1JBTUZTPXkKLUNPTkZJR19GU19GQVQ9eQotQ09ORklHX0ZTX0ZBVF9X UklURT15Ci1DT05GSUdfRlNfRkFUX0xGTj15Ci1DT05GSUdfTFpPX0RFQ09NUFJFU1M9eQpkaWZm IC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9pbXhfdjdfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29u Zmlncy9pbXhfdjdfZGVmY29uZmlnCmluZGV4IDY0YjIwMmI5ZC4uMjA2OGE2Y2VlIDEwMDY0NAot LS0gYS9hcmNoL2FybS9jb25maWdzL2lteF92N19kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29u Zmlncy9pbXhfdjdfZGVmY29uZmlnCkBAIC0xLDYgKzEsNyBAQAogQ09ORklHX0FSQ0hfSU1YPXkK IENPTkZJR19JTVhfTVVMVElfQk9BUkRTPXkKIENPTkZJR19NQUNIX0tJTkRMRV9NWDUwPXkKK0NP TkZJR19NQUNIX0NDTVg1MT15CiBDT05GSUdfTUFDSF9FRklLQV9NWF9TTUFSVEJPT0s9eQogQ09O RklHX01BQ0hfRU1CRURTS1lfRTk9eQogQ09ORklHX01BQ0hfRlJFRVNDQUxFX01YNTFfUERLPXkK QEAgLTQxLDcgKzQyLDYgQEAgQ09ORklHX01BQ0hfUEhZVEVDX1BIWUNPUkVfSU1YNz15CiBDT05G SUdfTUFDSF9GUkVFU0NBTEVfTVg3X1NBQlJFU0Q9eQogQ09ORklHX01BQ0hfTlhQX0lNWDZVTExf RVZLPXkKIENPTkZJR19NQUNIX0dSSU5OX0xJVEVCT0FSRD15Ci1DT05GSUdfSU1YX0lJTT15CiBD T05GSUdfSU1YX0lJTV9GVVNFX0JMT1c9eQogQ09ORklHX1RIVU1CMl9CQVJFQk9YPXkKIENPTkZJ R19BUk1fT1BUSU1aRURfU1RSSU5HX0ZVTkNUSU9OUz15CmRpZmYgLS1naXQgYS9hcmNoL2FybS9k dHMvTWFrZWZpbGUgYi9hcmNoL2FybS9kdHMvTWFrZWZpbGUKaW5kZXggYzA4YjM1YTEwLi40YWYy ODZhMTEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2R0cy9NYWtlZmlsZQorKysgYi9hcmNoL2FybS9k dHMvTWFrZWZpbGUKQEAgLTIxLDYgKzIxLDcgQEAgcGJsLWR0Yi0kKENPTkZJR19NQUNIX0VNQkVE U0tZX0U5KSArPSBpbXg2cS1lbWJlZHNreS1lOS5kdGIubwogcGJsLWR0Yi0kKENPTkZJR19NQUNI X0ZSRUVTQ0FMRV9NWDUxX1BESykgKz0gaW14NTEtYmFiYmFnZS5kdGIubwogcGJsLWR0Yi0kKENP TkZJR19NQUNIX0ZSRUVTQ0FMRV9NWDUzX0xPQ08pICs9IGlteDUzLXFzYi5kdGIubyBpbXg1My1x c3JiLmR0Yi5vCiBwYmwtZHRiLSQoQ09ORklHX01BQ0hfVFg1MykgKz0gaW14NTMtdHg1My14eDMw LmR0Yi5vIGlteDUzLXR4NTMtMTAxMS5kdGIubworcGJsLWR0Yi0kKENPTkZJR19NQUNIX0NDTVg1 MSkgKz0gaW14NTEtY2N4bXg1MS5kdGIubwogcGJsLWR0Yi0kKENPTkZJR19NQUNIX0NDTVg1Mykg Kz0gaW14NTMtY2N4bXg1My5kdGIubwogcGJsLWR0Yi0kKENPTkZJR19NQUNIX0ZSRUVTQ0FMRV9N WDUzX1ZNWDUzKSArPSBpbXg1My12b2lwYWMtYnNiLmR0Yi5vCiBwYmwtZHRiLSQoQ09ORklHX01B Q0hfRlJFRVNDQUxFX01YN19TQUJSRVNEKSArPSBpbXg3ZC1zZGIuZHRiLm8KZGlmZiAtLWdpdCBh L2FyY2gvYXJtL2R0cy9pbXg1MS1jY3hteDUxLmR0cyBiL2FyY2gvYXJtL2R0cy9pbXg1MS1jY3ht eDUxLmR0cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjJkOWM3NjE1YQot LS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL2R0cy9pbXg1MS1jY3hteDUxLmR0cwpAQCAtMCww ICsxLDM4IEBACisjaW5jbHVkZSA8YXJtL2lteDUxLWRpZ2ktY29ubmVjdGNvcmUtanNrLmR0cz4K KworLyB7CisJY2hvc2VuIHsKKwkJc3Rkb3V0LXBhdGggPSAmdWFydDE7CisKKwkJZW52aXJvbm1l bnQgeworCQkJY29tcGF0aWJsZSA9ICJiYXJlYm94LGVudmlyb25tZW50IjsKKwkJCWRldmljZS1w YXRoID0gJm5mYywgInBhcnRuYW1lOmVudiI7CisJCX07CisJfTsKK307CisKKyZpaW0geworCWJh cmVib3gscHJvdmlkZS1tYWMtYWRkcmVzcyA9IDwmZmVjIDEgOT47Cit9OworCismbmZjIHsKKwlw YXJ0aXRpb25AMCB7CisJCWxhYmVsID0gImJvb3QiOworCQlyZWcgPSA8MHgwMDAwMCAweDgwMDAw PjsKKwl9OworCisJcGFydGl0aW9uQDgwMDAwIHsKKwkJbGFiZWwgPSAiZW52IjsKKwkJcmVnID0g PDB4ODAwMDAgMHg0MDAwMD47CisJfTsKKworCXBhcnRpdGlvbkBjMDAwMCB7CisJCWxhYmVsID0g Imtlcm5lbCI7CisJCXJlZyA9IDwweGMwMDAwIDB4MzQwMDAwPjsKKwl9OworCisJcGFydGl0aW9u QDQwMDAwMCB7CisJCWxhYmVsID0gInJvb3QiOworCQlyZWcgPSA8MHg0MDAwMDAgMD47CisJfTsK K307CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWlteC9LY29uZmlnIGIvYXJjaC9hcm0vbWFj aC1pbXgvS2NvbmZpZwppbmRleCBkOWI2MDA1M2QuLjJlZWZmNWI2YiAxMDA2NDQKLS0tIGEvYXJj aC9hcm0vbWFjaC1pbXgvS2NvbmZpZworKysgYi9hcmNoL2FybS9tYWNoLWlteC9LY29uZmlnCkBA IC0yNiw3ICsyNiw2IEBAIGNvbmZpZyBBUkNIX1RFWFRfQkFTRQogCWRlZmF1bHQgMHg5M2QwMDAw MCBpZiBNQUNIX1RYMjUKIAlkZWZhdWx0IDB4N2ZmMDAwMDAgaWYgTUFDSF9UUU1BNTMKIAlkZWZh dWx0IDB4OTdmMDAwMDAgaWYgTUFDSF9UWDUxCi0JZGVmYXVsdCAweDk3ZjAwMDAwIGlmIE1BQ0hf Q0NNWDUxCiAJZGVmYXVsdCAweDRmYzAwMDAwIGlmIE1BQ0hfU0FCUkVMSVRFCiAJZGVmYXVsdCAw eDhmZTAwMDAwIGlmIE1BQ0hfVFg1MwogCWRlZmF1bHQgMHg5N2YwMDAwMCBpZiBNQUNIX0VGSUtB X01YX1NNQVJUQk9PSwpAQCAtMjQ2LDYgKzI0NSwxNyBAQCBjb25maWcgTUFDSF9LSU5ETEVfTVg1 MAogCSAgS2luZGxlIE1vZGVsIE5vLiBEMDExMDAgKEtpbmRsZSBXaS1GaSksIEQwMTIwMCAoS2lu ZGxlIFRvdWNoKSBvcgogCSAgRVkyMSAoS2luZGxlIFBhcGVyd2hpdGUpLgogCitjb25maWcgTUFD SF9DQ01YNTEKKwlib29sICJDb25uZWN0Q29yZSBpLk1YNTEiCisJc2VsZWN0IEFSQ0hfSU1YNTEK KwlzZWxlY3QgSU1YX0lJTQorCXNlbGVjdCBTUEkKKwlzZWxlY3QgRFJJVkVSX1NQSV9JTVgKKwlz ZWxlY3QgTUZEX01DMTNYWFgKKwloZWxwCisJICBTYXkgWSBoZXJlIGlmIHlvdSBhcmUgdXNpbmcg RGlnaSBDb25uZWN0Q29yZSAoVylpLWkuTVg1MQorCSAgZXF1aXBwZWQgd2l0aCBhIEZyZWVzY2Fs ZSBpLk1YNTEgUHJvY2Vzc29yCisKIGNvbmZpZyBNQUNIX0VGSUtBX01YX1NNQVJUQk9PSwogCWJv b2wgIkVmaWthIE1YIHNtYXJ0Ym9vayIKIAlzZWxlY3QgQVJDSF9JTVg1MQpAQCAtNjIyLDI1ICs2 MzIsNiBAQCBjb25maWcgTUFDSF9UWDUxCiAJaGVscAogCSAgU2F5IFkgaGVyZSBpZiB5b3UgYXJl IHVzaW5nIHRoZSBLYS1SbyB0eDUxIGJvYXJkCiAKLWNvbmZpZyBNQUNIX0NDTVg1MQotCWJvb2wg IkNvbm5lY3RDb3JlIGkuTVg1MSIKLQlzZWxlY3QgQVJDSF9JTVg1MQotCXNlbGVjdCBJTVhfSUlN Ci0Jc2VsZWN0IFNQSQotCXNlbGVjdCBEUklWRVJfU1BJX0lNWAotCXNlbGVjdCBNRkRfTUMxM1hY WAotCWhlbHAKLQkgIFNheSBZIGhlcmUgaWYgeW91IGFyZSB1c2luZyBEaWdpIENvbm5lY3RDb3Jl IChXKWktaS5NWDUxCi0JICBlcXVpcHBlZCB3aXRoIGEgRnJlZXNjYWxlIGkuTVg1MSBQcm9jZXNz b3IKLQotY29uZmlnIE1BQ0hfQ0NNWDUxX0JBU0VCT0FSRAotCWJvb2wgIkRpZ2kgZGV2ZWxvcG1l bnQgYm9hcmQgZm9yIENDTVg1MSBtb2R1bGUiCi0JZGVwZW5kcyBvbiBNQUNIX0NDTVg1MQotCWRl ZmF1bHQgeQotCWhlbHAKLQkgIFRoaXMgYWRkcyBib2FyZCBzcGVjaWZpYyBkZXZpY2VzIHRoYXQg Y2FuIGJlIGZvdW5kIG9uIERpZ2kKLQkgIGV2YWx1YXRpb24gYm9hcmQgZm9yIENDTVg1MSBtb2R1 bGUuCi0KICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogCiBjb21tZW50ICJpLk1YNTMgQm9hcmRzIgpkaWZmIC0tZ2l0IGEvaW1hZ2Vz L01ha2VmaWxlLmlteCBiL2ltYWdlcy9NYWtlZmlsZS5pbXgKaW5kZXggOGI4YTU0NTJiLi42YWE0 NmI4MzUgMTAwNjQ0Ci0tLSBhL2ltYWdlcy9NYWtlZmlsZS5pbXgKKysrIGIvaW1hZ2VzL01ha2Vm aWxlLmlteApAQCAtNTcsNiArNTcsMTEgQEAgRklMRV9iYXJlYm94LWtpbmRsZS1leTIxLmltZyA9 IHN0YXJ0X2lteDUwX2tpbmRsZV9leTIxLnBibGIuaW14aW1nCiBpbWFnZS0kKENPTkZJR19NQUNI X0tJTkRMRV9NWDUwKSArPSBiYXJlYm94LWtpbmRsZS1leTIxLmltZwogCiAjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tIGkuTVg1MSBiYXNlZCBib2FyZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCitwYmxiLSQoQ09ORklHX01BQ0hfQ0NNWDUxKSArPSBzdGFydF9jY3hteDUxCitDRkdfc3Rh cnRfY2N4bXg1MS5wYmxiLmlteGltZyA9ICQoYm9hcmQpL2NjeG14NTEvZmxhc2gtaGVhZGVyLmlt eGNmZworRklMRV9iYXJlYm94LWlteDUxLWNjeG14NTEuaW1nID0gc3RhcnRfY2N4bXg1MS5wYmxi LmlteGltZworaW1hZ2UtJChDT05GSUdfTUFDSF9DQ01YNTEpICs9IGJhcmVib3gtaW14NTEtY2N4 bXg1MS5pbWcKKwogcGJsYi0kKENPTkZJR19NQUNIX0ZSRUVTQ0FMRV9NWDUxX1BESykgKz0gc3Rh cnRfaW14NTFfYmFiYmFnZQogQ0ZHX3N0YXJ0X2lteDUxX2JhYmJhZ2UucGJsYi5pbXhpbWcgPSAk KGJvYXJkKS9mcmVlc2NhbGUtbXg1MS1iYWJiYWdlL2ZsYXNoLWhlYWRlci1pbXg1MS1iYWJiYWdl LmlteGNmZwogRklMRV9iYXJlYm94LWZyZWVzY2FsZS1pbXg1MS1iYWJiYWdlLmltZyA9IHN0YXJ0 X2lteDUxX2JhYmJhZ2UucGJsYi5pbXhpbWcKLS0gCjIuMTMuMAoKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmJhcmVib3ggbWFpbGluZyBsaXN0CmJhcmVi b3hAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2JhcmVib3gK