From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Walmsley Subject: [PATCH 5/8] OMAP3 clock: convert clock34xx.h to clock34xx_data.c Date: Thu, 03 Dec 2009 03:07:05 -0700 Message-ID: <20091203100705.1203.96919.stgit@localhost.localdomain> References: <20091203095830.1203.76290.stgit@localhost.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20091203095830.1203.76290.stgit@localhost.localdomain> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-arm-kernel-bounces@lists.infradead.org Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: Russell King List-Id: linux-omap@vger.kernel.org VGhlIE9NQVAzIGNsb2NrIGNvZGUgY3VycmVudGx5ICNpbmNsdWRlcyBhIGxhcmdlIC5oIGZpbGUg ZnVsbCBvZiBzdGF0aWMKZGF0YSBzdHJ1Y3R1cmVzLiAgSW5zdGVhZCwgZGVmaW5lIHRoZSBkYXRh IGluIGEgLmMgZmlsZS4KClJ1c3NlbGwgS2luZyA8cm1rK2tlcm5lbEBhcm0ubGludXgub3JnLnVr PiBwcm9wb3NlZCB0aGlzIG5ldyBhcnJhbmdlbWVudDoKCiAgICBodHRwOi8vbWFyYy5pbmZvLz9s PWxpbnV4LW9tYXAmbT0xMjU5Njc0MjU5MDg4OTUmdz0yCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIFdh bG1zbGV5IDxwYXVsQHB3c2FuLmNvbT4KQ2M6IFJ1c3NlbGwgS2luZyA8cm1rK2tlcm5lbEBhcm0u bGludXgub3JnLnVrPgotLS0KIGFyY2gvYXJtL21hY2gtb21hcDIvTWFrZWZpbGUgICAgICAgICAg ICAgICAgICB8ICAgIDIgCiBhcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrLmggICAgICAgICAgICAg ICAgICAgfCAgICAyIAogYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jazI0eHguYyAgICAgICAgICAg ICAgIHwgICAyMSAKIGFyY2gvYXJtL21hY2gtb21hcDIvY2xvY2szNHh4LmMgICAgICAgICAgICAg ICB8ICA0MzkgLS0tLQogYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jazM0eHguaCAgICAgICAgICAg ICAgIHwgMzAxMyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBhcmNoL2FybS9tYWNoLW9tYXAy L2Nsb2NrMzR4eF9kYXRhLmMgICAgICAgICAgfCAgMzY0ICsrKwogYXJjaC9hcm0vcGxhdC1vbWFw L2luY2x1ZGUvcGxhdC9jbGtkZXZfb21hcC5oIHwgICAzNSAKIDcgZmlsZXMgY2hhbmdlZCwgNDY0 IGluc2VydGlvbnMoKyksIDM0MTIgZGVsZXRpb25zKC0pCiBjb3B5IGFyY2gvYXJtL21hY2gtb21h cDIve2Nsb2NrMzR4eC5oID0+IGNsb2NrMzR4eF9kYXRhLmN9ICg4NiUpCiBjcmVhdGUgbW9kZSAx MDA2NDQgYXJjaC9hcm0vcGxhdC1vbWFwL2luY2x1ZGUvcGxhdC9jbGtkZXZfb21hcC5oCgpkaWZm IC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9NYWtlZmlsZSBiL2FyY2gvYXJtL21hY2gtb21h cDIvTWFrZWZpbGUKaW5kZXggNTliMGNjYy4uMjdjYjJmOCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0v bWFjaC1vbWFwMi9NYWtlZmlsZQorKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL01ha2VmaWxlCkBA IC00Miw3ICs0Miw3IEBAIG9iai0kKENPTkZJR19BUkNIX09NQVA0KQkJKz0gY200eHh4Lm8KIAog IyBDbG9jayBmcmFtZXdvcmsKIG9iai0kKENPTkZJR19BUkNIX09NQVAyKQkJKz0gY2xvY2syNHh4 Lm8KLW9iai0kKENPTkZJR19BUkNIX09NQVAzKQkJKz0gY2xvY2szNHh4Lm8KK29iai0kKENPTkZJ R19BUkNIX09NQVAzKQkJKz0gY2xvY2szNHh4Lm8gY2xvY2szNHh4X2RhdGEubwogCiBvYmotJChD T05GSUdfT01BUF9NQk9YX0ZXSykJCSs9IG1haWxib3hfbWFjaC5vCiBtYWlsYm94X21hY2gtb2Jq cwkJCTo9IG1haWxib3gubwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jay5o IGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jay5oCmluZGV4IDQzYjZiZWQuLmIxOTkxZTMgMTAw NjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2suaAorKysgYi9hcmNoL2FybS9tYWNo LW9tYXAyL2Nsb2NrLmgKQEAgLTc3LDYgKzc3LDggQEAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBjbGtv cHMgY2xrb3BzX29tYXAyX2RmbHQ7CiAKIGV4dGVybiB1OCBjcHVfbWFzazsKIAorZXh0ZXJuIHN0 cnVjdCBjbGtfZnVuY3Rpb25zIG9tYXAyX2Nsa19mdW5jdGlvbnM7CisKIC8qIGNsa3NlbF9yYXRl IGRhdGEgY29tbW9uIHRvIDI0eHgvMzQzeCAqLwogc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtzZWxf cmF0ZSBncHRfMzJrX3JhdGVzW10gPSB7CiAJIHsgLmRpdiA9IDEsIC52YWwgPSAwLCAuZmxhZ3Mg PSBSQVRFX0lOXzI0WFggfCBSQVRFX0lOXzM0M1ggfCBERUZBVUxUX1JBVEUgfSwKZGlmZiAtLWdp dCBhL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2syNHh4LmMgYi9hcmNoL2FybS9tYWNoLW9tYXAy L2Nsb2NrMjR4eC5jCmluZGV4IDVmMjAxZDIuLmE0MjIxNzQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJt L21hY2gtb21hcDIvY2xvY2syNHh4LmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jazI0 eHguYwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPHBsYXQvY2xvY2suaD4KICNpbmNsdWRl IDxwbGF0L3NyYW0uaD4KICNpbmNsdWRlIDxwbGF0L3ByY20uaD4KKyNpbmNsdWRlIDxwbGF0L2Ns a2Rldl9vbWFwLmg+CiAjaW5jbHVkZSA8YXNtL2RpdjY0Lmg+CiAjaW5jbHVkZSA8YXNtL2Nsa2Rl di5oPgogCkBAIC01OSwyNCArNjAsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNsa29wcyBjbGtv cHNfb21hcDI0MzBfaTJjaHNfd2FpdCA9IHsKIAogI2luY2x1ZGUgImNsb2NrMjR4eC5oIgogCi1z dHJ1Y3Qgb21hcF9jbGsgewotCXUzMgkJY3B1OwotCXN0cnVjdCBjbGtfbG9va3VwIGxrOwotfTsK LQotI2RlZmluZSBDTEsoZGV2LCBjb24sIGNrLCBjcCkgCQlcCi0JewkJCQlcCi0JCSAuY3B1ID0g Y3AsCQlcCi0JCS5sayA9IHsJCQlcCi0JCQkuZGV2X2lkID0gZGV2LAlcCi0JCQkuY29uX2lkID0g Y29uLAlcCi0JCQkuY2xrID0gY2ssCVwKLQkJfSwJCQlcCi0JfQotCi0jZGVmaW5lIENLXzI0M1gJ CQlSQVRFX0lOXzI0M1gKLSNkZWZpbmUgQ0tfMjQyWAkJCVJBVEVfSU5fMjQyWAotCiBzdGF0aWMg c3RydWN0IG9tYXBfY2xrIG9tYXAyNHh4X2Nsa3NbXSA9IHsKIAkvKiBleHRlcm5hbCByb290IHNv dXJjZXMgKi8KIAlDTEsoTlVMTCwJImZ1bmNfMzJrX2NrIiwJJmZ1bmNfMzJrX2NrLAlDS18yNDNY IHwgQ0tfMjQyWCksCkBAIC02NTgsNyArNjQxLDcgQEAgdm9pZCBvbWFwMl9jbGtfaW5pdF9jcHVm cmVxX3RhYmxlKHN0cnVjdCBjcHVmcmVxX2ZyZXF1ZW5jeV90YWJsZSAqKnRhYmxlKQogfQogI2Vu ZGlmCiAKLXN0YXRpYyBzdHJ1Y3QgY2xrX2Z1bmN0aW9ucyBvbWFwMl9jbGtfZnVuY3Rpb25zID0g eworc3RydWN0IGNsa19mdW5jdGlvbnMgb21hcDJfY2xrX2Z1bmN0aW9ucyA9IHsKIAkuY2xrX2Vu YWJsZQkJPSBvbWFwMl9jbGtfZW5hYmxlLAogCS5jbGtfZGlzYWJsZQkJPSBvbWFwMl9jbGtfZGlz YWJsZSwKIAkuY2xrX3JvdW5kX3JhdGUJCT0gb21hcDJfY2xrX3JvdW5kX3JhdGUsCmRpZmYgLS1n aXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrMzR4eC5jIGIvYXJjaC9hcm0vbWFjaC1vbWFw Mi9jbG9jazM0eHguYwppbmRleCAzOTI5NTQ0Li4xZmM5NjJmIDEwMDY0NAotLS0gYS9hcmNoL2Fy bS9tYWNoLW9tYXAyL2Nsb2NrMzR4eC5jCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2sz NHh4LmMKQEAgLTMwLDI5MiArMzAsMTggQEAKICNpbmNsdWRlIDxwbGF0L2NwdS5oPgogI2luY2x1 ZGUgPHBsYXQvY2xvY2suaD4KICNpbmNsdWRlIDxwbGF0L3NyYW0uaD4KKyNpbmNsdWRlIDxwbGF0 L3NkcmMuaD4KICNpbmNsdWRlIDxhc20vZGl2NjQuaD4KICNpbmNsdWRlIDxhc20vY2xrZGV2Lmg+ CiAKLSNpbmNsdWRlIDxwbGF0L3NkcmMuaD4KICNpbmNsdWRlICJjbG9jay5oIgorI2luY2x1ZGUg ImNsb2NrMzR4eC5oIgorI2luY2x1ZGUgInNkcmMuaCIKICNpbmNsdWRlICJwcm0uaCIKICNpbmNs dWRlICJwcm0tcmVnYml0cy0zNHh4LmgiCiAjaW5jbHVkZSAiY20uaCIKICNpbmNsdWRlICJjbS1y ZWdiaXRzLTM0eHguaCIKIAotc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtvcHMgY2xrb3BzX25vbmNv cmVfZHBsbF9vcHM7Ci0KLXN0YXRpYyB2b2lkIG9tYXAzNDMwZXMyX2Nsa19zc2lfZmluZF9pZGxl c3Qoc3RydWN0IGNsayAqY2xrLAotCQkJCQkgICAgdm9pZCBfX2lvbWVtICoqaWRsZXN0X3JlZywK LQkJCQkJICAgIHU4ICppZGxlc3RfYml0KTsKLXN0YXRpYyB2b2lkIG9tYXAzNDMwZXMyX2Nsa19o c290Z3VzYl9maW5kX2lkbGVzdChzdHJ1Y3QgY2xrICpjbGssCi0JCQkJCSAgICB2b2lkIF9faW9t ZW0gKippZGxlc3RfcmVnLAotCQkJCQkgICAgdTggKmlkbGVzdF9iaXQpOwotc3RhdGljIHZvaWQg b21hcDM0MzBlczJfY2xrX2Rzc191c2Job3N0X2ZpbmRfaWRsZXN0KHN0cnVjdCBjbGsgKmNsaywK LQkJCQkJCSAgICB2b2lkIF9faW9tZW0gKippZGxlc3RfcmVnLAotCQkJCQkJICAgIHU4ICppZGxl c3RfYml0KTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtvcHMgY2xrb3BzX29tYXAzNDMwZXMy X3NzaV93YWl0ID0gewotCS5lbmFibGUJCT0gb21hcDJfZGZsdF9jbGtfZW5hYmxlLAotCS5kaXNh YmxlCT0gb21hcDJfZGZsdF9jbGtfZGlzYWJsZSwKLQkuZmluZF9pZGxlc3QJPSBvbWFwMzQzMGVz Ml9jbGtfc3NpX2ZpbmRfaWRsZXN0LAotCS5maW5kX2NvbXBhbmlvbiA9IG9tYXAyX2Nsa19kZmx0 X2ZpbmRfY29tcGFuaW9uLAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtvcHMgY2xrb3Bz X29tYXAzNDMwZXMyX2hzb3RndXNiX3dhaXQgPSB7Ci0JLmVuYWJsZQkJPSBvbWFwMl9kZmx0X2Ns a19lbmFibGUsCi0JLmRpc2FibGUJPSBvbWFwMl9kZmx0X2Nsa19kaXNhYmxlLAotCS5maW5kX2lk bGVzdAk9IG9tYXAzNDMwZXMyX2Nsa19oc290Z3VzYl9maW5kX2lkbGVzdCwKLQkuZmluZF9jb21w YW5pb24gPSBvbWFwMl9jbGtfZGZsdF9maW5kX2NvbXBhbmlvbiwKLX07Ci0KLXN0YXRpYyBjb25z dCBzdHJ1Y3QgY2xrb3BzIGNsa29wc19vbWFwMzQzMGVzMl9kc3NfdXNiaG9zdF93YWl0ID0gewot CS5lbmFibGUJCT0gb21hcDJfZGZsdF9jbGtfZW5hYmxlLAotCS5kaXNhYmxlCT0gb21hcDJfZGZs dF9jbGtfZGlzYWJsZSwKLQkuZmluZF9pZGxlc3QJPSBvbWFwMzQzMGVzMl9jbGtfZHNzX3VzYmhv c3RfZmluZF9pZGxlc3QsCi0JLmZpbmRfY29tcGFuaW9uID0gb21hcDJfY2xrX2RmbHRfZmluZF9j b21wYW5pb24sCi19OwotCi0jaW5jbHVkZSAiY2xvY2szNHh4LmgiCi0KLXN0cnVjdCBvbWFwX2Ns ayB7Ci0JdTMyCQljcHU7Ci0Jc3RydWN0IGNsa19sb29rdXAgbGs7Ci19OwotCi0jZGVmaW5lIENM SyhkZXYsIGNvbiwgY2ssIGNwKSAJCVwKLQl7CQkJCVwKLQkJIC5jcHUgPSBjcCwJCVwKLQkJLmxr ID0gewkJCVwKLQkJCS5kZXZfaWQgPSBkZXYsCVwKLQkJCS5jb25faWQgPSBjb24sCVwKLQkJCS5j bGsgPSBjaywJXAotCQl9LAkJCVwKLQl9Ci0KLSNkZWZpbmUgQ0tfMzQzWAkJKDEgPDwgMCkKLSNk ZWZpbmUgQ0tfMzQzMEVTMQkoMSA8PCAxKQotI2RlZmluZSBDS18zNDMwRVMyCSgxIDw8IDIpCi0K LXN0YXRpYyBzdHJ1Y3Qgb21hcF9jbGsgb21hcDM0eHhfY2xrc1tdID0gewotCUNMSyhOVUxMLAki b21hcF8zMmtfZmNrIiwJJm9tYXBfMzJrX2ZjaywJQ0tfMzQzWCksCi0JQ0xLKE5VTEwsCSJ2aXJ0 XzEybV9jayIsCSZ2aXJ0XzEybV9jaywJQ0tfMzQzWCksCi0JQ0xLKE5VTEwsCSJ2aXJ0XzEzbV9j ayIsCSZ2aXJ0XzEzbV9jaywJQ0tfMzQzWCksCi0JQ0xLKE5VTEwsCSJ2aXJ0XzE2XzhtX2NrIiwg JnZpcnRfMTZfOG1fY2ssIENLXzM0MzBFUzIpLAotCUNMSyhOVUxMLAkidmlydF8xOV8ybV9jayIs ICZ2aXJ0XzE5XzJtX2NrLCBDS18zNDNYKSwKLQlDTEsoTlVMTCwJInZpcnRfMjZtX2NrIiwJJnZp cnRfMjZtX2NrLAlDS18zNDNYKSwKLQlDTEsoTlVMTCwJInZpcnRfMzhfNG1fY2siLCAmdmlydF8z OF80bV9jaywgQ0tfMzQzWCksCi0JQ0xLKE5VTEwsCSJvc2Nfc3lzX2NrIiwJJm9zY19zeXNfY2ss CUNLXzM0M1gpLAotCUNMSyhOVUxMLAkic3lzX2NrIiwJJnN5c19jaywJQ0tfMzQzWCksCi0JQ0xL KE5VTEwsCSJzeXNfYWx0Y2xrIiwJJnN5c19hbHRjbGssCUNLXzM0M1gpLAotCUNMSyhOVUxMLAki bWNic3BfY2xrcyIsCSZtY2JzcF9jbGtzLAlDS18zNDNYKSwKLQlDTEsoTlVMTCwJInN5c19jbGtv dXQxIiwJJnN5c19jbGtvdXQxLAlDS18zNDNYKSwKLQlDTEsoTlVMTCwJImRwbGwxX2NrIiwJJmRw bGwxX2NrLAlDS18zNDNYKSwKLQlDTEsoTlVMTCwJImRwbGwxX3gyX2NrIiwJJmRwbGwxX3gyX2Nr LAlDS18zNDNYKSwKLQlDTEsoTlVMTCwJImRwbGwxX3gybTJfY2siLCAmZHBsbDFfeDJtMl9jaywg Q0tfMzQzWCksCi0JQ0xLKE5VTEwsCSJkcGxsMl9jayIsCSZkcGxsMl9jaywJQ0tfMzQzWCksCi0J Q0xLKE5VTEwsCSJkcGxsMl9tMl9jayIsCSZkcGxsMl9tMl9jaywJQ0tfMzQzWCksCi0JQ0xLKE5V TEwsCSJkcGxsM19jayIsCSZkcGxsM19jaywJQ0tfMzQzWCksCi0JQ0xLKE5VTEwsCSJjb3JlX2Nr IiwJJmNvcmVfY2ssCUNLXzM0M1gpLAotCUNMSyhOVUxMLAkiZHBsbDNfeDJfY2siLAkmZHBsbDNf eDJfY2ssCUNLXzM0M1gpLAotCUNMSyhOVUxMLAkiZHBsbDNfbTJfY2siLAkmZHBsbDNfbTJfY2ss CUNLXzM0M1gpLAotCUNMSyhOVUxMLAkiZHBsbDNfbTJ4Ml9jayIsICZkcGxsM19tMngyX2NrLCBD S18zNDNYKSwKLQlDTEsoTlVMTCwJImRwbGwzX20zX2NrIiwJJmRwbGwzX20zX2NrLAlDS18zNDNY KSwKLQlDTEsoTlVMTCwJImRwbGwzX20zeDJfY2siLCAmZHBsbDNfbTN4Ml9jaywgQ0tfMzQzWCks Ci0JQ0xLKE5VTEwsCSJlbXVfY29yZV9hbHdvbl9jayIsICZlbXVfY29yZV9hbHdvbl9jaywgQ0tf MzQzWCksCi0JQ0xLKE5VTEwsCSJkcGxsNF9jayIsCSZkcGxsNF9jaywJQ0tfMzQzWCksCi0JQ0xL KE5VTEwsCSJkcGxsNF94Ml9jayIsCSZkcGxsNF94Ml9jaywJQ0tfMzQzWCksCi0JQ0xLKE5VTEws CSJvbWFwXzk2bV9hbHdvbl9mY2siLCAmb21hcF85Nm1fYWx3b25fZmNrLCBDS18zNDNYKSwKLQlD TEsoTlVMTCwJIm9tYXBfOTZtX2ZjayIsCSZvbWFwXzk2bV9mY2ssCUNLXzM0M1gpLAotCUNMSyhO VUxMLAkiY21fOTZtX2ZjayIsCSZjbV85Nm1fZmNrLAlDS18zNDNYKSwKLQlDTEsoTlVMTCwJIm9t YXBfNTRtX2ZjayIsCSZvbWFwXzU0bV9mY2ssCUNLXzM0M1gpLAotCUNMSyhOVUxMLAkib21hcF80 OG1fZmNrIiwJJm9tYXBfNDhtX2ZjaywJQ0tfMzQzWCksCi0JQ0xLKE5VTEwsCSJvbWFwXzEybV9m Y2siLAkmb21hcF8xMm1fZmNrLAlDS18zNDNYKSwKLQlDTEsoTlVMTCwJImRwbGw0X20yX2NrIiwJ JmRwbGw0X20yX2NrLAlDS18zNDNYKSwKLQlDTEsoTlVMTCwJImRwbGw0X20yeDJfY2siLCAmZHBs bDRfbTJ4Ml9jaywgQ0tfMzQzWCksCi0JQ0xLKE5VTEwsCSJkcGxsNF9tM19jayIsCSZkcGxsNF9t M19jaywJQ0tfMzQzWCksCi0JQ0xLKE5VTEwsCSJkcGxsNF9tM3gyX2NrIiwgJmRwbGw0X20zeDJf Y2ssIENLXzM0M1gpLAotCUNMSyhOVUxMLAkiZHBsbDRfbTRfY2siLAkmZHBsbDRfbTRfY2ssCUNL XzM0M1gpLAotCUNMSyhOVUxMLAkiZHBsbDRfbTR4Ml9jayIsICZkcGxsNF9tNHgyX2NrLCBDS18z NDNYKSwKLQlDTEsoTlVMTCwJImRwbGw0X201X2NrIiwJJmRwbGw0X201X2NrLAlDS18zNDNYKSwK LQlDTEsoTlVMTCwJImRwbGw0X201eDJfY2siLCAmZHBsbDRfbTV4Ml9jaywgQ0tfMzQzWCksCi0J Q0xLKE5VTEwsCSJkcGxsNF9tNl9jayIsCSZkcGxsNF9tNl9jaywJQ0tfMzQzWCksCi0JQ0xLKE5V TEwsCSJkcGxsNF9tNngyX2NrIiwgJmRwbGw0X202eDJfY2ssIENLXzM0M1gpLAotCUNMSyhOVUxM LAkiZW11X3Blcl9hbHdvbl9jayIsICZlbXVfcGVyX2Fsd29uX2NrLCBDS18zNDNYKSwKLQlDTEso TlVMTCwJImRwbGw1X2NrIiwJJmRwbGw1X2NrLAlDS18zNDMwRVMyKSwKLQlDTEsoTlVMTCwJImRw bGw1X20yX2NrIiwJJmRwbGw1X20yX2NrLAlDS18zNDMwRVMyKSwKLQlDTEsoTlVMTCwJImNsa291 dDJfc3JjX2NrIiwgJmNsa291dDJfc3JjX2NrLCBDS18zNDNYKSwKLQlDTEsoTlVMTCwJInN5c19j bGtvdXQyIiwJJnN5c19jbGtvdXQyLAlDS18zNDNYKSwKLQlDTEsoTlVMTCwJImNvcmV4Ml9mY2si LAkmY29yZXgyX2ZjaywJQ0tfMzQzWCksCi0JQ0xLKE5VTEwsCSJkcGxsMV9mY2siLAkmZHBsbDFf ZmNrLAlDS18zNDNYKSwKLQlDTEsoTlVMTCwJIm1wdV9jayIsCSZtcHVfY2ssCUNLXzM0M1gpLAot CUNMSyhOVUxMLAkiYXJtX2ZjayIsCSZhcm1fZmNrLAlDS18zNDNYKSwKLQlDTEsoTlVMTCwJImVt dV9tcHVfYWx3b25fY2siLCAmZW11X21wdV9hbHdvbl9jaywgQ0tfMzQzWCksCi0JQ0xLKE5VTEws CSJkcGxsMl9mY2siLAkmZHBsbDJfZmNrLAlDS18zNDNYKSwKLQlDTEsoTlVMTCwJIml2YTJfY2si LAkmaXZhMl9jaywJQ0tfMzQzWCksCi0JQ0xLKE5VTEwsCSJsM19pY2siLAkmbDNfaWNrLAlDS18z NDNYKSwKLQlDTEsoTlVMTCwJImw0X2ljayIsCSZsNF9pY2ssCUNLXzM0M1gpLAotCUNMSyhOVUxM LAkicm1faWNrIiwJJnJtX2ljaywJQ0tfMzQzWCksCi0JQ0xLKE5VTEwsCSJnZnhfbDNfY2siLAkm Z2Z4X2wzX2NrLAlDS18zNDMwRVMxKSwKLQlDTEsoTlVMTCwJImdmeF9sM19mY2siLAkmZ2Z4X2wz X2ZjaywJQ0tfMzQzMEVTMSksCi0JQ0xLKE5VTEwsCSJnZnhfbDNfaWNrIiwJJmdmeF9sM19pY2ss CUNLXzM0MzBFUzEpLAotCUNMSyhOVUxMLAkiZ2Z4X2NnMV9jayIsCSZnZnhfY2cxX2NrLAlDS18z NDMwRVMxKSwKLQlDTEsoTlVMTCwJImdmeF9jZzJfY2siLAkmZ2Z4X2NnMl9jaywJQ0tfMzQzMEVT MSksCi0JQ0xLKE5VTEwsCSJzZ3hfZmNrIiwJJnNneF9mY2ssCUNLXzM0MzBFUzIpLAotCUNMSyhO VUxMLAkic2d4X2ljayIsCSZzZ3hfaWNrLAlDS18zNDMwRVMyKSwKLQlDTEsoTlVMTCwJImQyZF8y Nm1fZmNrIiwJJmQyZF8yNm1fZmNrLAlDS18zNDMwRVMxKSwKLQlDTEsoTlVMTCwJIm1vZGVtX2Zj ayIsCSZtb2RlbV9mY2ssCUNLXzM0M1gpLAotCUNMSyhOVUxMLAkic2FkMmRfaWNrIiwJJnNhZDJk X2ljaywJQ0tfMzQzWCksCi0JQ0xLKE5VTEwsCSJtYWQyZF9pY2siLAkmbWFkMmRfaWNrLAlDS18z NDNYKSwKLQlDTEsoTlVMTCwJImdwdDEwX2ZjayIsCSZncHQxMF9mY2ssCUNLXzM0M1gpLAotCUNM SyhOVUxMLAkiZ3B0MTFfZmNrIiwJJmdwdDExX2ZjaywJQ0tfMzQzWCksCi0JQ0xLKE5VTEwsCSJj cGVmdXNlX2ZjayIsCSZjcGVmdXNlX2ZjaywJQ0tfMzQzMEVTMiksCi0JQ0xLKE5VTEwsCSJ0c19m Y2siLAkmdHNfZmNrLAlDS18zNDMwRVMyKSwKLQlDTEsoTlVMTCwJInVzYnRsbF9mY2siLAkmdXNi dGxsX2ZjaywJQ0tfMzQzMEVTMiksCi0JQ0xLKE5VTEwsCSJjb3JlXzk2bV9mY2siLAkmY29yZV85 Nm1fZmNrLAlDS18zNDNYKSwKLQlDTEsoIm1tY2ktb21hcC1ocy4yIiwJImZjayIsCSZtbWNoczNf ZmNrLAlDS18zNDMwRVMyKSwKLQlDTEsoIm1tY2ktb21hcC1ocy4xIiwJImZjayIsCSZtbWNoczJf ZmNrLAlDS18zNDNYKSwKLQlDTEsoTlVMTCwJIm1zcHJvX2ZjayIsCSZtc3Byb19mY2ssCUNLXzM0 M1gpLAotCUNMSygibW1jaS1vbWFwLWhzLjAiLAkiZmNrIiwJJm1tY2hzMV9mY2ssCUNLXzM0M1gp LAotCUNMSygiaTJjX29tYXAuMyIsICJmY2siLAkmaTJjM19mY2ssCUNLXzM0M1gpLAotCUNMSygi aTJjX29tYXAuMiIsICJmY2siLAkmaTJjMl9mY2ssCUNLXzM0M1gpLAotCUNMSygiaTJjX29tYXAu MSIsICJmY2siLAkmaTJjMV9mY2ssCUNLXzM0M1gpLAotCUNMSygib21hcC1tY2JzcC41IiwgImZj ayIsCSZtY2JzcDVfZmNrLAlDS18zNDNYKSwKLQlDTEsoIm9tYXAtbWNic3AuMSIsICJmY2siLAkm bWNic3AxX2ZjaywJQ0tfMzQzWCksCi0JQ0xLKE5VTEwsCSJjb3JlXzQ4bV9mY2siLAkmY29yZV80 OG1fZmNrLAlDS18zNDNYKSwKLQlDTEsoIm9tYXAyX21jc3BpLjQiLCAiZmNrIiwJJm1jc3BpNF9m Y2ssCUNLXzM0M1gpLAotCUNMSygib21hcDJfbWNzcGkuMyIsICJmY2siLAkmbWNzcGkzX2ZjaywJ Q0tfMzQzWCksCi0JQ0xLKCJvbWFwMl9tY3NwaS4yIiwgImZjayIsCSZtY3NwaTJfZmNrLAlDS18z NDNYKSwKLQlDTEsoIm9tYXAyX21jc3BpLjEiLCAiZmNrIiwJJm1jc3BpMV9mY2ssCUNLXzM0M1gp LAotCUNMSyhOVUxMLAkidWFydDJfZmNrIiwJJnVhcnQyX2ZjaywJQ0tfMzQzWCksCi0JQ0xLKE5V TEwsCSJ1YXJ0MV9mY2siLAkmdWFydDFfZmNrLAlDS18zNDNYKSwKLQlDTEsoTlVMTCwJImZzaG9z dHVzYl9mY2siLCAmZnNob3N0dXNiX2ZjaywgQ0tfMzQzMEVTMSksCi0JQ0xLKE5VTEwsCSJjb3Jl XzEybV9mY2siLAkmY29yZV8xMm1fZmNrLAlDS18zNDNYKSwKLQlDTEsoIm9tYXBfaGRxLjAiLCAi ZmNrIiwJJmhkcV9mY2ssCUNLXzM0M1gpLAotCUNMSyhOVUxMLAkic3NpX3Nzcl9mY2siLAkmc3Np X3Nzcl9mY2tfMzQzMGVzMSwJQ0tfMzQzMEVTMSksCi0JQ0xLKE5VTEwsCSJzc2lfc3NyX2ZjayIs CSZzc2lfc3NyX2Zja18zNDMwZXMyLAlDS18zNDMwRVMyKSwKLQlDTEsoTlVMTCwJInNzaV9zc3Rf ZmNrIiwJJnNzaV9zc3RfZmNrXzM0MzBlczEsCUNLXzM0MzBFUzEpLAotCUNMSyhOVUxMLAkic3Np X3NzdF9mY2siLAkmc3NpX3NzdF9mY2tfMzQzMGVzMiwJQ0tfMzQzMEVTMiksCi0JQ0xLKE5VTEws CSJjb3JlX2wzX2ljayIsCSZjb3JlX2wzX2ljaywJQ0tfMzQzWCksCi0JQ0xLKCJtdXNiX2hkcmMi LAkiaWNrIiwJJmhzb3RndXNiX2lja18zNDMwZXMxLAlDS18zNDMwRVMxKSwKLQlDTEsoIm11c2Jf aGRyYyIsCSJpY2siLAkmaHNvdGd1c2JfaWNrXzM0MzBlczIsCUNLXzM0MzBFUzIpLAotCUNMSyhO VUxMLAkic2RyY19pY2siLAkmc2RyY19pY2ssCUNLXzM0M1gpLAotCUNMSyhOVUxMLAkiZ3BtY19m Y2siLAkmZ3BtY19mY2ssCUNLXzM0M1gpLAotCUNMSyhOVUxMLAkic2VjdXJpdHlfbDNfaWNrIiwg JnNlY3VyaXR5X2wzX2ljaywgQ0tfMzQzWCksCi0JQ0xLKE5VTEwsCSJwa2FfaWNrIiwJJnBrYV9p Y2ssCUNLXzM0M1gpLAotCUNMSyhOVUxMLAkiY29yZV9sNF9pY2siLAkmY29yZV9sNF9pY2ssCUNL XzM0M1gpLAotCUNMSyhOVUxMLAkidXNidGxsX2ljayIsCSZ1c2J0bGxfaWNrLAlDS18zNDMwRVMy KSwKLQlDTEsoIm1tY2ktb21hcC1ocy4yIiwJImljayIsCSZtbWNoczNfaWNrLAlDS18zNDMwRVMy KSwKLQlDTEsoTlVMTCwJImljcl9pY2siLAkmaWNyX2ljaywJQ0tfMzQzWCksCi0JQ0xLKE5VTEws CSJhZXMyX2ljayIsCSZhZXMyX2ljaywJQ0tfMzQzWCksCi0JQ0xLKE5VTEwsCSJzaGExMl9pY2si LAkmc2hhMTJfaWNrLAlDS18zNDNYKSwKLQlDTEsoTlVMTCwJImRlczJfaWNrIiwJJmRlczJfaWNr LAlDS18zNDNYKSwKLQlDTEsoIm1tY2ktb21hcC1ocy4xIiwJImljayIsCSZtbWNoczJfaWNrLAlD S18zNDNYKSwKLQlDTEsoIm1tY2ktb21hcC1ocy4wIiwJImljayIsCSZtbWNoczFfaWNrLAlDS18z NDNYKSwKLQlDTEsoTlVMTCwJIm1zcHJvX2ljayIsCSZtc3Byb19pY2ssCUNLXzM0M1gpLAotCUNM Sygib21hcF9oZHEuMCIsICJpY2siLAkmaGRxX2ljaywJQ0tfMzQzWCksCi0JQ0xLKCJvbWFwMl9t Y3NwaS40IiwgImljayIsCSZtY3NwaTRfaWNrLAlDS18zNDNYKSwKLQlDTEsoIm9tYXAyX21jc3Bp LjMiLCAiaWNrIiwJJm1jc3BpM19pY2ssCUNLXzM0M1gpLAotCUNMSygib21hcDJfbWNzcGkuMiIs ICJpY2siLAkmbWNzcGkyX2ljaywJQ0tfMzQzWCksCi0JQ0xLKCJvbWFwMl9tY3NwaS4xIiwgImlj ayIsCSZtY3NwaTFfaWNrLAlDS18zNDNYKSwKLQlDTEsoImkyY19vbWFwLjMiLCAiaWNrIiwJJmky YzNfaWNrLAlDS18zNDNYKSwKLQlDTEsoImkyY19vbWFwLjIiLCAiaWNrIiwJJmkyYzJfaWNrLAlD S18zNDNYKSwKLQlDTEsoImkyY19vbWFwLjEiLCAiaWNrIiwJJmkyYzFfaWNrLAlDS18zNDNYKSwK LQlDTEsoTlVMTCwJInVhcnQyX2ljayIsCSZ1YXJ0Ml9pY2ssCUNLXzM0M1gpLAotCUNMSyhOVUxM LAkidWFydDFfaWNrIiwJJnVhcnQxX2ljaywJQ0tfMzQzWCksCi0JQ0xLKE5VTEwsCSJncHQxMV9p Y2siLAkmZ3B0MTFfaWNrLAlDS18zNDNYKSwKLQlDTEsoTlVMTCwJImdwdDEwX2ljayIsCSZncHQx MF9pY2ssCUNLXzM0M1gpLAotCUNMSygib21hcC1tY2JzcC41IiwgImljayIsCSZtY2JzcDVfaWNr LAlDS18zNDNYKSwKLQlDTEsoIm9tYXAtbWNic3AuMSIsICJpY2siLAkmbWNic3AxX2ljaywJQ0tf MzQzWCksCi0JQ0xLKE5VTEwsCSJmYWNfaWNrIiwJJmZhY19pY2ssCUNLXzM0MzBFUzEpLAotCUNM SyhOVUxMLAkibWFpbGJveGVzX2ljayIsICZtYWlsYm94ZXNfaWNrLCBDS18zNDNYKSwKLQlDTEso TlVMTCwJIm9tYXBjdHJsX2ljayIsCSZvbWFwY3RybF9pY2ssCUNLXzM0M1gpLAotCUNMSyhOVUxM LAkic3NpX2w0X2ljayIsCSZzc2lfbDRfaWNrLAlDS18zNDNYKSwKLQlDTEsoTlVMTCwJInNzaV9p Y2siLAkmc3NpX2lja18zNDMwZXMxLAlDS18zNDMwRVMxKSwKLQlDTEsoTlVMTCwJInNzaV9pY2si LAkmc3NpX2lja18zNDMwZXMyLAlDS18zNDMwRVMyKSwKLQlDTEsoTlVMTCwJInVzYl9sNF9pY2si LAkmdXNiX2w0X2ljaywJQ0tfMzQzMEVTMSksCi0JQ0xLKE5VTEwsCSJzZWN1cml0eV9sNF9pY2sy IiwgJnNlY3VyaXR5X2w0X2ljazIsIENLXzM0M1gpLAotCUNMSyhOVUxMLAkiYWVzMV9pY2siLAkm YWVzMV9pY2ssCUNLXzM0M1gpLAotCUNMSygib21hcF9ybmciLAkiaWNrIiwJCSZybmdfaWNrLAlD S18zNDNYKSwKLQlDTEsoTlVMTCwJInNoYTExX2ljayIsCSZzaGExMV9pY2ssCUNLXzM0M1gpLAot CUNMSyhOVUxMLAkiZGVzMV9pY2siLAkmZGVzMV9pY2ssCUNLXzM0M1gpLAotCUNMSygib21hcGRz cyIsCSJkc3MxX2ZjayIsCSZkc3MxX2Fsd29uX2Zja18zNDMwZXMxLCBDS18zNDMwRVMxKSwKLQlD TEsoIm9tYXBkc3MiLAkiZHNzMV9mY2siLAkmZHNzMV9hbHdvbl9mY2tfMzQzMGVzMiwgQ0tfMzQz MEVTMiksCi0JQ0xLKCJvbWFwZHNzIiwJInR2X2ZjayIsCSZkc3NfdHZfZmNrLAlDS18zNDNYKSwK LQlDTEsoIm9tYXBkc3MiLAkidmlkZW9fZmNrIiwJJmRzc185Nm1fZmNrLAlDS18zNDNYKSwKLQlD TEsoIm9tYXBkc3MiLAkiZHNzMl9mY2siLAkmZHNzMl9hbHdvbl9mY2ssIENLXzM0M1gpLAotCUNM Sygib21hcGRzcyIsCSJpY2siLAkJJmRzc19pY2tfMzQzMGVzMSwJQ0tfMzQzMEVTMSksCi0JQ0xL KCJvbWFwZHNzIiwJImljayIsCQkmZHNzX2lja18zNDMwZXMyLAlDS18zNDMwRVMyKSwKLQlDTEso TlVMTCwJImNhbV9tY2xrIiwJJmNhbV9tY2xrLAlDS18zNDNYKSwKLQlDTEsoTlVMTCwJImNhbV9p Y2siLAkmY2FtX2ljaywJQ0tfMzQzWCksCi0JQ0xLKE5VTEwsCSJjc2kyXzk2bV9mY2siLAkmY3Np Ml85Nm1fZmNrLAlDS18zNDNYKSwKLQlDTEsoTlVMTCwJInVzYmhvc3RfMTIwbV9mY2siLCAmdXNi aG9zdF8xMjBtX2ZjaywgQ0tfMzQzMEVTMiksCi0JQ0xLKE5VTEwsCSJ1c2Job3N0XzQ4bV9mY2si LCAmdXNiaG9zdF80OG1fZmNrLCBDS18zNDMwRVMyKSwKLQlDTEsoTlVMTCwJInVzYmhvc3RfaWNr IiwJJnVzYmhvc3RfaWNrLAlDS18zNDMwRVMyKSwKLQlDTEsoTlVMTCwJInVzaW1fZmNrIiwJJnVz aW1fZmNrLAlDS18zNDMwRVMyKSwKLQlDTEsoTlVMTCwJImdwdDFfZmNrIiwJJmdwdDFfZmNrLAlD S18zNDNYKSwKLQlDTEsoTlVMTCwJIndrdXBfMzJrX2ZjayIsCSZ3a3VwXzMya19mY2ssCUNLXzM0 M1gpLAotCUNMSyhOVUxMLAkiZ3BpbzFfZGJjayIsCSZncGlvMV9kYmNrLAlDS18zNDNYKSwKLQlD TEsoIm9tYXBfd2R0IiwJImZjayIsCQkmd2R0Ml9mY2ssCUNLXzM0M1gpLAotCUNMSyhOVUxMLAki d2t1cF9sNF9pY2siLAkmd2t1cF9sNF9pY2ssCUNLXzM0M1gpLAotCUNMSyhOVUxMLAkidXNpbV9p Y2siLAkmdXNpbV9pY2ssCUNLXzM0MzBFUzIpLAotCUNMSygib21hcF93ZHQiLAkiaWNrIiwJCSZ3 ZHQyX2ljaywJQ0tfMzQzWCksCi0JQ0xLKE5VTEwsCSJ3ZHQxX2ljayIsCSZ3ZHQxX2ljaywJQ0tf MzQzWCksCi0JQ0xLKE5VTEwsCSJncGlvMV9pY2siLAkmZ3BpbzFfaWNrLAlDS18zNDNYKSwKLQlD TEsoTlVMTCwJIm9tYXBfMzJrc3luY19pY2siLCAmb21hcF8zMmtzeW5jX2ljaywgQ0tfMzQzWCks Ci0JQ0xLKE5VTEwsCSJncHQxMl9pY2siLAkmZ3B0MTJfaWNrLAlDS18zNDNYKSwKLQlDTEsoTlVM TCwJImdwdDFfaWNrIiwJJmdwdDFfaWNrLAlDS18zNDNYKSwKLQlDTEsoTlVMTCwJInBlcl85Nm1f ZmNrIiwJJnBlcl85Nm1fZmNrLAlDS18zNDNYKSwKLQlDTEsoTlVMTCwJInBlcl80OG1fZmNrIiwJ JnBlcl80OG1fZmNrLAlDS18zNDNYKSwKLQlDTEsoTlVMTCwJInVhcnQzX2ZjayIsCSZ1YXJ0M19m Y2ssCUNLXzM0M1gpLAotCUNMSyhOVUxMLAkiZ3B0Ml9mY2siLAkmZ3B0Ml9mY2ssCUNLXzM0M1gp LAotCUNMSyhOVUxMLAkiZ3B0M19mY2siLAkmZ3B0M19mY2ssCUNLXzM0M1gpLAotCUNMSyhOVUxM LAkiZ3B0NF9mY2siLAkmZ3B0NF9mY2ssCUNLXzM0M1gpLAotCUNMSyhOVUxMLAkiZ3B0NV9mY2si LAkmZ3B0NV9mY2ssCUNLXzM0M1gpLAotCUNMSyhOVUxMLAkiZ3B0Nl9mY2siLAkmZ3B0Nl9mY2ss CUNLXzM0M1gpLAotCUNMSyhOVUxMLAkiZ3B0N19mY2siLAkmZ3B0N19mY2ssCUNLXzM0M1gpLAot CUNMSyhOVUxMLAkiZ3B0OF9mY2siLAkmZ3B0OF9mY2ssCUNLXzM0M1gpLAotCUNMSyhOVUxMLAki Z3B0OV9mY2siLAkmZ3B0OV9mY2ssCUNLXzM0M1gpLAotCUNMSyhOVUxMLAkicGVyXzMya19hbHdv bl9mY2siLCAmcGVyXzMya19hbHdvbl9mY2ssIENLXzM0M1gpLAotCUNMSyhOVUxMLAkiZ3BpbzZf ZGJjayIsCSZncGlvNl9kYmNrLAlDS18zNDNYKSwKLQlDTEsoTlVMTCwJImdwaW81X2RiY2siLAkm Z3BpbzVfZGJjaywJQ0tfMzQzWCksCi0JQ0xLKE5VTEwsCSJncGlvNF9kYmNrIiwJJmdwaW80X2Ri Y2ssCUNLXzM0M1gpLAotCUNMSyhOVUxMLAkiZ3BpbzNfZGJjayIsCSZncGlvM19kYmNrLAlDS18z NDNYKSwKLQlDTEsoTlVMTCwJImdwaW8yX2RiY2siLAkmZ3BpbzJfZGJjaywJQ0tfMzQzWCksCi0J Q0xLKE5VTEwsCSJ3ZHQzX2ZjayIsCSZ3ZHQzX2ZjaywJQ0tfMzQzWCksCi0JQ0xLKE5VTEwsCSJw ZXJfbDRfaWNrIiwJJnBlcl9sNF9pY2ssCUNLXzM0M1gpLAotCUNMSyhOVUxMLAkiZ3BpbzZfaWNr IiwJJmdwaW82X2ljaywJQ0tfMzQzWCksCi0JQ0xLKE5VTEwsCSJncGlvNV9pY2siLAkmZ3BpbzVf aWNrLAlDS18zNDNYKSwKLQlDTEsoTlVMTCwJImdwaW80X2ljayIsCSZncGlvNF9pY2ssCUNLXzM0 M1gpLAotCUNMSyhOVUxMLAkiZ3BpbzNfaWNrIiwJJmdwaW8zX2ljaywJQ0tfMzQzWCksCi0JQ0xL KE5VTEwsCSJncGlvMl9pY2siLAkmZ3BpbzJfaWNrLAlDS18zNDNYKSwKLQlDTEsoTlVMTCwJIndk dDNfaWNrIiwJJndkdDNfaWNrLAlDS18zNDNYKSwKLQlDTEsoTlVMTCwJInVhcnQzX2ljayIsCSZ1 YXJ0M19pY2ssCUNLXzM0M1gpLAotCUNMSyhOVUxMLAkiZ3B0OV9pY2siLAkmZ3B0OV9pY2ssCUNL XzM0M1gpLAotCUNMSyhOVUxMLAkiZ3B0OF9pY2siLAkmZ3B0OF9pY2ssCUNLXzM0M1gpLAotCUNM SyhOVUxMLAkiZ3B0N19pY2siLAkmZ3B0N19pY2ssCUNLXzM0M1gpLAotCUNMSyhOVUxMLAkiZ3B0 Nl9pY2siLAkmZ3B0Nl9pY2ssCUNLXzM0M1gpLAotCUNMSyhOVUxMLAkiZ3B0NV9pY2siLAkmZ3B0 NV9pY2ssCUNLXzM0M1gpLAotCUNMSyhOVUxMLAkiZ3B0NF9pY2siLAkmZ3B0NF9pY2ssCUNLXzM0 M1gpLAotCUNMSyhOVUxMLAkiZ3B0M19pY2siLAkmZ3B0M19pY2ssCUNLXzM0M1gpLAotCUNMSyhO VUxMLAkiZ3B0Ml9pY2siLAkmZ3B0Ml9pY2ssCUNLXzM0M1gpLAotCUNMSygib21hcC1tY2JzcC4y IiwgImljayIsCSZtY2JzcDJfaWNrLAlDS18zNDNYKSwKLQlDTEsoIm9tYXAtbWNic3AuMyIsICJp Y2siLAkmbWNic3AzX2ljaywJQ0tfMzQzWCksCi0JQ0xLKCJvbWFwLW1jYnNwLjQiLCAiaWNrIiwJ Jm1jYnNwNF9pY2ssCUNLXzM0M1gpLAotCUNMSygib21hcC1tY2JzcC4yIiwgImZjayIsCSZtY2Jz cDJfZmNrLAlDS18zNDNYKSwKLQlDTEsoIm9tYXAtbWNic3AuMyIsICJmY2siLAkmbWNic3AzX2Zj aywJQ0tfMzQzWCksCi0JQ0xLKCJvbWFwLW1jYnNwLjQiLCAiZmNrIiwJJm1jYnNwNF9mY2ssCUNL XzM0M1gpLAotCUNMSyhOVUxMLAkiZW11X3NyY19jayIsCSZlbXVfc3JjX2NrLAlDS18zNDNYKSwK LQlDTEsoTlVMTCwJInBjbGtfZmNrIiwJJnBjbGtfZmNrLAlDS18zNDNYKSwKLQlDTEsoTlVMTCwJ InBjbGt4Ml9mY2siLAkmcGNsa3gyX2ZjaywJQ0tfMzQzWCksCi0JQ0xLKE5VTEwsCSJhdGNsa19m Y2siLAkmYXRjbGtfZmNrLAlDS18zNDNYKSwKLQlDTEsoTlVMTCwJInRyYWNlY2xrX3NyY19mY2si LCAmdHJhY2VjbGtfc3JjX2ZjaywgQ0tfMzQzWCksCi0JQ0xLKE5VTEwsCSJ0cmFjZWNsa19mY2si LAkmdHJhY2VjbGtfZmNrLAlDS18zNDNYKSwKLQlDTEsoTlVMTCwJInNyMV9mY2siLAkmc3IxX2Zj aywJQ0tfMzQzWCksCi0JQ0xLKE5VTEwsCSJzcjJfZmNrIiwJJnNyMl9mY2ssCUNLXzM0M1gpLAot CUNMSyhOVUxMLAkic3JfbDRfaWNrIiwJJnNyX2w0X2ljaywJQ0tfMzQzWCksCi0JQ0xLKE5VTEws CSJzZWN1cmVfMzJrX2ZjayIsICZzZWN1cmVfMzJrX2ZjaywgQ0tfMzQzWCksCi0JQ0xLKE5VTEws CSJncHQxMl9mY2siLAkmZ3B0MTJfZmNrLAlDS18zNDNYKSwKLQlDTEsoTlVMTCwJIndkdDFfZmNr IiwJJndkdDFfZmNrLAlDS18zNDNYKSwKLX07Ci0KIC8qIENNX0FVVE9JRExFX1BMTCouQVVUT18q IGJpdCB2YWx1ZXMgKi8KICNkZWZpbmUgRFBMTF9BVVRPSURMRV9ESVNBQkxFCQkJMHgwCiAjZGVm aW5lIERQTExfQVVUT0lETEVfTE9XX1BPV0VSX1NUT1AJCTB4MQpAQCAtMzMxLDYgKzU3LDkgQEAg c3RhdGljIHN0cnVjdCBvbWFwX2NsayBvbWFwMzR4eF9jbGtzW10gPSB7CiAgKi8KICNkZWZpbmUg RFBMTDVfRlJFUV9GT1JfVVNCSE9TVAkJMTIwMDAwMDAwCiAKKy8qIG5lZWRlZCBieSBvbWFwM19j b3JlX2RwbGxfbTJfc2V0X3JhdGUoKSAqLworc3RydWN0IGNsayAqc2RyY19pY2tfcCwgKmFybV9m Y2tfcDsKKwogLyoqCiAgKiBvbWFwMzQzMGVzMl9jbGtfc3NpX2ZpbmRfaWRsZXN0IC0gcmV0dXJu IENNX0lETEVTVCBpbmZvIGZvciBTU0kKICAqIEBjbGs6IHN0cnVjdCBjbGsgKiBiZWluZyBlbmFi bGVkCkBAIC0zNDEsOSArNzAsOSBAQCBzdGF0aWMgc3RydWN0IG9tYXBfY2xrIG9tYXAzNHh4X2Ns a3NbXSA9IHsKICAqIGZyb20gdGhlIENNX3tJLEZ9Q0xLRU4gYml0LiAgUGFzcyBiYWNrIHRoZSBj b3JyZWN0IGluZm8gdmlhCiAgKiBAaWRsZXN0X3JlZyBhbmQgQGlkbGVzdF9iaXQuICBObyByZXR1 cm4gdmFsdWUuCiAgKi8KLXN0YXRpYyB2b2lkIG9tYXAzNDMwZXMyX2Nsa19zc2lfZmluZF9pZGxl c3Qoc3RydWN0IGNsayAqY2xrLAotCQkJCQkgICAgdm9pZCBfX2lvbWVtICoqaWRsZXN0X3JlZywK LQkJCQkJICAgIHU4ICppZGxlc3RfYml0KQordm9pZCBvbWFwMzQzMGVzMl9jbGtfc3NpX2ZpbmRf aWRsZXN0KHN0cnVjdCBjbGsgKmNsaywKKwkJCQkgICAgIHZvaWQgX19pb21lbSAqKmlkbGVzdF9y ZWcsCisJCQkJICAgICB1OCAqaWRsZXN0X2JpdCkKIHsKIAl1MzIgcjsKIApAQCAtMzY1LDkgKzk0 LDkgQEAgc3RhdGljIHZvaWQgb21hcDM0MzBlczJfY2xrX3NzaV9maW5kX2lkbGVzdChzdHJ1Y3Qg Y2xrICpjbGssCiAgKiBkZWZhdWx0IGZpbmRfaWRsZXN0IGNvZGUgYXNzdW1lcyB0aGF0IHRoZXkg YXJlIGF0IHRoZSBzYW1lCiAgKiBwb3NpdGlvbi4pICBObyByZXR1cm4gdmFsdWUuCiAgKi8KLXN0 YXRpYyB2b2lkIG9tYXAzNDMwZXMyX2Nsa19kc3NfdXNiaG9zdF9maW5kX2lkbGVzdChzdHJ1Y3Qg Y2xrICpjbGssCi0JCQkJCQkgICAgdm9pZCBfX2lvbWVtICoqaWRsZXN0X3JlZywKLQkJCQkJCSAg ICB1OCAqaWRsZXN0X2JpdCkKK3ZvaWQgb21hcDM0MzBlczJfY2xrX2Rzc191c2Job3N0X2ZpbmRf aWRsZXN0KHN0cnVjdCBjbGsgKmNsaywKKwkJCQkJICAgICB2b2lkIF9faW9tZW0gKippZGxlc3Rf cmVnLAorCQkJCQkgICAgIHU4ICppZGxlc3RfYml0KQogewogCXUzMiByOwogCkBAIC0zODcsOSAr MTE2LDkgQEAgc3RhdGljIHZvaWQgb21hcDM0MzBlczJfY2xrX2Rzc191c2Job3N0X2ZpbmRfaWRs ZXN0KHN0cnVjdCBjbGsgKmNsaywKICAqIHNoaWZ0IGZyb20gdGhlIENNX3tJLEZ9Q0xLRU4gYml0 LiAgUGFzcyBiYWNrIHRoZSBjb3JyZWN0IGluZm8gdmlhCiAgKiBAaWRsZXN0X3JlZyBhbmQgQGlk bGVzdF9iaXQuICBObyByZXR1cm4gdmFsdWUuCiAgKi8KLXN0YXRpYyB2b2lkIG9tYXAzNDMwZXMy X2Nsa19oc290Z3VzYl9maW5kX2lkbGVzdChzdHJ1Y3QgY2xrICpjbGssCi0JCQkJCQkgdm9pZCBf X2lvbWVtICoqaWRsZXN0X3JlZywKLQkJCQkJCSB1OCAqaWRsZXN0X2JpdCkKK3ZvaWQgb21hcDM0 MzBlczJfY2xrX2hzb3RndXNiX2ZpbmRfaWRsZXN0KHN0cnVjdCBjbGsgKmNsaywKKwkJCQkJICB2 b2lkIF9faW9tZW0gKippZGxlc3RfcmVnLAorCQkJCQkgIHU4ICppZGxlc3RfYml0KQogewogCXUz MiByOwogCkBAIC00MDQsNyArMTMzLDcgQEAgc3RhdGljIHZvaWQgb21hcDM0MzBlczJfY2xrX2hz b3RndXNiX2ZpbmRfaWRsZXN0KHN0cnVjdCBjbGsgKmNsaywKICAqCiAgKiBSZWNhbGN1bGF0ZSBh bmQgcHJvcGFnYXRlIHRoZSBEUExMIHJhdGUuCiAgKi8KLXN0YXRpYyB1bnNpZ25lZCBsb25nIG9t YXAzX2RwbGxfcmVjYWxjKHN0cnVjdCBjbGsgKmNsaykKK3Vuc2lnbmVkIGxvbmcgb21hcDNfZHBs bF9yZWNhbGMoc3RydWN0IGNsayAqY2xrKQogewogCXJldHVybiBvbWFwMl9nZXRfZHBsbF9yYXRl KGNsayk7CiB9CkBAIC02MDQsNyArMzMzLDcgQEAgc3RhdGljIGludCBfb21hcDNfbm9uY29yZV9k cGxsX3N0b3Aoc3RydWN0IGNsayAqY2xrKQogICogc3VwcG9ydCBsb3ctcG93ZXIgc3RvcCwgb3Ig aWYgdGhlIERQTEwgdG9vayB0b28gbG9uZyB0byBlbnRlcgogICogYnlwYXNzIG9yIGxvY2ssIHJl dHVybiAtRUlOVkFMOyBvdGhlcndpc2UsIHJldHVybiAwLgogICovCi1zdGF0aWMgaW50IG9tYXAz X25vbmNvcmVfZHBsbF9lbmFibGUoc3RydWN0IGNsayAqY2xrKQoraW50IG9tYXAzX25vbmNvcmVf ZHBsbF9lbmFibGUoc3RydWN0IGNsayAqY2xrKQogewogCWludCByOwogCXN0cnVjdCBkcGxsX2Rh dGEgKmRkOwpAQCAtNjQxLDcgKzM3MCw3IEBAIHN0YXRpYyBpbnQgb21hcDNfbm9uY29yZV9kcGxs X2VuYWJsZShzdHJ1Y3QgY2xrICpjbGspCiAgKiBzdXBwb3J0IGxvdy1wb3dlciBzdG9wLCBvciBp ZiB0aGUgRFBMTCB0b29rIHRvbyBsb25nIHRvIGVudGVyCiAgKiBieXBhc3Mgb3IgbG9jaywgcmV0 dXJuIC1FSU5WQUw7IG90aGVyd2lzZSwgcmV0dXJuIDAuCiAgKi8KLXN0YXRpYyB2b2lkIG9tYXAz X25vbmNvcmVfZHBsbF9kaXNhYmxlKHN0cnVjdCBjbGsgKmNsaykKK3ZvaWQgb21hcDNfbm9uY29y ZV9kcGxsX2Rpc2FibGUoc3RydWN0IGNsayAqY2xrKQogewogCV9vbWFwM19ub25jb3JlX2RwbGxf c3RvcChjbGspOwogfQpAQCAtNzAwLDcgKzQyOSw3IEBAIHN0YXRpYyBpbnQgb21hcDNfbm9uY29y ZV9kcGxsX3Byb2dyYW0oc3RydWN0IGNsayAqY2xrLCB1MTYgbSwgdTggbiwgdTE2IGZyZXFzZWwp CiAgKiB0YXJnZXQgcmF0ZSBpZiBpdCBoYXNuJ3QgYmVlbiBkb25lIGFscmVhZHksIHRoZW4gcHJv Z3JhbSBhbmQgbG9jawogICogdGhlIERQTEwuICBSZXR1cm5zIC1FSU5WQUwgdXBvbiBlcnJvciwg b3IgMCB1cG9uIHN1Y2Nlc3MuCiAgKi8KLXN0YXRpYyBpbnQgb21hcDNfbm9uY29yZV9kcGxsX3Nl dF9yYXRlKHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQgbG9uZyByYXRlKQoraW50IG9tYXAzX25v bmNvcmVfZHBsbF9zZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVkIGxvbmcgcmF0ZSkK IHsKIAlzdHJ1Y3QgY2xrICpuZXdfcGFyZW50ID0gTlVMTDsKIAl1MTYgZnJlcXNlbDsKQEAgLTc3 MSw3ICs1MDAsNyBAQCBzdGF0aWMgaW50IG9tYXAzX25vbmNvcmVfZHBsbF9zZXRfcmF0ZShzdHJ1 Y3QgY2xrICpjbGssIHVuc2lnbmVkIGxvbmcgcmF0ZSkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGlj IGludCBvbWFwM19kcGxsNF9zZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVkIGxvbmcg cmF0ZSkKK2ludCBvbWFwM19kcGxsNF9zZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVk IGxvbmcgcmF0ZSkKIHsKIAkvKgogCSAqIEFjY29yZGluZyB0byB0aGUgMTItNSBDRFAgY29kZSBm cm9tIFRJLCAiTGltaXRhdGlvbiAyLjUiCkBAIC04MDIsMTIgKzUzMSwxMiBAQCBzdGF0aWMgaW50 IG9tYXAzX2RwbGw0X3NldF9yYXRlKHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQgbG9uZyByYXRl KQogICogUHJvZ3JhbSB0aGUgRFBMTCBNMiBkaXZpZGVyIHdpdGggdGhlIHJvdW5kZWQgdGFyZ2V0 IHJhdGUuICBSZXR1cm5zCiAgKiAtRUlOVkFMIHVwb24gZXJyb3IsIG9yIDAgdXBvbiBzdWNjZXNz LgogICovCi1zdGF0aWMgaW50IG9tYXAzX2NvcmVfZHBsbF9tMl9zZXRfcmF0ZShzdHJ1Y3QgY2xr ICpjbGssIHVuc2lnbmVkIGxvbmcgcmF0ZSkKK2ludCBvbWFwM19jb3JlX2RwbGxfbTJfc2V0X3Jh dGUoc3RydWN0IGNsayAqY2xrLCB1bnNpZ25lZCBsb25nIHJhdGUpCiB7CiAJdTMyIG5ld19kaXYg PSAwOwogCXUzMiB1bmxvY2tfZGxsID0gMDsKIAl1MzIgYzsKLQl1bnNpZ25lZCBsb25nIHZhbGlk cmF0ZSwgc2RyY3JhdGUsIG1wdXJhdGU7CisJdW5zaWduZWQgbG9uZyB2YWxpZHJhdGUsIHNkcmNy YXRlLCBfbXB1cmF0ZTsKIAlzdHJ1Y3Qgb21hcF9zZHJjX3BhcmFtcyAqc2RyY19jczA7CiAJc3Ry dWN0IG9tYXBfc2RyY19wYXJhbXMgKnNkcmNfY3MxOwogCWludCByZXQ7CkBAIC04MTksNyArNTQ4 LDcgQEAgc3RhdGljIGludCBvbWFwM19jb3JlX2RwbGxfbTJfc2V0X3JhdGUoc3RydWN0IGNsayAq Y2xrLCB1bnNpZ25lZCBsb25nIHJhdGUpCiAJaWYgKHZhbGlkcmF0ZSAhPSByYXRlKQogCQlyZXR1 cm4gLUVJTlZBTDsKIAotCXNkcmNyYXRlID0gc2RyY19pY2sucmF0ZTsKKwlzZHJjcmF0ZSA9IHNk cmNfaWNrX3AtPnJhdGU7CiAJaWYgKHJhdGUgPiBjbGstPnJhdGUpCiAJCXNkcmNyYXRlIDw8PSAo KHJhdGUgLyBjbGstPnJhdGUpID4+IDEpOwogCWVsc2UKQEAgLTgzNyw4ICs1NjYsOCBAQCBzdGF0 aWMgaW50IG9tYXAzX2NvcmVfZHBsbF9tMl9zZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGssIHVuc2ln bmVkIGxvbmcgcmF0ZSkKIAkvKgogCSAqIFhYWCBUaGlzIG9ubHkgbmVlZHMgdG8gYmUgZG9uZSB3 aGVuIHRoZSBDUFUgZnJlcXVlbmN5IGNoYW5nZXMKIAkgKi8KLQltcHVyYXRlID0gYXJtX2Zjay5y YXRlIC8gQ1lDTEVTX1BFUl9NSFo7Ci0JYyA9IChtcHVyYXRlIDw8IFNEUkNfTVBVUkFURV9TQ0FM RSkgPj4gU0RSQ19NUFVSQVRFX0JBU0VfU0hJRlQ7CisJX21wdXJhdGUgPSBhcm1fZmNrX3AtPnJh dGUgLyBDWUNMRVNfUEVSX01IWjsKKwljID0gKF9tcHVyYXRlIDw8IFNEUkNfTVBVUkFURV9TQ0FM RSkgPj4gU0RSQ19NUFVSQVRFX0JBU0VfU0hJRlQ7CiAJYyArPSAxOyAgLyogZm9yIHNhZmV0eSAq LwogCWMgKj0gU0RSQ19NUFVSQVRFX0xPT1BTOwogCWMgPj49IFNEUkNfTVBVUkFURV9TQ0FMRTsK QEAgLTg3NSwxMSArNjA0LDYgQEAgc3RhdGljIGludCBvbWFwM19jb3JlX2RwbGxfbTJfc2V0X3Jh dGUoc3RydWN0IGNsayAqY2xrLCB1bnNpZ25lZCBsb25nIHJhdGUpCiB9CiAKIAotc3RhdGljIGNv bnN0IHN0cnVjdCBjbGtvcHMgY2xrb3BzX25vbmNvcmVfZHBsbF9vcHMgPSB7Ci0JLmVuYWJsZQkJ PSAmb21hcDNfbm9uY29yZV9kcGxsX2VuYWJsZSwKLQkuZGlzYWJsZQk9ICZvbWFwM19ub25jb3Jl X2RwbGxfZGlzYWJsZSwKLX07Ci0KIC8qIERQTEwgYXV0b2lkbGUgcmVhZC9zZXQgY29kZSAqLwog CiAKQEAgLTg5MSw3ICs2MTUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNsa29wcyBjbGtvcHNf bm9uY29yZV9kcGxsX29wcyA9IHsKICAqIC1FSU5WQUwgaWYgcGFzc2VkIGEgbnVsbCBwb2ludGVy IG9yIGlmIHRoZSBzdHJ1Y3QgY2xrIGRvZXMgbm90CiAgKiBhcHBlYXIgdG8gcmVmZXIgdG8gYSBE UExMLgogICovCi1zdGF0aWMgdTMyIG9tYXAzX2RwbGxfYXV0b2lkbGVfcmVhZChzdHJ1Y3QgY2xr ICpjbGspCit1MzIgb21hcDNfZHBsbF9hdXRvaWRsZV9yZWFkKHN0cnVjdCBjbGsgKmNsaykKIHsK IAljb25zdCBzdHJ1Y3QgZHBsbF9kYXRhICpkZDsKIAl1MzIgdjsKQEAgLTkxNyw3ICs2NDEsNyBA QCBzdGF0aWMgdTMyIG9tYXAzX2RwbGxfYXV0b2lkbGVfcmVhZChzdHJ1Y3QgY2xrICpjbGspCiAg KiBPTUFQMzQzMC4gIFRoZSBEUExMIHdpbGwgZW50ZXIgbG93LXBvd2VyIHN0b3Agd2hlbiBpdHMg ZG93bnN0cmVhbQogICogY2xvY2tzIGFyZSBnYXRlZC4gIE5vIHJldHVybiB2YWx1ZS4KICAqLwot c3RhdGljIHZvaWQgb21hcDNfZHBsbF9hbGxvd19pZGxlKHN0cnVjdCBjbGsgKmNsaykKK3ZvaWQg b21hcDNfZHBsbF9hbGxvd19pZGxlKHN0cnVjdCBjbGsgKmNsaykKIHsKIAljb25zdCBzdHJ1Y3Qg ZHBsbF9kYXRhICpkZDsKIAl1MzIgdjsKQEAgLTk0NCw3ICs2NjgsNyBAQCBzdGF0aWMgdm9pZCBv bWFwM19kcGxsX2FsbG93X2lkbGUoc3RydWN0IGNsayAqY2xrKQogICoKICAqIERpc2FibGUgRFBM TCBhdXRvbWF0aWMgaWRsZSBjb250cm9sLiAgTm8gcmV0dXJuIHZhbHVlLgogICovCi1zdGF0aWMg dm9pZCBvbWFwM19kcGxsX2RlbnlfaWRsZShzdHJ1Y3QgY2xrICpjbGspCit2b2lkIG9tYXAzX2Rw bGxfZGVueV9pZGxlKHN0cnVjdCBjbGsgKmNsaykKIHsKIAljb25zdCBzdHJ1Y3QgZHBsbF9kYXRh ICpkZDsKIAl1MzIgdjsKQEAgLTk2OSw3ICs2OTMsNyBAQCBzdGF0aWMgdm9pZCBvbWFwM19kcGxs X2RlbnlfaWRsZShzdHJ1Y3QgY2xrICpjbGspCiAgKiBVc2luZyBwYXJlbnQgY2xvY2sgRFBMTCBk YXRhLCBsb29rIHVwIERQTEwgc3RhdGUuICBJZiBsb2NrZWQsIHNldCBvdXIKICAqIHJhdGUgdG8g dGhlIGRwbGxfY2xrICogMjsgb3RoZXJ3aXNlLCBqdXN0IHVzZSBkcGxsX2Nsay4KICAqLwotc3Rh dGljIHVuc2lnbmVkIGxvbmcgb21hcDNfY2xrb3V0eDJfcmVjYWxjKHN0cnVjdCBjbGsgKmNsaykK K3Vuc2lnbmVkIGxvbmcgb21hcDNfY2xrb3V0eDJfcmVjYWxjKHN0cnVjdCBjbGsgKmNsaykKIHsK IAljb25zdCBzdHJ1Y3QgZHBsbF9kYXRhICpkZDsKIAl1bnNpZ25lZCBsb25nIHJhdGU7CkBAIC0x MDA1LDcgKzcyOSw3IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIG9tYXAzX2Nsa291dHgyX3JlY2Fs YyhzdHJ1Y3QgY2xrICpjbGspCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAzKQog Ci1zdGF0aWMgc3RydWN0IGNsa19mdW5jdGlvbnMgb21hcDJfY2xrX2Z1bmN0aW9ucyA9IHsKK3N0 cnVjdCBjbGtfZnVuY3Rpb25zIG9tYXAyX2Nsa19mdW5jdGlvbnMgPSB7CiAJLmNsa19lbmFibGUJ CT0gb21hcDJfY2xrX2VuYWJsZSwKIAkuY2xrX2Rpc2FibGUJCT0gb21hcDJfY2xrX2Rpc2FibGUs CiAJLmNsa19yb3VuZF9yYXRlCQk9IG9tYXAyX2Nsa19yb3VuZF9yYXRlLApAQCAtMTAzMSw3ICs3 NTUsNyBAQCB2b2lkIG9tYXAyX2Nsa19wcmVwYXJlX2Zvcl9yZWJvb3Qodm9pZCkKICNlbmRpZgog fQogCi1zdGF0aWMgdm9pZCBvbWFwM19jbGtfbG9ja19kcGxsNSh2b2lkKQordm9pZCBvbWFwM19j bGtfbG9ja19kcGxsNSh2b2lkKQogewogCXN0cnVjdCBjbGsgKmRwbGw1X2NsazsKIAlzdHJ1Y3Qg Y2xrICpkcGxsNV9tMl9jbGs7CkBAIC0xMDYxLDE5ICs3ODUsMzIgQEAgc3RhdGljIHZvaWQgb21h cDNfY2xrX2xvY2tfZHBsbDUodm9pZCkKICAqLwogc3RhdGljIGludCBfX2luaXQgb21hcDJfY2xr X2FyY2hfaW5pdCh2b2lkKQogeworCXN0cnVjdCBjbGsgKm9zY19zeXNfY2ssICpkcGxsMV9jaywg KmFybV9mY2ssICpjb3JlX2NrOworCXVuc2lnbmVkIGxvbmcgb3NjX3N5c19yYXRlOworCiAJaWYg KCFtcHVyYXRlKQogCQlyZXR1cm4gLUVJTlZBTDsKIAorCS8qIFhYWCB0ZXN0IHRoZXNlIGZvciBz dWNjZXNzICovCisJZHBsbDFfY2sgPSBjbGtfZ2V0KE5VTEwsICJkcGxsMV9jayIpOworCWFybV9m Y2sgPSBjbGtfZ2V0KE5VTEwsICJhcm1fZmNrIik7CisJY29yZV9jayA9IGNsa19nZXQoTlVMTCwg ImNvcmVfY2siKTsKKwlvc2Nfc3lzX2NrID0gY2xrX2dldChOVUxMLCAib3NjX3N5c19jayIpOwor CiAJLyogUkVWSVNJVDogbm90IHlldCByZWFkeSBmb3IgMzQzeCAqLwotCWlmIChjbGtfc2V0X3Jh dGUoJmRwbGwxX2NrLCBtcHVyYXRlKSkKKwlpZiAoY2xrX3NldF9yYXRlKGRwbGwxX2NrLCBtcHVy YXRlKSkKIAkJcHJpbnRrKEtFUk5fRVJSICIqKiogVW5hYmxlIHRvIHNldCBNUFUgcmF0ZVxuIik7 CiAKIAlyZWNhbGN1bGF0ZV9yb290X2Nsb2NrcygpOwogCi0JcHJpbnRrKEtFUk5fSU5GTyAiU3dp dGNoZWQgdG8gbmV3IGNsb2NraW5nIHJhdGUgKENyeXN0YWwvQ29yZS9NUFUpOiAiCi0JICAgICAg ICIlbGQuJTAxbGQvJWxkLyVsZCBNSHpcbiIsCi0JICAgICAgIChvc2Nfc3lzX2NrLnJhdGUgLyAx MDAwMDAwKSwgKChvc2Nfc3lzX2NrLnJhdGUgLyAxMDAwMDApICUgMTApLAotCSAgICAgICAoY29y ZV9jay5yYXRlIC8gMTAwMDAwMCksIChhcm1fZmNrLnJhdGUgLyAxMDAwMDAwKSkgOworCW9zY19z eXNfcmF0ZSA9IGNsa19nZXRfcmF0ZShvc2Nfc3lzX2NrKTsKKworCXByX2luZm8oIlN3aXRjaGVk IHRvIG5ldyBjbG9ja2luZyByYXRlIChDcnlzdGFsL0NvcmUvTVBVKTogIgorCQkiJWxkLiUwMWxk LyVsZC8lbGQgTUh6XG4iLAorCQkob3NjX3N5c19yYXRlIC8gMTAwMDAwMCksCisJCSgob3NjX3N5 c19yYXRlIC8gMTAwMDAwKSAlIDEwKSwKKwkJKGNsa19nZXRfcmF0ZShjb3JlX2NrKSAvIDEwMDAw MDApLAorCQkoY2xrX2dldF9yYXRlKGFybV9mY2spIC8gMTAwMDAwMCkpOwogCiAJY2FsaWJyYXRl X2RlbGF5KCk7CiAKQEAgLTEwODEsODMgKzgxOCw1IEBAIHN0YXRpYyBpbnQgX19pbml0IG9tYXAy X2Nsa19hcmNoX2luaXQodm9pZCkKIH0KIGFyY2hfaW5pdGNhbGwob21hcDJfY2xrX2FyY2hfaW5p dCk7CiAKLWludCBfX2luaXQgb21hcDJfY2xrX2luaXQodm9pZCkKLXsKLQkvKiBzdHJ1Y3QgcHJj bV9jb25maWcgKnByY207ICovCi0Jc3RydWN0IG9tYXBfY2xrICpjOwotCS8qIHUzMiBjbGtyYXRl OyAqLwotCXUzMiBjcHVfY2xrZmxnOwotCi0JaWYgKGNwdV9pc19vbWFwMzR4eCgpKSB7Ci0JCWNw dV9tYXNrID0gUkFURV9JTl8zNDNYOwotCQljcHVfY2xrZmxnID0gQ0tfMzQzWDsKLQotCQkvKgot CQkgKiBVcGRhdGUgdGhpcyBpZiB0aGVyZSBhcmUgZnVydGhlciBjbG9jayBjaGFuZ2VzIGJldHdl ZW4gRVMyCi0JCSAqIGFuZCBwcm9kdWN0aW9uIHBhcnRzCi0JCSAqLwotCQlpZiAob21hcF9yZXYo KSA9PSBPTUFQMzQzMF9SRVZfRVMxXzApIHsKLQkJCS8qIE5vIDM0MzBFUzEtb25seSByYXRlcyBl eGlzdCwgc28gbm8gUkFURV9JTl8zNDMwRVMxICovCi0JCQljcHVfY2xrZmxnIHw9IENLXzM0MzBF UzE7Ci0JCX0gZWxzZSB7Ci0JCQljcHVfbWFzayB8PSBSQVRFX0lOXzM0MzBFUzI7Ci0JCQljcHVf Y2xrZmxnIHw9IENLXzM0MzBFUzI7Ci0JCX0KLQl9Ci0KLQljbGtfaW5pdCgmb21hcDJfY2xrX2Z1 bmN0aW9ucyk7Ci0KLQlmb3IgKGMgPSBvbWFwMzR4eF9jbGtzOyBjIDwgb21hcDM0eHhfY2xrcyAr IEFSUkFZX1NJWkUob21hcDM0eHhfY2xrcyk7IGMrKykKLQkJY2xrX3ByZWluaXQoYy0+bGsuY2xr KTsKLQotCWZvciAoYyA9IG9tYXAzNHh4X2Nsa3M7IGMgPCBvbWFwMzR4eF9jbGtzICsgQVJSQVlf U0laRShvbWFwMzR4eF9jbGtzKTsgYysrKQotCQlpZiAoYy0+Y3B1ICYgY3B1X2Nsa2ZsZykgewot CQkJY2xrZGV2X2FkZCgmYy0+bGspOwotCQkJY2xrX3JlZ2lzdGVyKGMtPmxrLmNsayk7Ci0JCQlv bWFwMl9pbml0X2Nsa19jbGtkbShjLT5say5jbGspOwotCQl9Ci0KLQkvKiBSRVZJU0lUOiBOb3Qg eWV0IHJlYWR5IGZvciBPTUFQMyAqLwotI2lmIDAKLQkvKiBDaGVjayB0aGUgTVBVIHJhdGUgc2V0 IGJ5IGJvb3Rsb2FkZXIgKi8KLQljbGtyYXRlID0gb21hcDJfZ2V0X2RwbGxfcmF0ZV8yNHh4KCZk cGxsX2NrKTsKLQlmb3IgKHByY20gPSByYXRlX3RhYmxlOyBwcmNtLT5tcHVfc3BlZWQ7IHByY20r KykgewotCQlpZiAoIShwcmNtLT5mbGFncyAmIGNwdV9tYXNrKSkKLQkJCWNvbnRpbnVlOwotCQlp ZiAocHJjbS0+eHRhbF9zcGVlZCAhPSBzeXNfY2sucmF0ZSkKLQkJCWNvbnRpbnVlOwotCQlpZiAo cHJjbS0+ZHBsbF9zcGVlZCA8PSBjbGtyYXRlKQotCQkJIGJyZWFrOwotCX0KLQljdXJyX3ByY21f c2V0ID0gcHJjbTsKLSNlbmRpZgotCi0JcmVjYWxjdWxhdGVfcm9vdF9jbG9ja3MoKTsKLQotCXBy aW50ayhLRVJOX0lORk8gIkNsb2NraW5nIHJhdGUgKENyeXN0YWwvQ29yZS9NUFUpOiAiCi0JICAg ICAgICIlbGQuJTAxbGQvJWxkLyVsZCBNSHpcbiIsCi0JICAgICAgIChvc2Nfc3lzX2NrLnJhdGUg LyAxMDAwMDAwKSwgKG9zY19zeXNfY2sucmF0ZSAvIDEwMDAwMCkgJSAxMCwKLQkgICAgICAgKGNv cmVfY2sucmF0ZSAvIDEwMDAwMDApLCAoYXJtX2Zjay5yYXRlIC8gMTAwMDAwMCkpOwotCi0JLyoK LQkgKiBPbmx5IGVuYWJsZSB0aG9zZSBjbG9ja3Mgd2Ugd2lsbCBuZWVkLCBsZXQgdGhlIGRyaXZl cnMKLQkgKiBlbmFibGUgb3RoZXIgY2xvY2tzIGFzIG5lY2Vzc2FyeQotCSAqLwotCWNsa19lbmFi bGVfaW5pdF9jbG9ja3MoKTsKLQotCS8qCi0JICogTG9jayBEUExMNSBhbmQgcHV0IGl0IGluIGF1 dG9pZGxlLgotCSAqLwotCWlmIChvbWFwX3JldigpID49IE9NQVAzNDMwX1JFVl9FUzJfMCkKLQkJ b21hcDNfY2xrX2xvY2tfZHBsbDUoKTsKLQotCS8qIEF2b2lkIHNsZWVwaW5nIGR1cmluZyBvbWFw Ml9jbGtfcHJlcGFyZV9mb3JfcmVib290KCkgKi8KLQkvKiBSRVZJU0lUOiBub3QgeWV0IHJlYWR5 IGZvciAzNDN4ICovCi0jaWYgMAotCXZjbGsgPSBjbGtfZ2V0KE5VTEwsICJ2aXJ0X3ByY21fc2V0 Iik7Ci0Jc2NsayA9IGNsa19nZXQoTlVMTCwgInN5c19jayIpOwotI2VuZGlmCi0JcmV0dXJuIDA7 Ci19CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jazM0eHgu aCBiL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2szNHh4LmgKaW5kZXggOGZlMWJjYi4uNzkyYTFi MyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jazM0eHguaAorKysgYi9hcmNo L2FybS9tYWNoLW9tYXAyL2Nsb2NrMzR4eC5oCkBAIC0xLDI5OTMgKzEsNDAgQEAKIC8qCi0gKiBP TUFQMyBjbG9jayBmcmFtZXdvcmsKKyAqIE9NQVAzIGNsb2NrIGZ1bmN0aW9uIHByb3RvdHlwZXMg YW5kIG1hY3JvcwogICoKLSAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA4IFRleGFzIEluc3RydW1l bnRzLCBJbmMuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbgot ICoKLSAqIFdyaXR0ZW4gYnkgUGF1bCBXYWxtc2xleQotICogV2l0aCBtYW55IGRldmljZSBjbG9j ayBmaXhlcyBieSBLZXZpbiBIaWxtYW4gYW5kIEpvdW5pIEjDtmdhbmRlcgotICogRFBMTCBieXBh c3MgY2xvY2sgc3VwcG9ydCBhZGRlZCBieSBSb21hbiBUZXJlc2hvbmtvdgotICoKLSAqLwotCi0v KgotICogVmlydHVhbCBjbG9ja3MgYXJlIGludHJvZHVjZWQgYXMgY29udmVuaWVudCB0b29scy4K LSAqIFRoZXkgYXJlIHNvdXJjZXMgZm9yIG90aGVyIGNsb2NrcyBhbmQgbm90IHN1cHBvc2VkCi0g KiB0byBiZSByZXF1ZXN0ZWQgZnJvbSBkcml2ZXJzIGRpcmVjdGx5LgotICovCi0KLSNpZm5kZWYg X19BUkNIX0FSTV9NQUNIX09NQVAyX0NMT0NLMzRYWF9ICi0jZGVmaW5lIF9fQVJDSF9BUk1fTUFD SF9PTUFQMl9DTE9DSzM0WFhfSAotCi0jaW5jbHVkZSA8cGxhdC9jb250cm9sLmg+Ci0KLSNpbmNs dWRlICJjbG9jay5oIgotI2luY2x1ZGUgImNtLmgiCi0jaW5jbHVkZSAiY20tcmVnYml0cy0zNHh4 LmgiCi0jaW5jbHVkZSAicHJtLmgiCi0jaW5jbHVkZSAicHJtLXJlZ2JpdHMtMzR4eC5oIgotCi0j ZGVmaW5lIE9NQVBfQ01fUkVHQUREUgkJT01BUDM0WFhfQ01fUkVHQUREUgotCi1zdGF0aWMgdW5z aWduZWQgbG9uZyBvbWFwM19kcGxsX3JlY2FsYyhzdHJ1Y3QgY2xrICpjbGspOwotc3RhdGljIHVu c2lnbmVkIGxvbmcgb21hcDNfY2xrb3V0eDJfcmVjYWxjKHN0cnVjdCBjbGsgKmNsayk7Ci1zdGF0 aWMgdm9pZCBvbWFwM19kcGxsX2FsbG93X2lkbGUoc3RydWN0IGNsayAqY2xrKTsKLXN0YXRpYyB2 b2lkIG9tYXAzX2RwbGxfZGVueV9pZGxlKHN0cnVjdCBjbGsgKmNsayk7Ci1zdGF0aWMgdTMyIG9t YXAzX2RwbGxfYXV0b2lkbGVfcmVhZChzdHJ1Y3QgY2xrICpjbGspOwotc3RhdGljIGludCBvbWFw M19ub25jb3JlX2RwbGxfc2V0X3JhdGUoc3RydWN0IGNsayAqY2xrLCB1bnNpZ25lZCBsb25nIHJh dGUpOwotc3RhdGljIGludCBvbWFwM19kcGxsNF9zZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGssIHVu c2lnbmVkIGxvbmcgcmF0ZSk7Ci1zdGF0aWMgaW50IG9tYXAzX2NvcmVfZHBsbF9tMl9zZXRfcmF0 ZShzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVkIGxvbmcgcmF0ZSk7Ci0KLS8qIE1heGltdW0gRFBM TCBtdWx0aXBsaWVyLCBkaXZpZGVyIHZhbHVlcyBmb3IgT01BUDMgKi8KLSNkZWZpbmUgT01BUDNf TUFYX0RQTExfTVVMVAkJMjA0OAotI2RlZmluZSBPTUFQM19NQVhfRFBMTF9ESVYJCTEyOAotCi0v KgotICogRFBMTDEgc3VwcGxpZXMgY2xvY2sgdG8gdGhlIE1QVS4KLSAqIERQTEwyIHN1cHBsaWVz IGNsb2NrIHRvIHRoZSBJVkEyLgotICogRFBMTDMgc3VwcGxpZXMgQ09SRSBkb21haW4gY2xvY2tz LgotICogRFBMTDQgc3VwcGxpZXMgcGVyaXBoZXJhbCBjbG9ja3MuCi0gKiBEUExMNSBzdXBwbGll cyBvdGhlciBwZXJpcGhlcmFsIGNsb2NrcyAoVVNCSE9TVCwgVVNJTSkuCi0gKi8KLQotLyogRm9y d2FyZCBkZWNsYXJhdGlvbnMgZm9yIERQTEwgYnlwYXNzIGNsb2NrcyAqLwotc3RhdGljIHN0cnVj dCBjbGsgZHBsbDFfZmNrOwotc3RhdGljIHN0cnVjdCBjbGsgZHBsbDJfZmNrOworICogQ29weXJp Z2h0IChDKSAyMDA3LTIwMDkgVGV4YXMgSW5zdHJ1bWVudHMsIEluYy4KKyAqIENvcHlyaWdodCAo QykgMjAwNy0yMDA5IE5va2lhIENvcnBvcmF0aW9uCisgKi8KKworI2lmbmRlZiBfX0FSQ0hfQVJN X01BQ0hfT01BUDJfQ0xPQ0tfMzRYWF9ICisjZGVmaW5lIF9fQVJDSF9BUk1fTUFDSF9PTUFQMl9D TE9DS18zNFhYX0gKKwordW5zaWduZWQgbG9uZyBvbWFwM19kcGxsX3JlY2FsYyhzdHJ1Y3QgY2xr ICpjbGspOwordW5zaWduZWQgbG9uZyBvbWFwM19jbGtvdXR4Ml9yZWNhbGMoc3RydWN0IGNsayAq Y2xrKTsKK3ZvaWQgb21hcDNfZHBsbF9hbGxvd19pZGxlKHN0cnVjdCBjbGsgKmNsayk7Cit2b2lk IG9tYXAzX2RwbGxfZGVueV9pZGxlKHN0cnVjdCBjbGsgKmNsayk7Cit1MzIgb21hcDNfZHBsbF9h dXRvaWRsZV9yZWFkKHN0cnVjdCBjbGsgKmNsayk7CitpbnQgb21hcDNfbm9uY29yZV9kcGxsX3Nl dF9yYXRlKHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQgbG9uZyByYXRlKTsKK2ludCBvbWFwM19k cGxsNF9zZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVkIGxvbmcgcmF0ZSk7CitpbnQg b21hcDNfY29yZV9kcGxsX20yX3NldF9yYXRlKHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQgbG9u ZyByYXRlKTsKK3ZvaWQgb21hcDNfY2xrX2xvY2tfZHBsbDUodm9pZCk7CitpbnQgb21hcDNfbm9u Y29yZV9kcGxsX2VuYWJsZShzdHJ1Y3QgY2xrICpjbGspOwordm9pZCBvbWFwM19ub25jb3JlX2Rw bGxfZGlzYWJsZShzdHJ1Y3QgY2xrICpjbGspOwordm9pZCBvbWFwMzQzMGVzMl9jbGtfc3NpX2Zp bmRfaWRsZXN0KHN0cnVjdCBjbGsgKmNsaywKKwkJCQkgICAgIHZvaWQgX19pb21lbSAqKmlkbGVz dF9yZWcsCisJCQkJICAgICB1OCAqaWRsZXN0X2JpdCk7Cit2b2lkIG9tYXAzNDMwZXMyX2Nsa19k c3NfdXNiaG9zdF9maW5kX2lkbGVzdChzdHJ1Y3QgY2xrICpjbGssCisJCQkJCSAgICAgdm9pZCBf X2lvbWVtICoqaWRsZXN0X3JlZywKKwkJCQkJICAgICB1OCAqaWRsZXN0X2JpdCk7Cit2b2lkIG9t YXAzNDMwZXMyX2Nsa19oc290Z3VzYl9maW5kX2lkbGVzdChzdHJ1Y3QgY2xrICpjbGssCisJCQkJ CSAgdm9pZCBfX2lvbWVtICoqaWRsZXN0X3JlZywKKwkJCQkJICB1OCAqaWRsZXN0X2JpdCk7CiAK IC8qIENNX0NMS0VOX1BMTCouRU4qIGJpdCB2YWx1ZXMgLSBub3QgYWxsIGFyZSBhdmFpbGFibGUg Zm9yIGV2ZXJ5IERQTEwgKi8KICNkZWZpbmUgRFBMTF9MT1dfUE9XRVJfU1RPUAkJMHgxCiAjZGVm aW5lIERQTExfTE9XX1BPV0VSX0JZUEFTUwkJMHg1CiAjZGVmaW5lIERQTExfTE9DS0VECQkJMHg3 CiAKLS8qIFBSTSBDTE9DS1MgKi8KLQotLyogQWNjb3JkaW5nIHRvIHRpbWVyMzJrLmMsIHRoaXMg aXMgYSAzMjc2OEh6IGNsb2NrLCBub3QgYSAzMjAwMEh6IGNsb2NrLiAqLwotc3RhdGljIHN0cnVj dCBjbGsgb21hcF8zMmtfZmNrID0gewotCS5uYW1lCQk9ICJvbWFwXzMya19mY2siLAotCS5vcHMJ CT0gJmNsa29wc19udWxsLAotCS5yYXRlCQk9IDMyNzY4LAotCS5mbGFncwkJPSBSQVRFX0ZJWEVE LAotfTsKLQotc3RhdGljIHN0cnVjdCBjbGsgc2VjdXJlXzMya19mY2sgPSB7Ci0JLm5hbWUJCT0g InNlY3VyZV8zMmtfZmNrIiwKLQkub3BzCQk9ICZjbGtvcHNfbnVsbCwKLQkucmF0ZQkJPSAzMjc2 OCwKLQkuZmxhZ3MJCT0gUkFURV9GSVhFRCwKLX07Ci0KLS8qIFZpcnR1YWwgc291cmNlIGNsb2Nr cyBmb3Igb3NjX3N5c19jayAqLwotc3RhdGljIHN0cnVjdCBjbGsgdmlydF8xMm1fY2sgPSB7Ci0J Lm5hbWUJCT0gInZpcnRfMTJtX2NrIiwKLQkub3BzCQk9ICZjbGtvcHNfbnVsbCwKLQkucmF0ZQkJ PSAxMjAwMDAwMCwKLQkuZmxhZ3MJCT0gUkFURV9GSVhFRCwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3Qg Y2xrIHZpcnRfMTNtX2NrID0gewotCS5uYW1lCQk9ICJ2aXJ0XzEzbV9jayIsCi0JLm9wcwkJPSAm Y2xrb3BzX251bGwsCi0JLnJhdGUJCT0gMTMwMDAwMDAsCi0JLmZsYWdzCQk9IFJBVEVfRklYRUQs Ci19OwotCi1zdGF0aWMgc3RydWN0IGNsayB2aXJ0XzE2XzhtX2NrID0gewotCS5uYW1lCQk9ICJ2 aXJ0XzE2XzhtX2NrIiwKLQkub3BzCQk9ICZjbGtvcHNfbnVsbCwKLQkucmF0ZQkJPSAxNjgwMDAw MCwKLQkuZmxhZ3MJCT0gUkFURV9GSVhFRCwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIHZpcnRf MTlfMm1fY2sgPSB7Ci0JLm5hbWUJCT0gInZpcnRfMTlfMm1fY2siLAotCS5vcHMJCT0gJmNsa29w c19udWxsLAotCS5yYXRlCQk9IDE5MjAwMDAwLAotCS5mbGFncwkJPSBSQVRFX0ZJWEVELAotfTsK LQotc3RhdGljIHN0cnVjdCBjbGsgdmlydF8yNm1fY2sgPSB7Ci0JLm5hbWUJCT0gInZpcnRfMjZt X2NrIiwKLQkub3BzCQk9ICZjbGtvcHNfbnVsbCwKLQkucmF0ZQkJPSAyNjAwMDAwMCwKLQkuZmxh Z3MJCT0gUkFURV9GSVhFRCwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIHZpcnRfMzhfNG1fY2sg PSB7Ci0JLm5hbWUJCT0gInZpcnRfMzhfNG1fY2siLAotCS5vcHMJCT0gJmNsa29wc19udWxsLAot CS5yYXRlCQk9IDM4NDAwMDAwLAotCS5mbGFncwkJPSBSQVRFX0ZJWEVELAotfTsKLQotc3RhdGlj IGNvbnN0IHN0cnVjdCBjbGtzZWxfcmF0ZSBvc2Nfc3lzXzEybV9yYXRlc1tdID0gewotCXsgLmRp diA9IDEsIC52YWwgPSAwLCAuZmxhZ3MgPSBSQVRFX0lOXzM0M1ggfCBERUZBVUxUX1JBVEUgfSwK LQl7IC5kaXYgPSAwIH0KLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrc2VsX3JhdGUgb3Nj X3N5c18xM21fcmF0ZXNbXSA9IHsKLQl7IC5kaXYgPSAxLCAudmFsID0gMSwgLmZsYWdzID0gUkFU RV9JTl8zNDNYIHwgREVGQVVMVF9SQVRFIH0sCi0JeyAuZGl2ID0gMCB9Ci19OwotCi1zdGF0aWMg Y29uc3Qgc3RydWN0IGNsa3NlbF9yYXRlIG9zY19zeXNfMTZfOG1fcmF0ZXNbXSA9IHsKLQl7IC5k aXYgPSAxLCAudmFsID0gNSwgLmZsYWdzID0gUkFURV9JTl8zNDMwRVMyIHwgREVGQVVMVF9SQVRF IH0sCi0JeyAuZGl2ID0gMCB9Ci19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGNsa3NlbF9yYXRl IG9zY19zeXNfMTlfMm1fcmF0ZXNbXSA9IHsKLQl7IC5kaXYgPSAxLCAudmFsID0gMiwgLmZsYWdz ID0gUkFURV9JTl8zNDNYIHwgREVGQVVMVF9SQVRFIH0sCi0JeyAuZGl2ID0gMCB9Ci19OwotCi1z dGF0aWMgY29uc3Qgc3RydWN0IGNsa3NlbF9yYXRlIG9zY19zeXNfMjZtX3JhdGVzW10gPSB7Ci0J eyAuZGl2ID0gMSwgLnZhbCA9IDMsIC5mbGFncyA9IFJBVEVfSU5fMzQzWCB8IERFRkFVTFRfUkFU RSB9LAotCXsgLmRpdiA9IDAgfQotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtzZWxfcmF0 ZSBvc2Nfc3lzXzM4XzRtX3JhdGVzW10gPSB7Ci0JeyAuZGl2ID0gMSwgLnZhbCA9IDQsIC5mbGFn cyA9IFJBVEVfSU5fMzQzWCB8IERFRkFVTFRfUkFURSB9LAotCXsgLmRpdiA9IDAgfQotfTsKLQot c3RhdGljIGNvbnN0IHN0cnVjdCBjbGtzZWwgb3NjX3N5c19jbGtzZWxbXSA9IHsKLQl7IC5wYXJl bnQgPSAmdmlydF8xMm1fY2ssICAgLnJhdGVzID0gb3NjX3N5c18xMm1fcmF0ZXMgfSwKLQl7IC5w YXJlbnQgPSAmdmlydF8xM21fY2ssICAgLnJhdGVzID0gb3NjX3N5c18xM21fcmF0ZXMgfSwKLQl7 IC5wYXJlbnQgPSAmdmlydF8xNl84bV9jaywgLnJhdGVzID0gb3NjX3N5c18xNl84bV9yYXRlcyB9 LAotCXsgLnBhcmVudCA9ICZ2aXJ0XzE5XzJtX2NrLCAucmF0ZXMgPSBvc2Nfc3lzXzE5XzJtX3Jh dGVzIH0sCi0JeyAucGFyZW50ID0gJnZpcnRfMjZtX2NrLCAgIC5yYXRlcyA9IG9zY19zeXNfMjZt X3JhdGVzIH0sCi0JeyAucGFyZW50ID0gJnZpcnRfMzhfNG1fY2ssIC5yYXRlcyA9IG9zY19zeXNf MzhfNG1fcmF0ZXMgfSwKLQl7IC5wYXJlbnQgPSBOVUxMIH0sCi19OwotCi0vKiBPc2NpbGxhdG9y IGNsb2NrICovCi0vKiAxMiwgMTMsIDE2LjgsIDE5LjIsIDI2LCBvciAzOC40IE1IeiAqLwotc3Rh dGljIHN0cnVjdCBjbGsgb3NjX3N5c19jayA9IHsKLQkubmFtZQkJPSAib3NjX3N5c19jayIsCi0J Lm9wcwkJPSAmY2xrb3BzX251bGwsCi0JLmluaXQJCT0gJm9tYXAyX2luaXRfY2xrc2VsX3BhcmVu dCwKLQkuY2xrc2VsX3JlZwk9IE9NQVAzNDMwX1BSTV9DTEtTRUwsCi0JLmNsa3NlbF9tYXNrCT0g T01BUDM0MzBfU1lTX0NMS0lOX1NFTF9NQVNLLAotCS5jbGtzZWwJCT0gb3NjX3N5c19jbGtzZWws Ci0JLyogUkVWSVNJVDogZGVhbCB3aXRoIGF1dG9leHRjbGttb2RlPyAqLwotCS5mbGFncwkJPSBS QVRFX0ZJWEVELAotCS5yZWNhbGMJCT0gJm9tYXAyX2Nsa3NlbF9yZWNhbGMsCi19OwotCi1zdGF0 aWMgY29uc3Qgc3RydWN0IGNsa3NlbF9yYXRlIGRpdjJfcmF0ZXNbXSA9IHsKLQl7IC5kaXYgPSAx LCAudmFsID0gMSwgLmZsYWdzID0gUkFURV9JTl8zNDNYIHwgREVGQVVMVF9SQVRFIH0sCi0JeyAu ZGl2ID0gMiwgLnZhbCA9IDIsIC5mbGFncyA9IFJBVEVfSU5fMzQzWCB9LAotCXsgLmRpdiA9IDAg fQotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtzZWwgc3lzX2Nsa3NlbFtdID0gewotCXsg LnBhcmVudCA9ICZvc2Nfc3lzX2NrLCAucmF0ZXMgPSBkaXYyX3JhdGVzIH0sCi0JeyAucGFyZW50 ID0gTlVMTCB9Ci19OwotCi0vKiBMYXRlbmN5OiB0aGlzIGNsb2NrIGlzIG9ubHkgZW5hYmxlZCBh ZnRlciBQUk1fQ0xLU0VUVVAuU0VUVVBfVElNRSAqLwotLyogRmVlZHMgRFBMTHMgLSBkaXZpZGVk IGZpcnN0IGJ5IFBSTV9DTEtTUkNfQ1RSTC5TWVNDTEtESVY/ICovCi1zdGF0aWMgc3RydWN0IGNs ayBzeXNfY2sgPSB7Ci0JLm5hbWUJCT0gInN5c19jayIsCi0JLm9wcwkJPSAmY2xrb3BzX251bGws Ci0JLnBhcmVudAkJPSAmb3NjX3N5c19jaywKLQkuaW5pdAkJPSAmb21hcDJfaW5pdF9jbGtzZWxf cGFyZW50LAotCS5jbGtzZWxfcmVnCT0gT01BUDM0MzBfUFJNX0NMS1NSQ19DVFJMLAotCS5jbGtz ZWxfbWFzawk9IE9NQVBfU1lTQ0xLRElWX01BU0ssCi0JLmNsa3NlbAkJPSBzeXNfY2xrc2VsLAot CS5yZWNhbGMJCT0gJm9tYXAyX2Nsa3NlbF9yZWNhbGMsCi19OwotCi1zdGF0aWMgc3RydWN0IGNs ayBzeXNfYWx0Y2xrID0gewotCS5uYW1lCQk9ICJzeXNfYWx0Y2xrIiwKLQkub3BzCQk9ICZjbGtv cHNfbnVsbCwKLX07Ci0KLS8qIE9wdGlvbmFsIGV4dGVybmFsIGNsb2NrIGlucHV0IGZvciBzb21l IE1jQlNQcyAqLwotc3RhdGljIHN0cnVjdCBjbGsgbWNic3BfY2xrcyA9IHsKLQkubmFtZQkJPSAi bWNic3BfY2xrcyIsCi0JLm9wcwkJPSAmY2xrb3BzX251bGwsCi19OwotCi0vKiBQUk0gRVhURVJO QUwgQ0xPQ0sgT1VUUFVUICovCi0KLXN0YXRpYyBzdHJ1Y3QgY2xrIHN5c19jbGtvdXQxID0gewot CS5uYW1lCQk9ICJzeXNfY2xrb3V0MSIsCi0JLm9wcwkJPSAmY2xrb3BzX29tYXAyX2RmbHQsCi0J LnBhcmVudAkJPSAmb3NjX3N5c19jaywKLQkuZW5hYmxlX3JlZwk9IE9NQVAzNDMwX1BSTV9DTEtP VVRfQ1RSTCwKLQkuZW5hYmxlX2JpdAk9IE9NQVAzNDMwX0NMS09VVF9FTl9TSElGVCwKLQkucmVj YWxjCQk9ICZmb2xsb3dwYXJlbnRfcmVjYWxjLAotfTsKLQotLyogRFBMTFMgKi8KLQotLyogQ00g Q0xPQ0tTICovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrc2VsX3JhdGUgZGl2MTZfZHBsbF9y YXRlc1tdID0gewotCXsgLmRpdiA9IDEsIC52YWwgPSAxLCAuZmxhZ3MgPSBSQVRFX0lOXzM0M1gg fCBERUZBVUxUX1JBVEUgfSwKLQl7IC5kaXYgPSAyLCAudmFsID0gMiwgLmZsYWdzID0gUkFURV9J Tl8zNDNYIH0sCi0JeyAuZGl2ID0gMywgLnZhbCA9IDMsIC5mbGFncyA9IFJBVEVfSU5fMzQzWCB9 LAotCXsgLmRpdiA9IDQsIC52YWwgPSA0LCAuZmxhZ3MgPSBSQVRFX0lOXzM0M1ggfSwKLQl7IC5k aXYgPSA1LCAudmFsID0gNSwgLmZsYWdzID0gUkFURV9JTl8zNDNYIH0sCi0JeyAuZGl2ID0gNiwg LnZhbCA9IDYsIC5mbGFncyA9IFJBVEVfSU5fMzQzWCB9LAotCXsgLmRpdiA9IDcsIC52YWwgPSA3 LCAuZmxhZ3MgPSBSQVRFX0lOXzM0M1ggfSwKLQl7IC5kaXYgPSA4LCAudmFsID0gOCwgLmZsYWdz ID0gUkFURV9JTl8zNDNYIH0sCi0JeyAuZGl2ID0gOSwgLnZhbCA9IDksIC5mbGFncyA9IFJBVEVf SU5fMzQzWCB9LAotCXsgLmRpdiA9IDEwLCAudmFsID0gMTAsIC5mbGFncyA9IFJBVEVfSU5fMzQz WCB9LAotCXsgLmRpdiA9IDExLCAudmFsID0gMTEsIC5mbGFncyA9IFJBVEVfSU5fMzQzWCB9LAot CXsgLmRpdiA9IDEyLCAudmFsID0gMTIsIC5mbGFncyA9IFJBVEVfSU5fMzQzWCB9LAotCXsgLmRp diA9IDEzLCAudmFsID0gMTMsIC5mbGFncyA9IFJBVEVfSU5fMzQzWCB9LAotCXsgLmRpdiA9IDE0 LCAudmFsID0gMTQsIC5mbGFncyA9IFJBVEVfSU5fMzQzWCB9LAotCXsgLmRpdiA9IDE1LCAudmFs ID0gMTUsIC5mbGFncyA9IFJBVEVfSU5fMzQzWCB9LAotCXsgLmRpdiA9IDE2LCAudmFsID0gMTYs IC5mbGFncyA9IFJBVEVfSU5fMzQzWCB9LAotCXsgLmRpdiA9IDAgfQotfTsKLQotLyogRFBMTDEg Ki8KLS8qIE1QVSBjbG9jayBzb3VyY2UgKi8KLS8qIFR5cGU6IERQTEwgKi8KLXN0YXRpYyBzdHJ1 Y3QgZHBsbF9kYXRhIGRwbGwxX2RkID0gewotCS5tdWx0X2RpdjFfcmVnCT0gT01BUF9DTV9SRUdB RERSKE1QVV9NT0QsIE9NQVAzNDMwX0NNX0NMS1NFTDFfUExMKSwKLQkubXVsdF9tYXNrCT0gT01B UDM0MzBfTVBVX0RQTExfTVVMVF9NQVNLLAotCS5kaXYxX21hc2sJPSBPTUFQMzQzMF9NUFVfRFBM TF9ESVZfTUFTSywKLQkuY2xrX2J5cGFzcwk9ICZkcGxsMV9mY2ssCi0JLmNsa19yZWYJPSAmc3lz X2NrLAotCS5mcmVxc2VsX21hc2sJPSBPTUFQMzQzMF9NUFVfRFBMTF9GUkVRU0VMX01BU0ssCi0J LmNvbnRyb2xfcmVnCT0gT01BUF9DTV9SRUdBRERSKE1QVV9NT0QsIE9NQVAzNDMwX0NNX0NMS0VO X1BMTCksCi0JLmVuYWJsZV9tYXNrCT0gT01BUDM0MzBfRU5fTVBVX0RQTExfTUFTSywKLQkubW9k ZXMJCT0gKDEgPDwgRFBMTF9MT1dfUE9XRVJfQllQQVNTKSB8ICgxIDw8IERQTExfTE9DS0VEKSwK LQkuYXV0b19yZWNhbF9iaXQJPSBPTUFQMzQzMF9FTl9NUFVfRFBMTF9EUklGVEdVQVJEX1NISUZU LAotCS5yZWNhbF9lbl9iaXQJPSBPTUFQMzQzMF9NUFVfRFBMTF9SRUNBTF9FTl9TSElGVCwKLQku cmVjYWxfc3RfYml0CT0gT01BUDM0MzBfTVBVX0RQTExfU1RfU0hJRlQsCi0JLmF1dG9pZGxlX3Jl Zwk9IE9NQVBfQ01fUkVHQUREUihNUFVfTU9ELCBPTUFQMzQzMF9DTV9BVVRPSURMRV9QTEwpLAot CS5hdXRvaWRsZV9tYXNrCT0gT01BUDM0MzBfQVVUT19NUFVfRFBMTF9NQVNLLAotCS5pZGxlc3Rf cmVnCT0gT01BUF9DTV9SRUdBRERSKE1QVV9NT0QsIE9NQVAzNDMwX0NNX0lETEVTVF9QTEwpLAot CS5pZGxlc3RfbWFzawk9IE9NQVAzNDMwX1NUX01QVV9DTEtfTUFTSywKLQkubWF4X211bHRpcGxp ZXIgPSBPTUFQM19NQVhfRFBMTF9NVUxULAotCS5taW5fZGl2aWRlcgk9IDEsCi0JLm1heF9kaXZp ZGVyCT0gT01BUDNfTUFYX0RQTExfRElWLAotCS5yYXRlX3RvbGVyYW5jZSA9IERFRkFVTFRfRFBM TF9SQVRFX1RPTEVSQU5DRQotfTsKLQotc3RhdGljIHN0cnVjdCBjbGsgZHBsbDFfY2sgPSB7Ci0J Lm5hbWUJCT0gImRwbGwxX2NrIiwKLQkub3BzCQk9ICZjbGtvcHNfbnVsbCwKLQkucGFyZW50CQk9 ICZzeXNfY2ssCi0JLmRwbGxfZGF0YQk9ICZkcGxsMV9kZCwKLQkucm91bmRfcmF0ZQk9ICZvbWFw Ml9kcGxsX3JvdW5kX3JhdGUsCi0JLnNldF9yYXRlCT0gJm9tYXAzX25vbmNvcmVfZHBsbF9zZXRf cmF0ZSwKLQkuY2xrZG1fbmFtZQk9ICJkcGxsMV9jbGtkbSIsCi0JLnJlY2FsYwkJPSAmb21hcDNf ZHBsbF9yZWNhbGMsCi19OwotCi0vKgotICogVGhpcyB2aXJ0dWFsIGNsb2NrIHByb3ZpZGVzIHRo ZSBDTEtPVVRYMiBvdXRwdXQgZnJvbSB0aGUgRFBMTCBpZiB0aGUKLSAqIERQTEwgaXNuJ3QgYnlw YXNzZWQuCi0gKi8KLXN0YXRpYyBzdHJ1Y3QgY2xrIGRwbGwxX3gyX2NrID0gewotCS5uYW1lCQk9 ICJkcGxsMV94Ml9jayIsCi0JLm9wcwkJPSAmY2xrb3BzX251bGwsCi0JLnBhcmVudAkJPSAmZHBs bDFfY2ssCi0JLmNsa2RtX25hbWUJPSAiZHBsbDFfY2xrZG0iLAotCS5yZWNhbGMJCT0gJm9tYXAz X2Nsa291dHgyX3JlY2FsYywKLX07Ci0KLS8qIE9uIERQTEwxLCB1bmxpa2Ugb3RoZXIgRFBMTHMs IHRoZSBkaXZpZGVyIGlzIGRvd25zdHJlYW0gZnJvbSBDTEtPVVRYMiAqLwotc3RhdGljIGNvbnN0 IHN0cnVjdCBjbGtzZWwgZGl2MTZfZHBsbDFfeDJtMl9jbGtzZWxbXSA9IHsKLQl7IC5wYXJlbnQg PSAmZHBsbDFfeDJfY2ssIC5yYXRlcyA9IGRpdjE2X2RwbGxfcmF0ZXMgfSwKLQl7IC5wYXJlbnQg PSBOVUxMIH0KLX07Ci0KLS8qCi0gKiBEb2VzIG5vdCBleGlzdCBpbiB0aGUgVFJNIC0gbmVlZGVk IHRvIHNlcGFyYXRlIHRoZSBNMiBkaXZpZGVyIGZyb20KLSAqIGJ5cGFzcyBzZWxlY3Rpb24gaW4g bXB1X2NrCi0gKi8KLXN0YXRpYyBzdHJ1Y3QgY2xrIGRwbGwxX3gybTJfY2sgPSB7Ci0JLm5hbWUJ CT0gImRwbGwxX3gybTJfY2siLAotCS5vcHMJCT0gJmNsa29wc19udWxsLAotCS5wYXJlbnQJCT0g JmRwbGwxX3gyX2NrLAotCS5pbml0CQk9ICZvbWFwMl9pbml0X2Nsa3NlbF9wYXJlbnQsCi0JLmNs a3NlbF9yZWcJPSBPTUFQX0NNX1JFR0FERFIoTVBVX01PRCwgT01BUDM0MzBfQ01fQ0xLU0VMMl9Q TEwpLAotCS5jbGtzZWxfbWFzawk9IE9NQVAzNDMwX01QVV9EUExMX0NMS09VVF9ESVZfTUFTSywK LQkuY2xrc2VsCQk9IGRpdjE2X2RwbGwxX3gybTJfY2xrc2VsLAotCS5jbGtkbV9uYW1lCT0gImRw bGwxX2Nsa2RtIiwKLQkucmVjYWxjCQk9ICZvbWFwMl9jbGtzZWxfcmVjYWxjLAotfTsKLQotLyog RFBMTDIgKi8KLS8qIElWQTIgY2xvY2sgc291cmNlICovCi0vKiBUeXBlOiBEUExMICovCi0KLXN0 YXRpYyBzdHJ1Y3QgZHBsbF9kYXRhIGRwbGwyX2RkID0gewotCS5tdWx0X2RpdjFfcmVnCT0gT01B UF9DTV9SRUdBRERSKE9NQVAzNDMwX0lWQTJfTU9ELCBPTUFQMzQzMF9DTV9DTEtTRUwxX1BMTCks Ci0JLm11bHRfbWFzawk9IE9NQVAzNDMwX0lWQTJfRFBMTF9NVUxUX01BU0ssCi0JLmRpdjFfbWFz awk9IE9NQVAzNDMwX0lWQTJfRFBMTF9ESVZfTUFTSywKLQkuY2xrX2J5cGFzcwk9ICZkcGxsMl9m Y2ssCi0JLmNsa19yZWYJPSAmc3lzX2NrLAotCS5mcmVxc2VsX21hc2sJPSBPTUFQMzQzMF9JVkEy X0RQTExfRlJFUVNFTF9NQVNLLAotCS5jb250cm9sX3JlZwk9IE9NQVBfQ01fUkVHQUREUihPTUFQ MzQzMF9JVkEyX01PRCwgT01BUDM0MzBfQ01fQ0xLRU5fUExMKSwKLQkuZW5hYmxlX21hc2sJPSBP TUFQMzQzMF9FTl9JVkEyX0RQTExfTUFTSywKLQkubW9kZXMJCT0gKDEgPDwgRFBMTF9MT1dfUE9X RVJfU1RPUCkgfCAoMSA8PCBEUExMX0xPQ0tFRCkgfAotCQkJCSgxIDw8IERQTExfTE9XX1BPV0VS X0JZUEFTUyksCi0JLmF1dG9fcmVjYWxfYml0CT0gT01BUDM0MzBfRU5fSVZBMl9EUExMX0RSSUZU R1VBUkRfU0hJRlQsCi0JLnJlY2FsX2VuX2JpdAk9IE9NQVAzNDMwX1BSTV9JUlFFTkFCTEVfTVBV X0lWQTJfRFBMTF9SRUNBTF9FTl9TSElGVCwKLQkucmVjYWxfc3RfYml0CT0gT01BUDM0MzBfUFJN X0lSUVNUQVRVU19NUFVfSVZBMl9EUExMX1NUX1NISUZULAotCS5hdXRvaWRsZV9yZWcJPSBPTUFQ X0NNX1JFR0FERFIoT01BUDM0MzBfSVZBMl9NT0QsIE9NQVAzNDMwX0NNX0FVVE9JRExFX1BMTCks Ci0JLmF1dG9pZGxlX21hc2sJPSBPTUFQMzQzMF9BVVRPX0lWQTJfRFBMTF9NQVNLLAotCS5pZGxl c3RfcmVnCT0gT01BUF9DTV9SRUdBRERSKE9NQVAzNDMwX0lWQTJfTU9ELCBPTUFQMzQzMF9DTV9J RExFU1RfUExMKSwKLQkuaWRsZXN0X21hc2sJPSBPTUFQMzQzMF9TVF9JVkEyX0NMS19NQVNLLAot CS5tYXhfbXVsdGlwbGllciA9IE9NQVAzX01BWF9EUExMX01VTFQsCi0JLm1pbl9kaXZpZGVyCT0g MSwKLQkubWF4X2RpdmlkZXIJPSBPTUFQM19NQVhfRFBMTF9ESVYsCi0JLnJhdGVfdG9sZXJhbmNl ID0gREVGQVVMVF9EUExMX1JBVEVfVE9MRVJBTkNFCi19OwotCi1zdGF0aWMgc3RydWN0IGNsayBk cGxsMl9jayA9IHsKLQkubmFtZQkJPSAiZHBsbDJfY2siLAotCS5vcHMJCT0gJmNsa29wc19ub25j b3JlX2RwbGxfb3BzLAotCS5wYXJlbnQJCT0gJnN5c19jaywKLQkuZHBsbF9kYXRhCT0gJmRwbGwy X2RkLAotCS5yb3VuZF9yYXRlCT0gJm9tYXAyX2RwbGxfcm91bmRfcmF0ZSwKLQkuc2V0X3JhdGUJ PSAmb21hcDNfbm9uY29yZV9kcGxsX3NldF9yYXRlLAotCS5jbGtkbV9uYW1lCT0gImRwbGwyX2Ns a2RtIiwKLQkucmVjYWxjCQk9ICZvbWFwM19kcGxsX3JlY2FsYywKLX07Ci0KLXN0YXRpYyBjb25z dCBzdHJ1Y3QgY2xrc2VsIGRpdjE2X2RwbGwyX20yeDJfY2xrc2VsW10gPSB7Ci0JeyAucGFyZW50 ID0gJmRwbGwyX2NrLCAucmF0ZXMgPSBkaXYxNl9kcGxsX3JhdGVzIH0sCi0JeyAucGFyZW50ID0g TlVMTCB9Ci19OwotCi0vKgotICogVGhlIFRSTSBpcyBjb25mbGljdGVkIG9uIHdoZXRoZXIgSVZB MiBjbG9jayBjb21lcyBmcm9tIERQTEwyIENMS09VVAotICogb3IgQ0xLT1VUWDIuIENMS09VVCBz ZWVtcyBtb3N0IHBsYXVzaWJsZS4KLSAqLwotc3RhdGljIHN0cnVjdCBjbGsgZHBsbDJfbTJfY2sg PSB7Ci0JLm5hbWUJCT0gImRwbGwyX20yX2NrIiwKLQkub3BzCQk9ICZjbGtvcHNfbnVsbCwKLQku cGFyZW50CQk9ICZkcGxsMl9jaywKLQkuaW5pdAkJPSAmb21hcDJfaW5pdF9jbGtzZWxfcGFyZW50 LAotCS5jbGtzZWxfcmVnCT0gT01BUF9DTV9SRUdBRERSKE9NQVAzNDMwX0lWQTJfTU9ELAotCQkJ CQkgIE9NQVAzNDMwX0NNX0NMS1NFTDJfUExMKSwKLQkuY2xrc2VsX21hc2sJPSBPTUFQMzQzMF9J VkEyX0RQTExfQ0xLT1VUX0RJVl9NQVNLLAotCS5jbGtzZWwJCT0gZGl2MTZfZHBsbDJfbTJ4Ml9j bGtzZWwsCi0JLmNsa2RtX25hbWUJPSAiZHBsbDJfY2xrZG0iLAotCS5yZWNhbGMJCT0gJm9tYXAy X2Nsa3NlbF9yZWNhbGMsCi19OwotCi0vKgotICogRFBMTDMKLSAqIFNvdXJjZSBjbG9jayBmb3Ig YWxsIGludGVyZmFjZXMgYW5kIGZvciBzb21lIGRldmljZSBmY2xrcwotICogUkVWSVNJVDogQWxz byBzdXBwb3J0cyBmYXN0IHJlbG9jayBieXBhc3MgLSBub3QgaW5jbHVkZWQgYmVsb3cKLSAqLwot c3RhdGljIHN0cnVjdCBkcGxsX2RhdGEgZHBsbDNfZGQgPSB7Ci0JLm11bHRfZGl2MV9yZWcJPSBP TUFQX0NNX1JFR0FERFIoUExMX01PRCwgQ01fQ0xLU0VMMSksCi0JLm11bHRfbWFzawk9IE9NQVAz NDMwX0NPUkVfRFBMTF9NVUxUX01BU0ssCi0JLmRpdjFfbWFzawk9IE9NQVAzNDMwX0NPUkVfRFBM TF9ESVZfTUFTSywKLQkuY2xrX2J5cGFzcwk9ICZzeXNfY2ssCi0JLmNsa19yZWYJPSAmc3lzX2Nr LAotCS5mcmVxc2VsX21hc2sJPSBPTUFQMzQzMF9DT1JFX0RQTExfRlJFUVNFTF9NQVNLLAotCS5j b250cm9sX3JlZwk9IE9NQVBfQ01fUkVHQUREUihQTExfTU9ELCBDTV9DTEtFTiksCi0JLmVuYWJs ZV9tYXNrCT0gT01BUDM0MzBfRU5fQ09SRV9EUExMX01BU0ssCi0JLmF1dG9fcmVjYWxfYml0CT0g T01BUDM0MzBfRU5fQ09SRV9EUExMX0RSSUZUR1VBUkRfU0hJRlQsCi0JLnJlY2FsX2VuX2JpdAk9 IE9NQVAzNDMwX0NPUkVfRFBMTF9SRUNBTF9FTl9TSElGVCwKLQkucmVjYWxfc3RfYml0CT0gT01B UDM0MzBfQ09SRV9EUExMX1NUX1NISUZULAotCS5hdXRvaWRsZV9yZWcJPSBPTUFQX0NNX1JFR0FE RFIoUExMX01PRCwgQ01fQVVUT0lETEUpLAotCS5hdXRvaWRsZV9tYXNrCT0gT01BUDM0MzBfQVVU T19DT1JFX0RQTExfTUFTSywKLQkuaWRsZXN0X3JlZwk9IE9NQVBfQ01fUkVHQUREUihQTExfTU9E LCBDTV9JRExFU1QpLAotCS5pZGxlc3RfbWFzawk9IE9NQVAzNDMwX1NUX0NPUkVfQ0xLX01BU0ss Ci0JLm1heF9tdWx0aXBsaWVyID0gT01BUDNfTUFYX0RQTExfTVVMVCwKLQkubWluX2RpdmlkZXIJ PSAxLAotCS5tYXhfZGl2aWRlcgk9IE9NQVAzX01BWF9EUExMX0RJViwKLQkucmF0ZV90b2xlcmFu Y2UgPSBERUZBVUxUX0RQTExfUkFURV9UT0xFUkFOQ0UKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xr IGRwbGwzX2NrID0gewotCS5uYW1lCQk9ICJkcGxsM19jayIsCi0JLm9wcwkJPSAmY2xrb3BzX251 bGwsCi0JLnBhcmVudAkJPSAmc3lzX2NrLAotCS5kcGxsX2RhdGEJPSAmZHBsbDNfZGQsCi0JLnJv dW5kX3JhdGUJPSAmb21hcDJfZHBsbF9yb3VuZF9yYXRlLAotCS5jbGtkbV9uYW1lCT0gImRwbGwz X2Nsa2RtIiwKLQkucmVjYWxjCQk9ICZvbWFwM19kcGxsX3JlY2FsYywKLX07Ci0KLS8qCi0gKiBU aGlzIHZpcnR1YWwgY2xvY2sgcHJvdmlkZXMgdGhlIENMS09VVFgyIG91dHB1dCBmcm9tIHRoZSBE UExMIGlmIHRoZQotICogRFBMTCBpc24ndCBieXBhc3NlZAotICovCi1zdGF0aWMgc3RydWN0IGNs ayBkcGxsM194Ml9jayA9IHsKLQkubmFtZQkJPSAiZHBsbDNfeDJfY2siLAotCS5vcHMJCT0gJmNs a29wc19udWxsLAotCS5wYXJlbnQJCT0gJmRwbGwzX2NrLAotCS5jbGtkbV9uYW1lCT0gImRwbGwz X2Nsa2RtIiwKLQkucmVjYWxjCQk9ICZvbWFwM19jbGtvdXR4Ml9yZWNhbGMsCi19OwotCi1zdGF0 aWMgY29uc3Qgc3RydWN0IGNsa3NlbF9yYXRlIGRpdjMxX2RwbGwzX3JhdGVzW10gPSB7Ci0JeyAu ZGl2ID0gMSwgLnZhbCA9IDEsIC5mbGFncyA9IFJBVEVfSU5fMzQzWCB8IERFRkFVTFRfUkFURSB9 LAotCXsgLmRpdiA9IDIsIC52YWwgPSAyLCAuZmxhZ3MgPSBSQVRFX0lOXzM0M1ggfSwKLQl7IC5k aXYgPSAzLCAudmFsID0gMywgLmZsYWdzID0gUkFURV9JTl8zNDMwRVMyIH0sCi0JeyAuZGl2ID0g NCwgLnZhbCA9IDQsIC5mbGFncyA9IFJBVEVfSU5fMzQzMEVTMiB9LAotCXsgLmRpdiA9IDUsIC52 YWwgPSA1LCAuZmxhZ3MgPSBSQVRFX0lOXzM0MzBFUzIgfSwKLQl7IC5kaXYgPSA2LCAudmFsID0g NiwgLmZsYWdzID0gUkFURV9JTl8zNDMwRVMyIH0sCi0JeyAuZGl2ID0gNywgLnZhbCA9IDcsIC5m bGFncyA9IFJBVEVfSU5fMzQzMEVTMiB9LAotCXsgLmRpdiA9IDgsIC52YWwgPSA4LCAuZmxhZ3Mg PSBSQVRFX0lOXzM0MzBFUzIgfSwKLQl7IC5kaXYgPSA5LCAudmFsID0gOSwgLmZsYWdzID0gUkFU RV9JTl8zNDMwRVMyIH0sCi0JeyAuZGl2ID0gMTAsIC52YWwgPSAxMCwgLmZsYWdzID0gUkFURV9J Tl8zNDMwRVMyIH0sCi0JeyAuZGl2ID0gMTEsIC52YWwgPSAxMSwgLmZsYWdzID0gUkFURV9JTl8z NDMwRVMyIH0sCi0JeyAuZGl2ID0gMTIsIC52YWwgPSAxMiwgLmZsYWdzID0gUkFURV9JTl8zNDMw RVMyIH0sCi0JeyAuZGl2ID0gMTMsIC52YWwgPSAxMywgLmZsYWdzID0gUkFURV9JTl8zNDMwRVMy IH0sCi0JeyAuZGl2ID0gMTQsIC52YWwgPSAxNCwgLmZsYWdzID0gUkFURV9JTl8zNDMwRVMyIH0s Ci0JeyAuZGl2ID0gMTUsIC52YWwgPSAxNSwgLmZsYWdzID0gUkFURV9JTl8zNDMwRVMyIH0sCi0J eyAuZGl2ID0gMTYsIC52YWwgPSAxNiwgLmZsYWdzID0gUkFURV9JTl8zNDMwRVMyIH0sCi0JeyAu ZGl2ID0gMTcsIC52YWwgPSAxNywgLmZsYWdzID0gUkFURV9JTl8zNDMwRVMyIH0sCi0JeyAuZGl2 ID0gMTgsIC52YWwgPSAxOCwgLmZsYWdzID0gUkFURV9JTl8zNDMwRVMyIH0sCi0JeyAuZGl2ID0g MTksIC52YWwgPSAxOSwgLmZsYWdzID0gUkFURV9JTl8zNDMwRVMyIH0sCi0JeyAuZGl2ID0gMjAs IC52YWwgPSAyMCwgLmZsYWdzID0gUkFURV9JTl8zNDMwRVMyIH0sCi0JeyAuZGl2ID0gMjEsIC52 YWwgPSAyMSwgLmZsYWdzID0gUkFURV9JTl8zNDMwRVMyIH0sCi0JeyAuZGl2ID0gMjIsIC52YWwg PSAyMiwgLmZsYWdzID0gUkFURV9JTl8zNDMwRVMyIH0sCi0JeyAuZGl2ID0gMjMsIC52YWwgPSAy MywgLmZsYWdzID0gUkFURV9JTl8zNDMwRVMyIH0sCi0JeyAuZGl2ID0gMjQsIC52YWwgPSAyNCwg LmZsYWdzID0gUkFURV9JTl8zNDMwRVMyIH0sCi0JeyAuZGl2ID0gMjUsIC52YWwgPSAyNSwgLmZs YWdzID0gUkFURV9JTl8zNDMwRVMyIH0sCi0JeyAuZGl2ID0gMjYsIC52YWwgPSAyNiwgLmZsYWdz ID0gUkFURV9JTl8zNDMwRVMyIH0sCi0JeyAuZGl2ID0gMjcsIC52YWwgPSAyNywgLmZsYWdzID0g UkFURV9JTl8zNDMwRVMyIH0sCi0JeyAuZGl2ID0gMjgsIC52YWwgPSAyOCwgLmZsYWdzID0gUkFU RV9JTl8zNDMwRVMyIH0sCi0JeyAuZGl2ID0gMjksIC52YWwgPSAyOSwgLmZsYWdzID0gUkFURV9J Tl8zNDMwRVMyIH0sCi0JeyAuZGl2ID0gMzAsIC52YWwgPSAzMCwgLmZsYWdzID0gUkFURV9JTl8z NDMwRVMyIH0sCi0JeyAuZGl2ID0gMzEsIC52YWwgPSAzMSwgLmZsYWdzID0gUkFURV9JTl8zNDMw RVMyIH0sCi0JeyAuZGl2ID0gMCB9LAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtzZWwg ZGl2MzFfZHBsbDNtMl9jbGtzZWxbXSA9IHsKLQl7IC5wYXJlbnQgPSAmZHBsbDNfY2ssIC5yYXRl cyA9IGRpdjMxX2RwbGwzX3JhdGVzIH0sCi0JeyAucGFyZW50ID0gTlVMTCB9Ci19OwotCi0vKiBE UExMMyBvdXRwdXQgTTIgLSBwcmltYXJ5IGNvbnRyb2wgcG9pbnQgZm9yIENPUkUgc3BlZWQgKi8K LXN0YXRpYyBzdHJ1Y3QgY2xrIGRwbGwzX20yX2NrID0gewotCS5uYW1lCQk9ICJkcGxsM19tMl9j ayIsCi0JLm9wcwkJPSAmY2xrb3BzX251bGwsCi0JLnBhcmVudAkJPSAmZHBsbDNfY2ssCi0JLmlu aXQJCT0gJm9tYXAyX2luaXRfY2xrc2VsX3BhcmVudCwKLQkuY2xrc2VsX3JlZwk9IE9NQVBfQ01f UkVHQUREUihQTExfTU9ELCBDTV9DTEtTRUwxKSwKLQkuY2xrc2VsX21hc2sJPSBPTUFQMzQzMF9D T1JFX0RQTExfQ0xLT1VUX0RJVl9NQVNLLAotCS5jbGtzZWwJCT0gZGl2MzFfZHBsbDNtMl9jbGtz ZWwsCi0JLmNsa2RtX25hbWUJPSAiZHBsbDNfY2xrZG0iLAotCS5yb3VuZF9yYXRlCT0gJm9tYXAy X2Nsa3NlbF9yb3VuZF9yYXRlLAotCS5zZXRfcmF0ZQk9ICZvbWFwM19jb3JlX2RwbGxfbTJfc2V0 X3JhdGUsCi0JLnJlY2FsYwkJPSAmb21hcDJfY2xrc2VsX3JlY2FsYywKLX07Ci0KLXN0YXRpYyBz dHJ1Y3QgY2xrIGNvcmVfY2sgPSB7Ci0JLm5hbWUJCT0gImNvcmVfY2siLAotCS5vcHMJCT0gJmNs a29wc19udWxsLAotCS5wYXJlbnQJCT0gJmRwbGwzX20yX2NrLAotCS5yZWNhbGMJCT0gJmZvbGxv d3BhcmVudF9yZWNhbGMsCi19OwotCi1zdGF0aWMgc3RydWN0IGNsayBkcGxsM19tMngyX2NrID0g ewotCS5uYW1lCQk9ICJkcGxsM19tMngyX2NrIiwKLQkub3BzCQk9ICZjbGtvcHNfbnVsbCwKLQku cGFyZW50CQk9ICZkcGxsM19tMl9jaywKLQkuY2xrZG1fbmFtZQk9ICJkcGxsM19jbGtkbSIsCi0J LnJlY2FsYwkJPSAmb21hcDNfY2xrb3V0eDJfcmVjYWxjLAotfTsKLQotLyogVGhlIFBXUkROIGJp dCBpcyBhcHBhcmVudGx5IG9ubHkgYXZhaWxhYmxlIG9uIDM0MzBFUzIgYW5kIGFib3ZlICovCi1z dGF0aWMgY29uc3Qgc3RydWN0IGNsa3NlbCBkaXYxNl9kcGxsM19jbGtzZWxbXSA9IHsKLQl7IC5w YXJlbnQgPSAmZHBsbDNfY2ssIC5yYXRlcyA9IGRpdjE2X2RwbGxfcmF0ZXMgfSwKLQl7IC5wYXJl bnQgPSBOVUxMIH0KLX07Ci0KLS8qIFRoaXMgdmlydHVhbCBjbG9jayBpcyB0aGUgc291cmNlIGZv ciBkcGxsM19tM3gyX2NrICovCi1zdGF0aWMgc3RydWN0IGNsayBkcGxsM19tM19jayA9IHsKLQku bmFtZQkJPSAiZHBsbDNfbTNfY2siLAotCS5vcHMJCT0gJmNsa29wc19udWxsLAotCS5wYXJlbnQJ CT0gJmRwbGwzX2NrLAotCS5pbml0CQk9ICZvbWFwMl9pbml0X2Nsa3NlbF9wYXJlbnQsCi0JLmNs a3NlbF9yZWcJPSBPTUFQX0NNX1JFR0FERFIoT01BUDM0MzBfRU1VX01PRCwgQ01fQ0xLU0VMMSks Ci0JLmNsa3NlbF9tYXNrCT0gT01BUDM0MzBfRElWX0RQTEwzX01BU0ssCi0JLmNsa3NlbAkJPSBk aXYxNl9kcGxsM19jbGtzZWwsCi0JLmNsa2RtX25hbWUJPSAiZHBsbDNfY2xrZG0iLAotCS5yZWNh bGMJCT0gJm9tYXAyX2Nsa3NlbF9yZWNhbGMsCi19OwotCi0vKiBUaGUgUFdSRE4gYml0IGlzIGFw cGFyZW50bHkgb25seSBhdmFpbGFibGUgb24gMzQzMEVTMiBhbmQgYWJvdmUgKi8KLXN0YXRpYyBz dHJ1Y3QgY2xrIGRwbGwzX20zeDJfY2sgPSB7Ci0JLm5hbWUJCT0gImRwbGwzX20zeDJfY2siLAot CS5vcHMJCT0gJmNsa29wc19vbWFwMl9kZmx0X3dhaXQsCi0JLnBhcmVudAkJPSAmZHBsbDNfbTNf Y2ssCi0JLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoUExMX01PRCwgQ01fQ0xLRU4pLAot CS5lbmFibGVfYml0CT0gT01BUDM0MzBfUFdSRE5fRU1VX0NPUkVfU0hJRlQsCi0JLmZsYWdzCQk9 IElOVkVSVF9FTkFCTEUsCi0JLmNsa2RtX25hbWUJPSAiZHBsbDNfY2xrZG0iLAotCS5yZWNhbGMJ CT0gJm9tYXAzX2Nsa291dHgyX3JlY2FsYywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIGVtdV9j b3JlX2Fsd29uX2NrID0gewotCS5uYW1lCQk9ICJlbXVfY29yZV9hbHdvbl9jayIsCi0JLm9wcwkJ PSAmY2xrb3BzX251bGwsCi0JLnBhcmVudAkJPSAmZHBsbDNfbTN4Ml9jaywKLQkuY2xrZG1fbmFt ZQk9ICJkcGxsM19jbGtkbSIsCi0JLnJlY2FsYwkJPSAmZm9sbG93cGFyZW50X3JlY2FsYywKLX07 Ci0KLS8qIERQTEw0ICovCi0vKiBTdXBwbGllcyA5Nk1IeiwgNTRNaHogVFYgREFDLCBEU1MgZmNs aywgQ0FNIHNlbnNvciBjbG9jaywgZW11bCB0cmFjZSBjbGsgKi8KLS8qIFR5cGU6IERQTEwgKi8K LXN0YXRpYyBzdHJ1Y3QgZHBsbF9kYXRhIGRwbGw0X2RkID0gewotCS5tdWx0X2RpdjFfcmVnCT0g T01BUF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0NMS1NFTDIpLAotCS5tdWx0X21hc2sJPSBPTUFQ MzQzMF9QRVJJUEhfRFBMTF9NVUxUX01BU0ssCi0JLmRpdjFfbWFzawk9IE9NQVAzNDMwX1BFUklQ SF9EUExMX0RJVl9NQVNLLAotCS5jbGtfYnlwYXNzCT0gJnN5c19jaywKLQkuY2xrX3JlZgk9ICZz eXNfY2ssCi0JLmZyZXFzZWxfbWFzawk9IE9NQVAzNDMwX1BFUklQSF9EUExMX0ZSRVFTRUxfTUFT SywKLQkuY29udHJvbF9yZWcJPSBPTUFQX0NNX1JFR0FERFIoUExMX01PRCwgQ01fQ0xLRU4pLAot CS5lbmFibGVfbWFzawk9IE9NQVAzNDMwX0VOX1BFUklQSF9EUExMX01BU0ssCi0JLm1vZGVzCQk9 ICgxIDw8IERQTExfTE9XX1BPV0VSX1NUT1ApIHwgKDEgPDwgRFBMTF9MT0NLRUQpLAotCS5hdXRv X3JlY2FsX2JpdAk9IE9NQVAzNDMwX0VOX1BFUklQSF9EUExMX0RSSUZUR1VBUkRfU0hJRlQsCi0J LnJlY2FsX2VuX2JpdAk9IE9NQVAzNDMwX1BFUklQSF9EUExMX1JFQ0FMX0VOX1NISUZULAotCS5y ZWNhbF9zdF9iaXQJPSBPTUFQMzQzMF9QRVJJUEhfRFBMTF9TVF9TSElGVCwKLQkuYXV0b2lkbGVf cmVnCT0gT01BUF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0FVVE9JRExFKSwKLQkuYXV0b2lkbGVf bWFzawk9IE9NQVAzNDMwX0FVVE9fUEVSSVBIX0RQTExfTUFTSywKLQkuaWRsZXN0X3JlZwk9IE9N QVBfQ01fUkVHQUREUihQTExfTU9ELCBDTV9JRExFU1QpLAotCS5pZGxlc3RfbWFzawk9IE9NQVAz NDMwX1NUX1BFUklQSF9DTEtfTUFTSywKLQkubWF4X211bHRpcGxpZXIgPSBPTUFQM19NQVhfRFBM TF9NVUxULAotCS5taW5fZGl2aWRlcgk9IDEsCi0JLm1heF9kaXZpZGVyCT0gT01BUDNfTUFYX0RQ TExfRElWLAotCS5yYXRlX3RvbGVyYW5jZSA9IERFRkFVTFRfRFBMTF9SQVRFX1RPTEVSQU5DRQot fTsKLQotc3RhdGljIHN0cnVjdCBjbGsgZHBsbDRfY2sgPSB7Ci0JLm5hbWUJCT0gImRwbGw0X2Nr IiwKLQkub3BzCQk9ICZjbGtvcHNfbm9uY29yZV9kcGxsX29wcywKLQkucGFyZW50CQk9ICZzeXNf Y2ssCi0JLmRwbGxfZGF0YQk9ICZkcGxsNF9kZCwKLQkucm91bmRfcmF0ZQk9ICZvbWFwMl9kcGxs X3JvdW5kX3JhdGUsCi0JLnNldF9yYXRlCT0gJm9tYXAzX2RwbGw0X3NldF9yYXRlLAotCS5jbGtk bV9uYW1lCT0gImRwbGw0X2Nsa2RtIiwKLQkucmVjYWxjCQk9ICZvbWFwM19kcGxsX3JlY2FsYywK LX07Ci0KLS8qCi0gKiBUaGlzIHZpcnR1YWwgY2xvY2sgcHJvdmlkZXMgdGhlIENMS09VVFgyIG91 dHB1dCBmcm9tIHRoZSBEUExMIGlmIHRoZQotICogRFBMTCBpc24ndCBieXBhc3NlZCAtLQotICog WFhYIGRvZXMgdGhpcyBzZXJ2ZSBhbnkgZG93bnN0cmVhbSBjbG9ja3M/Ci0gKi8KLXN0YXRpYyBz dHJ1Y3QgY2xrIGRwbGw0X3gyX2NrID0gewotCS5uYW1lCQk9ICJkcGxsNF94Ml9jayIsCi0JLm9w cwkJPSAmY2xrb3BzX251bGwsCi0JLnBhcmVudAkJPSAmZHBsbDRfY2ssCi0JLmNsa2RtX25hbWUJ PSAiZHBsbDRfY2xrZG0iLAotCS5yZWNhbGMJCT0gJm9tYXAzX2Nsa291dHgyX3JlY2FsYywKLX07 Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrc2VsIGRpdjE2X2RwbGw0X2Nsa3NlbFtdID0gewot CXsgLnBhcmVudCA9ICZkcGxsNF9jaywgLnJhdGVzID0gZGl2MTZfZHBsbF9yYXRlcyB9LAotCXsg LnBhcmVudCA9IE5VTEwgfQotfTsKLQotLyogVGhpcyB2aXJ0dWFsIGNsb2NrIGlzIHRoZSBzb3Vy Y2UgZm9yIGRwbGw0X20yeDJfY2sgKi8KLXN0YXRpYyBzdHJ1Y3QgY2xrIGRwbGw0X20yX2NrID0g ewotCS5uYW1lCQk9ICJkcGxsNF9tMl9jayIsCi0JLm9wcwkJPSAmY2xrb3BzX251bGwsCi0JLnBh cmVudAkJPSAmZHBsbDRfY2ssCi0JLmluaXQJCT0gJm9tYXAyX2luaXRfY2xrc2VsX3BhcmVudCwK LQkuY2xrc2VsX3JlZwk9IE9NQVBfQ01fUkVHQUREUihQTExfTU9ELCBPTUFQMzQzMF9DTV9DTEtT RUwzKSwKLQkuY2xrc2VsX21hc2sJPSBPTUFQMzQzMF9ESVZfOTZNX01BU0ssCi0JLmNsa3NlbAkJ PSBkaXYxNl9kcGxsNF9jbGtzZWwsCi0JLmNsa2RtX25hbWUJPSAiZHBsbDRfY2xrZG0iLAotCS5y ZWNhbGMJCT0gJm9tYXAyX2Nsa3NlbF9yZWNhbGMsCi19OwotCi0vKiBUaGUgUFdSRE4gYml0IGlz IGFwcGFyZW50bHkgb25seSBhdmFpbGFibGUgb24gMzQzMEVTMiBhbmQgYWJvdmUgKi8KLXN0YXRp YyBzdHJ1Y3QgY2xrIGRwbGw0X20yeDJfY2sgPSB7Ci0JLm5hbWUJCT0gImRwbGw0X20yeDJfY2si LAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9kZmx0X3dhaXQsCi0JLnBhcmVudAkJPSAmZHBsbDRf bTJfY2ssCi0JLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoUExMX01PRCwgQ01fQ0xLRU4p LAotCS5lbmFibGVfYml0CT0gT01BUDM0MzBfUFdSRE5fOTZNX1NISUZULAotCS5mbGFncwkJPSBJ TlZFUlRfRU5BQkxFLAotCS5jbGtkbV9uYW1lCT0gImRwbGw0X2Nsa2RtIiwKLQkucmVjYWxjCQk9 ICZvbWFwM19jbGtvdXR4Ml9yZWNhbGMsCi19OwotCi0vKgotICogRFBMTDQgZ2VuZXJhdGVzIERQ TEw0X00yWDJfQ0xLIHdoaWNoIGlzIHRoZW4gcm91dGVkIGludG8gdGhlIFBSTSBhcwotICogUFJN Xzk2TV9BTFdPTl8oRilDTEsuICBUd28gY2xvY2tzIHRoZW4gZW1lcmdlIGZyb20gdGhlIFBSTToK LSAqIDk2TV9BTFdPTl9GQ0xLIChjYWxsZWQgIm9tYXBfOTZtX2Fsd29uX2ZjayIgYmVsb3cpIGFu ZAotICogQ01fOTZLXyhGKUNMSy4KLSAqLwotc3RhdGljIHN0cnVjdCBjbGsgb21hcF85Nm1fYWx3 b25fZmNrID0gewotCS5uYW1lCQk9ICJvbWFwXzk2bV9hbHdvbl9mY2siLAotCS5vcHMJCT0gJmNs a29wc19udWxsLAotCS5wYXJlbnQJCT0gJmRwbGw0X20yeDJfY2ssCi0JLnJlY2FsYwkJPSAmZm9s bG93cGFyZW50X3JlY2FsYywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIGNtXzk2bV9mY2sgPSB7 Ci0JLm5hbWUJCT0gImNtXzk2bV9mY2siLAotCS5vcHMJCT0gJmNsa29wc19udWxsLAotCS5wYXJl bnQJCT0gJm9tYXBfOTZtX2Fsd29uX2ZjaywKLQkucmVjYWxjCQk9ICZmb2xsb3dwYXJlbnRfcmVj YWxjLAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtzZWxfcmF0ZSBvbWFwXzk2bV9kcGxs X3JhdGVzW10gPSB7Ci0JeyAuZGl2ID0gMSwgLnZhbCA9IDAsIC5mbGFncyA9IFJBVEVfSU5fMzQz WCB8IERFRkFVTFRfUkFURSB9LAotCXsgLmRpdiA9IDAgfQotfTsKLQotc3RhdGljIGNvbnN0IHN0 cnVjdCBjbGtzZWxfcmF0ZSBvbWFwXzk2bV9zeXNfcmF0ZXNbXSA9IHsKLQl7IC5kaXYgPSAxLCAu dmFsID0gMSwgLmZsYWdzID0gUkFURV9JTl8zNDNYIHwgREVGQVVMVF9SQVRFIH0sCi0JeyAuZGl2 ID0gMCB9Ci19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGNsa3NlbCBvbWFwXzk2bV9mY2tfY2xr c2VsW10gPSB7Ci0JeyAucGFyZW50ID0gJmNtXzk2bV9mY2ssIC5yYXRlcyA9IG9tYXBfOTZtX2Rw bGxfcmF0ZXMgfSwKLQl7IC5wYXJlbnQgPSAmc3lzX2NrLAkgLnJhdGVzID0gb21hcF85Nm1fc3lz X3JhdGVzIH0sCi0JeyAucGFyZW50ID0gTlVMTCB9Ci19OwotCi1zdGF0aWMgc3RydWN0IGNsayBv bWFwXzk2bV9mY2sgPSB7Ci0JLm5hbWUJCT0gIm9tYXBfOTZtX2ZjayIsCi0JLm9wcwkJPSAmY2xr b3BzX251bGwsCi0JLnBhcmVudAkJPSAmc3lzX2NrLAotCS5pbml0CQk9ICZvbWFwMl9pbml0X2Ns a3NlbF9wYXJlbnQsCi0JLmNsa3NlbF9yZWcJPSBPTUFQX0NNX1JFR0FERFIoUExMX01PRCwgQ01f Q0xLU0VMMSksCi0JLmNsa3NlbF9tYXNrCT0gT01BUDM0MzBfU09VUkNFXzk2TV9NQVNLLAotCS5j bGtzZWwJCT0gb21hcF85Nm1fZmNrX2Nsa3NlbCwKLQkucmVjYWxjCQk9ICZvbWFwMl9jbGtzZWxf cmVjYWxjLAotfTsKLQotLyogVGhpcyB2aXJ0dWFsIGNsb2NrIGlzIHRoZSBzb3VyY2UgZm9yIGRw bGw0X20zeDJfY2sgKi8KLXN0YXRpYyBzdHJ1Y3QgY2xrIGRwbGw0X20zX2NrID0gewotCS5uYW1l CQk9ICJkcGxsNF9tM19jayIsCi0JLm9wcwkJPSAmY2xrb3BzX251bGwsCi0JLnBhcmVudAkJPSAm ZHBsbDRfY2ssCi0JLmluaXQJCT0gJm9tYXAyX2luaXRfY2xrc2VsX3BhcmVudCwKLQkuY2xrc2Vs X3JlZwk9IE9NQVBfQ01fUkVHQUREUihPTUFQMzQzMF9EU1NfTU9ELCBDTV9DTEtTRUwpLAotCS5j bGtzZWxfbWFzawk9IE9NQVAzNDMwX0NMS1NFTF9UVl9NQVNLLAotCS5jbGtzZWwJCT0gZGl2MTZf ZHBsbDRfY2xrc2VsLAotCS5jbGtkbV9uYW1lCT0gImRwbGw0X2Nsa2RtIiwKLQkucmVjYWxjCQk9 ICZvbWFwMl9jbGtzZWxfcmVjYWxjLAotfTsKLQotLyogVGhlIFBXUkROIGJpdCBpcyBhcHBhcmVu dGx5IG9ubHkgYXZhaWxhYmxlIG9uIDM0MzBFUzIgYW5kIGFib3ZlICovCi1zdGF0aWMgc3RydWN0 IGNsayBkcGxsNF9tM3gyX2NrID0gewotCS5uYW1lCQk9ICJkcGxsNF9tM3gyX2NrIiwKLQkub3Bz CQk9ICZjbGtvcHNfb21hcDJfZGZsdF93YWl0LAotCS5wYXJlbnQJCT0gJmRwbGw0X20zX2NrLAot CS5pbml0CQk9ICZvbWFwMl9pbml0X2Nsa3NlbF9wYXJlbnQsCi0JLmVuYWJsZV9yZWcJPSBPTUFQ X0NNX1JFR0FERFIoUExMX01PRCwgQ01fQ0xLRU4pLAotCS5lbmFibGVfYml0CT0gT01BUDM0MzBf UFdSRE5fVFZfU0hJRlQsCi0JLmZsYWdzCQk9IElOVkVSVF9FTkFCTEUsCi0JLmNsa2RtX25hbWUJ PSAiZHBsbDRfY2xrZG0iLAotCS5yZWNhbGMJCT0gJm9tYXAzX2Nsa291dHgyX3JlY2FsYywKLX07 Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrc2VsX3JhdGUgb21hcF81NG1fZDRtM3gyX3JhdGVz W10gPSB7Ci0JeyAuZGl2ID0gMSwgLnZhbCA9IDAsIC5mbGFncyA9IFJBVEVfSU5fMzQzWCB8IERF RkFVTFRfUkFURSB9LAotCXsgLmRpdiA9IDAgfQotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBj bGtzZWxfcmF0ZSBvbWFwXzU0bV9hbHRfcmF0ZXNbXSA9IHsKLQl7IC5kaXYgPSAxLCAudmFsID0g MSwgLmZsYWdzID0gUkFURV9JTl8zNDNYIHwgREVGQVVMVF9SQVRFIH0sCi0JeyAuZGl2ID0gMCB9 Ci19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGNsa3NlbCBvbWFwXzU0bV9jbGtzZWxbXSA9IHsK LQl7IC5wYXJlbnQgPSAmZHBsbDRfbTN4Ml9jaywgLnJhdGVzID0gb21hcF81NG1fZDRtM3gyX3Jh dGVzIH0sCi0JeyAucGFyZW50ID0gJnN5c19hbHRjbGssICAgIC5yYXRlcyA9IG9tYXBfNTRtX2Fs dF9yYXRlcyB9LAotCXsgLnBhcmVudCA9IE5VTEwgfQotfTsKLQotc3RhdGljIHN0cnVjdCBjbGsg b21hcF81NG1fZmNrID0gewotCS5uYW1lCQk9ICJvbWFwXzU0bV9mY2siLAotCS5vcHMJCT0gJmNs a29wc19udWxsLAotCS5pbml0CQk9ICZvbWFwMl9pbml0X2Nsa3NlbF9wYXJlbnQsCi0JLmNsa3Nl bF9yZWcJPSBPTUFQX0NNX1JFR0FERFIoUExMX01PRCwgQ01fQ0xLU0VMMSksCi0JLmNsa3NlbF9t YXNrCT0gT01BUDM0MzBfU09VUkNFXzU0TV9NQVNLLAotCS5jbGtzZWwJCT0gb21hcF81NG1fY2xr c2VsLAotCS5yZWNhbGMJCT0gJm9tYXAyX2Nsa3NlbF9yZWNhbGMsCi19OwotCi1zdGF0aWMgY29u c3Qgc3RydWN0IGNsa3NlbF9yYXRlIG9tYXBfNDhtX2NtOTZtX3JhdGVzW10gPSB7Ci0JeyAuZGl2 ID0gMiwgLnZhbCA9IDAsIC5mbGFncyA9IFJBVEVfSU5fMzQzWCB8IERFRkFVTFRfUkFURSB9LAot CXsgLmRpdiA9IDAgfQotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtzZWxfcmF0ZSBvbWFw XzQ4bV9hbHRfcmF0ZXNbXSA9IHsKLQl7IC5kaXYgPSAxLCAudmFsID0gMSwgLmZsYWdzID0gUkFU RV9JTl8zNDNYIHwgREVGQVVMVF9SQVRFIH0sCi0JeyAuZGl2ID0gMCB9Ci19OwotCi1zdGF0aWMg Y29uc3Qgc3RydWN0IGNsa3NlbCBvbWFwXzQ4bV9jbGtzZWxbXSA9IHsKLQl7IC5wYXJlbnQgPSAm Y21fOTZtX2ZjaywgLnJhdGVzID0gb21hcF80OG1fY205Nm1fcmF0ZXMgfSwKLQl7IC5wYXJlbnQg PSAmc3lzX2FsdGNsaywgLnJhdGVzID0gb21hcF80OG1fYWx0X3JhdGVzIH0sCi0JeyAucGFyZW50 ID0gTlVMTCB9Ci19OwotCi1zdGF0aWMgc3RydWN0IGNsayBvbWFwXzQ4bV9mY2sgPSB7Ci0JLm5h bWUJCT0gIm9tYXBfNDhtX2ZjayIsCi0JLm9wcwkJPSAmY2xrb3BzX251bGwsCi0JLmluaXQJCT0g Jm9tYXAyX2luaXRfY2xrc2VsX3BhcmVudCwKLQkuY2xrc2VsX3JlZwk9IE9NQVBfQ01fUkVHQURE UihQTExfTU9ELCBDTV9DTEtTRUwxKSwKLQkuY2xrc2VsX21hc2sJPSBPTUFQMzQzMF9TT1VSQ0Vf NDhNX01BU0ssCi0JLmNsa3NlbAkJPSBvbWFwXzQ4bV9jbGtzZWwsCi0JLnJlY2FsYwkJPSAmb21h cDJfY2xrc2VsX3JlY2FsYywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIG9tYXBfMTJtX2ZjayA9 IHsKLQkubmFtZQkJPSAib21hcF8xMm1fZmNrIiwKLQkub3BzCQk9ICZjbGtvcHNfbnVsbCwKLQku cGFyZW50CQk9ICZvbWFwXzQ4bV9mY2ssCi0JLmZpeGVkX2Rpdgk9IDQsCi0JLnJlY2FsYwkJPSAm b21hcDJfZml4ZWRfZGl2aXNvcl9yZWNhbGMsCi19OwotCi0vKiBUaGlzIHZpcnN0dWFsIGNsb2Nr IGlzIHRoZSBzb3VyY2UgZm9yIGRwbGw0X200eDJfY2sgKi8KLXN0YXRpYyBzdHJ1Y3QgY2xrIGRw bGw0X200X2NrID0gewotCS5uYW1lCQk9ICJkcGxsNF9tNF9jayIsCi0JLm9wcwkJPSAmY2xrb3Bz X251bGwsCi0JLnBhcmVudAkJPSAmZHBsbDRfY2ssCi0JLmluaXQJCT0gJm9tYXAyX2luaXRfY2xr c2VsX3BhcmVudCwKLQkuY2xrc2VsX3JlZwk9IE9NQVBfQ01fUkVHQUREUihPTUFQMzQzMF9EU1Nf TU9ELCBDTV9DTEtTRUwpLAotCS5jbGtzZWxfbWFzawk9IE9NQVAzNDMwX0NMS1NFTF9EU1MxX01B U0ssCi0JLmNsa3NlbAkJPSBkaXYxNl9kcGxsNF9jbGtzZWwsCi0JLmNsa2RtX25hbWUJPSAiZHBs bDRfY2xrZG0iLAotCS5yZWNhbGMJCT0gJm9tYXAyX2Nsa3NlbF9yZWNhbGMsCi0JLnNldF9yYXRl CT0gJm9tYXAyX2Nsa3NlbF9zZXRfcmF0ZSwKLQkucm91bmRfcmF0ZQk9ICZvbWFwMl9jbGtzZWxf cm91bmRfcmF0ZSwKLX07Ci0KLS8qIFRoZSBQV1JETiBiaXQgaXMgYXBwYXJlbnRseSBvbmx5IGF2 YWlsYWJsZSBvbiAzNDMwRVMyIGFuZCBhYm92ZSAqLwotc3RhdGljIHN0cnVjdCBjbGsgZHBsbDRf bTR4Ml9jayA9IHsKLQkubmFtZQkJPSAiZHBsbDRfbTR4Ml9jayIsCi0JLm9wcwkJPSAmY2xrb3Bz X29tYXAyX2RmbHRfd2FpdCwKLQkucGFyZW50CQk9ICZkcGxsNF9tNF9jaywKLQkuZW5hYmxlX3Jl Zwk9IE9NQVBfQ01fUkVHQUREUihQTExfTU9ELCBDTV9DTEtFTiksCi0JLmVuYWJsZV9iaXQJPSBP TUFQMzQzMF9QV1JETl9DQU1fU0hJRlQsCi0JLmZsYWdzCQk9IElOVkVSVF9FTkFCTEUsCi0JLmNs a2RtX25hbWUJPSAiZHBsbDRfY2xrZG0iLAotCS5yZWNhbGMJCT0gJm9tYXAzX2Nsa291dHgyX3Jl Y2FsYywKLX07Ci0KLS8qIFRoaXMgdmlydHVhbCBjbG9jayBpcyB0aGUgc291cmNlIGZvciBkcGxs NF9tNXgyX2NrICovCi1zdGF0aWMgc3RydWN0IGNsayBkcGxsNF9tNV9jayA9IHsKLQkubmFtZQkJ PSAiZHBsbDRfbTVfY2siLAotCS5vcHMJCT0gJmNsa29wc19udWxsLAotCS5wYXJlbnQJCT0gJmRw bGw0X2NrLAotCS5pbml0CQk9ICZvbWFwMl9pbml0X2Nsa3NlbF9wYXJlbnQsCi0JLmNsa3NlbF9y ZWcJPSBPTUFQX0NNX1JFR0FERFIoT01BUDM0MzBfQ0FNX01PRCwgQ01fQ0xLU0VMKSwKLQkuY2xr c2VsX21hc2sJPSBPTUFQMzQzMF9DTEtTRUxfQ0FNX01BU0ssCi0JLmNsa3NlbAkJPSBkaXYxNl9k cGxsNF9jbGtzZWwsCi0JLmNsa2RtX25hbWUJPSAiZHBsbDRfY2xrZG0iLAotCS5yZWNhbGMJCT0g Jm9tYXAyX2Nsa3NlbF9yZWNhbGMsCi19OwotCi0vKiBUaGUgUFdSRE4gYml0IGlzIGFwcGFyZW50 bHkgb25seSBhdmFpbGFibGUgb24gMzQzMEVTMiBhbmQgYWJvdmUgKi8KLXN0YXRpYyBzdHJ1Y3Qg Y2xrIGRwbGw0X201eDJfY2sgPSB7Ci0JLm5hbWUJCT0gImRwbGw0X201eDJfY2siLAotCS5vcHMJ CT0gJmNsa29wc19vbWFwMl9kZmx0X3dhaXQsCi0JLnBhcmVudAkJPSAmZHBsbDRfbTVfY2ssCi0J LmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoUExMX01PRCwgQ01fQ0xLRU4pLAotCS5lbmFi bGVfYml0CT0gT01BUDM0MzBfUFdSRE5fQ0FNX1NISUZULAotCS5mbGFncwkJPSBJTlZFUlRfRU5B QkxFLAotCS5jbGtkbV9uYW1lCT0gImRwbGw0X2Nsa2RtIiwKLQkucmVjYWxjCQk9ICZvbWFwM19j bGtvdXR4Ml9yZWNhbGMsCi19OwotCi0vKiBUaGlzIHZpcnR1YWwgY2xvY2sgaXMgdGhlIHNvdXJj ZSBmb3IgZHBsbDRfbTZ4Ml9jayAqLwotc3RhdGljIHN0cnVjdCBjbGsgZHBsbDRfbTZfY2sgPSB7 Ci0JLm5hbWUJCT0gImRwbGw0X202X2NrIiwKLQkub3BzCQk9ICZjbGtvcHNfbnVsbCwKLQkucGFy ZW50CQk9ICZkcGxsNF9jaywKLQkuaW5pdAkJPSAmb21hcDJfaW5pdF9jbGtzZWxfcGFyZW50LAot CS5jbGtzZWxfcmVnCT0gT01BUF9DTV9SRUdBRERSKE9NQVAzNDMwX0VNVV9NT0QsIENNX0NMS1NF TDEpLAotCS5jbGtzZWxfbWFzawk9IE9NQVAzNDMwX0RJVl9EUExMNF9NQVNLLAotCS5jbGtzZWwJ CT0gZGl2MTZfZHBsbDRfY2xrc2VsLAotCS5jbGtkbV9uYW1lCT0gImRwbGw0X2Nsa2RtIiwKLQku cmVjYWxjCQk9ICZvbWFwMl9jbGtzZWxfcmVjYWxjLAotfTsKLQotLyogVGhlIFBXUkROIGJpdCBp cyBhcHBhcmVudGx5IG9ubHkgYXZhaWxhYmxlIG9uIDM0MzBFUzIgYW5kIGFib3ZlICovCi1zdGF0 aWMgc3RydWN0IGNsayBkcGxsNF9tNngyX2NrID0gewotCS5uYW1lCQk9ICJkcGxsNF9tNngyX2Nr IiwKLQkub3BzCQk9ICZjbGtvcHNfb21hcDJfZGZsdF93YWl0LAotCS5wYXJlbnQJCT0gJmRwbGw0 X202X2NrLAotCS5pbml0CQk9ICZvbWFwMl9pbml0X2Nsa3NlbF9wYXJlbnQsCi0JLmVuYWJsZV9y ZWcJPSBPTUFQX0NNX1JFR0FERFIoUExMX01PRCwgQ01fQ0xLRU4pLAotCS5lbmFibGVfYml0CT0g T01BUDM0MzBfUFdSRE5fRU1VX1BFUklQSF9TSElGVCwKLQkuZmxhZ3MJCT0gSU5WRVJUX0VOQUJM RSwKLQkuY2xrZG1fbmFtZQk9ICJkcGxsNF9jbGtkbSIsCi0JLnJlY2FsYwkJPSAmb21hcDNfY2xr b3V0eDJfcmVjYWxjLAotfTsKLQotc3RhdGljIHN0cnVjdCBjbGsgZW11X3Blcl9hbHdvbl9jayA9 IHsKLQkubmFtZQkJPSAiZW11X3Blcl9hbHdvbl9jayIsCi0JLm9wcwkJPSAmY2xrb3BzX251bGws Ci0JLnBhcmVudAkJPSAmZHBsbDRfbTZ4Ml9jaywKLQkuY2xrZG1fbmFtZQk9ICJkcGxsNF9jbGtk bSIsCi0JLnJlY2FsYwkJPSAmZm9sbG93cGFyZW50X3JlY2FsYywKLX07Ci0KLS8qIERQTEw1ICov Ci0vKiBTdXBwbGllcyAxMjBNSHogY2xvY2ssIFVTSU0gc291cmNlIGNsb2NrICovCi0vKiBUeXBl OiBEUExMICovCi0vKiAzNDMwRVMyIG9ubHkgKi8KLXN0YXRpYyBzdHJ1Y3QgZHBsbF9kYXRhIGRw bGw1X2RkID0gewotCS5tdWx0X2RpdjFfcmVnCT0gT01BUF9DTV9SRUdBRERSKFBMTF9NT0QsIE9N QVAzNDMwRVMyX0NNX0NMS1NFTDQpLAotCS5tdWx0X21hc2sJPSBPTUFQMzQzMEVTMl9QRVJJUEgy X0RQTExfTVVMVF9NQVNLLAotCS5kaXYxX21hc2sJPSBPTUFQMzQzMEVTMl9QRVJJUEgyX0RQTExf RElWX01BU0ssCi0JLmNsa19ieXBhc3MJPSAmc3lzX2NrLAotCS5jbGtfcmVmCT0gJnN5c19jaywK LQkuZnJlcXNlbF9tYXNrCT0gT01BUDM0MzBFUzJfUEVSSVBIMl9EUExMX0ZSRVFTRUxfTUFTSywK LQkuY29udHJvbF9yZWcJPSBPTUFQX0NNX1JFR0FERFIoUExMX01PRCwgT01BUDM0MzBFUzJfQ01f Q0xLRU4yKSwKLQkuZW5hYmxlX21hc2sJPSBPTUFQMzQzMEVTMl9FTl9QRVJJUEgyX0RQTExfTUFT SywKLQkubW9kZXMJCT0gKDEgPDwgRFBMTF9MT1dfUE9XRVJfU1RPUCkgfCAoMSA8PCBEUExMX0xP Q0tFRCksCi0JLmF1dG9fcmVjYWxfYml0CT0gT01BUDM0MzBFUzJfRU5fUEVSSVBIMl9EUExMX0RS SUZUR1VBUkRfU0hJRlQsCi0JLnJlY2FsX2VuX2JpdAk9IE9NQVAzNDMwRVMyX1NORF9QRVJJUEhf RFBMTF9SRUNBTF9FTl9TSElGVCwKLQkucmVjYWxfc3RfYml0CT0gT01BUDM0MzBFUzJfU05EX1BF UklQSF9EUExMX1NUX1NISUZULAotCS5hdXRvaWRsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoUExM X01PRCwgT01BUDM0MzBFUzJfQ01fQVVUT0lETEUyX1BMTCksCi0JLmF1dG9pZGxlX21hc2sJPSBP TUFQMzQzMEVTMl9BVVRPX1BFUklQSDJfRFBMTF9NQVNLLAotCS5pZGxlc3RfcmVnCT0gT01BUF9D TV9SRUdBRERSKFBMTF9NT0QsIENNX0lETEVTVDIpLAotCS5pZGxlc3RfbWFzawk9IE9NQVAzNDMw RVMyX1NUX1BFUklQSDJfQ0xLX01BU0ssCi0JLm1heF9tdWx0aXBsaWVyID0gT01BUDNfTUFYX0RQ TExfTVVMVCwKLQkubWluX2RpdmlkZXIJPSAxLAotCS5tYXhfZGl2aWRlcgk9IE9NQVAzX01BWF9E UExMX0RJViwKLQkucmF0ZV90b2xlcmFuY2UgPSBERUZBVUxUX0RQTExfUkFURV9UT0xFUkFOQ0UK LX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIGRwbGw1X2NrID0gewotCS5uYW1lCQk9ICJkcGxsNV9j ayIsCi0JLm9wcwkJPSAmY2xrb3BzX25vbmNvcmVfZHBsbF9vcHMsCi0JLnBhcmVudAkJPSAmc3lz X2NrLAotCS5kcGxsX2RhdGEJPSAmZHBsbDVfZGQsCi0JLnJvdW5kX3JhdGUJPSAmb21hcDJfZHBs bF9yb3VuZF9yYXRlLAotCS5zZXRfcmF0ZQk9ICZvbWFwM19ub25jb3JlX2RwbGxfc2V0X3JhdGUs Ci0JLmNsa2RtX25hbWUJPSAiZHBsbDVfY2xrZG0iLAotCS5yZWNhbGMJCT0gJm9tYXAzX2RwbGxf cmVjYWxjLAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtzZWwgZGl2MTZfZHBsbDVfY2xr c2VsW10gPSB7Ci0JeyAucGFyZW50ID0gJmRwbGw1X2NrLCAucmF0ZXMgPSBkaXYxNl9kcGxsX3Jh dGVzIH0sCi0JeyAucGFyZW50ID0gTlVMTCB9Ci19OwotCi1zdGF0aWMgc3RydWN0IGNsayBkcGxs NV9tMl9jayA9IHsKLQkubmFtZQkJPSAiZHBsbDVfbTJfY2siLAotCS5vcHMJCT0gJmNsa29wc19u dWxsLAotCS5wYXJlbnQJCT0gJmRwbGw1X2NrLAotCS5pbml0CQk9ICZvbWFwMl9pbml0X2Nsa3Nl bF9wYXJlbnQsCi0JLmNsa3NlbF9yZWcJPSBPTUFQX0NNX1JFR0FERFIoUExMX01PRCwgT01BUDM0 MzBFUzJfQ01fQ0xLU0VMNSksCi0JLmNsa3NlbF9tYXNrCT0gT01BUDM0MzBFUzJfRElWXzEyME1f TUFTSywKLQkuY2xrc2VsCQk9IGRpdjE2X2RwbGw1X2Nsa3NlbCwKLQkuY2xrZG1fbmFtZQk9ICJk cGxsNV9jbGtkbSIsCi0JLnJlY2FsYwkJPSAmb21hcDJfY2xrc2VsX3JlY2FsYywKLX07Ci0KLS8q IENNIEVYVEVSTkFMIENMT0NLIE9VVFBVVFMgKi8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtz ZWxfcmF0ZSBjbGtvdXQyX3NyY19jb3JlX3JhdGVzW10gPSB7Ci0JeyAuZGl2ID0gMSwgLnZhbCA9 IDAsIC5mbGFncyA9IFJBVEVfSU5fMzQzWCB8IERFRkFVTFRfUkFURSB9LAotCXsgLmRpdiA9IDAg fQotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtzZWxfcmF0ZSBjbGtvdXQyX3NyY19zeXNf cmF0ZXNbXSA9IHsKLQl7IC5kaXYgPSAxLCAudmFsID0gMSwgLmZsYWdzID0gUkFURV9JTl8zNDNY IHwgREVGQVVMVF9SQVRFIH0sCi0JeyAuZGl2ID0gMCB9Ci19OwotCi1zdGF0aWMgY29uc3Qgc3Ry dWN0IGNsa3NlbF9yYXRlIGNsa291dDJfc3JjXzk2bV9yYXRlc1tdID0gewotCXsgLmRpdiA9IDEs IC52YWwgPSAyLCAuZmxhZ3MgPSBSQVRFX0lOXzM0M1ggfCBERUZBVUxUX1JBVEUgfSwKLQl7IC5k aXYgPSAwIH0KLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrc2VsX3JhdGUgY2xrb3V0Ml9z cmNfNTRtX3JhdGVzW10gPSB7Ci0JeyAuZGl2ID0gMSwgLnZhbCA9IDMsIC5mbGFncyA9IFJBVEVf SU5fMzQzWCB8IERFRkFVTFRfUkFURSB9LAotCXsgLmRpdiA9IDAgfQotfTsKLQotc3RhdGljIGNv bnN0IHN0cnVjdCBjbGtzZWwgY2xrb3V0Ml9zcmNfY2xrc2VsW10gPSB7Ci0JeyAucGFyZW50ID0g JmNvcmVfY2ssCQkucmF0ZXMgPSBjbGtvdXQyX3NyY19jb3JlX3JhdGVzIH0sCi0JeyAucGFyZW50 ID0gJnN5c19jaywJCS5yYXRlcyA9IGNsa291dDJfc3JjX3N5c19yYXRlcyB9LAotCXsgLnBhcmVu dCA9ICZjbV85Nm1fZmNrLAkucmF0ZXMgPSBjbGtvdXQyX3NyY185Nm1fcmF0ZXMgfSwKLQl7IC5w YXJlbnQgPSAmb21hcF81NG1fZmNrLAkucmF0ZXMgPSBjbGtvdXQyX3NyY181NG1fcmF0ZXMgfSwK LQl7IC5wYXJlbnQgPSBOVUxMIH0KLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIGNsa291dDJfc3Jj X2NrID0gewotCS5uYW1lCQk9ICJjbGtvdXQyX3NyY19jayIsCi0JLm9wcwkJPSAmY2xrb3BzX29t YXAyX2RmbHQsCi0JLmluaXQJCT0gJm9tYXAyX2luaXRfY2xrc2VsX3BhcmVudCwKLQkuZW5hYmxl X3JlZwk9IE9NQVAzNDMwX0NNX0NMS09VVF9DVFJMLAotCS5lbmFibGVfYml0CT0gT01BUDM0MzBf Q0xLT1VUMl9FTl9TSElGVCwKLQkuY2xrc2VsX3JlZwk9IE9NQVAzNDMwX0NNX0NMS09VVF9DVFJM LAotCS5jbGtzZWxfbWFzawk9IE9NQVAzNDMwX0NMS09VVDJTT1VSQ0VfTUFTSywKLQkuY2xrc2Vs CQk9IGNsa291dDJfc3JjX2Nsa3NlbCwKLQkuY2xrZG1fbmFtZQk9ICJjb3JlX2Nsa2RtIiwKLQku cmVjYWxjCQk9ICZvbWFwMl9jbGtzZWxfcmVjYWxjLAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVj dCBjbGtzZWxfcmF0ZSBzeXNfY2xrb3V0Ml9yYXRlc1tdID0gewotCXsgLmRpdiA9IDEsIC52YWwg PSAwLCAuZmxhZ3MgPSBSQVRFX0lOXzM0M1ggfCBERUZBVUxUX1JBVEUgfSwKLQl7IC5kaXYgPSAy LCAudmFsID0gMSwgLmZsYWdzID0gUkFURV9JTl8zNDNYIH0sCi0JeyAuZGl2ID0gNCwgLnZhbCA9 IDIsIC5mbGFncyA9IFJBVEVfSU5fMzQzWCB9LAotCXsgLmRpdiA9IDgsIC52YWwgPSAzLCAuZmxh Z3MgPSBSQVRFX0lOXzM0M1ggfSwKLQl7IC5kaXYgPSAxNiwgLnZhbCA9IDQsIC5mbGFncyA9IFJB VEVfSU5fMzQzWCB9LAotCXsgLmRpdiA9IDAgfSwKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3Qg Y2xrc2VsIHN5c19jbGtvdXQyX2Nsa3NlbFtdID0gewotCXsgLnBhcmVudCA9ICZjbGtvdXQyX3Ny Y19jaywgLnJhdGVzID0gc3lzX2Nsa291dDJfcmF0ZXMgfSwKLQl7IC5wYXJlbnQgPSBOVUxMIH0s Ci19OwotCi1zdGF0aWMgc3RydWN0IGNsayBzeXNfY2xrb3V0MiA9IHsKLQkubmFtZQkJPSAic3lz X2Nsa291dDIiLAotCS5vcHMJCT0gJmNsa29wc19udWxsLAotCS5pbml0CQk9ICZvbWFwMl9pbml0 X2Nsa3NlbF9wYXJlbnQsCi0JLmNsa3NlbF9yZWcJPSBPTUFQMzQzMF9DTV9DTEtPVVRfQ1RSTCwK LQkuY2xrc2VsX21hc2sJPSBPTUFQMzQzMF9DTEtPVVQyX0RJVl9NQVNLLAotCS5jbGtzZWwJCT0g c3lzX2Nsa291dDJfY2xrc2VsLAotCS5yZWNhbGMJCT0gJm9tYXAyX2Nsa3NlbF9yZWNhbGMsCi19 OwotCi0vKiBDTSBPVVRQVVQgQ0xPQ0tTICovCi0KLXN0YXRpYyBzdHJ1Y3QgY2xrIGNvcmV4Ml9m Y2sgPSB7Ci0JLm5hbWUJCT0gImNvcmV4Ml9mY2siLAotCS5vcHMJCT0gJmNsa29wc19udWxsLAot CS5wYXJlbnQJCT0gJmRwbGwzX20yeDJfY2ssCi0JLnJlY2FsYwkJPSAmZm9sbG93cGFyZW50X3Jl Y2FsYywKLX07Ci0KLS8qIERQTEwgcG93ZXIgZG9tYWluIGNsb2NrIGNvbnRyb2xzICovCi0KLXN0 YXRpYyBjb25zdCBzdHJ1Y3QgY2xrc2VsX3JhdGUgZGl2NF9yYXRlc1tdID0gewotCXsgLmRpdiA9 IDEsIC52YWwgPSAxLCAuZmxhZ3MgPSBSQVRFX0lOXzM0M1ggfCBERUZBVUxUX1JBVEUgfSwKLQl7 IC5kaXYgPSAyLCAudmFsID0gMiwgLmZsYWdzID0gUkFURV9JTl8zNDNYIH0sCi0JeyAuZGl2ID0g NCwgLnZhbCA9IDQsIC5mbGFncyA9IFJBVEVfSU5fMzQzWCB9LAotCXsgLmRpdiA9IDAgfQotfTsK LQotc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtzZWwgZGl2NF9jb3JlX2Nsa3NlbFtdID0gewotCXsg LnBhcmVudCA9ICZjb3JlX2NrLCAucmF0ZXMgPSBkaXY0X3JhdGVzIH0sCi0JeyAucGFyZW50ID0g TlVMTCB9Ci19OwotCi0vKgotICogUkVWSVNJVDogQXJlIHRoZXNlIGluIERQTEwgcG93ZXIgZG9t YWluIG9yIENNIHBvd2VyIGRvbWFpbj8gZG9jcwotICogbWF5IGJlIGluY29uc2lzdGVudCBoZXJl PwotICovCi1zdGF0aWMgc3RydWN0IGNsayBkcGxsMV9mY2sgPSB7Ci0JLm5hbWUJCT0gImRwbGwx X2ZjayIsCi0JLm9wcwkJPSAmY2xrb3BzX251bGwsCi0JLnBhcmVudAkJPSAmY29yZV9jaywKLQku aW5pdAkJPSAmb21hcDJfaW5pdF9jbGtzZWxfcGFyZW50LAotCS5jbGtzZWxfcmVnCT0gT01BUF9D TV9SRUdBRERSKE1QVV9NT0QsIE9NQVAzNDMwX0NNX0NMS1NFTDFfUExMKSwKLQkuY2xrc2VsX21h c2sJPSBPTUFQMzQzMF9NUFVfQ0xLX1NSQ19NQVNLLAotCS5jbGtzZWwJCT0gZGl2NF9jb3JlX2Ns a3NlbCwKLQkucmVjYWxjCQk9ICZvbWFwMl9jbGtzZWxfcmVjYWxjLAotfTsKLQotc3RhdGljIHN0 cnVjdCBjbGsgbXB1X2NrID0gewotCS5uYW1lCQk9ICJtcHVfY2siLAotCS5vcHMJCT0gJmNsa29w c19udWxsLAotCS5wYXJlbnQJCT0gJmRwbGwxX3gybTJfY2ssCi0JLmNsa2RtX25hbWUJPSAibXB1 X2Nsa2RtIiwKLQkucmVjYWxjCQk9ICZmb2xsb3dwYXJlbnRfcmVjYWxjLAotfTsKLQotLyogYXJt X2ZjayBpcyBkaXZpZGVkIGJ5IHR3byB3aGVuIERQTEwxIGxvY2tlZDsgb3RoZXJ3aXNlLCBwYXNz dGhyb3VnaCBtcHVfY2sgKi8KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrc2VsX3JhdGUgYXJtX2Zj a19yYXRlc1tdID0gewotCXsgLmRpdiA9IDEsIC52YWwgPSAwLCAuZmxhZ3MgPSBSQVRFX0lOXzM0 M1ggfCBERUZBVUxUX1JBVEUgfSwKLQl7IC5kaXYgPSAyLCAudmFsID0gMSwgLmZsYWdzID0gUkFU RV9JTl8zNDNYIH0sCi0JeyAuZGl2ID0gMCB9LAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBj bGtzZWwgYXJtX2Zja19jbGtzZWxbXSA9IHsKLQl7IC5wYXJlbnQgPSAmbXB1X2NrLCAucmF0ZXMg PSBhcm1fZmNrX3JhdGVzIH0sCi0JeyAucGFyZW50ID0gTlVMTCB9Ci19OwotCi1zdGF0aWMgc3Ry dWN0IGNsayBhcm1fZmNrID0gewotCS5uYW1lCQk9ICJhcm1fZmNrIiwKLQkub3BzCQk9ICZjbGtv cHNfbnVsbCwKLQkucGFyZW50CQk9ICZtcHVfY2ssCi0JLmluaXQJCT0gJm9tYXAyX2luaXRfY2xr c2VsX3BhcmVudCwKLQkuY2xrc2VsX3JlZwk9IE9NQVBfQ01fUkVHQUREUihNUFVfTU9ELCBPTUFQ MzQzMF9DTV9JRExFU1RfUExMKSwKLQkuY2xrc2VsX21hc2sJPSBPTUFQMzQzMF9TVF9NUFVfQ0xL X01BU0ssCi0JLmNsa3NlbAkJPSBhcm1fZmNrX2Nsa3NlbCwKLQkuY2xrZG1fbmFtZQk9ICJtcHVf Y2xrZG0iLAotCS5yZWNhbGMJCT0gJm9tYXAyX2Nsa3NlbF9yZWNhbGMsCi19OwotCi0vKiBYWFgg V2hhdCBhYm91dCBuZW9uX2Nsa2RtID8gKi8KLQotLyoKLSAqIFJFVklTSVQ6IFRoaXMgY2xvY2sg aXMgbmV2ZXIgc3BlY2lmaWNhbGx5IGRlZmluZWQgaW4gdGhlIDM0MzAgVFJNLAotICogYWx0aG91 Z2ggaXQgaXMgcmVmZXJlbmNlZCAtIHNvIHRoaXMgaXMgYSBndWVzcwotICovCi1zdGF0aWMgc3Ry dWN0IGNsayBlbXVfbXB1X2Fsd29uX2NrID0gewotCS5uYW1lCQk9ICJlbXVfbXB1X2Fsd29uX2Nr IiwKLQkub3BzCQk9ICZjbGtvcHNfbnVsbCwKLQkucGFyZW50CQk9ICZtcHVfY2ssCi0JLnJlY2Fs YwkJPSAmZm9sbG93cGFyZW50X3JlY2FsYywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIGRwbGwy X2ZjayA9IHsKLQkubmFtZQkJPSAiZHBsbDJfZmNrIiwKLQkub3BzCQk9ICZjbGtvcHNfbnVsbCwK LQkucGFyZW50CQk9ICZjb3JlX2NrLAotCS5pbml0CQk9ICZvbWFwMl9pbml0X2Nsa3NlbF9wYXJl bnQsCi0JLmNsa3NlbF9yZWcJPSBPTUFQX0NNX1JFR0FERFIoT01BUDM0MzBfSVZBMl9NT0QsIE9N QVAzNDMwX0NNX0NMS1NFTDFfUExMKSwKLQkuY2xrc2VsX21hc2sJPSBPTUFQMzQzMF9JVkEyX0NM S19TUkNfTUFTSywKLQkuY2xrc2VsCQk9IGRpdjRfY29yZV9jbGtzZWwsCi0JLnJlY2FsYwkJPSAm b21hcDJfY2xrc2VsX3JlY2FsYywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIGl2YTJfY2sgPSB7 Ci0JLm5hbWUJCT0gIml2YTJfY2siLAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9kZmx0X3dhaXQs Ci0JLnBhcmVudAkJPSAmZHBsbDJfbTJfY2ssCi0JLmluaXQJCT0gJm9tYXAyX2luaXRfY2xrc2Vs X3BhcmVudCwKLQkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihPTUFQMzQzMF9JVkEyX01P RCwgQ01fRkNMS0VOKSwKLQkuZW5hYmxlX2JpdAk9IE9NQVAzNDMwX0NNX0ZDTEtFTl9JVkEyX0VO X0lWQTJfU0hJRlQsCi0JLmNsa2RtX25hbWUJPSAiaXZhMl9jbGtkbSIsCi0JLnJlY2FsYwkJPSAm Zm9sbG93cGFyZW50X3JlY2FsYywKLX07Ci0KLS8qIENvbW1vbiBpbnRlcmZhY2UgY2xvY2tzICov Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrc2VsIGRpdjJfY29yZV9jbGtzZWxbXSA9IHsKLQl7 IC5wYXJlbnQgPSAmY29yZV9jaywgLnJhdGVzID0gZGl2Ml9yYXRlcyB9LAotCXsgLnBhcmVudCA9 IE5VTEwgfQotfTsKLQotc3RhdGljIHN0cnVjdCBjbGsgbDNfaWNrID0gewotCS5uYW1lCQk9ICJs M19pY2siLAotCS5vcHMJCT0gJmNsa29wc19udWxsLAotCS5wYXJlbnQJCT0gJmNvcmVfY2ssCi0J LmluaXQJCT0gJm9tYXAyX2luaXRfY2xrc2VsX3BhcmVudCwKLQkuY2xrc2VsX3JlZwk9IE9NQVBf Q01fUkVHQUREUihDT1JFX01PRCwgQ01fQ0xLU0VMKSwKLQkuY2xrc2VsX21hc2sJPSBPTUFQMzQz MF9DTEtTRUxfTDNfTUFTSywKLQkuY2xrc2VsCQk9IGRpdjJfY29yZV9jbGtzZWwsCi0JLmNsa2Rt X25hbWUJPSAiY29yZV9sM19jbGtkbSIsCi0JLnJlY2FsYwkJPSAmb21hcDJfY2xrc2VsX3JlY2Fs YywKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrc2VsIGRpdjJfbDNfY2xrc2VsW10gPSB7 Ci0JeyAucGFyZW50ID0gJmwzX2ljaywgLnJhdGVzID0gZGl2Ml9yYXRlcyB9LAotCXsgLnBhcmVu dCA9IE5VTEwgfQotfTsKLQotc3RhdGljIHN0cnVjdCBjbGsgbDRfaWNrID0gewotCS5uYW1lCQk9 ICJsNF9pY2siLAotCS5vcHMJCT0gJmNsa29wc19udWxsLAotCS5wYXJlbnQJCT0gJmwzX2ljaywK LQkuaW5pdAkJPSAmb21hcDJfaW5pdF9jbGtzZWxfcGFyZW50LAotCS5jbGtzZWxfcmVnCT0gT01B UF9DTV9SRUdBRERSKENPUkVfTU9ELCBDTV9DTEtTRUwpLAotCS5jbGtzZWxfbWFzawk9IE9NQVAz NDMwX0NMS1NFTF9MNF9NQVNLLAotCS5jbGtzZWwJCT0gZGl2Ml9sM19jbGtzZWwsCi0JLmNsa2Rt X25hbWUJPSAiY29yZV9sNF9jbGtkbSIsCi0JLnJlY2FsYwkJPSAmb21hcDJfY2xrc2VsX3JlY2Fs YywKLQotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtzZWwgZGl2Ml9sNF9jbGtzZWxbXSA9 IHsKLQl7IC5wYXJlbnQgPSAmbDRfaWNrLCAucmF0ZXMgPSBkaXYyX3JhdGVzIH0sCi0JeyAucGFy ZW50ID0gTlVMTCB9Ci19OwotCi1zdGF0aWMgc3RydWN0IGNsayBybV9pY2sgPSB7Ci0JLm5hbWUJ CT0gInJtX2ljayIsCi0JLm9wcwkJPSAmY2xrb3BzX251bGwsCi0JLnBhcmVudAkJPSAmbDRfaWNr LAotCS5pbml0CQk9ICZvbWFwMl9pbml0X2Nsa3NlbF9wYXJlbnQsCi0JLmNsa3NlbF9yZWcJPSBP TUFQX0NNX1JFR0FERFIoV0tVUF9NT0QsIENNX0NMS1NFTCksCi0JLmNsa3NlbF9tYXNrCT0gT01B UDM0MzBfQ0xLU0VMX1JNX01BU0ssCi0JLmNsa3NlbAkJPSBkaXYyX2w0X2Nsa3NlbCwKLQkucmVj YWxjCQk9ICZvbWFwMl9jbGtzZWxfcmVjYWxjLAotfTsKLQotLyogR0ZYIHBvd2VyIGRvbWFpbiAq LwotCi0vKiBHRlggY2xvY2tzIGFyZSBpbiAzNDMwRVMxIG9ubHkuIDM0MzBFUzIgYW5kIGxhdGVy IHVzZXMgdGhlIFNHWCBpbnN0ZWFkICovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrc2VsIGdm eF9sM19jbGtzZWxbXSA9IHsKLQl7IC5wYXJlbnQgPSAmbDNfaWNrLCAucmF0ZXMgPSBnZnhfbDNf cmF0ZXMgfSwKLQl7IC5wYXJlbnQgPSBOVUxMIH0KLX07Ci0KLS8qIFZpcnR1YWwgcGFyZW50IGNs b2NrIGZvciBnZnhfbDNfaWNrIGFuZCBnZnhfbDNfZmNrICovCi1zdGF0aWMgc3RydWN0IGNsayBn ZnhfbDNfY2sgPSB7Ci0JLm5hbWUJCT0gImdmeF9sM19jayIsCi0JLm9wcwkJPSAmY2xrb3BzX29t YXAyX2RmbHRfd2FpdCwKLQkucGFyZW50CQk9ICZsM19pY2ssCi0JLmluaXQJCT0gJm9tYXAyX2lu aXRfY2xrc2VsX3BhcmVudCwKLQkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihHRlhfTU9E LCBDTV9JQ0xLRU4pLAotCS5lbmFibGVfYml0CT0gT01BUF9FTl9HRlhfU0hJRlQsCi0JLnJlY2Fs YwkJPSAmZm9sbG93cGFyZW50X3JlY2FsYywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIGdmeF9s M19mY2sgPSB7Ci0JLm5hbWUJCT0gImdmeF9sM19mY2siLAotCS5vcHMJCT0gJmNsa29wc19udWxs LAotCS5wYXJlbnQJCT0gJmdmeF9sM19jaywKLQkuaW5pdAkJPSAmb21hcDJfaW5pdF9jbGtzZWxf cGFyZW50LAotCS5jbGtzZWxfcmVnCT0gT01BUF9DTV9SRUdBRERSKEdGWF9NT0QsIENNX0NMS1NF TCksCi0JLmNsa3NlbF9tYXNrCT0gT01BUF9DTEtTRUxfR0ZYX01BU0ssCi0JLmNsa3NlbAkJPSBn ZnhfbDNfY2xrc2VsLAotCS5jbGtkbV9uYW1lCT0gImdmeF8zNDMwZXMxX2Nsa2RtIiwKLQkucmVj YWxjCQk9ICZvbWFwMl9jbGtzZWxfcmVjYWxjLAotfTsKLQotc3RhdGljIHN0cnVjdCBjbGsgZ2Z4 X2wzX2ljayA9IHsKLQkubmFtZQkJPSAiZ2Z4X2wzX2ljayIsCi0JLm9wcwkJPSAmY2xrb3BzX251 bGwsCi0JLnBhcmVudAkJPSAmZ2Z4X2wzX2NrLAotCS5jbGtkbV9uYW1lCT0gImdmeF8zNDMwZXMx X2Nsa2RtIiwKLQkucmVjYWxjCQk9ICZmb2xsb3dwYXJlbnRfcmVjYWxjLAotfTsKLQotc3RhdGlj IHN0cnVjdCBjbGsgZ2Z4X2NnMV9jayA9IHsKLQkubmFtZQkJPSAiZ2Z4X2NnMV9jayIsCi0JLm9w cwkJPSAmY2xrb3BzX29tYXAyX2RmbHRfd2FpdCwKLQkucGFyZW50CQk9ICZnZnhfbDNfZmNrLCAv KiBSRVZJU0lUOiBjb3JyZWN0PyAqLwotCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKEdG WF9NT0QsIENNX0ZDTEtFTiksCi0JLmVuYWJsZV9iaXQJPSBPTUFQMzQzMEVTMV9FTl8yRF9TSElG VCwKLQkuY2xrZG1fbmFtZQk9ICJnZnhfMzQzMGVzMV9jbGtkbSIsCi0JLnJlY2FsYwkJPSAmZm9s bG93cGFyZW50X3JlY2FsYywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIGdmeF9jZzJfY2sgPSB7 Ci0JLm5hbWUJCT0gImdmeF9jZzJfY2siLAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9kZmx0X3dh aXQsCi0JLnBhcmVudAkJPSAmZ2Z4X2wzX2ZjaywgLyogUkVWSVNJVDogY29ycmVjdD8gKi8KLQku ZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihHRlhfTU9ELCBDTV9GQ0xLRU4pLAotCS5lbmFi bGVfYml0CT0gT01BUDM0MzBFUzFfRU5fM0RfU0hJRlQsCi0JLmNsa2RtX25hbWUJPSAiZ2Z4XzM0 MzBlczFfY2xrZG0iLAotCS5yZWNhbGMJCT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19OwotCi0v KiBTR1ggcG93ZXIgZG9tYWluIC0gMzQzMEVTMiBvbmx5ICovCi0KLXN0YXRpYyBjb25zdCBzdHJ1 Y3QgY2xrc2VsX3JhdGUgc2d4X2NvcmVfcmF0ZXNbXSA9IHsKLQl7IC5kaXYgPSAzLCAudmFsID0g MCwgLmZsYWdzID0gUkFURV9JTl8zNDNYIHwgREVGQVVMVF9SQVRFIH0sCi0JeyAuZGl2ID0gNCwg LnZhbCA9IDEsIC5mbGFncyA9IFJBVEVfSU5fMzQzWCB9LAotCXsgLmRpdiA9IDYsIC52YWwgPSAy LCAuZmxhZ3MgPSBSQVRFX0lOXzM0M1ggfSwKLQl7IC5kaXYgPSAwIH0sCi19OwotCi1zdGF0aWMg Y29uc3Qgc3RydWN0IGNsa3NlbF9yYXRlIHNneF85Nm1fcmF0ZXNbXSA9IHsKLQl7IC5kaXYgPSAx LCAgLnZhbCA9IDMsIC5mbGFncyA9IFJBVEVfSU5fMzQzWCB8IERFRkFVTFRfUkFURSB9LAotCXsg LmRpdiA9IDAgfSwKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrc2VsIHNneF9jbGtzZWxb XSA9IHsKLQl7IC5wYXJlbnQgPSAmY29yZV9jaywJIC5yYXRlcyA9IHNneF9jb3JlX3JhdGVzIH0s Ci0JeyAucGFyZW50ID0gJmNtXzk2bV9mY2ssIC5yYXRlcyA9IHNneF85Nm1fcmF0ZXMgfSwKLQl7 IC5wYXJlbnQgPSBOVUxMIH0sCi19OwotCi1zdGF0aWMgc3RydWN0IGNsayBzZ3hfZmNrID0gewot CS5uYW1lCQk9ICJzZ3hfZmNrIiwKLQkub3BzCQk9ICZjbGtvcHNfb21hcDJfZGZsdF93YWl0LAot CS5pbml0CQk9ICZvbWFwMl9pbml0X2Nsa3NlbF9wYXJlbnQsCi0JLmVuYWJsZV9yZWcJPSBPTUFQ X0NNX1JFR0FERFIoT01BUDM0MzBFUzJfU0dYX01PRCwgQ01fRkNMS0VOKSwKLQkuZW5hYmxlX2Jp dAk9IE9NQVAzNDMwRVMyX0NNX0ZDTEtFTl9TR1hfRU5fU0dYX1NISUZULAotCS5jbGtzZWxfcmVn CT0gT01BUF9DTV9SRUdBRERSKE9NQVAzNDMwRVMyX1NHWF9NT0QsIENNX0NMS1NFTCksCi0JLmNs a3NlbF9tYXNrCT0gT01BUDM0MzBFUzJfQ0xLU0VMX1NHWF9NQVNLLAotCS5jbGtzZWwJCT0gc2d4 X2Nsa3NlbCwKLQkuY2xrZG1fbmFtZQk9ICJzZ3hfY2xrZG0iLAotCS5yZWNhbGMJCT0gJm9tYXAy X2Nsa3NlbF9yZWNhbGMsCi19OwotCi1zdGF0aWMgc3RydWN0IGNsayBzZ3hfaWNrID0gewotCS5u YW1lCQk9ICJzZ3hfaWNrIiwKLQkub3BzCQk9ICZjbGtvcHNfb21hcDJfZGZsdF93YWl0LAotCS5w YXJlbnQJCT0gJmwzX2ljaywKLQkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihPTUFQMzQz MEVTMl9TR1hfTU9ELCBDTV9JQ0xLRU4pLAotCS5lbmFibGVfYml0CT0gT01BUDM0MzBFUzJfQ01f SUNMS0VOX1NHWF9FTl9TR1hfU0hJRlQsCi0JLmNsa2RtX25hbWUJPSAic2d4X2Nsa2RtIiwKLQku cmVjYWxjCQk9ICZmb2xsb3dwYXJlbnRfcmVjYWxjLAotfTsKLQotLyogQ09SRSBwb3dlciBkb21h aW4gKi8KLQotc3RhdGljIHN0cnVjdCBjbGsgZDJkXzI2bV9mY2sgPSB7Ci0JLm5hbWUJCT0gImQy ZF8yNm1fZmNrIiwKLQkub3BzCQk9ICZjbGtvcHNfb21hcDJfZGZsdF93YWl0LAotCS5wYXJlbnQJ CT0gJnN5c19jaywKLQkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihDT1JFX01PRCwgQ01f RkNMS0VOMSksCi0JLmVuYWJsZV9iaXQJPSBPTUFQMzQzMEVTMV9FTl9EMkRfU0hJRlQsCi0JLmNs a2RtX25hbWUJPSAiZDJkX2Nsa2RtIiwKLQkucmVjYWxjCQk9ICZmb2xsb3dwYXJlbnRfcmVjYWxj LAotfTsKLQotc3RhdGljIHN0cnVjdCBjbGsgbW9kZW1fZmNrID0gewotCS5uYW1lCQk9ICJtb2Rl bV9mY2siLAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9kZmx0X3dhaXQsCi0JLnBhcmVudAkJPSAm c3lzX2NrLAotCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKENPUkVfTU9ELCBDTV9GQ0xL RU4xKSwKLQkuZW5hYmxlX2JpdAk9IE9NQVAzNDMwX0VOX01PREVNX1NISUZULAotCS5jbGtkbV9u YW1lCT0gImQyZF9jbGtkbSIsCi0JLnJlY2FsYwkJPSAmZm9sbG93cGFyZW50X3JlY2FsYywKLX07 Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIHNhZDJkX2ljayA9IHsKLQkubmFtZQkJPSAic2FkMmRfaWNr IiwKLQkub3BzCQk9ICZjbGtvcHNfb21hcDJfZGZsdF93YWl0LAotCS5wYXJlbnQJCT0gJmwzX2lj aywKLQkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihDT1JFX01PRCwgQ01fSUNMS0VOMSks Ci0JLmVuYWJsZV9iaXQJPSBPTUFQMzQzMF9FTl9TQUQyRF9TSElGVCwKLQkuY2xrZG1fbmFtZQk9 ICJkMmRfY2xrZG0iLAotCS5yZWNhbGMJCT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19OwotCi1z dGF0aWMgc3RydWN0IGNsayBtYWQyZF9pY2sgPSB7Ci0JLm5hbWUJCT0gIm1hZDJkX2ljayIsCi0J Lm9wcwkJPSAmY2xrb3BzX29tYXAyX2RmbHRfd2FpdCwKLQkucGFyZW50CQk9ICZsM19pY2ssCi0J LmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoQ09SRV9NT0QsIENNX0lDTEtFTjMpLAotCS5l bmFibGVfYml0CT0gT01BUDM0MzBfRU5fTUFEMkRfU0hJRlQsCi0JLmNsa2RtX25hbWUJPSAiZDJk X2Nsa2RtIiwKLQkucmVjYWxjCQk9ICZmb2xsb3dwYXJlbnRfcmVjYWxjLAotfTsKLQotc3RhdGlj IGNvbnN0IHN0cnVjdCBjbGtzZWwgb21hcDM0M3hfZ3B0X2Nsa3NlbFtdID0gewotCXsgLnBhcmVu dCA9ICZvbWFwXzMya19mY2ssIC5yYXRlcyA9IGdwdF8zMmtfcmF0ZXMgfSwKLQl7IC5wYXJlbnQg PSAmc3lzX2NrLAkgICAucmF0ZXMgPSBncHRfc3lzX3JhdGVzIH0sCi0JeyAucGFyZW50ID0gTlVM TH0KLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIGdwdDEwX2ZjayA9IHsKLQkubmFtZQkJPSAiZ3B0 MTBfZmNrIiwKLQkub3BzCQk9ICZjbGtvcHNfb21hcDJfZGZsdF93YWl0LAotCS5wYXJlbnQJCT0g JnN5c19jaywKLQkuaW5pdAkJPSAmb21hcDJfaW5pdF9jbGtzZWxfcGFyZW50LAotCS5lbmFibGVf cmVnCT0gT01BUF9DTV9SRUdBRERSKENPUkVfTU9ELCBDTV9GQ0xLRU4xKSwKLQkuZW5hYmxlX2Jp dAk9IE9NQVAzNDMwX0VOX0dQVDEwX1NISUZULAotCS5jbGtzZWxfcmVnCT0gT01BUF9DTV9SRUdB RERSKENPUkVfTU9ELCBDTV9DTEtTRUwpLAotCS5jbGtzZWxfbWFzawk9IE9NQVAzNDMwX0NMS1NF TF9HUFQxMF9NQVNLLAotCS5jbGtzZWwJCT0gb21hcDM0M3hfZ3B0X2Nsa3NlbCwKLQkuY2xrZG1f bmFtZQk9ICJjb3JlX2w0X2Nsa2RtIiwKLQkucmVjYWxjCQk9ICZvbWFwMl9jbGtzZWxfcmVjYWxj LAotfTsKLQotc3RhdGljIHN0cnVjdCBjbGsgZ3B0MTFfZmNrID0gewotCS5uYW1lCQk9ICJncHQx MV9mY2siLAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9kZmx0X3dhaXQsCi0JLnBhcmVudAkJPSAm c3lzX2NrLAotCS5pbml0CQk9ICZvbWFwMl9pbml0X2Nsa3NlbF9wYXJlbnQsCi0JLmVuYWJsZV9y ZWcJPSBPTUFQX0NNX1JFR0FERFIoQ09SRV9NT0QsIENNX0ZDTEtFTjEpLAotCS5lbmFibGVfYml0 CT0gT01BUDM0MzBfRU5fR1BUMTFfU0hJRlQsCi0JLmNsa3NlbF9yZWcJPSBPTUFQX0NNX1JFR0FE RFIoQ09SRV9NT0QsIENNX0NMS1NFTCksCi0JLmNsa3NlbF9tYXNrCT0gT01BUDM0MzBfQ0xLU0VM X0dQVDExX01BU0ssCi0JLmNsa3NlbAkJPSBvbWFwMzQzeF9ncHRfY2xrc2VsLAotCS5jbGtkbV9u YW1lCT0gImNvcmVfbDRfY2xrZG0iLAotCS5yZWNhbGMJCT0gJm9tYXAyX2Nsa3NlbF9yZWNhbGMs Ci19OwotCi1zdGF0aWMgc3RydWN0IGNsayBjcGVmdXNlX2ZjayA9IHsKLQkubmFtZQkJPSAiY3Bl ZnVzZV9mY2siLAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9kZmx0LAotCS5wYXJlbnQJCT0gJnN5 c19jaywKLQkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihDT1JFX01PRCwgT01BUDM0MzBF UzJfQ01fRkNMS0VOMyksCi0JLmVuYWJsZV9iaXQJPSBPTUFQMzQzMEVTMl9FTl9DUEVGVVNFX1NI SUZULAotCS5yZWNhbGMJCT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19OwotCi1zdGF0aWMgc3Ry dWN0IGNsayB0c19mY2sgPSB7Ci0JLm5hbWUJCT0gInRzX2ZjayIsCi0JLm9wcwkJPSAmY2xrb3Bz X29tYXAyX2RmbHQsCi0JLnBhcmVudAkJPSAmb21hcF8zMmtfZmNrLAotCS5lbmFibGVfcmVnCT0g T01BUF9DTV9SRUdBRERSKENPUkVfTU9ELCBPTUFQMzQzMEVTMl9DTV9GQ0xLRU4zKSwKLQkuZW5h YmxlX2JpdAk9IE9NQVAzNDMwRVMyX0VOX1RTX1NISUZULAotCS5yZWNhbGMJCT0gJmZvbGxvd3Bh cmVudF9yZWNhbGMsCi19OwotCi1zdGF0aWMgc3RydWN0IGNsayB1c2J0bGxfZmNrID0gewotCS5u YW1lCQk9ICJ1c2J0bGxfZmNrIiwKLQkub3BzCQk9ICZjbGtvcHNfb21hcDJfZGZsdCwKLQkucGFy ZW50CQk9ICZkcGxsNV9tMl9jaywKLQkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihDT1JF X01PRCwgT01BUDM0MzBFUzJfQ01fRkNMS0VOMyksCi0JLmVuYWJsZV9iaXQJPSBPTUFQMzQzMEVT Ml9FTl9VU0JUTExfU0hJRlQsCi0JLnJlY2FsYwkJPSAmZm9sbG93cGFyZW50X3JlY2FsYywKLX07 Ci0KLS8qIENPUkUgOTZNIEZDTEstZGVyaXZlZCBjbG9ja3MgKi8KLQotc3RhdGljIHN0cnVjdCBj bGsgY29yZV85Nm1fZmNrID0gewotCS5uYW1lCQk9ICJjb3JlXzk2bV9mY2siLAotCS5vcHMJCT0g JmNsa29wc19udWxsLAotCS5wYXJlbnQJCT0gJm9tYXBfOTZtX2ZjaywKLQkuY2xrZG1fbmFtZQk9 ICJjb3JlX2w0X2Nsa2RtIiwKLQkucmVjYWxjCQk9ICZmb2xsb3dwYXJlbnRfcmVjYWxjLAotfTsK LQotc3RhdGljIHN0cnVjdCBjbGsgbW1jaHMzX2ZjayA9IHsKLQkubmFtZQkJPSAibW1jaHNfZmNr IiwKLQkub3BzCQk9ICZjbGtvcHNfb21hcDJfZGZsdF93YWl0LAotCS5pZAkJPSAyLAotCS5wYXJl bnQJCT0gJmNvcmVfOTZtX2ZjaywKLQkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihDT1JF X01PRCwgQ01fRkNMS0VOMSksCi0JLmVuYWJsZV9iaXQJPSBPTUFQMzQzMEVTMl9FTl9NTUMzX1NI SUZULAotCS5jbGtkbV9uYW1lCT0gImNvcmVfbDRfY2xrZG0iLAotCS5yZWNhbGMJCT0gJmZvbGxv d3BhcmVudF9yZWNhbGMsCi19OwotCi1zdGF0aWMgc3RydWN0IGNsayBtbWNoczJfZmNrID0gewot CS5uYW1lCQk9ICJtbWNoc19mY2siLAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9kZmx0X3dhaXQs Ci0JLmlkCQk9IDEsCi0JLnBhcmVudAkJPSAmY29yZV85Nm1fZmNrLAotCS5lbmFibGVfcmVnCT0g T01BUF9DTV9SRUdBRERSKENPUkVfTU9ELCBDTV9GQ0xLRU4xKSwKLQkuZW5hYmxlX2JpdAk9IE9N QVAzNDMwX0VOX01NQzJfU0hJRlQsCi0JLmNsa2RtX25hbWUJPSAiY29yZV9sNF9jbGtkbSIsCi0J LnJlY2FsYwkJPSAmZm9sbG93cGFyZW50X3JlY2FsYywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xr IG1zcHJvX2ZjayA9IHsKLQkubmFtZQkJPSAibXNwcm9fZmNrIiwKLQkub3BzCQk9ICZjbGtvcHNf b21hcDJfZGZsdF93YWl0LAotCS5wYXJlbnQJCT0gJmNvcmVfOTZtX2ZjaywKLQkuZW5hYmxlX3Jl Zwk9IE9NQVBfQ01fUkVHQUREUihDT1JFX01PRCwgQ01fRkNMS0VOMSksCi0JLmVuYWJsZV9iaXQJ PSBPTUFQMzQzMF9FTl9NU1BST19TSElGVCwKLQkuY2xrZG1fbmFtZQk9ICJjb3JlX2w0X2Nsa2Rt IiwKLQkucmVjYWxjCQk9ICZmb2xsb3dwYXJlbnRfcmVjYWxjLAotfTsKLQotc3RhdGljIHN0cnVj dCBjbGsgbW1jaHMxX2ZjayA9IHsKLQkubmFtZQkJPSAibW1jaHNfZmNrIiwKLQkub3BzCQk9ICZj bGtvcHNfb21hcDJfZGZsdF93YWl0LAotCS5wYXJlbnQJCT0gJmNvcmVfOTZtX2ZjaywKLQkuZW5h YmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihDT1JFX01PRCwgQ01fRkNMS0VOMSksCi0JLmVuYWJs ZV9iaXQJPSBPTUFQMzQzMF9FTl9NTUMxX1NISUZULAotCS5jbGtkbV9uYW1lCT0gImNvcmVfbDRf Y2xrZG0iLAotCS5yZWNhbGMJCT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19OwotCi1zdGF0aWMg c3RydWN0IGNsayBpMmMzX2ZjayA9IHsKLQkubmFtZQkJPSAiaTJjX2ZjayIsCi0JLm9wcwkJPSAm Y2xrb3BzX29tYXAyX2RmbHRfd2FpdCwKLQkuaWQJCT0gMywKLQkucGFyZW50CQk9ICZjb3JlXzk2 bV9mY2ssCi0JLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoQ09SRV9NT0QsIENNX0ZDTEtF TjEpLAotCS5lbmFibGVfYml0CT0gT01BUDM0MzBfRU5fSTJDM19TSElGVCwKLQkuY2xrZG1fbmFt ZQk9ICJjb3JlX2w0X2Nsa2RtIiwKLQkucmVjYWxjCQk9ICZmb2xsb3dwYXJlbnRfcmVjYWxjLAot fTsKLQotc3RhdGljIHN0cnVjdCBjbGsgaTJjMl9mY2sgPSB7Ci0JLm5hbWUJCT0gImkyY19mY2si LAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9kZmx0X3dhaXQsCi0JLmlkCQk9IDIsCi0JLnBhcmVu dAkJPSAmY29yZV85Nm1fZmNrLAotCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKENPUkVf TU9ELCBDTV9GQ0xLRU4xKSwKLQkuZW5hYmxlX2JpdAk9IE9NQVAzNDMwX0VOX0kyQzJfU0hJRlQs Ci0JLmNsa2RtX25hbWUJPSAiY29yZV9sNF9jbGtkbSIsCi0JLnJlY2FsYwkJPSAmZm9sbG93cGFy ZW50X3JlY2FsYywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIGkyYzFfZmNrID0gewotCS5uYW1l CQk9ICJpMmNfZmNrIiwKLQkub3BzCQk9ICZjbGtvcHNfb21hcDJfZGZsdF93YWl0LAotCS5pZAkJ PSAxLAotCS5wYXJlbnQJCT0gJmNvcmVfOTZtX2ZjaywKLQkuZW5hYmxlX3JlZwk9IE9NQVBfQ01f UkVHQUREUihDT1JFX01PRCwgQ01fRkNMS0VOMSksCi0JLmVuYWJsZV9iaXQJPSBPTUFQMzQzMF9F Tl9JMkMxX1NISUZULAotCS5jbGtkbV9uYW1lCT0gImNvcmVfbDRfY2xrZG0iLAotCS5yZWNhbGMJ CT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19OwotCi0vKgotICogTUNCU1AgMSAmIDUgZ2V0IHRo ZWlyIDk2TUh6IGNsb2NrIGZyb20gY29yZV85Nm1fZmNrOwotICogTUNCU1AgMiwgMywgNCBnZXQg dGhlaXIgOTZNSHogY2xvY2sgZnJvbSBwZXJfOTZtX2Zjay4KLSAqLwotc3RhdGljIGNvbnN0IHN0 cnVjdCBjbGtzZWxfcmF0ZSBjb21tb25fbWNic3BfOTZtX3JhdGVzW10gPSB7Ci0JeyAuZGl2ID0g MSwgLnZhbCA9IDAsIC5mbGFncyA9IFJBVEVfSU5fMzQzWCB8IERFRkFVTFRfUkFURSB9LAotCXsg LmRpdiA9IDAgfQotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtzZWxfcmF0ZSBjb21tb25f bWNic3BfbWNic3BfcmF0ZXNbXSA9IHsKLQl7IC5kaXYgPSAxLCAudmFsID0gMSwgLmZsYWdzID0g UkFURV9JTl8zNDNYIHwgREVGQVVMVF9SQVRFIH0sCi0JeyAuZGl2ID0gMCB9Ci19OwotCi1zdGF0 aWMgY29uc3Qgc3RydWN0IGNsa3NlbCBtY2JzcF8xNV9jbGtzZWxbXSA9IHsKLQl7IC5wYXJlbnQg PSAmY29yZV85Nm1fZmNrLCAucmF0ZXMgPSBjb21tb25fbWNic3BfOTZtX3JhdGVzIH0sCi0JeyAu cGFyZW50ID0gJm1jYnNwX2Nsa3MsICAgLnJhdGVzID0gY29tbW9uX21jYnNwX21jYnNwX3JhdGVz IH0sCi0JeyAucGFyZW50ID0gTlVMTCB9Ci19OwotCi1zdGF0aWMgc3RydWN0IGNsayBtY2JzcDVf ZmNrID0gewotCS5uYW1lCQk9ICJtY2JzcF9mY2siLAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9k Zmx0X3dhaXQsCi0JLmlkCQk9IDUsCi0JLmluaXQJCT0gJm9tYXAyX2luaXRfY2xrc2VsX3BhcmVu dCwKLQkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihDT1JFX01PRCwgQ01fRkNMS0VOMSks Ci0JLmVuYWJsZV9iaXQJPSBPTUFQMzQzMF9FTl9NQ0JTUDVfU0hJRlQsCi0JLmNsa3NlbF9yZWcJ PSBPTUFQMzQzWF9DVFJMX1JFR0FERFIoT01BUDM0M1hfQ09OVFJPTF9ERVZDT05GMSksCi0JLmNs a3NlbF9tYXNrCT0gT01BUDJfTUNCU1A1X0NMS1NfTUFTSywKLQkuY2xrc2VsCQk9IG1jYnNwXzE1 X2Nsa3NlbCwKLQkuY2xrZG1fbmFtZQk9ICJjb3JlX2w0X2Nsa2RtIiwKLQkucmVjYWxjCQk9ICZv bWFwMl9jbGtzZWxfcmVjYWxjLAotfTsKLQotc3RhdGljIHN0cnVjdCBjbGsgbWNic3AxX2ZjayA9 IHsKLQkubmFtZQkJPSAibWNic3BfZmNrIiwKLQkub3BzCQk9ICZjbGtvcHNfb21hcDJfZGZsdF93 YWl0LAotCS5pZAkJPSAxLAotCS5pbml0CQk9ICZvbWFwMl9pbml0X2Nsa3NlbF9wYXJlbnQsCi0J LmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoQ09SRV9NT0QsIENNX0ZDTEtFTjEpLAotCS5l bmFibGVfYml0CT0gT01BUDM0MzBfRU5fTUNCU1AxX1NISUZULAotCS5jbGtzZWxfcmVnCT0gT01B UDM0M1hfQ1RSTF9SRUdBRERSKE9NQVAyX0NPTlRST0xfREVWQ09ORjApLAotCS5jbGtzZWxfbWFz awk9IE9NQVAyX01DQlNQMV9DTEtTX01BU0ssCi0JLmNsa3NlbAkJPSBtY2JzcF8xNV9jbGtzZWws Ci0JLmNsa2RtX25hbWUJPSAiY29yZV9sNF9jbGtkbSIsCi0JLnJlY2FsYwkJPSAmb21hcDJfY2xr c2VsX3JlY2FsYywKLX07Ci0KLS8qIENPUkVfNDhNX0ZDSy1kZXJpdmVkIGNsb2NrcyAqLwotCi1z dGF0aWMgc3RydWN0IGNsayBjb3JlXzQ4bV9mY2sgPSB7Ci0JLm5hbWUJCT0gImNvcmVfNDhtX2Zj ayIsCi0JLm9wcwkJPSAmY2xrb3BzX251bGwsCi0JLnBhcmVudAkJPSAmb21hcF80OG1fZmNrLAot CS5jbGtkbV9uYW1lCT0gImNvcmVfbDRfY2xrZG0iLAotCS5yZWNhbGMJCT0gJmZvbGxvd3BhcmVu dF9yZWNhbGMsCi19OwotCi1zdGF0aWMgc3RydWN0IGNsayBtY3NwaTRfZmNrID0gewotCS5uYW1l CQk9ICJtY3NwaV9mY2siLAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9kZmx0X3dhaXQsCi0JLmlk CQk9IDQsCi0JLnBhcmVudAkJPSAmY29yZV80OG1fZmNrLAotCS5lbmFibGVfcmVnCT0gT01BUF9D TV9SRUdBRERSKENPUkVfTU9ELCBDTV9GQ0xLRU4xKSwKLQkuZW5hYmxlX2JpdAk9IE9NQVAzNDMw X0VOX01DU1BJNF9TSElGVCwKLQkucmVjYWxjCQk9ICZmb2xsb3dwYXJlbnRfcmVjYWxjLAotfTsK LQotc3RhdGljIHN0cnVjdCBjbGsgbWNzcGkzX2ZjayA9IHsKLQkubmFtZQkJPSAibWNzcGlfZmNr IiwKLQkub3BzCQk9ICZjbGtvcHNfb21hcDJfZGZsdF93YWl0LAotCS5pZAkJPSAzLAotCS5wYXJl bnQJCT0gJmNvcmVfNDhtX2ZjaywKLQkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihDT1JF X01PRCwgQ01fRkNMS0VOMSksCi0JLmVuYWJsZV9iaXQJPSBPTUFQMzQzMF9FTl9NQ1NQSTNfU0hJ RlQsCi0JLnJlY2FsYwkJPSAmZm9sbG93cGFyZW50X3JlY2FsYywKLX07Ci0KLXN0YXRpYyBzdHJ1 Y3QgY2xrIG1jc3BpMl9mY2sgPSB7Ci0JLm5hbWUJCT0gIm1jc3BpX2ZjayIsCi0JLm9wcwkJPSAm Y2xrb3BzX29tYXAyX2RmbHRfd2FpdCwKLQkuaWQJCT0gMiwKLQkucGFyZW50CQk9ICZjb3JlXzQ4 bV9mY2ssCi0JLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoQ09SRV9NT0QsIENNX0ZDTEtF TjEpLAotCS5lbmFibGVfYml0CT0gT01BUDM0MzBfRU5fTUNTUEkyX1NISUZULAotCS5yZWNhbGMJ CT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19OwotCi1zdGF0aWMgc3RydWN0IGNsayBtY3NwaTFf ZmNrID0gewotCS5uYW1lCQk9ICJtY3NwaV9mY2siLAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9k Zmx0X3dhaXQsCi0JLmlkCQk9IDEsCi0JLnBhcmVudAkJPSAmY29yZV80OG1fZmNrLAotCS5lbmFi bGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKENPUkVfTU9ELCBDTV9GQ0xLRU4xKSwKLQkuZW5hYmxl X2JpdAk9IE9NQVAzNDMwX0VOX01DU1BJMV9TSElGVCwKLQkucmVjYWxjCQk9ICZmb2xsb3dwYXJl bnRfcmVjYWxjLAotfTsKLQotc3RhdGljIHN0cnVjdCBjbGsgdWFydDJfZmNrID0gewotCS5uYW1l CQk9ICJ1YXJ0Ml9mY2siLAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9kZmx0X3dhaXQsCi0JLnBh cmVudAkJPSAmY29yZV80OG1fZmNrLAotCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKENP UkVfTU9ELCBDTV9GQ0xLRU4xKSwKLQkuZW5hYmxlX2JpdAk9IE9NQVAzNDMwX0VOX1VBUlQyX1NI SUZULAotCS5yZWNhbGMJCT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19OwotCi1zdGF0aWMgc3Ry dWN0IGNsayB1YXJ0MV9mY2sgPSB7Ci0JLm5hbWUJCT0gInVhcnQxX2ZjayIsCi0JLm9wcwkJPSAm Y2xrb3BzX29tYXAyX2RmbHRfd2FpdCwKLQkucGFyZW50CQk9ICZjb3JlXzQ4bV9mY2ssCi0JLmVu YWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoQ09SRV9NT0QsIENNX0ZDTEtFTjEpLAotCS5lbmFi bGVfYml0CT0gT01BUDM0MzBfRU5fVUFSVDFfU0hJRlQsCi0JLnJlY2FsYwkJPSAmZm9sbG93cGFy ZW50X3JlY2FsYywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIGZzaG9zdHVzYl9mY2sgPSB7Ci0J Lm5hbWUJCT0gImZzaG9zdHVzYl9mY2siLAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9kZmx0X3dh aXQsCi0JLnBhcmVudAkJPSAmY29yZV80OG1fZmNrLAotCS5lbmFibGVfcmVnCT0gT01BUF9DTV9S RUdBRERSKENPUkVfTU9ELCBDTV9GQ0xLRU4xKSwKLQkuZW5hYmxlX2JpdAk9IE9NQVAzNDMwRVMx X0VOX0ZTSE9TVFVTQl9TSElGVCwKLQkucmVjYWxjCQk9ICZmb2xsb3dwYXJlbnRfcmVjYWxjLAot fTsKLQotLyogQ09SRV8xMk1fRkNLIGJhc2VkIGNsb2NrcyAqLwotCi1zdGF0aWMgc3RydWN0IGNs ayBjb3JlXzEybV9mY2sgPSB7Ci0JLm5hbWUJCT0gImNvcmVfMTJtX2ZjayIsCi0JLm9wcwkJPSAm Y2xrb3BzX251bGwsCi0JLnBhcmVudAkJPSAmb21hcF8xMm1fZmNrLAotCS5jbGtkbV9uYW1lCT0g ImNvcmVfbDRfY2xrZG0iLAotCS5yZWNhbGMJCT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19Owot Ci1zdGF0aWMgc3RydWN0IGNsayBoZHFfZmNrID0gewotCS5uYW1lCQk9ICJoZHFfZmNrIiwKLQku b3BzCQk9ICZjbGtvcHNfb21hcDJfZGZsdF93YWl0LAotCS5wYXJlbnQJCT0gJmNvcmVfMTJtX2Zj aywKLQkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihDT1JFX01PRCwgQ01fRkNMS0VOMSks Ci0JLmVuYWJsZV9iaXQJPSBPTUFQMzQzMF9FTl9IRFFfU0hJRlQsCi0JLnJlY2FsYwkJPSAmZm9s bG93cGFyZW50X3JlY2FsYywKLX07Ci0KLS8qIERQTEwzLWRlcml2ZWQgY2xvY2sgKi8KLQotc3Rh dGljIGNvbnN0IHN0cnVjdCBjbGtzZWxfcmF0ZSBzc2lfc3NyX2NvcmV4Ml9yYXRlc1tdID0gewot CXsgLmRpdiA9IDEsIC52YWwgPSAxLCAuZmxhZ3MgPSBSQVRFX0lOXzM0M1ggfCBERUZBVUxUX1JB VEUgfSwKLQl7IC5kaXYgPSAyLCAudmFsID0gMiwgLmZsYWdzID0gUkFURV9JTl8zNDNYIH0sCi0J eyAuZGl2ID0gMywgLnZhbCA9IDMsIC5mbGFncyA9IFJBVEVfSU5fMzQzWCB9LAotCXsgLmRpdiA9 IDQsIC52YWwgPSA0LCAuZmxhZ3MgPSBSQVRFX0lOXzM0M1ggfSwKLQl7IC5kaXYgPSA2LCAudmFs ID0gNiwgLmZsYWdzID0gUkFURV9JTl8zNDNYIH0sCi0JeyAuZGl2ID0gOCwgLnZhbCA9IDgsIC5m bGFncyA9IFJBVEVfSU5fMzQzWCB9LAotCXsgLmRpdiA9IDAgfQotfTsKLQotc3RhdGljIGNvbnN0 IHN0cnVjdCBjbGtzZWwgc3NpX3Nzcl9jbGtzZWxbXSA9IHsKLQl7IC5wYXJlbnQgPSAmY29yZXgy X2ZjaywgLnJhdGVzID0gc3NpX3Nzcl9jb3JleDJfcmF0ZXMgfSwKLQl7IC5wYXJlbnQgPSBOVUxM IH0KLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIHNzaV9zc3JfZmNrXzM0MzBlczEgPSB7Ci0JLm5h bWUJCT0gInNzaV9zc3JfZmNrIiwKLQkub3BzCQk9ICZjbGtvcHNfb21hcDJfZGZsdCwKLQkuaW5p dAkJPSAmb21hcDJfaW5pdF9jbGtzZWxfcGFyZW50LAotCS5lbmFibGVfcmVnCT0gT01BUF9DTV9S RUdBRERSKENPUkVfTU9ELCBDTV9GQ0xLRU4xKSwKLQkuZW5hYmxlX2JpdAk9IE9NQVAzNDMwX0VO X1NTSV9TSElGVCwKLQkuY2xrc2VsX3JlZwk9IE9NQVBfQ01fUkVHQUREUihDT1JFX01PRCwgQ01f Q0xLU0VMKSwKLQkuY2xrc2VsX21hc2sJPSBPTUFQMzQzMF9DTEtTRUxfU1NJX01BU0ssCi0JLmNs a3NlbAkJPSBzc2lfc3NyX2Nsa3NlbCwKLQkuY2xrZG1fbmFtZQk9ICJjb3JlX2w0X2Nsa2RtIiwK LQkucmVjYWxjCQk9ICZvbWFwMl9jbGtzZWxfcmVjYWxjLAotfTsKLQotc3RhdGljIHN0cnVjdCBj bGsgc3NpX3Nzcl9mY2tfMzQzMGVzMiA9IHsKLQkubmFtZQkJPSAic3NpX3Nzcl9mY2siLAotCS5v cHMJCT0gJmNsa29wc19vbWFwMzQzMGVzMl9zc2lfd2FpdCwKLQkuaW5pdAkJPSAmb21hcDJfaW5p dF9jbGtzZWxfcGFyZW50LAotCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKENPUkVfTU9E LCBDTV9GQ0xLRU4xKSwKLQkuZW5hYmxlX2JpdAk9IE9NQVAzNDMwX0VOX1NTSV9TSElGVCwKLQku Y2xrc2VsX3JlZwk9IE9NQVBfQ01fUkVHQUREUihDT1JFX01PRCwgQ01fQ0xLU0VMKSwKLQkuY2xr c2VsX21hc2sJPSBPTUFQMzQzMF9DTEtTRUxfU1NJX01BU0ssCi0JLmNsa3NlbAkJPSBzc2lfc3Ny X2Nsa3NlbCwKLQkuY2xrZG1fbmFtZQk9ICJjb3JlX2w0X2Nsa2RtIiwKLQkucmVjYWxjCQk9ICZv bWFwMl9jbGtzZWxfcmVjYWxjLAotfTsKLQotc3RhdGljIHN0cnVjdCBjbGsgc3NpX3NzdF9mY2tf MzQzMGVzMSA9IHsKLQkubmFtZQkJPSAic3NpX3NzdF9mY2siLAotCS5vcHMJCT0gJmNsa29wc19u dWxsLAotCS5wYXJlbnQJCT0gJnNzaV9zc3JfZmNrXzM0MzBlczEsCi0JLmZpeGVkX2Rpdgk9IDIs Ci0JLnJlY2FsYwkJPSAmb21hcDJfZml4ZWRfZGl2aXNvcl9yZWNhbGMsCi19OwotCi1zdGF0aWMg c3RydWN0IGNsayBzc2lfc3N0X2Zja18zNDMwZXMyID0gewotCS5uYW1lCQk9ICJzc2lfc3N0X2Zj ayIsCi0JLm9wcwkJPSAmY2xrb3BzX251bGwsCi0JLnBhcmVudAkJPSAmc3NpX3Nzcl9mY2tfMzQz MGVzMiwKLQkuZml4ZWRfZGl2CT0gMiwKLQkucmVjYWxjCQk9ICZvbWFwMl9maXhlZF9kaXZpc29y X3JlY2FsYywKLX07Ci0KLQotCi0vKiBDT1JFX0wzX0lDSyBiYXNlZCBjbG9ja3MgKi8KLQotLyoK LSAqIFhYWCBtdXN0IGFkZCBjbGtfZW5hYmxlL2Nsa19kaXNhYmxlIGZvciB0aGVzZSBpZiBzdGFu ZGFyZCBjb2RlIHdvbid0Ci0gKiBoYW5kbGUgaXQKLSAqLwotc3RhdGljIHN0cnVjdCBjbGsgY29y ZV9sM19pY2sgPSB7Ci0JLm5hbWUJCT0gImNvcmVfbDNfaWNrIiwKLQkub3BzCQk9ICZjbGtvcHNf bnVsbCwKLQkucGFyZW50CQk9ICZsM19pY2ssCi0JLmNsa2RtX25hbWUJPSAiY29yZV9sM19jbGtk bSIsCi0JLnJlY2FsYwkJPSAmZm9sbG93cGFyZW50X3JlY2FsYywKLX07Ci0KLXN0YXRpYyBzdHJ1 Y3QgY2xrIGhzb3RndXNiX2lja18zNDMwZXMxID0gewotCS5uYW1lCQk9ICJoc290Z3VzYl9pY2si LAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9kZmx0LAotCS5wYXJlbnQJCT0gJmNvcmVfbDNfaWNr LAotCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKENPUkVfTU9ELCBDTV9JQ0xLRU4xKSwK LQkuZW5hYmxlX2JpdAk9IE9NQVAzNDMwX0VOX0hTT1RHVVNCX1NISUZULAotCS5jbGtkbV9uYW1l CT0gImNvcmVfbDNfY2xrZG0iLAotCS5yZWNhbGMJCT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19 OwotCi1zdGF0aWMgc3RydWN0IGNsayBoc290Z3VzYl9pY2tfMzQzMGVzMiA9IHsKLQkubmFtZQkJ PSAiaHNvdGd1c2JfaWNrIiwKLQkub3BzCQk9ICZjbGtvcHNfb21hcDM0MzBlczJfaHNvdGd1c2Jf d2FpdCwKLQkucGFyZW50CQk9ICZjb3JlX2wzX2ljaywKLQkuZW5hYmxlX3JlZwk9IE9NQVBfQ01f UkVHQUREUihDT1JFX01PRCwgQ01fSUNMS0VOMSksCi0JLmVuYWJsZV9iaXQJPSBPTUFQMzQzMF9F Tl9IU09UR1VTQl9TSElGVCwKLQkuY2xrZG1fbmFtZQk9ICJjb3JlX2wzX2Nsa2RtIiwKLQkucmVj YWxjCQk9ICZmb2xsb3dwYXJlbnRfcmVjYWxjLAotfTsKLQotc3RhdGljIHN0cnVjdCBjbGsgc2Ry Y19pY2sgPSB7Ci0JLm5hbWUJCT0gInNkcmNfaWNrIiwKLQkub3BzCQk9ICZjbGtvcHNfb21hcDJf ZGZsdF93YWl0LAotCS5wYXJlbnQJCT0gJmNvcmVfbDNfaWNrLAotCS5lbmFibGVfcmVnCT0gT01B UF9DTV9SRUdBRERSKENPUkVfTU9ELCBDTV9JQ0xLRU4xKSwKLQkuZW5hYmxlX2JpdAk9IE9NQVAz NDMwX0VOX1NEUkNfU0hJRlQsCi0JLmZsYWdzCQk9IEVOQUJMRV9PTl9JTklULAotCS5jbGtkbV9u YW1lCT0gImNvcmVfbDNfY2xrZG0iLAotCS5yZWNhbGMJCT0gJmZvbGxvd3BhcmVudF9yZWNhbGMs Ci19OwotCi1zdGF0aWMgc3RydWN0IGNsayBncG1jX2ZjayA9IHsKLQkubmFtZQkJPSAiZ3BtY19m Y2siLAotCS5vcHMJCT0gJmNsa29wc19udWxsLAotCS5wYXJlbnQJCT0gJmNvcmVfbDNfaWNrLAot CS5mbGFncwkJPSBFTkFCTEVfT05fSU5JVCwgLyogaHVoPyAqLwotCS5jbGtkbV9uYW1lCT0gImNv cmVfbDNfY2xrZG0iLAotCS5yZWNhbGMJCT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19OwotCi0v KiBTRUNVUklUWV9MM19JQ0sgYmFzZWQgY2xvY2tzICovCi0KLXN0YXRpYyBzdHJ1Y3QgY2xrIHNl Y3VyaXR5X2wzX2ljayA9IHsKLQkubmFtZQkJPSAic2VjdXJpdHlfbDNfaWNrIiwKLQkub3BzCQk9 ICZjbGtvcHNfbnVsbCwKLQkucGFyZW50CQk9ICZsM19pY2ssCi0JLnJlY2FsYwkJPSAmZm9sbG93 cGFyZW50X3JlY2FsYywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIHBrYV9pY2sgPSB7Ci0JLm5h bWUJCT0gInBrYV9pY2siLAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9kZmx0X3dhaXQsCi0JLnBh cmVudAkJPSAmc2VjdXJpdHlfbDNfaWNrLAotCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERS KENPUkVfTU9ELCBDTV9JQ0xLRU4yKSwKLQkuZW5hYmxlX2JpdAk9IE9NQVAzNDMwX0VOX1BLQV9T SElGVCwKLQkucmVjYWxjCQk9ICZmb2xsb3dwYXJlbnRfcmVjYWxjLAotfTsKLQotLyogQ09SRV9M NF9JQ0sgYmFzZWQgY2xvY2tzICovCi0KLXN0YXRpYyBzdHJ1Y3QgY2xrIGNvcmVfbDRfaWNrID0g ewotCS5uYW1lCQk9ICJjb3JlX2w0X2ljayIsCi0JLm9wcwkJPSAmY2xrb3BzX251bGwsCi0JLnBh cmVudAkJPSAmbDRfaWNrLAotCS5jbGtkbV9uYW1lCT0gImNvcmVfbDRfY2xrZG0iLAotCS5yZWNh bGMJCT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19OwotCi1zdGF0aWMgc3RydWN0IGNsayB1c2J0 bGxfaWNrID0gewotCS5uYW1lCQk9ICJ1c2J0bGxfaWNrIiwKLQkub3BzCQk9ICZjbGtvcHNfb21h cDJfZGZsdF93YWl0LAotCS5wYXJlbnQJCT0gJmNvcmVfbDRfaWNrLAotCS5lbmFibGVfcmVnCT0g T01BUF9DTV9SRUdBRERSKENPUkVfTU9ELCBDTV9JQ0xLRU4zKSwKLQkuZW5hYmxlX2JpdAk9IE9N QVAzNDMwRVMyX0VOX1VTQlRMTF9TSElGVCwKLQkuY2xrZG1fbmFtZQk9ICJjb3JlX2w0X2Nsa2Rt IiwKLQkucmVjYWxjCQk9ICZmb2xsb3dwYXJlbnRfcmVjYWxjLAotfTsKLQotc3RhdGljIHN0cnVj dCBjbGsgbW1jaHMzX2ljayA9IHsKLQkubmFtZQkJPSAibW1jaHNfaWNrIiwKLQkub3BzCQk9ICZj bGtvcHNfb21hcDJfZGZsdF93YWl0LAotCS5pZAkJPSAyLAotCS5wYXJlbnQJCT0gJmNvcmVfbDRf aWNrLAotCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKENPUkVfTU9ELCBDTV9JQ0xLRU4x KSwKLQkuZW5hYmxlX2JpdAk9IE9NQVAzNDMwRVMyX0VOX01NQzNfU0hJRlQsCi0JLmNsa2RtX25h bWUJPSAiY29yZV9sNF9jbGtkbSIsCi0JLnJlY2FsYwkJPSAmZm9sbG93cGFyZW50X3JlY2FsYywK LX07Ci0KLS8qIEludGVyc3lzdGVtIENvbW11bmljYXRpb24gUmVnaXN0ZXJzIC0gY2hhc3NpcyBt b2RlIG9ubHkgKi8KLXN0YXRpYyBzdHJ1Y3QgY2xrIGljcl9pY2sgPSB7Ci0JLm5hbWUJCT0gImlj cl9pY2siLAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9kZmx0X3dhaXQsCi0JLnBhcmVudAkJPSAm Y29yZV9sNF9pY2ssCi0JLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoQ09SRV9NT0QsIENN X0lDTEtFTjEpLAotCS5lbmFibGVfYml0CT0gT01BUDM0MzBfRU5fSUNSX1NISUZULAotCS5jbGtk bV9uYW1lCT0gImNvcmVfbDRfY2xrZG0iLAotCS5yZWNhbGMJCT0gJmZvbGxvd3BhcmVudF9yZWNh bGMsCi19OwotCi1zdGF0aWMgc3RydWN0IGNsayBhZXMyX2ljayA9IHsKLQkubmFtZQkJPSAiYWVz Ml9pY2siLAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9kZmx0X3dhaXQsCi0JLnBhcmVudAkJPSAm Y29yZV9sNF9pY2ssCi0JLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoQ09SRV9NT0QsIENN X0lDTEtFTjEpLAotCS5lbmFibGVfYml0CT0gT01BUDM0MzBfRU5fQUVTMl9TSElGVCwKLQkuY2xr ZG1fbmFtZQk9ICJjb3JlX2w0X2Nsa2RtIiwKLQkucmVjYWxjCQk9ICZmb2xsb3dwYXJlbnRfcmVj YWxjLAotfTsKLQotc3RhdGljIHN0cnVjdCBjbGsgc2hhMTJfaWNrID0gewotCS5uYW1lCQk9ICJz aGExMl9pY2siLAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9kZmx0X3dhaXQsCi0JLnBhcmVudAkJ PSAmY29yZV9sNF9pY2ssCi0JLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoQ09SRV9NT0Qs IENNX0lDTEtFTjEpLAotCS5lbmFibGVfYml0CT0gT01BUDM0MzBfRU5fU0hBMTJfU0hJRlQsCi0J LmNsa2RtX25hbWUJPSAiY29yZV9sNF9jbGtkbSIsCi0JLnJlY2FsYwkJPSAmZm9sbG93cGFyZW50 X3JlY2FsYywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIGRlczJfaWNrID0gewotCS5uYW1lCQk9 ICJkZXMyX2ljayIsCi0JLm9wcwkJPSAmY2xrb3BzX29tYXAyX2RmbHRfd2FpdCwKLQkucGFyZW50 CQk9ICZjb3JlX2w0X2ljaywKLQkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihDT1JFX01P RCwgQ01fSUNMS0VOMSksCi0JLmVuYWJsZV9iaXQJPSBPTUFQMzQzMF9FTl9ERVMyX1NISUZULAot CS5jbGtkbV9uYW1lCT0gImNvcmVfbDRfY2xrZG0iLAotCS5yZWNhbGMJCT0gJmZvbGxvd3BhcmVu dF9yZWNhbGMsCi19OwotCi1zdGF0aWMgc3RydWN0IGNsayBtbWNoczJfaWNrID0gewotCS5uYW1l CQk9ICJtbWNoc19pY2siLAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9kZmx0X3dhaXQsCi0JLmlk CQk9IDEsCi0JLnBhcmVudAkJPSAmY29yZV9sNF9pY2ssCi0JLmVuYWJsZV9yZWcJPSBPTUFQX0NN X1JFR0FERFIoQ09SRV9NT0QsIENNX0lDTEtFTjEpLAotCS5lbmFibGVfYml0CT0gT01BUDM0MzBf RU5fTU1DMl9TSElGVCwKLQkuY2xrZG1fbmFtZQk9ICJjb3JlX2w0X2Nsa2RtIiwKLQkucmVjYWxj CQk9ICZmb2xsb3dwYXJlbnRfcmVjYWxjLAotfTsKLQotc3RhdGljIHN0cnVjdCBjbGsgbW1jaHMx X2ljayA9IHsKLQkubmFtZQkJPSAibW1jaHNfaWNrIiwKLQkub3BzCQk9ICZjbGtvcHNfb21hcDJf ZGZsdF93YWl0LAotCS5wYXJlbnQJCT0gJmNvcmVfbDRfaWNrLAotCS5lbmFibGVfcmVnCT0gT01B UF9DTV9SRUdBRERSKENPUkVfTU9ELCBDTV9JQ0xLRU4xKSwKLQkuZW5hYmxlX2JpdAk9IE9NQVAz NDMwX0VOX01NQzFfU0hJRlQsCi0JLmNsa2RtX25hbWUJPSAiY29yZV9sNF9jbGtkbSIsCi0JLnJl Y2FsYwkJPSAmZm9sbG93cGFyZW50X3JlY2FsYywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIG1z cHJvX2ljayA9IHsKLQkubmFtZQkJPSAibXNwcm9faWNrIiwKLQkub3BzCQk9ICZjbGtvcHNfb21h cDJfZGZsdF93YWl0LAotCS5wYXJlbnQJCT0gJmNvcmVfbDRfaWNrLAotCS5lbmFibGVfcmVnCT0g T01BUF9DTV9SRUdBRERSKENPUkVfTU9ELCBDTV9JQ0xLRU4xKSwKLQkuZW5hYmxlX2JpdAk9IE9N QVAzNDMwX0VOX01TUFJPX1NISUZULAotCS5jbGtkbV9uYW1lCT0gImNvcmVfbDRfY2xrZG0iLAot CS5yZWNhbGMJCT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19OwotCi1zdGF0aWMgc3RydWN0IGNs ayBoZHFfaWNrID0gewotCS5uYW1lCQk9ICJoZHFfaWNrIiwKLQkub3BzCQk9ICZjbGtvcHNfb21h cDJfZGZsdF93YWl0LAotCS5wYXJlbnQJCT0gJmNvcmVfbDRfaWNrLAotCS5lbmFibGVfcmVnCT0g T01BUF9DTV9SRUdBRERSKENPUkVfTU9ELCBDTV9JQ0xLRU4xKSwKLQkuZW5hYmxlX2JpdAk9IE9N QVAzNDMwX0VOX0hEUV9TSElGVCwKLQkuY2xrZG1fbmFtZQk9ICJjb3JlX2w0X2Nsa2RtIiwKLQku cmVjYWxjCQk9ICZmb2xsb3dwYXJlbnRfcmVjYWxjLAotfTsKLQotc3RhdGljIHN0cnVjdCBjbGsg bWNzcGk0X2ljayA9IHsKLQkubmFtZQkJPSAibWNzcGlfaWNrIiwKLQkub3BzCQk9ICZjbGtvcHNf b21hcDJfZGZsdF93YWl0LAotCS5pZAkJPSA0LAotCS5wYXJlbnQJCT0gJmNvcmVfbDRfaWNrLAot CS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKENPUkVfTU9ELCBDTV9JQ0xLRU4xKSwKLQku ZW5hYmxlX2JpdAk9IE9NQVAzNDMwX0VOX01DU1BJNF9TSElGVCwKLQkuY2xrZG1fbmFtZQk9ICJj b3JlX2w0X2Nsa2RtIiwKLQkucmVjYWxjCQk9ICZmb2xsb3dwYXJlbnRfcmVjYWxjLAotfTsKLQot c3RhdGljIHN0cnVjdCBjbGsgbWNzcGkzX2ljayA9IHsKLQkubmFtZQkJPSAibWNzcGlfaWNrIiwK LQkub3BzCQk9ICZjbGtvcHNfb21hcDJfZGZsdF93YWl0LAotCS5pZAkJPSAzLAotCS5wYXJlbnQJ CT0gJmNvcmVfbDRfaWNrLAotCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKENPUkVfTU9E LCBDTV9JQ0xLRU4xKSwKLQkuZW5hYmxlX2JpdAk9IE9NQVAzNDMwX0VOX01DU1BJM19TSElGVCwK LQkuY2xrZG1fbmFtZQk9ICJjb3JlX2w0X2Nsa2RtIiwKLQkucmVjYWxjCQk9ICZmb2xsb3dwYXJl bnRfcmVjYWxjLAotfTsKLQotc3RhdGljIHN0cnVjdCBjbGsgbWNzcGkyX2ljayA9IHsKLQkubmFt ZQkJPSAibWNzcGlfaWNrIiwKLQkub3BzCQk9ICZjbGtvcHNfb21hcDJfZGZsdF93YWl0LAotCS5p ZAkJPSAyLAotCS5wYXJlbnQJCT0gJmNvcmVfbDRfaWNrLAotCS5lbmFibGVfcmVnCT0gT01BUF9D TV9SRUdBRERSKENPUkVfTU9ELCBDTV9JQ0xLRU4xKSwKLQkuZW5hYmxlX2JpdAk9IE9NQVAzNDMw X0VOX01DU1BJMl9TSElGVCwKLQkuY2xrZG1fbmFtZQk9ICJjb3JlX2w0X2Nsa2RtIiwKLQkucmVj YWxjCQk9ICZmb2xsb3dwYXJlbnRfcmVjYWxjLAotfTsKLQotc3RhdGljIHN0cnVjdCBjbGsgbWNz cGkxX2ljayA9IHsKLQkubmFtZQkJPSAibWNzcGlfaWNrIiwKLQkub3BzCQk9ICZjbGtvcHNfb21h cDJfZGZsdF93YWl0LAotCS5pZAkJPSAxLAotCS5wYXJlbnQJCT0gJmNvcmVfbDRfaWNrLAotCS5l bmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKENPUkVfTU9ELCBDTV9JQ0xLRU4xKSwKLQkuZW5h YmxlX2JpdAk9IE9NQVAzNDMwX0VOX01DU1BJMV9TSElGVCwKLQkuY2xrZG1fbmFtZQk9ICJjb3Jl X2w0X2Nsa2RtIiwKLQkucmVjYWxjCQk9ICZmb2xsb3dwYXJlbnRfcmVjYWxjLAotfTsKLQotc3Rh dGljIHN0cnVjdCBjbGsgaTJjM19pY2sgPSB7Ci0JLm5hbWUJCT0gImkyY19pY2siLAotCS5vcHMJ CT0gJmNsa29wc19vbWFwMl9kZmx0X3dhaXQsCi0JLmlkCQk9IDMsCi0JLnBhcmVudAkJPSAmY29y ZV9sNF9pY2ssCi0JLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoQ09SRV9NT0QsIENNX0lD TEtFTjEpLAotCS5lbmFibGVfYml0CT0gT01BUDM0MzBfRU5fSTJDM19TSElGVCwKLQkuY2xrZG1f bmFtZQk9ICJjb3JlX2w0X2Nsa2RtIiwKLQkucmVjYWxjCQk9ICZmb2xsb3dwYXJlbnRfcmVjYWxj LAotfTsKLQotc3RhdGljIHN0cnVjdCBjbGsgaTJjMl9pY2sgPSB7Ci0JLm5hbWUJCT0gImkyY19p Y2siLAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9kZmx0X3dhaXQsCi0JLmlkCQk9IDIsCi0JLnBh cmVudAkJPSAmY29yZV9sNF9pY2ssCi0JLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoQ09S RV9NT0QsIENNX0lDTEtFTjEpLAotCS5lbmFibGVfYml0CT0gT01BUDM0MzBfRU5fSTJDMl9TSElG VCwKLQkuY2xrZG1fbmFtZQk9ICJjb3JlX2w0X2Nsa2RtIiwKLQkucmVjYWxjCQk9ICZmb2xsb3dw YXJlbnRfcmVjYWxjLAotfTsKLQotc3RhdGljIHN0cnVjdCBjbGsgaTJjMV9pY2sgPSB7Ci0JLm5h bWUJCT0gImkyY19pY2siLAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9kZmx0X3dhaXQsCi0JLmlk CQk9IDEsCi0JLnBhcmVudAkJPSAmY29yZV9sNF9pY2ssCi0JLmVuYWJsZV9yZWcJPSBPTUFQX0NN X1JFR0FERFIoQ09SRV9NT0QsIENNX0lDTEtFTjEpLAotCS5lbmFibGVfYml0CT0gT01BUDM0MzBf RU5fSTJDMV9TSElGVCwKLQkuY2xrZG1fbmFtZQk9ICJjb3JlX2w0X2Nsa2RtIiwKLQkucmVjYWxj CQk9ICZmb2xsb3dwYXJlbnRfcmVjYWxjLAotfTsKLQotc3RhdGljIHN0cnVjdCBjbGsgdWFydDJf aWNrID0gewotCS5uYW1lCQk9ICJ1YXJ0Ml9pY2siLAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9k Zmx0X3dhaXQsCi0JLnBhcmVudAkJPSAmY29yZV9sNF9pY2ssCi0JLmVuYWJsZV9yZWcJPSBPTUFQ X0NNX1JFR0FERFIoQ09SRV9NT0QsIENNX0lDTEtFTjEpLAotCS5lbmFibGVfYml0CT0gT01BUDM0 MzBfRU5fVUFSVDJfU0hJRlQsCi0JLmNsa2RtX25hbWUJPSAiY29yZV9sNF9jbGtkbSIsCi0JLnJl Y2FsYwkJPSAmZm9sbG93cGFyZW50X3JlY2FsYywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIHVh cnQxX2ljayA9IHsKLQkubmFtZQkJPSAidWFydDFfaWNrIiwKLQkub3BzCQk9ICZjbGtvcHNfb21h cDJfZGZsdF93YWl0LAotCS5wYXJlbnQJCT0gJmNvcmVfbDRfaWNrLAotCS5lbmFibGVfcmVnCT0g T01BUF9DTV9SRUdBRERSKENPUkVfTU9ELCBDTV9JQ0xLRU4xKSwKLQkuZW5hYmxlX2JpdAk9IE9N QVAzNDMwX0VOX1VBUlQxX1NISUZULAotCS5jbGtkbV9uYW1lCT0gImNvcmVfbDRfY2xrZG0iLAot CS5yZWNhbGMJCT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19OwotCi1zdGF0aWMgc3RydWN0IGNs ayBncHQxMV9pY2sgPSB7Ci0JLm5hbWUJCT0gImdwdDExX2ljayIsCi0JLm9wcwkJPSAmY2xrb3Bz X29tYXAyX2RmbHRfd2FpdCwKLQkucGFyZW50CQk9ICZjb3JlX2w0X2ljaywKLQkuZW5hYmxlX3Jl Zwk9IE9NQVBfQ01fUkVHQUREUihDT1JFX01PRCwgQ01fSUNMS0VOMSksCi0JLmVuYWJsZV9iaXQJ PSBPTUFQMzQzMF9FTl9HUFQxMV9TSElGVCwKLQkuY2xrZG1fbmFtZQk9ICJjb3JlX2w0X2Nsa2Rt IiwKLQkucmVjYWxjCQk9ICZmb2xsb3dwYXJlbnRfcmVjYWxjLAotfTsKLQotc3RhdGljIHN0cnVj dCBjbGsgZ3B0MTBfaWNrID0gewotCS5uYW1lCQk9ICJncHQxMF9pY2siLAotCS5vcHMJCT0gJmNs a29wc19vbWFwMl9kZmx0X3dhaXQsCi0JLnBhcmVudAkJPSAmY29yZV9sNF9pY2ssCi0JLmVuYWJs ZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoQ09SRV9NT0QsIENNX0lDTEtFTjEpLAotCS5lbmFibGVf Yml0CT0gT01BUDM0MzBfRU5fR1BUMTBfU0hJRlQsCi0JLmNsa2RtX25hbWUJPSAiY29yZV9sNF9j bGtkbSIsCi0JLnJlY2FsYwkJPSAmZm9sbG93cGFyZW50X3JlY2FsYywKLX07Ci0KLXN0YXRpYyBz dHJ1Y3QgY2xrIG1jYnNwNV9pY2sgPSB7Ci0JLm5hbWUJCT0gIm1jYnNwX2ljayIsCi0JLm9wcwkJ PSAmY2xrb3BzX29tYXAyX2RmbHRfd2FpdCwKLQkuaWQJCT0gNSwKLQkucGFyZW50CQk9ICZjb3Jl X2w0X2ljaywKLQkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihDT1JFX01PRCwgQ01fSUNM S0VOMSksCi0JLmVuYWJsZV9iaXQJPSBPTUFQMzQzMF9FTl9NQ0JTUDVfU0hJRlQsCi0JLmNsa2Rt X25hbWUJPSAiY29yZV9sNF9jbGtkbSIsCi0JLnJlY2FsYwkJPSAmZm9sbG93cGFyZW50X3JlY2Fs YywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIG1jYnNwMV9pY2sgPSB7Ci0JLm5hbWUJCT0gIm1j YnNwX2ljayIsCi0JLm9wcwkJPSAmY2xrb3BzX29tYXAyX2RmbHRfd2FpdCwKLQkuaWQJCT0gMSwK LQkucGFyZW50CQk9ICZjb3JlX2w0X2ljaywKLQkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQURE UihDT1JFX01PRCwgQ01fSUNMS0VOMSksCi0JLmVuYWJsZV9iaXQJPSBPTUFQMzQzMF9FTl9NQ0JT UDFfU0hJRlQsCi0JLmNsa2RtX25hbWUJPSAiY29yZV9sNF9jbGtkbSIsCi0JLnJlY2FsYwkJPSAm Zm9sbG93cGFyZW50X3JlY2FsYywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIGZhY19pY2sgPSB7 Ci0JLm5hbWUJCT0gImZhY19pY2siLAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9kZmx0X3dhaXQs Ci0JLnBhcmVudAkJPSAmY29yZV9sNF9pY2ssCi0JLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FE RFIoQ09SRV9NT0QsIENNX0lDTEtFTjEpLAotCS5lbmFibGVfYml0CT0gT01BUDM0MzBFUzFfRU5f RkFDX1NISUZULAotCS5jbGtkbV9uYW1lCT0gImNvcmVfbDRfY2xrZG0iLAotCS5yZWNhbGMJCT0g JmZvbGxvd3BhcmVudF9yZWNhbGMsCi19OwotCi1zdGF0aWMgc3RydWN0IGNsayBtYWlsYm94ZXNf aWNrID0gewotCS5uYW1lCQk9ICJtYWlsYm94ZXNfaWNrIiwKLQkub3BzCQk9ICZjbGtvcHNfb21h cDJfZGZsdF93YWl0LAotCS5wYXJlbnQJCT0gJmNvcmVfbDRfaWNrLAotCS5lbmFibGVfcmVnCT0g T01BUF9DTV9SRUdBRERSKENPUkVfTU9ELCBDTV9JQ0xLRU4xKSwKLQkuZW5hYmxlX2JpdAk9IE9N QVAzNDMwX0VOX01BSUxCT1hFU19TSElGVCwKLQkuY2xrZG1fbmFtZQk9ICJjb3JlX2w0X2Nsa2Rt IiwKLQkucmVjYWxjCQk9ICZmb2xsb3dwYXJlbnRfcmVjYWxjLAotfTsKLQotc3RhdGljIHN0cnVj dCBjbGsgb21hcGN0cmxfaWNrID0gewotCS5uYW1lCQk9ICJvbWFwY3RybF9pY2siLAotCS5vcHMJ CT0gJmNsa29wc19vbWFwMl9kZmx0X3dhaXQsCi0JLnBhcmVudAkJPSAmY29yZV9sNF9pY2ssCi0J LmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoQ09SRV9NT0QsIENNX0lDTEtFTjEpLAotCS5l bmFibGVfYml0CT0gT01BUDM0MzBfRU5fT01BUENUUkxfU0hJRlQsCi0JLmZsYWdzCQk9IEVOQUJM RV9PTl9JTklULAotCS5yZWNhbGMJCT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19OwotCi0vKiBT U0lfTDRfSUNLIGJhc2VkIGNsb2NrcyAqLwotCi1zdGF0aWMgc3RydWN0IGNsayBzc2lfbDRfaWNr ID0gewotCS5uYW1lCQk9ICJzc2lfbDRfaWNrIiwKLQkub3BzCQk9ICZjbGtvcHNfbnVsbCwKLQku cGFyZW50CQk9ICZsNF9pY2ssCi0JLmNsa2RtX25hbWUJPSAiY29yZV9sNF9jbGtkbSIsCi0JLnJl Y2FsYwkJPSAmZm9sbG93cGFyZW50X3JlY2FsYywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIHNz aV9pY2tfMzQzMGVzMSA9IHsKLQkubmFtZQkJPSAic3NpX2ljayIsCi0JLm9wcwkJPSAmY2xrb3Bz X29tYXAyX2RmbHQsCi0JLnBhcmVudAkJPSAmc3NpX2w0X2ljaywKLQkuZW5hYmxlX3JlZwk9IE9N QVBfQ01fUkVHQUREUihDT1JFX01PRCwgQ01fSUNMS0VOMSksCi0JLmVuYWJsZV9iaXQJPSBPTUFQ MzQzMF9FTl9TU0lfU0hJRlQsCi0JLmNsa2RtX25hbWUJPSAiY29yZV9sNF9jbGtkbSIsCi0JLnJl Y2FsYwkJPSAmZm9sbG93cGFyZW50X3JlY2FsYywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIHNz aV9pY2tfMzQzMGVzMiA9IHsKLQkubmFtZQkJPSAic3NpX2ljayIsCi0JLm9wcwkJPSAmY2xrb3Bz X29tYXAzNDMwZXMyX3NzaV93YWl0LAotCS5wYXJlbnQJCT0gJnNzaV9sNF9pY2ssCi0JLmVuYWJs ZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoQ09SRV9NT0QsIENNX0lDTEtFTjEpLAotCS5lbmFibGVf Yml0CT0gT01BUDM0MzBfRU5fU1NJX1NISUZULAotCS5jbGtkbV9uYW1lCT0gImNvcmVfbDRfY2xr ZG0iLAotCS5yZWNhbGMJCT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19OwotCi0vKiBSRVZJU0lU OiBUZWNobmljYWxseSB0aGUgVFJNIGNsYWltcyB0aGF0IHRoaXMgaXMgQ09SRV9DTEsgYmFzZWQs Ci0gKiBidXQgbDRfaWNrIG1ha2VzIG1vcmUgc2Vuc2UgdG8gbWUgKi8KLQotc3RhdGljIGNvbnN0 IHN0cnVjdCBjbGtzZWwgdXNiX2w0X2Nsa3NlbFtdID0gewotCXsgLnBhcmVudCA9ICZsNF9pY2ss IC5yYXRlcyA9IGRpdjJfcmF0ZXMgfSwKLQl7IC5wYXJlbnQgPSBOVUxMIH0sCi19OwotCi1zdGF0 aWMgc3RydWN0IGNsayB1c2JfbDRfaWNrID0gewotCS5uYW1lCQk9ICJ1c2JfbDRfaWNrIiwKLQku b3BzCQk9ICZjbGtvcHNfb21hcDJfZGZsdF93YWl0LAotCS5wYXJlbnQJCT0gJmw0X2ljaywKLQku aW5pdAkJPSAmb21hcDJfaW5pdF9jbGtzZWxfcGFyZW50LAotCS5lbmFibGVfcmVnCT0gT01BUF9D TV9SRUdBRERSKENPUkVfTU9ELCBDTV9JQ0xLRU4xKSwKLQkuZW5hYmxlX2JpdAk9IE9NQVAzNDMw RVMxX0VOX0ZTSE9TVFVTQl9TSElGVCwKLQkuY2xrc2VsX3JlZwk9IE9NQVBfQ01fUkVHQUREUihD T1JFX01PRCwgQ01fQ0xLU0VMKSwKLQkuY2xrc2VsX21hc2sJPSBPTUFQMzQzMEVTMV9DTEtTRUxf RlNIT1NUVVNCX01BU0ssCi0JLmNsa3NlbAkJPSB1c2JfbDRfY2xrc2VsLAotCS5yZWNhbGMJCT0g Jm9tYXAyX2Nsa3NlbF9yZWNhbGMsCi19OwotCi0vKiBTRUNVUklUWV9MNF9JQ0syIGJhc2VkIGNs b2NrcyAqLwotCi1zdGF0aWMgc3RydWN0IGNsayBzZWN1cml0eV9sNF9pY2syID0gewotCS5uYW1l CQk9ICJzZWN1cml0eV9sNF9pY2syIiwKLQkub3BzCQk9ICZjbGtvcHNfbnVsbCwKLQkucGFyZW50 CQk9ICZsNF9pY2ssCi0JLnJlY2FsYwkJPSAmZm9sbG93cGFyZW50X3JlY2FsYywKLX07Ci0KLXN0 YXRpYyBzdHJ1Y3QgY2xrIGFlczFfaWNrID0gewotCS5uYW1lCQk9ICJhZXMxX2ljayIsCi0JLm9w cwkJPSAmY2xrb3BzX29tYXAyX2RmbHRfd2FpdCwKLQkucGFyZW50CQk9ICZzZWN1cml0eV9sNF9p Y2syLAotCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKENPUkVfTU9ELCBDTV9JQ0xLRU4y KSwKLQkuZW5hYmxlX2JpdAk9IE9NQVAzNDMwX0VOX0FFUzFfU0hJRlQsCi0JLnJlY2FsYwkJPSAm Zm9sbG93cGFyZW50X3JlY2FsYywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIHJuZ19pY2sgPSB7 Ci0JLm5hbWUJCT0gInJuZ19pY2siLAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9kZmx0X3dhaXQs Ci0JLnBhcmVudAkJPSAmc2VjdXJpdHlfbDRfaWNrMiwKLQkuZW5hYmxlX3JlZwk9IE9NQVBfQ01f UkVHQUREUihDT1JFX01PRCwgQ01fSUNMS0VOMiksCi0JLmVuYWJsZV9iaXQJPSBPTUFQMzQzMF9F Tl9STkdfU0hJRlQsCi0JLnJlY2FsYwkJPSAmZm9sbG93cGFyZW50X3JlY2FsYywKLX07Ci0KLXN0 YXRpYyBzdHJ1Y3QgY2xrIHNoYTExX2ljayA9IHsKLQkubmFtZQkJPSAic2hhMTFfaWNrIiwKLQku b3BzCQk9ICZjbGtvcHNfb21hcDJfZGZsdF93YWl0LAotCS5wYXJlbnQJCT0gJnNlY3VyaXR5X2w0 X2ljazIsCi0JLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoQ09SRV9NT0QsIENNX0lDTEtF TjIpLAotCS5lbmFibGVfYml0CT0gT01BUDM0MzBfRU5fU0hBMTFfU0hJRlQsCi0JLnJlY2FsYwkJ PSAmZm9sbG93cGFyZW50X3JlY2FsYywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIGRlczFfaWNr ID0gewotCS5uYW1lCQk9ICJkZXMxX2ljayIsCi0JLm9wcwkJPSAmY2xrb3BzX29tYXAyX2RmbHRf d2FpdCwKLQkucGFyZW50CQk9ICZzZWN1cml0eV9sNF9pY2syLAotCS5lbmFibGVfcmVnCT0gT01B UF9DTV9SRUdBRERSKENPUkVfTU9ELCBDTV9JQ0xLRU4yKSwKLQkuZW5hYmxlX2JpdAk9IE9NQVAz NDMwX0VOX0RFUzFfU0hJRlQsCi0JLnJlY2FsYwkJPSAmZm9sbG93cGFyZW50X3JlY2FsYywKLX07 Ci0KLS8qIERTUyAqLwotc3RhdGljIHN0cnVjdCBjbGsgZHNzMV9hbHdvbl9mY2tfMzQzMGVzMSA9 IHsKLQkubmFtZQkJPSAiZHNzMV9hbHdvbl9mY2siLAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9k Zmx0LAotCS5wYXJlbnQJCT0gJmRwbGw0X200eDJfY2ssCi0JLmVuYWJsZV9yZWcJPSBPTUFQX0NN X1JFR0FERFIoT01BUDM0MzBfRFNTX01PRCwgQ01fRkNMS0VOKSwKLQkuZW5hYmxlX2JpdAk9IE9N QVAzNDMwX0VOX0RTUzFfU0hJRlQsCi0JLmNsa2RtX25hbWUJPSAiZHNzX2Nsa2RtIiwKLQkucmVj YWxjCQk9ICZmb2xsb3dwYXJlbnRfcmVjYWxjLAotfTsKLQotc3RhdGljIHN0cnVjdCBjbGsgZHNz MV9hbHdvbl9mY2tfMzQzMGVzMiA9IHsKLQkubmFtZQkJPSAiZHNzMV9hbHdvbl9mY2siLAotCS5v cHMJCT0gJmNsa29wc19vbWFwMzQzMGVzMl9kc3NfdXNiaG9zdF93YWl0LAotCS5wYXJlbnQJCT0g JmRwbGw0X200eDJfY2ssCi0JLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoT01BUDM0MzBf RFNTX01PRCwgQ01fRkNMS0VOKSwKLQkuZW5hYmxlX2JpdAk9IE9NQVAzNDMwX0VOX0RTUzFfU0hJ RlQsCi0JLmNsa2RtX25hbWUJPSAiZHNzX2Nsa2RtIiwKLQkucmVjYWxjCQk9ICZmb2xsb3dwYXJl bnRfcmVjYWxjLAotfTsKLQotc3RhdGljIHN0cnVjdCBjbGsgZHNzX3R2X2ZjayA9IHsKLQkubmFt ZQkJPSAiZHNzX3R2X2ZjayIsCi0JLm9wcwkJPSAmY2xrb3BzX29tYXAyX2RmbHQsCi0JLnBhcmVu dAkJPSAmb21hcF81NG1fZmNrLAotCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKE9NQVAz NDMwX0RTU19NT0QsIENNX0ZDTEtFTiksCi0JLmVuYWJsZV9iaXQJPSBPTUFQMzQzMF9FTl9UVl9T SElGVCwKLQkuY2xrZG1fbmFtZQk9ICJkc3NfY2xrZG0iLAotCS5yZWNhbGMJCT0gJmZvbGxvd3Bh cmVudF9yZWNhbGMsCi19OwotCi1zdGF0aWMgc3RydWN0IGNsayBkc3NfOTZtX2ZjayA9IHsKLQku bmFtZQkJPSAiZHNzXzk2bV9mY2siLAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9kZmx0LAotCS5w YXJlbnQJCT0gJm9tYXBfOTZtX2ZjaywKLQkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihP TUFQMzQzMF9EU1NfTU9ELCBDTV9GQ0xLRU4pLAotCS5lbmFibGVfYml0CT0gT01BUDM0MzBfRU5f VFZfU0hJRlQsCi0JLmNsa2RtX25hbWUJPSAiZHNzX2Nsa2RtIiwKLQkucmVjYWxjCQk9ICZmb2xs b3dwYXJlbnRfcmVjYWxjLAotfTsKLQotc3RhdGljIHN0cnVjdCBjbGsgZHNzMl9hbHdvbl9mY2sg PSB7Ci0JLm5hbWUJCT0gImRzczJfYWx3b25fZmNrIiwKLQkub3BzCQk9ICZjbGtvcHNfb21hcDJf ZGZsdCwKLQkucGFyZW50CQk9ICZzeXNfY2ssCi0JLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FE RFIoT01BUDM0MzBfRFNTX01PRCwgQ01fRkNMS0VOKSwKLQkuZW5hYmxlX2JpdAk9IE9NQVAzNDMw X0VOX0RTUzJfU0hJRlQsCi0JLmNsa2RtX25hbWUJPSAiZHNzX2Nsa2RtIiwKLQkucmVjYWxjCQk9 ICZmb2xsb3dwYXJlbnRfcmVjYWxjLAotfTsKLQotc3RhdGljIHN0cnVjdCBjbGsgZHNzX2lja18z NDMwZXMxID0gewotCS8qIEhhbmRsZXMgYm90aCBMMyBhbmQgTDQgY2xvY2tzICovCi0JLm5hbWUJ CT0gImRzc19pY2siLAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9kZmx0LAotCS5wYXJlbnQJCT0g Jmw0X2ljaywKLQkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihPTUFQMzQzMF9EU1NfTU9E LCBDTV9JQ0xLRU4pLAotCS5lbmFibGVfYml0CT0gT01BUDM0MzBfQ01fSUNMS0VOX0RTU19FTl9E U1NfU0hJRlQsCi0JLmNsa2RtX25hbWUJPSAiZHNzX2Nsa2RtIiwKLQkucmVjYWxjCQk9ICZmb2xs b3dwYXJlbnRfcmVjYWxjLAotfTsKLQotc3RhdGljIHN0cnVjdCBjbGsgZHNzX2lja18zNDMwZXMy ID0gewotCS8qIEhhbmRsZXMgYm90aCBMMyBhbmQgTDQgY2xvY2tzICovCi0JLm5hbWUJCT0gImRz c19pY2siLAotCS5vcHMJCT0gJmNsa29wc19vbWFwMzQzMGVzMl9kc3NfdXNiaG9zdF93YWl0LAot CS5wYXJlbnQJCT0gJmw0X2ljaywKLQkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihPTUFQ MzQzMF9EU1NfTU9ELCBDTV9JQ0xLRU4pLAotCS5lbmFibGVfYml0CT0gT01BUDM0MzBfQ01fSUNM S0VOX0RTU19FTl9EU1NfU0hJRlQsCi0JLmNsa2RtX25hbWUJPSAiZHNzX2Nsa2RtIiwKLQkucmVj YWxjCQk9ICZmb2xsb3dwYXJlbnRfcmVjYWxjLAotfTsKLQotLyogQ0FNICovCi0KLXN0YXRpYyBz dHJ1Y3QgY2xrIGNhbV9tY2xrID0gewotCS5uYW1lCQk9ICJjYW1fbWNsayIsCi0JLm9wcwkJPSAm Y2xrb3BzX29tYXAyX2RmbHQsCi0JLnBhcmVudAkJPSAmZHBsbDRfbTV4Ml9jaywKLQkuZW5hYmxl X3JlZwk9IE9NQVBfQ01fUkVHQUREUihPTUFQMzQzMF9DQU1fTU9ELCBDTV9GQ0xLRU4pLAotCS5l bmFibGVfYml0CT0gT01BUDM0MzBfRU5fQ0FNX1NISUZULAotCS5jbGtkbV9uYW1lCT0gImNhbV9j bGtkbSIsCi0JLnJlY2FsYwkJPSAmZm9sbG93cGFyZW50X3JlY2FsYywKLX07Ci0KLXN0YXRpYyBz dHJ1Y3QgY2xrIGNhbV9pY2sgPSB7Ci0JLyogSGFuZGxlcyBib3RoIEwzIGFuZCBMNCBjbG9ja3Mg Ki8KLQkubmFtZQkJPSAiY2FtX2ljayIsCi0JLm9wcwkJPSAmY2xrb3BzX29tYXAyX2RmbHQsCi0J LnBhcmVudAkJPSAmbDRfaWNrLAotCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKE9NQVAz NDMwX0NBTV9NT0QsIENNX0lDTEtFTiksCi0JLmVuYWJsZV9iaXQJPSBPTUFQMzQzMF9FTl9DQU1f U0hJRlQsCi0JLmNsa2RtX25hbWUJPSAiY2FtX2Nsa2RtIiwKLQkucmVjYWxjCQk9ICZmb2xsb3dw YXJlbnRfcmVjYWxjLAotfTsKLQotc3RhdGljIHN0cnVjdCBjbGsgY3NpMl85Nm1fZmNrID0gewot CS5uYW1lCQk9ICJjc2kyXzk2bV9mY2siLAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9kZmx0LAot CS5wYXJlbnQJCT0gJmNvcmVfOTZtX2ZjaywKLQkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQURE UihPTUFQMzQzMF9DQU1fTU9ELCBDTV9GQ0xLRU4pLAotCS5lbmFibGVfYml0CT0gT01BUDM0MzBf RU5fQ1NJMl9TSElGVCwKLQkuY2xrZG1fbmFtZQk9ICJjYW1fY2xrZG0iLAotCS5yZWNhbGMJCT0g JmZvbGxvd3BhcmVudF9yZWNhbGMsCi19OwotCi0vKiBVU0JIT1NUIC0gMzQzMEVTMiBvbmx5ICov Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIHVzYmhvc3RfMTIwbV9mY2sgPSB7Ci0JLm5hbWUJCT0gInVz Ymhvc3RfMTIwbV9mY2siLAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9kZmx0LAotCS5wYXJlbnQJ CT0gJmRwbGw1X20yX2NrLAotCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKE9NQVAzNDMw RVMyX1VTQkhPU1RfTU9ELCBDTV9GQ0xLRU4pLAotCS5lbmFibGVfYml0CT0gT01BUDM0MzBFUzJf RU5fVVNCSE9TVDJfU0hJRlQsCi0JLmNsa2RtX25hbWUJPSAidXNiaG9zdF9jbGtkbSIsCi0JLnJl Y2FsYwkJPSAmZm9sbG93cGFyZW50X3JlY2FsYywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIHVz Ymhvc3RfNDhtX2ZjayA9IHsKLQkubmFtZQkJPSAidXNiaG9zdF80OG1fZmNrIiwKLQkub3BzCQk9 ICZjbGtvcHNfb21hcDM0MzBlczJfZHNzX3VzYmhvc3Rfd2FpdCwKLQkucGFyZW50CQk9ICZvbWFw XzQ4bV9mY2ssCi0JLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoT01BUDM0MzBFUzJfVVNC SE9TVF9NT0QsIENNX0ZDTEtFTiksCi0JLmVuYWJsZV9iaXQJPSBPTUFQMzQzMEVTMl9FTl9VU0JI T1NUMV9TSElGVCwKLQkuY2xrZG1fbmFtZQk9ICJ1c2Job3N0X2Nsa2RtIiwKLQkucmVjYWxjCQk9 ICZmb2xsb3dwYXJlbnRfcmVjYWxjLAotfTsKLQotc3RhdGljIHN0cnVjdCBjbGsgdXNiaG9zdF9p Y2sgPSB7Ci0JLyogSGFuZGxlcyBib3RoIEwzIGFuZCBMNCBjbG9ja3MgKi8KLQkubmFtZQkJPSAi dXNiaG9zdF9pY2siLAotCS5vcHMJCT0gJmNsa29wc19vbWFwMzQzMGVzMl9kc3NfdXNiaG9zdF93 YWl0LAotCS5wYXJlbnQJCT0gJmw0X2ljaywKLQkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQURE UihPTUFQMzQzMEVTMl9VU0JIT1NUX01PRCwgQ01fSUNMS0VOKSwKLQkuZW5hYmxlX2JpdAk9IE9N QVAzNDMwRVMyX0VOX1VTQkhPU1RfU0hJRlQsCi0JLmNsa2RtX25hbWUJPSAidXNiaG9zdF9jbGtk bSIsCi0JLnJlY2FsYwkJPSAmZm9sbG93cGFyZW50X3JlY2FsYywKLX07Ci0KLS8qIFdLVVAgKi8K LQotc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtzZWxfcmF0ZSB1c2ltXzk2bV9yYXRlc1tdID0gewot CXsgLmRpdiA9IDIsICAudmFsID0gMywgLmZsYWdzID0gUkFURV9JTl8zNDNYIHwgREVGQVVMVF9S QVRFIH0sCi0JeyAuZGl2ID0gNCwgIC52YWwgPSA0LCAuZmxhZ3MgPSBSQVRFX0lOXzM0M1ggfSwK LQl7IC5kaXYgPSA4LCAgLnZhbCA9IDUsIC5mbGFncyA9IFJBVEVfSU5fMzQzWCB9LAotCXsgLmRp diA9IDEwLCAudmFsID0gNiwgLmZsYWdzID0gUkFURV9JTl8zNDNYIH0sCi0JeyAuZGl2ID0gMCB9 LAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtzZWxfcmF0ZSB1c2ltXzEyMG1fcmF0ZXNb XSA9IHsKLQl7IC5kaXYgPSA0LCAgLnZhbCA9IDcsCS5mbGFncyA9IFJBVEVfSU5fMzQzWCB8IERF RkFVTFRfUkFURSB9LAotCXsgLmRpdiA9IDgsICAudmFsID0gOCwJLmZsYWdzID0gUkFURV9JTl8z NDNYIH0sCi0JeyAuZGl2ID0gMTYsIC52YWwgPSA5LAkuZmxhZ3MgPSBSQVRFX0lOXzM0M1ggfSwK LQl7IC5kaXYgPSAyMCwgLnZhbCA9IDEwLCAuZmxhZ3MgPSBSQVRFX0lOXzM0M1ggfSwKLQl7IC5k aXYgPSAwIH0sCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGNsa3NlbCB1c2ltX2Nsa3NlbFtd ID0gewotCXsgLnBhcmVudCA9ICZvbWFwXzk2bV9mY2ssCS5yYXRlcyA9IHVzaW1fOTZtX3JhdGVz IH0sCi0JeyAucGFyZW50ID0gJmRwbGw1X20yX2NrLAkucmF0ZXMgPSB1c2ltXzEyMG1fcmF0ZXMg fSwKLQl7IC5wYXJlbnQgPSAmc3lzX2NrLAkJLnJhdGVzID0gZGl2Ml9yYXRlcyB9LAotCXsgLnBh cmVudCA9IE5VTEwgfSwKLX07Ci0KLS8qIDM0MzBFUzIgb25seSAqLwotc3RhdGljIHN0cnVjdCBj bGsgdXNpbV9mY2sgPSB7Ci0JLm5hbWUJCT0gInVzaW1fZmNrIiwKLQkub3BzCQk9ICZjbGtvcHNf b21hcDJfZGZsdF93YWl0LAotCS5pbml0CQk9ICZvbWFwMl9pbml0X2Nsa3NlbF9wYXJlbnQsCi0J LmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoV0tVUF9NT0QsIENNX0ZDTEtFTiksCi0JLmVu YWJsZV9iaXQJPSBPTUFQMzQzMEVTMl9FTl9VU0lNT0NQX1NISUZULAotCS5jbGtzZWxfcmVnCT0g T01BUF9DTV9SRUdBRERSKFdLVVBfTU9ELCBDTV9DTEtTRUwpLAotCS5jbGtzZWxfbWFzawk9IE9N QVAzNDMwRVMyX0NMS1NFTF9VU0lNT0NQX01BU0ssCi0JLmNsa3NlbAkJPSB1c2ltX2Nsa3NlbCwK LQkucmVjYWxjCQk9ICZvbWFwMl9jbGtzZWxfcmVjYWxjLAotfTsKLQotLyogWFhYIHNob3VsZCBn cHQxJ3MgY2xrc2VsIGhhdmUgd2t1cF8zMmtfZmNrIGFzIHRoZSAzMmsgb3B0PyAqLwotc3RhdGlj IHN0cnVjdCBjbGsgZ3B0MV9mY2sgPSB7Ci0JLm5hbWUJCT0gImdwdDFfZmNrIiwKLQkub3BzCQk9 ICZjbGtvcHNfb21hcDJfZGZsdF93YWl0LAotCS5pbml0CQk9ICZvbWFwMl9pbml0X2Nsa3NlbF9w YXJlbnQsCi0JLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoV0tVUF9NT0QsIENNX0ZDTEtF TiksCi0JLmVuYWJsZV9iaXQJPSBPTUFQMzQzMF9FTl9HUFQxX1NISUZULAotCS5jbGtzZWxfcmVn CT0gT01BUF9DTV9SRUdBRERSKFdLVVBfTU9ELCBDTV9DTEtTRUwpLAotCS5jbGtzZWxfbWFzawk9 IE9NQVAzNDMwX0NMS1NFTF9HUFQxX01BU0ssCi0JLmNsa3NlbAkJPSBvbWFwMzQzeF9ncHRfY2xr c2VsLAotCS5jbGtkbV9uYW1lCT0gIndrdXBfY2xrZG0iLAotCS5yZWNhbGMJCT0gJm9tYXAyX2Ns a3NlbF9yZWNhbGMsCi19OwotCi1zdGF0aWMgc3RydWN0IGNsayB3a3VwXzMya19mY2sgPSB7Ci0J Lm5hbWUJCT0gIndrdXBfMzJrX2ZjayIsCi0JLm9wcwkJPSAmY2xrb3BzX251bGwsCi0JLnBhcmVu dAkJPSAmb21hcF8zMmtfZmNrLAotCS5jbGtkbV9uYW1lCT0gIndrdXBfY2xrZG0iLAotCS5yZWNh bGMJCT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19OwotCi1zdGF0aWMgc3RydWN0IGNsayBncGlv MV9kYmNrID0gewotCS5uYW1lCQk9ICJncGlvMV9kYmNrIiwKLQkub3BzCQk9ICZjbGtvcHNfb21h cDJfZGZsdCwKLQkucGFyZW50CQk9ICZ3a3VwXzMya19mY2ssCi0JLmVuYWJsZV9yZWcJPSBPTUFQ X0NNX1JFR0FERFIoV0tVUF9NT0QsIENNX0ZDTEtFTiksCi0JLmVuYWJsZV9iaXQJPSBPTUFQMzQz MF9FTl9HUElPMV9TSElGVCwKLQkuY2xrZG1fbmFtZQk9ICJ3a3VwX2Nsa2RtIiwKLQkucmVjYWxj CQk9ICZmb2xsb3dwYXJlbnRfcmVjYWxjLAotfTsKLQotc3RhdGljIHN0cnVjdCBjbGsgd2R0Ml9m Y2sgPSB7Ci0JLm5hbWUJCT0gIndkdDJfZmNrIiwKLQkub3BzCQk9ICZjbGtvcHNfb21hcDJfZGZs dF93YWl0LAotCS5wYXJlbnQJCT0gJndrdXBfMzJrX2ZjaywKLQkuZW5hYmxlX3JlZwk9IE9NQVBf Q01fUkVHQUREUihXS1VQX01PRCwgQ01fRkNMS0VOKSwKLQkuZW5hYmxlX2JpdAk9IE9NQVAzNDMw X0VOX1dEVDJfU0hJRlQsCi0JLmNsa2RtX25hbWUJPSAid2t1cF9jbGtkbSIsCi0JLnJlY2FsYwkJ PSAmZm9sbG93cGFyZW50X3JlY2FsYywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIHdrdXBfbDRf aWNrID0gewotCS5uYW1lCQk9ICJ3a3VwX2w0X2ljayIsCi0JLm9wcwkJPSAmY2xrb3BzX251bGws Ci0JLnBhcmVudAkJPSAmc3lzX2NrLAotCS5jbGtkbV9uYW1lCT0gIndrdXBfY2xrZG0iLAotCS5y ZWNhbGMJCT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19OwotCi0vKiAzNDMwRVMyIG9ubHkgKi8K LS8qIE5ldmVyIHNwZWNpZmljYWxseSBuYW1lZCBpbiB0aGUgVFJNLCBzbyB3ZSBoYXZlIHRvIGlu ZmVyIGEgbGlrZWx5IG5hbWUgKi8KLXN0YXRpYyBzdHJ1Y3QgY2xrIHVzaW1faWNrID0gewotCS5u YW1lCQk9ICJ1c2ltX2ljayIsCi0JLm9wcwkJPSAmY2xrb3BzX29tYXAyX2RmbHRfd2FpdCwKLQku cGFyZW50CQk9ICZ3a3VwX2w0X2ljaywKLQkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihX S1VQX01PRCwgQ01fSUNMS0VOKSwKLQkuZW5hYmxlX2JpdAk9IE9NQVAzNDMwRVMyX0VOX1VTSU1P Q1BfU0hJRlQsCi0JLmNsa2RtX25hbWUJPSAid2t1cF9jbGtkbSIsCi0JLnJlY2FsYwkJPSAmZm9s bG93cGFyZW50X3JlY2FsYywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIHdkdDJfaWNrID0gewot CS5uYW1lCQk9ICJ3ZHQyX2ljayIsCi0JLm9wcwkJPSAmY2xrb3BzX29tYXAyX2RmbHRfd2FpdCwK LQkucGFyZW50CQk9ICZ3a3VwX2w0X2ljaywKLQkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQURE UihXS1VQX01PRCwgQ01fSUNMS0VOKSwKLQkuZW5hYmxlX2JpdAk9IE9NQVAzNDMwX0VOX1dEVDJf U0hJRlQsCi0JLmNsa2RtX25hbWUJPSAid2t1cF9jbGtkbSIsCi0JLnJlY2FsYwkJPSAmZm9sbG93 cGFyZW50X3JlY2FsYywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIHdkdDFfaWNrID0gewotCS5u YW1lCQk9ICJ3ZHQxX2ljayIsCi0JLm9wcwkJPSAmY2xrb3BzX29tYXAyX2RmbHRfd2FpdCwKLQku cGFyZW50CQk9ICZ3a3VwX2w0X2ljaywKLQkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihX S1VQX01PRCwgQ01fSUNMS0VOKSwKLQkuZW5hYmxlX2JpdAk9IE9NQVAzNDMwX0VOX1dEVDFfU0hJ RlQsCi0JLmNsa2RtX25hbWUJPSAid2t1cF9jbGtkbSIsCi0JLnJlY2FsYwkJPSAmZm9sbG93cGFy ZW50X3JlY2FsYywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIGdwaW8xX2ljayA9IHsKLQkubmFt ZQkJPSAiZ3BpbzFfaWNrIiwKLQkub3BzCQk9ICZjbGtvcHNfb21hcDJfZGZsdF93YWl0LAotCS5w YXJlbnQJCT0gJndrdXBfbDRfaWNrLAotCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKFdL VVBfTU9ELCBDTV9JQ0xLRU4pLAotCS5lbmFibGVfYml0CT0gT01BUDM0MzBfRU5fR1BJTzFfU0hJ RlQsCi0JLmNsa2RtX25hbWUJPSAid2t1cF9jbGtkbSIsCi0JLnJlY2FsYwkJPSAmZm9sbG93cGFy ZW50X3JlY2FsYywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIG9tYXBfMzJrc3luY19pY2sgPSB7 Ci0JLm5hbWUJCT0gIm9tYXBfMzJrc3luY19pY2siLAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9k Zmx0X3dhaXQsCi0JLnBhcmVudAkJPSAmd2t1cF9sNF9pY2ssCi0JLmVuYWJsZV9yZWcJPSBPTUFQ X0NNX1JFR0FERFIoV0tVUF9NT0QsIENNX0lDTEtFTiksCi0JLmVuYWJsZV9iaXQJPSBPTUFQMzQz MF9FTl8zMktTWU5DX1NISUZULAotCS5jbGtkbV9uYW1lCT0gIndrdXBfY2xrZG0iLAotCS5yZWNh bGMJCT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19OwotCi0vKiBYWFggVGhpcyBjbG9jayBubyBs b25nZXIgZXhpc3RzIGluIDM0MzAgVFJNIHJldiBGICovCi1zdGF0aWMgc3RydWN0IGNsayBncHQx Ml9pY2sgPSB7Ci0JLm5hbWUJCT0gImdwdDEyX2ljayIsCi0JLm9wcwkJPSAmY2xrb3BzX29tYXAy X2RmbHRfd2FpdCwKLQkucGFyZW50CQk9ICZ3a3VwX2w0X2ljaywKLQkuZW5hYmxlX3JlZwk9IE9N QVBfQ01fUkVHQUREUihXS1VQX01PRCwgQ01fSUNMS0VOKSwKLQkuZW5hYmxlX2JpdAk9IE9NQVAz NDMwX0VOX0dQVDEyX1NISUZULAotCS5jbGtkbV9uYW1lCT0gIndrdXBfY2xrZG0iLAotCS5yZWNh bGMJCT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19OwotCi1zdGF0aWMgc3RydWN0IGNsayBncHQx X2ljayA9IHsKLQkubmFtZQkJPSAiZ3B0MV9pY2siLAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9k Zmx0X3dhaXQsCi0JLnBhcmVudAkJPSAmd2t1cF9sNF9pY2ssCi0JLmVuYWJsZV9yZWcJPSBPTUFQ X0NNX1JFR0FERFIoV0tVUF9NT0QsIENNX0lDTEtFTiksCi0JLmVuYWJsZV9iaXQJPSBPTUFQMzQz MF9FTl9HUFQxX1NISUZULAotCS5jbGtkbV9uYW1lCT0gIndrdXBfY2xrZG0iLAotCS5yZWNhbGMJ CT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19OwotCi0KLQotLyogUEVSIGNsb2NrIGRvbWFpbiAq LwotCi1zdGF0aWMgc3RydWN0IGNsayBwZXJfOTZtX2ZjayA9IHsKLQkubmFtZQkJPSAicGVyXzk2 bV9mY2siLAotCS5vcHMJCT0gJmNsa29wc19udWxsLAotCS5wYXJlbnQJCT0gJm9tYXBfOTZtX2Fs d29uX2ZjaywKLQkuY2xrZG1fbmFtZQk9ICJwZXJfY2xrZG0iLAotCS5yZWNhbGMJCT0gJmZvbGxv d3BhcmVudF9yZWNhbGMsCi19OwotCi1zdGF0aWMgc3RydWN0IGNsayBwZXJfNDhtX2ZjayA9IHsK LQkubmFtZQkJPSAicGVyXzQ4bV9mY2siLAotCS5vcHMJCT0gJmNsa29wc19udWxsLAotCS5wYXJl bnQJCT0gJm9tYXBfNDhtX2ZjaywKLQkuY2xrZG1fbmFtZQk9ICJwZXJfY2xrZG0iLAotCS5yZWNh bGMJCT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19OwotCi1zdGF0aWMgc3RydWN0IGNsayB1YXJ0 M19mY2sgPSB7Ci0JLm5hbWUJCT0gInVhcnQzX2ZjayIsCi0JLm9wcwkJPSAmY2xrb3BzX29tYXAy X2RmbHRfd2FpdCwKLQkucGFyZW50CQk9ICZwZXJfNDhtX2ZjaywKLQkuZW5hYmxlX3JlZwk9IE9N QVBfQ01fUkVHQUREUihPTUFQMzQzMF9QRVJfTU9ELCBDTV9GQ0xLRU4pLAotCS5lbmFibGVfYml0 CT0gT01BUDM0MzBfRU5fVUFSVDNfU0hJRlQsCi0JLmNsa2RtX25hbWUJPSAicGVyX2Nsa2RtIiwK LQkucmVjYWxjCQk9ICZmb2xsb3dwYXJlbnRfcmVjYWxjLAotfTsKLQotc3RhdGljIHN0cnVjdCBj bGsgZ3B0Ml9mY2sgPSB7Ci0JLm5hbWUJCT0gImdwdDJfZmNrIiwKLQkub3BzCQk9ICZjbGtvcHNf b21hcDJfZGZsdF93YWl0LAotCS5pbml0CQk9ICZvbWFwMl9pbml0X2Nsa3NlbF9wYXJlbnQsCi0J LmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoT01BUDM0MzBfUEVSX01PRCwgQ01fRkNMS0VO KSwKLQkuZW5hYmxlX2JpdAk9IE9NQVAzNDMwX0VOX0dQVDJfU0hJRlQsCi0JLmNsa3NlbF9yZWcJ PSBPTUFQX0NNX1JFR0FERFIoT01BUDM0MzBfUEVSX01PRCwgQ01fQ0xLU0VMKSwKLQkuY2xrc2Vs X21hc2sJPSBPTUFQMzQzMF9DTEtTRUxfR1BUMl9NQVNLLAotCS5jbGtzZWwJCT0gb21hcDM0M3hf Z3B0X2Nsa3NlbCwKLQkuY2xrZG1fbmFtZQk9ICJwZXJfY2xrZG0iLAotCS5yZWNhbGMJCT0gJm9t YXAyX2Nsa3NlbF9yZWNhbGMsCi19OwotCi1zdGF0aWMgc3RydWN0IGNsayBncHQzX2ZjayA9IHsK LQkubmFtZQkJPSAiZ3B0M19mY2siLAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9kZmx0X3dhaXQs Ci0JLmluaXQJCT0gJm9tYXAyX2luaXRfY2xrc2VsX3BhcmVudCwKLQkuZW5hYmxlX3JlZwk9IE9N QVBfQ01fUkVHQUREUihPTUFQMzQzMF9QRVJfTU9ELCBDTV9GQ0xLRU4pLAotCS5lbmFibGVfYml0 CT0gT01BUDM0MzBfRU5fR1BUM19TSElGVCwKLQkuY2xrc2VsX3JlZwk9IE9NQVBfQ01fUkVHQURE UihPTUFQMzQzMF9QRVJfTU9ELCBDTV9DTEtTRUwpLAotCS5jbGtzZWxfbWFzawk9IE9NQVAzNDMw X0NMS1NFTF9HUFQzX01BU0ssCi0JLmNsa3NlbAkJPSBvbWFwMzQzeF9ncHRfY2xrc2VsLAotCS5j bGtkbV9uYW1lCT0gInBlcl9jbGtkbSIsCi0JLnJlY2FsYwkJPSAmb21hcDJfY2xrc2VsX3JlY2Fs YywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIGdwdDRfZmNrID0gewotCS5uYW1lCQk9ICJncHQ0 X2ZjayIsCi0JLm9wcwkJPSAmY2xrb3BzX29tYXAyX2RmbHRfd2FpdCwKLQkuaW5pdAkJPSAmb21h cDJfaW5pdF9jbGtzZWxfcGFyZW50LAotCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKE9N QVAzNDMwX1BFUl9NT0QsIENNX0ZDTEtFTiksCi0JLmVuYWJsZV9iaXQJPSBPTUFQMzQzMF9FTl9H UFQ0X1NISUZULAotCS5jbGtzZWxfcmVnCT0gT01BUF9DTV9SRUdBRERSKE9NQVAzNDMwX1BFUl9N T0QsIENNX0NMS1NFTCksCi0JLmNsa3NlbF9tYXNrCT0gT01BUDM0MzBfQ0xLU0VMX0dQVDRfTUFT SywKLQkuY2xrc2VsCQk9IG9tYXAzNDN4X2dwdF9jbGtzZWwsCi0JLmNsa2RtX25hbWUJPSAicGVy X2Nsa2RtIiwKLQkucmVjYWxjCQk9ICZvbWFwMl9jbGtzZWxfcmVjYWxjLAotfTsKLQotc3RhdGlj IHN0cnVjdCBjbGsgZ3B0NV9mY2sgPSB7Ci0JLm5hbWUJCT0gImdwdDVfZmNrIiwKLQkub3BzCQk9 ICZjbGtvcHNfb21hcDJfZGZsdF93YWl0LAotCS5pbml0CQk9ICZvbWFwMl9pbml0X2Nsa3NlbF9w YXJlbnQsCi0JLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoT01BUDM0MzBfUEVSX01PRCwg Q01fRkNMS0VOKSwKLQkuZW5hYmxlX2JpdAk9IE9NQVAzNDMwX0VOX0dQVDVfU0hJRlQsCi0JLmNs a3NlbF9yZWcJPSBPTUFQX0NNX1JFR0FERFIoT01BUDM0MzBfUEVSX01PRCwgQ01fQ0xLU0VMKSwK LQkuY2xrc2VsX21hc2sJPSBPTUFQMzQzMF9DTEtTRUxfR1BUNV9NQVNLLAotCS5jbGtzZWwJCT0g b21hcDM0M3hfZ3B0X2Nsa3NlbCwKLQkuY2xrZG1fbmFtZQk9ICJwZXJfY2xrZG0iLAotCS5yZWNh bGMJCT0gJm9tYXAyX2Nsa3NlbF9yZWNhbGMsCi19OwotCi1zdGF0aWMgc3RydWN0IGNsayBncHQ2 X2ZjayA9IHsKLQkubmFtZQkJPSAiZ3B0Nl9mY2siLAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9k Zmx0X3dhaXQsCi0JLmluaXQJCT0gJm9tYXAyX2luaXRfY2xrc2VsX3BhcmVudCwKLQkuZW5hYmxl X3JlZwk9IE9NQVBfQ01fUkVHQUREUihPTUFQMzQzMF9QRVJfTU9ELCBDTV9GQ0xLRU4pLAotCS5l bmFibGVfYml0CT0gT01BUDM0MzBfRU5fR1BUNl9TSElGVCwKLQkuY2xrc2VsX3JlZwk9IE9NQVBf Q01fUkVHQUREUihPTUFQMzQzMF9QRVJfTU9ELCBDTV9DTEtTRUwpLAotCS5jbGtzZWxfbWFzawk9 IE9NQVAzNDMwX0NMS1NFTF9HUFQ2X01BU0ssCi0JLmNsa3NlbAkJPSBvbWFwMzQzeF9ncHRfY2xr c2VsLAotCS5jbGtkbV9uYW1lCT0gInBlcl9jbGtkbSIsCi0JLnJlY2FsYwkJPSAmb21hcDJfY2xr c2VsX3JlY2FsYywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIGdwdDdfZmNrID0gewotCS5uYW1l CQk9ICJncHQ3X2ZjayIsCi0JLm9wcwkJPSAmY2xrb3BzX29tYXAyX2RmbHRfd2FpdCwKLQkuaW5p dAkJPSAmb21hcDJfaW5pdF9jbGtzZWxfcGFyZW50LAotCS5lbmFibGVfcmVnCT0gT01BUF9DTV9S RUdBRERSKE9NQVAzNDMwX1BFUl9NT0QsIENNX0ZDTEtFTiksCi0JLmVuYWJsZV9iaXQJPSBPTUFQ MzQzMF9FTl9HUFQ3X1NISUZULAotCS5jbGtzZWxfcmVnCT0gT01BUF9DTV9SRUdBRERSKE9NQVAz NDMwX1BFUl9NT0QsIENNX0NMS1NFTCksCi0JLmNsa3NlbF9tYXNrCT0gT01BUDM0MzBfQ0xLU0VM X0dQVDdfTUFTSywKLQkuY2xrc2VsCQk9IG9tYXAzNDN4X2dwdF9jbGtzZWwsCi0JLmNsa2RtX25h bWUJPSAicGVyX2Nsa2RtIiwKLQkucmVjYWxjCQk9ICZvbWFwMl9jbGtzZWxfcmVjYWxjLAotfTsK LQotc3RhdGljIHN0cnVjdCBjbGsgZ3B0OF9mY2sgPSB7Ci0JLm5hbWUJCT0gImdwdDhfZmNrIiwK LQkub3BzCQk9ICZjbGtvcHNfb21hcDJfZGZsdF93YWl0LAotCS5pbml0CQk9ICZvbWFwMl9pbml0 X2Nsa3NlbF9wYXJlbnQsCi0JLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoT01BUDM0MzBf UEVSX01PRCwgQ01fRkNMS0VOKSwKLQkuZW5hYmxlX2JpdAk9IE9NQVAzNDMwX0VOX0dQVDhfU0hJ RlQsCi0JLmNsa3NlbF9yZWcJPSBPTUFQX0NNX1JFR0FERFIoT01BUDM0MzBfUEVSX01PRCwgQ01f Q0xLU0VMKSwKLQkuY2xrc2VsX21hc2sJPSBPTUFQMzQzMF9DTEtTRUxfR1BUOF9NQVNLLAotCS5j bGtzZWwJCT0gb21hcDM0M3hfZ3B0X2Nsa3NlbCwKLQkuY2xrZG1fbmFtZQk9ICJwZXJfY2xrZG0i LAotCS5yZWNhbGMJCT0gJm9tYXAyX2Nsa3NlbF9yZWNhbGMsCi19OwotCi1zdGF0aWMgc3RydWN0 IGNsayBncHQ5X2ZjayA9IHsKLQkubmFtZQkJPSAiZ3B0OV9mY2siLAotCS5vcHMJCT0gJmNsa29w c19vbWFwMl9kZmx0X3dhaXQsCi0JLmluaXQJCT0gJm9tYXAyX2luaXRfY2xrc2VsX3BhcmVudCwK LQkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihPTUFQMzQzMF9QRVJfTU9ELCBDTV9GQ0xL RU4pLAotCS5lbmFibGVfYml0CT0gT01BUDM0MzBfRU5fR1BUOV9TSElGVCwKLQkuY2xrc2VsX3Jl Zwk9IE9NQVBfQ01fUkVHQUREUihPTUFQMzQzMF9QRVJfTU9ELCBDTV9DTEtTRUwpLAotCS5jbGtz ZWxfbWFzawk9IE9NQVAzNDMwX0NMS1NFTF9HUFQ5X01BU0ssCi0JLmNsa3NlbAkJPSBvbWFwMzQz eF9ncHRfY2xrc2VsLAotCS5jbGtkbV9uYW1lCT0gInBlcl9jbGtkbSIsCi0JLnJlY2FsYwkJPSAm b21hcDJfY2xrc2VsX3JlY2FsYywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIHBlcl8zMmtfYWx3 b25fZmNrID0gewotCS5uYW1lCQk9ICJwZXJfMzJrX2Fsd29uX2ZjayIsCi0JLm9wcwkJPSAmY2xr b3BzX251bGwsCi0JLnBhcmVudAkJPSAmb21hcF8zMmtfZmNrLAotCS5jbGtkbV9uYW1lCT0gInBl cl9jbGtkbSIsCi0JLnJlY2FsYwkJPSAmZm9sbG93cGFyZW50X3JlY2FsYywKLX07Ci0KLXN0YXRp YyBzdHJ1Y3QgY2xrIGdwaW82X2RiY2sgPSB7Ci0JLm5hbWUJCT0gImdwaW82X2RiY2siLAotCS5v cHMJCT0gJmNsa29wc19vbWFwMl9kZmx0LAotCS5wYXJlbnQJCT0gJnBlcl8zMmtfYWx3b25fZmNr LAotCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKE9NQVAzNDMwX1BFUl9NT0QsIENNX0ZD TEtFTiksCi0JLmVuYWJsZV9iaXQJPSBPTUFQMzQzMF9FTl9HUElPNl9TSElGVCwKLQkuY2xrZG1f bmFtZQk9ICJwZXJfY2xrZG0iLAotCS5yZWNhbGMJCT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19 OwotCi1zdGF0aWMgc3RydWN0IGNsayBncGlvNV9kYmNrID0gewotCS5uYW1lCQk9ICJncGlvNV9k YmNrIiwKLQkub3BzCQk9ICZjbGtvcHNfb21hcDJfZGZsdCwKLQkucGFyZW50CQk9ICZwZXJfMzJr X2Fsd29uX2ZjaywKLQkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihPTUFQMzQzMF9QRVJf TU9ELCBDTV9GQ0xLRU4pLAotCS5lbmFibGVfYml0CT0gT01BUDM0MzBfRU5fR1BJTzVfU0hJRlQs Ci0JLmNsa2RtX25hbWUJPSAicGVyX2Nsa2RtIiwKLQkucmVjYWxjCQk9ICZmb2xsb3dwYXJlbnRf cmVjYWxjLAotfTsKLQotc3RhdGljIHN0cnVjdCBjbGsgZ3BpbzRfZGJjayA9IHsKLQkubmFtZQkJ PSAiZ3BpbzRfZGJjayIsCi0JLm9wcwkJPSAmY2xrb3BzX29tYXAyX2RmbHQsCi0JLnBhcmVudAkJ PSAmcGVyXzMya19hbHdvbl9mY2ssCi0JLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoT01B UDM0MzBfUEVSX01PRCwgQ01fRkNMS0VOKSwKLQkuZW5hYmxlX2JpdAk9IE9NQVAzNDMwX0VOX0dQ SU80X1NISUZULAotCS5jbGtkbV9uYW1lCT0gInBlcl9jbGtkbSIsCi0JLnJlY2FsYwkJPSAmZm9s bG93cGFyZW50X3JlY2FsYywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIGdwaW8zX2RiY2sgPSB7 Ci0JLm5hbWUJCT0gImdwaW8zX2RiY2siLAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9kZmx0LAot CS5wYXJlbnQJCT0gJnBlcl8zMmtfYWx3b25fZmNrLAotCS5lbmFibGVfcmVnCT0gT01BUF9DTV9S RUdBRERSKE9NQVAzNDMwX1BFUl9NT0QsIENNX0ZDTEtFTiksCi0JLmVuYWJsZV9iaXQJPSBPTUFQ MzQzMF9FTl9HUElPM19TSElGVCwKLQkuY2xrZG1fbmFtZQk9ICJwZXJfY2xrZG0iLAotCS5yZWNh bGMJCT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19OwotCi1zdGF0aWMgc3RydWN0IGNsayBncGlv Ml9kYmNrID0gewotCS5uYW1lCQk9ICJncGlvMl9kYmNrIiwKLQkub3BzCQk9ICZjbGtvcHNfb21h cDJfZGZsdCwKLQkucGFyZW50CQk9ICZwZXJfMzJrX2Fsd29uX2ZjaywKLQkuZW5hYmxlX3JlZwk9 IE9NQVBfQ01fUkVHQUREUihPTUFQMzQzMF9QRVJfTU9ELCBDTV9GQ0xLRU4pLAotCS5lbmFibGVf Yml0CT0gT01BUDM0MzBfRU5fR1BJTzJfU0hJRlQsCi0JLmNsa2RtX25hbWUJPSAicGVyX2Nsa2Rt IiwKLQkucmVjYWxjCQk9ICZmb2xsb3dwYXJlbnRfcmVjYWxjLAotfTsKLQotc3RhdGljIHN0cnVj dCBjbGsgd2R0M19mY2sgPSB7Ci0JLm5hbWUJCT0gIndkdDNfZmNrIiwKLQkub3BzCQk9ICZjbGtv cHNfb21hcDJfZGZsdF93YWl0LAotCS5wYXJlbnQJCT0gJnBlcl8zMmtfYWx3b25fZmNrLAotCS5l bmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKE9NQVAzNDMwX1BFUl9NT0QsIENNX0ZDTEtFTiks Ci0JLmVuYWJsZV9iaXQJPSBPTUFQMzQzMF9FTl9XRFQzX1NISUZULAotCS5jbGtkbV9uYW1lCT0g InBlcl9jbGtkbSIsCi0JLnJlY2FsYwkJPSAmZm9sbG93cGFyZW50X3JlY2FsYywKLX07Ci0KLXN0 YXRpYyBzdHJ1Y3QgY2xrIHBlcl9sNF9pY2sgPSB7Ci0JLm5hbWUJCT0gInBlcl9sNF9pY2siLAot CS5vcHMJCT0gJmNsa29wc19udWxsLAotCS5wYXJlbnQJCT0gJmw0X2ljaywKLQkuY2xrZG1fbmFt ZQk9ICJwZXJfY2xrZG0iLAotCS5yZWNhbGMJCT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19Owot Ci1zdGF0aWMgc3RydWN0IGNsayBncGlvNl9pY2sgPSB7Ci0JLm5hbWUJCT0gImdwaW82X2ljayIs Ci0JLm9wcwkJPSAmY2xrb3BzX29tYXAyX2RmbHRfd2FpdCwKLQkucGFyZW50CQk9ICZwZXJfbDRf aWNrLAotCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKE9NQVAzNDMwX1BFUl9NT0QsIENN X0lDTEtFTiksCi0JLmVuYWJsZV9iaXQJPSBPTUFQMzQzMF9FTl9HUElPNl9TSElGVCwKLQkuY2xr ZG1fbmFtZQk9ICJwZXJfY2xrZG0iLAotCS5yZWNhbGMJCT0gJmZvbGxvd3BhcmVudF9yZWNhbGMs Ci19OwotCi1zdGF0aWMgc3RydWN0IGNsayBncGlvNV9pY2sgPSB7Ci0JLm5hbWUJCT0gImdwaW81 X2ljayIsCi0JLm9wcwkJPSAmY2xrb3BzX29tYXAyX2RmbHRfd2FpdCwKLQkucGFyZW50CQk9ICZw ZXJfbDRfaWNrLAotCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKE9NQVAzNDMwX1BFUl9N T0QsIENNX0lDTEtFTiksCi0JLmVuYWJsZV9iaXQJPSBPTUFQMzQzMF9FTl9HUElPNV9TSElGVCwK LQkuY2xrZG1fbmFtZQk9ICJwZXJfY2xrZG0iLAotCS5yZWNhbGMJCT0gJmZvbGxvd3BhcmVudF9y ZWNhbGMsCi19OwotCi1zdGF0aWMgc3RydWN0IGNsayBncGlvNF9pY2sgPSB7Ci0JLm5hbWUJCT0g ImdwaW80X2ljayIsCi0JLm9wcwkJPSAmY2xrb3BzX29tYXAyX2RmbHRfd2FpdCwKLQkucGFyZW50 CQk9ICZwZXJfbDRfaWNrLAotCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKE9NQVAzNDMw X1BFUl9NT0QsIENNX0lDTEtFTiksCi0JLmVuYWJsZV9iaXQJPSBPTUFQMzQzMF9FTl9HUElPNF9T SElGVCwKLQkuY2xrZG1fbmFtZQk9ICJwZXJfY2xrZG0iLAotCS5yZWNhbGMJCT0gJmZvbGxvd3Bh cmVudF9yZWNhbGMsCi19OwotCi1zdGF0aWMgc3RydWN0IGNsayBncGlvM19pY2sgPSB7Ci0JLm5h bWUJCT0gImdwaW8zX2ljayIsCi0JLm9wcwkJPSAmY2xrb3BzX29tYXAyX2RmbHRfd2FpdCwKLQku cGFyZW50CQk9ICZwZXJfbDRfaWNrLAotCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKE9N QVAzNDMwX1BFUl9NT0QsIENNX0lDTEtFTiksCi0JLmVuYWJsZV9iaXQJPSBPTUFQMzQzMF9FTl9H UElPM19TSElGVCwKLQkuY2xrZG1fbmFtZQk9ICJwZXJfY2xrZG0iLAotCS5yZWNhbGMJCT0gJmZv bGxvd3BhcmVudF9yZWNhbGMsCi19OwotCi1zdGF0aWMgc3RydWN0IGNsayBncGlvMl9pY2sgPSB7 Ci0JLm5hbWUJCT0gImdwaW8yX2ljayIsCi0JLm9wcwkJPSAmY2xrb3BzX29tYXAyX2RmbHRfd2Fp dCwKLQkucGFyZW50CQk9ICZwZXJfbDRfaWNrLAotCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdB RERSKE9NQVAzNDMwX1BFUl9NT0QsIENNX0lDTEtFTiksCi0JLmVuYWJsZV9iaXQJPSBPTUFQMzQz MF9FTl9HUElPMl9TSElGVCwKLQkuY2xrZG1fbmFtZQk9ICJwZXJfY2xrZG0iLAotCS5yZWNhbGMJ CT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19OwotCi1zdGF0aWMgc3RydWN0IGNsayB3ZHQzX2lj ayA9IHsKLQkubmFtZQkJPSAid2R0M19pY2siLAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9kZmx0 X3dhaXQsCi0JLnBhcmVudAkJPSAmcGVyX2w0X2ljaywKLQkuZW5hYmxlX3JlZwk9IE9NQVBfQ01f UkVHQUREUihPTUFQMzQzMF9QRVJfTU9ELCBDTV9JQ0xLRU4pLAotCS5lbmFibGVfYml0CT0gT01B UDM0MzBfRU5fV0RUM19TSElGVCwKLQkuY2xrZG1fbmFtZQk9ICJwZXJfY2xrZG0iLAotCS5yZWNh bGMJCT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19OwotCi1zdGF0aWMgc3RydWN0IGNsayB1YXJ0 M19pY2sgPSB7Ci0JLm5hbWUJCT0gInVhcnQzX2ljayIsCi0JLm9wcwkJPSAmY2xrb3BzX29tYXAy X2RmbHRfd2FpdCwKLQkucGFyZW50CQk9ICZwZXJfbDRfaWNrLAotCS5lbmFibGVfcmVnCT0gT01B UF9DTV9SRUdBRERSKE9NQVAzNDMwX1BFUl9NT0QsIENNX0lDTEtFTiksCi0JLmVuYWJsZV9iaXQJ PSBPTUFQMzQzMF9FTl9VQVJUM19TSElGVCwKLQkuY2xrZG1fbmFtZQk9ICJwZXJfY2xrZG0iLAot CS5yZWNhbGMJCT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19OwotCi1zdGF0aWMgc3RydWN0IGNs ayBncHQ5X2ljayA9IHsKLQkubmFtZQkJPSAiZ3B0OV9pY2siLAotCS5vcHMJCT0gJmNsa29wc19v bWFwMl9kZmx0X3dhaXQsCi0JLnBhcmVudAkJPSAmcGVyX2w0X2ljaywKLQkuZW5hYmxlX3JlZwk9 IE9NQVBfQ01fUkVHQUREUihPTUFQMzQzMF9QRVJfTU9ELCBDTV9JQ0xLRU4pLAotCS5lbmFibGVf Yml0CT0gT01BUDM0MzBfRU5fR1BUOV9TSElGVCwKLQkuY2xrZG1fbmFtZQk9ICJwZXJfY2xrZG0i LAotCS5yZWNhbGMJCT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19OwotCi1zdGF0aWMgc3RydWN0 IGNsayBncHQ4X2ljayA9IHsKLQkubmFtZQkJPSAiZ3B0OF9pY2siLAotCS5vcHMJCT0gJmNsa29w c19vbWFwMl9kZmx0X3dhaXQsCi0JLnBhcmVudAkJPSAmcGVyX2w0X2ljaywKLQkuZW5hYmxlX3Jl Zwk9IE9NQVBfQ01fUkVHQUREUihPTUFQMzQzMF9QRVJfTU9ELCBDTV9JQ0xLRU4pLAotCS5lbmFi bGVfYml0CT0gT01BUDM0MzBfRU5fR1BUOF9TSElGVCwKLQkuY2xrZG1fbmFtZQk9ICJwZXJfY2xr ZG0iLAotCS5yZWNhbGMJCT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19OwotCi1zdGF0aWMgc3Ry dWN0IGNsayBncHQ3X2ljayA9IHsKLQkubmFtZQkJPSAiZ3B0N19pY2siLAotCS5vcHMJCT0gJmNs a29wc19vbWFwMl9kZmx0X3dhaXQsCi0JLnBhcmVudAkJPSAmcGVyX2w0X2ljaywKLQkuZW5hYmxl X3JlZwk9IE9NQVBfQ01fUkVHQUREUihPTUFQMzQzMF9QRVJfTU9ELCBDTV9JQ0xLRU4pLAotCS5l bmFibGVfYml0CT0gT01BUDM0MzBfRU5fR1BUN19TSElGVCwKLQkuY2xrZG1fbmFtZQk9ICJwZXJf Y2xrZG0iLAotCS5yZWNhbGMJCT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19OwotCi1zdGF0aWMg c3RydWN0IGNsayBncHQ2X2ljayA9IHsKLQkubmFtZQkJPSAiZ3B0Nl9pY2siLAotCS5vcHMJCT0g JmNsa29wc19vbWFwMl9kZmx0X3dhaXQsCi0JLnBhcmVudAkJPSAmcGVyX2w0X2ljaywKLQkuZW5h YmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihPTUFQMzQzMF9QRVJfTU9ELCBDTV9JQ0xLRU4pLAot CS5lbmFibGVfYml0CT0gT01BUDM0MzBfRU5fR1BUNl9TSElGVCwKLQkuY2xrZG1fbmFtZQk9ICJw ZXJfY2xrZG0iLAotCS5yZWNhbGMJCT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19OwotCi1zdGF0 aWMgc3RydWN0IGNsayBncHQ1X2ljayA9IHsKLQkubmFtZQkJPSAiZ3B0NV9pY2siLAotCS5vcHMJ CT0gJmNsa29wc19vbWFwMl9kZmx0X3dhaXQsCi0JLnBhcmVudAkJPSAmcGVyX2w0X2ljaywKLQku ZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihPTUFQMzQzMF9QRVJfTU9ELCBDTV9JQ0xLRU4p LAotCS5lbmFibGVfYml0CT0gT01BUDM0MzBfRU5fR1BUNV9TSElGVCwKLQkuY2xrZG1fbmFtZQk9 ICJwZXJfY2xrZG0iLAotCS5yZWNhbGMJCT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19OwotCi1z dGF0aWMgc3RydWN0IGNsayBncHQ0X2ljayA9IHsKLQkubmFtZQkJPSAiZ3B0NF9pY2siLAotCS5v cHMJCT0gJmNsa29wc19vbWFwMl9kZmx0X3dhaXQsCi0JLnBhcmVudAkJPSAmcGVyX2w0X2ljaywK LQkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihPTUFQMzQzMF9QRVJfTU9ELCBDTV9JQ0xL RU4pLAotCS5lbmFibGVfYml0CT0gT01BUDM0MzBfRU5fR1BUNF9TSElGVCwKLQkuY2xrZG1fbmFt ZQk9ICJwZXJfY2xrZG0iLAotCS5yZWNhbGMJCT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19Owot Ci1zdGF0aWMgc3RydWN0IGNsayBncHQzX2ljayA9IHsKLQkubmFtZQkJPSAiZ3B0M19pY2siLAot CS5vcHMJCT0gJmNsa29wc19vbWFwMl9kZmx0X3dhaXQsCi0JLnBhcmVudAkJPSAmcGVyX2w0X2lj aywKLQkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihPTUFQMzQzMF9QRVJfTU9ELCBDTV9J Q0xLRU4pLAotCS5lbmFibGVfYml0CT0gT01BUDM0MzBfRU5fR1BUM19TSElGVCwKLQkuY2xrZG1f bmFtZQk9ICJwZXJfY2xrZG0iLAotCS5yZWNhbGMJCT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19 OwotCi1zdGF0aWMgc3RydWN0IGNsayBncHQyX2ljayA9IHsKLQkubmFtZQkJPSAiZ3B0Ml9pY2si LAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9kZmx0X3dhaXQsCi0JLnBhcmVudAkJPSAmcGVyX2w0 X2ljaywKLQkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihPTUFQMzQzMF9QRVJfTU9ELCBD TV9JQ0xLRU4pLAotCS5lbmFibGVfYml0CT0gT01BUDM0MzBfRU5fR1BUMl9TSElGVCwKLQkuY2xr ZG1fbmFtZQk9ICJwZXJfY2xrZG0iLAotCS5yZWNhbGMJCT0gJmZvbGxvd3BhcmVudF9yZWNhbGMs Ci19OwotCi1zdGF0aWMgc3RydWN0IGNsayBtY2JzcDJfaWNrID0gewotCS5uYW1lCQk9ICJtY2Jz cF9pY2siLAotCS5vcHMJCT0gJmNsa29wc19vbWFwMl9kZmx0X3dhaXQsCi0JLmlkCQk9IDIsCi0J LnBhcmVudAkJPSAmcGVyX2w0X2ljaywKLQkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihP TUFQMzQzMF9QRVJfTU9ELCBDTV9JQ0xLRU4pLAotCS5lbmFibGVfYml0CT0gT01BUDM0MzBfRU5f TUNCU1AyX1NISUZULAotCS5jbGtkbV9uYW1lCT0gInBlcl9jbGtkbSIsCi0JLnJlY2FsYwkJPSAm Zm9sbG93cGFyZW50X3JlY2FsYywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIG1jYnNwM19pY2sg PSB7Ci0JLm5hbWUJCT0gIm1jYnNwX2ljayIsCi0JLm9wcwkJPSAmY2xrb3BzX29tYXAyX2RmbHRf d2FpdCwKLQkuaWQJCT0gMywKLQkucGFyZW50CQk9ICZwZXJfbDRfaWNrLAotCS5lbmFibGVfcmVn CT0gT01BUF9DTV9SRUdBRERSKE9NQVAzNDMwX1BFUl9NT0QsIENNX0lDTEtFTiksCi0JLmVuYWJs ZV9iaXQJPSBPTUFQMzQzMF9FTl9NQ0JTUDNfU0hJRlQsCi0JLmNsa2RtX25hbWUJPSAicGVyX2Ns a2RtIiwKLQkucmVjYWxjCQk9ICZmb2xsb3dwYXJlbnRfcmVjYWxjLAotfTsKLQotc3RhdGljIHN0 cnVjdCBjbGsgbWNic3A0X2ljayA9IHsKLQkubmFtZQkJPSAibWNic3BfaWNrIiwKLQkub3BzCQk9 ICZjbGtvcHNfb21hcDJfZGZsdF93YWl0LAotCS5pZAkJPSA0LAotCS5wYXJlbnQJCT0gJnBlcl9s NF9pY2ssCi0JLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoT01BUDM0MzBfUEVSX01PRCwg Q01fSUNMS0VOKSwKLQkuZW5hYmxlX2JpdAk9IE9NQVAzNDMwX0VOX01DQlNQNF9TSElGVCwKLQku Y2xrZG1fbmFtZQk9ICJwZXJfY2xrZG0iLAotCS5yZWNhbGMJCT0gJmZvbGxvd3BhcmVudF9yZWNh bGMsCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGNsa3NlbCBtY2JzcF8yMzRfY2xrc2VsW10g PSB7Ci0JeyAucGFyZW50ID0gJmNvcmVfOTZtX2ZjaywgLnJhdGVzID0gY29tbW9uX21jYnNwXzk2 bV9yYXRlcyB9LAotCXsgLnBhcmVudCA9ICZtY2JzcF9jbGtzLCAgIC5yYXRlcyA9IGNvbW1vbl9t Y2JzcF9tY2JzcF9yYXRlcyB9LAotCXsgLnBhcmVudCA9IE5VTEwgfQotfTsKLQotc3RhdGljIHN0 cnVjdCBjbGsgbWNic3AyX2ZjayA9IHsKLQkubmFtZQkJPSAibWNic3BfZmNrIiwKLQkub3BzCQk9 ICZjbGtvcHNfb21hcDJfZGZsdF93YWl0LAotCS5pZAkJPSAyLAotCS5pbml0CQk9ICZvbWFwMl9p bml0X2Nsa3NlbF9wYXJlbnQsCi0JLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoT01BUDM0 MzBfUEVSX01PRCwgQ01fRkNMS0VOKSwKLQkuZW5hYmxlX2JpdAk9IE9NQVAzNDMwX0VOX01DQlNQ Ml9TSElGVCwKLQkuY2xrc2VsX3JlZwk9IE9NQVAzNDNYX0NUUkxfUkVHQUREUihPTUFQMl9DT05U Uk9MX0RFVkNPTkYwKSwKLQkuY2xrc2VsX21hc2sJPSBPTUFQMl9NQ0JTUDJfQ0xLU19NQVNLLAot CS5jbGtzZWwJCT0gbWNic3BfMjM0X2Nsa3NlbCwKLQkuY2xrZG1fbmFtZQk9ICJwZXJfY2xrZG0i LAotCS5yZWNhbGMJCT0gJm9tYXAyX2Nsa3NlbF9yZWNhbGMsCi19OwotCi1zdGF0aWMgc3RydWN0 IGNsayBtY2JzcDNfZmNrID0gewotCS5uYW1lCQk9ICJtY2JzcF9mY2siLAotCS5vcHMJCT0gJmNs a29wc19vbWFwMl9kZmx0X3dhaXQsCi0JLmlkCQk9IDMsCi0JLmluaXQJCT0gJm9tYXAyX2luaXRf Y2xrc2VsX3BhcmVudCwKLQkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihPTUFQMzQzMF9Q RVJfTU9ELCBDTV9GQ0xLRU4pLAotCS5lbmFibGVfYml0CT0gT01BUDM0MzBfRU5fTUNCU1AzX1NI SUZULAotCS5jbGtzZWxfcmVnCT0gT01BUDM0M1hfQ1RSTF9SRUdBRERSKE9NQVAzNDNYX0NPTlRS T0xfREVWQ09ORjEpLAotCS5jbGtzZWxfbWFzawk9IE9NQVAyX01DQlNQM19DTEtTX01BU0ssCi0J LmNsa3NlbAkJPSBtY2JzcF8yMzRfY2xrc2VsLAotCS5jbGtkbV9uYW1lCT0gInBlcl9jbGtkbSIs Ci0JLnJlY2FsYwkJPSAmb21hcDJfY2xrc2VsX3JlY2FsYywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3Qg Y2xrIG1jYnNwNF9mY2sgPSB7Ci0JLm5hbWUJCT0gIm1jYnNwX2ZjayIsCi0JLm9wcwkJPSAmY2xr b3BzX29tYXAyX2RmbHRfd2FpdCwKLQkuaWQJCT0gNCwKLQkuaW5pdAkJPSAmb21hcDJfaW5pdF9j bGtzZWxfcGFyZW50LAotCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKE9NQVAzNDMwX1BF Ul9NT0QsIENNX0ZDTEtFTiksCi0JLmVuYWJsZV9iaXQJPSBPTUFQMzQzMF9FTl9NQ0JTUDRfU0hJ RlQsCi0JLmNsa3NlbF9yZWcJPSBPTUFQMzQzWF9DVFJMX1JFR0FERFIoT01BUDM0M1hfQ09OVFJP TF9ERVZDT05GMSksCi0JLmNsa3NlbF9tYXNrCT0gT01BUDJfTUNCU1A0X0NMS1NfTUFTSywKLQku Y2xrc2VsCQk9IG1jYnNwXzIzNF9jbGtzZWwsCi0JLmNsa2RtX25hbWUJPSAicGVyX2Nsa2RtIiwK LQkucmVjYWxjCQk9ICZvbWFwMl9jbGtzZWxfcmVjYWxjLAotfTsKLQotLyogRU1VIGNsb2NrcyAq LwotCi0vKiBNb3JlIGluZm9ybWF0aW9uOiBBUk0gQ29ydGV4LUE4IFRlY2huaWNhbCBSZWZlcmVu Y2UgTWFudWFsLCBzZWN0IDEwLjEgKi8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtzZWxfcmF0 ZSBlbXVfc3JjX3N5c19yYXRlc1tdID0gewotCXsgLmRpdiA9IDEsIC52YWwgPSAwLCAuZmxhZ3Mg PSBSQVRFX0lOXzM0M1ggfCBERUZBVUxUX1JBVEUgfSwKLQl7IC5kaXYgPSAwIH0sCi19OwotCi1z dGF0aWMgY29uc3Qgc3RydWN0IGNsa3NlbF9yYXRlIGVtdV9zcmNfY29yZV9yYXRlc1tdID0gewot CXsgLmRpdiA9IDEsIC52YWwgPSAxLCAuZmxhZ3MgPSBSQVRFX0lOXzM0M1ggfCBERUZBVUxUX1JB VEUgfSwKLQl7IC5kaXYgPSAwIH0sCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGNsa3NlbF9y YXRlIGVtdV9zcmNfcGVyX3JhdGVzW10gPSB7Ci0JeyAuZGl2ID0gMSwgLnZhbCA9IDIsIC5mbGFn cyA9IFJBVEVfSU5fMzQzWCB8IERFRkFVTFRfUkFURSB9LAotCXsgLmRpdiA9IDAgfSwKLX07Ci0K LXN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrc2VsX3JhdGUgZW11X3NyY19tcHVfcmF0ZXNbXSA9IHsK LQl7IC5kaXYgPSAxLCAudmFsID0gMywgLmZsYWdzID0gUkFURV9JTl8zNDNYIHwgREVGQVVMVF9S QVRFIH0sCi0JeyAuZGl2ID0gMCB9LAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtzZWwg ZW11X3NyY19jbGtzZWxbXSA9IHsKLQl7IC5wYXJlbnQgPSAmc3lzX2NrLAkJLnJhdGVzID0gZW11 X3NyY19zeXNfcmF0ZXMgfSwKLQl7IC5wYXJlbnQgPSAmZW11X2NvcmVfYWx3b25fY2ssIC5yYXRl cyA9IGVtdV9zcmNfY29yZV9yYXRlcyB9LAotCXsgLnBhcmVudCA9ICZlbXVfcGVyX2Fsd29uX2Nr LAkucmF0ZXMgPSBlbXVfc3JjX3Blcl9yYXRlcyB9LAotCXsgLnBhcmVudCA9ICZlbXVfbXB1X2Fs d29uX2NrLAkucmF0ZXMgPSBlbXVfc3JjX21wdV9yYXRlcyB9LAotCXsgLnBhcmVudCA9IE5VTEwg fSwKLX07Ci0KLS8qCi0gKiBMaWtlIHRoZSBjbGtvdXRfc3JjIGNsb2NrcywgZW11X3NyY19jbGsg aXMgYSB2aXJ0dWFsIGNsb2NrLCBleGlzdGluZyBvbmx5Ci0gKiB0byBzd2l0Y2ggdGhlIHNvdXJj ZSBvZiBzb21lIG9mIHRoZSBFTVUgY2xvY2tzLgotICogWFhYIEFyZSB0aGVyZSBDTEtFTiBiaXRz IGZvciB0aGVzZSBFTVUgY2xrcz8KLSAqLwotc3RhdGljIHN0cnVjdCBjbGsgZW11X3NyY19jayA9 IHsKLQkubmFtZQkJPSAiZW11X3NyY19jayIsCi0JLm9wcwkJPSAmY2xrb3BzX251bGwsCi0JLmlu aXQJCT0gJm9tYXAyX2luaXRfY2xrc2VsX3BhcmVudCwKLQkuY2xrc2VsX3JlZwk9IE9NQVBfQ01f UkVHQUREUihPTUFQMzQzMF9FTVVfTU9ELCBDTV9DTEtTRUwxKSwKLQkuY2xrc2VsX21hc2sJPSBP TUFQMzQzMF9NVVhfQ1RSTF9NQVNLLAotCS5jbGtzZWwJCT0gZW11X3NyY19jbGtzZWwsCi0JLmNs a2RtX25hbWUJPSAiZW11X2Nsa2RtIiwKLQkucmVjYWxjCQk9ICZvbWFwMl9jbGtzZWxfcmVjYWxj LAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtzZWxfcmF0ZSBwY2xrX2VtdV9yYXRlc1td ID0gewotCXsgLmRpdiA9IDIsIC52YWwgPSAyLCAuZmxhZ3MgPSBSQVRFX0lOXzM0M1ggfCBERUZB VUxUX1JBVEUgfSwKLQl7IC5kaXYgPSAzLCAudmFsID0gMywgLmZsYWdzID0gUkFURV9JTl8zNDNY IH0sCi0JeyAuZGl2ID0gNCwgLnZhbCA9IDQsIC5mbGFncyA9IFJBVEVfSU5fMzQzWCB9LAotCXsg LmRpdiA9IDYsIC52YWwgPSA2LCAuZmxhZ3MgPSBSQVRFX0lOXzM0M1ggfSwKLQl7IC5kaXYgPSAw IH0sCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGNsa3NlbCBwY2xrX2VtdV9jbGtzZWxbXSA9 IHsKLQl7IC5wYXJlbnQgPSAmZW11X3NyY19jaywgLnJhdGVzID0gcGNsa19lbXVfcmF0ZXMgfSwK LQl7IC5wYXJlbnQgPSBOVUxMIH0sCi19OwotCi1zdGF0aWMgc3RydWN0IGNsayBwY2xrX2ZjayA9 IHsKLQkubmFtZQkJPSAicGNsa19mY2siLAotCS5vcHMJCT0gJmNsa29wc19udWxsLAotCS5pbml0 CQk9ICZvbWFwMl9pbml0X2Nsa3NlbF9wYXJlbnQsCi0JLmNsa3NlbF9yZWcJPSBPTUFQX0NNX1JF R0FERFIoT01BUDM0MzBfRU1VX01PRCwgQ01fQ0xLU0VMMSksCi0JLmNsa3NlbF9tYXNrCT0gT01B UDM0MzBfQ0xLU0VMX1BDTEtfTUFTSywKLQkuY2xrc2VsCQk9IHBjbGtfZW11X2Nsa3NlbCwKLQku Y2xrZG1fbmFtZQk9ICJlbXVfY2xrZG0iLAotCS5yZWNhbGMJCT0gJm9tYXAyX2Nsa3NlbF9yZWNh bGMsCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGNsa3NlbF9yYXRlIHBjbGt4Ml9lbXVfcmF0 ZXNbXSA9IHsKLQl7IC5kaXYgPSAxLCAudmFsID0gMSwgLmZsYWdzID0gUkFURV9JTl8zNDNYIHwg REVGQVVMVF9SQVRFIH0sCi0JeyAuZGl2ID0gMiwgLnZhbCA9IDIsIC5mbGFncyA9IFJBVEVfSU5f MzQzWCB9LAotCXsgLmRpdiA9IDMsIC52YWwgPSAzLCAuZmxhZ3MgPSBSQVRFX0lOXzM0M1ggfSwK LQl7IC5kaXYgPSAwIH0sCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGNsa3NlbCBwY2xreDJf ZW11X2Nsa3NlbFtdID0gewotCXsgLnBhcmVudCA9ICZlbXVfc3JjX2NrLCAucmF0ZXMgPSBwY2xr eDJfZW11X3JhdGVzIH0sCi0JeyAucGFyZW50ID0gTlVMTCB9LAotfTsKLQotc3RhdGljIHN0cnVj dCBjbGsgcGNsa3gyX2ZjayA9IHsKLQkubmFtZQkJPSAicGNsa3gyX2ZjayIsCi0JLm9wcwkJPSAm Y2xrb3BzX251bGwsCi0JLmluaXQJCT0gJm9tYXAyX2luaXRfY2xrc2VsX3BhcmVudCwKLQkuY2xr c2VsX3JlZwk9IE9NQVBfQ01fUkVHQUREUihPTUFQMzQzMF9FTVVfTU9ELCBDTV9DTEtTRUwxKSwK LQkuY2xrc2VsX21hc2sJPSBPTUFQMzQzMF9DTEtTRUxfUENMS1gyX01BU0ssCi0JLmNsa3NlbAkJ PSBwY2xreDJfZW11X2Nsa3NlbCwKLQkuY2xrZG1fbmFtZQk9ICJlbXVfY2xrZG0iLAotCS5yZWNh bGMJCT0gJm9tYXAyX2Nsa3NlbF9yZWNhbGMsCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGNs a3NlbCBhdGNsa19lbXVfY2xrc2VsW10gPSB7Ci0JeyAucGFyZW50ID0gJmVtdV9zcmNfY2ssIC5y YXRlcyA9IGRpdjJfcmF0ZXMgfSwKLQl7IC5wYXJlbnQgPSBOVUxMIH0sCi19OwotCi1zdGF0aWMg c3RydWN0IGNsayBhdGNsa19mY2sgPSB7Ci0JLm5hbWUJCT0gImF0Y2xrX2ZjayIsCi0JLm9wcwkJ PSAmY2xrb3BzX251bGwsCi0JLmluaXQJCT0gJm9tYXAyX2luaXRfY2xrc2VsX3BhcmVudCwKLQku Y2xrc2VsX3JlZwk9IE9NQVBfQ01fUkVHQUREUihPTUFQMzQzMF9FTVVfTU9ELCBDTV9DTEtTRUwx KSwKLQkuY2xrc2VsX21hc2sJPSBPTUFQMzQzMF9DTEtTRUxfQVRDTEtfTUFTSywKLQkuY2xrc2Vs CQk9IGF0Y2xrX2VtdV9jbGtzZWwsCi0JLmNsa2RtX25hbWUJPSAiZW11X2Nsa2RtIiwKLQkucmVj YWxjCQk9ICZvbWFwMl9jbGtzZWxfcmVjYWxjLAotfTsKLQotc3RhdGljIHN0cnVjdCBjbGsgdHJh Y2VjbGtfc3JjX2ZjayA9IHsKLQkubmFtZQkJPSAidHJhY2VjbGtfc3JjX2ZjayIsCi0JLm9wcwkJ PSAmY2xrb3BzX251bGwsCi0JLmluaXQJCT0gJm9tYXAyX2luaXRfY2xrc2VsX3BhcmVudCwKLQku Y2xrc2VsX3JlZwk9IE9NQVBfQ01fUkVHQUREUihPTUFQMzQzMF9FTVVfTU9ELCBDTV9DTEtTRUwx KSwKLQkuY2xrc2VsX21hc2sJPSBPTUFQMzQzMF9UUkFDRV9NVVhfQ1RSTF9NQVNLLAotCS5jbGtz ZWwJCT0gZW11X3NyY19jbGtzZWwsCi0JLmNsa2RtX25hbWUJPSAiZW11X2Nsa2RtIiwKLQkucmVj YWxjCQk9ICZvbWFwMl9jbGtzZWxfcmVjYWxjLAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBj bGtzZWxfcmF0ZSB0cmFjZWNsa19yYXRlc1tdID0gewotCXsgLmRpdiA9IDEsIC52YWwgPSAxLCAu ZmxhZ3MgPSBSQVRFX0lOXzM0M1ggfCBERUZBVUxUX1JBVEUgfSwKLQl7IC5kaXYgPSAyLCAudmFs ID0gMiwgLmZsYWdzID0gUkFURV9JTl8zNDNYIH0sCi0JeyAuZGl2ID0gNCwgLnZhbCA9IDQsIC5m bGFncyA9IFJBVEVfSU5fMzQzWCB9LAotCXsgLmRpdiA9IDAgfSwKLX07Ci0KLXN0YXRpYyBjb25z dCBzdHJ1Y3QgY2xrc2VsIHRyYWNlY2xrX2Nsa3NlbFtdID0gewotCXsgLnBhcmVudCA9ICZ0cmFj ZWNsa19zcmNfZmNrLCAucmF0ZXMgPSB0cmFjZWNsa19yYXRlcyB9LAotCXsgLnBhcmVudCA9IE5V TEwgfSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xrIHRyYWNlY2xrX2ZjayA9IHsKLQkubmFtZQkJ PSAidHJhY2VjbGtfZmNrIiwKLQkub3BzCQk9ICZjbGtvcHNfbnVsbCwKLQkuaW5pdAkJPSAmb21h cDJfaW5pdF9jbGtzZWxfcGFyZW50LAotCS5jbGtzZWxfcmVnCT0gT01BUF9DTV9SRUdBRERSKE9N QVAzNDMwX0VNVV9NT0QsIENNX0NMS1NFTDEpLAotCS5jbGtzZWxfbWFzawk9IE9NQVAzNDMwX0NM S1NFTF9UUkFDRUNMS19NQVNLLAotCS5jbGtzZWwJCT0gdHJhY2VjbGtfY2xrc2VsLAotCS5jbGtk bV9uYW1lCT0gImVtdV9jbGtkbSIsCi0JLnJlY2FsYwkJPSAmb21hcDJfY2xrc2VsX3JlY2FsYywK LX07Ci0KLS8qIFNSIGNsb2NrcyAqLwotCi0vKiBTbWFydFJlZmxleCBmY2xrIChWREQxKSAqLwot c3RhdGljIHN0cnVjdCBjbGsgc3IxX2ZjayA9IHsKLQkubmFtZQkJPSAic3IxX2ZjayIsCi0JLm9w cwkJPSAmY2xrb3BzX29tYXAyX2RmbHRfd2FpdCwKLQkucGFyZW50CQk9ICZzeXNfY2ssCi0JLmVu YWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoV0tVUF9NT0QsIENNX0ZDTEtFTiksCi0JLmVuYWJs ZV9iaXQJPSBPTUFQMzQzMF9FTl9TUjFfU0hJRlQsCi0JLnJlY2FsYwkJPSAmZm9sbG93cGFyZW50 X3JlY2FsYywKLX07Ci0KLS8qIFNtYXJ0UmVmbGV4IGZjbGsgKFZERDIpICovCi1zdGF0aWMgc3Ry dWN0IGNsayBzcjJfZmNrID0gewotCS5uYW1lCQk9ICJzcjJfZmNrIiwKLQkub3BzCQk9ICZjbGtv cHNfb21hcDJfZGZsdF93YWl0LAotCS5wYXJlbnQJCT0gJnN5c19jaywKLQkuZW5hYmxlX3JlZwk9 IE9NQVBfQ01fUkVHQUREUihXS1VQX01PRCwgQ01fRkNMS0VOKSwKLQkuZW5hYmxlX2JpdAk9IE9N QVAzNDMwX0VOX1NSMl9TSElGVCwKLQkucmVjYWxjCQk9ICZmb2xsb3dwYXJlbnRfcmVjYWxjLAot fTsKLQotc3RhdGljIHN0cnVjdCBjbGsgc3JfbDRfaWNrID0gewotCS5uYW1lCQk9ICJzcl9sNF9p Y2siLAotCS5vcHMJCT0gJmNsa29wc19udWxsLCAvKiBSTUs6IG1pc3Npbmc/ICovCi0JLnBhcmVu dAkJPSAmbDRfaWNrLAotCS5jbGtkbV9uYW1lCT0gImNvcmVfbDRfY2xrZG0iLAotCS5yZWNhbGMJ CT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19OwotCi0vKiBTRUNVUkVfMzJLX0ZDSyBjbG9ja3Mg Ki8KLQotc3RhdGljIHN0cnVjdCBjbGsgZ3B0MTJfZmNrID0gewotCS5uYW1lCQk9ICJncHQxMl9m Y2siLAotCS5vcHMJCT0gJmNsa29wc19udWxsLAotCS5wYXJlbnQJCT0gJnNlY3VyZV8zMmtfZmNr LAotCS5yZWNhbGMJCT0gJmZvbGxvd3BhcmVudF9yZWNhbGMsCi19OwotCi1zdGF0aWMgc3RydWN0 IGNsayB3ZHQxX2ZjayA9IHsKLQkubmFtZQkJPSAid2R0MV9mY2siLAotCS5vcHMJCT0gJmNsa29w c19udWxsLAotCS5wYXJlbnQJCT0gJnNlY3VyZV8zMmtfZmNrLAotCS5yZWNhbGMJCT0gJmZvbGxv d3BhcmVudF9yZWNhbGMsCi19OworZXh0ZXJuIHN0cnVjdCBjbGsgKnNkcmNfaWNrX3A7CitleHRl cm4gc3RydWN0IGNsayAqYXJtX2Zja19wOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvYXJt L21hY2gtb21hcDIvY2xvY2szNHh4LmggYi9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrMzR4eF9k YXRhLmMKc2ltaWxhcml0eSBpbmRleCA4NiUKY29weSBmcm9tIGFyY2gvYXJtL21hY2gtb21hcDIv Y2xvY2szNHh4LmgKY29weSB0byBhcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrMzR4eF9kYXRhLmMK aW5kZXggOGZlMWJjYi4uMjJhYjU5MiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9j bG9jazM0eHguaAorKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrMzR4eF9kYXRhLmMKQEAg LTEsOCArMSw4IEBACiAvKgotICogT01BUDMgY2xvY2sgZnJhbWV3b3JrCisgKiBPTUFQMyBjbG9j ayBkYXRhCiAgKgotICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDggVGV4YXMgSW5zdHJ1bWVudHMs IEluYy4KLSAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA4IE5va2lhIENvcnBvcmF0aW9uCisgKiBD b3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUZXhhcyBJbnN0cnVtZW50cywgSW5jLgorICogQ29weXJp Z2h0IChDKSAyMDA3LTIwMDkgTm9raWEgQ29ycG9yYXRpb24KICAqCiAgKiBXcml0dGVuIGJ5IFBh dWwgV2FsbXNsZXkKICAqIFdpdGggbWFueSBkZXZpY2UgY2xvY2sgZml4ZXMgYnkgS2V2aW4gSGls bWFuIGFuZCBKb3VuaSBIw7ZnYW5kZXIKQEAgLTE2LDI3ICsxNiw1NSBAQAogICogdG8gYmUgcmVx dWVzdGVkIGZyb20gZHJpdmVycyBkaXJlY3RseS4KICAqLwogCi0jaWZuZGVmIF9fQVJDSF9BUk1f TUFDSF9PTUFQMl9DTE9DSzM0WFhfSAotI2RlZmluZSBfX0FSQ0hfQVJNX01BQ0hfT01BUDJfQ0xP Q0szNFhYX0gKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJu ZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KIAogI2luY2x1ZGUgPHBsYXQvY29udHJvbC5o PgorI2luY2x1ZGUgPHBsYXQvY2xrZGV2X29tYXAuaD4KIAogI2luY2x1ZGUgImNsb2NrLmgiCisj aW5jbHVkZSAiY2xvY2szNHh4LmgiCiAjaW5jbHVkZSAiY20uaCIKICNpbmNsdWRlICJjbS1yZWdi aXRzLTM0eHguaCIKICNpbmNsdWRlICJwcm0uaCIKICNpbmNsdWRlICJwcm0tcmVnYml0cy0zNHh4 LmgiCiAKLSNkZWZpbmUgT01BUF9DTV9SRUdBRERSCQlPTUFQMzRYWF9DTV9SRUdBRERSCisvKgor ICogY2xrb3BzCisgKi8KKworc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtvcHMgY2xrb3BzX29tYXAz NDMwZXMyX3NzaV93YWl0ID0geworCS5lbmFibGUJCT0gb21hcDJfZGZsdF9jbGtfZW5hYmxlLAor CS5kaXNhYmxlCT0gb21hcDJfZGZsdF9jbGtfZGlzYWJsZSwKKwkuZmluZF9pZGxlc3QJPSBvbWFw MzQzMGVzMl9jbGtfc3NpX2ZpbmRfaWRsZXN0LAorCS5maW5kX2NvbXBhbmlvbiA9IG9tYXAyX2Ns a19kZmx0X2ZpbmRfY29tcGFuaW9uLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtvcHMg Y2xrb3BzX29tYXAzNDMwZXMyX2hzb3RndXNiX3dhaXQgPSB7CisJLmVuYWJsZQkJPSBvbWFwMl9k Zmx0X2Nsa19lbmFibGUsCisJLmRpc2FibGUJPSBvbWFwMl9kZmx0X2Nsa19kaXNhYmxlLAorCS5m aW5kX2lkbGVzdAk9IG9tYXAzNDMwZXMyX2Nsa19oc290Z3VzYl9maW5kX2lkbGVzdCwKKwkuZmlu ZF9jb21wYW5pb24gPSBvbWFwMl9jbGtfZGZsdF9maW5kX2NvbXBhbmlvbiwKK307CisKK3N0YXRp YyBjb25zdCBzdHJ1Y3QgY2xrb3BzIGNsa29wc19vbWFwMzQzMGVzMl9kc3NfdXNiaG9zdF93YWl0 ID0geworCS5lbmFibGUJCT0gb21hcDJfZGZsdF9jbGtfZW5hYmxlLAorCS5kaXNhYmxlCT0gb21h cDJfZGZsdF9jbGtfZGlzYWJsZSwKKwkuZmluZF9pZGxlc3QJPSBvbWFwMzQzMGVzMl9jbGtfZHNz X3VzYmhvc3RfZmluZF9pZGxlc3QsCisJLmZpbmRfY29tcGFuaW9uID0gb21hcDJfY2xrX2RmbHRf ZmluZF9jb21wYW5pb24sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGNsa29wcyBjbGtvcHNf bm9uY29yZV9kcGxsX29wcyA9IHsKKwkuZW5hYmxlCQk9ICZvbWFwM19ub25jb3JlX2RwbGxfZW5h YmxlLAorCS5kaXNhYmxlCT0gJm9tYXAzX25vbmNvcmVfZHBsbF9kaXNhYmxlLAorfTsKKworLyoK KyAqIGNsb2NrcworICovCiAKLXN0YXRpYyB1bnNpZ25lZCBsb25nIG9tYXAzX2RwbGxfcmVjYWxj KHN0cnVjdCBjbGsgKmNsayk7Ci1zdGF0aWMgdW5zaWduZWQgbG9uZyBvbWFwM19jbGtvdXR4Ml9y ZWNhbGMoc3RydWN0IGNsayAqY2xrKTsKLXN0YXRpYyB2b2lkIG9tYXAzX2RwbGxfYWxsb3dfaWRs ZShzdHJ1Y3QgY2xrICpjbGspOwotc3RhdGljIHZvaWQgb21hcDNfZHBsbF9kZW55X2lkbGUoc3Ry dWN0IGNsayAqY2xrKTsKLXN0YXRpYyB1MzIgb21hcDNfZHBsbF9hdXRvaWRsZV9yZWFkKHN0cnVj dCBjbGsgKmNsayk7Ci1zdGF0aWMgaW50IG9tYXAzX25vbmNvcmVfZHBsbF9zZXRfcmF0ZShzdHJ1 Y3QgY2xrICpjbGssIHVuc2lnbmVkIGxvbmcgcmF0ZSk7Ci1zdGF0aWMgaW50IG9tYXAzX2RwbGw0 X3NldF9yYXRlKHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQgbG9uZyByYXRlKTsKLXN0YXRpYyBp bnQgb21hcDNfY29yZV9kcGxsX20yX3NldF9yYXRlKHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQg bG9uZyByYXRlKTsKKyNkZWZpbmUgT01BUF9DTV9SRUdBRERSCQlPTUFQMzRYWF9DTV9SRUdBRERS CiAKIC8qIE1heGltdW0gRFBMTCBtdWx0aXBsaWVyLCBkaXZpZGVyIHZhbHVlcyBmb3IgT01BUDMg Ki8KICNkZWZpbmUgT01BUDNfTUFYX0RQTExfTVVMVAkJMjA0OApAQCAtNTQsMTEgKzgyLDYgQEAg c3RhdGljIGludCBvbWFwM19jb3JlX2RwbGxfbTJfc2V0X3JhdGUoc3RydWN0IGNsayAqY2xrLCB1 bnNpZ25lZCBsb25nIHJhdGUpOwogc3RhdGljIHN0cnVjdCBjbGsgZHBsbDFfZmNrOwogc3RhdGlj IHN0cnVjdCBjbGsgZHBsbDJfZmNrOwogCi0vKiBDTV9DTEtFTl9QTEwqLkVOKiBiaXQgdmFsdWVz IC0gbm90IGFsbCBhcmUgYXZhaWxhYmxlIGZvciBldmVyeSBEUExMICovCi0jZGVmaW5lIERQTExf TE9XX1BPV0VSX1NUT1AJCTB4MQotI2RlZmluZSBEUExMX0xPV19QT1dFUl9CWVBBU1MJCTB4NQot I2RlZmluZSBEUExMX0xPQ0tFRAkJCTB4NwotCiAvKiBQUk0gQ0xPQ0tTICovCiAKIC8qIEFjY29y ZGluZyB0byB0aW1lcjMyay5jLCB0aGlzIGlzIGEgMzI3NjhIeiBjbG9jaywgbm90IGEgMzIwMDBI eiBjbG9jay4gKi8KQEAgLTI5OTAsNCArMzAxMywzMDcgQEAgc3RhdGljIHN0cnVjdCBjbGsgd2R0 MV9mY2sgPSB7CiAJLnJlY2FsYwkJPSAmZm9sbG93cGFyZW50X3JlY2FsYywKIH07CiAKKworLyoK KyAqIGNsa2RldgorICovCisKK3N0YXRpYyBzdHJ1Y3Qgb21hcF9jbGsgb21hcDM0eHhfY2xrc1td ID0geworCUNMSyhOVUxMLAkib21hcF8zMmtfZmNrIiwJJm9tYXBfMzJrX2ZjaywJQ0tfMzQzWCks CisJQ0xLKE5VTEwsCSJ2aXJ0XzEybV9jayIsCSZ2aXJ0XzEybV9jaywJQ0tfMzQzWCksCisJQ0xL KE5VTEwsCSJ2aXJ0XzEzbV9jayIsCSZ2aXJ0XzEzbV9jaywJQ0tfMzQzWCksCisJQ0xLKE5VTEws CSJ2aXJ0XzE2XzhtX2NrIiwgJnZpcnRfMTZfOG1fY2ssIENLXzM0MzBFUzIpLAorCUNMSyhOVUxM LAkidmlydF8xOV8ybV9jayIsICZ2aXJ0XzE5XzJtX2NrLCBDS18zNDNYKSwKKwlDTEsoTlVMTCwJ InZpcnRfMjZtX2NrIiwJJnZpcnRfMjZtX2NrLAlDS18zNDNYKSwKKwlDTEsoTlVMTCwJInZpcnRf MzhfNG1fY2siLCAmdmlydF8zOF80bV9jaywgQ0tfMzQzWCksCisJQ0xLKE5VTEwsCSJvc2Nfc3lz X2NrIiwJJm9zY19zeXNfY2ssCUNLXzM0M1gpLAorCUNMSyhOVUxMLAkic3lzX2NrIiwJJnN5c19j aywJQ0tfMzQzWCksCisJQ0xLKE5VTEwsCSJzeXNfYWx0Y2xrIiwJJnN5c19hbHRjbGssCUNLXzM0 M1gpLAorCUNMSyhOVUxMLAkibWNic3BfY2xrcyIsCSZtY2JzcF9jbGtzLAlDS18zNDNYKSwKKwlD TEsoTlVMTCwJInN5c19jbGtvdXQxIiwJJnN5c19jbGtvdXQxLAlDS18zNDNYKSwKKwlDTEsoTlVM TCwJImRwbGwxX2NrIiwJJmRwbGwxX2NrLAlDS18zNDNYKSwKKwlDTEsoTlVMTCwJImRwbGwxX3gy X2NrIiwJJmRwbGwxX3gyX2NrLAlDS18zNDNYKSwKKwlDTEsoTlVMTCwJImRwbGwxX3gybTJfY2si LCAmZHBsbDFfeDJtMl9jaywgQ0tfMzQzWCksCisJQ0xLKE5VTEwsCSJkcGxsMl9jayIsCSZkcGxs Ml9jaywJQ0tfMzQzWCksCisJQ0xLKE5VTEwsCSJkcGxsMl9tMl9jayIsCSZkcGxsMl9tMl9jaywJ Q0tfMzQzWCksCisJQ0xLKE5VTEwsCSJkcGxsM19jayIsCSZkcGxsM19jaywJQ0tfMzQzWCksCisJ Q0xLKE5VTEwsCSJjb3JlX2NrIiwJJmNvcmVfY2ssCUNLXzM0M1gpLAorCUNMSyhOVUxMLAkiZHBs bDNfeDJfY2siLAkmZHBsbDNfeDJfY2ssCUNLXzM0M1gpLAorCUNMSyhOVUxMLAkiZHBsbDNfbTJf Y2siLAkmZHBsbDNfbTJfY2ssCUNLXzM0M1gpLAorCUNMSyhOVUxMLAkiZHBsbDNfbTJ4Ml9jayIs ICZkcGxsM19tMngyX2NrLCBDS18zNDNYKSwKKwlDTEsoTlVMTCwJImRwbGwzX20zX2NrIiwJJmRw bGwzX20zX2NrLAlDS18zNDNYKSwKKwlDTEsoTlVMTCwJImRwbGwzX20zeDJfY2siLCAmZHBsbDNf bTN4Ml9jaywgQ0tfMzQzWCksCisJQ0xLKE5VTEwsCSJlbXVfY29yZV9hbHdvbl9jayIsICZlbXVf Y29yZV9hbHdvbl9jaywgQ0tfMzQzWCksCisJQ0xLKE5VTEwsCSJkcGxsNF9jayIsCSZkcGxsNF9j aywJQ0tfMzQzWCksCisJQ0xLKE5VTEwsCSJkcGxsNF94Ml9jayIsCSZkcGxsNF94Ml9jaywJQ0tf MzQzWCksCisJQ0xLKE5VTEwsCSJvbWFwXzk2bV9hbHdvbl9mY2siLCAmb21hcF85Nm1fYWx3b25f ZmNrLCBDS18zNDNYKSwKKwlDTEsoTlVMTCwJIm9tYXBfOTZtX2ZjayIsCSZvbWFwXzk2bV9mY2ss CUNLXzM0M1gpLAorCUNMSyhOVUxMLAkiY21fOTZtX2ZjayIsCSZjbV85Nm1fZmNrLAlDS18zNDNY KSwKKwlDTEsoTlVMTCwJIm9tYXBfNTRtX2ZjayIsCSZvbWFwXzU0bV9mY2ssCUNLXzM0M1gpLAor CUNMSyhOVUxMLAkib21hcF80OG1fZmNrIiwJJm9tYXBfNDhtX2ZjaywJQ0tfMzQzWCksCisJQ0xL KE5VTEwsCSJvbWFwXzEybV9mY2siLAkmb21hcF8xMm1fZmNrLAlDS18zNDNYKSwKKwlDTEsoTlVM TCwJImRwbGw0X20yX2NrIiwJJmRwbGw0X20yX2NrLAlDS18zNDNYKSwKKwlDTEsoTlVMTCwJImRw bGw0X20yeDJfY2siLCAmZHBsbDRfbTJ4Ml9jaywgQ0tfMzQzWCksCisJQ0xLKE5VTEwsCSJkcGxs NF9tM19jayIsCSZkcGxsNF9tM19jaywJQ0tfMzQzWCksCisJQ0xLKE5VTEwsCSJkcGxsNF9tM3gy X2NrIiwgJmRwbGw0X20zeDJfY2ssIENLXzM0M1gpLAorCUNMSyhOVUxMLAkiZHBsbDRfbTRfY2si LAkmZHBsbDRfbTRfY2ssCUNLXzM0M1gpLAorCUNMSyhOVUxMLAkiZHBsbDRfbTR4Ml9jayIsICZk cGxsNF9tNHgyX2NrLCBDS18zNDNYKSwKKwlDTEsoTlVMTCwJImRwbGw0X201X2NrIiwJJmRwbGw0 X201X2NrLAlDS18zNDNYKSwKKwlDTEsoTlVMTCwJImRwbGw0X201eDJfY2siLCAmZHBsbDRfbTV4 Ml9jaywgQ0tfMzQzWCksCisJQ0xLKE5VTEwsCSJkcGxsNF9tNl9jayIsCSZkcGxsNF9tNl9jaywJ Q0tfMzQzWCksCisJQ0xLKE5VTEwsCSJkcGxsNF9tNngyX2NrIiwgJmRwbGw0X202eDJfY2ssIENL XzM0M1gpLAorCUNMSyhOVUxMLAkiZW11X3Blcl9hbHdvbl9jayIsICZlbXVfcGVyX2Fsd29uX2Nr LCBDS18zNDNYKSwKKwlDTEsoTlVMTCwJImRwbGw1X2NrIiwJJmRwbGw1X2NrLAlDS18zNDMwRVMy KSwKKwlDTEsoTlVMTCwJImRwbGw1X20yX2NrIiwJJmRwbGw1X20yX2NrLAlDS18zNDMwRVMyKSwK KwlDTEsoTlVMTCwJImNsa291dDJfc3JjX2NrIiwgJmNsa291dDJfc3JjX2NrLCBDS18zNDNYKSwK KwlDTEsoTlVMTCwJInN5c19jbGtvdXQyIiwJJnN5c19jbGtvdXQyLAlDS18zNDNYKSwKKwlDTEso TlVMTCwJImNvcmV4Ml9mY2siLAkmY29yZXgyX2ZjaywJQ0tfMzQzWCksCisJQ0xLKE5VTEwsCSJk cGxsMV9mY2siLAkmZHBsbDFfZmNrLAlDS18zNDNYKSwKKwlDTEsoTlVMTCwJIm1wdV9jayIsCSZt cHVfY2ssCUNLXzM0M1gpLAorCUNMSyhOVUxMLAkiYXJtX2ZjayIsCSZhcm1fZmNrLAlDS18zNDNY KSwKKwlDTEsoTlVMTCwJImVtdV9tcHVfYWx3b25fY2siLCAmZW11X21wdV9hbHdvbl9jaywgQ0tf MzQzWCksCisJQ0xLKE5VTEwsCSJkcGxsMl9mY2siLAkmZHBsbDJfZmNrLAlDS18zNDNYKSwKKwlD TEsoTlVMTCwJIml2YTJfY2siLAkmaXZhMl9jaywJQ0tfMzQzWCksCisJQ0xLKE5VTEwsCSJsM19p Y2siLAkmbDNfaWNrLAlDS18zNDNYKSwKKwlDTEsoTlVMTCwJImw0X2ljayIsCSZsNF9pY2ssCUNL XzM0M1gpLAorCUNMSyhOVUxMLAkicm1faWNrIiwJJnJtX2ljaywJQ0tfMzQzWCksCisJQ0xLKE5V TEwsCSJnZnhfbDNfY2siLAkmZ2Z4X2wzX2NrLAlDS18zNDMwRVMxKSwKKwlDTEsoTlVMTCwJImdm eF9sM19mY2siLAkmZ2Z4X2wzX2ZjaywJQ0tfMzQzMEVTMSksCisJQ0xLKE5VTEwsCSJnZnhfbDNf aWNrIiwJJmdmeF9sM19pY2ssCUNLXzM0MzBFUzEpLAorCUNMSyhOVUxMLAkiZ2Z4X2NnMV9jayIs CSZnZnhfY2cxX2NrLAlDS18zNDMwRVMxKSwKKwlDTEsoTlVMTCwJImdmeF9jZzJfY2siLAkmZ2Z4 X2NnMl9jaywJQ0tfMzQzMEVTMSksCisJQ0xLKE5VTEwsCSJzZ3hfZmNrIiwJJnNneF9mY2ssCUNL XzM0MzBFUzIpLAorCUNMSyhOVUxMLAkic2d4X2ljayIsCSZzZ3hfaWNrLAlDS18zNDMwRVMyKSwK KwlDTEsoTlVMTCwJImQyZF8yNm1fZmNrIiwJJmQyZF8yNm1fZmNrLAlDS18zNDMwRVMxKSwKKwlD TEsoTlVMTCwJIm1vZGVtX2ZjayIsCSZtb2RlbV9mY2ssCUNLXzM0M1gpLAorCUNMSyhOVUxMLAki c2FkMmRfaWNrIiwJJnNhZDJkX2ljaywJQ0tfMzQzWCksCisJQ0xLKE5VTEwsCSJtYWQyZF9pY2si LAkmbWFkMmRfaWNrLAlDS18zNDNYKSwKKwlDTEsoTlVMTCwJImdwdDEwX2ZjayIsCSZncHQxMF9m Y2ssCUNLXzM0M1gpLAorCUNMSyhOVUxMLAkiZ3B0MTFfZmNrIiwJJmdwdDExX2ZjaywJQ0tfMzQz WCksCisJQ0xLKE5VTEwsCSJjcGVmdXNlX2ZjayIsCSZjcGVmdXNlX2ZjaywJQ0tfMzQzMEVTMiks CisJQ0xLKE5VTEwsCSJ0c19mY2siLAkmdHNfZmNrLAlDS18zNDMwRVMyKSwKKwlDTEsoTlVMTCwJ InVzYnRsbF9mY2siLAkmdXNidGxsX2ZjaywJQ0tfMzQzMEVTMiksCisJQ0xLKE5VTEwsCSJjb3Jl Xzk2bV9mY2siLAkmY29yZV85Nm1fZmNrLAlDS18zNDNYKSwKKwlDTEsoIm1tY2ktb21hcC1ocy4y IiwJImZjayIsCSZtbWNoczNfZmNrLAlDS18zNDMwRVMyKSwKKwlDTEsoIm1tY2ktb21hcC1ocy4x IiwJImZjayIsCSZtbWNoczJfZmNrLAlDS18zNDNYKSwKKwlDTEsoTlVMTCwJIm1zcHJvX2ZjayIs CSZtc3Byb19mY2ssCUNLXzM0M1gpLAorCUNMSygibW1jaS1vbWFwLWhzLjAiLAkiZmNrIiwJJm1t Y2hzMV9mY2ssCUNLXzM0M1gpLAorCUNMSygiaTJjX29tYXAuMyIsICJmY2siLAkmaTJjM19mY2ss CUNLXzM0M1gpLAorCUNMSygiaTJjX29tYXAuMiIsICJmY2siLAkmaTJjMl9mY2ssCUNLXzM0M1gp LAorCUNMSygiaTJjX29tYXAuMSIsICJmY2siLAkmaTJjMV9mY2ssCUNLXzM0M1gpLAorCUNMSygi b21hcC1tY2JzcC41IiwgImZjayIsCSZtY2JzcDVfZmNrLAlDS18zNDNYKSwKKwlDTEsoIm9tYXAt bWNic3AuMSIsICJmY2siLAkmbWNic3AxX2ZjaywJQ0tfMzQzWCksCisJQ0xLKE5VTEwsCSJjb3Jl XzQ4bV9mY2siLAkmY29yZV80OG1fZmNrLAlDS18zNDNYKSwKKwlDTEsoIm9tYXAyX21jc3BpLjQi LCAiZmNrIiwJJm1jc3BpNF9mY2ssCUNLXzM0M1gpLAorCUNMSygib21hcDJfbWNzcGkuMyIsICJm Y2siLAkmbWNzcGkzX2ZjaywJQ0tfMzQzWCksCisJQ0xLKCJvbWFwMl9tY3NwaS4yIiwgImZjayIs CSZtY3NwaTJfZmNrLAlDS18zNDNYKSwKKwlDTEsoIm9tYXAyX21jc3BpLjEiLCAiZmNrIiwJJm1j c3BpMV9mY2ssCUNLXzM0M1gpLAorCUNMSyhOVUxMLAkidWFydDJfZmNrIiwJJnVhcnQyX2ZjaywJ Q0tfMzQzWCksCisJQ0xLKE5VTEwsCSJ1YXJ0MV9mY2siLAkmdWFydDFfZmNrLAlDS18zNDNYKSwK KwlDTEsoTlVMTCwJImZzaG9zdHVzYl9mY2siLCAmZnNob3N0dXNiX2ZjaywgQ0tfMzQzMEVTMSks CisJQ0xLKE5VTEwsCSJjb3JlXzEybV9mY2siLAkmY29yZV8xMm1fZmNrLAlDS18zNDNYKSwKKwlD TEsoIm9tYXBfaGRxLjAiLCAiZmNrIiwJJmhkcV9mY2ssCUNLXzM0M1gpLAorCUNMSyhOVUxMLAki c3NpX3Nzcl9mY2siLAkmc3NpX3Nzcl9mY2tfMzQzMGVzMSwJQ0tfMzQzMEVTMSksCisJQ0xLKE5V TEwsCSJzc2lfc3NyX2ZjayIsCSZzc2lfc3NyX2Zja18zNDMwZXMyLAlDS18zNDMwRVMyKSwKKwlD TEsoTlVMTCwJInNzaV9zc3RfZmNrIiwJJnNzaV9zc3RfZmNrXzM0MzBlczEsCUNLXzM0MzBFUzEp LAorCUNMSyhOVUxMLAkic3NpX3NzdF9mY2siLAkmc3NpX3NzdF9mY2tfMzQzMGVzMiwJQ0tfMzQz MEVTMiksCisJQ0xLKE5VTEwsCSJjb3JlX2wzX2ljayIsCSZjb3JlX2wzX2ljaywJQ0tfMzQzWCks CisJQ0xLKCJtdXNiX2hkcmMiLAkiaWNrIiwJJmhzb3RndXNiX2lja18zNDMwZXMxLAlDS18zNDMw RVMxKSwKKwlDTEsoIm11c2JfaGRyYyIsCSJpY2siLAkmaHNvdGd1c2JfaWNrXzM0MzBlczIsCUNL XzM0MzBFUzIpLAorCUNMSyhOVUxMLAkic2RyY19pY2siLAkmc2RyY19pY2ssCUNLXzM0M1gpLAor CUNMSyhOVUxMLAkiZ3BtY19mY2siLAkmZ3BtY19mY2ssCUNLXzM0M1gpLAorCUNMSyhOVUxMLAki c2VjdXJpdHlfbDNfaWNrIiwgJnNlY3VyaXR5X2wzX2ljaywgQ0tfMzQzWCksCisJQ0xLKE5VTEws CSJwa2FfaWNrIiwJJnBrYV9pY2ssCUNLXzM0M1gpLAorCUNMSyhOVUxMLAkiY29yZV9sNF9pY2si LAkmY29yZV9sNF9pY2ssCUNLXzM0M1gpLAorCUNMSyhOVUxMLAkidXNidGxsX2ljayIsCSZ1c2J0 bGxfaWNrLAlDS18zNDMwRVMyKSwKKwlDTEsoIm1tY2ktb21hcC1ocy4yIiwJImljayIsCSZtbWNo czNfaWNrLAlDS18zNDMwRVMyKSwKKwlDTEsoTlVMTCwJImljcl9pY2siLAkmaWNyX2ljaywJQ0tf MzQzWCksCisJQ0xLKE5VTEwsCSJhZXMyX2ljayIsCSZhZXMyX2ljaywJQ0tfMzQzWCksCisJQ0xL KE5VTEwsCSJzaGExMl9pY2siLAkmc2hhMTJfaWNrLAlDS18zNDNYKSwKKwlDTEsoTlVMTCwJImRl czJfaWNrIiwJJmRlczJfaWNrLAlDS18zNDNYKSwKKwlDTEsoIm1tY2ktb21hcC1ocy4xIiwJImlj ayIsCSZtbWNoczJfaWNrLAlDS18zNDNYKSwKKwlDTEsoIm1tY2ktb21hcC1ocy4wIiwJImljayIs CSZtbWNoczFfaWNrLAlDS18zNDNYKSwKKwlDTEsoTlVMTCwJIm1zcHJvX2ljayIsCSZtc3Byb19p Y2ssCUNLXzM0M1gpLAorCUNMSygib21hcF9oZHEuMCIsICJpY2siLAkmaGRxX2ljaywJQ0tfMzQz WCksCisJQ0xLKCJvbWFwMl9tY3NwaS40IiwgImljayIsCSZtY3NwaTRfaWNrLAlDS18zNDNYKSwK KwlDTEsoIm9tYXAyX21jc3BpLjMiLCAiaWNrIiwJJm1jc3BpM19pY2ssCUNLXzM0M1gpLAorCUNM Sygib21hcDJfbWNzcGkuMiIsICJpY2siLAkmbWNzcGkyX2ljaywJQ0tfMzQzWCksCisJQ0xLKCJv bWFwMl9tY3NwaS4xIiwgImljayIsCSZtY3NwaTFfaWNrLAlDS18zNDNYKSwKKwlDTEsoImkyY19v bWFwLjMiLCAiaWNrIiwJJmkyYzNfaWNrLAlDS18zNDNYKSwKKwlDTEsoImkyY19vbWFwLjIiLCAi aWNrIiwJJmkyYzJfaWNrLAlDS18zNDNYKSwKKwlDTEsoImkyY19vbWFwLjEiLCAiaWNrIiwJJmky YzFfaWNrLAlDS18zNDNYKSwKKwlDTEsoTlVMTCwJInVhcnQyX2ljayIsCSZ1YXJ0Ml9pY2ssCUNL XzM0M1gpLAorCUNMSyhOVUxMLAkidWFydDFfaWNrIiwJJnVhcnQxX2ljaywJQ0tfMzQzWCksCisJ Q0xLKE5VTEwsCSJncHQxMV9pY2siLAkmZ3B0MTFfaWNrLAlDS18zNDNYKSwKKwlDTEsoTlVMTCwJ ImdwdDEwX2ljayIsCSZncHQxMF9pY2ssCUNLXzM0M1gpLAorCUNMSygib21hcC1tY2JzcC41Iiwg ImljayIsCSZtY2JzcDVfaWNrLAlDS18zNDNYKSwKKwlDTEsoIm9tYXAtbWNic3AuMSIsICJpY2si LAkmbWNic3AxX2ljaywJQ0tfMzQzWCksCisJQ0xLKE5VTEwsCSJmYWNfaWNrIiwJJmZhY19pY2ss CUNLXzM0MzBFUzEpLAorCUNMSyhOVUxMLAkibWFpbGJveGVzX2ljayIsICZtYWlsYm94ZXNfaWNr LCBDS18zNDNYKSwKKwlDTEsoTlVMTCwJIm9tYXBjdHJsX2ljayIsCSZvbWFwY3RybF9pY2ssCUNL XzM0M1gpLAorCUNMSyhOVUxMLAkic3NpX2w0X2ljayIsCSZzc2lfbDRfaWNrLAlDS18zNDNYKSwK KwlDTEsoTlVMTCwJInNzaV9pY2siLAkmc3NpX2lja18zNDMwZXMxLAlDS18zNDMwRVMxKSwKKwlD TEsoTlVMTCwJInNzaV9pY2siLAkmc3NpX2lja18zNDMwZXMyLAlDS18zNDMwRVMyKSwKKwlDTEso TlVMTCwJInVzYl9sNF9pY2siLAkmdXNiX2w0X2ljaywJQ0tfMzQzMEVTMSksCisJQ0xLKE5VTEws CSJzZWN1cml0eV9sNF9pY2syIiwgJnNlY3VyaXR5X2w0X2ljazIsIENLXzM0M1gpLAorCUNMSyhO VUxMLAkiYWVzMV9pY2siLAkmYWVzMV9pY2ssCUNLXzM0M1gpLAorCUNMSygib21hcF9ybmciLAki aWNrIiwJCSZybmdfaWNrLAlDS18zNDNYKSwKKwlDTEsoTlVMTCwJInNoYTExX2ljayIsCSZzaGEx MV9pY2ssCUNLXzM0M1gpLAorCUNMSyhOVUxMLAkiZGVzMV9pY2siLAkmZGVzMV9pY2ssCUNLXzM0 M1gpLAorCUNMSygib21hcGRzcyIsCSJkc3MxX2ZjayIsCSZkc3MxX2Fsd29uX2Zja18zNDMwZXMx LCBDS18zNDMwRVMxKSwKKwlDTEsoIm9tYXBkc3MiLAkiZHNzMV9mY2siLAkmZHNzMV9hbHdvbl9m Y2tfMzQzMGVzMiwgQ0tfMzQzMEVTMiksCisJQ0xLKCJvbWFwZHNzIiwJInR2X2ZjayIsCSZkc3Nf dHZfZmNrLAlDS18zNDNYKSwKKwlDTEsoIm9tYXBkc3MiLAkidmlkZW9fZmNrIiwJJmRzc185Nm1f ZmNrLAlDS18zNDNYKSwKKwlDTEsoIm9tYXBkc3MiLAkiZHNzMl9mY2siLAkmZHNzMl9hbHdvbl9m Y2ssIENLXzM0M1gpLAorCUNMSygib21hcGRzcyIsCSJpY2siLAkJJmRzc19pY2tfMzQzMGVzMSwJ Q0tfMzQzMEVTMSksCisJQ0xLKCJvbWFwZHNzIiwJImljayIsCQkmZHNzX2lja18zNDMwZXMyLAlD S18zNDMwRVMyKSwKKwlDTEsoTlVMTCwJImNhbV9tY2xrIiwJJmNhbV9tY2xrLAlDS18zNDNYKSwK KwlDTEsoTlVMTCwJImNhbV9pY2siLAkmY2FtX2ljaywJQ0tfMzQzWCksCisJQ0xLKE5VTEwsCSJj c2kyXzk2bV9mY2siLAkmY3NpMl85Nm1fZmNrLAlDS18zNDNYKSwKKwlDTEsoTlVMTCwJInVzYmhv c3RfMTIwbV9mY2siLCAmdXNiaG9zdF8xMjBtX2ZjaywgQ0tfMzQzMEVTMiksCisJQ0xLKE5VTEws CSJ1c2Job3N0XzQ4bV9mY2siLCAmdXNiaG9zdF80OG1fZmNrLCBDS18zNDMwRVMyKSwKKwlDTEso TlVMTCwJInVzYmhvc3RfaWNrIiwJJnVzYmhvc3RfaWNrLAlDS18zNDMwRVMyKSwKKwlDTEsoTlVM TCwJInVzaW1fZmNrIiwJJnVzaW1fZmNrLAlDS18zNDMwRVMyKSwKKwlDTEsoTlVMTCwJImdwdDFf ZmNrIiwJJmdwdDFfZmNrLAlDS18zNDNYKSwKKwlDTEsoTlVMTCwJIndrdXBfMzJrX2ZjayIsCSZ3 a3VwXzMya19mY2ssCUNLXzM0M1gpLAorCUNMSyhOVUxMLAkiZ3BpbzFfZGJjayIsCSZncGlvMV9k YmNrLAlDS18zNDNYKSwKKwlDTEsoIm9tYXBfd2R0IiwJImZjayIsCQkmd2R0Ml9mY2ssCUNLXzM0 M1gpLAorCUNMSyhOVUxMLAkid2t1cF9sNF9pY2siLAkmd2t1cF9sNF9pY2ssCUNLXzM0M1gpLAor CUNMSyhOVUxMLAkidXNpbV9pY2siLAkmdXNpbV9pY2ssCUNLXzM0MzBFUzIpLAorCUNMSygib21h cF93ZHQiLAkiaWNrIiwJCSZ3ZHQyX2ljaywJQ0tfMzQzWCksCisJQ0xLKE5VTEwsCSJ3ZHQxX2lj ayIsCSZ3ZHQxX2ljaywJQ0tfMzQzWCksCisJQ0xLKE5VTEwsCSJncGlvMV9pY2siLAkmZ3BpbzFf aWNrLAlDS18zNDNYKSwKKwlDTEsoTlVMTCwJIm9tYXBfMzJrc3luY19pY2siLCAmb21hcF8zMmtz eW5jX2ljaywgQ0tfMzQzWCksCisJQ0xLKE5VTEwsCSJncHQxMl9pY2siLAkmZ3B0MTJfaWNrLAlD S18zNDNYKSwKKwlDTEsoTlVMTCwJImdwdDFfaWNrIiwJJmdwdDFfaWNrLAlDS18zNDNYKSwKKwlD TEsoTlVMTCwJInBlcl85Nm1fZmNrIiwJJnBlcl85Nm1fZmNrLAlDS18zNDNYKSwKKwlDTEsoTlVM TCwJInBlcl80OG1fZmNrIiwJJnBlcl80OG1fZmNrLAlDS18zNDNYKSwKKwlDTEsoTlVMTCwJInVh cnQzX2ZjayIsCSZ1YXJ0M19mY2ssCUNLXzM0M1gpLAorCUNMSyhOVUxMLAkiZ3B0Ml9mY2siLAkm Z3B0Ml9mY2ssCUNLXzM0M1gpLAorCUNMSyhOVUxMLAkiZ3B0M19mY2siLAkmZ3B0M19mY2ssCUNL XzM0M1gpLAorCUNMSyhOVUxMLAkiZ3B0NF9mY2siLAkmZ3B0NF9mY2ssCUNLXzM0M1gpLAorCUNM SyhOVUxMLAkiZ3B0NV9mY2siLAkmZ3B0NV9mY2ssCUNLXzM0M1gpLAorCUNMSyhOVUxMLAkiZ3B0 Nl9mY2siLAkmZ3B0Nl9mY2ssCUNLXzM0M1gpLAorCUNMSyhOVUxMLAkiZ3B0N19mY2siLAkmZ3B0 N19mY2ssCUNLXzM0M1gpLAorCUNMSyhOVUxMLAkiZ3B0OF9mY2siLAkmZ3B0OF9mY2ssCUNLXzM0 M1gpLAorCUNMSyhOVUxMLAkiZ3B0OV9mY2siLAkmZ3B0OV9mY2ssCUNLXzM0M1gpLAorCUNMSyhO VUxMLAkicGVyXzMya19hbHdvbl9mY2siLCAmcGVyXzMya19hbHdvbl9mY2ssIENLXzM0M1gpLAor CUNMSyhOVUxMLAkiZ3BpbzZfZGJjayIsCSZncGlvNl9kYmNrLAlDS18zNDNYKSwKKwlDTEsoTlVM TCwJImdwaW81X2RiY2siLAkmZ3BpbzVfZGJjaywJQ0tfMzQzWCksCisJQ0xLKE5VTEwsCSJncGlv NF9kYmNrIiwJJmdwaW80X2RiY2ssCUNLXzM0M1gpLAorCUNMSyhOVUxMLAkiZ3BpbzNfZGJjayIs CSZncGlvM19kYmNrLAlDS18zNDNYKSwKKwlDTEsoTlVMTCwJImdwaW8yX2RiY2siLAkmZ3BpbzJf ZGJjaywJQ0tfMzQzWCksCisJQ0xLKE5VTEwsCSJ3ZHQzX2ZjayIsCSZ3ZHQzX2ZjaywJQ0tfMzQz WCksCisJQ0xLKE5VTEwsCSJwZXJfbDRfaWNrIiwJJnBlcl9sNF9pY2ssCUNLXzM0M1gpLAorCUNM SyhOVUxMLAkiZ3BpbzZfaWNrIiwJJmdwaW82X2ljaywJQ0tfMzQzWCksCisJQ0xLKE5VTEwsCSJn cGlvNV9pY2siLAkmZ3BpbzVfaWNrLAlDS18zNDNYKSwKKwlDTEsoTlVMTCwJImdwaW80X2ljayIs CSZncGlvNF9pY2ssCUNLXzM0M1gpLAorCUNMSyhOVUxMLAkiZ3BpbzNfaWNrIiwJJmdwaW8zX2lj aywJQ0tfMzQzWCksCisJQ0xLKE5VTEwsCSJncGlvMl9pY2siLAkmZ3BpbzJfaWNrLAlDS18zNDNY KSwKKwlDTEsoTlVMTCwJIndkdDNfaWNrIiwJJndkdDNfaWNrLAlDS18zNDNYKSwKKwlDTEsoTlVM TCwJInVhcnQzX2ljayIsCSZ1YXJ0M19pY2ssCUNLXzM0M1gpLAorCUNMSyhOVUxMLAkiZ3B0OV9p Y2siLAkmZ3B0OV9pY2ssCUNLXzM0M1gpLAorCUNMSyhOVUxMLAkiZ3B0OF9pY2siLAkmZ3B0OF9p Y2ssCUNLXzM0M1gpLAorCUNMSyhOVUxMLAkiZ3B0N19pY2siLAkmZ3B0N19pY2ssCUNLXzM0M1gp LAorCUNMSyhOVUxMLAkiZ3B0Nl9pY2siLAkmZ3B0Nl9pY2ssCUNLXzM0M1gpLAorCUNMSyhOVUxM LAkiZ3B0NV9pY2siLAkmZ3B0NV9pY2ssCUNLXzM0M1gpLAorCUNMSyhOVUxMLAkiZ3B0NF9pY2si LAkmZ3B0NF9pY2ssCUNLXzM0M1gpLAorCUNMSyhOVUxMLAkiZ3B0M19pY2siLAkmZ3B0M19pY2ss CUNLXzM0M1gpLAorCUNMSyhOVUxMLAkiZ3B0Ml9pY2siLAkmZ3B0Ml9pY2ssCUNLXzM0M1gpLAor CUNMSygib21hcC1tY2JzcC4yIiwgImljayIsCSZtY2JzcDJfaWNrLAlDS18zNDNYKSwKKwlDTEso Im9tYXAtbWNic3AuMyIsICJpY2siLAkmbWNic3AzX2ljaywJQ0tfMzQzWCksCisJQ0xLKCJvbWFw LW1jYnNwLjQiLCAiaWNrIiwJJm1jYnNwNF9pY2ssCUNLXzM0M1gpLAorCUNMSygib21hcC1tY2Jz cC4yIiwgImZjayIsCSZtY2JzcDJfZmNrLAlDS18zNDNYKSwKKwlDTEsoIm9tYXAtbWNic3AuMyIs ICJmY2siLAkmbWNic3AzX2ZjaywJQ0tfMzQzWCksCisJQ0xLKCJvbWFwLW1jYnNwLjQiLCAiZmNr IiwJJm1jYnNwNF9mY2ssCUNLXzM0M1gpLAorCUNMSyhOVUxMLAkiZW11X3NyY19jayIsCSZlbXVf c3JjX2NrLAlDS18zNDNYKSwKKwlDTEsoTlVMTCwJInBjbGtfZmNrIiwJJnBjbGtfZmNrLAlDS18z NDNYKSwKKwlDTEsoTlVMTCwJInBjbGt4Ml9mY2siLAkmcGNsa3gyX2ZjaywJQ0tfMzQzWCksCisJ Q0xLKE5VTEwsCSJhdGNsa19mY2siLAkmYXRjbGtfZmNrLAlDS18zNDNYKSwKKwlDTEsoTlVMTCwJ InRyYWNlY2xrX3NyY19mY2siLCAmdHJhY2VjbGtfc3JjX2ZjaywgQ0tfMzQzWCksCisJQ0xLKE5V TEwsCSJ0cmFjZWNsa19mY2siLAkmdHJhY2VjbGtfZmNrLAlDS18zNDNYKSwKKwlDTEsoTlVMTCwJ InNyMV9mY2siLAkmc3IxX2ZjaywJQ0tfMzQzWCksCisJQ0xLKE5VTEwsCSJzcjJfZmNrIiwJJnNy Ml9mY2ssCUNLXzM0M1gpLAorCUNMSyhOVUxMLAkic3JfbDRfaWNrIiwJJnNyX2w0X2ljaywJQ0tf MzQzWCksCisJQ0xLKE5VTEwsCSJzZWN1cmVfMzJrX2ZjayIsICZzZWN1cmVfMzJrX2ZjaywgQ0tf MzQzWCksCisJQ0xLKE5VTEwsCSJncHQxMl9mY2siLAkmZ3B0MTJfZmNrLAlDS18zNDNYKSwKKwlD TEsoTlVMTCwJIndkdDFfZmNrIiwJJndkdDFfZmNrLAlDS18zNDNYKSwKK307CisKKworaW50IF9f aW5pdCBvbWFwMl9jbGtfaW5pdCh2b2lkKQoreworCS8qIHN0cnVjdCBwcmNtX2NvbmZpZyAqcHJj bTsgKi8KKwlzdHJ1Y3Qgb21hcF9jbGsgKmM7CisJLyogdTMyIGNsa3JhdGU7ICovCisJdTMyIGNw dV9jbGtmbGc7CisKKwlpZiAoY3B1X2lzX29tYXAzNHh4KCkpIHsKKwkJY3B1X21hc2sgPSBSQVRF X0lOXzM0M1g7CisJCWNwdV9jbGtmbGcgPSBDS18zNDNYOworCisJCS8qCisJCSAqIFVwZGF0ZSB0 aGlzIGlmIHRoZXJlIGFyZSBmdXJ0aGVyIGNsb2NrIGNoYW5nZXMgYmV0d2VlbiBFUzIKKwkJICog YW5kIHByb2R1Y3Rpb24gcGFydHMKKwkJICovCisJCWlmIChvbWFwX3JldigpID09IE9NQVAzNDMw X1JFVl9FUzFfMCkgeworCQkJLyogTm8gMzQzMEVTMS1vbmx5IHJhdGVzIGV4aXN0LCBzbyBubyBS QVRFX0lOXzM0MzBFUzEgKi8KKwkJCWNwdV9jbGtmbGcgfD0gQ0tfMzQzMEVTMTsKKwkJfSBlbHNl IHsKKwkJCWNwdV9tYXNrIHw9IFJBVEVfSU5fMzQzMEVTMjsKKwkJCWNwdV9jbGtmbGcgfD0gQ0tf MzQzMEVTMjsKKwkJfQorCX0KKworCWNsa19pbml0KCZvbWFwMl9jbGtfZnVuY3Rpb25zKTsKKwor CWZvciAoYyA9IG9tYXAzNHh4X2Nsa3M7IGMgPCBvbWFwMzR4eF9jbGtzICsgQVJSQVlfU0laRShv bWFwMzR4eF9jbGtzKTsgYysrKQorCQljbGtfcHJlaW5pdChjLT5say5jbGspOworCisJZm9yIChj ID0gb21hcDM0eHhfY2xrczsgYyA8IG9tYXAzNHh4X2Nsa3MgKyBBUlJBWV9TSVpFKG9tYXAzNHh4 X2Nsa3MpOyBjKyspCisJCWlmIChjLT5jcHUgJiBjcHVfY2xrZmxnKSB7CisJCQljbGtkZXZfYWRk KCZjLT5sayk7CisJCQljbGtfcmVnaXN0ZXIoYy0+bGsuY2xrKTsKKwkJCW9tYXAyX2luaXRfY2xr X2Nsa2RtKGMtPmxrLmNsayk7CisJCX0KKworCS8qIFJFVklTSVQ6IE5vdCB5ZXQgcmVhZHkgZm9y IE9NQVAzICovCisjaWYgMAorCS8qIENoZWNrIHRoZSBNUFUgcmF0ZSBzZXQgYnkgYm9vdGxvYWRl ciAqLworCWNsa3JhdGUgPSBvbWFwMl9nZXRfZHBsbF9yYXRlXzI0eHgoJmRwbGxfY2spOworCWZv ciAocHJjbSA9IHJhdGVfdGFibGU7IHByY20tPm1wdV9zcGVlZDsgcHJjbSsrKSB7CisJCWlmICgh KHByY20tPmZsYWdzICYgY3B1X21hc2spKQorCQkJY29udGludWU7CisJCWlmIChwcmNtLT54dGFs X3NwZWVkICE9IHN5c19jay5yYXRlKQorCQkJY29udGludWU7CisJCWlmIChwcmNtLT5kcGxsX3Nw ZWVkIDw9IGNsa3JhdGUpCisJCQlicmVhazsKKwl9CisJY3Vycl9wcmNtX3NldCA9IHByY207CiAj ZW5kaWYKKworCXJlY2FsY3VsYXRlX3Jvb3RfY2xvY2tzKCk7CisKKwlwcmludGsoS0VSTl9JTkZP ICJDbG9ja2luZyByYXRlIChDcnlzdGFsL0NvcmUvTVBVKTogIgorCSAgICAgICAiJWxkLiUwMWxk LyVsZC8lbGQgTUh6XG4iLAorCSAgICAgICAob3NjX3N5c19jay5yYXRlIC8gMTAwMDAwMCksIChv c2Nfc3lzX2NrLnJhdGUgLyAxMDAwMDApICUgMTAsCisJICAgICAgIChjb3JlX2NrLnJhdGUgLyAx MDAwMDAwKSwgKGFybV9mY2sucmF0ZSAvIDEwMDAwMDApKTsKKworCS8qCisJICogT25seSBlbmFi bGUgdGhvc2UgY2xvY2tzIHdlIHdpbGwgbmVlZCwgbGV0IHRoZSBkcml2ZXJzCisJICogZW5hYmxl IG90aGVyIGNsb2NrcyBhcyBuZWNlc3NhcnkKKwkgKi8KKwljbGtfZW5hYmxlX2luaXRfY2xvY2tz KCk7CisKKwkvKgorCSAqIExvY2sgRFBMTDUgYW5kIHB1dCBpdCBpbiBhdXRvaWRsZS4KKwkgKi8K KwlpZiAob21hcF9yZXYoKSA+PSBPTUFQMzQzMF9SRVZfRVMyXzApCisJCW9tYXAzX2Nsa19sb2Nr X2RwbGw1KCk7CisKKwkvKiBBdm9pZCBzbGVlcGluZyBkdXJpbmcgb21hcDNfY29yZV9kcGxsX20y X3NldF9yYXRlKCkgKi8KKwlzZHJjX2lja19wID0gY2xrX2dldChOVUxMLCAic2RyY19pY2siKTsK Kwlhcm1fZmNrX3AgPSBjbGtfZ2V0KE5VTEwsICJhcm1fZmNrIik7CisKKwlyZXR1cm4gMDsKK30K ZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3BsYXQtb21hcC9pbmNsdWRlL3BsYXQvY2xrZGV2X29tYXAu aCBiL2FyY2gvYXJtL3BsYXQtb21hcC9pbmNsdWRlL3BsYXQvY2xrZGV2X29tYXAuaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNjEyMWMwCi0tLSAvZGV2L251bGwKKysrIGIv YXJjaC9hcm0vcGxhdC1vbWFwL2luY2x1ZGUvcGxhdC9jbGtkZXZfb21hcC5oCkBAIC0wLDAgKzEs MzUgQEAKKy8qCisgKiBjbGtkZXYgPC0+IE9NQVAgaW50ZWdyYXRpb24KKyAqCisgKi8KKworI2lm bmRlZiBfX0FSQ0hfQVJNX1BMQVRfT01BUF9JTkNMVURFX1BMQVRfQ0xLREVWX09NQVBfSAorI2Rl ZmluZSBfX0FSQ0hfQVJNX1BMQVRfT01BUF9JTkNMVURFX1BMQVRfQ0xLREVWX09NQVBfSAorCisj aW5jbHVkZSA8YXNtL2Nsa2Rldi5oPgorCitzdHJ1Y3Qgb21hcF9jbGsgeworCXUzMgkJY3B1Owor CXN0cnVjdCBjbGtfbG9va3VwIGxrOworfTsKKworI2RlZmluZSBDTEsoZGV2LCBjb24sIGNrLCBj cCkgCQlcCisJewkJCQlcCisJCSAuY3B1ID0gY3AsCQlcCisJCS5sayA9IHsJCQlcCisJCQkuZGV2 X2lkID0gZGV2LAlcCisJCQkuY29uX2lkID0gY29uLAlcCisJCQkuY2xrID0gY2ssCVwKKwkJfSwJ CQlcCisJfQorCisKKyNkZWZpbmUgQ0tfMjQzWAkJKDEgPDwgMCkKKyNkZWZpbmUgQ0tfMjQyWAkJ KDEgPDwgMSkKKyNkZWZpbmUgQ0tfMzQzWAkJKDEgPDwgMikKKyNkZWZpbmUgQ0tfMzQzMEVTMQko MSA8PCAzKQorI2RlZmluZSBDS18zNDMwRVMyCSgxIDw8IDQpCisKKworI2VuZGlmCisKCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtl cm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0 dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5l bAo=