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=-8.2 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MIME_BASE64_TEXT,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, UNWANTED_LANGUAGE_BODY,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable 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 DA0E4C2D0A3 for ; Sat, 24 Oct 2020 08:01:07 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (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 2394E22281 for ; Sat, 24 Oct 2020 08:01:05 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=alsa-project.org header.i=@alsa-project.org header.b="WeSEleIg"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="Udzu1dcy" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2394E22281 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=alsa-devel-bounces@alsa-project.org Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id EC94617FA; Sat, 24 Oct 2020 10:00:13 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz EC94617FA DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1603526464; bh=S4HgIOKE3xfV+vn/lznwMzcYzgGGix2xDM3NwF+0mnE=; h=From:To:Subject:Date:In-Reply-To:References:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=WeSEleIgQPKIp7SlN4e+P7QbnppEfoPc/FVOykFkII4RcHzIIkWlF1GuN33HSEUSF pl49u4xiCJ7D4MbYFH5LGXLgNtSiW5f8zgiC6+rzqZiaqK8w4/EMgc/xWWTx/r/pEG DOpiajpcTZCy2wN1ZKpDvYVmn+1SPuM9GihR6kG0= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 660A0F8049C; Sat, 24 Oct 2020 09:59:25 +0200 (CEST) Received: by alsa1.perex.cz (Postfix, from userid 50401) id 4CAD6F804BB; Sat, 24 Oct 2020 09:59:23 +0200 (CEST) Received: from mailgw02.mediatek.com (unknown [210.61.82.184]) by alsa1.perex.cz (Postfix) with ESMTP id 7788AF8025F for ; Sat, 24 Oct 2020 09:59:10 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz 7788AF8025F Authentication-Results: alsa1.perex.cz; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="Udzu1dcy" X-UUID: fd398caf863642ce9625e965c73c000c-20201024 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=S4HgIOKE3xfV+vn/lznwMzcYzgGGix2xDM3NwF+0mnE=; b=Udzu1dcyJm1sAQLfhN9yMYWUo+MXgF3q3njIdPk0x3n7AIuKJ50H0EwzdEFlL1+2ibz4IjC0Ac56IgTxCGXmPDQC2uVMFw6/w2rs1NPuumiyWaWWn6rX/B3JG+3ikSMDJaJW8TCC6e2nkTJdEg5UFI3AzN0K/g575cD91T1s0I8=; X-UUID: fd398caf863642ce9625e965c73c000c-20201024 Received: from mtkcas08.mediatek.inc [(172.21.101.126)] by mailgw02.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.14 Build 0819 with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 774209128; Sat, 24 Oct 2020 15:59:05 +0800 Received: from mtkcas07.mediatek.inc (172.21.101.84) by mtkmbs06n1.mediatek.inc (172.21.101.129) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sat, 24 Oct 2020 15:59:04 +0800 Received: from localhost.localdomain (10.17.3.153) by mtkcas07.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Sat, 24 Oct 2020 15:59:02 +0800 From: Jiaxin Yu To: , , , , , , , , , Subject: [PATCH v3 3/9] ASoC: mediatek: mt8192: support i2s in platform driver Date: Sat, 24 Oct 2020 15:58:53 +0800 Message-ID: <1603526339-15005-4-git-send-email-jiaxin.yu@mediatek.com> X-Mailer: git-send-email 1.8.1.1.dirty In-Reply-To: <1603526339-15005-1-git-send-email-jiaxin.yu@mediatek.com> References: <1603526339-15005-1-git-send-email-jiaxin.yu@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Content-Transfer-Encoding: base64 Cc: shane.chien@mediatek.com, Bicycle.Tsai@mediatek.com, Jiaxin Yu , Trevor.Wu@mediatek.com, kuninori.morimoto.gx@renesas.com X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" VGhpcyBwYXRjaCBhZGRzIG10ODE5MiBpMnMgZGFpIGRyaXZlci4NCg0KU2lnbmVkLW9mZi1ieTog SmlheGluIFl1IDxqaWF4aW4ueXVAbWVkaWF0ZWsuY29tPg0KLS0tDQogc291bmQvc29jL21lZGlh dGVrL210ODE5Mi9tdDgxOTItZGFpLWkycy5jIHwgMjEzOSArKysrKysrKysrKysrKysrKysrKw0K IDEgZmlsZSBjaGFuZ2VkLCAyMTM5IGluc2VydGlvbnMoKykNCiBjcmVhdGUgbW9kZSAxMDA2NDQg c291bmQvc29jL21lZGlhdGVrL210ODE5Mi9tdDgxOTItZGFpLWkycy5jDQoNCmRpZmYgLS1naXQg YS9zb3VuZC9zb2MvbWVkaWF0ZWsvbXQ4MTkyL210ODE5Mi1kYWktaTJzLmMgYi9zb3VuZC9zb2Mv bWVkaWF0ZWsvbXQ4MTkyL210ODE5Mi1kYWktaTJzLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQpp bmRleCAwMDAwMDAwMDAwMDAwLi4xODg2NjA2NGJmNzI1DQotLS0gL2Rldi9udWxsDQorKysgYi9z b3VuZC9zb2MvbWVkaWF0ZWsvbXQ4MTkyL210ODE5Mi1kYWktaTJzLmMNCkBAIC0wLDAgKzEsMjEz OSBAQA0KKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wDQorLy8NCisvLyBNZWRp YVRlayBBTFNBIFNvQyBBdWRpbyBEQUkgSTJTIENvbnRyb2wNCisvLw0KKy8vIENvcHlyaWdodCAo YykgMjAyMCBNZWRpYVRlayBJbmMuDQorLy8gQXV0aG9yOiBTaGFuZSBDaGllbiA8c2hhbmUuY2hp ZW5AbWVkaWF0ZWsuY29tPg0KKy8vDQorDQorI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5oPg0KKyNp bmNsdWRlIDxsaW51eC9yZWdtYXAuaD4NCisjaW5jbHVkZSA8c291bmQvcGNtX3BhcmFtcy5oPg0K Kw0KKyNpbmNsdWRlICJtdDgxOTItYWZlLWNsay5oIg0KKyNpbmNsdWRlICJtdDgxOTItYWZlLWNv bW1vbi5oIg0KKyNpbmNsdWRlICJtdDgxOTItYWZlLWdwaW8uaCINCisjaW5jbHVkZSAibXQ4MTky LWludGVyY29ubmVjdGlvbi5oIg0KKw0KK2VudW0gew0KKwlJMlNfRk1UX0VJQUogPSAwLA0KKwlJ MlNfRk1UX0kyUyA9IDEsDQorfTsNCisNCitlbnVtIHsNCisJSTJTX1dMRU5fMTZfQklUID0gMCwN CisJSTJTX1dMRU5fMzJfQklUID0gMSwNCit9Ow0KKw0KK2VudW0gew0KKwlJMlNfSERfTk9STUFM ID0gMCwNCisJSTJTX0hEX0xPV19KSVRURVIgPSAxLA0KK307DQorDQorZW51bSB7DQorCUkyUzFf U0VMX08yOF9PMjkgPSAwLA0KKwlJMlMxX1NFTF9PMDNfTzA0ID0gMSwNCit9Ow0KKw0KK2VudW0g ew0KKwlJMlNfSU5fUEFEX0NPTk5TWVMgPSAwLA0KKwlJMlNfSU5fUEFEX0lPX01VWCA9IDEsDQor fTsNCisNCitzdHJ1Y3QgbXRrX2FmZV9pMnNfcHJpdiB7DQorCWludCBpZDsNCisJaW50IHJhdGU7 IC8qIGZvciBkZXRlcm1pbmUgd2hpY2ggYXBsbCB0byB1c2UgKi8NCisJaW50IGxvd19qaXR0ZXJf ZW47DQorDQorCWNvbnN0IGNoYXIgKnNoYXJlX3Byb3BlcnR5X25hbWU7DQorCWludCBzaGFyZV9p MnNfaWQ7DQorDQorCWludCBtY2xrX2lkOw0KKwlpbnQgbWNsa19yYXRlOw0KKwlpbnQgbWNsa19h cGxsOw0KK307DQorDQorc3RhdGljIHVuc2lnbmVkIGludCBnZXRfaTJzX3dsZW4oc25kX3BjbV9m b3JtYXRfdCBmb3JtYXQpDQorew0KKwlyZXR1cm4gc25kX3BjbV9mb3JtYXRfcGh5c2ljYWxfd2lk dGgoZm9ybWF0KSA8PSAxNiA/DQorCSAgICAgICBJMlNfV0xFTl8xNl9CSVQgOiBJMlNfV0xFTl8z Ml9CSVQ7DQorfQ0KKw0KKyNkZWZpbmUgTVRLX0FGRV9JMlMwX0tDT05UUk9MX05BTUUgIkkyUzBf SERfTXV4Ig0KKyNkZWZpbmUgTVRLX0FGRV9JMlMxX0tDT05UUk9MX05BTUUgIkkyUzFfSERfTXV4 Ig0KKyNkZWZpbmUgTVRLX0FGRV9JMlMyX0tDT05UUk9MX05BTUUgIkkyUzJfSERfTXV4Ig0KKyNk ZWZpbmUgTVRLX0FGRV9JMlMzX0tDT05UUk9MX05BTUUgIkkyUzNfSERfTXV4Ig0KKyNkZWZpbmUg TVRLX0FGRV9JMlM1X0tDT05UUk9MX05BTUUgIkkyUzVfSERfTXV4Ig0KKyNkZWZpbmUgTVRLX0FG RV9JMlM2X0tDT05UUk9MX05BTUUgIkkyUzZfSERfTXV4Ig0KKyNkZWZpbmUgTVRLX0FGRV9JMlM3 X0tDT05UUk9MX05BTUUgIkkyUzdfSERfTXV4Ig0KKyNkZWZpbmUgTVRLX0FGRV9JMlM4X0tDT05U Uk9MX05BTUUgIkkyUzhfSERfTXV4Ig0KKyNkZWZpbmUgTVRLX0FGRV9JMlM5X0tDT05UUk9MX05B TUUgIkkyUzlfSERfTXV4Ig0KKw0KKyNkZWZpbmUgSTJTMF9IRF9FTl9XX05BTUUgIkkyUzBfSERf RU4iDQorI2RlZmluZSBJMlMxX0hEX0VOX1dfTkFNRSAiSTJTMV9IRF9FTiINCisjZGVmaW5lIEky UzJfSERfRU5fV19OQU1FICJJMlMyX0hEX0VOIg0KKyNkZWZpbmUgSTJTM19IRF9FTl9XX05BTUUg IkkyUzNfSERfRU4iDQorI2RlZmluZSBJMlM1X0hEX0VOX1dfTkFNRSAiSTJTNV9IRF9FTiINCisj ZGVmaW5lIEkyUzZfSERfRU5fV19OQU1FICJJMlM2X0hEX0VOIg0KKyNkZWZpbmUgSTJTN19IRF9F Tl9XX05BTUUgIkkyUzdfSERfRU4iDQorI2RlZmluZSBJMlM4X0hEX0VOX1dfTkFNRSAiSTJTOF9I RF9FTiINCisjZGVmaW5lIEkyUzlfSERfRU5fV19OQU1FICJJMlM5X0hEX0VOIg0KKw0KKyNkZWZp bmUgSTJTMF9NQ0xLX0VOX1dfTkFNRSAiSTJTMF9NQ0xLX0VOIg0KKyNkZWZpbmUgSTJTMV9NQ0xL X0VOX1dfTkFNRSAiSTJTMV9NQ0xLX0VOIg0KKyNkZWZpbmUgSTJTMl9NQ0xLX0VOX1dfTkFNRSAi STJTMl9NQ0xLX0VOIg0KKyNkZWZpbmUgSTJTM19NQ0xLX0VOX1dfTkFNRSAiSTJTM19NQ0xLX0VO Ig0KKyNkZWZpbmUgSTJTNV9NQ0xLX0VOX1dfTkFNRSAiSTJTNV9NQ0xLX0VOIg0KKyNkZWZpbmUg STJTNl9NQ0xLX0VOX1dfTkFNRSAiSTJTNl9NQ0xLX0VOIg0KKyNkZWZpbmUgSTJTN19NQ0xLX0VO X1dfTkFNRSAiSTJTN19NQ0xLX0VOIg0KKyNkZWZpbmUgSTJTOF9NQ0xLX0VOX1dfTkFNRSAiSTJT OF9NQ0xLX0VOIg0KKyNkZWZpbmUgSTJTOV9NQ0xLX0VOX1dfTkFNRSAiSTJTOV9NQ0xLX0VOIg0K Kw0KK3N0YXRpYyBpbnQgZ2V0X2kyc19pZF9ieV9uYW1lKHN0cnVjdCBtdGtfYmFzZV9hZmUgKmFm ZSwNCisJCQkgICAgICBjb25zdCBjaGFyICpuYW1lKQ0KK3sNCisJaWYgKHN0cm5jbXAobmFtZSwg IkkyUzAiLCA0KSA9PSAwKQ0KKwkJcmV0dXJuIE1UODE5Ml9EQUlfSTJTXzA7DQorCWVsc2UgaWYg KHN0cm5jbXAobmFtZSwgIkkyUzEiLCA0KSA9PSAwKQ0KKwkJcmV0dXJuIE1UODE5Ml9EQUlfSTJT XzE7DQorCWVsc2UgaWYgKHN0cm5jbXAobmFtZSwgIkkyUzIiLCA0KSA9PSAwKQ0KKwkJcmV0dXJu IE1UODE5Ml9EQUlfSTJTXzI7DQorCWVsc2UgaWYgKHN0cm5jbXAobmFtZSwgIkkyUzMiLCA0KSA9 PSAwKQ0KKwkJcmV0dXJuIE1UODE5Ml9EQUlfSTJTXzM7DQorCWVsc2UgaWYgKHN0cm5jbXAobmFt ZSwgIkkyUzUiLCA0KSA9PSAwKQ0KKwkJcmV0dXJuIE1UODE5Ml9EQUlfSTJTXzU7DQorCWVsc2Ug aWYgKHN0cm5jbXAobmFtZSwgIkkyUzYiLCA0KSA9PSAwKQ0KKwkJcmV0dXJuIE1UODE5Ml9EQUlf STJTXzY7DQorCWVsc2UgaWYgKHN0cm5jbXAobmFtZSwgIkkyUzciLCA0KSA9PSAwKQ0KKwkJcmV0 dXJuIE1UODE5Ml9EQUlfSTJTXzc7DQorCWVsc2UgaWYgKHN0cm5jbXAobmFtZSwgIkkyUzgiLCA0 KSA9PSAwKQ0KKwkJcmV0dXJuIE1UODE5Ml9EQUlfSTJTXzg7DQorCWVsc2UgaWYgKHN0cm5jbXAo bmFtZSwgIkkyUzkiLCA0KSA9PSAwKQ0KKwkJcmV0dXJuIE1UODE5Ml9EQUlfSTJTXzk7DQorCWVs c2UNCisJCXJldHVybiAtRUlOVkFMOw0KK30NCisNCitzdGF0aWMgc3RydWN0IG10a19hZmVfaTJz X3ByaXYgKmdldF9pMnNfcHJpdl9ieV9uYW1lKHN0cnVjdCBtdGtfYmFzZV9hZmUgKmFmZSwNCisJ CQkJCQkgICAgIGNvbnN0IGNoYXIgKm5hbWUpDQorew0KKwlzdHJ1Y3QgbXQ4MTkyX2FmZV9wcml2 YXRlICphZmVfcHJpdiA9IGFmZS0+cGxhdGZvcm1fcHJpdjsNCisJaW50IGRhaV9pZCA9IGdldF9p MnNfaWRfYnlfbmFtZShhZmUsIG5hbWUpOw0KKw0KKwlpZiAoZGFpX2lkIDwgMCkNCisJCXJldHVy biBOVUxMOw0KKw0KKwlyZXR1cm4gYWZlX3ByaXYtPmRhaV9wcml2W2RhaV9pZF07DQorfQ0KKw0K Ky8qIGxvdyBqaXR0ZXIgY29udHJvbCAqLw0KK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgbXQ4 MTkyX2kyc19oZF9zdHJbXSA9IHsNCisJIk5vcm1hbCIsICJMb3dfSml0dGVyIg0KK307DQorDQor c3RhdGljIGNvbnN0IHN0cnVjdCBzb2NfZW51bSBtdDgxOTJfaTJzX2VudW1bXSA9IHsNCisJU09D X0VOVU1fU0lOR0xFX0VYVChBUlJBWV9TSVpFKG10ODE5Ml9pMnNfaGRfc3RyKSwNCisJCQkgICAg bXQ4MTkyX2kyc19oZF9zdHIpLA0KK307DQorDQorc3RhdGljIGludCBtdDgxOTJfaTJzX2hkX2dl dChzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwNCisJCQkgICAgIHN0cnVjdCBzbmRfY3Rs X2VsZW1fdmFsdWUgKnVjb250cm9sKQ0KK3sNCisJc3RydWN0IHNuZF9zb2NfY29tcG9uZW50ICpj bXBudCA9IHNuZF9zb2Nfa2NvbnRyb2xfY29tcG9uZW50KGtjb250cm9sKTsNCisJc3RydWN0IG10 a19iYXNlX2FmZSAqYWZlID0gc25kX3NvY19jb21wb25lbnRfZ2V0X2RydmRhdGEoY21wbnQpOw0K KwlzdHJ1Y3QgbXRrX2FmZV9pMnNfcHJpdiAqaTJzX3ByaXY7DQorDQorCWkyc19wcml2ID0gZ2V0 X2kyc19wcml2X2J5X25hbWUoYWZlLCBrY29udHJvbC0+aWQubmFtZSk7DQorDQorCWlmICghaTJz X3ByaXYpIHsNCisJCWRldl93YXJuKGFmZS0+ZGV2LCAiJXMoKSwgaTJzX3ByaXYgPT0gTlVMTCIs IF9fZnVuY19fKTsNCisJCXJldHVybiAtRUlOVkFMOw0KKwl9DQorDQorCXVjb250cm9sLT52YWx1 ZS5pbnRlZ2VyLnZhbHVlWzBdID0gaTJzX3ByaXYtPmxvd19qaXR0ZXJfZW47DQorDQorCXJldHVy biAwOw0KK30NCisNCitzdGF0aWMgaW50IG10ODE5Ml9pMnNfaGRfc2V0KHN0cnVjdCBzbmRfa2Nv bnRyb2wgKmtjb250cm9sLA0KKwkJCSAgICAgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNv bnRyb2wpDQorew0KKwlzdHJ1Y3Qgc25kX3NvY19jb21wb25lbnQgKmNtcG50ID0gc25kX3NvY19r Y29udHJvbF9jb21wb25lbnQoa2NvbnRyb2wpOw0KKwlzdHJ1Y3QgbXRrX2Jhc2VfYWZlICphZmUg PSBzbmRfc29jX2NvbXBvbmVudF9nZXRfZHJ2ZGF0YShjbXBudCk7DQorCXN0cnVjdCBtdGtfYWZl X2kyc19wcml2ICppMnNfcHJpdjsNCisJc3RydWN0IHNvY19lbnVtICplID0gKHN0cnVjdCBzb2Nf ZW51bSAqKWtjb250cm9sLT5wcml2YXRlX3ZhbHVlOw0KKwlpbnQgaGRfZW47DQorDQorCWlmICh1 Y29udHJvbC0+dmFsdWUuZW51bWVyYXRlZC5pdGVtWzBdID49IGUtPml0ZW1zKQ0KKwkJcmV0dXJu IC1FSU5WQUw7DQorDQorCWhkX2VuID0gdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF07 DQorDQorCWRldl9pbmZvKGFmZS0+ZGV2LCAiJXMoKSwga2NvbnRyb2wgbmFtZSAlcywgaGRfZW4g JWRcbiIsDQorCQkgX19mdW5jX18sIGtjb250cm9sLT5pZC5uYW1lLCBoZF9lbik7DQorDQorCWky c19wcml2ID0gZ2V0X2kyc19wcml2X2J5X25hbWUoYWZlLCBrY29udHJvbC0+aWQubmFtZSk7DQor DQorCWlmICghaTJzX3ByaXYpIHsNCisJCWRldl93YXJuKGFmZS0+ZGV2LCAiJXMoKSwgaTJzX3By aXYgPT0gTlVMTCIsIF9fZnVuY19fKTsNCisJCXJldHVybiAtRUlOVkFMOw0KKwl9DQorDQorCWky c19wcml2LT5sb3dfaml0dGVyX2VuID0gaGRfZW47DQorDQorCXJldHVybiAwOw0KK30NCisNCitz dGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgbXRrX2RhaV9pMnNfY29udHJvbHNb XSA9IHsNCisJU09DX0VOVU1fRVhUKE1US19BRkVfSTJTMF9LQ09OVFJPTF9OQU1FLCBtdDgxOTJf aTJzX2VudW1bMF0sDQorCQkgICAgIG10ODE5Ml9pMnNfaGRfZ2V0LCBtdDgxOTJfaTJzX2hkX3Nl dCksDQorCVNPQ19FTlVNX0VYVChNVEtfQUZFX0kyUzFfS0NPTlRST0xfTkFNRSwgbXQ4MTkyX2ky c19lbnVtWzBdLA0KKwkJICAgICBtdDgxOTJfaTJzX2hkX2dldCwgbXQ4MTkyX2kyc19oZF9zZXQp LA0KKwlTT0NfRU5VTV9FWFQoTVRLX0FGRV9JMlMyX0tDT05UUk9MX05BTUUsIG10ODE5Ml9pMnNf ZW51bVswXSwNCisJCSAgICAgbXQ4MTkyX2kyc19oZF9nZXQsIG10ODE5Ml9pMnNfaGRfc2V0KSwN CisJU09DX0VOVU1fRVhUKE1US19BRkVfSTJTM19LQ09OVFJPTF9OQU1FLCBtdDgxOTJfaTJzX2Vu dW1bMF0sDQorCQkgICAgIG10ODE5Ml9pMnNfaGRfZ2V0LCBtdDgxOTJfaTJzX2hkX3NldCksDQor CVNPQ19FTlVNX0VYVChNVEtfQUZFX0kyUzVfS0NPTlRST0xfTkFNRSwgbXQ4MTkyX2kyc19lbnVt WzBdLA0KKwkJICAgICBtdDgxOTJfaTJzX2hkX2dldCwgbXQ4MTkyX2kyc19oZF9zZXQpLA0KKwlT T0NfRU5VTV9FWFQoTVRLX0FGRV9JMlM2X0tDT05UUk9MX05BTUUsIG10ODE5Ml9pMnNfZW51bVsw XSwNCisJCSAgICAgbXQ4MTkyX2kyc19oZF9nZXQsIG10ODE5Ml9pMnNfaGRfc2V0KSwNCisJU09D X0VOVU1fRVhUKE1US19BRkVfSTJTN19LQ09OVFJPTF9OQU1FLCBtdDgxOTJfaTJzX2VudW1bMF0s DQorCQkgICAgIG10ODE5Ml9pMnNfaGRfZ2V0LCBtdDgxOTJfaTJzX2hkX3NldCksDQorCVNPQ19F TlVNX0VYVChNVEtfQUZFX0kyUzhfS0NPTlRST0xfTkFNRSwgbXQ4MTkyX2kyc19lbnVtWzBdLA0K KwkJICAgICBtdDgxOTJfaTJzX2hkX2dldCwgbXQ4MTkyX2kyc19oZF9zZXQpLA0KKwlTT0NfRU5V TV9FWFQoTVRLX0FGRV9JMlM5X0tDT05UUk9MX05BTUUsIG10ODE5Ml9pMnNfZW51bVswXSwNCisJ CSAgICAgbXQ4MTkyX2kyc19oZF9nZXQsIG10ODE5Ml9pMnNfaGRfc2V0KSwNCit9Ow0KKw0KKy8q IGRhaSBjb21wb25lbnQgKi8NCisvKiBpMnMgdmlydHVhbCBtdXggdG8gb3V0cHV0IHdpZGdldCAq Lw0KK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaTJzX211eF9tYXBbXSA9IHsNCisJIk5vcm1h bCIsICJEdW1teV9XaWRnZXQiLA0KK307DQorDQorc3RhdGljIGludCBpMnNfbXV4X21hcF92YWx1 ZVtdID0gew0KKwkwLCAxLA0KK307DQorDQorc3RhdGljIFNPQ19WQUxVRV9FTlVNX1NJTkdMRV9B VVRPRElTQUJMRV9ERUNMKGkyc19tdXhfbWFwX2VudW0sDQorCQkJCQkgICAgICBTTkRfU09DX05P UE0sDQorCQkJCQkgICAgICAwLA0KKwkJCQkJICAgICAgMSwNCisJCQkJCSAgICAgIGkyc19tdXhf bWFwLA0KKwkJCQkJICAgICAgaTJzX211eF9tYXBfdmFsdWUpOw0KKw0KK3N0YXRpYyBjb25zdCBz dHJ1Y3Qgc25kX2tjb250cm9sX25ldyBpMnMwX2luX211eF9jb250cm9sID0NCisJU09DX0RBUE1f RU5VTSgiSTJTMCBJbiBTZWxlY3QiLCBpMnNfbXV4X21hcF9lbnVtKTsNCisNCitzdGF0aWMgY29u c3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgaTJzOF9pbl9tdXhfY29udHJvbCA9DQorCVNPQ19E QVBNX0VOVU0oIkkyUzggSW4gU2VsZWN0IiwgaTJzX211eF9tYXBfZW51bSk7DQorDQorc3RhdGlj IGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IGkyczFfb3V0X211eF9jb250cm9sID0NCisJ U09DX0RBUE1fRU5VTSgiSTJTMSBPdXQgU2VsZWN0IiwgaTJzX211eF9tYXBfZW51bSk7DQorDQor c3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IGkyczNfb3V0X211eF9jb250cm9s ID0NCisJU09DX0RBUE1fRU5VTSgiSTJTMyBPdXQgU2VsZWN0IiwgaTJzX211eF9tYXBfZW51bSk7 DQorDQorc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IGkyczVfb3V0X211eF9j b250cm9sID0NCisJU09DX0RBUE1fRU5VTSgiSTJTNSBPdXQgU2VsZWN0IiwgaTJzX211eF9tYXBf ZW51bSk7DQorDQorc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IGkyczdfb3V0 X211eF9jb250cm9sID0NCisJU09DX0RBUE1fRU5VTSgiSTJTNyBPdXQgU2VsZWN0IiwgaTJzX211 eF9tYXBfZW51bSk7DQorDQorc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IGky czlfb3V0X211eF9jb250cm9sID0NCisJU09DX0RBUE1fRU5VTSgiSTJTOSBPdXQgU2VsZWN0Iiwg aTJzX211eF9tYXBfZW51bSk7DQorDQorLyogVGlueWNvbm4gTXV4ICovDQorZW51bSB7DQorCVRJ TllDT05OX0NIMV9NVVhfREwxID0gMHgwLA0KKwlUSU5ZQ09OTl9DSDJfTVVYX0RMMSA9IDB4MSwN CisJVElOWUNPTk5fQ0gxX01VWF9ETDEyID0gMHgyLA0KKwlUSU5ZQ09OTl9DSDJfTVVYX0RMMTIg PSAweDMsDQorCVRJTllDT05OX0NIMV9NVVhfREwyID0gMHg0LA0KKwlUSU5ZQ09OTl9DSDJfTVVY X0RMMiA9IDB4NSwNCisJVElOWUNPTk5fQ0gxX01VWF9ETDMgPSAweDYsDQorCVRJTllDT05OX0NI Ml9NVVhfREwzID0gMHg3LA0KKwlUSU5ZQ09OTl9NVVhfTk9ORSA9IDB4MWYsDQorfTsNCisNCitz dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHRpbnljb25uX211eF9tYXBbXSA9IHsNCisJIk5PTkUi LA0KKwkiREwxX0NIMSIsDQorCSJETDFfQ0gyIiwNCisJIkRMMTJfQ0gxIiwNCisJIkRMMTJfQ0gy IiwNCisJIkRMMl9DSDEiLA0KKwkiREwyX0NIMiIsDQorCSJETDNfQ0gxIiwNCisJIkRMM19DSDIi LA0KK307DQorDQorc3RhdGljIGludCB0aW55Y29ubl9tdXhfbWFwX3ZhbHVlW10gPSB7DQorCVRJ TllDT05OX01VWF9OT05FLA0KKwlUSU5ZQ09OTl9DSDFfTVVYX0RMMSwNCisJVElOWUNPTk5fQ0gy X01VWF9ETDEsDQorCVRJTllDT05OX0NIMV9NVVhfREwxMiwNCisJVElOWUNPTk5fQ0gyX01VWF9E TDEyLA0KKwlUSU5ZQ09OTl9DSDFfTVVYX0RMMiwNCisJVElOWUNPTk5fQ0gyX01VWF9ETDIsDQor CVRJTllDT05OX0NIMV9NVVhfREwzLA0KKwlUSU5ZQ09OTl9DSDJfTVVYX0RMMywNCit9Ow0KKw0K K3N0YXRpYyBTT0NfVkFMVUVfRU5VTV9TSU5HTEVfREVDTChpMnMxX3Rpbnljb25uX2NoMV9tdXhf bWFwX2VudW0sDQorCQkJCSAgQUZFX1RJTllfQ09OTjUsDQorCQkJCSAgT18yMF9DRkdfU0ZULA0K KwkJCQkgIE9fMjBfQ0ZHX01BU0ssDQorCQkJCSAgdGlueWNvbm5fbXV4X21hcCwNCisJCQkJICB0 aW55Y29ubl9tdXhfbWFwX3ZhbHVlKTsNCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJv bF9uZXcgaTJzMV90aW55Y29ubl9jaDFfbXV4X2NvbnRyb2wgPQ0KKwlTT0NfREFQTV9FTlVNKCJp MnMxIGNoMSB0aW55Y29ubiBTZWxlY3QiLA0KKwkJICAgICAgaTJzMV90aW55Y29ubl9jaDFfbXV4 X21hcF9lbnVtKTsNCisNCitzdGF0aWMgU09DX1ZBTFVFX0VOVU1fU0lOR0xFX0RFQ0woaTJzMV90 aW55Y29ubl9jaDJfbXV4X21hcF9lbnVtLA0KKwkJCQkgIEFGRV9USU5ZX0NPTk41LA0KKwkJCQkg IE9fMjFfQ0ZHX1NGVCwNCisJCQkJICBPXzIxX0NGR19NQVNLLA0KKwkJCQkgIHRpbnljb25uX211 eF9tYXAsDQorCQkJCSAgdGlueWNvbm5fbXV4X21hcF92YWx1ZSk7DQorc3RhdGljIGNvbnN0IHN0 cnVjdCBzbmRfa2NvbnRyb2xfbmV3IGkyczFfdGlueWNvbm5fY2gyX211eF9jb250cm9sID0NCisJ U09DX0RBUE1fRU5VTSgiaTJzMSBjaDIgdGlueWNvbm4gU2VsZWN0IiwNCisJCSAgICAgIGkyczFf dGlueWNvbm5fY2gyX211eF9tYXBfZW51bSk7DQorDQorc3RhdGljIFNPQ19WQUxVRV9FTlVNX1NJ TkdMRV9ERUNMKGkyczNfdGlueWNvbm5fY2gxX211eF9tYXBfZW51bSwNCisJCQkJICBBRkVfVElO WV9DT05ONSwNCisJCQkJICBPXzIyX0NGR19TRlQsDQorCQkJCSAgT18yMl9DRkdfTUFTSywNCisJ CQkJICB0aW55Y29ubl9tdXhfbWFwLA0KKwkJCQkgIHRpbnljb25uX211eF9tYXBfdmFsdWUpOw0K K3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBpMnMzX3Rpbnljb25uX2NoMV9t dXhfY29udHJvbCA9DQorCVNPQ19EQVBNX0VOVU0oImkyczMgY2gxIHRpbnljb25uIFNlbGVjdCIs DQorCQkgICAgICBpMnMzX3Rpbnljb25uX2NoMV9tdXhfbWFwX2VudW0pOw0KKw0KK3N0YXRpYyBT T0NfVkFMVUVfRU5VTV9TSU5HTEVfREVDTChpMnMzX3Rpbnljb25uX2NoMl9tdXhfbWFwX2VudW0s DQorCQkJCSAgQUZFX1RJTllfQ09OTjUsDQorCQkJCSAgT18yM19DRkdfU0ZULA0KKwkJCQkgIE9f MjNfQ0ZHX01BU0ssDQorCQkJCSAgdGlueWNvbm5fbXV4X21hcCwNCisJCQkJICB0aW55Y29ubl9t dXhfbWFwX3ZhbHVlKTsNCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgaTJz M190aW55Y29ubl9jaDJfbXV4X2NvbnRyb2wgPQ0KKwlTT0NfREFQTV9FTlVNKCJpMnMzIGNoMiB0 aW55Y29ubiBTZWxlY3QiLA0KKwkJICAgICAgaTJzM190aW55Y29ubl9jaDJfbXV4X21hcF9lbnVt KTsNCisNCisvKiBpMnMgaW4gbHBiayAqLw0KK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaTJz X2xwYmtfbXV4X21hcFtdID0gew0KKwkiTm9ybWFsIiwgIkxwYmsiLA0KK307DQorDQorc3RhdGlj IGludCBpMnNfbHBia19tdXhfbWFwX3ZhbHVlW10gPSB7DQorCTAsIDEsDQorfTsNCisNCitzdGF0 aWMgU09DX1ZBTFVFX0VOVU1fU0lOR0xFX0FVVE9ESVNBQkxFX0RFQ0woaTJzMF9scGJrX211eF9t YXBfZW51bSwNCisJCQkJCSAgICAgIEFGRV9JMlNfQ09OLA0KKwkJCQkJICAgICAgSTJTX0xPT1BC QUNLX1NGVCwNCisJCQkJCSAgICAgIDEsDQorCQkJCQkgICAgICBpMnNfbHBia19tdXhfbWFwLA0K KwkJCQkJICAgICAgaTJzX2xwYmtfbXV4X21hcF92YWx1ZSk7DQorDQorc3RhdGljIGNvbnN0IHN0 cnVjdCBzbmRfa2NvbnRyb2xfbmV3IGkyczBfbHBia19tdXhfY29udHJvbCA9DQorCVNPQ19EQVBN X0VOVU0oIkkyUyBMcGJrIFNlbGVjdCIsIGkyczBfbHBia19tdXhfbWFwX2VudW0pOw0KKw0KK3N0 YXRpYyBTT0NfVkFMVUVfRU5VTV9TSU5HTEVfQVVUT0RJU0FCTEVfREVDTChpMnMyX2xwYmtfbXV4 X21hcF9lbnVtLA0KKwkJCQkJICAgICAgQUZFX0kyU19DT04yLA0KKwkJCQkJICAgICAgSTJTM19M T09QQkFDS19TRlQsDQorCQkJCQkgICAgICAxLA0KKwkJCQkJICAgICAgaTJzX2xwYmtfbXV4X21h cCwNCisJCQkJCSAgICAgIGkyc19scGJrX211eF9tYXBfdmFsdWUpOw0KKw0KK3N0YXRpYyBjb25z dCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBpMnMyX2xwYmtfbXV4X2NvbnRyb2wgPQ0KKwlTT0Nf REFQTV9FTlVNKCJJMlMgTHBiayBTZWxlY3QiLCBpMnMyX2xwYmtfbXV4X21hcF9lbnVtKTsNCisN CisvKiBpbnRlcmNvbm5lY3Rpb24gKi8NCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJv bF9uZXcgbXRrX2kyczNfY2gxX21peFtdID0gew0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FC TEUoIkRMMV9DSDEiLCBBRkVfQ09OTjAsIElfREwxX0NIMSwgMSwgMCksDQorCVNPQ19EQVBNX1NJ TkdMRV9BVVRPRElTQUJMRSgiREwyX0NIMSIsIEFGRV9DT05OMCwgSV9ETDJfQ0gxLCAxLCAwKSwN CisJU09DX0RBUE1fU0lOR0xFX0FVVE9ESVNBQkxFKCJETDNfQ0gxIiwgQUZFX0NPTk4wLCBJX0RM M19DSDEsIDEsIDApLA0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIkRMMTJfQ0gxIiwg QUZFX0NPTk4wLCBJX0RMMTJfQ0gxLCAxLCAwKSwNCisJU09DX0RBUE1fU0lOR0xFX0FVVE9ESVNB QkxFKCJETDZfQ0gxIiwgQUZFX0NPTk4wXzEsIElfREw2X0NIMSwgMSwgMCksDQorCVNPQ19EQVBN X1NJTkdMRV9BVVRPRElTQUJMRSgiREw0X0NIMSIsIEFGRV9DT05OMF8xLCBJX0RMNF9DSDEsIDEs IDApLA0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIkRMNV9DSDEiLCBBRkVfQ09OTjBf MSwgSV9ETDVfQ0gxLCAxLCAwKSwNCisJU09DX0RBUE1fU0lOR0xFX0FVVE9ESVNBQkxFKCJETDhf Q0gxIiwgQUZFX0NPTk4wXzEsIElfREw4X0NIMSwgMSwgMCksDQorCVNPQ19EQVBNX1NJTkdMRV9B VVRPRElTQUJMRSgiREw5X0NIMSIsIEFGRV9DT05OMF8xLCBJX0RMOV9DSDEsIDEsIDApLA0KKwlT T0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIkdBSU4xX09VVF9DSDEiLCBBRkVfQ09OTjAsDQor CQkJCSAgICBJX0dBSU4xX09VVF9DSDEsIDEsIDApLA0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJ U0FCTEUoIkFEREFfVUxfQ0gxIiwgQUZFX0NPTk4wLA0KKwkJCQkgICAgSV9BRERBX1VMX0NIMSwg MSwgMCksDQorCVNPQ19EQVBNX1NJTkdMRV9BVVRPRElTQUJMRSgiQUREQV9VTF9DSDIiLCBBRkVf Q09OTjAsDQorCQkJCSAgICBJX0FEREFfVUxfQ0gyLCAxLCAwKSwNCisJU09DX0RBUE1fU0lOR0xF X0FVVE9ESVNBQkxFKCJBRERBX1VMX0NIMyIsIEFGRV9DT05OMCwNCisJCQkJICAgIElfQUREQV9V TF9DSDMsIDEsIDApLA0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIlBDTV8xX0NBUF9D SDEiLCBBRkVfQ09OTjAsDQorCQkJCSAgICBJX1BDTV8xX0NBUF9DSDEsIDEsIDApLA0KKwlTT0Nf REFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIlBDTV8yX0NBUF9DSDEiLCBBRkVfQ09OTjAsDQorCQkJ CSAgICBJX1BDTV8yX0NBUF9DSDEsIDEsIDApLA0KK307DQorDQorc3RhdGljIGNvbnN0IHN0cnVj dCBzbmRfa2NvbnRyb2xfbmV3IG10a19pMnMzX2NoMl9taXhbXSA9IHsNCisJU09DX0RBUE1fU0lO R0xFX0FVVE9ESVNBQkxFKCJETDFfQ0gyIiwgQUZFX0NPTk4xLCBJX0RMMV9DSDIsIDEsIDApLA0K KwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIkRMMl9DSDIiLCBBRkVfQ09OTjEsIElfREwy X0NIMiwgMSwgMCksDQorCVNPQ19EQVBNX1NJTkdMRV9BVVRPRElTQUJMRSgiREwzX0NIMiIsIEFG RV9DT05OMSwgSV9ETDNfQ0gyLCAxLCAwKSwNCisJU09DX0RBUE1fU0lOR0xFX0FVVE9ESVNBQkxF KCJETDEyX0NIMiIsIEFGRV9DT05OMSwgSV9ETDEyX0NIMiwgMSwgMCksDQorCVNPQ19EQVBNX1NJ TkdMRV9BVVRPRElTQUJMRSgiREw2X0NIMiIsIEFGRV9DT05OMV8xLCBJX0RMNl9DSDIsIDEsIDAp LA0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIkRMNF9DSDIiLCBBRkVfQ09OTjFfMSwg SV9ETDRfQ0gyLCAxLCAwKSwNCisJU09DX0RBUE1fU0lOR0xFX0FVVE9ESVNBQkxFKCJETDVfQ0gy IiwgQUZFX0NPTk4xXzEsIElfREw1X0NIMiwgMSwgMCksDQorCVNPQ19EQVBNX1NJTkdMRV9BVVRP RElTQUJMRSgiREw4X0NIMiIsIEFGRV9DT05OMV8xLCBJX0RMOF9DSDIsIDEsIDApLA0KKwlTT0Nf REFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIkRMOV9DSDIiLCBBRkVfQ09OTjFfMSwgSV9ETDlfQ0gy LCAxLCAwKSwNCisJU09DX0RBUE1fU0lOR0xFX0FVVE9ESVNBQkxFKCJHQUlOMV9PVVRfQ0gyIiwg QUZFX0NPTk4xLA0KKwkJCQkgICAgSV9HQUlOMV9PVVRfQ0gyLCAxLCAwKSwNCisJU09DX0RBUE1f U0lOR0xFX0FVVE9ESVNBQkxFKCJBRERBX1VMX0NIMSIsIEFGRV9DT05OMSwNCisJCQkJICAgIElf QUREQV9VTF9DSDEsIDEsIDApLA0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIkFEREFf VUxfQ0gyIiwgQUZFX0NPTk4xLA0KKwkJCQkgICAgSV9BRERBX1VMX0NIMiwgMSwgMCksDQorCVNP Q19EQVBNX1NJTkdMRV9BVVRPRElTQUJMRSgiQUREQV9VTF9DSDMiLCBBRkVfQ09OTjEsDQorCQkJ CSAgICBJX0FEREFfVUxfQ0gzLCAxLCAwKSwNCisJU09DX0RBUE1fU0lOR0xFX0FVVE9ESVNBQkxF KCJQQ01fMV9DQVBfQ0gxIiwgQUZFX0NPTk4xLA0KKwkJCQkgICAgSV9QQ01fMV9DQVBfQ0gxLCAx LCAwKSwNCisJU09DX0RBUE1fU0lOR0xFX0FVVE9ESVNBQkxFKCJQQ01fMl9DQVBfQ0gxIiwgQUZF X0NPTk4xLA0KKwkJCQkgICAgSV9QQ01fMl9DQVBfQ0gxLCAxLCAwKSwNCisJU09DX0RBUE1fU0lO R0xFX0FVVE9ESVNBQkxFKCJQQ01fMV9DQVBfQ0gyIiwgQUZFX0NPTk4xLA0KKwkJCQkgICAgSV9Q Q01fMV9DQVBfQ0gyLCAxLCAwKSwNCisJU09DX0RBUE1fU0lOR0xFX0FVVE9ESVNBQkxFKCJQQ01f Ml9DQVBfQ0gyIiwgQUZFX0NPTk4xLA0KKwkJCQkgICAgSV9QQ01fMl9DQVBfQ0gyLCAxLCAwKSwN Cit9Ow0KKw0KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBtdGtfaTJzMV9j aDFfbWl4W10gPSB7DQorCVNPQ19EQVBNX1NJTkdMRV9BVVRPRElTQUJMRSgiREwxX0NIMSIsIEFG RV9DT05OMjgsIElfREwxX0NIMSwgMSwgMCksDQorCVNPQ19EQVBNX1NJTkdMRV9BVVRPRElTQUJM RSgiREwyX0NIMSIsIEFGRV9DT05OMjgsIElfREwyX0NIMSwgMSwgMCksDQorCVNPQ19EQVBNX1NJ TkdMRV9BVVRPRElTQUJMRSgiREwzX0NIMSIsIEFGRV9DT05OMjgsIElfREwzX0NIMSwgMSwgMCks DQorCVNPQ19EQVBNX1NJTkdMRV9BVVRPRElTQUJMRSgiREwxMl9DSDEiLCBBRkVfQ09OTjI4LCBJ X0RMMTJfQ0gxLCAxLCAwKSwNCisJU09DX0RBUE1fU0lOR0xFX0FVVE9ESVNBQkxFKCJETDZfQ0gx IiwgQUZFX0NPTk4yOF8xLCBJX0RMNl9DSDEsIDEsIDApLA0KKwlTT0NfREFQTV9TSU5HTEVfQVVU T0RJU0FCTEUoIkRMNF9DSDEiLCBBRkVfQ09OTjI4XzEsIElfREw0X0NIMSwgMSwgMCksDQorCVNP Q19EQVBNX1NJTkdMRV9BVVRPRElTQUJMRSgiREw1X0NIMSIsIEFGRV9DT05OMjhfMSwgSV9ETDVf Q0gxLCAxLCAwKSwNCisJU09DX0RBUE1fU0lOR0xFX0FVVE9ESVNBQkxFKCJETDhfQ0gxIiwgQUZF X0NPTk4yOF8xLCBJX0RMOF9DSDEsIDEsIDApLA0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FC TEUoIkRMOV9DSDEiLCBBRkVfQ09OTjI4XzEsIElfREw5X0NIMSwgMSwgMCksDQorCVNPQ19EQVBN X1NJTkdMRV9BVVRPRElTQUJMRSgiR0FJTjFfT1VUX0NIMSIsIEFGRV9DT05OMjgsDQorCQkJCSAg ICBJX0dBSU4xX09VVF9DSDEsIDEsIDApLA0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUo IkFEREFfVUxfQ0gxIiwgQUZFX0NPTk4yOCwNCisJCQkJICAgIElfQUREQV9VTF9DSDEsIDEsIDAp LA0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIlBDTV8xX0NBUF9DSDEiLCBBRkVfQ09O TjI4LA0KKwkJCQkgICAgSV9QQ01fMV9DQVBfQ0gxLCAxLCAwKSwNCisJU09DX0RBUE1fU0lOR0xF X0FVVE9ESVNBQkxFKCJQQ01fMl9DQVBfQ0gxIiwgQUZFX0NPTk4yOCwNCisJCQkJICAgIElfUENN XzJfQ0FQX0NIMSwgMSwgMCksDQorfTsNCisNCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29u dHJvbF9uZXcgbXRrX2kyczFfY2gyX21peFtdID0gew0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJ U0FCTEUoIkRMMV9DSDIiLCBBRkVfQ09OTjI5LCBJX0RMMV9DSDIsIDEsIDApLA0KKwlTT0NfREFQ TV9TSU5HTEVfQVVUT0RJU0FCTEUoIkRMMl9DSDIiLCBBRkVfQ09OTjI5LCBJX0RMMl9DSDIsIDEs IDApLA0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIkRMM19DSDIiLCBBRkVfQ09OTjI5 LCBJX0RMM19DSDIsIDEsIDApLA0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIkRMMTJf Q0gyIiwgQUZFX0NPTk4yOSwgSV9ETDEyX0NIMiwgMSwgMCksDQorCVNPQ19EQVBNX1NJTkdMRV9B VVRPRElTQUJMRSgiREw2X0NIMiIsIEFGRV9DT05OMjlfMSwgSV9ETDZfQ0gyLCAxLCAwKSwNCisJ U09DX0RBUE1fU0lOR0xFX0FVVE9ESVNBQkxFKCJETDRfQ0gyIiwgQUZFX0NPTk4yOV8xLCBJX0RM NF9DSDIsIDEsIDApLA0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIkRMNV9DSDIiLCBB RkVfQ09OTjI5XzEsIElfREw1X0NIMiwgMSwgMCksDQorCVNPQ19EQVBNX1NJTkdMRV9BVVRPRElT QUJMRSgiREw4X0NIMiIsIEFGRV9DT05OMjlfMSwgSV9ETDhfQ0gyLCAxLCAwKSwNCisJU09DX0RB UE1fU0lOR0xFX0FVVE9ESVNBQkxFKCJETDlfQ0gyIiwgQUZFX0NPTk4yOV8xLCBJX0RMOV9DSDIs IDEsIDApLA0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIkdBSU4xX09VVF9DSDIiLCBB RkVfQ09OTjI5LA0KKwkJCQkgICAgSV9HQUlOMV9PVVRfQ0gyLCAxLCAwKSwNCisJU09DX0RBUE1f U0lOR0xFX0FVVE9ESVNBQkxFKCJBRERBX1VMX0NIMiIsIEFGRV9DT05OMjksDQorCQkJCSAgICBJ X0FEREFfVUxfQ0gyLCAxLCAwKSwNCisJU09DX0RBUE1fU0lOR0xFX0FVVE9ESVNBQkxFKCJQQ01f MV9DQVBfQ0gxIiwgQUZFX0NPTk4yOSwNCisJCQkJICAgIElfUENNXzFfQ0FQX0NIMSwgMSwgMCks DQorCVNPQ19EQVBNX1NJTkdMRV9BVVRPRElTQUJMRSgiUENNXzJfQ0FQX0NIMSIsIEFGRV9DT05O MjksDQorCQkJCSAgICBJX1BDTV8yX0NBUF9DSDEsIDEsIDApLA0KKwlTT0NfREFQTV9TSU5HTEVf QVVUT0RJU0FCTEUoIlBDTV8xX0NBUF9DSDIiLCBBRkVfQ09OTjI5LA0KKwkJCQkgICAgSV9QQ01f MV9DQVBfQ0gyLCAxLCAwKSwNCisJU09DX0RBUE1fU0lOR0xFX0FVVE9ESVNBQkxFKCJQQ01fMl9D QVBfQ0gyIiwgQUZFX0NPTk4yOSwNCisJCQkJICAgIElfUENNXzJfQ0FQX0NIMiwgMSwgMCksDQor fTsNCisNCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgbXRrX2kyczVfY2gx X21peFtdID0gew0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIkRMMV9DSDEiLCBBRkVf Q09OTjMwLCBJX0RMMV9DSDEsIDEsIDApLA0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUo IkRMMl9DSDEiLCBBRkVfQ09OTjMwLCBJX0RMMl9DSDEsIDEsIDApLA0KKwlTT0NfREFQTV9TSU5H TEVfQVVUT0RJU0FCTEUoIkRMM19DSDEiLCBBRkVfQ09OTjMwLCBJX0RMM19DSDEsIDEsIDApLA0K KwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIkRMMTJfQ0gxIiwgQUZFX0NPTk4zMCwgSV9E TDEyX0NIMSwgMSwgMCksDQorCVNPQ19EQVBNX1NJTkdMRV9BVVRPRElTQUJMRSgiREw2X0NIMSIs IEFGRV9DT05OMzBfMSwgSV9ETDZfQ0gxLCAxLCAwKSwNCisJU09DX0RBUE1fU0lOR0xFX0FVVE9E SVNBQkxFKCJETDRfQ0gxIiwgQUZFX0NPTk4zMF8xLCBJX0RMNF9DSDEsIDEsIDApLA0KKwlTT0Nf REFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIkRMNV9DSDEiLCBBRkVfQ09OTjMwXzEsIElfREw1X0NI MSwgMSwgMCksDQorCVNPQ19EQVBNX1NJTkdMRV9BVVRPRElTQUJMRSgiREw4X0NIMSIsIEFGRV9D T05OMzBfMSwgSV9ETDhfQ0gxLCAxLCAwKSwNCisJU09DX0RBUE1fU0lOR0xFX0FVVE9ESVNBQkxF KCJETDlfQ0gxIiwgQUZFX0NPTk4zMF8xLCBJX0RMOV9DSDEsIDEsIDApLA0KKwlTT0NfREFQTV9T SU5HTEVfQVVUT0RJU0FCTEUoIkdBSU4xX09VVF9DSDEiLCBBRkVfQ09OTjMwLA0KKwkJCQkgICAg SV9HQUlOMV9PVVRfQ0gxLCAxLCAwKSwNCisJU09DX0RBUE1fU0lOR0xFX0FVVE9ESVNBQkxFKCJB RERBX1VMX0NIMSIsIEFGRV9DT05OMzAsDQorCQkJCSAgICBJX0FEREFfVUxfQ0gxLCAxLCAwKSwN CisJU09DX0RBUE1fU0lOR0xFX0FVVE9ESVNBQkxFKCJQQ01fMV9DQVBfQ0gxIiwgQUZFX0NPTk4z MCwNCisJCQkJICAgIElfUENNXzFfQ0FQX0NIMSwgMSwgMCksDQorCVNPQ19EQVBNX1NJTkdMRV9B VVRPRElTQUJMRSgiUENNXzJfQ0FQX0NIMSIsIEFGRV9DT05OMzAsDQorCQkJCSAgICBJX1BDTV8y X0NBUF9DSDEsIDEsIDApLA0KK307DQorDQorc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRy b2xfbmV3IG10a19pMnM1X2NoMl9taXhbXSA9IHsNCisJU09DX0RBUE1fU0lOR0xFX0FVVE9ESVNB QkxFKCJETDFfQ0gyIiwgQUZFX0NPTk4zMSwgSV9ETDFfQ0gyLCAxLCAwKSwNCisJU09DX0RBUE1f U0lOR0xFX0FVVE9ESVNBQkxFKCJETDJfQ0gyIiwgQUZFX0NPTk4zMSwgSV9ETDJfQ0gyLCAxLCAw KSwNCisJU09DX0RBUE1fU0lOR0xFX0FVVE9ESVNBQkxFKCJETDNfQ0gyIiwgQUZFX0NPTk4zMSwg SV9ETDNfQ0gyLCAxLCAwKSwNCisJU09DX0RBUE1fU0lOR0xFX0FVVE9ESVNBQkxFKCJETDEyX0NI MiIsIEFGRV9DT05OMzEsIElfREwxMl9DSDIsIDEsIDApLA0KKwlTT0NfREFQTV9TSU5HTEVfQVVU T0RJU0FCTEUoIkRMNl9DSDIiLCBBRkVfQ09OTjMxXzEsIElfREw2X0NIMiwgMSwgMCksDQorCVNP Q19EQVBNX1NJTkdMRV9BVVRPRElTQUJMRSgiREw0X0NIMiIsIEFGRV9DT05OMzFfMSwgSV9ETDRf Q0gyLCAxLCAwKSwNCisJU09DX0RBUE1fU0lOR0xFX0FVVE9ESVNBQkxFKCJETDVfQ0gyIiwgQUZF X0NPTk4zMV8xLCBJX0RMNV9DSDIsIDEsIDApLA0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FC TEUoIkRMOF9DSDIiLCBBRkVfQ09OTjMxXzEsIElfREw4X0NIMiwgMSwgMCksDQorCVNPQ19EQVBN X1NJTkdMRV9BVVRPRElTQUJMRSgiREw5X0NIMiIsIEFGRV9DT05OMzFfMSwgSV9ETDlfQ0gyLCAx LCAwKSwNCisJU09DX0RBUE1fU0lOR0xFX0FVVE9ESVNBQkxFKCJHQUlOMV9PVVRfQ0gyIiwgQUZF X0NPTk4zMSwNCisJCQkJICAgIElfR0FJTjFfT1VUX0NIMiwgMSwgMCksDQorCVNPQ19EQVBNX1NJ TkdMRV9BVVRPRElTQUJMRSgiQUREQV9VTF9DSDIiLCBBRkVfQ09OTjMxLA0KKwkJCQkgICAgSV9B RERBX1VMX0NIMiwgMSwgMCksDQorCVNPQ19EQVBNX1NJTkdMRV9BVVRPRElTQUJMRSgiUENNXzFf Q0FQX0NIMSIsIEFGRV9DT05OMzEsDQorCQkJCSAgICBJX1BDTV8xX0NBUF9DSDEsIDEsIDApLA0K KwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIlBDTV8yX0NBUF9DSDEiLCBBRkVfQ09OTjMx LA0KKwkJCQkgICAgSV9QQ01fMl9DQVBfQ0gxLCAxLCAwKSwNCisJU09DX0RBUE1fU0lOR0xFX0FV VE9ESVNBQkxFKCJQQ01fMV9DQVBfQ0gyIiwgQUZFX0NPTk4zMSwNCisJCQkJICAgIElfUENNXzFf Q0FQX0NIMiwgMSwgMCksDQorCVNPQ19EQVBNX1NJTkdMRV9BVVRPRElTQUJMRSgiUENNXzJfQ0FQ X0NIMiIsIEFGRV9DT05OMzEsDQorCQkJCSAgICBJX1BDTV8yX0NBUF9DSDIsIDEsIDApLA0KK307 DQorDQorc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IG10a19pMnM3X2NoMV9t aXhbXSA9IHsNCisJU09DX0RBUE1fU0lOR0xFX0FVVE9ESVNBQkxFKCJETDFfQ0gxIiwgQUZFX0NP Tk41NCwgSV9ETDFfQ0gxLCAxLCAwKSwNCisJU09DX0RBUE1fU0lOR0xFX0FVVE9ESVNBQkxFKCJE TDJfQ0gxIiwgQUZFX0NPTk41NCwgSV9ETDJfQ0gxLCAxLCAwKSwNCisJU09DX0RBUE1fU0lOR0xF X0FVVE9ESVNBQkxFKCJETDNfQ0gxIiwgQUZFX0NPTk41NCwgSV9ETDNfQ0gxLCAxLCAwKSwNCisJ U09DX0RBUE1fU0lOR0xFX0FVVE9ESVNBQkxFKCJETDEyX0NIMSIsIEFGRV9DT05ONTQsIElfREwx Ml9DSDEsIDEsIDApLA0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIkRMNl9DSDEiLCBB RkVfQ09OTjU0XzEsIElfREw2X0NIMSwgMSwgMCksDQorCVNPQ19EQVBNX1NJTkdMRV9BVVRPRElT QUJMRSgiREw0X0NIMSIsIEFGRV9DT05ONTRfMSwgSV9ETDRfQ0gxLCAxLCAwKSwNCisJU09DX0RB UE1fU0lOR0xFX0FVVE9ESVNBQkxFKCJETDVfQ0gxIiwgQUZFX0NPTk41NF8xLCBJX0RMNV9DSDEs IDEsIDApLA0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIkRMOV9DSDEiLCBBRkVfQ09O TjU0XzEsIElfREw5X0NIMSwgMSwgMCksDQorCVNPQ19EQVBNX1NJTkdMRV9BVVRPRElTQUJMRSgi R0FJTjFfT1VUX0NIMSIsIEFGRV9DT05ONTQsDQorCQkJCSAgICBJX0dBSU4xX09VVF9DSDEsIDEs IDApLA0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIkFEREFfVUxfQ0gxIiwgQUZFX0NP Tk41NCwNCisJCQkJICAgIElfQUREQV9VTF9DSDEsIDEsIDApLA0KKwlTT0NfREFQTV9TSU5HTEVf QVVUT0RJU0FCTEUoIlBDTV8xX0NBUF9DSDEiLCBBRkVfQ09OTjU0LA0KKwkJCQkgICAgSV9QQ01f MV9DQVBfQ0gxLCAxLCAwKSwNCisJU09DX0RBUE1fU0lOR0xFX0FVVE9ESVNBQkxFKCJQQ01fMl9D QVBfQ0gxIiwgQUZFX0NPTk41NCwNCisJCQkJICAgIElfUENNXzJfQ0FQX0NIMSwgMSwgMCksDQor fTsNCisNCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgbXRrX2kyczdfY2gy X21peFtdID0gew0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIkRMMV9DSDIiLCBBRkVf Q09OTjU1LCBJX0RMMV9DSDIsIDEsIDApLA0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUo IkRMMl9DSDIiLCBBRkVfQ09OTjU1LCBJX0RMMl9DSDIsIDEsIDApLA0KKwlTT0NfREFQTV9TSU5H TEVfQVVUT0RJU0FCTEUoIkRMM19DSDIiLCBBRkVfQ09OTjU1LCBJX0RMM19DSDIsIDEsIDApLA0K KwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIkRMMTJfQ0gyIiwgQUZFX0NPTk41NSwgSV9E TDEyX0NIMiwgMSwgMCksDQorCVNPQ19EQVBNX1NJTkdMRV9BVVRPRElTQUJMRSgiREw2X0NIMiIs IEFGRV9DT05ONTVfMSwgSV9ETDZfQ0gyLCAxLCAwKSwNCisJU09DX0RBUE1fU0lOR0xFX0FVVE9E SVNBQkxFKCJETDRfQ0gyIiwgQUZFX0NPTk41NV8xLCBJX0RMNF9DSDIsIDEsIDApLA0KKwlTT0Nf REFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIkRMNV9DSDIiLCBBRkVfQ09OTjU1XzEsIElfREw1X0NI MiwgMSwgMCksDQorCVNPQ19EQVBNX1NJTkdMRV9BVVRPRElTQUJMRSgiREw5X0NIMiIsIEFGRV9D T05ONTVfMSwgSV9ETDlfQ0gyLCAxLCAwKSwNCisJU09DX0RBUE1fU0lOR0xFX0FVVE9ESVNBQkxF KCJHQUlOMV9PVVRfQ0gyIiwgQUZFX0NPTk41NSwNCisJCQkJICAgIElfR0FJTjFfT1VUX0NIMiwg MSwgMCksDQorCVNPQ19EQVBNX1NJTkdMRV9BVVRPRElTQUJMRSgiQUREQV9VTF9DSDIiLCBBRkVf Q09OTjU1LA0KKwkJCQkgICAgSV9BRERBX1VMX0NIMiwgMSwgMCksDQorCVNPQ19EQVBNX1NJTkdM RV9BVVRPRElTQUJMRSgiUENNXzFfQ0FQX0NIMSIsIEFGRV9DT05ONTUsDQorCQkJCSAgICBJX1BD TV8xX0NBUF9DSDEsIDEsIDApLA0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIlBDTV8y X0NBUF9DSDEiLCBBRkVfQ09OTjU1LA0KKwkJCQkgICAgSV9QQ01fMl9DQVBfQ0gxLCAxLCAwKSwN CisJU09DX0RBUE1fU0lOR0xFX0FVVE9ESVNBQkxFKCJQQ01fMV9DQVBfQ0gyIiwgQUZFX0NPTk41 NSwNCisJCQkJICAgIElfUENNXzFfQ0FQX0NIMiwgMSwgMCksDQorCVNPQ19EQVBNX1NJTkdMRV9B VVRPRElTQUJMRSgiUENNXzJfQ0FQX0NIMiIsIEFGRV9DT05ONTUsDQorCQkJCSAgICBJX1BDTV8y X0NBUF9DSDIsIDEsIDApLA0KK307DQorDQorc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRy b2xfbmV3IG10a19pMnM5X2NoMV9taXhbXSA9IHsNCisJU09DX0RBUE1fU0lOR0xFX0FVVE9ESVNB QkxFKCJETDFfQ0gxIiwgQUZFX0NPTk41NiwgSV9ETDFfQ0gxLCAxLCAwKSwNCisJU09DX0RBUE1f U0lOR0xFX0FVVE9ESVNBQkxFKCJETDJfQ0gxIiwgQUZFX0NPTk41NiwgSV9ETDJfQ0gxLCAxLCAw KSwNCisJU09DX0RBUE1fU0lOR0xFX0FVVE9ESVNBQkxFKCJETDNfQ0gxIiwgQUZFX0NPTk41Niwg SV9ETDNfQ0gxLCAxLCAwKSwNCisJU09DX0RBUE1fU0lOR0xFX0FVVE9ESVNBQkxFKCJETDEyX0NI MSIsIEFGRV9DT05ONTYsIElfREwxMl9DSDEsIDEsIDApLA0KKwlTT0NfREFQTV9TSU5HTEVfQVVU T0RJU0FCTEUoIkRMNl9DSDEiLCBBRkVfQ09OTjU2XzEsIElfREw2X0NIMSwgMSwgMCksDQorCVNP Q19EQVBNX1NJTkdMRV9BVVRPRElTQUJMRSgiREw0X0NIMSIsIEFGRV9DT05ONTZfMSwgSV9ETDRf Q0gxLCAxLCAwKSwNCisJU09DX0RBUE1fU0lOR0xFX0FVVE9ESVNBQkxFKCJETDVfQ0gxIiwgQUZF X0NPTk41Nl8xLCBJX0RMNV9DSDEsIDEsIDApLA0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FC TEUoIkRMOF9DSDEiLCBBRkVfQ09OTjU2XzEsIElfREw4X0NIMSwgMSwgMCksDQorCVNPQ19EQVBN X1NJTkdMRV9BVVRPRElTQUJMRSgiREw5X0NIMSIsIEFGRV9DT05ONTZfMSwgSV9ETDlfQ0gxLCAx LCAwKSwNCisJU09DX0RBUE1fU0lOR0xFX0FVVE9ESVNBQkxFKCJHQUlOMV9PVVRfQ0gxIiwgQUZF X0NPTk41NiwNCisJCQkJICAgIElfR0FJTjFfT1VUX0NIMSwgMSwgMCksDQorCVNPQ19EQVBNX1NJ TkdMRV9BVVRPRElTQUJMRSgiQUREQV9VTF9DSDEiLCBBRkVfQ09OTjU2LA0KKwkJCQkgICAgSV9B RERBX1VMX0NIMSwgMSwgMCksDQorCVNPQ19EQVBNX1NJTkdMRV9BVVRPRElTQUJMRSgiUENNXzFf Q0FQX0NIMSIsIEFGRV9DT05ONTYsDQorCQkJCSAgICBJX1BDTV8xX0NBUF9DSDEsIDEsIDApLA0K KwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIlBDTV8yX0NBUF9DSDEiLCBBRkVfQ09OTjU2 LA0KKwkJCQkgICAgSV9QQ01fMl9DQVBfQ0gxLCAxLCAwKSwNCit9Ow0KKw0KK3N0YXRpYyBjb25z dCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBtdGtfaTJzOV9jaDJfbWl4W10gPSB7DQorCVNPQ19E QVBNX1NJTkdMRV9BVVRPRElTQUJMRSgiREwxX0NIMiIsIEFGRV9DT05ONTcsIElfREwxX0NIMiwg MSwgMCksDQorCVNPQ19EQVBNX1NJTkdMRV9BVVRPRElTQUJMRSgiREwyX0NIMiIsIEFGRV9DT05O NTcsIElfREwyX0NIMiwgMSwgMCksDQorCVNPQ19EQVBNX1NJTkdMRV9BVVRPRElTQUJMRSgiREwz X0NIMiIsIEFGRV9DT05ONTcsIElfREwzX0NIMiwgMSwgMCksDQorCVNPQ19EQVBNX1NJTkdMRV9B VVRPRElTQUJMRSgiREwxMl9DSDIiLCBBRkVfQ09OTjU3LCBJX0RMMTJfQ0gyLCAxLCAwKSwNCisJ U09DX0RBUE1fU0lOR0xFX0FVVE9ESVNBQkxFKCJETDZfQ0gyIiwgQUZFX0NPTk41N18xLCBJX0RM Nl9DSDIsIDEsIDApLA0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIkRMNF9DSDIiLCBB RkVfQ09OTjU3XzEsIElfREw0X0NIMiwgMSwgMCksDQorCVNPQ19EQVBNX1NJTkdMRV9BVVRPRElT QUJMRSgiREw1X0NIMiIsIEFGRV9DT05ONTdfMSwgSV9ETDVfQ0gyLCAxLCAwKSwNCisJU09DX0RB UE1fU0lOR0xFX0FVVE9ESVNBQkxFKCJETDhfQ0gyIiwgQUZFX0NPTk41N18xLCBJX0RMOF9DSDIs IDEsIDApLA0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIkRMOV9DSDIiLCBBRkVfQ09O TjU3XzEsIElfREw5X0NIMiwgMSwgMCksDQorCVNPQ19EQVBNX1NJTkdMRV9BVVRPRElTQUJMRSgi R0FJTjFfT1VUX0NIMiIsIEFGRV9DT05ONTcsDQorCQkJCSAgICBJX0dBSU4xX09VVF9DSDIsIDEs IDApLA0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIkFEREFfVUxfQ0gyIiwgQUZFX0NP Tk41NywNCisJCQkJICAgIElfQUREQV9VTF9DSDIsIDEsIDApLA0KKwlTT0NfREFQTV9TSU5HTEVf QVVUT0RJU0FCTEUoIlBDTV8xX0NBUF9DSDEiLCBBRkVfQ09OTjU3LA0KKwkJCQkgICAgSV9QQ01f MV9DQVBfQ0gxLCAxLCAwKSwNCisJU09DX0RBUE1fU0lOR0xFX0FVVE9ESVNBQkxFKCJQQ01fMl9D QVBfQ0gxIiwgQUZFX0NPTk41NywNCisJCQkJICAgIElfUENNXzJfQ0FQX0NIMSwgMSwgMCksDQor CVNPQ19EQVBNX1NJTkdMRV9BVVRPRElTQUJMRSgiUENNXzFfQ0FQX0NIMiIsIEFGRV9DT05ONTcs DQorCQkJCSAgICBJX1BDTV8xX0NBUF9DSDIsIDEsIDApLA0KKwlTT0NfREFQTV9TSU5HTEVfQVVU T0RJU0FCTEUoIlBDTV8yX0NBUF9DSDIiLCBBRkVfQ09OTjU3LA0KKwkJCQkgICAgSV9QQ01fMl9D QVBfQ0gyLCAxLCAwKSwNCit9Ow0KKw0KK2VudW0gew0KKwlTVVBQTFlfU0VRX0FQTEwsDQorCVNV UFBMWV9TRVFfSTJTX01DTEtfRU4sDQorCVNVUFBMWV9TRVFfSTJTX0hEX0VOLA0KKwlTVVBQTFlf U0VRX0kyU19FTiwNCit9Ow0KKw0KK3N0YXRpYyBpbnQgbXRrX2kyc19lbl9ldmVudChzdHJ1Y3Qg c25kX3NvY19kYXBtX3dpZGdldCAqdywNCisJCQkgICAgc3RydWN0IHNuZF9rY29udHJvbCAqa2Nv bnRyb2wsDQorCQkJICAgIGludCBldmVudCkNCit7DQorCXN0cnVjdCBzbmRfc29jX2NvbXBvbmVu dCAqY21wbnQgPSBzbmRfc29jX2RhcG1fdG9fY29tcG9uZW50KHctPmRhcG0pOw0KKwlzdHJ1Y3Qg bXRrX2Jhc2VfYWZlICphZmUgPSBzbmRfc29jX2NvbXBvbmVudF9nZXRfZHJ2ZGF0YShjbXBudCk7 DQorCXN0cnVjdCBtdGtfYWZlX2kyc19wcml2ICppMnNfcHJpdjsNCisNCisJaTJzX3ByaXYgPSBn ZXRfaTJzX3ByaXZfYnlfbmFtZShhZmUsIHctPm5hbWUpOw0KKw0KKwlpZiAoIWkyc19wcml2KSB7 DQorCQlkZXZfd2FybihhZmUtPmRldiwgIiVzKCksIGkyc19wcml2ID09IE5VTEwiLCBfX2Z1bmNf Xyk7DQorCQlyZXR1cm4gLUVJTlZBTDsNCisJfQ0KKw0KKwlkZXZfaW5mbyhjbXBudC0+ZGV2LCAi JXMoKSwgbmFtZSAlcywgZXZlbnQgMHgleFxuIiwNCisJCSBfX2Z1bmNfXywgdy0+bmFtZSwgZXZl bnQpOw0KKw0KKwlzd2l0Y2ggKGV2ZW50KSB7DQorCWNhc2UgU05EX1NPQ19EQVBNX1BSRV9QTVU6 DQorCQltdDgxOTJfYWZlX2dwaW9fcmVxdWVzdChhZmUtPmRldiwgdHJ1ZSwgaTJzX3ByaXYtPmlk LCAwKTsNCisJCWJyZWFrOw0KKwljYXNlIFNORF9TT0NfREFQTV9QT1NUX1BNRDoNCisJCW10ODE5 Ml9hZmVfZ3Bpb19yZXF1ZXN0KGFmZS0+ZGV2LCBmYWxzZSwgaTJzX3ByaXYtPmlkLCAwKTsNCisJ CWJyZWFrOw0KKwlkZWZhdWx0Og0KKwkJYnJlYWs7DQorCX0NCisNCisJcmV0dXJuIDA7DQorfQ0K Kw0KK3N0YXRpYyBpbnQgbXRrX2kyc19oZF9lbl9ldmVudChzdHJ1Y3Qgc25kX3NvY19kYXBtX3dp ZGdldCAqdywNCisJCQkgICAgICAgc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsDQorCQkJ ICAgICAgIGludCBldmVudCkNCit7DQorCXN0cnVjdCBzbmRfc29jX2NvbXBvbmVudCAqY21wbnQg PSBzbmRfc29jX2RhcG1fdG9fY29tcG9uZW50KHctPmRhcG0pOw0KKw0KKwlkZXZfaW5mbyhjbXBu dC0+ZGV2LCAiJXMoKSwgbmFtZSAlcywgZXZlbnQgMHgleFxuIiwNCisJCSBfX2Z1bmNfXywgdy0+ bmFtZSwgZXZlbnQpOw0KKw0KKwlyZXR1cm4gMDsNCit9DQorDQorc3RhdGljIGludCBtdGtfYXBs bF9ldmVudChzdHJ1Y3Qgc25kX3NvY19kYXBtX3dpZGdldCAqdywNCisJCQkgIHN0cnVjdCBzbmRf a2NvbnRyb2wgKmtjb250cm9sLA0KKwkJCSAgaW50IGV2ZW50KQ0KK3sNCisJc3RydWN0IHNuZF9z b2NfY29tcG9uZW50ICpjbXBudCA9IHNuZF9zb2NfZGFwbV90b19jb21wb25lbnQody0+ZGFwbSk7 DQorCXN0cnVjdCBtdGtfYmFzZV9hZmUgKmFmZSA9IHNuZF9zb2NfY29tcG9uZW50X2dldF9kcnZk YXRhKGNtcG50KTsNCisNCisJZGV2X2luZm8oY21wbnQtPmRldiwgIiVzKCksIG5hbWUgJXMsIGV2 ZW50IDB4JXhcbiIsDQorCQkgX19mdW5jX18sIHctPm5hbWUsIGV2ZW50KTsNCisNCisJc3dpdGNo IChldmVudCkgew0KKwljYXNlIFNORF9TT0NfREFQTV9QUkVfUE1VOg0KKwkJaWYgKHN0cmNtcCh3 LT5uYW1lLCBBUExMMV9XX05BTUUpID09IDApDQorCQkJbXQ4MTkyX2FwbGwxX2VuYWJsZShhZmUp Ow0KKwkJZWxzZQ0KKwkJCW10ODE5Ml9hcGxsMl9lbmFibGUoYWZlKTsNCisJCWJyZWFrOw0KKwlj YXNlIFNORF9TT0NfREFQTV9QT1NUX1BNRDoNCisJCWlmIChzdHJjbXAody0+bmFtZSwgQVBMTDFf V19OQU1FKSA9PSAwKQ0KKwkJCW10ODE5Ml9hcGxsMV9kaXNhYmxlKGFmZSk7DQorCQllbHNlDQor CQkJbXQ4MTkyX2FwbGwyX2Rpc2FibGUoYWZlKTsNCisJCWJyZWFrOw0KKwlkZWZhdWx0Og0KKwkJ YnJlYWs7DQorCX0NCisNCisJcmV0dXJuIDA7DQorfQ0KKw0KK3N0YXRpYyBpbnQgaTJzX291dF90 aW55Y29ubl9ldmVudChzdHJ1Y3Qgc25kX3NvY19kYXBtX3dpZGdldCAqdywNCisJCQkJICBzdHJ1 Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwNCisJCQkJICBpbnQgZXZlbnQpDQorew0KKwlzdHJ1 Y3Qgc25kX3NvY19jb21wb25lbnQgKmNtcG50ID0gc25kX3NvY19kYXBtX3RvX2NvbXBvbmVudCh3 LT5kYXBtKTsNCisJc3RydWN0IG10a19iYXNlX2FmZSAqYWZlID0gc25kX3NvY19jb21wb25lbnRf Z2V0X2RydmRhdGEoY21wbnQpOw0KKwl1bnNpZ25lZCBpbnQgcmVnOw0KKwl1bnNpZ25lZCBpbnQg cmVnX3NoaWZ0Ow0KKwl1bnNpZ25lZCBpbnQgcmVnX21hc2tfc2hpZnQ7DQorDQorCWRldl9pbmZv KGFmZS0+ZGV2LCAiJXMoKSwgZXZlbnQgMHgleFxuIiwgX19mdW5jX18sIGV2ZW50KTsNCisNCisJ aWYgKHN0cnN0cih3LT5uYW1lLCAiSTJTMSIpKSB7DQorCQlyZWcgPSBBRkVfSTJTX0NPTjE7DQor CQlyZWdfc2hpZnQgPSBJMlMyXzMyQklUX0VOX1NGVDsNCisJCXJlZ19tYXNrX3NoaWZ0ID0gSTJT Ml8zMkJJVF9FTl9NQVNLX1NGVDsNCisJfSBlbHNlIGlmIChzdHJzdHIody0+bmFtZSwgIkkyUzMi KSkgew0KKwkJcmVnID0gQUZFX0kyU19DT04zOw0KKwkJcmVnX3NoaWZ0ID0gSTJTNF8zMkJJVF9F Tl9TRlQ7DQorCQlyZWdfbWFza19zaGlmdCA9IEkyUzRfMzJCSVRfRU5fTUFTS19TRlQ7DQorCX0g ZWxzZSBpZiAoc3Ryc3RyKHctPm5hbWUsICJJMlM1IikpIHsNCisJCXJlZyA9IEFGRV9JMlNfQ09O NDsNCisJCXJlZ19zaGlmdCA9IEkyUzVfMzJCSVRfRU5fU0ZUOw0KKwkJcmVnX21hc2tfc2hpZnQg PSBJMlM1XzMyQklUX0VOX01BU0tfU0ZUOw0KKwl9IGVsc2UgaWYgKHN0cnN0cih3LT5uYW1lLCAi STJTNyIpKSB7DQorCQlyZWcgPSBBRkVfSTJTX0NPTjc7DQorCQlyZWdfc2hpZnQgPSBJMlM3XzMy QklUX0VOX1NGVDsNCisJCXJlZ19tYXNrX3NoaWZ0ID0gSTJTN18zMkJJVF9FTl9NQVNLX1NGVDsN CisJfSBlbHNlIGlmIChzdHJzdHIody0+bmFtZSwgIkkyUzkiKSkgew0KKwkJcmVnID0gQUZFX0ky U19DT045Ow0KKwkJcmVnX3NoaWZ0ID0gSTJTOV8zMkJJVF9FTl9TRlQ7DQorCQlyZWdfbWFza19z aGlmdCA9IEkyUzlfMzJCSVRfRU5fTUFTS19TRlQ7DQorCX0gZWxzZSB7DQorCQlyZWcgPSBBRkVf STJTX0NPTjE7DQorCQlyZWdfc2hpZnQgPSBJMlMyXzMyQklUX0VOX1NGVDsNCisJCXJlZ19tYXNr X3NoaWZ0ID0gSTJTMl8zMkJJVF9FTl9NQVNLX1NGVDsNCisJCWRldl93YXJuKGFmZS0+ZGV2LCAi JXMoKSwgZXJyb3Igd2lkZ2V0IG5hbWUgJXMsIHVzZSBpMnMxXG4iLA0KKwkJCSBfX2Z1bmNfXywg dy0+bmFtZSk7DQorCX0NCisNCisJc3dpdGNoIChldmVudCkgew0KKwljYXNlIFNORF9TT0NfREFQ TV9QUkVfUE1VOg0KKwkJcmVnbWFwX3VwZGF0ZV9iaXRzKGFmZS0+cmVnbWFwLCByZWcsIHJlZ19t YXNrX3NoaWZ0LA0KKwkJCQkgICAweDEgPDwgcmVnX3NoaWZ0KTsNCisJCWJyZWFrOw0KKwljYXNl IFNORF9TT0NfREFQTV9QUkVfUE1EOg0KKwkJcmVnbWFwX3VwZGF0ZV9iaXRzKGFmZS0+cmVnbWFw LCByZWcsIHJlZ19tYXNrX3NoaWZ0LA0KKwkJCQkgICAweDAgPDwgcmVnX3NoaWZ0KTsNCisJCWJy ZWFrOw0KKwlkZWZhdWx0Og0KKwkJYnJlYWs7DQorCX0NCisNCisJcmV0dXJuIDA7DQorfQ0KKw0K K3N0YXRpYyBpbnQgbXRrX21jbGtfZW5fZXZlbnQoc3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQg KncsDQorCQkJICAgICBzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwNCisJCQkgICAgIGlu dCBldmVudCkNCit7DQorCXN0cnVjdCBzbmRfc29jX2NvbXBvbmVudCAqY21wbnQgPSBzbmRfc29j X2RhcG1fdG9fY29tcG9uZW50KHctPmRhcG0pOw0KKwlzdHJ1Y3QgbXRrX2Jhc2VfYWZlICphZmUg PSBzbmRfc29jX2NvbXBvbmVudF9nZXRfZHJ2ZGF0YShjbXBudCk7DQorCXN0cnVjdCBtdGtfYWZl X2kyc19wcml2ICppMnNfcHJpdjsNCisNCisJZGV2X2luZm8oY21wbnQtPmRldiwgIiVzKCksIG5h bWUgJXMsIGV2ZW50IDB4JXhcbiIsDQorCQkgX19mdW5jX18sIHctPm5hbWUsIGV2ZW50KTsNCisN CisJaTJzX3ByaXYgPSBnZXRfaTJzX3ByaXZfYnlfbmFtZShhZmUsIHctPm5hbWUpOw0KKwlpZiAo IWkyc19wcml2KSB7DQorCQlkZXZfd2FybihhZmUtPmRldiwgIiVzKCksIGkyc19wcml2ID09IE5V TEwiLCBfX2Z1bmNfXyk7DQorCQlyZXR1cm4gLUVJTlZBTDsNCisJfQ0KKw0KKwlzd2l0Y2ggKGV2 ZW50KSB7DQorCWNhc2UgU05EX1NPQ19EQVBNX1BSRV9QTVU6DQorCQltdDgxOTJfbWNrX2VuYWJs ZShhZmUsIGkyc19wcml2LT5tY2xrX2lkLCBpMnNfcHJpdi0+bWNsa19yYXRlKTsNCisJCWJyZWFr Ow0KKwljYXNlIFNORF9TT0NfREFQTV9QT1NUX1BNRDoNCisJCWkyc19wcml2LT5tY2xrX3JhdGUg PSAwOw0KKwkJbXQ4MTkyX21ja19kaXNhYmxlKGFmZSwgaTJzX3ByaXYtPm1jbGtfaWQpOw0KKwkJ YnJlYWs7DQorCWRlZmF1bHQ6DQorCQlicmVhazsNCisJfQ0KKw0KKwlyZXR1cm4gMDsNCit9DQor DQorc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfc29jX2RhcG1fd2lkZ2V0IG10a19kYWlfaTJzX3dp ZGdldHNbXSA9IHsNCisJU05EX1NPQ19EQVBNX0lOUFVUKCJDT05OU1lTIiksDQorDQorCVNORF9T T0NfREFQTV9NSVhFUigiSTJTMV9DSDEiLCBTTkRfU09DX05PUE0sIDAsIDAsDQorCQkJICAgbXRr X2kyczFfY2gxX21peCwNCisJCQkgICBBUlJBWV9TSVpFKG10a19pMnMxX2NoMV9taXgpKSwNCisJ U05EX1NPQ19EQVBNX01JWEVSKCJJMlMxX0NIMiIsIFNORF9TT0NfTk9QTSwgMCwgMCwNCisJCQkg ICBtdGtfaTJzMV9jaDJfbWl4LA0KKwkJCSAgIEFSUkFZX1NJWkUobXRrX2kyczFfY2gyX21peCkp LA0KKw0KKwlTTkRfU09DX0RBUE1fTUlYRVIoIkkyUzNfQ0gxIiwgU05EX1NPQ19OT1BNLCAwLCAw LA0KKwkJCSAgIG10a19pMnMzX2NoMV9taXgsDQorCQkJICAgQVJSQVlfU0laRShtdGtfaTJzM19j aDFfbWl4KSksDQorCVNORF9TT0NfREFQTV9NSVhFUigiSTJTM19DSDIiLCBTTkRfU09DX05PUE0s IDAsIDAsDQorCQkJICAgbXRrX2kyczNfY2gyX21peCwNCisJCQkgICBBUlJBWV9TSVpFKG10a19p MnMzX2NoMl9taXgpKSwNCisNCisJU05EX1NPQ19EQVBNX01JWEVSKCJJMlM1X0NIMSIsIFNORF9T T0NfTk9QTSwgMCwgMCwNCisJCQkgICBtdGtfaTJzNV9jaDFfbWl4LA0KKwkJCSAgIEFSUkFZX1NJ WkUobXRrX2kyczVfY2gxX21peCkpLA0KKwlTTkRfU09DX0RBUE1fTUlYRVIoIkkyUzVfQ0gyIiwg U05EX1NPQ19OT1BNLCAwLCAwLA0KKwkJCSAgIG10a19pMnM1X2NoMl9taXgsDQorCQkJICAgQVJS QVlfU0laRShtdGtfaTJzNV9jaDJfbWl4KSksDQorDQorCVNORF9TT0NfREFQTV9NSVhFUigiSTJT N19DSDEiLCBTTkRfU09DX05PUE0sIDAsIDAsDQorCQkJICAgbXRrX2kyczdfY2gxX21peCwNCisJ CQkgICBBUlJBWV9TSVpFKG10a19pMnM3X2NoMV9taXgpKSwNCisJU05EX1NPQ19EQVBNX01JWEVS KCJJMlM3X0NIMiIsIFNORF9TT0NfTk9QTSwgMCwgMCwNCisJCQkgICBtdGtfaTJzN19jaDJfbWl4 LA0KKwkJCSAgIEFSUkFZX1NJWkUobXRrX2kyczdfY2gyX21peCkpLA0KKw0KKwlTTkRfU09DX0RB UE1fTUlYRVIoIkkyUzlfQ0gxIiwgU05EX1NPQ19OT1BNLCAwLCAwLA0KKwkJCSAgIG10a19pMnM5 X2NoMV9taXgsDQorCQkJICAgQVJSQVlfU0laRShtdGtfaTJzOV9jaDFfbWl4KSksDQorCVNORF9T T0NfREFQTV9NSVhFUigiSTJTOV9DSDIiLCBTTkRfU09DX05PUE0sIDAsIDAsDQorCQkJICAgbXRr X2kyczlfY2gyX21peCwNCisJCQkgICBBUlJBWV9TSVpFKG10a19pMnM5X2NoMl9taXgpKSwNCisN CisJU05EX1NPQ19EQVBNX01VWF9FKCJJMlMxX1RJTllDT05OX0NIMV9NVVgiLCBTTkRfU09DX05P UE0sIDAsIDAsDQorCQkJICAgJmkyczFfdGlueWNvbm5fY2gxX211eF9jb250cm9sLA0KKwkJCSAg IGkyc19vdXRfdGlueWNvbm5fZXZlbnQsDQorCQkJICAgU05EX1NPQ19EQVBNX1BSRV9QTVUgfCBT TkRfU09DX0RBUE1fUFJFX1BNRCksDQorCVNORF9TT0NfREFQTV9NVVhfRSgiSTJTMV9USU5ZQ09O Tl9DSDJfTVVYIiwgU05EX1NPQ19OT1BNLCAwLCAwLA0KKwkJCSAgICZpMnMxX3Rpbnljb25uX2No Ml9tdXhfY29udHJvbCwNCisJCQkgICBpMnNfb3V0X3Rpbnljb25uX2V2ZW50LA0KKwkJCSAgIFNO RF9TT0NfREFQTV9QUkVfUE1VIHwgU05EX1NPQ19EQVBNX1BSRV9QTUQpLA0KKwlTTkRfU09DX0RB UE1fTVVYX0UoIkkyUzNfVElOWUNPTk5fQ0gxX01VWCIsIFNORF9TT0NfTk9QTSwgMCwgMCwNCisJ CQkgICAmaTJzM190aW55Y29ubl9jaDFfbXV4X2NvbnRyb2wsDQorCQkJICAgaTJzX291dF90aW55 Y29ubl9ldmVudCwNCisJCQkgICBTTkRfU09DX0RBUE1fUFJFX1BNVSB8IFNORF9TT0NfREFQTV9Q UkVfUE1EKSwNCisJU05EX1NPQ19EQVBNX01VWF9FKCJJMlMzX1RJTllDT05OX0NIMl9NVVgiLCBT TkRfU09DX05PUE0sIDAsIDAsDQorCQkJICAgJmkyczNfdGlueWNvbm5fY2gyX211eF9jb250cm9s LA0KKwkJCSAgIGkyc19vdXRfdGlueWNvbm5fZXZlbnQsDQorCQkJICAgU05EX1NPQ19EQVBNX1BS RV9QTVUgfCBTTkRfU09DX0RBUE1fUFJFX1BNRCksDQorDQorCS8qIGkycyBlbiovDQorCVNORF9T T0NfREFQTV9TVVBQTFlfUygiSTJTMF9FTiIsIFNVUFBMWV9TRVFfSTJTX0VOLA0KKwkJCSAgICAg IEFGRV9JMlNfQ09OLCBJMlNfRU5fU0ZULCAwLA0KKwkJCSAgICAgIG10a19pMnNfZW5fZXZlbnQs DQorCQkJICAgICAgU05EX1NPQ19EQVBNX1BSRV9QTVUgfCBTTkRfU09DX0RBUE1fUE9TVF9QTUQp LA0KKwlTTkRfU09DX0RBUE1fU1VQUExZX1MoIkkyUzFfRU4iLCBTVVBQTFlfU0VRX0kyU19FTiwN CisJCQkgICAgICBBRkVfSTJTX0NPTjEsIEkyU19FTl9TRlQsIDAsDQorCQkJICAgICAgbXRrX2ky c19lbl9ldmVudCwNCisJCQkgICAgICBTTkRfU09DX0RBUE1fUFJFX1BNVSB8IFNORF9TT0NfREFQ TV9QT1NUX1BNRCksDQorCVNORF9TT0NfREFQTV9TVVBQTFlfUygiSTJTMl9FTiIsIFNVUFBMWV9T RVFfSTJTX0VOLA0KKwkJCSAgICAgIEFGRV9JMlNfQ09OMiwgSTJTX0VOX1NGVCwgMCwNCisJCQkg ICAgICBtdGtfaTJzX2VuX2V2ZW50LA0KKwkJCSAgICAgIFNORF9TT0NfREFQTV9QUkVfUE1VIHwg U05EX1NPQ19EQVBNX1BPU1RfUE1EKSwNCisJU05EX1NPQ19EQVBNX1NVUFBMWV9TKCJJMlMzX0VO IiwgU1VQUExZX1NFUV9JMlNfRU4sDQorCQkJICAgICAgQUZFX0kyU19DT04zLCBJMlNfRU5fU0ZU LCAwLA0KKwkJCSAgICAgIG10a19pMnNfZW5fZXZlbnQsDQorCQkJICAgICAgU05EX1NPQ19EQVBN X1BSRV9QTVUgfCBTTkRfU09DX0RBUE1fUE9TVF9QTUQpLA0KKwlTTkRfU09DX0RBUE1fU1VQUExZ X1MoIkkyUzVfRU4iLCBTVVBQTFlfU0VRX0kyU19FTiwNCisJCQkgICAgICBBRkVfSTJTX0NPTjQs IEkyUzVfRU5fU0ZULCAwLA0KKwkJCSAgICAgIG10a19pMnNfZW5fZXZlbnQsDQorCQkJICAgICAg U05EX1NPQ19EQVBNX1BSRV9QTVUgfCBTTkRfU09DX0RBUE1fUE9TVF9QTUQpLA0KKwlTTkRfU09D X0RBUE1fU1VQUExZX1MoIkkyUzZfRU4iLCBTVVBQTFlfU0VRX0kyU19FTiwNCisJCQkgICAgICBB RkVfSTJTX0NPTjYsIEkyUzZfRU5fU0ZULCAwLA0KKwkJCSAgICAgIG10a19pMnNfZW5fZXZlbnQs DQorCQkJICAgICAgU05EX1NPQ19EQVBNX1BSRV9QTVUgfCBTTkRfU09DX0RBUE1fUE9TVF9QTUQp LA0KKwlTTkRfU09DX0RBUE1fU1VQUExZX1MoIkkyUzdfRU4iLCBTVVBQTFlfU0VRX0kyU19FTiwN CisJCQkgICAgICBBRkVfSTJTX0NPTjcsIEkyUzdfRU5fU0ZULCAwLA0KKwkJCSAgICAgIG10a19p MnNfZW5fZXZlbnQsDQorCQkJICAgICAgU05EX1NPQ19EQVBNX1BSRV9QTVUgfCBTTkRfU09DX0RB UE1fUE9TVF9QTUQpLA0KKwlTTkRfU09DX0RBUE1fU1VQUExZX1MoIkkyUzhfRU4iLCBTVVBQTFlf U0VRX0kyU19FTiwNCisJCQkgICAgICBBRkVfSTJTX0NPTjgsIEkyUzhfRU5fU0ZULCAwLA0KKwkJ CSAgICAgIG10a19pMnNfZW5fZXZlbnQsDQorCQkJICAgICAgU05EX1NPQ19EQVBNX1BSRV9QTVUg fCBTTkRfU09DX0RBUE1fUE9TVF9QTUQpLA0KKwlTTkRfU09DX0RBUE1fU1VQUExZX1MoIkkyUzlf RU4iLCBTVVBQTFlfU0VRX0kyU19FTiwNCisJCQkgICAgICBBRkVfSTJTX0NPTjksIEkyUzlfRU5f U0ZULCAwLA0KKwkJCSAgICAgIG10a19pMnNfZW5fZXZlbnQsDQorCQkJICAgICAgU05EX1NPQ19E QVBNX1BSRV9QTVUgfCBTTkRfU09DX0RBUE1fUE9TVF9QTUQpLA0KKwkvKiBpMnMgaGQgZW4gKi8N CisJU05EX1NPQ19EQVBNX1NVUFBMWV9TKEkyUzBfSERfRU5fV19OQU1FLCBTVVBQTFlfU0VRX0ky U19IRF9FTiwNCisJCQkgICAgICBBRkVfSTJTX0NPTiwgSTJTMV9IRF9FTl9TRlQsIDAsDQorCQkJ ICAgICAgbXRrX2kyc19oZF9lbl9ldmVudCwNCisJCQkgICAgICBTTkRfU09DX0RBUE1fUFJFX1BN VSB8IFNORF9TT0NfREFQTV9QT1NUX1BNRCksDQorCVNORF9TT0NfREFQTV9TVVBQTFlfUyhJMlMx X0hEX0VOX1dfTkFNRSwgU1VQUExZX1NFUV9JMlNfSERfRU4sDQorCQkJICAgICAgQUZFX0kyU19D T04xLCBJMlMyX0hEX0VOX1NGVCwgMCwNCisJCQkgICAgICBtdGtfaTJzX2hkX2VuX2V2ZW50LA0K KwkJCSAgICAgIFNORF9TT0NfREFQTV9QUkVfUE1VIHwgU05EX1NPQ19EQVBNX1BPU1RfUE1EKSwN CisJU05EX1NPQ19EQVBNX1NVUFBMWV9TKEkyUzJfSERfRU5fV19OQU1FLCBTVVBQTFlfU0VRX0ky U19IRF9FTiwNCisJCQkgICAgICBBRkVfSTJTX0NPTjIsIEkyUzNfSERfRU5fU0ZULCAwLA0KKwkJ CSAgICAgIG10a19pMnNfaGRfZW5fZXZlbnQsDQorCQkJICAgICAgU05EX1NPQ19EQVBNX1BSRV9Q TVUgfCBTTkRfU09DX0RBUE1fUE9TVF9QTUQpLA0KKwlTTkRfU09DX0RBUE1fU1VQUExZX1MoSTJT M19IRF9FTl9XX05BTUUsIFNVUFBMWV9TRVFfSTJTX0hEX0VOLA0KKwkJCSAgICAgIEFGRV9JMlNf Q09OMywgSTJTNF9IRF9FTl9TRlQsIDAsDQorCQkJICAgICAgbXRrX2kyc19oZF9lbl9ldmVudCwN CisJCQkgICAgICBTTkRfU09DX0RBUE1fUFJFX1BNVSB8IFNORF9TT0NfREFQTV9QT1NUX1BNRCks DQorCVNORF9TT0NfREFQTV9TVVBQTFlfUyhJMlM1X0hEX0VOX1dfTkFNRSwgU1VQUExZX1NFUV9J MlNfSERfRU4sDQorCQkJICAgICAgQUZFX0kyU19DT040LCBJMlM1X0hEX0VOX1NGVCwgMCwNCisJ CQkgICAgICBtdGtfaTJzX2hkX2VuX2V2ZW50LA0KKwkJCSAgICAgIFNORF9TT0NfREFQTV9QUkVf UE1VIHwgU05EX1NPQ19EQVBNX1BPU1RfUE1EKSwNCisJU05EX1NPQ19EQVBNX1NVUFBMWV9TKEky UzZfSERfRU5fV19OQU1FLCBTVVBQTFlfU0VRX0kyU19IRF9FTiwNCisJCQkgICAgICBBRkVfSTJT X0NPTjYsIEkyUzZfSERfRU5fU0ZULCAwLA0KKwkJCSAgICAgIG10a19pMnNfaGRfZW5fZXZlbnQs DQorCQkJICAgICAgU05EX1NPQ19EQVBNX1BSRV9QTVUgfCBTTkRfU09DX0RBUE1fUE9TVF9QTUQp LA0KKwlTTkRfU09DX0RBUE1fU1VQUExZX1MoSTJTN19IRF9FTl9XX05BTUUsIFNVUFBMWV9TRVFf STJTX0hEX0VOLA0KKwkJCSAgICAgIEFGRV9JMlNfQ09ONywgSTJTN19IRF9FTl9TRlQsIDAsDQor CQkJICAgICAgbXRrX2kyc19oZF9lbl9ldmVudCwNCisJCQkgICAgICBTTkRfU09DX0RBUE1fUFJF X1BNVSB8IFNORF9TT0NfREFQTV9QT1NUX1BNRCksDQorCVNORF9TT0NfREFQTV9TVVBQTFlfUyhJ MlM4X0hEX0VOX1dfTkFNRSwgU1VQUExZX1NFUV9JMlNfSERfRU4sDQorCQkJICAgICAgQUZFX0ky U19DT044LCBJMlM4X0hEX0VOX1NGVCwgMCwNCisJCQkgICAgICBtdGtfaTJzX2hkX2VuX2V2ZW50 LA0KKwkJCSAgICAgIFNORF9TT0NfREFQTV9QUkVfUE1VIHwgU05EX1NPQ19EQVBNX1BPU1RfUE1E KSwNCisJU05EX1NPQ19EQVBNX1NVUFBMWV9TKEkyUzlfSERfRU5fV19OQU1FLCBTVVBQTFlfU0VR X0kyU19IRF9FTiwNCisJCQkgICAgICBBRkVfSTJTX0NPTjksIEkyUzlfSERfRU5fU0ZULCAwLA0K KwkJCSAgICAgIG10a19pMnNfaGRfZW5fZXZlbnQsDQorCQkJICAgICAgU05EX1NPQ19EQVBNX1BS RV9QTVUgfCBTTkRfU09DX0RBUE1fUE9TVF9QTUQpLA0KKw0KKwkvKiBpMnMgbWNsayBlbiAqLw0K KwlTTkRfU09DX0RBUE1fU1VQUExZX1MoSTJTMF9NQ0xLX0VOX1dfTkFNRSwgU1VQUExZX1NFUV9J MlNfTUNMS19FTiwNCisJCQkgICAgICBTTkRfU09DX05PUE0sIDAsIDAsDQorCQkJICAgICAgbXRr X21jbGtfZW5fZXZlbnQsDQorCQkJICAgICAgU05EX1NPQ19EQVBNX1BSRV9QTVUgfCBTTkRfU09D X0RBUE1fUE9TVF9QTUQpLA0KKwlTTkRfU09DX0RBUE1fU1VQUExZX1MoSTJTMV9NQ0xLX0VOX1df TkFNRSwgU1VQUExZX1NFUV9JMlNfTUNMS19FTiwNCisJCQkgICAgICBTTkRfU09DX05PUE0sIDAs IDAsDQorCQkJICAgICAgbXRrX21jbGtfZW5fZXZlbnQsDQorCQkJICAgICAgU05EX1NPQ19EQVBN X1BSRV9QTVUgfCBTTkRfU09DX0RBUE1fUE9TVF9QTUQpLA0KKwlTTkRfU09DX0RBUE1fU1VQUExZ X1MoSTJTMl9NQ0xLX0VOX1dfTkFNRSwgU1VQUExZX1NFUV9JMlNfTUNMS19FTiwNCisJCQkgICAg ICBTTkRfU09DX05PUE0sIDAsIDAsDQorCQkJICAgICAgbXRrX21jbGtfZW5fZXZlbnQsDQorCQkJ ICAgICAgU05EX1NPQ19EQVBNX1BSRV9QTVUgfCBTTkRfU09DX0RBUE1fUE9TVF9QTUQpLA0KKwlT TkRfU09DX0RBUE1fU1VQUExZX1MoSTJTM19NQ0xLX0VOX1dfTkFNRSwgU1VQUExZX1NFUV9JMlNf TUNMS19FTiwNCisJCQkgICAgICBTTkRfU09DX05PUE0sIDAsIDAsDQorCQkJICAgICAgbXRrX21j bGtfZW5fZXZlbnQsDQorCQkJICAgICAgU05EX1NPQ19EQVBNX1BSRV9QTVUgfCBTTkRfU09DX0RB UE1fUE9TVF9QTUQpLA0KKwlTTkRfU09DX0RBUE1fU1VQUExZX1MoSTJTNV9NQ0xLX0VOX1dfTkFN RSwgU1VQUExZX1NFUV9JMlNfTUNMS19FTiwNCisJCQkgICAgICBTTkRfU09DX05PUE0sIDAsIDAs DQorCQkJICAgICAgbXRrX21jbGtfZW5fZXZlbnQsDQorCQkJICAgICAgU05EX1NPQ19EQVBNX1BS RV9QTVUgfCBTTkRfU09DX0RBUE1fUE9TVF9QTUQpLA0KKwlTTkRfU09DX0RBUE1fU1VQUExZX1Mo STJTNl9NQ0xLX0VOX1dfTkFNRSwgU1VQUExZX1NFUV9JMlNfTUNMS19FTiwNCisJCQkgICAgICBT TkRfU09DX05PUE0sIDAsIDAsDQorCQkJICAgICAgbXRrX21jbGtfZW5fZXZlbnQsDQorCQkJICAg ICAgU05EX1NPQ19EQVBNX1BSRV9QTVUgfCBTTkRfU09DX0RBUE1fUE9TVF9QTUQpLA0KKwlTTkRf U09DX0RBUE1fU1VQUExZX1MoSTJTN19NQ0xLX0VOX1dfTkFNRSwgU1VQUExZX1NFUV9JMlNfTUNM S19FTiwNCisJCQkgICAgICBTTkRfU09DX05PUE0sIDAsIDAsDQorCQkJICAgICAgbXRrX21jbGtf ZW5fZXZlbnQsDQorCQkJICAgICAgU05EX1NPQ19EQVBNX1BSRV9QTVUgfCBTTkRfU09DX0RBUE1f UE9TVF9QTUQpLA0KKwlTTkRfU09DX0RBUE1fU1VQUExZX1MoSTJTOF9NQ0xLX0VOX1dfTkFNRSwg U1VQUExZX1NFUV9JMlNfTUNMS19FTiwNCisJCQkgICAgICBTTkRfU09DX05PUE0sIDAsIDAsDQor CQkJICAgICAgbXRrX21jbGtfZW5fZXZlbnQsDQorCQkJICAgICAgU05EX1NPQ19EQVBNX1BSRV9Q TVUgfCBTTkRfU09DX0RBUE1fUE9TVF9QTUQpLA0KKwlTTkRfU09DX0RBUE1fU1VQUExZX1MoSTJT OV9NQ0xLX0VOX1dfTkFNRSwgU1VQUExZX1NFUV9JMlNfTUNMS19FTiwNCisJCQkgICAgICBTTkRf U09DX05PUE0sIDAsIDAsDQorCQkJICAgICAgbXRrX21jbGtfZW5fZXZlbnQsDQorCQkJICAgICAg U05EX1NPQ19EQVBNX1BSRV9QTVUgfCBTTkRfU09DX0RBUE1fUE9TVF9QTUQpLA0KKw0KKwkvKiBh cGxsICovDQorCVNORF9TT0NfREFQTV9TVVBQTFlfUyhBUExMMV9XX05BTUUsIFNVUFBMWV9TRVFf QVBMTCwNCisJCQkgICAgICBTTkRfU09DX05PUE0sIDAsIDAsDQorCQkJICAgICAgbXRrX2FwbGxf ZXZlbnQsDQorCQkJICAgICAgU05EX1NPQ19EQVBNX1BSRV9QTVUgfCBTTkRfU09DX0RBUE1fUE9T VF9QTUQpLA0KKwlTTkRfU09DX0RBUE1fU1VQUExZX1MoQVBMTDJfV19OQU1FLCBTVVBQTFlfU0VR X0FQTEwsDQorCQkJICAgICAgU05EX1NPQ19OT1BNLCAwLCAwLA0KKwkJCSAgICAgIG10a19hcGxs X2V2ZW50LA0KKwkJCSAgICAgIFNORF9TT0NfREFQTV9QUkVfUE1VIHwgU05EX1NPQ19EQVBNX1BP U1RfUE1EKSwNCisNCisJLyogYWxsb3cgaTJzIG9uIHdpdGhvdXQgY29kZWMgb24gKi8NCisJU05E X1NPQ19EQVBNX09VVFBVVCgiSTJTX0RVTU1ZX09VVCIpLA0KKwlTTkRfU09DX0RBUE1fTVVYKCJJ MlMxX091dF9NdXgiLA0KKwkJCSBTTkRfU09DX05PUE0sIDAsIDAsICZpMnMxX291dF9tdXhfY29u dHJvbCksDQorCVNORF9TT0NfREFQTV9NVVgoIkkyUzNfT3V0X011eCIsDQorCQkJIFNORF9TT0Nf Tk9QTSwgMCwgMCwgJmkyczNfb3V0X211eF9jb250cm9sKSwNCisJU05EX1NPQ19EQVBNX01VWCgi STJTNV9PdXRfTXV4IiwNCisJCQkgU05EX1NPQ19OT1BNLCAwLCAwLCAmaTJzNV9vdXRfbXV4X2Nv bnRyb2wpLA0KKwlTTkRfU09DX0RBUE1fTVVYKCJJMlM3X091dF9NdXgiLA0KKwkJCSBTTkRfU09D X05PUE0sIDAsIDAsICZpMnM3X291dF9tdXhfY29udHJvbCksDQorCVNORF9TT0NfREFQTV9NVVgo IkkyUzlfT3V0X011eCIsDQorCQkJIFNORF9TT0NfTk9QTSwgMCwgMCwgJmkyczlfb3V0X211eF9j b250cm9sKSwNCisNCisJU05EX1NPQ19EQVBNX0lOUFVUKCJJMlNfRFVNTVlfSU4iKSwNCisJU05E X1NPQ19EQVBNX01VWCgiSTJTMF9Jbl9NdXgiLA0KKwkJCSBTTkRfU09DX05PUE0sIDAsIDAsICZp MnMwX2luX211eF9jb250cm9sKSwNCisJU05EX1NPQ19EQVBNX01VWCgiSTJTOF9Jbl9NdXgiLA0K KwkJCSBTTkRfU09DX05PUE0sIDAsIDAsICZpMnM4X2luX211eF9jb250cm9sKSwNCisNCisJLyog aTJzIGluIGxwYmsgKi8NCisJU05EX1NPQ19EQVBNX01VWCgiSTJTMF9McGJrX011eCIsDQorCQkJ IFNORF9TT0NfTk9QTSwgMCwgMCwgJmkyczBfbHBia19tdXhfY29udHJvbCksDQorCVNORF9TT0Nf REFQTV9NVVgoIkkyUzJfTHBia19NdXgiLA0KKwkJCSBTTkRfU09DX05PUE0sIDAsIDAsICZpMnMy X2xwYmtfbXV4X2NvbnRyb2wpLA0KK307DQorDQorc3RhdGljIGludCBtdGtfYWZlX2kyc19zaGFy ZV9jb25uZWN0KHN0cnVjdCBzbmRfc29jX2RhcG1fd2lkZ2V0ICpzb3VyY2UsDQorCQkJCSAgICAg c3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQgKnNpbmspDQorew0KKwlzdHJ1Y3Qgc25kX3NvY19k YXBtX3dpZGdldCAqdyA9IHNpbms7DQorCXN0cnVjdCBzbmRfc29jX2NvbXBvbmVudCAqY21wbnQg PSBzbmRfc29jX2RhcG1fdG9fY29tcG9uZW50KHctPmRhcG0pOw0KKwlzdHJ1Y3QgbXRrX2Jhc2Vf YWZlICphZmUgPSBzbmRfc29jX2NvbXBvbmVudF9nZXRfZHJ2ZGF0YShjbXBudCk7DQorCXN0cnVj dCBtdGtfYWZlX2kyc19wcml2ICppMnNfcHJpdjsNCisNCisJaTJzX3ByaXYgPSBnZXRfaTJzX3By aXZfYnlfbmFtZShhZmUsIHNpbmstPm5hbWUpOw0KKwlpZiAoIWkyc19wcml2KSB7DQorCQlkZXZf d2FybihhZmUtPmRldiwgIiVzKCksIGkyc19wcml2ID09IE5VTEwiLCBfX2Z1bmNfXyk7DQorCQly ZXR1cm4gMDsNCisJfQ0KKw0KKwlpZiAoaTJzX3ByaXYtPnNoYXJlX2kyc19pZCA8IDApDQorCQly ZXR1cm4gMDsNCisNCisJcmV0dXJuIGkyc19wcml2LT5zaGFyZV9pMnNfaWQgPT0gZ2V0X2kyc19p ZF9ieV9uYW1lKGFmZSwgc291cmNlLT5uYW1lKTsNCit9DQorDQorc3RhdGljIGludCBtdGtfYWZl X2kyc19oZF9jb25uZWN0KHN0cnVjdCBzbmRfc29jX2RhcG1fd2lkZ2V0ICpzb3VyY2UsDQorCQkJ CSAgc3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQgKnNpbmspDQorew0KKwlzdHJ1Y3Qgc25kX3Nv Y19kYXBtX3dpZGdldCAqdyA9IHNpbms7DQorCXN0cnVjdCBzbmRfc29jX2NvbXBvbmVudCAqY21w bnQgPSBzbmRfc29jX2RhcG1fdG9fY29tcG9uZW50KHctPmRhcG0pOw0KKwlzdHJ1Y3QgbXRrX2Jh c2VfYWZlICphZmUgPSBzbmRfc29jX2NvbXBvbmVudF9nZXRfZHJ2ZGF0YShjbXBudCk7DQorCXN0 cnVjdCBtdGtfYWZlX2kyc19wcml2ICppMnNfcHJpdjsNCisNCisJaTJzX3ByaXYgPSBnZXRfaTJz X3ByaXZfYnlfbmFtZShhZmUsIHNpbmstPm5hbWUpOw0KKwlpZiAoIWkyc19wcml2KSB7DQorCQlk ZXZfd2FybihhZmUtPmRldiwgIiVzKCksIGkyc19wcml2ID09IE5VTEwiLCBfX2Z1bmNfXyk7DQor CQlyZXR1cm4gMDsNCisJfQ0KKw0KKwlpZiAoZ2V0X2kyc19pZF9ieV9uYW1lKGFmZSwgc2luay0+ bmFtZSkgPT0NCisJICAgIGdldF9pMnNfaWRfYnlfbmFtZShhZmUsIHNvdXJjZS0+bmFtZSkpDQor CQlyZXR1cm4gaTJzX3ByaXYtPmxvd19qaXR0ZXJfZW47DQorDQorCS8qIGNoZWNrIGlmIHNoYXJl IGkycyBuZWVkIGhkIGVuICovDQorCWlmIChpMnNfcHJpdi0+c2hhcmVfaTJzX2lkIDwgMCkNCisJ CXJldHVybiAwOw0KKw0KKwlpZiAoaTJzX3ByaXYtPnNoYXJlX2kyc19pZCA9PSBnZXRfaTJzX2lk X2J5X25hbWUoYWZlLCBzb3VyY2UtPm5hbWUpKQ0KKwkJcmV0dXJuIGkyc19wcml2LT5sb3dfaml0 dGVyX2VuOw0KKw0KKwlyZXR1cm4gMDsNCit9DQorDQorc3RhdGljIGludCBtdGtfYWZlX2kyc19h cGxsX2Nvbm5lY3Qoc3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQgKnNvdXJjZSwNCisJCQkJICAg IHN0cnVjdCBzbmRfc29jX2RhcG1fd2lkZ2V0ICpzaW5rKQ0KK3sNCisJc3RydWN0IHNuZF9zb2Nf ZGFwbV93aWRnZXQgKncgPSBzaW5rOw0KKwlzdHJ1Y3Qgc25kX3NvY19jb21wb25lbnQgKmNtcG50 ID0gc25kX3NvY19kYXBtX3RvX2NvbXBvbmVudCh3LT5kYXBtKTsNCisJc3RydWN0IG10a19iYXNl X2FmZSAqYWZlID0gc25kX3NvY19jb21wb25lbnRfZ2V0X2RydmRhdGEoY21wbnQpOw0KKwlzdHJ1 Y3QgbXRrX2FmZV9pMnNfcHJpdiAqaTJzX3ByaXY7DQorCWludCBjdXJfYXBsbDsNCisJaW50IGky c19uZWVkX2FwbGw7DQorDQorCWkyc19wcml2ID0gZ2V0X2kyc19wcml2X2J5X25hbWUoYWZlLCB3 LT5uYW1lKTsNCisJaWYgKCFpMnNfcHJpdikgew0KKwkJZGV2X3dhcm4oYWZlLT5kZXYsICIlcygp LCBpMnNfcHJpdiA9PSBOVUxMIiwgX19mdW5jX18pOw0KKwkJcmV0dXJuIDA7DQorCX0NCisNCisJ Lyogd2hpY2ggYXBsbCAqLw0KKwljdXJfYXBsbCA9IG10ODE5Ml9nZXRfYXBsbF9ieV9uYW1lKGFm ZSwgc291cmNlLT5uYW1lKTsNCisNCisJLyogY2hvb3NlIEFQTEwgZnJvbSBpMnMgcmF0ZSAqLw0K KwlpMnNfbmVlZF9hcGxsID0gbXQ4MTkyX2dldF9hcGxsX2J5X3JhdGUoYWZlLCBpMnNfcHJpdi0+ cmF0ZSk7DQorDQorCXJldHVybiAoaTJzX25lZWRfYXBsbCA9PSBjdXJfYXBsbCkgPyAxIDogMDsN Cit9DQorDQorc3RhdGljIGludCBtdGtfYWZlX2kyc19tY2xrX2Nvbm5lY3Qoc3RydWN0IHNuZF9z b2NfZGFwbV93aWRnZXQgKnNvdXJjZSwNCisJCQkJICAgIHN0cnVjdCBzbmRfc29jX2RhcG1fd2lk Z2V0ICpzaW5rKQ0KK3sNCisJc3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQgKncgPSBzaW5rOw0K KwlzdHJ1Y3Qgc25kX3NvY19jb21wb25lbnQgKmNtcG50ID0gc25kX3NvY19kYXBtX3RvX2NvbXBv bmVudCh3LT5kYXBtKTsNCisJc3RydWN0IG10a19iYXNlX2FmZSAqYWZlID0gc25kX3NvY19jb21w b25lbnRfZ2V0X2RydmRhdGEoY21wbnQpOw0KKwlzdHJ1Y3QgbXRrX2FmZV9pMnNfcHJpdiAqaTJz X3ByaXY7DQorDQorCWkyc19wcml2ID0gZ2V0X2kyc19wcml2X2J5X25hbWUoYWZlLCBzaW5rLT5u YW1lKTsNCisJaWYgKCFpMnNfcHJpdikgew0KKwkJZGV2X3dhcm4oYWZlLT5kZXYsICIlcygpLCBp MnNfcHJpdiA9PSBOVUxMIiwgX19mdW5jX18pOw0KKwkJcmV0dXJuIDA7DQorCX0NCisNCisJaWYg KGdldF9pMnNfaWRfYnlfbmFtZShhZmUsIHNpbmstPm5hbWUpID09DQorCSAgICBnZXRfaTJzX2lk X2J5X25hbWUoYWZlLCBzb3VyY2UtPm5hbWUpKQ0KKwkJcmV0dXJuIChpMnNfcHJpdi0+bWNsa19y YXRlID4gMCkgPyAxIDogMDsNCisNCisJLyogY2hlY2sgaWYgc2hhcmUgaTJzIG5lZWQgbWNsayAq Lw0KKwlpZiAoaTJzX3ByaXYtPnNoYXJlX2kyc19pZCA8IDApDQorCQlyZXR1cm4gMDsNCisNCisJ aWYgKGkyc19wcml2LT5zaGFyZV9pMnNfaWQgPT0gZ2V0X2kyc19pZF9ieV9uYW1lKGFmZSwgc291 cmNlLT5uYW1lKSkNCisJCXJldHVybiAoaTJzX3ByaXYtPm1jbGtfcmF0ZSA+IDApID8gMSA6IDA7 DQorDQorCXJldHVybiAwOw0KK30NCisNCitzdGF0aWMgaW50IG10a19hZmVfbWNsa19hcGxsX2Nv bm5lY3Qoc3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQgKnNvdXJjZSwNCisJCQkJICAgICBzdHJ1 Y3Qgc25kX3NvY19kYXBtX3dpZGdldCAqc2luaykNCit7DQorCXN0cnVjdCBzbmRfc29jX2RhcG1f d2lkZ2V0ICp3ID0gc2luazsNCisJc3RydWN0IHNuZF9zb2NfY29tcG9uZW50ICpjbXBudCA9IHNu ZF9zb2NfZGFwbV90b19jb21wb25lbnQody0+ZGFwbSk7DQorCXN0cnVjdCBtdGtfYmFzZV9hZmUg KmFmZSA9IHNuZF9zb2NfY29tcG9uZW50X2dldF9kcnZkYXRhKGNtcG50KTsNCisJc3RydWN0IG10 a19hZmVfaTJzX3ByaXYgKmkyc19wcml2Ow0KKwlpbnQgY3VyX2FwbGw7DQorDQorCWkyc19wcml2 ID0gZ2V0X2kyc19wcml2X2J5X25hbWUoYWZlLCB3LT5uYW1lKTsNCisJaWYgKCFpMnNfcHJpdikg ew0KKwkJZGV2X3dhcm4oYWZlLT5kZXYsICIlcygpLCBpMnNfcHJpdiA9PSBOVUxMIiwgX19mdW5j X18pOw0KKwkJcmV0dXJuIDA7DQorCX0NCisNCisJLyogd2hpY2ggYXBsbCAqLw0KKwljdXJfYXBs bCA9IG10ODE5Ml9nZXRfYXBsbF9ieV9uYW1lKGFmZSwgc291cmNlLT5uYW1lKTsNCisNCisJcmV0 dXJuIChpMnNfcHJpdi0+bWNsa19hcGxsID09IGN1cl9hcGxsKSA/IDEgOiAwOw0KK30NCisNCitz dGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV9yb3V0ZSBtdGtfZGFpX2kyc19yb3V0ZXNb XSA9IHsNCisJeyJDb25uc3lzIEkyUyIsIE5VTEwsICJDT05OU1lTIn0sDQorDQorCS8qIGkyczAg Ki8NCisJeyJJMlMwIiwgTlVMTCwgIkkyUzBfRU4ifSwNCisJeyJJMlMwIiwgTlVMTCwgIkkyUzFf RU4iLCBtdGtfYWZlX2kyc19zaGFyZV9jb25uZWN0fSwNCisJeyJJMlMwIiwgTlVMTCwgIkkyUzJf RU4iLCBtdGtfYWZlX2kyc19zaGFyZV9jb25uZWN0fSwNCisJeyJJMlMwIiwgTlVMTCwgIkkyUzNf RU4iLCBtdGtfYWZlX2kyc19zaGFyZV9jb25uZWN0fSwNCisJeyJJMlMwIiwgTlVMTCwgIkkyUzVf RU4iLCBtdGtfYWZlX2kyc19zaGFyZV9jb25uZWN0fSwNCisJeyJJMlMwIiwgTlVMTCwgIkkyUzZf RU4iLCBtdGtfYWZlX2kyc19zaGFyZV9jb25uZWN0fSwNCisJeyJJMlMwIiwgTlVMTCwgIkkyUzdf RU4iLCBtdGtfYWZlX2kyc19zaGFyZV9jb25uZWN0fSwNCisJeyJJMlMwIiwgTlVMTCwgIkkyUzhf RU4iLCBtdGtfYWZlX2kyc19zaGFyZV9jb25uZWN0fSwNCisJeyJJMlMwIiwgTlVMTCwgIkkyUzlf RU4iLCBtdGtfYWZlX2kyc19zaGFyZV9jb25uZWN0fSwNCisNCisJeyJJMlMwIiwgTlVMTCwgSTJT MF9IRF9FTl9XX05BTUUsIG10a19hZmVfaTJzX2hkX2Nvbm5lY3R9LA0KKwl7IkkyUzAiLCBOVUxM LCBJMlMxX0hEX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfaGRfY29ubmVjdH0sDQorCXsiSTJTMCIs IE5VTEwsIEkyUzJfSERfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19oZF9jb25uZWN0fSwNCisJeyJJ MlMwIiwgTlVMTCwgSTJTM19IRF9FTl9XX05BTUUsIG10a19hZmVfaTJzX2hkX2Nvbm5lY3R9LA0K Kwl7IkkyUzAiLCBOVUxMLCBJMlM1X0hEX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfaGRfY29ubmVj dH0sDQorCXsiSTJTMCIsIE5VTEwsIEkyUzZfSERfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19oZF9j b25uZWN0fSwNCisJeyJJMlMwIiwgTlVMTCwgSTJTN19IRF9FTl9XX05BTUUsIG10a19hZmVfaTJz X2hkX2Nvbm5lY3R9LA0KKwl7IkkyUzAiLCBOVUxMLCBJMlM4X0hEX0VOX1dfTkFNRSwgbXRrX2Fm ZV9pMnNfaGRfY29ubmVjdH0sDQorCXsiSTJTMCIsIE5VTEwsIEkyUzlfSERfRU5fV19OQU1FLCBt dGtfYWZlX2kyc19oZF9jb25uZWN0fSwNCisJe0kyUzBfSERfRU5fV19OQU1FLCBOVUxMLCBBUExM MV9XX05BTUUsIG10a19hZmVfaTJzX2FwbGxfY29ubmVjdH0sDQorCXtJMlMwX0hEX0VOX1dfTkFN RSwgTlVMTCwgQVBMTDJfV19OQU1FLCBtdGtfYWZlX2kyc19hcGxsX2Nvbm5lY3R9LA0KKw0KKwl7 IkkyUzAiLCBOVUxMLCBJMlMwX01DTEtfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19tY2xrX2Nvbm5l Y3R9LA0KKwl7IkkyUzAiLCBOVUxMLCBJMlMxX01DTEtfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19t Y2xrX2Nvbm5lY3R9LA0KKwl7IkkyUzAiLCBOVUxMLCBJMlMyX01DTEtfRU5fV19OQU1FLCBtdGtf YWZlX2kyc19tY2xrX2Nvbm5lY3R9LA0KKwl7IkkyUzAiLCBOVUxMLCBJMlMzX01DTEtfRU5fV19O QU1FLCBtdGtfYWZlX2kyc19tY2xrX2Nvbm5lY3R9LA0KKwl7IkkyUzAiLCBOVUxMLCBJMlM1X01D TEtfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19tY2xrX2Nvbm5lY3R9LA0KKwl7IkkyUzAiLCBOVUxM LCBJMlM2X01DTEtfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19tY2xrX2Nvbm5lY3R9LA0KKwl7Ikky UzAiLCBOVUxMLCBJMlM3X01DTEtfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19tY2xrX2Nvbm5lY3R9 LA0KKwl7IkkyUzAiLCBOVUxMLCBJMlM4X01DTEtfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19tY2xr X2Nvbm5lY3R9LA0KKwl7IkkyUzAiLCBOVUxMLCBJMlM5X01DTEtfRU5fV19OQU1FLCBtdGtfYWZl X2kyc19tY2xrX2Nvbm5lY3R9LA0KKwl7STJTMF9NQ0xLX0VOX1dfTkFNRSwgTlVMTCwgQVBMTDFf V19OQU1FLCBtdGtfYWZlX21jbGtfYXBsbF9jb25uZWN0fSwNCisJe0kyUzBfTUNMS19FTl9XX05B TUUsIE5VTEwsIEFQTEwyX1dfTkFNRSwgbXRrX2FmZV9tY2xrX2FwbGxfY29ubmVjdH0sDQorDQor CS8qIGkyczEgKi8NCisJeyJJMlMxX0NIMSIsICJETDFfQ0gxIiwgIkRMMSJ9LA0KKwl7IkkyUzFf Q0gyIiwgIkRMMV9DSDIiLCAiREwxIn0sDQorCXsiSTJTMV9USU5ZQ09OTl9DSDFfTVVYIiwgIkRM MV9DSDEiLCAiREwxIn0sDQorCXsiSTJTMV9USU5ZQ09OTl9DSDJfTVVYIiwgIkRMMV9DSDIiLCAi REwxIn0sDQorDQorCXsiSTJTMV9DSDEiLCAiREwyX0NIMSIsICJETDIifSwNCisJeyJJMlMxX0NI MiIsICJETDJfQ0gyIiwgIkRMMiJ9LA0KKwl7IkkyUzFfVElOWUNPTk5fQ0gxX01VWCIsICJETDJf Q0gxIiwgIkRMMiJ9LA0KKwl7IkkyUzFfVElOWUNPTk5fQ0gyX01VWCIsICJETDJfQ0gyIiwgIkRM MiJ9LA0KKw0KKwl7IkkyUzFfQ0gxIiwgIkRMM19DSDEiLCAiREwzIn0sDQorCXsiSTJTMV9DSDIi LCAiREwzX0NIMiIsICJETDMifSwNCisJeyJJMlMxX1RJTllDT05OX0NIMV9NVVgiLCAiREwzX0NI MSIsICJETDMifSwNCisJeyJJMlMxX1RJTllDT05OX0NIMl9NVVgiLCAiREwzX0NIMiIsICJETDMi fSwNCisNCisJeyJJMlMxX0NIMSIsICJETDEyX0NIMSIsICJETDEyIn0sDQorCXsiSTJTMV9DSDIi LCAiREwxMl9DSDIiLCAiREwxMiJ9LA0KKwl7IkkyUzFfVElOWUNPTk5fQ0gxX01VWCIsICJETDEy X0NIMSIsICJETDEyIn0sDQorCXsiSTJTMV9USU5ZQ09OTl9DSDJfTVVYIiwgIkRMMTJfQ0gyIiwg IkRMMTIifSwNCisNCisJeyJJMlMxX0NIMSIsICJETDRfQ0gxIiwgIkRMNCJ9LA0KKwl7IkkyUzFf Q0gyIiwgIkRMNF9DSDIiLCAiREw0In0sDQorDQorCXsiSTJTMV9DSDEiLCAiREw1X0NIMSIsICJE TDUifSwNCisJeyJJMlMxX0NIMiIsICJETDVfQ0gyIiwgIkRMNSJ9LA0KKw0KKwl7IkkyUzFfQ0gx IiwgIkRMNl9DSDEiLCAiREw2In0sDQorCXsiSTJTMV9DSDIiLCAiREw2X0NIMiIsICJETDYifSwN CisNCisJeyJJMlMxX0NIMSIsICJETDhfQ0gxIiwgIkRMOCJ9LA0KKwl7IkkyUzFfQ0gyIiwgIkRM OF9DSDIiLCAiREw4In0sDQorDQorCXsiSTJTMSIsIE5VTEwsICJJMlMxX0NIMSJ9LA0KKwl7Ikky UzEiLCBOVUxMLCAiSTJTMV9DSDIifSwNCisJeyJJMlMxIiwgTlVMTCwgIkkyUzNfVElOWUNPTk5f Q0gxX01VWCJ9LA0KKwl7IkkyUzEiLCBOVUxMLCAiSTJTM19USU5ZQ09OTl9DSDJfTVVYIn0sDQor DQorCXsiSTJTMSIsIE5VTEwsICJJMlMwX0VOIiwgbXRrX2FmZV9pMnNfc2hhcmVfY29ubmVjdH0s DQorCXsiSTJTMSIsIE5VTEwsICJJMlMxX0VOIn0sDQorCXsiSTJTMSIsIE5VTEwsICJJMlMyX0VO IiwgbXRrX2FmZV9pMnNfc2hhcmVfY29ubmVjdH0sDQorCXsiSTJTMSIsIE5VTEwsICJJMlMzX0VO IiwgbXRrX2FmZV9pMnNfc2hhcmVfY29ubmVjdH0sDQorCXsiSTJTMSIsIE5VTEwsICJJMlM1X0VO IiwgbXRrX2FmZV9pMnNfc2hhcmVfY29ubmVjdH0sDQorCXsiSTJTMSIsIE5VTEwsICJJMlM2X0VO IiwgbXRrX2FmZV9pMnNfc2hhcmVfY29ubmVjdH0sDQorCXsiSTJTMSIsIE5VTEwsICJJMlM3X0VO IiwgbXRrX2FmZV9pMnNfc2hhcmVfY29ubmVjdH0sDQorCXsiSTJTMSIsIE5VTEwsICJJMlM4X0VO IiwgbXRrX2FmZV9pMnNfc2hhcmVfY29ubmVjdH0sDQorCXsiSTJTMSIsIE5VTEwsICJJMlM5X0VO IiwgbXRrX2FmZV9pMnNfc2hhcmVfY29ubmVjdH0sDQorDQorCXsiSTJTMSIsIE5VTEwsIEkyUzBf SERfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19oZF9jb25uZWN0fSwNCisJeyJJMlMxIiwgTlVMTCwg STJTMV9IRF9FTl9XX05BTUUsIG10a19hZmVfaTJzX2hkX2Nvbm5lY3R9LA0KKwl7IkkyUzEiLCBO VUxMLCBJMlMyX0hEX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfaGRfY29ubmVjdH0sDQorCXsiSTJT MSIsIE5VTEwsIEkyUzNfSERfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19oZF9jb25uZWN0fSwNCisJ eyJJMlMxIiwgTlVMTCwgSTJTNV9IRF9FTl9XX05BTUUsIG10a19hZmVfaTJzX2hkX2Nvbm5lY3R9 LA0KKwl7IkkyUzEiLCBOVUxMLCBJMlM2X0hEX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfaGRfY29u bmVjdH0sDQorCXsiSTJTMSIsIE5VTEwsIEkyUzdfSERfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19o ZF9jb25uZWN0fSwNCisJeyJJMlMxIiwgTlVMTCwgSTJTOF9IRF9FTl9XX05BTUUsIG10a19hZmVf aTJzX2hkX2Nvbm5lY3R9LA0KKwl7IkkyUzEiLCBOVUxMLCBJMlM5X0hEX0VOX1dfTkFNRSwgbXRr X2FmZV9pMnNfaGRfY29ubmVjdH0sDQorCXtJMlMxX0hEX0VOX1dfTkFNRSwgTlVMTCwgQVBMTDFf V19OQU1FLCBtdGtfYWZlX2kyc19hcGxsX2Nvbm5lY3R9LA0KKwl7STJTMV9IRF9FTl9XX05BTUUs IE5VTEwsIEFQTEwyX1dfTkFNRSwgbXRrX2FmZV9pMnNfYXBsbF9jb25uZWN0fSwNCisNCisJeyJJ MlMxIiwgTlVMTCwgSTJTMF9NQ0xLX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfbWNsa19jb25uZWN0 fSwNCisJeyJJMlMxIiwgTlVMTCwgSTJTMV9NQ0xLX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfbWNs a19jb25uZWN0fSwNCisJeyJJMlMxIiwgTlVMTCwgSTJTMl9NQ0xLX0VOX1dfTkFNRSwgbXRrX2Fm ZV9pMnNfbWNsa19jb25uZWN0fSwNCisJeyJJMlMxIiwgTlVMTCwgSTJTM19NQ0xLX0VOX1dfTkFN RSwgbXRrX2FmZV9pMnNfbWNsa19jb25uZWN0fSwNCisJeyJJMlMxIiwgTlVMTCwgSTJTNV9NQ0xL X0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfbWNsa19jb25uZWN0fSwNCisJeyJJMlMxIiwgTlVMTCwg STJTNl9NQ0xLX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfbWNsa19jb25uZWN0fSwNCisJeyJJMlMx IiwgTlVMTCwgSTJTN19NQ0xLX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfbWNsa19jb25uZWN0fSwN CisJeyJJMlMxIiwgTlVMTCwgSTJTOF9NQ0xLX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfbWNsa19j b25uZWN0fSwNCisJeyJJMlMxIiwgTlVMTCwgSTJTOV9NQ0xLX0VOX1dfTkFNRSwgbXRrX2FmZV9p MnNfbWNsa19jb25uZWN0fSwNCisJe0kyUzFfTUNMS19FTl9XX05BTUUsIE5VTEwsIEFQTEwxX1df TkFNRSwgbXRrX2FmZV9tY2xrX2FwbGxfY29ubmVjdH0sDQorCXtJMlMxX01DTEtfRU5fV19OQU1F LCBOVUxMLCBBUExMMl9XX05BTUUsIG10a19hZmVfbWNsa19hcGxsX2Nvbm5lY3R9LA0KKw0KKwkv KiBpMnMyICovDQorCXsiSTJTMiIsIE5VTEwsICJJMlMwX0VOIiwgbXRrX2FmZV9pMnNfc2hhcmVf Y29ubmVjdH0sDQorCXsiSTJTMiIsIE5VTEwsICJJMlMxX0VOIiwgbXRrX2FmZV9pMnNfc2hhcmVf Y29ubmVjdH0sDQorCXsiSTJTMiIsIE5VTEwsICJJMlMyX0VOIn0sDQorCXsiSTJTMiIsIE5VTEws ICJJMlMzX0VOIiwgbXRrX2FmZV9pMnNfc2hhcmVfY29ubmVjdH0sDQorCXsiSTJTMiIsIE5VTEws ICJJMlM1X0VOIiwgbXRrX2FmZV9pMnNfc2hhcmVfY29ubmVjdH0sDQorCXsiSTJTMiIsIE5VTEws ICJJMlM2X0VOIiwgbXRrX2FmZV9pMnNfc2hhcmVfY29ubmVjdH0sDQorCXsiSTJTMiIsIE5VTEws ICJJMlM3X0VOIiwgbXRrX2FmZV9pMnNfc2hhcmVfY29ubmVjdH0sDQorCXsiSTJTMiIsIE5VTEws ICJJMlM4X0VOIiwgbXRrX2FmZV9pMnNfc2hhcmVfY29ubmVjdH0sDQorCXsiSTJTMiIsIE5VTEws ICJJMlM5X0VOIiwgbXRrX2FmZV9pMnNfc2hhcmVfY29ubmVjdH0sDQorDQorCXsiSTJTMiIsIE5V TEwsIEkyUzBfSERfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19oZF9jb25uZWN0fSwNCisJeyJJMlMy IiwgTlVMTCwgSTJTMV9IRF9FTl9XX05BTUUsIG10a19hZmVfaTJzX2hkX2Nvbm5lY3R9LA0KKwl7 IkkyUzIiLCBOVUxMLCBJMlMyX0hEX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfaGRfY29ubmVjdH0s DQorCXsiSTJTMiIsIE5VTEwsIEkyUzNfSERfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19oZF9jb25u ZWN0fSwNCisJeyJJMlMyIiwgTlVMTCwgSTJTNV9IRF9FTl9XX05BTUUsIG10a19hZmVfaTJzX2hk X2Nvbm5lY3R9LA0KKwl7IkkyUzIiLCBOVUxMLCBJMlM2X0hEX0VOX1dfTkFNRSwgbXRrX2FmZV9p MnNfaGRfY29ubmVjdH0sDQorCXsiSTJTMiIsIE5VTEwsIEkyUzdfSERfRU5fV19OQU1FLCBtdGtf YWZlX2kyc19oZF9jb25uZWN0fSwNCisJeyJJMlMyIiwgTlVMTCwgSTJTOF9IRF9FTl9XX05BTUUs IG10a19hZmVfaTJzX2hkX2Nvbm5lY3R9LA0KKwl7IkkyUzIiLCBOVUxMLCBJMlM5X0hEX0VOX1df TkFNRSwgbXRrX2FmZV9pMnNfaGRfY29ubmVjdH0sDQorCXtJMlMyX0hEX0VOX1dfTkFNRSwgTlVM TCwgQVBMTDFfV19OQU1FLCBtdGtfYWZlX2kyc19hcGxsX2Nvbm5lY3R9LA0KKwl7STJTMl9IRF9F Tl9XX05BTUUsIE5VTEwsIEFQTEwyX1dfTkFNRSwgbXRrX2FmZV9pMnNfYXBsbF9jb25uZWN0fSwN CisNCisJeyJJMlMyIiwgTlVMTCwgSTJTMF9NQ0xLX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfbWNs a19jb25uZWN0fSwNCisJeyJJMlMyIiwgTlVMTCwgSTJTMV9NQ0xLX0VOX1dfTkFNRSwgbXRrX2Fm ZV9pMnNfbWNsa19jb25uZWN0fSwNCisJeyJJMlMyIiwgTlVMTCwgSTJTMl9NQ0xLX0VOX1dfTkFN RSwgbXRrX2FmZV9pMnNfbWNsa19jb25uZWN0fSwNCisJeyJJMlMyIiwgTlVMTCwgSTJTM19NQ0xL X0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfbWNsa19jb25uZWN0fSwNCisJeyJJMlMyIiwgTlVMTCwg STJTNV9NQ0xLX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfbWNsa19jb25uZWN0fSwNCisJeyJJMlMy IiwgTlVMTCwgSTJTNl9NQ0xLX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfbWNsa19jb25uZWN0fSwN CisJeyJJMlMyIiwgTlVMTCwgSTJTN19NQ0xLX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfbWNsa19j b25uZWN0fSwNCisJeyJJMlMyIiwgTlVMTCwgSTJTOF9NQ0xLX0VOX1dfTkFNRSwgbXRrX2FmZV9p MnNfbWNsa19jb25uZWN0fSwNCisJeyJJMlMyIiwgTlVMTCwgSTJTOV9NQ0xLX0VOX1dfTkFNRSwg bXRrX2FmZV9pMnNfbWNsa19jb25uZWN0fSwNCisJe0kyUzJfTUNMS19FTl9XX05BTUUsIE5VTEws IEFQTEwxX1dfTkFNRSwgbXRrX2FmZV9tY2xrX2FwbGxfY29ubmVjdH0sDQorCXtJMlMyX01DTEtf RU5fV19OQU1FLCBOVUxMLCBBUExMMl9XX05BTUUsIG10a19hZmVfbWNsa19hcGxsX2Nvbm5lY3R9 LA0KKw0KKwkvKiBpMnMzICovDQorCXsiSTJTM19DSDEiLCAiREwxX0NIMSIsICJETDEifSwNCisJ eyJJMlMzX0NIMiIsICJETDFfQ0gyIiwgIkRMMSJ9LA0KKwl7IkkyUzNfVElOWUNPTk5fQ0gxX01V WCIsICJETDFfQ0gxIiwgIkRMMSJ9LA0KKwl7IkkyUzNfVElOWUNPTk5fQ0gyX01VWCIsICJETDFf Q0gyIiwgIkRMMSJ9LA0KKw0KKwl7IkkyUzNfQ0gxIiwgIkRMMl9DSDEiLCAiREwyIn0sDQorCXsi STJTM19DSDIiLCAiREwyX0NIMiIsICJETDIifSwNCisJeyJJMlMzX1RJTllDT05OX0NIMV9NVVgi LCAiREwyX0NIMSIsICJETDIifSwNCisJeyJJMlMzX1RJTllDT05OX0NIMl9NVVgiLCAiREwyX0NI MiIsICJETDIifSwNCisNCisJeyJJMlMzX0NIMSIsICJETDNfQ0gxIiwgIkRMMyJ9LA0KKwl7Ikky UzNfQ0gyIiwgIkRMM19DSDIiLCAiREwzIn0sDQorCXsiSTJTM19USU5ZQ09OTl9DSDFfTVVYIiwg IkRMM19DSDEiLCAiREwzIn0sDQorCXsiSTJTM19USU5ZQ09OTl9DSDJfTVVYIiwgIkRMM19DSDIi LCAiREwzIn0sDQorDQorCXsiSTJTM19DSDEiLCAiREwxMl9DSDEiLCAiREwxMiJ9LA0KKwl7Ikky UzNfQ0gyIiwgIkRMMTJfQ0gyIiwgIkRMMTIifSwNCisJeyJJMlMzX1RJTllDT05OX0NIMV9NVVgi LCAiREwxMl9DSDEiLCAiREwxMiJ9LA0KKwl7IkkyUzNfVElOWUNPTk5fQ0gyX01VWCIsICJETDEy X0NIMiIsICJETDEyIn0sDQorDQorCXsiSTJTM19DSDEiLCAiREw0X0NIMSIsICJETDQifSwNCisJ eyJJMlMzX0NIMiIsICJETDRfQ0gyIiwgIkRMNCJ9LA0KKw0KKwl7IkkyUzNfQ0gxIiwgIkRMNV9D SDEiLCAiREw1In0sDQorCXsiSTJTM19DSDIiLCAiREw1X0NIMiIsICJETDUifSwNCisNCisJeyJJ MlMzX0NIMSIsICJETDZfQ0gxIiwgIkRMNiJ9LA0KKwl7IkkyUzNfQ0gyIiwgIkRMNl9DSDIiLCAi REw2In0sDQorDQorCXsiSTJTM19DSDEiLCAiREw4X0NIMSIsICJETDgifSwNCisJeyJJMlMzX0NI MiIsICJETDhfQ0gyIiwgIkRMOCJ9LA0KKw0KKwl7IkkyUzMiLCBOVUxMLCAiSTJTM19DSDEifSwN CisJeyJJMlMzIiwgTlVMTCwgIkkyUzNfQ0gyIn0sDQorCXsiSTJTMyIsIE5VTEwsICJJMlMzX1RJ TllDT05OX0NIMV9NVVgifSwNCisJeyJJMlMzIiwgTlVMTCwgIkkyUzNfVElOWUNPTk5fQ0gyX01V WCJ9LA0KKw0KKwl7IkkyUzMiLCBOVUxMLCAiSTJTMF9FTiIsIG10a19hZmVfaTJzX3NoYXJlX2Nv bm5lY3R9LA0KKwl7IkkyUzMiLCBOVUxMLCAiSTJTMV9FTiIsIG10a19hZmVfaTJzX3NoYXJlX2Nv bm5lY3R9LA0KKwl7IkkyUzMiLCBOVUxMLCAiSTJTMl9FTiIsIG10a19hZmVfaTJzX3NoYXJlX2Nv bm5lY3R9LA0KKwl7IkkyUzMiLCBOVUxMLCAiSTJTM19FTiJ9LA0KKwl7IkkyUzMiLCBOVUxMLCAi STJTNV9FTiIsIG10a19hZmVfaTJzX3NoYXJlX2Nvbm5lY3R9LA0KKwl7IkkyUzMiLCBOVUxMLCAi STJTNl9FTiIsIG10a19hZmVfaTJzX3NoYXJlX2Nvbm5lY3R9LA0KKwl7IkkyUzMiLCBOVUxMLCAi STJTN19FTiIsIG10a19hZmVfaTJzX3NoYXJlX2Nvbm5lY3R9LA0KKwl7IkkyUzMiLCBOVUxMLCAi STJTOF9FTiIsIG10a19hZmVfaTJzX3NoYXJlX2Nvbm5lY3R9LA0KKwl7IkkyUzMiLCBOVUxMLCAi STJTOV9FTiIsIG10a19hZmVfaTJzX3NoYXJlX2Nvbm5lY3R9LA0KKw0KKwl7IkkyUzMiLCBOVUxM LCBJMlMwX0hEX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfaGRfY29ubmVjdH0sDQorCXsiSTJTMyIs IE5VTEwsIEkyUzFfSERfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19oZF9jb25uZWN0fSwNCisJeyJJ MlMzIiwgTlVMTCwgSTJTMl9IRF9FTl9XX05BTUUsIG10a19hZmVfaTJzX2hkX2Nvbm5lY3R9LA0K Kwl7IkkyUzMiLCBOVUxMLCBJMlMzX0hEX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfaGRfY29ubmVj dH0sDQorCXsiSTJTMyIsIE5VTEwsIEkyUzVfSERfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19oZF9j b25uZWN0fSwNCisJeyJJMlMzIiwgTlVMTCwgSTJTNl9IRF9FTl9XX05BTUUsIG10a19hZmVfaTJz X2hkX2Nvbm5lY3R9LA0KKwl7IkkyUzMiLCBOVUxMLCBJMlM3X0hEX0VOX1dfTkFNRSwgbXRrX2Fm ZV9pMnNfaGRfY29ubmVjdH0sDQorCXsiSTJTMyIsIE5VTEwsIEkyUzhfSERfRU5fV19OQU1FLCBt dGtfYWZlX2kyc19oZF9jb25uZWN0fSwNCisJeyJJMlMzIiwgTlVMTCwgSTJTOV9IRF9FTl9XX05B TUUsIG10a19hZmVfaTJzX2hkX2Nvbm5lY3R9LA0KKwl7STJTM19IRF9FTl9XX05BTUUsIE5VTEws IEFQTEwxX1dfTkFNRSwgbXRrX2FmZV9pMnNfYXBsbF9jb25uZWN0fSwNCisJe0kyUzNfSERfRU5f V19OQU1FLCBOVUxMLCBBUExMMl9XX05BTUUsIG10a19hZmVfaTJzX2FwbGxfY29ubmVjdH0sDQor DQorCXsiSTJTMyIsIE5VTEwsIEkyUzBfTUNMS19FTl9XX05BTUUsIG10a19hZmVfaTJzX21jbGtf Y29ubmVjdH0sDQorCXsiSTJTMyIsIE5VTEwsIEkyUzFfTUNMS19FTl9XX05BTUUsIG10a19hZmVf aTJzX21jbGtfY29ubmVjdH0sDQorCXsiSTJTMyIsIE5VTEwsIEkyUzJfTUNMS19FTl9XX05BTUUs IG10a19hZmVfaTJzX21jbGtfY29ubmVjdH0sDQorCXsiSTJTMyIsIE5VTEwsIEkyUzNfTUNMS19F Tl9XX05BTUUsIG10a19hZmVfaTJzX21jbGtfY29ubmVjdH0sDQorCXsiSTJTMyIsIE5VTEwsIEky UzVfTUNMS19FTl9XX05BTUUsIG10a19hZmVfaTJzX21jbGtfY29ubmVjdH0sDQorCXsiSTJTMyIs IE5VTEwsIEkyUzZfTUNMS19FTl9XX05BTUUsIG10a19hZmVfaTJzX21jbGtfY29ubmVjdH0sDQor CXsiSTJTMyIsIE5VTEwsIEkyUzdfTUNMS19FTl9XX05BTUUsIG10a19hZmVfaTJzX21jbGtfY29u bmVjdH0sDQorCXsiSTJTMyIsIE5VTEwsIEkyUzhfTUNMS19FTl9XX05BTUUsIG10a19hZmVfaTJz X21jbGtfY29ubmVjdH0sDQorCXsiSTJTMyIsIE5VTEwsIEkyUzlfTUNMS19FTl9XX05BTUUsIG10 a19hZmVfaTJzX21jbGtfY29ubmVjdH0sDQorCXtJMlMzX01DTEtfRU5fV19OQU1FLCBOVUxMLCBB UExMMV9XX05BTUUsIG10a19hZmVfbWNsa19hcGxsX2Nvbm5lY3R9LA0KKwl7STJTM19NQ0xLX0VO X1dfTkFNRSwgTlVMTCwgQVBMTDJfV19OQU1FLCBtdGtfYWZlX21jbGtfYXBsbF9jb25uZWN0fSwN CisNCisJLyogaTJzNSAqLw0KKwl7IkkyUzVfQ0gxIiwgIkRMMV9DSDEiLCAiREwxIn0sDQorCXsi STJTNV9DSDIiLCAiREwxX0NIMiIsICJETDEifSwNCisNCisJeyJJMlM1X0NIMSIsICJETDJfQ0gx IiwgIkRMMiJ9LA0KKwl7IkkyUzVfQ0gyIiwgIkRMMl9DSDIiLCAiREwyIn0sDQorDQorCXsiSTJT NV9DSDEiLCAiREwzX0NIMSIsICJETDMifSwNCisJeyJJMlM1X0NIMiIsICJETDNfQ0gyIiwgIkRM MyJ9LA0KKw0KKwl7IkkyUzVfQ0gxIiwgIkRMMTJfQ0gxIiwgIkRMMTIifSwNCisJeyJJMlM1X0NI MiIsICJETDEyX0NIMiIsICJETDEyIn0sDQorDQorCXsiSTJTNV9DSDEiLCAiREw0X0NIMSIsICJE TDQifSwNCisJeyJJMlM1X0NIMiIsICJETDRfQ0gyIiwgIkRMNCJ9LA0KKw0KKwl7IkkyUzVfQ0gx IiwgIkRMNV9DSDEiLCAiREw1In0sDQorCXsiSTJTNV9DSDIiLCAiREw1X0NIMiIsICJETDUifSwN CisNCisJeyJJMlM1X0NIMSIsICJETDZfQ0gxIiwgIkRMNiJ9LA0KKwl7IkkyUzVfQ0gyIiwgIkRM Nl9DSDIiLCAiREw2In0sDQorDQorCXsiSTJTNV9DSDEiLCAiREw4X0NIMSIsICJETDgifSwNCisJ eyJJMlM1X0NIMiIsICJETDhfQ0gyIiwgIkRMOCJ9LA0KKw0KKwl7IkkyUzUiLCBOVUxMLCAiSTJT NV9DSDEifSwNCisJeyJJMlM1IiwgTlVMTCwgIkkyUzVfQ0gyIn0sDQorDQorCXsiSTJTNSIsIE5V TEwsICJJMlMwX0VOIiwgbXRrX2FmZV9pMnNfc2hhcmVfY29ubmVjdH0sDQorCXsiSTJTNSIsIE5V TEwsICJJMlMxX0VOIiwgbXRrX2FmZV9pMnNfc2hhcmVfY29ubmVjdH0sDQorCXsiSTJTNSIsIE5V TEwsICJJMlMyX0VOIiwgbXRrX2FmZV9pMnNfc2hhcmVfY29ubmVjdH0sDQorCXsiSTJTNSIsIE5V TEwsICJJMlMzX0VOIiwgbXRrX2FmZV9pMnNfc2hhcmVfY29ubmVjdH0sDQorCXsiSTJTNSIsIE5V TEwsICJJMlM1X0VOIn0sDQorCXsiSTJTNSIsIE5VTEwsICJJMlM2X0VOIiwgbXRrX2FmZV9pMnNf c2hhcmVfY29ubmVjdH0sDQorCXsiSTJTNSIsIE5VTEwsICJJMlM3X0VOIiwgbXRrX2FmZV9pMnNf c2hhcmVfY29ubmVjdH0sDQorCXsiSTJTNSIsIE5VTEwsICJJMlM4X0VOIiwgbXRrX2FmZV9pMnNf c2hhcmVfY29ubmVjdH0sDQorCXsiSTJTNSIsIE5VTEwsICJJMlM5X0VOIiwgbXRrX2FmZV9pMnNf c2hhcmVfY29ubmVjdH0sDQorDQorCXsiSTJTNSIsIE5VTEwsIEkyUzBfSERfRU5fV19OQU1FLCBt dGtfYWZlX2kyc19oZF9jb25uZWN0fSwNCisJeyJJMlM1IiwgTlVMTCwgSTJTMV9IRF9FTl9XX05B TUUsIG10a19hZmVfaTJzX2hkX2Nvbm5lY3R9LA0KKwl7IkkyUzUiLCBOVUxMLCBJMlMyX0hEX0VO X1dfTkFNRSwgbXRrX2FmZV9pMnNfaGRfY29ubmVjdH0sDQorCXsiSTJTNSIsIE5VTEwsIEkyUzNf SERfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19oZF9jb25uZWN0fSwNCisJeyJJMlM1IiwgTlVMTCwg STJTNV9IRF9FTl9XX05BTUUsIG10a19hZmVfaTJzX2hkX2Nvbm5lY3R9LA0KKwl7IkkyUzUiLCBO VUxMLCBJMlM2X0hEX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfaGRfY29ubmVjdH0sDQorCXsiSTJT NSIsIE5VTEwsIEkyUzdfSERfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19oZF9jb25uZWN0fSwNCisJ eyJJMlM1IiwgTlVMTCwgSTJTOF9IRF9FTl9XX05BTUUsIG10a19hZmVfaTJzX2hkX2Nvbm5lY3R9 LA0KKwl7IkkyUzUiLCBOVUxMLCBJMlM5X0hEX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfaGRfY29u bmVjdH0sDQorCXtJMlM1X0hEX0VOX1dfTkFNRSwgTlVMTCwgQVBMTDFfV19OQU1FLCBtdGtfYWZl X2kyc19hcGxsX2Nvbm5lY3R9LA0KKwl7STJTNV9IRF9FTl9XX05BTUUsIE5VTEwsIEFQTEwyX1df TkFNRSwgbXRrX2FmZV9pMnNfYXBsbF9jb25uZWN0fSwNCisNCisJeyJJMlM1IiwgTlVMTCwgSTJT MF9NQ0xLX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfbWNsa19jb25uZWN0fSwNCisJeyJJMlM1Iiwg TlVMTCwgSTJTMV9NQ0xLX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfbWNsa19jb25uZWN0fSwNCisJ eyJJMlM1IiwgTlVMTCwgSTJTMl9NQ0xLX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfbWNsa19jb25u ZWN0fSwNCisJeyJJMlM1IiwgTlVMTCwgSTJTM19NQ0xLX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNf bWNsa19jb25uZWN0fSwNCisJeyJJMlM1IiwgTlVMTCwgSTJTNV9NQ0xLX0VOX1dfTkFNRSwgbXRr X2FmZV9pMnNfbWNsa19jb25uZWN0fSwNCisJeyJJMlM1IiwgTlVMTCwgSTJTNl9NQ0xLX0VOX1df TkFNRSwgbXRrX2FmZV9pMnNfbWNsa19jb25uZWN0fSwNCisJeyJJMlM1IiwgTlVMTCwgSTJTN19N Q0xLX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfbWNsa19jb25uZWN0fSwNCisJeyJJMlM1IiwgTlVM TCwgSTJTOF9NQ0xLX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfbWNsa19jb25uZWN0fSwNCisJeyJJ MlM1IiwgTlVMTCwgSTJTOV9NQ0xLX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfbWNsa19jb25uZWN0 fSwNCisJe0kyUzVfTUNMS19FTl9XX05BTUUsIE5VTEwsIEFQTEwxX1dfTkFNRSwgbXRrX2FmZV9t Y2xrX2FwbGxfY29ubmVjdH0sDQorCXtJMlM1X01DTEtfRU5fV19OQU1FLCBOVUxMLCBBUExMMl9X X05BTUUsIG10a19hZmVfbWNsa19hcGxsX2Nvbm5lY3R9LA0KKw0KKwkvKiBpMnM2ICovDQorCXsi STJTNiIsIE5VTEwsICJJMlMwX0VOIiwgbXRrX2FmZV9pMnNfc2hhcmVfY29ubmVjdH0sDQorCXsi STJTNiIsIE5VTEwsICJJMlMxX0VOIiwgbXRrX2FmZV9pMnNfc2hhcmVfY29ubmVjdH0sDQorCXsi STJTNiIsIE5VTEwsICJJMlMyX0VOIiwgbXRrX2FmZV9pMnNfc2hhcmVfY29ubmVjdH0sDQorCXsi STJTNiIsIE5VTEwsICJJMlMzX0VOIiwgbXRrX2FmZV9pMnNfc2hhcmVfY29ubmVjdH0sDQorCXsi STJTNiIsIE5VTEwsICJJMlM1X0VOIiwgbXRrX2FmZV9pMnNfc2hhcmVfY29ubmVjdH0sDQorCXsi STJTNiIsIE5VTEwsICJJMlM2X0VOIn0sDQorCXsiSTJTNiIsIE5VTEwsICJJMlM3X0VOIiwgbXRr X2FmZV9pMnNfc2hhcmVfY29ubmVjdH0sDQorCXsiSTJTNiIsIE5VTEwsICJJMlM4X0VOIiwgbXRr X2FmZV9pMnNfc2hhcmVfY29ubmVjdH0sDQorCXsiSTJTNiIsIE5VTEwsICJJMlM5X0VOIiwgbXRr X2FmZV9pMnNfc2hhcmVfY29ubmVjdH0sDQorDQorCXsiSTJTNiIsIE5VTEwsIEkyUzBfSERfRU5f V19OQU1FLCBtdGtfYWZlX2kyc19oZF9jb25uZWN0fSwNCisJeyJJMlM2IiwgTlVMTCwgSTJTMV9I RF9FTl9XX05BTUUsIG10a19hZmVfaTJzX2hkX2Nvbm5lY3R9LA0KKwl7IkkyUzYiLCBOVUxMLCBJ MlMyX0hEX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfaGRfY29ubmVjdH0sDQorCXsiSTJTNiIsIE5V TEwsIEkyUzNfSERfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19oZF9jb25uZWN0fSwNCisJeyJJMlM2 IiwgTlVMTCwgSTJTNV9IRF9FTl9XX05BTUUsIG10a19hZmVfaTJzX2hkX2Nvbm5lY3R9LA0KKwl7 IkkyUzYiLCBOVUxMLCBJMlM2X0hEX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfaGRfY29ubmVjdH0s DQorCXsiSTJTNiIsIE5VTEwsIEkyUzdfSERfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19oZF9jb25u ZWN0fSwNCisJeyJJMlM2IiwgTlVMTCwgSTJTOF9IRF9FTl9XX05BTUUsIG10a19hZmVfaTJzX2hk X2Nvbm5lY3R9LA0KKwl7IkkyUzYiLCBOVUxMLCBJMlM5X0hEX0VOX1dfTkFNRSwgbXRrX2FmZV9p MnNfaGRfY29ubmVjdH0sDQorCXtJMlM2X0hEX0VOX1dfTkFNRSwgTlVMTCwgQVBMTDFfV19OQU1F LCBtdGtfYWZlX2kyc19hcGxsX2Nvbm5lY3R9LA0KKwl7STJTNl9IRF9FTl9XX05BTUUsIE5VTEws IEFQTEwyX1dfTkFNRSwgbXRrX2FmZV9pMnNfYXBsbF9jb25uZWN0fSwNCisNCisJeyJJMlM2Iiwg TlVMTCwgSTJTMF9NQ0xLX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfbWNsa19jb25uZWN0fSwNCisJ eyJJMlM2IiwgTlVMTCwgSTJTMV9NQ0xLX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfbWNsa19jb25u ZWN0fSwNCisJeyJJMlM2IiwgTlVMTCwgSTJTMl9NQ0xLX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNf bWNsa19jb25uZWN0fSwNCisJeyJJMlM2IiwgTlVMTCwgSTJTM19NQ0xLX0VOX1dfTkFNRSwgbXRr X2FmZV9pMnNfbWNsa19jb25uZWN0fSwNCisJeyJJMlM2IiwgTlVMTCwgSTJTNV9NQ0xLX0VOX1df TkFNRSwgbXRrX2FmZV9pMnNfbWNsa19jb25uZWN0fSwNCisJeyJJMlM2IiwgTlVMTCwgSTJTNl9N Q0xLX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfbWNsa19jb25uZWN0fSwNCisJeyJJMlM2IiwgTlVM TCwgSTJTN19NQ0xLX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfbWNsa19jb25uZWN0fSwNCisJeyJJ MlM2IiwgTlVMTCwgSTJTOF9NQ0xLX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfbWNsa19jb25uZWN0 fSwNCisJeyJJMlM2IiwgTlVMTCwgSTJTOV9NQ0xLX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfbWNs a19jb25uZWN0fSwNCisJe0kyUzZfTUNMS19FTl9XX05BTUUsIE5VTEwsIEFQTEwxX1dfTkFNRSwg bXRrX2FmZV9tY2xrX2FwbGxfY29ubmVjdH0sDQorCXtJMlM2X01DTEtfRU5fV19OQU1FLCBOVUxM LCBBUExMMl9XX05BTUUsIG10a19hZmVfbWNsa19hcGxsX2Nvbm5lY3R9LA0KKw0KKwkvKiBpMnM3 ICovDQorCXsiSTJTNyIsIE5VTEwsICJJMlM3X0NIMSJ9LA0KKwl7IkkyUzciLCBOVUxMLCAiSTJT N19DSDIifSwNCisNCisJeyJJMlM3IiwgTlVMTCwgIkkyUzBfRU4iLCBtdGtfYWZlX2kyc19zaGFy ZV9jb25uZWN0fSwNCisJeyJJMlM3IiwgTlVMTCwgIkkyUzFfRU4iLCBtdGtfYWZlX2kyc19zaGFy ZV9jb25uZWN0fSwNCisJeyJJMlM3IiwgTlVMTCwgIkkyUzJfRU4iLCBtdGtfYWZlX2kyc19zaGFy ZV9jb25uZWN0fSwNCisJeyJJMlM3IiwgTlVMTCwgIkkyUzNfRU4iLCBtdGtfYWZlX2kyc19zaGFy ZV9jb25uZWN0fSwNCisJeyJJMlM3IiwgTlVMTCwgIkkyUzVfRU4iLCBtdGtfYWZlX2kyc19zaGFy ZV9jb25uZWN0fSwNCisJeyJJMlM3IiwgTlVMTCwgIkkyUzZfRU4iLCBtdGtfYWZlX2kyc19zaGFy ZV9jb25uZWN0fSwNCisJeyJJMlM3IiwgTlVMTCwgIkkyUzdfRU4ifSwNCisJeyJJMlM3IiwgTlVM TCwgIkkyUzhfRU4iLCBtdGtfYWZlX2kyc19zaGFyZV9jb25uZWN0fSwNCisJeyJJMlM3IiwgTlVM TCwgIkkyUzlfRU4iLCBtdGtfYWZlX2kyc19zaGFyZV9jb25uZWN0fSwNCisNCisJeyJJMlM3Iiwg TlVMTCwgSTJTMF9IRF9FTl9XX05BTUUsIG10a19hZmVfaTJzX2hkX2Nvbm5lY3R9LA0KKwl7Ikky UzciLCBOVUxMLCBJMlMxX0hEX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfaGRfY29ubmVjdH0sDQor CXsiSTJTNyIsIE5VTEwsIEkyUzJfSERfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19oZF9jb25uZWN0 fSwNCisJeyJJMlM3IiwgTlVMTCwgSTJTM19IRF9FTl9XX05BTUUsIG10a19hZmVfaTJzX2hkX2Nv bm5lY3R9LA0KKwl7IkkyUzciLCBOVUxMLCBJMlM1X0hEX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNf aGRfY29ubmVjdH0sDQorCXsiSTJTNyIsIE5VTEwsIEkyUzZfSERfRU5fV19OQU1FLCBtdGtfYWZl X2kyc19oZF9jb25uZWN0fSwNCisJeyJJMlM3IiwgTlVMTCwgSTJTN19IRF9FTl9XX05BTUUsIG10 a19hZmVfaTJzX2hkX2Nvbm5lY3R9LA0KKwl7IkkyUzciLCBOVUxMLCBJMlM4X0hEX0VOX1dfTkFN RSwgbXRrX2FmZV9pMnNfaGRfY29ubmVjdH0sDQorCXsiSTJTNyIsIE5VTEwsIEkyUzlfSERfRU5f V19OQU1FLCBtdGtfYWZlX2kyc19oZF9jb25uZWN0fSwNCisJe0kyUzdfSERfRU5fV19OQU1FLCBO VUxMLCBBUExMMV9XX05BTUUsIG10a19hZmVfaTJzX2FwbGxfY29ubmVjdH0sDQorCXtJMlM3X0hE X0VOX1dfTkFNRSwgTlVMTCwgQVBMTDJfV19OQU1FLCBtdGtfYWZlX2kyc19hcGxsX2Nvbm5lY3R9 LA0KKw0KKwl7IkkyUzciLCBOVUxMLCBJMlMwX01DTEtfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19t Y2xrX2Nvbm5lY3R9LA0KKwl7IkkyUzciLCBOVUxMLCBJMlMxX01DTEtfRU5fV19OQU1FLCBtdGtf YWZlX2kyc19tY2xrX2Nvbm5lY3R9LA0KKwl7IkkyUzciLCBOVUxMLCBJMlMyX01DTEtfRU5fV19O QU1FLCBtdGtfYWZlX2kyc19tY2xrX2Nvbm5lY3R9LA0KKwl7IkkyUzciLCBOVUxMLCBJMlMzX01D TEtfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19tY2xrX2Nvbm5lY3R9LA0KKwl7IkkyUzciLCBOVUxM LCBJMlM1X01DTEtfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19tY2xrX2Nvbm5lY3R9LA0KKwl7Ikky UzciLCBOVUxMLCBJMlM2X01DTEtfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19tY2xrX2Nvbm5lY3R9 LA0KKwl7IkkyUzciLCBOVUxMLCBJMlM3X01DTEtfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19tY2xr X2Nvbm5lY3R9LA0KKwl7IkkyUzciLCBOVUxMLCBJMlM4X01DTEtfRU5fV19OQU1FLCBtdGtfYWZl X2kyc19tY2xrX2Nvbm5lY3R9LA0KKwl7IkkyUzciLCBOVUxMLCBJMlM5X01DTEtfRU5fV19OQU1F LCBtdGtfYWZlX2kyc19tY2xrX2Nvbm5lY3R9LA0KKwl7STJTN19NQ0xLX0VOX1dfTkFNRSwgTlVM TCwgQVBMTDFfV19OQU1FLCBtdGtfYWZlX21jbGtfYXBsbF9jb25uZWN0fSwNCisJe0kyUzdfTUNM S19FTl9XX05BTUUsIE5VTEwsIEFQTEwyX1dfTkFNRSwgbXRrX2FmZV9tY2xrX2FwbGxfY29ubmVj dH0sDQorDQorCS8qIGkyczggKi8NCisJeyJJMlM4IiwgTlVMTCwgIkkyUzBfRU4iLCBtdGtfYWZl X2kyc19zaGFyZV9jb25uZWN0fSwNCisJeyJJMlM4IiwgTlVMTCwgIkkyUzFfRU4iLCBtdGtfYWZl X2kyc19zaGFyZV9jb25uZWN0fSwNCisJeyJJMlM4IiwgTlVMTCwgIkkyUzJfRU4iLCBtdGtfYWZl X2kyc19zaGFyZV9jb25uZWN0fSwNCisJeyJJMlM4IiwgTlVMTCwgIkkyUzNfRU4iLCBtdGtfYWZl X2kyc19zaGFyZV9jb25uZWN0fSwNCisJeyJJMlM4IiwgTlVMTCwgIkkyUzVfRU4iLCBtdGtfYWZl X2kyc19zaGFyZV9jb25uZWN0fSwNCisJeyJJMlM4IiwgTlVMTCwgIkkyUzZfRU4iLCBtdGtfYWZl X2kyc19zaGFyZV9jb25uZWN0fSwNCisJeyJJMlM4IiwgTlVMTCwgIkkyUzdfRU4iLCBtdGtfYWZl X2kyc19zaGFyZV9jb25uZWN0fSwNCisJeyJJMlM4IiwgTlVMTCwgIkkyUzhfRU4ifSwNCisJeyJJ MlM4IiwgTlVMTCwgIkkyUzlfRU4iLCBtdGtfYWZlX2kyc19zaGFyZV9jb25uZWN0fSwNCisNCisJ eyJJMlM4IiwgTlVMTCwgSTJTMF9IRF9FTl9XX05BTUUsIG10a19hZmVfaTJzX2hkX2Nvbm5lY3R9 LA0KKwl7IkkyUzgiLCBOVUxMLCBJMlMxX0hEX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfaGRfY29u bmVjdH0sDQorCXsiSTJTOCIsIE5VTEwsIEkyUzJfSERfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19o ZF9jb25uZWN0fSwNCisJeyJJMlM4IiwgTlVMTCwgSTJTM19IRF9FTl9XX05BTUUsIG10a19hZmVf aTJzX2hkX2Nvbm5lY3R9LA0KKwl7IkkyUzgiLCBOVUxMLCBJMlM1X0hEX0VOX1dfTkFNRSwgbXRr X2FmZV9pMnNfaGRfY29ubmVjdH0sDQorCXsiSTJTOCIsIE5VTEwsIEkyUzZfSERfRU5fV19OQU1F LCBtdGtfYWZlX2kyc19oZF9jb25uZWN0fSwNCisJeyJJMlM4IiwgTlVMTCwgSTJTN19IRF9FTl9X X05BTUUsIG10a19hZmVfaTJzX2hkX2Nvbm5lY3R9LA0KKwl7IkkyUzgiLCBOVUxMLCBJMlM4X0hE X0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfaGRfY29ubmVjdH0sDQorCXsiSTJTOCIsIE5VTEwsIEky UzlfSERfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19oZF9jb25uZWN0fSwNCisJe0kyUzhfSERfRU5f V19OQU1FLCBOVUxMLCBBUExMMV9XX05BTUUsIG10a19hZmVfaTJzX2FwbGxfY29ubmVjdH0sDQor CXtJMlM4X0hEX0VOX1dfTkFNRSwgTlVMTCwgQVBMTDJfV19OQU1FLCBtdGtfYWZlX2kyc19hcGxs X2Nvbm5lY3R9LA0KKw0KKwl7IkkyUzgiLCBOVUxMLCBJMlMwX01DTEtfRU5fV19OQU1FLCBtdGtf YWZlX2kyc19tY2xrX2Nvbm5lY3R9LA0KKwl7IkkyUzgiLCBOVUxMLCBJMlMxX01DTEtfRU5fV19O QU1FLCBtdGtfYWZlX2kyc19tY2xrX2Nvbm5lY3R9LA0KKwl7IkkyUzgiLCBOVUxMLCBJMlMyX01D TEtfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19tY2xrX2Nvbm5lY3R9LA0KKwl7IkkyUzgiLCBOVUxM LCBJMlMzX01DTEtfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19tY2xrX2Nvbm5lY3R9LA0KKwl7Ikky UzgiLCBOVUxMLCBJMlM1X01DTEtfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19tY2xrX2Nvbm5lY3R9 LA0KKwl7IkkyUzgiLCBOVUxMLCBJMlM2X01DTEtfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19tY2xr X2Nvbm5lY3R9LA0KKwl7IkkyUzgiLCBOVUxMLCBJMlM3X01DTEtfRU5fV19OQU1FLCBtdGtfYWZl X2kyc19tY2xrX2Nvbm5lY3R9LA0KKwl7IkkyUzgiLCBOVUxMLCBJMlM4X01DTEtfRU5fV19OQU1F LCBtdGtfYWZlX2kyc19tY2xrX2Nvbm5lY3R9LA0KKwl7IkkyUzgiLCBOVUxMLCBJMlM5X01DTEtf RU5fV19OQU1FLCBtdGtfYWZlX2kyc19tY2xrX2Nvbm5lY3R9LA0KKwl7STJTOF9NQ0xLX0VOX1df TkFNRSwgTlVMTCwgQVBMTDFfV19OQU1FLCBtdGtfYWZlX21jbGtfYXBsbF9jb25uZWN0fSwNCisJ e0kyUzhfTUNMS19FTl9XX05BTUUsIE5VTEwsIEFQTEwyX1dfTkFNRSwgbXRrX2FmZV9tY2xrX2Fw bGxfY29ubmVjdH0sDQorDQorCS8qIGkyczkgKi8NCisJeyJJMlM5X0NIMSIsICJETDFfQ0gxIiwg IkRMMSJ9LA0KKwl7IkkyUzlfQ0gyIiwgIkRMMV9DSDIiLCAiREwxIn0sDQorDQorCXsiSTJTOV9D SDEiLCAiREwyX0NIMSIsICJETDIifSwNCisJeyJJMlM5X0NIMiIsICJETDJfQ0gyIiwgIkRMMiJ9 LA0KKw0KKwl7IkkyUzlfQ0gxIiwgIkRMM19DSDEiLCAiREwzIn0sDQorCXsiSTJTOV9DSDIiLCAi REwzX0NIMiIsICJETDMifSwNCisNCisJeyJJMlM5X0NIMSIsICJETDEyX0NIMSIsICJETDEyIn0s DQorCXsiSTJTOV9DSDIiLCAiREwxMl9DSDIiLCAiREwxMiJ9LA0KKw0KKwl7IkkyUzlfQ0gxIiwg IkRMNF9DSDEiLCAiREw0In0sDQorCXsiSTJTOV9DSDIiLCAiREw0X0NIMiIsICJETDQifSwNCisN CisJeyJJMlM5X0NIMSIsICJETDVfQ0gxIiwgIkRMNSJ9LA0KKwl7IkkyUzlfQ0gyIiwgIkRMNV9D SDIiLCAiREw1In0sDQorDQorCXsiSTJTOV9DSDEiLCAiREw2X0NIMSIsICJETDYifSwNCisJeyJJ MlM5X0NIMiIsICJETDZfQ0gyIiwgIkRMNiJ9LA0KKw0KKwl7IkkyUzlfQ0gxIiwgIkRMOF9DSDEi LCAiREw4In0sDQorCXsiSTJTOV9DSDIiLCAiREw4X0NIMiIsICJETDgifSwNCisNCisJeyJJMlM5 X0NIMSIsICJETDlfQ0gxIiwgIkRMOSJ9LA0KKwl7IkkyUzlfQ0gyIiwgIkRMOV9DSDIiLCAiREw5 In0sDQorDQorCXsiSTJTOSIsIE5VTEwsICJJMlM5X0NIMSJ9LA0KKwl7IkkyUzkiLCBOVUxMLCAi STJTOV9DSDIifSwNCisNCisJeyJJMlM5IiwgTlVMTCwgIkkyUzBfRU4iLCBtdGtfYWZlX2kyc19z aGFyZV9jb25uZWN0fSwNCisJeyJJMlM5IiwgTlVMTCwgIkkyUzFfRU4iLCBtdGtfYWZlX2kyc19z aGFyZV9jb25uZWN0fSwNCisJeyJJMlM5IiwgTlVMTCwgIkkyUzJfRU4iLCBtdGtfYWZlX2kyc19z aGFyZV9jb25uZWN0fSwNCisJeyJJMlM5IiwgTlVMTCwgIkkyUzNfRU4iLCBtdGtfYWZlX2kyc19z aGFyZV9jb25uZWN0fSwNCisJeyJJMlM5IiwgTlVMTCwgIkkyUzVfRU4iLCBtdGtfYWZlX2kyc19z aGFyZV9jb25uZWN0fSwNCisJeyJJMlM5IiwgTlVMTCwgIkkyUzZfRU4iLCBtdGtfYWZlX2kyc19z aGFyZV9jb25uZWN0fSwNCisJeyJJMlM5IiwgTlVMTCwgIkkyUzdfRU4iLCBtdGtfYWZlX2kyc19z aGFyZV9jb25uZWN0fSwNCisJeyJJMlM5IiwgTlVMTCwgIkkyUzhfRU4iLCBtdGtfYWZlX2kyc19z aGFyZV9jb25uZWN0fSwNCisJeyJJMlM5IiwgTlVMTCwgIkkyUzlfRU4ifSwNCisNCisJeyJJMlM5 IiwgTlVMTCwgSTJTMF9IRF9FTl9XX05BTUUsIG10a19hZmVfaTJzX2hkX2Nvbm5lY3R9LA0KKwl7 IkkyUzkiLCBOVUxMLCBJMlMxX0hEX0VOX1dfTkFNRSwgbXRrX2FmZV9pMnNfaGRfY29ubmVjdH0s DQorCXsiSTJTOSIsIE5VTEwsIEkyUzJfSERfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19oZF9jb25u ZWN0fSwNCisJeyJJMlM5IiwgTlVMTCwgSTJTM19IRF9FTl9XX05BTUUsIG10a19hZmVfaTJzX2hk X2Nvbm5lY3R9LA0KKwl7IkkyUzkiLCBOVUxMLCBJMlM1X0hEX0VOX1dfTkFNRSwgbXRrX2FmZV9p MnNfaGRfY29ubmVjdH0sDQorCXsiSTJTOSIsIE5VTEwsIEkyUzZfSERfRU5fV19OQU1FLCBtdGtf YWZlX2kyc19oZF9jb25uZWN0fSwNCisJeyJJMlM5IiwgTlVMTCwgSTJTN19IRF9FTl9XX05BTUUs IG10a19hZmVfaTJzX2hkX2Nvbm5lY3R9LA0KKwl7IkkyUzkiLCBOVUxMLCBJMlM4X0hEX0VOX1df TkFNRSwgbXRrX2FmZV9pMnNfaGRfY29ubmVjdH0sDQorCXsiSTJTOSIsIE5VTEwsIEkyUzlfSERf RU5fV19OQU1FLCBtdGtfYWZlX2kyc19oZF9jb25uZWN0fSwNCisJe0kyUzlfSERfRU5fV19OQU1F LCBOVUxMLCBBUExMMV9XX05BTUUsIG10a19hZmVfaTJzX2FwbGxfY29ubmVjdH0sDQorCXtJMlM5 X0hEX0VOX1dfTkFNRSwgTlVMTCwgQVBMTDJfV19OQU1FLCBtdGtfYWZlX2kyc19hcGxsX2Nvbm5l Y3R9LA0KKw0KKwl7IkkyUzkiLCBOVUxMLCBJMlMwX01DTEtfRU5fV19OQU1FLCBtdGtfYWZlX2ky c19tY2xrX2Nvbm5lY3R9LA0KKwl7IkkyUzkiLCBOVUxMLCBJMlMxX01DTEtfRU5fV19OQU1FLCBt dGtfYWZlX2kyc19tY2xrX2Nvbm5lY3R9LA0KKwl7IkkyUzkiLCBOVUxMLCBJMlMyX01DTEtfRU5f V19OQU1FLCBtdGtfYWZlX2kyc19tY2xrX2Nvbm5lY3R9LA0KKwl7IkkyUzkiLCBOVUxMLCBJMlMz X01DTEtfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19tY2xrX2Nvbm5lY3R9LA0KKwl7IkkyUzkiLCBO VUxMLCBJMlM1X01DTEtfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19tY2xrX2Nvbm5lY3R9LA0KKwl7 IkkyUzkiLCBOVUxMLCBJMlM2X01DTEtfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19tY2xrX2Nvbm5l Y3R9LA0KKwl7IkkyUzkiLCBOVUxMLCBJMlM3X01DTEtfRU5fV19OQU1FLCBtdGtfYWZlX2kyc19t Y2xrX2Nvbm5lY3R9LA0KKwl7IkkyUzkiLCBOVUxMLCBJMlM4X01DTEtfRU5fV19OQU1FLCBtdGtf YWZlX2kyc19tY2xrX2Nvbm5lY3R9LA0KKwl7IkkyUzkiLCBOVUxMLCBJMlM5X01DTEtfRU5fV19O QU1FLCBtdGtfYWZlX2kyc19tY2xrX2Nvbm5lY3R9LA0KKwl7STJTOV9NQ0xLX0VOX1dfTkFNRSwg TlVMTCwgQVBMTDFfV19OQU1FLCBtdGtfYWZlX21jbGtfYXBsbF9jb25uZWN0fSwNCisJe0kyUzlf TUNMS19FTl9XX05BTUUsIE5VTEwsIEFQTEwyX1dfTkFNRSwgbXRrX2FmZV9tY2xrX2FwbGxfY29u bmVjdH0sDQorDQorCS8qIGFsbG93IGkycyBvbiB3aXRob3V0IGNvZGVjIG9uICovDQorCXsiSTJT MCIsIE5VTEwsICJJMlMwX0luX011eCJ9LA0KKwl7IkkyUzBfSW5fTXV4IiwgIkR1bW15X1dpZGdl dCIsICJJMlNfRFVNTVlfSU4ifSwNCisNCisJeyJJMlM4IiwgTlVMTCwgIkkyUzhfSW5fTXV4In0s DQorCXsiSTJTOF9Jbl9NdXgiLCAiRHVtbXlfV2lkZ2V0IiwgIkkyU19EVU1NWV9JTiJ9LA0KKw0K Kwl7IkkyUzFfT3V0X011eCIsICJEdW1teV9XaWRnZXQiLCAiSTJTMSJ9LA0KKwl7IkkyU19EVU1N WV9PVVQiLCBOVUxMLCAiSTJTMV9PdXRfTXV4In0sDQorDQorCXsiSTJTM19PdXRfTXV4IiwgIkR1 bW15X1dpZGdldCIsICJJMlMzIn0sDQorCXsiSTJTX0RVTU1ZX09VVCIsIE5VTEwsICJJMlMzX091 dF9NdXgifSwNCisNCisJeyJJMlM1X091dF9NdXgiLCAiRHVtbXlfV2lkZ2V0IiwgIkkyUzUifSwN CisJeyJJMlNfRFVNTVlfT1VUIiwgTlVMTCwgIkkyUzVfT3V0X011eCJ9LA0KKw0KKwl7IkkyUzdf T3V0X011eCIsICJEdW1teV9XaWRnZXQiLCAiSTJTNyJ9LA0KKwl7IkkyU19EVU1NWV9PVVQiLCBO VUxMLCAiSTJTN19PdXRfTXV4In0sDQorDQorCXsiSTJTOV9PdXRfTXV4IiwgIkR1bW15X1dpZGdl dCIsICJJMlM5In0sDQorCXsiSTJTX0RVTU1ZX09VVCIsIE5VTEwsICJJMlM5X091dF9NdXgifSwN CisNCisJLyogaTJzIGluIGxwYmsgKi8NCisJeyJJMlMwX0xwYmtfTXV4IiwgIkxwYmsiLCAiSTJT MyJ9LA0KKwl7IkkyUzJfTHBia19NdXgiLCAiTHBiayIsICJJMlMxIn0sDQorCXsiSTJTMCIsIE5V TEwsICJJMlMwX0xwYmtfTXV4In0sDQorCXsiSTJTMiIsIE5VTEwsICJJMlMyX0xwYmtfTXV4In0s DQorfTsNCisNCisvKiBkYWkgb3BzICovDQorc3RhdGljIGludCBtdGtfZGFpX2Nvbm5zeXNfaTJz X2h3X3BhcmFtcyhzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwNCisJCQkJCSBz dHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcywNCisJCQkJCSBzdHJ1Y3Qgc25kX3NvY19k YWkgKmRhaSkNCit7DQorCXN0cnVjdCBtdGtfYmFzZV9hZmUgKmFmZSA9IHNuZF9zb2NfZGFpX2dl dF9kcnZkYXRhKGRhaSk7DQorCXVuc2lnbmVkIGludCByYXRlID0gcGFyYW1zX3JhdGUocGFyYW1z KTsNCisJdW5zaWduZWQgaW50IHJhdGVfcmVnID0gbXQ4MTkyX3JhdGVfdHJhbnNmb3JtKGFmZS0+ ZGV2LA0KKwkJCQkJCSAgICAgIHJhdGUsIGRhaS0+aWQpOw0KKwl1bnNpZ25lZCBpbnQgaTJzX2Nv biA9IDA7DQorDQorCWRldl9pbmZvKGFmZS0+ZGV2LCAiJXMoKSwgaWQgJWQsIHN0cmVhbSAlZCwg cmF0ZSAlZFxuIiwNCisJCSBfX2Z1bmNfXywNCisJCSBkYWktPmlkLA0KKwkJIHN1YnN0cmVhbS0+ c3RyZWFtLA0KKwkJIHJhdGUpOw0KKw0KKwkvKiBub24taW52ZXJzZSwgaTJzIG1vZGUsIHByb3h5 IG1vZGUsIDE2Yml0cywgZnJvbSBjb25uc3lzICovDQorCWkyc19jb24gfD0gMCA8PCBJTlZfUEFE X0NUUkxfU0ZUOw0KKwlpMnNfY29uIHw9IEkyU19GTVRfSTJTIDw8IEkyU19GTVRfU0ZUOw0KKwlp MnNfY29uIHw9IDEgPDwgSTJTX1NSQ19TRlQ7DQorCWkyc19jb24gfD0gZ2V0X2kyc193bGVuKFNO RFJWX1BDTV9GT1JNQVRfUzE2X0xFKSA8PCBJMlNfV0xFTl9TRlQ7DQorCWkyc19jb24gfD0gMCA8 PCBJMlNJTl9QQURfU0VMX1NGVDsNCisJcmVnbWFwX3dyaXRlKGFmZS0+cmVnbWFwLCBBRkVfQ09O TlNZU19JMlNfQ09OLCBpMnNfY29uKTsNCisNCisJLyogdXNlIGFzcmMgKi8NCisJcmVnbWFwX3Vw ZGF0ZV9iaXRzKGFmZS0+cmVnbWFwLA0KKwkJCSAgIEFGRV9DT05OU1lTX0kyU19DT04sDQorCQkJ ICAgSTJTX0JZUFNSQ19NQVNLX1NGVCwNCisJCQkgICAweDAgPDwgSTJTX0JZUFNSQ19TRlQpOw0K Kw0KKwkvKiBwcm94eSBtb2RlLCBzZXQgaTJzIGZvciBhc3JjICovDQorCXJlZ21hcF91cGRhdGVf Yml0cyhhZmUtPnJlZ21hcCwNCisJCQkgICBBRkVfQ09OTlNZU19JMlNfQ09OLA0KKwkJCSAgIEky U19NT0RFX01BU0tfU0ZULA0KKwkJCSAgIHJhdGVfcmVnIDw8IEkyU19NT0RFX1NGVCk7DQorDQor CWlmIChyYXRlID09IDQ0MTAwKQ0KKwkJcmVnbWFwX3dyaXRlKGFmZS0+cmVnbWFwLCBBRkVfQVNS Q18yQ0hfQ09OMywgMHgwMDFCOTAwMCk7DQorCWVsc2UgaWYgKHJhdGUgPT0gMzIwMDApDQorCQly ZWdtYXBfd3JpdGUoYWZlLT5yZWdtYXAsIEFGRV9BU1JDXzJDSF9DT04zLCAweDE0MDAwMCk7DQor CWVsc2UNCisJCXJlZ21hcF93cml0ZShhZmUtPnJlZ21hcCwgQUZFX0FTUkNfMkNIX0NPTjMsIDB4 MDAxRTAwMDApOw0KKw0KKwkvKiBDYWxpYnJhdGlvbiBzZXR0aW5nICovDQorCXJlZ21hcF93cml0 ZShhZmUtPnJlZ21hcCwgQUZFX0FTUkNfMkNIX0NPTjQsIDB4MDAxNDAwMDApOw0KKwlyZWdtYXBf d3JpdGUoYWZlLT5yZWdtYXAsIEFGRV9BU1JDXzJDSF9DT045LCAweDAwMDM2MDAwKTsNCisJcmVn bWFwX3dyaXRlKGFmZS0+cmVnbWFwLCBBRkVfQVNSQ18yQ0hfQ09OMTAsIDB4MDAwMkZDMDApOw0K KwlyZWdtYXBfd3JpdGUoYWZlLT5yZWdtYXAsIEFGRV9BU1JDXzJDSF9DT042LCAweDAwMDA3RUY0 KTsNCisJcmVnbWFwX3dyaXRlKGFmZS0+cmVnbWFwLCBBRkVfQVNSQ18yQ0hfQ09ONSwgMHgwMEZG NTk4Nik7DQorDQorCS8qIDA6U3RlcmVvIDE6TW9ubyAqLw0KKwlyZWdtYXBfdXBkYXRlX2JpdHMo YWZlLT5yZWdtYXAsDQorCQkJICAgQUZFX0FTUkNfMkNIX0NPTjIsDQorCQkJICAgQ0hTRVRfSVNf TU9OT19NQVNLX1NGVCwNCisJCQkgICAweDAgPDwgQ0hTRVRfSVNfTU9OT19TRlQpOw0KKw0KKwly ZXR1cm4gMDsNCit9DQorDQorc3RhdGljIGludCBtdGtfZGFpX2Nvbm5zeXNfaTJzX3RyaWdnZXIo c3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sDQorCQkJCSAgICAgICBpbnQgY21k LCBzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkNCit7DQorCXN0cnVjdCBtdGtfYmFzZV9hZmUgKmFm ZSA9IHNuZF9zb2NfZGFpX2dldF9kcnZkYXRhKGRhaSk7DQorCXN0cnVjdCBtdDgxOTJfYWZlX3By aXZhdGUgKmFmZV9wcml2ID0gYWZlLT5wbGF0Zm9ybV9wcml2Ow0KKw0KKwlkZXZfaW5mbyhhZmUt PmRldiwgIiVzKCksIGNtZCAlZCwgc3RyZWFtICVkXG4iLA0KKwkJIF9fZnVuY19fLA0KKwkJIGNt ZCwNCisJCSBzdWJzdHJlYW0tPnN0cmVhbSk7DQorDQorCXN3aXRjaCAoY21kKSB7DQorCWNhc2Ug U05EUlZfUENNX1RSSUdHRVJfU1RBUlQ6DQorCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfUkVTVU1F Og0KKwkJLyogaTJzIGVuYWJsZSAqLw0KKwkJcmVnbWFwX3VwZGF0ZV9iaXRzKGFmZS0+cmVnbWFw LA0KKwkJCQkgICBBRkVfQ09OTlNZU19JMlNfQ09OLA0KKwkJCQkgICBJMlNfRU5fTUFTS19TRlQs DQorCQkJCSAgIDB4MSA8PCBJMlNfRU5fU0ZUKTsNCisNCisJCS8qIGNhbGlicmF0b3IgZW5hYmxl ICovDQorCQlyZWdtYXBfdXBkYXRlX2JpdHMoYWZlLT5yZWdtYXAsDQorCQkJCSAgIEFGRV9BU1JD XzJDSF9DT041LA0KKwkJCQkgICBDQUxJX0VOX01BU0tfU0ZULA0KKwkJCQkgICAweDEgPDwgQ0FM SV9FTl9TRlQpOw0KKw0KKwkJLyogYXNyYyBlbmFibGUgKi8NCisJCXJlZ21hcF91cGRhdGVfYml0 cyhhZmUtPnJlZ21hcCwNCisJCQkJICAgQUZFX0FTUkNfMkNIX0NPTjAsDQorCQkJCSAgIENPTjBf Q0hTRVRfU1RSX0NMUl9NQVNLX1NGVCwNCisJCQkJICAgMHgxIDw8IENPTjBfQ0hTRVRfU1RSX0NM Ul9TRlQpOw0KKwkJcmVnbWFwX3VwZGF0ZV9iaXRzKGFmZS0+cmVnbWFwLA0KKwkJCQkgICBBRkVf QVNSQ18yQ0hfQ09OMCwNCisJCQkJICAgQ09OMF9BU01fT05fTUFTS19TRlQsDQorCQkJCSAgIDB4 MSA8PCBDT04wX0FTTV9PTl9TRlQpOw0KKw0KKwkJYWZlX3ByaXYtPmRhaV9vbltkYWktPmlkXSA9 IHRydWU7DQorCQlicmVhazsNCisJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVE9QOg0KKwljYXNl IFNORFJWX1BDTV9UUklHR0VSX1NVU1BFTkQ6DQorCQlyZWdtYXBfdXBkYXRlX2JpdHMoYWZlLT5y ZWdtYXAsDQorCQkJCSAgIEFGRV9BU1JDXzJDSF9DT04wLA0KKwkJCQkgICBDT04wX0FTTV9PTl9N QVNLX1NGVCwNCisJCQkJICAgMCA8PCBDT04wX0FTTV9PTl9TRlQpOw0KKwkJcmVnbWFwX3VwZGF0 ZV9iaXRzKGFmZS0+cmVnbWFwLA0KKwkJCQkgICBBRkVfQVNSQ18yQ0hfQ09ONSwNCisJCQkJICAg Q0FMSV9FTl9NQVNLX1NGVCwNCisJCQkJICAgMCA8PCBDQUxJX0VOX1NGVCk7DQorDQorCQkvKiBp MnMgZGlzYWJsZSAqLw0KKwkJcmVnbWFwX3VwZGF0ZV9iaXRzKGFmZS0+cmVnbWFwLA0KKwkJCQkg ICBBRkVfQ09OTlNZU19JMlNfQ09OLA0KKwkJCQkgICBJMlNfRU5fTUFTS19TRlQsDQorCQkJCSAg IDB4MCA8PCBJMlNfRU5fU0ZUKTsNCisNCisJCS8qIGJ5cGFzcyBhc3JjICovDQorCQlyZWdtYXBf dXBkYXRlX2JpdHMoYWZlLT5yZWdtYXAsDQorCQkJCSAgIEFGRV9DT05OU1lTX0kyU19DT04sDQor CQkJCSAgIEkyU19CWVBTUkNfTUFTS19TRlQsDQorCQkJCSAgIDB4MSA8PCBJMlNfQllQU1JDX1NG VCk7DQorDQorCQlhZmVfcHJpdi0+ZGFpX29uW2RhaS0+aWRdID0gZmFsc2U7DQorCQlicmVhazsN CisJZGVmYXVsdDoNCisJCXJldHVybiAtRUlOVkFMOw0KKwl9DQorCXJldHVybiAwOw0KK30NCisN CitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFpX29wcyBtdGtfZGFpX2Nvbm5zeXNfaTJz X29wcyA9IHsNCisJLmh3X3BhcmFtcyA9IG10a19kYWlfY29ubnN5c19pMnNfaHdfcGFyYW1zLA0K KwkudHJpZ2dlciA9IG10a19kYWlfY29ubnN5c19pMnNfdHJpZ2dlciwNCit9Ow0KKw0KKy8qIGky cyAqLw0KK3N0YXRpYyBpbnQgbXRrX2RhaV9pMnNfY29uZmlnKHN0cnVjdCBtdGtfYmFzZV9hZmUg KmFmZSwNCisJCQkgICAgICBzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcywNCisJCQkg ICAgICBpbnQgaTJzX2lkKQ0KK3sNCisJc3RydWN0IG10ODE5Ml9hZmVfcHJpdmF0ZSAqYWZlX3By aXYgPSBhZmUtPnBsYXRmb3JtX3ByaXY7DQorCXN0cnVjdCBtdGtfYWZlX2kyc19wcml2ICppMnNf cHJpdiA9IGFmZV9wcml2LT5kYWlfcHJpdltpMnNfaWRdOw0KKw0KKwl1bnNpZ25lZCBpbnQgcmF0 ZSA9IHBhcmFtc19yYXRlKHBhcmFtcyk7DQorCXVuc2lnbmVkIGludCByYXRlX3JlZyA9IG10ODE5 Ml9yYXRlX3RyYW5zZm9ybShhZmUtPmRldiwNCisJCQkJCQkgICAgICByYXRlLCBpMnNfaWQpOw0K KwlzbmRfcGNtX2Zvcm1hdF90IGZvcm1hdCA9IHBhcmFtc19mb3JtYXQocGFyYW1zKTsNCisJdW5z aWduZWQgaW50IGkyc19jb24gPSAwOw0KKwlpbnQgcmV0ID0gMDsNCisNCisJZGV2X2luZm8oYWZl LT5kZXYsICIlcygpLCBpZCAlZCwgcmF0ZSAlZCwgZm9ybWF0ICVkXG4iLA0KKwkJIF9fZnVuY19f LA0KKwkJIGkyc19pZCwNCisJCSByYXRlLCBmb3JtYXQpOw0KKw0KKwlpZiAoaTJzX3ByaXYpDQor CQlpMnNfcHJpdi0+cmF0ZSA9IHJhdGU7DQorCWVsc2UNCisJCWRldl93YXJuKGFmZS0+ZGV2LCAi JXMoKSwgaTJzX3ByaXYgPT0gTlVMTCIsIF9fZnVuY19fKTsNCisNCisJc3dpdGNoIChpMnNfaWQp IHsNCisJY2FzZSBNVDgxOTJfREFJX0kyU18wOg0KKwkJaTJzX2NvbiA9IEkyU19JTl9QQURfSU9f TVVYIDw8IEkyU0lOX1BBRF9TRUxfU0ZUOw0KKwkJaTJzX2NvbiB8PSByYXRlX3JlZyA8PCBJMlNf T1VUX01PREVfU0ZUOw0KKwkJaTJzX2NvbiB8PSBJMlNfRk1UX0kyUyA8PCBJMlNfRk1UX1NGVDsN CisJCWkyc19jb24gfD0gZ2V0X2kyc193bGVuKGZvcm1hdCkgPDwgSTJTX1dMRU5fU0ZUOw0KKwkJ cmVnbWFwX3VwZGF0ZV9iaXRzKGFmZS0+cmVnbWFwLCBBRkVfSTJTX0NPTiwNCisJCQkJICAgMHhm ZmZmZWZmZSwgaTJzX2Nvbik7DQorCQlicmVhazsNCisJY2FzZSBNVDgxOTJfREFJX0kyU18xOg0K KwkJaTJzX2NvbiA9IEkyUzFfU0VMX08yOF9PMjkgPDwgSTJTMl9TRUxfTzAzX08wNF9TRlQ7DQor CQlpMnNfY29uIHw9IHJhdGVfcmVnIDw8IEkyUzJfT1VUX01PREVfU0ZUOw0KKwkJaTJzX2NvbiB8 PSBJMlNfRk1UX0kyUyA8PCBJMlMyX0ZNVF9TRlQ7DQorCQlpMnNfY29uIHw9IGdldF9pMnNfd2xl bihmb3JtYXQpIDw8IEkyUzJfV0xFTl9TRlQ7DQorCQlyZWdtYXBfdXBkYXRlX2JpdHMoYWZlLT5y ZWdtYXAsIEFGRV9JMlNfQ09OMSwNCisJCQkJICAgMHhmZmZmZWZmZSwgaTJzX2Nvbik7DQorCQli cmVhazsNCisJY2FzZSBNVDgxOTJfREFJX0kyU18yOg0KKwkJaTJzX2NvbiA9IDggPDwgSTJTM19V UERBVEVfV09SRF9TRlQ7DQorCQlpMnNfY29uIHw9IHJhdGVfcmVnIDw8IEkyUzNfT1VUX01PREVf U0ZUOw0KKwkJaTJzX2NvbiB8PSBJMlNfRk1UX0kyUyA8PCBJMlMzX0ZNVF9TRlQ7DQorCQlpMnNf Y29uIHw9IGdldF9pMnNfd2xlbihmb3JtYXQpIDw8IEkyUzNfV0xFTl9TRlQ7DQorCQlyZWdtYXBf dXBkYXRlX2JpdHMoYWZlLT5yZWdtYXAsIEFGRV9JMlNfQ09OMiwNCisJCQkJICAgMHhmZmZmZWZm ZSwgaTJzX2Nvbik7DQorCQlicmVhazsNCisJY2FzZSBNVDgxOTJfREFJX0kyU18zOg0KKwkJaTJz X2NvbiA9IHJhdGVfcmVnIDw8IEkyUzRfT1VUX01PREVfU0ZUOw0KKwkJaTJzX2NvbiB8PSBJMlNf Rk1UX0kyUyA8PCBJMlM0X0ZNVF9TRlQ7DQorCQlpMnNfY29uIHw9IGdldF9pMnNfd2xlbihmb3Jt YXQpIDw8IEkyUzRfV0xFTl9TRlQ7DQorCQlyZWdtYXBfdXBkYXRlX2JpdHMoYWZlLT5yZWdtYXAs IEFGRV9JMlNfQ09OMywNCisJCQkJICAgMHhmZmZmZWZmZSwgaTJzX2Nvbik7DQorCQlicmVhazsN CisJY2FzZSBNVDgxOTJfREFJX0kyU181Og0KKwkJaTJzX2NvbiA9IHJhdGVfcmVnIDw8IEkyUzVf T1VUX01PREVfU0ZUOw0KKwkJaTJzX2NvbiB8PSBJMlNfRk1UX0kyUyA8PCBJMlM1X0ZNVF9TRlQ7 DQorCQlpMnNfY29uIHw9IGdldF9pMnNfd2xlbihmb3JtYXQpIDw8IEkyUzVfV0xFTl9TRlQ7DQor CQlyZWdtYXBfdXBkYXRlX2JpdHMoYWZlLT5yZWdtYXAsIEFGRV9JMlNfQ09ONCwNCisJCQkJICAg MHhmZmZmZWZmZSwgaTJzX2Nvbik7DQorCQlicmVhazsNCisJY2FzZSBNVDgxOTJfREFJX0kyU182 Og0KKwkJaTJzX2NvbiA9IHJhdGVfcmVnIDw8IEkyUzZfT1VUX01PREVfU0ZUOw0KKwkJaTJzX2Nv biB8PSBJMlNfRk1UX0kyUyA8PCBJMlM2X0ZNVF9TRlQ7DQorCQlpMnNfY29uIHw9IGdldF9pMnNf d2xlbihmb3JtYXQpIDw8IEkyUzZfV0xFTl9TRlQ7DQorCQlyZWdtYXBfdXBkYXRlX2JpdHMoYWZl LT5yZWdtYXAsIEFGRV9JMlNfQ09ONiwNCisJCQkJICAgMHhmZmZmZWZmZSwgaTJzX2Nvbik7DQor CQlicmVhazsNCisJY2FzZSBNVDgxOTJfREFJX0kyU183Og0KKwkJaTJzX2NvbiA9IHJhdGVfcmVn IDw8IEkyUzdfT1VUX01PREVfU0ZUOw0KKwkJaTJzX2NvbiB8PSBJMlNfRk1UX0kyUyA8PCBJMlM3 X0ZNVF9TRlQ7DQorCQlpMnNfY29uIHw9IGdldF9pMnNfd2xlbihmb3JtYXQpIDw8IEkyUzdfV0xF Tl9TRlQ7DQorCQlyZWdtYXBfdXBkYXRlX2JpdHMoYWZlLT5yZWdtYXAsIEFGRV9JMlNfQ09ONywN CisJCQkJICAgMHhmZmZmZWZmZSwgaTJzX2Nvbik7DQorCQlicmVhazsNCisJY2FzZSBNVDgxOTJf REFJX0kyU184Og0KKwkJaTJzX2NvbiA9IHJhdGVfcmVnIDw8IEkyUzhfT1VUX01PREVfU0ZUOw0K KwkJaTJzX2NvbiB8PSBJMlNfRk1UX0kyUyA8PCBJMlM4X0ZNVF9TRlQ7DQorCQlpMnNfY29uIHw9 IGdldF9pMnNfd2xlbihmb3JtYXQpIDw8IEkyUzhfV0xFTl9TRlQ7DQorCQlyZWdtYXBfdXBkYXRl X2JpdHMoYWZlLT5yZWdtYXAsIEFGRV9JMlNfQ09OOCwNCisJCQkJICAgMHhmZmZmZWZmZSwgaTJz X2Nvbik7DQorCQlicmVhazsNCisJY2FzZSBNVDgxOTJfREFJX0kyU185Og0KKwkJaTJzX2NvbiA9 IHJhdGVfcmVnIDw8IEkyUzlfT1VUX01PREVfU0ZUOw0KKwkJaTJzX2NvbiB8PSBJMlNfRk1UX0ky UyA8PCBJMlM5X0ZNVF9TRlQ7DQorCQlpMnNfY29uIHw9IGdldF9pMnNfd2xlbihmb3JtYXQpIDw8 IEkyUzlfV0xFTl9TRlQ7DQorCQlyZWdtYXBfdXBkYXRlX2JpdHMoYWZlLT5yZWdtYXAsIEFGRV9J MlNfQ09OOSwNCisJCQkJICAgMHhmZmZmZWZmZSwgaTJzX2Nvbik7DQorCQlicmVhazsNCisJZGVm YXVsdDoNCisJCWRldl93YXJuKGFmZS0+ZGV2LCAiJXMoKSwgaWQgJWQgbm90IHN1cHBvcnRcbiIs DQorCQkJIF9fZnVuY19fLCBpMnNfaWQpOw0KKwkJcmV0dXJuIC1FSU5WQUw7DQorCX0NCisNCisJ Lyogc2V0IHNoYXJlIGkycyAqLw0KKwlpZiAoaTJzX3ByaXYgJiYgaTJzX3ByaXYtPnNoYXJlX2ky c19pZCA+PSAwKQ0KKwkJcmV0ID0gbXRrX2RhaV9pMnNfY29uZmlnKGFmZSwgcGFyYW1zLCBpMnNf cHJpdi0+c2hhcmVfaTJzX2lkKTsNCisNCisJcmV0dXJuIHJldDsNCit9DQorDQorc3RhdGljIGlu dCBtdGtfZGFpX2kyc19od19wYXJhbXMoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJl YW0sDQorCQkJCSBzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcywNCisJCQkJIHN0cnVj dCBzbmRfc29jX2RhaSAqZGFpKQ0KK3sNCisJc3RydWN0IG10a19iYXNlX2FmZSAqYWZlID0gc25k X3NvY19kYWlfZ2V0X2RydmRhdGEoZGFpKTsNCisNCisJcmV0dXJuIG10a19kYWlfaTJzX2NvbmZp ZyhhZmUsIHBhcmFtcywgZGFpLT5pZCk7DQorfQ0KKw0KK3N0YXRpYyBpbnQgbXRrX2RhaV9pMnNf c2V0X3N5c2NsayhzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwNCisJCQkJICBpbnQgY2xrX2lkLCB1 bnNpZ25lZCBpbnQgZnJlcSwgaW50IGRpcikNCit7DQorCXN0cnVjdCBtdGtfYmFzZV9hZmUgKmFm ZSA9IGRldl9nZXRfZHJ2ZGF0YShkYWktPmRldik7DQorCXN0cnVjdCBtdDgxOTJfYWZlX3ByaXZh dGUgKmFmZV9wcml2ID0gYWZlLT5wbGF0Zm9ybV9wcml2Ow0KKwlzdHJ1Y3QgbXRrX2FmZV9pMnNf cHJpdiAqaTJzX3ByaXYgPSBhZmVfcHJpdi0+ZGFpX3ByaXZbZGFpLT5pZF07DQorCWludCBhcGxs Ow0KKwlpbnQgYXBsbF9yYXRlOw0KKw0KKwlpZiAoIWkyc19wcml2KSB7DQorCQlkZXZfd2Fybihh ZmUtPmRldiwgIiVzKCksIGkyc19wcml2ID09IE5VTEwiLCBfX2Z1bmNfXyk7DQorCQlyZXR1cm4g LUVJTlZBTDsNCisJfQ0KKw0KKwlpZiAoZGlyICE9IFNORF9TT0NfQ0xPQ0tfT1VUKSB7DQorCQlk ZXZfd2FybihhZmUtPmRldiwgIiVzKCksIGRpciAhPSBTTkRfU09DX0NMT0NLX09VVCIsIF9fZnVu Y19fKTsNCisJCXJldHVybiAtRUlOVkFMOw0KKwl9DQorDQorCWRldl9pbmZvKGFmZS0+ZGV2LCAi JXMoKSwgZnJlcSAlZFxuIiwgX19mdW5jX18sIGZyZXEpOw0KKw0KKwlhcGxsID0gbXQ4MTkyX2dl dF9hcGxsX2J5X3JhdGUoYWZlLCBmcmVxKTsNCisJYXBsbF9yYXRlID0gbXQ4MTkyX2dldF9hcGxs X3JhdGUoYWZlLCBhcGxsKTsNCisNCisJaWYgKGZyZXEgPiBhcGxsX3JhdGUpIHsNCisJCWRldl93 YXJuKGFmZS0+ZGV2LCAiJXMoKSwgZnJlcSA+IGFwbGwgcmF0ZSIsIF9fZnVuY19fKTsNCisJCXJl dHVybiAtRUlOVkFMOw0KKwl9DQorDQorCWlmIChhcGxsX3JhdGUgJSBmcmVxICE9IDApIHsNCisJ CWRldl93YXJuKGFmZS0+ZGV2LCAiJXMoKSwgQVBMTCBjYW4ndCBnZW4gZnJlcSBIeiIsIF9fZnVu Y19fKTsNCisJCXJldHVybiAtRUlOVkFMOw0KKwl9DQorDQorCWkyc19wcml2LT5tY2xrX3JhdGUg PSBmcmVxOw0KKwlpMnNfcHJpdi0+bWNsa19hcGxsID0gYXBsbDsNCisNCisJaWYgKGkyc19wcml2 LT5zaGFyZV9pMnNfaWQgPiAwKSB7DQorCQlzdHJ1Y3QgbXRrX2FmZV9pMnNfcHJpdiAqc2hhcmVf aTJzX3ByaXY7DQorDQorCQlzaGFyZV9pMnNfcHJpdiA9IGFmZV9wcml2LT5kYWlfcHJpdltpMnNf cHJpdi0+c2hhcmVfaTJzX2lkXTsNCisJCWlmICghc2hhcmVfaTJzX3ByaXYpIHsNCisJCQlkZXZf d2FybihhZmUtPmRldiwgIiVzKCksIHNoYXJlX2kyc19wcml2ID0gTlVMTCIsDQorCQkJCSBfX2Z1 bmNfXyk7DQorCQkJcmV0dXJuIC1FSU5WQUw7DQorCQl9DQorDQorCQlzaGFyZV9pMnNfcHJpdi0+ bWNsa19yYXRlID0gaTJzX3ByaXYtPm1jbGtfcmF0ZTsNCisJCXNoYXJlX2kyc19wcml2LT5tY2xr X2FwbGwgPSBpMnNfcHJpdi0+bWNsa19hcGxsOw0KKwl9DQorDQorCXJldHVybiAwOw0KK30NCisN CitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFpX29wcyBtdGtfZGFpX2kyc19vcHMgPSB7 DQorCS5od19wYXJhbXMgPSBtdGtfZGFpX2kyc19od19wYXJhbXMsDQorCS5zZXRfc3lzY2xrID0g bXRrX2RhaV9pMnNfc2V0X3N5c2NsaywNCit9Ow0KKw0KKy8qIGRhaSBkcml2ZXIgKi8NCisjZGVm aW5lIE1US19DT05OU1lTX0kyU19SQVRFUyAoU05EUlZfUENNX1JBVEVfNDQxMDAgfCBTTkRSVl9Q Q01fUkFURV80ODAwMCkNCisNCisjZGVmaW5lIE1US19JMlNfUkFURVMgKFNORFJWX1BDTV9SQVRF XzgwMDBfNDgwMDAgfFwNCisJCSAgICAgICBTTkRSVl9QQ01fUkFURV84ODIwMCB8XA0KKwkJICAg ICAgIFNORFJWX1BDTV9SQVRFXzk2MDAwIHxcDQorCQkgICAgICAgU05EUlZfUENNX1JBVEVfMTc2 NDAwIHxcDQorCQkgICAgICAgU05EUlZfUENNX1JBVEVfMTkyMDAwKQ0KKw0KKyNkZWZpbmUgTVRL X0kyU19GT1JNQVRTIChTTkRSVl9QQ01fRk1UQklUX1MxNl9MRSB8XA0KKwkJCSBTTkRSVl9QQ01f Rk1UQklUX1MyNF9MRSB8XA0KKwkJCSBTTkRSVl9QQ01fRk1UQklUX1MzMl9MRSkNCisNCitzdGF0 aWMgc3RydWN0IHNuZF9zb2NfZGFpX2RyaXZlciBtdGtfZGFpX2kyc19kcml2ZXJbXSA9IHsNCisJ ew0KKwkJLm5hbWUgPSAiQ09OTlNZU19JMlMiLA0KKwkJLmlkID0gTVQ4MTkyX0RBSV9DT05OU1lT X0kyUywNCisJCS5jYXB0dXJlID0gew0KKwkJCS5zdHJlYW1fbmFtZSA9ICJDb25uc3lzIEkyUyIs DQorCQkJLmNoYW5uZWxzX21pbiA9IDEsDQorCQkJLmNoYW5uZWxzX21heCA9IDIsDQorCQkJLnJh dGVzID0gTVRLX0NPTk5TWVNfSTJTX1JBVEVTLA0KKwkJCS5mb3JtYXRzID0gTVRLX0kyU19GT1JN QVRTLA0KKwkJfSwNCisJCS5vcHMgPSAmbXRrX2RhaV9jb25uc3lzX2kyc19vcHMsDQorCX0sDQor CXsNCisJCS5uYW1lID0gIkkyUzAiLA0KKwkJLmlkID0gTVQ4MTkyX0RBSV9JMlNfMCwNCisJCS5j YXB0dXJlID0gew0KKwkJCS5zdHJlYW1fbmFtZSA9ICJJMlMwIiwNCisJCQkuY2hhbm5lbHNfbWlu ID0gMSwNCisJCQkuY2hhbm5lbHNfbWF4ID0gMiwNCisJCQkucmF0ZXMgPSBNVEtfSTJTX1JBVEVT LA0KKwkJCS5mb3JtYXRzID0gTVRLX0kyU19GT1JNQVRTLA0KKwkJfSwNCisJCS5vcHMgPSAmbXRr X2RhaV9pMnNfb3BzLA0KKwl9LA0KKwl7DQorCQkubmFtZSA9ICJJMlMxIiwNCisJCS5pZCA9IE1U ODE5Ml9EQUlfSTJTXzEsDQorCQkucGxheWJhY2sgPSB7DQorCQkJLnN0cmVhbV9uYW1lID0gIkky UzEiLA0KKwkJCS5jaGFubmVsc19taW4gPSAxLA0KKwkJCS5jaGFubmVsc19tYXggPSAyLA0KKwkJ CS5yYXRlcyA9IE1US19JMlNfUkFURVMsDQorCQkJLmZvcm1hdHMgPSBNVEtfSTJTX0ZPUk1BVFMs DQorCQl9LA0KKwkJLm9wcyA9ICZtdGtfZGFpX2kyc19vcHMsDQorCX0sDQorCXsNCisJCS5uYW1l ID0gIkkyUzIiLA0KKwkJLmlkID0gTVQ4MTkyX0RBSV9JMlNfMiwNCisJCS5jYXB0dXJlID0gew0K KwkJCS5zdHJlYW1fbmFtZSA9ICJJMlMyIiwNCisJCQkuY2hhbm5lbHNfbWluID0gMSwNCisJCQku Y2hhbm5lbHNfbWF4ID0gMiwNCisJCQkucmF0ZXMgPSBNVEtfSTJTX1JBVEVTLA0KKwkJCS5mb3Jt YXRzID0gTVRLX0kyU19GT1JNQVRTLA0KKwkJfSwNCisJCS5vcHMgPSAmbXRrX2RhaV9pMnNfb3Bz LA0KKwl9LA0KKwl7DQorCQkubmFtZSA9ICJJMlMzIiwNCisJCS5pZCA9IE1UODE5Ml9EQUlfSTJT XzMsDQorCQkucGxheWJhY2sgPSB7DQorCQkJLnN0cmVhbV9uYW1lID0gIkkyUzMiLA0KKwkJCS5j aGFubmVsc19taW4gPSAxLA0KKwkJCS5jaGFubmVsc19tYXggPSAyLA0KKwkJCS5yYXRlcyA9IE1U S19JMlNfUkFURVMsDQorCQkJLmZvcm1hdHMgPSBNVEtfSTJTX0ZPUk1BVFMsDQorCQl9LA0KKwkJ Lm9wcyA9ICZtdGtfZGFpX2kyc19vcHMsDQorCX0sDQorCXsNCisJCS5uYW1lID0gIkkyUzUiLA0K KwkJLmlkID0gTVQ4MTkyX0RBSV9JMlNfNSwNCisJCS5wbGF5YmFjayA9IHsNCisJCQkuc3RyZWFt X25hbWUgPSAiSTJTNSIsDQorCQkJLmNoYW5uZWxzX21pbiA9IDEsDQorCQkJLmNoYW5uZWxzX21h eCA9IDIsDQorCQkJLnJhdGVzID0gTVRLX0kyU19SQVRFUywNCisJCQkuZm9ybWF0cyA9IE1US19J MlNfRk9STUFUUywNCisJCX0sDQorCQkub3BzID0gJm10a19kYWlfaTJzX29wcywNCisJfSwNCisJ ew0KKwkJLm5hbWUgPSAiSTJTNiIsDQorCQkuaWQgPSBNVDgxOTJfREFJX0kyU182LA0KKwkJLmNh cHR1cmUgPSB7DQorCQkJLnN0cmVhbV9uYW1lID0gIkkyUzYiLA0KKwkJCS5jaGFubmVsc19taW4g PSAxLA0KKwkJCS5jaGFubmVsc19tYXggPSAyLA0KKwkJCS5yYXRlcyA9IE1US19JMlNfUkFURVMs DQorCQkJLmZvcm1hdHMgPSBNVEtfSTJTX0ZPUk1BVFMsDQorCQl9LA0KKwkJLm9wcyA9ICZtdGtf ZGFpX2kyc19vcHMsDQorCX0sDQorCXsNCisJCS5uYW1lID0gIkkyUzciLA0KKwkJLmlkID0gTVQ4 MTkyX0RBSV9JMlNfNywNCisJCS5wbGF5YmFjayA9IHsNCisJCQkuc3RyZWFtX25hbWUgPSAiSTJT NyIsDQorCQkJLmNoYW5uZWxzX21pbiA9IDEsDQorCQkJLmNoYW5uZWxzX21heCA9IDIsDQorCQkJ LnJhdGVzID0gTVRLX0kyU19SQVRFUywNCisJCQkuZm9ybWF0cyA9IE1US19JMlNfRk9STUFUUywN CisJCX0sDQorCQkub3BzID0gJm10a19kYWlfaTJzX29wcywNCisJfSwNCisJew0KKwkJLm5hbWUg PSAiSTJTOCIsDQorCQkuaWQgPSBNVDgxOTJfREFJX0kyU184LA0KKwkJLmNhcHR1cmUgPSB7DQor CQkJLnN0cmVhbV9uYW1lID0gIkkyUzgiLA0KKwkJCS5jaGFubmVsc19taW4gPSAxLA0KKwkJCS5j aGFubmVsc19tYXggPSAyLA0KKwkJCS5yYXRlcyA9IE1US19JMlNfUkFURVMsDQorCQkJLmZvcm1h dHMgPSBNVEtfSTJTX0ZPUk1BVFMsDQorCQl9LA0KKwkJLm9wcyA9ICZtdGtfZGFpX2kyc19vcHMs DQorCX0sDQorCXsNCisJCS5uYW1lID0gIkkyUzkiLA0KKwkJLmlkID0gTVQ4MTkyX0RBSV9JMlNf OSwNCisJCS5wbGF5YmFjayA9IHsNCisJCQkuc3RyZWFtX25hbWUgPSAiSTJTOSIsDQorCQkJLmNo YW5uZWxzX21pbiA9IDEsDQorCQkJLmNoYW5uZWxzX21heCA9IDIsDQorCQkJLnJhdGVzID0gTVRL X0kyU19SQVRFUywNCisJCQkuZm9ybWF0cyA9IE1US19JMlNfRk9STUFUUywNCisJCX0sDQorCQku b3BzID0gJm10a19kYWlfaTJzX29wcywNCisJfQ0KK307DQorDQorLyogdGhpcyBlbnVtIGlzIG1l cmVseSBmb3IgbXRrX2FmZV9pMnNfcHJpdiBkZWNsYXJlICovDQorZW51bSB7DQorCURBSV9JMlMw ID0gMCwNCisJREFJX0kyUzEsDQorCURBSV9JMlMyLA0KKwlEQUlfSTJTMywNCisJREFJX0kyUzUs DQorCURBSV9JMlM2LA0KKwlEQUlfSTJTNywNCisJREFJX0kyUzgsDQorCURBSV9JMlM5LA0KKwlE QUlfSTJTX05VTSwNCit9Ow0KKw0KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2FmZV9pMnNfcHJp diBtdDgxOTJfaTJzX3ByaXZbREFJX0kyU19OVU1dID0gew0KKwlbREFJX0kyUzBdID0gew0KKwkJ LmlkID0gTVQ4MTkyX0RBSV9JMlNfMCwNCisJCS5tY2xrX2lkID0gTVQ4MTkyX0kyUzBfTUNLLA0K KwkJLnNoYXJlX3Byb3BlcnR5X25hbWUgPSAiaTJzMC1zaGFyZSIsDQorCQkuc2hhcmVfaTJzX2lk ID0gLTEsDQorCX0sDQorCVtEQUlfSTJTMV0gPSB7DQorCQkuaWQgPSBNVDgxOTJfREFJX0kyU18x LA0KKwkJLm1jbGtfaWQgPSBNVDgxOTJfSTJTMV9NQ0ssDQorCQkuc2hhcmVfcHJvcGVydHlfbmFt ZSA9ICJpMnMxLXNoYXJlIiwNCisJCS5zaGFyZV9pMnNfaWQgPSAtMSwNCisJfSwNCisJW0RBSV9J MlMyXSA9IHsNCisJCS5pZCA9IE1UODE5Ml9EQUlfSTJTXzIsDQorCQkubWNsa19pZCA9IE1UODE5 Ml9JMlMyX01DSywNCisJCS5zaGFyZV9wcm9wZXJ0eV9uYW1lID0gImkyczItc2hhcmUiLA0KKwkJ LnNoYXJlX2kyc19pZCA9IC0xLA0KKwl9LA0KKwlbREFJX0kyUzNdID0gew0KKwkJLmlkID0gTVQ4 MTkyX0RBSV9JMlNfMywNCisJCS5tY2xrX2lkID0gTVQ4MTkyX0kyUzNfTUNLLA0KKwkJLnNoYXJl X3Byb3BlcnR5X25hbWUgPSAiaTJzMy1zaGFyZSIsDQorCQkuc2hhcmVfaTJzX2lkID0gLTEsDQor CX0sDQorCVtEQUlfSTJTNV0gPSB7DQorCQkuaWQgPSBNVDgxOTJfREFJX0kyU181LA0KKwkJLm1j bGtfaWQgPSBNVDgxOTJfSTJTNV9NQ0ssDQorCQkuc2hhcmVfcHJvcGVydHlfbmFtZSA9ICJpMnM1 LXNoYXJlIiwNCisJCS5zaGFyZV9pMnNfaWQgPSAtMSwNCisJfSwNCisJW0RBSV9JMlM2XSA9IHsN CisJCS5pZCA9IE1UODE5Ml9EQUlfSTJTXzYsDQorCQkubWNsa19pZCA9IE1UODE5Ml9JMlM2X01D SywNCisJCS5zaGFyZV9wcm9wZXJ0eV9uYW1lID0gImkyczYtc2hhcmUiLA0KKwkJLnNoYXJlX2ky c19pZCA9IC0xLA0KKwl9LA0KKwlbREFJX0kyUzddID0gew0KKwkJLmlkID0gTVQ4MTkyX0RBSV9J MlNfNywNCisJCS5tY2xrX2lkID0gTVQ4MTkyX0kyUzdfTUNLLA0KKwkJLnNoYXJlX3Byb3BlcnR5 X25hbWUgPSAiaTJzNy1zaGFyZSIsDQorCQkuc2hhcmVfaTJzX2lkID0gLTEsDQorCX0sDQorCVtE QUlfSTJTOF0gPSB7DQorCQkuaWQgPSBNVDgxOTJfREFJX0kyU184LA0KKwkJLm1jbGtfaWQgPSBN VDgxOTJfSTJTOF9NQ0ssDQorCQkuc2hhcmVfcHJvcGVydHlfbmFtZSA9ICJpMnM4LXNoYXJlIiwN CisJCS5zaGFyZV9pMnNfaWQgPSAtMSwNCisJfSwNCisJW0RBSV9JMlM5XSA9IHsNCisJCS5pZCA9 IE1UODE5Ml9EQUlfSTJTXzksDQorCQkubWNsa19pZCA9IE1UODE5Ml9JMlM5X01DSywNCisJCS5z aGFyZV9wcm9wZXJ0eV9uYW1lID0gImkyczktc2hhcmUiLA0KKwkJLnNoYXJlX2kyc19pZCA9IC0x LA0KKwl9LA0KK307DQorDQoraW50IG10ODE5Ml9kYWlfaTJzX2dldF9zaGFyZShzdHJ1Y3QgbXRr X2Jhc2VfYWZlICphZmUpDQorew0KKwlzdHJ1Y3QgbXQ4MTkyX2FmZV9wcml2YXRlICphZmVfcHJp diA9IGFmZS0+cGxhdGZvcm1fcHJpdjsNCisJY29uc3Qgc3RydWN0IGRldmljZV9ub2RlICpvZl9u b2RlID0gYWZlLT5kZXYtPm9mX25vZGU7DQorCWNvbnN0IGNoYXIgKm9mX3N0cjsNCisJY29uc3Qg Y2hhciAqcHJvcGVydHlfbmFtZTsNCisJc3RydWN0IG10a19hZmVfaTJzX3ByaXYgKmkyc19wcml2 Ow0KKwlpbnQgaTsNCisNCisJZm9yIChpID0gMDsgaSA8IERBSV9JMlNfTlVNOyBpKyspIHsNCisJ CWkyc19wcml2ID0gYWZlX3ByaXYtPmRhaV9wcml2W210ODE5Ml9pMnNfcHJpdltpXS5pZF07DQor CQlwcm9wZXJ0eV9uYW1lID0gbXQ4MTkyX2kyc19wcml2W2ldLnNoYXJlX3Byb3BlcnR5X25hbWU7 DQorCQlpZiAob2ZfcHJvcGVydHlfcmVhZF9zdHJpbmcob2Zfbm9kZSwgcHJvcGVydHlfbmFtZSwg Jm9mX3N0cikpDQorCQkJY29udGludWU7DQorCQlpMnNfcHJpdi0+c2hhcmVfaTJzX2lkID0gZ2V0 X2kyc19pZF9ieV9uYW1lKGFmZSwgb2Zfc3RyKTsNCisJfQ0KKw0KKwlyZXR1cm4gMDsNCit9DQor DQoraW50IG10ODE5Ml9kYWlfaTJzX3NldF9wcml2KHN0cnVjdCBtdGtfYmFzZV9hZmUgKmFmZSkN Cit7DQorCWludCBpOw0KKwlpbnQgcmV0Ow0KKw0KKwlmb3IgKGkgPSAwOyBpIDwgREFJX0kyU19O VU07IGkrKykgew0KKwkJcmV0ID0gbXQ4MTkyX2RhaV9zZXRfcHJpdihhZmUsIG10ODE5Ml9pMnNf cHJpdltpXS5pZCwNCisJCQkJCSAgc2l6ZW9mKHN0cnVjdCBtdGtfYWZlX2kyc19wcml2KSwNCisJ CQkJCSAgJm10ODE5Ml9pMnNfcHJpdltpXSk7DQorCQlpZiAocmV0KQ0KKwkJCXJldHVybiByZXQ7 DQorCX0NCisNCisJcmV0dXJuIDA7DQorfQ0KKw0KK2ludCBtdDgxOTJfZGFpX2kyc19yZWdpc3Rl cihzdHJ1Y3QgbXRrX2Jhc2VfYWZlICphZmUpDQorew0KKwlzdHJ1Y3QgbXRrX2Jhc2VfYWZlX2Rh aSAqZGFpOw0KKwlpbnQgcmV0Ow0KKw0KKwlkZXZfaW5mbyhhZmUtPmRldiwgIiVzKClcbiIsIF9f ZnVuY19fKTsNCisNCisJZGFpID0gZGV2bV9remFsbG9jKGFmZS0+ZGV2LCBzaXplb2YoKmRhaSks IEdGUF9LRVJORUwpOw0KKwlpZiAoIWRhaSkNCisJCXJldHVybiAtRU5PTUVNOw0KKw0KKwlsaXN0 X2FkZCgmZGFpLT5saXN0LCAmYWZlLT5zdWJfZGFpcyk7DQorDQorCWRhaS0+ZGFpX2RyaXZlcnMg PSBtdGtfZGFpX2kyc19kcml2ZXI7DQorCWRhaS0+bnVtX2RhaV9kcml2ZXJzID0gQVJSQVlfU0la RShtdGtfZGFpX2kyc19kcml2ZXIpOw0KKw0KKwlkYWktPmNvbnRyb2xzID0gbXRrX2RhaV9pMnNf Y29udHJvbHM7DQorCWRhaS0+bnVtX2NvbnRyb2xzID0gQVJSQVlfU0laRShtdGtfZGFpX2kyc19j b250cm9scyk7DQorCWRhaS0+ZGFwbV93aWRnZXRzID0gbXRrX2RhaV9pMnNfd2lkZ2V0czsNCisJ ZGFpLT5udW1fZGFwbV93aWRnZXRzID0gQVJSQVlfU0laRShtdGtfZGFpX2kyc193aWRnZXRzKTsN CisJZGFpLT5kYXBtX3JvdXRlcyA9IG10a19kYWlfaTJzX3JvdXRlczsNCisJZGFpLT5udW1fZGFw bV9yb3V0ZXMgPSBBUlJBWV9TSVpFKG10a19kYWlfaTJzX3JvdXRlcyk7DQorDQorCS8qIHNldCBh bGwgZGFpIGkycyBwcml2YXRlIGRhdGEgKi8NCisJcmV0ID0gbXQ4MTkyX2RhaV9pMnNfc2V0X3By aXYoYWZlKTsNCisJaWYgKHJldCkNCisJCXJldHVybiByZXQ7DQorDQorCS8qIHBhcnNlIHNoYXJl IGkycyAqLw0KKwlyZXQgPSBtdDgxOTJfZGFpX2kyc19nZXRfc2hhcmUoYWZlKTsNCisJaWYgKHJl dCkNCisJCXJldHVybiByZXQ7DQorDQorCXJldHVybiAwOw0KK30NCi0tIA0KMi4xOC4wDQo=