From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6754190139198537728 X-Received: by 2002:a19:f610:: with SMTP id x16mr5673157lfe.141.1572891578186; Mon, 04 Nov 2019 10:19:38 -0800 (PST) X-BeenThere: outreachy-kernel@googlegroups.com Received: by 2002:a05:6512:48f:: with SMTP id v15ls1342894lfq.14.gmail; Mon, 04 Nov 2019 10:19:37 -0800 (PST) X-Google-Smtp-Source: APXvYqzIC96NVwq/SbPBTw2LoJqxy0a9A98oWCPkSXi37/eklBj1obRwj5q8zcgoOoQre/L876ds X-Received: by 2002:a19:be92:: with SMTP id o140mr17944006lff.40.1572891577137; Mon, 04 Nov 2019 10:19:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1572891577; cv=none; d=google.com; s=arc-20160816; b=QNX+ntw/pdC+gLEstKCYYscg7GfXWWCxK5oZLNjl0ylFfzQzyd02RGpkGsYR7npBU+ Oe+ANcwkhmME5ADogMDrWc5ksAb4s0bMfQWxWY95WoNVGHRc+S95x5HnQjhKSyNya+JU IwXQdByTr4acnF4T4zQ2jA/gPr4ij+QZcQA0HjoQhEqdC9u9Rn82pAgYkkxBWtOljBWE ESk1yDUKeutEYSJhkuIkSIYWbMTGIn15Sasm9WbRgAHo3uuYQVBhwT262JCB9N9ySNSW MuoA1gISDpPyBK80o93fqRyUmi09zuidoO2hEAWkuepWhVLQiEBoeJj8HJdjIY/4cxBS Khpw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=user-agent:in-reply-to:content-disposition:mime-version:references :mail-followup-to:message-id:subject:cc:to:from:date:sender :dkim-signature; bh=Qfg3/OhENOhgHzvHvbxDHTYQ7dgyHpgpR3Q3h/hLkOE=; b=OrV6Zw0Gh2i5u33Yn45k50K7fETqSRs5v7+xkG3M3kMO2TYmyCfDZJ0jdui6yILw1P E/epXThrF8bXM5a0v7rjhRqA9ozuZbI7QtQatKtcawDKxzfei8L3veUAKifz478uAnDC AyNe6IyUskX+69Avh5bFHbDWaZCOn1LTHZJpSldDvLY/b+4/3/nyuaTWQ9fl1WZDSKI1 ecYBg1a9mcv8iwvESNw0L/MzTrIFmWn1iGSmjddD0YOoha7aBclnUE6Niym2kNnCDgXM /78vrvSMH8TFazDvYLt5kbqsS2VpP1oQlbvf6otG19PlvvwQGnGbdDdpDtKRTBwVFEcs vU4g== ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@ffwll.ch header.s=google header.b=fn+K0Jeb; spf=neutral (google.com: 2a00:1450:4864:20::444 is neither permitted nor denied by best guess record for domain of daniel@ffwll.ch) smtp.mailfrom=daniel@ffwll.ch Return-Path: Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com. [2a00:1450:4864:20::444]) by gmr-mx.google.com with ESMTPS id b22si1100887ljo.3.2019.11.04.10.19.36 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 04 Nov 2019 10:19:36 -0800 (PST) Received-SPF: neutral (google.com: 2a00:1450:4864:20::444 is neither permitted nor denied by best guess record for domain of daniel@ffwll.ch) client-ip=2a00:1450:4864:20::444; Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@ffwll.ch header.s=google header.b=fn+K0Jeb; spf=neutral (google.com: 2a00:1450:4864:20::444 is neither permitted nor denied by best guess record for domain of daniel@ffwll.ch) smtp.mailfrom=daniel@ffwll.ch Received: by mail-wr1-x444.google.com with SMTP id b3so12482360wrs.13 for ; Mon, 04 Nov 2019 10:19:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=sender:date:from:to:cc:subject:message-id:mail-followup-to :references:mime-version:content-disposition:in-reply-to:user-agent; bh=Qfg3/OhENOhgHzvHvbxDHTYQ7dgyHpgpR3Q3h/hLkOE=; b=fn+K0JebeyPggpWIrakbcYMmMywkz8WCAdLPRUAUoAtqIBUspiPN7tD3QProjEFSDP nLRQVnCWYlJKioXnZylDFjZ9CvozxWOKgd65NLtZqd17WmgPpSzRe+AzdbWMQMwiKEAh Qm0FkocWIVWPD+J6wOxMRhwzLkNS66oy4IFOE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :mail-followup-to:references:mime-version:content-disposition :in-reply-to:user-agent; bh=Qfg3/OhENOhgHzvHvbxDHTYQ7dgyHpgpR3Q3h/hLkOE=; b=kEGLF1k7nKjVYl/sRoe52cAorNCG5fDLO6Y3g4uY2wjlhFHL3Sx4hllR8/PLTzq+vJ J/Knb/4U2+4p8AvXR0wFHGJGdjfUpK+A4xAeLsfO6kPkEoFuUbKcePH6PJvd9GBK+PiZ 7Voi6src92Nbov/3PhhuMRnaq3KXLZFspqgICXRuR6XODpJmIQrWKcRhHZCZWbBPkHEU 4DstiZoMoGiHdqI2ZL7gtIGP24IrB8IUl93Opq1x8WOmdKzBWfi8OhMlPC/Q7BG6iedm cZuwqCcENtlci1k0LPMjFOQN8B8l8+XQcTiNvsZonvc1s4ZmCybDON6tRxI4cLuV6b06 ywrA== X-Gm-Message-State: APjAAAUO8DQPoS3+UyvMUT1kdbKG8THNVwt12yTC4C6kXTE1l70oWSdz +2nj0dvVL9PnhT6fR8Fr7Lgk1g== X-Received: by 2002:adf:f70f:: with SMTP id r15mr25585980wrp.262.1572891576303; Mon, 04 Nov 2019 10:19:36 -0800 (PST) Return-Path: Received: from phenom.ffwll.local (212-51-149-96.fiber7.init7.net. [212.51.149.96]) by smtp.gmail.com with ESMTPSA id p12sm19639397wrm.62.2019.11.04.10.19.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Nov 2019 10:19:35 -0800 (PST) Sender: Daniel Vetter Date: Mon, 4 Nov 2019 19:19:33 +0100 From: Daniel Vetter To: Gabriela Bittencourt Cc: outreachy-kernel@googlegroups.com, manasi.d.navare@intel.com, rodrigosiqueiramelo@gmail.com, maarten.lankhorst@linux.intel.com, mripard@kernel.org, sean@poorly.run, airlied@linux.ie, daniel@ffwll.ch, corbet@lwn.net, dri-devel@lists.freedesktop.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, lkcamp@lists.libreplanetbr.org Subject: Re: [PATCH] drm/doc: Adding VKMS module description and use to "Testing and Validation" Message-ID: <20191104181933.GR10326@phenom.ffwll.local> Mail-Followup-To: Gabriela Bittencourt , outreachy-kernel@googlegroups.com, manasi.d.navare@intel.com, rodrigosiqueiramelo@gmail.com, maarten.lankhorst@linux.intel.com, mripard@kernel.org, sean@poorly.run, airlied@linux.ie, corbet@lwn.net, dri-devel@lists.freedesktop.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, lkcamp@lists.libreplanetbr.org References: <20191101042706.2602-1-gabrielabittencourt00@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20191101042706.2602-1-gabrielabittencourt00@gmail.com> X-Operating-System: Linux phenom 5.2.0-3-amd64 User-Agent: Mutt/1.10.1 (2018-07-13) On Fri, Nov 01, 2019 at 01:27:06AM -0300, Gabriela Bittencourt wrote: > Add a description on VKMS module and the cases in which it should be used. > There's a brief explanation on how to set it and use it in a VM, along with > an example of running an igt-test. > > Signed-off-by: Gabriela Bittencourt > > --- > > Hi DRM-community, > this is my first (of many, I hope) patch in this subsystem. I hope to have > a lot of learning (and fun :)) working with you guys. > I'm starting by documenting the VKMS driver in "Userland interfaces", if I > have been inaccurate in my description or if I misunderstood some concept, > please let me know. Oh awesome, this sounds great, really looking for more people hacking on vkms. Docs lgtm, but I'll let Siqueira have a look and merge it. Pls ping in case this patch gets lost. -Daniel > --- > Documentation/gpu/drm-uapi.rst | 38 ++++++++++++++++++++++++++++++++++ > 1 file changed, 38 insertions(+) > > diff --git a/Documentation/gpu/drm-uapi.rst b/Documentation/gpu/drm-uapi.rst > index 94f90521f58c..7d6c86b7af76 100644 > --- a/Documentation/gpu/drm-uapi.rst > +++ b/Documentation/gpu/drm-uapi.rst > @@ -285,6 +285,44 @@ run-tests.sh is a wrapper around piglit that will execute the tests matching > the -t options. A report in HTML format will be available in > ./results/html/index.html. Results can be compared with piglit. > > +Using VKMS to test DRM API > +-------------------------- > + > +VKMS is a software-only model of a KMS driver that is useful for testing > +and for running compositors. VKMS aims to enable a virtual display without > +the need for a hardware display capability. These characteristics made VKMS > +a perfect tool for validating the DRM core behavior and also support the > +compositor developer. VKMS helps us to test DRM core function in a virtual > +machine, which makes it easy to test some of the core changes. > + > +To Validate changes in DRM API with VKMS, start setting the kernel. The > +VKMS module is not enabled by defaut, so enable it in the menuconfig:: > + > + $ make menuconfig > + > +Compile the kernel with the VKMS enabled and install it in the target > +machine. VKMS can be run in a Virtual Machine (QEMU, virtme or similar). > +It's recommended the use of KVM with the minimum of 1GB of RAM and four > +cores. > + > +It's possible to run the IGT-tests in a VM in two ways: > +1. Use IGT inside a VM > +2. Use IGT from the host machine and write the results in a shared directory. > + > +As follow, there is an example of using a VM with a shared directory with > +the host machine to run igt-tests. As example it's used virtme:: > + > + $ virtme-run --rwdir /path/for/shared_dir --kdir=path/for/kernel/directory --mods=auto > + > +Run the igt-tests, as example it's ran the 'kms_flip' tests:: > + > + $ /path/for/igt-gpu-tools/scripts/run-tests.sh -p -s -t "kms_flip.*" -v > + > +In this example instead of build the igt_runner it's used Piglit > +(-p option); it's created html summary of the tests results and it's saved > +in the folder "igt-gpu-tools/results"; it's executed only the igt-tests > +matching the -t option. > + > Display CRC Support > ------------------- > > -- > 2.20.1 > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch 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=-8.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=ham 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 3EF87CA9EB5 for ; Mon, 4 Nov 2019 18:19:40 +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 222EA214D9 for ; Mon, 4 Nov 2019 18:19:39 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 222EA214D9 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch 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 290996E7E2; Mon, 4 Nov 2019 18:19:39 +0000 (UTC) Received: from mail-wr1-x443.google.com (mail-wr1-x443.google.com [IPv6:2a00:1450:4864:20::443]) by gabe.freedesktop.org (Postfix) with ESMTPS id BC31D6E7E2 for ; Mon, 4 Nov 2019 18:19:37 +0000 (UTC) Received: by mail-wr1-x443.google.com with SMTP id t1so12318206wrv.4 for ; Mon, 04 Nov 2019 10:19:37 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :mail-followup-to:references:mime-version:content-disposition :in-reply-to:user-agent; bh=Qfg3/OhENOhgHzvHvbxDHTYQ7dgyHpgpR3Q3h/hLkOE=; b=rrvzQxnarPGkSAGqqXIu4wNxP7RxfyCBRSz7x1ycrNK2nSE5+YyybCSV+V7+3+/Q/A 3MKSztWJOzrILeUasNVHUmNLVHr0/nM3DL8XSeXhQV6QLNdYT+pNPmZnXQdBh9V/GZi8 LHHI1Wd4LiEpChE42sB7xK25ZpQwR80bLFBaCm4C7PNTGpjvcSzH+ls9THEyxiSk5vv9 P8So08rbt3kLo4kUGISegwP5lY+JaUwoJJ0caUXkr24Ch/Y4bgU0L1KqFKIiqgglcG/5 YlU08+HEWXPatEO1S2dQDu1D3snI20lHhEvdbtjCQC7267/svHiCJ6GKyqTuOBTEsWBd ilQA== X-Gm-Message-State: APjAAAUtcErSN5cuZMfqP9EznNHjPCOSNk2hpdTWwyvzAuKJgB/iLNa5 IBFF580K6Hc6qO2e9a0NjKHxAdkT1cI= X-Google-Smtp-Source: APXvYqzyNg3sXHFnQDm+gajzHEmP+Sqmi0HVIhd7GKvcRWFfi/tYWvfUdKRE7PACl7E/z0xmll/zhg== X-Received: by 2002:adf:f70f:: with SMTP id r15mr25585980wrp.262.1572891576303; Mon, 04 Nov 2019 10:19:36 -0800 (PST) Received: from phenom.ffwll.local (212-51-149-96.fiber7.init7.net. [212.51.149.96]) by smtp.gmail.com with ESMTPSA id p12sm19639397wrm.62.2019.11.04.10.19.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Nov 2019 10:19:35 -0800 (PST) Date: Mon, 4 Nov 2019 19:19:33 +0100 From: Daniel Vetter To: Gabriela Bittencourt Subject: Re: [PATCH] drm/doc: Adding VKMS module description and use to "Testing and Validation" Message-ID: <20191104181933.GR10326@phenom.ffwll.local> Mail-Followup-To: Gabriela Bittencourt , outreachy-kernel@googlegroups.com, manasi.d.navare@intel.com, rodrigosiqueiramelo@gmail.com, maarten.lankhorst@linux.intel.com, mripard@kernel.org, sean@poorly.run, airlied@linux.ie, corbet@lwn.net, dri-devel@lists.freedesktop.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, lkcamp@lists.libreplanetbr.org References: <20191101042706.2602-1-gabrielabittencourt00@gmail.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20191101042706.2602-1-gabrielabittencourt00@gmail.com> X-Operating-System: Linux phenom 5.2.0-3-amd64 User-Agent: Mutt/1.10.1 (2018-07-13) X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=sender:date:from:to:cc:subject:message-id:mail-followup-to :references:mime-version:content-disposition:in-reply-to:user-agent; bh=Qfg3/OhENOhgHzvHvbxDHTYQ7dgyHpgpR3Q3h/hLkOE=; b=fn+K0JebeyPggpWIrakbcYMmMywkz8WCAdLPRUAUoAtqIBUspiPN7tD3QProjEFSDP nLRQVnCWYlJKioXnZylDFjZ9CvozxWOKgd65NLtZqd17WmgPpSzRe+AzdbWMQMwiKEAh Qm0FkocWIVWPD+J6wOxMRhwzLkNS66oy4IFOE= 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: rodrigosiqueiramelo@gmail.com, corbet@lwn.net, airlied@linux.ie, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, manasi.d.navare@intel.com, outreachy-kernel@googlegroups.com, lkcamp@lists.libreplanetbr.org, dri-devel@lists.freedesktop.org, sean@poorly.run Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Message-ID: <20191104181933.HDdxZc-U5KEx02PYQocF2l_OE4BdrqANoIpa657d57k@z> T24gRnJpLCBOb3YgMDEsIDIwMTkgYXQgMDE6Mjc6MDZBTSAtMDMwMCwgR2FicmllbGEgQml0dGVu Y291cnQgd3JvdGU6Cj4gQWRkIGEgZGVzY3JpcHRpb24gb24gVktNUyBtb2R1bGUgYW5kIHRoZSBj YXNlcyBpbiB3aGljaCBpdCBzaG91bGQgYmUgdXNlZC4KPiBUaGVyZSdzIGEgYnJpZWYgZXhwbGFu YXRpb24gb24gaG93IHRvIHNldCBpdCBhbmQgdXNlIGl0IGluIGEgVk0sIGFsb25nIHdpdGgKPiBh biBleGFtcGxlIG9mIHJ1bm5pbmcgYW4gaWd0LXRlc3QuCj4gCj4gU2lnbmVkLW9mZi1ieTogR2Fi cmllbGEgQml0dGVuY291cnQgPGdhYnJpZWxhYml0dGVuY291cnQwMEBnbWFpbC5jb20+Cj4gCj4g LS0tCj4gCj4gSGkgRFJNLWNvbW11bml0eSwKPiB0aGlzIGlzIG15IGZpcnN0IChvZiBtYW55LCBJ IGhvcGUpICBwYXRjaCBpbiB0aGlzIHN1YnN5c3RlbS4gSSBob3BlIHRvIGhhdmUKPiBhIGxvdCBv ZiBsZWFybmluZyAoYW5kIGZ1biA6KSkgd29ya2luZyB3aXRoIHlvdSBndXlzLgo+IEknbSBzdGFy dGluZyBieSBkb2N1bWVudGluZyB0aGUgVktNUyBkcml2ZXIgaW4gIlVzZXJsYW5kIGludGVyZmFj ZXMiLCBpZiBJCj4gaGF2ZSBiZWVuIGluYWNjdXJhdGUgaW4gbXkgZGVzY3JpcHRpb24gb3IgaWYg SSBtaXN1bmRlcnN0b29kIHNvbWUgY29uY2VwdCwKPiBwbGVhc2UgbGV0IG1lIGtub3cuCgpPaCBh d2Vzb21lLCB0aGlzIHNvdW5kcyBncmVhdCwgcmVhbGx5IGxvb2tpbmcgZm9yIG1vcmUgcGVvcGxl IGhhY2tpbmcgb24Kdmttcy4gRG9jcyBsZ3RtLCBidXQgSSdsbCBsZXQgU2lxdWVpcmEgaGF2ZSBh IGxvb2sgYW5kIG1lcmdlIGl0LiBQbHMgcGluZwppbiBjYXNlIHRoaXMgcGF0Y2ggZ2V0cyBsb3N0 LgotRGFuaWVsCgoKPiAtLS0KPiAgRG9jdW1lbnRhdGlvbi9ncHUvZHJtLXVhcGkucnN0IHwgMzgg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICAxIGZpbGUgY2hhbmdlZCwgMzgg aW5zZXJ0aW9ucygrKQo+IAo+IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dwdS9kcm0tdWFw aS5yc3QgYi9Eb2N1bWVudGF0aW9uL2dwdS9kcm0tdWFwaS5yc3QKPiBpbmRleCA5NGY5MDUyMWY1 OGMuLjdkNmM4NmI3YWY3NiAxMDA2NDQKPiAtLS0gYS9Eb2N1bWVudGF0aW9uL2dwdS9kcm0tdWFw aS5yc3QKPiArKysgYi9Eb2N1bWVudGF0aW9uL2dwdS9kcm0tdWFwaS5yc3QKPiBAQCAtMjg1LDYg KzI4NSw0NCBAQCBydW4tdGVzdHMuc2ggaXMgYSB3cmFwcGVyIGFyb3VuZCBwaWdsaXQgdGhhdCB3 aWxsIGV4ZWN1dGUgdGhlIHRlc3RzIG1hdGNoaW5nCj4gIHRoZSAtdCBvcHRpb25zLiBBIHJlcG9y dCBpbiBIVE1MIGZvcm1hdCB3aWxsIGJlIGF2YWlsYWJsZSBpbgo+ICAuL3Jlc3VsdHMvaHRtbC9p bmRleC5odG1sLiBSZXN1bHRzIGNhbiBiZSBjb21wYXJlZCB3aXRoIHBpZ2xpdC4KPiAgCj4gK1Vz aW5nIFZLTVMgdG8gdGVzdCBEUk0gQVBJCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4g Kwo+ICtWS01TIGlzIGEgc29mdHdhcmUtb25seSBtb2RlbCBvZiBhIEtNUyBkcml2ZXIgdGhhdCBp cyB1c2VmdWwgZm9yIHRlc3RpbmcKPiArYW5kIGZvciBydW5uaW5nIGNvbXBvc2l0b3JzLiBWS01T IGFpbXMgdG8gZW5hYmxlIGEgdmlydHVhbCBkaXNwbGF5IHdpdGhvdXQKPiArdGhlIG5lZWQgZm9y IGEgaGFyZHdhcmUgZGlzcGxheSBjYXBhYmlsaXR5LiBUaGVzZSBjaGFyYWN0ZXJpc3RpY3MgbWFk ZSBWS01TCj4gK2EgcGVyZmVjdCB0b29sIGZvciB2YWxpZGF0aW5nIHRoZSBEUk0gY29yZSBiZWhh dmlvciBhbmQgYWxzbyBzdXBwb3J0IHRoZQo+ICtjb21wb3NpdG9yIGRldmVsb3Blci4gVktNUyBo ZWxwcyB1cyB0byB0ZXN0IERSTSBjb3JlIGZ1bmN0aW9uIGluIGEgdmlydHVhbAo+ICttYWNoaW5l LCB3aGljaCBtYWtlcyBpdCBlYXN5IHRvIHRlc3Qgc29tZSBvZiB0aGUgY29yZSBjaGFuZ2VzLgo+ ICsKPiArVG8gVmFsaWRhdGUgY2hhbmdlcyBpbiBEUk0gQVBJIHdpdGggVktNUywgc3RhcnQgc2V0 dGluZyB0aGUga2VybmVsLiBUaGUKPiArVktNUyBtb2R1bGUgaXMgbm90IGVuYWJsZWQgYnkgZGVm YXV0LCBzbyBlbmFibGUgaXQgaW4gdGhlIG1lbnVjb25maWc6Ogo+ICsKPiArCSQgbWFrZSBtZW51 Y29uZmlnCj4gKwo+ICtDb21waWxlIHRoZSBrZXJuZWwgd2l0aCB0aGUgVktNUyBlbmFibGVkIGFu ZCBpbnN0YWxsIGl0IGluIHRoZSB0YXJnZXQKPiArbWFjaGluZS4gVktNUyBjYW4gYmUgcnVuIGlu IGEgVmlydHVhbCBNYWNoaW5lIChRRU1VLCB2aXJ0bWUgb3Igc2ltaWxhcikuCj4gK0l0J3MgcmVj b21tZW5kZWQgdGhlIHVzZSBvZiBLVk0gd2l0aCB0aGUgbWluaW11bSBvZiAxR0Igb2YgUkFNIGFu ZCBmb3VyCj4gK2NvcmVzLgo+ICsKPiArSXQncyBwb3NzaWJsZSB0byBydW4gdGhlIElHVC10ZXN0 cyBpbiBhIFZNIGluIHR3byB3YXlzOgo+ICsxLiBVc2UgSUdUIGluc2lkZSBhIFZNCj4gKzIuIFVz ZSBJR1QgZnJvbSB0aGUgaG9zdCBtYWNoaW5lIGFuZCB3cml0ZSB0aGUgcmVzdWx0cyBpbiBhIHNo YXJlZCBkaXJlY3RvcnkuCj4gKwo+ICtBcyBmb2xsb3csIHRoZXJlIGlzIGFuIGV4YW1wbGUgb2Yg dXNpbmcgYSBWTSB3aXRoIGEgc2hhcmVkIGRpcmVjdG9yeSB3aXRoCj4gK3RoZSBob3N0IG1hY2hp bmUgdG8gcnVuIGlndC10ZXN0cy4gQXMgZXhhbXBsZSBpdCdzIHVzZWQgdmlydG1lOjoKPiArCj4g KwkkIHZpcnRtZS1ydW4gLS1yd2RpciAvcGF0aC9mb3Ivc2hhcmVkX2RpciAtLWtkaXI9cGF0aC9m b3Iva2VybmVsL2RpcmVjdG9yeSAtLW1vZHM9YXV0bwo+ICsKPiArUnVuIHRoZSBpZ3QtdGVzdHMs IGFzIGV4YW1wbGUgaXQncyByYW4gdGhlICdrbXNfZmxpcCcgdGVzdHM6Ogo+ICsKPiArCSQgL3Bh dGgvZm9yL2lndC1ncHUtdG9vbHMvc2NyaXB0cy9ydW4tdGVzdHMuc2ggLXAgLXMgLXQgImttc19m bGlwLioiIC12Cj4gKwo+ICtJbiB0aGlzIGV4YW1wbGUgaW5zdGVhZCBvZiBidWlsZCB0aGUgaWd0 X3J1bm5lciBpdCdzIHVzZWQgUGlnbGl0Cj4gKygtcCBvcHRpb24pOyBpdCdzIGNyZWF0ZWQgaHRt bCBzdW1tYXJ5IG9mIHRoZSB0ZXN0cyByZXN1bHRzIGFuZCBpdCdzIHNhdmVkCj4gK2luIHRoZSBm b2xkZXIgImlndC1ncHUtdG9vbHMvcmVzdWx0cyI7IGl0J3MgZXhlY3V0ZWQgb25seSB0aGUgaWd0 LXRlc3RzCj4gK21hdGNoaW5nIHRoZSAtdCBvcHRpb24uCj4gKwo+ICBEaXNwbGF5IENSQyBTdXBw b3J0Cj4gIC0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgCj4gLS0gCj4gMi4yMC4xCj4gCgotLSAKRGFu aWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Js b2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs