From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f173.google.com (mail-pf1-f173.google.com [209.85.210.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4A54114D283 for ; Wed, 18 Dec 2024 21:02:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.173 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734555756; cv=none; b=AOnI0dGuA8IBfeBUq33iujho0+xWxvT8P6whaqoISUXBfW/dSQkzhkypWWl7C1l7Lnte6VwTHmBLvv3wnL/yQ6Ia+dN50SSAh5TXh1LvOTDM1IMDMA/lQ4roEIMVzHi91P1ei8wd+QtiULpnCqidSLgt63l0jg4xBg5tKLUQhks= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734555756; c=relaxed/simple; bh=Wmg6V9Kp+8xcAMfN5JLKf/Zv/txUVGtU/0FK9QGmSg8=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=XsYf0gCr5kDBt1yVIac+ji++2bqS2cbtdwCHfHO5i3c9C4WyUnHkpc7jLhqRHTNOWyHXwpxjG1zF2HTbbChrVt8mwkXUUIwvROp/tljleyT3icGN39cWg/l1YV+mvyx4npNWXeERMp5lkYT+knKr+m1C322p6wRLzVL4LyH1Zws= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=rivosinc.com; spf=pass smtp.mailfrom=rivosinc.com; dkim=pass (2048-bit key) header.d=rivosinc-com.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b=2TUL8CoU; arc=none smtp.client-ip=209.85.210.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=rivosinc-com.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b="2TUL8CoU" Received: by mail-pf1-f173.google.com with SMTP id d2e1a72fcca58-728d1a2f180so99785b3a.1 for ; Wed, 18 Dec 2024 13:02:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1734555754; x=1735160554; darn=vger.kernel.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=VEvOuS9GjCc8R1kkciZzUfnJPop9QAlnrlUsyAlmMgg=; b=2TUL8CoUEJ3AnQl782k/BHnn3PpPbOiF0hc7lccK5l7j2H0QX4gBfaoFQoxAKQQLU+ NgcacYRySsEA25xO018IkyVGOvhoLNbL33g6T6dKoO6Ny+wpz4LcTSqPSx2x38ryIl7Q L68dhfuCBx5sDZG9ms2inv2kNHE61GpzaWWFmgCPzcBF1VOMRElDg0b+87Tk/BfRYVgU vvPG1+Q1WSoUTPQhhXMFzma1MNzDDEFGG713IlHAg28aB9AK+LQ/SgTA7czfaBe9GoRw QXcnjHRjcck0JCJakA6a7UucBmyLhY5jc4ciKhtxDnDZbu3ZfkzLs5Wmbgdy6uWr0KPC 4myg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734555754; x=1735160554; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=VEvOuS9GjCc8R1kkciZzUfnJPop9QAlnrlUsyAlmMgg=; b=WTzGALvKtIg5/LXue6w4puHqwgE808x91cZuSNghGKbgd5CvdzxdhJK7FoOb72+0zG qS7OANdxQQH4ZRykGfLHVcnMxkMUTaYM+3XxCWBHrCc41ZnQHbDmo0UmwGO8p1V/Oxax G9BWotKOvBoXHzhZmKhACD4rXstR4Y2DLGa4Ec6XnFe2+p6iXQYemyCznvVTcPGew4ts H/yfrFH2U0FOWfEhGgsPKnuIfv3fvQ2bMBz7dhR71cZDZaNR7IJ1iTCeVuZ0uzI2GEnq GjnxhHEM+v2OV+rMkp+kX5ok8T/LIJHaCuKyqvXVEiAyL75DCt4SnXRWVRqfL59k1cN6 LXaw== X-Forwarded-Encrypted: i=1; AJvYcCXhm4IxcCocVH7aIb4HjTg/UImi66TsvqmpzINQsMbvjVZfwhBAykFKk0FysfBh81GdvO92exjZQv5E1VrUFAzD@vger.kernel.org X-Gm-Message-State: AOJu0YzpiPTIjspJRHtLLDn2DzRASdp6tw/d4TKNuMvHZoBq/Pyd5HxG MmwFXCI7khCgsQLbXSZhgEfaUq4nX8h2LyF1+FstVdgWW0MGS07tJceyFPUxer0= X-Gm-Gg: ASbGncuVccj3EB3J8eAphPV8L65L/8ekN5yJoXXoxPhsGWgrh6ESOvXRq4H1BpcwSDJ qnVSqCQjWJlTQPLFoqZOqlnSDHhFBI0TFuidKjqXBM611enpo4qy0bPZdoAlXPLEQTC66/OXrXQ HEUNyFlqHnhDBBseWwZVAa7pD/5krvFmw7HECsUh0hWt2BJcP9WhPrNPmTbfMj3zkiGbvMuc0Ju CLkCSjWrA087KJE2aMwx2APV79ri6KUVYkaI2Xt1M5SQks= X-Google-Smtp-Source: AGHT+IGGTepBnro/Yv+Td9aOesliGxiq1HfALi+NYhCuWSXz+YG9fqxb1BuJcfYw6mbiXYYJ+gAnug== X-Received: by 2002:a05:6a00:7428:b0:725:4a1b:38ec with SMTP id d2e1a72fcca58-72aa9a10440mr1146368b3a.3.1734555753073; Wed, 18 Dec 2024 13:02:33 -0800 (PST) Received: from ghost ([50.145.13.30]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-72918b77290sm8969134b3a.113.2024.12.18.13.02.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Dec 2024 13:02:32 -0800 (PST) Date: Wed, 18 Dec 2024 13:02:30 -0800 From: Charlie Jenkins To: Ian Rogers Cc: Arnaldo Carvalho de Melo , Peter Zijlstra , Ingo Molnar , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Adrian Hunter , Paul Walmsley , Palmer Dabbelt , Albert Ou , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org Subject: Re: [PATCH v2] tools: perf: tests: Fix code reading for riscv Message-ID: References: <20241217-perf_fix_riscv_obj_reading-v2-1-58f81b7b4c7d@rivosinc.com> Precedence: bulk X-Mailing-List: linux-perf-users@vger.kernel.org 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: On Wed, Dec 18, 2024 at 11:23:51AM -0800, Ian Rogers wrote: > On Wed, Dec 18, 2024 at 10:41 AM Arnaldo Carvalho de Melo > wrote: > > > > On Tue, Dec 17, 2024 at 04:30:15PM -0800, Charlie Jenkins wrote: > > > On Tue, Dec 17, 2024 at 04:18:32PM -0800, Ian Rogers wrote: > > > > On Tue, Dec 17, 2024 at 3:52 PM Charlie Jenkins wrote: > > > > > After binutils commit e43d876 which was first included in binutils 2.41, > > > > > riscv no longer supports dumping in the middle of instructions. Increase > > > > > the objdump window by 2-bytes to ensure that any instruction that sits > > > > > on the boundary of the specified stop-address is not cut in half. > > > > > > > Signed-off-by: Charlie Jenkins > > > > > > Reviewed-by: Ian Rogers > > > > > > > A binutils patch has been sent as well to fix this in objdump [1]. > > > > > > > Link: https://sourceware.org/pipermail/binutils/2024-December/138139.html [1] > > > > > > > Changes in v2: > > > > > - Do objdump version detection at runtime (Ian) > > > > > - Link to v1: https://lore.kernel.org/r/20241216-perf_fix_riscv_obj_reading-v1-0-b75962660a9b@rivosinc.com > > > > > > > --- a/tools/perf/tests/code-reading.c > > > > > @@ -183,9 +244,30 @@ static int read_via_objdump(const char *filename, u64 addr, void *buf, > > > > > const char *fmt; > > > > > FILE *f; > > > > > int ret; > > > > > + u64 stop_address = addr + len; > > > > > + > > > > > + if (IS_ENABLED(__riscv)) { > > > > > > Not sure if there is a consistency issue here. Elsewhere we're just > > > > using ifdef, such as: > > > > https://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git/tree/tools/perf/util/include/dwarf-regs.h?h=perf-tools-next#n69 > > > > > I don't have any strong feelings about that. I can change it to be an > > > ifdef. On other lists I have been told to use IS_ENABLED whenever > > > possible, but it's only a small difference. > > > > Can't we just use uname here? > > > > So that we don't use kconfig.h since its not used in tools/perf/ and > > makes it looks like perf is in lockstep with the kernel source tree > > version it was compiled from? > > > > $ git grep kconfig.h tools/perf/ > > $ > > > > BTW, what would happen if I collected a perf.data file on x86_64 and > > would read it in a RiscV machine with such a objdump version? The same > > problem? > > This code is in tests hence thinking that a separate fix is needed for > that problem. Hopefully the use of elf machine/flags tackles it: > https://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git/tree/tools/perf/util/include/dwarf-regs.h?h=perf-tools-next#n25 > We are getting somewhat disassembler heavy. We have llvm as a library, > capstone as a library, binutils objdump and llvm objdump. Given the > pain with parsing text, could we lose the objdumps? Similarly for > addr2line? Are you suggesting to remove this test case entirely to get rid of the objdump dependency? The goal of this test case seems to be to check objdump and perf return the same data, so it doesn't seem like there would be an alternative to using objdump. - Charlie > > Thanks, > Ian 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 7694AE77187 for ; Wed, 18 Dec 2024 21:02:43 +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=RgvHL3ZlUzElTQTpkg+RV+rYr3K+abDUJNKAhUY5J8g=; b=lUnPPw666UWfww +6uLc2xOQXPm8b2YoA3Ic+jZ4BPxACsJAIsiRn9Qlxw6lq28r3UJOfL8g5M5wqmlbpxIloDVA4mJy K2yFH5hhcuXNfEo14XEfWMIYZqjyLw6+/jRa5bj7ituL+9uXcIFe76Gr59nU+z1d4ZBfh185QLC5p LOPH6UiCp8BEowyFFvTPdL8W+J82p8/siES6RbhhWwQ4rCMZN87pQNZ/OazlWsxXhB425FxKFvCYF P0LBp3ZonanJKLxnAg77opFE5kBHLMyRbB1jVr4FIpTTC55TXYrs6XPgJkv2Q76vWkKK0iavFJ5rl eEPZydXIbIIp0COSHzZA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tO1Bn-000000005gy-05wZ; Wed, 18 Dec 2024 21:02:39 +0000 Received: from mail-pf1-x42a.google.com ([2607:f8b0:4864:20::42a]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tO1Bj-000000005gG-3RUA for linux-riscv@lists.infradead.org; Wed, 18 Dec 2024 21:02:37 +0000 Received: by mail-pf1-x42a.google.com with SMTP id d2e1a72fcca58-728d1a2f180so99784b3a.1 for ; Wed, 18 Dec 2024 13:02:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1734555754; x=1735160554; darn=lists.infradead.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=VEvOuS9GjCc8R1kkciZzUfnJPop9QAlnrlUsyAlmMgg=; b=wod5xUZuPhtXisjvaJfu/LmKwHqKjj3rVoc0KzR5qpMrbhpe1966kIAgfWdmDfc/4R x+uNuP92/3nBPt4sgQLkVKd/zWp9AVnVcuKIVdpwHJl30qgt/hLCswCrqKFGZ3mfkT/I 0Uo9nUojcYKI6Px8Xd1Gms1fHvLNFzNZ6euE8dyFr5OpLUcngWRNk31yrPHh3CNwNNaJ cCWN2XkFU8iHVymuITTEnUlUifVECT7rAgv1UTRYVfMQdOV8ari2qzMyFuBCuDAuxAvG 8CYAe1SNE3XyXE37r+eBdBPvnplRxjK3pt2tIA/9/V6tUfOzjfkAQpMo+7bif6ZjVI+p ai7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734555754; x=1735160554; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=VEvOuS9GjCc8R1kkciZzUfnJPop9QAlnrlUsyAlmMgg=; b=C/wdjb0lqLBN/5rJR6322MXkSzj3xYgnapeQt23vz+g1H/AnGTzXBPd3lUpgtmJ1Q2 F2ku01392TwUyeiWlBSCL06xDLgDzVHu1/9vLp0X/S0p/PeWBlS1Ewhxr1gnIfOAXVpV DP2jjkCra4/hvataW4sdEToY3Ya9+ruw32aOgf83HczUT6iJIC/dnjWI+g9UXBcpIIB+ 3zH9hMLiNyelYXSPsQbUa23Qv+xAhj4i7ZtM8N0KKFBcgOzYez4+hXAoRsM2pwpYAjC6 aAEfDw7roKy841jtvAgODGsGQzKHOFrjysEHnV6hDReIK9gJbVjixDg0dzJtAcmJLyOP 9bcA== X-Forwarded-Encrypted: i=1; AJvYcCUVS9mWSwvn3HFKSrkTh2FyHVVQUDiRRmYOtmW3do2HuNpv/99dI5OHWK2D3lywOoEZEIXAsmuaZ+E6Yw==@lists.infradead.org X-Gm-Message-State: AOJu0YzSiC+XyufbEdGQl6FaJMnlvn9AtAX4YvyZMf0ZSynbQ24dAQUm 5sTpCEXLNkQLuomiOef+bQnb3hWFfjl07gvogsPIbmUSGeRUTapaJPiQQXwBj1Y= X-Gm-Gg: ASbGncvtIt9Q+T1kaKEGj6nifxkVC2TZC7FxaW+hBOxLvwVG+GobrHet/fNbSwzK4i6 Jogz9pGTagCofuZNLjAZUOfYMR5ERRXhxRDA/b7xAIb4Vb7TW0ugy2RUfNY2Zqxac1c6YdDe581 XlSxBMgDe5e7PWhI7XsLuBuVryCO1MktRgBBxUEdpB+kYqctjcxBC1zwCJVAdSDxnZ64nD2k0gX Rl8owGINvbIVLVz/B+fX4xrHz+Q8zRMZX793BBauqOrZ2s= X-Google-Smtp-Source: AGHT+IGGTepBnro/Yv+Td9aOesliGxiq1HfALi+NYhCuWSXz+YG9fqxb1BuJcfYw6mbiXYYJ+gAnug== X-Received: by 2002:a05:6a00:7428:b0:725:4a1b:38ec with SMTP id d2e1a72fcca58-72aa9a10440mr1146368b3a.3.1734555753073; Wed, 18 Dec 2024 13:02:33 -0800 (PST) Received: from ghost ([50.145.13.30]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-72918b77290sm8969134b3a.113.2024.12.18.13.02.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Dec 2024 13:02:32 -0800 (PST) Date: Wed, 18 Dec 2024 13:02:30 -0800 From: Charlie Jenkins To: Ian Rogers Cc: Arnaldo Carvalho de Melo , Peter Zijlstra , Ingo Molnar , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Adrian Hunter , Paul Walmsley , Palmer Dabbelt , Albert Ou , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org Subject: Re: [PATCH v2] tools: perf: tests: Fix code reading for riscv Message-ID: References: <20241217-perf_fix_riscv_obj_reading-v2-1-58f81b7b4c7d@rivosinc.com> 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-20241218_130235_850760_31106415 X-CRM114-Status: GOOD ( 34.99 ) 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 T24gV2VkLCBEZWMgMTgsIDIwMjQgYXQgMTE6MjM6NTFBTSAtMDgwMCwgSWFuIFJvZ2VycyB3cm90 ZToKPiBPbiBXZWQsIERlYyAxOCwgMjAyNCBhdCAxMDo0MeKAr0FNIEFybmFsZG8gQ2FydmFsaG8g ZGUgTWVsbwo+IDxhY21lQGtlcm5lbC5vcmc+IHdyb3RlOgo+ID4KPiA+IE9uIFR1ZSwgRGVjIDE3 LCAyMDI0IGF0IDA0OjMwOjE1UE0gLTA4MDAsIENoYXJsaWUgSmVua2lucyB3cm90ZToKPiA+ID4g T24gVHVlLCBEZWMgMTcsIDIwMjQgYXQgMDQ6MTg6MzJQTSAtMDgwMCwgSWFuIFJvZ2VycyB3cm90 ZToKPiA+ID4gPiBPbiBUdWUsIERlYyAxNywgMjAyNCBhdCAzOjUy4oCvUE0gQ2hhcmxpZSBKZW5r aW5zIDxjaGFybGllQHJpdm9zaW5jLmNvbT4gd3JvdGU6Cj4gPiA+ID4gPiBBZnRlciBiaW51dGls cyBjb21taXQgZTQzZDg3NiB3aGljaCB3YXMgZmlyc3QgaW5jbHVkZWQgaW4gYmludXRpbHMgMi40 MSwKPiA+ID4gPiA+IHJpc2N2IG5vIGxvbmdlciBzdXBwb3J0cyBkdW1waW5nIGluIHRoZSBtaWRk bGUgb2YgaW5zdHJ1Y3Rpb25zLiBJbmNyZWFzZQo+ID4gPiA+ID4gdGhlIG9iamR1bXAgd2luZG93 IGJ5IDItYnl0ZXMgdG8gZW5zdXJlIHRoYXQgYW55IGluc3RydWN0aW9uIHRoYXQgc2l0cwo+ID4g PiA+ID4gb24gdGhlIGJvdW5kYXJ5IG9mIHRoZSBzcGVjaWZpZWQgc3RvcC1hZGRyZXNzIGlzIG5v dCBjdXQgaW4gaGFsZi4KPiA+Cj4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBDaGFybGllIEplbmtp bnMgPGNoYXJsaWVAcml2b3NpbmMuY29tPgo+ID4KPiA+ID4gPiBSZXZpZXdlZC1ieTogSWFuIFJv Z2VycyA8aXJvZ2Vyc0Bnb29nbGUuY29tPgo+ID4KPiA+ID4gPiA+IEEgYmludXRpbHMgcGF0Y2gg aGFzIGJlZW4gc2VudCBhcyB3ZWxsIHRvIGZpeCB0aGlzIGluIG9iamR1bXAgWzFdLgo+ID4KPiA+ ID4gPiA+IExpbms6IGh0dHBzOi8vc291cmNld2FyZS5vcmcvcGlwZXJtYWlsL2JpbnV0aWxzLzIw MjQtRGVjZW1iZXIvMTM4MTM5Lmh0bWwgWzFdCj4gPgo+ID4gPiA+ID4gQ2hhbmdlcyBpbiB2MjoK PiA+ID4gPiA+IC0gRG8gb2JqZHVtcCB2ZXJzaW9uIGRldGVjdGlvbiBhdCBydW50aW1lIChJYW4p Cj4gPiA+ID4gPiAtIExpbmsgdG8gdjE6IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3IvMjAyNDEy MTYtcGVyZl9maXhfcmlzY3Zfb2JqX3JlYWRpbmctdjEtMC1iNzU5NjI2NjBhOWJAcml2b3NpbmMu Y29tCj4gPgo+ID4gPiA+ID4gLS0tIGEvdG9vbHMvcGVyZi90ZXN0cy9jb2RlLXJlYWRpbmcuYwo+ ID4gPiA+ID4gQEAgLTE4Myw5ICsyNDQsMzAgQEAgc3RhdGljIGludCByZWFkX3ZpYV9vYmpkdW1w KGNvbnN0IGNoYXIgKmZpbGVuYW1lLCB1NjQgYWRkciwgdm9pZCAqYnVmLAo+ID4gPiA+ID4gICAg ICAgICBjb25zdCBjaGFyICpmbXQ7Cj4gPiA+ID4gPiAgICAgICAgIEZJTEUgKmY7Cj4gPiA+ID4g PiAgICAgICAgIGludCByZXQ7Cj4gPiA+ID4gPiArICAgICAgIHU2NCBzdG9wX2FkZHJlc3MgPSBh ZGRyICsgbGVuOwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKyAgICAgICBpZiAoSVNfRU5BQkxFRChf X3Jpc2N2KSkgewo+ID4KPiA+ID4gPiBOb3Qgc3VyZSBpZiB0aGVyZSBpcyBhIGNvbnNpc3RlbmN5 IGlzc3VlIGhlcmUuIEVsc2V3aGVyZSB3ZSdyZSBqdXN0Cj4gPiA+ID4gdXNpbmcgaWZkZWYsIHN1 Y2ggYXM6Cj4gPiA+ID4gaHR0cHM6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5l bC9naXQvcGVyZi9wZXJmLXRvb2xzLW5leHQuZ2l0L3RyZWUvdG9vbHMvcGVyZi91dGlsL2luY2x1 ZGUvZHdhcmYtcmVncy5oP2g9cGVyZi10b29scy1uZXh0I242OQo+ID4KPiA+ID4gSSBkb24ndCBo YXZlIGFueSBzdHJvbmcgZmVlbGluZ3MgYWJvdXQgdGhhdC4gSSBjYW4gY2hhbmdlIGl0IHRvIGJl IGFuCj4gPiA+IGlmZGVmLiBPbiBvdGhlciBsaXN0cyBJIGhhdmUgYmVlbiB0b2xkIHRvIHVzZSBJ U19FTkFCTEVEIHdoZW5ldmVyCj4gPiA+IHBvc3NpYmxlLCBidXQgaXQncyBvbmx5IGEgc21hbGwg ZGlmZmVyZW5jZS4KPiA+Cj4gPiBDYW4ndCB3ZSBqdXN0IHVzZSB1bmFtZSBoZXJlPwo+ID4KPiA+ IFNvIHRoYXQgd2UgZG9uJ3QgdXNlIGtjb25maWcuaCBzaW5jZSBpdHMgbm90IHVzZWQgaW4gdG9v bHMvcGVyZi8gYW5kCj4gPiBtYWtlcyBpdCBsb29rcyBsaWtlIHBlcmYgaXMgaW4gbG9ja3N0ZXAg d2l0aCB0aGUga2VybmVsIHNvdXJjZSB0cmVlCj4gPiB2ZXJzaW9uIGl0IHdhcyBjb21waWxlZCBm cm9tPwo+ID4KPiA+ICQgZ2l0IGdyZXAga2NvbmZpZy5oIHRvb2xzL3BlcmYvCj4gPiAkCj4gPgo+ ID4gQlRXLCB3aGF0IHdvdWxkIGhhcHBlbiBpZiBJIGNvbGxlY3RlZCBhIHBlcmYuZGF0YSBmaWxl IG9uIHg4Nl82NCBhbmQKPiA+IHdvdWxkIHJlYWQgaXQgaW4gYSBSaXNjViBtYWNoaW5lIHdpdGgg c3VjaCBhIG9iamR1bXAgdmVyc2lvbj8gVGhlIHNhbWUKPiA+IHByb2JsZW0/Cj4gCj4gVGhpcyBj b2RlIGlzIGluIHRlc3RzIGhlbmNlIHRoaW5raW5nIHRoYXQgYSBzZXBhcmF0ZSBmaXggaXMgbmVl ZGVkIGZvcgo+IHRoYXQgcHJvYmxlbS4gSG9wZWZ1bGx5IHRoZSB1c2Ugb2YgZWxmIG1hY2hpbmUv ZmxhZ3MgdGFja2xlcyBpdDoKPiBodHRwczovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgv a2VybmVsL2dpdC9wZXJmL3BlcmYtdG9vbHMtbmV4dC5naXQvdHJlZS90b29scy9wZXJmL3V0aWwv aW5jbHVkZS9kd2FyZi1yZWdzLmg/aD1wZXJmLXRvb2xzLW5leHQjbjI1Cj4gV2UgYXJlIGdldHRp bmcgc29tZXdoYXQgZGlzYXNzZW1ibGVyIGhlYXZ5LiBXZSBoYXZlIGxsdm0gYXMgYSBsaWJyYXJ5 LAo+IGNhcHN0b25lIGFzIGEgbGlicmFyeSwgYmludXRpbHMgb2JqZHVtcCBhbmQgbGx2bSBvYmpk dW1wLiBHaXZlbiB0aGUKPiBwYWluIHdpdGggcGFyc2luZyB0ZXh0LCBjb3VsZCB3ZSBsb3NlIHRo ZSBvYmpkdW1wcz8gU2ltaWxhcmx5IGZvcgo+IGFkZHIybGluZT8KCkFyZSB5b3Ugc3VnZ2VzdGlu ZyB0byByZW1vdmUgdGhpcyB0ZXN0IGNhc2UgZW50aXJlbHkgdG8gZ2V0IHJpZCBvZiB0aGUKb2Jq ZHVtcCBkZXBlbmRlbmN5PyBUaGUgZ29hbCBvZiB0aGlzIHRlc3QgY2FzZSBzZWVtcyB0byBiZSB0 byBjaGVjawpvYmpkdW1wIGFuZCBwZXJmIHJldHVybiB0aGUgc2FtZSBkYXRhLCBzbyBpdCBkb2Vz bid0IHNlZW0gbGlrZSB0aGVyZQp3b3VsZCBiZSBhbiBhbHRlcm5hdGl2ZSB0byB1c2luZyBvYmpk dW1wLgoKLSBDaGFybGllCgo+IAo+IFRoYW5rcywKPiBJYW4KCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LXJpc2N2IG1haWxpbmcgbGlzdApsaW51 eC1yaXNjdkBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21h aWxtYW4vbGlzdGluZm8vbGludXgtcmlzY3YK