From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Hank Greenburg via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Newsgroups: gmane.emacs.bugs Subject: bug#61436: Emacs Freezing With Java Files Date: Sun, 12 Feb 2023 17:11:22 +0000 Message-ID: References: <83cz6fiefb.fsf@gnu.org> <835yc6hl0c.fsf@gnu.org> Reply-To: Hank Greenburg Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_0RivMYcIFzDWLX2R6VxDjfZjRkHocvgBoHn7ostww" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="40612"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 61436@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Feb 12 18:12:23 2023 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 1pRFtn-000AKT-AB for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 12 Feb 2023 18:12:23 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pRFta-0003nZ-7n; Sun, 12 Feb 2023 12:12:10 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pRFtS-0003de-IB for bug-gnu-emacs@gnu.org; Sun, 12 Feb 2023 12:12:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pRFtS-0003Xs-AU for bug-gnu-emacs@gnu.org; Sun, 12 Feb 2023 12:12:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pRFtS-000276-2w for bug-gnu-emacs@gnu.org; Sun, 12 Feb 2023 12:12:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Hank Greenburg Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 12 Feb 2023 17:12:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 61436 X-GNU-PR-Package: emacs Original-Received: via spool by 61436-submit@debbugs.gnu.org id=B61436.16762219008091 (code B ref 61436); Sun, 12 Feb 2023 17:12:02 +0000 Original-Received: (at 61436) by debbugs.gnu.org; 12 Feb 2023 17:11:40 +0000 Original-Received: from localhost ([127.0.0.1]:46552 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pRFt4-00026Q-TX for submit@debbugs.gnu.org; Sun, 12 Feb 2023 12:11:40 -0500 Original-Received: from mail-4322.protonmail.ch ([185.70.43.22]:32061) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pRFt1-00026A-R7 for 61436@debbugs.gnu.org; Sun, 12 Feb 2023 12:11:37 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1676221888; x=1676481088; bh=3F1RnbAZohIQwupOfe75G3sZXoTt6EFjZRowlxCCkSA=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=zENi9lDv0dmX8xuEGaPVqZkyzPJxp1g1f6aK2vwnOtXN/5ws1woIRZ6rAcekJdCOu jM24zJZTfRQqua5Xzm2TfYocSNoLTPYY3YYIiTh+GEeD8fzuS8zEovuoT+RoVypxD0 5PGnHNhwIL5hxIzC37rz8ouct6dko70XWotXYGPSusTkZqfON9w9CqoJJLwhj9RUiM kS2g++f62byVDJEOE4SNcEVlRGfBRyJO3V+GZObahDRrK3bA0j/Ul/UZV3i9B3HQWH 5tZWlVHruNlMKzMi5MeLzpFZN2oRUEsv0N41NEjyAxvC6Qi22HK0ViY5yvYs872wll aYSkfvvJRwOfQ== In-Reply-To: <835yc6hl0c.fsf@gnu.org> Feedback-ID: 10943770:user:proton X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list 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-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:255427 Archived-At: This is a multi-part message in MIME format. --b1_0RivMYcIFzDWLX2R6VxDjfZjRkHocvgBoHn7ostww Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Sorry, by blocks I mean the org-mode code blocks that are under the headers= "Repos (Elpa and Melpa)" and "Hyperbole" in the init.org file I sent with = my first email. I've attached it again here. Underneath those headers is an org-mode source block, if you go inside of t= he block and run "org-babel-execute-src-block" then say yes when it asks if= you want to run the code. If you do that for Repos and Hyperbole blocks th= en follow the steps below. Go to the Java file. Hold CTRL + Up/Down Arrow keys to quickly move through= the file. This works just fine until which-function-mode is activated. After that is = activated I can scroll through maybe twice before it freezes. It almost always happens after hitting the end of the file, and the first j= ump up after that. Or at least it has happened 4/5 times by doing that. The= other time I avoided the end of the file to see if that was the trigger an= d it still froze. ------- Original Message ------- On Sunday, February 12th, 2023 at 11:05 AM, Eli Zaretskii wr= ote: >=20 >=20 > > Date: Sun, 12 Feb 2023 16:52:51 +0000 >=20 > > From: Hank Greenburg hank.greenburg@protonmail.com > > Cc: 61436@debbugs.gnu.org > >=20 > > Launch with emacs -Q > >=20 > > org-babel-execute-src-block for the Repos block and Hyperbole. The Hype= rbole block won't work unless you do the Repos block first. >=20 >=20 > Sorry, I don't understand: what is "the Repos block", and what is the > "Hyperbole block"? What do I need to do after starting "emacs -Q" to > reproduce what you describe above? which commands to type? --b1_0RivMYcIFzDWLX2R6VxDjfZjRkHocvgBoHn7ostww Content-Type: text/org; name=init.org Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=init.org CiogUmVwb3MgKEVscGEgYW5kIE1lbHBhKQojK0JFR0lOX1NSQyBlbGlzcAoocmVxdWlyZSAncGFj a2FnZSkKKGFkZC10by1saXN0ICdwYWNrYWdlLWFyY2hpdmVzCgkgICAgICcoIm1lbHBhIiAuICJo dHRwczovL21lbHBhLm9yZy9wYWNrYWdlcy8iKSkKKGFkZC10by1saXN0ICdwYWNrYWdlLWFyY2hp dmVzCgkgICAgICcoImdudSIgLiAiaHR0cHM6Ly9lbHBhLmdudS5vcmcvcGFja2FnZXMvIikpCihw YWNrYWdlLWluaXRpYWxpemUpCiMrRU5EX1NSQwoKKiBEaXJ2aXNoCiMrQkVHSU5fU1JDIGVsaXNw Cih1c2UtcGFja2FnZSBkaXJ2aXNoCiAgOmluaXQKICAoZGlydmlzaC1vdmVycmlkZS1kaXJlZC1t b2RlKQogIDpjdXN0b20KICA7OyBHbyBiYWNrIGhvbWU/IEp1c3QgcHJlc3MgYGJoJwogIChkaXJ2 aXNoLWJvb2ttYXJrLWVudHJpZXMKICAgJygoImgiICJ+LyIgICAgICAgICAgICAgICAgICAgICAg ICAgICJIb21lIikKICAgICAoImQiICJ+L0Rvd25sb2Fkcy8iICAgICAgICAgICAgICAgICJEb3du bG9hZHMiKQogICAgICgibSIgIi9tbnQvIiAgICAgICAgICAgICAgICAgICAgICAgIkRyaXZlcyIp CiAgICAgKCJ0IiAifi8ubG9jYWwvc2hhcmUvVHJhc2gvZmlsZXMvIiAiVHJhc2hDYW4iKSkpCiAg OzsgKGRpcnZpc2gtaGVhZGVyLWxpbmUtZm9ybWF0ICcoOmxlZnQgKHBhdGgpIDpyaWdodCAoZnJl ZS1zcGFjZSkpKQogIChkaXJ2aXNoLW1vZGUtbGluZS1mb3JtYXQgOyBpdCdzIG9rIHRvIHBsYWNl IHN0cmluZyBpbnNpZGUKICAgJyg6bGVmdCAoc29ydCBmaWxlLXRpbWUgIiAiIGZpbGUtc2l6ZSBz eW1saW5rKSA6cmlnaHQgKG9taXQgeWFuayBpbmRleCkpKQogIDs7IERvbid0IHdvcnJ5LCBEaXJ2 aXNoIGlzIHN0aWxsIHBlcmZvcm1hbnQgZXZlbiB5b3UgZW5hYmxlIGFsbCB0aGVzZSBhdHRyaWJ1 dGVzCiAgKGRpcnZpc2gtYXR0cmlidXRlcyAnKGFsbC10aGUtaWNvbnMgZmlsZS1zaXplIGNvbGxh cHNlIHN1YnRyZWUtc3RhdGUgdmMtc3RhdGUgZ2l0LW1zZykpCiAgOzsgTWF5YmUgdGhlIGljb25z IGFyZSB0b28gYmlnIHRvIHlvdXIgZXllcwogIDs7IChkaXJ2aXNoLWFsbC10aGUtaWNvbnMtaGVp Z2h0IDAuOCkKICA7OyBJbiBjYXNlIHlvdSB3YW50IHRoZSBkZXRhaWxzIGF0IHN0YXJ0dXAgbGlr ZSBgZGlyZWQnCiAgOzsgKGRpcnZpc2gtaGlkZS1kZXRhaWxzIG5pbCkKICA6Y29uZmlnCiAgKGRp cnZpc2gtcGVlay1tb2RlKQogIDs7IERpcmVkIG9wdGlvbnMgYXJlIHJlc3BlY3RlZCBleGNlcHQg YSBmZXcgZXhjZXB0aW9ucywgc2VlICpJbiByZWxhdGlvbiB0byBEaXJlZCogc2VjdGlvbiBhYm92 ZQogIChzZXRxIGRpcmVkLWR3aW0tdGFyZ2V0IHQpCiAgKHNldHEgZGVsZXRlLWJ5LW1vdmluZy10 by10cmFzaCB0KQogIDs7IEVuYWJsZSBtb3VzZSBkcmFnLWFuZC1kcm9wIGZpbGVzIHRvIG90aGVy IGFwcGxpY2F0aW9ucwogIChzZXRxIGRpcmVkLW1vdXNlLWRyYWctZmlsZXMgdCkgICAgICAgICAg ICAgICAgICAgOyBhZGRlZCBpbiBFbWFjcyAyOQogIChzZXRxIG1vdXNlLWRyYWctYW5kLWRyb3At cmVnaW9uLWNyb3NzLXByb2dyYW0gdCkgOyBhZGRlZCBpbiBFbWFjcyAyOQogIDs7IE1ha2Ugc3Vy ZSB0byB1c2UgdGhlIGxvbmcgbmFtZSBvZiBmbGFncyB3aGVuIGV4aXN0cwogIDs7IGVnLiB1c2Ug Ii0tYWxtb3N0LWFsbCIgaW5zdGVhZCBvZiAiLUEiCiAgOzsgT3RoZXJ3aXNlIHNvbWUgY29tbWFu ZHMgd29uJ3Qgd29yayBwcm9wZXJseQogIChzZXRxIGRpcmVkLWxpc3Rpbmctc3dpdGNoZXMKICAg ICAgICAiLWwgLS1hbG1vc3QtYWxsIC0taHVtYW4tcmVhZGFibGUgLS10aW1lLXN0eWxlPWxvbmct aXNvIC0tZ3JvdXAtZGlyZWN0b3JpZXMtZmlyc3QgLS1uby1ncm91cCIpCiAgOmJpbmQKICA7OyBC aW5kIGBkaXJ2aXNofGRpcnZpc2gtc2lkZXxkaXJ2aXNoLWR3aW0nIGFzIHlvdSBzZWUgZml0CiAg KCgiQy1jIGYiIC4gZGlydmlzaC1mZCkKICAgOm1hcCBkaXJlZC1tb2RlLW1hcCA7IERpcnZpc2gg cmVzcGVjdHMgYWxsIHRoZSBrZXliaW5kaW5ncyBpbiB0aGlzIG1hcAogICAoIjxwcmlvcj4iIC4g ZGlyZWQtdXAtZGlyZWN0b3J5KQogICA7OyAoImoiIC4gZGlyZWQtbmV4dC1saW5lKQogICA7OyAo ImsiIC4gZGlyZWQtcHJldmlvdXMtbGluZSkKICAgOzsgKCJsIiAuIGRpcmVkLWZpbmQtZmlsZSkK ICAgOzsgKCJpIiAuIHdkaXJlZC1jaGFuZ2UtdG8td2RpcmVkLW1vZGUpCiAgIDs7ICgiLiIgLiBk aXJlZC1vbWl0LW1vZGUpCiAgICgiYiIgICAuIGRpcnZpc2gtYm9va21hcmstanVtcCkKICAgKCJm IiAgIC4gZGlydmlzaC1maWxlLWluZm8tbWVudSkKICAgKCJ5IiAgIC4gZGlydmlzaC15YW5rLW1l bnUpCiAgICgiTiIgICAuIGRpcnZpc2gtbmFycm93KQogICAoIl4iICAgLiBkaXJ2aXNoLWhpc3Rv cnktbGFzdCkKICAgKCJzIiAgIC4gZGlydmlzaC1xdWlja3NvcnQpIDsgcmVtYXBwZWQgYGRpcmVk LXNvcnQtdG9nZ2xlLW9yLWVkaXQnCiAgICgiPyIgICAuIGRpcnZpc2gtZGlzcGF0Y2gpICA7IHJl bWFwcGVkIGBkaXJlZC1zdW1tYXJ5JwogICAoIlRBQiIgLiBkaXJ2aXNoLXN1YnRyZWUtdG9nZ2xl KQogICAoIlNQQyIgLiBkaXJ2aXNoLWhpc3RvcnktanVtcCkKICAgKCJNLW4iIC4gZGlydmlzaC1o aXN0b3J5LWdvLWZvcndhcmQpCiAgICgiTS1wIiAuIGRpcnZpc2gtaGlzdG9yeS1nby1iYWNrd2Fy ZCkKICAgKCJNLWwiIC4gZGlydmlzaC1scy1zd2l0Y2hlcy1tZW51KQogICAoIk0tbSIgLiBkaXJ2 aXNoLW1hcmstbWVudSkKICAgKCJNLWYiIC4gZGlydmlzaC10b2dnbGUtZnVsbHNjcmVlbikKICAg KCJNLXMiIC4gZGlydmlzaC1zZXR1cC1tZW51KQogICAoIk0tZSIgLiBkaXJ2aXNoLWVtZXJnZS1t ZW51KQogICAoIk0taiIgLiBkaXJ2aXNoLWZkLWp1bXApKSkKIytFTkRfU1JDCgoqIFlhc25pcHBl dApBbHNvIG1ha2Ugc3VyZSB0byBsb29rdXAgeWFzbmlwcGV0LXNuaXBwZXRzIHdoaWNoIGhhcyBh IGdyZWF0IGNvbGxlY3Rpb24gb2Ygc25pcHBldHMKaHR0cHM6Ly9naXRodWIuY29tL0FuZHJlYUNy b3R0aS95YXNuaXBwZXQtc25pcHBldHMKCml2eS15YXNuaXBwZXQgd2lsbCBzaG93IHlvdSB0aGUg YXZhaWxhYmxlIHNuaXBwZXRzIGZvciB0aGUgY3VycmVudCBtYWpvciBtb2RlIHlvdSBhcmUgaW4K YW5kIHdpbGwgaW5zZXJ0IHRoZW0uCiMrQkVHSU5fU1JDIGVsaXNwCihyZXF1aXJlICd5YXNuaXBw ZXQpCih5YXMtZ2xvYmFsLW1vZGUgMSkKKHNldHEgeWFzLWluZGVudC1saW5lIG5pbCkKKGdsb2Jh bC1zZXQta2V5IChrYmQgIkMtYyBpIikgJ2l2eS15YXNuaXBwZXQpCiMrRU5EX1NSQwoKKiBPcmcg Um9hbQojK0JFR0lOX1NSQyBlbGlzcAoodXNlLXBhY2thZ2Ugb3JnLXJvYW0KCSAgICAgOmVuc3Vy ZSB0CgkgICAgIDpjdXN0b20KCSAgICAgKG9yZy1yb2FtLWRpcmVjdG9yeSAoZmlsZS10cnVlbmFt ZSAifi9Eb2N1bWVudHMvcm9hbS1ub3RlcyIpKQoJICAgICA6YmluZCAoKCJDLWMgbiBsIiAuIG9y Zy1yb2FtLWJ1ZmZlci10b2dnbGUpCgkJICAgICgiQy1jIG4gZiIgLiBvcmctcm9hbS1ub2RlLWZp bmQpCgkJICAgICgiQy1jIG4gZyIgLiBvcmctcm9hbS1ncmFwaCkKCQkgICAgKCJDLWMgbiBpIiAu IG9yZy1yb2FtLW5vZGUtaW5zZXJ0KQoJCSAgICAoIkMtYyBuIGMiIC4gb3JnLXJvYW0tY2FwdHVy ZSkKCQkgICAgOztEYWlseQoJCSAgICAoIkMtYyBuIGoiIC4gb3JnLXJvYW0tZGFpbGllcy1jYXB0 dXJlLXRvZGF5KSkKCSAgICAgOmNvbmZpZwoJICAgICAoc2V0cSBvcmctcm9hbS1ub2RlLWRpc3Bs YXktdGVtcGxhdGUgKGNvbmNhdCAiJHt0aXRsZToqfSAiIChwcm9wZXJ0aXplICIke3RhZ3M6MTB9 IiAnZmFjZSAnb3JnLXRhZykpKQoJICAgICAob3JnLXJvYW0tZGItYXV0b3N5bmMtbW9kZSkKCSAg ICAgKHJlcXVpcmUgJ29yZy1yb2FtLXByb3RvY29sKSkKIytFTkRfU1JDCgoqIE1pc2NlbGxhbmVv dXMgT3JnIFN0dWZmCiMrQkVHSU5fU1JDIGVsaXNwCihzZXRxIG9yZy1zcmMtcHJlc2VydmUtaW5k ZW50YXRpb24gdCkKCjsgb3JnLWZyYWd0b2cgbWFrZXMgaXQgc28geW91IGNhbiBhdXRvbWF0aWNh bGx5IHByZXZpZXcgTGFUZVggd2l0aG91dCBoYXZpbmcgdG8gZG8gYW55dGhpbmcKKGFkZC1ob29r ICdvcmctbW9kZS1ob29rICdvcmctZnJhZ3RvZy1tb2RlKQo7KHBsaXN0LXB1dCBvcmctZm9ybWF0 LWxhdGV4LW9wdGlvbnMgOnNjYWxlIDIpCjsoYWZ0ZXIhIG9yZyAocGxpc3QtcHV0IG9yZy1mb3Jt YXQtbGF0ZXgtb3B0aW9ucyA6c2NhbGUgMS41KSkKKGZvbnQtbG9jay1hZGQta2V5d29yZHMgJ29y Zy1tb2RlCgkJCScoKCJeICpcXChbLV1cXCkgIgoJCQkgICAoMCAocHJvZzEgKCkgKGNvbXBvc2Ut cmVnaW9uIChtYXRjaC1iZWdpbm5pbmcgMSkgKG1hdGNoLWVuZCAxKSAi4oCiIikpKSkpKQoocmVx dWlyZSAnb3JnLXN1cGVyc3RhcikKKGFkZC1ob29rICdvcmctbW9kZS1ob29rIChsYW1iZGEgKCkg KG9yZy1zdXBlcnN0YXItbW9kZSAxKSkpCjs7aGlkZXMgbWFya3VwIGVtcGhhc2lzIGxpa2UgKmRk Kgooc2V0cSBvcmctaGlkZS1lbXBoYXNpcy1tYXJrZXJzIHQpCjs7IEFnZW5kYQooc2V0cSBvcmct YWdlbmRhLWZpbGVzICJ+L0RvY3VtZW50cy9BZ2VuZGEvYWdlbmRhLm9yZyIpCiMrRU5EX1NSQwoK KiBGbHlzcGVsbAojK0JFR0lOX1NSQyBlbGlzcAooZmx5c3BlbGwtbW9kZSkKKGFkZC1ob29rICd0 ZXh0LW1vZGUtaG9vayAnZmx5c3BlbGwtbW9kZSkKKGFkZC1ob29rICdwcm9nLW1vZGUtaG9vayAn Zmx5c3BlbGwtcHJvZy1tb2RlKQojK0VORF9TUkMKKiBIeXBlcmJvbGUKIytCRUdJTl9TUkMgZWxp c3AKKGh5cGVyYm9sZS1tb2RlIDEpCiMrRU5EX1NSQwoKKiBFbGZlZWQKIytCRUdJTl9TUkMgZWxp c3AKKHNldHEgZWxmZWVkLWZlZWRzCiAgICAgICcoKCJodHRwczovL29vb2hzcG9va3kubGlic3lu LmNvbS9yc3MiIEFkYW1Lbm94KQoJKCJodHRwczovL2dvZG90ZW5naW5lLm9yZy9yc3MueG1sIiBH b2RvdCkKCSgiaHR0cHM6Ly9zdGFja2FidXNlLmNvbS9yc3MvIiBTdGFja0FidXNlKQoJKCJodHRw czovL29wZW5zb3VyY2UuY29tL2ZlZWQiIE9wZW5Tb3VyY2UpCgkoImh0dHBzOi8vZGF2ZXJ1cGVy dC5jb20vYXRvbS54bWwiIERhdmVSdXBlcnQpCgkoImh0dHBzOi8vZmVlZC5wb2RiZWFuLmNvbS9t YXRlaXRzYXN1cmV0aGluZy9mZWVkLnhtbCIgV29sZmUpCgkoImh0dHBzOi8vd3d3Lm9tbnljb250 ZW50LmNvbS9kL3BsYXlsaXN0L2U3M2M5OThlLTZlNjAtNDMyZi04NjEwLWFlMjEwMTQwYzViMS8w YzZmYzk0NC1lYWE1LTQwMjItOGU3Ny1hZTMzMDAzNDZkNzYvNDVhNzM1YjYtZTFiOC00OWY5LWE1 OTUtYWUzMzAwMzQ2ZDg0L3BvZGNhc3QucnNzIiBTY3J1YnMpKSkKCihyZXF1aXJlICdlbGZlZWQt b3JnKQoocmVxdWlyZSAnZWxmZWVkLWdvb2RpZXMpCihlbGZlZWQtZ29vZGllcy9zZXR1cCkKCihn bG9iYWwtc2V0LWtleSAoa2JkICJDLXggdyIpICdlbGZlZWQpCihlbGZlZWQtb3JnKQooc2V0cSBy bWgtZWxmZWVkLW9yZy1maWxlcyAobGlzdCAifi8uZW1hY3MuZC9lbGZlZWQtZGFzaGJvYXJkLm9y ZyIpKQoKKHVzZS1wYWNrYWdlIGVsZmVlZC1kYXNoYm9hcmQKICA6ZW5zdXJlIHQKICA6Y29uZmln CiAgKHNldHEgZWxmZWVkLWRhc2hib2FyZC1maWxlICJ+L2VsZmVlZC1kYXNoYm9hcmQub3JnIikK ICA7OyB1cGRhdGUgZmVlZCBjb3VudHMgb24gZWxmZWVkLXF1aXQKICAoYWR2aWNlLWFkZCAnZWxm ZWVkLXNlYXJjaC1xdWl0LXdpbmRvdyA6YWZ0ZXIgIydlbGZlZWQtZGFzaGJvYXJkLXVwZGF0ZS1s aW5rcykpCgo7OzsgZyA9IHJlZnJlc2ggdmlldwo7OzsgRyA9IGZldGNoIGZlZWQgdXBkYXRlcwo7 OzsgcyA9IFVwZGF0ZSBzZWFyY2ggZmlsdGVyCjs7OyBjID0gY2xlYXIgc2VhcmNoIGZpbHRlcgoj K0VORF9TUkMKCiogRU1NUwojK0JFR0lOX1NSQyBlbGlzcAo7IGh0dHBzOi8vd3d3LmRyYWtldG8u ZGUvc29mdHdhcmUvZW1hY3MtdGlwcHMjZWxmZWVkLWVtbXMKKHVzZS1wYWNrYWdlIGVtbXMKICA6 ZW5zdXJlIHQKICA6Y29uZmlnKQooZ2xvYmFsLXNldC1rZXkgKGtiZCAiQy14IHAiKSAnaXZ5LWVt bXMpCihyZXF1aXJlICdlbW1zLXNldHVwKQoocmVxdWlyZSAnZW1tcy1wbGF5ZXItbXBsYXllcikK KGVtbXMtYWxsKQooc2V0cSBlbW1zLXBsYXllci1saXN0ICcoCgkJCSBlbW1zLXBsYXllci1tcGcz MjEKCQkJIGVtbXMtcGxheWVyLW9nZzEyMwoJCQkgZW1tcy1wbGF5ZXItbXBsYXllcikpCihkZWZ1 biBlbW1zLXBsYXllci1tcGxheWVyLXZvbHVtZShhbW91bnQpCiAgKHByb2Nlc3Mtc2VuZC1zdHJp bmcKICAgZW1tcy1wbGF5ZXItc2ltcGxlLXByb2Nlc3MtbmFtZQogICAoZm9ybWF0ICJ2b2x1bWUg JWRcbiIgYW1vdW50KSkpCihzZXRxIGVtbXMtdm9sdW1lLWNoYW5nZS1mdW5jdGlvbiAnZW1tcy1w bGF5ZXItbXBsYXllci12b2x1bWUpCihlbW1zLWRlZmF1bHQtcGxheWVycykKOyhlbW1zLWFkZC1k aXJlY3RvcnktdHJlZSAifi9NdXNpYy8iKQo7KGVtbXMtYWRkLWRpcmVjdG9yeS10cmVlICJ+L0Rv d25sb2Fkcy8iKQojK0VORF9TUkMKCiogTWVvdyAoTW9kYWwgRWRpdGluZykKIytCRUdJTl9TUkMg ZWxpc3AKKGRlZnVuIG1lb3ctc2V0dXAgKCkKICAoc2V0cSBtZW93LWNoZWF0c2hlZXQtbGF5b3V0 IG1lb3ctY2hlYXRzaGVldC1sYXlvdXQtcXdlcnR5KQogIChtZW93LW1vdGlvbi1vdmVyd3JpdGUt ZGVmaW5lLWtleQogICAnKCJrIiAuIG1lb3ctbmV4dCkKICAgJygiaiIgLiBtZW93LXByZXYpCiAg ICcoIjxlc2NhcGU+IiAuIGlnbm9yZSkpCiAgKG1lb3ctbGVhZGVyLWRlZmluZS1rZXkKICAgOzsg U1BDIGovayB3aWxsIHJ1biB0aGUgb3JpZ2luYWwgY29tbWFuZCBpbiBNT1RJT04gc3RhdGUuCiAg ICcoImoiIC4gIkgtaiIpCiAgICcoImsiIC4gIkgtayIpCiAgIDs7IFVzZSBTUEMgKDAtOSkgZm9y IGRpZ2l0IGFyZ3VtZW50cy4KICAgJygiMSIgLiBtZW93LWRpZ2l0LWFyZ3VtZW50KQogICAnKCIy IiAuIG1lb3ctZGlnaXQtYXJndW1lbnQpCiAgICcoIjMiIC4gbWVvdy1kaWdpdC1hcmd1bWVudCkK ICAgJygiNCIgLiBtZW93LWRpZ2l0LWFyZ3VtZW50KQogICAnKCI1IiAuIG1lb3ctZGlnaXQtYXJn dW1lbnQpCiAgICcoIjYiIC4gbWVvdy1kaWdpdC1hcmd1bWVudCkKICAgJygiNyIgLiBtZW93LWRp Z2l0LWFyZ3VtZW50KQogICAnKCI4IiAuIG1lb3ctZGlnaXQtYXJndW1lbnQpCiAgICcoIjkiIC4g bWVvdy1kaWdpdC1hcmd1bWVudCkKICAgJygiMCIgLiBtZW93LWRpZ2l0LWFyZ3VtZW50KQogICAn KCIvIiAuIG1lb3cta2V5cGFkLWRlc2NyaWJlLWtleSkKICAgJygiPyIgLiBtZW93LWNoZWF0c2hl ZXQpKQogIChtZW93LW5vcm1hbC1kZWZpbmUta2V5CiAgICcoIjAiIC4gbWVvdy1leHBhbmQtMCkK ICAgJygiOSIgLiBtZW93LWV4cGFuZC05KQogICAnKCI4IiAuIG1lb3ctZXhwYW5kLTgpCiAgICco IjciIC4gbWVvdy1leHBhbmQtNykKICAgJygiNiIgLiBtZW93LWV4cGFuZC02KQogICAnKCI1IiAu IG1lb3ctZXhwYW5kLTUpCiAgICcoIjQiIC4gbWVvdy1leHBhbmQtNCkKICAgJygiMyIgLiBtZW93 LWV4cGFuZC0zKQogICAnKCIyIiAuIG1lb3ctZXhwYW5kLTIpCiAgICcoIjEiIC4gbWVvdy1leHBh bmQtMSkKICAgJygiLSIgLiBuZWdhdGl2ZS1hcmd1bWVudCkKICAgJygiOyIgLiBtZW93LXJldmVy c2UpCiAgICcoIiwiIC4gbWVvdy1pbm5lci1vZi10aGluZykKICAgJygiLiIgLiBtZW93LWJvdW5k cy1vZi10aGluZykKICAgJygiWyIgLiBtZW93LWJlZ2lubmluZy1vZi10aGluZykKICAgJygiXSIg LiBtZW93LWVuZC1vZi10aGluZykKICAgJygiYSIgLiBtZW93LWFwcGVuZCkKICAgJygiQSIgLiBt ZW93LW9wZW4tYmVsb3cpCiAgICcoImIiIC4gbWVvdy1iYWNrLXdvcmQpCiAgICcoIkIiIC4gbWVv dy1iYWNrLXN5bWJvbCkKICAgJygiYyIgLiBtZW93LWNoYW5nZSkKICAgJygiZCIgLiBtZW93LWRl bGV0ZSkKICAgJygiRCIgLiBtZW93LWJhY2t3YXJkLWRlbGV0ZSkKICAgJygiZSIgLiBtZW93LW5l eHQtd29yZCkKICAgJygiRSIgLiBtZW93LW5leHQtc3ltYm9sKQogICAnKCJmIiAuIG1lb3ctZmlu ZCkKICAgJygiZyIgLiBtZW93LWNhbmNlbC1zZWxlY3Rpb24pCiAgICcoIkciIC4gbWVvdy1ncmFi KQogICAnKCJoIiAuIG1lb3ctbGVmdCkKICAgJygiSCIgLiBtZW93LWxlZnQtZXhwYW5kKQogICAn KCJpIiAuIG1lb3ctaW5zZXJ0KQogICAnKCJJIiAuIG1lb3ctb3Blbi1hYm92ZSkKICAgJygiaiIg LiBtZW93LW5leHQpCiAgICcoIkoiIC4gbWVvdy1uZXh0LWV4cGFuZCkKICAgJygiayIgLiBtZW93 LXByZXYpCiAgICcoIksiIC4gbWVvdy1wcmV2LWV4cGFuZCkKICAgJygibCIgLiBtZW93LXJpZ2h0 KQogICAnKCJMIiAuIG1lb3ctcmlnaHQtZXhwYW5kKQogICAnKCJtIiAuIG1lb3ctam9pbikKICAg JygibiIgLiBtZW93LXNlYXJjaCkKICAgJygibyIgLiBtZW93LWJsb2NrKQogICAnKCJPIiAuIG1l b3ctdG8tYmxvY2spCiAgICcoInAiIC4gbWVvdy15YW5rKQogICAnKCJxIiAuIG1lb3ctcXVpdCkK ICAgJygiUSIgLiBtZW93LWdvdG8tbGluZSkKICAgJygiciIgLiBtZW93LXJlcGxhY2UpCiAgICco IlIiIC4gbWVvdy1zd2FwLWdyYWIpCiAgICcoInMiIC4gbWVvdy1raWxsKQogICAnKCJ0IiAuIG1l b3ctdGlsbCkKICAgJygidSIgLiBtZW93LXVuZG8pCiAgICcoIlUiIC4gbWVvdy11bmRvLWluLXNl bGVjdGlvbikKICAgJygidiIgLiBtZW93LXZpc2l0KQogICAnKCJ3IiAuIG1lb3ctbWFyay13b3Jk KQogICAnKCJXIiAuIG1lb3ctbWFyay1zeW1ib2wpCiAgICcoIngiIC4gbWVvdy1saW5lKQogICAn KCJYIiAuIG1lb3ctZ290by1saW5lKQogICAnKCJ5IiAuIG1lb3ctc2F2ZSkKICAgJygiWSIgLiBt ZW93LXN5bmMtZ3JhYikKICAgJygieiIgLiBtZW93LXBvcC1zZWxlY3Rpb24pCiAgICcoIiciIC4g cmVwZWF0KQogICAnKCI8ZXNjYXBlPiIgLiBpZ25vcmUpKSkKCihzZXRxIG1lb3ctY3Vyc29yLXR5 cGUtbm9ybWFsICdoYmFyKQooc2V0cSBtZW93LWN1cnNvci10eXBlLWluc2VydCAnYm94KQoKKHJl cXVpcmUgJ21lb3cpCihtZW93LXNldHVwKQoobWVvdy1nbG9iYWwtbW9kZSAxKQojK0VORF9TUkMK KiA6VE9ETzogU2V0dXAgTVU0RQojK0JFR0lOX1NSQyBlbGlzcAo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 bXU0ZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7CjsoYWRkLXRvLWxpc3QgJ2xv YWQtcGF0aCAiL3Vzci9sb2NhbC9zaGFyZS9lbWFjcy9zaXRlLWxpc3AvbXU0ZSIpCjsocmVxdWly ZSAnbXU0ZSkKCjsobXU0ZS1hbGVydC1zZXQtZGVmYXVsdC1zdHlsZSAnbGlibm90aWZ5KQo7KGFk ZC1ob29rICdhZnRlci1pbml0LWhvb2sgJ211NGUtYWxlcnQtZW5hYmxlLW5vdGlmaWNhdGlvbnMp CjsobXU0ZS1hbGVydC1ub3RpZmljYXRpb25zKQojK0VORF9TUkMKCiogUmFuZG9tIFN0dWZmClNo aWZ0IGFuZCBhcnJvdyBrZXkgY2hhbmdlcyB3aW5kb3dzCiMrQkVHSU5fU1JDIGVsaXNwCih3aGVu IChmYm91bmRwICd3aW5kbW92ZS1kZWZhdWx0LWtleWJpbmRpbmdzKQogICh3aW5kbW92ZS1kZWZh dWx0LWtleWJpbmRpbmdzKSkKIytFTkRfU1JDCgpLaWxscyB0aGUgc2NyYXRjaCBidWZmZXIgb24g bGF1bmNoIGFuZCBjaGFuZ2VzIGEgZmV3IFVJIHRoaW5ncy4KIytCRUdJTl9TUkMgZWxpc3AKKGtp bGwtYnVmZmVyICIqc2NyYXRjaCoiKQo7KHNldHEgaW5oaWJpdC1zcGxhc2gtc2NyZWVuIHQpCihz ZXRxIGluaGliaXQtc3RhcnR1cC1zY3JlZW4gdCkKKHNjcm9sbC1iYXItbW9kZSAtMSkKKG1lbnUt YmFyLW1vZGUgLTEpCih0b29sLWJhci1tb2RlIC0xKQooZGlzcGxheS10aW1lLW1vZGUgdCkKOztH ZXR0aW5nIHJpZCBvZiBsaW5lIHdyYXBwaW5nLgooc2V0LWRlZmF1bHQgJ3RydW5jYXRlLWxpbmVz IHQpCjs7Ozs7Ozs7Ozs7Ozs7OyB0dXJuIG9mZiB0aGUgYmVlcGluZyA7Ozs7Ozs7Ozs7Owooc2V0 cSB2aXNpYmxlLWJlbGwgMSkKCjs7KGdsb2JhbC1saW51bS1tb2RlIHQpCjs7IHJlcGxhY2luZyBs aW51bS1tb2RlIHdpdGggZGlzcGxheS1saW5lLW1vZGUgYXMgaXQgZm9sbG93cyB0aGUgdGhlbWUK KGdsb2JhbC1kaXNwbGF5LWxpbmUtbnVtYmVycy1tb2RlIHQpCihnbG9iYWwtc2V0LWtleSAoa2Jk ICJDLXggaSIpIChsYW1iZGEgKCkgKGludGVyYWN0aXZlKShmaW5kLWZpbGUgIn4vLmVtYWNzLmQv aW5pdC5vcmciKSkpCiMrRU5EX1NSQwoKKiBEaWFyeQojK0JFR0lOX1NSQyBlbGlzcAo7ZGVza3Rv cCBub3RpZmljYXRpb25zCihyZXF1aXJlICdub3RpZmljYXRpb25zKQoKKGRlZmN1c3RvbSBhcHB0 LW5vdGlmaWNhdGlvbi1idXMgOnNlc3Npb24KICAiZGJ1cyBub3RpZmljYXRpb25zIgogIDp2ZXJz aW9uICIyOS4wNSIKICA6Z3JvdXAgJ2FwcHQtbm90aWZpY2F0aW9uCiAgOnR5cGUgJyhjaG9pY2Ug KGNvbnN0IDp0YWcgIlNlc3Npb24gYnVzIiA6c2Vzc2lvbikgc3RyaW5nKSkKCihkZWZ1biB1c2Vy L2FwcHQtZGlzcGxheSAobWluLXRvLWFwcCBuZXctdGltZSBtc2cpCiAgInNlbmRzIG5vdGlmaWNh dGlvbnMiCiAgKG5vdGlmaWNhdGlvbnMtbm90aWZ5IDpidXMgYXBwdC1ub3RpZmljYXRpb24tYnVz CgkJCTp0aXRsZSAoZm9ybWF0ICJBcHBvaW50bWVudCBpbiAlcyBtaW51dGVzIiBtaW4tdG8tYXBw KQoJCQk6Ym9keSAoZm9ybWF0ICIlcyIgbXNnKQoJCQk6cmVwbGFjZXMtaWQgbmlsCgkJCTphcHAt aWNvbiBub3RpZmljYXRpb25zLWFwcGxpY2F0aW9uLWljb24KCQkJOnRpbWVvdXQgODAwMAoJCQk6 ZGVza3RvcC1lbnRyeSAiZGlhcnkiKSkKCihzZXRxIGFwcHQtZGlzcC13aW5kb3ctZnVuY3Rpb24g KGZ1bmN0aW9uIHVzZXIvYXBwdC1kaXNwbGF5KSkKCihzZXRxLWRlZmF1bHQgZGlhcnktZmlsZSAi fi8uZW1hY3MuZC9kaWFyeSIKCSAgICAgIGFwcHQtZGlzcGxheS1mb3JtYXQgJ3dpbmRvdwoJICAg ICAgYXBwdC1kaXNwbGF5LWR1cmF0aW9uIDYwCgkgICAgICBhcHB0LWF1ZGlibGUgdAoJICAgICAg YXBwdC1kaXNwbGF5LWludGVydmFsIDE1CgkgICAgICBhcHB0LW1lc3NhZ2Utd2FybmluZy10aW1l IDE1CgkgICAgICBkaXNwbGF5LXRpbWUtMjRoci1mb3JtYXQgdAoJICAgICAgZGlzcGxheS10aW1l LWRheS1hbmQtZGF0ZSB0KQoKKGFwcHQtYWN0aXZhdGUgdCkKCjtpbXBvcnRzIGljYWwgZmlsZSwg dGFrZXMgYSBsb25nIHRpbWUgc2luY2UgbXkgaWNhbCBpcyBodWdlIGZyb20gb2xkIGV2ZW50cwo7 KGljYWxlbmRhci1pbXBvcnQtZmlsZSAifi8ubG9jYWwvc2hhcmUvZXZvbHV0aW9uL2NhbGVuZGFy L3N5c3RlbS9jYWxlbmRhci5pY3MiCjsJCSAgICAgICAifi8uZW1hY3MuZC9kaWFyeSIpCgojK0VO RF9TUkMKCiogRW1vamlmeQojK0JFR0lOX1NSQyBlbGlzcAo7Ozs7ZGlzcGxheXMgZW1vamlzIGZv ciB3ZWF0aGVyCihlbW9qaWZ5LW1vZGUgMSkKKGVtb2ppZnktbW9kZS1saW5lLW1vZGUgMSkKIytF TkRfU1JDCiogRGFzaGJvYXJkCiMrQkVHSU5fU1JDIGVsaXNwCjs7IFNldCB0aGUgdGl0bGUKKHJl cXVpcmUgJ2Rhc2hib2FyZCkKKHNldHEgZGFzaGJvYXJkLXdlZWstYWdlbmRhIHQpCihzZXRxIGRh c2hib2FyZC1iYW5uZXItbG9nby10aXRsZSAiSSdtIHVzaW5nIExpbnV4LiBBIGxpYnJhcnkgdGhh dCBlbWFjcyB1c2VzIHRvIGNvbW11bmljYXRlIHdpdGggSW50ZWwgaGFyZHdhcmUuIikgCjsoc2V0 cSBkYXNoYm9hcmQtc3RhcnR1cC1iYW5uZXIgIn4vRG93bmxvYWRzL3Jzel9lbWFjcy1jb2xvcmZ1 bC5wbmciKQooc2V0cSBkYXNoYm9hcmQtc3RhcnR1cC1iYW5uZXIgIn4vUGljdHVyZXMvZW1hY3Mt Y29sb3JmdWwucG5nIikKOyhzZXRxIGRhc2hib2FyZC1zdGFydHVwLWJhbm5lciAnb2ZmaWNpYWwp CihzZXRxIGRhc2hib2FyZC1zZXQtaGVhZGluZy1pY29ucyB0KQooc2V0cSBkYXNoYm9hcmQtc2V0 LWZpbGUtaWNvbnMgdCkKKHNldHEgZGFzaGJvYXJkLXNldC1uYXZpZ2F0b3IgdCkKKHNldHEgZGFz aGJvYXJkLWNlbnRlci1jb250ZW50IHQpCjs7IFRvIGRpc2FibGUgc2hvcnRjdXQgImp1bXAiIGlu ZGljYXRvcnMgZm9yIGVhY2ggc2VjdGlvbiwgc2V0CihzZXRxIGRhc2hib2FyZC1zaG93LXNob3J0 Y3V0cyBuaWwpCgooZGFzaGJvYXJkLXNldHVwLXN0YXJ0dXAtaG9vaykKCihhdXRvLWltYWdlLWZp bGUtbW9kZSAxKQoKKHVzZS1wYWNrYWdlIHBhZ2UtYnJlYWstbGluZXMKICA6ZW5zdXJlIHQKICA6 ZGVtYW5kIHQpCgooZ2xvYmFsLXBhZ2UtYnJlYWstbGluZXMtbW9kZSAxKQojK0VORF9TUkMKCiog U1ZHIFRhZwojK0JFR0lOX1NSQyBlbGlzcAooZGVmY29uc3QgZGF0ZS1yZSAiWzAtOV1cXHs0XFx9 LVswLTldXFx7MlxcfS1bMC05XVxcezJcXH0iKQooZGVmY29uc3QgdGltZS1yZSAiWzAtOV1cXHsy XFx9OlswLTldXFx7MlxcfSIpCihkZWZjb25zdCBkYXktcmUgIltBLVphLXpdXFx7M1xcfSIpCihk ZWZjb25zdCBkYXktdGltZS1yZSAoZm9ybWF0ICJcXCglc1xcKT8gP1xcKCVzXFwpPyIgZGF5LXJl IHRpbWUtcmUpKQoKKGRlZnVuIHN2Zy1wcm9ncmVzcy1wZXJjZW50ICh2YWx1ZSkKICAoc3ZnLWlt YWdlIChzdmctbGliLWNvbmNhdAogICAgICAgICAgICAgIChzdmctbGliLXByb2dyZXNzLWJhciAo LyAoc3RyaW5nLXRvLW51bWJlciB2YWx1ZSkgMTAwLjApCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbmlsIDptYXJnaW4gMCA6c3Ryb2tlIDIgOnJhZGl1cyAzIDpwYWRkaW5nIDIgOndp ZHRoIDExKQogICAgICAgICAgICAgIChzdmctbGliLXRhZyAoY29uY2F0IHZhbHVlICIlIikKICAg ICAgICAgICAgICAgICAgICAgICAgICAgbmlsIDpzdHJva2UgMCA6bWFyZ2luIDApKSA6YXNjZW50 ICdjZW50ZXIpKQoKKGRlZnVuIHN2Zy1wcm9ncmVzcy1jb3VudCAodmFsdWUpCiAgKGxldCogKChz ZXEgKG1hcGNhciAjJ3N0cmluZy10by1udW1iZXIgKHNwbGl0LXN0cmluZyB2YWx1ZSAiLyIpKSkK ICAgICAgICAgKGNvdW50IChmbG9hdCAoY2FyIHNlcSkpKQogICAgICAgICAodG90YWwgKGZsb2F0 IChjYWRyIHNlcSkpKSkKICAoc3ZnLWltYWdlIChzdmctbGliLWNvbmNhdAogICAgICAgICAgICAg IChzdmctbGliLXByb2dyZXNzLWJhciAoLyBjb3VudCB0b3RhbCkgbmlsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDptYXJnaW4gMCA6c3Ryb2tlIDIgOnJhZGl1cyAzIDpwYWRk aW5nIDIgOndpZHRoIDExKQogICAgICAgICAgICAgIChzdmctbGliLXRhZyB2YWx1ZSBuaWwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgOnN0cm9rZSAwIDptYXJnaW4gMCkpIDphc2NlbnQgJ2Nl bnRlcikpKQoKO1NldHRpbmcgbXkgb3duIGZhY2UKOyhkZWZmYWNlIG15ZmFjZSAnKCh0ICg6aW5o ZXJpdCBvcmctdG9kbykgOmhlaWdodCAxLjAgOmJhY2tncm91bmQgIiM5NTdEQUQiKSkgIkZhY2Ug Zm9yIHRvZG8iKQooZGVmZmFjZSBwYXN0ZWxwdXJwbGUgJygodCAoOmluaGVyaXQgb3JnLXRvZG8g OmhlaWdodCAyLjAgOmZvcmVncm91bmQgIiM5NTdEQUQiKSkpICJGYWNlIGZvciB0b2RvIikKKGRl ZmZhY2UgcGFzdGVsZ3JlZW4gJygodCAoOmluaGVyaXQgb3JnLXRvZG8gOmhlaWdodCAyLjAgOmZv cmVncm91bmQgIiNCMEVCOTMiKSkpICJGYWNlIGZvciBXSVAiKQooZGVmZmFjZSBwYXN0ZWxibHVl ICcoKHQgKDppbmhlcml0IG9yZy10b2RvIDpoZWlnaHQgMi4wIDpmb3JlZ3JvdW5kICIjQjNFM0RB IikpKSAiRmFjZSBmb3IgRE9ORSIpCihkZWZmYWNlIHBhc3RlbHJlZCAnKCh0ICg6aW5oZXJpdCBv cmctdG9kbyA6aGVpZ2h0IDIuMCA6Zm9yZWdyb3VuZCAiI0Y5ODI4NCIpKSkgIkZhY2UgZm9yIHRh Z3MiKQooZGVmZmFjZSBwYXN0ZWxwaW5rICcoKHQgKDppbmhlcml0IG9yZy10b2RvIDpoZWlnaHQg Mi4wIDpmb3JlZ3JvdW5kICIjRkVBQUU0IikpKSAiRmFjZSBmb3IgRGF0ZSIpCgoKKHNldHEgc3Zn LXRhZy10YWdzCiAgICAgIGAoCiAgICAgICAgOzsgT3JnIHRhZ3MgOlRISVM6CiAgICAgICAgKCJc XCg6W0EtWmEtejAtOV0rOlxcKSIgLiAoKGxhbWJkYSAodGFnKSAoc3ZnLXRhZy1tYWtlIHRhZyA6 YmVnIDEgOmVuZCAtMSA6aW52ZXJzZSB0IDpmYWNlICdwYXN0ZWxyZWQpKSkpCgkKCTsoMSkKCTso IlwoWzAtOzlhLXpBLVpdXCkiIC4gKChsYW1iZGEgKHRhZykKICAgICAgICA7ICAgICAgICAgICAg ICAgICAgICAgICAgKHN2Zy10YWctbWFrZSB0YWcgOmJlZyAxIDplbmQgLTEgOnJhZGl1cyAxMikp KSkKCgk7KDA5KQogICAgICAgIDsoIlwoWzAtOWEtekEtWl1bMC05YS16QS1aXVwpIiAuICgobGFt YmRhICh0YWcpCiAgICAgICAgOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN2 Zy10YWctbWFrZSB0YWcgOmJlZyAxIDplbmQgLTEgOnJhZGl1cyA4KSkpKQoKCTsoMDA3KQogICAg ICAgIDsoIlwoWzAtOWEtekEtWl1bMC05YS16QS1aXVswLTlhLXpBLVpdXCkiIC4gKChsYW1iZGEg KHRhZykKICAgICAgICA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3ZnLXRh Zy1tYWtlIHRhZyA6YmVnIDEgOmVuZCAtMSA6cmFkaXVzIDgpKSkpCgoJO1Vuc3VyZT8KCTsoInxb MC05YS16QS1aLSBdKz98IiAuICgobGFtYmRhICh0YWcpCiAgICAgICAgOyAgICAgICAgICAgICAg ICAgICAgICAgICAgKHN2Zy10YWctbWFrZSB0YWcgOmZhY2UgJ2ZvbnQtbG9jay1jb21tZW50LWZh Y2UKICAgICAgICA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDptYXJn aW4gMCA6YmVnIDEgOmVuZCAtMSkpKSkKCQogICAgICAgIDs7IFRhc2sgcHJpb3JpdHkgWyNhXQog ICAgICAgICgiXFxbI1thLXpBLVpdXFxdIiAuICggKGxhbWJkYSAodGFnKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoc3ZnLXRhZy1tYWtlIHRhZyA6ZmFjZSAnb3JnLXByaW9yaXR5IAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpiZWcgMiA6ZW5kIC0x IDptYXJnaW4gMCA6aW52ZXJzZSB0KSkpKQoKICAgICAgICA7OyBQcm9ncmVzcyBbMS8zXSBvciBb NDUlXQogICAgICAgICgiXFwoXFxbWzAtOV1cXHsxLDNcXH0lXFxdXFwpIiAuICgobGFtYmRhICh0 YWcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN2Zy1wcm9n cmVzcy1wZXJjZW50IChzdWJzdHJpbmcgdGFnIDEgLTIpKSkpKQogICAgICAgICgiXFwoXFxbWzAt OV0rL1swLTldK1xcXVxcKSIgLiAoKGxhbWJkYSAodGFnKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoc3ZnLXByb2dyZXNzLWNvdW50IChzdWJzdHJpbmcgdGFnIDEg LTEpKSkpKQogICAgICAgIAogICAgICAgIDs7IE9yZyBUQUdTCiAgICAgICAgKCI6VE9ETzoiIC4g KChsYW1iZGEgKHRhZykgKHN2Zy10YWctbWFrZSAiVE9ETyIgOmludmVyc2UgdCA6ZmFjZSAncGFz dGVscHVycGxlKSkpKQogICAgICAgICgiOldJUDoiIC4gKChsYW1iZGEgKHRhZykgKHN2Zy10YWct bWFrZSAiV0lQIiA6aW52ZXJzZSB0IDpmYWNlICdwYXN0ZWxncmVlbikpKSkKICAgICAgICAoIjpE T05FOiIgLiAoKGxhbWJkYSAodGFnKSAoc3ZnLXRhZy1tYWtlICJET05FIiA6aW52ZXJzZSB0IDpm YWNlICdwYXN0ZWxibHVlKSkpKQogICAgICAgICgiOk5PVEU6IiAuICgobGFtYmRhICh0YWcpIChz dmctdGFnLW1ha2UgIk5PVEUiIDppbnZlcnNlIHQgOmZhY2UgJ29yZy10b2RvKSkpKQogICAgICAg ICgiU0NIRURVTEVEOiIgLiAoKGxhbWJkYSAodGFnKSAoc3ZnLXRhZy1tYWtlICJTQ0hFRFVMRUQi IDppbnZlcnNlIHQgOmZhY2UgJ29yZy10YWcpKSkpCiAgICAgICAgKCJERUFETElORToiIC4gKChs YW1iZGEgKHRhZykgKHN2Zy10YWctbWFrZSAiREVBRExJTkUiIDppbnZlcnNlIHQgOmZhY2UgJ29y Zy10YWcpKSkpCiAgICAgICAgKCIrQkVHSU5fU1JDIiAuICgobGFtYmRhICh0YWcpIChzdmctdGFn LW1ha2UgIkJFR0lOIiA6aW52ZXJzZSB0IDpmYWNlICdvcmctdGFnKSkpKQogICAgICAgICgiK0VO RF9TUkMiIC4gKChsYW1iZGEgKHRhZykgKHN2Zy10YWctbWFrZSAiRU5EIiA6aW52ZXJzZSB0IDpm YWNlICdvcmctdGFnKSkpKQogICAgICAgICgiK1JFU1VMVFM6IiAuICgobGFtYmRhICh0YWcpIChz dmctdGFnLW1ha2UgIlJFU1VMVFMiIDppbnZlcnNlIHQgOmZhY2UgJ29yZy10YWcpKSkpCiAgICAg ICAgKCIrdGl0bGUiIC4gKChsYW1iZGEgKHRhZykgKHN2Zy10YWctbWFrZSAiVElUTEUiIDppbnZl cnNlIHQgOmZhY2UgJ29yZy10YWcpKSkpCiAgICAgICAgKCIrQkVHSU46IiAuICgobGFtYmRhICh0 YWcpIChzdmctdGFnLW1ha2UgIkJFR0lOIiA6aW52ZXJzZSB0IDpmYWNlICdvcmctdGFnKSkpKQog ICAgICAgICgiK0NBUFRJT046IiAuICgobGFtYmRhICh0YWcpIChzdmctdGFnLW1ha2UgIkNBUFRJ T04iIDppbnZlcnNlIHQgOmZhY2UgJ29yZy10YWcpKSkpCiAgICAgICAgKCIrRU5EOiIgLiAoKGxh bWJkYSAodGFnKSAoc3ZnLXRhZy1tYWtlICJFTkQiIDppbnZlcnNlIHQgOmZhY2UgJ29yZy10YWcp KSkpCgkoIjpYIiAuICgobGFtYmRhICh0YWcpIChzdmctdGFnLW1ha2UgIltYXSIgOmludmVyc2Ug dCA6ZmFjZSAnb3JnLXRvZG8pKSkpCiAgICAgICAgKCI6LSIgLiAoKGxhbWJkYSAodGFnKSAoc3Zn LXRhZy1tYWtlICJbLV0iIDppbnZlcnNlIHQgOmZhY2UgJ29yZy10YWcpKSkpCgkKICAgICAgICA7 OyBDaXRhdGlvbiBvZiB0aGUgZm9ybSBbY2l0ZTpAS251dGg6MTk4NF0gCiAgICAgICAgKCJcXChc XFtjaXRlOkBbQS1aYS16XSs6XFwpIiAuICgobGFtYmRhICh0YWcpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChzdmctdGFnLW1ha2UgdGFnCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmludmVyc2UgdAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpiZWcg NyA6ZW5kIC0xCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgOmNyb3AtcmlnaHQgdCkpKSkKICAgICAgICAoIlxcW2NpdGU6QFtBLVphLXpdKzpc XChbMC05XStcXF1cXCkiIC4gKChsYW1iZGEgKHRhZykKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKHN2Zy10YWctbWFrZSB0YWcKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZW5kIC0xCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgOmNyb3AtbGVmdCB0KSkpKQoKCgk7OzsgV29ya3MgZm9yIHN0dWZmIGxpa2UgOlhYWHxZWVk6 CgkoIlxcKDpbQS1aXStcXClcfFthLXpBLVojMC05XSs6IiAuICgobGFtYmRhICh0YWcpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3ZnLXRhZy1tYWtlIHRhZyA6 YmVnIDEgOmludmVyc2UgdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgOm1hcmdpbiAwIDpjcm9wLXJpZ2h0IHQpKSkpICAgICAgICAKCiAg ICAgICAgKCI6W0EtWl0rXFwoXHxbYS16QS1aIzAtOV0rOlxcKSIgLiAoKGxhbWJkYSAodGFnKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN2Zy10YWctbWFrZSB0 YWcgOmJlZyAxIDplbmQgLTEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgOm1hcmdpbiAwIDpjcm9wLWxlZnQgdCkpKSkKCTs7IEFjdGl2ZSBk YXRlICh3aXRoIG9yIHdpdGhvdXQgZGF5IG5hbWUsIHdpdGggb3Igd2l0aG91dCB0aW1lKQogICAg ICAgICgsKGZvcm1hdCAiXFwoPCVzPlxcKSIgZGF0ZS1yZSkgLgogICAgICAgICAoKGxhbWJkYSAo dGFnKQogICAgICAgICAgICAoc3ZnLXRhZy1tYWtlIHRhZyA6YmVnIDEgOmVuZCAtMSA6bWFyZ2lu IDAgOmZhY2UgJ3Bhc3RlbHBpbmsgOmludmVyc2UgdCkpKSkKICAgICAgICAoLChmb3JtYXQgIlxc KDwlcyBcXCklcz4iIGRhdGUtcmUgZGF5LXRpbWUtcmUpIC4KICAgICAgICAgKChsYW1iZGEgKHRh ZykKICAgICAgICAgICAgKHN2Zy10YWctbWFrZSB0YWcgOmJlZyAxIDppbnZlcnNlIHQgOmNyb3At cmlnaHQgdCA6bWFyZ2luIDAgOmZhY2UgJ3Bhc3RlbHBpbmspKSkpCiAgICAgICAgKCwoZm9ybWF0 ICI8JXMgXFwoJXM+XFwpIiBkYXRlLXJlIGRheS10aW1lLXJlKSAuCiAgICAgICAgICgobGFtYmRh ICh0YWcpCiAgICAgICAgICAgIChzdmctdGFnLW1ha2UgdGFnIDplbmQgLTEgOmludmVyc2Ugbmls IDpjcm9wLWxlZnQgdCA6bWFyZ2luIDAgOmZhY2UgJ3Bhc3RlbHBpbmspKSkpKSkKCiAgICAgICAg OzsgSW5hY3RpdmUgZGF0ZSAgKHdpdGggb3Igd2l0aG91dCBkYXkgbmFtZSwgd2l0aCBvciB3aXRo b3V0IHRpbWUpCiAgICAgICAgIDsoLChmb3JtYXQgIlxcKFxcWyVzXFxdXFwpIiBkYXRlLXJlKSAu CiAgICAgICAgIDsgKChsYW1iZGEgKHRhZykKICAgICAgICAgOyAgICAoc3ZnLXRhZy1tYWtlIHRh ZyA6YmVnIDEgOmVuZCAtMSA6bWFyZ2luIDAgOmZhY2UgJ29yZy1kYXRlKSkpKQogICAgICAgICA7 KCwoZm9ybWF0ICJcXChcXFslcyBcXCklc1xcXSIgZGF0ZS1yZSBkYXktdGltZS1yZSkgLgogICAg ICAgICA7ICgobGFtYmRhICh0YWcpCiAgICAgICAgIDsgICAgKHN2Zy10YWctbWFrZSB0YWcgOmJl ZyAxIDppbnZlcnNlIG5pbCA6Y3JvcC1yaWdodCB0IDptYXJnaW4gMCA6ZmFjZSAnb3JnLWRhdGUp KSkpCiAgICAgICAgIDsoLChmb3JtYXQgIlxcWyVzIFxcKCVzXFxdXFwpIiBkYXRlLXJlIGRheS10 aW1lLXJlKSAuCiAgICAgICAgIDsgKChsYW1iZGEgKHRhZykKICAgICAgICAgOyAgICAoc3ZnLXRh Zy1tYWtlIHRhZyA6ZW5kIC0xIDppbnZlcnNlIHQgOmNyb3AtbGVmdCB0IDptYXJnaW4gMCA6ZmFj ZSAnb3JnLWRhdGUpKSkpKSkKCihyZXF1aXJlICdzdmctdGFnLW1vZGUpCihnbG9iYWwtc3ZnLXRh Zy1tb2RlIDEpCih1c2UtcGFja2FnZSBzdmctbGliKQojK0VORF9TUkMKCiogSXZ5LCBTbWV4LCBP cmRlcmxlc3MgYW5kIFN3aXBlcgojK0JFR0lOX1NSQyBlbGlzcAooaXZ5LW1vZGUgMSkKCihyZXF1 aXJlICdzbWV4KQooZ2xvYmFsLXNldC1rZXkgKGtiZCAiTS14IikgJ3NtZXgpCgooZ2xvYmFsLXNl dC1rZXkgKGtiZCAiQy1zIikgJ3N3aXBlcikKCgoodXNlLXBhY2thZ2Ugb3JkZXJsZXNzCiAgOmVu c3VyZSB0CiAgOmN1c3RvbQogIChjb21wbGV0aW9uLXN0eWxlcyAnKG9yZGVybGVzcyBiYXNpYykp CiAgKGNvbXBsZXRpb24tY2F0ZWdvcnktb3ZlcnJpZGVzICcoKGZpbGUgKHN0eWxlcyBiYXNpYyBw YXJ0aWFsLWNvbXBsZXRpb24pKSkpKQoKKHNldHEgaXZ5LXJlLWJ1aWxkZXJzLWFsaXN0ICcoKHQg LiBvcmRlcmxlc3MtaXZ5LXJlLWJ1aWxkZXIpKSkKKGFkZC10by1saXN0ICdpdnktaGlnaGxpZ2h0 LWZ1bmN0aW9ucy1hbGlzdCAnKG9yZGVybGVzcy1pdnktcmUtYnVpbGRlciAuIG9yZGVybGVzcy1p dnktaGlnaGxpZ2h0KSkKCiMrRU5EX1NSQwoqIENlbnRhdXIgVGFicwojK0JFR0lOX1NSQyBlbGlz cAoodXNlLXBhY2thZ2UgY2VudGF1ci10YWJzCiAgOmRlbWFuZAogIDpjb25maWcKICAoY2VudGF1 ci10YWJzLW1vZGUgdCkKICA6YmluZAogICgiQy08cHJpb3I+IiAuIGNlbnRhdXItdGFicy1iYWNr d2FyZCkKICAoIkMtPG5leHQ+IiAuIGNlbnRhdXItdGFicy1mb3J3YXJkKSkKKGNlbnRhdXItdGFi cy1oZWFkbGluZS1tYXRjaCkKKHNldHEgY2VudGF1ci10YWJzLXN0eWxlICJiYXIiKQooc2V0cSBj ZW50YXVyLXRhYnMtaGVpZ2h0IDEyKQooc2V0cSBjZW50YXVyLXRhYnMtc2V0LWljb25zIHQpCihz ZXRxIGNlbnRhdXItdGFicy1jbG9zZS1idXR0b24gIlgiKQooc2V0cSBjZW50YXVyLXRhYnMtc2V0 LW1vZGlmaWVkLW1hcmtlciB0KQooc2V0cSBjZW50YXVyLXRhYnMtbW9kaWZpZWQtbWFya2VyICIq IikKKHNldHEgY2VudGF1ci10YWJzLXNldC1iYXIgJ2xlZnQpCiMrRU5EX1NSQwoKKiBMU1AtTW9k ZSAoRGV2ZWxvcG1lbnQgaW4gZ2VuZXJhbCkKQ29tbWVudGluZyBvdXQgdGhlIGxpbmVzIHdpdGgg YSBudW1iZXIgYWZ0ZXJ3YXJkcyBiZWNhdXNlIEkgYW0gdHJ5aW5nIHRvIHN3aXRjaAp0byBMU1At QnJpZGdlIHRvIHNlZSBpZiBpdCBzb2x2ZXMgdGhlIGlzc3VlIG9mIG15IEVtYWNzIGZyZWV6aW5n LgojK0JFR0lOX1NSQyBlbGlzcAoodXNlLXBhY2thZ2UgcHJvamVjdGlsZSkKKHVzZS1wYWNrYWdl IGZseWNoZWNrIDplbnN1cmUgdCA6aW5pdCAoZ2xvYmFsLWZseWNoZWNrLW1vZGUpKQoodXNlLXBh Y2thZ2UgeWFzbmlwcGV0IDpjb25maWcgKHlhcy1nbG9iYWwtbW9kZSkpCjsodXNlLXBhY2thZ2Ug bHNwLXVpKSAxCih1c2UtcGFja2FnZSB3aGljaC1rZXkgOmNvbmZpZyAod2hpY2gta2V5LW1vZGUp KQo7OyBMU1AtSmF2YSBmcmVlemVzIG15IG1hY2hpbmUgc28gaXQncyBjdXJyZW50bHkgY29tbWVu dGVkIG91dAo7KHVzZS1wYWNrYWdlIGxzcC1qYXZhIDpjb25maWcgKGFkZC1ob29rICdqYXZhLW1v ZGUtaG9vayAnbHNwKSkKOyh1c2UtcGFja2FnZSBkYXAtbW9kZSA6YWZ0ZXIgbHNwLW1vZGUgOmNv bmZpZyAoZGFwLWF1dG8tY29uZmlndXJlLW1vZGUpKSAxCgo7Oyh1c2UtcGFja2FnZSBsc3AtbW9k ZSAxCjs7ICA6aG9vayAoKGxzcC1tb2RlIC4gbHNwLWVuYWJsZS13aGljaC1rZXktaW50ZWdyYXRp b24pKQo7OyAgOmNvbmZpZwo7OyAgKHNldHEKOzsgICBsc3AtZW5hYmxlLWZpbGUtd2F0Y2hlcnMg bmlsCjs7ICAgbHNwLWhlYWRlcmxpbmUtYnJlYWRjcnVtYi1lbmFibGUgbmlsCjs7ICAgKQo7OyAg OzsgUGVyZm9ybWFuY2UgdHdlYWtzLCBzZWUKOzsgIDs7IGh0dHBzOi8vZ2l0aHViLmNvbS9lbWFj cy1sc3AvbHNwLW1vZGUjcGVyZm9ybWFuY2UKOzsgIChzZXRxIGdjLWNvbnMtdGhyZXNob2xkIDEw MDAwMDAwMCkKOzsgIChzZXRxIHJlYWQtcHJvY2Vzcy1vdXRwdXQtbWF4ICgqIDEwMjQgMTAyNCkp IDs7IDFtYgo7OyAgKHNldHEgbHNwLWlkbGUtZGVsYXkgMC41MDApCjs7ICApCgoocmVxdWlyZSAn Z28tbW9kZSkKCjsocmVxdWlyZSAnY29tcGFueSkgMQoKOyhhZGQtaG9vayAnYWZ0ZXItaW5pdC1o b29rICdnbG9iYWwtY29tcGFueS1tb2RlKSAxCgo7KHVzZS1wYWNrYWdlIGNvbXBhbnktYm94IDEK OyAgOmhvb2sgKGNvbXBhbnktbW9kZSAuIGNvbXBhbnktYm94LW1vZGUpKQoKOzsgbHNwIGV4dHJh cyAxCjs7KHNldHEgbHNwLXVpLXNpZGVsaW5lLWVuYWJsZSB0Cjs7ICAgICAgbHNwLXVpLXNpZGVs aW5lLXNob3ctc3ltYm9sIHQKOzsgICAgICBsc3AtdWktc2lkZWxpbmUtc2hvdy1ob3ZlciB0Cjs7 ICAgICAgbHNwLXVpLXNpZGVsaW5lLXNob3ctZmx5Y2hlY2sgdAo7OyAgICAgIGxzcC11aS1zaWRl bGluZS1zaG93LWNvZGUtYWN0aW9ucyBuaWwKOzsgICAgICBsc3AtdWktc2lkZWxpbmUtc2hvdy1k aWFnbm9zdGljcyBuaWwpCgoKOzsgRWxweQoodXNlLXBhY2thZ2UgZWxweQogIDplbnN1cmUgdAog IDppbml0CiAgKGVscHktZW5hYmxlKSkKCjs7IFRhYk5pbmUgaW50ZWdyYXRpb24gZm9yIGNvZGUg Y29tcGxldGlvbgo7Oyh1c2UtcGFja2FnZSBjb21wYW55LXRhYm5pbmUgOmVuc3VyZSB0KSAxCjs7 KHJlcXVpcmUgJ2NvbXBhbnktdGFibmluZSkgMQo7OyhhZGQtdG8tbGlzdCAnY29tcGFueS1iYWNr ZW5kcyAjJ2NvbXBhbnktdGFibmluZSkgMQo7OyBUcmlnZ2VyIGNvbXBsZXRpb24gaW1tZWRpYXRl bHkuCjs7KHNldHEgY29tcGFueS1pZGxlLWRlbGF5IDAuMTUpIDEKCjs7IE51bWJlciB0aGUgY2Fu ZGlkYXRlcyAodXNlIE0tMSwgTS0yIGV0YyB0byBzZWxlY3QgY29tcGxldGlvbnMpLgo7OyhzZXRx IGNvbXBhbnktc2hvdy1udW1iZXJzIHQpIDEKCjs7IEpTIGRldmVsb3BtZW50Cjs7KHVzZS1wYWNr YWdlIGZyb250c2lkZS1qYXZhc2NyaXB0IDEKOzsgIDppbml0IChmcm9udHNpZGUtamF2YXNjcmlw dCkpCgojK0VORF9TUkMKKiBGb250CiMrQkVHSU5fU1JDIGVsaXNwCjtXb3JrcyB3aXRoIE9wdGlv bnMtPlNldCBEZWZhdWx0IEZvbnQKKHNldC1mYWNlLWF0dHJpYnV0ZSAnZGVmYXVsdCBuaWwgOmZh bWlseSAiSW9zZXZrYSIpCjsoc2V0LWZyYW1lLWZvbnQgIklvc2V2a2EgMTgiIG5pbCB0KQojK0VO RF9TUkMKCiogR29sZGVuIFJhdGlvCk1ha2VzIGl0IHNvIHRoZSBidWZmZXIgeW91IGFyZSBmb2N1 c2VkIG9uIGlzIGxhcmdlciB0aGFuIHRoZSBvbmVzIG5vdCBmb2N1c2VkIG9uLgojK0JFR0lOX1NS QyBlbGlzcAo7IGh0dHBzOi8vZ2l0aHViLmNvbS9yb21hbi9nb2xkZW4tcmF0aW8uZWwKKGdvbGRl bi1yYXRpby1tb2RlIDEpCiMrRU5EX1NSQwoqIEJhYmVsCiMrQkVHSU5fU1JDIGVsaXNwCjs7IE9y ZyBCYWJlbAo7KGxvYWQtbGlicmFyeSAnb2ItcnVzdCkKKG9yZy1iYWJlbC1kby1sb2FkLWxhbmd1 YWdlcwogJ29yZy1iYWJlbC1sb2FkLWxhbmd1YWdlcwogJygocHl0aG9uIC4gdCkpKQo7ICAgKG9j dGF2ZSAuIHQpCjsgICAocnVzdCAuIHQpKSkKIytFTkRfU1JDCiogWWFzbmlwcGV0CiMrQkVHSU5f U1JDIGVsaXNwCihyZXF1aXJlICd5YXNuaXBwZXQpCiMrRU5EX1NSQwoKKiBQZXJzcGVjdGl2ZQoj K0JFR0lOX1NSQyBlbGlzcAoocmVxdWlyZSAncGVyc3BlY3RpdmUpCihnbG9iYWwtc2V0LWtleSAo a2JkICJDLXggQy1iIikgJ3BlcnNwLWxpc3QtYnVmZmVycykKKGdsb2JhbC1zZXQta2V5IChrYmQg IkMteCBDLXAiKSAncGVyc3Atc3dpdGNoKQooY3VzdG9taXplLXNldC12YXJpYWJsZSAncGVyc3At bW9kZS1wcmVmaXgta2V5IChrYmQgIkMtYyBNLXAiKSkKKHBlcnNwLW1vZGUpCiMrRU5EX1NSQwoK KiBNYXJnaW5hbGlhCiMrQkVHSU5fU1JDIGVsaXNwCihtYXJnaW5hbGlhLW1vZGUgMSkKIytFTkRf U1JDCiogRG9vbSBNb2RlbGluZQojK0JFR0lOX1NSQyBlbGlzcAoodXNlLXBhY2thZ2UgZG9vbS1t b2RlbGluZQogIDplbnN1cmUgdAogIDppbml0IChkb29tLW1vZGVsaW5lLW1vZGUgMSkpCiMrRU5E X1NSQwoqIENlbnRlcmVkIEN1cnNvciBNb2RlCiMrQkVHSU5fU1JDIGVsaXNwCih1c2UtcGFja2Fn ZSBjZW50ZXJlZC1jdXJzb3ItbW9kZQogIDpkZW1hbmQKICA6Y29uZmlnCiAgOzsgT3B0aW9uYWws IGVuYWJsZXMgY2VudGVyZWQtY3Vyc29yLW1vZGUgaW4gYWxsIGJ1ZmZlcnMuCiAgKGdsb2JhbC1j ZW50ZXJlZC1jdXJzb3ItbW9kZSkpCiMrRU5EX1NSQwoqIEJ1aWx0LUluIGZ1bmN0aW9ucyAoRWxl Y3RyaWMgcGFpciBhbmQgd2hpY2ggZnVuY3Rpb24pCj1zaG93LXBhcmVuLWNvbnRleHQtd2hlbi1v ZmZzY3JlZW49IGlzIGEgZnVuY3Rpb24gdG8gY3VzdG9taXplIHdoaWNoIG1ha2VzIGl0CnNvIHRo YXQgeW91IGNhbiBzZWUgd2hhdCBmdW5jdGlvbiB5b3VyIGN1cnJlbnQgYnJhY2UvcGFyZW4gaXMg bWF0Y2hpbmcgd2hlbgp0aGF0IGZ1bmN0aW9uIGlzIG9mZnNjcmVlbi4gVGhpcyBvbmx5IHdvcmtz IG9uIEVtYWNzIDI5IGFuZCBuZXdlciB0aG91Z2guCiMrQkVHSU5fU1JDIGVsaXNwCjs7OyBFbGVj dHJpYy1wYWlyIG1vZGUgKE1hdGNoZXMgcGFyZW5zIGFuZCBicmFja2V0cykKKGVsZWN0cmljLXBh aXItbW9kZSAxKQooc2V0cSBzaG93LXBhcmVuLWNvbnRleHQtd2hlbi1vZmZzY3JlZW4gJ292ZXJs YXkpCjs7IHRvcC1iYXIgd2hpY2ggZnVuY3Rpb24geW91J3JlIGN1aXJyZW50bHkgaW4KOzsod2hp Y2gtZnVuY3Rpb24tbW9kZSkKIytFTkRfU1JDCgoqIFJhaW5ib3cgRGVsaW1pdGVyIE1vZGUKUmFp bmJvdyBkZWxpbWl0ZXIgbW9kZSBjaGFuZ2VzIGNvbG9ycyBvZiBkZWxpbWl0ZXMgdG8gbWF0Y2gg dGhlaXIgcGFydG5lcgojK0JFR0lOX1NSQyBlbGlzcAooYWRkLWhvb2sgJ3Byb2ctbW9kZS1ob29r ICMncmFpbmJvdy1kZWxpbWl0ZXJzLW1vZGUpCiMrRU5EX1NSQwoqIExpbmUtUmVtaW5kZXIgTW9k ZQpMaW5lLXJlbWluZGVyLW1vZGUsIGJhc2ljYWxseSBzaG93cyB3aGF0IHlvdSd2ZSBjaGFuZ2Vk IGluIHlvdXIgY3VycmVudCBzZXNzaW9uCgpPbmUgdGhpbmcgdG8gbm90ZSB0aG91Z2ggaXMgdGhh dCB3aXRoIHRoZSBjdXJyZW50IHRoZW1lIHNldHVwLCB0aGVyZSBpcyBhbiBpc3N1ZQp3aXRoIHNl ZWluZyB0aGUgeWVsbG93IG1hcmtlciBzbyBJIGNoYW5nZWQgdGhhdCB2YWx1ZSB0byBiZSAjRERF MTY1LiBJdCBpcyBhcHBhcmVudGx5CmJlaW5nIHdvcmtlZCBvbiB1cHN0cmVhbSBpbiB0aGUgdGhl bWUsIGJ1dCBoYXNuJ3QgYmVlbiBmaW5pc2hlZCB5ZXQuCgo6VE9ETzogRmlndXJlIG91dCBob3cg dG8gY2hhbmdlIHRoZSBpZGVudGlmaWVyIHRvIHRoZSByaWdodCBoYW5kIHNpZGUgb2YgdGhlIGZy aW5nZT8/PwojK0JFR0lOX1NSQyBlbGlzcAoocmVxdWlyZSAnaW5kaWNhdG9ycykKKHVzZS1wYWNr YWdlIGxpbmUtcmVtaW5kZXIKICA6ZW5zdXJlIHQKICA6aW5pdAogIChzZXRxIGxpbmUtcmVtaW5k ZXItc2hvdy1vcHRpb24gJ2luZGljYXRvcnMpCiAgOzsgQ3VzdG9taXplIHRoZSBtb2RpZmllZCBz aWduLgogIDs7KHNldHEgbGluZS1yZW1pbmRlci1tb2RpZmllZC1zaWduICLilpAiKSAgOyBub3Qg bmVlZGVkCiAgOztDdXN0b21pemUgdGhlIHNhdmVkIHNpZ24uCiAgOzsoc2V0cSBsaW5lLXJlbWlu ZGVyLXNhdmVkLXNpZ24gIuKWkCIpICA7IG5vdCBuZWVkZWQKICA7O0N1c3RvbWl6ZSBzdHJpbmcg b24gdGhlIHJpZ2h0L2xlZnQgc2lkZSBvZiB0aGUgbGluZSBudW1iZXIuCiAgKHNldHEgbGluZS1y ZW1pbmRlci1saW51bS1sZWZ0LXN0cmluZyAiIikKICAoc2V0cSBsaW5lLXJlbWluZGVyLWxpbnVt LXJpZ2h0LXN0cmluZyAiICIpCiAgOmNvbmZpZwogIChhZGQtaG9vayAncHJvZy1tb2RlLWhvb2sK ICAgICAgICAgICAgKGZ1bmN0aW9uCiAgICAgICAgICAgICAobGFtYmRhICgpCiAgICAgICAgICAg ICAgIChsaW5lLXJlbWluZGVyLW1vZGUgdCkKICAgICAgICAgICAgICAgKHNldHEgbGluZS1yZW1p bmRlci1zaG93LW9wdGlvbiAnaW5kaWNhdG9ycykpKSkpCihnbG9iYWwtbGluZS1yZW1pbmRlci1t b2RlIHQpCiMrRU5EX1NSQwoK --b1_0RivMYcIFzDWLX2R6VxDjfZjRkHocvgBoHn7ostww--