From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id B306589803 for ; Fri, 9 Aug 2019 10:19:28 +0000 (UTC) From: =?UTF-8?q?Zbigniew=20Kempczy=C5=84ski?= Date: Fri, 9 Aug 2019 12:19:22 +0200 Message-Id: <20190809101922.12981-3-zbigniew.kempczynski@intel.com> In-Reply-To: <20190809101922.12981-1-zbigniew.kempczynski@intel.com> References: <20190809101922.12981-1-zbigniew.kempczynski@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v3 2/2] Add multi-device selection for IGT 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 List-ID: TmV3IElHVCBjb21tYW5kIGxpbmUgYXJndW1lbnQgLS1kZXZpY2UgYXMgd2VsbCBhcyBJR1RfREVW SUNFIGVudmlyb21lbnQKd2VyZSBhZGRlZCB0byBhbGxvdyBzZWxlY3RpbmcgZGV2aWNlIHVzaW5n IG11bHRpLWRldmljZSBzZWxlY3Rpb24gQVBJLgotLS0KIGxpYi9kcm10ZXN0LmMgIHwgMTg4ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIGxpYi9kcm10 ZXN0LmggIHwgICA5ICsrKwogbGliL2lndF9jb3JlLmMgfCAgMTMgKysrKwogMyBmaWxlcyBjaGFu Z2VkLCAyMDggaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWIv ZHJtdGVzdC5jIGIvbGliL2RybXRlc3QuYwppbmRleCBjMzc5YTdiNy4uYzAxYTg4YTkgMTAwNjQ0 Ci0tLSBhL2xpYi9kcm10ZXN0LmMKKysrIGIvbGliL2RybXRlc3QuYwpAQCAtNTUsNiArNTUsNyBA QAogI2luY2x1ZGUgImlndF9ndC5oIgogI2luY2x1ZGUgImlndF9rbW9kLmgiCiAjaW5jbHVkZSAi aWd0X3N5c2ZzLmgiCisjaW5jbHVkZSAiaWd0X2RldmljZV9zY2FuLmgiCiAjaW5jbHVkZSAidmVy c2lvbi5oIgogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImludGVsX3JlZy5oIgpAQCAt Mjg5LDI1ICsyOTAsMjA4IEBAIHN0YXRpYyBpbnQgX19vcGVuX2RyaXZlcihjb25zdCBjaGFyICpi YXNlLCBpbnQgb2Zmc2V0LCB1bnNpZ25lZCBpbnQgY2hpcHNldCkKIAlyZXR1cm4gX19zZWFyY2hf YW5kX29wZW4oYmFzZSwgb2Zmc2V0LCBjaGlwc2V0KTsKIH0KIAorc3RhdGljIGludCBfX29wZW5f ZHJpdmVyX2V4YWN0KGNvbnN0IGNoYXIgKm5hbWUsIHVuc2lnbmVkIGludCBjaGlwc2V0KQorewor CXN0YXRpYyBwdGhyZWFkX211dGV4X3QgbXV0ZXggPSBQVEhSRUFEX01VVEVYX0lOSVRJQUxJWkVS OworCWludCBmZDsKKworCWZkID0gb3Blbl9kZXZpY2UobmFtZSwgY2hpcHNldCk7CisJaWYgKGZk ICE9IC0xKQorCQlyZXR1cm4gZmQ7CisKKwlwdGhyZWFkX211dGV4X2xvY2soJm11dGV4KTsKKwlm b3IgKGNvbnN0IHN0cnVjdCBtb2R1bGUgKm0gPSBtb2R1bGVzOyBtLT5tb2R1bGU7IG0rKykgewor CQlpZiAoY2hpcHNldCAmIG0tPmJpdCkgeworCQkJaWYgKG0tPm1vZHByb2JlKQorCQkJCW0tPm1v ZHByb2JlKG0tPm1vZHVsZSk7CisJCQllbHNlCisJCQkJbW9kcHJvYmUobS0+bW9kdWxlKTsKKwkJ fQorCX0KKwlwdGhyZWFkX211dGV4X3VubG9jaygmbXV0ZXgpOworCisJcmV0dXJuIG9wZW5fZGV2 aWNlKG5hbWUsIGNoaXBzZXQpOworfQorCisvKgorICogRm9yIGNvbXBhdGliaWxpdHkgbW9kZSB3 aGVuIG11bHRpcGxlIC0tZGV2aWNlIGFyZ3VtZW50IHdlcmUgcGFzc2VkCisgKiB0aGlzIGZ1bmN0 aW9uIHRyaWVzIHRvIGJlIHNtYXJ0IGVub3VnaCB0byBoYW5kbGUgdGVzdHMgd2hpY2ggb3BlbnMK KyAqIG1vcmUgdGhhbiBzaW5nbGUgZGV2aWNlLiBJdCBpdGVyYXRlcyBvdmVyIGZpbHRlciBsaXN0 IGFuZAorICogY29tcGFyZXMgcmVxdWVzdGVkIGNoaXBzZXQgdG8gY2FyZCBjaGlwc2V0IChvciBh bnkpLgorICoKKyAqIFJldHVybnM6CisgKiBUcnVlIGlmIGNhcmQgYWNjb3JkaW5nIHRvIGZpbHRl cnMgYWRkZWQgYW5kIGNoaXBzZXQgd2FzIGZvdW5kLAorICogZmFsc2Ugb3Rod2Vyd2lzZS4KKyAq Lworc3RhdGljIGJvb2wgX19maW5kX2NhcmRfd2l0aF9jaGlwc2V0KGludCBjaGlwc2V0LCBzdHJ1 Y3QgaWd0X2RldmljZV9jYXJkICpjYXJkKQoreworCWludCBpLCBuID0gaWd0X2RldmljZV9maWx0 ZXJfY291bnQoKTsKKwljb25zdCBjaGFyICpmaWx0ZXI7CisJYm9vbCBtYXRjaDsKKworCWZvciAo aSA9IDA7IGkgPCBuOyBpKyspIHsKKwkJZmlsdGVyID0gaWd0X2RldmljZV9maWx0ZXJfZ2V0KGkp OworCQltYXRjaCA9IGlndF9kZXZpY2VfY2FyZF9tYXRjaChmaWx0ZXIsIGNhcmQpOworCQlpZiAo bWF0Y2ggJiYgKGNhcmQtPmNoaXBzZXQgPT0gY2hpcHNldCB8fAorCQkJICAgICAgY2FyZC0+Y2hp cHNldCA9PSBEUklWRVJfQU5ZKSkgeworCQkJcmV0dXJuIHRydWU7CisJCX0KKwl9CisKKwlyZXR1 cm4gZmFsc2U7Cit9CisKIC8qKgogICogX19kcm1fb3Blbl9kcml2ZXI6CiAgKiBAY2hpcHNldDog T1InZCBmbGFncyBmb3IgZWFjaCBjaGlwc2V0IHRvIHNlYXJjaCwgZWcuICNEUklWRVJfSU5URUwK ICAqCi0gKiBPcGVuIHRoZSBmaXJzdCBEUk0gZGV2aWNlIHdlIGNhbiBmaW5kLCBzZWFyY2hpbmcg dXAgdG8gMTYgZGV2aWNlIG5vZGVzCisgKiBGdW5jdGlvbiBvcGVucyBkZXZpY2UgaW4gdGhlIGZv bGxvd2luZyBvcmRlcjoKKyAqIDEuIHdoZW4gLS1kZXZpY2UgYXJndW1lbnRzIGFyZSBwcmVzZW50 IGRldmljZSBzY2FubmluZyB3aWxsIGJlIGV4ZWN1dGVkLAorICogdGhlbiBmaWx0ZXIgYXJndW1l bnQgaXMgdXNlZCB0byBmaW5kIG1hdGNoaW5nIG9uZS4KKyAqIDIuIGNvbXBhdGliaWxpdHkgbW9k ZSAtIG9wZW4gdGhlIGZpcnN0IERSTSBkZXZpY2Ugd2UgY2FuIGZpbmQsCisgKiBzZWFyY2hpbmcg dXAgdG8gMTYgZGV2aWNlIG5vZGVzLgogICoKICAqIFJldHVybnM6CiAgKiBBbiBvcGVuIERSTSBm ZCBvciAtMSBvbiBlcnJvcgogICovCiBpbnQgX19kcm1fb3Blbl9kcml2ZXIoaW50IGNoaXBzZXQp CiB7CisJaW50IG4gPSBpZ3RfZGV2aWNlX2ZpbHRlcl9jb3VudCgpOworCisJaWYgKG4pIHsKKwkJ Ym9vbCBmb3VuZDsKKwkJc3RydWN0IGlndF9kZXZpY2VfY2FyZCBjYXJkOworCisJCWZvdW5kID0g X19maW5kX2NhcmRfd2l0aF9jaGlwc2V0KGNoaXBzZXQsICZjYXJkKTsKKwkJaWYgKCFmb3VuZCB8 fCAhc3RybGVuKGNhcmQuY2FyZCkpCisJCQlyZXR1cm4gLTE7CisKKwkJcmV0dXJuIF9fb3Blbl9k cml2ZXJfZXhhY3QoY2FyZC5jYXJkLCBjaGlwc2V0KTsKKwl9CisKIAlyZXR1cm4gX19vcGVuX2Ry aXZlcigiL2Rldi9kcmkvY2FyZCIsIDAsIGNoaXBzZXQpOwogfQogCi1zdGF0aWMgaW50IF9fZHJt X29wZW5fZHJpdmVyX3JlbmRlcihpbnQgY2hpcHNldCkKK2ludCBfX2RybV9vcGVuX2RyaXZlcl9y ZW5kZXIoaW50IGNoaXBzZXQpCiB7CisJaW50IG4gPSBpZ3RfZGV2aWNlX2ZpbHRlcl9jb3VudCgp OworCisJaWYgKG4pIHsKKwkJYm9vbCBmb3VuZDsKKwkJc3RydWN0IGlndF9kZXZpY2VfY2FyZCBj YXJkOworCisJCWZvdW5kID0gX19maW5kX2NhcmRfd2l0aF9jaGlwc2V0KGNoaXBzZXQsICZjYXJk KTsKKwkJaWYgKCFmb3VuZCB8fCAhc3RybGVuKGNhcmQucmVuZGVyKSkKKwkJCXJldHVybiAtMTsK KworCQlyZXR1cm4gX19vcGVuX2RyaXZlcl9leGFjdChjYXJkLnJlbmRlciwgY2hpcHNldCk7CisJ fQorCiAJcmV0dXJuIF9fb3Blbl9kcml2ZXIoIi9kZXYvZHJpL3JlbmRlckQiLCAxMjgsIGNoaXBz ZXQpOwogfQogCitzdGF0aWMgaW50IF9fZHJtX29wZW5fd2l0aF9udGhfZmlsdGVyKGludCBudW0s IGludCBjaGlwc2V0LCBib29sIG9wZW5fcmVuZGVyKQoreworCXN0cnVjdCBpZ3RfZGV2aWNlX2Nh cmQgY2FyZDsKKwljb25zdCBjaGFyICpmaWx0ZXIsICpkZXZuYW1lOworCWJvb2wgbWF0Y2g7CisJ aW50IG4gPSBpZ3RfZGV2aWNlX2ZpbHRlcl9jb3VudCgpOworCisJaWYgKCFuIHx8IG51bSA8IDAg fHwgbnVtID49IG4pIHsKKwkJaWd0X3dhcm4oIk5vIGRldmljZSBmaWx0ZXIgbnVtID09ICVkIHBh c3NlZFxuIiwgbnVtKTsKKwkJcmV0dXJuIC0xOworCX0KKworCWZpbHRlciA9IGlndF9kZXZpY2Vf ZmlsdGVyX2dldChudW0pOworCW1hdGNoID0gaWd0X2RldmljZV9jYXJkX21hdGNoKGZpbHRlciwg JmNhcmQpOworCWlmICghbWF0Y2gpIHsKKwkJaWd0X3dhcm4oIk5vIGRldmljZSBtYXRjaCBmaWx0 ZXI6ICVzXG4iLCBmaWx0ZXIpOworCQlyZXR1cm4gLTE7CisJfQorCisJaWYgKCFzdHJsZW4oY2Fy ZC5jYXJkKSAmJiAhc3RybGVuKGNhcmQucmVuZGVyKSkKKwkJcmV0dXJuIC0xOworCisJZGV2bmFt ZSA9IG9wZW5fcmVuZGVyID8gY2FyZC5yZW5kZXIgOiBjYXJkLmNhcmQ7CisJaWYgKCFzdHJsZW4o ZGV2bmFtZSkpIHsKKwkJaWd0X3dhcm4oIk5vICVzIG5vZGUgbWF0Y2hpbmcgZmlsdGVyOiAlc1xu IiwKKwkJCSBvcGVuX3JlbmRlciA/ICJyZW5kZXIiIDogImNhcmQiLCBmaWx0ZXIpOworCQlyZXR1 cm4gLTE7CisJfQorCXJldHVybiBfX29wZW5fZHJpdmVyX2V4YWN0KGRldm5hbWUsIGNoaXBzZXQp OworfQorCisvKioKKyAqIGRybV9vcGVuX2NhcmRfd2l0aF9udGhfZmlsdGVyOgorICogQG51bTog bnVtYmVyIG9mIC0tZGV2aWNlIGFyZ3VtZW50CisgKiBAY2hpcHNldDogT1InZCBmbGFncyBmb3Ig ZWFjaCBjaGlwc2V0IHRvIHNlYXJjaCwgZWcuICNEUklWRVJfSU5URUwKKyAqCisgKiBPcGVuIC9k ZXYvZHJpL2NhcmRYIGRldmljZSB1c2luZyBtdWx0aS1kZXZpY2Ugc2VsZWN0aW9uIEFQSS4KKyAq IFdoZW4gdGVzdCByZXF1aXJlIHRvIG9wZW4gbW9yZSB0aGFuIG9uZSBkZXZpY2Ugc2VsZWN0aW9u IHVzZXMgZmlsdGVyCisgKiBwYXNzZWQgYXMgLS1kZXZpY2UgYXJndW1lbnQuIEFyZ3VtZW50cyBA bnVtIGluZGljYXRlIGZpbHRlciBudW1iZXIKKyAqIGFuZCBAY2hpcHNldCBleHBlY3RlZCBkZXZp Y2UgY2FyZCBjaGlwc2V0LgorICoKKyAqIEFuIG9wZW4gRFJNIGZkIG9yIC0xIG9uIGVycm9yCisg Ki8KK2ludCBkcm1fb3Blbl9jYXJkX3dpdGhfbnRoX2ZpbHRlcihpbnQgbnVtLCBpbnQgY2hpcHNl dCkKK3sKKwlyZXR1cm4gX19kcm1fb3Blbl93aXRoX250aF9maWx0ZXIobnVtLCBjaGlwc2V0LCBm YWxzZSk7Cit9CisKKy8qKgorICogZHJtX29wZW5fcmVuZGVyX3dpdGhfbnRoX2ZpbHRlcjoKKyAq IEBudW06IG51bWJlciBvZiAtLWRldmljZSBhcmd1bWVudAorICogQGNoaXBzZXQ6IE9SJ2QgZmxh Z3MgZm9yIGVhY2ggY2hpcHNldCB0byBzZWFyY2gsIGVnLiAjRFJJVkVSX0lOVEVMCisgKgorICog T3BlbiAvZGV2L2RyaS9yZW5kZXJEWCBkZXZpY2UgdXNpbmcgbXVsdGktZGV2aWNlIHNlbGVjdGlv biBBUEkuCisgKgorICogV2hlbiB0ZXN0IHJlcXVpcmUgdG8gb3BlbiBtb3JlIHRoYW4gb25lIGRl dmljZSBzZWxlY3Rpb24gdXNlcyBmaWx0ZXIKKyAqIHBhc3NlZCBhcyAtLWRldmljZSBhcmd1bWVu dC4gQXJndW1lbnRzIEBudW0gaW5kaWNhdGUgZmlsdGVyIG51bWJlcgorICogYW5kIEBjaGlwc2V0 IGV4cGVjdGVkIGRldmljZSBjYXJkIGNoaXBzZXQuCisgKgorICogQW4gb3BlbiBEUk0gZmQgb3Ig LTEgb24gZXJyb3IKKyAqLworaW50IGRybV9vcGVuX3JlbmRlcl93aXRoX250aF9maWx0ZXIoaW50 IG51bSwgaW50IGNoaXBzZXQpCit7CisJcmV0dXJuIF9fZHJtX29wZW5fd2l0aF9udGhfZmlsdGVy KG51bSwgY2hpcHNldCwgdHJ1ZSk7Cit9CisKKy8qKgorICogZHJtX29wZW5fY2FyZDoKKyAqIEBj YXJkOiBwb2ludGVyIHRvIGlndF9kZXZpY2VfY2FyZCBzdHJ1Y3R1cmUKKyAqCisgKiBPcGVuIC9k ZXYvZHJpL2NhcmRYIGRldmljZSB1c2luZyBtdWx0aS1kZXZpY2Ugc2VsZWN0aW9uIEFQSS4KKyAq CisgKiBSZXF1aXJlIGZpbGxlZCBAY2FyZCBhcmd1bWVudCAoc2VlIGlndF9kZXZpY2VfY2FyZF9t YXRjaCgpIGZ1bmN0aW9uKS4KKyAqCisgKiBBbiBvcGVuIERSTSBmZCBvciAtMSBvbiBlcnJvcgor ICovCitpbnQgZHJtX29wZW5fY2FyZChzdHJ1Y3QgaWd0X2RldmljZV9jYXJkICpjYXJkKQorewor CWlmICghY2FyZCB8fCAhc3RybGVuKGNhcmQtPmNhcmQpKQorCQlyZXR1cm4gLTE7CisKKwlyZXR1 cm4gX19vcGVuX2RyaXZlcl9leGFjdChjYXJkLT5jYXJkLCBjYXJkLT5jaGlwc2V0KTsKK30KKwor LyoqCisgKiBkcm1fb3Blbl9yZW5kZXI6CisgKiBAY2FyZDogcG9pbnRlciB0byBpZ3RfZGV2aWNl X2NhcmQgc3RydWN0dXJlCisgKgorICogT3BlbiAvZGV2L2RyaS9yZW5kZXJEWCBkZXZpY2UgdXNp bmcgbXVsdGktZGV2aWNlIHNlbGVjdGlvbiBBUEkuCisgKiBSZXF1aXJlIGZpbGxlZCBAY2FyZCBh cmd1bWVudCAoc2VlIGlndF9kZXZpY2VfY2FyZF9tYXRjaCgpIGZ1bmN0aW9uKS4KKyAqCisgKiBB biBvcGVuIERSTSBmZCBvciAtMSBvbiBlcnJvcgorICovCitpbnQgZHJtX29wZW5fcmVuZGVyKHN0 cnVjdCBpZ3RfZGV2aWNlX2NhcmQgKmNhcmQpCit7CisJaWYgKCFjYXJkIHx8ICFzdHJsZW4oY2Fy ZC0+cmVuZGVyKSkKKwkJcmV0dXJuIC0xOworCisJcmV0dXJuIF9fb3Blbl9kcml2ZXJfZXhhY3Qo Y2FyZC0+cmVuZGVyLCBjYXJkLT5jaGlwc2V0KTsKK30KKworCiBzdGF0aWMgaW50IGF0X2V4aXRf ZHJtX2ZkID0gLTE7CiBzdGF0aWMgaW50IGF0X2V4aXRfZHJtX3JlbmRlcl9mZCA9IC0xOwogCmRp ZmYgLS1naXQgYS9saWIvZHJtdGVzdC5oIGIvbGliL2RybXRlc3QuaAppbmRleCA2MTRmNTdlNi4u ZmMyYTBiNTcgMTAwNjQ0Ci0tLSBhL2xpYi9kcm10ZXN0LmgKKysrIGIvbGliL2RybXRlc3QuaApA QCAtNTAsNiArNTAsNyBAQAogI2RlZmluZSBEUklWRVJfQU1ER1BVCSgxIDw8IDMpCiAjZGVmaW5l IERSSVZFUl9WM0QJKDEgPDwgNCkKICNkZWZpbmUgRFJJVkVSX1BBTkZST1NUCSgxIDw8IDUpCisK IC8qCiAgKiBFeGNsdWRlIERSVkVSX1ZHRU0gZnJvbSBEUklWRVJfQU5ZIHNpbmNlIGlmIHlvdSBy dW4gb24gYSBzeXN0ZW0KICAqIHdpdGggdmdlbSBhcyB3ZWxsIGFzIGEgc3VwcG9ydGVkIGRyaXZl ciwgeW91IGNhbiBlbmQgdXAgd2l0aCBhCkBAIC04MSw2ICs4MiwxNCBAQCBpbnQgZHJtX29wZW5f ZHJpdmVyKGludCBjaGlwc2V0KTsKIGludCBkcm1fb3Blbl9kcml2ZXJfbWFzdGVyKGludCBjaGlw c2V0KTsKIGludCBkcm1fb3Blbl9kcml2ZXJfcmVuZGVyKGludCBjaGlwc2V0KTsKIGludCBfX2Ry bV9vcGVuX2RyaXZlcihpbnQgY2hpcHNldCk7CitpbnQgX19kcm1fb3Blbl9kcml2ZXJfcmVuZGVy KGludCBjaGlwc2V0KTsKKworLyogTXVsdGkgZGV2aWNlIEFQSSAqLworaW50IGRybV9vcGVuX2Nh cmRfd2l0aF9udGhfZmlsdGVyKGludCBudW0sIGludCBjaGlwc2V0KTsKK2ludCBkcm1fb3Blbl9y ZW5kZXJfd2l0aF9udGhfZmlsdGVyKGludCBudW0sIGludCBjaGlwc2V0KTsKK3N0cnVjdCBpZ3Rf ZGV2aWNlX2NhcmQ7CitpbnQgZHJtX29wZW5fY2FyZChzdHJ1Y3QgaWd0X2RldmljZV9jYXJkICpj YXJkKTsKK2ludCBkcm1fb3Blbl9yZW5kZXIoc3RydWN0IGlndF9kZXZpY2VfY2FyZCAqY2FyZCk7 CiAKIHZvaWQgZ2VtX3F1aWVzY2VudF9ncHUoaW50IGZkKTsKIApkaWZmIC0tZ2l0IGEvbGliL2ln dF9jb3JlLmMgYi9saWIvaWd0X2NvcmUuYwppbmRleCAxY2JiMDlmOS4uOWI4NTExNzUgMTAwNjQ0 Ci0tLSBhL2xpYi9pZ3RfY29yZS5jCisrKyBiL2xpYi9pZ3RfY29yZS5jCkBAIC03MSw2ICs3MSw3 IEBACiAjaW5jbHVkZSAiaWd0X3N5c3JxLmgiCiAjaW5jbHVkZSAiaWd0X3JjLmgiCiAjaW5jbHVk ZSAiaWd0X2xpc3QuaCIKKyNpbmNsdWRlICJpZ3RfZGV2aWNlX3NjYW4uaCIKIAogI2RlZmluZSBV TldfTE9DQUxfT05MWQogI2luY2x1ZGUgPGxpYnVud2luZC5oPgpAQCAtMzA0LDYgKzMwNSw3IEBA IGVudW0gewogCU9QVF9ERUJVRywKIAlPUFRfSU5URVJBQ1RJVkVfREVCVUcsCiAJT1BUX1NLSVBf Q1JDLAorCU9QVF9ERVZJQ0UsCiAJT1BUX0hFTFAgPSAnaCcKIH07CiAKQEAgLTYyNCw2ICs2MjYs NyBAQCBzdGF0aWMgdm9pZCBwcmludF91c2FnZShjb25zdCBjaGFyICpoZWxwX3N0ciwgYm9vbCBv dXRwdXRfb25fc3RkZXJyKQogCQkgICAiICAtLXNraXAtY3JjLWNvbXBhcmVcbiIKIAkJICAgIiAg LS1oZWxwLWRlc2NyaXB0aW9uXG4iCiAJCSAgICIgIC0tZGVzY3JpYmVcbiIKKwkJICAgIiAgLS1k ZXZpY2UgZmlsdGVyXG4iCiAJCSAgICIgIC0taGVscHwtaFxuIik7CiAJaWYgKGhlbHBfc3RyKQog CQlmcHJpbnRmKGYsICIlc1xuIiwgaGVscF9zdHIpOwpAQCAtNzI1LDYgKzcyOCwxMSBAQCBzdGF0 aWMgdm9pZCBjb21tb25faW5pdF9lbnYodm9pZCkKIAlpZiAoZW52KSB7CiAJCV9fc2V0X2ZvcmNl ZF9kcml2ZXIoZW52KTsKIAl9CisKKwllbnYgPSBnZXRlbnYoIklHVF9ERVZJQ0UiKTsKKwlpZiAo ZW52KSB7CisJCWlndF9kZXZpY2VfZmlsdGVyX2FkZChlbnYpOworCX0KIH0KIAogc3RhdGljIGlu dCBjb21tb25faW5pdChpbnQgKmFyZ2MsIGNoYXIgKiphcmd2LApAQCAtNzQzLDYgKzc1MSw3IEBA IHN0YXRpYyBpbnQgY29tbW9uX2luaXQoaW50ICphcmdjLCBjaGFyICoqYXJndiwKIAkJeyJkZWJ1 ZyIsICAgICAgICAgICAgIG9wdGlvbmFsX2FyZ3VtZW50LCBOVUxMLCBPUFRfREVCVUd9LAogCQl7 ImludGVyYWN0aXZlLWRlYnVnIiwgb3B0aW9uYWxfYXJndW1lbnQsIE5VTEwsIE9QVF9JTlRFUkFD VElWRV9ERUJVR30sCiAJCXsic2tpcC1jcmMtY29tcGFyZSIsICBub19hcmd1bWVudCwgICAgICAg TlVMTCwgT1BUX1NLSVBfQ1JDfSwKKwkJeyJkZXZpY2UiLCAgICAgICAgICAgIHJlcXVpcmVkX2Fy Z3VtZW50LCBOVUxMLCBPUFRfREVWSUNFfSwKIAkJeyJoZWxwIiwgICAgICAgICAgICAgIG5vX2Fy Z3VtZW50LCAgICAgICBOVUxMLCBPUFRfSEVMUH0sCiAJCXswLCAwLCAwLCAwfQogCX07CkBAIC04 NjUsNiArODc0LDEwIEBAIHN0YXRpYyBpbnQgY29tbW9uX2luaXQoaW50ICphcmdjLCBjaGFyICoq YXJndiwKIAkJY2FzZSBPUFRfU0tJUF9DUkM6CiAJCQlpZ3Rfc2tpcF9jcmNfY29tcGFyZSA9IHRy dWU7CiAJCQlnb3RvIG91dDsKKwkJY2FzZSBPUFRfREVWSUNFOgorCQkJYXNzZXJ0KG9wdGFyZyk7 CisJCQlpZ3RfZGV2aWNlX2ZpbHRlcl9hZGQob3B0YXJnKTsKKwkJCWJyZWFrOwogCQljYXNlIE9Q VF9IRUxQOgogCQkJcHJpbnRfdXNhZ2UoaGVscF9zdHIsIGZhbHNlKTsKIAkJCXJldCA9IC0xOwot LSAKMi4yMS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=