From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f170.google.com (mail-pf1-f170.google.com [209.85.210.170]) (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 7E7DA1D540; Tue, 19 Mar 2024 04:19:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.170 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710821945; cv=none; b=WkOFD5zH5wUTpKtFpTKDIvF1djCTbIoeWSbBVgN5/p2zrKKA2jeFdDCdmVKImgih3N5qmrixflUQpao8wHEYh5o1Tca+hF9EmgmQ2uRLb8QwSUzAv3NPj8gcC1mXQdUxdMy/pIf5C0jxm78zxR1RmuNaW8tcp15j5BdgtFO9yIM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710821945; c=relaxed/simple; bh=exHMqg7ickwwb5Rk29OIXejwQmnRJaOjOa7LfvyI65M=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=SqomxxDPgU2JTT6jzBkb3wpZA/dsn+urdM6UrgeGjvdIYye8RUE4o4sTAttK0WPbHzAzjYHIY5nIX7Yg8lXMrMVlvDv7vYLTtPGZcLjSdukptb95QfH5OIp81h0fE9st90vKQx4QXGG81GtKMubtP+wpzlXmb10PcrSB3dhL3TU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org; spf=pass smtp.mailfrom=gmail.com; arc=none smtp.client-ip=209.85.210.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-pf1-f170.google.com with SMTP id d2e1a72fcca58-6e6ca2ac094so4629046b3a.0; Mon, 18 Mar 2024 21:19:02 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710821942; x=1711426742; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=jgW4DmXI0kNiY/rl9Qkr5feefQ8+Vq38v1bD2ufKIVI=; b=kHSALl5bI+Qte9CJczvwjqepgT/l6/yA4iuqaGq4dx7QRvWcvjBTaTTp6MZCiHzZkf EFhnjxZaTLp6M5lJClhFp28RRt+1IZuNlYYMBKiCTxB1tvPI+VR4YwLE56GFleXdJ9mA t3EiFUw7O93NJIsRggqmI9sz/hfWtOWRasej5gv9EYRqSoq2hDy7ZMSZh/tlisD0cVkN YPGlqy4jMpLVghRRLqGzDHfiICkcVCamWwsCbWzd+vBHdM5G4MKPu/N1wZav6FXcCjq0 o+X52mX9R5NfQiWR2vQ/6/YU4UHhAxyV7gLNHoNzZCWNtE6j1LvjdrbrujOIc97Nvd06 WKvw== X-Forwarded-Encrypted: i=1; AJvYcCUvx+pzIZJkYgiBDGjP6MXZV+/5rW8uTaxFWbOA2K/YkqHIKzqo/wr+5jXpZWWCGWJdNvpwXuz2pSEXUSkcgXTR3llftaXEWxR7IikjQitwdmCFfYPkSxvhGiwlcJlsIvNeVg/CYyv85SL/Pcb8ugU59GS0/tFRd0CtkE7iUaz2ttkzyw== X-Gm-Message-State: AOJu0YwROynF9mB7iZlfnoUJwFi/h5yzQBijbS1ocei/HGL33vs7UCTU mO8E+OSB/M/aRSiWFYOZC1n3+OovSkntKDEqalqfp2W1ftq92uVB/1fwgpJi6ALfJVVyOB8mlG5 fpxYCCOlSDCIsnmCbpAKU0H2OuqI= X-Google-Smtp-Source: AGHT+IFXLjhVkx7WgKBhbzRCSxQWGWWgaBadHRVGM50RAHgFRsU1xXuP336jq2Ijh9SBYvYnOKxkauqh2VsoLKHG8yA= X-Received: by 2002:a05:6a21:3390:b0:1a3:5465:f98 with SMTP id yy16-20020a056a21339000b001a354650f98mr1713631pzb.44.1710821941646; Mon, 18 Mar 2024 21:19:01 -0700 (PDT) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <20240202234057.2085863-1-irogers@google.com> In-Reply-To: From: Namhyung Kim Date: Mon, 18 Mar 2024 21:18:50 -0700 Message-ID: Subject: Re: [PATCH v3 0/8] Clean up libperf cpumap's empty function To: Arnaldo Carvalho de Melo Cc: Ian Rogers , Adrian Hunter , James Clark , Peter Zijlstra , Ingo Molnar , Mark Rutland , Alexander Shishkin , Jiri Olsa , Suzuki K Poulose , Mike Leach , John Garry , Will Deacon , Thomas Gleixner , Darren Hart , Davidlohr Bueso , =?UTF-8?Q?Andr=C3=A9_Almeida?= , Kan Liang , K Prateek Nayak , Sean Christopherson , Paolo Bonzini , Kajol Jain , Athira Rajeev , Andrew Jones , Alexandre Ghiti , Atish Patra , "Steinar H. Gunderson" , Yang Jihong , Yang Li , Changbin Du , Sandipan Das , Ravi Bangoria , Paran Lee , Nick Desaulniers , Huacai Chen , Yanteng Si , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, bpf@vger.kernel.org, Leo Yan Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Mar 18, 2024 at 2:37=E2=80=AFPM Arnaldo Carvalho de Melo wrote: > > On Thu, Mar 07, 2024 at 03:47:00PM -0800, Namhyung Kim wrote: > > Hi Ian, > > > > Sorry for the late reply. > > > > On Fri, Feb 16, 2024 at 5:04=E2=80=AFPM Namhyung Kim wrote: > > > > > > On Wed, Feb 14, 2024 at 2:03=E2=80=AFPM Ian Rogers wrote: > > > > > > > > On Fri, Feb 2, 2024 at 3:41=E2=80=AFPM Ian Rogers wrote: > > > > > > > > > > Rename and clean up the use of libperf CPU map functions particul= arly > > > > > focussing on perf_cpu_map__empty that may return true for maps > > > > > containing CPUs but also with an "any CPU"/dummy value. > > > > > > > > > > perf_cpu_map__nr is also troubling in that iterating an empty CPU= map > > > > > will yield the "any CPU"/dummy value. Reduce the appearance of so= me > > > > > calls to this by using the perf_cpu_map__for_each_cpu macro. > > > > > > > > > > v3: Address handling of "any" is arm-spe/cs-etm patch. > > > > > v2: 6 patches were merged by Arnaldo. New patch added ensure empt= y > > > > > maps are allocated as NULL (suggested by James Clark). Hopefu= lly a > > > > > fix to "perf arm-spe/cs-etm: Directly iterate CPU maps". > > > > > > > > > > Ian Rogers (8): > > > > > libperf cpumap: Add any, empty and min helpers > > > > > libperf cpumap: Ensure empty cpumap is NULL from alloc > > > > > perf arm-spe/cs-etm: Directly iterate CPU maps > > > > > perf intel-pt/intel-bts: Switch perf_cpu_map__has_any_cpu_or_is= _empty > > > > > use > > > > > perf cpumap: Clean up use of perf_cpu_map__has_any_cpu_or_is_em= pty > > > > > perf arm64 header: Remove unnecessary CPU map get and put > > > > > perf stat: Remove duplicate cpus_map_matched function > > > > > perf cpumap: Use perf_cpu_map__for_each_cpu when possible > > > > > > > > Ping. Thanks, > > > > Ian > > > > Adrian and James, are you ok with this now? > > > I think James is fine now and the Intel-pt part seems straight-forward > > so I'd like to merge this change. Please tell me if you have any conce= rns. > > Namhyung, > > I noticed this hasn't been merged and applies cleanly, so I'm > adding it to perf-tools-next, from your comment above can I take it as > an Acked-by or even Reviewed-by? Oh, I thought I did it already, but I probably missed pushing it. :( Sure you can add it, I'll do that for the sake of b4. Acked-by: Namhyung Kim Thanks, Namhyung 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 ACD5EC54E60 for ; Tue, 19 Mar 2024 04:19:21 +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:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=JqdyhcRv+F2n5MR4zGr/cW5RU3RlpAmdwwWbRQiFxRw=; b=oZ8DPEAXErmjCf ttVVHsykasE9O/aaK4uYpJqa/bu7akusq4xbv/Dihd7txu7hgSDEfJEe4mVmv+En+gRtE0mrk0lHS Fls/h/qOeKzSdnD3RWWap4gdO33u1R4ykudAeISL47pr2AiV+b+vO+d/PoOmBd1f8fiRWdJbDSJ17 jEwWFULgPbFE02YvmEvsJiog6w7Jyc90rCzSB6XQDlCPbjQ4TkBSl44nHrIXGEhqK6MtfZ7k2zUwr ORW3asj0tXGcpQ4IArsjJrz0mtX1Hbc1N2bWys8BuK3JxFJ1ImWLVLCKlMds+Hp9bUug4Zfwdf/xW K6YLcsd+16+nvvXe1Gyw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rmQwR-0000000BBpS-3EeI; Tue, 19 Mar 2024 04:19:11 +0000 Received: from mail-pf1-f174.google.com ([209.85.210.174]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rmQwO-0000000BBnr-2FVv for linux-arm-kernel@lists.infradead.org; Tue, 19 Mar 2024 04:19:10 +0000 Received: by mail-pf1-f174.google.com with SMTP id d2e1a72fcca58-6e6ca2ac094so4629048b3a.0 for ; Mon, 18 Mar 2024 21:19:02 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710821942; x=1711426742; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=jgW4DmXI0kNiY/rl9Qkr5feefQ8+Vq38v1bD2ufKIVI=; b=pmeREE33MpzNJrm/ZuyecDezOypn1RrIfxle5Qvg7TqsHtT/LyrgJzGvlcjSuYcksp Va18cTzYMy3eCbKhWff67qQFdCaolxSs+LJYanwf3Kx3VwVx058GIn6zXkYYKwOl879J qsngQBlhA5PzjDZKPrfRpPsxWlrmnbJnoGq0x/H4rjEMKkFQGsa7leBQuysQyuMJwWSF 8IV+T2PVPzLOuZzJORHeBTk66jiA6p6StLstsyV6XOmY9YFOGWuyHFzECUaJ0RUQKC+Y o7UPwZaQVvP/c5u4g/ZVgWPIwsBHnc1IUad40MknZ/yN2cXwE7L5AWPBfQ94ZthCgMZj l9kA== X-Forwarded-Encrypted: i=1; AJvYcCWPjdnN+8oMwi5e92QqJ/BCQ0Q2OX+cvCZxNw1u6Tx/W6uZfjICpiucRCJwnr+kdFnXU6skX56JGnq7qIm/V+/uoUEl9rw+S2m/kfcvNcZJTjIdbKE= X-Gm-Message-State: AOJu0YyBz9ET20hha1o42oIKGefyTGruOY6X4KASncGRBa6le8+Z8Fxv 88B5EKP3vYsNRCknuEB6Ki7wf0dPIhsjBspE0jfClyhSsM5zCW161rlyRsBANW4NYv9dvYyayMa C0LHokYUpNjUFVlu2p5uU6Uu2GPA= X-Google-Smtp-Source: AGHT+IFXLjhVkx7WgKBhbzRCSxQWGWWgaBadHRVGM50RAHgFRsU1xXuP336jq2Ijh9SBYvYnOKxkauqh2VsoLKHG8yA= X-Received: by 2002:a05:6a21:3390:b0:1a3:5465:f98 with SMTP id yy16-20020a056a21339000b001a354650f98mr1713631pzb.44.1710821941646; Mon, 18 Mar 2024 21:19:01 -0700 (PDT) MIME-Version: 1.0 References: <20240202234057.2085863-1-irogers@google.com> In-Reply-To: From: Namhyung Kim Date: Mon, 18 Mar 2024 21:18:50 -0700 Message-ID: Subject: Re: [PATCH v3 0/8] Clean up libperf cpumap's empty function To: Arnaldo Carvalho de Melo Cc: Ian Rogers , Adrian Hunter , James Clark , Peter Zijlstra , Ingo Molnar , Mark Rutland , Alexander Shishkin , Jiri Olsa , Suzuki K Poulose , Mike Leach , John Garry , Will Deacon , Thomas Gleixner , Darren Hart , Davidlohr Bueso , =?UTF-8?Q?Andr=C3=A9_Almeida?= , Kan Liang , K Prateek Nayak , Sean Christopherson , Paolo Bonzini , Kajol Jain , Athira Rajeev , Andrew Jones , Alexandre Ghiti , Atish Patra , "Steinar H. Gunderson" , Yang Jihong , Yang Li , Changbin Du , Sandipan Das , Ravi Bangoria , Paran Lee , Nick Desaulniers , Huacai Chen , Yanteng Si , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, bpf@vger.kernel.org, Leo Yan X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240318_211908_607092_DC1DFBF7 X-CRM114-Status: GOOD ( 28.17 ) 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 T24gTW9uLCBNYXIgMTgsIDIwMjQgYXQgMjozN+KAr1BNIEFybmFsZG8gQ2FydmFsaG8gZGUgTWVs bwo8YWNtZUBrZXJuZWwub3JnPiB3cm90ZToKPgo+IE9uIFRodSwgTWFyIDA3LCAyMDI0IGF0IDAz OjQ3OjAwUE0gLTA4MDAsIE5hbWh5dW5nIEtpbSB3cm90ZToKPiA+IEhpIElhbiwKPiA+Cj4gPiBT b3JyeSBmb3IgdGhlIGxhdGUgcmVwbHkuCj4gPgo+ID4gT24gRnJpLCBGZWIgMTYsIDIwMjQgYXQg NTowNOKAr1BNIE5hbWh5dW5nIEtpbSA8bmFtaHl1bmdAa2VybmVsLm9yZz4gd3JvdGU6Cj4gPiA+ Cj4gPiA+IE9uIFdlZCwgRmViIDE0LCAyMDI0IGF0IDI6MDPigK9QTSBJYW4gUm9nZXJzIDxpcm9n ZXJzQGdvb2dsZS5jb20+IHdyb3RlOgo+ID4gPiA+Cj4gPiA+ID4gT24gRnJpLCBGZWIgMiwgMjAy NCBhdCAzOjQx4oCvUE0gSWFuIFJvZ2VycyA8aXJvZ2Vyc0Bnb29nbGUuY29tPiB3cm90ZToKPiA+ ID4gPiA+Cj4gPiA+ID4gPiBSZW5hbWUgYW5kIGNsZWFuIHVwIHRoZSB1c2Ugb2YgbGlicGVyZiBD UFUgbWFwIGZ1bmN0aW9ucyBwYXJ0aWN1bGFybHkKPiA+ID4gPiA+IGZvY3Vzc2luZyBvbiBwZXJm X2NwdV9tYXBfX2VtcHR5IHRoYXQgbWF5IHJldHVybiB0cnVlIGZvciBtYXBzCj4gPiA+ID4gPiBj b250YWluaW5nIENQVXMgYnV0IGFsc28gd2l0aCBhbiAiYW55IENQVSIvZHVtbXkgdmFsdWUuCj4g PiA+ID4gPgo+ID4gPiA+ID4gcGVyZl9jcHVfbWFwX19uciBpcyBhbHNvIHRyb3VibGluZyBpbiB0 aGF0IGl0ZXJhdGluZyBhbiBlbXB0eSBDUFUgbWFwCj4gPiA+ID4gPiB3aWxsIHlpZWxkIHRoZSAi YW55IENQVSIvZHVtbXkgdmFsdWUuIFJlZHVjZSB0aGUgYXBwZWFyYW5jZSBvZiBzb21lCj4gPiA+ ID4gPiBjYWxscyB0byB0aGlzIGJ5IHVzaW5nIHRoZSBwZXJmX2NwdV9tYXBfX2Zvcl9lYWNoX2Nw dSBtYWNyby4KPiA+ID4gPiA+Cj4gPiA+ID4gPiB2MzogQWRkcmVzcyBoYW5kbGluZyBvZiAiYW55 IiBpcyBhcm0tc3BlL2NzLWV0bSBwYXRjaC4KPiA+ID4gPiA+IHYyOiA2IHBhdGNoZXMgd2VyZSBt ZXJnZWQgYnkgQXJuYWxkby4gTmV3IHBhdGNoIGFkZGVkIGVuc3VyZSBlbXB0eQo+ID4gPiA+ID4g ICAgIG1hcHMgYXJlIGFsbG9jYXRlZCBhcyBOVUxMIChzdWdnZXN0ZWQgYnkgSmFtZXMgQ2xhcmsp LiBIb3BlZnVsbHkgYQo+ID4gPiA+ID4gICAgIGZpeCB0byAicGVyZiBhcm0tc3BlL2NzLWV0bTog RGlyZWN0bHkgaXRlcmF0ZSBDUFUgbWFwcyIuCj4gPiA+ID4gPgo+ID4gPiA+ID4gSWFuIFJvZ2Vy cyAoOCk6Cj4gPiA+ID4gPiAgIGxpYnBlcmYgY3B1bWFwOiBBZGQgYW55LCBlbXB0eSBhbmQgbWlu IGhlbHBlcnMKPiA+ID4gPiA+ICAgbGlicGVyZiBjcHVtYXA6IEVuc3VyZSBlbXB0eSBjcHVtYXAg aXMgTlVMTCBmcm9tIGFsbG9jCj4gPiA+ID4gPiAgIHBlcmYgYXJtLXNwZS9jcy1ldG06IERpcmVj dGx5IGl0ZXJhdGUgQ1BVIG1hcHMKPiA+ID4gPiA+ICAgcGVyZiBpbnRlbC1wdC9pbnRlbC1idHM6 IFN3aXRjaCBwZXJmX2NwdV9tYXBfX2hhc19hbnlfY3B1X29yX2lzX2VtcHR5Cj4gPiA+ID4gPiAg ICAgdXNlCj4gPiA+ID4gPiAgIHBlcmYgY3B1bWFwOiBDbGVhbiB1cCB1c2Ugb2YgcGVyZl9jcHVf bWFwX19oYXNfYW55X2NwdV9vcl9pc19lbXB0eQo+ID4gPiA+ID4gICBwZXJmIGFybTY0IGhlYWRl cjogUmVtb3ZlIHVubmVjZXNzYXJ5IENQVSBtYXAgZ2V0IGFuZCBwdXQKPiA+ID4gPiA+ICAgcGVy ZiBzdGF0OiBSZW1vdmUgZHVwbGljYXRlIGNwdXNfbWFwX21hdGNoZWQgZnVuY3Rpb24KPiA+ID4g PiA+ICAgcGVyZiBjcHVtYXA6IFVzZSBwZXJmX2NwdV9tYXBfX2Zvcl9lYWNoX2NwdSB3aGVuIHBv c3NpYmxlCj4gPiA+ID4KPiA+ID4gPiBQaW5nLiBUaGFua3MsCj4gPiA+ID4gSWFuCj4KPiA+ID4g QWRyaWFuIGFuZCBKYW1lcywgYXJlIHlvdSBvayB3aXRoIHRoaXMgbm93Pwo+Cj4gPiBJIHRoaW5r IEphbWVzIGlzIGZpbmUgbm93IGFuZCB0aGUgSW50ZWwtcHQgcGFydCBzZWVtcyBzdHJhaWdodC1m b3J3YXJkCj4gPiBzbyBJJ2QgbGlrZSB0byBtZXJnZSB0aGlzIGNoYW5nZS4gIFBsZWFzZSB0ZWxs IG1lIGlmIHlvdSBoYXZlIGFueSBjb25jZXJucy4KPgo+IE5hbWh5dW5nLAo+Cj4gICAgICAgICBJ IG5vdGljZWQgdGhpcyBoYXNuJ3QgYmVlbiBtZXJnZWQgYW5kIGFwcGxpZXMgY2xlYW5seSwgc28g SSdtCj4gYWRkaW5nIGl0IHRvIHBlcmYtdG9vbHMtbmV4dCwgZnJvbSB5b3VyIGNvbW1lbnQgYWJv dmUgY2FuIEkgdGFrZSBpdCBhcwo+IGFuIEFja2VkLWJ5IG9yIGV2ZW4gUmV2aWV3ZWQtYnk/CgpP aCwgSSB0aG91Z2h0IEkgZGlkIGl0IGFscmVhZHksIGJ1dCBJIHByb2JhYmx5IG1pc3NlZCBwdXNo aW5nIGl0LiA6KAoKU3VyZSB5b3UgY2FuIGFkZCBpdCwgIEknbGwgZG8gdGhhdCBmb3IgdGhlIHNh a2Ugb2YgYjQuCgpBY2tlZC1ieTogTmFtaHl1bmcgS2ltIDxuYW1oeXVuZ0BrZXJuZWwub3JnPgoK VGhhbmtzLApOYW1oeXVuZwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBs aXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlz dGluZm8vbGludXgtYXJtLWtlcm5lbAo=