Received: by 2002:a05:7412:b10a:b0:f3:1519:9f41 with SMTP id az10csp759022rdb; Thu, 30 Nov 2023 18:56:52 -0800 (PST) X-Google-Smtp-Source: AGHT+IE5DAiiQF9H/24hkOWs13Gsc7zI1wQ0IaZUJvU7AMq3ExzOb1+kNKILsfPR5O6pUOzSnzDp X-Received: by 2002:a05:6870:a2d4:b0:1e9:ab99:6b7 with SMTP id w20-20020a056870a2d400b001e9ab9906b7mr28563040oak.3.1701399412654; Thu, 30 Nov 2023 18:56:52 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1701399412; cv=pass; d=google.com; s=arc-20160816; b=YfL9EbvWFnQb/2Z8sQJI4N/lDov+Xr5xEOB+1iuHqFTzmlzmuA2/ao5ywdRu/1XEvi 6LZ0z+kZHx7KWiyemDma7o40l20ELB8xVyifrGyfhy1bJHRxF05DuqZqROzBtbbEZhsR 9UkhfW5+TtsmZnfUwezWSS0tKGYdotMXk+tDc3l/6K3VavI6KqQ3Q06HT/DU8+alL1BK ReaV2ttC40D3RCilp4rPQGWb454pS4sKBe719h+almKufRcWvB+Vx07YGl8tM1LydmBr TxvNorFxLyz3/bsABWeI0gX8pt8vlWkYbE7VIwgwcXqcrs2MQlbxcCgEaRDRyyZXwatR SEPw== 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 :content-id:content-language:accept-language:in-reply-to:references :message-id:date:thread-index:thread-topic:subject:cc:to:from :dkim-signature:dkim-signature; bh=lmqW45SyiMy70MFK20B11TTtjl/iFQK1sy08R+qa27k=; fh=QlgNRdSG7d/8DQ9RdhwpRDeqwmImaozYv2A+6s/iuqE=; b=cF2AVYd72qKR77evB8H4qNfnQaQtE5o+Quc8QESAiqf3bylpwwBJaot/ekRf5HVV7h AVq5vfTfsSWclEmcoxu0adLl6LMwH9yivmBTkONDAMVvMWGw0/G9tr50rrp5hpfywX3n IDTUpPnAjpG9dXjoN889E0tkNYC9r2hFGNQASBVM/hAa0Gzu3bDI+gmHC+vzCU1elovL VJkIv5SwzHy0RoZSuKoCCc8USKlUKDilS9imytE+KOJTUpAqO0dR3KW+4Bd50atfXF88 RqKIdxw5DGn2m3nSO/nImeHHpDhgvXsMuVZEg0MynoPQkyaubDTyPkKlbh4gYrIjga+N Sn/g== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=VOmnOzzI; dkim=pass header.i=@mediateko365.onmicrosoft.com header.s=selector2-mediateko365-onmicrosoft-com header.b=QU14gO0W; arc=pass (i=1 spf=pass spfdomain=mediatek.com dkim=pass dkdomain=mediatek.com dmarc=pass fromdomain=mediatek.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=mediatek.com Return-Path: Received: from agentk.vger.email (agentk.vger.email. [2620:137:e000::3:2]) by mx.google.com with ESMTPS id q33-20020a635061000000b005c622a6f3d8si2479792pgl.765.2023.11.30.18.56.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Nov 2023 18:56:52 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) client-ip=2620:137:e000::3:2; Authentication-Results: mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=VOmnOzzI; dkim=pass header.i=@mediateko365.onmicrosoft.com header.s=selector2-mediateko365-onmicrosoft-com header.b=QU14gO0W; arc=pass (i=1 spf=pass spfdomain=mediatek.com dkim=pass dkdomain=mediatek.com dmarc=pass fromdomain=mediatek.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=mediatek.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by agentk.vger.email (Postfix) with ESMTP id EBB1880DBAC9; Thu, 30 Nov 2023 18:56:48 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at agentk.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229904AbjLAC42 (ORCPT + 99 others); Thu, 30 Nov 2023 21:56:28 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34830 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229523AbjLAC41 (ORCPT ); Thu, 30 Nov 2023 21:56:27 -0500 Received: from mailgw01.mediatek.com (unknown [60.244.123.138]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 45F851715 for ; Thu, 30 Nov 2023 18:56:25 -0800 (PST) X-UUID: 355c0c748ff511eea33bb35ae8d461a2-20231201 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=MIME-Version:Content-Transfer-Encoding:Content-ID:Content-Type:In-Reply-To:References:Message-ID:Date:Subject:CC:To:From; bh=lmqW45SyiMy70MFK20B11TTtjl/iFQK1sy08R+qa27k=; b=VOmnOzzINdEYsPR0AfB3azevbJhrP0uCWL7o2mCQTlNLRuTG6KOkiSE//4tVfAfKV2kDLA4QZqc6vR7VNqPX/0TU1HKR3jbcr3vOYKioPIso8wkhP64e/I0ZpBcmsBnJOxJvmepZOrAU4g72hRoFvubdiaehL/tizpmREvxnsxQ=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.34,REQID:dbd94cb5-7f34-4678-8cef-0b0d61c3b7fb,IP:0,U RL:0,TC:0,Content:0,EDM:0,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTION: release,TS:0 X-CID-META: VersionHash:abefa75,CLOUDID:96634773-1bd3-4f48-b671-ada88705968c,B ulkID:nil,BulkQuantity:0,Recheck:0,SF:102,TC:nil,Content:0,EDM:-3,IP:nil,U RL:0,File:nil,Bulk:nil,QS:nil,BEC:nil,COL:0,OSI:0,OSA:0,AV:0,LES:1,SPR:NO, DKR:0,DKP:0,BRR:0,BRE:0 X-CID-BVR: 0 X-CID-BAS: 0,_,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR X-UUID: 355c0c748ff511eea33bb35ae8d461a2-20231201 Received: from mtkmbs14n1.mediatek.inc [(172.21.101.75)] by mailgw01.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 781351323; Fri, 01 Dec 2023 10:56:22 +0800 Received: from mtkmbs10n1.mediatek.inc (172.21.101.34) by mtkmbs10n2.mediatek.inc (172.21.101.183) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.26; Fri, 1 Dec 2023 10:56:21 +0800 Received: from APC01-PSA-obe.outbound.protection.outlook.com (172.21.101.237) by mtkmbs10n1.mediatek.inc (172.21.101.34) with Microsoft SMTP Server id 15.2.1118.26 via Frontend Transport; Fri, 1 Dec 2023 10:56:21 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fkV2RPmodIZ85PZNlRXe9HYI6x2Z+GhF/d1QljidPtpa5u0OJLoInPh7StZ4WxgYHn16kHDNI92rCsb8RQZd3oJytXuQzUQiT3Q8iT/pKpST7Ci7t60+fVS5Ri4ZRd29DEPehI0fzVjZQ8alGA9azJZW22HFKKUfhCQ8FqQdnqB0QvsLTZ96PHsgZbyHjU59se51Qp71DDbLB0eyYiwiGBUD5dlsCEcSxBU9OeF/q9FXnVNca/Hbr1cLMCv2zWSkja6B6ZhOr/IQcHfUIUUJj0WnltOwKl33LwrFfNNyYWshV7ze1uF3kGzkdliV6pV2+lFC0xYFlZ3T5NWRM2Vu2g== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=lmqW45SyiMy70MFK20B11TTtjl/iFQK1sy08R+qa27k=; b=a95ih402/a4GOXO89GhItx6s8nQDTstvFFUoddkCzLbc9IylmLvMKiPzhvwm9zStemZfMXe4gTzr5xix6anCeOEQ4X6DqCFMEqkafauDM8KEt9Dyfw0V53KMuh4b2SZDfNJqf2ccCuUcrnuzBwsHvaeJFLjsZbVUjwf5Sr66INSETtNfkYrXVWSYc/mRjrXAJexUi+BWVvkOiMgfPNYoSwA61t8K6C7/1n2Ot2KOREFqpgBprZ5J8NrnwtRcmDla9j1Ko9CVmlzJ+mrjU3uOqR3agfK54dvWQAtRROdEi7Ruh7fEsjDQoc0bzJ9CTfBPANABNbnen7nA0hKTDyMTBQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mediatek.com; dmarc=pass action=none header.from=mediatek.com; dkim=pass header.d=mediatek.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mediateko365.onmicrosoft.com; s=selector2-mediateko365-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lmqW45SyiMy70MFK20B11TTtjl/iFQK1sy08R+qa27k=; b=QU14gO0WwXSADhdCakX0OeQCo/f0sr19RYpjFeS0okuAdbVbsJOvafrpJoZ2bp9SN7UyNaIOmwwGNmVOe3Taoz4jdsO5o4pSmX3xH+z3QfsTDEtW0rF4BWKIqZ+jRv5CesUtQHyLb9BbJuGe3O0lygBg3q8Zgm2oqhHgFbZUlNI= Received: from TYZPR03MB6624.apcprd03.prod.outlook.com (2603:1096:400:1f4::13) by TYZPR03MB6134.apcprd03.prod.outlook.com (2603:1096:400:12d::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.24; Fri, 1 Dec 2023 02:56:18 +0000 Received: from TYZPR03MB6624.apcprd03.prod.outlook.com ([fe80::eb43:57cb:edfd:3762]) by TYZPR03MB6624.apcprd03.prod.outlook.com ([fe80::eb43:57cb:edfd:3762%6]) with mapi id 15.20.7046.024; Fri, 1 Dec 2023 02:56:18 +0000 From: =?utf-8?B?Q0sgSHUgKOiDoeS/iuWFiSk=?= To: =?utf-8?B?TWFjIFNoZW4gKOayiOS/iik=?= , "chunkuang.hu@kernel.org" , =?utf-8?B?Sml0YW8gU2hpICjnn7PorrDmtpsp?= , "daniel@ffwll.ch" , "p.zabel@pengutronix.de" , "airlied@gmail.com" , "matthias.bgg@gmail.com" , "angelogioacchino.delregno@collabora.com" CC: "dri-devel@lists.freedesktop.org" , "linux-kernel@vger.kernel.org" , "linux-mediatek@lists.infradead.org" , "linux-arm-kernel@lists.infradead.org" , =?utf-8?B?U2h1aWppbmcgTGkgKOadjuawtOmdmSk=?= Subject: Re: [PATCH] drm/mediatek/dp: Add the HDCP feature for DisplayPort Thread-Topic: [PATCH] drm/mediatek/dp: Add the HDCP feature for DisplayPort Thread-Index: AQHaHrPjdunoffcOCEGmErF8vNrJIrCTxoCA Date: Fri, 1 Dec 2023 02:56:17 +0000 Message-ID: <189eced48c7801b218ddd6d8bbe92209738a975f.camel@mediatek.com> References: <20231124085346.26602-1-mac.shen@mediatek.com> In-Reply-To: <20231124085346.26602-1-mac.shen@mediatek.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=mediatek.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: TYZPR03MB6624:EE_|TYZPR03MB6134:EE_ x-ms-office365-filtering-correlation-id: 9aec6f9e-ccad-4630-87cc-08dbf2191734 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: adQEIiQzcyfu2H+YsZAHrYFmKFXO/MJ1H0gKG26cXhU/QBOhUQYNajR+Orx0ujVWZXJ2k8tHDS44LfOVJKRdoeiPK1SuFi84tYOALRwhidlexZ13/QH6DxxVRgH3XY0dHgmQwiO7FxVXnta8758QrQi/HaBJ7fdbBpfA5wFeeI4cTZfNnrqL37kLaT5JsSoDZ9VEfTycdu6ZmTi5+hT1vDoHqjzfCBjRPloKFkqbEkcQe+EV+7ZUisdQlg+4/+tGafAxXYRcskiPkA02Y9jn2+/D2+Nfd/MeYs0bmsVwDHIaWaSwlqsRYm45VDu+sMf/9cQVC/lo7T+YtnwxlNV75fNrAZkuKKeiCJ4MWqhDA5gEB/EeX8RbhotKcSlpZ9UHYLuK2U/ghUz4BSz3Ct4MMhYExXk/+Idrgmzg47bYIDOPxlxo+Fl6wEbiQJjJFh5JNbVl4KkTJhzcpd0MEW5aHD+YQFGUclYSWrajgGRe9QsfGdW6kESSlQj3y/xtjJ0G7BFNpgoLPnvtxs/tDAcEF/ir5iTDHCjEoxSQqbbjDxT8sWlm9ts+nQ/nHG+Pqh51sbNrWQN6G/kaISGWpa7WV/ndsz0nRAkJPyQ0POcn9lllJC1vQxTdfiG2jYU+NaZ56BRE4dDg5vRVMVxifbaDNRp3GBq1dwrLOlhdKiXUhE4= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYZPR03MB6624.apcprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(376002)(396003)(136003)(366004)(346002)(230922051799003)(1800799012)(451199024)(186009)(64100799003)(83380400001)(26005)(2616005)(6506007)(6512007)(107886003)(38100700002)(122000001)(6486002)(71200400001)(478600001)(66476007)(76116006)(8936002)(66446008)(66556008)(66946007)(54906003)(64756008)(110136005)(8676002)(316002)(4326008)(2906002)(85182001)(36756003)(41300700001)(38070700009)(4001150100001)(86362001)(30864003)(7416002)(5660300002)(579004)(559001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?djJ2aVZEVmdqNVFITU5OSGxIMytDclZ1a2FpL1k2RnZIdnJHUmVaKzMrNnY1?= =?utf-8?B?YmNrNDQrekM4eHpoTms3b2VPaGxsQ2dqNWxrdHNXaEc0aHFxenZzdWk3SEs2?= =?utf-8?B?RVVJbUlMZXVVYjNlWThiay8rZXoxM3NjTFgyTkF0ZHR5aU9FY3BVck5GaHY2?= =?utf-8?B?TVBQSTJiVTRlUFZKRXBWVlZKcUlRZ29KOUJGQW10OWtwQnJBOTNBTFBSNWlY?= =?utf-8?B?Um5LUFZqdmFJYU1MZ3B0RFZGNHYyYmxVRmpUa2pDUkVLM3djRldvWTI1N05M?= =?utf-8?B?c3RxY25ERzIyanZBY0FVWmRiSFRncnFaSnlWeHpIREdXbW1CSGNrczNDVHVr?= =?utf-8?B?NFB0V1ZoWlhsT0ZVZmVwOE9NenlzcjY5Rjh4dXRDU3duczh6Z1ZOMDJ3Q3hW?= =?utf-8?B?TmFVcW5Jd04yaXNteVE2TUtNYUFsUlpVVGJuRE5EWmw4N1AvQ3NTWVhlT1ox?= =?utf-8?B?UHdabkFhRmpvRGFUUkFTaFdacXg2Y2NwakF1RmMwTkJDT3VtVU82QjQvanc5?= =?utf-8?B?RUlZWjFmVStCcDVHT0lETFIrR1BHUGQxaWRzQm1TcWl2dVJxbXBLcmNqN1Zt?= =?utf-8?B?R1pDeFVEOExQU2E5dGtkbWtveDV6RlVhc1R2WXFKbExIY1U5WW4xQ0V6ZUZH?= =?utf-8?B?UU9tSHpIRVFwMng4MzBzSDNyaDNUYWZSVVhqZC9KMTE0L09vSWFpVkxRVU1V?= =?utf-8?B?cGI2a21KMkI2ZnIzZHFWQkd5TzVucS91Uzd4czl0bzRWVS92ZjhVdUQ3dHVE?= =?utf-8?B?VDdlMDIzZWE5VlRhNzdqd1RIYzdreGdqbEJxdldmSU92WndHcFFnTDgvSmZv?= =?utf-8?B?ckFZd29EZ1BibTdGWHdXc1l1cDRLZmczVmExNk1HQnc1dWJ1L2Q3MHJhc2VF?= =?utf-8?B?K1ZIM0NNYTdNMUxvdDFCV1VhRE1rVVZORWZpUDZNSjJFZnoxcFU0d3ZwU0RY?= =?utf-8?B?Wkh4RDl0NUZvNWNiZ2xqYjRBWVpDVkMway9hZE8xdWNCOEpVaTYxclo1Q3N4?= =?utf-8?B?YXVFWk1rVFowcnllTDlIVytIbE9QSEk5OS9KdC9yZkhqTTFXTnBHd2gzVTkx?= =?utf-8?B?TWFISWJXVDVYYmhGMUd4WTU1UmxPYzZyKzVOcUl3TkxteWVsaTlFMklBNGNE?= =?utf-8?B?OVJ0M3hIMHFCSWZxbUlZTkhKd0l2Z0dyTGF4YjRCQ0pUY3g0LzZUMGM1VkZr?= =?utf-8?B?TnR6US9HTnVZVyt5eFlMQU5MWVlhMDNDMHlQd3Fjc1JlSkQxUDRuOWNQZFZx?= =?utf-8?B?UW9PeFJaSUExa1BITnpiOC9BOFkwdW5mdTZ1UnMxYUtTOEpqWmhoTTQwNUdU?= =?utf-8?B?NUlKdE9UVGV1YWFFMkJqdVJJejNkZ0xtSGwwZGtic010M0ExMkZJQit0RTZ0?= =?utf-8?B?bDNiT095ekZUT2xZRnZqWXdjMEtuMmZnQ0pLK1M4cy9pNjAxRUdMSjU2Z2hq?= =?utf-8?B?UGRvbEtNK3p3SEZCRGhyUzlqUVJDaFlYcEsxUWdxbEsyUklqTVBHNjdiMWk4?= =?utf-8?B?TjNHU2NtVHFuZjVPU3NXT2JXSlo5WDl6R0M0SFVGajBIYlFvZjFURDNtSXJH?= =?utf-8?B?cmx6a3EvWUE3azZyZ0lNSVM1UERMd0FQY1F3NE1IL0QyTlhjZ1ZpQmVFRm52?= =?utf-8?B?TlcxdWRTb0wrcnFtbUsrQmlzdHJBTDcwL1BhVWJNb3NuNEY4ajYzZ2lvSnh5?= =?utf-8?B?ek1EbEpTRDFZMVVLRExWYUdoSFZtUnQ5ZjV6ZEhQMk50bG1TSzBIbVByYlNj?= =?utf-8?B?UEFOdDhIK3JLRm5WdzNXdGU4ZXBOS1hqblVMeWpWZDRDU2VSYlA5QVc1anVC?= =?utf-8?B?UXBqelBGV0RUN0dLNzZZb2N2bWtlMTYrMEEyMVBnRUhiVlhFSS9YWXVVbTlC?= =?utf-8?B?a3JIT2o1bEdsTFBpUG1MTjNNaTZkSVk2bzg1Y2VGMTBDejFEaTkzcjc2RUpr?= =?utf-8?B?bjNQWEdzT0ZveXVpZ3Bqb2l2bXVKSUV5MSszTEl1YWo1OE1XNEZtRCtvOW40?= =?utf-8?B?aXNiTnlyRDRGcXFBOE51aUR5V2laYktUajNueTdIczFNYlJYZjNEdXJ1blZi?= =?utf-8?B?SHVoQUNCdXE0WHIvZjdKN3ZaY21YRjNTZllRM1pFbmVYL20rczd1eFFRRHhp?= =?utf-8?Q?dFpkb74brux9Tce0kbQnwcm+w?= Content-Type: text/plain; charset="utf-8" Content-ID: <328CA64C55403543A2817BE17A2984FE@apcprd03.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYZPR03MB6624.apcprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9aec6f9e-ccad-4630-87cc-08dbf2191734 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Dec 2023 02:56:18.0132 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a7687ede-7a6b-4ef6-bace-642f677fbe31 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: zaXFJj5g0m9jkMg+k20gtFJ/u8dEJNFcDG8pq8xHoP7vJnwIyvlCTxg82PGixEGbDmGd2AHbZzKRCGtEU9Hpdg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYZPR03MB6134 X-TM-AS-Product-Ver: SMEX-14.0.0.3152-9.1.1006-23728.005 X-TM-AS-Result: No-10--11.142400-8.000000 X-TMASE-MatchedRID: X4bcv0S75KnPaPH51LTU5Ca1MaKuob8PC/ExpXrHizxcKZwALwMGs8uj Rkt05a7cM2MQQW7DL3i3pOSQRQ7xBSh5A3bWOsippvwZ9GmdwDNzd7C7BtJobnYKvUPpVWTyhL9 xNXVrt1Q58CIn96icLYAMZqK+FQECHaQ9wyk4fkCVSBCoZUyqbH607foZgOWymP1Huhu1yDKEJh DQZFGcE++LVYRUUKckvTydVA5XJXl9fH3FmWLRlgl6XFGMlHnkju+GX08gELAUtdRZTmEaIQ1qT OnuhxNxM/mytEbEr6EWtHYG0pYW4NkrWtCrI2IZt1AhvyEKdj54AytT5SnoNOIpRqgiF5rtEwa0 +RTIVt3amH9tZ8PxXZv0guwR8q9Ir78SC5iivxzSBVVc2BozSlkMvWAuahr8+gD2vYtOFhgqtq5 d3cxkNSKPexmjvCwDUMDDH7/wb52Qv/g2BrW8Thl3NCYuhMPjWEj0s2bgYNY= X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No X-TMASE-Result: 10--11.142400-8.000000 X-TMASE-Version: SMEX-14.0.0.3152-9.1.1006-23728.005 X-TM-SNTS-SMTP: 06C1FC1CDE15B18C148082FC4C0A4109F6A2BE94681622B588F0FA014AF939ED2000:8 X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,UNPARSEABLE_RELAY autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on agentk.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (agentk.vger.email [0.0.0.0]); Thu, 30 Nov 2023 18:56:49 -0800 (PST) SGksIE1hYzoNCg0KT24gRnJpLCAyMDIzLTExLTI0IGF0IDE2OjUzICswODAwLCBtYWMuc2hlbiB3 cm90ZToNCj4gQWRkIHRlZSBjbGllbnQgYXBwbGljYXRpb24sIEhEQ1AgMS54IGFuZCAyLnggYXV0 aGVudGljYXRpb24gZm9yDQo+IERpc3BsYXlQb3J0DQo+IHRvIHN1cHBvcnQgdGhlIEhEQ1AgZmVh dHVyZS4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IG1hYy5zaGVuIDxtYWMuc2hlbkBtZWRpYXRlay5j b20+DQo+IA0KDQpbc25pcF0NCg0KPiArDQo+ICtpbnQgbWRydl9kcF90eF9oZGNwMl9mc20oc3Ry dWN0IG10a19oZGNwX2luZm8gKmhkY3BfaW5mbykNCj4gK3sNCj4gKwlzdGF0aWMgdTMyIHRpbWVv dXRfdmFsdWU7DQo+ICsJc3RhdGljIHU4IHByZV9tYWluOw0KPiArCXN0YXRpYyB1OCBwcmVfc3Vi Ow0KPiArCXN0YXRpYyB1MzIgcHJlX3RpbWU7DQo+ICsJaW50IGVycl9jb2RlID0gSERDUF9FUlJf Tk9ORTsNCj4gKwlib29sIHN0b3JlZCA9IGZhbHNlOw0KPiArCXUzMiB0aW1lOw0KPiArCWludCBy ZXQgPSAwOw0KPiArCWJvb2wgdG1wID0gZmFsc2U7DQo+ICsNCj4gKwlpZiAocHJlX21haW4gIT0g aGRjcF9pbmZvLT5oZGNwMl9pbmZvLmhkY3BfaGFuZGxlci5tYWluX3N0YXRlDQo+IHx8DQo+ICsJ ICAgIGhkY3BfaW5mby0+aGRjcDJfaW5mby5oZGNwX2hhbmRsZXIuc3ViX3N0YXRlICE9IHByZV9z dWIpIHsNCj4gKwkJRFBUWEhEQ1BNU0coIlBvcnQoTSA6IFMpPSAoJWQsICVkKSIsIGhkY3BfaW5m by0NCj4gPmhkY3AyX2luZm8uaGRjcF9oYW5kbGVyLm1haW5fc3RhdGUsDQo+ICsJCQkgICAgaGRj cF9pbmZvLQ0KPiA+aGRjcDJfaW5mby5oZGNwX2hhbmRsZXIuc3ViX3N0YXRlKTsNCj4gKwkJcHJl X21haW4gPSBoZGNwX2luZm8tDQo+ID5oZGNwMl9pbmZvLmhkY3BfaGFuZGxlci5tYWluX3N0YXRl Ow0KPiArCQlwcmVfc3ViID0gaGRjcF9pbmZvLT5oZGNwMl9pbmZvLmhkY3BfaGFuZGxlci5zdWJf c3RhdGU7DQo+ICsJfQ0KPiArDQo+ICsJc3dpdGNoIChoZGNwX2luZm8tPmhkY3AyX2luZm8uaGRj cF9oYW5kbGVyLm1haW5fc3RhdGUpIHsNCj4gKwljYXNlIEhEQ1AyX01TX0gxUDE6DQo+ICsJCXN3 aXRjaCAoaGRjcF9pbmZvLT5oZGNwMl9pbmZvLmhkY3BfaGFuZGxlci5zdWJfc3RhdGUpIHsNCj4g KwkJY2FzZSBIRENQMl9NU0dfWkVSTzoNCj4gKwkJCWJyZWFrOw0KPiArCQljYXNlIEhEQ1AyX01T R19BVVRIX0ZBSUw6DQo+ICsJCQlwcl9lcnIoIkhEQ1AyLnggQXV0aGVudGljYXRpb24gRmFpbFxu Iik7DQo+ICsJCQltZHJ2X2RwX3R4X2hkY3AyX2VuYWJsZV9hdXRoKGhkY3BfaW5mbywgZmFsc2Up Ow0KPiArCQkJaGRjcF9pbmZvLT5hdXRoX3N0YXR1cyA9IEFVVEhfRkFJTDsNCj4gKwkJCWJyZWFr Ow0KPiArCQl9DQo+ICsJCWJyZWFrOw0KPiArCWNhc2UgSERDUDJfTVNfQTBGMDoNCj4gKwkJc3dp dGNoIChoZGNwX2luZm8tPmhkY3AyX2luZm8uaGRjcF9oYW5kbGVyLnN1Yl9zdGF0ZSkgew0KPiAr CQljYXNlIEhEQ1AyX01TR19aRVJPOg0KPiArCQkJaWYgKGhkY3BfaW5mby0+aGRjcDJfaW5mby5l bmFibGUpIHsNCj4gKwkJCQltZHJ2X2RwX3R4X2hkY3AyX2luaXQoaGRjcF9pbmZvKTsNCj4gKwkJ CQltZHJ2X2RwX3R4X2hkY3AyX3NldF9zdGF0ZShoZGNwX2luZm8sDQo+IEhEQ1AyX01TX0ExRjEs DQo+ICsJCQkJCQkJICAgSERDUDJfTVNHX1pFDQo+IFJPKTsNCj4gKwkJCQlEUFRYSERDUE1TRygi U2luayBTdXBwb3J0IEhkY3AyeCFcbiIpOw0KPiArCQkJfSBlbHNlIHsNCj4gKwkJCQltZHJ2X2Rw X3R4X2hkY3AyX3NldF9zdGF0ZShoZGNwX2luZm8sDQo+IEhEQ1AyX01TX0gxUDEsDQo+ICsJCQkJ CQkJICAgSERDUDJfTVNHX0FVDQo+IFRIX0ZBSUwpOw0KPiArCQkJCURQVFhIRENQTVNHKCJTaW5r IERvZXNuJ3QgU3VwcG9ydA0KPiBIZGNwMnghXG4iKTsNCj4gKwkJCX0NCj4gKwkJCWJyZWFrOw0K PiArCQl9DQo+ICsJCWJyZWFrOw0KPiArDQo+ICsJY2FzZSBIRENQMl9NU19BMUYxOg0KPiArCQlz d2l0Y2ggKGhkY3BfaW5mby0+aGRjcDJfaW5mby5oZGNwX2hhbmRsZXIuc3ViX3N0YXRlKSB7DQo+ ICsJCWNhc2UgSERDUDJfTVNHX1pFUk86DQo+ICsJCQlpZiAoaGRjcF9pbmZvLT5oZGNwMl9pbmZv LnJldHJ5X2NvdW50DQo+ICsJCQkJPCBIRENQMl9UWF9SRVRSWV9DTlQpIHsNCj4gKwkJCQloZGNw X2luZm8tPmhkY3AyX2luZm8ucmV0cnlfY291bnQrKzsNCj4gKwkJCQltZHJ2X2RwX3R4X2hkY3Ay X3NldF9zdGF0ZShoZGNwX2luZm8sDQo+IEhEQ1AyX01TX0ExRjEsDQo+ICsJCQkJCQkJICAgSERD UDJfTVNHX0FLDQo+IEVfSU5JVCk7DQo+ICsJCQl9IGVsc2Ugew0KPiArCQkJCW1kcnZfZHBfdHhf aGRjcDJfc2V0X3N0YXRlKGhkY3BfaW5mbywNCj4gSERDUDJfTVNfSDFQMSwNCj4gKwkJCQkJCQkg ICBIRENQMl9NU0dfQVUNCj4gVEhfRkFJTCk7DQo+ICsJCQkJcHJfZXJyKCJUcnkgTWF4IENvdW50 XG4iKTsNCj4gKwkJCX0NCj4gKwkJCWJyZWFrOw0KPiArDQoNCkkgdGhpbmsgeW91IGNvdWxkIGdl dCByaWQgb2Ygc3dpdGNoIGNhc2UgYW5kIGFkZCBjb21tZW50IG9yIGxhYmVsIHRvDQppbmRpY2F0 ZSB0aGUgc3RhdGUgbGlrZSB0aGlzOg0KDQovKiBIRENQMl9NU19BMUYxICovDQovKiBIRENQMl9N U0dfWkVSTyAqLw0KaWYgKGhkY3BfaW5mby0+aGRjcDJfaW5mby5yZXRyeV9jb3VudCA+PSBIRENQ Ml9UWF9SRVRSWV9DTlQpDQogICAgZ290byBIRENQMl9NU0dfQVVUSF9GQUlMOg0KDQpoZGNwX2lu Zm8tPmhkY3AyX2luZm8ucmV0cnlfY291bnQrKzsNCg0KLyogSERDUDJfTVNHX0FLRV9JTklUICov DQoNCg0KSERDUDJfTVNHX0FVVEhfRkFJTDoNCg0KDQpUaGUgY29kZSBsb29rcyBtb3JlIGNsZWFy Lg0KDQpSZWdhcmRzLA0KQ0sNCg0KDQo+ICsJCWNhc2UgSERDUDJfTVNHX0FLRV9JTklUOg0KPiAr CQkJdG1wID0gbWRydl9kcF90eF9oZGNwMl93cml0ZV9tc2coaGRjcF9pbmZvLA0KPiBIRENQMl9N U0dfQUtFX0lOSVQpOw0KPiArCQkJaWYgKCF0bXApIHsNCj4gKwkJCQllcnJfY29kZSA9IEhEQ1Bf RVJSX1NFTkRfTVNHX0ZBSUw7DQo+ICsJCQkJbWRydl9kcF90eF9oZGNwMl9lcnJfaGFuZGxlKGhk Y3BfaW5mbywNCj4gZXJyX2NvZGUsIF9fTElORV9fKTsNCj4gKwkJCQlicmVhazsNCj4gKwkJCX0N Cj4gKwkJCW1kcnZfZHBfdHhfaGRjcDJfcmVzdF92YXJpYWJsZShoZGNwX2luZm8pOw0KPiArCQkJ aGRjcF9pbmZvLT5oZGNwMl9pbmZvLnJlYWRfY2VydHJ4ID0gdHJ1ZTsNCj4gKw0KPiArCQkJaGRj cF9pbmZvLQ0KPiA+aGRjcDJfaW5mby5oZGNwX2hhbmRsZXIuc2VuZF9ha2VfaW5pdCA9IHRydWU7 DQo+ICsJCQltZHJ2X2RwX3R4X2hkY3AyX3NldF9zdGF0ZShoZGNwX2luZm8sDQo+IEhEQ1AyX01T X0ExRjEsDQo+ICsJCQkJCQkgICBIRENQMl9NU0dfQUtFX1NFTkRfQw0KPiBFUlQpOw0KPiArCQkJ cHJlX3RpbWUgPSBnZXRfc3lzdGVtX3RpbWUoKTsNCj4gKwkJCWJyZWFrOw0KPiArDQo+ICsJCWNh c2UgSERDUDJfTVNHX0FLRV9TRU5EX0NFUlQ6DQo+ICsJCQl0aW1lID0gZ2V0X3RpbWVfZGlmZihw cmVfdGltZSk7DQo+ICsJCQlpZiAodGltZSA8IEhEQ1AyX0FLRVNFTkRDRVJUX1dEVCkgew0KPiAr CQkJCW1zbGVlcCgyMCk7DQo+ICsJCQkJYnJlYWs7DQo+ICsJCQl9DQo+ICsJCQlpZiAoaGRjcF9p bmZvLT5oZGNwMl9pbmZvLnJlYWRfY2VydHJ4KQ0KPiArCQkJCW1kcnZfZHBfdHhfaGRjcDJfcmVh ZF9tc2coaGRjcF9pbmZvLA0KPiBIRENQMl9NU0dfQUtFX1NFTkRfQ0VSVCk7DQo+ICsNCj4gKwkJ CWlmICghaGRjcF9pbmZvLQ0KPiA+aGRjcDJfaW5mby5oZGNwX2hhbmRsZXIucmVjdl9tc2cpDQo+ ICsJCQkJYnJlYWs7DQo+ICsNCj4gKwkJCXJldCA9IHRlZV9ha2VfY2VydGlmaWNhdGUoaGRjcF9p bmZvLCBoZGNwX2luZm8tDQo+ID5oZGNwMl9pbmZvLmhkY3BfcnguY2VydCwNCj4gKwkJCQkJCSAg JnN0b3JlZCwNCj4gKwkJCQloZGNwX2luZm8tDQo+ID5oZGNwMl9pbmZvLnN0b3JlZF9wYWlyaW5n X2luZm8ubSwNCj4gKwkJCQloZGNwX2luZm8tDQo+ID5oZGNwMl9pbmZvLnN0b3JlZF9wYWlyaW5n X2luZm8uZWtoX2ttKTsNCj4gKw0KPiArCQkJaWYgKHJldCAhPSBSRVRfQ09NUEFSRV9QQVNTKSB7 DQo+ICsJCQkJZXJyX2NvZGUgPSBIRENQX0VSUl9QUk9DRVNTX0ZBSUw7DQo+ICsJCQkJbWRydl9k cF90eF9oZGNwMl9lcnJfaGFuZGxlKGhkY3BfaW5mbywNCj4gZXJyX2NvZGUsIF9fTElORV9fKTsN Cj4gKwkJCQlicmVhazsNCj4gKwkJCX0NCj4gKw0KPiArCQkJaGRjcF9pbmZvLT5oZGNwMl9pbmZv LmhkY3BfaGFuZGxlci5zdG9yZWRfa20gPQ0KPiBzdG9yZWQ7DQo+ICsJCQloZGNwX2luZm8tPmhk Y3AyX2luZm8uaGRjcF9oYW5kbGVyLnJlY3ZfbXNnID0NCj4gZmFsc2U7DQo+ICsJCQltZHJ2X2Rw X3R4X2hkY3AyX3NldF9zdGF0ZShoZGNwX2luZm8sDQo+IEhEQ1AyX01TX0ExRjEsDQo+ICsJCQkJ CQkgICBoZGNwX2luZm8tDQo+ID5oZGNwMl9pbmZvLmhkY3BfaGFuZGxlci5zdG9yZWRfa20gPw0K PiArCQkJCQlIRENQMl9NU0dfQUtFX1NUT1JFRF9LTSA6DQo+ICsJCQkJCUhEQ1AyX01TR19BS0Vf Tk9fU1RPUkVEX0tNKTsNCj4gKwkJCWJyZWFrOw0KPiArDQo+ICsJCWNhc2UgSERDUDJfTVNHX0FL RV9OT19TVE9SRURfS006DQo+ICsJCQlEUFRYSERDUE1TRygiNC4gR2V0IEttLCBkZXJpdmUgRWtw dWIoa20pXG4iKTsNCj4gKw0KPiArCQkJdGVlX2VuY19yc2Flc19vYWVwKGhkY3BfaW5mbywgaGRj cF9pbmZvLQ0KPiA+aGRjcDJfaW5mby5oZGNwX3R4LmVrcHViX2ttKTsNCj4gKwkJCS8qIFByZXBh cmUgZWtwdWJfa20gdG8gc2VuZCAqLw0KPiArCQkJdG1wID0gbWRydl9kcF90eF9oZGNwMl93cml0 ZV9tc2coaGRjcF9pbmZvLA0KPiArCQkJCQkJCSBIRENQMl9NU0dfQUtFXw0KPiBOT19TVE9SRURf S00pOw0KPiArCQkJaWYgKCF0bXApIHsNCj4gKwkJCQllcnJfY29kZSA9IEhEQ1BfRVJSX1NFTkRf TVNHX0ZBSUw7DQo+ICsJCQkJbWRydl9kcF90eF9oZGNwMl9lcnJfaGFuZGxlKGhkY3BfaW5mbywN Cj4gZXJyX2NvZGUsIF9fTElORV9fKTsNCj4gKwkJCQlicmVhazsNCj4gKwkJCX0NCj4gKw0KPiAr CQkJbWRydl9kcF90eF9oZGNwMl9zZXRfc3RhdGUoaGRjcF9pbmZvLA0KPiBIRENQMl9NU19BMUYx LA0KPiArCQkJCQkJICAgSERDUDJfTVNHX0FLRV9TRU5EX0gNCj4gX1BSSU1FKTsNCj4gKwkJCXRp bWVvdXRfdmFsdWUgPQ0KPiBIRENQMl9BS0VTRU5ESFBSSU1FX05PX1NUT1JFRF9XRFQ7DQo+ICsJ CQloZGNwX2luZm8tPmhkY3AyX2luZm8uaGRjcF9oYW5kbGVyLnJlY3ZfbXNnID0NCj4gZmFsc2U7 DQo+ICsJCQlwcmVfdGltZSA9IGdldF9zeXN0ZW1fdGltZSgpOw0KPiArCQkJYnJlYWs7DQo+ICsJ CWNhc2UgSERDUDJfTVNHX0FLRV9TVE9SRURfS006DQo+ICsJCQkvKiBQcmVwYXJlIGVraF9rbSAm IE0gdG8gc2VuZCAqLw0KPiArCQkJdG1wID0gbWRydl9kcF90eF9oZGNwMl93cml0ZV9tc2coaGRj cF9pbmZvLA0KPiBIRENQMl9NU0dfQUtFX1NUT1JFRF9LTSk7DQo+ICsJCQlpZiAoIXRtcCkgew0K PiArCQkJCWVycl9jb2RlID0gSERDUF9FUlJfU0VORF9NU0dfRkFJTDsNCj4gKwkJCQltZHJ2X2Rw X3R4X2hkY3AyX2Vycl9oYW5kbGUoaGRjcF9pbmZvLA0KPiBlcnJfY29kZSwgX19MSU5FX18pOw0K PiArCQkJCWJyZWFrOw0KPiArCQkJfQ0KPiArDQo+ICsJCQllcnJfY29kZSA9IEhEQ1BfRVJSX05P TkU7DQo+ICsJCQltZHJ2X2RwX3R4X2hkY3AyX3NldF9zdGF0ZShoZGNwX2luZm8sDQo+IEhEQ1Ay X01TX0ExRjEsDQo+ICsJCQkJCQkgICBIRENQMl9NU0dfQUtFX1NFTkRfSA0KPiBfUFJJTUUpOw0K PiArCQkJdGltZW91dF92YWx1ZSA9IEhEQ1AyX0FLRVNFTkRIUFJJTUVfU1RPUkVEX1dEVDsNCj4g KwkJCWhkY3BfaW5mby0+aGRjcDJfaW5mby5oZGNwX2hhbmRsZXIucmVjdl9tc2cgPQ0KPiBmYWxz ZTsNCj4gKwkJCXByZV90aW1lID0gZ2V0X3N5c3RlbV90aW1lKCk7DQo+ICsJCQlicmVhazsNCj4g Kw0KPiArCQljYXNlIEhEQ1AyX01TR19BS0VfU0VORF9IX1BSSU1FOg0KPiArCQkJaWYgKGhkY3Bf aW5mby0+aGRjcDJfaW5mby5yZWFkX2hfcHJpbWUpIHsNCj4gKwkJCQltZHJ2X2RwX3R4X2hkY3Ay X3JlYWRfbXNnKGhkY3BfaW5mbywNCj4gKwkJCQkJCQkgIEhEQ1AyX01TR19BS0UNCj4gX1NFTkRf SF9QUklNRSk7DQo+ICsJCQkJfQ0KPiArCQkJdGltZSA9IGdldF90aW1lX2RpZmYocHJlX3RpbWUp Ow0KPiArCQkJaWYgKHRpbWUgPiB0aW1lb3V0X3ZhbHVlKSB7DQo+ICsJCQkJZXJyX2NvZGUgPSBI RENQX0VSUl9SRVNQT05TRV9USU1FUk9VVDsNCj4gKwkJCQltZHJ2X2RwX3R4X2hkY3AyX2Vycl9o YW5kbGUoaGRjcF9pbmZvLA0KPiBlcnJfY29kZSwgX19MSU5FX18pOw0KPiArCQkJCWJyZWFrOw0K PiArCQkJfQ0KPiArDQo+ICsJCQlpZiAoIWhkY3BfaW5mby0NCj4gPmhkY3AyX2luZm8uaGRjcF9o YW5kbGVyLnJlY3ZfbXNnKQ0KPiArCQkJCWJyZWFrOw0KPiArDQo+ICsJCQlyZXQgPSB0ZWVfYWtl X2hfcHJpbWUoaGRjcF9pbmZvLCBoZGNwX2luZm8tDQo+ID5oZGNwMl9pbmZvLmhkY3BfdHgucnR4 LA0KPiArCQkJCQkgICAgICBoZGNwX2luZm8tDQo+ID5oZGNwMl9pbmZvLmhkY3BfcngucnJ4LA0K PiArCQkJCWhkY3BfaW5mby0+aGRjcDJfaW5mby5oZGNwX3J4LnJ4X2NhcHMsDQo+ICsJCQkJaGRj cF9pbmZvLT5oZGNwMl9pbmZvLmhkY3BfdHgudHhfY2FwcywNCj4gKwkJCQloZGNwX2luZm8tPmhk Y3AyX2luZm8uaGRjcF9yeC5oX3ByaW1lLA0KPiArCQkJCUhEQ1AyX0hQUklNRV9TSVpFKTsNCj4g KwkJCWlmIChyZXQgIT0gUkVUX0NPTVBBUkVfUEFTUykgew0KPiArCQkJCWlmIChoZGNwX2luZm8t DQo+ID5oZGNwMl9pbmZvLmhkY3BfaGFuZGxlci5zdG9yZWRfa20pDQo+ICsJCQkJCXRlZV9jbGVh cl9wYXJpbmcoaGRjcF9pbmZvKTsNCj4gKwkJCQllcnJfY29kZSA9IEhEQ1BfRVJSX1BST0NFU1Nf RkFJTDsNCj4gKwkJCQltZHJ2X2RwX3R4X2hkY3AyX2Vycl9oYW5kbGUoaGRjcF9pbmZvLA0KPiBl cnJfY29kZSwgX19MSU5FX18pOw0KPiArCQkJCWJyZWFrOw0KPiArCQkJfQ0KPiArDQo+ICsJCQlp ZiAoaGRjcF9pbmZvLQ0KPiA+aGRjcDJfaW5mby5oZGNwX2hhbmRsZXIuc3RvcmVkX2ttKQ0KPiAr CQkJCW1kcnZfZHBfdHhfaGRjcDJfc2V0X3N0YXRlKGhkY3BfaW5mbywNCj4gSERDUDJfTVNfQTJG MiwNCj4gKwkJCQkJCQkgICBIRENQMl9NU0dfTEMNCj4gX0lOSVQpOw0KPiArCQkJZWxzZQ0KPiAr CQkJCW1kcnZfZHBfdHhfaGRjcDJfc2V0X3N0YXRlKGhkY3BfaW5mbywNCj4gSERDUDJfTVNfQTFG MSwNCj4gKwkJCQkJCQkgICBIRENQMl9NU0dfQUsNCj4gRV9TRU5EX1BBSVJJTkdfSU5GTyk7DQo+ ICsNCj4gKwkJCXByZV90aW1lID0gZ2V0X3N5c3RlbV90aW1lKCk7DQo+ICsJCQloZGNwX2luZm8t PmhkY3AyX2luZm8uaGRjcF9oYW5kbGVyLnJlY3ZfbXNnID0NCj4gZmFsc2U7DQo+ICsJCQlicmVh azsNCj4gKw0KPiArCQljYXNlIEhEQ1AyX01TR19BS0VfU0VORF9QQUlSSU5HX0lORk86DQo+ICsJ CQlpZiAoaGRjcF9pbmZvLT5oZGNwMl9pbmZvLnJlYWRfcGFpcmluZykNCj4gKwkJCQltZHJ2X2Rw X3R4X2hkY3AyX3JlYWRfbXNnKGhkY3BfaW5mbywNCj4gKwkJCQkJCQkgIEhEQ1AyX01TR19BS0UN Cj4gX1NFTkRfUEFJUklOR19JTkZPKTsNCj4gKw0KPiArCQkJLyogRWtoX0ttIG11c3QgYmUgYXZh aWxhYmxlIGxlc3MgdGhhbiAyMDBtcywNCj4gR2l2ZSBtb2RlIHRpbWUgZm9yIHNvbWUgUnggKi8N Cj4gKwkJCXRpbWUgPSBnZXRfdGltZV9kaWZmKHByZV90aW1lKTsNCj4gKwkJCWlmICh0aW1lID4J SERDUDJfQUtFU0VORFBBSVJJTkdJTkZPX1dEVA0KPiAqIDIpIHsNCj4gKwkJCQllcnJfY29kZSA9 IEhEQ1BfRVJSX1JFU1BPTlNFX1RJTUVST1VUOw0KPiArCQkJCW1kcnZfZHBfdHhfaGRjcDJfZXJy X2hhbmRsZShoZGNwX2luZm8sDQo+IGVycl9jb2RlLCBfX0xJTkVfXyk7DQo+ICsJCQkJYnJlYWs7 DQo+ICsJCQl9DQo+ICsNCj4gKwkJCWlmICghaGRjcF9pbmZvLQ0KPiA+aGRjcDJfaW5mby5oZGNw X2hhbmRsZXIucmVjdl9tc2cpDQo+ICsJCQkJYnJlYWs7DQo+ICsNCj4gKwkJCS8qIFN0b3JlIG0s IGttLCBFa2goa20pICovDQo+ICsJCQl0ZWVfYWtlX3BhcmluZyhoZGNwX2luZm8sIGhkY3BfaW5m by0NCj4gPmhkY3AyX2luZm8uaGRjcF9yeC5la2hfa20pOw0KPiArDQo+ICsJCQloZGNwX2luZm8t PmhkY3AyX2luZm8uaGRjcF9oYW5kbGVyLnNlbmRfcGFpciA9DQo+IHRydWU7DQo+ICsJCQloZGNw X2luZm8tPmhkY3AyX2luZm8uaGRjcF9oYW5kbGVyLnJlY3ZfbXNnID0NCj4gZmFsc2U7DQo+ICsJ CQltZHJ2X2RwX3R4X2hkY3AyX3NldF9zdGF0ZShoZGNwX2luZm8sDQo+IEhEQ1AyX01TX0EyRjIs IEhEQ1AyX01TR19MQ19JTklUKTsNCj4gKwkJCXByZV90aW1lID0gZ2V0X3N5c3RlbV90aW1lKCk7 DQo+ICsJCQlicmVhazsNCj4gKwkJfQ0KPiArCQlicmVhazsNCj4gKw0KPiArCWNhc2UgSERDUDJf TVNfQTJGMjoNCj4gKwkJc3dpdGNoIChoZGNwX2luZm8tPmhkY3AyX2luZm8uaGRjcF9oYW5kbGVy LnN1Yl9zdGF0ZSkgew0KPiArCQljYXNlIEhEQ1AyX01TR19MQ19JTklUOg0KPiArCQkJLyogcHJl cGFyZSBSbiB0byBzZW5kICovDQo+ICsJCQl0bXAgPSBtZHJ2X2RwX3R4X2hkY3AyX3dyaXRlX21z ZyhoZGNwX2luZm8sDQo+IEhEQ1AyX01TR19MQ19JTklUKTsNCj4gKwkJCWlmICghdG1wKSB7DQo+ ICsJCQkJZXJyX2NvZGUgPSBIRENQX0VSUl9TRU5EX01TR19GQUlMOw0KPiArCQkJCW1kcnZfZHBf dHhfaGRjcDJfZXJyX2hhbmRsZShoZGNwX2luZm8sDQo+IGVycl9jb2RlLCBfX0xJTkVfXyk7DQo+ ICsJCQkJYnJlYWs7DQo+ICsJCQl9DQo+ICsJCQloZGNwX2luZm8tPmhkY3AyX2luZm8uaGRjcF9o YW5kbGVyLnNlbmRfbGNfaW5pdCANCj4gPSB0cnVlOw0KPiArDQo+ICsJCQltZHJ2X2RwX3R4X2hk Y3AyX3NldF9zdGF0ZShoZGNwX2luZm8sDQo+IEhEQ1AyX01TX0EyRjIsDQo+ICsJCQkJCQkgICBI RENQMl9NU0dfTENfU0VORF9MXw0KPiBQUklNRSk7DQo+ICsJCQlwcmVfdGltZSA9IGdldF9zeXN0 ZW1fdGltZSgpOw0KPiArCQkJYnJlYWs7DQo+ICsNCj4gKwkJY2FzZSBIRENQMl9NU0dfTENfU0VO RF9MX1BSSU1FOg0KPiArCQkJdGltZSA9IGdldF90aW1lX2RpZmYocHJlX3RpbWUpOw0KPiArCQkJ aWYgKHRpbWUgPCBIRENQMl9MQ1NFTkRMUFJJTUVfV0RUKQ0KPiArCQkJCWJyZWFrOw0KPiArDQo+ ICsJCQlpZiAoaGRjcF9pbmZvLT5oZGNwMl9pbmZvLnJlYWRfbF9wcmltZSkNCj4gKwkJCQltZHJ2 X2RwX3R4X2hkY3AyX3JlYWRfbXNnKGhkY3BfaW5mbywNCj4gKwkJCQkJCQkgIEhEQ1AyX01TR19M Q18NCj4gU0VORF9MX1BSSU1FKTsNCj4gKw0KPiArCQkJaWYgKCFoZGNwX2luZm8tDQo+ID5oZGNw Ml9pbmZvLmhkY3BfaGFuZGxlci5yZWN2X21zZykNCj4gKwkJCQlicmVhazsNCj4gKw0KPiArCQkJ cmV0ID0gdGVlX2xjX2xfcHJpbWUoaGRjcF9pbmZvLCBoZGNwX2luZm8tDQo+ID5oZGNwMl9pbmZv LmhkY3BfdHgucm4sDQo+ICsJCQkJCSAgICAgaGRjcF9pbmZvLQ0KPiA+aGRjcDJfaW5mby5oZGNw X3J4LmxfcHJpbWUsDQo+ICsJCQkJSERDUDJfTFBSSU1FX1NJWkUpOw0KPiArCQkJaWYgKHJldCAh PSBSRVRfQ09NUEFSRV9QQVNTKSB7DQo+ICsJCQkJZXJyX2NvZGUgPSBIRENQX0VSUl9QUk9DRVNT X0ZBSUw7DQo+ICsJCQkJbWRydl9kcF90eF9oZGNwMl9lcnJfaGFuZGxlKGhkY3BfaW5mbywNCj4g ZXJyX2NvZGUsIF9fTElORV9fKTsNCj4gKwkJCQlicmVhazsNCj4gKwkJCX0NCj4gKw0KPiArCQkJ RFBUWEhEQ1BNU0coIkwnIGlzIFBBU1MhIVxuIik7DQo+ICsJCQloZGNwX2luZm8tPmhkY3AyX2lu Zm8uaGRjcF9oYW5kbGVyLnJlY3ZfbXNnID0NCj4gZmFsc2U7DQo+ICsJCQltZHJ2X2RwX3R4X2hk Y3AyX3NldF9zdGF0ZShoZGNwX2luZm8sDQo+IEhEQ1AyX01TX0EzRjMsIEhEQ1AyX01TR19aRVJP KTsNCj4gKwkJCXByZV90aW1lID0gZ2V0X3N5c3RlbV90aW1lKCk7DQo+ICsJCQlicmVhazsNCj4g KwkJfQ0KPiArCQlicmVhazsNCj4gKw0KPiArCWNhc2UgSERDUDJfTVNfQTNGMzoNCj4gKwkJc3dp dGNoIChoZGNwX2luZm8tPmhkY3AyX2luZm8uaGRjcF9oYW5kbGVyLnN1Yl9zdGF0ZSkgew0KPiAr CQljYXNlIEhEQ1AyX01TR19aRVJPOg0KPiArCQkJdGVlX3NrZV9lbmNfa3MoaGRjcF9pbmZvLCBo ZGNwX2luZm8tDQo+ID5oZGNwMl9pbmZvLmhkY3BfdHgucml2LA0KPiArCQkJCSAgICAgICBoZGNw X2luZm8tDQo+ID5oZGNwMl9pbmZvLmhkY3BfdHguZWtzKTsNCj4gKw0KPiArCQkJdG1wID0gbWRy dl9kcF90eF9oZGNwMl93cml0ZV9tc2coaGRjcF9pbmZvLA0KPiBIRENQMl9NU0dfU0tFX1NFTkRf RUtTKTsNCj4gKwkJCWlmICghdG1wKSB7DQo+ICsJCQkJZXJyX2NvZGUgPSBIRENQX0VSUl9TRU5E X01TR19GQUlMOw0KPiArCQkJCW1kcnZfZHBfdHhfaGRjcDJfZXJyX2hhbmRsZShoZGNwX2luZm8s DQo+IGVycl9jb2RlLCBfX0xJTkVfXyk7DQo+ICsJCQkJYnJlYWs7DQo+ICsJCQl9DQo+ICsNCj4g KwkJCW1kcnZfZHBfdHhfaGRjcDJfc2V0X3N0YXRlKGhkY3BfaW5mbywNCj4gSERDUDJfTVNfQTNG MywNCj4gKwkJCQkJCSAgIEhEQ1AyX01TR19TS0VfU0VORF9FDQo+IEtTKTsNCj4gKwkJCXByZV90 aW1lID0gZ2V0X3N5c3RlbV90aW1lKCk7DQo+ICsJCQlicmVhazsNCj4gKw0KPiArCQljYXNlIEhE Q1AyX01TR19TS0VfU0VORF9FS1M6DQo+ICsJCQl0aW1lID0gZ2V0X3RpbWVfZGlmZihwcmVfdGlt ZSk7DQo+ICsJCQlpZiAodGltZSA+PSBIRENQMl9FTkNfRU5fVElNRVIpIHsNCj4gKwkJCQltZHJ2 X2RwX3R4X2hkY3AyX3NldF9zdGF0ZShoZGNwX2luZm8sDQo+IEhEQ1AyX01TX0E0RjQsDQo+ICsJ CQkJCQkJICAgSERDUDJfTVNHX1pFDQo+IFJPKTsNCj4gKwkJCX0NCj4gKwkJCWJyZWFrOw0KPiAr CQl9DQo+ICsJCWJyZWFrOw0KPiArDQo+ICsJY2FzZSBIRENQMl9NU19BNEY0Og0KPiArCQlzd2l0 Y2ggKGhkY3BfaW5mby0+aGRjcDJfaW5mby5oZGNwX2hhbmRsZXIuc3ViX3N0YXRlKSB7DQo+ICsJ CWNhc2UgSERDUDJfTVNHX1pFUk86DQo+ICsJCQlpZiAoIWhkY3BfaW5mby0+aGRjcDJfaW5mby5y ZXBlYXRlcikgew0KPiArCQkJCW1kcnZfZHBfdHhfaGRjcDJfc2V0X3N0YXRlKGhkY3BfaW5mbywN Cj4gSERDUDJfTVNfQTVGNSwNCj4gKwkJCQkJCQkgICBIRENQMl9NU0dfQVUNCj4gVEhfRE9ORSk7 DQo+ICsJCQl9IGVsc2Ugew0KPiArCQkJCW1kcnZfZHBfdHhfaGRjcDJfc2V0X3N0YXRlKGhkY3Bf aW5mbywNCj4gSERDUDJfTVNfQTZGNiwNCj4gKwkJCQkJCQkgICBIRENQMl9NU0dfUkUNCj4gUEFV VEhfU0VORF9SRUNWSURfTElTVCk7DQo+ICsJCQkJaGRjcF9pbmZvLQ0KPiA+aGRjcDJfaW5mby5o ZGNwX2hhbmRsZXIucmVjdl9tc2cgPSBmYWxzZTsNCj4gKwkJCQlwcmVfdGltZSA9IGdldF9zeXN0 ZW1fdGltZSgpOw0KPiArCQkJfQ0KPiArCQkJYnJlYWs7DQo+ICsJCX0NCj4gKwkJYnJlYWs7DQo+ ICsNCj4gKwljYXNlIEhEQ1AyX01TX0E1RjU6DQo+ICsJCXN3aXRjaCAoaGRjcF9pbmZvLT5oZGNw Ml9pbmZvLmhkY3BfaGFuZGxlci5zdWJfc3RhdGUpIHsNCj4gKwkJY2FzZSBIRENQMl9NU0dfWkVS TzoNCj4gKwkJCWJyZWFrOw0KPiArCQljYXNlIEhEQ1AyX01TR19BVVRIX0RPTkU6DQo+ICsJCQlE UFRYSERDUE1TRygiSERDUDIueCBBdXRoZW50aWNhdGlvbiBkb25lLlxuIik7DQo+ICsJCQloZGNw X2luZm8tPmF1dGhfc3RhdHVzID0gQVVUSF9QQVNTOw0KPiArCQkJaGRjcF9pbmZvLT5oZGNwMl9p bmZvLnJldHJ5X2NvdW50ID0gMDsNCj4gKwkJCW1kcnZfZHBfdHhfaGRjcDJfc2V0X3N0YXRlKGhk Y3BfaW5mbywNCj4gSERDUDJfTVNfQTVGNSwgSERDUDJfTVNHX1pFUk8pOw0KPiArCQkJbWRydl9k cF90eF9oZGNwMl9lbmFibGVfYXV0aChoZGNwX2luZm8sIHRydWUpOw0KPiArCQkJYnJlYWs7DQo+ ICsJCX0NCj4gKwkJYnJlYWs7DQo+ICsJY2FzZSBIRENQMl9NU19BNkY2Og0KPiArCQlzd2l0Y2gg KGhkY3BfaW5mby0+aGRjcDJfaW5mby5oZGNwX2hhbmRsZXIuc3ViX3N0YXRlKSB7DQo+ICsJCWNh c2UgSERDUDJfTVNHX1JFUEFVVEhfU0VORF9SRUNWSURfTElTVDoNCj4gKwkJCWlmIChoZGNwX2lu Zm8tPmhkY3AyX2luZm8ucmVhZF92X3ByaW1lKQ0KPiArCQkJCW1kcnZfZHBfdHhfaGRjcDJfcmVh ZF9tc2coaGRjcF9pbmZvLA0KPiArCQkJCQkJCSAgSERDUDJfTVNHX1JFUA0KPiBBVVRIX1NFTkRf UkVDVklEX0xJU1QpOw0KPiArDQo+ICsJCQl0aW1lID0gZ2V0X3RpbWVfZGlmZihwcmVfdGltZSk7 DQo+ICsJCQlpZiAodGltZSA+IEhEQ1AyX1JFUEFVVEhTRU5EUkVDVklEX1dEVCkgew0KPiArCQkJ CWVycl9jb2RlID0gSERDUF9FUlJfUkVTUE9OU0VfVElNRVJPVVQ7DQo+ICsJCQkJbWRydl9kcF90 eF9oZGNwMl9lcnJfaGFuZGxlKGhkY3BfaW5mbywNCj4gZXJyX2NvZGUsIF9fTElORV9fKTsNCj4g KwkJCQlicmVhazsNCj4gKwkJCX0NCj4gKw0KPiArCQkJaWYgKCFoZGNwX2luZm8tDQo+ID5oZGNw Ml9pbmZvLmhkY3BfaGFuZGxlci5yZWN2X21zZykNCj4gKwkJCQlicmVhazsNCj4gKw0KPiArCQkJ cHJlX3RpbWUgPSBnZXRfc3lzdGVtX3RpbWUoKTsNCj4gKwkJCWhkY3BfaW5mby0+aGRjcDJfaW5m by5oZGNwX2hhbmRsZXIucmVjdl9tc2cgPQ0KPiBmYWxzZTsNCj4gKwkJCW1kcnZfZHBfdHhfaGRj cDJfc2V0X3N0YXRlKGhkY3BfaW5mbywNCj4gSERDUDJfTVNfQTdGNywNCj4gKwkJCQkJCSAgIEhE Q1AyX01TR19SRVBBVVRIX1ZFDQo+IFJJRllfUkVDVklEX0xJU1QpOw0KPiArCQkJYnJlYWs7DQo+ ICsJCX0NCj4gKwkJYnJlYWs7DQo+ICsNCj4gKwljYXNlIEhEQ1AyX01TX0E3Rjc6DQo+ICsJCXN3 aXRjaCAoaGRjcF9pbmZvLT5oZGNwMl9pbmZvLmhkY3BfaGFuZGxlci5zdWJfc3RhdGUpIHsNCj4g KwkJY2FzZSBIRENQMl9NU0dfUkVQQVVUSF9WRVJJRllfUkVDVklEX0xJU1Q6DQo+ICsJCQlpZiAo KGhkY3BfaW5mby0+aGRjcDJfaW5mby5oZGNwX3J4LnJ4X2luZm9bMV0gJg0KPiAoQklUKDIpIHwg QklUKDMpKSkgIT0gMCkgew0KPiArCQkJCXByX2VycigiREVWU19FWENFRURFRCBvcg0KPiBDQVND QURFX0VYQ0VEREVEIVxuIik7DQo+ICsJCQkJZXJyX2NvZGUgPSBIRENQX0VSUl9QUk9DRVNTX0ZB SUw7DQo+ICsJCQkJbWRydl9kcF90eF9oZGNwMl9lcnJfaGFuZGxlKGhkY3BfaW5mbywNCj4gZXJy X2NvZGUsIF9fTElORV9fKTsNCj4gKwkJCQlicmVhazsNCj4gKwkJCX0NCj4gKw0KPiArCQkJLyog Y2hlY2sgc2VxTnVtViBoZXJlICovDQo+ICsJCQl0bXAgPQ0KPiBtZHJ2X2RwX3R4X2hkY3AyX2No ZWNrX3NlcV9udW1fdihoZGNwX2luZm8pOw0KPiArCQkJaWYgKCF0bXApIHsNCj4gKwkJCQllcnJf Y29kZSA9IEhEQ1BfRVJSX1BST0NFU1NfRkFJTDsNCj4gKwkJCQltZHJ2X2RwX3R4X2hkY3AyX2Vy cl9oYW5kbGUoaGRjcF9pbmZvLA0KPiBlcnJfY29kZSwgX19MSU5FX18pOw0KPiArCQkJCWJyZWFr Ow0KPiArCQkJfQ0KPiArDQo+ICsJCQl0bXAgPQ0KPiBtZHJ2X2RwX3R4X2hkY3AyX3JlY3ZfcmVw X2F1dGhfc2VuZF9yZWN2X2lkX2xpc3QoaGRjcF9pbmZvKTsNCj4gKwkJCWlmICghdG1wKSB7DQo+ ICsJCQkJZXJyX2NvZGUgPSBIRENQX0VSUl9QUk9DRVNTX0ZBSUw7DQo+ICsJCQkJbWRydl9kcF90 eF9oZGNwMl9lcnJfaGFuZGxlKGhkY3BfaW5mbywNCj4gZXJyX2NvZGUsIF9fTElORV9fKTsNCj4g KwkJCQlicmVhazsNCj4gKwkJCX0NCj4gKw0KPiArCQkJbWRydl9kcF90eF9oZGNwMl9zZXRfc3Rh dGUoaGRjcF9pbmZvLA0KPiBIRENQMl9NU19BOEY4LA0KPiArCQkJCQkJICAgSERDUDJfTVNHX1JF UEFVVEhfU0UNCj4gTkRfQUNLKTsNCj4gKwkJCWJyZWFrOw0KPiArCQl9DQo+ICsJCWJyZWFrOw0K PiArDQo+ICsJY2FzZSBIRENQMl9NU19BOEY4Og0KPiArCQlzd2l0Y2ggKGhkY3BfaW5mby0+aGRj cDJfaW5mby5oZGNwX2hhbmRsZXIuc3ViX3N0YXRlKSB7DQo+ICsJCWNhc2UgSERDUDJfTVNHX1JF UEFVVEhfU0VORF9BQ0s6DQo+ICsJCQl0bXAgPSBtZHJ2X2RwX3R4X2hkY3AyX3dyaXRlX21zZyho ZGNwX2luZm8sDQo+ICsJCQkJCQkJIEhEQ1AyX01TR19SRVBBDQo+IFVUSF9TRU5EX0FDSyk7DQo+ ICsJCQlpZiAoIXRtcCkgew0KPiArCQkJCWVycl9jb2RlID0gSERDUF9FUlJfU0VORF9NU0dfRkFJ TDsNCj4gKwkJCQltZHJ2X2RwX3R4X2hkY3AyX2Vycl9oYW5kbGUoaGRjcF9pbmZvLA0KPiBlcnJf Y29kZSwgX19MSU5FX18pOw0KPiArCQkJCWJyZWFrOw0KPiArCQkJfQ0KPiArDQo+ICsJCQl0aW1l ID0gZ2V0X3RpbWVfZGlmZihwcmVfdGltZSk7DQo+ICsJCQlpZiAodGltZSA+IEhEQ1AyX1JFUF9T RU5EX0FDSykgew0KPiArCQkJCWVycl9jb2RlID0gSERDUF9FUlJfUkVTUE9OU0VfVElNRVJPVVQ7 DQo+ICsJCQkJbWRydl9kcF90eF9oZGNwMl9lcnJfaGFuZGxlKGhkY3BfaW5mbywNCj4gZXJyX2Nv ZGUsIF9fTElORV9fKTsNCj4gKwkJCQlicmVhazsNCj4gKwkJCX0NCj4gKw0KPiArCQkJbWRydl9k cF90eF9oZGNwMl9zZXRfc3RhdGUoaGRjcF9pbmZvLA0KPiBIRENQMl9NU19BOUY5LA0KPiArCQkJ CQkJICAgSERDUDJfTVNHX1JFUEFVVEhfU1QNCj4gUkVBTV9NQU5BR0UpOw0KPiArCQkJaGRjcF9p bmZvLT5oZGNwMl9pbmZvLmhkY3BfaGFuZGxlci5yZXRyeV9jbnQgPQ0KPiAwOw0KPiArCQkJYnJl YWs7DQo+ICsJCX0NCj4gKwkJYnJlYWs7DQo+ICsNCj4gKwljYXNlIEhEQ1AyX01TX0E5Rjk6DQo+ ICsJCXN3aXRjaCAoaGRjcF9pbmZvLT5oZGNwMl9pbmZvLmhkY3BfaGFuZGxlci5zdWJfc3RhdGUp IHsNCj4gKwkJY2FzZSBIRENQMl9NU0dfUkVQQVVUSF9TVFJFQU1fTUFOQUdFOg0KPiArCQkJdG1w ID0NCj4gbWRydl9kcF90eF9oZGNwMl9wcm9jZXNzX3JlcF9hdXRoX3N0cmVhbV9tYW5hZ2UoaGRj cF9pbmZvKTsNCj4gKwkJCWlmICghdG1wKSB7DQo+ICsJCQkJZXJyX2NvZGUgPSBIRENQX0VSUl9Q Uk9DRVNTX0ZBSUw7DQo+ICsJCQkJbWRydl9kcF90eF9oZGNwMl9lcnJfaGFuZGxlKGhkY3BfaW5m bywNCj4gZXJyX2NvZGUsIF9fTElORV9fKTsNCj4gKwkJCQlicmVhazsNCj4gKwkJCX0NCj4gKw0K PiArCQkJdG1wID0gbWRydl9kcF90eF9oZGNwMl93cml0ZV9tc2coaGRjcF9pbmZvLA0KPiArCQkJ CQkJCSBIRENQMl9NU0dfUkVQQQ0KPiBVVEhfU1RSRUFNX01BTkFHRSk7DQo+ICsJCQlpZiAoIXRt cCkgew0KPiArCQkJCWVycl9jb2RlID0gSERDUF9FUlJfU0VORF9NU0dfRkFJTDsNCj4gKwkJCQlt ZHJ2X2RwX3R4X2hkY3AyX2Vycl9oYW5kbGUoaGRjcF9pbmZvLA0KPiBlcnJfY29kZSwgX19MSU5F X18pOw0KPiArCQkJCWJyZWFrOw0KPiArCQkJfQ0KPiArDQo+ICsJCQlwcmVfdGltZSA9IGdldF9z eXN0ZW1fdGltZSgpOw0KPiArCQkJaGRjcF9pbmZvLT5oZGNwMl9pbmZvLmhkY3BfaGFuZGxlci5y ZWN2X21zZyA9DQo+IGZhbHNlOw0KPiArCQkJbWRydl9kcF90eF9oZGNwMl9zZXRfc3RhdGUoaGRj cF9pbmZvLA0KPiBIRENQMl9NU19BOUY5LA0KPiArCQkJCQkJICAgSERDUDJfTVNHX1JFUEFVVEhf U1QNCj4gUkVBTV9SRUFEWSk7DQo+ICsJCQlicmVhazsNCj4gKwkJY2FzZSBIRENQMl9NU0dfUkVQ QVVUSF9TVFJFQU1fUkVBRFk6DQo+ICsJCQl0aW1lID0gZ2V0X3RpbWVfZGlmZihwcmVfdGltZSk7 DQo+ICsJCQlpZiAodGltZSA+IEhEQ1AyX1JFUEFVVEhTVFJFQU1SRFlfV0RUIC8gMikNCj4gKwkJ CQltZHJ2X2RwX3R4X2hkY3AyX3JlYWRfbXNnKGhkY3BfaW5mbywNCj4gKwkJCQkJCQkgIEhEQ1Ay X01TR19SRVANCj4gQVVUSF9TVFJFQU1fUkVBRFkpOw0KPiArCQkJZWxzZQ0KPiArCQkJCWJyZWFr Ow0KPiArDQo+ICsJCQl0aW1lID0gZ2V0X3RpbWVfZGlmZihwcmVfdGltZSk7DQo+ICsJCQlpZiAo dGltZSA+IEhEQ1AyX1JFUEFVVEhTVFJFQU1SRFlfV0RUKSB7DQo+ICsJCQkJZXJyX2NvZGUgPSBI RENQX0VSUl9SRVNQT05TRV9USU1FUk9VVDsNCj4gKwkJCQltZHJ2X2RwX3R4X2hkY3AyX2Vycl9o YW5kbGUoaGRjcF9pbmZvLA0KPiBlcnJfY29kZSwgX19MSU5FX18pOw0KPiArCQkJCWJyZWFrOw0K PiArCQkJfSBlbHNlIGlmICghaGRjcF9pbmZvLQ0KPiA+aGRjcDJfaW5mby5oZGNwX2hhbmRsZXIu cmVjdl9tc2cpIHsNCj4gKwkJCQlpZiAoaGRjcF9pbmZvLQ0KPiA+aGRjcDJfaW5mby5oZGNwX2hh bmRsZXIucmV0cnlfY250DQo+ICsJCQkJCT49DQo+IEhEQ1AyX1NUUkVBTV9NQU5BR0VfUkVUUllf Q05UKSB7DQo+ICsJCQkJCWVycl9jb2RlID0NCj4gSERDUF9FUlJfUkVTUE9OU0VfVElNRVJPVVQ7 DQo+ICsJCQkJCW1kcnZfZHBfdHhfaGRjcDJfZXJyX2hhbmRsZShoZGMNCj4gcF9pbmZvLCBlcnJf Y29kZSwgX19MSU5FX18pOw0KPiArCQkJCQlicmVhazsNCj4gKwkJCQl9DQo+ICsNCj4gKwkJCQlo ZGNwX2luZm8tDQo+ID5oZGNwMl9pbmZvLmhkY3BfaGFuZGxlci5yZXRyeV9jbnQrKzsNCj4gKw0K PiArCQkJCW1kcnZfZHBfdHhfaGRjcDJfc2V0X3N0YXRlKGhkY3BfaW5mbywNCj4gSERDUDJfTVNf QTlGOSwNCj4gKwkJCQkJCQkgICBIRENQMl9NU0dfUkUNCj4gUEFVVEhfU1RSRUFNX1JFQURZKTsN Cj4gKwkJCQlicmVhazsNCj4gKwkJCX0NCj4gKw0KPiArCQkJdG1wID0NCj4gbWRydl9kcF90eF9o ZGNwMl9yZWN2X3JlcF9hdXRoX3N0cmVhbV9yZWFkeShoZGNwX2luZm8pOw0KPiArCQkJaWYgKCF0 bXApIHsNCj4gKwkJCQllcnJfY29kZSA9IEhEQ1BfRVJSX1BST0NFU1NfRkFJTDsNCj4gKwkJCQlt ZHJ2X2RwX3R4X2hkY3AyX2Vycl9oYW5kbGUoaGRjcF9pbmZvLA0KPiBlcnJfY29kZSwgX19MSU5F X18pOw0KPiArCQkJCWJyZWFrOw0KPiArCQkJfQ0KPiArDQo+ICsJCQltZHJ2X2RwX3R4X2hkY3Ay X3NldF9zdGF0ZShoZGNwX2luZm8sDQo+IEhEQ1AyX01TX0E1RjUsDQo+ICsJCQkJCQkgICBIRENQ Ml9NU0dfQVVUSF9ET05FKQ0KPiA7DQo+ICsJCQlicmVhazsNCj4gKwkJfQ0KPiArCQlicmVhazsN Cj4gKwlkZWZhdWx0Og0KPiArCQllcnJfY29kZSA9IEhEQ1BfRVJSX1VOS05PV05fU1RBVEU7DQo+ ICsJCW1kcnZfZHBfdHhfaGRjcDJfZXJyX2hhbmRsZShoZGNwX2luZm8sIGVycl9jb2RlLA0KPiBf X0xJTkVfXyk7DQo+ICsJCWJyZWFrOw0KPiArCX0NCj4gKw0KPiArCXJldHVybiBlcnJfY29kZTsN Cj4gK30NCj4gKw0K