From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Jimmy Yuen Ho Wong Newsgroups: gmane.emacs.bugs Subject: bug#39389: 27.0.60; A couple of bugs messing with minibuffer completion of /sudo:: Date: Sun, 9 Feb 2020 23:44:01 +0000 Message-ID: References: <87eevdvvmk.fsf@gmx.de> <0ae56395-5fdd-0892-47d6-556aa902effe@gmail.com> <87a760x3ej.fsf@gmx.de> <9b2b8ce4-97fc-52cf-384d-2ee83ca37251@gmail.com> <875zgowy0b.fsf@gmx.de> <87wo91p076.fsf@gmx.de> <87eev553k0.fsf@gmx.de> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000737f7b059e2d333a" Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="93228"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 39389@debbugs.gnu.org To: Michael Albinus Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Feb 10 00:45:24 2020 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1j0wGR-000O6e-Nx for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 10 Feb 2020 00:45:24 +0100 Original-Received: from localhost ([::1]:55258 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j0wGQ-0007XH-JD for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 09 Feb 2020 18:45:22 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:54908) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j0wGB-0007TY-66 for bug-gnu-emacs@gnu.org; Sun, 09 Feb 2020 18:45:12 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j0wG6-0005nn-4j for bug-gnu-emacs@gnu.org; Sun, 09 Feb 2020 18:45:07 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:47453) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1j0wG5-0005nV-SH for bug-gnu-emacs@gnu.org; Sun, 09 Feb 2020 18:45:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1j0wG5-0002h8-Qq for bug-gnu-emacs@gnu.org; Sun, 09 Feb 2020 18:45:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Jimmy Yuen Ho Wong Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 09 Feb 2020 23:45:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39389 X-GNU-PR-Package: emacs Original-Received: via spool by 39389-submit@debbugs.gnu.org id=B39389.158129186810302 (code B ref 39389); Sun, 09 Feb 2020 23:45:01 +0000 Original-Received: (at 39389) by debbugs.gnu.org; 9 Feb 2020 23:44:28 +0000 Original-Received: from localhost ([127.0.0.1]:53426 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j0wFW-0002g4-78 for submit@debbugs.gnu.org; Sun, 09 Feb 2020 18:44:27 -0500 Original-Received: from mail-ot1-f54.google.com ([209.85.210.54]:45654) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j0wFT-0002fo-Aw for 39389@debbugs.gnu.org; Sun, 09 Feb 2020 18:44:25 -0500 Original-Received: by mail-ot1-f54.google.com with SMTP id 59so4601212otp.12 for <39389@debbugs.gnu.org>; Sun, 09 Feb 2020 15:44:23 -0800 (PST) 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=IkhOO136V19ZEIWYkAqJfQalMUNT4cUmokOoe1t8vXE=; b=Ljp4ZVPIZ8nTKhpn5PIK3BW+FoxyCx3l1dDlxNA+brUBBcTKwGsw4VqkEsF5FXQO3F sOnaKyBoKTjboGDFqhiw6Tm5kFxJVoGrcLq3nqesnQQzJlra4uSigY9uxnfFDilUSJ2Y LIBHw9SHQzLhSfuUWXwv0P3sTZeNRhWRYc37kCiYFDs+TiE3Th3sm+tsMtP5Qp7g4zxW YWpSvd+hueENA90XID58LH4dF5NgVBM8xiiEu6/uR3ka4+hhP5k9dCzts2uu/3bxZ7yv QBLeEyt0304tTcnqzXKKJWjndPNoXbA+oQpBfktKiyB72ZrUYGiOYwHroQr5WuSO68pm 4YOg== 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=IkhOO136V19ZEIWYkAqJfQalMUNT4cUmokOoe1t8vXE=; b=eekcMkQdylG0O8MoBayi5MtlwZpNIEr5pZI0iOzoQWObxMWpDl0H2Qb9aJIHYCXNLL 3fJEszUa2rTRn0Q/WFVJLEAPBxopoyXcEdzgZ28U+cTKAHfiYDJ0nd8+FAYxGB2zGKNw ucxKV9EhU5JXy/WHBb7Hzu4oOXr8F0oWjsxPSIHFQOXTsIyn9VcQm01cWql9VGEgK4// uI5Wy2JauncxeLOCFtA0Fsq8mkzo8IFAHv0XIMPb4G2nUoF/UUVvqJXh6yOZQ+DcQE2a +wg3RNMIkLK7RPB5tn8cktCAuSTE12oJD+fwuTlfQcRCOoPUz0LLma0/VYGTsbHWbRn8 JbCA== X-Gm-Message-State: APjAAAXa4LRC6Y4ODtsCV+n7LKLyqtP3uhnuTNMfCFArvDcANymtguCu QiIU71j83zb747CZSwokhkZR1AHKjAfAVRRPiKk= X-Google-Smtp-Source: APXvYqz3z8383dHF2fZz+qLsQwzm+JU/PFV4fVCF1wJbnxLMLhjzUlrA8Rxpp4/2yVgjtHf/lirDJNqnDKRKvSHVXrE= X-Received: by 2002:a9d:5e82:: with SMTP id f2mr7935884otl.240.1581291857467; Sun, 09 Feb 2020 15:44:17 -0800 (PST) In-Reply-To: <87eev553k0.fsf@gmx.de> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:175847 Archived-At: --000000000000737f7b059e2d333a Content-Type: text/plain; charset="UTF-8" Ok I've found a way to reproduce bug 2 and 3 *without* `exec-path-from-shell`. 0. Get on macOS 10.14 1. Install [GPGTools](https://gpgtools.org/), this will put the `gpg` binary into `/usr/local/bin` 2. env -i /Applications/MacPorts/Emacs.app/Contents/MacOS/Emacs -l tramp --eval '(setq tramp-verbose 10 exec-path (cons "/usr/local/bin/" exec-path))' /sudo:: 3. Now the minibuffer prompt will be stuck at Tramp: Sending Password. 4. C-g to quit. I've attached a backtrace and the logs in *Messages* for this. 5. The `exec-path` is now `("/usr/local/bin/" "." "/Applications/MacPorts/Emacs.app/Contents/MacOS/libexec" "/Applications/MacPorts/Emacs.app/Contents/MacOS/bin")`. It appears as long as `.` is part of the search paths and `gpg` can be found in any of the search paths, the prompt will get stuck. 6. Saving the credentials for `root@localhost` into `~/.authinfo.gpg` will work around this issue. On Sat, Feb 8, 2020 at 6:36 PM Michael Albinus wrote: > > Jimmy Yuen Ho Wong writes: > > Hi, > > > For bug 2 and 3, the author said `file-remote-p` might have triggered > > some weird code paths that triggered this bug. I don't know how to > > edebug further as `redisplay_internal` keeps calling it. Do you know > > how to debug it? > > > > https://github.com/purcell/exec-path-from-shell/issues/95#issuecomment-582629738 > > I doubt that file-remote-p is guilty. This function is designed to *not* > work on the remote side, but check the syntax of a file name only. > > However, I've downloaded the package exec-path-from-shell from > MELPA. Reading the code, I have serious doubst it will cooperate with > Tramp. It's idea is to analyze the *local* shell, and apply actions over > the shell. But the *local* shell doesn't matter for remote files, so it > is completely useless. I'd recommend NOT to use exec-path-from-shell for > remote files. > > If you want to know mor details what happens with Tramp, you might > analyze the function calls. Evaluate > > --8<---------------cut here---------------start------------->8--- > (require 'trace) > (dolist (elt (all-completions "tramp-" obarray 'functionp)) > (trace-function-background (intern elt))) > (untrace-function 'tramp-read-passwd) > --8<---------------cut here---------------end--------------->8--- > > Then run your test. The buffer *trace-output* contains the output from > the function call traces. You might show it here, maybe I can find > something more about the problem. > > Best regards, Michael. --000000000000737f7b059e2d333a Content-Type: text/plain; charset="US-ASCII"; name="without-epfs-backtrace.txt" Content-Disposition: attachment; filename="without-epfs-backtrace.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k6fnv7xz1 ICBiYWNrdHJhY2UoKQogIHRyYW1wLXNpZ25hbC1ob29rLWZ1bmN0aW9uKHF1aXQgKCIiKSkKICBz aWduYWwocXVpdCAoIiIpKQogIHRyYW1wLW1heWJlLW9wZW4tY29ubmVjdGlvbigodHJhbXAtZmls ZS1uYW1lICJzdWRvIiAjKCJyb290IiAwIDQgKHRyYW1wLWRlZmF1bHQgdCkpIG5pbCAjKCJNb2Jp bGVDYXQubG9jYWwiIDAgMTUgKHRyYW1wLWRlZmF1bHQgdCkpIG5pbCAiIiBuaWwpKQogIHRyYW1w LXNlbmQtY29tbWFuZCgodHJhbXAtZmlsZS1uYW1lICJzdWRvIiAjKCJyb290IiAwIDQgKHRyYW1w LWRlZmF1bHQgdCkpIG5pbCAjKCJNb2JpbGVDYXQubG9jYWwiIDAgMTUgKHRyYW1wLWRlZmF1bHQg dCkpIG5pbCAiIiBuaWwpICMoImNkIH5yb290ICYmIHB3ZCIgNCA4ICh0cmFtcC1kZWZhdWx0IHQp KSkKICB0cmFtcC1zaC1oYW5kbGUtZXhwYW5kLWZpbGUtbmFtZSgiL3N1ZG86OiIgIn4vIikKICBh cHBseSh0cmFtcC1zaC1oYW5kbGUtZXhwYW5kLWZpbGUtbmFtZSAoIi9zdWRvOjoiICJ+LyIpKQog IHRyYW1wLXNoLWZpbGUtbmFtZS1oYW5kbGVyKGV4cGFuZC1maWxlLW5hbWUgIi9zdWRvOjoiICJ+ LyIpCiAgYXBwbHkodHJhbXAtc2gtZmlsZS1uYW1lLWhhbmRsZXIgZXhwYW5kLWZpbGUtbmFtZSAo Ii9zdWRvOjoiICJ+LyIpKQogIHRyYW1wLWZpbGUtbmFtZS1oYW5kbGVyKGV4cGFuZC1maWxlLW5h bWUgIi9zdWRvOjoiICJ+LyIpCiAgZXhwYW5kLWZpbGUtbmFtZSgiL3N1ZG86OiIgIn4vIikKICAj Zihjb21waWxlZC1mdW5jdGlvbiAoZGlzcGxheWFibGUtYnVmZmVycyBkaXIgbGluZSBjb2x1bW4g bmFtZSkgIzxieXRlY29kZSAweDQxZTE2MGMzPikoKG5pbCkgIn4vIiAoMCkgKDApICIvc3Vkbzo6 IikKICBjb21tYW5kLWxpbmUtMSgoIi1sIiAidHJhbXAiICItLWV2YWwiICIoc2V0cSB0cmFtcC12 ZXJib3NlIDEwIGV4ZWMtcGF0aCAoY29ucyBcIi91c3IvbG9jYWwuLi4iICIvc3Vkbzo6IikpCiAg Y29tbWFuZC1saW5lKCkKICBub3JtYWwtdG9wLWxldmVsKCkKRGVidWdnZXIgZW50ZXJlZC0tTGlz cCBlcnJvcjogKGVwZy1lcnJvciAibm8gdXNhYmxlIGNvbmZpZ3VyYXRpb24gT3BlblBHUCIpCiAg c2lnbmFsKGVwZy1lcnJvciAoIm5vIHVzYWJsZSBjb25maWd1cmF0aW9uIE9wZW5QR1AiKSkKICAo bGV0ICh0cmFtcC1tZXNzYWdlLXNob3ctbWVzc2FnZSBzaWduYWwtaG9vay1mdW5jdGlvbikgKHRy YW1wLWJhY2t0cmFjZSB2ZWMtb3ItcHJvYykgKGlmIGFyZ3VtZW50cyBuaWwgKHNldHEgYXJndW1l bnRzIChsaXN0IGZtdC1zdHJpbmcpIGZtdC1zdHJpbmcgIiVzIikpIChpZiB2ZWMtb3ItcHJvYyAo cHJvZ24gKHRyYW1wLW1lc3NhZ2UgdmVjLW9yLXByb2MgMSAiJXMiIChlcnJvci1tZXNzYWdlLXN0 cmluZyAobGlzdCBzaWduYWwgKGdldCBzaWduYWwgJ2Vycm9yLW1lc3NhZ2UpIChhcHBseSAjJ2Zv cm1hdC1tZXNzYWdlIGZtdC1zdHJpbmcgYXJndW1lbnRzKSkpKSkpIChzaWduYWwgc2lnbmFsIChs aXN0IChzdWJzdHJpbmctbm8tcHJvcGVydGllcyAoYXBwbHkgIydmb3JtYXQtbWVzc2FnZSBmbXQt c3RyaW5nIGFyZ3VtZW50cykpKSkpCiAgdHJhbXAtZXJyb3IoKHRyYW1wLWZpbGUtbmFtZSAic3Vk byIgIygicm9vdCIgMCA0ICh0cmFtcC1kZWZhdWx0IHQpKSBuaWwgIygiTW9iaWxlQ2F0LmxvY2Fs IiAwIDE1ICh0cmFtcC1kZWZhdWx0IHQpKSBuaWwgIiIgbmlsKSBlcGctZXJyb3IgIiVzIiAibm8g dXNhYmxlIGNvbmZpZ3VyYXRpb24gT3BlblBHUCIpCiAgKGlmIChlcSBlcnJvci1zeW1ib2wgJ3Zv aWQtdmFyaWFibGUpIG5pbCAodHJhbXAtZXJyb3IgKGNhciB0cmFtcC1jdXJyZW50LWNvbm5lY3Rp b24pIGVycm9yLXN5bWJvbCAiJXMiIChtYXBjb25jYXQgIycobGFtYmRhICh4KSAoZm9ybWF0ICIl cyIgeCkpIGRhdGEgIiAiKSkpCiAgdHJhbXAtc2lnbmFsLWhvb2stZnVuY3Rpb24oZXBnLWVycm9y ICgibm8gdXNhYmxlIGNvbmZpZ3VyYXRpb24iIE9wZW5QR1ApKQogIHNpZ25hbChlcGctZXJyb3Ig KCJubyB1c2FibGUgY29uZmlndXJhdGlvbiIgT3BlblBHUCkpCiAgZXBnLWNvbnRleHQtLW1ha2Uo T3BlblBHUCBuaWwgbmlsIG5pbCBuaWwgbmlsIG5pbCkKICBlcGctbWFrZS1jb250ZXh0KCkKICBl cGEtZmlsZS1pbnNlcnQtZmlsZS1jb250ZW50cygiL1VzZXJzL3d5dWVuaG8vLmF1dGhpbmZvLmdw ZyIgbmlsIG5pbCBuaWwgbmlsKQogIGFwcGx5KGVwYS1maWxlLWluc2VydC1maWxlLWNvbnRlbnRz ICgiL1VzZXJzL3d5dWVuaG8vLmF1dGhpbmZvLmdwZyIgbmlsIG5pbCBuaWwgbmlsKSkKICBlcGEt ZmlsZS1oYW5kbGVyKGluc2VydC1maWxlLWNvbnRlbnRzICIvVXNlcnMvd3l1ZW5oby8uYXV0aGlu Zm8uZ3BnIiBuaWwgbmlsIG5pbCBuaWwpCiAgaW5zZXJ0LWZpbGUtY29udGVudHMoIn4vLmF1dGhp bmZvLmdwZyIpCiAgYXV0aC1zb3VyY2UtbmV0cmMtcGFyc2UoOm1heCAxIDpyZXF1aXJlICg6c2Vj cmV0IDp1c2VyKSA6ZmlsZSAifi8uYXV0aGluZm8uZ3BnIiA6aG9zdCAjKCJNb2JpbGVDYXQubG9j YWwiIDAgMTUgKHRyYW1wLWRlZmF1bHQgdCkpIDp1c2VyICMoInJvb3QiIDAgNCAodHJhbXAtZGVm YXVsdCB0KSkgOnBvcnQgInN1ZG8iKQogIGF1dGgtc291cmNlLW5ldHJjLXNlYXJjaCg6YmFja2Vu ZCAjPGF1dGgtc291cmNlLWJhY2tlbmQgYXV0aC1zb3VyY2UtYmFja2VuZC00MTJkODNiOD4gOnR5 cGUgbmV0cmMgOm1heCAxIDpyZXF1aXJlICg6c2VjcmV0IDp1c2VyKSA6Y3JlYXRlIG5pbCA6ZGVs ZXRlIG5pbCA6bWF4IDEgOnVzZXIgIygicm9vdCIgMCA0ICh0cmFtcC1kZWZhdWx0IHQpKSA6aG9z dCAjKCJNb2JpbGVDYXQubG9jYWwiIDAgMTUgKHRyYW1wLWRlZmF1bHQgdCkpIDpwb3J0ICJzdWRv IiA6cmVxdWlyZSAoOnNlY3JldCA6dXNlcikgOmNyZWF0ZSB0KQogIGFwcGx5KGF1dGgtc291cmNl LW5ldHJjLXNlYXJjaCA6YmFja2VuZCAjPGF1dGgtc291cmNlLWJhY2tlbmQgYXV0aC1zb3VyY2Ut YmFja2VuZC00MTJkODNiOD4gOnR5cGUgbmV0cmMgOm1heCAxIDpyZXF1aXJlICg6c2VjcmV0IDp1 c2VyKSA6Y3JlYXRlIG5pbCA6ZGVsZXRlIG5pbCAoOm1heCAxIDp1c2VyICMoInJvb3QiIDAgNCAo dHJhbXAtZGVmYXVsdCB0KSkgOmhvc3QgIygiTW9iaWxlQ2F0LmxvY2FsIiAwIDE1ICh0cmFtcC1k ZWZhdWx0IHQpKSA6cG9ydCAic3VkbyIgOnJlcXVpcmUgKDpzZWNyZXQgOnVzZXIpIDpjcmVhdGUg dCkpCiAgYXV0aC1zb3VyY2Utc2VhcmNoLWJhY2tlbmRzKCgjPGF1dGgtc291cmNlLWJhY2tlbmQg YXV0aC1zb3VyY2UtYmFja2VuZC00MTg3M2U0OD4gIzxhdXRoLXNvdXJjZS1iYWNrZW5kIGF1dGgt c291cmNlLWJhY2tlbmQtNDEyZDgzYjg+ICM8YXV0aC1zb3VyY2UtYmFja2VuZCBhdXRoLXNvdXJj ZS1iYWNrZW5kLTQxMmQ4M2ZjPikgKDptYXggMSA6dXNlciAjKCJyb290IiAwIDQgKHRyYW1wLWRl ZmF1bHQgdCkpIDpob3N0ICMoIk1vYmlsZUNhdC5sb2NhbCIgMCAxNSAodHJhbXAtZGVmYXVsdCB0 KSkgOnBvcnQgInN1ZG8iIDpyZXF1aXJlICg6c2VjcmV0IDp1c2VyKSA6Y3JlYXRlIHQpIDEgbmls IG5pbCAoOnNlY3JldCA6dXNlcikpCiAgYXV0aC1zb3VyY2Utc2VhcmNoKDptYXggMSA6dXNlciAj KCJyb290IiAwIDQgKHRyYW1wLWRlZmF1bHQgdCkpIDpob3N0ICMoIk1vYmlsZUNhdC5sb2NhbCIg MCAxNSAodHJhbXAtZGVmYXVsdCB0KSkgOnBvcnQgInN1ZG8iIDpyZXF1aXJlICg6c2VjcmV0IDp1 c2VyKSA6Y3JlYXRlIHQpCiAgKGNhciAoYXV0aC1zb3VyY2Utc2VhcmNoIDptYXggMSAoYW5kIHVz ZXIgOnVzZXIpIChpZiBkb21haW4gKGNvbmNhdCB1c2VyIHRyYW1wLXByZWZpeC1kb21haW4tZm9y bWF0IGRvbWFpbikgdXNlcikgOmhvc3QgKGlmIHBvcnQgKGNvbmNhdCBob3N0IHRyYW1wLXByZWZp eC1wb3J0LWZvcm1hdCBwb3J0KSBob3N0KSA6cG9ydCBtZXRob2QgOnJlcXVpcmUgKGNvbnMgOnNl Y3JldCAoYW5kIHVzZXIgJyg6dXNlcikpKSA6Y3JlYXRlIHQpKQogIChzZXRxIGF1dGgtaW5mbyAo Y2FyIChhdXRoLXNvdXJjZS1zZWFyY2ggOm1heCAxIChhbmQgdXNlciA6dXNlcikgKGlmIGRvbWFp biAoY29uY2F0IHVzZXIgdHJhbXAtcHJlZml4LWRvbWFpbi1mb3JtYXQgZG9tYWluKSB1c2VyKSA6 aG9zdCAoaWYgcG9ydCAoY29uY2F0IGhvc3QgdHJhbXAtcHJlZml4LXBvcnQtZm9ybWF0IHBvcnQp IGhvc3QpIDpwb3J0IG1ldGhvZCA6cmVxdWlyZSAoY29ucyA6c2VjcmV0IChhbmQgdXNlciAnKDp1 c2VyKSkpIDpjcmVhdGUgdCkpIHRyYW1wLXBhc3N3b3JkLXNhdmUtZnVuY3Rpb24gKHBsaXN0LWdl dCBhdXRoLWluZm8gOnNhdmUtZnVuY3Rpb24pIGF1dGgtcGFzc3dkIChwbGlzdC1nZXQgYXV0aC1p bmZvIDpzZWNyZXQpKQogIChhbmQgKHRyYW1wLWdldC1jb25uZWN0aW9uLXByb3BlcnR5IHYgImZp cnN0LXBhc3N3b3JkLXJlcXVlc3QiIG5pbCkgKHNldHEgYXV0aC1pbmZvIChjYXIgKGF1dGgtc291 cmNlLXNlYXJjaCA6bWF4IDEgKGFuZCB1c2VyIDp1c2VyKSAoaWYgZG9tYWluIChjb25jYXQgdXNl ciB0cmFtcC1wcmVmaXgtZG9tYWluLWZvcm1hdCBkb21haW4pIHVzZXIpIDpob3N0IChpZiBwb3J0 IChjb25jYXQgaG9zdCB0cmFtcC1wcmVmaXgtcG9ydC1mb3JtYXQgcG9ydCkgaG9zdCkgOnBvcnQg bWV0aG9kIDpyZXF1aXJlIChjb25zIDpzZWNyZXQgKGFuZCB1c2VyICcoOnVzZXIpKSkgOmNyZWF0 ZSB0KSkgdHJhbXAtcGFzc3dvcmQtc2F2ZS1mdW5jdGlvbiAocGxpc3QtZ2V0IGF1dGgtaW5mbyA6 c2F2ZS1mdW5jdGlvbikgYXV0aC1wYXNzd2QgKHBsaXN0LWdldCBhdXRoLWluZm8gOnNlY3JldCkp KQogIChwcm9nbiAoYW5kICh0cmFtcC1nZXQtY29ubmVjdGlvbi1wcm9wZXJ0eSB2ICJmaXJzdC1w YXNzd29yZC1yZXF1ZXN0IiBuaWwpIChzZXRxIGF1dGgtaW5mbyAoY2FyIChhdXRoLXNvdXJjZS1z ZWFyY2ggOm1heCAxIChhbmQgdXNlciA6dXNlcikgKGlmIGRvbWFpbiAoY29uY2F0IHVzZXIgdHJh bXAtcHJlZml4LWRvbWFpbi1mb3JtYXQgZG9tYWluKSB1c2VyKSA6aG9zdCAoaWYgcG9ydCAoY29u Y2F0IGhvc3QgdHJhbXAtcHJlZml4LXBvcnQtZm9ybWF0IHBvcnQpIGhvc3QpIDpwb3J0IG1ldGhv ZCA6cmVxdWlyZSAoY29ucyA6c2VjcmV0IChhbmQgdXNlciAnLi4uKSkgOmNyZWF0ZSB0KSkgdHJh bXAtcGFzc3dvcmQtc2F2ZS1mdW5jdGlvbiAocGxpc3QtZ2V0IGF1dGgtaW5mbyA6c2F2ZS1mdW5j dGlvbikgYXV0aC1wYXNzd2QgKHBsaXN0LWdldCBhdXRoLWluZm8gOnNlY3JldCkpKSAod2hpbGUg KGZ1bmN0aW9ucCBhdXRoLXBhc3N3ZCkgKHNldHEgYXV0aC1wYXNzd2QgKGZ1bmNhbGwgYXV0aC1w YXNzd2QpKSkgYXV0aC1wYXNzd2QpCiAgKGNvbmRpdGlvbi1jYXNlIG5pbCAocHJvZ24gKGFuZCAo dHJhbXAtZ2V0LWNvbm5lY3Rpb24tcHJvcGVydHkgdiAiZmlyc3QtcGFzc3dvcmQtcmVxdWVzdCIg bmlsKSAoc2V0cSBhdXRoLWluZm8gKGNhciAoYXV0aC1zb3VyY2Utc2VhcmNoIDptYXggMSAoYW5k IHVzZXIgOnVzZXIpIChpZiBkb21haW4gKGNvbmNhdCB1c2VyIHRyYW1wLXByZWZpeC1kb21haW4t Zm9ybWF0IGRvbWFpbikgdXNlcikgOmhvc3QgKGlmIHBvcnQgKGNvbmNhdCBob3N0IHRyYW1wLXBy ZWZpeC1wb3J0LWZvcm1hdCBwb3J0KSBob3N0KSA6cG9ydCBtZXRob2QgOnJlcXVpcmUgKGNvbnMg OnNlY3JldCAoYW5kIHVzZXIgLi4uKSkgOmNyZWF0ZSB0KSkgdHJhbXAtcGFzc3dvcmQtc2F2ZS1m dW5jdGlvbiAocGxpc3QtZ2V0IGF1dGgtaW5mbyA6c2F2ZS1mdW5jdGlvbikgYXV0aC1wYXNzd2Qg KHBsaXN0LWdldCBhdXRoLWluZm8gOnNlY3JldCkpKSAod2hpbGUgKGZ1bmN0aW9ucCBhdXRoLXBh c3N3ZCkgKHNldHEgYXV0aC1wYXNzd2QgKGZ1bmNhbGwgYXV0aC1wYXNzd2QpKSkgYXV0aC1wYXNz d2QpIChlcnJvciBuaWwpKQogIChvciAoY29uZGl0aW9uLWNhc2UgbmlsIChwcm9nbiAoYW5kICh0 cmFtcC1nZXQtY29ubmVjdGlvbi1wcm9wZXJ0eSB2ICJmaXJzdC1wYXNzd29yZC1yZXF1ZXN0IiBu aWwpIChzZXRxIGF1dGgtaW5mbyAoY2FyIChhdXRoLXNvdXJjZS1zZWFyY2ggOm1heCAxIChhbmQg dXNlciA6dXNlcikgKGlmIGRvbWFpbiAuLi4gdXNlcikgOmhvc3QgKGlmIHBvcnQgLi4uIGhvc3Qp IDpwb3J0IG1ldGhvZCA6cmVxdWlyZSAoY29ucyA6c2VjcmV0IC4uLikgOmNyZWF0ZSB0KSkgdHJh bXAtcGFzc3dvcmQtc2F2ZS1mdW5jdGlvbiAocGxpc3QtZ2V0IGF1dGgtaW5mbyA6c2F2ZS1mdW5j dGlvbikgYXV0aC1wYXNzd2QgKHBsaXN0LWdldCBhdXRoLWluZm8gOnNlY3JldCkpKSAod2hpbGUg KGZ1bmN0aW9ucCBhdXRoLXBhc3N3ZCkgKHNldHEgYXV0aC1wYXNzd2QgKGZ1bmNhbGwgYXV0aC1w YXNzd2QpKSkgYXV0aC1wYXNzd2QpIChlcnJvciBuaWwpKSAocHJvZ24gKHNldHEgYXV0aC1wYXNz d2QgKHBhc3N3b3JkLXJlYWQgcHctcHJvbXB0IGtleSkgdHJhbXAtcGFzc3dvcmQtc2F2ZS1mdW5j dGlvbiAjJyhsYW1iZGEgbmlsIChwYXNzd29yZC1jYWNoZS1hZGQga2V5IGF1dGgtcGFzc3dkKSkp IGF1dGgtcGFzc3dkKSAocmVhZC1wYXNzd2QgcHctcHJvbXB0KSkKICAocHJvZzEgKG9yIChjb25k aXRpb24tY2FzZSBuaWwgKHByb2duIChhbmQgKHRyYW1wLWdldC1jb25uZWN0aW9uLXByb3BlcnR5 IHYgImZpcnN0LXBhc3N3b3JkLXJlcXVlc3QiIG5pbCkgKHNldHEgYXV0aC1pbmZvIChjYXIgKGF1 dGgtc291cmNlLXNlYXJjaCA6bWF4IDEgLi4uIC4uLiA6aG9zdCAuLi4gOnBvcnQgbWV0aG9kIDpy ZXF1aXJlIC4uLiA6Y3JlYXRlIHQpKSB0cmFtcC1wYXNzd29yZC1zYXZlLWZ1bmN0aW9uIChwbGlz dC1nZXQgYXV0aC1pbmZvIDpzYXZlLWZ1bmN0aW9uKSBhdXRoLXBhc3N3ZCAocGxpc3QtZ2V0IGF1 dGgtaW5mbyA6c2VjcmV0KSkpICh3aGlsZSAoZnVuY3Rpb25wIGF1dGgtcGFzc3dkKSAoc2V0cSBh dXRoLXBhc3N3ZCAoZnVuY2FsbCBhdXRoLXBhc3N3ZCkpKSBhdXRoLXBhc3N3ZCkgKGVycm9yIG5p bCkpIChwcm9nbiAoc2V0cSBhdXRoLXBhc3N3ZCAocGFzc3dvcmQtcmVhZCBwdy1wcm9tcHQga2V5 KSB0cmFtcC1wYXNzd29yZC1zYXZlLWZ1bmN0aW9uICMnKGxhbWJkYSBuaWwgKHBhc3N3b3JkLWNh Y2hlLWFkZCBrZXkgYXV0aC1wYXNzd2QpKSkgYXV0aC1wYXNzd2QpIChyZWFkLXBhc3N3ZCBwdy1w cm9tcHQpKSAodHJhbXAtc2V0LWNvbm5lY3Rpb24tcHJvcGVydHkgdiAiZmlyc3QtcGFzc3dvcmQt cmVxdWVzdCIgbmlsKSkKICAobGV0KiAoKHYgKHRyYW1wLWRpc3NlY3QtZmlsZS1uYW1lIGtleSkp IChtZXRob2QgKHByb2duIChvciAocHJvZ24gKGFuZCAobWVtcSAuLi4gY2wtc3RydWN0LXRyYW1w LWZpbGUtbmFtZS10YWdzKSB0KSkgKHNpZ25hbCAnd3JvbmctdHlwZS1hcmd1bWVudCAobGlzdCAn dHJhbXAtZmlsZS1uYW1lIHYpKSkgKG50aCAxIHYpKSkgKHVzZXIgKHByb2duIChvciAocHJvZ24g KGFuZCAobWVtcSAuLi4gY2wtc3RydWN0LXRyYW1wLWZpbGUtbmFtZS10YWdzKSB0KSkgKHNpZ25h bCAnd3JvbmctdHlwZS1hcmd1bWVudCAobGlzdCAndHJhbXAtZmlsZS1uYW1lIHYpKSkgKG50aCAy IHYpKSkgKGRvbWFpbiAocHJvZ24gKG9yIChwcm9nbiAoYW5kIChtZW1xIC4uLiBjbC1zdHJ1Y3Qt dHJhbXAtZmlsZS1uYW1lLXRhZ3MpIHQpKSAoc2lnbmFsICd3cm9uZy10eXBlLWFyZ3VtZW50IChs aXN0ICd0cmFtcC1maWxlLW5hbWUgdikpKSAobnRoIDMgdikpKSAoaG9zdCAocHJvZ24gKG9yIChw cm9nbiAoYW5kIChtZW1xIC4uLiBjbC1zdHJ1Y3QtdHJhbXAtZmlsZS1uYW1lLXRhZ3MpIHQpKSAo c2lnbmFsICd3cm9uZy10eXBlLWFyZ3VtZW50IChsaXN0ICd0cmFtcC1maWxlLW5hbWUgdikpKSAo bnRoIDQgdikpKSAocG9ydCAocHJvZ24gKG9yIChwcm9nbiAoYW5kIChtZW1xIC4uLiBjbC1zdHJ1 Y3QtdHJhbXAtZmlsZS1uYW1lLXRhZ3MpIHQpKSAoc2lnbmFsICd3cm9uZy10eXBlLWFyZ3VtZW50 IChsaXN0ICd0cmFtcC1maWxlLW5hbWUgdikpKSAobnRoIDUgdikpKSAobG9jYWxuYW1lIChwcm9n biAob3IgKHByb2duIChhbmQgKG1lbXEgLi4uIGNsLXN0cnVjdC10cmFtcC1maWxlLW5hbWUtdGFn cykgdCkpIChzaWduYWwgJ3dyb25nLXR5cGUtYXJndW1lbnQgKGxpc3QgJ3RyYW1wLWZpbGUtbmFt ZSB2KSkpIChudGggNiB2KSkpIChob3AgKHByb2duIChvciAocHJvZ24gKGFuZCAobWVtcSAuLi4g Y2wtc3RydWN0LXRyYW1wLWZpbGUtbmFtZS10YWdzKSB0KSkgKHNpZ25hbCAnd3JvbmctdHlwZS1h cmd1bWVudCAobGlzdCAndHJhbXAtZmlsZS1uYW1lIHYpKSkgKG50aCA3IHYpKSkpIChpZ25vcmUg bWV0aG9kIHVzZXIgZG9tYWluIGhvc3QgcG9ydCBsb2NhbG5hbWUgaG9wKSAoc2V0cSB0cmFtcC1w YXNzd29yZC1zYXZlLWZ1bmN0aW9uIG5pbCB1c2VyIChvciB1c2VyICh0cmFtcC1nZXQtY29ubmVj dGlvbi1wcm9wZXJ0eSBrZXkgImxvZ2luLWFzIiBuaWwpKSkgKHByb2cxIChvciAoY29uZGl0aW9u LWNhc2UgbmlsIChwcm9nbiAoYW5kICh0cmFtcC1nZXQtY29ubmVjdGlvbi1wcm9wZXJ0eSB2ICJm aXJzdC1wYXNzd29yZC1yZXF1ZXN0IiBuaWwpIChzZXRxIGF1dGgtaW5mbyAoY2FyIC4uLikgdHJh bXAtcGFzc3dvcmQtc2F2ZS1mdW5jdGlvbiAocGxpc3QtZ2V0IGF1dGgtaW5mbyA6c2F2ZS1mdW5j dGlvbikgYXV0aC1wYXNzd2QgKHBsaXN0LWdldCBhdXRoLWluZm8gOnNlY3JldCkpKSAod2hpbGUg KGZ1bmN0aW9ucCBhdXRoLXBhc3N3ZCkgKHNldHEgYXV0aC1wYXNzd2QgKGZ1bmNhbGwgYXV0aC1w YXNzd2QpKSkgYXV0aC1wYXNzd2QpIChlcnJvciBuaWwpKSAocHJvZ24gKHNldHEgYXV0aC1wYXNz d2QgKHBhc3N3b3JkLXJlYWQgcHctcHJvbXB0IGtleSkgdHJhbXAtcGFzc3dvcmQtc2F2ZS1mdW5j dGlvbiAjJyhsYW1iZGEgbmlsIChwYXNzd29yZC1jYWNoZS1hZGQga2V5IGF1dGgtcGFzc3dkKSkp IGF1dGgtcGFzc3dkKSAocmVhZC1wYXNzd2QgcHctcHJvbXB0KSkgKHRyYW1wLXNldC1jb25uZWN0 aW9uLXByb3BlcnR5IHYgImZpcnN0LXBhc3N3b3JkLXJlcXVlc3QiIG5pbCkpKQogIChsZXQqICgo Y2FzZS1mb2xkLXNlYXJjaCB0KSAoa2V5ICh0cmFtcC1tYWtlLXRyYW1wLWZpbGUtbmFtZSAodHJh bXAtZ2V0LWNvbm5lY3Rpb24tcHJvcGVydHkgcHJvYyAicGFzc3dvcmQtdmVjdG9yIiAocHJvY2Vz cy1nZXQgcHJvYyAndmVjdG9yKSkgJ25vbG9jICdub2hvcCkpIChwdy1wcm9tcHQgKG9yIHByb21w dCAoc2F2ZS1jdXJyZW50LWJ1ZmZlciAoc2V0LWJ1ZmZlciAocHJvY2Vzcy1idWZmZXIgcHJvYykp ICh0cmFtcC1jaGVjay1mb3ItcmVnZXhwIHByb2MgdHJhbXAtcGFzc3dvcmQtcHJvbXB0LXJlZ2V4 cCkgKGZvcm1hdCAiJXMgZm9yICVzICIgKGNhcGl0YWxpemUgKG1hdGNoLXN0cmluZyAxKSkga2V5 KSkpKSAoYXV0aC1zb3VyY2UtY3JlYXRpb24tcHJvbXB0cyAobGlzdCAoY29ucyAnc2VjcmV0IHB3 LXByb21wdCkpKSAoc3RpbWVycyAod2l0aC10aW1lb3V0LXN1c3BlbmQpKSBhdXRoLWluZm8gYXV0 aC1wYXNzd2QpIChsZXQqICgodiAodHJhbXAtZGlzc2VjdC1maWxlLW5hbWUga2V5KSkgKG1ldGhv ZCAocHJvZ24gKG9yIChwcm9nbiAoYW5kIC4uLiB0KSkgKHNpZ25hbCAnd3JvbmctdHlwZS1hcmd1 bWVudCAobGlzdCAuLi4gdikpKSAobnRoIDEgdikpKSAodXNlciAocHJvZ24gKG9yIChwcm9nbiAo YW5kIC4uLiB0KSkgKHNpZ25hbCAnd3JvbmctdHlwZS1hcmd1bWVudCAobGlzdCAuLi4gdikpKSAo bnRoIDIgdikpKSAoZG9tYWluIChwcm9nbiAob3IgKHByb2duIChhbmQgLi4uIHQpKSAoc2lnbmFs ICd3cm9uZy10eXBlLWFyZ3VtZW50IChsaXN0IC4uLiB2KSkpIChudGggMyB2KSkpIChob3N0IChw cm9nbiAob3IgKHByb2duIChhbmQgLi4uIHQpKSAoc2lnbmFsICd3cm9uZy10eXBlLWFyZ3VtZW50 IChsaXN0IC4uLiB2KSkpIChudGggNCB2KSkpIChwb3J0IChwcm9nbiAob3IgKHByb2duIChhbmQg Li4uIHQpKSAoc2lnbmFsICd3cm9uZy10eXBlLWFyZ3VtZW50IChsaXN0IC4uLiB2KSkpIChudGgg NSB2KSkpIChsb2NhbG5hbWUgKHByb2duIChvciAocHJvZ24gKGFuZCAuLi4gdCkpIChzaWduYWwg J3dyb25nLXR5cGUtYXJndW1lbnQgKGxpc3QgLi4uIHYpKSkgKG50aCA2IHYpKSkgKGhvcCAocHJv Z24gKG9yIChwcm9nbiAoYW5kIC4uLiB0KSkgKHNpZ25hbCAnd3JvbmctdHlwZS1hcmd1bWVudCAo bGlzdCAuLi4gdikpKSAobnRoIDcgdikpKSkgKGlnbm9yZSBtZXRob2QgdXNlciBkb21haW4gaG9z dCBwb3J0IGxvY2FsbmFtZSBob3ApIChzZXRxIHRyYW1wLXBhc3N3b3JkLXNhdmUtZnVuY3Rpb24g bmlsIHVzZXIgKG9yIHVzZXIgKHRyYW1wLWdldC1jb25uZWN0aW9uLXByb3BlcnR5IGtleSAibG9n aW4tYXMiIG5pbCkpKSAocHJvZzEgKG9yIChjb25kaXRpb24tY2FzZSBuaWwgKHByb2duIChhbmQg KHRyYW1wLWdldC1jb25uZWN0aW9uLXByb3BlcnR5IHYgImZpcnN0LXBhc3N3b3JkLXJlcXVlc3Qi IG5pbCkgKHNldHEgYXV0aC1pbmZvIC4uLiB0cmFtcC1wYXNzd29yZC1zYXZlLWZ1bmN0aW9uIC4u LiBhdXRoLXBhc3N3ZCAuLi4pKSAod2hpbGUgKGZ1bmN0aW9ucCBhdXRoLXBhc3N3ZCkgKHNldHEg YXV0aC1wYXNzd2QgLi4uKSkgYXV0aC1wYXNzd2QpIChlcnJvciBuaWwpKSAocHJvZ24gKHNldHEg YXV0aC1wYXNzd2QgKHBhc3N3b3JkLXJlYWQgcHctcHJvbXB0IGtleSkgdHJhbXAtcGFzc3dvcmQt c2F2ZS1mdW5jdGlvbiAjJyhsYW1iZGEgbmlsIC4uLikpIGF1dGgtcGFzc3dkKSAocmVhZC1wYXNz d2QgcHctcHJvbXB0KSkgKHRyYW1wLXNldC1jb25uZWN0aW9uLXByb3BlcnR5IHYgImZpcnN0LXBh c3N3b3JkLXJlcXVlc3QiIG5pbCkpKSAod2l0aC10aW1lb3V0LXVuc3VzcGVuZCBzdGltZXJzKSkK ICB0cmFtcC1yZWFkLXBhc3N3ZCgjPHByb2Nlc3MgKnRyYW1wL3N1ZG8gcm9vdEBNb2JpbGVDYXQu bG9jYWwqPikKICAoY29uY2F0ICh0cmFtcC1yZWFkLXBhc3N3ZCBwcm9jKSB0cmFtcC1sb2NhbC1l bmQtb2YtbGluZSkKICAocHJvY2Vzcy1zZW5kLXN0cmluZyBwcm9jIChjb25jYXQgKHRyYW1wLXJl YWQtcGFzc3dkIHByb2MpIHRyYW1wLWxvY2FsLWVuZC1vZi1saW5lKSkKICAobGV0ICgoZW5hYmxl LXJlY3Vyc2l2ZS1taW5pYnVmZmVycyB0KSAoY2FzZS1mb2xkLXNlYXJjaCB0KSkgKGlmICh0cmFt cC1nZXQtY29ubmVjdGlvbi1wcm9wZXJ0eSB2ZWMgImZpcnN0LXBhc3N3b3JkLXJlcXVlc3QiIG5p bCkgbmlsICh0cmFtcC1jbGVhci1wYXNzd2QgdmVjKSkgKGdvdG8tY2hhciAocG9pbnQtbWluKSkg KHRyYW1wLWNoZWNrLWZvci1yZWdleHAgcHJvYyB0cmFtcC1wYXNzd29yZC1wcm9tcHQtcmVnZXhw KSAodHJhbXAtbWVzc2FnZSB2ZWMgMyAiU2VuZGluZyAlcyIgKG1hdGNoLXN0cmluZyAxKSkgKHBy b2Nlc3Mtc2VuZC1zdHJpbmcgcHJvYyAoY29uY2F0ICh0cmFtcC1yZWFkLXBhc3N3ZCBwcm9jKSB0 cmFtcC1sb2NhbC1lbmQtb2YtbGluZSkpIChuYXJyb3ctdG8tcmVnaW9uIChwb2ludC1tYXgpIChw b2ludC1tYXgpKSkKICAoc2F2ZS1jdXJyZW50LWJ1ZmZlciAoc2V0LWJ1ZmZlciAocHJvY2Vzcy1i dWZmZXIgcHJvYykpIChsZXQgKChlbmFibGUtcmVjdXJzaXZlLW1pbmlidWZmZXJzIHQpIChjYXNl LWZvbGQtc2VhcmNoIHQpKSAoaWYgKHRyYW1wLWdldC1jb25uZWN0aW9uLXByb3BlcnR5IHZlYyAi Zmlyc3QtcGFzc3dvcmQtcmVxdWVzdCIgbmlsKSBuaWwgKHRyYW1wLWNsZWFyLXBhc3N3ZCB2ZWMp KSAoZ290by1jaGFyIChwb2ludC1taW4pKSAodHJhbXAtY2hlY2stZm9yLXJlZ2V4cCBwcm9jIHRy YW1wLXBhc3N3b3JkLXByb21wdC1yZWdleHApICh0cmFtcC1tZXNzYWdlIHZlYyAzICJTZW5kaW5n ICVzIiAobWF0Y2gtc3RyaW5nIDEpKSAocHJvY2Vzcy1zZW5kLXN0cmluZyBwcm9jIChjb25jYXQg KHRyYW1wLXJlYWQtcGFzc3dkIHByb2MpIHRyYW1wLWxvY2FsLWVuZC1vZi1saW5lKSkgKG5hcnJv dy10by1yZWdpb24gKHBvaW50LW1heCkgKHBvaW50LW1heCkpKSkKICB0cmFtcC1hY3Rpb24tcGFz c3dvcmQoIzxwcm9jZXNzICp0cmFtcC9zdWRvIHJvb3RATW9iaWxlQ2F0LmxvY2FsKj4gKHRyYW1w LWZpbGUtbmFtZSAic3VkbyIgIygicm9vdCIgMCA0ICh0cmFtcC1kZWZhdWx0IHQpKSBuaWwgIygi TW9iaWxlQ2F0LmxvY2FsIiAwIDE1ICh0cmFtcC1kZWZhdWx0IHQpKSBuaWwgIiIgbmlsKSkKICBm dW5jYWxsKHRyYW1wLWFjdGlvbi1wYXNzd29yZCAjPHByb2Nlc3MgKnRyYW1wL3N1ZG8gcm9vdEBN b2JpbGVDYXQubG9jYWwqPiAodHJhbXAtZmlsZS1uYW1lICJzdWRvIiAjKCJyb290IiAwIDQgKHRy YW1wLWRlZmF1bHQgdCkpIG5pbCAjKCJNb2JpbGVDYXQubG9jYWwiIDAgMTUgKHRyYW1wLWRlZmF1 bHQgdCkpIG5pbCAiIiBuaWwpKQogIChzZXRxIGZvdW5kIChmdW5jYWxsIGFjdGlvbiBwcm9jIHZl YykpCiAgKHByb2duICh0cmFtcC1tZXNzYWdlIHZlYyA1ICJDYWxsIGAlcyciIChzeW1ib2wtbmFt ZSBhY3Rpb24pKSAoc2V0cSBmb3VuZCAoZnVuY2FsbCBhY3Rpb24gcHJvYyB2ZWMpKSkKICAoaWYg KHRyYW1wLWNoZWNrLWZvci1yZWdleHAgcHJvYyBwYXR0ZXJuKSAocHJvZ24gKHRyYW1wLW1lc3Nh Z2UgdmVjIDUgIkNhbGwgYCVzJyIgKHN5bWJvbC1uYW1lIGFjdGlvbikpIChzZXRxIGZvdW5kIChm dW5jYWxsIGFjdGlvbiBwcm9jIHZlYykpKSkKICAod2hpbGUgdG9kbyAoc2V0cSBpdGVtIChjYXIt c2FmZSAocHJvZzEgdG9kbyAoc2V0cSB0b2RvIChjZHIgdG9kbykpKSkpIChzZXRxIHBhdHRlcm4g KGZvcm1hdCAiXFwoJXNcXClcXCciIChzeW1ib2wtdmFsdWUgKG50aCAwIGl0ZW0pKSkpIChzZXRx IGFjdGlvbiAobnRoIDEgaXRlbSkpICh0cmFtcC1tZXNzYWdlIHZlYyA1ICJMb29raW5nIGZvciBy ZWdleHAgXCIlc1wiIGZyb20gcmVtb3RlIHNoZWxsIiBwYXR0ZXJuKSAoaWYgKHRyYW1wLWNoZWNr LWZvci1yZWdleHAgcHJvYyBwYXR0ZXJuKSAocHJvZ24gKHRyYW1wLW1lc3NhZ2UgdmVjIDUgIkNh bGwgYCVzJyIgKHN5bWJvbC1uYW1lIGFjdGlvbikpIChzZXRxIGZvdW5kIChmdW5jYWxsIGFjdGlv biBwcm9jIHZlYykpKSkpCiAgKHdoaWxlIChub3QgZm91bmQpICh3aGlsZSAodHJhbXAtYWNjZXB0 LXByb2Nlc3Mtb3V0cHV0IHByb2MgMCkpIChzZXRxIHRvZG8gYWN0aW9ucykgKHdoaWxlIHRvZG8g KHNldHEgaXRlbSAoY2FyLXNhZmUgKHByb2cxIHRvZG8gKHNldHEgdG9kbyAoY2RyIHRvZG8pKSkp KSAoc2V0cSBwYXR0ZXJuIChmb3JtYXQgIlxcKCVzXFwpXFwnIiAoc3ltYm9sLXZhbHVlIChudGgg MCBpdGVtKSkpKSAoc2V0cSBhY3Rpb24gKG50aCAxIGl0ZW0pKSAodHJhbXAtbWVzc2FnZSB2ZWMg NSAiTG9va2luZyBmb3IgcmVnZXhwIFwiJXNcIiBmcm9tIHJlbW90ZSBzaGVsbCIgcGF0dGVybikg KGlmICh0cmFtcC1jaGVjay1mb3ItcmVnZXhwIHByb2MgcGF0dGVybikgKHByb2duICh0cmFtcC1t ZXNzYWdlIHZlYyA1ICJDYWxsIGAlcyciIChzeW1ib2wtbmFtZSBhY3Rpb24pKSAoc2V0cSBmb3Vu ZCAoZnVuY2FsbCBhY3Rpb24gcHJvYyB2ZWMpKSkpKSkKICAobGV0ICgoY2FzZS1mb2xkLXNlYXJj aCB0KSBmb3VuZCB0b2RvIGl0ZW0gcGF0dGVybiBhY3Rpb24pICh3aGlsZSAobm90IGZvdW5kKSAo d2hpbGUgKHRyYW1wLWFjY2VwdC1wcm9jZXNzLW91dHB1dCBwcm9jIDApKSAoc2V0cSB0b2RvIGFj dGlvbnMpICh3aGlsZSB0b2RvIChzZXRxIGl0ZW0gKGNhci1zYWZlIChwcm9nMSB0b2RvIChzZXRx IHRvZG8gKGNkciB0b2RvKSkpKSkgKHNldHEgcGF0dGVybiAoZm9ybWF0ICJcXCglc1xcKVxcJyIg KHN5bWJvbC12YWx1ZSAobnRoIDAgaXRlbSkpKSkgKHNldHEgYWN0aW9uIChudGggMSBpdGVtKSkg KHRyYW1wLW1lc3NhZ2UgdmVjIDUgIkxvb2tpbmcgZm9yIHJlZ2V4cCBcIiVzXCIgZnJvbSByZW1v dGUgc2hlbGwiIHBhdHRlcm4pIChpZiAodHJhbXAtY2hlY2stZm9yLXJlZ2V4cCBwcm9jIHBhdHRl cm4pIChwcm9nbiAodHJhbXAtbWVzc2FnZSB2ZWMgNSAiQ2FsbCBgJXMnIiAoc3ltYm9sLW5hbWUg YWN0aW9uKSkgKHNldHEgZm91bmQgKGZ1bmNhbGwgYWN0aW9uIHByb2MgdmVjKSkpKSkpIGZvdW5k KQogIHRyYW1wLXByb2Nlc3Mtb25lLWFjdGlvbigjPHByb2Nlc3MgKnRyYW1wL3N1ZG8gcm9vdEBN b2JpbGVDYXQubG9jYWwqPiAodHJhbXAtZmlsZS1uYW1lICJzdWRvIiAjKCJyb290IiAwIDQgKHRy YW1wLWRlZmF1bHQgdCkpIG5pbCAjKCJNb2JpbGVDYXQubG9jYWwiIDAgMTUgKHRyYW1wLWRlZmF1 bHQgdCkpIG5pbCAiIiBuaWwpICgodHJhbXAtbG9naW4tcHJvbXB0LXJlZ2V4cCB0cmFtcC1hY3Rp b24tbG9naW4pICh0cmFtcC1wYXNzd29yZC1wcm9tcHQtcmVnZXhwIHRyYW1wLWFjdGlvbi1wYXNz d29yZCkgKHRyYW1wLXdyb25nLXBhc3N3ZC1yZWdleHAgdHJhbXAtYWN0aW9uLXBlcm1pc3Npb24t ZGVuaWVkKSAoc2hlbGwtcHJvbXB0LXBhdHRlcm4gdHJhbXAtYWN0aW9uLXN1Y2NlZWQpICh0cmFt cC1zaGVsbC1wcm9tcHQtcGF0dGVybiB0cmFtcC1hY3Rpb24tc3VjY2VlZCkgKHRyYW1wLXllc25v LXByb21wdC1yZWdleHAgdHJhbXAtYWN0aW9uLXllc25vKSAodHJhbXAteW4tcHJvbXB0LXJlZ2V4 cCB0cmFtcC1hY3Rpb24teW4pICh0cmFtcC10ZXJtaW5hbC1wcm9tcHQtcmVnZXhwIHRyYW1wLWFj dGlvbi10ZXJtaW5hbCkgKHRyYW1wLWFudGlzcG9vZi1yZWdleHAgdHJhbXAtYWN0aW9uLWNvbmZp cm0tbWVzc2FnZSkgKHRyYW1wLXByb2Nlc3MtYWxpdmUtcmVnZXhwIHRyYW1wLWFjdGlvbi1wcm9j ZXNzLWFsaXZlKSkpCiAgKGNhdGNoICd0cmFtcC1hY3Rpb24gKHRyYW1wLXByb2Nlc3Mtb25lLWFj dGlvbiBwcm9jIHZlYyBhY3Rpb25zKSkKICAoc2V0cSBleGl0IChjYXRjaCAndHJhbXAtYWN0aW9u ICh0cmFtcC1wcm9jZXNzLW9uZS1hY3Rpb24gcHJvYyB2ZWMgYWN0aW9ucykpKQogICh3aGlsZSAo bm90IGV4aXQpIChzZXRxIGV4aXQgKGNhdGNoICd0cmFtcC1hY3Rpb24gKHRyYW1wLXByb2Nlc3Mt b25lLWFjdGlvbiBwcm9jIHZlYyBhY3Rpb25zKSkpKQogIChwcm9nbiAod2hpbGUgKG5vdCBleGl0 KSAoc2V0cSBleGl0IChjYXRjaCAndHJhbXAtYWN0aW9uICh0cmFtcC1wcm9jZXNzLW9uZS1hY3Rp b24gcHJvYyB2ZWMgYWN0aW9ucykpKSkpCiAgKHVud2luZC1wcm90ZWN0IChwcm9nbiAod2hpbGUg KG5vdCBleGl0KSAoc2V0cSBleGl0IChjYXRjaCAndHJhbXAtYWN0aW9uICh0cmFtcC1wcm9jZXNz LW9uZS1hY3Rpb24gcHJvYyB2ZWMgYWN0aW9ucykpKSkpIChjYW5jZWwtdGltZXIgLXdpdGgtdGlt ZW91dC10aW1lci0pKQogIChsZXQqICgoLXdpdGgtdGltZW91dC10aW1lci0gKHJ1bi13aXRoLXRp bWVyIHRpbWVvdXQgbmlsICMnKGxhbWJkYSBuaWwgKHRocm93ICd0aW1lb3V0ICd0aW1lb3V0KSkp KSAod2l0aC10aW1lb3V0LXRpbWVycyAoY29ucyAtd2l0aC10aW1lb3V0LXRpbWVyLSB3aXRoLXRp bWVvdXQtdGltZXJzKSkpICh1bndpbmQtcHJvdGVjdCAocHJvZ24gKHdoaWxlIChub3QgZXhpdCkg KHNldHEgZXhpdCAoY2F0Y2ggJ3RyYW1wLWFjdGlvbiAodHJhbXAtcHJvY2Vzcy1vbmUtYWN0aW9u IHByb2MgdmVjIGFjdGlvbnMpKSkpKSAoY2FuY2VsLXRpbWVyIC13aXRoLXRpbWVvdXQtdGltZXIt KSkpCiAgKGNhdGNoICd0aW1lb3V0IChsZXQqICgoLXdpdGgtdGltZW91dC10aW1lci0gKHJ1bi13 aXRoLXRpbWVyIHRpbWVvdXQgbmlsICMnKGxhbWJkYSBuaWwgKHRocm93IC4uLiAuLi4pKSkpICh3 aXRoLXRpbWVvdXQtdGltZXJzIChjb25zIC13aXRoLXRpbWVvdXQtdGltZXItIHdpdGgtdGltZW91 dC10aW1lcnMpKSkgKHVud2luZC1wcm90ZWN0IChwcm9nbiAod2hpbGUgKG5vdCBleGl0KSAoc2V0 cSBleGl0IChjYXRjaCAndHJhbXAtYWN0aW9uICh0cmFtcC1wcm9jZXNzLW9uZS1hY3Rpb24gcHJv YyB2ZWMgYWN0aW9ucykpKSkpIChjYW5jZWwtdGltZXIgLXdpdGgtdGltZW91dC10aW1lci0pKSkp CiAgKGxldCAoKC13aXRoLXRpbWVvdXQtdmFsdWUtIChjYXRjaCAndGltZW91dCAobGV0KiAoKC13 aXRoLXRpbWVvdXQtdGltZXItIChydW4td2l0aC10aW1lciB0aW1lb3V0IG5pbCAuLi4pKSAod2l0 aC10aW1lb3V0LXRpbWVycyAoY29ucyAtd2l0aC10aW1lb3V0LXRpbWVyLSB3aXRoLXRpbWVvdXQt dGltZXJzKSkpICh1bndpbmQtcHJvdGVjdCAocHJvZ24gKHdoaWxlIC4uLiAuLi4pKSAoY2FuY2Vs LXRpbWVyIC13aXRoLXRpbWVvdXQtdGltZXItKSkpKSkpIChpZiAoZXEgLXdpdGgtdGltZW91dC12 YWx1ZS0gJ3RpbWVvdXQpIChwcm9nbiAoc2V0cSBleGl0ICd0aW1lb3V0KSkgLXdpdGgtdGltZW91 dC12YWx1ZS0pKQogIChpZiB0aW1lb3V0IChsZXQgKCgtd2l0aC10aW1lb3V0LXZhbHVlLSAoY2F0 Y2ggJ3RpbWVvdXQgKGxldCogKCgtd2l0aC10aW1lb3V0LXRpbWVyLSAuLi4pICh3aXRoLXRpbWVv dXQtdGltZXJzIC4uLikpICh1bndpbmQtcHJvdGVjdCAocHJvZ24gLi4uKSAoY2FuY2VsLXRpbWVy IC13aXRoLXRpbWVvdXQtdGltZXItKSkpKSkpIChpZiAoZXEgLXdpdGgtdGltZW91dC12YWx1ZS0g J3RpbWVvdXQpIChwcm9nbiAoc2V0cSBleGl0ICd0aW1lb3V0KSkgLXdpdGgtdGltZW91dC12YWx1 ZS0pKSAod2hpbGUgKG5vdCBleGl0KSAoc2V0cSBleGl0IChjYXRjaCAndHJhbXAtYWN0aW9uICh0 cmFtcC1wcm9jZXNzLW9uZS1hY3Rpb24gcHJvYyB2ZWMgYWN0aW9ucykpKSkpCiAgKGxldCAoZXhp dCkgKGlmIHRpbWVvdXQgKGxldCAoKC13aXRoLXRpbWVvdXQtdmFsdWUtIChjYXRjaCAndGltZW91 dCAobGV0KiAoLi4uIC4uLikgKHVud2luZC1wcm90ZWN0IC4uLiAuLi4pKSkpKSAoaWYgKGVxIC13 aXRoLXRpbWVvdXQtdmFsdWUtICd0aW1lb3V0KSAocHJvZ24gKHNldHEgZXhpdCAndGltZW91dCkp IC13aXRoLXRpbWVvdXQtdmFsdWUtKSkgKHdoaWxlIChub3QgZXhpdCkgKHNldHEgZXhpdCAoY2F0 Y2ggJ3RyYW1wLWFjdGlvbiAodHJhbXAtcHJvY2Vzcy1vbmUtYWN0aW9uIHByb2MgdmVjIGFjdGlv bnMpKSkpKSAoc2F2ZS1jdXJyZW50LWJ1ZmZlciAoc2V0LWJ1ZmZlciAodHJhbXAtZ2V0LWNvbm5l Y3Rpb24tYnVmZmVyIHZlYykpICh3aWRlbikgKHRyYW1wLW1lc3NhZ2UgdmVjIDYgIlxuJXMiIChi dWZmZXItc3RyaW5nKSkpIChpZiAoZXEgZXhpdCAnb2spIChjb25kaXRpb24tY2FzZSBuaWwgKHBy b2duIChhbmQgKGZ1bmN0aW9ucCB0cmFtcC1wYXNzd29yZC1zYXZlLWZ1bmN0aW9uKSAoZnVuY2Fs bCB0cmFtcC1wYXNzd29yZC1zYXZlLWZ1bmN0aW9uKSkpIChlcnJvciBuaWwpKSAodHJhbXAtY2xl YXItcGFzc3dkIHZlYykgKGRlbGV0ZS1wcm9jZXNzIHByb2MpICh0cmFtcC1lcnJvci13aXRoLWJ1 ZmZlciAodHJhbXAtZ2V0LWNvbm5lY3Rpb24tYnVmZmVyIHZlYykgdmVjICdmaWxlLWVycm9yIChj b25kICgoZXEgZXhpdCAncGVybWlzc2lvbi1kZW5pZWQpICJQZXJtaXNzaW9uIGRlbmllZCIpICgo ZXEgZXhpdCAnb3V0LW9mLWJhbmQtZmFpbGVkKSAoZm9ybWF0LW1lc3NhZ2UgIkNvcHkgZmFpbGVk LCBzZWUgYnVmZmVyIGAlcycgZm9yIGRldGFpbHMiICh0cmFtcC1nZXQtY29ubmVjdGlvbi1idWZm ZXIgdmVjKSkpICgoZXEgZXhpdCAncHJvY2Vzcy1kaWVkKSAoc3Vic3RpdHV0ZS1jb21tYW5kLWtl eXMgJyJUcmFtcCBmYWlsZWQgdG8gY29ubmVjdC4gIElmIHRoaXMgaGFwcGVucyByZXBlYXRlZC4u LiIpKSAoKGVxIGV4aXQgJ3RpbWVvdXQpIChmb3JtYXQtbWVzc2FnZSAiVGltZW91dCByZWFjaGVk LCBzZWUgYnVmZmVyIGAlcycgZm9yIGRldGFpbHMiICh0cmFtcC1nZXQtY29ubmVjdGlvbi1idWZm ZXIgdmVjKSkpICh0ICJMb2dpbiBmYWlsZWQiKSkpKSkKICAocHJvZ24gKGxldCAoZXhpdCkgKGlm IHRpbWVvdXQgKGxldCAoKC13aXRoLXRpbWVvdXQtdmFsdWUtIChjYXRjaCAndGltZW91dCAobGV0 KiAuLi4gLi4uKSkpKSAoaWYgKGVxIC13aXRoLXRpbWVvdXQtdmFsdWUtICd0aW1lb3V0KSAocHJv Z24gKHNldHEgZXhpdCAndGltZW91dCkpIC13aXRoLXRpbWVvdXQtdmFsdWUtKSkgKHdoaWxlIChu b3QgZXhpdCkgKHNldHEgZXhpdCAoY2F0Y2ggJ3RyYW1wLWFjdGlvbiAodHJhbXAtcHJvY2Vzcy1v bmUtYWN0aW9uIHByb2MgdmVjIGFjdGlvbnMpKSkpKSAoc2F2ZS1jdXJyZW50LWJ1ZmZlciAoc2V0 LWJ1ZmZlciAodHJhbXAtZ2V0LWNvbm5lY3Rpb24tYnVmZmVyIHZlYykpICh3aWRlbikgKHRyYW1w LW1lc3NhZ2UgdmVjIDYgIlxuJXMiIChidWZmZXItc3RyaW5nKSkpIChpZiAoZXEgZXhpdCAnb2sp IChjb25kaXRpb24tY2FzZSBuaWwgKHByb2duIChhbmQgKGZ1bmN0aW9ucCB0cmFtcC1wYXNzd29y ZC1zYXZlLWZ1bmN0aW9uKSAoZnVuY2FsbCB0cmFtcC1wYXNzd29yZC1zYXZlLWZ1bmN0aW9uKSkp IChlcnJvciBuaWwpKSAodHJhbXAtY2xlYXItcGFzc3dkIHZlYykgKGRlbGV0ZS1wcm9jZXNzIHBy b2MpICh0cmFtcC1lcnJvci13aXRoLWJ1ZmZlciAodHJhbXAtZ2V0LWNvbm5lY3Rpb24tYnVmZmVy IHZlYykgdmVjICdmaWxlLWVycm9yIChjb25kICgoZXEgZXhpdCAncGVybWlzc2lvbi1kZW5pZWQp ICJQZXJtaXNzaW9uIGRlbmllZCIpICgoZXEgZXhpdCAnb3V0LW9mLWJhbmQtZmFpbGVkKSAoZm9y bWF0LW1lc3NhZ2UgIkNvcHkgZmFpbGVkLCBzZWUgYnVmZmVyIGAlcycgZm9yIGRldGFpbHMiICh0 cmFtcC1nZXQtY29ubmVjdGlvbi1idWZmZXIgdmVjKSkpICgoZXEgZXhpdCAncHJvY2Vzcy1kaWVk KSAoc3Vic3RpdHV0ZS1jb21tYW5kLWtleXMgJyJUcmFtcCBmYWlsZWQgdG8gY29ubmVjdC4gIElm IHRoaXMgaGFwcGVucyByZXBlYXRlZC4uLiIpKSAoKGVxIGV4aXQgJ3RpbWVvdXQpIChmb3JtYXQt bWVzc2FnZSAiVGltZW91dCByZWFjaGVkLCBzZWUgYnVmZmVyIGAlcycgZm9yIGRldGFpbHMiICh0 cmFtcC1nZXQtY29ubmVjdGlvbi1idWZmZXIgdmVjKSkpICh0ICJMb2dpbiBmYWlsZWQiKSkpKSkg KGlmIChudW1iZXJwIHBvcykgKHByb2duIChzYXZlLWN1cnJlbnQtYnVmZmVyIChzZXQtYnVmZmVy ICh0cmFtcC1nZXQtY29ubmVjdGlvbi1idWZmZXIgdmVjKSkgKGxldCAoKGluaGliaXQtcmVhZC1v bmx5IHQpKSAoZGVsZXRlLXJlZ2lvbiBwb3MgKHBvaW50KSkpKSkpKQogIChwcm9nMSAocHJvZ24g KGxldCAoZXhpdCkgKGlmIHRpbWVvdXQgKGxldCAoKC13aXRoLXRpbWVvdXQtdmFsdWUtIChjYXRj aCAuLi4gLi4uKSkpIChpZiAoZXEgLXdpdGgtdGltZW91dC12YWx1ZS0gJ3RpbWVvdXQpIChwcm9n biAoc2V0cSBleGl0IC4uLikpIC13aXRoLXRpbWVvdXQtdmFsdWUtKSkgKHdoaWxlIChub3QgZXhp dCkgKHNldHEgZXhpdCAoY2F0Y2ggJ3RyYW1wLWFjdGlvbiAodHJhbXAtcHJvY2Vzcy1vbmUtYWN0 aW9uIHByb2MgdmVjIGFjdGlvbnMpKSkpKSAoc2F2ZS1jdXJyZW50LWJ1ZmZlciAoc2V0LWJ1ZmZl ciAodHJhbXAtZ2V0LWNvbm5lY3Rpb24tYnVmZmVyIHZlYykpICh3aWRlbikgKHRyYW1wLW1lc3Nh Z2UgdmVjIDYgIlxuJXMiIChidWZmZXItc3RyaW5nKSkpIChpZiAoZXEgZXhpdCAnb2spIChjb25k aXRpb24tY2FzZSBuaWwgKHByb2duIChhbmQgKGZ1bmN0aW9ucCB0cmFtcC1wYXNzd29yZC1zYXZl LWZ1bmN0aW9uKSAoZnVuY2FsbCB0cmFtcC1wYXNzd29yZC1zYXZlLWZ1bmN0aW9uKSkpIChlcnJv ciBuaWwpKSAodHJhbXAtY2xlYXItcGFzc3dkIHZlYykgKGRlbGV0ZS1wcm9jZXNzIHByb2MpICh0 cmFtcC1lcnJvci13aXRoLWJ1ZmZlciAodHJhbXAtZ2V0LWNvbm5lY3Rpb24tYnVmZmVyIHZlYykg dmVjICdmaWxlLWVycm9yIChjb25kICgoZXEgZXhpdCAuLi4pICJQZXJtaXNzaW9uIGRlbmllZCIp ICgoZXEgZXhpdCAuLi4pIChmb3JtYXQtbWVzc2FnZSAiQ29weSBmYWlsZWQsIHNlZSBidWZmZXIg YCVzJyBmb3IgZGV0YWlscyIgLi4uKSkgKChlcSBleGl0IC4uLikgKHN1YnN0aXR1dGUtY29tbWFu ZC1rZXlzIC4uLikpICgoZXEgZXhpdCAuLi4pIChmb3JtYXQtbWVzc2FnZSAiVGltZW91dCByZWFj aGVkLCBzZWUgYnVmZmVyIGAlcycgZm9yIGRldGFpbHMiIC4uLikpICh0ICJMb2dpbiBmYWlsZWQi KSkpKSkgKGlmIChudW1iZXJwIHBvcykgKHByb2duIChzYXZlLWN1cnJlbnQtYnVmZmVyIChzZXQt YnVmZmVyICh0cmFtcC1nZXQtY29ubmVjdGlvbi1idWZmZXIgdmVjKSkgKGxldCAoKGluaGliaXQt cmVhZC1vbmx5IHQpKSAoZGVsZXRlLXJlZ2lvbiBwb3MgKHBvaW50KSkpKSkpKSAoc2V0cSBjb29r aWUgImRvbmUiKSkKICAodW53aW5kLXByb3RlY3QgKHByb2cxIChwcm9nbiAobGV0IChleGl0KSAo aWYgdGltZW91dCAobGV0ICgoLXdpdGgtdGltZW91dC12YWx1ZS0gLi4uKSkgKGlmIChlcSAtd2l0 aC10aW1lb3V0LXZhbHVlLSAuLi4pIChwcm9nbiAuLi4pIC13aXRoLXRpbWVvdXQtdmFsdWUtKSkg KHdoaWxlIChub3QgZXhpdCkgKHNldHEgZXhpdCAoY2F0Y2ggLi4uIC4uLikpKSkgKHNhdmUtY3Vy cmVudC1idWZmZXIgKHNldC1idWZmZXIgKHRyYW1wLWdldC1jb25uZWN0aW9uLWJ1ZmZlciB2ZWMp KSAod2lkZW4pICh0cmFtcC1tZXNzYWdlIHZlYyA2ICJcbiVzIiAoYnVmZmVyLXN0cmluZykpKSAo aWYgKGVxIGV4aXQgJ29rKSAoY29uZGl0aW9uLWNhc2UgbmlsIChwcm9nbiAoYW5kIC4uLiAuLi4p KSAoZXJyb3IgbmlsKSkgKHRyYW1wLWNsZWFyLXBhc3N3ZCB2ZWMpIChkZWxldGUtcHJvY2VzcyBw cm9jKSAodHJhbXAtZXJyb3Itd2l0aC1idWZmZXIgKHRyYW1wLWdldC1jb25uZWN0aW9uLWJ1ZmZl ciB2ZWMpIHZlYyAnZmlsZS1lcnJvciAoY29uZCAoLi4uICJQZXJtaXNzaW9uIGRlbmllZCIpICgu Li4gLi4uKSAoLi4uIC4uLikgKC4uLiAuLi4pICh0ICJMb2dpbiBmYWlsZWQiKSkpKSkgKGlmIChu dW1iZXJwIHBvcykgKHByb2duIChzYXZlLWN1cnJlbnQtYnVmZmVyIChzZXQtYnVmZmVyICh0cmFt cC1nZXQtY29ubmVjdGlvbi1idWZmZXIgdmVjKSkgKGxldCAoLi4uKSAoZGVsZXRlLXJlZ2lvbiBw b3MgLi4uKSkpKSkpIChzZXRxIGNvb2tpZSAiZG9uZSIpKSAoaWYgdG0gKGNhbmNlbC10aW1lciB0 bSkpICh0cmFtcC1tZXNzYWdlIHByb2MgMyAiJXMuLi4lcyIgIldhaXRpbmcgZm9yIHByb21wdHMg ZnJvbSByZW1vdGUgc2hlbGwiIGNvb2tpZSkpCiAgKGxldCAoKGNvb2tpZSAiZmFpbGVkIikgKHRt IChpZiAoYW5kIHRyYW1wLW1lc3NhZ2Utc2hvdy1tZXNzYWdlICg8PSAzIChtaW4gdHJhbXAtdmVy Ym9zZSAzKSkpIChwcm9nbiAobGV0ICgocHIgLi4uKSkgKGlmIHByIChwcm9nbiAuLi4pKSkpKSkp ICh1bndpbmQtcHJvdGVjdCAocHJvZzEgKHByb2duIChsZXQgKGV4aXQpIChpZiB0aW1lb3V0IChs ZXQgKC4uLikgKGlmIC4uLiAuLi4gLXdpdGgtdGltZW91dC12YWx1ZS0pKSAod2hpbGUgKG5vdCBl eGl0KSAoc2V0cSBleGl0IC4uLikpKSAoc2F2ZS1jdXJyZW50LWJ1ZmZlciAoc2V0LWJ1ZmZlciAo dHJhbXAtZ2V0LWNvbm5lY3Rpb24tYnVmZmVyIHZlYykpICh3aWRlbikgKHRyYW1wLW1lc3NhZ2Ug dmVjIDYgIlxuJXMiIChidWZmZXItc3RyaW5nKSkpIChpZiAoZXEgZXhpdCAnb2spIChjb25kaXRp b24tY2FzZSBuaWwgKHByb2duIC4uLikgKGVycm9yIG5pbCkpICh0cmFtcC1jbGVhci1wYXNzd2Qg dmVjKSAoZGVsZXRlLXByb2Nlc3MgcHJvYykgKHRyYW1wLWVycm9yLXdpdGgtYnVmZmVyICh0cmFt cC1nZXQtY29ubmVjdGlvbi1idWZmZXIgdmVjKSB2ZWMgJ2ZpbGUtZXJyb3IgKGNvbmQgLi4uIC4u LiAuLi4gLi4uIC4uLikpKSkgKGlmIChudW1iZXJwIHBvcykgKHByb2duIChzYXZlLWN1cnJlbnQt YnVmZmVyIChzZXQtYnVmZmVyIC4uLikgKGxldCAuLi4gLi4uKSkpKSkgKHNldHEgY29va2llICJk b25lIikpIChpZiB0bSAoY2FuY2VsLXRpbWVyIHRtKSkgKHRyYW1wLW1lc3NhZ2UgcHJvYyAzICIl cy4uLiVzIiAiV2FpdGluZyBmb3IgcHJvbXB0cyBmcm9tIHJlbW90ZSBzaGVsbCIgY29va2llKSkp CiAgKHByb2duICh0cmFtcC1tZXNzYWdlIHByb2MgMyAiJXMuLi4iICJXYWl0aW5nIGZvciBwcm9t cHRzIGZyb20gcmVtb3RlIHNoZWxsIikgKGxldCAoKGNvb2tpZSAiZmFpbGVkIikgKHRtIChpZiAo YW5kIHRyYW1wLW1lc3NhZ2Utc2hvdy1tZXNzYWdlICg8PSAzIChtaW4gdHJhbXAtdmVyYm9zZSAz KSkpIChwcm9nbiAobGV0ICguLi4pIChpZiBwciAuLi4pKSkpKSkgKHVud2luZC1wcm90ZWN0IChw cm9nMSAocHJvZ24gKGxldCAoZXhpdCkgKGlmIHRpbWVvdXQgKGxldCAuLi4gLi4uKSAod2hpbGUg Li4uIC4uLikpIChzYXZlLWN1cnJlbnQtYnVmZmVyIChzZXQtYnVmZmVyIC4uLikgKHdpZGVuKSAo dHJhbXAtbWVzc2FnZSB2ZWMgNiAiXG4lcyIgLi4uKSkgKGlmIChlcSBleGl0IC4uLikgKGNvbmRp dGlvbi1jYXNlIG5pbCAuLi4gLi4uKSAodHJhbXAtY2xlYXItcGFzc3dkIHZlYykgKGRlbGV0ZS1w cm9jZXNzIHByb2MpICh0cmFtcC1lcnJvci13aXRoLWJ1ZmZlciAuLi4gdmVjIC4uLiAuLi4pKSkg KGlmIChudW1iZXJwIHBvcykgKHByb2duIChzYXZlLWN1cnJlbnQtYnVmZmVyIC4uLiAuLi4pKSkp IChzZXRxIGNvb2tpZSAiZG9uZSIpKSAoaWYgdG0gKGNhbmNlbC10aW1lciB0bSkpICh0cmFtcC1t ZXNzYWdlIHByb2MgMyAiJXMuLi4lcyIgIldhaXRpbmcgZm9yIHByb21wdHMgZnJvbSByZW1vdGUg c2hlbGwiIGNvb2tpZSkpKSkKICAoc2F2ZS1yZXN0cmljdGlvbiAocHJvZ24gKHRyYW1wLW1lc3Nh Z2UgcHJvYyAzICIlcy4uLiIgIldhaXRpbmcgZm9yIHByb21wdHMgZnJvbSByZW1vdGUgc2hlbGwi KSAobGV0ICgoY29va2llICJmYWlsZWQiKSAodG0gKGlmIChhbmQgdHJhbXAtbWVzc2FnZS1zaG93 LW1lc3NhZ2UgKDw9IDMgLi4uKSkgKHByb2duIChsZXQgLi4uIC4uLikpKSkpICh1bndpbmQtcHJv dGVjdCAocHJvZzEgKHByb2duIChsZXQgKGV4aXQpIChpZiB0aW1lb3V0IC4uLiAuLi4pIChzYXZl LWN1cnJlbnQtYnVmZmVyIC4uLiAuLi4gLi4uKSAoaWYgLi4uIC4uLiAuLi4gLi4uIC4uLikpIChp ZiAobnVtYmVycCBwb3MpIChwcm9nbiAuLi4pKSkgKHNldHEgY29va2llICJkb25lIikpIChpZiB0 bSAoY2FuY2VsLXRpbWVyIHRtKSkgKHRyYW1wLW1lc3NhZ2UgcHJvYyAzICIlcy4uLiVzIiAiV2Fp dGluZyBmb3IgcHJvbXB0cyBmcm9tIHJlbW90ZSBzaGVsbCIgY29va2llKSkpKSkKICB0cmFtcC1w cm9jZXNzLWFjdGlvbnMoIzxwcm9jZXNzICp0cmFtcC9zdWRvIHJvb3RATW9iaWxlQ2F0LmxvY2Fs Kj4gKHRyYW1wLWZpbGUtbmFtZSAic3VkbyIgIygicm9vdCIgMCA0ICh0cmFtcC1kZWZhdWx0IHQp KSBuaWwgIygiTW9iaWxlQ2F0LmxvY2FsIiAwIDE1ICh0cmFtcC1kZWZhdWx0IHQpKSBuaWwgIiIg bmlsKSAxICgodHJhbXAtbG9naW4tcHJvbXB0LXJlZ2V4cCB0cmFtcC1hY3Rpb24tbG9naW4pICh0 cmFtcC1wYXNzd29yZC1wcm9tcHQtcmVnZXhwIHRyYW1wLWFjdGlvbi1wYXNzd29yZCkgKHRyYW1w LXdyb25nLXBhc3N3ZC1yZWdleHAgdHJhbXAtYWN0aW9uLXBlcm1pc3Npb24tZGVuaWVkKSAoc2hl bGwtcHJvbXB0LXBhdHRlcm4gdHJhbXAtYWN0aW9uLXN1Y2NlZWQpICh0cmFtcC1zaGVsbC1wcm9t cHQtcGF0dGVybiB0cmFtcC1hY3Rpb24tc3VjY2VlZCkgKHRyYW1wLXllc25vLXByb21wdC1yZWdl eHAgdHJhbXAtYWN0aW9uLXllc25vKSAodHJhbXAteW4tcHJvbXB0LXJlZ2V4cCB0cmFtcC1hY3Rp b24teW4pICh0cmFtcC10ZXJtaW5hbC1wcm9tcHQtcmVnZXhwIHRyYW1wLWFjdGlvbi10ZXJtaW5h bCkgKHRyYW1wLWFudGlzcG9vZi1yZWdleHAgdHJhbXAtYWN0aW9uLWNvbmZpcm0tbWVzc2FnZSkg KHRyYW1wLXByb2Nlc3MtYWxpdmUtcmVnZXhwIHRyYW1wLWFjdGlvbi1wcm9jZXNzLWFsaXZlKSkg MTApCiAgdHJhbXAtbWF5YmUtb3Blbi1jb25uZWN0aW9uKCh0cmFtcC1maWxlLW5hbWUgInN1ZG8i ICMoInJvb3QiIDAgNCAodHJhbXAtZGVmYXVsdCB0KSkgbmlsICMoIk1vYmlsZUNhdC5sb2NhbCIg MCAxNSAodHJhbXAtZGVmYXVsdCB0KSkgbmlsICIiIG5pbCkpCiAgdHJhbXAtc2VuZC1jb21tYW5k KCh0cmFtcC1maWxlLW5hbWUgInN1ZG8iICMoInJvb3QiIDAgNCAodHJhbXAtZGVmYXVsdCB0KSkg bmlsICMoIk1vYmlsZUNhdC5sb2NhbCIgMCAxNSAodHJhbXAtZGVmYXVsdCB0KSkgbmlsICIiIG5p bCkgIygiY2QgfnJvb3QgJiYgcHdkIiA0IDggKHRyYW1wLWRlZmF1bHQgdCkpKQogIHRyYW1wLXNo LWhhbmRsZS1leHBhbmQtZmlsZS1uYW1lKCMoIi9zdWRvOnJvb3RATW9iaWxlQ2F0LmxvY2FsOiIg NiAxMCAodHJhbXAtZGVmYXVsdCB0KSAxMSAyNiAodHJhbXAtZGVmYXVsdCB0KSkgbmlsKQogIGFw cGx5KHRyYW1wLXNoLWhhbmRsZS1leHBhbmQtZmlsZS1uYW1lICgjKCIvc3Vkbzpyb290QE1vYmls ZUNhdC5sb2NhbDoiIDYgMTAgKHRyYW1wLWRlZmF1bHQgdCkgMTEgMjYgKHRyYW1wLWRlZmF1bHQg dCkpIG5pbCkpCiAgdHJhbXAtc2gtZmlsZS1uYW1lLWhhbmRsZXIoZXhwYW5kLWZpbGUtbmFtZSAj KCIvc3Vkbzpyb290QE1vYmlsZUNhdC5sb2NhbDoiIDYgMTAgKHRyYW1wLWRlZmF1bHQgdCkgMTEg MjYgKHRyYW1wLWRlZmF1bHQgdCkpIG5pbCkKICBhcHBseSh0cmFtcC1zaC1maWxlLW5hbWUtaGFu ZGxlciBleHBhbmQtZmlsZS1uYW1lICgjKCIvc3Vkbzpyb290QE1vYmlsZUNhdC5sb2NhbDoiIDYg MTAgKHRyYW1wLWRlZmF1bHQgdCkgMTEgMjYgKHRyYW1wLWRlZmF1bHQgdCkpIG5pbCkpCiAgKGxl dCAoKHRyYW1wLWxvY2tlciB0KSkgKGFwcGx5IGZvcmVpZ24gb3BlcmF0aW9uIGFyZ3MpKQogICh1 bndpbmQtcHJvdGVjdCAobGV0ICgodHJhbXAtbG9ja2VyIHQpKSAoYXBwbHkgZm9yZWlnbiBvcGVy YXRpb24gYXJncykpIChzZXRxIHRyYW1wLWxvY2tlZCB0bCkpCiAgKGxldCAoKHRsIHRyYW1wLWxv Y2tlZCkpIChzZXRxIHRyYW1wLWxvY2tlZCB0KSAodW53aW5kLXByb3RlY3QgKGxldCAoKHRyYW1w LWxvY2tlciB0KSkgKGFwcGx5IGZvcmVpZ24gb3BlcmF0aW9uIGFyZ3MpKSAoc2V0cSB0cmFtcC1s b2NrZWQgdGwpKSkKICAoY2F0Y2ggJ3N1cHByZXNzIChpZiAoYW5kIHRyYW1wLWxvY2tlZCAobm90 IHRyYW1wLWxvY2tlcikpIChwcm9nbiAoc2V0cSB0cmFtcC1sb2NrZWQgbmlsKSAodHJhbXAtZXJy b3IgdiAnZmlsZS1lcnJvciAiRm9yYmlkZGVuIHJlZW50cmFudCBjYWxsIG9mIFRyYW1wIikpKSAo bGV0ICgodGwgdHJhbXAtbG9ja2VkKSkgKHNldHEgdHJhbXAtbG9ja2VkIHQpICh1bndpbmQtcHJv dGVjdCAobGV0ICgodHJhbXAtbG9ja2VyIHQpKSAoYXBwbHkgZm9yZWlnbiBvcGVyYXRpb24gYXJn cykpIChzZXRxIHRyYW1wLWxvY2tlZCB0bCkpKSkKICAoY2F0Y2ggJ25vbi1lc3NlbnRpYWwgKGNh dGNoICdzdXBwcmVzcyAoaWYgKGFuZCB0cmFtcC1sb2NrZWQgKG5vdCB0cmFtcC1sb2NrZXIpKSAo cHJvZ24gKHNldHEgdHJhbXAtbG9ja2VkIG5pbCkgKHRyYW1wLWVycm9yIHYgJ2ZpbGUtZXJyb3Ig IkZvcmJpZGRlbiByZWVudHJhbnQgY2FsbCBvZiBUcmFtcCIpKSkgKGxldCAoKHRsIHRyYW1wLWxv Y2tlZCkpIChzZXRxIHRyYW1wLWxvY2tlZCB0KSAodW53aW5kLXByb3RlY3QgKGxldCAoKHRyYW1w LWxvY2tlciB0KSkgKGFwcGx5IGZvcmVpZ24gb3BlcmF0aW9uIGFyZ3MpKSAoc2V0cSB0cmFtcC1s b2NrZWQgdGwpKSkpKQogIChzZXRxIHJlc3VsdCAoY2F0Y2ggJ25vbi1lc3NlbnRpYWwgKGNhdGNo ICdzdXBwcmVzcyAoaWYgKGFuZCB0cmFtcC1sb2NrZWQgKG5vdCB0cmFtcC1sb2NrZXIpKSAocHJv Z24gKHNldHEgdHJhbXAtbG9ja2VkIG5pbCkgKHRyYW1wLWVycm9yIHYgJ2ZpbGUtZXJyb3IgIkZv cmJpZGRlbiByZWVudHJhbnQgY2FsbCBvZiBUcmFtcCIpKSkgKGxldCAoKHRsIHRyYW1wLWxvY2tl ZCkpIChzZXRxIHRyYW1wLWxvY2tlZCB0KSAodW53aW5kLXByb3RlY3QgKGxldCAoKHRyYW1wLWxv Y2tlciB0KSkgKGFwcGx5IGZvcmVpZ24gb3BlcmF0aW9uIGFyZ3MpKSAoc2V0cSB0cmFtcC1sb2Nr ZWQgdGwpKSkpKSkKICAobGV0ICgoc2YgKHN5bWJvbC1mdW5jdGlvbiBmb3JlaWduKSkpIChpZiAo YXV0b2xvYWRwIHNmKSAocHJvZ24gKGxldCAoKGRlZmF1bHQtZGlyZWN0b3J5ICh0cmFtcC1jb21w YXQtdGVtcG9yYXJ5LWZpbGUtZGlyZWN0b3J5KSkgZmlsZS1uYW1lLWhhbmRsZXItYWxpc3QpIChh dXRvbG9hZC1kby1sb2FkIHNmIGZvcmVpZ24pKSkpIChzZXRxIHJlc3VsdCAoY2F0Y2ggJ25vbi1l c3NlbnRpYWwgKGNhdGNoICdzdXBwcmVzcyAoaWYgKGFuZCB0cmFtcC1sb2NrZWQgKG5vdCB0cmFt cC1sb2NrZXIpKSAocHJvZ24gKHNldHEgdHJhbXAtbG9ja2VkIG5pbCkgKHRyYW1wLWVycm9yIHYg J2ZpbGUtZXJyb3IgIkZvcmJpZGRlbiByZWVudHJhbnQgY2FsbCBvZiBUcmFtcCIpKSkgKGxldCAo KHRsIHRyYW1wLWxvY2tlZCkpIChzZXRxIHRyYW1wLWxvY2tlZCB0KSAodW53aW5kLXByb3RlY3Qg KGxldCAoLi4uKSAoYXBwbHkgZm9yZWlnbiBvcGVyYXRpb24gYXJncykpIChzZXRxIHRyYW1wLWxv Y2tlZCB0bCkpKSkpKSAoY29uZCAoKGVxIHJlc3VsdCAnbm9uLWVzc2VudGlhbCkgKHRyYW1wLW1l c3NhZ2UgdiA1ICJOb24tZXNzZW50aWFsIHJlY2VpdmVkIGluIG9wZXJhdGlvbiAlcyIgKGNvbnMg b3BlcmF0aW9uIGFyZ3MpKSAodHJhbXAtcnVuLXJlYWwtaGFuZGxlciBvcGVyYXRpb24gYXJncykp ICgoZXEgcmVzdWx0ICdzdXBwcmVzcykgKGxldCAodHJhbXAtbWVzc2FnZS1zaG93LW1lc3NhZ2Up ICh0cmFtcC1tZXNzYWdlIHYgMSAiU3VwcHJlc3MgcmVjZWl2ZWQgaW4gb3BlcmF0aW9uICVzIiAo Y29ucyBvcGVyYXRpb24gYXJncykpICh0cmFtcC1jbGVhbnVwLWNvbm5lY3Rpb24gdiB0KSAodHJh bXAtcnVuLXJlYWwtaGFuZGxlciBvcGVyYXRpb24gYXJncykpKSAodCByZXN1bHQpKSkKICAoaWYg Zm9yZWlnbiAobGV0ICgoc2YgKHN5bWJvbC1mdW5jdGlvbiBmb3JlaWduKSkpIChpZiAoYXV0b2xv YWRwIHNmKSAocHJvZ24gKGxldCAoKGRlZmF1bHQtZGlyZWN0b3J5ICh0cmFtcC1jb21wYXQtdGVt cG9yYXJ5LWZpbGUtZGlyZWN0b3J5KSkgZmlsZS1uYW1lLWhhbmRsZXItYWxpc3QpIChhdXRvbG9h ZC1kby1sb2FkIHNmIGZvcmVpZ24pKSkpIChzZXRxIHJlc3VsdCAoY2F0Y2ggJ25vbi1lc3NlbnRp YWwgKGNhdGNoICdzdXBwcmVzcyAoaWYgKGFuZCB0cmFtcC1sb2NrZWQgKG5vdCB0cmFtcC1sb2Nr ZXIpKSAocHJvZ24gKHNldHEgdHJhbXAtbG9ja2VkIG5pbCkgKHRyYW1wLWVycm9yIHYgLi4uICJG b3JiaWRkZW4gcmVlbnRyYW50IGNhbGwgb2YgVHJhbXAiKSkpIChsZXQgKCh0bCB0cmFtcC1sb2Nr ZWQpKSAoc2V0cSB0cmFtcC1sb2NrZWQgdCkgKHVud2luZC1wcm90ZWN0IChsZXQgLi4uIC4uLikg KHNldHEgdHJhbXAtbG9ja2VkIHRsKSkpKSkpIChjb25kICgoZXEgcmVzdWx0ICdub24tZXNzZW50 aWFsKSAodHJhbXAtbWVzc2FnZSB2IDUgIk5vbi1lc3NlbnRpYWwgcmVjZWl2ZWQgaW4gb3BlcmF0 aW9uICVzIiAoY29ucyBvcGVyYXRpb24gYXJncykpICh0cmFtcC1ydW4tcmVhbC1oYW5kbGVyIG9w ZXJhdGlvbiBhcmdzKSkgKChlcSByZXN1bHQgJ3N1cHByZXNzKSAobGV0ICh0cmFtcC1tZXNzYWdl LXNob3ctbWVzc2FnZSkgKHRyYW1wLW1lc3NhZ2UgdiAxICJTdXBwcmVzcyByZWNlaXZlZCBpbiBv cGVyYXRpb24gJXMiIChjb25zIG9wZXJhdGlvbiBhcmdzKSkgKHRyYW1wLWNsZWFudXAtY29ubmVj dGlvbiB2IHQpICh0cmFtcC1ydW4tcmVhbC1oYW5kbGVyIG9wZXJhdGlvbiBhcmdzKSkpICh0IHJl c3VsdCkpKSAoc2V0cSByZXN1bHQgKHRyYW1wLXJ1bi1yZWFsLWhhbmRsZXIgb3BlcmF0aW9uIGFy Z3MpKSAoaWYgKHN0cmluZ3AgcmVzdWx0KSAodHJhbXAtZHJvcC12b2x1bWUtbGV0dGVyIHJlc3Vs dCkgcmVzdWx0KSkKICAodW53aW5kLXByb3RlY3QgKGlmIGZvcmVpZ24gKGxldCAoKHNmIChzeW1i b2wtZnVuY3Rpb24gZm9yZWlnbikpKSAoaWYgKGF1dG9sb2FkcCBzZikgKHByb2duIChsZXQgKChk ZWZhdWx0LWRpcmVjdG9yeSAuLi4pIGZpbGUtbmFtZS1oYW5kbGVyLWFsaXN0KSAoYXV0b2xvYWQt ZG8tbG9hZCBzZiBmb3JlaWduKSkpKSAoc2V0cSByZXN1bHQgKGNhdGNoICdub24tZXNzZW50aWFs IChjYXRjaCAnc3VwcHJlc3MgKGlmIChhbmQgdHJhbXAtbG9ja2VkIC4uLikgKHByb2duIC4uLiAu Li4pKSAobGV0ICguLi4pIChzZXRxIHRyYW1wLWxvY2tlZCB0KSAodW53aW5kLXByb3RlY3QgLi4u IC4uLikpKSkpIChjb25kICgoZXEgcmVzdWx0ICdub24tZXNzZW50aWFsKSAodHJhbXAtbWVzc2Fn ZSB2IDUgIk5vbi1lc3NlbnRpYWwgcmVjZWl2ZWQgaW4gb3BlcmF0aW9uICVzIiAoY29ucyBvcGVy YXRpb24gYXJncykpICh0cmFtcC1ydW4tcmVhbC1oYW5kbGVyIG9wZXJhdGlvbiBhcmdzKSkgKChl cSByZXN1bHQgJ3N1cHByZXNzKSAobGV0ICh0cmFtcC1tZXNzYWdlLXNob3ctbWVzc2FnZSkgKHRy YW1wLW1lc3NhZ2UgdiAxICJTdXBwcmVzcyByZWNlaXZlZCBpbiBvcGVyYXRpb24gJXMiIChjb25z IG9wZXJhdGlvbiBhcmdzKSkgKHRyYW1wLWNsZWFudXAtY29ubmVjdGlvbiB2IHQpICh0cmFtcC1y dW4tcmVhbC1oYW5kbGVyIG9wZXJhdGlvbiBhcmdzKSkpICh0IHJlc3VsdCkpKSAoc2V0cSByZXN1 bHQgKHRyYW1wLXJ1bi1yZWFsLWhhbmRsZXIgb3BlcmF0aW9uIGFyZ3MpKSAoaWYgKHN0cmluZ3Ag cmVzdWx0KSAodHJhbXAtZHJvcC12b2x1bWUtbGV0dGVyIHJlc3VsdCkgcmVzdWx0KSkgKGlmICh0 cmFtcC1maWxlLW5hbWUtZXF1YWwtcCAoY2FyIGN1cnJlbnQtY29ubmVjdGlvbikgKGNhciB0cmFt cC1jdXJyZW50LWNvbm5lY3Rpb24pKSBuaWwgKHNldHEgdHJhbXAtY3VycmVudC1jb25uZWN0aW9u IGN1cnJlbnQtY29ubmVjdGlvbikpKQogIChsZXQgKChjdXJyZW50LWNvbm5lY3Rpb24gdHJhbXAt Y3VycmVudC1jb25uZWN0aW9uKSAoZm9yZWlnbiAodHJhbXAtZmluZC1mb3JlaWduLWZpbGUtbmFt ZS1oYW5kbGVyIGZpbGVuYW1lIG9wZXJhdGlvbikpIChzaWduYWwtaG9vay1mdW5jdGlvbiAjJ3Ry YW1wLXNpZ25hbC1ob29rLWZ1bmN0aW9uKSByZXN1bHQpIChpZiAodHJhbXAtZmlsZS1uYW1lLWVx dWFsLXAgdiAoY2FyIHRyYW1wLWN1cnJlbnQtY29ubmVjdGlvbikpIG5pbCAoc2V0cSB0cmFtcC1j dXJyZW50LWNvbm5lY3Rpb24gKGxpc3QgdikpKSAodW53aW5kLXByb3RlY3QgKGlmIGZvcmVpZ24g KGxldCAoKHNmIChzeW1ib2wtZnVuY3Rpb24gZm9yZWlnbikpKSAoaWYgKGF1dG9sb2FkcCBzZikg KHByb2duIChsZXQgKC4uLiBmaWxlLW5hbWUtaGFuZGxlci1hbGlzdCkgKGF1dG9sb2FkLWRvLWxv YWQgc2YgZm9yZWlnbikpKSkgKHNldHEgcmVzdWx0IChjYXRjaCAnbm9uLWVzc2VudGlhbCAoY2F0 Y2ggJ3N1cHByZXNzIChpZiAuLi4gLi4uKSAobGV0IC4uLiAuLi4gLi4uKSkpKSAoY29uZCAoKGVx IHJlc3VsdCAnbm9uLWVzc2VudGlhbCkgKHRyYW1wLW1lc3NhZ2UgdiA1ICJOb24tZXNzZW50aWFs IHJlY2VpdmVkIGluIG9wZXJhdGlvbiAlcyIgKGNvbnMgb3BlcmF0aW9uIGFyZ3MpKSAodHJhbXAt cnVuLXJlYWwtaGFuZGxlciBvcGVyYXRpb24gYXJncykpICgoZXEgcmVzdWx0ICdzdXBwcmVzcykg KGxldCAodHJhbXAtbWVzc2FnZS1zaG93LW1lc3NhZ2UpICh0cmFtcC1tZXNzYWdlIHYgMSAiU3Vw cHJlc3MgcmVjZWl2ZWQgaW4gb3BlcmF0aW9uICVzIiAuLi4pICh0cmFtcC1jbGVhbnVwLWNvbm5l Y3Rpb24gdiB0KSAodHJhbXAtcnVuLXJlYWwtaGFuZGxlciBvcGVyYXRpb24gYXJncykpKSAodCBy ZXN1bHQpKSkgKHNldHEgcmVzdWx0ICh0cmFtcC1ydW4tcmVhbC1oYW5kbGVyIG9wZXJhdGlvbiBh cmdzKSkgKGlmIChzdHJpbmdwIHJlc3VsdCkgKHRyYW1wLWRyb3Atdm9sdW1lLWxldHRlciByZXN1 bHQpIHJlc3VsdCkpIChpZiAodHJhbXAtZmlsZS1uYW1lLWVxdWFsLXAgKGNhciBjdXJyZW50LWNv bm5lY3Rpb24pIChjYXIgdHJhbXAtY3VycmVudC1jb25uZWN0aW9uKSkgbmlsIChzZXRxIHRyYW1w LWN1cnJlbnQtY29ubmVjdGlvbiBjdXJyZW50LWNvbm5lY3Rpb24pKSkpCiAgKGxldCogKCh2ICh0 cmFtcC1kaXNzZWN0LWZpbGUtbmFtZSBmaWxlbmFtZSkpIChtZXRob2QgKHByb2duIChvciAocHJv Z24gKGFuZCAobWVtcSAuLi4gY2wtc3RydWN0LXRyYW1wLWZpbGUtbmFtZS10YWdzKSB0KSkgKHNp Z25hbCAnd3JvbmctdHlwZS1hcmd1bWVudCAobGlzdCAndHJhbXAtZmlsZS1uYW1lIHYpKSkgKG50 aCAxIHYpKSkgKHVzZXIgKHByb2duIChvciAocHJvZ24gKGFuZCAobWVtcSAuLi4gY2wtc3RydWN0 LXRyYW1wLWZpbGUtbmFtZS10YWdzKSB0KSkgKHNpZ25hbCAnd3JvbmctdHlwZS1hcmd1bWVudCAo bGlzdCAndHJhbXAtZmlsZS1uYW1lIHYpKSkgKG50aCAyIHYpKSkgKGRvbWFpbiAocHJvZ24gKG9y IChwcm9nbiAoYW5kIChtZW1xIC4uLiBjbC1zdHJ1Y3QtdHJhbXAtZmlsZS1uYW1lLXRhZ3MpIHQp KSAoc2lnbmFsICd3cm9uZy10eXBlLWFyZ3VtZW50IChsaXN0ICd0cmFtcC1maWxlLW5hbWUgdikp KSAobnRoIDMgdikpKSAoaG9zdCAocHJvZ24gKG9yIChwcm9nbiAoYW5kIChtZW1xIC4uLiBjbC1z dHJ1Y3QtdHJhbXAtZmlsZS1uYW1lLXRhZ3MpIHQpKSAoc2lnbmFsICd3cm9uZy10eXBlLWFyZ3Vt ZW50IChsaXN0ICd0cmFtcC1maWxlLW5hbWUgdikpKSAobnRoIDQgdikpKSAocG9ydCAocHJvZ24g KG9yIChwcm9nbiAoYW5kIChtZW1xIC4uLiBjbC1zdHJ1Y3QtdHJhbXAtZmlsZS1uYW1lLXRhZ3Mp IHQpKSAoc2lnbmFsICd3cm9uZy10eXBlLWFyZ3VtZW50IChsaXN0ICd0cmFtcC1maWxlLW5hbWUg dikpKSAobnRoIDUgdikpKSAobG9jYWxuYW1lIChwcm9nbiAob3IgKHByb2duIChhbmQgKG1lbXEg Li4uIGNsLXN0cnVjdC10cmFtcC1maWxlLW5hbWUtdGFncykgdCkpIChzaWduYWwgJ3dyb25nLXR5 cGUtYXJndW1lbnQgKGxpc3QgJ3RyYW1wLWZpbGUtbmFtZSB2KSkpIChudGggNiB2KSkpIChob3Ag KHByb2duIChvciAocHJvZ24gKGFuZCAobWVtcSAuLi4gY2wtc3RydWN0LXRyYW1wLWZpbGUtbmFt ZS10YWdzKSB0KSkgKHNpZ25hbCAnd3JvbmctdHlwZS1hcmd1bWVudCAobGlzdCAndHJhbXAtZmls ZS1uYW1lIHYpKSkgKG50aCA3IHYpKSkpIChpZ25vcmUgbWV0aG9kIHVzZXIgZG9tYWluIGhvc3Qg cG9ydCBsb2NhbG5hbWUgaG9wKSAobGV0ICgoY3VycmVudC1jb25uZWN0aW9uIHRyYW1wLWN1cnJl bnQtY29ubmVjdGlvbikgKGZvcmVpZ24gKHRyYW1wLWZpbmQtZm9yZWlnbi1maWxlLW5hbWUtaGFu ZGxlciBmaWxlbmFtZSBvcGVyYXRpb24pKSAoc2lnbmFsLWhvb2stZnVuY3Rpb24gIyd0cmFtcC1z aWduYWwtaG9vay1mdW5jdGlvbikgcmVzdWx0KSAoaWYgKHRyYW1wLWZpbGUtbmFtZS1lcXVhbC1w IHYgKGNhciB0cmFtcC1jdXJyZW50LWNvbm5lY3Rpb24pKSBuaWwgKHNldHEgdHJhbXAtY3VycmVu dC1jb25uZWN0aW9uIChsaXN0IHYpKSkgKHVud2luZC1wcm90ZWN0IChpZiBmb3JlaWduIChsZXQg KChzZiAoc3ltYm9sLWZ1bmN0aW9uIGZvcmVpZ24pKSkgKGlmIChhdXRvbG9hZHAgc2YpIChwcm9n biAobGV0IC4uLiAuLi4pKSkgKHNldHEgcmVzdWx0IChjYXRjaCAnbm9uLWVzc2VudGlhbCAoY2F0 Y2ggLi4uIC4uLiAuLi4pKSkgKGNvbmQgKChlcSByZXN1bHQgLi4uKSAodHJhbXAtbWVzc2FnZSB2 IDUgIk5vbi1lc3NlbnRpYWwgcmVjZWl2ZWQgaW4gb3BlcmF0aW9uICVzIiAuLi4pICh0cmFtcC1y dW4tcmVhbC1oYW5kbGVyIG9wZXJhdGlvbiBhcmdzKSkgKChlcSByZXN1bHQgLi4uKSAobGV0IC4u LiAuLi4gLi4uIC4uLikpICh0IHJlc3VsdCkpKSAoc2V0cSByZXN1bHQgKHRyYW1wLXJ1bi1yZWFs LWhhbmRsZXIgb3BlcmF0aW9uIGFyZ3MpKSAoaWYgKHN0cmluZ3AgcmVzdWx0KSAodHJhbXAtZHJv cC12b2x1bWUtbGV0dGVyIHJlc3VsdCkgcmVzdWx0KSkgKGlmICh0cmFtcC1maWxlLW5hbWUtZXF1 YWwtcCAoY2FyIGN1cnJlbnQtY29ubmVjdGlvbikgKGNhciB0cmFtcC1jdXJyZW50LWNvbm5lY3Rp b24pKSBuaWwgKHNldHEgdHJhbXAtY3VycmVudC1jb25uZWN0aW9uIGN1cnJlbnQtY29ubmVjdGlv bikpKSkpCiAgKHByb2duIChzZXRxIGZpbGVuYW1lICh0cmFtcC1yZXBsYWNlLWVudmlyb25tZW50 LXZhcmlhYmxlcyBmaWxlbmFtZSkpIChsZXQqICgodiAodHJhbXAtZGlzc2VjdC1maWxlLW5hbWUg ZmlsZW5hbWUpKSAobWV0aG9kIChwcm9nbiAob3IgKHByb2duIChhbmQgLi4uIHQpKSAoc2lnbmFs ICd3cm9uZy10eXBlLWFyZ3VtZW50IChsaXN0IC4uLiB2KSkpIChudGggMSB2KSkpICh1c2VyIChw cm9nbiAob3IgKHByb2duIChhbmQgLi4uIHQpKSAoc2lnbmFsICd3cm9uZy10eXBlLWFyZ3VtZW50 IChsaXN0IC4uLiB2KSkpIChudGggMiB2KSkpIChkb21haW4gKHByb2duIChvciAocHJvZ24gKGFu ZCAuLi4gdCkpIChzaWduYWwgJ3dyb25nLXR5cGUtYXJndW1lbnQgKGxpc3QgLi4uIHYpKSkgKG50 aCAzIHYpKSkgKGhvc3QgKHByb2duIChvciAocHJvZ24gKGFuZCAuLi4gdCkpIChzaWduYWwgJ3dy b25nLXR5cGUtYXJndW1lbnQgKGxpc3QgLi4uIHYpKSkgKG50aCA0IHYpKSkgKHBvcnQgKHByb2du IChvciAocHJvZ24gKGFuZCAuLi4gdCkpIChzaWduYWwgJ3dyb25nLXR5cGUtYXJndW1lbnQgKGxp c3QgLi4uIHYpKSkgKG50aCA1IHYpKSkgKGxvY2FsbmFtZSAocHJvZ24gKG9yIChwcm9nbiAoYW5k IC4uLiB0KSkgKHNpZ25hbCAnd3JvbmctdHlwZS1hcmd1bWVudCAobGlzdCAuLi4gdikpKSAobnRo IDYgdikpKSAoaG9wIChwcm9nbiAob3IgKHByb2duIChhbmQgLi4uIHQpKSAoc2lnbmFsICd3cm9u Zy10eXBlLWFyZ3VtZW50IChsaXN0IC4uLiB2KSkpIChudGggNyB2KSkpKSAoaWdub3JlIG1ldGhv ZCB1c2VyIGRvbWFpbiBob3N0IHBvcnQgbG9jYWxuYW1lIGhvcCkgKGxldCAoKGN1cnJlbnQtY29u bmVjdGlvbiB0cmFtcC1jdXJyZW50LWNvbm5lY3Rpb24pIChmb3JlaWduICh0cmFtcC1maW5kLWZv cmVpZ24tZmlsZS1uYW1lLWhhbmRsZXIgZmlsZW5hbWUgb3BlcmF0aW9uKSkgKHNpZ25hbC1ob29r LWZ1bmN0aW9uICMndHJhbXAtc2lnbmFsLWhvb2stZnVuY3Rpb24pIHJlc3VsdCkgKGlmICh0cmFt cC1maWxlLW5hbWUtZXF1YWwtcCB2IChjYXIgdHJhbXAtY3VycmVudC1jb25uZWN0aW9uKSkgbmls IChzZXRxIHRyYW1wLWN1cnJlbnQtY29ubmVjdGlvbiAobGlzdCB2KSkpICh1bndpbmQtcHJvdGVj dCAoaWYgZm9yZWlnbiAobGV0ICgoc2YgLi4uKSkgKGlmIChhdXRvbG9hZHAgc2YpIChwcm9nbiAu Li4pKSAoc2V0cSByZXN1bHQgKGNhdGNoIC4uLiAuLi4pKSAoY29uZCAoLi4uIC4uLiAuLi4pICgu Li4gLi4uKSAodCByZXN1bHQpKSkgKHNldHEgcmVzdWx0ICh0cmFtcC1ydW4tcmVhbC1oYW5kbGVy IG9wZXJhdGlvbiBhcmdzKSkgKGlmIChzdHJpbmdwIHJlc3VsdCkgKHRyYW1wLWRyb3Atdm9sdW1l LWxldHRlciByZXN1bHQpIHJlc3VsdCkpIChpZiAodHJhbXAtZmlsZS1uYW1lLWVxdWFsLXAgKGNh ciBjdXJyZW50LWNvbm5lY3Rpb24pIChjYXIgdHJhbXAtY3VycmVudC1jb25uZWN0aW9uKSkgbmls IChzZXRxIHRyYW1wLWN1cnJlbnQtY29ubmVjdGlvbiBjdXJyZW50LWNvbm5lY3Rpb24pKSkpKSkK ICAodW53aW5kLXByb3RlY3QgKHByb2duIChzZXRxIGZpbGVuYW1lICh0cmFtcC1yZXBsYWNlLWVu dmlyb25tZW50LXZhcmlhYmxlcyBmaWxlbmFtZSkpIChsZXQqICgodiAodHJhbXAtZGlzc2VjdC1m aWxlLW5hbWUgZmlsZW5hbWUpKSAobWV0aG9kIChwcm9nbiAob3IgKHByb2duIC4uLikgKHNpZ25h bCAuLi4gLi4uKSkgKG50aCAxIHYpKSkgKHVzZXIgKHByb2duIChvciAocHJvZ24gLi4uKSAoc2ln bmFsIC4uLiAuLi4pKSAobnRoIDIgdikpKSAoZG9tYWluIChwcm9nbiAob3IgKHByb2duIC4uLikg KHNpZ25hbCAuLi4gLi4uKSkgKG50aCAzIHYpKSkgKGhvc3QgKHByb2duIChvciAocHJvZ24gLi4u KSAoc2lnbmFsIC4uLiAuLi4pKSAobnRoIDQgdikpKSAocG9ydCAocHJvZ24gKG9yIChwcm9nbiAu Li4pIChzaWduYWwgLi4uIC4uLikpIChudGggNSB2KSkpIChsb2NhbG5hbWUgKHByb2duIChvciAo cHJvZ24gLi4uKSAoc2lnbmFsIC4uLiAuLi4pKSAobnRoIDYgdikpKSAoaG9wIChwcm9nbiAob3Ig KHByb2duIC4uLikgKHNpZ25hbCAuLi4gLi4uKSkgKG50aCA3IHYpKSkpIChpZ25vcmUgbWV0aG9k IHVzZXIgZG9tYWluIGhvc3QgcG9ydCBsb2NhbG5hbWUgaG9wKSAobGV0ICgoY3VycmVudC1jb25u ZWN0aW9uIHRyYW1wLWN1cnJlbnQtY29ubmVjdGlvbikgKGZvcmVpZ24gKHRyYW1wLWZpbmQtZm9y ZWlnbi1maWxlLW5hbWUtaGFuZGxlciBmaWxlbmFtZSBvcGVyYXRpb24pKSAoc2lnbmFsLWhvb2st ZnVuY3Rpb24gIyd0cmFtcC1zaWduYWwtaG9vay1mdW5jdGlvbikgcmVzdWx0KSAoaWYgKHRyYW1w LWZpbGUtbmFtZS1lcXVhbC1wIHYgKGNhciB0cmFtcC1jdXJyZW50LWNvbm5lY3Rpb24pKSBuaWwg KHNldHEgdHJhbXAtY3VycmVudC1jb25uZWN0aW9uIChsaXN0IHYpKSkgKHVud2luZC1wcm90ZWN0 IChpZiBmb3JlaWduIChsZXQgKC4uLikgKGlmIC4uLiAuLi4pIChzZXRxIHJlc3VsdCAuLi4pIChj b25kIC4uLiAuLi4gLi4uKSkgKHNldHEgcmVzdWx0ICh0cmFtcC1ydW4tcmVhbC1oYW5kbGVyIG9w ZXJhdGlvbiBhcmdzKSkgKGlmIChzdHJpbmdwIHJlc3VsdCkgKHRyYW1wLWRyb3Atdm9sdW1lLWxl dHRlciByZXN1bHQpIHJlc3VsdCkpIChpZiAodHJhbXAtZmlsZS1uYW1lLWVxdWFsLXAgKGNhciBj dXJyZW50LWNvbm5lY3Rpb24pIChjYXIgdHJhbXAtY3VycmVudC1jb25uZWN0aW9uKSkgbmlsIChz ZXRxIHRyYW1wLWN1cnJlbnQtY29ubmVjdGlvbiBjdXJyZW50LWNvbm5lY3Rpb24pKSkpKSkgKHNl dC1tYXRjaC1kYXRhIHNhdmUtbWF0Y2gtZGF0YS1pbnRlcm5hbCAnZXZhcG9yYXRlKSkKICAobGV0 ICgoc2F2ZS1tYXRjaC1kYXRhLWludGVybmFsIChtYXRjaC1kYXRhKSkpICh1bndpbmQtcHJvdGVj dCAocHJvZ24gKHNldHEgZmlsZW5hbWUgKHRyYW1wLXJlcGxhY2UtZW52aXJvbm1lbnQtdmFyaWFi bGVzIGZpbGVuYW1lKSkgKGxldCogKCh2ICh0cmFtcC1kaXNzZWN0LWZpbGUtbmFtZSBmaWxlbmFt ZSkpIChtZXRob2QgKHByb2duIChvciAuLi4gLi4uKSAobnRoIDEgdikpKSAodXNlciAocHJvZ24g KG9yIC4uLiAuLi4pIChudGggMiB2KSkpIChkb21haW4gKHByb2duIChvciAuLi4gLi4uKSAobnRo IDMgdikpKSAoaG9zdCAocHJvZ24gKG9yIC4uLiAuLi4pIChudGggNCB2KSkpIChwb3J0IChwcm9n biAob3IgLi4uIC4uLikgKG50aCA1IHYpKSkgKGxvY2FsbmFtZSAocHJvZ24gKG9yIC4uLiAuLi4p IChudGggNiB2KSkpIChob3AgKHByb2duIChvciAuLi4gLi4uKSAobnRoIDcgdikpKSkgKGlnbm9y ZSBtZXRob2QgdXNlciBkb21haW4gaG9zdCBwb3J0IGxvY2FsbmFtZSBob3ApIChsZXQgKChjdXJy ZW50LWNvbm5lY3Rpb24gdHJhbXAtY3VycmVudC1jb25uZWN0aW9uKSAoZm9yZWlnbiAodHJhbXAt ZmluZC1mb3JlaWduLWZpbGUtbmFtZS1oYW5kbGVyIGZpbGVuYW1lIG9wZXJhdGlvbikpIChzaWdu YWwtaG9vay1mdW5jdGlvbiAjJ3RyYW1wLXNpZ25hbC1ob29rLWZ1bmN0aW9uKSByZXN1bHQpIChp ZiAodHJhbXAtZmlsZS1uYW1lLWVxdWFsLXAgdiAoY2FyIHRyYW1wLWN1cnJlbnQtY29ubmVjdGlv bikpIG5pbCAoc2V0cSB0cmFtcC1jdXJyZW50LWNvbm5lY3Rpb24gKGxpc3QgdikpKSAodW53aW5k LXByb3RlY3QgKGlmIGZvcmVpZ24gKGxldCAuLi4gLi4uIC4uLiAuLi4pIChzZXRxIHJlc3VsdCAu Li4pIChpZiAuLi4gLi4uIHJlc3VsdCkpIChpZiAodHJhbXAtZmlsZS1uYW1lLWVxdWFsLXAgLi4u IC4uLikgbmlsIChzZXRxIHRyYW1wLWN1cnJlbnQtY29ubmVjdGlvbiBjdXJyZW50LWNvbm5lY3Rp b24pKSkpKSkgKHNldC1tYXRjaC1kYXRhIHNhdmUtbWF0Y2gtZGF0YS1pbnRlcm5hbCAnZXZhcG9y YXRlKSkpCiAgKGlmICh0cmFtcC10cmFtcC1maWxlLXAgZmlsZW5hbWUpIChsZXQgKChzYXZlLW1h dGNoLWRhdGEtaW50ZXJuYWwgKG1hdGNoLWRhdGEpKSkgKHVud2luZC1wcm90ZWN0IChwcm9nbiAo c2V0cSBmaWxlbmFtZSAodHJhbXAtcmVwbGFjZS1lbnZpcm9ubWVudC12YXJpYWJsZXMgZmlsZW5h bWUpKSAobGV0KiAoKHYgKHRyYW1wLWRpc3NlY3QtZmlsZS1uYW1lIGZpbGVuYW1lKSkgKG1ldGhv ZCAocHJvZ24gLi4uIC4uLikpICh1c2VyIChwcm9nbiAuLi4gLi4uKSkgKGRvbWFpbiAocHJvZ24g Li4uIC4uLikpIChob3N0IChwcm9nbiAuLi4gLi4uKSkgKHBvcnQgKHByb2duIC4uLiAuLi4pKSAo bG9jYWxuYW1lIChwcm9nbiAuLi4gLi4uKSkgKGhvcCAocHJvZ24gLi4uIC4uLikpKSAoaWdub3Jl IG1ldGhvZCB1c2VyIGRvbWFpbiBob3N0IHBvcnQgbG9jYWxuYW1lIGhvcCkgKGxldCAoKGN1cnJl bnQtY29ubmVjdGlvbiB0cmFtcC1jdXJyZW50LWNvbm5lY3Rpb24pIChmb3JlaWduIC4uLikgKHNp Z25hbC1ob29rLWZ1bmN0aW9uIC4uLikgcmVzdWx0KSAoaWYgKHRyYW1wLWZpbGUtbmFtZS1lcXVh bC1wIHYgLi4uKSBuaWwgKHNldHEgdHJhbXAtY3VycmVudC1jb25uZWN0aW9uIC4uLikpICh1bndp bmQtcHJvdGVjdCAoaWYgZm9yZWlnbiAuLi4gLi4uIC4uLikgKGlmIC4uLiBuaWwgLi4uKSkpKSkg KHNldC1tYXRjaC1kYXRhIHNhdmUtbWF0Y2gtZGF0YS1pbnRlcm5hbCAnZXZhcG9yYXRlKSkpICh0 cmFtcC1ydW4tcmVhbC1oYW5kbGVyIG9wZXJhdGlvbiBhcmdzKSkKICAobGV0ICgoZmlsZW5hbWUg KGFwcGx5ICMndHJhbXAtZmlsZS1uYW1lLWZvci1vcGVyYXRpb24gb3BlcmF0aW9uIGFyZ3MpKSAo bm9uLWVzc2VudGlhbCAob3Igbm9uLWVzc2VudGlhbCAoZXEgb3BlcmF0aW9uICdmaWxlLXJlbW90 ZS1wKSkpKSAoaWYgKHRyYW1wLXRyYW1wLWZpbGUtcCBmaWxlbmFtZSkgKGxldCAoKHNhdmUtbWF0 Y2gtZGF0YS1pbnRlcm5hbCAobWF0Y2gtZGF0YSkpKSAodW53aW5kLXByb3RlY3QgKHByb2duIChz ZXRxIGZpbGVuYW1lICh0cmFtcC1yZXBsYWNlLWVudmlyb25tZW50LXZhcmlhYmxlcyBmaWxlbmFt ZSkpIChsZXQqICgodiAuLi4pIChtZXRob2QgLi4uKSAodXNlciAuLi4pIChkb21haW4gLi4uKSAo aG9zdCAuLi4pIChwb3J0IC4uLikgKGxvY2FsbmFtZSAuLi4pIChob3AgLi4uKSkgKGlnbm9yZSBt ZXRob2QgdXNlciBkb21haW4gaG9zdCBwb3J0IGxvY2FsbmFtZSBob3ApIChsZXQgKC4uLiAuLi4g Li4uIHJlc3VsdCkgKGlmIC4uLiBuaWwgLi4uKSAodW53aW5kLXByb3RlY3QgLi4uIC4uLikpKSkg KHNldC1tYXRjaC1kYXRhIHNhdmUtbWF0Y2gtZGF0YS1pbnRlcm5hbCAnZXZhcG9yYXRlKSkpICh0 cmFtcC1ydW4tcmVhbC1oYW5kbGVyIG9wZXJhdGlvbiBhcmdzKSkpCiAgdHJhbXAtZmlsZS1uYW1l LWhhbmRsZXIoZXhwYW5kLWZpbGUtbmFtZSAjKCIvc3Vkbzpyb290QE1vYmlsZUNhdC5sb2NhbDoi IDYgMTAgKHRyYW1wLWRlZmF1bHQgdCkgMTEgMjYgKHRyYW1wLWRlZmF1bHQgdCkpIG5pbCkKICBm aWxlLWV4aXN0cy1wKCMoIi9zdWRvOnJvb3RATW9iaWxlQ2F0LmxvY2FsOiIgNiAxMCAodHJhbXAt ZGVmYXVsdCB0KSAxMSAyNiAodHJhbXAtZGVmYXVsdCB0KSkpCiAgY29tcGxldGlvbi1maWxlLW5h bWUtdGFibGUoIygiL3N1ZG86cm9vdEBNb2JpbGVDYXQubG9jYWw6IiA2IDEwICh0cmFtcC1kZWZh dWx0IHQpIDExIDI2ICh0cmFtcC1kZWZhdWx0IHQpKSBmaWxlLWV4aXN0cy1wIGxhbWJkYSkKICB0 ZXN0LWNvbXBsZXRpb24oIygiL3N1ZG86cm9vdEBNb2JpbGVDYXQubG9jYWw6IiA2IDEwICh0cmFt cC1kZWZhdWx0IHQpIDExIDI2ICh0cmFtcC1kZWZhdWx0IHQpKSBjb21wbGV0aW9uLWZpbGUtbmFt ZS10YWJsZSBmaWxlLWV4aXN0cy1wKQogIGNvbXBsZXRpb24tLWZpbGUtbmFtZS10YWJsZSgiL3N1 ZG86OiIgZmlsZS1leGlzdHMtcCBsYW1iZGEpCiAgY29tcGxldGUtd2l0aC1hY3Rpb24obGFtYmRh IGNvbXBsZXRpb24tLWZpbGUtbmFtZS10YWJsZSAiL3N1ZG86OiIgZmlsZS1leGlzdHMtcCkKICAj Zihjb21waWxlZC1mdW5jdGlvbiAodGFibGUpICM8Ynl0ZWNvZGUgMHg0MTJlZjU0NT4pKGNvbXBs ZXRpb24tLWZpbGUtbmFtZS10YWJsZSkKICBjb21wbGV0aW9uLS1zb21lKCNmKGNvbXBpbGVkLWZ1 bmN0aW9uICh0YWJsZSkgIzxieXRlY29kZSAweDQxMmVmNTQ1PikgKGNvbXBsZXRpb24tLWVtYmVk ZGVkLWVudnZhci10YWJsZSBjb21wbGV0aW9uLS1maWxlLW5hbWUtdGFibGUpKQogIHJlYWQtZmls ZS1uYW1lLWludGVybmFsKCIvc3Vkbzo6IiBmaWxlLWV4aXN0cy1wIGxhbWJkYSkKICB0ZXN0LWNv bXBsZXRpb24oIi9zdWRvOjoiIHJlYWQtZmlsZS1uYW1lLWludGVybmFsIGZpbGUtZXhpc3RzLXAp CiAgY29tcGxldGlvbi0tY29tcGxldGUtYW5kLWV4aXQoMTIgMTkgZXhpdC1taW5pYnVmZmVyICNm KGNvbXBpbGVkLWZ1bmN0aW9uICgpICM8Ynl0ZWNvZGUgMHg0MTJlZjYwNT4pKQogIGNvbXBsZXRp b24tY29tcGxldGUtYW5kLWV4aXQoMTIgMTkgZXhpdC1taW5pYnVmZmVyKQogIG1pbmlidWZmZXIt Y29tcGxldGUtYW5kLWV4aXQoKQogIGZ1bmNhbGwtaW50ZXJhY3RpdmVseShtaW5pYnVmZmVyLWNv bXBsZXRlLWFuZC1leGl0KQogIGNhbGwtaW50ZXJhY3RpdmVseShtaW5pYnVmZmVyLWNvbXBsZXRl LWFuZC1leGl0IG5pbCBuaWwpCiAgY29tbWFuZC1leGVjdXRlKG1pbmlidWZmZXItY29tcGxldGUt YW5kLWV4aXQpCiAgcmVhZC1mcm9tLW1pbmlidWZmZXIoIkZpbmQgZmlsZTogIiAiLyIgKGtleW1h cCAoa2V5bWFwICgzMikpIGtleW1hcCAoMTAgLiBtaW5pYnVmZmVyLWNvbXBsZXRlLWFuZC1leGl0 KSAoMTMgLiBtaW5pYnVmZmVyLWNvbXBsZXRlLWFuZC1leGl0KSBrZXltYXAgKG1lbnUtYmFyIGtl eW1hcCAobWluaWJ1ZiAiTWluaWJ1ZiIga2V5bWFwICh0YWIgbWVudS1pdGVtICJDb21wbGV0ZSIg bWluaWJ1ZmZlci1jb21wbGV0ZSA6aGVscCAiQ29tcGxldGUgYXMgZmFyIGFzIHBvc3NpYmxlIikg KHNwYWNlIG1lbnUtaXRlbSAiQ29tcGxldGUgV29yZCIgbWluaWJ1ZmZlci1jb21wbGV0ZS13b3Jk IDpoZWxwICJDb21wbGV0ZSBhdCBtb3N0IG9uZSB3b3JkIikgKDYzIG1lbnUtaXRlbSAiTGlzdCBD b21wbGV0aW9ucyIgbWluaWJ1ZmZlci1jb21wbGV0aW9uLWhlbHAgOmhlbHAgIkRpc3BsYXkgYWxs IHBvc3NpYmxlIGNvbXBsZXRpb25zIikgIk1pbmlidWYiKSkgKDI3IGtleW1hcCAoMTE4IC4gc3dp dGNoLXRvLWNvbXBsZXRpb25zKSkgKHByaW9yIC4gc3dpdGNoLXRvLWNvbXBsZXRpb25zKSAoNjMg LiBtaW5pYnVmZmVyLWNvbXBsZXRpb24taGVscCkgKDMyIC4gbWluaWJ1ZmZlci1jb21wbGV0ZS13 b3JkKSAoOSAuIG1pbmlidWZmZXItY29tcGxldGUpIGtleW1hcCAobWVudS1iYXIga2V5bWFwICht aW5pYnVmICJNaW5pYnVmIiBrZXltYXAgKHByZXZpb3VzIG1lbnUtaXRlbSAiUHJldmlvdXMgSGlz dG9yeSBJdGVtIiBwcmV2aW91cy1oaXN0b3J5LWVsZW1lbnQgOmhlbHAgIlB1dCBwcmV2aW91cyBt aW5pYnVmZmVyIGhpc3RvcnkgZWxlbWVudCBpbiB0aGUgbWluLi4uIikgKG5leHQgbWVudS1pdGVt ICJOZXh0IEhpc3RvcnkgSXRlbSIgbmV4dC1oaXN0b3J5LWVsZW1lbnQgOmhlbHAgIlB1dCBuZXh0 IG1pbmlidWZmZXIgaGlzdG9yeSBlbGVtZW50IGluIHRoZSBtaW5pYnVmLi4uIikgKGlzZWFyY2gt YmFja3dhcmQgbWVudS1pdGVtICJJc2VhcmNoIEhpc3RvcnkgQmFja3dhcmQiIGlzZWFyY2gtYmFj a3dhcmQgOmhlbHAgIkluY3JlbWVudGFsbHkgc2VhcmNoIG1pbmlidWZmZXIgaGlzdG9yeSBiYWNr d2FyZCIpIChpc2VhcmNoLWZvcndhcmQgbWVudS1pdGVtICJJc2VhcmNoIEhpc3RvcnkgRm9yd2Fy ZCIgaXNlYXJjaC1mb3J3YXJkIDpoZWxwICJJbmNyZW1lbnRhbGx5IHNlYXJjaCBtaW5pYnVmZmVy IGhpc3RvcnkgZm9yd2FyZCIpIChyZXR1cm4gbWVudS1pdGVtICJFbnRlciIgZXhpdC1taW5pYnVm ZmVyIDprZXktc2VxdWVuY2UgIlwxNSIgOmhlbHAgIlRlcm1pbmF0ZSBpbnB1dCBhbmQgZXhpdCBt aW5pYnVmZmVyIikgKHF1aXQgbWVudS1pdGVtICJRdWl0IiBhYm9ydC1yZWN1cnNpdmUtZWRpdCA6 aGVscCAiQWJvcnQgaW5wdXQgYW5kIGV4aXQgbWluaWJ1ZmZlciIpICJNaW5pYnVmIikpICgxMCAu IGV4aXQtbWluaWJ1ZmZlcikgKDEzIC4gZXhpdC1taW5pYnVmZmVyKSAoNyAuIGFib3J0LXJlY3Vy c2l2ZS1lZGl0KSAoQy10YWIgLiBmaWxlLWNhY2hlLW1pbmlidWZmZXItY29tcGxldGUpICg5IC4g c2VsZi1pbnNlcnQtY29tbWFuZCkgKFhGODZCYWNrIC4gcHJldmlvdXMtaGlzdG9yeS1lbGVtZW50 KSAodXAgLiBwcmV2aW91cy1saW5lLW9yLWhpc3RvcnktZWxlbWVudCkgKHByaW9yIC4gcHJldmlv dXMtaGlzdG9yeS1lbGVtZW50KSAoWEY4NkZvcndhcmQgLiBuZXh0LWhpc3RvcnktZWxlbWVudCkg KGRvd24gLiBuZXh0LWxpbmUtb3ItaGlzdG9yeS1lbGVtZW50KSAobmV4dCAuIG5leHQtaGlzdG9y eS1lbGVtZW50KSAoMjcga2V5bWFwICg2MCAuIG1pbmlidWZmZXItYmVnaW5uaW5nLW9mLWJ1ZmZl cikgKDExNCAuIHByZXZpb3VzLW1hdGNoaW5nLWhpc3RvcnktZWxlbWVudCkgKDExNSAuIG5leHQt bWF0Y2hpbmctaGlzdG9yeS1lbGVtZW50KSAoMTEyIC4gcHJldmlvdXMtaGlzdG9yeS1lbGVtZW50 KSAoMTEwIC4gbmV4dC1oaXN0b3J5LWVsZW1lbnQpKSkgbmlsIGZpbGUtbmFtZS1oaXN0b3J5ICIv IiBuaWwpCiAgY29tcGxldGluZy1yZWFkLWRlZmF1bHQoIkZpbmQgZmlsZTogIiByZWFkLWZpbGUt bmFtZS1pbnRlcm5hbCBmaWxlLWV4aXN0cy1wIGNvbmZpcm0tYWZ0ZXItY29tcGxldGlvbiAiLyIg ZmlsZS1uYW1lLWhpc3RvcnkgIi8iIG5pbCkKICBjb21wbGV0aW5nLXJlYWQoIkZpbmQgZmlsZTog IiByZWFkLWZpbGUtbmFtZS1pbnRlcm5hbCBmaWxlLWV4aXN0cy1wIGNvbmZpcm0tYWZ0ZXItY29t cGxldGlvbiAiLyIgZmlsZS1uYW1lLWhpc3RvcnkgIi8iKQogIHJlYWQtZmlsZS1uYW1lLWRlZmF1 bHQoIkZpbmQgZmlsZTogIiBuaWwgIi8iIGNvbmZpcm0tYWZ0ZXItY29tcGxldGlvbiBuaWwgbmls KQogIHJlYWQtZmlsZS1uYW1lKCJGaW5kIGZpbGU6ICIgbmlsICIvIiBjb25maXJtLWFmdGVyLWNv bXBsZXRpb24pCiAgZmluZC1maWxlLXJlYWQtYXJncygiRmluZCBmaWxlOiAiIGNvbmZpcm0tYWZ0 ZXItY29tcGxldGlvbikKICBieXRlLWNvZGUoIlwzMDBcMzAxXDMwMiBcIlwyMDciIFtmaW5kLWZp bGUtcmVhZC1hcmdzICJGaW5kIGZpbGU6ICIgY29uZmlybS1ub25leGlzdGVudC1maWxlLW9yLWJ1 ZmZlcl0gMykKICBjYWxsLWludGVyYWN0aXZlbHkoZmluZC1maWxlIG5pbCBuaWwpCiAgY29tbWFu ZC1leGVjdXRlKGZpbmQtZmlsZSkK --000000000000737f7b059e2d333a Content-Type: text/plain; charset="UTF-8"; name="messages.txt" Content-Disposition: attachment; filename="messages.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k6fnv7xn0 TG9hZGluZyAvb3B0L2xvY2FsL3NoYXJlL2VtYWNzL3NpdGUtbGlzcC9zdWJkaXJzLmVsIChzb3Vy Y2UpLi4uZG9uZQpGb3IgaW5mb3JtYXRpb24gYWJvdXQgR05VIEVtYWNzIGFuZCB0aGUgR05VIHN5 c3RlbSwgdHlwZSBDLWggQy1hLgpXYWl0aW5nIGZvciBnaXQuLi4KRXJyb3IgcnVubmluZyBnaXQg cmV2LXBhcnNlIC0tYWJicmV2LXJlZjogKGZpbGUtbWlzc2luZyAiU2VhcmNoaW5nIGZvciBwcm9n cmFtIiAiTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeSIgImdpdCIpCldhaXRpbmcgZm9yIGdpdC4u LgpFcnJvciBydW5uaW5nIGdpdCByZXYtcGFyc2U6IChmaWxlLW1pc3NpbmcgIlNlYXJjaGluZyBm b3IgcHJvZ3JhbSIgIk5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkiICJnaXQiKQpUcmFtcDogT3Bl bmluZyBjb25uZWN0aW9uIGZvciByb290QE1vYmlsZUNhdC5sb2NhbCB1c2luZyBzdWRvLi4uClRy YW1wOiBTZW5kaW5nIGNvbW1hbmQg4oCYZXhlYyBzdWRvIC11IHJvb3QgLXMgLUggLXAgUCIiYSIi cyIicyIidyIibyIiciIiZCIiOiAvYmluL3NoIOKAmQpUcmFtcDogV2FpdGluZyBmb3IgcHJvbXB0 cyBmcm9tIHJlbW90ZSBzaGVsbC4uLgpUcmFtcDogU2VuZGluZyBQYXNzd29yZApUcmFtcDogV2Fp dGluZyBmb3IgcHJvbXB0cyBmcm9tIHJlbW90ZSBzaGVsbC4uLmZhaWxlZApUcmFtcDogT3Blbmlu ZyBjb25uZWN0aW9uIGZvciByb290QE1vYmlsZUNhdC5sb2NhbCB1c2luZyBzdWRvLi4uZmFpbGVk ClF1aXQ6ICIiCg== --000000000000737f7b059e2d333a--