From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nicolas Berthier Subject: [bug] in org-element cache (?) Date: Wed, 16 Jul 2014 17:01:45 +0200 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:33801) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X7QiU-0000hi-Be for emacs-orgmode@gnu.org; Wed, 16 Jul 2014 11:02:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1X7QiM-0007AA-MY for emacs-orgmode@gnu.org; Wed, 16 Jul 2014 11:01:58 -0400 Received: from mail2-relais-roc.national.inria.fr ([192.134.164.83]:17466) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X7QiK-00079c-Sx for emacs-orgmode@gnu.org; Wed, 16 Jul 2014 11:01:50 -0400 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode --=-=-= Content-Type: text/plain Hello list, I just hit a bug in org-element with the current development branch (commit 9cf3c4e9712aba63be36eac7193e4ac85f491f8b), when exporting a rather big Org file to LaTeX (HTML export works fine). It happens during export, in function `org-element--cache-process-request', with error "(wrong-type-argument number-or-marker-p nil)" (complete backtrace attached). I did not manage to obtain an ECM triggering this bug that I could reasonably give here, so I dug into past commits: it turns out that it seems to have been introduced by commit 093d455f7ff6ae8e2695f1fc8f149672700e9ac5 ("org-element: Better threshold computation during synchronization"): reverting it on top of the current master branch makes the bug disappear (yet this commit may not be the root cause of the bug, of course). FYI, on the org side, I did not experience the error as long as I commented out one particular (among several occurrences of very similar ones that did not trigger the bug) sequence of lines like the following: #+begin_src org ,#+name: foo ,#+header: :file (by-backend (latex "foo.tikz") (t "foo.png")) ,#+begin_src latex :results raw file \begin{tikzpicture} \node {Bla}; \end{tikzpicture} ,#+end_src ,#+caption: Foo ,#+attr_latex: :float t :width "" ,#+label: fig:foo ,#+results: foo #+end_src Regards, --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=backtrace Content-Transfer-Encoding: base64 RGVidWdnZXIgZW50ZXJlZC0tTGlzcCBlcnJvcjogKHdyb25nLXR5cGUtYXJndW1lbnQgbnVtYmVy LW9yLW1hcmtlci1wIG5pbCkKICArKG5pbCAtMTcwNiAtMTA0NykKICAobGV0ICgobGltaXQgKCsg KGFyZWYgcmVxdWVzdCAxKSAoYXJlZiByZXF1ZXN0IDMpIGV4dHJhKSkpICh3aGVuIChhbmQgdGhy ZXNob2xkICg8IHRocmVzaG9sZCBsaW1pdCkpICh0aHJvdyAocXVvdGUgaW50ZXJydXB0KSBuaWwp KSAobGV0ICgocGFyZW50IChvcmctZWxlbWVudC0tcGFyc2UtdG8gbGltaXQgdCB0aW1lLWxpbWl0 KSkpIChhc2V0IHJlcXVlc3QgNSBwYXJlbnQpIChhc2V0IHJlcXVlc3QgNiAyKSAodGhyb3cgKHF1 b3RlIGVuZC1waGFzZSkgbmlsKSkpCiAgKGNhdGNoIChxdW90ZSBlbmQtcGhhc2UpICh3aGVuIChl cXVhbCAoYXJlZiByZXF1ZXN0IDApIG5leHQpICh0aHJvdyAocXVvdGUgcXVpdCkgdCkpIChsZXQg KChsaW1pdCAoKyAoYXJlZiByZXF1ZXN0IDEpIChhcmVmIHJlcXVlc3QgMykgZXh0cmEpKSkgKHdo ZW4gKGFuZCB0aHJlc2hvbGQgKDwgdGhyZXNob2xkIGxpbWl0KSkgKHRocm93IChxdW90ZSBpbnRl cnJ1cHQpIG5pbCkpIChsZXQgKChwYXJlbnQgKG9yZy1lbGVtZW50LS1wYXJzZS10byBsaW1pdCB0 IHRpbWUtbGltaXQpKSkgKGFzZXQgcmVxdWVzdCA1IHBhcmVudCkgKGFzZXQgcmVxdWVzdCA2IDIp ICh0aHJvdyAocXVvdGUgZW5kLXBoYXNlKSBuaWwpKSkpCiAgKHByb2duIChjYXRjaCAocXVvdGUg ZW5kLXBoYXNlKSAod2hlbiAoZXF1YWwgKGFyZWYgcmVxdWVzdCAwKSBuZXh0KSAodGhyb3cgKHF1 b3RlIHF1aXQpIHQpKSAobGV0ICgobGltaXQgKCsgKGFyZWYgcmVxdWVzdCAxKSAoYXJlZiByZXF1 ZXN0IDMpIGV4dHJhKSkpICh3aGVuIChhbmQgdGhyZXNob2xkICg8IHRocmVzaG9sZCBsaW1pdCkp ICh0aHJvdyAocXVvdGUgaW50ZXJydXB0KSBuaWwpKSAobGV0ICgocGFyZW50IChvcmctZWxlbWVu dC0tcGFyc2UtdG8gbGltaXQgdCB0aW1lLWxpbWl0KSkpIChhc2V0IHJlcXVlc3QgNSBwYXJlbnQp IChhc2V0IHJlcXVlc3QgNiAyKSAodGhyb3cgKHF1b3RlIGVuZC1waGFzZSkgbmlsKSkpKSkKICAo aWYgKD0gKGFyZWYgcmVxdWVzdCA2KSAxKSAocHJvZ24gKGNhdGNoIChxdW90ZSBlbmQtcGhhc2Up ICh3aGVuIChlcXVhbCAoYXJlZiByZXF1ZXN0IDApIG5leHQpICh0aHJvdyAocXVvdGUgcXVpdCkg dCkpIChsZXQgKChsaW1pdCAoKyAoYXJlZiByZXF1ZXN0IDEpIChhcmVmIHJlcXVlc3QgMykgZXh0 cmEpKSkgKHdoZW4gKGFuZCB0aHJlc2hvbGQgKDwgdGhyZXNob2xkIGxpbWl0KSkgKHRocm93IChx dW90ZSBpbnRlcnJ1cHQpIG5pbCkpIChsZXQgKChwYXJlbnQgKG9yZy1lbGVtZW50LS1wYXJzZS10 byBsaW1pdCB0IHRpbWUtbGltaXQpKSkgKGFzZXQgcmVxdWVzdCA1IHBhcmVudCkgKGFzZXQgcmVx dWVzdCA2IDIpICh0aHJvdyAocXVvdGUgZW5kLXBoYXNlKSBuaWwpKSkpKSkKICAod2hlbiAoPSAo YXJlZiByZXF1ZXN0IDYpIDEpIChjYXRjaCAocXVvdGUgZW5kLXBoYXNlKSAod2hlbiAoZXF1YWwg KGFyZWYgcmVxdWVzdCAwKSBuZXh0KSAodGhyb3cgKHF1b3RlIHF1aXQpIHQpKSAobGV0ICgobGlt aXQgKCsgKGFyZWYgcmVxdWVzdCAxKSAoYXJlZiByZXF1ZXN0IDMpIGV4dHJhKSkpICh3aGVuIChh bmQgdGhyZXNob2xkICg8IHRocmVzaG9sZCBsaW1pdCkpICh0aHJvdyAocXVvdGUgaW50ZXJydXB0 KSBuaWwpKSAobGV0ICgocGFyZW50IChvcmctZWxlbWVudC0tcGFyc2UtdG8gbGltaXQgdCB0aW1l LWxpbWl0KSkpIChhc2V0IHJlcXVlc3QgNSBwYXJlbnQpIChhc2V0IHJlcXVlc3QgNiAyKSAodGhy b3cgKHF1b3RlIGVuZC1waGFzZSkgbmlsKSkpKSkKICAoY2F0Y2ggKHF1b3RlIHF1aXQpICh3aGVu ICg9IChhcmVmIHJlcXVlc3QgNikgMCkgKGNhdGNoIChxdW90ZSBlbmQtcGhhc2UpIChsZXQgKChi ZWcgKGFyZWYgcmVxdWVzdCAwKSkgKGVuZCAoYXJlZiByZXF1ZXN0IDIpKSAob3V0cmVhY2ggKGFy ZWYgcmVxdWVzdCA0KSkpICh3aGlsZSB0ICh3aGVuIChvcmctZWxlbWVudC0tY2FjaGUtaW50ZXJy dXB0LXAgdGltZS1saW1pdCkgKHRocm93IChxdW90ZSBpbnRlcnJ1cHQpIG5pbCkpIChsZXQgKChu b2RlIC4uLikgZGF0YSBkYXRhLWtleSkgKHdoaWxlIG5vZGUgKGxldCogLi4uIC4uLikpIChpZiBk YXRhIChsZXQgLi4uIC4uLikgKHRocm93IC4uLiB0KSkpKSkpKSAod2hlbiAoPSAoYXJlZiByZXF1 ZXN0IDYpIDEpIChjYXRjaCAocXVvdGUgZW5kLXBoYXNlKSAod2hlbiAoZXF1YWwgKGFyZWYgcmVx dWVzdCAwKSBuZXh0KSAodGhyb3cgKHF1b3RlIHF1aXQpIHQpKSAobGV0ICgobGltaXQgKCsgKGFy ZWYgcmVxdWVzdCAxKSAoYXJlZiByZXF1ZXN0IDMpIGV4dHJhKSkpICh3aGVuIChhbmQgdGhyZXNo b2xkICg8IHRocmVzaG9sZCBsaW1pdCkpICh0aHJvdyAocXVvdGUgaW50ZXJydXB0KSBuaWwpKSAo bGV0ICgocGFyZW50IChvcmctZWxlbWVudC0tcGFyc2UtdG8gbGltaXQgdCB0aW1lLWxpbWl0KSkp IChhc2V0IHJlcXVlc3QgNSBwYXJlbnQpIChhc2V0IHJlcXVlc3QgNiAyKSAodGhyb3cgKHF1b3Rl IGVuZC1waGFzZSkgbmlsKSkpKSkgKGxldCAoKHN0YXJ0IChhcmVmIHJlcXVlc3QgMCkpIChvZmZz ZXQgKGFyZWYgcmVxdWVzdCAzKSkgKHBhcmVudCAoYXJlZiByZXF1ZXN0IDUpKSAobm9kZSAob3Jn LWVsZW1lbnQtLWNhY2hlLXJvb3QpKSAoc3RhY2sgKGxpc3QgbmlsKSkgKGxlZnRwIHQpIGV4aXQt ZmxhZykgKHdoZW4gKGFuZCAobm90IHBhcmVudCkgKHplcm9wIG9mZnNldCkpICh0aHJvdyAocXVv dGUgcXVpdCkgdCkpICh3aGlsZSBub2RlIChsZXQqICgoZGF0YSAoYXZsLXRyZWUtLW5vZGUtZGF0 YSBub2RlKSkgKGtleSAob3JnLWVsZW1lbnQtLWNhY2hlLWtleSBkYXRhKSkpIChpZiAoYW5kIGxl ZnRwIChhdmwtdHJlZS0tbm9kZS1sZWZ0IG5vZGUpIChub3QgKG9yZy1lbGVtZW50LS1jYWNoZS1r ZXktbGVzcy1wIGtleSBzdGFydCkpKSAocHJvZ24gKHB1c2ggbm9kZSBzdGFjaykgKHNldHEgbm9k ZSAoYXZsLXRyZWUtLW5vZGUtbGVmdCBub2RlKSkpICh1bmxlc3MgKG9yZy1lbGVtZW50LS1jYWNo ZS1rZXktbGVzcy1wIGtleSBzdGFydCkgKHdoZW4gKGVxdWFsIGtleSBuZXh0KSAodGhyb3cgLi4u IHQpKSAod2hlbiAob3IgZXhpdC1mbGFnIC4uLikgKGFzZXQgcmVxdWVzdCAwIGtleSkgKGFzZXQg cmVxdWVzdCA1IHBhcmVudCkgKHRocm93IC4uLiBuaWwpKSAodW5sZXNzICh6ZXJvcCBvZmZzZXQp IChvcmctZWxlbWVudC0tY2FjaGUtc2hpZnQtcG9zaXRpb25zIGRhdGEgb2Zmc2V0KSAoZG9saXN0 IC4uLiAuLi4pKSAobGV0ICguLi4pICh3aGlsZSAuLi4gLi4uKSAoY29uZCAuLi4gLi4uKSAod2hl biAuLi4gLi4uKSkpIChzZXRxIG5vZGUgKGlmIChzZXRxIGxlZnRwIC4uLikgKGF2bC10cmVlLS1u b2RlLXJpZ2h0IG5vZGUpIChwb3Agc3RhY2spKSkpKSkgdCkpCiAgb3JnLWVsZW1lbnQtLWNhY2hl LXByb2Nlc3MtcmVxdWVzdChbMTg0MzQgbmlsIDE2NjI1IC0xNzA2IG5pbCBuaWwgMV0gbmlsIDE2 NTUwIG5pbCAtMTA0NykKICAod2hpbGUgb3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMtcmVxdWVzdHMg KHNldHEgcmVxdWVzdCAoY2FyIG9yZy1lbGVtZW50LS1jYWNoZS1zeW5jLXJlcXVlc3RzKSBuZXh0 IChudGggMSBvcmctZWxlbWVudC0tY2FjaGUtc3luYy1yZXF1ZXN0cykpIChvcmctZWxlbWVudC0t Y2FjaGUtcHJvY2Vzcy1yZXF1ZXN0IHJlcXVlc3QgKGFuZCBuZXh0IChhcmVmIG5leHQgMCkpIHRo cmVzaG9sZCAoYW5kIChub3QgdGhyZXNob2xkKSAodGltZS1hZGQgKGN1cnJlbnQtdGltZSkgb3Jn LWVsZW1lbnQtY2FjaGUtc3luYy1kdXJhdGlvbikpIChvciBleHRyYSAwKSkgKHdoZW4gbmV4dCAo aW5jZiAoYXJlZiBuZXh0IDMpIChhcmVmIHJlcXVlc3QgMykpIChhc2V0IG5leHQgMiAoYXJlZiBy ZXF1ZXN0IDIpKSAoYXNldCBuZXh0IDYgKGFyZWYgcmVxdWVzdCA2KSkpIChzZXRxIG9yZy1lbGVt ZW50LS1jYWNoZS1zeW5jLXJlcXVlc3RzIChjZHIgb3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMtcmVx dWVzdHMpKSkKICAoY2F0Y2ggKHF1b3RlIGludGVycnVwdCkgKHdoaWxlIG9yZy1lbGVtZW50LS1j YWNoZS1zeW5jLXJlcXVlc3RzIChzZXRxIHJlcXVlc3QgKGNhciBvcmctZWxlbWVudC0tY2FjaGUt c3luYy1yZXF1ZXN0cykgbmV4dCAobnRoIDEgb3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMtcmVxdWVz dHMpKSAob3JnLWVsZW1lbnQtLWNhY2hlLXByb2Nlc3MtcmVxdWVzdCByZXF1ZXN0IChhbmQgbmV4 dCAoYXJlZiBuZXh0IDApKSB0aHJlc2hvbGQgKGFuZCAobm90IHRocmVzaG9sZCkgKHRpbWUtYWRk IChjdXJyZW50LXRpbWUpIG9yZy1lbGVtZW50LWNhY2hlLXN5bmMtZHVyYXRpb24pKSAob3IgZXh0 cmEgMCkpICh3aGVuIG5leHQgKGluY2YgKGFyZWYgbmV4dCAzKSAoYXJlZiByZXF1ZXN0IDMpKSAo YXNldCBuZXh0IDIgKGFyZWYgcmVxdWVzdCAyKSkgKGFzZXQgbmV4dCA2IChhcmVmIHJlcXVlc3Qg NikpKSAoc2V0cSBvcmctZWxlbWVudC0tY2FjaGUtc3luYy1yZXF1ZXN0cyAoY2RyIG9yZy1lbGVt ZW50LS1jYWNoZS1zeW5jLXJlcXVlc3RzKSkpKQogIChsZXQgKChpbmhpYml0LXF1aXQgdCkgcmVx dWVzdCBuZXh0KSAod2hlbiBvcmctZWxlbWVudC0tY2FjaGUtc3luYy10aW1lciAoY2FuY2VsLXRp bWVyIG9yZy1lbGVtZW50LS1jYWNoZS1zeW5jLXRpbWVyKSkgKGNhdGNoIChxdW90ZSBpbnRlcnJ1 cHQpICh3aGlsZSBvcmctZWxlbWVudC0tY2FjaGUtc3luYy1yZXF1ZXN0cyAoc2V0cSByZXF1ZXN0 IChjYXIgb3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMtcmVxdWVzdHMpIG5leHQgKG50aCAxIG9yZy1l bGVtZW50LS1jYWNoZS1zeW5jLXJlcXVlc3RzKSkgKG9yZy1lbGVtZW50LS1jYWNoZS1wcm9jZXNz LXJlcXVlc3QgcmVxdWVzdCAoYW5kIG5leHQgKGFyZWYgbmV4dCAwKSkgdGhyZXNob2xkIChhbmQg KG5vdCB0aHJlc2hvbGQpICh0aW1lLWFkZCAoY3VycmVudC10aW1lKSBvcmctZWxlbWVudC1jYWNo ZS1zeW5jLWR1cmF0aW9uKSkgKG9yIGV4dHJhIDApKSAod2hlbiBuZXh0IChpbmNmIChhcmVmIG5l eHQgMykgKGFyZWYgcmVxdWVzdCAzKSkgKGFzZXQgbmV4dCAyIChhcmVmIHJlcXVlc3QgMikpIChh c2V0IG5leHQgNiAoYXJlZiByZXF1ZXN0IDYpKSkgKHNldHEgb3JnLWVsZW1lbnQtLWNhY2hlLXN5 bmMtcmVxdWVzdHMgKGNkciBvcmctZWxlbWVudC0tY2FjaGUtc3luYy1yZXF1ZXN0cykpKSkgKGlm IG9yZy1lbGVtZW50LS1jYWNoZS1zeW5jLXJlcXVlc3RzIChvcmctZWxlbWVudC0tY2FjaGUtc2V0 LXRpbWVyIGJ1ZmZlcikgKGNscmhhc2ggb3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMta2V5cykpKQog IChzYXZlLWN1cnJlbnQtYnVmZmVyIChzZXQtYnVmZmVyIGJ1ZmZlcikgKGxldCAoKGluaGliaXQt cXVpdCB0KSByZXF1ZXN0IG5leHQpICh3aGVuIG9yZy1lbGVtZW50LS1jYWNoZS1zeW5jLXRpbWVy IChjYW5jZWwtdGltZXIgb3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMtdGltZXIpKSAoY2F0Y2ggKHF1 b3RlIGludGVycnVwdCkgKHdoaWxlIG9yZy1lbGVtZW50LS1jYWNoZS1zeW5jLXJlcXVlc3RzIChz ZXRxIHJlcXVlc3QgKGNhciBvcmctZWxlbWVudC0tY2FjaGUtc3luYy1yZXF1ZXN0cykgbmV4dCAo bnRoIDEgb3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMtcmVxdWVzdHMpKSAob3JnLWVsZW1lbnQtLWNh Y2hlLXByb2Nlc3MtcmVxdWVzdCByZXF1ZXN0IChhbmQgbmV4dCAoYXJlZiBuZXh0IDApKSB0aHJl c2hvbGQgKGFuZCAobm90IHRocmVzaG9sZCkgKHRpbWUtYWRkIChjdXJyZW50LXRpbWUpIG9yZy1l bGVtZW50LWNhY2hlLXN5bmMtZHVyYXRpb24pKSAob3IgZXh0cmEgMCkpICh3aGVuIG5leHQgKGlu Y2YgKGFyZWYgbmV4dCAzKSAoYXJlZiByZXF1ZXN0IDMpKSAoYXNldCBuZXh0IDIgKGFyZWYgcmVx dWVzdCAyKSkgKGFzZXQgbmV4dCA2IChhcmVmIHJlcXVlc3QgNikpKSAoc2V0cSBvcmctZWxlbWVu dC0tY2FjaGUtc3luYy1yZXF1ZXN0cyAoY2RyIG9yZy1lbGVtZW50LS1jYWNoZS1zeW5jLXJlcXVl c3RzKSkpKSAoaWYgb3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMtcmVxdWVzdHMgKG9yZy1lbGVtZW50 LS1jYWNoZS1zZXQtdGltZXIgYnVmZmVyKSAoY2xyaGFzaCBvcmctZWxlbWVudC0tY2FjaGUtc3lu Yy1rZXlzKSkpKQogICh3aXRoLWN1cnJlbnQtYnVmZmVyIGJ1ZmZlciAobGV0ICgoaW5oaWJpdC1x dWl0IHQpIHJlcXVlc3QgbmV4dCkgKHdoZW4gb3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMtdGltZXIg KGNhbmNlbC10aW1lciBvcmctZWxlbWVudC0tY2FjaGUtc3luYy10aW1lcikpIChjYXRjaCAocXVv dGUgaW50ZXJydXB0KSAod2hpbGUgb3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMtcmVxdWVzdHMgKHNl dHEgcmVxdWVzdCAoY2FyIG9yZy1lbGVtZW50LS1jYWNoZS1zeW5jLXJlcXVlc3RzKSBuZXh0IChu dGggMSBvcmctZWxlbWVudC0tY2FjaGUtc3luYy1yZXF1ZXN0cykpIChvcmctZWxlbWVudC0tY2Fj aGUtcHJvY2Vzcy1yZXF1ZXN0IHJlcXVlc3QgKGFuZCBuZXh0IChhcmVmIG5leHQgMCkpIHRocmVz aG9sZCAoYW5kIChub3QgdGhyZXNob2xkKSAodGltZS1hZGQgKGN1cnJlbnQtdGltZSkgb3JnLWVs ZW1lbnQtY2FjaGUtc3luYy1kdXJhdGlvbikpIChvciBleHRyYSAwKSkgKHdoZW4gbmV4dCAoaW5j ZiAoYXJlZiBuZXh0IDMpIChhcmVmIHJlcXVlc3QgMykpIChhc2V0IG5leHQgMiAoYXJlZiByZXF1 ZXN0IDIpKSAoYXNldCBuZXh0IDYgKGFyZWYgcmVxdWVzdCA2KSkpIChzZXRxIG9yZy1lbGVtZW50 LS1jYWNoZS1zeW5jLXJlcXVlc3RzIChjZHIgb3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMtcmVxdWVz dHMpKSkpIChpZiBvcmctZWxlbWVudC0tY2FjaGUtc3luYy1yZXF1ZXN0cyAob3JnLWVsZW1lbnQt LWNhY2hlLXNldC10aW1lciBidWZmZXIpIChjbHJoYXNoIG9yZy1lbGVtZW50LS1jYWNoZS1zeW5j LWtleXMpKSkpCiAgKHByb2duICh3aXRoLWN1cnJlbnQtYnVmZmVyIGJ1ZmZlciAobGV0ICgoaW5o aWJpdC1xdWl0IHQpIHJlcXVlc3QgbmV4dCkgKHdoZW4gb3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMt dGltZXIgKGNhbmNlbC10aW1lciBvcmctZWxlbWVudC0tY2FjaGUtc3luYy10aW1lcikpIChjYXRj aCAocXVvdGUgaW50ZXJydXB0KSAod2hpbGUgb3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMtcmVxdWVz dHMgKHNldHEgcmVxdWVzdCAoY2FyIG9yZy1lbGVtZW50LS1jYWNoZS1zeW5jLXJlcXVlc3RzKSBu ZXh0IChudGggMSBvcmctZWxlbWVudC0tY2FjaGUtc3luYy1yZXF1ZXN0cykpIChvcmctZWxlbWVu dC0tY2FjaGUtcHJvY2Vzcy1yZXF1ZXN0IHJlcXVlc3QgKGFuZCBuZXh0IChhcmVmIG5leHQgMCkp IHRocmVzaG9sZCAoYW5kIChub3QgdGhyZXNob2xkKSAodGltZS1hZGQgLi4uIG9yZy1lbGVtZW50 LWNhY2hlLXN5bmMtZHVyYXRpb24pKSAob3IgZXh0cmEgMCkpICh3aGVuIG5leHQgKGluY2YgKGFy ZWYgbmV4dCAzKSAoYXJlZiByZXF1ZXN0IDMpKSAoYXNldCBuZXh0IDIgKGFyZWYgcmVxdWVzdCAy KSkgKGFzZXQgbmV4dCA2IChhcmVmIHJlcXVlc3QgNikpKSAoc2V0cSBvcmctZWxlbWVudC0tY2Fj aGUtc3luYy1yZXF1ZXN0cyAoY2RyIG9yZy1lbGVtZW50LS1jYWNoZS1zeW5jLXJlcXVlc3RzKSkp KSAoaWYgb3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMtcmVxdWVzdHMgKG9yZy1lbGVtZW50LS1jYWNo ZS1zZXQtdGltZXIgYnVmZmVyKSAoY2xyaGFzaCBvcmctZWxlbWVudC0tY2FjaGUtc3luYy1rZXlz KSkpKSkKICAoaWYgKGJ1ZmZlci1saXZlLXAgYnVmZmVyKSAocHJvZ24gKHdpdGgtY3VycmVudC1i dWZmZXIgYnVmZmVyIChsZXQgKChpbmhpYml0LXF1aXQgdCkgcmVxdWVzdCBuZXh0KSAod2hlbiBv cmctZWxlbWVudC0tY2FjaGUtc3luYy10aW1lciAoY2FuY2VsLXRpbWVyIG9yZy1lbGVtZW50LS1j YWNoZS1zeW5jLXRpbWVyKSkgKGNhdGNoIChxdW90ZSBpbnRlcnJ1cHQpICh3aGlsZSBvcmctZWxl bWVudC0tY2FjaGUtc3luYy1yZXF1ZXN0cyAoc2V0cSByZXF1ZXN0IChjYXIgb3JnLWVsZW1lbnQt LWNhY2hlLXN5bmMtcmVxdWVzdHMpIG5leHQgKG50aCAxIG9yZy1lbGVtZW50LS1jYWNoZS1zeW5j LXJlcXVlc3RzKSkgKG9yZy1lbGVtZW50LS1jYWNoZS1wcm9jZXNzLXJlcXVlc3QgcmVxdWVzdCAo YW5kIG5leHQgLi4uKSB0aHJlc2hvbGQgKGFuZCAuLi4gLi4uKSAob3IgZXh0cmEgMCkpICh3aGVu IG5leHQgKGluY2YgLi4uIC4uLikgKGFzZXQgbmV4dCAyIC4uLikgKGFzZXQgbmV4dCA2IC4uLikp IChzZXRxIG9yZy1lbGVtZW50LS1jYWNoZS1zeW5jLXJlcXVlc3RzIChjZHIgb3JnLWVsZW1lbnQt LWNhY2hlLXN5bmMtcmVxdWVzdHMpKSkpIChpZiBvcmctZWxlbWVudC0tY2FjaGUtc3luYy1yZXF1 ZXN0cyAob3JnLWVsZW1lbnQtLWNhY2hlLXNldC10aW1lciBidWZmZXIpIChjbHJoYXNoIG9yZy1l bGVtZW50LS1jYWNoZS1zeW5jLWtleXMpKSkpKSkKICAod2hlbiAoYnVmZmVyLWxpdmUtcCBidWZm ZXIpICh3aXRoLWN1cnJlbnQtYnVmZmVyIGJ1ZmZlciAobGV0ICgoaW5oaWJpdC1xdWl0IHQpIHJl cXVlc3QgbmV4dCkgKHdoZW4gb3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMtdGltZXIgKGNhbmNlbC10 aW1lciBvcmctZWxlbWVudC0tY2FjaGUtc3luYy10aW1lcikpIChjYXRjaCAocXVvdGUgaW50ZXJy dXB0KSAod2hpbGUgb3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMtcmVxdWVzdHMgKHNldHEgcmVxdWVz dCAoY2FyIG9yZy1lbGVtZW50LS1jYWNoZS1zeW5jLXJlcXVlc3RzKSBuZXh0IChudGggMSBvcmct ZWxlbWVudC0tY2FjaGUtc3luYy1yZXF1ZXN0cykpIChvcmctZWxlbWVudC0tY2FjaGUtcHJvY2Vz cy1yZXF1ZXN0IHJlcXVlc3QgKGFuZCBuZXh0IChhcmVmIG5leHQgMCkpIHRocmVzaG9sZCAoYW5k IChub3QgdGhyZXNob2xkKSAodGltZS1hZGQgLi4uIG9yZy1lbGVtZW50LWNhY2hlLXN5bmMtZHVy YXRpb24pKSAob3IgZXh0cmEgMCkpICh3aGVuIG5leHQgKGluY2YgKGFyZWYgbmV4dCAzKSAoYXJl ZiByZXF1ZXN0IDMpKSAoYXNldCBuZXh0IDIgKGFyZWYgcmVxdWVzdCAyKSkgKGFzZXQgbmV4dCA2 IChhcmVmIHJlcXVlc3QgNikpKSAoc2V0cSBvcmctZWxlbWVudC0tY2FjaGUtc3luYy1yZXF1ZXN0 cyAoY2RyIG9yZy1lbGVtZW50LS1jYWNoZS1zeW5jLXJlcXVlc3RzKSkpKSAoaWYgb3JnLWVsZW1l bnQtLWNhY2hlLXN5bmMtcmVxdWVzdHMgKG9yZy1lbGVtZW50LS1jYWNoZS1zZXQtdGltZXIgYnVm ZmVyKSAoY2xyaGFzaCBvcmctZWxlbWVudC0tY2FjaGUtc3luYy1rZXlzKSkpKSkKICBvcmctZWxl bWVudC0tY2FjaGUtc3luYygjPGJ1ZmZlciB1c2VyLW1hbnVhbC5vcmc8Mj4+IDE2NTUwIC0xMDQ3 KQogIChwcm9nbiAob3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMgKGN1cnJlbnQtYnVmZmVyKSBlbmQg b2Zmc2V0KSkKICAoaWYgbmV4dCAocHJvZ24gKG9yZy1lbGVtZW50LS1jYWNoZS1zeW5jIChjdXJy ZW50LWJ1ZmZlcikgZW5kIG9mZnNldCkpKQogICh3aGVuIG5leHQgKG9yZy1lbGVtZW50LS1jYWNo ZS1zeW5jIChjdXJyZW50LWJ1ZmZlcikgZW5kIG9mZnNldCkpCiAgKGlmIChhbmQgbmV4dCAoemVy b3AgKGFyZWYgbmV4dCA2KSkgKD4gKHNldHEgZGVsZXRlLXRvICgrIChhcmVmIG5leHQgMikgKGFy ZWYgbmV4dCAzKSkpIGVuZCkgKDw9IChzZXRxIGRlbGV0ZS1mcm9tIChhcmVmIG5leHQgMSkpIGVu ZCkpIChwcm9nbiAoaW5jZiAoYXJlZiBuZXh0IDMpIG9mZnNldCkgKGlmICg+IGJlZyBkZWxldGUt ZnJvbSkgKGxldCAoKHVwIChhcmVmIG5leHQgNSkpKSAod2hpbGUgdXAgKG9yZy1lbGVtZW50LS1j YWNoZS1zaGlmdC1wb3NpdGlvbnMgdXAgb2Zmc2V0IChxdW90ZSAoOmNvbnRlbnRzLWVuZCA6ZW5k KSkpIChzZXRxIHVwIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGFyZW50IHVwKSkpKSAobGV0ICgo Zmlyc3QgKG9yZy1lbGVtZW50LS1jYWNoZS1mb3ItcmVtb3ZhbCBiZWcgZGVsZXRlLXRvIG9mZnNl dCkpKSAod2hlbiBmaXJzdCAoYXNldCBuZXh0IDAgKG9yZy1lbGVtZW50LS1jYWNoZS1rZXkgZmly c3QpKSAoYXNldCBuZXh0IDEgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpiZWdpbiBmaXJzdCkpIChh c2V0IG5leHQgNSAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhcmVudCBmaXJzdCkpKSkpKSAod2hl biBuZXh0IChvcmctZWxlbWVudC0tY2FjaGUtc3luYyAoY3VycmVudC1idWZmZXIpIGVuZCBvZmZz ZXQpKSAobGV0ICgoZmlyc3QgKG9yZy1lbGVtZW50LS1jYWNoZS1mb3ItcmVtb3ZhbCBiZWcgZW5k IG9mZnNldCkpKSAoaWYgZmlyc3QgKHB1c2ggKGxldCAoKGJlZyAob3JnLWVsZW1lbnQtcHJvcGVy dHkgOmJlZ2luIGZpcnN0KSkgKGtleSAob3JnLWVsZW1lbnQtLWNhY2hlLWtleSBmaXJzdCkpKSAo Y29uZCAoKD4gYmVnIGVuZCkgKHZlY3RvciBrZXkgbmlsIG5pbCBvZmZzZXQgbmlsIG5pbCAyKSkg KChsZXQgLi4uIC4uLikpICh0IChsZXQqIC4uLiAuLi4gLi4uKSkpKSBvcmctZWxlbWVudC0tY2Fj aGUtc3luYy1yZXF1ZXN0cykgKHdoZW4gb3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMtcmVxdWVzdHMg KGluY2YgKGFyZWYgKGNhciBvcmctZWxlbWVudC0tY2FjaGUtc3luYy1yZXF1ZXN0cykgMykgb2Zm c2V0KSkpKSkKICAobGV0ICgobmV4dCAoY2FyIG9yZy1lbGVtZW50LS1jYWNoZS1zeW5jLXJlcXVl c3RzKSkgZGVsZXRlLXRvIGRlbGV0ZS1mcm9tKSAoaWYgKGFuZCBuZXh0ICh6ZXJvcCAoYXJlZiBu ZXh0IDYpKSAoPiAoc2V0cSBkZWxldGUtdG8gKCsgKGFyZWYgbmV4dCAyKSAoYXJlZiBuZXh0IDMp KSkgZW5kKSAoPD0gKHNldHEgZGVsZXRlLWZyb20gKGFyZWYgbmV4dCAxKSkgZW5kKSkgKHByb2du IChpbmNmIChhcmVmIG5leHQgMykgb2Zmc2V0KSAoaWYgKD4gYmVnIGRlbGV0ZS1mcm9tKSAobGV0 ICgodXAgKGFyZWYgbmV4dCA1KSkpICh3aGlsZSB1cCAob3JnLWVsZW1lbnQtLWNhY2hlLXNoaWZ0 LXBvc2l0aW9ucyB1cCBvZmZzZXQgKHF1b3RlIC4uLikpIChzZXRxIHVwIChvcmctZWxlbWVudC1w cm9wZXJ0eSA6cGFyZW50IHVwKSkpKSAobGV0ICgoZmlyc3QgKG9yZy1lbGVtZW50LS1jYWNoZS1m b3ItcmVtb3ZhbCBiZWcgZGVsZXRlLXRvIG9mZnNldCkpKSAod2hlbiBmaXJzdCAoYXNldCBuZXh0 IDAgKG9yZy1lbGVtZW50LS1jYWNoZS1rZXkgZmlyc3QpKSAoYXNldCBuZXh0IDEgKG9yZy1lbGVt ZW50LXByb3BlcnR5IDpiZWdpbiBmaXJzdCkpIChhc2V0IG5leHQgNSAob3JnLWVsZW1lbnQtcHJv cGVydHkgOnBhcmVudCBmaXJzdCkpKSkpKSAod2hlbiBuZXh0IChvcmctZWxlbWVudC0tY2FjaGUt c3luYyAoY3VycmVudC1idWZmZXIpIGVuZCBvZmZzZXQpKSAobGV0ICgoZmlyc3QgKG9yZy1lbGVt ZW50LS1jYWNoZS1mb3ItcmVtb3ZhbCBiZWcgZW5kIG9mZnNldCkpKSAoaWYgZmlyc3QgKHB1c2gg KGxldCAoKGJlZyAuLi4pIChrZXkgLi4uKSkgKGNvbmQgKC4uLiAuLi4pICguLi4pICh0IC4uLikp KSBvcmctZWxlbWVudC0tY2FjaGUtc3luYy1yZXF1ZXN0cykgKHdoZW4gb3JnLWVsZW1lbnQtLWNh Y2hlLXN5bmMtcmVxdWVzdHMgKGluY2YgKGFyZWYgKGNhciBvcmctZWxlbWVudC0tY2FjaGUtc3lu Yy1yZXF1ZXN0cykgMykgb2Zmc2V0KSkpKSkpCiAgb3JnLWVsZW1lbnQtLWNhY2hlLXN1Ym1pdC1y ZXF1ZXN0KDE1NDM1IDE2NTUwIC0xMDQ3KQogIChsZXQgKChvZmZzZXQgKC0gZW5kIGJlZyBwcmUp KSkgKG9yZy1lbGVtZW50LS1jYWNoZS1zdWJtaXQtcmVxdWVzdCB0b3AgKC0gYm90dG9tIG9mZnNl dCkgb2Zmc2V0KSkKICAobGV0ICgodG9wIChwb2ludCkpIChib3R0b20gKHNhdmUtZXhjdXJzaW9u IChnb3RvLWNoYXIgZW5kKSAobGluZS1lbmQtcG9zaXRpb24pKSkpICh3aGVuIChjYXNlIG9yZy1l bGVtZW50LS1jYWNoZS1jaGFuZ2Utd2FybmluZyAoKHQpIHQpIChoZWFkbGluZSAobm90IChhbmQg KG9yZy13aXRoLWxpbWl0ZWQtbGV2ZWxzIChvcmctYXQtaGVhZGluZy1wKSkgKD0gKGxpbmUtZW5k LXBvc2l0aW9uKSBib3R0b20pKSkpIChvdGhlcndpc2UgKGxldCAoKGNhc2UtZm9sZC1zZWFyY2gg dCkpIChyZS1zZWFyY2gtZm9yd2FyZCBvcmctZWxlbWVudC0tY2FjaGUtc2Vuc2l0aXZlLXJlIGJv dHRvbSB0KSkpKSAob3JnLXdpdGgtbGltaXRlZC1sZXZlbHMgKHNldHEgdG9wIChwcm9nbiAoZ290 by1jaGFyIHRvcCkgKHdoZW4gKG91dGxpbmUtcHJldmlvdXMtaGVhZGluZykgKGZvcndhcmQtbGlu ZSkpIChwb2ludCkpKSAoc2V0cSBib3R0b20gKHByb2duIChnb3RvLWNoYXIgYm90dG9tKSAoaWYg KG91dGxpbmUtbmV4dC1oZWFkaW5nKSAoMS0gKHBvaW50KSkgKHBvaW50KSkpKSkpIChsZXQgKChv ZmZzZXQgKC0gZW5kIGJlZyBwcmUpKSkgKG9yZy1lbGVtZW50LS1jYWNoZS1zdWJtaXQtcmVxdWVz dCB0b3AgKC0gYm90dG9tIG9mZnNldCkgb2Zmc2V0KSkpCiAgKHByb2duIChsZXQgKCh0b3AgKHBv aW50KSkgKGJvdHRvbSAoc2F2ZS1leGN1cnNpb24gKGdvdG8tY2hhciBlbmQpIChsaW5lLWVuZC1w b3NpdGlvbikpKSkgKHdoZW4gKGNhc2Ugb3JnLWVsZW1lbnQtLWNhY2hlLWNoYW5nZS13YXJuaW5n ICgodCkgdCkgKGhlYWRsaW5lIChub3QgKGFuZCAob3JnLXdpdGgtbGltaXRlZC1sZXZlbHMgLi4u KSAoPSAuLi4gYm90dG9tKSkpKSAob3RoZXJ3aXNlIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIHQp KSAocmUtc2VhcmNoLWZvcndhcmQgb3JnLWVsZW1lbnQtLWNhY2hlLXNlbnNpdGl2ZS1yZSBib3R0 b20gdCkpKSkgKG9yZy13aXRoLWxpbWl0ZWQtbGV2ZWxzIChzZXRxIHRvcCAocHJvZ24gKGdvdG8t Y2hhciB0b3ApICh3aGVuIChvdXRsaW5lLXByZXZpb3VzLWhlYWRpbmcpIChmb3J3YXJkLWxpbmUp KSAocG9pbnQpKSkgKHNldHEgYm90dG9tIChwcm9nbiAoZ290by1jaGFyIGJvdHRvbSkgKGlmIChv dXRsaW5lLW5leHQtaGVhZGluZykgKDEtIC4uLikgKHBvaW50KSkpKSkpIChsZXQgKChvZmZzZXQg KC0gZW5kIGJlZyBwcmUpKSkgKG9yZy1lbGVtZW50LS1jYWNoZS1zdWJtaXQtcmVxdWVzdCB0b3Ag KC0gYm90dG9tIG9mZnNldCkgb2Zmc2V0KSkpKQogICh1bndpbmQtcHJvdGVjdCAocHJvZ24gKGxl dCAoKHRvcCAocG9pbnQpKSAoYm90dG9tIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIGVuZCkg KGxpbmUtZW5kLXBvc2l0aW9uKSkpKSAod2hlbiAoY2FzZSBvcmctZWxlbWVudC0tY2FjaGUtY2hh bmdlLXdhcm5pbmcgKCh0KSB0KSAoaGVhZGxpbmUgKG5vdCAoYW5kIC4uLiAuLi4pKSkgKG90aGVy d2lzZSAobGV0ICguLi4pIChyZS1zZWFyY2gtZm9yd2FyZCBvcmctZWxlbWVudC0tY2FjaGUtc2Vu c2l0aXZlLXJlIGJvdHRvbSB0KSkpKSAob3JnLXdpdGgtbGltaXRlZC1sZXZlbHMgKHNldHEgdG9w IChwcm9nbiAoZ290by1jaGFyIHRvcCkgKHdoZW4gLi4uIC4uLikgKHBvaW50KSkpIChzZXRxIGJv dHRvbSAocHJvZ24gKGdvdG8tY2hhciBib3R0b20pIChpZiAuLi4gLi4uIC4uLikpKSkpIChsZXQg KChvZmZzZXQgKC0gZW5kIGJlZyBwcmUpKSkgKG9yZy1lbGVtZW50LS1jYWNoZS1zdWJtaXQtcmVx dWVzdCB0b3AgKC0gYm90dG9tIG9mZnNldCkgb2Zmc2V0KSkpKSAoc2V0LW1hdGNoLWRhdGEgc2F2 ZS1tYXRjaC1kYXRhLWludGVybmFsIChxdW90ZSBldmFwb3JhdGUpKSkKICAobGV0ICgoc2F2ZS1t YXRjaC1kYXRhLWludGVybmFsIChtYXRjaC1kYXRhKSkpICh1bndpbmQtcHJvdGVjdCAocHJvZ24g KGxldCAoKHRvcCAocG9pbnQpKSAoYm90dG9tIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIGVu ZCkgKGxpbmUtZW5kLXBvc2l0aW9uKSkpKSAod2hlbiAoY2FzZSBvcmctZWxlbWVudC0tY2FjaGUt Y2hhbmdlLXdhcm5pbmcgKCh0KSB0KSAoaGVhZGxpbmUgKG5vdCAuLi4pKSAob3RoZXJ3aXNlIChs ZXQgLi4uIC4uLikpKSAob3JnLXdpdGgtbGltaXRlZC1sZXZlbHMgKHNldHEgdG9wIChwcm9nbiAu Li4gLi4uIC4uLikpIChzZXRxIGJvdHRvbSAocHJvZ24gLi4uIC4uLikpKSkgKGxldCAoKG9mZnNl dCAoLSBlbmQgYmVnIHByZSkpKSAob3JnLWVsZW1lbnQtLWNhY2hlLXN1Ym1pdC1yZXF1ZXN0IHRv cCAoLSBib3R0b20gb2Zmc2V0KSBvZmZzZXQpKSkpIChzZXQtbWF0Y2gtZGF0YSBzYXZlLW1hdGNo LWRhdGEtaW50ZXJuYWwgKHF1b3RlIGV2YXBvcmF0ZSkpKSkKICAoc2F2ZS1tYXRjaC1kYXRhIChs ZXQgKCh0b3AgKHBvaW50KSkgKGJvdHRvbSAoc2F2ZS1leGN1cnNpb24gKGdvdG8tY2hhciBlbmQp IChsaW5lLWVuZC1wb3NpdGlvbikpKSkgKHdoZW4gKGNhc2Ugb3JnLWVsZW1lbnQtLWNhY2hlLWNo YW5nZS13YXJuaW5nICgodCkgdCkgKGhlYWRsaW5lIChub3QgKGFuZCAob3JnLXdpdGgtbGltaXRl ZC1sZXZlbHMgLi4uKSAoPSAuLi4gYm90dG9tKSkpKSAob3RoZXJ3aXNlIChsZXQgKChjYXNlLWZv bGQtc2VhcmNoIHQpKSAocmUtc2VhcmNoLWZvcndhcmQgb3JnLWVsZW1lbnQtLWNhY2hlLXNlbnNp dGl2ZS1yZSBib3R0b20gdCkpKSkgKG9yZy13aXRoLWxpbWl0ZWQtbGV2ZWxzIChzZXRxIHRvcCAo cHJvZ24gKGdvdG8tY2hhciB0b3ApICh3aGVuIChvdXRsaW5lLXByZXZpb3VzLWhlYWRpbmcpIChm b3J3YXJkLWxpbmUpKSAocG9pbnQpKSkgKHNldHEgYm90dG9tIChwcm9nbiAoZ290by1jaGFyIGJv dHRvbSkgKGlmIChvdXRsaW5lLW5leHQtaGVhZGluZykgKDEtIC4uLikgKHBvaW50KSkpKSkpIChs ZXQgKChvZmZzZXQgKC0gZW5kIGJlZyBwcmUpKSkgKG9yZy1lbGVtZW50LS1jYWNoZS1zdWJtaXQt cmVxdWVzdCB0b3AgKC0gYm90dG9tIG9mZnNldCkgb2Zmc2V0KSkpKQogIChzYXZlLXJlc3RyaWN0 aW9uICh3aWRlbikgKGdvdG8tY2hhciBiZWcpIChiZWdpbm5pbmctb2YtbGluZSkgKHNhdmUtbWF0 Y2gtZGF0YSAobGV0ICgodG9wIChwb2ludCkpIChib3R0b20gKHNhdmUtZXhjdXJzaW9uIChnb3Rv LWNoYXIgZW5kKSAobGluZS1lbmQtcG9zaXRpb24pKSkpICh3aGVuIChjYXNlIG9yZy1lbGVtZW50 LS1jYWNoZS1jaGFuZ2Utd2FybmluZyAoKHQpIHQpIChoZWFkbGluZSAobm90IChhbmQgLi4uIC4u LikpKSAob3RoZXJ3aXNlIChsZXQgKC4uLikgKHJlLXNlYXJjaC1mb3J3YXJkIG9yZy1lbGVtZW50 LS1jYWNoZS1zZW5zaXRpdmUtcmUgYm90dG9tIHQpKSkpIChvcmctd2l0aC1saW1pdGVkLWxldmVs cyAoc2V0cSB0b3AgKHByb2duIChnb3RvLWNoYXIgdG9wKSAod2hlbiAuLi4gLi4uKSAocG9pbnQp KSkgKHNldHEgYm90dG9tIChwcm9nbiAoZ290by1jaGFyIGJvdHRvbSkgKGlmIC4uLiAuLi4gLi4u KSkpKSkgKGxldCAoKG9mZnNldCAoLSBlbmQgYmVnIHByZSkpKSAob3JnLWVsZW1lbnQtLWNhY2hl LXN1Ym1pdC1yZXF1ZXN0IHRvcCAoLSBib3R0b20gb2Zmc2V0KSBvZmZzZXQpKSkpKQogIChzYXZl LWV4Y3Vyc2lvbiAoc2F2ZS1yZXN0cmljdGlvbiAod2lkZW4pIChnb3RvLWNoYXIgYmVnKSAoYmVn aW5uaW5nLW9mLWxpbmUpIChzYXZlLW1hdGNoLWRhdGEgKGxldCAoKHRvcCAocG9pbnQpKSAoYm90 dG9tIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIGVuZCkgKGxpbmUtZW5kLXBvc2l0aW9uKSkp KSAod2hlbiAoY2FzZSBvcmctZWxlbWVudC0tY2FjaGUtY2hhbmdlLXdhcm5pbmcgKCh0KSB0KSAo aGVhZGxpbmUgKG5vdCAuLi4pKSAob3RoZXJ3aXNlIChsZXQgLi4uIC4uLikpKSAob3JnLXdpdGgt bGltaXRlZC1sZXZlbHMgKHNldHEgdG9wIChwcm9nbiAuLi4gLi4uIC4uLikpIChzZXRxIGJvdHRv bSAocHJvZ24gLi4uIC4uLikpKSkgKGxldCAoKG9mZnNldCAoLSBlbmQgYmVnIHByZSkpKSAob3Jn LWVsZW1lbnQtLWNhY2hlLXN1Ym1pdC1yZXF1ZXN0IHRvcCAoLSBib3R0b20gb2Zmc2V0KSBvZmZz ZXQpKSkpKSkKICAob3JnLXdpdGgtd2lkZS1idWZmZXIgKGdvdG8tY2hhciBiZWcpIChiZWdpbm5p bmctb2YtbGluZSkgKHNhdmUtbWF0Y2gtZGF0YSAobGV0ICgodG9wIChwb2ludCkpIChib3R0b20g KHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgZW5kKSAobGluZS1lbmQtcG9zaXRpb24pKSkpICh3 aGVuIChjYXNlIG9yZy1lbGVtZW50LS1jYWNoZS1jaGFuZ2Utd2FybmluZyAoKHQpIHQpIChoZWFk bGluZSAobm90IChhbmQgLi4uIC4uLikpKSAob3RoZXJ3aXNlIChsZXQgKC4uLikgKHJlLXNlYXJj aC1mb3J3YXJkIG9yZy1lbGVtZW50LS1jYWNoZS1zZW5zaXRpdmUtcmUgYm90dG9tIHQpKSkpIChv cmctd2l0aC1saW1pdGVkLWxldmVscyAoc2V0cSB0b3AgKHByb2duIChnb3RvLWNoYXIgdG9wKSAo d2hlbiAuLi4gLi4uKSAocG9pbnQpKSkgKHNldHEgYm90dG9tIChwcm9nbiAoZ290by1jaGFyIGJv dHRvbSkgKGlmIC4uLiAuLi4gLi4uKSkpKSkgKGxldCAoKG9mZnNldCAoLSBlbmQgYmVnIHByZSkp KSAob3JnLWVsZW1lbnQtLWNhY2hlLXN1Ym1pdC1yZXF1ZXN0IHRvcCAoLSBib3R0b20gb2Zmc2V0 KSBvZmZzZXQpKSkpKQogIChwcm9nbiAob3JnLXdpdGgtd2lkZS1idWZmZXIgKGdvdG8tY2hhciBi ZWcpIChiZWdpbm5pbmctb2YtbGluZSkgKHNhdmUtbWF0Y2gtZGF0YSAobGV0ICgodG9wIChwb2lu dCkpIChib3R0b20gKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgZW5kKSAobGluZS1lbmQtcG9z aXRpb24pKSkpICh3aGVuIChjYXNlIG9yZy1lbGVtZW50LS1jYWNoZS1jaGFuZ2Utd2FybmluZyAo KHQpIHQpIChoZWFkbGluZSAobm90IC4uLikpIChvdGhlcndpc2UgKGxldCAuLi4gLi4uKSkpIChv cmctd2l0aC1saW1pdGVkLWxldmVscyAoc2V0cSB0b3AgKHByb2duIC4uLiAuLi4gLi4uKSkgKHNl dHEgYm90dG9tIChwcm9nbiAuLi4gLi4uKSkpKSAobGV0ICgob2Zmc2V0ICgtIGVuZCBiZWcgcHJl KSkpIChvcmctZWxlbWVudC0tY2FjaGUtc3VibWl0LXJlcXVlc3QgdG9wICgtIGJvdHRvbSBvZmZz ZXQpIG9mZnNldCkpKSkpIChvcmctZWxlbWVudC0tY2FjaGUtc2V0LXRpbWVyIChjdXJyZW50LWJ1 ZmZlcikpKQogIChpZiAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAocHJvZ24gKG9yZy13 aXRoLXdpZGUtYnVmZmVyIChnb3RvLWNoYXIgYmVnKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChzYXZl LW1hdGNoLWRhdGEgKGxldCAoKHRvcCAocG9pbnQpKSAoYm90dG9tIChzYXZlLWV4Y3Vyc2lvbiAu Li4gLi4uKSkpICh3aGVuIChjYXNlIG9yZy1lbGVtZW50LS1jYWNoZS1jaGFuZ2Utd2FybmluZyAo Li4uIHQpIChoZWFkbGluZSAuLi4pIChvdGhlcndpc2UgLi4uKSkgKG9yZy13aXRoLWxpbWl0ZWQt bGV2ZWxzIChzZXRxIHRvcCAuLi4pIChzZXRxIGJvdHRvbSAuLi4pKSkgKGxldCAoKG9mZnNldCAu Li4pKSAob3JnLWVsZW1lbnQtLWNhY2hlLXN1Ym1pdC1yZXF1ZXN0IHRvcCAoLSBib3R0b20gb2Zm c2V0KSBvZmZzZXQpKSkpKSAob3JnLWVsZW1lbnQtLWNhY2hlLXNldC10aW1lciAoY3VycmVudC1i dWZmZXIpKSkpCiAgKHdoZW4gKG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKG9yZy13aXRo LXdpZGUtYnVmZmVyIChnb3RvLWNoYXIgYmVnKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChzYXZlLW1h dGNoLWRhdGEgKGxldCAoKHRvcCAocG9pbnQpKSAoYm90dG9tIChzYXZlLWV4Y3Vyc2lvbiAoZ290 by1jaGFyIGVuZCkgKGxpbmUtZW5kLXBvc2l0aW9uKSkpKSAod2hlbiAoY2FzZSBvcmctZWxlbWVu dC0tY2FjaGUtY2hhbmdlLXdhcm5pbmcgKCh0KSB0KSAoaGVhZGxpbmUgKG5vdCAuLi4pKSAob3Ro ZXJ3aXNlIChsZXQgLi4uIC4uLikpKSAob3JnLXdpdGgtbGltaXRlZC1sZXZlbHMgKHNldHEgdG9w IChwcm9nbiAuLi4gLi4uIC4uLikpIChzZXRxIGJvdHRvbSAocHJvZ24gLi4uIC4uLikpKSkgKGxl dCAoKG9mZnNldCAoLSBlbmQgYmVnIHByZSkpKSAob3JnLWVsZW1lbnQtLWNhY2hlLXN1Ym1pdC1y ZXF1ZXN0IHRvcCAoLSBib3R0b20gb2Zmc2V0KSBvZmZzZXQpKSkpKSAob3JnLWVsZW1lbnQtLWNh Y2hlLXNldC10aW1lciAoY3VycmVudC1idWZmZXIpKSkKICBvcmctZWxlbWVudC0tY2FjaGUtYWZ0 ZXItY2hhbmdlKDE1NDM1IDE1NDM1IDEwNDcpCiAgZGVsZXRlLXJlZ2lvbigjPG1hcmtlciBhdCAx NTQzNSBpbiB1c2VyLW1hbnVhbC5vcmc8Mj4+IDE2NDgyKQogIChjb25kICgobm90IHJlcGxhY2Vt ZW50KSAoZ290by1jaGFyIGVuZCkpICgoZXF1YWwgcmVwbGFjZW1lbnQgIiIpIChnb3RvLWNoYXIg ZW5kKSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkgKGRl bGV0ZS1yZWdpb24gYmVnaW4gKHBvaW50KSkpICh0IChnb3RvLWNoYXIgbWF0Y2gtc3RhcnQpIChk ZWxldGUtcmVnaW9uIChwb2ludCkgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgZW5kKSAobGlu ZS1lbmQtcG9zaXRpb24pKSkgKGluc2VydCByZXBsYWNlbWVudCkgKGlmIChvciBvcmctc3JjLXBy ZXNlcnZlLWluZGVudGF0aW9uIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cHJlc2VydmUtaW5kZW50 IGVsZW1lbnQpKSAoc2F2ZS1leGN1cnNpb24gKHNraXAtY2hhcnMtYmFja3dhcmQgIiANCVxuIikg KGluZGVudC1saW5lLXRvIGluZCkgKGdvdG8tY2hhciBtYXRjaC1zdGFydCkgKGluZGVudC1saW5l LXRvIGluZCkpIChpbmRlbnQtcmlnaWRseSBtYXRjaC1zdGFydCAocG9pbnQpIGluZCkpKSkKICAo bGV0ICgocmVwbGFjZW1lbnQgKHByb2duIChnb3RvLWNoYXIgbWF0Y2gtc3RhcnQpIChvcmctYmFi ZWwtZXhwLXNyYy1ibG9jayBoZWFkZXJzKSkpKSAoY29uZCAoKG5vdCByZXBsYWNlbWVudCkgKGdv dG8tY2hhciBlbmQpKSAoKGVxdWFsIHJlcGxhY2VtZW50ICIiKSAoZ290by1jaGFyIGVuZCkgKHNr aXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChkZWxldGUtcmVn aW9uIGJlZ2luIChwb2ludCkpKSAodCAoZ290by1jaGFyIG1hdGNoLXN0YXJ0KSAoZGVsZXRlLXJl Z2lvbiAocG9pbnQpIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIGVuZCkgKGxpbmUtZW5kLXBv c2l0aW9uKSkpIChpbnNlcnQgcmVwbGFjZW1lbnQpIChpZiAob3Igb3JnLXNyYy1wcmVzZXJ2ZS1p bmRlbnRhdGlvbiAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnByZXNlcnZlLWluZGVudCBlbGVtZW50 KSkgKHNhdmUtZXhjdXJzaW9uIChza2lwLWNoYXJzLWJhY2t3YXJkICIgDQlcbiIpIChpbmRlbnQt bGluZS10byBpbmQpIChnb3RvLWNoYXIgbWF0Y2gtc3RhcnQpIChpbmRlbnQtbGluZS10byBpbmQp KSAoaW5kZW50LXJpZ2lkbHkgbWF0Y2gtc3RhcnQgKHBvaW50KSBpbmQpKSkpKQogIChsZXQqICgo bWF0Y2gtc3RhcnQgKGNvcHktbWFya2VyIChtYXRjaC1iZWdpbm5pbmcgMCkpKSAoaW5kIChvcmct Z2V0LWluZGVudGF0aW9uKSkgKGhlYWRlcnMgKGNvbnMgKG9yZy1lbGVtZW50LXByb3BlcnR5IDps YW5ndWFnZSBlbGVtZW50KSAobGV0ICgocGFyYW1zIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGFy YW1ldGVycyBlbGVtZW50KSkpIChhbmQgcGFyYW1zIChvcmctc3BsaXQtc3RyaW5nIHBhcmFtcyAi WyAJXSsiKSkpKSkpIChsZXQgKChyZXBsYWNlbWVudCAocHJvZ24gKGdvdG8tY2hhciBtYXRjaC1z dGFydCkgKG9yZy1iYWJlbC1leHAtc3JjLWJsb2NrIGhlYWRlcnMpKSkpIChjb25kICgobm90IHJl cGxhY2VtZW50KSAoZ290by1jaGFyIGVuZCkpICgoZXF1YWwgcmVwbGFjZW1lbnQgIiIpIChnb3Rv LWNoYXIgZW5kKSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGlu ZSkgKGRlbGV0ZS1yZWdpb24gYmVnaW4gKHBvaW50KSkpICh0IChnb3RvLWNoYXIgbWF0Y2gtc3Rh cnQpIChkZWxldGUtcmVnaW9uIChwb2ludCkgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgZW5k KSAobGluZS1lbmQtcG9zaXRpb24pKSkgKGluc2VydCByZXBsYWNlbWVudCkgKGlmIChvciBvcmct c3JjLXByZXNlcnZlLWluZGVudGF0aW9uIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cHJlc2VydmUt aW5kZW50IGVsZW1lbnQpKSAoc2F2ZS1leGN1cnNpb24gKHNraXAtY2hhcnMtYmFja3dhcmQgIiAN CVxuIikgKGluZGVudC1saW5lLXRvIGluZCkgKGdvdG8tY2hhciBtYXRjaC1zdGFydCkgKGluZGVu dC1saW5lLXRvIGluZCkpIChpbmRlbnQtcmlnaWRseSBtYXRjaC1zdGFydCAocG9pbnQpIGluZCkp KSkpIChzZXQtbWFya2VyIG1hdGNoLXN0YXJ0IG5pbCkpCiAgKGNvbmQgKChlcWwgdHlwZSAocXVv dGUgaW5saW5lLXNyYy1ibG9jaykpIChsZXQqICgoaGVhZCAobWF0Y2gtYmVnaW5uaW5nIDApKSAo aW5mbyAoYXBwZW5kIChvcmctYmFiZWwtcGFyc2UtaW5saW5lLXNyYy1ibG9jay1tYXRjaCkgKGxp c3QgbmlsIG5pbCBoZWFkKSkpIChwYXJhbXMgKG50aCAyIGluZm8pKSkgKHNldGYgKG50aCAxIGlu Zm8pIChpZiAoYW5kIChjZHIgKGFzc29jIDpub3dlYiBwYXJhbXMpKSAoc3RyaW5nPSAieWVzIiAo Y2RyIC4uLikpKSAob3JnLWJhYmVsLWV4cGFuZC1ub3dlYi1yZWZlcmVuY2VzIGluZm8gb3JnLWJh YmVsLWV4cC1yZWZlcmVuY2UtYnVmZmVyKSAobnRoIDEgaW5mbykpKSAoZ290by1jaGFyIGJlZ2lu KSAobGV0ICgocmVwbGFjZW1lbnQgKG9yZy1iYWJlbC1leHAtZG8tZXhwb3J0IGluZm8gKHF1b3Rl IGlubGluZSkpKSkgKGlmIChlcXVhbCByZXBsYWNlbWVudCAiIikgKGRlbGV0ZS1yZWdpb24gYmVn aW4gKHByb2duIChnb3RvLWNoYXIgZW5kKSAoc2tpcC1jaGFycy1mb3J3YXJkICIgCSIpIChwb2lu dCkpKSAoZGVsZXRlLXJlZ2lvbiBiZWdpbiBlbmQpIChpbnNlcnQgcmVwbGFjZW1lbnQpKSkpKSAo KG1lbWJlciogdHlwZSAocXVvdGUgKGJhYmVsLWNhbGwgaW5saW5lLWJhYmVsLWNhbGwpKSkgKGxl dCogKChsb2ItaW5mbyAob3JnLWJhYmVsLWxvYi1nZXQtaW5mbykpIChyZXN1bHRzIChvcmctYmFi ZWwtZXhwLWRvLWV4cG9ydCAobGlzdCAiZW1hY3MtbGlzcCIgInJlc3VsdHMiIChhcHBseSAuLi4g b3JnLWJhYmVsLWRlZmF1bHQtaGVhZGVyLWFyZ3Mgb3JnLWJhYmVsLWRlZmF1bHQtbG9iLWhlYWRl ci1hcmdzIC4uLikgIiIgKG50aCAzIGxvYi1pbmZvKSAobnRoIDIgbG9iLWluZm8pKSAocXVvdGUg bG9iKSkpIChyZXAgKG9yZy1maWxsLXRlbXBsYXRlIG9yZy1iYWJlbC1leHAtY2FsbC1saW5lLXRl bXBsYXRlIChcYCAoLi4uKSkpKSkgKGlmIChlcXVhbCByZXAgIiIpIChkZWxldGUtcmVnaW9uIGJl Z2luIChwcm9nbiAoZ290by1jaGFyIGVuZCkgKGlmIChub3QgLi4uKSAocHJvZ24gLi4uIC4uLikg KHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pKSkp IChnb3RvLWNoYXIgYmVnaW4pIChkZWxldGUtcmVnaW9uIGJlZ2luIGVuZCkgKGluc2VydCByZXAp KSkpICgoZXFsIHR5cGUgKHF1b3RlIHNyYy1ibG9jaykpIChsZXQqICgobWF0Y2gtc3RhcnQgKGNv cHktbWFya2VyIChtYXRjaC1iZWdpbm5pbmcgMCkpKSAoaW5kIChvcmctZ2V0LWluZGVudGF0aW9u KSkgKGhlYWRlcnMgKGNvbnMgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpsYW5ndWFnZSBlbGVtZW50 KSAobGV0ICguLi4pIChhbmQgcGFyYW1zIC4uLikpKSkpIChsZXQgKChyZXBsYWNlbWVudCAocHJv Z24gKGdvdG8tY2hhciBtYXRjaC1zdGFydCkgKG9yZy1iYWJlbC1leHAtc3JjLWJsb2NrIGhlYWRl cnMpKSkpIChjb25kICgobm90IHJlcGxhY2VtZW50KSAoZ290by1jaGFyIGVuZCkpICgoZXF1YWwg cmVwbGFjZW1lbnQgIiIpIChnb3RvLWNoYXIgZW5kKSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlc biIpIChiZWdpbm5pbmctb2YtbGluZSkgKGRlbGV0ZS1yZWdpb24gYmVnaW4gKHBvaW50KSkpICh0 IChnb3RvLWNoYXIgbWF0Y2gtc3RhcnQpIChkZWxldGUtcmVnaW9uIChwb2ludCkgKHNhdmUtZXhj dXJzaW9uIC4uLiAuLi4pKSAoaW5zZXJ0IHJlcGxhY2VtZW50KSAoaWYgKG9yIG9yZy1zcmMtcHJl c2VydmUtaW5kZW50YXRpb24gLi4uKSAoc2F2ZS1leGN1cnNpb24gLi4uIC4uLiAuLi4gLi4uKSAo aW5kZW50LXJpZ2lkbHkgbWF0Y2gtc3RhcnQgLi4uIGluZCkpKSkpIChzZXQtbWFya2VyIG1hdGNo LXN0YXJ0IG5pbCkpKSkKICAoY2FzZSB0eXBlIChpbmxpbmUtc3JjLWJsb2NrIChsZXQqICgoaGVh ZCAobWF0Y2gtYmVnaW5uaW5nIDApKSAoaW5mbyAoYXBwZW5kIChvcmctYmFiZWwtcGFyc2UtaW5s aW5lLXNyYy1ibG9jay1tYXRjaCkgKGxpc3QgbmlsIG5pbCBoZWFkKSkpIChwYXJhbXMgKG50aCAy IGluZm8pKSkgKHNldGYgKG50aCAxIGluZm8pIChpZiAoYW5kIChjZHIgKGFzc29jIDpub3dlYiBw YXJhbXMpKSAoc3RyaW5nPSAieWVzIiAoY2RyIC4uLikpKSAob3JnLWJhYmVsLWV4cGFuZC1ub3dl Yi1yZWZlcmVuY2VzIGluZm8gb3JnLWJhYmVsLWV4cC1yZWZlcmVuY2UtYnVmZmVyKSAobnRoIDEg aW5mbykpKSAoZ290by1jaGFyIGJlZ2luKSAobGV0ICgocmVwbGFjZW1lbnQgKG9yZy1iYWJlbC1l eHAtZG8tZXhwb3J0IGluZm8gKHF1b3RlIGlubGluZSkpKSkgKGlmIChlcXVhbCByZXBsYWNlbWVu dCAiIikgKGRlbGV0ZS1yZWdpb24gYmVnaW4gKHByb2duIChnb3RvLWNoYXIgZW5kKSAoc2tpcC1j aGFycy1mb3J3YXJkICIgCSIpIChwb2ludCkpKSAoZGVsZXRlLXJlZ2lvbiBiZWdpbiBlbmQpIChp bnNlcnQgcmVwbGFjZW1lbnQpKSkpKSAoKGJhYmVsLWNhbGwgaW5saW5lLWJhYmVsLWNhbGwpIChs ZXQqICgobG9iLWluZm8gKG9yZy1iYWJlbC1sb2ItZ2V0LWluZm8pKSAocmVzdWx0cyAob3JnLWJh YmVsLWV4cC1kby1leHBvcnQgKGxpc3QgImVtYWNzLWxpc3AiICJyZXN1bHRzIiAoYXBwbHkgLi4u IG9yZy1iYWJlbC1kZWZhdWx0LWhlYWRlci1hcmdzIG9yZy1iYWJlbC1kZWZhdWx0LWxvYi1oZWFk ZXItYXJncyAuLi4pICIiIChudGggMyBsb2ItaW5mbykgKG50aCAyIGxvYi1pbmZvKSkgKHF1b3Rl IGxvYikpKSAocmVwIChvcmctZmlsbC10ZW1wbGF0ZSBvcmctYmFiZWwtZXhwLWNhbGwtbGluZS10 ZW1wbGF0ZSAoXGAgKC4uLikpKSkpIChpZiAoZXF1YWwgcmVwICIiKSAoZGVsZXRlLXJlZ2lvbiBi ZWdpbiAocHJvZ24gKGdvdG8tY2hhciBlbmQpIChpZiAobm90IC4uLikgKHByb2duIC4uLiAuLi4p IChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkp KSAoZ290by1jaGFyIGJlZ2luKSAoZGVsZXRlLXJlZ2lvbiBiZWdpbiBlbmQpIChpbnNlcnQgcmVw KSkpKSAoc3JjLWJsb2NrIChsZXQqICgobWF0Y2gtc3RhcnQgKGNvcHktbWFya2VyIChtYXRjaC1i ZWdpbm5pbmcgMCkpKSAoaW5kIChvcmctZ2V0LWluZGVudGF0aW9uKSkgKGhlYWRlcnMgKGNvbnMg KG9yZy1lbGVtZW50LXByb3BlcnR5IDpsYW5ndWFnZSBlbGVtZW50KSAobGV0ICguLi4pIChhbmQg cGFyYW1zIC4uLikpKSkpIChsZXQgKChyZXBsYWNlbWVudCAocHJvZ24gKGdvdG8tY2hhciBtYXRj aC1zdGFydCkgKG9yZy1iYWJlbC1leHAtc3JjLWJsb2NrIGhlYWRlcnMpKSkpIChjb25kICgobm90 IHJlcGxhY2VtZW50KSAoZ290by1jaGFyIGVuZCkpICgoZXF1YWwgcmVwbGFjZW1lbnQgIiIpIChn b3RvLWNoYXIgZW5kKSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2Yt bGluZSkgKGRlbGV0ZS1yZWdpb24gYmVnaW4gKHBvaW50KSkpICh0IChnb3RvLWNoYXIgbWF0Y2gt c3RhcnQpIChkZWxldGUtcmVnaW9uIChwb2ludCkgKHNhdmUtZXhjdXJzaW9uIC4uLiAuLi4pKSAo aW5zZXJ0IHJlcGxhY2VtZW50KSAoaWYgKG9yIG9yZy1zcmMtcHJlc2VydmUtaW5kZW50YXRpb24g Li4uKSAoc2F2ZS1leGN1cnNpb24gLi4uIC4uLiAuLi4gLi4uKSAoaW5kZW50LXJpZ2lkbHkgbWF0 Y2gtc3RhcnQgLi4uIGluZCkpKSkpIChzZXQtbWFya2VyIG1hdGNoLXN0YXJ0IG5pbCkpKSkKICAo bGV0KiAoKGVsZW1lbnQgKHNhdmUtZXhjdXJzaW9uIChiYWNrd2FyZC1jaGFyKSAoc2F2ZS1tYXRj aC1kYXRhIChvcmctZWxlbWVudC1jb250ZXh0KSkpKSAodHlwZSAob3JnLWVsZW1lbnQtdHlwZSBl bGVtZW50KSkgKGJlZ2luIChjb3B5LW1hcmtlciAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmJlZ2lu IGVsZW1lbnQpKSkgKGVuZCAoY29weS1tYXJrZXIgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIg KG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkpIChza2lwLWNoYXJzLWJhY2t3YXJk ICIgDQlcbiIpIChwb2ludCkpKSkpIChjYXNlIHR5cGUgKGlubGluZS1zcmMtYmxvY2sgKGxldCog KChoZWFkIChtYXRjaC1iZWdpbm5pbmcgMCkpIChpbmZvIChhcHBlbmQgKG9yZy1iYWJlbC1wYXJz ZS1pbmxpbmUtc3JjLWJsb2NrLW1hdGNoKSAobGlzdCBuaWwgbmlsIGhlYWQpKSkgKHBhcmFtcyAo bnRoIDIgaW5mbykpKSAoc2V0ZiAobnRoIDEgaW5mbykgKGlmIChhbmQgKGNkciAuLi4pIChzdHJp bmc9ICJ5ZXMiIC4uLikpIChvcmctYmFiZWwtZXhwYW5kLW5vd2ViLXJlZmVyZW5jZXMgaW5mbyBv cmctYmFiZWwtZXhwLXJlZmVyZW5jZS1idWZmZXIpIChudGggMSBpbmZvKSkpIChnb3RvLWNoYXIg YmVnaW4pIChsZXQgKChyZXBsYWNlbWVudCAob3JnLWJhYmVsLWV4cC1kby1leHBvcnQgaW5mbyAu Li4pKSkgKGlmIChlcXVhbCByZXBsYWNlbWVudCAiIikgKGRlbGV0ZS1yZWdpb24gYmVnaW4gKHBy b2duIC4uLiAuLi4gLi4uKSkgKGRlbGV0ZS1yZWdpb24gYmVnaW4gZW5kKSAoaW5zZXJ0IHJlcGxh Y2VtZW50KSkpKSkgKChiYWJlbC1jYWxsIGlubGluZS1iYWJlbC1jYWxsKSAobGV0KiAoKGxvYi1p bmZvIChvcmctYmFiZWwtbG9iLWdldC1pbmZvKSkgKHJlc3VsdHMgKG9yZy1iYWJlbC1leHAtZG8t ZXhwb3J0IChsaXN0ICJlbWFjcy1saXNwIiAicmVzdWx0cyIgLi4uICIiIC4uLiAuLi4pIChxdW90 ZSBsb2IpKSkgKHJlcCAob3JnLWZpbGwtdGVtcGxhdGUgb3JnLWJhYmVsLWV4cC1jYWxsLWxpbmUt dGVtcGxhdGUgKFxgIC4uLikpKSkgKGlmIChlcXVhbCByZXAgIiIpIChkZWxldGUtcmVnaW9uIGJl Z2luIChwcm9nbiAoZ290by1jaGFyIGVuZCkgKGlmIC4uLiAuLi4gLi4uIC4uLikpKSAoZ290by1j aGFyIGJlZ2luKSAoZGVsZXRlLXJlZ2lvbiBiZWdpbiBlbmQpIChpbnNlcnQgcmVwKSkpKSAoc3Jj LWJsb2NrIChsZXQqICgobWF0Y2gtc3RhcnQgKGNvcHktbWFya2VyIChtYXRjaC1iZWdpbm5pbmcg MCkpKSAoaW5kIChvcmctZ2V0LWluZGVudGF0aW9uKSkgKGhlYWRlcnMgKGNvbnMgKG9yZy1lbGVt ZW50LXByb3BlcnR5IDpsYW5ndWFnZSBlbGVtZW50KSAobGV0IC4uLiAuLi4pKSkpIChsZXQgKChy ZXBsYWNlbWVudCAocHJvZ24gLi4uIC4uLikpKSAoY29uZCAoKG5vdCByZXBsYWNlbWVudCkgKGdv dG8tY2hhciBlbmQpKSAoKGVxdWFsIHJlcGxhY2VtZW50ICIiKSAoZ290by1jaGFyIGVuZCkgKHNr aXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChkZWxldGUtcmVn aW9uIGJlZ2luIC4uLikpICh0IChnb3RvLWNoYXIgbWF0Y2gtc3RhcnQpIChkZWxldGUtcmVnaW9u IC4uLiAuLi4pIChpbnNlcnQgcmVwbGFjZW1lbnQpIChpZiAuLi4gLi4uIC4uLikpKSkgKHNldC1t YXJrZXIgbWF0Y2gtc3RhcnQgbmlsKSkpKSAoc2V0LW1hcmtlciBiZWdpbiBuaWwpIChzZXQtbWFy a2VyIGVuZCBuaWwpKQogIChpZiAoc2F2ZS1tYXRjaC1kYXRhIChvcmctaW4tY29tbWVudGVkLWhl YWRpbmctcCkpIG5pbCAobGV0KiAoKGVsZW1lbnQgKHNhdmUtZXhjdXJzaW9uIChiYWNrd2FyZC1j aGFyKSAoc2F2ZS1tYXRjaC1kYXRhIChvcmctZWxlbWVudC1jb250ZXh0KSkpKSAodHlwZSAob3Jn LWVsZW1lbnQtdHlwZSBlbGVtZW50KSkgKGJlZ2luIChjb3B5LW1hcmtlciAob3JnLWVsZW1lbnQt cHJvcGVydHkgOmJlZ2luIGVsZW1lbnQpKSkgKGVuZCAoY29weS1tYXJrZXIgKHNhdmUtZXhjdXJz aW9uIChnb3RvLWNoYXIgKG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkpIChza2lw LWNoYXJzLWJhY2t3YXJkICIgDQlcbiIpIChwb2ludCkpKSkpIChjYXNlIHR5cGUgKGlubGluZS1z cmMtYmxvY2sgKGxldCogKChoZWFkIChtYXRjaC1iZWdpbm5pbmcgMCkpIChpbmZvIChhcHBlbmQg Li4uIC4uLikpIChwYXJhbXMgKG50aCAyIGluZm8pKSkgKHNldGYgKG50aCAxIGluZm8pIChpZiAo YW5kIC4uLiAuLi4pIChvcmctYmFiZWwtZXhwYW5kLW5vd2ViLXJlZmVyZW5jZXMgaW5mbyBvcmct YmFiZWwtZXhwLXJlZmVyZW5jZS1idWZmZXIpIChudGggMSBpbmZvKSkpIChnb3RvLWNoYXIgYmVn aW4pIChsZXQgKChyZXBsYWNlbWVudCAuLi4pKSAoaWYgKGVxdWFsIHJlcGxhY2VtZW50ICIiKSAo ZGVsZXRlLXJlZ2lvbiBiZWdpbiAuLi4pIChkZWxldGUtcmVnaW9uIGJlZ2luIGVuZCkgKGluc2Vy dCByZXBsYWNlbWVudCkpKSkpICgoYmFiZWwtY2FsbCBpbmxpbmUtYmFiZWwtY2FsbCkgKGxldCog KChsb2ItaW5mbyAob3JnLWJhYmVsLWxvYi1nZXQtaW5mbykpIChyZXN1bHRzIChvcmctYmFiZWwt ZXhwLWRvLWV4cG9ydCAuLi4gLi4uKSkgKHJlcCAob3JnLWZpbGwtdGVtcGxhdGUgb3JnLWJhYmVs LWV4cC1jYWxsLWxpbmUtdGVtcGxhdGUgLi4uKSkpIChpZiAoZXF1YWwgcmVwICIiKSAoZGVsZXRl LXJlZ2lvbiBiZWdpbiAocHJvZ24gLi4uIC4uLikpIChnb3RvLWNoYXIgYmVnaW4pIChkZWxldGUt cmVnaW9uIGJlZ2luIGVuZCkgKGluc2VydCByZXApKSkpIChzcmMtYmxvY2sgKGxldCogKChtYXRj aC1zdGFydCAoY29weS1tYXJrZXIgLi4uKSkgKGluZCAob3JnLWdldC1pbmRlbnRhdGlvbikpICho ZWFkZXJzIChjb25zIC4uLiAuLi4pKSkgKGxldCAoKHJlcGxhY2VtZW50IC4uLikpIChjb25kICgu Li4gLi4uKSAoLi4uIC4uLiAuLi4gLi4uIC4uLikgKHQgLi4uIC4uLiAuLi4gLi4uKSkpIChzZXQt bWFya2VyIG1hdGNoLXN0YXJ0IG5pbCkpKSkgKHNldC1tYXJrZXIgYmVnaW4gbmlsKSAoc2V0LW1h cmtlciBlbmQgbmlsKSkpCiAgKHVubGVzcyAoc2F2ZS1tYXRjaC1kYXRhIChvcmctaW4tY29tbWVu dGVkLWhlYWRpbmctcCkpIChsZXQqICgoZWxlbWVudCAoc2F2ZS1leGN1cnNpb24gKGJhY2t3YXJk LWNoYXIpIChzYXZlLW1hdGNoLWRhdGEgKG9yZy1lbGVtZW50LWNvbnRleHQpKSkpICh0eXBlIChv cmctZWxlbWVudC10eXBlIGVsZW1lbnQpKSAoYmVnaW4gKGNvcHktbWFya2VyIChvcmctZWxlbWVu dC1wcm9wZXJ0eSA6YmVnaW4gZWxlbWVudCkpKSAoZW5kIChjb3B5LW1hcmtlciAoc2F2ZS1leGN1 cnNpb24gKGdvdG8tY2hhciAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSkgKHNr aXAtY2hhcnMtYmFja3dhcmQgIiANCVxuIikgKHBvaW50KSkpKSkgKGNhc2UgdHlwZSAoaW5saW5l LXNyYy1ibG9jayAobGV0KiAoKGhlYWQgKG1hdGNoLWJlZ2lubmluZyAwKSkgKGluZm8gKGFwcGVu ZCAuLi4gLi4uKSkgKHBhcmFtcyAobnRoIDIgaW5mbykpKSAoc2V0ZiAobnRoIDEgaW5mbykgKGlm IChhbmQgLi4uIC4uLikgKG9yZy1iYWJlbC1leHBhbmQtbm93ZWItcmVmZXJlbmNlcyBpbmZvIG9y Zy1iYWJlbC1leHAtcmVmZXJlbmNlLWJ1ZmZlcikgKG50aCAxIGluZm8pKSkgKGdvdG8tY2hhciBi ZWdpbikgKGxldCAoKHJlcGxhY2VtZW50IC4uLikpIChpZiAoZXF1YWwgcmVwbGFjZW1lbnQgIiIp IChkZWxldGUtcmVnaW9uIGJlZ2luIC4uLikgKGRlbGV0ZS1yZWdpb24gYmVnaW4gZW5kKSAoaW5z ZXJ0IHJlcGxhY2VtZW50KSkpKSkgKChiYWJlbC1jYWxsIGlubGluZS1iYWJlbC1jYWxsKSAobGV0 KiAoKGxvYi1pbmZvIChvcmctYmFiZWwtbG9iLWdldC1pbmZvKSkgKHJlc3VsdHMgKG9yZy1iYWJl bC1leHAtZG8tZXhwb3J0IC4uLiAuLi4pKSAocmVwIChvcmctZmlsbC10ZW1wbGF0ZSBvcmctYmFi ZWwtZXhwLWNhbGwtbGluZS10ZW1wbGF0ZSAuLi4pKSkgKGlmIChlcXVhbCByZXAgIiIpIChkZWxl dGUtcmVnaW9uIGJlZ2luIChwcm9nbiAuLi4gLi4uKSkgKGdvdG8tY2hhciBiZWdpbikgKGRlbGV0 ZS1yZWdpb24gYmVnaW4gZW5kKSAoaW5zZXJ0IHJlcCkpKSkgKHNyYy1ibG9jayAobGV0KiAoKG1h dGNoLXN0YXJ0IChjb3B5LW1hcmtlciAuLi4pKSAoaW5kIChvcmctZ2V0LWluZGVudGF0aW9uKSkg KGhlYWRlcnMgKGNvbnMgLi4uIC4uLikpKSAobGV0ICgocmVwbGFjZW1lbnQgLi4uKSkgKGNvbmQg KC4uLiAuLi4pICguLi4gLi4uIC4uLiAuLi4gLi4uKSAodCAuLi4gLi4uIC4uLiAuLi4pKSkgKHNl dC1tYXJrZXIgbWF0Y2gtc3RhcnQgbmlsKSkpKSAoc2V0LW1hcmtlciBiZWdpbiBuaWwpIChzZXQt bWFya2VyIGVuZCBuaWwpKSkKICAod2hpbGUgKHJlLXNlYXJjaC1mb3J3YXJkIHJlZ2V4cCBuaWwg dCkgKHVubGVzcyAoc2F2ZS1tYXRjaC1kYXRhIChvcmctaW4tY29tbWVudGVkLWhlYWRpbmctcCkp IChsZXQqICgoZWxlbWVudCAoc2F2ZS1leGN1cnNpb24gKGJhY2t3YXJkLWNoYXIpIChzYXZlLW1h dGNoLWRhdGEgKG9yZy1lbGVtZW50LWNvbnRleHQpKSkpICh0eXBlIChvcmctZWxlbWVudC10eXBl IGVsZW1lbnQpKSAoYmVnaW4gKGNvcHktbWFya2VyIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6YmVn aW4gZWxlbWVudCkpKSAoZW5kIChjb3B5LW1hcmtlciAoc2F2ZS1leGN1cnNpb24gKGdvdG8tY2hh ciAuLi4pIChza2lwLWNoYXJzLWJhY2t3YXJkICIgDQlcbiIpIChwb2ludCkpKSkpIChjYXNlIHR5 cGUgKGlubGluZS1zcmMtYmxvY2sgKGxldCogKChoZWFkIC4uLikgKGluZm8gLi4uKSAocGFyYW1z IC4uLikpIChzZXRmIChudGggMSBpbmZvKSAoaWYgLi4uIC4uLiAuLi4pKSAoZ290by1jaGFyIGJl Z2luKSAobGV0ICguLi4pIChpZiAuLi4gLi4uIC4uLiAuLi4pKSkpICgoYmFiZWwtY2FsbCBpbmxp bmUtYmFiZWwtY2FsbCkgKGxldCogKChsb2ItaW5mbyAuLi4pIChyZXN1bHRzIC4uLikgKHJlcCAu Li4pKSAoaWYgKGVxdWFsIHJlcCAiIikgKGRlbGV0ZS1yZWdpb24gYmVnaW4gLi4uKSAoZ290by1j aGFyIGJlZ2luKSAoZGVsZXRlLXJlZ2lvbiBiZWdpbiBlbmQpIChpbnNlcnQgcmVwKSkpKSAoc3Jj LWJsb2NrIChsZXQqICgobWF0Y2gtc3RhcnQgLi4uKSAoaW5kIC4uLikgKGhlYWRlcnMgLi4uKSkg KGxldCAoLi4uKSAoY29uZCAuLi4gLi4uIC4uLikpIChzZXQtbWFya2VyIG1hdGNoLXN0YXJ0IG5p bCkpKSkgKHNldC1tYXJrZXIgYmVnaW4gbmlsKSAoc2V0LW1hcmtlciBlbmQgbmlsKSkpKQogIChs ZXQgKChjYXNlLWZvbGQtc2VhcmNoIHQpIChvcmctYmFiZWwtZXhwLXJlZmVyZW5jZS1idWZmZXIg cmVmZXJlbmNlLWJ1ZmZlcikgKHJlZ2V4cCAoY29uY2F0IG9yZy1iYWJlbC1pbmxpbmUtc3JjLWJs b2NrLXJlZ2V4cCAiXFx8IiBvcmctYmFiZWwtbG9iLW9uZS1saW5lci1yZWdleHAgIlxcfCIgIl5b IAldKiNcXCtCRUdJTl9TUkMiKSkpIChnb3RvLWNoYXIgKHBvaW50LW1pbikpICh3aGlsZSAocmUt c2VhcmNoLWZvcndhcmQgcmVnZXhwIG5pbCB0KSAodW5sZXNzIChzYXZlLW1hdGNoLWRhdGEgKG9y Zy1pbi1jb21tZW50ZWQtaGVhZGluZy1wKSkgKGxldCogKChlbGVtZW50IChzYXZlLWV4Y3Vyc2lv biAoYmFja3dhcmQtY2hhcikgKHNhdmUtbWF0Y2gtZGF0YSAuLi4pKSkgKHR5cGUgKG9yZy1lbGVt ZW50LXR5cGUgZWxlbWVudCkpIChiZWdpbiAoY29weS1tYXJrZXIgKG9yZy1lbGVtZW50LXByb3Bl cnR5IDpiZWdpbiBlbGVtZW50KSkpIChlbmQgKGNvcHktbWFya2VyIChzYXZlLWV4Y3Vyc2lvbiAu Li4gLi4uIC4uLikpKSkgKGNhc2UgdHlwZSAoaW5saW5lLXNyYy1ibG9jayAobGV0KiAoLi4uIC4u LiAuLi4pIChzZXRmIC4uLiAuLi4pIChnb3RvLWNoYXIgYmVnaW4pIChsZXQgLi4uIC4uLikpKSAo KGJhYmVsLWNhbGwgaW5saW5lLWJhYmVsLWNhbGwpIChsZXQqICguLi4gLi4uIC4uLikgKGlmIC4u LiAuLi4gLi4uIC4uLiAuLi4pKSkgKHNyYy1ibG9jayAobGV0KiAoLi4uIC4uLiAuLi4pIChsZXQg Li4uIC4uLikgKHNldC1tYXJrZXIgbWF0Y2gtc3RhcnQgbmlsKSkpKSAoc2V0LW1hcmtlciBiZWdp biBuaWwpIChzZXQtbWFya2VyIGVuZCBuaWwpKSkpKQogIChzYXZlLWV4Y3Vyc2lvbiAobGV0ICgo Y2FzZS1mb2xkLXNlYXJjaCB0KSAob3JnLWJhYmVsLWV4cC1yZWZlcmVuY2UtYnVmZmVyIHJlZmVy ZW5jZS1idWZmZXIpIChyZWdleHAgKGNvbmNhdCBvcmctYmFiZWwtaW5saW5lLXNyYy1ibG9jay1y ZWdleHAgIlxcfCIgb3JnLWJhYmVsLWxvYi1vbmUtbGluZXItcmVnZXhwICJcXHwiICJeWyAJXSoj XFwrQkVHSU5fU1JDIikpKSAoZ290by1jaGFyIChwb2ludC1taW4pKSAod2hpbGUgKHJlLXNlYXJj aC1mb3J3YXJkIHJlZ2V4cCBuaWwgdCkgKHVubGVzcyAoc2F2ZS1tYXRjaC1kYXRhIChvcmctaW4t Y29tbWVudGVkLWhlYWRpbmctcCkpIChsZXQqICgoZWxlbWVudCAoc2F2ZS1leGN1cnNpb24gLi4u IC4uLikpICh0eXBlIChvcmctZWxlbWVudC10eXBlIGVsZW1lbnQpKSAoYmVnaW4gKGNvcHktbWFy a2VyIC4uLikpIChlbmQgKGNvcHktbWFya2VyIC4uLikpKSAoY2FzZSB0eXBlIChpbmxpbmUtc3Jj LWJsb2NrIChsZXQqIC4uLiAuLi4gLi4uIC4uLikpICgoYmFiZWwtY2FsbCBpbmxpbmUtYmFiZWwt Y2FsbCkgKGxldCogLi4uIC4uLikpIChzcmMtYmxvY2sgKGxldCogLi4uIC4uLiAuLi4pKSkgKHNl dC1tYXJrZXIgYmVnaW4gbmlsKSAoc2V0LW1hcmtlciBlbmQgbmlsKSkpKSkpCiAgKHByb2duIChz YXZlLWV4Y3Vyc2lvbiAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCB0KSAob3JnLWJhYmVsLWV4cC1y ZWZlcmVuY2UtYnVmZmVyIHJlZmVyZW5jZS1idWZmZXIpIChyZWdleHAgKGNvbmNhdCBvcmctYmFi ZWwtaW5saW5lLXNyYy1ibG9jay1yZWdleHAgIlxcfCIgb3JnLWJhYmVsLWxvYi1vbmUtbGluZXIt cmVnZXhwICJcXHwiICJeWyAJXSojXFwrQkVHSU5fU1JDIikpKSAoZ290by1jaGFyIChwb2ludC1t aW4pKSAod2hpbGUgKHJlLXNlYXJjaC1mb3J3YXJkIHJlZ2V4cCBuaWwgdCkgKHVubGVzcyAoc2F2 ZS1tYXRjaC1kYXRhIChvcmctaW4tY29tbWVudGVkLWhlYWRpbmctcCkpIChsZXQqICgoZWxlbWVu dCAuLi4pICh0eXBlIC4uLikgKGJlZ2luIC4uLikgKGVuZCAuLi4pKSAoY2FzZSB0eXBlIChpbmxp bmUtc3JjLWJsb2NrIC4uLikgKC4uLiAuLi4pIChzcmMtYmxvY2sgLi4uKSkgKHNldC1tYXJrZXIg YmVnaW4gbmlsKSAoc2V0LW1hcmtlciBlbmQgbmlsKSkpKSkpKQogICh1bndpbmQtcHJvdGVjdCAo cHJvZ24gKHNhdmUtZXhjdXJzaW9uIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIHQpIChvcmctYmFi ZWwtZXhwLXJlZmVyZW5jZS1idWZmZXIgcmVmZXJlbmNlLWJ1ZmZlcikgKHJlZ2V4cCAoY29uY2F0 IG9yZy1iYWJlbC1pbmxpbmUtc3JjLWJsb2NrLXJlZ2V4cCAiXFx8IiBvcmctYmFiZWwtbG9iLW9u ZS1saW5lci1yZWdleHAgIlxcfCIgIl5bIAldKiNcXCtCRUdJTl9TUkMiKSkpIChnb3RvLWNoYXIg KHBvaW50LW1pbikpICh3aGlsZSAocmUtc2VhcmNoLWZvcndhcmQgcmVnZXhwIG5pbCB0KSAodW5s ZXNzIChzYXZlLW1hdGNoLWRhdGEgKG9yZy1pbi1jb21tZW50ZWQtaGVhZGluZy1wKSkgKGxldCog KC4uLiAuLi4gLi4uIC4uLikgKGNhc2UgdHlwZSAuLi4gLi4uIC4uLikgKHNldC1tYXJrZXIgYmVn aW4gbmlsKSAoc2V0LW1hcmtlciBlbmQgbmlsKSkpKSkpKSAoc2V0LXdpbmRvdy1jb25maWd1cmF0 aW9uIHdjb25maWcpKQogIChsZXQgKCh3Y29uZmlnIChjdXJyZW50LXdpbmRvdy1jb25maWd1cmF0 aW9uKSkpICh1bndpbmQtcHJvdGVjdCAocHJvZ24gKHNhdmUtZXhjdXJzaW9uIChsZXQgKChjYXNl LWZvbGQtc2VhcmNoIHQpIChvcmctYmFiZWwtZXhwLXJlZmVyZW5jZS1idWZmZXIgcmVmZXJlbmNl LWJ1ZmZlcikgKHJlZ2V4cCAoY29uY2F0IG9yZy1iYWJlbC1pbmxpbmUtc3JjLWJsb2NrLXJlZ2V4 cCAiXFx8IiBvcmctYmFiZWwtbG9iLW9uZS1saW5lci1yZWdleHAgIlxcfCIgIl5bIAldKiNcXCtC RUdJTl9TUkMiKSkpIChnb3RvLWNoYXIgKHBvaW50LW1pbikpICh3aGlsZSAocmUtc2VhcmNoLWZv cndhcmQgcmVnZXhwIG5pbCB0KSAodW5sZXNzIChzYXZlLW1hdGNoLWRhdGEgLi4uKSAobGV0KiAu Li4gLi4uIC4uLiAuLi4pKSkpKSkgKHNldC13aW5kb3ctY29uZmlndXJhdGlvbiB3Y29uZmlnKSkp CiAgKHNhdmUtd2luZG93LWV4Y3Vyc2lvbiAoc2F2ZS1leGN1cnNpb24gKGxldCAoKGNhc2UtZm9s ZC1zZWFyY2ggdCkgKG9yZy1iYWJlbC1leHAtcmVmZXJlbmNlLWJ1ZmZlciByZWZlcmVuY2UtYnVm ZmVyKSAocmVnZXhwIChjb25jYXQgb3JnLWJhYmVsLWlubGluZS1zcmMtYmxvY2stcmVnZXhwICJc XHwiIG9yZy1iYWJlbC1sb2Itb25lLWxpbmVyLXJlZ2V4cCAiXFx8IiAiXlsgCV0qI1xcK0JFR0lO X1NSQyIpKSkgKGdvdG8tY2hhciAocG9pbnQtbWluKSkgKHdoaWxlIChyZS1zZWFyY2gtZm9yd2Fy ZCByZWdleHAgbmlsIHQpICh1bmxlc3MgKHNhdmUtbWF0Y2gtZGF0YSAob3JnLWluLWNvbW1lbnRl ZC1oZWFkaW5nLXApKSAobGV0KiAoKGVsZW1lbnQgLi4uKSAodHlwZSAuLi4pIChiZWdpbiAuLi4p IChlbmQgLi4uKSkgKGNhc2UgdHlwZSAoaW5saW5lLXNyYy1ibG9jayAuLi4pICguLi4gLi4uKSAo c3JjLWJsb2NrIC4uLikpIChzZXQtbWFya2VyIGJlZ2luIG5pbCkgKHNldC1tYXJrZXIgZW5kIG5p bCkpKSkpKSkKICBvcmctYmFiZWwtZXhwLXByb2Nlc3MtYnVmZmVyKCM8YnVmZmVyIHVzZXItbWFu dWFsLm9yZzwyPjwyPj4pCiAgKHVud2luZC1wcm90ZWN0IChvcmctYmFiZWwtZXhwLXByb2Nlc3Mt YnVmZmVyIHJlZmVyZW5jZSkgKGtpbGwtYnVmZmVyIHJlZmVyZW5jZSkpCiAgKGxldCAoKHJlZmVy ZW5jZSAob3JnLWV4cG9ydC1jb3B5LWJ1ZmZlcikpKSAodW53aW5kLXByb3RlY3QgKG9yZy1iYWJl bC1leHAtcHJvY2Vzcy1idWZmZXIgcmVmZXJlbmNlKSAoa2lsbC1idWZmZXIgcmVmZXJlbmNlKSkp CiAgb3JnLWV4cG9ydC1leGVjdXRlLWJhYmVsLWNvZGUoKQogIChwcm9nbiAocnVuLWhvb2std2l0 aC1hcmdzIChxdW90ZSBvcmctZXhwb3J0LWJlZm9yZS1wcm9jZXNzaW5nLWhvb2spIChvcmctZXhw b3J0LWJhY2tlbmQtbmFtZSBiYWNrZW5kKSkgKG9yZy1leHBvcnQtZXhwYW5kLWluY2x1ZGUta2V5 d29yZCkgKG9yZy1tYWNyby1pbml0aWFsaXplLXRlbXBsYXRlcykgKG9yZy1tYWNyby1yZXBsYWNl LWFsbCBvcmctbWFjcm8tdGVtcGxhdGVzKSAob3JnLWV4cG9ydC1leGVjdXRlLWJhYmVsLWNvZGUp IChvcmctdXBkYXRlLXJhZGlvLXRhcmdldC1yZWdleHApIChnb3RvLWNoYXIgKHBvaW50LW1pbikp IChzYXZlLWV4Y3Vyc2lvbiAocnVuLWhvb2std2l0aC1hcmdzIChxdW90ZSBvcmctZXhwb3J0LWJl Zm9yZS1wYXJzaW5nLWhvb2spIChvcmctZXhwb3J0LWJhY2tlbmQtbmFtZSBiYWNrZW5kKSkpIChz ZXRxIGluZm8gKG9yZy1leHBvcnQtaW5zdGFsbC1maWx0ZXJzIChvcmctY29tYmluZS1wbGlzdHMg aW5mbyAob3JnLWV4cG9ydC1nZXQtZW52aXJvbm1lbnQgYmFja2VuZCBzdWJ0cmVlcCBleHQtcGxp c3QpKSkpICh1bmxlc3MgKHBsaXN0LWdldCBpbmZvIDp0aXRsZSkgKHBsaXN0LXB1dCBpbmZvIDp0 aXRsZSAobGV0ICgoZmlsZSAocGxpc3QtZ2V0IGluZm8gOmlucHV0LWZpbGUpKSkgKGlmIGZpbGUg KGZpbGUtbmFtZS1zYW5zLWV4dGVuc2lvbiAoZmlsZS1uYW1lLW5vbmRpcmVjdG9yeSBmaWxlKSkg KHBsaXN0LWdldCBpbmZvIDppbnB1dC1idWZmZXIpKSkpKSAob3JnLW1hY3JvLXJlcGxhY2UtYWxs IChsaXN0IChjb25zICJhdXRob3IiIChvcmctZWxlbWVudC1pbnRlcnByZXQtZGF0YSAocGxpc3Qt Z2V0IGluZm8gOmF1dGhvcikpKSAoY29ucyAiZGF0ZSIgKG9yZy1lbGVtZW50LWludGVycHJldC1k YXRhIChwbGlzdC1nZXQgaW5mbyA6ZGF0ZSkpKSAoY29ucyAiZW1haWwiIChvciAocGxpc3QtZ2V0 IGluZm8gOmVtYWlsKSAiIikpIChjb25zICJ0aXRsZSIgKG9yZy1lbGVtZW50LWludGVycHJldC1k YXRhIChwbGlzdC1nZXQgaW5mbyA6dGl0bGUpKSkpKSAoc2V0cSB0cmVlIChvcmctZWxlbWVudC1w YXJzZS1idWZmZXIgbmlsIHZpc2libGUtb25seSkpIChvcmctZXhwb3J0LXJlbW92ZS11bmludGVy cHJldGVkLWRhdGEgdHJlZSBpbmZvKSAobGV0ICgoYmFja2VuZC1uYW1lIChvcmctZXhwb3J0LWJh Y2tlbmQtbmFtZSBiYWNrZW5kKSkpIChkb2xpc3QgKGZpbHRlciAocGxpc3QtZ2V0IGluZm8gOmZp bHRlci1vcHRpb25zKSkgKGxldCAoKHJlc3VsdCAoZnVuY2FsbCBmaWx0ZXIgaW5mbyBiYWNrZW5k LW5hbWUpKSkgKHdoZW4gcmVzdWx0IChzZXRxIGluZm8gcmVzdWx0KSkpKSkgKHNldHEgdHJlZSAo b3JnLWV4cG9ydC1maWx0ZXItYXBwbHktZnVuY3Rpb25zIChwbGlzdC1nZXQgaW5mbyA6ZmlsdGVy LXBhcnNlLXRyZWUpIHRyZWUgaW5mbykpIChzZXRxIGluZm8gKG9yZy1jb21iaW5lLXBsaXN0cyBp bmZvIChvcmctZXhwb3J0LWNvbGxlY3QtdHJlZS1wcm9wZXJ0aWVzIHRyZWUgaW5mbykpKSAobGV0 KiAoKGJvZHkgKG9yZy1lbGVtZW50LW5vcm1hbGl6ZS1zdHJpbmcgKG9yIChvcmctZXhwb3J0LWRh dGEgdHJlZSBpbmZvKSAiIikpKSAoaW5uZXItdGVtcGxhdGUgKGNkciAoYXNzcSAocXVvdGUgaW5u ZXItdGVtcGxhdGUpIChwbGlzdC1nZXQgaW5mbyA6dHJhbnNsYXRlLWFsaXN0KSkpKSAoZnVsbC1i b2R5IChpZiAobm90IChmdW5jdGlvbnAgaW5uZXItdGVtcGxhdGUpKSBib2R5IChmdW5jYWxsIGlu bmVyLXRlbXBsYXRlIGJvZHkgaW5mbykpKSAodGVtcGxhdGUgKGNkciAoYXNzcSAocXVvdGUgdGVt cGxhdGUpIChwbGlzdC1nZXQgaW5mbyA6dHJhbnNsYXRlLWFsaXN0KSkpKSkgKG9yZy1uby1wcm9w ZXJ0aWVzIChvcmctZXhwb3J0LWZpbHRlci1hcHBseS1mdW5jdGlvbnMgKHBsaXN0LWdldCBpbmZv IDpmaWx0ZXItZmluYWwtb3V0cHV0KSAoaWYgKG9yIChub3QgKGZ1bmN0aW9ucCB0ZW1wbGF0ZSkp IGJvZHktb25seSkgZnVsbC1ib2R5IChmdW5jYWxsIHRlbXBsYXRlIGZ1bGwtYm9keSBpbmZvKSkg aW5mbykpKSkKICAoc2F2ZS1jdXJyZW50LWJ1ZmZlciAoc2V0LWJ1ZmZlciAtLWJ1Zi1jb3B5KSAo Z290by1jaGFyIChwb2ludC1taW4pKSAocHJvZ24gKHJ1bi1ob29rLXdpdGgtYXJncyAocXVvdGUg b3JnLWV4cG9ydC1iZWZvcmUtcHJvY2Vzc2luZy1ob29rKSAob3JnLWV4cG9ydC1iYWNrZW5kLW5h bWUgYmFja2VuZCkpIChvcmctZXhwb3J0LWV4cGFuZC1pbmNsdWRlLWtleXdvcmQpIChvcmctbWFj cm8taW5pdGlhbGl6ZS10ZW1wbGF0ZXMpIChvcmctbWFjcm8tcmVwbGFjZS1hbGwgb3JnLW1hY3Jv LXRlbXBsYXRlcykgKG9yZy1leHBvcnQtZXhlY3V0ZS1iYWJlbC1jb2RlKSAob3JnLXVwZGF0ZS1y YWRpby10YXJnZXQtcmVnZXhwKSAoZ290by1jaGFyIChwb2ludC1taW4pKSAoc2F2ZS1leGN1cnNp b24gKHJ1bi1ob29rLXdpdGgtYXJncyAocXVvdGUgb3JnLWV4cG9ydC1iZWZvcmUtcGFyc2luZy1o b29rKSAob3JnLWV4cG9ydC1iYWNrZW5kLW5hbWUgYmFja2VuZCkpKSAoc2V0cSBpbmZvIChvcmct ZXhwb3J0LWluc3RhbGwtZmlsdGVycyAob3JnLWNvbWJpbmUtcGxpc3RzIGluZm8gKG9yZy1leHBv cnQtZ2V0LWVudmlyb25tZW50IGJhY2tlbmQgc3VidHJlZXAgZXh0LXBsaXN0KSkpKSAodW5sZXNz IChwbGlzdC1nZXQgaW5mbyA6dGl0bGUpIChwbGlzdC1wdXQgaW5mbyA6dGl0bGUgKGxldCAoKGZp bGUgKHBsaXN0LWdldCBpbmZvIDppbnB1dC1maWxlKSkpIChpZiBmaWxlIChmaWxlLW5hbWUtc2Fu cy1leHRlbnNpb24gKGZpbGUtbmFtZS1ub25kaXJlY3RvcnkgZmlsZSkpIChwbGlzdC1nZXQgaW5m byA6aW5wdXQtYnVmZmVyKSkpKSkgKG9yZy1tYWNyby1yZXBsYWNlLWFsbCAobGlzdCAoY29ucyAi YXV0aG9yIiAob3JnLWVsZW1lbnQtaW50ZXJwcmV0LWRhdGEgKHBsaXN0LWdldCBpbmZvIDphdXRo b3IpKSkgKGNvbnMgImRhdGUiIChvcmctZWxlbWVudC1pbnRlcnByZXQtZGF0YSAocGxpc3QtZ2V0 IGluZm8gOmRhdGUpKSkgKGNvbnMgImVtYWlsIiAob3IgKHBsaXN0LWdldCBpbmZvIDplbWFpbCkg IiIpKSAoY29ucyAidGl0bGUiIChvcmctZWxlbWVudC1pbnRlcnByZXQtZGF0YSAocGxpc3QtZ2V0 IGluZm8gOnRpdGxlKSkpKSkgKHNldHEgdHJlZSAob3JnLWVsZW1lbnQtcGFyc2UtYnVmZmVyIG5p bCB2aXNpYmxlLW9ubHkpKSAob3JnLWV4cG9ydC1yZW1vdmUtdW5pbnRlcnByZXRlZC1kYXRhIHRy ZWUgaW5mbykgKGxldCAoKGJhY2tlbmQtbmFtZSAob3JnLWV4cG9ydC1iYWNrZW5kLW5hbWUgYmFj a2VuZCkpKSAoZG9saXN0IChmaWx0ZXIgKHBsaXN0LWdldCBpbmZvIDpmaWx0ZXItb3B0aW9ucykp IChsZXQgKChyZXN1bHQgKGZ1bmNhbGwgZmlsdGVyIGluZm8gYmFja2VuZC1uYW1lKSkpICh3aGVu IHJlc3VsdCAoc2V0cSBpbmZvIHJlc3VsdCkpKSkpIChzZXRxIHRyZWUgKG9yZy1leHBvcnQtZmls dGVyLWFwcGx5LWZ1bmN0aW9ucyAocGxpc3QtZ2V0IGluZm8gOmZpbHRlci1wYXJzZS10cmVlKSB0 cmVlIGluZm8pKSAoc2V0cSBpbmZvIChvcmctY29tYmluZS1wbGlzdHMgaW5mbyAob3JnLWV4cG9y dC1jb2xsZWN0LXRyZWUtcHJvcGVydGllcyB0cmVlIGluZm8pKSkgKGxldCogKChib2R5IChvcmct ZWxlbWVudC1ub3JtYWxpemUtc3RyaW5nIChvciAob3JnLWV4cG9ydC1kYXRhIHRyZWUgaW5mbykg IiIpKSkgKGlubmVyLXRlbXBsYXRlIChjZHIgKGFzc3EgKHF1b3RlIGlubmVyLXRlbXBsYXRlKSAo cGxpc3QtZ2V0IGluZm8gOnRyYW5zbGF0ZS1hbGlzdCkpKSkgKGZ1bGwtYm9keSAoaWYgKG5vdCAo ZnVuY3Rpb25wIGlubmVyLXRlbXBsYXRlKSkgYm9keSAoZnVuY2FsbCBpbm5lci10ZW1wbGF0ZSBi b2R5IGluZm8pKSkgKHRlbXBsYXRlIChjZHIgKGFzc3EgKHF1b3RlIHRlbXBsYXRlKSAocGxpc3Qt Z2V0IGluZm8gOnRyYW5zbGF0ZS1hbGlzdCkpKSkpIChvcmctbm8tcHJvcGVydGllcyAob3JnLWV4 cG9ydC1maWx0ZXItYXBwbHktZnVuY3Rpb25zIChwbGlzdC1nZXQgaW5mbyA6ZmlsdGVyLWZpbmFs LW91dHB1dCkgKGlmIChvciAobm90IC4uLikgYm9keS1vbmx5KSBmdWxsLWJvZHkgKGZ1bmNhbGwg dGVtcGxhdGUgZnVsbC1ib2R5IGluZm8pKSBpbmZvKSkpKSkKICAod2l0aC1jdXJyZW50LWJ1ZmZl ciAtLWJ1Zi1jb3B5IChnb3RvLWNoYXIgKHBvaW50LW1pbikpIChwcm9nbiAocnVuLWhvb2std2l0 aC1hcmdzIChxdW90ZSBvcmctZXhwb3J0LWJlZm9yZS1wcm9jZXNzaW5nLWhvb2spIChvcmctZXhw b3J0LWJhY2tlbmQtbmFtZSBiYWNrZW5kKSkgKG9yZy1leHBvcnQtZXhwYW5kLWluY2x1ZGUta2V5 d29yZCkgKG9yZy1tYWNyby1pbml0aWFsaXplLXRlbXBsYXRlcykgKG9yZy1tYWNyby1yZXBsYWNl LWFsbCBvcmctbWFjcm8tdGVtcGxhdGVzKSAob3JnLWV4cG9ydC1leGVjdXRlLWJhYmVsLWNvZGUp IChvcmctdXBkYXRlLXJhZGlvLXRhcmdldC1yZWdleHApIChnb3RvLWNoYXIgKHBvaW50LW1pbikp IChzYXZlLWV4Y3Vyc2lvbiAocnVuLWhvb2std2l0aC1hcmdzIChxdW90ZSBvcmctZXhwb3J0LWJl Zm9yZS1wYXJzaW5nLWhvb2spIChvcmctZXhwb3J0LWJhY2tlbmQtbmFtZSBiYWNrZW5kKSkpIChz ZXRxIGluZm8gKG9yZy1leHBvcnQtaW5zdGFsbC1maWx0ZXJzIChvcmctY29tYmluZS1wbGlzdHMg aW5mbyAob3JnLWV4cG9ydC1nZXQtZW52aXJvbm1lbnQgYmFja2VuZCBzdWJ0cmVlcCBleHQtcGxp c3QpKSkpICh1bmxlc3MgKHBsaXN0LWdldCBpbmZvIDp0aXRsZSkgKHBsaXN0LXB1dCBpbmZvIDp0 aXRsZSAobGV0ICgoZmlsZSAocGxpc3QtZ2V0IGluZm8gOmlucHV0LWZpbGUpKSkgKGlmIGZpbGUg KGZpbGUtbmFtZS1zYW5zLWV4dGVuc2lvbiAoZmlsZS1uYW1lLW5vbmRpcmVjdG9yeSBmaWxlKSkg KHBsaXN0LWdldCBpbmZvIDppbnB1dC1idWZmZXIpKSkpKSAob3JnLW1hY3JvLXJlcGxhY2UtYWxs IChsaXN0IChjb25zICJhdXRob3IiIChvcmctZWxlbWVudC1pbnRlcnByZXQtZGF0YSAocGxpc3Qt Z2V0IGluZm8gOmF1dGhvcikpKSAoY29ucyAiZGF0ZSIgKG9yZy1lbGVtZW50LWludGVycHJldC1k YXRhIChwbGlzdC1nZXQgaW5mbyA6ZGF0ZSkpKSAoY29ucyAiZW1haWwiIChvciAocGxpc3QtZ2V0 IGluZm8gOmVtYWlsKSAiIikpIChjb25zICJ0aXRsZSIgKG9yZy1lbGVtZW50LWludGVycHJldC1k YXRhIChwbGlzdC1nZXQgaW5mbyA6dGl0bGUpKSkpKSAoc2V0cSB0cmVlIChvcmctZWxlbWVudC1w YXJzZS1idWZmZXIgbmlsIHZpc2libGUtb25seSkpIChvcmctZXhwb3J0LXJlbW92ZS11bmludGVy cHJldGVkLWRhdGEgdHJlZSBpbmZvKSAobGV0ICgoYmFja2VuZC1uYW1lIChvcmctZXhwb3J0LWJh Y2tlbmQtbmFtZSBiYWNrZW5kKSkpIChkb2xpc3QgKGZpbHRlciAocGxpc3QtZ2V0IGluZm8gOmZp bHRlci1vcHRpb25zKSkgKGxldCAoKHJlc3VsdCAoZnVuY2FsbCBmaWx0ZXIgaW5mbyBiYWNrZW5k LW5hbWUpKSkgKHdoZW4gcmVzdWx0IChzZXRxIGluZm8gcmVzdWx0KSkpKSkgKHNldHEgdHJlZSAo b3JnLWV4cG9ydC1maWx0ZXItYXBwbHktZnVuY3Rpb25zIChwbGlzdC1nZXQgaW5mbyA6ZmlsdGVy LXBhcnNlLXRyZWUpIHRyZWUgaW5mbykpIChzZXRxIGluZm8gKG9yZy1jb21iaW5lLXBsaXN0cyBp bmZvIChvcmctZXhwb3J0LWNvbGxlY3QtdHJlZS1wcm9wZXJ0aWVzIHRyZWUgaW5mbykpKSAobGV0 KiAoKGJvZHkgKG9yZy1lbGVtZW50LW5vcm1hbGl6ZS1zdHJpbmcgKG9yIChvcmctZXhwb3J0LWRh dGEgdHJlZSBpbmZvKSAiIikpKSAoaW5uZXItdGVtcGxhdGUgKGNkciAoYXNzcSAocXVvdGUgaW5u ZXItdGVtcGxhdGUpIChwbGlzdC1nZXQgaW5mbyA6dHJhbnNsYXRlLWFsaXN0KSkpKSAoZnVsbC1i b2R5IChpZiAobm90IChmdW5jdGlvbnAgaW5uZXItdGVtcGxhdGUpKSBib2R5IChmdW5jYWxsIGlu bmVyLXRlbXBsYXRlIGJvZHkgaW5mbykpKSAodGVtcGxhdGUgKGNkciAoYXNzcSAocXVvdGUgdGVt cGxhdGUpIChwbGlzdC1nZXQgaW5mbyA6dHJhbnNsYXRlLWFsaXN0KSkpKSkgKG9yZy1uby1wcm9w ZXJ0aWVzIChvcmctZXhwb3J0LWZpbHRlci1hcHBseS1mdW5jdGlvbnMgKHBsaXN0LWdldCBpbmZv IDpmaWx0ZXItZmluYWwtb3V0cHV0KSAoaWYgKG9yIChub3QgLi4uKSBib2R5LW9ubHkpIGZ1bGwt Ym9keSAoZnVuY2FsbCB0ZW1wbGF0ZSBmdWxsLWJvZHkgaW5mbykpIGluZm8pKSkpKQogICh1bndp bmQtcHJvdGVjdCAod2l0aC1jdXJyZW50LWJ1ZmZlciAtLWJ1Zi1jb3B5IChnb3RvLWNoYXIgKHBv aW50LW1pbikpIChwcm9nbiAocnVuLWhvb2std2l0aC1hcmdzIChxdW90ZSBvcmctZXhwb3J0LWJl Zm9yZS1wcm9jZXNzaW5nLWhvb2spIChvcmctZXhwb3J0LWJhY2tlbmQtbmFtZSBiYWNrZW5kKSkg KG9yZy1leHBvcnQtZXhwYW5kLWluY2x1ZGUta2V5d29yZCkgKG9yZy1tYWNyby1pbml0aWFsaXpl LXRlbXBsYXRlcykgKG9yZy1tYWNyby1yZXBsYWNlLWFsbCBvcmctbWFjcm8tdGVtcGxhdGVzKSAo b3JnLWV4cG9ydC1leGVjdXRlLWJhYmVsLWNvZGUpIChvcmctdXBkYXRlLXJhZGlvLXRhcmdldC1y ZWdleHApIChnb3RvLWNoYXIgKHBvaW50LW1pbikpIChzYXZlLWV4Y3Vyc2lvbiAocnVuLWhvb2st d2l0aC1hcmdzIChxdW90ZSBvcmctZXhwb3J0LWJlZm9yZS1wYXJzaW5nLWhvb2spIChvcmctZXhw b3J0LWJhY2tlbmQtbmFtZSBiYWNrZW5kKSkpIChzZXRxIGluZm8gKG9yZy1leHBvcnQtaW5zdGFs bC1maWx0ZXJzIChvcmctY29tYmluZS1wbGlzdHMgaW5mbyAob3JnLWV4cG9ydC1nZXQtZW52aXJv bm1lbnQgYmFja2VuZCBzdWJ0cmVlcCBleHQtcGxpc3QpKSkpICh1bmxlc3MgKHBsaXN0LWdldCBp bmZvIDp0aXRsZSkgKHBsaXN0LXB1dCBpbmZvIDp0aXRsZSAobGV0ICgoZmlsZSAuLi4pKSAoaWYg ZmlsZSAoZmlsZS1uYW1lLXNhbnMtZXh0ZW5zaW9uIC4uLikgKHBsaXN0LWdldCBpbmZvIDppbnB1 dC1idWZmZXIpKSkpKSAob3JnLW1hY3JvLXJlcGxhY2UtYWxsIChsaXN0IChjb25zICJhdXRob3Ii IChvcmctZWxlbWVudC1pbnRlcnByZXQtZGF0YSAocGxpc3QtZ2V0IGluZm8gOmF1dGhvcikpKSAo Y29ucyAiZGF0ZSIgKG9yZy1lbGVtZW50LWludGVycHJldC1kYXRhIChwbGlzdC1nZXQgaW5mbyA6 ZGF0ZSkpKSAoY29ucyAiZW1haWwiIChvciAocGxpc3QtZ2V0IGluZm8gOmVtYWlsKSAiIikpIChj b25zICJ0aXRsZSIgKG9yZy1lbGVtZW50LWludGVycHJldC1kYXRhIChwbGlzdC1nZXQgaW5mbyA6 dGl0bGUpKSkpKSAoc2V0cSB0cmVlIChvcmctZWxlbWVudC1wYXJzZS1idWZmZXIgbmlsIHZpc2li bGUtb25seSkpIChvcmctZXhwb3J0LXJlbW92ZS11bmludGVycHJldGVkLWRhdGEgdHJlZSBpbmZv KSAobGV0ICgoYmFja2VuZC1uYW1lIChvcmctZXhwb3J0LWJhY2tlbmQtbmFtZSBiYWNrZW5kKSkp IChkb2xpc3QgKGZpbHRlciAocGxpc3QtZ2V0IGluZm8gOmZpbHRlci1vcHRpb25zKSkgKGxldCAo KHJlc3VsdCAuLi4pKSAod2hlbiByZXN1bHQgKHNldHEgaW5mbyByZXN1bHQpKSkpKSAoc2V0cSB0 cmVlIChvcmctZXhwb3J0LWZpbHRlci1hcHBseS1mdW5jdGlvbnMgKHBsaXN0LWdldCBpbmZvIDpm aWx0ZXItcGFyc2UtdHJlZSkgdHJlZSBpbmZvKSkgKHNldHEgaW5mbyAob3JnLWNvbWJpbmUtcGxp c3RzIGluZm8gKG9yZy1leHBvcnQtY29sbGVjdC10cmVlLXByb3BlcnRpZXMgdHJlZSBpbmZvKSkp IChsZXQqICgoYm9keSAob3JnLWVsZW1lbnQtbm9ybWFsaXplLXN0cmluZyAob3IgLi4uICIiKSkp IChpbm5lci10ZW1wbGF0ZSAoY2RyIChhc3NxIC4uLiAuLi4pKSkgKGZ1bGwtYm9keSAoaWYgKG5v dCAuLi4pIGJvZHkgKGZ1bmNhbGwgaW5uZXItdGVtcGxhdGUgYm9keSBpbmZvKSkpICh0ZW1wbGF0 ZSAoY2RyIChhc3NxIC4uLiAuLi4pKSkpIChvcmctbm8tcHJvcGVydGllcyAob3JnLWV4cG9ydC1m aWx0ZXItYXBwbHktZnVuY3Rpb25zIChwbGlzdC1nZXQgaW5mbyA6ZmlsdGVyLWZpbmFsLW91dHB1 dCkgKGlmIChvciAuLi4gYm9keS1vbmx5KSBmdWxsLWJvZHkgKGZ1bmNhbGwgdGVtcGxhdGUgZnVs bC1ib2R5IGluZm8pKSBpbmZvKSkpKSkgKGFuZCAoYnVmZmVyLWxpdmUtcCAtLWJ1Zi1jb3B5KSAo cHJvZ24gKHdpdGgtY3VycmVudC1idWZmZXIgLS1idWYtY29weSAocmVzdG9yZS1idWZmZXItbW9k aWZpZWQtcCBuaWwpKSAoa2lsbC1idWZmZXIgLS1idWYtY29weSkpKSkKICAobGV0ICgoLS1idWYt Y29weSAob3JnLWV4cG9ydC1jb3B5LWJ1ZmZlcikpKSAodW53aW5kLXByb3RlY3QgKHdpdGgtY3Vy cmVudC1idWZmZXIgLS1idWYtY29weSAoZ290by1jaGFyIChwb2ludC1taW4pKSAocHJvZ24gKHJ1 bi1ob29rLXdpdGgtYXJncyAocXVvdGUgb3JnLWV4cG9ydC1iZWZvcmUtcHJvY2Vzc2luZy1ob29r KSAob3JnLWV4cG9ydC1iYWNrZW5kLW5hbWUgYmFja2VuZCkpIChvcmctZXhwb3J0LWV4cGFuZC1p bmNsdWRlLWtleXdvcmQpIChvcmctbWFjcm8taW5pdGlhbGl6ZS10ZW1wbGF0ZXMpIChvcmctbWFj cm8tcmVwbGFjZS1hbGwgb3JnLW1hY3JvLXRlbXBsYXRlcykgKG9yZy1leHBvcnQtZXhlY3V0ZS1i YWJlbC1jb2RlKSAob3JnLXVwZGF0ZS1yYWRpby10YXJnZXQtcmVnZXhwKSAoZ290by1jaGFyIChw b2ludC1taW4pKSAoc2F2ZS1leGN1cnNpb24gKHJ1bi1ob29rLXdpdGgtYXJncyAocXVvdGUgb3Jn LWV4cG9ydC1iZWZvcmUtcGFyc2luZy1ob29rKSAob3JnLWV4cG9ydC1iYWNrZW5kLW5hbWUgYmFj a2VuZCkpKSAoc2V0cSBpbmZvIChvcmctZXhwb3J0LWluc3RhbGwtZmlsdGVycyAob3JnLWNvbWJp bmUtcGxpc3RzIGluZm8gKG9yZy1leHBvcnQtZ2V0LWVudmlyb25tZW50IGJhY2tlbmQgc3VidHJl ZXAgZXh0LXBsaXN0KSkpKSAodW5sZXNzIChwbGlzdC1nZXQgaW5mbyA6dGl0bGUpIChwbGlzdC1w dXQgaW5mbyA6dGl0bGUgKGxldCAoLi4uKSAoaWYgZmlsZSAuLi4gLi4uKSkpKSAob3JnLW1hY3Jv LXJlcGxhY2UtYWxsIChsaXN0IChjb25zICJhdXRob3IiIChvcmctZWxlbWVudC1pbnRlcnByZXQt ZGF0YSAuLi4pKSAoY29ucyAiZGF0ZSIgKG9yZy1lbGVtZW50LWludGVycHJldC1kYXRhIC4uLikp IChjb25zICJlbWFpbCIgKG9yIC4uLiAiIikpIChjb25zICJ0aXRsZSIgKG9yZy1lbGVtZW50LWlu dGVycHJldC1kYXRhIC4uLikpKSkgKHNldHEgdHJlZSAob3JnLWVsZW1lbnQtcGFyc2UtYnVmZmVy IG5pbCB2aXNpYmxlLW9ubHkpKSAob3JnLWV4cG9ydC1yZW1vdmUtdW5pbnRlcnByZXRlZC1kYXRh IHRyZWUgaW5mbykgKGxldCAoKGJhY2tlbmQtbmFtZSAob3JnLWV4cG9ydC1iYWNrZW5kLW5hbWUg YmFja2VuZCkpKSAoZG9saXN0IChmaWx0ZXIgKHBsaXN0LWdldCBpbmZvIDpmaWx0ZXItb3B0aW9u cykpIChsZXQgKC4uLikgKHdoZW4gcmVzdWx0IC4uLikpKSkgKHNldHEgdHJlZSAob3JnLWV4cG9y dC1maWx0ZXItYXBwbHktZnVuY3Rpb25zIChwbGlzdC1nZXQgaW5mbyA6ZmlsdGVyLXBhcnNlLXRy ZWUpIHRyZWUgaW5mbykpIChzZXRxIGluZm8gKG9yZy1jb21iaW5lLXBsaXN0cyBpbmZvIChvcmct ZXhwb3J0LWNvbGxlY3QtdHJlZS1wcm9wZXJ0aWVzIHRyZWUgaW5mbykpKSAobGV0KiAoKGJvZHkg KG9yZy1lbGVtZW50LW5vcm1hbGl6ZS1zdHJpbmcgLi4uKSkgKGlubmVyLXRlbXBsYXRlIChjZHIg Li4uKSkgKGZ1bGwtYm9keSAoaWYgLi4uIGJvZHkgLi4uKSkgKHRlbXBsYXRlIChjZHIgLi4uKSkp IChvcmctbm8tcHJvcGVydGllcyAob3JnLWV4cG9ydC1maWx0ZXItYXBwbHktZnVuY3Rpb25zIChw bGlzdC1nZXQgaW5mbyA6ZmlsdGVyLWZpbmFsLW91dHB1dCkgKGlmIC4uLiBmdWxsLWJvZHkgLi4u KSBpbmZvKSkpKSkgKGFuZCAoYnVmZmVyLWxpdmUtcCAtLWJ1Zi1jb3B5KSAocHJvZ24gKHdpdGgt Y3VycmVudC1idWZmZXIgLS1idWYtY29weSAocmVzdG9yZS1idWZmZXItbW9kaWZpZWQtcCBuaWwp KSAoa2lsbC1idWZmZXIgLS1idWYtY29weSkpKSkpCiAgKG9yZy1leHBvcnQtd2l0aC1idWZmZXIt Y29weSAocnVuLWhvb2std2l0aC1hcmdzIChxdW90ZSBvcmctZXhwb3J0LWJlZm9yZS1wcm9jZXNz aW5nLWhvb2spIChvcmctZXhwb3J0LWJhY2tlbmQtbmFtZSBiYWNrZW5kKSkgKG9yZy1leHBvcnQt ZXhwYW5kLWluY2x1ZGUta2V5d29yZCkgKG9yZy1tYWNyby1pbml0aWFsaXplLXRlbXBsYXRlcykg KG9yZy1tYWNyby1yZXBsYWNlLWFsbCBvcmctbWFjcm8tdGVtcGxhdGVzKSAob3JnLWV4cG9ydC1l eGVjdXRlLWJhYmVsLWNvZGUpIChvcmctdXBkYXRlLXJhZGlvLXRhcmdldC1yZWdleHApIChnb3Rv LWNoYXIgKHBvaW50LW1pbikpIChzYXZlLWV4Y3Vyc2lvbiAocnVuLWhvb2std2l0aC1hcmdzIChx dW90ZSBvcmctZXhwb3J0LWJlZm9yZS1wYXJzaW5nLWhvb2spIChvcmctZXhwb3J0LWJhY2tlbmQt bmFtZSBiYWNrZW5kKSkpIChzZXRxIGluZm8gKG9yZy1leHBvcnQtaW5zdGFsbC1maWx0ZXJzIChv cmctY29tYmluZS1wbGlzdHMgaW5mbyAob3JnLWV4cG9ydC1nZXQtZW52aXJvbm1lbnQgYmFja2Vu ZCBzdWJ0cmVlcCBleHQtcGxpc3QpKSkpICh1bmxlc3MgKHBsaXN0LWdldCBpbmZvIDp0aXRsZSkg KHBsaXN0LXB1dCBpbmZvIDp0aXRsZSAobGV0ICgoZmlsZSAocGxpc3QtZ2V0IGluZm8gOmlucHV0 LWZpbGUpKSkgKGlmIGZpbGUgKGZpbGUtbmFtZS1zYW5zLWV4dGVuc2lvbiAoZmlsZS1uYW1lLW5v bmRpcmVjdG9yeSBmaWxlKSkgKHBsaXN0LWdldCBpbmZvIDppbnB1dC1idWZmZXIpKSkpKSAob3Jn LW1hY3JvLXJlcGxhY2UtYWxsIChsaXN0IChjb25zICJhdXRob3IiIChvcmctZWxlbWVudC1pbnRl cnByZXQtZGF0YSAocGxpc3QtZ2V0IGluZm8gOmF1dGhvcikpKSAoY29ucyAiZGF0ZSIgKG9yZy1l bGVtZW50LWludGVycHJldC1kYXRhIChwbGlzdC1nZXQgaW5mbyA6ZGF0ZSkpKSAoY29ucyAiZW1h aWwiIChvciAocGxpc3QtZ2V0IGluZm8gOmVtYWlsKSAiIikpIChjb25zICJ0aXRsZSIgKG9yZy1l bGVtZW50LWludGVycHJldC1kYXRhIChwbGlzdC1nZXQgaW5mbyA6dGl0bGUpKSkpKSAoc2V0cSB0 cmVlIChvcmctZWxlbWVudC1wYXJzZS1idWZmZXIgbmlsIHZpc2libGUtb25seSkpIChvcmctZXhw b3J0LXJlbW92ZS11bmludGVycHJldGVkLWRhdGEgdHJlZSBpbmZvKSAobGV0ICgoYmFja2VuZC1u YW1lIChvcmctZXhwb3J0LWJhY2tlbmQtbmFtZSBiYWNrZW5kKSkpIChkb2xpc3QgKGZpbHRlciAo cGxpc3QtZ2V0IGluZm8gOmZpbHRlci1vcHRpb25zKSkgKGxldCAoKHJlc3VsdCAoZnVuY2FsbCBm aWx0ZXIgaW5mbyBiYWNrZW5kLW5hbWUpKSkgKHdoZW4gcmVzdWx0IChzZXRxIGluZm8gcmVzdWx0 KSkpKSkgKHNldHEgdHJlZSAob3JnLWV4cG9ydC1maWx0ZXItYXBwbHktZnVuY3Rpb25zIChwbGlz dC1nZXQgaW5mbyA6ZmlsdGVyLXBhcnNlLXRyZWUpIHRyZWUgaW5mbykpIChzZXRxIGluZm8gKG9y Zy1jb21iaW5lLXBsaXN0cyBpbmZvIChvcmctZXhwb3J0LWNvbGxlY3QtdHJlZS1wcm9wZXJ0aWVz IHRyZWUgaW5mbykpKSAobGV0KiAoKGJvZHkgKG9yZy1lbGVtZW50LW5vcm1hbGl6ZS1zdHJpbmcg KG9yIChvcmctZXhwb3J0LWRhdGEgdHJlZSBpbmZvKSAiIikpKSAoaW5uZXItdGVtcGxhdGUgKGNk ciAoYXNzcSAocXVvdGUgaW5uZXItdGVtcGxhdGUpIChwbGlzdC1nZXQgaW5mbyA6dHJhbnNsYXRl LWFsaXN0KSkpKSAoZnVsbC1ib2R5IChpZiAobm90IChmdW5jdGlvbnAgaW5uZXItdGVtcGxhdGUp KSBib2R5IChmdW5jYWxsIGlubmVyLXRlbXBsYXRlIGJvZHkgaW5mbykpKSAodGVtcGxhdGUgKGNk ciAoYXNzcSAocXVvdGUgdGVtcGxhdGUpIChwbGlzdC1nZXQgaW5mbyA6dHJhbnNsYXRlLWFsaXN0 KSkpKSkgKG9yZy1uby1wcm9wZXJ0aWVzIChvcmctZXhwb3J0LWZpbHRlci1hcHBseS1mdW5jdGlv bnMgKHBsaXN0LWdldCBpbmZvIDpmaWx0ZXItZmluYWwtb3V0cHV0KSAoaWYgKG9yIChub3QgKGZ1 bmN0aW9ucCB0ZW1wbGF0ZSkpIGJvZHktb25seSkgZnVsbC1ib2R5IChmdW5jYWxsIHRlbXBsYXRl IGZ1bGwtYm9keSBpbmZvKSkgaW5mbykpKSkKICAobGV0KiAoKG9yZy1leHBvcnQtY3VycmVudC1i YWNrZW5kIChvcmctZXhwb3J0LWJhY2tlbmQtbmFtZSBiYWNrZW5kKSkgKGluZm8gKG9yZy1jb21i aW5lLXBsaXN0cyAobGlzdCA6ZXhwb3J0LW9wdGlvbnMgKGRlbHEgbmlsIChsaXN0IChhbmQgc3Vi dHJlZXAgLi4uKSAoYW5kIHZpc2libGUtb25seSAuLi4pIChhbmQgYm9keS1vbmx5IC4uLikpKSkg KG9yZy1leHBvcnQtLWdldC1idWZmZXItYXR0cmlidXRlcykpKSB0cmVlKSAob3JnLWV4cG9ydC13 aXRoLWJ1ZmZlci1jb3B5IChydW4taG9vay13aXRoLWFyZ3MgKHF1b3RlIG9yZy1leHBvcnQtYmVm b3JlLXByb2Nlc3NpbmctaG9vaykgKG9yZy1leHBvcnQtYmFja2VuZC1uYW1lIGJhY2tlbmQpKSAo b3JnLWV4cG9ydC1leHBhbmQtaW5jbHVkZS1rZXl3b3JkKSAob3JnLW1hY3JvLWluaXRpYWxpemUt dGVtcGxhdGVzKSAob3JnLW1hY3JvLXJlcGxhY2UtYWxsIG9yZy1tYWNyby10ZW1wbGF0ZXMpIChv cmctZXhwb3J0LWV4ZWN1dGUtYmFiZWwtY29kZSkgKG9yZy11cGRhdGUtcmFkaW8tdGFyZ2V0LXJl Z2V4cCkgKGdvdG8tY2hhciAocG9pbnQtbWluKSkgKHNhdmUtZXhjdXJzaW9uIChydW4taG9vay13 aXRoLWFyZ3MgKHF1b3RlIG9yZy1leHBvcnQtYmVmb3JlLXBhcnNpbmctaG9vaykgKG9yZy1leHBv cnQtYmFja2VuZC1uYW1lIGJhY2tlbmQpKSkgKHNldHEgaW5mbyAob3JnLWV4cG9ydC1pbnN0YWxs LWZpbHRlcnMgKG9yZy1jb21iaW5lLXBsaXN0cyBpbmZvIChvcmctZXhwb3J0LWdldC1lbnZpcm9u bWVudCBiYWNrZW5kIHN1YnRyZWVwIGV4dC1wbGlzdCkpKSkgKHVubGVzcyAocGxpc3QtZ2V0IGlu Zm8gOnRpdGxlKSAocGxpc3QtcHV0IGluZm8gOnRpdGxlIChsZXQgKChmaWxlIChwbGlzdC1nZXQg aW5mbyA6aW5wdXQtZmlsZSkpKSAoaWYgZmlsZSAoZmlsZS1uYW1lLXNhbnMtZXh0ZW5zaW9uIChm aWxlLW5hbWUtbm9uZGlyZWN0b3J5IGZpbGUpKSAocGxpc3QtZ2V0IGluZm8gOmlucHV0LWJ1ZmZl cikpKSkpIChvcmctbWFjcm8tcmVwbGFjZS1hbGwgKGxpc3QgKGNvbnMgImF1dGhvciIgKG9yZy1l bGVtZW50LWludGVycHJldC1kYXRhIChwbGlzdC1nZXQgaW5mbyA6YXV0aG9yKSkpIChjb25zICJk YXRlIiAob3JnLWVsZW1lbnQtaW50ZXJwcmV0LWRhdGEgKHBsaXN0LWdldCBpbmZvIDpkYXRlKSkp IChjb25zICJlbWFpbCIgKG9yIChwbGlzdC1nZXQgaW5mbyA6ZW1haWwpICIiKSkgKGNvbnMgInRp dGxlIiAob3JnLWVsZW1lbnQtaW50ZXJwcmV0LWRhdGEgKHBsaXN0LWdldCBpbmZvIDp0aXRsZSkp KSkpIChzZXRxIHRyZWUgKG9yZy1lbGVtZW50LXBhcnNlLWJ1ZmZlciBuaWwgdmlzaWJsZS1vbmx5 KSkgKG9yZy1leHBvcnQtcmVtb3ZlLXVuaW50ZXJwcmV0ZWQtZGF0YSB0cmVlIGluZm8pIChsZXQg KChiYWNrZW5kLW5hbWUgKG9yZy1leHBvcnQtYmFja2VuZC1uYW1lIGJhY2tlbmQpKSkgKGRvbGlz dCAoZmlsdGVyIChwbGlzdC1nZXQgaW5mbyA6ZmlsdGVyLW9wdGlvbnMpKSAobGV0ICgocmVzdWx0 IChmdW5jYWxsIGZpbHRlciBpbmZvIGJhY2tlbmQtbmFtZSkpKSAod2hlbiByZXN1bHQgKHNldHEg aW5mbyByZXN1bHQpKSkpKSAoc2V0cSB0cmVlIChvcmctZXhwb3J0LWZpbHRlci1hcHBseS1mdW5j dGlvbnMgKHBsaXN0LWdldCBpbmZvIDpmaWx0ZXItcGFyc2UtdHJlZSkgdHJlZSBpbmZvKSkgKHNl dHEgaW5mbyAob3JnLWNvbWJpbmUtcGxpc3RzIGluZm8gKG9yZy1leHBvcnQtY29sbGVjdC10cmVl LXByb3BlcnRpZXMgdHJlZSBpbmZvKSkpIChsZXQqICgoYm9keSAob3JnLWVsZW1lbnQtbm9ybWFs aXplLXN0cmluZyAob3IgKG9yZy1leHBvcnQtZGF0YSB0cmVlIGluZm8pICIiKSkpIChpbm5lci10 ZW1wbGF0ZSAoY2RyIChhc3NxIChxdW90ZSBpbm5lci10ZW1wbGF0ZSkgKHBsaXN0LWdldCBpbmZv IDp0cmFuc2xhdGUtYWxpc3QpKSkpIChmdWxsLWJvZHkgKGlmIChub3QgKGZ1bmN0aW9ucCBpbm5l ci10ZW1wbGF0ZSkpIGJvZHkgKGZ1bmNhbGwgaW5uZXItdGVtcGxhdGUgYm9keSBpbmZvKSkpICh0 ZW1wbGF0ZSAoY2RyIChhc3NxIChxdW90ZSB0ZW1wbGF0ZSkgKHBsaXN0LWdldCBpbmZvIDp0cmFu c2xhdGUtYWxpc3QpKSkpKSAob3JnLW5vLXByb3BlcnRpZXMgKG9yZy1leHBvcnQtZmlsdGVyLWFw cGx5LWZ1bmN0aW9ucyAocGxpc3QtZ2V0IGluZm8gOmZpbHRlci1maW5hbC1vdXRwdXQpIChpZiAo b3IgKG5vdCAuLi4pIGJvZHktb25seSkgZnVsbC1ib2R5IChmdW5jYWxsIHRlbXBsYXRlIGZ1bGwt Ym9keSBpbmZvKSkgaW5mbykpKSkpCiAgKHNhdmUtcmVzdHJpY3Rpb24gKGNvbmQgKChvcmctcmVn aW9uLWFjdGl2ZS1wKSAobmFycm93LXRvLXJlZ2lvbiAocmVnaW9uLWJlZ2lubmluZykgKHJlZ2lv bi1lbmQpKSkgKHN1YnRyZWVwIChvcmctbmFycm93LXRvLXN1YnRyZWUpIChnb3RvLWNoYXIgKHBv aW50LW1pbikpIChmb3J3YXJkLWxpbmUpIChuYXJyb3ctdG8tcmVnaW9uIChwb2ludCkgKHBvaW50 LW1heCkpKSkgKGxldCogKChvcmctZXhwb3J0LWN1cnJlbnQtYmFja2VuZCAob3JnLWV4cG9ydC1i YWNrZW5kLW5hbWUgYmFja2VuZCkpIChpbmZvIChvcmctY29tYmluZS1wbGlzdHMgKGxpc3QgOmV4 cG9ydC1vcHRpb25zIChkZWxxIG5pbCAobGlzdCAuLi4gLi4uIC4uLikpKSAob3JnLWV4cG9ydC0t Z2V0LWJ1ZmZlci1hdHRyaWJ1dGVzKSkpIHRyZWUpIChvcmctZXhwb3J0LXdpdGgtYnVmZmVyLWNv cHkgKHJ1bi1ob29rLXdpdGgtYXJncyAocXVvdGUgb3JnLWV4cG9ydC1iZWZvcmUtcHJvY2Vzc2lu Zy1ob29rKSAob3JnLWV4cG9ydC1iYWNrZW5kLW5hbWUgYmFja2VuZCkpIChvcmctZXhwb3J0LWV4 cGFuZC1pbmNsdWRlLWtleXdvcmQpIChvcmctbWFjcm8taW5pdGlhbGl6ZS10ZW1wbGF0ZXMpIChv cmctbWFjcm8tcmVwbGFjZS1hbGwgb3JnLW1hY3JvLXRlbXBsYXRlcykgKG9yZy1leHBvcnQtZXhl Y3V0ZS1iYWJlbC1jb2RlKSAob3JnLXVwZGF0ZS1yYWRpby10YXJnZXQtcmVnZXhwKSAoZ290by1j aGFyIChwb2ludC1taW4pKSAoc2F2ZS1leGN1cnNpb24gKHJ1bi1ob29rLXdpdGgtYXJncyAocXVv dGUgb3JnLWV4cG9ydC1iZWZvcmUtcGFyc2luZy1ob29rKSAob3JnLWV4cG9ydC1iYWNrZW5kLW5h bWUgYmFja2VuZCkpKSAoc2V0cSBpbmZvIChvcmctZXhwb3J0LWluc3RhbGwtZmlsdGVycyAob3Jn LWNvbWJpbmUtcGxpc3RzIGluZm8gKG9yZy1leHBvcnQtZ2V0LWVudmlyb25tZW50IGJhY2tlbmQg c3VidHJlZXAgZXh0LXBsaXN0KSkpKSAodW5sZXNzIChwbGlzdC1nZXQgaW5mbyA6dGl0bGUpIChw bGlzdC1wdXQgaW5mbyA6dGl0bGUgKGxldCAoKGZpbGUgLi4uKSkgKGlmIGZpbGUgKGZpbGUtbmFt ZS1zYW5zLWV4dGVuc2lvbiAuLi4pIChwbGlzdC1nZXQgaW5mbyA6aW5wdXQtYnVmZmVyKSkpKSkg KG9yZy1tYWNyby1yZXBsYWNlLWFsbCAobGlzdCAoY29ucyAiYXV0aG9yIiAob3JnLWVsZW1lbnQt aW50ZXJwcmV0LWRhdGEgKHBsaXN0LWdldCBpbmZvIDphdXRob3IpKSkgKGNvbnMgImRhdGUiIChv cmctZWxlbWVudC1pbnRlcnByZXQtZGF0YSAocGxpc3QtZ2V0IGluZm8gOmRhdGUpKSkgKGNvbnMg ImVtYWlsIiAob3IgKHBsaXN0LWdldCBpbmZvIDplbWFpbCkgIiIpKSAoY29ucyAidGl0bGUiIChv cmctZWxlbWVudC1pbnRlcnByZXQtZGF0YSAocGxpc3QtZ2V0IGluZm8gOnRpdGxlKSkpKSkgKHNl dHEgdHJlZSAob3JnLWVsZW1lbnQtcGFyc2UtYnVmZmVyIG5pbCB2aXNpYmxlLW9ubHkpKSAob3Jn LWV4cG9ydC1yZW1vdmUtdW5pbnRlcnByZXRlZC1kYXRhIHRyZWUgaW5mbykgKGxldCAoKGJhY2tl bmQtbmFtZSAob3JnLWV4cG9ydC1iYWNrZW5kLW5hbWUgYmFja2VuZCkpKSAoZG9saXN0IChmaWx0 ZXIgKHBsaXN0LWdldCBpbmZvIDpmaWx0ZXItb3B0aW9ucykpIChsZXQgKChyZXN1bHQgLi4uKSkg KHdoZW4gcmVzdWx0IChzZXRxIGluZm8gcmVzdWx0KSkpKSkgKHNldHEgdHJlZSAob3JnLWV4cG9y dC1maWx0ZXItYXBwbHktZnVuY3Rpb25zIChwbGlzdC1nZXQgaW5mbyA6ZmlsdGVyLXBhcnNlLXRy ZWUpIHRyZWUgaW5mbykpIChzZXRxIGluZm8gKG9yZy1jb21iaW5lLXBsaXN0cyBpbmZvIChvcmct ZXhwb3J0LWNvbGxlY3QtdHJlZS1wcm9wZXJ0aWVzIHRyZWUgaW5mbykpKSAobGV0KiAoKGJvZHkg KG9yZy1lbGVtZW50LW5vcm1hbGl6ZS1zdHJpbmcgKG9yIC4uLiAiIikpKSAoaW5uZXItdGVtcGxh dGUgKGNkciAoYXNzcSAuLi4gLi4uKSkpIChmdWxsLWJvZHkgKGlmIChub3QgLi4uKSBib2R5IChm dW5jYWxsIGlubmVyLXRlbXBsYXRlIGJvZHkgaW5mbykpKSAodGVtcGxhdGUgKGNkciAoYXNzcSAu Li4gLi4uKSkpKSAob3JnLW5vLXByb3BlcnRpZXMgKG9yZy1leHBvcnQtZmlsdGVyLWFwcGx5LWZ1 bmN0aW9ucyAocGxpc3QtZ2V0IGluZm8gOmZpbHRlci1maW5hbC1vdXRwdXQpIChpZiAob3IgLi4u IGJvZHktb25seSkgZnVsbC1ib2R5IChmdW5jYWxsIHRlbXBsYXRlIGZ1bGwtYm9keSBpbmZvKSkg aW5mbykpKSkpKQogIChzYXZlLWV4Y3Vyc2lvbiAoc2F2ZS1yZXN0cmljdGlvbiAoY29uZCAoKG9y Zy1yZWdpb24tYWN0aXZlLXApIChuYXJyb3ctdG8tcmVnaW9uIChyZWdpb24tYmVnaW5uaW5nKSAo cmVnaW9uLWVuZCkpKSAoc3VidHJlZXAgKG9yZy1uYXJyb3ctdG8tc3VidHJlZSkgKGdvdG8tY2hh ciAocG9pbnQtbWluKSkgKGZvcndhcmQtbGluZSkgKG5hcnJvdy10by1yZWdpb24gKHBvaW50KSAo cG9pbnQtbWF4KSkpKSAobGV0KiAoKG9yZy1leHBvcnQtY3VycmVudC1iYWNrZW5kIChvcmctZXhw b3J0LWJhY2tlbmQtbmFtZSBiYWNrZW5kKSkgKGluZm8gKG9yZy1jb21iaW5lLXBsaXN0cyAobGlz dCA6ZXhwb3J0LW9wdGlvbnMgKGRlbHEgbmlsIC4uLikpIChvcmctZXhwb3J0LS1nZXQtYnVmZmVy LWF0dHJpYnV0ZXMpKSkgdHJlZSkgKG9yZy1leHBvcnQtd2l0aC1idWZmZXItY29weSAocnVuLWhv b2std2l0aC1hcmdzIChxdW90ZSBvcmctZXhwb3J0LWJlZm9yZS1wcm9jZXNzaW5nLWhvb2spIChv cmctZXhwb3J0LWJhY2tlbmQtbmFtZSBiYWNrZW5kKSkgKG9yZy1leHBvcnQtZXhwYW5kLWluY2x1 ZGUta2V5d29yZCkgKG9yZy1tYWNyby1pbml0aWFsaXplLXRlbXBsYXRlcykgKG9yZy1tYWNyby1y ZXBsYWNlLWFsbCBvcmctbWFjcm8tdGVtcGxhdGVzKSAob3JnLWV4cG9ydC1leGVjdXRlLWJhYmVs LWNvZGUpIChvcmctdXBkYXRlLXJhZGlvLXRhcmdldC1yZWdleHApIChnb3RvLWNoYXIgKHBvaW50 LW1pbikpIChzYXZlLWV4Y3Vyc2lvbiAocnVuLWhvb2std2l0aC1hcmdzIChxdW90ZSBvcmctZXhw b3J0LWJlZm9yZS1wYXJzaW5nLWhvb2spIChvcmctZXhwb3J0LWJhY2tlbmQtbmFtZSBiYWNrZW5k KSkpIChzZXRxIGluZm8gKG9yZy1leHBvcnQtaW5zdGFsbC1maWx0ZXJzIChvcmctY29tYmluZS1w bGlzdHMgaW5mbyAob3JnLWV4cG9ydC1nZXQtZW52aXJvbm1lbnQgYmFja2VuZCBzdWJ0cmVlcCBl eHQtcGxpc3QpKSkpICh1bmxlc3MgKHBsaXN0LWdldCBpbmZvIDp0aXRsZSkgKHBsaXN0LXB1dCBp bmZvIDp0aXRsZSAobGV0ICguLi4pIChpZiBmaWxlIC4uLiAuLi4pKSkpIChvcmctbWFjcm8tcmVw bGFjZS1hbGwgKGxpc3QgKGNvbnMgImF1dGhvciIgKG9yZy1lbGVtZW50LWludGVycHJldC1kYXRh IC4uLikpIChjb25zICJkYXRlIiAob3JnLWVsZW1lbnQtaW50ZXJwcmV0LWRhdGEgLi4uKSkgKGNv bnMgImVtYWlsIiAob3IgLi4uICIiKSkgKGNvbnMgInRpdGxlIiAob3JnLWVsZW1lbnQtaW50ZXJw cmV0LWRhdGEgLi4uKSkpKSAoc2V0cSB0cmVlIChvcmctZWxlbWVudC1wYXJzZS1idWZmZXIgbmls IHZpc2libGUtb25seSkpIChvcmctZXhwb3J0LXJlbW92ZS11bmludGVycHJldGVkLWRhdGEgdHJl ZSBpbmZvKSAobGV0ICgoYmFja2VuZC1uYW1lIChvcmctZXhwb3J0LWJhY2tlbmQtbmFtZSBiYWNr ZW5kKSkpIChkb2xpc3QgKGZpbHRlciAocGxpc3QtZ2V0IGluZm8gOmZpbHRlci1vcHRpb25zKSkg KGxldCAoLi4uKSAod2hlbiByZXN1bHQgLi4uKSkpKSAoc2V0cSB0cmVlIChvcmctZXhwb3J0LWZp bHRlci1hcHBseS1mdW5jdGlvbnMgKHBsaXN0LWdldCBpbmZvIDpmaWx0ZXItcGFyc2UtdHJlZSkg dHJlZSBpbmZvKSkgKHNldHEgaW5mbyAob3JnLWNvbWJpbmUtcGxpc3RzIGluZm8gKG9yZy1leHBv cnQtY29sbGVjdC10cmVlLXByb3BlcnRpZXMgdHJlZSBpbmZvKSkpIChsZXQqICgoYm9keSAob3Jn LWVsZW1lbnQtbm9ybWFsaXplLXN0cmluZyAuLi4pKSAoaW5uZXItdGVtcGxhdGUgKGNkciAuLi4p KSAoZnVsbC1ib2R5IChpZiAuLi4gYm9keSAuLi4pKSAodGVtcGxhdGUgKGNkciAuLi4pKSkgKG9y Zy1uby1wcm9wZXJ0aWVzIChvcmctZXhwb3J0LWZpbHRlci1hcHBseS1mdW5jdGlvbnMgKHBsaXN0 LWdldCBpbmZvIDpmaWx0ZXItZmluYWwtb3V0cHV0KSAoaWYgLi4uIGZ1bGwtYm9keSAuLi4pIGlu Zm8pKSkpKSkpCiAgb3JnLWV4cG9ydC1hcyhsYXRleCBuaWwgbmlsIG5pbCBuaWwpCiAgKGxldCAo KG91dHB1dCAob3JnLWV4cG9ydC1hcyBiYWNrZW5kIHN1YnRyZWVwIHZpc2libGUtb25seSBib2R5 LW9ubHkgZXh0LXBsaXN0KSkpICh3aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQgb3V0cHV0KSAobGV0 ICgoY29kaW5nLXN5c3RlbS1mb3Itd3JpdGUgZW5jb2RpbmcpKSAod3JpdGUtZmlsZSBmaWxlKSkp ICh3aGVuIChhbmQgKG9yZy1leHBvcnQtLWNvcHktdG8ta2lsbC1yaW5nLXApIChvcmctc3RyaW5n LW53LXAgb3V0cHV0KSkgKG9yZy1raWxsLW5ldyBvdXRwdXQpKSAob3IgKGFuZCAoZnVuY3Rpb25w IHBvc3QtcHJvY2VzcykgKGZ1bmNhbGwgcG9zdC1wcm9jZXNzIGZpbGUpKSBmaWxlKSkKICAoaWYg YXN5bmMgKG9yZy1leHBvcnQtYXN5bmMtc3RhcnQgKFxgIChsYW1iZGEgKGZpbGUpIChvcmctZXhw b3J0LWFkZC10by1zdGFjayAoZXhwYW5kLWZpbGUtbmFtZSBmaWxlKSAocXVvdGUgKFwsIGJhY2tl bmQpKSkpKSAoXGAgKGxldCAoKG91dHB1dCAob3JnLWV4cG9ydC1hcyAocXVvdGUgLi4uKSAoXCwg c3VidHJlZXApIChcLCB2aXNpYmxlLW9ubHkpIChcLCBib2R5LW9ubHkpIChxdW90ZSAuLi4pKSkp ICh3aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQgb3V0cHV0KSAobGV0ICgoY29kaW5nLXN5c3RlbS1m b3Itd3JpdGUgLi4uKSkgKHdyaXRlLWZpbGUgKFwsIGZpbGUpKSkpIChvciAoaWdub3JlLWVycm9y cyAoZnVuY2FsbCAocXVvdGUgLi4uKSAoXCwgZmlsZSkpKSAoXCwgZmlsZSkpKSkpIChsZXQgKChv dXRwdXQgKG9yZy1leHBvcnQtYXMgYmFja2VuZCBzdWJ0cmVlcCB2aXNpYmxlLW9ubHkgYm9keS1v bmx5IGV4dC1wbGlzdCkpKSAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0IG91dHB1dCkgKGxldCAo KGNvZGluZy1zeXN0ZW0tZm9yLXdyaXRlIGVuY29kaW5nKSkgKHdyaXRlLWZpbGUgZmlsZSkpKSAo d2hlbiAoYW5kIChvcmctZXhwb3J0LS1jb3B5LXRvLWtpbGwtcmluZy1wKSAob3JnLXN0cmluZy1u dy1wIG91dHB1dCkpIChvcmcta2lsbC1uZXcgb3V0cHV0KSkgKG9yIChhbmQgKGZ1bmN0aW9ucCBw b3N0LXByb2Nlc3MpIChmdW5jYWxsIHBvc3QtcHJvY2VzcyBmaWxlKSkgZmlsZSkpKQogIChsZXQg KChlbmNvZGluZyAob3Igb3JnLWV4cG9ydC1jb2Rpbmctc3lzdGVtIGJ1ZmZlci1maWxlLWNvZGlu Zy1zeXN0ZW0pKSkgKGlmIGFzeW5jIChvcmctZXhwb3J0LWFzeW5jLXN0YXJ0IChcYCAobGFtYmRh IChmaWxlKSAob3JnLWV4cG9ydC1hZGQtdG8tc3RhY2sgKGV4cGFuZC1maWxlLW5hbWUgZmlsZSkg KHF1b3RlIChcLCBiYWNrZW5kKSkpKSkgKFxgIChsZXQgKChvdXRwdXQgKG9yZy1leHBvcnQtYXMg Li4uIC4uLiAuLi4gLi4uIC4uLikpKSAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0IG91dHB1dCkg KGxldCAoLi4uKSAod3JpdGUtZmlsZSAuLi4pKSkgKG9yIChpZ25vcmUtZXJyb3JzIChmdW5jYWxs IC4uLiAuLi4pKSAoXCwgZmlsZSkpKSkpIChsZXQgKChvdXRwdXQgKG9yZy1leHBvcnQtYXMgYmFj a2VuZCBzdWJ0cmVlcCB2aXNpYmxlLW9ubHkgYm9keS1vbmx5IGV4dC1wbGlzdCkpKSAod2l0aC10 ZW1wLWJ1ZmZlciAoaW5zZXJ0IG91dHB1dCkgKGxldCAoKGNvZGluZy1zeXN0ZW0tZm9yLXdyaXRl IGVuY29kaW5nKSkgKHdyaXRlLWZpbGUgZmlsZSkpKSAod2hlbiAoYW5kIChvcmctZXhwb3J0LS1j b3B5LXRvLWtpbGwtcmluZy1wKSAob3JnLXN0cmluZy1udy1wIG91dHB1dCkpIChvcmcta2lsbC1u ZXcgb3V0cHV0KSkgKG9yIChhbmQgKGZ1bmN0aW9ucCBwb3N0LXByb2Nlc3MpIChmdW5jYWxsIHBv c3QtcHJvY2VzcyBmaWxlKSkgZmlsZSkpKSkKICAoaWYgKG5vdCAoZmlsZS13cml0YWJsZS1wIGZp bGUpKSAoZXJyb3IgIk91dHB1dCBmaWxlIG5vdCB3cml0YWJsZSIpIChsZXQgKChlbmNvZGluZyAo b3Igb3JnLWV4cG9ydC1jb2Rpbmctc3lzdGVtIGJ1ZmZlci1maWxlLWNvZGluZy1zeXN0ZW0pKSkg KGlmIGFzeW5jIChvcmctZXhwb3J0LWFzeW5jLXN0YXJ0IChcYCAobGFtYmRhIChmaWxlKSAob3Jn LWV4cG9ydC1hZGQtdG8tc3RhY2sgKGV4cGFuZC1maWxlLW5hbWUgZmlsZSkgKHF1b3RlIC4uLikp KSkgKFxgIChsZXQgKChvdXRwdXQgLi4uKSkgKHdpdGgtdGVtcC1idWZmZXIgKGluc2VydCBvdXRw dXQpIChsZXQgLi4uIC4uLikpIChvciAoaWdub3JlLWVycm9ycyAuLi4pIChcLCBmaWxlKSkpKSkg KGxldCAoKG91dHB1dCAob3JnLWV4cG9ydC1hcyBiYWNrZW5kIHN1YnRyZWVwIHZpc2libGUtb25s eSBib2R5LW9ubHkgZXh0LXBsaXN0KSkpICh3aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQgb3V0cHV0 KSAobGV0ICgoY29kaW5nLXN5c3RlbS1mb3Itd3JpdGUgZW5jb2RpbmcpKSAod3JpdGUtZmlsZSBm aWxlKSkpICh3aGVuIChhbmQgKG9yZy1leHBvcnQtLWNvcHktdG8ta2lsbC1yaW5nLXApIChvcmct c3RyaW5nLW53LXAgb3V0cHV0KSkgKG9yZy1raWxsLW5ldyBvdXRwdXQpKSAob3IgKGFuZCAoZnVu Y3Rpb25wIHBvc3QtcHJvY2VzcykgKGZ1bmNhbGwgcG9zdC1wcm9jZXNzIGZpbGUpKSBmaWxlKSkp KSkKICBvcmctZXhwb3J0LXRvLWZpbGUobGF0ZXggIi4vdXNlci1tYW51YWwudGV4IiBuaWwgbmls IG5pbCBuaWwgbmlsKQogIChsZXQgKChvdXRmaWxlIChvcmctZXhwb3J0LW91dHB1dC1maWxlLW5h bWUgIi50ZXgiIHN1YnRyZWVwKSkpIChvcmctZXhwb3J0LXRvLWZpbGUgKHF1b3RlIGxhdGV4KSBv dXRmaWxlIGFzeW5jIHN1YnRyZWVwIHZpc2libGUtb25seSBib2R5LW9ubHkgZXh0LXBsaXN0KSkK ICBvcmctbGF0ZXgtZXhwb3J0LXRvLWxhdGV4KG5pbCBuaWwgbmlsIG5pbCkKICBmdW5jYWxsKG9y Zy1sYXRleC1leHBvcnQtdG8tbGF0ZXggbmlsIG5pbCBuaWwgbmlsKQogIChzYXZlLWV4Y3Vyc2lv biAod2hlbiBhcmcgKGlmIChlcSAobWFya2VyLWJ1ZmZlciBvcmctZXhwb3J0LWRpc3BhdGNoLWxh c3QtcG9zaXRpb24pIChvcmctYmFzZS1idWZmZXIgKGN1cnJlbnQtYnVmZmVyKSkpIChnb3RvLWNo YXIgb3JnLWV4cG9ydC1kaXNwYXRjaC1sYXN0LXBvc2l0aW9uKSAobW92ZS1tYXJrZXIgb3JnLWV4 cG9ydC1kaXNwYXRjaC1sYXN0LXBvc2l0aW9uIG5pbCkpKSAoZnVuY2FsbCBhY3Rpb24gKGFuZCAo bWVtcSAocXVvdGUgYXN5bmMpIG9wdG5zKSB0KSAoYW5kIChtZW1xIChxdW90ZSBzdWJ0cmVlKSBv cHRucykgdCkgKGFuZCAobWVtcSAocXVvdGUgdmlzaWJsZSkgb3B0bnMpIHQpIChhbmQgKG1lbXEg KHF1b3RlIGJvZHkpIG9wdG5zKSB0KSkpCiAgKGNvbmQgKChlcWwgYWN0aW9uIChxdW90ZSB0ZW1w bGF0ZSkpIChvcmctZXhwb3J0LWluc2VydC1kZWZhdWx0LXRlbXBsYXRlIG5pbCBvcHRucykpICgo ZXFsIGFjdGlvbiAocXVvdGUgc3RhY2spKSAob3JnLWV4cG9ydC1zdGFjaykpICgoZXFsIGFjdGlv biAocXVvdGUgcHVibGlzaC1jdXJyZW50LWZpbGUpKSAob3JnLXB1Ymxpc2gtY3VycmVudC1maWxl IChtZW1xIChxdW90ZSBmb3JjZSkgb3B0bnMpIChtZW1xIChxdW90ZSBhc3luYykgb3B0bnMpKSkg KChlcWwgYWN0aW9uIChxdW90ZSBwdWJsaXNoLWN1cnJlbnQtcHJvamVjdCkpIChvcmctcHVibGlz aC1jdXJyZW50LXByb2plY3QgKG1lbXEgKHF1b3RlIGZvcmNlKSBvcHRucykgKG1lbXEgKHF1b3Rl IGFzeW5jKSBvcHRucykpKSAoKGVxbCBhY3Rpb24gKHF1b3RlIHB1Ymxpc2gtY2hvb3NlLXByb2pl Y3QpKSAob3JnLXB1Ymxpc2ggKGFzc29jIChvcmctaWNvbXBsZXRpbmctcmVhZCAiUHVibGlzaCBw cm9qZWN0OiAiIG9yZy1wdWJsaXNoLXByb2plY3QtYWxpc3QgbmlsIHQpIG9yZy1wdWJsaXNoLXBy b2plY3QtYWxpc3QpIChtZW1xIChxdW90ZSBmb3JjZSkgb3B0bnMpIChtZW1xIChxdW90ZSBhc3lu Yykgb3B0bnMpKSkgKChlcWwgYWN0aW9uIChxdW90ZSBwdWJsaXNoLWFsbCkpIChvcmctcHVibGlz aC1hbGwgKG1lbXEgKHF1b3RlIGZvcmNlKSBvcHRucykgKG1lbXEgKHF1b3RlIGFzeW5jKSBvcHRu cykpKSAodCAoc2F2ZS1leGN1cnNpb24gKHdoZW4gYXJnIChpZiAoZXEgKG1hcmtlci1idWZmZXIg b3JnLWV4cG9ydC1kaXNwYXRjaC1sYXN0LXBvc2l0aW9uKSAob3JnLWJhc2UtYnVmZmVyIChjdXJy ZW50LWJ1ZmZlcikpKSAoZ290by1jaGFyIG9yZy1leHBvcnQtZGlzcGF0Y2gtbGFzdC1wb3NpdGlv bikgKG1vdmUtbWFya2VyIG9yZy1leHBvcnQtZGlzcGF0Y2gtbGFzdC1wb3NpdGlvbiBuaWwpKSkg KGZ1bmNhbGwgYWN0aW9uIChhbmQgKG1lbXEgKHF1b3RlIGFzeW5jKSBvcHRucykgdCkgKGFuZCAo bWVtcSAocXVvdGUgc3VidHJlZSkgb3B0bnMpIHQpIChhbmQgKG1lbXEgKHF1b3RlIHZpc2libGUp IG9wdG5zKSB0KSAoYW5kIChtZW1xIChxdW90ZSBib2R5KSBvcHRucykgdCkpKSkpCiAgKGNhc2Ug YWN0aW9uICh0ZW1wbGF0ZSAob3JnLWV4cG9ydC1pbnNlcnQtZGVmYXVsdC10ZW1wbGF0ZSBuaWwg b3B0bnMpKSAoc3RhY2sgKG9yZy1leHBvcnQtc3RhY2spKSAocHVibGlzaC1jdXJyZW50LWZpbGUg KG9yZy1wdWJsaXNoLWN1cnJlbnQtZmlsZSAobWVtcSAocXVvdGUgZm9yY2UpIG9wdG5zKSAobWVt cSAocXVvdGUgYXN5bmMpIG9wdG5zKSkpIChwdWJsaXNoLWN1cnJlbnQtcHJvamVjdCAob3JnLXB1 Ymxpc2gtY3VycmVudC1wcm9qZWN0IChtZW1xIChxdW90ZSBmb3JjZSkgb3B0bnMpIChtZW1xIChx dW90ZSBhc3luYykgb3B0bnMpKSkgKHB1Ymxpc2gtY2hvb3NlLXByb2plY3QgKG9yZy1wdWJsaXNo IChhc3NvYyAob3JnLWljb21wbGV0aW5nLXJlYWQgIlB1Ymxpc2ggcHJvamVjdDogIiBvcmctcHVi bGlzaC1wcm9qZWN0LWFsaXN0IG5pbCB0KSBvcmctcHVibGlzaC1wcm9qZWN0LWFsaXN0KSAobWVt cSAocXVvdGUgZm9yY2UpIG9wdG5zKSAobWVtcSAocXVvdGUgYXN5bmMpIG9wdG5zKSkpIChwdWJs aXNoLWFsbCAob3JnLXB1Ymxpc2gtYWxsIChtZW1xIChxdW90ZSBmb3JjZSkgb3B0bnMpIChtZW1x IChxdW90ZSBhc3luYykgb3B0bnMpKSkgKG90aGVyd2lzZSAoc2F2ZS1leGN1cnNpb24gKHdoZW4g YXJnIChpZiAoZXEgKG1hcmtlci1idWZmZXIgb3JnLWV4cG9ydC1kaXNwYXRjaC1sYXN0LXBvc2l0 aW9uKSAob3JnLWJhc2UtYnVmZmVyIChjdXJyZW50LWJ1ZmZlcikpKSAoZ290by1jaGFyIG9yZy1l eHBvcnQtZGlzcGF0Y2gtbGFzdC1wb3NpdGlvbikgKG1vdmUtbWFya2VyIG9yZy1leHBvcnQtZGlz cGF0Y2gtbGFzdC1wb3NpdGlvbiBuaWwpKSkgKGZ1bmNhbGwgYWN0aW9uIChhbmQgKG1lbXEgKHF1 b3RlIGFzeW5jKSBvcHRucykgdCkgKGFuZCAobWVtcSAocXVvdGUgc3VidHJlZSkgb3B0bnMpIHQp IChhbmQgKG1lbXEgKHF1b3RlIHZpc2libGUpIG9wdG5zKSB0KSAoYW5kIChtZW1xIChxdW90ZSBi b2R5KSBvcHRucykgdCkpKSkpCiAgKGxldCogKChpbnB1dCAoY29uZCAoKGVxdWFsIGFyZyAocXVv dGUgKDE2KSkpIChxdW90ZSAoc3RhY2spKSkgKChhbmQgYXJnIG9yZy1leHBvcnQtZGlzcGF0Y2gt bGFzdC1hY3Rpb24pKSAodCAoc2F2ZS13aW5kb3ctZXhjdXJzaW9uICh1bndpbmQtcHJvdGVjdCAo cHJvZ24gLi4uIC4uLikgKGFuZCAuLi4gLi4uKSkpKSkpIChhY3Rpb24gKGNhciBpbnB1dCkpIChv cHRucyAoY2RyIGlucHV0KSkpICh1bmxlc3MgKG1lbXEgKHF1b3RlIHN1YnRyZWUpIG9wdG5zKSAo bW92ZS1tYXJrZXIgb3JnLWV4cG9ydC1kaXNwYXRjaC1sYXN0LXBvc2l0aW9uIG5pbCkpIChjYXNl IGFjdGlvbiAodGVtcGxhdGUgKG9yZy1leHBvcnQtaW5zZXJ0LWRlZmF1bHQtdGVtcGxhdGUgbmls IG9wdG5zKSkgKHN0YWNrIChvcmctZXhwb3J0LXN0YWNrKSkgKHB1Ymxpc2gtY3VycmVudC1maWxl IChvcmctcHVibGlzaC1jdXJyZW50LWZpbGUgKG1lbXEgKHF1b3RlIGZvcmNlKSBvcHRucykgKG1l bXEgKHF1b3RlIGFzeW5jKSBvcHRucykpKSAocHVibGlzaC1jdXJyZW50LXByb2plY3QgKG9yZy1w dWJsaXNoLWN1cnJlbnQtcHJvamVjdCAobWVtcSAocXVvdGUgZm9yY2UpIG9wdG5zKSAobWVtcSAo cXVvdGUgYXN5bmMpIG9wdG5zKSkpIChwdWJsaXNoLWNob29zZS1wcm9qZWN0IChvcmctcHVibGlz aCAoYXNzb2MgKG9yZy1pY29tcGxldGluZy1yZWFkICJQdWJsaXNoIHByb2plY3Q6ICIgb3JnLXB1 Ymxpc2gtcHJvamVjdC1hbGlzdCBuaWwgdCkgb3JnLXB1Ymxpc2gtcHJvamVjdC1hbGlzdCkgKG1l bXEgKHF1b3RlIGZvcmNlKSBvcHRucykgKG1lbXEgKHF1b3RlIGFzeW5jKSBvcHRucykpKSAocHVi bGlzaC1hbGwgKG9yZy1wdWJsaXNoLWFsbCAobWVtcSAocXVvdGUgZm9yY2UpIG9wdG5zKSAobWVt cSAocXVvdGUgYXN5bmMpIG9wdG5zKSkpIChvdGhlcndpc2UgKHNhdmUtZXhjdXJzaW9uICh3aGVu IGFyZyAoaWYgKGVxIChtYXJrZXItYnVmZmVyIG9yZy1leHBvcnQtZGlzcGF0Y2gtbGFzdC1wb3Np dGlvbikgKG9yZy1iYXNlLWJ1ZmZlciAuLi4pKSAoZ290by1jaGFyIG9yZy1leHBvcnQtZGlzcGF0 Y2gtbGFzdC1wb3NpdGlvbikgKG1vdmUtbWFya2VyIG9yZy1leHBvcnQtZGlzcGF0Y2gtbGFzdC1w b3NpdGlvbiBuaWwpKSkgKGZ1bmNhbGwgYWN0aW9uIChhbmQgKG1lbXEgKHF1b3RlIGFzeW5jKSBv cHRucykgdCkgKGFuZCAobWVtcSAocXVvdGUgc3VidHJlZSkgb3B0bnMpIHQpIChhbmQgKG1lbXEg KHF1b3RlIHZpc2libGUpIG9wdG5zKSB0KSAoYW5kIChtZW1xIChxdW90ZSBib2R5KSBvcHRucykg dCkpKSkpKQogIG9yZy1leHBvcnQtZGlzcGF0Y2gobmlsKQogIGNhbGwtaW50ZXJhY3RpdmVseShv cmctZXhwb3J0LWRpc3BhdGNoIG5pbCBuaWwpCg== --=-=-= Content-Type: text/plain -- Nicolas Berthier FSF Member #7975 --=-=-=--