From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id UMquCXclOmGQjgAAgWs5BA (envelope-from ) for ; Thu, 09 Sep 2021 17:17:11 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id Ha4hBXclOmFzIgAAB5/wlQ (envelope-from ) for ; Thu, 09 Sep 2021 15:17:11 +0000 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 aspmx1.migadu.com (Postfix) with ESMTPS id 496D7123C8 for ; Thu, 9 Sep 2021 17:17:10 +0200 (CEST) Received: from localhost ([::1]:53210 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mOLnZ-0006F1-B8 for larch@yhetil.org; Thu, 09 Sep 2021 11:17:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43988) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mOLnS-0006EH-UJ for guix-patches@gnu.org; Thu, 09 Sep 2021 11:17:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:52705) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mOLnS-0006TF-Lm for guix-patches@gnu.org; Thu, 09 Sep 2021 11:17:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mOLnS-00015n-EH for guix-patches@gnu.org; Thu, 09 Sep 2021 11:17:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#50456] Optimise bytevector->nix-base32-string and bytevector->base16-string. Resent-From: Maxime Devos Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 09 Sep 2021 15:17:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 50456 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 50456@debbugs.gnu.org Received: via spool by 50456-submit@debbugs.gnu.org id=B50456.16312005624085 (code B ref 50456); Thu, 09 Sep 2021 15:17:02 +0000 Received: (at 50456) by debbugs.gnu.org; 9 Sep 2021 15:16:02 +0000 Received: from localhost ([127.0.0.1]:36017 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mOLmT-00013h-RH for submit@debbugs.gnu.org; Thu, 09 Sep 2021 11:16:02 -0400 Received: from andre.telenet-ops.be ([195.130.132.53]:57124) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mOLmS-00013Y-2g for 50456@debbugs.gnu.org; Thu, 09 Sep 2021 11:16:01 -0400 Received: from butterfly.local ([213.119.128.77]) by andre.telenet-ops.be with bizsmtp id rrFv2500S1gKkhx01rFx30; Thu, 09 Sep 2021 17:15:58 +0200 Message-ID: From: Maxime Devos Date: Thu, 09 Sep 2021 17:15:54 +0200 In-Reply-To: <87o891esah.fsf@gnu.org> References: <7831fcdd8b8aab99cc95ba904076014b4c3cb6d2.camel@telenet.be> <87o891esah.fsf@gnu.org> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-LgTbGMcMEdj53iFC4DsO" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1631200558; bh=ch94fepHea1lTPCAPFXYJkdNfHqlPfBZ7ZYjKj1ityY=; h=Subject:From:To:Cc:Date:In-Reply-To:References; b=ohwoUyzP6nggK4k0M6SszsbuihWGMv3xnBRm7Eg5lOHyZm5pqASnSaLQgm/1Id7iS O+rUCA5KPjXk2LOdFWH8AIdOlDXl2kVboLebqv+Tiewc6fHScecFHU4GIFwUOi0CCE yTosegTSGKTwd5vc3vO4WaU966CVhuxBpM2aUYfsIXkYe/ujHfs/I7ctfOVCclZ7iA MZngmKs426qizLJvAJaqsNvEMZVHTmJmPq6olUTCxpycNjgmLO0hRfGpPqyAmmlIp6 3ZlXGrx/V30ITEOBwq7AVK3Cp7cVmTYVt+Fc7HMIYUTA/2cHclSIB4DG6mWoKEF74y rlQWzzTfElyfA== X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1631200630; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:resent-cc:resent-from:resent-sender: resent-message-id:in-reply-to:in-reply-to:references:references: list-id:list-help:list-unsubscribe:list-subscribe:list-post: dkim-signature; bh=ch94fepHea1lTPCAPFXYJkdNfHqlPfBZ7ZYjKj1ityY=; b=c3qKA1uwccRoWRzPqI+PXEM5c66RTWRY9UPIzFtZGm+sJgKLVjkOQdVXsw778EhqXsXdLH VwuN8a2Qx4pq4jd7KIcnElHfxdbyt3/47fMw8vyWPyF7CBvuLP8ndYFofGlZfnuIclBE9H a2cjrlZehSY2IaIqE0ppjsFWOlbRNv+Zj7HJxKq0+fsBBTTva/M+aipu79oxbJlCYogspR YW2q3wloqcRVTTbTfLcJ+xIbswK9FmMx9kGYufqLXnI2MCxORYf63su02Sc3kImS1+x1/K 7JLL+73QwB+0zNsn2tdwZsDSD9ZE4/gCkARgTylZ0b2MmTVNALW9DMNNWXcIuQ== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1631200630; a=rsa-sha256; cv=none; b=bvLDqwPzXIrQY15ouVJTzehHY+SxNYlm6wOtYPWYqLCXmSe97stD9utNaxj+mDhZd1hrAw 8jRyfUpK4tPTQBnDwo+f0dJRZBOpEFBUhXEbTJIAgF9PdIZw11IRqAPcmQMYKiH2p3KqCO DfYHAWzO06H6Y4Jd9LzvtSHGO7cTixsuDh/SjPcDjQvJUY+P7NaD96puI96rK+OUe3Ar/D ZMdVUglYQn/uX7qEN+ViXGvjVrJ86uhjrqZ+b+xDy22KvP7sHJ7dH4SU5qds62ZK1TLCiu NfY818A5Zi9OZvsxbMWPZyV+HlVtVctHlHCZ5O8GyK8xURtZSCgKPTRyp462pw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=telenet.be header.s=r21 header.b=ohwoUyzP; dmarc=fail reason="SPF not aligned (relaxed)" header.from=telenet.be (policy=none); spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Spam-Score: -2.31 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=telenet.be header.s=r21 header.b=ohwoUyzP; dmarc=fail reason="SPF not aligned (relaxed)" header.from=telenet.be (policy=none); spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Queue-Id: 496D7123C8 X-Spam-Score: -2.31 X-Migadu-Scanner: scn1.migadu.com X-TUID: pVqYj9XAY+XC --=-LgTbGMcMEdj53iFC4DsO Content-Type: multipart/mixed; boundary="=-oO3ve0sbUKHv+E2PetM6" --=-oO3ve0sbUKHv+E2PetM6 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, Here are the test results using (ice-9 time) with the attached "time.scm" and guix/base16.scm, to be run with =E2=80=98make && ./pre-inst-env guix repl time.scm=E2=80=99: old: clock utime stime cutime cstime gctime 3.93 6.32 0.03 0.00 0.00 3.59 clock utime stime cutime cstime gctime 3.92 6.32 0.03 0.00 0.00 3.59 clock utime stime cutime cstime gctime 3.86 6.24 0.02 0.00 0.00 3.54 new: clock utime stime cutime cstime gctime 2.43 3.60 0.02 0.00 0.00 1.76 clock utime stime cutime cstime gctime 2.49 3.67 0.01 0.00 0.00 1.77 clock utime stime cutime cstime gctime 2.64 3.77 0.01 0.00 0.00 1.77 About half as much time is spent in GC. The =E2=80=98utime=E2=80=99 is also half as much. Not sure what =E2=80=98clock=E2=80=99 means exactly, but it is reduced as well. Greetings, Maxime --=-oO3ve0sbUKHv+E2PetM6 Content-Disposition: inline; filename="time.scm" Content-Type: text/x-scheme; name="time.scm"; charset="UTF-8" Content-Transfer-Encoding: base64 KGRlZmluZSBidiAjdnU4KDk1IDEyMCAxOTUgNTAgMTE2IDIyNyA2MyAxNjkgMjIyIDg2IDg5IDM4 IDkyIDE0NSAxMjYgMzcgMTkyIDU1IDM0KSkKKGRlZmluZSAodGhlLXRlc3QgcCkKICAobGV0IGxv b3AgKChuIDApKQogICAgKHdoZW4gKDwgbiAjZTFlNikKICAgICAgKHAgYnYpCiAgICAgIChsb29w ICgrIG4gMSkpKSkpCgooZGlzcGxheSAib2xkOlxuIikKOzsgV2FybSB1cCB0aGUgSklUCih0aGUt dGVzdCAoQCAoZ3VpeCBiYXNlMTYpIGJ5dGV2ZWN0b3ItPmJhc2UxNi1zdHJpbmcvb2xkKSkKOzsg QW5kIHRpbWUgdGhlIHByb2NlZHVyZQooKEAgKGljZS05IHRpbWUpIHRpbWUpICh0aGUtdGVzdCAo QCAoZ3VpeCBiYXNlMTYpIGJ5dGV2ZWN0b3ItPmJhc2UxNi1zdHJpbmcvb2xkKSkpCigoQCAoaWNl LTkgdGltZSkgdGltZSkgKHRoZS10ZXN0IChAIChndWl4IGJhc2UxNikgYnl0ZXZlY3Rvci0+YmFz ZTE2LXN0cmluZy9vbGQpKSkKKChAIChpY2UtOSB0aW1lKSB0aW1lKSAodGhlLXRlc3QgKEAgKGd1 aXggYmFzZTE2KSBieXRldmVjdG9yLT5iYXNlMTYtc3RyaW5nL29sZCkpKQoKKGRpc3BsYXkgIm5l dzpcbiIpCjs7IFdhcm0gdXAgdGhlIEpJVAoodGhlLXRlc3QgKEAgKGd1aXggYmFzZTE2KSBieXRl dmVjdG9yLT5iYXNlMTYtc3RyaW5nKSkKOzsgQW5kIHRpbWUgdGhlIHByb2NlZHVyZQooKEAgKGlj ZS05IHRpbWUpIHRpbWUpICh0aGUtdGVzdCAoQCAoZ3VpeCBiYXNlMTYpIGJ5dGV2ZWN0b3ItPmJh c2UxNi1zdHJpbmcpKSkKKChAIChpY2UtOSB0aW1lKSB0aW1lKSAodGhlLXRlc3QgKEAgKGd1aXgg YmFzZTE2KSBieXRldmVjdG9yLT5iYXNlMTYtc3RyaW5nKSkpCigoQCAoaWNlLTkgdGltZSkgdGlt ZSkgKHRoZS10ZXN0IChAIChndWl4IGJhc2UxNikgYnl0ZXZlY3Rvci0+YmFzZTE2LXN0cmluZykp KQo= --=-oO3ve0sbUKHv+E2PetM6 Content-Disposition: attachment; filename="base16.scm" Content-Type: text/x-scheme; name="base16.scm"; charset="UTF-8" Content-Transfer-Encoding: base64 Ozs7IEdOVSBHdWl4IC0tLSBGdW5jdGlvbmFsIHBhY2thZ2UgbWFuYWdlbWVudCBmb3IgR05VCjs7 OyBDb3B5cmlnaHQgwqkgMjAxMiwgMjAxNCwgMjAxNyBMdWRvdmljIENvdXJ0w6hzIDxsdWRvQGdu dS5vcmc+Cjs7OyBDb3B5cmlnaHQgwqkgMjAyMSBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRl bGVuZXQuYmU+Cjs7Owo7OzsgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIEd1aXguCjs7Owo7Ozsg R05VIEd1aXggaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y IG1vZGlmeSBpdAo7OzsgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKOzs7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247 IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdAo7OzsgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgo7OzsKOzs7IEdOVSBHdWl4IGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAo7OzsgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgo7OzsgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQo7OzsgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KOzs7Cjs7OyBZb3Ugc2hv dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZQo7OzsgYWxvbmcgd2l0aCBHTlUgR3VpeC4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4KCihkZWZpbmUtbW9kdWxlIChndWl4IGJhc2UxNikKICAjOnVzZS1tb2R1 bGUgKHNyZmkgc3JmaS0xKQogICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTI2KQogICM6dXNlLW1v ZHVsZSAoc3JmaSBzcmZpLTYwKQogICM6dXNlLW1vZHVsZSAocm5ycyBieXRldmVjdG9ycykKICAj OnVzZS1tb2R1bGUgKGljZS05IHZsaXN0KQogICM6dXNlLW1vZHVsZSAoaWNlLTkgZm9ybWF0KQog ICM6ZXhwb3J0IChieXRldmVjdG9yLT5iYXNlMTYtc3RyaW5nCiAgICAgICAgICAgIGJ5dGV2ZWN0 b3ItPmJhc2UxNi1zdHJpbmcvb2xkCiAgICAgICAgICAgIGJhc2UxNi1zdHJpbmctPmJ5dGV2ZWN0 b3IpKQoMCjs7Owo7OzsgQmFzZSAxNi4KOzs7CgooZGVmaW5lIChieXRldmVjdG9yLT5iYXNlMTYt c3RyaW5nL29sZCBidikKICAiUmV0dXJuIHRoZSBoZXhhZGVjaW1hbCByZXByZXNlbnRhdGlvbiBv ZiBCVidzIGNvbnRlbnRzLiIKICAoZGVmaW5lIGxlbgogICAgKGJ5dGV2ZWN0b3ItbGVuZ3RoIGJ2 KSkKCiAgKGxldC1zeW50YXggKChiYXNlMTYtY2hhcnMgKGxhbWJkYSAocykKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChzeW50YXgtY2FzZSBzICgpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKF8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgKCh2 IChsaXN0LT52ZWN0b3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAodW5mb2xkIChjdXQgPiA8PiAyNTUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChuKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9ybWF0ICNmICJ+MiwnMHgiIG4pKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDApKSkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYpKSkpKSkKICAgIChkZWZpbmUgY2hhcnMg YmFzZTE2LWNoYXJzKQogICAgKGxldCBsb29wICgoaSBsZW4pCiAgICAgICAgICAgICAgIChyICco KSkpCiAgICAgIChpZiAoemVybz8gaSkKICAgICAgICAgIChzdHJpbmctY29uY2F0ZW5hdGUgcikK ICAgICAgICAgIChsZXQgKChpICgtIGkgMSkpKQogICAgICAgICAgICAobG9vcCBpCiAgICAgICAg ICAgICAgICAgIChjb25zICh2ZWN0b3ItcmVmIGNoYXJzIChieXRldmVjdG9yLXU4LXJlZiBidiBp KSkgcikpKSkpKSkKCihkZWZpbmUgKGJ5dGV2ZWN0b3ItPmJhc2UxNi1zdHJpbmcgYnYpCiAgIlJl dHVybiB0aGUgaGV4YWRlY2ltYWwgcmVwcmVzZW50YXRpb24gb2YgQlYncyBjb250ZW50cy4iCiAg KGRlZmluZSBsZW4gKGJ5dGV2ZWN0b3ItbGVuZ3RoIGJ2KSkKICAoZGVmaW5lIHV0ZjggKG1ha2Ut Ynl0ZXZlY3RvciAoKiBsZW4gMikpKQogIChsZXQtc3ludGF4ICgoYmFzZTE2LW9jdGV0LXBhaXJz CiAgICAgICAgICAgICAgICAobGFtYmRhIChzKQogICAgICAgICAgICAgICAgICAoc3ludGF4LWNh c2UgcyAoKQogICAgICAgICAgICAgICAgICAgIChfCiAgICAgICAgICAgICAgICAgICAgIChzdHJp bmctPnV0ZjgKICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctY29uY2F0ZW5hdGUKICAgICAg ICAgICAgICAgICAgICAgICAodW5mb2xkIChjdXQgPiA8PiAyNTUpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobGFtYmRhIChuKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoZm9ybWF0ICNmICJ+MiwnMHgiIG4pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MSsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDApKSkpKSkpKQogICAgKGRlZmluZSBv Y3RldC1wYWlycyBiYXNlMTYtb2N0ZXQtcGFpcnMpCiAgICAobGV0IGxvb3AgKChpIDApKQogICAg ICAod2hlbiAoPCBpIGxlbikKICAgICAgICAoYnl0ZXZlY3Rvci11MTYtbmF0aXZlLXNldCEKICAg ICAgICAgdXRmOCAoKiAyIGkpCiAgICAgICAgIChieXRldmVjdG9yLXUxNi1uYXRpdmUtcmVmIG9j dGV0LXBhaXJzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIDIgKGJ5dGV2 ZWN0b3ItdTgtcmVmIGJ2IGkpKSkpCiAgICAgICAgKGxvb3AgKCsgaSAxKSkpKQogICAgKHV0Zjgt PnN0cmluZyB1dGY4KSkpCgooZGVmaW5lIGJhc2UxNi1zdHJpbmctPmJ5dGV2ZWN0b3IKICAobGV0 ICgoY2hhcnMtPnZhbHVlIChmb2xkIChsYW1iZGEgKGkgcikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKHZoYXNoLWNvbnN2IChzdHJpbmctcmVmIChudW1iZXItPnN0cmluZyBpIDE2KQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkgcikpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2bGlzdC1udWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoaW90YSAxNikpKSkKICAgIChsYW1iZGEgKHMpCiAgICAgICJSZXR1cm4gdGhlIGJ5dGV2ZWN0 b3Igd2hvc2UgaGV4YWRlY2ltYWwgcmVwcmVzZW50YXRpb24gaXMgc3RyaW5nIFMuIgogICAgICAo ZGVmaW5lIGJ2CiAgICAgICAgKG1ha2UtYnl0ZXZlY3RvciAocXVvdGllbnQgKHN0cmluZy1sZW5n dGggcykgMikgMCkpCgogICAgICAoc3RyaW5nLWZvbGQgKGxhbWJkYSAoY2hyIGkpCiAgICAgICAg ICAgICAgICAgICAgIChsZXQgKChqIChxdW90aWVudCBpIDIpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAodiAoYW5kPT4gKHZoYXNoLWFzc3YgY2hyIGNoYXJzLT52YWx1ZSkgY2RyKSkpCiAg ICAgICAgICAgICAgICAgICAgICAgKGlmIHYKICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlm ICh6ZXJvPyAobG9nYW5kIGkgMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0 ZXZlY3Rvci11OC1zZXQhIGJ2IGoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGFyaXRobWV0aWMtc2hpZnQgdiA0KSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChsZXQgKCh3IChieXRldmVjdG9yLXU4LXJlZiBidiBqKSkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChieXRldmVjdG9yLXU4LXNldCEgYnYgaiAobG9naW9y IHYgdykpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yICJpbnZhbGlkIGhleGFk ZWNpbWFsIGNoYXJhY3RlciIgY2hyKSkpCiAgICAgICAgICAgICAgICAgICAgICgrIGkgMSkpCiAg ICAgICAgICAgICAgICAgICAwCiAgICAgICAgICAgICAgICAgICBzKQogICAgICBidikpKQoK --=-oO3ve0sbUKHv+E2PetM6-- --=-LgTbGMcMEdj53iFC4DsO Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYTolKhccbWF4aW1lZGV2 b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7mlGAQCkpIysMV7eW3JFiUt5BiN0WNy3 4UiPf2bbQPsxK4yfNQD/bRnL5I9uIPJtf7hx9xG1A6H7kytSVL+0KdhlTShqag0= =oljC -----END PGP SIGNATURE----- --=-LgTbGMcMEdj53iFC4DsO--