From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jonas Hahnfeld via "Developers list for Guile, the GNU extensibility library" Newsgroups: gmane.lisp.guile.devel Subject: Re: Guile 64-bit Windows support, redux Date: Wed, 20 Mar 2024 21:28:54 +0100 Message-ID: <757086cd106c93d7db755fdff9165a04c39f9e97.camel@hahnjo.de> References: <1629803116.370682.1686084646758.ref@mail.yahoo.com> <1629803116.370682.1686084646758@mail.yahoo.com> <3f3c0be57479e0566ada30b0a012d9d6876281d5.camel@hahnjo.de> <51cc0f0cf30873208358c1254df47e30ca02348d.camel@hahnjo.de> Reply-To: Jonas Hahnfeld Mime-Version: 1.0 Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="=-ZQEVGylNFBpMnz57tIgH" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="31317"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Evolution 3.50.4 Cc: Mike Gran , "guile-devel@gnu.org" , Ludovic =?ISO-8859-1?Q?Court=E8s?= , Andy Wingo To: "Thompson, David" Original-X-From: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Wed Mar 20 21:29:33 2024 Return-path: Envelope-to: guile-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1rn2Z1-0007tQ-Uv for guile-devel@m.gmane-mx.org; Wed, 20 Mar 2024 21:29:32 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rn2Yo-0001iQ-T5; Wed, 20 Mar 2024 16:29:18 -0400 Original-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 1rn2Yn-0001iG-Hu for guile-devel@gnu.org; Wed, 20 Mar 2024 16:29:17 -0400 Original-Received: from backus.hahnjo.de ([193.30.122.186] helo=mail.hahnjo.de) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rn2YY-0000IT-Fl; Wed, 20 Mar 2024 16:29:17 -0400 Original-Received: from [IPv6:2a01:cb15:302:b500:478b:73c7:fdf0:1e6f] (unknown [IPv6:2a01:cb15:302:b500:478b:73c7:fdf0:1e6f]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mail.hahnjo.de (Postfix) with ESMTPSA id 803007685F52; Wed, 20 Mar 2024 21:28:59 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=hahnjo.de; s=default; t=1710966539; bh=wJrf1BTwOILedd/GeBhDRvVnfcPyMpQGehkSBw4SYx8=; h=Subject:From:To:Cc:Date:In-Reply-To:References; b=B0TtXsFVQf8xN8iZJ+qHDBHxOtJfcsprm55Jf21B9F93uynAutwvxYjV4ZFBXwcTY 2zj8q1G6vOCv9hCXJN3O8lxpk3DhYRL94OuP16COl/HPFxYN+PPQRbGR/1YBB/QVkV K0/NcswLyjUEd73Q8gfrJ6ng+u0cYcoKjzhxD4ioITWoNevJoAUd+b+K1zz+yRpGzH W5lPyrd1cRfsHsen215jz70VDz0tII+ZT7CyUPKcnzW5AsF5LTIuSc9KDWJf9hh2bo Hz1qj+w92+oAampWCpmYD//bXeGGBzuIO0LMlsb6r/gfX3HTQj5sNyoS9EILdQD0wF K6Xyjs/54tJ2A== In-Reply-To: <51cc0f0cf30873208358c1254df47e30ca02348d.camel@hahnjo.de> Autocrypt: addr=hahnjo@hahnjo.de; prefer-encrypt=mutual; keydata=mQENBFIIleUBCAC94iH8XbAOTIPKPTRiMFcYyWaERWsRS1u3Cu6h3tlvTgLj02j9byL4uChGHhb0p6kuIqP89OlS/PGONDyMaMDvV4DL0woqbw87Y0qNLGHYiFtIXLqyhutHsNgsKObWKb2U7rhfmRbr5JUXFB3D5AWjKL1EBaYWlzH+wjJM3l3gqO9zmt5Q+4IhZkZHkb22SYsaAw4sdNtQ+SN3KUc1OYIZcJcooeQyQiddmiHCXQocMxQMGAbOSxuQhHaujsGWfwoqkAOAry0xt9Ry0FLKCGmj5F0YUlO3trSKuuWQ0xmJdXUMXCEFZ3odZ7t2pN0kGsKFhWN5ZyMqQF9E7igSOfdTABEBAAG0KUpvbmFzIEhhaG5mZWxkIDxqb25hcy5oYWhuZmVsZEBvbmxpbmUuZGU+iQE5BBMBAgAjBQJSKg3hAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQkcnDPSxhrNs1lAgAjEpy/TTOPTLEmdjXJDWgDom7y1+jTBHk37r3zjwWDJCkwr3WmVAnhY9muwo/8gkltvYk6CqzrIuUNxO7pTCfduEE04S19xUxd5IXVSxQoBG+AgzqvDqBmRCwMbDRXQ1EMu7qmX4FtZfjUmCZumQTf8unHzgGE5TgmYPM+UAS528AAWjT526lkLRhoSJHQlSBdaWGjiexCSyF76SedsXboCs9cS47mBWDwZOEin3eyycQlM0xBBPtEABF+Tq7Bt5/W9jc+wIe1f0QaUedsga75UY9wRYWu7Sjs90 1WSpEpdF+beU48rqaxEWLmLWkQy/3Vl571F21U+XP Received-SPF: pass client-ip=193.30.122.186; envelope-from=hahnjo@hahnjo.de; helo=mail.hahnjo.de X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.lisp.guile.devel:22357 Archived-At: --=-ZQEVGylNFBpMnz57tIgH Content-Type: multipart/mixed; boundary="=-1pWrrbYRdzN7VQvFi7mq" --=-1pWrrbYRdzN7VQvFi7mq Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, 2024-02-07 at 21:29 +0100, Jonas Hahnfeld via Developers list for Guile, the GNU extensibility library wrote: > On Wed, 2024-02-07 at 15:23 -0500, Thompson, David wrote: > > On Wed, Feb 7, 2024 at 3:19=E2=80=AFPM Jonas Hahnfeld wrote: > > >=20 > > > On Wed, 2024-02-07 at 09:19 -0500, Thompson, David wrote: > > > > On Thu, Jan 4, 2024 at 5:40=E2=80=AFAM Jonas Hahnfeld wrote: > > > > >=20 > > > > > On Tue, 2023-11-28 at 22:04 +0100, Jonas Hahnfeld wrote: > > > > > >=20 > > > > > > Ping, any comments on this approach? I built binaries for LilyP= ond > > > > > > 2.25.10 using these patches applied on top of Guile 3.0.9 and t= he > > > > > > result seems to work fine on Windows. > > > > >=20 > > > > > Another ping; meanwhile we switched to building the official bina= ries > > > > > of LilyPond with Guile 3.0 starting from version 2.25.11, but it = would > > > > > be really great to get rid of our downstream patches... > > > >=20 > > > > Just chiming in to say this is a very exciting development that I h= ad > > > > missed when the patch set was first sent! > > > >=20 > > > > Does this allow a fully featured Guile build or are some things sti= ll > > > > disabled? Does JIT work? > > >=20 > > > It's functional enough to run LilyPond (which uses quite a bit of > > > Guile) and well enough so that there is only one complaint (that I kn= ow > > > of so far) about multiplication with negative numbers not working > > > right. If I remember correctly from quickly having a look, that's > > > related to scm_integer_mul_ii using long_magnitude which doesn't quit= e > > > work on Windows 64-bit. For LilyPond, we disable some features (JIT, > > > threading, networking; you can look at the full build recipe here: > > > https://gitlab.com/lilypond/lilypond/-/blob/master/release/binaries/l= ib/dependencies.py#L628 > > > ) and I don't know which of these would work or how much it would tak= e > > > to support them. > >=20 > > Ah, bummer. That's a lot of disabled features. JIT and threads are > > must-haves for my use-cases. I guess I'll continue waiting for > > someone to figure out how to build a fully featured Guile on Windows. > > Any takers? ;) >=20 > Isn't the common wisdom that you should learn to crawl and walk before > starting to run? =F0=9F=98=89 first we need a booting and working base of= Guile > before the rest can follow at some point. For LilyPond's binaries, we > disable networking and threads on all platforms so these may just work. > Regarding the JIT, I think I disabled it right away when I started > trying to understand what the issues were, so it's possible that the > state is not actually that dire... So I can confirm that JIT indeed doesn't work right now on 64-bit MinGW, but it's relatively easy to fix (first patch). In essence lightening was getting the calling convention wrong. Compilation just works --with-threads, as long as bdwgc was built with --enable-threads=3Dposix to override the automatic detection of win32 threading. I haven't tested if it actually works, but there might be a good chance. For the one known issue I mentioned above, the fix is also not too difficult, just being a bit more careful with mixing scm_t_inum and long (see second patch). I'm also explicitly CC'ing Andy and Ludo - we really need a statement by a maintainer whether this can land. From my point of view, it's a clear improvement in terms of supported platforms, plus tested by LilyPond since some time now which is probably one of the bigger "customers". Jonas --=-1pWrrbYRdzN7VQvFi7mq Content-Disposition: attachment; filename="0001-Fix-lightening-x86_64-Windows-calling-convention.patch" Content-Type: text/x-patch; name="0001-Fix-lightening-x86_64-Windows-calling-convention.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBlNzAxYjE1ODMwNTIxMDJhNWUxNzU4Mzk0ZTRjM2ExZmI3NTY1ZDI3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb25hcyBIYWhuZmVsZCA8aGFobmpvQGhhaG5qby5kZT4KRGF0 ZTogV2VkLCAyMCBNYXIgMjAyNCAyMDoyNjozNiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMS8yXSBG aXggbGlnaHRlbmluZyB4ODZfNjQgV2luZG93cyBjYWxsaW5nIGNvbnZlbnRpb24KCiogbGliZ3Vp bGUvbGlnaHRlbmluZy9saWdodGVuaW5nL3g4Ni5jOgoqIGxpYmd1aWxlL2xpZ2h0ZW5pbmcvbGln aHRlbmluZy94ODYuaDogQ2hlY2sgX1dJTjY0IG1hY3JvIGFzIHNldCBmb3IKICBtaW5ndzY0Lgot LS0KIGxpYmd1aWxlL2xpZ2h0ZW5pbmcvbGlnaHRlbmluZy94ODYuYyB8IDEwICsrKysrLS0tLS0K IGxpYmd1aWxlL2xpZ2h0ZW5pbmcvbGlnaHRlbmluZy94ODYuaCB8ICAyICstCiAyIGZpbGVzIGNo YW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJn dWlsZS9saWdodGVuaW5nL2xpZ2h0ZW5pbmcveDg2LmMgYi9saWJndWlsZS9saWdodGVuaW5nL2xp Z2h0ZW5pbmcveDg2LmMKaW5kZXggZjhhYzRiMGI4Li42OTYzZDkwZmQgMTAwNjQ0Ci0tLSBhL2xp Ymd1aWxlL2xpZ2h0ZW5pbmcvbGlnaHRlbmluZy94ODYuYworKysgYi9saWJndWlsZS9saWdodGVu aW5nL2xpZ2h0ZW5pbmcveDg2LmMKQEAgLTIzNyw3ICsyMzcsNyBAQCBqaXRfaW5pdChqaXRfc3Rh dGVfdCAqX2ppdCkKIHN0YXRpYyBjb25zdCBqaXRfZ3ByX3QgYWJpX2dwcl9hcmdzW10gPSB7CiAj aWYgX19YMzIKICAgLyogTm8gR1BScyBpbiBhcmdzLiAgKi8KLSNlbGlmIF9fQ1lHV0lOX18KKyNl bGlmIGRlZmluZWQoX19DWUdXSU5fXykgfHwgZGVmaW5lZChfV0lONjQpCiAgIF9SQ1gsIF9SRFgs IF9SOCwgX1I5CiAjZWxzZQogICBfUkRJLCBfUlNJLCBfUkRYLCBfUkNYLCBfUjgsIF9SOQpAQCAt MjQ3LDcgKzI0Nyw3IEBAIHN0YXRpYyBjb25zdCBqaXRfZ3ByX3QgYWJpX2dwcl9hcmdzW10gPSB7 CiBzdGF0aWMgY29uc3Qgaml0X2Zwcl90IGFiaV9mcHJfYXJnc1tdID0gewogI2lmIF9fWDMyCiAg IC8qIE5vIEZQUnMgaW4gYXJncy4gICovCi0jZWxpZiBfX0NZR1dJTl9fCisjZWxpZiBkZWZpbmVk KF9fQ1lHV0lOX18pIHx8IGRlZmluZWQoX1dJTjY0KQogICBfWE1NMCwgX1hNTTEsIF9YTU0yLCBf WE1NMwogI2Vsc2UKICAgX1hNTTAsIF9YTU0xLCBfWE1NMiwgX1hNTTMsIF9YTU00LCBfWE1NNSwg X1hNTTYsIF9YTU03CkBAIC0zMTcsNyArMzE3LDcgQEAgcmVzZXRfYWJpX2FyZ19pdGVyYXRvcihz dHJ1Y3QgYWJpX2FyZ19pdGVyYXRvciAqaXRlciwgc2l6ZV90IGFyZ2MsCiAgIG1lbXNldChpdGVy LCAwLCBzaXplb2YgKml0ZXIpOwogICBpdGVyLT5hcmdjID0gYXJnYzsKICAgaXRlci0+YXJncyA9 IGFyZ3M7Ci0jaWYgX19DWUdXSU5fXyAmJiBfX1g2NAorI2lmIChkZWZpbmVkKF9fQ1lHV0lOX18p IHx8IGRlZmluZWQoX1dJTjY0KSkgJiYgX19YNjQKICAgLy8gUmVzZXJ2ZSBzbG90cyBvbiB0aGUg c3RhY2sgZm9yIDQgcmVnaXN0ZXIgcGFyYW1ldGVycyAoOCBieXRlcyBlYWNoKS4KICAgaXRlci0+ c3RhY2tfc2l6ZSA9IDMyOwogI2VuZGlmCkBAIC0zMzAsMTIgKzMzMCwxMiBAQCBuZXh0X2FiaV9h cmcoc3RydWN0IGFiaV9hcmdfaXRlcmF0b3IgKml0ZXIsIGppdF9vcGVyYW5kX3QgKmFyZykKICAg ZW51bSBqaXRfb3BlcmFuZF9hYmkgYWJpID0gaXRlci0+YXJnc1tpdGVyLT5hcmdfaWR4XS5hYmk7 CiAgIGlmIChpc19ncHJfYXJnKGFiaSkgJiYgaXRlci0+Z3ByX2lkeCA8IGFiaV9ncHJfYXJnX2Nv dW50KSB7CiAgICAgKmFyZyA9IGppdF9vcGVyYW5kX2dwciAoYWJpLCBhYmlfZ3ByX2FyZ3NbaXRl ci0+Z3ByX2lkeCsrXSk7Ci0jaWZkZWYgX19DWUdXSU5fXworI2lmIGRlZmluZWQoX19DWUdXSU5f XykgfHwgZGVmaW5lZChfV0lONjQpCiAgICAgaXRlci0+ZnByX2lkeCsrOwogI2VuZGlmCiAgIH0g ZWxzZSBpZiAoaXNfZnByX2FyZyhhYmkpICYmIGl0ZXItPmZwcl9pZHggPCBhYmlfZnByX2FyZ19j b3VudCkgewogICAgICphcmcgPSBqaXRfb3BlcmFuZF9mcHIgKGFiaSwgYWJpX2Zwcl9hcmdzW2l0 ZXItPmZwcl9pZHgrK10pOwotI2lmZGVmIF9fQ1lHV0lOX18KKyNpZiBkZWZpbmVkKF9fQ1lHV0lO X18pIHx8IGRlZmluZWQoX1dJTjY0KQogICAgIGl0ZXItPmdwcl9pZHgrKzsKICNlbmRpZgogICB9 IGVsc2UgewpkaWZmIC0tZ2l0IGEvbGliZ3VpbGUvbGlnaHRlbmluZy9saWdodGVuaW5nL3g4Ni5o IGIvbGliZ3VpbGUvbGlnaHRlbmluZy9saWdodGVuaW5nL3g4Ni5oCmluZGV4IDk4M2ViZGI4Zi4u N2RhOGM1OTc3IDEwMDY0NAotLS0gYS9saWJndWlsZS9saWdodGVuaW5nL2xpZ2h0ZW5pbmcveDg2 LmgKKysrIGIvbGliZ3VpbGUvbGlnaHRlbmluZy9saWdodGVuaW5nL3g4Ni5oCkBAIC05Miw3ICs5 Miw3IEBACiAjICBkZWZpbmUgSklUX0Y2ICAgX1hNTTYKICMgIGRlZmluZSBKSVRfRlRNUCBfWE1N NwogIyAgZGVmaW5lIEpJVF9QTEFURk9STV9DQUxMRUVfU0FWRV9HUFJTIEpJVF9UTVAwCi0jZWxp ZiBfX0NZR1dJTl9fCisjZWxpZiBkZWZpbmVkKF9fQ1lHV0lOX18pIHx8IGRlZmluZWQoX1dJTjY0 KQogIyAgZGVmaW5lIEpJVF9SMCAgIF9SQVgKICMgIGRlZmluZSBKSVRfUjEgICBfUkNYCiAjICBk ZWZpbmUgSklUX1IyICAgX1JEWAotLSAKMi40NC4wCgo= --=-1pWrrbYRdzN7VQvFi7mq Content-Disposition: attachment; filename="0002-Use-inum_magnitude-for-inums.patch" Content-Type: text/x-patch; name="0002-Use-inum_magnitude-for-inums.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBjZjM4MGMxYTczNGFjZDBkMjIwNDFjN2M4NzVmYmZmYzZiNTM1ZDJhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb25hcyBIYWhuZmVsZCA8aGFobmpvQGhhaG5qby5kZT4KRGF0 ZTogV2VkLCAyMCBNYXIgMjAyNCAyMDo1NzowMiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMi8yXSBV c2UgaW51bV9tYWduaXR1ZGUgZm9yIGludW1zCgoqIGxpYmd1aWxlL2ludGVnZXJzLmM6IENhbGwg aW51bV9tYWduaXR1ZGUgaW5zdGVhZCBvZiBsb25nX21hZ25pdHVkZQogIGZvciBzY21fdF9pbnVt IGFyZ3VtZW50cy4KLS0tCiBsaWJndWlsZS9pbnRlZ2Vycy5jIHwgMTAgKysrKystLS0tLQogMSBm aWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9saWJndWlsZS9pbnRlZ2Vycy5jIGIvbGliZ3VpbGUvaW50ZWdlcnMuYwppbmRleCAyM2JkMmMw ZDUuLjM4MGZmMTkzYyAxMDA2NDQKLS0tIGEvbGliZ3VpbGUvaW50ZWdlcnMuYworKysgYi9saWJn dWlsZS9pbnRlZ2Vycy5jCkBAIC0yNTEsNyArMjUxLDcgQEAgaW51bV90b19iaWdudW0gKHNjbV90 X2ludW0gaSkKICAgaWYgKGkgPiAwKQogICAgIHJldHVybiB1bG9uZ190b19iaWdudW0gKGkpOwog Ci0gIHJldHVybiBpID09IDAgPyBtYWtlX2JpZ251bV8wICgpIDogbWFrZV9iaWdudW1fMSAoMSwg bG9uZ19tYWduaXR1ZGUgKGkpKTsKKyAgcmV0dXJuIGkgPT0gMCA/IG1ha2VfYmlnbnVtXzAgKCkg OiBtYWtlX2JpZ251bV8xICgxLCBpbnVtX21hZ25pdHVkZSAoaSkpOwogI2Vsc2UKICAgcmV0dXJu IG1ha2VfYmlnbnVtX2Zyb21faW50NjQgKGkpOwogI2VuZGlmCkBAIC0zMDYxLDE1ICszMDYxLDE1 IEBAIHNjbV9pbnRlZ2VyX211bF9paSAoc2NtX3RfaW51bSB4LCBzY21fdF9pbnVtIHkpCiAgICAg cmV0dXJuIFNDTV9JX01BS0lOVU0gKGspOwogI2VuZGlmCiAKLSAgbXBfbGltYl90IHhkWzFdID0g eyBsb25nX21hZ25pdHVkZSAoeCkgfTsKKyAgbXBfbGltYl90IHhkWzFdID0geyBpbnVtX21hZ25p dHVkZSAoeCkgfTsKICAgbXBfbGltYl90IGxvOwogICBpbnQgbmVnYXRpdmUgPSAoeCA8IDApICE9 ICh5IDwgMCk7Ci0gIG1wX2xpbWJfdCBoaSA9IG1wbl9tdWxfMSAoJmxvLCB4ZCwgMSwgbG9uZ19t YWduaXR1ZGUgKHkpKTsKKyAgbXBfbGltYl90IGhpID0gbXBuX211bF8xICgmbG8sIHhkLCAxLCBp bnVtX21hZ25pdHVkZSAoeSkpOwogICBpZiAoIWhpKQogICAgIHsKICAgICAgIGlmIChuZWdhdGl2 ZSkKICAgICAgICAgewotICAgICAgICAgIGlmIChsbyA8PSBsb25nX21hZ25pdHVkZSAoU0NNX01P U1RfTkVHQVRJVkVfRklYTlVNKSkKKyAgICAgICAgICBpZiAobG8gPD0gaW51bV9tYWduaXR1ZGUg KFNDTV9NT1NUX05FR0FUSVZFX0ZJWE5VTSkpCiAgICAgICAgICAgICByZXR1cm4gU0NNX0lfTUFL SU5VTSAobmVnYXRpdmVfbG9uZyAobG8pKTsKICAgICAgICAgfQogICAgICAgZWxzZSBpZiAobG8g PD0gU0NNX01PU1RfUE9TSVRJVkVfRklYTlVNKQpAQCAtMzEwMCw3ICszMTAwLDcgQEAgc2NtX2lu dGVnZXJfbXVsX3ppIChzdHJ1Y3Qgc2NtX2JpZ251bSAqeCwgc2NtX3RfaW51bSB5KQogICAgICAg ICBzdHJ1Y3Qgc2NtX2JpZ251bSAqcmVzdWx0ID0gYWxsb2NhdGVfYmlnbnVtICh4biArIDEpOwog ICAgICAgICBtcF9saW1iX3QgKnJkID0gYmlnbnVtX2xpbWJzIChyZXN1bHQpOwogICAgICAgICBj b25zdCBtcF9saW1iX3QgKnhkID0gYmlnbnVtX2xpbWJzICh4KTsKLSAgICAgICAgbXBfbGltYl90 IHlkID0gbG9uZ19tYWduaXR1ZGUgKHkpOworICAgICAgICBtcF9saW1iX3QgeWQgPSBpbnVtX21h Z25pdHVkZSAoeSk7CiAgICAgICAgIGludCBuZWdhdGUgPSBiaWdudW1faXNfbmVnYXRpdmUgKHgp ICE9ICh5IDwgMCk7CiAgICAgICAgIG1wX2xpbWJfdCBoaSA9IG1wbl9tdWxfMSAocmQsIHhkLCB4 biwgeWQpOwogICAgICAgICBpZiAoaGkpCi0tIAoyLjQ0LjAKCg== --=-1pWrrbYRdzN7VQvFi7mq-- --=-ZQEVGylNFBpMnz57tIgH Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- iQEzBAABCAAdFiEEXw/5YGpL6H9VOgO2kcnDPSxhrNsFAmX7RwYACgkQkcnDPSxh rNsirgf/SsZPopZ+aMtwZnoPV/AxEVG5uO6TAoy3lJ5MhiUqk3WxNNkuNmkT3DR0 y5TgIeeC3XmxxGzJNmALJKZCPTT6XBlqqoeThdNL+r5yzc5G84an4bSMN8o/zzz1 olSm7Gi0ah0nOkwsb0zN2l2+vN6xQBj5DvaYrZnA1RAhV39KFmIHCtWPow9rtMjg IrrKGqEtx0Albl0XMfp6T7iXu/n7OsoGx08bl9Wcm5maAOhniwEeVFUq6/vrHtPe HK+OWCFDm5KWogvhUp2FFktfRAJ1hJoof/ihnFvZxxRCweVGijsJ9WL8dtSIt327 MQ6a7mviiPiHeomc8yRM3vHPzV/4Pg== =/N1x -----END PGP SIGNATURE----- --=-ZQEVGylNFBpMnz57tIgH--