From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Jesse Medeiros Newsgroups: gmane.emacs.devel Subject: Re: Patch to vertically center line content when using line-spacing variable Date: Sun, 29 Sep 2019 20:54:01 -0300 Message-ID: References: <83ftl85tbn.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000caae9e0593b9d5f9" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="44561"; mail-complaints-to="usenet@blaine.gmane.org" Cc: Eli Zaretskii , Stefan Kangas , emacs-devel@gnu.org To: Robert Pluim Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Sep 30 01:54:24 2019 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1iEj1C-000BRH-IL for ged-emacs-devel@m.gmane.org; Mon, 30 Sep 2019 01:54:22 +0200 Original-Received: from localhost ([::1]:42788 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iEj1A-0005v1-Mm for ged-emacs-devel@m.gmane.org; Sun, 29 Sep 2019 19:54:20 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:47791) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iEj14-0005us-CO for emacs-devel@gnu.org; Sun, 29 Sep 2019 19:54:15 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iEj12-0001rv-RU for emacs-devel@gnu.org; Sun, 29 Sep 2019 19:54:14 -0400 Original-Received: from mail-qt1-x843.google.com ([2607:f8b0:4864:20::843]:45749) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iEj0z-0001rJ-W4; Sun, 29 Sep 2019 19:54:10 -0400 Original-Received: by mail-qt1-x843.google.com with SMTP id c21so14683172qtj.12; Sun, 29 Sep 2019 16:54:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=30vMAQM7IAOOPAH0Q6XuunqOFPxmWqD6NDm04QH5X1c=; b=s8eMjitjSZP6b+gqP6VmfJ+UK4SegbFoUQr0ApvFhbXT+c8Ain7tpufAfi1r0fsWV7 6ctbfRGUkh0UwkCYnDAn9Ca4d+Mm5dm4O2tWXWC/CwUM4m9QuyIN18GiIewZpE7u971b E4VWnQ26KEsvTiR34Z61/68la4Rd6Wq63CkDuR/VH2T8vXTIvW/z5qxNfmiVW4c34v5l jtWUG2DXTSy4h+XILN/gW5T6KAGY85IynZF0T9hTqvpWcmVTxUtQ9XNSUVChtKoQd0ba R0SaQhWyrmOeXcmfCJWMSohcMlIkPSBmARfVqqjrSzutgDeOKGGWoVmMGfVxkPCuR/3e 6z/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=30vMAQM7IAOOPAH0Q6XuunqOFPxmWqD6NDm04QH5X1c=; b=B4VdCM7sGd+KWlLwJhsiJ2BIuLlKay8/e/XM5oOHeNKLTYhmh9tcZRpB+Bav90uPle OKXhupKOSDpSS35TOwkRXZNFASsQl1J9pSycfoPdS3cQtd0yrilbY8o7gKg/mmUV7zs6 eF1MPQcG1Sr2MzMNBIcJn04Cf5ibX4rNmqVi6C5/Ct8Q15rW9yqe15qZ2A1YQUYpmDja bu7Qp2k/ty+Ud8LwAe5ATCUG2bG5grDae17uKENv9AoG7iXjbxRI5rgXNiO59D3JsHz8 XkQ2mzybxTXkpEKO0QlCzcL7Cc4mSGlHyIrWQf8ACAE9a6J/7sxfta7ShOz4/60UmB+F VggQ== X-Gm-Message-State: APjAAAU1zMrz0ETkziW/B/Re0DAdEGAVxab4QLXv4Dit6R+wvS1mF2n+ 7gbpg4kRa1YZ059m69luiXONylRSUIhfKIQ1OCE= X-Google-Smtp-Source: APXvYqyJ9UkFKvjLe8hujty/GabVbal2uiLVcElEKozHeGQU2XCZROXRu4vzrxRcg0f97E5hx9DjGzueloxWazMzHD4= X-Received: by 2002:aed:3903:: with SMTP id l3mr22379594qte.165.1569801248607; Sun, 29 Sep 2019 16:54:08 -0700 (PDT) In-Reply-To: X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::843 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:240399 Archived-At: --000000000000caae9e0593b9d5f9 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable > Jesse> diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi > Jesse> index 618ea16fcf..75a6725f03 100644 > Jesse> --- a/doc/lispref/frames.texi > Jesse> +++ b/doc/lispref/frames.texi > Jesse> @@ -1857,6 +1857,11 @@ Layout Parameters > Jesse> Additional space to leave below each text line, in pixels (a = positive > Jesse> integer). @xref{Line Height}, for more information. > > Jesse> +@vindex line-spacing-vertical-center@r{, a frame parameter} > Jesse> +@item line-spacing-vertical-center > Jesse> +If non-nil, centers the line content vertically when using > Jesse> +using the @code{line-spacing} variable. > Jesse> + > > I don=CA=BCt think you implemented this as a frame parameter, which means= the > documentation should go in "@node Line Height" in display.texi, or you > could implement the frame parameter as well. [1] > > Jesse> if (extra_line_spacing > 0) > Jesse> { > Jesse> - it->descent +=3D extra_line_spacing; > Jesse> + if (! BVAR (XBUFFER (it->w->contents), line_spacing_ver= tical_center)) > > I think this currently works because Qnil =3D=3D 0, for now, but you shou= ld > probably use NILP. I've worked the on these issues you raised. Hopefully it's all ok now. --000000000000caae9e0593b9d5f9 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Center-lines-vertically-with-line-spacing-vertical-c.patch" Content-Disposition: attachment; filename="0001-Center-lines-vertically-with-line-spacing-vertical-c.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k15n0nlh0 RnJvbSA5YmM1Y2JiNzI3ZTVkY2FjOWY3NzQwMjg4NThlMjYwOGQxYTIzMDMzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXNzZSBOYXphcmlvIDxqZXNzZW56ckBnbWFpbC5jb20+CkRh dGU6IFN1biwgOCBTZXAgMjAxOSAyMDowNjoxNSAtMDMwMApTdWJqZWN0OiBbUEFUQ0hdIENlbnRl ciBsaW5lcyB2ZXJ0aWNhbGx5IHdpdGggbGluZS1zcGFjaW5nLXZlcnRpY2FsLWNlbnRlcgoKV2hl biB1c2luZyBsaW5lLXNwYWNpbmcsIHRoZSBuZXcgdmFyaWFibGUgbGluZS1zcGFjaW5nLXZlcnRp Y2FsLWNlbnRlcgpjYW4gYmUgc2V0IHRvIG5vbi1uaWwgdG8gY2VudGVyIHRoZSBsaW5lIGNvbnRl bnQgdmVydGljYWxseS4KLS0tCiBkb2MvbGlzcHJlZi9kaXNwbGF5LnRleGkgfCAgNSArKysrKwog ZXRjL05FV1MgICAgICAgICAgICAgICAgIHwgIDQgKysrKwogc3JjL2J1ZmZlci5jICAgICAgICAg ICAgIHwgMTQgKysrKysrKysrKysrKysKIHNyYy9idWZmZXIuaCAgICAgICAgICAgICB8ICA0ICsr KysKIHNyYy94ZGlzcC5jICAgICAgICAgICAgICB8IDEwICsrKysrKysrKy0KIDUgZmlsZXMgY2hh bmdlZCwgMzYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RvYy9s aXNwcmVmL2Rpc3BsYXkudGV4aSBiL2RvYy9saXNwcmVmL2Rpc3BsYXkudGV4aQppbmRleCBmZDY4 MjA4OTdmLi44NzVjNTBjNmVmIDEwMDY0NAotLS0gYS9kb2MvbGlzcHJlZi9kaXNwbGF5LnRleGkK KysrIGIvZG9jL2xpc3ByZWYvZGlzcGxheS50ZXhpCkBAIC0yMTk1LDYgKzIxOTUsMTEgQEAgTGlu ZSBIZWlnaHQKIG51bWJlciBvZiBwaXhlbHMgcHV0IGJlbG93IGxpbmVzLiAgQSBmbG9hdGluZy1w b2ludCBudW1iZXIgc3BlY2lmaWVzCiB0aGUgc3BhY2luZyByZWxhdGl2ZSB0byB0aGUgZnJhbWUn cyBkZWZhdWx0IGxpbmUgaGVpZ2h0LgogCisgIFRoZSBAY29kZXtsaW5lLXNwYWNpbmd9IHBhcmFt ZXRlciBjcmVhdGVzIHRoZSBzcGFjZSBieSBwdXR0aW5nIHNvbWUKK21hcmdpbiBvbmx5IGJlbG93 IHRoZSBsaW5lLiBJZiB5b3Ugd2lzaCB0byBjZW50ZXIgdGhlIGxpbmUgdmVydGljYWxseQoraW5z dGVhZCwgeW91IGNhbiBzZXQgdGhlIHZhcmlhYmxlIEBjb2Rle2xpbmUtc3BhY2luZy12ZXJ0aWNh bC1jZW50ZXJ9CithcyBub24tbmluLgorCiBAdmluZGV4IGxpbmUtc3BhY2luZwogICBZb3UgY2Fu IHNwZWNpZnkgdGhlIGxpbmUgc3BhY2luZyBmb3IgYWxsIGxpbmVzIGluIGEgYnVmZmVyIHZpYSB0 aGUKIGJ1ZmZlci1sb2NhbCBAY29kZXtsaW5lLXNwYWNpbmd9IHZhcmlhYmxlLiAgQW4gaW50ZWdl ciBzcGVjaWZpZXMKZGlmZiAtLWdpdCBhL2V0Yy9ORVdTIGIvZXRjL05FV1MKaW5kZXggY2I4YjZm Y2FjMS4uMzIwOWYyNTM1ZiAxMDA2NDQKLS0tIGEvZXRjL05FV1MKKysrIGIvZXRjL05FV1MKQEAg LTQ0NSw2ICs0NDUsMTAgQEAgUkdCIHRyaXBsZXRzIHdpdGggYSBzaW5nbGUgaGV4YWRlY2ltYWwg ZGlnaXQgcGVyIGNvbXBvbmVudC4KIC0tLQogKiogVGhlIHRvb2xiYXIgbm93IHNob3dzIHRoZSBl cXVpdmFsZW50IGtleSBiaW5kaW5nIGluIGl0cyB0b29sdGlwcy4KIAorKiogTmV3IHZhcmlhYmxl IGxpbmUtc3BhY2luZy12ZXJ0aWNhbC1jZW50ZXIuCitUaGlzIHZhcmlhYmxlLCBpZiBub24tbmls LCBjZW50ZXJzIHRoZSBsaW5lIGNvbnRlbnQgdmVydGljYWxseSB3aGVuCit1c2luZyB0aGUgJ2xp bmUtc3BhY2luZycgdmFyaWFibGUuCisKIAwKICogRWRpdGluZyBDaGFuZ2VzIGluIEVtYWNzIDI3 LjEKIApkaWZmIC0tZ2l0IGEvc3JjL2J1ZmZlci5jIGIvc3JjL2J1ZmZlci5jCmluZGV4IDc3ZThi NmJiNzcuLjg1NGIzOTI0YzAgMTAwNjQ0Ci0tLSBhL3NyYy9idWZmZXIuYworKysgYi9zcmMvYnVm ZmVyLmMKQEAgLTIxOSw2ICsyMTksMTEgQEAgYnNldF9leHRyYV9saW5lX3NwYWNpbmcgKHN0cnVj dCBidWZmZXIgKmIsIExpc3BfT2JqZWN0IHZhbCkKICAgYi0+ZXh0cmFfbGluZV9zcGFjaW5nXyA9 IHZhbDsKIH0KIHN0YXRpYyB2b2lkCitic2V0X2xpbmVfc3BhY2luZ192ZXJ0aWNhbF9jZW50ZXIg KHN0cnVjdCBidWZmZXIgKmIsIExpc3BfT2JqZWN0IHZhbCkKK3sKKyAgYi0+bGluZV9zcGFjaW5n X3ZlcnRpY2FsX2NlbnRlcl8gPSB2YWw7Cit9CitzdGF0aWMgdm9pZAogYnNldF9maWxlX2Zvcm1h dCAoc3RydWN0IGJ1ZmZlciAqYiwgTGlzcF9PYmplY3QgdmFsKQogewogICBiLT5maWxlX2Zvcm1h dF8gPSB2YWw7CkBAIC05NjIsNiArOTY3LDggQEAgcmVzZXRfYnVmZmVyIChyZWdpc3RlciBzdHJ1 Y3QgYnVmZmVyICpiKQogICAgIChiLCBCVkFSICgmYnVmZmVyX2RlZmF1bHRzLCBlbmFibGVfbXVs dGlieXRlX2NoYXJhY3RlcnMpKTsKICAgYnNldF9jdXJzb3JfdHlwZSAoYiwgQlZBUiAoJmJ1ZmZl cl9kZWZhdWx0cywgY3Vyc29yX3R5cGUpKTsKICAgYnNldF9leHRyYV9saW5lX3NwYWNpbmcgKGIs IEJWQVIgKCZidWZmZXJfZGVmYXVsdHMsIGV4dHJhX2xpbmVfc3BhY2luZykpOworICBic2V0X2xp bmVfc3BhY2luZ192ZXJ0aWNhbF9jZW50ZXIgKGIsIEJWQVIgKCZidWZmZXJfZGVmYXVsdHMsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZV9zcGFjaW5n X3ZlcnRpY2FsX2NlbnRlcikpOwogCiAgIGItPmRpc3BsYXlfZXJyb3JfbW9kaWZmID0gMDsKIH0K QEAgLTUxOTYsNiArNTIwMyw3IEBAIGluaXRfYnVmZmVyX29uY2UgKHZvaWQpCiAgIFhTRVRGQVNU SU5UIChCVkFSICgmYnVmZmVyX2xvY2FsX2ZsYWdzLCBoZWFkZXJfbGluZV9mb3JtYXQpLCBpZHgp OyArK2lkeDsKICAgWFNFVEZBU1RJTlQgKEJWQVIgKCZidWZmZXJfbG9jYWxfZmxhZ3MsIGN1cnNv cl90eXBlKSwgaWR4KTsgKytpZHg7CiAgIFhTRVRGQVNUSU5UIChCVkFSICgmYnVmZmVyX2xvY2Fs X2ZsYWdzLCBleHRyYV9saW5lX3NwYWNpbmcpLCBpZHgpOyArK2lkeDsKKyAgWFNFVEZBU1RJTlQg KEJWQVIgKCZidWZmZXJfbG9jYWxfZmxhZ3MsIGxpbmVfc3BhY2luZ192ZXJ0aWNhbF9jZW50ZXIp LCBpZHgpOyArK2lkeDsKICAgWFNFVEZBU1RJTlQgKEJWQVIgKCZidWZmZXJfbG9jYWxfZmxhZ3Ms IGN1cnNvcl9pbl9ub25fc2VsZWN0ZWRfd2luZG93cyksIGlkeCk7ICsraWR4OwogCiAgIC8qIGJ1 ZmZlcl9sb2NhbF9mbGFncyBjb250YWlucyBubyBwb2ludGVycywgc28gaXQncyBzYWZlIHRvIHRy ZWF0IGl0CkBAIC01MjY1LDYgKzUyNzMsNyBAQCBpbml0X2J1ZmZlcl9vbmNlICh2b2lkKQogICBi c2V0X2JpZGlfcGFyYWdyYXBoX3NlcGFyYXRlX3JlICgmYnVmZmVyX2RlZmF1bHRzLCBRbmlsKTsK ICAgYnNldF9jdXJzb3JfdHlwZSAoJmJ1ZmZlcl9kZWZhdWx0cywgUXQpOwogICBic2V0X2V4dHJh X2xpbmVfc3BhY2luZyAoJmJ1ZmZlcl9kZWZhdWx0cywgUW5pbCk7CisgIGJzZXRfbGluZV9zcGFj aW5nX3ZlcnRpY2FsX2NlbnRlciAoJmJ1ZmZlcl9kZWZhdWx0cywgUW5pbCk7CiAgIGJzZXRfY3Vy c29yX2luX25vbl9zZWxlY3RlZF93aW5kb3dzICgmYnVmZmVyX2RlZmF1bHRzLCBRdCk7CiAKICAg YnNldF9lbmFibGVfbXVsdGlieXRlX2NoYXJhY3RlcnMgKCZidWZmZXJfZGVmYXVsdHMsIFF0KTsK QEAgLTYyNTQsNiArNjI2MywxMSBAQCBmcm9tIChhYnMgUE9TSVRJT04pLiAgSWYgUE9TSVRJT04g aXMgcG9zaXRpdmUsIHBvaW50IHdhcyBhdCB0aGUgZnJvbnQKIElmIHZhbHVlIGlzIGEgZmxvYXRp bmcgcG9pbnQgbnVtYmVyLCBpdCBzcGVjaWZpZXMgdGhlIHNwYWNpbmcgcmVsYXRpdmUKIHRvIHRo ZSBkZWZhdWx0IGZyYW1lIGxpbmUgaGVpZ2h0LiAgQSB2YWx1ZSBvZiBuaWwgbWVhbnMgYWRkIG5v IGV4dHJhIHNwYWNlLiAgKi8pOwogCisgIERFRlZBUl9QRVJfQlVGRkVSICgibGluZS1zcGFjaW5n LXZlcnRpY2FsLWNlbnRlciIsCisJCSAgICAgJkJWQVIgKGN1cnJlbnRfYnVmZmVyLCBsaW5lX3Nw YWNpbmdfdmVydGljYWxfY2VudGVyKSwgUW5pbCwKKyAgICAgICAgICAgICAgICAgICAgIGRvYzog LyogTm9uLW5pbCBtZWFucyBjZW50ZXIgdGhlIGxpbmUgY29udGVudCB2ZXJ0aWNhbGx5Cit3aGVu IHVzaW5nIGBsaW5lLXNwYWNpbmcnIHZhcmlhYmxlLiAgKi8pOworCiAgIERFRlZBUl9QRVJfQlVG RkVSICgiY3Vyc29yLWluLW5vbi1zZWxlY3RlZC13aW5kb3dzIiwKIAkJICAgICAmQlZBUiAoY3Vy cmVudF9idWZmZXIsIGN1cnNvcl9pbl9ub25fc2VsZWN0ZWRfd2luZG93cyksIFFuaWwsCiAJCSAg ICAgZG9jOiAvKiBOb24tbmlsIG1lYW5zIHNob3cgYSBjdXJzb3IgaW4gbm9uLXNlbGVjdGVkIHdp bmRvd3MuCmRpZmYgLS1naXQgYS9zcmMvYnVmZmVyLmggYi9zcmMvYnVmZmVyLmgKaW5kZXggMjgw ZDRlOTA5OC4uZDdjYjI3MzA1ZSAxMDA2NDQKLS0tIGEvc3JjL2J1ZmZlci5oCisrKyBiL3NyYy9i dWZmZXIuaApAQCAtNTQ5LDYgKzU0OSwxMCBAQCAjZGVmaW5lIEJWQVIoYnVmLCBmaWVsZCkgKChi dWYpLT5maWVsZCAjIyBfKQogICAgICBpbiB0aGUgZGlzcGxheSBvZiB0aGlzIGJ1ZmZlci4gICov CiAgIExpc3BfT2JqZWN0IGV4dHJhX2xpbmVfc3BhY2luZ187CiAKKyAgLyogTm9uLW5pbCBtZWFu cyBjZW50ZXIgdGhlIGxpbmUgY29udGVudCB2ZXJ0aWNhbGx5LiBUbyBiZSB1c2VkCisgICAgIGFs b25nIHdpdGggYGxpbmUtc3BhY2luZycuICAqLworICBMaXNwX09iamVjdCBsaW5lX3NwYWNpbmdf dmVydGljYWxfY2VudGVyXzsKKwogICAvKiBDdXJzb3IgdHlwZSB0byBkaXNwbGF5IGluIG5vbi1z ZWxlY3RlZCB3aW5kb3dzLgogICAgICB0IG1lYW5zIHRvIHVzZSBob2xsb3cgYm94IGN1cnNvci4K ICAgICAgU2VlIGBjdXJzb3ItdHlwZScgZm9yIG90aGVyIHZhbHVlcy4gICovCmRpZmYgLS1naXQg YS9zcmMveGRpc3AuYyBiL3NyYy94ZGlzcC5jCmluZGV4IDk1ODk1ZWMzYWMuLmUyYzczMDlmMzIg MTAwNjQ0Ci0tLSBhL3NyYy94ZGlzcC5jCisrKyBiL3NyYy94ZGlzcC5jCkBAIC0yOTMwNyw3ICsy OTMwNywxNSBAQCBndWlfcHJvZHVjZV9nbHlwaHMgKHN0cnVjdCBpdCAqaXQpCiAKICAgaWYgKGV4 dHJhX2xpbmVfc3BhY2luZyA+IDApCiAgICAgewotICAgICAgaXQtPmRlc2NlbnQgKz0gZXh0cmFf bGluZV9zcGFjaW5nOworICAgICAgaWYgKCEgTklMUCAoQlZBUiAoWEJVRkZFUiAoaXQtPnctPmNv bnRlbnRzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVfc3BhY2luZ192ZXJ0aWNhbF9j ZW50ZXIpKSkKKyAgICAgICAgaXQtPmRlc2NlbnQgKz0gZXh0cmFfbGluZV9zcGFjaW5nOworICAg ICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAgaW50IHNwYWNpbmcgPSBleHRyYV9saW5lX3Nw YWNpbmcgLyAyOworICAgICAgICAgIGl0LT5hc2NlbnQgKz0gc3BhY2luZzsKKyAgICAgICAgICBp dC0+ZGVzY2VudCArPSBzcGFjaW5nOworICAgICAgICB9CiAgICAgICBpZiAoZXh0cmFfbGluZV9z cGFjaW5nID4gaXQtPm1heF9leHRyYV9saW5lX3NwYWNpbmcpCiAJaXQtPm1heF9leHRyYV9saW5l X3NwYWNpbmcgPSBleHRyYV9saW5lX3NwYWNpbmc7CiAgICAgfQotLSAKMi4yMy4wCgo= --000000000000caae9e0593b9d5f9--