From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1adL8k-0007D4-KK for mharc-grub-devel@gnu.org; Tue, 08 Mar 2016 12:09:46 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59905) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1adL8h-0007CD-6F for grub-devel@gnu.org; Tue, 08 Mar 2016 12:09:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1adL8c-0005dF-3P for grub-devel@gnu.org; Tue, 08 Mar 2016 12:09:43 -0500 Received: from mail-lb0-x234.google.com ([2a00:1450:4010:c04::234]:34323) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1adL8b-0005d7-Mh for grub-devel@gnu.org; Tue, 08 Mar 2016 12:09:38 -0500 Received: by mail-lb0-x234.google.com with SMTP id xr8so26416858lbb.1 for ; Tue, 08 Mar 2016 09:09:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=subject:to:references:cc:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding; bh=v1ZJ84+GzZ2y2cY3orKJa0McsNRqvILYb1LrZqcHR8w=; b=D092LFPHHdDWEosvSZaV1toIP+LtHba4WC6Kqor+qDgbABHHJWsq6v0HrpkCt+VaFa YvOe0DECzIjWfYJEQrZqZUTCQk6+JF/UOrGeU0yrHY7CtE/HbFH0oYoZimG5BnXm7zse czT8X3AgW6ClF8oArUKZLUS9NDvoBHVWeezYYncvmet09HzQgU5BjoPW7Z9iBLnBdSuy 8hOT6R1F44xXWPzvIX5pBMQ37ZHevmgC6C3J/z/DZFycxVZc5KVx15ZQrSQMmLBKpOuV A0UQXIlAMcfRVOuZ9Nl4XLBXJvRxUhcPWXJzlA/0yhO1MCUtSPrJornlG4/71u1VDPbN 8Mxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:cc:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=v1ZJ84+GzZ2y2cY3orKJa0McsNRqvILYb1LrZqcHR8w=; b=evFVh89W4gdoK6HJ4ZUSwDY6kvoDrAEEOqK8v5PW3d/bmUWXkkDCkNCt1cgvnNfSsO uPT9z8WMJdSUKSLso87K9xeguN9IOejDeOQzzboaO5zufPJTNv1h2chSNEBgLlP8fdwv /U7ihe68CvMKpq1YCM3JQF8s86eJ7IMcqycy4afCCgFFq638sH7uv2D9Hx/kiNwAzsER OyGTJexND9nNLmLtcndPTguwh+4aOfSt8oS6CwXzc032WQdiIhDFBeVsMfF1dTRz+3DN O9/WEd74UJ2fIejZKl/BenlvnOt/zMjnsUQ8tXs/9wT2zhrOEI1bYTUUYUST9Gv2dXld fWyw== X-Gm-Message-State: AD7BkJLQWHo6v0vJfUIjTR84ScLPFS0SrqKfujavAVmgKQE/vmZ7JPPXUIs6bCPfSrv+ww== X-Received: by 10.112.151.134 with SMTP id uq6mr8005635lbb.18.1457456976434; Tue, 08 Mar 2016 09:09:36 -0800 (PST) Received: from [192.168.1.42] (ppp109-252-76-159.pppoe.spdop.ru. [109.252.76.159]) by smtp.gmail.com with ESMTPSA id d131sm632324lfg.27.2016.03.08.09.09.34 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 08 Mar 2016 09:09:35 -0800 (PST) Subject: Re: [PATCH v3 4/4] arm64: update the introduction of xen boot commands in docs/grub.texi To: Fu Wei References: <1456485211-32695-1-git-send-email-fu.wei@linaro.org> <1456485211-32695-5-git-send-email-fu.wei@linaro.org> <56D1DC36.1020603@gmail.com> <56DE854C.9010506@gmail.com> From: Andrei Borzenkov Message-ID: <56DF074E.1020803@gmail.com> Date: Tue, 8 Mar 2016 20:09:34 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2a00:1450:4010:c04::234 Cc: The development of GNU GRUB , xen-devel@lists.xensource.com, Ian Campbell , Vladimir Serbinenko , Julien Grall , Leif Lindholm , Linaro UEFI Mailman List , Jon Masters X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: The development of GNU GRUB List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Mar 2016 17:09:44 -0000 08.03.2016 19:37, Fu Wei пишет: > Hi Andrei, > > On 8 March 2016 at 14:54, Andrei Borzenkov wrote: >> 07.03.2016 11:22, Fu Wei пишет: >>> Hi Andrei, >>> >>> On 28 February 2016 at 00:44, Fu Wei wrote: >>>> Hi Andrei >>>> >>>> On 28 February 2016 at 01:26, Andrei Borzenkov wrote: >>>>> 26.02.2016 14:13, fu.wei@linaro.org пишет: >>>>>> From: Fu Wei >>>>>> >>>>>> delete: xen_linux, xen_initrd, xen_xsm >>>>>> add: xen_module >>>>>> >>>>>> This update bases on >>>>>> commit 0edd750e50698854068358ea53528100a9192902 >>>>>> Author: Vladimir Serbinenko >>>>>> Date: Fri Jan 22 10:18:47 2016 +0100 >>>>>> >>>>>> xen_boot: Remove obsolete module type distinctions. >>>>>> >>>>>> Signed-off-by: Fu Wei >>>>>> --- >>>>>> docs/grub.texi | 33 ++++++++++----------------------- >>>>>> 1 file changed, 10 insertions(+), 23 deletions(-) >>>>>> >>>>>> diff --git a/docs/grub.texi b/docs/grub.texi >>>>>> index 82f6fa4..3fbdd99 100644 >>>>>> --- a/docs/grub.texi >>>>>> +++ b/docs/grub.texi >>>>>> @@ -3861,9 +3861,7 @@ you forget a command, you can run the command @command{help} >>>>>> * videoinfo:: List available video modes >>>>>> @comment * xen_*:: Xen boot commands >>>>>> * xen_hypervisor:: Load xen hypervisor binary >>>>>> -* xen_linux:: Load dom0 kernel for xen hypervisor >>>>>> -* xen_initrd:: Load dom0 initrd for dom0 kernel >>>>>> -* xen_xsm:: Load xen security module for xen hypervisor >>>>>> +* xen_module:: Load xen modules for xen hypervisor >>>>>> @end menu >>>>>> >>>>>> >>>>>> @@ -5141,30 +5139,19 @@ verbatim as the @dfn{kernel command-line}. Any other binaries must be >>>>>> reloaded after using this command. >>>>>> @end deffn >>>>>> >>>>>> -@node xen_linux >>>>>> -@subsection xen_linux >>>>>> +@node xen_module >>>>>> +@subsection xen_module >>>>>> >>>>>> -@deffn Command xen_linux file [arguments] >>>>>> -Load a dom0 kernel image for xen hypervisor at the booting process of xen. >>>>>> +@deffn Command xen_module [--nounzip] file [arguments] >>>>>> +Load a module for xen hypervisor at the booting process of xen. >>>>>> The rest of the line is passed verbatim as the module command line. >>>>> >>>>> == >>>>>> +On i386, the modules will be identified by Multiboot(2) protocol. >>>>>> +On arm64, each module will be identified by the order in which the >>>>>> +modules are added. >>>>> >>>>> I think it is better to skip it entirely. It is not really correct - >>>>> neither multiboot protocol provides any module identification (Xen >>>>> probes module types), nor is i386 using multiboot2, nor can all modules >>>>> be probed, so order still matters. To avoid confusion I'd simply >>>>> replaced the above three lines with >>>>> >>>>> Modules should be loaded in the following order: >>>>> >>>>>> +The 1st module: dom0 kernel image >>>>>> +The 2nd module: dom0 ramdisk (optional) >>>>> >>>>> This covers both supported platforms without going into too deep >>>>> details; if you and Vladimir are OK, I'll commit with this change. >>>> >>>> Thank you very much! >>>> Sorry I am not familiar with xen on i386, so maybe I misunderstand this. >>>> So please commit with your change, Thanks for your correction :-) >>> >>> I just fetched the mainline GRUB, i would like to know why this >>> patchset haven't been applied? >>> Anything I need to do(improve it or post a new patchset according to >>> your suggestion) for this patchset? >>> >> >> Sorry for delay. It is not really about your patchset, but we need some >> decision about loading additional modules/lack of initrd on ARM. Until >> then I'd rather avoid committing to any high-level configuration support >> that will require even more backward compatible hacks later. >> >> As it stands now either Xen needs to support autodetection or we need to >> revert to providing module type explicitly. > > So speaking of loading additional modules/lack of initrd on ARM, I thinks that > will (only) affect loading XSM. > For this, I have discussed of that with Julien, I think : > (1) the first module must be kernel > (2) the second module must be initrd, if we have initrd > (3) Start from the 2nd module, XEN will detect that if the module is a XSM by > the XSM binary signature. if we get XSM as the second module, that > means we have not initrd. > If that's the plan, excellent. Vladimir, is it OK to commit then? > please correct me if I misunderstand it > > :-) > From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrei Borzenkov Subject: Re: [PATCH v3 4/4] arm64: update the introduction of xen boot commands in docs/grub.texi Date: Tue, 8 Mar 2016 20:09:34 +0300 Message-ID: <56DF074E.1020803@gmail.com> References: <1456485211-32695-1-git-send-email-fu.wei@linaro.org> <1456485211-32695-5-git-send-email-fu.wei@linaro.org> <56D1DC36.1020603@gmail.com> <56DE854C.9010506@gmail.com> Reply-To: The development of GNU GRUB Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: grub-devel-bounces+gcbgd-grub-devel=m.gmane.org@gnu.org Sender: grub-devel-bounces+gcbgd-grub-devel=m.gmane.org@gnu.org To: Fu Wei Cc: The development of GNU GRUB , xen-devel@lists.xensource.com, Ian Campbell , Vladimir Serbinenko , Julien Grall , Leif Lindholm , Linaro UEFI Mailman List , Jon Masters List-Id: xen-devel@lists.xenproject.org MDguMDMuMjAxNiAxOTozNywgRnUgV2VpINC/0LjRiNC10YI6Cj4gSGkgQW5kcmVpLAo+IAo+IE9u IDggTWFyY2ggMjAxNiBhdCAxNDo1NCwgQW5kcmVpIEJvcnplbmtvdiA8YXJ2aWRqYWFyQGdtYWls LmNvbT4gd3JvdGU6Cj4+IDA3LjAzLjIwMTYgMTE6MjIsIEZ1IFdlaSDQv9C40YjQtdGCOgo+Pj4g SGkgQW5kcmVpLAo+Pj4KPj4+IE9uIDI4IEZlYnJ1YXJ5IDIwMTYgYXQgMDA6NDQsIEZ1IFdlaSA8 ZnUud2VpQGxpbmFyby5vcmc+IHdyb3RlOgo+Pj4+IEhpIEFuZHJlaQo+Pj4+Cj4+Pj4gT24gMjgg RmVicnVhcnkgMjAxNiBhdCAwMToyNiwgQW5kcmVpIEJvcnplbmtvdiA8YXJ2aWRqYWFyQGdtYWls LmNvbT4gd3JvdGU6Cj4+Pj4+IDI2LjAyLjIwMTYgMTQ6MTMsIGZ1LndlaUBsaW5hcm8ub3JnINC/ 0LjRiNC10YI6Cj4+Pj4+PiBGcm9tOiBGdSBXZWkgPGZ1LndlaUBsaW5hcm8ub3JnPgo+Pj4+Pj4K Pj4+Pj4+IGRlbGV0ZTogeGVuX2xpbnV4LCB4ZW5faW5pdHJkLCB4ZW5feHNtCj4+Pj4+PiBhZGQ6 IHhlbl9tb2R1bGUKPj4+Pj4+Cj4+Pj4+PiBUaGlzIHVwZGF0ZSBiYXNlcyBvbgo+Pj4+Pj4gICAg IGNvbW1pdCAwZWRkNzUwZTUwNjk4ODU0MDY4MzU4ZWE1MzUyODEwMGE5MTkyOTAyCj4+Pj4+PiAg ICAgQXV0aG9yOiBWbGFkaW1pciBTZXJiaW5lbmtvIDxwaGNvZGVyQGdtYWlsLmNvbT4KPj4+Pj4+ ICAgICBEYXRlOiAgIEZyaSBKYW4gMjIgMTA6MTg6NDcgMjAxNiArMDEwMAo+Pj4+Pj4KPj4+Pj4+ ICAgICAgICAgeGVuX2Jvb3Q6IFJlbW92ZSBvYnNvbGV0ZSBtb2R1bGUgdHlwZSBkaXN0aW5jdGlv bnMuCj4+Pj4+Pgo+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogRnUgV2VpIDxmdS53ZWlAbGluYXJvLm9y Zz4KPj4+Pj4+IC0tLQo+Pj4+Pj4gIGRvY3MvZ3J1Yi50ZXhpIHwgMzMgKysrKysrKysrKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCj4+Pj4+PiAgMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMo KyksIDIzIGRlbGV0aW9ucygtKQo+Pj4+Pj4KPj4+Pj4+IGRpZmYgLS1naXQgYS9kb2NzL2dydWIu dGV4aSBiL2RvY3MvZ3J1Yi50ZXhpCj4+Pj4+PiBpbmRleCA4MmY2ZmE0Li4zZmJkZDk5IDEwMDY0 NAo+Pj4+Pj4gLS0tIGEvZG9jcy9ncnViLnRleGkKPj4+Pj4+ICsrKyBiL2RvY3MvZ3J1Yi50ZXhp Cj4+Pj4+PiBAQCAtMzg2MSw5ICszODYxLDcgQEAgeW91IGZvcmdldCBhIGNvbW1hbmQsIHlvdSBj YW4gcnVuIHRoZSBjb21tYW5kIEBjb21tYW5ke2hlbHB9Cj4+Pj4+PiAgKiB2aWRlb2luZm86OiAg ICAgICAgICAgICAgICAgICBMaXN0IGF2YWlsYWJsZSB2aWRlbyBtb2Rlcwo+Pj4+Pj4gIEBjb21t ZW50ICogeGVuXyo6OiAgICAgICAgICAgICAgWGVuIGJvb3QgY29tbWFuZHMKPj4+Pj4+ICAqIHhl bl9oeXBlcnZpc29yOjogICAgICAgICAgICAgIExvYWQgeGVuIGh5cGVydmlzb3IgYmluYXJ5Cj4+ Pj4+PiAtKiB4ZW5fbGludXg6OiAgICAgICAgICAgICAgICAgICBMb2FkIGRvbTAga2VybmVsIGZv ciB4ZW4gaHlwZXJ2aXNvcgo+Pj4+Pj4gLSogeGVuX2luaXRyZDo6ICAgICAgICAgICAgICAgICAg TG9hZCBkb20wIGluaXRyZCBmb3IgZG9tMCBrZXJuZWwKPj4+Pj4+IC0qIHhlbl94c206OiAgICAg ICAgICAgICAgICAgICAgIExvYWQgeGVuIHNlY3VyaXR5IG1vZHVsZSBmb3IgeGVuIGh5cGVydmlz b3IKPj4+Pj4+ICsqIHhlbl9tb2R1bGU6OiAgICAgICAgICAgICAgICAgIExvYWQgeGVuIG1vZHVs ZXMgZm9yIHhlbiBoeXBlcnZpc29yCj4+Pj4+PiAgQGVuZCBtZW51Cj4+Pj4+Pgo+Pj4+Pj4KPj4+ Pj4+IEBAIC01MTQxLDMwICs1MTM5LDE5IEBAIHZlcmJhdGltIGFzIHRoZSBAZGZue2tlcm5lbCBj b21tYW5kLWxpbmV9LiBBbnkgb3RoZXIgYmluYXJpZXMgbXVzdCBiZQo+Pj4+Pj4gIHJlbG9hZGVk IGFmdGVyIHVzaW5nIHRoaXMgY29tbWFuZC4KPj4+Pj4+ICBAZW5kIGRlZmZuCj4+Pj4+Pgo+Pj4+ Pj4gLUBub2RlIHhlbl9saW51eAo+Pj4+Pj4gLUBzdWJzZWN0aW9uIHhlbl9saW51eAo+Pj4+Pj4g K0Bub2RlIHhlbl9tb2R1bGUKPj4+Pj4+ICtAc3Vic2VjdGlvbiB4ZW5fbW9kdWxlCj4+Pj4+Pgo+ Pj4+Pj4gLUBkZWZmbiBDb21tYW5kIHhlbl9saW51eCBmaWxlIFthcmd1bWVudHNdCj4+Pj4+PiAt TG9hZCBhIGRvbTAga2VybmVsIGltYWdlIGZvciB4ZW4gaHlwZXJ2aXNvciBhdCB0aGUgYm9vdGlu ZyBwcm9jZXNzIG9mIHhlbi4KPj4+Pj4+ICtAZGVmZm4gQ29tbWFuZCB4ZW5fbW9kdWxlIFstLW5v dW56aXBdIGZpbGUgW2FyZ3VtZW50c10KPj4+Pj4+ICtMb2FkIGEgbW9kdWxlIGZvciB4ZW4gaHlw ZXJ2aXNvciBhdCB0aGUgYm9vdGluZyBwcm9jZXNzIG9mIHhlbi4KPj4+Pj4+ICBUaGUgcmVzdCBv ZiB0aGUgbGluZSBpcyBwYXNzZWQgdmVyYmF0aW0gYXMgdGhlIG1vZHVsZSBjb21tYW5kIGxpbmUu Cj4+Pj4+Cj4+Pj4+ID09Cj4+Pj4+PiArT24gaTM4NiwgIHRoZSBtb2R1bGVzIHdpbGwgYmUgaWRl bnRpZmllZCBieSBNdWx0aWJvb3QoMikgcHJvdG9jb2wuCj4+Pj4+PiArT24gYXJtNjQsIGVhY2gg bW9kdWxlIHdpbGwgYmUgaWRlbnRpZmllZCBieSB0aGUgb3JkZXIgaW4gd2hpY2ggdGhlCj4+Pj4+ PiArbW9kdWxlcyBhcmUgYWRkZWQuCj4+Pj4+Cj4+Pj4+IEkgdGhpbmsgaXQgaXMgYmV0dGVyIHRv IHNraXAgaXQgZW50aXJlbHkuIEl0IGlzIG5vdCByZWFsbHkgY29ycmVjdCAtCj4+Pj4+IG5laXRo ZXIgbXVsdGlib290IHByb3RvY29sIHByb3ZpZGVzIGFueSBtb2R1bGUgaWRlbnRpZmljYXRpb24g KFhlbgo+Pj4+PiBwcm9iZXMgbW9kdWxlIHR5cGVzKSwgbm9yIGlzIGkzODYgdXNpbmcgbXVsdGli b290Miwgbm9yIGNhbiBhbGwgbW9kdWxlcwo+Pj4+PiBiZSBwcm9iZWQsIHNvIG9yZGVyIHN0aWxs IG1hdHRlcnMuIFRvIGF2b2lkIGNvbmZ1c2lvbiBJJ2Qgc2ltcGx5Cj4+Pj4+IHJlcGxhY2VkIHRo ZSBhYm92ZSB0aHJlZSBsaW5lcyB3aXRoCj4+Pj4+Cj4+Pj4+IE1vZHVsZXMgc2hvdWxkIGJlIGxv YWRlZCBpbiB0aGUgZm9sbG93aW5nIG9yZGVyOgo+Pj4+Pgo+Pj4+Pj4gK1RoZSAxc3QgbW9kdWxl OiBkb20wIGtlcm5lbCBpbWFnZQo+Pj4+Pj4gK1RoZSAybmQgbW9kdWxlOiBkb20wIHJhbWRpc2sg KG9wdGlvbmFsKQo+Pj4+Pgo+Pj4+PiBUaGlzIGNvdmVycyBib3RoIHN1cHBvcnRlZCBwbGF0Zm9y bXMgd2l0aG91dCBnb2luZyBpbnRvIHRvbyBkZWVwCj4+Pj4+IGRldGFpbHM7IGlmIHlvdSBhbmQg VmxhZGltaXIgYXJlIE9LLCBJJ2xsIGNvbW1pdCB3aXRoIHRoaXMgY2hhbmdlLgo+Pj4+Cj4+Pj4g VGhhbmsgeW91IHZlcnkgbXVjaCEKPj4+PiBTb3JyeSBJIGFtIG5vdCBmYW1pbGlhciB3aXRoIHhl biBvbiBpMzg2LCBzbyBtYXliZSBJIG1pc3VuZGVyc3RhbmQgdGhpcy4KPj4+PiBTbyBwbGVhc2Ug Y29tbWl0IHdpdGggeW91ciBjaGFuZ2UsIFRoYW5rcyBmb3IgeW91ciBjb3JyZWN0aW9uIDotKQo+ Pj4KPj4+IEkganVzdCBmZXRjaGVkIHRoZSBtYWlubGluZSBHUlVCLCBpIHdvdWxkIGxpa2UgdG8g a25vdyB3aHkgdGhpcwo+Pj4gcGF0Y2hzZXQgaGF2ZW4ndCBiZWVuIGFwcGxpZWQ/Cj4+PiBBbnl0 aGluZyBJIG5lZWQgdG8gZG8oaW1wcm92ZSBpdCBvciBwb3N0IGEgbmV3IHBhdGNoc2V0IGFjY29y ZGluZyB0bwo+Pj4geW91ciBzdWdnZXN0aW9uKSBmb3IgdGhpcyBwYXRjaHNldD8KPj4+Cj4+Cj4+ IFNvcnJ5IGZvciBkZWxheS4gSXQgaXMgbm90IHJlYWxseSBhYm91dCB5b3VyIHBhdGNoc2V0LCBi dXQgd2UgbmVlZCBzb21lCj4+IGRlY2lzaW9uIGFib3V0IGxvYWRpbmcgYWRkaXRpb25hbCBtb2R1 bGVzL2xhY2sgb2YgaW5pdHJkIG9uIEFSTS4gVW50aWwKPj4gdGhlbiBJJ2QgcmF0aGVyIGF2b2lk IGNvbW1pdHRpbmcgdG8gYW55IGhpZ2gtbGV2ZWwgY29uZmlndXJhdGlvbiBzdXBwb3J0Cj4+IHRo YXQgd2lsbCByZXF1aXJlIGV2ZW4gbW9yZSBiYWNrd2FyZCBjb21wYXRpYmxlIGhhY2tzIGxhdGVy Lgo+Pgo+PiBBcyBpdCBzdGFuZHMgbm93IGVpdGhlciBYZW4gbmVlZHMgdG8gc3VwcG9ydCBhdXRv ZGV0ZWN0aW9uIG9yIHdlIG5lZWQgdG8KPj4gcmV2ZXJ0IHRvIHByb3ZpZGluZyBtb2R1bGUgdHlw ZSBleHBsaWNpdGx5Lgo+IAo+IFNvIHNwZWFraW5nIG9mIGxvYWRpbmcgYWRkaXRpb25hbCBtb2R1 bGVzL2xhY2sgb2YgaW5pdHJkIG9uIEFSTSwgSSB0aGlua3MgdGhhdAo+IHdpbGwgKG9ubHkpIGFm ZmVjdCBsb2FkaW5nIFhTTS4KPiBGb3IgdGhpcywgSSBoYXZlIGRpc2N1c3NlZCBvZiB0aGF0IHdp dGggSnVsaWVuLCBJIHRoaW5rIDoKPiAoMSkgdGhlIGZpcnN0IG1vZHVsZSBtdXN0IGJlIGtlcm5l bAo+ICgyKSB0aGUgc2Vjb25kIG1vZHVsZSBtdXN0IGJlIGluaXRyZCwgaWYgd2UgaGF2ZSBpbml0 cmQKPiAoMykgU3RhcnQgZnJvbSB0aGUgMm5kIG1vZHVsZSwgWEVOIHdpbGwgZGV0ZWN0IHRoYXQg aWYgdGhlIG1vZHVsZSBpcyBhIFhTTSBieQo+IHRoZSBYU00gYmluYXJ5IHNpZ25hdHVyZS4gaWYg d2UgZ2V0IFhTTSBhcyB0aGUgc2Vjb25kIG1vZHVsZSwgdGhhdAo+IG1lYW5zIHdlIGhhdmUgbm90 IGluaXRyZC4KPiAKCklmIHRoYXQncyB0aGUgcGxhbiwgZXhjZWxsZW50LiBWbGFkaW1pciwgaXMg aXQgT0sgdG8gY29tbWl0IHRoZW4/Cgo+IHBsZWFzZSBjb3JyZWN0IG1lIGlmIEkgbWlzdW5kZXJz dGFuZCBpdAo+IAo+IDotKQo+IAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkdydWItZGV2ZWwgbWFpbGluZyBsaXN0CkdydWItZGV2ZWxAZ251Lm9yZwpo dHRwczovL2xpc3RzLmdudS5vcmcvbWFpbG1hbi9saXN0aW5mby9ncnViLWRldmVsCg==