From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 84B2BC43331 for ; Tue, 12 Nov 2019 00:34:08 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 637952196E for ; Tue, 12 Nov 2019 00:34:08 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 637952196E Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=amd-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id D2F516EA40; Tue, 12 Nov 2019 00:34:07 +0000 (UTC) Received: from NAM05-DM3-obe.outbound.protection.outlook.com (mail-eopbgr730067.outbound.protection.outlook.com [40.107.73.67]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0D3D16EA3E for ; Tue, 12 Nov 2019 00:34:06 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OoSiISVmoL8VG7ZrE/XG+A2BRLxuDB9/uf2HdrAsNw/6ETHaumdxSeTyftPhutSxhHhWaMgVyMb3AhHhqVF7kXn2v09A6MGZ4SkF1p80wWx9j46+gaoSppCb/VCJ6ioo/P9TxofsR4lqjcz0wcLWuQhTBuWUpIT6r3vQgNkAx/Zh8txQFOUNdNwNCOwgaMRfU/bwJBh6FJVTvJHr6ea8KxoY2Cix+IQLNXH2d+i4mdGOuGrj0KKoajQ+9goTgM/eZZQcSMLuUBuka0euIi5cU6iFLB9xpvdfNhQ8bDedUlIALOLA4wsI8MRXldGeVYrbvm/olW3Hrs0QAU0THzFiAw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bOe1wBRv+i3IlxUX7oLprYJJs8//VMEKr+lvt9XnW2U=; b=Dya5VAH77lqIS07Sq5JoIiKn2lSReTBUCL9502HnTGj2KNjwgQ7DmfXj7nqtRBXUurHY/LkZ1XPvGaZEhlIW0ME19qx8cBXoS0UvIOR1vz1EdoJnrLZVQ3DDqSV5EuuaFCfWz5CZZiXqONQunGY/uhIuDpd0py1mnI07yEvcqP0YNFU0TToSm5vyf8T3rAiEfieVlUTFj+Z9aOg3pnM8LmIOBYrxBuXSG5s/GOesEMV2rQ7Os1G6w5Df/gbBZuuccIuyWPop7Ig8fpZxUufNCAAkS4VogWVqiBpogLmlzcxPrO8tFW9L1+uoATpToU3xxmTgwGDvSedIAN2HR1hpVw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none Received: from MW2PR12MB2524.namprd12.prod.outlook.com (52.132.180.155) by MW2PR12MB2554.namprd12.prod.outlook.com (52.132.180.161) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2430.25; Tue, 12 Nov 2019 00:34:03 +0000 Received: from MW2PR12MB2524.namprd12.prod.outlook.com ([fe80::3d1f:4c20:e980:6e69]) by MW2PR12MB2524.namprd12.prod.outlook.com ([fe80::3d1f:4c20:e980:6e69%5]) with mapi id 15.20.2430.027; Tue, 12 Nov 2019 00:34:03 +0000 From: Rodrigo Siqueira To: amd-gfx@lists.freedesktop.org Subject: [PATCH 26/30] drm/amd/display: DML Validation Dump/Check with Logging Date: Mon, 11 Nov 2019 19:33:20 -0500 Message-Id: <20191112003324.8419-27-Rodrigo.Siqueira@amd.com> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20191112003324.8419-1-Rodrigo.Siqueira@amd.com> References: <20191112003324.8419-1-Rodrigo.Siqueira@amd.com> X-ClientProxiedBy: YTBPR01CA0012.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:14::25) To MW2PR12MB2524.namprd12.prod.outlook.com (2603:10b6:907:9::27) MIME-Version: 1.0 X-Mailer: git-send-email 2.24.0 X-Originating-IP: [165.204.55.250] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: b9d5753e-a92e-4ad3-77e3-08d7670804b7 X-MS-TrafficTypeDiagnostic: MW2PR12MB2554: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:255; X-Forefront-PRVS: 021975AE46 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4636009)(1496009)(136003)(366004)(396003)(346002)(39860400002)(376002)(189003)(199004)(76176011)(6916009)(81166006)(81156014)(386003)(8676002)(478600001)(6506007)(51416003)(52116002)(2870700001)(25786009)(14444005)(2906002)(186003)(2361001)(3846002)(316002)(66066001)(47776003)(50466002)(4326008)(26005)(66946007)(6116002)(36756003)(1076003)(8936002)(48376002)(50226002)(54906003)(2616005)(305945005)(486006)(5660300002)(6512007)(14454004)(2351001)(446003)(30864003)(6486002)(6666004)(99286004)(66556008)(476003)(66476007)(11346002)(86362001)(6436002)(7736002)(559001)(579004); DIR:OUT; SFP:1101; SCL:1; SRVR:MW2PR12MB2554; H:MW2PR12MB2524.namprd12.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: JF88rLifaDNN8UduGhKhJ3vArYETQU9/4KAzQJFgNVg0CIPP/5dw4hFTpehsVdtLvmwONcxXhHMRNz99JhLuZpeItzHpc+uiUVwBCDdlI6R2/FYRrBFxEZVIZ32jZ9BHm6xnwloE1qEv8oVonBzWvrXrCP3xtmPvhCSbHEzGC+QiouDMvIETWAtsupqoJ2axB3Bs5yG1w5uoTnYNcBs8HUHEncqt4jubnnDCjWBnOG8cMK98NLeavMRIImIFliqJG9GkHAWbQ0O8ZZiFgbRtyxIhBgJL+pHlxIA6vFHFtzLbVu9VlixcYi77+GMzOZhiDbtZiW+aRJrBe1A8nJcLSJMKSFeMYoBWfsgAf6e8feIU4ukBhiS+hOVf1au1DJq1xLgh4v3oA6lPkjzVyX8Y+FJn4rP41Ds0UyRI5vn4/d1CP5qBcy0FujzVl9sZjV9Q X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: b9d5753e-a92e-4ad3-77e3-08d7670804b7 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2019 00:34:03.5145 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: oIKpdZHQUfGNn5gvmrONzXmqii6ftX9Yy6C2aw2BrN3Vv2CHcbPD5Mqq485CG7uY6qq5axIDI7t0Txc2KqvXfg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW2PR12MB2554 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector2-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bOe1wBRv+i3IlxUX7oLprYJJs8//VMEKr+lvt9XnW2U=; b=w8hhuo+DxrUdz1gKvdNwHD67XM56i08HT33o40Gu68DhZOoDELDCiiFJ5GxOw+b/Sp6rfIdB2Yjl9Uv4xpheef2CkH4Z216jSDYJIUj1divvK3USz6E1XlUG1E3rUsJQDxbRXi0+KhBBEX70VkLCt5T8quYTn7VAm8b5hTK0GhU= X-Mailman-Original-Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Rodrigo.Siqueira@amd.com; X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jaehyun Chung , Alvin Lee Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" Message-ID: <20191112003320.KxgxhvdssdFdEnam3ZehUi7SbsESImRONOejk8_uIGA@z> RnJvbTogSmFlaHl1biBDaHVuZyA8amFlaHl1bi5jaHVuZ0BhbWQuY29tPgoKW1doeV0KTmVlZCB2 YWxpZGF0aW9uIHRoYXQgd2UgYXJlIHByb2dyYW1taW5nIHRoZSBleHBlY3RlZCB2YWx1ZXMgKHJx LCB0dHUsIGRsZykKZnJvbSBETUwuIFRoaXMgZGVidWcgZmVhdHVyZSB3aWxsIG91dHB1dCBsb2dz IGlmIHdlIGFyZSBwcm9ncmFtbWluZwppbmNvcnJlY3QgdmFsdWVzIGFuZCBtYXkgaGVscCBkaWZm ZXJlbnRpYXRlIERBTCBpc3N1ZXMgZnJvbSBIVyBpc3N1ZXMuCgpbSG93XQpEdW1wIHJlbGV2YW50 IHJlZ2lzdGVycyBmb3IgZWFjaCBwaXBlIHdpdGggYWN0aXZlIHN0cmVhbS4gQ29tcGFyZSBjdXJy ZW50CnJlZyB2YWx1ZXMgd2l0aCB0aGUgY29udmVydGVkIERNTCBvdXRwdXQuIExvZyBtaXNtYXRj aGVzIHdoZW4gZm91bmQuCgpTaWduZWQtb2ZmLWJ5OiBKYWVoeXVuIENodW5nIDxqYWVoeXVuLmNo dW5nQGFtZC5jb20+ClJldmlld2VkLWJ5OiBBbHZpbiBMZWUgPEFsdmluLkxlZTJAYW1kLmNvbT4K QWNrZWQtYnk6IFJvZHJpZ28gU2lxdWVpcmEgPFJvZHJpZ28uU2lxdWVpcmFAYW1kLmNvbT4KLS0t CiBkcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY29yZS9kYy5jICAgICAgfCAgMTggKy0K IGRyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kYy5oICAgICAgICAgICB8ICAgMSArCiAu Li4vZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9odWJwLmMgfCAzMTAgKysrKysr KysrKysrKysrKwogLi4uL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjEvZGNuMjFfaHVicC5j IHwgMzQ1ICsrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2Rj L2luYy9ody9odWJwLmggIHwgICA3ICsKIDUgZmlsZXMgY2hhbmdlZCwgNjgwIGluc2VydGlvbnMo KyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3Bs YXkvZGMvY29yZS9kYy5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NvcmUvZGMu YwppbmRleCA3YzA0Mzk3ZWI3YWEuLjYwYmM0YzNhNTE4ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NvcmUvZGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2Rpc3BsYXkvZGMvY29yZS9kYy5jCkBAIC0yMTYzLDggKzIxNjMsMjQgQEAgc3RhdGljIHZvaWQg Y29tbWl0X3BsYW5lc19mb3Jfc3RyZWFtKHN0cnVjdCBkYyAqZGMsCiAJCQkJCWRjLCBwaXBlX2N0 eC0+c3RyZWFtLCBzdHJlYW1fc3RhdHVzLT5wbGFuZV9jb3VudCwgY29udGV4dCk7CiAJCX0KIAl9 Ci0JaWYgKGRjLT5od3NzLnByb2dyYW1fZnJvbnRfZW5kX2Zvcl9jdHggJiYgdXBkYXRlX3R5cGUg IT0gVVBEQVRFX1RZUEVfRkFTVCkKKwlpZiAoZGMtPmh3c3MucHJvZ3JhbV9mcm9udF9lbmRfZm9y X2N0eCAmJiB1cGRhdGVfdHlwZSAhPSBVUERBVEVfVFlQRV9GQVNUKSB7CiAJCWRjLT5od3NzLnBy b2dyYW1fZnJvbnRfZW5kX2Zvcl9jdHgoZGMsIGNvbnRleHQpOworI2lmZGVmIENPTkZJR19EUk1f QU1EX0RDX0RDTjFfMAorCQlpZiAoZGMtPmRlYnVnLnZhbGlkYXRlX2RtbF9vdXRwdXQpIHsKKwkJ CWZvciAoaSA9IDA7IGkgPCBkYy0+cmVzX3Bvb2wtPnBpcGVfY291bnQ7IGkrKykgeworCQkJCXN0 cnVjdCBwaXBlX2N0eCBjdXJfcGlwZSA9IGNvbnRleHQtPnJlc19jdHgucGlwZV9jdHhbaV07CisJ CQkJaWYgKGN1cl9waXBlLnN0cmVhbSA9PSBOVUxMKQorCQkJCQljb250aW51ZTsKKworCQkJCWN1 cl9waXBlLnBsYW5lX3Jlcy5odWJwLT5mdW5jcy0+dmFsaWRhdGVfZG1sX291dHB1dCgKKwkJCQkJ CWN1cl9waXBlLnBsYW5lX3Jlcy5odWJwLCBkYy0+Y3R4LAorCQkJCQkJJmNvbnRleHQtPnJlc19j dHgucGlwZV9jdHhbaV0ucnFfcmVncywKKwkJCQkJCSZjb250ZXh0LT5yZXNfY3R4LnBpcGVfY3R4 W2ldLmRsZ19yZWdzLAorCQkJCQkJJmNvbnRleHQtPnJlc19jdHgucGlwZV9jdHhbaV0udHR1X3Jl Z3MpOworCQkJfQorCQl9CisjZW5kaWYKKwl9CiAKIAkvLyBVcGRhdGUgVHlwZSBGQVNULCBTdXJm YWNlIHVwZGF0ZXMKIAlpZiAodXBkYXRlX3R5cGUgPT0gVVBEQVRFX1RZUEVfRkFTVCkgewpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjLmggYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGMuaAppbmRleCAzY2IzNjE5MTdiNGIuLmYzMGM3N2U0NGJi NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjLmgKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjLmgKQEAgLTQxMiw2ICs0MTIsNyBAQCBz dHJ1Y3QgZGNfZGVidWdfb3B0aW9ucyB7CiAKIAlib29sIG52MTJfaWZsaXBfdm1fd2E7CiAJYm9v bCBkaXNhYmxlX2RyYW1fY2xvY2tfY2hhbmdlX3ZhY3RpdmVfc3VwcG9ydDsKKwlib29sIHZhbGlk YXRlX2RtbF9vdXRwdXQ7CiB9OwogCiBzdHJ1Y3QgZGNfZGVidWdfZGF0YSB7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjAvZGNuMjBfaHVicC5jIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX2h1YnAuYwppbmRleCA3ZDlm ZmI4MTU4NGEuLjI4MjNiZTc1YjA3MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9k aXNwbGF5L2RjL2RjbjIwL2RjbjIwX2h1YnAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rp c3BsYXkvZGMvZGNuMjAvZGNuMjBfaHVicC5jCkBAIC0zMCw2ICszMCw4IEBACiAjaW5jbHVkZSAi cmVnX2hlbHBlci5oIgogI2luY2x1ZGUgImJhc2ljcy9jb252ZXJzaW9uLmgiCiAKKyNkZWZpbmUg RENfTE9HR0VSX0lOSVQobG9nZ2VyKQorCiAjZGVmaW5lIFJFRyhyZWcpXAogCWh1YnAyLT5odWJw X3JlZ3MtPnJlZwogCkBAIC0xMjQ0LDYgKzEyNDYsMzEzIEBAIHZvaWQgaHVicDJfcmVhZF9zdGF0 ZShzdHJ1Y3QgaHVicCAqaHVicCkKIAogfQogCit2b2lkIGh1YnAyX3ZhbGlkYXRlX2RtbF9vdXRw dXQoc3RydWN0IGh1YnAgKmh1YnAsCisJCXN0cnVjdCBkY19jb250ZXh0ICpjdHgsCisJCXN0cnVj dCBfdmNzX2RwaV9kaXNwbGF5X3JxX3JlZ3Nfc3QgKmRtbF9ycV9yZWdzLAorCQlzdHJ1Y3QgX3Zj c19kcGlfZGlzcGxheV9kbGdfcmVnc19zdCAqZG1sX2RsZ19hdHRyLAorCQlzdHJ1Y3QgX3Zjc19k cGlfZGlzcGxheV90dHVfcmVnc19zdCAqZG1sX3R0dV9hdHRyKQoreworCXN0cnVjdCBkY24yMF9o dWJwICpodWJwMiA9IFRPX0RDTjIwX0hVQlAoaHVicCk7CisJc3RydWN0IF92Y3NfZHBpX2Rpc3Bs YXlfcnFfcmVnc19zdCBycV9yZWdzID0gezB9OworCXN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X2Rs Z19yZWdzX3N0IGRsZ19hdHRyID0gezB9OworCXN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3R0dV9y ZWdzX3N0IHR0dV9hdHRyID0gezB9OworCURDX0xPR0dFUl9JTklUKGN0eC0+bG9nZ2VyKTsKKwor CS8qIFJlcXVlc3RvciBSZWdzICovCisJUkVHX0dFVChIVUJQUkVUX0NPTlRST0wsCisJCURFVF9C VUZfUExBTkUxX0JBU0VfQUREUkVTUywgJnJxX3JlZ3MucGxhbmUxX2Jhc2VfYWRkcmVzcyk7CisJ UkVHX0dFVF80KERDTl9FWFBBTlNJT05fTU9ERSwKKwkJRFJRX0VYUEFOU0lPTl9NT0RFLCAmcnFf cmVncy5kcnFfZXhwYW5zaW9uX21vZGUsCisJCVBSUV9FWFBBTlNJT05fTU9ERSwgJnJxX3JlZ3Mu cHJxX2V4cGFuc2lvbl9tb2RlLAorCQlNUlFfRVhQQU5TSU9OX01PREUsICZycV9yZWdzLm1ycV9l eHBhbnNpb25fbW9kZSwKKwkJQ1JRX0VYUEFOU0lPTl9NT0RFLCAmcnFfcmVncy5jcnFfZXhwYW5z aW9uX21vZGUpOworCVJFR19HRVRfOChEQ0hVQlBfUkVRX1NJWkVfQ09ORklHLAorCQlDSFVOS19T SVpFLCAmcnFfcmVncy5ycV9yZWdzX2wuY2h1bmtfc2l6ZSwKKwkJTUlOX0NIVU5LX1NJWkUsICZy cV9yZWdzLnJxX3JlZ3NfbC5taW5fY2h1bmtfc2l6ZSwKKwkJTUVUQV9DSFVOS19TSVpFLCAmcnFf cmVncy5ycV9yZWdzX2wubWV0YV9jaHVua19zaXplLAorCQlNSU5fTUVUQV9DSFVOS19TSVpFLCAm cnFfcmVncy5ycV9yZWdzX2wubWluX21ldGFfY2h1bmtfc2l6ZSwKKwkJRFBURV9HUk9VUF9TSVpF LCAmcnFfcmVncy5ycV9yZWdzX2wuZHB0ZV9ncm91cF9zaXplLAorCQlNUFRFX0dST1VQX1NJWkUs ICZycV9yZWdzLnJxX3JlZ3NfbC5tcHRlX2dyb3VwX3NpemUsCisJCVNXQVRIX0hFSUdIVCwgJnJx X3JlZ3MucnFfcmVnc19sLnN3YXRoX2hlaWdodCwKKwkJUFRFX1JPV19IRUlHSFRfTElORUFSLCAm cnFfcmVncy5ycV9yZWdzX2wucHRlX3Jvd19oZWlnaHRfbGluZWFyKTsKKwlSRUdfR0VUXzgoRENI VUJQX1JFUV9TSVpFX0NPTkZJR19DLAorCQlDSFVOS19TSVpFX0MsICZycV9yZWdzLnJxX3JlZ3Nf Yy5jaHVua19zaXplLAorCQlNSU5fQ0hVTktfU0laRV9DLCAmcnFfcmVncy5ycV9yZWdzX2MubWlu X2NodW5rX3NpemUsCisJCU1FVEFfQ0hVTktfU0laRV9DLCAmcnFfcmVncy5ycV9yZWdzX2MubWV0 YV9jaHVua19zaXplLAorCQlNSU5fTUVUQV9DSFVOS19TSVpFX0MsICZycV9yZWdzLnJxX3JlZ3Nf Yy5taW5fbWV0YV9jaHVua19zaXplLAorCQlEUFRFX0dST1VQX1NJWkVfQywgJnJxX3JlZ3MucnFf cmVnc19jLmRwdGVfZ3JvdXBfc2l6ZSwKKwkJTVBURV9HUk9VUF9TSVpFX0MsICZycV9yZWdzLnJx X3JlZ3NfYy5tcHRlX2dyb3VwX3NpemUsCisJCVNXQVRIX0hFSUdIVF9DLCAmcnFfcmVncy5ycV9y ZWdzX2Muc3dhdGhfaGVpZ2h0LAorCQlQVEVfUk9XX0hFSUdIVF9MSU5FQVJfQywgJnJxX3JlZ3Mu cnFfcmVnc19jLnB0ZV9yb3dfaGVpZ2h0X2xpbmVhcik7CisKKwlpZiAocnFfcmVncy5wbGFuZTFf YmFzZV9hZGRyZXNzICE9IGRtbF9ycV9yZWdzLT5wbGFuZTFfYmFzZV9hZGRyZXNzKQorCQlEQ19M T0dfREVCVUcoIkRNTCBWYWxpZGF0aW9uIHwgSFVCUFJFVF9DT05UUk9MOkRFVF9CVUZfUExBTkUx X0JBU0VfQUREUkVTUyAtIEV4cGVjdGVkOiAldSAgQWN0dWFsOiAldVxuIiwKKwkJCQlkbWxfcnFf cmVncy0+cGxhbmUxX2Jhc2VfYWRkcmVzcywgcnFfcmVncy5wbGFuZTFfYmFzZV9hZGRyZXNzKTsK KwlpZiAocnFfcmVncy5kcnFfZXhwYW5zaW9uX21vZGUgIT0gZG1sX3JxX3JlZ3MtPmRycV9leHBh bnNpb25fbW9kZSkKKwkJRENfTE9HX0RFQlVHKCJETUwgVmFsaWRhdGlvbiB8IERDTl9FWFBBTlNJ T05fTU9ERTpEUlFfRVhQQU5TSU9OX01PREUgLSBFeHBlY3RlZDogJXUgIEFjdHVhbDogJXVcbiIs CisJCQkJZG1sX3JxX3JlZ3MtPmRycV9leHBhbnNpb25fbW9kZSwgcnFfcmVncy5kcnFfZXhwYW5z aW9uX21vZGUpOworCWlmIChycV9yZWdzLnBycV9leHBhbnNpb25fbW9kZSAhPSBkbWxfcnFfcmVn cy0+cHJxX2V4cGFuc2lvbl9tb2RlKQorCQlEQ19MT0dfREVCVUcoIkRNTCBWYWxpZGF0aW9uIHwg RENOX0VYUEFOU0lPTl9NT0RFOk1SUV9FWFBBTlNJT05fTU9ERSAtIEV4cGVjdGVkOiAldSAgQWN0 dWFsOiAldVxuIiwKKwkJCQlkbWxfcnFfcmVncy0+cHJxX2V4cGFuc2lvbl9tb2RlLCBycV9yZWdz LnBycV9leHBhbnNpb25fbW9kZSk7CisJaWYgKHJxX3JlZ3MubXJxX2V4cGFuc2lvbl9tb2RlICE9 IGRtbF9ycV9yZWdzLT5tcnFfZXhwYW5zaW9uX21vZGUpCisJCURDX0xPR19ERUJVRygiRE1MIFZh bGlkYXRpb24gfCBEQ05fRVhQQU5TSU9OX01PREU6REVUX0JVRl9QTEFORTFfQkFTRV9BRERSRVNT IC0gRXhwZWN0ZWQ6ICV1ICBBY3R1YWw6ICV1XG4iLAorCQkJCWRtbF9ycV9yZWdzLT5tcnFfZXhw YW5zaW9uX21vZGUsIHJxX3JlZ3MubXJxX2V4cGFuc2lvbl9tb2RlKTsKKwlpZiAocnFfcmVncy5j cnFfZXhwYW5zaW9uX21vZGUgIT0gZG1sX3JxX3JlZ3MtPmNycV9leHBhbnNpb25fbW9kZSkKKwkJ RENfTE9HX0RFQlVHKCJETUwgVmFsaWRhdGlvbiB8IERDTl9FWFBBTlNJT05fTU9ERTpDUlFfRVhQ QU5TSU9OX01PREUgLSBFeHBlY3RlZDogJXUgIEFjdHVhbDogJXVcbiIsCisJCQkJZG1sX3JxX3Jl Z3MtPmNycV9leHBhbnNpb25fbW9kZSwgcnFfcmVncy5jcnFfZXhwYW5zaW9uX21vZGUpOworCisJ aWYgKHJxX3JlZ3MucnFfcmVnc19sLmNodW5rX3NpemUgIT0gZG1sX3JxX3JlZ3MtPnJxX3JlZ3Nf bC5jaHVua19zaXplKQorCQlEQ19MT0dfREVCVUcoIkRNTCBWYWxpZGF0aW9uIHwgRENIVUJQX1JF UV9TSVpFX0NPTkZJR19DOkNIVU5LX1NJWkUgLSBFeHBlY3RlZDogJXUgIEFjdHVhbDogJXVcbiIs CisJCQkJZG1sX3JxX3JlZ3MtPnJxX3JlZ3NfbC5jaHVua19zaXplLCBycV9yZWdzLnJxX3JlZ3Nf bC5jaHVua19zaXplKTsKKwlpZiAocnFfcmVncy5ycV9yZWdzX2wubWluX2NodW5rX3NpemUgIT0g ZG1sX3JxX3JlZ3MtPnJxX3JlZ3NfbC5taW5fY2h1bmtfc2l6ZSkKKwkJRENfTE9HX0RFQlVHKCJE TUwgVmFsaWRhdGlvbiB8IERDSFVCUF9SRVFfU0laRV9DT05GSUdfQzpNSU5fQ0hVTktfU0laRSAt IEV4cGVjdGVkOiAldSAgQWN0dWFsOiAldVxuIiwKKwkJCQlkbWxfcnFfcmVncy0+cnFfcmVnc19s Lm1pbl9jaHVua19zaXplLCBycV9yZWdzLnJxX3JlZ3NfbC5taW5fY2h1bmtfc2l6ZSk7CisJaWYg KHJxX3JlZ3MucnFfcmVnc19sLm1ldGFfY2h1bmtfc2l6ZSAhPSBkbWxfcnFfcmVncy0+cnFfcmVn c19sLm1ldGFfY2h1bmtfc2l6ZSkKKwkJRENfTE9HX0RFQlVHKCJETUwgVmFsaWRhdGlvbiB8IERD SFVCUF9SRVFfU0laRV9DT05GSUdfQzpNRVRBX0NIVU5LX1NJWkUgLSBFeHBlY3RlZDogJXUgIEFj dHVhbDogJXVcbiIsCisJCQkJZG1sX3JxX3JlZ3MtPnJxX3JlZ3NfbC5tZXRhX2NodW5rX3NpemUs IHJxX3JlZ3MucnFfcmVnc19sLm1ldGFfY2h1bmtfc2l6ZSk7CisJaWYgKHJxX3JlZ3MucnFfcmVn c19sLm1pbl9tZXRhX2NodW5rX3NpemUgIT0gZG1sX3JxX3JlZ3MtPnJxX3JlZ3NfbC5taW5fbWV0 YV9jaHVua19zaXplKQorCQlEQ19MT0dfREVCVUcoIkRNTCBWYWxpZGF0aW9uIHwgRENIVUJQX1JF UV9TSVpFX0NPTkZJR19DOk1JTl9NRVRBX0NIVU5LX1NJWkUgLSBFeHBlY3RlZDogJXUgIEFjdHVh bDogJXVcbiIsCisJCQkJZG1sX3JxX3JlZ3MtPnJxX3JlZ3NfbC5taW5fbWV0YV9jaHVua19zaXpl LCBycV9yZWdzLnJxX3JlZ3NfbC5taW5fbWV0YV9jaHVua19zaXplKTsKKwlpZiAocnFfcmVncy5y cV9yZWdzX2wuZHB0ZV9ncm91cF9zaXplICE9IGRtbF9ycV9yZWdzLT5ycV9yZWdzX2wuZHB0ZV9n cm91cF9zaXplKQorCQlEQ19MT0dfREVCVUcoIkRNTCBWYWxpZGF0aW9uIHwgRENIVUJQX1JFUV9T SVpFX0NPTkZJR19DOkRQVEVfR1JPVVBfU0laRSAtIEV4cGVjdGVkOiAldSAgQWN0dWFsOiAldVxu IiwKKwkJCQlkbWxfcnFfcmVncy0+cnFfcmVnc19sLmRwdGVfZ3JvdXBfc2l6ZSwgcnFfcmVncy5y cV9yZWdzX2wuZHB0ZV9ncm91cF9zaXplKTsKKwlpZiAocnFfcmVncy5ycV9yZWdzX2wubXB0ZV9n cm91cF9zaXplICE9IGRtbF9ycV9yZWdzLT5ycV9yZWdzX2wubXB0ZV9ncm91cF9zaXplKQorCQlE Q19MT0dfREVCVUcoIkRNTCBWYWxpZGF0aW9uIHwgRENIVUJQX1JFUV9TSVpFX0NPTkZJR19DOk1Q VEVfR1JPVVBfU0laRSAtIEV4cGVjdGVkOiAldSAgQWN0dWFsOiAldVxuIiwKKwkJCQlkbWxfcnFf cmVncy0+cnFfcmVnc19sLm1wdGVfZ3JvdXBfc2l6ZSwgcnFfcmVncy5ycV9yZWdzX2wubXB0ZV9n cm91cF9zaXplKTsKKwlpZiAocnFfcmVncy5ycV9yZWdzX2wuc3dhdGhfaGVpZ2h0ICE9IGRtbF9y cV9yZWdzLT5ycV9yZWdzX2wuc3dhdGhfaGVpZ2h0KQorCQlEQ19MT0dfREVCVUcoIkRNTCBWYWxp ZGF0aW9uIHwgRENIVUJQX1JFUV9TSVpFX0NPTkZJR19DOlNXQVRIX0hFSUdIVCAtIEV4cGVjdGVk OiAldSAgQWN0dWFsOiAldVxuIiwKKwkJCQlkbWxfcnFfcmVncy0+cnFfcmVnc19sLnN3YXRoX2hl aWdodCwgcnFfcmVncy5ycV9yZWdzX2wuc3dhdGhfaGVpZ2h0KTsKKwlpZiAocnFfcmVncy5ycV9y ZWdzX2wucHRlX3Jvd19oZWlnaHRfbGluZWFyICE9IGRtbF9ycV9yZWdzLT5ycV9yZWdzX2wucHRl X3Jvd19oZWlnaHRfbGluZWFyKQorCQlEQ19MT0dfREVCVUcoIkRNTCBWYWxpZGF0aW9uIHwgRENI VUJQX1JFUV9TSVpFX0NPTkZJR19DOlBURV9ST1dfSEVJR0hUX0xJTkVBUiAtIEV4cGVjdGVkOiAl dSAgQWN0dWFsOiAldVxuIiwKKwkJCQlkbWxfcnFfcmVncy0+cnFfcmVnc19sLnB0ZV9yb3dfaGVp Z2h0X2xpbmVhciwgcnFfcmVncy5ycV9yZWdzX2wucHRlX3Jvd19oZWlnaHRfbGluZWFyKTsKKwor CWlmIChycV9yZWdzLnJxX3JlZ3NfYy5jaHVua19zaXplICE9IGRtbF9ycV9yZWdzLT5ycV9yZWdz X2MuY2h1bmtfc2l6ZSkKKwkJRENfTE9HX0RFQlVHKCJETUwgVmFsaWRhdGlvbiB8IERDSFVCUF9S RVFfU0laRV9DT05GSUc6Q0hVTktfU0laRV9DIC0gRXhwZWN0ZWQ6ICV1ICBBY3R1YWw6ICV1XG4i LAorCQkJCWRtbF9ycV9yZWdzLT5ycV9yZWdzX2MuY2h1bmtfc2l6ZSwgcnFfcmVncy5ycV9yZWdz X2MuY2h1bmtfc2l6ZSk7CisJaWYgKHJxX3JlZ3MucnFfcmVnc19jLm1pbl9jaHVua19zaXplICE9 IGRtbF9ycV9yZWdzLT5ycV9yZWdzX2MubWluX2NodW5rX3NpemUpCisJCURDX0xPR19ERUJVRygi RE1MIFZhbGlkYXRpb24gfCBEQ0hVQlBfUkVRX1NJWkVfQ09ORklHOk1JTl9DSFVOS19TSVpFX0Mg LSBFeHBlY3RlZDogJXUgIEFjdHVhbDogJXVcbiIsCisJCQkJZG1sX3JxX3JlZ3MtPnJxX3JlZ3Nf Yy5taW5fY2h1bmtfc2l6ZSwgcnFfcmVncy5ycV9yZWdzX2MubWluX2NodW5rX3NpemUpOworCWlm IChycV9yZWdzLnJxX3JlZ3NfYy5tZXRhX2NodW5rX3NpemUgIT0gZG1sX3JxX3JlZ3MtPnJxX3Jl Z3NfYy5tZXRhX2NodW5rX3NpemUpCisJCURDX0xPR19ERUJVRygiRE1MIFZhbGlkYXRpb24gfCBE Q0hVQlBfUkVRX1NJWkVfQ09ORklHOk1FVEFfQ0hVTktfU0laRV9DIC0gRXhwZWN0ZWQ6ICV1ICBB Y3R1YWw6ICV1XG4iLAorCQkJCWRtbF9ycV9yZWdzLT5ycV9yZWdzX2MubWV0YV9jaHVua19zaXpl LCBycV9yZWdzLnJxX3JlZ3NfYy5tZXRhX2NodW5rX3NpemUpOworCWlmIChycV9yZWdzLnJxX3Jl Z3NfYy5taW5fbWV0YV9jaHVua19zaXplICE9IGRtbF9ycV9yZWdzLT5ycV9yZWdzX2MubWluX21l dGFfY2h1bmtfc2l6ZSkKKwkJRENfTE9HX0RFQlVHKCJETUwgVmFsaWRhdGlvbiB8IERDSFVCUF9S RVFfU0laRV9DT05GSUc6TUlOX01FVEFfQ0hVTktfU0laRV9DIC0gRXhwZWN0ZWQ6ICV1ICBBY3R1 YWw6ICV1XG4iLAorCQkJCWRtbF9ycV9yZWdzLT5ycV9yZWdzX2MubWluX21ldGFfY2h1bmtfc2l6 ZSwgcnFfcmVncy5ycV9yZWdzX2MubWluX21ldGFfY2h1bmtfc2l6ZSk7CisJaWYgKHJxX3JlZ3Mu cnFfcmVnc19jLmRwdGVfZ3JvdXBfc2l6ZSAhPSBkbWxfcnFfcmVncy0+cnFfcmVnc19jLmRwdGVf Z3JvdXBfc2l6ZSkKKwkJRENfTE9HX0RFQlVHKCJETUwgVmFsaWRhdGlvbiB8IERDSFVCUF9SRVFf U0laRV9DT05GSUc6RFBURV9HUk9VUF9TSVpFX0MgLSBFeHBlY3RlZDogJXUgIEFjdHVhbDogJXVc biIsCisJCQkJZG1sX3JxX3JlZ3MtPnJxX3JlZ3NfYy5kcHRlX2dyb3VwX3NpemUsIHJxX3JlZ3Mu cnFfcmVnc19jLmRwdGVfZ3JvdXBfc2l6ZSk7CisJaWYgKHJxX3JlZ3MucnFfcmVnc19jLm1wdGVf Z3JvdXBfc2l6ZSAhPSBkbWxfcnFfcmVncy0+cnFfcmVnc19jLm1wdGVfZ3JvdXBfc2l6ZSkKKwkJ RENfTE9HX0RFQlVHKCJETUwgVmFsaWRhdGlvbiB8IERDSFVCUF9SRVFfU0laRV9DT05GSUc6TVBU RV9HUk9VUF9TSVpFX0MgLSBFeHBlY3RlZDogJXUgIEFjdHVhbDogJXVcbiIsCisJCQkJZG1sX3Jx X3JlZ3MtPnJxX3JlZ3NfYy5tcHRlX2dyb3VwX3NpemUsIHJxX3JlZ3MucnFfcmVnc19jLm1wdGVf Z3JvdXBfc2l6ZSk7CisJaWYgKHJxX3JlZ3MucnFfcmVnc19jLnN3YXRoX2hlaWdodCAhPSBkbWxf cnFfcmVncy0+cnFfcmVnc19jLnN3YXRoX2hlaWdodCkKKwkJRENfTE9HX0RFQlVHKCJETUwgVmFs aWRhdGlvbiB8IERDSFVCUF9SRVFfU0laRV9DT05GSUc6U1dBVEhfSEVJR0hUX0MgLSBFeHBlY3Rl ZDogJXUgIEFjdHVhbDogJXVcbiIsCisJCQkJZG1sX3JxX3JlZ3MtPnJxX3JlZ3NfYy5zd2F0aF9o ZWlnaHQsIHJxX3JlZ3MucnFfcmVnc19jLnN3YXRoX2hlaWdodCk7CisJaWYgKHJxX3JlZ3MucnFf cmVnc19jLnB0ZV9yb3dfaGVpZ2h0X2xpbmVhciAhPSBkbWxfcnFfcmVncy0+cnFfcmVnc19jLnB0 ZV9yb3dfaGVpZ2h0X2xpbmVhcikKKwkJRENfTE9HX0RFQlVHKCJETUwgVmFsaWRhdGlvbiB8IERD SFVCUF9SRVFfU0laRV9DT05GSUc6UFRFX1JPV19IRUlHSFRfTElORUFSX0MgLSBFeHBlY3RlZDog JXUgIEFjdHVhbDogJXVcbiIsCisJCQkJZG1sX3JxX3JlZ3MtPnJxX3JlZ3NfYy5wdGVfcm93X2hl aWdodF9saW5lYXIsIHJxX3JlZ3MucnFfcmVnc19jLnB0ZV9yb3dfaGVpZ2h0X2xpbmVhcik7CisK KwkvKiBETEcgLSBQZXIgaHVicCAqLworCVJFR19HRVRfMihCTEFOS19PRkZTRVRfMCwKKwkJUkVG Q1lDX0hfQkxBTktfRU5ELCAmZGxnX2F0dHIucmVmY3ljX2hfYmxhbmtfZW5kLAorCQlETEdfVl9C TEFOS19FTkQsICZkbGdfYXR0ci5kbGdfdmJsYW5rX2VuZCk7CisJUkVHX0dFVChCTEFOS19PRkZT RVRfMSwKKwkJTUlOX0RTVF9ZX05FWFRfU1RBUlQsICZkbGdfYXR0ci5taW5fZHN0X3lfbmV4dF9z dGFydCk7CisJUkVHX0dFVChEU1RfRElNRU5TSU9OUywKKwkJUkVGQ1lDX1BFUl9IVE9UQUwsICZk bGdfYXR0ci5yZWZjeWNfcGVyX2h0b3RhbCk7CisJUkVHX0dFVF8yKERTVF9BRlRFUl9TQ0FMRVIs CisJCVJFRkNZQ19YX0FGVEVSX1NDQUxFUiwgJmRsZ19hdHRyLnJlZmN5Y194X2FmdGVyX3NjYWxl ciwKKwkJRFNUX1lfQUZURVJfU0NBTEVSLCAmZGxnX2F0dHIuZHN0X3lfYWZ0ZXJfc2NhbGVyKTsK KwlSRUdfR0VUKFJFRl9GUkVRX1RPX1BJWF9GUkVRLAorCQlSRUZfRlJFUV9UT19QSVhfRlJFUSwg JmRsZ19hdHRyLnJlZl9mcmVxX3RvX3BpeF9mcmVxKTsKKworCWlmIChkbGdfYXR0ci5yZWZjeWNf aF9ibGFua19lbmQgIT0gZG1sX2RsZ19hdHRyLT5yZWZjeWNfaF9ibGFua19lbmQpCisJCURDX0xP R19ERUJVRygiRE1MIFZhbGlkYXRpb24gfCBCTEFOS19PRkZTRVRfMDpSRUZDWUNfSF9CTEFOS19F TkQgLSBFeHBlY3RlZDogJXUgIEFjdHVhbDogJXVcbiIsCisJCQkJZG1sX2RsZ19hdHRyLT5yZWZj eWNfaF9ibGFua19lbmQsIGRsZ19hdHRyLnJlZmN5Y19oX2JsYW5rX2VuZCk7CisJaWYgKGRsZ19h dHRyLmRsZ192YmxhbmtfZW5kICE9IGRtbF9kbGdfYXR0ci0+ZGxnX3ZibGFua19lbmQpCisJCURD X0xPR19ERUJVRygiRE1MIFZhbGlkYXRpb24gfCBCTEFOS19PRkZTRVRfMDpETEdfVl9CTEFOS19F TkQgLSBFeHBlY3RlZDogJXUgIEFjdHVhbDogJXVcbiIsCisJCQkJZG1sX2RsZ19hdHRyLT5kbGdf dmJsYW5rX2VuZCwgZGxnX2F0dHIuZGxnX3ZibGFua19lbmQpOworCWlmIChkbGdfYXR0ci5taW5f ZHN0X3lfbmV4dF9zdGFydCAhPSBkbWxfZGxnX2F0dHItPm1pbl9kc3RfeV9uZXh0X3N0YXJ0KQor CQlEQ19MT0dfREVCVUcoIkRNTCBWYWxpZGF0aW9uIHwgQkxBTktfT0ZGU0VUXzE6TUlOX0RTVF9Z X05FWFRfU1RBUlQgLSBFeHBlY3RlZDogJXUgIEFjdHVhbDogJXVcbiIsCisJCQkJZG1sX2RsZ19h dHRyLT5taW5fZHN0X3lfbmV4dF9zdGFydCwgZGxnX2F0dHIubWluX2RzdF95X25leHRfc3RhcnQp OworCWlmIChkbGdfYXR0ci5yZWZjeWNfcGVyX2h0b3RhbCAhPSBkbWxfZGxnX2F0dHItPnJlZmN5 Y19wZXJfaHRvdGFsKQorCQlEQ19MT0dfREVCVUcoIkRNTCBWYWxpZGF0aW9uIHwgRFNUX0RJTUVO U0lPTlM6UkVGQ1lDX1BFUl9IVE9UQUwgLSBFeHBlY3RlZDogJXUgIEFjdHVhbDogJXVcbiIsCisJ CQkJZG1sX2RsZ19hdHRyLT5yZWZjeWNfcGVyX2h0b3RhbCwgZGxnX2F0dHIucmVmY3ljX3Blcl9o dG90YWwpOworCWlmIChkbGdfYXR0ci5yZWZjeWNfeF9hZnRlcl9zY2FsZXIgIT0gZG1sX2RsZ19h dHRyLT5yZWZjeWNfeF9hZnRlcl9zY2FsZXIpCisJCURDX0xPR19ERUJVRygiRE1MIFZhbGlkYXRp b24gfCBEU1RfQUZURVJfU0NBTEVSOlJFRkNZQ19YX0FGVEVSX1NDQUxFUiAtIEV4cGVjdGVkOiAl dSAgQWN0dWFsOiAldVxuIiwKKwkJCQlkbWxfZGxnX2F0dHItPnJlZmN5Y194X2FmdGVyX3NjYWxl ciwgZGxnX2F0dHIucmVmY3ljX3hfYWZ0ZXJfc2NhbGVyKTsKKwlpZiAoZGxnX2F0dHIuZHN0X3lf YWZ0ZXJfc2NhbGVyICE9IGRtbF9kbGdfYXR0ci0+ZHN0X3lfYWZ0ZXJfc2NhbGVyKQorCQlEQ19M T0dfREVCVUcoIkRNTCBWYWxpZGF0aW9uIHwgRFNUX0FGVEVSX1NDQUxFUjpEU1RfWV9BRlRFUl9T Q0FMRVIgLSBFeHBlY3RlZDogJXUgIEFjdHVhbDogJXVcbiIsCisJCQkJZG1sX2RsZ19hdHRyLT5k c3RfeV9hZnRlcl9zY2FsZXIsIGRsZ19hdHRyLmRzdF95X2FmdGVyX3NjYWxlcik7CisJaWYgKGRs Z19hdHRyLnJlZl9mcmVxX3RvX3BpeF9mcmVxICE9IGRtbF9kbGdfYXR0ci0+cmVmX2ZyZXFfdG9f cGl4X2ZyZXEpCisJCURDX0xPR19ERUJVRygiRE1MIFZhbGlkYXRpb24gfCBSRUZfRlJFUV9UT19Q SVhfRlJFUTpSRUZfRlJFUV9UT19QSVhfRlJFUSAtIEV4cGVjdGVkOiAldSAgQWN0dWFsOiAldVxu IiwKKwkJCQlkbWxfZGxnX2F0dHItPnJlZl9mcmVxX3RvX3BpeF9mcmVxLCBkbGdfYXR0ci5yZWZf ZnJlcV90b19waXhfZnJlcSk7CisKKwkvKiBETEcgLSBQZXIgbHVtYS9jaHJvbWEgKi8KKwlSRUdf R0VUKFZCTEFOS19QQVJBTUVURVJTXzEsCisJCVJFRkNZQ19QRVJfUFRFX0dST1VQX1ZCTEFOS19M LCAmZGxnX2F0dHIucmVmY3ljX3Blcl9wdGVfZ3JvdXBfdmJsYW5rX2wpOworCWlmIChSRUcoTk9N X1BBUkFNRVRFUlNfMCkpCisJCVJFR19HRVQoTk9NX1BBUkFNRVRFUlNfMCwKKwkJCURTVF9ZX1BF Ul9QVEVfUk9XX05PTV9MLCAmZGxnX2F0dHIuZHN0X3lfcGVyX3B0ZV9yb3dfbm9tX2wpOworCWlm IChSRUcoTk9NX1BBUkFNRVRFUlNfMSkpCisJCVJFR19HRVQoTk9NX1BBUkFNRVRFUlNfMSwKKwkJ CVJFRkNZQ19QRVJfUFRFX0dST1VQX05PTV9MLCAmZGxnX2F0dHIucmVmY3ljX3Blcl9wdGVfZ3Jv dXBfbm9tX2wpOworCVJFR19HRVQoTk9NX1BBUkFNRVRFUlNfNCwKKwkJRFNUX1lfUEVSX01FVEFf Uk9XX05PTV9MLCAmZGxnX2F0dHIuZHN0X3lfcGVyX21ldGFfcm93X25vbV9sKTsKKwlSRUdfR0VU KE5PTV9QQVJBTUVURVJTXzUsCisJCVJFRkNZQ19QRVJfTUVUQV9DSFVOS19OT01fTCwgJmRsZ19h dHRyLnJlZmN5Y19wZXJfbWV0YV9jaHVua19ub21fbCk7CisJUkVHX0dFVF8yKFBFUl9MSU5FX0RF TElWRVJZLAorCQlSRUZDWUNfUEVSX0xJTkVfREVMSVZFUllfTCwgJmRsZ19hdHRyLnJlZmN5Y19w ZXJfbGluZV9kZWxpdmVyeV9sLAorCQlSRUZDWUNfUEVSX0xJTkVfREVMSVZFUllfQywgJmRsZ19h dHRyLnJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9jKTsKKwlSRUdfR0VUXzIoUEVSX0xJTkVfREVM SVZFUllfUFJFLAorCQlSRUZDWUNfUEVSX0xJTkVfREVMSVZFUllfUFJFX0wsICZkbGdfYXR0ci5y ZWZjeWNfcGVyX2xpbmVfZGVsaXZlcnlfcHJlX2wsCisJCVJFRkNZQ19QRVJfTElORV9ERUxJVkVS WV9QUkVfQywgJmRsZ19hdHRyLnJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9wcmVfYyk7CisJUkVH X0dFVChWQkxBTktfUEFSQU1FVEVSU18yLAorCQlSRUZDWUNfUEVSX1BURV9HUk9VUF9WQkxBTktf QywgJmRsZ19hdHRyLnJlZmN5Y19wZXJfcHRlX2dyb3VwX3ZibGFua19jKTsKKwlpZiAoUkVHKE5P TV9QQVJBTUVURVJTXzIpKQorCQlSRUdfR0VUKE5PTV9QQVJBTUVURVJTXzIsCisJCQlEU1RfWV9Q RVJfUFRFX1JPV19OT01fQywgJmRsZ19hdHRyLmRzdF95X3Blcl9wdGVfcm93X25vbV9jKTsKKwlp ZiAoUkVHKE5PTV9QQVJBTUVURVJTXzMpKQorCQlSRUdfR0VUKE5PTV9QQVJBTUVURVJTXzMsCisJ CQlSRUZDWUNfUEVSX1BURV9HUk9VUF9OT01fQywgJmRsZ19hdHRyLnJlZmN5Y19wZXJfcHRlX2dy b3VwX25vbV9jKTsKKwlSRUdfR0VUKE5PTV9QQVJBTUVURVJTXzYsCisJCURTVF9ZX1BFUl9NRVRB X1JPV19OT01fQywgJmRsZ19hdHRyLmRzdF95X3Blcl9tZXRhX3Jvd19ub21fYyk7CisJUkVHX0dF VChOT01fUEFSQU1FVEVSU183LAorCQlSRUZDWUNfUEVSX01FVEFfQ0hVTktfTk9NX0MsICZkbGdf YXR0ci5yZWZjeWNfcGVyX21ldGFfY2h1bmtfbm9tX2MpOworCVJFR19HRVQoVkJMQU5LX1BBUkFN RVRFUlNfMywKKwkJCVJFRkNZQ19QRVJfTUVUQV9DSFVOS19WQkxBTktfTCwgJmRsZ19hdHRyLnJl ZmN5Y19wZXJfbWV0YV9jaHVua192YmxhbmtfbCk7CisJUkVHX0dFVChWQkxBTktfUEFSQU1FVEVS U180LAorCQkJUkVGQ1lDX1BFUl9NRVRBX0NIVU5LX1ZCTEFOS19DLCAmZGxnX2F0dHIucmVmY3lj X3Blcl9tZXRhX2NodW5rX3ZibGFua19jKTsKKworCWlmIChkbGdfYXR0ci5yZWZjeWNfcGVyX3B0 ZV9ncm91cF92YmxhbmtfbCAhPSBkbWxfZGxnX2F0dHItPnJlZmN5Y19wZXJfcHRlX2dyb3VwX3Zi bGFua19sKQorCQlEQ19MT0dfREVCVUcoIkRNTCBWYWxpZGF0aW9uIHwgVkJMQU5LX1BBUkFNRVRF UlNfMTpSRUZDWUNfUEVSX1BURV9HUk9VUF9WQkxBTktfTCAtIEV4cGVjdGVkOiAldSAgQWN0dWFs OiAldVxuIiwKKwkJCQlkbWxfZGxnX2F0dHItPnJlZmN5Y19wZXJfcHRlX2dyb3VwX3ZibGFua19s LCBkbGdfYXR0ci5yZWZjeWNfcGVyX3B0ZV9ncm91cF92YmxhbmtfbCk7CisJaWYgKGRsZ19hdHRy LmRzdF95X3Blcl9wdGVfcm93X25vbV9sICE9IGRtbF9kbGdfYXR0ci0+ZHN0X3lfcGVyX3B0ZV9y b3dfbm9tX2wpCisJCURDX0xPR19ERUJVRygiRE1MIFZhbGlkYXRpb24gfCBOT01fUEFSQU1FVEVS U18wOkRTVF9ZX1BFUl9QVEVfUk9XX05PTV9MIC0gRXhwZWN0ZWQ6ICV1ICBBY3R1YWw6ICV1XG4i LAorCQkJCWRtbF9kbGdfYXR0ci0+ZHN0X3lfcGVyX3B0ZV9yb3dfbm9tX2wsIGRsZ19hdHRyLmRz dF95X3Blcl9wdGVfcm93X25vbV9sKTsKKwlpZiAoZGxnX2F0dHIucmVmY3ljX3Blcl9wdGVfZ3Jv dXBfbm9tX2wgIT0gZG1sX2RsZ19hdHRyLT5yZWZjeWNfcGVyX3B0ZV9ncm91cF9ub21fbCkKKwkJ RENfTE9HX0RFQlVHKCJETUwgVmFsaWRhdGlvbiB8IE5PTV9QQVJBTUVURVJTXzE6UkVGQ1lDX1BF Ul9QVEVfR1JPVVBfTk9NX0wgLSBFeHBlY3RlZDogJXUgIEFjdHVhbDogJXVcbiIsCisJCQkJZG1s X2RsZ19hdHRyLT5yZWZjeWNfcGVyX3B0ZV9ncm91cF9ub21fbCwgZGxnX2F0dHIucmVmY3ljX3Bl cl9wdGVfZ3JvdXBfbm9tX2wpOworCWlmIChkbGdfYXR0ci5kc3RfeV9wZXJfbWV0YV9yb3dfbm9t X2wgIT0gZG1sX2RsZ19hdHRyLT5kc3RfeV9wZXJfbWV0YV9yb3dfbm9tX2wpCisJCURDX0xPR19E RUJVRygiRE1MIFZhbGlkYXRpb24gfCBOT01fUEFSQU1FVEVSU180OkRTVF9ZX1BFUl9NRVRBX1JP V19OT01fTCAtIEV4cGVjdGVkOiAldSAgQWN0dWFsOiAldVxuIiwKKwkJCQlkbWxfZGxnX2F0dHIt PmRzdF95X3Blcl9tZXRhX3Jvd19ub21fbCwgZGxnX2F0dHIuZHN0X3lfcGVyX21ldGFfcm93X25v bV9sKTsKKwlpZiAoZGxnX2F0dHIucmVmY3ljX3Blcl9tZXRhX2NodW5rX25vbV9sICE9IGRtbF9k bGdfYXR0ci0+cmVmY3ljX3Blcl9tZXRhX2NodW5rX25vbV9sKQorCQlEQ19MT0dfREVCVUcoIkRN TCBWYWxpZGF0aW9uIHwgTk9NX1BBUkFNRVRFUlNfNTpSRUZDWUNfUEVSX01FVEFfQ0hVTktfTk9N X0wgLSBFeHBlY3RlZDogJXUgIEFjdHVhbDogJXVcbiIsCisJCQkJZG1sX2RsZ19hdHRyLT5yZWZj eWNfcGVyX21ldGFfY2h1bmtfbm9tX2wsIGRsZ19hdHRyLnJlZmN5Y19wZXJfbWV0YV9jaHVua19u b21fbCk7CisJaWYgKGRsZ19hdHRyLnJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9sICE9IGRtbF9k bGdfYXR0ci0+cmVmY3ljX3Blcl9saW5lX2RlbGl2ZXJ5X2wpCisJCURDX0xPR19ERUJVRygiRE1M IFZhbGlkYXRpb24gfCBQRVJfTElORV9ERUxJVkVSWTpSRUZDWUNfUEVSX0xJTkVfREVMSVZFUllf TCAtIEV4cGVjdGVkOiAldSAgQWN0dWFsOiAldVxuIiwKKwkJCQlkbWxfZGxnX2F0dHItPnJlZmN5 Y19wZXJfbGluZV9kZWxpdmVyeV9sLCBkbGdfYXR0ci5yZWZjeWNfcGVyX2xpbmVfZGVsaXZlcnlf bCk7CisJaWYgKGRsZ19hdHRyLnJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9jICE9IGRtbF9kbGdf YXR0ci0+cmVmY3ljX3Blcl9saW5lX2RlbGl2ZXJ5X2MpCisJCURDX0xPR19ERUJVRygiRE1MIFZh bGlkYXRpb24gfCBQRVJfTElORV9ERUxJVkVSWTpSRUZDWUNfUEVSX0xJTkVfREVMSVZFUllfQyAt IEV4cGVjdGVkOiAldSAgQWN0dWFsOiAldVxuIiwKKwkJCQlkbWxfZGxnX2F0dHItPnJlZmN5Y19w ZXJfbGluZV9kZWxpdmVyeV9jLCBkbGdfYXR0ci5yZWZjeWNfcGVyX2xpbmVfZGVsaXZlcnlfYyk7 CisJaWYgKGRsZ19hdHRyLnJlZmN5Y19wZXJfcHRlX2dyb3VwX3ZibGFua19jICE9IGRtbF9kbGdf YXR0ci0+cmVmY3ljX3Blcl9wdGVfZ3JvdXBfdmJsYW5rX2MpCisJCURDX0xPR19ERUJVRygiRE1M IFZhbGlkYXRpb24gfCBWQkxBTktfUEFSQU1FVEVSU18yOlJFRkNZQ19QRVJfUFRFX0dST1VQX1ZC TEFOS19DIC0gRXhwZWN0ZWQ6ICV1ICBBY3R1YWw6ICV1XG4iLAorCQkJCWRtbF9kbGdfYXR0ci0+ cmVmY3ljX3Blcl9wdGVfZ3JvdXBfdmJsYW5rX2MsIGRsZ19hdHRyLnJlZmN5Y19wZXJfcHRlX2dy b3VwX3ZibGFua19jKTsKKwlpZiAoZGxnX2F0dHIuZHN0X3lfcGVyX3B0ZV9yb3dfbm9tX2MgIT0g ZG1sX2RsZ19hdHRyLT5kc3RfeV9wZXJfcHRlX3Jvd19ub21fYykKKwkJRENfTE9HX0RFQlVHKCJE TUwgVmFsaWRhdGlvbiB8IE5PTV9QQVJBTUVURVJTXzI6RFNUX1lfUEVSX1BURV9ST1dfTk9NX0Mg LSBFeHBlY3RlZDogJXUgIEFjdHVhbDogJXVcbiIsCisJCQkJZG1sX2RsZ19hdHRyLT5kc3RfeV9w ZXJfcHRlX3Jvd19ub21fYywgZGxnX2F0dHIuZHN0X3lfcGVyX3B0ZV9yb3dfbm9tX2MpOworCWlm IChkbGdfYXR0ci5yZWZjeWNfcGVyX3B0ZV9ncm91cF9ub21fYyAhPSBkbWxfZGxnX2F0dHItPnJl ZmN5Y19wZXJfcHRlX2dyb3VwX25vbV9jKQorCQlEQ19MT0dfREVCVUcoIkRNTCBWYWxpZGF0aW9u IHwgTk9NX1BBUkFNRVRFUlNfMzpSRUZDWUNfUEVSX1BURV9HUk9VUF9OT01fQyAtIEV4cGVjdGVk OiAldSAgQWN0dWFsOiAldVxuIiwKKwkJCQlkbWxfZGxnX2F0dHItPnJlZmN5Y19wZXJfcHRlX2dy b3VwX25vbV9jLCBkbGdfYXR0ci5yZWZjeWNfcGVyX3B0ZV9ncm91cF9ub21fYyk7CisJaWYgKGRs Z19hdHRyLmRzdF95X3Blcl9tZXRhX3Jvd19ub21fYyAhPSBkbWxfZGxnX2F0dHItPmRzdF95X3Bl cl9tZXRhX3Jvd19ub21fYykKKwkJRENfTE9HX0RFQlVHKCJETUwgVmFsaWRhdGlvbiB8IE5PTV9Q QVJBTUVURVJTXzY6RFNUX1lfUEVSX01FVEFfUk9XX05PTV9DIC0gRXhwZWN0ZWQ6ICV1ICBBY3R1 YWw6ICV1XG4iLAorCQkJCWRtbF9kbGdfYXR0ci0+ZHN0X3lfcGVyX21ldGFfcm93X25vbV9jLCBk bGdfYXR0ci5kc3RfeV9wZXJfbWV0YV9yb3dfbm9tX2MpOworCWlmIChkbGdfYXR0ci5yZWZjeWNf cGVyX21ldGFfY2h1bmtfbm9tX2MgIT0gZG1sX2RsZ19hdHRyLT5yZWZjeWNfcGVyX21ldGFfY2h1 bmtfbm9tX2MpCisJCURDX0xPR19ERUJVRygiRE1MIFZhbGlkYXRpb24gfCBOT01fUEFSQU1FVEVS U183OlJFRkNZQ19QRVJfTUVUQV9DSFVOS19OT01fQyAtIEV4cGVjdGVkOiAldSAgQWN0dWFsOiAl dVxuIiwKKwkJCQlkbWxfZGxnX2F0dHItPnJlZmN5Y19wZXJfbWV0YV9jaHVua19ub21fYywgZGxn X2F0dHIucmVmY3ljX3Blcl9tZXRhX2NodW5rX25vbV9jKTsKKwlpZiAoZGxnX2F0dHIucmVmY3lj X3Blcl9saW5lX2RlbGl2ZXJ5X3ByZV9sICE9IGRtbF9kbGdfYXR0ci0+cmVmY3ljX3Blcl9saW5l X2RlbGl2ZXJ5X3ByZV9sKQorCQlEQ19MT0dfREVCVUcoIkRNTCBWYWxpZGF0aW9uIHwgUEVSX0xJ TkVfREVMSVZFUllfUFJFOlJFRkNZQ19QRVJfTElORV9ERUxJVkVSWV9QUkVfTCAtIEV4cGVjdGVk OiAldSAgQWN0dWFsOiAldVxuIiwKKwkJCQlkbWxfZGxnX2F0dHItPnJlZmN5Y19wZXJfbGluZV9k ZWxpdmVyeV9wcmVfbCwgZGxnX2F0dHIucmVmY3ljX3Blcl9saW5lX2RlbGl2ZXJ5X3ByZV9sKTsK KwlpZiAoZGxnX2F0dHIucmVmY3ljX3Blcl9saW5lX2RlbGl2ZXJ5X3ByZV9jICE9IGRtbF9kbGdf YXR0ci0+cmVmY3ljX3Blcl9saW5lX2RlbGl2ZXJ5X3ByZV9jKQorCQlEQ19MT0dfREVCVUcoIkRN TCBWYWxpZGF0aW9uIHwgUEVSX0xJTkVfREVMSVZFUllfUFJFOlJFRkNZQ19QRVJfTElORV9ERUxJ VkVSWV9QUkVfQyAtIEV4cGVjdGVkOiAldSAgQWN0dWFsOiAldVxuIiwKKwkJCQlkbWxfZGxnX2F0 dHItPnJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9wcmVfYywgZGxnX2F0dHIucmVmY3ljX3Blcl9s aW5lX2RlbGl2ZXJ5X3ByZV9jKTsKKwlpZiAoZGxnX2F0dHIucmVmY3ljX3Blcl9tZXRhX2NodW5r X3ZibGFua19sICE9IGRtbF9kbGdfYXR0ci0+cmVmY3ljX3Blcl9tZXRhX2NodW5rX3ZibGFua19s KQorCQlEQ19MT0dfREVCVUcoIkRNTCBWYWxpZGF0aW9uIHwgVkJMQU5LX1BBUkFNRVRFUlNfMzpS RUZDWUNfUEVSX01FVEFfQ0hVTktfVkJMQU5LX0wgLSBFeHBlY3RlZDogJXUgIEFjdHVhbDogJXVc biIsCisJCQkJZG1sX2RsZ19hdHRyLT5yZWZjeWNfcGVyX21ldGFfY2h1bmtfdmJsYW5rX2wsIGRs Z19hdHRyLnJlZmN5Y19wZXJfbWV0YV9jaHVua192YmxhbmtfbCk7CisJaWYgKGRsZ19hdHRyLnJl ZmN5Y19wZXJfbWV0YV9jaHVua192YmxhbmtfYyAhPSBkbWxfZGxnX2F0dHItPnJlZmN5Y19wZXJf bWV0YV9jaHVua192YmxhbmtfYykKKwkJRENfTE9HX0RFQlVHKCJETUwgVmFsaWRhdGlvbiB8IFZC TEFOS19QQVJBTUVURVJTXzQ6UkVGQ1lDX1BFUl9NRVRBX0NIVU5LX1ZCTEFOS19DIC0gRXhwZWN0 ZWQ6ICV1ICBBY3R1YWw6ICV1XG4iLAorCQkJCWRtbF9kbGdfYXR0ci0+cmVmY3ljX3Blcl9tZXRh X2NodW5rX3ZibGFua19jLCBkbGdfYXR0ci5yZWZjeWNfcGVyX21ldGFfY2h1bmtfdmJsYW5rX2Mp OworCisJLyogVFRVIC0gcGVyIGh1YnAgKi8KKwlSRUdfR0VUXzIoRENOX1RUVV9RT1NfV00sCisJ CVFvU19MRVZFTF9MT1dfV00sICZ0dHVfYXR0ci5xb3NfbGV2ZWxfbG93X3dtLAorCQlRb1NfTEVW RUxfSElHSF9XTSwgJnR0dV9hdHRyLnFvc19sZXZlbF9oaWdoX3dtKTsKKworCWlmICh0dHVfYXR0 ci5xb3NfbGV2ZWxfbG93X3dtICE9IGRtbF90dHVfYXR0ci0+cW9zX2xldmVsX2xvd193bSkKKwkJ RENfTE9HX0RFQlVHKCJETUwgVmFsaWRhdGlvbiB8IERDTl9UVFVfUU9TX1dNOlFvU19MRVZFTF9M T1dfV00gLSBFeHBlY3RlZDogJXUgIEFjdHVhbDogJXVcbiIsCisJCQkJZG1sX3R0dV9hdHRyLT5x b3NfbGV2ZWxfbG93X3dtLCB0dHVfYXR0ci5xb3NfbGV2ZWxfbG93X3dtKTsKKwlpZiAodHR1X2F0 dHIucW9zX2xldmVsX2hpZ2hfd20gIT0gZG1sX3R0dV9hdHRyLT5xb3NfbGV2ZWxfaGlnaF93bSkK KwkJRENfTE9HX0RFQlVHKCJETUwgVmFsaWRhdGlvbiB8IERDTl9UVFVfUU9TX1dNOlFvU19MRVZF TF9ISUdIX1dNIC0gRXhwZWN0ZWQ6ICV1ICBBY3R1YWw6ICV1XG4iLAorCQkJCWRtbF90dHVfYXR0 ci0+cW9zX2xldmVsX2hpZ2hfd20sIHR0dV9hdHRyLnFvc19sZXZlbF9oaWdoX3dtKTsKKworCS8q IFRUVSAtIHBlciBsdW1hL2Nocm9tYSAqLworCS8qIEFzc3VtZWQgc3VyZjAgaXMgbHVtYSBhbmQg MSBpcyBjaHJvbWEgKi8KKwlSRUdfR0VUXzMoRENOX1NVUkYwX1RUVV9DTlRMMCwKKwkJUkVGQ1lD X1BFUl9SRVFfREVMSVZFUlksICZ0dHVfYXR0ci5yZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9sLAor CQlRb1NfTEVWRUxfRklYRUQsICZ0dHVfYXR0ci5xb3NfbGV2ZWxfZml4ZWRfbCwKKwkJUW9TX1JB TVBfRElTQUJMRSwgJnR0dV9hdHRyLnFvc19yYW1wX2Rpc2FibGVfbCk7CisJUkVHX0dFVF8zKERD Tl9TVVJGMV9UVFVfQ05UTDAsCisJCVJFRkNZQ19QRVJfUkVRX0RFTElWRVJZLCAmdHR1X2F0dHIu cmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfYywKKwkJUW9TX0xFVkVMX0ZJWEVELCAmdHR1X2F0dHIu cW9zX2xldmVsX2ZpeGVkX2MsCisJCVFvU19SQU1QX0RJU0FCTEUsICZ0dHVfYXR0ci5xb3NfcmFt cF9kaXNhYmxlX2MpOworCVJFR19HRVRfMyhEQ05fQ1VSMF9UVFVfQ05UTDAsCisJCVJFRkNZQ19Q RVJfUkVRX0RFTElWRVJZLCAmdHR1X2F0dHIucmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfY3VyMCwK KwkJUW9TX0xFVkVMX0ZJWEVELCAmdHR1X2F0dHIucW9zX2xldmVsX2ZpeGVkX2N1cjAsCisJCVFv U19SQU1QX0RJU0FCTEUsICZ0dHVfYXR0ci5xb3NfcmFtcF9kaXNhYmxlX2N1cjApOworCVJFR19H RVQoRkxJUF9QQVJBTUVURVJTXzEsCisJCVJFRkNZQ19QRVJfUFRFX0dST1VQX0ZMSVBfTCwgJmRs Z19hdHRyLnJlZmN5Y19wZXJfcHRlX2dyb3VwX2ZsaXBfbCk7CisJUkVHX0dFVChEQ05fQ1VSMF9U VFVfQ05UTDEsCisJCQlSRUZDWUNfUEVSX1JFUV9ERUxJVkVSWV9QUkUsICZ0dHVfYXR0ci5yZWZj eWNfcGVyX3JlcV9kZWxpdmVyeV9wcmVfY3VyMCk7CisJUkVHX0dFVChEQ05fQ1VSMV9UVFVfQ05U TDEsCisJCQlSRUZDWUNfUEVSX1JFUV9ERUxJVkVSWV9QUkUsICZ0dHVfYXR0ci5yZWZjeWNfcGVy X3JlcV9kZWxpdmVyeV9wcmVfY3VyMSk7CisJUkVHX0dFVChEQ05fU1VSRjBfVFRVX0NOVEwxLAor CQkJUkVGQ1lDX1BFUl9SRVFfREVMSVZFUllfUFJFLCAmdHR1X2F0dHIucmVmY3ljX3Blcl9yZXFf ZGVsaXZlcnlfcHJlX2wpOworCVJFR19HRVQoRENOX1NVUkYxX1RUVV9DTlRMMSwKKwkJCVJFRkNZ Q19QRVJfUkVRX0RFTElWRVJZX1BSRSwgJnR0dV9hdHRyLnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5 X3ByZV9jKTsKKworCWlmICh0dHVfYXR0ci5yZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9sICE9IGRt bF90dHVfYXR0ci0+cmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfbCkKKwkJRENfTE9HX0RFQlVHKCJE TUwgVmFsaWRhdGlvbiB8IERDTl9TVVJGMF9UVFVfQ05UTDA6UkVGQ1lDX1BFUl9SRVFfREVMSVZF UlkgLSBFeHBlY3RlZDogJXUgIEFjdHVhbDogJXVcbiIsCisJCQkJZG1sX3R0dV9hdHRyLT5yZWZj eWNfcGVyX3JlcV9kZWxpdmVyeV9sLCB0dHVfYXR0ci5yZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9s KTsKKwlpZiAodHR1X2F0dHIucW9zX2xldmVsX2ZpeGVkX2wgIT0gZG1sX3R0dV9hdHRyLT5xb3Nf bGV2ZWxfZml4ZWRfbCkKKwkJRENfTE9HX0RFQlVHKCJETUwgVmFsaWRhdGlvbiB8IERDTl9TVVJG MF9UVFVfQ05UTDA6UW9TX0xFVkVMX0ZJWEVEIC0gRXhwZWN0ZWQ6ICV1ICBBY3R1YWw6ICV1XG4i LAorCQkJCWRtbF90dHVfYXR0ci0+cW9zX2xldmVsX2ZpeGVkX2wsIHR0dV9hdHRyLnFvc19sZXZl bF9maXhlZF9sKTsKKwlpZiAodHR1X2F0dHIucW9zX3JhbXBfZGlzYWJsZV9sICE9IGRtbF90dHVf YXR0ci0+cW9zX3JhbXBfZGlzYWJsZV9sKQorCQlEQ19MT0dfREVCVUcoIkRNTCBWYWxpZGF0aW9u IHwgRENOX1NVUkYwX1RUVV9DTlRMMDpRb1NfUkFNUF9ESVNBQkxFIC0gRXhwZWN0ZWQ6ICV1ICBB Y3R1YWw6ICV1XG4iLAorCQkJCWRtbF90dHVfYXR0ci0+cW9zX3JhbXBfZGlzYWJsZV9sLCB0dHVf YXR0ci5xb3NfcmFtcF9kaXNhYmxlX2wpOworCWlmICh0dHVfYXR0ci5yZWZjeWNfcGVyX3JlcV9k ZWxpdmVyeV9jICE9IGRtbF90dHVfYXR0ci0+cmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfYykKKwkJ RENfTE9HX0RFQlVHKCJETUwgVmFsaWRhdGlvbiB8IERDTl9TVVJGMV9UVFVfQ05UTDA6UkVGQ1lD X1BFUl9SRVFfREVMSVZFUlkgLSBFeHBlY3RlZDogJXUgIEFjdHVhbDogJXVcbiIsCisJCQkJZG1s X3R0dV9hdHRyLT5yZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9jLCB0dHVfYXR0ci5yZWZjeWNfcGVy X3JlcV9kZWxpdmVyeV9jKTsKKwlpZiAodHR1X2F0dHIucW9zX2xldmVsX2ZpeGVkX2MgIT0gZG1s X3R0dV9hdHRyLT5xb3NfbGV2ZWxfZml4ZWRfYykKKwkJRENfTE9HX0RFQlVHKCJETUwgVmFsaWRh dGlvbiB8IERDTl9TVVJGMV9UVFVfQ05UTDA6UW9TX0xFVkVMX0ZJWEVEIC0gRXhwZWN0ZWQ6ICV1 ICBBY3R1YWw6ICV1XG4iLAorCQkJCWRtbF90dHVfYXR0ci0+cW9zX2xldmVsX2ZpeGVkX2MsIHR0 dV9hdHRyLnFvc19sZXZlbF9maXhlZF9jKTsKKwlpZiAodHR1X2F0dHIucW9zX3JhbXBfZGlzYWJs ZV9jICE9IGRtbF90dHVfYXR0ci0+cW9zX3JhbXBfZGlzYWJsZV9jKQorCQlEQ19MT0dfREVCVUco IkRNTCBWYWxpZGF0aW9uIHwgRENOX1NVUkYxX1RUVV9DTlRMMDpRb1NfUkFNUF9ESVNBQkxFIC0g RXhwZWN0ZWQ6ICV1ICBBY3R1YWw6ICV1XG4iLAorCQkJCWRtbF90dHVfYXR0ci0+cW9zX3JhbXBf ZGlzYWJsZV9jLCB0dHVfYXR0ci5xb3NfcmFtcF9kaXNhYmxlX2MpOworCWlmICh0dHVfYXR0ci5y ZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9jdXIwICE9IGRtbF90dHVfYXR0ci0+cmVmY3ljX3Blcl9y ZXFfZGVsaXZlcnlfY3VyMCkKKwkJRENfTE9HX0RFQlVHKCJETUwgVmFsaWRhdGlvbiB8IERDTl9D VVIwX1RUVV9DTlRMMDpSRUZDWUNfUEVSX1JFUV9ERUxJVkVSWSAtIEV4cGVjdGVkOiAldSAgQWN0 dWFsOiAldVxuIiwKKwkJCQlkbWxfdHR1X2F0dHItPnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X2N1 cjAsIHR0dV9hdHRyLnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X2N1cjApOworCWlmICh0dHVfYXR0 ci5xb3NfbGV2ZWxfZml4ZWRfY3VyMCAhPSBkbWxfdHR1X2F0dHItPnFvc19sZXZlbF9maXhlZF9j dXIwKQorCQlEQ19MT0dfREVCVUcoIkRNTCBWYWxpZGF0aW9uIHwgRENOX0NVUjBfVFRVX0NOVEww OlFvU19MRVZFTF9GSVhFRCAtIEV4cGVjdGVkOiAldSAgQWN0dWFsOiAldVxuIiwKKwkJCQlkbWxf dHR1X2F0dHItPnFvc19sZXZlbF9maXhlZF9jdXIwLCB0dHVfYXR0ci5xb3NfbGV2ZWxfZml4ZWRf Y3VyMCk7CisJaWYgKHR0dV9hdHRyLnFvc19yYW1wX2Rpc2FibGVfY3VyMCAhPSBkbWxfdHR1X2F0 dHItPnFvc19yYW1wX2Rpc2FibGVfY3VyMCkKKwkJRENfTE9HX0RFQlVHKCJETUwgVmFsaWRhdGlv biB8IERDTl9DVVIwX1RUVV9DTlRMMDpRb1NfUkFNUF9ESVNBQkxFIC0gRXhwZWN0ZWQ6ICV1ICBB Y3R1YWw6ICV1XG4iLAorCQkJCWRtbF90dHVfYXR0ci0+cW9zX3JhbXBfZGlzYWJsZV9jdXIwLCB0 dHVfYXR0ci5xb3NfcmFtcF9kaXNhYmxlX2N1cjApOworCWlmIChkbGdfYXR0ci5yZWZjeWNfcGVy X3B0ZV9ncm91cF9mbGlwX2wgIT0gZG1sX2RsZ19hdHRyLT5yZWZjeWNfcGVyX3B0ZV9ncm91cF9m bGlwX2wpCisJCURDX0xPR19ERUJVRygiRE1MIFZhbGlkYXRpb24gfCBGTElQX1BBUkFNRVRFUlNf MTpSRUZDWUNfUEVSX1BURV9HUk9VUF9GTElQX0wgLSBFeHBlY3RlZDogJXUgIEFjdHVhbDogJXVc biIsCisJCQkJZG1sX2RsZ19hdHRyLT5yZWZjeWNfcGVyX3B0ZV9ncm91cF9mbGlwX2wsIGRsZ19h dHRyLnJlZmN5Y19wZXJfcHRlX2dyb3VwX2ZsaXBfbCk7CisJaWYgKHR0dV9hdHRyLnJlZmN5Y19w ZXJfcmVxX2RlbGl2ZXJ5X3ByZV9jdXIwICE9IGRtbF90dHVfYXR0ci0+cmVmY3ljX3Blcl9yZXFf ZGVsaXZlcnlfcHJlX2N1cjApCisJCURDX0xPR19ERUJVRygiRE1MIFZhbGlkYXRpb24gfCBEQ05f Q1VSMF9UVFVfQ05UTDE6UkVGQ1lDX1BFUl9SRVFfREVMSVZFUllfUFJFIC0gRXhwZWN0ZWQ6ICV1 ICBBY3R1YWw6ICV1XG4iLAorCQkJCWRtbF90dHVfYXR0ci0+cmVmY3ljX3Blcl9yZXFfZGVsaXZl cnlfcHJlX2N1cjAsIHR0dV9hdHRyLnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9jdXIwKTsK KwlpZiAodHR1X2F0dHIucmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfcHJlX2N1cjEgIT0gZG1sX3R0 dV9hdHRyLT5yZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9wcmVfY3VyMSkKKwkJRENfTE9HX0RFQlVH KCJETUwgVmFsaWRhdGlvbiB8IERDTl9DVVIxX1RUVV9DTlRMMTpSRUZDWUNfUEVSX1JFUV9ERUxJ VkVSWV9QUkUgLSBFeHBlY3RlZDogJXUgIEFjdHVhbDogJXVcbiIsCisJCQkJZG1sX3R0dV9hdHRy LT5yZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9wcmVfY3VyMSwgdHR1X2F0dHIucmVmY3ljX3Blcl9y ZXFfZGVsaXZlcnlfcHJlX2N1cjEpOworCWlmICh0dHVfYXR0ci5yZWZjeWNfcGVyX3JlcV9kZWxp dmVyeV9wcmVfbCAhPSBkbWxfdHR1X2F0dHItPnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9s KQorCQlEQ19MT0dfREVCVUcoIkRNTCBWYWxpZGF0aW9uIHwgRENOX1NVUkYwX1RUVV9DTlRMMTpS RUZDWUNfUEVSX1JFUV9ERUxJVkVSWV9QUkUgLSBFeHBlY3RlZDogJXUgIEFjdHVhbDogJXVcbiIs CisJCQkJZG1sX3R0dV9hdHRyLT5yZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9wcmVfbCwgdHR1X2F0 dHIucmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfcHJlX2wpOworCWlmICh0dHVfYXR0ci5yZWZjeWNf cGVyX3JlcV9kZWxpdmVyeV9wcmVfYyAhPSBkbWxfdHR1X2F0dHItPnJlZmN5Y19wZXJfcmVxX2Rl bGl2ZXJ5X3ByZV9jKQorCQlEQ19MT0dfREVCVUcoIkRNTCBWYWxpZGF0aW9uIHwgRENOX1NVUkYx X1RUVV9DTlRMMTpSRUZDWUNfUEVSX1JFUV9ERUxJVkVSWV9QUkUgLSBFeHBlY3RlZDogJXUgIEFj dHVhbDogJXVcbiIsCisJCQkJZG1sX3R0dV9hdHRyLT5yZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9w cmVfYywgdHR1X2F0dHIucmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfcHJlX2MpOworfQorCiBzdGF0 aWMgc3RydWN0IGh1YnBfZnVuY3MgZGNuMjBfaHVicF9mdW5jcyA9IHsKIAkuaHVicF9lbmFibGVf dHJpcGxlQnVmZmVyID0gaHVicDJfZW5hYmxlX3RyaXBsZWJ1ZmZlciwKIAkuaHVicF9pc190cmlw bGVidWZmZXJfZW5hYmxlZCA9IGh1YnAyX2lzX3RyaXBsZWJ1ZmZlcl9lbmFibGVkLApAQCAtMTI2 Nyw2ICsxNTc2LDcgQEAgc3RhdGljIHN0cnVjdCBodWJwX2Z1bmNzIGRjbjIwX2h1YnBfZnVuY3Mg PSB7CiAJLmh1YnBfY2xlYXJfdW5kZXJmbG93ID0gaHVicDJfY2xlYXJfdW5kZXJmbG93LAogCS5o dWJwX3NldF9mbGlwX2NvbnRyb2xfc3VyZmFjZV9nc2wgPSBodWJwMl9zZXRfZmxpcF9jb250cm9s X3N1cmZhY2VfZ3NsLAogCS5odWJwX2luaXQgPSBodWJwMV9pbml0LAorCS52YWxpZGF0ZV9kbWxf b3V0cHV0ID0gaHVicDJfdmFsaWRhdGVfZG1sX291dHB1dCwKIH07CiAKIApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIxL2RjbjIxX2h1YnAuYyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMS9kY24yMV9odWJwLmMKaW5kZXggMzJlOGI1 ODlhZWI1Li4wYmUxYzkxN2IyNDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlz cGxheS9kYy9kY24yMS9kY24yMV9odWJwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNw bGF5L2RjL2RjbjIxL2RjbjIxX2h1YnAuYwpAQCAtMjksNiArMjksOCBAQAogI2luY2x1ZGUgImRt X3NlcnZpY2VzLmgiCiAjaW5jbHVkZSAicmVnX2hlbHBlci5oIgogCisjZGVmaW5lIERDX0xPR0dF Ul9JTklUKGxvZ2dlcikKKwogI2RlZmluZSBSRUcocmVnKVwKIAlodWJwMjEtPmh1YnBfcmVncy0+ cmVnCiAKQEAgLTI1NCw2ICsyNTYsMzQ4IEBAIHZvaWQgaHVicDIxX3NldF92bV9zeXN0ZW1fYXBl cnR1cmVfc2V0dGluZ3Moc3RydWN0IGh1YnAgKmh1YnAsCiAJCQlTWVNURU1fQUNDRVNTX01PREUs IDB4Myk7CiB9CiAKK3ZvaWQgaHVicDIxX3ZhbGlkYXRlX2RtbF9vdXRwdXQoc3RydWN0IGh1YnAg Kmh1YnAsCisJCXN0cnVjdCBkY19jb250ZXh0ICpjdHgsCisJCXN0cnVjdCBfdmNzX2RwaV9kaXNw bGF5X3JxX3JlZ3Nfc3QgKmRtbF9ycV9yZWdzLAorCQlzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9k bGdfcmVnc19zdCAqZG1sX2RsZ19hdHRyLAorCQlzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV90dHVf cmVnc19zdCAqZG1sX3R0dV9hdHRyKQoreworCXN0cnVjdCBkY24yMV9odWJwICpodWJwMjEgPSBU T19EQ04yMV9IVUJQKGh1YnApOworCXN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3JxX3JlZ3Nfc3Qg cnFfcmVncyA9IHswfTsKKwlzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9kbGdfcmVnc19zdCBkbGdf YXR0ciA9IHswfTsKKwlzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV90dHVfcmVnc19zdCB0dHVfYXR0 ciA9IHswfTsKKwlEQ19MT0dHRVJfSU5JVChjdHgtPmxvZ2dlcik7CisKKwkvKiBSZXF1ZXN0ZXIg LSBQZXIgaHVicCAqLworCVJFR19HRVQoSFVCUFJFVF9DT05UUk9MLAorCQlERVRfQlVGX1BMQU5F MV9CQVNFX0FERFJFU1MsICZycV9yZWdzLnBsYW5lMV9iYXNlX2FkZHJlc3MpOworCVJFR19HRVRf NChEQ05fRVhQQU5TSU9OX01PREUsCisJCURSUV9FWFBBTlNJT05fTU9ERSwgJnJxX3JlZ3MuZHJx X2V4cGFuc2lvbl9tb2RlLAorCQlQUlFfRVhQQU5TSU9OX01PREUsICZycV9yZWdzLnBycV9leHBh bnNpb25fbW9kZSwKKwkJTVJRX0VYUEFOU0lPTl9NT0RFLCAmcnFfcmVncy5tcnFfZXhwYW5zaW9u X21vZGUsCisJCUNSUV9FWFBBTlNJT05fTU9ERSwgJnJxX3JlZ3MuY3JxX2V4cGFuc2lvbl9tb2Rl KTsKKwlSRUdfR0VUXzgoRENIVUJQX1JFUV9TSVpFX0NPTkZJRywKKwkJQ0hVTktfU0laRSwgJnJx X3JlZ3MucnFfcmVnc19sLmNodW5rX3NpemUsCisJCU1JTl9DSFVOS19TSVpFLCAmcnFfcmVncy5y cV9yZWdzX2wubWluX2NodW5rX3NpemUsCisJCU1FVEFfQ0hVTktfU0laRSwgJnJxX3JlZ3MucnFf cmVnc19sLm1ldGFfY2h1bmtfc2l6ZSwKKwkJTUlOX01FVEFfQ0hVTktfU0laRSwgJnJxX3JlZ3Mu cnFfcmVnc19sLm1pbl9tZXRhX2NodW5rX3NpemUsCisJCURQVEVfR1JPVVBfU0laRSwgJnJxX3Jl Z3MucnFfcmVnc19sLmRwdGVfZ3JvdXBfc2l6ZSwKKwkJVk1fR1JPVVBfU0laRSwgJnJxX3JlZ3Mu cnFfcmVnc19sLm1wdGVfZ3JvdXBfc2l6ZSwKKwkJU1dBVEhfSEVJR0hULCAmcnFfcmVncy5ycV9y ZWdzX2wuc3dhdGhfaGVpZ2h0LAorCQlQVEVfUk9XX0hFSUdIVF9MSU5FQVIsICZycV9yZWdzLnJx X3JlZ3NfbC5wdGVfcm93X2hlaWdodF9saW5lYXIpOworCVJFR19HRVRfNyhEQ0hVQlBfUkVRX1NJ WkVfQ09ORklHX0MsCisJCUNIVU5LX1NJWkVfQywgJnJxX3JlZ3MucnFfcmVnc19jLmNodW5rX3Np emUsCisJCU1JTl9DSFVOS19TSVpFX0MsICZycV9yZWdzLnJxX3JlZ3NfYy5taW5fY2h1bmtfc2l6 ZSwKKwkJTUVUQV9DSFVOS19TSVpFX0MsICZycV9yZWdzLnJxX3JlZ3NfYy5tZXRhX2NodW5rX3Np emUsCisJCU1JTl9NRVRBX0NIVU5LX1NJWkVfQywgJnJxX3JlZ3MucnFfcmVnc19jLm1pbl9tZXRh X2NodW5rX3NpemUsCisJCURQVEVfR1JPVVBfU0laRV9DLCAmcnFfcmVncy5ycV9yZWdzX2MuZHB0 ZV9ncm91cF9zaXplLAorCQlTV0FUSF9IRUlHSFRfQywgJnJxX3JlZ3MucnFfcmVnc19jLnN3YXRo X2hlaWdodCwKKwkJUFRFX1JPV19IRUlHSFRfTElORUFSX0MsICZycV9yZWdzLnJxX3JlZ3NfYy5w dGVfcm93X2hlaWdodF9saW5lYXIpOworCisJaWYgKHJxX3JlZ3MucGxhbmUxX2Jhc2VfYWRkcmVz cyAhPSBkbWxfcnFfcmVncy0+cGxhbmUxX2Jhc2VfYWRkcmVzcykKKwkJRENfTE9HX0RFQlVHKCJE TUwgVmFsaWRhdGlvbiB8IEhVQlBSRVRfQ09OVFJPTDpERVRfQlVGX1BMQU5FMV9CQVNFX0FERFJF U1MgLSBFeHBlY3RlZDogJXUgIEFjdHVhbDogJXVcbiIsCisJCQkJZG1sX3JxX3JlZ3MtPnBsYW5l MV9iYXNlX2FkZHJlc3MsIHJxX3JlZ3MucGxhbmUxX2Jhc2VfYWRkcmVzcyk7CisJaWYgKHJxX3Jl Z3MuZHJxX2V4cGFuc2lvbl9tb2RlICE9IGRtbF9ycV9yZWdzLT5kcnFfZXhwYW5zaW9uX21vZGUp CisJCURDX0xPR19ERUJVRygiRE1MIFZhbGlkYXRpb24gfCBEQ05fRVhQQU5TSU9OX01PREU6RFJR X0VYUEFOU0lPTl9NT0RFIC0gRXhwZWN0ZWQ6ICV1ICBBY3R1YWw6ICV1XG4iLAorCQkJCWRtbF9y cV9yZWdzLT5kcnFfZXhwYW5zaW9uX21vZGUsIHJxX3JlZ3MuZHJxX2V4cGFuc2lvbl9tb2RlKTsK KwlpZiAocnFfcmVncy5wcnFfZXhwYW5zaW9uX21vZGUgIT0gZG1sX3JxX3JlZ3MtPnBycV9leHBh bnNpb25fbW9kZSkKKwkJRENfTE9HX0RFQlVHKCJETUwgVmFsaWRhdGlvbiB8IERDTl9FWFBBTlNJ T05fTU9ERTpNUlFfRVhQQU5TSU9OX01PREUgLSBFeHBlY3RlZDogJXUgIEFjdHVhbDogJXVcbiIs CisJCQkJZG1sX3JxX3JlZ3MtPnBycV9leHBhbnNpb25fbW9kZSwgcnFfcmVncy5wcnFfZXhwYW5z aW9uX21vZGUpOworCWlmIChycV9yZWdzLm1ycV9leHBhbnNpb25fbW9kZSAhPSBkbWxfcnFfcmVn cy0+bXJxX2V4cGFuc2lvbl9tb2RlKQorCQlEQ19MT0dfREVCVUcoIkRNTCBWYWxpZGF0aW9uIHwg RENOX0VYUEFOU0lPTl9NT0RFOkRFVF9CVUZfUExBTkUxX0JBU0VfQUREUkVTUyAtIEV4cGVjdGVk OiAldSAgQWN0dWFsOiAldVxuIiwKKwkJCQlkbWxfcnFfcmVncy0+bXJxX2V4cGFuc2lvbl9tb2Rl LCBycV9yZWdzLm1ycV9leHBhbnNpb25fbW9kZSk7CisJaWYgKHJxX3JlZ3MuY3JxX2V4cGFuc2lv bl9tb2RlICE9IGRtbF9ycV9yZWdzLT5jcnFfZXhwYW5zaW9uX21vZGUpCisJCURDX0xPR19ERUJV RygiRE1MIFZhbGlkYXRpb24gfCBEQ05fRVhQQU5TSU9OX01PREU6Q1JRX0VYUEFOU0lPTl9NT0RF IC0gRXhwZWN0ZWQ6ICV1ICBBY3R1YWw6ICV1XG4iLAorCQkJCWRtbF9ycV9yZWdzLT5jcnFfZXhw YW5zaW9uX21vZGUsIHJxX3JlZ3MuY3JxX2V4cGFuc2lvbl9tb2RlKTsKKworCWlmIChycV9yZWdz LnJxX3JlZ3NfbC5jaHVua19zaXplICE9IGRtbF9ycV9yZWdzLT5ycV9yZWdzX2wuY2h1bmtfc2l6 ZSkKKwkJRENfTE9HX0RFQlVHKCJETUwgVmFsaWRhdGlvbiB8IERDSFVCUF9SRVFfU0laRV9DT05G SUdfQzpDSFVOS19TSVpFIC0gRXhwZWN0ZWQ6ICV1ICBBY3R1YWw6ICV1XG4iLAorCQkJCWRtbF9y cV9yZWdzLT5ycV9yZWdzX2wuY2h1bmtfc2l6ZSwgcnFfcmVncy5ycV9yZWdzX2wuY2h1bmtfc2l6 ZSk7CisJaWYgKHJxX3JlZ3MucnFfcmVnc19sLm1pbl9jaHVua19zaXplICE9IGRtbF9ycV9yZWdz LT5ycV9yZWdzX2wubWluX2NodW5rX3NpemUpCisJCURDX0xPR19ERUJVRygiRE1MIFZhbGlkYXRp b24gfCBEQ0hVQlBfUkVRX1NJWkVfQ09ORklHX0M6TUlOX0NIVU5LX1NJWkUgLSBFeHBlY3RlZDog JXUgIEFjdHVhbDogJXVcbiIsCisJCQkJZG1sX3JxX3JlZ3MtPnJxX3JlZ3NfbC5taW5fY2h1bmtf c2l6ZSwgcnFfcmVncy5ycV9yZWdzX2wubWluX2NodW5rX3NpemUpOworCWlmIChycV9yZWdzLnJx X3JlZ3NfbC5tZXRhX2NodW5rX3NpemUgIT0gZG1sX3JxX3JlZ3MtPnJxX3JlZ3NfbC5tZXRhX2No dW5rX3NpemUpCisJCURDX0xPR19ERUJVRygiRE1MIFZhbGlkYXRpb24gfCBEQ0hVQlBfUkVRX1NJ WkVfQ09ORklHX0M6TUVUQV9DSFVOS19TSVpFIC0gRXhwZWN0ZWQ6ICV1ICBBY3R1YWw6ICV1XG4i LAorCQkJCWRtbF9ycV9yZWdzLT5ycV9yZWdzX2wubWV0YV9jaHVua19zaXplLCBycV9yZWdzLnJx X3JlZ3NfbC5tZXRhX2NodW5rX3NpemUpOworCWlmIChycV9yZWdzLnJxX3JlZ3NfbC5taW5fbWV0 YV9jaHVua19zaXplICE9IGRtbF9ycV9yZWdzLT5ycV9yZWdzX2wubWluX21ldGFfY2h1bmtfc2l6 ZSkKKwkJRENfTE9HX0RFQlVHKCJETUwgVmFsaWRhdGlvbiB8IERDSFVCUF9SRVFfU0laRV9DT05G SUdfQzpNSU5fTUVUQV9DSFVOS19TSVpFIC0gRXhwZWN0ZWQ6ICV1ICBBY3R1YWw6ICV1XG4iLAor CQkJCWRtbF9ycV9yZWdzLT5ycV9yZWdzX2wubWluX21ldGFfY2h1bmtfc2l6ZSwgcnFfcmVncy5y cV9yZWdzX2wubWluX21ldGFfY2h1bmtfc2l6ZSk7CisJaWYgKHJxX3JlZ3MucnFfcmVnc19sLmRw dGVfZ3JvdXBfc2l6ZSAhPSBkbWxfcnFfcmVncy0+cnFfcmVnc19sLmRwdGVfZ3JvdXBfc2l6ZSkK KwkJRENfTE9HX0RFQlVHKCJETUwgVmFsaWRhdGlvbiB8IERDSFVCUF9SRVFfU0laRV9DT05GSUdf QzpEUFRFX0dST1VQX1NJWkUgLSBFeHBlY3RlZDogJXUgIEFjdHVhbDogJXVcbiIsCisJCQkJZG1s X3JxX3JlZ3MtPnJxX3JlZ3NfbC5kcHRlX2dyb3VwX3NpemUsIHJxX3JlZ3MucnFfcmVnc19sLmRw dGVfZ3JvdXBfc2l6ZSk7CisJaWYgKHJxX3JlZ3MucnFfcmVnc19sLm1wdGVfZ3JvdXBfc2l6ZSAh PSBkbWxfcnFfcmVncy0+cnFfcmVnc19sLm1wdGVfZ3JvdXBfc2l6ZSkKKwkJRENfTE9HX0RFQlVH KCJETUwgVmFsaWRhdGlvbiB8IERDSFVCUF9SRVFfU0laRV9DT05GSUdfQzpWTV9HUk9VUF9TSVpF IC0gRXhwZWN0ZWQ6ICV1ICBBY3R1YWw6ICV1XG4iLAorCQkJCWRtbF9ycV9yZWdzLT5ycV9yZWdz X2wubXB0ZV9ncm91cF9zaXplLCBycV9yZWdzLnJxX3JlZ3NfbC5tcHRlX2dyb3VwX3NpemUpOwor CWlmIChycV9yZWdzLnJxX3JlZ3NfbC5zd2F0aF9oZWlnaHQgIT0gZG1sX3JxX3JlZ3MtPnJxX3Jl Z3NfbC5zd2F0aF9oZWlnaHQpCisJCURDX0xPR19ERUJVRygiRE1MIFZhbGlkYXRpb24gfCBEQ0hV QlBfUkVRX1NJWkVfQ09ORklHX0M6U1dBVEhfSEVJR0hUIC0gRXhwZWN0ZWQ6ICV1ICBBY3R1YWw6 ICV1XG4iLAorCQkJCWRtbF9ycV9yZWdzLT5ycV9yZWdzX2wuc3dhdGhfaGVpZ2h0LCBycV9yZWdz LnJxX3JlZ3NfbC5zd2F0aF9oZWlnaHQpOworCWlmIChycV9yZWdzLnJxX3JlZ3NfbC5wdGVfcm93 X2hlaWdodF9saW5lYXIgIT0gZG1sX3JxX3JlZ3MtPnJxX3JlZ3NfbC5wdGVfcm93X2hlaWdodF9s aW5lYXIpCisJCURDX0xPR19ERUJVRygiRE1MIFZhbGlkYXRpb24gfCBEQ0hVQlBfUkVRX1NJWkVf Q09ORklHX0M6UFRFX1JPV19IRUlHSFRfTElORUFSIC0gRXhwZWN0ZWQ6ICV1ICBBY3R1YWw6ICV1 XG4iLAorCQkJCWRtbF9ycV9yZWdzLT5ycV9yZWdzX2wucHRlX3Jvd19oZWlnaHRfbGluZWFyLCBy cV9yZWdzLnJxX3JlZ3NfbC5wdGVfcm93X2hlaWdodF9saW5lYXIpOworCisJaWYgKHJxX3JlZ3Mu cnFfcmVnc19jLmNodW5rX3NpemUgIT0gZG1sX3JxX3JlZ3MtPnJxX3JlZ3NfYy5jaHVua19zaXpl KQorCQlEQ19MT0dfREVCVUcoIkRNTCBWYWxpZGF0aW9uIHwgRENIVUJQX1JFUV9TSVpFX0NPTkZJ RzpDSFVOS19TSVpFX0MgLSBFeHBlY3RlZDogJXUgIEFjdHVhbDogJXVcbiIsCisJCQkJZG1sX3Jx X3JlZ3MtPnJxX3JlZ3NfYy5jaHVua19zaXplLCBycV9yZWdzLnJxX3JlZ3NfYy5jaHVua19zaXpl KTsKKwlpZiAocnFfcmVncy5ycV9yZWdzX2MubWluX2NodW5rX3NpemUgIT0gZG1sX3JxX3JlZ3Mt PnJxX3JlZ3NfYy5taW5fY2h1bmtfc2l6ZSkKKwkJRENfTE9HX0RFQlVHKCJETUwgVmFsaWRhdGlv biB8IERDSFVCUF9SRVFfU0laRV9DT05GSUc6TUlOX0NIVU5LX1NJWkVfQyAtIEV4cGVjdGVkOiAl dSAgQWN0dWFsOiAldVxuIiwKKwkJCQlkbWxfcnFfcmVncy0+cnFfcmVnc19jLm1pbl9jaHVua19z aXplLCBycV9yZWdzLnJxX3JlZ3NfYy5taW5fY2h1bmtfc2l6ZSk7CisJaWYgKHJxX3JlZ3MucnFf cmVnc19jLm1ldGFfY2h1bmtfc2l6ZSAhPSBkbWxfcnFfcmVncy0+cnFfcmVnc19jLm1ldGFfY2h1 bmtfc2l6ZSkKKwkJRENfTE9HX0RFQlVHKCJETUwgVmFsaWRhdGlvbiB8IERDSFVCUF9SRVFfU0la RV9DT05GSUc6TUVUQV9DSFVOS19TSVpFX0MgLSBFeHBlY3RlZDogJXUgIEFjdHVhbDogJXVcbiIs CisJCQkJZG1sX3JxX3JlZ3MtPnJxX3JlZ3NfYy5tZXRhX2NodW5rX3NpemUsIHJxX3JlZ3MucnFf cmVnc19jLm1ldGFfY2h1bmtfc2l6ZSk7CisJaWYgKHJxX3JlZ3MucnFfcmVnc19jLm1pbl9tZXRh X2NodW5rX3NpemUgIT0gZG1sX3JxX3JlZ3MtPnJxX3JlZ3NfYy5taW5fbWV0YV9jaHVua19zaXpl KQorCQlEQ19MT0dfREVCVUcoIkRNTCBWYWxpZGF0aW9uIHwgRENIVUJQX1JFUV9TSVpFX0NPTkZJ RzpNSU5fTUVUQV9DSFVOS19TSVpFX0MgLSBFeHBlY3RlZDogJXUgIEFjdHVhbDogJXVcbiIsCisJ CQkJZG1sX3JxX3JlZ3MtPnJxX3JlZ3NfYy5taW5fbWV0YV9jaHVua19zaXplLCBycV9yZWdzLnJx X3JlZ3NfYy5taW5fbWV0YV9jaHVua19zaXplKTsKKwlpZiAocnFfcmVncy5ycV9yZWdzX2MuZHB0 ZV9ncm91cF9zaXplICE9IGRtbF9ycV9yZWdzLT5ycV9yZWdzX2MuZHB0ZV9ncm91cF9zaXplKQor CQlEQ19MT0dfREVCVUcoIkRNTCBWYWxpZGF0aW9uIHwgRENIVUJQX1JFUV9TSVpFX0NPTkZJRzpE UFRFX0dST1VQX1NJWkVfQyAtIEV4cGVjdGVkOiAldSAgQWN0dWFsOiAldVxuIiwKKwkJCQlkbWxf cnFfcmVncy0+cnFfcmVnc19jLmRwdGVfZ3JvdXBfc2l6ZSwgcnFfcmVncy5ycV9yZWdzX2MuZHB0 ZV9ncm91cF9zaXplKTsKKwlpZiAocnFfcmVncy5ycV9yZWdzX2Muc3dhdGhfaGVpZ2h0ICE9IGRt bF9ycV9yZWdzLT5ycV9yZWdzX2Muc3dhdGhfaGVpZ2h0KQorCQlEQ19MT0dfREVCVUcoIkRNTCBW YWxpZGF0aW9uIHwgRENIVUJQX1JFUV9TSVpFX0NPTkZJRzpTV0FUSF9IRUlHSFRfQyAtIEV4cGVj dGVkOiAldSAgQWN0dWFsOiAldVxuIiwKKwkJCQlkbWxfcnFfcmVncy0+cnFfcmVnc19jLnN3YXRo X2hlaWdodCwgcnFfcmVncy5ycV9yZWdzX2Muc3dhdGhfaGVpZ2h0KTsKKwlpZiAocnFfcmVncy5y cV9yZWdzX2MucHRlX3Jvd19oZWlnaHRfbGluZWFyICE9IGRtbF9ycV9yZWdzLT5ycV9yZWdzX2Mu cHRlX3Jvd19oZWlnaHRfbGluZWFyKQorCQlEQ19MT0dfREVCVUcoIkRNTCBWYWxpZGF0aW9uIHwg RENIVUJQX1JFUV9TSVpFX0NPTkZJRzpQVEVfUk9XX0hFSUdIVF9MSU5FQVJfQyAtIEV4cGVjdGVk OiAldSAgQWN0dWFsOiAldVxuIiwKKwkJCQlkbWxfcnFfcmVncy0+cnFfcmVnc19jLnB0ZV9yb3df aGVpZ2h0X2xpbmVhciwgcnFfcmVncy5ycV9yZWdzX2MucHRlX3Jvd19oZWlnaHRfbGluZWFyKTsK KworCisJLyogRExHIC0gUGVyIGh1YnAgKi8KKwlSRUdfR0VUXzIoQkxBTktfT0ZGU0VUXzAsCisJ CVJFRkNZQ19IX0JMQU5LX0VORCwgJmRsZ19hdHRyLnJlZmN5Y19oX2JsYW5rX2VuZCwKKwkJRExH X1ZfQkxBTktfRU5ELCAmZGxnX2F0dHIuZGxnX3ZibGFua19lbmQpOworCVJFR19HRVQoQkxBTktf T0ZGU0VUXzEsCisJCU1JTl9EU1RfWV9ORVhUX1NUQVJULCAmZGxnX2F0dHIubWluX2RzdF95X25l eHRfc3RhcnQpOworCVJFR19HRVQoRFNUX0RJTUVOU0lPTlMsCisJCVJFRkNZQ19QRVJfSFRPVEFM LCAmZGxnX2F0dHIucmVmY3ljX3Blcl9odG90YWwpOworCVJFR19HRVRfMihEU1RfQUZURVJfU0NB TEVSLAorCQlSRUZDWUNfWF9BRlRFUl9TQ0FMRVIsICZkbGdfYXR0ci5yZWZjeWNfeF9hZnRlcl9z Y2FsZXIsCisJCURTVF9ZX0FGVEVSX1NDQUxFUiwgJmRsZ19hdHRyLmRzdF95X2FmdGVyX3NjYWxl cik7CisJUkVHX0dFVChSRUZfRlJFUV9UT19QSVhfRlJFUSwKKwkJUkVGX0ZSRVFfVE9fUElYX0ZS RVEsICZkbGdfYXR0ci5yZWZfZnJlcV90b19waXhfZnJlcSk7CisKKwlpZiAoZGxnX2F0dHIucmVm Y3ljX2hfYmxhbmtfZW5kICE9IGRtbF9kbGdfYXR0ci0+cmVmY3ljX2hfYmxhbmtfZW5kKQorCQlE Q19MT0dfREVCVUcoIkRNTCBWYWxpZGF0aW9uIHwgQkxBTktfT0ZGU0VUXzA6UkVGQ1lDX0hfQkxB TktfRU5EIC0gRXhwZWN0ZWQ6ICV1ICBBY3R1YWw6ICV1XG4iLAorCQkJCWRtbF9kbGdfYXR0ci0+ cmVmY3ljX2hfYmxhbmtfZW5kLCBkbGdfYXR0ci5yZWZjeWNfaF9ibGFua19lbmQpOworCWlmIChk bGdfYXR0ci5kbGdfdmJsYW5rX2VuZCAhPSBkbWxfZGxnX2F0dHItPmRsZ192YmxhbmtfZW5kKQor CQlEQ19MT0dfREVCVUcoIkRNTCBWYWxpZGF0aW9uIHwgQkxBTktfT0ZGU0VUXzA6RExHX1ZfQkxB TktfRU5EIC0gRXhwZWN0ZWQ6ICV1ICBBY3R1YWw6ICV1XG4iLAorCQkJCWRtbF9kbGdfYXR0ci0+ ZGxnX3ZibGFua19lbmQsIGRsZ19hdHRyLmRsZ192YmxhbmtfZW5kKTsKKwlpZiAoZGxnX2F0dHIu bWluX2RzdF95X25leHRfc3RhcnQgIT0gZG1sX2RsZ19hdHRyLT5taW5fZHN0X3lfbmV4dF9zdGFy dCkKKwkJRENfTE9HX0RFQlVHKCJETUwgVmFsaWRhdGlvbiB8IEJMQU5LX09GRlNFVF8xOk1JTl9E U1RfWV9ORVhUX1NUQVJUIC0gRXhwZWN0ZWQ6ICV1ICBBY3R1YWw6ICV1XG4iLAorCQkJCWRtbF9k bGdfYXR0ci0+bWluX2RzdF95X25leHRfc3RhcnQsIGRsZ19hdHRyLm1pbl9kc3RfeV9uZXh0X3N0 YXJ0KTsKKwlpZiAoZGxnX2F0dHIucmVmY3ljX3Blcl9odG90YWwgIT0gZG1sX2RsZ19hdHRyLT5y ZWZjeWNfcGVyX2h0b3RhbCkKKwkJRENfTE9HX0RFQlVHKCJETUwgVmFsaWRhdGlvbiB8IERTVF9E SU1FTlNJT05TOlJFRkNZQ19QRVJfSFRPVEFMIC0gRXhwZWN0ZWQ6ICV1ICBBY3R1YWw6ICV1XG4i LAorCQkJCWRtbF9kbGdfYXR0ci0+cmVmY3ljX3Blcl9odG90YWwsIGRsZ19hdHRyLnJlZmN5Y19w ZXJfaHRvdGFsKTsKKwlpZiAoZGxnX2F0dHIucmVmY3ljX3hfYWZ0ZXJfc2NhbGVyICE9IGRtbF9k bGdfYXR0ci0+cmVmY3ljX3hfYWZ0ZXJfc2NhbGVyKQorCQlEQ19MT0dfREVCVUcoIkRNTCBWYWxp ZGF0aW9uIHwgRFNUX0FGVEVSX1NDQUxFUjpSRUZDWUNfWF9BRlRFUl9TQ0FMRVIgLSBFeHBlY3Rl ZDogJXUgIEFjdHVhbDogJXVcbiIsCisJCQkJZG1sX2RsZ19hdHRyLT5yZWZjeWNfeF9hZnRlcl9z Y2FsZXIsIGRsZ19hdHRyLnJlZmN5Y194X2FmdGVyX3NjYWxlcik7CisJaWYgKGRsZ19hdHRyLmRz dF95X2FmdGVyX3NjYWxlciAhPSBkbWxfZGxnX2F0dHItPmRzdF95X2FmdGVyX3NjYWxlcikKKwkJ RENfTE9HX0RFQlVHKCJETUwgVmFsaWRhdGlvbiB8IERTVF9BRlRFUl9TQ0FMRVI6RFNUX1lfQUZU RVJfU0NBTEVSIC0gRXhwZWN0ZWQ6ICV1ICBBY3R1YWw6ICV1XG4iLAorCQkJCWRtbF9kbGdfYXR0 ci0+ZHN0X3lfYWZ0ZXJfc2NhbGVyLCBkbGdfYXR0ci5kc3RfeV9hZnRlcl9zY2FsZXIpOworCWlm IChkbGdfYXR0ci5yZWZfZnJlcV90b19waXhfZnJlcSAhPSBkbWxfZGxnX2F0dHItPnJlZl9mcmVx X3RvX3BpeF9mcmVxKQorCQlEQ19MT0dfREVCVUcoIkRNTCBWYWxpZGF0aW9uIHwgUkVGX0ZSRVFf VE9fUElYX0ZSRVE6UkVGX0ZSRVFfVE9fUElYX0ZSRVEgLSBFeHBlY3RlZDogJXUgIEFjdHVhbDog JXVcbiIsCisJCQkJZG1sX2RsZ19hdHRyLT5yZWZfZnJlcV90b19waXhfZnJlcSwgZGxnX2F0dHIu cmVmX2ZyZXFfdG9fcGl4X2ZyZXEpOworCisJLyogRExHIC0gUGVyIGx1bWEvY2hyb21hICovCisJ UkVHX0dFVChWQkxBTktfUEFSQU1FVEVSU18xLAorCQlSRUZDWUNfUEVSX1BURV9HUk9VUF9WQkxB TktfTCwgJmRsZ19hdHRyLnJlZmN5Y19wZXJfcHRlX2dyb3VwX3ZibGFua19sKTsKKwlpZiAoUkVH KE5PTV9QQVJBTUVURVJTXzApKQorCQlSRUdfR0VUKE5PTV9QQVJBTUVURVJTXzAsCisJCQlEU1Rf WV9QRVJfUFRFX1JPV19OT01fTCwgJmRsZ19hdHRyLmRzdF95X3Blcl9wdGVfcm93X25vbV9sKTsK KwlpZiAoUkVHKE5PTV9QQVJBTUVURVJTXzEpKQorCQlSRUdfR0VUKE5PTV9QQVJBTUVURVJTXzEs CisJCQlSRUZDWUNfUEVSX1BURV9HUk9VUF9OT01fTCwgJmRsZ19hdHRyLnJlZmN5Y19wZXJfcHRl X2dyb3VwX25vbV9sKTsKKwlSRUdfR0VUKE5PTV9QQVJBTUVURVJTXzQsCisJCURTVF9ZX1BFUl9N RVRBX1JPV19OT01fTCwgJmRsZ19hdHRyLmRzdF95X3Blcl9tZXRhX3Jvd19ub21fbCk7CisJUkVH X0dFVChOT01fUEFSQU1FVEVSU181LAorCQlSRUZDWUNfUEVSX01FVEFfQ0hVTktfTk9NX0wsICZk bGdfYXR0ci5yZWZjeWNfcGVyX21ldGFfY2h1bmtfbm9tX2wpOworCVJFR19HRVRfMihQRVJfTElO RV9ERUxJVkVSWSwKKwkJUkVGQ1lDX1BFUl9MSU5FX0RFTElWRVJZX0wsICZkbGdfYXR0ci5yZWZj eWNfcGVyX2xpbmVfZGVsaXZlcnlfbCwKKwkJUkVGQ1lDX1BFUl9MSU5FX0RFTElWRVJZX0MsICZk bGdfYXR0ci5yZWZjeWNfcGVyX2xpbmVfZGVsaXZlcnlfYyk7CisJUkVHX0dFVF8yKFBFUl9MSU5F X0RFTElWRVJZX1BSRSwKKwkJUkVGQ1lDX1BFUl9MSU5FX0RFTElWRVJZX1BSRV9MLCAmZGxnX2F0 dHIucmVmY3ljX3Blcl9saW5lX2RlbGl2ZXJ5X3ByZV9sLAorCQlSRUZDWUNfUEVSX0xJTkVfREVM SVZFUllfUFJFX0MsICZkbGdfYXR0ci5yZWZjeWNfcGVyX2xpbmVfZGVsaXZlcnlfcHJlX2MpOwor CVJFR19HRVQoVkJMQU5LX1BBUkFNRVRFUlNfMiwKKwkJUkVGQ1lDX1BFUl9QVEVfR1JPVVBfVkJM QU5LX0MsICZkbGdfYXR0ci5yZWZjeWNfcGVyX3B0ZV9ncm91cF92YmxhbmtfYyk7CisJaWYgKFJF RyhOT01fUEFSQU1FVEVSU18yKSkKKwkJUkVHX0dFVChOT01fUEFSQU1FVEVSU18yLAorCQkJRFNU X1lfUEVSX1BURV9ST1dfTk9NX0MsICZkbGdfYXR0ci5kc3RfeV9wZXJfcHRlX3Jvd19ub21fYyk7 CisJaWYgKFJFRyhOT01fUEFSQU1FVEVSU18zKSkKKwkJUkVHX0dFVChOT01fUEFSQU1FVEVSU18z LAorCQkJUkVGQ1lDX1BFUl9QVEVfR1JPVVBfTk9NX0MsICZkbGdfYXR0ci5yZWZjeWNfcGVyX3B0 ZV9ncm91cF9ub21fYyk7CisJUkVHX0dFVChOT01fUEFSQU1FVEVSU182LAorCQlEU1RfWV9QRVJf TUVUQV9ST1dfTk9NX0MsICZkbGdfYXR0ci5kc3RfeV9wZXJfbWV0YV9yb3dfbm9tX2MpOworCVJF R19HRVQoTk9NX1BBUkFNRVRFUlNfNywKKwkJUkVGQ1lDX1BFUl9NRVRBX0NIVU5LX05PTV9DLCAm ZGxnX2F0dHIucmVmY3ljX3Blcl9tZXRhX2NodW5rX25vbV9jKTsKKwlSRUdfR0VUKFZCTEFOS19Q QVJBTUVURVJTXzMsCisJCQlSRUZDWUNfUEVSX01FVEFfQ0hVTktfVkJMQU5LX0wsICZkbGdfYXR0 ci5yZWZjeWNfcGVyX21ldGFfY2h1bmtfdmJsYW5rX2wpOworCVJFR19HRVQoVkJMQU5LX1BBUkFN RVRFUlNfNCwKKwkJCVJFRkNZQ19QRVJfTUVUQV9DSFVOS19WQkxBTktfQywgJmRsZ19hdHRyLnJl ZmN5Y19wZXJfbWV0YV9jaHVua192YmxhbmtfYyk7CisKKwlpZiAoZGxnX2F0dHIucmVmY3ljX3Bl cl9wdGVfZ3JvdXBfdmJsYW5rX2wgIT0gZG1sX2RsZ19hdHRyLT5yZWZjeWNfcGVyX3B0ZV9ncm91 cF92YmxhbmtfbCkKKwkJRENfTE9HX0RFQlVHKCJETUwgVmFsaWRhdGlvbiB8IFZCTEFOS19QQVJB TUVURVJTXzE6UkVGQ1lDX1BFUl9QVEVfR1JPVVBfVkJMQU5LX0wgLSBFeHBlY3RlZDogJXUgIEFj dHVhbDogJXVcbiIsCisJCQkJZG1sX2RsZ19hdHRyLT5yZWZjeWNfcGVyX3B0ZV9ncm91cF92Ymxh bmtfbCwgZGxnX2F0dHIucmVmY3ljX3Blcl9wdGVfZ3JvdXBfdmJsYW5rX2wpOworCWlmIChkbGdf YXR0ci5kc3RfeV9wZXJfcHRlX3Jvd19ub21fbCAhPSBkbWxfZGxnX2F0dHItPmRzdF95X3Blcl9w dGVfcm93X25vbV9sKQorCQlEQ19MT0dfREVCVUcoIkRNTCBWYWxpZGF0aW9uIHwgTk9NX1BBUkFN RVRFUlNfMDpEU1RfWV9QRVJfUFRFX1JPV19OT01fTCAtIEV4cGVjdGVkOiAldSAgQWN0dWFsOiAl dVxuIiwKKwkJCQlkbWxfZGxnX2F0dHItPmRzdF95X3Blcl9wdGVfcm93X25vbV9sLCBkbGdfYXR0 ci5kc3RfeV9wZXJfcHRlX3Jvd19ub21fbCk7CisJaWYgKGRsZ19hdHRyLnJlZmN5Y19wZXJfcHRl X2dyb3VwX25vbV9sICE9IGRtbF9kbGdfYXR0ci0+cmVmY3ljX3Blcl9wdGVfZ3JvdXBfbm9tX2wp CisJCURDX0xPR19ERUJVRygiRE1MIFZhbGlkYXRpb24gfCBOT01fUEFSQU1FVEVSU18xOlJFRkNZ Q19QRVJfUFRFX0dST1VQX05PTV9MIC0gRXhwZWN0ZWQ6ICV1ICBBY3R1YWw6ICV1XG4iLAorCQkJ CWRtbF9kbGdfYXR0ci0+cmVmY3ljX3Blcl9wdGVfZ3JvdXBfbm9tX2wsIGRsZ19hdHRyLnJlZmN5 Y19wZXJfcHRlX2dyb3VwX25vbV9sKTsKKwlpZiAoZGxnX2F0dHIuZHN0X3lfcGVyX21ldGFfcm93 X25vbV9sICE9IGRtbF9kbGdfYXR0ci0+ZHN0X3lfcGVyX21ldGFfcm93X25vbV9sKQorCQlEQ19M T0dfREVCVUcoIkRNTCBWYWxpZGF0aW9uIHwgTk9NX1BBUkFNRVRFUlNfNDpEU1RfWV9QRVJfTUVU QV9ST1dfTk9NX0wgLSBFeHBlY3RlZDogJXUgIEFjdHVhbDogJXVcbiIsCisJCQkJZG1sX2RsZ19h dHRyLT5kc3RfeV9wZXJfbWV0YV9yb3dfbm9tX2wsIGRsZ19hdHRyLmRzdF95X3Blcl9tZXRhX3Jv d19ub21fbCk7CisJaWYgKGRsZ19hdHRyLnJlZmN5Y19wZXJfbWV0YV9jaHVua19ub21fbCAhPSBk bWxfZGxnX2F0dHItPnJlZmN5Y19wZXJfbWV0YV9jaHVua19ub21fbCkKKwkJRENfTE9HX0RFQlVH KCJETUwgVmFsaWRhdGlvbiB8IE5PTV9QQVJBTUVURVJTXzU6UkVGQ1lDX1BFUl9NRVRBX0NIVU5L X05PTV9MIC0gRXhwZWN0ZWQ6ICV1ICBBY3R1YWw6ICV1XG4iLAorCQkJCWRtbF9kbGdfYXR0ci0+ cmVmY3ljX3Blcl9tZXRhX2NodW5rX25vbV9sLCBkbGdfYXR0ci5yZWZjeWNfcGVyX21ldGFfY2h1 bmtfbm9tX2wpOworCWlmIChkbGdfYXR0ci5yZWZjeWNfcGVyX2xpbmVfZGVsaXZlcnlfbCAhPSBk bWxfZGxnX2F0dHItPnJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9sKQorCQlEQ19MT0dfREVCVUco IkRNTCBWYWxpZGF0aW9uIHwgUEVSX0xJTkVfREVMSVZFUlk6UkVGQ1lDX1BFUl9MSU5FX0RFTElW RVJZX0wgLSBFeHBlY3RlZDogJXUgIEFjdHVhbDogJXVcbiIsCisJCQkJZG1sX2RsZ19hdHRyLT5y ZWZjeWNfcGVyX2xpbmVfZGVsaXZlcnlfbCwgZGxnX2F0dHIucmVmY3ljX3Blcl9saW5lX2RlbGl2 ZXJ5X2wpOworCWlmIChkbGdfYXR0ci5yZWZjeWNfcGVyX2xpbmVfZGVsaXZlcnlfYyAhPSBkbWxf ZGxnX2F0dHItPnJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9jKQorCQlEQ19MT0dfREVCVUcoIkRN TCBWYWxpZGF0aW9uIHwgUEVSX0xJTkVfREVMSVZFUlk6UkVGQ1lDX1BFUl9MSU5FX0RFTElWRVJZ X0MgLSBFeHBlY3RlZDogJXUgIEFjdHVhbDogJXVcbiIsCisJCQkJZG1sX2RsZ19hdHRyLT5yZWZj eWNfcGVyX2xpbmVfZGVsaXZlcnlfYywgZGxnX2F0dHIucmVmY3ljX3Blcl9saW5lX2RlbGl2ZXJ5 X2MpOworCWlmIChkbGdfYXR0ci5yZWZjeWNfcGVyX3B0ZV9ncm91cF92YmxhbmtfYyAhPSBkbWxf ZGxnX2F0dHItPnJlZmN5Y19wZXJfcHRlX2dyb3VwX3ZibGFua19jKQorCQlEQ19MT0dfREVCVUco IkRNTCBWYWxpZGF0aW9uIHwgVkJMQU5LX1BBUkFNRVRFUlNfMjpSRUZDWUNfUEVSX1BURV9HUk9V UF9WQkxBTktfQyAtIEV4cGVjdGVkOiAldSAgQWN0dWFsOiAldVxuIiwKKwkJCQlkbWxfZGxnX2F0 dHItPnJlZmN5Y19wZXJfcHRlX2dyb3VwX3ZibGFua19jLCBkbGdfYXR0ci5yZWZjeWNfcGVyX3B0 ZV9ncm91cF92YmxhbmtfYyk7CisJaWYgKGRsZ19hdHRyLmRzdF95X3Blcl9wdGVfcm93X25vbV9j ICE9IGRtbF9kbGdfYXR0ci0+ZHN0X3lfcGVyX3B0ZV9yb3dfbm9tX2MpCisJCURDX0xPR19ERUJV RygiRE1MIFZhbGlkYXRpb24gfCBOT01fUEFSQU1FVEVSU18yOkRTVF9ZX1BFUl9QVEVfUk9XX05P TV9DIC0gRXhwZWN0ZWQ6ICV1ICBBY3R1YWw6ICV1XG4iLAorCQkJCWRtbF9kbGdfYXR0ci0+ZHN0 X3lfcGVyX3B0ZV9yb3dfbm9tX2MsIGRsZ19hdHRyLmRzdF95X3Blcl9wdGVfcm93X25vbV9jKTsK KwlpZiAoZGxnX2F0dHIucmVmY3ljX3Blcl9wdGVfZ3JvdXBfbm9tX2MgIT0gZG1sX2RsZ19hdHRy LT5yZWZjeWNfcGVyX3B0ZV9ncm91cF9ub21fYykKKwkJRENfTE9HX0RFQlVHKCJETUwgVmFsaWRh dGlvbiB8IE5PTV9QQVJBTUVURVJTXzM6UkVGQ1lDX1BFUl9QVEVfR1JPVVBfTk9NX0MgLSBFeHBl Y3RlZDogJXUgIEFjdHVhbDogJXVcbiIsCisJCQkJZG1sX2RsZ19hdHRyLT5yZWZjeWNfcGVyX3B0 ZV9ncm91cF9ub21fYywgZGxnX2F0dHIucmVmY3ljX3Blcl9wdGVfZ3JvdXBfbm9tX2MpOworCWlm IChkbGdfYXR0ci5kc3RfeV9wZXJfbWV0YV9yb3dfbm9tX2MgIT0gZG1sX2RsZ19hdHRyLT5kc3Rf eV9wZXJfbWV0YV9yb3dfbm9tX2MpCisJCURDX0xPR19ERUJVRygiRE1MIFZhbGlkYXRpb24gfCBO T01fUEFSQU1FVEVSU182OkRTVF9ZX1BFUl9NRVRBX1JPV19OT01fQyAtIEV4cGVjdGVkOiAldSAg QWN0dWFsOiAldVxuIiwKKwkJCQlkbWxfZGxnX2F0dHItPmRzdF95X3Blcl9tZXRhX3Jvd19ub21f YywgZGxnX2F0dHIuZHN0X3lfcGVyX21ldGFfcm93X25vbV9jKTsKKwlpZiAoZGxnX2F0dHIucmVm Y3ljX3Blcl9tZXRhX2NodW5rX25vbV9jICE9IGRtbF9kbGdfYXR0ci0+cmVmY3ljX3Blcl9tZXRh X2NodW5rX25vbV9jKQorCQlEQ19MT0dfREVCVUcoIkRNTCBWYWxpZGF0aW9uIHwgTk9NX1BBUkFN RVRFUlNfNzpSRUZDWUNfUEVSX01FVEFfQ0hVTktfTk9NX0MgLSBFeHBlY3RlZDogJXUgIEFjdHVh bDogJXVcbiIsCisJCQkJZG1sX2RsZ19hdHRyLT5yZWZjeWNfcGVyX21ldGFfY2h1bmtfbm9tX2Ms IGRsZ19hdHRyLnJlZmN5Y19wZXJfbWV0YV9jaHVua19ub21fYyk7CisJaWYgKGRsZ19hdHRyLnJl ZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9wcmVfbCAhPSBkbWxfZGxnX2F0dHItPnJlZmN5Y19wZXJf bGluZV9kZWxpdmVyeV9wcmVfbCkKKwkJRENfTE9HX0RFQlVHKCJETUwgVmFsaWRhdGlvbiB8IFBF Ul9MSU5FX0RFTElWRVJZX1BSRTpSRUZDWUNfUEVSX0xJTkVfREVMSVZFUllfUFJFX0wgLSBFeHBl Y3RlZDogJXUgIEFjdHVhbDogJXVcbiIsCisJCQkJZG1sX2RsZ19hdHRyLT5yZWZjeWNfcGVyX2xp bmVfZGVsaXZlcnlfcHJlX2wsIGRsZ19hdHRyLnJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9wcmVf bCk7CisJaWYgKGRsZ19hdHRyLnJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9wcmVfYyAhPSBkbWxf ZGxnX2F0dHItPnJlZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9wcmVfYykKKwkJRENfTE9HX0RFQlVH KCJETUwgVmFsaWRhdGlvbiB8IFBFUl9MSU5FX0RFTElWRVJZX1BSRTpSRUZDWUNfUEVSX0xJTkVf REVMSVZFUllfUFJFX0MgLSBFeHBlY3RlZDogJXUgIEFjdHVhbDogJXVcbiIsCisJCQkJZG1sX2Rs Z19hdHRyLT5yZWZjeWNfcGVyX2xpbmVfZGVsaXZlcnlfcHJlX2MsIGRsZ19hdHRyLnJlZmN5Y19w ZXJfbGluZV9kZWxpdmVyeV9wcmVfYyk7CisJaWYgKGRsZ19hdHRyLnJlZmN5Y19wZXJfbWV0YV9j aHVua192YmxhbmtfbCAhPSBkbWxfZGxnX2F0dHItPnJlZmN5Y19wZXJfbWV0YV9jaHVua192Ymxh bmtfbCkKKwkJRENfTE9HX0RFQlVHKCJETUwgVmFsaWRhdGlvbiB8IFZCTEFOS19QQVJBTUVURVJT XzM6UkVGQ1lDX1BFUl9NRVRBX0NIVU5LX1ZCTEFOS19MIC0gRXhwZWN0ZWQ6ICV1ICBBY3R1YWw6 ICV1XG4iLAorCQkJCWRtbF9kbGdfYXR0ci0+cmVmY3ljX3Blcl9tZXRhX2NodW5rX3ZibGFua19s LCBkbGdfYXR0ci5yZWZjeWNfcGVyX21ldGFfY2h1bmtfdmJsYW5rX2wpOworCWlmIChkbGdfYXR0 ci5yZWZjeWNfcGVyX21ldGFfY2h1bmtfdmJsYW5rX2MgIT0gZG1sX2RsZ19hdHRyLT5yZWZjeWNf cGVyX21ldGFfY2h1bmtfdmJsYW5rX2MpCisJCURDX0xPR19ERUJVRygiRE1MIFZhbGlkYXRpb24g fCBWQkxBTktfUEFSQU1FVEVSU180OlJFRkNZQ19QRVJfTUVUQV9DSFVOS19WQkxBTktfQyAtIEV4 cGVjdGVkOiAldSAgQWN0dWFsOiAldVxuIiwKKwkJCQlkbWxfZGxnX2F0dHItPnJlZmN5Y19wZXJf bWV0YV9jaHVua192YmxhbmtfYywgZGxnX2F0dHIucmVmY3ljX3Blcl9tZXRhX2NodW5rX3ZibGFu a19jKTsKKworCS8qIFRUVSAtIHBlciBodWJwICovCisJUkVHX0dFVF8yKERDTl9UVFVfUU9TX1dN LAorCQlRb1NfTEVWRUxfTE9XX1dNLCAmdHR1X2F0dHIucW9zX2xldmVsX2xvd193bSwKKwkJUW9T X0xFVkVMX0hJR0hfV00sICZ0dHVfYXR0ci5xb3NfbGV2ZWxfaGlnaF93bSk7CisKKwlpZiAodHR1 X2F0dHIucW9zX2xldmVsX2xvd193bSAhPSBkbWxfdHR1X2F0dHItPnFvc19sZXZlbF9sb3dfd20p CisJCURDX0xPR19ERUJVRygiRE1MIFZhbGlkYXRpb24gfCBEQ05fVFRVX1FPU19XTTpRb1NfTEVW RUxfTE9XX1dNIC0gRXhwZWN0ZWQ6ICV1ICBBY3R1YWw6ICV1XG4iLAorCQkJCWRtbF90dHVfYXR0 ci0+cW9zX2xldmVsX2xvd193bSwgdHR1X2F0dHIucW9zX2xldmVsX2xvd193bSk7CisJaWYgKHR0 dV9hdHRyLnFvc19sZXZlbF9oaWdoX3dtICE9IGRtbF90dHVfYXR0ci0+cW9zX2xldmVsX2hpZ2hf d20pCisJCURDX0xPR19ERUJVRygiRE1MIFZhbGlkYXRpb24gfCBEQ05fVFRVX1FPU19XTTpRb1Nf TEVWRUxfSElHSF9XTSAtIEV4cGVjdGVkOiAldSAgQWN0dWFsOiAldVxuIiwKKwkJCQlkbWxfdHR1 X2F0dHItPnFvc19sZXZlbF9oaWdoX3dtLCB0dHVfYXR0ci5xb3NfbGV2ZWxfaGlnaF93bSk7CisK KwkvKiBUVFUgLSBwZXIgbHVtYS9jaHJvbWEgKi8KKwkvKiBBc3N1bWVkIHN1cmYwIGlzIGx1bWEg YW5kIDEgaXMgY2hyb21hICovCisJUkVHX0dFVF8zKERDTl9TVVJGMF9UVFVfQ05UTDAsCisJCVJF RkNZQ19QRVJfUkVRX0RFTElWRVJZLCAmdHR1X2F0dHIucmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlf bCwKKwkJUW9TX0xFVkVMX0ZJWEVELCAmdHR1X2F0dHIucW9zX2xldmVsX2ZpeGVkX2wsCisJCVFv U19SQU1QX0RJU0FCTEUsICZ0dHVfYXR0ci5xb3NfcmFtcF9kaXNhYmxlX2wpOworCVJFR19HRVRf MyhEQ05fU1VSRjFfVFRVX0NOVEwwLAorCQlSRUZDWUNfUEVSX1JFUV9ERUxJVkVSWSwgJnR0dV9h dHRyLnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X2MsCisJCVFvU19MRVZFTF9GSVhFRCwgJnR0dV9h dHRyLnFvc19sZXZlbF9maXhlZF9jLAorCQlRb1NfUkFNUF9ESVNBQkxFLCAmdHR1X2F0dHIucW9z X3JhbXBfZGlzYWJsZV9jKTsKKwlSRUdfR0VUXzMoRENOX0NVUjBfVFRVX0NOVEwwLAorCQlSRUZD WUNfUEVSX1JFUV9ERUxJVkVSWSwgJnR0dV9hdHRyLnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X2N1 cjAsCisJCVFvU19MRVZFTF9GSVhFRCwgJnR0dV9hdHRyLnFvc19sZXZlbF9maXhlZF9jdXIwLAor CQlRb1NfUkFNUF9ESVNBQkxFLCAmdHR1X2F0dHIucW9zX3JhbXBfZGlzYWJsZV9jdXIwKTsKKwlS RUdfR0VUKEZMSVBfUEFSQU1FVEVSU18xLAorCQlSRUZDWUNfUEVSX1BURV9HUk9VUF9GTElQX0ws ICZkbGdfYXR0ci5yZWZjeWNfcGVyX3B0ZV9ncm91cF9mbGlwX2wpOworCVJFR19HRVQoRENOX0NV UjBfVFRVX0NOVEwxLAorCQkJUkVGQ1lDX1BFUl9SRVFfREVMSVZFUllfUFJFLCAmdHR1X2F0dHIu cmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfcHJlX2N1cjApOworCVJFR19HRVQoRENOX0NVUjFfVFRV X0NOVEwxLAorCQkJUkVGQ1lDX1BFUl9SRVFfREVMSVZFUllfUFJFLCAmdHR1X2F0dHIucmVmY3lj X3Blcl9yZXFfZGVsaXZlcnlfcHJlX2N1cjEpOworCVJFR19HRVQoRENOX1NVUkYwX1RUVV9DTlRM MSwKKwkJCVJFRkNZQ19QRVJfUkVRX0RFTElWRVJZX1BSRSwgJnR0dV9hdHRyLnJlZmN5Y19wZXJf cmVxX2RlbGl2ZXJ5X3ByZV9sKTsKKwlSRUdfR0VUKERDTl9TVVJGMV9UVFVfQ05UTDEsCisJCQlS RUZDWUNfUEVSX1JFUV9ERUxJVkVSWV9QUkUsICZ0dHVfYXR0ci5yZWZjeWNfcGVyX3JlcV9kZWxp dmVyeV9wcmVfYyk7CisKKwlpZiAodHR1X2F0dHIucmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfbCAh PSBkbWxfdHR1X2F0dHItPnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X2wpCisJCURDX0xPR19ERUJV RygiRE1MIFZhbGlkYXRpb24gfCBEQ05fU1VSRjBfVFRVX0NOVEwwOlJFRkNZQ19QRVJfUkVRX0RF TElWRVJZIC0gRXhwZWN0ZWQ6ICV1ICBBY3R1YWw6ICV1XG4iLAorCQkJCWRtbF90dHVfYXR0ci0+ cmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfbCwgdHR1X2F0dHIucmVmY3ljX3Blcl9yZXFfZGVsaXZl cnlfbCk7CisJaWYgKHR0dV9hdHRyLnFvc19sZXZlbF9maXhlZF9sICE9IGRtbF90dHVfYXR0ci0+ cW9zX2xldmVsX2ZpeGVkX2wpCisJCURDX0xPR19ERUJVRygiRE1MIFZhbGlkYXRpb24gfCBEQ05f U1VSRjBfVFRVX0NOVEwwOlFvU19MRVZFTF9GSVhFRCAtIEV4cGVjdGVkOiAldSAgQWN0dWFsOiAl dVxuIiwKKwkJCQlkbWxfdHR1X2F0dHItPnFvc19sZXZlbF9maXhlZF9sLCB0dHVfYXR0ci5xb3Nf bGV2ZWxfZml4ZWRfbCk7CisJaWYgKHR0dV9hdHRyLnFvc19yYW1wX2Rpc2FibGVfbCAhPSBkbWxf dHR1X2F0dHItPnFvc19yYW1wX2Rpc2FibGVfbCkKKwkJRENfTE9HX0RFQlVHKCJETUwgVmFsaWRh dGlvbiB8IERDTl9TVVJGMF9UVFVfQ05UTDA6UW9TX1JBTVBfRElTQUJMRSAtIEV4cGVjdGVkOiAl dSAgQWN0dWFsOiAldVxuIiwKKwkJCQlkbWxfdHR1X2F0dHItPnFvc19yYW1wX2Rpc2FibGVfbCwg dHR1X2F0dHIucW9zX3JhbXBfZGlzYWJsZV9sKTsKKwlpZiAodHR1X2F0dHIucmVmY3ljX3Blcl9y ZXFfZGVsaXZlcnlfYyAhPSBkbWxfdHR1X2F0dHItPnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X2Mp CisJCURDX0xPR19ERUJVRygiRE1MIFZhbGlkYXRpb24gfCBEQ05fU1VSRjFfVFRVX0NOVEwwOlJF RkNZQ19QRVJfUkVRX0RFTElWRVJZIC0gRXhwZWN0ZWQ6ICV1ICBBY3R1YWw6ICV1XG4iLAorCQkJ CWRtbF90dHVfYXR0ci0+cmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfYywgdHR1X2F0dHIucmVmY3lj X3Blcl9yZXFfZGVsaXZlcnlfYyk7CisJaWYgKHR0dV9hdHRyLnFvc19sZXZlbF9maXhlZF9jICE9 IGRtbF90dHVfYXR0ci0+cW9zX2xldmVsX2ZpeGVkX2MpCisJCURDX0xPR19ERUJVRygiRE1MIFZh bGlkYXRpb24gfCBEQ05fU1VSRjFfVFRVX0NOVEwwOlFvU19MRVZFTF9GSVhFRCAtIEV4cGVjdGVk OiAldSAgQWN0dWFsOiAldVxuIiwKKwkJCQlkbWxfdHR1X2F0dHItPnFvc19sZXZlbF9maXhlZF9j LCB0dHVfYXR0ci5xb3NfbGV2ZWxfZml4ZWRfYyk7CisJaWYgKHR0dV9hdHRyLnFvc19yYW1wX2Rp c2FibGVfYyAhPSBkbWxfdHR1X2F0dHItPnFvc19yYW1wX2Rpc2FibGVfYykKKwkJRENfTE9HX0RF QlVHKCJETUwgVmFsaWRhdGlvbiB8IERDTl9TVVJGMV9UVFVfQ05UTDA6UW9TX1JBTVBfRElTQUJM RSAtIEV4cGVjdGVkOiAldSAgQWN0dWFsOiAldVxuIiwKKwkJCQlkbWxfdHR1X2F0dHItPnFvc19y YW1wX2Rpc2FibGVfYywgdHR1X2F0dHIucW9zX3JhbXBfZGlzYWJsZV9jKTsKKwlpZiAodHR1X2F0 dHIucmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfY3VyMCAhPSBkbWxfdHR1X2F0dHItPnJlZmN5Y19w ZXJfcmVxX2RlbGl2ZXJ5X2N1cjApCisJCURDX0xPR19ERUJVRygiRE1MIFZhbGlkYXRpb24gfCBE Q05fQ1VSMF9UVFVfQ05UTDA6UkVGQ1lDX1BFUl9SRVFfREVMSVZFUlkgLSBFeHBlY3RlZDogJXUg IEFjdHVhbDogJXVcbiIsCisJCQkJZG1sX3R0dV9hdHRyLT5yZWZjeWNfcGVyX3JlcV9kZWxpdmVy eV9jdXIwLCB0dHVfYXR0ci5yZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9jdXIwKTsKKwlpZiAodHR1 X2F0dHIucW9zX2xldmVsX2ZpeGVkX2N1cjAgIT0gZG1sX3R0dV9hdHRyLT5xb3NfbGV2ZWxfZml4 ZWRfY3VyMCkKKwkJRENfTE9HX0RFQlVHKCJETUwgVmFsaWRhdGlvbiB8IERDTl9DVVIwX1RUVV9D TlRMMDpRb1NfTEVWRUxfRklYRUQgLSBFeHBlY3RlZDogJXUgIEFjdHVhbDogJXVcbiIsCisJCQkJ ZG1sX3R0dV9hdHRyLT5xb3NfbGV2ZWxfZml4ZWRfY3VyMCwgdHR1X2F0dHIucW9zX2xldmVsX2Zp eGVkX2N1cjApOworCWlmICh0dHVfYXR0ci5xb3NfcmFtcF9kaXNhYmxlX2N1cjAgIT0gZG1sX3R0 dV9hdHRyLT5xb3NfcmFtcF9kaXNhYmxlX2N1cjApCisJCURDX0xPR19ERUJVRygiRE1MIFZhbGlk YXRpb24gfCBEQ05fQ1VSMF9UVFVfQ05UTDA6UW9TX1JBTVBfRElTQUJMRSAtIEV4cGVjdGVkOiAl dSAgQWN0dWFsOiAldVxuIiwKKwkJCQlkbWxfdHR1X2F0dHItPnFvc19yYW1wX2Rpc2FibGVfY3Vy MCwgdHR1X2F0dHIucW9zX3JhbXBfZGlzYWJsZV9jdXIwKTsKKwlpZiAoZGxnX2F0dHIucmVmY3lj X3Blcl9wdGVfZ3JvdXBfZmxpcF9sICE9IGRtbF9kbGdfYXR0ci0+cmVmY3ljX3Blcl9wdGVfZ3Jv dXBfZmxpcF9sKQorCQlEQ19MT0dfREVCVUcoIkRNTCBWYWxpZGF0aW9uIHwgRkxJUF9QQVJBTUVU RVJTXzE6UkVGQ1lDX1BFUl9QVEVfR1JPVVBfRkxJUF9MIC0gRXhwZWN0ZWQ6ICV1ICBBY3R1YWw6 ICV1XG4iLAorCQkJCWRtbF9kbGdfYXR0ci0+cmVmY3ljX3Blcl9wdGVfZ3JvdXBfZmxpcF9sLCBk bGdfYXR0ci5yZWZjeWNfcGVyX3B0ZV9ncm91cF9mbGlwX2wpOworCWlmICh0dHVfYXR0ci5yZWZj eWNfcGVyX3JlcV9kZWxpdmVyeV9wcmVfY3VyMCAhPSBkbWxfdHR1X2F0dHItPnJlZmN5Y19wZXJf cmVxX2RlbGl2ZXJ5X3ByZV9jdXIwKQorCQlEQ19MT0dfREVCVUcoIkRNTCBWYWxpZGF0aW9uIHwg RENOX0NVUjBfVFRVX0NOVEwxOlJFRkNZQ19QRVJfUkVRX0RFTElWRVJZX1BSRSAtIEV4cGVjdGVk OiAldSAgQWN0dWFsOiAldVxuIiwKKwkJCQlkbWxfdHR1X2F0dHItPnJlZmN5Y19wZXJfcmVxX2Rl bGl2ZXJ5X3ByZV9jdXIwLCB0dHVfYXR0ci5yZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9wcmVfY3Vy MCk7CisJaWYgKHR0dV9hdHRyLnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9jdXIxICE9IGRt bF90dHVfYXR0ci0+cmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfcHJlX2N1cjEpCisJCURDX0xPR19E RUJVRygiRE1MIFZhbGlkYXRpb24gfCBEQ05fQ1VSMV9UVFVfQ05UTDE6UkVGQ1lDX1BFUl9SRVFf REVMSVZFUllfUFJFIC0gRXhwZWN0ZWQ6ICV1ICBBY3R1YWw6ICV1XG4iLAorCQkJCWRtbF90dHVf YXR0ci0+cmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfcHJlX2N1cjEsIHR0dV9hdHRyLnJlZmN5Y19w ZXJfcmVxX2RlbGl2ZXJ5X3ByZV9jdXIxKTsKKwlpZiAodHR1X2F0dHIucmVmY3ljX3Blcl9yZXFf ZGVsaXZlcnlfcHJlX2wgIT0gZG1sX3R0dV9hdHRyLT5yZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9w cmVfbCkKKwkJRENfTE9HX0RFQlVHKCJETUwgVmFsaWRhdGlvbiB8IERDTl9TVVJGMF9UVFVfQ05U TDE6UkVGQ1lDX1BFUl9SRVFfREVMSVZFUllfUFJFIC0gRXhwZWN0ZWQ6ICV1ICBBY3R1YWw6ICV1 XG4iLAorCQkJCWRtbF90dHVfYXR0ci0+cmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfcHJlX2wsIHR0 dV9hdHRyLnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9sKTsKKwlpZiAodHR1X2F0dHIucmVm Y3ljX3Blcl9yZXFfZGVsaXZlcnlfcHJlX2MgIT0gZG1sX3R0dV9hdHRyLT5yZWZjeWNfcGVyX3Jl cV9kZWxpdmVyeV9wcmVfYykKKwkJRENfTE9HX0RFQlVHKCJETUwgVmFsaWRhdGlvbiB8IERDTl9T VVJGMV9UVFVfQ05UTDE6UkVGQ1lDX1BFUl9SRVFfREVMSVZFUllfUFJFIC0gRXhwZWN0ZWQ6ICV1 ICBBY3R1YWw6ICV1XG4iLAorCQkJCWRtbF90dHVfYXR0ci0+cmVmY3ljX3Blcl9yZXFfZGVsaXZl cnlfcHJlX2MsIHR0dV9hdHRyLnJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9jKTsKKworCS8q IEhvc3QgVk0gZGVhZGxpbmUgcmVncyAqLworCVJFR19HRVQoVkJMQU5LX1BBUkFNRVRFUlNfNSwK KwkJUkVGQ1lDX1BFUl9WTV9HUk9VUF9WQkxBTkssICZkbGdfYXR0ci5yZWZjeWNfcGVyX3ZtX2dy b3VwX3ZibGFuayk7CisJUkVHX0dFVChWQkxBTktfUEFSQU1FVEVSU182LAorCQlSRUZDWUNfUEVS X1ZNX1JFUV9WQkxBTkssICZkbGdfYXR0ci5yZWZjeWNfcGVyX3ZtX3JlcV92YmxhbmspOworCVJF R19HRVQoRkxJUF9QQVJBTUVURVJTXzMsCisJCVJFRkNZQ19QRVJfVk1fR1JPVVBfRkxJUCwgJmRs Z19hdHRyLnJlZmN5Y19wZXJfdm1fZ3JvdXBfZmxpcCk7CisJUkVHX0dFVChGTElQX1BBUkFNRVRF UlNfNCwKKwkJUkVGQ1lDX1BFUl9WTV9SRVFfRkxJUCwgJmRsZ19hdHRyLnJlZmN5Y19wZXJfdm1f cmVxX2ZsaXApOworCVJFR19HRVQoRkxJUF9QQVJBTUVURVJTXzUsCisJCVJFRkNZQ19QRVJfUFRF X0dST1VQX0ZMSVBfQywgJmRsZ19hdHRyLnJlZmN5Y19wZXJfcHRlX2dyb3VwX2ZsaXBfYyk7CisJ UkVHX0dFVChGTElQX1BBUkFNRVRFUlNfNiwKKwkJUkVGQ1lDX1BFUl9NRVRBX0NIVU5LX0ZMSVBf QywgJmRsZ19hdHRyLnJlZmN5Y19wZXJfbWV0YV9jaHVua19mbGlwX2MpOworCVJFR19HRVQoRkxJ UF9QQVJBTUVURVJTXzIsCisJCVJFRkNZQ19QRVJfTUVUQV9DSFVOS19GTElQX0wsICZkbGdfYXR0 ci5yZWZjeWNfcGVyX21ldGFfY2h1bmtfZmxpcF9sKTsKKworCWlmIChkbGdfYXR0ci5yZWZjeWNf cGVyX3ZtX2dyb3VwX3ZibGFuayAhPSBkbWxfZGxnX2F0dHItPnJlZmN5Y19wZXJfdm1fZ3JvdXBf dmJsYW5rKQorCQlEQ19MT0dfREVCVUcoIkRNTCBWYWxpZGF0aW9uIHwgVkJMQU5LX1BBUkFNRVRF UlNfNTpSRUZDWUNfUEVSX1ZNX0dST1VQX1ZCTEFOSyAtIEV4cGVjdGVkOiAldSAgQWN0dWFsOiAl dVxuIiwKKwkJCQlkbWxfZGxnX2F0dHItPnJlZmN5Y19wZXJfdm1fZ3JvdXBfdmJsYW5rLCBkbGdf YXR0ci5yZWZjeWNfcGVyX3ZtX2dyb3VwX3ZibGFuayk7CisJaWYgKGRsZ19hdHRyLnJlZmN5Y19w ZXJfdm1fcmVxX3ZibGFuayAhPSBkbWxfZGxnX2F0dHItPnJlZmN5Y19wZXJfdm1fcmVxX3ZibGFu aykKKwkJRENfTE9HX0RFQlVHKCJETUwgVmFsaWRhdGlvbiB8IFZCTEFOS19QQVJBTUVURVJTXzY6 UkVGQ1lDX1BFUl9WTV9SRVFfVkJMQU5LIC0gRXhwZWN0ZWQ6ICV1ICBBY3R1YWw6ICV1XG4iLAor CQkJCWRtbF9kbGdfYXR0ci0+cmVmY3ljX3Blcl92bV9yZXFfdmJsYW5rLCBkbGdfYXR0ci5yZWZj eWNfcGVyX3ZtX3JlcV92YmxhbmspOworCWlmIChkbGdfYXR0ci5yZWZjeWNfcGVyX3ZtX2dyb3Vw X2ZsaXAgIT0gZG1sX2RsZ19hdHRyLT5yZWZjeWNfcGVyX3ZtX2dyb3VwX2ZsaXApCisJCURDX0xP R19ERUJVRygiRE1MIFZhbGlkYXRpb24gfCBGTElQX1BBUkFNRVRFUlNfMzpSRUZDWUNfUEVSX1ZN X0dST1VQX0ZMSVAgLSBFeHBlY3RlZDogJXUgIEFjdHVhbDogJXVcbiIsCisJCQkJZG1sX2RsZ19h dHRyLT5yZWZjeWNfcGVyX3ZtX2dyb3VwX2ZsaXAsIGRsZ19hdHRyLnJlZmN5Y19wZXJfdm1fZ3Jv dXBfZmxpcCk7CisJaWYgKGRsZ19hdHRyLnJlZmN5Y19wZXJfdm1fcmVxX2ZsaXAgIT0gZG1sX2Rs Z19hdHRyLT5yZWZjeWNfcGVyX3ZtX3JlcV9mbGlwKQorCQlEQ19MT0dfREVCVUcoIkRNTCBWYWxp ZGF0aW9uIHwgRkxJUF9QQVJBTUVURVJTXzQ6UkVGQ1lDX1BFUl9WTV9SRVFfRkxJUCAtIEV4cGVj dGVkOiAldSAgQWN0dWFsOiAldVxuIiwKKwkJCQlkbWxfZGxnX2F0dHItPnJlZmN5Y19wZXJfdm1f cmVxX2ZsaXAsIGRsZ19hdHRyLnJlZmN5Y19wZXJfdm1fcmVxX2ZsaXApOworCWlmIChkbGdfYXR0 ci5yZWZjeWNfcGVyX3B0ZV9ncm91cF9mbGlwX2MgIT0gZG1sX2RsZ19hdHRyLT5yZWZjeWNfcGVy X3B0ZV9ncm91cF9mbGlwX2MpCisJCURDX0xPR19ERUJVRygiRE1MIFZhbGlkYXRpb24gfCBGTElQ X1BBUkFNRVRFUlNfNTpSRUZDWUNfUEVSX1BURV9HUk9VUF9GTElQX0MgLSBFeHBlY3RlZDogJXUg IEFjdHVhbDogJXVcbiIsCisJCQkJZG1sX2RsZ19hdHRyLT5yZWZjeWNfcGVyX3B0ZV9ncm91cF9m bGlwX2MsIGRsZ19hdHRyLnJlZmN5Y19wZXJfcHRlX2dyb3VwX2ZsaXBfYyk7CisJaWYgKGRsZ19h dHRyLnJlZmN5Y19wZXJfbWV0YV9jaHVua19mbGlwX2MgIT0gZG1sX2RsZ19hdHRyLT5yZWZjeWNf cGVyX21ldGFfY2h1bmtfZmxpcF9jKQorCQlEQ19MT0dfREVCVUcoIkRNTCBWYWxpZGF0aW9uIHwg RkxJUF9QQVJBTUVURVJTXzY6UkVGQ1lDX1BFUl9NRVRBX0NIVU5LX0ZMSVBfQyAtIEV4cGVjdGVk OiAldSAgQWN0dWFsOiAldVxuIiwKKwkJCQlkbWxfZGxnX2F0dHItPnJlZmN5Y19wZXJfbWV0YV9j aHVua19mbGlwX2MsIGRsZ19hdHRyLnJlZmN5Y19wZXJfbWV0YV9jaHVua19mbGlwX2MpOworCWlm IChkbGdfYXR0ci5yZWZjeWNfcGVyX21ldGFfY2h1bmtfZmxpcF9sICE9IGRtbF9kbGdfYXR0ci0+ cmVmY3ljX3Blcl9tZXRhX2NodW5rX2ZsaXBfbCkKKwkJRENfTE9HX0RFQlVHKCJETUwgVmFsaWRh dGlvbiB8IEZMSVBfUEFSQU1FVEVSU18yOlJFRkNZQ19QRVJfTUVUQV9DSFVOS19GTElQX0wgLSBF eHBlY3RlZDogJXUgIEFjdHVhbDogJXVcbiIsCisJCQkJZG1sX2RsZ19hdHRyLT5yZWZjeWNfcGVy X21ldGFfY2h1bmtfZmxpcF9sLCBkbGdfYXR0ci5yZWZjeWNfcGVyX21ldGFfY2h1bmtfZmxpcF9s KTsKK30KKwogdm9pZCBodWJwMjFfaW5pdChzdHJ1Y3QgaHVicCAqaHVicCkKIHsKIAkvLyBERURD TjIxLTEzMzogSW5jb25zaXN0ZW50IHJvdyBzdGFydGluZyBsaW5lIGZvciBmbGlwIGJldHdlZW4g RFBURSBhbmQgTWV0YQpAQCAtMjg2LDYgKzYzMCw3IEBAIHN0YXRpYyBzdHJ1Y3QgaHVicF9mdW5j cyBkY24yMV9odWJwX2Z1bmNzID0gewogCS5odWJwX2NsZWFyX3VuZGVyZmxvdyA9IGh1YnAxX2Ns ZWFyX3VuZGVyZmxvdywKIAkuaHVicF9zZXRfZmxpcF9jb250cm9sX3N1cmZhY2VfZ3NsID0gaHVi cDJfc2V0X2ZsaXBfY29udHJvbF9zdXJmYWNlX2dzbCwKIAkuaHVicF9pbml0ID0gaHVicDIxX2lu aXQsCisJLnZhbGlkYXRlX2RtbF9vdXRwdXQgPSBodWJwMjFfdmFsaWRhdGVfZG1sX291dHB1dCwK IH07CiAKIGJvb2wgaHVicDIxX2NvbnN0cnVjdCgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvZGlzcGxheS9kYy9pbmMvaHcvaHVicC5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNw bGF5L2RjL2luYy9ody9odWJwLmgKaW5kZXggNjJiMmQyNGNkMWQzLi45NzkzZGEwZjNjN2UgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvaHcvaHVicC5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvaHcvaHVicC5oCkBAIC0xNTcs NiArMTU3LDEzIEBAIHN0cnVjdCBodWJwX2Z1bmNzIHsKIAkJc3RydWN0IGh1YnAgKmh1YnAsCiAJ CWJvb2wgZW5hYmxlKTsKIAorCXZvaWQgKCp2YWxpZGF0ZV9kbWxfb3V0cHV0KSgKKwkJCXN0cnVj dCBodWJwICpodWJwLAorCQkJc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKKwkJCXN0cnVjdCBfdmNz X2RwaV9kaXNwbGF5X3JxX3JlZ3Nfc3QgKmRtbF9ycV9yZWdzLAorCQkJc3RydWN0IF92Y3NfZHBp X2Rpc3BsYXlfZGxnX3JlZ3Nfc3QgKmRtbF9kbGdfYXR0ciwKKwkJCXN0cnVjdCBfdmNzX2RwaV9k aXNwbGF5X3R0dV9yZWdzX3N0ICpkbWxfdHR1X2F0dHIpOworCiB9OwogCiAjZW5kaWYKLS0gCjIu MjQuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1k LWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4