From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5535E2147EA; Wed, 22 Jan 2025 14:41:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.15 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737556903; cv=none; b=jVd33w4Zpn4irYGyodU1NpHKt+NXu83XHyJIiBtsiDAZuB90tGSgrPHCK2US9q7x07kPyegLYTUckWQMNWxPCkx0BjbFRNzLcG217/WAoaVFt62rInvDAigPOJI3gTEaHgWBhhtH6nRHze+nt4Z7eax6xJfLam75sAe1LXGm7rI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737556903; c=relaxed/simple; bh=nXa3Xh3wsOvOtJ3WzC+/pCuVSny/ta0XQcDhb5H4To8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Yt6Uks313/G+8jOf86LVuZZJE1ALlF1um4gCC5vNO7bjGTlZSdTeJT7h+XjS6jB6ktOay8T0J9R1JqLpm1cb5Jo5wqCfjQOSMWmxGs3FVebi5GCsyTc7zW/RDm5KKVCPWql1WysR01WItJVFeBZT7OKvECTswoizQxCpXAzk22w= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.net; spf=pass smtp.mailfrom=gmx.net; dkim=pass (2048-bit key) header.d=gmx.net header.i=ps.report@gmx.net header.b=gCliRAqp; arc=none smtp.client-ip=212.227.15.15 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.net header.i=ps.report@gmx.net header.b="gCliRAqp" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1737556898; x=1738161698; i=ps.report@gmx.net; bh=nXa3Xh3wsOvOtJ3WzC+/pCuVSny/ta0XQcDhb5H4To8=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-ID:In-Reply-To: References:MIME-Version:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=gCliRAqps8CAL9m9xoAPQGuCAI0AHqelZ5whruPTA/nh1MV8KO4TAWL194XO304M 4R99dXFc5V+GcRMRTj1w4PK59WKHA52gDxlkUGVRzAPzvvmgY3c6MRtiVSis9XRhQ HaBuPAkcQaBIpQJOPx09m9tFN3lVNDokMBnnyTdjDNKXtZfNRlUxjC0CQ02aRjC43 wsJzWvYjdVgsqau/D04Zo6gG1P/Ni56eelyO3XpF8s6h3c2VwX32Ws29mhtqeID+A 0PzW36GfUzq4cueBWeguFESdV2kaZonjTWeyQ4OJCuv9q42AWFntBNQZg4GhqkJ6v zPPQ4GYnunjySmHMSg== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from localhost.fritz.box ([82.135.81.9]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1N95e9-1tP2qj1ech-00sIud; Wed, 22 Jan 2025 15:41:38 +0100 From: Peter Seiderer To: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan , Frederic Weisbecker , Artem Chernyshev , Nam Cao , Peter Seiderer Subject: [PATCH net-next v2 8/8] selftest: net: add proc_net_pktgen Date: Wed, 22 Jan 2025 15:41:10 +0100 Message-ID: <20250122144110.619989-9-ps.report@gmx.net> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250122144110.619989-1-ps.report@gmx.net> References: <20250122144110.619989-1-ps.report@gmx.net> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: base64 X-Provags-ID: V03:K1:+qOR47IwguYPrlHu1xU6oMbtulDznTuo2lQQmfNyBz0oe1jTyFk OfzKgCEiiV7ut894ZRF+HmDxoRbjA2ft1BJpTigkj6023TyIInuSgagl/FB1NVh9qrI6EXr vELAGTk43H6g6FtQiREk1pkhGtQ3rq+rxzt4NEVWs+bCrzTXnb/r6GJB7xg43Vu8b3O/VL6 JWl2l77UwEzCvDOsVb5bg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:TQvVwgD9X7M=;Eyymux7TwCHXRC+yA4De4irdsZI RPbKDIrmK7QzuZHWmL0VKqGvgAyzZ/jhfoE6jU/Wjt2yO4IHftqjzmxiuDXk8GvW255wnXs+G +jyC2rSNi58aVD69h0zLxlPPOsnQoVfSjt3UywZSVvPdR0Up3WxbaaZEwuSQLmBfhSU5uUa69 lkhWoR6OtiwyBDKciZG+C5UHtYGf4HYjlHtaolSqG4dAIrULHPRcjTNfuFLayx3aV7EM22Vfv 3RmouJmm8Wy0mTf+6NzxGKQgZWZIbXN7q3Jzu+2wZu9VWScdHMn0D0JBB+/ysJe6yQ+oUyb3d rMQuTQWfcTF7Z+eM1rkAV5kzInnHEIOlFuX0kbBUeM/IDK4dXdDaCSInf31ji90IEtzVeHMLw xgdYzaACBlCXuMzM8nY1aFNYUKS7cEm6N7xK6I4JrDoJ7rP1e21a2peTLcMvsRHcyBboMbODg u+hiRnMwUizj7rGoHvzRIL+zqB7l05PNvR9uyBFdlZhZAPVOkheva4cRGY6dJAleu46EjXDSM +nIK+K4tjV1ikT1svimycJiHjfFpbDdohiWxuxpc2gFKxphv+9++RNjS+iSwGGb3mbzeiv07Y pEy3nUgnBFSjwxxrKYhtX7qaC/0yTQSGKUxdk85e196aSAp5THJAfYGnNUlTPTMTwSo2Kl0Ck asENEcAj+GkF+dDDSckNa3YDFiGZTh3Q8vzXXwXawYDmW+1oj3Br+rf5CSrpy4YXn2M5x0VT/ iy5QcSRfSMBDjghJBK0OtJ7+SHF+02sdS4DYpVC9Iaz+5x8mbgCZ0impRNgk+YHFtlIYZIZbh ea38BlFo8Gja4x5w35eyw1/GX3BpI5dS4l5zHYSo8UYjF5xUKuPChJFtliYDBt8GS23obe3Rx 9j7Py0k7PNy0Z/TcOTJ0nJdi9mfwxdOy5c8mXTPrIgUL8o5Uz0Zrm3StZ25mB3i8NN56KxRE+ his46s6RZveUnoyMkzPIq0dRNZhyBfAIL4BVlEOGOh4bp8YQYV8MLmYZg7LAMdqe40jexZied 3iytwx6n5YxWvTyH9E1J0IAttMh1DmC45jWKq+9LSHox91EcxZzypSXK9QTn4mh6zfbNqg4iG z3ma37AArHXxw5jLpla/GjhsIKt4i0orQHDHAPrClaY9TfHXanAyklseM6cWo7s8wKD3+cDhq 66V2VT3H0muVnCV32g97OBu0LbuGubIVhHyvVx6XrBg== QWRkIHNvbWUgdGVzdCBmb3IgL3Byb2MvbmV0L3BrdGdlbi8uLi4gaW50ZXJmYWNlLgoKLSBlbmFi bGUgJ0NPTkZJR19ORVRfUEtUR0VOPW0nIGluIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9j b25maWcKClNpZ25lZC1vZmYtYnk6IFBldGVyIFNlaWRlcmVyIDxwcy5yZXBvcnRAZ214Lm5ldD4K LS0tCkNoYW5nZXMgdjEgLT4gdjE6CiAgLSBmaXggdHlvcCBub3QgdnMuIG5vZCAoc3VnZ2VzdGVk IGJ5IEpha3ViIEtpY2luc2tpKQogIC0gZml4IG1pc2FsaWduZWQgbGluZSAoc3VnZ2VzdGVkIGJ5 IEpha3ViIEtpY2luc2tpKQogIC0gZW5hYmxlIGZvbWVybHkgY29tbWVudGVkIG91dCBDT05GSUdf WEZSTSBkZXBlbmRlbnQgdGVzdCAoY29tbWFuZCBzcGkpLAogICAgYXMgQ09ORklHX1hGUk0gaXMg ZW5hYmxlZCB2aWEgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2NvbmZpZwogICAgQ09ORklH X1hGUk1fSU5URVJGQUNFL0NPTkZJR19YRlJNX1VTRVIgKHN1Z2dlc3RleCBieSBKYWt1YiBLaWNp bnNraSkKICAtIGFkZCBDT05GSUdfTkVUX1BLVEdFTj1tIHRvIHRvb2xzL3Rlc3Rpbmcvc2VsZnRl c3RzL25ldC9jb25maWcKICAgIChzdWdnZXN0ZWQgYnkgSmFrdWIgS2ljaW5za2kpCiAgLSBhZGQg bW9kcHJvYmUgcGt0Z2VuIHRvIEZJWFRVUkVfU0VUVVAoKSAoc3VnZ2VzdGVkIGJ5IEpha3ViIEtp Y2luc2tpKQogIC0gZml4IHNvbWUgY2hlY2twYXRjaCB3YXJuaW5ncyAoTWlzc2luZyBhIGJsYW5r IGxpbmUgYWZ0ZXIgZGVjbGFyYXRpb25zKQogIC0gc2hyaW5rIGxpbmUgbGVuZ3RoIGJ5IHJlLW5h bWluZyBzb21lIHZhcmlhYmxlcyAoY29tbWFuZCAtPiBjbWQsCiAgICBkZXZpY2UgLT4gZGV2KQog IC0gYWRkICdyYXRlIDAnIHRlc3RjYXNlCiAgLSBhZGQgJ3JhdGVwIDAnIHRlc3RjYXNlCi0tLQog dG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L01ha2VmaWxlICAgICAgICAgIHwgICAxICsKIHRv b2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9jb25maWcgICAgICAgICAgICB8ICAgMSArCiB0b29s cy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvcHJvY19uZXRfcGt0Z2VuLmMgfCA2MDUgKysrKysrKysr KysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDYwNyBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9k ZSAxMDA2NDQgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Byb2NfbmV0X3BrdGdlbi5jCgpk aWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L01ha2VmaWxlIGIvdG9vbHMv dGVzdGluZy9zZWxmdGVzdHMvbmV0L01ha2VmaWxlCmluZGV4IDczZWU4OGQ2YjA0My4uMDk1NzA4 Y2Q4MzQ1IDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvTWFrZWZpbGUK KysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L01ha2VmaWxlCkBAIC0xMDAsNiArMTAw LDcgQEAgVEVTVF9QUk9HUyArPSB2bGFuX2JyaWRnZV9iaW5kaW5nLnNoCiBURVNUX1BST0dTICs9 IGJwZl9vZmZsb2FkLnB5CiBURVNUX1BST0dTICs9IGlwdjZfcm91dGVfdXBkYXRlX3NvZnRfbG9j a3VwLnNoCiBURVNUX1BST0dTICs9IGJ1c3lfcG9sbF90ZXN0LnNoCitURVNUX0dFTl9QUk9HUyAr PSBwcm9jX25ldF9wa3RnZW4KIAogIyBZTkwgZmlsZXMsIG11c3QgYmUgYmVmb3JlICJpbmNsdWRl IC4ubGliLm1rIgogWU5MX0dFTl9GSUxFUyA6PSBidXN5X3BvbGxlciBuZXRsaW5rLWR1bXBzCmRp ZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvY29uZmlnIGIvdG9vbHMvdGVz dGluZy9zZWxmdGVzdHMvbmV0L2NvbmZpZwppbmRleCA1YjliYWY3MDg5NTAuLjlmZTFiMzQ2NGZi YyAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2NvbmZpZworKysgYi90 b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvY29uZmlnCkBAIC0xMDcsMyArMTA3LDQgQEAgQ09O RklHX1hGUk1fSU5URVJGQUNFPW0KIENPTkZJR19YRlJNX1VTRVI9bQogQ09ORklHX0lQX05GX01B VENIX1JQRklMVEVSPW0KIENPTkZJR19JUDZfTkZfTUFUQ0hfUlBGSUxURVI9bQorQ09ORklHX05F VF9QS1RHRU49bQpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Byb2Nf bmV0X3BrdGdlbi5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Byb2NfbmV0X3BrdGdl bi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNWUyYTI5MjZkMTRh Ci0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Byb2NfbmV0 X3BrdGdlbi5jCkBAIC0wLDAgKzEsNjA1IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog R1BMLTIuMAorLyoKKyAqIHByb2NfbmV0X3BrdGdlbjoga3NlbGZ0ZXN0IGZvciAvcHJvYy9uZXQv cGt0Z2VuIGludGVyZmFjZQorICoKKyAqIENvcHlyaWdodCAoYykgMjAyNSBQZXRlciBTZWlkZXJl ciA8cHMucmVwb3J0QGdteC5uZXQ+CisgKgorICovCisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNs dWRlIDxmY250bC5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgor CisjaW5jbHVkZSAiLi4va3NlbGZ0ZXN0X2hhcm5lc3MuaCIKKworc3RhdGljIGNvbnN0IGNoYXIg YWRkX2xvb3BiYWNrXzBbXSA9ICJhZGRfZGV2aWNlIGxvQDAiOworc3RhdGljIGNvbnN0IGNoYXIg cm1fbG9vcGJhY2tfMFtdID0gInJlbV9kZXZpY2VfYWxsIjsKKworc3RhdGljIGNvbnN0IGNoYXIg d3JvbmdfY3RybF9jbWRbXSA9ICJmb3JzdXJlYXdyb25nY29tbWFuZCI7CitzdGF0aWMgY29uc3Qg Y2hhciBsZWdhY3lfY3RybF9jbWRbXSA9ICJtYXhfYmVmb3JlX3NvZnRpcnEiOworCitzdGF0aWMg Y29uc3QgY2hhciB3cm9uZ19kZXZfY21kW10gPSAiZm9yc3VyZXdyb25nY29tbWFuZCI7CitzdGF0 aWMgY29uc3QgY2hhciBkZXZfY21kX21pbl9wa3Rfc2l6ZV8wW10gPSAibWluX3BrdF9zaXplIjsK K3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfbWluX3BrdF9zaXplXzFbXSA9ICJtaW5fcGt0X3Np emUgIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfbWluX3BrdF9zaXplXzJbXSA9ICJtaW5f cGt0X3NpemUgMCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX21pbl9wa3Rfc2l6ZV8zW10g PSAibWluX3BrdF9zaXplIDEiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9taW5fcGt0X3Np emVfNFtdID0gIm1pbl9wa3Rfc2l6ZSAxMDAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9t aW5fcGt0X3NpemVfNVtdID0gIm1pbl9wa3Rfc2l6ZT0xMDAxIjsKK3N0YXRpYyBjb25zdCBjaGFy IGRldl9jbWRfbWluX3BrdF9zaXplXzZbXSA9ICJtaW5fcGt0X3NpemUgPTIwMDIiOworc3RhdGlj IGNvbnN0IGNoYXIgZGV2X2NtZF9taW5fcGt0X3NpemVfN1tdID0gIm1pbl9wa3Rfc2l6ZT0gMzAw MyI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX21pbl9wa3Rfc2l6ZV84W10gPSAibWluX3Br dF9zaXplID0gNDAwNCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX21heF9wa3Rfc2l6ZV8w W10gPSAibWF4X3BrdF9zaXplIDIwMCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3BrdF9z aXplXzBbXSA9ICJwa3Rfc2l6ZSAzMDAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9pbWl4 X3dlaWdodHNfMFtdID0gImltaXhfd2VpZ2h0cyAwLDcgNTc2LDQgMTUwMCwxIjsKK3N0YXRpYyBj b25zdCBjaGFyIGRldl9jbWRfaW1peF93ZWlnaHRzXzFbXSA9ICJpbWl4X3dlaWdodHMgMTAxLDEg MTAyLDIgMTAzLDMgMTA0LDQgMTA1LDUgMTA2LDYgMTA3LDcgMTA4LDggMTA5LDkgMTEwLDEwIDEx MSwxMSAxMTIsMTIgMTEzLDEzIDExNCwxNCAxMTUsMTUgMTE2LDE2IDExNywxNyAxMTgsMTggMTE5 LDE5IDEyMCwyMCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2ltaXhfd2VpZ2h0c18yW10g PSAiaW1peF93ZWlnaHRzIDEwMCwxIDEwMiwyIDEwMywzIDEwNCw0IDEwNSw1IDEwNiw2IDEwNyw3 IDEwOCw4IDEwOSw5IDExMCwxMCAxMTEsMTEgMTEyLDEyIDExMywxMyAxMTQsMTQgMTE1LDE1IDEx NiwxNiAxMTcsMTcgMTE4LDE4IDExOSwxOSAxMjAsMjAgMTIxLDIxIjsKK3N0YXRpYyBjb25zdCBj aGFyIGRldl9jbWRfZGVidWdfMFtdID0gImRlYnVnIDEiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2 X2NtZF9kZWJ1Z18xW10gPSAiZGVidWcgMCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2Zy YWdzXzBbXSA9ICJmcmFncyAxMDAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9kZWxheV8w W10gPSAiZGVsYXkgMTAwIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfZGVsYXlfMVtdID0g ImRlbGF5IDIxNDc0ODM2NDciOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9yYXRlXzBbXSA9 ICJyYXRlIDAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9yYXRlXzFbXSA9ICJyYXRlIDEw MCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3JhdGVwXzBbXSA9ICJyYXRlcCAwIjsKK3N0 YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfcmF0ZXBfMVtdID0gInJhdGVwIDIwMCI7CitzdGF0aWMg Y29uc3QgY2hhciBkZXZfY21kX3VkcF9zcmNfbWluXzBbXSA9ICJ1ZHBfc3JjX21pbiAxIjsKK3N0 YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfdWRwX2RzdF9taW5fMFtdID0gInVkcF9kc3RfbWluIDIi Oworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF91ZHBfc3JjX21heF8wW10gPSAidWRwX3NyY19t YXggMyI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3VkcF9kc3RfbWF4XzBbXSA9ICJ1ZHBf ZHN0X21heCA0IjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfY2xvbmVfc2tiXzBbXSA9ICJj bG9uZV9za2IgMSI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2Nsb25lX3NrYl8xW10gPSAi Y2xvbmVfc2tiIDAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9jb3VudF8wW10gPSAiY291 bnQgMTAwIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfc3JjX21hY19jb3VudF8wW10gPSAi c3JjX21hY19jb3VudCAxMDAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9kc3RfbWFjX2Nv dW50XzBbXSA9ICJkc3RfbWFjX2NvdW50IDEwMCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21k X2J1cnN0XzBbXSA9ICJidXJzdCAwIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfbm9kZV8w W10gPSAibm9kZSAxMDAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF94bWl0X21vZGVfMFtd ID0gInhtaXRfbW9kZSBzdGFydF94bWl0IjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfeG1p dF9tb2RlXzFbXSA9ICJ4bWl0X21vZGUgbmV0aWZfcmVjZWl2ZSI7CitzdGF0aWMgY29uc3QgY2hh ciBkZXZfY21kX3htaXRfbW9kZV8yW10gPSAieG1pdF9tb2RlIHF1ZXVlX3htaXQiOworc3RhdGlj IGNvbnN0IGNoYXIgZGV2X2NtZF94bWl0X21vZGVfM1tdID0gInhtaXRfbW9kZSBub25zZW5zZSI7 CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2ZsYWdfMFtdID0gImZsYWcgVURQQ1NVTSI7Citz dGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2ZsYWdfMVtdID0gImZsYWcgIVVEUENTVU0iOworc3Rh dGljIGNvbnN0IGNoYXIgZGV2X2NtZF9mbGFnXzJbXSA9ICJmbGFnIG5vbnNlbnNlIjsKK3N0YXRp YyBjb25zdCBjaGFyIGRldl9jbWRfZHN0X21pbl8wW10gPSAiZHN0X21pbiAxMDEuMTAyLjEwMy4x MDQiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9kc3RfMFtdID0gImRzdCAxMDEuMTAyLjEw My4xMDQiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9kc3RfbWF4XzBbXSA9ICJkc3RfbWF4 IDIwMS4yMDIuMjAzLjIwNCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2RzdDZfMFtdID0g ImRzdDYgMjAwMTpkYjM4OjEyMzQ6MDAwMDowMDAwOjAwMDA6MDAwMDowMDAwIjsKK3N0YXRpYyBj b25zdCBjaGFyIGRldl9jbWRfZHN0Nl9taW5fMFtdID0gImRzdDZfbWluIDIwMDE6ZGI4OjEyMzQ6 MDAwMDowMDAwOjAwMDA6MDAwMDowMDAwIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfZHN0 Nl9tYXhfMFtdID0gImRzdDZfbWF4IDIwMDE6ZGI4OjEyMzQ6MDAwMDowMDAwOjAwMDA6MDAwMDow MDAwIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfc3JjNl8wW10gPSAic3JjNiAyMDAxOmRi Mzg6MTIzNDowMDAwOjAwMDA6MDAwMDowMDAwOjAwMDAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2 X2NtZF9zcmNfbWluXzBbXSA9ICJzcmNfbWluIDEwMS4xMDIuMTAzLjEwNCI7CitzdGF0aWMgY29u c3QgY2hhciBkZXZfY21kX3NyY19tYXhfMFtdID0gInNyY19tYXggMjAxLjIwMi4yMDMuMjA0IjsK K3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfZHN0X21hY18wW10gPSAiZHN0X21hYyAwMTowMjow MzowNDowNTowNiI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3NyY19tYWNfMFtdID0gInNy Y19tYWMgMTE6MTI6MTM6MTQ6MTU6MTYiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9jbGVh cl9jb3VudGVyc18wW10gPSAiY2xlYXJfY291bnRlcnMiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2 X2NtZF9mbG93c18wW10gPSAiZmxvd3MgMTAwIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRf c3BpXzBbXSA9ICJzcGkgMTAwIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfZmxvd2xlbl8w W10gPSAiZmxvd2xlbiAxMDAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9xdWV1ZV9tYXBf bWluXzBbXSA9ICJxdWV1ZV9tYXBfbWluIDEiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9x dWV1ZV9tYXBfbWF4XzBbXSA9ICJxdWV1ZV9tYXBfbWF4IDIiOworc3RhdGljIGNvbnN0IGNoYXIg ZGV2X2NtZF9tcGxzXzBbXSA9ICJtcGxzIDAwMDAwMDAxIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRl dl9jbWRfbXBsc18xW10gPSAibXBscyAwMDAwMDAwMSwwMDAwMDBmMiI7CitzdGF0aWMgY29uc3Qg Y2hhciBkZXZfY21kX21wbHNfMltdID0gIm1wbHMgMDAwMDBmMDAsMDAwMDBmMDEsMDAwMDBmMDIs MDAwMDBmMDMsMDAwMDBmMDQsMDAwMDBmMDUsMDAwMDBmMDYsMDAwMDBmMDcsMDAwMDBmMDgsMDAw MDBmMDksMDAwMDBmMGEsMDAwMDBmMGIsMDAwMDBmMGMsMDAwMDBmMGQsMDAwMDBmMGUsMDAwMDBm MGYiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9tcGxzXzNbXSA9ICJtcGxzIDAwMDAwZjAw LDAwMDAwZjAxLDAwMDAwZjAyLDAwMDAwZjAzLDAwMDAwZjA0LDAwMDAwZjA1LDAwMDAwZjA2LDAw MDAwZjA3LDAwMDAwZjA4LDAwMDAwZjA5LDAwMDAwZjBhLDAwMDAwZjBiLDAwMDAwZjBjLDAwMDAw ZjBkLDAwMDAwZjBlLDAwMDAwZjBmLDAwMDAwZjEwIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9j bWRfdmxhbl9pZF8wW10gPSAidmxhbl9pZCAxIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRf dmxhbl9wXzBbXSA9ICJ2bGFuX3AgMSI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3ZsYW5f Y2ZpXzBbXSA9ICJ2bGFuX2NmaSAxIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfdmxhbl9p ZF8xW10gPSAidmxhbl9pZCA0MDk2IjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfc3ZsYW5f aWRfMFtdID0gInN2bGFuX2lkIDEiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9zdmxhbl9w XzBbXSA9ICJzdmxhbl9wIDEiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9zdmxhbl9jZmlf MFtdID0gInN2bGFuX2NmaSAxIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfc3ZsYW5faWRf MVtdID0gInN2bGFuX2lkIDQwOTYiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF90b3NfMFtd ID0gInRvcyAwIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfdG9zXzFbXSA9ICJ0b3MgMGYi Oworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF90b3NfMltdID0gInRvcyAwZmYiOworc3RhdGlj IGNvbnN0IGNoYXIgZGV2X2NtZF90cmFmZmljX2NsYXNzXzBbXSA9ICJ0cmFmZmljX2NsYXNzIGYw IjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfc2tiX3ByaW9yaXR5XzBbXSA9ICJza2JfcHJp b3JpdHkgOTk5IjsKKworRklYVFVSRShwcm9jX25ldF9wa3RnZW4pIHsKKwlpbnQgY3RybF9mZDsK KwlpbnQgZGV2X2ZkOworfTsKKworRklYVFVSRV9TRVRVUChwcm9jX25ldF9wa3RnZW4pIHsKKwlp bnQgcjsKKwlzc2l6ZV90IGxlbjsKKworCXIgPSBzeXN0ZW0oIm1vZHByb2JlIHBrdGdlbiIpOwor CUFTU0VSVF9FUShyLCAwKSBUSF9MT0coIkNPTkZJR19ORVRfUEtUR0VOIG5vdCBlbmFibGVkLCBt b2R1bGUgcGt0Z2VuIG5vdCBsb2FkZWQ/Iik7CisKKwlzZWxmLT5jdHJsX2ZkID0gb3BlbigiL3By b2MvbmV0L3BrdGdlbi9rcGt0Z2VuZF8wIiwgT19SRFdSKTsKKwlBU1NFUlRfR0Uoc2VsZi0+Y3Ry bF9mZCwgMCkgVEhfTE9HKCJDT05GSUdfTkVUX1BLVEdFTiBub3QgZW5hYmxlZCwgbW9kdWxlIHBr dGdlbiBub3QgbG9hZGVkPyIpOworCisJbGVuID0gd3JpdGUoc2VsZi0+Y3RybF9mZCwgYWRkX2xv b3BiYWNrXzAsIHNpemVvZihhZGRfbG9vcGJhY2tfMCkpOworCUFTU0VSVF9FUShsZW4sIHNpemVv ZihhZGRfbG9vcGJhY2tfMCkpIFRIX0xPRygiZGV2aWNlIGxvQDAgYWxyZWFkeSByZWdpc3RlcmVk PyIpOworCisJc2VsZi0+ZGV2X2ZkID0gb3BlbigiL3Byb2MvbmV0L3BrdGdlbi9sb0AwIiwgT19S RFdSKTsKKwlBU1NFUlRfR0Uoc2VsZi0+ZGV2X2ZkLCAwKSBUSF9MT0coImRldmljZSBlbnRyeSBm b3IgbG9AMCBtaXNzaW5nPyIpOworfQorCitGSVhUVVJFX1RFQVJET1dOKHByb2NfbmV0X3BrdGdl bikgeworCWludCByZXQ7CisJc3NpemVfdCBsZW47CisKKwlyZXQgPSBjbG9zZShzZWxmLT5kZXZf ZmQpOworCUVYUEVDVF9FUShyZXQsIDApOworCisJbGVuID0gd3JpdGUoc2VsZi0+Y3RybF9mZCwg cm1fbG9vcGJhY2tfMCwgc2l6ZW9mKHJtX2xvb3BiYWNrXzApKTsKKwlFWFBFQ1RfRVEobGVuLCBz aXplb2Yocm1fbG9vcGJhY2tfMCkpOworCisJcmV0ID0gY2xvc2Uoc2VsZi0+Y3RybF9mZCk7CisJ RVhQRUNUX0VRKHJldCwgMCk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIHdyb25nX2N0 cmxfY21kKSB7CisJZm9yIChpbnQgaSA9IDA7IGkgPD0gc2l6ZW9mKHdyb25nX2N0cmxfY21kKTsg aSsrKSB7CisJCXNzaXplX3QgbGVuOworCisJCWxlbiA9IHdyaXRlKHNlbGYtPmN0cmxfZmQsIHdy b25nX2N0cmxfY21kLCBpKTsKKwkJRVhQRUNUX0VRKGxlbiwgLTEpOworCQlFWFBFQ1RfRVEoZXJy bm8sIEVJTlZBTCk7CisJfQorfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBsZWdhY3lfY3Ry bF9jbWQpIHsKKwlmb3IgKGludCBpID0gMDsgaSA8PSBzaXplb2YobGVnYWN5X2N0cmxfY21kKTsg aSsrKSB7CisJCXNzaXplX3QgbGVuOworCisJCWxlbiA9IHdyaXRlKHNlbGYtPmN0cmxfZmQsIGxl Z2FjeV9jdHJsX2NtZCwgaSk7CisJCWlmIChpIDwgKHNpemVvZihsZWdhY3lfY3RybF9jbWQpIC0g MSkpIHsKKwkJCS8vIGluY29tcGxldGUgY29tbWFuZCBzdHJpbmcKKwkJCUVYUEVDVF9FUShsZW4s IC0xKTsKKwkJCUVYUEVDVF9FUShlcnJubywgRUlOVkFMKTsKKwkJfSBlbHNlIHsKKwkJCS8vIGNv bXBsZXRlIGNvbW1hbmQgc3RyaW5nIHdpdGhvdXQvd2l0aCB0cmFpbGluZyAnXDAnCisJCQlFWFBF Q1RfRVEobGVuLCBpKTsKKwkJfQorCX0KK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgd3Jv bmdfZGV2X2NtZCkgeworCWZvciAoaW50IGkgPSAwOyBpIDw9IHNpemVvZih3cm9uZ19kZXZfY21k KTsgaSsrKSB7CisJCXNzaXplX3QgbGVuOworCisJCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwg d3JvbmdfZGV2X2NtZCwgaSk7CisJCUVYUEVDVF9FUShsZW4sIC0xKTsKKwkJRVhQRUNUX0VRKGVy cm5vLCBFSU5WQUwpOworCX0KK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9t aW5fcGt0X3NpemUpIHsKKwlzc2l6ZV90IGxlbjsKKworCS8vIHdpdGggdHJhaWxpbmcgJ1wwJwor CWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9taW5fcGt0X3NpemVfMCwgc2l6ZW9m KGRldl9jbWRfbWluX3BrdF9zaXplXzApKTsKKwlFWFBFQ1RfRVEobGVuLCAtMSk7CisJRVhQRUNU X0VRKGVycm5vLCBFSU5WQUwpOworCisJLy8gd2l0aG91dCB0cmFpbGluZyAnXDAnCisJbGVuID0g d3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX21pbl9wa3Rfc2l6ZV8wLCBzaXplb2YoZGV2X2Nt ZF9taW5fcGt0X3NpemVfMCkgLSAxKTsKKwlFWFBFQ1RfRVEobGVuLCAtMSk7CisJRVhQRUNUX0VR KGVycm5vLCBFSU5WQUwpOworCisJLy8gd2l0aCB0cmFpbGluZyAnXDAnCisJbGVuID0gd3JpdGUo c2VsZi0+ZGV2X2ZkLCBkZXZfY21kX21pbl9wa3Rfc2l6ZV8xLCBzaXplb2YoZGV2X2NtZF9taW5f cGt0X3NpemVfMSkpOworCUVYUEVDVF9FUShsZW4sIC0xKTsKKwlFWFBFQ1RfRVEoZXJybm8sIEVJ TlZBTCk7CisKKwkvLyB3aXRob3V0IHRyYWlsaW5nICdcMCcKKwlsZW4gPSB3cml0ZShzZWxmLT5k ZXZfZmQsIGRldl9jbWRfbWluX3BrdF9zaXplXzEsIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6 ZV8xKSAtIDEpOworCUVYUEVDVF9FUShsZW4sIC0xKTsKKwlFWFBFQ1RfRVEoZXJybm8sIEVJTlZB TCk7CisKKwkvLyB3aXRoIHRyYWlsaW5nICdcMCcKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQs IGRldl9jbWRfbWluX3BrdF9zaXplXzIsIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV8yKSk7 CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfbWluX3BrdF9zaXplXzIpKTsKKworCS8v IHdpdGhvdXQgdHJhaWxpbmcgJ1wwJworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2Nt ZF9taW5fcGt0X3NpemVfMiwgc2l6ZW9mKGRldl9jbWRfbWluX3BrdF9zaXplXzIpIC0gMSk7CisJ RVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfbWluX3BrdF9zaXplXzIpIC0gMSk7CisKKwls ZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfbWluX3BrdF9zaXplXzMsIHNpemVvZihk ZXZfY21kX21pbl9wa3Rfc2l6ZV8zKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRf bWluX3BrdF9zaXplXzMpKTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9t aW5fcGt0X3NpemVfNCwgc2l6ZW9mKGRldl9jbWRfbWluX3BrdF9zaXplXzQpKTsKKwlFWFBFQ1Rf RVEobGVuLCBzaXplb2YoZGV2X2NtZF9taW5fcGt0X3NpemVfNCkpOworCisJbGVuID0gd3JpdGUo c2VsZi0+ZGV2X2ZkLCBkZXZfY21kX21pbl9wa3Rfc2l6ZV81LCBzaXplb2YoZGV2X2NtZF9taW5f cGt0X3NpemVfNSkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6 ZV81KSk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfbWluX3BrdF9zaXpl XzYsIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV82KSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6 ZW9mKGRldl9jbWRfbWluX3BrdF9zaXplXzYpKTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9m ZCwgZGV2X2NtZF9taW5fcGt0X3NpemVfNywgc2l6ZW9mKGRldl9jbWRfbWluX3BrdF9zaXplXzcp KTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9taW5fcGt0X3NpemVfNykpOworCisJ bGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX21pbl9wa3Rfc2l6ZV84LCBzaXplb2Yo ZGV2X2NtZF9taW5fcGt0X3NpemVfOCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21k X21pbl9wa3Rfc2l6ZV84KSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRf bWF4X3BrdF9zaXplKSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZf ZmQsIGRldl9jbWRfbWF4X3BrdF9zaXplXzAsIHNpemVvZihkZXZfY21kX21heF9wa3Rfc2l6ZV8w KSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfbWF4X3BrdF9zaXplXzApKTsKK30K KworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9wa3Rfc2l6ZSkgeworCXNzaXplX3Qg bGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3BrdF9zaXplXzAsIHNp emVvZihkZXZfY21kX3BrdF9zaXplXzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2Nt ZF9wa3Rfc2l6ZV8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfaW1p eF93ZWlnaHRzKSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQs IGRldl9jbWRfaW1peF93ZWlnaHRzXzAsIHNpemVvZihkZXZfY21kX2ltaXhfd2VpZ2h0c18wKSk7 CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfaW1peF93ZWlnaHRzXzApKTsKKworCWxl biA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9pbWl4X3dlaWdodHNfMSwgc2l6ZW9mKGRl dl9jbWRfaW1peF93ZWlnaHRzXzEpKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9p bWl4X3dlaWdodHNfMSkpOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2lt aXhfd2VpZ2h0c18yLCBzaXplb2YoZGV2X2NtZF9pbWl4X3dlaWdodHNfMikpOworCUVYUEVDVF9F UShsZW4sIC0xKTsKKwlFWFBFQ1RfRVEoZXJybm8sIEUyQklHKTsKK30KKworVEVTVF9GKHByb2Nf bmV0X3BrdGdlbiwgZGV2X2NtZF9kZWJ1ZykgeworCXNzaXplX3QgbGVuOworCisJLy8gZGVidWcg b24KKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfZGVidWdfMCwgc2l6ZW9mKGRl dl9jbWRfZGVidWdfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX2RlYnVnXzAp KTsKKworCS8vIGRlYnVnIG9mZgorCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9k ZWJ1Z18xLCBzaXplb2YoZGV2X2NtZF9kZWJ1Z18xKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9m KGRldl9jbWRfZGVidWdfMSkpOworfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21k X2ZyYWdzKSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRl dl9jbWRfZnJhZ3NfMCwgc2l6ZW9mKGRldl9jbWRfZnJhZ3NfMCkpOworCUVYUEVDVF9FUShsZW4s IHNpemVvZihkZXZfY21kX2ZyYWdzXzApKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwg ZGV2X2NtZF9kZWxheSkgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2 X2ZkLCBkZXZfY21kX2RlbGF5XzAsIHNpemVvZihkZXZfY21kX2RlbGF5XzApKTsKKwlFWFBFQ1Rf RVEobGVuLCBzaXplb2YoZGV2X2NtZF9kZWxheV8wKSk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5k ZXZfZmQsIGRldl9jbWRfZGVsYXlfMSwgc2l6ZW9mKGRldl9jbWRfZGVsYXlfMSkpOworCUVYUEVD VF9FUShsZW4sIHNpemVvZihkZXZfY21kX2RlbGF5XzEpKTsKK30KKworVEVTVF9GKHByb2NfbmV0 X3BrdGdlbiwgZGV2X2NtZF9yYXRlKSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShz ZWxmLT5kZXZfZmQsIGRldl9jbWRfcmF0ZV8wLCBzaXplb2YoZGV2X2NtZF9yYXRlXzApKTsKKwlF WFBFQ1RfRVEobGVuLCAtMSk7CisJRVhQRUNUX0VRKGVycm5vLCBFSU5WQUwpOworCisJbGVuID0g d3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3JhdGVfMSwgc2l6ZW9mKGRldl9jbWRfcmF0ZV8x KSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfcmF0ZV8xKSk7Cit9CisKK1RFU1Rf Rihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfcmF0ZXApIHsKKwlzc2l6ZV90IGxlbjsKKworCWxl biA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9yYXRlcF8wLCBzaXplb2YoZGV2X2NtZF9y YXRlcF8wKSk7CisJRVhQRUNUX0VRKGxlbiwgLTEpOworCUVYUEVDVF9FUShlcnJubywgRUlOVkFM KTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9yYXRlcF8xLCBzaXplb2Yo ZGV2X2NtZF9yYXRlcF8xKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfcmF0ZXBf MSkpOworfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX3VkcF9zcmNfbWluKSB7 CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfdWRw X3NyY19taW5fMCwgc2l6ZW9mKGRldl9jbWRfdWRwX3NyY19taW5fMCkpOworCUVYUEVDVF9FUShs ZW4sIHNpemVvZihkZXZfY21kX3VkcF9zcmNfbWluXzApKTsKK30KKworVEVTVF9GKHByb2NfbmV0 X3BrdGdlbiwgZGV2X2NtZF91ZHBfZHN0X21pbikgeworCXNzaXplX3QgbGVuOworCisJbGVuID0g d3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3VkcF9kc3RfbWluXzAsIHNpemVvZihkZXZfY21k X3VkcF9kc3RfbWluXzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF91ZHBfZHN0 X21pbl8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfdWRwX3NyY19t YXgpIHsKKwlzc2l6ZV90IGxlbjsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2Nt ZF91ZHBfc3JjX21heF8wLCBzaXplb2YoZGV2X2NtZF91ZHBfc3JjX21heF8wKSk7CisJRVhQRUNU X0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfdWRwX3NyY19tYXhfMCkpOworfQorCitURVNUX0YocHJv Y19uZXRfcGt0Z2VuLCBkZXZfY21kX3VkcF9kc3RfbWF4KSB7CisJc3NpemVfdCBsZW47CisKKwls ZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfdWRwX2RzdF9tYXhfMCwgc2l6ZW9mKGRl dl9jbWRfdWRwX2RzdF9tYXhfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX3Vk cF9kc3RfbWF4XzApKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9jbG9u ZV9za2IpIHsKKwlzc2l6ZV90IGxlbjsKKworCS8vIGNsb25lX3NrYiBvbiAoZ2l2ZXMgRU9QTk9U U1VQUCBvbiBsbyBkZXZpY2UpCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2Ns b25lX3NrYl8wLCBzaXplb2YoZGV2X2NtZF9jbG9uZV9za2JfMCkpOworCUVYUEVDVF9FUShsZW4s IC0xKTsKKwlFWFBFQ1RfRVEoZXJybm8sIEVPUE5PVFNVUFApOworCisJLy8gY2xvbmVfc2tiIG9m ZgorCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9jbG9uZV9za2JfMSwgc2l6ZW9m KGRldl9jbWRfY2xvbmVfc2tiXzEpKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9j bG9uZV9za2JfMSkpOworfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX2NvdW50 KSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRf Y291bnRfMCwgc2l6ZW9mKGRldl9jbWRfY291bnRfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVv ZihkZXZfY21kX2NvdW50XzApKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2Nt ZF9zcmNfbWFjX2NvdW50KSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5k ZXZfZmQsIGRldl9jbWRfc3JjX21hY19jb3VudF8wLCBzaXplb2YoZGV2X2NtZF9zcmNfbWFjX2Nv dW50XzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9zcmNfbWFjX2NvdW50XzAp KTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9kc3RfbWFjX2NvdW50KSB7 CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfZHN0 X21hY19jb3VudF8wLCBzaXplb2YoZGV2X2NtZF9kc3RfbWFjX2NvdW50XzApKTsKKwlFWFBFQ1Rf RVEobGVuLCBzaXplb2YoZGV2X2NtZF9kc3RfbWFjX2NvdW50XzApKTsKK30KKworVEVTVF9GKHBy b2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9idXJzdCkgeworCXNzaXplX3QgbGVuOworCisJLy8gYnVy c3Qgb2ZmCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2J1cnN0XzAsIHNpemVv ZihkZXZfY21kX2J1cnN0XzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9idXJz dF8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfbm9kZSkgeworCXNz aXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX25vZGVfMCwg c2l6ZW9mKGRldl9jbWRfbm9kZV8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRf bm9kZV8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfeG1pdF9tb2Rl KSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRf eG1pdF9tb2RlXzAsIHNpemVvZihkZXZfY21kX3htaXRfbW9kZV8wKSk7CisJRVhQRUNUX0VRKGxl biwgc2l6ZW9mKGRldl9jbWRfeG1pdF9tb2RlXzApKTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRl dl9mZCwgZGV2X2NtZF94bWl0X21vZGVfMSwgc2l6ZW9mKGRldl9jbWRfeG1pdF9tb2RlXzEpKTsK KwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF94bWl0X21vZGVfMSkpOworCisJbGVuID0g d3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3htaXRfbW9kZV8yLCBzaXplb2YoZGV2X2NtZF94 bWl0X21vZGVfMikpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX3htaXRfbW9kZV8y KSk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfeG1pdF9tb2RlXzMsIHNp emVvZihkZXZfY21kX3htaXRfbW9kZV8zKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9j bWRfeG1pdF9tb2RlXzMpKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9m bGFnKSB7CisJc3NpemVfdCBsZW47CisKKwkvLyBmbGFnIFVEUENTVU0gb24KKwlsZW4gPSB3cml0 ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfZmxhZ18wLCBzaXplb2YoZGV2X2NtZF9mbGFnXzApKTsK KwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9mbGFnXzApKTsKKworCS8vIGZsYWcgVURQ Q1NVTSBvZmYKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfZmxhZ18xLCBzaXpl b2YoZGV2X2NtZF9mbGFnXzEpKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9mbGFn XzEpKTsKKworCS8vIGZsYWcgaW52YWxpZAorCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2 X2NtZF9mbGFnXzIsIHNpemVvZihkZXZfY21kX2ZsYWdfMikpOworCUVYUEVDVF9FUShsZW4sIHNp emVvZihkZXZfY21kX2ZsYWdfMikpOworfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZf Y21kX2RzdF9taW4pIHsKKwlzc2l6ZV90IGxlbjsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9m ZCwgZGV2X2NtZF9kc3RfbWluXzAsIHNpemVvZihkZXZfY21kX2RzdF9taW5fMCkpOworCUVYUEVD VF9FUShsZW4sIHNpemVvZihkZXZfY21kX2RzdF9taW5fMCkpOworfQorCitURVNUX0YocHJvY19u ZXRfcGt0Z2VuLCBkZXZfY21kX2RzdCkgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUo c2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2RzdF8wLCBzaXplb2YoZGV2X2NtZF9kc3RfMCkpOworCUVY UEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX2RzdF8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25l dF9wa3RnZW4sIGRldl9jbWRfZHN0X21heCkgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3Jp dGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2RzdF9tYXhfMCwgc2l6ZW9mKGRldl9jbWRfZHN0X21h eF8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfZHN0X21heF8wKSk7Cit9CisK K1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfZHN0NikgeworCXNzaXplX3QgbGVuOwor CisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2RzdDZfMCwgc2l6ZW9mKGRldl9j bWRfZHN0Nl8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfZHN0Nl8wKSk7Cit9 CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfZHN0Nl9taW4pIHsKKwlzc2l6ZV90 IGxlbjsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9kc3Q2X21pbl8wLCBz aXplb2YoZGV2X2NtZF9kc3Q2X21pbl8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9j bWRfZHN0Nl9taW5fMCkpOworfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX2Rz dDZfbWF4KSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRl dl9jbWRfZHN0Nl9tYXhfMCwgc2l6ZW9mKGRldl9jbWRfZHN0Nl9tYXhfMCkpOworCUVYUEVDVF9F UShsZW4sIHNpemVvZihkZXZfY21kX2RzdDZfbWF4XzApKTsKK30KKworVEVTVF9GKHByb2NfbmV0 X3BrdGdlbiwgZGV2X2NtZF9zcmM2KSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShz ZWxmLT5kZXZfZmQsIGRldl9jbWRfc3JjNl8wLCBzaXplb2YoZGV2X2NtZF9zcmM2XzApKTsKKwlF WFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9zcmM2XzApKTsKK30KKworVEVTVF9GKHByb2Nf bmV0X3BrdGdlbiwgZGV2X2NtZF9zcmNfbWluKSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3 cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfc3JjX21pbl8wLCBzaXplb2YoZGV2X2NtZF9zcmNf bWluXzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9zcmNfbWluXzApKTsKK30K KworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9zcmNfbWF4KSB7CisJc3NpemVfdCBs ZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfc3JjX21heF8wLCBzaXpl b2YoZGV2X2NtZF9zcmNfbWF4XzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9z cmNfbWF4XzApKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9kc3RfbWFj KSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRf ZHN0X21hY18wLCBzaXplb2YoZGV2X2NtZF9kc3RfbWFjXzApKTsKKwlFWFBFQ1RfRVEobGVuLCBz aXplb2YoZGV2X2NtZF9kc3RfbWFjXzApKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwg ZGV2X2NtZF9zcmNfbWFjKSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5k ZXZfZmQsIGRldl9jbWRfc3JjX21hY18wLCBzaXplb2YoZGV2X2NtZF9zcmNfbWFjXzApKTsKKwlF WFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9zcmNfbWFjXzApKTsKK30KKworVEVTVF9GKHBy b2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9jbGVhcl9jb3VudGVycykgeworCXNzaXplX3QgbGVuOwor CisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2NsZWFyX2NvdW50ZXJzXzAsIHNp emVvZihkZXZfY21kX2NsZWFyX2NvdW50ZXJzXzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2Yo ZGV2X2NtZF9jbGVhcl9jb3VudGVyc18wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4s IGRldl9jbWRfZmxvd3MpIHsKKwlzc2l6ZV90IGxlbjsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRl dl9mZCwgZGV2X2NtZF9mbG93c18wLCBzaXplb2YoZGV2X2NtZF9mbG93c18wKSk7CisJRVhQRUNU X0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfZmxvd3NfMCkpOworfQorCitURVNUX0YocHJvY19uZXRf cGt0Z2VuLCBkZXZfY21kX3NwaSkgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2Vs Zi0+ZGV2X2ZkLCBkZXZfY21kX3NwaV8wLCBzaXplb2YoZGV2X2NtZF9zcGlfMCkpOworCUVYUEVD VF9FUShsZW4sIHNpemVvZihkZXZfY21kX3NwaV8wKSkgVEhfTE9HKCJDT05GSUdfWEZSTSBub3Qg ZW5hYmxlZD8iKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9mbG93bGVu KSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRf Zmxvd2xlbl8wLCBzaXplb2YoZGV2X2NtZF9mbG93bGVuXzApKTsKKwlFWFBFQ1RfRVEobGVuLCBz aXplb2YoZGV2X2NtZF9mbG93bGVuXzApKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwg ZGV2X2NtZF9xdWV1ZV9tYXBfbWluKSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShz ZWxmLT5kZXZfZmQsIGRldl9jbWRfcXVldWVfbWFwX21pbl8wLCBzaXplb2YoZGV2X2NtZF9xdWV1 ZV9tYXBfbWluXzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9xdWV1ZV9tYXBf bWluXzApKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9xdWV1ZV9tYXBf bWF4KSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9j bWRfcXVldWVfbWFwX21heF8wLCBzaXplb2YoZGV2X2NtZF9xdWV1ZV9tYXBfbWF4XzApKTsKKwlF WFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9xdWV1ZV9tYXBfbWF4XzApKTsKK30KKworVEVT VF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9tcGxzKSB7CisJc3NpemVfdCBsZW47CisKKwls ZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfbXBsc18wLCBzaXplb2YoZGV2X2NtZF9t cGxzXzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9tcGxzXzApKTsKKworCWxl biA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9tcGxzXzEsIHNpemVvZihkZXZfY21kX21w bHNfMSkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX21wbHNfMSkpOworCisJbGVu ID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX21wbHNfMiwgc2l6ZW9mKGRldl9jbWRfbXBs c18yKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfbXBsc18yKSk7CisKKwlsZW4g PSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfbXBsc18zLCBzaXplb2YoZGV2X2NtZF9tcGxz XzMpKTsKKwlFWFBFQ1RfRVEobGVuLCAtMSk7CisJRVhQRUNUX0VRKGVycm5vLCBFMkJJRyk7Cit9 CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfdmxhbl9pZCkgeworCXNzaXplX3Qg bGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3ZsYW5faWRfMCwgc2l6 ZW9mKGRldl9jbWRfdmxhbl9pZF8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRf dmxhbl9pZF8wKSk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfdmxhbl9w XzAsIHNpemVvZihkZXZfY21kX3ZsYW5fcF8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRl dl9jbWRfdmxhbl9wXzApKTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF92 bGFuX2NmaV8wLCBzaXplb2YoZGV2X2NtZF92bGFuX2NmaV8wKSk7CisJRVhQRUNUX0VRKGxlbiwg c2l6ZW9mKGRldl9jbWRfdmxhbl9jZmlfMCkpOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2Zk LCBkZXZfY21kX3ZsYW5faWRfMSwgc2l6ZW9mKGRldl9jbWRfdmxhbl9pZF8xKSk7CisJRVhQRUNU X0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfdmxhbl9pZF8xKSk7Cit9CisKK1RFU1RfRihwcm9jX25l dF9wa3RnZW4sIGRldl9jbWRfc3ZsYW5faWQpIHsKKwlzc2l6ZV90IGxlbjsKKworCWxlbiA9IHdy aXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9zdmxhbl9pZF8wLCBzaXplb2YoZGV2X2NtZF9zdmxh bl9pZF8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfc3ZsYW5faWRfMCkpOwor CisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3N2bGFuX3BfMCwgc2l6ZW9mKGRl dl9jbWRfc3ZsYW5fcF8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfc3ZsYW5f cF8wKSk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfc3ZsYW5fY2ZpXzAs IHNpemVvZihkZXZfY21kX3N2bGFuX2NmaV8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRl dl9jbWRfc3ZsYW5fY2ZpXzApKTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2Nt ZF9zdmxhbl9pZF8xLCBzaXplb2YoZGV2X2NtZF9zdmxhbl9pZF8xKSk7CisJRVhQRUNUX0VRKGxl biwgc2l6ZW9mKGRldl9jbWRfc3ZsYW5faWRfMSkpOworfQorCisKK1RFU1RfRihwcm9jX25ldF9w a3RnZW4sIGRldl9jbWRfdG9zKSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxm LT5kZXZfZmQsIGRldl9jbWRfdG9zXzAsIHNpemVvZihkZXZfY21kX3Rvc18wKSk7CisJRVhQRUNU X0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfdG9zXzApKTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRl dl9mZCwgZGV2X2NtZF90b3NfMSwgc2l6ZW9mKGRldl9jbWRfdG9zXzEpKTsKKwlFWFBFQ1RfRVEo bGVuLCBzaXplb2YoZGV2X2NtZF90b3NfMSkpOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2Zk LCBkZXZfY21kX3Rvc18yLCBzaXplb2YoZGV2X2NtZF90b3NfMikpOworCUVYUEVDVF9FUShsZW4s IHNpemVvZihkZXZfY21kX3Rvc18yKSk7Cit9CisKKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwg ZGV2X2NtZF90cmFmZmljX2NsYXNzKSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShz ZWxmLT5kZXZfZmQsIGRldl9jbWRfdHJhZmZpY19jbGFzc18wLCBzaXplb2YoZGV2X2NtZF90cmFm ZmljX2NsYXNzXzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF90cmFmZmljX2Ns YXNzXzApKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9za2JfcHJpb3Jp dHkpIHsKKwlzc2l6ZV90IGxlbjsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2Nt ZF9za2JfcHJpb3JpdHlfMCwgc2l6ZW9mKGRldl9jbWRfc2tiX3ByaW9yaXR5XzApKTsKKwlFWFBF Q1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9za2JfcHJpb3JpdHlfMCkpOworfQorCitURVNUX0hB Uk5FU1NfTUFJTgotLSAKMi40OC4xCgo=