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.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, 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 5C223C17440 for ; Sat, 9 Nov 2019 00:01:24 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 2B604206C3 for ; Sat, 9 Nov 2019 00:01:24 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="key not found in DNS" (0-bit key) header.d=codeaurora.org header.i=@codeaurora.org header.b="Dh0vJccm"; dkim=fail reason="key not found in DNS" (0-bit key) header.d=codeaurora.org header.i=@codeaurora.org header.b="WA26uZqm" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728075AbfKIABX (ORCPT ); Fri, 8 Nov 2019 19:01:23 -0500 Received: from smtp.codeaurora.org ([198.145.29.96]:43228 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726394AbfKIABX (ORCPT ); Fri, 8 Nov 2019 19:01:23 -0500 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id E838061410; Sat, 9 Nov 2019 00:01:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1573257682; bh=QFs2x+x4fIEuZOx7pz7201e961RZN+MksTxeVaGJTnE=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=Dh0vJccm1drtq/03VdtiQnlFwi0bDS6EjrrvryDfK9nwvvPowMGFqTfu++lxCWBEF zUubn8/aQ5hUaMhvHvr+eGDds6k1DGIr+4rzot32Os48DJEjLHIWJ7HBnYHpODuPKq SjINxGiyZI2gNoMnnOKgnB8LYsD1w2Vjicu1+Zn0= Received: from mail.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.codeaurora.org (Postfix) with ESMTP id 6BC1A60F74; Sat, 9 Nov 2019 00:01:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1573257681; bh=QFs2x+x4fIEuZOx7pz7201e961RZN+MksTxeVaGJTnE=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=WA26uZqmY2unk2FaSXIgqizhShISWXuLUSiujNPt1wPyPvzozvxP58besRG9/S3IV FubVHkrGeRScD1O/aMeGZ5KA7DrFxZ2XdJCLyS+e+31NEnw3EW7hyNXPYkP5yOZgF1 uZgku3kH4pML1wAt5ugbm+sG0aEOLh6kfv4rWV7o= MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Fri, 08 Nov 2019 19:01:21 -0500 From: cohens@codeaurora.org To: Daniel Vetter Cc: dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-arm-msm@vger.kernel.org, adelva@google.com, pdhaval@codeaurora.org, seanpaul@chromium.org, Daniel Vetter Subject: Re: [PATCH 0/3] allow DRM drivers to limit creation of blobs In-Reply-To: <20191108083448.GU23790@phenom.ffwll.local> References: <1573155554-16248-1-git-send-email-cohens@codeaurora.org> <20191108083448.GU23790@phenom.ffwll.local> Message-ID: <7072bcc51eb44d49ab4266e0ec216df6@codeaurora.org> X-Sender: cohens@codeaurora.org User-Agent: Roundcube Webmail/1.2.5 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org On 2019-11-08 03:34, Daniel Vetter wrote: > On Thu, Nov 07, 2019 at 02:39:11PM -0500, Steve Cohen wrote: >> Fuzzers used in Android compliance testing repeatedly call the >> create blob IOCTL which eventually exhausts the system memory. >> This series adds a hook which allows drivers to impose their own >> limitations on the size and/or number of blobs created. > > Pretty sure this isn't just a problem for msm/dpu alone, why this very > limited approach? > I'm not familiar enough with the blob requirements for other vendor's drivers to impose any restrictions on them. The idea was to provide the hook for vendors to implement their own checks. Support for msm/mdp* drivers will be added in v2 if this approach is acceptable. > Also, why are your fuzzers not also allocating enormous amounts of gem > buffers, which will also exhaust memory eventually? Excellent question... This will likely come in a follow-up series. > -Daniel > >> >> Steve Cohen (3): >> drm: add driver hook for create blob limitations >> drm/msm: add support for createblob_check driver hook >> drm/msm/dpu: check blob limitations during create blob ioctl >> >> drivers/gpu/drm/drm_property.c | 7 +++++++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 14 ++++++++++++++ >> drivers/gpu/drm/msm/msm_drv.c | 25 >> +++++++++++++++++++++++++ >> drivers/gpu/drm/msm/msm_kms.h | 1 + >> include/drm/drm_drv.h | 9 +++++++++ >> 5 files changed, 56 insertions(+) >> >> -- >> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora >> Forum, >> a Linux Foundation Collaborative Project >> >> _______________________________________________ >> dri-devel mailing list >> dri-devel@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/dri-devel From mboxrd@z Thu Jan 1 00:00:00 1970 From: cohens-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org Subject: Re: [PATCH 0/3] allow DRM drivers to limit creation of blobs Date: Fri, 08 Nov 2019 19:01:21 -0500 Message-ID: <7072bcc51eb44d49ab4266e0ec216df6@codeaurora.org> References: <1573155554-16248-1-git-send-email-cohens@codeaurora.org> <20191108083448.GU23790@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20191108083448.GU23790-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Daniel Vetter Cc: adelva-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, pdhaval-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, Daniel Vetter , freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: dri-devel@lists.freedesktop.org T24gMjAxOS0xMS0wOCAwMzozNCwgRGFuaWVsIFZldHRlciB3cm90ZToKPiBPbiBUaHUsIE5vdiAw NywgMjAxOSBhdCAwMjozOToxMVBNIC0wNTAwLCBTdGV2ZSBDb2hlbiB3cm90ZToKPj4gRnV6emVy cyB1c2VkIGluIEFuZHJvaWQgY29tcGxpYW5jZSB0ZXN0aW5nIHJlcGVhdGVkbHkgY2FsbCB0aGUK Pj4gY3JlYXRlIGJsb2IgSU9DVEwgd2hpY2ggZXZlbnR1YWxseSBleGhhdXN0cyB0aGUgc3lzdGVt IG1lbW9yeS4KPj4gVGhpcyBzZXJpZXMgYWRkcyBhIGhvb2sgd2hpY2ggYWxsb3dzIGRyaXZlcnMg dG8gaW1wb3NlIHRoZWlyIG93bgo+PiBsaW1pdGF0aW9ucyBvbiB0aGUgc2l6ZSBhbmQvb3IgbnVt YmVyIG9mIGJsb2JzIGNyZWF0ZWQuCj4gCj4gUHJldHR5IHN1cmUgdGhpcyBpc24ndCBqdXN0IGEg cHJvYmxlbSBmb3IgbXNtL2RwdSBhbG9uZSwgd2h5IHRoaXMgdmVyeQo+IGxpbWl0ZWQgYXBwcm9h Y2g/Cj4gCkknbSBub3QgZmFtaWxpYXIgZW5vdWdoIHdpdGggdGhlIGJsb2IgcmVxdWlyZW1lbnRz IGZvciBvdGhlcgp2ZW5kb3IncyBkcml2ZXJzIHRvIGltcG9zZSBhbnkgcmVzdHJpY3Rpb25zIG9u IHRoZW0uIFRoZSBpZGVhCndhcyB0byBwcm92aWRlIHRoZSBob29rIGZvciB2ZW5kb3JzIHRvIGlt cGxlbWVudCB0aGVpciBvd24KY2hlY2tzLiBTdXBwb3J0IGZvciBtc20vbWRwKiBkcml2ZXJzIHdp bGwgYmUgYWRkZWQgaW4gdjIgaWYgdGhpcwphcHByb2FjaCBpcyBhY2NlcHRhYmxlLgoKPiBBbHNv LCB3aHkgYXJlIHlvdXIgZnV6emVycyBub3QgYWxzbyBhbGxvY2F0aW5nIGVub3Jtb3VzIGFtb3Vu dHMgb2YgZ2VtCj4gYnVmZmVycywgd2hpY2ggd2lsbCBhbHNvIGV4aGF1c3QgbWVtb3J5IGV2ZW50 dWFsbHk/CgpFeGNlbGxlbnQgcXVlc3Rpb24uLi4gVGhpcyB3aWxsIGxpa2VseSBjb21lIGluIGEg Zm9sbG93LXVwIHNlcmllcy4KCj4gLURhbmllbAo+IAo+PiAKPj4gU3RldmUgQ29oZW4gKDMpOgo+ PiAgIGRybTogYWRkIGRyaXZlciBob29rIGZvciBjcmVhdGUgYmxvYiBsaW1pdGF0aW9ucwo+PiAg IGRybS9tc206IGFkZCBzdXBwb3J0IGZvciBjcmVhdGVibG9iX2NoZWNrIGRyaXZlciBob29rCj4+ ICAgZHJtL21zbS9kcHU6IGNoZWNrIGJsb2IgbGltaXRhdGlvbnMgZHVyaW5nIGNyZWF0ZSBibG9i IGlvY3RsCj4+IAo+PiAgZHJpdmVycy9ncHUvZHJtL2RybV9wcm9wZXJ0eS5jICAgICAgICAgIHwg IDcgKysrKysrKwo+PiAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2ttcy5jIHwg MTQgKysrKysrKysrKysrKysKPj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5jICAgICAg ICAgICB8IDI1IAo+PiArKysrKysrKysrKysrKysrKysrKysrKysrCj4+ICBkcml2ZXJzL2dwdS9k cm0vbXNtL21zbV9rbXMuaCAgICAgICAgICAgfCAgMSArCj4+ICBpbmNsdWRlL2RybS9kcm1fZHJ2 LmggICAgICAgICAgICAgICAgICAgfCAgOSArKysrKysrKysKPj4gIDUgZmlsZXMgY2hhbmdlZCwg NTYgaW5zZXJ0aW9ucygrKQo+PiAKPj4gLS0KPj4gVGhlIFF1YWxjb21tIElubm92YXRpb24gQ2Vu dGVyLCBJbmMuIGlzIGEgbWVtYmVyIG9mIHRoZSBDb2RlIEF1cm9yYSAKPj4gRm9ydW0sCj4+IGEg TGludXggRm91bmRhdGlvbiBDb2xsYWJvcmF0aXZlIFByb2plY3QKPj4gCj4+IF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+IGRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKPj4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+PiBodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbApfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpGcmVlZHJlbm8gbWFpbGluZyBsaXN0 CkZyZWVkcmVub0BsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9mcmVlZHJlbm8= 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.8 required=3.0 tests=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 5F508C43331 for ; Mon, 11 Nov 2019 02:30:27 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 3B2E72067B for ; Mon, 11 Nov 2019 02:30:27 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3B2E72067B Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 20DB26E83B; Mon, 11 Nov 2019 02:29:48 +0000 (UTC) Received: from smtp.codeaurora.org (smtp.codeaurora.org [198.145.29.96]) by gabe.freedesktop.org (Postfix) with ESMTPS id 516086FAA5; Sat, 9 Nov 2019 00:01:23 +0000 (UTC) Received: by smtp.codeaurora.org (Postfix, from userid 1000) id DA5DD61187; Sat, 9 Nov 2019 00:01:22 +0000 (UTC) Received: from mail.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.codeaurora.org (Postfix) with ESMTP id 6BC1A60F74; Sat, 9 Nov 2019 00:01:21 +0000 (UTC) MIME-Version: 1.0 Date: Fri, 08 Nov 2019 19:01:21 -0500 From: cohens@codeaurora.org To: Daniel Vetter Subject: Re: [PATCH 0/3] allow DRM drivers to limit creation of blobs In-Reply-To: <20191108083448.GU23790@phenom.ffwll.local> References: <1573155554-16248-1-git-send-email-cohens@codeaurora.org> <20191108083448.GU23790@phenom.ffwll.local> Message-ID: <7072bcc51eb44d49ab4266e0ec216df6@codeaurora.org> X-Sender: cohens@codeaurora.org User-Agent: Roundcube Webmail/1.2.5 X-Mailman-Approved-At: Mon, 11 Nov 2019 02:29:25 +0000 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1573257682; bh=QFs2x+x4fIEuZOx7pz7201e961RZN+MksTxeVaGJTnE=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=Dh0vJccm1drtq/03VdtiQnlFwi0bDS6EjrrvryDfK9nwvvPowMGFqTfu++lxCWBEF zUubn8/aQ5hUaMhvHvr+eGDds6k1DGIr+4rzot32Os48DJEjLHIWJ7HBnYHpODuPKq SjINxGiyZI2gNoMnnOKgnB8LYsD1w2Vjicu1+Zn0= X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1573257681; bh=QFs2x+x4fIEuZOx7pz7201e961RZN+MksTxeVaGJTnE=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=WA26uZqmY2unk2FaSXIgqizhShISWXuLUSiujNPt1wPyPvzozvxP58besRG9/S3IV FubVHkrGeRScD1O/aMeGZ5KA7DrFxZ2XdJCLyS+e+31NEnw3EW7hyNXPYkP5yOZgF1 uZgku3kH4pML1wAt5ugbm+sG0aEOLh6kfv4rWV7o= X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: adelva@google.com, linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, pdhaval@codeaurora.org, seanpaul@chromium.org, Daniel Vetter , freedreno@lists.freedesktop.org Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Message-ID: <20191109000121.-EazGXraamxs5AAOhGKwZ_2tl5osqgPuDUXrq20-DHw@z> T24gMjAxOS0xMS0wOCAwMzozNCwgRGFuaWVsIFZldHRlciB3cm90ZToKPiBPbiBUaHUsIE5vdiAw NywgMjAxOSBhdCAwMjozOToxMVBNIC0wNTAwLCBTdGV2ZSBDb2hlbiB3cm90ZToKPj4gRnV6emVy cyB1c2VkIGluIEFuZHJvaWQgY29tcGxpYW5jZSB0ZXN0aW5nIHJlcGVhdGVkbHkgY2FsbCB0aGUK Pj4gY3JlYXRlIGJsb2IgSU9DVEwgd2hpY2ggZXZlbnR1YWxseSBleGhhdXN0cyB0aGUgc3lzdGVt IG1lbW9yeS4KPj4gVGhpcyBzZXJpZXMgYWRkcyBhIGhvb2sgd2hpY2ggYWxsb3dzIGRyaXZlcnMg dG8gaW1wb3NlIHRoZWlyIG93bgo+PiBsaW1pdGF0aW9ucyBvbiB0aGUgc2l6ZSBhbmQvb3IgbnVt YmVyIG9mIGJsb2JzIGNyZWF0ZWQuCj4gCj4gUHJldHR5IHN1cmUgdGhpcyBpc24ndCBqdXN0IGEg cHJvYmxlbSBmb3IgbXNtL2RwdSBhbG9uZSwgd2h5IHRoaXMgdmVyeQo+IGxpbWl0ZWQgYXBwcm9h Y2g/Cj4gCkknbSBub3QgZmFtaWxpYXIgZW5vdWdoIHdpdGggdGhlIGJsb2IgcmVxdWlyZW1lbnRz IGZvciBvdGhlcgp2ZW5kb3IncyBkcml2ZXJzIHRvIGltcG9zZSBhbnkgcmVzdHJpY3Rpb25zIG9u IHRoZW0uIFRoZSBpZGVhCndhcyB0byBwcm92aWRlIHRoZSBob29rIGZvciB2ZW5kb3JzIHRvIGlt cGxlbWVudCB0aGVpciBvd24KY2hlY2tzLiBTdXBwb3J0IGZvciBtc20vbWRwKiBkcml2ZXJzIHdp bGwgYmUgYWRkZWQgaW4gdjIgaWYgdGhpcwphcHByb2FjaCBpcyBhY2NlcHRhYmxlLgoKPiBBbHNv LCB3aHkgYXJlIHlvdXIgZnV6emVycyBub3QgYWxzbyBhbGxvY2F0aW5nIGVub3Jtb3VzIGFtb3Vu dHMgb2YgZ2VtCj4gYnVmZmVycywgd2hpY2ggd2lsbCBhbHNvIGV4aGF1c3QgbWVtb3J5IGV2ZW50 dWFsbHk/CgpFeGNlbGxlbnQgcXVlc3Rpb24uLi4gVGhpcyB3aWxsIGxpa2VseSBjb21lIGluIGEg Zm9sbG93LXVwIHNlcmllcy4KCj4gLURhbmllbAo+IAo+PiAKPj4gU3RldmUgQ29oZW4gKDMpOgo+ PiAgIGRybTogYWRkIGRyaXZlciBob29rIGZvciBjcmVhdGUgYmxvYiBsaW1pdGF0aW9ucwo+PiAg IGRybS9tc206IGFkZCBzdXBwb3J0IGZvciBjcmVhdGVibG9iX2NoZWNrIGRyaXZlciBob29rCj4+ ICAgZHJtL21zbS9kcHU6IGNoZWNrIGJsb2IgbGltaXRhdGlvbnMgZHVyaW5nIGNyZWF0ZSBibG9i IGlvY3RsCj4+IAo+PiAgZHJpdmVycy9ncHUvZHJtL2RybV9wcm9wZXJ0eS5jICAgICAgICAgIHwg IDcgKysrKysrKwo+PiAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2ttcy5jIHwg MTQgKysrKysrKysrKysrKysKPj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5jICAgICAg ICAgICB8IDI1IAo+PiArKysrKysrKysrKysrKysrKysrKysrKysrCj4+ICBkcml2ZXJzL2dwdS9k cm0vbXNtL21zbV9rbXMuaCAgICAgICAgICAgfCAgMSArCj4+ICBpbmNsdWRlL2RybS9kcm1fZHJ2 LmggICAgICAgICAgICAgICAgICAgfCAgOSArKysrKysrKysKPj4gIDUgZmlsZXMgY2hhbmdlZCwg NTYgaW5zZXJ0aW9ucygrKQo+PiAKPj4gLS0KPj4gVGhlIFF1YWxjb21tIElubm92YXRpb24gQ2Vu dGVyLCBJbmMuIGlzIGEgbWVtYmVyIG9mIHRoZSBDb2RlIEF1cm9yYSAKPj4gRm9ydW0sCj4+IGEg TGludXggRm91bmRhdGlvbiBDb2xsYWJvcmF0aXZlIFByb2plY3QKPj4gCj4+IF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+IGRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKPj4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+PiBodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbApfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0 CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=