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 lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (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 B01F0C54E64 for ; Thu, 28 Mar 2024 15:42:14 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.698994.1091336 (Exim 4.92) (envelope-from ) id 1rprtB-0003qC-U6; Thu, 28 Mar 2024 15:42:01 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 698994.1091336; Thu, 28 Mar 2024 15:42:01 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1rprtB-0003q5-Qy; Thu, 28 Mar 2024 15:42:01 +0000 Received: by outflank-mailman (input) for mailman id 698994; Thu, 28 Mar 2024 15:42:00 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1rprtA-0003pY-LJ for xen-devel@lists.xenproject.org; Thu, 28 Mar 2024 15:42:00 +0000 Received: from mail-qv1-xf2b.google.com (mail-qv1-xf2b.google.com [2607:f8b0:4864:20::f2b]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id b6eb6144-ed19-11ee-afe3-a90da7624cb6; Thu, 28 Mar 2024 16:42:00 +0100 (CET) Received: by mail-qv1-xf2b.google.com with SMTP id 6a1803df08f44-690c1747c3cso8191736d6.0 for ; Thu, 28 Mar 2024 08:42:00 -0700 (PDT) Received: from localhost ([85.31.135.62]) by smtp.gmail.com with ESMTPSA id mw5-20020a05621433c500b00696abfe8e3csm736444qvb.63.2024.03.28.08.41.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 28 Mar 2024 08:41:58 -0700 (PDT) X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: b6eb6144-ed19-11ee-afe3-a90da7624cb6 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com; s=google; t=1711640519; x=1712245319; darn=lists.xenproject.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=C/b9EW8sje77PTTNIGYtPc1axX0bFt5Eme1G5thvfvc=; b=moS+hFDAsOCb6MmaDF0RJbdH70wN+QRQpdEBwLxEor1SqpHP0wcG9tArWqG1I5ivQs RCGcg+5Kbqvg8SUm633eRSZmtFvLqi9Gd7aXKS7LRa8ot/Mf4dDtCtc32H26NTnkn0cK LJcmcG3i+3Fa7MLB8jOeTWWVu5KDETQVC70G8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711640519; x=1712245319; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=C/b9EW8sje77PTTNIGYtPc1axX0bFt5Eme1G5thvfvc=; b=f8/STLS+Mct0JsHcSkxd252Lll7DQXMPGyfD9iJz6pQ0Wv+9CRwbxPtsmGK+KjBO3k uqIyTq+504IsEE2WHyI7aolEbtBm3axGQ4RDBt5to8FYewyXwlwdUrT74P0SJP5JVH+Z hpjb4nG0rsLgg+x2XPvhs+X+7RZStbag+sgPs4iSlIbYlr6GmGXM8ARmnixStWKYVuXm 1fjafEBHs8r/QRUV/jugChHAxnPWfbuhE5njC4be1PjtPXU3dbxVRcGPMxLZ83q/Mfg9 JWTji2uK1HktOxScZQEhpzQG/KCjNrei+RHcgChwHRHigFn2qD0/fn6BOcYekT9t8HpC FgXw== X-Forwarded-Encrypted: i=1; AJvYcCWZpNVyyWZABCqppteAiUHnWZv4f4++9BlchCyhWfI6Pp+Tu/CmtHLvRfF5aLVkIPeuUYv1Qyy+9xunUH6lJOuyFG9eJg8dYhHEQrVRSFk= X-Gm-Message-State: AOJu0Yy90BDd7G4i1/eCeWTeVJhuDYcDB7GAjqnQpKtf+9EOChTpBjs0 L61fGqnzXYdceomgcZaxiYzh9GOJpmwDU9HUfWLOsH3zqo+ZL+J7kWlmxDbLWZs= X-Google-Smtp-Source: AGHT+IGoOhykmiav7iQ36Wyyjj+EkVpThIxLqz+L20QQI6eklHcF4NTteDPIG4hXB4pfvyH+RnqUqw== X-Received: by 2002:a0c:eb87:0:b0:692:494f:f0aa with SMTP id x7-20020a0ceb87000000b00692494ff0aamr4344811qvo.9.1711640518870; Thu, 28 Mar 2024 08:41:58 -0700 (PDT) Date: Thu, 28 Mar 2024 16:41:56 +0100 From: Roger Pau =?utf-8?B?TW9ubsOp?= To: Ross Lagerwall Cc: grub-devel@gnu.org, xen-devel@lists.xenproject.org, Andrew Cooper , Daniel Kiper Subject: Re: [PATCH 2/7] multiboot2: Allow 64-bit entry tags Message-ID: References: <20240313150748.791236-1-ross.lagerwall@citrix.com> <20240313150748.791236-3-ross.lagerwall@citrix.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: On Thu, Mar 28, 2024 at 03:05:47PM +0000, Ross Lagerwall wrote: > On Tue, Mar 19, 2024 at 10:07 AM Roger Pau Monné wrote: > > > > On Wed, Mar 13, 2024 at 03:07:43PM +0000, Ross Lagerwall wrote: > > > Binaries may be built with entry points above 4G. While bootloaders may > > > relocate them below 4G, it should be possible for the binary to specify > > > those entry points. Therefore, extend the multiboot2 protocol such that > > > 64 bit addresses are allowed for entry points. The extension is done in > > > a backwards-compatible way. > > > > > > Signed-off-by: Ross Lagerwall > > > --- > > > doc/multiboot.texi | 32 +++++++++++++++++++------------- > > > doc/multiboot2.h | 6 +++++- > > > 2 files changed, 24 insertions(+), 14 deletions(-) > > > > > > diff --git a/doc/multiboot.texi b/doc/multiboot.texi > > > index d12719c744eb..049afab53c1f 100644 > > > --- a/doc/multiboot.texi > > > +++ b/doc/multiboot.texi > > > @@ -522,12 +522,12 @@ header. > > > > > > @example > > > @group > > > - +-------------------+ > > > -u16 | type = 3 | > > > -u16 | flags | > > > -u32 | size | > > > -u32 | entry_addr | > > > - +-------------------+ > > > + +-------------------+ > > > +u16 | type = 3 | > > > +u16 | flags | > > > +u32 | size | > > > +u32 / u64 | entry_addr | > > > + +-------------------+ > > > > I might be confused, but this entry point is used in 32bit protected > > mode, and hence a 64bit value is simply impossible to use according to > > the protocol in "3.3 I386 machine state". > > > > Unless that section is expanded to describe other protocols that use > > the entry address in a way where 64bits could be meaningful it seems > > pointless to expand the field. > > I changed this because the same binary is being used for both BIOS boot > and UEFI boot, therefore it may have a base address above 4 GiB. > Despite that, it is expected that GRUB would relocate the binary below > 4 GiB so BIOS boot would still work. Right, for UEFI boot it's possible to have entry addresses above 4GB, because the entry point is called in long mode with identity page tables (and hence you can put addresses in %rip past the 4GB boundary). However the multiboot entry point puts the CPU in 32bit protected mode, and hence %eip can only hold a value below the 4GB boundary. It's technically impossible to use an entry point above 4GB, unless there's something that I'm missing that changes the initial CPU state for the multiboot2 entry point. Thanks, Roger. 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) (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 C7729C54E67 for ; Thu, 28 Mar 2024 15:43:02 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rprtM-0003m2-Jt; Thu, 28 Mar 2024 11:42:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rprtF-0003VG-55 for grub-devel@gnu.org; Thu, 28 Mar 2024 11:42:06 -0400 Received: from mail-qv1-xf35.google.com ([2607:f8b0:4864:20::f35]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rprtC-0007YP-JR for grub-devel@gnu.org; Thu, 28 Mar 2024 11:42:04 -0400 Received: by mail-qv1-xf35.google.com with SMTP id 6a1803df08f44-696a221c53aso18644536d6.0 for ; Thu, 28 Mar 2024 08:41:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com; s=google; t=1711640519; x=1712245319; darn=gnu.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=C/b9EW8sje77PTTNIGYtPc1axX0bFt5Eme1G5thvfvc=; b=Ku5Sop+hI08bsw2sbJRsZ1DujI2omtmUWJ1duKzX1AnQb7j71AmVDUDw/KLi9pE1fn YE/vtjs4PPgY5c0g/pESwA2z+m2NHH83DLZYuHJMwRvD3cyeCCT9FgXYV6U9yZiSNmb4 Pdl0UhegotvcPE4c6/gPvnhwu/8V59JPhYKhs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711640519; x=1712245319; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=C/b9EW8sje77PTTNIGYtPc1axX0bFt5Eme1G5thvfvc=; b=TwCu5Yjp+fntFVmopFmAFha1Db0LYs/JMO0Ba79ZlByxzJJKGR22DwuLe3bvls9+Gu vfdDTHgPLiTGKdze61obN0Ct5c/oW9JuPsC5dd8wlwErHSf0LQ5eUi/AJ2ZnMCtP/3pJ XLtLmny4MU/8gjeQRhB5ycFmqDolPOmodVv6DU0mxeZRh9BXU5Cs32bhYfz76VQqvW3J bFRuC7xE53bNvzDgiEorgkojpX5kL08yOQDMUzU9tLm08HjMbxOQLONuQizubMoItuV1 mTtl3gVnXFITUDoXfDi7DXrpNv453XB1rCMg3vKEdkL071pHwiyuXpC9c1UDbeLO28+W /8xg== X-Gm-Message-State: AOJu0YzprlMRYlgBfPtNr8vJYNZ6+SVUPiVIcXiWD0eZrTqrcfY+EW/V TyUD+r0/syBqYL2nb+qImCPm8etjIuF/o2ZupHK6Va6t1XZWPHkF+kTUId1poxZQXrWN6k7WLX6 C X-Google-Smtp-Source: AGHT+IGoOhykmiav7iQ36Wyyjj+EkVpThIxLqz+L20QQI6eklHcF4NTteDPIG4hXB4pfvyH+RnqUqw== X-Received: by 2002:a0c:eb87:0:b0:692:494f:f0aa with SMTP id x7-20020a0ceb87000000b00692494ff0aamr4344811qvo.9.1711640518870; Thu, 28 Mar 2024 08:41:58 -0700 (PDT) Received: from localhost ([85.31.135.62]) by smtp.gmail.com with ESMTPSA id mw5-20020a05621433c500b00696abfe8e3csm736444qvb.63.2024.03.28.08.41.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 28 Mar 2024 08:41:58 -0700 (PDT) Date: Thu, 28 Mar 2024 16:41:56 +0100 To: Ross Lagerwall Subject: Re: [PATCH 2/7] multiboot2: Allow 64-bit entry tags Message-ID: References: <20240313150748.791236-1-ross.lagerwall@citrix.com> <20240313150748.791236-3-ross.lagerwall@citrix.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Received-SPF: pass client-ip=2607:f8b0:4864:20::f35; envelope-from=roger.pau@cloud.com; helo=mail-qv1-xf35.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.08, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: =?utf-8?q?Roger_Pau_Monn=C3=A9_via_Grub-devel?= Reply-To: The development of GNU GRUB Cc: Roger Pau =?utf-8?B?TW9ubsOp?= , grub-devel@gnu.org, xen-devel@lists.xenproject.org, Andrew Cooper , Daniel Kiper Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org Sender: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org T24gVGh1LCBNYXIgMjgsIDIwMjQgYXQgMDM6MDU6NDdQTSArMDAwMCwgUm9zcyBMYWdlcndhbGwg d3JvdGU6Cj4gT24gVHVlLCBNYXIgMTksIDIwMjQgYXQgMTA6MDfigK9BTSBSb2dlciBQYXUgTW9u bsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4gd3JvdGU6Cj4gPgo+ID4gT24gV2VkLCBNYXIgMTMs IDIwMjQgYXQgMDM6MDc6NDNQTSArMDAwMCwgUm9zcyBMYWdlcndhbGwgd3JvdGU6Cj4gPiA+IEJp bmFyaWVzIG1heSBiZSBidWlsdCB3aXRoIGVudHJ5IHBvaW50cyBhYm92ZSA0Ry4gV2hpbGUgYm9v dGxvYWRlcnMgbWF5Cj4gPiA+IHJlbG9jYXRlIHRoZW0gYmVsb3cgNEcsIGl0IHNob3VsZCBiZSBw b3NzaWJsZSBmb3IgdGhlIGJpbmFyeSB0byBzcGVjaWZ5Cj4gPiA+IHRob3NlIGVudHJ5IHBvaW50 cy4gVGhlcmVmb3JlLCBleHRlbmQgdGhlIG11bHRpYm9vdDIgcHJvdG9jb2wgc3VjaCB0aGF0Cj4g PiA+IDY0IGJpdCBhZGRyZXNzZXMgYXJlIGFsbG93ZWQgZm9yIGVudHJ5IHBvaW50cy4gVGhlIGV4 dGVuc2lvbiBpcyBkb25lIGluCj4gPiA+IGEgYmFja3dhcmRzLWNvbXBhdGlibGUgd2F5Lgo+ID4g Pgo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBSb3NzIExhZ2Vyd2FsbCA8cm9zcy5sYWdlcndhbGxAY2l0 cml4LmNvbT4KPiA+ID4gLS0tCj4gPiA+ICBkb2MvbXVsdGlib290LnRleGkgfCAzMiArKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLQo+ID4gPiAgZG9jL211bHRpYm9vdDIuaCAgIHwgIDYg KysrKystCj4gPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDI0IGluc2VydGlvbnMoKyksIDE0IGRlbGV0 aW9ucygtKQo+ID4gPgo+ID4gPiBkaWZmIC0tZ2l0IGEvZG9jL211bHRpYm9vdC50ZXhpIGIvZG9j L211bHRpYm9vdC50ZXhpCj4gPiA+IGluZGV4IGQxMjcxOWM3NDRlYi4uMDQ5YWZhYjUzYzFmIDEw MDY0NAo+ID4gPiAtLS0gYS9kb2MvbXVsdGlib290LnRleGkKPiA+ID4gKysrIGIvZG9jL211bHRp Ym9vdC50ZXhpCj4gPiA+IEBAIC01MjIsMTIgKzUyMiwxMiBAQCBoZWFkZXIuCj4gPiA+Cj4gPiA+ ICBAZXhhbXBsZQo+ID4gPiAgQGdyb3VwCj4gPiA+IC0gICAgICAgICstLS0tLS0tLS0tLS0tLS0t LS0tKwo+ID4gPiAtdTE2ICAgICB8IHR5cGUgPSAzICAgICAgICAgIHwKPiA+ID4gLXUxNiAgICAg fCBmbGFncyAgICAgICAgICAgICB8Cj4gPiA+IC11MzIgICAgIHwgc2l6ZSAgICAgICAgICAgICAg fAo+ID4gPiAtdTMyICAgICB8IGVudHJ5X2FkZHIgICAgICAgIHwKPiA+ID4gLSAgICAgICAgKy0t LS0tLS0tLS0tLS0tLS0tLS0rCj4gPiA+ICsgICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0r Cj4gPiA+ICt1MTYgICAgICAgfCB0eXBlID0gMyAgICAgICAgICB8Cj4gPiA+ICt1MTYgICAgICAg fCBmbGFncyAgICAgICAgICAgICB8Cj4gPiA+ICt1MzIgICAgICAgfCBzaXplICAgICAgICAgICAg ICB8Cj4gPiA+ICt1MzIgLyB1NjQgfCBlbnRyeV9hZGRyICAgICAgICB8Cj4gPiA+ICsgICAgICAg ICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0rCj4gPgo+ID4gSSBtaWdodCBiZSBjb25mdXNlZCwgYnV0 IHRoaXMgZW50cnkgcG9pbnQgaXMgdXNlZCBpbiAzMmJpdCBwcm90ZWN0ZWQKPiA+IG1vZGUsIGFu ZCBoZW5jZSBhIDY0Yml0IHZhbHVlIGlzIHNpbXBseSBpbXBvc3NpYmxlIHRvIHVzZSBhY2NvcmRp bmcgdG8KPiA+IHRoZSBwcm90b2NvbCBpbiAiMy4zIEkzODYgbWFjaGluZSBzdGF0ZSIuCj4gPgo+ ID4gVW5sZXNzIHRoYXQgc2VjdGlvbiBpcyBleHBhbmRlZCB0byBkZXNjcmliZSBvdGhlciBwcm90 b2NvbHMgdGhhdCB1c2UKPiA+IHRoZSBlbnRyeSBhZGRyZXNzIGluIGEgd2F5IHdoZXJlIDY0Yml0 cyBjb3VsZCBiZSBtZWFuaW5nZnVsIGl0IHNlZW1zCj4gPiBwb2ludGxlc3MgdG8gZXhwYW5kIHRo ZSBmaWVsZC4KPiAKPiBJIGNoYW5nZWQgdGhpcyBiZWNhdXNlIHRoZSBzYW1lIGJpbmFyeSBpcyBi ZWluZyB1c2VkIGZvciBib3RoIEJJT1MgYm9vdAo+IGFuZCBVRUZJIGJvb3QsIHRoZXJlZm9yZSBp dCBtYXkgaGF2ZSBhIGJhc2UgYWRkcmVzcyBhYm92ZSA0IEdpQi4KPiBEZXNwaXRlIHRoYXQsIGl0 IGlzIGV4cGVjdGVkIHRoYXQgR1JVQiB3b3VsZCByZWxvY2F0ZSB0aGUgYmluYXJ5IGJlbG93Cj4g NCBHaUIgc28gQklPUyBib290IHdvdWxkIHN0aWxsIHdvcmsuCgpSaWdodCwgZm9yIFVFRkkgYm9v dCBpdCdzIHBvc3NpYmxlIHRvIGhhdmUgZW50cnkgYWRkcmVzc2VzIGFib3ZlIDRHQiwKYmVjYXVz ZSB0aGUgZW50cnkgcG9pbnQgaXMgY2FsbGVkIGluIGxvbmcgbW9kZSB3aXRoIGlkZW50aXR5IHBh Z2UKdGFibGVzIChhbmQgaGVuY2UgeW91IGNhbiBwdXQgYWRkcmVzc2VzIGluICVyaXAgcGFzdCB0 aGUgNEdCCmJvdW5kYXJ5KS4KCkhvd2V2ZXIgdGhlIG11bHRpYm9vdCBlbnRyeSBwb2ludCBwdXRz IHRoZSBDUFUgaW4gMzJiaXQgcHJvdGVjdGVkCm1vZGUsIGFuZCBoZW5jZSAlZWlwIGNhbiBvbmx5 IGhvbGQgYSB2YWx1ZSBiZWxvdyB0aGUgNEdCIGJvdW5kYXJ5LgoKSXQncyB0ZWNobmljYWxseSBp bXBvc3NpYmxlIHRvIHVzZSBhbiBlbnRyeSBwb2ludCBhYm92ZSA0R0IsIHVubGVzcwp0aGVyZSdz IHNvbWV0aGluZyB0aGF0IEknbSBtaXNzaW5nIHRoYXQgY2hhbmdlcyB0aGUgaW5pdGlhbCBDUFUg c3RhdGUKZm9yIHRoZSBtdWx0aWJvb3QyIGVudHJ5IHBvaW50LgoKVGhhbmtzLCBSb2dlci4KCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkdydWItZGV2ZWwg bWFpbGluZyBsaXN0CkdydWItZGV2ZWxAZ251Lm9yZwpodHRwczovL2xpc3RzLmdudS5vcmcvbWFp bG1hbi9saXN0aW5mby9ncnViLWRldmVsCg==