Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp3292662pxf; Mon, 15 Mar 2021 06:27:45 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx3adzHuuTA7uJg9KyZxS2LxsWKEFoZwkDKCpHMUBeQdE0asCFsnb6nFDybj/Nx3fEWEzGv X-Received: by 2002:a17:906:1494:: with SMTP id x20mr23571810ejc.101.1615814865090; Mon, 15 Mar 2021 06:27:45 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1615814865; cv=pass; d=google.com; s=arc-20160816; b=jNbQmcgw6pc69W9PvUbB6P7mBOan422CuN6hr8dRm57AZH4xIzSG4FdP7saohPi6RS jIcXPEJOKxZZA7fyuvochy9GDmWwzifiAQW0J0Kz4qDQrpYWxgR1qGQ4BQ2Jn59nVNip 2rMO2OL7mbtoQmcMR9IEgb/NlrJw/ZDByNVtqiHaLIpAOPq5I1UZTCyS91KdZQc11Yyn oNKzhKhKznrNVh8LOxiC2Ekl1r8piGMGhrbzVxBOXneodr+En95XFl8fQOu8Ogt2UUh0 VrYLJLsXod0tljQAAvnysj8wmWU4/yLwOMlUQYAt6qnrpMOyZ8xmkzY+2iPwowit+Qbo umBw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=WTAW3LDONS7t4wxsQeo4StciNBxyWFcOlqc5+KuRcas=; b=WE5BKzJFT4QAn1SPmEXelt2KlTdvut/WX2Yy+xOEJ/DplN3qNTV9LCKkDfuE+TZc5k vPTWW9nkgw34og7/kPT9xM42njLHeZ0PTQY72iVOT68Ya0ljZZ0OfjVA1bR5g8VtQqpS C+df11zWJ4e4ZT0bhFDCOR8/xaG2HoEmUQmloAfCf6ilImgIeN5fiLsbKg9pnS6kVD+2 lZP2lYPMPu6pcIitPOc0Ipn+sXp8xpJmiETQVEI/RubOElhUdSENCrkBNzKmKGLbgYj1 upUgOHic0648V2y1iPuXnK3RIUwt1Wt/I6MTaQYq/U1tdj29Frl0kFEmgcDwIiB/EBbp 6wKQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@silabs.onmicrosoft.com header.s=selector2-silabs-onmicrosoft-com header.b=GHmdOeru; arc=pass (i=1 spf=pass spfdomain=silabs.com dkim=pass dkdomain=silabs.com dmarc=pass fromdomain=silabs.com); spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id ga1si11275768ejb.647.2021.03.15.06.27.20; Mon, 15 Mar 2021 06:27:45 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@silabs.onmicrosoft.com header.s=selector2-silabs-onmicrosoft-com header.b=GHmdOeru; arc=pass (i=1 spf=pass spfdomain=silabs.com dkim=pass dkdomain=silabs.com dmarc=pass fromdomain=silabs.com); spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231447AbhCON0w (ORCPT + 99 others); Mon, 15 Mar 2021 09:26:52 -0400 Received: from mail-co1nam11on2080.outbound.protection.outlook.com ([40.107.220.80]:9473 "EHLO NAM11-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S231246AbhCON02 (ORCPT ); Mon, 15 Mar 2021 09:26:28 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UVfTYFCillXB2TuPowIS6rzBqpSsA3gCdQkjXGGxBzAdrpckwTdR6qJZL+VPWTpbvje7PWL+ECCw9SzA/sqImWq357ehgb//5cuQVJRYxhrZbYhA2qCEGwITrnoou4ufL2C8phI1mUcDhgTThDDtSLkewrjVZTVW9Xrglfqk+IS4rgHsDa78JHcvcA5gFIRTOgYgNN7EyiC1RdiSnQWhn2O2v7VgHh02b///PDbwy0vgtO7dI/nEPP2UC2fXtOpdmwI9rTW9LIxlbPg8h90cWL40456e4QtmNLhgjWAo4moiLvNmWt+4pd86tvksBbC6JuuLeK7Z3/q6IDNRgZy4og== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WTAW3LDONS7t4wxsQeo4StciNBxyWFcOlqc5+KuRcas=; b=Rqw4Y8UHAdu5fhTCVtxg/7Ufr8hoYMN8seK9p/Q6mzOnFoqMlygYqFCxXJQSZQov/jeH+20HgIWDGA8HSILm4Q4DkUGsc+2v83R3JktouAzRCDe/DBIgnsTp3icYTbiiVBh3KNtd4RpHTnrLvPqi6wt3IntuzSGPSFTvnllgzjqgHaMMdb1HcQ9Xk23eGomYvnLA7GxsqPsxL8HQsL3JCsEhnGChPQHGgwAvDgPwoi41wL2v1Og/Jxnxw8oa7FOZvlpz2sHpsasjQwKT42oGMJEanWTgfpeErd2DaJsKejdN/lMGfj1vALrBEztiR3YLzQriFdcH1EqZ4ufMTtk3vA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=silabs.com; dmarc=pass action=none header.from=silabs.com; dkim=pass header.d=silabs.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=silabs.onmicrosoft.com; s=selector2-silabs-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WTAW3LDONS7t4wxsQeo4StciNBxyWFcOlqc5+KuRcas=; b=GHmdOeru/nWbksxQEyvibJN7AJUt0cXdHVT+Ff9jfmNJjnr1jfe8EdJ7wfgu8S5egEFXS623DGh9Jo21Su/3JOUIG3o1ukfjyXpYF7/PeKUp5C9b2mGvdWV+CKjlh9L2SA8fmBKIuQYbsQPMrgs4KetvGONG6gxXTru3NqQpFOQ= Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=silabs.com; Received: from SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) by SN6PR11MB3216.namprd11.prod.outlook.com (2603:10b6:805:c1::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3933.32; Mon, 15 Mar 2021 13:26:23 +0000 Received: from SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::41bc:5ce:dfa0:9701]) by SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::41bc:5ce:dfa0:9701%7]) with mapi id 15.20.3933.032; Mon, 15 Mar 2021 13:26:23 +0000 From: Jerome Pouiller To: linux-wireless@vger.kernel.org, netdev@vger.kernel.org Cc: devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org, Greg Kroah-Hartman , Kalle Valo , "David S . Miller" , devicetree@vger.kernel.org, Rob Herring , linux-mmc@vger.kernel.org, =?UTF-8?q?Pali=20Roh=C3=A1r?= , Ulf Hansson , =?UTF-8?q?J=C3=A9r=C3=B4me=20Pouiller?= Subject: [PATCH v5 22/24] wfx: add traces.h Date: Mon, 15 Mar 2021 14:24:59 +0100 Message-Id: <20210315132501.441681-23-Jerome.Pouiller@silabs.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210315132501.441681-1-Jerome.Pouiller@silabs.com> References: <20210315132501.441681-1-Jerome.Pouiller@silabs.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 X-Originating-IP: [2a01:e35:2435:66a0:544b:f17b:7ae8:fb7] X-ClientProxiedBy: SN4PR0801CA0014.namprd08.prod.outlook.com (2603:10b6:803:29::24) To SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from pc-42.silabs.com (2a01:e35:2435:66a0:544b:f17b:7ae8:fb7) by SN4PR0801CA0014.namprd08.prod.outlook.com (2603:10b6:803:29::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3933.32 via Frontend Transport; Mon, 15 Mar 2021 13:26:20 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: dc15f4dd-11b2-4694-2a8d-08d8e7b5ed41 X-MS-TrafficTypeDiagnostic: SN6PR11MB3216: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:66; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: I8WrpX9xjrQZc2ew1ggdtvbC0iSVEidFeI+KR81V5HHdLoaDN6TF5TUTEgwCqM2tKddaMNZZI1A6WaleBnqOxc80s9ZhlHsEx4MT8mFYMhA5oGup/MNKH9nECltRCB1L6inKDVoWqrly50763eQ9TbZgy5dZfVUGu1ByvRfrpD5oYbC/mdoAs0cH1sAZJ4FdE+Dt8fqSfd3gBQrcZVcot9FIL8NmmLZLANvXECk6ftnwv5/53R6W3kkBToZhvMSZzwlCza9I4NxfRDLQP+xhIIThatyfF+82pVek/AjRzVVtvffpFaUc9/g79aJ4nlppdL+X/mo2lkJ+1kO/4ectG5BclGB+jUotX8bRRC+AbEf5zbp9qjjNIrdbO6y5GsWvxmiEmAY7402J9THjWorFqDPv1Cq14I6bNBwSKIkrEAVm9DesXvdTXnDVXRvoV2m8Dvy+RbAqgJAgmVlXc0CMHG24c+zfKIycpK9zMvYT/e1djHSROwkyuFw2Ao2vejXbAQEyInfT7m1QYxWit2nk42VgnIpsLNorC+ufS28GzEE0z4aOwoEnBqw7f50XBz1ePu21MqbGiipPScrXwhG21kWImWMEsyCAZD68wF4qCmE= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR11MB2718.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(376002)(346002)(396003)(366004)(39850400004)(136003)(86362001)(107886003)(2616005)(186003)(1076003)(4326008)(316002)(30864003)(66556008)(478600001)(8676002)(66476007)(6486002)(7696005)(5660300002)(66946007)(2906002)(54906003)(83380400001)(6666004)(8936002)(36756003)(52116002)(7416002)(66574015)(16526019)(21314003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?U1BHa05XL1FFRWNEM0Y1UWlaK1B3MFFVZnYrVHdFeTdGYzliSTFLVUZreHZi?= =?utf-8?B?N3JCZkpRSi8wU0RhSjhoYU5iV1dsc09Ya1ZnM1M2VVNVVE1DaXFZbHY3YkNU?= =?utf-8?B?dnRhTGhnNjlueUJ4NDY4UWhyQmhsOHBlQXpKTXh2Z0tjRnYwQTJZdlJtUDVB?= =?utf-8?B?QXJkczMxemJvS0k2RnNYM3dPc3BOeVdaL3pGZnhVdUJmUGdQRXc4MVpvR3BJ?= =?utf-8?B?ZFdYSE41NldGcU5oQ2lsUkNEeFYyZjE0am1OYy95ckF4UzJVcVN4aHZYa2Ja?= =?utf-8?B?Q1FPOFo5d2VJc2VqdUJzZXBYSndNQ3ZkL0RXTm5CL3VxY3l3WFNCdFAwT2p1?= =?utf-8?B?QXZsUWtaRWlkRTlST1VXYXFZNnUyd1FRaTdJWm1acWprZFRIREFYYWhjSHlK?= =?utf-8?B?ajdmajZ3RzBTT3d1VFFMclRBT2I3THhISFR0Q2haZS95L0hqck9CSTAveTRT?= =?utf-8?B?K1E2N3AvbTdER2dQdlBMSE9XbzJPN2xXem1Pa0pDckFOSzdYUXZvTFhqWWRx?= =?utf-8?B?bXV4Um5hQ0l2QVVCMWlOS2xMNmdWbmttZTRWVGFuTFFITWIwTjNpdzhEWFJT?= =?utf-8?B?cWlwNU16ZWQwM3NGVDFDQWZHQWxMN01zSlZHK2czWm9GMzREbURjSU9ZdGxn?= =?utf-8?B?Smx1endMaUNuNnI1OW8rVGRDZ0NJUjFxT0pBMzRCaU02SG05cWVuQldCSTRr?= =?utf-8?B?S04yaHhFTXcrWVJ0Qm9hblNoOUJuR1UxcGRUSEEranhLZmZ1aktTOTdXdFdz?= =?utf-8?B?VkZWZGp4MzdpREZnV1E0TkVNcm5LM0xTMitRS0ZrMGdOR2xCSmRRK2RYK1lU?= =?utf-8?B?LzU4U2k0cmJoZXpCNXhLaGo2aHAxcm9rVVJUdkZiaGdPM1Z1RHVWNEsvSVVF?= =?utf-8?B?U1V6djJkeDhQUXpDQm1IREYvc3B1V3hOK1RkYS9zMHlyUXdXR0NnVEUrQVdj?= =?utf-8?B?dkFMd1dFY25QczJ0WG81RlB1MmI2UFd0UzAveEZPOUhkanlBSjZoek1McFVC?= =?utf-8?B?dnpHQ09lUjJCZ0tzSEVpcll0eCsvQkZka2w0Rk1FZnh6eUVZRGxSZG9VN053?= =?utf-8?B?ZHlsN3h3b3g3a1JST3hPZ0Nkbk1SaU93OW9vS2R1UDRZSUZWN1dCc21taGVW?= =?utf-8?B?dDhyVS9BUHE5STI0dTJCbVE1MGplbm1TTkVoWW5iTUZVd1h2MWl2azJpNXUx?= =?utf-8?B?bUhCK0ZEUVBUMXZrc2g3N20zbFlMVW5wdkk5b2dsWGZQSnlENDNUcTVjbkQx?= =?utf-8?B?Y3FnUFhrTm1JS1MwWU04Z0Q3RExQd2IxeG0rcldsNDJuSnhmcFU4NGxyRGpD?= =?utf-8?B?R2kwWjdjMGN6T3IyWmRnT255YUlUZmFWSXhsWWZXSTE5YWE2N0VURGJ2MlI1?= =?utf-8?B?MUE4dTh2Ujh1WDV1eExMTU5reDNOakU1Z0tNQUp6bW5OS28xZDBiQkMxS1pl?= =?utf-8?B?RmU1aVkyRHljMkdndGwvOHJLTEtmTHBOZHc5ZEpsT1pNQWEvMW9kUnhtUGlP?= =?utf-8?B?TTRqYWZmYTYzUjJnL1FQY2tYSXVWaHA3cXZ0WHRUVDQ0MVltWmtVRTJUWTJz?= =?utf-8?B?R3R1amdPN0UvUWRQMzEyQk14Q0RNUXY2L2YzWXV0YWxNUURneno5ZERXOHhK?= =?utf-8?B?Tk1GNEpXK0E3dUlIRVljOXJyUzB5cHc2LzA4OERGaW02cHp0UEI0VTNIOW4z?= =?utf-8?B?aTBEVGNwZzFWOHJHb3YvamFiVElqVGlPbGx4cjhWck9HbEJqbnBhWGZtd3VV?= =?utf-8?B?OWc4OEpsb240bnYzS3IxTkxWYWZyOE1VeGI2ZXk5bVpOQnc0Z2ZoeVNHOUdQ?= =?utf-8?B?Z045ZElPbFBLaGdkbkZLM2FqYy85SkxGcm5iV0R6a0FPdWtEbGpRaWp3TVRl?= =?utf-8?Q?XR6Es8HJLOKc7?= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: dc15f4dd-11b2-4694-2a8d-08d8e7b5ed41 X-MS-Exchange-CrossTenant-AuthSource: SN6PR11MB2718.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Mar 2021 13:26:23.1011 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 54dbd822-5231-4b20-944d-6f4abcd541fb X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Kv+WC2oqgb95m8vb1E8Huh5bJe6neNZ5/4k0Gw0+G968E+3du2AlodHBSx4uV1D80/qbLwMk4TO6Ga06DAXj7g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB3216 Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org RnJvbTogSsOpcsO0bWUgUG91aWxsZXIgPGplcm9tZS5wb3VpbGxlckBzaWxhYnMuY29tPgoKU2ln bmVkLW9mZi1ieTogSsOpcsO0bWUgUG91aWxsZXIgPGplcm9tZS5wb3VpbGxlckBzaWxhYnMuY29t PgotLS0KIGRyaXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvdHJhY2VzLmggfCA1MDEgKysr KysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA1MDEgaW5zZXJ0aW9ucygrKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvdHJhY2Vz LmgKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9zaWxhYnMvd2Z4L3RyYWNlcy5o IGIvZHJpdmVycy9uZXQvd2lyZWxlc3Mvc2lsYWJzL3dmeC90cmFjZXMuaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmU5MGRjNzNjNGIwMQotLS0gL2Rldi9udWxsCisr KyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvdHJhY2VzLmgKQEAgLTAsMCArMSw1 MDEgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkgKi8KKy8qCisg KiBUcmFjZXBvaW50cyBkZWZpbml0aW9ucy4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAy MCwgU2lsaWNvbiBMYWJvcmF0b3JpZXMsIEluYy4KKyAqLworCisjdW5kZWYgVFJBQ0VfU1lTVEVN CisjZGVmaW5lIFRSQUNFX1NZU1RFTSB3ZngKKworI2lmICFkZWZpbmVkKF9XRlhfVFJBQ0VfSCkg fHwgZGVmaW5lZChUUkFDRV9IRUFERVJfTVVMVElfUkVBRCkKKyNkZWZpbmUgX1dGWF9UUkFDRV9I CisKKyNpbmNsdWRlIDxsaW51eC90cmFjZXBvaW50Lmg+CisjaW5jbHVkZSA8bmV0L21hYzgwMjEx Lmg+CisKKyNpbmNsdWRlICJidXMuaCIKKyNpbmNsdWRlICJoaWZfYXBpX2NtZC5oIgorI2luY2x1 ZGUgImhpZl9hcGlfbWliLmgiCisKKy8qIFRoZSBoZWxsIGJlbG93IG5lZWQgc29tZSBleHBsYW5h dGlvbnMuIEZvciBlYWNoIHN5bWJvbGljIG51bWJlciwgd2UgbmVlZCB0bworICogZGVmaW5lIGl0 IHdpdGggVFJBQ0VfREVGSU5FX0VOVU0oKSBhbmQgaW4gYSBsaXN0IGZvciBfX3ByaW50X3N5bWJv bGljLgorICoKKyAqICAgMS4gRGVmaW5lIGEgbmV3IG1hY3JvIHRoYXQgY2FsbCBUUkFDRV9ERUZJ TkVfRU5VTSgpOgorICoKKyAqICAgICAgICAgICNkZWZpbmUgeHh4X25hbWUoc3ltKSBUUkFDRV9E RUZJTkVfRU5VTShzeW0pOworICoKKyAqICAgMi4gRGVmaW5lIGxpc3Qgb2YgYWxsIHN5bWJvbHM6 CisgKgorICogICAgICAgICAgI2RlZmluZSBsaXN0X25hbWVzICAgICBcCisgKiAgICAgICAgICAg ICAuLi4gICAgICAgICAgICAgICAgIFwKKyAqICAgICAgICAgICAgIHh4eF9uYW1lKFhYWCkgICAg ICAgXAorICogICAgICAgICAgICAgLi4uCisgKgorICogICAzLiBJbnN0YW50aWF0ZSB0aGF0IGxp c3RfbmFtZXM6CisgKgorICogICAgICAgICAgbGlzdF9uYW1lcworICoKKyAqICAgNC4gUmVkZWZp bmUgeHh4X25hbWUoKSBhcyBhbiBlbnRyeSBvZiBhcnJheSBmb3IgX19wcmludF9zeW1ib2xpYygp CisgKgorICogICAgICAgICAgI3VuZGVmIHh4eF9uYW1lCisgKiAgICAgICAgICAjZGVmaW5lIHh4 eF9uYW1lKG1zZykgeyBtc2csICNtc2cgfSwKKyAqCisgKiAgIDUuIGxpc3RfbmFtZSBjYW4gbm93 IG5lYXJseSBiZSB1c2VkIHdpdGggX19wcmludF9zeW1ib2xpYygpIGJ1dCwKKyAqICAgICAgX19w cmludF9zeW1ib2xpYygpIGRpc2xpa2UgbGFzdCBjb21tYSBvZiBsaXN0LiBTbyB3ZSBkZWZpbmUg YSBuZXcgbGlzdAorICogICAgICB3aXRoIGEgZHVtbXkgZWxlbWVudDoKKyAqCisgKiAgICAgICAg ICAjZGVmaW5lIGxpc3RfZm9yX3ByaW50X3N5bWJvbGljIGxpc3RfbmFtZXMgeyAtMSwgTlVMTCB9 CisgKi8KKworI2RlZmluZSBfaGlmX21zZ19saXN0ICAgICAgICAgICAgICAgICAgICAgICBcCisJ aGlmX2NuZl9uYW1lKEFERF9LRVkpICAgICAgICAgICAgICAgXAorCWhpZl9jbmZfbmFtZShCRUFD T05fVFJBTlNNSVQpICAgICAgIFwKKwloaWZfY25mX25hbWUoRURDQV9RVUVVRV9QQVJBTVMpICAg ICBcCisJaGlmX2NuZl9uYW1lKEpPSU4pICAgICAgICAgICAgICAgICAgXAorCWhpZl9jbmZfbmFt ZShNQVBfTElOSykgICAgICAgICAgICAgIFwKKwloaWZfY25mX25hbWUoUkVBRF9NSUIpICAgICAg ICAgICAgICBcCisJaGlmX2NuZl9uYW1lKFJFTU9WRV9LRVkpICAgICAgICAgICAgXAorCWhpZl9j bmZfbmFtZShSRVNFVCkgICAgICAgICAgICAgICAgIFwKKwloaWZfY25mX25hbWUoU0VUX0JTU19Q QVJBTVMpICAgICAgICBcCisJaGlmX2NuZl9uYW1lKFNFVF9QTV9NT0RFKSAgICAgICAgICAgXAor CWhpZl9jbmZfbmFtZShTVEFSVCkgICAgICAgICAgICAgICAgIFwKKwloaWZfY25mX25hbWUoU1RB UlRfU0NBTikgICAgICAgICAgICBcCisJaGlmX2NuZl9uYW1lKFNUT1BfU0NBTikgICAgICAgICAg ICAgXAorCWhpZl9jbmZfbmFtZShUWCkgICAgICAgICAgICAgICAgICAgIFwKKwloaWZfY25mX25h bWUoTVVMVElfVFJBTlNNSVQpICAgICAgICBcCisJaGlmX2NuZl9uYW1lKFVQREFURV9JRSkgICAg ICAgICAgICAgXAorCWhpZl9jbmZfbmFtZShXUklURV9NSUIpICAgICAgICAgICAgIFwKKwloaWZf Y25mX25hbWUoQ09ORklHVVJBVElPTikgICAgICAgICBcCisJaGlmX2NuZl9uYW1lKENPTlRST0xf R1BJTykgICAgICAgICAgXAorCWhpZl9jbmZfbmFtZShQUkVWRU5UX1JPTExCQUNLKSAgICAgIFwK KwloaWZfY25mX25hbWUoU0VUX1NMX01BQ19LRVkpICAgICAgICBcCisJaGlmX2NuZl9uYW1lKFNM X0NPTkZJR1VSRSkgICAgICAgICAgXAorCWhpZl9jbmZfbmFtZShTTF9FWENIQU5HRV9QVUJfS0VZ UykgIFwKKwloaWZfY25mX25hbWUoU0hVVF9ET1dOKSAgICAgICAgICAgICBcCisJaGlmX2luZF9u YW1lKEVWRU5UKSAgICAgICAgICAgICAgICAgXAorCWhpZl9pbmRfbmFtZShKT0lOX0NPTVBMRVRF KSAgICAgICAgIFwKKwloaWZfaW5kX25hbWUoUlgpICAgICAgICAgICAgICAgICAgICBcCisJaGlm X2luZF9uYW1lKFNDQU5fQ01QTCkgICAgICAgICAgICAgXAorCWhpZl9pbmRfbmFtZShTRVRfUE1f TU9ERV9DTVBMKSAgICAgIFwKKwloaWZfaW5kX25hbWUoU1VTUEVORF9SRVNVTUVfVFgpICAgICBc CisJaGlmX2luZF9uYW1lKFNMX0VYQ0hBTkdFX1BVQl9LRVlTKSAgXAorCWhpZl9pbmRfbmFtZShF UlJPUikgICAgICAgICAgICAgICAgIFwKKwloaWZfaW5kX25hbWUoRVhDRVBUSU9OKSAgICAgICAg ICAgICBcCisJaGlmX2luZF9uYW1lKEdFTkVSSUMpICAgICAgICAgICAgICAgXAorCWhpZl9pbmRf bmFtZShXQUtFVVApICAgICAgICAgICAgICAgIFwKKwloaWZfaW5kX25hbWUoU1RBUlRVUCkKKwor I2RlZmluZSBoaWZfbXNnX2xpc3RfZW51bSBfaGlmX21zZ19saXN0CisKKyN1bmRlZiBoaWZfY25m X25hbWUKKyN1bmRlZiBoaWZfaW5kX25hbWUKKyNkZWZpbmUgaGlmX2NuZl9uYW1lKG1zZykgVFJB Q0VfREVGSU5FX0VOVU0oSElGX0NORl9JRF8jI21zZyk7CisjZGVmaW5lIGhpZl9pbmRfbmFtZSht c2cpIFRSQUNFX0RFRklORV9FTlVNKEhJRl9JTkRfSURfIyNtc2cpOworaGlmX21zZ19saXN0X2Vu dW0KKyN1bmRlZiBoaWZfY25mX25hbWUKKyN1bmRlZiBoaWZfaW5kX25hbWUKKyNkZWZpbmUgaGlm X2NuZl9uYW1lKG1zZykgeyBISUZfQ05GX0lEXyMjbXNnLCAjbXNnIH0sCisjZGVmaW5lIGhpZl9p bmRfbmFtZShtc2cpIHsgSElGX0lORF9JRF8jI21zZywgI21zZyB9LAorI2RlZmluZSBoaWZfbXNn X2xpc3QgaGlmX21zZ19saXN0X2VudW0geyAtMSwgTlVMTCB9CisKKyNkZWZpbmUgX2hpZl9taWJf bGlzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCWhpZl9taWJfbmFtZShBUlBf SVBfQUREUkVTU0VTX1RBQkxFKSAgICAgICAgIFwKKwloaWZfbWliX25hbWUoQVJQX0tFRVBfQUxJ VkVfUEVSSU9EKSAgICAgICAgICBcCisJaGlmX21pYl9uYW1lKEJFQUNPTl9GSUxURVJfRU5BQkxF KSAgICAgICAgICAgXAorCWhpZl9taWJfbmFtZShCRUFDT05fRklMVEVSX1RBQkxFKSAgICAgICAg ICAgIFwKKwloaWZfbWliX25hbWUoQkVBQ09OX1NUQVRTKSAgICAgICAgICAgICAgICAgICBcCisJ aGlmX21pYl9uYW1lKEJFQUNPTl9XQUtFVVBfUEVSSU9EKSAgICAgICAgICAgXAorCWhpZl9taWJf bmFtZShCTE9DS19BQ0tfUE9MSUNZKSAgICAgICAgICAgICAgIFwKKwloaWZfbWliX25hbWUoQ0NB X0NPTkZJRykgICAgICAgICAgICAgICAgICAgICBcCisJaGlmX21pYl9uYW1lKENPTkZJR19EQVRB X0ZJTFRFUikgICAgICAgICAgICAgXAorCWhpZl9taWJfbmFtZShDT1VOVEVSU19UQUJMRSkgICAg ICAgICAgICAgICAgIFwKKwloaWZfbWliX25hbWUoQ1VSUkVOVF9UWF9QT1dFUl9MRVZFTCkgICAg ICAgICBcCisJaGlmX21pYl9uYW1lKERPVDExX01BQ19BRERSRVNTKSAgICAgICAgICAgICAgXAor CWhpZl9taWJfbmFtZShET1QxMV9NQVhfUkVDRUlWRV9MSUZFVElNRSkgICAgIFwKKwloaWZfbWli X25hbWUoRE9UMTFfTUFYX1RSQU5TTUlUX01TRFVfTElGRVRJTUUpIFwKKwloaWZfbWliX25hbWUo RE9UMTFfUlRTX1RIUkVTSE9MRCkgICAgICAgICAgICBcCisJaGlmX21pYl9uYW1lKERPVDExX1dF UF9ERUZBVUxUX0tFWV9JRCkgICAgICAgXAorCWhpZl9taWJfbmFtZShFVEhFUlRZUEVfREFUQUZS QU1FX0NPTkRJVElPTikgIFwKKwloaWZfbWliX25hbWUoRVhURU5ERURfQ09VTlRFUlNfVEFCTEUp ICAgICAgICBcCisJaGlmX21pYl9uYW1lKEdMX0JMT0NLX0FDS19JTkZPKSAgICAgICAgICAgICAg XAorCWhpZl9taWJfbmFtZShHTF9PUEVSQVRJT05BTF9QT1dFUl9NT0RFKSAgICAgIFwKKwloaWZf bWliX25hbWUoR0xfU0VUX01VTFRJX01TRykgICAgICAgICAgICAgICBcCisJaGlmX21pYl9uYW1l KEdSUF9TRVFfQ09VTlRFUikgICAgICAgICAgICAgICAgXAorCWhpZl9taWJfbmFtZShJTkFDVElW SVRZX1RJTUVSKSAgICAgICAgICAgICAgIFwKKwloaWZfbWliX25hbWUoSU5URVJGQUNFX1BST1RF Q1RJT04pICAgICAgICAgICBcCisJaGlmX21pYl9uYW1lKElQVjRfQUREUl9EQVRBRlJBTUVfQ09O RElUSU9OKSAgXAorCWhpZl9taWJfbmFtZShJUFY2X0FERFJfREFUQUZSQU1FX0NPTkRJVElPTikg IFwKKwloaWZfbWliX25hbWUoS0VFUF9BTElWRV9QRVJJT0QpICAgICAgICAgICAgICBcCisJaGlm X21pYl9uYW1lKE1BQ19BRERSX0RBVEFGUkFNRV9DT05ESVRJT04pICAgXAorCWhpZl9taWJfbmFt ZShNQUdJQ19EQVRBRlJBTUVfQ09ORElUSU9OKSAgICAgIFwKKwloaWZfbWliX25hbWUoTUFYX1RY X1BPV0VSX0xFVkVMKSAgICAgICAgICAgICBcCisJaGlmX21pYl9uYW1lKE5PTl9FUlBfUFJPVEVD VElPTikgICAgICAgICAgICAgXAorCWhpZl9taWJfbmFtZShOU19JUF9BRERSRVNTRVNfVEFCTEUp ICAgICAgICAgIFwKKwloaWZfbWliX25hbWUoT1ZFUlJJREVfSU5URVJOQUxfVFhfUkFURSkgICAg ICBcCisJaGlmX21pYl9uYW1lKFBPUlRfREFUQUZSQU1FX0NPTkRJVElPTikgICAgICAgXAorCWhp Zl9taWJfbmFtZShQUk9URUNURURfTUdNVF9QT0xJQ1kpICAgICAgICAgIFwKKwloaWZfbWliX25h bWUoUkNQSV9SU1NJX1RIUkVTSE9MRCkgICAgICAgICAgICBcCisJaGlmX21pYl9uYW1lKFJYX0ZJ TFRFUikgICAgICAgICAgICAgICAgICAgICAgXAorCWhpZl9taWJfbmFtZShTRVRfQVNTT0NJQVRJ T05fTU9ERSkgICAgICAgICAgIFwKKwloaWZfbWliX25hbWUoU0VUX0RBVEFfRklMVEVSSU5HKSAg ICAgICAgICAgICBcCisJaGlmX21pYl9uYW1lKFNFVF9IVF9QUk9URUNUSU9OKSAgICAgICAgICAg ICAgXAorCWhpZl9taWJfbmFtZShTRVRfVFhfUkFURV9SRVRSWV9QT0xJQ1kpICAgICAgIFwKKwlo aWZfbWliX25hbWUoU0VUX1VBUFNEX0lORk9STUFUSU9OKSAgICAgICAgICBcCisJaGlmX21pYl9u YW1lKFNMT1RfVElNRSkgICAgICAgICAgICAgICAgICAgICAgXAorCWhpZl9taWJfbmFtZShTVEFU SVNUSUNTX1RBQkxFKSAgICAgICAgICAgICAgIFwKKwloaWZfbWliX25hbWUoVEVNUExBVEVfRlJB TUUpICAgICAgICAgICAgICAgICBcCisJaGlmX21pYl9uYW1lKFRTRl9DT1VOVEVSKSAgICAgICAg ICAgICAgICAgICAgXAorCWhpZl9taWJfbmFtZShVQ19NQ19CQ19EQVRBRlJBTUVfQ09ORElUSU9O KQorCisjZGVmaW5lIGhpZl9taWJfbGlzdF9lbnVtIF9oaWZfbWliX2xpc3QKKworI3VuZGVmIGhp Zl9taWJfbmFtZQorI2RlZmluZSBoaWZfbWliX25hbWUobWliKSBUUkFDRV9ERUZJTkVfRU5VTShI SUZfTUlCX0lEXyMjbWliKTsKK2hpZl9taWJfbGlzdF9lbnVtCisjdW5kZWYgaGlmX21pYl9uYW1l CisjZGVmaW5lIGhpZl9taWJfbmFtZShtaWIpIHsgSElGX01JQl9JRF8jI21pYiwgI21pYiB9LAor I2RlZmluZSBoaWZfbWliX2xpc3QgaGlmX21pYl9saXN0X2VudW0geyAtMSwgTlVMTCB9CisKK0RF Q0xBUkVfRVZFTlRfQ0xBU1MoaGlmX2RhdGEsCisJVFBfUFJPVE8oY29uc3Qgc3RydWN0IGhpZl9t c2cgKmhpZiwgaW50IHR4X2ZpbGxfbGV2ZWwsIGJvb2wgaXNfcmVjdiksCisJVFBfQVJHUyhoaWYs IHR4X2ZpbGxfbGV2ZWwsIGlzX3JlY3YpLAorCVRQX1NUUlVDVF9fZW50cnkoCisJCV9fZmllbGQo aW50LCB0eF9maWxsX2xldmVsKQorCQlfX2ZpZWxkKGludCwgbXNnX2lkKQorCQlfX2ZpZWxkKGNv bnN0IGNoYXIgKiwgbXNnX3R5cGUpCisJCV9fZmllbGQoaW50LCBtc2dfbGVuKQorCQlfX2ZpZWxk KGludCwgYnVmX2xlbikKKwkJX19maWVsZChpbnQsIGlmX2lkKQorCQlfX2ZpZWxkKGludCwgbWli KQorCQlfX2FycmF5KHU4LCBidWYsIDEyOCkKKwkpLAorCVRQX2Zhc3RfYXNzaWduKAorCQlpbnQg aGVhZGVyX2xlbjsKKworCQlfX2VudHJ5LT50eF9maWxsX2xldmVsID0gdHhfZmlsbF9sZXZlbDsK KwkJX19lbnRyeS0+bXNnX2xlbiA9IGxlMTZfdG9fY3B1KGhpZi0+bGVuKTsKKwkJX19lbnRyeS0+ bXNnX2lkID0gaGlmLT5pZDsKKwkJX19lbnRyeS0+aWZfaWQgPSBoaWYtPmludGVyZmFjZTsKKwkJ aWYgKGlzX3JlY3YpCisJCQlfX2VudHJ5LT5tc2dfdHlwZSA9IF9fZW50cnktPm1zZ19pZCAmIDB4 ODAgPyAiSU5EIiA6ICJDTkYiOworCQllbHNlCisJCQlfX2VudHJ5LT5tc2dfdHlwZSA9ICJSRVEi OworCQlpZiAoIWlzX3JlY3YgJiYKKwkJICAgIChfX2VudHJ5LT5tc2dfaWQgPT0gSElGX1JFUV9J RF9SRUFEX01JQiB8fAorCQkgICAgIF9fZW50cnktPm1zZ19pZCA9PSBISUZfUkVRX0lEX1dSSVRF X01JQikpIHsKKwkJCV9fZW50cnktPm1pYiA9IGxlMTZfdG9fY3B1cCgoX19sZTE2ICopaGlmLT5i b2R5KTsKKwkJCWhlYWRlcl9sZW4gPSA0OworCQl9IGVsc2UgeworCQkJX19lbnRyeS0+bWliID0g LTE7CisJCQloZWFkZXJfbGVuID0gMDsKKwkJfQorCQlfX2VudHJ5LT5idWZfbGVuID0gbWluX3Qo aW50LCBfX2VudHJ5LT5tc2dfbGVuLAorCQkJCQkgc2l6ZW9mKF9fZW50cnktPmJ1ZikpCisJCQkJ ICAgLSBzaXplb2Yoc3RydWN0IGhpZl9tc2cpIC0gaGVhZGVyX2xlbjsKKwkJbWVtY3B5KF9fZW50 cnktPmJ1ZiwgaGlmLT5ib2R5ICsgaGVhZGVyX2xlbiwgX19lbnRyeS0+YnVmX2xlbik7CisJKSwK KwlUUF9wcmludGsoIiVkOiVkOiVzXyVzJXMlczogJXMlcyAoJWQgYnl0ZXMpIiwKKwkJX19lbnRy eS0+dHhfZmlsbF9sZXZlbCwKKwkJX19lbnRyeS0+aWZfaWQsCisJCV9fZW50cnktPm1zZ190eXBl LAorCQlfX3ByaW50X3N5bWJvbGljKF9fZW50cnktPm1zZ19pZCwgaGlmX21zZ19saXN0KSwKKwkJ X19lbnRyeS0+bWliICE9IC0xID8gIi8iIDogIiIsCisJCV9fZW50cnktPm1pYiAhPSAtMSA/IF9f cHJpbnRfc3ltYm9saWMoX19lbnRyeS0+bWliLCBoaWZfbWliX2xpc3QpIDogIiIsCisJCV9fcHJp bnRfaGV4KF9fZW50cnktPmJ1ZiwgX19lbnRyeS0+YnVmX2xlbiksCisJCV9fZW50cnktPm1zZ19s ZW4gPiBzaXplb2YoX19lbnRyeS0+YnVmKSA/ICIgLi4uIiA6ICIiLAorCQlfX2VudHJ5LT5tc2df bGVuCisJKQorKTsKK0RFRklORV9FVkVOVChoaWZfZGF0YSwgaGlmX3NlbmQsCisJVFBfUFJPVE8o Y29uc3Qgc3RydWN0IGhpZl9tc2cgKmhpZiwgaW50IHR4X2ZpbGxfbGV2ZWwsIGJvb2wgaXNfcmVj diksCisJVFBfQVJHUyhoaWYsIHR4X2ZpbGxfbGV2ZWwsIGlzX3JlY3YpKTsKKyNkZWZpbmUgX3Ry YWNlX2hpZl9zZW5kKGhpZiwgdHhfZmlsbF9sZXZlbClcCisJdHJhY2VfaGlmX3NlbmQoaGlmLCB0 eF9maWxsX2xldmVsLCBmYWxzZSkKK0RFRklORV9FVkVOVChoaWZfZGF0YSwgaGlmX3JlY3YsCisJ VFBfUFJPVE8oY29uc3Qgc3RydWN0IGhpZl9tc2cgKmhpZiwgaW50IHR4X2ZpbGxfbGV2ZWwsIGJv b2wgaXNfcmVjdiksCisJVFBfQVJHUyhoaWYsIHR4X2ZpbGxfbGV2ZWwsIGlzX3JlY3YpKTsKKyNk ZWZpbmUgX3RyYWNlX2hpZl9yZWN2KGhpZiwgdHhfZmlsbF9sZXZlbClcCisJdHJhY2VfaGlmX3Jl Y3YoaGlmLCB0eF9maWxsX2xldmVsLCB0cnVlKQorCisjZGVmaW5lIHdmeF9yZWdfbGlzdF9lbnVt ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCXdmeF9yZWdfbmFtZShXRlhfUkVH X0NPTkZJRywgICAgICAgIkNPTkZJRyIpICAgICAgXAorCXdmeF9yZWdfbmFtZShXRlhfUkVHX0NP TlRST0wsICAgICAgIkNPTlRST0wiKSAgICAgXAorCXdmeF9yZWdfbmFtZShXRlhfUkVHX0lOX09V VF9RVUVVRSwgIlFVRVVFIikgICAgICAgXAorCXdmeF9yZWdfbmFtZShXRlhfUkVHX0FIQl9EUE9S VCwgICAgIkFIQiIpICAgICAgICAgXAorCXdmeF9yZWdfbmFtZShXRlhfUkVHX0JBU0VfQUREUiwg ICAgIkJBU0VfQUREUiIpICAgXAorCXdmeF9yZWdfbmFtZShXRlhfUkVHX1NSQU1fRFBPUlQsICAg IlNSQU0iKSAgICAgICAgXAorCXdmeF9yZWdfbmFtZShXRlhfUkVHX1NFVF9HRU5fUl9XLCAgIlNF VF9HRU5fUl9XIikgXAorCXdmeF9yZWdfbmFtZShXRlhfUkVHX0ZSQU1FX09VVCwgICAgIkZSQU1F X09VVCIpCisKKyN1bmRlZiB3ZnhfcmVnX25hbWUKKyNkZWZpbmUgd2Z4X3JlZ19uYW1lKHN5bSwg bmFtZSkgVFJBQ0VfREVGSU5FX0VOVU0oc3ltKTsKK3dmeF9yZWdfbGlzdF9lbnVtCisjdW5kZWYg d2Z4X3JlZ19uYW1lCisjZGVmaW5lIHdmeF9yZWdfbmFtZShzeW0sIG5hbWUpIHsgc3ltLCBuYW1l IH0sCisjZGVmaW5lIHdmeF9yZWdfbGlzdCB3ZnhfcmVnX2xpc3RfZW51bSB7IC0xLCBOVUxMIH0K KworREVDTEFSRV9FVkVOVF9DTEFTUyhpb19kYXRhLAorCVRQX1BST1RPKGludCByZWcsIGludCBh ZGRyLCBjb25zdCB2b2lkICppb19idWYsIHNpemVfdCBsZW4pLAorCVRQX0FSR1MocmVnLCBhZGRy LCBpb19idWYsIGxlbiksCisJVFBfU1RSVUNUX19lbnRyeSgKKwkJX19maWVsZChpbnQsIHJlZykK KwkJX19maWVsZChpbnQsIGFkZHIpCisJCV9fZmllbGQoaW50LCBtc2dfbGVuKQorCQlfX2ZpZWxk KGludCwgYnVmX2xlbikKKwkJX19hcnJheSh1OCwgYnVmLCAzMikKKwkJX19hcnJheSh1OCwgYWRk cl9zdHIsIDEwKQorCSksCisJVFBfZmFzdF9hc3NpZ24oCisJCV9fZW50cnktPnJlZyA9IHJlZzsK KwkJX19lbnRyeS0+YWRkciA9IGFkZHI7CisJCV9fZW50cnktPm1zZ19sZW4gPSBsZW47CisJCV9f ZW50cnktPmJ1Zl9sZW4gPSBtaW5fdChpbnQsIHNpemVvZihfX2VudHJ5LT5idWYpLAorCQkJCQkg X19lbnRyeS0+bXNnX2xlbik7CisJCW1lbWNweShfX2VudHJ5LT5idWYsIGlvX2J1ZiwgX19lbnRy eS0+YnVmX2xlbik7CisJCWlmIChhZGRyID49IDApCisJCQlzbnByaW50ZihfX2VudHJ5LT5hZGRy X3N0ciwgMTAsICIvJTA4eCIsIGFkZHIpOworCQllbHNlCisJCQlfX2VudHJ5LT5hZGRyX3N0clsw XSA9IDA7CisJKSwKKwlUUF9wcmludGsoIiVzJXM6ICVzJXMgKCVkIGJ5dGVzKSIsCisJCV9fcHJp bnRfc3ltYm9saWMoX19lbnRyeS0+cmVnLCB3ZnhfcmVnX2xpc3QpLAorCQlfX2VudHJ5LT5hZGRy X3N0ciwKKwkJX19wcmludF9oZXgoX19lbnRyeS0+YnVmLCBfX2VudHJ5LT5idWZfbGVuKSwKKwkJ X19lbnRyeS0+bXNnX2xlbiA+IHNpemVvZihfX2VudHJ5LT5idWYpID8gIiAuLi4iIDogIiIsCisJ CV9fZW50cnktPm1zZ19sZW4KKwkpCispOworREVGSU5FX0VWRU5UKGlvX2RhdGEsIGlvX3dyaXRl LAorCVRQX1BST1RPKGludCByZWcsIGludCBhZGRyLCBjb25zdCB2b2lkICppb19idWYsIHNpemVf dCBsZW4pLAorCVRQX0FSR1MocmVnLCBhZGRyLCBpb19idWYsIGxlbikpOworI2RlZmluZSBfdHJh Y2VfaW9faW5kX3dyaXRlKHJlZywgYWRkciwgaW9fYnVmLCBsZW4pXAorCXRyYWNlX2lvX3dyaXRl KHJlZywgYWRkciwgaW9fYnVmLCBsZW4pCisjZGVmaW5lIF90cmFjZV9pb193cml0ZShyZWcsIGlv X2J1ZiwgbGVuKSB0cmFjZV9pb193cml0ZShyZWcsIC0xLCBpb19idWYsIGxlbikKK0RFRklORV9F VkVOVChpb19kYXRhLCBpb19yZWFkLAorCVRQX1BST1RPKGludCByZWcsIGludCBhZGRyLCBjb25z dCB2b2lkICppb19idWYsIHNpemVfdCBsZW4pLAorCVRQX0FSR1MocmVnLCBhZGRyLCBpb19idWYs IGxlbikpOworI2RlZmluZSBfdHJhY2VfaW9faW5kX3JlYWQocmVnLCBhZGRyLCBpb19idWYsIGxl bilcCisJdHJhY2VfaW9fcmVhZChyZWcsIGFkZHIsIGlvX2J1ZiwgbGVuKQorI2RlZmluZSBfdHJh Y2VfaW9fcmVhZChyZWcsIGlvX2J1ZiwgbGVuKSB0cmFjZV9pb19yZWFkKHJlZywgLTEsIGlvX2J1 ZiwgbGVuKQorCitERUNMQVJFX0VWRU5UX0NMQVNTKGlvX2RhdGEzMiwKKwlUUF9QUk9UTyhpbnQg cmVnLCBpbnQgYWRkciwgdTMyIHZhbCksCisJVFBfQVJHUyhyZWcsIGFkZHIsIHZhbCksCisJVFBf U1RSVUNUX19lbnRyeSgKKwkJX19maWVsZChpbnQsIHJlZykKKwkJX19maWVsZChpbnQsIGFkZHIp CisJCV9fZmllbGQoaW50LCB2YWwpCisJCV9fYXJyYXkodTgsIGFkZHJfc3RyLCAxMCkKKwkpLAor CVRQX2Zhc3RfYXNzaWduKAorCQlfX2VudHJ5LT5yZWcgPSByZWc7CisJCV9fZW50cnktPmFkZHIg PSBhZGRyOworCQlfX2VudHJ5LT52YWwgPSB2YWw7CisJCWlmIChhZGRyID49IDApCisJCQlzbnBy aW50ZihfX2VudHJ5LT5hZGRyX3N0ciwgMTAsICIvJTA4eCIsIGFkZHIpOworCQllbHNlCisJCQlf X2VudHJ5LT5hZGRyX3N0clswXSA9IDA7CisJKSwKKwlUUF9wcmludGsoIiVzJXM6ICUwOHgiLAor CQlfX3ByaW50X3N5bWJvbGljKF9fZW50cnktPnJlZywgd2Z4X3JlZ19saXN0KSwKKwkJX19lbnRy eS0+YWRkcl9zdHIsCisJCV9fZW50cnktPnZhbAorCSkKKyk7CitERUZJTkVfRVZFTlQoaW9fZGF0 YTMyLCBpb193cml0ZTMyLAorCVRQX1BST1RPKGludCByZWcsIGludCBhZGRyLCB1MzIgdmFsKSwK KwlUUF9BUkdTKHJlZywgYWRkciwgdmFsKSk7CisjZGVmaW5lIF90cmFjZV9pb19pbmRfd3JpdGUz MihyZWcsIGFkZHIsIHZhbCkgdHJhY2VfaW9fd3JpdGUzMihyZWcsIGFkZHIsIHZhbCkKKyNkZWZp bmUgX3RyYWNlX2lvX3dyaXRlMzIocmVnLCB2YWwpIHRyYWNlX2lvX3dyaXRlMzIocmVnLCAtMSwg dmFsKQorREVGSU5FX0VWRU5UKGlvX2RhdGEzMiwgaW9fcmVhZDMyLAorCVRQX1BST1RPKGludCBy ZWcsIGludCBhZGRyLCB1MzIgdmFsKSwKKwlUUF9BUkdTKHJlZywgYWRkciwgdmFsKSk7CisjZGVm aW5lIF90cmFjZV9pb19pbmRfcmVhZDMyKHJlZywgYWRkciwgdmFsKSB0cmFjZV9pb19yZWFkMzIo cmVnLCBhZGRyLCB2YWwpCisjZGVmaW5lIF90cmFjZV9pb19yZWFkMzIocmVnLCB2YWwpIHRyYWNl X2lvX3JlYWQzMihyZWcsIC0xLCB2YWwpCisKK0RFQ0xBUkVfRVZFTlRfQ0xBU1MocGlnZ3liYWNr LAorCVRQX1BST1RPKHUzMiB2YWwsIGJvb2wgaWdub3JlZCksCisJVFBfQVJHUyh2YWwsIGlnbm9y ZWQpLAorCVRQX1NUUlVDVF9fZW50cnkoCisJCV9fZmllbGQoaW50LCB2YWwpCisJCV9fZmllbGQo Ym9vbCwgaWdub3JlZCkKKwkpLAorCVRQX2Zhc3RfYXNzaWduKAorCQlfX2VudHJ5LT52YWwgPSB2 YWw7CisJCV9fZW50cnktPmlnbm9yZWQgPSBpZ25vcmVkOworCSksCisJVFBfcHJpbnRrKCJDT05U Uk9MOiAlMDh4JXMiLAorCQlfX2VudHJ5LT52YWwsCisJCV9fZW50cnktPmlnbm9yZWQgPyAiIChp Z25vcmVkKSIgOiAiIgorCSkKKyk7CitERUZJTkVfRVZFTlQocGlnZ3liYWNrLCBwaWdneWJhY2ss CisJVFBfUFJPVE8odTMyIHZhbCwgYm9vbCBpZ25vcmVkKSwKKwlUUF9BUkdTKHZhbCwgaWdub3Jl ZCkpOworI2RlZmluZSBfdHJhY2VfcGlnZ3liYWNrKHZhbCwgaWdub3JlZCkgdHJhY2VfcGlnZ3li YWNrKHZhbCwgaWdub3JlZCkKKworVFJBQ0VfRVZFTlQoYmhfc3RhdHMsCisJVFBfUFJPVE8oaW50 IGluZCwgaW50IHJlcSwgaW50IGNuZiwgaW50IGJ1c3ksIGJvb2wgcmVsZWFzZSksCisJVFBfQVJH UyhpbmQsIHJlcSwgY25mLCBidXN5LCByZWxlYXNlKSwKKwlUUF9TVFJVQ1RfX2VudHJ5KAorCQlf X2ZpZWxkKGludCwgaW5kKQorCQlfX2ZpZWxkKGludCwgcmVxKQorCQlfX2ZpZWxkKGludCwgY25m KQorCQlfX2ZpZWxkKGludCwgYnVzeSkKKwkJX19maWVsZChib29sLCByZWxlYXNlKQorCSksCisJ VFBfZmFzdF9hc3NpZ24oCisJCV9fZW50cnktPmluZCA9IGluZDsKKwkJX19lbnRyeS0+cmVxID0g cmVxOworCQlfX2VudHJ5LT5jbmYgPSBjbmY7CisJCV9fZW50cnktPmJ1c3kgPSBidXN5OworCQlf X2VudHJ5LT5yZWxlYXNlID0gcmVsZWFzZTsKKwkpLAorCVRQX3ByaW50aygiSU5EL1JFUS9DTkY6 JTNkLyUzZC8lM2QsIFJFUSBpbiBwcm9ncmVzczolM2QsIFdVUDogJXMiLAorCQlfX2VudHJ5LT5p bmQsCisJCV9fZW50cnktPnJlcSwKKwkJX19lbnRyeS0+Y25mLAorCQlfX2VudHJ5LT5idXN5LAor CQlfX2VudHJ5LT5yZWxlYXNlID8gInJlbGVhc2UiIDogImtlZXAiCisJKQorKTsKKyNkZWZpbmUg X3RyYWNlX2JoX3N0YXRzKGluZCwgcmVxLCBjbmYsIGJ1c3ksIHJlbGVhc2UpXAorCXRyYWNlX2Jo X3N0YXRzKGluZCwgcmVxLCBjbmYsIGJ1c3ksIHJlbGVhc2UpCisKK1RSQUNFX0VWRU5UKHR4X3N0 YXRzLAorCVRQX1BST1RPKGNvbnN0IHN0cnVjdCBoaWZfY25mX3R4ICp0eF9jbmYsIGNvbnN0IHN0 cnVjdCBza19idWZmICpza2IsCisJCSBpbnQgZGVsYXkpLAorCVRQX0FSR1ModHhfY25mLCBza2Is IGRlbGF5KSwKKwlUUF9TVFJVQ1RfX2VudHJ5KAorCQlfX2ZpZWxkKGludCwgcGt0X2lkKQorCQlf X2ZpZWxkKGludCwgZGVsYXlfbWVkaWEpCisJCV9fZmllbGQoaW50LCBkZWxheV9xdWV1ZSkKKwkJ X19maWVsZChpbnQsIGRlbGF5X2Z3KQorCQlfX2ZpZWxkKGludCwgYWNrX2ZhaWx1cmVzKQorCQlf X2ZpZWxkKGludCwgZmxhZ3MpCisJCV9fYXJyYXkoaW50LCByYXRlLCA0KQorCQlfX2FycmF5KGlu dCwgdHhfY291bnQsIDQpCisJKSwKKwlUUF9mYXN0X2Fzc2lnbigKKwkJLyogS2VlcCBzeW5jIHdp dGggd2Z4X3JhdGVzIGRlZmluaXRpb24gaW4gbWFpbi5jICovCisJCXN0YXRpYyBjb25zdCBpbnQg aHdfcmF0ZVtdID0geyAwLCAxLCAyLCAzLCA2LCA3LCA4LCA5LAorCQkJCQkgICAgICAgMTAsIDEx LCAxMiwgMTMgfTsKKwkJY29uc3Qgc3RydWN0IGllZWU4MDIxMV90eF9pbmZvICp0eF9pbmZvID0K KwkJCShjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3R4X2luZm8gKilza2ItPmNiOworCQljb25zdCBz dHJ1Y3QgaWVlZTgwMjExX3R4X3JhdGUgKnJhdGVzID0gdHhfaW5mby0+ZHJpdmVyX3JhdGVzOwor CQlpbnQgaTsKKworCQlfX2VudHJ5LT5wa3RfaWQgPSB0eF9jbmYtPnBhY2tldF9pZDsKKwkJX19l bnRyeS0+ZGVsYXlfbWVkaWEgPSBsZTMyX3RvX2NwdSh0eF9jbmYtPm1lZGlhX2RlbGF5KTsKKwkJ X19lbnRyeS0+ZGVsYXlfcXVldWUgPSBsZTMyX3RvX2NwdSh0eF9jbmYtPnR4X3F1ZXVlX2RlbGF5 KTsKKwkJX19lbnRyeS0+ZGVsYXlfZncgPSBkZWxheTsKKwkJX19lbnRyeS0+YWNrX2ZhaWx1cmVz ID0gdHhfY25mLT5hY2tfZmFpbHVyZXM7CisJCWlmICghdHhfY25mLT5zdGF0dXMgfHwgX19lbnRy eS0+YWNrX2ZhaWx1cmVzKQorCQkJX19lbnRyeS0+YWNrX2ZhaWx1cmVzICs9IDE7CisKKwkJZm9y IChpID0gMDsgaSA8IElFRUU4MDIxMV9OVU1fQUNTOyBpKyspIHsKKwkJCWlmIChyYXRlc1swXS5m bGFncyAmIElFRUU4MDIxMV9UWF9SQ19NQ1MpCisJCQkJX19lbnRyeS0+cmF0ZVtpXSA9IHJhdGVz W2ldLmlkeDsKKwkJCWVsc2UKKwkJCQlfX2VudHJ5LT5yYXRlW2ldID0gaHdfcmF0ZVtyYXRlc1tp XS5pZHhdOworCQkJX19lbnRyeS0+dHhfY291bnRbaV0gPSByYXRlc1tpXS5jb3VudDsKKwkJfQor CQlfX2VudHJ5LT5mbGFncyA9IDA7CisJCWlmIChyYXRlc1swXS5mbGFncyAmIElFRUU4MDIxMV9U WF9SQ19NQ1MpCisJCQlfX2VudHJ5LT5mbGFncyB8PSAweDAxOworCQlpZiAocmF0ZXNbMF0uZmxh Z3MgJiBJRUVFODAyMTFfVFhfUkNfU0hPUlRfR0kpCisJCQlfX2VudHJ5LT5mbGFncyB8PSAweDAy OworCQlpZiAocmF0ZXNbMF0uZmxhZ3MgJiBJRUVFODAyMTFfVFhfUkNfR1JFRU5fRklFTEQpCisJ CQlfX2VudHJ5LT5mbGFncyB8PSAweDA0OworCQlpZiAocmF0ZXNbMF0uZmxhZ3MgJiBJRUVFODAy MTFfVFhfUkNfVVNFX1JUU19DVFMpCisJCQlfX2VudHJ5LT5mbGFncyB8PSAweDA4OworCQlpZiAo dHhfaW5mby0+ZmxhZ3MgJiBJRUVFODAyMTFfVFhfQ1RMX1NFTkRfQUZURVJfRFRJTSkKKwkJCV9f ZW50cnktPmZsYWdzIHw9IDB4MTA7CisJCWlmICh0eF9jbmYtPnN0YXR1cykKKwkJCV9fZW50cnkt PmZsYWdzIHw9IDB4MjA7CisJCWlmICh0eF9jbmYtPnN0YXR1cyA9PSBISUZfU1RBVFVTX1RYX0ZB SUxfUkVRVUVVRSkKKwkJCV9fZW50cnktPmZsYWdzIHw9IDB4NDA7CisJKSwKKwlUUF9wcmludGso InBhY2tldCBJRDogJTA4eCwgcmF0ZSBwb2xpY3k6ICVzICVkfCVkICVkfCVkICVkfCVkICVkfCVk IC0+ICVkIGF0dGVtcHQsIERlbGF5cyBtZWRpYS9xdWV1ZS90b3RhbDogJTRkdXMvJTRkdXMvJTRk dXMiLAorCQlfX2VudHJ5LT5wa3RfaWQsCisJCV9fcHJpbnRfZmxhZ3MoX19lbnRyeS0+ZmxhZ3Ms IE5VTEwsCisJCQl7IDB4MDEsICJNIiB9LCB7IDB4MDIsICJTIiB9LCB7IDB4MDQsICJHIiB9LAor CQkJeyAweDA4LCAiUiIgfSwgeyAweDEwLCAiRCIgfSwgeyAweDIwLCAiRiIgfSwKKwkJCXsgMHg0 MCwgIlEiIH0pLAorCQlfX2VudHJ5LT5yYXRlWzBdLAorCQlfX2VudHJ5LT50eF9jb3VudFswXSwK KwkJX19lbnRyeS0+cmF0ZVsxXSwKKwkJX19lbnRyeS0+dHhfY291bnRbMV0sCisJCV9fZW50cnkt PnJhdGVbMl0sCisJCV9fZW50cnktPnR4X2NvdW50WzJdLAorCQlfX2VudHJ5LT5yYXRlWzNdLAor CQlfX2VudHJ5LT50eF9jb3VudFszXSwKKwkJX19lbnRyeS0+YWNrX2ZhaWx1cmVzLAorCQlfX2Vu dHJ5LT5kZWxheV9tZWRpYSwKKwkJX19lbnRyeS0+ZGVsYXlfcXVldWUsCisJCV9fZW50cnktPmRl bGF5X2Z3CisJKQorKTsKKyNkZWZpbmUgX3RyYWNlX3R4X3N0YXRzKHR4X2NuZiwgc2tiLCBkZWxh eSkgdHJhY2VfdHhfc3RhdHModHhfY25mLCBza2IsIGRlbGF5KQorCitUUkFDRV9FVkVOVChxdWV1 ZXNfc3RhdHMsCisJVFBfUFJPVE8oc3RydWN0IHdmeF9kZXYgKndkZXYsIGNvbnN0IHN0cnVjdCB3 ZnhfcXVldWUgKmVsZWN0ZWRfcXVldWUpLAorCVRQX0FSR1Mod2RldiwgZWxlY3RlZF9xdWV1ZSks CisJVFBfU1RSVUNUX19lbnRyeSgKKwkJX19maWVsZChpbnQsIHZpZl9pZCkKKwkJX19maWVsZChp bnQsIHF1ZXVlX2lkKQorCQlfX2FycmF5KGludCwgaHcsIElFRUU4MDIxMV9OVU1fQUNTICogMikK KwkJX19hcnJheShpbnQsIGRydiwgSUVFRTgwMjExX05VTV9BQ1MgKiAyKQorCQlfX2FycmF5KGlu dCwgY2FiLCBJRUVFODAyMTFfTlVNX0FDUyAqIDIpCisJKSwKKwlUUF9mYXN0X2Fzc2lnbigKKwkJ Y29uc3Qgc3RydWN0IHdmeF9xdWV1ZSAqcXVldWU7CisJCXN0cnVjdCB3ZnhfdmlmICp3dmlmOwor CQlpbnQgaSwgajsKKworCQlmb3IgKGogPSAwOyBqIDwgSUVFRTgwMjExX05VTV9BQ1MgKiAyOyBq KyspIHsKKwkJCV9fZW50cnktPmh3W2pdID0gLTE7CisJCQlfX2VudHJ5LT5kcnZbal0gPSAtMTsK KwkJCV9fZW50cnktPmNhYltqXSA9IC0xOworCQl9CisJCV9fZW50cnktPnZpZl9pZCA9IC0xOwor CQlfX2VudHJ5LT5xdWV1ZV9pZCA9IC0xOworCQl3dmlmID0gTlVMTDsKKwkJd2hpbGUgKCh3dmlm ID0gd3ZpZl9pdGVyYXRlKHdkZXYsIHd2aWYpKSAhPSBOVUxMKSB7CisJCQlmb3IgKGkgPSAwOyBp IDwgSUVFRTgwMjExX05VTV9BQ1M7IGkrKykgeworCQkJCWogPSB3dmlmLT5pZCAqIElFRUU4MDIx MV9OVU1fQUNTICsgaTsKKwkJCQlXQVJOX09OKGogPj0gSUVFRTgwMjExX05VTV9BQ1MgKiAyKTsK KwkJCQlxdWV1ZSA9ICZ3dmlmLT50eF9xdWV1ZVtpXTsKKwkJCQlfX2VudHJ5LT5od1tqXSA9IGF0 b21pY19yZWFkKCZxdWV1ZS0+cGVuZGluZ19mcmFtZXMpOworCQkJCV9fZW50cnktPmRydltqXSA9 IHNrYl9xdWV1ZV9sZW4oJnF1ZXVlLT5ub3JtYWwpOworCQkJCV9fZW50cnktPmNhYltqXSA9IHNr Yl9xdWV1ZV9sZW4oJnF1ZXVlLT5jYWIpOworCQkJCWlmIChxdWV1ZSA9PSBlbGVjdGVkX3F1ZXVl KSB7CisJCQkJCV9fZW50cnktPnZpZl9pZCA9IHd2aWYtPmlkOworCQkJCQlfX2VudHJ5LT5xdWV1 ZV9pZCA9IGk7CisJCQkJfQorCQkJfQorCQl9CisJKSwKKwlUUF9wcmludGsoImdvdCBza2IgZnJv bSAlZC8lZCwgcGVuZC4gaHcvbm9ybS9jYWI6IFsgJWQvJWQvJWQgJWQvJWQvJWQgJWQvJWQvJWQg JWQvJWQvJWQgXSBbICVkLyVkLyVkICVkLyVkLyVkICVkLyVkLyVkICVkLyVkLyVkIF0iLAorCQlf X2VudHJ5LT52aWZfaWQsIF9fZW50cnktPnF1ZXVlX2lkLAorCQlfX2VudHJ5LT5od1swXSwgX19l bnRyeS0+ZHJ2WzBdLCBfX2VudHJ5LT5jYWJbMF0sCisJCV9fZW50cnktPmh3WzFdLCBfX2VudHJ5 LT5kcnZbMV0sIF9fZW50cnktPmNhYlsxXSwKKwkJX19lbnRyeS0+aHdbMl0sIF9fZW50cnktPmRy dlsyXSwgX19lbnRyeS0+Y2FiWzJdLAorCQlfX2VudHJ5LT5od1szXSwgX19lbnRyeS0+ZHJ2WzNd LCBfX2VudHJ5LT5jYWJbM10sCisJCV9fZW50cnktPmh3WzRdLCBfX2VudHJ5LT5kcnZbNF0sIF9f ZW50cnktPmNhYls0XSwKKwkJX19lbnRyeS0+aHdbNV0sIF9fZW50cnktPmRydls1XSwgX19lbnRy eS0+Y2FiWzVdLAorCQlfX2VudHJ5LT5od1s2XSwgX19lbnRyeS0+ZHJ2WzZdLCBfX2VudHJ5LT5j YWJbNl0sCisJCV9fZW50cnktPmh3WzddLCBfX2VudHJ5LT5kcnZbN10sIF9fZW50cnktPmNhYls3 XQorCSkKKyk7CisKKyNlbmRpZgorCisvKiBUaGlzIHBhcnQgbXVzdCBiZSBvdXRzaWRlIHByb3Rl Y3Rpb24gKi8KKyN1bmRlZiBUUkFDRV9JTkNMVURFX1BBVEgKKyNkZWZpbmUgVFJBQ0VfSU5DTFVE RV9QQVRIIC4KKyN1bmRlZiBUUkFDRV9JTkNMVURFX0ZJTEUKKyNkZWZpbmUgVFJBQ0VfSU5DTFVE RV9GSUxFIHRyYWNlcworCisjaW5jbHVkZSA8dHJhY2UvZGVmaW5lX3RyYWNlLmg+Ci0tIAoyLjMw LjIKCg==