From mboxrd@z Thu Jan 1 00:00:00 1970 From: Steve Sprang Subject: [PATCH] substitute: Improve readability of substitute-related output. Date: Mon, 14 Sep 2015 22:55:49 -0700 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001a113d80947d955d051fc2d52d Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:42383) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZbjDd-0004bR-60 for guix-devel@gnu.org; Tue, 15 Sep 2015 01:55:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZbjDa-0006Rb-MU for guix-devel@gnu.org; Tue, 15 Sep 2015 01:55:53 -0400 Received: from mail-oi0-x233.google.com ([2607:f8b0:4003:c06::233]:36824) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZbjDa-0006RW-7Z for guix-devel@gnu.org; Tue, 15 Sep 2015 01:55:50 -0400 Received: by oibi136 with SMTP id i136so89618168oib.3 for ; Mon, 14 Sep 2015 22:55:49 -0700 (PDT) List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: guix-devel@gnu.org --001a113d80947d955d051fc2d52d Content-Type: multipart/alternative; boundary=001a113d80947d9558051fc2d52b --001a113d80947d9558051fc2d52b Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Here's my attempt at making substitute-related logging a little easier to grok. I added newlines to split up output and visually separate multiple substitutions. Since the download size is unknown, we can't use a progress bar, but I made the output more consistent with the progress bar behavior. I also shortened the hash after it's been repeated in full twice (once for the store and once for the download URL). Current behavior: found valid signature for '/gnu/store/ayad3km6vzv70777icacgx0jzlyfsr8z-python2-pyicu-1.8', from ' http://hydra.gnu.org/nar/ayad3km6vzv70777icacgx0jzlyfsr8z-python2-pyicu-1.8= ' downloading `/gnu/store/ayad3km6vzv70777icacgx0jzlyfsr8z-python2-pyicu-1.8' (0.8 MiB installed)... http://hydra.gnu.org/nar/ayad3km6vzv70777icacgx0jzlyfsr8z-python2-pyicu-1.8 220KiB transferred (127KiB/s) found valid signature for '/gnu/store/8q38qgmly775c17wp9frkq88j38blh67-python2-simplejson-3.3.0', from ' http://hydra.gnu.org/nar/8q38qgmly775c17wp9frkq88j38blh67-python2-simplejso= n-3.3.0 ' downloading `/gnu/store/8q38qgmly775c17wp9frkq88j38blh67-python2-simplejson-3.3.0' (0.4 MiB installed)... http://hydra.gnu.org/nar/8q38qgmly775c17wp9frkq88j38blh67-python2-simplejso= n-3.3.0 78KiB transferred (149KiB/s) Patched behavior: Found valid signature for /gnu/store/sin6c3n1440f8kza0k4hdms38fbb4dv0-boost-1.58.0 >From http://hydra.gnu.org/nar/sin6c3n1440f8kza0k4hdms38fbb4dv0-boost-1.58.0 Downloading sin6c3=E2=80=A6boost-1.58.0 (110.6MiB installed)... sin6c3=E2=80=A6boost-1.58.0 911KiB/s 00:00:11 | 9.4Mi= B transferred Found valid signature for /gnu/store/svznj538ppnginrnqnrqxn6dsxq6rhg5-aspell-0.60.6.1 From http://hydra.gnu.org/nar/svznj538ppnginrnqnrqxn6dsxq6rhg5-aspell-0.60.6.1 Downloading svznj5=E2=80=A6aspell-0.60.6.1 (3.5MiB installed)... svznj5=E2=80=A6aspell-0.60.6.1 92KiB/s 00:00:09 | 836Ki= B transferred -Steve --001a113d80947d9558051fc2d52b Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Here's my attempt at making substitute-relat= ed logging a little easier to grok.

I added newlines to split up out= put and visually separate multiple substitutions. Since the download size i= s unknown, we can't use a progress bar, but I made the output more cons= istent with the progress bar behavior. I also shortened the hash after it&#= 39;s been repeated in full twice (once for the store and once for the downl= oad URL).

Current behavior:

found valid signature for &= #39;/gnu/store/ayad3km6vzv70777icacgx0jzlyfsr8z-python2-pyicu-1.8', fro= m 'http://hydra.gnu.org/nar/ayad3km6vzv70777icacgx0jzlyfsr= 8z-python2-pyicu-1.8'
downloading `/gnu/store/ayad3km6vzv70777ic= acgx0jzlyfsr8z-python2-pyicu-1.8' (0.8 MiB installed)...
http://hydra.gnu.org/nar/8q38qg= mly775c17wp9frkq88j38blh67-python2-simplejson-3.3.0'
downloading= `/gnu/store/8q38qgmly775c17wp9frkq88j38blh67-python2-simplejson-3.3.0'= (0.4 MiB installed)...
http://hydra.gnu.org/nar/8q3= 8qgmly775c17wp9frkq88j38blh67-python2-simplejson-3.3.0=C2=A0=C2=A0=C2= =A0 78KiB transferred (149KiB/s)

