From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 64A226E0A2 for ; Fri, 14 Sep 2018 23:57:36 +0000 (UTC) From: Tarun Vyas Date: Fri, 14 Sep 2018 16:57:02 -0700 Message-Id: <20180914235702.27428-1-tarun.vyas@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v3] tools: Add a simple tool to read/write/decode dpcd registers List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org Cc: dhinakaran.pandiyan@intel.com, rodrigo.vivi@intel.com List-ID: VGhpcyB0b29sIHNlcnZlcyBhcyBhIHdyYXBwZXIgYXJvdW5kIHRoZSBjb25zdHJ1Y3RzIHByb3Zp ZGVkIGJ5IHRoZQpkcm1fZHBjZF9hdXhfZGV2IGtlcm5lbCBtb2R1bGUgYnkgd29ya2luZyBvbiB0 aGUgL2Rldi9kcm1fZHBfYXV4W25dCmRldmljZXMgY3JlYXRlZCBieSB0aGUga2VybmVsIG1vZHVs ZS4KSXQgc3VwcG9ydHMgcmVhZGluZyBhbmQgd3JpdGluZyBkcGNkIHJlZ2lzdGVycyBvbiB0aGUg Y29ubmVjdGVkIGF1eApjaGFubmVscy4KSW4gdGhlIGZvbGxvdy11cCBwYXRjaCwgc3VwcG9ydCBm b3IgZGVjb2RpbmcgdGhlc2UgcmVnaXN0ZXJzIHdpbGwgYmUKYWRkZWQgdG8gZmFjaWxhdGUgZGVi dWdnaW5nIHBhbmVsIHJlbGF0ZWQgaXNzdWVzLgoKdjI6IChGaXhlcyBieSBSb2RyaWdvIGJ1dCBu byBmdW5jdGlvbmFsIGNoYW5nZXMgeWV0KToKICAgIC0gSW5kZW50YXRpb25zLCBUeXBvLCBNaXNz ZWQgc3BhY2VzCiAgICAtIFJlbW92aW5nIG1lbnRpb25pbmcgdG8gZGVjb2RlIGFuZCBzcGVjIHRo YXQgaXMgbm90IGltcGxlbWVudGVkIHlldC4KICAgIC0gQWRkIE1ha2VmaWxlLnNvdXJjZXMgYmFj awogICAgLSBNaXNzZWQgcy9wcmludGYvaWd0X3dhcm4KCnYzOgogICAgLSBBZGRyZXMgREsncyBy ZXZpZXcgY29tbWVudHMgZnJvbSB2MiBhYm92ZS4KICAgIC0gU3F1YXNoIFJvZHJpZ28ncyBmaWxl IGhhbmRsaW5nIHVuaWZpY2F0aW9uIHBhdGNoLgogICAgLSBNYWtlIGNvdW50LCBvZmZzZXQgYW5k IGRldmljZSBpZCBvcHRpb25hbC4KClN1Z2dlc3RlZC1ieTogRGhpbmFrYXJhbiBQYW5kaXlhbiA8 ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IFRhcnVuIFZ5YXMg PHRhcnVuLnZ5YXNAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBSb2RyaWdvIFZpdmkgPHJvZHJp Z28udml2aUBpbnRlbC5jb20+Ci0tLQogdG9vbHMvTWFrZWZpbGUuc291cmNlcyB8ICAgMSArCiB0 b29scy9kcGNkX3JlZy5jICAgICAgIHwgMjEzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKIHRvb2xzL21lc29uLmJ1aWxkICAgICAgfCAgIDEgKwogMyBm aWxlcyBjaGFuZ2VkLCAyMTUgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRvb2xz L2RwY2RfcmVnLmMKCmRpZmYgLS1naXQgYS90b29scy9NYWtlZmlsZS5zb3VyY2VzIGIvdG9vbHMv TWFrZWZpbGUuc291cmNlcwppbmRleCBhYmQyM2EwZi4uNTA3MDZmNDEgMTAwNjQ0Ci0tLSBhL3Rv b2xzL01ha2VmaWxlLnNvdXJjZXMKKysrIGIvdG9vbHMvTWFrZWZpbGUuc291cmNlcwpAQCAtNyw2 ICs3LDcgQEAgbm9pbnN0X1BST0dSQU1TID0JCVwKIAogdG9vbHNfcHJvZ19saXN0cyA9CQlcCiAJ aWd0X3N0YXRzCQlcCisJZHBjZF9yZWcJCVwKIAlpbnRlbF9hdWRpb19kdW1wCVwKIAlpbnRlbF9y ZWcJCVwKIAlpbnRlbF9iYWNrbGlnaHQJCVwKZGlmZiAtLWdpdCBhL3Rvb2xzL2RwY2RfcmVnLmMg Yi90b29scy9kcGNkX3JlZy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi5j ZDlmZWQ0ZgotLS0gL2Rldi9udWxsCisrKyBiL3Rvb2xzL2RwY2RfcmVnLmMKQEAgLTAsMCArMSwy MTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxOCBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAq IFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVy c29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQg ZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUg U29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlv bgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRp c3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3 YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1 cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cisg KgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3Rp Y2UgKGluY2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBp biBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUu CisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFO VFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9U IExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVW RU5UIFNIQUxMCisgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUg Rk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElO IEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwK KyAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0Ug T1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCisgKiBTT0ZUV0FSRS4KKyAqCisgKiBEUENEIHJlZ2lz dGVyIHJlYWQvd3JpdGUgdG9vbAorICogVGhpcyB0b29sIHdyYXBzIGFyb3VuZCBEUk1fRFBfQVVY X0RFViBtb2R1bGUgdG8gcHJvdmlkZSBEUENEIHJlZ2lzdGVyIHJlYWQKKyAqIGFuZCB3cml0ZSwg c28gQ09ORklHX0RSTV9EUF9BVVhfREVWIG5lZWRzIHRvIGJlIHNldC4KKyAqLworCisjaW5jbHVk ZSAiaWd0X2NvcmUuaCIKKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGZjbnRsLmg+Cisj aW5jbHVkZSA8bGltaXRzLmg+CisKKyNkZWZpbmUgTUFYX09GRlNFVAkweGYwMmZmCisKK2NvbnN0 IGNoYXIgYXV4X2RldltdID0gIi9kZXYvZHJtX2RwX2F1eCI7CisKK3N0YXRpYyB2b2lkIHByaW50 X3VzYWdlKGNoYXIgKnRvb2wsIGludCBleGl0X2NvZGUpCit7CisJcHJpbnRmKCJEUENEIHJlZ2lz dGVyIHJlYWQgYW5kIHdyaXRlIHRvb2xcblxuIik7CisJcHJpbnRmKCJUaGlzIHRvb2wgcmVxdWly ZXMgQ09ORklHX0RSTV9EUF9BVVhfQ0hBUkRFVlxuIgorCQkgInRvIGJlIHNldCBpbiB0aGUga2Vy bmVsIGNvbmZpZy5cblxuIik7CisJcHJpbnRmKCJVc2FnZTogJXMgW09QVElPTiAuLi5dIENPTU1B TkRcblxuIiwgdG9vbCk7CisJcHJpbnRmKCJDT01NQU5EIGlzIG9uZSBvZjpcbiIpOworCXByaW50 ZigiICByZWFkOgkJUmVhZCBbY291bnRdIGJ5dGVzIGRwY2QgcmVnIGF0IGFuIG9mZnNldFxuIik7 CisJcHJpbnRmKCIgIHdyaXRlOglXcml0ZSBhIGRwY2QgcmVnIGF0IGFuIG9mZnNldFxuXG4iKTsK KwlwcmludGYoIk9wdGlvbnMgZm9yIHRoZSBhYm92ZSBDT01NQU5EUyBhcmVcbiIpOworCXByaW50 ZigiIC0tZGV2aWNlPURFVklECQlBdXggZGV2aWNlIGlkLCBhcyBsaXN0ZWQgaW4gL2Rldi9kcm1f ZHBfYXV4X2RldltuXS4iCisJCQkJCSJEZWZhdWx0cyB0byAwXG4iKTsKKwlwcmludGYoIiAtLW9m ZnNldD1SRUdfQUREUglEUENEIHJlZ2lzdGVyIG9mZnNldCBpbiBoZXguIERlZmF1bHRzIHRvIDB4 MDBcbiIpOworCXByaW50ZigiIC0tY291bnQ9QllURVMJCUZvciByZWFkcywgc3BlY2lmeSBudW1i ZXIgb2YgYnl0ZXMgdG8gYmUgcmVhZCBmcm9tIgorCQkJCQkidGhlIG9mZnNldC4gRGVmYXVsdHMg dG8gMVxuIik7CisJcHJpbnRmKCIgLS12YWwJCQlGb3Igd3JpdGVzLCBzcGVjaWZ5IGEgaGV4IHZh bHVlIHRvIGJlIHdyaXR0ZW5cblxuIik7CisKKwlwcmludGYoIiAtLWhlbHA6IHByaW50IHRoZSB1 c2FnZVxuIik7CisKKwlleGl0KGV4aXRfY29kZSk7Cit9CisKK3N0YXRpYyBpbnQgZHBjZF9yZWFk KGludCBmZCwgY29uc3QgdWludDMyX3Qgb2Zmc2V0LCBzaXplX3QgY291bnQpCit7CisJaW50IHJl dCwgaTsKKwl2b2lkICpidWYgPSBjYWxsb2MoY291bnQsIHNpemVvZih1aW50OF90KSk7CisKKwlp ZiAoIWJ1ZikgeworCQlmcHJpbnRmKHN0ZGVyciwgIkNhbid0IGFsbG9jYXRlIHJlYWQgYnVmZmVy XG4iKTsKKwkJcmV0dXJuIEVOT01FTTsKKwl9CisKKwlyZXQgPSBwcmVhZChmZCwgYnVmLCBjb3Vu dCwgb2Zmc2V0KTsKKwlpZiAocmV0ICE9IGNvdW50KSB7CisJCWZwcmludGYoc3RkZXJyLCAiRmFp bGVkIHRvIHJlYWQgLSAlc1xuIiwgc3RyZXJyb3IoZXJybm8pKTsKKwkJcmV0ID0gZXJybm87CisJ CWdvdG8gb3V0OworCX0gZWxzZQorCQlyZXQgPSBFWElUX1NVQ0NFU1M7CisKKwlwcmludGYoIlJl YWQgJXp1IGJ5dGUocykgc3RhcnRpbmcgYXQgb2Zmc2V0ICV4XG5cbiIsIGNvdW50LCBvZmZzZXQp OworCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKQorCQlwcmludGYoIiAlMDJ4IiwgKigoKHVp bnQ4X3QgKikoYnVmKSkgKyBpKSk7CisJcHJpbnRmKCJcbiIpOworCitvdXQ6CisJZnJlZShidWYp OworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgZHBjZF93cml0ZShpbnQgZmQsIGNvbnN0 IHVpbnQzMl90IG9mZnNldCwgY29uc3QgdWludDhfdCB2YWwpCit7CisJaW50IHJldDsKKworCXJl dCA9IHB3cml0ZShmZCwgKGNvbnN0IHZvaWQgKikmdmFsLCBzaXplb2YodWludDhfdCksIG9mZnNl dCk7CisJaWYgKHJldCA8IDApIHsKKwkJZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gd3JpdGUg LSAlc1xuIiwgc3RyZXJyb3IoZXJybm8pKTsKKwkJcmV0dXJuIGVycm5vOworCX0gZWxzZQorCQly ZXR1cm4gRVhJVF9TVUNDRVNTOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3Yp Cit7CisJY2hhciBkZXZfbmFtZVsyMF07CisJaW50IHJldCwgZGV2aWQsIGZkLCB2ZmxhZyA9IDA7 CisJdWludDMyX3Qgb2Zmc2V0OworCXVpbnQ4X3QgdmFsOworCXNpemVfdCBjb3VudDsKKwlpbnQg ZmlsZV9vcCA9IE9fUkRPTkxZOworCisJZW51bSBjb21tYW5kIHsKKwkJSU5WID0gLTEsCisJCVJF QUQgPSAyLAorCQlXUklURSwKKwl9IGNtZCA9IElOVjsKKworCXN0cnVjdCBvcHRpb24gbG9uZ29w dHNbXSA9IHsKKwkJeyAiY291bnQiLAlyZXF1aXJlZF9hcmd1bWVudCwJTlVMTCwJCSdjJyB9LAor CQl7ICJkZXZpY2UiLAlyZXF1aXJlZF9hcmd1bWVudCwJTlVMTCwJCSdkJyB9LAorCQl7ICJoZWxw IiwJbm9fYXJndW1lbnQsCQlOVUxMLAkJJ2gnIH0sCisJCXsgIm9mZnNldCIsCXJlcXVpcmVkX2Fy Z3VtZW50LAlOVUxMLAkJJ28nIH0sCisJCXsgInZhbHVlIiwJcmVxdWlyZWRfYXJndW1lbnQsCSZ2 ZmxhZywJCSd2JyB9LAorCQl7IDAgfQorCX07CisKKwlkZXZpZCA9IDAsIGNvdW50ID0gMSwgb2Zm c2V0ID0gMHgwOworCisJd2hpbGUgKChyZXQgPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiLTpj OmQ6aDpvOiIsIGxvbmdvcHRzLCBOVUxMKSkgIT0gLTEpIHsKKwkJc3dpdGNoIChyZXQpIHsKKwkJ Y2FzZSAnYyc6CisJCQljb3VudCA9IHN0cnRvdWwob3B0YXJnLCBOVUxMLCAxMCk7CisJCQlpZiAo Y291bnQgPT0gVUxPTkdfTUFYKSB7CisJCQkJZnByaW50ZihzdGRlcnIsICJDb3VudCBhcmd1bWVu dCB0b28gYmlnXG4iKTsKKwkJCQlleGl0KEVSQU5HRSk7CisJCQl9CisJCQlicmVhazsKKwkJY2Fz ZSAnZCc6CisJCQlkZXZpZCA9IHN0cnRvdWwob3B0YXJnLCBOVUxMLCAxMCk7CisJCQlpZiAoZGV2 aWQgPT0gVUxPTkdfTUFYKSB7CisJCQkJZnByaW50ZihzdGRlcnIsICJEZXZpZCBhcmd1bWVudCB0 b28gYmlnXG4iKTsKKwkJCQlleGl0KEVSQU5HRSk7CisJCQl9CisJCQlicmVhazsKKwkJY2FzZSAn aCc6CisJCQlwcmludF91c2FnZShhcmd2WzBdLCBFWElUX1NVQ0NFU1MpOworCQkJYnJlYWs7CisJ CWNhc2UgJ28nOgorCQkJb2Zmc2V0ID0gc3RydG91bChvcHRhcmcsIE5VTEwsIDE2KTsKKwkJCWlm IChvZmZzZXQgPiBNQVhfT0ZGU0VUKSB7CisJCQkJZnByaW50ZihzdGRlcnIsICJPZmZzZXQgc2hv dWxkIGJlIDw9IDB4ZjAyZmZcbiIpOworCQkJCWV4aXQoRVJBTkdFKTsKKwkJCX0KKwkJCWJyZWFr OworCQljYXNlIDA6CisJCQlpZiAodmZsYWcgPT0gJ3YnICYmIG9wdGFyZykKKwkJCQl2YWwgPSAo dWludDhfdCkgc3RydG91bChvcHRhcmcsIE5VTEwsIDE2KTsKKwkJCWJyZWFrOworCQkvKiBDb21t YW5kIHBhcnNpbmcgKi8KKwkJY2FzZSAxOgorCQkJaWYgKHN0cmNtcChvcHRhcmcsICJyZWFkIikg PT0gMCkgeworCQkJCWNtZCA9IFJFQUQ7CisJCQl9IGVsc2UgaWYgKHN0cmNtcChvcHRhcmcsICJ3 cml0ZSIpID09IDApIHsKKwkJCQljbWQgPSBXUklURTsKKwkJCQlmaWxlX29wID0gT19XUk9OTFk7 CisJCQl9CisJCQlicmVhazsKKwkJY2FzZSAnOic6CisJCQlmcHJpbnRmKHN0ZGVyciwgIlRoZSAt JWMgb3B0aW9uIG9mICVzIHJlcXVpcmVzIGFuIGFyZ3VtZW50XG4iLAorCQkJCSBvcHRvcHQsIGFy Z3ZbMF0pOworCQkJcHJpbnRfdXNhZ2UoYXJndlswXSwgRVhJVF9GQUlMVVJFKTsKKwkJY2FzZSAn Pyc6CisJCWRlZmF1bHQ6CisJCQlmcHJpbnRmKHN0ZGVyciwgIiVzIC0gb3B0aW9uICVjIGlzIGlu dmFsaWRcbiIsIGFyZ3ZbMF0sCisJCQkJIG9wdG9wdCk7CisJCQlwcmludF91c2FnZShhcmd2WzBd LCBFWElUX0ZBSUxVUkUpOworCQl9CisJfQorCisJaWYgKChjb3VudCArIG9mZnNldCkgPiAoTUFY X09GRlNFVCArIDEpKSB7CisJCWZwcmludGYoc3RkZXJyLCAiT3V0IG9mIGJvdW5kcy4gQ291bnQg KyBPZmZzZXQgPD0gMHhmMDMwMFxuIik7CisJCWV4aXQoRVJBTkdFKTsKKwl9CisKKwlpZiAoKGNt ZCA9PSBXUklURSkgJiYgKHZmbGFnICE9ICd2JykpIHsKKwkJZnByaW50ZihzdGRlcnIsICJXcml0 ZSB2YWx1ZSBpcyBtaXNzaW5nXG4iKTsKKwkJcHJpbnRfdXNhZ2UoYXJndlswXSwgRVhJVF9GQUlM VVJFKTsKKwl9CisKKwltZW1zZXQoZGV2X25hbWUsICdcMCcsIDIwKTsKKwlzbnByaW50ZihkZXZf bmFtZSwgc3RybGVuKGF1eF9kZXYpICsgMywgIiVzJWQiLCBhdXhfZGV2LCBkZXZpZCk7CisKKwlm ZCA9IG9wZW4oZGV2X25hbWUsIGZpbGVfb3ApOworCWlmIChmZCA8IDApIHsKKwkJZnByaW50Zihz dGRlcnIsICJGYWlsZWQgdG8gb3BlbiAlcyBhdXggZGV2aWNlIC0gZXJyb3I6ICVzXG4iLCBkZXZf bmFtZSwKKwkJCXN0cmVycm9yKGVycm5vKSk7CisJCXJldHVybiBlcnJubzsKKwl9CisKKwlzd2l0 Y2ggKGNtZCkgeworCWNhc2UgUkVBRDoKKwkJcmV0ID0gZHBjZF9yZWFkKGZkLCBvZmZzZXQsIGNv dW50KTsKKwkJYnJlYWs7CisJY2FzZSBXUklURToKKwkJcmV0ID0gZHBjZF93cml0ZShmZCwgb2Zm c2V0LCB2YWwpOworCQlicmVhazsKKwljYXNlIElOVjoKKwlkZWZhdWx0OgorCQlmcHJpbnRmKHN0 ZGVyciwgIlBsZWFzZSBzcGVjaWZ5IGEgY29tbWFuZDogcmVhZC93cml0ZS4gU2VlIHVzYWdlXG4i KTsKKwkJY2xvc2UoZmQpOworCQlwcmludF91c2FnZShhcmd2WzBdLCBFWElUX0ZBSUxVUkUpOwor CX0KKworCWNsb3NlKGZkKTsKKworCXJldHVybiByZXQ7Cit9CmRpZmYgLS1naXQgYS90b29scy9t ZXNvbi5idWlsZCBiL3Rvb2xzL21lc29uLmJ1aWxkCmluZGV4IGU0NTE3ZDY2Li43OWYzNmFhOSAx MDA2NDQKLS0tIGEvdG9vbHMvbWVzb24uYnVpbGQKKysrIGIvdG9vbHMvbWVzb24uYnVpbGQKQEAg LTM2LDYgKzM2LDcgQEAgdG9vbHNfcHJvZ3MgPSBbCiAJJ2ludGVsX3dhdGVybWFyaycsCiAJJ2lu dGVsX2dlbV9pbmZvJywKIAknaW50ZWxfZ3Z0Z190ZXN0JywKKwknZHBjZF9yZWcnLAogXQogdG9v bF9kZXBzID0gaWd0X2RlcHMKIAotLSAKMi4xNC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2lndC1kZXYK