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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1FD87C00140 for ; Fri, 12 Aug 2022 12:43:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235562AbiHLMnP (ORCPT ); Fri, 12 Aug 2022 08:43:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57238 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234491AbiHLMnO (ORCPT ); Fri, 12 Aug 2022 08:43:14 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6500DABF21; Fri, 12 Aug 2022 05:43:12 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id E873E61559; Fri, 12 Aug 2022 12:43:11 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E3CB6C433D7; Fri, 12 Aug 2022 12:43:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1660308191; bh=QaoIqnVedVBlu+2KlbRasaxQ+NzHzUkvDWMFNntwO1w=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=pFxk0Guwk82XIp88NVBSKIZ98vWvfpFwYO3aGkL2qNdZy+jcP2fqKwY4qSnk0RcC4 tRQf7AzKFxFmpVOcjBrOcRbNAjqmtBMFVItdpC7ZJfTSyDYF2ma7r1CD2qTLWnMPsP 5xZiYYca/bEpTE/W4LQZ33JCGKKCMzhNQCM6LRloDPQ+su/gcRNtidj5t3l7db7XgT NFYpVtsRSVJ+9Fg4a5hq+cPiobJRa6Cn1MbdGNKS+lwTqVoEQYnKSrvqH5YkQBkxDn Z7YUamtSKXDzLntuETECdw8ga3KCE0rVDNxq7pA9O19xO8VKqYTBGwzDMKzpBxZpg9 ztsSdiy71j+SA== Received: by quaco.ghostprotocols.net (Postfix, from userid 1000) id 61CB64035A; Fri, 12 Aug 2022 09:43:07 -0300 (-03) Date: Fri, 12 Aug 2022 09:43:07 -0300 From: Arnaldo Carvalho de Melo To: Leo Yan Cc: Peter Zijlstra , Ingo Molnar , Mark Rutland , Jiri Olsa , Namhyung Kim , Ian Rogers , John Garry , Will Deacon , James Clark , German Gomez , Ali Saidi , Joe Mario , Adam Li , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH v5 00/17] perf c2c: Support data source and display for Arm64 Message-ID: References: <20220604042820.2270916-1-leo.yan@linaro.org> <20220811064122.GA860078@leoy-huanghe.lan> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20220811064122.GA860078@leoy-huanghe.lan> X-Url: http://acmel.wordpress.com Precedence: bulk List-ID: X-Mailing-List: linux-perf-users@vger.kernel.org Em Thu, Aug 11, 2022 at 02:41:22PM +0800, Leo Yan escreveu: > Hi Arnaldo, > > On Wed, Aug 10, 2022 at 10:37:32AM -0300, Arnaldo Carvalho de Melo wrote: > > Em Sat, Jun 04, 2022 at 12:28:03PM +0800, Leo Yan escreveu: > > > Arm64 Neoverse CPUs supports data source in Arm SPE trace, this allows > > > us to detect cache line contention and transfers. > > > > > > This patch set includes Ali's patch set v9 "perf: arm-spe: Decode SPE > > > source and use for perf c2c" [1] and rebased on the latest perf core > > > banch with latest commit 1bcca2b1bd67 ("perf vendor events intel: > > > Update metrics for Alderlake"). > > > > > > Patches 01-05 comes from Ali's patch set to support data source for Arm > > > SPE for neoverse cores. > > > > Leo, please remove touching the kernel perf_event.h on the first patch, > > I see it doesn't affect the kernel right now as it is done just from > > synthesizing perf records from hw trace data, and we haven't received > > any review comment from Peter Zijlstra (I think he is in vacations). > > Done! The new patch set іs in below link, which dropped the patch for > kernel perf_event.h: > https://lore.kernel.org/lkml/20220811062451.435810-1-leo.yan@linaro.org/ > > One question: should I later continue to upstream the first patch for > syncing the kernel header perf_event.h after Peter.Z comes back? yes, and we may have to backtrack and find some other way to implement this if he is opposed, as he in the past didn't like perf_event_attr.type namespace being used by userspace only records such as PERF_RECORD_FINISHED_ROUND, PERF_RECORD_COMPRESSED, etc. In this case its different, I think its ok as we already have PERF_MEM_SNOOPX_FWD and PERF_MEM_SNOOPX_PEER probably will be emitted by the some of the architectures, from the kernel, right? - Arnaldo > > Also please refresh it: > > > > ⬢[acme@toolbox perf]$ git am ./v5_20220604_leo_yan_perf_c2c_support_data_source_and_display_for_arm64.mbx > > Applying: perf: Add SNOOP_PEER flag to perf mem data struct > > Applying: perf tools: sync addition of PERF_MEM_SNOOPX_PEER > > Applying: perf mem: Print snoop peer flag > > Applying: perf arm-spe: Don't set data source if it's not a memory operation > > error: patch failed: tools/perf/util/arm-spe.c:387 > > error: tools/perf/util/arm-spe.c: patch does not apply > > Patch failed at 0004 perf arm-spe: Don't set data source if it's not a memory operation > > hint: Use 'git am --show-current-patch=diff' to see the failed patch > > When you have resolved this problem, run "git am --continue". > > If you prefer to skip this patch, run "git am --skip" instead. > > To restore the original branch and stop patching, run "git am --abort". > > ⬢[acme@toolbox perf]$ > > To fix the merging conflict in the new patch set, I also dropped the > patch "perf arm-spe: Don't set data source if it's not a memory > operation", since this patch has been merged into the mainline kernel. Thanks. > Note, when verified the patch set, I found a compilation error, so I > sent a separate patch to fix it: > https://lore.kernel.org/lkml/20220811044341.426796-1-leo.yan@linaro.org/ I think we have a good enough bandaid in place, with that arm-spe.o only additional -I it builds on all build containers I have, the ones failing are for unrelated reasons: [perfbuilder@five ~]$ export BUILD_TARBALL=http://192.168.86.14/perf/perf-5.19.0.tar.xz [perfbuilder@five ~]$ time dm 1 131.61 almalinux:8 : Ok gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-4) , clang version 12.0.1 (Red Hat 12.0.1-4.module_el8.5.0+1025+93159d6c) 2 124.99 almalinux:9 : Ok gcc (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9) , clang version 13.0.1 (Red Hat 13.0.1-1.el9) 3 29.18 alpine:3.9 : Ok gcc (Alpine 8.3.0) 8.3.0 , clang version 13.0.1 (Red Hat 13.0.1-1.el9) 4 124.11 alpine:3.10 : Ok gcc (Alpine 8.3.0) 8.3.0 , Alpine clang version 8.0.0 (tags/RELEASE_800/final) (based on LLVM 8.0.0) 5 133.59 alpine:3.11 : Ok gcc (Alpine 9.3.0) 9.3.0 , Alpine clang version 9.0.0 (https://git.alpinelinux.org/aports f7f0d2c2b8bcd6a5843401a9a702029556492689) (based on LLVM 9.0.0) 6 128.81 alpine:3.12 : Ok gcc (Alpine 9.3.0) 9.3.0 , Alpine clang version 10.0.0 (https://gitlab.alpinelinux.org/alpine/aports.git 7445adce501f8473efdb93b17b5eaf2f1445ed4c) 7 134.70 alpine:3.13 : Ok gcc (Alpine 10.2.1_pre1) 10.2.1 20201203 , Alpine clang version 10.0.1 8 135.21 alpine:3.14 : Ok gcc (Alpine 10.3.1_git20210424) 10.3.1 20210424 , Alpine clang version 11.1.0 9 137.62 alpine:3.15 : Ok gcc (Alpine 10.3.1_git20211027) 10.3.1 20211027 , Alpine clang version 12.0.1 10 127.40 alpine:3.16 : Ok gcc (Alpine 11.2.1_git20220219) 11.2.1 20220219 , Alpine clang version 13.0.1 11 129.80 alpine:edge : Ok gcc (Alpine 11.2.1_git20220219) 11.2.1 20220219 , Alpine clang version 14.0.6 12 25.85 alt:p8 : Ok x86_64-alt-linux-gcc (GCC) 5.3.1 20151207 (ALT p8 5.3.1-alt3.M80P.1) , Alpine clang version 14.0.6 13 83.87 alt:p9 : Ok x86_64-alt-linux-gcc (GCC) 8.4.1 20200305 (ALT p9 8.4.1-alt0.p9.1) , clang version 10.0.0 14 95.90 alt:p10 : Ok x86_64-alt-linux-gcc (GCC) 10.3.1 20210703 (ALT Sisyphus 10.3.1-alt2) , clang version 11.0.1 15 96.50 alt:sisyphus : FAIL gcc version 12.1.1 20220518 (ALT Sisyphus 12.1.1-alt1) (GCC) /usr/lib/llvm-13.0/include/clang/AST/DeclBase.h: In instantiation of 'void clang::DeclContext::filtered_decl_iterator::SkipToNextDecl() [with SpecificDecl = clang::ObjCPropertyDecl; bool (SpecificDecl::* Acceptable)() const = &clang::ObjCPropertyDecl::isInstanceProperty]': 16 108.04 amazonlinux:2 : Ok gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-15) , clang version 11.1.0 (Amazon Linux 2 11.1.0-1.amzn2.0.2) 17 130.10 amazonlinux:devel : Ok gcc (GCC) 11.3.1 20220421 (Red Hat 11.3.1-2) , clang version 12.0.1 (Fedora 12.0.1-1.amzn2022) 18 138.10 archlinux:base : Ok gcc (GCC) 12.1.1 20220730 , clang version 14.0.6 19 107.93 centos:8 : Ok gcc (GCC) 8.4.1 20200928 (Red Hat 8.4.1-1) , clang version 11.0.1 (Red Hat 11.0.1-1.module_el8.4.0+966+2995ef20) 20 117.97 centos:stream : Ok gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-15) , clang version 14.0.0 (Red Hat 14.0.0-1.module_el8.7.0+1142+5343df54) 21 35.30 clearlinux:latest : Ok gcc (Clear Linux OS for Intel Architecture) 12.1.1 20220803 releases/gcc-12.1.0-322-g3df2f03587 , clang version 14.0.0 (Red Hat 14.0.0-1.module_el8.7.0+1142+5343df54) 22 22.85 debian:9 : Ok gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516 , clang version 14.0.0 (Red Hat 14.0.0-1.module_el8.7.0+1142+5343df54) 23 89.39 debian:10 : Ok gcc (Debian 8.3.0-6) 8.3.0 , Debian clang version 11.0.1-2~deb10u1 24 107.93 debian:11 : Ok gcc (Debian 10.2.1-6) 10.2.1 20210110 , Debian clang version 11.0.1-2 25 129.52 debian:experimental : Ok gcc (Debian 12.1.0-7) 12.1.0 , Debian clang version 14.0.6-2 26 26.47 debian:experimental-x-arm64 : Ok aarch64-linux-gnu-gcc (Debian 11.3.0-3) 11.3.0 27 22.25 debian:experimental-x-mips : Ok mips-linux-gnu-gcc (Debian 11.2.0-18) 11.2.0 28 23.86 debian:experimental-x-mips64 : Ok mips64-linux-gnuabi64-gcc (Debian 10.2.1-6) 10.2.1 20210110 29 24.56 debian:experimental-x-mipsel : Ok mipsel-linux-gnu-gcc (Debian 11.2.0-18) 11.2.0 30 24.75 fedora:22 : Ok gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6) 31 26.36 fedora:24 : Ok gcc (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1) 32 19.74 fedora:24-x-ARC-uClibc : Ok arc-linux-gcc (ARCompact ISA Linux uClibc toolchain 2017.09-rc2) 7.1.1 20170710 33 26.27 fedora:25 : Ok gcc (GCC) 6.4.1 20170727 (Red Hat 6.4.1-1) 34 27.17 fedora:26 : Ok gcc (GCC) 7.3.1 20180130 (Red Hat 7.3.1-2) 35 27.67 fedora:27 : Ok gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-6) 36 111.72 fedora:28 : Ok gcc (GCC) 8.3.1 20190223 (Red Hat 8.3.1-2) , clang version 6.0.1 (tags/RELEASE_601/final) 37 117.14 fedora:29 : Ok gcc (GCC) 8.3.1 20190223 (Red Hat 8.3.1-2) , clang version 7.0.1 (Fedora 7.0.1-6.fc29) 38 121.34 fedora:30 : Ok gcc (GCC) 9.3.1 20200408 (Red Hat 9.3.1-2) , clang version 8.0.0 (Fedora 8.0.0-3.fc30) 39 121.06 fedora:31 : Ok gcc (GCC) 9.3.1 20200408 (Red Hat 9.3.1-2) , clang version 9.0.1 (Fedora 9.0.1-4.fc31) 40 103.71 fedora:32 : Ok gcc (GCC) 10.3.1 20210422 (Red Hat 10.3.1-1) , clang version 10.0.1 (Fedora 10.0.1-3.fc32) 41 124.68 fedora:33 : Ok gcc (GCC) 10.3.1 20210422 (Red Hat 10.3.1-1) , clang version 11.0.0 (Fedora 11.0.0-3.fc33) 42 134.50 fedora:34 : Ok gcc (GCC) 11.3.1 20220421 (Red Hat 11.3.1-2) , clang version 12.0.1 (Fedora 12.0.1-1.fc34) 43 21.65 fedora:34-x-ARC-glibc : Ok arc-linux-gcc (ARC HS GNU/Linux glibc toolchain 2019.03-rc1) 8.3.1 20190225 44 19.84 fedora:34-x-ARC-uClibc : Ok arc-linux-gcc (ARCv2 ISA Linux uClibc toolchain 2019.03-rc1) 8.3.1 20190225 45 139.75 fedora:35 : Ok gcc (GCC) 11.3.1 20220421 (Red Hat 11.3.1-2) , clang version 13.0.0 (Fedora 13.0.0-3.fc35) 46 140.06 fedora:36 : Ok gcc (GCC) 12.1.1 20220507 (Red Hat 12.1.1-1) , clang version 14.0.0 (Fedora 14.0.0-1.fc36) 47 140.95 fedora:37 : Ok gcc (GCC) 12.1.1 20220628 (Red Hat 12.1.1-3) , clang version 14.0.5 (Fedora 14.0.5-5.fc37) 48 140.23 fedora:rawhide : Ok gcc (GCC) 12.1.1 20220628 (Red Hat 12.1.1-3) , clang version 14.0.5 (Fedora 14.0.5-5.fc37) 49 116.96 gentoo-stage3:latest : Ok gcc (Gentoo 11.2.0 p1) 11.2.0 , clang version 13.0.0 50 30.88 mageia:7 : Ok gcc (Mageia 8.4.0-1.mga7) 8.4.0 , clang version 13.0.0 51 10.61 mageia:8 : FAIL gcc version 10.4.0 (Mageia 10.4.0-3.mga8) ImportError: No module named setuptools cp: cannot stat '/tmp/build/perf/python_ext_build/lib/perf*.so': No such file or directory 52 131.50 manjaro:base : Ok gcc (GCC) 11.1.0 , clang version 13.0.0 53 7.18 openmandriva:4.2 : FAIL gcc version 11.2.0 20210728 (OpenMandriva) (GCC) In file included from builtin-bench.c:22: bench/bench.h:68:19: error: conflicting types for 'pthread_attr_setaffinity_np'; have 'int(pthread_attr_t *, size_t, cpu_set_t *)' {aka 'int(pthread_attr_t *, long unsigned int, cpu_set_t *)'} 68 | static inline int pthread_attr_setaffinity_np(pthread_attr_t *attr __maybe_unused, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ 54 7.08 openmandriva:cooker : FAIL gcc version 11.2.0 20210728 (OpenMandriva) (GCC) In file included from builtin-bench.c:22: bench/bench.h:68:19: error: conflicting types for 'pthread_attr_setaffinity_np'; have 'int(pthread_attr_t *, size_t, cpu_set_t *)' {aka 'int(pthread_attr_t *, long unsigned int, cpu_set_t *)'} 68 | static inline int pthread_attr_setaffinity_np(pthread_attr_t *attr __maybe_unused, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ 55 41.21 opensuse:15.0 : Ok gcc (SUSE Linux) 7.4.1 20190905 [gcc-7-branch revision 275407] , OpenMandriva 13.0.0-1 clang version 13.0.0 (/builddir/build/BUILD/llvm-project-13.0.0.src/clang 69c9d9094dd9c820a6ba8cad88f5901643d8f257) 56 137.78 opensuse:15.1 : Ok gcc (SUSE Linux) 7.5.0 , clang version 7.0.1 (tags/RELEASE_701/final 349238) 57 131.97 opensuse:15.2 : Ok gcc (SUSE Linux) 7.5.0 , clang version 9.0.1 58 150.03 opensuse:15.3 : Ok gcc (SUSE Linux) 7.5.0 , clang version 11.0.1 59 152.63 opensuse:15.4 : Ok gcc (SUSE Linux) 7.5.0 , clang version 13.0.1 60 181.35 opensuse:tumbleweed : Ok gcc (SUSE Linux) 12.1.1 20220629 [revision 7811663964aa7e31c3939b859bbfa2e16919639f] , clang version 14.0.6 61 124.89 oraclelinux:8 : Ok gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-4.0.1) , clang version 12.0.1 (Red Hat 12.0.1-4.0.1.module+el8.5.0+20428+2b4ecd47) 62 118.96 oraclelinux:9 : Ok gcc (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9.4.0.2) , clang version 13.0.1 (Red Hat 13.0.1-1.0.1.el9) 63 116.66 rockylinux:8 : Ok gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-10) , clang version 13.0.1 (Red Hat 13.0.1-2.module+el8.6.0+987+d36ea6a1) 64 121.77 rockylinux:9 : Ok gcc (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9) , clang version 13.0.1 (Red Hat 13.0.1-1.el9) 65 24.75 ubuntu:16.04 : Ok gcc (Ubuntu 5.4.0-6ubuntu1~16.04.12) 5.4.0 20160609 , clang version 13.0.1 (Red Hat 13.0.1-1.el9) 66 20.94 ubuntu:16.04-x-arm : Ok arm-linux-gnueabihf-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 67 20.75 ubuntu:16.04-x-powerpc : Ok powerpc-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 68 20.95 ubuntu:16.04-x-powerpc64 : Ok powerpc64-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 69 20.85 ubuntu:16.04-x-powerpc64el : Ok powerpc64le-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 70 98.89 ubuntu:18.04 : Ok gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 , clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final) 71 22.45 ubuntu:18.04-x-arm : Ok arm-linux-gnueabihf-gcc (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04) 7.5.0 72 22.55 ubuntu:18.04-x-arm64 : Ok aarch64-linux-gnu-gcc (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04) 7.5.0 73 18.33 ubuntu:18.04-x-m68k : Ok m68k-linux-gnu-gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 74 21.75 ubuntu:18.04-x-powerpc : Ok powerpc-linux-gnu-gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 75 23.36 ubuntu:18.04-x-powerpc64 : Ok powerpc64-linux-gnu-gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 76 23.36 ubuntu:18.04-x-powerpc64el : Ok powerpc64le-linux-gnu-gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 77 110.06 ubuntu:18.04-x-riscv64 : Ok riscv64-linux-gnu-gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 78 20.55 ubuntu:18.04-x-s390 : Ok s390x-linux-gnu-gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 79 21.56 ubuntu:18.04-x-sh4 : Ok sh4-linux-gnu-gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 80 20.14 ubuntu:18.04-x-sparc64 : Ok sparc64-linux-gnu-gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 81 30.08 ubuntu:20.04 : Ok gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0 82 24.37 ubuntu:20.04-x-powerpc64el : Ok powerpc64le-linux-gnu-gcc (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0 83 121.26 ubuntu:21.04 : Ok gcc (Ubuntu 10.3.0-1ubuntu1) 10.3.0 , Ubuntu clang version 12.0.0-3ubuntu1~21.04.2 84 123.37 ubuntu:21.10 : Ok gcc (Ubuntu 11.2.0-7ubuntu2) 11.2.0 , Ubuntu clang version 13.0.0-2 85 141.34 ubuntu:22.04 : Ok gcc (Ubuntu 11.2.0-19ubuntu1) 11.2.0 , Ubuntu clang version 14.0.0-1ubuntu1 86 131.33 ubuntu:22.10 : Ok gcc (Ubuntu 11.3.0-5ubuntu1) 11.3.0 , Ubuntu clang version 14.0.6-2 BUILD_TARBALL_HEAD=e754dd7e8be86e1adc9d4d13fb1105b848c11752 87 6976.47 real 117m55.077s user 1m18.659s sys 0m53.139s [perfbuilder@five ~]$ > Thanks a lot for continuous tracking this series. You're welcome. - 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 44B26C00140 for ; Fri, 12 Aug 2022 12:44:40 +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=0X6z9mjzQmtciIXeJtIRa19vdE6rznUK0kQNtn/geyM=; b=1p+L/gz+W3hadJ E9wd105y9wOjMu99oAJdFl5BI1CQ+3gsqyhD7Pg8HJuBPHwQNfToa29y4QlmHE5HkCEMmS5UYRSjq mtTf6BI1y2mbjBdcdPZ1F+ok2UYooqc11hctNJPr6a1+dvr00cQuN8MVTXFnyv9M4gGXG2e5D9xOB FyzbVqDJDdW6gD3KidJpYXYTD5ofWEcvxqrGr/dWSLBX3/VsUw2+k6GuROEOeZzdmCMYqwKa3Ilbo V/aDHsvFFQ5CxInakUuATdpjJuUUBU3K7ia8yVyneON2u3fxU1cq/mQeOy0l89j5OpvcTjINyKjHm DCUCFl/XK/ZOh2kVb4aw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oMU0S-007KlV-Rk; Fri, 12 Aug 2022 12:43:16 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oMU0Q-007Kj9-LQ for linux-arm-kernel@bombadil.infradead.org; Fri, 12 Aug 2022 12:43:14 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=In-Reply-To:Content-Transfer-Encoding: Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date: Sender:Reply-To:Content-ID:Content-Description; bh=iRG/ERyylL3tq1pa42aibgILMENCGc2xgH9lwr8fEH4=; b=XNlNAcYkyM3lmJARvisBCQ83Vd h6BusLQuOBxBq0JVbViLK1RoNtzbE/NyJJjhX5ewWepZ4UjxlxuklruXTXRwesX8h+KwNdPpdSByO r2x792m2EaqByPyi/TJywKgkTEWB+M83K+yz/Ntr+1TTmBOyt+EhHFhwgGjHwStLi2HQvrgP7HT55 RVhUqXH/zxmSx6cRlkmxF6rp7nI+2AruI5TDKXKs36xzvIqCJij7Oa/4zcRv69yYRl9vRTFsDqwg6 mKbZp/rOZb1k6UTcGAySg7BBN/eRDq3EgUuS/2QkJkEVUAmzWycxVpWqzXunIS4+5Ssh4vl8O6IPp BiSfL3dA==; Received: from [187.19.239.32] (helo=quaco.ghostprotocols.net) by desiato.infradead.org with esmtpsa (Exim 4.94.2 #2 (Red Hat Linux)) id 1oMU0N-001cl2-Iq; Fri, 12 Aug 2022 12:43:12 +0000 Received: by quaco.ghostprotocols.net (Postfix, from userid 1000) id 61CB64035A; Fri, 12 Aug 2022 09:43:07 -0300 (-03) Date: Fri, 12 Aug 2022 09:43:07 -0300 From: Arnaldo Carvalho de Melo To: Leo Yan Cc: Peter Zijlstra , Ingo Molnar , Mark Rutland , Jiri Olsa , Namhyung Kim , Ian Rogers , John Garry , Will Deacon , James Clark , German Gomez , Ali Saidi , Joe Mario , Adam Li , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH v5 00/17] perf c2c: Support data source and display for Arm64 Message-ID: References: <20220604042820.2270916-1-leo.yan@linaro.org> <20220811064122.GA860078@leoy-huanghe.lan> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220811064122.GA860078@leoy-huanghe.lan> X-Url: http://acmel.wordpress.com 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 RW0gVGh1LCBBdWcgMTEsIDIwMjIgYXQgMDI6NDE6MjJQTSArMDgwMCwgTGVvIFlhbiBlc2NyZXZl dToKPiBIaSBBcm5hbGRvLAo+IAo+IE9uIFdlZCwgQXVnIDEwLCAyMDIyIGF0IDEwOjM3OjMyQU0g LTAzMDAsIEFybmFsZG8gQ2FydmFsaG8gZGUgTWVsbyB3cm90ZToKPiA+IEVtIFNhdCwgSnVuIDA0 LCAyMDIyIGF0IDEyOjI4OjAzUE0gKzA4MDAsIExlbyBZYW4gZXNjcmV2ZXU6Cj4gPiA+IEFybTY0 IE5lb3ZlcnNlIENQVXMgc3VwcG9ydHMgZGF0YSBzb3VyY2UgaW4gQXJtIFNQRSB0cmFjZSwgdGhp cyBhbGxvd3MKPiA+ID4gdXMgdG8gZGV0ZWN0IGNhY2hlIGxpbmUgY29udGVudGlvbiBhbmQgdHJh bnNmZXJzLgo+ID4gPiAKPiA+ID4gVGhpcyBwYXRjaCBzZXQgaW5jbHVkZXMgQWxpJ3MgcGF0Y2gg c2V0IHY5ICJwZXJmOiBhcm0tc3BlOiBEZWNvZGUgU1BFCj4gPiA+IHNvdXJjZSBhbmQgdXNlIGZv ciBwZXJmIGMyYyIgWzFdIGFuZCByZWJhc2VkIG9uIHRoZSBsYXRlc3QgcGVyZiBjb3JlCj4gPiA+ IGJhbmNoIHdpdGggbGF0ZXN0IGNvbW1pdCAxYmNjYTJiMWJkNjcgKCJwZXJmIHZlbmRvciBldmVu dHMgaW50ZWw6Cj4gPiA+IFVwZGF0ZSBtZXRyaWNzIGZvciBBbGRlcmxha2UiKS4KPiA+ID4gCj4g PiA+IFBhdGNoZXMgMDEtMDUgY29tZXMgZnJvbSBBbGkncyBwYXRjaCBzZXQgdG8gc3VwcG9ydCBk YXRhIHNvdXJjZSBmb3IgQXJtCj4gPiA+IFNQRSBmb3IgbmVvdmVyc2UgY29yZXMuCj4gPiAKPiA+ IExlbywgcGxlYXNlIHJlbW92ZSB0b3VjaGluZyB0aGUga2VybmVsIHBlcmZfZXZlbnQuaCBvbiB0 aGUgZmlyc3QgcGF0Y2gsCj4gPiBJIHNlZSBpdCBkb2Vzbid0IGFmZmVjdCB0aGUga2VybmVsIHJp Z2h0IG5vdyBhcyBpdCBpcyBkb25lIGp1c3QgZnJvbQo+ID4gc3ludGhlc2l6aW5nIHBlcmYgcmVj b3JkcyBmcm9tIGh3IHRyYWNlIGRhdGEsIGFuZCB3ZSBoYXZlbid0IHJlY2VpdmVkCj4gPiBhbnkg cmV2aWV3IGNvbW1lbnQgZnJvbSBQZXRlciBaaWpsc3RyYSAoSSB0aGluayBoZSBpcyBpbiB2YWNh dGlvbnMpLgo+IAo+IERvbmUhICBUaGUgbmV3IHBhdGNoIHNldCDRlnMgaW4gYmVsb3cgbGluaywg d2hpY2ggZHJvcHBlZCB0aGUgcGF0Y2ggZm9yCj4ga2VybmVsIHBlcmZfZXZlbnQuaDoKPiBodHRw czovL2xvcmUua2VybmVsLm9yZy9sa21sLzIwMjIwODExMDYyNDUxLjQzNTgxMC0xLWxlby55YW5A bGluYXJvLm9yZy8KPiAKPiBPbmUgcXVlc3Rpb246IHNob3VsZCBJIGxhdGVyIGNvbnRpbnVlIHRv IHVwc3RyZWFtIHRoZSBmaXJzdCBwYXRjaCBmb3IKPiBzeW5jaW5nIHRoZSBrZXJuZWwgaGVhZGVy IHBlcmZfZXZlbnQuaCBhZnRlciBQZXRlci5aIGNvbWVzIGJhY2s/Cgp5ZXMsIGFuZCB3ZSBtYXkg aGF2ZSB0byBiYWNrdHJhY2sgYW5kIGZpbmQgc29tZSBvdGhlciB3YXkgdG8gaW1wbGVtZW50CnRo aXMgaWYgaGUgaXMgb3Bwb3NlZCwgYXMgaGUgaW4gdGhlIHBhc3QgZGlkbid0IGxpa2UKcGVyZl9l dmVudF9hdHRyLnR5cGUgbmFtZXNwYWNlIGJlaW5nIHVzZWQgYnkgdXNlcnNwYWNlIG9ubHkgcmVj b3JkcyBzdWNoCmFzIFBFUkZfUkVDT1JEX0ZJTklTSEVEX1JPVU5ELCBQRVJGX1JFQ09SRF9DT01Q UkVTU0VELCBldGMuCgpJbiB0aGlzIGNhc2UgaXRzIGRpZmZlcmVudCwgSSB0aGluayBpdHMgb2sg YXMgd2UgYWxyZWFkeSBoYXZlClBFUkZfTUVNX1NOT09QWF9GV0QgYW5kIFBFUkZfTUVNX1NOT09Q WF9QRUVSIHByb2JhYmx5IHdpbGwgYmUgZW1pdHRlZCBieQp0aGUgc29tZSBvZiB0aGUgYXJjaGl0 ZWN0dXJlcywgZnJvbSB0aGUga2VybmVsLCByaWdodD8KCi0gQXJuYWxkbwogCj4gPiBBbHNvIHBs ZWFzZSByZWZyZXNoIGl0Ogo+ID4gCj4gPiDirKJbYWNtZUB0b29sYm94IHBlcmZdJCAgICAgICAg Z2l0IGFtIC4vdjVfMjAyMjA2MDRfbGVvX3lhbl9wZXJmX2MyY19zdXBwb3J0X2RhdGFfc291cmNl X2FuZF9kaXNwbGF5X2Zvcl9hcm02NC5tYngKPiA+IEFwcGx5aW5nOiBwZXJmOiBBZGQgU05PT1Bf UEVFUiBmbGFnIHRvIHBlcmYgbWVtIGRhdGEgc3RydWN0Cj4gPiBBcHBseWluZzogcGVyZiB0b29s czogc3luYyBhZGRpdGlvbiBvZiBQRVJGX01FTV9TTk9PUFhfUEVFUgo+ID4gQXBwbHlpbmc6IHBl cmYgbWVtOiBQcmludCBzbm9vcCBwZWVyIGZsYWcKPiA+IEFwcGx5aW5nOiBwZXJmIGFybS1zcGU6 IERvbid0IHNldCBkYXRhIHNvdXJjZSBpZiBpdCdzIG5vdCBhIG1lbW9yeSBvcGVyYXRpb24KPiA+ IGVycm9yOiBwYXRjaCBmYWlsZWQ6IHRvb2xzL3BlcmYvdXRpbC9hcm0tc3BlLmM6Mzg3Cj4gPiBl cnJvcjogdG9vbHMvcGVyZi91dGlsL2FybS1zcGUuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKPiA+ IFBhdGNoIGZhaWxlZCBhdCAwMDA0IHBlcmYgYXJtLXNwZTogRG9uJ3Qgc2V0IGRhdGEgc291cmNl IGlmIGl0J3Mgbm90IGEgbWVtb3J5IG9wZXJhdGlvbgo+ID4gaGludDogVXNlICdnaXQgYW0gLS1z aG93LWN1cnJlbnQtcGF0Y2g9ZGlmZicgdG8gc2VlIHRoZSBmYWlsZWQgcGF0Y2gKPiA+IFdoZW4g eW91IGhhdmUgcmVzb2x2ZWQgdGhpcyBwcm9ibGVtLCBydW4gImdpdCBhbSAtLWNvbnRpbnVlIi4K PiA+IElmIHlvdSBwcmVmZXIgdG8gc2tpcCB0aGlzIHBhdGNoLCBydW4gImdpdCBhbSAtLXNraXAi IGluc3RlYWQuCj4gPiBUbyByZXN0b3JlIHRoZSBvcmlnaW5hbCBicmFuY2ggYW5kIHN0b3AgcGF0 Y2hpbmcsIHJ1biAiZ2l0IGFtIC0tYWJvcnQiLgo+ID4g4qyiW2FjbWVAdG9vbGJveCBwZXJmXSQK PiAKPiBUbyBmaXggdGhlIG1lcmdpbmcgY29uZmxpY3QgaW4gdGhlIG5ldyBwYXRjaCBzZXQsIEkg YWxzbyBkcm9wcGVkIHRoZQo+IHBhdGNoICJwZXJmIGFybS1zcGU6IERvbid0IHNldCBkYXRhIHNv dXJjZSBpZiBpdCdzIG5vdCBhIG1lbW9yeQo+IG9wZXJhdGlvbiIsIHNpbmNlIHRoaXMgcGF0Y2gg aGFzIGJlZW4gbWVyZ2VkIGludG8gdGhlIG1haW5saW5lIGtlcm5lbC4KClRoYW5rcy4KIAo+IE5v dGUsIHdoZW4gdmVyaWZpZWQgdGhlIHBhdGNoIHNldCwgSSBmb3VuZCBhIGNvbXBpbGF0aW9uIGVy cm9yLCBzbyBJCj4gc2VudCBhIHNlcGFyYXRlIHBhdGNoIHRvIGZpeCBpdDoKPiBodHRwczovL2xv cmUua2VybmVsLm9yZy9sa21sLzIwMjIwODExMDQ0MzQxLjQyNjc5Ni0xLWxlby55YW5AbGluYXJv Lm9yZy8KCkkgdGhpbmsgd2UgaGF2ZSBhIGdvb2QgZW5vdWdoIGJhbmRhaWQgaW4gcGxhY2UsIHdp dGggdGhhdCBhcm0tc3BlLm8gb25seQphZGRpdGlvbmFsIC1JIGl0IGJ1aWxkcyBvbiBhbGwgYnVp bGQgY29udGFpbmVycyBJIGhhdmUsIHRoZSBvbmVzIGZhaWxpbmcKYXJlIGZvciB1bnJlbGF0ZWQg cmVhc29uczoKCltwZXJmYnVpbGRlckBmaXZlIH5dJCBleHBvcnQgQlVJTERfVEFSQkFMTD1odHRw Oi8vMTkyLjE2OC44Ni4xNC9wZXJmL3BlcmYtNS4xOS4wLnRhci54egpbcGVyZmJ1aWxkZXJAZml2 ZSB+XSQgdGltZSBkbQogICAxICAgMTMxLjYxIGFsbWFsaW51eDo4ICAgICAgICAgICAgICAgICAg IDogT2sgICBnY2MgKEdDQykgOC41LjAgMjAyMTA1MTQgKFJlZCBIYXQgOC41LjAtNCkgLCBjbGFu ZyB2ZXJzaW9uIDEyLjAuMSAoUmVkIEhhdCAxMi4wLjEtNC5tb2R1bGVfZWw4LjUuMCsxMDI1Kzkz MTU5ZDZjKQogICAyICAgMTI0Ljk5IGFsbWFsaW51eDo5ICAgICAgICAgICAgICAgICAgIDogT2sg ICBnY2MgKEdDQykgMTEuMi4xIDIwMjIwMTI3IChSZWQgSGF0IDExLjIuMS05KSAsIGNsYW5nIHZl cnNpb24gMTMuMC4xIChSZWQgSGF0IDEzLjAuMS0xLmVsOSkKICAgMyAgICAyOS4xOCBhbHBpbmU6 My45ICAgICAgICAgICAgICAgICAgICA6IE9rICAgZ2NjIChBbHBpbmUgOC4zLjApIDguMy4wICwg Y2xhbmcgdmVyc2lvbiAxMy4wLjEgKFJlZCBIYXQgMTMuMC4xLTEuZWw5KQogICA0ICAgMTI0LjEx IGFscGluZTozLjEwICAgICAgICAgICAgICAgICAgIDogT2sgICBnY2MgKEFscGluZSA4LjMuMCkg OC4zLjAgLCBBbHBpbmUgY2xhbmcgdmVyc2lvbiA4LjAuMCAodGFncy9SRUxFQVNFXzgwMC9maW5h bCkgKGJhc2VkIG9uIExMVk0gOC4wLjApCiAgIDUgICAxMzMuNTkgYWxwaW5lOjMuMTEgICAgICAg ICAgICAgICAgICAgOiBPayAgIGdjYyAoQWxwaW5lIDkuMy4wKSA5LjMuMCAsIEFscGluZSBjbGFu ZyB2ZXJzaW9uIDkuMC4wIChodHRwczovL2dpdC5hbHBpbmVsaW51eC5vcmcvYXBvcnRzIGY3ZjBk MmMyYjhiY2Q2YTU4NDM0MDFhOWE3MDIwMjk1NTY0OTI2ODkpIChiYXNlZCBvbiBMTFZNIDkuMC4w KQogICA2ICAgMTI4LjgxIGFscGluZTozLjEyICAgICAgICAgICAgICAgICAgIDogT2sgICBnY2Mg KEFscGluZSA5LjMuMCkgOS4zLjAgLCBBbHBpbmUgY2xhbmcgdmVyc2lvbiAxMC4wLjAgKGh0dHBz Oi8vZ2l0bGFiLmFscGluZWxpbnV4Lm9yZy9hbHBpbmUvYXBvcnRzLmdpdCA3NDQ1YWRjZTUwMWY4 NDczZWZkYjkzYjE3YjVlYWYyZjE0NDVlZDRjKQogICA3ICAgMTM0LjcwIGFscGluZTozLjEzICAg ICAgICAgICAgICAgICAgIDogT2sgICBnY2MgKEFscGluZSAxMC4yLjFfcHJlMSkgMTAuMi4xIDIw MjAxMjAzICwgQWxwaW5lIGNsYW5nIHZlcnNpb24gMTAuMC4xCiAgIDggICAxMzUuMjEgYWxwaW5l OjMuMTQgICAgICAgICAgICAgICAgICAgOiBPayAgIGdjYyAoQWxwaW5lIDEwLjMuMV9naXQyMDIx MDQyNCkgMTAuMy4xIDIwMjEwNDI0ICwgQWxwaW5lIGNsYW5nIHZlcnNpb24gMTEuMS4wCiAgIDkg ICAxMzcuNjIgYWxwaW5lOjMuMTUgICAgICAgICAgICAgICAgICAgOiBPayAgIGdjYyAoQWxwaW5l IDEwLjMuMV9naXQyMDIxMTAyNykgMTAuMy4xIDIwMjExMDI3ICwgQWxwaW5lIGNsYW5nIHZlcnNp b24gMTIuMC4xCiAgMTAgICAxMjcuNDAgYWxwaW5lOjMuMTYgICAgICAgICAgICAgICAgICAgOiBP ayAgIGdjYyAoQWxwaW5lIDExLjIuMV9naXQyMDIyMDIxOSkgMTEuMi4xIDIwMjIwMjE5ICwgQWxw aW5lIGNsYW5nIHZlcnNpb24gMTMuMC4xCiAgMTEgICAxMjkuODAgYWxwaW5lOmVkZ2UgICAgICAg ICAgICAgICAgICAgOiBPayAgIGdjYyAoQWxwaW5lIDExLjIuMV9naXQyMDIyMDIxOSkgMTEuMi4x IDIwMjIwMjE5ICwgQWxwaW5lIGNsYW5nIHZlcnNpb24gMTQuMC42CiAgMTIgICAgMjUuODUgYWx0 OnA4ICAgICAgICAgICAgICAgICAgICAgICAgOiBPayAgIHg4Nl82NC1hbHQtbGludXgtZ2NjIChH Q0MpIDUuMy4xIDIwMTUxMjA3IChBTFQgcDggNS4zLjEtYWx0My5NODBQLjEpICwgQWxwaW5lIGNs YW5nIHZlcnNpb24gMTQuMC42CiAgMTMgICAgODMuODcgYWx0OnA5ICAgICAgICAgICAgICAgICAg ICAgICAgOiBPayAgIHg4Nl82NC1hbHQtbGludXgtZ2NjIChHQ0MpIDguNC4xIDIwMjAwMzA1IChB TFQgcDkgOC40LjEtYWx0MC5wOS4xKSAsIGNsYW5nIHZlcnNpb24gMTAuMC4wCiAgMTQgICAgOTUu OTAgYWx0OnAxMCAgICAgICAgICAgICAgICAgICAgICAgOiBPayAgIHg4Nl82NC1hbHQtbGludXgt Z2NjIChHQ0MpIDEwLjMuMSAyMDIxMDcwMyAoQUxUIFNpc3lwaHVzIDEwLjMuMS1hbHQyKSAsIGNs YW5nIHZlcnNpb24gMTEuMC4xCiAgMTUgICAgOTYuNTAgYWx0OnNpc3lwaHVzICAgICAgICAgICAg ICAgICAgOiBGQUlMIGdjYyB2ZXJzaW9uIDEyLjEuMSAyMDIyMDUxOCAoQUxUIFNpc3lwaHVzIDEy LjEuMS1hbHQxKSAoR0NDKQogICAgL3Vzci9saWIvbGx2bS0xMy4wL2luY2x1ZGUvY2xhbmcvQVNU L0RlY2xCYXNlLmg6IEluIGluc3RhbnRpYXRpb24gb2YgJ3ZvaWQgY2xhbmc6OkRlY2xDb250ZXh0 OjpmaWx0ZXJlZF9kZWNsX2l0ZXJhdG9yPFNwZWNpZmljRGVjbCwgQWNjZXB0YWJsZT46OlNraXBU b05leHREZWNsKCkgW3dpdGggU3BlY2lmaWNEZWNsID0gY2xhbmc6Ok9iakNQcm9wZXJ0eURlY2w7 IGJvb2wgKFNwZWNpZmljRGVjbDo6KiBBY2NlcHRhYmxlKSgpIGNvbnN0ID0gJmNsYW5nOjpPYmpD UHJvcGVydHlEZWNsOjppc0luc3RhbmNlUHJvcGVydHldJzoKICAxNiAgIDEwOC4wNCBhbWF6b25s aW51eDoyICAgICAgICAgICAgICAgICA6IE9rICAgZ2NjIChHQ0MpIDcuMy4xIDIwMTgwNzEyIChS ZWQgSGF0IDcuMy4xLTE1KSAsIGNsYW5nIHZlcnNpb24gMTEuMS4wIChBbWF6b24gTGludXggMiAx MS4xLjAtMS5hbXpuMi4wLjIpCiAgMTcgICAxMzAuMTAgYW1hem9ubGludXg6ZGV2ZWwgICAgICAg ICAgICAgOiBPayAgIGdjYyAoR0NDKSAxMS4zLjEgMjAyMjA0MjEgKFJlZCBIYXQgMTEuMy4xLTIp ICwgY2xhbmcgdmVyc2lvbiAxMi4wLjEgKEZlZG9yYSAxMi4wLjEtMS5hbXpuMjAyMikKICAxOCAg IDEzOC4xMCBhcmNobGludXg6YmFzZSAgICAgICAgICAgICAgICA6IE9rICAgZ2NjIChHQ0MpIDEy LjEuMSAyMDIyMDczMCAsIGNsYW5nIHZlcnNpb24gMTQuMC42CiAgMTkgICAxMDcuOTMgY2VudG9z OjggICAgICAgICAgICAgICAgICAgICAgOiBPayAgIGdjYyAoR0NDKSA4LjQuMSAyMDIwMDkyOCAo UmVkIEhhdCA4LjQuMS0xKSAsIGNsYW5nIHZlcnNpb24gMTEuMC4xIChSZWQgSGF0IDExLjAuMS0x Lm1vZHVsZV9lbDguNC4wKzk2NisyOTk1ZWYyMCkKICAyMCAgIDExNy45NyBjZW50b3M6c3RyZWFt ICAgICAgICAgICAgICAgICA6IE9rICAgZ2NjIChHQ0MpIDguNS4wIDIwMjEwNTE0IChSZWQgSGF0 IDguNS4wLTE1KSAsIGNsYW5nIHZlcnNpb24gMTQuMC4wIChSZWQgSGF0IDE0LjAuMC0xLm1vZHVs ZV9lbDguNy4wKzExNDIrNTM0M2RmNTQpCiAgMjEgICAgMzUuMzAgY2xlYXJsaW51eDpsYXRlc3Qg ICAgICAgICAgICAgOiBPayAgIGdjYyAoQ2xlYXIgTGludXggT1MgZm9yIEludGVsIEFyY2hpdGVj dHVyZSkgMTIuMS4xIDIwMjIwODAzIHJlbGVhc2VzL2djYy0xMi4xLjAtMzIyLWczZGYyZjAzNTg3 ICwgY2xhbmcgdmVyc2lvbiAxNC4wLjAgKFJlZCBIYXQgMTQuMC4wLTEubW9kdWxlX2VsOC43LjAr MTE0Mis1MzQzZGY1NCkKICAyMiAgICAyMi44NSBkZWJpYW46OSAgICAgICAgICAgICAgICAgICAg ICA6IE9rICAgZ2NjIChEZWJpYW4gNi4zLjAtMTgrZGViOXUxKSA2LjMuMCAyMDE3MDUxNiAsIGNs YW5nIHZlcnNpb24gMTQuMC4wIChSZWQgSGF0IDE0LjAuMC0xLm1vZHVsZV9lbDguNy4wKzExNDIr NTM0M2RmNTQpCiAgMjMgICAgODkuMzkgZGViaWFuOjEwICAgICAgICAgICAgICAgICAgICAgOiBP ayAgIGdjYyAoRGViaWFuIDguMy4wLTYpIDguMy4wICwgRGViaWFuIGNsYW5nIHZlcnNpb24gMTEu MC4xLTJ+ZGViMTB1MQogIDI0ICAgMTA3LjkzIGRlYmlhbjoxMSAgICAgICAgICAgICAgICAgICAg IDogT2sgICBnY2MgKERlYmlhbiAxMC4yLjEtNikgMTAuMi4xIDIwMjEwMTEwICwgRGViaWFuIGNs YW5nIHZlcnNpb24gMTEuMC4xLTIKICAyNSAgIDEyOS41MiBkZWJpYW46ZXhwZXJpbWVudGFsICAg ICAgICAgICA6IE9rICAgZ2NjIChEZWJpYW4gMTIuMS4wLTcpIDEyLjEuMCAsIERlYmlhbiBjbGFu ZyB2ZXJzaW9uIDE0LjAuNi0yCiAgMjYgICAgMjYuNDcgZGViaWFuOmV4cGVyaW1lbnRhbC14LWFy bTY0ICAgOiBPayAgIGFhcmNoNjQtbGludXgtZ251LWdjYyAoRGViaWFuIDExLjMuMC0zKSAxMS4z LjAKICAyNyAgICAyMi4yNSBkZWJpYW46ZXhwZXJpbWVudGFsLXgtbWlwcyAgICA6IE9rICAgbWlw cy1saW51eC1nbnUtZ2NjIChEZWJpYW4gMTEuMi4wLTE4KSAxMS4yLjAKICAyOCAgICAyMy44NiBk ZWJpYW46ZXhwZXJpbWVudGFsLXgtbWlwczY0ICA6IE9rICAgbWlwczY0LWxpbnV4LWdudWFiaTY0 LWdjYyAoRGViaWFuIDEwLjIuMS02KSAxMC4yLjEgMjAyMTAxMTAKICAyOSAgICAyNC41NiBkZWJp YW46ZXhwZXJpbWVudGFsLXgtbWlwc2VsICA6IE9rICAgbWlwc2VsLWxpbnV4LWdudS1nY2MgKERl YmlhbiAxMS4yLjAtMTgpIDExLjIuMAogIDMwICAgIDI0Ljc1IGZlZG9yYToyMiAgICAgICAgICAg ICAgICAgICAgIDogT2sgICBnY2MgKEdDQykgNS4zLjEgMjAxNjA0MDYgKFJlZCBIYXQgNS4zLjEt NikKICAzMSAgICAyNi4zNiBmZWRvcmE6MjQgICAgICAgICAgICAgICAgICAgICA6IE9rICAgZ2Nj IChHQ0MpIDYuMy4xIDIwMTYxMjIxIChSZWQgSGF0IDYuMy4xLTEpCiAgMzIgICAgMTkuNzQgZmVk b3JhOjI0LXgtQVJDLXVDbGliYyAgICAgICAgOiBPayAgIGFyYy1saW51eC1nY2MgKEFSQ29tcGFj dCBJU0EgTGludXggdUNsaWJjIHRvb2xjaGFpbiAyMDE3LjA5LXJjMikgNy4xLjEgMjAxNzA3MTAK ICAzMyAgICAyNi4yNyBmZWRvcmE6MjUgICAgICAgICAgICAgICAgICAgICA6IE9rICAgZ2NjIChH Q0MpIDYuNC4xIDIwMTcwNzI3IChSZWQgSGF0IDYuNC4xLTEpCiAgMzQgICAgMjcuMTcgZmVkb3Jh OjI2ICAgICAgICAgICAgICAgICAgICAgOiBPayAgIGdjYyAoR0NDKSA3LjMuMSAyMDE4MDEzMCAo UmVkIEhhdCA3LjMuMS0yKQogIDM1ICAgIDI3LjY3IGZlZG9yYToyNyAgICAgICAgICAgICAgICAg ICAgIDogT2sgICBnY2MgKEdDQykgNy4zLjEgMjAxODA3MTIgKFJlZCBIYXQgNy4zLjEtNikKICAz NiAgIDExMS43MiBmZWRvcmE6MjggICAgICAgICAgICAgICAgICAgICA6IE9rICAgZ2NjIChHQ0Mp IDguMy4xIDIwMTkwMjIzIChSZWQgSGF0IDguMy4xLTIpICwgY2xhbmcgdmVyc2lvbiA2LjAuMSAo dGFncy9SRUxFQVNFXzYwMS9maW5hbCkKICAzNyAgIDExNy4xNCBmZWRvcmE6MjkgICAgICAgICAg ICAgICAgICAgICA6IE9rICAgZ2NjIChHQ0MpIDguMy4xIDIwMTkwMjIzIChSZWQgSGF0IDguMy4x LTIpICwgY2xhbmcgdmVyc2lvbiA3LjAuMSAoRmVkb3JhIDcuMC4xLTYuZmMyOSkKICAzOCAgIDEy MS4zNCBmZWRvcmE6MzAgICAgICAgICAgICAgICAgICAgICA6IE9rICAgZ2NjIChHQ0MpIDkuMy4x IDIwMjAwNDA4IChSZWQgSGF0IDkuMy4xLTIpICwgY2xhbmcgdmVyc2lvbiA4LjAuMCAoRmVkb3Jh IDguMC4wLTMuZmMzMCkKICAzOSAgIDEyMS4wNiBmZWRvcmE6MzEgICAgICAgICAgICAgICAgICAg ICA6IE9rICAgZ2NjIChHQ0MpIDkuMy4xIDIwMjAwNDA4IChSZWQgSGF0IDkuMy4xLTIpICwgY2xh bmcgdmVyc2lvbiA5LjAuMSAoRmVkb3JhIDkuMC4xLTQuZmMzMSkKICA0MCAgIDEwMy43MSBmZWRv cmE6MzIgICAgICAgICAgICAgICAgICAgICA6IE9rICAgZ2NjIChHQ0MpIDEwLjMuMSAyMDIxMDQy MiAoUmVkIEhhdCAxMC4zLjEtMSkgLCBjbGFuZyB2ZXJzaW9uIDEwLjAuMSAoRmVkb3JhIDEwLjAu MS0zLmZjMzIpCiAgNDEgICAxMjQuNjggZmVkb3JhOjMzICAgICAgICAgICAgICAgICAgICAgOiBP ayAgIGdjYyAoR0NDKSAxMC4zLjEgMjAyMTA0MjIgKFJlZCBIYXQgMTAuMy4xLTEpICwgY2xhbmcg dmVyc2lvbiAxMS4wLjAgKEZlZG9yYSAxMS4wLjAtMy5mYzMzKQogIDQyICAgMTM0LjUwIGZlZG9y YTozNCAgICAgICAgICAgICAgICAgICAgIDogT2sgICBnY2MgKEdDQykgMTEuMy4xIDIwMjIwNDIx IChSZWQgSGF0IDExLjMuMS0yKSAsIGNsYW5nIHZlcnNpb24gMTIuMC4xIChGZWRvcmEgMTIuMC4x LTEuZmMzNCkKICA0MyAgICAyMS42NSBmZWRvcmE6MzQteC1BUkMtZ2xpYmMgICAgICAgICA6IE9r ICAgYXJjLWxpbnV4LWdjYyAoQVJDIEhTIEdOVS9MaW51eCBnbGliYyB0b29sY2hhaW4gMjAxOS4w My1yYzEpIDguMy4xIDIwMTkwMjI1CiAgNDQgICAgMTkuODQgZmVkb3JhOjM0LXgtQVJDLXVDbGli YyAgICAgICAgOiBPayAgIGFyYy1saW51eC1nY2MgKEFSQ3YyIElTQSBMaW51eCB1Q2xpYmMgdG9v bGNoYWluIDIwMTkuMDMtcmMxKSA4LjMuMSAyMDE5MDIyNQogIDQ1ICAgMTM5Ljc1IGZlZG9yYToz NSAgICAgICAgICAgICAgICAgICAgIDogT2sgICBnY2MgKEdDQykgMTEuMy4xIDIwMjIwNDIxIChS ZWQgSGF0IDExLjMuMS0yKSAsIGNsYW5nIHZlcnNpb24gMTMuMC4wIChGZWRvcmEgMTMuMC4wLTMu ZmMzNSkKICA0NiAgIDE0MC4wNiBmZWRvcmE6MzYgICAgICAgICAgICAgICAgICAgICA6IE9rICAg Z2NjIChHQ0MpIDEyLjEuMSAyMDIyMDUwNyAoUmVkIEhhdCAxMi4xLjEtMSkgLCBjbGFuZyB2ZXJz aW9uIDE0LjAuMCAoRmVkb3JhIDE0LjAuMC0xLmZjMzYpCiAgNDcgICAxNDAuOTUgZmVkb3JhOjM3 ICAgICAgICAgICAgICAgICAgICAgOiBPayAgIGdjYyAoR0NDKSAxMi4xLjEgMjAyMjA2MjggKFJl ZCBIYXQgMTIuMS4xLTMpICwgY2xhbmcgdmVyc2lvbiAxNC4wLjUgKEZlZG9yYSAxNC4wLjUtNS5m YzM3KQogIDQ4ICAgMTQwLjIzIGZlZG9yYTpyYXdoaWRlICAgICAgICAgICAgICAgIDogT2sgICBn Y2MgKEdDQykgMTIuMS4xIDIwMjIwNjI4IChSZWQgSGF0IDEyLjEuMS0zKSAsIGNsYW5nIHZlcnNp b24gMTQuMC41IChGZWRvcmEgMTQuMC41LTUuZmMzNykKICA0OSAgIDExNi45NiBnZW50b28tc3Rh Z2UzOmxhdGVzdCAgICAgICAgICA6IE9rICAgZ2NjIChHZW50b28gMTEuMi4wIHAxKSAxMS4yLjAg LCBjbGFuZyB2ZXJzaW9uIDEzLjAuMAogIDUwICAgIDMwLjg4IG1hZ2VpYTo3ICAgICAgICAgICAg ICAgICAgICAgIDogT2sgICBnY2MgKE1hZ2VpYSA4LjQuMC0xLm1nYTcpIDguNC4wICwgY2xhbmcg dmVyc2lvbiAxMy4wLjAKICA1MSAgICAxMC42MSBtYWdlaWE6OCAgICAgICAgICAgICAgICAgICAg ICA6IEZBSUwgZ2NjIHZlcnNpb24gMTAuNC4wIChNYWdlaWEgMTAuNC4wLTMubWdhOCkKICAgIElt cG9ydEVycm9yOiBObyBtb2R1bGUgbmFtZWQgc2V0dXB0b29scwogIGNwOiBjYW5ub3Qgc3RhdCAn L3RtcC9idWlsZC9wZXJmL3B5dGhvbl9leHRfYnVpbGQvbGliL3BlcmYqLnNvJzogTm8gc3VjaCBm aWxlIG9yIGRpcmVjdG9yeQogIDUyICAgMTMxLjUwIG1hbmphcm86YmFzZSAgICAgICAgICAgICAg ICAgIDogT2sgICBnY2MgKEdDQykgMTEuMS4wICwgY2xhbmcgdmVyc2lvbiAxMy4wLjAKICA1MyAg ICAgNy4xOCBvcGVubWFuZHJpdmE6NC4yICAgICAgICAgICAgICA6IEZBSUwgZ2NjIHZlcnNpb24g MTEuMi4wIDIwMjEwNzI4IChPcGVuTWFuZHJpdmEpIChHQ0MpCiAgICBJbiBmaWxlIGluY2x1ZGVk IGZyb20gYnVpbHRpbi1iZW5jaC5jOjIyOgogICAgYmVuY2gvYmVuY2guaDo2ODoxOTogZXJyb3I6 IGNvbmZsaWN0aW5nIHR5cGVzIGZvciAncHRocmVhZF9hdHRyX3NldGFmZmluaXR5X25wJzsgaGF2 ZSAnaW50KHB0aHJlYWRfYXR0cl90ICosIHNpemVfdCwgIGNwdV9zZXRfdCAqKScge2FrYSAnaW50 KHB0aHJlYWRfYXR0cl90ICosIGxvbmcgdW5zaWduZWQgaW50LCAgY3B1X3NldF90ICopJ30KICAg ICAgIDY4IHwgc3RhdGljIGlubGluZSBpbnQgcHRocmVhZF9hdHRyX3NldGFmZmluaXR5X25wKHB0 aHJlYWRfYXR0cl90ICphdHRyIF9fbWF5YmVfdW51c2VkLAogICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KICA1NCAgICAgNy4wOCBvcGVubWFu ZHJpdmE6Y29va2VyICAgICAgICAgICA6IEZBSUwgZ2NjIHZlcnNpb24gMTEuMi4wIDIwMjEwNzI4 IChPcGVuTWFuZHJpdmEpIChHQ0MpCiAgICBJbiBmaWxlIGluY2x1ZGVkIGZyb20gYnVpbHRpbi1i ZW5jaC5jOjIyOgogICAgYmVuY2gvYmVuY2guaDo2ODoxOTogZXJyb3I6IGNvbmZsaWN0aW5nIHR5 cGVzIGZvciAncHRocmVhZF9hdHRyX3NldGFmZmluaXR5X25wJzsgaGF2ZSAnaW50KHB0aHJlYWRf YXR0cl90ICosIHNpemVfdCwgIGNwdV9zZXRfdCAqKScge2FrYSAnaW50KHB0aHJlYWRfYXR0cl90 ICosIGxvbmcgdW5zaWduZWQgaW50LCAgY3B1X3NldF90ICopJ30KICAgICAgIDY4IHwgc3RhdGlj IGlubGluZSBpbnQgcHRocmVhZF9hdHRyX3NldGFmZmluaXR5X25wKHB0aHJlYWRfYXR0cl90ICph dHRyIF9fbWF5YmVfdW51c2VkLAogICAgICAgICAgfCAgICAgICAgICAgICAgICAgICBefn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn4KICA1NSAgICA0MS4yMSBvcGVuc3VzZToxNS4wICAgICAgICAg ICAgICAgICA6IE9rICAgZ2NjIChTVVNFIExpbnV4KSA3LjQuMSAyMDE5MDkwNSBbZ2NjLTctYnJh bmNoIHJldmlzaW9uIDI3NTQwN10gLCBPcGVuTWFuZHJpdmEgMTMuMC4wLTEgY2xhbmcgdmVyc2lv biAxMy4wLjAgKC9idWlsZGRpci9idWlsZC9CVUlMRC9sbHZtLXByb2plY3QtMTMuMC4wLnNyYy9j bGFuZyA2OWM5ZDkwOTRkZDljODIwYTZiYThjYWQ4OGY1OTAxNjQzZDhmMjU3KQogIDU2ICAgMTM3 Ljc4IG9wZW5zdXNlOjE1LjEgICAgICAgICAgICAgICAgIDogT2sgICBnY2MgKFNVU0UgTGludXgp IDcuNS4wICwgY2xhbmcgdmVyc2lvbiA3LjAuMSAodGFncy9SRUxFQVNFXzcwMS9maW5hbCAzNDky MzgpCiAgNTcgICAxMzEuOTcgb3BlbnN1c2U6MTUuMiAgICAgICAgICAgICAgICAgOiBPayAgIGdj YyAoU1VTRSBMaW51eCkgNy41LjAgLCBjbGFuZyB2ZXJzaW9uIDkuMC4xCiAgNTggICAxNTAuMDMg b3BlbnN1c2U6MTUuMyAgICAgICAgICAgICAgICAgOiBPayAgIGdjYyAoU1VTRSBMaW51eCkgNy41 LjAgLCBjbGFuZyB2ZXJzaW9uIDExLjAuMQogIDU5ICAgMTUyLjYzIG9wZW5zdXNlOjE1LjQgICAg ICAgICAgICAgICAgIDogT2sgICBnY2MgKFNVU0UgTGludXgpIDcuNS4wICwgY2xhbmcgdmVyc2lv biAxMy4wLjEKICA2MCAgIDE4MS4zNSBvcGVuc3VzZTp0dW1ibGV3ZWVkICAgICAgICAgICA6IE9r ICAgZ2NjIChTVVNFIExpbnV4KSAxMi4xLjEgMjAyMjA2MjkgW3JldmlzaW9uIDc4MTE2NjM5NjRh YTdlMzFjMzkzOWI4NTliYmZhMmUxNjkxOTYzOWZdICwgY2xhbmcgdmVyc2lvbiAxNC4wLjYKICA2 MSAgIDEyNC44OSBvcmFjbGVsaW51eDo4ICAgICAgICAgICAgICAgICA6IE9rICAgZ2NjIChHQ0Mp IDguNS4wIDIwMjEwNTE0IChSZWQgSGF0IDguNS4wLTQuMC4xKSAsIGNsYW5nIHZlcnNpb24gMTIu MC4xIChSZWQgSGF0IDEyLjAuMS00LjAuMS5tb2R1bGUrZWw4LjUuMCsyMDQyOCsyYjRlY2Q0NykK ICA2MiAgIDExOC45NiBvcmFjbGVsaW51eDo5ICAgICAgICAgICAgICAgICA6IE9rICAgZ2NjIChH Q0MpIDExLjIuMSAyMDIyMDEyNyAoUmVkIEhhdCAxMS4yLjEtOS40LjAuMikgLCBjbGFuZyB2ZXJz aW9uIDEzLjAuMSAoUmVkIEhhdCAxMy4wLjEtMS4wLjEuZWw5KQogIDYzICAgMTE2LjY2IHJvY2t5 bGludXg6OCAgICAgICAgICAgICAgICAgIDogT2sgICBnY2MgKEdDQykgOC41LjAgMjAyMTA1MTQg KFJlZCBIYXQgOC41LjAtMTApICwgY2xhbmcgdmVyc2lvbiAxMy4wLjEgKFJlZCBIYXQgMTMuMC4x LTIubW9kdWxlK2VsOC42LjArOTg3K2QzNmVhNmExKQogIDY0ICAgMTIxLjc3IHJvY2t5bGludXg6 OSAgICAgICAgICAgICAgICAgIDogT2sgICBnY2MgKEdDQykgMTEuMi4xIDIwMjIwMTI3IChSZWQg SGF0IDExLjIuMS05KSAsIGNsYW5nIHZlcnNpb24gMTMuMC4xIChSZWQgSGF0IDEzLjAuMS0xLmVs OSkKICA2NSAgICAyNC43NSB1YnVudHU6MTYuMDQgICAgICAgICAgICAgICAgICA6IE9rICAgZ2Nj IChVYnVudHUgNS40LjAtNnVidW50dTF+MTYuMDQuMTIpIDUuNC4wIDIwMTYwNjA5ICwgY2xhbmcg dmVyc2lvbiAxMy4wLjEgKFJlZCBIYXQgMTMuMC4xLTEuZWw5KQogIDY2ICAgIDIwLjk0IHVidW50 dToxNi4wNC14LWFybSAgICAgICAgICAgIDogT2sgICBhcm0tbGludXgtZ251ZWFiaWhmLWdjYyAo VWJ1bnR1L0xpbmFybyA1LjQuMC02dWJ1bnR1MX4xNi4wNC45KSA1LjQuMCAyMDE2MDYwOQogIDY3 ICAgIDIwLjc1IHVidW50dToxNi4wNC14LXBvd2VycGMgICAgICAgIDogT2sgICBwb3dlcnBjLWxp bnV4LWdudS1nY2MgKFVidW50dSA1LjQuMC02dWJ1bnR1MX4xNi4wNC45KSA1LjQuMCAyMDE2MDYw OQogIDY4ICAgIDIwLjk1IHVidW50dToxNi4wNC14LXBvd2VycGM2NCAgICAgIDogT2sgICBwb3dl cnBjNjQtbGludXgtZ251LWdjYyAoVWJ1bnR1L0lCTSA1LjQuMC02dWJ1bnR1MX4xNi4wNC45KSA1 LjQuMCAyMDE2MDYwOQogIDY5ICAgIDIwLjg1IHVidW50dToxNi4wNC14LXBvd2VycGM2NGVsICAg IDogT2sgICBwb3dlcnBjNjRsZS1saW51eC1nbnUtZ2NjIChVYnVudHUvSUJNIDUuNC4wLTZ1YnVu dHUxfjE2LjA0LjkpIDUuNC4wIDIwMTYwNjA5CiAgNzAgICAgOTguODkgdWJ1bnR1OjE4LjA0ICAg ICAgICAgICAgICAgICAgOiBPayAgIGdjYyAoVWJ1bnR1IDcuNS4wLTN1YnVudHUxfjE4LjA0KSA3 LjUuMCAsIGNsYW5nIHZlcnNpb24gNi4wLjAtMXVidW50dTIgKHRhZ3MvUkVMRUFTRV82MDAvZmlu YWwpCiAgNzEgICAgMjIuNDUgdWJ1bnR1OjE4LjA0LXgtYXJtICAgICAgICAgICAgOiBPayAgIGFy bS1saW51eC1nbnVlYWJpaGYtZ2NjIChVYnVudHUvTGluYXJvIDcuNS4wLTN1YnVudHUxfjE4LjA0 KSA3LjUuMAogIDcyICAgIDIyLjU1IHVidW50dToxOC4wNC14LWFybTY0ICAgICAgICAgIDogT2sg ICBhYXJjaDY0LWxpbnV4LWdudS1nY2MgKFVidW50dS9MaW5hcm8gNy41LjAtM3VidW50dTF+MTgu MDQpIDcuNS4wCiAgNzMgICAgMTguMzMgdWJ1bnR1OjE4LjA0LXgtbTY4ayAgICAgICAgICAgOiBP ayAgIG02OGstbGludXgtZ251LWdjYyAoVWJ1bnR1IDcuNS4wLTN1YnVudHUxfjE4LjA0KSA3LjUu MAogIDc0ICAgIDIxLjc1IHVidW50dToxOC4wNC14LXBvd2VycGMgICAgICAgIDogT2sgICBwb3dl cnBjLWxpbnV4LWdudS1nY2MgKFVidW50dSA3LjUuMC0zdWJ1bnR1MX4xOC4wNCkgNy41LjAKICA3 NSAgICAyMy4zNiB1YnVudHU6MTguMDQteC1wb3dlcnBjNjQgICAgICA6IE9rICAgcG93ZXJwYzY0 LWxpbnV4LWdudS1nY2MgKFVidW50dSA3LjUuMC0zdWJ1bnR1MX4xOC4wNCkgNy41LjAKICA3NiAg ICAyMy4zNiB1YnVudHU6MTguMDQteC1wb3dlcnBjNjRlbCAgICA6IE9rICAgcG93ZXJwYzY0bGUt bGludXgtZ251LWdjYyAoVWJ1bnR1IDcuNS4wLTN1YnVudHUxfjE4LjA0KSA3LjUuMAogIDc3ICAg MTEwLjA2IHVidW50dToxOC4wNC14LXJpc2N2NjQgICAgICAgIDogT2sgICByaXNjdjY0LWxpbnV4 LWdudS1nY2MgKFVidW50dSA3LjUuMC0zdWJ1bnR1MX4xOC4wNCkgNy41LjAKICA3OCAgICAyMC41 NSB1YnVudHU6MTguMDQteC1zMzkwICAgICAgICAgICA6IE9rICAgczM5MHgtbGludXgtZ251LWdj YyAoVWJ1bnR1IDcuNS4wLTN1YnVudHUxfjE4LjA0KSA3LjUuMAogIDc5ICAgIDIxLjU2IHVidW50 dToxOC4wNC14LXNoNCAgICAgICAgICAgIDogT2sgICBzaDQtbGludXgtZ251LWdjYyAoVWJ1bnR1 IDcuNS4wLTN1YnVudHUxfjE4LjA0KSA3LjUuMAogIDgwICAgIDIwLjE0IHVidW50dToxOC4wNC14 LXNwYXJjNjQgICAgICAgIDogT2sgICBzcGFyYzY0LWxpbnV4LWdudS1nY2MgKFVidW50dSA3LjUu MC0zdWJ1bnR1MX4xOC4wNCkgNy41LjAKICA4MSAgICAzMC4wOCB1YnVudHU6MjAuMDQgICAgICAg ICAgICAgICAgICA6IE9rICAgZ2NjIChVYnVudHUgOS40LjAtMXVidW50dTF+MjAuMDQuMSkgOS40 LjAKICA4MiAgICAyNC4zNyB1YnVudHU6MjAuMDQteC1wb3dlcnBjNjRlbCAgICA6IE9rICAgcG93 ZXJwYzY0bGUtbGludXgtZ251LWdjYyAoVWJ1bnR1IDEwLjMuMC0xdWJ1bnR1MX4yMC4wNCkgMTAu My4wCiAgODMgICAxMjEuMjYgdWJ1bnR1OjIxLjA0ICAgICAgICAgICAgICAgICAgOiBPayAgIGdj YyAoVWJ1bnR1IDEwLjMuMC0xdWJ1bnR1MSkgMTAuMy4wICwgVWJ1bnR1IGNsYW5nIHZlcnNpb24g MTIuMC4wLTN1YnVudHUxfjIxLjA0LjIKICA4NCAgIDEyMy4zNyB1YnVudHU6MjEuMTAgICAgICAg ICAgICAgICAgICA6IE9rICAgZ2NjIChVYnVudHUgMTEuMi4wLTd1YnVudHUyKSAxMS4yLjAgLCBV YnVudHUgY2xhbmcgdmVyc2lvbiAxMy4wLjAtMgogIDg1ICAgMTQxLjM0IHVidW50dToyMi4wNCAg ICAgICAgICAgICAgICAgIDogT2sgICBnY2MgKFVidW50dSAxMS4yLjAtMTl1YnVudHUxKSAxMS4y LjAgLCBVYnVudHUgY2xhbmcgdmVyc2lvbiAxNC4wLjAtMXVidW50dTEKICA4NiAgIDEzMS4zMyB1 YnVudHU6MjIuMTAgICAgICAgICAgICAgICAgICA6IE9rICAgZ2NjIChVYnVudHUgMTEuMy4wLTV1 YnVudHUxKSAxMS4zLjAgLCBVYnVudHUgY2xhbmcgdmVyc2lvbiAxNC4wLjYtMgpCVUlMRF9UQVJC QUxMX0hFQUQ9ZTc1NGRkN2U4YmU4NmUxYWRjOWQ0ZDEzZmIxMTA1Yjg0OGMxMTc1Mgo4NyA2OTc2 LjQ3CgpyZWFsCTExN201NS4wNzdzCnVzZXIJMW0xOC42NTlzCnN5cwkwbTUzLjEzOXMKW3BlcmZi dWlsZGVyQGZpdmUgfl0kCgoKIAo+IFRoYW5rcyBhIGxvdCBmb3IgY29udGludW91cyB0cmFja2lu ZyB0aGlzIHNlcmllcy4KCllvdSdyZSB3ZWxjb21lLgoKLSBBcm5hbGRvCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxp bmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3Rz LmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==