From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 01C451A0706; Wed, 8 Jan 2025 22:39:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736375995; cv=none; b=LPIUyTwt805/TjWiRZY0btDY0d4SpdsfCZinIOUmC9qqvToosICJZomFBsQ4w3z7EU4p/cHeP9pjD54ARrvKiht8QpbA15x/mV7qEuV//yKCkpDaLqKEJ+5GUVUvIYvZdjasymwkrVG+6mww9w/FOqaLJwtDAqv892xhTRx2eVk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736375995; c=relaxed/simple; bh=aBBMJt3YnEOGFN+NC1GBIijIU/2oGQEkFVJlezEYi8o=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=gKPsmnEwYtf6vMF8wf7UcmJ9DGA0cSZFy229ouvMmADNV7nrWh9NiRbmeMJsVOpzILSb6gk14IFNhuVpZqwhx2P47Gqt6nxdrrCG4le9sWw9qK7td4LElcw61xmk7y/3cSZHLN2SbklxhMB5iHuO8caz8laDq8Wue0UuXj12d3k= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=n/mZSHn5; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="n/mZSHn5" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 518F2C4CEE1; Wed, 8 Jan 2025 22:39:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1736375994; bh=aBBMJt3YnEOGFN+NC1GBIijIU/2oGQEkFVJlezEYi8o=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=n/mZSHn5KPJvphh3IbFUFXaOK+YsJHIj11RQFS6EltlqcN2L4/AU8P8QQBxtmvEHw xyWJ2Et4X/wp9bDq9bOc9SM5v3m/vjqOleZWnfW7VYyfAMZxWd7Ud4XolcB5RWX/8n vTY5kVet5gsG0aLzqTDd0NvEDVhCGRwL9Ci1gUNZPeNUiRfcPPS6YvsOtYfKAqXP9v fnRyN1RuNrcyOulTxuMWG5FdOk7ZdbI17eiY2KSnw/i5unp57PblOwd/+7uNlD3suD nNvDeZsB6ZuQVr5PiYVjks8VpN2vIC07ztEHFvwvcRYqlUA9kHsBFWSHJRYSv3BCE6 Ufbqh7CgKXE+A== Date: Wed, 8 Jan 2025 19:39:51 -0300 From: Arnaldo Carvalho de Melo To: Charlie Jenkins Cc: Namhyung Kim , Peter Zijlstra , Ingo Molnar , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Paul Walmsley , Palmer Dabbelt , =?iso-8859-1?Q?Micka=EBl_Sala=FCn?= , =?iso-8859-1?Q?G=FCnther?= Noack , Christian Brauner , Guo Ren , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Jonathan Corbet , Arnd Bergmann , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-riscv@lists.infradead.org, linux-security-module@vger.kernel.org, bpf@vger.kernel.org, linux-csky@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org Subject: Re: [PATCH v5 00/16] perf tools: Use generic syscall scripts for all archs Message-ID: References: <20250107-perf_syscalltbl-v5-0-935de46d3175@rivosinc.com> Precedence: bulk X-Mailing-List: bpf@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, Jan 08, 2025 at 09:57:44AM -0800, Namhyung Kim wrote: > Hello, > > On Tue, Jan 07, 2025 at 06:07:48PM -0800, Charlie Jenkins wrote: > > Standardize the generation of syscall headers around syscall tables. > > Previously each architecture independently selected how syscall headers > > would be generated, or would not define a way and fallback onto > > libaudit. Convert all architectures to use a standard syscall header > > generation script and allow each architecture to override the syscall > > table to use if they do not use the generic table. > > > > As a result of these changes, no architecture will require libaudit, and > > so the fallback case of using libaudit is removed by this series. > > > > Testing: > > > > I have tested that the syscall mappings of id to name generation works > > as expected for every architecture, but I have only validated that perf > > trace compiles and runs as expected on riscv, arm64, and x86_64. > > > > Signed-off-by: Charlie Jenkins > > Reviewed-by: Ian Rogers > > Tested-by: Ian Rogers > > Acked-by: Namhyung Kim So, somehow the first patch of this series didn't reach my inbox, b4 found it, and in it perf now does; tools/perf/scripts/Makefile.syscalls include $(srctree)/scripts/Kbuild.include I.e. it uses a file that is outside tools/ so normal devel in the kernel community may end up breaking tools/ living code, something we decided not to have. I noticed this while doing a: "make -C tools/perf build-test", the first test creates a perf tarball and then tries to build it after uncompressing it somewhere out of the checked out kernel source tree: ⬢ [acme@toolbox perf-tools-next]$ make help | grep perf perf-tar-src-pkg - Build the perf source tarball with no compression perf-targz-src-pkg - Build the perf source tarball with gzip compression perf-tarbz2-src-pkg - Build the perf source tarball with bz2 compression perf-tarxz-src-pkg - Build the perf source tarball with xz compression perf-tarzst-src-pkg - Build the perf source tarball with zst compression ⬢ [acme@toolbox perf-tools-next]$ make perf-tarxz-src-pkg UPD .tmp_HEAD COPY .tmp_perf/HEAD GEN .tmp_perf/PERF-VERSION-FILE PERF_VERSION = 6.13.rc2.g48d3eefaa683 ARCHIVE perf-6.13.0-rc2.tar.xz ⬢ [acme@toolbox perf-tools-next]$ mv perf-6.13.0-rc2.tar.xz ~ ⬢ [acme@toolbox perf-tools-next]$ cd ~ ⬢ [acme@toolbox ~]$ tar xvf perf-6.13.0-rc2.tar.xz | tail -5 perf-6.13.0-rc2/tools/scripts/Makefile.include perf-6.13.0-rc2/tools/scripts/syscall.tbl perf-6.13.0-rc2/tools/scripts/utilities.mak perf-6.13.0-rc2/HEAD perf-6.13.0-rc2/PERF-VERSION-FILE ⬢ [acme@toolbox ~]$ cd perf-6.13.0-rc2/ ⬢ [acme@toolbox perf-6.13.0-rc2]$ make -C tools/perf make: Entering directory '/home/acme/perf-6.13.0-rc2/tools/perf' BUILD: Doing 'make -j28' parallel build Warning: Skipped check-headers due to missing ../../include Auto-detecting system features: ... libdw: [ on ] ... glibc: [ on ] ... libbfd: [ on ] ... libbfd-buildid: [ on ] ... libelf: [ on ] ... libnuma: [ on ] ... numa_num_possible_cpus: [ on ] ... libperl: [ on ] ... libpython: [ on ] ... libcrypto: [ on ] ... libunwind: [ on ] ... libcapstone: [ on ] ... llvm-perf: [ on ] ... zlib: [ on ] ... lzma: [ on ] ... get_cpuid: [ on ] ... bpf: [ on ] ... libaio: [ on ] ... libzstd: [ on ] /home/acme/perf-6.13.0-rc2/tools/perf/scripts/Makefile.syscalls:18: /home/acme/perf-6.13.0-rc2/scripts/Kbuild.include: No such file or directory make[2]: *** No rule to make target '/home/acme/perf-6.13.0-rc2/scripts/Kbuild.include'. Stop. make[1]: *** [Makefile.perf:286: sub-make] Error 2 make: *** [Makefile:76: all] Error 2 make: Leaving directory '/home/acme/perf-6.13.0-rc2/tools/perf' ⬢ [acme@toolbox perf-6.13.0-rc2]$ This would probably (it does, just tested, but read on) make it work: ⬢ [acme@toolbox perf-tools-next]$ git diff diff --git a/tools/perf/MANIFEST b/tools/perf/MANIFEST index dc42de1785cee715..83ef5d1365880929 100644 --- a/tools/perf/MANIFEST +++ b/tools/perf/MANIFEST @@ -22,6 +22,7 @@ tools/lib/str_error_r.c tools/lib/vsprintf.c tools/lib/zalloc.c scripts/bpf_doc.py +scripts/Kbuild.include tools/bpf/bpftool kernel/bpf/disasm.c kernel/bpf/disasm.h ⬢ [acme@toolbox perf-tools-next]$ As now we would find it, but then it references some other part of the kernel's Kbuild system: ⬢ [acme@toolbox perf-tools-next]$ grep -w srctree scripts/Kbuild.include build := -f $(srctree)/scripts/Makefile.build obj clean := -f $(srctree)/scripts/Makefile.clean obj ⬢ [acme@toolbox perf-tools-next]$ And perf has: ⬢ [acme@toolbox perf-tools-next]$ find tools/ -name Makefile.build tools/build/Makefile.build ⬢ [acme@toolbox perf-tools-next]$ And we also have: ⬢ [acme@toolbox perf-tools-next]$ ls -la tools/scripts/ total 40 drwxr-xr-x. 1 acme acme 106 Jan 8 19:13 . drwxr-xr-x. 1 acme acme 514 Jan 8 11:39 .. -rw-r--r--. 1 acme acme 1224 Jan 8 11:41 Makefile.arch -rw-r--r--. 1 acme acme 6205 Dec 20 21:48 Makefile.include -rw-r--r--. 1 acme acme 17401 Jan 8 19:13 syscall.tbl -rw-r--r--. 1 acme acme 6186 Dec 20 21:48 utilities.mak ⬢ [acme@toolbox perf-tools-next]$ And: ⬢ [acme@toolbox perf-tools-next]$ grep -w build tools/build/Makefile.include build := -f $(srctree)/tools/build/Makefile.build dir=. obj $(SILENT_MAKE) -C $(srctree)/tools/build CFLAGS= LDFLAGS= $(OUTPUT)fixdep $(Q)$(MAKE) -C $(srctree)/tools/build clean ⬢ [acme@toolbox perf-tools-next]$ That is also in: ⬢ [acme@toolbox perf-tools-next]$ grep -w build scripts/Kbuild.include # Shorthand for $(Q)$(MAKE) -f scripts/Makefile.build obj= # $(Q)$(MAKE) $(build)=dir build := -f $(srctree)/scripts/Makefile.build obj # the interrupted recipe. So, you can safely stop the build by Ctrl-C (Make # (1) PHONY targets are always build # (2) No target, so we better build it ⬢ [acme@toolbox perf-tools-next]$ So it seems we need to look at what we're using from the kernel's scripts/Makefile.build to have it in a tools/build/ file. Its late here and I'll have to stop at this point, please take a look to see if this can be easily resolved so that we can merge your series, I very much like to say goodbye to one more tools/perf library dependency :-) Best regards, - Arnaldo 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 EFC0FE77188 for ; Wed, 8 Jan 2025 22:41:18 +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=/Mhps0do6vNUVDQnAQ5UYZK8hFVk/75cgqrbe9oazac=; b=nvA88yhLkywYsm 9D8cYyNrFGITFuuTnj55RdWMKsLab8286nsOJVda1sPG/4kvHtN93Rl6+8CA4QXRL6pAmLhATdOjP C7HEySveT3sTZcCRcKY4Np/m7C8sgx5wsHwodqVxywGbOvb1OpvUdDdVNeKR3s1xDhw7e5ZFJJMpL VResonU82tublIt0JGhLrO6HTePLoRF5Z/zAlgbYxNFow3fP6f5sggjoKBgqWakVdrPKR7aVEvVcb lDMIgIcJ+s/T0+GO7PNQkxTKlF9SXGwU1tRmJlMlCyLWvS4w8fPlPUBoNnyOuNWHM2FQxCUBsrfVc NZol8fLGhIY7Ct0BxbaQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tVejg-0000000A3NH-1gjU; Wed, 08 Jan 2025 22:41:12 +0000 Received: from dfw.source.kernel.org ([139.178.84.217]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tVeiR-0000000A3Dc-3xXw; Wed, 08 Jan 2025 22:39:57 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 20DE35C04F7; Wed, 8 Jan 2025 22:39:14 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 518F2C4CEE1; Wed, 8 Jan 2025 22:39:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1736375994; bh=aBBMJt3YnEOGFN+NC1GBIijIU/2oGQEkFVJlezEYi8o=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=n/mZSHn5KPJvphh3IbFUFXaOK+YsJHIj11RQFS6EltlqcN2L4/AU8P8QQBxtmvEHw xyWJ2Et4X/wp9bDq9bOc9SM5v3m/vjqOleZWnfW7VYyfAMZxWd7Ud4XolcB5RWX/8n vTY5kVet5gsG0aLzqTDd0NvEDVhCGRwL9Ci1gUNZPeNUiRfcPPS6YvsOtYfKAqXP9v fnRyN1RuNrcyOulTxuMWG5FdOk7ZdbI17eiY2KSnw/i5unp57PblOwd/+7uNlD3suD nNvDeZsB6ZuQVr5PiYVjks8VpN2vIC07ztEHFvwvcRYqlUA9kHsBFWSHJRYSv3BCE6 Ufbqh7CgKXE+A== Date: Wed, 8 Jan 2025 19:39:51 -0300 From: Arnaldo Carvalho de Melo To: Charlie Jenkins Cc: Namhyung Kim , Peter Zijlstra , Ingo Molnar , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Paul Walmsley , Palmer Dabbelt , =?iso-8859-1?Q?Micka=EBl_Sala=FCn?= , =?iso-8859-1?Q?G=FCnther?= Noack , Christian Brauner , Guo Ren , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Jonathan Corbet , Arnd Bergmann , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-riscv@lists.infradead.org, linux-security-module@vger.kernel.org, bpf@vger.kernel.org, linux-csky@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org Subject: Re: [PATCH v5 00/16] perf tools: Use generic syscall scripts for all archs Message-ID: References: <20250107-perf_syscalltbl-v5-0-935de46d3175@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-20250108_143956_650574_E00FB021 X-CRM114-Status: GOOD ( 27.78 ) 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 T24gV2VkLCBKYW4gMDgsIDIwMjUgYXQgMDk6NTc6NDRBTSAtMDgwMCwgTmFtaHl1bmcgS2ltIHdy b3RlOgo+IEhlbGxvLAo+IAo+IE9uIFR1ZSwgSmFuIDA3LCAyMDI1IGF0IDA2OjA3OjQ4UE0gLTA4 MDAsIENoYXJsaWUgSmVua2lucyB3cm90ZToKPiA+IFN0YW5kYXJkaXplIHRoZSBnZW5lcmF0aW9u IG9mIHN5c2NhbGwgaGVhZGVycyBhcm91bmQgc3lzY2FsbCB0YWJsZXMuCj4gPiBQcmV2aW91c2x5 IGVhY2ggYXJjaGl0ZWN0dXJlIGluZGVwZW5kZW50bHkgc2VsZWN0ZWQgaG93IHN5c2NhbGwgaGVh ZGVycwo+ID4gd291bGQgYmUgZ2VuZXJhdGVkLCBvciB3b3VsZCBub3QgZGVmaW5lIGEgd2F5IGFu ZCBmYWxsYmFjayBvbnRvCj4gPiBsaWJhdWRpdC4gQ29udmVydCBhbGwgYXJjaGl0ZWN0dXJlcyB0 byB1c2UgYSBzdGFuZGFyZCBzeXNjYWxsIGhlYWRlcgo+ID4gZ2VuZXJhdGlvbiBzY3JpcHQgYW5k IGFsbG93IGVhY2ggYXJjaGl0ZWN0dXJlIHRvIG92ZXJyaWRlIHRoZSBzeXNjYWxsCj4gPiB0YWJs ZSB0byB1c2UgaWYgdGhleSBkbyBub3QgdXNlIHRoZSBnZW5lcmljIHRhYmxlLgo+ID4gCj4gPiBB cyBhIHJlc3VsdCBvZiB0aGVzZSBjaGFuZ2VzLCBubyBhcmNoaXRlY3R1cmUgd2lsbCByZXF1aXJl IGxpYmF1ZGl0LCBhbmQKPiA+IHNvIHRoZSBmYWxsYmFjayBjYXNlIG9mIHVzaW5nIGxpYmF1ZGl0 IGlzIHJlbW92ZWQgYnkgdGhpcyBzZXJpZXMuCj4gPiAKPiA+IFRlc3Rpbmc6Cj4gPiAKPiA+IEkg aGF2ZSB0ZXN0ZWQgdGhhdCB0aGUgc3lzY2FsbCBtYXBwaW5ncyBvZiBpZCB0byBuYW1lIGdlbmVy YXRpb24gd29ya3MKPiA+IGFzIGV4cGVjdGVkIGZvciBldmVyeSBhcmNoaXRlY3R1cmUsIGJ1dCBJ IGhhdmUgb25seSB2YWxpZGF0ZWQgdGhhdCBwZXJmCj4gPiB0cmFjZSBjb21waWxlcyBhbmQgcnVu cyBhcyBleHBlY3RlZCBvbiByaXNjdiwgYXJtNjQsIGFuZCB4ODZfNjQuCj4gPiAKPiA+IFNpZ25l ZC1vZmYtYnk6IENoYXJsaWUgSmVua2lucyA8Y2hhcmxpZUByaXZvc2luYy5jb20+Cj4gPiBSZXZp ZXdlZC1ieTogSWFuIFJvZ2VycyA8aXJvZ2Vyc0Bnb29nbGUuY29tPgo+ID4gVGVzdGVkLWJ5OiBJ YW4gUm9nZXJzIDxpcm9nZXJzQGdvb2dsZS5jb20+Cj4gCj4gQWNrZWQtYnk6IE5hbWh5dW5nIEtp bSA8bmFtaHl1bmdAa2VybmVsLm9yZz4KClNvLCBzb21laG93IHRoZSBmaXJzdCBwYXRjaCBvZiB0 aGlzIHNlcmllcyBkaWRuJ3QgcmVhY2ggbXkgaW5ib3gsIGI0CmZvdW5kIGl0LCBhbmQgaW4gaXQg cGVyZiBub3cgZG9lczsKCnRvb2xzL3BlcmYvc2NyaXB0cy9NYWtlZmlsZS5zeXNjYWxscwoKICBp bmNsdWRlICQoc3JjdHJlZSkvc2NyaXB0cy9LYnVpbGQuaW5jbHVkZQoKSS5lLiBpdCB1c2VzIGEg ZmlsZSB0aGF0IGlzIG91dHNpZGUgdG9vbHMvIHNvIG5vcm1hbCBkZXZlbCBpbiB0aGUga2VybmVs CmNvbW11bml0eSBtYXkgZW5kIHVwIGJyZWFraW5nIHRvb2xzLyBsaXZpbmcgY29kZSwgc29tZXRo aW5nIHdlIGRlY2lkZWQKbm90IHRvIGhhdmUuCgpJIG5vdGljZWQgdGhpcyB3aGlsZSBkb2luZyBh OiAibWFrZSAtQyB0b29scy9wZXJmIGJ1aWxkLXRlc3QiLCB0aGUgZmlyc3QKdGVzdCBjcmVhdGVz IGEgcGVyZiB0YXJiYWxsIGFuZCB0aGVuIHRyaWVzIHRvIGJ1aWxkIGl0IGFmdGVyCnVuY29tcHJl c3NpbmcgaXQgc29tZXdoZXJlIG91dCBvZiB0aGUgY2hlY2tlZCBvdXQga2VybmVsIHNvdXJjZSB0 cmVlOgoK4qyiIFthY21lQHRvb2xib3ggcGVyZi10b29scy1uZXh0XSQgbWFrZSBoZWxwIHwgZ3Jl cCBwZXJmCiAgcGVyZi10YXItc3JjLXBrZyAgICAtIEJ1aWxkIHRoZSBwZXJmIHNvdXJjZSB0YXJi YWxsIHdpdGggbm8gY29tcHJlc3Npb24KICBwZXJmLXRhcmd6LXNyYy1wa2cgIC0gQnVpbGQgdGhl IHBlcmYgc291cmNlIHRhcmJhbGwgd2l0aCBnemlwIGNvbXByZXNzaW9uCiAgcGVyZi10YXJiejIt c3JjLXBrZyAtIEJ1aWxkIHRoZSBwZXJmIHNvdXJjZSB0YXJiYWxsIHdpdGggYnoyIGNvbXByZXNz aW9uCiAgcGVyZi10YXJ4ei1zcmMtcGtnICAtIEJ1aWxkIHRoZSBwZXJmIHNvdXJjZSB0YXJiYWxs IHdpdGggeHogY29tcHJlc3Npb24KICBwZXJmLXRhcnpzdC1zcmMtcGtnIC0gQnVpbGQgdGhlIHBl cmYgc291cmNlIHRhcmJhbGwgd2l0aCB6c3QgY29tcHJlc3Npb24K4qyiIFthY21lQHRvb2xib3gg cGVyZi10b29scy1uZXh0XSQgbWFrZSBwZXJmLXRhcnh6LXNyYy1wa2cKICBVUEQgICAgIC50bXBf SEVBRAogIENPUFkgICAgLnRtcF9wZXJmL0hFQUQKICBHRU4gICAgIC50bXBfcGVyZi9QRVJGLVZF UlNJT04tRklMRQogIFBFUkZfVkVSU0lPTiA9IDYuMTMucmMyLmc0OGQzZWVmYWE2ODMKICBBUkNI SVZFIHBlcmYtNi4xMy4wLXJjMi50YXIueHoK4qyiIFthY21lQHRvb2xib3ggcGVyZi10b29scy1u ZXh0XSQgbXYgcGVyZi02LjEzLjAtcmMyLnRhci54eiB+CuKsoiBbYWNtZUB0b29sYm94IHBlcmYt dG9vbHMtbmV4dF0kIGNkIH4K4qyiIFthY21lQHRvb2xib3ggfl0kIHRhciB4dmYgcGVyZi02LjEz LjAtcmMyLnRhci54eiB8IHRhaWwgLTUKcGVyZi02LjEzLjAtcmMyL3Rvb2xzL3NjcmlwdHMvTWFr ZWZpbGUuaW5jbHVkZQpwZXJmLTYuMTMuMC1yYzIvdG9vbHMvc2NyaXB0cy9zeXNjYWxsLnRibApw ZXJmLTYuMTMuMC1yYzIvdG9vbHMvc2NyaXB0cy91dGlsaXRpZXMubWFrCnBlcmYtNi4xMy4wLXJj Mi9IRUFECnBlcmYtNi4xMy4wLXJjMi9QRVJGLVZFUlNJT04tRklMRQrirKIgW2FjbWVAdG9vbGJv eCB+XSQgY2QgcGVyZi02LjEzLjAtcmMyLwrirKIgW2FjbWVAdG9vbGJveCBwZXJmLTYuMTMuMC1y YzJdJCBtYWtlIC1DIHRvb2xzL3BlcmYKbWFrZTogRW50ZXJpbmcgZGlyZWN0b3J5ICcvaG9tZS9h Y21lL3BlcmYtNi4xMy4wLXJjMi90b29scy9wZXJmJwogIEJVSUxEOiAgIERvaW5nICdtYWtlIC1q MjgnIHBhcmFsbGVsIGJ1aWxkCldhcm5pbmc6IFNraXBwZWQgY2hlY2staGVhZGVycyBkdWUgdG8g bWlzc2luZyAuLi8uLi9pbmNsdWRlCgpBdXRvLWRldGVjdGluZyBzeXN0ZW0gZmVhdHVyZXM6Ci4u LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliZHc6IFsgb24gIF0KLi4uICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbGliYzogWyBvbiAgXQouLi4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliYmZkOiBbIG9uICBdCi4uLiAgICAgICAgICAg ICAgICAgICAgICAgICAgbGliYmZkLWJ1aWxkaWQ6IFsgb24gIF0KLi4uICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxpYmVsZjogWyBvbiAgXQouLi4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsaWJudW1hOiBbIG9uICBdCi4uLiAgICAgICAgICAgICAgICAgIG51bWFf bnVtX3Bvc3NpYmxlX2NwdXM6IFsgb24gIF0KLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGlicGVybDogWyBvbiAgXQouLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGlicHl0aG9uOiBbIG9uICBdCi4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJj cnlwdG86IFsgb24gIF0KLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnVud2lu ZDogWyBvbiAgXQouLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYmNhcHN0b25lOiBb IG9uICBdCi4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtLXBlcmY6IFsgb24g IF0KLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgemxpYjogWyBvbiAgXQou Li4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsem1hOiBbIG9uICBdCi4uLiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRfY3B1aWQ6IFsgb24gIF0KLi4uICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJwZjogWyBvbiAgXQouLi4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGliYWlvOiBbIG9uICBdCi4uLiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxpYnpzdGQ6IFsgb24gIF0KCi9ob21lL2FjbWUvcGVyZi02LjEz LjAtcmMyL3Rvb2xzL3BlcmYvc2NyaXB0cy9NYWtlZmlsZS5zeXNjYWxsczoxODogL2hvbWUvYWNt ZS9wZXJmLTYuMTMuMC1yYzIvc2NyaXB0cy9LYnVpbGQuaW5jbHVkZTogTm8gc3VjaCBmaWxlIG9y IGRpcmVjdG9yeQptYWtlWzJdOiAqKiogTm8gcnVsZSB0byBtYWtlIHRhcmdldCAnL2hvbWUvYWNt ZS9wZXJmLTYuMTMuMC1yYzIvc2NyaXB0cy9LYnVpbGQuaW5jbHVkZScuICBTdG9wLgptYWtlWzFd OiAqKiogW01ha2VmaWxlLnBlcmY6Mjg2OiBzdWItbWFrZV0gRXJyb3IgMgptYWtlOiAqKiogW01h a2VmaWxlOjc2OiBhbGxdIEVycm9yIDIKbWFrZTogTGVhdmluZyBkaXJlY3RvcnkgJy9ob21lL2Fj bWUvcGVyZi02LjEzLjAtcmMyL3Rvb2xzL3BlcmYnCuKsoiBbYWNtZUB0b29sYm94IHBlcmYtNi4x My4wLXJjMl0kIAoKVGhpcyB3b3VsZCBwcm9iYWJseSAoaXQgZG9lcywganVzdCB0ZXN0ZWQsIGJ1 dCByZWFkIG9uKSBtYWtlIGl0IHdvcms6CgrirKIgW2FjbWVAdG9vbGJveCBwZXJmLXRvb2xzLW5l eHRdJCBnaXQgZGlmZgpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9NQU5JRkVTVCBiL3Rvb2xzL3Bl cmYvTUFOSUZFU1QKaW5kZXggZGM0MmRlMTc4NWNlZTcxNS4uODNlZjVkMTM2NTg4MDkyOSAxMDA2 NDQKLS0tIGEvdG9vbHMvcGVyZi9NQU5JRkVTVAorKysgYi90b29scy9wZXJmL01BTklGRVNUCkBA IC0yMiw2ICsyMiw3IEBAIHRvb2xzL2xpYi9zdHJfZXJyb3Jfci5jCiB0b29scy9saWIvdnNwcmlu dGYuYwogdG9vbHMvbGliL3phbGxvYy5jCiBzY3JpcHRzL2JwZl9kb2MucHkKK3NjcmlwdHMvS2J1 aWxkLmluY2x1ZGUKIHRvb2xzL2JwZi9icGZ0b29sCiBrZXJuZWwvYnBmL2Rpc2FzbS5jCiBrZXJu ZWwvYnBmL2Rpc2FzbS5oCuKsoiBbYWNtZUB0b29sYm94IHBlcmYtdG9vbHMtbmV4dF0kCgpBcyBu b3cgd2Ugd291bGQgZmluZCBpdCwgYnV0IHRoZW4gaXQgcmVmZXJlbmNlcyBzb21lIG90aGVyIHBh cnQgb2YgdGhlCmtlcm5lbCdzIEtidWlsZCBzeXN0ZW06CgrirKIgW2FjbWVAdG9vbGJveCBwZXJm LXRvb2xzLW5leHRdJCBncmVwIC13IHNyY3RyZWUgc2NyaXB0cy9LYnVpbGQuaW5jbHVkZQpidWls ZCA6PSAtZiAkKHNyY3RyZWUpL3NjcmlwdHMvTWFrZWZpbGUuYnVpbGQgb2JqCmNsZWFuIDo9IC1m ICQoc3JjdHJlZSkvc2NyaXB0cy9NYWtlZmlsZS5jbGVhbiBvYmoK4qyiIFthY21lQHRvb2xib3gg cGVyZi10b29scy1uZXh0XSQKCkFuZCBwZXJmIGhhczoKCuKsoiBbYWNtZUB0b29sYm94IHBlcmYt dG9vbHMtbmV4dF0kIGZpbmQgdG9vbHMvIC1uYW1lIE1ha2VmaWxlLmJ1aWxkCnRvb2xzL2J1aWxk L01ha2VmaWxlLmJ1aWxkCuKsoiBbYWNtZUB0b29sYm94IHBlcmYtdG9vbHMtbmV4dF0kCgpBbmQg d2UgYWxzbyBoYXZlOgoK4qyiIFthY21lQHRvb2xib3ggcGVyZi10b29scy1uZXh0XSQgbHMgLWxh IHRvb2xzL3NjcmlwdHMvCnRvdGFsIDQwCmRyd3hyLXhyLXguIDEgYWNtZSBhY21lICAgMTA2IEph biAgOCAxOToxMyAuCmRyd3hyLXhyLXguIDEgYWNtZSBhY21lICAgNTE0IEphbiAgOCAxMTozOSAu Lgotcnctci0tci0tLiAxIGFjbWUgYWNtZSAgMTIyNCBKYW4gIDggMTE6NDEgTWFrZWZpbGUuYXJj aAotcnctci0tci0tLiAxIGFjbWUgYWNtZSAgNjIwNSBEZWMgMjAgMjE6NDggTWFrZWZpbGUuaW5j bHVkZQotcnctci0tci0tLiAxIGFjbWUgYWNtZSAxNzQwMSBKYW4gIDggMTk6MTMgc3lzY2FsbC50 YmwKLXJ3LXItLXItLS4gMSBhY21lIGFjbWUgIDYxODYgRGVjIDIwIDIxOjQ4IHV0aWxpdGllcy5t YWsK4qyiIFthY21lQHRvb2xib3ggcGVyZi10b29scy1uZXh0XSQKCkFuZDoKCuKsoiBbYWNtZUB0 b29sYm94IHBlcmYtdG9vbHMtbmV4dF0kIGdyZXAgLXcgYnVpbGQgdG9vbHMvYnVpbGQvTWFrZWZp bGUuaW5jbHVkZSAKYnVpbGQgOj0gLWYgJChzcmN0cmVlKS90b29scy9idWlsZC9NYWtlZmlsZS5i dWlsZCBkaXI9LiBvYmoKCSQoU0lMRU5UX01BS0UpIC1DICQoc3JjdHJlZSkvdG9vbHMvYnVpbGQg Q0ZMQUdTPSBMREZMQUdTPSAkKE9VVFBVVClmaXhkZXAKCSQoUSkkKE1BS0UpIC1DICQoc3JjdHJl ZSkvdG9vbHMvYnVpbGQgY2xlYW4K4qyiIFthY21lQHRvb2xib3ggcGVyZi10b29scy1uZXh0XSQK ClRoYXQgaXMgYWxzbyBpbjoKCuKsoiBbYWNtZUB0b29sYm94IHBlcmYtdG9vbHMtbmV4dF0kIGdy ZXAgLXcgYnVpbGQgc2NyaXB0cy9LYnVpbGQuaW5jbHVkZSAKIyBTaG9ydGhhbmQgZm9yICQoUSkk KE1BS0UpIC1mIHNjcmlwdHMvTWFrZWZpbGUuYnVpbGQgb2JqPQojICQoUSkkKE1BS0UpICQoYnVp bGQpPWRpcgpidWlsZCA6PSAtZiAkKHNyY3RyZWUpL3NjcmlwdHMvTWFrZWZpbGUuYnVpbGQgb2Jq CiMgdGhlIGludGVycnVwdGVkIHJlY2lwZS4gU28sIHlvdSBjYW4gc2FmZWx5IHN0b3AgdGhlIGJ1 aWxkIGJ5IEN0cmwtQyAoTWFrZQojICgxKSBQSE9OWSB0YXJnZXRzIGFyZSBhbHdheXMgYnVpbGQK IyAoMikgTm8gdGFyZ2V0LCBzbyB3ZSBiZXR0ZXIgYnVpbGQgaXQK4qyiIFthY21lQHRvb2xib3gg cGVyZi10b29scy1uZXh0XSQKClNvIGl0IHNlZW1zIHdlIG5lZWQgdG8gbG9vayBhdCB3aGF0IHdl J3JlIHVzaW5nIGZyb20gdGhlIGtlcm5lbCdzCnNjcmlwdHMvTWFrZWZpbGUuYnVpbGQgdG8gaGF2 ZSBpdCBpbiBhIHRvb2xzL2J1aWxkLyBmaWxlLgoKSXRzIGxhdGUgaGVyZSBhbmQgSSdsbCBoYXZl IHRvIHN0b3AgYXQgdGhpcyBwb2ludCwgcGxlYXNlIHRha2UgYSBsb29rIHRvCnNlZSBpZiB0aGlz IGNhbiBiZSBlYXNpbHkgcmVzb2x2ZWQgc28gdGhhdCB3ZSBjYW4gbWVyZ2UgeW91ciBzZXJpZXMs IEkKdmVyeSBtdWNoIGxpa2UgdG8gc2F5IGdvb2RieWUgdG8gb25lIG1vcmUgdG9vbHMvcGVyZiBs aWJyYXJ5IGRlcGVuZGVuY3kKOi0pCgpCZXN0IHJlZ2FyZHMsCgotIEFybmFsZG8KCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LXJpc2N2IG1haWxp bmcgbGlzdApsaW51eC1yaXNjdkBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZy YWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcmlzY3YK