From mboxrd@z Thu Jan 1 00:00:00 1970 From: amirouche@hypermove.net Subject: Re: [PATCH] Add st Date: Sat, 13 Jun 2015 21:13:50 +0200 Message-ID: <90478856c581947d811869c438f17c55@hypermove.net> References: <7d59986edfeafbf10eeaaada41acee14@hypermove.net> <960301908817217a6148629f683a3f34@hypermove.net> <20150609142210.GA5037@debian> <501d27da45fc0ce3ba1b29a3787d72df@hypermove.net> <87a8w56gdy.fsf@netris.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=_0123b741f62ad397c8fc2f7a1a7ddc1b" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:33482) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z3qsU-0007Vl-P8 for guix-devel@gnu.org; Sat, 13 Jun 2015 15:14:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z3qsR-0006j3-AY for guix-devel@gnu.org; Sat, 13 Jun 2015 15:14:02 -0400 Received: from relay3-d.mail.gandi.net ([2001:4b98:c:538::195]:53700) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z3qsQ-0006ew-QU for guix-devel@gnu.org; Sat, 13 Jun 2015 15:13:59 -0400 In-Reply-To: <87a8w56gdy.fsf@netris.org> 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: Mark H Weaver Cc: guix-devel@gnu.org --=_0123b741f62ad397c8fc2f7a1a7ddc1b Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed I attached two patches. The second patch is to rename dwm.scm On 2015-06-12 00:15, Mark H Weaver wrote: > amirouche@hypermove.net writes: > >> On 2015-06-09 16:22, Andreas Enge wrote: >>>> + (description >>>> + "Xterm is bloated and unmaintainable. It has over 65K lines >>>> of code and >>> >>> Please write a more neutral description. Something like >>> "St implements a simple and light-weight terminal emulator. It >>> implements >>> 256 colors, most VT10X escape sequences, utf8, X11 copy/paste, >>> antialiased fonts (using fontconfig), fallback fonts, resizing, >>> and line drawing." >>> It is nicer to write what a programme does well than to complain >>> about >>> what others do poorly. >> >> Agreed. I created a new patch with the changes you requested and I've >> run: ./pre-inst-env guix lint st. > > Did you change the description at all? At first glance, it looks the > same as before. It should be more neutral, as Andreas said. Sorry. I did not commit before generating the patch. > >> From 24e374cd99adb8efc1d6a9c5ba0d7cfb1f71828f Mon Sep 17 00:00:00 2001 >> From: amz3 >> Date: Sun, 7 Jun 2015 19:04:28 +0200 >> Subject: [PATCH] gnu: add st. >> >> * gnu/packages/dwm.scm (st): New variable. >> * gnu/packages/patches/st-0.5-do-not-install-terminfo.patch: New file. > > You would need to add this patch to 'dist_patch_DATA' in gnu-system.am > as well, but in this case I think it's better to make this change in a > custom phase using 'substitute*'. The reason is that if the user > requests the source code using 'guix build -S st', it should probably > not include that change, which is guix-specific. > > It could be something like this: (untested) > > --8<---------------cut here---------------start------------->8--- > #:phases > (modify-phases %standard-phases > (delete 'configure) > (add-after 'unpack 'inhibit-terminfo-install > (lambda _ > (substitute* "Makefile" > (("\t@tic -s st.info") "")) > #t))))) > --8<---------------cut here---------------end--------------->8--- > > Also, we should probably rename dwm.scm to suckless.scm. > GNU_SYSTEM_MODULES in gnu-system.am should be updated accordingly, > keeping it sorted. > >> diff --git a/gnu/packages/dwm.scm b/gnu/packages/dwm.scm >> index 98fa122..8ce078b 100644 >> --- a/gnu/packages/dwm.scm >> +++ b/gnu/packages/dwm.scm > > Please add a copyright line for yourself to the top of the file. > >> @@ -22,7 +22,11 @@ >> #:use-module (guix download) >> #:use-module (guix build-system gnu) >> #:use-module (gnu packages) >> - #:use-module (gnu packages xorg)) >> + #:use-module (gnu packages xorg) >> + #:use-module (gnu packages fonts) >> + #:use-module (gnu packages ncurses) >> + #:use-module (gnu packages pkg-config) >> + #:use-module ((gnu packages fontutils) #:prefix font-utils:)) > > Instead of adding a prefix for (gnu package fontutils), better to add a > 'license:' prefix for (guix licenses) and update the 'license' fields > of > the existing packages accordingly. > >> >> (define-public dwm >> (package >> @@ -139,3 +143,47 @@ numbers of user-defined menu items efficiently.") >> (description >> "Simple X session lock with trivial feedback on password >> entry.") >> (license x11))) >> + >> + >> +(define-public st > > Just one blank line between packages please. > >> + (package >> + (name "st") >> + (version "0.5") >> + (source >> + (origin >> + (method url-fetch) >> + (uri (string-append "http://dl.suckless.org/st/st-" >> + version ".tar.gz")) >> + (patches (list (search-patch >> "st-0.5-do-not-install-terminfo.patch"))) >> + (sha256 >> + (base32 >> + "0knxpzaa86pprng6hak8hx8bw22yw22rpz1ffxjpcvqlz3xdv05f")))) >> + (build-system gnu-build-system) >> + (arguments >> + '(#:tests? #f ; no tests >> + #:make-flags (list "CC=gcc" >> + (string-append "PREFIX=" %output)) >> + #:phases >> + (alist-delete 'configure %standard-phases))) >> + (inputs >> + `(("libx11" ,libx11) >> + ("libxft" ,libxft) >> + ("libxcomposite" ,libxcomposite) >> + ("compositeproto" ,compositeproto) >> + ("libxext" ,libxext) >> + ("xextproto" ,xextproto) >> + ("libxrender" ,libxrender) >> + ("fontconfig" ,font-utils:fontconfig) >> + ("freetype" ,font-utils:freetype) >> + ("font-liberation" ,font-liberation))) >> + (native-inputs `(("pkg-config" ,pkg-config) >> + ("ncurses" ,ncurses))) > > Is ncurses really needed here as a native-input? If 'st' needs to be > linked to it for use at run time, then it should be a normal input. It > should only be a native-input if it's needed at build time. That would > be surprising to me, since the build process within guix-daemon is > obviously non-interactive. No it is not needed, since it's only useful to install the terminfo file. I removed it. > >> + (home-page "http://st.suckless.org/") >> + (synopsis "Simple terminal emulator") >> + (description >> + "Xterm is bloated and unmaintainable. It has over 65K lines of >> code and >> + emulates obscure and obsolete terminals you will never need. >> The popular >> + alternative, rxvt has only 32K lines of code. This is just too >> much for >> + something as simple as a terminal emulator; it's yet another >> example of >> + code complexity. st fix that.") > > See above. > > Can you send an updated patch? > > Thanks! > Mark --=_0123b741f62ad397c8fc2f7a1a7ddc1b Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=0001-gnu-Add-st.patch Content-Disposition: attachment; filename=0001-gnu-Add-st.patch; size=3644 RnJvbSA1N2YyNzYyYjdhNTAxYTkyZmJjYjViNmJlZDYyZjJiYmFlNDEzZWVhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBhbXozIDxhbWlyb3VjaGVAaHlwZXJtb3ZlLm5ldD4KRGF0ZTog U3VuLCA3IEp1biAyMDE1IDE5OjA0OjI4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxLzJdIGdudTog QWRkIHN0LgoKKiBnbnUvcGFja2FnZXMvZHdtLnNjbSAoc3QpOiBOZXcgdmFyaWFibGUuCi0tLQog Z251L3BhY2thZ2VzL2R3bS5zY20gfCA2MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNTUgaW5zZXJ0aW9ucygrKSwg NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9nbnUvcGFja2FnZXMvZHdtLnNjbSBiL2dudS9w YWNrYWdlcy9kd20uc2NtCmluZGV4IDk4ZmExMjIuLmZkOThhY2MgMTAwNjQ0Ci0tLSBhL2dudS9w YWNrYWdlcy9kd20uc2NtCisrKyBiL2dudS9wYWNrYWdlcy9kd20uc2NtCkBAIC0xLDUgKzEsNiBA QAogOzs7IEdOVSBHdWl4IC0tLSBGdW5jdGlvbmFsIHBhY2thZ2UgbWFuYWdlbWVudCBmb3IgR05V CiA7OzsgQ29weXJpZ2h0IMKpIDIwMTMgQ3lyaWwgUm9lbGFuZHQgPHRpcGVjYW1sQGdtYWlsLmNv bT4KKzs7OyBDb3B5cmlnaHQgwqkgMjAxNSBBbWlyb3VjaGUgQm91YmVra2kgPGFtaXJvdWNoZUBo eXBlcm1vdmUubmV0PgogOzs7CiA7OzsgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIEd1aXguCiA7 OzsKQEAgLTE3LDEyICsxOCwxNSBAQAogOzs7IGFsb25nIHdpdGggR05VIEd1aXguICBJZiBub3Qs IHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCiAKIChkZWZpbmUtbW9kdWxlIChn bnUgcGFja2FnZXMgZHdtKQotICAjOnVzZS1tb2R1bGUgKGd1aXggbGljZW5zZXMpCisgICM6dXNl LW1vZHVsZSAoKGd1aXggbGljZW5zZXMpICM6cHJlZml4IGxpY2Vuc2U6KQogICAjOnVzZS1tb2R1 bGUgKGd1aXggcGFja2FnZXMpCiAgICM6dXNlLW1vZHVsZSAoZ3VpeCBkb3dubG9hZCkKICAgIzp1 c2UtbW9kdWxlIChndWl4IGJ1aWxkLXN5c3RlbSBnbnUpCiAgICM6dXNlLW1vZHVsZSAoZ251IHBh Y2thZ2VzKQotICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyB4b3JnKSkKKyAgIzp1c2UtbW9k dWxlIChnbnUgcGFja2FnZXMgeG9yZykKKyAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgZm9u dHMpCisgICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzIHBrZy1jb25maWcpCisgICM6dXNlLW1v ZHVsZSAoKGdudSBwYWNrYWdlcyBmb250dXRpbHMpKSkKIAogKGRlZmluZS1wdWJsaWMgZHdtCiAg IChwYWNrYWdlCkBAIC04Myw3ICs4Nyw3IEBAIGxlZnQgY29ybmVyLgogCiBkd20gZHJhd3MgYSBz bWFsbCBjdXN0b21pemFibGUgYm9yZGVyIGFyb3VuZCB3aW5kb3dzIHRvIGluZGljYXRlIHRoZSBm b2N1cwogc3RhdGUuIikKLSAgICAobGljZW5zZSB4MTEpKSkKKyAgICAobGljZW5zZSBsaWNlbnNl OngxMSkpKQogCiAoZGVmaW5lLXB1YmxpYyBkbWVudQogICAocGFja2FnZQpAQCAtMTExLDcgKzEx NSw3IEBAIHN0YXRlLiIpCiAgICAgKGRlc2NyaXB0aW9uCiAgICAgICJBIGR5bmFtaWMgbWVudSBm b3IgWCwgb3JpZ2luYWxseSBkZXNpZ25lZCBmb3IgZHdtLiAgSXQgbWFuYWdlcyBsYXJnZQogbnVt YmVycyBvZiB1c2VyLWRlZmluZWQgbWVudSBpdGVtcyBlZmZpY2llbnRseS4iKQotICAgIChsaWNl bnNlIHgxMSkpKQorICAgIChsaWNlbnNlIGxpY2Vuc2U6eDExKSkpCiAKIChkZWZpbmUtcHVibGlj IHNsb2NrCiAgIChwYWNrYWdlCkBAIC0xMzgsNCArMTQyLDUwIEBAIG51bWJlcnMgb2YgdXNlci1k ZWZpbmVkIG1lbnUgaXRlbXMgZWZmaWNpZW50bHkuIikKICAgICAoc3lub3BzaXMgIlNpbXBsZSBY IHNlc3Npb24gbG9jayIpCiAgICAgKGRlc2NyaXB0aW9uCiAgICAgICJTaW1wbGUgWCBzZXNzaW9u IGxvY2sgd2l0aCB0cml2aWFsIGZlZWRiYWNrIG9uIHBhc3N3b3JkIGVudHJ5LiIpCi0gICAgKGxp Y2Vuc2UgeDExKSkpCisgICAgKGxpY2Vuc2UgbGljZW5zZTp4MTEpKSkKKworKGRlZmluZS1wdWJs aWMgc3QKKyAgKHBhY2thZ2UKKyAgICAobmFtZSAic3QiKQorICAgICh2ZXJzaW9uICIwLjUiKQor ICAgIChzb3VyY2UKKyAgICAgKG9yaWdpbgorICAgICAgIChtZXRob2QgdXJsLWZldGNoKQorICAg ICAgICh1cmkgKHN0cmluZy1hcHBlbmQgImh0dHA6Ly9kbC5zdWNrbGVzcy5vcmcvc3Qvc3QtIgor ICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbiAiLnRhci5neiIpKQorICAgICAgIChz aGEyNTYKKyAgICAgICAgKGJhc2UzMgorICAgICAgICAgIjBrbnhwemFhODZwcHJuZzZoYWs4aHg4 YncyMnl3MjJycHoxZmZ4anBjdnFsejN4ZHYwNWYiKSkpKQorICAgIChidWlsZC1zeXN0ZW0gZ251 LWJ1aWxkLXN5c3RlbSkKKyAgICAoYXJndW1lbnRzCisgICAgICcoIzp0ZXN0cz8gI2YgOyBubyB0 ZXN0cworICAgICAgICM6bWFrZS1mbGFncyAobGlzdCAiQ0M9Z2NjIgorICAgICAgICAgICAgICAg ICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCAiUFJFRklYPSIgJW91dHB1dCkpCisgICAgICAgIzpw aGFzZXMKKyAgICAgICAobW9kaWZ5LXBoYXNlcyAlc3RhbmRhcmQtcGhhc2VzCisgICAgICAgICAo ZGVsZXRlICdjb25maWd1cmUpCisgICAgICAgICAoYWRkLWFmdGVyICd1bnBhY2sgJ2luaGliaXQt dGVybWluZm8taW5zdGFsbAorICAgICAgICAgICAgICAgICAgICAobGFtYmRhIF8KKyAgICAgICAg ICAgICAgICAgICAgICAoc3Vic3RpdHV0ZSogIk1ha2VmaWxlIgorICAgICAgICAgICAgICAgICAg ICAgICAgKCgiXHRAdGljIC1zIHN0LmluZm8iKSAiIikpCisgICAgICAgICAgICAgICAgICAgICAg I3QpKSkpKQorICAgIChpbnB1dHMKKyAgICAgYCgoImxpYngxMSIgLGxpYngxMSkKKyAgICAgICAo ImxpYnhmdCIgLGxpYnhmdCkKKyAgICAgICAoImxpYnhjb21wb3NpdGUiICxsaWJ4Y29tcG9zaXRl KQorICAgICAgICgiY29tcG9zaXRlcHJvdG8iICxjb21wb3NpdGVwcm90bykKKyAgICAgICAoImxp YnhleHQiICxsaWJ4ZXh0KQorICAgICAgICgieGV4dHByb3RvIiAseGV4dHByb3RvKQorICAgICAg ICgibGlieHJlbmRlciIgLGxpYnhyZW5kZXIpCisgICAgICAgKCJmb250Y29uZmlnIiAsZm9udGNv bmZpZykKKyAgICAgICAoImZyZWV0eXBlIiAsZnJlZXR5cGUpCisgICAgICAgKCJmb250LWxpYmVy YXRpb24iICxmb250LWxpYmVyYXRpb24pKSkKKyAgICAobmF0aXZlLWlucHV0cyBgKCgicGtnLWNv bmZpZyIgLHBrZy1jb25maWcpKSkKKyAgICAoaG9tZS1wYWdlICJodHRwOi8vc3Quc3Vja2xlc3Mu b3JnLyIpCisgICAgKHN5bm9wc2lzICJTaW1wbGUgdGVybWluYWwgZW11bGF0b3IiKQorICAgIChk ZXNjcmlwdGlvbgorICAgICAiU3QgaW1wbGVtZW50cyBhIHNpbXBsZSBhbmQgbGlnaHR3ZWlnaHQg dGVybWluYWwgZW11bGF0b3IuICBJdAoraW1wbGVtZW50cyAyNTYgY29sb3JzLCBtb3N0IFZUMTBY IGVzY2FwZSBzZXF1ZW5jZXMsIHV0ZjgsIFgxMSBjb3B5L3Bhc3RlLAorYW50aWFsaWFzZWQgZm9u dHMgKHVzaW5nIGZvbnRjb25maWcpLCBmYWxsYmFjayBmb250cywgcmVzaXppbmcsIGFuZCBsaW5l CitkcmF3aW5nLiIpCisgICAgKGxpY2Vuc2UgbGljZW5zZTp4MTEpKSkKLS0gCjIuMi4xCgo= --=_0123b741f62ad397c8fc2f7a1a7ddc1b Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=0002-gnu-Rename-gnu-packages-dwm-to-gnu-packages-suckless.patch Content-Disposition: attachment; filename=0002-gnu-Rename-gnu-packages-dwm-to-gnu-packages-suckless.patch; size=16526 RnJvbSBmZTgzMzM5YWJlNDFhZWNiZWFjNTQ2YTM5ZjEzMjVjMWM0MmY3MjUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBhbXozIDxhbWlyb3VjaGVAaHlwZXJtb3ZlLm5ldD4KRGF0ZTog U2F0LCAxMyBKdW4gMjAxNSAyMToxMDo0NSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMi8yXSBnbnU6 IFJlbmFtZSAoZ251IHBhY2thZ2VzIGR3bSkgdG8gKGdudSBwYWNrYWdlcwogc3Vja2xlc3MpLgoK ICAgICogZ251L3BhY2thZ2VzL2R3bS5zY206IFJlbmFtZSB0aGlzIC4uLgogICAgKiBnbnUvcGFj a2FnZXMvc3Vja2xlc3Muc2NtOiAuLi4gdG8gdGhpcy4KICAgICogZ251LXN5c3RlbS5hbSAoR05V X1NZU1RFTV9NT0RVTEVTKTogQ2hhbmdlIGR3bS5zY20gdG8gc3Vja2xlc3Muc2NtLgotLS0KIGdu dS1zeXN0ZW0uYW0gICAgICAgICAgICAgfCAgIDIgKy0KIGdudS9wYWNrYWdlcy9kd20uc2NtICAg ICAgfCAxOTEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog Z251L3BhY2thZ2VzL3N1Y2tsZXNzLnNjbSB8IDE5MSArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDE5MiBpbnNlcnRpb25zKCsp LCAxOTIgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgZ251L3BhY2thZ2VzL2R3bS5z Y20KIGNyZWF0ZSBtb2RlIDEwMDY0NCBnbnUvcGFja2FnZXMvc3Vja2xlc3Muc2NtCgpkaWZmIC0t Z2l0IGEvZ251LXN5c3RlbS5hbSBiL2dudS1zeXN0ZW0uYW0KaW5kZXggMmNkNGM2Mi4uNDZjOGY3 YSAxMDA2NDQKLS0tIGEvZ251LXN5c3RlbS5hbQorKysgYi9nbnUtc3lzdGVtLmFtCkBAIC04NSw3 ICs4NSw2IEBAIEdOVV9TWVNURU1fTU9EVUxFUyA9CQkJCVwKICAgZ251L3BhY2thZ2VzL2Rucy5z Y20JCQkJXAogICBnbnUvcGFja2FnZXMvZG9jYm9vay5zY20JCQlcCiAgIGdudS9wYWNrYWdlcy9k b3h5Z2VuLnNjbQkJCVwKLSAgZ251L3BhY2thZ2VzL2R3bS5zY20JCQkJXAogICBnbnUvcGFja2Fn ZXMvZWJvb2suc2NtCQkJXAogICBnbnUvcGFja2FnZXMvZWQuc2NtCQkJCVwKICAgZ251L3BhY2th Z2VzL2VsZi5zY20JCQkJXApAQCAtMjc5LDYgKzI3OCw3IEBAIEdOVV9TWVNURU1fTU9EVUxFUyA9 CQkJCVwKICAgZ251L3BhY2thZ2VzL3NzaC5zY20JCQkJXAogICBnbnUvcGFja2FnZXMvc3RhbG9u ZXRyYXkuc2NtCQkJXAogICBnbnUvcGFja2FnZXMvc3RhdGlzdGljcy5zY20JCQlcCisgIGdudS9w YWNrYWdlcy9zdWNrbGVzcy5zY20JCQlcCiAgIGdudS9wYWNrYWdlcy9zd2lnLnNjbQkJCQlcCiAg IGdudS9wYWNrYWdlcy9zeGl2LnNjbQkJCQlcCiAgIGdudS9wYWNrYWdlcy9zeW5lcmd5LnNjbQkJ CVwKZGlmZiAtLWdpdCBhL2dudS9wYWNrYWdlcy9kd20uc2NtIGIvZ251L3BhY2thZ2VzL2R3bS5z Y20KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZkOThhY2MuLjAwMDAwMDAKLS0tIGEv Z251L3BhY2thZ2VzL2R3bS5zY20KKysrIC9kZXYvbnVsbApAQCAtMSwxOTEgKzAsMCBAQAotOzs7 IEdOVSBHdWl4IC0tLSBGdW5jdGlvbmFsIHBhY2thZ2UgbWFuYWdlbWVudCBmb3IgR05VCi07Ozsg Q29weXJpZ2h0IMKpIDIwMTMgQ3lyaWwgUm9lbGFuZHQgPHRpcGVjYW1sQGdtYWlsLmNvbT4KLTs7 OyBDb3B5cmlnaHQgwqkgMjAxNSBBbWlyb3VjaGUgQm91YmVra2kgPGFtaXJvdWNoZUBoeXBlcm1v dmUubmV0PgotOzs7Ci07OzsgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIEd1aXguCi07OzsKLTs7 OyBHTlUgR3VpeCBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IgbW9kaWZ5IGl0Ci07OzsgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLTs7OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQKLTs7OyB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi07OzsKLTs7OyBHTlUgR3VpeCBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKLTs7OyBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi07OzsgTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo ZQotOzs7IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi07OzsK LTs7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZQotOzs7IGFsb25nIHdpdGggR05VIEd1aXguICBJZiBub3QsIHNlZSA8aHR0 cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0KLShkZWZpbmUtbW9kdWxlIChnbnUgcGFja2Fn ZXMgZHdtKQotICAjOnVzZS1tb2R1bGUgKChndWl4IGxpY2Vuc2VzKSAjOnByZWZpeCBsaWNlbnNl OikKLSAgIzp1c2UtbW9kdWxlIChndWl4IHBhY2thZ2VzKQotICAjOnVzZS1tb2R1bGUgKGd1aXgg ZG93bmxvYWQpCi0gICM6dXNlLW1vZHVsZSAoZ3VpeCBidWlsZC1zeXN0ZW0gZ251KQotICAjOnVz ZS1tb2R1bGUgKGdudSBwYWNrYWdlcykKLSAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgeG9y ZykKLSAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgZm9udHMpCi0gICM6dXNlLW1vZHVsZSAo Z251IHBhY2thZ2VzIHBrZy1jb25maWcpCi0gICM6dXNlLW1vZHVsZSAoKGdudSBwYWNrYWdlcyBm b250dXRpbHMpKSkKLQotKGRlZmluZS1wdWJsaWMgZHdtCi0gIChwYWNrYWdlCi0gICAgKG5hbWUg ImR3bSIpCi0gICAgKHZlcnNpb24gIjYuMCIpCi0gICAgKHNvdXJjZSAob3JpZ2luCi0gICAgICAg ICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCi0gICAgICAgICAgICAgKHVyaSAoc3RyaW5nLWFwcGVu ZCAiaHR0cDovL2RsLnN1Y2tsZXNzLm9yZy9kd20vZHdtLSIKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHZlcnNpb24gIi50YXIuZ3oiKSkKLSAgICAgICAgICAgICAoc2hhMjU2Ci0g ICAgICAgICAgICAgIChiYXNlMzIgIjBtcGJpdnk5ajgwbDFqcXE0YmQ0ZzR6OHM1YzU0Znhyamo0 NGF2bWZ3bmNqd3F5bGlmZGoiKSkpKQotICAgIChidWlsZC1zeXN0ZW0gZ251LWJ1aWxkLXN5c3Rl bSkKLSAgICAoYXJndW1lbnRzCi0gICAgIGAoIzp0ZXN0cz8gI2YKLSAgICAgICAjOnBoYXNlcwot ICAgICAgIChhbGlzdC1yZXBsYWNlCi0gICAgICAgICdjb25maWd1cmUKLSAgICAgICAgKGxhbWJk YSBfCi0gICAgICAgICAoc3Vic3RpdHV0ZSogIk1ha2VmaWxlIiAoKCJcXCRcXHtDQ1xcfSIpICJn Y2MiKSkKLSAgICAgICAgICN0KQotICAgICAgICAoYWxpc3QtcmVwbGFjZQotICAgICAgICAgJ2lu c3RhbGwKLSAgICAgICAgIChsYW1iZGEqICgjOmtleSBvdXRwdXRzICM6YWxsb3ctb3RoZXIta2V5 cykKLSAgICAgICAgICAobGV0ICgob3V0IChhc3NvYy1yZWYgb3V0cHV0cyAib3V0IikpKQotICAg ICAgICAgICAoemVybz8KLSAgICAgICAgICAgIChzeXN0ZW0qICJtYWtlIiAiaW5zdGFsbCIKLSAg ICAgICAgICAgICAgICAgICAgIChzdHJpbmctYXBwZW5kICJERVNURElSPSIgb3V0KSAiUFJFRklY PSIpKSkpCi0gICAgICAgICAlc3RhbmRhcmQtcGhhc2VzKSkpKQotICAgIChpbnB1dHMKLSAgICAg YCgoImxpYngxMSIgLGxpYngxMSkKLSAgICAgICAoImxpYnhpbmVyYW1hIiAsbGlieGluZXJhbWEp KSkKLSAgICAoaG9tZS1wYWdlICJodHRwOi8vZHdtLnN1Y2tsZXNzLm9yZy8iKQotICAgIChzeW5v cHNpcyAiRHluYW1pYyB3aW5kb3cgbWFuYWdlciIpCi0gICAgKGRlc2NyaXB0aW9uCi0gICAgICJk d20gaXMgYSBkeW5hbWljIHdpbmRvdyBtYW5hZ2VyIGZvciBYLiAgSXQgbWFuYWdlcyB3aW5kb3dz IGluIHRpbGVkLAotbW9ub2NsZSBhbmQgZmxvYXRpbmcgbGF5b3V0cy4gIEFsbCBvZiB0aGUgbGF5 b3V0cyBjYW4gYmUgYXBwbGllZCBkeW5hbWljYWxseSwKLW9wdGltaXNpbmcgdGhlIGVudmlyb25t ZW50IGZvciB0aGUgYXBwbGljYXRpb24gaW4gdXNlIGFuZCB0aGUgdGFzayBwZXJmb3JtZWQuCi0K LUluIHRpbGVkIGxheW91dCB3aW5kb3dzIGFyZSBtYW5hZ2VkIGluIGEgbWFzdGVyIGFuZCBzdGFj a2luZyBhcmVhLiAgVGhlIG1hc3RlcgotYXJlYSBjb250YWlucyB0aGUgd2luZG93IHdoaWNoIGN1 cnJlbnRseSBuZWVkcyBtb3N0IGF0dGVudGlvbiwgd2hlcmVhcyB0aGUKLXN0YWNraW5nIGFyZWEg Y29udGFpbnMgYWxsIG90aGVyIHdpbmRvd3MuICBJbiBtb25vY2xlIGxheW91dCBhbGwgd2luZG93 cyBhcmUKLW1heGltaXNlZCB0byB0aGUgc2NyZWVuIHNpemUuICBJbiBmbG9hdGluZyBsYXlvdXQg d2luZG93cyBjYW4gYmUgcmVzaXplZCBhbmQKLW1vdmVkIGZyZWVseS4gIERpYWxvZyB3aW5kb3dz IGFyZSBhbHdheXMgbWFuYWdlZCBmbG9hdGluZywgcmVnYXJkbGVzcyBvZiB0aGUKLWxheW91dCBh cHBsaWVkLgotCi1XaW5kb3dzIGFyZSBncm91cGVkIGJ5IHRhZ3MuICBFYWNoIHdpbmRvdyBjYW4g YmUgdGFnZ2VkIHdpdGggb25lIG9yIG11bHRpcGxlCi10YWdzLiAgU2VsZWN0aW5nIGNlcnRhaW4g dGFncyBkaXNwbGF5cyBhbGwgd2luZG93cyB3aXRoIHRoZXNlIHRhZ3MuCi0KLUVhY2ggc2NyZWVu IGNvbnRhaW5zIGEgc21hbGwgc3RhdHVzIGJhciB3aGljaCBkaXNwbGF5cyBhbGwgYXZhaWxhYmxl IHRhZ3MsIHRoZQotbGF5b3V0LCB0aGUgbnVtYmVyIG9mIHZpc2libGUgd2luZG93cywgdGhlIHRp dGxlIG9mIHRoZSBmb2N1c2VkIHdpbmRvdywgYW5kIHRoZQotdGV4dCByZWFkIGZyb20gdGhlIHJv b3Qgd2luZG93IG5hbWUgcHJvcGVydHksIGlmIHRoZSBzY3JlZW4gaXMgZm9jdXNlZC4gIEEKLWZs b2F0aW5nIHdpbmRvdyBpcyBpbmRpY2F0ZWQgd2l0aCBhbiBlbXB0eSBzcXVhcmUgYW5kIGEgbWF4 aW1pc2VkIGZsb2F0aW5nCi13aW5kb3cgaXMgaW5kaWNhdGVkIHdpdGggYSBmaWxsZWQgc3F1YXJl IGJlZm9yZSB0aGUgd2luZG93cyB0aXRsZS4gIFRoZSBzZWxlY3RlZAotdGFncyBhcmUgaW5kaWNh dGVkIHdpdGggYSBkaWZmZXJlbnQgY29sb3IuICBUaGUgdGFncyBvZiB0aGUgZm9jdXNlZCB3aW5k b3cgYXJlCi1pbmRpY2F0ZWQgd2l0aCBhIGZpbGxlZCBzcXVhcmUgaW4gdGhlIHRvcCBsZWZ0IGNv cm5lci4gIFRoZSB0YWdzIHdoaWNoIGFyZQotYXBwbGllZCB0byBvbmUgb3IgbW9yZSB3aW5kb3dz IGFyZSBpbmRpY2F0ZWQgd2l0aCBhbiBlbXB0eSBzcXVhcmUgaW4gdGhlIHRvcAotbGVmdCBjb3Ju ZXIuCi0KLWR3bSBkcmF3cyBhIHNtYWxsIGN1c3RvbWl6YWJsZSBib3JkZXIgYXJvdW5kIHdpbmRv d3MgdG8gaW5kaWNhdGUgdGhlIGZvY3VzCi1zdGF0ZS4iKQotICAgIChsaWNlbnNlIGxpY2Vuc2U6 eDExKSkpCi0KLShkZWZpbmUtcHVibGljIGRtZW51Ci0gIChwYWNrYWdlCi0gICAgKG5hbWUgImRt ZW51IikKLSAgICAodmVyc2lvbiAiNC41IikKLSAgICAoc291cmNlIChvcmlnaW4KLSAgICAgICAg ICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCi0gICAgICAgICAgICAgICh1cmkgKHN0cmluZy1hcHBl bmQgImh0dHA6Ly9kbC5zdWNrbGVzcy5vcmcvdG9vbHMvZG1lbnUtIgotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHZlcnNpb24gIi50YXIuZ3oiKSkKLSAgICAgICAgICAgICAgKHNo YTI1NgotICAgICAgICAgICAgICAgKGJhc2UzMgotICAgICAgICAgICAgICAgICIwbDU4anB4cnI4 MGZteXc1cGd3NWFsbTVxcnk0OWF3NnkwNDk3NDV3bDk5MXYyY2RjYjA4IikpKSkKLSAgICAoYnVp bGQtc3lzdGVtIGdudS1idWlsZC1zeXN0ZW0pCi0gICAgKGFyZ3VtZW50cwotICAgICAnKCM6dGVz dHM/ICNmIDsgbm8gdGVzdHMKLSAgICAgICAjOm1ha2UtZmxhZ3MgKGxpc3QgIkNDPWdjYyIKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1hcHBlbmQgIlBSRUZJWD0iICVvdXRwdXQp KQotICAgICAgICM6cGhhc2VzCi0gICAgICAgKGFsaXN0LWRlbGV0ZSAnY29uZmlndXJlICVzdGFu ZGFyZC1waGFzZXMpKSkKLSAgICAoaW5wdXRzCi0gICAgIGAoKCJsaWJ4MTEiICxsaWJ4MTEpCi0g ICAgICAgKCJsaWJ4aW5lcmFtYSIgLGxpYnhpbmVyYW1hKSkpCi0gICAgKGhvbWUtcGFnZSAiaHR0 cDovL3Rvb2xzLnN1Y2tsZXNzLm9yZy9kbWVudS8iKQotICAgIChzeW5vcHNpcyAiRHluYW1pYyBt ZW51IikKLSAgICAoZGVzY3JpcHRpb24KLSAgICAgIkEgZHluYW1pYyBtZW51IGZvciBYLCBvcmln aW5hbGx5IGRlc2lnbmVkIGZvciBkd20uICBJdCBtYW5hZ2VzIGxhcmdlCi1udW1iZXJzIG9mIHVz ZXItZGVmaW5lZCBtZW51IGl0ZW1zIGVmZmljaWVudGx5LiIpCi0gICAgKGxpY2Vuc2UgbGljZW5z ZTp4MTEpKSkKLQotKGRlZmluZS1wdWJsaWMgc2xvY2sKLSAgKHBhY2thZ2UKLSAgICAobmFtZSAi c2xvY2siKQotICAgICh2ZXJzaW9uICIxLjIiKQotICAgIChzb3VyY2UgKG9yaWdpbgotICAgICAg ICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKLSAgICAgICAgICAgICAgKHVyaSAoc3RyaW5nLWFw cGVuZCAiaHR0cDovL2RsLnN1Y2tsZXNzLm9yZy90b29scy9zbG9jay0iCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbiAiLnRhci5neiIpKQotICAgICAgICAgICAgICAo c2hhMjU2Ci0gICAgICAgICAgICAgICAoYmFzZTMyCi0gICAgICAgICAgICAgICAgIjFjcmt5cjR2 YmxoY2l5NnZuYmp3d2pubGttOXlnMmh6cTE2djZoenhtMjBhaTY3bmEwaWwiKSkpKQotICAgIChi dWlsZC1zeXN0ZW0gZ251LWJ1aWxkLXN5c3RlbSkKLSAgICAoYXJndW1lbnRzCi0gICAgICcoIzp0 ZXN0cz8gI2YgOyBubyB0ZXN0cwotICAgICAgICM6bWFrZS1mbGFncyAobGlzdCAiQ0M9Z2NjIgot ICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCAiUFJFRklYPSIgJW91dHB1 dCkpCi0gICAgICAgIzpwaGFzZXMgKGFsaXN0LWRlbGV0ZSAnY29uZmlndXJlICVzdGFuZGFyZC1w aGFzZXMpKSkKLSAgICAoaW5wdXRzCi0gICAgIGAoKCJsaWJ4MTEiICxsaWJ4MTEpCi0gICAgICAg KCJsaWJ4ZXh0IiAsbGlieGV4dCkKLSAgICAgICAoImxpYnhpbmVyYW1hIiAsbGlieGluZXJhbWEp KSkKLSAgICAoaG9tZS1wYWdlICJodHRwOi8vdG9vbHMuc3Vja2xlc3Mub3JnL3Nsb2NrLyIpCi0g ICAgKHN5bm9wc2lzICJTaW1wbGUgWCBzZXNzaW9uIGxvY2siKQotICAgIChkZXNjcmlwdGlvbgot ICAgICAiU2ltcGxlIFggc2Vzc2lvbiBsb2NrIHdpdGggdHJpdmlhbCBmZWVkYmFjayBvbiBwYXNz d29yZCBlbnRyeS4iKQotICAgIChsaWNlbnNlIGxpY2Vuc2U6eDExKSkpCi0KLShkZWZpbmUtcHVi bGljIHN0Ci0gIChwYWNrYWdlCi0gICAgKG5hbWUgInN0IikKLSAgICAodmVyc2lvbiAiMC41IikK LSAgICAoc291cmNlCi0gICAgIChvcmlnaW4KLSAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKLSAg ICAgICAodXJpIChzdHJpbmctYXBwZW5kICJodHRwOi8vZGwuc3Vja2xlc3Mub3JnL3N0L3N0LSIK LSAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb24gIi50YXIuZ3oiKSkKLSAgICAgICAo c2hhMjU2Ci0gICAgICAgIChiYXNlMzIKLSAgICAgICAgICIwa254cHphYTg2cHBybmc2aGFrOGh4 OGJ3MjJ5dzIycnB6MWZmeGpwY3ZxbHozeGR2MDVmIikpKSkKLSAgICAoYnVpbGQtc3lzdGVtIGdu dS1idWlsZC1zeXN0ZW0pCi0gICAgKGFyZ3VtZW50cwotICAgICAnKCM6dGVzdHM/ICNmIDsgbm8g dGVzdHMKLSAgICAgICAjOm1ha2UtZmxhZ3MgKGxpc3QgIkNDPWdjYyIKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgKHN0cmluZy1hcHBlbmQgIlBSRUZJWD0iICVvdXRwdXQpKQotICAgICAgICM6 cGhhc2VzCi0gICAgICAgKG1vZGlmeS1waGFzZXMgJXN0YW5kYXJkLXBoYXNlcwotICAgICAgICAg KGRlbGV0ZSAnY29uZmlndXJlKQotICAgICAgICAgKGFkZC1hZnRlciAndW5wYWNrICdpbmhpYml0 LXRlcm1pbmZvLWluc3RhbGwKLSAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSBfCi0gICAgICAg ICAgICAgICAgICAgICAgKHN1YnN0aXR1dGUqICJNYWtlZmlsZSIKLSAgICAgICAgICAgICAgICAg ICAgICAgICgoIlx0QHRpYyAtcyBzdC5pbmZvIikgIiIpKQotICAgICAgICAgICAgICAgICAgICAg ICN0KSkpKSkKLSAgICAoaW5wdXRzCi0gICAgIGAoKCJsaWJ4MTEiICxsaWJ4MTEpCi0gICAgICAg KCJsaWJ4ZnQiICxsaWJ4ZnQpCi0gICAgICAgKCJsaWJ4Y29tcG9zaXRlIiAsbGlieGNvbXBvc2l0 ZSkKLSAgICAgICAoImNvbXBvc2l0ZXByb3RvIiAsY29tcG9zaXRlcHJvdG8pCi0gICAgICAgKCJs aWJ4ZXh0IiAsbGlieGV4dCkKLSAgICAgICAoInhleHRwcm90byIgLHhleHRwcm90bykKLSAgICAg ICAoImxpYnhyZW5kZXIiICxsaWJ4cmVuZGVyKQotICAgICAgICgiZm9udGNvbmZpZyIgLGZvbnRj b25maWcpCi0gICAgICAgKCJmcmVldHlwZSIgLGZyZWV0eXBlKQotICAgICAgICgiZm9udC1saWJl cmF0aW9uIiAsZm9udC1saWJlcmF0aW9uKSkpCi0gICAgKG5hdGl2ZS1pbnB1dHMgYCgoInBrZy1j b25maWciICxwa2ctY29uZmlnKSkpCi0gICAgKGhvbWUtcGFnZSAiaHR0cDovL3N0LnN1Y2tsZXNz Lm9yZy8iKQotICAgIChzeW5vcHNpcyAiU2ltcGxlIHRlcm1pbmFsIGVtdWxhdG9yIikKLSAgICAo ZGVzY3JpcHRpb24KLSAgICAgIlN0IGltcGxlbWVudHMgYSBzaW1wbGUgYW5kIGxpZ2h0d2VpZ2h0 IHRlcm1pbmFsIGVtdWxhdG9yLiAgSXQKLWltcGxlbWVudHMgMjU2IGNvbG9ycywgbW9zdCBWVDEw WCBlc2NhcGUgc2VxdWVuY2VzLCB1dGY4LCBYMTEgY29weS9wYXN0ZSwKLWFudGlhbGlhc2VkIGZv bnRzICh1c2luZyBmb250Y29uZmlnKSwgZmFsbGJhY2sgZm9udHMsIHJlc2l6aW5nLCBhbmQgbGlu ZQotZHJhd2luZy4iKQotICAgIChsaWNlbnNlIGxpY2Vuc2U6eDExKSkpCmRpZmYgLS1naXQgYS9n bnUvcGFja2FnZXMvc3Vja2xlc3Muc2NtIGIvZ251L3BhY2thZ2VzL3N1Y2tsZXNzLnNjbQpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MzJjYmFlCi0tLSAvZGV2L251bGwKKysr IGIvZ251L3BhY2thZ2VzL3N1Y2tsZXNzLnNjbQpAQCAtMCwwICsxLDE5MSBAQAorOzs7IEdOVSBH dWl4IC0tLSBGdW5jdGlvbmFsIHBhY2thZ2UgbWFuYWdlbWVudCBmb3IgR05VCis7OzsgQ29weXJp Z2h0IMKpIDIwMTMgQ3lyaWwgUm9lbGFuZHQgPHRpcGVjYW1sQGdtYWlsLmNvbT4KKzs7OyBDb3B5 cmlnaHQgwqkgMjAxNSBBbWlyb3VjaGUgQm91YmVra2kgPGFtaXJvdWNoZUBoeXBlcm1vdmUubmV0 PgorOzs7Cis7OzsgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIEd1aXguCis7OzsKKzs7OyBHTlUg R3VpeCBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9k aWZ5IGl0Cis7OzsgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkKKzs7OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQKKzs7OyB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCis7OzsKKzs7OyBHTlUgR3VpeCBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKzs7OyBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCis7OzsgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorOzs7 IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCis7OzsKKzs7OyBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZQorOzs7IGFsb25nIHdpdGggR05VIEd1aXguICBJZiBub3QsIHNlZSA8aHR0cDovL3d3 dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKKyhkZWZpbmUtbW9kdWxlIChnbnUgcGFja2FnZXMgc3Vj a2xlc3MpCisgICM6dXNlLW1vZHVsZSAoKGd1aXggbGljZW5zZXMpICM6cHJlZml4IGxpY2Vuc2U6 KQorICAjOnVzZS1tb2R1bGUgKGd1aXggcGFja2FnZXMpCisgICM6dXNlLW1vZHVsZSAoZ3VpeCBk b3dubG9hZCkKKyAgIzp1c2UtbW9kdWxlIChndWl4IGJ1aWxkLXN5c3RlbSBnbnUpCisgICM6dXNl LW1vZHVsZSAoZ251IHBhY2thZ2VzKQorICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyB4b3Jn KQorICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBmb250cykKKyAgIzp1c2UtbW9kdWxlIChn bnUgcGFja2FnZXMgcGtnLWNvbmZpZykKKyAgIzp1c2UtbW9kdWxlICgoZ251IHBhY2thZ2VzIGZv bnR1dGlscykpKQorCisoZGVmaW5lLXB1YmxpYyBkd20KKyAgKHBhY2thZ2UKKyAgICAobmFtZSAi ZHdtIikKKyAgICAodmVyc2lvbiAiNi4wIikKKyAgICAoc291cmNlIChvcmlnaW4KKyAgICAgICAg ICAgICAobWV0aG9kIHVybC1mZXRjaCkKKyAgICAgICAgICAgICAodXJpIChzdHJpbmctYXBwZW5k ICJodHRwOi8vZGwuc3Vja2xlc3Mub3JnL2R3bS9kd20tIgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdmVyc2lvbiAiLnRhci5neiIpKQorICAgICAgICAgICAgIChzaGEyNTYKKyAg ICAgICAgICAgICAgKGJhc2UzMiAiMG1wYml2eTlqODBsMWpxcTRiZDRnNHo4czVjNTRmeHJqajQ0 YXZtZnduY2p3cXlsaWZkaiIpKSkpCisgICAgKGJ1aWxkLXN5c3RlbSBnbnUtYnVpbGQtc3lzdGVt KQorICAgIChhcmd1bWVudHMKKyAgICAgYCgjOnRlc3RzPyAjZgorICAgICAgICM6cGhhc2VzCisg ICAgICAgKGFsaXN0LXJlcGxhY2UKKyAgICAgICAgJ2NvbmZpZ3VyZQorICAgICAgICAobGFtYmRh IF8KKyAgICAgICAgIChzdWJzdGl0dXRlKiAiTWFrZWZpbGUiICgoIlxcJFxce0NDXFx9IikgImdj YyIpKQorICAgICAgICAgI3QpCisgICAgICAgIChhbGlzdC1yZXBsYWNlCisgICAgICAgICAnaW5z dGFsbAorICAgICAgICAgKGxhbWJkYSogKCM6a2V5IG91dHB1dHMgIzphbGxvdy1vdGhlci1rZXlz KQorICAgICAgICAgIChsZXQgKChvdXQgKGFzc29jLXJlZiBvdXRwdXRzICJvdXQiKSkpCisgICAg ICAgICAgICh6ZXJvPworICAgICAgICAgICAgKHN5c3RlbSogIm1ha2UiICJpbnN0YWxsIgorICAg ICAgICAgICAgICAgICAgICAgKHN0cmluZy1hcHBlbmQgIkRFU1RESVI9IiBvdXQpICJQUkVGSVg9 IikpKSkKKyAgICAgICAgICVzdGFuZGFyZC1waGFzZXMpKSkpCisgICAgKGlucHV0cworICAgICBg KCgibGlieDExIiAsbGlieDExKQorICAgICAgICgibGlieGluZXJhbWEiICxsaWJ4aW5lcmFtYSkp KQorICAgIChob21lLXBhZ2UgImh0dHA6Ly9kd20uc3Vja2xlc3Mub3JnLyIpCisgICAgKHN5bm9w c2lzICJEeW5hbWljIHdpbmRvdyBtYW5hZ2VyIikKKyAgICAoZGVzY3JpcHRpb24KKyAgICAgImR3 bSBpcyBhIGR5bmFtaWMgd2luZG93IG1hbmFnZXIgZm9yIFguICBJdCBtYW5hZ2VzIHdpbmRvd3Mg aW4gdGlsZWQsCittb25vY2xlIGFuZCBmbG9hdGluZyBsYXlvdXRzLiAgQWxsIG9mIHRoZSBsYXlv dXRzIGNhbiBiZSBhcHBsaWVkIGR5bmFtaWNhbGx5LAorb3B0aW1pc2luZyB0aGUgZW52aXJvbm1l bnQgZm9yIHRoZSBhcHBsaWNhdGlvbiBpbiB1c2UgYW5kIHRoZSB0YXNrIHBlcmZvcm1lZC4KKwor SW4gdGlsZWQgbGF5b3V0IHdpbmRvd3MgYXJlIG1hbmFnZWQgaW4gYSBtYXN0ZXIgYW5kIHN0YWNr aW5nIGFyZWEuICBUaGUgbWFzdGVyCithcmVhIGNvbnRhaW5zIHRoZSB3aW5kb3cgd2hpY2ggY3Vy cmVudGx5IG5lZWRzIG1vc3QgYXR0ZW50aW9uLCB3aGVyZWFzIHRoZQorc3RhY2tpbmcgYXJlYSBj b250YWlucyBhbGwgb3RoZXIgd2luZG93cy4gIEluIG1vbm9jbGUgbGF5b3V0IGFsbCB3aW5kb3dz IGFyZQorbWF4aW1pc2VkIHRvIHRoZSBzY3JlZW4gc2l6ZS4gIEluIGZsb2F0aW5nIGxheW91dCB3 aW5kb3dzIGNhbiBiZSByZXNpemVkIGFuZAorbW92ZWQgZnJlZWx5LiAgRGlhbG9nIHdpbmRvd3Mg YXJlIGFsd2F5cyBtYW5hZ2VkIGZsb2F0aW5nLCByZWdhcmRsZXNzIG9mIHRoZQorbGF5b3V0IGFw cGxpZWQuCisKK1dpbmRvd3MgYXJlIGdyb3VwZWQgYnkgdGFncy4gIEVhY2ggd2luZG93IGNhbiBi ZSB0YWdnZWQgd2l0aCBvbmUgb3IgbXVsdGlwbGUKK3RhZ3MuICBTZWxlY3RpbmcgY2VydGFpbiB0 YWdzIGRpc3BsYXlzIGFsbCB3aW5kb3dzIHdpdGggdGhlc2UgdGFncy4KKworRWFjaCBzY3JlZW4g Y29udGFpbnMgYSBzbWFsbCBzdGF0dXMgYmFyIHdoaWNoIGRpc3BsYXlzIGFsbCBhdmFpbGFibGUg dGFncywgdGhlCitsYXlvdXQsIHRoZSBudW1iZXIgb2YgdmlzaWJsZSB3aW5kb3dzLCB0aGUgdGl0 bGUgb2YgdGhlIGZvY3VzZWQgd2luZG93LCBhbmQgdGhlCit0ZXh0IHJlYWQgZnJvbSB0aGUgcm9v dCB3aW5kb3cgbmFtZSBwcm9wZXJ0eSwgaWYgdGhlIHNjcmVlbiBpcyBmb2N1c2VkLiAgQQorZmxv YXRpbmcgd2luZG93IGlzIGluZGljYXRlZCB3aXRoIGFuIGVtcHR5IHNxdWFyZSBhbmQgYSBtYXhp bWlzZWQgZmxvYXRpbmcKK3dpbmRvdyBpcyBpbmRpY2F0ZWQgd2l0aCBhIGZpbGxlZCBzcXVhcmUg YmVmb3JlIHRoZSB3aW5kb3dzIHRpdGxlLiAgVGhlIHNlbGVjdGVkCit0YWdzIGFyZSBpbmRpY2F0 ZWQgd2l0aCBhIGRpZmZlcmVudCBjb2xvci4gIFRoZSB0YWdzIG9mIHRoZSBmb2N1c2VkIHdpbmRv dyBhcmUKK2luZGljYXRlZCB3aXRoIGEgZmlsbGVkIHNxdWFyZSBpbiB0aGUgdG9wIGxlZnQgY29y bmVyLiAgVGhlIHRhZ3Mgd2hpY2ggYXJlCithcHBsaWVkIHRvIG9uZSBvciBtb3JlIHdpbmRvd3Mg YXJlIGluZGljYXRlZCB3aXRoIGFuIGVtcHR5IHNxdWFyZSBpbiB0aGUgdG9wCitsZWZ0IGNvcm5l ci4KKworZHdtIGRyYXdzIGEgc21hbGwgY3VzdG9taXphYmxlIGJvcmRlciBhcm91bmQgd2luZG93 cyB0byBpbmRpY2F0ZSB0aGUgZm9jdXMKK3N0YXRlLiIpCisgICAgKGxpY2Vuc2UgbGljZW5zZTp4 MTEpKSkKKworKGRlZmluZS1wdWJsaWMgZG1lbnUKKyAgKHBhY2thZ2UKKyAgICAobmFtZSAiZG1l bnUiKQorICAgICh2ZXJzaW9uICI0LjUiKQorICAgIChzb3VyY2UgKG9yaWdpbgorICAgICAgICAg ICAgICAobWV0aG9kIHVybC1mZXRjaCkKKyAgICAgICAgICAgICAgKHVyaSAoc3RyaW5nLWFwcGVu ZCAiaHR0cDovL2RsLnN1Y2tsZXNzLm9yZy90b29scy9kbWVudS0iCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdmVyc2lvbiAiLnRhci5neiIpKQorICAgICAgICAgICAgICAoc2hh MjU2CisgICAgICAgICAgICAgICAoYmFzZTMyCisgICAgICAgICAgICAgICAgIjBsNThqcHhycjgw Zm15dzVwZ3c1YWxtNXFyeTQ5YXc2eTA0OTc0NXdsOTkxdjJjZGNiMDgiKSkpKQorICAgIChidWls ZC1zeXN0ZW0gZ251LWJ1aWxkLXN5c3RlbSkKKyAgICAoYXJndW1lbnRzCisgICAgICcoIzp0ZXN0 cz8gI2YgOyBubyB0ZXN0cworICAgICAgICM6bWFrZS1mbGFncyAobGlzdCAiQ0M9Z2NjIgorICAg ICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCAiUFJFRklYPSIgJW91dHB1dCkp CisgICAgICAgIzpwaGFzZXMKKyAgICAgICAoYWxpc3QtZGVsZXRlICdjb25maWd1cmUgJXN0YW5k YXJkLXBoYXNlcykpKQorICAgIChpbnB1dHMKKyAgICAgYCgoImxpYngxMSIgLGxpYngxMSkKKyAg ICAgICAoImxpYnhpbmVyYW1hIiAsbGlieGluZXJhbWEpKSkKKyAgICAoaG9tZS1wYWdlICJodHRw Oi8vdG9vbHMuc3Vja2xlc3Mub3JnL2RtZW51LyIpCisgICAgKHN5bm9wc2lzICJEeW5hbWljIG1l bnUiKQorICAgIChkZXNjcmlwdGlvbgorICAgICAiQSBkeW5hbWljIG1lbnUgZm9yIFgsIG9yaWdp bmFsbHkgZGVzaWduZWQgZm9yIGR3bS4gIEl0IG1hbmFnZXMgbGFyZ2UKK251bWJlcnMgb2YgdXNl ci1kZWZpbmVkIG1lbnUgaXRlbXMgZWZmaWNpZW50bHkuIikKKyAgICAobGljZW5zZSBsaWNlbnNl OngxMSkpKQorCisoZGVmaW5lLXB1YmxpYyBzbG9jaworICAocGFja2FnZQorICAgIChuYW1lICJz bG9jayIpCisgICAgKHZlcnNpb24gIjEuMiIpCisgICAgKHNvdXJjZSAob3JpZ2luCisgICAgICAg ICAgICAgIChtZXRob2QgdXJsLWZldGNoKQorICAgICAgICAgICAgICAodXJpIChzdHJpbmctYXBw ZW5kICJodHRwOi8vZGwuc3Vja2xlc3Mub3JnL3Rvb2xzL3Nsb2NrLSIKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uICIudGFyLmd6IikpCisgICAgICAgICAgICAgIChz aGEyNTYKKyAgICAgICAgICAgICAgIChiYXNlMzIKKyAgICAgICAgICAgICAgICAiMWNya3lyNHZi bGhjaXk2dm5iand3am5sa205eWcyaHpxMTZ2Nmh6eG0yMGFpNjduYTBpbCIpKSkpCisgICAgKGJ1 aWxkLXN5c3RlbSBnbnUtYnVpbGQtc3lzdGVtKQorICAgIChhcmd1bWVudHMKKyAgICAgJygjOnRl c3RzPyAjZiA7IG5vIHRlc3RzCisgICAgICAgIzptYWtlLWZsYWdzIChsaXN0ICJDQz1nY2MiCisg ICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctYXBwZW5kICJQUkVGSVg9IiAlb3V0cHV0 KSkKKyAgICAgICAjOnBoYXNlcyAoYWxpc3QtZGVsZXRlICdjb25maWd1cmUgJXN0YW5kYXJkLXBo YXNlcykpKQorICAgIChpbnB1dHMKKyAgICAgYCgoImxpYngxMSIgLGxpYngxMSkKKyAgICAgICAo ImxpYnhleHQiICxsaWJ4ZXh0KQorICAgICAgICgibGlieGluZXJhbWEiICxsaWJ4aW5lcmFtYSkp KQorICAgIChob21lLXBhZ2UgImh0dHA6Ly90b29scy5zdWNrbGVzcy5vcmcvc2xvY2svIikKKyAg ICAoc3lub3BzaXMgIlNpbXBsZSBYIHNlc3Npb24gbG9jayIpCisgICAgKGRlc2NyaXB0aW9uCisg ICAgICJTaW1wbGUgWCBzZXNzaW9uIGxvY2sgd2l0aCB0cml2aWFsIGZlZWRiYWNrIG9uIHBhc3N3 b3JkIGVudHJ5LiIpCisgICAgKGxpY2Vuc2UgbGljZW5zZTp4MTEpKSkKKworKGRlZmluZS1wdWJs aWMgc3QKKyAgKHBhY2thZ2UKKyAgICAobmFtZSAic3QiKQorICAgICh2ZXJzaW9uICIwLjUiKQor ICAgIChzb3VyY2UKKyAgICAgKG9yaWdpbgorICAgICAgIChtZXRob2QgdXJsLWZldGNoKQorICAg ICAgICh1cmkgKHN0cmluZy1hcHBlbmQgImh0dHA6Ly9kbC5zdWNrbGVzcy5vcmcvc3Qvc3QtIgor ICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbiAiLnRhci5neiIpKQorICAgICAgIChz aGEyNTYKKyAgICAgICAgKGJhc2UzMgorICAgICAgICAgIjBrbnhwemFhODZwcHJuZzZoYWs4aHg4 YncyMnl3MjJycHoxZmZ4anBjdnFsejN4ZHYwNWYiKSkpKQorICAgIChidWlsZC1zeXN0ZW0gZ251 LWJ1aWxkLXN5c3RlbSkKKyAgICAoYXJndW1lbnRzCisgICAgICcoIzp0ZXN0cz8gI2YgOyBubyB0 ZXN0cworICAgICAgICM6bWFrZS1mbGFncyAobGlzdCAiQ0M9Z2NjIgorICAgICAgICAgICAgICAg ICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCAiUFJFRklYPSIgJW91dHB1dCkpCisgICAgICAgIzpw aGFzZXMKKyAgICAgICAobW9kaWZ5LXBoYXNlcyAlc3RhbmRhcmQtcGhhc2VzCisgICAgICAgICAo ZGVsZXRlICdjb25maWd1cmUpCisgICAgICAgICAoYWRkLWFmdGVyICd1bnBhY2sgJ2luaGliaXQt dGVybWluZm8taW5zdGFsbAorICAgICAgICAgICAgICAgICAgICAobGFtYmRhIF8KKyAgICAgICAg ICAgICAgICAgICAgICAoc3Vic3RpdHV0ZSogIk1ha2VmaWxlIgorICAgICAgICAgICAgICAgICAg ICAgICAgKCgiXHRAdGljIC1zIHN0LmluZm8iKSAiIikpCisgICAgICAgICAgICAgICAgICAgICAg I3QpKSkpKQorICAgIChpbnB1dHMKKyAgICAgYCgoImxpYngxMSIgLGxpYngxMSkKKyAgICAgICAo ImxpYnhmdCIgLGxpYnhmdCkKKyAgICAgICAoImxpYnhjb21wb3NpdGUiICxsaWJ4Y29tcG9zaXRl KQorICAgICAgICgiY29tcG9zaXRlcHJvdG8iICxjb21wb3NpdGVwcm90bykKKyAgICAgICAoImxp YnhleHQiICxsaWJ4ZXh0KQorICAgICAgICgieGV4dHByb3RvIiAseGV4dHByb3RvKQorICAgICAg ICgibGlieHJlbmRlciIgLGxpYnhyZW5kZXIpCisgICAgICAgKCJmb250Y29uZmlnIiAsZm9udGNv bmZpZykKKyAgICAgICAoImZyZWV0eXBlIiAsZnJlZXR5cGUpCisgICAgICAgKCJmb250LWxpYmVy YXRpb24iICxmb250LWxpYmVyYXRpb24pKSkKKyAgICAobmF0aXZlLWlucHV0cyBgKCgicGtnLWNv bmZpZyIgLHBrZy1jb25maWcpKSkKKyAgICAoaG9tZS1wYWdlICJodHRwOi8vc3Quc3Vja2xlc3Mu b3JnLyIpCisgICAgKHN5bm9wc2lzICJTaW1wbGUgdGVybWluYWwgZW11bGF0b3IiKQorICAgIChk ZXNjcmlwdGlvbgorICAgICAiU3QgaW1wbGVtZW50cyBhIHNpbXBsZSBhbmQgbGlnaHR3ZWlnaHQg dGVybWluYWwgZW11bGF0b3IuICBJdAoraW1wbGVtZW50cyAyNTYgY29sb3JzLCBtb3N0IFZUMTBY IGVzY2FwZSBzZXF1ZW5jZXMsIHV0ZjgsIFgxMSBjb3B5L3Bhc3RlLAorYW50aWFsaWFzZWQgZm9u dHMgKHVzaW5nIGZvbnRjb25maWcpLCBmYWxsYmFjayBmb250cywgcmVzaXppbmcsIGFuZCBsaW5l CitkcmF3aW5nLiIpCisgICAgKGxpY2Vuc2UgbGljZW5zZTp4MTEpKSkKLS0gCjIuMi4xCgo= --=_0123b741f62ad397c8fc2f7a1a7ddc1b--