From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qt1-f175.google.com (mail-qt1-f175.google.com [209.85.160.175]) (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 702497E for ; Sat, 4 Mar 2023 15:39:54 +0000 (UTC) Received: by mail-qt1-f175.google.com with SMTP id c18so6127213qte.5 for ; Sat, 04 Mar 2023 07:39:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1677944393; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=vvZM6A5QV3zdayH/S1bT6N5QCQ+HtUclZlnIwxMfu5Y=; b=Mu2Vrycmndn9hFrEsiCZNBjMKRHKo/+7PLhI3wnP7CKBoP6Cqtft+9thavbxmzCu1a iwvpl0E7qQrWUDNucm9v9/s85RmiMWifmCGhj48ceiIBpiorNx1OG5/dTY8y+olS8AsX 86rwRTRJqgJ0XCgb0vwOsJwkCTlZFIdaLKpGe2kdZ/X7B9g69Sgzxd5J6ndnw78FCNq+ kHo8MkPKzAsiwT302ar+t3cgbEzEvXoiN2dkNXLse5LWi4TkVWDtyxpvNfeddVnCi4Vk gngrnU1Y3jEV2r55+UyIG419NrTG2aKHRsKm8JWUoaVC04XjxuB5hvyeo5i7nMweG2ct REeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1677944393; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=vvZM6A5QV3zdayH/S1bT6N5QCQ+HtUclZlnIwxMfu5Y=; b=Zm4vr998sjZgmv3cBCaIUplTNvaRZ49BNgG5q4znWbf3uMogiZH5yP7Tkic1d81tE6 ocGWVHCH0MCgmnc6LyT0RBJfS+xAPLsaA2P2atRDHaLNAK8tiJK1a2OGcdnvCsZbdGrf DqcI/QrLy/f+KaamOBXk4WDJq9mVSmyB2YGHAGWwztMLJvuuMr9Fb/Y18k8adhrbjTqe 9ETvEwUFDhliz4Oi0aWxRzYYZvlpsjLHBKkBlSQlQbb/+zblKLsng/+lEpi6+DtwF7B3 hW+LgdmYJh/He3iszcLGsc0p0lI9k1YTKIUpLkUdiOGD8KWrGQOxcmFth1FC0h4hqLvJ qrsA== X-Gm-Message-State: AO0yUKXrE4QcXDgZmzV5F9JY8K9/4A+68PupZTYAIpVoqYOvh3DAzx3T 3ki0hAgWQhqEFH/poietgTE= X-Google-Smtp-Source: AK7set9yMsLrDslyIt4a/Hxzl/SiRN/pJYt8yXquPSQN+FZJEEWKVn8w/SLEjaP35h1OHtksDNGT3Q== X-Received: by 2002:ac8:5f0d:0:b0:3b6:2bb3:fb53 with SMTP id x13-20020ac85f0d000000b003b62bb3fb53mr8661153qta.16.1677944393218; Sat, 04 Mar 2023 07:39:53 -0800 (PST) Received: from ?IPV6:2600:1700:2442:6db0:99e6:eec3:1daa:f163? ([2600:1700:2442:6db0:99e6:eec3:1daa:f163]) by smtp.gmail.com with ESMTPSA id r136-20020a37a88e000000b0073b99d515e2sm3950827qke.44.2023.03.04.07.39.52 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 04 Mar 2023 07:39:52 -0800 (PST) Message-ID: Date: Sat, 4 Mar 2023 09:39:52 -0600 Precedence: bulk X-Mailing-List: patches@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Subject: Re: [PATCH 0/8] clk: Add kunit tests for fixed rate and parent data Content-Language: en-US To: Stephen Boyd , Rob Herring Cc: Michael Turquette , linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org, patches@lists.linux.dev, Brendan Higgins , David Gow , Greg Kroah-Hartman , "Rafael J.Wysocki" , Richard Weinberger , Anton Ivanov , Johannes Berg , Vincent Whitchurch , Christian Marangi , Krzysztof Kozlowski , devicetree@vger.kernel.org, linux-um@lists.infradead.org, linux-kselftest@vger.kernel.org, kunit-dev@googlegroups.com References: <20230302013822.1808711-1-sboyd@kernel.org> <093867df6137ad9e964b7dd90fb58f1a.sboyd@kernel.org> From: Frank Rowand In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On 3/2/23 17:57, Stephen Boyd wrote: > Quoting Rob Herring (2023-03-02 12:18:34) >> On Thu, Mar 2, 2023 at 1:44 PM Stephen Boyd wrote: >>> >>> Quoting Rob Herring (2023-03-02 09:13:59) >>>> >>>> Good to see bindings for this. I've been meaning to do something about >>>> the DT unittest ones being undocumented, but I hadn't really decided >>>> whether it was worth writing schemas for them. The compatibles at >>>> least show up with 'make dt_compatible_check'. Perhaps we want to just >>>> define some vendor (not 'linux') that's an exception rather than >>>> requiring schemas (actually, that already works for 'foo'). >>> >>> Sure. Maybe "kunit" should be the vendor prefix? Or "dtbunit"? >> >> We'd want to use the same thing on the DT unittests or anything else >> potentially. How about just 'test'? > > Sounds good. > >> >>>> It's >>>> likely that we want test DTs that fail normal checks and schemas get >>>> in the way of that as we don't have a way to turn off checks. >>> >>> Having the schemas is nice to make sure tests that are expecting some >>> binding are actually getting that. But supporting broken bindings is >>> also important to test any error paths in functions that parse >>> properties. Maybe we keep the schema and have it enforce that incorrect >>> properties are being set? >> >> I wasn't suggesting throwing them out. More why I hadn't written any I guess. >> >>> Do we really need to test incorrect bindings? Doesn't the >>> dt_bindings_check catch these problems so we don't have to write DTB >>> verifiers in the kernel? >> >> Fair enough. Using my frequently stated position against me. :) >> >> I do have a secret plan to implement (debug) type checks into the >> of_property_* APIs by extracting the type information from schemas >> into C. >> > > Ok. I suspect we may want to test error paths though so I don't know Yes, exactly. > what to do here. For now I'll just leave the bindings in place and > change the prefix to "test". > >> >>>> We already have GPIO tests in the DT unittests, so why is clocks >>>> different? Or should the GPIO tests be moved out (yes, please!)? >>> >>> Ah I didn't notice the GPIO tests in there. There are i2c tests too, >>> right? All I can say is clks are using kunit, that's the difference ;-) >> >> Yeah, they should perhaps all move to the subsystems. > > Got it. > >> >>>> What happens when/if the DT unittest is converted to kunit? I think >>>> that would look confusing from the naming. My initial thought is >>>> 'kunit' should be dropped from the naming of a lot of this. Note that >>>> the original kunit submission converted the DT unittests. I would >>>> still like to see that happen. Frank disagreed over what's a unit test >>>> or not, then agreed, then didn't... I don't really care. If there's a >>>> framework to use, then we should use it IMO. >>> >>> Honestly I don't want to get involved in migrating the existing DT >>> unittest code to kunit. I'm aware that it was attempted years ago when >>> kunit was introduced. Maybe if the overlay route works well enough I can >>> completely sidestep introducing any code in drivers/of/ besides some >>> kunit wrappers for this. I'll cross my fingers! >> >> Yeah, I wasn't expecting you to. I just want to make sure this meshes >> with any future conversion to kunit. > > Phew! > >> >> There's also some plans to always populate the DT root node if not >> present. That may help here. Or not. There's been a few versions >> posted with Frank's in the last week or 2. >> > > Ok. I think I have some time to try this overlay approach so let me see > what is needed. Please avoid overlays. See my other replies in this thread for why. 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 704B7C678DB for ; Sat, 4 Mar 2023 15:40:03 +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:From:References:Cc:To: Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=lbh8IUbmbjKc4NdzEGf85t3rXvUjfx24JmFJaF1HYtk=; b=PoTYXh1OWjUEgt IPHRGrgptNIXKlndldb/gWC6wW+X9QkPuE63JgNc72Y9mjNFpRxSMwi9dDXCI3qC81PoGhIe/iN0K UPTolwHWVoxtul4FzsK5iTHpFyyu3Xj+HXA0eApfaa+o2PztwpP4+IHRd+l9gpg23oA8/zcBW689y t57vkEHdMKkw3jAseeYvrE3MbG7+InV8XKd/79fpC0bk0E5OhV0u2h9ZJ59poTAiWyvq1DCzVpzGm G9jSsCeBLekbo0PpdQ/RvP/ipWl0OyPhxfWzUeWsYIqC8gPN15w/fvnZI0CmOG+7puUoi9Fqy8QTD ZTl7WwHX1KPmX0lORhlQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pYTzM-009Bno-Mm; Sat, 04 Mar 2023 15:40:00 +0000 Received: from mail-qt1-x82e.google.com ([2607:f8b0:4864:20::82e]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pYTzI-009BnK-Mq for linux-um@lists.infradead.org; Sat, 04 Mar 2023 15:39:58 +0000 Received: by mail-qt1-x82e.google.com with SMTP id c19so6078165qtn.13 for ; Sat, 04 Mar 2023 07:39:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1677944393; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=vvZM6A5QV3zdayH/S1bT6N5QCQ+HtUclZlnIwxMfu5Y=; b=Mu2Vrycmndn9hFrEsiCZNBjMKRHKo/+7PLhI3wnP7CKBoP6Cqtft+9thavbxmzCu1a iwvpl0E7qQrWUDNucm9v9/s85RmiMWifmCGhj48ceiIBpiorNx1OG5/dTY8y+olS8AsX 86rwRTRJqgJ0XCgb0vwOsJwkCTlZFIdaLKpGe2kdZ/X7B9g69Sgzxd5J6ndnw78FCNq+ kHo8MkPKzAsiwT302ar+t3cgbEzEvXoiN2dkNXLse5LWi4TkVWDtyxpvNfeddVnCi4Vk gngrnU1Y3jEV2r55+UyIG419NrTG2aKHRsKm8JWUoaVC04XjxuB5hvyeo5i7nMweG2ct REeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1677944393; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=vvZM6A5QV3zdayH/S1bT6N5QCQ+HtUclZlnIwxMfu5Y=; b=j+LLTZ/2hE9jzbA/8jcYliNYF+5GebtdwCQQXLqLQQZe3clXgsnlub/pP/AZRHkOGL V5rdaFEjBEc2IbphoFKA0UV8SS4NKN1/tzfWJNTNQ4Rmd346nOJ6H0Y+jy4SNZwijb2e s5saDcM7FJgVYEOehTKku+H+IXrR3lKe3knt/LpT+oKk4BruEgrzharFNTMA4gVCpzHc q+9d0YJCfeLaJ4iDEbayobvGOqpbghI0e1hpwukZKhILSmTkHYk1ASSyB1dHGoxhKkD4 QaFyu4e9l586w03ElLwmmr5DgRaLHLFYUyQuzmChqsWj2dJudkKlmHbVYa3BvURRSAA0 ws1A== X-Gm-Message-State: AO0yUKUpIAhF81EHL2vVE7Haiy6UHLXoMW7Pl0D9umIwqSCGqrILlFrg shpkk66vcLO+Rzf7bfFh1g4= X-Google-Smtp-Source: AK7set9yMsLrDslyIt4a/Hxzl/SiRN/pJYt8yXquPSQN+FZJEEWKVn8w/SLEjaP35h1OHtksDNGT3Q== X-Received: by 2002:ac8:5f0d:0:b0:3b6:2bb3:fb53 with SMTP id x13-20020ac85f0d000000b003b62bb3fb53mr8661153qta.16.1677944393218; Sat, 04 Mar 2023 07:39:53 -0800 (PST) Received: from ?IPV6:2600:1700:2442:6db0:99e6:eec3:1daa:f163? ([2600:1700:2442:6db0:99e6:eec3:1daa:f163]) by smtp.gmail.com with ESMTPSA id r136-20020a37a88e000000b0073b99d515e2sm3950827qke.44.2023.03.04.07.39.52 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 04 Mar 2023 07:39:52 -0800 (PST) Message-ID: Date: Sat, 4 Mar 2023 09:39:52 -0600 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Subject: Re: [PATCH 0/8] clk: Add kunit tests for fixed rate and parent data Content-Language: en-US To: Stephen Boyd , Rob Herring Cc: Michael Turquette , linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org, patches@lists.linux.dev, Brendan Higgins , David Gow , Greg Kroah-Hartman , "Rafael J.Wysocki" , Richard Weinberger , Anton Ivanov , Johannes Berg , Vincent Whitchurch , Christian Marangi , Krzysztof Kozlowski , devicetree@vger.kernel.org, linux-um@lists.infradead.org, linux-kselftest@vger.kernel.org, kunit-dev@googlegroups.com References: <20230302013822.1808711-1-sboyd@kernel.org> <093867df6137ad9e964b7dd90fb58f1a.sboyd@kernel.org> From: Frank Rowand In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230304_073956_886154_8F86F001 X-CRM114-Status: GOOD ( 27.85 ) X-BeenThere: linux-um@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-um" Errors-To: linux-um-bounces+linux-um=archiver.kernel.org@lists.infradead.org T24gMy8yLzIzIDE3OjU3LCBTdGVwaGVuIEJveWQgd3JvdGU6Cj4gUXVvdGluZyBSb2IgSGVycmlu ZyAoMjAyMy0wMy0wMiAxMjoxODozNCkKPj4gT24gVGh1LCBNYXIgMiwgMjAyMyBhdCAxOjQ04oCv UE0gU3RlcGhlbiBCb3lkIDxzYm95ZEBrZXJuZWwub3JnPiB3cm90ZToKPj4+Cj4+PiBRdW90aW5n IFJvYiBIZXJyaW5nICgyMDIzLTAzLTAyIDA5OjEzOjU5KQo+Pj4+Cj4+Pj4gR29vZCB0byBzZWUg YmluZGluZ3MgZm9yIHRoaXMuIEkndmUgYmVlbiBtZWFuaW5nIHRvIGRvIHNvbWV0aGluZyBhYm91 dAo+Pj4+IHRoZSBEVCB1bml0dGVzdCBvbmVzIGJlaW5nIHVuZG9jdW1lbnRlZCwgYnV0IEkgaGFk bid0IHJlYWxseSBkZWNpZGVkCj4+Pj4gd2hldGhlciBpdCB3YXMgd29ydGggd3JpdGluZyBzY2hl bWFzIGZvciB0aGVtLiBUaGUgY29tcGF0aWJsZXMgYXQKPj4+PiBsZWFzdCBzaG93IHVwIHdpdGgg J21ha2UgZHRfY29tcGF0aWJsZV9jaGVjaycuIFBlcmhhcHMgd2Ugd2FudCB0byBqdXN0Cj4+Pj4g ZGVmaW5lIHNvbWUgdmVuZG9yIChub3QgJ2xpbnV4JykgdGhhdCdzIGFuIGV4Y2VwdGlvbiByYXRo ZXIgdGhhbgo+Pj4+IHJlcXVpcmluZyBzY2hlbWFzIChhY3R1YWxseSwgdGhhdCBhbHJlYWR5IHdv cmtzIGZvciAnZm9vJykuCj4+Pgo+Pj4gU3VyZS4gTWF5YmUgImt1bml0IiBzaG91bGQgYmUgdGhl IHZlbmRvciBwcmVmaXg/IE9yICJkdGJ1bml0Ij8KPj4KPj4gV2UnZCB3YW50IHRvIHVzZSB0aGUg c2FtZSB0aGluZyBvbiB0aGUgRFQgdW5pdHRlc3RzIG9yIGFueXRoaW5nIGVsc2UKPj4gcG90ZW50 aWFsbHkuIEhvdyBhYm91dCBqdXN0ICd0ZXN0Jz8KPiAKPiBTb3VuZHMgZ29vZC4KPiAKPj4KPj4+ PiBJdCdzCj4+Pj4gbGlrZWx5IHRoYXQgd2Ugd2FudCB0ZXN0IERUcyB0aGF0IGZhaWwgbm9ybWFs IGNoZWNrcyBhbmQgc2NoZW1hcyBnZXQKPj4+PiBpbiB0aGUgd2F5IG9mIHRoYXQgYXMgd2UgZG9u J3QgaGF2ZSBhIHdheSB0byB0dXJuIG9mZiBjaGVja3MuCj4+Pgo+Pj4gSGF2aW5nIHRoZSBzY2hl bWFzIGlzIG5pY2UgdG8gbWFrZSBzdXJlIHRlc3RzIHRoYXQgYXJlIGV4cGVjdGluZyBzb21lCj4+ PiBiaW5kaW5nIGFyZSBhY3R1YWxseSBnZXR0aW5nIHRoYXQuIEJ1dCBzdXBwb3J0aW5nIGJyb2tl biBiaW5kaW5ncyBpcwo+Pj4gYWxzbyBpbXBvcnRhbnQgdG8gdGVzdCBhbnkgZXJyb3IgcGF0aHMg aW4gZnVuY3Rpb25zIHRoYXQgcGFyc2UKPj4+IHByb3BlcnRpZXMuIE1heWJlIHdlIGtlZXAgdGhl IHNjaGVtYSBhbmQgaGF2ZSBpdCBlbmZvcmNlIHRoYXQgaW5jb3JyZWN0Cj4+PiBwcm9wZXJ0aWVz IGFyZSBiZWluZyBzZXQ/Cj4+Cj4+IEkgd2Fzbid0IHN1Z2dlc3RpbmcgdGhyb3dpbmcgdGhlbSBv dXQuIE1vcmUgd2h5IEkgaGFkbid0IHdyaXR0ZW4gYW55IEkgZ3Vlc3MuCj4+Cj4+PiBEbyB3ZSBy ZWFsbHkgbmVlZCB0byB0ZXN0IGluY29ycmVjdCBiaW5kaW5ncz8gRG9lc24ndCB0aGUKPj4+IGR0 X2JpbmRpbmdzX2NoZWNrIGNhdGNoIHRoZXNlIHByb2JsZW1zIHNvIHdlIGRvbid0IGhhdmUgdG8g d3JpdGUgRFRCCj4+PiB2ZXJpZmllcnMgaW4gdGhlIGtlcm5lbD8KPj4KPj4gRmFpciBlbm91Z2gu IFVzaW5nIG15IGZyZXF1ZW50bHkgc3RhdGVkIHBvc2l0aW9uIGFnYWluc3QgbWUuIDopCj4+Cj4+ IEkgZG8gaGF2ZSBhIHNlY3JldCBwbGFuIHRvIGltcGxlbWVudCAoZGVidWcpIHR5cGUgY2hlY2tz IGludG8gdGhlCj4+IG9mX3Byb3BlcnR5XyogQVBJcyBieSBleHRyYWN0aW5nIHRoZSB0eXBlIGlu Zm9ybWF0aW9uIGZyb20gc2NoZW1hcwo+PiBpbnRvIEMuCj4+Cj4gCj4gT2suIEkgc3VzcGVjdCB3 ZSBtYXkgd2FudCB0byB0ZXN0IGVycm9yIHBhdGhzIHRob3VnaCBzbyBJIGRvbid0IGtub3cKClll cywgZXhhY3RseS4KCj4gd2hhdCB0byBkbyBoZXJlLiBGb3Igbm93IEknbGwganVzdCBsZWF2ZSB0 aGUgYmluZGluZ3MgaW4gcGxhY2UgYW5kCj4gY2hhbmdlIHRoZSBwcmVmaXggdG8gInRlc3QiLgo+ IAo+Pgo+Pj4+IFdlIGFscmVhZHkgaGF2ZSBHUElPIHRlc3RzIGluIHRoZSBEVCB1bml0dGVzdHMs IHNvIHdoeSBpcyBjbG9ja3MKPj4+PiBkaWZmZXJlbnQ/IE9yIHNob3VsZCB0aGUgR1BJTyB0ZXN0 cyBiZSBtb3ZlZCBvdXQgKHllcywgcGxlYXNlISk/Cj4+Pgo+Pj4gQWggSSBkaWRuJ3Qgbm90aWNl IHRoZSBHUElPIHRlc3RzIGluIHRoZXJlLiBUaGVyZSBhcmUgaTJjIHRlc3RzIHRvbywKPj4+IHJp Z2h0PyBBbGwgSSBjYW4gc2F5IGlzIGNsa3MgYXJlIHVzaW5nIGt1bml0LCB0aGF0J3MgdGhlIGRp ZmZlcmVuY2UgOy0pCj4+Cj4+IFllYWgsIHRoZXkgc2hvdWxkIHBlcmhhcHMgYWxsIG1vdmUgdG8g dGhlIHN1YnN5c3RlbXMuCj4gCj4gR290IGl0Lgo+IAo+Pgo+Pj4+IFdoYXQgaGFwcGVucyB3aGVu L2lmIHRoZSBEVCB1bml0dGVzdCBpcyBjb252ZXJ0ZWQgdG8ga3VuaXQ/IEkgdGhpbmsKPj4+PiB0 aGF0IHdvdWxkIGxvb2sgY29uZnVzaW5nIGZyb20gdGhlIG5hbWluZy4gTXkgaW5pdGlhbCB0aG91 Z2h0IGlzCj4+Pj4gJ2t1bml0JyBzaG91bGQgYmUgZHJvcHBlZCBmcm9tIHRoZSBuYW1pbmcgb2Yg YSBsb3Qgb2YgdGhpcy4gTm90ZSB0aGF0Cj4+Pj4gdGhlIG9yaWdpbmFsIGt1bml0IHN1Ym1pc3Np b24gY29udmVydGVkIHRoZSBEVCB1bml0dGVzdHMuIEkgd291bGQKPj4+PiBzdGlsbCBsaWtlIHRv IHNlZSB0aGF0IGhhcHBlbi4gRnJhbmsgZGlzYWdyZWVkIG92ZXIgd2hhdCdzIGEgdW5pdCB0ZXN0 Cj4+Pj4gb3Igbm90LCB0aGVuIGFncmVlZCwgdGhlbiBkaWRuJ3QuLi4gSSBkb24ndCByZWFsbHkg Y2FyZS4gSWYgdGhlcmUncyBhCj4+Pj4gZnJhbWV3b3JrIHRvIHVzZSwgdGhlbiB3ZSBzaG91bGQg dXNlIGl0IElNTy4KPj4+Cj4+PiBIb25lc3RseSBJIGRvbid0IHdhbnQgdG8gZ2V0IGludm9sdmVk IGluIG1pZ3JhdGluZyB0aGUgZXhpc3RpbmcgRFQKPj4+IHVuaXR0ZXN0IGNvZGUgdG8ga3VuaXQu IEknbSBhd2FyZSB0aGF0IGl0IHdhcyBhdHRlbXB0ZWQgeWVhcnMgYWdvIHdoZW4KPj4+IGt1bml0 IHdhcyBpbnRyb2R1Y2VkLiBNYXliZSBpZiB0aGUgb3ZlcmxheSByb3V0ZSB3b3JrcyB3ZWxsIGVu b3VnaCBJIGNhbgo+Pj4gY29tcGxldGVseSBzaWRlc3RlcCBpbnRyb2R1Y2luZyBhbnkgY29kZSBp biBkcml2ZXJzL29mLyBiZXNpZGVzIHNvbWUKPj4+IGt1bml0IHdyYXBwZXJzIGZvciB0aGlzLiBJ J2xsIGNyb3NzIG15IGZpbmdlcnMhCj4+Cj4+IFllYWgsIEkgd2Fzbid0IGV4cGVjdGluZyB5b3Ug dG8uIEkganVzdCB3YW50IHRvIG1ha2Ugc3VyZSB0aGlzIG1lc2hlcwo+PiB3aXRoIGFueSBmdXR1 cmUgY29udmVyc2lvbiB0byBrdW5pdC4KPiAKPiBQaGV3IQo+IAo+Pgo+PiBUaGVyZSdzIGFsc28g c29tZSBwbGFucyB0byBhbHdheXMgcG9wdWxhdGUgdGhlIERUIHJvb3Qgbm9kZSBpZiBub3QKPj4g cHJlc2VudC4gVGhhdCBtYXkgaGVscCBoZXJlLiBPciBub3QuIFRoZXJlJ3MgYmVlbiBhIGZldyB2 ZXJzaW9ucwo+PiBwb3N0ZWQgd2l0aCBGcmFuaydzIGluIHRoZSBsYXN0IHdlZWsgb3IgMi4KPj4K PiAKPiBPay4gSSB0aGluayBJIGhhdmUgc29tZSB0aW1lIHRvIHRyeSB0aGlzIG92ZXJsYXkgYXBw cm9hY2ggc28gbGV0IG1lIHNlZQo+IHdoYXQgaXMgbmVlZGVkLgoKUGxlYXNlIGF2b2lkIG92ZXJs YXlzLiAgU2VlIG15IG90aGVyIHJlcGxpZXMgaW4gdGhpcyB0aHJlYWQgZm9yIHdoeS4KCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC11bSBtYWls aW5nIGxpc3QKbGludXgtdW1AbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFk ZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXVtCg==