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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 1AC2BC4167B for ; Fri, 8 Dec 2023 16:06:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:From: References:Cc:To:Subject:Date:Message-ID:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=7noP1RtLSXgvXpGZ0kVo03NDNxVgOafpGFv0JDWfm50=; b=t+CGvVU2ciVlZr9GaF6OytHnX5 A8HHIFicA2pMae+oP8ue0tneYGOwUmlVnlS10tmSwY9G8IlIRRE1LHK09arLurLwBaW1DjSe55Qdz jB/pYUB9PeBVFs6myI2j1754pqB3rhSJKdAODWhLq3oGwaztPMeU16rJxWUqXP7EdZYl+drsLbsdR D2VLIYmbrZiEOc5Cd3t51OffmQTI1mmjEK3hnS2prCmQ4FNkYm713fy9gl51TvH8CUqY5oY8YA79V mAo0H1HMdTt3aOmmPCfg0DzgngAddbhKFTlTy20Q28IHj0blx4FCKM4BAjS7CdOGE2Lb1heWXMb1X RM1zb5VA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rBdMg-00Fyar-1W; Fri, 08 Dec 2023 16:06:10 +0000 Received: from mail-mw2nam04on20627.outbound.protection.outlook.com ([2a01:111:f400:7e8c::627] helo=NAM04-MW2-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rBdMb-00FyZc-1f for linux-arm-kernel@lists.infradead.org; Fri, 08 Dec 2023 16:06:09 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=k8y+chYTX0drw0dcfgOkJc76qs8JLZ8UbkNI69ySmEFbwYR7bOhYNRFvb5M9nBLwmxcVIujJJalK5+HPi5FWe+5qHicSY0eKlHf3QgY0kEVVhNcPw87qdn7IaYehM/5a5bH7fEWwfef1NPYn/suhA2mIp7NmFWKZOQEccZRUrrusWVRO9upi/9+VGcu0rm/nLvIcpSLS7euPIeojA92Vz1JQW6X+59g7NMqgjBvxXywuCamoLaa78yhSm3feZYqsg6QjHePo987MVlBogJepj8QfSjLbnx45qdKh7AonAa8HLr4SZ3eyCBHUYaInxE2o//ENjLeircn3nAPnam77bQ== 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=4CNFOIbWMnLa5Q3eLGZ8e2nxptN/EP+IlWwWaFQXx3M=; b=RgGdjaMdvIv++R/YmIifHmU6XpF9G2GUFBmbWJe5GC54fpqZlAsdlVO2BD3wjiGQmGTcBbLg8xoiG6xpMuJMinX42I1GnPkwdhmDFKfE6PNf98jEtmLpXUrb0BeuHLMozN9ROkYwndBlTWkDdnQOws/Cw+Ib6ZpAl+lNJocZzwowvZZpNrbNloOLOlKdbQ4Fs55+bdEmeTUDWo/o6+xI7N5ceZ9R886FuA4EwPRpv3yh71j1XzdFpo7xOCUqIsNp5OtNm/H5gFbyuYTt1RPNCOtkRN5WTvtRfZ+WVmGYIcPC0xWhgXJCODCuNuypVjUVHDO77Lj4SUQILr2+/ZR1eg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4CNFOIbWMnLa5Q3eLGZ8e2nxptN/EP+IlWwWaFQXx3M=; b=iNGU+BIbgj9KX+UZRA8KtH4kKyI3EFJz9knwNug7HbQeRIl9NFZLTkD6zMrvNRZTHu2q3JXFNrGCq9k23Awd7N7Ux3lCECmEv4cBct0jEANgF0AxRvdsgHQe20DOmDxRmlUCUlJu1rs3IEBZaHtd+SNNdFG8JX4CzOES1nQ/8ys= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from BY5PR12MB3683.namprd12.prod.outlook.com (2603:10b6:a03:1a5::16) by MN2PR12MB4224.namprd12.prod.outlook.com (2603:10b6:208:1dd::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.28; Fri, 8 Dec 2023 16:05:55 +0000 Received: from BY5PR12MB3683.namprd12.prod.outlook.com ([fe80::dacc:66a0:6923:a5e]) by BY5PR12MB3683.namprd12.prod.outlook.com ([fe80::dacc:66a0:6923:a5e%4]) with mapi id 15.20.7068.028; Fri, 8 Dec 2023 16:05:55 +0000 Message-ID: Date: Fri, 8 Dec 2023 10:05:51 -0600 User-Agent: Mozilla Thunderbird Beta Subject: Re: [PATCH v7 3/4] remoteproc: zynqmp: add pm domains support Content-Language: en-US To: Mathieu Poirier Cc: andersson@kernel.org, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, michal.simek@amd.com, ben.levinsky@amd.com, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org References: <20231117174238.1876655-1-tanmay.shah@amd.com> <20231117174238.1876655-4-tanmay.shah@amd.com> <93487d3c-c324-4b9b-8b25-0b4ea52237b4@amd.com> <2e24d9be-be10-4f80-b3af-c3e0ed003e7b@amd.com> From: Tanmay Shah In-Reply-To: X-ClientProxiedBy: SA0PR11CA0005.namprd11.prod.outlook.com (2603:10b6:806:d3::10) To BY5PR12MB3683.namprd12.prod.outlook.com (2603:10b6:a03:1a5::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BY5PR12MB3683:EE_|MN2PR12MB4224:EE_ X-MS-Office365-Filtering-Correlation-Id: a9dc855e-9922-464a-38df-08dbf8078ee0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 673t2pHmvOB1u6aqJ/jMCNlpYYrWawo+xfEMjUow+GnmmJtVte9lpedRuvObsNoKWnHl7NHAaPf0M1mXM8W97VzzDlxnAjFwi0JawqAaEwjPhJ25QxOWeHH+YyvUapTvrDUNNEpRydrmbLO7WMFSMlid90Qf+FvaYmjJ3SJ8JTgr+PC/9HMR3YJo1eU/coMEapn3UocvuDS3uFIppxqnXv/l05QRaUlilroI9T9mtHBLXBfH3DWJ4EDtZwJIaVnDsirgQgl0CD54DMg2eLZVymhw4lq53rJ94Nf63vovO1wS3d5oFwLSgjdRTagY0WtjyYFKgDucWwRvHYFX9Tv+GcMNbQS8H5oAu8Jv+ONYJf19iXLtMuR1lar1rPLPgHCP6khXt8hanj/LjTC+YF9rpDR9veuCQw9f380vwoSaNAYIZjA8sD+H155xKHmK/r23xvs8oMShBljA9teY2/If/PKNatS6/hNXZM6S7VFPVD0HY37rXCUgOyzKOmWQYSlhfDbJtxle+iH3qO5QwrUw4yYRBX6LpGlUtu5Wkitd4jsAVfDWrIDaf7DU8JP2uA/RHS2jT25etdLufsrSEKAO3j0YvBNFiLPwQthU8NCYk0ihGVZlzrokpCh437Nqx1ultLRm+11mP+zu65kz0sK07A== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR12MB3683.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(396003)(366004)(376002)(136003)(346002)(230922051799003)(451199024)(1800799012)(186009)(64100799003)(6512007)(26005)(2616005)(53546011)(6486002)(478600001)(6506007)(6666004)(83380400001)(2906002)(30864003)(44832011)(5660300002)(41300700001)(66476007)(66556008)(66946007)(4326008)(8676002)(8936002)(316002)(6916009)(38100700002)(31696002)(86362001)(36756003)(66899024)(31686004)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cU9iZDRiY0pXV2tGZW9UVW8wSG9ra2tLbmhCNk5XVkx4RHRXbVhjeGJ0c0dS?= =?utf-8?B?ako3NW1pRlpRNTRwUllqZDlhM3hvdmxiSmhkVUxUMDJISVY2clpscTZBUk5n?= =?utf-8?B?OUh1dkVHWG5PdU5WeGRDNFh6WTUxcno2alFjSXlwUXRyRzcrVllPUnl1TWk1?= =?utf-8?B?YVpmbzVQYkU2OTRnZWVpV1huQXpQZmUzYXBoTS9IcnFtZkFyWVIrTmJ5LzRw?= =?utf-8?B?VlIreVJ4WTIvOHNsbTRjQm55WjdmTlV6bzhBNWVjY0RjcVliS2Q0NjVYRjdo?= =?utf-8?B?Um53MWZQZVg5eUtpbjRyOTN1eVR0Q1BBVFc5SGgzait3NFhBVzgzOUxvaEV4?= =?utf-8?B?cmNpN3dtcmwzK2FXVjFmNkFaNHpYMGlIam5mQ2hsdTVVMFNMRkRFOHJFTWRN?= =?utf-8?B?N0xqSXBnK2w4dCtzTnZ3WTlMUnhmQ1Z0K25PQlc5YzI3RzlpWFY1d1FrT2Vq?= =?utf-8?B?RVF5UE8rTWpXZS9US2tIbjJJYjVIZitYVmkxWjNYTWhQNHAzcVRNUHBhZnc0?= =?utf-8?B?OVZRV1lWRDdXblF2ckhJZkdYVWw4YVErZ05uK216R25TOExPS0cwOVFoengx?= =?utf-8?B?ejRFQzUxaGJVOTZxMTg0TG1aL0p3ZHlzWnE4ZzNXTURDYTN6bE9Pa1NjcEhl?= =?utf-8?B?Q2gwbDZoY3dkb3Z3d2hDaklQbUlmazJlejJZeXlhRW5UaGorK05SWG1Lbnp2?= =?utf-8?B?aUU5WHA5M2FER2k2U0NHbjJlMktZUlpCdStyWjFPaDBQMkFPdjY4djdxalph?= =?utf-8?B?K3lML0cyaWsxVldRUE03a2toSjdUeVVKREkrRHJML2lKRmFSbDB6Zk91cEw2?= =?utf-8?B?NDJFcDBXRUlBZmhJT3ZiN0UrbnZLR3V2eGk3Zmo4Yk1pbEVlRGpZNzZLMXR6?= =?utf-8?B?RGJRMmVmS1Rjb0R3YURSSXVUQThjSk5IV1puK1VYajAwWTl5Uy9PUGRTYjRU?= =?utf-8?B?T2JyZWNwVXpWTUIvckxiSStuZExYNlI4cWV6aFMxV3dtV2FNZVV5ck1HQUJZ?= =?utf-8?B?TkZFblcrdnNRRUZjWk9nd0RPbU13TjFzZ3gzRUpPYy9hY2FXc3N0NHNxUGYr?= =?utf-8?B?Rks3V05NZitwRzdkQUtDQldpUU5NN2pyWHhBbjg0MG53SFNzQUZDN21wL0lM?= =?utf-8?B?dmVXSTVSTmV4MnNzTzVVaWhmNVhqajJ6NU1MRkFOU2FKOW8xSWYwbUkwTmNS?= =?utf-8?B?dUIrbGxOR2ZtMkxKd0RZWHQ3T2dWQm81QVJITHY5UzNYYStJUldzanU1RHJB?= =?utf-8?B?VXZjUEZ4cFVySWs5cEJhZDNmdlZwM3RpeUVFRlFmbDdXb1A1aTUzOVRyRmFt?= =?utf-8?B?blFNWTdxNU1YaG9kaHRzQWJsS0R6Y1IvQ29US01aR1FLdFFROE5ISlRJdVVX?= =?utf-8?B?MzZ1UU9Ud0o5WXI5Q2hBd2VEaFd5d1I1bTZzOWIzZGJLcWtlVmlwdmlvRENR?= =?utf-8?B?dGJNSXdoLzhSc0o4VEJ0N08rTklGQm9XV1BsMi9ROFg3UTB1blJpc0QxYXNB?= =?utf-8?B?UWNHNER0SlpxWTNzZDl6ZFh3Y1RuRDFnOUttNUlKNXJVdHZlK0YvdVg3MWFq?= =?utf-8?B?ck9MTGNaQ2RZY3A0Rm5hNGdtTCtrZEJHZGlaOG1sNk00QzBJck9qWWFBb1Rh?= =?utf-8?B?RWpNQVg1TmI0c1NkRUpCL244OElteWZESzRIRG43NWp2M3lNNFd4OUhyenNl?= =?utf-8?B?anpFaGYySDY3VWNwRWNsaW5Naks4c1RPaW9nT2RxenN0bjg3S2VhcSsxa0wr?= =?utf-8?B?enNaUFRKclBmOTBSVHhkZjZaK003cWxGYlUxazVWVU5ZWU9yZTA3a29VRlVC?= =?utf-8?B?QUt3c2JsRWh2T2NvcTk2UTR5SE1Cajh6elpYWDdaMDRHM1BoMERUMVR0OFh2?= =?utf-8?B?eGEyb3RPbnE4OXVqaTVnakNOV3loL3I4Y3I0clJiTktiSnhZdzZXTm8vZyt4?= =?utf-8?B?d2NRVXFRT0JsQ0kzV2t3Q1NaczFXclVwS0FjaW9PM1c2Skh5Q2M3ekZmYWlT?= =?utf-8?B?ZGkxeU1zWTlDODgxTTZObnBNRzFWUVpPWENnbkhHV0kzUTVPd2Q1Qi9tT3VY?= =?utf-8?B?bFRHSWdiV25uSWVrY2t4TjZhZzhXZ25kei9jRWVXTmxUUXB5RmtyTGx2YUN0?= =?utf-8?Q?V3UYjfF/nAPhVDqjBIi+xNJSl?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: a9dc855e-9922-464a-38df-08dbf8078ee0 X-MS-Exchange-CrossTenant-AuthSource: BY5PR12MB3683.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2023 16:05:55.0178 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 9zFopFNSf0k0zm7meYrdCUc4/AtFeXGu7T9PhxW8EahDoaqOs/3SRdiwnAiBPp/a X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4224 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231208_080606_144198_DBA4A71C X-CRM114-Status: GOOD ( 31.47 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Ck9uIDEyLzgvMjMgOTo1MSBBTSwgTWF0aGlldSBQb2lyaWVyIHdyb3RlOgo+IE9uIFdlZCwgRGVj IDA2LCAyMDIzIGF0IDEyOjA2OjQ1UE0gLTA2MDAsIFRhbm1heSBTaGFoIHdyb3RlOgo+ID4gCj4g PiBPbiAxMi82LzIzIDk6NDMgQU0sIE1hdGhpZXUgUG9pcmllciB3cm90ZToKPiA+ID4gT24gRnJp LCAxIERlYyAyMDIzIGF0IDExOjEwLCBUYW5tYXkgU2hhaCA8dGFubWF5LnNoYWhAYW1kLmNvbT4g d3JvdGU6Cj4gPiA+ID4KPiA+ID4gPgo+ID4gPiA+IE9uIDExLzI5LzIzIDExOjEwIEFNLCBNYXRo aWV1IFBvaXJpZXIgd3JvdGU6Cj4gPiA+ID4gPiBPbiBNb24sIE5vdiAyNywgMjAyMyBhdCAxMDoz MzowNUFNIC0wNjAwLCBUYW5tYXkgU2hhaCB3cm90ZToKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4g T24gMTEvMjMvMjMgMTI6MTEgUE0sIE1hdGhpZXUgUG9pcmllciB3cm90ZToKPiA+ID4gPiA+ID4g PiBPbiBXZWQsIE5vdiAyMiwgMjAyMyBhdCAwMzowMDozNlBNIC0wNjAwLCBUYW5tYXkgU2hhaCB3 cm90ZToKPiA+ID4gPiA+ID4gPiA+IEhpIE1hdGhpZXUsCj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ ID4gPiA+ID4gUGxlYXNlIGZpbmQgbXkgY29tbWVudHMgYmVsb3cuCj4gPiA+ID4gPiA+ID4gPgo+ ID4gPiA+ID4gPiA+ID4gT24gMTEvMjEvMjMgNDo1OSBQTSwgTWF0aGlldSBQb2lyaWVyIHdyb3Rl Ogo+ID4gPiA+ID4gPiA+ID4gPiBIaSwKPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ ID4gT24gRnJpLCBOb3YgMTcsIDIwMjMgYXQgMDk6NDI6MzdBTSAtMDgwMCwgVGFubWF5IFNoYWgg d3JvdGU6Cj4gPiA+ID4gPiA+ID4gPiA+ID4gVXNlIFRDTSBwbSBkb21haW5zIGV4dHJhY3RlZCBm cm9tIGRldmljZS10cmVlCj4gPiA+ID4gPiA+ID4gPiA+ID4gdG8gcG93ZXIgb24vb2ZmIFRDTSB1 c2luZyBnZW5lcmFsIHBtIGRvbWFpbiBmcmFtZXdvcmsuCj4gPiA+ID4gPiA+ID4gPiA+ID4KPiA+ ID4gPiA+ID4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBUYW5tYXkgU2hhaCA8dGFubWF5LnNoYWhA YW1kLmNvbT4KPiA+ID4gPiA+ID4gPiA+ID4gPiAtLS0KPiA+ID4gPiA+ID4gPiA+ID4gPgo+ID4g PiA+ID4gPiA+ID4gPiA+IENoYW5nZXMgaW4gdjc6Cj4gPiA+ID4gPiA+ID4gPiA+ID4gICAtICVz L3BtX2RldjEvcG1fZGV2X2NvcmUwL3IKPiA+ID4gPiA+ID4gPiA+ID4gPiAgIC0gJXMvcG1fZGV2 X2xpbmsxL3BtX2Rldl9jb3JlMF9saW5rL3IKPiA+ID4gPiA+ID4gPiA+ID4gPiAgIC0gJXMvcG1f ZGV2Mi9wbV9kZXZfY29yZTEvcgo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgLSAlcy9wbV9kZXZfbGlu azIvcG1fZGV2X2NvcmUxX2xpbmsvcgo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgLSByZW1vdmUgcG1f ZG9tYWluX2lkIGNoZWNrIHRvIG1vdmUgbmV4dCBwYXRjaAo+ID4gPiA+ID4gPiA+ID4gPiA+ICAg LSBhZGQgY29tbWVudCBhYm91dCBob3cgMXN0IGVudHJ5IGluIHBtIGRvbWFpbiBsaXN0IGlzIHVz ZWQKPiA+ID4gPiA+ID4gPiA+ID4gPiAgIC0gZml4IGxvb3Agd2hlbiBqdW1wIHRvIGZhaWxfYWRk X3BtX2RvbWFpbnMgbG9vcAo+ID4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4g IGRyaXZlcnMvcmVtb3RlcHJvYy94bG54X3I1X3JlbW90ZXByb2MuYyB8IDIxNSArKysrKysrKysr KysrKysrKysrKysrKy0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDIxMiBp bnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQo+ID4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4g PiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcmVtb3RlcHJvYy94bG54X3I1X3JlbW90 ZXByb2MuYyBiL2RyaXZlcnMvcmVtb3RlcHJvYy94bG54X3I1X3JlbW90ZXByb2MuYwo+ID4gPiA+ ID4gPiA+ID4gPiA+IGluZGV4IDQzOTVlZGVhOWE2NC4uMjJiY2NjNTA3NWEwIDEwMDY0NAo+ID4g PiA+ID4gPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvcmVtb3RlcHJvYy94bG54X3I1X3JlbW90ZXBy b2MuYwo+ID4gPiA+ID4gPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvcmVtb3RlcHJvYy94bG54X3I1 X3JlbW90ZXByb2MuYwo+ID4gPiA+ID4gPiA+ID4gPiA+IEBAIC0xNiw2ICsxNiw3IEBACj4gPiA+ ID4gPiA+ID4gPiA+ID4gICNpbmNsdWRlIDxsaW51eC9vZl9yZXNlcnZlZF9tZW0uaD4KPiA+ID4g PiA+ID4gPiA+ID4gPiAgI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgo+ID4gPiA+ ID4gPiA+ID4gPiA+ICAjaW5jbHVkZSA8bGludXgvcmVtb3RlcHJvYy5oPgo+ID4gPiA+ID4gPiA+ ID4gPiA+ICsjaW5jbHVkZSA8bGludXgvcG1fZG9tYWluLmg+Cj4gPiA+ID4gPiA+ID4gPiA+ID4K PiA+ID4gPiA+ID4gPiA+ID4gPiAgI2luY2x1ZGUgInJlbW90ZXByb2NfaW50ZXJuYWwuaCIKPiA+ ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiA+IEBAIC0xMDIsNiArMTAzLDEyIEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgbWVtX2JhbmtfZGF0YSB6eW5xbXBfdGNtX2JhbmtzX2xvY2tz dGVwW10gPSB7Cj4gPiA+ID4gPiA+ID4gPiA+ID4gICAqIEBycHJvYzogcnByb2MgaGFuZGxlCj4g PiA+ID4gPiA+ID4gPiA+ID4gICAqIEBwbV9kb21haW5faWQ6IFJQVSBDUFUgcG93ZXIgZG9tYWlu IGlkCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAqIEBpcGk6IHBvaW50ZXIgdG8gbWFpbGJveCBpbmZv cm1hdGlvbgo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgKiBAbnVtX3BtX2RldjogbnVtYmVyIG9mIHRj bSBwbSBkb21haW4gZGV2aWNlcyBmb3IgdGhpcyBjb3JlCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAq IEBwbV9kZXZfY29yZTA6IHBtIGRvbWFpbiB2aXJ0dWFsIGRldmljZXMgZm9yIHBvd2VyIGRvbWFp biBmcmFtZXdvcmsKPiA+ID4gPiA+ID4gPiA+ID4gPiArICogQHBtX2Rldl9jb3JlMF9saW5rOiBw bSBkb21haW4gZGV2aWNlIGxpbmtzIGFmdGVyIHJlZ2lzdHJhdGlvbgo+ID4gPiA+ID4gPiA+ID4g PiA+ICsgKiBAcG1fZGV2X2NvcmUxOiB1c2VkIG9ubHkgaW4gbG9ja3N0ZXAgbW9kZS4gc2Vjb25k IGNvcmUncyBwbSBkb21haW4gdmlydHVhbCBkZXZpY2VzCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAq IEBwbV9kZXZfY29yZTFfbGluazogdXNlZCBvbmx5IGluIGxvY2tzdGVwIG1vZGUuIHNlY29uZCBj b3JlJ3MgcG0gZGV2aWNlIGxpbmtzIGFmdGVyCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAqIHJlZ2lz dHJhdGlvbgo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgKi8KPiA+ID4gPiA+ID4gPiA+ID4gPiAgc3Ry dWN0IHp5bnFtcF9yNV9jb3JlIHsKPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgc3RydWN0IGRldmlj ZSAqZGV2Owo+ID4gPiA+ID4gPiA+ID4gPiA+IEBAIC0xMTEsNiArMTE4LDExIEBAIHN0cnVjdCB6 eW5xbXBfcjVfY29yZSB7Cj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgIHN0cnVjdCBycHJvYyAqcnBy b2M7Cj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgIHUzMiBwbV9kb21haW5faWQ7Cj4gPiA+ID4gPiA+ ID4gPiA+ID4gICAgIHN0cnVjdCBtYm94X2luZm8gKmlwaTsKPiA+ID4gPiA+ID4gPiA+ID4gPiAr ICAgaW50IG51bV9wbV9kZXY7Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgIHN0cnVjdCBkZXZpY2Ug KipwbV9kZXZfY29yZTA7Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgIHN0cnVjdCBkZXZpY2VfbGlu ayAqKnBtX2Rldl9jb3JlMF9saW5rOwo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICBzdHJ1Y3QgZGV2 aWNlICoqcG1fZGV2X2NvcmUxOwo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICBzdHJ1Y3QgZGV2aWNl X2xpbmsgKipwbV9kZXZfY29yZTFfbGluazsKPiA+ID4gPiA+ID4gPiA+ID4gPiAgfTsKPiA+ID4g PiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiA+ICAvKioKPiA+ID4gPiA+ID4gPiA+ID4g PiBAQCAtNjUxLDcgKzY2Myw4IEBAIHN0YXRpYyBpbnQgYWRkX3RjbV9jYXJ2ZW91dF9sb2Nrc3Rl cF9tb2RlKHN0cnVjdCBycHJvYyAqcnByb2MpCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBaWU5RTVBfUE1fQ0FQQUJJTElUWV9BQ0NF U1MsIDAsCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBaWU5RTVBfUE1fUkVRVUVTVF9BQ0tfQkxPQ0tJTkcpOwo+ID4gPiA+ID4gPiA+ ID4gPiA+ICAgICAgICAgICAgIGlmIChyZXQgPCAwKSB7Cj4gPiA+ID4gPiA+ID4gPiA+ID4gLSAg ICAgICAgICAgICAgICAgICBkZXZfZXJyKGRldiwgImZhaWxlZCB0byB0dXJuIG9uIFRDTSAweCV4 IiwgcG1fZG9tYWluX2lkKTsKPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAg IGRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIHR1cm4gb24gVENNIDB4JXgiLAo+ID4gPiA+ID4gPiA+ ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBwbV9kb21haW5faWQpOwo+ID4gPiA+ ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiBTcHVyaW91cyBjaGFuZ2UsIHlvdSBzaG91bGQg aGF2ZSBjYXVnaHQgdGhhdC4KPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBBY2ssIG5l ZWQgdG8gb2JzZXJ2ZSBjaGFuZ2VzIG1vcmUgY2xvc2VseSBiZWZvcmUgc2VuZGluZyB0aGVtLgo+ ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAg ICAgICAgICAgICAgICAgIGdvdG8gcmVsZWFzZV90Y21fbG9ja3N0ZXA7Cj4gPiA+ID4gPiA+ID4g PiA+ID4gICAgICAgICAgICAgfQo+ID4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+ ID4gQEAgLTc1OCw2ICs3NzEsMTg5IEBAIHN0YXRpYyBpbnQgenlucW1wX3I1X3BhcnNlX2Z3KHN0 cnVjdCBycHJvYyAqcnByb2MsIGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZncpCj4gPiA+ID4gPiA+ ID4gPiA+ID4gICAgIHJldHVybiByZXQ7Cj4gPiA+ID4gPiA+ID4gPiA+ID4gIH0KPiA+ID4gPiA+ ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiA+ICtzdGF0aWMgdm9pZCB6eW5xbXBfcjVfcmVt b3ZlX3BtX2RvbWFpbnMoc3RydWN0IHJwcm9jICpycHJvYykKPiA+ID4gPiA+ID4gPiA+ID4gPiAr ewo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICBzdHJ1Y3QgenlucW1wX3I1X2NvcmUgKnI1X2NvcmUg PSBycHJvYy0+cHJpdjsKPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgc3RydWN0IGRldmljZSAqZGV2 ID0gcjVfY29yZS0+ZGV2Owo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICBzdHJ1Y3QgenlucW1wX3I1 X2NsdXN0ZXIgKmNsdXN0ZXI7Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgIGludCBpOwo+ID4gPiA+ ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgY2x1c3RlciA9IHBsYXRmb3Jt X2dldF9kcnZkYXRhKHRvX3BsYXRmb3JtX2RldmljZShkZXYtPnBhcmVudCkpOwo+ID4gPiA+ID4g PiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgZm9yIChpID0gMTsgaSA8IHI1X2Nv cmUtPm51bV9wbV9kZXY7IGkrKykgewo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgIGRl dmljZV9saW5rX2RlbChyNV9jb3JlLT5wbV9kZXZfY29yZTBfbGlua1tpXSk7Cj4gPiA+ID4gPiA+ ID4gPiA+ID4gKyAgICAgICAgICAgZGV2X3BtX2RvbWFpbl9kZXRhY2gocjVfY29yZS0+cG1fZGV2 X2NvcmUwW2ldLCBmYWxzZSk7Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgIH0KPiA+ID4gPiA+ID4g PiA+ID4gPiArCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgIGtmcmVlKHI1X2NvcmUtPnBtX2Rldl9j b3JlMCk7Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgIHI1X2NvcmUtPnBtX2Rldl9jb3JlMCA9IE5V TEw7Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgIGtmcmVlKHI1X2NvcmUtPnBtX2Rldl9jb3JlMF9s aW5rKTsKPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgcjVfY29yZS0+cG1fZGV2X2NvcmUwX2xpbmsg PSBOVUxMOwo+ID4gPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgaWYg KGNsdXN0ZXItPm1vZGUgPT0gU1BMSVRfTU9ERSkgewo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAg ICAgICAgIHI1X2NvcmUtPm51bV9wbV9kZXYgPSAwOwo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAg ICAgICAgIHJldHVybjsKPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgfQo+ID4gPiA+ID4gPiA+ID4g PiA+ICsKPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgZm9yIChpID0gMTsgaSA8IHI1X2NvcmUtPm51 bV9wbV9kZXY7IGkrKykgewo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgIGRldmljZV9s aW5rX2RlbChyNV9jb3JlLT5wbV9kZXZfY29yZTFfbGlua1tpXSk7Cj4gPiA+ID4gPiA+ID4gPiA+ ID4gKyAgICAgICAgICAgZGV2X3BtX2RvbWFpbl9kZXRhY2gocjVfY29yZS0+cG1fZGV2X2NvcmUx W2ldLCBmYWxzZSk7Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgIH0KPiA+ID4gPiA+ID4gPiA+ID4g PiArCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgIGtmcmVlKHI1X2NvcmUtPnBtX2Rldl9jb3JlMSk7 Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgIHI1X2NvcmUtPnBtX2Rldl9jb3JlMSA9IE5VTEw7Cj4g PiA+ID4gPiA+ID4gPiA+ID4gKyAgIGtmcmVlKHI1X2NvcmUtPnBtX2Rldl9jb3JlMV9saW5rKTsK PiA+ID4gPiA+ID4gPiA+ID4gPiArICAgcjVfY29yZS0+cG1fZGV2X2NvcmUxX2xpbmsgPSBOVUxM Owo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICByNV9jb3JlLT5udW1fcG1fZGV2ID0gMDsKPiA+ID4g PiA+ID4gPiA+ID4gPiArfQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiA+ID4g PiArc3RhdGljIGludCB6eW5xbXBfcjVfYWRkX3BtX2RvbWFpbnMoc3RydWN0IHJwcm9jICpycHJv YykKPiA+ID4gPiA+ID4gPiA+ID4gPiArewo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICBzdHJ1Y3Qg enlucW1wX3I1X2NvcmUgKnI1X2NvcmUgPSBycHJvYy0+cHJpdjsKPiA+ID4gPiA+ID4gPiA+ID4g PiArICAgc3RydWN0IGRldmljZSAqZGV2ID0gcjVfY29yZS0+ZGV2LCAqZGV2MjsKPiA+ID4gPiA+ ID4gPiA+ID4gPiArICAgc3RydWN0IHp5bnFtcF9yNV9jbHVzdGVyICpjbHVzdGVyOwo+ID4gPiA+ ID4gPiA+ID4gPiA+ICsgICBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2Owo+ID4gPiA+ID4g PiA+ID4gPiA+ICsgICBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wOwo+ID4gPiA+ID4gPiA+ID4gPiA+ ICsgICBpbnQgaSwgaiwgbnVtX3BtX2RldiwgcmV0Owo+ID4gPiA+ID4gPiA+ID4gPiA+ICsKPiA+ ID4gPiA+ID4gPiA+ID4gPiArICAgY2x1c3RlciA9IGRldl9nZXRfZHJ2ZGF0YShkZXYtPnBhcmVu dCk7Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAvKiBnZXQg bnVtYmVyIG9mIHBvd2VyLWRvbWFpbnMgKi8KPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgbnVtX3Bt X2RldiA9IG9mX2NvdW50X3BoYW5kbGVfd2l0aF9hcmdzKHI1X2NvcmUtPm5wLCAicG93ZXItZG9t YWlucyIsCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiI3Bvd2VyLWRvbWFpbi1jZWxscyIpOwo+ID4gPiA+ID4gPiA+ID4gPiA+ ICsKPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgaWYgKG51bV9wbV9kZXYgPD0gMCkKPiA+ID4gPiA+ ID4gPiA+ID4gPiArICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPiA+ID4gPiA+ID4gPiA+ID4g PiArCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgIHI1X2NvcmUtPnBtX2Rldl9jb3JlMCA9IGtjYWxs b2MobnVtX3BtX2RldiwKPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzaXplb2Yoc3RydWN0IGRldmljZSAqKSwKPiA+ID4gPiA+ID4gPiA+ID4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRlBfS0VSTkVMKTsKPiA+ID4g PiA+ID4gPiA+ID4gPiArICAgaWYgKCFyNV9jb3JlLT5wbV9kZXZfY29yZTApCj4gPiA+ID4gPiA+ ID4gPiA+ID4gKyAgICAgICAgICAgcmV0ID0gLUVOT01FTTsKPiA+ID4gPiA+ID4gPiA+ID4gPiAr Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgIHI1X2NvcmUtPnBtX2Rldl9jb3JlMF9saW5rID0ga2Nh bGxvYyhudW1fcG1fZGV2LAo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCBkZXZpY2VfbGluayAqKSwKPiA+ID4g PiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdG UF9LRVJORUwpOwo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICBpZiAoIXI1X2NvcmUtPnBtX2Rldl9j b3JlMF9saW5rKSB7Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAga2ZyZWUocjVfY29y ZS0+cG1fZGV2X2NvcmUwKTsKPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICByNV9jb3Jl LT5wbV9kZXZfY29yZTAgPSBOVUxMOwo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgIHJl dHVybiAtRU5PTUVNOwo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICB9Cj4gPiA+ID4gPiA+ID4gPiA+ ID4gKwo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICByNV9jb3JlLT5udW1fcG1fZGV2ID0gbnVtX3Bt X2RldjsKPiA+ID4gPiA+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgIC8qCj4g PiA+ID4gPiA+ID4gPiA+ID4gKyAgICAqIHN0YXJ0IGZyb20gMm5kIGVudHJ5IGluIHBvd2VyLWRv bWFpbnMgcHJvcGVydHkgbGlzdCBhcwo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAgKiBmb3Igenlu cW1wIHdlIG9ubHkgYWRkIFRDTSBwb3dlciBkb21haW5zIGFuZCBub3QgY29yZSdzIHBvd2VyIGRv bWFpbi4KPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgICogMXN0IGVudHJ5IGlzIHVzZWQgdG8gY29u ZmlndXJlIHI1IG9wZXJhdGlvbiBtb2RlLgo+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ ID4gPiBZb3UgYXJlIHN0aWxsIG5vdCBzYXlpbmcgX3doZXJlXyAtPnBtX2Rldl9jb3JlMFswXSBn ZXRzIGFkZGVkLgo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IFNvLCBwbV9kZXZfY29y ZTBbMF0gaXNuJ3QgcmVhbGx5IG5lZWQgdG8gYmUgYWRkZWQgZm9yIHp5bnFtcCBwbGF0Zm9ybSwg YXMgZmlybXdhcmUgc3RhcnRzIGl0IHdpdGggY2FsbCwKPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4g PiA+ID4gPiB6eW5xbXBfcG1fcmVxdWVzdF93YWtlIGR1cmluZyBycHJvY19zdGFydCBjYWxsYmFj ay4gSSB3aWxsIGRvY3VtZW50IHRoaXMgaW4gbmV4dAo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ ID4gPgo+ID4gPiA+ID4gPiA+IFRoYXQgaXMgZXhhY3RseSB3aGF0IEkgYW0gbG9va2luZyBmb3Iu ICBUaGF0IHdheSBwZW9wbGUgZG9uJ3QgaGF2ZSB0byBnbyB0aHJvdWdoCj4gPiA+ID4gPiA+ID4g dGhlIGVudGlyZSBkcml2ZXIgdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgd2hhdCBpcyBoYXBwZW5pbmcg d2l0aCBwbV9kZXZfY29yZVswXS4KPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IEknbSBhbHNv IG5vdCBzdXJlIGFib3V0IHRoZSBwb3dlci11cCBvcmRlci4gIExvZ2ljYWxseSB0aGUgVENNcyBz aG91bGQgYmUKPiA+ID4gPiA+ID4gPiBwb3dlcmVkIHVwIGJlZm9yZSB0aGUgUjUgaW4gb3JkZXIg dG8gcHV0IGNvZGUgaW4gdGhlbS4gIFRoZSBSNXMgYXJlIHBvd2VyZWQgaW4KPiA+ID4gPiA+ID4g PiB6eW5xbXBfcjVfcnByb2Nfc3RhcnQoKSBidXQgSSBhbSB1bmNsZWFyIGFzIHRvIHdoZXJlIGlu IHRoZSBib290IHNlcXVlbmNlIHRoZQo+ID4gPiA+ID4gPiA+IFRDTXMgYXJlIHBvd2VyZWQgLSBj YW4geW91IGV4cGFuZCBvbiB0aGF0Pwo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4g PiBTdXJlLiBGb2xsb3dpbmcgaXMgY2FsbCBzZXF1ZWNlCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ IHp5bnFtcF9yNV9ycHJvY19wcmVwYXJlCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IHp5bnFtcF9y NV9hZGRfcG1fZG9tYWlucyAtPiBIZXJlIFRDTSBpcyBwb3dlcmVkIG9uIHdoZW4gZGV2aWNlX2xp bmtfYWRkIGlzIGNhbGxlZCB2aWEgenlucW1wLXBtLWRvbWFpbnMuYyBkcml2ZXIuCj4gPiA+ID4g PiA+Cj4gPiA+ID4gPiA+IC4gLiAuCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IHp5bnFtcF9yNV9y cHJvY19zdGFydCAtPiBsb2FkIGZpcm13YXJlIGFuZCBTdGFydHMgUlBVCj4gPiA+ID4gPiA+Cj4g PiA+ID4gPiA+IFNvIHdoYXQgeW91IG1lbnRpb25lZCBpcyBjb3JyZWN0LCBUQ00gaXMgYmVpbmcg cG93ZXJkLW9uIGJlZm9yZSB3ZSBsb2FkIGZpcm13YXJlIGFuZCBzdGFydCBSUFUuCj4gPiA+ID4g PiA+Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IHJldmlzaW9uLiBG b3IgbmV3IHBsYXRmb3JtcyBwbV9kZXZfY29yZTBbMF0gd2lsbCBiZSBhZGRlZCBpbiBmdXR1cmUu Cj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBOb3cgSSdtIHJlYWxseSBjb25mdXNlZCAtIHdo YXQgZG8geW91IG1lYW4gYnkgInBtX2Rldl9jb3JlMFswXSB3aWxsIGJlIGFkZGVkIGluCj4gPiA+ ID4gPiA+ID4gZnV0dXJlIj8KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gWnlu cU1QIHBsYXRmb3JtIGhhcyBwbGF0Zm9ybSBtYW5hZ2VtZW50IGZpcm13YXJlIHJ1bm5pbmcgb24g bWljcm9ibGF6ZS4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gVGhpcyBmaXJtd2FyZSBkZXNpZ24g ZG9lcyBub3QgZXhwZWN0IFI1IHBtIGRvbWFpbnMgdG8gYmUgcmVxdWVzdGVkIGV4cGxpY2l0bHku Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IFRoaXMgbWVhbnMsIGR1cmluZyB6eW5xbXBfcjVfcnBy b2Nfc3RhcnQgd2hlbiAienlucW1wX3BtX3JlcXVlc3Rfd2FrZSIgaXMgY2FsbGVkLAo+ID4gPiA+ ID4gPgo+ID4gPiA+ID4gPiBmaXJtd2FyZSBwb3dlcnMgb24gUjUuIFNvLCBwbV9kZXZfY29yZVsw XSBpcyBub3QgcmVhbGx5IHVzZWQgZm9yIFp5bnFNUC4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4g SG93ZXZlciwgdGhpcyBkZXNpZ24gd2FzIGNoYW5nZWQgZm9yIG5ldyBwbGF0Zm9ybXMgaS5lLiAi dmVyc2FsIiBhbmQgb253YXJkcy4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gRmlybXdhcmUgb2Yg bmV3IHBsYXRmb3JtIGV4cGVjdHMgcG0gZG9tYWlucyB0byBiZSByZXF1ZXN0ZWQgZXhwbGljaXRs eSBmb3IgUjUgY29yZXMgYmVmb3JlCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IHdha2luZyB0aGVt IHVwLgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBUaGF0IG1lYW5zLCBwbV9kZXZfY29yZVswXSBm b3IgUjUgY29yZXMgb24gbmV3IHBsYXRmb3JtIChWZXJzYWwpIG5lZWRzIHRvIGJlIHVzZWQgc2Ft ZSBhcyBUQ00uCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IFRoZW4sIHdlIHNob3VsZCB3YWtlIGl0 IHVwIG9uIHI1X2NvcmUuCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IFRvIHN1bW1hcml6ZToKPiA+ ID4gPiA+ID4KPiA+ID4gPiA+ID4gRm9yIHp5bnFtcCBvbmx5IGZvbGxvd2luZyBjYWxsIG5lZWRl ZCB0byBzdGFydCBSNToKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4genlucW1wX3BtX3JlcXVlc3Rf d2FrZQo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBGb3IgInZlcnNhbCIgYW5kIG9ud2FyZHMgd2Ug bmVlZCB0d28gY2FsbHMgdG8gc3RhcnQgUjU6Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ICJkZXZp Y2VfbGlua19hZGQiIGFuZCB6eW5xbXBfcG1fcmVxdWVzdF93YWtlCj4gPiA+ID4gPiA+Cj4gPiA+ ID4gPiA+IFNvLCBpbiBmdXR1cmUgcG1fY29yZV9kZXZbMF0gd2lsbCBiZSB1c2VkLgo+ID4gPiA+ ID4gPgo+ID4gPiA+ID4KPiA+ID4gPiA+IFRoYW5rcyBmb3IgdGhlIGNsYXJpZmljYXRpb24gb24g Ym90aCBmcm9udC4gIFRoZSBwcm9ibGVtIGhlcmUgaXMgdGhhdCB3ZSBhcmUKPiA+ID4gPiA+IGtl ZXBpbmcgUjUgcG93ZXIgZG9tYWluIGluZm9ybWF0aW9uIGluIHR3byBkaWZmZXJlbnQgcGxhY2Vz LCBpLmUKPiA+ID4gPiA+IHp5bnFtcF9yNV9jb3JlOjpwbV9kb21haW5faWQgYW5kIHp5bnFtcF9y NV9jb3JlOjpwbV9kZXZfY29yZTBbMF0uCj4gPiA+ID4gPgo+ID4gPiA+ID4gUGxlYXNlIHNlZSBp ZiB5b3UgY2FuIHJldHJlaXZlIHRoZSBwb3dlciBkb21haW4gSUQgZnJvbQo+ID4gPiA+ID4genlu cW1wX3I1X2NvcmU6OnBtX2Rldl9jb3JlMFswXS4gIFRoYXQgd2F5IHlvdSBjYW4gZ2V0IHRoZSBw b3dlciBkb21haW4gSUQgd2hlbgo+ID4gPiA+ID4gY2FsbGluZyB6eW5xbXBfcG1fcmVxdWVzdF93 YWtlKCkgYW5kIHp5bnFtcF9wbV9mb3JjZV9wd3Jkd24oKSBhbmQgZ2V0IHJpZCBvZgo+ID4gPiA+ ID4genlucW1wX3I1X2NvcmU6OnBtX2RvbWFpbl9pZC4KPiA+ID4gPgo+ID4gPiA+IEhpIE1hdGhp ZXUsCj4gPiA+ID4KPiA+ID4gPiBJIGxvb2tlZCBpbnRvIHRoaXMuIFByb2JhYmx5IEkgY2FuJ3Qg cmV0cmlldmUgcG1fZG9tYWluX2lkIGZyb20gcG1fZGV2X2NvcmUwWzBdLAo+ID4gPiA+Cj4gPiA+ ID4gSG93ZXZlciwgSSBjYW4gcmV0cmlldmUgaXQgZnJvbSBkZXZpY2UtdHJlZSB3aGVuIGNhbGxp bmcgenlucW1wX3BtX3JlcXVlc3Rfd2FrZQo+ID4gPiA+Cj4gPiA+ID4gYW5kIHp5bnFtcF9wbV9m b3JjZV9wd3Jkd24uCj4gPiA+ID4KPiA+ID4gPiB6eW5xbXBfcjVfY29yZTo6cG1fZG9tYWluX2lk IGlzIGNhY2hpbmcgdGhhdCB2YWx1ZSBkdXJpbmcgcHJvYmUsIGFuZCB1c2UgaXQgZHVyaW5nCj4g PiA+ID4gcmVzdCBvZiB0aGUgZHJpdmVyIGxpZmVjeWNsZS4KPiA+ID4gPgo+ID4gPiA+IEkgYW0g b2theSBlaXRoZXIgd2F5LCAoa2VlcGluZyBpdCBhcyBpdCBpcywgb3IgZ2V0IGl0IGZyb20gZGV2 aWNlLXRyZWUpLiBMZXQgbWUga25vdyB5b3VyCj4gPiA+ID4KPiA+ID4gPiBwcmVmZXJlbmNlLgo+ ID4gPiA+Cj4gPiA+Cj4gPiA+IEh1bW0uLi4gIFRoZW4gSSBzdWdnZXN0IHRvIHNpbXBseSBnZXQg cmlkIG9mIHRoZSBkZXZpY2UgbGlua2luZyB0bwo+ID4gPiBkZWFsIHdpdGggdGhlIFRDTXMnIHBv d2VyIG1hbmFnZW1lbnQuICBGcm9tIHdoZXJlIEkgc3RhbmQgaXQgcHJvdmlkZXMKPiA+ID4gbW9y ZSBjb25mdXNpb24gdGhhbiBiZW5lZml0cywgYW5kIHRoYXQgaXMgd2l0aG91dCBjb25zaWRlcmlu ZyB0aGUKPiA+ID4gZXh0cmEgY29tcGxleGl0eS4KPiA+IAo+ID4gCj4gPiBEbyB5b3UgbWVhbiB0 byBnZXQgcmlkIG9mIHBtX2Rldl9jb3JlMFsxXSwgYW5kIHBtX2Rldl9jb3JlMFsyXSBhcyB3ZWxs ID8KPiA+Cj4KPiBZZXMKPgo+ID4gSWYgeWVzLCBpdHMgcHJlZmVycmVkIHRvIHVzZSBwbV9kb21h aW4gZnJhbWV3b3JrIHRvIHBvd2VyLW9uL29mZiBUQ00uCj4gPiAKPgo+IFRoYXQgaXMgd2hlbiB0 aGUgcG0gcnVudGltZSBzdWJzeXN0ZW0gaXMgdXNlZCBleHRlbnNpdmVseSBidXQgaXQgaXNuJ3QK PiB0aGUgY2FzZSBoZXJlLiAgSW4gdGhpcyBzY2VuYXJpbyB1c2luZyBkZXZpY2UgbGlua2luZyBp cyBhZGRpbmcgYSBsb3Qgb2YKPiBjb21wbGV4aXR5IGZvciBzb21ldGhpbmcgdGhhdCBjb3VsZCBi ZSBkb25lIGluIGEgc2luZ2xlIGxpbmUgb2YgY29kZS4gICAKCk9rIGZhaXIgcG9pbnQsIHBsZWFz ZSBnaXZlIG1lIHNvbWV0aW1lIHRvIGV4cGxvcmUgbW9yZS4KCkkgZG9uJ3QgbWluZCBnZXR0aW5n IHJpZCBvZiBwbSBkb21haW4gZnJhbWV3b3JrIHVzYWdlLiBGb3Igc29tZSByZWFzb24sIGlmIHdl IG11c3QgdXNlIGl0LAoKd2UgY2FuIGFsd2F5cyBpbnRyb2R1Y2UgaXQgbGF0ZXIuCgpJIGp1c3Qg d2FudCB0byBtYWtlIHN1cmUgaWYgd2UgZG9uJ3QgdXNlIHBtIGRvbWFpbnMgZnJhbWV3b3JrLCB0 aGVuIHJlbW90ZXByb2Mgd29ya3MgZm9yCgpmdXR1cmUgcGxhdGZvcm1zIGFzIHdlbGwuIEkgd2ls bCBnZXQgYmFjayB0byB5b3UgYXMgbmVlZCB0byBkbyBtb3JlIHRlc3RpbmcgYWZ0ZXIgcmVtb3Zp bmcgcG0gZG9tYWlucyBmcmFtZXdvcmsuCgpUaGFua3MsCgpUYW5tYXkKCgo+ID4gSWYgd2Ugd2Fu dCB0byBnZXQgcmlkIG9mIHp5bnFtcF9yNV9jb3JlOjpwbV9kb21haW5faWQsIEkgd2lsbCBkbyB3 aGF0J3MgZG9uZSBpbgo+ID4gCj4gPiBfX2dlbnBkX2Rldl9wbV9hdHRhY2ggQVBJIHdoZXJlLCBw bV9kb21haW5faWQgaXMgcmV0cmlldmVkIHVzaW5nIG9mX25vZGUgb2YgcG1fZGV2X2NvcmUwWypd IGRldmljZS4KPiA+IAo+ID4gwqDCoMKgIHJldCA9IG9mX3BhcnNlX3BoYW5kbGVfd2l0aF9hcmdz KGRldi0+b2Zfbm9kZSwgInBvd2VyLWRvbWFpbnMiLAo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICIjcG93ZXItZG9tYWluLWNlbGxzIiwg aW5kZXgsICZwZF9hcmdzKTsKPgo+IFRoYXQgaXMgd2hhdCBJIGFza2VkIGZvciBpbiBteSBwcmV2 aW91cyBlbWFpbCwgaS5lIHVzZSAtPnBtX2Rldl9jb3JlMFswXSB0bwo+IHJldHJpZXZlIHRoZSBk b21haW4gSUQuCj4KPiA+IAo+ID4gSG93ZXZlciwgSXRzIHByZWZlcnJlZCB0byB1c2UgcG1fZG9t YWluIGZyYW1ld29yayB3aGVuIHBvd2VyLWRvbWFpbnMgYXJlIGF2YWlsYWJsZSBpbiBkZXZpY2Ut dHJlZS4KPiA+IAo+ID4gTGV0wqAgbWUga25vdy4KPiA+IAo+ID4gVGhhbmtzLAo+ID4gCj4gPiBU YW5tYXkKPiA+IAo+ID4gCj4gPiA+ID4gVGhhbmtzLAo+ID4gPiA+Cj4gPiA+ID4gVGFubWF5Cj4g PiA+ID4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBJIGhvcGUg dGhpcyBtZWV0cyBleHBlY3RhdGlvbnMuCj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4K PiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgICovCj4gPiA+ID4gPiA+ ID4gPiA+ID4gKyAgIGZvciAoaSA9IDE7IGkgPCByNV9jb3JlLT5udW1fcG1fZGV2OyBpKyspIHsK PiA+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICByNV9jb3JlLT5wbV9kZXZfY29yZTBbaV0g PSBkZXZfcG1fZG9tYWluX2F0dGFjaF9ieV9pZChkZXYsIGkpOwo+ID4gPiA+ID4gPiA+ID4gPiA+ ICsgICAgICAgICAgIGlmIChJU19FUlJfT1JfTlVMTChyNV9jb3JlLT5wbV9kZXZfY29yZTBbaV0p KSB7Cj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IEhlcmUgSVNfRVJSX09SX05V TEwoKSBpcyB1c2VkIHdoaWxlIHR3byBpZiBjb25kaXRpb25zIGZvciBOVUxMIGFuZCBhbiBlcnJv cgo+ID4gPiA+ID4gPiA+ID4gPiBjb2RlIGFyZSB1c2VkIGluIHRoZSBsb29wIGZvciB0aGUgbG9j a3N0ZXAgbW9kZS4gIFBsZWFzZSBwaWNrIG9uZSBoZXVyaXN0aWMgYW5kCj4gPiA+ID4gPiA+ID4g PiA+IHN0aWNrIHdpdGggaXQuICBJIGhhdmUgbm8gcHJlZmVyZW5jZSBvbiB3aGljaCBvbmUuCj4g PiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gT2ssIEkgdGhpbmsgSVNfRVJSX09SX05VTEwg aXMgbW9yZSBjbGVhbmVyLCBJIHdpbGwgYWRkcmVzcyBpdCBpbiBuZXh0IHJldmlzaW9uLgo+ID4g PiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICBkZXZfZGJnKGRldiwgImZhaWxlZCB0byBhdHRh Y2ggcG0gZG9tYWluICVkLCByZXQ9JWxkXG4iLCBpLAo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICBQVFJfRVJSKHI1X2NvcmUtPnBtX2Rldl9jb3JlMFtpXSkp Owo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgcmV0ID0gLUVJTlZBTDsK PiA+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbF9hZGRfcG1f ZG9tYWluczsKPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICB9Cj4gPiA+ID4gPiA+ID4g PiA+ID4gKyAgICAgICAgICAgcjVfY29yZS0+cG1fZGV2X2NvcmUwX2xpbmtbaV0gPSBkZXZpY2Vf bGlua19hZGQoZGV2LAo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHI1X2NvcmUtPnBtX2Rldl9jb3Jl MFtpXSwKPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBETF9GTEFHX1NUQVRFTEVTUyB8Cj4gPiA+ID4g PiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRExfRkxBR19SUE1fQUNUSVZFIHwKPiA+ID4gPiA+ID4gPiA+ID4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBETF9GTEFHX1BNX1JVTlRJTUUpOwo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgIGlm ICghcjVfY29yZS0+cG1fZGV2X2NvcmUwX2xpbmtbaV0pIHsKPiA+ID4gPiA+ID4gPiA+ID4gPiAr ICAgICAgICAgICAgICAgICAgIGRldl9wbV9kb21haW5fZGV0YWNoKHI1X2NvcmUtPnBtX2Rldl9j b3JlMFtpXSwgdHJ1ZSk7Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICBy NV9jb3JlLT5wbV9kZXZfY29yZTBbaV0gPSBOVUxMOwo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAg ICAgICAgICAgICAgICAgcmV0ID0gLUVJTlZBTDsKPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgICAg ICAgICAgICAgICAgIGdvdG8gZmFpbF9hZGRfcG1fZG9tYWluczsKPiA+ID4gPiA+ID4gPiA+ID4g PiArICAgICAgICAgICB9Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgIH0KPiA+ID4gPiA+ID4gPiA+ ID4gPiArCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgIGlmIChjbHVzdGVyLT5tb2RlID09IFNQTElU X01PREUpCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgcmV0dXJuIDA7Cj4gPiA+ID4g PiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICByNV9jb3JlLT5wbV9kZXZfY29y ZTEgPSBrY2FsbG9jKG51bV9wbV9kZXYsCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCBkZXZpY2UgKiksCj4gPiA+ID4g PiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0ZQX0tFUk5F TCk7Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgIGlmICghcjVfY29yZS0+cG1fZGV2X2NvcmUxKSB7 Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgcmV0ID0gLUVOT01FTTsKPiA+ID4gPiA+ ID4gPiA+ID4gPiArICAgICAgICAgICBnb3RvIGZhaWxfYWRkX3BtX2RvbWFpbnM7Cj4gPiA+ID4g PiA+ID4gPiA+ID4gKyAgIH0KPiA+ID4gPiA+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4gPiA+ ID4gKyAgIHI1X2NvcmUtPnBtX2Rldl9jb3JlMV9saW5rID0ga2NhbGxvYyhudW1fcG1fZGV2LAo+ ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2l6ZW9mKHN0cnVjdCBkZXZpY2VfbGluayAqKSwKPiA+ID4gPiA+ID4gPiA+ID4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdGUF9LRVJORUwpOwo+ID4gPiA+ ID4gPiA+ID4gPiA+ICsgICBpZiAoIXI1X2NvcmUtPnBtX2Rldl9jb3JlMV9saW5rKSB7Cj4gPiA+ ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAga2ZyZWUocjVfY29yZS0+cG1fZGV2X2NvcmUxKTsK PiA+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICByNV9jb3JlLT5wbV9kZXZfY29yZTEgPSBO VUxMOwo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgIHJldCA9IC1FTk9NRU07Cj4gPiA+ ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgZ290byBmYWlsX2FkZF9wbV9kb21haW5zOwo+ID4g PiA+ID4gPiA+ID4gPiA+ICsgICB9Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiA+ ID4gPiA+ICsgICAvKiBnZXQgc2Vjb25kIGNvcmUncyBkZXZpY2UgdG8gZGV0YWNoIGl0cyBwb3dl ci1kb21haW5zICovCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgIG5wID0gb2ZfZ2V0X25leHRfY2hp bGQoY2x1c3Rlci0+ZGV2LT5vZl9ub2RlLCBvZl9ub2RlX2dldChkZXYtPm9mX25vZGUpKTsKPiA+ ID4gPiA+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgIHBkZXYgPSBvZl9maW5k X2RldmljZV9ieV9ub2RlKG5wKTsKPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgaWYgKCFwZGV2KSB7 Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgZGV2X2VycihjbHVzdGVyLT5kZXYsICJj b3JlMSBwbGF0Zm9ybSBkZXZpY2Ugbm90IGF2YWlsYWJsZVxuIik7Cj4gPiA+ID4gPiA+ID4gPiA+ ID4gKyAgICAgICAgICAga2ZyZWUocjVfY29yZS0+cG1fZGV2X2NvcmUxKTsKPiA+ID4gPiA+ID4g PiA+ID4gPiArICAgICAgICAgICBrZnJlZShyNV9jb3JlLT5wbV9kZXZfY29yZTFfbGluayk7Cj4g PiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgcjVfY29yZS0+cG1fZGV2X2NvcmUxID0gTlVM TDsKPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICByNV9jb3JlLT5wbV9kZXZfY29yZTFf bGluayA9IE5VTEw7Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgcmV0ID0gLUVJTlZB TDsKPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICBnb3RvIGZhaWxfYWRkX3BtX2RvbWFp bnM7Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgIH0KPiA+ID4gPiA+ID4gPiA+ID4gPiArCj4gPiA+ ID4gPiA+ID4gPiA+ID4gKyAgIGRldjIgPSAmcGRldi0+ZGV2Owo+ID4gPiA+ID4gPiA+ID4gPiA+ ICsKPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgLyogZm9yIHp5bnFtcCB3ZSBvbmx5IGFkZCBUQ00g cG93ZXIgZG9tYWlucyBhbmQgbm90IGNvcmUncyBwb3dlciBkb21haW4gKi8KPiA+ID4gPiA+ID4g PiA+ID4gPiArICAgZm9yIChqID0gMTsgaiA8IHI1X2NvcmUtPm51bV9wbV9kZXY7IGorKykgewo+ ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgIHI1X2NvcmUtPnBtX2Rldl9jb3JlMVtqXSA9 IGRldl9wbV9kb21haW5fYXR0YWNoX2J5X2lkKGRldjIsIGopOwo+ID4gPiA+ID4gPiA+ID4gPiA+ ICsgICAgICAgICAgIGlmICghcjVfY29yZS0+cG1fZGV2X2NvcmUxW2pdKSB7Cj4gPiA+ID4gPiA+ ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICBkZXZfZGJnKGRldiwgImNhbid0IGF0dGFjaCB0 byBwbSBkb21haW4gJWRcbiIsIGopOwo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAg ICAgICAgcmV0ID0gLUVJTlZBTDsKPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAg ICAgIGdvdG8gZmFpbF9hZGRfcG1fZG9tYWluc19sb2Nrc3RlcDsKPiA+ID4gPiA+ID4gPiA+ID4g PiArICAgICAgICAgICB9IGVsc2UgaWYgKElTX0VSUihyNV9jb3JlLT5wbV9kZXZfY29yZTFbal0p KSB7Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICBkZXZfZGJnKGRldiwg ImNhbid0IGF0dGFjaCB0byBwbSBkb21haW4gJWRcbiIsIGopOwo+ID4gPiA+ID4gPiA+ID4gPiA+ ICsgICAgICAgICAgICAgICAgICAgcmV0ID0gUFRSX0VSUihyNV9jb3JlLT5wbV9kZXZfY29yZTFb al0pOwo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgZ290byBmYWlsX2Fk ZF9wbV9kb21haW5zX2xvY2tzdGVwOwo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgIH0K PiA+ID4gPiA+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgcjVf Y29yZS0+cG1fZGV2X2NvcmUxX2xpbmtbal0gPSBkZXZpY2VfbGlua19hZGQoZGV2LAo+ID4gPiA+ ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHI1X2NvcmUtPnBtX2Rldl9jb3JlMVtqXSwKPiA+ID4gPiA+ID4gPiA+ ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBETF9GTEFHX1NUQVRFTEVTUyB8Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRExfRkxB R19SUE1fQUNUSVZFIHwKPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBETF9GTEFHX1BNX1JVTlRJTUUp Owo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgIGlmICghcjVfY29yZS0+cG1fZGV2X2Nv cmUxX2xpbmtbal0pIHsKPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgIGRl dl9wbV9kb21haW5fZGV0YWNoKHI1X2NvcmUtPnBtX2Rldl9jb3JlMVtqXSwgdHJ1ZSk7Cj4gPiA+ ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICByNV9jb3JlLT5wbV9kZXZfY29yZTFb al0gPSBOVUxMOwo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgcmV0ID0g LUVOT0RFVjsKPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgIGdvdG8gZmFp bF9hZGRfcG1fZG9tYWluc19sb2Nrc3RlcDsKPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgICAg ICB9Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgIH0KPiA+ID4gPiA+ID4gPiA+ID4gPiArCj4gPiA+ ID4gPiA+ID4gPiA+ID4gK2ZhaWxfYWRkX3BtX2RvbWFpbnNfbG9ja3N0ZXA6Cj4gPiA+ID4gPiA+ ID4gPiA+ID4gKyAgIHdoaWxlICgtLWogPj0gMCkgewo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAg ICAgICAgIGRldmljZV9saW5rX2RlbChyNV9jb3JlLT5wbV9kZXZfY29yZTFfbGlua1tqXSk7Cj4g PiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgZGV2X3BtX2RvbWFpbl9kZXRhY2gocjVfY29y ZS0+cG1fZGV2X2NvcmUxW2pdLCB0cnVlKTsKPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgfQo+ID4g PiA+ID4gPiA+ID4gPiA+ICsgICBrZnJlZShyNV9jb3JlLT5wbV9kZXZfY29yZTEpOwo+ID4gPiA+ ID4gPiA+ID4gPiA+ICsgICByNV9jb3JlLT5wbV9kZXZfY29yZTEgPSBOVUxMOwo+ID4gPiA+ID4g PiA+ID4gPiA+ICsgICBrZnJlZShyNV9jb3JlLT5wbV9kZXZfY29yZTFfbGluayk7Cj4gPiA+ID4g PiA+ID4gPiA+ID4gKyAgIHI1X2NvcmUtPnBtX2Rldl9jb3JlMV9saW5rID0gTlVMTDsKPiA+ID4g PiA+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4gPiA+ID4gK2ZhaWxfYWRkX3BtX2RvbWFpbnM6 Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgIHdoaWxlICgtLWkgPj0gMCkgewo+ID4gPiA+ID4gPiA+ ID4gPiA+ICsgICAgICAgICAgIGRldmljZV9saW5rX2RlbChyNV9jb3JlLT5wbV9kZXZfY29yZTBf bGlua1tpXSk7Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgZGV2X3BtX2RvbWFpbl9k ZXRhY2gocjVfY29yZS0+cG1fZGV2X2NvcmUwW2ldLCB0cnVlKTsKPiA+ID4gPiA+ID4gPiA+ID4g PiArICAgfQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICBrZnJlZShyNV9jb3JlLT5wbV9kZXZfY29y ZTApOwo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICByNV9jb3JlLT5wbV9kZXZfY29yZTAgPSBOVUxM Owo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICBrZnJlZShyNV9jb3JlLT5wbV9kZXZfY29yZTBfbGlu ayk7Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgIHI1X2NvcmUtPnBtX2Rldl9jb3JlMF9saW5rID0g TlVMTDsKPiA+ID4gPiA+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ ID4gPiA+IFRoZSBlcnJvciBwYXRoIGlzIG11Y2ggY2xlYW5lciBhbmQgcmVhZGFibGUgbm93Lgo+ ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiBJIHdpbGwgY29udGludWUgdG9tb3Jy b3cuCj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IE1hdGhpZXUKPiA+ID4gPiA+ ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgcmV0dXJuIHJldDsKPiA+ID4gPiA+ID4g PiA+ID4gPiArfQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiA+ID4gPiAgLyoq Cj4gPiA+ID4gPiA+ID4gPiA+ID4gICAqIHp5bnFtcF9yNV9ycHJvY19wcmVwYXJlKCkKPiA+ID4g PiA+ID4gPiA+ID4gPiAgICogYWRkcyBjYXJ2ZW91dHMgZm9yIFRDTSBiYW5rIGFuZCByZXNlcnZl ZCBtZW1vcnkgcmVnaW9ucwo+ID4gPiA+ID4gPiA+ID4gPiA+IEBAIC03NzAsMTkgKzk2NiwzMCBA QCBzdGF0aWMgaW50IHp5bnFtcF9yNV9ycHJvY19wcmVwYXJlKHN0cnVjdCBycHJvYyAqcnByb2Mp Cj4gPiA+ID4gPiA+ID4gPiA+ID4gIHsKPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgaW50IHJldDsK PiA+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICByZXQgPSB6eW5xbXBf cjVfYWRkX3BtX2RvbWFpbnMocnByb2MpOwo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICBpZiAocmV0 KSB7Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgZGV2X2VycigmcnByb2MtPmRldiwg ImZhaWxlZCB0byBhZGQgcG0gZG9tYWluc1xuIik7Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAg ICAgICAgcmV0dXJuIHJldDsKPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgfQo+ID4gPiA+ID4gPiA+ ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgcmV0ID0gYWRkX3RjbV9iYW5rcyhycHJv Yyk7Cj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgIGlmIChyZXQpIHsKPiA+ID4gPiA+ID4gPiA+ID4g PiAgICAgICAgICAgICBkZXZfZXJyKCZycHJvYy0+ZGV2LCAiZmFpbGVkIHRvIGdldCBUQ00gYmFu a3MsIGVyciAlZFxuIiwgcmV0KTsKPiA+ID4gPiA+ID4gPiA+ID4gPiAtICAgICAgICAgICByZXR1 cm4gcmV0Owo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgIGdvdG8gZmFpbF9wcmVwYXJl Owo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICB9Cj4gPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ ID4gPiA+ID4gPiAgICAgcmV0ID0gYWRkX21lbV9yZWdpb25zX2NhcnZlb3V0KHJwcm9jKTsKPiA+ ID4gPiA+ID4gPiA+ID4gPiAgICAgaWYgKHJldCkgewo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAg ICAgICAgIGRldl9lcnIoJnJwcm9jLT5kZXYsICJmYWlsZWQgdG8gZ2V0IHJlc2VydmUgbWVtIHJl Z2lvbnMgJWRcbiIsIHJldCk7Cj4gPiA+ID4gPiA+ID4gPiA+ID4gLSAgICAgICAgICAgcmV0dXJu IHJldDsKPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICBnb3RvIGZhaWxfcHJlcGFyZTsK PiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgfQo+ID4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ ID4gPiA+ID4gICAgIHJldHVybiAwOwo+ID4gPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4g PiA+ID4gPiArZmFpbF9wcmVwYXJlOgo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICB6eW5xbXBfcjVf cmVtb3ZlX3BtX2RvbWFpbnMocnByb2MpOwo+ID4gPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ ID4gPiA+ID4gPiArICAgcmV0dXJuIHJldDsKPiA+ID4gPiA+ID4gPiA+ID4gPiAgfQo+ID4gPiA+ ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gIC8qKgo+ID4gPiA+ID4gPiA+ID4gPiA+ IEBAIC04MDEsNiArMTAwOCw4IEBAIHN0YXRpYyBpbnQgenlucW1wX3I1X3Jwcm9jX3VucHJlcGFy ZShzdHJ1Y3QgcnByb2MgKnJwcm9jKQo+ID4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4g PiA+ID4gICAgIHI1X2NvcmUgPSBycHJvYy0+cHJpdjsKPiA+ID4gPiA+ID4gPiA+ID4gPgo+ID4g PiA+ID4gPiA+ID4gPiA+ICsgICB6eW5xbXBfcjVfcmVtb3ZlX3BtX2RvbWFpbnMocnByb2MpOwo+ ID4gPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgZm9yIChpID0gMDsg aSA8IHI1X2NvcmUtPnRjbV9iYW5rX2NvdW50OyBpKyspIHsKPiA+ID4gPiA+ID4gPiA+ID4gPiAg ICAgICAgICAgICBwbV9kb21haW5faWQgPSByNV9jb3JlLT50Y21fYmFua3NbaV0tPnBtX2RvbWFp bl9pZDsKPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgICAgICAgICBpZiAoenlucW1wX3BtX3JlbGVh c2Vfbm9kZShwbV9kb21haW5faWQpKQo+ID4gPiA+ID4gPiA+ID4gPiA+IC0tCj4gPiA+ID4gPiA+ ID4gPiA+ID4gMi4yNS4xCj4gPiA+ID4gPiA+ID4gPiA+ID4KCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0 CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFk ZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK