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 83DE7C021A5 for ; Wed, 12 Feb 2025 09:33:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version: Content-Transfer-Encoding:Content-ID:Content-Type:In-Reply-To:References: Message-ID:Date:Subject:CC:To:From:Reply-To:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=gNo7rPPA9ixpfa+Q36C6vkI6nOR5jAOwOSPlUuD4COg=; b=36EM1sgWUXUj2Ah2V42WKIAxE/ PP9Qt2RIecE0vfmZBwXeyrbSD5r48+VnM1AFKQ/N9SYAOb1Rf463G3Xz3+urRX/HtnlAcos55GqJj 2FCPvkcDkbTZ6R1fbigGvcZm1VOTZ3ui3qC5zTyZ5nguH5Lduz5fp1Aa87e+B1UMHoUluL63UPdCx L4eLsrv+j2nl+GierfXOm0Y4XKKYz9JjUbDugyckmKcLo9cGPkIlmLGeGSKY5cHhTVzweorhcJLFw d9J/g2dfLK8hObfKSi+pqd1nUOndAY/BVLXgm+0pBATyBmZ7Ff3hUc4JsHpohiK9+6EjImX8+uA6t 6zDA8/nw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1ti97J-00000006n67-05yv; Wed, 12 Feb 2025 09:33:13 +0000 Received: from mailgw02.mediatek.com ([216.200.240.185]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1ti94t-00000006mep-2sF9; Wed, 12 Feb 2025 09:30:46 +0000 X-UUID: 03abedd2e92411ef9048ed6ed365623b-20250212 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=gNo7rPPA9ixpfa+Q36C6vkI6nOR5jAOwOSPlUuD4COg=; b=m7029fc5zD06qnYx4QJXEc3EnnopYVnNj+kRPHTdtInEmQfcoUR+bTEp9Lh9I9KARSXLk3TeUlelttN+vJ3y6IYp8m88vPbDc7qlVIwody2MQBTpAyU59/fTAxLhTdHzf0fYf7T3YJVXWLxQ13G8Q9TiMsvszUdhUCHy53MfIJo=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.46,REQID:eb9953c5-379b-4fa9-8e9d-2e6c4305aaff,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:60aa074,CLOUDID:f54b7427-6332-4494-ac76-ecdca2a41930,B ulkID:nil,BulkQuantity:0,Recheck:0,SF:80|81|82|83|102,TC:nil,Content:0|50, EDM:-3,IP:nil,URL:11|1,File:nil,RT: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,ARC:0 X-CID-BVR: 0 X-CID-BAS: 0,_,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR,TF_CID_SPAM_ULN X-UUID: 03abedd2e92411ef9048ed6ed365623b-20250212 Received: from mtkmbs14n1.mediatek.inc [(172.21.101.75)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 1321881118; Wed, 12 Feb 2025 02:30:36 -0700 Received: from mtkmbs10n2.mediatek.inc (172.21.101.183) by mtkmbs11n2.mediatek.inc (172.21.101.187) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.28; Wed, 12 Feb 2025 17:30:33 +0800 Received: from HK2PR02CU002.outbound.protection.outlook.com (172.21.101.237) by mtkmbs10n2.mediatek.inc (172.21.101.183) with Microsoft SMTP Server id 15.2.1258.28 via Frontend Transport; Wed, 12 Feb 2025 17:30:33 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RFCpExfMnktg8htGKzicU+TgpB9r6HDS//BzEfop7Da5bkI2DadmSeNYC7wqHDYNMaAx642RdzalgjzEjoodnapx7q9h11aSuH1BR7k1sapA3ly8+X2p7z+am4uwIUPTXeBUtnXaDqZ6SYv6Lk0A6IyE8x1s1yTtJqvWonAweveh8qWj9fNz7ynBwQGZBPvrvXCau9ajfivG+RH2t4Ka6qnxwLQWyUSG/P5LVG96HMfpg5HC2Wlz4y+Vl1IQ8javyZ50GGKvOTflMsSfNvoyp66hVmXQwbWgJN4dDNNQD2AMFfqSkf6LkpcP3WhVJJP9tYRKR3wNNnlUcZ15tzY7pw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=gNo7rPPA9ixpfa+Q36C6vkI6nOR5jAOwOSPlUuD4COg=; b=O0ST1iVaQD9+7pHEwJhHhU5xN+C0OvDBzRNJ4WU9zkYiFlIqop2SzoS90QQSANTeNX0FkQTux7Vi3dhDd01udQbQArANlpQbrL4Vx1p057HfnhZcdjIRVzLttoMthvAo63zx21IGtsKmdNR6/n1UfS6uKzX5sKL99EazTKFXcKg+P13qq60lX2d1QItEyIJU14dy43uWHQtkWZz2pilQNcxtUzW1ZfHry6QbcW8CF/Z6vS1OaW1tTQzQ8edkUo40ymc+oiMQA2C2PwpvZq5iquRCy4NASUzdvneeZjYaXsFNr08ZA7FxmY+W1Su8jQcJk5n5qZU7EUIR24Sx0XN7QA== 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=gNo7rPPA9ixpfa+Q36C6vkI6nOR5jAOwOSPlUuD4COg=; b=FOz4Duf/zH+EhNCcBCB6Ykq4wQ294LMo/ajzfKHu54Lci7guqVFGCCAgIu5+RPaUk6OzSuJOEY+z2Z07AiJKcd7Pdid1WobTliBJeVdQ2Gp3ZXObeLCimVvjd8YQc0k5yRQ4lK26criNq3TRgH6A+KfLy9marcjoYG9axItW/xA= Received: from TYZPR03MB6624.apcprd03.prod.outlook.com (2603:1096:400:1f4::13) by SEYPR03MB6964.apcprd03.prod.outlook.com (2603:1096:101:bc::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8422.19; Wed, 12 Feb 2025 09:30:30 +0000 Received: from TYZPR03MB6624.apcprd03.prod.outlook.com ([fe80::9ce6:1e85:c4a7:2a54]) by TYZPR03MB6624.apcprd03.prod.outlook.com ([fe80::9ce6:1e85:c4a7:2a54%3]) with mapi id 15.20.8422.015; Wed, 12 Feb 2025 09:30:30 +0000 From: =?utf-8?B?Q0sgSHUgKOiDoeS/iuWFiSk=?= To: "robh@kernel.org" , "krzk+dt@kernel.org" , =?utf-8?B?UGF1bC1wbCBDaGVuICjpmbPmn4/pnJYp?= , "conor+dt@kernel.org" , AngeloGioacchino Del Regno , "chunkuang.hu@kernel.org" CC: "matthias.bgg@gmail.com" , "treapking@chromium.org" , =?utf-8?B?U2luZ28gQ2hhbmcgKOW8teiIiOWciyk=?= , Project_Global_Chrome_Upstream_Group , "dri-devel@lists.freedesktop.org" , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" , =?utf-8?B?SmFzb24tSkggTGluICjmnpfnnb/npaUp?= , =?utf-8?B?TmFuY3kgTGluICjmnpfmrKPonqIp?= , =?utf-8?B?WGlhbmRvbmcgV2FuZyAo546L5YWI5YasKQ==?= , "linux-mediatek@lists.infradead.org" , =?utf-8?B?U3VubnkgU2hlbiAo5rKI5aeN5aeNKQ==?= , "p.zabel@pengutronix.de" , =?utf-8?B?U2lyaXVzIFdhbmcgKOeOi+eak+aYsSk=?= , "linux-arm-kernel@lists.infradead.org" Subject: Re: [PATCH 12/12] drm/mediatek: Add support for multiple mmsys in the one mediatek-drm driver Thread-Topic: [PATCH 12/12] drm/mediatek: Add support for multiple mmsys in the one mediatek-drm driver Thread-Index: AQHbY19F5DsWv3UpckSno2MxgH5TnrNDmsOA Date: Wed, 12 Feb 2025 09:30:30 +0000 Message-ID: References: <20250110123835.2719824-1-paul-pl.chen@mediatek.com> <20250110123835.2719824-14-paul-pl.chen@mediatek.com> In-Reply-To: <20250110123835.2719824-14-paul-pl.chen@mediatek.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.52.3-0ubuntu1 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_|SEYPR03MB6964:EE_ x-ms-office365-filtering-correlation-id: 72b9ed90-da3c-4e97-8ffc-08dd4b47e462 x-ld-processed: a7687ede-7a6b-4ef6-bace-642f677fbe31,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?TUpKcVF4c0xJRnBtR0RmUWQwc2JPRElNbURKYS9yZjlkR3FkVnR4SFV1TE5K?= =?utf-8?B?ZFhSbm1EWHV4T1pqdzhLTllvbmd4VUNoTzdXdGlBWUx2bnJzWXFPc1BYRndM?= =?utf-8?B?TkEyQVR2SEdJNlByRjB0OUxNQmRmSVE3cW5YejlOZytSRG4zN2p6aDR2ZEF2?= =?utf-8?B?dGxUTjdLdGI4ODc2UzI0VUVGdzEzTUVhWlZUWHlZNzQxNGJTNlVIUzY5eVkr?= =?utf-8?B?Z1AyazVZY0ZYRUlzNnFnL1hMNkhONlVYc2Q1ZUMzdHJTNFpHOTZPdUN5NW95?= =?utf-8?B?YjVSWnREaHBoZ1R2RHJqeVBmUGw5K1VtNExzdXB2QUVzemczU1NKdURvT1ht?= =?utf-8?B?YWlvRUlDa0JZcklXbVM4UHZpSmFvUElJYUI2SVRNQnhRZjc2MC82Y0NYc1JF?= =?utf-8?B?TXJmdENxMTY1aEQrRWMrMDZTTFhvNnpBb0k1bytKVyt4cVI5cy9TdUxiM1Iz?= =?utf-8?B?bWhJSjg2eldqM1hUaHM5WWYxanhMZ1dkWXJqMlNzTER1UnJUYnRkWThwRUZG?= =?utf-8?B?ZkRaOTY1OVJuOGxoVWd4OWJlVitIZC90M0xDUDFqMCtQU0xBeGNwZWFORG52?= =?utf-8?B?ZWtMTElGQWZwNTV4ZWF3SnlyYm40b1hjV2FITUFGa2NhdnVjQjJpelZ3Q0Vu?= =?utf-8?B?WUlWMGNLOXk4UlZid0kwM2czOW9hN0N3T3dKUjV5Tk4xaUJ3dnlWQmVBZG1l?= =?utf-8?B?bHRSOWFaQ0t4NmdxN0J4Y0cxVkZMNzJraU4wMFpSdE9DWUM2SlZtOENuaUR5?= =?utf-8?B?K2V3NHY3YlVYZGtKZENEc294azhKUXMwcSswZ0Z5M3RWQW44UWxRb3lRUnpl?= =?utf-8?B?L20xbWYxNnQwdFZyVFBtbGJSZnFCZTlzbWMybVpLdzJnSkhzVFo5Q0wvclZj?= =?utf-8?B?R3Q2RHkwUENlZGh3cHhjWWRqS0pOSTVDcmhyREY0aW83eVlHczZNVVIzaU5w?= =?utf-8?B?N082UC8zQlJSK1dyQ3paUlc2bTZQRFhLU0JlMThzeWpCRjdmSk4ydnFJdDIw?= =?utf-8?B?VUgwQlhFOWxFNkE5V3JFV0hkbUFuNHhCNDQrRUlJWWdXWk12Y1IwdG9Hdjla?= =?utf-8?B?d3VqWmJqcG1iM1A0T2p0eUowNEtPWjlNTTZYK200OThWYndSTE9pck5JbXFQ?= =?utf-8?B?WmswdGlUV2cxWUJSb3A1UWpOMUZVazQxalBVRCsxY05xWk93RWRjWWFvOEFQ?= =?utf-8?B?WUh3Y0VqbVovczFJRGduQ2xDQi96V3d6YUhHb1R6Qklvdms2TTJHREVJS3Jr?= =?utf-8?B?SUYvaFBGaitwcXZQNXc1SDJmSktCSzMwekYrMHR1amdWaGkzWXpXdS9wbWhQ?= =?utf-8?B?SWZLS3lVQlBpeHNuZDlLWFZYZEJMdlFIMXJlZDliY2d6WE0rUXRGTGUxNkRx?= =?utf-8?B?QW9oQlBzYUVLeCswU0UrcnFwOWJrQk1YaXF1MTAxRWJBWFlLVnhOcjV5OE1E?= =?utf-8?B?bTlvcG54MmxQdXFwNEcxb0hMcS9VUUNoN0ZFZUZaOW9DMXNhSlRNUFJ0TDFI?= =?utf-8?B?b0c1SGRDRzBuTENYV3J4Q0tscytXV09ONXlFZGJyNUN0eWY2NHg5L2p3VTBF?= =?utf-8?B?K2piemlhWnJpeUY2QUxibk9rLzRLM05mYnQ4a0ZyL3pwZm0vZTg2dEZhM0Mz?= =?utf-8?B?eTFyaTYzM0gzcHBiYWFFaW82cHpsVEhwNWR0bjVSMjlrTnJnQVFVN0VGdGFq?= =?utf-8?B?V3F1ZkhNdnNxVmFvd1JuTUtFOFR6cGJCNW8yaVZlQXRJUUFrd0xNWE51bUZx?= =?utf-8?B?SjJrREhsdmVtMFhjLzhPcWZSM0pDK1VRbjRxQ3Y5aE1sTGQ1a3VWTldmQUJI?= =?utf-8?B?dlVaTjdzYXREZUJYSTc1aEJoUnJtbzZyUVdweEVnZGFjZXlrWjNpdjFIM3dp?= =?utf-8?B?TjdlRlJPR0krU2VKR21FUzBmWm9BNDRJY1kvZmlpTi9tS3lzYjZLQ2dSWllL?= =?utf-8?Q?pQQ2TNH5bW0q5fcu3j5c2Dlpw4UEQ/39?= 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:(13230040)(1800799024)(366016)(376014)(7416014)(38070700018);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WE5TTTFqL2pCSFJsTkdmZ3p6VWoyRVRUM2VJVGkxQm9qamVTc1B1UllxbUhV?= =?utf-8?B?VTJzU2x4M1lKeElHdlRVUTVKQ2NXUm1mVGZTaCtkNlp4QXRpdWwyK3M3azFQ?= =?utf-8?B?OFNTQUV4aVhwakZCbG1GbEJwS2djdE5aWjZ3eEdycjlxZ3FXWGw0Rk5kNWZQ?= =?utf-8?B?UXNiZmtWNDlyT0dCMnZ1NDh2YnZudW1hUFp3TEM3TENHMWRFWjJnZU90ZmU1?= =?utf-8?B?UmVRcWFYamNFeEV3YjRUYzJzQUNvelN4THVwMkpJc2hpTERTYk9Tdk5CRVZ1?= =?utf-8?B?dk5WRnhsSmZBVVVWbmdTRFFCbm0vTjJmRHNlZUJ6RlZ3dkdsK0R0MERLNCto?= =?utf-8?B?emNDYzE5cmgxeVNUbFkrSU5qMFR2aXU3d0tPUVZ6TFh5Y3V3NGZCMzZFZWtV?= =?utf-8?B?TU01Z2w0bmpwOHVVbFVnNEZhVFg1NzRHdnZDTVNQT2VnQTRHMjA1MGRyZ2JK?= =?utf-8?B?aUdvMlc4N2hnd3lNbThpbTM4am4zaytSZ3BDVmRsR3luUXhjUkg2WE0weVI1?= =?utf-8?B?OHdjQmFGRldtck5JdTVVNEJKRitIUGNvYUp0SkQxOGhmY294UXNLZjJoR2tn?= =?utf-8?B?Yk1hVmhNYUJnT0dzRW1nZ1l1L3JqWmRYM0hHRW1xM3JjaHNabzZGRlNFWnhP?= =?utf-8?B?M1RVQ09HRmJEemF5UzVUa2hrNWV2L0NHaUVGRSt0cFluMllCbHo4YUkxYmRM?= =?utf-8?B?N3dTeWxsbDFGSzhycGsvb3VkVzBHMnNaZGZULzZlemlDbjZNckxoQ0NFbThL?= =?utf-8?B?OGRvVElZL0l4RzRjd2tHb1ZWSTBxcVYwV3ZCYkdJN01uSkE2aENDbWU5VlNx?= =?utf-8?B?aldudGtrb25YWEF4ZG43MmNOeUU4c0xLWlJySGxyTzdoc1RNT3BtazZEdnky?= =?utf-8?B?am01WllpT08vWjIxV2tLbjA0NFhoY3R5bXNlN1RjOXE5TnVObnpUNHRCeWpT?= =?utf-8?B?WUluWDQ0MVU4VnBIdUMzS0d1b2xsSmt5TWUxT0ZOa3ZKZHRBZGI3Z0pxOWs3?= =?utf-8?B?a0JRaUxTTnA5SkprTVd0T2wzUE9CRlZvTjU1SS93Q014MW5nTUVzNStqTWlE?= =?utf-8?B?T28rNU5iRUpqTUNCNFRLTVhMTVIwVVhXM1JVZFFidWpHYzlYTk5iRWw1dEF2?= =?utf-8?B?eWxOMVJOTFFFeElVRkg2VUdkTDNWM29jRjRrY29zeURVMXZMblVlc3hJT0Q4?= =?utf-8?B?RittNnZQeElaUzM3VEpEeE94dk1KRU1EdG12Nzh0UmNtdk5WV09ST3lDSzAw?= =?utf-8?B?eU9mLzRiSUJpRkZSQXhKNTBhbVB4bXJrWHc5VjZreE1md29FTlkwT2lTVFc2?= =?utf-8?B?Y2k3aUFCOUhMTzFVT25ic05HRnVmOWh6akZKT2w2dXlXTXVvanQrbFhEcU1q?= =?utf-8?B?TUs5WjZCN3lyWVRQdUlvb0ozNWp1MktaeHhKd0plOTdqM1lKNWx3a2MxZlFM?= =?utf-8?B?aUZqdTZXWDhlYlBJcHEwUDdJNXFMZFJGa3NLWTFSb2c1TEZJT2hWZlN3YzJ2?= =?utf-8?B?Y0tRQTNwSVdmcGYrSmExWkRDT1l4M01tZkQ1SjVDOGlkZ1gzb3ZoWTczVHhG?= =?utf-8?B?eTgxdjFZVXBNUlFWdC9JN1FCa2lQV0NGbFdMbWRjcmtweTZjNUJEa25qT2lL?= =?utf-8?B?MnJKelBRelN4K3l6YWJ0UDBDdzBabkt6NytwV1JJYmpnMVczcnk2MjZ6Wlda?= =?utf-8?B?WkdWa3NiREhGdlRQdjAyc1ZBNklraUQ0S2trZGRTZkI3RndySmRnZVVmYmpT?= =?utf-8?B?VWNrZVJuM3ZsbVloK1NreUJtczNHa1o0NzVEVW5sMWMxTTdUeTVwK09wNWs4?= =?utf-8?B?SXdIZ1BxdGQ1c2RTemdXdEVJS0hZYkVISVBLNGJqWTdYeG9qZTQ0eHdmOFNU?= =?utf-8?B?YitoQ3pPb1Ewb0Q2SGVJVUZuSVlCTUdUTUNEUWNPd3hNeFVCUFR0YzYvWkhq?= =?utf-8?B?MjRzNS81RGFHdVByM1lJcVFpbnp4ZjREcnovNlRWWVFqbnoxSUo2d1hTd2Ix?= =?utf-8?B?bExPUWFvWG9TbURRRmo3Z29DYjdnZ0xVUzJKUmM3NUpjSDhKUng4dTFSMHlR?= =?utf-8?B?WmVNalZHU212TTNjbExIOU81ZzI4UldSU0dLekt2dlUwUEZhNDhYU1BRcDdS?= =?utf-8?Q?Z+/lJ4TUn+O8FizC55ndyeiQh?= Content-Type: text/plain; charset="utf-8" Content-ID: <5202E35DC23E8C40A5398935B92AEEAF@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: 72b9ed90-da3c-4e97-8ffc-08dd4b47e462 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Feb 2025 09:30:30.2656 (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: 8NS5BAxk3Gpaeyqr/CtKg1aESNoA8ngYIxZcZKtIk3L5X00y/UYu0DrmFMyhAZSUhb0lI5zORYQObzAy1MtI+A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEYPR03MB6964 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250212_013043_861509_1719DBC2 X-CRM114-Status: GOOD ( 19.91 ) 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: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGksIFBhdWw6DQoNCk9uIEZyaSwgMjAyNS0wMS0xMCBhdCAyMDozNCArMDgwMCwgcGF1bC1wbC5j aGVuIHdyb3RlOg0KPiBGcm9tOiAiTmFuY3kuTGluIiA8bmFuY3kubGluQG1lZGlhdGVrLmNvbT4N Cj4gDQo+IFRvIHN1cHBvcnQgbXVsdGlwbGUgbW1zeXMgaW5zdGFuY2VzIGluIHRoZSBvbmUgbWVk aWF0ZWstZHJtIGluc3RhbmNlLA0KPiBwcm92aWRpbmcgaW1wcm92ZWQgZmxleGliaWxpdHkgYW5k IHNjYWxhYmlsaXR5IGJ5IHRoZSBmb2xsb3dpbmcgY2hhbmdlczoNCj4gDQo+IDEuIERlZmluZWQg bmV3IERSTSBjb21wb25lbnQgSURzIEREUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SKg0K PiAgIHRvIHN1cHBvcnQgZGlmZmVyZW50IG1tc3lzIGNvbXBvc2l0aW9uLg0KPiAyLiBBZGRlZCBu ZXcgY29tcG9uZW50IHR5cGVzIE1US19ESVNQX1ZJUlRVQUwgdG8gc3VwcG9ydCB0aGUNCj4gICBy b3V0aW5nIHRvIHZpcnR1YWwgZGlzcGxheSBjb21wb25lbnRzLg0KPiAzLiBBZGRlZCBhbmQgYWRq dXN0ZWQgdGhlIGV4aXN0ZWQgc3RydWN0dXJlIG9yIGludGVyZmFjZSB0byBleHRlbmQNCj4gICB0 aGUgc3VwcG9ydCBvZiBtdWx0aXBsZSBtbXN5cyBpbnN0YW5jZXMuDQo+IDQuIE1vZGlmaWVkIHRo ZSBjb21wb25lbnQgbWF0Y2hpbmcgYW5kIGJpbmRpbmcgbG9naWMgdG8gc3VwcG9ydA0KPiAgIG11 bHRpcGxlIG1tc3lzIGluc3RhbmNlcy4NCg0KSSB0aGluayB0aGUgdGl0bGUgd291bGQgY29uZnVz ZSBtZS4NCk9yaWdpbmFsIG1lZGlhdGVrLWRybSBkcml2ZXIgYWxyZWFkeSBzdXBwb3J0IG11bHRp cGxlIG1tc3lzLg0KSSB0cnkgdG8gdW5kZXJzdGFuZCBNVDgxOTYgZGlzcGxheS4NCklzIG9uZSBk aXNwbGF5IHBpcGVsaW5lIHNlcGFyYXRlZCBpbnRvIHR3byBtbXN5cz8NClRoZSBmaXJzdCBpcyBv dmxzeXMgYW5kIHRoZSBzZWNvbmQgaXMgZGlzcHN5cz8NCklmIHNvLCBJIHdvdWxkIGxpa2UgbWVk aWF0ZWstZHJtIGRyaXZlciBzZWUgb25seSBtbXN5cyAoZGlzcHN5cyksDQphbmQgbGV0IG92bHN5 cyBjb250cm9sIGlzIGhpZGRlbiBpbiBvdmxzeXMgc3ViIGRyaXZlciwgc28gbWVkaWF0ZWstZHJt IGRyaXZlciB3b3VsZCBub3QgY2hhbmdlIHNvIG11Y2guDQoNCj4gDQo+IFNpZ25lZC1vZmYtYnk6 IE5hbmN5LkxpbiA8bmFuY3kubGluQG1lZGlhdGVrLmNvbT4NCj4gU2lnbmVkLW9mZi1ieTogUGF1 bC1wbC5DaGVuIDxwYXVsLXBsLmNoZW5AbWVkaWF0ZWsuY29tPg0KPiAtLS0NCj4gIGRyaXZlcnMv Z3B1L2RybS9tZWRpYXRlay9tdGtfY3J0Yy5jICAgICB8IDM1MCArKysrKysrKysrKysrKysrKysr LS0tLS0NCj4gIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfY3J0Yy5oICAgICB8ICAgNiAr LQ0KPiAgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kZHBfY29tcC5jIHwgMTA2ICsrKysr LS0NCj4gIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGRwX2NvbXAuaCB8ICAgMiArDQo+ ICBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuYyAgfCAyMjMgKysrKysrKysr KysrLS0tDQo+ICBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaCAgfCAgMTYg Ky0NCj4gIDYgZmlsZXMgY2hhbmdlZCwgNTc4IGluc2VydGlvbnMoKyksIDEyNSBkZWxldGlvbnMo LSkNCj4gDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2NydGMu YyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfY3J0Yy5jDQo+IGluZGV4IGViMGUxMjMz YWQwNC4uZWNhNjk0MWJmYWEyIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0 ZWsvbXRrX2NydGMuYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2NydGMu Yw0KPiBAQCAtNTgsMTMgKzU4LDE3IEBAIHN0cnVjdCBtdGtfY3J0YyB7DQo+ICAJd2FpdF9xdWV1 ZV9oZWFkX3QJCWNiX2Jsb2NraW5nX3F1ZXVlOw0KPiAgI2VuZGlmDQo+ICANCj4gLQlzdHJ1Y3Qg ZGV2aWNlCQkJKm1tc3lzX2RldjsNCj4gKwlzdHJ1Y3QgZGV2aWNlCQkJKm1tc3lzX2RldltNQVhf TU1TWVNdOw0KPiAgCXN0cnVjdCBkZXZpY2UJCQkqZG1hX2RldjsNCj4gLQlzdHJ1Y3QgbXRrX211 dGV4CQkqbXV0ZXg7DQo+ICsJc3RydWN0IGRldmljZQkJCSp2ZGlzcF9hb19kZXY7DQo+ICsJc3Ry dWN0IG10a19tdXRleAkJKm11dGV4W01BWF9NTVNZU107DQo+ICAJdW5zaWduZWQgaW50CQkJZGRw X2NvbXBfbnI7DQo+ICAJc3RydWN0IG10a19kZHBfY29tcAkJKipkZHBfY29tcDsNCj4gKwllbnVt IG10a19kcm1fbW1zeXMJCSpkZHBfY29tcF9zeXM7DQo+ICsJYm9vbAkJCQlleGlzdFtNQVhfTU1T WVNdOw0KPiAgCXVuc2lnbmVkIGludAkJCW51bV9jb25uX3JvdXRlczsNCj4gIAljb25zdCBzdHJ1 Y3QgbXRrX2RybV9yb3V0ZQkqY29ubl9yb3V0ZXM7DQo+ICsJZW51bSBtdGtfZHJtX21tc3lzCQlj b25uX3JvdXRlc19zeXM7DQo+ICANCj4gIAkvKiBsb2NrIGZvciBkaXNwbGF5IGhhcmR3YXJlIGFj Y2VzcyAqLw0KPiAgCXN0cnVjdCBtdXRleAkJCWh3X2xvY2s7DQo+IEBAIC04Miw2ICs4NiwxMSBA QCBzdHJ1Y3QgbXRrX2NydGNfc3RhdGUgew0KPiAgCXVuc2lnbmVkIGludAkJCXBlbmRpbmdfdnJl ZnJlc2g7DQo+ICB9Ow0KPiAgDQo+ICtzdHJ1Y3QgbXRrX2NydGNfY29tcF9pbmZvIHsNCj4gKwll bnVtIG10a19kcm1fbW1zeXMgc3lzOw0KPiArCXVuc2lnbmVkIGludCBjb21wX2lkOw0KPiArfTsN Cj4gKw0KPiAgc3RhdGljIGlubGluZSBzdHJ1Y3QgbXRrX2NydGMgKnRvX210a19jcnRjKHN0cnVj dCBkcm1fY3J0YyAqYykNCj4gIHsNCj4gIAlyZXR1cm4gY29udGFpbmVyX29mKGMsIHN0cnVjdCBt dGtfY3J0YywgYmFzZSk7DQo+IEBAIC0xMjUsNyArMTM0LDkgQEAgc3RhdGljIHZvaWQgbXRrX2Ny dGNfZGVzdHJveShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpDQo+ICAJc3RydWN0IG10a19jcnRjICpt dGtfY3J0YyA9IHRvX210a19jcnRjKGNydGMpOw0KPiAgCWludCBpOw0KPiAgDQo+IC0JbXRrX211 dGV4X3B1dChtdGtfY3J0Yy0+bXV0ZXgpOw0KPiArCWZvciAoaSA9IDA7IGkgPCBNQVhfTU1TWVM7 IGkrKykNCj4gKwkJaWYgKG10a19jcnRjLT5tdXRleFtpXSkNCj4gKwkJCW10a19tdXRleF9wdXQo bXRrX2NydGMtPm11dGV4W2ldKTsNCj4gICNpZiBJU19SRUFDSEFCTEUoQ09ORklHX01US19DTURR KQ0KPiAgCWlmIChtdGtfY3J0Yy0+Y21kcV9jbGllbnQuY2hhbikgew0KPiAgCQljbWRxX3BrdF9k ZXN0cm95KCZtdGtfY3J0Yy0+Y21kcV9jbGllbnQsICZtdGtfY3J0Yy0+Y21kcV9oYW5kbGUpOw0K PiBAQCAtMjIzLDcgKzIzNCwxNCBAQCBzdGF0aWMgaW50IG10a19jcnRjX2RkcF9jbGtfZW5hYmxl KHN0cnVjdCBtdGtfY3J0YyAqbXRrX2NydGMpDQo+ICAJaW50IGk7DQo+ICANCj4gIAlmb3IgKGkg PSAwOyBpIDwgbXRrX2NydGMtPmRkcF9jb21wX25yOyBpKyspIHsNCj4gKwkJZW51bSBtdGtfZHJt X21tc3lzIG1tc3lzOw0KPiArDQo+ICAJCXJldCA9IG10a19kZHBfY29tcF9jbGtfZW5hYmxlKG10 a19jcnRjLT5kZHBfY29tcFtpXSk7DQo+ICsJCWlmIChtdGtfZGRwX2NvbXBfZ2V0X3R5cGUobXRr X2NydGMtPmRkcF9jb21wW2ldLT5pZCkgPT0gTVRLX0RJU1BfVklSVFVBTCkgew0KPiArCQkJbW1z eXMgPSBtdGtfY3J0Yy0+ZGRwX2NvbXBfc3lzW2ldOw0KPiArCQkJcmV0ID0gbXRrX21tc3lzX2Rk cF9jbGtfZW5hYmxlKG10a19jcnRjLT5tbXN5c19kZXZbbW1zeXNdLA0KPiArCQkJCQkJICAgICAg IG10a19jcnRjLT5kZHBfY29tcFtpXS0+aWQpOw0KPiArCQl9DQo+ICAJCWlmIChyZXQpIHsNCj4g IAkJCURSTV9FUlJPUigiRmFpbGVkIHRvIGVuYWJsZSBjbG9jayAlZDogJWRcbiIsIGksIHJldCk7 DQo+ICAJCQlnb3RvIGVycjsNCj4gQEAgLTIzMiwxNyArMjUwLDI4IEBAIHN0YXRpYyBpbnQgbXRr X2NydGNfZGRwX2Nsa19lbmFibGUoc3RydWN0IG10a19jcnRjICptdGtfY3J0YykNCj4gIA0KPiAg CXJldHVybiAwOw0KPiAgZXJyOg0KPiAtCXdoaWxlICgtLWkgPj0gMCkNCj4gKwl3aGlsZSAoLS1p ID49IDApIHsNCj4gIAkJbXRrX2RkcF9jb21wX2Nsa19kaXNhYmxlKG10a19jcnRjLT5kZHBfY29t cFtpXSk7DQo+ICsJCWlmIChtdGtfZGRwX2NvbXBfZ2V0X3R5cGUobXRrX2NydGMtPmRkcF9jb21w W2ldLT5pZCkgPT0gTVRLX0RJU1BfVklSVFVBTCkNCj4gKwkJCW10a19tbXN5c19kZHBfY2xrX2Rp c2FibGUobXRrX2NydGMtPm1tc3lzX2RldlttdGtfY3J0Yy0+ZGRwX2NvbXBfc3lzW2ldXSwNCj4g KwkJCQkJCSAgbXRrX2NydGMtPmRkcF9jb21wW2ldLT5pZCk7DQo+ICsJfQ0KPiAgCXJldHVybiBy ZXQ7DQo+ICB9DQo+ICANCj4gIHN0YXRpYyB2b2lkIG10a19jcnRjX2RkcF9jbGtfZGlzYWJsZShz dHJ1Y3QgbXRrX2NydGMgKm10a19jcnRjKQ0KPiAgew0KPiAgCWludCBpOw0KPiArCWVudW0gbXRr X2RybV9tbXN5cyBtbXN5czsNCj4gIA0KPiAtCWZvciAoaSA9IDA7IGkgPCBtdGtfY3J0Yy0+ZGRw X2NvbXBfbnI7IGkrKykNCj4gKwlmb3IgKGkgPSAwOyBpIDwgbXRrX2NydGMtPmRkcF9jb21wX25y OyBpKyspIHsNCj4gIAkJbXRrX2RkcF9jb21wX2Nsa19kaXNhYmxlKG10a19jcnRjLT5kZHBfY29t cFtpXSk7DQo+ICsJCWlmIChtdGtfZGRwX2NvbXBfZ2V0X3R5cGUobXRrX2NydGMtPmRkcF9jb21w W2ldLT5pZCkgPT0gTVRLX0RJU1BfVklSVFVBTCkgew0KPiArCQkJbW1zeXMgPSBtdGtfY3J0Yy0+ ZGRwX2NvbXBfc3lzW2ldOw0KPiArCQkJbXRrX21tc3lzX2RkcF9jbGtfZGlzYWJsZShtdGtfY3J0 Yy0+bW1zeXNfZGV2W21tc3lzXSwNCj4gKwkJCQkJCSAgbXRrX2NydGMtPmRkcF9jb21wW2ldLT5p ZCk7DQo+ICsJCX0NCj4gKwl9DQo+ICB9DQo+ICANCj4gIHN0YXRpYw0KPiBAQCAtMzMyLDcgKzM2 MSw4IEBAIHN0YXRpYyBpbnQgbXRrX2NydGNfZGRwX2h3X2luaXQoc3RydWN0IG10a19jcnRjICpt dGtfY3J0YykNCj4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXIgY29ubl9pdGVyOw0K PiAgCXVuc2lnbmVkIGludCB3aWR0aCwgaGVpZ2h0LCB2cmVmcmVzaCwgYnBjID0gTVRLX01BWF9C UEM7DQo+ICAJaW50IHJldDsNCj4gLQlpbnQgaTsNCj4gKwlpbnQgaSwgajsNCj4gKwllbnVtIG10 a19kcm1fbW1zeXMgbW1zeXM7DQo+ICANCj4gIAlpZiAoV0FSTl9PTighY3J0Yy0+c3RhdGUpKQ0K PiAgCQlyZXR1cm4gLUVJTlZBTDsNCj4gQEAgLTM2MiwxMCArMzkyLDE4IEBAIHN0YXRpYyBpbnQg bXRrX2NydGNfZGRwX2h3X2luaXQoc3RydWN0IG10a19jcnRjICptdGtfY3J0YykNCj4gIAkJcmV0 dXJuIHJldDsNCj4gIAl9DQo+ICANCj4gLQlyZXQgPSBtdGtfbXV0ZXhfcHJlcGFyZShtdGtfY3J0 Yy0+bXV0ZXgpOw0KPiAtCWlmIChyZXQgPCAwKSB7DQo+IC0JCURSTV9FUlJPUigiRmFpbGVkIHRv IGVuYWJsZSBtdXRleCBjbG9jazogJWRcbiIsIHJldCk7DQo+IC0JCWdvdG8gZXJyX3BtX3J1bnRp bWVfcHV0Ow0KPiArCWZvciAoaSA9IDA7IGkgPCBNQVhfTU1TWVM7IGkrKykNCj4gKwkJaWYgKG10 a19jcnRjLT5leGlzdFtpXSkNCj4gKwkJCW10a19tbXN5c190b3BfY2xrX2VuYWJsZShtdGtfY3J0 Yy0+bW1zeXNfZGV2W2ldKTsNCj4gKw0KPiArCWZvciAoaSA9IDA7IGkgPCBNQVhfTU1TWVM7IGkr Kykgew0KPiArCQlpZiAoIW10a19jcnRjLT5tdXRleFtpXSB8fCAhbXRrX2NydGMtPmV4aXN0W2ld KQ0KPiArCQkJY29udGludWU7DQo+ICsJCXJldCA9IG10a19tdXRleF9wcmVwYXJlKG10a19jcnRj LT5tdXRleFtpXSk7DQo+ICsJCWlmIChyZXQgPCAwKSB7DQo+ICsJCQlEUk1fRVJST1IoIkZhaWxl ZCB0byBlbmFibGUgbW1zeXMlZCBtdXRleCBjbG9jazogJWRcbiIsIGksIHJldCk7DQo+ICsJCQln b3RvIGVycl9wbV9ydW50aW1lX3B1dDsNCj4gKwkJfQ0KPiAgCX0NCj4gIA0KPiAgCXJldCA9IG10 a19jcnRjX2RkcF9jbGtfZW5hYmxlKG10a19jcnRjKTsNCj4gQEAgLTM3NCwxOSArNDEyLDM2IEBA IHN0YXRpYyBpbnQgbXRrX2NydGNfZGRwX2h3X2luaXQoc3RydWN0IG10a19jcnRjICptdGtfY3J0 YykNCj4gIAkJZ290byBlcnJfbXV0ZXhfdW5wcmVwYXJlOw0KPiAgCX0NCj4gIA0KPiArCWlmICht dGtfY3J0Yy0+dmRpc3BfYW9fZGV2KQ0KPiArCQltdGtfbW1zeXNfZGVmYXVsdF9jb25maWcobXRr X2NydGMtPnZkaXNwX2FvX2Rldik7DQo+ICsNCj4gKwlmb3IgKGkgPSAwOyBpIDwgTUFYX01NU1lT OyBpKyspDQo+ICsJCWlmIChtdGtfY3J0Yy0+ZXhpc3RbaV0pDQo+ICsJCQltdGtfbW1zeXNfZGVm YXVsdF9jb25maWcobXRrX2NydGMtPm1tc3lzX2RldltpXSk7DQo+ICsNCj4gIAlmb3IgKGkgPSAw OyBpIDwgbXRrX2NydGMtPmRkcF9jb21wX25yIC0gMTsgaSsrKSB7DQo+IC0JCWlmICghbXRrX2Rk cF9jb21wX2Nvbm5lY3QobXRrX2NydGMtPmRkcF9jb21wW2ldLCBtdGtfY3J0Yy0+bW1zeXNfZGV2 LA0KPiArCQltbXN5cyA9IG10a19jcnRjLT5kZHBfY29tcF9zeXNbaV07DQo+ICsJCWlmICghbXRr X2RkcF9jb21wX2Nvbm5lY3QobXRrX2NydGMtPmRkcF9jb21wW2ldLCBtdGtfY3J0Yy0+bW1zeXNf ZGV2W21tc3lzXSwNCj4gIAkJCQkJICBtdGtfY3J0Yy0+ZGRwX2NvbXBbaSArIDFdLT5pZCkpDQo+ IC0JCQltdGtfbW1zeXNfZGRwX2Nvbm5lY3QobXRrX2NydGMtPm1tc3lzX2RldiwNCj4gKwkJCW10 a19tbXN5c19kZHBfY29ubmVjdChtdGtfY3J0Yy0+bW1zeXNfZGV2W21tc3lzXSwNCj4gIAkJCQkJ ICAgICAgbXRrX2NydGMtPmRkcF9jb21wW2ldLT5pZCwNCj4gIAkJCQkJICAgICAgbXRrX2NydGMt PmRkcF9jb21wW2kgKyAxXS0+aWQpOw0KPiAtCQlpZiAoIW10a19kZHBfY29tcF9hZGQobXRrX2Ny dGMtPmRkcF9jb21wW2ldLCBtdGtfY3J0Yy0+bXV0ZXgpKQ0KPiAtCQkJbXRrX211dGV4X2FkZF9j b21wKG10a19jcnRjLT5tdXRleCwNCj4gKwkJaWYgKCFtdGtfZGRwX2NvbXBfYWRkKG10a19jcnRj LT5kZHBfY29tcFtpXSwgbXRrX2NydGMtPm11dGV4W21tc3lzXSkpDQo+ICsJCQltdGtfbXV0ZXhf YWRkX2NvbXAobXRrX2NydGMtPm11dGV4W21tc3lzXSwNCj4gIAkJCQkJICAgbXRrX2NydGMtPmRk cF9jb21wW2ldLT5pZCk7DQo+ICAJfQ0KPiAtCWlmICghbXRrX2RkcF9jb21wX2FkZChtdGtfY3J0 Yy0+ZGRwX2NvbXBbaV0sIG10a19jcnRjLT5tdXRleCkpDQo+IC0JCW10a19tdXRleF9hZGRfY29t cChtdGtfY3J0Yy0+bXV0ZXgsIG10a19jcnRjLT5kZHBfY29tcFtpXS0+aWQpOw0KPiAtCW10a19t dXRleF9lbmFibGUobXRrX2NydGMtPm11dGV4KTsNCj4gKwltbXN5cyA9IG10a19jcnRjLT5kZHBf Y29tcF9zeXNbaV07DQo+ICsJaWYgKCFtdGtfZGRwX2NvbXBfYWRkKG10a19jcnRjLT5kZHBfY29t cFtpXSwgbXRrX2NydGMtPm11dGV4W21tc3lzXSkpDQo+ICsJCW10a19tdXRleF9hZGRfY29tcCht dGtfY3J0Yy0+bXV0ZXhbbW1zeXNdLCBtdGtfY3J0Yy0+ZGRwX2NvbXBbaV0tPmlkKTsNCj4gKw0K PiArCS8qIE5lZWQgdG8gc2V0IHNvZiBzb3VyY2UgZm9yIGFsbCBtbXN5cyBtdXRleHMgaW4gdGhp cyBjcnRjICovDQo+ICsJZm9yIChqID0gMDsgaiA8IE1BWF9NTVNZUzsgaisrKQ0KPiArCQlpZiAo bXRrX2NydGMtPmV4aXN0W2pdICYmIG10a19jcnRjLT5tdXRleFtqXSkNCj4gKwkJCW10a19tdXRl eF93cml0ZV9jb21wX3NvZihtdGtfY3J0Yy0+bXV0ZXhbal0sIG10a19jcnRjLT5kZHBfY29tcFtp XS0+aWQpOw0KPiArDQo+ICsJZm9yIChpID0gMDsgaSA8IE1BWF9NTVNZUzsgaSsrKQ0KPiArCQlp ZiAobXRrX2NydGMtPmV4aXN0W2ldICYmIG10a19jcnRjLT5tdXRleFtpXSkNCj4gKwkJCW10a19t dXRleF9lbmFibGUobXRrX2NydGMtPm11dGV4W2ldKTsNCj4gIA0KPiAgCWZvciAoaSA9IDA7IGkg PCBtdGtfY3J0Yy0+ZGRwX2NvbXBfbnI7IGkrKykgew0KPiAgCQlzdHJ1Y3QgbXRrX2RkcF9jb21w ICpjb21wID0gbXRrX2NydGMtPmRkcF9jb21wW2ldOw0KPiBAQCAtMzk0LDcgKzQ0OSwxMSBAQCBz dGF0aWMgaW50IG10a19jcnRjX2RkcF9od19pbml0KHN0cnVjdCBtdGtfY3J0YyAqbXRrX2NydGMp DQo+ICAJCWlmIChpID09IDEpDQo+ICAJCQltdGtfZGRwX2NvbXBfYmdjbHJfaW5fb24oY29tcCk7 DQo+ICANCj4gLQkJbXRrX2RkcF9jb21wX2NvbmZpZyhjb21wLCB3aWR0aCwgaGVpZ2h0LCB2cmVm cmVzaCwgYnBjLCBOVUxMKTsNCj4gKwkJaWYgKG10a19kZHBfY29tcF9nZXRfdHlwZShjb21wLT5p ZCkgPT0gTVRLX0RJU1BfVklSVFVBTCkNCj4gKwkJCW10a19tbXN5c19kZHBfY29uZmlnKG10a19j cnRjLT5tbXN5c19kZXZbbXRrX2NydGMtPmRkcF9jb21wX3N5c1tpXV0sDQo+ICsJCQkJCSAgICAg Y29tcC0+aWQsIHdpZHRoLCBoZWlnaHQsIE5VTEwpOw0KPiArCQllbHNlDQo+ICsJCQltdGtfZGRw X2NvbXBfY29uZmlnKGNvbXAsIHdpZHRoLCBoZWlnaHQsIHZyZWZyZXNoLCBicGMsIE5VTEwpOw0K PiAgCQltdGtfZGRwX2NvbXBfc3RhcnQoY29tcCk7DQo+ICAJfQ0KPiAgDQo+IEBAIC00MTgsNyAr NDc3LDEwIEBAIHN0YXRpYyBpbnQgbXRrX2NydGNfZGRwX2h3X2luaXQoc3RydWN0IG10a19jcnRj ICptdGtfY3J0YykNCj4gIAlyZXR1cm4gMDsNCj4gIA0KPiAgZXJyX211dGV4X3VucHJlcGFyZToN Cj4gLQltdGtfbXV0ZXhfdW5wcmVwYXJlKG10a19jcnRjLT5tdXRleCk7DQo+ICsJZm9yIChpID0g MDsgaSA8IE1BWF9NTVNZUzsgaSsrKQ0KPiArCQlpZiAobXRrX2NydGMtPmV4aXN0W2ldICYmIG10 a19jcnRjLT5tdXRleFtpXSkNCj4gKwkJCW10a19tdXRleF91bnByZXBhcmUobXRrX2NydGMtPm11 dGV4W2ldKTsNCj4gKw0KPiAgZXJyX3BtX3J1bnRpbWVfcHV0Og0KPiAgCXBtX3J1bnRpbWVfcHV0 KGNydGMtPmRldi0+ZGV2KTsNCj4gIAlyZXR1cm4gcmV0Ow0KPiBAQCAtNDMwLDYgKzQ5Miw3IEBA IHN0YXRpYyB2b2lkIG10a19jcnRjX2RkcF9od19maW5pKHN0cnVjdCBtdGtfY3J0YyAqbXRrX2Ny dGMpDQo+ICAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gJm10a19jcnRjLT5iYXNlOw0KPiAgCXVu c2lnbmVkIGxvbmcgZmxhZ3M7DQo+ICAJaW50IGk7DQo+ICsJZW51bSBtdGtfZHJtX21tc3lzIG1t c3lzOw0KPiAgDQo+ICAJZm9yIChpID0gMDsgaSA8IG10a19jcnRjLT5kZHBfY29tcF9ucjsgaSsr KSB7DQo+ICAJCW10a19kZHBfY29tcF9zdG9wKG10a19jcnRjLT5kZHBfY29tcFtpXSk7DQo+IEBA IC00MzcsMjcgKzUwMCw0NiBAQCBzdGF0aWMgdm9pZCBtdGtfY3J0Y19kZHBfaHdfZmluaShzdHJ1 Y3QgbXRrX2NydGMgKm10a19jcnRjKQ0KPiAgCQkJbXRrX2RkcF9jb21wX2JnY2xyX2luX29mZiht dGtfY3J0Yy0+ZGRwX2NvbXBbaV0pOw0KPiAgCX0NCj4gIA0KPiAtCWZvciAoaSA9IDA7IGkgPCBt dGtfY3J0Yy0+ZGRwX2NvbXBfbnI7IGkrKykNCj4gLQkJaWYgKCFtdGtfZGRwX2NvbXBfcmVtb3Zl KG10a19jcnRjLT5kZHBfY29tcFtpXSwgbXRrX2NydGMtPm11dGV4KSkNCj4gLQkJCW10a19tdXRl eF9yZW1vdmVfY29tcChtdGtfY3J0Yy0+bXV0ZXgsDQo+ICsJZm9yIChpID0gMDsgaSA8IG10a19j cnRjLT5kZHBfY29tcF9ucjsgaSsrKSB7DQo+ICsJCW1tc3lzID0gbXRrX2NydGMtPmRkcF9jb21w X3N5c1tpXTsNCj4gKwkJaWYgKCFtdGtfZGRwX2NvbXBfcmVtb3ZlKG10a19jcnRjLT5kZHBfY29t cFtpXSwgbXRrX2NydGMtPm11dGV4W21tc3lzXSkpDQo+ICsJCQltdGtfbXV0ZXhfcmVtb3ZlX2Nv bXAobXRrX2NydGMtPm11dGV4W210a19jcnRjLT5kZHBfY29tcF9zeXNbaV1dLA0KPiAgCQkJCQkg ICAgICBtdGtfY3J0Yy0+ZGRwX2NvbXBbaV0tPmlkKTsNCj4gLQltdGtfbXV0ZXhfZGlzYWJsZSht dGtfY3J0Yy0+bXV0ZXgpOw0KPiArCX0NCj4gKwlmb3IgKGkgPSAwOyBpIDwgTUFYX01NU1lTOyBp KyspDQo+ICsJCWlmIChtdGtfY3J0Yy0+ZXhpc3RbaV0gJiYgbXRrX2NydGMtPm11dGV4W2ldKQ0K PiArCQkJbXRrX211dGV4X2Rpc2FibGUobXRrX2NydGMtPm11dGV4W2ldKTsNCj4gKw0KPiAgCWZv ciAoaSA9IDA7IGkgPCBtdGtfY3J0Yy0+ZGRwX2NvbXBfbnIgLSAxOyBpKyspIHsNCj4gLQkJaWYg KCFtdGtfZGRwX2NvbXBfZGlzY29ubmVjdChtdGtfY3J0Yy0+ZGRwX2NvbXBbaV0sIG10a19jcnRj LT5tbXN5c19kZXYsDQo+IC0JCQkJCSAgICAgbXRrX2NydGMtPmRkcF9jb21wW2kgKyAxXS0+aWQp KQ0KPiAtCQkJbXRrX21tc3lzX2RkcF9kaXNjb25uZWN0KG10a19jcnRjLT5tbXN5c19kZXYsDQo+ IC0JCQkJCQkgbXRrX2NydGMtPmRkcF9jb21wW2ldLT5pZCwNCj4gLQkJCQkJCSBtdGtfY3J0Yy0+ ZGRwX2NvbXBbaSArIDFdLT5pZCk7DQo+IC0JCWlmICghbXRrX2RkcF9jb21wX3JlbW92ZShtdGtf Y3J0Yy0+ZGRwX2NvbXBbaV0sIG10a19jcnRjLT5tdXRleCkpDQo+IC0JCQltdGtfbXV0ZXhfcmVt b3ZlX2NvbXAobXRrX2NydGMtPm11dGV4LA0KPiArCQlzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21w Ow0KPiArCQl1bnNpZ25lZCBpbnQgY3VyciwgbmV4dDsNCj4gKw0KPiArCQljb21wID0gbXRrX2Ny dGMtPmRkcF9jb21wW2ldOw0KPiArCQljdXJyID0gbXRrX2NydGMtPmRkcF9jb21wW2ldLT5pZDsN Cj4gKwkJbmV4dCA9IG10a19jcnRjLT5kZHBfY29tcFtpICsgMV0tPmlkOw0KPiArCQltbXN5cyA9 IG10a19jcnRjLT5kZHBfY29tcF9zeXNbaV07DQo+ICsJCWlmICghbXRrX2RkcF9jb21wX2Rpc2Nv bm5lY3QoY29tcCwgbXRrX2NydGMtPm1tc3lzX2RldlttbXN5c10sIG5leHQpKQ0KPiArCQkJbXRr X21tc3lzX2RkcF9kaXNjb25uZWN0KG10a19jcnRjLT5tbXN5c19kZXZbbW1zeXNdLCBjdXJyLCBu ZXh0KTsNCj4gKwkJaWYgKCFtdGtfZGRwX2NvbXBfcmVtb3ZlKGNvbXAsIG10a19jcnRjLT5tdXRl eFttbXN5c10pKQ0KPiArCQkJbXRrX211dGV4X3JlbW92ZV9jb21wKG10a19jcnRjLT5tdXRleFtt dGtfY3J0Yy0+ZGRwX2NvbXBfc3lzW2ldXSwNCj4gIAkJCQkJICAgICAgbXRrX2NydGMtPmRkcF9j b21wW2ldLT5pZCk7DQo+ICAJfQ0KPiAtCWlmICghbXRrX2RkcF9jb21wX3JlbW92ZShtdGtfY3J0 Yy0+ZGRwX2NvbXBbaV0sIG10a19jcnRjLT5tdXRleCkpDQo+IC0JCW10a19tdXRleF9yZW1vdmVf Y29tcChtdGtfY3J0Yy0+bXV0ZXgsIG10a19jcnRjLT5kZHBfY29tcFtpXS0+aWQpOw0KPiArDQo+ ICsJbW1zeXMgPSBtdGtfY3J0Yy0+ZGRwX2NvbXBfc3lzW2ldOw0KPiArCWlmICghbXRrX2RkcF9j b21wX3JlbW92ZShtdGtfY3J0Yy0+ZGRwX2NvbXBbaV0sIG10a19jcnRjLT5tdXRleFttbXN5c10p KQ0KPiArCQltdGtfbXV0ZXhfcmVtb3ZlX2NvbXAobXRrX2NydGMtPm11dGV4W21tc3lzXSwgbXRr X2NydGMtPmRkcF9jb21wW2ldLT5pZCk7DQo+ICsNCj4gIAltdGtfY3J0Y19kZHBfY2xrX2Rpc2Fi bGUobXRrX2NydGMpOw0KPiAtCW10a19tdXRleF91bnByZXBhcmUobXRrX2NydGMtPm11dGV4KTsN Cj4gIA0KPiAtCXBtX3J1bnRpbWVfcHV0KGRybS0+ZGV2KTsNCj4gKwlmb3IgKGkgPSAwOyBpIDwg TUFYX01NU1lTOyBpKyspDQo+ICsJCWlmIChtdGtfY3J0Yy0+ZXhpc3RbaV0gJiYgbXRrX2NydGMt Pm11dGV4W2ldKQ0KPiArCQkJbXRrX211dGV4X3VucHJlcGFyZShtdGtfY3J0Yy0+bXV0ZXhbaV0p Ow0KPiArDQo+ICsJZm9yIChpID0gMDsgaSA8IE1BWF9NTVNZUzsgaSsrKQ0KPiArCQlpZiAobXRr X2NydGMtPmV4aXN0W2ldKQ0KPiArCQkJbXRrX21tc3lzX3RvcF9jbGtfZGlzYWJsZShtdGtfY3J0 Yy0+bW1zeXNfZGV2W2ldKTsNCj4gKw0KPiArCXBtX3J1bnRpbWVfcHV0X3N5bmMoZHJtLT5kZXYp Ow0KPiAgDQo+ICAJaWYgKGNydGMtPnN0YXRlLT5ldmVudCAmJiAhY3J0Yy0+c3RhdGUtPmFjdGl2 ZSkgew0KPiAgCQlzcGluX2xvY2tfaXJxc2F2ZSgmY3J0Yy0+ZGV2LT5ldmVudF9sb2NrLCBmbGFn cyk7DQo+IEBAIC01ODEsOSArNjYzLDE1IEBAIHN0YXRpYyB2b2lkIG10a19jcnRjX3VwZGF0ZV9j b25maWcoc3RydWN0IG10a19jcnRjICptdGtfY3J0YywgYm9vbCBuZWVkc192YmxhbmspDQo+ICAJ CW10a19jcnRjLT5wZW5kaW5nX2FzeW5jX3BsYW5lcyA9IHRydWU7DQo+ICANCj4gIAlpZiAocHJp di0+ZGF0YS0+c2hhZG93X3JlZ2lzdGVyKSB7DQo+IC0JCW10a19tdXRleF9hY3F1aXJlKG10a19j cnRjLT5tdXRleCk7DQo+ICsJCWZvciAoaSA9IDA7IGkgPCBNQVhfTU1TWVM7IGkrKykNCj4gKwkJ CWlmIChtdGtfY3J0Yy0+ZXhpc3RbaV0gJiYgbXRrX2NydGMtPm11dGV4W2ldKQ0KPiArCQkJCW10 a19tdXRleF9hY3F1aXJlKG10a19jcnRjLT5tdXRleFtpXSk7DQo+ICsNCj4gIAkJbXRrX2NydGNf ZGRwX2NvbmZpZyhjcnRjLCBOVUxMKTsNCj4gLQkJbXRrX211dGV4X3JlbGVhc2UobXRrX2NydGMt Pm11dGV4KTsNCj4gKw0KPiArCQlmb3IgKGkgPSAwOyBpIDwgTUFYX01NU1lTOyBpKyspDQo+ICsJ CQlpZiAobXRrX2NydGMtPmV4aXN0W2ldICYmIG10a19jcnRjLT5tdXRleFtpXSkNCj4gKwkJCQlt dGtfbXV0ZXhfcmVsZWFzZShtdGtfY3J0Yy0+bXV0ZXhbaV0pOw0KPiAgCX0NCj4gICNpZiBJU19S RUFDSEFCTEUoQ09ORklHX01US19DTURRKQ0KPiAgCWlmIChtdGtfY3J0Yy0+Y21kcV9jbGllbnQu Y2hhbikgew0KPiBAQCAtNjU5LDYgKzc0Nyw3IEBAIHN0YXRpYyB2b2lkIG10a19jcnRjX3VwZGF0 ZV9vdXRwdXQoc3RydWN0IGRybV9jcnRjICpjcnRjLA0KPiAgew0KPiAgCWludCBjcnRjX2luZGV4 ID0gZHJtX2NydGNfaW5kZXgoY3J0Yyk7DQo+ICAJaW50IGk7DQo+ICsJdW5zaWduZWQgaW50IG1t c3lzOw0KPiAgCXN0cnVjdCBkZXZpY2UgKmRldjsNCj4gIAlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUg KmNydGNfc3RhdGUgPSBzdGF0ZS0+Y3J0Y3NbY3J0Y19pbmRleF0ubmV3X3N0YXRlOw0KPiAgCXN0 cnVjdCBtdGtfY3J0YyAqbXRrX2NydGMgPSB0b19tdGtfY3J0YyhjcnRjKTsNCj4gQEAgLTY3MSw3 ICs3NjAsOCBAQCBzdGF0aWMgdm9pZCBtdGtfY3J0Y191cGRhdGVfb3V0cHV0KHN0cnVjdCBkcm1f Y3J0YyAqY3J0YywNCj4gIAlpZiAoIW10a19jcnRjLT5udW1fY29ubl9yb3V0ZXMpDQo+ICAJCXJl dHVybjsNCj4gIA0KPiAtCXByaXYgPSAoKHN0cnVjdCBtdGtfZHJtX3ByaXZhdGUgKiljcnRjLT5k ZXYtPmRldl9wcml2YXRlKS0+YWxsX2RybV9wcml2YXRlW2NydGNfaW5kZXhdOw0KPiArCW1tc3lz ID0gbXRrX2NydGMtPmNvbm5fcm91dGVzX3N5czsNCj4gKwlwcml2ID0gKChzdHJ1Y3QgbXRrX2Ry bV9wcml2YXRlICopY3J0Yy0+ZGV2LT5kZXZfcHJpdmF0ZSktPmFsbF9kcm1fcHJpdmF0ZVttbXN5 c107DQo+ICAJZGV2ID0gcHJpdi0+ZGV2Ow0KPiAgDQo+ICAJZGV2X2RiZyhkZXYsICJjb25uZWN0 b3IgY2hhbmdlOiVkLCBlbmNvZGVyIG1hc2s6MHgleCBmb3IgY3J0YzolZFxuIiwNCj4gQEAgLTY4 NCw2ICs3NzQsOCBAQCBzdGF0aWMgdm9pZCBtdGtfY3J0Y191cGRhdGVfb3V0cHV0KHN0cnVjdCBk cm1fY3J0YyAqY3J0YywNCj4gIAkJaWYgKGNvbXAtPmVuY29kZXJfaW5kZXggPj0gMCAmJg0KPiAg CQkgICAgKGVuY29kZXJfbWFzayAmIEJJVChjb21wLT5lbmNvZGVyX2luZGV4KSkpIHsNCj4gIAkJ CW10a19jcnRjLT5kZHBfY29tcFttdGtfY3J0Yy0+ZGRwX2NvbXBfbnIgLSAxXSA9IGNvbXA7DQo+ ICsJCQltdGtfY3J0Yy0+ZGRwX2NvbXBfc3lzW210a19jcnRjLT5kZHBfY29tcF9uciAtIDFdID0g bW1zeXM7DQo+ICsJCQltdGtfY3J0Yy0+ZXhpc3RbbW1zeXNdID0gdHJ1ZTsNCj4gIAkJCWRldl9k YmcoZGV2LCAiQWRkIGNvbXBfaWQ6ICVkIGF0IHBhdGggaW5kZXggJWRcbiIsDQo+ICAJCQkJY29t cC0+aWQsIG10a19jcnRjLT5kZHBfY29tcF9uciAtIDEpOw0KPiAgCQkJYnJlYWs7DQo+IEBAIC03 MjAsMTMgKzgxMiwzNSBAQCBzdGF0aWMgdm9pZCBtdGtfY3J0Y19hdG9taWNfZW5hYmxlKHN0cnVj dCBkcm1fY3J0YyAqY3J0YywNCj4gIAlzdHJ1Y3QgbXRrX2NydGMgKm10a19jcnRjID0gdG9fbXRr X2NydGMoY3J0Yyk7DQo+ICAJc3RydWN0IG10a19kZHBfY29tcCAqY29tcCA9IG10a19jcnRjLT5k ZHBfY29tcFswXTsNCj4gIAlpbnQgcmV0Ow0KPiArCWludCBpLCBqOw0KPiArCWludCBtbXN5c19j bnQgPSAwOw0KPiAgDQo+ICAJRFJNX0RFQlVHX0RSSVZFUigiJXMgJWRcbiIsIF9fZnVuY19fLCBj cnRjLT5iYXNlLmlkKTsNCj4gIA0KPiAtCXJldCA9IG10a19kZHBfY29tcF9wb3dlcl9vbihjb21w KTsNCj4gLQlpZiAocmV0IDwgMCkgew0KPiAtCQlEUk1fREVWX0VSUk9SKGNvbXAtPmRldiwgIkZh aWxlZCB0byBlbmFibGUgcG93ZXIgZG9tYWluOiAlZFxuIiwgcmV0KTsNCj4gLQkJcmV0dXJuOw0K PiArCWZvciAoaSA9IDA7IGkgPCBNQVhfTU1TWVM7IGkrKykNCj4gKwkJaWYgKG10a19jcnRjLT5l eGlzdFtpXSkNCj4gKwkJCW1tc3lzX2NudCsrOw0KPiArDQo+ICsJaWYgKG1tc3lzX2NudCA9PSAx KSB7DQo+ICsJCXJldCA9IHBtX3J1bnRpbWVfcmVzdW1lX2FuZF9nZXQoY29tcC0+ZGV2KTsNCj4g KwkJaWYgKHJldCA8IDApIHsNCj4gKwkJCURSTV9ERVZfRVJST1IoY29tcC0+ZGV2LCAiRmFpbGVk IHRvIGVuYWJsZSBwb3dlciBkb21haW46ICVkXG4iLCByZXQpOw0KPiArCQkJcmV0dXJuOw0KPiAr CQl9DQo+ICsJfSBlbHNlIHsNCj4gKwkJZm9yIChpID0gMDsgaSA8IE1BWF9NTVNZUzsgaSsrKSB7 DQo+ICsJCQlpZiAoIW10a19jcnRjLT5leGlzdFtpXSkNCj4gKwkJCQljb250aW51ZTsNCj4gKwkJ CXJldCA9IHBtX3J1bnRpbWVfcmVzdW1lX2FuZF9nZXQobXRrX2NydGMtPm1tc3lzX2RldltpXSk7 DQo+ICsJCQlpZiAocmV0IDwgMCkgew0KPiArCQkJCURSTV9ERVZfRVJST1IobXRrX2NydGMtPm1t c3lzX2RldltpXSwNCj4gKwkJCQkJICAgICAgIkZhaWxlZCB0byBlbmFibGUgcG93ZXIgZG9tYWlu OiAlZFxuIiwgcmV0KTsNCj4gKwkJCQlmb3IgKGogPSBpIC0gMTsgaiA+PSAwOyBqLS0pDQo+ICsJ CQkJCWlmIChtdGtfY3J0Yy0+ZXhpc3RbaV0pDQo+ICsJCQkJCQlwbV9ydW50aW1lX3B1dChjb21w LT5kZXYpOw0KPiArCQkJCXJldHVybjsNCj4gKwkJCX0NCj4gKwkJfQ0KPiAgCX0NCj4gIA0KPiAg CW10a19jcnRjX3VwZGF0ZV9vdXRwdXQoY3J0Yywgc3RhdGUpOw0KPiBAQCAtNzQ2LDEyICs4NjAs MTcgQEAgc3RhdGljIHZvaWQgbXRrX2NydGNfYXRvbWljX2Rpc2FibGUoc3RydWN0IGRybV9jcnRj ICpjcnRjLA0KPiAgew0KPiAgCXN0cnVjdCBtdGtfY3J0YyAqbXRrX2NydGMgPSB0b19tdGtfY3J0 YyhjcnRjKTsNCj4gIAlzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wID0gbXRrX2NydGMtPmRkcF9j b21wWzBdOw0KPiAtCWludCBpOw0KPiArCWludCBpLCByZXQ7DQo+ICsJaW50IG1tc3lzX2NudCA9 IDA7DQo+ICANCj4gIAlEUk1fREVCVUdfRFJJVkVSKCIlcyAlZFxuIiwgX19mdW5jX18sIGNydGMt PmJhc2UuaWQpOw0KPiAgCWlmICghbXRrX2NydGMtPmVuYWJsZWQpDQo+ICAJCXJldHVybjsNCj4g IA0KPiArCWZvciAoaSA9IDA7IGkgPCBNQVhfTU1TWVM7IGkrKykNCj4gKwkJaWYgKG10a19jcnRj LT5leGlzdFtpXSkNCj4gKwkJCW1tc3lzX2NudCsrOw0KPiArDQo+ICAJLyogU2V0IGFsbCBwZW5k aW5nIHBsYW5lIHN0YXRlIHRvIGRpc2FibGVkICovDQo+ICAJZm9yIChpID0gMDsgaSA8IG10a19j cnRjLT5sYXllcl9ucjsgaSsrKSB7DQo+ICAJCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lID0gJm10 a19jcnRjLT5wbGFuZXNbaV07DQo+IEBAIC03NzYsNyArODk1LDIxIEBAIHN0YXRpYyB2b2lkIG10 a19jcnRjX2F0b21pY19kaXNhYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywNCj4gIA0KPiAgCWRy bV9jcnRjX3ZibGFua19vZmYoY3J0Yyk7DQo+ICAJbXRrX2NydGNfZGRwX2h3X2ZpbmkobXRrX2Ny dGMpOw0KPiAtCW10a19kZHBfY29tcF9wb3dlcl9vZmYoY29tcCk7DQo+ICsNCj4gKwlpZiAobW1z eXNfY250ID4gMSkgew0KPiArCQlmb3IgKGkgPSAwOyBpIDwgTUFYX01NU1lTOyBpKyspIHsNCj4g KwkJCWlmIChtdGtfY3J0Yy0+ZXhpc3RbaV0pIHsNCj4gKwkJCQlyZXQgPSBwbV9ydW50aW1lX3B1 dChtdGtfY3J0Yy0+bW1zeXNfZGV2W2ldKTsNCj4gKwkJCQlpZiAocmV0IDwgMCkNCj4gKwkJCQkJ RFJNX0RFVl9FUlJPUihtdGtfY3J0Yy0+bW1zeXNfZGV2W2ldLA0KPiArCQkJCQkJICAgICAgIkZh aWxlZCB0byBkaXNhYmxlIHBvd2VyIGRvbWFpbjogJWRcbiIsIHJldCk7DQo+ICsJCQl9DQo+ICsJ CX0NCj4gKwl9IGVsc2Ugew0KPiArCQlyZXQgPSBwbV9ydW50aW1lX3B1dChjb21wLT5kZXYpOw0K PiArCQlpZiAocmV0IDwgMCkNCj4gKwkJCURSTV9ERVZfRVJST1IoY29tcC0+ZGV2LCAiRmFpbGVk IHRvIGRpc2FibGUgcG93ZXIgZG9tYWluOiAlZFxuIiwgcmV0KTsNCj4gKwl9DQo+ICANCj4gIAlt dGtfY3J0Yy0+ZW5hYmxlZCA9IGZhbHNlOw0KPiAgfQ0KPiBAQCAtOTM3LDQ5ICsxMDcwLDEwOCBA QCBzdHJ1Y3QgZGV2aWNlICptdGtfY3J0Y19kbWFfZGV2X2dldChzdHJ1Y3QgZHJtX2NydGMgKmNy dGMpDQo+ICAJcmV0dXJuIG10a19jcnRjLT5kbWFfZGV2Ow0KPiAgfQ0KPiAgDQo+IC1pbnQgbXRr X2NydGNfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2LCBjb25zdCB1bnNpZ25lZCBp bnQgKnBhdGgsDQo+IC0JCSAgICB1bnNpZ25lZCBpbnQgcGF0aF9sZW4sIGludCBwcml2X2RhdGFf aW5kZXgsDQo+IC0JCSAgICBjb25zdCBzdHJ1Y3QgbXRrX2RybV9yb3V0ZSAqY29ubl9yb3V0ZXMs DQo+IC0JCSAgICB1bnNpZ25lZCBpbnQgbnVtX2Nvbm5fcm91dGVzKQ0KPiAraW50IG10a19jcnRj X2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiwgZW51bSBtdGtfY3J0Y19wYXRoIHBh dGhfc2VsKQ0KPiAgew0KPiAgCXN0cnVjdCBtdGtfZHJtX3ByaXZhdGUgKnByaXYgPSBkcm1fZGV2 LT5kZXZfcHJpdmF0ZTsNCj4gIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBkcm1fZGV2LT5kZXY7DQo+ ICAJc3RydWN0IG10a19jcnRjICptdGtfY3J0YzsNCj4gIAl1bnNpZ25lZCBpbnQgbnVtX2NvbXBf cGxhbmVzID0gMDsNCj4gIAlpbnQgcmV0Ow0KPiAtCWludCBpOw0KPiArCWludCBpLCBqLCBrOw0K PiAgCWJvb2wgaGFzX2N0bSA9IGZhbHNlOw0KPiAgCXVpbnQgZ2FtbWFfbHV0X3NpemUgPSAwOw0K PiAgCXN0cnVjdCBkcm1fY3J0YyAqdG1wOw0KPiAgCWludCBjcnRjX2kgPSAwOw0KPiAtDQo+IC0J aWYgKCFwYXRoKQ0KPiAtCQlyZXR1cm4gMDsNCj4gLQ0KPiAtCXByaXYgPSBwcml2LT5hbGxfZHJt X3ByaXZhdGVbcHJpdl9kYXRhX2luZGV4XTsNCj4gKwlzdHJ1Y3QgbXRrX2RybV9wcml2YXRlICpz dWJzeXNfcHJpdjsNCj4gKwlzdHJ1Y3QgbXRrX2NydGNfY29tcF9pbmZvIHBhdGhbRERQX0NPTVBP TkVOVF9JRF9NQVhdOw0KPiArCXVuc2lnbmVkIGludCBwYXRoX2xlbiA9IDA7DQo+ICsJY29uc3Qg c3RydWN0IG10a19kcm1fcm91dGUgKmNvbm5fcm91dGVzID0gTlVMTDsNCj4gKwl1bnNpZ25lZCBp bnQgbnVtX2Nvbm5fcm91dGVzID0gMDsNCj4gKwllbnVtIG10a19kcm1fbW1zeXMgY29ubl9tbXN5 czsNCj4gIA0KPiAgCWRybV9mb3JfZWFjaF9jcnRjKHRtcCwgZHJtX2RldikNCj4gIAkJY3J0Y19p Kys7DQo+ICANCj4gKwlmb3IgKGogPSAwOyBqIDwgcHJpdi0+ZGF0YS0+bW1zeXNfZGV2X251bTsg aisrKSB7DQo+ICsJCWZvciAoayA9IDA7IGsgPCBNQVhfTU1TWVM7IGsrKykgew0KPiArCQkJY29u c3QgdW5zaWduZWQgaW50ICpzdWJzeXNfcGF0aDsNCj4gKwkJCXVuc2lnbmVkIGludCBzdWJzeXNf cGF0aF9sZW47DQo+ICsJCQl1bnNpZ25lZCBpbnQgb3JkZXIgPSAwOw0KPiArDQo+ICsJCQlzdWJz eXNfcHJpdiA9IHByaXYtPmFsbF9kcm1fcHJpdmF0ZVtrXTsNCj4gKwkJCWlmICghc3Vic3lzX3By aXYpDQo+ICsJCQkJY29udGludWU7DQo+ICsNCj4gKwkJCWlmIChwYXRoX3NlbCA9PSBDUlRDX01B SU4pIHsNCj4gKwkJCQlzdWJzeXNfcGF0aCA9IHN1YnN5c19wcml2LT5kYXRhLT5tYWluX3BhdGg7 DQo+ICsJCQkJc3Vic3lzX3BhdGhfbGVuID0gc3Vic3lzX3ByaXYtPmRhdGEtPm1haW5fbGVuOw0K PiArCQkJCW9yZGVyID0gc3Vic3lzX3ByaXYtPmRhdGEtPm1haW5fb3JkZXI7DQo+ICsJCQl9IGVs c2UgaWYgKHBhdGhfc2VsID09IENSVENfRVhUKSB7DQo+ICsJCQkJc3Vic3lzX3BhdGggPSBzdWJz eXNfcHJpdi0+ZGF0YS0+ZXh0X3BhdGg7DQo+ICsJCQkJc3Vic3lzX3BhdGhfbGVuID0gc3Vic3lz X3ByaXYtPmRhdGEtPmV4dF9sZW47DQo+ICsJCQkJb3JkZXIgPSBzdWJzeXNfcHJpdi0+ZGF0YS0+ ZXh0X29yZGVyOw0KPiArCQkJfSBlbHNlIGlmIChwYXRoX3NlbCA9PSBDUlRDX1RISVJEKSB7DQo+ ICsJCQkJc3Vic3lzX3BhdGggPSBzdWJzeXNfcHJpdi0+ZGF0YS0+dGhpcmRfcGF0aDsNCj4gKwkJ CQlzdWJzeXNfcGF0aF9sZW4gPSBzdWJzeXNfcHJpdi0+ZGF0YS0+dGhpcmRfbGVuOw0KPiArCQkJ CW9yZGVyID0gc3Vic3lzX3ByaXYtPmRhdGEtPnRoaXJkX29yZGVyOw0KPiArCQkJfQ0KPiArDQo+ ICsJCQlpZiAoc3Vic3lzX3ByaXYtPmRhdGEtPm51bV9jb25uX3JvdXRlcykgew0KPiArCQkJCWNv bm5fcm91dGVzID0gc3Vic3lzX3ByaXYtPmRhdGEtPmNvbm5fcm91dGVzOw0KPiArCQkJCW51bV9j b25uX3JvdXRlcyA9IHN1YnN5c19wcml2LT5kYXRhLT5udW1fY29ubl9yb3V0ZXM7DQo+ICsJCQkJ Y29ubl9tbXN5cyA9IHN1YnN5c19wcml2LT5kYXRhLT5tbXN5c19pZDsNCj4gKwkJCX0NCj4gKw0K PiArCQkJaWYgKGogIT0gb3JkZXIpDQo+ICsJCQkJY29udGludWU7DQo+ICsJCQlpZiAoIXN1YnN5 c19wYXRoX2xlbikNCj4gKwkJCQljb250aW51ZTsNCj4gKw0KPiArCQkJZm9yIChpID0gMDsgaSA8 IHN1YnN5c19wYXRoX2xlbjsgaSsrKSB7DQo+ICsJCQkJcGF0aFtwYXRoX2xlbl0uc3lzID0gc3Vi c3lzX3ByaXYtPmRhdGEtPm1tc3lzX2lkOw0KPiArCQkJCXBhdGhbcGF0aF9sZW5dLmNvbXBfaWQg PSBzdWJzeXNfcGF0aFtpXTsNCj4gKwkJCQlwYXRoX2xlbisrOw0KPiArCQkJfQ0KPiArCQl9DQo+ ICsJfQ0KPiArDQo+ICsJaWYgKCFwYXRoX2xlbikNCj4gKwkJcmV0dXJuIDA7DQo+ICsNCj4gKwlp ZiAobnVtX2Nvbm5fcm91dGVzKSB7DQo+ICsJCWZvciAoaSA9IDA7IGkgPCBudW1fY29ubl9yb3V0 ZXM7IGkrKykNCj4gKwkJCWlmIChjb25uX3JvdXRlcy0+Y3J0Y19pZCA9PSBjcnRjX2kpDQo+ICsJ CQkJYnJlYWs7DQo+ICsJCWlmIChpID09IG51bV9jb25uX3JvdXRlcykgew0KPiArCQkJbnVtX2Nv bm5fcm91dGVzID0gMDsNCj4gKwkJCWNvbm5fcm91dGVzID0gTlVMTDsNCj4gKwkJfQ0KPiArCX0N Cj4gKw0KPiAgCWZvciAoaSA9IDA7IGkgPCBwYXRoX2xlbjsgaSsrKSB7DQo+IC0JCWVudW0gbXRr X2RkcF9jb21wX2lkIGNvbXBfaWQgPSBwYXRoW2ldOw0KPiArCQllbnVtIG10a19kZHBfY29tcF9p ZCBjb21wX2lkID0gcGF0aFtpXS5jb21wX2lkOw0KPiAgCQlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5v ZGU7DQo+ICAJCXN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXA7DQo+ICANCj4gKwkJcHJpdiA9IHBy aXYtPmFsbF9kcm1fcHJpdmF0ZVtwYXRoW2ldLnN5c107DQo+ICAJCW5vZGUgPSBwcml2LT5jb21w X25vZGVbY29tcF9pZF07DQo+ICAJCWNvbXAgPSAmcHJpdi0+ZGRwX2NvbXBbY29tcF9pZF07DQo+ ICANCj4gIAkJLyogTm90IGFsbCBkcm0gY29tcG9uZW50cyBoYXZlIGEgRFRTIGRldmljZSBub2Rl LCBzdWNoIGFzIG92bF9hZGFwdG9yLA0KPiAgCQkgKiB3aGljaCBpcyB0aGUgZHJtIGJyaW5nIHVw IHN1YiBkcml2ZXINCj4gIAkJICovDQo+IC0JCWlmICghbm9kZSAmJiBjb21wX2lkICE9IEREUF9D T01QT05FTlRfRFJNX09WTF9BREFQVE9SKSB7DQo+ICsJCWlmICghbm9kZSAmJiBjb21wX2lkICE9 IEREUF9DT01QT05FTlRfRFJNX09WTF9BREFQVE9SICYmDQo+ICsJCSAgICBjb21wX2lkICE9IERE UF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMCAmJg0KPiArCQkgICAgY29tcF9pZCAhPSBE RFBfQ09NUE9ORU5UX0RSTV9PVkxTWVNfQURBUFRPUjEgJiYNCj4gKwkJICAgIGNvbXBfaWQgIT0g RERQX0NPTVBPTkVOVF9EUk1fT1ZMU1lTX0FEQVBUT1IyICYmDQo+ICsJCSAgICBtdGtfZGRwX2Nv bXBfZ2V0X3R5cGUoY29tcF9pZCkgIT0gTVRLX0RJU1BfVklSVFVBTCkgew0KPiAgCQkJZGV2X2lu Zm8oZGV2LA0KPiAgCQkJCSJOb3QgY3JlYXRpbmcgY3J0YyAlZCBiZWNhdXNlIGNvbXBvbmVudCAl ZCBpcyBkaXNhYmxlZCBvciBtaXNzaW5nXG4iLA0KPiAgCQkJCWNydGNfaSwgY29tcF9pZCk7DQo+ ICAJCQlyZXR1cm4gMDsNCj4gIAkJfQ0KPiAgDQo+IC0JCWlmICghY29tcC0+ZGV2KSB7DQo+ICsJ CWlmICghY29tcC0+ZGV2ICYmIG10a19kZHBfY29tcF9nZXRfdHlwZShjb21wX2lkKSAhPSBNVEtf RElTUF9WSVJUVUFMKSB7DQo+ICAJCQlkZXZfZXJyKGRldiwgIkNvbXBvbmVudCAlcE9GIG5vdCBp bml0aWFsaXplZFxuIiwgbm9kZSk7DQo+ICAJCQlyZXR1cm4gLUVOT0RFVjsNCj4gIAkJfQ0KPiBA QCAtOTg5LDcgKzExODEsOSBAQCBpbnQgbXRrX2NydGNfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNl ICpkcm1fZGV2LCBjb25zdCB1bnNpZ25lZCBpbnQgKnBhdGgsDQo+ICAJaWYgKCFtdGtfY3J0YykN Cj4gIAkJcmV0dXJuIC1FTk9NRU07DQo+ICANCj4gLQltdGtfY3J0Yy0+bW1zeXNfZGV2ID0gcHJp di0+bW1zeXNfZGV2Ow0KPiArCWZvciAoaSA9IDA7IGkgPCBNQVhfTU1TWVM7IGkrKykNCj4gKwkJ aWYgKHByaXYtPmFsbF9kcm1fcHJpdmF0ZVtpXSkNCj4gKwkJCW10a19jcnRjLT5tbXN5c19kZXZb aV0gPSBwcml2LT5hbGxfZHJtX3ByaXZhdGVbaV0tPm1tc3lzX2RldjsNCj4gIAltdGtfY3J0Yy0+ ZGRwX2NvbXBfbnIgPSBwYXRoX2xlbjsNCj4gIAltdGtfY3J0Yy0+ZGRwX2NvbXAgPSBkZXZtX2tj YWxsb2MoZGV2LA0KPiAgCQkJCQkgIG10a19jcnRjLT5kZHBfY29tcF9uciArIChjb25uX3JvdXRl cyA/IDEgOiAwKSwNCj4gQEAgLTk5OCwxOSArMTE5MiwzNiBAQCBpbnQgbXRrX2NydGNfY3JlYXRl KHN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2LCBjb25zdCB1bnNpZ25lZCBpbnQgKnBhdGgsDQo+ ICAJaWYgKCFtdGtfY3J0Yy0+ZGRwX2NvbXApDQo+ICAJCXJldHVybiAtRU5PTUVNOw0KPiAgDQo+ IC0JbXRrX2NydGMtPm11dGV4ID0gbXRrX211dGV4X2dldChwcml2LT5tdXRleF9kZXYpOw0KPiAt CWlmIChJU19FUlIobXRrX2NydGMtPm11dGV4KSkgew0KPiAtCQlyZXQgPSBQVFJfRVJSKG10a19j cnRjLT5tdXRleCk7DQo+IC0JCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGdldCBtdXRleDogJWRc biIsIHJldCk7DQo+IC0JCXJldHVybiByZXQ7DQo+ICsJbXRrX2NydGMtPmRkcF9jb21wX3N5cyA9 IGRldm1fa21hbGxvY19hcnJheShkZXYsIG10a19jcnRjLT5kZHBfY29tcF9uciArDQo+ICsJCQkJ CQkgICAgKGNvbm5fcm91dGVzID8gMSA6IDApLA0KPiArCQkJCQkJICAgIHNpemVvZihtdGtfY3J0 Yy0+ZGRwX2NvbXBfc3lzKSwgR0ZQX0tFUk5FTCk7DQo+ICsJaWYgKCFtdGtfY3J0Yy0+ZGRwX2Nv bXBfc3lzKQ0KPiArCQlyZXR1cm4gLUVOT01FTTsNCj4gKw0KPiArCWZvciAoaSA9IDA7IGkgPCBN QVhfTU1TWVM7IGkrKykgew0KPiArCQlpZiAoIXByaXYtPmFsbF9kcm1fcHJpdmF0ZVtpXSkNCj4g KwkJCWNvbnRpbnVlOw0KPiArDQo+ICsJCXByaXYgPSBwcml2LT5hbGxfZHJtX3ByaXZhdGVbaV07 DQo+ICsJCW10a19jcnRjLT5tdXRleFtpXSA9IG10a19tdXRleF9nZXQocHJpdi0+bXV0ZXhfZGV2 KTsNCj4gKwkJaWYgKElTX0VSUihtdGtfY3J0Yy0+bXV0ZXhbaV0pKSB7DQo+ICsJCQlyZXQgPSBQ VFJfRVJSKG10a19jcnRjLT5tdXRleFtpXSk7DQo+ICsJCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0 byBnZXQgbXV0ZXg6ICVkXG4iLCByZXQpOw0KPiArCQkJcmV0dXJuIHJldDsNCj4gKwkJfQ0KPiAg CX0NCj4gIA0KPiAgCWZvciAoaSA9IDA7IGkgPCBtdGtfY3J0Yy0+ZGRwX2NvbXBfbnI7IGkrKykg ew0KPiAtCQl1bnNpZ25lZCBpbnQgY29tcF9pZCA9IHBhdGhbaV07DQo+ICsJCXVuc2lnbmVkIGlu dCBjb21wX2lkID0gcGF0aFtpXS5jb21wX2lkOw0KPiAgCQlzdHJ1Y3QgbXRrX2RkcF9jb21wICpj b21wOw0KPiAgDQo+ICsJCXByaXYgPSBwcml2LT5hbGxfZHJtX3ByaXZhdGVbcGF0aFtpXS5zeXNd Ow0KPiAgCQljb21wID0gJnByaXYtPmRkcF9jb21wW2NvbXBfaWRdOw0KPiArCQlpZiAobXRrX2Rk cF9jb21wX2dldF90eXBlKGNvbXBfaWQpID09IE1US19ESVNQX1ZJUlRVQUwpDQo+ICsJCQljb21w LT5pZCA9IGNvbXBfaWQ7DQo+ICAJCW10a19jcnRjLT5kZHBfY29tcFtpXSA9IGNvbXA7DQo+ICsJ CW10a19jcnRjLT5kZHBfY29tcF9zeXNbaV0gPSBwYXRoW2ldLnN5czsNCj4gKwkJbXRrX2NydGMt PmV4aXN0W3BhdGhbaV0uc3lzXSA9IHRydWU7DQo+ICANCj4gIAkJaWYgKGNvbXAtPmZ1bmNzKSB7 DQo+ICAJCQlpZiAoY29tcC0+ZnVuY3MtPmdhbW1hX3NldCAmJiBjb21wLT5mdW5jcy0+Z2FtbWFf Z2V0X2x1dF9zaXplKSB7DQo+IEBAIC0xMDQ3LDggKzEyNTgsMTAgQEAgaW50IG10a19jcnRjX2Ny ZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiwgY29uc3QgdW5zaWduZWQgaW50ICpwYXRo LA0KPiAgCSAqIEluIHRoZSBjYXNlIG9mIG92bF9hZGFwdG9yIHN1YiBkcml2ZXIsIGl0IG5lZWRz IHRvIHVzZSB0aGUNCj4gIAkgKiBkbWFfZGV2X2dldCBmdW5jdGlvbiB0byBnZXQgcmVwcmVzZW50 YXRpdmUgZG1hIGRldi4NCj4gIAkgKi8NCj4gLQltdGtfY3J0Yy0+ZG1hX2RldiA9IG10a19kZHBf Y29tcF9kbWFfZGV2X2dldCgmcHJpdi0+ZGRwX2NvbXBbcGF0aFswXV0pOw0KPiArCXByaXYgPSBw cml2LT5hbGxfZHJtX3ByaXZhdGVbcGF0aFswXS5zeXNdOw0KPiArCW10a19jcnRjLT5kbWFfZGV2 ID0gbXRrX2RkcF9jb21wX2RtYV9kZXZfZ2V0KCZwcml2LT5kZHBfY29tcFtwYXRoWzBdLmNvbXBf aWRdKTsNCj4gIA0KPiArCW10a19jcnRjLT52ZGlzcF9hb19kZXYgPSBwcml2LT52ZGlzcF9hb19k ZXY7DQo+ICAJcmV0ID0gbXRrX2NydGNfaW5pdChkcm1fZGV2LCBtdGtfY3J0YywgY3J0Y19pKTsN Cj4gIAlpZiAocmV0IDwgMCkNCj4gIAkJcmV0dXJuIHJldDsNCj4gQEAgLTEwNjEsNyArMTI3NCw3 IEBAIGludCBtdGtfY3J0Y19jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYsIGNvbnN0 IHVuc2lnbmVkIGludCAqcGF0aCwNCj4gIA0KPiAgI2lmIElTX1JFQUNIQUJMRShDT05GSUdfTVRL X0NNRFEpDQo+ICAJaSA9IHByaXYtPm1ib3hfaW5kZXgrKzsNCj4gLQltdGtfY3J0Yy0+Y21kcV9j bGllbnQuY2xpZW50LmRldiA9IG10a19jcnRjLT5tbXN5c19kZXY7DQo+ICsJbXRrX2NydGMtPmNt ZHFfY2xpZW50LmNsaWVudC5kZXYgPSBtdGtfY3J0Yy0+bW1zeXNfZGV2W3ByaXYtPmRhdGEtPm1t c3lzX2lkXTsNCj4gIAltdGtfY3J0Yy0+Y21kcV9jbGllbnQuY2xpZW50LnR4X2Jsb2NrID0gZmFs c2U7DQo+ICAJbXRrX2NydGMtPmNtZHFfY2xpZW50LmNsaWVudC5rbm93c190eGRvbmUgPSB0cnVl Ow0KPiAgCW10a19jcnRjLT5jbWRxX2NsaWVudC5jbGllbnQucnhfY2FsbGJhY2sgPSBkZHBfY21k cV9jYjsNCj4gQEAgLTExMDEsNiArMTMxNCw3IEBAIGludCBtdGtfY3J0Y19jcmVhdGUoc3RydWN0 IGRybV9kZXZpY2UgKmRybV9kZXYsIGNvbnN0IHVuc2lnbmVkIGludCAqcGF0aCwNCj4gICNlbmRp Zg0KPiAgDQo+ICAJaWYgKGNvbm5fcm91dGVzKSB7DQo+ICsJCXByaXYgPSBwcml2LT5hbGxfZHJt X3ByaXZhdGVbY29ubl9tbXN5c107DQo+ICAJCWZvciAoaSA9IDA7IGkgPCBudW1fY29ubl9yb3V0 ZXM7IGkrKykgew0KPiAgCQkJdW5zaWduZWQgaW50IGNvbXBfaWQgPSBjb25uX3JvdXRlc1tpXS5y b3V0ZV9kZHA7DQo+ICAJCQlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUgPSBwcml2LT5jb21wX25v ZGVbY29tcF9pZF07DQo+IEBAIC0xMTE3LDYgKzEzMzEsNyBAQCBpbnQgbXRrX2NydGNfY3JlYXRl KHN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2LCBjb25zdCB1bnNpZ25lZCBpbnQgKnBhdGgsDQo+ ICAJCQltdGtfZGRwX2NvbXBfZW5jb2Rlcl9pbmRleF9zZXQoJnByaXYtPmRkcF9jb21wW2NvbXBf aWRdKTsNCj4gIAkJfQ0KPiAgDQo+ICsJCW10a19jcnRjLT5jb25uX3JvdXRlc19zeXMgPSBjb25u X21tc3lzOw0KPiAgCQltdGtfY3J0Yy0+bnVtX2Nvbm5fcm91dGVzID0gbnVtX2Nvbm5fcm91dGVz Ow0KPiAgCQltdGtfY3J0Yy0+Y29ubl9yb3V0ZXMgPSBjb25uX3JvdXRlczsNCj4gIA0KPiBAQCAt MTEyNCw1ICsxMzM5LDEwIEBAIGludCBtdGtfY3J0Y19jcmVhdGUoc3RydWN0IGRybV9kZXZpY2Ug KmRybV9kZXYsIGNvbnN0IHVuc2lnbmVkIGludCAqcGF0aCwNCj4gIAkJbXRrX2NydGMtPmRkcF9j b21wX25yKys7DQo+ICAJfQ0KPiAgDQo+ICsJZm9yIChpID0gMDsgaSA8IE1BWF9NTVNZUzsgaSsr KQ0KPiArCQlpZiAobXRrX2NydGMtPmV4aXN0W2ldKQ0KPiArCQkJZGV2aWNlX2xpbmtfYWRkKG10 a19jcnRjLT5iYXNlLmRldi0+ZGV2LA0KPiArCQkJCQlwcml2LT5hbGxfZHJtX3ByaXZhdGVbaV0t Pm11dGV4X2RldiwgMCk7DQo+ICsNCj4gIAlyZXR1cm4gMDsNCj4gIH0NCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfY3J0Yy5oIGIvZHJpdmVycy9ncHUvZHJtL21l ZGlhdGVrL210a19jcnRjLmgNCj4gaW5kZXggMzg4ZTkwMGI2ZjRkLi4yNTVmMjgyM2QxN2EgMTAw NjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfY3J0Yy5oDQo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfY3J0Yy5oDQo+IEBAIC0xNSwxMCArMTUsOCBA QA0KPiAgI2RlZmluZSBNVEtfTUlOX0JQQwkzDQo+ICANCj4gIHZvaWQgbXRrX2NydGNfY29tbWl0 KHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7DQo+IC1pbnQgbXRrX2NydGNfY3JlYXRlKHN0cnVjdCBk cm1fZGV2aWNlICpkcm1fZGV2LCBjb25zdCB1bnNpZ25lZCBpbnQgKnBhdGgsDQo+IC0JCSAgICB1 bnNpZ25lZCBpbnQgcGF0aF9sZW4sIGludCBwcml2X2RhdGFfaW5kZXgsDQo+IC0JCSAgICBjb25z dCBzdHJ1Y3QgbXRrX2RybV9yb3V0ZSAqY29ubl9yb3V0ZXMsDQo+IC0JCSAgICB1bnNpZ25lZCBp bnQgbnVtX2Nvbm5fcm91dGVzKTsNCj4gK2ludCBtdGtfY3J0Y19jcmVhdGUoc3RydWN0IGRybV9k ZXZpY2UgKmRybV9kZXYsDQo+ICsJCSAgICBlbnVtIG10a19jcnRjX3BhdGggcGF0aF9zZWwpOw0K PiAgaW50IG10a19jcnRjX3BsYW5lX2NoZWNrKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yywgc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUsDQo+ICAJCQkgc3RydWN0IG10a19wbGFuZV9zdGF0ZSAqc3RhdGUp Ow0KPiAgdm9pZCBtdGtfY3J0Y19hc3luY191cGRhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjLCBz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9t ZWRpYXRlay9tdGtfZGRwX2NvbXAuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGRw X2NvbXAuYw0KPiBpbmRleCA0OTJiOGQ5NjUzMDkuLmY4NDExODRkMWUwNiAxMDA2NDQNCj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kZHBfY29tcC5jDQo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGRwX2NvbXAuYw0KPiBAQCAtNDY0LDYgKzQ2NCw3IEBA IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgbXRrX2RkcF9jb21wX3N0ZW1bTVRLX0REUF9DT01Q X1RZUEVfTUFYXSA9IHsNCj4gIAlbTVRLX0RJU1BfUFdNXSA9ICJwd20iLA0KPiAgCVtNVEtfRElT UF9SRE1BXSA9ICJyZG1hIiwNCj4gIAlbTVRLX0RJU1BfVUZPRV0gPSAidWZvZSIsDQo+ICsJW01U S19ESVNQX1ZJUlRVQUxdID0gInZpcnR1YWwiLA0KPiAgCVtNVEtfRElTUF9XRE1BXSA9ICJ3ZG1h IiwNCj4gIAlbTVRLX0RQX0lOVEZdID0gImRwLWludGYiLA0KPiAgCVtNVEtfRFBJXSA9ICJkcGki LA0KPiBAQCAtNDg3LDYgKzQ4OCwxNSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG10a19kZHBfY29t cF9tYXRjaCBtdGtfZGRwX21hdGNoZXNbRERQX0NPTVBPTkVOVF9EUk1fSURfTUFYXQ0KPiAgCVtE RFBfQ09NUE9ORU5UX0NPTE9SMF0JCT0geyBNVEtfRElTUF9DT0xPUiwJCTAsICZkZHBfY29sb3Ig fSwNCj4gIAlbRERQX0NPTVBPTkVOVF9DT0xPUjFdCQk9IHsgTVRLX0RJU1BfQ09MT1IsCQkxLCAm ZGRwX2NvbG9yIH0sDQo+ICAJW0REUF9DT01QT05FTlRfRElUSEVSMF0JCT0geyBNVEtfRElTUF9E SVRIRVIsCQkwLCAmZGRwX2RpdGhlciB9LA0KPiArCVtERFBfQ09NUE9ORU5UX0RMSV9BU1lOQzBd ICAgICAgPSB7IE1US19ESVNQX1ZJUlRVQUwsICAgICAgICAgICAtMSwgTlVMTCB9LA0KPiArCVtE RFBfQ09NUE9ORU5UX0RMSV9BU1lOQzFdICAgICAgPSB7IE1US19ESVNQX1ZJUlRVQUwsICAgICAg ICAgICAtMSwgTlVMTCB9LA0KPiArCVtERFBfQ09NUE9ORU5UX0RMSV9BU1lOQzhdICAgICAgPSB7 IE1US19ESVNQX1ZJUlRVQUwsICAgICAgICAgICAtMSwgTlVMTCB9LA0KPiArCVtERFBfQ09NUE9O RU5UX0RMSV9BU1lOQzIxXSAgICAgPSB7IE1US19ESVNQX1ZJUlRVQUwsICAgICAgICAgICAtMSwg TlVMTCB9LA0KPiArCVtERFBfQ09NUE9ORU5UX0RMSV9BU1lOQzIyXSAgICAgPSB7IE1US19ESVNQ X1ZJUlRVQUwsICAgICAgICAgICAtMSwgTlVMTCB9LA0KPiArCVtERFBfQ09NUE9ORU5UX0RMSV9B U1lOQzIzXSAgICAgPSB7IE1US19ESVNQX1ZJUlRVQUwsICAgICAgICAgICAtMSwgTlVMTCB9LA0K PiArCVtERFBfQ09NUE9ORU5UX0RMT19BU1lOQzFdICAgICAgPSB7IE1US19ESVNQX1ZJUlRVQUws ICAgICAgICAgICAtMSwgTlVMTCB9LA0KPiArCVtERFBfQ09NUE9ORU5UX0RMT19BU1lOQzJdICAg ICAgPSB7IE1US19ESVNQX1ZJUlRVQUwsICAgICAgICAgICAtMSwgTlVMTCB9LA0KPiArCVtERFBf Q09NUE9ORU5UX0RMT19BU1lOQzNdICAgICAgPSB7IE1US19ESVNQX1ZJUlRVQUwsICAgICAgICAg ICAtMSwgTlVMTCB9LA0KPiAgCVtERFBfQ09NUE9ORU5UX0RQX0lOVEYwXQk9IHsgTVRLX0RQX0lO VEYsCQkwLCAmZGRwX2RwaSB9LA0KPiAgCVtERFBfQ09NUE9ORU5UX0RQX0lOVEYxXQk9IHsgTVRL X0RQX0lOVEYsCQkxLCAmZGRwX2RwaSB9LA0KPiAgCVtERFBfQ09NUE9ORU5UX0RQSTBdCQk9IHsg TVRLX0RQSSwJCQkwLCAmZGRwX2RwaSB9LA0KPiBAQCAtNDk0LDYgKzUwNCw5IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgbXRrX2RkcF9jb21wX21hdGNoIG10a19kZHBfbWF0Y2hlc1tERFBfQ09NUE9O RU5UX0RSTV9JRF9NQVhdDQo+ICAJW0REUF9DT01QT05FTlRfRFJNX09WTF9BREFQVE9SXQk9IHsg TVRLX0RJU1BfT1ZMX0FEQVBUT1IsCTAsICZkZHBfb3ZsX2FkYXB0b3IgfSwNCj4gIAlbRERQX0NP TVBPTkVOVF9EUk1fT1ZMU1lTX0FEQVBUT1IwXSA9IHsgTVRLX0RJU1BfT1ZMU1lTX0FEQVBUT1Is IDAsICZkZHBfb3Zsc3lzX2FkYXB0b3J9LA0KPiAgCVtERFBfQ09NUE9ORU5UX0RSTV9PVkxTWVNf QURBUFRPUjFdID0geyBNVEtfRElTUF9PVkxTWVNfQURBUFRPUiwgMSwgJmRkcF9vdmxzeXNfYWRh cHRvcn0sDQo+ICsJW0REUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMF0gPSB7IE1US19E SVNQX09WTFNZU19BREFQVE9SLCAwLCAmZGRwX292bHN5c19hZGFwdG9yfSwNCj4gKwlbRERQX0NP TVBPTkVOVF9EUk1fT1ZMU1lTX0FEQVBUT1IxXSA9IHsgTVRLX0RJU1BfT1ZMU1lTX0FEQVBUT1Is IDEsICZkZHBfb3Zsc3lzX2FkYXB0b3J9LA0KPiArCVtERFBfQ09NUE9ORU5UX0RSTV9PVkxTWVNf QURBUFRPUjJdID0geyBNVEtfRElTUF9PVkxTWVNfQURBUFRPUiwgMiwgJmRkcF9vdmxzeXNfYWRh cHRvcn0sDQo+ICAJW0REUF9DT01QT05FTlRfRFNDMF0JCT0geyBNVEtfRElTUF9EU0MsCQkwLCAm ZGRwX2RzYyB9LA0KPiAgCVtERFBfQ09NUE9ORU5UX0RTQzFdCQk9IHsgTVRLX0RJU1BfRFNDLAkJ MSwgJmRkcF9kc2MgfSwNCj4gIAlbRERQX0NPTVBPTkVOVF9EU0kwXQkJPSB7IE1US19EU0ksCQkJ MCwgJmRkcF9kc2kgfSwNCj4gQEAgLTUxMCw3ICs1MjMsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBtdGtfZGRwX2NvbXBfbWF0Y2ggbXRrX2RkcF9tYXRjaGVzW0REUF9DT01QT05FTlRfRFJNX0lE X01BWF0NCj4gIAlbRERQX0NPTVBPTkVOVF9PRDBdCQk9IHsgTVRLX0RJU1BfT0QsCQkwLCAmZGRw X29kIH0sDQo+ICAJW0REUF9DT01QT05FTlRfT0QxXQkJPSB7IE1US19ESVNQX09ELAkJMSwgJmRk cF9vZCB9LA0KPiAgCVtERFBfQ09NUE9ORU5UX09WTDBdCQk9IHsgTVRLX0RJU1BfT1ZMLAkJMCwg JmRkcF9vdmwgfSwNCj4gKwlbRERQX0NPTVBPTkVOVF9PVkwwX0RMT19BU1lOQzVdID0geyBNVEtf RElTUF9WSVJUVUFMLCAgICAgICAgICAgLTEsIE5VTEwgfSwNCj4gKwlbRERQX0NPTVBPTkVOVF9P VkwwX0RMT19BU1lOQzZdID0geyBNVEtfRElTUF9WSVJUVUFMLCAgICAgICAgICAgLTEsIE5VTEwg fSwNCj4gIAlbRERQX0NPTVBPTkVOVF9PVkwxXQkJPSB7IE1US19ESVNQX09WTCwJCTEsICZkZHBf b3ZsIH0sDQo+ICsJW0REUF9DT01QT05FTlRfT1ZMMV9ETE9fQVNZTkM1XSA9IHsgTVRLX0RJU1Bf VklSVFVBTCwgICAgICAgICAgIC0xLCBOVUxMIH0sDQo+ICAJW0REUF9DT01QT05FTlRfT1ZMXzJM MF0JCT0geyBNVEtfRElTUF9PVkxfMkwsCQkwLCAmZGRwX292bCB9LA0KPiAgCVtERFBfQ09NUE9O RU5UX09WTF8yTDFdCQk9IHsgTVRLX0RJU1BfT1ZMXzJMLAkJMSwgJmRkcF9vdmwgfSwNCj4gIAlb RERQX0NPTVBPTkVOVF9PVkxfMkwyXQkJPSB7IE1US19ESVNQX09WTF8yTCwJCTIsICZkZHBfb3Zs IH0sDQo+IEBAIC01NjcsMTIgKzU4MywxOSBAQCBzdGF0aWMgYm9vbCBtdGtfZGRwX3BhdGhfYXZh aWxhYmxlKGNvbnN0IHVuc2lnbmVkIGludCAqcGF0aCwNCj4gIHsNCj4gIAl1bnNpZ25lZCBpbnQg aTsNCj4gIA0KPiArCWlmICghcGF0aF9sZW4pDQo+ICsJCXJldHVybiB0cnVlOw0KPiArDQo+ICAJ aWYgKCFwYXRoIHx8ICFwYXRoX2xlbikNCj4gIAkJcmV0dXJuIGZhbHNlOw0KPiAgDQo+ICAJZm9y IChpID0gMFU7IGkgPCBwYXRoX2xlbjsgaSsrKSB7DQo+ICAJCS8qIE9WTF9BREFQVE9SIGRvZXNu J3QgaGF2ZSBhIGRldmljZSBub2RlICovDQo+IC0JCWlmIChwYXRoW2ldID09IEREUF9DT01QT05F TlRfRFJNX09WTF9BREFQVE9SKQ0KPiArCQlpZiAocGF0aFtpXSA9PSBERFBfQ09NUE9ORU5UX0RS TV9PVkxfQURBUFRPUiB8fA0KPiArCQkgICAgcGF0aFtpXSA9PSBERFBfQ09NUE9ORU5UX0RSTV9P VkxTWVNfQURBUFRPUjAgfHwNCj4gKwkJCXBhdGhbaV0gPT0gRERQX0NPTVBPTkVOVF9EUk1fT1ZM U1lTX0FEQVBUT1IxIHx8DQo+ICsJCQlwYXRoW2ldID09IEREUF9DT01QT05FTlRfRFJNX09WTFNZ U19BREFQVE9SMiB8fA0KPiArCQkJbXRrX2RkcF9jb21wX2dldF90eXBlKHBhdGhbaV0pID09IE1U S19ESVNQX1ZJUlRVQUwpDQo+ICAJCQljb250aW51ZTsNCj4gIA0KPiAgCQlpZiAoIWNvbXBfbm9k ZVtwYXRoW2ldXSkNCj4gQEAgLTU5Nyw0NCArNjIwLDgxIEBAIGludCBtdGtfZGRwX2NvbXBfZ2V0 X2lkKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwNCj4gIAlyZXR1cm4gLUVJTlZBTDsNCj4gIH0N Cj4gIA0KPiArZW51bSBtdGtfZGRwX2NvbXBfdHlwZSBtdGtfZGRwX2NvbXBfZ2V0X3R5cGUodW5z aWduZWQgaW50IGNvbXBfaWQpDQo+ICt7DQo+ICsJcmV0dXJuIG10a19kZHBfbWF0Y2hlc1tjb21w X2lkXS50eXBlOw0KPiArfQ0KPiArDQo+ICBpbnQgbXRrX2ZpbmRfcG9zc2libGVfY3J0Y3Moc3Ry dWN0IGRybV9kZXZpY2UgKmRybSwgc3RydWN0IGRldmljZSAqZGV2KQ0KPiAgew0KPiAgCXN0cnVj dCBtdGtfZHJtX3ByaXZhdGUgKnByaXZhdGUgPSBkcm0tPmRldl9wcml2YXRlOw0KPiAgCWNvbnN0 IHN0cnVjdCBtdGtfbW1zeXNfZHJpdmVyX2RhdGEgKmRhdGE7DQo+ICAJc3RydWN0IG10a19kcm1f cHJpdmF0ZSAqcHJpdl9uOw0KPiAtCWludCBpID0gMCwgajsNCj4gIAlpbnQgcmV0Ow0KPiArCWlu dCBpID0gMCwgaiwgY291bnQgPSAwOw0KPiArCWJvb2wgZm91bmQgPSBmYWxzZTsNCj4gIA0KPiAg CWZvciAoaiA9IDA7IGogPCBwcml2YXRlLT5kYXRhLT5tbXN5c19kZXZfbnVtOyBqKyspIHsNCj4g IAkJcHJpdl9uID0gcHJpdmF0ZS0+YWxsX2RybV9wcml2YXRlW2pdOw0KPiAgCQlkYXRhID0gcHJp dl9uLT5kYXRhOw0KPiAgDQo+ICAJCWlmIChtdGtfZGRwX3BhdGhfYXZhaWxhYmxlKGRhdGEtPm1h aW5fcGF0aCwgZGF0YS0+bWFpbl9sZW4sDQo+IC0JCQkJCSAgIHByaXZfbi0+Y29tcF9ub2RlKSkg ew0KPiAtCQkJaWYgKG10a19kZHBfY29tcF9maW5kKGRldiwgZGF0YS0+bWFpbl9wYXRoLA0KPiAt CQkJCQkgICAgICBkYXRhLT5tYWluX2xlbiwNCj4gLQkJCQkJICAgICAgcHJpdl9uLT5kZHBfY29t cCkpDQo+IC0JCQkJcmV0dXJuIEJJVChpKTsNCj4gLQkJCWkrKzsNCj4gLQkJfQ0KPiArCQkJCQkg ICBwcml2X24tPmNvbXBfbm9kZSkpDQo+ICsJCQljb3VudCsrOw0KPiArDQo+ICsJCWlmIChtdGtf ZGRwX2NvbXBfZmluZChkZXYsIGRhdGEtPm1haW5fcGF0aCwgZGF0YS0+bWFpbl9sZW4sDQo+ICsJ CQkJICAgICAgcHJpdl9uLT5kZHBfY29tcCkpDQo+ICsJCQlmb3VuZCA9IHRydWU7DQo+ICsJfQ0K PiArDQo+ICsJaWYgKGNvdW50ID09IHByaXZhdGUtPmRhdGEtPm1tc3lzX2Rldl9udW0pIHsNCj4g KwkJaWYgKGZvdW5kKQ0KPiArCQkJcmV0dXJuIEJJVChpKTsNCj4gKwkJaSsrOw0KPiArCX0NCj4g Kw0KPiArCWNvdW50ID0gMDsNCj4gKwlmb3VuZCA9IGZhbHNlOw0KPiArDQo+ICsJZm9yIChqID0g MDsgaiA8IHByaXZhdGUtPmRhdGEtPm1tc3lzX2Rldl9udW07IGorKykgew0KPiArCQlwcml2X24g PSBwcml2YXRlLT5hbGxfZHJtX3ByaXZhdGVbal07DQo+ICsJCWRhdGEgPSBwcml2X24tPmRhdGE7 DQo+ICANCj4gIAkJaWYgKG10a19kZHBfcGF0aF9hdmFpbGFibGUoZGF0YS0+ZXh0X3BhdGgsIGRh dGEtPmV4dF9sZW4sDQo+IC0JCQkJCSAgIHByaXZfbi0+Y29tcF9ub2RlKSkgew0KPiAtCQkJaWYg KG10a19kZHBfY29tcF9maW5kKGRldiwgZGF0YS0+ZXh0X3BhdGgsDQo+IC0JCQkJCSAgICAgIGRh dGEtPmV4dF9sZW4sDQo+IC0JCQkJCSAgICAgIHByaXZfbi0+ZGRwX2NvbXApKQ0KPiAtCQkJCXJl dHVybiBCSVQoaSk7DQo+IC0JCQlpKys7DQo+IC0JCX0NCj4gKwkJCQkJICAgcHJpdl9uLT5jb21w X25vZGUpKQ0KPiArCQkJY291bnQrKzsNCj4gKw0KPiArCQlpZiAobXRrX2RkcF9jb21wX2ZpbmQo ZGV2LCBkYXRhLT5leHRfcGF0aCwgZGF0YS0+ZXh0X2xlbiwNCj4gKwkJCQkgICAgICBwcml2X24t PmRkcF9jb21wKSkNCj4gKwkJCWZvdW5kID0gdHJ1ZTsNCj4gKwl9DQo+ICsNCj4gKwlpZiAoY291 bnQgPT0gcHJpdmF0ZS0+ZGF0YS0+bW1zeXNfZGV2X251bSkgew0KPiArCQlpZiAoZm91bmQpDQo+ ICsJCQlyZXR1cm4gQklUKGkpOw0KPiArCQlpKys7DQo+ICsJfQ0KPiArDQo+ICsJY291bnQgPSAw Ow0KPiArCWZvdW5kID0gZmFsc2U7DQo+ICsNCj4gKwlmb3IgKGogPSAwOyBqIDwgcHJpdmF0ZS0+ ZGF0YS0+bW1zeXNfZGV2X251bTsgaisrKSB7DQo+ICsJCXByaXZfbiA9IHByaXZhdGUtPmFsbF9k cm1fcHJpdmF0ZVtqXTsNCj4gKwkJZGF0YSA9IHByaXZfbi0+ZGF0YTsNCj4gIA0KPiAgCQlpZiAo bXRrX2RkcF9wYXRoX2F2YWlsYWJsZShkYXRhLT50aGlyZF9wYXRoLCBkYXRhLT50aGlyZF9sZW4s DQo+IC0JCQkJCSAgIHByaXZfbi0+Y29tcF9ub2RlKSkgew0KPiAtCQkJaWYgKG10a19kZHBfY29t cF9maW5kKGRldiwgZGF0YS0+dGhpcmRfcGF0aCwNCj4gLQkJCQkJICAgICAgZGF0YS0+dGhpcmRf bGVuLA0KPiAtCQkJCQkgICAgICBwcml2X24tPmRkcF9jb21wKSkNCj4gLQkJCQlyZXR1cm4gQklU KGkpOw0KPiAtCQkJaSsrOw0KPiAtCQl9DQo+ICsJCQkJCXByaXZfbi0+Y29tcF9ub2RlKSkNCj4g KwkJCWNvdW50Kys7DQo+ICsNCj4gKwkJaWYgKG10a19kZHBfY29tcF9maW5kKGRldiwgZGF0YS0+ dGhpcmRfcGF0aCwgZGF0YS0+dGhpcmRfbGVuLA0KPiArCQkJCSAgICAgIHByaXZfbi0+ZGRwX2Nv bXApKQ0KPiArCQkJZm91bmQgPSB0cnVlOw0KPiArCX0NCj4gKw0KPiArCWlmIChjb3VudCA9PSBw cml2YXRlLT5kYXRhLT5tbXN5c19kZXZfbnVtKSB7DQo+ICsJCWlmIChmb3VuZCkNCj4gKwkJCXJl dHVybiBCSVQoaSk7DQo+ICsJCWkrKzsNCj4gIAl9DQo+ICANCj4gIAlyZXQgPSBtdGtfZGRwX2Nv bXBfZmluZF9pbl9yb3V0ZShkZXYsDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVk aWF0ZWsvbXRrX2RkcF9jb21wLmggYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RkcF9j b21wLmgNCj4gaW5kZXggZWY2NGNlN2EwNzFmLi5iYWRiNDJiZDRmN2MgMTAwNjQ0DQo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGRwX2NvbXAuaA0KPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RkcF9jb21wLmgNCj4gQEAgLTQwLDYgKzQwLDcgQEAgZW51 bSBtdGtfZGRwX2NvbXBfdHlwZSB7DQo+ICAJTVRLX0RJU1BfUFdNLA0KPiAgCU1US19ESVNQX1JE TUEsDQo+ICAJTVRLX0RJU1BfVUZPRSwNCj4gKwlNVEtfRElTUF9WSVJUVUFMLA0KPiAgCU1US19E SVNQX1dETUEsDQo+ICAJTVRLX0RQSSwNCj4gIAlNVEtfRFBfSU5URiwNCj4gQEAgLTQ3LDYgKzQ4 LDcgQEAgZW51bSBtdGtfZGRwX2NvbXBfdHlwZSB7DQo+ICAJTVRLX09WTF9CTEVOREVSLA0KPiAg CU1US19PVkxfRVhETUEsDQo+ICAJTVRLX09WTF9PVVRQUk9DLA0KPiArCU1US19WRElTUF9BTywN Cj4gIAlNVEtfRERQX0NPTVBfVFlQRV9NQVgsDQo+ICB9Ow0KPiAgDQo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9t ZWRpYXRlay9tdGtfZHJtX2Rydi5jDQo+IGluZGV4IDc1MjZiYzM4YmNjNy4uMDY2NWE2ZmViNTQ2 IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuYw0K PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuYw0KPiBAQCAtMTkz LDYgKzE5MywxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG10a19kcm1fcm91dGUgbXQ4MTg4X210 a19kZHBfbWFpbl9yb3V0ZXNbXSA9IHsNCj4gIAl7MCwgRERQX0NPTVBPTkVOVF9EU0kwfSwNCj4g IH07DQo+ICANCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2RybV9yb3V0ZSBtdDgxOTZfbXRr X2RkcF9yb3V0ZXNbXSA9IHsNCj4gKwl7MiwgRERQX0NPTVBPTkVOVF9EU0kwfSwNCj4gK307DQo+ ICsNCj4gIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgbXQ4MTkyX210a19kZHBfbWFpbltdID0g ew0KPiAgCUREUF9DT01QT05FTlRfT1ZMMCwNCj4gIAlERFBfQ09NUE9ORU5UX09WTF8yTDAsDQo+ IEBAIC0yMzEsNiArMjM1LDUwIEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgbXQ4MTk1X210 a19kZHBfZXh0W10gPSB7DQo+ICAJRERQX0NPTVBPTkVOVF9EUF9JTlRGMSwNCj4gIH07DQo+ICAN Cj4gK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgbXQ4MTk2X210a19kZHBfb3ZsMF9tYWluW10g PSB7DQo+ICsJRERQX0NPTVBPTkVOVF9EUk1fT1ZMU1lTX0FEQVBUT1IwLA0KPiArCUREUF9DT01Q T05FTlRfT1ZMMF9ETE9fQVNZTkM1LA0KPiArfTsNCg0KU2VwYXJhdGUgTVQ4MTk2IHBhcnQgdG8g YW5vdGhlciBwYXRjaCB3aGljaCBhZGQgc3VwcG9ydCBNVDgxOTYuDQpMZXQgdGhpcyBwYXRjaCBu b3QgcmVsYXRlZCB0byBzcGVjaWZpYyBTb0MuDQoNClJlZ2FyZHMsDQpDSw0KDQo+ICsNCj4gK3N0 YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgbXQ4MTk2X210a19kZHBfZGlzcDBfbWFpbltdID0gew0K PiArCUREUF9DT01QT05FTlRfRExJX0FTWU5DMCwNCj4gKwlERFBfQ09NUE9ORU5UX0RMT19BU1lO QzEsDQo+ICt9Ow0KPiArDQo+ICtzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IG10ODE5Nl9tdGtf ZGRwX2Rpc3AxX21haW5bXSA9IHsNCj4gKwlERFBfQ09NUE9ORU5UX0RMSV9BU1lOQzIxLA0KPiAr CUREUF9DT01QT05FTlRfRFZPMCwNCj4gK307DQo+ICsNCj4gK3N0YXRpYyBjb25zdCB1bnNpZ25l ZCBpbnQgbXQ4MTk2X210a19kZHBfb3ZsMF9leHRbXSA9IHsNCj4gKwlERFBfQ09NUE9ORU5UX0RS TV9PVkxTWVNfQURBUFRPUjEsDQo+ICsJRERQX0NPTVBPTkVOVF9PVkwwX0RMT19BU1lOQzYsDQo+ ICt9Ow0KPiArDQo+ICtzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IG10ODE5Nl9tdGtfZGRwX2Rp c3AwX2V4dFtdID0gew0KPiArCUREUF9DT01QT05FTlRfRExJX0FTWU5DMSwNCj4gKwlERFBfQ09N UE9ORU5UX0RMT19BU1lOQzIsDQo+ICt9Ow0KPiArDQo+ICtzdGF0aWMgY29uc3QgdW5zaWduZWQg aW50IG10ODE5Nl9tdGtfZGRwX2Rpc3AxX2V4dFtdID0gew0KPiArCUREUF9DT01QT05FTlRfRExJ X0FTWU5DMjIsDQo+ICsJRERQX0NPTVBPTkVOVF9EUF9JTlRGMCwNCj4gK307DQo+ICsNCj4gK3N0 YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgbXQ4MTk2X210a19kZHBfb3ZsMV90aGlyZFtdID0gew0K PiArCUREUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMiwNCj4gKwlERFBfQ09NUE9ORU5U X09WTDFfRExPX0FTWU5DNSwNCj4gK307DQo+ICsNCj4gK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBp bnQgbXQ4MTk2X210a19kZHBfZGlzcDBfdGhpcmRbXSA9IHsNCj4gKwlERFBfQ09NUE9ORU5UX0RM SV9BU1lOQzgsDQo+ICsJRERQX0NPTVBPTkVOVF9ETE9fQVNZTkMzLA0KPiArfTsNCj4gKw0KPiAr c3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBtdDgxOTZfbXRrX2RkcF9kaXNwMV90aGlyZFtdID0g ew0KPiArCUREUF9DT01QT05FTlRfRExJX0FTWU5DMjMsDQo+ICt9Ow0KPiArDQo+ICBzdGF0aWMg Y29uc3Qgc3RydWN0IG10a19tbXN5c19kcml2ZXJfZGF0YSBtdDI3MDFfbW1zeXNfZHJpdmVyX2Rh dGEgPSB7DQo+ICAJLm1haW5fcGF0aCA9IG10MjcwMV9tdGtfZGRwX21haW4sDQo+ICAJLm1haW5f bGVuID0gQVJSQVlfU0laRShtdDI3MDFfbXRrX2RkcF9tYWluKSwNCj4gQEAgLTMyNyw2ICszNzUs NjcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfbW1zeXNfZHJpdmVyX2RhdGEgbXQ4MTk1X3Zk b3N5czFfZHJpdmVyX2RhdGEgPSB7DQo+ICAJLm1pbl9oZWlnaHQgPSAxLA0KPiAgfTsNCj4gIA0K PiArc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfbW1zeXNfZHJpdmVyX2RhdGEgbXQ4MTk2X2Rpc3Bz eXMwX2RyaXZlcl9kYXRhID0gew0KPiArCS5tYWluX3BhdGggPSBtdDgxOTZfbXRrX2RkcF9kaXNw MF9tYWluLA0KPiArCS5tYWluX2xlbiA9IEFSUkFZX1NJWkUobXQ4MTk2X210a19kZHBfZGlzcDBf bWFpbiksDQo+ICsJLm1haW5fb3JkZXIgPSAxLA0KPiArCS5leHRfcGF0aCA9IG10ODE5Nl9tdGtf ZGRwX2Rpc3AwX2V4dCwNCj4gKwkuZXh0X2xlbiA9IEFSUkFZX1NJWkUobXQ4MTk2X210a19kZHBf ZGlzcDBfZXh0KSwNCj4gKwkuZXh0X29yZGVyID0gMSwNCj4gKwkudGhpcmRfcGF0aCA9IG10ODE5 Nl9tdGtfZGRwX2Rpc3AwX3RoaXJkLA0KPiArCS50aGlyZF9sZW4gPSBBUlJBWV9TSVpFKG10ODE5 Nl9tdGtfZGRwX2Rpc3AwX3RoaXJkKSwNCj4gKwkudGhpcmRfb3JkZXIgPSAxLA0KPiArCS5tbXN5 c19pZCA9IERJU1BTWVMwLA0KPiArCS5tbXN5c19kZXZfbnVtID0gNCwNCj4gKwkubWF4X3dpZHRo ID0gODE5MSwNCj4gKwkubWluX3dpZHRoID0gMiwgLyogMi1waXhlbCBhbGlnbiB3aGVuIGV0aGRy IGlzIGJ5cGFzc2VkICovDQo+ICsJLm1pbl9oZWlnaHQgPSAxLA0KPiArfTsNCj4gKw0KPiArc3Rh dGljIGNvbnN0IHN0cnVjdCBtdGtfbW1zeXNfZHJpdmVyX2RhdGEgbXQ4MTk2X2Rpc3BzeXMxX2Ry aXZlcl9kYXRhID0gew0KPiArCS5tYWluX3BhdGggPSBtdDgxOTZfbXRrX2RkcF9kaXNwMV9tYWlu LA0KPiArCS5tYWluX2xlbiA9IEFSUkFZX1NJWkUobXQ4MTk2X210a19kZHBfZGlzcDFfbWFpbiks DQo+ICsJLm1haW5fb3JkZXIgPSAyLA0KPiArCS5leHRfcGF0aCA9IG10ODE5Nl9tdGtfZGRwX2Rp c3AxX2V4dCwNCj4gKwkuZXh0X2xlbiA9IEFSUkFZX1NJWkUobXQ4MTk2X210a19kZHBfZGlzcDFf ZXh0KSwNCj4gKwkuZXh0X29yZGVyID0gMiwNCj4gKwkudGhpcmRfcGF0aCA9IG10ODE5Nl9tdGtf ZGRwX2Rpc3AxX3RoaXJkLA0KPiArCS50aGlyZF9sZW4gPSBBUlJBWV9TSVpFKG10ODE5Nl9tdGtf ZGRwX2Rpc3AxX3RoaXJkKSwNCj4gKwkuY29ubl9yb3V0ZXMgPSBtdDgxOTZfbXRrX2RkcF9yb3V0 ZXMsDQo+ICsJLm51bV9jb25uX3JvdXRlcyA9IEFSUkFZX1NJWkUobXQ4MTk2X210a19kZHBfcm91 dGVzKSwNCj4gKwkudGhpcmRfb3JkZXIgPSAyLA0KPiArCS5tbXN5c19pZCA9IERJU1BTWVMxLA0K PiArCS5tbXN5c19kZXZfbnVtID0gNCwNCj4gKwkubWF4X3dpZHRoID0gODE5MSwNCj4gKwkubWlu X3dpZHRoID0gMiwgLyogMi1waXhlbCBhbGlnbiB3aGVuIGV0aGRyIGlzIGJ5cGFzc2VkICovDQo+ ICsJLm1pbl9oZWlnaHQgPSAxLA0KPiArfTsNCj4gKw0KPiArc3RhdGljIGNvbnN0IHN0cnVjdCBt dGtfbW1zeXNfZHJpdmVyX2RhdGEgbXQ4MTk2X292bHN5czBfZHJpdmVyX2RhdGEgPSB7DQo+ICsJ Lm1haW5fcGF0aCA9IG10ODE5Nl9tdGtfZGRwX292bDBfbWFpbiwNCj4gKwkubWFpbl9sZW4gPSBB UlJBWV9TSVpFKG10ODE5Nl9tdGtfZGRwX292bDBfbWFpbiksDQo+ICsJLm1haW5fb3JkZXIgPSAw LA0KPiArCS5leHRfcGF0aCA9IG10ODE5Nl9tdGtfZGRwX292bDBfZXh0LA0KPiArCS5leHRfbGVu ID0gQVJSQVlfU0laRShtdDgxOTZfbXRrX2RkcF9vdmwwX2V4dCksDQo+ICsJLmV4dF9vcmRlciA9 IDAsDQo+ICsJLm1tc3lzX2lkID0gT1ZMU1lTMCwNCj4gKwkubW1zeXNfZGV2X251bSA9IDQsDQo+ ICsJLm1heF93aWR0aCA9IDgxOTEsDQo+ICsJLm1pbl93aWR0aCA9IDIsIC8qIDItcGl4ZWwgYWxp Z24gd2hlbiBldGhkciBpcyBieXBhc3NlZCAqLw0KPiArCS5taW5faGVpZ2h0ID0gMSwNCj4gK307 DQo+ICsNCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX21tc3lzX2RyaXZlcl9kYXRhIG10ODE5 Nl9vdmxzeXMxX2RyaXZlcl9kYXRhID0gew0KPiArCS50aGlyZF9wYXRoID0gbXQ4MTk2X210a19k ZHBfb3ZsMV90aGlyZCwNCj4gKwkudGhpcmRfbGVuID0gQVJSQVlfU0laRShtdDgxOTZfbXRrX2Rk cF9vdmwxX3RoaXJkKSwNCj4gKwkudGhpcmRfb3JkZXIgPSAwLA0KPiArCS5tbXN5c19pZCA9IE9W TFNZUzEsDQo+ICsJLm1tc3lzX2Rldl9udW0gPSA0LA0KPiArCS5tYXhfd2lkdGggPSA4MTkxLA0K PiArCS5taW5fd2lkdGggPSAyLCAvKiAyLXBpeGVsIGFsaWduIHdoZW4gZXRoZHIgaXMgYnlwYXNz ZWQgKi8NCj4gKwkubWluX2hlaWdodCA9IDEsDQo+ICt9Ow0KPiArDQo+ICBzdGF0aWMgY29uc3Qg c3RydWN0IG9mX2RldmljZV9pZCBtdGtfZHJtX29mX2lkc1tdID0gew0KPiAgCXsgLmNvbXBhdGli bGUgPSAibWVkaWF0ZWssbXQyNzAxLW1tc3lzIiwNCj4gIAkgIC5kYXRhID0gJm10MjcwMV9tbXN5 c19kcml2ZXJfZGF0YX0sDQo+IEBAIC0zNTQsNiArNDYzLDE0IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3Qgb2ZfZGV2aWNlX2lkIG10a19kcm1fb2ZfaWRzW10gPSB7DQo+ICAJICAuZGF0YSA9ICZtdDgx OTVfdmRvc3lzMF9kcml2ZXJfZGF0YX0sDQo+ICAJeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxt dDgxOTUtdmRvc3lzMSIsDQo+ICAJICAuZGF0YSA9ICZtdDgxOTVfdmRvc3lzMV9kcml2ZXJfZGF0 YX0sDQo+ICsJeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDgxOTYtZGlzcHN5czAiLA0KPiAr CSAgLmRhdGEgPSAmbXQ4MTk2X2Rpc3BzeXMwX2RyaXZlcl9kYXRhfSwNCj4gKwl7IC5jb21wYXRp YmxlID0gIm1lZGlhdGVrLG10ODE5Ni1kaXNwc3lzMSIsDQo+ICsJICAuZGF0YSA9ICZtdDgxOTZf ZGlzcHN5czFfZHJpdmVyX2RhdGF9LA0KPiArCXsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4 MTk2LW92bHN5czAiLA0KPiArCSAgLmRhdGEgPSAmbXQ4MTk2X292bHN5czBfZHJpdmVyX2RhdGF9 LA0KPiArCXsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4MTk2LW92bHN5czEiLA0KPiArCSAg LmRhdGEgPSAmbXQ4MTk2X292bHN5czFfZHJpdmVyX2RhdGF9LA0KPiAgCXsgfQ0KPiAgfTsNCj4g IE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG10a19kcm1fb2ZfaWRzKTsNCj4gQEAgLTM2OCw3ICs0 ODUsNyBAQCBzdGF0aWMgaW50IG10a19kcm1fbWF0Y2goc3RydWN0IGRldmljZSAqZGV2LCBjb25z dCB2b2lkICpkYXRhKQ0KPiAgc3RhdGljIGJvb2wgbXRrX2RybV9nZXRfYWxsX2RybV9wcml2KHN0 cnVjdCBkZXZpY2UgKmRldikNCj4gIHsNCj4gIAlzdHJ1Y3QgbXRrX2RybV9wcml2YXRlICpkcm1f cHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KPiAtCXN0cnVjdCBtdGtfZHJtX3ByaXZhdGUg KmFsbF9kcm1fcHJpdltNQVhfQ1JUQ107DQo+ICsJc3RydWN0IG10a19kcm1fcHJpdmF0ZSAqYWxs X2RybV9wcml2W01BWF9NTVNZU10gPSB7TlVMTH07DQo+ICAJc3RydWN0IG10a19kcm1fcHJpdmF0 ZSAqdGVtcF9kcm1fcHJpdjsNCj4gIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKnBoYW5kbGUgPSBkZXYt PnBhcmVudC0+b2Zfbm9kZTsNCj4gIAljb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkICpvZl9pZDsN Cj4gQEAgLTM5NSwyMyArNTEyLDE4IEBAIHN0YXRpYyBib29sIG10a19kcm1fZ2V0X2FsbF9kcm1f cHJpdihzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ICAJCWlmICghdGVtcF9kcm1fcHJpdikNCj4gIAkJ CWNvbnRpbnVlOw0KPiAgDQo+IC0JCWlmICh0ZW1wX2RybV9wcml2LT5kYXRhLT5tYWluX2xlbikN Cj4gLQkJCWFsbF9kcm1fcHJpdltDUlRDX01BSU5dID0gdGVtcF9kcm1fcHJpdjsNCj4gLQkJZWxz ZSBpZiAodGVtcF9kcm1fcHJpdi0+ZGF0YS0+ZXh0X2xlbikNCj4gLQkJCWFsbF9kcm1fcHJpdltD UlRDX0VYVF0gPSB0ZW1wX2RybV9wcml2Ow0KPiAtCQllbHNlIGlmICh0ZW1wX2RybV9wcml2LT5k YXRhLT50aGlyZF9sZW4pDQo+IC0JCQlhbGxfZHJtX3ByaXZbQ1JUQ19USElSRF0gPSB0ZW1wX2Ry bV9wcml2Ow0KPiArCQlhbGxfZHJtX3ByaXZbdGVtcF9kcm1fcHJpdi0+ZGF0YS0+bW1zeXNfaWRd ID0gdGVtcF9kcm1fcHJpdjsNCj4gIA0KPiAgCQlpZiAodGVtcF9kcm1fcHJpdi0+bXRrX2RybV9i b3VuZCkNCj4gIAkJCWNudCsrOw0KPiAgDQo+IC0JCWlmIChjbnQgPT0gTUFYX0NSVEMpDQo+ICsJ CWlmIChjbnQgPT0gdGVtcF9kcm1fcHJpdi0+ZGF0YS0+bW1zeXNfZGV2X251bSkNCj4gIAkJCWJy ZWFrOw0KPiAgCX0NCj4gIA0KPiAgCWlmIChkcm1fcHJpdi0+ZGF0YS0+bW1zeXNfZGV2X251bSA9 PSBjbnQpIHsNCj4gLQkJZm9yIChpID0gMDsgaSA8IGNudDsgaSsrKQ0KPiAtCQkJZm9yIChqID0g MDsgaiA8IGNudDsgaisrKQ0KPiArCQlmb3IgKGkgPSAwOyBpIDwgTUFYX01NU1lTOyBpKyspDQo+ ICsJCQlmb3IgKGogPSAwOyBqIDwgTUFYX01NU1lTOyBqKyspDQo+ICAJCQkJYWxsX2RybV9wcml2 W2pdLT5hbGxfZHJtX3ByaXZhdGVbaV0gPSBhbGxfZHJtX3ByaXZbaV07DQo+ICANCj4gIAkJcmV0 dXJuIHRydWU7DQo+IEBAIC00OTgsNyArNjEwLDEwIEBAIHN0YXRpYyBpbnQgbXRrX2RybV9rbXNf aW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZHJtKQ0KPiAgCWRybS0+bW9kZV9jb25maWcuZnVuY3Mg PSAmbXRrX2RybV9tb2RlX2NvbmZpZ19mdW5jczsNCj4gIAlkcm0tPm1vZGVfY29uZmlnLmhlbHBl cl9wcml2YXRlID0gJm10a19kcm1fbW9kZV9jb25maWdfaGVscGVyczsNCj4gIA0KPiAtCWZvciAo aSA9IDA7IGkgPCBwcml2YXRlLT5kYXRhLT5tbXN5c19kZXZfbnVtOyBpKyspIHsNCj4gKwlmb3Ig KGkgPSAwOyBpIDwgTUFYX01NU1lTOyBpKyspIHsNCj4gKwkJaWYgKCFwcml2YXRlLT5hbGxfZHJt X3ByaXZhdGVbaV0pDQo+ICsJCQljb250aW51ZTsNCj4gKw0KPiAgCQlkcm0tPmRldl9wcml2YXRl ID0gcHJpdmF0ZS0+YWxsX2RybV9wcml2YXRlW2ldOw0KPiAgCQlyZXQgPSBjb21wb25lbnRfYmlu ZF9hbGwocHJpdmF0ZS0+YWxsX2RybV9wcml2YXRlW2ldLT5kZXYsIGRybSk7DQo+ICAJCWlmIChy ZXQpDQo+IEBAIC01MjEsOCArNjM2LDEwIEBAIHN0YXRpYyBpbnQgbXRrX2RybV9rbXNfaW5pdChz dHJ1Y3QgZHJtX2RldmljZSAqZHJtKQ0KPiAgCSAqICAgIHRoaXJkIHBhdGguDQo+ICAJICovDQo+ ICAJZm9yIChpID0gMDsgaSA8IE1BWF9DUlRDOyBpKyspIHsNCj4gLQkJZm9yIChqID0gMDsgaiA8 IHByaXZhdGUtPmRhdGEtPm1tc3lzX2Rldl9udW07IGorKykgew0KPiArCQlmb3IgKGogPSAwOyBq IDwgTUFYX01NU1lTOyBqKyspIHsNCj4gIAkJCXByaXZfbiA9IHByaXZhdGUtPmFsbF9kcm1fcHJp dmF0ZVtqXTsNCj4gKwkJCWlmICghcHJpdl9uKQ0KPiArCQkJCWNvbnRpbnVlOw0KPiAgDQo+ICAJ CQlpZiAocHJpdl9uLT5kYXRhLT5tYXhfd2lkdGgpDQo+ICAJCQkJZHJtLT5tb2RlX2NvbmZpZy5t YXhfd2lkdGggPSBwcml2X24tPmRhdGEtPm1heF93aWR0aDsNCj4gQEAgLTUzNCwyOCArNjUxLDIz IEBAIHN0YXRpYyBpbnQgbXRrX2RybV9rbXNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZHJtKQ0K PiAgCQkJCWRybS0+bW9kZV9jb25maWcubWluX2hlaWdodCA9IHByaXZfbi0+ZGF0YS0+bWluX2hl aWdodDsNCj4gIA0KPiAgCQkJaWYgKGkgPT0gQ1JUQ19NQUlOICYmIHByaXZfbi0+ZGF0YS0+bWFp bl9sZW4pIHsNCj4gLQkJCQlyZXQgPSBtdGtfY3J0Y19jcmVhdGUoZHJtLCBwcml2X24tPmRhdGEt Pm1haW5fcGF0aCwNCj4gLQkJCQkJCSAgICAgIHByaXZfbi0+ZGF0YS0+bWFpbl9sZW4sIGosDQo+ IC0JCQkJCQkgICAgICBwcml2X24tPmRhdGEtPmNvbm5fcm91dGVzLA0KPiAtCQkJCQkJICAgICAg cHJpdl9uLT5kYXRhLT5udW1fY29ubl9yb3V0ZXMpOw0KPiArCQkJCXJldCA9IG10a19jcnRjX2Ny ZWF0ZShkcm0sIENSVENfTUFJTik7DQo+ICAJCQkJaWYgKHJldCkNCj4gIAkJCQkJZ290byBlcnJf Y29tcG9uZW50X3VuYmluZDsNCj4gIA0KPiAtCQkJCWNvbnRpbnVlOw0KPiArCQkJCWJyZWFrOw0K PiAgCQkJfSBlbHNlIGlmIChpID09IENSVENfRVhUICYmIHByaXZfbi0+ZGF0YS0+ZXh0X2xlbikg ew0KPiAtCQkJCXJldCA9IG10a19jcnRjX2NyZWF0ZShkcm0sIHByaXZfbi0+ZGF0YS0+ZXh0X3Bh dGgsDQo+IC0JCQkJCQkgICAgICBwcml2X24tPmRhdGEtPmV4dF9sZW4sIGosIE5VTEwsIDApOw0K PiArCQkJCXJldCA9IG10a19jcnRjX2NyZWF0ZShkcm0sIENSVENfRVhUKTsNCj4gIAkJCQlpZiAo cmV0KQ0KPiAgCQkJCQlnb3RvIGVycl9jb21wb25lbnRfdW5iaW5kOw0KPiAgDQo+IC0JCQkJY29u dGludWU7DQo+ICsJCQkJYnJlYWs7DQo+ICAJCQl9IGVsc2UgaWYgKGkgPT0gQ1JUQ19USElSRCAm JiBwcml2X24tPmRhdGEtPnRoaXJkX2xlbikgew0KPiAtCQkJCXJldCA9IG10a19jcnRjX2NyZWF0 ZShkcm0sIHByaXZfbi0+ZGF0YS0+dGhpcmRfcGF0aCwNCj4gLQkJCQkJCSAgICAgIHByaXZfbi0+ ZGF0YS0+dGhpcmRfbGVuLCBqLCBOVUxMLCAwKTsNCj4gKwkJCQlyZXQgPSBtdGtfY3J0Y19jcmVh dGUoZHJtLCBDUlRDX1RISVJEKTsNCj4gIAkJCQlpZiAocmV0KQ0KPiAgCQkJCQlnb3RvIGVycl9j b21wb25lbnRfdW5iaW5kOw0KPiAgDQo+IC0JCQkJY29udGludWU7DQo+ICsJCQkJYnJlYWs7DQo+ ICAJCQl9DQo+ICAJCX0NCj4gIAl9DQo+IEBAIC01NzQsOCArNjg2LDkgQEAgc3RhdGljIGludCBt dGtfZHJtX2ttc19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkcm0pDQo+ICAJCWdvdG8gZXJyX2Nv bXBvbmVudF91bmJpbmQ7DQo+ICAJfQ0KPiAgDQo+IC0JZm9yIChpID0gMDsgaSA8IHByaXZhdGUt PmRhdGEtPm1tc3lzX2Rldl9udW07IGkrKykNCj4gLQkJcHJpdmF0ZS0+YWxsX2RybV9wcml2YXRl W2ldLT5kbWFfZGV2ID0gZG1hX2RldjsNCj4gKwlmb3IgKGkgPSAwOyBpIDwgTUFYX01NU1lTOyBp KyspDQo+ICsJCWlmIChwcml2YXRlLT5hbGxfZHJtX3ByaXZhdGVbaV0pDQo+ICsJCQlwcml2YXRl LT5hbGxfZHJtX3ByaXZhdGVbaV0tPmRtYV9kZXYgPSBkbWFfZGV2Ow0KPiAgDQo+ICAJLyoNCj4g IAkgKiBDb25maWd1cmUgdGhlIERNQSBzZWdtZW50IHNpemUgdG8gbWFrZSBzdXJlIHdlIGdldCBj b250aWd1b3VzIElPVkENCj4gQEAgLTU5MywxMSArNzA2LDEzIEBAIHN0YXRpYyBpbnQgbXRrX2Ry bV9rbXNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZHJtKQ0KPiAgCXJldHVybiAwOw0KPiAgDQo+ ICBlcnJfY29tcG9uZW50X3VuYmluZDoNCj4gLQlmb3IgKGkgPSAwOyBpIDwgcHJpdmF0ZS0+ZGF0 YS0+bW1zeXNfZGV2X251bTsgaSsrKQ0KPiAtCQljb21wb25lbnRfdW5iaW5kX2FsbChwcml2YXRl LT5hbGxfZHJtX3ByaXZhdGVbaV0tPmRldiwgZHJtKTsNCj4gKwlmb3IgKGkgPSAwOyBpIDwgTUFY X01NU1lTOyBpKyspDQo+ICsJCWlmIChwcml2YXRlLT5hbGxfZHJtX3ByaXZhdGVbaV0pDQo+ICsJ CQljb21wb25lbnRfdW5iaW5kX2FsbChwcml2YXRlLT5hbGxfZHJtX3ByaXZhdGVbaV0tPmRldiwg ZHJtKTsNCj4gIHB1dF9tdXRleF9kZXY6DQo+IC0JZm9yIChpID0gMDsgaSA8IHByaXZhdGUtPmRh dGEtPm1tc3lzX2Rldl9udW07IGkrKykNCj4gLQkJcHV0X2RldmljZShwcml2YXRlLT5hbGxfZHJt X3ByaXZhdGVbaV0tPm11dGV4X2Rldik7DQo+ICsJZm9yIChpID0gMDsgaSA8IE1BWF9NTVNZUzsg aSsrKQ0KPiArCQlpZiAocHJpdmF0ZS0+YWxsX2RybV9wcml2YXRlW2ldKQ0KPiArCQkJcHV0X2Rl dmljZShwcml2YXRlLT5hbGxfZHJtX3ByaXZhdGVbaV0tPm11dGV4X2Rldik7DQo+ICANCj4gIAly ZXR1cm4gcmV0Ow0KPiAgfQ0KPiBAQCAtNjYxLDYgKzc3NiwxOSBAQCBzdGF0aWMgaW50IG10a19k cm1fYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ICAJfQ0KPiAgDQo+ICAJcHJpdmF0ZS0+bXV0 ZXhfZGV2ID0gJnBkZXYtPmRldjsNCj4gKw0KPiArCWlmIChwcml2YXRlLT52ZGlzcF9hb19ub2Rl KSB7DQo+ICsJCXBkZXYgPSBvZl9maW5kX2RldmljZV9ieV9ub2RlKHByaXZhdGUtPnZkaXNwX2Fv X25vZGUpOw0KPiArCQlpZiAoIXBkZXYpIHsNCj4gKwkJCWRldl9lcnIoZGV2LCAiV2FpdGluZyBm b3IgdmRpc3BfYW8gZGV2aWNlICVwT0ZcbiIsDQo+ICsJCQkJcHJpdmF0ZS0+dmRpc3BfYW9fbm9k ZSk7DQo+ICsJCQlvZl9ub2RlX3B1dChwcml2YXRlLT5tdXRleF9ub2RlKTsNCj4gKwkJCW9mX25v ZGVfcHV0KHByaXZhdGUtPnZkaXNwX2FvX25vZGUpOw0KPiArCQkJcmV0dXJuIC1FUFJPQkVfREVG RVI7DQo+ICsJCX0NCj4gKwkJcHJpdmF0ZS0+dmRpc3BfYW9fZGV2ID0gJnBkZXYtPmRldjsNCj4g Kwl9DQo+ICsNCj4gIAlwcml2YXRlLT5tdGtfZHJtX2JvdW5kID0gdHJ1ZTsNCj4gIAlwcml2YXRl LT5kZXYgPSBkZXY7DQo+ICANCj4gQEAgLTY3Myw4ICs4MDEsOSBAQCBzdGF0aWMgaW50IG10a19k cm1fYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ICANCj4gIAlwcml2YXRlLT5kcm1fbWFzdGVy ID0gdHJ1ZTsNCj4gIAlkcm0tPmRldl9wcml2YXRlID0gcHJpdmF0ZTsNCj4gLQlmb3IgKGkgPSAw OyBpIDwgcHJpdmF0ZS0+ZGF0YS0+bW1zeXNfZGV2X251bTsgaSsrKQ0KPiAtCQlwcml2YXRlLT5h bGxfZHJtX3ByaXZhdGVbaV0tPmRybSA9IGRybTsNCj4gKwlmb3IgKGkgPSAwOyBpIDwgTUFYX01N U1lTOyBpKyspDQo+ICsJCWlmIChwcml2YXRlLT5hbGxfZHJtX3ByaXZhdGVbaV0pDQo+ICsJCQlw cml2YXRlLT5hbGxfZHJtX3ByaXZhdGVbaV0tPmRybSA9IGRybTsNCj4gIA0KPiAgCXJldCA9IG10 a19kcm1fa21zX2luaXQoZHJtKTsNCj4gIAlpZiAocmV0IDwgMCkNCj4gQEAgLTc3MSw2ICs5MDAs OCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtdGtfZGRwX2NvbXBfZHRfaWRz W10gPSB7DQo+ICAJICAuZGF0YSA9ICh2b2lkICopTVRLX0RJU1BfTVVURVggfSwNCj4gIAl7IC5j b21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODE5NS1kaXNwLW11dGV4IiwNCj4gIAkgIC5kYXRhID0g KHZvaWQgKilNVEtfRElTUF9NVVRFWCB9LA0KPiArCXsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWss bXQ4MTk2LWRpc3AtbXV0ZXgiLA0KPiArCSAgLmRhdGEgPSAodm9pZCAqKU1US19ESVNQX01VVEVY IH0sDQo+ICAJeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDgxNzMtZGlzcC1vZCIsDQo+ICAJ ICAuZGF0YSA9ICh2b2lkICopTVRLX0RJU1BfT0QgfSwNCj4gIAl7IC5jb21wYXRpYmxlID0gIm1l ZGlhdGVrLG10MjcwMS1kaXNwLW92bCIsDQo+IEBAIC04MzcsNiArOTY4LDggQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXRrX2RkcF9jb21wX2R0X2lkc1tdID0gew0KPiAgCSAg LmRhdGEgPSAodm9pZCAqKU1US19EU0kgfSwNCj4gIAl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVr LG10ODE4OC1kc2kiLA0KPiAgCSAgLmRhdGEgPSAodm9pZCAqKU1US19EU0kgfSwNCj4gKwl7IC5j b21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODE5Ni12ZGlzcC1hbyIsDQo+ICsJICAuZGF0YSA9ICh2 b2lkICopTVRLX1ZESVNQX0FPIH0sDQo+ICAJeyB9DQo+ICB9Ow0KPiAgDQo+IEBAIC0xMTExLDcg KzEyNDQsNyBAQCBzdGF0aWMgaW50IG10a19kcm1fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldikNCj4gIAkJcHJpdmF0ZS0+ZGF0YSA9IG10a19kcm1fZGF0YTsNCj4gIAl9Ow0KPiAg DQo+IC0JcHJpdmF0ZS0+YWxsX2RybV9wcml2YXRlID0gZGV2bV9rbWFsbG9jX2FycmF5KGRldiwg cHJpdmF0ZS0+ZGF0YS0+bW1zeXNfZGV2X251bSwNCj4gKwlwcml2YXRlLT5hbGxfZHJtX3ByaXZh dGUgPSBkZXZtX2ttYWxsb2NfYXJyYXkoZGV2LCBNQVhfTU1TWVMsDQo+ICAJCQkJCQkgICAgICBz aXplb2YoKnByaXZhdGUtPmFsbF9kcm1fcHJpdmF0ZSksDQo+ICAJCQkJCQkgICAgICBHRlBfS0VS TkVMKTsNCj4gIAlpZiAoIXByaXZhdGUtPmFsbF9kcm1fcHJpdmF0ZSkNCj4gQEAgLTExNjMsNiAr MTI5NiwyMiBAQCBzdGF0aWMgaW50IG10a19kcm1fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldikNCj4gIAkJY29tcG9uZW50X21hdGNoX2FkZChkZXYsICZtYXRjaCwgY29tcGFyZV9k ZXYsICZvdmxfYWRhcHRvci0+ZGV2KTsNCj4gIAl9DQo+ICANCj4gKwlpZiAobXRrX2RybV9maW5k X21tc3lzX2NvbXAocHJpdmF0ZSwgRERQX0NPTVBPTkVOVF9EUk1fT1ZMU1lTX0FEQVBUT1IyKSkg ew0KPiArCQlzdHJ1Y3QgbXRrX2RybV9vdmxzeXNfcHJpdmF0ZSBvdmxzeXNfcHJpdjsNCj4gKw0K PiArCQlvdmxzeXNfcHJpdi5tbXN5c19kZXYgPSBwcml2YXRlLT5tbXN5c19kZXY7DQo+ICsJCW92 bHN5c19wcml2LnVzZV9wYXRoID0NCj4gKwkJCW10a19kcm1fbW1zeXNfY29tcF9pbl9wYXRoKHBy aXZhdGUsIEREUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMik7DQo+ICsJCW92bF9hZGFw dG9yID0gcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyX2RhdGEoZGV2LCAibWVkaWF0ZWstZGlzcC1v dmxzeXMtYWRhcHRvciIsDQo+ICsJCQkJCQkJICAgIFBMQVRGT1JNX0RFVklEX0FVVE8sDQo+ICsJ CQkJCQkJICAgICh2b2lkICopJm92bHN5c19wcml2LA0KPiArCQkJCQkJCSAgICBzaXplb2Yoc3Ry dWN0IG10a19kcm1fb3Zsc3lzX3ByaXZhdGUpKTsNCj4gKwkJcHJpdmF0ZS0+ZGRwX2NvbXBbRERQ X0NPTVBPTkVOVF9EUk1fT1ZMU1lTX0FEQVBUT1IyXS5kZXYgPSAmb3ZsX2FkYXB0b3ItPmRldjsN Cj4gKwkJbXRrX2RkcF9jb21wX2luaXQoTlVMTCwgJnByaXZhdGUtPmRkcF9jb21wW0REUF9DT01Q T05FTlRfRFJNX09WTFNZU19BREFQVE9SMl0sDQo+ICsJCQkJICBERFBfQ09NUE9ORU5UX0RSTV9P VkxTWVNfQURBUFRPUjIpOw0KPiArCQljb21wb25lbnRfbWF0Y2hfYWRkKGRldiwgJm1hdGNoLCBj b21wYXJlX2RldiwgJm92bF9hZGFwdG9yLT5kZXYpOw0KPiArCX0NCj4gKw0KPiAgCS8qIEl0ZXJh dGUgb3ZlciBzaWJsaW5nIERJU1AgZnVuY3Rpb24gYmxvY2tzICovDQo+ICAJZm9yX2VhY2hfY2hp bGRfb2Zfbm9kZShwaGFuZGxlLT5wYXJlbnQsIG5vZGUpIHsNCj4gIAkJZW51bSBtdGtfZGRwX2Nv bXBfdHlwZSBjb21wX3R5cGU7DQo+IEBAIC0xMTg5LDYgKzEzMzgsMTIgQEAgc3RhdGljIGludCBt dGtfZHJtX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ICAJCQljb250aW51 ZTsNCj4gIAkJfQ0KPiAgDQo+ICsJCWlmIChjb21wX3R5cGUgPT0gTVRLX1ZESVNQX0FPKSB7DQo+ ICsJCQlwcml2YXRlLT52ZGlzcF9hb19ub2RlID0gb2Zfbm9kZV9nZXQobm9kZSk7DQo+ICsJCQlk ZXZfZGJnKGRldiwgImdldCB2ZGlzcF9hbyBub2RlIik7DQo+ICsJCQljb250aW51ZTsNCj4gKwkJ fQ0KPiArDQo+ICAJCWNvbXBfaWQgPSBtdGtfZGRwX2NvbXBfZ2V0X2lkKG5vZGUsIGNvbXBfdHlw ZSk7DQo+ICAJCWlmIChjb21wX2lkIDwgMCkgew0KPiAgCQkJZGV2X3dhcm4oZGV2LCAiU2tpcHBp bmcgdW5rbm93biBjb21wb25lbnQgJXBPRlxuIiwNCj4gQEAgLTEyNDEsNiArMTM5Niw5IEBAIHN0 YXRpYyBpbnQgbXRrX2RybV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPiAg DQo+ICAJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgcHJpdmF0ZSk7DQo+ICANCj4gKwlpZiAo IW1hdGNoKQ0KPiArCQlkcm1fb2ZfY29tcG9uZW50X21hdGNoX2FkZChkZXYsICZtYXRjaCwgY29t cG9uZW50X2NvbXBhcmVfb2YsIE5VTEwpOw0KPiArDQo+ICAJcmV0ID0gY29tcG9uZW50X21hc3Rl cl9hZGRfd2l0aF9tYXRjaChkZXYsICZtdGtfZHJtX29wcywgbWF0Y2gpOw0KPiAgCWlmIChyZXQp DQo+ICAJCWdvdG8gZXJyX3BtOw0KPiBAQCAtMTI2NCw2ICsxNDIyLDcgQEAgc3RhdGljIHZvaWQg bXRrX2RybV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4gIAljb21wb25l bnRfbWFzdGVyX2RlbCgmcGRldi0+ZGV2LCAmbXRrX2RybV9vcHMpOw0KPiAgCXBtX3J1bnRpbWVf ZGlzYWJsZSgmcGRldi0+ZGV2KTsNCj4gIAlvZl9ub2RlX3B1dChwcml2YXRlLT5tdXRleF9ub2Rl KTsNCj4gKwlvZl9ub2RlX3B1dChwcml2YXRlLT52ZGlzcF9hb19ub2RlKTsNCj4gIAlmb3IgKGkg PSAwOyBpIDwgRERQX0NPTVBPTkVOVF9EUk1fSURfTUFYOyBpKyspDQo+ICAJCW9mX25vZGVfcHV0 KHByaXZhdGUtPmNvbXBfbm9kZVtpXSk7DQo+ICB9DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9t dGtfZHJtX2Rydi5oDQo+IGluZGV4IGFhMTdlNzQzYTFkMC4uMzZjZmJmYTMwZmYyIDEwMDY0NA0K PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaA0KPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaA0KPiBAQCAtMTMsNyArMTMsOCBA QA0KPiAgI2RlZmluZSBERFBfQ09NUE9ORU5UX0RSTV9PVkxfQURBUFRPUiAoRERQX0NPTVBPTkVO VF9JRF9NQVggKyAxKQ0KPiAgI2RlZmluZSBERFBfQ09NUE9ORU5UX0RSTV9PVkxTWVNfQURBUFRP UjAgKEREUF9DT01QT05FTlRfRFJNX09WTF9BREFQVE9SICsgMSkNCj4gICNkZWZpbmUgRERQX0NP TVBPTkVOVF9EUk1fT1ZMU1lTX0FEQVBUT1IxIChERFBfQ09NUE9ORU5UX0RSTV9PVkxTWVNfQURB UFRPUjAgKyAxKQ0KPiAtI2RlZmluZSBERFBfQ09NUE9ORU5UX0RSTV9JRF9NQVggKEREUF9DT01Q T05FTlRfRFJNX09WTFNZU19BREFQVE9SMSArIDEpDQo+ICsjZGVmaW5lIEREUF9DT01QT05FTlRf RFJNX09WTFNZU19BREFQVE9SMiAoRERQX0NPTVBPTkVOVF9EUk1fT1ZMU1lTX0FEQVBUT1IxICsg MSkNCj4gKyNkZWZpbmUgRERQX0NPTVBPTkVOVF9EUk1fSURfTUFYIChERFBfQ09NUE9ORU5UX0RS TV9PVkxTWVNfQURBUFRPUjIgKyAxKQ0KPiAgDQo+ICBlbnVtIG10a19jcnRjX3BhdGggew0KPiAg CUNSVENfTUFJTiwNCj4gQEAgLTIyLDYgKzIzLDE0IEBAIGVudW0gbXRrX2NydGNfcGF0aCB7DQo+ ICAJTUFYX0NSVEMsDQo+ICB9Ow0KPiAgDQo+ICtlbnVtIG10a19kcm1fbW1zeXMgew0KPiArCURJ U1BTWVMwLA0KPiArCURJU1BTWVMxLA0KPiArCU9WTFNZUzAsDQo+ICsJT1ZMU1lTMSwNCj4gKwlN QVhfTU1TWVMsDQo+ICt9Ow0KPiArDQo+ICBzdHJ1Y3QgZGV2aWNlOw0KPiAgc3RydWN0IGRldmlj ZV9ub2RlOw0KPiAgc3RydWN0IGRybV9jcnRjOw0KPiBAQCAtMzgsMTAgKzQ3LDEzIEBAIHN0cnVj dCBtdGtfZHJtX3JvdXRlIHsNCj4gIHN0cnVjdCBtdGtfbW1zeXNfZHJpdmVyX2RhdGEgew0KPiAg CWNvbnN0IHVuc2lnbmVkIGludCAqbWFpbl9wYXRoOw0KPiAgCXVuc2lnbmVkIGludCBtYWluX2xl bjsNCj4gKwl1bnNpZ25lZCBpbnQgbWFpbl9vcmRlcjsNCj4gIAljb25zdCB1bnNpZ25lZCBpbnQg KmV4dF9wYXRoOw0KPiAgCXVuc2lnbmVkIGludCBleHRfbGVuOw0KPiArCXVuc2lnbmVkIGludCBl eHRfb3JkZXI7DQo+ICAJY29uc3QgdW5zaWduZWQgaW50ICp0aGlyZF9wYXRoOw0KPiAgCXVuc2ln bmVkIGludCB0aGlyZF9sZW47DQo+ICsJdW5zaWduZWQgaW50IHRoaXJkX29yZGVyOw0KPiAgCWNv bnN0IHN0cnVjdCBtdGtfZHJtX3JvdXRlICpjb25uX3JvdXRlczsNCj4gIAl1bnNpZ25lZCBpbnQg bnVtX2Nvbm5fcm91dGVzOw0KPiAgDQo+IEBAIC02Myw2ICs3NSw4IEBAIHN0cnVjdCBtdGtfZHJt X3ByaXZhdGUgew0KPiAgCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbXV0ZXhfbm9kZTsNCj4gIAlzdHJ1 Y3QgZGV2aWNlICptdXRleF9kZXY7DQo+ICAJc3RydWN0IGRldmljZSAqbW1zeXNfZGV2Ow0KPiAr CXN0cnVjdCBkZXZpY2Vfbm9kZSAqdmRpc3BfYW9fbm9kZTsNCj4gKwlzdHJ1Y3QgZGV2aWNlICp2 ZGlzcF9hb19kZXY7DQo+ICAJc3RydWN0IGRldmljZV9ub2RlICpjb21wX25vZGVbRERQX0NPTVBP TkVOVF9EUk1fSURfTUFYXTsNCj4gIAlzdHJ1Y3QgbXRrX2RkcF9jb21wIGRkcF9jb21wW0REUF9D T01QT05FTlRfRFJNX0lEX01BWF07DQo+ICAJc3RydWN0IG10a19tbXN5c19kcml2ZXJfZGF0YSAq ZGF0YTsNCg0K 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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id B3C4AC021A1 for ; Wed, 12 Feb 2025 09:30:42 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 0955810E171; Wed, 12 Feb 2025 09:30:42 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (1024-bit key; unprotected) header.d=mediatek.com header.i=@mediatek.com header.b="hFsPCzsE"; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=mediateko365.onmicrosoft.com header.i=@mediateko365.onmicrosoft.com header.b="FOz4Duf/"; dkim-atps=neutral Received: from mailgw01.mediatek.com (unknown [60.244.123.138]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3B1F510E171 for ; Wed, 12 Feb 2025 09:30:39 +0000 (UTC) X-UUID: 02992996e92411efb8f9918b5fc74e19-20250212 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Type:MIME-Version:Content-Transfer-Encoding:Content-ID:In-Reply-To:References:Message-ID:Date:Subject:CC:To:From; bh=JwTwb8Tk6nmcEacsZc0WEGVp4mOABT7oxgHbiHhNGAo=; b=hFsPCzsE8KQNE0dxLHerFRW5ZNAjI2VkzfiU7iyw8sdZg+6tbKm6YQCp0jf5w4ZU3PLjfuXZgk5TjTtPGBSVhGWNUZZUCJWOJ3GoejXaWbPaIvHUr4t2NDPvYTTR4E+MCuAOLf/LgqL7ZoO9lIbEsF38nMEMY0Mpv2X622pH3yg=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.46, REQID:833a9965-c234-4e49-ae58-aca89bc3d471, 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:60aa074, CLOUDID:0925418f-637d-4112-88e4-c7792fee6ae2, B ulkID:nil,BulkQuantity:0,Recheck:0,SF:80|81|82|83|102,TC:nil,Content:0|50, EDM:-3,IP:nil,URL:11|1,File:nil,RT: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,ARC:0 X-CID-BVR: 0 X-CID-BAS: 0,_,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR,TF_CID_SPAM_ULN X-UUID: 02992996e92411efb8f9918b5fc74e19-20250212 Received: from mtkmbs13n2.mediatek.inc [(172.21.101.108)] by mailgw01.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 1821878908; Wed, 12 Feb 2025 17:30:34 +0800 Received: from mtkmbs10n2.mediatek.inc (172.21.101.183) by mtkmbs11n2.mediatek.inc (172.21.101.187) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.28; Wed, 12 Feb 2025 17:30:33 +0800 Received: from HK2PR02CU002.outbound.protection.outlook.com (172.21.101.237) by mtkmbs10n2.mediatek.inc (172.21.101.183) with Microsoft SMTP Server id 15.2.1258.28 via Frontend Transport; Wed, 12 Feb 2025 17:30:33 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RFCpExfMnktg8htGKzicU+TgpB9r6HDS//BzEfop7Da5bkI2DadmSeNYC7wqHDYNMaAx642RdzalgjzEjoodnapx7q9h11aSuH1BR7k1sapA3ly8+X2p7z+am4uwIUPTXeBUtnXaDqZ6SYv6Lk0A6IyE8x1s1yTtJqvWonAweveh8qWj9fNz7ynBwQGZBPvrvXCau9ajfivG+RH2t4Ka6qnxwLQWyUSG/P5LVG96HMfpg5HC2Wlz4y+Vl1IQ8javyZ50GGKvOTflMsSfNvoyp66hVmXQwbWgJN4dDNNQD2AMFfqSkf6LkpcP3WhVJJP9tYRKR3wNNnlUcZ15tzY7pw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=gNo7rPPA9ixpfa+Q36C6vkI6nOR5jAOwOSPlUuD4COg=; b=O0ST1iVaQD9+7pHEwJhHhU5xN+C0OvDBzRNJ4WU9zkYiFlIqop2SzoS90QQSANTeNX0FkQTux7Vi3dhDd01udQbQArANlpQbrL4Vx1p057HfnhZcdjIRVzLttoMthvAo63zx21IGtsKmdNR6/n1UfS6uKzX5sKL99EazTKFXcKg+P13qq60lX2d1QItEyIJU14dy43uWHQtkWZz2pilQNcxtUzW1ZfHry6QbcW8CF/Z6vS1OaW1tTQzQ8edkUo40ymc+oiMQA2C2PwpvZq5iquRCy4NASUzdvneeZjYaXsFNr08ZA7FxmY+W1Su8jQcJk5n5qZU7EUIR24Sx0XN7QA== 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=gNo7rPPA9ixpfa+Q36C6vkI6nOR5jAOwOSPlUuD4COg=; b=FOz4Duf/zH+EhNCcBCB6Ykq4wQ294LMo/ajzfKHu54Lci7guqVFGCCAgIu5+RPaUk6OzSuJOEY+z2Z07AiJKcd7Pdid1WobTliBJeVdQ2Gp3ZXObeLCimVvjd8YQc0k5yRQ4lK26criNq3TRgH6A+KfLy9marcjoYG9axItW/xA= Received: from TYZPR03MB6624.apcprd03.prod.outlook.com (2603:1096:400:1f4::13) by SEYPR03MB6964.apcprd03.prod.outlook.com (2603:1096:101:bc::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8422.19; Wed, 12 Feb 2025 09:30:30 +0000 Received: from TYZPR03MB6624.apcprd03.prod.outlook.com ([fe80::9ce6:1e85:c4a7:2a54]) by TYZPR03MB6624.apcprd03.prod.outlook.com ([fe80::9ce6:1e85:c4a7:2a54%3]) with mapi id 15.20.8422.015; Wed, 12 Feb 2025 09:30:30 +0000 From: =?utf-8?B?Q0sgSHUgKOiDoeS/iuWFiSk=?= To: "robh@kernel.org" , "krzk+dt@kernel.org" , =?utf-8?B?UGF1bC1wbCBDaGVuICjpmbPmn4/pnJYp?= , "conor+dt@kernel.org" , AngeloGioacchino Del Regno , "chunkuang.hu@kernel.org" CC: "matthias.bgg@gmail.com" , "treapking@chromium.org" , =?utf-8?B?U2luZ28gQ2hhbmcgKOW8teiIiOWciyk=?= , Project_Global_Chrome_Upstream_Group , "dri-devel@lists.freedesktop.org" , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" , =?utf-8?B?SmFzb24tSkggTGluICjmnpfnnb/npaUp?= , =?utf-8?B?TmFuY3kgTGluICjmnpfmrKPonqIp?= , =?utf-8?B?WGlhbmRvbmcgV2FuZyAo546L5YWI5YasKQ==?= , "linux-mediatek@lists.infradead.org" , =?utf-8?B?U3VubnkgU2hlbiAo5rKI5aeN5aeNKQ==?= , "p.zabel@pengutronix.de" , =?utf-8?B?U2lyaXVzIFdhbmcgKOeOi+eak+aYsSk=?= , "linux-arm-kernel@lists.infradead.org" Subject: Re: [PATCH 12/12] drm/mediatek: Add support for multiple mmsys in the one mediatek-drm driver Thread-Topic: [PATCH 12/12] drm/mediatek: Add support for multiple mmsys in the one mediatek-drm driver Thread-Index: AQHbY19F5DsWv3UpckSno2MxgH5TnrNDmsOA Date: Wed, 12 Feb 2025 09:30:30 +0000 Message-ID: References: <20250110123835.2719824-1-paul-pl.chen@mediatek.com> <20250110123835.2719824-14-paul-pl.chen@mediatek.com> In-Reply-To: <20250110123835.2719824-14-paul-pl.chen@mediatek.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.52.3-0ubuntu1 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_|SEYPR03MB6964:EE_ x-ms-office365-filtering-correlation-id: 72b9ed90-da3c-4e97-8ffc-08dd4b47e462 x-ld-processed: a7687ede-7a6b-4ef6-bace-642f677fbe31,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|7416014|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?TUpKcVF4c0xJRnBtR0RmUWQwc2JPRElNbURKYS9yZjlkR3FkVnR4SFV1TE5K?= =?utf-8?B?ZFhSbm1EWHV4T1pqdzhLTllvbmd4VUNoTzdXdGlBWUx2bnJzWXFPc1BYRndM?= =?utf-8?B?TkEyQVR2SEdJNlByRjB0OUxNQmRmSVE3cW5YejlOZytSRG4zN2p6aDR2ZEF2?= =?utf-8?B?dGxUTjdLdGI4ODc2UzI0VUVGdzEzTUVhWlZUWHlZNzQxNGJTNlVIUzY5eVkr?= =?utf-8?B?Z1AyazVZY0ZYRUlzNnFnL1hMNkhONlVYc2Q1ZUMzdHJTNFpHOTZPdUN5NW95?= =?utf-8?B?YjVSWnREaHBoZ1R2RHJqeVBmUGw5K1VtNExzdXB2QUVzemczU1NKdURvT1ht?= =?utf-8?B?YWlvRUlDa0JZcklXbVM4UHZpSmFvUElJYUI2SVRNQnhRZjc2MC82Y0NYc1JF?= =?utf-8?B?TXJmdENxMTY1aEQrRWMrMDZTTFhvNnpBb0k1bytKVyt4cVI5cy9TdUxiM1Iz?= =?utf-8?B?bWhJSjg2eldqM1hUaHM5WWYxanhMZ1dkWXJqMlNzTER1UnJUYnRkWThwRUZG?= =?utf-8?B?ZkRaOTY1OVJuOGxoVWd4OWJlVitIZC90M0xDUDFqMCtQU0xBeGNwZWFORG52?= =?utf-8?B?ZWtMTElGQWZwNTV4ZWF3SnlyYm40b1hjV2FITUFGa2NhdnVjQjJpelZ3Q0Vu?= =?utf-8?B?WUlWMGNLOXk4UlZid0kwM2czOW9hN0N3T3dKUjV5Tk4xaUJ3dnlWQmVBZG1l?= =?utf-8?B?bHRSOWFaQ0t4NmdxN0J4Y0cxVkZMNzJraU4wMFpSdE9DWUM2SlZtOENuaUR5?= =?utf-8?B?K2V3NHY3YlVYZGtKZENEc294azhKUXMwcSswZ0Z5M3RWQW44UWxRb3lRUnpl?= =?utf-8?B?L20xbWYxNnQwdFZyVFBtbGJSZnFCZTlzbWMybVpLdzJnSkhzVFo5Q0wvclZj?= =?utf-8?B?R3Q2RHkwUENlZGh3cHhjWWRqS0pOSTVDcmhyREY0aW83eVlHczZNVVIzaU5w?= =?utf-8?B?N082UC8zQlJSK1dyQ3paUlc2bTZQRFhLU0JlMThzeWpCRjdmSk4ydnFJdDIw?= =?utf-8?B?VUgwQlhFOWxFNkE5V3JFV0hkbUFuNHhCNDQrRUlJWWdXWk12Y1IwdG9Hdjla?= =?utf-8?B?d3VqWmJqcG1iM1A0T2p0eUowNEtPWjlNTTZYK200OThWYndSTE9pck5JbXFQ?= =?utf-8?B?WmswdGlUV2cxWUJSb3A1UWpOMUZVazQxalBVRCsxY05xWk93RWRjWWFvOEFQ?= =?utf-8?B?WUh3Y0VqbVovczFJRGduQ2xDQi96V3d6YUhHb1R6Qklvdms2TTJHREVJS3Jr?= =?utf-8?B?SUYvaFBGaitwcXZQNXc1SDJmSktCSzMwekYrMHR1amdWaGkzWXpXdS9wbWhQ?= =?utf-8?B?SWZLS3lVQlBpeHNuZDlLWFZYZEJMdlFIMXJlZDliY2d6WE0rUXRGTGUxNkRx?= =?utf-8?B?QW9oQlBzYUVLeCswU0UrcnFwOWJrQk1YaXF1MTAxRWJBWFlLVnhOcjV5OE1E?= =?utf-8?B?bTlvcG54MmxQdXFwNEcxb0hMcS9VUUNoN0ZFZUZaOW9DMXNhSlRNUFJ0TDFI?= =?utf-8?B?b0c1SGRDRzBuTENYV3J4Q0tscytXV09ONXlFZGJyNUN0eWY2NHg5L2p3VTBF?= =?utf-8?B?K2piemlhWnJpeUY2QUxibk9rLzRLM05mYnQ4a0ZyL3pwZm0vZTg2dEZhM0Mz?= =?utf-8?B?eTFyaTYzM0gzcHBiYWFFaW82cHpsVEhwNWR0bjVSMjlrTnJnQVFVN0VGdGFq?= =?utf-8?B?V3F1ZkhNdnNxVmFvd1JuTUtFOFR6cGJCNW8yaVZlQXRJUUFrd0xNWE51bUZx?= =?utf-8?B?SjJrREhsdmVtMFhjLzhPcWZSM0pDK1VRbjRxQ3Y5aE1sTGQ1a3VWTldmQUJI?= =?utf-8?B?dlVaTjdzYXREZUJYSTc1aEJoUnJtbzZyUVdweEVnZGFjZXlrWjNpdjFIM3dp?= =?utf-8?B?TjdlRlJPR0krU2VKR21FUzBmWm9BNDRJY1kvZmlpTi9tS3lzYjZLQ2dSWllL?= =?utf-8?Q?pQQ2TNH5bW0q5fcu3j5c2Dlpw4UEQ/39?= 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:(13230040)(1800799024)(366016)(376014)(7416014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WE5TTTFqL2pCSFJsTkdmZ3p6VWoyRVRUM2VJVGkxQm9qamVTc1B1UllxbUhV?= =?utf-8?B?VTJzU2x4M1lKeElHdlRVUTVKQ2NXUm1mVGZTaCtkNlp4QXRpdWwyK3M3azFQ?= =?utf-8?B?OFNTQUV4aVhwakZCbG1GbEJwS2djdE5aWjZ3eEdycjlxZ3FXWGw0Rk5kNWZQ?= =?utf-8?B?UXNiZmtWNDlyT0dCMnZ1NDh2YnZudW1hUFp3TEM3TENHMWRFWjJnZU90ZmU1?= =?utf-8?B?UmVRcWFYamNFeEV3YjRUYzJzQUNvelN4THVwMkpJc2hpTERTYk9Tdk5CRVZ1?= =?utf-8?B?dk5WRnhsSmZBVVVWbmdTRFFCbm0vTjJmRHNlZUJ6RlZ3dkdsK0R0MERLNCto?= =?utf-8?B?emNDYzE5cmgxeVNUbFkrSU5qMFR2aXU3d0tPUVZ6TFh5Y3V3NGZCMzZFZWtV?= =?utf-8?B?TU01Z2w0bmpwOHVVbFVnNEZhVFg1NzRHdnZDTVNQT2VnQTRHMjA1MGRyZ2JK?= =?utf-8?B?aUdvMlc4N2hnd3lNbThpbTM4am4zaytSZ3BDVmRsR3luUXhjUkg2WE0weVI1?= =?utf-8?B?OHdjQmFGRldtck5JdTVVNEJKRitIUGNvYUp0SkQxOGhmY294UXNLZjJoR2tn?= =?utf-8?B?Yk1hVmhNYUJnT0dzRW1nZ1l1L3JqWmRYM0hHRW1xM3JjaHNabzZGRlNFWnhP?= =?utf-8?B?M1RVQ09HRmJEemF5UzVUa2hrNWV2L0NHaUVGRSt0cFluMllCbHo4YUkxYmRM?= =?utf-8?B?N3dTeWxsbDFGSzhycGsvb3VkVzBHMnNaZGZULzZlemlDbjZNckxoQ0NFbThL?= =?utf-8?B?OGRvVElZL0l4RzRjd2tHb1ZWSTBxcVYwV3ZCYkdJN01uSkE2aENDbWU5VlNx?= =?utf-8?B?aldudGtrb25YWEF4ZG43MmNOeUU4c0xLWlJySGxyTzdoc1RNT3BtazZEdnky?= =?utf-8?B?am01WllpT08vWjIxV2tLbjA0NFhoY3R5bXNlN1RjOXE5TnVObnpUNHRCeWpT?= =?utf-8?B?WUluWDQ0MVU4VnBIdUMzS0d1b2xsSmt5TWUxT0ZOa3ZKZHRBZGI3Z0pxOWs3?= =?utf-8?B?a0JRaUxTTnA5SkprTVd0T2wzUE9CRlZvTjU1SS93Q014MW5nTUVzNStqTWlE?= =?utf-8?B?T28rNU5iRUpqTUNCNFRLTVhMTVIwVVhXM1JVZFFidWpHYzlYTk5iRWw1dEF2?= =?utf-8?B?eWxOMVJOTFFFeElVRkg2VUdkTDNWM29jRjRrY29zeURVMXZMblVlc3hJT0Q4?= =?utf-8?B?RittNnZQeElaUzM3VEpEeE94dk1KRU1EdG12Nzh0UmNtdk5WV09ST3lDSzAw?= =?utf-8?B?eU9mLzRiSUJpRkZSQXhKNTBhbVB4bXJrWHc5VjZreE1md29FTlkwT2lTVFc2?= =?utf-8?B?Y2k3aUFCOUhMTzFVT25ic05HRnVmOWh6akZKT2w2dXlXTXVvanQrbFhEcU1q?= =?utf-8?B?TUs5WjZCN3lyWVRQdUlvb0ozNWp1MktaeHhKd0plOTdqM1lKNWx3a2MxZlFM?= =?utf-8?B?aUZqdTZXWDhlYlBJcHEwUDdJNXFMZFJGa3NLWTFSb2c1TEZJT2hWZlN3YzJ2?= =?utf-8?B?Y0tRQTNwSVdmcGYrSmExWkRDT1l4M01tZkQ1SjVDOGlkZ1gzb3ZoWTczVHhG?= =?utf-8?B?eTgxdjFZVXBNUlFWdC9JN1FCa2lQV0NGbFdMbWRjcmtweTZjNUJEa25qT2lL?= =?utf-8?B?MnJKelBRelN4K3l6YWJ0UDBDdzBabkt6NytwV1JJYmpnMVczcnk2MjZ6Wlda?= =?utf-8?B?WkdWa3NiREhGdlRQdjAyc1ZBNklraUQ0S2trZGRTZkI3RndySmRnZVVmYmpT?= =?utf-8?B?VWNrZVJuM3ZsbVloK1NreUJtczNHa1o0NzVEVW5sMWMxTTdUeTVwK09wNWs4?= =?utf-8?B?SXdIZ1BxdGQ1c2RTemdXdEVJS0hZYkVISVBLNGJqWTdYeG9qZTQ0eHdmOFNU?= =?utf-8?B?YitoQ3pPb1Ewb0Q2SGVJVUZuSVlCTUdUTUNEUWNPd3hNeFVCUFR0YzYvWkhq?= =?utf-8?B?MjRzNS81RGFHdVByM1lJcVFpbnp4ZjREcnovNlRWWVFqbnoxSUo2d1hTd2Ix?= =?utf-8?B?bExPUWFvWG9TbURRRmo3Z29DYjdnZ0xVUzJKUmM3NUpjSDhKUng4dTFSMHlR?= =?utf-8?B?WmVNalZHU212TTNjbExIOU81ZzI4UldSU0dLekt2dlUwUEZhNDhYU1BRcDdS?= =?utf-8?Q?Z+/lJ4TUn+O8FizC55ndyeiQh?= Content-ID: <5202E35DC23E8C40A5398935B92AEEAF@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: 72b9ed90-da3c-4e97-8ffc-08dd4b47e462 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Feb 2025 09:30:30.2656 (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: 8NS5BAxk3Gpaeyqr/CtKg1aESNoA8ngYIxZcZKtIk3L5X00y/UYu0DrmFMyhAZSUhb0lI5zORYQObzAy1MtI+A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEYPR03MB6964 Content-Type: multipart/alternative; boundary="__=_Part_Boundary_009_1227443890.668885703" X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" --__=_Part_Boundary_009_1227443890.668885703 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGksIFBhdWw6DQoNCk9uIEZyaSwgMjAyNS0wMS0xMCBhdCAyMDozNCArMDgwMCwgcGF1bC1wbC5j aGVuIHdyb3RlOg0KPiBGcm9tOiAiTmFuY3kuTGluIiA8bmFuY3kubGluQG1lZGlhdGVrLmNvbT4N Cj4gDQo+IFRvIHN1cHBvcnQgbXVsdGlwbGUgbW1zeXMgaW5zdGFuY2VzIGluIHRoZSBvbmUgbWVk aWF0ZWstZHJtIGluc3RhbmNlLA0KPiBwcm92aWRpbmcgaW1wcm92ZWQgZmxleGliaWxpdHkgYW5k IHNjYWxhYmlsaXR5IGJ5IHRoZSBmb2xsb3dpbmcgY2hhbmdlczoNCj4gDQo+IDEuIERlZmluZWQg bmV3IERSTSBjb21wb25lbnQgSURzIEREUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SKg0K PiAgIHRvIHN1cHBvcnQgZGlmZmVyZW50IG1tc3lzIGNvbXBvc2l0aW9uLg0KPiAyLiBBZGRlZCBu ZXcgY29tcG9uZW50IHR5cGVzIE1US19ESVNQX1ZJUlRVQUwgdG8gc3VwcG9ydCB0aGUNCj4gICBy b3V0aW5nIHRvIHZpcnR1YWwgZGlzcGxheSBjb21wb25lbnRzLg0KPiAzLiBBZGRlZCBhbmQgYWRq dXN0ZWQgdGhlIGV4aXN0ZWQgc3RydWN0dXJlIG9yIGludGVyZmFjZSB0byBleHRlbmQNCj4gICB0 aGUgc3VwcG9ydCBvZiBtdWx0aXBsZSBtbXN5cyBpbnN0YW5jZXMuDQo+IDQuIE1vZGlmaWVkIHRo ZSBjb21wb25lbnQgbWF0Y2hpbmcgYW5kIGJpbmRpbmcgbG9naWMgdG8gc3VwcG9ydA0KPiAgIG11 bHRpcGxlIG1tc3lzIGluc3RhbmNlcy4NCg0KSSB0aGluayB0aGUgdGl0bGUgd291bGQgY29uZnVz ZSBtZS4NCk9yaWdpbmFsIG1lZGlhdGVrLWRybSBkcml2ZXIgYWxyZWFkeSBzdXBwb3J0IG11bHRp cGxlIG1tc3lzLg0KSSB0cnkgdG8gdW5kZXJzdGFuZCBNVDgxOTYgZGlzcGxheS4NCklzIG9uZSBk aXNwbGF5IHBpcGVsaW5lIHNlcGFyYXRlZCBpbnRvIHR3byBtbXN5cz8NClRoZSBmaXJzdCBpcyBv dmxzeXMgYW5kIHRoZSBzZWNvbmQgaXMgZGlzcHN5cz8NCklmIHNvLCBJIHdvdWxkIGxpa2UgbWVk aWF0ZWstZHJtIGRyaXZlciBzZWUgb25seSBtbXN5cyAoZGlzcHN5cyksDQphbmQgbGV0IG92bHN5 cyBjb250cm9sIGlzIGhpZGRlbiBpbiBvdmxzeXMgc3ViIGRyaXZlciwgc28gbWVkaWF0ZWstZHJt IGRyaXZlciB3b3VsZCBub3QgY2hhbmdlIHNvIG11Y2guDQoNCj4gDQo+IFNpZ25lZC1vZmYtYnk6 IE5hbmN5LkxpbiA8bmFuY3kubGluQG1lZGlhdGVrLmNvbT4NCj4gU2lnbmVkLW9mZi1ieTogUGF1 bC1wbC5DaGVuIDxwYXVsLXBsLmNoZW5AbWVkaWF0ZWsuY29tPg0KPiAtLS0NCj4gIGRyaXZlcnMv Z3B1L2RybS9tZWRpYXRlay9tdGtfY3J0Yy5jICAgICB8IDM1MCArKysrKysrKysrKysrKysrKysr LS0tLS0NCj4gIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfY3J0Yy5oICAgICB8ICAgNiAr LQ0KPiAgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kZHBfY29tcC5jIHwgMTA2ICsrKysr LS0NCj4gIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGRwX2NvbXAuaCB8ICAgMiArDQo+ ICBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuYyAgfCAyMjMgKysrKysrKysr KysrLS0tDQo+ICBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaCAgfCAgMTYg Ky0NCj4gIDYgZmlsZXMgY2hhbmdlZCwgNTc4IGluc2VydGlvbnMoKyksIDEyNSBkZWxldGlvbnMo LSkNCj4gDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2NydGMu YyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfY3J0Yy5jDQo+IGluZGV4IGViMGUxMjMz YWQwNC4uZWNhNjk0MWJmYWEyIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0 ZWsvbXRrX2NydGMuYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2NydGMu Yw0KPiBAQCAtNTgsMTMgKzU4LDE3IEBAIHN0cnVjdCBtdGtfY3J0YyB7DQo+ICAJd2FpdF9xdWV1 ZV9oZWFkX3QJCWNiX2Jsb2NraW5nX3F1ZXVlOw0KPiAgI2VuZGlmDQo+ICANCj4gLQlzdHJ1Y3Qg ZGV2aWNlCQkJKm1tc3lzX2RldjsNCj4gKwlzdHJ1Y3QgZGV2aWNlCQkJKm1tc3lzX2RldltNQVhf TU1TWVNdOw0KPiAgCXN0cnVjdCBkZXZpY2UJCQkqZG1hX2RldjsNCj4gLQlzdHJ1Y3QgbXRrX211 dGV4CQkqbXV0ZXg7DQo+ICsJc3RydWN0IGRldmljZQkJCSp2ZGlzcF9hb19kZXY7DQo+ICsJc3Ry dWN0IG10a19tdXRleAkJKm11dGV4W01BWF9NTVNZU107DQo+ICAJdW5zaWduZWQgaW50CQkJZGRw X2NvbXBfbnI7DQo+ICAJc3RydWN0IG10a19kZHBfY29tcAkJKipkZHBfY29tcDsNCj4gKwllbnVt IG10a19kcm1fbW1zeXMJCSpkZHBfY29tcF9zeXM7DQo+ICsJYm9vbAkJCQlleGlzdFtNQVhfTU1T WVNdOw0KPiAgCXVuc2lnbmVkIGludAkJCW51bV9jb25uX3JvdXRlczsNCj4gIAljb25zdCBzdHJ1 Y3QgbXRrX2RybV9yb3V0ZQkqY29ubl9yb3V0ZXM7DQo+ICsJZW51bSBtdGtfZHJtX21tc3lzCQlj b25uX3JvdXRlc19zeXM7DQo+ICANCj4gIAkvKiBsb2NrIGZvciBkaXNwbGF5IGhhcmR3YXJlIGFj Y2VzcyAqLw0KPiAgCXN0cnVjdCBtdXRleAkJCWh3X2xvY2s7DQo+IEBAIC04Miw2ICs4NiwxMSBA QCBzdHJ1Y3QgbXRrX2NydGNfc3RhdGUgew0KPiAgCXVuc2lnbmVkIGludAkJCXBlbmRpbmdfdnJl ZnJlc2g7DQo+ICB9Ow0KPiAgDQo+ICtzdHJ1Y3QgbXRrX2NydGNfY29tcF9pbmZvIHsNCj4gKwll bnVtIG10a19kcm1fbW1zeXMgc3lzOw0KPiArCXVuc2lnbmVkIGludCBjb21wX2lkOw0KPiArfTsN Cj4gKw0KPiAgc3RhdGljIGlubGluZSBzdHJ1Y3QgbXRrX2NydGMgKnRvX210a19jcnRjKHN0cnVj dCBkcm1fY3J0YyAqYykNCj4gIHsNCj4gIAlyZXR1cm4gY29udGFpbmVyX29mKGMsIHN0cnVjdCBt dGtfY3J0YywgYmFzZSk7DQo+IEBAIC0xMjUsNyArMTM0LDkgQEAgc3RhdGljIHZvaWQgbXRrX2Ny dGNfZGVzdHJveShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpDQo+ICAJc3RydWN0IG10a19jcnRjICpt dGtfY3J0YyA9IHRvX210a19jcnRjKGNydGMpOw0KPiAgCWludCBpOw0KPiAgDQo+IC0JbXRrX211 dGV4X3B1dChtdGtfY3J0Yy0+bXV0ZXgpOw0KPiArCWZvciAoaSA9IDA7IGkgPCBNQVhfTU1TWVM7 IGkrKykNCj4gKwkJaWYgKG10a19jcnRjLT5tdXRleFtpXSkNCj4gKwkJCW10a19tdXRleF9wdXQo bXRrX2NydGMtPm11dGV4W2ldKTsNCj4gICNpZiBJU19SRUFDSEFCTEUoQ09ORklHX01US19DTURR KQ0KPiAgCWlmIChtdGtfY3J0Yy0+Y21kcV9jbGllbnQuY2hhbikgew0KPiAgCQljbWRxX3BrdF9k ZXN0cm95KCZtdGtfY3J0Yy0+Y21kcV9jbGllbnQsICZtdGtfY3J0Yy0+Y21kcV9oYW5kbGUpOw0K PiBAQCAtMjIzLDcgKzIzNCwxNCBAQCBzdGF0aWMgaW50IG10a19jcnRjX2RkcF9jbGtfZW5hYmxl KHN0cnVjdCBtdGtfY3J0YyAqbXRrX2NydGMpDQo+ICAJaW50IGk7DQo+ICANCj4gIAlmb3IgKGkg PSAwOyBpIDwgbXRrX2NydGMtPmRkcF9jb21wX25yOyBpKyspIHsNCj4gKwkJZW51bSBtdGtfZHJt X21tc3lzIG1tc3lzOw0KPiArDQo+ICAJCXJldCA9IG10a19kZHBfY29tcF9jbGtfZW5hYmxlKG10 a19jcnRjLT5kZHBfY29tcFtpXSk7DQo+ICsJCWlmIChtdGtfZGRwX2NvbXBfZ2V0X3R5cGUobXRr X2NydGMtPmRkcF9jb21wW2ldLT5pZCkgPT0gTVRLX0RJU1BfVklSVFVBTCkgew0KPiArCQkJbW1z eXMgPSBtdGtfY3J0Yy0+ZGRwX2NvbXBfc3lzW2ldOw0KPiArCQkJcmV0ID0gbXRrX21tc3lzX2Rk cF9jbGtfZW5hYmxlKG10a19jcnRjLT5tbXN5c19kZXZbbW1zeXNdLA0KPiArCQkJCQkJICAgICAg IG10a19jcnRjLT5kZHBfY29tcFtpXS0+aWQpOw0KPiArCQl9DQo+ICAJCWlmIChyZXQpIHsNCj4g IAkJCURSTV9FUlJPUigiRmFpbGVkIHRvIGVuYWJsZSBjbG9jayAlZDogJWRcbiIsIGksIHJldCk7 DQo+ICAJCQlnb3RvIGVycjsNCj4gQEAgLTIzMiwxNyArMjUwLDI4IEBAIHN0YXRpYyBpbnQgbXRr X2NydGNfZGRwX2Nsa19lbmFibGUoc3RydWN0IG10a19jcnRjICptdGtfY3J0YykNCj4gIA0KPiAg CXJldHVybiAwOw0KPiAgZXJyOg0KPiAtCXdoaWxlICgtLWkgPj0gMCkNCj4gKwl3aGlsZSAoLS1p ID49IDApIHsNCj4gIAkJbXRrX2RkcF9jb21wX2Nsa19kaXNhYmxlKG10a19jcnRjLT5kZHBfY29t cFtpXSk7DQo+ICsJCWlmIChtdGtfZGRwX2NvbXBfZ2V0X3R5cGUobXRrX2NydGMtPmRkcF9jb21w W2ldLT5pZCkgPT0gTVRLX0RJU1BfVklSVFVBTCkNCj4gKwkJCW10a19tbXN5c19kZHBfY2xrX2Rp c2FibGUobXRrX2NydGMtPm1tc3lzX2RldlttdGtfY3J0Yy0+ZGRwX2NvbXBfc3lzW2ldXSwNCj4g KwkJCQkJCSAgbXRrX2NydGMtPmRkcF9jb21wW2ldLT5pZCk7DQo+ICsJfQ0KPiAgCXJldHVybiBy ZXQ7DQo+ICB9DQo+ICANCj4gIHN0YXRpYyB2b2lkIG10a19jcnRjX2RkcF9jbGtfZGlzYWJsZShz dHJ1Y3QgbXRrX2NydGMgKm10a19jcnRjKQ0KPiAgew0KPiAgCWludCBpOw0KPiArCWVudW0gbXRr X2RybV9tbXN5cyBtbXN5czsNCj4gIA0KPiAtCWZvciAoaSA9IDA7IGkgPCBtdGtfY3J0Yy0+ZGRw X2NvbXBfbnI7IGkrKykNCj4gKwlmb3IgKGkgPSAwOyBpIDwgbXRrX2NydGMtPmRkcF9jb21wX25y OyBpKyspIHsNCj4gIAkJbXRrX2RkcF9jb21wX2Nsa19kaXNhYmxlKG10a19jcnRjLT5kZHBfY29t cFtpXSk7DQo+ICsJCWlmIChtdGtfZGRwX2NvbXBfZ2V0X3R5cGUobXRrX2NydGMtPmRkcF9jb21w W2ldLT5pZCkgPT0gTVRLX0RJU1BfVklSVFVBTCkgew0KPiArCQkJbW1zeXMgPSBtdGtfY3J0Yy0+ ZGRwX2NvbXBfc3lzW2ldOw0KPiArCQkJbXRrX21tc3lzX2RkcF9jbGtfZGlzYWJsZShtdGtfY3J0 Yy0+bW1zeXNfZGV2W21tc3lzXSwNCj4gKwkJCQkJCSAgbXRrX2NydGMtPmRkcF9jb21wW2ldLT5p ZCk7DQo+ICsJCX0NCj4gKwl9DQo+ICB9DQo+ICANCj4gIHN0YXRpYw0KPiBAQCAtMzMyLDcgKzM2 MSw4IEBAIHN0YXRpYyBpbnQgbXRrX2NydGNfZGRwX2h3X2luaXQoc3RydWN0IG10a19jcnRjICpt dGtfY3J0YykNCj4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXIgY29ubl9pdGVyOw0K PiAgCXVuc2lnbmVkIGludCB3aWR0aCwgaGVpZ2h0LCB2cmVmcmVzaCwgYnBjID0gTVRLX01BWF9C UEM7DQo+ICAJaW50IHJldDsNCj4gLQlpbnQgaTsNCj4gKwlpbnQgaSwgajsNCj4gKwllbnVtIG10 a19kcm1fbW1zeXMgbW1zeXM7DQo+ICANCj4gIAlpZiAoV0FSTl9PTighY3J0Yy0+c3RhdGUpKQ0K PiAgCQlyZXR1cm4gLUVJTlZBTDsNCj4gQEAgLTM2MiwxMCArMzkyLDE4IEBAIHN0YXRpYyBpbnQg bXRrX2NydGNfZGRwX2h3X2luaXQoc3RydWN0IG10a19jcnRjICptdGtfY3J0YykNCj4gIAkJcmV0 dXJuIHJldDsNCj4gIAl9DQo+ICANCj4gLQlyZXQgPSBtdGtfbXV0ZXhfcHJlcGFyZShtdGtfY3J0 Yy0+bXV0ZXgpOw0KPiAtCWlmIChyZXQgPCAwKSB7DQo+IC0JCURSTV9FUlJPUigiRmFpbGVkIHRv IGVuYWJsZSBtdXRleCBjbG9jazogJWRcbiIsIHJldCk7DQo+IC0JCWdvdG8gZXJyX3BtX3J1bnRp bWVfcHV0Ow0KPiArCWZvciAoaSA9IDA7IGkgPCBNQVhfTU1TWVM7IGkrKykNCj4gKwkJaWYgKG10 a19jcnRjLT5leGlzdFtpXSkNCj4gKwkJCW10a19tbXN5c190b3BfY2xrX2VuYWJsZShtdGtfY3J0 Yy0+bW1zeXNfZGV2W2ldKTsNCj4gKw0KPiArCWZvciAoaSA9IDA7IGkgPCBNQVhfTU1TWVM7IGkr Kykgew0KPiArCQlpZiAoIW10a19jcnRjLT5tdXRleFtpXSB8fCAhbXRrX2NydGMtPmV4aXN0W2ld KQ0KPiArCQkJY29udGludWU7DQo+ICsJCXJldCA9IG10a19tdXRleF9wcmVwYXJlKG10a19jcnRj LT5tdXRleFtpXSk7DQo+ICsJCWlmIChyZXQgPCAwKSB7DQo+ICsJCQlEUk1fRVJST1IoIkZhaWxl ZCB0byBlbmFibGUgbW1zeXMlZCBtdXRleCBjbG9jazogJWRcbiIsIGksIHJldCk7DQo+ICsJCQln b3RvIGVycl9wbV9ydW50aW1lX3B1dDsNCj4gKwkJfQ0KPiAgCX0NCj4gIA0KPiAgCXJldCA9IG10 a19jcnRjX2RkcF9jbGtfZW5hYmxlKG10a19jcnRjKTsNCj4gQEAgLTM3NCwxOSArNDEyLDM2IEBA IHN0YXRpYyBpbnQgbXRrX2NydGNfZGRwX2h3X2luaXQoc3RydWN0IG10a19jcnRjICptdGtfY3J0 YykNCj4gIAkJZ290byBlcnJfbXV0ZXhfdW5wcmVwYXJlOw0KPiAgCX0NCj4gIA0KPiArCWlmICht dGtfY3J0Yy0+dmRpc3BfYW9fZGV2KQ0KPiArCQltdGtfbW1zeXNfZGVmYXVsdF9jb25maWcobXRr X2NydGMtPnZkaXNwX2FvX2Rldik7DQo+ICsNCj4gKwlmb3IgKGkgPSAwOyBpIDwgTUFYX01NU1lT OyBpKyspDQo+ICsJCWlmIChtdGtfY3J0Yy0+ZXhpc3RbaV0pDQo+ICsJCQltdGtfbW1zeXNfZGVm YXVsdF9jb25maWcobXRrX2NydGMtPm1tc3lzX2RldltpXSk7DQo+ICsNCj4gIAlmb3IgKGkgPSAw OyBpIDwgbXRrX2NydGMtPmRkcF9jb21wX25yIC0gMTsgaSsrKSB7DQo+IC0JCWlmICghbXRrX2Rk cF9jb21wX2Nvbm5lY3QobXRrX2NydGMtPmRkcF9jb21wW2ldLCBtdGtfY3J0Yy0+bW1zeXNfZGV2 LA0KPiArCQltbXN5cyA9IG10a19jcnRjLT5kZHBfY29tcF9zeXNbaV07DQo+ICsJCWlmICghbXRr X2RkcF9jb21wX2Nvbm5lY3QobXRrX2NydGMtPmRkcF9jb21wW2ldLCBtdGtfY3J0Yy0+bW1zeXNf ZGV2W21tc3lzXSwNCj4gIAkJCQkJICBtdGtfY3J0Yy0+ZGRwX2NvbXBbaSArIDFdLT5pZCkpDQo+ IC0JCQltdGtfbW1zeXNfZGRwX2Nvbm5lY3QobXRrX2NydGMtPm1tc3lzX2RldiwNCj4gKwkJCW10 a19tbXN5c19kZHBfY29ubmVjdChtdGtfY3J0Yy0+bW1zeXNfZGV2W21tc3lzXSwNCj4gIAkJCQkJ ICAgICAgbXRrX2NydGMtPmRkcF9jb21wW2ldLT5pZCwNCj4gIAkJCQkJICAgICAgbXRrX2NydGMt PmRkcF9jb21wW2kgKyAxXS0+aWQpOw0KPiAtCQlpZiAoIW10a19kZHBfY29tcF9hZGQobXRrX2Ny dGMtPmRkcF9jb21wW2ldLCBtdGtfY3J0Yy0+bXV0ZXgpKQ0KPiAtCQkJbXRrX211dGV4X2FkZF9j b21wKG10a19jcnRjLT5tdXRleCwNCj4gKwkJaWYgKCFtdGtfZGRwX2NvbXBfYWRkKG10a19jcnRj LT5kZHBfY29tcFtpXSwgbXRrX2NydGMtPm11dGV4W21tc3lzXSkpDQo+ICsJCQltdGtfbXV0ZXhf YWRkX2NvbXAobXRrX2NydGMtPm11dGV4W21tc3lzXSwNCj4gIAkJCQkJICAgbXRrX2NydGMtPmRk cF9jb21wW2ldLT5pZCk7DQo+ICAJfQ0KPiAtCWlmICghbXRrX2RkcF9jb21wX2FkZChtdGtfY3J0 Yy0+ZGRwX2NvbXBbaV0sIG10a19jcnRjLT5tdXRleCkpDQo+IC0JCW10a19tdXRleF9hZGRfY29t cChtdGtfY3J0Yy0+bXV0ZXgsIG10a19jcnRjLT5kZHBfY29tcFtpXS0+aWQpOw0KPiAtCW10a19t dXRleF9lbmFibGUobXRrX2NydGMtPm11dGV4KTsNCj4gKwltbXN5cyA9IG10a19jcnRjLT5kZHBf Y29tcF9zeXNbaV07DQo+ICsJaWYgKCFtdGtfZGRwX2NvbXBfYWRkKG10a19jcnRjLT5kZHBfY29t cFtpXSwgbXRrX2NydGMtPm11dGV4W21tc3lzXSkpDQo+ICsJCW10a19tdXRleF9hZGRfY29tcCht dGtfY3J0Yy0+bXV0ZXhbbW1zeXNdLCBtdGtfY3J0Yy0+ZGRwX2NvbXBbaV0tPmlkKTsNCj4gKw0K PiArCS8qIE5lZWQgdG8gc2V0IHNvZiBzb3VyY2UgZm9yIGFsbCBtbXN5cyBtdXRleHMgaW4gdGhp cyBjcnRjICovDQo+ICsJZm9yIChqID0gMDsgaiA8IE1BWF9NTVNZUzsgaisrKQ0KPiArCQlpZiAo bXRrX2NydGMtPmV4aXN0W2pdICYmIG10a19jcnRjLT5tdXRleFtqXSkNCj4gKwkJCW10a19tdXRl eF93cml0ZV9jb21wX3NvZihtdGtfY3J0Yy0+bXV0ZXhbal0sIG10a19jcnRjLT5kZHBfY29tcFtp XS0+aWQpOw0KPiArDQo+ICsJZm9yIChpID0gMDsgaSA8IE1BWF9NTVNZUzsgaSsrKQ0KPiArCQlp ZiAobXRrX2NydGMtPmV4aXN0W2ldICYmIG10a19jcnRjLT5tdXRleFtpXSkNCj4gKwkJCW10a19t dXRleF9lbmFibGUobXRrX2NydGMtPm11dGV4W2ldKTsNCj4gIA0KPiAgCWZvciAoaSA9IDA7IGkg PCBtdGtfY3J0Yy0+ZGRwX2NvbXBfbnI7IGkrKykgew0KPiAgCQlzdHJ1Y3QgbXRrX2RkcF9jb21w ICpjb21wID0gbXRrX2NydGMtPmRkcF9jb21wW2ldOw0KPiBAQCAtMzk0LDcgKzQ0OSwxMSBAQCBz dGF0aWMgaW50IG10a19jcnRjX2RkcF9od19pbml0KHN0cnVjdCBtdGtfY3J0YyAqbXRrX2NydGMp DQo+ICAJCWlmIChpID09IDEpDQo+ICAJCQltdGtfZGRwX2NvbXBfYmdjbHJfaW5fb24oY29tcCk7 DQo+ICANCj4gLQkJbXRrX2RkcF9jb21wX2NvbmZpZyhjb21wLCB3aWR0aCwgaGVpZ2h0LCB2cmVm cmVzaCwgYnBjLCBOVUxMKTsNCj4gKwkJaWYgKG10a19kZHBfY29tcF9nZXRfdHlwZShjb21wLT5p ZCkgPT0gTVRLX0RJU1BfVklSVFVBTCkNCj4gKwkJCW10a19tbXN5c19kZHBfY29uZmlnKG10a19j cnRjLT5tbXN5c19kZXZbbXRrX2NydGMtPmRkcF9jb21wX3N5c1tpXV0sDQo+ICsJCQkJCSAgICAg Y29tcC0+aWQsIHdpZHRoLCBoZWlnaHQsIE5VTEwpOw0KPiArCQllbHNlDQo+ICsJCQltdGtfZGRw X2NvbXBfY29uZmlnKGNvbXAsIHdpZHRoLCBoZWlnaHQsIHZyZWZyZXNoLCBicGMsIE5VTEwpOw0K PiAgCQltdGtfZGRwX2NvbXBfc3RhcnQoY29tcCk7DQo+ICAJfQ0KPiAgDQo+IEBAIC00MTgsNyAr NDc3LDEwIEBAIHN0YXRpYyBpbnQgbXRrX2NydGNfZGRwX2h3X2luaXQoc3RydWN0IG10a19jcnRj ICptdGtfY3J0YykNCj4gIAlyZXR1cm4gMDsNCj4gIA0KPiAgZXJyX211dGV4X3VucHJlcGFyZToN Cj4gLQltdGtfbXV0ZXhfdW5wcmVwYXJlKG10a19jcnRjLT5tdXRleCk7DQo+ICsJZm9yIChpID0g MDsgaSA8IE1BWF9NTVNZUzsgaSsrKQ0KPiArCQlpZiAobXRrX2NydGMtPmV4aXN0W2ldICYmIG10 a19jcnRjLT5tdXRleFtpXSkNCj4gKwkJCW10a19tdXRleF91bnByZXBhcmUobXRrX2NydGMtPm11 dGV4W2ldKTsNCj4gKw0KPiAgZXJyX3BtX3J1bnRpbWVfcHV0Og0KPiAgCXBtX3J1bnRpbWVfcHV0 KGNydGMtPmRldi0+ZGV2KTsNCj4gIAlyZXR1cm4gcmV0Ow0KPiBAQCAtNDMwLDYgKzQ5Miw3IEBA IHN0YXRpYyB2b2lkIG10a19jcnRjX2RkcF9od19maW5pKHN0cnVjdCBtdGtfY3J0YyAqbXRrX2Ny dGMpDQo+ICAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gJm10a19jcnRjLT5iYXNlOw0KPiAgCXVu c2lnbmVkIGxvbmcgZmxhZ3M7DQo+ICAJaW50IGk7DQo+ICsJZW51bSBtdGtfZHJtX21tc3lzIG1t c3lzOw0KPiAgDQo+ICAJZm9yIChpID0gMDsgaSA8IG10a19jcnRjLT5kZHBfY29tcF9ucjsgaSsr KSB7DQo+ICAJCW10a19kZHBfY29tcF9zdG9wKG10a19jcnRjLT5kZHBfY29tcFtpXSk7DQo+IEBA IC00MzcsMjcgKzUwMCw0NiBAQCBzdGF0aWMgdm9pZCBtdGtfY3J0Y19kZHBfaHdfZmluaShzdHJ1 Y3QgbXRrX2NydGMgKm10a19jcnRjKQ0KPiAgCQkJbXRrX2RkcF9jb21wX2JnY2xyX2luX29mZiht dGtfY3J0Yy0+ZGRwX2NvbXBbaV0pOw0KPiAgCX0NCj4gIA0KPiAtCWZvciAoaSA9IDA7IGkgPCBt dGtfY3J0Yy0+ZGRwX2NvbXBfbnI7IGkrKykNCj4gLQkJaWYgKCFtdGtfZGRwX2NvbXBfcmVtb3Zl KG10a19jcnRjLT5kZHBfY29tcFtpXSwgbXRrX2NydGMtPm11dGV4KSkNCj4gLQkJCW10a19tdXRl eF9yZW1vdmVfY29tcChtdGtfY3J0Yy0+bXV0ZXgsDQo+ICsJZm9yIChpID0gMDsgaSA8IG10a19j cnRjLT5kZHBfY29tcF9ucjsgaSsrKSB7DQo+ICsJCW1tc3lzID0gbXRrX2NydGMtPmRkcF9jb21w X3N5c1tpXTsNCj4gKwkJaWYgKCFtdGtfZGRwX2NvbXBfcmVtb3ZlKG10a19jcnRjLT5kZHBfY29t cFtpXSwgbXRrX2NydGMtPm11dGV4W21tc3lzXSkpDQo+ICsJCQltdGtfbXV0ZXhfcmVtb3ZlX2Nv bXAobXRrX2NydGMtPm11dGV4W210a19jcnRjLT5kZHBfY29tcF9zeXNbaV1dLA0KPiAgCQkJCQkg ICAgICBtdGtfY3J0Yy0+ZGRwX2NvbXBbaV0tPmlkKTsNCj4gLQltdGtfbXV0ZXhfZGlzYWJsZSht dGtfY3J0Yy0+bXV0ZXgpOw0KPiArCX0NCj4gKwlmb3IgKGkgPSAwOyBpIDwgTUFYX01NU1lTOyBp KyspDQo+ICsJCWlmIChtdGtfY3J0Yy0+ZXhpc3RbaV0gJiYgbXRrX2NydGMtPm11dGV4W2ldKQ0K PiArCQkJbXRrX211dGV4X2Rpc2FibGUobXRrX2NydGMtPm11dGV4W2ldKTsNCj4gKw0KPiAgCWZv ciAoaSA9IDA7IGkgPCBtdGtfY3J0Yy0+ZGRwX2NvbXBfbnIgLSAxOyBpKyspIHsNCj4gLQkJaWYg KCFtdGtfZGRwX2NvbXBfZGlzY29ubmVjdChtdGtfY3J0Yy0+ZGRwX2NvbXBbaV0sIG10a19jcnRj LT5tbXN5c19kZXYsDQo+IC0JCQkJCSAgICAgbXRrX2NydGMtPmRkcF9jb21wW2kgKyAxXS0+aWQp KQ0KPiAtCQkJbXRrX21tc3lzX2RkcF9kaXNjb25uZWN0KG10a19jcnRjLT5tbXN5c19kZXYsDQo+ IC0JCQkJCQkgbXRrX2NydGMtPmRkcF9jb21wW2ldLT5pZCwNCj4gLQkJCQkJCSBtdGtfY3J0Yy0+ ZGRwX2NvbXBbaSArIDFdLT5pZCk7DQo+IC0JCWlmICghbXRrX2RkcF9jb21wX3JlbW92ZShtdGtf Y3J0Yy0+ZGRwX2NvbXBbaV0sIG10a19jcnRjLT5tdXRleCkpDQo+IC0JCQltdGtfbXV0ZXhfcmVt b3ZlX2NvbXAobXRrX2NydGMtPm11dGV4LA0KPiArCQlzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21w Ow0KPiArCQl1bnNpZ25lZCBpbnQgY3VyciwgbmV4dDsNCj4gKw0KPiArCQljb21wID0gbXRrX2Ny dGMtPmRkcF9jb21wW2ldOw0KPiArCQljdXJyID0gbXRrX2NydGMtPmRkcF9jb21wW2ldLT5pZDsN Cj4gKwkJbmV4dCA9IG10a19jcnRjLT5kZHBfY29tcFtpICsgMV0tPmlkOw0KPiArCQltbXN5cyA9 IG10a19jcnRjLT5kZHBfY29tcF9zeXNbaV07DQo+ICsJCWlmICghbXRrX2RkcF9jb21wX2Rpc2Nv bm5lY3QoY29tcCwgbXRrX2NydGMtPm1tc3lzX2RldlttbXN5c10sIG5leHQpKQ0KPiArCQkJbXRr X21tc3lzX2RkcF9kaXNjb25uZWN0KG10a19jcnRjLT5tbXN5c19kZXZbbW1zeXNdLCBjdXJyLCBu ZXh0KTsNCj4gKwkJaWYgKCFtdGtfZGRwX2NvbXBfcmVtb3ZlKGNvbXAsIG10a19jcnRjLT5tdXRl eFttbXN5c10pKQ0KPiArCQkJbXRrX211dGV4X3JlbW92ZV9jb21wKG10a19jcnRjLT5tdXRleFtt dGtfY3J0Yy0+ZGRwX2NvbXBfc3lzW2ldXSwNCj4gIAkJCQkJICAgICAgbXRrX2NydGMtPmRkcF9j b21wW2ldLT5pZCk7DQo+ICAJfQ0KPiAtCWlmICghbXRrX2RkcF9jb21wX3JlbW92ZShtdGtfY3J0 Yy0+ZGRwX2NvbXBbaV0sIG10a19jcnRjLT5tdXRleCkpDQo+IC0JCW10a19tdXRleF9yZW1vdmVf Y29tcChtdGtfY3J0Yy0+bXV0ZXgsIG10a19jcnRjLT5kZHBfY29tcFtpXS0+aWQpOw0KPiArDQo+ ICsJbW1zeXMgPSBtdGtfY3J0Yy0+ZGRwX2NvbXBfc3lzW2ldOw0KPiArCWlmICghbXRrX2RkcF9j b21wX3JlbW92ZShtdGtfY3J0Yy0+ZGRwX2NvbXBbaV0sIG10a19jcnRjLT5tdXRleFttbXN5c10p KQ0KPiArCQltdGtfbXV0ZXhfcmVtb3ZlX2NvbXAobXRrX2NydGMtPm11dGV4W21tc3lzXSwgbXRr X2NydGMtPmRkcF9jb21wW2ldLT5pZCk7DQo+ICsNCj4gIAltdGtfY3J0Y19kZHBfY2xrX2Rpc2Fi bGUobXRrX2NydGMpOw0KPiAtCW10a19tdXRleF91bnByZXBhcmUobXRrX2NydGMtPm11dGV4KTsN Cj4gIA0KPiAtCXBtX3J1bnRpbWVfcHV0KGRybS0+ZGV2KTsNCj4gKwlmb3IgKGkgPSAwOyBpIDwg TUFYX01NU1lTOyBpKyspDQo+ICsJCWlmIChtdGtfY3J0Yy0+ZXhpc3RbaV0gJiYgbXRrX2NydGMt Pm11dGV4W2ldKQ0KPiArCQkJbXRrX211dGV4X3VucHJlcGFyZShtdGtfY3J0Yy0+bXV0ZXhbaV0p Ow0KPiArDQo+ICsJZm9yIChpID0gMDsgaSA8IE1BWF9NTVNZUzsgaSsrKQ0KPiArCQlpZiAobXRr X2NydGMtPmV4aXN0W2ldKQ0KPiArCQkJbXRrX21tc3lzX3RvcF9jbGtfZGlzYWJsZShtdGtfY3J0 Yy0+bW1zeXNfZGV2W2ldKTsNCj4gKw0KPiArCXBtX3J1bnRpbWVfcHV0X3N5bmMoZHJtLT5kZXYp Ow0KPiAgDQo+ICAJaWYgKGNydGMtPnN0YXRlLT5ldmVudCAmJiAhY3J0Yy0+c3RhdGUtPmFjdGl2 ZSkgew0KPiAgCQlzcGluX2xvY2tfaXJxc2F2ZSgmY3J0Yy0+ZGV2LT5ldmVudF9sb2NrLCBmbGFn cyk7DQo+IEBAIC01ODEsOSArNjYzLDE1IEBAIHN0YXRpYyB2b2lkIG10a19jcnRjX3VwZGF0ZV9j b25maWcoc3RydWN0IG10a19jcnRjICptdGtfY3J0YywgYm9vbCBuZWVkc192YmxhbmspDQo+ICAJ CW10a19jcnRjLT5wZW5kaW5nX2FzeW5jX3BsYW5lcyA9IHRydWU7DQo+ICANCj4gIAlpZiAocHJp di0+ZGF0YS0+c2hhZG93X3JlZ2lzdGVyKSB7DQo+IC0JCW10a19tdXRleF9hY3F1aXJlKG10a19j cnRjLT5tdXRleCk7DQo+ICsJCWZvciAoaSA9IDA7IGkgPCBNQVhfTU1TWVM7IGkrKykNCj4gKwkJ CWlmIChtdGtfY3J0Yy0+ZXhpc3RbaV0gJiYgbXRrX2NydGMtPm11dGV4W2ldKQ0KPiArCQkJCW10 a19tdXRleF9hY3F1aXJlKG10a19jcnRjLT5tdXRleFtpXSk7DQo+ICsNCj4gIAkJbXRrX2NydGNf ZGRwX2NvbmZpZyhjcnRjLCBOVUxMKTsNCj4gLQkJbXRrX211dGV4X3JlbGVhc2UobXRrX2NydGMt Pm11dGV4KTsNCj4gKw0KPiArCQlmb3IgKGkgPSAwOyBpIDwgTUFYX01NU1lTOyBpKyspDQo+ICsJ CQlpZiAobXRrX2NydGMtPmV4aXN0W2ldICYmIG10a19jcnRjLT5tdXRleFtpXSkNCj4gKwkJCQlt dGtfbXV0ZXhfcmVsZWFzZShtdGtfY3J0Yy0+bXV0ZXhbaV0pOw0KPiAgCX0NCj4gICNpZiBJU19S RUFDSEFCTEUoQ09ORklHX01US19DTURRKQ0KPiAgCWlmIChtdGtfY3J0Yy0+Y21kcV9jbGllbnQu Y2hhbikgew0KPiBAQCAtNjU5LDYgKzc0Nyw3IEBAIHN0YXRpYyB2b2lkIG10a19jcnRjX3VwZGF0 ZV9vdXRwdXQoc3RydWN0IGRybV9jcnRjICpjcnRjLA0KPiAgew0KPiAgCWludCBjcnRjX2luZGV4 ID0gZHJtX2NydGNfaW5kZXgoY3J0Yyk7DQo+ICAJaW50IGk7DQo+ICsJdW5zaWduZWQgaW50IG1t c3lzOw0KPiAgCXN0cnVjdCBkZXZpY2UgKmRldjsNCj4gIAlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUg KmNydGNfc3RhdGUgPSBzdGF0ZS0+Y3J0Y3NbY3J0Y19pbmRleF0ubmV3X3N0YXRlOw0KPiAgCXN0 cnVjdCBtdGtfY3J0YyAqbXRrX2NydGMgPSB0b19tdGtfY3J0YyhjcnRjKTsNCj4gQEAgLTY3MSw3 ICs3NjAsOCBAQCBzdGF0aWMgdm9pZCBtdGtfY3J0Y191cGRhdGVfb3V0cHV0KHN0cnVjdCBkcm1f Y3J0YyAqY3J0YywNCj4gIAlpZiAoIW10a19jcnRjLT5udW1fY29ubl9yb3V0ZXMpDQo+ICAJCXJl dHVybjsNCj4gIA0KPiAtCXByaXYgPSAoKHN0cnVjdCBtdGtfZHJtX3ByaXZhdGUgKiljcnRjLT5k ZXYtPmRldl9wcml2YXRlKS0+YWxsX2RybV9wcml2YXRlW2NydGNfaW5kZXhdOw0KPiArCW1tc3lz ID0gbXRrX2NydGMtPmNvbm5fcm91dGVzX3N5czsNCj4gKwlwcml2ID0gKChzdHJ1Y3QgbXRrX2Ry bV9wcml2YXRlICopY3J0Yy0+ZGV2LT5kZXZfcHJpdmF0ZSktPmFsbF9kcm1fcHJpdmF0ZVttbXN5 c107DQo+ICAJZGV2ID0gcHJpdi0+ZGV2Ow0KPiAgDQo+ICAJZGV2X2RiZyhkZXYsICJjb25uZWN0 b3IgY2hhbmdlOiVkLCBlbmNvZGVyIG1hc2s6MHgleCBmb3IgY3J0YzolZFxuIiwNCj4gQEAgLTY4 NCw2ICs3NzQsOCBAQCBzdGF0aWMgdm9pZCBtdGtfY3J0Y191cGRhdGVfb3V0cHV0KHN0cnVjdCBk cm1fY3J0YyAqY3J0YywNCj4gIAkJaWYgKGNvbXAtPmVuY29kZXJfaW5kZXggPj0gMCAmJg0KPiAg CQkgICAgKGVuY29kZXJfbWFzayAmIEJJVChjb21wLT5lbmNvZGVyX2luZGV4KSkpIHsNCj4gIAkJ CW10a19jcnRjLT5kZHBfY29tcFttdGtfY3J0Yy0+ZGRwX2NvbXBfbnIgLSAxXSA9IGNvbXA7DQo+ ICsJCQltdGtfY3J0Yy0+ZGRwX2NvbXBfc3lzW210a19jcnRjLT5kZHBfY29tcF9uciAtIDFdID0g bW1zeXM7DQo+ICsJCQltdGtfY3J0Yy0+ZXhpc3RbbW1zeXNdID0gdHJ1ZTsNCj4gIAkJCWRldl9k YmcoZGV2LCAiQWRkIGNvbXBfaWQ6ICVkIGF0IHBhdGggaW5kZXggJWRcbiIsDQo+ICAJCQkJY29t cC0+aWQsIG10a19jcnRjLT5kZHBfY29tcF9uciAtIDEpOw0KPiAgCQkJYnJlYWs7DQo+IEBAIC03 MjAsMTMgKzgxMiwzNSBAQCBzdGF0aWMgdm9pZCBtdGtfY3J0Y19hdG9taWNfZW5hYmxlKHN0cnVj dCBkcm1fY3J0YyAqY3J0YywNCj4gIAlzdHJ1Y3QgbXRrX2NydGMgKm10a19jcnRjID0gdG9fbXRr X2NydGMoY3J0Yyk7DQo+ICAJc3RydWN0IG10a19kZHBfY29tcCAqY29tcCA9IG10a19jcnRjLT5k ZHBfY29tcFswXTsNCj4gIAlpbnQgcmV0Ow0KPiArCWludCBpLCBqOw0KPiArCWludCBtbXN5c19j bnQgPSAwOw0KPiAgDQo+ICAJRFJNX0RFQlVHX0RSSVZFUigiJXMgJWRcbiIsIF9fZnVuY19fLCBj cnRjLT5iYXNlLmlkKTsNCj4gIA0KPiAtCXJldCA9IG10a19kZHBfY29tcF9wb3dlcl9vbihjb21w KTsNCj4gLQlpZiAocmV0IDwgMCkgew0KPiAtCQlEUk1fREVWX0VSUk9SKGNvbXAtPmRldiwgIkZh aWxlZCB0byBlbmFibGUgcG93ZXIgZG9tYWluOiAlZFxuIiwgcmV0KTsNCj4gLQkJcmV0dXJuOw0K PiArCWZvciAoaSA9IDA7IGkgPCBNQVhfTU1TWVM7IGkrKykNCj4gKwkJaWYgKG10a19jcnRjLT5l eGlzdFtpXSkNCj4gKwkJCW1tc3lzX2NudCsrOw0KPiArDQo+ICsJaWYgKG1tc3lzX2NudCA9PSAx KSB7DQo+ICsJCXJldCA9IHBtX3J1bnRpbWVfcmVzdW1lX2FuZF9nZXQoY29tcC0+ZGV2KTsNCj4g KwkJaWYgKHJldCA8IDApIHsNCj4gKwkJCURSTV9ERVZfRVJST1IoY29tcC0+ZGV2LCAiRmFpbGVk IHRvIGVuYWJsZSBwb3dlciBkb21haW46ICVkXG4iLCByZXQpOw0KPiArCQkJcmV0dXJuOw0KPiAr CQl9DQo+ICsJfSBlbHNlIHsNCj4gKwkJZm9yIChpID0gMDsgaSA8IE1BWF9NTVNZUzsgaSsrKSB7 DQo+ICsJCQlpZiAoIW10a19jcnRjLT5leGlzdFtpXSkNCj4gKwkJCQljb250aW51ZTsNCj4gKwkJ CXJldCA9IHBtX3J1bnRpbWVfcmVzdW1lX2FuZF9nZXQobXRrX2NydGMtPm1tc3lzX2RldltpXSk7 DQo+ICsJCQlpZiAocmV0IDwgMCkgew0KPiArCQkJCURSTV9ERVZfRVJST1IobXRrX2NydGMtPm1t c3lzX2RldltpXSwNCj4gKwkJCQkJICAgICAgIkZhaWxlZCB0byBlbmFibGUgcG93ZXIgZG9tYWlu OiAlZFxuIiwgcmV0KTsNCj4gKwkJCQlmb3IgKGogPSBpIC0gMTsgaiA+PSAwOyBqLS0pDQo+ICsJ CQkJCWlmIChtdGtfY3J0Yy0+ZXhpc3RbaV0pDQo+ICsJCQkJCQlwbV9ydW50aW1lX3B1dChjb21w LT5kZXYpOw0KPiArCQkJCXJldHVybjsNCj4gKwkJCX0NCj4gKwkJfQ0KPiAgCX0NCj4gIA0KPiAg CW10a19jcnRjX3VwZGF0ZV9vdXRwdXQoY3J0Yywgc3RhdGUpOw0KPiBAQCAtNzQ2LDEyICs4NjAs MTcgQEAgc3RhdGljIHZvaWQgbXRrX2NydGNfYXRvbWljX2Rpc2FibGUoc3RydWN0IGRybV9jcnRj ICpjcnRjLA0KPiAgew0KPiAgCXN0cnVjdCBtdGtfY3J0YyAqbXRrX2NydGMgPSB0b19tdGtfY3J0 YyhjcnRjKTsNCj4gIAlzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wID0gbXRrX2NydGMtPmRkcF9j b21wWzBdOw0KPiAtCWludCBpOw0KPiArCWludCBpLCByZXQ7DQo+ICsJaW50IG1tc3lzX2NudCA9 IDA7DQo+ICANCj4gIAlEUk1fREVCVUdfRFJJVkVSKCIlcyAlZFxuIiwgX19mdW5jX18sIGNydGMt PmJhc2UuaWQpOw0KPiAgCWlmICghbXRrX2NydGMtPmVuYWJsZWQpDQo+ICAJCXJldHVybjsNCj4g IA0KPiArCWZvciAoaSA9IDA7IGkgPCBNQVhfTU1TWVM7IGkrKykNCj4gKwkJaWYgKG10a19jcnRj LT5leGlzdFtpXSkNCj4gKwkJCW1tc3lzX2NudCsrOw0KPiArDQo+ICAJLyogU2V0IGFsbCBwZW5k aW5nIHBsYW5lIHN0YXRlIHRvIGRpc2FibGVkICovDQo+ICAJZm9yIChpID0gMDsgaSA8IG10a19j cnRjLT5sYXllcl9ucjsgaSsrKSB7DQo+ICAJCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lID0gJm10 a19jcnRjLT5wbGFuZXNbaV07DQo+IEBAIC03NzYsNyArODk1LDIxIEBAIHN0YXRpYyB2b2lkIG10 a19jcnRjX2F0b21pY19kaXNhYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywNCj4gIA0KPiAgCWRy bV9jcnRjX3ZibGFua19vZmYoY3J0Yyk7DQo+ICAJbXRrX2NydGNfZGRwX2h3X2ZpbmkobXRrX2Ny dGMpOw0KPiAtCW10a19kZHBfY29tcF9wb3dlcl9vZmYoY29tcCk7DQo+ICsNCj4gKwlpZiAobW1z eXNfY250ID4gMSkgew0KPiArCQlmb3IgKGkgPSAwOyBpIDwgTUFYX01NU1lTOyBpKyspIHsNCj4g KwkJCWlmIChtdGtfY3J0Yy0+ZXhpc3RbaV0pIHsNCj4gKwkJCQlyZXQgPSBwbV9ydW50aW1lX3B1 dChtdGtfY3J0Yy0+bW1zeXNfZGV2W2ldKTsNCj4gKwkJCQlpZiAocmV0IDwgMCkNCj4gKwkJCQkJ RFJNX0RFVl9FUlJPUihtdGtfY3J0Yy0+bW1zeXNfZGV2W2ldLA0KPiArCQkJCQkJICAgICAgIkZh aWxlZCB0byBkaXNhYmxlIHBvd2VyIGRvbWFpbjogJWRcbiIsIHJldCk7DQo+ICsJCQl9DQo+ICsJ CX0NCj4gKwl9IGVsc2Ugew0KPiArCQlyZXQgPSBwbV9ydW50aW1lX3B1dChjb21wLT5kZXYpOw0K PiArCQlpZiAocmV0IDwgMCkNCj4gKwkJCURSTV9ERVZfRVJST1IoY29tcC0+ZGV2LCAiRmFpbGVk IHRvIGRpc2FibGUgcG93ZXIgZG9tYWluOiAlZFxuIiwgcmV0KTsNCj4gKwl9DQo+ICANCj4gIAlt dGtfY3J0Yy0+ZW5hYmxlZCA9IGZhbHNlOw0KPiAgfQ0KPiBAQCAtOTM3LDQ5ICsxMDcwLDEwOCBA QCBzdHJ1Y3QgZGV2aWNlICptdGtfY3J0Y19kbWFfZGV2X2dldChzdHJ1Y3QgZHJtX2NydGMgKmNy dGMpDQo+ICAJcmV0dXJuIG10a19jcnRjLT5kbWFfZGV2Ow0KPiAgfQ0KPiAgDQo+IC1pbnQgbXRr X2NydGNfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2LCBjb25zdCB1bnNpZ25lZCBp bnQgKnBhdGgsDQo+IC0JCSAgICB1bnNpZ25lZCBpbnQgcGF0aF9sZW4sIGludCBwcml2X2RhdGFf aW5kZXgsDQo+IC0JCSAgICBjb25zdCBzdHJ1Y3QgbXRrX2RybV9yb3V0ZSAqY29ubl9yb3V0ZXMs DQo+IC0JCSAgICB1bnNpZ25lZCBpbnQgbnVtX2Nvbm5fcm91dGVzKQ0KPiAraW50IG10a19jcnRj X2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiwgZW51bSBtdGtfY3J0Y19wYXRoIHBh dGhfc2VsKQ0KPiAgew0KPiAgCXN0cnVjdCBtdGtfZHJtX3ByaXZhdGUgKnByaXYgPSBkcm1fZGV2 LT5kZXZfcHJpdmF0ZTsNCj4gIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBkcm1fZGV2LT5kZXY7DQo+ ICAJc3RydWN0IG10a19jcnRjICptdGtfY3J0YzsNCj4gIAl1bnNpZ25lZCBpbnQgbnVtX2NvbXBf cGxhbmVzID0gMDsNCj4gIAlpbnQgcmV0Ow0KPiAtCWludCBpOw0KPiArCWludCBpLCBqLCBrOw0K PiAgCWJvb2wgaGFzX2N0bSA9IGZhbHNlOw0KPiAgCXVpbnQgZ2FtbWFfbHV0X3NpemUgPSAwOw0K PiAgCXN0cnVjdCBkcm1fY3J0YyAqdG1wOw0KPiAgCWludCBjcnRjX2kgPSAwOw0KPiAtDQo+IC0J aWYgKCFwYXRoKQ0KPiAtCQlyZXR1cm4gMDsNCj4gLQ0KPiAtCXByaXYgPSBwcml2LT5hbGxfZHJt X3ByaXZhdGVbcHJpdl9kYXRhX2luZGV4XTsNCj4gKwlzdHJ1Y3QgbXRrX2RybV9wcml2YXRlICpz dWJzeXNfcHJpdjsNCj4gKwlzdHJ1Y3QgbXRrX2NydGNfY29tcF9pbmZvIHBhdGhbRERQX0NPTVBP TkVOVF9JRF9NQVhdOw0KPiArCXVuc2lnbmVkIGludCBwYXRoX2xlbiA9IDA7DQo+ICsJY29uc3Qg c3RydWN0IG10a19kcm1fcm91dGUgKmNvbm5fcm91dGVzID0gTlVMTDsNCj4gKwl1bnNpZ25lZCBp bnQgbnVtX2Nvbm5fcm91dGVzID0gMDsNCj4gKwllbnVtIG10a19kcm1fbW1zeXMgY29ubl9tbXN5 czsNCj4gIA0KPiAgCWRybV9mb3JfZWFjaF9jcnRjKHRtcCwgZHJtX2RldikNCj4gIAkJY3J0Y19p Kys7DQo+ICANCj4gKwlmb3IgKGogPSAwOyBqIDwgcHJpdi0+ZGF0YS0+bW1zeXNfZGV2X251bTsg aisrKSB7DQo+ICsJCWZvciAoayA9IDA7IGsgPCBNQVhfTU1TWVM7IGsrKykgew0KPiArCQkJY29u c3QgdW5zaWduZWQgaW50ICpzdWJzeXNfcGF0aDsNCj4gKwkJCXVuc2lnbmVkIGludCBzdWJzeXNf cGF0aF9sZW47DQo+ICsJCQl1bnNpZ25lZCBpbnQgb3JkZXIgPSAwOw0KPiArDQo+ICsJCQlzdWJz eXNfcHJpdiA9IHByaXYtPmFsbF9kcm1fcHJpdmF0ZVtrXTsNCj4gKwkJCWlmICghc3Vic3lzX3By aXYpDQo+ICsJCQkJY29udGludWU7DQo+ICsNCj4gKwkJCWlmIChwYXRoX3NlbCA9PSBDUlRDX01B SU4pIHsNCj4gKwkJCQlzdWJzeXNfcGF0aCA9IHN1YnN5c19wcml2LT5kYXRhLT5tYWluX3BhdGg7 DQo+ICsJCQkJc3Vic3lzX3BhdGhfbGVuID0gc3Vic3lzX3ByaXYtPmRhdGEtPm1haW5fbGVuOw0K PiArCQkJCW9yZGVyID0gc3Vic3lzX3ByaXYtPmRhdGEtPm1haW5fb3JkZXI7DQo+ICsJCQl9IGVs c2UgaWYgKHBhdGhfc2VsID09IENSVENfRVhUKSB7DQo+ICsJCQkJc3Vic3lzX3BhdGggPSBzdWJz eXNfcHJpdi0+ZGF0YS0+ZXh0X3BhdGg7DQo+ICsJCQkJc3Vic3lzX3BhdGhfbGVuID0gc3Vic3lz X3ByaXYtPmRhdGEtPmV4dF9sZW47DQo+ICsJCQkJb3JkZXIgPSBzdWJzeXNfcHJpdi0+ZGF0YS0+ ZXh0X29yZGVyOw0KPiArCQkJfSBlbHNlIGlmIChwYXRoX3NlbCA9PSBDUlRDX1RISVJEKSB7DQo+ ICsJCQkJc3Vic3lzX3BhdGggPSBzdWJzeXNfcHJpdi0+ZGF0YS0+dGhpcmRfcGF0aDsNCj4gKwkJ CQlzdWJzeXNfcGF0aF9sZW4gPSBzdWJzeXNfcHJpdi0+ZGF0YS0+dGhpcmRfbGVuOw0KPiArCQkJ CW9yZGVyID0gc3Vic3lzX3ByaXYtPmRhdGEtPnRoaXJkX29yZGVyOw0KPiArCQkJfQ0KPiArDQo+ ICsJCQlpZiAoc3Vic3lzX3ByaXYtPmRhdGEtPm51bV9jb25uX3JvdXRlcykgew0KPiArCQkJCWNv bm5fcm91dGVzID0gc3Vic3lzX3ByaXYtPmRhdGEtPmNvbm5fcm91dGVzOw0KPiArCQkJCW51bV9j b25uX3JvdXRlcyA9IHN1YnN5c19wcml2LT5kYXRhLT5udW1fY29ubl9yb3V0ZXM7DQo+ICsJCQkJ Y29ubl9tbXN5cyA9IHN1YnN5c19wcml2LT5kYXRhLT5tbXN5c19pZDsNCj4gKwkJCX0NCj4gKw0K PiArCQkJaWYgKGogIT0gb3JkZXIpDQo+ICsJCQkJY29udGludWU7DQo+ICsJCQlpZiAoIXN1YnN5 c19wYXRoX2xlbikNCj4gKwkJCQljb250aW51ZTsNCj4gKw0KPiArCQkJZm9yIChpID0gMDsgaSA8 IHN1YnN5c19wYXRoX2xlbjsgaSsrKSB7DQo+ICsJCQkJcGF0aFtwYXRoX2xlbl0uc3lzID0gc3Vi c3lzX3ByaXYtPmRhdGEtPm1tc3lzX2lkOw0KPiArCQkJCXBhdGhbcGF0aF9sZW5dLmNvbXBfaWQg PSBzdWJzeXNfcGF0aFtpXTsNCj4gKwkJCQlwYXRoX2xlbisrOw0KPiArCQkJfQ0KPiArCQl9DQo+ ICsJfQ0KPiArDQo+ICsJaWYgKCFwYXRoX2xlbikNCj4gKwkJcmV0dXJuIDA7DQo+ICsNCj4gKwlp ZiAobnVtX2Nvbm5fcm91dGVzKSB7DQo+ICsJCWZvciAoaSA9IDA7IGkgPCBudW1fY29ubl9yb3V0 ZXM7IGkrKykNCj4gKwkJCWlmIChjb25uX3JvdXRlcy0+Y3J0Y19pZCA9PSBjcnRjX2kpDQo+ICsJ CQkJYnJlYWs7DQo+ICsJCWlmIChpID09IG51bV9jb25uX3JvdXRlcykgew0KPiArCQkJbnVtX2Nv bm5fcm91dGVzID0gMDsNCj4gKwkJCWNvbm5fcm91dGVzID0gTlVMTDsNCj4gKwkJfQ0KPiArCX0N Cj4gKw0KPiAgCWZvciAoaSA9IDA7IGkgPCBwYXRoX2xlbjsgaSsrKSB7DQo+IC0JCWVudW0gbXRr X2RkcF9jb21wX2lkIGNvbXBfaWQgPSBwYXRoW2ldOw0KPiArCQllbnVtIG10a19kZHBfY29tcF9p ZCBjb21wX2lkID0gcGF0aFtpXS5jb21wX2lkOw0KPiAgCQlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5v ZGU7DQo+ICAJCXN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXA7DQo+ICANCj4gKwkJcHJpdiA9IHBy aXYtPmFsbF9kcm1fcHJpdmF0ZVtwYXRoW2ldLnN5c107DQo+ICAJCW5vZGUgPSBwcml2LT5jb21w X25vZGVbY29tcF9pZF07DQo+ICAJCWNvbXAgPSAmcHJpdi0+ZGRwX2NvbXBbY29tcF9pZF07DQo+ ICANCj4gIAkJLyogTm90IGFsbCBkcm0gY29tcG9uZW50cyBoYXZlIGEgRFRTIGRldmljZSBub2Rl LCBzdWNoIGFzIG92bF9hZGFwdG9yLA0KPiAgCQkgKiB3aGljaCBpcyB0aGUgZHJtIGJyaW5nIHVw IHN1YiBkcml2ZXINCj4gIAkJICovDQo+IC0JCWlmICghbm9kZSAmJiBjb21wX2lkICE9IEREUF9D T01QT05FTlRfRFJNX09WTF9BREFQVE9SKSB7DQo+ICsJCWlmICghbm9kZSAmJiBjb21wX2lkICE9 IEREUF9DT01QT05FTlRfRFJNX09WTF9BREFQVE9SICYmDQo+ICsJCSAgICBjb21wX2lkICE9IERE UF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMCAmJg0KPiArCQkgICAgY29tcF9pZCAhPSBE RFBfQ09NUE9ORU5UX0RSTV9PVkxTWVNfQURBUFRPUjEgJiYNCj4gKwkJICAgIGNvbXBfaWQgIT0g RERQX0NPTVBPTkVOVF9EUk1fT1ZMU1lTX0FEQVBUT1IyICYmDQo+ICsJCSAgICBtdGtfZGRwX2Nv bXBfZ2V0X3R5cGUoY29tcF9pZCkgIT0gTVRLX0RJU1BfVklSVFVBTCkgew0KPiAgCQkJZGV2X2lu Zm8oZGV2LA0KPiAgCQkJCSJOb3QgY3JlYXRpbmcgY3J0YyAlZCBiZWNhdXNlIGNvbXBvbmVudCAl ZCBpcyBkaXNhYmxlZCBvciBtaXNzaW5nXG4iLA0KPiAgCQkJCWNydGNfaSwgY29tcF9pZCk7DQo+ ICAJCQlyZXR1cm4gMDsNCj4gIAkJfQ0KPiAgDQo+IC0JCWlmICghY29tcC0+ZGV2KSB7DQo+ICsJ CWlmICghY29tcC0+ZGV2ICYmIG10a19kZHBfY29tcF9nZXRfdHlwZShjb21wX2lkKSAhPSBNVEtf RElTUF9WSVJUVUFMKSB7DQo+ICAJCQlkZXZfZXJyKGRldiwgIkNvbXBvbmVudCAlcE9GIG5vdCBp bml0aWFsaXplZFxuIiwgbm9kZSk7DQo+ICAJCQlyZXR1cm4gLUVOT0RFVjsNCj4gIAkJfQ0KPiBA QCAtOTg5LDcgKzExODEsOSBAQCBpbnQgbXRrX2NydGNfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNl ICpkcm1fZGV2LCBjb25zdCB1bnNpZ25lZCBpbnQgKnBhdGgsDQo+ICAJaWYgKCFtdGtfY3J0YykN Cj4gIAkJcmV0dXJuIC1FTk9NRU07DQo+ICANCj4gLQltdGtfY3J0Yy0+bW1zeXNfZGV2ID0gcHJp di0+bW1zeXNfZGV2Ow0KPiArCWZvciAoaSA9IDA7IGkgPCBNQVhfTU1TWVM7IGkrKykNCj4gKwkJ aWYgKHByaXYtPmFsbF9kcm1fcHJpdmF0ZVtpXSkNCj4gKwkJCW10a19jcnRjLT5tbXN5c19kZXZb aV0gPSBwcml2LT5hbGxfZHJtX3ByaXZhdGVbaV0tPm1tc3lzX2RldjsNCj4gIAltdGtfY3J0Yy0+ ZGRwX2NvbXBfbnIgPSBwYXRoX2xlbjsNCj4gIAltdGtfY3J0Yy0+ZGRwX2NvbXAgPSBkZXZtX2tj YWxsb2MoZGV2LA0KPiAgCQkJCQkgIG10a19jcnRjLT5kZHBfY29tcF9uciArIChjb25uX3JvdXRl cyA/IDEgOiAwKSwNCj4gQEAgLTk5OCwxOSArMTE5MiwzNiBAQCBpbnQgbXRrX2NydGNfY3JlYXRl KHN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2LCBjb25zdCB1bnNpZ25lZCBpbnQgKnBhdGgsDQo+ ICAJaWYgKCFtdGtfY3J0Yy0+ZGRwX2NvbXApDQo+ICAJCXJldHVybiAtRU5PTUVNOw0KPiAgDQo+ IC0JbXRrX2NydGMtPm11dGV4ID0gbXRrX211dGV4X2dldChwcml2LT5tdXRleF9kZXYpOw0KPiAt CWlmIChJU19FUlIobXRrX2NydGMtPm11dGV4KSkgew0KPiAtCQlyZXQgPSBQVFJfRVJSKG10a19j cnRjLT5tdXRleCk7DQo+IC0JCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGdldCBtdXRleDogJWRc biIsIHJldCk7DQo+IC0JCXJldHVybiByZXQ7DQo+ICsJbXRrX2NydGMtPmRkcF9jb21wX3N5cyA9 IGRldm1fa21hbGxvY19hcnJheShkZXYsIG10a19jcnRjLT5kZHBfY29tcF9uciArDQo+ICsJCQkJ CQkgICAgKGNvbm5fcm91dGVzID8gMSA6IDApLA0KPiArCQkJCQkJICAgIHNpemVvZihtdGtfY3J0 Yy0+ZGRwX2NvbXBfc3lzKSwgR0ZQX0tFUk5FTCk7DQo+ICsJaWYgKCFtdGtfY3J0Yy0+ZGRwX2Nv bXBfc3lzKQ0KPiArCQlyZXR1cm4gLUVOT01FTTsNCj4gKw0KPiArCWZvciAoaSA9IDA7IGkgPCBN QVhfTU1TWVM7IGkrKykgew0KPiArCQlpZiAoIXByaXYtPmFsbF9kcm1fcHJpdmF0ZVtpXSkNCj4g KwkJCWNvbnRpbnVlOw0KPiArDQo+ICsJCXByaXYgPSBwcml2LT5hbGxfZHJtX3ByaXZhdGVbaV07 DQo+ICsJCW10a19jcnRjLT5tdXRleFtpXSA9IG10a19tdXRleF9nZXQocHJpdi0+bXV0ZXhfZGV2 KTsNCj4gKwkJaWYgKElTX0VSUihtdGtfY3J0Yy0+bXV0ZXhbaV0pKSB7DQo+ICsJCQlyZXQgPSBQ VFJfRVJSKG10a19jcnRjLT5tdXRleFtpXSk7DQo+ICsJCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0 byBnZXQgbXV0ZXg6ICVkXG4iLCByZXQpOw0KPiArCQkJcmV0dXJuIHJldDsNCj4gKwkJfQ0KPiAg CX0NCj4gIA0KPiAgCWZvciAoaSA9IDA7IGkgPCBtdGtfY3J0Yy0+ZGRwX2NvbXBfbnI7IGkrKykg ew0KPiAtCQl1bnNpZ25lZCBpbnQgY29tcF9pZCA9IHBhdGhbaV07DQo+ICsJCXVuc2lnbmVkIGlu dCBjb21wX2lkID0gcGF0aFtpXS5jb21wX2lkOw0KPiAgCQlzdHJ1Y3QgbXRrX2RkcF9jb21wICpj b21wOw0KPiAgDQo+ICsJCXByaXYgPSBwcml2LT5hbGxfZHJtX3ByaXZhdGVbcGF0aFtpXS5zeXNd Ow0KPiAgCQljb21wID0gJnByaXYtPmRkcF9jb21wW2NvbXBfaWRdOw0KPiArCQlpZiAobXRrX2Rk cF9jb21wX2dldF90eXBlKGNvbXBfaWQpID09IE1US19ESVNQX1ZJUlRVQUwpDQo+ICsJCQljb21w LT5pZCA9IGNvbXBfaWQ7DQo+ICAJCW10a19jcnRjLT5kZHBfY29tcFtpXSA9IGNvbXA7DQo+ICsJ CW10a19jcnRjLT5kZHBfY29tcF9zeXNbaV0gPSBwYXRoW2ldLnN5czsNCj4gKwkJbXRrX2NydGMt PmV4aXN0W3BhdGhbaV0uc3lzXSA9IHRydWU7DQo+ICANCj4gIAkJaWYgKGNvbXAtPmZ1bmNzKSB7 DQo+ICAJCQlpZiAoY29tcC0+ZnVuY3MtPmdhbW1hX3NldCAmJiBjb21wLT5mdW5jcy0+Z2FtbWFf Z2V0X2x1dF9zaXplKSB7DQo+IEBAIC0xMDQ3LDggKzEyNTgsMTAgQEAgaW50IG10a19jcnRjX2Ny ZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiwgY29uc3QgdW5zaWduZWQgaW50ICpwYXRo LA0KPiAgCSAqIEluIHRoZSBjYXNlIG9mIG92bF9hZGFwdG9yIHN1YiBkcml2ZXIsIGl0IG5lZWRz IHRvIHVzZSB0aGUNCj4gIAkgKiBkbWFfZGV2X2dldCBmdW5jdGlvbiB0byBnZXQgcmVwcmVzZW50 YXRpdmUgZG1hIGRldi4NCj4gIAkgKi8NCj4gLQltdGtfY3J0Yy0+ZG1hX2RldiA9IG10a19kZHBf Y29tcF9kbWFfZGV2X2dldCgmcHJpdi0+ZGRwX2NvbXBbcGF0aFswXV0pOw0KPiArCXByaXYgPSBw cml2LT5hbGxfZHJtX3ByaXZhdGVbcGF0aFswXS5zeXNdOw0KPiArCW10a19jcnRjLT5kbWFfZGV2 ID0gbXRrX2RkcF9jb21wX2RtYV9kZXZfZ2V0KCZwcml2LT5kZHBfY29tcFtwYXRoWzBdLmNvbXBf aWRdKTsNCj4gIA0KPiArCW10a19jcnRjLT52ZGlzcF9hb19kZXYgPSBwcml2LT52ZGlzcF9hb19k ZXY7DQo+ICAJcmV0ID0gbXRrX2NydGNfaW5pdChkcm1fZGV2LCBtdGtfY3J0YywgY3J0Y19pKTsN Cj4gIAlpZiAocmV0IDwgMCkNCj4gIAkJcmV0dXJuIHJldDsNCj4gQEAgLTEwNjEsNyArMTI3NCw3 IEBAIGludCBtdGtfY3J0Y19jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYsIGNvbnN0 IHVuc2lnbmVkIGludCAqcGF0aCwNCj4gIA0KPiAgI2lmIElTX1JFQUNIQUJMRShDT05GSUdfTVRL X0NNRFEpDQo+ICAJaSA9IHByaXYtPm1ib3hfaW5kZXgrKzsNCj4gLQltdGtfY3J0Yy0+Y21kcV9j bGllbnQuY2xpZW50LmRldiA9IG10a19jcnRjLT5tbXN5c19kZXY7DQo+ICsJbXRrX2NydGMtPmNt ZHFfY2xpZW50LmNsaWVudC5kZXYgPSBtdGtfY3J0Yy0+bW1zeXNfZGV2W3ByaXYtPmRhdGEtPm1t c3lzX2lkXTsNCj4gIAltdGtfY3J0Yy0+Y21kcV9jbGllbnQuY2xpZW50LnR4X2Jsb2NrID0gZmFs c2U7DQo+ICAJbXRrX2NydGMtPmNtZHFfY2xpZW50LmNsaWVudC5rbm93c190eGRvbmUgPSB0cnVl Ow0KPiAgCW10a19jcnRjLT5jbWRxX2NsaWVudC5jbGllbnQucnhfY2FsbGJhY2sgPSBkZHBfY21k cV9jYjsNCj4gQEAgLTExMDEsNiArMTMxNCw3IEBAIGludCBtdGtfY3J0Y19jcmVhdGUoc3RydWN0 IGRybV9kZXZpY2UgKmRybV9kZXYsIGNvbnN0IHVuc2lnbmVkIGludCAqcGF0aCwNCj4gICNlbmRp Zg0KPiAgDQo+ICAJaWYgKGNvbm5fcm91dGVzKSB7DQo+ICsJCXByaXYgPSBwcml2LT5hbGxfZHJt X3ByaXZhdGVbY29ubl9tbXN5c107DQo+ICAJCWZvciAoaSA9IDA7IGkgPCBudW1fY29ubl9yb3V0 ZXM7IGkrKykgew0KPiAgCQkJdW5zaWduZWQgaW50IGNvbXBfaWQgPSBjb25uX3JvdXRlc1tpXS5y b3V0ZV9kZHA7DQo+ICAJCQlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUgPSBwcml2LT5jb21wX25v ZGVbY29tcF9pZF07DQo+IEBAIC0xMTE3LDYgKzEzMzEsNyBAQCBpbnQgbXRrX2NydGNfY3JlYXRl KHN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2LCBjb25zdCB1bnNpZ25lZCBpbnQgKnBhdGgsDQo+ ICAJCQltdGtfZGRwX2NvbXBfZW5jb2Rlcl9pbmRleF9zZXQoJnByaXYtPmRkcF9jb21wW2NvbXBf aWRdKTsNCj4gIAkJfQ0KPiAgDQo+ICsJCW10a19jcnRjLT5jb25uX3JvdXRlc19zeXMgPSBjb25u X21tc3lzOw0KPiAgCQltdGtfY3J0Yy0+bnVtX2Nvbm5fcm91dGVzID0gbnVtX2Nvbm5fcm91dGVz Ow0KPiAgCQltdGtfY3J0Yy0+Y29ubl9yb3V0ZXMgPSBjb25uX3JvdXRlczsNCj4gIA0KPiBAQCAt MTEyNCw1ICsxMzM5LDEwIEBAIGludCBtdGtfY3J0Y19jcmVhdGUoc3RydWN0IGRybV9kZXZpY2Ug KmRybV9kZXYsIGNvbnN0IHVuc2lnbmVkIGludCAqcGF0aCwNCj4gIAkJbXRrX2NydGMtPmRkcF9j b21wX25yKys7DQo+ICAJfQ0KPiAgDQo+ICsJZm9yIChpID0gMDsgaSA8IE1BWF9NTVNZUzsgaSsr KQ0KPiArCQlpZiAobXRrX2NydGMtPmV4aXN0W2ldKQ0KPiArCQkJZGV2aWNlX2xpbmtfYWRkKG10 a19jcnRjLT5iYXNlLmRldi0+ZGV2LA0KPiArCQkJCQlwcml2LT5hbGxfZHJtX3ByaXZhdGVbaV0t Pm11dGV4X2RldiwgMCk7DQo+ICsNCj4gIAlyZXR1cm4gMDsNCj4gIH0NCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfY3J0Yy5oIGIvZHJpdmVycy9ncHUvZHJtL21l ZGlhdGVrL210a19jcnRjLmgNCj4gaW5kZXggMzg4ZTkwMGI2ZjRkLi4yNTVmMjgyM2QxN2EgMTAw NjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfY3J0Yy5oDQo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfY3J0Yy5oDQo+IEBAIC0xNSwxMCArMTUsOCBA QA0KPiAgI2RlZmluZSBNVEtfTUlOX0JQQwkzDQo+ICANCj4gIHZvaWQgbXRrX2NydGNfY29tbWl0 KHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7DQo+IC1pbnQgbXRrX2NydGNfY3JlYXRlKHN0cnVjdCBk cm1fZGV2aWNlICpkcm1fZGV2LCBjb25zdCB1bnNpZ25lZCBpbnQgKnBhdGgsDQo+IC0JCSAgICB1 bnNpZ25lZCBpbnQgcGF0aF9sZW4sIGludCBwcml2X2RhdGFfaW5kZXgsDQo+IC0JCSAgICBjb25z dCBzdHJ1Y3QgbXRrX2RybV9yb3V0ZSAqY29ubl9yb3V0ZXMsDQo+IC0JCSAgICB1bnNpZ25lZCBp bnQgbnVtX2Nvbm5fcm91dGVzKTsNCj4gK2ludCBtdGtfY3J0Y19jcmVhdGUoc3RydWN0IGRybV9k ZXZpY2UgKmRybV9kZXYsDQo+ICsJCSAgICBlbnVtIG10a19jcnRjX3BhdGggcGF0aF9zZWwpOw0K PiAgaW50IG10a19jcnRjX3BsYW5lX2NoZWNrKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yywgc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUsDQo+ICAJCQkgc3RydWN0IG10a19wbGFuZV9zdGF0ZSAqc3RhdGUp Ow0KPiAgdm9pZCBtdGtfY3J0Y19hc3luY191cGRhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjLCBz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9t ZWRpYXRlay9tdGtfZGRwX2NvbXAuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGRw X2NvbXAuYw0KPiBpbmRleCA0OTJiOGQ5NjUzMDkuLmY4NDExODRkMWUwNiAxMDA2NDQNCj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kZHBfY29tcC5jDQo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGRwX2NvbXAuYw0KPiBAQCAtNDY0LDYgKzQ2NCw3IEBA IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgbXRrX2RkcF9jb21wX3N0ZW1bTVRLX0REUF9DT01Q X1RZUEVfTUFYXSA9IHsNCj4gIAlbTVRLX0RJU1BfUFdNXSA9ICJwd20iLA0KPiAgCVtNVEtfRElT UF9SRE1BXSA9ICJyZG1hIiwNCj4gIAlbTVRLX0RJU1BfVUZPRV0gPSAidWZvZSIsDQo+ICsJW01U S19ESVNQX1ZJUlRVQUxdID0gInZpcnR1YWwiLA0KPiAgCVtNVEtfRElTUF9XRE1BXSA9ICJ3ZG1h IiwNCj4gIAlbTVRLX0RQX0lOVEZdID0gImRwLWludGYiLA0KPiAgCVtNVEtfRFBJXSA9ICJkcGki LA0KPiBAQCAtNDg3LDYgKzQ4OCwxNSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG10a19kZHBfY29t cF9tYXRjaCBtdGtfZGRwX21hdGNoZXNbRERQX0NPTVBPTkVOVF9EUk1fSURfTUFYXQ0KPiAgCVtE RFBfQ09NUE9ORU5UX0NPTE9SMF0JCT0geyBNVEtfRElTUF9DT0xPUiwJCTAsICZkZHBfY29sb3Ig fSwNCj4gIAlbRERQX0NPTVBPTkVOVF9DT0xPUjFdCQk9IHsgTVRLX0RJU1BfQ09MT1IsCQkxLCAm ZGRwX2NvbG9yIH0sDQo+ICAJW0REUF9DT01QT05FTlRfRElUSEVSMF0JCT0geyBNVEtfRElTUF9E SVRIRVIsCQkwLCAmZGRwX2RpdGhlciB9LA0KPiArCVtERFBfQ09NUE9ORU5UX0RMSV9BU1lOQzBd ICAgICAgPSB7IE1US19ESVNQX1ZJUlRVQUwsICAgICAgICAgICAtMSwgTlVMTCB9LA0KPiArCVtE RFBfQ09NUE9ORU5UX0RMSV9BU1lOQzFdICAgICAgPSB7IE1US19ESVNQX1ZJUlRVQUwsICAgICAg ICAgICAtMSwgTlVMTCB9LA0KPiArCVtERFBfQ09NUE9ORU5UX0RMSV9BU1lOQzhdICAgICAgPSB7 IE1US19ESVNQX1ZJUlRVQUwsICAgICAgICAgICAtMSwgTlVMTCB9LA0KPiArCVtERFBfQ09NUE9O RU5UX0RMSV9BU1lOQzIxXSAgICAgPSB7IE1US19ESVNQX1ZJUlRVQUwsICAgICAgICAgICAtMSwg TlVMTCB9LA0KPiArCVtERFBfQ09NUE9ORU5UX0RMSV9BU1lOQzIyXSAgICAgPSB7IE1US19ESVNQ X1ZJUlRVQUwsICAgICAgICAgICAtMSwgTlVMTCB9LA0KPiArCVtERFBfQ09NUE9ORU5UX0RMSV9B U1lOQzIzXSAgICAgPSB7IE1US19ESVNQX1ZJUlRVQUwsICAgICAgICAgICAtMSwgTlVMTCB9LA0K PiArCVtERFBfQ09NUE9ORU5UX0RMT19BU1lOQzFdICAgICAgPSB7IE1US19ESVNQX1ZJUlRVQUws ICAgICAgICAgICAtMSwgTlVMTCB9LA0KPiArCVtERFBfQ09NUE9ORU5UX0RMT19BU1lOQzJdICAg ICAgPSB7IE1US19ESVNQX1ZJUlRVQUwsICAgICAgICAgICAtMSwgTlVMTCB9LA0KPiArCVtERFBf Q09NUE9ORU5UX0RMT19BU1lOQzNdICAgICAgPSB7IE1US19ESVNQX1ZJUlRVQUwsICAgICAgICAg ICAtMSwgTlVMTCB9LA0KPiAgCVtERFBfQ09NUE9ORU5UX0RQX0lOVEYwXQk9IHsgTVRLX0RQX0lO VEYsCQkwLCAmZGRwX2RwaSB9LA0KPiAgCVtERFBfQ09NUE9ORU5UX0RQX0lOVEYxXQk9IHsgTVRL X0RQX0lOVEYsCQkxLCAmZGRwX2RwaSB9LA0KPiAgCVtERFBfQ09NUE9ORU5UX0RQSTBdCQk9IHsg TVRLX0RQSSwJCQkwLCAmZGRwX2RwaSB9LA0KPiBAQCAtNDk0LDYgKzUwNCw5IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgbXRrX2RkcF9jb21wX21hdGNoIG10a19kZHBfbWF0Y2hlc1tERFBfQ09NUE9O RU5UX0RSTV9JRF9NQVhdDQo+ICAJW0REUF9DT01QT05FTlRfRFJNX09WTF9BREFQVE9SXQk9IHsg TVRLX0RJU1BfT1ZMX0FEQVBUT1IsCTAsICZkZHBfb3ZsX2FkYXB0b3IgfSwNCj4gIAlbRERQX0NP TVBPTkVOVF9EUk1fT1ZMU1lTX0FEQVBUT1IwXSA9IHsgTVRLX0RJU1BfT1ZMU1lTX0FEQVBUT1Is IDAsICZkZHBfb3Zsc3lzX2FkYXB0b3J9LA0KPiAgCVtERFBfQ09NUE9ORU5UX0RSTV9PVkxTWVNf QURBUFRPUjFdID0geyBNVEtfRElTUF9PVkxTWVNfQURBUFRPUiwgMSwgJmRkcF9vdmxzeXNfYWRh cHRvcn0sDQo+ICsJW0REUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMF0gPSB7IE1US19E SVNQX09WTFNZU19BREFQVE9SLCAwLCAmZGRwX292bHN5c19hZGFwdG9yfSwNCj4gKwlbRERQX0NP TVBPTkVOVF9EUk1fT1ZMU1lTX0FEQVBUT1IxXSA9IHsgTVRLX0RJU1BfT1ZMU1lTX0FEQVBUT1Is IDEsICZkZHBfb3Zsc3lzX2FkYXB0b3J9LA0KPiArCVtERFBfQ09NUE9ORU5UX0RSTV9PVkxTWVNf QURBUFRPUjJdID0geyBNVEtfRElTUF9PVkxTWVNfQURBUFRPUiwgMiwgJmRkcF9vdmxzeXNfYWRh cHRvcn0sDQo+ICAJW0REUF9DT01QT05FTlRfRFNDMF0JCT0geyBNVEtfRElTUF9EU0MsCQkwLCAm ZGRwX2RzYyB9LA0KPiAgCVtERFBfQ09NUE9ORU5UX0RTQzFdCQk9IHsgTVRLX0RJU1BfRFNDLAkJ MSwgJmRkcF9kc2MgfSwNCj4gIAlbRERQX0NPTVBPTkVOVF9EU0kwXQkJPSB7IE1US19EU0ksCQkJ MCwgJmRkcF9kc2kgfSwNCj4gQEAgLTUxMCw3ICs1MjMsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBtdGtfZGRwX2NvbXBfbWF0Y2ggbXRrX2RkcF9tYXRjaGVzW0REUF9DT01QT05FTlRfRFJNX0lE X01BWF0NCj4gIAlbRERQX0NPTVBPTkVOVF9PRDBdCQk9IHsgTVRLX0RJU1BfT0QsCQkwLCAmZGRw X29kIH0sDQo+ICAJW0REUF9DT01QT05FTlRfT0QxXQkJPSB7IE1US19ESVNQX09ELAkJMSwgJmRk cF9vZCB9LA0KPiAgCVtERFBfQ09NUE9ORU5UX09WTDBdCQk9IHsgTVRLX0RJU1BfT1ZMLAkJMCwg JmRkcF9vdmwgfSwNCj4gKwlbRERQX0NPTVBPTkVOVF9PVkwwX0RMT19BU1lOQzVdID0geyBNVEtf RElTUF9WSVJUVUFMLCAgICAgICAgICAgLTEsIE5VTEwgfSwNCj4gKwlbRERQX0NPTVBPTkVOVF9P VkwwX0RMT19BU1lOQzZdID0geyBNVEtfRElTUF9WSVJUVUFMLCAgICAgICAgICAgLTEsIE5VTEwg fSwNCj4gIAlbRERQX0NPTVBPTkVOVF9PVkwxXQkJPSB7IE1US19ESVNQX09WTCwJCTEsICZkZHBf b3ZsIH0sDQo+ICsJW0REUF9DT01QT05FTlRfT1ZMMV9ETE9fQVNZTkM1XSA9IHsgTVRLX0RJU1Bf VklSVFVBTCwgICAgICAgICAgIC0xLCBOVUxMIH0sDQo+ICAJW0REUF9DT01QT05FTlRfT1ZMXzJM MF0JCT0geyBNVEtfRElTUF9PVkxfMkwsCQkwLCAmZGRwX292bCB9LA0KPiAgCVtERFBfQ09NUE9O RU5UX09WTF8yTDFdCQk9IHsgTVRLX0RJU1BfT1ZMXzJMLAkJMSwgJmRkcF9vdmwgfSwNCj4gIAlb RERQX0NPTVBPTkVOVF9PVkxfMkwyXQkJPSB7IE1US19ESVNQX09WTF8yTCwJCTIsICZkZHBfb3Zs IH0sDQo+IEBAIC01NjcsMTIgKzU4MywxOSBAQCBzdGF0aWMgYm9vbCBtdGtfZGRwX3BhdGhfYXZh aWxhYmxlKGNvbnN0IHVuc2lnbmVkIGludCAqcGF0aCwNCj4gIHsNCj4gIAl1bnNpZ25lZCBpbnQg aTsNCj4gIA0KPiArCWlmICghcGF0aF9sZW4pDQo+ICsJCXJldHVybiB0cnVlOw0KPiArDQo+ICAJ aWYgKCFwYXRoIHx8ICFwYXRoX2xlbikNCj4gIAkJcmV0dXJuIGZhbHNlOw0KPiAgDQo+ICAJZm9y IChpID0gMFU7IGkgPCBwYXRoX2xlbjsgaSsrKSB7DQo+ICAJCS8qIE9WTF9BREFQVE9SIGRvZXNu J3QgaGF2ZSBhIGRldmljZSBub2RlICovDQo+IC0JCWlmIChwYXRoW2ldID09IEREUF9DT01QT05F TlRfRFJNX09WTF9BREFQVE9SKQ0KPiArCQlpZiAocGF0aFtpXSA9PSBERFBfQ09NUE9ORU5UX0RS TV9PVkxfQURBUFRPUiB8fA0KPiArCQkgICAgcGF0aFtpXSA9PSBERFBfQ09NUE9ORU5UX0RSTV9P VkxTWVNfQURBUFRPUjAgfHwNCj4gKwkJCXBhdGhbaV0gPT0gRERQX0NPTVBPTkVOVF9EUk1fT1ZM U1lTX0FEQVBUT1IxIHx8DQo+ICsJCQlwYXRoW2ldID09IEREUF9DT01QT05FTlRfRFJNX09WTFNZ U19BREFQVE9SMiB8fA0KPiArCQkJbXRrX2RkcF9jb21wX2dldF90eXBlKHBhdGhbaV0pID09IE1U S19ESVNQX1ZJUlRVQUwpDQo+ICAJCQljb250aW51ZTsNCj4gIA0KPiAgCQlpZiAoIWNvbXBfbm9k ZVtwYXRoW2ldXSkNCj4gQEAgLTU5Nyw0NCArNjIwLDgxIEBAIGludCBtdGtfZGRwX2NvbXBfZ2V0 X2lkKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwNCj4gIAlyZXR1cm4gLUVJTlZBTDsNCj4gIH0N Cj4gIA0KPiArZW51bSBtdGtfZGRwX2NvbXBfdHlwZSBtdGtfZGRwX2NvbXBfZ2V0X3R5cGUodW5z aWduZWQgaW50IGNvbXBfaWQpDQo+ICt7DQo+ICsJcmV0dXJuIG10a19kZHBfbWF0Y2hlc1tjb21w X2lkXS50eXBlOw0KPiArfQ0KPiArDQo+ICBpbnQgbXRrX2ZpbmRfcG9zc2libGVfY3J0Y3Moc3Ry dWN0IGRybV9kZXZpY2UgKmRybSwgc3RydWN0IGRldmljZSAqZGV2KQ0KPiAgew0KPiAgCXN0cnVj dCBtdGtfZHJtX3ByaXZhdGUgKnByaXZhdGUgPSBkcm0tPmRldl9wcml2YXRlOw0KPiAgCWNvbnN0 IHN0cnVjdCBtdGtfbW1zeXNfZHJpdmVyX2RhdGEgKmRhdGE7DQo+ICAJc3RydWN0IG10a19kcm1f cHJpdmF0ZSAqcHJpdl9uOw0KPiAtCWludCBpID0gMCwgajsNCj4gIAlpbnQgcmV0Ow0KPiArCWlu dCBpID0gMCwgaiwgY291bnQgPSAwOw0KPiArCWJvb2wgZm91bmQgPSBmYWxzZTsNCj4gIA0KPiAg CWZvciAoaiA9IDA7IGogPCBwcml2YXRlLT5kYXRhLT5tbXN5c19kZXZfbnVtOyBqKyspIHsNCj4g IAkJcHJpdl9uID0gcHJpdmF0ZS0+YWxsX2RybV9wcml2YXRlW2pdOw0KPiAgCQlkYXRhID0gcHJp dl9uLT5kYXRhOw0KPiAgDQo+ICAJCWlmIChtdGtfZGRwX3BhdGhfYXZhaWxhYmxlKGRhdGEtPm1h aW5fcGF0aCwgZGF0YS0+bWFpbl9sZW4sDQo+IC0JCQkJCSAgIHByaXZfbi0+Y29tcF9ub2RlKSkg ew0KPiAtCQkJaWYgKG10a19kZHBfY29tcF9maW5kKGRldiwgZGF0YS0+bWFpbl9wYXRoLA0KPiAt CQkJCQkgICAgICBkYXRhLT5tYWluX2xlbiwNCj4gLQkJCQkJICAgICAgcHJpdl9uLT5kZHBfY29t cCkpDQo+IC0JCQkJcmV0dXJuIEJJVChpKTsNCj4gLQkJCWkrKzsNCj4gLQkJfQ0KPiArCQkJCQkg ICBwcml2X24tPmNvbXBfbm9kZSkpDQo+ICsJCQljb3VudCsrOw0KPiArDQo+ICsJCWlmIChtdGtf ZGRwX2NvbXBfZmluZChkZXYsIGRhdGEtPm1haW5fcGF0aCwgZGF0YS0+bWFpbl9sZW4sDQo+ICsJ CQkJICAgICAgcHJpdl9uLT5kZHBfY29tcCkpDQo+ICsJCQlmb3VuZCA9IHRydWU7DQo+ICsJfQ0K PiArDQo+ICsJaWYgKGNvdW50ID09IHByaXZhdGUtPmRhdGEtPm1tc3lzX2Rldl9udW0pIHsNCj4g KwkJaWYgKGZvdW5kKQ0KPiArCQkJcmV0dXJuIEJJVChpKTsNCj4gKwkJaSsrOw0KPiArCX0NCj4g Kw0KPiArCWNvdW50ID0gMDsNCj4gKwlmb3VuZCA9IGZhbHNlOw0KPiArDQo+ICsJZm9yIChqID0g MDsgaiA8IHByaXZhdGUtPmRhdGEtPm1tc3lzX2Rldl9udW07IGorKykgew0KPiArCQlwcml2X24g PSBwcml2YXRlLT5hbGxfZHJtX3ByaXZhdGVbal07DQo+ICsJCWRhdGEgPSBwcml2X24tPmRhdGE7 DQo+ICANCj4gIAkJaWYgKG10a19kZHBfcGF0aF9hdmFpbGFibGUoZGF0YS0+ZXh0X3BhdGgsIGRh dGEtPmV4dF9sZW4sDQo+IC0JCQkJCSAgIHByaXZfbi0+Y29tcF9ub2RlKSkgew0KPiAtCQkJaWYg KG10a19kZHBfY29tcF9maW5kKGRldiwgZGF0YS0+ZXh0X3BhdGgsDQo+IC0JCQkJCSAgICAgIGRh dGEtPmV4dF9sZW4sDQo+IC0JCQkJCSAgICAgIHByaXZfbi0+ZGRwX2NvbXApKQ0KPiAtCQkJCXJl dHVybiBCSVQoaSk7DQo+IC0JCQlpKys7DQo+IC0JCX0NCj4gKwkJCQkJICAgcHJpdl9uLT5jb21w X25vZGUpKQ0KPiArCQkJY291bnQrKzsNCj4gKw0KPiArCQlpZiAobXRrX2RkcF9jb21wX2ZpbmQo ZGV2LCBkYXRhLT5leHRfcGF0aCwgZGF0YS0+ZXh0X2xlbiwNCj4gKwkJCQkgICAgICBwcml2X24t PmRkcF9jb21wKSkNCj4gKwkJCWZvdW5kID0gdHJ1ZTsNCj4gKwl9DQo+ICsNCj4gKwlpZiAoY291 bnQgPT0gcHJpdmF0ZS0+ZGF0YS0+bW1zeXNfZGV2X251bSkgew0KPiArCQlpZiAoZm91bmQpDQo+ ICsJCQlyZXR1cm4gQklUKGkpOw0KPiArCQlpKys7DQo+ICsJfQ0KPiArDQo+ICsJY291bnQgPSAw Ow0KPiArCWZvdW5kID0gZmFsc2U7DQo+ICsNCj4gKwlmb3IgKGogPSAwOyBqIDwgcHJpdmF0ZS0+ ZGF0YS0+bW1zeXNfZGV2X251bTsgaisrKSB7DQo+ICsJCXByaXZfbiA9IHByaXZhdGUtPmFsbF9k cm1fcHJpdmF0ZVtqXTsNCj4gKwkJZGF0YSA9IHByaXZfbi0+ZGF0YTsNCj4gIA0KPiAgCQlpZiAo bXRrX2RkcF9wYXRoX2F2YWlsYWJsZShkYXRhLT50aGlyZF9wYXRoLCBkYXRhLT50aGlyZF9sZW4s DQo+IC0JCQkJCSAgIHByaXZfbi0+Y29tcF9ub2RlKSkgew0KPiAtCQkJaWYgKG10a19kZHBfY29t cF9maW5kKGRldiwgZGF0YS0+dGhpcmRfcGF0aCwNCj4gLQkJCQkJICAgICAgZGF0YS0+dGhpcmRf bGVuLA0KPiAtCQkJCQkgICAgICBwcml2X24tPmRkcF9jb21wKSkNCj4gLQkJCQlyZXR1cm4gQklU KGkpOw0KPiAtCQkJaSsrOw0KPiAtCQl9DQo+ICsJCQkJCXByaXZfbi0+Y29tcF9ub2RlKSkNCj4g KwkJCWNvdW50Kys7DQo+ICsNCj4gKwkJaWYgKG10a19kZHBfY29tcF9maW5kKGRldiwgZGF0YS0+ dGhpcmRfcGF0aCwgZGF0YS0+dGhpcmRfbGVuLA0KPiArCQkJCSAgICAgIHByaXZfbi0+ZGRwX2Nv bXApKQ0KPiArCQkJZm91bmQgPSB0cnVlOw0KPiArCX0NCj4gKw0KPiArCWlmIChjb3VudCA9PSBw cml2YXRlLT5kYXRhLT5tbXN5c19kZXZfbnVtKSB7DQo+ICsJCWlmIChmb3VuZCkNCj4gKwkJCXJl dHVybiBCSVQoaSk7DQo+ICsJCWkrKzsNCj4gIAl9DQo+ICANCj4gIAlyZXQgPSBtdGtfZGRwX2Nv bXBfZmluZF9pbl9yb3V0ZShkZXYsDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVk aWF0ZWsvbXRrX2RkcF9jb21wLmggYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RkcF9j b21wLmgNCj4gaW5kZXggZWY2NGNlN2EwNzFmLi5iYWRiNDJiZDRmN2MgMTAwNjQ0DQo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGRwX2NvbXAuaA0KPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RkcF9jb21wLmgNCj4gQEAgLTQwLDYgKzQwLDcgQEAgZW51 bSBtdGtfZGRwX2NvbXBfdHlwZSB7DQo+ICAJTVRLX0RJU1BfUFdNLA0KPiAgCU1US19ESVNQX1JE TUEsDQo+ICAJTVRLX0RJU1BfVUZPRSwNCj4gKwlNVEtfRElTUF9WSVJUVUFMLA0KPiAgCU1US19E SVNQX1dETUEsDQo+ICAJTVRLX0RQSSwNCj4gIAlNVEtfRFBfSU5URiwNCj4gQEAgLTQ3LDYgKzQ4 LDcgQEAgZW51bSBtdGtfZGRwX2NvbXBfdHlwZSB7DQo+ICAJTVRLX09WTF9CTEVOREVSLA0KPiAg CU1US19PVkxfRVhETUEsDQo+ICAJTVRLX09WTF9PVVRQUk9DLA0KPiArCU1US19WRElTUF9BTywN Cj4gIAlNVEtfRERQX0NPTVBfVFlQRV9NQVgsDQo+ICB9Ow0KPiAgDQo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9t ZWRpYXRlay9tdGtfZHJtX2Rydi5jDQo+IGluZGV4IDc1MjZiYzM4YmNjNy4uMDY2NWE2ZmViNTQ2 IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuYw0K PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuYw0KPiBAQCAtMTkz LDYgKzE5MywxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG10a19kcm1fcm91dGUgbXQ4MTg4X210 a19kZHBfbWFpbl9yb3V0ZXNbXSA9IHsNCj4gIAl7MCwgRERQX0NPTVBPTkVOVF9EU0kwfSwNCj4g IH07DQo+ICANCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2RybV9yb3V0ZSBtdDgxOTZfbXRr X2RkcF9yb3V0ZXNbXSA9IHsNCj4gKwl7MiwgRERQX0NPTVBPTkVOVF9EU0kwfSwNCj4gK307DQo+ ICsNCj4gIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgbXQ4MTkyX210a19kZHBfbWFpbltdID0g ew0KPiAgCUREUF9DT01QT05FTlRfT1ZMMCwNCj4gIAlERFBfQ09NUE9ORU5UX09WTF8yTDAsDQo+ IEBAIC0yMzEsNiArMjM1LDUwIEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgbXQ4MTk1X210 a19kZHBfZXh0W10gPSB7DQo+ICAJRERQX0NPTVBPTkVOVF9EUF9JTlRGMSwNCj4gIH07DQo+ICAN Cj4gK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgbXQ4MTk2X210a19kZHBfb3ZsMF9tYWluW10g PSB7DQo+ICsJRERQX0NPTVBPTkVOVF9EUk1fT1ZMU1lTX0FEQVBUT1IwLA0KPiArCUREUF9DT01Q T05FTlRfT1ZMMF9ETE9fQVNZTkM1LA0KPiArfTsNCg0KU2VwYXJhdGUgTVQ4MTk2IHBhcnQgdG8g YW5vdGhlciBwYXRjaCB3aGljaCBhZGQgc3VwcG9ydCBNVDgxOTYuDQpMZXQgdGhpcyBwYXRjaCBu b3QgcmVsYXRlZCB0byBzcGVjaWZpYyBTb0MuDQoNClJlZ2FyZHMsDQpDSw0KDQo+ICsNCj4gK3N0 YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgbXQ4MTk2X210a19kZHBfZGlzcDBfbWFpbltdID0gew0K PiArCUREUF9DT01QT05FTlRfRExJX0FTWU5DMCwNCj4gKwlERFBfQ09NUE9ORU5UX0RMT19BU1lO QzEsDQo+ICt9Ow0KPiArDQo+ICtzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IG10ODE5Nl9tdGtf ZGRwX2Rpc3AxX21haW5bXSA9IHsNCj4gKwlERFBfQ09NUE9ORU5UX0RMSV9BU1lOQzIxLA0KPiAr CUREUF9DT01QT05FTlRfRFZPMCwNCj4gK307DQo+ICsNCj4gK3N0YXRpYyBjb25zdCB1bnNpZ25l ZCBpbnQgbXQ4MTk2X210a19kZHBfb3ZsMF9leHRbXSA9IHsNCj4gKwlERFBfQ09NUE9ORU5UX0RS TV9PVkxTWVNfQURBUFRPUjEsDQo+ICsJRERQX0NPTVBPTkVOVF9PVkwwX0RMT19BU1lOQzYsDQo+ ICt9Ow0KPiArDQo+ICtzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IG10ODE5Nl9tdGtfZGRwX2Rp c3AwX2V4dFtdID0gew0KPiArCUREUF9DT01QT05FTlRfRExJX0FTWU5DMSwNCj4gKwlERFBfQ09N UE9ORU5UX0RMT19BU1lOQzIsDQo+ICt9Ow0KPiArDQo+ICtzdGF0aWMgY29uc3QgdW5zaWduZWQg aW50IG10ODE5Nl9tdGtfZGRwX2Rpc3AxX2V4dFtdID0gew0KPiArCUREUF9DT01QT05FTlRfRExJ X0FTWU5DMjIsDQo+ICsJRERQX0NPTVBPTkVOVF9EUF9JTlRGMCwNCj4gK307DQo+ICsNCj4gK3N0 YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgbXQ4MTk2X210a19kZHBfb3ZsMV90aGlyZFtdID0gew0K PiArCUREUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMiwNCj4gKwlERFBfQ09NUE9ORU5U X09WTDFfRExPX0FTWU5DNSwNCj4gK307DQo+ICsNCj4gK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBp bnQgbXQ4MTk2X210a19kZHBfZGlzcDBfdGhpcmRbXSA9IHsNCj4gKwlERFBfQ09NUE9ORU5UX0RM SV9BU1lOQzgsDQo+ICsJRERQX0NPTVBPTkVOVF9ETE9fQVNZTkMzLA0KPiArfTsNCj4gKw0KPiAr c3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBtdDgxOTZfbXRrX2RkcF9kaXNwMV90aGlyZFtdID0g ew0KPiArCUREUF9DT01QT05FTlRfRExJX0FTWU5DMjMsDQo+ICt9Ow0KPiArDQo+ICBzdGF0aWMg Y29uc3Qgc3RydWN0IG10a19tbXN5c19kcml2ZXJfZGF0YSBtdDI3MDFfbW1zeXNfZHJpdmVyX2Rh dGEgPSB7DQo+ICAJLm1haW5fcGF0aCA9IG10MjcwMV9tdGtfZGRwX21haW4sDQo+ICAJLm1haW5f bGVuID0gQVJSQVlfU0laRShtdDI3MDFfbXRrX2RkcF9tYWluKSwNCj4gQEAgLTMyNyw2ICszNzUs NjcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfbW1zeXNfZHJpdmVyX2RhdGEgbXQ4MTk1X3Zk b3N5czFfZHJpdmVyX2RhdGEgPSB7DQo+ICAJLm1pbl9oZWlnaHQgPSAxLA0KPiAgfTsNCj4gIA0K PiArc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfbW1zeXNfZHJpdmVyX2RhdGEgbXQ4MTk2X2Rpc3Bz eXMwX2RyaXZlcl9kYXRhID0gew0KPiArCS5tYWluX3BhdGggPSBtdDgxOTZfbXRrX2RkcF9kaXNw MF9tYWluLA0KPiArCS5tYWluX2xlbiA9IEFSUkFZX1NJWkUobXQ4MTk2X210a19kZHBfZGlzcDBf bWFpbiksDQo+ICsJLm1haW5fb3JkZXIgPSAxLA0KPiArCS5leHRfcGF0aCA9IG10ODE5Nl9tdGtf ZGRwX2Rpc3AwX2V4dCwNCj4gKwkuZXh0X2xlbiA9IEFSUkFZX1NJWkUobXQ4MTk2X210a19kZHBf ZGlzcDBfZXh0KSwNCj4gKwkuZXh0X29yZGVyID0gMSwNCj4gKwkudGhpcmRfcGF0aCA9IG10ODE5 Nl9tdGtfZGRwX2Rpc3AwX3RoaXJkLA0KPiArCS50aGlyZF9sZW4gPSBBUlJBWV9TSVpFKG10ODE5 Nl9tdGtfZGRwX2Rpc3AwX3RoaXJkKSwNCj4gKwkudGhpcmRfb3JkZXIgPSAxLA0KPiArCS5tbXN5 c19pZCA9IERJU1BTWVMwLA0KPiArCS5tbXN5c19kZXZfbnVtID0gNCwNCj4gKwkubWF4X3dpZHRo ID0gODE5MSwNCj4gKwkubWluX3dpZHRoID0gMiwgLyogMi1waXhlbCBhbGlnbiB3aGVuIGV0aGRy IGlzIGJ5cGFzc2VkICovDQo+ICsJLm1pbl9oZWlnaHQgPSAxLA0KPiArfTsNCj4gKw0KPiArc3Rh dGljIGNvbnN0IHN0cnVjdCBtdGtfbW1zeXNfZHJpdmVyX2RhdGEgbXQ4MTk2X2Rpc3BzeXMxX2Ry aXZlcl9kYXRhID0gew0KPiArCS5tYWluX3BhdGggPSBtdDgxOTZfbXRrX2RkcF9kaXNwMV9tYWlu LA0KPiArCS5tYWluX2xlbiA9IEFSUkFZX1NJWkUobXQ4MTk2X210a19kZHBfZGlzcDFfbWFpbiks DQo+ICsJLm1haW5fb3JkZXIgPSAyLA0KPiArCS5leHRfcGF0aCA9IG10ODE5Nl9tdGtfZGRwX2Rp c3AxX2V4dCwNCj4gKwkuZXh0X2xlbiA9IEFSUkFZX1NJWkUobXQ4MTk2X210a19kZHBfZGlzcDFf ZXh0KSwNCj4gKwkuZXh0X29yZGVyID0gMiwNCj4gKwkudGhpcmRfcGF0aCA9IG10ODE5Nl9tdGtf ZGRwX2Rpc3AxX3RoaXJkLA0KPiArCS50aGlyZF9sZW4gPSBBUlJBWV9TSVpFKG10ODE5Nl9tdGtf ZGRwX2Rpc3AxX3RoaXJkKSwNCj4gKwkuY29ubl9yb3V0ZXMgPSBtdDgxOTZfbXRrX2RkcF9yb3V0 ZXMsDQo+ICsJLm51bV9jb25uX3JvdXRlcyA9IEFSUkFZX1NJWkUobXQ4MTk2X210a19kZHBfcm91 dGVzKSwNCj4gKwkudGhpcmRfb3JkZXIgPSAyLA0KPiArCS5tbXN5c19pZCA9IERJU1BTWVMxLA0K PiArCS5tbXN5c19kZXZfbnVtID0gNCwNCj4gKwkubWF4X3dpZHRoID0gODE5MSwNCj4gKwkubWlu X3dpZHRoID0gMiwgLyogMi1waXhlbCBhbGlnbiB3aGVuIGV0aGRyIGlzIGJ5cGFzc2VkICovDQo+ ICsJLm1pbl9oZWlnaHQgPSAxLA0KPiArfTsNCj4gKw0KPiArc3RhdGljIGNvbnN0IHN0cnVjdCBt dGtfbW1zeXNfZHJpdmVyX2RhdGEgbXQ4MTk2X292bHN5czBfZHJpdmVyX2RhdGEgPSB7DQo+ICsJ Lm1haW5fcGF0aCA9IG10ODE5Nl9tdGtfZGRwX292bDBfbWFpbiwNCj4gKwkubWFpbl9sZW4gPSBB UlJBWV9TSVpFKG10ODE5Nl9tdGtfZGRwX292bDBfbWFpbiksDQo+ICsJLm1haW5fb3JkZXIgPSAw LA0KPiArCS5leHRfcGF0aCA9IG10ODE5Nl9tdGtfZGRwX292bDBfZXh0LA0KPiArCS5leHRfbGVu ID0gQVJSQVlfU0laRShtdDgxOTZfbXRrX2RkcF9vdmwwX2V4dCksDQo+ICsJLmV4dF9vcmRlciA9 IDAsDQo+ICsJLm1tc3lzX2lkID0gT1ZMU1lTMCwNCj4gKwkubW1zeXNfZGV2X251bSA9IDQsDQo+ ICsJLm1heF93aWR0aCA9IDgxOTEsDQo+ICsJLm1pbl93aWR0aCA9IDIsIC8qIDItcGl4ZWwgYWxp Z24gd2hlbiBldGhkciBpcyBieXBhc3NlZCAqLw0KPiArCS5taW5faGVpZ2h0ID0gMSwNCj4gK307 DQo+ICsNCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX21tc3lzX2RyaXZlcl9kYXRhIG10ODE5 Nl9vdmxzeXMxX2RyaXZlcl9kYXRhID0gew0KPiArCS50aGlyZF9wYXRoID0gbXQ4MTk2X210a19k ZHBfb3ZsMV90aGlyZCwNCj4gKwkudGhpcmRfbGVuID0gQVJSQVlfU0laRShtdDgxOTZfbXRrX2Rk cF9vdmwxX3RoaXJkKSwNCj4gKwkudGhpcmRfb3JkZXIgPSAwLA0KPiArCS5tbXN5c19pZCA9IE9W TFNZUzEsDQo+ICsJLm1tc3lzX2Rldl9udW0gPSA0LA0KPiArCS5tYXhfd2lkdGggPSA4MTkxLA0K PiArCS5taW5fd2lkdGggPSAyLCAvKiAyLXBpeGVsIGFsaWduIHdoZW4gZXRoZHIgaXMgYnlwYXNz ZWQgKi8NCj4gKwkubWluX2hlaWdodCA9IDEsDQo+ICt9Ow0KPiArDQo+ICBzdGF0aWMgY29uc3Qg c3RydWN0IG9mX2RldmljZV9pZCBtdGtfZHJtX29mX2lkc1tdID0gew0KPiAgCXsgLmNvbXBhdGli bGUgPSAibWVkaWF0ZWssbXQyNzAxLW1tc3lzIiwNCj4gIAkgIC5kYXRhID0gJm10MjcwMV9tbXN5 c19kcml2ZXJfZGF0YX0sDQo+IEBAIC0zNTQsNiArNDYzLDE0IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3Qgb2ZfZGV2aWNlX2lkIG10a19kcm1fb2ZfaWRzW10gPSB7DQo+ICAJICAuZGF0YSA9ICZtdDgx OTVfdmRvc3lzMF9kcml2ZXJfZGF0YX0sDQo+ICAJeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxt dDgxOTUtdmRvc3lzMSIsDQo+ICAJICAuZGF0YSA9ICZtdDgxOTVfdmRvc3lzMV9kcml2ZXJfZGF0 YX0sDQo+ICsJeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDgxOTYtZGlzcHN5czAiLA0KPiAr CSAgLmRhdGEgPSAmbXQ4MTk2X2Rpc3BzeXMwX2RyaXZlcl9kYXRhfSwNCj4gKwl7IC5jb21wYXRp YmxlID0gIm1lZGlhdGVrLG10ODE5Ni1kaXNwc3lzMSIsDQo+ICsJICAuZGF0YSA9ICZtdDgxOTZf ZGlzcHN5czFfZHJpdmVyX2RhdGF9LA0KPiArCXsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4 MTk2LW92bHN5czAiLA0KPiArCSAgLmRhdGEgPSAmbXQ4MTk2X292bHN5czBfZHJpdmVyX2RhdGF9 LA0KPiArCXsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4MTk2LW92bHN5czEiLA0KPiArCSAg LmRhdGEgPSAmbXQ4MTk2X292bHN5czFfZHJpdmVyX2RhdGF9LA0KPiAgCXsgfQ0KPiAgfTsNCj4g IE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG10a19kcm1fb2ZfaWRzKTsNCj4gQEAgLTM2OCw3ICs0 ODUsNyBAQCBzdGF0aWMgaW50IG10a19kcm1fbWF0Y2goc3RydWN0IGRldmljZSAqZGV2LCBjb25z dCB2b2lkICpkYXRhKQ0KPiAgc3RhdGljIGJvb2wgbXRrX2RybV9nZXRfYWxsX2RybV9wcml2KHN0 cnVjdCBkZXZpY2UgKmRldikNCj4gIHsNCj4gIAlzdHJ1Y3QgbXRrX2RybV9wcml2YXRlICpkcm1f cHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KPiAtCXN0cnVjdCBtdGtfZHJtX3ByaXZhdGUg KmFsbF9kcm1fcHJpdltNQVhfQ1JUQ107DQo+ICsJc3RydWN0IG10a19kcm1fcHJpdmF0ZSAqYWxs X2RybV9wcml2W01BWF9NTVNZU10gPSB7TlVMTH07DQo+ICAJc3RydWN0IG10a19kcm1fcHJpdmF0 ZSAqdGVtcF9kcm1fcHJpdjsNCj4gIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKnBoYW5kbGUgPSBkZXYt PnBhcmVudC0+b2Zfbm9kZTsNCj4gIAljb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkICpvZl9pZDsN Cj4gQEAgLTM5NSwyMyArNTEyLDE4IEBAIHN0YXRpYyBib29sIG10a19kcm1fZ2V0X2FsbF9kcm1f cHJpdihzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ICAJCWlmICghdGVtcF9kcm1fcHJpdikNCj4gIAkJ CWNvbnRpbnVlOw0KPiAgDQo+IC0JCWlmICh0ZW1wX2RybV9wcml2LT5kYXRhLT5tYWluX2xlbikN Cj4gLQkJCWFsbF9kcm1fcHJpdltDUlRDX01BSU5dID0gdGVtcF9kcm1fcHJpdjsNCj4gLQkJZWxz ZSBpZiAodGVtcF9kcm1fcHJpdi0+ZGF0YS0+ZXh0X2xlbikNCj4gLQkJCWFsbF9kcm1fcHJpdltD UlRDX0VYVF0gPSB0ZW1wX2RybV9wcml2Ow0KPiAtCQllbHNlIGlmICh0ZW1wX2RybV9wcml2LT5k YXRhLT50aGlyZF9sZW4pDQo+IC0JCQlhbGxfZHJtX3ByaXZbQ1JUQ19USElSRF0gPSB0ZW1wX2Ry bV9wcml2Ow0KPiArCQlhbGxfZHJtX3ByaXZbdGVtcF9kcm1fcHJpdi0+ZGF0YS0+bW1zeXNfaWRd ID0gdGVtcF9kcm1fcHJpdjsNCj4gIA0KPiAgCQlpZiAodGVtcF9kcm1fcHJpdi0+bXRrX2RybV9i b3VuZCkNCj4gIAkJCWNudCsrOw0KPiAgDQo+IC0JCWlmIChjbnQgPT0gTUFYX0NSVEMpDQo+ICsJ CWlmIChjbnQgPT0gdGVtcF9kcm1fcHJpdi0+ZGF0YS0+bW1zeXNfZGV2X251bSkNCj4gIAkJCWJy ZWFrOw0KPiAgCX0NCj4gIA0KPiAgCWlmIChkcm1fcHJpdi0+ZGF0YS0+bW1zeXNfZGV2X251bSA9 PSBjbnQpIHsNCj4gLQkJZm9yIChpID0gMDsgaSA8IGNudDsgaSsrKQ0KPiAtCQkJZm9yIChqID0g MDsgaiA8IGNudDsgaisrKQ0KPiArCQlmb3IgKGkgPSAwOyBpIDwgTUFYX01NU1lTOyBpKyspDQo+ ICsJCQlmb3IgKGogPSAwOyBqIDwgTUFYX01NU1lTOyBqKyspDQo+ICAJCQkJYWxsX2RybV9wcml2 W2pdLT5hbGxfZHJtX3ByaXZhdGVbaV0gPSBhbGxfZHJtX3ByaXZbaV07DQo+ICANCj4gIAkJcmV0 dXJuIHRydWU7DQo+IEBAIC00OTgsNyArNjEwLDEwIEBAIHN0YXRpYyBpbnQgbXRrX2RybV9rbXNf aW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZHJtKQ0KPiAgCWRybS0+bW9kZV9jb25maWcuZnVuY3Mg PSAmbXRrX2RybV9tb2RlX2NvbmZpZ19mdW5jczsNCj4gIAlkcm0tPm1vZGVfY29uZmlnLmhlbHBl cl9wcml2YXRlID0gJm10a19kcm1fbW9kZV9jb25maWdfaGVscGVyczsNCj4gIA0KPiAtCWZvciAo aSA9IDA7IGkgPCBwcml2YXRlLT5kYXRhLT5tbXN5c19kZXZfbnVtOyBpKyspIHsNCj4gKwlmb3Ig KGkgPSAwOyBpIDwgTUFYX01NU1lTOyBpKyspIHsNCj4gKwkJaWYgKCFwcml2YXRlLT5hbGxfZHJt X3ByaXZhdGVbaV0pDQo+ICsJCQljb250aW51ZTsNCj4gKw0KPiAgCQlkcm0tPmRldl9wcml2YXRl ID0gcHJpdmF0ZS0+YWxsX2RybV9wcml2YXRlW2ldOw0KPiAgCQlyZXQgPSBjb21wb25lbnRfYmlu ZF9hbGwocHJpdmF0ZS0+YWxsX2RybV9wcml2YXRlW2ldLT5kZXYsIGRybSk7DQo+ICAJCWlmIChy ZXQpDQo+IEBAIC01MjEsOCArNjM2LDEwIEBAIHN0YXRpYyBpbnQgbXRrX2RybV9rbXNfaW5pdChz dHJ1Y3QgZHJtX2RldmljZSAqZHJtKQ0KPiAgCSAqICAgIHRoaXJkIHBhdGguDQo+ICAJICovDQo+ ICAJZm9yIChpID0gMDsgaSA8IE1BWF9DUlRDOyBpKyspIHsNCj4gLQkJZm9yIChqID0gMDsgaiA8 IHByaXZhdGUtPmRhdGEtPm1tc3lzX2Rldl9udW07IGorKykgew0KPiArCQlmb3IgKGogPSAwOyBq IDwgTUFYX01NU1lTOyBqKyspIHsNCj4gIAkJCXByaXZfbiA9IHByaXZhdGUtPmFsbF9kcm1fcHJp dmF0ZVtqXTsNCj4gKwkJCWlmICghcHJpdl9uKQ0KPiArCQkJCWNvbnRpbnVlOw0KPiAgDQo+ICAJ CQlpZiAocHJpdl9uLT5kYXRhLT5tYXhfd2lkdGgpDQo+ICAJCQkJZHJtLT5tb2RlX2NvbmZpZy5t YXhfd2lkdGggPSBwcml2X24tPmRhdGEtPm1heF93aWR0aDsNCj4gQEAgLTUzNCwyOCArNjUxLDIz IEBAIHN0YXRpYyBpbnQgbXRrX2RybV9rbXNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZHJtKQ0K PiAgCQkJCWRybS0+bW9kZV9jb25maWcubWluX2hlaWdodCA9IHByaXZfbi0+ZGF0YS0+bWluX2hl aWdodDsNCj4gIA0KPiAgCQkJaWYgKGkgPT0gQ1JUQ19NQUlOICYmIHByaXZfbi0+ZGF0YS0+bWFp bl9sZW4pIHsNCj4gLQkJCQlyZXQgPSBtdGtfY3J0Y19jcmVhdGUoZHJtLCBwcml2X24tPmRhdGEt Pm1haW5fcGF0aCwNCj4gLQkJCQkJCSAgICAgIHByaXZfbi0+ZGF0YS0+bWFpbl9sZW4sIGosDQo+ IC0JCQkJCQkgICAgICBwcml2X24tPmRhdGEtPmNvbm5fcm91dGVzLA0KPiAtCQkJCQkJICAgICAg cHJpdl9uLT5kYXRhLT5udW1fY29ubl9yb3V0ZXMpOw0KPiArCQkJCXJldCA9IG10a19jcnRjX2Ny ZWF0ZShkcm0sIENSVENfTUFJTik7DQo+ICAJCQkJaWYgKHJldCkNCj4gIAkJCQkJZ290byBlcnJf Y29tcG9uZW50X3VuYmluZDsNCj4gIA0KPiAtCQkJCWNvbnRpbnVlOw0KPiArCQkJCWJyZWFrOw0K PiAgCQkJfSBlbHNlIGlmIChpID09IENSVENfRVhUICYmIHByaXZfbi0+ZGF0YS0+ZXh0X2xlbikg ew0KPiAtCQkJCXJldCA9IG10a19jcnRjX2NyZWF0ZShkcm0sIHByaXZfbi0+ZGF0YS0+ZXh0X3Bh dGgsDQo+IC0JCQkJCQkgICAgICBwcml2X24tPmRhdGEtPmV4dF9sZW4sIGosIE5VTEwsIDApOw0K PiArCQkJCXJldCA9IG10a19jcnRjX2NyZWF0ZShkcm0sIENSVENfRVhUKTsNCj4gIAkJCQlpZiAo cmV0KQ0KPiAgCQkJCQlnb3RvIGVycl9jb21wb25lbnRfdW5iaW5kOw0KPiAgDQo+IC0JCQkJY29u dGludWU7DQo+ICsJCQkJYnJlYWs7DQo+ICAJCQl9IGVsc2UgaWYgKGkgPT0gQ1JUQ19USElSRCAm JiBwcml2X24tPmRhdGEtPnRoaXJkX2xlbikgew0KPiAtCQkJCXJldCA9IG10a19jcnRjX2NyZWF0 ZShkcm0sIHByaXZfbi0+ZGF0YS0+dGhpcmRfcGF0aCwNCj4gLQkJCQkJCSAgICAgIHByaXZfbi0+ ZGF0YS0+dGhpcmRfbGVuLCBqLCBOVUxMLCAwKTsNCj4gKwkJCQlyZXQgPSBtdGtfY3J0Y19jcmVh dGUoZHJtLCBDUlRDX1RISVJEKTsNCj4gIAkJCQlpZiAocmV0KQ0KPiAgCQkJCQlnb3RvIGVycl9j b21wb25lbnRfdW5iaW5kOw0KPiAgDQo+IC0JCQkJY29udGludWU7DQo+ICsJCQkJYnJlYWs7DQo+ ICAJCQl9DQo+ICAJCX0NCj4gIAl9DQo+IEBAIC01NzQsOCArNjg2LDkgQEAgc3RhdGljIGludCBt dGtfZHJtX2ttc19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkcm0pDQo+ICAJCWdvdG8gZXJyX2Nv bXBvbmVudF91bmJpbmQ7DQo+ICAJfQ0KPiAgDQo+IC0JZm9yIChpID0gMDsgaSA8IHByaXZhdGUt PmRhdGEtPm1tc3lzX2Rldl9udW07IGkrKykNCj4gLQkJcHJpdmF0ZS0+YWxsX2RybV9wcml2YXRl W2ldLT5kbWFfZGV2ID0gZG1hX2RldjsNCj4gKwlmb3IgKGkgPSAwOyBpIDwgTUFYX01NU1lTOyBp KyspDQo+ICsJCWlmIChwcml2YXRlLT5hbGxfZHJtX3ByaXZhdGVbaV0pDQo+ICsJCQlwcml2YXRl LT5hbGxfZHJtX3ByaXZhdGVbaV0tPmRtYV9kZXYgPSBkbWFfZGV2Ow0KPiAgDQo+ICAJLyoNCj4g IAkgKiBDb25maWd1cmUgdGhlIERNQSBzZWdtZW50IHNpemUgdG8gbWFrZSBzdXJlIHdlIGdldCBj b250aWd1b3VzIElPVkENCj4gQEAgLTU5MywxMSArNzA2LDEzIEBAIHN0YXRpYyBpbnQgbXRrX2Ry bV9rbXNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZHJtKQ0KPiAgCXJldHVybiAwOw0KPiAgDQo+ ICBlcnJfY29tcG9uZW50X3VuYmluZDoNCj4gLQlmb3IgKGkgPSAwOyBpIDwgcHJpdmF0ZS0+ZGF0 YS0+bW1zeXNfZGV2X251bTsgaSsrKQ0KPiAtCQljb21wb25lbnRfdW5iaW5kX2FsbChwcml2YXRl LT5hbGxfZHJtX3ByaXZhdGVbaV0tPmRldiwgZHJtKTsNCj4gKwlmb3IgKGkgPSAwOyBpIDwgTUFY X01NU1lTOyBpKyspDQo+ICsJCWlmIChwcml2YXRlLT5hbGxfZHJtX3ByaXZhdGVbaV0pDQo+ICsJ CQljb21wb25lbnRfdW5iaW5kX2FsbChwcml2YXRlLT5hbGxfZHJtX3ByaXZhdGVbaV0tPmRldiwg ZHJtKTsNCj4gIHB1dF9tdXRleF9kZXY6DQo+IC0JZm9yIChpID0gMDsgaSA8IHByaXZhdGUtPmRh dGEtPm1tc3lzX2Rldl9udW07IGkrKykNCj4gLQkJcHV0X2RldmljZShwcml2YXRlLT5hbGxfZHJt X3ByaXZhdGVbaV0tPm11dGV4X2Rldik7DQo+ICsJZm9yIChpID0gMDsgaSA8IE1BWF9NTVNZUzsg aSsrKQ0KPiArCQlpZiAocHJpdmF0ZS0+YWxsX2RybV9wcml2YXRlW2ldKQ0KPiArCQkJcHV0X2Rl dmljZShwcml2YXRlLT5hbGxfZHJtX3ByaXZhdGVbaV0tPm11dGV4X2Rldik7DQo+ICANCj4gIAly ZXR1cm4gcmV0Ow0KPiAgfQ0KPiBAQCAtNjYxLDYgKzc3NiwxOSBAQCBzdGF0aWMgaW50IG10a19k cm1fYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ICAJfQ0KPiAgDQo+ICAJcHJpdmF0ZS0+bXV0 ZXhfZGV2ID0gJnBkZXYtPmRldjsNCj4gKw0KPiArCWlmIChwcml2YXRlLT52ZGlzcF9hb19ub2Rl KSB7DQo+ICsJCXBkZXYgPSBvZl9maW5kX2RldmljZV9ieV9ub2RlKHByaXZhdGUtPnZkaXNwX2Fv X25vZGUpOw0KPiArCQlpZiAoIXBkZXYpIHsNCj4gKwkJCWRldl9lcnIoZGV2LCAiV2FpdGluZyBm b3IgdmRpc3BfYW8gZGV2aWNlICVwT0ZcbiIsDQo+ICsJCQkJcHJpdmF0ZS0+dmRpc3BfYW9fbm9k ZSk7DQo+ICsJCQlvZl9ub2RlX3B1dChwcml2YXRlLT5tdXRleF9ub2RlKTsNCj4gKwkJCW9mX25v ZGVfcHV0KHByaXZhdGUtPnZkaXNwX2FvX25vZGUpOw0KPiArCQkJcmV0dXJuIC1FUFJPQkVfREVG RVI7DQo+ICsJCX0NCj4gKwkJcHJpdmF0ZS0+dmRpc3BfYW9fZGV2ID0gJnBkZXYtPmRldjsNCj4g Kwl9DQo+ICsNCj4gIAlwcml2YXRlLT5tdGtfZHJtX2JvdW5kID0gdHJ1ZTsNCj4gIAlwcml2YXRl LT5kZXYgPSBkZXY7DQo+ICANCj4gQEAgLTY3Myw4ICs4MDEsOSBAQCBzdGF0aWMgaW50IG10a19k cm1fYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ICANCj4gIAlwcml2YXRlLT5kcm1fbWFzdGVy ID0gdHJ1ZTsNCj4gIAlkcm0tPmRldl9wcml2YXRlID0gcHJpdmF0ZTsNCj4gLQlmb3IgKGkgPSAw OyBpIDwgcHJpdmF0ZS0+ZGF0YS0+bW1zeXNfZGV2X251bTsgaSsrKQ0KPiAtCQlwcml2YXRlLT5h bGxfZHJtX3ByaXZhdGVbaV0tPmRybSA9IGRybTsNCj4gKwlmb3IgKGkgPSAwOyBpIDwgTUFYX01N U1lTOyBpKyspDQo+ICsJCWlmIChwcml2YXRlLT5hbGxfZHJtX3ByaXZhdGVbaV0pDQo+ICsJCQlw cml2YXRlLT5hbGxfZHJtX3ByaXZhdGVbaV0tPmRybSA9IGRybTsNCj4gIA0KPiAgCXJldCA9IG10 a19kcm1fa21zX2luaXQoZHJtKTsNCj4gIAlpZiAocmV0IDwgMCkNCj4gQEAgLTc3MSw2ICs5MDAs OCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtdGtfZGRwX2NvbXBfZHRfaWRz W10gPSB7DQo+ICAJICAuZGF0YSA9ICh2b2lkICopTVRLX0RJU1BfTVVURVggfSwNCj4gIAl7IC5j b21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODE5NS1kaXNwLW11dGV4IiwNCj4gIAkgIC5kYXRhID0g KHZvaWQgKilNVEtfRElTUF9NVVRFWCB9LA0KPiArCXsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWss bXQ4MTk2LWRpc3AtbXV0ZXgiLA0KPiArCSAgLmRhdGEgPSAodm9pZCAqKU1US19ESVNQX01VVEVY IH0sDQo+ICAJeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDgxNzMtZGlzcC1vZCIsDQo+ICAJ ICAuZGF0YSA9ICh2b2lkICopTVRLX0RJU1BfT0QgfSwNCj4gIAl7IC5jb21wYXRpYmxlID0gIm1l ZGlhdGVrLG10MjcwMS1kaXNwLW92bCIsDQo+IEBAIC04MzcsNiArOTY4LDggQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXRrX2RkcF9jb21wX2R0X2lkc1tdID0gew0KPiAgCSAg LmRhdGEgPSAodm9pZCAqKU1US19EU0kgfSwNCj4gIAl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVr LG10ODE4OC1kc2kiLA0KPiAgCSAgLmRhdGEgPSAodm9pZCAqKU1US19EU0kgfSwNCj4gKwl7IC5j b21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODE5Ni12ZGlzcC1hbyIsDQo+ICsJICAuZGF0YSA9ICh2 b2lkICopTVRLX1ZESVNQX0FPIH0sDQo+ICAJeyB9DQo+ICB9Ow0KPiAgDQo+IEBAIC0xMTExLDcg KzEyNDQsNyBAQCBzdGF0aWMgaW50IG10a19kcm1fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldikNCj4gIAkJcHJpdmF0ZS0+ZGF0YSA9IG10a19kcm1fZGF0YTsNCj4gIAl9Ow0KPiAg DQo+IC0JcHJpdmF0ZS0+YWxsX2RybV9wcml2YXRlID0gZGV2bV9rbWFsbG9jX2FycmF5KGRldiwg cHJpdmF0ZS0+ZGF0YS0+bW1zeXNfZGV2X251bSwNCj4gKwlwcml2YXRlLT5hbGxfZHJtX3ByaXZh dGUgPSBkZXZtX2ttYWxsb2NfYXJyYXkoZGV2LCBNQVhfTU1TWVMsDQo+ICAJCQkJCQkgICAgICBz aXplb2YoKnByaXZhdGUtPmFsbF9kcm1fcHJpdmF0ZSksDQo+ICAJCQkJCQkgICAgICBHRlBfS0VS TkVMKTsNCj4gIAlpZiAoIXByaXZhdGUtPmFsbF9kcm1fcHJpdmF0ZSkNCj4gQEAgLTExNjMsNiAr MTI5NiwyMiBAQCBzdGF0aWMgaW50IG10a19kcm1fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldikNCj4gIAkJY29tcG9uZW50X21hdGNoX2FkZChkZXYsICZtYXRjaCwgY29tcGFyZV9k ZXYsICZvdmxfYWRhcHRvci0+ZGV2KTsNCj4gIAl9DQo+ICANCj4gKwlpZiAobXRrX2RybV9maW5k X21tc3lzX2NvbXAocHJpdmF0ZSwgRERQX0NPTVBPTkVOVF9EUk1fT1ZMU1lTX0FEQVBUT1IyKSkg ew0KPiArCQlzdHJ1Y3QgbXRrX2RybV9vdmxzeXNfcHJpdmF0ZSBvdmxzeXNfcHJpdjsNCj4gKw0K PiArCQlvdmxzeXNfcHJpdi5tbXN5c19kZXYgPSBwcml2YXRlLT5tbXN5c19kZXY7DQo+ICsJCW92 bHN5c19wcml2LnVzZV9wYXRoID0NCj4gKwkJCW10a19kcm1fbW1zeXNfY29tcF9pbl9wYXRoKHBy aXZhdGUsIEREUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMik7DQo+ICsJCW92bF9hZGFw dG9yID0gcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyX2RhdGEoZGV2LCAibWVkaWF0ZWstZGlzcC1v dmxzeXMtYWRhcHRvciIsDQo+ICsJCQkJCQkJICAgIFBMQVRGT1JNX0RFVklEX0FVVE8sDQo+ICsJ CQkJCQkJICAgICh2b2lkICopJm92bHN5c19wcml2LA0KPiArCQkJCQkJCSAgICBzaXplb2Yoc3Ry dWN0IG10a19kcm1fb3Zsc3lzX3ByaXZhdGUpKTsNCj4gKwkJcHJpdmF0ZS0+ZGRwX2NvbXBbRERQ X0NPTVBPTkVOVF9EUk1fT1ZMU1lTX0FEQVBUT1IyXS5kZXYgPSAmb3ZsX2FkYXB0b3ItPmRldjsN Cj4gKwkJbXRrX2RkcF9jb21wX2luaXQoTlVMTCwgJnByaXZhdGUtPmRkcF9jb21wW0REUF9DT01Q T05FTlRfRFJNX09WTFNZU19BREFQVE9SMl0sDQo+ICsJCQkJICBERFBfQ09NUE9ORU5UX0RSTV9P VkxTWVNfQURBUFRPUjIpOw0KPiArCQljb21wb25lbnRfbWF0Y2hfYWRkKGRldiwgJm1hdGNoLCBj b21wYXJlX2RldiwgJm92bF9hZGFwdG9yLT5kZXYpOw0KPiArCX0NCj4gKw0KPiAgCS8qIEl0ZXJh dGUgb3ZlciBzaWJsaW5nIERJU1AgZnVuY3Rpb24gYmxvY2tzICovDQo+ICAJZm9yX2VhY2hfY2hp bGRfb2Zfbm9kZShwaGFuZGxlLT5wYXJlbnQsIG5vZGUpIHsNCj4gIAkJZW51bSBtdGtfZGRwX2Nv bXBfdHlwZSBjb21wX3R5cGU7DQo+IEBAIC0xMTg5LDYgKzEzMzgsMTIgQEAgc3RhdGljIGludCBt dGtfZHJtX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ICAJCQljb250aW51 ZTsNCj4gIAkJfQ0KPiAgDQo+ICsJCWlmIChjb21wX3R5cGUgPT0gTVRLX1ZESVNQX0FPKSB7DQo+ ICsJCQlwcml2YXRlLT52ZGlzcF9hb19ub2RlID0gb2Zfbm9kZV9nZXQobm9kZSk7DQo+ICsJCQlk ZXZfZGJnKGRldiwgImdldCB2ZGlzcF9hbyBub2RlIik7DQo+ICsJCQljb250aW51ZTsNCj4gKwkJ fQ0KPiArDQo+ICAJCWNvbXBfaWQgPSBtdGtfZGRwX2NvbXBfZ2V0X2lkKG5vZGUsIGNvbXBfdHlw ZSk7DQo+ICAJCWlmIChjb21wX2lkIDwgMCkgew0KPiAgCQkJZGV2X3dhcm4oZGV2LCAiU2tpcHBp bmcgdW5rbm93biBjb21wb25lbnQgJXBPRlxuIiwNCj4gQEAgLTEyNDEsNiArMTM5Niw5IEBAIHN0 YXRpYyBpbnQgbXRrX2RybV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPiAg DQo+ICAJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgcHJpdmF0ZSk7DQo+ICANCj4gKwlpZiAo IW1hdGNoKQ0KPiArCQlkcm1fb2ZfY29tcG9uZW50X21hdGNoX2FkZChkZXYsICZtYXRjaCwgY29t cG9uZW50X2NvbXBhcmVfb2YsIE5VTEwpOw0KPiArDQo+ICAJcmV0ID0gY29tcG9uZW50X21hc3Rl cl9hZGRfd2l0aF9tYXRjaChkZXYsICZtdGtfZHJtX29wcywgbWF0Y2gpOw0KPiAgCWlmIChyZXQp DQo+ICAJCWdvdG8gZXJyX3BtOw0KPiBAQCAtMTI2NCw2ICsxNDIyLDcgQEAgc3RhdGljIHZvaWQg bXRrX2RybV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4gIAljb21wb25l bnRfbWFzdGVyX2RlbCgmcGRldi0+ZGV2LCAmbXRrX2RybV9vcHMpOw0KPiAgCXBtX3J1bnRpbWVf ZGlzYWJsZSgmcGRldi0+ZGV2KTsNCj4gIAlvZl9ub2RlX3B1dChwcml2YXRlLT5tdXRleF9ub2Rl KTsNCj4gKwlvZl9ub2RlX3B1dChwcml2YXRlLT52ZGlzcF9hb19ub2RlKTsNCj4gIAlmb3IgKGkg PSAwOyBpIDwgRERQX0NPTVBPTkVOVF9EUk1fSURfTUFYOyBpKyspDQo+ICAJCW9mX25vZGVfcHV0 KHByaXZhdGUtPmNvbXBfbm9kZVtpXSk7DQo+ICB9DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9t dGtfZHJtX2Rydi5oDQo+IGluZGV4IGFhMTdlNzQzYTFkMC4uMzZjZmJmYTMwZmYyIDEwMDY0NA0K PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaA0KPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaA0KPiBAQCAtMTMsNyArMTMsOCBA QA0KPiAgI2RlZmluZSBERFBfQ09NUE9ORU5UX0RSTV9PVkxfQURBUFRPUiAoRERQX0NPTVBPTkVO VF9JRF9NQVggKyAxKQ0KPiAgI2RlZmluZSBERFBfQ09NUE9ORU5UX0RSTV9PVkxTWVNfQURBUFRP UjAgKEREUF9DT01QT05FTlRfRFJNX09WTF9BREFQVE9SICsgMSkNCj4gICNkZWZpbmUgRERQX0NP TVBPTkVOVF9EUk1fT1ZMU1lTX0FEQVBUT1IxIChERFBfQ09NUE9ORU5UX0RSTV9PVkxTWVNfQURB UFRPUjAgKyAxKQ0KPiAtI2RlZmluZSBERFBfQ09NUE9ORU5UX0RSTV9JRF9NQVggKEREUF9DT01Q T05FTlRfRFJNX09WTFNZU19BREFQVE9SMSArIDEpDQo+ICsjZGVmaW5lIEREUF9DT01QT05FTlRf RFJNX09WTFNZU19BREFQVE9SMiAoRERQX0NPTVBPTkVOVF9EUk1fT1ZMU1lTX0FEQVBUT1IxICsg MSkNCj4gKyNkZWZpbmUgRERQX0NPTVBPTkVOVF9EUk1fSURfTUFYIChERFBfQ09NUE9ORU5UX0RS TV9PVkxTWVNfQURBUFRPUjIgKyAxKQ0KPiAgDQo+ICBlbnVtIG10a19jcnRjX3BhdGggew0KPiAg CUNSVENfTUFJTiwNCj4gQEAgLTIyLDYgKzIzLDE0IEBAIGVudW0gbXRrX2NydGNfcGF0aCB7DQo+ ICAJTUFYX0NSVEMsDQo+ICB9Ow0KPiAgDQo+ICtlbnVtIG10a19kcm1fbW1zeXMgew0KPiArCURJ U1BTWVMwLA0KPiArCURJU1BTWVMxLA0KPiArCU9WTFNZUzAsDQo+ICsJT1ZMU1lTMSwNCj4gKwlN QVhfTU1TWVMsDQo+ICt9Ow0KPiArDQo+ICBzdHJ1Y3QgZGV2aWNlOw0KPiAgc3RydWN0IGRldmlj ZV9ub2RlOw0KPiAgc3RydWN0IGRybV9jcnRjOw0KPiBAQCAtMzgsMTAgKzQ3LDEzIEBAIHN0cnVj dCBtdGtfZHJtX3JvdXRlIHsNCj4gIHN0cnVjdCBtdGtfbW1zeXNfZHJpdmVyX2RhdGEgew0KPiAg CWNvbnN0IHVuc2lnbmVkIGludCAqbWFpbl9wYXRoOw0KPiAgCXVuc2lnbmVkIGludCBtYWluX2xl bjsNCj4gKwl1bnNpZ25lZCBpbnQgbWFpbl9vcmRlcjsNCj4gIAljb25zdCB1bnNpZ25lZCBpbnQg KmV4dF9wYXRoOw0KPiAgCXVuc2lnbmVkIGludCBleHRfbGVuOw0KPiArCXVuc2lnbmVkIGludCBl eHRfb3JkZXI7DQo+ICAJY29uc3QgdW5zaWduZWQgaW50ICp0aGlyZF9wYXRoOw0KPiAgCXVuc2ln bmVkIGludCB0aGlyZF9sZW47DQo+ICsJdW5zaWduZWQgaW50IHRoaXJkX29yZGVyOw0KPiAgCWNv bnN0IHN0cnVjdCBtdGtfZHJtX3JvdXRlICpjb25uX3JvdXRlczsNCj4gIAl1bnNpZ25lZCBpbnQg bnVtX2Nvbm5fcm91dGVzOw0KPiAgDQo+IEBAIC02Myw2ICs3NSw4IEBAIHN0cnVjdCBtdGtfZHJt X3ByaXZhdGUgew0KPiAgCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbXV0ZXhfbm9kZTsNCj4gIAlzdHJ1 Y3QgZGV2aWNlICptdXRleF9kZXY7DQo+ICAJc3RydWN0IGRldmljZSAqbW1zeXNfZGV2Ow0KPiAr CXN0cnVjdCBkZXZpY2Vfbm9kZSAqdmRpc3BfYW9fbm9kZTsNCj4gKwlzdHJ1Y3QgZGV2aWNlICp2 ZGlzcF9hb19kZXY7DQo+ICAJc3RydWN0IGRldmljZV9ub2RlICpjb21wX25vZGVbRERQX0NPTVBP TkVOVF9EUk1fSURfTUFYXTsNCj4gIAlzdHJ1Y3QgbXRrX2RkcF9jb21wIGRkcF9jb21wW0REUF9D T01QT05FTlRfRFJNX0lEX01BWF07DQo+ICAJc3RydWN0IG10a19tbXN5c19kcml2ZXJfZGF0YSAq ZGF0YTsNCg0K --__=_Part_Boundary_009_1227443890.668885703 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PGh0bWw+PGJvZHk+PHA+DQo8cHJlPg0KSGksJiMzMjtQYXVsOg0KDQpPbiYjMzI7RnJpLCYjMzI7 MjAyNS0wMS0xMCYjMzI7YXQmIzMyOzIwOjM0JiMzMjsrMDgwMCwmIzMyO3BhdWwtcGwuY2hlbiYj MzI7d3JvdGU6DQomZ3Q7JiMzMjtGcm9tOiYjMzI7JnF1b3Q7TmFuY3kuTGluJnF1b3Q7JiMzMjsm bHQ7bmFuY3kubGluQG1lZGlhdGVrLmNvbSZndDsNCiZndDsmIzMyOw0KJmd0OyYjMzI7VG8mIzMy O3N1cHBvcnQmIzMyO211bHRpcGxlJiMzMjttbXN5cyYjMzI7aW5zdGFuY2VzJiMzMjtpbiYjMzI7 dGhlJiMzMjtvbmUmIzMyO21lZGlhdGVrLWRybSYjMzI7aW5zdGFuY2UsDQomZ3Q7JiMzMjtwcm92 aWRpbmcmIzMyO2ltcHJvdmVkJiMzMjtmbGV4aWJpbGl0eSYjMzI7YW5kJiMzMjtzY2FsYWJpbGl0 eSYjMzI7YnkmIzMyO3RoZSYjMzI7Zm9sbG93aW5nJiMzMjtjaGFuZ2VzOg0KJmd0OyYjMzI7DQom Z3Q7JiMzMjsxLiYjMzI7RGVmaW5lZCYjMzI7bmV3JiMzMjtEUk0mIzMyO2NvbXBvbmVudCYjMzI7 SURzJiMzMjtERFBfQ09NUE9ORU5UX0RSTV9PVkxTWVNfQURBUFRPUioNCiZndDsmIzMyOyYjMzI7 JiMzMjt0byYjMzI7c3VwcG9ydCYjMzI7ZGlmZmVyZW50JiMzMjttbXN5cyYjMzI7Y29tcG9zaXRp b24uDQomZ3Q7JiMzMjsyLiYjMzI7QWRkZWQmIzMyO25ldyYjMzI7Y29tcG9uZW50JiMzMjt0eXBl cyYjMzI7TVRLX0RJU1BfVklSVFVBTCYjMzI7dG8mIzMyO3N1cHBvcnQmIzMyO3RoZQ0KJmd0OyYj MzI7JiMzMjsmIzMyO3JvdXRpbmcmIzMyO3RvJiMzMjt2aXJ0dWFsJiMzMjtkaXNwbGF5JiMzMjtj b21wb25lbnRzLg0KJmd0OyYjMzI7My4mIzMyO0FkZGVkJiMzMjthbmQmIzMyO2FkanVzdGVkJiMz Mjt0aGUmIzMyO2V4aXN0ZWQmIzMyO3N0cnVjdHVyZSYjMzI7b3ImIzMyO2ludGVyZmFjZSYjMzI7 dG8mIzMyO2V4dGVuZA0KJmd0OyYjMzI7JiMzMjsmIzMyO3RoZSYjMzI7c3VwcG9ydCYjMzI7b2Ym IzMyO211bHRpcGxlJiMzMjttbXN5cyYjMzI7aW5zdGFuY2VzLg0KJmd0OyYjMzI7NC4mIzMyO01v ZGlmaWVkJiMzMjt0aGUmIzMyO2NvbXBvbmVudCYjMzI7bWF0Y2hpbmcmIzMyO2FuZCYjMzI7Ymlu ZGluZyYjMzI7bG9naWMmIzMyO3RvJiMzMjtzdXBwb3J0DQomZ3Q7JiMzMjsmIzMyOyYjMzI7bXVs dGlwbGUmIzMyO21tc3lzJiMzMjtpbnN0YW5jZXMuDQoNCkkmIzMyO3RoaW5rJiMzMjt0aGUmIzMy O3RpdGxlJiMzMjt3b3VsZCYjMzI7Y29uZnVzZSYjMzI7bWUuDQpPcmlnaW5hbCYjMzI7bWVkaWF0 ZWstZHJtJiMzMjtkcml2ZXImIzMyO2FscmVhZHkmIzMyO3N1cHBvcnQmIzMyO211bHRpcGxlJiMz MjttbXN5cy4NCkkmIzMyO3RyeSYjMzI7dG8mIzMyO3VuZGVyc3RhbmQmIzMyO01UODE5NiYjMzI7 ZGlzcGxheS4NCklzJiMzMjtvbmUmIzMyO2Rpc3BsYXkmIzMyO3BpcGVsaW5lJiMzMjtzZXBhcmF0 ZWQmIzMyO2ludG8mIzMyO3R3byYjMzI7bW1zeXMmIzYzOw0KVGhlJiMzMjtmaXJzdCYjMzI7aXMm IzMyO292bHN5cyYjMzI7YW5kJiMzMjt0aGUmIzMyO3NlY29uZCYjMzI7aXMmIzMyO2Rpc3BzeXMm IzYzOw0KSWYmIzMyO3NvLCYjMzI7SSYjMzI7d291bGQmIzMyO2xpa2UmIzMyO21lZGlhdGVrLWRy bSYjMzI7ZHJpdmVyJiMzMjtzZWUmIzMyO29ubHkmIzMyO21tc3lzJiMzMjsoZGlzcHN5cyksDQph bmQmIzMyO2xldCYjMzI7b3Zsc3lzJiMzMjtjb250cm9sJiMzMjtpcyYjMzI7aGlkZGVuJiMzMjtp biYjMzI7b3Zsc3lzJiMzMjtzdWImIzMyO2RyaXZlciwmIzMyO3NvJiMzMjttZWRpYXRlay1kcm0m IzMyO2RyaXZlciYjMzI7d291bGQmIzMyO25vdCYjMzI7Y2hhbmdlJiMzMjtzbyYjMzI7bXVjaC4N Cg0KJmd0OyYjMzI7DQomZ3Q7JiMzMjtTaWduZWQtb2ZmLWJ5OiYjMzI7TmFuY3kuTGluJiMzMjsm bHQ7bmFuY3kubGluQG1lZGlhdGVrLmNvbSZndDsNCiZndDsmIzMyO1NpZ25lZC1vZmYtYnk6JiMz MjtQYXVsLXBsLkNoZW4mIzMyOyZsdDtwYXVsLXBsLmNoZW5AbWVkaWF0ZWsuY29tJmd0Ow0KJmd0 OyYjMzI7LS0tDQomZ3Q7JiMzMjsmIzMyO2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfY3J0 Yy5jJiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyO3wmIzMyOzM1MCYjMzI7KysrKysrKysrKysrKysr KysrKy0tLS0tDQomZ3Q7JiMzMjsmIzMyO2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfY3J0 Yy5oJiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyO3wmIzMyOyYjMzI7JiMzMjs2JiMzMjsrLQ0KJmd0 OyYjMzI7JiMzMjtkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RkcF9jb21wLmMmIzMyO3wm IzMyOzEwNiYjMzI7KysrKystLQ0KJmd0OyYjMzI7JiMzMjtkcml2ZXJzL2dwdS9kcm0vbWVkaWF0 ZWsvbXRrX2RkcF9jb21wLmgmIzMyO3wmIzMyOyYjMzI7JiMzMjsyJiMzMjsrDQomZ3Q7JiMzMjsm IzMyO2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5jJiMzMjsmIzMyO3wmIzMy OzIyMyYjMzI7KysrKysrKysrKysrLS0tDQomZ3Q7JiMzMjsmIzMyO2RyaXZlcnMvZ3B1L2RybS9t ZWRpYXRlay9tdGtfZHJtX2Rydi5oJiMzMjsmIzMyO3wmIzMyOyYjMzI7MTYmIzMyOystDQomZ3Q7 JiMzMjsmIzMyOzYmIzMyO2ZpbGVzJiMzMjtjaGFuZ2VkLCYjMzI7NTc4JiMzMjtpbnNlcnRpb25z KCspLCYjMzI7MTI1JiMzMjtkZWxldGlvbnMoLSkNCiZndDsmIzMyOw0KJmd0OyYjMzI7ZGlmZiYj MzI7LS1naXQmIzMyO2EvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19jcnRjLmMmIzMyO2Iv ZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19jcnRjLmMNCiZndDsmIzMyO2luZGV4JiMzMjtl YjBlMTIzM2FkMDQuLmVjYTY5NDFiZmFhMiYjMzI7MTAwNjQ0DQomZ3Q7JiMzMjstLS0mIzMyO2Ev ZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19jcnRjLmMNCiZndDsmIzMyOysrKyYjMzI7Yi9k cml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2NydGMuYw0KJmd0OyYjMzI7QEAmIzMyOy01OCwx MyYjMzI7KzU4LDE3JiMzMjtAQCYjMzI7c3RydWN0JiMzMjttdGtfY3J0YyYjMzI7ew0KJmd0OyYj MzI7JiMzMjt3YWl0X3F1ZXVlX2hlYWRfdGNiX2Jsb2NraW5nX3F1ZXVlOw0KJmd0OyYjMzI7JiMz MjsjZW5kaWYNCiZndDsmIzMyOyYjMzI7DQomZ3Q7JiMzMjstc3RydWN0JiMzMjtkZXZpY2UqbW1z eXNfZGV2Ow0KJmd0OyYjMzI7K3N0cnVjdCYjMzI7ZGV2aWNlKm1tc3lzX2RldltNQVhfTU1TWVNd Ow0KJmd0OyYjMzI7JiMzMjtzdHJ1Y3QmIzMyO2RldmljZSpkbWFfZGV2Ow0KJmd0OyYjMzI7LXN0 cnVjdCYjMzI7bXRrX211dGV4Km11dGV4Ow0KJmd0OyYjMzI7K3N0cnVjdCYjMzI7ZGV2aWNlKnZk aXNwX2FvX2RldjsNCiZndDsmIzMyOytzdHJ1Y3QmIzMyO210a19tdXRleCptdXRleFtNQVhfTU1T WVNdOw0KJmd0OyYjMzI7JiMzMjt1bnNpZ25lZCYjMzI7aW50ZGRwX2NvbXBfbnI7DQomZ3Q7JiMz MjsmIzMyO3N0cnVjdCYjMzI7bXRrX2RkcF9jb21wKipkZHBfY29tcDsNCiZndDsmIzMyOytlbnVt JiMzMjttdGtfZHJtX21tc3lzKmRkcF9jb21wX3N5czsNCiZndDsmIzMyOytib29sZXhpc3RbTUFY X01NU1lTXTsNCiZndDsmIzMyOyYjMzI7dW5zaWduZWQmIzMyO2ludG51bV9jb25uX3JvdXRlczsN CiZndDsmIzMyOyYjMzI7Y29uc3QmIzMyO3N0cnVjdCYjMzI7bXRrX2RybV9yb3V0ZSpjb25uX3Jv dXRlczsNCiZndDsmIzMyOytlbnVtJiMzMjttdGtfZHJtX21tc3lzY29ubl9yb3V0ZXNfc3lzOw0K Jmd0OyYjMzI7JiMzMjsNCiZndDsmIzMyOyYjMzI7LyomIzMyO2xvY2smIzMyO2ZvciYjMzI7ZGlz cGxheSYjMzI7aGFyZHdhcmUmIzMyO2FjY2VzcyYjMzI7Ki8NCiZndDsmIzMyOyYjMzI7c3RydWN0 JiMzMjttdXRleGh3X2xvY2s7DQomZ3Q7JiMzMjtAQCYjMzI7LTgyLDYmIzMyOys4NiwxMSYjMzI7 QEAmIzMyO3N0cnVjdCYjMzI7bXRrX2NydGNfc3RhdGUmIzMyO3sNCiZndDsmIzMyOyYjMzI7dW5z aWduZWQmIzMyO2ludHBlbmRpbmdfdnJlZnJlc2g7DQomZ3Q7JiMzMjsmIzMyO307DQomZ3Q7JiMz MjsmIzMyOw0KJmd0OyYjMzI7K3N0cnVjdCYjMzI7bXRrX2NydGNfY29tcF9pbmZvJiMzMjt7DQom Z3Q7JiMzMjsrZW51bSYjMzI7bXRrX2RybV9tbXN5cyYjMzI7c3lzOw0KJmd0OyYjMzI7K3Vuc2ln bmVkJiMzMjtpbnQmIzMyO2NvbXBfaWQ7DQomZ3Q7JiMzMjsrfTsNCiZndDsmIzMyOysNCiZndDsm IzMyOyYjMzI7c3RhdGljJiMzMjtpbmxpbmUmIzMyO3N0cnVjdCYjMzI7bXRrX2NydGMmIzMyOyp0 b19tdGtfY3J0YyhzdHJ1Y3QmIzMyO2RybV9jcnRjJiMzMjsqYykNCiZndDsmIzMyOyYjMzI7ew0K Jmd0OyYjMzI7JiMzMjtyZXR1cm4mIzMyO2NvbnRhaW5lcl9vZihjLCYjMzI7c3RydWN0JiMzMjtt dGtfY3J0YywmIzMyO2Jhc2UpOw0KJmd0OyYjMzI7QEAmIzMyOy0xMjUsNyYjMzI7KzEzNCw5JiMz MjtAQCYjMzI7c3RhdGljJiMzMjt2b2lkJiMzMjttdGtfY3J0Y19kZXN0cm95KHN0cnVjdCYjMzI7 ZHJtX2NydGMmIzMyOypjcnRjKQ0KJmd0OyYjMzI7JiMzMjtzdHJ1Y3QmIzMyO210a19jcnRjJiMz MjsqbXRrX2NydGMmIzMyOz0mIzMyO3RvX210a19jcnRjKGNydGMpOw0KJmd0OyYjMzI7JiMzMjtp bnQmIzMyO2k7DQomZ3Q7JiMzMjsmIzMyOw0KJmd0OyYjMzI7LW10a19tdXRleF9wdXQobXRrX2Ny dGMtJmd0O211dGV4KTsNCiZndDsmIzMyOytmb3ImIzMyOyhpJiMzMjs9JiMzMjswOyYjMzI7aSYj MzI7Jmx0OyYjMzI7TUFYX01NU1lTOyYjMzI7aSsrKQ0KJmd0OyYjMzI7K2lmJiMzMjsobXRrX2Ny dGMtJmd0O211dGV4W2ldKQ0KJmd0OyYjMzI7K210a19tdXRleF9wdXQobXRrX2NydGMtJmd0O211 dGV4W2ldKTsNCiZndDsmIzMyOyYjMzI7I2lmJiMzMjtJU19SRUFDSEFCTEUoQ09ORklHX01US19D TURRKQ0KJmd0OyYjMzI7JiMzMjtpZiYjMzI7KG10a19jcnRjLSZndDtjbWRxX2NsaWVudC5jaGFu KSYjMzI7ew0KJmd0OyYjMzI7JiMzMjtjbWRxX3BrdF9kZXN0cm95KCZhbXA7bXRrX2NydGMtJmd0 O2NtZHFfY2xpZW50LCYjMzI7JmFtcDttdGtfY3J0Yy0mZ3Q7Y21kcV9oYW5kbGUpOw0KJmd0OyYj MzI7QEAmIzMyOy0yMjMsNyYjMzI7KzIzNCwxNCYjMzI7QEAmIzMyO3N0YXRpYyYjMzI7aW50JiMz MjttdGtfY3J0Y19kZHBfY2xrX2VuYWJsZShzdHJ1Y3QmIzMyO210a19jcnRjJiMzMjsqbXRrX2Ny dGMpDQomZ3Q7JiMzMjsmIzMyO2ludCYjMzI7aTsNCiZndDsmIzMyOyYjMzI7DQomZ3Q7JiMzMjsm IzMyO2ZvciYjMzI7KGkmIzMyOz0mIzMyOzA7JiMzMjtpJiMzMjsmbHQ7JiMzMjttdGtfY3J0Yy0m Z3Q7ZGRwX2NvbXBfbnI7JiMzMjtpKyspJiMzMjt7DQomZ3Q7JiMzMjsrZW51bSYjMzI7bXRrX2Ry bV9tbXN5cyYjMzI7bW1zeXM7DQomZ3Q7JiMzMjsrDQomZ3Q7JiMzMjsmIzMyO3JldCYjMzI7PSYj MzI7bXRrX2RkcF9jb21wX2Nsa19lbmFibGUobXRrX2NydGMtJmd0O2RkcF9jb21wW2ldKTsNCiZn dDsmIzMyOytpZiYjMzI7KG10a19kZHBfY29tcF9nZXRfdHlwZShtdGtfY3J0Yy0mZ3Q7ZGRwX2Nv bXBbaV0tJmd0O2lkKSYjMzI7PT0mIzMyO01US19ESVNQX1ZJUlRVQUwpJiMzMjt7DQomZ3Q7JiMz MjsrbW1zeXMmIzMyOz0mIzMyO210a19jcnRjLSZndDtkZHBfY29tcF9zeXNbaV07DQomZ3Q7JiMz MjsrcmV0JiMzMjs9JiMzMjttdGtfbW1zeXNfZGRwX2Nsa19lbmFibGUobXRrX2NydGMtJmd0O21t c3lzX2RldlttbXN5c10sDQomZ3Q7JiMzMjsrJiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7 JiMzMjttdGtfY3J0Yy0mZ3Q7ZGRwX2NvbXBbaV0tJmd0O2lkKTsNCiZndDsmIzMyOyt9DQomZ3Q7 JiMzMjsmIzMyO2lmJiMzMjsocmV0KSYjMzI7ew0KJmd0OyYjMzI7JiMzMjtEUk1fRVJST1IoJnF1 b3Q7RmFpbGVkJiMzMjt0byYjMzI7ZW5hYmxlJiMzMjtjbG9jayYjMzI7JWQ6JiMzMjslZCYjOTI7 biZxdW90OywmIzMyO2ksJiMzMjtyZXQpOw0KJmd0OyYjMzI7JiMzMjtnb3RvJiMzMjtlcnI7DQom Z3Q7JiMzMjtAQCYjMzI7LTIzMiwxNyYjMzI7KzI1MCwyOCYjMzI7QEAmIzMyO3N0YXRpYyYjMzI7 aW50JiMzMjttdGtfY3J0Y19kZHBfY2xrX2VuYWJsZShzdHJ1Y3QmIzMyO210a19jcnRjJiMzMjsq bXRrX2NydGMpDQomZ3Q7JiMzMjsmIzMyOw0KJmd0OyYjMzI7JiMzMjtyZXR1cm4mIzMyOzA7DQom Z3Q7JiMzMjsmIzMyO2VycjoNCiZndDsmIzMyOy13aGlsZSYjMzI7KC0taSYjMzI7Jmd0Oz0mIzMy OzApDQomZ3Q7JiMzMjsrd2hpbGUmIzMyOygtLWkmIzMyOyZndDs9JiMzMjswKSYjMzI7ew0KJmd0 OyYjMzI7JiMzMjttdGtfZGRwX2NvbXBfY2xrX2Rpc2FibGUobXRrX2NydGMtJmd0O2RkcF9jb21w W2ldKTsNCiZndDsmIzMyOytpZiYjMzI7KG10a19kZHBfY29tcF9nZXRfdHlwZShtdGtfY3J0Yy0m Z3Q7ZGRwX2NvbXBbaV0tJmd0O2lkKSYjMzI7PT0mIzMyO01US19ESVNQX1ZJUlRVQUwpDQomZ3Q7 JiMzMjsrbXRrX21tc3lzX2RkcF9jbGtfZGlzYWJsZShtdGtfY3J0Yy0mZ3Q7bW1zeXNfZGV2W210 a19jcnRjLSZndDtkZHBfY29tcF9zeXNbaV1dLA0KJmd0OyYjMzI7KyYjMzI7JiMzMjttdGtfY3J0 Yy0mZ3Q7ZGRwX2NvbXBbaV0tJmd0O2lkKTsNCiZndDsmIzMyOyt9DQomZ3Q7JiMzMjsmIzMyO3Jl dHVybiYjMzI7cmV0Ow0KJmd0OyYjMzI7JiMzMjt9DQomZ3Q7JiMzMjsmIzMyOw0KJmd0OyYjMzI7 JiMzMjtzdGF0aWMmIzMyO3ZvaWQmIzMyO210a19jcnRjX2RkcF9jbGtfZGlzYWJsZShzdHJ1Y3Qm IzMyO210a19jcnRjJiMzMjsqbXRrX2NydGMpDQomZ3Q7JiMzMjsmIzMyO3sNCiZndDsmIzMyOyYj MzI7aW50JiMzMjtpOw0KJmd0OyYjMzI7K2VudW0mIzMyO210a19kcm1fbW1zeXMmIzMyO21tc3lz Ow0KJmd0OyYjMzI7JiMzMjsNCiZndDsmIzMyOy1mb3ImIzMyOyhpJiMzMjs9JiMzMjswOyYjMzI7 aSYjMzI7Jmx0OyYjMzI7bXRrX2NydGMtJmd0O2RkcF9jb21wX25yOyYjMzI7aSsrKQ0KJmd0OyYj MzI7K2ZvciYjMzI7KGkmIzMyOz0mIzMyOzA7JiMzMjtpJiMzMjsmbHQ7JiMzMjttdGtfY3J0Yy0m Z3Q7ZGRwX2NvbXBfbnI7JiMzMjtpKyspJiMzMjt7DQomZ3Q7JiMzMjsmIzMyO210a19kZHBfY29t cF9jbGtfZGlzYWJsZShtdGtfY3J0Yy0mZ3Q7ZGRwX2NvbXBbaV0pOw0KJmd0OyYjMzI7K2lmJiMz MjsobXRrX2RkcF9jb21wX2dldF90eXBlKG10a19jcnRjLSZndDtkZHBfY29tcFtpXS0mZ3Q7aWQp JiMzMjs9PSYjMzI7TVRLX0RJU1BfVklSVFVBTCkmIzMyO3sNCiZndDsmIzMyOyttbXN5cyYjMzI7 PSYjMzI7bXRrX2NydGMtJmd0O2RkcF9jb21wX3N5c1tpXTsNCiZndDsmIzMyOyttdGtfbW1zeXNf ZGRwX2Nsa19kaXNhYmxlKG10a19jcnRjLSZndDttbXN5c19kZXZbbW1zeXNdLA0KJmd0OyYjMzI7 KyYjMzI7JiMzMjttdGtfY3J0Yy0mZ3Q7ZGRwX2NvbXBbaV0tJmd0O2lkKTsNCiZndDsmIzMyOyt9 DQomZ3Q7JiMzMjsrfQ0KJmd0OyYjMzI7JiMzMjt9DQomZ3Q7JiMzMjsmIzMyOw0KJmd0OyYjMzI7 JiMzMjtzdGF0aWMNCiZndDsmIzMyO0BAJiMzMjstMzMyLDcmIzMyOyszNjEsOCYjMzI7QEAmIzMy O3N0YXRpYyYjMzI7aW50JiMzMjttdGtfY3J0Y19kZHBfaHdfaW5pdChzdHJ1Y3QmIzMyO210a19j cnRjJiMzMjsqbXRrX2NydGMpDQomZ3Q7JiMzMjsmIzMyO3N0cnVjdCYjMzI7ZHJtX2Nvbm5lY3Rv cl9saXN0X2l0ZXImIzMyO2Nvbm5faXRlcjsNCiZndDsmIzMyOyYjMzI7dW5zaWduZWQmIzMyO2lu dCYjMzI7d2lkdGgsJiMzMjtoZWlnaHQsJiMzMjt2cmVmcmVzaCwmIzMyO2JwYyYjMzI7PSYjMzI7 TVRLX01BWF9CUEM7DQomZ3Q7JiMzMjsmIzMyO2ludCYjMzI7cmV0Ow0KJmd0OyYjMzI7LWludCYj MzI7aTsNCiZndDsmIzMyOytpbnQmIzMyO2ksJiMzMjtqOw0KJmd0OyYjMzI7K2VudW0mIzMyO210 a19kcm1fbW1zeXMmIzMyO21tc3lzOw0KJmd0OyYjMzI7JiMzMjsNCiZndDsmIzMyOyYjMzI7aWYm IzMyOyhXQVJOX09OKCFjcnRjLSZndDtzdGF0ZSkpDQomZ3Q7JiMzMjsmIzMyO3JldHVybiYjMzI7 LUVJTlZBTDsNCiZndDsmIzMyO0BAJiMzMjstMzYyLDEwJiMzMjsrMzkyLDE4JiMzMjtAQCYjMzI7 c3RhdGljJiMzMjtpbnQmIzMyO210a19jcnRjX2RkcF9od19pbml0KHN0cnVjdCYjMzI7bXRrX2Ny dGMmIzMyOyptdGtfY3J0YykNCiZndDsmIzMyOyYjMzI7cmV0dXJuJiMzMjtyZXQ7DQomZ3Q7JiMz MjsmIzMyO30NCiZndDsmIzMyOyYjMzI7DQomZ3Q7JiMzMjstcmV0JiMzMjs9JiMzMjttdGtfbXV0 ZXhfcHJlcGFyZShtdGtfY3J0Yy0mZ3Q7bXV0ZXgpOw0KJmd0OyYjMzI7LWlmJiMzMjsocmV0JiMz MjsmbHQ7JiMzMjswKSYjMzI7ew0KJmd0OyYjMzI7LURSTV9FUlJPUigmcXVvdDtGYWlsZWQmIzMy O3RvJiMzMjtlbmFibGUmIzMyO211dGV4JiMzMjtjbG9jazomIzMyOyVkJiM5MjtuJnF1b3Q7LCYj MzI7cmV0KTsNCiZndDsmIzMyOy1nb3RvJiMzMjtlcnJfcG1fcnVudGltZV9wdXQ7DQomZ3Q7JiMz MjsrZm9yJiMzMjsoaSYjMzI7PSYjMzI7MDsmIzMyO2kmIzMyOyZsdDsmIzMyO01BWF9NTVNZUzsm IzMyO2krKykNCiZndDsmIzMyOytpZiYjMzI7KG10a19jcnRjLSZndDtleGlzdFtpXSkNCiZndDsm IzMyOyttdGtfbW1zeXNfdG9wX2Nsa19lbmFibGUobXRrX2NydGMtJmd0O21tc3lzX2RldltpXSk7 DQomZ3Q7JiMzMjsrDQomZ3Q7JiMzMjsrZm9yJiMzMjsoaSYjMzI7PSYjMzI7MDsmIzMyO2kmIzMy OyZsdDsmIzMyO01BWF9NTVNZUzsmIzMyO2krKykmIzMyO3sNCiZndDsmIzMyOytpZiYjMzI7KCFt dGtfY3J0Yy0mZ3Q7bXV0ZXhbaV0mIzMyO3x8JiMzMjshbXRrX2NydGMtJmd0O2V4aXN0W2ldKQ0K Jmd0OyYjMzI7K2NvbnRpbnVlOw0KJmd0OyYjMzI7K3JldCYjMzI7PSYjMzI7bXRrX211dGV4X3By ZXBhcmUobXRrX2NydGMtJmd0O211dGV4W2ldKTsNCiZndDsmIzMyOytpZiYjMzI7KHJldCYjMzI7 Jmx0OyYjMzI7MCkmIzMyO3sNCiZndDsmIzMyOytEUk1fRVJST1IoJnF1b3Q7RmFpbGVkJiMzMjt0 byYjMzI7ZW5hYmxlJiMzMjttbXN5cyVkJiMzMjttdXRleCYjMzI7Y2xvY2s6JiMzMjslZCYjOTI7 biZxdW90OywmIzMyO2ksJiMzMjtyZXQpOw0KJmd0OyYjMzI7K2dvdG8mIzMyO2Vycl9wbV9ydW50 aW1lX3B1dDsNCiZndDsmIzMyOyt9DQomZ3Q7JiMzMjsmIzMyO30NCiZndDsmIzMyOyYjMzI7DQom Z3Q7JiMzMjsmIzMyO3JldCYjMzI7PSYjMzI7bXRrX2NydGNfZGRwX2Nsa19lbmFibGUobXRrX2Ny dGMpOw0KJmd0OyYjMzI7QEAmIzMyOy0zNzQsMTkmIzMyOys0MTIsMzYmIzMyO0BAJiMzMjtzdGF0 aWMmIzMyO2ludCYjMzI7bXRrX2NydGNfZGRwX2h3X2luaXQoc3RydWN0JiMzMjttdGtfY3J0YyYj MzI7Km10a19jcnRjKQ0KJmd0OyYjMzI7JiMzMjtnb3RvJiMzMjtlcnJfbXV0ZXhfdW5wcmVwYXJl Ow0KJmd0OyYjMzI7JiMzMjt9DQomZ3Q7JiMzMjsmIzMyOw0KJmd0OyYjMzI7K2lmJiMzMjsobXRr X2NydGMtJmd0O3ZkaXNwX2FvX2RldikNCiZndDsmIzMyOyttdGtfbW1zeXNfZGVmYXVsdF9jb25m aWcobXRrX2NydGMtJmd0O3ZkaXNwX2FvX2Rldik7DQomZ3Q7JiMzMjsrDQomZ3Q7JiMzMjsrZm9y JiMzMjsoaSYjMzI7PSYjMzI7MDsmIzMyO2kmIzMyOyZsdDsmIzMyO01BWF9NTVNZUzsmIzMyO2kr KykNCiZndDsmIzMyOytpZiYjMzI7KG10a19jcnRjLSZndDtleGlzdFtpXSkNCiZndDsmIzMyOytt dGtfbW1zeXNfZGVmYXVsdF9jb25maWcobXRrX2NydGMtJmd0O21tc3lzX2RldltpXSk7DQomZ3Q7 JiMzMjsrDQomZ3Q7JiMzMjsmIzMyO2ZvciYjMzI7KGkmIzMyOz0mIzMyOzA7JiMzMjtpJiMzMjsm bHQ7JiMzMjttdGtfY3J0Yy0mZ3Q7ZGRwX2NvbXBfbnImIzMyOy0mIzMyOzE7JiMzMjtpKyspJiMz Mjt7DQomZ3Q7JiMzMjstaWYmIzMyOyghbXRrX2RkcF9jb21wX2Nvbm5lY3QobXRrX2NydGMtJmd0 O2RkcF9jb21wW2ldLCYjMzI7bXRrX2NydGMtJmd0O21tc3lzX2RldiwNCiZndDsmIzMyOyttbXN5 cyYjMzI7PSYjMzI7bXRrX2NydGMtJmd0O2RkcF9jb21wX3N5c1tpXTsNCiZndDsmIzMyOytpZiYj MzI7KCFtdGtfZGRwX2NvbXBfY29ubmVjdChtdGtfY3J0Yy0mZ3Q7ZGRwX2NvbXBbaV0sJiMzMjtt dGtfY3J0Yy0mZ3Q7bW1zeXNfZGV2W21tc3lzXSwNCiZndDsmIzMyOyYjMzI7JiMzMjsmIzMyO210 a19jcnRjLSZndDtkZHBfY29tcFtpJiMzMjsrJiMzMjsxXS0mZ3Q7aWQpKQ0KJmd0OyYjMzI7LW10 a19tbXN5c19kZHBfY29ubmVjdChtdGtfY3J0Yy0mZ3Q7bW1zeXNfZGV2LA0KJmd0OyYjMzI7K210 a19tbXN5c19kZHBfY29ubmVjdChtdGtfY3J0Yy0mZ3Q7bW1zeXNfZGV2W21tc3lzXSwNCiZndDsm IzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7bXRrX2NydGMtJmd0O2RkcF9j b21wW2ldLSZndDtpZCwNCiZndDsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYj MzI7bXRrX2NydGMtJmd0O2RkcF9jb21wW2kmIzMyOysmIzMyOzFdLSZndDtpZCk7DQomZ3Q7JiMz MjstaWYmIzMyOyghbXRrX2RkcF9jb21wX2FkZChtdGtfY3J0Yy0mZ3Q7ZGRwX2NvbXBbaV0sJiMz MjttdGtfY3J0Yy0mZ3Q7bXV0ZXgpKQ0KJmd0OyYjMzI7LW10a19tdXRleF9hZGRfY29tcChtdGtf Y3J0Yy0mZ3Q7bXV0ZXgsDQomZ3Q7JiMzMjsraWYmIzMyOyghbXRrX2RkcF9jb21wX2FkZChtdGtf Y3J0Yy0mZ3Q7ZGRwX2NvbXBbaV0sJiMzMjttdGtfY3J0Yy0mZ3Q7bXV0ZXhbbW1zeXNdKSkNCiZn dDsmIzMyOyttdGtfbXV0ZXhfYWRkX2NvbXAobXRrX2NydGMtJmd0O211dGV4W21tc3lzXSwNCiZn dDsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7bXRrX2NydGMtJmd0O2RkcF9jb21wW2ldLSZndDtp ZCk7DQomZ3Q7JiMzMjsmIzMyO30NCiZndDsmIzMyOy1pZiYjMzI7KCFtdGtfZGRwX2NvbXBfYWRk KG10a19jcnRjLSZndDtkZHBfY29tcFtpXSwmIzMyO210a19jcnRjLSZndDttdXRleCkpDQomZ3Q7 JiMzMjstbXRrX211dGV4X2FkZF9jb21wKG10a19jcnRjLSZndDttdXRleCwmIzMyO210a19jcnRj LSZndDtkZHBfY29tcFtpXS0mZ3Q7aWQpOw0KJmd0OyYjMzI7LW10a19tdXRleF9lbmFibGUobXRr X2NydGMtJmd0O211dGV4KTsNCiZndDsmIzMyOyttbXN5cyYjMzI7PSYjMzI7bXRrX2NydGMtJmd0 O2RkcF9jb21wX3N5c1tpXTsNCiZndDsmIzMyOytpZiYjMzI7KCFtdGtfZGRwX2NvbXBfYWRkKG10 a19jcnRjLSZndDtkZHBfY29tcFtpXSwmIzMyO210a19jcnRjLSZndDttdXRleFttbXN5c10pKQ0K Jmd0OyYjMzI7K210a19tdXRleF9hZGRfY29tcChtdGtfY3J0Yy0mZ3Q7bXV0ZXhbbW1zeXNdLCYj MzI7bXRrX2NydGMtJmd0O2RkcF9jb21wW2ldLSZndDtpZCk7DQomZ3Q7JiMzMjsrDQomZ3Q7JiMz MjsrLyomIzMyO05lZWQmIzMyO3RvJiMzMjtzZXQmIzMyO3NvZiYjMzI7c291cmNlJiMzMjtmb3Im IzMyO2FsbCYjMzI7bW1zeXMmIzMyO211dGV4cyYjMzI7aW4mIzMyO3RoaXMmIzMyO2NydGMmIzMy OyovDQomZ3Q7JiMzMjsrZm9yJiMzMjsoaiYjMzI7PSYjMzI7MDsmIzMyO2omIzMyOyZsdDsmIzMy O01BWF9NTVNZUzsmIzMyO2orKykNCiZndDsmIzMyOytpZiYjMzI7KG10a19jcnRjLSZndDtleGlz dFtqXSYjMzI7JmFtcDsmYW1wOyYjMzI7bXRrX2NydGMtJmd0O211dGV4W2pdKQ0KJmd0OyYjMzI7 K210a19tdXRleF93cml0ZV9jb21wX3NvZihtdGtfY3J0Yy0mZ3Q7bXV0ZXhbal0sJiMzMjttdGtf Y3J0Yy0mZ3Q7ZGRwX2NvbXBbaV0tJmd0O2lkKTsNCiZndDsmIzMyOysNCiZndDsmIzMyOytmb3Im IzMyOyhpJiMzMjs9JiMzMjswOyYjMzI7aSYjMzI7Jmx0OyYjMzI7TUFYX01NU1lTOyYjMzI7aSsr KQ0KJmd0OyYjMzI7K2lmJiMzMjsobXRrX2NydGMtJmd0O2V4aXN0W2ldJiMzMjsmYW1wOyZhbXA7 JiMzMjttdGtfY3J0Yy0mZ3Q7bXV0ZXhbaV0pDQomZ3Q7JiMzMjsrbXRrX211dGV4X2VuYWJsZSht dGtfY3J0Yy0mZ3Q7bXV0ZXhbaV0pOw0KJmd0OyYjMzI7JiMzMjsNCiZndDsmIzMyOyYjMzI7Zm9y JiMzMjsoaSYjMzI7PSYjMzI7MDsmIzMyO2kmIzMyOyZsdDsmIzMyO210a19jcnRjLSZndDtkZHBf Y29tcF9ucjsmIzMyO2krKykmIzMyO3sNCiZndDsmIzMyOyYjMzI7c3RydWN0JiMzMjttdGtfZGRw X2NvbXAmIzMyOypjb21wJiMzMjs9JiMzMjttdGtfY3J0Yy0mZ3Q7ZGRwX2NvbXBbaV07DQomZ3Q7 JiMzMjtAQCYjMzI7LTM5NCw3JiMzMjsrNDQ5LDExJiMzMjtAQCYjMzI7c3RhdGljJiMzMjtpbnQm IzMyO210a19jcnRjX2RkcF9od19pbml0KHN0cnVjdCYjMzI7bXRrX2NydGMmIzMyOyptdGtfY3J0 YykNCiZndDsmIzMyOyYjMzI7aWYmIzMyOyhpJiMzMjs9PSYjMzI7MSkNCiZndDsmIzMyOyYjMzI7 bXRrX2RkcF9jb21wX2JnY2xyX2luX29uKGNvbXApOw0KJmd0OyYjMzI7JiMzMjsNCiZndDsmIzMy Oy1tdGtfZGRwX2NvbXBfY29uZmlnKGNvbXAsJiMzMjt3aWR0aCwmIzMyO2hlaWdodCwmIzMyO3Zy ZWZyZXNoLCYjMzI7YnBjLCYjMzI7TlVMTCk7DQomZ3Q7JiMzMjsraWYmIzMyOyhtdGtfZGRwX2Nv bXBfZ2V0X3R5cGUoY29tcC0mZ3Q7aWQpJiMzMjs9PSYjMzI7TVRLX0RJU1BfVklSVFVBTCkNCiZn dDsmIzMyOyttdGtfbW1zeXNfZGRwX2NvbmZpZyhtdGtfY3J0Yy0mZ3Q7bW1zeXNfZGV2W210a19j cnRjLSZndDtkZHBfY29tcF9zeXNbaV1dLA0KJmd0OyYjMzI7KyYjMzI7JiMzMjsmIzMyOyYjMzI7 JiMzMjtjb21wLSZndDtpZCwmIzMyO3dpZHRoLCYjMzI7aGVpZ2h0LCYjMzI7TlVMTCk7DQomZ3Q7 JiMzMjsrZWxzZQ0KJmd0OyYjMzI7K210a19kZHBfY29tcF9jb25maWcoY29tcCwmIzMyO3dpZHRo LCYjMzI7aGVpZ2h0LCYjMzI7dnJlZnJlc2gsJiMzMjticGMsJiMzMjtOVUxMKTsNCiZndDsmIzMy OyYjMzI7bXRrX2RkcF9jb21wX3N0YXJ0KGNvbXApOw0KJmd0OyYjMzI7JiMzMjt9DQomZ3Q7JiMz MjsmIzMyOw0KJmd0OyYjMzI7QEAmIzMyOy00MTgsNyYjMzI7KzQ3NywxMCYjMzI7QEAmIzMyO3N0 YXRpYyYjMzI7aW50JiMzMjttdGtfY3J0Y19kZHBfaHdfaW5pdChzdHJ1Y3QmIzMyO210a19jcnRj JiMzMjsqbXRrX2NydGMpDQomZ3Q7JiMzMjsmIzMyO3JldHVybiYjMzI7MDsNCiZndDsmIzMyOyYj MzI7DQomZ3Q7JiMzMjsmIzMyO2Vycl9tdXRleF91bnByZXBhcmU6DQomZ3Q7JiMzMjstbXRrX211 dGV4X3VucHJlcGFyZShtdGtfY3J0Yy0mZ3Q7bXV0ZXgpOw0KJmd0OyYjMzI7K2ZvciYjMzI7KGkm IzMyOz0mIzMyOzA7JiMzMjtpJiMzMjsmbHQ7JiMzMjtNQVhfTU1TWVM7JiMzMjtpKyspDQomZ3Q7 JiMzMjsraWYmIzMyOyhtdGtfY3J0Yy0mZ3Q7ZXhpc3RbaV0mIzMyOyZhbXA7JmFtcDsmIzMyO210 a19jcnRjLSZndDttdXRleFtpXSkNCiZndDsmIzMyOyttdGtfbXV0ZXhfdW5wcmVwYXJlKG10a19j cnRjLSZndDttdXRleFtpXSk7DQomZ3Q7JiMzMjsrDQomZ3Q7JiMzMjsmIzMyO2Vycl9wbV9ydW50 aW1lX3B1dDoNCiZndDsmIzMyOyYjMzI7cG1fcnVudGltZV9wdXQoY3J0Yy0mZ3Q7ZGV2LSZndDtk ZXYpOw0KJmd0OyYjMzI7JiMzMjtyZXR1cm4mIzMyO3JldDsNCiZndDsmIzMyO0BAJiMzMjstNDMw LDYmIzMyOys0OTIsNyYjMzI7QEAmIzMyO3N0YXRpYyYjMzI7dm9pZCYjMzI7bXRrX2NydGNfZGRw X2h3X2Zpbmkoc3RydWN0JiMzMjttdGtfY3J0YyYjMzI7Km10a19jcnRjKQ0KJmd0OyYjMzI7JiMz MjtzdHJ1Y3QmIzMyO2RybV9jcnRjJiMzMjsqY3J0YyYjMzI7PSYjMzI7JmFtcDttdGtfY3J0Yy0m Z3Q7YmFzZTsNCiZndDsmIzMyOyYjMzI7dW5zaWduZWQmIzMyO2xvbmcmIzMyO2ZsYWdzOw0KJmd0 OyYjMzI7JiMzMjtpbnQmIzMyO2k7DQomZ3Q7JiMzMjsrZW51bSYjMzI7bXRrX2RybV9tbXN5cyYj MzI7bW1zeXM7DQomZ3Q7JiMzMjsmIzMyOw0KJmd0OyYjMzI7JiMzMjtmb3ImIzMyOyhpJiMzMjs9 JiMzMjswOyYjMzI7aSYjMzI7Jmx0OyYjMzI7bXRrX2NydGMtJmd0O2RkcF9jb21wX25yOyYjMzI7 aSsrKSYjMzI7ew0KJmd0OyYjMzI7JiMzMjttdGtfZGRwX2NvbXBfc3RvcChtdGtfY3J0Yy0mZ3Q7 ZGRwX2NvbXBbaV0pOw0KJmd0OyYjMzI7QEAmIzMyOy00MzcsMjcmIzMyOys1MDAsNDYmIzMyO0BA JiMzMjtzdGF0aWMmIzMyO3ZvaWQmIzMyO210a19jcnRjX2RkcF9od19maW5pKHN0cnVjdCYjMzI7 bXRrX2NydGMmIzMyOyptdGtfY3J0YykNCiZndDsmIzMyOyYjMzI7bXRrX2RkcF9jb21wX2JnY2xy X2luX29mZihtdGtfY3J0Yy0mZ3Q7ZGRwX2NvbXBbaV0pOw0KJmd0OyYjMzI7JiMzMjt9DQomZ3Q7 JiMzMjsmIzMyOw0KJmd0OyYjMzI7LWZvciYjMzI7KGkmIzMyOz0mIzMyOzA7JiMzMjtpJiMzMjsm bHQ7JiMzMjttdGtfY3J0Yy0mZ3Q7ZGRwX2NvbXBfbnI7JiMzMjtpKyspDQomZ3Q7JiMzMjstaWYm IzMyOyghbXRrX2RkcF9jb21wX3JlbW92ZShtdGtfY3J0Yy0mZ3Q7ZGRwX2NvbXBbaV0sJiMzMjtt dGtfY3J0Yy0mZ3Q7bXV0ZXgpKQ0KJmd0OyYjMzI7LW10a19tdXRleF9yZW1vdmVfY29tcChtdGtf Y3J0Yy0mZ3Q7bXV0ZXgsDQomZ3Q7JiMzMjsrZm9yJiMzMjsoaSYjMzI7PSYjMzI7MDsmIzMyO2km IzMyOyZsdDsmIzMyO210a19jcnRjLSZndDtkZHBfY29tcF9ucjsmIzMyO2krKykmIzMyO3sNCiZn dDsmIzMyOyttbXN5cyYjMzI7PSYjMzI7bXRrX2NydGMtJmd0O2RkcF9jb21wX3N5c1tpXTsNCiZn dDsmIzMyOytpZiYjMzI7KCFtdGtfZGRwX2NvbXBfcmVtb3ZlKG10a19jcnRjLSZndDtkZHBfY29t cFtpXSwmIzMyO210a19jcnRjLSZndDttdXRleFttbXN5c10pKQ0KJmd0OyYjMzI7K210a19tdXRl eF9yZW1vdmVfY29tcChtdGtfY3J0Yy0mZ3Q7bXV0ZXhbbXRrX2NydGMtJmd0O2RkcF9jb21wX3N5 c1tpXV0sDQomZ3Q7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyO210a19j cnRjLSZndDtkZHBfY29tcFtpXS0mZ3Q7aWQpOw0KJmd0OyYjMzI7LW10a19tdXRleF9kaXNhYmxl KG10a19jcnRjLSZndDttdXRleCk7DQomZ3Q7JiMzMjsrfQ0KJmd0OyYjMzI7K2ZvciYjMzI7KGkm IzMyOz0mIzMyOzA7JiMzMjtpJiMzMjsmbHQ7JiMzMjtNQVhfTU1TWVM7JiMzMjtpKyspDQomZ3Q7 JiMzMjsraWYmIzMyOyhtdGtfY3J0Yy0mZ3Q7ZXhpc3RbaV0mIzMyOyZhbXA7JmFtcDsmIzMyO210 a19jcnRjLSZndDttdXRleFtpXSkNCiZndDsmIzMyOyttdGtfbXV0ZXhfZGlzYWJsZShtdGtfY3J0 Yy0mZ3Q7bXV0ZXhbaV0pOw0KJmd0OyYjMzI7Kw0KJmd0OyYjMzI7JiMzMjtmb3ImIzMyOyhpJiMz Mjs9JiMzMjswOyYjMzI7aSYjMzI7Jmx0OyYjMzI7bXRrX2NydGMtJmd0O2RkcF9jb21wX25yJiMz MjstJiMzMjsxOyYjMzI7aSsrKSYjMzI7ew0KJmd0OyYjMzI7LWlmJiMzMjsoIW10a19kZHBfY29t cF9kaXNjb25uZWN0KG10a19jcnRjLSZndDtkZHBfY29tcFtpXSwmIzMyO210a19jcnRjLSZndDtt bXN5c19kZXYsDQomZ3Q7JiMzMjstJiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyO210a19jcnRjLSZn dDtkZHBfY29tcFtpJiMzMjsrJiMzMjsxXS0mZ3Q7aWQpKQ0KJmd0OyYjMzI7LW10a19tbXN5c19k ZHBfZGlzY29ubmVjdChtdGtfY3J0Yy0mZ3Q7bW1zeXNfZGV2LA0KJmd0OyYjMzI7LSYjMzI7bXRr X2NydGMtJmd0O2RkcF9jb21wW2ldLSZndDtpZCwNCiZndDsmIzMyOy0mIzMyO210a19jcnRjLSZn dDtkZHBfY29tcFtpJiMzMjsrJiMzMjsxXS0mZ3Q7aWQpOw0KJmd0OyYjMzI7LWlmJiMzMjsoIW10 a19kZHBfY29tcF9yZW1vdmUobXRrX2NydGMtJmd0O2RkcF9jb21wW2ldLCYjMzI7bXRrX2NydGMt Jmd0O211dGV4KSkNCiZndDsmIzMyOy1tdGtfbXV0ZXhfcmVtb3ZlX2NvbXAobXRrX2NydGMtJmd0 O211dGV4LA0KJmd0OyYjMzI7K3N0cnVjdCYjMzI7bXRrX2RkcF9jb21wJiMzMjsqY29tcDsNCiZn dDsmIzMyOyt1bnNpZ25lZCYjMzI7aW50JiMzMjtjdXJyLCYjMzI7bmV4dDsNCiZndDsmIzMyOysN CiZndDsmIzMyOytjb21wJiMzMjs9JiMzMjttdGtfY3J0Yy0mZ3Q7ZGRwX2NvbXBbaV07DQomZ3Q7 JiMzMjsrY3VyciYjMzI7PSYjMzI7bXRrX2NydGMtJmd0O2RkcF9jb21wW2ldLSZndDtpZDsNCiZn dDsmIzMyOytuZXh0JiMzMjs9JiMzMjttdGtfY3J0Yy0mZ3Q7ZGRwX2NvbXBbaSYjMzI7KyYjMzI7 MV0tJmd0O2lkOw0KJmd0OyYjMzI7K21tc3lzJiMzMjs9JiMzMjttdGtfY3J0Yy0mZ3Q7ZGRwX2Nv bXBfc3lzW2ldOw0KJmd0OyYjMzI7K2lmJiMzMjsoIW10a19kZHBfY29tcF9kaXNjb25uZWN0KGNv bXAsJiMzMjttdGtfY3J0Yy0mZ3Q7bW1zeXNfZGV2W21tc3lzXSwmIzMyO25leHQpKQ0KJmd0OyYj MzI7K210a19tbXN5c19kZHBfZGlzY29ubmVjdChtdGtfY3J0Yy0mZ3Q7bW1zeXNfZGV2W21tc3lz XSwmIzMyO2N1cnIsJiMzMjtuZXh0KTsNCiZndDsmIzMyOytpZiYjMzI7KCFtdGtfZGRwX2NvbXBf cmVtb3ZlKGNvbXAsJiMzMjttdGtfY3J0Yy0mZ3Q7bXV0ZXhbbW1zeXNdKSkNCiZndDsmIzMyOytt dGtfbXV0ZXhfcmVtb3ZlX2NvbXAobXRrX2NydGMtJmd0O211dGV4W210a19jcnRjLSZndDtkZHBf Y29tcF9zeXNbaV1dLA0KJmd0OyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMz MjttdGtfY3J0Yy0mZ3Q7ZGRwX2NvbXBbaV0tJmd0O2lkKTsNCiZndDsmIzMyOyYjMzI7fQ0KJmd0 OyYjMzI7LWlmJiMzMjsoIW10a19kZHBfY29tcF9yZW1vdmUobXRrX2NydGMtJmd0O2RkcF9jb21w W2ldLCYjMzI7bXRrX2NydGMtJmd0O211dGV4KSkNCiZndDsmIzMyOy1tdGtfbXV0ZXhfcmVtb3Zl X2NvbXAobXRrX2NydGMtJmd0O211dGV4LCYjMzI7bXRrX2NydGMtJmd0O2RkcF9jb21wW2ldLSZn dDtpZCk7DQomZ3Q7JiMzMjsrDQomZ3Q7JiMzMjsrbW1zeXMmIzMyOz0mIzMyO210a19jcnRjLSZn dDtkZHBfY29tcF9zeXNbaV07DQomZ3Q7JiMzMjsraWYmIzMyOyghbXRrX2RkcF9jb21wX3JlbW92 ZShtdGtfY3J0Yy0mZ3Q7ZGRwX2NvbXBbaV0sJiMzMjttdGtfY3J0Yy0mZ3Q7bXV0ZXhbbW1zeXNd KSkNCiZndDsmIzMyOyttdGtfbXV0ZXhfcmVtb3ZlX2NvbXAobXRrX2NydGMtJmd0O211dGV4W21t c3lzXSwmIzMyO210a19jcnRjLSZndDtkZHBfY29tcFtpXS0mZ3Q7aWQpOw0KJmd0OyYjMzI7Kw0K Jmd0OyYjMzI7JiMzMjttdGtfY3J0Y19kZHBfY2xrX2Rpc2FibGUobXRrX2NydGMpOw0KJmd0OyYj MzI7LW10a19tdXRleF91bnByZXBhcmUobXRrX2NydGMtJmd0O211dGV4KTsNCiZndDsmIzMyOyYj MzI7DQomZ3Q7JiMzMjstcG1fcnVudGltZV9wdXQoZHJtLSZndDtkZXYpOw0KJmd0OyYjMzI7K2Zv ciYjMzI7KGkmIzMyOz0mIzMyOzA7JiMzMjtpJiMzMjsmbHQ7JiMzMjtNQVhfTU1TWVM7JiMzMjtp KyspDQomZ3Q7JiMzMjsraWYmIzMyOyhtdGtfY3J0Yy0mZ3Q7ZXhpc3RbaV0mIzMyOyZhbXA7JmFt cDsmIzMyO210a19jcnRjLSZndDttdXRleFtpXSkNCiZndDsmIzMyOyttdGtfbXV0ZXhfdW5wcmVw YXJlKG10a19jcnRjLSZndDttdXRleFtpXSk7DQomZ3Q7JiMzMjsrDQomZ3Q7JiMzMjsrZm9yJiMz MjsoaSYjMzI7PSYjMzI7MDsmIzMyO2kmIzMyOyZsdDsmIzMyO01BWF9NTVNZUzsmIzMyO2krKykN CiZndDsmIzMyOytpZiYjMzI7KG10a19jcnRjLSZndDtleGlzdFtpXSkNCiZndDsmIzMyOyttdGtf bW1zeXNfdG9wX2Nsa19kaXNhYmxlKG10a19jcnRjLSZndDttbXN5c19kZXZbaV0pOw0KJmd0OyYj MzI7Kw0KJmd0OyYjMzI7K3BtX3J1bnRpbWVfcHV0X3N5bmMoZHJtLSZndDtkZXYpOw0KJmd0OyYj MzI7JiMzMjsNCiZndDsmIzMyOyYjMzI7aWYmIzMyOyhjcnRjLSZndDtzdGF0ZS0mZ3Q7ZXZlbnQm IzMyOyZhbXA7JmFtcDsmIzMyOyFjcnRjLSZndDtzdGF0ZS0mZ3Q7YWN0aXZlKSYjMzI7ew0KJmd0 OyYjMzI7JiMzMjtzcGluX2xvY2tfaXJxc2F2ZSgmYW1wO2NydGMtJmd0O2Rldi0mZ3Q7ZXZlbnRf bG9jaywmIzMyO2ZsYWdzKTsNCiZndDsmIzMyO0BAJiMzMjstNTgxLDkmIzMyOys2NjMsMTUmIzMy O0BAJiMzMjtzdGF0aWMmIzMyO3ZvaWQmIzMyO210a19jcnRjX3VwZGF0ZV9jb25maWcoc3RydWN0 JiMzMjttdGtfY3J0YyYjMzI7Km10a19jcnRjLCYjMzI7Ym9vbCYjMzI7bmVlZHNfdmJsYW5rKQ0K Jmd0OyYjMzI7JiMzMjttdGtfY3J0Yy0mZ3Q7cGVuZGluZ19hc3luY19wbGFuZXMmIzMyOz0mIzMy O3RydWU7DQomZ3Q7JiMzMjsmIzMyOw0KJmd0OyYjMzI7JiMzMjtpZiYjMzI7KHByaXYtJmd0O2Rh dGEtJmd0O3NoYWRvd19yZWdpc3RlcikmIzMyO3sNCiZndDsmIzMyOy1tdGtfbXV0ZXhfYWNxdWly ZShtdGtfY3J0Yy0mZ3Q7bXV0ZXgpOw0KJmd0OyYjMzI7K2ZvciYjMzI7KGkmIzMyOz0mIzMyOzA7 JiMzMjtpJiMzMjsmbHQ7JiMzMjtNQVhfTU1TWVM7JiMzMjtpKyspDQomZ3Q7JiMzMjsraWYmIzMy OyhtdGtfY3J0Yy0mZ3Q7ZXhpc3RbaV0mIzMyOyZhbXA7JmFtcDsmIzMyO210a19jcnRjLSZndDtt dXRleFtpXSkNCiZndDsmIzMyOyttdGtfbXV0ZXhfYWNxdWlyZShtdGtfY3J0Yy0mZ3Q7bXV0ZXhb aV0pOw0KJmd0OyYjMzI7Kw0KJmd0OyYjMzI7JiMzMjttdGtfY3J0Y19kZHBfY29uZmlnKGNydGMs JiMzMjtOVUxMKTsNCiZndDsmIzMyOy1tdGtfbXV0ZXhfcmVsZWFzZShtdGtfY3J0Yy0mZ3Q7bXV0 ZXgpOw0KJmd0OyYjMzI7Kw0KJmd0OyYjMzI7K2ZvciYjMzI7KGkmIzMyOz0mIzMyOzA7JiMzMjtp JiMzMjsmbHQ7JiMzMjtNQVhfTU1TWVM7JiMzMjtpKyspDQomZ3Q7JiMzMjsraWYmIzMyOyhtdGtf Y3J0Yy0mZ3Q7ZXhpc3RbaV0mIzMyOyZhbXA7JmFtcDsmIzMyO210a19jcnRjLSZndDttdXRleFtp XSkNCiZndDsmIzMyOyttdGtfbXV0ZXhfcmVsZWFzZShtdGtfY3J0Yy0mZ3Q7bXV0ZXhbaV0pOw0K Jmd0OyYjMzI7JiMzMjt9DQomZ3Q7JiMzMjsmIzMyOyNpZiYjMzI7SVNfUkVBQ0hBQkxFKENPTkZJ R19NVEtfQ01EUSkNCiZndDsmIzMyOyYjMzI7aWYmIzMyOyhtdGtfY3J0Yy0mZ3Q7Y21kcV9jbGll bnQuY2hhbikmIzMyO3sNCiZndDsmIzMyO0BAJiMzMjstNjU5LDYmIzMyOys3NDcsNyYjMzI7QEAm IzMyO3N0YXRpYyYjMzI7dm9pZCYjMzI7bXRrX2NydGNfdXBkYXRlX291dHB1dChzdHJ1Y3QmIzMy O2RybV9jcnRjJiMzMjsqY3J0YywNCiZndDsmIzMyOyYjMzI7ew0KJmd0OyYjMzI7JiMzMjtpbnQm IzMyO2NydGNfaW5kZXgmIzMyOz0mIzMyO2RybV9jcnRjX2luZGV4KGNydGMpOw0KJmd0OyYjMzI7 JiMzMjtpbnQmIzMyO2k7DQomZ3Q7JiMzMjsrdW5zaWduZWQmIzMyO2ludCYjMzI7bW1zeXM7DQom Z3Q7JiMzMjsmIzMyO3N0cnVjdCYjMzI7ZGV2aWNlJiMzMjsqZGV2Ow0KJmd0OyYjMzI7JiMzMjtz dHJ1Y3QmIzMyO2RybV9jcnRjX3N0YXRlJiMzMjsqY3J0Y19zdGF0ZSYjMzI7PSYjMzI7c3RhdGUt Jmd0O2NydGNzW2NydGNfaW5kZXhdLm5ld19zdGF0ZTsNCiZndDsmIzMyOyYjMzI7c3RydWN0JiMz MjttdGtfY3J0YyYjMzI7Km10a19jcnRjJiMzMjs9JiMzMjt0b19tdGtfY3J0YyhjcnRjKTsNCiZn dDsmIzMyO0BAJiMzMjstNjcxLDcmIzMyOys3NjAsOCYjMzI7QEAmIzMyO3N0YXRpYyYjMzI7dm9p ZCYjMzI7bXRrX2NydGNfdXBkYXRlX291dHB1dChzdHJ1Y3QmIzMyO2RybV9jcnRjJiMzMjsqY3J0 YywNCiZndDsmIzMyOyYjMzI7aWYmIzMyOyghbXRrX2NydGMtJmd0O251bV9jb25uX3JvdXRlcykN CiZndDsmIzMyOyYjMzI7cmV0dXJuOw0KJmd0OyYjMzI7JiMzMjsNCiZndDsmIzMyOy1wcml2JiMz Mjs9JiMzMjsoKHN0cnVjdCYjMzI7bXRrX2RybV9wcml2YXRlJiMzMjsqKWNydGMtJmd0O2Rldi0m Z3Q7ZGV2X3ByaXZhdGUpLSZndDthbGxfZHJtX3ByaXZhdGVbY3J0Y19pbmRleF07DQomZ3Q7JiMz MjsrbW1zeXMmIzMyOz0mIzMyO210a19jcnRjLSZndDtjb25uX3JvdXRlc19zeXM7DQomZ3Q7JiMz MjsrcHJpdiYjMzI7PSYjMzI7KChzdHJ1Y3QmIzMyO210a19kcm1fcHJpdmF0ZSYjMzI7KiljcnRj LSZndDtkZXYtJmd0O2Rldl9wcml2YXRlKS0mZ3Q7YWxsX2RybV9wcml2YXRlW21tc3lzXTsNCiZn dDsmIzMyOyYjMzI7ZGV2JiMzMjs9JiMzMjtwcml2LSZndDtkZXY7DQomZ3Q7JiMzMjsmIzMyOw0K Jmd0OyYjMzI7JiMzMjtkZXZfZGJnKGRldiwmIzMyOyZxdW90O2Nvbm5lY3RvciYjMzI7Y2hhbmdl OiVkLCYjMzI7ZW5jb2RlciYjMzI7bWFzazoweCV4JiMzMjtmb3ImIzMyO2NydGM6JWQmIzkyO24m cXVvdDssDQomZ3Q7JiMzMjtAQCYjMzI7LTY4NCw2JiMzMjsrNzc0LDgmIzMyO0BAJiMzMjtzdGF0 aWMmIzMyO3ZvaWQmIzMyO210a19jcnRjX3VwZGF0ZV9vdXRwdXQoc3RydWN0JiMzMjtkcm1fY3J0 YyYjMzI7KmNydGMsDQomZ3Q7JiMzMjsmIzMyO2lmJiMzMjsoY29tcC0mZ3Q7ZW5jb2Rlcl9pbmRl eCYjMzI7Jmd0Oz0mIzMyOzAmIzMyOyZhbXA7JmFtcDsNCiZndDsmIzMyOyYjMzI7JiMzMjsmIzMy OyYjMzI7JiMzMjsoZW5jb2Rlcl9tYXNrJiMzMjsmYW1wOyYjMzI7QklUKGNvbXAtJmd0O2VuY29k ZXJfaW5kZXgpKSkmIzMyO3sNCiZndDsmIzMyOyYjMzI7bXRrX2NydGMtJmd0O2RkcF9jb21wW210 a19jcnRjLSZndDtkZHBfY29tcF9uciYjMzI7LSYjMzI7MV0mIzMyOz0mIzMyO2NvbXA7DQomZ3Q7 JiMzMjsrbXRrX2NydGMtJmd0O2RkcF9jb21wX3N5c1ttdGtfY3J0Yy0mZ3Q7ZGRwX2NvbXBfbnIm IzMyOy0mIzMyOzFdJiMzMjs9JiMzMjttbXN5czsNCiZndDsmIzMyOyttdGtfY3J0Yy0mZ3Q7ZXhp c3RbbW1zeXNdJiMzMjs9JiMzMjt0cnVlOw0KJmd0OyYjMzI7JiMzMjtkZXZfZGJnKGRldiwmIzMy OyZxdW90O0FkZCYjMzI7Y29tcF9pZDomIzMyOyVkJiMzMjthdCYjMzI7cGF0aCYjMzI7aW5kZXgm IzMyOyVkJiM5MjtuJnF1b3Q7LA0KJmd0OyYjMzI7JiMzMjtjb21wLSZndDtpZCwmIzMyO210a19j cnRjLSZndDtkZHBfY29tcF9uciYjMzI7LSYjMzI7MSk7DQomZ3Q7JiMzMjsmIzMyO2JyZWFrOw0K Jmd0OyYjMzI7QEAmIzMyOy03MjAsMTMmIzMyOys4MTIsMzUmIzMyO0BAJiMzMjtzdGF0aWMmIzMy O3ZvaWQmIzMyO210a19jcnRjX2F0b21pY19lbmFibGUoc3RydWN0JiMzMjtkcm1fY3J0YyYjMzI7 KmNydGMsDQomZ3Q7JiMzMjsmIzMyO3N0cnVjdCYjMzI7bXRrX2NydGMmIzMyOyptdGtfY3J0YyYj MzI7PSYjMzI7dG9fbXRrX2NydGMoY3J0Yyk7DQomZ3Q7JiMzMjsmIzMyO3N0cnVjdCYjMzI7bXRr X2RkcF9jb21wJiMzMjsqY29tcCYjMzI7PSYjMzI7bXRrX2NydGMtJmd0O2RkcF9jb21wWzBdOw0K Jmd0OyYjMzI7JiMzMjtpbnQmIzMyO3JldDsNCiZndDsmIzMyOytpbnQmIzMyO2ksJiMzMjtqOw0K Jmd0OyYjMzI7K2ludCYjMzI7bW1zeXNfY250JiMzMjs9JiMzMjswOw0KJmd0OyYjMzI7JiMzMjsN CiZndDsmIzMyOyYjMzI7RFJNX0RFQlVHX0RSSVZFUigmcXVvdDslcyYjMzI7JWQmIzkyO24mcXVv dDssJiMzMjtfX2Z1bmNfXywmIzMyO2NydGMtJmd0O2Jhc2UuaWQpOw0KJmd0OyYjMzI7JiMzMjsN CiZndDsmIzMyOy1yZXQmIzMyOz0mIzMyO210a19kZHBfY29tcF9wb3dlcl9vbihjb21wKTsNCiZn dDsmIzMyOy1pZiYjMzI7KHJldCYjMzI7Jmx0OyYjMzI7MCkmIzMyO3sNCiZndDsmIzMyOy1EUk1f REVWX0VSUk9SKGNvbXAtJmd0O2RldiwmIzMyOyZxdW90O0ZhaWxlZCYjMzI7dG8mIzMyO2VuYWJs ZSYjMzI7cG93ZXImIzMyO2RvbWFpbjomIzMyOyVkJiM5MjtuJnF1b3Q7LCYjMzI7cmV0KTsNCiZn dDsmIzMyOy1yZXR1cm47DQomZ3Q7JiMzMjsrZm9yJiMzMjsoaSYjMzI7PSYjMzI7MDsmIzMyO2km IzMyOyZsdDsmIzMyO01BWF9NTVNZUzsmIzMyO2krKykNCiZndDsmIzMyOytpZiYjMzI7KG10a19j cnRjLSZndDtleGlzdFtpXSkNCiZndDsmIzMyOyttbXN5c19jbnQrKzsNCiZndDsmIzMyOysNCiZn dDsmIzMyOytpZiYjMzI7KG1tc3lzX2NudCYjMzI7PT0mIzMyOzEpJiMzMjt7DQomZ3Q7JiMzMjsr cmV0JiMzMjs9JiMzMjtwbV9ydW50aW1lX3Jlc3VtZV9hbmRfZ2V0KGNvbXAtJmd0O2Rldik7DQom Z3Q7JiMzMjsraWYmIzMyOyhyZXQmIzMyOyZsdDsmIzMyOzApJiMzMjt7DQomZ3Q7JiMzMjsrRFJN X0RFVl9FUlJPUihjb21wLSZndDtkZXYsJiMzMjsmcXVvdDtGYWlsZWQmIzMyO3RvJiMzMjtlbmFi bGUmIzMyO3Bvd2VyJiMzMjtkb21haW46JiMzMjslZCYjOTI7biZxdW90OywmIzMyO3JldCk7DQom Z3Q7JiMzMjsrcmV0dXJuOw0KJmd0OyYjMzI7K30NCiZndDsmIzMyOyt9JiMzMjtlbHNlJiMzMjt7 DQomZ3Q7JiMzMjsrZm9yJiMzMjsoaSYjMzI7PSYjMzI7MDsmIzMyO2kmIzMyOyZsdDsmIzMyO01B WF9NTVNZUzsmIzMyO2krKykmIzMyO3sNCiZndDsmIzMyOytpZiYjMzI7KCFtdGtfY3J0Yy0mZ3Q7 ZXhpc3RbaV0pDQomZ3Q7JiMzMjsrY29udGludWU7DQomZ3Q7JiMzMjsrcmV0JiMzMjs9JiMzMjtw bV9ydW50aW1lX3Jlc3VtZV9hbmRfZ2V0KG10a19jcnRjLSZndDttbXN5c19kZXZbaV0pOw0KJmd0 OyYjMzI7K2lmJiMzMjsocmV0JiMzMjsmbHQ7JiMzMjswKSYjMzI7ew0KJmd0OyYjMzI7K0RSTV9E RVZfRVJST1IobXRrX2NydGMtJmd0O21tc3lzX2RldltpXSwNCiZndDsmIzMyOysmIzMyOyYjMzI7 JiMzMjsmIzMyOyYjMzI7JiMzMjsmcXVvdDtGYWlsZWQmIzMyO3RvJiMzMjtlbmFibGUmIzMyO3Bv d2VyJiMzMjtkb21haW46JiMzMjslZCYjOTI7biZxdW90OywmIzMyO3JldCk7DQomZ3Q7JiMzMjsr Zm9yJiMzMjsoaiYjMzI7PSYjMzI7aSYjMzI7LSYjMzI7MTsmIzMyO2omIzMyOyZndDs9JiMzMjsw OyYjMzI7ai0tKQ0KJmd0OyYjMzI7K2lmJiMzMjsobXRrX2NydGMtJmd0O2V4aXN0W2ldKQ0KJmd0 OyYjMzI7K3BtX3J1bnRpbWVfcHV0KGNvbXAtJmd0O2Rldik7DQomZ3Q7JiMzMjsrcmV0dXJuOw0K Jmd0OyYjMzI7K30NCiZndDsmIzMyOyt9DQomZ3Q7JiMzMjsmIzMyO30NCiZndDsmIzMyOyYjMzI7 DQomZ3Q7JiMzMjsmIzMyO210a19jcnRjX3VwZGF0ZV9vdXRwdXQoY3J0YywmIzMyO3N0YXRlKTsN CiZndDsmIzMyO0BAJiMzMjstNzQ2LDEyJiMzMjsrODYwLDE3JiMzMjtAQCYjMzI7c3RhdGljJiMz Mjt2b2lkJiMzMjttdGtfY3J0Y19hdG9taWNfZGlzYWJsZShzdHJ1Y3QmIzMyO2RybV9jcnRjJiMz MjsqY3J0YywNCiZndDsmIzMyOyYjMzI7ew0KJmd0OyYjMzI7JiMzMjtzdHJ1Y3QmIzMyO210a19j cnRjJiMzMjsqbXRrX2NydGMmIzMyOz0mIzMyO3RvX210a19jcnRjKGNydGMpOw0KJmd0OyYjMzI7 JiMzMjtzdHJ1Y3QmIzMyO210a19kZHBfY29tcCYjMzI7KmNvbXAmIzMyOz0mIzMyO210a19jcnRj LSZndDtkZHBfY29tcFswXTsNCiZndDsmIzMyOy1pbnQmIzMyO2k7DQomZ3Q7JiMzMjsraW50JiMz MjtpLCYjMzI7cmV0Ow0KJmd0OyYjMzI7K2ludCYjMzI7bW1zeXNfY250JiMzMjs9JiMzMjswOw0K Jmd0OyYjMzI7JiMzMjsNCiZndDsmIzMyOyYjMzI7RFJNX0RFQlVHX0RSSVZFUigmcXVvdDslcyYj MzI7JWQmIzkyO24mcXVvdDssJiMzMjtfX2Z1bmNfXywmIzMyO2NydGMtJmd0O2Jhc2UuaWQpOw0K Jmd0OyYjMzI7JiMzMjtpZiYjMzI7KCFtdGtfY3J0Yy0mZ3Q7ZW5hYmxlZCkNCiZndDsmIzMyOyYj MzI7cmV0dXJuOw0KJmd0OyYjMzI7JiMzMjsNCiZndDsmIzMyOytmb3ImIzMyOyhpJiMzMjs9JiMz MjswOyYjMzI7aSYjMzI7Jmx0OyYjMzI7TUFYX01NU1lTOyYjMzI7aSsrKQ0KJmd0OyYjMzI7K2lm JiMzMjsobXRrX2NydGMtJmd0O2V4aXN0W2ldKQ0KJmd0OyYjMzI7K21tc3lzX2NudCsrOw0KJmd0 OyYjMzI7Kw0KJmd0OyYjMzI7JiMzMjsvKiYjMzI7U2V0JiMzMjthbGwmIzMyO3BlbmRpbmcmIzMy O3BsYW5lJiMzMjtzdGF0ZSYjMzI7dG8mIzMyO2Rpc2FibGVkJiMzMjsqLw0KJmd0OyYjMzI7JiMz Mjtmb3ImIzMyOyhpJiMzMjs9JiMzMjswOyYjMzI7aSYjMzI7Jmx0OyYjMzI7bXRrX2NydGMtJmd0 O2xheWVyX25yOyYjMzI7aSsrKSYjMzI7ew0KJmd0OyYjMzI7JiMzMjtzdHJ1Y3QmIzMyO2RybV9w bGFuZSYjMzI7KnBsYW5lJiMzMjs9JiMzMjsmYW1wO210a19jcnRjLSZndDtwbGFuZXNbaV07DQom Z3Q7JiMzMjtAQCYjMzI7LTc3Niw3JiMzMjsrODk1LDIxJiMzMjtAQCYjMzI7c3RhdGljJiMzMjt2 b2lkJiMzMjttdGtfY3J0Y19hdG9taWNfZGlzYWJsZShzdHJ1Y3QmIzMyO2RybV9jcnRjJiMzMjsq Y3J0YywNCiZndDsmIzMyOyYjMzI7DQomZ3Q7JiMzMjsmIzMyO2RybV9jcnRjX3ZibGFua19vZmYo Y3J0Yyk7DQomZ3Q7JiMzMjsmIzMyO210a19jcnRjX2RkcF9od19maW5pKG10a19jcnRjKTsNCiZn dDsmIzMyOy1tdGtfZGRwX2NvbXBfcG93ZXJfb2ZmKGNvbXApOw0KJmd0OyYjMzI7Kw0KJmd0OyYj MzI7K2lmJiMzMjsobW1zeXNfY250JiMzMjsmZ3Q7JiMzMjsxKSYjMzI7ew0KJmd0OyYjMzI7K2Zv ciYjMzI7KGkmIzMyOz0mIzMyOzA7JiMzMjtpJiMzMjsmbHQ7JiMzMjtNQVhfTU1TWVM7JiMzMjtp KyspJiMzMjt7DQomZ3Q7JiMzMjsraWYmIzMyOyhtdGtfY3J0Yy0mZ3Q7ZXhpc3RbaV0pJiMzMjt7 DQomZ3Q7JiMzMjsrcmV0JiMzMjs9JiMzMjtwbV9ydW50aW1lX3B1dChtdGtfY3J0Yy0mZ3Q7bW1z eXNfZGV2W2ldKTsNCiZndDsmIzMyOytpZiYjMzI7KHJldCYjMzI7Jmx0OyYjMzI7MCkNCiZndDsm IzMyOytEUk1fREVWX0VSUk9SKG10a19jcnRjLSZndDttbXN5c19kZXZbaV0sDQomZ3Q7JiMzMjsr JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JnF1b3Q7RmFpbGVkJiMzMjt0byYjMzI7ZGlz YWJsZSYjMzI7cG93ZXImIzMyO2RvbWFpbjomIzMyOyVkJiM5MjtuJnF1b3Q7LCYjMzI7cmV0KTsN CiZndDsmIzMyOyt9DQomZ3Q7JiMzMjsrfQ0KJmd0OyYjMzI7K30mIzMyO2Vsc2UmIzMyO3sNCiZn dDsmIzMyOytyZXQmIzMyOz0mIzMyO3BtX3J1bnRpbWVfcHV0KGNvbXAtJmd0O2Rldik7DQomZ3Q7 JiMzMjsraWYmIzMyOyhyZXQmIzMyOyZsdDsmIzMyOzApDQomZ3Q7JiMzMjsrRFJNX0RFVl9FUlJP Uihjb21wLSZndDtkZXYsJiMzMjsmcXVvdDtGYWlsZWQmIzMyO3RvJiMzMjtkaXNhYmxlJiMzMjtw b3dlciYjMzI7ZG9tYWluOiYjMzI7JWQmIzkyO24mcXVvdDssJiMzMjtyZXQpOw0KJmd0OyYjMzI7 K30NCiZndDsmIzMyOyYjMzI7DQomZ3Q7JiMzMjsmIzMyO210a19jcnRjLSZndDtlbmFibGVkJiMz Mjs9JiMzMjtmYWxzZTsNCiZndDsmIzMyOyYjMzI7fQ0KJmd0OyYjMzI7QEAmIzMyOy05MzcsNDkm IzMyOysxMDcwLDEwOCYjMzI7QEAmIzMyO3N0cnVjdCYjMzI7ZGV2aWNlJiMzMjsqbXRrX2NydGNf ZG1hX2Rldl9nZXQoc3RydWN0JiMzMjtkcm1fY3J0YyYjMzI7KmNydGMpDQomZ3Q7JiMzMjsmIzMy O3JldHVybiYjMzI7bXRrX2NydGMtJmd0O2RtYV9kZXY7DQomZ3Q7JiMzMjsmIzMyO30NCiZndDsm IzMyOyYjMzI7DQomZ3Q7JiMzMjstaW50JiMzMjttdGtfY3J0Y19jcmVhdGUoc3RydWN0JiMzMjtk cm1fZGV2aWNlJiMzMjsqZHJtX2RldiwmIzMyO2NvbnN0JiMzMjt1bnNpZ25lZCYjMzI7aW50JiMz MjsqcGF0aCwNCiZndDsmIzMyOy0mIzMyOyYjMzI7JiMzMjsmIzMyO3Vuc2lnbmVkJiMzMjtpbnQm IzMyO3BhdGhfbGVuLCYjMzI7aW50JiMzMjtwcml2X2RhdGFfaW5kZXgsDQomZ3Q7JiMzMjstJiMz MjsmIzMyOyYjMzI7JiMzMjtjb25zdCYjMzI7c3RydWN0JiMzMjttdGtfZHJtX3JvdXRlJiMzMjsq Y29ubl9yb3V0ZXMsDQomZ3Q7JiMzMjstJiMzMjsmIzMyOyYjMzI7JiMzMjt1bnNpZ25lZCYjMzI7 aW50JiMzMjtudW1fY29ubl9yb3V0ZXMpDQomZ3Q7JiMzMjsraW50JiMzMjttdGtfY3J0Y19jcmVh dGUoc3RydWN0JiMzMjtkcm1fZGV2aWNlJiMzMjsqZHJtX2RldiwmIzMyO2VudW0mIzMyO210a19j cnRjX3BhdGgmIzMyO3BhdGhfc2VsKQ0KJmd0OyYjMzI7JiMzMjt7DQomZ3Q7JiMzMjsmIzMyO3N0 cnVjdCYjMzI7bXRrX2RybV9wcml2YXRlJiMzMjsqcHJpdiYjMzI7PSYjMzI7ZHJtX2Rldi0mZ3Q7 ZGV2X3ByaXZhdGU7DQomZ3Q7JiMzMjsmIzMyO3N0cnVjdCYjMzI7ZGV2aWNlJiMzMjsqZGV2JiMz Mjs9JiMzMjtkcm1fZGV2LSZndDtkZXY7DQomZ3Q7JiMzMjsmIzMyO3N0cnVjdCYjMzI7bXRrX2Ny dGMmIzMyOyptdGtfY3J0YzsNCiZndDsmIzMyOyYjMzI7dW5zaWduZWQmIzMyO2ludCYjMzI7bnVt X2NvbXBfcGxhbmVzJiMzMjs9JiMzMjswOw0KJmd0OyYjMzI7JiMzMjtpbnQmIzMyO3JldDsNCiZn dDsmIzMyOy1pbnQmIzMyO2k7DQomZ3Q7JiMzMjsraW50JiMzMjtpLCYjMzI7aiwmIzMyO2s7DQom Z3Q7JiMzMjsmIzMyO2Jvb2wmIzMyO2hhc19jdG0mIzMyOz0mIzMyO2ZhbHNlOw0KJmd0OyYjMzI7 JiMzMjt1aW50JiMzMjtnYW1tYV9sdXRfc2l6ZSYjMzI7PSYjMzI7MDsNCiZndDsmIzMyOyYjMzI7 c3RydWN0JiMzMjtkcm1fY3J0YyYjMzI7KnRtcDsNCiZndDsmIzMyOyYjMzI7aW50JiMzMjtjcnRj X2kmIzMyOz0mIzMyOzA7DQomZ3Q7JiMzMjstDQomZ3Q7JiMzMjstaWYmIzMyOyghcGF0aCkNCiZn dDsmIzMyOy1yZXR1cm4mIzMyOzA7DQomZ3Q7JiMzMjstDQomZ3Q7JiMzMjstcHJpdiYjMzI7PSYj MzI7cHJpdi0mZ3Q7YWxsX2RybV9wcml2YXRlW3ByaXZfZGF0YV9pbmRleF07DQomZ3Q7JiMzMjsr c3RydWN0JiMzMjttdGtfZHJtX3ByaXZhdGUmIzMyOypzdWJzeXNfcHJpdjsNCiZndDsmIzMyOytz dHJ1Y3QmIzMyO210a19jcnRjX2NvbXBfaW5mbyYjMzI7cGF0aFtERFBfQ09NUE9ORU5UX0lEX01B WF07DQomZ3Q7JiMzMjsrdW5zaWduZWQmIzMyO2ludCYjMzI7cGF0aF9sZW4mIzMyOz0mIzMyOzA7 DQomZ3Q7JiMzMjsrY29uc3QmIzMyO3N0cnVjdCYjMzI7bXRrX2RybV9yb3V0ZSYjMzI7KmNvbm5f cm91dGVzJiMzMjs9JiMzMjtOVUxMOw0KJmd0OyYjMzI7K3Vuc2lnbmVkJiMzMjtpbnQmIzMyO251 bV9jb25uX3JvdXRlcyYjMzI7PSYjMzI7MDsNCiZndDsmIzMyOytlbnVtJiMzMjttdGtfZHJtX21t c3lzJiMzMjtjb25uX21tc3lzOw0KJmd0OyYjMzI7JiMzMjsNCiZndDsmIzMyOyYjMzI7ZHJtX2Zv cl9lYWNoX2NydGModG1wLCYjMzI7ZHJtX2RldikNCiZndDsmIzMyOyYjMzI7Y3J0Y19pKys7DQom Z3Q7JiMzMjsmIzMyOw0KJmd0OyYjMzI7K2ZvciYjMzI7KGomIzMyOz0mIzMyOzA7JiMzMjtqJiMz MjsmbHQ7JiMzMjtwcml2LSZndDtkYXRhLSZndDttbXN5c19kZXZfbnVtOyYjMzI7aisrKSYjMzI7 ew0KJmd0OyYjMzI7K2ZvciYjMzI7KGsmIzMyOz0mIzMyOzA7JiMzMjtrJiMzMjsmbHQ7JiMzMjtN QVhfTU1TWVM7JiMzMjtrKyspJiMzMjt7DQomZ3Q7JiMzMjsrY29uc3QmIzMyO3Vuc2lnbmVkJiMz MjtpbnQmIzMyOypzdWJzeXNfcGF0aDsNCiZndDsmIzMyOyt1bnNpZ25lZCYjMzI7aW50JiMzMjtz dWJzeXNfcGF0aF9sZW47DQomZ3Q7JiMzMjsrdW5zaWduZWQmIzMyO2ludCYjMzI7b3JkZXImIzMy Oz0mIzMyOzA7DQomZ3Q7JiMzMjsrDQomZ3Q7JiMzMjsrc3Vic3lzX3ByaXYmIzMyOz0mIzMyO3By aXYtJmd0O2FsbF9kcm1fcHJpdmF0ZVtrXTsNCiZndDsmIzMyOytpZiYjMzI7KCFzdWJzeXNfcHJp dikNCiZndDsmIzMyOytjb250aW51ZTsNCiZndDsmIzMyOysNCiZndDsmIzMyOytpZiYjMzI7KHBh dGhfc2VsJiMzMjs9PSYjMzI7Q1JUQ19NQUlOKSYjMzI7ew0KJmd0OyYjMzI7K3N1YnN5c19wYXRo JiMzMjs9JiMzMjtzdWJzeXNfcHJpdi0mZ3Q7ZGF0YS0mZ3Q7bWFpbl9wYXRoOw0KJmd0OyYjMzI7 K3N1YnN5c19wYXRoX2xlbiYjMzI7PSYjMzI7c3Vic3lzX3ByaXYtJmd0O2RhdGEtJmd0O21haW5f bGVuOw0KJmd0OyYjMzI7K29yZGVyJiMzMjs9JiMzMjtzdWJzeXNfcHJpdi0mZ3Q7ZGF0YS0mZ3Q7 bWFpbl9vcmRlcjsNCiZndDsmIzMyOyt9JiMzMjtlbHNlJiMzMjtpZiYjMzI7KHBhdGhfc2VsJiMz Mjs9PSYjMzI7Q1JUQ19FWFQpJiMzMjt7DQomZ3Q7JiMzMjsrc3Vic3lzX3BhdGgmIzMyOz0mIzMy O3N1YnN5c19wcml2LSZndDtkYXRhLSZndDtleHRfcGF0aDsNCiZndDsmIzMyOytzdWJzeXNfcGF0 aF9sZW4mIzMyOz0mIzMyO3N1YnN5c19wcml2LSZndDtkYXRhLSZndDtleHRfbGVuOw0KJmd0OyYj MzI7K29yZGVyJiMzMjs9JiMzMjtzdWJzeXNfcHJpdi0mZ3Q7ZGF0YS0mZ3Q7ZXh0X29yZGVyOw0K Jmd0OyYjMzI7K30mIzMyO2Vsc2UmIzMyO2lmJiMzMjsocGF0aF9zZWwmIzMyOz09JiMzMjtDUlRD X1RISVJEKSYjMzI7ew0KJmd0OyYjMzI7K3N1YnN5c19wYXRoJiMzMjs9JiMzMjtzdWJzeXNfcHJp di0mZ3Q7ZGF0YS0mZ3Q7dGhpcmRfcGF0aDsNCiZndDsmIzMyOytzdWJzeXNfcGF0aF9sZW4mIzMy Oz0mIzMyO3N1YnN5c19wcml2LSZndDtkYXRhLSZndDt0aGlyZF9sZW47DQomZ3Q7JiMzMjsrb3Jk ZXImIzMyOz0mIzMyO3N1YnN5c19wcml2LSZndDtkYXRhLSZndDt0aGlyZF9vcmRlcjsNCiZndDsm IzMyOyt9DQomZ3Q7JiMzMjsrDQomZ3Q7JiMzMjsraWYmIzMyOyhzdWJzeXNfcHJpdi0mZ3Q7ZGF0 YS0mZ3Q7bnVtX2Nvbm5fcm91dGVzKSYjMzI7ew0KJmd0OyYjMzI7K2Nvbm5fcm91dGVzJiMzMjs9 JiMzMjtzdWJzeXNfcHJpdi0mZ3Q7ZGF0YS0mZ3Q7Y29ubl9yb3V0ZXM7DQomZ3Q7JiMzMjsrbnVt X2Nvbm5fcm91dGVzJiMzMjs9JiMzMjtzdWJzeXNfcHJpdi0mZ3Q7ZGF0YS0mZ3Q7bnVtX2Nvbm5f cm91dGVzOw0KJmd0OyYjMzI7K2Nvbm5fbW1zeXMmIzMyOz0mIzMyO3N1YnN5c19wcml2LSZndDtk YXRhLSZndDttbXN5c19pZDsNCiZndDsmIzMyOyt9DQomZ3Q7JiMzMjsrDQomZ3Q7JiMzMjsraWYm IzMyOyhqJiMzMjshPSYjMzI7b3JkZXIpDQomZ3Q7JiMzMjsrY29udGludWU7DQomZ3Q7JiMzMjsr aWYmIzMyOyghc3Vic3lzX3BhdGhfbGVuKQ0KJmd0OyYjMzI7K2NvbnRpbnVlOw0KJmd0OyYjMzI7 Kw0KJmd0OyYjMzI7K2ZvciYjMzI7KGkmIzMyOz0mIzMyOzA7JiMzMjtpJiMzMjsmbHQ7JiMzMjtz dWJzeXNfcGF0aF9sZW47JiMzMjtpKyspJiMzMjt7DQomZ3Q7JiMzMjsrcGF0aFtwYXRoX2xlbl0u c3lzJiMzMjs9JiMzMjtzdWJzeXNfcHJpdi0mZ3Q7ZGF0YS0mZ3Q7bW1zeXNfaWQ7DQomZ3Q7JiMz MjsrcGF0aFtwYXRoX2xlbl0uY29tcF9pZCYjMzI7PSYjMzI7c3Vic3lzX3BhdGhbaV07DQomZ3Q7 JiMzMjsrcGF0aF9sZW4rKzsNCiZndDsmIzMyOyt9DQomZ3Q7JiMzMjsrfQ0KJmd0OyYjMzI7K30N CiZndDsmIzMyOysNCiZndDsmIzMyOytpZiYjMzI7KCFwYXRoX2xlbikNCiZndDsmIzMyOytyZXR1 cm4mIzMyOzA7DQomZ3Q7JiMzMjsrDQomZ3Q7JiMzMjsraWYmIzMyOyhudW1fY29ubl9yb3V0ZXMp JiMzMjt7DQomZ3Q7JiMzMjsrZm9yJiMzMjsoaSYjMzI7PSYjMzI7MDsmIzMyO2kmIzMyOyZsdDsm IzMyO251bV9jb25uX3JvdXRlczsmIzMyO2krKykNCiZndDsmIzMyOytpZiYjMzI7KGNvbm5fcm91 dGVzLSZndDtjcnRjX2lkJiMzMjs9PSYjMzI7Y3J0Y19pKQ0KJmd0OyYjMzI7K2JyZWFrOw0KJmd0 OyYjMzI7K2lmJiMzMjsoaSYjMzI7PT0mIzMyO251bV9jb25uX3JvdXRlcykmIzMyO3sNCiZndDsm IzMyOytudW1fY29ubl9yb3V0ZXMmIzMyOz0mIzMyOzA7DQomZ3Q7JiMzMjsrY29ubl9yb3V0ZXMm IzMyOz0mIzMyO05VTEw7DQomZ3Q7JiMzMjsrfQ0KJmd0OyYjMzI7K30NCiZndDsmIzMyOysNCiZn dDsmIzMyOyYjMzI7Zm9yJiMzMjsoaSYjMzI7PSYjMzI7MDsmIzMyO2kmIzMyOyZsdDsmIzMyO3Bh dGhfbGVuOyYjMzI7aSsrKSYjMzI7ew0KJmd0OyYjMzI7LWVudW0mIzMyO210a19kZHBfY29tcF9p ZCYjMzI7Y29tcF9pZCYjMzI7PSYjMzI7cGF0aFtpXTsNCiZndDsmIzMyOytlbnVtJiMzMjttdGtf ZGRwX2NvbXBfaWQmIzMyO2NvbXBfaWQmIzMyOz0mIzMyO3BhdGhbaV0uY29tcF9pZDsNCiZndDsm IzMyOyYjMzI7c3RydWN0JiMzMjtkZXZpY2Vfbm9kZSYjMzI7Km5vZGU7DQomZ3Q7JiMzMjsmIzMy O3N0cnVjdCYjMzI7bXRrX2RkcF9jb21wJiMzMjsqY29tcDsNCiZndDsmIzMyOyYjMzI7DQomZ3Q7 JiMzMjsrcHJpdiYjMzI7PSYjMzI7cHJpdi0mZ3Q7YWxsX2RybV9wcml2YXRlW3BhdGhbaV0uc3lz XTsNCiZndDsmIzMyOyYjMzI7bm9kZSYjMzI7PSYjMzI7cHJpdi0mZ3Q7Y29tcF9ub2RlW2NvbXBf aWRdOw0KJmd0OyYjMzI7JiMzMjtjb21wJiMzMjs9JiMzMjsmYW1wO3ByaXYtJmd0O2RkcF9jb21w W2NvbXBfaWRdOw0KJmd0OyYjMzI7JiMzMjsNCiZndDsmIzMyOyYjMzI7LyomIzMyO05vdCYjMzI7 YWxsJiMzMjtkcm0mIzMyO2NvbXBvbmVudHMmIzMyO2hhdmUmIzMyO2EmIzMyO0RUUyYjMzI7ZGV2 aWNlJiMzMjtub2RlLCYjMzI7c3VjaCYjMzI7YXMmIzMyO292bF9hZGFwdG9yLA0KJmd0OyYjMzI7 JiMzMjsmIzMyOyomIzMyO3doaWNoJiMzMjtpcyYjMzI7dGhlJiMzMjtkcm0mIzMyO2JyaW5nJiMz Mjt1cCYjMzI7c3ViJiMzMjtkcml2ZXINCiZndDsmIzMyOyYjMzI7JiMzMjsqLw0KJmd0OyYjMzI7 LWlmJiMzMjsoIW5vZGUmIzMyOyZhbXA7JmFtcDsmIzMyO2NvbXBfaWQmIzMyOyE9JiMzMjtERFBf Q09NUE9ORU5UX0RSTV9PVkxfQURBUFRPUikmIzMyO3sNCiZndDsmIzMyOytpZiYjMzI7KCFub2Rl JiMzMjsmYW1wOyZhbXA7JiMzMjtjb21wX2lkJiMzMjshPSYjMzI7RERQX0NPTVBPTkVOVF9EUk1f T1ZMX0FEQVBUT1ImIzMyOyZhbXA7JmFtcDsNCiZndDsmIzMyOysmIzMyOyYjMzI7JiMzMjsmIzMy O2NvbXBfaWQmIzMyOyE9JiMzMjtERFBfQ09NUE9ORU5UX0RSTV9PVkxTWVNfQURBUFRPUjAmIzMy OyZhbXA7JmFtcDsNCiZndDsmIzMyOysmIzMyOyYjMzI7JiMzMjsmIzMyO2NvbXBfaWQmIzMyOyE9 JiMzMjtERFBfQ09NUE9ORU5UX0RSTV9PVkxTWVNfQURBUFRPUjEmIzMyOyZhbXA7JmFtcDsNCiZn dDsmIzMyOysmIzMyOyYjMzI7JiMzMjsmIzMyO2NvbXBfaWQmIzMyOyE9JiMzMjtERFBfQ09NUE9O RU5UX0RSTV9PVkxTWVNfQURBUFRPUjImIzMyOyZhbXA7JmFtcDsNCiZndDsmIzMyOysmIzMyOyYj MzI7JiMzMjsmIzMyO210a19kZHBfY29tcF9nZXRfdHlwZShjb21wX2lkKSYjMzI7IT0mIzMyO01U S19ESVNQX1ZJUlRVQUwpJiMzMjt7DQomZ3Q7JiMzMjsmIzMyO2Rldl9pbmZvKGRldiwNCiZndDsm IzMyOyYjMzI7JnF1b3Q7Tm90JiMzMjtjcmVhdGluZyYjMzI7Y3J0YyYjMzI7JWQmIzMyO2JlY2F1 c2UmIzMyO2NvbXBvbmVudCYjMzI7JWQmIzMyO2lzJiMzMjtkaXNhYmxlZCYjMzI7b3ImIzMyO21p c3NpbmcmIzkyO24mcXVvdDssDQomZ3Q7JiMzMjsmIzMyO2NydGNfaSwmIzMyO2NvbXBfaWQpOw0K Jmd0OyYjMzI7JiMzMjtyZXR1cm4mIzMyOzA7DQomZ3Q7JiMzMjsmIzMyO30NCiZndDsmIzMyOyYj MzI7DQomZ3Q7JiMzMjstaWYmIzMyOyghY29tcC0mZ3Q7ZGV2KSYjMzI7ew0KJmd0OyYjMzI7K2lm JiMzMjsoIWNvbXAtJmd0O2RldiYjMzI7JmFtcDsmYW1wOyYjMzI7bXRrX2RkcF9jb21wX2dldF90 eXBlKGNvbXBfaWQpJiMzMjshPSYjMzI7TVRLX0RJU1BfVklSVFVBTCkmIzMyO3sNCiZndDsmIzMy OyYjMzI7ZGV2X2VycihkZXYsJiMzMjsmcXVvdDtDb21wb25lbnQmIzMyOyVwT0YmIzMyO25vdCYj MzI7aW5pdGlhbGl6ZWQmIzkyO24mcXVvdDssJiMzMjtub2RlKTsNCiZndDsmIzMyOyYjMzI7cmV0 dXJuJiMzMjstRU5PREVWOw0KJmd0OyYjMzI7JiMzMjt9DQomZ3Q7JiMzMjtAQCYjMzI7LTk4OSw3 JiMzMjsrMTE4MSw5JiMzMjtAQCYjMzI7aW50JiMzMjttdGtfY3J0Y19jcmVhdGUoc3RydWN0JiMz Mjtkcm1fZGV2aWNlJiMzMjsqZHJtX2RldiwmIzMyO2NvbnN0JiMzMjt1bnNpZ25lZCYjMzI7aW50 JiMzMjsqcGF0aCwNCiZndDsmIzMyOyYjMzI7aWYmIzMyOyghbXRrX2NydGMpDQomZ3Q7JiMzMjsm IzMyO3JldHVybiYjMzI7LUVOT01FTTsNCiZndDsmIzMyOyYjMzI7DQomZ3Q7JiMzMjstbXRrX2Ny dGMtJmd0O21tc3lzX2RldiYjMzI7PSYjMzI7cHJpdi0mZ3Q7bW1zeXNfZGV2Ow0KJmd0OyYjMzI7 K2ZvciYjMzI7KGkmIzMyOz0mIzMyOzA7JiMzMjtpJiMzMjsmbHQ7JiMzMjtNQVhfTU1TWVM7JiMz MjtpKyspDQomZ3Q7JiMzMjsraWYmIzMyOyhwcml2LSZndDthbGxfZHJtX3ByaXZhdGVbaV0pDQom Z3Q7JiMzMjsrbXRrX2NydGMtJmd0O21tc3lzX2RldltpXSYjMzI7PSYjMzI7cHJpdi0mZ3Q7YWxs X2RybV9wcml2YXRlW2ldLSZndDttbXN5c19kZXY7DQomZ3Q7JiMzMjsmIzMyO210a19jcnRjLSZn dDtkZHBfY29tcF9uciYjMzI7PSYjMzI7cGF0aF9sZW47DQomZ3Q7JiMzMjsmIzMyO210a19jcnRj LSZndDtkZHBfY29tcCYjMzI7PSYjMzI7ZGV2bV9rY2FsbG9jKGRldiwNCiZndDsmIzMyOyYjMzI7 JiMzMjsmIzMyO210a19jcnRjLSZndDtkZHBfY29tcF9uciYjMzI7KyYjMzI7KGNvbm5fcm91dGVz JiMzMjsmIzYzOyYjMzI7MSYjMzI7OiYjMzI7MCksDQomZ3Q7JiMzMjtAQCYjMzI7LTk5OCwxOSYj MzI7KzExOTIsMzYmIzMyO0BAJiMzMjtpbnQmIzMyO210a19jcnRjX2NyZWF0ZShzdHJ1Y3QmIzMy O2RybV9kZXZpY2UmIzMyOypkcm1fZGV2LCYjMzI7Y29uc3QmIzMyO3Vuc2lnbmVkJiMzMjtpbnQm IzMyOypwYXRoLA0KJmd0OyYjMzI7JiMzMjtpZiYjMzI7KCFtdGtfY3J0Yy0mZ3Q7ZGRwX2NvbXAp DQomZ3Q7JiMzMjsmIzMyO3JldHVybiYjMzI7LUVOT01FTTsNCiZndDsmIzMyOyYjMzI7DQomZ3Q7 JiMzMjstbXRrX2NydGMtJmd0O211dGV4JiMzMjs9JiMzMjttdGtfbXV0ZXhfZ2V0KHByaXYtJmd0 O211dGV4X2Rldik7DQomZ3Q7JiMzMjstaWYmIzMyOyhJU19FUlIobXRrX2NydGMtJmd0O211dGV4 KSkmIzMyO3sNCiZndDsmIzMyOy1yZXQmIzMyOz0mIzMyO1BUUl9FUlIobXRrX2NydGMtJmd0O211 dGV4KTsNCiZndDsmIzMyOy1kZXZfZXJyKGRldiwmIzMyOyZxdW90O0ZhaWxlZCYjMzI7dG8mIzMy O2dldCYjMzI7bXV0ZXg6JiMzMjslZCYjOTI7biZxdW90OywmIzMyO3JldCk7DQomZ3Q7JiMzMjst cmV0dXJuJiMzMjtyZXQ7DQomZ3Q7JiMzMjsrbXRrX2NydGMtJmd0O2RkcF9jb21wX3N5cyYjMzI7 PSYjMzI7ZGV2bV9rbWFsbG9jX2FycmF5KGRldiwmIzMyO210a19jcnRjLSZndDtkZHBfY29tcF9u ciYjMzI7Kw0KJmd0OyYjMzI7KyYjMzI7JiMzMjsmIzMyOyYjMzI7KGNvbm5fcm91dGVzJiMzMjsm IzYzOyYjMzI7MSYjMzI7OiYjMzI7MCksDQomZ3Q7JiMzMjsrJiMzMjsmIzMyOyYjMzI7JiMzMjtz aXplb2YobXRrX2NydGMtJmd0O2RkcF9jb21wX3N5cyksJiMzMjtHRlBfS0VSTkVMKTsNCiZndDsm IzMyOytpZiYjMzI7KCFtdGtfY3J0Yy0mZ3Q7ZGRwX2NvbXBfc3lzKQ0KJmd0OyYjMzI7K3JldHVy biYjMzI7LUVOT01FTTsNCiZndDsmIzMyOysNCiZndDsmIzMyOytmb3ImIzMyOyhpJiMzMjs9JiMz MjswOyYjMzI7aSYjMzI7Jmx0OyYjMzI7TUFYX01NU1lTOyYjMzI7aSsrKSYjMzI7ew0KJmd0OyYj MzI7K2lmJiMzMjsoIXByaXYtJmd0O2FsbF9kcm1fcHJpdmF0ZVtpXSkNCiZndDsmIzMyOytjb250 aW51ZTsNCiZndDsmIzMyOysNCiZndDsmIzMyOytwcml2JiMzMjs9JiMzMjtwcml2LSZndDthbGxf ZHJtX3ByaXZhdGVbaV07DQomZ3Q7JiMzMjsrbXRrX2NydGMtJmd0O211dGV4W2ldJiMzMjs9JiMz MjttdGtfbXV0ZXhfZ2V0KHByaXYtJmd0O211dGV4X2Rldik7DQomZ3Q7JiMzMjsraWYmIzMyOyhJ U19FUlIobXRrX2NydGMtJmd0O211dGV4W2ldKSkmIzMyO3sNCiZndDsmIzMyOytyZXQmIzMyOz0m IzMyO1BUUl9FUlIobXRrX2NydGMtJmd0O211dGV4W2ldKTsNCiZndDsmIzMyOytkZXZfZXJyKGRl diwmIzMyOyZxdW90O0ZhaWxlZCYjMzI7dG8mIzMyO2dldCYjMzI7bXV0ZXg6JiMzMjslZCYjOTI7 biZxdW90OywmIzMyO3JldCk7DQomZ3Q7JiMzMjsrcmV0dXJuJiMzMjtyZXQ7DQomZ3Q7JiMzMjsr fQ0KJmd0OyYjMzI7JiMzMjt9DQomZ3Q7JiMzMjsmIzMyOw0KJmd0OyYjMzI7JiMzMjtmb3ImIzMy OyhpJiMzMjs9JiMzMjswOyYjMzI7aSYjMzI7Jmx0OyYjMzI7bXRrX2NydGMtJmd0O2RkcF9jb21w X25yOyYjMzI7aSsrKSYjMzI7ew0KJmd0OyYjMzI7LXVuc2lnbmVkJiMzMjtpbnQmIzMyO2NvbXBf aWQmIzMyOz0mIzMyO3BhdGhbaV07DQomZ3Q7JiMzMjsrdW5zaWduZWQmIzMyO2ludCYjMzI7Y29t cF9pZCYjMzI7PSYjMzI7cGF0aFtpXS5jb21wX2lkOw0KJmd0OyYjMzI7JiMzMjtzdHJ1Y3QmIzMy O210a19kZHBfY29tcCYjMzI7KmNvbXA7DQomZ3Q7JiMzMjsmIzMyOw0KJmd0OyYjMzI7K3ByaXYm IzMyOz0mIzMyO3ByaXYtJmd0O2FsbF9kcm1fcHJpdmF0ZVtwYXRoW2ldLnN5c107DQomZ3Q7JiMz MjsmIzMyO2NvbXAmIzMyOz0mIzMyOyZhbXA7cHJpdi0mZ3Q7ZGRwX2NvbXBbY29tcF9pZF07DQom Z3Q7JiMzMjsraWYmIzMyOyhtdGtfZGRwX2NvbXBfZ2V0X3R5cGUoY29tcF9pZCkmIzMyOz09JiMz MjtNVEtfRElTUF9WSVJUVUFMKQ0KJmd0OyYjMzI7K2NvbXAtJmd0O2lkJiMzMjs9JiMzMjtjb21w X2lkOw0KJmd0OyYjMzI7JiMzMjttdGtfY3J0Yy0mZ3Q7ZGRwX2NvbXBbaV0mIzMyOz0mIzMyO2Nv bXA7DQomZ3Q7JiMzMjsrbXRrX2NydGMtJmd0O2RkcF9jb21wX3N5c1tpXSYjMzI7PSYjMzI7cGF0 aFtpXS5zeXM7DQomZ3Q7JiMzMjsrbXRrX2NydGMtJmd0O2V4aXN0W3BhdGhbaV0uc3lzXSYjMzI7 PSYjMzI7dHJ1ZTsNCiZndDsmIzMyOyYjMzI7DQomZ3Q7JiMzMjsmIzMyO2lmJiMzMjsoY29tcC0m Z3Q7ZnVuY3MpJiMzMjt7DQomZ3Q7JiMzMjsmIzMyO2lmJiMzMjsoY29tcC0mZ3Q7ZnVuY3MtJmd0 O2dhbW1hX3NldCYjMzI7JmFtcDsmYW1wOyYjMzI7Y29tcC0mZ3Q7ZnVuY3MtJmd0O2dhbW1hX2dl dF9sdXRfc2l6ZSkmIzMyO3sNCiZndDsmIzMyO0BAJiMzMjstMTA0Nyw4JiMzMjsrMTI1OCwxMCYj MzI7QEAmIzMyO2ludCYjMzI7bXRrX2NydGNfY3JlYXRlKHN0cnVjdCYjMzI7ZHJtX2RldmljZSYj MzI7KmRybV9kZXYsJiMzMjtjb25zdCYjMzI7dW5zaWduZWQmIzMyO2ludCYjMzI7KnBhdGgsDQom Z3Q7JiMzMjsmIzMyOyYjMzI7KiYjMzI7SW4mIzMyO3RoZSYjMzI7Y2FzZSYjMzI7b2YmIzMyO292 bF9hZGFwdG9yJiMzMjtzdWImIzMyO2RyaXZlciwmIzMyO2l0JiMzMjtuZWVkcyYjMzI7dG8mIzMy O3VzZSYjMzI7dGhlDQomZ3Q7JiMzMjsmIzMyOyYjMzI7KiYjMzI7ZG1hX2Rldl9nZXQmIzMyO2Z1 bmN0aW9uJiMzMjt0byYjMzI7Z2V0JiMzMjtyZXByZXNlbnRhdGl2ZSYjMzI7ZG1hJiMzMjtkZXYu DQomZ3Q7JiMzMjsmIzMyOyYjMzI7Ki8NCiZndDsmIzMyOy1tdGtfY3J0Yy0mZ3Q7ZG1hX2RldiYj MzI7PSYjMzI7bXRrX2RkcF9jb21wX2RtYV9kZXZfZ2V0KCZhbXA7cHJpdi0mZ3Q7ZGRwX2NvbXBb cGF0aFswXV0pOw0KJmd0OyYjMzI7K3ByaXYmIzMyOz0mIzMyO3ByaXYtJmd0O2FsbF9kcm1fcHJp dmF0ZVtwYXRoWzBdLnN5c107DQomZ3Q7JiMzMjsrbXRrX2NydGMtJmd0O2RtYV9kZXYmIzMyOz0m IzMyO210a19kZHBfY29tcF9kbWFfZGV2X2dldCgmYW1wO3ByaXYtJmd0O2RkcF9jb21wW3BhdGhb MF0uY29tcF9pZF0pOw0KJmd0OyYjMzI7JiMzMjsNCiZndDsmIzMyOyttdGtfY3J0Yy0mZ3Q7dmRp c3BfYW9fZGV2JiMzMjs9JiMzMjtwcml2LSZndDt2ZGlzcF9hb19kZXY7DQomZ3Q7JiMzMjsmIzMy O3JldCYjMzI7PSYjMzI7bXRrX2NydGNfaW5pdChkcm1fZGV2LCYjMzI7bXRrX2NydGMsJiMzMjtj cnRjX2kpOw0KJmd0OyYjMzI7JiMzMjtpZiYjMzI7KHJldCYjMzI7Jmx0OyYjMzI7MCkNCiZndDsm IzMyOyYjMzI7cmV0dXJuJiMzMjtyZXQ7DQomZ3Q7JiMzMjtAQCYjMzI7LTEwNjEsNyYjMzI7KzEy NzQsNyYjMzI7QEAmIzMyO2ludCYjMzI7bXRrX2NydGNfY3JlYXRlKHN0cnVjdCYjMzI7ZHJtX2Rl dmljZSYjMzI7KmRybV9kZXYsJiMzMjtjb25zdCYjMzI7dW5zaWduZWQmIzMyO2ludCYjMzI7KnBh dGgsDQomZ3Q7JiMzMjsmIzMyOw0KJmd0OyYjMzI7JiMzMjsjaWYmIzMyO0lTX1JFQUNIQUJMRShD T05GSUdfTVRLX0NNRFEpDQomZ3Q7JiMzMjsmIzMyO2kmIzMyOz0mIzMyO3ByaXYtJmd0O21ib3hf aW5kZXgrKzsNCiZndDsmIzMyOy1tdGtfY3J0Yy0mZ3Q7Y21kcV9jbGllbnQuY2xpZW50LmRldiYj MzI7PSYjMzI7bXRrX2NydGMtJmd0O21tc3lzX2RldjsNCiZndDsmIzMyOyttdGtfY3J0Yy0mZ3Q7 Y21kcV9jbGllbnQuY2xpZW50LmRldiYjMzI7PSYjMzI7bXRrX2NydGMtJmd0O21tc3lzX2Rldltw cml2LSZndDtkYXRhLSZndDttbXN5c19pZF07DQomZ3Q7JiMzMjsmIzMyO210a19jcnRjLSZndDtj bWRxX2NsaWVudC5jbGllbnQudHhfYmxvY2smIzMyOz0mIzMyO2ZhbHNlOw0KJmd0OyYjMzI7JiMz MjttdGtfY3J0Yy0mZ3Q7Y21kcV9jbGllbnQuY2xpZW50Lmtub3dzX3R4ZG9uZSYjMzI7PSYjMzI7 dHJ1ZTsNCiZndDsmIzMyOyYjMzI7bXRrX2NydGMtJmd0O2NtZHFfY2xpZW50LmNsaWVudC5yeF9j YWxsYmFjayYjMzI7PSYjMzI7ZGRwX2NtZHFfY2I7DQomZ3Q7JiMzMjtAQCYjMzI7LTExMDEsNiYj MzI7KzEzMTQsNyYjMzI7QEAmIzMyO2ludCYjMzI7bXRrX2NydGNfY3JlYXRlKHN0cnVjdCYjMzI7 ZHJtX2RldmljZSYjMzI7KmRybV9kZXYsJiMzMjtjb25zdCYjMzI7dW5zaWduZWQmIzMyO2ludCYj MzI7KnBhdGgsDQomZ3Q7JiMzMjsmIzMyOyNlbmRpZg0KJmd0OyYjMzI7JiMzMjsNCiZndDsmIzMy OyYjMzI7aWYmIzMyOyhjb25uX3JvdXRlcykmIzMyO3sNCiZndDsmIzMyOytwcml2JiMzMjs9JiMz Mjtwcml2LSZndDthbGxfZHJtX3ByaXZhdGVbY29ubl9tbXN5c107DQomZ3Q7JiMzMjsmIzMyO2Zv ciYjMzI7KGkmIzMyOz0mIzMyOzA7JiMzMjtpJiMzMjsmbHQ7JiMzMjtudW1fY29ubl9yb3V0ZXM7 JiMzMjtpKyspJiMzMjt7DQomZ3Q7JiMzMjsmIzMyO3Vuc2lnbmVkJiMzMjtpbnQmIzMyO2NvbXBf aWQmIzMyOz0mIzMyO2Nvbm5fcm91dGVzW2ldLnJvdXRlX2RkcDsNCiZndDsmIzMyOyYjMzI7c3Ry dWN0JiMzMjtkZXZpY2Vfbm9kZSYjMzI7Km5vZGUmIzMyOz0mIzMyO3ByaXYtJmd0O2NvbXBfbm9k ZVtjb21wX2lkXTsNCiZndDsmIzMyO0BAJiMzMjstMTExNyw2JiMzMjsrMTMzMSw3JiMzMjtAQCYj MzI7aW50JiMzMjttdGtfY3J0Y19jcmVhdGUoc3RydWN0JiMzMjtkcm1fZGV2aWNlJiMzMjsqZHJt X2RldiwmIzMyO2NvbnN0JiMzMjt1bnNpZ25lZCYjMzI7aW50JiMzMjsqcGF0aCwNCiZndDsmIzMy OyYjMzI7bXRrX2RkcF9jb21wX2VuY29kZXJfaW5kZXhfc2V0KCZhbXA7cHJpdi0mZ3Q7ZGRwX2Nv bXBbY29tcF9pZF0pOw0KJmd0OyYjMzI7JiMzMjt9DQomZ3Q7JiMzMjsmIzMyOw0KJmd0OyYjMzI7 K210a19jcnRjLSZndDtjb25uX3JvdXRlc19zeXMmIzMyOz0mIzMyO2Nvbm5fbW1zeXM7DQomZ3Q7 JiMzMjsmIzMyO210a19jcnRjLSZndDtudW1fY29ubl9yb3V0ZXMmIzMyOz0mIzMyO251bV9jb25u X3JvdXRlczsNCiZndDsmIzMyOyYjMzI7bXRrX2NydGMtJmd0O2Nvbm5fcm91dGVzJiMzMjs9JiMz Mjtjb25uX3JvdXRlczsNCiZndDsmIzMyOyYjMzI7DQomZ3Q7JiMzMjtAQCYjMzI7LTExMjQsNSYj MzI7KzEzMzksMTAmIzMyO0BAJiMzMjtpbnQmIzMyO210a19jcnRjX2NyZWF0ZShzdHJ1Y3QmIzMy O2RybV9kZXZpY2UmIzMyOypkcm1fZGV2LCYjMzI7Y29uc3QmIzMyO3Vuc2lnbmVkJiMzMjtpbnQm IzMyOypwYXRoLA0KJmd0OyYjMzI7JiMzMjttdGtfY3J0Yy0mZ3Q7ZGRwX2NvbXBfbnIrKzsNCiZn dDsmIzMyOyYjMzI7fQ0KJmd0OyYjMzI7JiMzMjsNCiZndDsmIzMyOytmb3ImIzMyOyhpJiMzMjs9 JiMzMjswOyYjMzI7aSYjMzI7Jmx0OyYjMzI7TUFYX01NU1lTOyYjMzI7aSsrKQ0KJmd0OyYjMzI7 K2lmJiMzMjsobXRrX2NydGMtJmd0O2V4aXN0W2ldKQ0KJmd0OyYjMzI7K2RldmljZV9saW5rX2Fk ZChtdGtfY3J0Yy0mZ3Q7YmFzZS5kZXYtJmd0O2RldiwNCiZndDsmIzMyOytwcml2LSZndDthbGxf ZHJtX3ByaXZhdGVbaV0tJmd0O211dGV4X2RldiwmIzMyOzApOw0KJmd0OyYjMzI7Kw0KJmd0OyYj MzI7JiMzMjtyZXR1cm4mIzMyOzA7DQomZ3Q7JiMzMjsmIzMyO30NCiZndDsmIzMyO2RpZmYmIzMy Oy0tZ2l0JiMzMjthL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfY3J0Yy5oJiMzMjtiL2Ry aXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfY3J0Yy5oDQomZ3Q7JiMzMjtpbmRleCYjMzI7Mzg4 ZTkwMGI2ZjRkLi4yNTVmMjgyM2QxN2EmIzMyOzEwMDY0NA0KJmd0OyYjMzI7LS0tJiMzMjthL2Ry aXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfY3J0Yy5oDQomZ3Q7JiMzMjsrKysmIzMyO2IvZHJp dmVycy9ncHUvZHJtL21lZGlhdGVrL210a19jcnRjLmgNCiZndDsmIzMyO0BAJiMzMjstMTUsMTAm IzMyOysxNSw4JiMzMjtAQA0KJmd0OyYjMzI7JiMzMjsjZGVmaW5lJiMzMjtNVEtfTUlOX0JQQzMN CiZndDsmIzMyOyYjMzI7DQomZ3Q7JiMzMjsmIzMyO3ZvaWQmIzMyO210a19jcnRjX2NvbW1pdChz dHJ1Y3QmIzMyO2RybV9jcnRjJiMzMjsqY3J0Yyk7DQomZ3Q7JiMzMjstaW50JiMzMjttdGtfY3J0 Y19jcmVhdGUoc3RydWN0JiMzMjtkcm1fZGV2aWNlJiMzMjsqZHJtX2RldiwmIzMyO2NvbnN0JiMz Mjt1bnNpZ25lZCYjMzI7aW50JiMzMjsqcGF0aCwNCiZndDsmIzMyOy0mIzMyOyYjMzI7JiMzMjsm IzMyO3Vuc2lnbmVkJiMzMjtpbnQmIzMyO3BhdGhfbGVuLCYjMzI7aW50JiMzMjtwcml2X2RhdGFf aW5kZXgsDQomZ3Q7JiMzMjstJiMzMjsmIzMyOyYjMzI7JiMzMjtjb25zdCYjMzI7c3RydWN0JiMz MjttdGtfZHJtX3JvdXRlJiMzMjsqY29ubl9yb3V0ZXMsDQomZ3Q7JiMzMjstJiMzMjsmIzMyOyYj MzI7JiMzMjt1bnNpZ25lZCYjMzI7aW50JiMzMjtudW1fY29ubl9yb3V0ZXMpOw0KJmd0OyYjMzI7 K2ludCYjMzI7bXRrX2NydGNfY3JlYXRlKHN0cnVjdCYjMzI7ZHJtX2RldmljZSYjMzI7KmRybV9k ZXYsDQomZ3Q7JiMzMjsrJiMzMjsmIzMyOyYjMzI7JiMzMjtlbnVtJiMzMjttdGtfY3J0Y19wYXRo JiMzMjtwYXRoX3NlbCk7DQomZ3Q7JiMzMjsmIzMyO2ludCYjMzI7bXRrX2NydGNfcGxhbmVfY2hl Y2soc3RydWN0JiMzMjtkcm1fY3J0YyYjMzI7KmNydGMsJiMzMjtzdHJ1Y3QmIzMyO2RybV9wbGFu ZSYjMzI7KnBsYW5lLA0KJmd0OyYjMzI7JiMzMjsmIzMyO3N0cnVjdCYjMzI7bXRrX3BsYW5lX3N0 YXRlJiMzMjsqc3RhdGUpOw0KJmd0OyYjMzI7JiMzMjt2b2lkJiMzMjttdGtfY3J0Y19hc3luY191 cGRhdGUoc3RydWN0JiMzMjtkcm1fY3J0YyYjMzI7KmNydGMsJiMzMjtzdHJ1Y3QmIzMyO2RybV9w bGFuZSYjMzI7KnBsYW5lLA0KJmd0OyYjMzI7ZGlmZiYjMzI7LS1naXQmIzMyO2EvZHJpdmVycy9n cHUvZHJtL21lZGlhdGVrL210a19kZHBfY29tcC5jJiMzMjtiL2RyaXZlcnMvZ3B1L2RybS9tZWRp YXRlay9tdGtfZGRwX2NvbXAuYw0KJmd0OyYjMzI7aW5kZXgmIzMyOzQ5MmI4ZDk2NTMwOS4uZjg0 MTE4NGQxZTA2JiMzMjsxMDA2NDQNCiZndDsmIzMyOy0tLSYjMzI7YS9kcml2ZXJzL2dwdS9kcm0v bWVkaWF0ZWsvbXRrX2RkcF9jb21wLmMNCiZndDsmIzMyOysrKyYjMzI7Yi9kcml2ZXJzL2dwdS9k cm0vbWVkaWF0ZWsvbXRrX2RkcF9jb21wLmMNCiZndDsmIzMyO0BAJiMzMjstNDY0LDYmIzMyOys0 NjQsNyYjMzI7QEAmIzMyO3N0YXRpYyYjMzI7Y29uc3QmIzMyO2NoYXImIzMyOyomIzMyO2NvbnN0 JiMzMjttdGtfZGRwX2NvbXBfc3RlbVtNVEtfRERQX0NPTVBfVFlQRV9NQVhdJiMzMjs9JiMzMjt7 DQomZ3Q7JiMzMjsmIzMyO1tNVEtfRElTUF9QV01dJiMzMjs9JiMzMjsmcXVvdDtwd20mcXVvdDss DQomZ3Q7JiMzMjsmIzMyO1tNVEtfRElTUF9SRE1BXSYjMzI7PSYjMzI7JnF1b3Q7cmRtYSZxdW90 OywNCiZndDsmIzMyOyYjMzI7W01US19ESVNQX1VGT0VdJiMzMjs9JiMzMjsmcXVvdDt1Zm9lJnF1 b3Q7LA0KJmd0OyYjMzI7K1tNVEtfRElTUF9WSVJUVUFMXSYjMzI7PSYjMzI7JnF1b3Q7dmlydHVh bCZxdW90OywNCiZndDsmIzMyOyYjMzI7W01US19ESVNQX1dETUFdJiMzMjs9JiMzMjsmcXVvdDt3 ZG1hJnF1b3Q7LA0KJmd0OyYjMzI7JiMzMjtbTVRLX0RQX0lOVEZdJiMzMjs9JiMzMjsmcXVvdDtk cC1pbnRmJnF1b3Q7LA0KJmd0OyYjMzI7JiMzMjtbTVRLX0RQSV0mIzMyOz0mIzMyOyZxdW90O2Rw aSZxdW90OywNCiZndDsmIzMyO0BAJiMzMjstNDg3LDYmIzMyOys0ODgsMTUmIzMyO0BAJiMzMjtz dGF0aWMmIzMyO2NvbnN0JiMzMjtzdHJ1Y3QmIzMyO210a19kZHBfY29tcF9tYXRjaCYjMzI7bXRr X2RkcF9tYXRjaGVzW0REUF9DT01QT05FTlRfRFJNX0lEX01BWF0NCiZndDsmIzMyOyYjMzI7W0RE UF9DT01QT05FTlRfQ09MT1IwXT0mIzMyO3smIzMyO01US19ESVNQX0NPTE9SLDAsJiMzMjsmYW1w O2RkcF9jb2xvciYjMzI7fSwNCiZndDsmIzMyOyYjMzI7W0REUF9DT01QT05FTlRfQ09MT1IxXT0m IzMyO3smIzMyO01US19ESVNQX0NPTE9SLDEsJiMzMjsmYW1wO2RkcF9jb2xvciYjMzI7fSwNCiZn dDsmIzMyOyYjMzI7W0REUF9DT01QT05FTlRfRElUSEVSMF09JiMzMjt7JiMzMjtNVEtfRElTUF9E SVRIRVIsMCwmIzMyOyZhbXA7ZGRwX2RpdGhlciYjMzI7fSwNCiZndDsmIzMyOytbRERQX0NPTVBP TkVOVF9ETElfQVNZTkMwXSYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOz0mIzMyO3smIzMy O01US19ESVNQX1ZJUlRVQUwsJiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMy OyYjMzI7JiMzMjsmIzMyOy0xLCYjMzI7TlVMTCYjMzI7fSwNCiZndDsmIzMyOytbRERQX0NPTVBP TkVOVF9ETElfQVNZTkMxXSYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOz0mIzMyO3smIzMy O01US19ESVNQX1ZJUlRVQUwsJiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMy OyYjMzI7JiMzMjsmIzMyOy0xLCYjMzI7TlVMTCYjMzI7fSwNCiZndDsmIzMyOytbRERQX0NPTVBP TkVOVF9ETElfQVNZTkM4XSYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOz0mIzMyO3smIzMy O01US19ESVNQX1ZJUlRVQUwsJiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMy OyYjMzI7JiMzMjsmIzMyOy0xLCYjMzI7TlVMTCYjMzI7fSwNCiZndDsmIzMyOytbRERQX0NPTVBP TkVOVF9ETElfQVNZTkMyMV0mIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7PSYjMzI7eyYjMzI7TVRL X0RJU1BfVklSVFVBTCwmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMz MjsmIzMyOyYjMzI7LTEsJiMzMjtOVUxMJiMzMjt9LA0KJmd0OyYjMzI7K1tERFBfQ09NUE9ORU5U X0RMSV9BU1lOQzIyXSYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjs9JiMzMjt7JiMzMjtNVEtfRElT UF9WSVJUVUFMLCYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYj MzI7JiMzMjstMSwmIzMyO05VTEwmIzMyO30sDQomZ3Q7JiMzMjsrW0REUF9DT01QT05FTlRfRExJ X0FTWU5DMjNdJiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOz0mIzMyO3smIzMyO01US19ESVNQX1ZJ UlRVQUwsJiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsm IzMyOy0xLCYjMzI7TlVMTCYjMzI7fSwNCiZndDsmIzMyOytbRERQX0NPTVBPTkVOVF9ETE9fQVNZ TkMxXSYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOz0mIzMyO3smIzMyO01US19ESVNQX1ZJ UlRVQUwsJiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsm IzMyOy0xLCYjMzI7TlVMTCYjMzI7fSwNCiZndDsmIzMyOytbRERQX0NPTVBPTkVOVF9ETE9fQVNZ TkMyXSYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOz0mIzMyO3smIzMyO01US19ESVNQX1ZJ UlRVQUwsJiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsm IzMyOy0xLCYjMzI7TlVMTCYjMzI7fSwNCiZndDsmIzMyOytbRERQX0NPTVBPTkVOVF9ETE9fQVNZ TkMzXSYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOz0mIzMyO3smIzMyO01US19ESVNQX1ZJ UlRVQUwsJiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsm IzMyOy0xLCYjMzI7TlVMTCYjMzI7fSwNCiZndDsmIzMyOyYjMzI7W0REUF9DT01QT05FTlRfRFBf SU5URjBdPSYjMzI7eyYjMzI7TVRLX0RQX0lOVEYsMCwmIzMyOyZhbXA7ZGRwX2RwaSYjMzI7fSwN CiZndDsmIzMyOyYjMzI7W0REUF9DT01QT05FTlRfRFBfSU5URjFdPSYjMzI7eyYjMzI7TVRLX0RQ X0lOVEYsMSwmIzMyOyZhbXA7ZGRwX2RwaSYjMzI7fSwNCiZndDsmIzMyOyYjMzI7W0REUF9DT01Q T05FTlRfRFBJMF09JiMzMjt7JiMzMjtNVEtfRFBJLDAsJiMzMjsmYW1wO2RkcF9kcGkmIzMyO30s DQomZ3Q7JiMzMjtAQCYjMzI7LTQ5NCw2JiMzMjsrNTA0LDkmIzMyO0BAJiMzMjtzdGF0aWMmIzMy O2NvbnN0JiMzMjtzdHJ1Y3QmIzMyO210a19kZHBfY29tcF9tYXRjaCYjMzI7bXRrX2RkcF9tYXRj aGVzW0REUF9DT01QT05FTlRfRFJNX0lEX01BWF0NCiZndDsmIzMyOyYjMzI7W0REUF9DT01QT05F TlRfRFJNX09WTF9BREFQVE9SXT0mIzMyO3smIzMyO01US19ESVNQX09WTF9BREFQVE9SLDAsJiMz MjsmYW1wO2RkcF9vdmxfYWRhcHRvciYjMzI7fSwNCiZndDsmIzMyOyYjMzI7W0REUF9DT01QT05F TlRfRFJNX09WTFNZU19BREFQVE9SMF0mIzMyOz0mIzMyO3smIzMyO01US19ESVNQX09WTFNZU19B REFQVE9SLCYjMzI7MCwmIzMyOyZhbXA7ZGRwX292bHN5c19hZGFwdG9yfSwNCiZndDsmIzMyOyYj MzI7W0REUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMV0mIzMyOz0mIzMyO3smIzMyO01U S19ESVNQX09WTFNZU19BREFQVE9SLCYjMzI7MSwmIzMyOyZhbXA7ZGRwX292bHN5c19hZGFwdG9y fSwNCiZndDsmIzMyOytbRERQX0NPTVBPTkVOVF9EUk1fT1ZMU1lTX0FEQVBUT1IwXSYjMzI7PSYj MzI7eyYjMzI7TVRLX0RJU1BfT1ZMU1lTX0FEQVBUT1IsJiMzMjswLCYjMzI7JmFtcDtkZHBfb3Zs c3lzX2FkYXB0b3J9LA0KJmd0OyYjMzI7K1tERFBfQ09NUE9ORU5UX0RSTV9PVkxTWVNfQURBUFRP UjFdJiMzMjs9JiMzMjt7JiMzMjtNVEtfRElTUF9PVkxTWVNfQURBUFRPUiwmIzMyOzEsJiMzMjsm YW1wO2RkcF9vdmxzeXNfYWRhcHRvcn0sDQomZ3Q7JiMzMjsrW0REUF9DT01QT05FTlRfRFJNX09W TFNZU19BREFQVE9SMl0mIzMyOz0mIzMyO3smIzMyO01US19ESVNQX09WTFNZU19BREFQVE9SLCYj MzI7MiwmIzMyOyZhbXA7ZGRwX292bHN5c19hZGFwdG9yfSwNCiZndDsmIzMyOyYjMzI7W0REUF9D T01QT05FTlRfRFNDMF09JiMzMjt7JiMzMjtNVEtfRElTUF9EU0MsMCwmIzMyOyZhbXA7ZGRwX2Rz YyYjMzI7fSwNCiZndDsmIzMyOyYjMzI7W0REUF9DT01QT05FTlRfRFNDMV09JiMzMjt7JiMzMjtN VEtfRElTUF9EU0MsMSwmIzMyOyZhbXA7ZGRwX2RzYyYjMzI7fSwNCiZndDsmIzMyOyYjMzI7W0RE UF9DT01QT05FTlRfRFNJMF09JiMzMjt7JiMzMjtNVEtfRFNJLDAsJiMzMjsmYW1wO2RkcF9kc2km IzMyO30sDQomZ3Q7JiMzMjtAQCYjMzI7LTUxMCw3JiMzMjsrNTIzLDEwJiMzMjtAQCYjMzI7c3Rh dGljJiMzMjtjb25zdCYjMzI7c3RydWN0JiMzMjttdGtfZGRwX2NvbXBfbWF0Y2gmIzMyO210a19k ZHBfbWF0Y2hlc1tERFBfQ09NUE9ORU5UX0RSTV9JRF9NQVhdDQomZ3Q7JiMzMjsmIzMyO1tERFBf Q09NUE9ORU5UX09EMF09JiMzMjt7JiMzMjtNVEtfRElTUF9PRCwwLCYjMzI7JmFtcDtkZHBfb2Qm IzMyO30sDQomZ3Q7JiMzMjsmIzMyO1tERFBfQ09NUE9ORU5UX09EMV09JiMzMjt7JiMzMjtNVEtf RElTUF9PRCwxLCYjMzI7JmFtcDtkZHBfb2QmIzMyO30sDQomZ3Q7JiMzMjsmIzMyO1tERFBfQ09N UE9ORU5UX09WTDBdPSYjMzI7eyYjMzI7TVRLX0RJU1BfT1ZMLDAsJiMzMjsmYW1wO2RkcF9vdmwm IzMyO30sDQomZ3Q7JiMzMjsrW0REUF9DT01QT05FTlRfT1ZMMF9ETE9fQVNZTkM1XSYjMzI7PSYj MzI7eyYjMzI7TVRLX0RJU1BfVklSVFVBTCwmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsm IzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7LTEsJiMzMjtOVUxMJiMzMjt9LA0KJmd0OyYjMzI7K1tE RFBfQ09NUE9ORU5UX09WTDBfRExPX0FTWU5DNl0mIzMyOz0mIzMyO3smIzMyO01US19ESVNQX1ZJ UlRVQUwsJiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsm IzMyOy0xLCYjMzI7TlVMTCYjMzI7fSwNCiZndDsmIzMyOyYjMzI7W0REUF9DT01QT05FTlRfT1ZM MV09JiMzMjt7JiMzMjtNVEtfRElTUF9PVkwsMSwmIzMyOyZhbXA7ZGRwX292bCYjMzI7fSwNCiZn dDsmIzMyOytbRERQX0NPTVBPTkVOVF9PVkwxX0RMT19BU1lOQzVdJiMzMjs9JiMzMjt7JiMzMjtN VEtfRElTUF9WSVJUVUFMLCYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsm IzMyOyYjMzI7JiMzMjstMSwmIzMyO05VTEwmIzMyO30sDQomZ3Q7JiMzMjsmIzMyO1tERFBfQ09N UE9ORU5UX09WTF8yTDBdPSYjMzI7eyYjMzI7TVRLX0RJU1BfT1ZMXzJMLDAsJiMzMjsmYW1wO2Rk cF9vdmwmIzMyO30sDQomZ3Q7JiMzMjsmIzMyO1tERFBfQ09NUE9ORU5UX09WTF8yTDFdPSYjMzI7 eyYjMzI7TVRLX0RJU1BfT1ZMXzJMLDEsJiMzMjsmYW1wO2RkcF9vdmwmIzMyO30sDQomZ3Q7JiMz MjsmIzMyO1tERFBfQ09NUE9ORU5UX09WTF8yTDJdPSYjMzI7eyYjMzI7TVRLX0RJU1BfT1ZMXzJM LDIsJiMzMjsmYW1wO2RkcF9vdmwmIzMyO30sDQomZ3Q7JiMzMjtAQCYjMzI7LTU2NywxMiYjMzI7 KzU4MywxOSYjMzI7QEAmIzMyO3N0YXRpYyYjMzI7Ym9vbCYjMzI7bXRrX2RkcF9wYXRoX2F2YWls YWJsZShjb25zdCYjMzI7dW5zaWduZWQmIzMyO2ludCYjMzI7KnBhdGgsDQomZ3Q7JiMzMjsmIzMy O3sNCiZndDsmIzMyOyYjMzI7dW5zaWduZWQmIzMyO2ludCYjMzI7aTsNCiZndDsmIzMyOyYjMzI7 DQomZ3Q7JiMzMjsraWYmIzMyOyghcGF0aF9sZW4pDQomZ3Q7JiMzMjsrcmV0dXJuJiMzMjt0cnVl Ow0KJmd0OyYjMzI7Kw0KJmd0OyYjMzI7JiMzMjtpZiYjMzI7KCFwYXRoJiMzMjt8fCYjMzI7IXBh dGhfbGVuKQ0KJmd0OyYjMzI7JiMzMjtyZXR1cm4mIzMyO2ZhbHNlOw0KJmd0OyYjMzI7JiMzMjsN CiZndDsmIzMyOyYjMzI7Zm9yJiMzMjsoaSYjMzI7PSYjMzI7MFU7JiMzMjtpJiMzMjsmbHQ7JiMz MjtwYXRoX2xlbjsmIzMyO2krKykmIzMyO3sNCiZndDsmIzMyOyYjMzI7LyomIzMyO09WTF9BREFQ VE9SJiMzMjtkb2VzbiYjMzk7dCYjMzI7aGF2ZSYjMzI7YSYjMzI7ZGV2aWNlJiMzMjtub2RlJiMz MjsqLw0KJmd0OyYjMzI7LWlmJiMzMjsocGF0aFtpXSYjMzI7PT0mIzMyO0REUF9DT01QT05FTlRf RFJNX09WTF9BREFQVE9SKQ0KJmd0OyYjMzI7K2lmJiMzMjsocGF0aFtpXSYjMzI7PT0mIzMyO0RE UF9DT01QT05FTlRfRFJNX09WTF9BREFQVE9SJiMzMjt8fA0KJmd0OyYjMzI7KyYjMzI7JiMzMjsm IzMyOyYjMzI7cGF0aFtpXSYjMzI7PT0mIzMyO0REUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQ VE9SMCYjMzI7fHwNCiZndDsmIzMyOytwYXRoW2ldJiMzMjs9PSYjMzI7RERQX0NPTVBPTkVOVF9E Uk1fT1ZMU1lTX0FEQVBUT1IxJiMzMjt8fA0KJmd0OyYjMzI7K3BhdGhbaV0mIzMyOz09JiMzMjtE RFBfQ09NUE9ORU5UX0RSTV9PVkxTWVNfQURBUFRPUjImIzMyO3x8DQomZ3Q7JiMzMjsrbXRrX2Rk cF9jb21wX2dldF90eXBlKHBhdGhbaV0pJiMzMjs9PSYjMzI7TVRLX0RJU1BfVklSVFVBTCkNCiZn dDsmIzMyOyYjMzI7Y29udGludWU7DQomZ3Q7JiMzMjsmIzMyOw0KJmd0OyYjMzI7JiMzMjtpZiYj MzI7KCFjb21wX25vZGVbcGF0aFtpXV0pDQomZ3Q7JiMzMjtAQCYjMzI7LTU5Nyw0NCYjMzI7KzYy MCw4MSYjMzI7QEAmIzMyO2ludCYjMzI7bXRrX2RkcF9jb21wX2dldF9pZChzdHJ1Y3QmIzMyO2Rl dmljZV9ub2RlJiMzMjsqbm9kZSwNCiZndDsmIzMyOyYjMzI7cmV0dXJuJiMzMjstRUlOVkFMOw0K Jmd0OyYjMzI7JiMzMjt9DQomZ3Q7JiMzMjsmIzMyOw0KJmd0OyYjMzI7K2VudW0mIzMyO210a19k ZHBfY29tcF90eXBlJiMzMjttdGtfZGRwX2NvbXBfZ2V0X3R5cGUodW5zaWduZWQmIzMyO2ludCYj MzI7Y29tcF9pZCkNCiZndDsmIzMyOyt7DQomZ3Q7JiMzMjsrcmV0dXJuJiMzMjttdGtfZGRwX21h dGNoZXNbY29tcF9pZF0udHlwZTsNCiZndDsmIzMyOyt9DQomZ3Q7JiMzMjsrDQomZ3Q7JiMzMjsm IzMyO2ludCYjMzI7bXRrX2ZpbmRfcG9zc2libGVfY3J0Y3Moc3RydWN0JiMzMjtkcm1fZGV2aWNl JiMzMjsqZHJtLCYjMzI7c3RydWN0JiMzMjtkZXZpY2UmIzMyOypkZXYpDQomZ3Q7JiMzMjsmIzMy O3sNCiZndDsmIzMyOyYjMzI7c3RydWN0JiMzMjttdGtfZHJtX3ByaXZhdGUmIzMyOypwcml2YXRl JiMzMjs9JiMzMjtkcm0tJmd0O2Rldl9wcml2YXRlOw0KJmd0OyYjMzI7JiMzMjtjb25zdCYjMzI7 c3RydWN0JiMzMjttdGtfbW1zeXNfZHJpdmVyX2RhdGEmIzMyOypkYXRhOw0KJmd0OyYjMzI7JiMz MjtzdHJ1Y3QmIzMyO210a19kcm1fcHJpdmF0ZSYjMzI7KnByaXZfbjsNCiZndDsmIzMyOy1pbnQm IzMyO2kmIzMyOz0mIzMyOzAsJiMzMjtqOw0KJmd0OyYjMzI7JiMzMjtpbnQmIzMyO3JldDsNCiZn dDsmIzMyOytpbnQmIzMyO2kmIzMyOz0mIzMyOzAsJiMzMjtqLCYjMzI7Y291bnQmIzMyOz0mIzMy OzA7DQomZ3Q7JiMzMjsrYm9vbCYjMzI7Zm91bmQmIzMyOz0mIzMyO2ZhbHNlOw0KJmd0OyYjMzI7 JiMzMjsNCiZndDsmIzMyOyYjMzI7Zm9yJiMzMjsoaiYjMzI7PSYjMzI7MDsmIzMyO2omIzMyOyZs dDsmIzMyO3ByaXZhdGUtJmd0O2RhdGEtJmd0O21tc3lzX2Rldl9udW07JiMzMjtqKyspJiMzMjt7 DQomZ3Q7JiMzMjsmIzMyO3ByaXZfbiYjMzI7PSYjMzI7cHJpdmF0ZS0mZ3Q7YWxsX2RybV9wcml2 YXRlW2pdOw0KJmd0OyYjMzI7JiMzMjtkYXRhJiMzMjs9JiMzMjtwcml2X24tJmd0O2RhdGE7DQom Z3Q7JiMzMjsmIzMyOw0KJmd0OyYjMzI7JiMzMjtpZiYjMzI7KG10a19kZHBfcGF0aF9hdmFpbGFi bGUoZGF0YS0mZ3Q7bWFpbl9wYXRoLCYjMzI7ZGF0YS0mZ3Q7bWFpbl9sZW4sDQomZ3Q7JiMzMjst JiMzMjsmIzMyOyYjMzI7cHJpdl9uLSZndDtjb21wX25vZGUpKSYjMzI7ew0KJmd0OyYjMzI7LWlm JiMzMjsobXRrX2RkcF9jb21wX2ZpbmQoZGV2LCYjMzI7ZGF0YS0mZ3Q7bWFpbl9wYXRoLA0KJmd0 OyYjMzI7LSYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyO2RhdGEtJmd0O21haW5fbGVuLA0K Jmd0OyYjMzI7LSYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyO3ByaXZfbi0mZ3Q7ZGRwX2Nv bXApKQ0KJmd0OyYjMzI7LXJldHVybiYjMzI7QklUKGkpOw0KJmd0OyYjMzI7LWkrKzsNCiZndDsm IzMyOy19DQomZ3Q7JiMzMjsrJiMzMjsmIzMyOyYjMzI7cHJpdl9uLSZndDtjb21wX25vZGUpKQ0K Jmd0OyYjMzI7K2NvdW50Kys7DQomZ3Q7JiMzMjsrDQomZ3Q7JiMzMjsraWYmIzMyOyhtdGtfZGRw X2NvbXBfZmluZChkZXYsJiMzMjtkYXRhLSZndDttYWluX3BhdGgsJiMzMjtkYXRhLSZndDttYWlu X2xlbiwNCiZndDsmIzMyOysmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjtwcml2X24tJmd0 O2RkcF9jb21wKSkNCiZndDsmIzMyOytmb3VuZCYjMzI7PSYjMzI7dHJ1ZTsNCiZndDsmIzMyOyt9 DQomZ3Q7JiMzMjsrDQomZ3Q7JiMzMjsraWYmIzMyOyhjb3VudCYjMzI7PT0mIzMyO3ByaXZhdGUt Jmd0O2RhdGEtJmd0O21tc3lzX2Rldl9udW0pJiMzMjt7DQomZ3Q7JiMzMjsraWYmIzMyOyhmb3Vu ZCkNCiZndDsmIzMyOytyZXR1cm4mIzMyO0JJVChpKTsNCiZndDsmIzMyOytpKys7DQomZ3Q7JiMz MjsrfQ0KJmd0OyYjMzI7Kw0KJmd0OyYjMzI7K2NvdW50JiMzMjs9JiMzMjswOw0KJmd0OyYjMzI7 K2ZvdW5kJiMzMjs9JiMzMjtmYWxzZTsNCiZndDsmIzMyOysNCiZndDsmIzMyOytmb3ImIzMyOyhq JiMzMjs9JiMzMjswOyYjMzI7aiYjMzI7Jmx0OyYjMzI7cHJpdmF0ZS0mZ3Q7ZGF0YS0mZ3Q7bW1z eXNfZGV2X251bTsmIzMyO2orKykmIzMyO3sNCiZndDsmIzMyOytwcml2X24mIzMyOz0mIzMyO3By aXZhdGUtJmd0O2FsbF9kcm1fcHJpdmF0ZVtqXTsNCiZndDsmIzMyOytkYXRhJiMzMjs9JiMzMjtw cml2X24tJmd0O2RhdGE7DQomZ3Q7JiMzMjsmIzMyOw0KJmd0OyYjMzI7JiMzMjtpZiYjMzI7KG10 a19kZHBfcGF0aF9hdmFpbGFibGUoZGF0YS0mZ3Q7ZXh0X3BhdGgsJiMzMjtkYXRhLSZndDtleHRf bGVuLA0KJmd0OyYjMzI7LSYjMzI7JiMzMjsmIzMyO3ByaXZfbi0mZ3Q7Y29tcF9ub2RlKSkmIzMy O3sNCiZndDsmIzMyOy1pZiYjMzI7KG10a19kZHBfY29tcF9maW5kKGRldiwmIzMyO2RhdGEtJmd0 O2V4dF9wYXRoLA0KJmd0OyYjMzI7LSYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyO2RhdGEt Jmd0O2V4dF9sZW4sDQomZ3Q7JiMzMjstJiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7cHJp dl9uLSZndDtkZHBfY29tcCkpDQomZ3Q7JiMzMjstcmV0dXJuJiMzMjtCSVQoaSk7DQomZ3Q7JiMz MjstaSsrOw0KJmd0OyYjMzI7LX0NCiZndDsmIzMyOysmIzMyOyYjMzI7JiMzMjtwcml2X24tJmd0 O2NvbXBfbm9kZSkpDQomZ3Q7JiMzMjsrY291bnQrKzsNCiZndDsmIzMyOysNCiZndDsmIzMyOytp ZiYjMzI7KG10a19kZHBfY29tcF9maW5kKGRldiwmIzMyO2RhdGEtJmd0O2V4dF9wYXRoLCYjMzI7 ZGF0YS0mZ3Q7ZXh0X2xlbiwNCiZndDsmIzMyOysmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMz Mjtwcml2X24tJmd0O2RkcF9jb21wKSkNCiZndDsmIzMyOytmb3VuZCYjMzI7PSYjMzI7dHJ1ZTsN CiZndDsmIzMyOyt9DQomZ3Q7JiMzMjsrDQomZ3Q7JiMzMjsraWYmIzMyOyhjb3VudCYjMzI7PT0m IzMyO3ByaXZhdGUtJmd0O2RhdGEtJmd0O21tc3lzX2Rldl9udW0pJiMzMjt7DQomZ3Q7JiMzMjsr aWYmIzMyOyhmb3VuZCkNCiZndDsmIzMyOytyZXR1cm4mIzMyO0JJVChpKTsNCiZndDsmIzMyOytp Kys7DQomZ3Q7JiMzMjsrfQ0KJmd0OyYjMzI7Kw0KJmd0OyYjMzI7K2NvdW50JiMzMjs9JiMzMjsw Ow0KJmd0OyYjMzI7K2ZvdW5kJiMzMjs9JiMzMjtmYWxzZTsNCiZndDsmIzMyOysNCiZndDsmIzMy Oytmb3ImIzMyOyhqJiMzMjs9JiMzMjswOyYjMzI7aiYjMzI7Jmx0OyYjMzI7cHJpdmF0ZS0mZ3Q7 ZGF0YS0mZ3Q7bW1zeXNfZGV2X251bTsmIzMyO2orKykmIzMyO3sNCiZndDsmIzMyOytwcml2X24m IzMyOz0mIzMyO3ByaXZhdGUtJmd0O2FsbF9kcm1fcHJpdmF0ZVtqXTsNCiZndDsmIzMyOytkYXRh JiMzMjs9JiMzMjtwcml2X24tJmd0O2RhdGE7DQomZ3Q7JiMzMjsmIzMyOw0KJmd0OyYjMzI7JiMz MjtpZiYjMzI7KG10a19kZHBfcGF0aF9hdmFpbGFibGUoZGF0YS0mZ3Q7dGhpcmRfcGF0aCwmIzMy O2RhdGEtJmd0O3RoaXJkX2xlbiwNCiZndDsmIzMyOy0mIzMyOyYjMzI7JiMzMjtwcml2X24tJmd0 O2NvbXBfbm9kZSkpJiMzMjt7DQomZ3Q7JiMzMjstaWYmIzMyOyhtdGtfZGRwX2NvbXBfZmluZChk ZXYsJiMzMjtkYXRhLSZndDt0aGlyZF9wYXRoLA0KJmd0OyYjMzI7LSYjMzI7JiMzMjsmIzMyOyYj MzI7JiMzMjsmIzMyO2RhdGEtJmd0O3RoaXJkX2xlbiwNCiZndDsmIzMyOy0mIzMyOyYjMzI7JiMz MjsmIzMyOyYjMzI7JiMzMjtwcml2X24tJmd0O2RkcF9jb21wKSkNCiZndDsmIzMyOy1yZXR1cm4m IzMyO0JJVChpKTsNCiZndDsmIzMyOy1pKys7DQomZ3Q7JiMzMjstfQ0KJmd0OyYjMzI7K3ByaXZf bi0mZ3Q7Y29tcF9ub2RlKSkNCiZndDsmIzMyOytjb3VudCsrOw0KJmd0OyYjMzI7Kw0KJmd0OyYj MzI7K2lmJiMzMjsobXRrX2RkcF9jb21wX2ZpbmQoZGV2LCYjMzI7ZGF0YS0mZ3Q7dGhpcmRfcGF0 aCwmIzMyO2RhdGEtJmd0O3RoaXJkX2xlbiwNCiZndDsmIzMyOysmIzMyOyYjMzI7JiMzMjsmIzMy OyYjMzI7JiMzMjtwcml2X24tJmd0O2RkcF9jb21wKSkNCiZndDsmIzMyOytmb3VuZCYjMzI7PSYj MzI7dHJ1ZTsNCiZndDsmIzMyOyt9DQomZ3Q7JiMzMjsrDQomZ3Q7JiMzMjsraWYmIzMyOyhjb3Vu dCYjMzI7PT0mIzMyO3ByaXZhdGUtJmd0O2RhdGEtJmd0O21tc3lzX2Rldl9udW0pJiMzMjt7DQom Z3Q7JiMzMjsraWYmIzMyOyhmb3VuZCkNCiZndDsmIzMyOytyZXR1cm4mIzMyO0JJVChpKTsNCiZn dDsmIzMyOytpKys7DQomZ3Q7JiMzMjsmIzMyO30NCiZndDsmIzMyOyYjMzI7DQomZ3Q7JiMzMjsm IzMyO3JldCYjMzI7PSYjMzI7bXRrX2RkcF9jb21wX2ZpbmRfaW5fcm91dGUoZGV2LA0KJmd0OyYj MzI7ZGlmZiYjMzI7LS1naXQmIzMyO2EvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kZHBf Y29tcC5oJiMzMjtiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGRwX2NvbXAuaA0KJmd0 OyYjMzI7aW5kZXgmIzMyO2VmNjRjZTdhMDcxZi4uYmFkYjQyYmQ0ZjdjJiMzMjsxMDA2NDQNCiZn dDsmIzMyOy0tLSYjMzI7YS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RkcF9jb21wLmgN CiZndDsmIzMyOysrKyYjMzI7Yi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RkcF9jb21w LmgNCiZndDsmIzMyO0BAJiMzMjstNDAsNiYjMzI7KzQwLDcmIzMyO0BAJiMzMjtlbnVtJiMzMjtt dGtfZGRwX2NvbXBfdHlwZSYjMzI7ew0KJmd0OyYjMzI7JiMzMjtNVEtfRElTUF9QV00sDQomZ3Q7 JiMzMjsmIzMyO01US19ESVNQX1JETUEsDQomZ3Q7JiMzMjsmIzMyO01US19ESVNQX1VGT0UsDQom Z3Q7JiMzMjsrTVRLX0RJU1BfVklSVFVBTCwNCiZndDsmIzMyOyYjMzI7TVRLX0RJU1BfV0RNQSwN CiZndDsmIzMyOyYjMzI7TVRLX0RQSSwNCiZndDsmIzMyOyYjMzI7TVRLX0RQX0lOVEYsDQomZ3Q7 JiMzMjtAQCYjMzI7LTQ3LDYmIzMyOys0OCw3JiMzMjtAQCYjMzI7ZW51bSYjMzI7bXRrX2RkcF9j b21wX3R5cGUmIzMyO3sNCiZndDsmIzMyOyYjMzI7TVRLX09WTF9CTEVOREVSLA0KJmd0OyYjMzI7 JiMzMjtNVEtfT1ZMX0VYRE1BLA0KJmd0OyYjMzI7JiMzMjtNVEtfT1ZMX09VVFBST0MsDQomZ3Q7 JiMzMjsrTVRLX1ZESVNQX0FPLA0KJmd0OyYjMzI7JiMzMjtNVEtfRERQX0NPTVBfVFlQRV9NQVgs DQomZ3Q7JiMzMjsmIzMyO307DQomZ3Q7JiMzMjsmIzMyOw0KJmd0OyYjMzI7ZGlmZiYjMzI7LS1n aXQmIzMyO2EvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmMmIzMyO2IvZHJp dmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmMNCiZndDsmIzMyO2luZGV4JiMzMjs3 NTI2YmMzOGJjYzcuLjA2NjVhNmZlYjU0NiYjMzI7MTAwNjQ0DQomZ3Q7JiMzMjstLS0mIzMyO2Ev ZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmMNCiZndDsmIzMyOysrKyYjMzI7 Yi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuYw0KJmd0OyYjMzI7QEAmIzMy Oy0xOTMsNiYjMzI7KzE5MywxMCYjMzI7QEAmIzMyO3N0YXRpYyYjMzI7Y29uc3QmIzMyO3N0cnVj dCYjMzI7bXRrX2RybV9yb3V0ZSYjMzI7bXQ4MTg4X210a19kZHBfbWFpbl9yb3V0ZXNbXSYjMzI7 PSYjMzI7ew0KJmd0OyYjMzI7JiMzMjt7MCwmIzMyO0REUF9DT01QT05FTlRfRFNJMH0sDQomZ3Q7 JiMzMjsmIzMyO307DQomZ3Q7JiMzMjsmIzMyOw0KJmd0OyYjMzI7K3N0YXRpYyYjMzI7Y29uc3Qm IzMyO3N0cnVjdCYjMzI7bXRrX2RybV9yb3V0ZSYjMzI7bXQ4MTk2X210a19kZHBfcm91dGVzW10m IzMyOz0mIzMyO3sNCiZndDsmIzMyOyt7MiwmIzMyO0REUF9DT01QT05FTlRfRFNJMH0sDQomZ3Q7 JiMzMjsrfTsNCiZndDsmIzMyOysNCiZndDsmIzMyOyYjMzI7c3RhdGljJiMzMjtjb25zdCYjMzI7 dW5zaWduZWQmIzMyO2ludCYjMzI7bXQ4MTkyX210a19kZHBfbWFpbltdJiMzMjs9JiMzMjt7DQom Z3Q7JiMzMjsmIzMyO0REUF9DT01QT05FTlRfT1ZMMCwNCiZndDsmIzMyOyYjMzI7RERQX0NPTVBP TkVOVF9PVkxfMkwwLA0KJmd0OyYjMzI7QEAmIzMyOy0yMzEsNiYjMzI7KzIzNSw1MCYjMzI7QEAm IzMyO3N0YXRpYyYjMzI7Y29uc3QmIzMyO3Vuc2lnbmVkJiMzMjtpbnQmIzMyO210ODE5NV9tdGtf ZGRwX2V4dFtdJiMzMjs9JiMzMjt7DQomZ3Q7JiMzMjsmIzMyO0REUF9DT01QT05FTlRfRFBfSU5U RjEsDQomZ3Q7JiMzMjsmIzMyO307DQomZ3Q7JiMzMjsmIzMyOw0KJmd0OyYjMzI7K3N0YXRpYyYj MzI7Y29uc3QmIzMyO3Vuc2lnbmVkJiMzMjtpbnQmIzMyO210ODE5Nl9tdGtfZGRwX292bDBfbWFp bltdJiMzMjs9JiMzMjt7DQomZ3Q7JiMzMjsrRERQX0NPTVBPTkVOVF9EUk1fT1ZMU1lTX0FEQVBU T1IwLA0KJmd0OyYjMzI7K0REUF9DT01QT05FTlRfT1ZMMF9ETE9fQVNZTkM1LA0KJmd0OyYjMzI7 K307DQoNClNlcGFyYXRlJiMzMjtNVDgxOTYmIzMyO3BhcnQmIzMyO3RvJiMzMjthbm90aGVyJiMz MjtwYXRjaCYjMzI7d2hpY2gmIzMyO2FkZCYjMzI7c3VwcG9ydCYjMzI7TVQ4MTk2Lg0KTGV0JiMz Mjt0aGlzJiMzMjtwYXRjaCYjMzI7bm90JiMzMjtyZWxhdGVkJiMzMjt0byYjMzI7c3BlY2lmaWMm IzMyO1NvQy4NCg0KUmVnYXJkcywNCkNLDQoNCiZndDsmIzMyOysNCiZndDsmIzMyOytzdGF0aWMm IzMyO2NvbnN0JiMzMjt1bnNpZ25lZCYjMzI7aW50JiMzMjttdDgxOTZfbXRrX2RkcF9kaXNwMF9t YWluW10mIzMyOz0mIzMyO3sNCiZndDsmIzMyOytERFBfQ09NUE9ORU5UX0RMSV9BU1lOQzAsDQom Z3Q7JiMzMjsrRERQX0NPTVBPTkVOVF9ETE9fQVNZTkMxLA0KJmd0OyYjMzI7K307DQomZ3Q7JiMz MjsrDQomZ3Q7JiMzMjsrc3RhdGljJiMzMjtjb25zdCYjMzI7dW5zaWduZWQmIzMyO2ludCYjMzI7 bXQ4MTk2X210a19kZHBfZGlzcDFfbWFpbltdJiMzMjs9JiMzMjt7DQomZ3Q7JiMzMjsrRERQX0NP TVBPTkVOVF9ETElfQVNZTkMyMSwNCiZndDsmIzMyOytERFBfQ09NUE9ORU5UX0RWTzAsDQomZ3Q7 JiMzMjsrfTsNCiZndDsmIzMyOysNCiZndDsmIzMyOytzdGF0aWMmIzMyO2NvbnN0JiMzMjt1bnNp Z25lZCYjMzI7aW50JiMzMjttdDgxOTZfbXRrX2RkcF9vdmwwX2V4dFtdJiMzMjs9JiMzMjt7DQom Z3Q7JiMzMjsrRERQX0NPTVBPTkVOVF9EUk1fT1ZMU1lTX0FEQVBUT1IxLA0KJmd0OyYjMzI7K0RE UF9DT01QT05FTlRfT1ZMMF9ETE9fQVNZTkM2LA0KJmd0OyYjMzI7K307DQomZ3Q7JiMzMjsrDQom Z3Q7JiMzMjsrc3RhdGljJiMzMjtjb25zdCYjMzI7dW5zaWduZWQmIzMyO2ludCYjMzI7bXQ4MTk2 X210a19kZHBfZGlzcDBfZXh0W10mIzMyOz0mIzMyO3sNCiZndDsmIzMyOytERFBfQ09NUE9ORU5U X0RMSV9BU1lOQzEsDQomZ3Q7JiMzMjsrRERQX0NPTVBPTkVOVF9ETE9fQVNZTkMyLA0KJmd0OyYj MzI7K307DQomZ3Q7JiMzMjsrDQomZ3Q7JiMzMjsrc3RhdGljJiMzMjtjb25zdCYjMzI7dW5zaWdu ZWQmIzMyO2ludCYjMzI7bXQ4MTk2X210a19kZHBfZGlzcDFfZXh0W10mIzMyOz0mIzMyO3sNCiZn dDsmIzMyOytERFBfQ09NUE9ORU5UX0RMSV9BU1lOQzIyLA0KJmd0OyYjMzI7K0REUF9DT01QT05F TlRfRFBfSU5URjAsDQomZ3Q7JiMzMjsrfTsNCiZndDsmIzMyOysNCiZndDsmIzMyOytzdGF0aWMm IzMyO2NvbnN0JiMzMjt1bnNpZ25lZCYjMzI7aW50JiMzMjttdDgxOTZfbXRrX2RkcF9vdmwxX3Ro aXJkW10mIzMyOz0mIzMyO3sNCiZndDsmIzMyOytERFBfQ09NUE9ORU5UX0RSTV9PVkxTWVNfQURB UFRPUjIsDQomZ3Q7JiMzMjsrRERQX0NPTVBPTkVOVF9PVkwxX0RMT19BU1lOQzUsDQomZ3Q7JiMz MjsrfTsNCiZndDsmIzMyOysNCiZndDsmIzMyOytzdGF0aWMmIzMyO2NvbnN0JiMzMjt1bnNpZ25l ZCYjMzI7aW50JiMzMjttdDgxOTZfbXRrX2RkcF9kaXNwMF90aGlyZFtdJiMzMjs9JiMzMjt7DQom Z3Q7JiMzMjsrRERQX0NPTVBPTkVOVF9ETElfQVNZTkM4LA0KJmd0OyYjMzI7K0REUF9DT01QT05F TlRfRExPX0FTWU5DMywNCiZndDsmIzMyOyt9Ow0KJmd0OyYjMzI7Kw0KJmd0OyYjMzI7K3N0YXRp YyYjMzI7Y29uc3QmIzMyO3Vuc2lnbmVkJiMzMjtpbnQmIzMyO210ODE5Nl9tdGtfZGRwX2Rpc3Ax X3RoaXJkW10mIzMyOz0mIzMyO3sNCiZndDsmIzMyOytERFBfQ09NUE9ORU5UX0RMSV9BU1lOQzIz LA0KJmd0OyYjMzI7K307DQomZ3Q7JiMzMjsrDQomZ3Q7JiMzMjsmIzMyO3N0YXRpYyYjMzI7Y29u c3QmIzMyO3N0cnVjdCYjMzI7bXRrX21tc3lzX2RyaXZlcl9kYXRhJiMzMjttdDI3MDFfbW1zeXNf ZHJpdmVyX2RhdGEmIzMyOz0mIzMyO3sNCiZndDsmIzMyOyYjMzI7Lm1haW5fcGF0aCYjMzI7PSYj MzI7bXQyNzAxX210a19kZHBfbWFpbiwNCiZndDsmIzMyOyYjMzI7Lm1haW5fbGVuJiMzMjs9JiMz MjtBUlJBWV9TSVpFKG10MjcwMV9tdGtfZGRwX21haW4pLA0KJmd0OyYjMzI7QEAmIzMyOy0zMjcs NiYjMzI7KzM3NSw2NyYjMzI7QEAmIzMyO3N0YXRpYyYjMzI7Y29uc3QmIzMyO3N0cnVjdCYjMzI7 bXRrX21tc3lzX2RyaXZlcl9kYXRhJiMzMjttdDgxOTVfdmRvc3lzMV9kcml2ZXJfZGF0YSYjMzI7 PSYjMzI7ew0KJmd0OyYjMzI7JiMzMjsubWluX2hlaWdodCYjMzI7PSYjMzI7MSwNCiZndDsmIzMy OyYjMzI7fTsNCiZndDsmIzMyOyYjMzI7DQomZ3Q7JiMzMjsrc3RhdGljJiMzMjtjb25zdCYjMzI7 c3RydWN0JiMzMjttdGtfbW1zeXNfZHJpdmVyX2RhdGEmIzMyO210ODE5Nl9kaXNwc3lzMF9kcml2 ZXJfZGF0YSYjMzI7PSYjMzI7ew0KJmd0OyYjMzI7Ky5tYWluX3BhdGgmIzMyOz0mIzMyO210ODE5 Nl9tdGtfZGRwX2Rpc3AwX21haW4sDQomZ3Q7JiMzMjsrLm1haW5fbGVuJiMzMjs9JiMzMjtBUlJB WV9TSVpFKG10ODE5Nl9tdGtfZGRwX2Rpc3AwX21haW4pLA0KJmd0OyYjMzI7Ky5tYWluX29yZGVy JiMzMjs9JiMzMjsxLA0KJmd0OyYjMzI7Ky5leHRfcGF0aCYjMzI7PSYjMzI7bXQ4MTk2X210a19k ZHBfZGlzcDBfZXh0LA0KJmd0OyYjMzI7Ky5leHRfbGVuJiMzMjs9JiMzMjtBUlJBWV9TSVpFKG10 ODE5Nl9tdGtfZGRwX2Rpc3AwX2V4dCksDQomZ3Q7JiMzMjsrLmV4dF9vcmRlciYjMzI7PSYjMzI7 MSwNCiZndDsmIzMyOysudGhpcmRfcGF0aCYjMzI7PSYjMzI7bXQ4MTk2X210a19kZHBfZGlzcDBf dGhpcmQsDQomZ3Q7JiMzMjsrLnRoaXJkX2xlbiYjMzI7PSYjMzI7QVJSQVlfU0laRShtdDgxOTZf bXRrX2RkcF9kaXNwMF90aGlyZCksDQomZ3Q7JiMzMjsrLnRoaXJkX29yZGVyJiMzMjs9JiMzMjsx LA0KJmd0OyYjMzI7Ky5tbXN5c19pZCYjMzI7PSYjMzI7RElTUFNZUzAsDQomZ3Q7JiMzMjsrLm1t c3lzX2Rldl9udW0mIzMyOz0mIzMyOzQsDQomZ3Q7JiMzMjsrLm1heF93aWR0aCYjMzI7PSYjMzI7 ODE5MSwNCiZndDsmIzMyOysubWluX3dpZHRoJiMzMjs9JiMzMjsyLCYjMzI7LyomIzMyOzItcGl4 ZWwmIzMyO2FsaWduJiMzMjt3aGVuJiMzMjtldGhkciYjMzI7aXMmIzMyO2J5cGFzc2VkJiMzMjsq Lw0KJmd0OyYjMzI7Ky5taW5faGVpZ2h0JiMzMjs9JiMzMjsxLA0KJmd0OyYjMzI7K307DQomZ3Q7 JiMzMjsrDQomZ3Q7JiMzMjsrc3RhdGljJiMzMjtjb25zdCYjMzI7c3RydWN0JiMzMjttdGtfbW1z eXNfZHJpdmVyX2RhdGEmIzMyO210ODE5Nl9kaXNwc3lzMV9kcml2ZXJfZGF0YSYjMzI7PSYjMzI7 ew0KJmd0OyYjMzI7Ky5tYWluX3BhdGgmIzMyOz0mIzMyO210ODE5Nl9tdGtfZGRwX2Rpc3AxX21h aW4sDQomZ3Q7JiMzMjsrLm1haW5fbGVuJiMzMjs9JiMzMjtBUlJBWV9TSVpFKG10ODE5Nl9tdGtf ZGRwX2Rpc3AxX21haW4pLA0KJmd0OyYjMzI7Ky5tYWluX29yZGVyJiMzMjs9JiMzMjsyLA0KJmd0 OyYjMzI7Ky5leHRfcGF0aCYjMzI7PSYjMzI7bXQ4MTk2X210a19kZHBfZGlzcDFfZXh0LA0KJmd0 OyYjMzI7Ky5leHRfbGVuJiMzMjs9JiMzMjtBUlJBWV9TSVpFKG10ODE5Nl9tdGtfZGRwX2Rpc3Ax X2V4dCksDQomZ3Q7JiMzMjsrLmV4dF9vcmRlciYjMzI7PSYjMzI7MiwNCiZndDsmIzMyOysudGhp cmRfcGF0aCYjMzI7PSYjMzI7bXQ4MTk2X210a19kZHBfZGlzcDFfdGhpcmQsDQomZ3Q7JiMzMjsr LnRoaXJkX2xlbiYjMzI7PSYjMzI7QVJSQVlfU0laRShtdDgxOTZfbXRrX2RkcF9kaXNwMV90aGly ZCksDQomZ3Q7JiMzMjsrLmNvbm5fcm91dGVzJiMzMjs9JiMzMjttdDgxOTZfbXRrX2RkcF9yb3V0 ZXMsDQomZ3Q7JiMzMjsrLm51bV9jb25uX3JvdXRlcyYjMzI7PSYjMzI7QVJSQVlfU0laRShtdDgx OTZfbXRrX2RkcF9yb3V0ZXMpLA0KJmd0OyYjMzI7Ky50aGlyZF9vcmRlciYjMzI7PSYjMzI7MiwN CiZndDsmIzMyOysubW1zeXNfaWQmIzMyOz0mIzMyO0RJU1BTWVMxLA0KJmd0OyYjMzI7Ky5tbXN5 c19kZXZfbnVtJiMzMjs9JiMzMjs0LA0KJmd0OyYjMzI7Ky5tYXhfd2lkdGgmIzMyOz0mIzMyOzgx OTEsDQomZ3Q7JiMzMjsrLm1pbl93aWR0aCYjMzI7PSYjMzI7MiwmIzMyOy8qJiMzMjsyLXBpeGVs JiMzMjthbGlnbiYjMzI7d2hlbiYjMzI7ZXRoZHImIzMyO2lzJiMzMjtieXBhc3NlZCYjMzI7Ki8N CiZndDsmIzMyOysubWluX2hlaWdodCYjMzI7PSYjMzI7MSwNCiZndDsmIzMyOyt9Ow0KJmd0OyYj MzI7Kw0KJmd0OyYjMzI7K3N0YXRpYyYjMzI7Y29uc3QmIzMyO3N0cnVjdCYjMzI7bXRrX21tc3lz X2RyaXZlcl9kYXRhJiMzMjttdDgxOTZfb3Zsc3lzMF9kcml2ZXJfZGF0YSYjMzI7PSYjMzI7ew0K Jmd0OyYjMzI7Ky5tYWluX3BhdGgmIzMyOz0mIzMyO210ODE5Nl9tdGtfZGRwX292bDBfbWFpbiwN CiZndDsmIzMyOysubWFpbl9sZW4mIzMyOz0mIzMyO0FSUkFZX1NJWkUobXQ4MTk2X210a19kZHBf b3ZsMF9tYWluKSwNCiZndDsmIzMyOysubWFpbl9vcmRlciYjMzI7PSYjMzI7MCwNCiZndDsmIzMy OysuZXh0X3BhdGgmIzMyOz0mIzMyO210ODE5Nl9tdGtfZGRwX292bDBfZXh0LA0KJmd0OyYjMzI7 Ky5leHRfbGVuJiMzMjs9JiMzMjtBUlJBWV9TSVpFKG10ODE5Nl9tdGtfZGRwX292bDBfZXh0KSwN CiZndDsmIzMyOysuZXh0X29yZGVyJiMzMjs9JiMzMjswLA0KJmd0OyYjMzI7Ky5tbXN5c19pZCYj MzI7PSYjMzI7T1ZMU1lTMCwNCiZndDsmIzMyOysubW1zeXNfZGV2X251bSYjMzI7PSYjMzI7NCwN CiZndDsmIzMyOysubWF4X3dpZHRoJiMzMjs9JiMzMjs4MTkxLA0KJmd0OyYjMzI7Ky5taW5fd2lk dGgmIzMyOz0mIzMyOzIsJiMzMjsvKiYjMzI7Mi1waXhlbCYjMzI7YWxpZ24mIzMyO3doZW4mIzMy O2V0aGRyJiMzMjtpcyYjMzI7YnlwYXNzZWQmIzMyOyovDQomZ3Q7JiMzMjsrLm1pbl9oZWlnaHQm IzMyOz0mIzMyOzEsDQomZ3Q7JiMzMjsrfTsNCiZndDsmIzMyOysNCiZndDsmIzMyOytzdGF0aWMm IzMyO2NvbnN0JiMzMjtzdHJ1Y3QmIzMyO210a19tbXN5c19kcml2ZXJfZGF0YSYjMzI7bXQ4MTk2 X292bHN5czFfZHJpdmVyX2RhdGEmIzMyOz0mIzMyO3sNCiZndDsmIzMyOysudGhpcmRfcGF0aCYj MzI7PSYjMzI7bXQ4MTk2X210a19kZHBfb3ZsMV90aGlyZCwNCiZndDsmIzMyOysudGhpcmRfbGVu JiMzMjs9JiMzMjtBUlJBWV9TSVpFKG10ODE5Nl9tdGtfZGRwX292bDFfdGhpcmQpLA0KJmd0OyYj MzI7Ky50aGlyZF9vcmRlciYjMzI7PSYjMzI7MCwNCiZndDsmIzMyOysubW1zeXNfaWQmIzMyOz0m IzMyO09WTFNZUzEsDQomZ3Q7JiMzMjsrLm1tc3lzX2Rldl9udW0mIzMyOz0mIzMyOzQsDQomZ3Q7 JiMzMjsrLm1heF93aWR0aCYjMzI7PSYjMzI7ODE5MSwNCiZndDsmIzMyOysubWluX3dpZHRoJiMz Mjs9JiMzMjsyLCYjMzI7LyomIzMyOzItcGl4ZWwmIzMyO2FsaWduJiMzMjt3aGVuJiMzMjtldGhk ciYjMzI7aXMmIzMyO2J5cGFzc2VkJiMzMjsqLw0KJmd0OyYjMzI7Ky5taW5faGVpZ2h0JiMzMjs9 JiMzMjsxLA0KJmd0OyYjMzI7K307DQomZ3Q7JiMzMjsrDQomZ3Q7JiMzMjsmIzMyO3N0YXRpYyYj MzI7Y29uc3QmIzMyO3N0cnVjdCYjMzI7b2ZfZGV2aWNlX2lkJiMzMjttdGtfZHJtX29mX2lkc1td JiMzMjs9JiMzMjt7DQomZ3Q7JiMzMjsmIzMyO3smIzMyOy5jb21wYXRpYmxlJiMzMjs9JiMzMjsm cXVvdDttZWRpYXRlayxtdDI3MDEtbW1zeXMmcXVvdDssDQomZ3Q7JiMzMjsmIzMyOyYjMzI7JiMz MjsuZGF0YSYjMzI7PSYjMzI7JmFtcDttdDI3MDFfbW1zeXNfZHJpdmVyX2RhdGF9LA0KJmd0OyYj MzI7QEAmIzMyOy0zNTQsNiYjMzI7KzQ2MywxNCYjMzI7QEAmIzMyO3N0YXRpYyYjMzI7Y29uc3Qm IzMyO3N0cnVjdCYjMzI7b2ZfZGV2aWNlX2lkJiMzMjttdGtfZHJtX29mX2lkc1tdJiMzMjs9JiMz Mjt7DQomZ3Q7JiMzMjsmIzMyOyYjMzI7JiMzMjsuZGF0YSYjMzI7PSYjMzI7JmFtcDttdDgxOTVf dmRvc3lzMF9kcml2ZXJfZGF0YX0sDQomZ3Q7JiMzMjsmIzMyO3smIzMyOy5jb21wYXRpYmxlJiMz Mjs9JiMzMjsmcXVvdDttZWRpYXRlayxtdDgxOTUtdmRvc3lzMSZxdW90OywNCiZndDsmIzMyOyYj MzI7JiMzMjsmIzMyOy5kYXRhJiMzMjs9JiMzMjsmYW1wO210ODE5NV92ZG9zeXMxX2RyaXZlcl9k YXRhfSwNCiZndDsmIzMyOyt7JiMzMjsuY29tcGF0aWJsZSYjMzI7PSYjMzI7JnF1b3Q7bWVkaWF0 ZWssbXQ4MTk2LWRpc3BzeXMwJnF1b3Q7LA0KJmd0OyYjMzI7KyYjMzI7JiMzMjsuZGF0YSYjMzI7 PSYjMzI7JmFtcDttdDgxOTZfZGlzcHN5czBfZHJpdmVyX2RhdGF9LA0KJmd0OyYjMzI7K3smIzMy Oy5jb21wYXRpYmxlJiMzMjs9JiMzMjsmcXVvdDttZWRpYXRlayxtdDgxOTYtZGlzcHN5czEmcXVv dDssDQomZ3Q7JiMzMjsrJiMzMjsmIzMyOy5kYXRhJiMzMjs9JiMzMjsmYW1wO210ODE5Nl9kaXNw c3lzMV9kcml2ZXJfZGF0YX0sDQomZ3Q7JiMzMjsreyYjMzI7LmNvbXBhdGlibGUmIzMyOz0mIzMy OyZxdW90O21lZGlhdGVrLG10ODE5Ni1vdmxzeXMwJnF1b3Q7LA0KJmd0OyYjMzI7KyYjMzI7JiMz MjsuZGF0YSYjMzI7PSYjMzI7JmFtcDttdDgxOTZfb3Zsc3lzMF9kcml2ZXJfZGF0YX0sDQomZ3Q7 JiMzMjsreyYjMzI7LmNvbXBhdGlibGUmIzMyOz0mIzMyOyZxdW90O21lZGlhdGVrLG10ODE5Ni1v dmxzeXMxJnF1b3Q7LA0KJmd0OyYjMzI7KyYjMzI7JiMzMjsuZGF0YSYjMzI7PSYjMzI7JmFtcDtt dDgxOTZfb3Zsc3lzMV9kcml2ZXJfZGF0YX0sDQomZ3Q7JiMzMjsmIzMyO3smIzMyO30NCiZndDsm IzMyOyYjMzI7fTsNCiZndDsmIzMyOyYjMzI7TU9EVUxFX0RFVklDRV9UQUJMRShvZiwmIzMyO210 a19kcm1fb2ZfaWRzKTsNCiZndDsmIzMyO0BAJiMzMjstMzY4LDcmIzMyOys0ODUsNyYjMzI7QEAm IzMyO3N0YXRpYyYjMzI7aW50JiMzMjttdGtfZHJtX21hdGNoKHN0cnVjdCYjMzI7ZGV2aWNlJiMz MjsqZGV2LCYjMzI7Y29uc3QmIzMyO3ZvaWQmIzMyOypkYXRhKQ0KJmd0OyYjMzI7JiMzMjtzdGF0 aWMmIzMyO2Jvb2wmIzMyO210a19kcm1fZ2V0X2FsbF9kcm1fcHJpdihzdHJ1Y3QmIzMyO2Rldmlj ZSYjMzI7KmRldikNCiZndDsmIzMyOyYjMzI7ew0KJmd0OyYjMzI7JiMzMjtzdHJ1Y3QmIzMyO210 a19kcm1fcHJpdmF0ZSYjMzI7KmRybV9wcml2JiMzMjs9JiMzMjtkZXZfZ2V0X2RydmRhdGEoZGV2 KTsNCiZndDsmIzMyOy1zdHJ1Y3QmIzMyO210a19kcm1fcHJpdmF0ZSYjMzI7KmFsbF9kcm1fcHJp dltNQVhfQ1JUQ107DQomZ3Q7JiMzMjsrc3RydWN0JiMzMjttdGtfZHJtX3ByaXZhdGUmIzMyOyph bGxfZHJtX3ByaXZbTUFYX01NU1lTXSYjMzI7PSYjMzI7e05VTEx9Ow0KJmd0OyYjMzI7JiMzMjtz dHJ1Y3QmIzMyO210a19kcm1fcHJpdmF0ZSYjMzI7KnRlbXBfZHJtX3ByaXY7DQomZ3Q7JiMzMjsm IzMyO3N0cnVjdCYjMzI7ZGV2aWNlX25vZGUmIzMyOypwaGFuZGxlJiMzMjs9JiMzMjtkZXYtJmd0 O3BhcmVudC0mZ3Q7b2Zfbm9kZTsNCiZndDsmIzMyOyYjMzI7Y29uc3QmIzMyO3N0cnVjdCYjMzI7 b2ZfZGV2aWNlX2lkJiMzMjsqb2ZfaWQ7DQomZ3Q7JiMzMjtAQCYjMzI7LTM5NSwyMyYjMzI7KzUx MiwxOCYjMzI7QEAmIzMyO3N0YXRpYyYjMzI7Ym9vbCYjMzI7bXRrX2RybV9nZXRfYWxsX2RybV9w cml2KHN0cnVjdCYjMzI7ZGV2aWNlJiMzMjsqZGV2KQ0KJmd0OyYjMzI7JiMzMjtpZiYjMzI7KCF0 ZW1wX2RybV9wcml2KQ0KJmd0OyYjMzI7JiMzMjtjb250aW51ZTsNCiZndDsmIzMyOyYjMzI7DQom Z3Q7JiMzMjstaWYmIzMyOyh0ZW1wX2RybV9wcml2LSZndDtkYXRhLSZndDttYWluX2xlbikNCiZn dDsmIzMyOy1hbGxfZHJtX3ByaXZbQ1JUQ19NQUlOXSYjMzI7PSYjMzI7dGVtcF9kcm1fcHJpdjsN CiZndDsmIzMyOy1lbHNlJiMzMjtpZiYjMzI7KHRlbXBfZHJtX3ByaXYtJmd0O2RhdGEtJmd0O2V4 dF9sZW4pDQomZ3Q7JiMzMjstYWxsX2RybV9wcml2W0NSVENfRVhUXSYjMzI7PSYjMzI7dGVtcF9k cm1fcHJpdjsNCiZndDsmIzMyOy1lbHNlJiMzMjtpZiYjMzI7KHRlbXBfZHJtX3ByaXYtJmd0O2Rh dGEtJmd0O3RoaXJkX2xlbikNCiZndDsmIzMyOy1hbGxfZHJtX3ByaXZbQ1JUQ19USElSRF0mIzMy Oz0mIzMyO3RlbXBfZHJtX3ByaXY7DQomZ3Q7JiMzMjsrYWxsX2RybV9wcml2W3RlbXBfZHJtX3By aXYtJmd0O2RhdGEtJmd0O21tc3lzX2lkXSYjMzI7PSYjMzI7dGVtcF9kcm1fcHJpdjsNCiZndDsm IzMyOyYjMzI7DQomZ3Q7JiMzMjsmIzMyO2lmJiMzMjsodGVtcF9kcm1fcHJpdi0mZ3Q7bXRrX2Ry bV9ib3VuZCkNCiZndDsmIzMyOyYjMzI7Y250Kys7DQomZ3Q7JiMzMjsmIzMyOw0KJmd0OyYjMzI7 LWlmJiMzMjsoY250JiMzMjs9PSYjMzI7TUFYX0NSVEMpDQomZ3Q7JiMzMjsraWYmIzMyOyhjbnQm IzMyOz09JiMzMjt0ZW1wX2RybV9wcml2LSZndDtkYXRhLSZndDttbXN5c19kZXZfbnVtKQ0KJmd0 OyYjMzI7JiMzMjticmVhazsNCiZndDsmIzMyOyYjMzI7fQ0KJmd0OyYjMzI7JiMzMjsNCiZndDsm IzMyOyYjMzI7aWYmIzMyOyhkcm1fcHJpdi0mZ3Q7ZGF0YS0mZ3Q7bW1zeXNfZGV2X251bSYjMzI7 PT0mIzMyO2NudCkmIzMyO3sNCiZndDsmIzMyOy1mb3ImIzMyOyhpJiMzMjs9JiMzMjswOyYjMzI7 aSYjMzI7Jmx0OyYjMzI7Y250OyYjMzI7aSsrKQ0KJmd0OyYjMzI7LWZvciYjMzI7KGomIzMyOz0m IzMyOzA7JiMzMjtqJiMzMjsmbHQ7JiMzMjtjbnQ7JiMzMjtqKyspDQomZ3Q7JiMzMjsrZm9yJiMz MjsoaSYjMzI7PSYjMzI7MDsmIzMyO2kmIzMyOyZsdDsmIzMyO01BWF9NTVNZUzsmIzMyO2krKykN CiZndDsmIzMyOytmb3ImIzMyOyhqJiMzMjs9JiMzMjswOyYjMzI7aiYjMzI7Jmx0OyYjMzI7TUFY X01NU1lTOyYjMzI7aisrKQ0KJmd0OyYjMzI7JiMzMjthbGxfZHJtX3ByaXZbal0tJmd0O2FsbF9k cm1fcHJpdmF0ZVtpXSYjMzI7PSYjMzI7YWxsX2RybV9wcml2W2ldOw0KJmd0OyYjMzI7JiMzMjsN CiZndDsmIzMyOyYjMzI7cmV0dXJuJiMzMjt0cnVlOw0KJmd0OyYjMzI7QEAmIzMyOy00OTgsNyYj MzI7KzYxMCwxMCYjMzI7QEAmIzMyO3N0YXRpYyYjMzI7aW50JiMzMjttdGtfZHJtX2ttc19pbml0 KHN0cnVjdCYjMzI7ZHJtX2RldmljZSYjMzI7KmRybSkNCiZndDsmIzMyOyYjMzI7ZHJtLSZndDtt b2RlX2NvbmZpZy5mdW5jcyYjMzI7PSYjMzI7JmFtcDttdGtfZHJtX21vZGVfY29uZmlnX2Z1bmNz Ow0KJmd0OyYjMzI7JiMzMjtkcm0tJmd0O21vZGVfY29uZmlnLmhlbHBlcl9wcml2YXRlJiMzMjs9 JiMzMjsmYW1wO210a19kcm1fbW9kZV9jb25maWdfaGVscGVyczsNCiZndDsmIzMyOyYjMzI7DQom Z3Q7JiMzMjstZm9yJiMzMjsoaSYjMzI7PSYjMzI7MDsmIzMyO2kmIzMyOyZsdDsmIzMyO3ByaXZh dGUtJmd0O2RhdGEtJmd0O21tc3lzX2Rldl9udW07JiMzMjtpKyspJiMzMjt7DQomZ3Q7JiMzMjsr Zm9yJiMzMjsoaSYjMzI7PSYjMzI7MDsmIzMyO2kmIzMyOyZsdDsmIzMyO01BWF9NTVNZUzsmIzMy O2krKykmIzMyO3sNCiZndDsmIzMyOytpZiYjMzI7KCFwcml2YXRlLSZndDthbGxfZHJtX3ByaXZh dGVbaV0pDQomZ3Q7JiMzMjsrY29udGludWU7DQomZ3Q7JiMzMjsrDQomZ3Q7JiMzMjsmIzMyO2Ry bS0mZ3Q7ZGV2X3ByaXZhdGUmIzMyOz0mIzMyO3ByaXZhdGUtJmd0O2FsbF9kcm1fcHJpdmF0ZVtp XTsNCiZndDsmIzMyOyYjMzI7cmV0JiMzMjs9JiMzMjtjb21wb25lbnRfYmluZF9hbGwocHJpdmF0 ZS0mZ3Q7YWxsX2RybV9wcml2YXRlW2ldLSZndDtkZXYsJiMzMjtkcm0pOw0KJmd0OyYjMzI7JiMz MjtpZiYjMzI7KHJldCkNCiZndDsmIzMyO0BAJiMzMjstNTIxLDgmIzMyOys2MzYsMTAmIzMyO0BA JiMzMjtzdGF0aWMmIzMyO2ludCYjMzI7bXRrX2RybV9rbXNfaW5pdChzdHJ1Y3QmIzMyO2RybV9k ZXZpY2UmIzMyOypkcm0pDQomZ3Q7JiMzMjsmIzMyOyYjMzI7KiYjMzI7JiMzMjsmIzMyOyYjMzI7 dGhpcmQmIzMyO3BhdGguDQomZ3Q7JiMzMjsmIzMyOyYjMzI7Ki8NCiZndDsmIzMyOyYjMzI7Zm9y JiMzMjsoaSYjMzI7PSYjMzI7MDsmIzMyO2kmIzMyOyZsdDsmIzMyO01BWF9DUlRDOyYjMzI7aSsr KSYjMzI7ew0KJmd0OyYjMzI7LWZvciYjMzI7KGomIzMyOz0mIzMyOzA7JiMzMjtqJiMzMjsmbHQ7 JiMzMjtwcml2YXRlLSZndDtkYXRhLSZndDttbXN5c19kZXZfbnVtOyYjMzI7aisrKSYjMzI7ew0K Jmd0OyYjMzI7K2ZvciYjMzI7KGomIzMyOz0mIzMyOzA7JiMzMjtqJiMzMjsmbHQ7JiMzMjtNQVhf TU1TWVM7JiMzMjtqKyspJiMzMjt7DQomZ3Q7JiMzMjsmIzMyO3ByaXZfbiYjMzI7PSYjMzI7cHJp dmF0ZS0mZ3Q7YWxsX2RybV9wcml2YXRlW2pdOw0KJmd0OyYjMzI7K2lmJiMzMjsoIXByaXZfbikN CiZndDsmIzMyOytjb250aW51ZTsNCiZndDsmIzMyOyYjMzI7DQomZ3Q7JiMzMjsmIzMyO2lmJiMz MjsocHJpdl9uLSZndDtkYXRhLSZndDttYXhfd2lkdGgpDQomZ3Q7JiMzMjsmIzMyO2RybS0mZ3Q7 bW9kZV9jb25maWcubWF4X3dpZHRoJiMzMjs9JiMzMjtwcml2X24tJmd0O2RhdGEtJmd0O21heF93 aWR0aDsNCiZndDsmIzMyO0BAJiMzMjstNTM0LDI4JiMzMjsrNjUxLDIzJiMzMjtAQCYjMzI7c3Rh dGljJiMzMjtpbnQmIzMyO210a19kcm1fa21zX2luaXQoc3RydWN0JiMzMjtkcm1fZGV2aWNlJiMz MjsqZHJtKQ0KJmd0OyYjMzI7JiMzMjtkcm0tJmd0O21vZGVfY29uZmlnLm1pbl9oZWlnaHQmIzMy Oz0mIzMyO3ByaXZfbi0mZ3Q7ZGF0YS0mZ3Q7bWluX2hlaWdodDsNCiZndDsmIzMyOyYjMzI7DQom Z3Q7JiMzMjsmIzMyO2lmJiMzMjsoaSYjMzI7PT0mIzMyO0NSVENfTUFJTiYjMzI7JmFtcDsmYW1w OyYjMzI7cHJpdl9uLSZndDtkYXRhLSZndDttYWluX2xlbikmIzMyO3sNCiZndDsmIzMyOy1yZXQm IzMyOz0mIzMyO210a19jcnRjX2NyZWF0ZShkcm0sJiMzMjtwcml2X24tJmd0O2RhdGEtJmd0O21h aW5fcGF0aCwNCiZndDsmIzMyOy0mIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjtwcml2X24t Jmd0O2RhdGEtJmd0O21haW5fbGVuLCYjMzI7aiwNCiZndDsmIzMyOy0mIzMyOyYjMzI7JiMzMjsm IzMyOyYjMzI7JiMzMjtwcml2X24tJmd0O2RhdGEtJmd0O2Nvbm5fcm91dGVzLA0KJmd0OyYjMzI7 LSYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyO3ByaXZfbi0mZ3Q7ZGF0YS0mZ3Q7bnVtX2Nv bm5fcm91dGVzKTsNCiZndDsmIzMyOytyZXQmIzMyOz0mIzMyO210a19jcnRjX2NyZWF0ZShkcm0s JiMzMjtDUlRDX01BSU4pOw0KJmd0OyYjMzI7JiMzMjtpZiYjMzI7KHJldCkNCiZndDsmIzMyOyYj MzI7Z290byYjMzI7ZXJyX2NvbXBvbmVudF91bmJpbmQ7DQomZ3Q7JiMzMjsmIzMyOw0KJmd0OyYj MzI7LWNvbnRpbnVlOw0KJmd0OyYjMzI7K2JyZWFrOw0KJmd0OyYjMzI7JiMzMjt9JiMzMjtlbHNl JiMzMjtpZiYjMzI7KGkmIzMyOz09JiMzMjtDUlRDX0VYVCYjMzI7JmFtcDsmYW1wOyYjMzI7cHJp dl9uLSZndDtkYXRhLSZndDtleHRfbGVuKSYjMzI7ew0KJmd0OyYjMzI7LXJldCYjMzI7PSYjMzI7 bXRrX2NydGNfY3JlYXRlKGRybSwmIzMyO3ByaXZfbi0mZ3Q7ZGF0YS0mZ3Q7ZXh0X3BhdGgsDQom Z3Q7JiMzMjstJiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7cHJpdl9uLSZndDtkYXRhLSZn dDtleHRfbGVuLCYjMzI7aiwmIzMyO05VTEwsJiMzMjswKTsNCiZndDsmIzMyOytyZXQmIzMyOz0m IzMyO210a19jcnRjX2NyZWF0ZShkcm0sJiMzMjtDUlRDX0VYVCk7DQomZ3Q7JiMzMjsmIzMyO2lm JiMzMjsocmV0KQ0KJmd0OyYjMzI7JiMzMjtnb3RvJiMzMjtlcnJfY29tcG9uZW50X3VuYmluZDsN CiZndDsmIzMyOyYjMzI7DQomZ3Q7JiMzMjstY29udGludWU7DQomZ3Q7JiMzMjsrYnJlYWs7DQom Z3Q7JiMzMjsmIzMyO30mIzMyO2Vsc2UmIzMyO2lmJiMzMjsoaSYjMzI7PT0mIzMyO0NSVENfVEhJ UkQmIzMyOyZhbXA7JmFtcDsmIzMyO3ByaXZfbi0mZ3Q7ZGF0YS0mZ3Q7dGhpcmRfbGVuKSYjMzI7 ew0KJmd0OyYjMzI7LXJldCYjMzI7PSYjMzI7bXRrX2NydGNfY3JlYXRlKGRybSwmIzMyO3ByaXZf bi0mZ3Q7ZGF0YS0mZ3Q7dGhpcmRfcGF0aCwNCiZndDsmIzMyOy0mIzMyOyYjMzI7JiMzMjsmIzMy OyYjMzI7JiMzMjtwcml2X24tJmd0O2RhdGEtJmd0O3RoaXJkX2xlbiwmIzMyO2osJiMzMjtOVUxM LCYjMzI7MCk7DQomZ3Q7JiMzMjsrcmV0JiMzMjs9JiMzMjttdGtfY3J0Y19jcmVhdGUoZHJtLCYj MzI7Q1JUQ19USElSRCk7DQomZ3Q7JiMzMjsmIzMyO2lmJiMzMjsocmV0KQ0KJmd0OyYjMzI7JiMz Mjtnb3RvJiMzMjtlcnJfY29tcG9uZW50X3VuYmluZDsNCiZndDsmIzMyOyYjMzI7DQomZ3Q7JiMz MjstY29udGludWU7DQomZ3Q7JiMzMjsrYnJlYWs7DQomZ3Q7JiMzMjsmIzMyO30NCiZndDsmIzMy OyYjMzI7fQ0KJmd0OyYjMzI7JiMzMjt9DQomZ3Q7JiMzMjtAQCYjMzI7LTU3NCw4JiMzMjsrNjg2 LDkmIzMyO0BAJiMzMjtzdGF0aWMmIzMyO2ludCYjMzI7bXRrX2RybV9rbXNfaW5pdChzdHJ1Y3Qm IzMyO2RybV9kZXZpY2UmIzMyOypkcm0pDQomZ3Q7JiMzMjsmIzMyO2dvdG8mIzMyO2Vycl9jb21w b25lbnRfdW5iaW5kOw0KJmd0OyYjMzI7JiMzMjt9DQomZ3Q7JiMzMjsmIzMyOw0KJmd0OyYjMzI7 LWZvciYjMzI7KGkmIzMyOz0mIzMyOzA7JiMzMjtpJiMzMjsmbHQ7JiMzMjtwcml2YXRlLSZndDtk YXRhLSZndDttbXN5c19kZXZfbnVtOyYjMzI7aSsrKQ0KJmd0OyYjMzI7LXByaXZhdGUtJmd0O2Fs bF9kcm1fcHJpdmF0ZVtpXS0mZ3Q7ZG1hX2RldiYjMzI7PSYjMzI7ZG1hX2RldjsNCiZndDsmIzMy Oytmb3ImIzMyOyhpJiMzMjs9JiMzMjswOyYjMzI7aSYjMzI7Jmx0OyYjMzI7TUFYX01NU1lTOyYj MzI7aSsrKQ0KJmd0OyYjMzI7K2lmJiMzMjsocHJpdmF0ZS0mZ3Q7YWxsX2RybV9wcml2YXRlW2ld KQ0KJmd0OyYjMzI7K3ByaXZhdGUtJmd0O2FsbF9kcm1fcHJpdmF0ZVtpXS0mZ3Q7ZG1hX2RldiYj MzI7PSYjMzI7ZG1hX2RldjsNCiZndDsmIzMyOyYjMzI7DQomZ3Q7JiMzMjsmIzMyOy8qDQomZ3Q7 JiMzMjsmIzMyOyYjMzI7KiYjMzI7Q29uZmlndXJlJiMzMjt0aGUmIzMyO0RNQSYjMzI7c2VnbWVu dCYjMzI7c2l6ZSYjMzI7dG8mIzMyO21ha2UmIzMyO3N1cmUmIzMyO3dlJiMzMjtnZXQmIzMyO2Nv bnRpZ3VvdXMmIzMyO0lPVkENCiZndDsmIzMyO0BAJiMzMjstNTkzLDExJiMzMjsrNzA2LDEzJiMz MjtAQCYjMzI7c3RhdGljJiMzMjtpbnQmIzMyO210a19kcm1fa21zX2luaXQoc3RydWN0JiMzMjtk cm1fZGV2aWNlJiMzMjsqZHJtKQ0KJmd0OyYjMzI7JiMzMjtyZXR1cm4mIzMyOzA7DQomZ3Q7JiMz MjsmIzMyOw0KJmd0OyYjMzI7JiMzMjtlcnJfY29tcG9uZW50X3VuYmluZDoNCiZndDsmIzMyOy1m b3ImIzMyOyhpJiMzMjs9JiMzMjswOyYjMzI7aSYjMzI7Jmx0OyYjMzI7cHJpdmF0ZS0mZ3Q7ZGF0 YS0mZ3Q7bW1zeXNfZGV2X251bTsmIzMyO2krKykNCiZndDsmIzMyOy1jb21wb25lbnRfdW5iaW5k X2FsbChwcml2YXRlLSZndDthbGxfZHJtX3ByaXZhdGVbaV0tJmd0O2RldiwmIzMyO2RybSk7DQom Z3Q7JiMzMjsrZm9yJiMzMjsoaSYjMzI7PSYjMzI7MDsmIzMyO2kmIzMyOyZsdDsmIzMyO01BWF9N TVNZUzsmIzMyO2krKykNCiZndDsmIzMyOytpZiYjMzI7KHByaXZhdGUtJmd0O2FsbF9kcm1fcHJp dmF0ZVtpXSkNCiZndDsmIzMyOytjb21wb25lbnRfdW5iaW5kX2FsbChwcml2YXRlLSZndDthbGxf ZHJtX3ByaXZhdGVbaV0tJmd0O2RldiwmIzMyO2RybSk7DQomZ3Q7JiMzMjsmIzMyO3B1dF9tdXRl eF9kZXY6DQomZ3Q7JiMzMjstZm9yJiMzMjsoaSYjMzI7PSYjMzI7MDsmIzMyO2kmIzMyOyZsdDsm IzMyO3ByaXZhdGUtJmd0O2RhdGEtJmd0O21tc3lzX2Rldl9udW07JiMzMjtpKyspDQomZ3Q7JiMz MjstcHV0X2RldmljZShwcml2YXRlLSZndDthbGxfZHJtX3ByaXZhdGVbaV0tJmd0O211dGV4X2Rl dik7DQomZ3Q7JiMzMjsrZm9yJiMzMjsoaSYjMzI7PSYjMzI7MDsmIzMyO2kmIzMyOyZsdDsmIzMy O01BWF9NTVNZUzsmIzMyO2krKykNCiZndDsmIzMyOytpZiYjMzI7KHByaXZhdGUtJmd0O2FsbF9k cm1fcHJpdmF0ZVtpXSkNCiZndDsmIzMyOytwdXRfZGV2aWNlKHByaXZhdGUtJmd0O2FsbF9kcm1f cHJpdmF0ZVtpXS0mZ3Q7bXV0ZXhfZGV2KTsNCiZndDsmIzMyOyYjMzI7DQomZ3Q7JiMzMjsmIzMy O3JldHVybiYjMzI7cmV0Ow0KJmd0OyYjMzI7JiMzMjt9DQomZ3Q7JiMzMjtAQCYjMzI7LTY2MSw2 JiMzMjsrNzc2LDE5JiMzMjtAQCYjMzI7c3RhdGljJiMzMjtpbnQmIzMyO210a19kcm1fYmluZChz dHJ1Y3QmIzMyO2RldmljZSYjMzI7KmRldikNCiZndDsmIzMyOyYjMzI7fQ0KJmd0OyYjMzI7JiMz MjsNCiZndDsmIzMyOyYjMzI7cHJpdmF0ZS0mZ3Q7bXV0ZXhfZGV2JiMzMjs9JiMzMjsmYW1wO3Bk ZXYtJmd0O2RldjsNCiZndDsmIzMyOysNCiZndDsmIzMyOytpZiYjMzI7KHByaXZhdGUtJmd0O3Zk aXNwX2FvX25vZGUpJiMzMjt7DQomZ3Q7JiMzMjsrcGRldiYjMzI7PSYjMzI7b2ZfZmluZF9kZXZp Y2VfYnlfbm9kZShwcml2YXRlLSZndDt2ZGlzcF9hb19ub2RlKTsNCiZndDsmIzMyOytpZiYjMzI7 KCFwZGV2KSYjMzI7ew0KJmd0OyYjMzI7K2Rldl9lcnIoZGV2LCYjMzI7JnF1b3Q7V2FpdGluZyYj MzI7Zm9yJiMzMjt2ZGlzcF9hbyYjMzI7ZGV2aWNlJiMzMjslcE9GJiM5MjtuJnF1b3Q7LA0KJmd0 OyYjMzI7K3ByaXZhdGUtJmd0O3ZkaXNwX2FvX25vZGUpOw0KJmd0OyYjMzI7K29mX25vZGVfcHV0 KHByaXZhdGUtJmd0O211dGV4X25vZGUpOw0KJmd0OyYjMzI7K29mX25vZGVfcHV0KHByaXZhdGUt Jmd0O3ZkaXNwX2FvX25vZGUpOw0KJmd0OyYjMzI7K3JldHVybiYjMzI7LUVQUk9CRV9ERUZFUjsN CiZndDsmIzMyOyt9DQomZ3Q7JiMzMjsrcHJpdmF0ZS0mZ3Q7dmRpc3BfYW9fZGV2JiMzMjs9JiMz MjsmYW1wO3BkZXYtJmd0O2RldjsNCiZndDsmIzMyOyt9DQomZ3Q7JiMzMjsrDQomZ3Q7JiMzMjsm IzMyO3ByaXZhdGUtJmd0O210a19kcm1fYm91bmQmIzMyOz0mIzMyO3RydWU7DQomZ3Q7JiMzMjsm IzMyO3ByaXZhdGUtJmd0O2RldiYjMzI7PSYjMzI7ZGV2Ow0KJmd0OyYjMzI7JiMzMjsNCiZndDsm IzMyO0BAJiMzMjstNjczLDgmIzMyOys4MDEsOSYjMzI7QEAmIzMyO3N0YXRpYyYjMzI7aW50JiMz MjttdGtfZHJtX2JpbmQoc3RydWN0JiMzMjtkZXZpY2UmIzMyOypkZXYpDQomZ3Q7JiMzMjsmIzMy Ow0KJmd0OyYjMzI7JiMzMjtwcml2YXRlLSZndDtkcm1fbWFzdGVyJiMzMjs9JiMzMjt0cnVlOw0K Jmd0OyYjMzI7JiMzMjtkcm0tJmd0O2Rldl9wcml2YXRlJiMzMjs9JiMzMjtwcml2YXRlOw0KJmd0 OyYjMzI7LWZvciYjMzI7KGkmIzMyOz0mIzMyOzA7JiMzMjtpJiMzMjsmbHQ7JiMzMjtwcml2YXRl LSZndDtkYXRhLSZndDttbXN5c19kZXZfbnVtOyYjMzI7aSsrKQ0KJmd0OyYjMzI7LXByaXZhdGUt Jmd0O2FsbF9kcm1fcHJpdmF0ZVtpXS0mZ3Q7ZHJtJiMzMjs9JiMzMjtkcm07DQomZ3Q7JiMzMjsr Zm9yJiMzMjsoaSYjMzI7PSYjMzI7MDsmIzMyO2kmIzMyOyZsdDsmIzMyO01BWF9NTVNZUzsmIzMy O2krKykNCiZndDsmIzMyOytpZiYjMzI7KHByaXZhdGUtJmd0O2FsbF9kcm1fcHJpdmF0ZVtpXSkN CiZndDsmIzMyOytwcml2YXRlLSZndDthbGxfZHJtX3ByaXZhdGVbaV0tJmd0O2RybSYjMzI7PSYj MzI7ZHJtOw0KJmd0OyYjMzI7JiMzMjsNCiZndDsmIzMyOyYjMzI7cmV0JiMzMjs9JiMzMjttdGtf ZHJtX2ttc19pbml0KGRybSk7DQomZ3Q7JiMzMjsmIzMyO2lmJiMzMjsocmV0JiMzMjsmbHQ7JiMz MjswKQ0KJmd0OyYjMzI7QEAmIzMyOy03NzEsNiYjMzI7KzkwMCw4JiMzMjtAQCYjMzI7c3RhdGlj JiMzMjtjb25zdCYjMzI7c3RydWN0JiMzMjtvZl9kZXZpY2VfaWQmIzMyO210a19kZHBfY29tcF9k dF9pZHNbXSYjMzI7PSYjMzI7ew0KJmd0OyYjMzI7JiMzMjsmIzMyOyYjMzI7LmRhdGEmIzMyOz0m IzMyOyh2b2lkJiMzMjsqKU1US19ESVNQX01VVEVYJiMzMjt9LA0KJmd0OyYjMzI7JiMzMjt7JiMz MjsuY29tcGF0aWJsZSYjMzI7PSYjMzI7JnF1b3Q7bWVkaWF0ZWssbXQ4MTk1LWRpc3AtbXV0ZXgm cXVvdDssDQomZ3Q7JiMzMjsmIzMyOyYjMzI7JiMzMjsuZGF0YSYjMzI7PSYjMzI7KHZvaWQmIzMy OyopTVRLX0RJU1BfTVVURVgmIzMyO30sDQomZ3Q7JiMzMjsreyYjMzI7LmNvbXBhdGlibGUmIzMy Oz0mIzMyOyZxdW90O21lZGlhdGVrLG10ODE5Ni1kaXNwLW11dGV4JnF1b3Q7LA0KJmd0OyYjMzI7 KyYjMzI7JiMzMjsuZGF0YSYjMzI7PSYjMzI7KHZvaWQmIzMyOyopTVRLX0RJU1BfTVVURVgmIzMy O30sDQomZ3Q7JiMzMjsmIzMyO3smIzMyOy5jb21wYXRpYmxlJiMzMjs9JiMzMjsmcXVvdDttZWRp YXRlayxtdDgxNzMtZGlzcC1vZCZxdW90OywNCiZndDsmIzMyOyYjMzI7JiMzMjsmIzMyOy5kYXRh JiMzMjs9JiMzMjsodm9pZCYjMzI7KilNVEtfRElTUF9PRCYjMzI7fSwNCiZndDsmIzMyOyYjMzI7 eyYjMzI7LmNvbXBhdGlibGUmIzMyOz0mIzMyOyZxdW90O21lZGlhdGVrLG10MjcwMS1kaXNwLW92 bCZxdW90OywNCiZndDsmIzMyO0BAJiMzMjstODM3LDYmIzMyOys5NjgsOCYjMzI7QEAmIzMyO3N0 YXRpYyYjMzI7Y29uc3QmIzMyO3N0cnVjdCYjMzI7b2ZfZGV2aWNlX2lkJiMzMjttdGtfZGRwX2Nv bXBfZHRfaWRzW10mIzMyOz0mIzMyO3sNCiZndDsmIzMyOyYjMzI7JiMzMjsmIzMyOy5kYXRhJiMz Mjs9JiMzMjsodm9pZCYjMzI7KilNVEtfRFNJJiMzMjt9LA0KJmd0OyYjMzI7JiMzMjt7JiMzMjsu Y29tcGF0aWJsZSYjMzI7PSYjMzI7JnF1b3Q7bWVkaWF0ZWssbXQ4MTg4LWRzaSZxdW90OywNCiZn dDsmIzMyOyYjMzI7JiMzMjsmIzMyOy5kYXRhJiMzMjs9JiMzMjsodm9pZCYjMzI7KilNVEtfRFNJ JiMzMjt9LA0KJmd0OyYjMzI7K3smIzMyOy5jb21wYXRpYmxlJiMzMjs9JiMzMjsmcXVvdDttZWRp YXRlayxtdDgxOTYtdmRpc3AtYW8mcXVvdDssDQomZ3Q7JiMzMjsrJiMzMjsmIzMyOy5kYXRhJiMz Mjs9JiMzMjsodm9pZCYjMzI7KilNVEtfVkRJU1BfQU8mIzMyO30sDQomZ3Q7JiMzMjsmIzMyO3sm IzMyO30NCiZndDsmIzMyOyYjMzI7fTsNCiZndDsmIzMyOyYjMzI7DQomZ3Q7JiMzMjtAQCYjMzI7 LTExMTEsNyYjMzI7KzEyNDQsNyYjMzI7QEAmIzMyO3N0YXRpYyYjMzI7aW50JiMzMjttdGtfZHJt X3Byb2JlKHN0cnVjdCYjMzI7cGxhdGZvcm1fZGV2aWNlJiMzMjsqcGRldikNCiZndDsmIzMyOyYj MzI7cHJpdmF0ZS0mZ3Q7ZGF0YSYjMzI7PSYjMzI7bXRrX2RybV9kYXRhOw0KJmd0OyYjMzI7JiMz Mjt9Ow0KJmd0OyYjMzI7JiMzMjsNCiZndDsmIzMyOy1wcml2YXRlLSZndDthbGxfZHJtX3ByaXZh dGUmIzMyOz0mIzMyO2Rldm1fa21hbGxvY19hcnJheShkZXYsJiMzMjtwcml2YXRlLSZndDtkYXRh LSZndDttbXN5c19kZXZfbnVtLA0KJmd0OyYjMzI7K3ByaXZhdGUtJmd0O2FsbF9kcm1fcHJpdmF0 ZSYjMzI7PSYjMzI7ZGV2bV9rbWFsbG9jX2FycmF5KGRldiwmIzMyO01BWF9NTVNZUywNCiZndDsm IzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7c2l6ZW9mKCpwcml2YXRlLSZn dDthbGxfZHJtX3ByaXZhdGUpLA0KJmd0OyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYj MzI7JiMzMjtHRlBfS0VSTkVMKTsNCiZndDsmIzMyOyYjMzI7aWYmIzMyOyghcHJpdmF0ZS0mZ3Q7 YWxsX2RybV9wcml2YXRlKQ0KJmd0OyYjMzI7QEAmIzMyOy0xMTYzLDYmIzMyOysxMjk2LDIyJiMz MjtAQCYjMzI7c3RhdGljJiMzMjtpbnQmIzMyO210a19kcm1fcHJvYmUoc3RydWN0JiMzMjtwbGF0 Zm9ybV9kZXZpY2UmIzMyOypwZGV2KQ0KJmd0OyYjMzI7JiMzMjtjb21wb25lbnRfbWF0Y2hfYWRk KGRldiwmIzMyOyZhbXA7bWF0Y2gsJiMzMjtjb21wYXJlX2RldiwmIzMyOyZhbXA7b3ZsX2FkYXB0 b3ItJmd0O2Rldik7DQomZ3Q7JiMzMjsmIzMyO30NCiZndDsmIzMyOyYjMzI7DQomZ3Q7JiMzMjsr aWYmIzMyOyhtdGtfZHJtX2ZpbmRfbW1zeXNfY29tcChwcml2YXRlLCYjMzI7RERQX0NPTVBPTkVO VF9EUk1fT1ZMU1lTX0FEQVBUT1IyKSkmIzMyO3sNCiZndDsmIzMyOytzdHJ1Y3QmIzMyO210a19k cm1fb3Zsc3lzX3ByaXZhdGUmIzMyO292bHN5c19wcml2Ow0KJmd0OyYjMzI7Kw0KJmd0OyYjMzI7 K292bHN5c19wcml2Lm1tc3lzX2RldiYjMzI7PSYjMzI7cHJpdmF0ZS0mZ3Q7bW1zeXNfZGV2Ow0K Jmd0OyYjMzI7K292bHN5c19wcml2LnVzZV9wYXRoJiMzMjs9DQomZ3Q7JiMzMjsrbXRrX2RybV9t bXN5c19jb21wX2luX3BhdGgocHJpdmF0ZSwmIzMyO0REUF9DT01QT05FTlRfRFJNX09WTFNZU19B REFQVE9SMik7DQomZ3Q7JiMzMjsrb3ZsX2FkYXB0b3ImIzMyOz0mIzMyO3BsYXRmb3JtX2Rldmlj ZV9yZWdpc3Rlcl9kYXRhKGRldiwmIzMyOyZxdW90O21lZGlhdGVrLWRpc3Atb3Zsc3lzLWFkYXB0 b3ImcXVvdDssDQomZ3Q7JiMzMjsrJiMzMjsmIzMyOyYjMzI7JiMzMjtQTEFURk9STV9ERVZJRF9B VVRPLA0KJmd0OyYjMzI7KyYjMzI7JiMzMjsmIzMyOyYjMzI7KHZvaWQmIzMyOyopJmFtcDtvdmxz eXNfcHJpdiwNCiZndDsmIzMyOysmIzMyOyYjMzI7JiMzMjsmIzMyO3NpemVvZihzdHJ1Y3QmIzMy O210a19kcm1fb3Zsc3lzX3ByaXZhdGUpKTsNCiZndDsmIzMyOytwcml2YXRlLSZndDtkZHBfY29t cFtERFBfQ09NUE9ORU5UX0RSTV9PVkxTWVNfQURBUFRPUjJdLmRldiYjMzI7PSYjMzI7JmFtcDtv dmxfYWRhcHRvci0mZ3Q7ZGV2Ow0KJmd0OyYjMzI7K210a19kZHBfY29tcF9pbml0KE5VTEwsJiMz MjsmYW1wO3ByaXZhdGUtJmd0O2RkcF9jb21wW0REUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQ VE9SMl0sDQomZ3Q7JiMzMjsrJiMzMjsmIzMyO0REUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQ VE9SMik7DQomZ3Q7JiMzMjsrY29tcG9uZW50X21hdGNoX2FkZChkZXYsJiMzMjsmYW1wO21hdGNo LCYjMzI7Y29tcGFyZV9kZXYsJiMzMjsmYW1wO292bF9hZGFwdG9yLSZndDtkZXYpOw0KJmd0OyYj MzI7K30NCiZndDsmIzMyOysNCiZndDsmIzMyOyYjMzI7LyomIzMyO0l0ZXJhdGUmIzMyO292ZXIm IzMyO3NpYmxpbmcmIzMyO0RJU1AmIzMyO2Z1bmN0aW9uJiMzMjtibG9ja3MmIzMyOyovDQomZ3Q7 JiMzMjsmIzMyO2Zvcl9lYWNoX2NoaWxkX29mX25vZGUocGhhbmRsZS0mZ3Q7cGFyZW50LCYjMzI7 bm9kZSkmIzMyO3sNCiZndDsmIzMyOyYjMzI7ZW51bSYjMzI7bXRrX2RkcF9jb21wX3R5cGUmIzMy O2NvbXBfdHlwZTsNCiZndDsmIzMyO0BAJiMzMjstMTE4OSw2JiMzMjsrMTMzOCwxMiYjMzI7QEAm IzMyO3N0YXRpYyYjMzI7aW50JiMzMjttdGtfZHJtX3Byb2JlKHN0cnVjdCYjMzI7cGxhdGZvcm1f ZGV2aWNlJiMzMjsqcGRldikNCiZndDsmIzMyOyYjMzI7Y29udGludWU7DQomZ3Q7JiMzMjsmIzMy O30NCiZndDsmIzMyOyYjMzI7DQomZ3Q7JiMzMjsraWYmIzMyOyhjb21wX3R5cGUmIzMyOz09JiMz MjtNVEtfVkRJU1BfQU8pJiMzMjt7DQomZ3Q7JiMzMjsrcHJpdmF0ZS0mZ3Q7dmRpc3BfYW9fbm9k ZSYjMzI7PSYjMzI7b2Zfbm9kZV9nZXQobm9kZSk7DQomZ3Q7JiMzMjsrZGV2X2RiZyhkZXYsJiMz MjsmcXVvdDtnZXQmIzMyO3ZkaXNwX2FvJiMzMjtub2RlJnF1b3Q7KTsNCiZndDsmIzMyOytjb250 aW51ZTsNCiZndDsmIzMyOyt9DQomZ3Q7JiMzMjsrDQomZ3Q7JiMzMjsmIzMyO2NvbXBfaWQmIzMy Oz0mIzMyO210a19kZHBfY29tcF9nZXRfaWQobm9kZSwmIzMyO2NvbXBfdHlwZSk7DQomZ3Q7JiMz MjsmIzMyO2lmJiMzMjsoY29tcF9pZCYjMzI7Jmx0OyYjMzI7MCkmIzMyO3sNCiZndDsmIzMyOyYj MzI7ZGV2X3dhcm4oZGV2LCYjMzI7JnF1b3Q7U2tpcHBpbmcmIzMyO3Vua25vd24mIzMyO2NvbXBv bmVudCYjMzI7JXBPRiYjOTI7biZxdW90OywNCiZndDsmIzMyO0BAJiMzMjstMTI0MSw2JiMzMjsr MTM5Niw5JiMzMjtAQCYjMzI7c3RhdGljJiMzMjtpbnQmIzMyO210a19kcm1fcHJvYmUoc3RydWN0 JiMzMjtwbGF0Zm9ybV9kZXZpY2UmIzMyOypwZGV2KQ0KJmd0OyYjMzI7JiMzMjsNCiZndDsmIzMy OyYjMzI7cGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwmIzMyO3ByaXZhdGUpOw0KJmd0OyYjMzI7 JiMzMjsNCiZndDsmIzMyOytpZiYjMzI7KCFtYXRjaCkNCiZndDsmIzMyOytkcm1fb2ZfY29tcG9u ZW50X21hdGNoX2FkZChkZXYsJiMzMjsmYW1wO21hdGNoLCYjMzI7Y29tcG9uZW50X2NvbXBhcmVf b2YsJiMzMjtOVUxMKTsNCiZndDsmIzMyOysNCiZndDsmIzMyOyYjMzI7cmV0JiMzMjs9JiMzMjtj b21wb25lbnRfbWFzdGVyX2FkZF93aXRoX21hdGNoKGRldiwmIzMyOyZhbXA7bXRrX2RybV9vcHMs JiMzMjttYXRjaCk7DQomZ3Q7JiMzMjsmIzMyO2lmJiMzMjsocmV0KQ0KJmd0OyYjMzI7JiMzMjtn b3RvJiMzMjtlcnJfcG07DQomZ3Q7JiMzMjtAQCYjMzI7LTEyNjQsNiYjMzI7KzE0MjIsNyYjMzI7 QEAmIzMyO3N0YXRpYyYjMzI7dm9pZCYjMzI7bXRrX2RybV9yZW1vdmUoc3RydWN0JiMzMjtwbGF0 Zm9ybV9kZXZpY2UmIzMyOypwZGV2KQ0KJmd0OyYjMzI7JiMzMjtjb21wb25lbnRfbWFzdGVyX2Rl bCgmYW1wO3BkZXYtJmd0O2RldiwmIzMyOyZhbXA7bXRrX2RybV9vcHMpOw0KJmd0OyYjMzI7JiMz MjtwbV9ydW50aW1lX2Rpc2FibGUoJmFtcDtwZGV2LSZndDtkZXYpOw0KJmd0OyYjMzI7JiMzMjtv Zl9ub2RlX3B1dChwcml2YXRlLSZndDttdXRleF9ub2RlKTsNCiZndDsmIzMyOytvZl9ub2RlX3B1 dChwcml2YXRlLSZndDt2ZGlzcF9hb19ub2RlKTsNCiZndDsmIzMyOyYjMzI7Zm9yJiMzMjsoaSYj MzI7PSYjMzI7MDsmIzMyO2kmIzMyOyZsdDsmIzMyO0REUF9DT01QT05FTlRfRFJNX0lEX01BWDsm IzMyO2krKykNCiZndDsmIzMyOyYjMzI7b2Zfbm9kZV9wdXQocHJpdmF0ZS0mZ3Q7Y29tcF9ub2Rl W2ldKTsNCiZndDsmIzMyOyYjMzI7fQ0KJmd0OyYjMzI7ZGlmZiYjMzI7LS1naXQmIzMyO2EvZHJp dmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmgmIzMyO2IvZHJpdmVycy9ncHUvZHJt L21lZGlhdGVrL210a19kcm1fZHJ2LmgNCiZndDsmIzMyO2luZGV4JiMzMjthYTE3ZTc0M2ExZDAu LjM2Y2ZiZmEzMGZmMiYjMzI7MTAwNjQ0DQomZ3Q7JiMzMjstLS0mIzMyO2EvZHJpdmVycy9ncHUv ZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmgNCiZndDsmIzMyOysrKyYjMzI7Yi9kcml2ZXJzL2dw dS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaA0KJmd0OyYjMzI7QEAmIzMyOy0xMyw3JiMzMjsr MTMsOCYjMzI7QEANCiZndDsmIzMyOyYjMzI7I2RlZmluZSYjMzI7RERQX0NPTVBPTkVOVF9EUk1f T1ZMX0FEQVBUT1ImIzMyOyhERFBfQ09NUE9ORU5UX0lEX01BWCYjMzI7KyYjMzI7MSkNCiZndDsm IzMyOyYjMzI7I2RlZmluZSYjMzI7RERQX0NPTVBPTkVOVF9EUk1fT1ZMU1lTX0FEQVBUT1IwJiMz MjsoRERQX0NPTVBPTkVOVF9EUk1fT1ZMX0FEQVBUT1ImIzMyOysmIzMyOzEpDQomZ3Q7JiMzMjsm IzMyOyNkZWZpbmUmIzMyO0REUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMSYjMzI7KERE UF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMCYjMzI7KyYjMzI7MSkNCiZndDsmIzMyOy0j ZGVmaW5lJiMzMjtERFBfQ09NUE9ORU5UX0RSTV9JRF9NQVgmIzMyOyhERFBfQ09NUE9ORU5UX0RS TV9PVkxTWVNfQURBUFRPUjEmIzMyOysmIzMyOzEpDQomZ3Q7JiMzMjsrI2RlZmluZSYjMzI7RERQ X0NPTVBPTkVOVF9EUk1fT1ZMU1lTX0FEQVBUT1IyJiMzMjsoRERQX0NPTVBPTkVOVF9EUk1fT1ZM U1lTX0FEQVBUT1IxJiMzMjsrJiMzMjsxKQ0KJmd0OyYjMzI7KyNkZWZpbmUmIzMyO0REUF9DT01Q T05FTlRfRFJNX0lEX01BWCYjMzI7KEREUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMiYj MzI7KyYjMzI7MSkNCiZndDsmIzMyOyYjMzI7DQomZ3Q7JiMzMjsmIzMyO2VudW0mIzMyO210a19j cnRjX3BhdGgmIzMyO3sNCiZndDsmIzMyOyYjMzI7Q1JUQ19NQUlOLA0KJmd0OyYjMzI7QEAmIzMy Oy0yMiw2JiMzMjsrMjMsMTQmIzMyO0BAJiMzMjtlbnVtJiMzMjttdGtfY3J0Y19wYXRoJiMzMjt7 DQomZ3Q7JiMzMjsmIzMyO01BWF9DUlRDLA0KJmd0OyYjMzI7JiMzMjt9Ow0KJmd0OyYjMzI7JiMz MjsNCiZndDsmIzMyOytlbnVtJiMzMjttdGtfZHJtX21tc3lzJiMzMjt7DQomZ3Q7JiMzMjsrRElT UFNZUzAsDQomZ3Q7JiMzMjsrRElTUFNZUzEsDQomZ3Q7JiMzMjsrT1ZMU1lTMCwNCiZndDsmIzMy OytPVkxTWVMxLA0KJmd0OyYjMzI7K01BWF9NTVNZUywNCiZndDsmIzMyOyt9Ow0KJmd0OyYjMzI7 Kw0KJmd0OyYjMzI7JiMzMjtzdHJ1Y3QmIzMyO2RldmljZTsNCiZndDsmIzMyOyYjMzI7c3RydWN0 JiMzMjtkZXZpY2Vfbm9kZTsNCiZndDsmIzMyOyYjMzI7c3RydWN0JiMzMjtkcm1fY3J0YzsNCiZn dDsmIzMyO0BAJiMzMjstMzgsMTAmIzMyOys0NywxMyYjMzI7QEAmIzMyO3N0cnVjdCYjMzI7bXRr X2RybV9yb3V0ZSYjMzI7ew0KJmd0OyYjMzI7JiMzMjtzdHJ1Y3QmIzMyO210a19tbXN5c19kcml2 ZXJfZGF0YSYjMzI7ew0KJmd0OyYjMzI7JiMzMjtjb25zdCYjMzI7dW5zaWduZWQmIzMyO2ludCYj MzI7Km1haW5fcGF0aDsNCiZndDsmIzMyOyYjMzI7dW5zaWduZWQmIzMyO2ludCYjMzI7bWFpbl9s ZW47DQomZ3Q7JiMzMjsrdW5zaWduZWQmIzMyO2ludCYjMzI7bWFpbl9vcmRlcjsNCiZndDsmIzMy OyYjMzI7Y29uc3QmIzMyO3Vuc2lnbmVkJiMzMjtpbnQmIzMyOypleHRfcGF0aDsNCiZndDsmIzMy OyYjMzI7dW5zaWduZWQmIzMyO2ludCYjMzI7ZXh0X2xlbjsNCiZndDsmIzMyOyt1bnNpZ25lZCYj MzI7aW50JiMzMjtleHRfb3JkZXI7DQomZ3Q7JiMzMjsmIzMyO2NvbnN0JiMzMjt1bnNpZ25lZCYj MzI7aW50JiMzMjsqdGhpcmRfcGF0aDsNCiZndDsmIzMyOyYjMzI7dW5zaWduZWQmIzMyO2ludCYj MzI7dGhpcmRfbGVuOw0KJmd0OyYjMzI7K3Vuc2lnbmVkJiMzMjtpbnQmIzMyO3RoaXJkX29yZGVy Ow0KJmd0OyYjMzI7JiMzMjtjb25zdCYjMzI7c3RydWN0JiMzMjttdGtfZHJtX3JvdXRlJiMzMjsq Y29ubl9yb3V0ZXM7DQomZ3Q7JiMzMjsmIzMyO3Vuc2lnbmVkJiMzMjtpbnQmIzMyO251bV9jb25u X3JvdXRlczsNCiZndDsmIzMyOyYjMzI7DQomZ3Q7JiMzMjtAQCYjMzI7LTYzLDYmIzMyOys3NSw4 JiMzMjtAQCYjMzI7c3RydWN0JiMzMjttdGtfZHJtX3ByaXZhdGUmIzMyO3sNCiZndDsmIzMyOyYj MzI7c3RydWN0JiMzMjtkZXZpY2Vfbm9kZSYjMzI7Km11dGV4X25vZGU7DQomZ3Q7JiMzMjsmIzMy O3N0cnVjdCYjMzI7ZGV2aWNlJiMzMjsqbXV0ZXhfZGV2Ow0KJmd0OyYjMzI7JiMzMjtzdHJ1Y3Qm IzMyO2RldmljZSYjMzI7Km1tc3lzX2RldjsNCiZndDsmIzMyOytzdHJ1Y3QmIzMyO2RldmljZV9u b2RlJiMzMjsqdmRpc3BfYW9fbm9kZTsNCiZndDsmIzMyOytzdHJ1Y3QmIzMyO2RldmljZSYjMzI7 KnZkaXNwX2FvX2RldjsNCiZndDsmIzMyOyYjMzI7c3RydWN0JiMzMjtkZXZpY2Vfbm9kZSYjMzI7 KmNvbXBfbm9kZVtERFBfQ09NUE9ORU5UX0RSTV9JRF9NQVhdOw0KJmd0OyYjMzI7JiMzMjtzdHJ1 Y3QmIzMyO210a19kZHBfY29tcCYjMzI7ZGRwX2NvbXBbRERQX0NPTVBPTkVOVF9EUk1fSURfTUFY XTsNCiZndDsmIzMyOyYjMzI7c3RydWN0JiMzMjttdGtfbW1zeXNfZHJpdmVyX2RhdGEmIzMyOypk YXRhOw0KDQoNCjwvcHJlPg0KPC9wPjwvYm9keT48L2h0bWw+PCEtLXR5cGU6dGV4dC0tPjwhLS17 LS0+PHByZT4qKioqKioqKioqKioqIE1FRElBVEVLIENvbmZpZGVudGlhbGl0eSBOb3RpY2UNCiAq KioqKioqKioqKioqKioqKioqKg0KVGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZCBpbiB0aGlzIGUt bWFpbCBtZXNzYWdlIChpbmNsdWRpbmcgYW55IA0KYXR0YWNobWVudHMpIG1heSBiZSBjb25maWRl bnRpYWwsIHByb3ByaWV0YXJ5LCBwcml2aWxlZ2VkLCBvciBvdGhlcndpc2UNCmV4ZW1wdCBmcm9t IGRpc2Nsb3N1cmUgdW5kZXIgYXBwbGljYWJsZSBsYXdzLiBJdCBpcyBpbnRlbmRlZCB0byBiZSAN CmNvbnZleWVkIG9ubHkgdG8gdGhlIGRlc2lnbmF0ZWQgcmVjaXBpZW50KHMpLiBBbnkgdXNlLCBk aXNzZW1pbmF0aW9uLCANCmRpc3RyaWJ1dGlvbiwgcHJpbnRpbmcsIHJldGFpbmluZyBvciBjb3B5 aW5nIG9mIHRoaXMgZS1tYWlsIChpbmNsdWRpbmcgaXRzIA0KYXR0YWNobWVudHMpIGJ5IHVuaW50 ZW5kZWQgcmVjaXBpZW50KHMpIGlzIHN0cmljdGx5IHByb2hpYml0ZWQgYW5kIG1heSANCmJlIHVu bGF3ZnVsLiBJZiB5b3UgYXJlIG5vdCBhbiBpbnRlbmRlZCByZWNpcGllbnQgb2YgdGhpcyBlLW1h aWwsIG9yIGJlbGlldmUNCiANCnRoYXQgeW91IGhhdmUgcmVjZWl2ZWQgdGhpcyBlLW1haWwgaW4g ZXJyb3IsIHBsZWFzZSBub3RpZnkgdGhlIHNlbmRlciANCmltbWVkaWF0ZWx5IChieSByZXBseWlu ZyB0byB0aGlzIGUtbWFpbCksIGRlbGV0ZSBhbnkgYW5kIGFsbCBjb3BpZXMgb2YgDQp0aGlzIGUt bWFpbCAoaW5jbHVkaW5nIGFueSBhdHRhY2htZW50cykgZnJvbSB5b3VyIHN5c3RlbSwgYW5kIGRv IG5vdA0KZGlzY2xvc2UgdGhlIGNvbnRlbnQgb2YgdGhpcyBlLW1haWwgdG8gYW55IG90aGVyIHBl cnNvbi4gVGhhbmsgeW91IQ0KPC9wcmU+PCEtLX0tLT4= --__=_Part_Boundary_009_1227443890.668885703--