Patched behavior:

Found valid signature for /gnu/store/sin6c3n1440f8kza0= k4hdms38fbb4dv0-boost-1.58.0
From http://hydra.gnu.org/nar/sin6c= 3n1440f8kza0k4hdms38fbb4dv0-boost-1.58.0
Downloading sin6c3=E2=80=A6= boost-1.58.0 (110.6MiB installed)...
=C2=A0sin6c3=E2=80=A6boost-1.58.0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 911KiB/s 00:00:11 | 9.4= MiB transferred

Found valid signature for /gnu/store/svznj538ppnginr= nqnrqxn6dsxq6rhg5-aspell-0.60.6.1
From http://hydra.gnu.org/n= ar/svznj538ppnginrnqnrqxn6dsxq6rhg5-aspell-0.60.6.1
Downloading svzn= j5=E2=80=A6aspell-0.60.6.1 (3.5MiB installed)...
=C2=A0svznj5=E2=80=A6as= pell-0.60.6.1=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 92KiB/s 00:00:09 | 8= 36KiB transferred

-Steve
--001a113d80947d9558051fc2d52b-- --001a113d80947d955d051fc2d52d Content-Type: text/x-patch; charset=UTF-8; name="prettier-substitute.patch" Content-Disposition: attachment; filename="prettier-substitute.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iekxuxij0 RnJvbSA5NTkzNmJmMjUzOTRkMjk4NWY5MzMxY2I4ZmEwOGQ1YjMwY2I2NGE1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTdGV2ZSBTcHJhbmcgPHNjc0BzdGV2ZXNwcmFuZy5jb20+CkRh dGU6IE1vbiwgMTQgU2VwIDIwMTUgMjI6MzE6MTEgLTA3MDAKU3ViamVjdDogW1BBVENIXSBzdWJz dGl0dXRlOiBJbXByb3ZlIHJlYWRhYmlsaXR5IG9mIHN1YnN0aXR1dGUtcmVsYXRlZCBvdXRwdXQu CgoqIGd1aXgvYnVpbGQvZG93bmxvYWQuc2NtIChmbGV4aWJsZS1zcGFjZSwgdHJ1bmNhdGVkLXVy bCk6IE5ldyBwcm9jZWR1cmVzLgogIChwcm9ncmVzcy1wcm9jKTogR2VuZXJhdGUgYSBiZXR0ZXIg aW5kZXRlcm1pbmF0ZSBwcm9ncmVzcyBzdHJpbmcuCiAgKG5lYXJlc3QtZXhhY3QtaW50ZWdlciwg c2Vjb25kcy0+c3RyaW5nLCBieXRlLWNvdW50LT5zdHJpbmcpOiBNb3ZlIHRvLi4uCiogZ3VpeC91 dGlscy5zY206IC4uLmhlcmUuCiogZ3VpeC9zdG9yZS5zY20gKHRydW5jYXRlZC1zdG9yZS1wYXRo KTogTmV3IHByb2NlZHVyZS4KKiBndWl4L3NjcmlwdHMvc3Vic3RpdHV0ZS5zY20gKGFzc2VydC12 YWxpZC1uYXJpbmZvKTogQWRkIG5ld2xpbmVzIHRvIG91dHB1dC4KICAocHJvY2Vzcy1zdWJzdGl0 dXRpb24pOiBVc2UgYnl0ZS1jb3VudC0+c3RyaW5nIGFuZCB0cnVuY2F0ZWQtc3RvcmUtcGF0aC4K LS0tCiBndWl4L2J1aWxkL2Rvd25sb2FkLnNjbSAgICAgfCA3MSArKysrKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGd1aXgvc2NyaXB0cy9zdWJzdGl0dXRlLnNjbSB8 IDExICsrKy0tLS0KIGd1aXgvc3RvcmUuc2NtICAgICAgICAgICAgICB8IDExICsrKysrKy0KIGd1 aXgvdXRpbHMuc2NtICAgICAgICAgICAgICB8IDQxICsrKysrKysrKysrKysrKysrKysrKysrKyst CiA0IGZpbGVzIGNoYW5nZWQsIDg1IGluc2VydGlvbnMoKyksIDQ5IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2d1aXgvYnVpbGQvZG93bmxvYWQuc2NtIGIvZ3VpeC9idWlsZC9kb3dubG9hZC5z Y20KaW5kZXggMzFkNjBmYi4uZTIwNWYzMSAxMDA2NDQKLS0tIGEvZ3VpeC9idWlsZC9kb3dubG9h ZC5zY20KKysrIGIvZ3VpeC9idWlsZC9kb3dubG9hZC5zY20KQEAgLTI0LDYgKzI0LDggQEAKICAg Izp1c2UtbW9kdWxlICh3ZWIgcmVzcG9uc2UpCiAgICM6dXNlLW1vZHVsZSAoZ3VpeCBmdHAtY2xp ZW50KQogICAjOnVzZS1tb2R1bGUgKGd1aXggYnVpbGQgdXRpbHMpCisgICM6dXNlLW1vZHVsZSAo Z3VpeCBzdG9yZSkKKyAgIzp1c2UtbW9kdWxlIChndWl4IHV0aWxzKQogICAjOnVzZS1tb2R1bGUg KHJucnMgaW8gcG9ydHMpCiAgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTEpCiAgICM6dXNlLW1v ZHVsZSAoc3JmaSBzcmZpLTExKQpAQCAtNDksNDMgKzUxLDEyIEBACiAgIDs7IFNpemUgb2YgdGhl IEhUVFAgcmVjZWl2ZSBidWZmZXIuCiAgIDY1NTM2KQogCi0oZGVmaW5lIChuZWFyZXN0LWV4YWN0 LWludGVnZXIgeCkKLSAgIkdpdmVuIGEgcmVhbCBudW1iZXIgWCwgcmV0dXJuIHRoZSBuZWFyZXN0 IGV4YWN0IGludGVnZXIsIHdpdGggdGllcyBnb2luZyB0bwotdGhlIG5lYXJlc3QgZXhhY3QgZXZl biBpbnRlZ2VyLiIKLSAgKGluZXhhY3QtPmV4YWN0IChyb3VuZCB4KSkpCi0KIChkZWZpbmUgKGR1 cmF0aW9uLT5zZWNvbmRzIGR1cmF0aW9uKQogICAiUmV0dXJuIHRoZSBudW1iZXIgb2Ygc2Vjb25k cyByZXByZXNlbnRlZCBieSBEVVJBVElPTiwgYSAndGltZS1kdXJhdGlvbicKIG9iamVjdCwgYXMg YW4gaW5leGFjdCBudW1iZXIuIgogICAoKyAodGltZS1zZWNvbmQgZHVyYXRpb24pCiAgICAgICgv ICh0aW1lLW5hbm9zZWNvbmQgZHVyYXRpb24pIDFlOSkpKQogCi0oZGVmaW5lIChzZWNvbmRzLT5z dHJpbmcgZHVyYXRpb24pCi0gICJHaXZlbiBEVVJBVElPTiBpbiBzZWNvbmRzLCByZXR1cm4gYSBz dHJpbmcgcmVwcmVzZW50aW5nIGl0IGluICdoaDptbTpzcycKLWZvcm1hdC4iCi0gIChpZiAobm90 IChudW1iZXI/IGR1cmF0aW9uKSkKLSAgICAgICIwMDowMDowMCIKLSAgICAgIChsZXQqICgodG90 YWwtc2Vjb25kcyAobmVhcmVzdC1leGFjdC1pbnRlZ2VyIGR1cmF0aW9uKSkKLSAgICAgICAgICAg ICAoZXh0cmEtc2Vjb25kcyAobW9kdWxvIHRvdGFsLXNlY29uZHMgMzYwMCkpCi0gICAgICAgICAg ICAgKGhvdXJzICAgICAgICAgKHF1b3RpZW50IHRvdGFsLXNlY29uZHMgMzYwMCkpCi0gICAgICAg ICAgICAgKG1pbnMgICAgICAgICAgKHF1b3RpZW50IGV4dHJhLXNlY29uZHMgNjApKQotICAgICAg ICAgICAgIChzZWNzICAgICAgICAgIChtb2R1bG8gZXh0cmEtc2Vjb25kcyA2MCkpKQotICAgICAg ICAoZm9ybWF0ICNmICJ+MiwnMGQ6fjIsJzBkOn4yLCcwZCIgaG91cnMgbWlucyBzZWNzKSkpKQot Ci0oZGVmaW5lIChieXRlLWNvdW50LT5zdHJpbmcgc2l6ZSkKLSAgIkdpdmVuIFNJWkUgaW4gYnl0 ZXMsIHJldHVybiBhIHN0cmluZyByZXByZXNlbnRpbmcgaXQgaW4gYSBodW1hbi1yZWFkYWJsZQot d2F5LiIKLSAgKGxldCAoKEtpQiAxMDI0LikKLSAgICAgICAgKE1pQiAoZXhwdCAxMDI0LiAyKSkK LSAgICAgICAgKEdpQiAoZXhwdCAxMDI0LiAzKSkKLSAgICAgICAgKFRpQiAoZXhwdCAxMDI0LiA0 KSkpCi0gICAgKGNvbmQKLSAgICAgKCg8IHNpemUgS2lCKSAoZm9ybWF0ICNmICJ+ZEIiICAgICAo bmVhcmVzdC1leGFjdC1pbnRlZ2VyIHNpemUpKSkKLSAgICAgKCg8IHNpemUgTWlCKSAoZm9ybWF0 ICNmICJ+ZEtpQiIgICAobmVhcmVzdC1leGFjdC1pbnRlZ2VyICgvIHNpemUgS2lCKSkpKQotICAg ICAoKDwgc2l6ZSBHaUIpIChmb3JtYXQgI2YgIn4sMWZNaUIiICgvIHNpemUgTWlCKSkpCi0gICAg ICgoPCBzaXplIFRpQikgKGZvcm1hdCAjZiAifiwyZkdpQiIgKC8gc2l6ZSBHaUIpKSkKLSAgICAg KGVsc2UgICAgICAgICAoZm9ybWF0ICNmICJ+LDNmVGlCIiAoLyBzaXplIFRpQikpKSkpKQotCiAo ZGVmaW5lKiAocHJvZ3Jlc3MtYmFyICUgIzpvcHRpb25hbCAoYmFyLXdpZHRoIDIwKSkKICAgIlJl dHVybiAlIGFzIGEgc3RyaW5nIHJlcHJlc2VudGluZyBhbiBBU0NJSS1hcnQgcHJvZ3Jlc3MgYmFy LiAgVGhlIHRvdGFsCiB3aWR0aCBvZiB0aGUgYmFyIGlzIEJBUi1XSURUSC4iCkBAIC05Niw2ICs2 NywyMCBAQCB3aWR0aCBvZiB0aGUgYmFyIGlzIEJBUi1XSURUSC4iCiAgICAgICAgICAgICAobWFr ZS1zdHJpbmcgZmlsbGVkICNcIykKICAgICAgICAgICAgIChtYWtlLXN0cmluZyBlbXB0eSAjXHNw YWNlKSkpKQogCisoZGVmaW5lKiAoZmxleGlibGUtc3BhY2UgbGVmdCByaWdodCAjOm9wdGlvbmFs IChjb2x1bW5zIDgwKSkKKyAgIlJldHVybiBhIHN0cmluZyBvZiBzcGFjZXMgd2hpY2ggY2FuIGJl IHVzZWQgdG8gc2VwYXJhdGUgTEVGVCBhbmQgUklHSFQgc28KK3RoYXQgUklHSFQgaXMganVzdGlm aWVkIHRvIGEgd2lkdGggb2YgQ09MVU1OUy4iCisgIChsZXQqICgodG90YWwtdXNlZCAoKyAoc3Ry aW5nLWxlbmd0aCBsZWZ0KQorICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1sZW5ndGgg cmlnaHQpKSkKKyAgICAgICAgIChudW0tc3BhY2VzIChtYXggMSAoLSBjb2x1bW5zIHRvdGFsLXVz ZWQpKSkpCisgICAgKG1ha2Utc3RyaW5nIG51bS1zcGFjZXMgI1xzcGFjZSkpKQorCisoZGVmaW5l ICh0cnVuY2F0ZWQtdXJsIHVybCkKKyAgIlJldHVybiBhIGZyaWVuZGxpZXIgdmVyc2lvbiBvZiBV UkwgZm9yIGRpc3BsYXkuIgorICAobGV0ICgoc3RvcmUtcGF0aCAoc3RyaW5nLWFwcGVuZCAoJXN0 b3JlLXByZWZpeCkgIi8iIChiYXNlbmFtZSB1cmwpKSkpCisgICAgOzsgdGFrZSBhZHZhbnRhZ2Ug b2YgdGhlIGltcGxlbWVudGF0aW9uIGZvciBzdG9yZSBwYXRocworICAgICh0cnVuY2F0ZWQtc3Rv cmUtcGF0aCBzdG9yZS1wYXRoKSkpCisKIChkZWZpbmUqIChwcm9ncmVzcy1wcm9jIGZpbGUgc2l6 ZSAjOm9wdGlvbmFsIChsb2ctcG9ydCAoY3VycmVudC1vdXRwdXQtcG9ydCkpKQogICAiUmV0dXJu IGEgcHJvY2VkdXJlIHRvIHNob3cgdGhlIHByb2dyZXNzIG9mIEZJTEUncyBkb3dubG9hZCwgd2hp Y2ggaXMgU0laRQogYnl0ZXMgbG9uZy4gIFRoZSByZXR1cm5lZCBwcm9jZWR1cmUgaXMgc3VpdGFi bGUgZm9yIHVzZSBhcyBhbiBhcmd1bWVudCB0bwpAQCAtMTMwLDI0ICsxMTUsMjYgQEAgYnl0ZXMg bG9uZy4gIFRoZSByZXR1cm5lZCBwcm9jZWR1cmUgaXMgc3VpdGFibGUgZm9yIHVzZSBhcyBhbiBh cmd1bWVudCB0bwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2Vj b25kcy0+c3RyaW5nIGVsYXBzZWQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChwcm9ncmVzcy1iYXIgJSkgJSkpCiAgICAgICAgICAgICAgICAgICAgICA7OyBUT0RP OiBNYWtlIHRoaXMgYWRhcHQgdG8gdGhlIGFjdHVhbCB0ZXJtaW5hbCB3aWR0aC4KLSAgICAgICAg ICAgICAgICAgICAgIChjb2xzICAgICAgIDgwKQotICAgICAgICAgICAgICAgICAgICAgKG51bS1z cGFjZXMgKG1heCAxICgtIGNvbHMgKCsgKHN0cmluZy1sZW5ndGggbGVmdCkKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctbGVuZ3RoIHJp Z2h0KSkpKSkKLSAgICAgICAgICAgICAgICAgICAgIChnYXAgICAgICAgIChtYWtlLXN0cmluZyBu dW0tc3BhY2VzICNcc3BhY2UpKSkKKyAgICAgICAgICAgICAgICAgICAgIChnYXAgICAgICAgIChm bGV4aWJsZS1zcGFjZSBsZWZ0IHJpZ2h0KSkpCiAgICAgICAgICAgICAgICAgKGZvcm1hdCBsb2ct cG9ydCAifmF+YX5hIiBsZWZ0IGdhcCByaWdodCkKICAgICAgICAgICAgICAgICAoZGlzcGxheSAj XGNyIGxvZy1wb3J0KQogICAgICAgICAgICAgICAgIChmbHVzaC1vdXRwdXQtcG9ydCBsb2ctcG9y dCkKICAgICAgICAgICAgICAgICAoY29udCkpKSkKICAgICAgICAgICAobGFtYmRhICh0cmFuc2Zl cnJlZCBjb250KQogICAgICAgICAgICAgKHdpdGgtZWxhcHNlZC10aW1lIGVsYXBzZWQKLSAgICAg ICAgICAgICAgKGxldCAoKHRocm91Z2hwdXQgKGlmIGVsYXBzZWQKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICgvIHRyYW5zZmVycmVkIGVsYXBzZWQpCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAwKSkpCisgICAgICAgICAgICAgIChsZXQqICgodGhyb3Vn aHB1dCAoaWYgZWxhcHNlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgv IHRyYW5zZmVycmVkIGVsYXBzZWQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMCkpCisgICAgICAgICAgICAgICAgICAgICAobGVmdCAgICAgICAoZm9ybWF0ICNmICIgfmEi CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnVuY2F0ZWQtdXJs IGZpbGUpKSkKKyAgICAgICAgICAgICAgICAgICAgIChyaWdodCAgICAgIChmb3JtYXQgI2YgIn5h L3MgfmEgfCB+YSB0cmFuc2ZlcnJlZCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGJ5dGUtY291bnQtPnN0cmluZyB0aHJvdWdocHV0KQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoc2Vjb25kcy0+c3RyaW5nIGVsYXBzZWQpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlLWNvdW50LT5zdHJpbmcg dHJhbnNmZXJyZWQpKSkKKyAgICAgICAgICAgICAgICAgICAgIDs7IFRPRE86IE1ha2UgdGhpcyBh ZGFwdCB0byB0aGUgYWN0dWFsIHRlcm1pbmFsIHdpZHRoLgorICAgICAgICAgICAgICAgICAgICAg KGdhcCAgICAgICAgKGZsZXhpYmxlLXNwYWNlIGxlZnQgcmlnaHQpKSkKKyAgICAgICAgICAgICAg ICAoZm9ybWF0IGxvZy1wb3J0ICJ+YX5hfmEiIGxlZnQgZ2FwIHJpZ2h0KQogICAgICAgICAgICAg ICAgIChkaXNwbGF5ICNcY3IgbG9nLXBvcnQpCi0gICAgICAgICAgICAgICAgKGZvcm1hdCBsb2ct cG9ydCAifmFcdH5hIHRyYW5zZmVycmVkICh+YS9zKSIKLSAgICAgICAgICAgICAgICAgICAgICAg IGZpbGUKLSAgICAgICAgICAgICAgICAgICAgICAgIChieXRlLWNvdW50LT5zdHJpbmcgdHJhbnNm ZXJyZWQpCi0gICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZS1jb3VudC0+c3RyaW5nIHRocm91 Z2hwdXQpKQogICAgICAgICAgICAgICAgIChmbHVzaC1vdXRwdXQtcG9ydCBsb2ctcG9ydCkKICAg ICAgICAgICAgICAgICAoY29udCkpKSkpKSkpCiAKZGlmZiAtLWdpdCBhL2d1aXgvc2NyaXB0cy9z dWJzdGl0dXRlLnNjbSBiL2d1aXgvc2NyaXB0cy9zdWJzdGl0dXRlLnNjbQppbmRleCBlOTA4YmM5 Li4yYjM2NzkzIDEwMDc1NQotLS0gYS9ndWl4L3NjcmlwdHMvc3Vic3RpdHV0ZS5zY20KKysrIGIv Z3VpeC9zY3JpcHRzL3N1YnN0aXR1dGUuc2NtCkBAIC0yOSw2ICsyOSw3IEBACiAgICM6dXNlLW1v ZHVsZSAoZ3VpeCBiYXNlNjQpCiAgICM6dXNlLW1vZHVsZSAoZ3VpeCBway1jcnlwdG8pCiAgICM6 dXNlLW1vZHVsZSAoZ3VpeCBwa2kpCisgICM6dXNlLW1vZHVsZSAoZ3VpeCBzdG9yZSkKICAgIzp1 c2UtbW9kdWxlICgoZ3VpeCBidWlsZCB1dGlscykgIzpzZWxlY3QgKG1rZGlyLXAgZHVtcC1wb3J0 KSkKICAgIzp1c2UtbW9kdWxlICgoZ3VpeCBidWlsZCBkb3dubG9hZCkKICAgICAgICAgICAgICAg ICAjOnNlbGVjdCAocHJvZ3Jlc3MtcHJvYyB1cmktYWJicmV2aWF0aW9uKSkKQEAgLTMzNyw4ICsz MzgsOSBAQCBvciBpcyBzaWduZWQgYnkgYW4gdW5hdXRob3JpemVkIGtleS4iCiAgICAgICAgICAg KHVubGVzcyAlYWxsb3ctdW5hdXRoZW50aWNhdGVkLXN1YnN0aXR1dGVzPwogICAgICAgICAgICAg KGFzc2VydC12YWxpZC1zaWduYXR1cmUgbmFyaW5mbyBzaWduYXR1cmUgaGFzaCBhY2wpCiAgICAg ICAgICAgICAod2hlbiB2ZXJib3NlPworICAgICAgICAgICAgICA7OyB2aXN1YWxseSBzZXBhcmF0 ZSBzdWJzdGl0dXRpb25zIHdpdGggYSBuZXdsaW5lCiAgICAgICAgICAgICAgIChmb3JtYXQgKGN1 cnJlbnQtZXJyb3ItcG9ydCkKLSAgICAgICAgICAgICAgICAgICAgICAiZm91bmQgdmFsaWQgc2ln bmF0dXJlIGZvciAnfmEnLCBmcm9tICd+YSd+JSIKKyAgICAgICAgICAgICAgICAgICAgICAifiVG b3VuZCB2YWxpZCBzaWduYXR1cmUgZm9yIH5hfiVGcm9tIH5hfiUiCiAgICAgICAgICAgICAgICAg ICAgICAgKG5hcmluZm8tcGF0aCBuYXJpbmZvKQogICAgICAgICAgICAgICAgICAgICAgICh1cmkt PnN0cmluZyAobmFyaW5mby11cmkgbmFyaW5mbykpKSkpCiAgICAgICAgICAgbmFyaW5mbykpKSkK QEAgLTc1MywxMyArNzU1LDEyIEBAIERFU1RJTkFUSU9OIGFzIGEgbmFyIGZpbGUuICBWZXJpZnkg dGhlIHN1YnN0aXR1dGUgYWdhaW5zdCBBQ0wuIgogICAgIDs7IFRlbGwgdGhlIGRhZW1vbiB3aGF0 IHRoZSBleHBlY3RlZCBoYXNoIG9mIHRoZSBOYXIgaXRzZWxmIGlzLgogICAgIChmb3JtYXQgI3Qg In5hfiUiIChuYXJpbmZvLWhhc2ggbmFyaW5mbykpCiAKLSAgICAoZm9ybWF0IChjdXJyZW50LWVy cm9yLXBvcnQpICJkb3dubG9hZGluZyBgfmEnfjpbfip+OyAofiwxZiBNaUIgaW5zdGFsbGVkKX5d Li4ufiUiCi0gICAgICAgICAgICBzdG9yZS1pdGVtCi0KKyAgICAoZm9ybWF0IChjdXJyZW50LWVy cm9yLXBvcnQpICJEb3dubG9hZGluZyB+YX46W34qfjsgKH5hIGluc3RhbGxlZCl+XS4uLn4lIgor ICAgICAgICAgICAgKHRydW5jYXRlZC1zdG9yZS1wYXRoIHN0b3JlLWl0ZW0pCiAgICAgICAgICAg ICA7OyBVc2UgdGhlIE5hciBzaXplIGFzIGFuIGVzdGltYXRlIG9mIHRoZSBpbnN0YWxsZWQgc2l6 ZS4KICAgICAgICAgICAgIChuYXJpbmZvLXNpemUgbmFyaW5mbykKICAgICAgICAgICAgIChhbmQ9 PiAobmFyaW5mby1zaXplIG5hcmluZm8pCi0gICAgICAgICAgICAgICAgICAgKGN1dGUgLyA8PiAo ZXhwdCAyLiAyMCkpKSkKKyAgICAgICAgICAgICAgICAgICAoY3V0ZSBieXRlLWNvdW50LT5zdHJp bmcgPD4pKSkKICAgICAobGV0Ki12YWx1ZXMgKCgocmF3IGRvd25sb2FkLXNpemUpCiAgICAgICAg ICAgICAgICAgICAgOzsgTm90ZSB0aGF0IEh5ZHJhIGN1cnJlbnRseSBnZW5lcmF0ZXMgTmFycyBv biB0aGUgZmx5CiAgICAgICAgICAgICAgICAgICAgOzsgYW5kIGRvZXNuJ3Qgc3BlY2lmeSBhIENv bnRlbnQtTGVuZ3RoLCBzbwpkaWZmIC0tZ2l0IGEvZ3VpeC9zdG9yZS5zY20gYi9ndWl4L3N0b3Jl LnNjbQppbmRleCAxMzJiOGEzLi5hMWI3NmUzIDEwMDY0NAotLS0gYS9ndWl4L3N0b3JlLnNjbQor KysgYi9ndWl4L3N0b3JlLnNjbQpAQCAtMTI0LDcgKzEyNCw4IEBACiAgICAgICAgICAgICBzdG9y ZS1wYXRoLXBhY2thZ2UtbmFtZQogICAgICAgICAgICAgc3RvcmUtcGF0aC1oYXNoLXBhcnQKICAg ICAgICAgICAgIGRpcmVjdC1zdG9yZS1wYXRoCi0gICAgICAgICAgICBsb2ctZmlsZSkpCisgICAg ICAgICAgICBsb2ctZmlsZQorICAgICAgICAgICAgdHJ1bmNhdGVkLXN0b3JlLXBhdGgpKQogCiAo ZGVmaW5lICVwcm90b2NvbC12ZXJzaW9uICN4MTBjKQogCkBAIC0xMDg4LDMgKzEwODksMTEgQEAg bXVzdCBiZSBhbiBhYnNvbHV0ZSBzdG9yZSBmaWxlIG5hbWUsIG9yIGEgZGVyaXZhdGlvbiBmaWxl IG5hbWUuIgogICAgICAgICAgICAgOzsgUmV0dXJuIHRoZSBmaXJzdCB0aGF0IHdvcmtzLgogICAg ICAgICAgICAgKGFueSAoY3V0IGxvZy1maWxlIHN0b3JlIDw+KSBkZXJpdmVycykpCiAgICAgICAg ICAgIChfICNmKSkpKSkKKworKGRlZmluZSogKHRydW5jYXRlZC1zdG9yZS1wYXRoIHN0b3JlLXBh dGggIzpvcHRpb25hbCAocHJlZml4LWxlbmd0aCA2KSkKKyAgIlJldHVybiBhIGZyaWVuZGxpZXIg dmVyc2lvbiBvZiBTVE9SRS1QQVRIIGZvciBkaXNwbGF5LiIKKyAgKGxldCogKChoYXNoLXBhcnQg ICAgKHN0b3JlLXBhdGgtaGFzaC1wYXJ0IHN0b3JlLXBhdGgpKQorICAgICAgICAgKHBhY2thZ2Ut bmFtZSAoc3RvcmUtcGF0aC1wYWNrYWdlLW5hbWUgc3RvcmUtcGF0aCkpCisgICAgICAgICAoc2Fm ZS1sZW5ndGggIChtYXggMCAobWluIHByZWZpeC1sZW5ndGggMjQpKSkKKyAgICAgICAgIChwcmVm aXggICAgICAgKHN0cmluZy10YWtlIGhhc2gtcGFydCBzYWZlLWxlbmd0aCkpKQorICAgIChzdHJp bmctYXBwZW5kIHByZWZpeCAi4oCmIiBwYWNrYWdlLW5hbWUpKSkKZGlmZiAtLWdpdCBhL2d1aXgv dXRpbHMuc2NtIGIvZ3VpeC91dGlscy5zY20KaW5kZXggNDQ5MTNjNi4uNGQ4YWIxNyAxMDA2NDQK LS0tIGEvZ3VpeC91dGlscy5zY20KKysrIGIvZ3VpeC91dGlscy5zY20KQEAgLTg4LDcgKzg4LDEw IEBACiAgICAgICAgICAgICBkZWNvbXByZXNzZWQtcG9ydAogICAgICAgICAgICAgY2FsbC13aXRo LWRlY29tcHJlc3NlZC1wb3J0CiAgICAgICAgICAgICBjb21wcmVzc2VkLW91dHB1dC1wb3J0Ci0g ICAgICAgICAgICBjYWxsLXdpdGgtY29tcHJlc3NlZC1vdXRwdXQtcG9ydCkpCisgICAgICAgICAg ICBjYWxsLXdpdGgtY29tcHJlc3NlZC1vdXRwdXQtcG9ydAorCisgICAgICAgICAgICBzZWNvbmRz LT5zdHJpbmcKKyAgICAgICAgICAgIGJ5dGUtY291bnQtPnN0cmluZykpCiAKIAwKIDs7OwpAQCAt NzY3LDMgKzc3MCwzOSBAQCBldGMuIgogICAgIDs7IEluIGFjY29yZGFuY2Ugd2l0aCB0aGUgR0NT LCBzdGFydCBsaW5lIGFuZCBjb2x1bW4gbnVtYmVycyBhdCAxLiAgTm90ZQogICAgIDs7IHRoYXQg dW5saWtlIExJTkUgYW5kIGBwb3J0LWNvbHVtbicsIENPTCBpcyBhY3R1YWxseSAxLWluZGV4ZWQg aGVyZS4uLgogICAgIChsb2NhdGlvbiBmaWxlIChhbmQgbGluZSAoKyBsaW5lIDEpKSBjb2wpKSkK KworDAorOzs7Cis7OzsgSHVtYW4gcmVhZGFibGUgZm9ybWF0dGluZy4KKzs7OworCisoZGVmaW5l IChuZWFyZXN0LWV4YWN0LWludGVnZXIgeCkKKyAgIkdpdmVuIGEgcmVhbCBudW1iZXIgWCwgcmV0 dXJuIHRoZSBuZWFyZXN0IGV4YWN0IGludGVnZXIsIHdpdGggdGllcyBnb2luZyB0bwordGhlIG5l YXJlc3QgZXhhY3QgZXZlbiBpbnRlZ2VyLiIKKyAgKGluZXhhY3QtPmV4YWN0IChyb3VuZCB4KSkp CisKKyhkZWZpbmUgKHNlY29uZHMtPnN0cmluZyBkdXJhdGlvbikKKyAgIkdpdmVuIERVUkFUSU9O IGluIHNlY29uZHMsIHJldHVybiBhIHN0cmluZyByZXByZXNlbnRpbmcgaXQgaW4gJ2hoOm1tOnNz JworZm9ybWF0LiIKKyAgKGlmIChub3QgKG51bWJlcj8gZHVyYXRpb24pKQorICAgICAgIjAwOjAw OjAwIgorICAgICAgKGxldCogKCh0b3RhbC1zZWNvbmRzIChuZWFyZXN0LWV4YWN0LWludGVnZXIg ZHVyYXRpb24pKQorICAgICAgICAgICAgIChleHRyYS1zZWNvbmRzIChtb2R1bG8gdG90YWwtc2Vj b25kcyAzNjAwKSkKKyAgICAgICAgICAgICAoaG91cnMgICAgICAgICAocXVvdGllbnQgdG90YWwt c2Vjb25kcyAzNjAwKSkKKyAgICAgICAgICAgICAobWlucyAgICAgICAgICAocXVvdGllbnQgZXh0 cmEtc2Vjb25kcyA2MCkpCisgICAgICAgICAgICAgKHNlY3MgICAgICAgICAgKG1vZHVsbyBleHRy YS1zZWNvbmRzIDYwKSkpCisgICAgICAgIChmb3JtYXQgI2YgIn4yLCcwZDp+MiwnMGQ6fjIsJzBk IiBob3VycyBtaW5zIHNlY3MpKSkpCisKKyhkZWZpbmUgKGJ5dGUtY291bnQtPnN0cmluZyBzaXpl KQorICAiR2l2ZW4gU0laRSBpbiBieXRlcywgcmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGluZyBp dCBpbiBhIGh1bWFuLXJlYWRhYmxlCit3YXkuIgorICAobGV0ICgoS2lCIDEwMjQuKQorICAgICAg ICAoTWlCIChleHB0IDEwMjQuIDIpKQorICAgICAgICAoR2lCIChleHB0IDEwMjQuIDMpKQorICAg ICAgICAoVGlCIChleHB0IDEwMjQuIDQpKSkKKyAgICAoY29uZAorICAgICAoKDwgc2l6ZSBLaUIp IChmb3JtYXQgI2YgIn5kQiIgICAgIChuZWFyZXN0LWV4YWN0LWludGVnZXIgc2l6ZSkpKQorICAg ICAoKDwgc2l6ZSBNaUIpIChmb3JtYXQgI2YgIn5kS2lCIiAgIChuZWFyZXN0LWV4YWN0LWludGVn ZXIgKC8gc2l6ZSBLaUIpKSkpCisgICAgICgoPCBzaXplIEdpQikgKGZvcm1hdCAjZiAifiwxZk1p QiIgKC8gc2l6ZSBNaUIpKSkKKyAgICAgKCg8IHNpemUgVGlCKSAoZm9ybWF0ICNmICJ+LDJmR2lC IiAoLyBzaXplIEdpQikpKQorICAgICAoZWxzZSAgICAgICAgIChmb3JtYXQgI2YgIn4sM2ZUaUIi ICgvIHNpemUgVGlCKSkpKSkpCi0tIAoyLjUuMAoK --001a113d80947d955d051fc2d52d--