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 X-Spam-Level: X-Spam-Status: No, score=-2.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3C296C433ED for ; Wed, 12 May 2021 09:18:37 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id F310761177 for ; Wed, 12 May 2021 09:18:36 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230118AbhELJTn (ORCPT ); Wed, 12 May 2021 05:19:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48476 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229968AbhELJTm (ORCPT ); Wed, 12 May 2021 05:19:42 -0400 Received: from mail-ot1-x32e.google.com (mail-ot1-x32e.google.com [IPv6:2607:f8b0:4864:20::32e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 165F3C061574 for ; Wed, 12 May 2021 02:18:35 -0700 (PDT) Received: by mail-ot1-x32e.google.com with SMTP id 69-20020a9d0a4b0000b02902ed42f141e1so9803113otg.2 for ; Wed, 12 May 2021 02:18:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=ilHpinXfJbBO00ILl8M3cL9co4ZLrs2Vn6MnmXJH7Ac=; b=OpYb3E4eC+El3f8COSWswjpzDbG74EZU9suX/LZaPOWAmGPxMlcl3qy6UBzSRHICf0 Y2WOguxoF8nNew/YOA4M0/WLN9WRtZxPXf8zBnnPNinvB9EQMoUxK07ivCaTWzBSuTNU Ut+yFn5yWNKnSWelekyNqx7tQ5pNtFVtjDmpN9jM87iVMLscahq2jLc6DIF4Y2Bw1WeY qsN8283JRlxYbihv+OjKa11ci0flV/XdvTleu5y/xpp5fC3c+mkFS0aZV+N4Q+67ej+m opSNyUzGiK1TMy+RtfXyM5QI4RDfECZTHlQciDgPdvNuKqoi8XfDWzfKRhMG77yBIIIr t4Hw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=ilHpinXfJbBO00ILl8M3cL9co4ZLrs2Vn6MnmXJH7Ac=; b=TklagE2hRjtxMbSGtAjaBcLxLO5QXWLBiJDFhpF4Hc15va6VwBtTLLqpieoBOhRGE8 hD4qLVBOEG98h4/srgzFY/0X4N5GalQJfyodlNkV0V7XEKa4kBNZVwsUvUftTMdZreF4 2YIOnidwG3FhFqVAiiDAKJcv7tMMEQ2+AsTybGarQCZBIagHfHUK6144eDL+19yy8kA5 vgjWc3Pouj5Q8M0vwH+yuoKaHb6LrG1QdXOaCyoxL8tBzPVXux/hMWywdM/L5S0NMF91 G67FACzZ/RMX3u8YWygQHJxjDJPRLzct90ahQ6PfXTcmQNXN+291gQ/B9iR03sekQsKu ialw== X-Gm-Message-State: AOAM531V0RZx8vXkC+mTrB6BbPQ8AfXSv84HnTjVgBmqVhu3SP/tnt4F GdZz9Xlf+gmTexv9qXw2QcGaHTv19Hi4nylHPwRbdFQ9UtPZbw== X-Google-Smtp-Source: ABdhPJxL5e7JMKGEAMi+g54pI1yxPu1G+9tSMQnIgWLQZ0pKp4sbyHdu8tnX79kJNw/uYM4GtFc0VbCLWkaoTi0R2lE= X-Received: by 2002:a9d:e88:: with SMTP id 8mr28771453otj.239.1620811114262; Wed, 12 May 2021 02:18:34 -0700 (PDT) MIME-Version: 1.0 References: <20210511220014.1945519-1-roman.beranek@prusa3d.com> <20210512044133.6yfwyluzdx6yfh4c@pengutronix.de> In-Reply-To: <20210512044133.6yfwyluzdx6yfh4c@pengutronix.de> From: Emil Lenngren Date: Wed, 12 May 2021 11:18:24 +0200 Message-ID: Subject: Re: [PATCH] pwm: sun4i: Avoid waiting until the next period To: =?UTF-8?Q?Uwe_Kleine=2DK=C3=B6nig?= Cc: Roman Beranek , Thierry Reding , Lee Jones , Maxime Ripard , Chen-Yu Tsai , Jernej Skrabec , linux-pwm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-sunxi@googlegroups.com, Roman Beranek Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-pwm@vger.kernel.org Hi Uwe, Den ons 12 maj 2021 kl 06:41 skrev Uwe Kleine-K=C3=B6nig : > > Hello Emil, > > On Wed, May 12, 2021 at 02:55:26AM +0200, Emil Lenngren wrote: > > Well that's one way of "solving it" ;) > > > > But on what hardware do you really need to wait until one full pulse > > cycle ends, before a disable command takes effect? > > > > On the hardware I've tested on (GR8 and V3s), it's enough to wait at > > most two clock cycles in order for it to take effect before we can > > close the gate. And with clock cycle I mean 24 MHz divided by the > > prescaler. With prescaler 1, that's 84 nanoseconds. By closing the > > gate when the pwm should be disabled, I guess we could save some > > nanoampere or microampere (is this important?) > > If I understood correctly you really have to wait longer to achieve that > the output is inactive in the disabled state. Do you talk about the same > thing? Exactly, i.e. after writing 0 to the EN bit, we don't have to wait until the current period ends before we can observe that the output signal goes to the inactive state. Simple test: 1. Set pwm interval to a long time like 2 seconds, and duty to 50%. 2. Enable clock gating. 3. Enable the pwm by writing 1 to the EN bit. 4. Observe the LED blink once per second. 5. Now at a random time write 0 to the EN bit in order to disable the pwm. Don't turn off the clock gating. 6. If you just look with the eye it appears the LED turns off immediately, regardless of when in the pulse cycle we disabled it. Just tested the above using "devmem" on a V3s. By using a large prescaler and testing some different prescalers, I've concluded that it takes at least 1 and at most 2 clock cycles before we can safely turn off the gate and be certain that the output pin has changed to disabled. It would be good if people having other hardware could confirm this is correct there as well. Please take a look at some previous material I wrote: https://lkml.org/lkml/2020/3/17/1158 https://linux-sunxi.org/PWM_Controller_Register_Guide (Observed behaviour on GR8 from NextThing) https://pastebin.com/GWrhWzPJ /Emil 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 X-Spam-Level: X-Spam-Status: No, score=-0.7 required=3.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5FD3FC433B4 for ; Wed, 12 May 2021 09:21:06 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id B4D7261166 for ; Wed, 12 May 2021 09:21:05 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B4D7261166 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; 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=qfYWW9t7v/qm56CJKQ874hvYXWqPuHo18mo8SCh9eLo=; b=dBgNvQxP5a9e1RNduB/GT9lYf uZ8U9ifTNoFnZB+NGOfZtCesT1dK8pSGMFm2K5j6MsW6ZFm/dQj8vZ+CttkM/RdtBdo1gOBM+VK8z E24ssEx6W7u0f22fTsN1P2dsuIT2dkmDFV7yHJNEDmTpGYHdzTZ+CuYixAoqVIFcR/mz0KMrscu/o DmjBFnOUCCMke2R97+T6jO1MNMASlkgpE4tnBOFSciZL7ZNh6NfIRnvo/mUe2wQBsp1tipo4NK7Vw f4Y+TmB30tVMgNkNNr/XQfdzPJ2zlGPLtoCAcWKZjk8B/8unwCpZJJpzi0wnBrJVJ6yZI0B92JUfh s6GXT7c5A==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lgl0x-002Pkn-9Y; Wed, 12 May 2021 09:18:47 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lgl0u-002Pkc-Tq for linux-arm-kernel@desiato.infradead.org; Wed, 12 May 2021 09:18:45 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: Content-Type:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References: MIME-Version:Sender:Reply-To:Content-ID:Content-Description; bh=ilHpinXfJbBO00ILl8M3cL9co4ZLrs2Vn6MnmXJH7Ac=; b=0L3CL2GRqQEnseCpS2JzVDGCeE 9yUgeEeYYH/Wsibwzmmw0Cr9gfs/IgxUqCfudAuJF0kZlzs9RrtFMIDgI9KuBov14V7U+8BxmEWnW TbMIwtNb0ce/kqh9RgjZq3jLrG3si2AUVcn25TIq/x7EGEd9ctZzul+NzyKlTklIWTDCEWgpth2u5 38/WhkR0LIODADGMSbKAib2QOXlDh1Q1MCgLP2+BehUwqXjkea7yXvUMvdRS7p1HkC0vjal9Wzo3V AxKi3xkorZNnitRiar3cFUMEBUeOsEKdDiGBUkt4580IekFyQsjG1AoN4M5bWYTTIqeGGYfxQc+tt cGkHHBpA==; Received: from mail-ot1-x331.google.com ([2607:f8b0:4864:20::331]) by bombadil.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lgl0s-00AFEE-3S for linux-arm-kernel@lists.infradead.org; Wed, 12 May 2021 09:18:43 +0000 Received: by mail-ot1-x331.google.com with SMTP id u19-20020a0568302493b02902d61b0d29adso19211875ots.10 for ; Wed, 12 May 2021 02:18:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=ilHpinXfJbBO00ILl8M3cL9co4ZLrs2Vn6MnmXJH7Ac=; b=OpYb3E4eC+El3f8COSWswjpzDbG74EZU9suX/LZaPOWAmGPxMlcl3qy6UBzSRHICf0 Y2WOguxoF8nNew/YOA4M0/WLN9WRtZxPXf8zBnnPNinvB9EQMoUxK07ivCaTWzBSuTNU Ut+yFn5yWNKnSWelekyNqx7tQ5pNtFVtjDmpN9jM87iVMLscahq2jLc6DIF4Y2Bw1WeY qsN8283JRlxYbihv+OjKa11ci0flV/XdvTleu5y/xpp5fC3c+mkFS0aZV+N4Q+67ej+m opSNyUzGiK1TMy+RtfXyM5QI4RDfECZTHlQciDgPdvNuKqoi8XfDWzfKRhMG77yBIIIr t4Hw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=ilHpinXfJbBO00ILl8M3cL9co4ZLrs2Vn6MnmXJH7Ac=; b=q4Qmb/OFzoY9W18srNedIuy3YchOLVVRFphDUG1K8H3qvRK5nc49w5In7Ag5KVuNAn 9fHMJmev4nqC/st5inoQiWCkNFbogLDGlTbS3uNyn7xg/egGnLXlypGvlMbA2fMooiCS jJ+4t2Kvy7aY8szLphU1+KAv42cG9KKG6pDw711qTpEkN1wtaNtHNlEzjtkxQ5PFTARq A7qp8kqcamkRARDerroznrvLH2BQ0aX34XxA6d3PgW0mdy0ri0eSQSvwA7hVsZJuuBBj uvVUzKd23gQ7I2kmqc3U+vK19Nsoy8ywJ43GKmS/caHfBeHLrhYexGom6FrLWFUEdvEd HJGA== X-Gm-Message-State: AOAM533PPScDLUYEr+fp8E66ve4wY0AmOthKItElCbRhXuiuyfTDgsOe gWTu8j69givUfnu93aJXc3BYpQ36pIFRvaF/WJc= X-Google-Smtp-Source: ABdhPJxL5e7JMKGEAMi+g54pI1yxPu1G+9tSMQnIgWLQZ0pKp4sbyHdu8tnX79kJNw/uYM4GtFc0VbCLWkaoTi0R2lE= X-Received: by 2002:a9d:e88:: with SMTP id 8mr28771453otj.239.1620811114262; Wed, 12 May 2021 02:18:34 -0700 (PDT) MIME-Version: 1.0 References: <20210511220014.1945519-1-roman.beranek@prusa3d.com> <20210512044133.6yfwyluzdx6yfh4c@pengutronix.de> In-Reply-To: <20210512044133.6yfwyluzdx6yfh4c@pengutronix.de> From: Emil Lenngren Date: Wed, 12 May 2021 11:18:24 +0200 Message-ID: Subject: Re: [PATCH] pwm: sun4i: Avoid waiting until the next period To: =?UTF-8?Q?Uwe_Kleine=2DK=C3=B6nig?= Cc: Roman Beranek , Thierry Reding , Lee Jones , Maxime Ripard , Chen-Yu Tsai , Jernej Skrabec , linux-pwm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-sunxi@googlegroups.com, Roman Beranek X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210512_021842_182443_AEAB9887 X-CRM114-Status: GOOD ( 23.95 ) 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 SGkgVXdlLAoKRGVuIG9ucyAxMiBtYWogMjAyMSBrbCAwNjo0MSBza3JldiBVd2UgS2xlaW5lLUvD tm5pZwo8dS5rbGVpbmUta29lbmlnQHBlbmd1dHJvbml4LmRlPjoKPgo+IEhlbGxvIEVtaWwsCj4K PiBPbiBXZWQsIE1heSAxMiwgMjAyMSBhdCAwMjo1NToyNkFNICswMjAwLCBFbWlsIExlbm5ncmVu IHdyb3RlOgo+ID4gV2VsbCB0aGF0J3Mgb25lIHdheSBvZiAic29sdmluZyBpdCIgOykKPiA+Cj4g PiBCdXQgb24gd2hhdCBoYXJkd2FyZSBkbyB5b3UgcmVhbGx5IG5lZWQgdG8gd2FpdCB1bnRpbCBv bmUgZnVsbCBwdWxzZQo+ID4gY3ljbGUgZW5kcywgYmVmb3JlIGEgZGlzYWJsZSBjb21tYW5kIHRh a2VzIGVmZmVjdD8KPiA+Cj4gPiBPbiB0aGUgaGFyZHdhcmUgSSd2ZSB0ZXN0ZWQgb24gKEdSOCBh bmQgVjNzKSwgaXQncyBlbm91Z2ggdG8gd2FpdCBhdAo+ID4gbW9zdCB0d28gY2xvY2sgY3ljbGVz IGluIG9yZGVyIGZvciBpdCB0byB0YWtlIGVmZmVjdCBiZWZvcmUgd2UgY2FuCj4gPiBjbG9zZSB0 aGUgZ2F0ZS4gQW5kIHdpdGggY2xvY2sgY3ljbGUgSSBtZWFuIDI0IE1IeiBkaXZpZGVkIGJ5IHRo ZQo+ID4gcHJlc2NhbGVyLiBXaXRoIHByZXNjYWxlciAxLCB0aGF0J3MgODQgbmFub3NlY29uZHMu IEJ5IGNsb3NpbmcgdGhlCj4gPiBnYXRlIHdoZW4gdGhlIHB3bSBzaG91bGQgYmUgZGlzYWJsZWQs IEkgZ3Vlc3Mgd2UgY291bGQgc2F2ZSBzb21lCj4gPiBuYW5vYW1wZXJlIG9yIG1pY3JvYW1wZXJl IChpcyB0aGlzIGltcG9ydGFudD8pCj4KPiBJZiBJIHVuZGVyc3Rvb2QgY29ycmVjdGx5IHlvdSBy ZWFsbHkgaGF2ZSB0byB3YWl0IGxvbmdlciB0byBhY2hpZXZlIHRoYXQKPiB0aGUgb3V0cHV0IGlz IGluYWN0aXZlIGluIHRoZSBkaXNhYmxlZCBzdGF0ZS4gRG8geW91IHRhbGsgYWJvdXQgdGhlIHNh bWUKPiB0aGluZz8KCkV4YWN0bHksIGkuZS4gYWZ0ZXIgd3JpdGluZyAwIHRvIHRoZSBFTiBiaXQs IHdlIGRvbid0IGhhdmUgdG8gd2FpdAp1bnRpbCB0aGUgY3VycmVudCBwZXJpb2QgZW5kcyBiZWZv cmUgd2UgY2FuIG9ic2VydmUgdGhhdCB0aGUgb3V0cHV0CnNpZ25hbCBnb2VzIHRvIHRoZSBpbmFj dGl2ZSBzdGF0ZS4KClNpbXBsZSB0ZXN0OgoKMS4gU2V0IHB3bSBpbnRlcnZhbCB0byBhIGxvbmcg dGltZSBsaWtlIDIgc2Vjb25kcywgYW5kIGR1dHkgdG8gNTAlLgoyLiBFbmFibGUgY2xvY2sgZ2F0 aW5nLgozLiBFbmFibGUgdGhlIHB3bSBieSB3cml0aW5nIDEgdG8gdGhlIEVOIGJpdC4KNC4gT2Jz ZXJ2ZSB0aGUgTEVEIGJsaW5rIG9uY2UgcGVyIHNlY29uZC4KNS4gTm93IGF0IGEgcmFuZG9tIHRp bWUgd3JpdGUgMCB0byB0aGUgRU4gYml0IGluIG9yZGVyIHRvIGRpc2FibGUgdGhlCnB3bS4gRG9u J3QgdHVybiBvZmYgdGhlIGNsb2NrIGdhdGluZy4KNi4gSWYgeW91IGp1c3QgbG9vayB3aXRoIHRo ZSBleWUgaXQgYXBwZWFycyB0aGUgTEVEIHR1cm5zIG9mZgppbW1lZGlhdGVseSwgcmVnYXJkbGVz cyBvZiB3aGVuIGluIHRoZSBwdWxzZSBjeWNsZSB3ZSBkaXNhYmxlZCBpdC4KCkp1c3QgdGVzdGVk IHRoZSBhYm92ZSB1c2luZyAiZGV2bWVtIiBvbiBhIFYzcy4KCkJ5IHVzaW5nIGEgbGFyZ2UgcHJl c2NhbGVyIGFuZCB0ZXN0aW5nIHNvbWUgZGlmZmVyZW50IHByZXNjYWxlcnMsIEkndmUKY29uY2x1 ZGVkIHRoYXQgaXQgdGFrZXMgYXQgbGVhc3QgMSBhbmQgYXQgbW9zdCAyIGNsb2NrIGN5Y2xlcyBi ZWZvcmUKd2UgY2FuIHNhZmVseSB0dXJuIG9mZiB0aGUgZ2F0ZSBhbmQgYmUgY2VydGFpbiB0aGF0 IHRoZSBvdXRwdXQgcGluIGhhcwpjaGFuZ2VkIHRvIGRpc2FibGVkLgoKSXQgd291bGQgYmUgZ29v ZCBpZiBwZW9wbGUgaGF2aW5nIG90aGVyIGhhcmR3YXJlIGNvdWxkIGNvbmZpcm0gdGhpcyBpcwpj b3JyZWN0IHRoZXJlIGFzIHdlbGwuCgpQbGVhc2UgdGFrZSBhIGxvb2sgYXQgc29tZSBwcmV2aW91 cyBtYXRlcmlhbCBJIHdyb3RlOgpodHRwczovL2xrbWwub3JnL2xrbWwvMjAyMC8zLzE3LzExNTgK aHR0cHM6Ly9saW51eC1zdW54aS5vcmcvUFdNX0NvbnRyb2xsZXJfUmVnaXN0ZXJfR3VpZGUgKE9i c2VydmVkCmJlaGF2aW91ciBvbiBHUjggZnJvbSBOZXh0VGhpbmcpCmh0dHBzOi8vcGFzdGViaW4u Y29tL0dXcmhXelBKCgovRW1pbAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5l bEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4v bGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=