From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2C035DF5E for ; Tue, 23 Jan 2024 20:57:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=140.211.166.137 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706043451; cv=none; b=mVojF1b8LKqB1qPdbPJH4nTF/dViKJzQgPt0LEEfwJJb102w+VP6Nmg89eMJ3oJUiCm207F93Ro/UStQwuz2eHvDrXJrN5Z8sGqCez6ZI85XAzmntoNkdtX6H3NXOmCC1Cjt1JqsEL7mQl8I725AYF1fvFweRqIpcZF6d4Jfw+o= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706043451; c=relaxed/simple; bh=EmFtKbbQ63TRlzEGBSwmgF15BcMCcysPjsshbBmnAVo=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=VLOvUug7D4n3e7R/7ZMAaC1FP5LNafXmNJ1mYAeA9BR/FEmjC98EQ5XLJRllIf+thI2ukwinWVfyVUwj1XQuNhT+0s7czhntnx9sonWhE6jkvA1Z5evTaZHJyEibhvWbLAHmGphewePArZABRBJpUQQKiufK4WtCLrDjWbTYT8k= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=armlinux.org.uk header.i=@armlinux.org.uk header.b=MPxJzxUM; arc=none smtp.client-ip=140.211.166.137 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=armlinux.org.uk header.i=@armlinux.org.uk header.b="MPxJzxUM" Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 9550D416D4 for ; Tue, 23 Jan 2024 20:57:29 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 9550D416D4 Authentication-Results: smtp4.osuosl.org; dkim=pass (2048-bit key) header.d=armlinux.org.uk header.i=@armlinux.org.uk header.a=rsa-sha256 header.s=pandora-2019 header.b=MPxJzxUM X-Virus-Scanned: amavisd-new at osuosl.org X-Spam-Flag: NO X-Spam-Score: -2.098 X-Spam-Level: Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id eyfVfJhAO5R0 for ; Tue, 23 Jan 2024 20:57:28 +0000 (UTC) Received: from pandora.armlinux.org.uk (pandora.armlinux.org.uk [IPv6:2001:4d48:ad52:32c8:5054:ff:fe00:142]) by smtp4.osuosl.org (Postfix) with ESMTPS id 08B2F415FC for ; Tue, 23 Jan 2024 20:57:27 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 08B2F415FC DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=armlinux.org.uk; s=pandora-2019; h=Sender:In-Reply-To: Content-Transfer-Encoding:Content-Type:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=GgZxqTZEPPvHmQoyDJwaeRmXy9DblRmvibMPrx25XDY=; b=MPxJzxUM+Ueq9khmkJ4PmXmVSV KHKxzO1mjziAhXbuoGdY4vB5jRGa81RmxL9xW+E+Di109uowmaqhnZmWDTeJEZuDzKNtG7NTkdDoy NnV/aHWs6g34XqS51y1TWyQnOZOE8a2Xi/fXAplBAINfMbzzVwztjTu49aaNWujPsuRWiFg5BAC0p CDMrQTFgZDBA5lM+2i+8k23GDtxglFly41sQKB7uPUBMcFkSuSk/NjzcXYVfcfpqUYEg9T6O4Bafg Bgc2StowXFSlW23hE/lFTpG6nq1pyHY3Xs5eTivrrsuf7FZZ6oaNpLpZKCM4SwKLgC6iwGHzgzTzF 872UW0fQ==; Received: from shell.armlinux.org.uk ([fd8f:7570:feb6:1:5054:ff:fe00:4ec]:38930) by pandora.armlinux.org.uk with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1rSNpX-000351-0i; Tue, 23 Jan 2024 20:57:11 +0000 Received: from linux by shell.armlinux.org.uk with local (Exim 4.94.2) (envelope-from ) id 1rSNpU-0002Fn-HC; Tue, 23 Jan 2024 20:57:08 +0000 Date: Tue, 23 Jan 2024 20:57:08 +0000 From: "Russell King (Oracle)" To: "Rafael J. Wysocki" Cc: Jonathan Cameron , linux-pm@vger.kernel.org, loongarch@lists.linux.dev, linux-acpi@vger.kernel.org, linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-riscv@lists.infradead.org, kvmarm@lists.linux.dev, x86@kernel.org, acpica-devel@lists.linuxfoundation.org, linux-csky@vger.kernel.org, linux-doc@vger.kernel.org, linux-ia64@vger.kernel.org, linux-parisc@vger.kernel.org, Salil Mehta , Jean-Philippe Brucker , jianyong.wu@arm.com, justin.he@arm.com, James Morse Subject: Re: [PATCH RFC v3 05/21] ACPI: Rename ACPI_HOTPLUG_CPU to include 'present' Message-ID: References: Precedence: bulk X-Mailing-List: acpica-devel@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Sender: Russell King (Oracle) On Tue, Jan 23, 2024 at 09:17:18PM +0100, Rafael J. Wysocki wrote: > On Tue, Jan 23, 2024 at 9:09 PM Russell King (Oracle) > wrote: > > > > On Tue, Jan 23, 2024 at 08:27:05PM +0100, Rafael J. Wysocki wrote: > > > On Tue, Jan 23, 2024 at 7:59 PM Russell King (Oracle) > > > wrote: > > > > > > > > On Tue, Jan 23, 2024 at 07:26:57PM +0100, Rafael J. Wysocki wrote: > > > > > On Tue, Jan 23, 2024 at 7:20 PM Russell King (Oracle) > > > > > wrote: > > > > > > > > > > > > On Tue, Jan 23, 2024 at 06:43:59PM +0100, Rafael J. Wysocki wrote: > > > > > > > On Tue, Jan 23, 2024 at 5:36 PM Russell King (Oracle) > > > > > > > wrote: > > > > > > > > > > > > > > > > On Tue, Jan 23, 2024 at 05:15:54PM +0100, Rafael J. Wysocki wrote: > > > > > > > > > On Tue, Jan 23, 2024 at 2:28 PM Russell King (Oracle) > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > > On Mon, Jan 22, 2024 at 06:00:13PM +0000, Jonathan Cameron wrote: > > > > > > > > > > > On Mon, 18 Dec 2023 21:35:16 +0100 > > > > > > > > > > > "Rafael J. Wysocki" wrote: > > > > > > > > > > > > > > > > > > > > > > > On Wed, Dec 13, 2023 at 1:49 PM Russell King wrote: > > > > > > > > > > > > > > > > > > > > > > > > > > From: James Morse > > > > > > > > > > > > > > > > > > > > > > > > > > The code behind ACPI_HOTPLUG_CPU allows a not-present CPU to become > > > > > > > > > > > > > present. > > > > > > > > > > > > > > > > > > > > > > > > Right. > > > > > > > > > > > > > > > > > > > > > > > > > This isn't the only use of HOTPLUG_CPU. On arm64 and riscv > > > > > > > > > > > > > CPUs can be taken offline as a power saving measure. > > > > > > > > > > > > > > > > > > > > > > > > But still there is the case in which a non-present CPU can become > > > > > > > > > > > > present, isn't it there? > > > > > > > > > > > > > > > > > > > > > > Not yet defined by the architectures (and I'm assuming it probably never will be). > > > > > > > > > > > > > > > > > > > > > > The original proposal we took to ARM was to do exactly that - they pushed > > > > > > > > > > > back hard on the basis there was no architecturally safe way to implement it. > > > > > > > > > > > Too much of the ARM arch has to exist from the start of time. > > > > > > > > > > > > > > > > > > > > > > https://lore.kernel.org/linux-arm-kernel/cbaa6d68-6143-e010-5f3c-ec62f879ad95@arm.com/ > > > > > > > > > > > is one of the relevant threads of the kernel side of that discussion. > > > > > > > > > > > > > > > > > > > > > > Not to put specific words into the ARM architects mouths, but the > > > > > > > > > > > short description is that there is currently no demand for working > > > > > > > > > > > out how to make physical CPU hotplug possible, as such they will not > > > > > > > > > > > provide an architecturally compliant way to do it for virtual CPU hotplug and > > > > > > > > > > > another means is needed (which is why this series doesn't use the present bit > > > > > > > > > > > for that purpose and we have the Online capable bit in MADT/GICC) > > > > > > > > > > > > > > > > > > > > > > It was a 'fun' dance of several years to get to that clarification. > > > > > > > > > > > As another fun fact, the same is defined for x86, but I don't think > > > > > > > > > > > anyone has used it yet (GICC for ARM has an online capable bit in the flags to > > > > > > > > > > > enable this, which was remarkably similar to the online capable bit in the > > > > > > > > > > > flags of the Local APIC entries as added fairly recently). > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On arm64 an offline CPU may be disabled by firmware, preventing it from > > > > > > > > > > > > > being brought back online, but it remains present throughout. > > > > > > > > > > > > > > > > > > > > > > > > > > Adding code to prevent user-space trying to online these disabled CPUs > > > > > > > > > > > > > needs some additional terminology. > > > > > > > > > > > > > > > > > > > > > > > > > > Rename the Kconfig symbol CONFIG_ACPI_HOTPLUG_PRESENT_CPU to reflect > > > > > > > > > > > > > that it makes possible CPUs present. > > > > > > > > > > > > > > > > > > > > > > > > Honestly, I don't think that this change is necessary or even useful. > > > > > > > > > > > > > > > > > > > > > > Whilst it's an attempt to avoid future confusion, the rename is > > > > > > > > > > > not something I really care about so my advice to Russell is drop > > > > > > > > > > > it unless you are attached to it! > > > > > > > > > > > > > > > > > > > > While I agree that it isn't a necessity, I don't fully agree that it > > > > > > > > > > isn't useful. > > > > > > > > > > > > > > > > > > > > One of the issues will be that while Arm64 will support hotplug vCPU, > > > > > > > > > > it won't be setting ACPI_HOTPLUG_CPU because it doesn't support > > > > > > > > > > the present bit changing. So I can see why James decided to rename > > > > > > > > > > it - because with Arm64's hotplug vCPU, the idea that ACPI_HOTPLUG_CPU > > > > > > > > > > somehow enables hotplug CPU support is now no longer true. > > > > > > > > > > > > > > > > > > > > Keeping it as ACPI_HOTPLUG_CPU makes the code less obvious, because it > > > > > > > > > > leads one to assume that it ought to be enabled for Arm64's > > > > > > > > > > implementatinon, and that could well cause issues in the future if > > > > > > > > > > people make the assumption that "ACPI_HOTPLUG_CPU" means hotplug CPU > > > > > > > > > > is supported in ACPI. It doesn't anymore. > > > > > > > > > > > > > > > > > > On x86 there is no confusion AFAICS. It's always meant "as long as > > > > > > > > > the platform supports it". > > > > > > > > > > > > > > > > That's x86, which supports physical CPU hotplug. We're introducing > > > > > > > > support for Arm64 here which doesn't support physical CPU hotplug. > > > > > > > > > > > > > > > > ACPI-based Physical Virtual > > > > > > > > Arch HOTPLUG_CPU ACPI_HOTPLUG_CPU Hotplug Hotplug Hotplug > > > > > > > > Arm64 Y N Y N Y > > > > > > > > x86 Y Y Y Y Y > > > > > > > > > > > > > > > > So ACPI_HOTPLUG_CPU becomes totally misnamed with the introduction > > > > > > > > of hotplug on Arm64. > > > > > > > > > > > > > > > > If we want to just look at stuff from an x86 perspective, then yes, > > > > > > > > it remains correct to call it ACPI_HOTPLUG_CPU. It isn't correct as > > > > > > > > soon as we add Arm64, as I already said. > > > > > > > > > > > > > > And if you rename it, it becomes less confusing for ARM64, but more > > > > > > > confusing for x86, which basically is my point. > > > > > > > > > > > > > > IMO "hotplug" covers both cases well enough and "hotplug present" is > > > > > > > only accurate for one of them. > > > > > > > > > > > > > > > And honestly, a two line quip to my reasoned argument is not IMHO > > > > > > > > an acceptable reply. > > > > > > > > > > > > > > Well, I'm not even sure how to respond to this ... > > > > > > > > > > > > The above explanation you give would have been useful... > > > > > > > > > > > > I don't see how "hotplug" covers both cases. As I've tried to point > > > > > > out many times now, ACPI_HOTPLUG_CPU is N for Arm64, yet it supports > > > > > > ACPI based hotplug. How does ACPI_HOTPLUG_CPU cover Arm64 if it's > > > > > > N there? > > > > > > > > > > But IIUC this change is preliminary for changing it (or equivalent > > > > > option with a different name) to Y, isn't it? > > > > > > > > No. As I keep saying, ACPI_HOTPLUG_CPU ends up N on Arm64 even when > > > > it supports hotplug CPU via ACPI. > > > > > > > > Even with the full Arm64 patch set here, under arch/ we still only > > > > have: > > > > > > > > arch/loongarch/Kconfig: select ACPI_HOTPLUG_PRESENT_CPU if ACPI_PROCESSOR && HOTPLUG_CPU > > > > arch/x86/Kconfig: select ACPI_HOTPLUG_PRESENT_CPU if ACPI_PROCESSOR && HOTPLUG_CPU > > > > > > > > To say it yet again, ACPI_HOTPLUG_(PRESENT_)CPU is *never* set on > > > > Arm64. > > > > > > Allright, so ARM64 is not going to use the code that is conditional on > > > ACPI_HOTPLUG_CPU today. > > > > > > Fair enough. > > > > > > > > > IMHO it totally doesn't, and moreover, it goes against what > > > > > > one would logically expect - and this is why I have a problem with > > > > > > your effective NAK for this change. I believe you are basically > > > > > > wrong on this for the reasons I've given - that ACPI_HOTPLUG_CPU > > > > > > will be N for Arm64 despite it supporting ACPI-based CPU hotplug. > > > > > > > > > > So I still have to understand how renaming it for all architectures > > > > > (including x86) is supposed to help. > > > > > > > > > > It will still be the same option under a different name. How does > > > > > that change things technically? > > > > > > > > Do you think that it makes any sense to have support for ACPI-based > > > > hotplug CPU > > > > > > So this is all about what you and I mean by "ACPI-based hotplug CPU". > > > > > > > *and* having it functional with a configuration symbol > > > > named "ACPI_HOTPLUG_CPU" to be set to N ? That's essentially what > > > > you are advocating for... > > > > > > Setting ACPI_HOTPLUG_CPU to N means that you are not going to compile > > > the code that is conditional on it. > > > > > > That code allows the processor driver to be removed from CPUs and > > > arch_unregister_cpu() to be called from within acpi_bus_trim() (among > > > other things). On the way up, it allows arch_register_cpu() to be > > > called from within acpi_bus_scan(). If these things are not done, > > > what I mean by "ACPI-based hotplug CPU" is not supported. > > > > Even on Arm64, arch_register_cpu() and arch_unregister_cpu() will be > > called when the CPU in the VM is hot-removed or hot-added... > > In a different way, however. This is getting tiresome. The goal posts keep moving. This isn't a discussion, this is a "you're wrong and I'm going to keep changing my argument if you agree with me to make you always wrong". Sorry, no point continuing this. -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last! 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 C6D91C47DDB for ; Tue, 23 Jan 2024 20:57:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=EZEu/i8h3mFer7hYS7WI4LvUZLNZVQ9838pdcr79Q7A=; b=Z498TA4Pnus8hb oRflrBuTfLWU4vmqg/PQ6mu45EYX3VXRJCp5LOm+HdZZD0NCdrHtgz3OVyLcBXRYCEVbY8J6WHmy6 91NzBdziLoRwxz3Uo947M760isirGilqNAUdr+s04/ZHsEo8rZCpYhuE2eNSQZ93A2XHNyYxfQ+BK q4WnVzaBDlThWR2PGrDtWfinNnysI4lDXFEJSzMYA1TT6bv+4sLJ9ju/VfYGQ/5uMgRsYi7lN0eEj g1o0EJD48Y2hAiTXu1BKM4FAtOYHrjH44LnBDDEcnI1kr0uSY7+opdWBs/9XEULHPqG7HTE84sWkp PwTy8uPF260hQJxmi1yQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rSNpp-000Rtg-23; Tue, 23 Jan 2024 20:57:29 +0000 Received: from pandora.armlinux.org.uk ([2001:4d48:ad52:32c8:5054:ff:fe00:142]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rSNpj-000RrM-1k; Tue, 23 Jan 2024 20:57:25 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=armlinux.org.uk; s=pandora-2019; h=Sender:In-Reply-To: Content-Transfer-Encoding:Content-Type:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=GgZxqTZEPPvHmQoyDJwaeRmXy9DblRmvibMPrx25XDY=; b=MPxJzxUM+Ueq9khmkJ4PmXmVSV KHKxzO1mjziAhXbuoGdY4vB5jRGa81RmxL9xW+E+Di109uowmaqhnZmWDTeJEZuDzKNtG7NTkdDoy NnV/aHWs6g34XqS51y1TWyQnOZOE8a2Xi/fXAplBAINfMbzzVwztjTu49aaNWujPsuRWiFg5BAC0p CDMrQTFgZDBA5lM+2i+8k23GDtxglFly41sQKB7uPUBMcFkSuSk/NjzcXYVfcfpqUYEg9T6O4Bafg Bgc2StowXFSlW23hE/lFTpG6nq1pyHY3Xs5eTivrrsuf7FZZ6oaNpLpZKCM4SwKLgC6iwGHzgzTzF 872UW0fQ==; Received: from shell.armlinux.org.uk ([fd8f:7570:feb6:1:5054:ff:fe00:4ec]:38930) by pandora.armlinux.org.uk with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1rSNpX-000351-0i; Tue, 23 Jan 2024 20:57:11 +0000 Received: from linux by shell.armlinux.org.uk with local (Exim 4.94.2) (envelope-from ) id 1rSNpU-0002Fn-HC; Tue, 23 Jan 2024 20:57:08 +0000 Date: Tue, 23 Jan 2024 20:57:08 +0000 From: "Russell King (Oracle)" To: "Rafael J. Wysocki" Cc: Jonathan Cameron , linux-pm@vger.kernel.org, loongarch@lists.linux.dev, linux-acpi@vger.kernel.org, linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-riscv@lists.infradead.org, kvmarm@lists.linux.dev, x86@kernel.org, acpica-devel@lists.linuxfoundation.org, linux-csky@vger.kernel.org, linux-doc@vger.kernel.org, linux-ia64@vger.kernel.org, linux-parisc@vger.kernel.org, Salil Mehta , Jean-Philippe Brucker , jianyong.wu@arm.com, justin.he@arm.com, James Morse Subject: Re: [PATCH RFC v3 05/21] ACPI: Rename ACPI_HOTPLUG_CPU to include 'present' Message-ID: References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240123_125723_729190_F76652E6 X-CRM114-Status: GOOD ( 68.39 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gVHVlLCBKYW4gMjMsIDIwMjQgYXQgMDk6MTc6MThQTSArMDEwMCwgUmFmYWVsIEouIFd5c29j a2kgd3JvdGU6Cj4gT24gVHVlLCBKYW4gMjMsIDIwMjQgYXQgOTowOeKAr1BNIFJ1c3NlbGwgS2lu ZyAoT3JhY2xlKQo+IDxsaW51eEBhcm1saW51eC5vcmcudWs+IHdyb3RlOgo+ID4KPiA+IE9uIFR1 ZSwgSmFuIDIzLCAyMDI0IGF0IDA4OjI3OjA1UE0gKzAxMDAsIFJhZmFlbCBKLiBXeXNvY2tpIHdy b3RlOgo+ID4gPiBPbiBUdWUsIEphbiAyMywgMjAyNCBhdCA3OjU54oCvUE0gUnVzc2VsbCBLaW5n IChPcmFjbGUpCj4gPiA+IDxsaW51eEBhcm1saW51eC5vcmcudWs+IHdyb3RlOgo+ID4gPiA+Cj4g PiA+ID4gT24gVHVlLCBKYW4gMjMsIDIwMjQgYXQgMDc6MjY6NTdQTSArMDEwMCwgUmFmYWVsIEou IFd5c29ja2kgd3JvdGU6Cj4gPiA+ID4gPiBPbiBUdWUsIEphbiAyMywgMjAyNCBhdCA3OjIw4oCv UE0gUnVzc2VsbCBLaW5nIChPcmFjbGUpCj4gPiA+ID4gPiA8bGludXhAYXJtbGludXgub3JnLnVr PiB3cm90ZToKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gT24gVHVlLCBKYW4gMjMsIDIwMjQgYXQg MDY6NDM6NTlQTSArMDEwMCwgUmFmYWVsIEouIFd5c29ja2kgd3JvdGU6Cj4gPiA+ID4gPiA+ID4g T24gVHVlLCBKYW4gMjMsIDIwMjQgYXQgNTozNuKAr1BNIFJ1c3NlbGwgS2luZyAoT3JhY2xlKQo+ ID4gPiA+ID4gPiA+IDxsaW51eEBhcm1saW51eC5vcmcudWs+IHdyb3RlOgo+ID4gPiA+ID4gPiA+ ID4KPiA+ID4gPiA+ID4gPiA+IE9uIFR1ZSwgSmFuIDIzLCAyMDI0IGF0IDA1OjE1OjU0UE0gKzAx MDAsIFJhZmFlbCBKLiBXeXNvY2tpIHdyb3RlOgo+ID4gPiA+ID4gPiA+ID4gPiBPbiBUdWUsIEph biAyMywgMjAyNCBhdCAyOjI44oCvUE0gUnVzc2VsbCBLaW5nIChPcmFjbGUpCj4gPiA+ID4gPiA+ ID4gPiA+IDxsaW51eEBhcm1saW51eC5vcmcudWs+IHdyb3RlOgo+ID4gPiA+ID4gPiA+ID4gPiA+ Cj4gPiA+ID4gPiA+ID4gPiA+ID4gT24gTW9uLCBKYW4gMjIsIDIwMjQgYXQgMDY6MDA6MTNQTSAr MDAwMCwgSm9uYXRoYW4gQ2FtZXJvbiB3cm90ZToKPiA+ID4gPiA+ID4gPiA+ID4gPiA+IE9uIE1v biwgMTggRGVjIDIwMjMgMjE6MzU6MTYgKzAxMDAKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICJSYWZh ZWwgSi4gV3lzb2NraSIgPHJhZmFlbEBrZXJuZWwub3JnPiB3cm90ZToKPiA+ID4gPiA+ID4gPiA+ ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IE9uIFdlZCwgRGVjIDEzLCAyMDIzIGF0IDE6 NDnigK9QTSBSdXNzZWxsIEtpbmcgPHJtaytrZXJuZWxAYXJtbGludXgub3JnLnVrPiB3cm90ZToK PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEZyb206 IEphbWVzIE1vcnNlIDxqYW1lcy5tb3JzZUBhcm0uY29tPgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gVGhlIGNvZGUgYmVoaW5kIEFDUElfSE9UUExV R19DUFUgYWxsb3dzIGEgbm90LXByZXNlbnQgQ1BVIHRvIGJlY29tZQo+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+IHByZXNlbnQuCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+IFJpZ2h0Lgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+IFRoaXMgaXNuJ3QgdGhlIG9ubHkgdXNlIG9mIEhPVFBMVUdfQ1BVLiBPbiBhcm02 NCBhbmQgcmlzY3YKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBDUFVzIGNhbiBiZSB0YWtlbiBv ZmZsaW5lIGFzIGEgcG93ZXIgc2F2aW5nIG1lYXN1cmUuCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEJ1dCBzdGlsbCB0aGVyZSBpcyB0aGUgY2FzZSBpbiB3 aGljaCBhIG5vbi1wcmVzZW50IENQVSBjYW4gYmVjb21lCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ IHByZXNlbnQsIGlzbid0IGl0IHRoZXJlPwo+ID4gPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+IE5vdCB5ZXQgZGVmaW5lZCBieSB0aGUgYXJjaGl0ZWN0dXJlcyAoYW5kIEkn bSBhc3N1bWluZyBpdCBwcm9iYWJseSBuZXZlciB3aWxsIGJlKS4KPiA+ID4gPiA+ID4gPiA+ID4g PiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBUaGUgb3JpZ2luYWwgcHJvcG9zYWwgd2UgdG9vayB0 byBBUk0gd2FzIHRvIGRvIGV4YWN0bHkgdGhhdCAtIHRoZXkgcHVzaGVkCj4gPiA+ID4gPiA+ID4g PiA+ID4gPiBiYWNrIGhhcmQgb24gdGhlIGJhc2lzIHRoZXJlIHdhcyBubyBhcmNoaXRlY3R1cmFs bHkgc2FmZSB3YXkgdG8gaW1wbGVtZW50IGl0Lgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gVG9vIG11 Y2ggb2YgdGhlIEFSTSBhcmNoIGhhcyB0byBleGlzdCBmcm9tIHRoZSBzdGFydCBvZiB0aW1lLgo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGh0dHBzOi8vbG9yZS5r ZXJuZWwub3JnL2xpbnV4LWFybS1rZXJuZWwvY2JhYTZkNjgtNjE0My1lMDEwLTVmM2MtZWM2MmY4 NzlhZDk1QGFybS5jb20vCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBpcyBvbmUgb2YgdGhlIHJlbGV2 YW50IHRocmVhZHMgb2YgdGhlIGtlcm5lbCBzaWRlIG9mIHRoYXQgZGlzY3Vzc2lvbi4KPiA+ID4g PiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBOb3QgdG8gcHV0IHNwZWNpZmlj IHdvcmRzIGludG8gdGhlIEFSTSBhcmNoaXRlY3RzIG1vdXRocywgYnV0IHRoZQo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gc2hvcnQgZGVzY3JpcHRpb24gaXMgdGhhdCB0aGVyZSBpcyBjdXJyZW50bHkg bm8gZGVtYW5kIGZvciB3b3JraW5nCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBvdXQgaG93IHRvIG1h a2UgcGh5c2ljYWwgQ1BVIGhvdHBsdWcgcG9zc2libGUsIGFzIHN1Y2ggdGhleSB3aWxsIG5vdAo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gcHJvdmlkZSBhbiBhcmNoaXRlY3R1cmFsbHkgY29tcGxpYW50 IHdheSB0byBkbyBpdCBmb3IgdmlydHVhbCBDUFUgaG90cGx1ZyBhbmQKPiA+ID4gPiA+ID4gPiA+ ID4gPiA+IGFub3RoZXIgbWVhbnMgaXMgbmVlZGVkICh3aGljaCBpcyB3aHkgdGhpcyBzZXJpZXMg ZG9lc24ndCB1c2UgdGhlIHByZXNlbnQgYml0Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBmb3IgdGhh dCBwdXJwb3NlIGFuZCB3ZSBoYXZlIHRoZSBPbmxpbmUgY2FwYWJsZSBiaXQgaW4gTUFEVC9HSUND KQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEl0IHdhcyBhICdm dW4nIGRhbmNlIG9mIHNldmVyYWwgeWVhcnMgdG8gZ2V0IHRvIHRoYXQgY2xhcmlmaWNhdGlvbi4K PiA+ID4gPiA+ID4gPiA+ID4gPiA+IEFzIGFub3RoZXIgZnVuIGZhY3QsIHRoZSBzYW1lIGlzIGRl ZmluZWQgZm9yIHg4NiwgYnV0IEkgZG9uJ3QgdGhpbmsKPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGFu eW9uZSBoYXMgdXNlZCBpdCB5ZXQgKEdJQ0MgZm9yIEFSTSBoYXMgYW4gb25saW5lIGNhcGFibGUg Yml0IGluIHRoZSBmbGFncyB0bwo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gZW5hYmxlIHRoaXMsIHdo aWNoIHdhcyByZW1hcmthYmx5IHNpbWlsYXIgdG8gdGhlIG9ubGluZSBjYXBhYmxlIGJpdCBpbiB0 aGUKPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGZsYWdzIG9mIHRoZSBMb2NhbCBBUElDIGVudHJpZXMg YXMgYWRkZWQgZmFpcmx5IHJlY2VudGx5KS4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gT24gYXJtNjQgYW4gb2Zm bGluZSBDUFUgbWF5IGJlIGRpc2FibGVkIGJ5IGZpcm13YXJlLCBwcmV2ZW50aW5nIGl0IGZyb20K PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBiZWluZyBicm91Z2h0IGJhY2sgb25saW5lLCBidXQg aXQgcmVtYWlucyBwcmVzZW50IHRocm91Z2hvdXQuCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4K PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBBZGRpbmcgY29kZSB0byBwcmV2ZW50IHVzZXItc3Bh Y2UgdHJ5aW5nIHRvIG9ubGluZSB0aGVzZSBkaXNhYmxlZCBDUFVzCj4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gbmVlZHMgc29tZSBhZGRpdGlvbmFsIHRlcm1pbm9sb2d5Lgo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gUmVuYW1lIHRoZSBLY29uZmln IHN5bWJvbCBDT05GSUdfQUNQSV9IT1RQTFVHX1BSRVNFTlRfQ1BVIHRvIHJlZmxlY3QKPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiB0aGF0IGl0IG1ha2VzIHBvc3NpYmxlIENQVXMgcHJlc2VudC4K PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gSG9uZXN0bHks IEkgZG9uJ3QgdGhpbmsgdGhhdCB0aGlzIGNoYW5nZSBpcyBuZWNlc3Nhcnkgb3IgZXZlbiB1c2Vm dWwuCj4gPiA+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gV2hpbHN0IGl0 J3MgYW4gYXR0ZW1wdCB0byBhdm9pZCBmdXR1cmUgY29uZnVzaW9uLCB0aGUgcmVuYW1lIGlzCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiBub3Qgc29tZXRoaW5nIEkgcmVhbGx5IGNhcmUgYWJvdXQgc28g bXkgYWR2aWNlIHRvIFJ1c3NlbGwgaXMgZHJvcAo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gaXQgdW5s ZXNzIHlvdSBhcmUgYXR0YWNoZWQgdG8gaXQhCj4gPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ ID4gPiA+ID4gPiBXaGlsZSBJIGFncmVlIHRoYXQgaXQgaXNuJ3QgYSBuZWNlc3NpdHksIEkgZG9u J3QgZnVsbHkgYWdyZWUgdGhhdCBpdAo+ID4gPiA+ID4gPiA+ID4gPiA+IGlzbid0IHVzZWZ1bC4K PiA+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiA+IE9uZSBvZiB0aGUgaXNzdWVz IHdpbGwgYmUgdGhhdCB3aGlsZSBBcm02NCB3aWxsIHN1cHBvcnQgaG90cGx1ZyB2Q1BVLAo+ID4g PiA+ID4gPiA+ID4gPiA+IGl0IHdvbid0IGJlIHNldHRpbmcgQUNQSV9IT1RQTFVHX0NQVSBiZWNh dXNlIGl0IGRvZXNuJ3Qgc3VwcG9ydAo+ID4gPiA+ID4gPiA+ID4gPiA+IHRoZSBwcmVzZW50IGJp dCBjaGFuZ2luZy4gU28gSSBjYW4gc2VlIHdoeSBKYW1lcyBkZWNpZGVkIHRvIHJlbmFtZQo+ID4g PiA+ID4gPiA+ID4gPiA+IGl0IC0gYmVjYXVzZSB3aXRoIEFybTY0J3MgaG90cGx1ZyB2Q1BVLCB0 aGUgaWRlYSB0aGF0IEFDUElfSE9UUExVR19DUFUKPiA+ID4gPiA+ID4gPiA+ID4gPiBzb21laG93 IGVuYWJsZXMgaG90cGx1ZyBDUFUgc3VwcG9ydCBpcyBub3cgbm8gbG9uZ2VyIHRydWUuCj4gPiA+ ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiBLZWVwaW5nIGl0IGFzIEFDUElfSE9U UExVR19DUFUgbWFrZXMgdGhlIGNvZGUgbGVzcyBvYnZpb3VzLCBiZWNhdXNlIGl0Cj4gPiA+ID4g PiA+ID4gPiA+ID4gbGVhZHMgb25lIHRvIGFzc3VtZSB0aGF0IGl0IG91Z2h0IHRvIGJlIGVuYWJs ZWQgZm9yIEFybTY0J3MKPiA+ID4gPiA+ID4gPiA+ID4gPiBpbXBsZW1lbnRhdGlub24sIGFuZCB0 aGF0IGNvdWxkIHdlbGwgY2F1c2UgaXNzdWVzIGluIHRoZSBmdXR1cmUgaWYKPiA+ID4gPiA+ID4g PiA+ID4gPiBwZW9wbGUgbWFrZSB0aGUgYXNzdW1wdGlvbiB0aGF0ICJBQ1BJX0hPVFBMVUdfQ1BV IiBtZWFucyBob3RwbHVnIENQVQo+ID4gPiA+ID4gPiA+ID4gPiA+IGlzIHN1cHBvcnRlZCBpbiBB Q1BJLiBJdCBkb2Vzbid0IGFueW1vcmUuCj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4g PiA+IE9uIHg4NiB0aGVyZSBpcyBubyBjb25mdXNpb24gQUZBSUNTLiAgSXQncyBhbHdheXMgbWVh bnQgImFzIGxvbmcgYXMKPiA+ID4gPiA+ID4gPiA+ID4gdGhlIHBsYXRmb3JtIHN1cHBvcnRzIGl0 Ii4KPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBUaGF0J3MgeDg2LCB3aGljaCBzdXBw b3J0cyBwaHlzaWNhbCBDUFUgaG90cGx1Zy4gV2UncmUgaW50cm9kdWNpbmcKPiA+ID4gPiA+ID4g PiA+IHN1cHBvcnQgZm9yIEFybTY0IGhlcmUgd2hpY2ggZG9lc24ndCBzdXBwb3J0IHBoeXNpY2Fs IENQVSBob3RwbHVnLgo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFDUEktYmFzZWQgICAgICBQaHlz aWNhbCAgICAgICAgVmlydHVhbAo+ID4gPiA+ID4gPiA+ID4gQXJjaCAgICBIT1RQTFVHX0NQVSAg ICAgQUNQSV9IT1RQTFVHX0NQVSAgICAgICAgSG90cGx1ZyAgICAgICAgIEhvdHBsdWcgICAgICAg ICBIb3RwbHVnCj4gPiA+ID4gPiA+ID4gPiBBcm02NCAgIFkgICAgICAgICAgICAgICBOICAgICAg ICAgICAgICAgICAgICAgICBZICAgICAgICAgICAgICAgTiAgICAgICAgICAgICAgIFkKPiA+ID4g PiA+ID4gPiA+IHg4NiAgICAgWSAgICAgICAgICAgICAgIFkgICAgICAgICAgICAgICAgICAgICAg IFkgICAgICAgICAgICAgICBZICAgICAgICAgICAgICAgWQo+ID4gPiA+ID4gPiA+ID4KPiA+ID4g PiA+ID4gPiA+IFNvIEFDUElfSE9UUExVR19DUFUgYmVjb21lcyB0b3RhbGx5IG1pc25hbWVkIHdp dGggdGhlIGludHJvZHVjdGlvbgo+ID4gPiA+ID4gPiA+ID4gb2YgaG90cGx1ZyBvbiBBcm02NC4K PiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBJZiB3ZSB3YW50IHRvIGp1c3QgbG9vayBh dCBzdHVmZiBmcm9tIGFuIHg4NiBwZXJzcGVjdGl2ZSwgdGhlbiB5ZXMsCj4gPiA+ID4gPiA+ID4g PiBpdCByZW1haW5zIGNvcnJlY3QgdG8gY2FsbCBpdCBBQ1BJX0hPVFBMVUdfQ1BVLiBJdCBpc24n dCBjb3JyZWN0IGFzCj4gPiA+ID4gPiA+ID4gPiBzb29uIGFzIHdlIGFkZCBBcm02NCwgYXMgSSBh bHJlYWR5IHNhaWQuCj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBBbmQgaWYgeW91IHJlbmFt ZSBpdCwgaXQgYmVjb21lcyBsZXNzIGNvbmZ1c2luZyBmb3IgQVJNNjQsIGJ1dCBtb3JlCj4gPiA+ ID4gPiA+ID4gY29uZnVzaW5nIGZvciB4ODYsIHdoaWNoIGJhc2ljYWxseSBpcyBteSBwb2ludC4K PiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IElNTyAiaG90cGx1ZyIgY292ZXJzIGJvdGggY2Fz ZXMgd2VsbCBlbm91Z2ggYW5kICJob3RwbHVnIHByZXNlbnQiIGlzCj4gPiA+ID4gPiA+ID4gb25s eSBhY2N1cmF0ZSBmb3Igb25lIG9mIHRoZW0uCj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ IEFuZCBob25lc3RseSwgYSB0d28gbGluZSBxdWlwIHRvIG15IHJlYXNvbmVkIGFyZ3VtZW50IGlz IG5vdCBJTUhPCj4gPiA+ID4gPiA+ID4gPiBhbiBhY2NlcHRhYmxlIHJlcGx5Lgo+ID4gPiA+ID4g PiA+Cj4gPiA+ID4gPiA+ID4gV2VsbCwgSSdtIG5vdCBldmVuIHN1cmUgaG93IHRvIHJlc3BvbmQg dG8gdGhpcyAuLi4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gVGhlIGFib3ZlIGV4cGxhbmF0aW9u IHlvdSBnaXZlIHdvdWxkIGhhdmUgYmVlbiB1c2VmdWwuLi4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ ID4gSSBkb24ndCBzZWUgaG93ICJob3RwbHVnIiBjb3ZlcnMgYm90aCBjYXNlcy4gQXMgSSd2ZSB0 cmllZCB0byBwb2ludAo+ID4gPiA+ID4gPiBvdXQgbWFueSB0aW1lcyBub3csIEFDUElfSE9UUExV R19DUFUgaXMgTiBmb3IgQXJtNjQsIHlldCBpdCBzdXBwb3J0cwo+ID4gPiA+ID4gPiBBQ1BJIGJh c2VkIGhvdHBsdWcuIEhvdyBkb2VzIEFDUElfSE9UUExVR19DUFUgY292ZXIgQXJtNjQgaWYgaXQn cwo+ID4gPiA+ID4gPiBOIHRoZXJlPwo+ID4gPiA+ID4KPiA+ID4gPiA+IEJ1dCBJSVVDIHRoaXMg Y2hhbmdlIGlzIHByZWxpbWluYXJ5IGZvciBjaGFuZ2luZyBpdCAob3IgZXF1aXZhbGVudAo+ID4g PiA+ID4gb3B0aW9uIHdpdGggYSBkaWZmZXJlbnQgbmFtZSkgdG8gWSwgaXNuJ3QgaXQ/Cj4gPiA+ ID4KPiA+ID4gPiBOby4gQXMgSSBrZWVwIHNheWluZywgQUNQSV9IT1RQTFVHX0NQVSBlbmRzIHVw IE4gb24gQXJtNjQgZXZlbiB3aGVuCj4gPiA+ID4gaXQgc3VwcG9ydHMgaG90cGx1ZyBDUFUgdmlh IEFDUEkuCj4gPiA+ID4KPiA+ID4gPiBFdmVuIHdpdGggdGhlIGZ1bGwgQXJtNjQgcGF0Y2ggc2V0 IGhlcmUsIHVuZGVyIGFyY2gvIHdlIHN0aWxsIG9ubHkKPiA+ID4gPiBoYXZlOgo+ID4gPiA+Cj4g PiA+ID4gYXJjaC9sb29uZ2FyY2gvS2NvbmZpZzogc2VsZWN0IEFDUElfSE9UUExVR19QUkVTRU5U X0NQVSBpZiBBQ1BJX1BST0NFU1NPUiAmJiBIT1RQTFVHX0NQVQo+ID4gPiA+IGFyY2gveDg2L0tj b25maWc6ICAgICAgIHNlbGVjdCBBQ1BJX0hPVFBMVUdfUFJFU0VOVF9DUFUgICAgICAgICBpZiBB Q1BJX1BST0NFU1NPUiAmJiBIT1RQTFVHX0NQVQo+ID4gPiA+Cj4gPiA+ID4gVG8gc2F5IGl0IHll dCBhZ2FpbiwgQUNQSV9IT1RQTFVHXyhQUkVTRU5UXylDUFUgaXMgKm5ldmVyKiBzZXQgb24KPiA+ ID4gPiBBcm02NC4KPiA+ID4KPiA+ID4gQWxscmlnaHQsIHNvIEFSTTY0IGlzIG5vdCBnb2luZyB0 byB1c2UgdGhlIGNvZGUgdGhhdCBpcyBjb25kaXRpb25hbCBvbgo+ID4gPiBBQ1BJX0hPVFBMVUdf Q1BVIHRvZGF5Lgo+ID4gPgo+ID4gPiBGYWlyIGVub3VnaC4KPiA+ID4KPiA+ID4gPiA+ID4gSU1I TyBpdCB0b3RhbGx5IGRvZXNuJ3QsIGFuZCBtb3Jlb3ZlciwgaXQgZ29lcyBhZ2FpbnN0IHdoYXQK PiA+ID4gPiA+ID4gb25lIHdvdWxkIGxvZ2ljYWxseSBleHBlY3QgLSBhbmQgdGhpcyBpcyB3aHkg SSBoYXZlIGEgcHJvYmxlbSB3aXRoCj4gPiA+ID4gPiA+IHlvdXIgZWZmZWN0aXZlIE5BSyBmb3Ig dGhpcyBjaGFuZ2UuIEkgYmVsaWV2ZSB5b3UgYXJlIGJhc2ljYWxseQo+ID4gPiA+ID4gPiB3cm9u ZyBvbiB0aGlzIGZvciB0aGUgcmVhc29ucyBJJ3ZlIGdpdmVuIC0gdGhhdCBBQ1BJX0hPVFBMVUdf Q1BVCj4gPiA+ID4gPiA+IHdpbGwgYmUgTiBmb3IgQXJtNjQgZGVzcGl0ZSBpdCBzdXBwb3J0aW5n IEFDUEktYmFzZWQgQ1BVIGhvdHBsdWcuCj4gPiA+ID4gPgo+ID4gPiA+ID4gU28gSSBzdGlsbCBo YXZlIHRvIHVuZGVyc3RhbmQgaG93IHJlbmFtaW5nIGl0IGZvciBhbGwgYXJjaGl0ZWN0dXJlcwo+ ID4gPiA+ID4gKGluY2x1ZGluZyB4ODYpIGlzIHN1cHBvc2VkIHRvIGhlbHAuCj4gPiA+ID4gPgo+ ID4gPiA+ID4gSXQgd2lsbCBzdGlsbCBiZSB0aGUgc2FtZSBvcHRpb24gdW5kZXIgYSBkaWZmZXJl bnQgbmFtZS4gIEhvdyBkb2VzCj4gPiA+ID4gPiB0aGF0IGNoYW5nZSB0aGluZ3MgdGVjaG5pY2Fs bHk/Cj4gPiA+ID4KPiA+ID4gPiBEbyB5b3UgdGhpbmsgdGhhdCBpdCBtYWtlcyBhbnkgc2Vuc2Ug dG8gaGF2ZSBzdXBwb3J0IGZvciBBQ1BJLWJhc2VkCj4gPiA+ID4gaG90cGx1ZyBDUFUKPiA+ID4K PiA+ID4gU28gdGhpcyBpcyBhbGwgYWJvdXQgd2hhdCB5b3UgYW5kIEkgbWVhbiBieSAiQUNQSS1i YXNlZCBob3RwbHVnIENQVSIuCj4gPiA+Cj4gPiA+ID4gKmFuZCogaGF2aW5nIGl0IGZ1bmN0aW9u YWwgd2l0aCBhIGNvbmZpZ3VyYXRpb24gc3ltYm9sCj4gPiA+ID4gbmFtZWQgIkFDUElfSE9UUExV R19DUFUiIHRvIGJlIHNldCB0byBOID8gVGhhdCdzIGVzc2VudGlhbGx5IHdoYXQKPiA+ID4gPiB5 b3UgYXJlIGFkdm9jYXRpbmcgZm9yLi4uCj4gPiA+Cj4gPiA+IFNldHRpbmcgQUNQSV9IT1RQTFVH X0NQVSB0byBOIG1lYW5zIHRoYXQgeW91IGFyZSBub3QgZ29pbmcgdG8gY29tcGlsZQo+ID4gPiB0 aGUgY29kZSB0aGF0IGlzIGNvbmRpdGlvbmFsIG9uIGl0Lgo+ID4gPgo+ID4gPiBUaGF0IGNvZGUg YWxsb3dzIHRoZSBwcm9jZXNzb3IgZHJpdmVyIHRvIGJlIHJlbW92ZWQgZnJvbSBDUFVzIGFuZAo+ ID4gPiBhcmNoX3VucmVnaXN0ZXJfY3B1KCkgdG8gYmUgY2FsbGVkIGZyb20gd2l0aGluIGFjcGlf YnVzX3RyaW0oKSAgKGFtb25nCj4gPiA+IG90aGVyIHRoaW5ncykuICBPbiB0aGUgd2F5IHVwLCBp dCBhbGxvd3MgYXJjaF9yZWdpc3Rlcl9jcHUoKSB0byBiZQo+ID4gPiBjYWxsZWQgZnJvbSB3aXRo aW4gYWNwaV9idXNfc2NhbigpLiAgSWYgdGhlc2UgdGhpbmdzIGFyZSBub3QgZG9uZSwKPiA+ID4g d2hhdCBJIG1lYW4gYnkgIkFDUEktYmFzZWQgaG90cGx1ZyBDUFUiIGlzIG5vdCBzdXBwb3J0ZWQu Cj4gPgo+ID4gRXZlbiBvbiBBcm02NCwgYXJjaF9yZWdpc3Rlcl9jcHUoKSBhbmQgYXJjaF91bnJl Z2lzdGVyX2NwdSgpIHdpbGwgYmUKPiA+IGNhbGxlZCB3aGVuIHRoZSBDUFUgaW4gdGhlIFZNIGlz IGhvdC1yZW1vdmVkIG9yIGhvdC1hZGRlZC4uLgo+IAo+IEluIGEgZGlmZmVyZW50IHdheSwgaG93 ZXZlci4KClRoaXMgaXMgZ2V0dGluZyB0aXJlc29tZS4gVGhlIGdvYWwgcG9zdHMga2VlcCBtb3Zp bmcuIFRoaXMgaXNuJ3QgYQpkaXNjdXNzaW9uLCB0aGlzIGlzIGEgInlvdSdyZSB3cm9uZyBhbmQg SSdtIGdvaW5nIHRvIGtlZXAgY2hhbmdpbmcgbXkKYXJndW1lbnQgaWYgeW91IGFncmVlIHdpdGgg bWUgdG8gbWFrZSB5b3UgYWx3YXlzIHdyb25nIi4KClNvcnJ5LCBubyBwb2ludCBjb250aW51aW5n IHRoaXMuCgotLSAKUk1LJ3MgUGF0Y2ggc3lzdGVtOiBodHRwczovL3d3dy5hcm1saW51eC5vcmcu dWsvZGV2ZWxvcGVyL3BhdGNoZXMvCkZUVFAgaXMgaGVyZSEgODBNYnBzIGRvd24gMTBNYnBzIHVw LiBEZWNlbnQgY29ubmVjdGl2aXR5IGF0IGxhc3QhCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QKbGludXgtcmlz Y3ZAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2xpbnV4LXJpc2N2Cg== 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 7535FC47DDB for ; Tue, 23 Jan 2024 20:57:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=I/jkQiE4Bp5eL6PWDO8DVI6heIBFft5Ue12kIdckYEQ=; b=kglPNxM4u4rRwG 3OXVLIxVHIW0RxrfT4OzhUY56EA7fPmrlLh1aT+uCnM4KXErX0V9PJS0TC522ugoRw0lwoNDKAwZn 3Baw3IA5mQAC/PGEMuXWxZ4ZcazReIN1R3DQ4g7+iSG3ekoUlhNHTHEcnPHfywSy7IrnMUl15vyQF TVixGznq6+zlJPE+9bLcbR/msxSU+QBKcKeTb5+TAwxb4qsJ6a31KmInhJ0MBojpqm2BOjUT2Y1NA fPbNZyDtvdPzgfJRS77VByaez/H6C+RIVy9t3hlp9CPKK1ck2uhswgY3BVVRdZj0syT2mHQTgnogg qzpoltjt9NvRQnfcbImg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rSNpp-000RtR-00; Tue, 23 Jan 2024 20:57:29 +0000 Received: from pandora.armlinux.org.uk ([2001:4d48:ad52:32c8:5054:ff:fe00:142]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rSNpj-000RrM-1k; Tue, 23 Jan 2024 20:57:25 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=armlinux.org.uk; s=pandora-2019; h=Sender:In-Reply-To: Content-Transfer-Encoding:Content-Type:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=GgZxqTZEPPvHmQoyDJwaeRmXy9DblRmvibMPrx25XDY=; b=MPxJzxUM+Ueq9khmkJ4PmXmVSV KHKxzO1mjziAhXbuoGdY4vB5jRGa81RmxL9xW+E+Di109uowmaqhnZmWDTeJEZuDzKNtG7NTkdDoy NnV/aHWs6g34XqS51y1TWyQnOZOE8a2Xi/fXAplBAINfMbzzVwztjTu49aaNWujPsuRWiFg5BAC0p CDMrQTFgZDBA5lM+2i+8k23GDtxglFly41sQKB7uPUBMcFkSuSk/NjzcXYVfcfpqUYEg9T6O4Bafg Bgc2StowXFSlW23hE/lFTpG6nq1pyHY3Xs5eTivrrsuf7FZZ6oaNpLpZKCM4SwKLgC6iwGHzgzTzF 872UW0fQ==; Received: from shell.armlinux.org.uk ([fd8f:7570:feb6:1:5054:ff:fe00:4ec]:38930) by pandora.armlinux.org.uk with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1rSNpX-000351-0i; Tue, 23 Jan 2024 20:57:11 +0000 Received: from linux by shell.armlinux.org.uk with local (Exim 4.94.2) (envelope-from ) id 1rSNpU-0002Fn-HC; Tue, 23 Jan 2024 20:57:08 +0000 Date: Tue, 23 Jan 2024 20:57:08 +0000 From: "Russell King (Oracle)" To: "Rafael J. Wysocki" Cc: Jonathan Cameron , linux-pm@vger.kernel.org, loongarch@lists.linux.dev, linux-acpi@vger.kernel.org, linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-riscv@lists.infradead.org, kvmarm@lists.linux.dev, x86@kernel.org, acpica-devel@lists.linuxfoundation.org, linux-csky@vger.kernel.org, linux-doc@vger.kernel.org, linux-ia64@vger.kernel.org, linux-parisc@vger.kernel.org, Salil Mehta , Jean-Philippe Brucker , jianyong.wu@arm.com, justin.he@arm.com, James Morse Subject: Re: [PATCH RFC v3 05/21] ACPI: Rename ACPI_HOTPLUG_CPU to include 'present' Message-ID: References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240123_125723_729190_F76652E6 X-CRM114-Status: GOOD ( 68.39 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gVHVlLCBKYW4gMjMsIDIwMjQgYXQgMDk6MTc6MThQTSArMDEwMCwgUmFmYWVsIEouIFd5c29j a2kgd3JvdGU6Cj4gT24gVHVlLCBKYW4gMjMsIDIwMjQgYXQgOTowOeKAr1BNIFJ1c3NlbGwgS2lu ZyAoT3JhY2xlKQo+IDxsaW51eEBhcm1saW51eC5vcmcudWs+IHdyb3RlOgo+ID4KPiA+IE9uIFR1 ZSwgSmFuIDIzLCAyMDI0IGF0IDA4OjI3OjA1UE0gKzAxMDAsIFJhZmFlbCBKLiBXeXNvY2tpIHdy b3RlOgo+ID4gPiBPbiBUdWUsIEphbiAyMywgMjAyNCBhdCA3OjU54oCvUE0gUnVzc2VsbCBLaW5n IChPcmFjbGUpCj4gPiA+IDxsaW51eEBhcm1saW51eC5vcmcudWs+IHdyb3RlOgo+ID4gPiA+Cj4g PiA+ID4gT24gVHVlLCBKYW4gMjMsIDIwMjQgYXQgMDc6MjY6NTdQTSArMDEwMCwgUmFmYWVsIEou IFd5c29ja2kgd3JvdGU6Cj4gPiA+ID4gPiBPbiBUdWUsIEphbiAyMywgMjAyNCBhdCA3OjIw4oCv UE0gUnVzc2VsbCBLaW5nIChPcmFjbGUpCj4gPiA+ID4gPiA8bGludXhAYXJtbGludXgub3JnLnVr PiB3cm90ZToKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gT24gVHVlLCBKYW4gMjMsIDIwMjQgYXQg MDY6NDM6NTlQTSArMDEwMCwgUmFmYWVsIEouIFd5c29ja2kgd3JvdGU6Cj4gPiA+ID4gPiA+ID4g T24gVHVlLCBKYW4gMjMsIDIwMjQgYXQgNTozNuKAr1BNIFJ1c3NlbGwgS2luZyAoT3JhY2xlKQo+ ID4gPiA+ID4gPiA+IDxsaW51eEBhcm1saW51eC5vcmcudWs+IHdyb3RlOgo+ID4gPiA+ID4gPiA+ ID4KPiA+ID4gPiA+ID4gPiA+IE9uIFR1ZSwgSmFuIDIzLCAyMDI0IGF0IDA1OjE1OjU0UE0gKzAx MDAsIFJhZmFlbCBKLiBXeXNvY2tpIHdyb3RlOgo+ID4gPiA+ID4gPiA+ID4gPiBPbiBUdWUsIEph biAyMywgMjAyNCBhdCAyOjI44oCvUE0gUnVzc2VsbCBLaW5nIChPcmFjbGUpCj4gPiA+ID4gPiA+ ID4gPiA+IDxsaW51eEBhcm1saW51eC5vcmcudWs+IHdyb3RlOgo+ID4gPiA+ID4gPiA+ID4gPiA+ Cj4gPiA+ID4gPiA+ID4gPiA+ID4gT24gTW9uLCBKYW4gMjIsIDIwMjQgYXQgMDY6MDA6MTNQTSAr MDAwMCwgSm9uYXRoYW4gQ2FtZXJvbiB3cm90ZToKPiA+ID4gPiA+ID4gPiA+ID4gPiA+IE9uIE1v biwgMTggRGVjIDIwMjMgMjE6MzU6MTYgKzAxMDAKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICJSYWZh ZWwgSi4gV3lzb2NraSIgPHJhZmFlbEBrZXJuZWwub3JnPiB3cm90ZToKPiA+ID4gPiA+ID4gPiA+ ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IE9uIFdlZCwgRGVjIDEzLCAyMDIzIGF0IDE6 NDnigK9QTSBSdXNzZWxsIEtpbmcgPHJtaytrZXJuZWxAYXJtbGludXgub3JnLnVrPiB3cm90ZToK PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEZyb206 IEphbWVzIE1vcnNlIDxqYW1lcy5tb3JzZUBhcm0uY29tPgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gVGhlIGNvZGUgYmVoaW5kIEFDUElfSE9UUExV R19DUFUgYWxsb3dzIGEgbm90LXByZXNlbnQgQ1BVIHRvIGJlY29tZQo+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+IHByZXNlbnQuCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+IFJpZ2h0Lgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+IFRoaXMgaXNuJ3QgdGhlIG9ubHkgdXNlIG9mIEhPVFBMVUdfQ1BVLiBPbiBhcm02 NCBhbmQgcmlzY3YKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBDUFVzIGNhbiBiZSB0YWtlbiBv ZmZsaW5lIGFzIGEgcG93ZXIgc2F2aW5nIG1lYXN1cmUuCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEJ1dCBzdGlsbCB0aGVyZSBpcyB0aGUgY2FzZSBpbiB3 aGljaCBhIG5vbi1wcmVzZW50IENQVSBjYW4gYmVjb21lCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ IHByZXNlbnQsIGlzbid0IGl0IHRoZXJlPwo+ID4gPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+IE5vdCB5ZXQgZGVmaW5lZCBieSB0aGUgYXJjaGl0ZWN0dXJlcyAoYW5kIEkn bSBhc3N1bWluZyBpdCBwcm9iYWJseSBuZXZlciB3aWxsIGJlKS4KPiA+ID4gPiA+ID4gPiA+ID4g PiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBUaGUgb3JpZ2luYWwgcHJvcG9zYWwgd2UgdG9vayB0 byBBUk0gd2FzIHRvIGRvIGV4YWN0bHkgdGhhdCAtIHRoZXkgcHVzaGVkCj4gPiA+ID4gPiA+ID4g PiA+ID4gPiBiYWNrIGhhcmQgb24gdGhlIGJhc2lzIHRoZXJlIHdhcyBubyBhcmNoaXRlY3R1cmFs bHkgc2FmZSB3YXkgdG8gaW1wbGVtZW50IGl0Lgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gVG9vIG11 Y2ggb2YgdGhlIEFSTSBhcmNoIGhhcyB0byBleGlzdCBmcm9tIHRoZSBzdGFydCBvZiB0aW1lLgo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGh0dHBzOi8vbG9yZS5r ZXJuZWwub3JnL2xpbnV4LWFybS1rZXJuZWwvY2JhYTZkNjgtNjE0My1lMDEwLTVmM2MtZWM2MmY4 NzlhZDk1QGFybS5jb20vCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBpcyBvbmUgb2YgdGhlIHJlbGV2 YW50IHRocmVhZHMgb2YgdGhlIGtlcm5lbCBzaWRlIG9mIHRoYXQgZGlzY3Vzc2lvbi4KPiA+ID4g PiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBOb3QgdG8gcHV0IHNwZWNpZmlj IHdvcmRzIGludG8gdGhlIEFSTSBhcmNoaXRlY3RzIG1vdXRocywgYnV0IHRoZQo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gc2hvcnQgZGVzY3JpcHRpb24gaXMgdGhhdCB0aGVyZSBpcyBjdXJyZW50bHkg bm8gZGVtYW5kIGZvciB3b3JraW5nCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBvdXQgaG93IHRvIG1h a2UgcGh5c2ljYWwgQ1BVIGhvdHBsdWcgcG9zc2libGUsIGFzIHN1Y2ggdGhleSB3aWxsIG5vdAo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gcHJvdmlkZSBhbiBhcmNoaXRlY3R1cmFsbHkgY29tcGxpYW50 IHdheSB0byBkbyBpdCBmb3IgdmlydHVhbCBDUFUgaG90cGx1ZyBhbmQKPiA+ID4gPiA+ID4gPiA+ ID4gPiA+IGFub3RoZXIgbWVhbnMgaXMgbmVlZGVkICh3aGljaCBpcyB3aHkgdGhpcyBzZXJpZXMg ZG9lc24ndCB1c2UgdGhlIHByZXNlbnQgYml0Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBmb3IgdGhh dCBwdXJwb3NlIGFuZCB3ZSBoYXZlIHRoZSBPbmxpbmUgY2FwYWJsZSBiaXQgaW4gTUFEVC9HSUND KQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEl0IHdhcyBhICdm dW4nIGRhbmNlIG9mIHNldmVyYWwgeWVhcnMgdG8gZ2V0IHRvIHRoYXQgY2xhcmlmaWNhdGlvbi4K PiA+ID4gPiA+ID4gPiA+ID4gPiA+IEFzIGFub3RoZXIgZnVuIGZhY3QsIHRoZSBzYW1lIGlzIGRl ZmluZWQgZm9yIHg4NiwgYnV0IEkgZG9uJ3QgdGhpbmsKPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGFu eW9uZSBoYXMgdXNlZCBpdCB5ZXQgKEdJQ0MgZm9yIEFSTSBoYXMgYW4gb25saW5lIGNhcGFibGUg Yml0IGluIHRoZSBmbGFncyB0bwo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gZW5hYmxlIHRoaXMsIHdo aWNoIHdhcyByZW1hcmthYmx5IHNpbWlsYXIgdG8gdGhlIG9ubGluZSBjYXBhYmxlIGJpdCBpbiB0 aGUKPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGZsYWdzIG9mIHRoZSBMb2NhbCBBUElDIGVudHJpZXMg YXMgYWRkZWQgZmFpcmx5IHJlY2VudGx5KS4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gT24gYXJtNjQgYW4gb2Zm bGluZSBDUFUgbWF5IGJlIGRpc2FibGVkIGJ5IGZpcm13YXJlLCBwcmV2ZW50aW5nIGl0IGZyb20K PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBiZWluZyBicm91Z2h0IGJhY2sgb25saW5lLCBidXQg aXQgcmVtYWlucyBwcmVzZW50IHRocm91Z2hvdXQuCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4K PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBBZGRpbmcgY29kZSB0byBwcmV2ZW50IHVzZXItc3Bh Y2UgdHJ5aW5nIHRvIG9ubGluZSB0aGVzZSBkaXNhYmxlZCBDUFVzCj4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gbmVlZHMgc29tZSBhZGRpdGlvbmFsIHRlcm1pbm9sb2d5Lgo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gUmVuYW1lIHRoZSBLY29uZmln IHN5bWJvbCBDT05GSUdfQUNQSV9IT1RQTFVHX1BSRVNFTlRfQ1BVIHRvIHJlZmxlY3QKPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiB0aGF0IGl0IG1ha2VzIHBvc3NpYmxlIENQVXMgcHJlc2VudC4K PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gSG9uZXN0bHks IEkgZG9uJ3QgdGhpbmsgdGhhdCB0aGlzIGNoYW5nZSBpcyBuZWNlc3Nhcnkgb3IgZXZlbiB1c2Vm dWwuCj4gPiA+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gV2hpbHN0IGl0 J3MgYW4gYXR0ZW1wdCB0byBhdm9pZCBmdXR1cmUgY29uZnVzaW9uLCB0aGUgcmVuYW1lIGlzCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiBub3Qgc29tZXRoaW5nIEkgcmVhbGx5IGNhcmUgYWJvdXQgc28g bXkgYWR2aWNlIHRvIFJ1c3NlbGwgaXMgZHJvcAo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gaXQgdW5s ZXNzIHlvdSBhcmUgYXR0YWNoZWQgdG8gaXQhCj4gPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ ID4gPiA+ID4gPiBXaGlsZSBJIGFncmVlIHRoYXQgaXQgaXNuJ3QgYSBuZWNlc3NpdHksIEkgZG9u J3QgZnVsbHkgYWdyZWUgdGhhdCBpdAo+ID4gPiA+ID4gPiA+ID4gPiA+IGlzbid0IHVzZWZ1bC4K PiA+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiA+IE9uZSBvZiB0aGUgaXNzdWVz IHdpbGwgYmUgdGhhdCB3aGlsZSBBcm02NCB3aWxsIHN1cHBvcnQgaG90cGx1ZyB2Q1BVLAo+ID4g PiA+ID4gPiA+ID4gPiA+IGl0IHdvbid0IGJlIHNldHRpbmcgQUNQSV9IT1RQTFVHX0NQVSBiZWNh dXNlIGl0IGRvZXNuJ3Qgc3VwcG9ydAo+ID4gPiA+ID4gPiA+ID4gPiA+IHRoZSBwcmVzZW50IGJp dCBjaGFuZ2luZy4gU28gSSBjYW4gc2VlIHdoeSBKYW1lcyBkZWNpZGVkIHRvIHJlbmFtZQo+ID4g PiA+ID4gPiA+ID4gPiA+IGl0IC0gYmVjYXVzZSB3aXRoIEFybTY0J3MgaG90cGx1ZyB2Q1BVLCB0 aGUgaWRlYSB0aGF0IEFDUElfSE9UUExVR19DUFUKPiA+ID4gPiA+ID4gPiA+ID4gPiBzb21laG93 IGVuYWJsZXMgaG90cGx1ZyBDUFUgc3VwcG9ydCBpcyBub3cgbm8gbG9uZ2VyIHRydWUuCj4gPiA+ ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiBLZWVwaW5nIGl0IGFzIEFDUElfSE9U UExVR19DUFUgbWFrZXMgdGhlIGNvZGUgbGVzcyBvYnZpb3VzLCBiZWNhdXNlIGl0Cj4gPiA+ID4g PiA+ID4gPiA+ID4gbGVhZHMgb25lIHRvIGFzc3VtZSB0aGF0IGl0IG91Z2h0IHRvIGJlIGVuYWJs ZWQgZm9yIEFybTY0J3MKPiA+ID4gPiA+ID4gPiA+ID4gPiBpbXBsZW1lbnRhdGlub24sIGFuZCB0 aGF0IGNvdWxkIHdlbGwgY2F1c2UgaXNzdWVzIGluIHRoZSBmdXR1cmUgaWYKPiA+ID4gPiA+ID4g PiA+ID4gPiBwZW9wbGUgbWFrZSB0aGUgYXNzdW1wdGlvbiB0aGF0ICJBQ1BJX0hPVFBMVUdfQ1BV IiBtZWFucyBob3RwbHVnIENQVQo+ID4gPiA+ID4gPiA+ID4gPiA+IGlzIHN1cHBvcnRlZCBpbiBB Q1BJLiBJdCBkb2Vzbid0IGFueW1vcmUuCj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4g PiA+IE9uIHg4NiB0aGVyZSBpcyBubyBjb25mdXNpb24gQUZBSUNTLiAgSXQncyBhbHdheXMgbWVh bnQgImFzIGxvbmcgYXMKPiA+ID4gPiA+ID4gPiA+ID4gdGhlIHBsYXRmb3JtIHN1cHBvcnRzIGl0 Ii4KPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBUaGF0J3MgeDg2LCB3aGljaCBzdXBw b3J0cyBwaHlzaWNhbCBDUFUgaG90cGx1Zy4gV2UncmUgaW50cm9kdWNpbmcKPiA+ID4gPiA+ID4g PiA+IHN1cHBvcnQgZm9yIEFybTY0IGhlcmUgd2hpY2ggZG9lc24ndCBzdXBwb3J0IHBoeXNpY2Fs IENQVSBob3RwbHVnLgo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFDUEktYmFzZWQgICAgICBQaHlz aWNhbCAgICAgICAgVmlydHVhbAo+ID4gPiA+ID4gPiA+ID4gQXJjaCAgICBIT1RQTFVHX0NQVSAg ICAgQUNQSV9IT1RQTFVHX0NQVSAgICAgICAgSG90cGx1ZyAgICAgICAgIEhvdHBsdWcgICAgICAg ICBIb3RwbHVnCj4gPiA+ID4gPiA+ID4gPiBBcm02NCAgIFkgICAgICAgICAgICAgICBOICAgICAg ICAgICAgICAgICAgICAgICBZICAgICAgICAgICAgICAgTiAgICAgICAgICAgICAgIFkKPiA+ID4g PiA+ID4gPiA+IHg4NiAgICAgWSAgICAgICAgICAgICAgIFkgICAgICAgICAgICAgICAgICAgICAg IFkgICAgICAgICAgICAgICBZICAgICAgICAgICAgICAgWQo+ID4gPiA+ID4gPiA+ID4KPiA+ID4g PiA+ID4gPiA+IFNvIEFDUElfSE9UUExVR19DUFUgYmVjb21lcyB0b3RhbGx5IG1pc25hbWVkIHdp dGggdGhlIGludHJvZHVjdGlvbgo+ID4gPiA+ID4gPiA+ID4gb2YgaG90cGx1ZyBvbiBBcm02NC4K PiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBJZiB3ZSB3YW50IHRvIGp1c3QgbG9vayBh dCBzdHVmZiBmcm9tIGFuIHg4NiBwZXJzcGVjdGl2ZSwgdGhlbiB5ZXMsCj4gPiA+ID4gPiA+ID4g PiBpdCByZW1haW5zIGNvcnJlY3QgdG8gY2FsbCBpdCBBQ1BJX0hPVFBMVUdfQ1BVLiBJdCBpc24n dCBjb3JyZWN0IGFzCj4gPiA+ID4gPiA+ID4gPiBzb29uIGFzIHdlIGFkZCBBcm02NCwgYXMgSSBh bHJlYWR5IHNhaWQuCj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBBbmQgaWYgeW91IHJlbmFt ZSBpdCwgaXQgYmVjb21lcyBsZXNzIGNvbmZ1c2luZyBmb3IgQVJNNjQsIGJ1dCBtb3JlCj4gPiA+ ID4gPiA+ID4gY29uZnVzaW5nIGZvciB4ODYsIHdoaWNoIGJhc2ljYWxseSBpcyBteSBwb2ludC4K PiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IElNTyAiaG90cGx1ZyIgY292ZXJzIGJvdGggY2Fz ZXMgd2VsbCBlbm91Z2ggYW5kICJob3RwbHVnIHByZXNlbnQiIGlzCj4gPiA+ID4gPiA+ID4gb25s eSBhY2N1cmF0ZSBmb3Igb25lIG9mIHRoZW0uCj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ IEFuZCBob25lc3RseSwgYSB0d28gbGluZSBxdWlwIHRvIG15IHJlYXNvbmVkIGFyZ3VtZW50IGlz IG5vdCBJTUhPCj4gPiA+ID4gPiA+ID4gPiBhbiBhY2NlcHRhYmxlIHJlcGx5Lgo+ID4gPiA+ID4g PiA+Cj4gPiA+ID4gPiA+ID4gV2VsbCwgSSdtIG5vdCBldmVuIHN1cmUgaG93IHRvIHJlc3BvbmQg dG8gdGhpcyAuLi4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gVGhlIGFib3ZlIGV4cGxhbmF0aW9u IHlvdSBnaXZlIHdvdWxkIGhhdmUgYmVlbiB1c2VmdWwuLi4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ ID4gSSBkb24ndCBzZWUgaG93ICJob3RwbHVnIiBjb3ZlcnMgYm90aCBjYXNlcy4gQXMgSSd2ZSB0 cmllZCB0byBwb2ludAo+ID4gPiA+ID4gPiBvdXQgbWFueSB0aW1lcyBub3csIEFDUElfSE9UUExV R19DUFUgaXMgTiBmb3IgQXJtNjQsIHlldCBpdCBzdXBwb3J0cwo+ID4gPiA+ID4gPiBBQ1BJIGJh c2VkIGhvdHBsdWcuIEhvdyBkb2VzIEFDUElfSE9UUExVR19DUFUgY292ZXIgQXJtNjQgaWYgaXQn cwo+ID4gPiA+ID4gPiBOIHRoZXJlPwo+ID4gPiA+ID4KPiA+ID4gPiA+IEJ1dCBJSVVDIHRoaXMg Y2hhbmdlIGlzIHByZWxpbWluYXJ5IGZvciBjaGFuZ2luZyBpdCAob3IgZXF1aXZhbGVudAo+ID4g PiA+ID4gb3B0aW9uIHdpdGggYSBkaWZmZXJlbnQgbmFtZSkgdG8gWSwgaXNuJ3QgaXQ/Cj4gPiA+ ID4KPiA+ID4gPiBOby4gQXMgSSBrZWVwIHNheWluZywgQUNQSV9IT1RQTFVHX0NQVSBlbmRzIHVw IE4gb24gQXJtNjQgZXZlbiB3aGVuCj4gPiA+ID4gaXQgc3VwcG9ydHMgaG90cGx1ZyBDUFUgdmlh IEFDUEkuCj4gPiA+ID4KPiA+ID4gPiBFdmVuIHdpdGggdGhlIGZ1bGwgQXJtNjQgcGF0Y2ggc2V0 IGhlcmUsIHVuZGVyIGFyY2gvIHdlIHN0aWxsIG9ubHkKPiA+ID4gPiBoYXZlOgo+ID4gPiA+Cj4g PiA+ID4gYXJjaC9sb29uZ2FyY2gvS2NvbmZpZzogc2VsZWN0IEFDUElfSE9UUExVR19QUkVTRU5U X0NQVSBpZiBBQ1BJX1BST0NFU1NPUiAmJiBIT1RQTFVHX0NQVQo+ID4gPiA+IGFyY2gveDg2L0tj b25maWc6ICAgICAgIHNlbGVjdCBBQ1BJX0hPVFBMVUdfUFJFU0VOVF9DUFUgICAgICAgICBpZiBB Q1BJX1BST0NFU1NPUiAmJiBIT1RQTFVHX0NQVQo+ID4gPiA+Cj4gPiA+ID4gVG8gc2F5IGl0IHll dCBhZ2FpbiwgQUNQSV9IT1RQTFVHXyhQUkVTRU5UXylDUFUgaXMgKm5ldmVyKiBzZXQgb24KPiA+ ID4gPiBBcm02NC4KPiA+ID4KPiA+ID4gQWxscmlnaHQsIHNvIEFSTTY0IGlzIG5vdCBnb2luZyB0 byB1c2UgdGhlIGNvZGUgdGhhdCBpcyBjb25kaXRpb25hbCBvbgo+ID4gPiBBQ1BJX0hPVFBMVUdf Q1BVIHRvZGF5Lgo+ID4gPgo+ID4gPiBGYWlyIGVub3VnaC4KPiA+ID4KPiA+ID4gPiA+ID4gSU1I TyBpdCB0b3RhbGx5IGRvZXNuJ3QsIGFuZCBtb3Jlb3ZlciwgaXQgZ29lcyBhZ2FpbnN0IHdoYXQK PiA+ID4gPiA+ID4gb25lIHdvdWxkIGxvZ2ljYWxseSBleHBlY3QgLSBhbmQgdGhpcyBpcyB3aHkg SSBoYXZlIGEgcHJvYmxlbSB3aXRoCj4gPiA+ID4gPiA+IHlvdXIgZWZmZWN0aXZlIE5BSyBmb3Ig dGhpcyBjaGFuZ2UuIEkgYmVsaWV2ZSB5b3UgYXJlIGJhc2ljYWxseQo+ID4gPiA+ID4gPiB3cm9u ZyBvbiB0aGlzIGZvciB0aGUgcmVhc29ucyBJJ3ZlIGdpdmVuIC0gdGhhdCBBQ1BJX0hPVFBMVUdf Q1BVCj4gPiA+ID4gPiA+IHdpbGwgYmUgTiBmb3IgQXJtNjQgZGVzcGl0ZSBpdCBzdXBwb3J0aW5n IEFDUEktYmFzZWQgQ1BVIGhvdHBsdWcuCj4gPiA+ID4gPgo+ID4gPiA+ID4gU28gSSBzdGlsbCBo YXZlIHRvIHVuZGVyc3RhbmQgaG93IHJlbmFtaW5nIGl0IGZvciBhbGwgYXJjaGl0ZWN0dXJlcwo+ ID4gPiA+ID4gKGluY2x1ZGluZyB4ODYpIGlzIHN1cHBvc2VkIHRvIGhlbHAuCj4gPiA+ID4gPgo+ ID4gPiA+ID4gSXQgd2lsbCBzdGlsbCBiZSB0aGUgc2FtZSBvcHRpb24gdW5kZXIgYSBkaWZmZXJl bnQgbmFtZS4gIEhvdyBkb2VzCj4gPiA+ID4gPiB0aGF0IGNoYW5nZSB0aGluZ3MgdGVjaG5pY2Fs bHk/Cj4gPiA+ID4KPiA+ID4gPiBEbyB5b3UgdGhpbmsgdGhhdCBpdCBtYWtlcyBhbnkgc2Vuc2Ug dG8gaGF2ZSBzdXBwb3J0IGZvciBBQ1BJLWJhc2VkCj4gPiA+ID4gaG90cGx1ZyBDUFUKPiA+ID4K PiA+ID4gU28gdGhpcyBpcyBhbGwgYWJvdXQgd2hhdCB5b3UgYW5kIEkgbWVhbiBieSAiQUNQSS1i YXNlZCBob3RwbHVnIENQVSIuCj4gPiA+Cj4gPiA+ID4gKmFuZCogaGF2aW5nIGl0IGZ1bmN0aW9u YWwgd2l0aCBhIGNvbmZpZ3VyYXRpb24gc3ltYm9sCj4gPiA+ID4gbmFtZWQgIkFDUElfSE9UUExV R19DUFUiIHRvIGJlIHNldCB0byBOID8gVGhhdCdzIGVzc2VudGlhbGx5IHdoYXQKPiA+ID4gPiB5 b3UgYXJlIGFkdm9jYXRpbmcgZm9yLi4uCj4gPiA+Cj4gPiA+IFNldHRpbmcgQUNQSV9IT1RQTFVH X0NQVSB0byBOIG1lYW5zIHRoYXQgeW91IGFyZSBub3QgZ29pbmcgdG8gY29tcGlsZQo+ID4gPiB0 aGUgY29kZSB0aGF0IGlzIGNvbmRpdGlvbmFsIG9uIGl0Lgo+ID4gPgo+ID4gPiBUaGF0IGNvZGUg YWxsb3dzIHRoZSBwcm9jZXNzb3IgZHJpdmVyIHRvIGJlIHJlbW92ZWQgZnJvbSBDUFVzIGFuZAo+ ID4gPiBhcmNoX3VucmVnaXN0ZXJfY3B1KCkgdG8gYmUgY2FsbGVkIGZyb20gd2l0aGluIGFjcGlf YnVzX3RyaW0oKSAgKGFtb25nCj4gPiA+IG90aGVyIHRoaW5ncykuICBPbiB0aGUgd2F5IHVwLCBp dCBhbGxvd3MgYXJjaF9yZWdpc3Rlcl9jcHUoKSB0byBiZQo+ID4gPiBjYWxsZWQgZnJvbSB3aXRo aW4gYWNwaV9idXNfc2NhbigpLiAgSWYgdGhlc2UgdGhpbmdzIGFyZSBub3QgZG9uZSwKPiA+ID4g d2hhdCBJIG1lYW4gYnkgIkFDUEktYmFzZWQgaG90cGx1ZyBDUFUiIGlzIG5vdCBzdXBwb3J0ZWQu Cj4gPgo+ID4gRXZlbiBvbiBBcm02NCwgYXJjaF9yZWdpc3Rlcl9jcHUoKSBhbmQgYXJjaF91bnJl Z2lzdGVyX2NwdSgpIHdpbGwgYmUKPiA+IGNhbGxlZCB3aGVuIHRoZSBDUFUgaW4gdGhlIFZNIGlz IGhvdC1yZW1vdmVkIG9yIGhvdC1hZGRlZC4uLgo+IAo+IEluIGEgZGlmZmVyZW50IHdheSwgaG93 ZXZlci4KClRoaXMgaXMgZ2V0dGluZyB0aXJlc29tZS4gVGhlIGdvYWwgcG9zdHMga2VlcCBtb3Zp bmcuIFRoaXMgaXNuJ3QgYQpkaXNjdXNzaW9uLCB0aGlzIGlzIGEgInlvdSdyZSB3cm9uZyBhbmQg SSdtIGdvaW5nIHRvIGtlZXAgY2hhbmdpbmcgbXkKYXJndW1lbnQgaWYgeW91IGFncmVlIHdpdGgg bWUgdG8gbWFrZSB5b3UgYWx3YXlzIHdyb25nIi4KClNvcnJ5LCBubyBwb2ludCBjb250aW51aW5n IHRoaXMuCgotLSAKUk1LJ3MgUGF0Y2ggc3lzdGVtOiBodHRwczovL3d3dy5hcm1saW51eC5vcmcu dWsvZGV2ZWxvcGVyL3BhdGNoZXMvCkZUVFAgaXMgaGVyZSEgODBNYnBzIGRvd24gMTBNYnBzIHVw LiBEZWNlbnQgY29ubmVjdGl2aXR5IGF0IGxhc3QhCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51 eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5v cmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==