From mboxrd@z Thu Jan 1 00:00:00 1970 From: York Zhao Subject: Re: still seeing semi-regular lockups Date: Mon, 30 Jun 2014 20:43:39 -0400 Message-ID: References: <87siocrbyb.fsf@ericabrahamsen.net> <87siobtn1i.fsf@bzg.ath.cx> <87ha4r1j91.fsf@tanger.home> <87k39hdf2o.fsf@tanger.home> <87ppj86elt.fsf@ericabrahamsen.net> <874n0kde2y.fsf@tanger.home> <87bnus4s5n.fsf@ericabrahamsen.net> <87egye7kx3.fsf@nicolasgoaziou.fr> <87a992mleu.fsf@ericabrahamsen.net> <87ha3425s3.fsf@ericabrahamsen.net> <87r428v4hn.fsf@ericabrahamsen.net> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=20cf3071c8d21d542704fd1711f1 Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:41028) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X1mBT-0000EM-US for emacs-orgmode@gnu.org; Mon, 30 Jun 2014 20:45:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1X1mAf-0004rI-GF for emacs-orgmode@gnu.org; Mon, 30 Jun 2014 20:44:31 -0400 Received: from mail-ve0-x22d.google.com ([2607:f8b0:400c:c01::22d]:55016) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X1mAe-0004qh-Je for emacs-orgmode@gnu.org; Mon, 30 Jun 2014 20:43:41 -0400 Received: by mail-ve0-f173.google.com with SMTP id db11so8937639veb.18 for ; Mon, 30 Jun 2014 17:43:40 -0700 (PDT) In-Reply-To: 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: Eric Abrahamsen Cc: emacs-orgmode --20cf3071c8d21d542704fd1711f1 Content-Type: text/plain; charset=UTF-8 I got the problem today, with org-mode version "815c218" in Emacs 24.3.1. The error message is: if: Lisp nesting exceeds `max-lisp-eval-depth'. Attached is the backtrace saved in a file. Hope this will help. --20cf3071c8d21d542704fd1711f1 Content-Type: text/plain; charset=US-ASCII; name="backtrace.txt" Content-Disposition: attachment; filename="backtrace.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hx2hs5x10 RGVidWdnZXIgZW50ZXJlZC0tTGlzcCBlcnJvcjogKGVycm9yICJMaXNwIG5lc3RpbmcgZXhjZWVk cyBgbWF4LWxpc3AtZXZhbC1kZXB0aCciKQogIChwcm9nbiAoY2FuY2VsLXRpbWVyIG9yZy1lbGVt ZW50LS1jYWNoZS1zeW5jLXRpbWVyKSkKICAoaWYgb3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMtdGlt ZXIgKHByb2duIChjYW5jZWwtdGltZXIgb3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMtdGltZXIpKSkK ICAobGV0ICgoaW5oaWJpdC1xdWl0IHQpIHJlcXVlc3QgbmV4dCkgKGlmIG9yZy1lbGVtZW50LS1j YWNoZS1zeW5jLXRpbWVyIChwcm9nbiAoY2FuY2VsLXRpbWVyIG9yZy1lbGVtZW50LS1jYWNoZS1z eW5jLXRpbWVyKSkpIChjYXRjaCAocXVvdGUgaW50ZXJydXB0KSAod2hpbGUgb3JnLWVsZW1lbnQt LWNhY2hlLXN5bmMtcmVxdWVzdHMgKHNldHEgcmVxdWVzdCAoY2FyIG9yZy1lbGVtZW50LS1jYWNo ZS1zeW5jLXJlcXVlc3RzKSBuZXh0IChudGggMSBvcmctZWxlbWVudC0tY2FjaGUtc3luYy1yZXF1 ZXN0cykpIChvcmctZWxlbWVudC0tY2FjaGUtcHJvY2Vzcy1yZXF1ZXN0IHJlcXVlc3QgKGFuZCBu ZXh0IChhcmVmIG5leHQgMCkpIHRocmVzaG9sZCAoYW5kIChub3QgdGhyZXNob2xkKSAodGltZS1h ZGQgKGN1cnJlbnQtdGltZSkgb3JnLWVsZW1lbnQtY2FjaGUtc3luYy1kdXJhdGlvbikpIChvciBl eHRyYSAwKSkgKGlmIG5leHQgKHByb2duIChsZXQqICgodiBuZXh0KSkgKGFzZXQgdiAzICgrIC4u LiAuLi4pKSkgKGFzZXQgbmV4dCAyIChhcmVmIHJlcXVlc3QgMikpIChhc2V0IG5leHQgNSAoYXJl ZiByZXF1ZXN0IDUpKSkpIChzZXRxIG9yZy1lbGVtZW50LS1jYWNoZS1zeW5jLXJlcXVlc3RzIChj ZHIgb3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMtcmVxdWVzdHMpKSkpIChpZiBvcmctZWxlbWVudC0t Y2FjaGUtc3luYy1yZXF1ZXN0cyAob3JnLWVsZW1lbnQtLWNhY2hlLXNldC10aW1lciBidWZmZXIp IChjbHJoYXNoIG9yZy1lbGVtZW50LS1jYWNoZS1zeW5jLWtleXMpKSkKICAoc2F2ZS1jdXJyZW50 LWJ1ZmZlciAoc2V0LWJ1ZmZlciBidWZmZXIpIChsZXQgKChpbmhpYml0LXF1aXQgdCkgcmVxdWVz dCBuZXh0KSAoaWYgb3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMtdGltZXIgKHByb2duIChjYW5jZWwt dGltZXIgb3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMtdGltZXIpKSkgKGNhdGNoIChxdW90ZSBpbnRl cnJ1cHQpICh3aGlsZSBvcmctZWxlbWVudC0tY2FjaGUtc3luYy1yZXF1ZXN0cyAoc2V0cSByZXF1 ZXN0IChjYXIgb3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMtcmVxdWVzdHMpIG5leHQgKG50aCAxIG9y Zy1lbGVtZW50LS1jYWNoZS1zeW5jLXJlcXVlc3RzKSkgKG9yZy1lbGVtZW50LS1jYWNoZS1wcm9j ZXNzLXJlcXVlc3QgcmVxdWVzdCAoYW5kIG5leHQgKGFyZWYgbmV4dCAwKSkgdGhyZXNob2xkIChh bmQgKG5vdCB0aHJlc2hvbGQpICh0aW1lLWFkZCAoY3VycmVudC10aW1lKSBvcmctZWxlbWVudC1j YWNoZS1zeW5jLWR1cmF0aW9uKSkgKG9yIGV4dHJhIDApKSAoaWYgbmV4dCAocHJvZ24gKGxldCog KC4uLikgKGFzZXQgdiAzIC4uLikpIChhc2V0IG5leHQgMiAoYXJlZiByZXF1ZXN0IDIpKSAoYXNl dCBuZXh0IDUgKGFyZWYgcmVxdWVzdCA1KSkpKSAoc2V0cSBvcmctZWxlbWVudC0tY2FjaGUtc3lu Yy1yZXF1ZXN0cyAoY2RyIG9yZy1lbGVtZW50LS1jYWNoZS1zeW5jLXJlcXVlc3RzKSkpKSAoaWYg b3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMtcmVxdWVzdHMgKG9yZy1lbGVtZW50LS1jYWNoZS1zZXQt dGltZXIgYnVmZmVyKSAoY2xyaGFzaCBvcmctZWxlbWVudC0tY2FjaGUtc3luYy1rZXlzKSkpKQog IChwcm9nbiAoc2F2ZS1jdXJyZW50LWJ1ZmZlciAoc2V0LWJ1ZmZlciBidWZmZXIpIChsZXQgKChp bmhpYml0LXF1aXQgdCkgcmVxdWVzdCBuZXh0KSAoaWYgb3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMt dGltZXIgKHByb2duIChjYW5jZWwtdGltZXIgb3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMtdGltZXIp KSkgKGNhdGNoIChxdW90ZSBpbnRlcnJ1cHQpICh3aGlsZSBvcmctZWxlbWVudC0tY2FjaGUtc3lu Yy1yZXF1ZXN0cyAoc2V0cSByZXF1ZXN0IChjYXIgb3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMtcmVx dWVzdHMpIG5leHQgKG50aCAxIG9yZy1lbGVtZW50LS1jYWNoZS1zeW5jLXJlcXVlc3RzKSkgKG9y Zy1lbGVtZW50LS1jYWNoZS1wcm9jZXNzLXJlcXVlc3QgcmVxdWVzdCAoYW5kIG5leHQgKGFyZWYg bmV4dCAwKSkgdGhyZXNob2xkIChhbmQgKG5vdCB0aHJlc2hvbGQpICh0aW1lLWFkZCAuLi4gb3Jn LWVsZW1lbnQtY2FjaGUtc3luYy1kdXJhdGlvbikpIChvciBleHRyYSAwKSkgKGlmIG5leHQgKHBy b2duIChsZXQqIC4uLiAuLi4pIChhc2V0IG5leHQgMiAuLi4pIChhc2V0IG5leHQgNSAuLi4pKSkg KHNldHEgb3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMtcmVxdWVzdHMgKGNkciBvcmctZWxlbWVudC0t Y2FjaGUtc3luYy1yZXF1ZXN0cykpKSkgKGlmIG9yZy1lbGVtZW50LS1jYWNoZS1zeW5jLXJlcXVl c3RzIChvcmctZWxlbWVudC0tY2FjaGUtc2V0LXRpbWVyIGJ1ZmZlcikgKGNscmhhc2ggb3JnLWVs ZW1lbnQtLWNhY2hlLXN5bmMta2V5cykpKSkpCiAgKGlmIChidWZmZXItbGl2ZS1wIGJ1ZmZlcikg KHByb2duIChzYXZlLWN1cnJlbnQtYnVmZmVyIChzZXQtYnVmZmVyIGJ1ZmZlcikgKGxldCAoKGlu aGliaXQtcXVpdCB0KSByZXF1ZXN0IG5leHQpIChpZiBvcmctZWxlbWVudC0tY2FjaGUtc3luYy10 aW1lciAocHJvZ24gKGNhbmNlbC10aW1lciBvcmctZWxlbWVudC0tY2FjaGUtc3luYy10aW1lcikp KSAoY2F0Y2ggKHF1b3RlIGludGVycnVwdCkgKHdoaWxlIG9yZy1lbGVtZW50LS1jYWNoZS1zeW5j LXJlcXVlc3RzIChzZXRxIHJlcXVlc3QgKGNhciBvcmctZWxlbWVudC0tY2FjaGUtc3luYy1yZXF1 ZXN0cykgbmV4dCAobnRoIDEgb3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMtcmVxdWVzdHMpKSAob3Jn LWVsZW1lbnQtLWNhY2hlLXByb2Nlc3MtcmVxdWVzdCByZXF1ZXN0IChhbmQgbmV4dCAuLi4pIHRo cmVzaG9sZCAoYW5kIC4uLiAuLi4pIChvciBleHRyYSAwKSkgKGlmIG5leHQgKHByb2duIC4uLiAu Li4gLi4uKSkgKHNldHEgb3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMtcmVxdWVzdHMgKGNkciBvcmct ZWxlbWVudC0tY2FjaGUtc3luYy1yZXF1ZXN0cykpKSkgKGlmIG9yZy1lbGVtZW50LS1jYWNoZS1z eW5jLXJlcXVlc3RzIChvcmctZWxlbWVudC0tY2FjaGUtc2V0LXRpbWVyIGJ1ZmZlcikgKGNscmhh c2ggb3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMta2V5cykpKSkpKQogIG9yZy1lbGVtZW50LS1jYWNo ZS1zeW5jKCM8YnVmZmVyIEVuZ2xpc2gub3JnPiAyNTcyODApCiAgKGlmIChub3Qgb3JnLWVsZW1l bnQtLWNhY2hlKSAob3JnLWVsZW1lbnQtY2FjaGUtcmVzZXQpIChvcmctZWxlbWVudC0tY2FjaGUt c3luYyAoY3VycmVudC1idWZmZXIpIG9yaWdpbikpCiAgKHByb2duIChpZiAobm90IG9yZy1lbGVt ZW50LS1jYWNoZSkgKG9yZy1lbGVtZW50LWNhY2hlLXJlc2V0KSAob3JnLWVsZW1lbnQtLWNhY2hl LXN5bmMgKGN1cnJlbnQtYnVmZmVyKSBvcmlnaW4pKSkKICAoaWYgKG9yZy1lbGVtZW50LS1jYWNo ZS1hY3RpdmUtcCkgKHByb2duIChpZiAobm90IG9yZy1lbGVtZW50LS1jYWNoZSkgKG9yZy1lbGVt ZW50LWNhY2hlLXJlc2V0KSAob3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMgKGN1cnJlbnQtYnVmZmVy KSBvcmlnaW4pKSkpCiAgKGNvbmQgKChib2JwKSBuaWwpICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0 aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQt b3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3Jn LW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgKG9y Zy1hdC1oZWFkaW5nLXApKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1oZWFkbGlu ZS1wYXJzZXIgKHBvaW50LW1heCkgdCkpICh0IChpZiAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2 ZS1wKSAocHJvZ24gKGlmIChub3Qgb3JnLWVsZW1lbnQtLWNhY2hlKSAob3JnLWVsZW1lbnQtY2Fj aGUtcmVzZXQpIChvcmctZWxlbWVudC0tY2FjaGUtc3luYyAoY3VycmVudC1idWZmZXIpIG9yaWdp bikpKSkgKG9yZy1lbGVtZW50LS1wYXJzZS10byBvcmlnaW4pKSkKICAobGV0ICgob3JpZ2luIChw b2ludCkpKSAoZW5kLW9mLWxpbmUpIChza2lwLWNoYXJzLWJhY2t3YXJkICIgDQlcbiIpIChjb25k ICgoYm9icCkgbmlsKSAoKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkg KG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91 dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wg KGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChvcmctYXQtaGVhZGluZy1wKSkgKGJl Z2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFyc2VyIChwb2ludC1tYXgp IHQpKSAodCAoaWYgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKHByb2duIChpZiAobm90 IG9yZy1lbGVtZW50LS1jYWNoZSkgKG9yZy1lbGVtZW50LWNhY2hlLXJlc2V0KSAob3JnLWVsZW1l bnQtLWNhY2hlLXN5bmMgKGN1cnJlbnQtYnVmZmVyKSBvcmlnaW4pKSkpIChvcmctZWxlbWVudC0t cGFyc2UtdG8gb3JpZ2luKSkpKQogIChzYXZlLXJlc3RyaWN0aW9uICh3aWRlbikgKGxldCAoKG9y aWdpbiAocG9pbnQpKSkgKGVuZC1vZi1saW5lKSAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIA0JXG4i KSAoY29uZCAoKGJvYnApIG5pbCkgKChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2 ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4 cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdl eHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3JnLWF0LWhlYWRpbmct cCkpIChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNlciAocG9p bnQtbWF4KSB0KSkgKHQgKGlmIChvcmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChwcm9nbiAo aWYgKG5vdCBvcmctZWxlbWVudC0tY2FjaGUpIChvcmctZWxlbWVudC1jYWNoZS1yZXNldCkgKG9y Zy1lbGVtZW50LS1jYWNoZS1zeW5jIC4uLiBvcmlnaW4pKSkpIChvcmctZWxlbWVudC0tcGFyc2Ut dG8gb3JpZ2luKSkpKSkKICAoc2F2ZS1leGN1cnNpb24gKHNhdmUtcmVzdHJpY3Rpb24gKHdpZGVu KSAobGV0ICgob3JpZ2luIChwb2ludCkpKSAoZW5kLW9mLWxpbmUpIChza2lwLWNoYXJzLWJhY2t3 YXJkICIgDQlcbiIpIChjb25kICgoYm9icCkgbmlsKSAoKGxldCogKChvcmctY2FsbGVkLXdpdGgt bGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAuLi4pIChvdXRsaW5lLXJlZ2V4 cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIC4uLikpIChvcmct YXQtaGVhZGluZy1wKSkgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQtaGVhZGxpbmUt cGFyc2VyIChwb2ludC1tYXgpIHQpKSAodCAoaWYgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUt cCkgKHByb2duIChpZiAuLi4gLi4uIC4uLikpKSAob3JnLWVsZW1lbnQtLXBhcnNlLXRvIG9yaWdp bikpKSkpKQogIG9yZy1lbGVtZW50LWF0LXBvaW50KCkKICAobGV0ICgoZHJhd2VyIChvcmctZWxl bWVudC1hdC1wb2ludCkpKSAoaWYgKGFuZCAoZXEgKG9yZy1lbGVtZW50LXR5cGUgZHJhd2VyKSAo cXVvdGUgcHJvcGVydHktZHJhd2VyKSkgKGxldCAoKHAgZHJhd2VyKSkgKHdoaWxlIChhbmQgKHNl dHEgcCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhcmVudCBwKSkgKG5vdCAoZXEgLi4uIC4uLikp KSkgKG5vdCBwKSkpIChwcm9nbiAobGV0ICgoZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6Y29u dGVudHMtZW5kIGRyYXdlcikpKSAoaWYgZW5kIChwcm9nbiAoZm9yd2FyZC1saW5lKSAod2hpbGUg KDwgLi4uIGVuZCkgKGlmIC4uLiAuLi4pIChmb3J3YXJkLWxpbmUpKSkpKSkpKQogICh3aGlsZSAo YW5kIChudWxsIHBsaXN0KSAocmUtc2VhcmNoLWZvcndhcmQgb3JnLXByb3BlcnR5LXN0YXJ0LXJl IGVuZCB0KSkgKGxldCAoKGRyYXdlciAob3JnLWVsZW1lbnQtYXQtcG9pbnQpKSkgKGlmIChhbmQg KGVxIChvcmctZWxlbWVudC10eXBlIGRyYXdlcikgKHF1b3RlIHByb3BlcnR5LWRyYXdlcikpIChs ZXQgKChwIGRyYXdlcikpICh3aGlsZSAoYW5kIChzZXRxIHAgLi4uKSAobm90IC4uLikpKSAobm90 IHApKSkgKHByb2duIChsZXQgKChlbmQgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpjb250ZW50cy1l bmQgZHJhd2VyKSkpIChpZiBlbmQgKHByb2duIChmb3J3YXJkLWxpbmUpICh3aGlsZSAuLi4gLi4u IC4uLikpKSkpKSkpCiAgKHNhdmUtZXhjdXJzaW9uICh3aGlsZSAoYW5kIChudWxsIHBsaXN0KSAo cmUtc2VhcmNoLWZvcndhcmQgb3JnLXByb3BlcnR5LXN0YXJ0LXJlIGVuZCB0KSkgKGxldCAoKGRy YXdlciAob3JnLWVsZW1lbnQtYXQtcG9pbnQpKSkgKGlmIChhbmQgKGVxIChvcmctZWxlbWVudC10 eXBlIGRyYXdlcikgKHF1b3RlIHByb3BlcnR5LWRyYXdlcikpIChsZXQgKChwIGRyYXdlcikpICh3 aGlsZSAoYW5kIC4uLiAuLi4pKSAobm90IHApKSkgKHByb2duIChsZXQgKChlbmQgLi4uKSkgKGlm IGVuZCAocHJvZ24gLi4uIC4uLikpKSkpKSkgcGxpc3QpCiAgKGxldCAoKGVuZCAoc2F2ZS1leGN1 cnNpb24gKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRs aW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVn ZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAi XiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChvdXRsaW5lLW5leHQtaGVhZGluZykpIChwb2ludCkp KSBwbGlzdCkgKHNhdmUtZXhjdXJzaW9uICh3aGlsZSAoYW5kIChudWxsIHBsaXN0KSAocmUtc2Vh cmNoLWZvcndhcmQgb3JnLXByb3BlcnR5LXN0YXJ0LXJlIGVuZCB0KSkgKGxldCAoKGRyYXdlciAo b3JnLWVsZW1lbnQtYXQtcG9pbnQpKSkgKGlmIChhbmQgKGVxIChvcmctZWxlbWVudC10eXBlIGRy YXdlcikgKHF1b3RlIHByb3BlcnR5LWRyYXdlcikpIChsZXQgKC4uLikgKHdoaWxlIC4uLikgKG5v dCBwKSkpIChwcm9nbiAobGV0ICguLi4pIChpZiBlbmQgLi4uKSkpKSkpIHBsaXN0KSkKICAobGV0 KiAoKGNvbXBvbmVudHMgKG9yZy1oZWFkaW5nLWNvbXBvbmVudHMpKSAobGV2ZWwgKG50aCAxIGNv bXBvbmVudHMpKSAodG9kbyAobnRoIDIgY29tcG9uZW50cykpICh0b2RvLXR5cGUgKGFuZCB0b2Rv IChpZiAobWVtYmVyIHRvZG8gb3JnLWRvbmUta2V5d29yZHMpIChxdW90ZSBkb25lKSAocXVvdGUg dG9kbykpKSkgKHRhZ3MgKGxldCAoKHJhdy10YWdzIChudGggNSBjb21wb25lbnRzKSkpIChhbmQg cmF3LXRhZ3MgKG9yZy1zcGxpdC1zdHJpbmcgcmF3LXRhZ3MgIjoiKSkpKSAocmF3LXZhbHVlIChv ciAobnRoIDQgY29tcG9uZW50cykgIiIpKSAoY29tbWVudGVkcCAobGV0ICgoY2FzZS1mb2xkLXNl YXJjaCBuaWwpKSAoc3RyaW5nLW1hdGNoIChmb3JtYXQgIl4lc1xcKCBcXHwkXFwpIiBvcmctY29t bWVudC1zdHJpbmcpIHJhdy12YWx1ZSkpKSAoYXJjaGl2ZWRwIChtZW1iZXIgb3JnLWFyY2hpdmUt dGFnIHRhZ3MpKSAoZm9vdG5vdGUtc2VjdGlvbi1wIChhbmQgb3JnLWZvb3Rub3RlLXNlY3Rpb24g KHN0cmluZz0gb3JnLWZvb3Rub3RlLXNlY3Rpb24gcmF3LXZhbHVlKSkpIChzdGFuZGFyZC1wcm9w cyAobGV0ICgoZW5kIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAuLi4gLi4uKSAocG9pbnQpKSkgcGxp c3QpIChzYXZlLWV4Y3Vyc2lvbiAod2hpbGUgKGFuZCAobnVsbCBwbGlzdCkgKHJlLXNlYXJjaC1m b3J3YXJkIG9yZy1wcm9wZXJ0eS1zdGFydC1yZSBlbmQgdCkpIChsZXQgKC4uLikgKGlmIC4uLiAu Li4pKSkgcGxpc3QpKSkgKHRpbWUtcHJvcHMgKHNhdmUtZXhjdXJzaW9uIChmb3J3YXJkLWxpbmUp IChpZiAobG9va2luZy1hdCBvcmctcGxhbm5pbmctb3ItY2xvY2stbGluZS1yZSkgKHByb2duIChs ZXQgKC4uLiBwbGlzdCkgKHdoaWxlIC4uLiAuLi4gLi4uIC4uLikgcGxpc3QpKSkpKSAoYmVnaW4g KHBvaW50KSkgKGVuZCAobWluIChzYXZlLWV4Y3Vyc2lvbiAob3JnLWVuZC1vZi1zdWJ0cmVlIHQg dCkpIGxpbWl0KSkgKHBvcy1hZnRlci1oZWFkIChwcm9nbiAoZm9yd2FyZC1saW5lKSAocG9pbnQp KSkgKGNvbnRlbnRzLWJlZ2luIChzYXZlLWV4Y3Vyc2lvbiAoc2tpcC1jaGFycy1mb3J3YXJkICIg DQlcbiIgZW5kKSAoYW5kICgvPSAocG9pbnQpIGVuZCkgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9u KSkpKSAoY29udGVudHMtZW5kIChhbmQgY29udGVudHMtYmVnaW4gKHByb2duIChnb3RvLWNoYXIg ZW5kKSAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIA0JXG4iKSAoZm9yd2FyZC1saW5lKSAocG9pbnQp KSkpKSAoaWYgY29tbWVudGVkcCAocHJvZ24gKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggbmlsKSkg KHNldHEgcmF3LXZhbHVlIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcgKGNvbmNhdCAocmVnZXhw LXF1b3RlIG9yZy1jb21tZW50LXN0cmluZykgIlxcKD86IFxcfCRcXCkiKSAiIiByYXctdmFsdWUp KSkpKSAoaWYgYXJjaGl2ZWRwIChwcm9nbiAoc2V0cSB0YWdzIChkZWxldGUgb3JnLWFyY2hpdmUt dGFnIHRhZ3MpKSkpIChsZXQgKChoZWFkbGluZSAobGlzdCAocXVvdGUgaGVhZGxpbmUpIChuY29u YyAobGlzdCA6cmF3LXZhbHVlIHJhdy12YWx1ZSA6YmVnaW4gYmVnaW4gOmVuZCBlbmQgOnByZS1i bGFuayAoaWYgLi4uIDAgLi4uKSA6Y29udGVudHMtYmVnaW4gY29udGVudHMtYmVnaW4gOmNvbnRl bnRzLWVuZCBjb250ZW50cy1lbmQgOmxldmVsIGxldmVsIDpwcmlvcml0eSAobnRoIDMgY29tcG9u ZW50cykgOnRhZ3MgdGFncyA6dG9kby1rZXl3b3JkIHRvZG8gOnRvZG8tdHlwZSB0b2RvLXR5cGUg OnBvc3QtYmxhbmsgKGNvdW50LWxpbmVzIC4uLiBlbmQpIDpmb290bm90ZS1zZWN0aW9uLXAgZm9v dG5vdGUtc2VjdGlvbi1wIDphcmNoaXZlZHAgYXJjaGl2ZWRwIDpjb21tZW50ZWRwIGNvbW1lbnRl ZHApIHRpbWUtcHJvcHMgc3RhbmRhcmQtcHJvcHMpKSkpIChsZXQgKChhbHQtdGl0bGUgKG9yZy1l bGVtZW50LXByb3BlcnR5IDpBTFRfVElUTEUgaGVhZGxpbmUpKSkgKGlmIGFsdC10aXRsZSAocHJv Z24gKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBoZWFkbGluZSA6YWx0LXRpdGxlIChpZiByYXct c2Vjb25kYXJ5LXAgYWx0LXRpdGxlIChvcmctZWxlbWVudC1wYXJzZS1zZWNvbmRhcnktc3RyaW5n IGFsdC10aXRsZSAuLi4gaGVhZGxpbmUpKSkpKSkgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBo ZWFkbGluZSA6dGl0bGUgKGlmIHJhdy1zZWNvbmRhcnktcCByYXctdmFsdWUgKG9yZy1lbGVtZW50 LXBhcnNlLXNlY29uZGFyeS1zdHJpbmcgcmF3LXZhbHVlIChvcmctZWxlbWVudC1yZXN0cmljdGlv biAocXVvdGUgaGVhZGxpbmUpKSBoZWFkbGluZSkpKSkpCiAgKHNhdmUtZXhjdXJzaW9uIChsZXQq ICgoY29tcG9uZW50cyAob3JnLWhlYWRpbmctY29tcG9uZW50cykpIChsZXZlbCAobnRoIDEgY29t cG9uZW50cykpICh0b2RvIChudGggMiBjb21wb25lbnRzKSkgKHRvZG8tdHlwZSAoYW5kIHRvZG8g KGlmIChtZW1iZXIgdG9kbyBvcmctZG9uZS1rZXl3b3JkcykgKHF1b3RlIGRvbmUpIChxdW90ZSB0 b2RvKSkpKSAodGFncyAobGV0ICgocmF3LXRhZ3MgKG50aCA1IGNvbXBvbmVudHMpKSkgKGFuZCBy YXctdGFncyAob3JnLXNwbGl0LXN0cmluZyByYXctdGFncyAiOiIpKSkpIChyYXctdmFsdWUgKG9y IChudGggNCBjb21wb25lbnRzKSAiIikpIChjb21tZW50ZWRwIChsZXQgKChjYXNlLWZvbGQtc2Vh cmNoIG5pbCkpIChzdHJpbmctbWF0Y2ggKGZvcm1hdCAiXiVzXFwoIFxcfCRcXCkiIG9yZy1jb21t ZW50LXN0cmluZykgcmF3LXZhbHVlKSkpIChhcmNoaXZlZHAgKG1lbWJlciBvcmctYXJjaGl2ZS10 YWcgdGFncykpIChmb290bm90ZS1zZWN0aW9uLXAgKGFuZCBvcmctZm9vdG5vdGUtc2VjdGlvbiAo c3RyaW5nPSBvcmctZm9vdG5vdGUtc2VjdGlvbiByYXctdmFsdWUpKSkgKHN0YW5kYXJkLXByb3Bz IChsZXQgKChlbmQgKHNhdmUtZXhjdXJzaW9uIC4uLiAuLi4pKSBwbGlzdCkgKHNhdmUtZXhjdXJz aW9uICh3aGlsZSAoYW5kIC4uLiAuLi4pIChsZXQgLi4uIC4uLikpIHBsaXN0KSkpICh0aW1lLXBy b3BzIChzYXZlLWV4Y3Vyc2lvbiAoZm9yd2FyZC1saW5lKSAoaWYgKGxvb2tpbmctYXQgb3JnLXBs YW5uaW5nLW9yLWNsb2NrLWxpbmUtcmUpIChwcm9nbiAobGV0IC4uLiAuLi4gcGxpc3QpKSkpKSAo YmVnaW4gKHBvaW50KSkgKGVuZCAobWluIChzYXZlLWV4Y3Vyc2lvbiAob3JnLWVuZC1vZi1zdWJ0 cmVlIHQgdCkpIGxpbWl0KSkgKHBvcy1hZnRlci1oZWFkIChwcm9nbiAoZm9yd2FyZC1saW5lKSAo cG9pbnQpKSkgKGNvbnRlbnRzLWJlZ2luIChzYXZlLWV4Y3Vyc2lvbiAoc2tpcC1jaGFycy1mb3J3 YXJkICIgDQlcbiIgZW5kKSAoYW5kICgvPSAocG9pbnQpIGVuZCkgKGxpbmUtYmVnaW5uaW5nLXBv c2l0aW9uKSkpKSAoY29udGVudHMtZW5kIChhbmQgY29udGVudHMtYmVnaW4gKHByb2duIChnb3Rv LWNoYXIgZW5kKSAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIA0JXG4iKSAoZm9yd2FyZC1saW5lKSAo cG9pbnQpKSkpKSAoaWYgY29tbWVudGVkcCAocHJvZ24gKGxldCAoKGNhc2UtZm9sZC1zZWFyY2gg bmlsKSkgKHNldHEgcmF3LXZhbHVlIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcgKGNvbmNhdCAu Li4gIlxcKD86IFxcfCRcXCkiKSAiIiByYXctdmFsdWUpKSkpKSAoaWYgYXJjaGl2ZWRwIChwcm9n biAoc2V0cSB0YWdzIChkZWxldGUgb3JnLWFyY2hpdmUtdGFnIHRhZ3MpKSkpIChsZXQgKChoZWFk bGluZSAobGlzdCAocXVvdGUgaGVhZGxpbmUpIChuY29uYyAobGlzdCA6cmF3LXZhbHVlIHJhdy12 YWx1ZSA6YmVnaW4gYmVnaW4gOmVuZCBlbmQgOnByZS1ibGFuayAuLi4gOmNvbnRlbnRzLWJlZ2lu IGNvbnRlbnRzLWJlZ2luIDpjb250ZW50cy1lbmQgY29udGVudHMtZW5kIDpsZXZlbCBsZXZlbCA6 cHJpb3JpdHkgLi4uIDp0YWdzIHRhZ3MgOnRvZG8ta2V5d29yZCB0b2RvIDp0b2RvLXR5cGUgdG9k by10eXBlIDpwb3N0LWJsYW5rIC4uLiA6Zm9vdG5vdGUtc2VjdGlvbi1wIGZvb3Rub3RlLXNlY3Rp b24tcCA6YXJjaGl2ZWRwIGFyY2hpdmVkcCA6Y29tbWVudGVkcCBjb21tZW50ZWRwKSB0aW1lLXBy b3BzIHN0YW5kYXJkLXByb3BzKSkpKSAobGV0ICgoYWx0LXRpdGxlIChvcmctZWxlbWVudC1wcm9w ZXJ0eSA6QUxUX1RJVExFIGhlYWRsaW5lKSkpIChpZiBhbHQtdGl0bGUgKHByb2duIChvcmctZWxl bWVudC1wdXQtcHJvcGVydHkgaGVhZGxpbmUgOmFsdC10aXRsZSAoaWYgcmF3LXNlY29uZGFyeS1w IGFsdC10aXRsZSAuLi4pKSkpKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGhlYWRsaW5lIDp0 aXRsZSAoaWYgcmF3LXNlY29uZGFyeS1wIHJhdy12YWx1ZSAob3JnLWVsZW1lbnQtcGFyc2Utc2Vj b25kYXJ5LXN0cmluZyByYXctdmFsdWUgKG9yZy1lbGVtZW50LXJlc3RyaWN0aW9uIChxdW90ZSBo ZWFkbGluZSkpIGhlYWRsaW5lKSkpKSkpCiAgb3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFyc2VyKDI1 NzcwNiB0KQogIChjb25kICgoZXEgc3BlY2lhbCAocXVvdGUgaXRlbSkpIChvcmctZWxlbWVudC1p dGVtLXBhcnNlciBsaW1pdCBzdHJ1Y3R1cmUgcmF3LXNlY29uZGFyeS1wKSkgKChlcSBzcGVjaWFs IChxdW90ZSB0YWJsZS1yb3cpKSAob3JnLWVsZW1lbnQtdGFibGUtcm93LXBhcnNlciBsaW1pdCkp ICgoZXEgc3BlY2lhbCAocXVvdGUgbm9kZS1wcm9wZXJ0eSkpIChvcmctZWxlbWVudC1ub2RlLXBy b3BlcnR5LXBhcnNlciBsaW1pdCkpICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxl dmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdl eHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVn ZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgKG9yZy1hdC1oZWFkaW5n LXApKSAob3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFyc2VyIGxpbWl0IHJhdy1zZWNvbmRhcnktcCkp ICgoZXEgc3BlY2lhbCAocXVvdGUgc2VjdGlvbikpIChvcmctZWxlbWVudC1zZWN0aW9uLXBhcnNl ciBsaW1pdCkpICgoZXEgc3BlY2lhbCAocXVvdGUgZmlyc3Qtc2VjdGlvbikpIChvcmctZWxlbWVu dC1zZWN0aW9uLXBhcnNlciAob3IgKHNhdmUtZXhjdXJzaW9uIChsZXQqICgob3JnLWNhbGxlZC13 aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgLi4uKSAob3V0bGluZS1y ZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAuLi4pKSAo b3V0bGluZS1uZXh0LWhlYWRpbmcpKSkgbGltaXQpKSkgKChub3QgKGJvbHApKSAob3JnLWVsZW1l bnQtcGFyYWdyYXBoLXBhcnNlciBsaW1pdCAobGlzdCAocG9pbnQpKSkpICgobG9va2luZy1hdCBv cmctcGxhbm5pbmctb3ItY2xvY2stbGluZS1yZSkgKGlmIChlcXVhbCAobWF0Y2gtc3RyaW5nIDEp IG9yZy1jbG9jay1zdHJpbmcpIChvcmctZWxlbWVudC1jbG9jay1wYXJzZXIgbGltaXQpIChvcmct ZWxlbWVudC1wbGFubmluZy1wYXJzZXIgbGltaXQpKSkgKChvcmctYXQtaGVhZGluZy1wKSAob3Jn LWVsZW1lbnQtaW5saW5ldGFzay1wYXJzZXIgbGltaXQgcmF3LXNlY29uZGFyeS1wKSkgKHQgKGxl dCAoKGFmZmlsaWF0ZWQgKG9yZy1lbGVtZW50LS1jb2xsZWN0LWFmZmlsaWF0ZWQta2V5d29yZHMg bGltaXQpKSkgKGNvbmQgKChhbmQgKGNkciBhZmZpbGlhdGVkKSAoPj0gKHBvaW50KSBsaW1pdCkp IChnb3RvLWNoYXIgKGNhciBhZmZpbGlhdGVkKSkgKG9yZy1lbGVtZW50LWtleXdvcmQtcGFyc2Vy IGxpbWl0IG5pbCkpICgobG9va2luZy1hdCAiWyAgICAgXSpcXFxcYmVnaW57W0EtWmEtejAtOSpd K31cXChcXFsuKj9cXF1cXHx7Lio/fVxcKSpbICAgICBdKiQiKSAob3JnLWVsZW1lbnQtbGF0ZXgt ZW52aXJvbm1lbnQtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgb3JnLWRy YXdlci1yZWdleHApIChpZiAoZXF1YWwgKG1hdGNoLXN0cmluZyAxKSAiUFJPUEVSVElFUyIpIChv cmctZWxlbWVudC1wcm9wZXJ0eS1kcmF3ZXItcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpIChvcmct ZWxlbWVudC1kcmF3ZXItcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSkgKChsb29raW5nLWF0ICJb ICAgXSo6XFwoIFxcfCRcXCkiKSAob3JnLWVsZW1lbnQtZml4ZWQtd2lkdGgtcGFyc2VyIGxpbWl0 IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlsgICAgIF0qIyIpIChnb3RvLWNoYXIgKG1hdGNo LWVuZCAwKSkgKGNvbmQgKChsb29raW5nLWF0ICJcXCg/OiBcXHwkXFwpIikgKGJlZ2lubmluZy1v Zi1saW5lKSAob3JnLWVsZW1lbnQtY29tbWVudC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgo bG9va2luZy1hdCAiXFwrQkVHSU5fXFwoXFxTLStcXCkiKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChs ZXQgLi4uIC4uLikpICgobG9va2luZy1hdCAiXFwrQ0FMTDoiKSAoYmVnaW5uaW5nLW9mLWxpbmUp IChvcmctZWxlbWVudC1iYWJlbC1jYWxsLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29r aW5nLWF0ICJcXCtCRUdJTjo/ICIpIChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWR5 bmFtaWMtYmxvY2stcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlxcK1xc Uy0rOiIpIChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWtleXdvcmQtcGFyc2VyIGxp bWl0IGFmZmlsaWF0ZWQpKSAodCAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1wYXJh Z3JhcGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSkpICgobG9va2luZy1hdCBvcmctZm9vdG5v dGUtZGVmaW5pdGlvbi1yZSkgKG9yZy1lbGVtZW50LWZvb3Rub3RlLWRlZmluaXRpb24tcGFyc2Vy IGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlsgICBdKi1cXHs1LFxcfVsgICAgXSok IikgKG9yZy1lbGVtZW50LWhvcml6b250YWwtcnVsZS1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkp ICgobG9va2luZy1hdCAiJSUoIikgKG9yZy1lbGVtZW50LWRpYXJ5LXNleHAtcGFyc2VyIGxpbWl0 IGFmZmlsaWF0ZWQpKSAoKG9yZy1hdC10YWJsZS1wIHQpIChvcmctZWxlbWVudC10YWJsZS1wYXJz ZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAob3JnLWl0ZW0tcmUpKSAob3JnLWVs ZW1lbnQtcGxhaW4tbGlzdC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCAob3Igc3RydWN0dXJlIChv cmctZWxlbWVudC0tbGlzdC1zdHJ1Y3QgbGltaXQpKSkpICh0IChvcmctZWxlbWVudC1wYXJhZ3Jh cGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSkpKSkKICAobGV0ICgoY2FzZS1mb2xkLXNlYXJj aCB0KSAocmF3LXNlY29uZGFyeS1wIChhbmQgZ3JhbnVsYXJpdHkgKG5vdCAoZXEgZ3JhbnVsYXJp dHkgKHF1b3RlIG9iamVjdCkpKSkpKSAoY29uZCAoKGVxIHNwZWNpYWwgKHF1b3RlIGl0ZW0pKSAo b3JnLWVsZW1lbnQtaXRlbS1wYXJzZXIgbGltaXQgc3RydWN0dXJlIHJhdy1zZWNvbmRhcnktcCkp ICgoZXEgc3BlY2lhbCAocXVvdGUgdGFibGUtcm93KSkgKG9yZy1lbGVtZW50LXRhYmxlLXJvdy1w YXJzZXIgbGltaXQpKSAoKGVxIHNwZWNpYWwgKHF1b3RlIG5vZGUtcHJvcGVydHkpKSAob3JnLWVs ZW1lbnQtbm9kZS1wcm9wZXJ0eS1wYXJzZXIgbGltaXQpKSAoKGxldCogKChvcmctY2FsbGVkLXdp dGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVk LW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9y Zy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChv cmctYXQtaGVhZGluZy1wKSkgKG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNlciBsaW1pdCByYXct c2Vjb25kYXJ5LXApKSAoKGVxIHNwZWNpYWwgKHF1b3RlIHNlY3Rpb24pKSAob3JnLWVsZW1lbnQt c2VjdGlvbi1wYXJzZXIgbGltaXQpKSAoKGVxIHNwZWNpYWwgKHF1b3RlIGZpcnN0LXNlY3Rpb24p KSAob3JnLWVsZW1lbnQtc2VjdGlvbi1wYXJzZXIgKG9yIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAo Li4uIC4uLiAuLi4gLi4uKSAob3V0bGluZS1uZXh0LWhlYWRpbmcpKSkgbGltaXQpKSkgKChub3Qg KGJvbHApKSAob3JnLWVsZW1lbnQtcGFyYWdyYXBoLXBhcnNlciBsaW1pdCAobGlzdCAocG9pbnQp KSkpICgobG9va2luZy1hdCBvcmctcGxhbm5pbmctb3ItY2xvY2stbGluZS1yZSkgKGlmIChlcXVh bCAobWF0Y2gtc3RyaW5nIDEpIG9yZy1jbG9jay1zdHJpbmcpIChvcmctZWxlbWVudC1jbG9jay1w YXJzZXIgbGltaXQpIChvcmctZWxlbWVudC1wbGFubmluZy1wYXJzZXIgbGltaXQpKSkgKChvcmct YXQtaGVhZGluZy1wKSAob3JnLWVsZW1lbnQtaW5saW5ldGFzay1wYXJzZXIgbGltaXQgcmF3LXNl Y29uZGFyeS1wKSkgKHQgKGxldCAoKGFmZmlsaWF0ZWQgKG9yZy1lbGVtZW50LS1jb2xsZWN0LWFm ZmlsaWF0ZWQta2V5d29yZHMgbGltaXQpKSkgKGNvbmQgKChhbmQgKGNkciBhZmZpbGlhdGVkKSAo Pj0gLi4uIGxpbWl0KSkgKGdvdG8tY2hhciAoY2FyIGFmZmlsaWF0ZWQpKSAob3JnLWVsZW1lbnQt a2V5d29yZC1wYXJzZXIgbGltaXQgbmlsKSkgKChsb29raW5nLWF0ICJbICAgICAgICBdKlxcXFxi ZWdpbntbQS1aYS16MC05Kl0rfVxcKFxcWy4qP1xcXVxcfHsuKj99XFwpKlsgICAgIF0qJCIpIChv cmctZWxlbWVudC1sYXRleC1lbnZpcm9ubWVudC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgo bG9va2luZy1hdCBvcmctZHJhd2VyLXJlZ2V4cCkgKGlmIChlcXVhbCAuLi4gIlBST1BFUlRJRVMi KSAob3JnLWVsZW1lbnQtcHJvcGVydHktZHJhd2VyLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSAo b3JnLWVsZW1lbnQtZHJhd2VyLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkpICgobG9va2luZy1h dCAiWyAgICAgICAgXSo6XFwoIFxcfCRcXCkiKSAob3JnLWVsZW1lbnQtZml4ZWQtd2lkdGgtcGFy c2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlsgICAgIF0qIyIpIChnb3RvLWNo YXIgKG1hdGNoLWVuZCAwKSkgKGNvbmQgKC4uLiAuLi4gLi4uKSAoLi4uIC4uLiAuLi4pICguLi4g Li4uIC4uLikgKC4uLiAuLi4gLi4uKSAoLi4uIC4uLiAuLi4pICh0IC4uLiAuLi4pKSkgKChsb29r aW5nLWF0IG9yZy1mb290bm90ZS1kZWZpbml0aW9uLXJlKSAob3JnLWVsZW1lbnQtZm9vdG5vdGUt ZGVmaW5pdGlvbi1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiWyAgIF0q LVxcezUsXFx9WyAgICBdKiQiKSAob3JnLWVsZW1lbnQtaG9yaXpvbnRhbC1ydWxlLXBhcnNlciBs aW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICIlJSgiKSAob3JnLWVsZW1lbnQtZGlhcnkt c2V4cC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgob3JnLWF0LXRhYmxlLXAgdCkgKG9yZy1l bGVtZW50LXRhYmxlLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0IChvcmct aXRlbS1yZSkpIChvcmctZWxlbWVudC1wbGFpbi1saXN0LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVk IChvciBzdHJ1Y3R1cmUgLi4uKSkpICh0IChvcmctZWxlbWVudC1wYXJhZ3JhcGgtcGFyc2VyIGxp bWl0IGFmZmlsaWF0ZWQpKSkpKSkpCiAgKHNhdmUtZXhjdXJzaW9uIChsZXQgKChjYXNlLWZvbGQt c2VhcmNoIHQpIChyYXctc2Vjb25kYXJ5LXAgKGFuZCBncmFudWxhcml0eSAobm90IChlcSBncmFu dWxhcml0eSAocXVvdGUgb2JqZWN0KSkpKSkpIChjb25kICgoZXEgc3BlY2lhbCAocXVvdGUgaXRl bSkpIChvcmctZWxlbWVudC1pdGVtLXBhcnNlciBsaW1pdCBzdHJ1Y3R1cmUgcmF3LXNlY29uZGFy eS1wKSkgKChlcSBzcGVjaWFsIChxdW90ZSB0YWJsZS1yb3cpKSAob3JnLWVsZW1lbnQtdGFibGUt cm93LXBhcnNlciBsaW1pdCkpICgoZXEgc3BlY2lhbCAocXVvdGUgbm9kZS1wcm9wZXJ0eSkpIChv cmctZWxlbWVudC1ub2RlLXByb3BlcnR5LXBhcnNlciBsaW1pdCkpICgobGV0KiAoKG9yZy1jYWxs ZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxp bWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhw KSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHAp KSkgKG9yZy1hdC1oZWFkaW5nLXApKSAob3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFyc2VyIGxpbWl0 IHJhdy1zZWNvbmRhcnktcCkpICgoZXEgc3BlY2lhbCAocXVvdGUgc2VjdGlvbikpIChvcmctZWxl bWVudC1zZWN0aW9uLXBhcnNlciBsaW1pdCkpICgoZXEgc3BlY2lhbCAocXVvdGUgZmlyc3Qtc2Vj dGlvbikpIChvcmctZWxlbWVudC1zZWN0aW9uLXBhcnNlciAob3IgKHNhdmUtZXhjdXJzaW9uIChs ZXQqIC4uLiAuLi4pKSBsaW1pdCkpKSAoKG5vdCAoYm9scCkpIChvcmctZWxlbWVudC1wYXJhZ3Jh cGgtcGFyc2VyIGxpbWl0IChsaXN0IChwb2ludCkpKSkgKChsb29raW5nLWF0IG9yZy1wbGFubmlu Zy1vci1jbG9jay1saW5lLXJlKSAoaWYgKGVxdWFsIChtYXRjaC1zdHJpbmcgMSkgb3JnLWNsb2Nr LXN0cmluZykgKG9yZy1lbGVtZW50LWNsb2NrLXBhcnNlciBsaW1pdCkgKG9yZy1lbGVtZW50LXBs YW5uaW5nLXBhcnNlciBsaW1pdCkpKSAoKG9yZy1hdC1oZWFkaW5nLXApIChvcmctZWxlbWVudC1p bmxpbmV0YXNrLXBhcnNlciBsaW1pdCByYXctc2Vjb25kYXJ5LXApKSAodCAobGV0ICgoYWZmaWxp YXRlZCAob3JnLWVsZW1lbnQtLWNvbGxlY3QtYWZmaWxpYXRlZC1rZXl3b3JkcyBsaW1pdCkpKSAo Y29uZCAoKGFuZCAuLi4gLi4uKSAoZ290by1jaGFyIC4uLikgKG9yZy1lbGVtZW50LWtleXdvcmQt cGFyc2VyIGxpbWl0IG5pbCkpICgobG9va2luZy1hdCAiWyAgICAgIF0qXFxcXGJlZ2lue1tBLVph LXowLTkqXSt9XFwoXFxbLio/XFxdXFx8ey4qP31cXCkqWyAgICAgXSokIikgKG9yZy1lbGVtZW50 LWxhdGV4LWVudmlyb25tZW50LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0 IG9yZy1kcmF3ZXItcmVnZXhwKSAoaWYgLi4uIC4uLiAuLi4pKSAoKGxvb2tpbmctYXQgIlsgICAg ICAgIF0qOlxcKCBcXHwkXFwpIikgKG9yZy1lbGVtZW50LWZpeGVkLXdpZHRoLXBhcnNlciBsaW1p dCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJbICAgICBdKiMiKSAoZ290by1jaGFyIC4uLikg KGNvbmQgLi4uIC4uLiAuLi4gLi4uIC4uLiAuLi4pKSAoKGxvb2tpbmctYXQgb3JnLWZvb3Rub3Rl LWRlZmluaXRpb24tcmUpIChvcmctZWxlbWVudC1mb290bm90ZS1kZWZpbml0aW9uLXBhcnNlciBs aW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJbICAgICAgIF0qLVxcezUsXFx9WyAgICBd KiQiKSAob3JnLWVsZW1lbnQtaG9yaXpvbnRhbC1ydWxlLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVk KSkgKChsb29raW5nLWF0ICIlJSgiKSAob3JnLWVsZW1lbnQtZGlhcnktc2V4cC1wYXJzZXIgbGlt aXQgYWZmaWxpYXRlZCkpICgob3JnLWF0LXRhYmxlLXAgdCkgKG9yZy1lbGVtZW50LXRhYmxlLXBh cnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0IC4uLikgKG9yZy1lbGVtZW50LXBs YWluLWxpc3QtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQgLi4uKSkgKHQgKG9yZy1lbGVtZW50LXBh cmFncmFwaC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpKSkpKSkpCiAgb3JnLWVsZW1lbnQtLWN1 cnJlbnQtZWxlbWVudCgyNTc3MDYgZWxlbWVudCBuaWwgbmlsKQogIChzZXRxIGVsZW1lbnQgKG9y Zy1lbGVtZW50LS1jdXJyZW50LWVsZW1lbnQgZW5kIChxdW90ZSBlbGVtZW50KSBzcGVjaWFsLWZs YWcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpzdHJ1Y3R1cmUgcGFyZW50KSkpCiAgKGlmIGVsZW1l bnQgbmlsIChzZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50LS1jdXJyZW50LWVsZW1lbnQgZW5kIChx dW90ZSBlbGVtZW50KSBzcGVjaWFsLWZsYWcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpzdHJ1Y3R1 cmUgcGFyZW50KSkpIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgZWxlbWVudCA6cGFyZW50IHBh cmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQgZWxlbWVudCkpCiAgKHdoaWxlIHQgKGlmIHN5 bmNwIChwcm9nbiAoY29uZCAoKD0gKHBvaW50KSBwb3MpICh0aHJvdyAocXVvdGUgZXhpdCkgcGFy ZW50KSkgKChvcmctZWxlbWVudC0tY2FjaGUtaW50ZXJydXB0LXAgdGltZS1saW1pdCkgKHRocm93 IChxdW90ZSBpbnRlcnJ1cHQpIG5pbCkpKSkpIChpZiBlbGVtZW50IG5pbCAoc2V0cSBlbGVtZW50 IChvcmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50IGVuZCAocXVvdGUgZWxlbWVudCkgc3BlY2lh bC1mbGFnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6c3RydWN0dXJlIHBhcmVudCkpKSAob3JnLWVs ZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQpIChvcmctZWxlbWVudC0t Y2FjaGUtcHV0IGVsZW1lbnQpKSAobGV0ICgoZWxlbS1lbmQgKG9yZy1lbGVtZW50LXByb3BlcnR5 IDplbmQgZWxlbWVudCkpICh0eXBlIChvcmctZWxlbWVudC10eXBlIGVsZW1lbnQpKSkgKGNvbmQg KChhbmQgKDw9IGVsZW0tZW5kIHBvcykgKC89IChwb2ludC1tYXgpIGVsZW0tZW5kKSkgKGdvdG8t Y2hhciBlbGVtLWVuZCkpICgobm90IChtZW1xIHR5cGUgb3JnLWVsZW1lbnQtZ3JlYXRlci1lbGVt ZW50cykpICh0aHJvdyAocXVvdGUgZXhpdCkgZWxlbWVudCkpICgobGV0ICgoY2JlZyAob3JnLWVs ZW1lbnQtcHJvcGVydHkgOmNvbnRlbnRzLWJlZ2luIGVsZW1lbnQpKSAoY2VuZCAob3JnLWVsZW1l bnQtcHJvcGVydHkgOmNvbnRlbnRzLWVuZCBlbGVtZW50KSkpIChpZiAob3Igc3luY3AgKGFuZCBj YmVnIGNlbmQgLi4uIC4uLikpIChwcm9nbiAoZ290by1jaGFyIC4uLikgKHNldHEgbmV4dCBuaWwg c3BlY2lhbC1mbGFnIC4uLiBwYXJlbnQgZWxlbWVudCBlbmQgY2VuZCkpKSkpICh0ICh0aHJvdyAo cXVvdGUgZXhpdCkgZWxlbWVudCkpKSkgKHNldHEgZWxlbWVudCBuaWwpKQogIChsZXQgKChlbmQg KG9yIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQpIChzYXZlLWV4Y3Vyc2lvbiAo bGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVn ZXhwIC4uLikgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5l LXJlZ2V4cC1ib2wgLi4uKSkgKG91dGxpbmUtbmV4dC1oZWFkaW5nKSkgKHBvaW50KSkpKSAocGFy ZW50IGVsZW1lbnQpIHNwZWNpYWwtZmxhZykgKHdoaWxlIHQgKGlmIHN5bmNwIChwcm9nbiAoY29u ZCAoKD0gKHBvaW50KSBwb3MpICh0aHJvdyAocXVvdGUgZXhpdCkgcGFyZW50KSkgKChvcmctZWxl bWVudC0tY2FjaGUtaW50ZXJydXB0LXAgdGltZS1saW1pdCkgKHRocm93IChxdW90ZSBpbnRlcnJ1 cHQpIG5pbCkpKSkpIChpZiBlbGVtZW50IG5pbCAoc2V0cSBlbGVtZW50IChvcmctZWxlbWVudC0t Y3VycmVudC1lbGVtZW50IGVuZCAocXVvdGUgZWxlbWVudCkgc3BlY2lhbC1mbGFnIChvcmctZWxl bWVudC1wcm9wZXJ0eSA6c3RydWN0dXJlIHBhcmVudCkpKSAob3JnLWVsZW1lbnQtcHV0LXByb3Bl cnR5IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQpIChvcmctZWxlbWVudC0tY2FjaGUtcHV0IGVsZW1l bnQpKSAobGV0ICgoZWxlbS1lbmQgKG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkp ICh0eXBlIChvcmctZWxlbWVudC10eXBlIGVsZW1lbnQpKSkgKGNvbmQgKChhbmQgKDw9IGVsZW0t ZW5kIHBvcykgKC89IChwb2ludC1tYXgpIGVsZW0tZW5kKSkgKGdvdG8tY2hhciBlbGVtLWVuZCkp ICgobm90IChtZW1xIHR5cGUgb3JnLWVsZW1lbnQtZ3JlYXRlci1lbGVtZW50cykpICh0aHJvdyAo cXVvdGUgZXhpdCkgZWxlbWVudCkpICgobGV0ICgoY2JlZyAuLi4pIChjZW5kIC4uLikpIChpZiAo b3Igc3luY3AgLi4uKSAocHJvZ24gLi4uIC4uLikpKSkgKHQgKHRocm93IChxdW90ZSBleGl0KSBl bGVtZW50KSkpKSAoc2V0cSBlbGVtZW50IG5pbCkpKQogIChsZXQqICgoY2FjaGVkIChhbmQgKG9y Zy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKG9yZy1lbGVtZW50LS1jYWNoZS1maW5kIHBvcyBu aWwpKSkgKGJlZ2luIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6YmVnaW4gY2FjaGVkKSkgZWxlbWVu dCBuZXh0KSAoY29uZCAoKG5vdCBjYWNoZWQpIChpZiAobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1s aW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0 bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91 dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgKG91dGxp bmUtcHJldmlvdXMtaGVhZGluZykpIChwcm9nbiAoZm9yd2FyZC1saW5lKSkpIChza2lwLWNoYXJz LWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkgKCg9IHBvcyBiZWdpbikgKHRo cm93IChxdW90ZSBleGl0KSAoaWYgc3luY3AgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpwYXJlbnQg Y2FjaGVkKSBjYWNoZWQpKSkgKChyZS1zZWFyY2gtYmFja3dhcmQgKGxldCogKChvcmctY2FsbGVk LXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1p dGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkg KG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkp IG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wpIGJlZ2luIHQpIChmb3J3YXJkLWxpbmUpIChza2lwLWNo YXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkgKHQgKGxldCAoKHVwIGNh Y2hlZCkgKHBvcyAoaWYgKD0gLi4uIHBvcykgKDEtIHBvcykgcG9zKSkpIChnb3RvLWNoYXIgKG9y IChvcmctZWxlbWVudC1wcm9wZXJ0eSA6Y29udGVudHMtYmVnaW4gY2FjaGVkKSBiZWdpbikpICh3 aGlsZSAobGV0ICgoZW5kIC4uLikpIChhbmQgKDw9IGVuZCBwb3MpIChnb3RvLWNoYXIgZW5kKSAo c2V0cSB1cCAuLi4pKSkpIChjb25kICgobm90IHVwKSkgKChlb2JwKSAoc2V0cSBlbGVtZW50IHVw KSkgKHQgKHNldHEgZWxlbWVudCB1cCBuZXh0IChwb2ludCkpKSkpKSkgKGxldCAoKGVuZCAob3Ig KG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkgKHNhdmUtZXhjdXJzaW9uIChsZXQq ICguLi4gLi4uIC4uLiAuLi4pIChvdXRsaW5lLW5leHQtaGVhZGluZykpIChwb2ludCkpKSkgKHBh cmVudCBlbGVtZW50KSBzcGVjaWFsLWZsYWcpICh3aGlsZSB0IChpZiBzeW5jcCAocHJvZ24gKGNv bmQgKCg9IC4uLiBwb3MpICh0aHJvdyAuLi4gcGFyZW50KSkgKChvcmctZWxlbWVudC0tY2FjaGUt aW50ZXJydXB0LXAgdGltZS1saW1pdCkgKHRocm93IC4uLiBuaWwpKSkpKSAoaWYgZWxlbWVudCBu aWwgKHNldHEgZWxlbWVudCAob3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVudCBlbmQgKHF1b3Rl IGVsZW1lbnQpIHNwZWNpYWwtZmxhZyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnN0cnVjdHVyZSBw YXJlbnQpKSkgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBlbGVtZW50IDpwYXJlbnQgcGFyZW50 KSAob3JnLWVsZW1lbnQtLWNhY2hlLXB1dCBlbGVtZW50KSkgKGxldCAoKGVsZW0tZW5kIChvcmct ZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQpKSAodHlwZSAob3JnLWVsZW1lbnQtdHlwZSBl bGVtZW50KSkpIChjb25kICgoYW5kICg8PSBlbGVtLWVuZCBwb3MpICgvPSAuLi4gZWxlbS1lbmQp KSAoZ290by1jaGFyIGVsZW0tZW5kKSkgKChub3QgKG1lbXEgdHlwZSBvcmctZWxlbWVudC1ncmVh dGVyLWVsZW1lbnRzKSkgKHRocm93IChxdW90ZSBleGl0KSBlbGVtZW50KSkgKChsZXQgKC4uLiAu Li4pIChpZiAuLi4gLi4uKSkpICh0ICh0aHJvdyAocXVvdGUgZXhpdCkgZWxlbWVudCkpKSkgKHNl dHEgZWxlbWVudCBuaWwpKSkpCiAgKHNhdmUtcmVzdHJpY3Rpb24gKHdpZGVuKSAoZ290by1jaGFy IHBvcykgKGxldCogKChjYWNoZWQgKGFuZCAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAo b3JnLWVsZW1lbnQtLWNhY2hlLWZpbmQgcG9zIG5pbCkpKSAoYmVnaW4gKG9yZy1lbGVtZW50LXBy b3BlcnR5IDpiZWdpbiBjYWNoZWQpKSBlbGVtZW50IG5leHQpIChjb25kICgobm90IGNhY2hlZCkg KGlmIChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGlu ZS1yZWdleHAgLi4uKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91 dGxpbmUtcmVnZXhwLWJvbCAuLi4pKSAob3V0bGluZS1wcmV2aW91cy1oZWFkaW5nKSkgKHByb2du IChmb3J3YXJkLWxpbmUpKSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5n LW9mLWxpbmUpKSAoKD0gcG9zIGJlZ2luKSAodGhyb3cgKHF1b3RlIGV4aXQpIChpZiBzeW5jcCAo b3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhcmVudCBjYWNoZWQpIGNhY2hlZCkpKSAoKHJlLXNlYXJj aC1iYWNrd2FyZCAobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3Jn LW91dGxpbmUtcmVnZXhwIC4uLikgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkg KG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgLi4uKSkgb3JnLW91dGxpbmUtcmVnZXhwLWJvbCkgYmVn aW4gdCkgKGZvcndhcmQtbGluZSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5u aW5nLW9mLWxpbmUpKSAodCAobGV0ICgodXAgY2FjaGVkKSAocG9zIChpZiAuLi4gLi4uIHBvcykp KSAoZ290by1jaGFyIChvciAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmNvbnRlbnRzLWJlZ2luIGNh Y2hlZCkgYmVnaW4pKSAod2hpbGUgKGxldCAoLi4uKSAoYW5kIC4uLiAuLi4gLi4uKSkpIChjb25k ICgobm90IHVwKSkgKChlb2JwKSAoc2V0cSBlbGVtZW50IHVwKSkgKHQgKHNldHEgZWxlbWVudCB1 cCBuZXh0IC4uLikpKSkpKSAobGV0ICgoZW5kIChvciAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmVu ZCBlbGVtZW50KSAoc2F2ZS1leGN1cnNpb24gKGxldCogLi4uIC4uLikgKHBvaW50KSkpKSAocGFy ZW50IGVsZW1lbnQpIHNwZWNpYWwtZmxhZykgKHdoaWxlIHQgKGlmIHN5bmNwIChwcm9nbiAoY29u ZCAoLi4uIC4uLikgKC4uLiAuLi4pKSkpIChpZiBlbGVtZW50IG5pbCAoc2V0cSBlbGVtZW50IChv cmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50IGVuZCAocXVvdGUgZWxlbWVudCkgc3BlY2lhbC1m bGFnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6c3RydWN0dXJlIHBhcmVudCkpKSAob3JnLWVsZW1l bnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQpIChvcmctZWxlbWVudC0tY2Fj aGUtcHV0IGVsZW1lbnQpKSAobGV0ICgoZWxlbS1lbmQgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpl bmQgZWxlbWVudCkpICh0eXBlIChvcmctZWxlbWVudC10eXBlIGVsZW1lbnQpKSkgKGNvbmQgKChh bmQgLi4uIC4uLikgKGdvdG8tY2hhciBlbGVtLWVuZCkpICgobm90IC4uLikgKHRocm93IC4uLiBl bGVtZW50KSkgKChsZXQgLi4uIC4uLikpICh0ICh0aHJvdyAuLi4gZWxlbWVudCkpKSkgKHNldHEg ZWxlbWVudCBuaWwpKSkpKQogIChzYXZlLWV4Y3Vyc2lvbiAoc2F2ZS1yZXN0cmljdGlvbiAod2lk ZW4pIChnb3RvLWNoYXIgcG9zKSAobGV0KiAoKGNhY2hlZCAoYW5kIChvcmctZWxlbWVudC0tY2Fj aGUtYWN0aXZlLXApIChvcmctZWxlbWVudC0tY2FjaGUtZmluZCBwb3MgbmlsKSkpIChiZWdpbiAo b3JnLWVsZW1lbnQtcHJvcGVydHkgOmJlZ2luIGNhY2hlZCkpIGVsZW1lbnQgbmV4dCkgKGNvbmQg KChub3QgY2FjaGVkKSAoaWYgKGxldCogKC4uLiAuLi4gLi4uIC4uLikgKG91dGxpbmUtcHJldmlv dXMtaGVhZGluZykpIChwcm9nbiAoZm9yd2FyZC1saW5lKSkpIChza2lwLWNoYXJzLWZvcndhcmQg IiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkgKCg9IHBvcyBiZWdpbikgKHRocm93IChxdW90 ZSBleGl0KSAoaWYgc3luY3AgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpwYXJlbnQgY2FjaGVkKSBj YWNoZWQpKSkgKChyZS1zZWFyY2gtYmFja3dhcmQgKGxldCogKC4uLiAuLi4gLi4uIC4uLikgb3Jn LW91dGxpbmUtcmVnZXhwLWJvbCkgYmVnaW4gdCkgKGZvcndhcmQtbGluZSkgKHNraXAtY2hhcnMt Zm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAodCAobGV0ICgodXAgY2FjaGVk KSAocG9zIC4uLikpIChnb3RvLWNoYXIgKG9yIC4uLiBiZWdpbikpICh3aGlsZSAobGV0IC4uLiAu Li4pKSAoY29uZCAoLi4uKSAoLi4uIC4uLikgKHQgLi4uKSkpKSkgKGxldCAoKGVuZCAob3IgKG9y Zy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkgKHNhdmUtZXhjdXJzaW9uIC4uLiAuLi4p KSkgKHBhcmVudCBlbGVtZW50KSBzcGVjaWFsLWZsYWcpICh3aGlsZSB0IChpZiBzeW5jcCAocHJv Z24gKGNvbmQgLi4uIC4uLikpKSAoaWYgZWxlbWVudCBuaWwgKHNldHEgZWxlbWVudCAob3JnLWVs ZW1lbnQtLWN1cnJlbnQtZWxlbWVudCBlbmQgLi4uIHNwZWNpYWwtZmxhZyAuLi4pKSAob3JnLWVs ZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQpIChvcmctZWxlbWVudC0t Y2FjaGUtcHV0IGVsZW1lbnQpKSAobGV0ICgoZWxlbS1lbmQgLi4uKSAodHlwZSAuLi4pKSAoY29u ZCAoLi4uIC4uLikgKC4uLiAuLi4pICguLi4pICh0IC4uLikpKSAoc2V0cSBlbGVtZW50IG5pbCkp KSkpKQogIChjYXRjaCAocXVvdGUgZXhpdCkgKHNhdmUtZXhjdXJzaW9uIChzYXZlLXJlc3RyaWN0 aW9uICh3aWRlbikgKGdvdG8tY2hhciBwb3MpIChsZXQqICgoY2FjaGVkIChhbmQgKG9yZy1lbGVt ZW50LS1jYWNoZS1hY3RpdmUtcCkgKG9yZy1lbGVtZW50LS1jYWNoZS1maW5kIHBvcyBuaWwpKSkg KGJlZ2luIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6YmVnaW4gY2FjaGVkKSkgZWxlbWVudCBuZXh0 KSAoY29uZCAoKG5vdCBjYWNoZWQpIChpZiAobGV0KiAuLi4gLi4uKSAocHJvZ24gLi4uKSkgKHNr aXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAoKD0gcG9zIGJl Z2luKSAodGhyb3cgKHF1b3RlIGV4aXQpIChpZiBzeW5jcCAuLi4gY2FjaGVkKSkpICgocmUtc2Vh cmNoLWJhY2t3YXJkIChsZXQqIC4uLiBvcmctb3V0bGluZS1yZWdleHAtYm9sKSBiZWdpbiB0KSAo Zm9yd2FyZC1saW5lKSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2Yt bGluZSkpICh0IChsZXQgKC4uLiAuLi4pIChnb3RvLWNoYXIgLi4uKSAod2hpbGUgLi4uKSAoY29u ZCAuLi4gLi4uIC4uLikpKSkgKGxldCAoKGVuZCAob3IgLi4uIC4uLikpIChwYXJlbnQgZWxlbWVu dCkgc3BlY2lhbC1mbGFnKSAod2hpbGUgdCAoaWYgc3luY3AgKHByb2duIC4uLikpIChpZiBlbGVt ZW50IG5pbCAoc2V0cSBlbGVtZW50IC4uLikgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBlbGVt ZW50IDpwYXJlbnQgcGFyZW50KSAob3JnLWVsZW1lbnQtLWNhY2hlLXB1dCBlbGVtZW50KSkgKGxl dCAoLi4uIC4uLikgKGNvbmQgLi4uIC4uLiAuLi4gLi4uKSkgKHNldHEgZWxlbWVudCBuaWwpKSkp KSkpCiAgb3JnLWVsZW1lbnQtLXBhcnNlLXRvKDI1NzI4MCkKICAoY29uZCAoKGJvYnApIG5pbCkg KChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1y ZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBv cmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9y Zy1vdXRsaW5lLXJlZ2V4cCkpKSAob3JnLWF0LWhlYWRpbmctcCkpIChiZWdpbm5pbmctb2YtbGlu ZSkgKG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNlciAocG9pbnQtbWF4KSB0KSkgKHQgKGlmIChv cmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChwcm9nbiAoaWYgKG5vdCBvcmctZWxlbWVudC0t Y2FjaGUpIChvcmctZWxlbWVudC1jYWNoZS1yZXNldCkgKG9yZy1lbGVtZW50LS1jYWNoZS1zeW5j IChjdXJyZW50LWJ1ZmZlcikgb3JpZ2luKSkpKSAob3JnLWVsZW1lbnQtLXBhcnNlLXRvIG9yaWdp bikpKQogIChsZXQgKChvcmlnaW4gKHBvaW50KSkpIChlbmQtb2YtbGluZSkgKHNraXAtY2hhcnMt YmFja3dhcmQgIiANCVxuIikgKGNvbmQgKChib2JwKSBuaWwpICgobGV0KiAoKG9yZy1jYWxsZWQt d2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0 ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAo b3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkg KG9yZy1hdC1oZWFkaW5nLXApKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1oZWFk bGluZS1wYXJzZXIgKHBvaW50LW1heCkgdCkpICh0IChpZiAob3JnLWVsZW1lbnQtLWNhY2hlLWFj dGl2ZS1wKSAocHJvZ24gKGlmIChub3Qgb3JnLWVsZW1lbnQtLWNhY2hlKSAob3JnLWVsZW1lbnQt Y2FjaGUtcmVzZXQpIChvcmctZWxlbWVudC0tY2FjaGUtc3luYyAoY3VycmVudC1idWZmZXIpIG9y aWdpbikpKSkgKG9yZy1lbGVtZW50LS1wYXJzZS10byBvcmlnaW4pKSkpCiAgKHNhdmUtcmVzdHJp Y3Rpb24gKHdpZGVuKSAobGV0ICgob3JpZ2luIChwb2ludCkpKSAoZW5kLW9mLWxpbmUpIChza2lw LWNoYXJzLWJhY2t3YXJkICIgDQlcbiIpIChjb25kICgoYm9icCkgbmlsKSAoKGxldCogKChvcmct Y2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdl dC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJl Z2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVn ZXhwKSkpIChvcmctYXQtaGVhZGluZy1wKSkgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1l bnQtaGVhZGxpbmUtcGFyc2VyIChwb2ludC1tYXgpIHQpKSAodCAoaWYgKG9yZy1lbGVtZW50LS1j YWNoZS1hY3RpdmUtcCkgKHByb2duIChpZiAobm90IG9yZy1lbGVtZW50LS1jYWNoZSkgKG9yZy1l bGVtZW50LWNhY2hlLXJlc2V0KSAob3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMgLi4uIG9yaWdpbikp KSkgKG9yZy1lbGVtZW50LS1wYXJzZS10byBvcmlnaW4pKSkpKQogIChzYXZlLWV4Y3Vyc2lvbiAo c2F2ZS1yZXN0cmljdGlvbiAod2lkZW4pIChsZXQgKChvcmlnaW4gKHBvaW50KSkpIChlbmQtb2Yt bGluZSkgKHNraXAtY2hhcnMtYmFja3dhcmQgIiANCVxuIikgKGNvbmQgKChib2JwKSBuaWwpICgo bGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVn ZXhwIC4uLikgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5l LXJlZ2V4cC1ib2wgLi4uKSkgKG9yZy1hdC1oZWFkaW5nLXApKSAoYmVnaW5uaW5nLW9mLWxpbmUp IChvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIgKHBvaW50LW1heCkgdCkpICh0IChpZiAob3Jn LWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAocHJvZ24gKGlmIC4uLiAuLi4gLi4uKSkpIChvcmct ZWxlbWVudC0tcGFyc2UtdG8gb3JpZ2luKSkpKSkpCiAgb3JnLWVsZW1lbnQtYXQtcG9pbnQoKQog IChsZXQgKChkcmF3ZXIgKG9yZy1lbGVtZW50LWF0LXBvaW50KSkpIChpZiAoYW5kIChlcSAob3Jn LWVsZW1lbnQtdHlwZSBkcmF3ZXIpIChxdW90ZSBwcm9wZXJ0eS1kcmF3ZXIpKSAobGV0ICgocCBk cmF3ZXIpKSAod2hpbGUgKGFuZCAoc2V0cSBwIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGFyZW50 IHApKSAobm90IChlcSAuLi4gLi4uKSkpKSAobm90IHApKSkgKHByb2duIChsZXQgKChlbmQgKG9y Zy1lbGVtZW50LXByb3BlcnR5IDpjb250ZW50cy1lbmQgZHJhd2VyKSkpIChpZiBlbmQgKHByb2du IChmb3J3YXJkLWxpbmUpICh3aGlsZSAoPCAuLi4gZW5kKSAoaWYgLi4uIC4uLikgKGZvcndhcmQt bGluZSkpKSkpKSkpCiAgKHdoaWxlIChhbmQgKG51bGwgcGxpc3QpIChyZS1zZWFyY2gtZm9yd2Fy ZCBvcmctcHJvcGVydHktc3RhcnQtcmUgZW5kIHQpKSAobGV0ICgoZHJhd2VyIChvcmctZWxlbWVu dC1hdC1wb2ludCkpKSAoaWYgKGFuZCAoZXEgKG9yZy1lbGVtZW50LXR5cGUgZHJhd2VyKSAocXVv dGUgcHJvcGVydHktZHJhd2VyKSkgKGxldCAoKHAgZHJhd2VyKSkgKHdoaWxlIChhbmQgKHNldHEg cCAuLi4pIChub3QgLi4uKSkpIChub3QgcCkpKSAocHJvZ24gKGxldCAoKGVuZCAob3JnLWVsZW1l bnQtcHJvcGVydHkgOmNvbnRlbnRzLWVuZCBkcmF3ZXIpKSkgKGlmIGVuZCAocHJvZ24gKGZvcndh cmQtbGluZSkgKHdoaWxlIC4uLiAuLi4gLi4uKSkpKSkpKSkKICAoc2F2ZS1leGN1cnNpb24gKHdo aWxlIChhbmQgKG51bGwgcGxpc3QpIChyZS1zZWFyY2gtZm9yd2FyZCBvcmctcHJvcGVydHktc3Rh cnQtcmUgZW5kIHQpKSAobGV0ICgoZHJhd2VyIChvcmctZWxlbWVudC1hdC1wb2ludCkpKSAoaWYg KGFuZCAoZXEgKG9yZy1lbGVtZW50LXR5cGUgZHJhd2VyKSAocXVvdGUgcHJvcGVydHktZHJhd2Vy KSkgKGxldCAoKHAgZHJhd2VyKSkgKHdoaWxlIChhbmQgLi4uIC4uLikpIChub3QgcCkpKSAocHJv Z24gKGxldCAoKGVuZCAuLi4pKSAoaWYgZW5kIChwcm9nbiAuLi4gLi4uKSkpKSkpKSBwbGlzdCkK ICAobGV0ICgoZW5kIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1p dGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGlu ZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxp bmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgKG91dGxpbmUt bmV4dC1oZWFkaW5nKSkgKHBvaW50KSkpIHBsaXN0KSAoc2F2ZS1leGN1cnNpb24gKHdoaWxlIChh bmQgKG51bGwgcGxpc3QpIChyZS1zZWFyY2gtZm9yd2FyZCBvcmctcHJvcGVydHktc3RhcnQtcmUg ZW5kIHQpKSAobGV0ICgoZHJhd2VyIChvcmctZWxlbWVudC1hdC1wb2ludCkpKSAoaWYgKGFuZCAo ZXEgKG9yZy1lbGVtZW50LXR5cGUgZHJhd2VyKSAocXVvdGUgcHJvcGVydHktZHJhd2VyKSkgKGxl dCAoLi4uKSAod2hpbGUgLi4uKSAobm90IHApKSkgKHByb2duIChsZXQgKC4uLikgKGlmIGVuZCAu Li4pKSkpKSkgcGxpc3QpKQogIChsZXQqICgoY29tcG9uZW50cyAob3JnLWhlYWRpbmctY29tcG9u ZW50cykpIChsZXZlbCAobnRoIDEgY29tcG9uZW50cykpICh0b2RvIChudGggMiBjb21wb25lbnRz KSkgKHRvZG8tdHlwZSAoYW5kIHRvZG8gKGlmIChtZW1iZXIgdG9kbyBvcmctZG9uZS1rZXl3b3Jk cykgKHF1b3RlIGRvbmUpIChxdW90ZSB0b2RvKSkpKSAodGFncyAobGV0ICgocmF3LXRhZ3MgKG50 aCA1IGNvbXBvbmVudHMpKSkgKGFuZCByYXctdGFncyAob3JnLXNwbGl0LXN0cmluZyByYXctdGFn cyAiOiIpKSkpIChyYXctdmFsdWUgKG9yIChudGggNCBjb21wb25lbnRzKSAiIikpIChjb21tZW50 ZWRwIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIG5pbCkpIChzdHJpbmctbWF0Y2ggKGZvcm1hdCAi XiVzXFwoIFxcfCRcXCkiIG9yZy1jb21tZW50LXN0cmluZykgcmF3LXZhbHVlKSkpIChhcmNoaXZl ZHAgKG1lbWJlciBvcmctYXJjaGl2ZS10YWcgdGFncykpIChmb290bm90ZS1zZWN0aW9uLXAgKGFu ZCBvcmctZm9vdG5vdGUtc2VjdGlvbiAoc3RyaW5nPSBvcmctZm9vdG5vdGUtc2VjdGlvbiByYXct dmFsdWUpKSkgKHN0YW5kYXJkLXByb3BzIChsZXQgKChlbmQgKHNhdmUtZXhjdXJzaW9uIChsZXQq IC4uLiAuLi4pIChwb2ludCkpKSBwbGlzdCkgKHNhdmUtZXhjdXJzaW9uICh3aGlsZSAoYW5kIChu dWxsIHBsaXN0KSAocmUtc2VhcmNoLWZvcndhcmQgb3JnLXByb3BlcnR5LXN0YXJ0LXJlIGVuZCB0 KSkgKGxldCAoLi4uKSAoaWYgLi4uIC4uLikpKSBwbGlzdCkpKSAodGltZS1wcm9wcyAoc2F2ZS1l eGN1cnNpb24gKGZvcndhcmQtbGluZSkgKGlmIChsb29raW5nLWF0IG9yZy1wbGFubmluZy1vci1j bG9jay1saW5lLXJlKSAocHJvZ24gKGxldCAoLi4uIHBsaXN0KSAod2hpbGUgLi4uIC4uLiAuLi4g Li4uKSBwbGlzdCkpKSkpIChiZWdpbiAocG9pbnQpKSAoZW5kIChtaW4gKHNhdmUtZXhjdXJzaW9u IChvcmctZW5kLW9mLXN1YnRyZWUgdCB0KSkgbGltaXQpKSAocG9zLWFmdGVyLWhlYWQgKHByb2du IChmb3J3YXJkLWxpbmUpIChwb2ludCkpKSAoY29udGVudHMtYmVnaW4gKHNhdmUtZXhjdXJzaW9u IChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIiBlbmQpIChhbmQgKC89IChwb2ludCkgZW5kKSAo bGluZS1iZWdpbm5pbmctcG9zaXRpb24pKSkpIChjb250ZW50cy1lbmQgKGFuZCBjb250ZW50cy1i ZWdpbiAocHJvZ24gKGdvdG8tY2hhciBlbmQpIChza2lwLWNoYXJzLWJhY2t3YXJkICIgDQlcbiIp IChmb3J3YXJkLWxpbmUpIChwb2ludCkpKSkpIChpZiBjb21tZW50ZWRwIChwcm9nbiAobGV0ICgo Y2FzZS1mb2xkLXNlYXJjaCBuaWwpKSAoc2V0cSByYXctdmFsdWUgKHJlcGxhY2UtcmVnZXhwLWlu LXN0cmluZyAoY29uY2F0IChyZWdleHAtcXVvdGUgb3JnLWNvbW1lbnQtc3RyaW5nKSAiXFwoPzog XFx8JFxcKSIpICIiIHJhdy12YWx1ZSkpKSkpIChpZiBhcmNoaXZlZHAgKHByb2duIChzZXRxIHRh Z3MgKGRlbGV0ZSBvcmctYXJjaGl2ZS10YWcgdGFncykpKSkgKGxldCAoKGhlYWRsaW5lIChsaXN0 IChxdW90ZSBoZWFkbGluZSkgKG5jb25jIChsaXN0IDpyYXctdmFsdWUgcmF3LXZhbHVlIDpiZWdp biBiZWdpbiA6ZW5kIGVuZCA6cHJlLWJsYW5rIChpZiAuLi4gMCAuLi4pIDpjb250ZW50cy1iZWdp biBjb250ZW50cy1iZWdpbiA6Y29udGVudHMtZW5kIGNvbnRlbnRzLWVuZCA6bGV2ZWwgbGV2ZWwg OnByaW9yaXR5IChudGggMyBjb21wb25lbnRzKSA6dGFncyB0YWdzIDp0b2RvLWtleXdvcmQgdG9k byA6dG9kby10eXBlIHRvZG8tdHlwZSA6cG9zdC1ibGFuayAoY291bnQtbGluZXMgLi4uIGVuZCkg OmZvb3Rub3RlLXNlY3Rpb24tcCBmb290bm90ZS1zZWN0aW9uLXAgOmFyY2hpdmVkcCBhcmNoaXZl ZHAgOmNvbW1lbnRlZHAgY29tbWVudGVkcCkgdGltZS1wcm9wcyBzdGFuZGFyZC1wcm9wcykpKSkg KGxldCAoKGFsdC10aXRsZSAob3JnLWVsZW1lbnQtcHJvcGVydHkgOkFMVF9USVRMRSBoZWFkbGlu ZSkpKSAoaWYgYWx0LXRpdGxlIChwcm9nbiAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGhlYWRs aW5lIDphbHQtdGl0bGUgKGlmIHJhdy1zZWNvbmRhcnktcCBhbHQtdGl0bGUgKG9yZy1lbGVtZW50 LXBhcnNlLXNlY29uZGFyeS1zdHJpbmcgYWx0LXRpdGxlIC4uLiBoZWFkbGluZSkpKSkpKSAob3Jn LWVsZW1lbnQtcHV0LXByb3BlcnR5IGhlYWRsaW5lIDp0aXRsZSAoaWYgcmF3LXNlY29uZGFyeS1w IHJhdy12YWx1ZSAob3JnLWVsZW1lbnQtcGFyc2Utc2Vjb25kYXJ5LXN0cmluZyByYXctdmFsdWUg KG9yZy1lbGVtZW50LXJlc3RyaWN0aW9uIChxdW90ZSBoZWFkbGluZSkpIGhlYWRsaW5lKSkpKSkK ICAoc2F2ZS1leGN1cnNpb24gKGxldCogKChjb21wb25lbnRzIChvcmctaGVhZGluZy1jb21wb25l bnRzKSkgKGxldmVsIChudGggMSBjb21wb25lbnRzKSkgKHRvZG8gKG50aCAyIGNvbXBvbmVudHMp KSAodG9kby10eXBlIChhbmQgdG9kbyAoaWYgKG1lbWJlciB0b2RvIG9yZy1kb25lLWtleXdvcmRz KSAocXVvdGUgZG9uZSkgKHF1b3RlIHRvZG8pKSkpICh0YWdzIChsZXQgKChyYXctdGFncyAobnRo IDUgY29tcG9uZW50cykpKSAoYW5kIHJhdy10YWdzIChvcmctc3BsaXQtc3RyaW5nIHJhdy10YWdz ICI6IikpKSkgKHJhdy12YWx1ZSAob3IgKG50aCA0IGNvbXBvbmVudHMpICIiKSkgKGNvbW1lbnRl ZHAgKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggbmlsKSkgKHN0cmluZy1tYXRjaCAoZm9ybWF0ICJe JXNcXCggXFx8JFxcKSIgb3JnLWNvbW1lbnQtc3RyaW5nKSByYXctdmFsdWUpKSkgKGFyY2hpdmVk cCAobWVtYmVyIG9yZy1hcmNoaXZlLXRhZyB0YWdzKSkgKGZvb3Rub3RlLXNlY3Rpb24tcCAoYW5k IG9yZy1mb290bm90ZS1zZWN0aW9uIChzdHJpbmc9IG9yZy1mb290bm90ZS1zZWN0aW9uIHJhdy12 YWx1ZSkpKSAoc3RhbmRhcmQtcHJvcHMgKGxldCAoKGVuZCAoc2F2ZS1leGN1cnNpb24gLi4uIC4u LikpIHBsaXN0KSAoc2F2ZS1leGN1cnNpb24gKHdoaWxlIChhbmQgLi4uIC4uLikgKGxldCAuLi4g Li4uKSkgcGxpc3QpKSkgKHRpbWUtcHJvcHMgKHNhdmUtZXhjdXJzaW9uIChmb3J3YXJkLWxpbmUp IChpZiAobG9va2luZy1hdCBvcmctcGxhbm5pbmctb3ItY2xvY2stbGluZS1yZSkgKHByb2duIChs ZXQgLi4uIC4uLiBwbGlzdCkpKSkpIChiZWdpbiAocG9pbnQpKSAoZW5kIChtaW4gKHNhdmUtZXhj dXJzaW9uIChvcmctZW5kLW9mLXN1YnRyZWUgdCB0KSkgbGltaXQpKSAocG9zLWFmdGVyLWhlYWQg KHByb2duIChmb3J3YXJkLWxpbmUpIChwb2ludCkpKSAoY29udGVudHMtYmVnaW4gKHNhdmUtZXhj dXJzaW9uIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIiBlbmQpIChhbmQgKC89IChwb2ludCkg ZW5kKSAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pKSkpIChjb250ZW50cy1lbmQgKGFuZCBjb250 ZW50cy1iZWdpbiAocHJvZ24gKGdvdG8tY2hhciBlbmQpIChza2lwLWNoYXJzLWJhY2t3YXJkICIg DQlcbiIpIChmb3J3YXJkLWxpbmUpIChwb2ludCkpKSkpIChpZiBjb21tZW50ZWRwIChwcm9nbiAo bGV0ICgoY2FzZS1mb2xkLXNlYXJjaCBuaWwpKSAoc2V0cSByYXctdmFsdWUgKHJlcGxhY2UtcmVn ZXhwLWluLXN0cmluZyAoY29uY2F0IC4uLiAiXFwoPzogXFx8JFxcKSIpICIiIHJhdy12YWx1ZSkp KSkpIChpZiBhcmNoaXZlZHAgKHByb2duIChzZXRxIHRhZ3MgKGRlbGV0ZSBvcmctYXJjaGl2ZS10 YWcgdGFncykpKSkgKGxldCAoKGhlYWRsaW5lIChsaXN0IChxdW90ZSBoZWFkbGluZSkgKG5jb25j IChsaXN0IDpyYXctdmFsdWUgcmF3LXZhbHVlIDpiZWdpbiBiZWdpbiA6ZW5kIGVuZCA6cHJlLWJs YW5rIC4uLiA6Y29udGVudHMtYmVnaW4gY29udGVudHMtYmVnaW4gOmNvbnRlbnRzLWVuZCBjb250 ZW50cy1lbmQgOmxldmVsIGxldmVsIDpwcmlvcml0eSAuLi4gOnRhZ3MgdGFncyA6dG9kby1rZXl3 b3JkIHRvZG8gOnRvZG8tdHlwZSB0b2RvLXR5cGUgOnBvc3QtYmxhbmsgLi4uIDpmb290bm90ZS1z ZWN0aW9uLXAgZm9vdG5vdGUtc2VjdGlvbi1wIDphcmNoaXZlZHAgYXJjaGl2ZWRwIDpjb21tZW50 ZWRwIGNvbW1lbnRlZHApIHRpbWUtcHJvcHMgc3RhbmRhcmQtcHJvcHMpKSkpIChsZXQgKChhbHQt dGl0bGUgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpBTFRfVElUTEUgaGVhZGxpbmUpKSkgKGlmIGFs dC10aXRsZSAocHJvZ24gKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBoZWFkbGluZSA6YWx0LXRp dGxlIChpZiByYXctc2Vjb25kYXJ5LXAgYWx0LXRpdGxlIC4uLikpKSkpIChvcmctZWxlbWVudC1w dXQtcHJvcGVydHkgaGVhZGxpbmUgOnRpdGxlIChpZiByYXctc2Vjb25kYXJ5LXAgcmF3LXZhbHVl IChvcmctZWxlbWVudC1wYXJzZS1zZWNvbmRhcnktc3RyaW5nIHJhdy12YWx1ZSAob3JnLWVsZW1l bnQtcmVzdHJpY3Rpb24gKHF1b3RlIGhlYWRsaW5lKSkgaGVhZGxpbmUpKSkpKSkKICBvcmctZWxl bWVudC1oZWFkbGluZS1wYXJzZXIoMjU3NzA2IHQpCiAgKGNvbmQgKChlcSBzcGVjaWFsIChxdW90 ZSBpdGVtKSkgKG9yZy1lbGVtZW50LWl0ZW0tcGFyc2VyIGxpbWl0IHN0cnVjdHVyZSByYXctc2Vj b25kYXJ5LXApKSAoKGVxIHNwZWNpYWwgKHF1b3RlIHRhYmxlLXJvdykpIChvcmctZWxlbWVudC10 YWJsZS1yb3ctcGFyc2VyIGxpbWl0KSkgKChlcSBzcGVjaWFsIChxdW90ZSBub2RlLXByb3BlcnR5 KSkgKG9yZy1lbGVtZW50LW5vZGUtcHJvcGVydHktcGFyc2VyIGxpbWl0KSkgKChsZXQqICgob3Jn LWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1n ZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1y ZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJl Z2V4cCkpKSAob3JnLWF0LWhlYWRpbmctcCkpIChvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIg bGltaXQgcmF3LXNlY29uZGFyeS1wKSkgKChlcSBzcGVjaWFsIChxdW90ZSBzZWN0aW9uKSkgKG9y Zy1lbGVtZW50LXNlY3Rpb24tcGFyc2VyIGxpbWl0KSkgKChlcSBzcGVjaWFsIChxdW90ZSBmaXJz dC1zZWN0aW9uKSkgKG9yZy1lbGVtZW50LXNlY3Rpb24tcGFyc2VyIChvciAoc2F2ZS1leGN1cnNp b24gKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5l LXJlZ2V4cCAuLi4pIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0 bGluZS1yZWdleHAtYm9sIC4uLikpIChvdXRsaW5lLW5leHQtaGVhZGluZykpKSBsaW1pdCkpKSAo KG5vdCAoYm9scCkpIChvcmctZWxlbWVudC1wYXJhZ3JhcGgtcGFyc2VyIGxpbWl0IChsaXN0IChw b2ludCkpKSkgKChsb29raW5nLWF0IG9yZy1wbGFubmluZy1vci1jbG9jay1saW5lLXJlKSAoaWYg KGVxdWFsIChtYXRjaC1zdHJpbmcgMSkgb3JnLWNsb2NrLXN0cmluZykgKG9yZy1lbGVtZW50LWNs b2NrLXBhcnNlciBsaW1pdCkgKG9yZy1lbGVtZW50LXBsYW5uaW5nLXBhcnNlciBsaW1pdCkpKSAo KG9yZy1hdC1oZWFkaW5nLXApIChvcmctZWxlbWVudC1pbmxpbmV0YXNrLXBhcnNlciBsaW1pdCBy YXctc2Vjb25kYXJ5LXApKSAodCAobGV0ICgoYWZmaWxpYXRlZCAob3JnLWVsZW1lbnQtLWNvbGxl Y3QtYWZmaWxpYXRlZC1rZXl3b3JkcyBsaW1pdCkpKSAoY29uZCAoKGFuZCAoY2RyIGFmZmlsaWF0 ZWQpICg+PSAocG9pbnQpIGxpbWl0KSkgKGdvdG8tY2hhciAoY2FyIGFmZmlsaWF0ZWQpKSAob3Jn LWVsZW1lbnQta2V5d29yZC1wYXJzZXIgbGltaXQgbmlsKSkgKChsb29raW5nLWF0ICJbICAgICBd KlxcXFxiZWdpbntbQS1aYS16MC05Kl0rfVxcKFxcWy4qP1xcXVxcfHsuKj99XFwpKlsgICAgIF0q JCIpIChvcmctZWxlbWVudC1sYXRleC1lbnZpcm9ubWVudC1wYXJzZXIgbGltaXQgYWZmaWxpYXRl ZCkpICgobG9va2luZy1hdCBvcmctZHJhd2VyLXJlZ2V4cCkgKGlmIChlcXVhbCAobWF0Y2gtc3Ry aW5nIDEpICJQUk9QRVJUSUVTIikgKG9yZy1lbGVtZW50LXByb3BlcnR5LWRyYXdlci1wYXJzZXIg bGltaXQgYWZmaWxpYXRlZCkgKG9yZy1lbGVtZW50LWRyYXdlci1wYXJzZXIgbGltaXQgYWZmaWxp YXRlZCkpKSAoKGxvb2tpbmctYXQgIlsgICBdKjpcXCggXFx8JFxcKSIpIChvcmctZWxlbWVudC1m aXhlZC13aWR0aC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiWyAgICAg XSojIikgKGdvdG8tY2hhciAobWF0Y2gtZW5kIDApKSAoY29uZCAoKGxvb2tpbmctYXQgIlxcKD86 IFxcfCRcXCkiKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1jb21tZW50LXBhcnNl ciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJcXCtCRUdJTl9cXChcXFMtK1xcKSIp IChiZWdpbm5pbmctb2YtbGluZSkgKGxldCAuLi4gLi4uKSkgKChsb29raW5nLWF0ICJcXCtDQUxM OiIpIChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWJhYmVsLWNhbGwtcGFyc2VyIGxp bWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlxcK0JFR0lOOj8gIikgKGJlZ2lubmluZy1v Zi1saW5lKSAob3JnLWVsZW1lbnQtZHluYW1pYy1ibG9jay1wYXJzZXIgbGltaXQgYWZmaWxpYXRl ZCkpICgobG9va2luZy1hdCAiXFwrXFxTLSs6IikgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVs ZW1lbnQta2V5d29yZC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICh0IChiZWdpbm5pbmctb2Yt bGluZSkgKG9yZy1lbGVtZW50LXBhcmFncmFwaC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpKSkg KChsb29raW5nLWF0IG9yZy1mb290bm90ZS1kZWZpbml0aW9uLXJlKSAob3JnLWVsZW1lbnQtZm9v dG5vdGUtZGVmaW5pdGlvbi1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAi WyAgIF0qLVxcezUsXFx9WyAgICBdKiQiKSAob3JnLWVsZW1lbnQtaG9yaXpvbnRhbC1ydWxlLXBh cnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICIlJSgiKSAob3JnLWVsZW1lbnQt ZGlhcnktc2V4cC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgob3JnLWF0LXRhYmxlLXAgdCkg KG9yZy1lbGVtZW50LXRhYmxlLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0 IChvcmctaXRlbS1yZSkpIChvcmctZWxlbWVudC1wbGFpbi1saXN0LXBhcnNlciBsaW1pdCBhZmZp bGlhdGVkIChvciBzdHJ1Y3R1cmUgKG9yZy1lbGVtZW50LS1saXN0LXN0cnVjdCBsaW1pdCkpKSkg KHQgKG9yZy1lbGVtZW50LXBhcmFncmFwaC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpKSkpKQog IChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIHQpIChyYXctc2Vjb25kYXJ5LXAgKGFuZCBncmFudWxh cml0eSAobm90IChlcSBncmFudWxhcml0eSAocXVvdGUgb2JqZWN0KSkpKSkpIChjb25kICgoZXEg c3BlY2lhbCAocXVvdGUgaXRlbSkpIChvcmctZWxlbWVudC1pdGVtLXBhcnNlciBsaW1pdCBzdHJ1 Y3R1cmUgcmF3LXNlY29uZGFyeS1wKSkgKChlcSBzcGVjaWFsIChxdW90ZSB0YWJsZS1yb3cpKSAo b3JnLWVsZW1lbnQtdGFibGUtcm93LXBhcnNlciBsaW1pdCkpICgoZXEgc3BlY2lhbCAocXVvdGUg bm9kZS1wcm9wZXJ0eSkpIChvcmctZWxlbWVudC1ub2RlLXByb3BlcnR5LXBhcnNlciBsaW1pdCkp ICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUt cmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAg b3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBv cmctb3V0bGluZS1yZWdleHApKSkgKG9yZy1hdC1oZWFkaW5nLXApKSAob3JnLWVsZW1lbnQtaGVh ZGxpbmUtcGFyc2VyIGxpbWl0IHJhdy1zZWNvbmRhcnktcCkpICgoZXEgc3BlY2lhbCAocXVvdGUg c2VjdGlvbikpIChvcmctZWxlbWVudC1zZWN0aW9uLXBhcnNlciBsaW1pdCkpICgoZXEgc3BlY2lh bCAocXVvdGUgZmlyc3Qtc2VjdGlvbikpIChvcmctZWxlbWVudC1zZWN0aW9uLXBhcnNlciAob3Ig KHNhdmUtZXhjdXJzaW9uIChsZXQqICguLi4gLi4uIC4uLiAuLi4pIChvdXRsaW5lLW5leHQtaGVh ZGluZykpKSBsaW1pdCkpKSAoKG5vdCAoYm9scCkpIChvcmctZWxlbWVudC1wYXJhZ3JhcGgtcGFy c2VyIGxpbWl0IChsaXN0IChwb2ludCkpKSkgKChsb29raW5nLWF0IG9yZy1wbGFubmluZy1vci1j bG9jay1saW5lLXJlKSAoaWYgKGVxdWFsIChtYXRjaC1zdHJpbmcgMSkgb3JnLWNsb2NrLXN0cmlu ZykgKG9yZy1lbGVtZW50LWNsb2NrLXBhcnNlciBsaW1pdCkgKG9yZy1lbGVtZW50LXBsYW5uaW5n LXBhcnNlciBsaW1pdCkpKSAoKG9yZy1hdC1oZWFkaW5nLXApIChvcmctZWxlbWVudC1pbmxpbmV0 YXNrLXBhcnNlciBsaW1pdCByYXctc2Vjb25kYXJ5LXApKSAodCAobGV0ICgoYWZmaWxpYXRlZCAo b3JnLWVsZW1lbnQtLWNvbGxlY3QtYWZmaWxpYXRlZC1rZXl3b3JkcyBsaW1pdCkpKSAoY29uZCAo KGFuZCAoY2RyIGFmZmlsaWF0ZWQpICg+PSAuLi4gbGltaXQpKSAoZ290by1jaGFyIChjYXIgYWZm aWxpYXRlZCkpIChvcmctZWxlbWVudC1rZXl3b3JkLXBhcnNlciBsaW1pdCBuaWwpKSAoKGxvb2tp bmctYXQgIlsgICAgICAgIF0qXFxcXGJlZ2lue1tBLVphLXowLTkqXSt9XFwoXFxbLio/XFxdXFx8 ey4qP31cXCkqWyAgICAgXSokIikgKG9yZy1lbGVtZW50LWxhdGV4LWVudmlyb25tZW50LXBhcnNl ciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0IG9yZy1kcmF3ZXItcmVnZXhwKSAoaWYg KGVxdWFsIC4uLiAiUFJPUEVSVElFUyIpIChvcmctZWxlbWVudC1wcm9wZXJ0eS1kcmF3ZXItcGFy c2VyIGxpbWl0IGFmZmlsaWF0ZWQpIChvcmctZWxlbWVudC1kcmF3ZXItcGFyc2VyIGxpbWl0IGFm ZmlsaWF0ZWQpKSkgKChsb29raW5nLWF0ICJbICAgICAgICBdKjpcXCggXFx8JFxcKSIpIChvcmct ZWxlbWVudC1maXhlZC13aWR0aC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1h dCAiWyAgICAgXSojIikgKGdvdG8tY2hhciAobWF0Y2gtZW5kIDApKSAoY29uZCAoLi4uIC4uLiAu Li4pICguLi4gLi4uIC4uLikgKC4uLiAuLi4gLi4uKSAoLi4uIC4uLiAuLi4pICguLi4gLi4uIC4u LikgKHQgLi4uIC4uLikpKSAoKGxvb2tpbmctYXQgb3JnLWZvb3Rub3RlLWRlZmluaXRpb24tcmUp IChvcmctZWxlbWVudC1mb290bm90ZS1kZWZpbml0aW9uLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVk KSkgKChsb29raW5nLWF0ICJbICAgXSotXFx7NSxcXH1bICAgIF0qJCIpIChvcmctZWxlbWVudC1o b3Jpem9udGFsLXJ1bGUtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIiUl KCIpIChvcmctZWxlbWVudC1kaWFyeS1zZXhwLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChv cmctYXQtdGFibGUtcCB0KSAob3JnLWVsZW1lbnQtdGFibGUtcGFyc2VyIGxpbWl0IGFmZmlsaWF0 ZWQpKSAoKGxvb2tpbmctYXQgKG9yZy1pdGVtLXJlKSkgKG9yZy1lbGVtZW50LXBsYWluLWxpc3Qt cGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQgKG9yIHN0cnVjdHVyZSAuLi4pKSkgKHQgKG9yZy1lbGVt ZW50LXBhcmFncmFwaC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpKSkpKSkKICAoc2F2ZS1leGN1 cnNpb24gKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggdCkgKHJhdy1zZWNvbmRhcnktcCAoYW5kIGdy YW51bGFyaXR5IChub3QgKGVxIGdyYW51bGFyaXR5IChxdW90ZSBvYmplY3QpKSkpKSkgKGNvbmQg KChlcSBzcGVjaWFsIChxdW90ZSBpdGVtKSkgKG9yZy1lbGVtZW50LWl0ZW0tcGFyc2VyIGxpbWl0 IHN0cnVjdHVyZSByYXctc2Vjb25kYXJ5LXApKSAoKGVxIHNwZWNpYWwgKHF1b3RlIHRhYmxlLXJv dykpIChvcmctZWxlbWVudC10YWJsZS1yb3ctcGFyc2VyIGxpbWl0KSkgKChlcSBzcGVjaWFsIChx dW90ZSBub2RlLXByb3BlcnR5KSkgKG9yZy1lbGVtZW50LW5vZGUtcHJvcGVydHktcGFyc2VyIGxp bWl0KSkgKChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0 bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJl Z2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQg Il4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3JnLWF0LWhlYWRpbmctcCkpIChvcmctZWxlbWVu dC1oZWFkbGluZS1wYXJzZXIgbGltaXQgcmF3LXNlY29uZGFyeS1wKSkgKChlcSBzcGVjaWFsIChx dW90ZSBzZWN0aW9uKSkgKG9yZy1lbGVtZW50LXNlY3Rpb24tcGFyc2VyIGxpbWl0KSkgKChlcSBz cGVjaWFsIChxdW90ZSBmaXJzdC1zZWN0aW9uKSkgKG9yZy1lbGVtZW50LXNlY3Rpb24tcGFyc2Vy IChvciAoc2F2ZS1leGN1cnNpb24gKGxldCogLi4uIC4uLikpIGxpbWl0KSkpICgobm90IChib2xw KSkgKG9yZy1lbGVtZW50LXBhcmFncmFwaC1wYXJzZXIgbGltaXQgKGxpc3QgKHBvaW50KSkpKSAo KGxvb2tpbmctYXQgb3JnLXBsYW5uaW5nLW9yLWNsb2NrLWxpbmUtcmUpIChpZiAoZXF1YWwgKG1h dGNoLXN0cmluZyAxKSBvcmctY2xvY2stc3RyaW5nKSAob3JnLWVsZW1lbnQtY2xvY2stcGFyc2Vy IGxpbWl0KSAob3JnLWVsZW1lbnQtcGxhbm5pbmctcGFyc2VyIGxpbWl0KSkpICgob3JnLWF0LWhl YWRpbmctcCkgKG9yZy1lbGVtZW50LWlubGluZXRhc2stcGFyc2VyIGxpbWl0IHJhdy1zZWNvbmRh cnktcCkpICh0IChsZXQgKChhZmZpbGlhdGVkIChvcmctZWxlbWVudC0tY29sbGVjdC1hZmZpbGlh dGVkLWtleXdvcmRzIGxpbWl0KSkpIChjb25kICgoYW5kIC4uLiAuLi4pIChnb3RvLWNoYXIgLi4u KSAob3JnLWVsZW1lbnQta2V5d29yZC1wYXJzZXIgbGltaXQgbmlsKSkgKChsb29raW5nLWF0ICJb ICAgICAgXSpcXFxcYmVnaW57W0EtWmEtejAtOSpdK31cXChcXFsuKj9cXF1cXHx7Lio/fVxcKSpb ICAgICBdKiQiKSAob3JnLWVsZW1lbnQtbGF0ZXgtZW52aXJvbm1lbnQtcGFyc2VyIGxpbWl0IGFm ZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgb3JnLWRyYXdlci1yZWdleHApIChpZiAuLi4gLi4uIC4u LikpICgobG9va2luZy1hdCAiWyAgICAgICAgXSo6XFwoIFxcfCRcXCkiKSAob3JnLWVsZW1lbnQt Zml4ZWQtd2lkdGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlsgICAg IF0qIyIpIChnb3RvLWNoYXIgLi4uKSAoY29uZCAuLi4gLi4uIC4uLiAuLi4gLi4uIC4uLikpICgo bG9va2luZy1hdCBvcmctZm9vdG5vdGUtZGVmaW5pdGlvbi1yZSkgKG9yZy1lbGVtZW50LWZvb3Ru b3RlLWRlZmluaXRpb24tcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlsg ICAgICAgXSotXFx7NSxcXH1bICAgIF0qJCIpIChvcmctZWxlbWVudC1ob3Jpem9udGFsLXJ1bGUt cGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIiUlKCIpIChvcmctZWxlbWVu dC1kaWFyeS1zZXhwLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChvcmctYXQtdGFibGUtcCB0 KSAob3JnLWVsZW1lbnQtdGFibGUtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmct YXQgLi4uKSAob3JnLWVsZW1lbnQtcGxhaW4tbGlzdC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCAu Li4pKSAodCAob3JnLWVsZW1lbnQtcGFyYWdyYXBoLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkp KSkpKSkKICBvcmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50KDI1NzcwNiBlbGVtZW50IG5pbCBu aWwpCiAgKHNldHEgZWxlbWVudCAob3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVudCBlbmQgKHF1 b3RlIGVsZW1lbnQpIHNwZWNpYWwtZmxhZyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnN0cnVjdHVy ZSBwYXJlbnQpKSkKICAoaWYgZWxlbWVudCBuaWwgKHNldHEgZWxlbWVudCAob3JnLWVsZW1lbnQt LWN1cnJlbnQtZWxlbWVudCBlbmQgKHF1b3RlIGVsZW1lbnQpIHNwZWNpYWwtZmxhZyAob3JnLWVs ZW1lbnQtcHJvcGVydHkgOnN0cnVjdHVyZSBwYXJlbnQpKSkgKG9yZy1lbGVtZW50LXB1dC1wcm9w ZXJ0eSBlbGVtZW50IDpwYXJlbnQgcGFyZW50KSAob3JnLWVsZW1lbnQtLWNhY2hlLXB1dCBlbGVt ZW50KSkKICAod2hpbGUgdCAoaWYgc3luY3AgKHByb2duIChjb25kICgoPSAocG9pbnQpIHBvcykg KHRocm93IChxdW90ZSBleGl0KSBwYXJlbnQpKSAoKG9yZy1lbGVtZW50LS1jYWNoZS1pbnRlcnJ1 cHQtcCB0aW1lLWxpbWl0KSAodGhyb3cgKHF1b3RlIGludGVycnVwdCkgbmlsKSkpKSkgKGlmIGVs ZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50LS1jdXJyZW50LWVsZW1lbnQgZW5k IChxdW90ZSBlbGVtZW50KSBzcGVjaWFsLWZsYWcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpzdHJ1 Y3R1cmUgcGFyZW50KSkpIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgZWxlbWVudCA6cGFyZW50 IHBhcmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQgZWxlbWVudCkpIChsZXQgKChlbGVtLWVu ZCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSkgKHR5cGUgKG9yZy1lbGVtZW50 LXR5cGUgZWxlbWVudCkpKSAoY29uZCAoKGFuZCAoPD0gZWxlbS1lbmQgcG9zKSAoLz0gKHBvaW50 LW1heCkgZWxlbS1lbmQpKSAoZ290by1jaGFyIGVsZW0tZW5kKSkgKChub3QgKG1lbXEgdHlwZSBv cmctZWxlbWVudC1ncmVhdGVyLWVsZW1lbnRzKSkgKHRocm93IChxdW90ZSBleGl0KSBlbGVtZW50 KSkgKChsZXQgKChjYmVnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6Y29udGVudHMtYmVnaW4gZWxl bWVudCkpIChjZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6Y29udGVudHMtZW5kIGVsZW1lbnQp KSkgKGlmIChvciBzeW5jcCAoYW5kIGNiZWcgY2VuZCAuLi4gLi4uKSkgKHByb2duIChnb3RvLWNo YXIgLi4uKSAoc2V0cSBuZXh0IG5pbCBzcGVjaWFsLWZsYWcgLi4uIHBhcmVudCBlbGVtZW50IGVu ZCBjZW5kKSkpKSkgKHQgKHRocm93IChxdW90ZSBleGl0KSBlbGVtZW50KSkpKSAoc2V0cSBlbGVt ZW50IG5pbCkpCiAgKGxldCAoKGVuZCAob3IgKG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxl bWVudCkgKHNhdmUtZXhjdXJzaW9uIChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2 ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgLi4uKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxp bmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAuLi4pKSAob3V0bGluZS1uZXh0LWhl YWRpbmcpKSAocG9pbnQpKSkpIChwYXJlbnQgZWxlbWVudCkgc3BlY2lhbC1mbGFnKSAod2hpbGUg dCAoaWYgc3luY3AgKHByb2duIChjb25kICgoPSAocG9pbnQpIHBvcykgKHRocm93IChxdW90ZSBl eGl0KSBwYXJlbnQpKSAoKG9yZy1lbGVtZW50LS1jYWNoZS1pbnRlcnJ1cHQtcCB0aW1lLWxpbWl0 KSAodGhyb3cgKHF1b3RlIGludGVycnVwdCkgbmlsKSkpKSkgKGlmIGVsZW1lbnQgbmlsIChzZXRx IGVsZW1lbnQgKG9yZy1lbGVtZW50LS1jdXJyZW50LWVsZW1lbnQgZW5kIChxdW90ZSBlbGVtZW50 KSBzcGVjaWFsLWZsYWcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpzdHJ1Y3R1cmUgcGFyZW50KSkp IChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgZWxlbWVudCA6cGFyZW50IHBhcmVudCkgKG9yZy1l bGVtZW50LS1jYWNoZS1wdXQgZWxlbWVudCkpIChsZXQgKChlbGVtLWVuZCAob3JnLWVsZW1lbnQt cHJvcGVydHkgOmVuZCBlbGVtZW50KSkgKHR5cGUgKG9yZy1lbGVtZW50LXR5cGUgZWxlbWVudCkp KSAoY29uZCAoKGFuZCAoPD0gZWxlbS1lbmQgcG9zKSAoLz0gKHBvaW50LW1heCkgZWxlbS1lbmQp KSAoZ290by1jaGFyIGVsZW0tZW5kKSkgKChub3QgKG1lbXEgdHlwZSBvcmctZWxlbWVudC1ncmVh dGVyLWVsZW1lbnRzKSkgKHRocm93IChxdW90ZSBleGl0KSBlbGVtZW50KSkgKChsZXQgKChjYmVn IC4uLikgKGNlbmQgLi4uKSkgKGlmIChvciBzeW5jcCAuLi4pIChwcm9nbiAuLi4gLi4uKSkpKSAo dCAodGhyb3cgKHF1b3RlIGV4aXQpIGVsZW1lbnQpKSkpIChzZXRxIGVsZW1lbnQgbmlsKSkpCiAg KGxldCogKChjYWNoZWQgKGFuZCAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAob3JnLWVs ZW1lbnQtLWNhY2hlLWZpbmQgcG9zIG5pbCkpKSAoYmVnaW4gKG9yZy1lbGVtZW50LXByb3BlcnR5 IDpiZWdpbiBjYWNoZWQpKSBlbGVtZW50IG5leHQpIChjb25kICgobm90IGNhY2hlZCkgKGlmIChs ZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdl eHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmct b3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1v dXRsaW5lLXJlZ2V4cCkpKSAob3V0bGluZS1wcmV2aW91cy1oZWFkaW5nKSkgKHByb2duIChmb3J3 YXJkLWxpbmUpKSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxp bmUpKSAoKD0gcG9zIGJlZ2luKSAodGhyb3cgKHF1b3RlIGV4aXQpIChpZiBzeW5jcCAob3JnLWVs ZW1lbnQtcHJvcGVydHkgOnBhcmVudCBjYWNoZWQpIGNhY2hlZCkpKSAoKHJlLXNlYXJjaC1iYWNr d2FyZCAobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxp bmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdl eHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJe IiBvcmctb3V0bGluZS1yZWdleHApKSkgb3JnLW91dGxpbmUtcmVnZXhwLWJvbCkgYmVnaW4gdCkg KGZvcndhcmQtbGluZSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9m LWxpbmUpKSAodCAobGV0ICgodXAgY2FjaGVkKSAocG9zIChpZiAoPSAuLi4gcG9zKSAoMS0gcG9z KSBwb3MpKSkgKGdvdG8tY2hhciAob3IgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpjb250ZW50cy1i ZWdpbiBjYWNoZWQpIGJlZ2luKSkgKHdoaWxlIChsZXQgKChlbmQgLi4uKSkgKGFuZCAoPD0gZW5k IHBvcykgKGdvdG8tY2hhciBlbmQpIChzZXRxIHVwIC4uLikpKSkgKGNvbmQgKChub3QgdXApKSAo KGVvYnApIChzZXRxIGVsZW1lbnQgdXApKSAodCAoc2V0cSBlbGVtZW50IHVwIG5leHQgKHBvaW50 KSkpKSkpKSAobGV0ICgoZW5kIChvciAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50 KSAoc2F2ZS1leGN1cnNpb24gKGxldCogKC4uLiAuLi4gLi4uIC4uLikgKG91dGxpbmUtbmV4dC1o ZWFkaW5nKSkgKHBvaW50KSkpKSAocGFyZW50IGVsZW1lbnQpIHNwZWNpYWwtZmxhZykgKHdoaWxl IHQgKGlmIHN5bmNwIChwcm9nbiAoY29uZCAoKD0gLi4uIHBvcykgKHRocm93IC4uLiBwYXJlbnQp KSAoKG9yZy1lbGVtZW50LS1jYWNoZS1pbnRlcnJ1cHQtcCB0aW1lLWxpbWl0KSAodGhyb3cgLi4u IG5pbCkpKSkpIChpZiBlbGVtZW50IG5pbCAoc2V0cSBlbGVtZW50IChvcmctZWxlbWVudC0tY3Vy cmVudC1lbGVtZW50IGVuZCAocXVvdGUgZWxlbWVudCkgc3BlY2lhbC1mbGFnIChvcmctZWxlbWVu dC1wcm9wZXJ0eSA6c3RydWN0dXJlIHBhcmVudCkpKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5 IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQpIChvcmctZWxlbWVudC0tY2FjaGUtcHV0IGVsZW1lbnQp KSAobGV0ICgoZWxlbS1lbmQgKG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkpICh0 eXBlIChvcmctZWxlbWVudC10eXBlIGVsZW1lbnQpKSkgKGNvbmQgKChhbmQgKDw9IGVsZW0tZW5k IHBvcykgKC89IC4uLiBlbGVtLWVuZCkpIChnb3RvLWNoYXIgZWxlbS1lbmQpKSAoKG5vdCAobWVt cSB0eXBlIG9yZy1lbGVtZW50LWdyZWF0ZXItZWxlbWVudHMpKSAodGhyb3cgKHF1b3RlIGV4aXQp IGVsZW1lbnQpKSAoKGxldCAoLi4uIC4uLikgKGlmIC4uLiAuLi4pKSkgKHQgKHRocm93IChxdW90 ZSBleGl0KSBlbGVtZW50KSkpKSAoc2V0cSBlbGVtZW50IG5pbCkpKSkKICAoc2F2ZS1yZXN0cmlj dGlvbiAod2lkZW4pIChnb3RvLWNoYXIgcG9zKSAobGV0KiAoKGNhY2hlZCAoYW5kIChvcmctZWxl bWVudC0tY2FjaGUtYWN0aXZlLXApIChvcmctZWxlbWVudC0tY2FjaGUtZmluZCBwb3MgbmlsKSkp IChiZWdpbiAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmJlZ2luIGNhY2hlZCkpIGVsZW1lbnQgbmV4 dCkgKGNvbmQgKChub3QgY2FjaGVkKSAoaWYgKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRl ZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAuLi4pIChvdXRsaW5lLXJlZ2V4cCBvcmct b3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIC4uLikpIChvdXRsaW5lLXBy ZXZpb3VzLWhlYWRpbmcpKSAocHJvZ24gKGZvcndhcmQtbGluZSkpKSAoc2tpcC1jaGFycy1mb3J3 YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkpICgoPSBwb3MgYmVnaW4pICh0aHJvdyAo cXVvdGUgZXhpdCkgKGlmIHN5bmNwIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGFyZW50IGNhY2hl ZCkgY2FjaGVkKSkpICgocmUtc2VhcmNoLWJhY2t3YXJkIChsZXQqICgob3JnLWNhbGxlZC13aXRo LWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgLi4uKSAob3V0bGluZS1yZWdl eHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAuLi4pKSBvcmct b3V0bGluZS1yZWdleHAtYm9sKSBiZWdpbiB0KSAoZm9yd2FyZC1saW5lKSAoc2tpcC1jaGFycy1m b3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkpICh0IChsZXQgKCh1cCBjYWNoZWQp IChwb3MgKGlmIC4uLiAuLi4gcG9zKSkpIChnb3RvLWNoYXIgKG9yIChvcmctZWxlbWVudC1wcm9w ZXJ0eSA6Y29udGVudHMtYmVnaW4gY2FjaGVkKSBiZWdpbikpICh3aGlsZSAobGV0ICguLi4pIChh bmQgLi4uIC4uLiAuLi4pKSkgKGNvbmQgKChub3QgdXApKSAoKGVvYnApIChzZXRxIGVsZW1lbnQg dXApKSAodCAoc2V0cSBlbGVtZW50IHVwIG5leHQgLi4uKSkpKSkpIChsZXQgKChlbmQgKG9yIChv cmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQpIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAu Li4gLi4uKSAocG9pbnQpKSkpIChwYXJlbnQgZWxlbWVudCkgc3BlY2lhbC1mbGFnKSAod2hpbGUg dCAoaWYgc3luY3AgKHByb2duIChjb25kICguLi4gLi4uKSAoLi4uIC4uLikpKSkgKGlmIGVsZW1l bnQgbmlsIChzZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50LS1jdXJyZW50LWVsZW1lbnQgZW5kIChx dW90ZSBlbGVtZW50KSBzcGVjaWFsLWZsYWcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpzdHJ1Y3R1 cmUgcGFyZW50KSkpIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgZWxlbWVudCA6cGFyZW50IHBh cmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQgZWxlbWVudCkpIChsZXQgKChlbGVtLWVuZCAo b3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSkgKHR5cGUgKG9yZy1lbGVtZW50LXR5 cGUgZWxlbWVudCkpKSAoY29uZCAoKGFuZCAuLi4gLi4uKSAoZ290by1jaGFyIGVsZW0tZW5kKSkg KChub3QgLi4uKSAodGhyb3cgLi4uIGVsZW1lbnQpKSAoKGxldCAuLi4gLi4uKSkgKHQgKHRocm93 IC4uLiBlbGVtZW50KSkpKSAoc2V0cSBlbGVtZW50IG5pbCkpKSkpCiAgKHNhdmUtZXhjdXJzaW9u IChzYXZlLXJlc3RyaWN0aW9uICh3aWRlbikgKGdvdG8tY2hhciBwb3MpIChsZXQqICgoY2FjaGVk IChhbmQgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKG9yZy1lbGVtZW50LS1jYWNoZS1m aW5kIHBvcyBuaWwpKSkgKGJlZ2luIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6YmVnaW4gY2FjaGVk KSkgZWxlbWVudCBuZXh0KSAoY29uZCAoKG5vdCBjYWNoZWQpIChpZiAobGV0KiAoLi4uIC4uLiAu Li4gLi4uKSAob3V0bGluZS1wcmV2aW91cy1oZWFkaW5nKSkgKHByb2duIChmb3J3YXJkLWxpbmUp KSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAoKD0g cG9zIGJlZ2luKSAodGhyb3cgKHF1b3RlIGV4aXQpIChpZiBzeW5jcCAob3JnLWVsZW1lbnQtcHJv cGVydHkgOnBhcmVudCBjYWNoZWQpIGNhY2hlZCkpKSAoKHJlLXNlYXJjaC1iYWNrd2FyZCAobGV0 KiAoLi4uIC4uLiAuLi4gLi4uKSBvcmctb3V0bGluZS1yZWdleHAtYm9sKSBiZWdpbiB0KSAoZm9y d2FyZC1saW5lKSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGlu ZSkpICh0IChsZXQgKCh1cCBjYWNoZWQpIChwb3MgLi4uKSkgKGdvdG8tY2hhciAob3IgLi4uIGJl Z2luKSkgKHdoaWxlIChsZXQgLi4uIC4uLikpIChjb25kICguLi4pICguLi4gLi4uKSAodCAuLi4p KSkpKSAobGV0ICgoZW5kIChvciAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSAo c2F2ZS1leGN1cnNpb24gLi4uIC4uLikpKSAocGFyZW50IGVsZW1lbnQpIHNwZWNpYWwtZmxhZykg KHdoaWxlIHQgKGlmIHN5bmNwIChwcm9nbiAoY29uZCAuLi4gLi4uKSkpIChpZiBlbGVtZW50IG5p bCAoc2V0cSBlbGVtZW50IChvcmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50IGVuZCAuLi4gc3Bl Y2lhbC1mbGFnIC4uLikpIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgZWxlbWVudCA6cGFyZW50 IHBhcmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQgZWxlbWVudCkpIChsZXQgKChlbGVtLWVu ZCAuLi4pICh0eXBlIC4uLikpIChjb25kICguLi4gLi4uKSAoLi4uIC4uLikgKC4uLikgKHQgLi4u KSkpIChzZXRxIGVsZW1lbnQgbmlsKSkpKSkpCiAgKGNhdGNoIChxdW90ZSBleGl0KSAoc2F2ZS1l eGN1cnNpb24gKHNhdmUtcmVzdHJpY3Rpb24gKHdpZGVuKSAoZ290by1jaGFyIHBvcykgKGxldCog KChjYWNoZWQgKGFuZCAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAob3JnLWVsZW1lbnQt LWNhY2hlLWZpbmQgcG9zIG5pbCkpKSAoYmVnaW4gKG9yZy1lbGVtZW50LXByb3BlcnR5IDpiZWdp biBjYWNoZWQpKSBlbGVtZW50IG5leHQpIChjb25kICgobm90IGNhY2hlZCkgKGlmIChsZXQqIC4u LiAuLi4pIChwcm9nbiAuLi4pKSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5p bmctb2YtbGluZSkpICgoPSBwb3MgYmVnaW4pICh0aHJvdyAocXVvdGUgZXhpdCkgKGlmIHN5bmNw IC4uLiBjYWNoZWQpKSkgKChyZS1zZWFyY2gtYmFja3dhcmQgKGxldCogLi4uIG9yZy1vdXRsaW5l LXJlZ2V4cC1ib2wpIGJlZ2luIHQpIChmb3J3YXJkLWxpbmUpIChza2lwLWNoYXJzLWZvcndhcmQg IiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkgKHQgKGxldCAoLi4uIC4uLikgKGdvdG8tY2hh ciAuLi4pICh3aGlsZSAuLi4pIChjb25kIC4uLiAuLi4gLi4uKSkpKSAobGV0ICgoZW5kIChvciAu Li4gLi4uKSkgKHBhcmVudCBlbGVtZW50KSBzcGVjaWFsLWZsYWcpICh3aGlsZSB0IChpZiBzeW5j cCAocHJvZ24gLi4uKSkgKGlmIGVsZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQgLi4uKSAob3JnLWVs ZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQpIChvcmctZWxlbWVudC0t Y2FjaGUtcHV0IGVsZW1lbnQpKSAobGV0ICguLi4gLi4uKSAoY29uZCAuLi4gLi4uIC4uLiAuLi4p KSAoc2V0cSBlbGVtZW50IG5pbCkpKSkpKSkKICBvcmctZWxlbWVudC0tcGFyc2UtdG8oMjU3Mjgw KQogIChjb25kICgoYm9icCkgbmlsKSAoKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1s ZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVn ZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJl Z2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChvcmctYXQtaGVhZGlu Zy1wKSkgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFyc2VyIChw b2ludC1tYXgpIHQpKSAodCAoaWYgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKHByb2du IChpZiAobm90IG9yZy1lbGVtZW50LS1jYWNoZSkgKG9yZy1lbGVtZW50LWNhY2hlLXJlc2V0KSAo b3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMgKGN1cnJlbnQtYnVmZmVyKSBvcmlnaW4pKSkpIChvcmct ZWxlbWVudC0tcGFyc2UtdG8gb3JpZ2luKSkpCiAgKGxldCAoKG9yaWdpbiAocG9pbnQpKSkgKGVu ZC1vZi1saW5lKSAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIA0JXG4iKSAoY29uZCAoKGJvYnApIG5p bCkgKChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGlu ZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4 cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4i IG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3JnLWF0LWhlYWRpbmctcCkpIChiZWdpbm5pbmctb2Yt bGluZSkgKG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNlciAocG9pbnQtbWF4KSB0KSkgKHQgKGlm IChvcmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChwcm9nbiAoaWYgKG5vdCBvcmctZWxlbWVu dC0tY2FjaGUpIChvcmctZWxlbWVudC1jYWNoZS1yZXNldCkgKG9yZy1lbGVtZW50LS1jYWNoZS1z eW5jIChjdXJyZW50LWJ1ZmZlcikgb3JpZ2luKSkpKSAob3JnLWVsZW1lbnQtLXBhcnNlLXRvIG9y aWdpbikpKSkKICAoc2F2ZS1yZXN0cmljdGlvbiAod2lkZW4pIChsZXQgKChvcmlnaW4gKHBvaW50 KSkpIChlbmQtb2YtbGluZSkgKHNraXAtY2hhcnMtYmFja3dhcmQgIiANCVxuIikgKGNvbmQgKChi b2JwKSBuaWwpICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3Jn LW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGlu ZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29u Y2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgKG9yZy1hdC1oZWFkaW5nLXApKSAoYmVnaW5u aW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIgKHBvaW50LW1heCkgdCkp ICh0IChpZiAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAocHJvZ24gKGlmIChub3Qgb3Jn LWVsZW1lbnQtLWNhY2hlKSAob3JnLWVsZW1lbnQtY2FjaGUtcmVzZXQpIChvcmctZWxlbWVudC0t Y2FjaGUtc3luYyAuLi4gb3JpZ2luKSkpKSAob3JnLWVsZW1lbnQtLXBhcnNlLXRvIG9yaWdpbikp KSkpCiAgKHNhdmUtZXhjdXJzaW9uIChzYXZlLXJlc3RyaWN0aW9uICh3aWRlbikgKGxldCAoKG9y aWdpbiAocG9pbnQpKSkgKGVuZC1vZi1saW5lKSAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIA0JXG4i KSAoY29uZCAoKGJvYnApIG5pbCkgKChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2 ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgLi4uKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxp bmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAuLi4pKSAob3JnLWF0LWhlYWRpbmct cCkpIChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNlciAocG9p bnQtbWF4KSB0KSkgKHQgKGlmIChvcmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChwcm9nbiAo aWYgLi4uIC4uLiAuLi4pKSkgKG9yZy1lbGVtZW50LS1wYXJzZS10byBvcmlnaW4pKSkpKSkKICBv cmctZWxlbWVudC1hdC1wb2ludCgpCiAgKGxldCAoKGRyYXdlciAob3JnLWVsZW1lbnQtYXQtcG9p bnQpKSkgKGlmIChhbmQgKGVxIChvcmctZWxlbWVudC10eXBlIGRyYXdlcikgKHF1b3RlIHByb3Bl cnR5LWRyYXdlcikpIChsZXQgKChwIGRyYXdlcikpICh3aGlsZSAoYW5kIChzZXRxIHAgKG9yZy1l bGVtZW50LXByb3BlcnR5IDpwYXJlbnQgcCkpIChub3QgKGVxIC4uLiAuLi4pKSkpIChub3QgcCkp KSAocHJvZ24gKGxldCAoKGVuZCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmNvbnRlbnRzLWVuZCBk cmF3ZXIpKSkgKGlmIGVuZCAocHJvZ24gKGZvcndhcmQtbGluZSkgKHdoaWxlICg8IC4uLiBlbmQp IChpZiAuLi4gLi4uKSAoZm9yd2FyZC1saW5lKSkpKSkpKSkKICAod2hpbGUgKGFuZCAobnVsbCBw bGlzdCkgKHJlLXNlYXJjaC1mb3J3YXJkIG9yZy1wcm9wZXJ0eS1zdGFydC1yZSBlbmQgdCkpIChs ZXQgKChkcmF3ZXIgKG9yZy1lbGVtZW50LWF0LXBvaW50KSkpIChpZiAoYW5kIChlcSAob3JnLWVs ZW1lbnQtdHlwZSBkcmF3ZXIpIChxdW90ZSBwcm9wZXJ0eS1kcmF3ZXIpKSAobGV0ICgocCBkcmF3 ZXIpKSAod2hpbGUgKGFuZCAoc2V0cSBwIC4uLikgKG5vdCAuLi4pKSkgKG5vdCBwKSkpIChwcm9n biAobGV0ICgoZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6Y29udGVudHMtZW5kIGRyYXdlcikp KSAoaWYgZW5kIChwcm9nbiAoZm9yd2FyZC1saW5lKSAod2hpbGUgLi4uIC4uLiAuLi4pKSkpKSkp KQogIChzYXZlLWV4Y3Vyc2lvbiAod2hpbGUgKGFuZCAobnVsbCBwbGlzdCkgKHJlLXNlYXJjaC1m b3J3YXJkIG9yZy1wcm9wZXJ0eS1zdGFydC1yZSBlbmQgdCkpIChsZXQgKChkcmF3ZXIgKG9yZy1l bGVtZW50LWF0LXBvaW50KSkpIChpZiAoYW5kIChlcSAob3JnLWVsZW1lbnQtdHlwZSBkcmF3ZXIp IChxdW90ZSBwcm9wZXJ0eS1kcmF3ZXIpKSAobGV0ICgocCBkcmF3ZXIpKSAod2hpbGUgKGFuZCAu Li4gLi4uKSkgKG5vdCBwKSkpIChwcm9nbiAobGV0ICgoZW5kIC4uLikpIChpZiBlbmQgKHByb2du IC4uLiAuLi4pKSkpKSkpIHBsaXN0KQogIChsZXQgKChlbmQgKHNhdmUtZXhjdXJzaW9uIChsZXQq ICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAg KG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0 bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRs aW5lLXJlZ2V4cCkpKSAob3V0bGluZS1uZXh0LWhlYWRpbmcpKSAocG9pbnQpKSkgcGxpc3QpIChz YXZlLWV4Y3Vyc2lvbiAod2hpbGUgKGFuZCAobnVsbCBwbGlzdCkgKHJlLXNlYXJjaC1mb3J3YXJk IG9yZy1wcm9wZXJ0eS1zdGFydC1yZSBlbmQgdCkpIChsZXQgKChkcmF3ZXIgKG9yZy1lbGVtZW50 LWF0LXBvaW50KSkpIChpZiAoYW5kIChlcSAob3JnLWVsZW1lbnQtdHlwZSBkcmF3ZXIpIChxdW90 ZSBwcm9wZXJ0eS1kcmF3ZXIpKSAobGV0ICguLi4pICh3aGlsZSAuLi4pIChub3QgcCkpKSAocHJv Z24gKGxldCAoLi4uKSAoaWYgZW5kIC4uLikpKSkpKSBwbGlzdCkpCiAgKGxldCogKChjb21wb25l bnRzIChvcmctaGVhZGluZy1jb21wb25lbnRzKSkgKGxldmVsIChudGggMSBjb21wb25lbnRzKSkg KHRvZG8gKG50aCAyIGNvbXBvbmVudHMpKSAodG9kby10eXBlIChhbmQgdG9kbyAoaWYgKG1lbWJl ciB0b2RvIG9yZy1kb25lLWtleXdvcmRzKSAocXVvdGUgZG9uZSkgKHF1b3RlIHRvZG8pKSkpICh0 YWdzIChsZXQgKChyYXctdGFncyAobnRoIDUgY29tcG9uZW50cykpKSAoYW5kIHJhdy10YWdzIChv cmctc3BsaXQtc3RyaW5nIHJhdy10YWdzICI6IikpKSkgKHJhdy12YWx1ZSAob3IgKG50aCA0IGNv bXBvbmVudHMpICIiKSkgKGNvbW1lbnRlZHAgKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggbmlsKSkg KHN0cmluZy1tYXRjaCAoZm9ybWF0ICJeJXNcXCggXFx8JFxcKSIgb3JnLWNvbW1lbnQtc3RyaW5n KSByYXctdmFsdWUpKSkgKGFyY2hpdmVkcCAobWVtYmVyIG9yZy1hcmNoaXZlLXRhZyB0YWdzKSkg KGZvb3Rub3RlLXNlY3Rpb24tcCAoYW5kIG9yZy1mb290bm90ZS1zZWN0aW9uIChzdHJpbmc9IG9y Zy1mb290bm90ZS1zZWN0aW9uIHJhdy12YWx1ZSkpKSAoc3RhbmRhcmQtcHJvcHMgKGxldCAoKGVu ZCAoc2F2ZS1leGN1cnNpb24gKGxldCogLi4uIC4uLikgKHBvaW50KSkpIHBsaXN0KSAoc2F2ZS1l eGN1cnNpb24gKHdoaWxlIChhbmQgKG51bGwgcGxpc3QpIChyZS1zZWFyY2gtZm9yd2FyZCBvcmct cHJvcGVydHktc3RhcnQtcmUgZW5kIHQpKSAobGV0ICguLi4pIChpZiAuLi4gLi4uKSkpIHBsaXN0 KSkpICh0aW1lLXByb3BzIChzYXZlLWV4Y3Vyc2lvbiAoZm9yd2FyZC1saW5lKSAoaWYgKGxvb2tp bmctYXQgb3JnLXBsYW5uaW5nLW9yLWNsb2NrLWxpbmUtcmUpIChwcm9nbiAobGV0ICguLi4gcGxp c3QpICh3aGlsZSAuLi4gLi4uIC4uLiAuLi4pIHBsaXN0KSkpKSkgKGJlZ2luIChwb2ludCkpIChl bmQgKG1pbiAoc2F2ZS1leGN1cnNpb24gKG9yZy1lbmQtb2Ytc3VidHJlZSB0IHQpKSBsaW1pdCkp IChwb3MtYWZ0ZXItaGVhZCAocHJvZ24gKGZvcndhcmQtbGluZSkgKHBvaW50KSkpIChjb250ZW50 cy1iZWdpbiAoc2F2ZS1leGN1cnNpb24gKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iIGVuZCkg KGFuZCAoLz0gKHBvaW50KSBlbmQpIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpKSkgKGNvbnRl bnRzLWVuZCAoYW5kIGNvbnRlbnRzLWJlZ2luIChwcm9nbiAoZ290by1jaGFyIGVuZCkgKHNraXAt Y2hhcnMtYmFja3dhcmQgIiANCVxuIikgKGZvcndhcmQtbGluZSkgKHBvaW50KSkpKSkgKGlmIGNv bW1lbnRlZHAgKHByb2duIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIG5pbCkpIChzZXRxIHJhdy12 YWx1ZSAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nIChjb25jYXQgKHJlZ2V4cC1xdW90ZSBvcmct Y29tbWVudC1zdHJpbmcpICJcXCg/OiBcXHwkXFwpIikgIiIgcmF3LXZhbHVlKSkpKSkgKGlmIGFy Y2hpdmVkcCAocHJvZ24gKHNldHEgdGFncyAoZGVsZXRlIG9yZy1hcmNoaXZlLXRhZyB0YWdzKSkp KSAobGV0ICgoaGVhZGxpbmUgKGxpc3QgKHF1b3RlIGhlYWRsaW5lKSAobmNvbmMgKGxpc3QgOnJh dy12YWx1ZSByYXctdmFsdWUgOmJlZ2luIGJlZ2luIDplbmQgZW5kIDpwcmUtYmxhbmsgKGlmIC4u LiAwIC4uLikgOmNvbnRlbnRzLWJlZ2luIGNvbnRlbnRzLWJlZ2luIDpjb250ZW50cy1lbmQgY29u dGVudHMtZW5kIDpsZXZlbCBsZXZlbCA6cHJpb3JpdHkgKG50aCAzIGNvbXBvbmVudHMpIDp0YWdz IHRhZ3MgOnRvZG8ta2V5d29yZCB0b2RvIDp0b2RvLXR5cGUgdG9kby10eXBlIDpwb3N0LWJsYW5r IChjb3VudC1saW5lcyAuLi4gZW5kKSA6Zm9vdG5vdGUtc2VjdGlvbi1wIGZvb3Rub3RlLXNlY3Rp b24tcCA6YXJjaGl2ZWRwIGFyY2hpdmVkcCA6Y29tbWVudGVkcCBjb21tZW50ZWRwKSB0aW1lLXBy b3BzIHN0YW5kYXJkLXByb3BzKSkpKSAobGV0ICgoYWx0LXRpdGxlIChvcmctZWxlbWVudC1wcm9w ZXJ0eSA6QUxUX1RJVExFIGhlYWRsaW5lKSkpIChpZiBhbHQtdGl0bGUgKHByb2duIChvcmctZWxl bWVudC1wdXQtcHJvcGVydHkgaGVhZGxpbmUgOmFsdC10aXRsZSAoaWYgcmF3LXNlY29uZGFyeS1w IGFsdC10aXRsZSAob3JnLWVsZW1lbnQtcGFyc2Utc2Vjb25kYXJ5LXN0cmluZyBhbHQtdGl0bGUg Li4uIGhlYWRsaW5lKSkpKSkpIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgaGVhZGxpbmUgOnRp dGxlIChpZiByYXctc2Vjb25kYXJ5LXAgcmF3LXZhbHVlIChvcmctZWxlbWVudC1wYXJzZS1zZWNv bmRhcnktc3RyaW5nIHJhdy12YWx1ZSAob3JnLWVsZW1lbnQtcmVzdHJpY3Rpb24gKHF1b3RlIGhl YWRsaW5lKSkgaGVhZGxpbmUpKSkpKQogIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAoKGNvbXBvbmVu dHMgKG9yZy1oZWFkaW5nLWNvbXBvbmVudHMpKSAobGV2ZWwgKG50aCAxIGNvbXBvbmVudHMpKSAo dG9kbyAobnRoIDIgY29tcG9uZW50cykpICh0b2RvLXR5cGUgKGFuZCB0b2RvIChpZiAobWVtYmVy IHRvZG8gb3JnLWRvbmUta2V5d29yZHMpIChxdW90ZSBkb25lKSAocXVvdGUgdG9kbykpKSkgKHRh Z3MgKGxldCAoKHJhdy10YWdzIChudGggNSBjb21wb25lbnRzKSkpIChhbmQgcmF3LXRhZ3MgKG9y Zy1zcGxpdC1zdHJpbmcgcmF3LXRhZ3MgIjoiKSkpKSAocmF3LXZhbHVlIChvciAobnRoIDQgY29t cG9uZW50cykgIiIpKSAoY29tbWVudGVkcCAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCBuaWwpKSAo c3RyaW5nLW1hdGNoIChmb3JtYXQgIl4lc1xcKCBcXHwkXFwpIiBvcmctY29tbWVudC1zdHJpbmcp IHJhdy12YWx1ZSkpKSAoYXJjaGl2ZWRwIChtZW1iZXIgb3JnLWFyY2hpdmUtdGFnIHRhZ3MpKSAo Zm9vdG5vdGUtc2VjdGlvbi1wIChhbmQgb3JnLWZvb3Rub3RlLXNlY3Rpb24gKHN0cmluZz0gb3Jn LWZvb3Rub3RlLXNlY3Rpb24gcmF3LXZhbHVlKSkpIChzdGFuZGFyZC1wcm9wcyAobGV0ICgoZW5k IChzYXZlLWV4Y3Vyc2lvbiAuLi4gLi4uKSkgcGxpc3QpIChzYXZlLWV4Y3Vyc2lvbiAod2hpbGUg KGFuZCAuLi4gLi4uKSAobGV0IC4uLiAuLi4pKSBwbGlzdCkpKSAodGltZS1wcm9wcyAoc2F2ZS1l eGN1cnNpb24gKGZvcndhcmQtbGluZSkgKGlmIChsb29raW5nLWF0IG9yZy1wbGFubmluZy1vci1j bG9jay1saW5lLXJlKSAocHJvZ24gKGxldCAuLi4gLi4uIHBsaXN0KSkpKSkgKGJlZ2luIChwb2lu dCkpIChlbmQgKG1pbiAoc2F2ZS1leGN1cnNpb24gKG9yZy1lbmQtb2Ytc3VidHJlZSB0IHQpKSBs aW1pdCkpIChwb3MtYWZ0ZXItaGVhZCAocHJvZ24gKGZvcndhcmQtbGluZSkgKHBvaW50KSkpIChj b250ZW50cy1iZWdpbiAoc2F2ZS1leGN1cnNpb24gKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4i IGVuZCkgKGFuZCAoLz0gKHBvaW50KSBlbmQpIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpKSkg KGNvbnRlbnRzLWVuZCAoYW5kIGNvbnRlbnRzLWJlZ2luIChwcm9nbiAoZ290by1jaGFyIGVuZCkg KHNraXAtY2hhcnMtYmFja3dhcmQgIiANCVxuIikgKGZvcndhcmQtbGluZSkgKHBvaW50KSkpKSkg KGlmIGNvbW1lbnRlZHAgKHByb2duIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIG5pbCkpIChzZXRx IHJhdy12YWx1ZSAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nIChjb25jYXQgLi4uICJcXCg/OiBc XHwkXFwpIikgIiIgcmF3LXZhbHVlKSkpKSkgKGlmIGFyY2hpdmVkcCAocHJvZ24gKHNldHEgdGFn cyAoZGVsZXRlIG9yZy1hcmNoaXZlLXRhZyB0YWdzKSkpKSAobGV0ICgoaGVhZGxpbmUgKGxpc3Qg KHF1b3RlIGhlYWRsaW5lKSAobmNvbmMgKGxpc3QgOnJhdy12YWx1ZSByYXctdmFsdWUgOmJlZ2lu IGJlZ2luIDplbmQgZW5kIDpwcmUtYmxhbmsgLi4uIDpjb250ZW50cy1iZWdpbiBjb250ZW50cy1i ZWdpbiA6Y29udGVudHMtZW5kIGNvbnRlbnRzLWVuZCA6bGV2ZWwgbGV2ZWwgOnByaW9yaXR5IC4u LiA6dGFncyB0YWdzIDp0b2RvLWtleXdvcmQgdG9kbyA6dG9kby10eXBlIHRvZG8tdHlwZSA6cG9z dC1ibGFuayAuLi4gOmZvb3Rub3RlLXNlY3Rpb24tcCBmb290bm90ZS1zZWN0aW9uLXAgOmFyY2hp dmVkcCBhcmNoaXZlZHAgOmNvbW1lbnRlZHAgY29tbWVudGVkcCkgdGltZS1wcm9wcyBzdGFuZGFy ZC1wcm9wcykpKSkgKGxldCAoKGFsdC10aXRsZSAob3JnLWVsZW1lbnQtcHJvcGVydHkgOkFMVF9U SVRMRSBoZWFkbGluZSkpKSAoaWYgYWx0LXRpdGxlIChwcm9nbiAob3JnLWVsZW1lbnQtcHV0LXBy b3BlcnR5IGhlYWRsaW5lIDphbHQtdGl0bGUgKGlmIHJhdy1zZWNvbmRhcnktcCBhbHQtdGl0bGUg Li4uKSkpKSkgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBoZWFkbGluZSA6dGl0bGUgKGlmIHJh dy1zZWNvbmRhcnktcCByYXctdmFsdWUgKG9yZy1lbGVtZW50LXBhcnNlLXNlY29uZGFyeS1zdHJp bmcgcmF3LXZhbHVlIChvcmctZWxlbWVudC1yZXN0cmljdGlvbiAocXVvdGUgaGVhZGxpbmUpKSBo ZWFkbGluZSkpKSkpKQogIG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNlcigyNTc3MDYgdCkKICAo Y29uZCAoKGVxIHNwZWNpYWwgKHF1b3RlIGl0ZW0pKSAob3JnLWVsZW1lbnQtaXRlbS1wYXJzZXIg bGltaXQgc3RydWN0dXJlIHJhdy1zZWNvbmRhcnktcCkpICgoZXEgc3BlY2lhbCAocXVvdGUgdGFi bGUtcm93KSkgKG9yZy1lbGVtZW50LXRhYmxlLXJvdy1wYXJzZXIgbGltaXQpKSAoKGVxIHNwZWNp YWwgKHF1b3RlIG5vZGUtcHJvcGVydHkpKSAob3JnLWVsZW1lbnQtbm9kZS1wcm9wZXJ0eS1wYXJz ZXIgbGltaXQpKSAoKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9y Zy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxp bmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNv bmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChvcmctYXQtaGVhZGluZy1wKSkgKG9yZy1l bGVtZW50LWhlYWRsaW5lLXBhcnNlciBsaW1pdCByYXctc2Vjb25kYXJ5LXApKSAoKGVxIHNwZWNp YWwgKHF1b3RlIHNlY3Rpb24pKSAob3JnLWVsZW1lbnQtc2VjdGlvbi1wYXJzZXIgbGltaXQpKSAo KGVxIHNwZWNpYWwgKHF1b3RlIGZpcnN0LXNlY3Rpb24pKSAob3JnLWVsZW1lbnQtc2VjdGlvbi1w YXJzZXIgKG9yIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVk LWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIC4uLikgKG91dGxpbmUtcmVnZXhwIG9yZy1v dXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgLi4uKSkgKG91dGxpbmUtbmV4 dC1oZWFkaW5nKSkpIGxpbWl0KSkpICgobm90IChib2xwKSkgKG9yZy1lbGVtZW50LXBhcmFncmFw aC1wYXJzZXIgbGltaXQgKGxpc3QgKHBvaW50KSkpKSAoKGxvb2tpbmctYXQgb3JnLXBsYW5uaW5n LW9yLWNsb2NrLWxpbmUtcmUpIChpZiAoZXF1YWwgKG1hdGNoLXN0cmluZyAxKSBvcmctY2xvY2st c3RyaW5nKSAob3JnLWVsZW1lbnQtY2xvY2stcGFyc2VyIGxpbWl0KSAob3JnLWVsZW1lbnQtcGxh bm5pbmctcGFyc2VyIGxpbWl0KSkpICgob3JnLWF0LWhlYWRpbmctcCkgKG9yZy1lbGVtZW50LWlu bGluZXRhc2stcGFyc2VyIGxpbWl0IHJhdy1zZWNvbmRhcnktcCkpICh0IChsZXQgKChhZmZpbGlh dGVkIChvcmctZWxlbWVudC0tY29sbGVjdC1hZmZpbGlhdGVkLWtleXdvcmRzIGxpbWl0KSkpIChj b25kICgoYW5kIChjZHIgYWZmaWxpYXRlZCkgKD49IChwb2ludCkgbGltaXQpKSAoZ290by1jaGFy IChjYXIgYWZmaWxpYXRlZCkpIChvcmctZWxlbWVudC1rZXl3b3JkLXBhcnNlciBsaW1pdCBuaWwp KSAoKGxvb2tpbmctYXQgIlsgICAgIF0qXFxcXGJlZ2lue1tBLVphLXowLTkqXSt9XFwoXFxbLio/ XFxdXFx8ey4qP31cXCkqWyAgICAgXSokIikgKG9yZy1lbGVtZW50LWxhdGV4LWVudmlyb25tZW50 LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0IG9yZy1kcmF3ZXItcmVnZXhw KSAoaWYgKGVxdWFsIChtYXRjaC1zdHJpbmcgMSkgIlBST1BFUlRJRVMiKSAob3JnLWVsZW1lbnQt cHJvcGVydHktZHJhd2VyLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSAob3JnLWVsZW1lbnQtZHJh d2VyLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkpICgobG9va2luZy1hdCAiWyAgIF0qOlxcKCBc XHwkXFwpIikgKG9yZy1lbGVtZW50LWZpeGVkLXdpZHRoLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVk KSkgKChsb29raW5nLWF0ICJbICAgICBdKiMiKSAoZ290by1jaGFyIChtYXRjaC1lbmQgMCkpIChj b25kICgobG9va2luZy1hdCAiXFwoPzogXFx8JFxcKSIpIChiZWdpbm5pbmctb2YtbGluZSkgKG9y Zy1lbGVtZW50LWNvbW1lbnQtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQg IlxcK0JFR0lOX1xcKFxcUy0rXFwpIikgKGJlZ2lubmluZy1vZi1saW5lKSAobGV0IC4uLiAuLi4p KSAoKGxvb2tpbmctYXQgIlxcK0NBTEw6IikgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1l bnQtYmFiZWwtY2FsbC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiXFwr QkVHSU46PyAiKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1keW5hbWljLWJsb2Nr LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJcXCtcXFMtKzoiKSAoYmVn aW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1rZXl3b3JkLXBhcnNlciBsaW1pdCBhZmZpbGlh dGVkKSkgKHQgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQtcGFyYWdyYXBoLXBhcnNl ciBsaW1pdCBhZmZpbGlhdGVkKSkpKSAoKGxvb2tpbmctYXQgb3JnLWZvb3Rub3RlLWRlZmluaXRp b24tcmUpIChvcmctZWxlbWVudC1mb290bm90ZS1kZWZpbml0aW9uLXBhcnNlciBsaW1pdCBhZmZp bGlhdGVkKSkgKChsb29raW5nLWF0ICJbICAgXSotXFx7NSxcXH1bICAgIF0qJCIpIChvcmctZWxl bWVudC1ob3Jpem9udGFsLXJ1bGUtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmct YXQgIiUlKCIpIChvcmctZWxlbWVudC1kaWFyeS1zZXhwLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVk KSkgKChvcmctYXQtdGFibGUtcCB0KSAob3JnLWVsZW1lbnQtdGFibGUtcGFyc2VyIGxpbWl0IGFm ZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgKG9yZy1pdGVtLXJlKSkgKG9yZy1lbGVtZW50LXBsYWlu LWxpc3QtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQgKG9yIHN0cnVjdHVyZSAob3JnLWVsZW1lbnQt LWxpc3Qtc3RydWN0IGxpbWl0KSkpKSAodCAob3JnLWVsZW1lbnQtcGFyYWdyYXBoLXBhcnNlciBs aW1pdCBhZmZpbGlhdGVkKSkpKSkpCiAgKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggdCkgKHJhdy1z ZWNvbmRhcnktcCAoYW5kIGdyYW51bGFyaXR5IChub3QgKGVxIGdyYW51bGFyaXR5IChxdW90ZSBv YmplY3QpKSkpKSkgKGNvbmQgKChlcSBzcGVjaWFsIChxdW90ZSBpdGVtKSkgKG9yZy1lbGVtZW50 LWl0ZW0tcGFyc2VyIGxpbWl0IHN0cnVjdHVyZSByYXctc2Vjb25kYXJ5LXApKSAoKGVxIHNwZWNp YWwgKHF1b3RlIHRhYmxlLXJvdykpIChvcmctZWxlbWVudC10YWJsZS1yb3ctcGFyc2VyIGxpbWl0 KSkgKChlcSBzcGVjaWFsIChxdW90ZSBub2RlLXByb3BlcnR5KSkgKG9yZy1lbGVtZW50LW5vZGUt cHJvcGVydHktcGFyc2VyIGxpbWl0KSkgKChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQt bGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJl Z2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1y ZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3JnLWF0LWhlYWRp bmctcCkpIChvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIgbGltaXQgcmF3LXNlY29uZGFyeS1w KSkgKChlcSBzcGVjaWFsIChxdW90ZSBzZWN0aW9uKSkgKG9yZy1lbGVtZW50LXNlY3Rpb24tcGFy c2VyIGxpbWl0KSkgKChlcSBzcGVjaWFsIChxdW90ZSBmaXJzdC1zZWN0aW9uKSkgKG9yZy1lbGVt ZW50LXNlY3Rpb24tcGFyc2VyIChvciAoc2F2ZS1leGN1cnNpb24gKGxldCogKC4uLiAuLi4gLi4u IC4uLikgKG91dGxpbmUtbmV4dC1oZWFkaW5nKSkpIGxpbWl0KSkpICgobm90IChib2xwKSkgKG9y Zy1lbGVtZW50LXBhcmFncmFwaC1wYXJzZXIgbGltaXQgKGxpc3QgKHBvaW50KSkpKSAoKGxvb2tp bmctYXQgb3JnLXBsYW5uaW5nLW9yLWNsb2NrLWxpbmUtcmUpIChpZiAoZXF1YWwgKG1hdGNoLXN0 cmluZyAxKSBvcmctY2xvY2stc3RyaW5nKSAob3JnLWVsZW1lbnQtY2xvY2stcGFyc2VyIGxpbWl0 KSAob3JnLWVsZW1lbnQtcGxhbm5pbmctcGFyc2VyIGxpbWl0KSkpICgob3JnLWF0LWhlYWRpbmct cCkgKG9yZy1lbGVtZW50LWlubGluZXRhc2stcGFyc2VyIGxpbWl0IHJhdy1zZWNvbmRhcnktcCkp ICh0IChsZXQgKChhZmZpbGlhdGVkIChvcmctZWxlbWVudC0tY29sbGVjdC1hZmZpbGlhdGVkLWtl eXdvcmRzIGxpbWl0KSkpIChjb25kICgoYW5kIChjZHIgYWZmaWxpYXRlZCkgKD49IC4uLiBsaW1p dCkpIChnb3RvLWNoYXIgKGNhciBhZmZpbGlhdGVkKSkgKG9yZy1lbGVtZW50LWtleXdvcmQtcGFy c2VyIGxpbWl0IG5pbCkpICgobG9va2luZy1hdCAiWyAgICAgICAgXSpcXFxcYmVnaW57W0EtWmEt ejAtOSpdK31cXChcXFsuKj9cXF1cXHx7Lio/fVxcKSpbICAgICBdKiQiKSAob3JnLWVsZW1lbnQt bGF0ZXgtZW52aXJvbm1lbnQtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQg b3JnLWRyYXdlci1yZWdleHApIChpZiAoZXF1YWwgLi4uICJQUk9QRVJUSUVTIikgKG9yZy1lbGVt ZW50LXByb3BlcnR5LWRyYXdlci1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkgKG9yZy1lbGVtZW50 LWRyYXdlci1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpKSAoKGxvb2tpbmctYXQgIlsgICAgICAg IF0qOlxcKCBcXHwkXFwpIikgKG9yZy1lbGVtZW50LWZpeGVkLXdpZHRoLXBhcnNlciBsaW1pdCBh ZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJbICAgICBdKiMiKSAoZ290by1jaGFyIChtYXRjaC1l bmQgMCkpIChjb25kICguLi4gLi4uIC4uLikgKC4uLiAuLi4gLi4uKSAoLi4uIC4uLiAuLi4pICgu Li4gLi4uIC4uLikgKC4uLiAuLi4gLi4uKSAodCAuLi4gLi4uKSkpICgobG9va2luZy1hdCBvcmct Zm9vdG5vdGUtZGVmaW5pdGlvbi1yZSkgKG9yZy1lbGVtZW50LWZvb3Rub3RlLWRlZmluaXRpb24t cGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlsgICBdKi1cXHs1LFxcfVsg ICAgXSokIikgKG9yZy1lbGVtZW50LWhvcml6b250YWwtcnVsZS1wYXJzZXIgbGltaXQgYWZmaWxp YXRlZCkpICgobG9va2luZy1hdCAiJSUoIikgKG9yZy1lbGVtZW50LWRpYXJ5LXNleHAtcGFyc2Vy IGxpbWl0IGFmZmlsaWF0ZWQpKSAoKG9yZy1hdC10YWJsZS1wIHQpIChvcmctZWxlbWVudC10YWJs ZS1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAob3JnLWl0ZW0tcmUpKSAo b3JnLWVsZW1lbnQtcGxhaW4tbGlzdC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCAob3Igc3RydWN0 dXJlIC4uLikpKSAodCAob3JnLWVsZW1lbnQtcGFyYWdyYXBoLXBhcnNlciBsaW1pdCBhZmZpbGlh dGVkKSkpKSkpKQogIChzYXZlLWV4Y3Vyc2lvbiAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCB0KSAo cmF3LXNlY29uZGFyeS1wIChhbmQgZ3JhbnVsYXJpdHkgKG5vdCAoZXEgZ3JhbnVsYXJpdHkgKHF1 b3RlIG9iamVjdCkpKSkpKSAoY29uZCAoKGVxIHNwZWNpYWwgKHF1b3RlIGl0ZW0pKSAob3JnLWVs ZW1lbnQtaXRlbS1wYXJzZXIgbGltaXQgc3RydWN0dXJlIHJhdy1zZWNvbmRhcnktcCkpICgoZXEg c3BlY2lhbCAocXVvdGUgdGFibGUtcm93KSkgKG9yZy1lbGVtZW50LXRhYmxlLXJvdy1wYXJzZXIg bGltaXQpKSAoKGVxIHNwZWNpYWwgKHF1b3RlIG5vZGUtcHJvcGVydHkpKSAob3JnLWVsZW1lbnQt bm9kZS1wcm9wZXJ0eS1wYXJzZXIgbGltaXQpKSAoKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGlt aXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxp bmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRs aW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChvcmctYXQt aGVhZGluZy1wKSkgKG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNlciBsaW1pdCByYXctc2Vjb25k YXJ5LXApKSAoKGVxIHNwZWNpYWwgKHF1b3RlIHNlY3Rpb24pKSAob3JnLWVsZW1lbnQtc2VjdGlv bi1wYXJzZXIgbGltaXQpKSAoKGVxIHNwZWNpYWwgKHF1b3RlIGZpcnN0LXNlY3Rpb24pKSAob3Jn LWVsZW1lbnQtc2VjdGlvbi1wYXJzZXIgKG9yIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAuLi4gLi4u KSkgbGltaXQpKSkgKChub3QgKGJvbHApKSAob3JnLWVsZW1lbnQtcGFyYWdyYXBoLXBhcnNlciBs aW1pdCAobGlzdCAocG9pbnQpKSkpICgobG9va2luZy1hdCBvcmctcGxhbm5pbmctb3ItY2xvY2st bGluZS1yZSkgKGlmIChlcXVhbCAobWF0Y2gtc3RyaW5nIDEpIG9yZy1jbG9jay1zdHJpbmcpIChv cmctZWxlbWVudC1jbG9jay1wYXJzZXIgbGltaXQpIChvcmctZWxlbWVudC1wbGFubmluZy1wYXJz ZXIgbGltaXQpKSkgKChvcmctYXQtaGVhZGluZy1wKSAob3JnLWVsZW1lbnQtaW5saW5ldGFzay1w YXJzZXIgbGltaXQgcmF3LXNlY29uZGFyeS1wKSkgKHQgKGxldCAoKGFmZmlsaWF0ZWQgKG9yZy1l bGVtZW50LS1jb2xsZWN0LWFmZmlsaWF0ZWQta2V5d29yZHMgbGltaXQpKSkgKGNvbmQgKChhbmQg Li4uIC4uLikgKGdvdG8tY2hhciAuLi4pIChvcmctZWxlbWVudC1rZXl3b3JkLXBhcnNlciBsaW1p dCBuaWwpKSAoKGxvb2tpbmctYXQgIlsgICAgICBdKlxcXFxiZWdpbntbQS1aYS16MC05Kl0rfVxc KFxcWy4qP1xcXVxcfHsuKj99XFwpKlsgICAgIF0qJCIpIChvcmctZWxlbWVudC1sYXRleC1lbnZp cm9ubWVudC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCBvcmctZHJhd2Vy LXJlZ2V4cCkgKGlmIC4uLiAuLi4gLi4uKSkgKChsb29raW5nLWF0ICJbICAgICAgICBdKjpcXCgg XFx8JFxcKSIpIChvcmctZWxlbWVudC1maXhlZC13aWR0aC1wYXJzZXIgbGltaXQgYWZmaWxpYXRl ZCkpICgobG9va2luZy1hdCAiWyAgICAgXSojIikgKGdvdG8tY2hhciAuLi4pIChjb25kIC4uLiAu Li4gLi4uIC4uLiAuLi4gLi4uKSkgKChsb29raW5nLWF0IG9yZy1mb290bm90ZS1kZWZpbml0aW9u LXJlKSAob3JnLWVsZW1lbnQtZm9vdG5vdGUtZGVmaW5pdGlvbi1wYXJzZXIgbGltaXQgYWZmaWxp YXRlZCkpICgobG9va2luZy1hdCAiWyAgICAgICBdKi1cXHs1LFxcfVsgICAgXSokIikgKG9yZy1l bGVtZW50LWhvcml6b250YWwtcnVsZS1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2lu Zy1hdCAiJSUoIikgKG9yZy1lbGVtZW50LWRpYXJ5LXNleHAtcGFyc2VyIGxpbWl0IGFmZmlsaWF0 ZWQpKSAoKG9yZy1hdC10YWJsZS1wIHQpIChvcmctZWxlbWVudC10YWJsZS1wYXJzZXIgbGltaXQg YWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAuLi4pIChvcmctZWxlbWVudC1wbGFpbi1saXN0LXBh cnNlciBsaW1pdCBhZmZpbGlhdGVkIC4uLikpICh0IChvcmctZWxlbWVudC1wYXJhZ3JhcGgtcGFy c2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSkpKSkpKQogIG9yZy1lbGVtZW50LS1jdXJyZW50LWVsZW1l bnQoMjU3NzA2IGVsZW1lbnQgbmlsIG5pbCkKICAoc2V0cSBlbGVtZW50IChvcmctZWxlbWVudC0t Y3VycmVudC1lbGVtZW50IGVuZCAocXVvdGUgZWxlbWVudCkgc3BlY2lhbC1mbGFnIChvcmctZWxl bWVudC1wcm9wZXJ0eSA6c3RydWN0dXJlIHBhcmVudCkpKQogIChpZiBlbGVtZW50IG5pbCAoc2V0 cSBlbGVtZW50IChvcmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50IGVuZCAocXVvdGUgZWxlbWVu dCkgc3BlY2lhbC1mbGFnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6c3RydWN0dXJlIHBhcmVudCkp KSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQpIChvcmct ZWxlbWVudC0tY2FjaGUtcHV0IGVsZW1lbnQpKQogICh3aGlsZSB0IChpZiBzeW5jcCAocHJvZ24g KGNvbmQgKCg9IChwb2ludCkgcG9zKSAodGhyb3cgKHF1b3RlIGV4aXQpIHBhcmVudCkpICgob3Jn LWVsZW1lbnQtLWNhY2hlLWludGVycnVwdC1wIHRpbWUtbGltaXQpICh0aHJvdyAocXVvdGUgaW50 ZXJydXB0KSBuaWwpKSkpKSAoaWYgZWxlbWVudCBuaWwgKHNldHEgZWxlbWVudCAob3JnLWVsZW1l bnQtLWN1cnJlbnQtZWxlbWVudCBlbmQgKHF1b3RlIGVsZW1lbnQpIHNwZWNpYWwtZmxhZyAob3Jn LWVsZW1lbnQtcHJvcGVydHkgOnN0cnVjdHVyZSBwYXJlbnQpKSkgKG9yZy1lbGVtZW50LXB1dC1w cm9wZXJ0eSBlbGVtZW50IDpwYXJlbnQgcGFyZW50KSAob3JnLWVsZW1lbnQtLWNhY2hlLXB1dCBl bGVtZW50KSkgKGxldCAoKGVsZW0tZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1l bnQpKSAodHlwZSAob3JnLWVsZW1lbnQtdHlwZSBlbGVtZW50KSkpIChjb25kICgoYW5kICg8PSBl bGVtLWVuZCBwb3MpICgvPSAocG9pbnQtbWF4KSBlbGVtLWVuZCkpIChnb3RvLWNoYXIgZWxlbS1l bmQpKSAoKG5vdCAobWVtcSB0eXBlIG9yZy1lbGVtZW50LWdyZWF0ZXItZWxlbWVudHMpKSAodGhy b3cgKHF1b3RlIGV4aXQpIGVsZW1lbnQpKSAoKGxldCAoKGNiZWcgKG9yZy1lbGVtZW50LXByb3Bl cnR5IDpjb250ZW50cy1iZWdpbiBlbGVtZW50KSkgKGNlbmQgKG9yZy1lbGVtZW50LXByb3BlcnR5 IDpjb250ZW50cy1lbmQgZWxlbWVudCkpKSAoaWYgKG9yIHN5bmNwIChhbmQgY2JlZyBjZW5kIC4u LiAuLi4pKSAocHJvZ24gKGdvdG8tY2hhciAuLi4pIChzZXRxIG5leHQgbmlsIHNwZWNpYWwtZmxh ZyAuLi4gcGFyZW50IGVsZW1lbnQgZW5kIGNlbmQpKSkpKSAodCAodGhyb3cgKHF1b3RlIGV4aXQp IGVsZW1lbnQpKSkpIChzZXRxIGVsZW1lbnQgbmlsKSkKICAobGV0ICgoZW5kIChvciAob3JnLWVs ZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSAoc2F2ZS1leGN1cnNpb24gKGxldCogKChvcmct Y2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAuLi4pIChv dXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9s IC4uLikpIChvdXRsaW5lLW5leHQtaGVhZGluZykpIChwb2ludCkpKSkgKHBhcmVudCBlbGVtZW50 KSBzcGVjaWFsLWZsYWcpICh3aGlsZSB0IChpZiBzeW5jcCAocHJvZ24gKGNvbmQgKCg9IChwb2lu dCkgcG9zKSAodGhyb3cgKHF1b3RlIGV4aXQpIHBhcmVudCkpICgob3JnLWVsZW1lbnQtLWNhY2hl LWludGVycnVwdC1wIHRpbWUtbGltaXQpICh0aHJvdyAocXVvdGUgaW50ZXJydXB0KSBuaWwpKSkp KSAoaWYgZWxlbWVudCBuaWwgKHNldHEgZWxlbWVudCAob3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxl bWVudCBlbmQgKHF1b3RlIGVsZW1lbnQpIHNwZWNpYWwtZmxhZyAob3JnLWVsZW1lbnQtcHJvcGVy dHkgOnN0cnVjdHVyZSBwYXJlbnQpKSkgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBlbGVtZW50 IDpwYXJlbnQgcGFyZW50KSAob3JnLWVsZW1lbnQtLWNhY2hlLXB1dCBlbGVtZW50KSkgKGxldCAo KGVsZW0tZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQpKSAodHlwZSAob3Jn LWVsZW1lbnQtdHlwZSBlbGVtZW50KSkpIChjb25kICgoYW5kICg8PSBlbGVtLWVuZCBwb3MpICgv PSAocG9pbnQtbWF4KSBlbGVtLWVuZCkpIChnb3RvLWNoYXIgZWxlbS1lbmQpKSAoKG5vdCAobWVt cSB0eXBlIG9yZy1lbGVtZW50LWdyZWF0ZXItZWxlbWVudHMpKSAodGhyb3cgKHF1b3RlIGV4aXQp IGVsZW1lbnQpKSAoKGxldCAoKGNiZWcgLi4uKSAoY2VuZCAuLi4pKSAoaWYgKG9yIHN5bmNwIC4u LikgKHByb2duIC4uLiAuLi4pKSkpICh0ICh0aHJvdyAocXVvdGUgZXhpdCkgZWxlbWVudCkpKSkg KHNldHEgZWxlbWVudCBuaWwpKSkKICAobGV0KiAoKGNhY2hlZCAoYW5kIChvcmctZWxlbWVudC0t Y2FjaGUtYWN0aXZlLXApIChvcmctZWxlbWVudC0tY2FjaGUtZmluZCBwb3MgbmlsKSkpIChiZWdp biAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmJlZ2luIGNhY2hlZCkpIGVsZW1lbnQgbmV4dCkgKGNv bmQgKChub3QgY2FjaGVkKSAoaWYgKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZl bHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhw KSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4 cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChvdXRsaW5lLXByZXZpb3Vz LWhlYWRpbmcpKSAocHJvZ24gKGZvcndhcmQtbGluZSkpKSAoc2tpcC1jaGFycy1mb3J3YXJkICIg DQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkpICgoPSBwb3MgYmVnaW4pICh0aHJvdyAocXVvdGUg ZXhpdCkgKGlmIHN5bmNwIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGFyZW50IGNhY2hlZCkgY2Fj aGVkKSkpICgocmUtc2VhcmNoLWJhY2t3YXJkIChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0 ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5l LXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGlu ZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSBvcmctb3V0bGlu ZS1yZWdleHAtYm9sKSBiZWdpbiB0KSAoZm9yd2FyZC1saW5lKSAoc2tpcC1jaGFycy1mb3J3YXJk ICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkpICh0IChsZXQgKCh1cCBjYWNoZWQpIChwb3Mg KGlmICg9IC4uLiBwb3MpICgxLSBwb3MpIHBvcykpKSAoZ290by1jaGFyIChvciAob3JnLWVsZW1l bnQtcHJvcGVydHkgOmNvbnRlbnRzLWJlZ2luIGNhY2hlZCkgYmVnaW4pKSAod2hpbGUgKGxldCAo KGVuZCAuLi4pKSAoYW5kICg8PSBlbmQgcG9zKSAoZ290by1jaGFyIGVuZCkgKHNldHEgdXAgLi4u KSkpKSAoY29uZCAoKG5vdCB1cCkpICgoZW9icCkgKHNldHEgZWxlbWVudCB1cCkpICh0IChzZXRx IGVsZW1lbnQgdXAgbmV4dCAocG9pbnQpKSkpKSkpIChsZXQgKChlbmQgKG9yIChvcmctZWxlbWVu dC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQpIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAoLi4uIC4uLiAu Li4gLi4uKSAob3V0bGluZS1uZXh0LWhlYWRpbmcpKSAocG9pbnQpKSkpIChwYXJlbnQgZWxlbWVu dCkgc3BlY2lhbC1mbGFnKSAod2hpbGUgdCAoaWYgc3luY3AgKHByb2duIChjb25kICgoPSAuLi4g cG9zKSAodGhyb3cgLi4uIHBhcmVudCkpICgob3JnLWVsZW1lbnQtLWNhY2hlLWludGVycnVwdC1w IHRpbWUtbGltaXQpICh0aHJvdyAuLi4gbmlsKSkpKSkgKGlmIGVsZW1lbnQgbmlsIChzZXRxIGVs ZW1lbnQgKG9yZy1lbGVtZW50LS1jdXJyZW50LWVsZW1lbnQgZW5kIChxdW90ZSBlbGVtZW50KSBz cGVjaWFsLWZsYWcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpzdHJ1Y3R1cmUgcGFyZW50KSkpIChv cmctZWxlbWVudC1wdXQtcHJvcGVydHkgZWxlbWVudCA6cGFyZW50IHBhcmVudCkgKG9yZy1lbGVt ZW50LS1jYWNoZS1wdXQgZWxlbWVudCkpIChsZXQgKChlbGVtLWVuZCAob3JnLWVsZW1lbnQtcHJv cGVydHkgOmVuZCBlbGVtZW50KSkgKHR5cGUgKG9yZy1lbGVtZW50LXR5cGUgZWxlbWVudCkpKSAo Y29uZCAoKGFuZCAoPD0gZWxlbS1lbmQgcG9zKSAoLz0gLi4uIGVsZW0tZW5kKSkgKGdvdG8tY2hh ciBlbGVtLWVuZCkpICgobm90IChtZW1xIHR5cGUgb3JnLWVsZW1lbnQtZ3JlYXRlci1lbGVtZW50 cykpICh0aHJvdyAocXVvdGUgZXhpdCkgZWxlbWVudCkpICgobGV0ICguLi4gLi4uKSAoaWYgLi4u IC4uLikpKSAodCAodGhyb3cgKHF1b3RlIGV4aXQpIGVsZW1lbnQpKSkpIChzZXRxIGVsZW1lbnQg bmlsKSkpKQogIChzYXZlLXJlc3RyaWN0aW9uICh3aWRlbikgKGdvdG8tY2hhciBwb3MpIChsZXQq ICgoY2FjaGVkIChhbmQgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKG9yZy1lbGVtZW50 LS1jYWNoZS1maW5kIHBvcyBuaWwpKSkgKGJlZ2luIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6YmVn aW4gY2FjaGVkKSkgZWxlbWVudCBuZXh0KSAoY29uZCAoKG5vdCBjYWNoZWQpIChpZiAobGV0KiAo KG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIC4u LikgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4 cC1ib2wgLi4uKSkgKG91dGxpbmUtcHJldmlvdXMtaGVhZGluZykpIChwcm9nbiAoZm9yd2FyZC1s aW5lKSkpIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkg KCg9IHBvcyBiZWdpbikgKHRocm93IChxdW90ZSBleGl0KSAoaWYgc3luY3AgKG9yZy1lbGVtZW50 LXByb3BlcnR5IDpwYXJlbnQgY2FjaGVkKSBjYWNoZWQpKSkgKChyZS1zZWFyY2gtYmFja3dhcmQg KGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJl Z2V4cCAuLi4pIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGlu ZS1yZWdleHAtYm9sIC4uLikpIG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wpIGJlZ2luIHQpIChmb3J3 YXJkLWxpbmUpIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5l KSkgKHQgKGxldCAoKHVwIGNhY2hlZCkgKHBvcyAoaWYgLi4uIC4uLiBwb3MpKSkgKGdvdG8tY2hh ciAob3IgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpjb250ZW50cy1iZWdpbiBjYWNoZWQpIGJlZ2lu KSkgKHdoaWxlIChsZXQgKC4uLikgKGFuZCAuLi4gLi4uIC4uLikpKSAoY29uZCAoKG5vdCB1cCkp ICgoZW9icCkgKHNldHEgZWxlbWVudCB1cCkpICh0IChzZXRxIGVsZW1lbnQgdXAgbmV4dCAuLi4p KSkpKSkgKGxldCAoKGVuZCAob3IgKG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkg KHNhdmUtZXhjdXJzaW9uIChsZXQqIC4uLiAuLi4pIChwb2ludCkpKSkgKHBhcmVudCBlbGVtZW50 KSBzcGVjaWFsLWZsYWcpICh3aGlsZSB0IChpZiBzeW5jcCAocHJvZ24gKGNvbmQgKC4uLiAuLi4p ICguLi4gLi4uKSkpKSAoaWYgZWxlbWVudCBuaWwgKHNldHEgZWxlbWVudCAob3JnLWVsZW1lbnQt LWN1cnJlbnQtZWxlbWVudCBlbmQgKHF1b3RlIGVsZW1lbnQpIHNwZWNpYWwtZmxhZyAob3JnLWVs ZW1lbnQtcHJvcGVydHkgOnN0cnVjdHVyZSBwYXJlbnQpKSkgKG9yZy1lbGVtZW50LXB1dC1wcm9w ZXJ0eSBlbGVtZW50IDpwYXJlbnQgcGFyZW50KSAob3JnLWVsZW1lbnQtLWNhY2hlLXB1dCBlbGVt ZW50KSkgKGxldCAoKGVsZW0tZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQp KSAodHlwZSAob3JnLWVsZW1lbnQtdHlwZSBlbGVtZW50KSkpIChjb25kICgoYW5kIC4uLiAuLi4p IChnb3RvLWNoYXIgZWxlbS1lbmQpKSAoKG5vdCAuLi4pICh0aHJvdyAuLi4gZWxlbWVudCkpICgo bGV0IC4uLiAuLi4pKSAodCAodGhyb3cgLi4uIGVsZW1lbnQpKSkpIChzZXRxIGVsZW1lbnQgbmls KSkpKSkKICAoc2F2ZS1leGN1cnNpb24gKHNhdmUtcmVzdHJpY3Rpb24gKHdpZGVuKSAoZ290by1j aGFyIHBvcykgKGxldCogKChjYWNoZWQgKGFuZCAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1w KSAob3JnLWVsZW1lbnQtLWNhY2hlLWZpbmQgcG9zIG5pbCkpKSAoYmVnaW4gKG9yZy1lbGVtZW50 LXByb3BlcnR5IDpiZWdpbiBjYWNoZWQpKSBlbGVtZW50IG5leHQpIChjb25kICgobm90IGNhY2hl ZCkgKGlmIChsZXQqICguLi4gLi4uIC4uLiAuLi4pIChvdXRsaW5lLXByZXZpb3VzLWhlYWRpbmcp KSAocHJvZ24gKGZvcndhcmQtbGluZSkpKSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIpIChi ZWdpbm5pbmctb2YtbGluZSkpICgoPSBwb3MgYmVnaW4pICh0aHJvdyAocXVvdGUgZXhpdCkgKGlm IHN5bmNwIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGFyZW50IGNhY2hlZCkgY2FjaGVkKSkpICgo cmUtc2VhcmNoLWJhY2t3YXJkIChsZXQqICguLi4gLi4uIC4uLiAuLi4pIG9yZy1vdXRsaW5lLXJl Z2V4cC1ib2wpIGJlZ2luIHQpIChmb3J3YXJkLWxpbmUpIChza2lwLWNoYXJzLWZvcndhcmQgIiAN CVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkgKHQgKGxldCAoKHVwIGNhY2hlZCkgKHBvcyAuLi4p KSAoZ290by1jaGFyIChvciAuLi4gYmVnaW4pKSAod2hpbGUgKGxldCAuLi4gLi4uKSkgKGNvbmQg KC4uLikgKC4uLiAuLi4pICh0IC4uLikpKSkpIChsZXQgKChlbmQgKG9yIChvcmctZWxlbWVudC1w cm9wZXJ0eSA6ZW5kIGVsZW1lbnQpIChzYXZlLWV4Y3Vyc2lvbiAuLi4gLi4uKSkpIChwYXJlbnQg ZWxlbWVudCkgc3BlY2lhbC1mbGFnKSAod2hpbGUgdCAoaWYgc3luY3AgKHByb2duIChjb25kIC4u LiAuLi4pKSkgKGlmIGVsZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50LS1jdXJy ZW50LWVsZW1lbnQgZW5kIC4uLiBzcGVjaWFsLWZsYWcgLi4uKSkgKG9yZy1lbGVtZW50LXB1dC1w cm9wZXJ0eSBlbGVtZW50IDpwYXJlbnQgcGFyZW50KSAob3JnLWVsZW1lbnQtLWNhY2hlLXB1dCBl bGVtZW50KSkgKGxldCAoKGVsZW0tZW5kIC4uLikgKHR5cGUgLi4uKSkgKGNvbmQgKC4uLiAuLi4p ICguLi4gLi4uKSAoLi4uKSAodCAuLi4pKSkgKHNldHEgZWxlbWVudCBuaWwpKSkpKSkKICAoY2F0 Y2ggKHF1b3RlIGV4aXQpIChzYXZlLWV4Y3Vyc2lvbiAoc2F2ZS1yZXN0cmljdGlvbiAod2lkZW4p IChnb3RvLWNoYXIgcG9zKSAobGV0KiAoKGNhY2hlZCAoYW5kIChvcmctZWxlbWVudC0tY2FjaGUt YWN0aXZlLXApIChvcmctZWxlbWVudC0tY2FjaGUtZmluZCBwb3MgbmlsKSkpIChiZWdpbiAob3Jn LWVsZW1lbnQtcHJvcGVydHkgOmJlZ2luIGNhY2hlZCkpIGVsZW1lbnQgbmV4dCkgKGNvbmQgKChu b3QgY2FjaGVkKSAoaWYgKGxldCogLi4uIC4uLikgKHByb2duIC4uLikpIChza2lwLWNoYXJzLWZv cndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkgKCg9IHBvcyBiZWdpbikgKHRocm93 IChxdW90ZSBleGl0KSAoaWYgc3luY3AgLi4uIGNhY2hlZCkpKSAoKHJlLXNlYXJjaC1iYWNrd2Fy ZCAobGV0KiAuLi4gb3JnLW91dGxpbmUtcmVnZXhwLWJvbCkgYmVnaW4gdCkgKGZvcndhcmQtbGlu ZSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAodCAo bGV0ICguLi4gLi4uKSAoZ290by1jaGFyIC4uLikgKHdoaWxlIC4uLikgKGNvbmQgLi4uIC4uLiAu Li4pKSkpIChsZXQgKChlbmQgKG9yIC4uLiAuLi4pKSAocGFyZW50IGVsZW1lbnQpIHNwZWNpYWwt ZmxhZykgKHdoaWxlIHQgKGlmIHN5bmNwIChwcm9nbiAuLi4pKSAoaWYgZWxlbWVudCBuaWwgKHNl dHEgZWxlbWVudCAuLi4pIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgZWxlbWVudCA6cGFyZW50 IHBhcmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQgZWxlbWVudCkpIChsZXQgKC4uLiAuLi4p IChjb25kIC4uLiAuLi4gLi4uIC4uLikpIChzZXRxIGVsZW1lbnQgbmlsKSkpKSkpKQogIG9yZy1l bGVtZW50LS1wYXJzZS10bygyNTcyODApCiAgKGNvbmQgKChib2JwKSBuaWwpICgobGV0KiAoKG9y Zy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmct Z2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUt cmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1y ZWdleHApKSkgKG9yZy1hdC1oZWFkaW5nLXApKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxl bWVudC1oZWFkbGluZS1wYXJzZXIgKHBvaW50LW1heCkgdCkpICh0IChpZiAob3JnLWVsZW1lbnQt LWNhY2hlLWFjdGl2ZS1wKSAocHJvZ24gKGlmIChub3Qgb3JnLWVsZW1lbnQtLWNhY2hlKSAob3Jn LWVsZW1lbnQtY2FjaGUtcmVzZXQpIChvcmctZWxlbWVudC0tY2FjaGUtc3luYyAoY3VycmVudC1i dWZmZXIpIG9yaWdpbikpKSkgKG9yZy1lbGVtZW50LS1wYXJzZS10byBvcmlnaW4pKSkKICAobGV0 ICgob3JpZ2luIChwb2ludCkpKSAoZW5kLW9mLWxpbmUpIChza2lwLWNoYXJzLWJhY2t3YXJkICIg DQlcbiIpIChjb25kICgoYm9icCkgbmlsKSAoKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRl ZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUt cmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5l LXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChvcmctYXQtaGVh ZGluZy1wKSkgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFyc2Vy IChwb2ludC1tYXgpIHQpKSAodCAoaWYgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKHBy b2duIChpZiAobm90IG9yZy1lbGVtZW50LS1jYWNoZSkgKG9yZy1lbGVtZW50LWNhY2hlLXJlc2V0 KSAob3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMgKGN1cnJlbnQtYnVmZmVyKSBvcmlnaW4pKSkpIChv cmctZWxlbWVudC0tcGFyc2UtdG8gb3JpZ2luKSkpKQogIChzYXZlLXJlc3RyaWN0aW9uICh3aWRl bikgKGxldCAoKG9yaWdpbiAocG9pbnQpKSkgKGVuZC1vZi1saW5lKSAoc2tpcC1jaGFycy1iYWNr d2FyZCAiIA0JXG4iKSAoY29uZCAoKGJvYnApIG5pbCkgKChsZXQqICgob3JnLWNhbGxlZC13aXRo LWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1v dXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmct b3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3Jn LWF0LWhlYWRpbmctcCkpIChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWhlYWRsaW5l LXBhcnNlciAocG9pbnQtbWF4KSB0KSkgKHQgKGlmIChvcmctZWxlbWVudC0tY2FjaGUtYWN0aXZl LXApIChwcm9nbiAoaWYgKG5vdCBvcmctZWxlbWVudC0tY2FjaGUpIChvcmctZWxlbWVudC1jYWNo ZS1yZXNldCkgKG9yZy1lbGVtZW50LS1jYWNoZS1zeW5jIC4uLiBvcmlnaW4pKSkpIChvcmctZWxl bWVudC0tcGFyc2UtdG8gb3JpZ2luKSkpKSkKICAoc2F2ZS1leGN1cnNpb24gKHNhdmUtcmVzdHJp Y3Rpb24gKHdpZGVuKSAobGV0ICgob3JpZ2luIChwb2ludCkpKSAoZW5kLW9mLWxpbmUpIChza2lw LWNoYXJzLWJhY2t3YXJkICIgDQlcbiIpIChjb25kICgoYm9icCkgbmlsKSAoKGxldCogKChvcmct Y2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAuLi4pIChv dXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9s IC4uLikpIChvcmctYXQtaGVhZGluZy1wKSkgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1l bnQtaGVhZGxpbmUtcGFyc2VyIChwb2ludC1tYXgpIHQpKSAodCAoaWYgKG9yZy1lbGVtZW50LS1j YWNoZS1hY3RpdmUtcCkgKHByb2duIChpZiAuLi4gLi4uIC4uLikpKSAob3JnLWVsZW1lbnQtLXBh cnNlLXRvIG9yaWdpbikpKSkpKQogIG9yZy1lbGVtZW50LWF0LXBvaW50KCkKICAobGV0ICgoZHJh d2VyIChvcmctZWxlbWVudC1hdC1wb2ludCkpKSAoaWYgKGFuZCAoZXEgKG9yZy1lbGVtZW50LXR5 cGUgZHJhd2VyKSAocXVvdGUgcHJvcGVydHktZHJhd2VyKSkgKGxldCAoKHAgZHJhd2VyKSkgKHdo aWxlIChhbmQgKHNldHEgcCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhcmVudCBwKSkgKG5vdCAo ZXEgLi4uIC4uLikpKSkgKG5vdCBwKSkpIChwcm9nbiAobGV0ICgoZW5kIChvcmctZWxlbWVudC1w cm9wZXJ0eSA6Y29udGVudHMtZW5kIGRyYXdlcikpKSAoaWYgZW5kIChwcm9nbiAoZm9yd2FyZC1s aW5lKSAod2hpbGUgKDwgLi4uIGVuZCkgKGlmIC4uLiAuLi4pIChmb3J3YXJkLWxpbmUpKSkpKSkp KQogICh3aGlsZSAoYW5kIChudWxsIHBsaXN0KSAocmUtc2VhcmNoLWZvcndhcmQgb3JnLXByb3Bl cnR5LXN0YXJ0LXJlIGVuZCB0KSkgKGxldCAoKGRyYXdlciAob3JnLWVsZW1lbnQtYXQtcG9pbnQp KSkgKGlmIChhbmQgKGVxIChvcmctZWxlbWVudC10eXBlIGRyYXdlcikgKHF1b3RlIHByb3BlcnR5 LWRyYXdlcikpIChsZXQgKChwIGRyYXdlcikpICh3aGlsZSAoYW5kIChzZXRxIHAgLi4uKSAobm90 IC4uLikpKSAobm90IHApKSkgKHByb2duIChsZXQgKChlbmQgKG9yZy1lbGVtZW50LXByb3BlcnR5 IDpjb250ZW50cy1lbmQgZHJhd2VyKSkpIChpZiBlbmQgKHByb2duIChmb3J3YXJkLWxpbmUpICh3 aGlsZSAuLi4gLi4uIC4uLikpKSkpKSkpCiAgKHNhdmUtZXhjdXJzaW9uICh3aGlsZSAoYW5kIChu dWxsIHBsaXN0KSAocmUtc2VhcmNoLWZvcndhcmQgb3JnLXByb3BlcnR5LXN0YXJ0LXJlIGVuZCB0 KSkgKGxldCAoKGRyYXdlciAob3JnLWVsZW1lbnQtYXQtcG9pbnQpKSkgKGlmIChhbmQgKGVxIChv cmctZWxlbWVudC10eXBlIGRyYXdlcikgKHF1b3RlIHByb3BlcnR5LWRyYXdlcikpIChsZXQgKChw IGRyYXdlcikpICh3aGlsZSAoYW5kIC4uLiAuLi4pKSAobm90IHApKSkgKHByb2duIChsZXQgKChl bmQgLi4uKSkgKGlmIGVuZCAocHJvZ24gLi4uIC4uLikpKSkpKSkgcGxpc3QpCiAgKGxldCAoKGVu ZCAoc2F2ZS1leGN1cnNpb24gKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMg dCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkg KG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1i b2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChvdXRsaW5lLW5leHQtaGVhZGlu ZykpIChwb2ludCkpKSBwbGlzdCkgKHNhdmUtZXhjdXJzaW9uICh3aGlsZSAoYW5kIChudWxsIHBs aXN0KSAocmUtc2VhcmNoLWZvcndhcmQgb3JnLXByb3BlcnR5LXN0YXJ0LXJlIGVuZCB0KSkgKGxl dCAoKGRyYXdlciAob3JnLWVsZW1lbnQtYXQtcG9pbnQpKSkgKGlmIChhbmQgKGVxIChvcmctZWxl bWVudC10eXBlIGRyYXdlcikgKHF1b3RlIHByb3BlcnR5LWRyYXdlcikpIChsZXQgKC4uLikgKHdo aWxlIC4uLikgKG5vdCBwKSkpIChwcm9nbiAobGV0ICguLi4pIChpZiBlbmQgLi4uKSkpKSkpIHBs aXN0KSkKICAobGV0KiAoKGNvbXBvbmVudHMgKG9yZy1oZWFkaW5nLWNvbXBvbmVudHMpKSAobGV2 ZWwgKG50aCAxIGNvbXBvbmVudHMpKSAodG9kbyAobnRoIDIgY29tcG9uZW50cykpICh0b2RvLXR5 cGUgKGFuZCB0b2RvIChpZiAobWVtYmVyIHRvZG8gb3JnLWRvbmUta2V5d29yZHMpIChxdW90ZSBk b25lKSAocXVvdGUgdG9kbykpKSkgKHRhZ3MgKGxldCAoKHJhdy10YWdzIChudGggNSBjb21wb25l bnRzKSkpIChhbmQgcmF3LXRhZ3MgKG9yZy1zcGxpdC1zdHJpbmcgcmF3LXRhZ3MgIjoiKSkpKSAo cmF3LXZhbHVlIChvciAobnRoIDQgY29tcG9uZW50cykgIiIpKSAoY29tbWVudGVkcCAobGV0ICgo Y2FzZS1mb2xkLXNlYXJjaCBuaWwpKSAoc3RyaW5nLW1hdGNoIChmb3JtYXQgIl4lc1xcKCBcXHwk XFwpIiBvcmctY29tbWVudC1zdHJpbmcpIHJhdy12YWx1ZSkpKSAoYXJjaGl2ZWRwIChtZW1iZXIg b3JnLWFyY2hpdmUtdGFnIHRhZ3MpKSAoZm9vdG5vdGUtc2VjdGlvbi1wIChhbmQgb3JnLWZvb3Ru b3RlLXNlY3Rpb24gKHN0cmluZz0gb3JnLWZvb3Rub3RlLXNlY3Rpb24gcmF3LXZhbHVlKSkpIChz dGFuZGFyZC1wcm9wcyAobGV0ICgoZW5kIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAuLi4gLi4uKSAo cG9pbnQpKSkgcGxpc3QpIChzYXZlLWV4Y3Vyc2lvbiAod2hpbGUgKGFuZCAobnVsbCBwbGlzdCkg KHJlLXNlYXJjaC1mb3J3YXJkIG9yZy1wcm9wZXJ0eS1zdGFydC1yZSBlbmQgdCkpIChsZXQgKC4u LikgKGlmIC4uLiAuLi4pKSkgcGxpc3QpKSkgKHRpbWUtcHJvcHMgKHNhdmUtZXhjdXJzaW9uIChm b3J3YXJkLWxpbmUpIChpZiAobG9va2luZy1hdCBvcmctcGxhbm5pbmctb3ItY2xvY2stbGluZS1y ZSkgKHByb2duIChsZXQgKC4uLiBwbGlzdCkgKHdoaWxlIC4uLiAuLi4gLi4uIC4uLikgcGxpc3Qp KSkpKSAoYmVnaW4gKHBvaW50KSkgKGVuZCAobWluIChzYXZlLWV4Y3Vyc2lvbiAob3JnLWVuZC1v Zi1zdWJ0cmVlIHQgdCkpIGxpbWl0KSkgKHBvcy1hZnRlci1oZWFkIChwcm9nbiAoZm9yd2FyZC1s aW5lKSAocG9pbnQpKSkgKGNvbnRlbnRzLWJlZ2luIChzYXZlLWV4Y3Vyc2lvbiAoc2tpcC1jaGFy cy1mb3J3YXJkICIgDQlcbiIgZW5kKSAoYW5kICgvPSAocG9pbnQpIGVuZCkgKGxpbmUtYmVnaW5u aW5nLXBvc2l0aW9uKSkpKSAoY29udGVudHMtZW5kIChhbmQgY29udGVudHMtYmVnaW4gKHByb2du IChnb3RvLWNoYXIgZW5kKSAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIA0JXG4iKSAoZm9yd2FyZC1s aW5lKSAocG9pbnQpKSkpKSAoaWYgY29tbWVudGVkcCAocHJvZ24gKGxldCAoKGNhc2UtZm9sZC1z ZWFyY2ggbmlsKSkgKHNldHEgcmF3LXZhbHVlIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcgKGNv bmNhdCAocmVnZXhwLXF1b3RlIG9yZy1jb21tZW50LXN0cmluZykgIlxcKD86IFxcfCRcXCkiKSAi IiByYXctdmFsdWUpKSkpKSAoaWYgYXJjaGl2ZWRwIChwcm9nbiAoc2V0cSB0YWdzIChkZWxldGUg b3JnLWFyY2hpdmUtdGFnIHRhZ3MpKSkpIChsZXQgKChoZWFkbGluZSAobGlzdCAocXVvdGUgaGVh ZGxpbmUpIChuY29uYyAobGlzdCA6cmF3LXZhbHVlIHJhdy12YWx1ZSA6YmVnaW4gYmVnaW4gOmVu ZCBlbmQgOnByZS1ibGFuayAoaWYgLi4uIDAgLi4uKSA6Y29udGVudHMtYmVnaW4gY29udGVudHMt YmVnaW4gOmNvbnRlbnRzLWVuZCBjb250ZW50cy1lbmQgOmxldmVsIGxldmVsIDpwcmlvcml0eSAo bnRoIDMgY29tcG9uZW50cykgOnRhZ3MgdGFncyA6dG9kby1rZXl3b3JkIHRvZG8gOnRvZG8tdHlw ZSB0b2RvLXR5cGUgOnBvc3QtYmxhbmsgKGNvdW50LWxpbmVzIC4uLiBlbmQpIDpmb290bm90ZS1z ZWN0aW9uLXAgZm9vdG5vdGUtc2VjdGlvbi1wIDphcmNoaXZlZHAgYXJjaGl2ZWRwIDpjb21tZW50 ZWRwIGNvbW1lbnRlZHApIHRpbWUtcHJvcHMgc3RhbmRhcmQtcHJvcHMpKSkpIChsZXQgKChhbHQt dGl0bGUgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpBTFRfVElUTEUgaGVhZGxpbmUpKSkgKGlmIGFs dC10aXRsZSAocHJvZ24gKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBoZWFkbGluZSA6YWx0LXRp dGxlIChpZiByYXctc2Vjb25kYXJ5LXAgYWx0LXRpdGxlIChvcmctZWxlbWVudC1wYXJzZS1zZWNv bmRhcnktc3RyaW5nIGFsdC10aXRsZSAuLi4gaGVhZGxpbmUpKSkpKSkgKG9yZy1lbGVtZW50LXB1 dC1wcm9wZXJ0eSBoZWFkbGluZSA6dGl0bGUgKGlmIHJhdy1zZWNvbmRhcnktcCByYXctdmFsdWUg KG9yZy1lbGVtZW50LXBhcnNlLXNlY29uZGFyeS1zdHJpbmcgcmF3LXZhbHVlIChvcmctZWxlbWVu dC1yZXN0cmljdGlvbiAocXVvdGUgaGVhZGxpbmUpKSBoZWFkbGluZSkpKSkpCiAgKHNhdmUtZXhj dXJzaW9uIChsZXQqICgoY29tcG9uZW50cyAob3JnLWhlYWRpbmctY29tcG9uZW50cykpIChsZXZl bCAobnRoIDEgY29tcG9uZW50cykpICh0b2RvIChudGggMiBjb21wb25lbnRzKSkgKHRvZG8tdHlw ZSAoYW5kIHRvZG8gKGlmIChtZW1iZXIgdG9kbyBvcmctZG9uZS1rZXl3b3JkcykgKHF1b3RlIGRv bmUpIChxdW90ZSB0b2RvKSkpKSAodGFncyAobGV0ICgocmF3LXRhZ3MgKG50aCA1IGNvbXBvbmVu dHMpKSkgKGFuZCByYXctdGFncyAob3JnLXNwbGl0LXN0cmluZyByYXctdGFncyAiOiIpKSkpIChy YXctdmFsdWUgKG9yIChudGggNCBjb21wb25lbnRzKSAiIikpIChjb21tZW50ZWRwIChsZXQgKChj YXNlLWZvbGQtc2VhcmNoIG5pbCkpIChzdHJpbmctbWF0Y2ggKGZvcm1hdCAiXiVzXFwoIFxcfCRc XCkiIG9yZy1jb21tZW50LXN0cmluZykgcmF3LXZhbHVlKSkpIChhcmNoaXZlZHAgKG1lbWJlciBv cmctYXJjaGl2ZS10YWcgdGFncykpIChmb290bm90ZS1zZWN0aW9uLXAgKGFuZCBvcmctZm9vdG5v dGUtc2VjdGlvbiAoc3RyaW5nPSBvcmctZm9vdG5vdGUtc2VjdGlvbiByYXctdmFsdWUpKSkgKHN0 YW5kYXJkLXByb3BzIChsZXQgKChlbmQgKHNhdmUtZXhjdXJzaW9uIC4uLiAuLi4pKSBwbGlzdCkg KHNhdmUtZXhjdXJzaW9uICh3aGlsZSAoYW5kIC4uLiAuLi4pIChsZXQgLi4uIC4uLikpIHBsaXN0 KSkpICh0aW1lLXByb3BzIChzYXZlLWV4Y3Vyc2lvbiAoZm9yd2FyZC1saW5lKSAoaWYgKGxvb2tp bmctYXQgb3JnLXBsYW5uaW5nLW9yLWNsb2NrLWxpbmUtcmUpIChwcm9nbiAobGV0IC4uLiAuLi4g cGxpc3QpKSkpKSAoYmVnaW4gKHBvaW50KSkgKGVuZCAobWluIChzYXZlLWV4Y3Vyc2lvbiAob3Jn LWVuZC1vZi1zdWJ0cmVlIHQgdCkpIGxpbWl0KSkgKHBvcy1hZnRlci1oZWFkIChwcm9nbiAoZm9y d2FyZC1saW5lKSAocG9pbnQpKSkgKGNvbnRlbnRzLWJlZ2luIChzYXZlLWV4Y3Vyc2lvbiAoc2tp cC1jaGFycy1mb3J3YXJkICIgDQlcbiIgZW5kKSAoYW5kICgvPSAocG9pbnQpIGVuZCkgKGxpbmUt YmVnaW5uaW5nLXBvc2l0aW9uKSkpKSAoY29udGVudHMtZW5kIChhbmQgY29udGVudHMtYmVnaW4g KHByb2duIChnb3RvLWNoYXIgZW5kKSAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIA0JXG4iKSAoZm9y d2FyZC1saW5lKSAocG9pbnQpKSkpKSAoaWYgY29tbWVudGVkcCAocHJvZ24gKGxldCAoKGNhc2Ut Zm9sZC1zZWFyY2ggbmlsKSkgKHNldHEgcmF3LXZhbHVlIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJp bmcgKGNvbmNhdCAuLi4gIlxcKD86IFxcfCRcXCkiKSAiIiByYXctdmFsdWUpKSkpKSAoaWYgYXJj aGl2ZWRwIChwcm9nbiAoc2V0cSB0YWdzIChkZWxldGUgb3JnLWFyY2hpdmUtdGFnIHRhZ3MpKSkp IChsZXQgKChoZWFkbGluZSAobGlzdCAocXVvdGUgaGVhZGxpbmUpIChuY29uYyAobGlzdCA6cmF3 LXZhbHVlIHJhdy12YWx1ZSA6YmVnaW4gYmVnaW4gOmVuZCBlbmQgOnByZS1ibGFuayAuLi4gOmNv bnRlbnRzLWJlZ2luIGNvbnRlbnRzLWJlZ2luIDpjb250ZW50cy1lbmQgY29udGVudHMtZW5kIDps ZXZlbCBsZXZlbCA6cHJpb3JpdHkgLi4uIDp0YWdzIHRhZ3MgOnRvZG8ta2V5d29yZCB0b2RvIDp0 b2RvLXR5cGUgdG9kby10eXBlIDpwb3N0LWJsYW5rIC4uLiA6Zm9vdG5vdGUtc2VjdGlvbi1wIGZv b3Rub3RlLXNlY3Rpb24tcCA6YXJjaGl2ZWRwIGFyY2hpdmVkcCA6Y29tbWVudGVkcCBjb21tZW50 ZWRwKSB0aW1lLXByb3BzIHN0YW5kYXJkLXByb3BzKSkpKSAobGV0ICgoYWx0LXRpdGxlIChvcmct ZWxlbWVudC1wcm9wZXJ0eSA6QUxUX1RJVExFIGhlYWRsaW5lKSkpIChpZiBhbHQtdGl0bGUgKHBy b2duIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgaGVhZGxpbmUgOmFsdC10aXRsZSAoaWYgcmF3 LXNlY29uZGFyeS1wIGFsdC10aXRsZSAuLi4pKSkpKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5 IGhlYWRsaW5lIDp0aXRsZSAoaWYgcmF3LXNlY29uZGFyeS1wIHJhdy12YWx1ZSAob3JnLWVsZW1l bnQtcGFyc2Utc2Vjb25kYXJ5LXN0cmluZyByYXctdmFsdWUgKG9yZy1lbGVtZW50LXJlc3RyaWN0 aW9uIChxdW90ZSBoZWFkbGluZSkpIGhlYWRsaW5lKSkpKSkpCiAgb3JnLWVsZW1lbnQtaGVhZGxp bmUtcGFyc2VyKDI1NzcwNiB0KQogIChjb25kICgoZXEgc3BlY2lhbCAocXVvdGUgaXRlbSkpIChv cmctZWxlbWVudC1pdGVtLXBhcnNlciBsaW1pdCBzdHJ1Y3R1cmUgcmF3LXNlY29uZGFyeS1wKSkg KChlcSBzcGVjaWFsIChxdW90ZSB0YWJsZS1yb3cpKSAob3JnLWVsZW1lbnQtdGFibGUtcm93LXBh cnNlciBsaW1pdCkpICgoZXEgc3BlY2lhbCAocXVvdGUgbm9kZS1wcm9wZXJ0eSkpIChvcmctZWxl bWVudC1ub2RlLXByb3BlcnR5LXBhcnNlciBsaW1pdCkpICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0 aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQt b3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3Jn LW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgKG9y Zy1hdC1oZWFkaW5nLXApKSAob3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFyc2VyIGxpbWl0IHJhdy1z ZWNvbmRhcnktcCkpICgoZXEgc3BlY2lhbCAocXVvdGUgc2VjdGlvbikpIChvcmctZWxlbWVudC1z ZWN0aW9uLXBhcnNlciBsaW1pdCkpICgoZXEgc3BlY2lhbCAocXVvdGUgZmlyc3Qtc2VjdGlvbikp IChvcmctZWxlbWVudC1zZWN0aW9uLXBhcnNlciAob3IgKHNhdmUtZXhjdXJzaW9uIChsZXQqICgo b3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgLi4u KSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhw LWJvbCAuLi4pKSAob3V0bGluZS1uZXh0LWhlYWRpbmcpKSkgbGltaXQpKSkgKChub3QgKGJvbHAp KSAob3JnLWVsZW1lbnQtcGFyYWdyYXBoLXBhcnNlciBsaW1pdCAobGlzdCAocG9pbnQpKSkpICgo bG9va2luZy1hdCBvcmctcGxhbm5pbmctb3ItY2xvY2stbGluZS1yZSkgKGlmIChlcXVhbCAobWF0 Y2gtc3RyaW5nIDEpIG9yZy1jbG9jay1zdHJpbmcpIChvcmctZWxlbWVudC1jbG9jay1wYXJzZXIg bGltaXQpIChvcmctZWxlbWVudC1wbGFubmluZy1wYXJzZXIgbGltaXQpKSkgKChvcmctYXQtaGVh ZGluZy1wKSAob3JnLWVsZW1lbnQtaW5saW5ldGFzay1wYXJzZXIgbGltaXQgcmF3LXNlY29uZGFy eS1wKSkgKHQgKGxldCAoKGFmZmlsaWF0ZWQgKG9yZy1lbGVtZW50LS1jb2xsZWN0LWFmZmlsaWF0 ZWQta2V5d29yZHMgbGltaXQpKSkgKGNvbmQgKChhbmQgKGNkciBhZmZpbGlhdGVkKSAoPj0gKHBv aW50KSBsaW1pdCkpIChnb3RvLWNoYXIgKGNhciBhZmZpbGlhdGVkKSkgKG9yZy1lbGVtZW50LWtl eXdvcmQtcGFyc2VyIGxpbWl0IG5pbCkpICgobG9va2luZy1hdCAiWyAgICAgXSpcXFxcYmVnaW57 W0EtWmEtejAtOSpdK31cXChcXFsuKj9cXF1cXHx7Lio/fVxcKSpbICAgICBdKiQiKSAob3JnLWVs ZW1lbnQtbGF0ZXgtZW52aXJvbm1lbnQtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tp bmctYXQgb3JnLWRyYXdlci1yZWdleHApIChpZiAoZXF1YWwgKG1hdGNoLXN0cmluZyAxKSAiUFJP UEVSVElFUyIpIChvcmctZWxlbWVudC1wcm9wZXJ0eS1kcmF3ZXItcGFyc2VyIGxpbWl0IGFmZmls aWF0ZWQpIChvcmctZWxlbWVudC1kcmF3ZXItcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSkgKChs b29raW5nLWF0ICJbICAgXSo6XFwoIFxcfCRcXCkiKSAob3JnLWVsZW1lbnQtZml4ZWQtd2lkdGgt cGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlsgICAgIF0qIyIpIChnb3Rv LWNoYXIgKG1hdGNoLWVuZCAwKSkgKGNvbmQgKChsb29raW5nLWF0ICJcXCg/OiBcXHwkXFwpIikg KGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQtY29tbWVudC1wYXJzZXIgbGltaXQgYWZm aWxpYXRlZCkpICgobG9va2luZy1hdCAiXFwrQkVHSU5fXFwoXFxTLStcXCkiKSAoYmVnaW5uaW5n LW9mLWxpbmUpIChsZXQgLi4uIC4uLikpICgobG9va2luZy1hdCAiXFwrQ0FMTDoiKSAoYmVnaW5u aW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1iYWJlbC1jYWxsLXBhcnNlciBsaW1pdCBhZmZpbGlh dGVkKSkgKChsb29raW5nLWF0ICJcXCtCRUdJTjo/ICIpIChiZWdpbm5pbmctb2YtbGluZSkgKG9y Zy1lbGVtZW50LWR5bmFtaWMtYmxvY2stcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tp bmctYXQgIlxcK1xcUy0rOiIpIChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWtleXdv cmQtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAodCAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmct ZWxlbWVudC1wYXJhZ3JhcGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSkpICgobG9va2luZy1h dCBvcmctZm9vdG5vdGUtZGVmaW5pdGlvbi1yZSkgKG9yZy1lbGVtZW50LWZvb3Rub3RlLWRlZmlu aXRpb24tcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlsgICBdKi1cXHs1 LFxcfVsgICAgXSokIikgKG9yZy1lbGVtZW50LWhvcml6b250YWwtcnVsZS1wYXJzZXIgbGltaXQg YWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiJSUoIikgKG9yZy1lbGVtZW50LWRpYXJ5LXNleHAt cGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKG9yZy1hdC10YWJsZS1wIHQpIChvcmctZWxlbWVu dC10YWJsZS1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAob3JnLWl0ZW0t cmUpKSAob3JnLWVsZW1lbnQtcGxhaW4tbGlzdC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCAob3Ig c3RydWN0dXJlIChvcmctZWxlbWVudC0tbGlzdC1zdHJ1Y3QgbGltaXQpKSkpICh0IChvcmctZWxl bWVudC1wYXJhZ3JhcGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSkpKSkKICAobGV0ICgoY2Fz ZS1mb2xkLXNlYXJjaCB0KSAocmF3LXNlY29uZGFyeS1wIChhbmQgZ3JhbnVsYXJpdHkgKG5vdCAo ZXEgZ3JhbnVsYXJpdHkgKHF1b3RlIG9iamVjdCkpKSkpKSAoY29uZCAoKGVxIHNwZWNpYWwgKHF1 b3RlIGl0ZW0pKSAob3JnLWVsZW1lbnQtaXRlbS1wYXJzZXIgbGltaXQgc3RydWN0dXJlIHJhdy1z ZWNvbmRhcnktcCkpICgoZXEgc3BlY2lhbCAocXVvdGUgdGFibGUtcm93KSkgKG9yZy1lbGVtZW50 LXRhYmxlLXJvdy1wYXJzZXIgbGltaXQpKSAoKGVxIHNwZWNpYWwgKHF1b3RlIG5vZGUtcHJvcGVy dHkpKSAob3JnLWVsZW1lbnQtbm9kZS1wcm9wZXJ0eS1wYXJzZXIgbGltaXQpKSAoKGxldCogKChv cmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3Jn LWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5l LXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUt cmVnZXhwKSkpIChvcmctYXQtaGVhZGluZy1wKSkgKG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNl ciBsaW1pdCByYXctc2Vjb25kYXJ5LXApKSAoKGVxIHNwZWNpYWwgKHF1b3RlIHNlY3Rpb24pKSAo b3JnLWVsZW1lbnQtc2VjdGlvbi1wYXJzZXIgbGltaXQpKSAoKGVxIHNwZWNpYWwgKHF1b3RlIGZp cnN0LXNlY3Rpb24pKSAob3JnLWVsZW1lbnQtc2VjdGlvbi1wYXJzZXIgKG9yIChzYXZlLWV4Y3Vy c2lvbiAobGV0KiAoLi4uIC4uLiAuLi4gLi4uKSAob3V0bGluZS1uZXh0LWhlYWRpbmcpKSkgbGlt aXQpKSkgKChub3QgKGJvbHApKSAob3JnLWVsZW1lbnQtcGFyYWdyYXBoLXBhcnNlciBsaW1pdCAo bGlzdCAocG9pbnQpKSkpICgobG9va2luZy1hdCBvcmctcGxhbm5pbmctb3ItY2xvY2stbGluZS1y ZSkgKGlmIChlcXVhbCAobWF0Y2gtc3RyaW5nIDEpIG9yZy1jbG9jay1zdHJpbmcpIChvcmctZWxl bWVudC1jbG9jay1wYXJzZXIgbGltaXQpIChvcmctZWxlbWVudC1wbGFubmluZy1wYXJzZXIgbGlt aXQpKSkgKChvcmctYXQtaGVhZGluZy1wKSAob3JnLWVsZW1lbnQtaW5saW5ldGFzay1wYXJzZXIg bGltaXQgcmF3LXNlY29uZGFyeS1wKSkgKHQgKGxldCAoKGFmZmlsaWF0ZWQgKG9yZy1lbGVtZW50 LS1jb2xsZWN0LWFmZmlsaWF0ZWQta2V5d29yZHMgbGltaXQpKSkgKGNvbmQgKChhbmQgKGNkciBh ZmZpbGlhdGVkKSAoPj0gLi4uIGxpbWl0KSkgKGdvdG8tY2hhciAoY2FyIGFmZmlsaWF0ZWQpKSAo b3JnLWVsZW1lbnQta2V5d29yZC1wYXJzZXIgbGltaXQgbmlsKSkgKChsb29raW5nLWF0ICJbICAg ICAgICBdKlxcXFxiZWdpbntbQS1aYS16MC05Kl0rfVxcKFxcWy4qP1xcXVxcfHsuKj99XFwpKlsg ICAgIF0qJCIpIChvcmctZWxlbWVudC1sYXRleC1lbnZpcm9ubWVudC1wYXJzZXIgbGltaXQgYWZm aWxpYXRlZCkpICgobG9va2luZy1hdCBvcmctZHJhd2VyLXJlZ2V4cCkgKGlmIChlcXVhbCAuLi4g IlBST1BFUlRJRVMiKSAob3JnLWVsZW1lbnQtcHJvcGVydHktZHJhd2VyLXBhcnNlciBsaW1pdCBh ZmZpbGlhdGVkKSAob3JnLWVsZW1lbnQtZHJhd2VyLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkp ICgobG9va2luZy1hdCAiWyAgICAgICAgXSo6XFwoIFxcfCRcXCkiKSAob3JnLWVsZW1lbnQtZml4 ZWQtd2lkdGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlsgICAgIF0q IyIpIChnb3RvLWNoYXIgKG1hdGNoLWVuZCAwKSkgKGNvbmQgKC4uLiAuLi4gLi4uKSAoLi4uIC4u LiAuLi4pICguLi4gLi4uIC4uLikgKC4uLiAuLi4gLi4uKSAoLi4uIC4uLiAuLi4pICh0IC4uLiAu Li4pKSkgKChsb29raW5nLWF0IG9yZy1mb290bm90ZS1kZWZpbml0aW9uLXJlKSAob3JnLWVsZW1l bnQtZm9vdG5vdGUtZGVmaW5pdGlvbi1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2lu Zy1hdCAiWyAgIF0qLVxcezUsXFx9WyAgICBdKiQiKSAob3JnLWVsZW1lbnQtaG9yaXpvbnRhbC1y dWxlLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICIlJSgiKSAob3JnLWVs ZW1lbnQtZGlhcnktc2V4cC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgob3JnLWF0LXRhYmxl LXAgdCkgKG9yZy1lbGVtZW50LXRhYmxlLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29r aW5nLWF0IChvcmctaXRlbS1yZSkpIChvcmctZWxlbWVudC1wbGFpbi1saXN0LXBhcnNlciBsaW1p dCBhZmZpbGlhdGVkIChvciBzdHJ1Y3R1cmUgLi4uKSkpICh0IChvcmctZWxlbWVudC1wYXJhZ3Jh cGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSkpKSkpCiAgKHNhdmUtZXhjdXJzaW9uIChsZXQg KChjYXNlLWZvbGQtc2VhcmNoIHQpIChyYXctc2Vjb25kYXJ5LXAgKGFuZCBncmFudWxhcml0eSAo bm90IChlcSBncmFudWxhcml0eSAocXVvdGUgb2JqZWN0KSkpKSkpIChjb25kICgoZXEgc3BlY2lh bCAocXVvdGUgaXRlbSkpIChvcmctZWxlbWVudC1pdGVtLXBhcnNlciBsaW1pdCBzdHJ1Y3R1cmUg cmF3LXNlY29uZGFyeS1wKSkgKChlcSBzcGVjaWFsIChxdW90ZSB0YWJsZS1yb3cpKSAob3JnLWVs ZW1lbnQtdGFibGUtcm93LXBhcnNlciBsaW1pdCkpICgoZXEgc3BlY2lhbCAocXVvdGUgbm9kZS1w cm9wZXJ0eSkpIChvcmctZWxlbWVudC1ub2RlLXByb3BlcnR5LXBhcnNlciBsaW1pdCkpICgobGV0 KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhw IChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91 dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0 bGluZS1yZWdleHApKSkgKG9yZy1hdC1oZWFkaW5nLXApKSAob3JnLWVsZW1lbnQtaGVhZGxpbmUt cGFyc2VyIGxpbWl0IHJhdy1zZWNvbmRhcnktcCkpICgoZXEgc3BlY2lhbCAocXVvdGUgc2VjdGlv bikpIChvcmctZWxlbWVudC1zZWN0aW9uLXBhcnNlciBsaW1pdCkpICgoZXEgc3BlY2lhbCAocXVv dGUgZmlyc3Qtc2VjdGlvbikpIChvcmctZWxlbWVudC1zZWN0aW9uLXBhcnNlciAob3IgKHNhdmUt ZXhjdXJzaW9uIChsZXQqIC4uLiAuLi4pKSBsaW1pdCkpKSAoKG5vdCAoYm9scCkpIChvcmctZWxl bWVudC1wYXJhZ3JhcGgtcGFyc2VyIGxpbWl0IChsaXN0IChwb2ludCkpKSkgKChsb29raW5nLWF0 IG9yZy1wbGFubmluZy1vci1jbG9jay1saW5lLXJlKSAoaWYgKGVxdWFsIChtYXRjaC1zdHJpbmcg MSkgb3JnLWNsb2NrLXN0cmluZykgKG9yZy1lbGVtZW50LWNsb2NrLXBhcnNlciBsaW1pdCkgKG9y Zy1lbGVtZW50LXBsYW5uaW5nLXBhcnNlciBsaW1pdCkpKSAoKG9yZy1hdC1oZWFkaW5nLXApIChv cmctZWxlbWVudC1pbmxpbmV0YXNrLXBhcnNlciBsaW1pdCByYXctc2Vjb25kYXJ5LXApKSAodCAo bGV0ICgoYWZmaWxpYXRlZCAob3JnLWVsZW1lbnQtLWNvbGxlY3QtYWZmaWxpYXRlZC1rZXl3b3Jk cyBsaW1pdCkpKSAoY29uZCAoKGFuZCAuLi4gLi4uKSAoZ290by1jaGFyIC4uLikgKG9yZy1lbGVt ZW50LWtleXdvcmQtcGFyc2VyIGxpbWl0IG5pbCkpICgobG9va2luZy1hdCAiWyAgICAgIF0qXFxc XGJlZ2lue1tBLVphLXowLTkqXSt9XFwoXFxbLio/XFxdXFx8ey4qP31cXCkqWyAgICAgXSokIikg KG9yZy1lbGVtZW50LWxhdGV4LWVudmlyb25tZW50LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkg KChsb29raW5nLWF0IG9yZy1kcmF3ZXItcmVnZXhwKSAoaWYgLi4uIC4uLiAuLi4pKSAoKGxvb2tp bmctYXQgIlsgICAgICAgIF0qOlxcKCBcXHwkXFwpIikgKG9yZy1lbGVtZW50LWZpeGVkLXdpZHRo LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJbICAgICBdKiMiKSAoZ290 by1jaGFyIC4uLikgKGNvbmQgLi4uIC4uLiAuLi4gLi4uIC4uLiAuLi4pKSAoKGxvb2tpbmctYXQg b3JnLWZvb3Rub3RlLWRlZmluaXRpb24tcmUpIChvcmctZWxlbWVudC1mb290bm90ZS1kZWZpbml0 aW9uLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJbICAgICAgIF0qLVxc ezUsXFx9WyAgICBdKiQiKSAob3JnLWVsZW1lbnQtaG9yaXpvbnRhbC1ydWxlLXBhcnNlciBsaW1p dCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICIlJSgiKSAob3JnLWVsZW1lbnQtZGlhcnktc2V4 cC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgob3JnLWF0LXRhYmxlLXAgdCkgKG9yZy1lbGVt ZW50LXRhYmxlLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0IC4uLikgKG9y Zy1lbGVtZW50LXBsYWluLWxpc3QtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQgLi4uKSkgKHQgKG9y Zy1lbGVtZW50LXBhcmFncmFwaC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpKSkpKSkpCiAgb3Jn LWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVudCgyNTc3MDYgZWxlbWVudCBuaWwgbmlsKQogIChzZXRx IGVsZW1lbnQgKG9yZy1lbGVtZW50LS1jdXJyZW50LWVsZW1lbnQgZW5kIChxdW90ZSBlbGVtZW50 KSBzcGVjaWFsLWZsYWcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpzdHJ1Y3R1cmUgcGFyZW50KSkp CiAgKGlmIGVsZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50LS1jdXJyZW50LWVs ZW1lbnQgZW5kIChxdW90ZSBlbGVtZW50KSBzcGVjaWFsLWZsYWcgKG9yZy1lbGVtZW50LXByb3Bl cnR5IDpzdHJ1Y3R1cmUgcGFyZW50KSkpIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgZWxlbWVu dCA6cGFyZW50IHBhcmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQgZWxlbWVudCkpCiAgKHdo aWxlIHQgKGlmIHN5bmNwIChwcm9nbiAoY29uZCAoKD0gKHBvaW50KSBwb3MpICh0aHJvdyAocXVv dGUgZXhpdCkgcGFyZW50KSkgKChvcmctZWxlbWVudC0tY2FjaGUtaW50ZXJydXB0LXAgdGltZS1s aW1pdCkgKHRocm93IChxdW90ZSBpbnRlcnJ1cHQpIG5pbCkpKSkpIChpZiBlbGVtZW50IG5pbCAo c2V0cSBlbGVtZW50IChvcmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50IGVuZCAocXVvdGUgZWxl bWVudCkgc3BlY2lhbC1mbGFnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6c3RydWN0dXJlIHBhcmVu dCkpKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQpIChv cmctZWxlbWVudC0tY2FjaGUtcHV0IGVsZW1lbnQpKSAobGV0ICgoZWxlbS1lbmQgKG9yZy1lbGVt ZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkpICh0eXBlIChvcmctZWxlbWVudC10eXBlIGVsZW1l bnQpKSkgKGNvbmQgKChhbmQgKDw9IGVsZW0tZW5kIHBvcykgKC89IChwb2ludC1tYXgpIGVsZW0t ZW5kKSkgKGdvdG8tY2hhciBlbGVtLWVuZCkpICgobm90IChtZW1xIHR5cGUgb3JnLWVsZW1lbnQt Z3JlYXRlci1lbGVtZW50cykpICh0aHJvdyAocXVvdGUgZXhpdCkgZWxlbWVudCkpICgobGV0ICgo Y2JlZyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmNvbnRlbnRzLWJlZ2luIGVsZW1lbnQpKSAoY2Vu ZCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmNvbnRlbnRzLWVuZCBlbGVtZW50KSkpIChpZiAob3Ig c3luY3AgKGFuZCBjYmVnIGNlbmQgLi4uIC4uLikpIChwcm9nbiAoZ290by1jaGFyIC4uLikgKHNl dHEgbmV4dCBuaWwgc3BlY2lhbC1mbGFnIC4uLiBwYXJlbnQgZWxlbWVudCBlbmQgY2VuZCkpKSkp ICh0ICh0aHJvdyAocXVvdGUgZXhpdCkgZWxlbWVudCkpKSkgKHNldHEgZWxlbWVudCBuaWwpKQog IChsZXQgKChlbmQgKG9yIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQpIChzYXZl LWV4Y3Vyc2lvbiAobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3Jn LW91dGxpbmUtcmVnZXhwIC4uLikgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkg KG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgLi4uKSkgKG91dGxpbmUtbmV4dC1oZWFkaW5nKSkgKHBv aW50KSkpKSAocGFyZW50IGVsZW1lbnQpIHNwZWNpYWwtZmxhZykgKHdoaWxlIHQgKGlmIHN5bmNw IChwcm9nbiAoY29uZCAoKD0gKHBvaW50KSBwb3MpICh0aHJvdyAocXVvdGUgZXhpdCkgcGFyZW50 KSkgKChvcmctZWxlbWVudC0tY2FjaGUtaW50ZXJydXB0LXAgdGltZS1saW1pdCkgKHRocm93IChx dW90ZSBpbnRlcnJ1cHQpIG5pbCkpKSkpIChpZiBlbGVtZW50IG5pbCAoc2V0cSBlbGVtZW50IChv cmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50IGVuZCAocXVvdGUgZWxlbWVudCkgc3BlY2lhbC1m bGFnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6c3RydWN0dXJlIHBhcmVudCkpKSAob3JnLWVsZW1l bnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQpIChvcmctZWxlbWVudC0tY2Fj aGUtcHV0IGVsZW1lbnQpKSAobGV0ICgoZWxlbS1lbmQgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpl bmQgZWxlbWVudCkpICh0eXBlIChvcmctZWxlbWVudC10eXBlIGVsZW1lbnQpKSkgKGNvbmQgKChh bmQgKDw9IGVsZW0tZW5kIHBvcykgKC89IChwb2ludC1tYXgpIGVsZW0tZW5kKSkgKGdvdG8tY2hh ciBlbGVtLWVuZCkpICgobm90IChtZW1xIHR5cGUgb3JnLWVsZW1lbnQtZ3JlYXRlci1lbGVtZW50 cykpICh0aHJvdyAocXVvdGUgZXhpdCkgZWxlbWVudCkpICgobGV0ICgoY2JlZyAuLi4pIChjZW5k IC4uLikpIChpZiAob3Igc3luY3AgLi4uKSAocHJvZ24gLi4uIC4uLikpKSkgKHQgKHRocm93IChx dW90ZSBleGl0KSBlbGVtZW50KSkpKSAoc2V0cSBlbGVtZW50IG5pbCkpKQogIChsZXQqICgoY2Fj aGVkIChhbmQgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKG9yZy1lbGVtZW50LS1jYWNo ZS1maW5kIHBvcyBuaWwpKSkgKGJlZ2luIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6YmVnaW4gY2Fj aGVkKSkgZWxlbWVudCBuZXh0KSAoY29uZCAoKG5vdCBjYWNoZWQpIChpZiAobGV0KiAoKG9yZy1j YWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0 LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVn ZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdl eHApKSkgKG91dGxpbmUtcHJldmlvdXMtaGVhZGluZykpIChwcm9nbiAoZm9yd2FyZC1saW5lKSkp IChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkgKCg9IHBv cyBiZWdpbikgKHRocm93IChxdW90ZSBleGl0KSAoaWYgc3luY3AgKG9yZy1lbGVtZW50LXByb3Bl cnR5IDpwYXJlbnQgY2FjaGVkKSBjYWNoZWQpKSkgKChyZS1zZWFyY2gtYmFja3dhcmQgKGxldCog KChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAo b3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRs aW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxp bmUtcmVnZXhwKSkpIG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wpIGJlZ2luIHQpIChmb3J3YXJkLWxp bmUpIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkgKHQg KGxldCAoKHVwIGNhY2hlZCkgKHBvcyAoaWYgKD0gLi4uIHBvcykgKDEtIHBvcykgcG9zKSkpIChn b3RvLWNoYXIgKG9yIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6Y29udGVudHMtYmVnaW4gY2FjaGVk KSBiZWdpbikpICh3aGlsZSAobGV0ICgoZW5kIC4uLikpIChhbmQgKDw9IGVuZCBwb3MpIChnb3Rv LWNoYXIgZW5kKSAoc2V0cSB1cCAuLi4pKSkpIChjb25kICgobm90IHVwKSkgKChlb2JwKSAoc2V0 cSBlbGVtZW50IHVwKSkgKHQgKHNldHEgZWxlbWVudCB1cCBuZXh0IChwb2ludCkpKSkpKSkgKGxl dCAoKGVuZCAob3IgKG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkgKHNhdmUtZXhj dXJzaW9uIChsZXQqICguLi4gLi4uIC4uLiAuLi4pIChvdXRsaW5lLW5leHQtaGVhZGluZykpIChw b2ludCkpKSkgKHBhcmVudCBlbGVtZW50KSBzcGVjaWFsLWZsYWcpICh3aGlsZSB0IChpZiBzeW5j cCAocHJvZ24gKGNvbmQgKCg9IC4uLiBwb3MpICh0aHJvdyAuLi4gcGFyZW50KSkgKChvcmctZWxl bWVudC0tY2FjaGUtaW50ZXJydXB0LXAgdGltZS1saW1pdCkgKHRocm93IC4uLiBuaWwpKSkpKSAo aWYgZWxlbWVudCBuaWwgKHNldHEgZWxlbWVudCAob3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVu dCBlbmQgKHF1b3RlIGVsZW1lbnQpIHNwZWNpYWwtZmxhZyAob3JnLWVsZW1lbnQtcHJvcGVydHkg OnN0cnVjdHVyZSBwYXJlbnQpKSkgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBlbGVtZW50IDpw YXJlbnQgcGFyZW50KSAob3JnLWVsZW1lbnQtLWNhY2hlLXB1dCBlbGVtZW50KSkgKGxldCAoKGVs ZW0tZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQpKSAodHlwZSAob3JnLWVs ZW1lbnQtdHlwZSBlbGVtZW50KSkpIChjb25kICgoYW5kICg8PSBlbGVtLWVuZCBwb3MpICgvPSAu Li4gZWxlbS1lbmQpKSAoZ290by1jaGFyIGVsZW0tZW5kKSkgKChub3QgKG1lbXEgdHlwZSBvcmct ZWxlbWVudC1ncmVhdGVyLWVsZW1lbnRzKSkgKHRocm93IChxdW90ZSBleGl0KSBlbGVtZW50KSkg KChsZXQgKC4uLiAuLi4pIChpZiAuLi4gLi4uKSkpICh0ICh0aHJvdyAocXVvdGUgZXhpdCkgZWxl bWVudCkpKSkgKHNldHEgZWxlbWVudCBuaWwpKSkpCiAgKHNhdmUtcmVzdHJpY3Rpb24gKHdpZGVu KSAoZ290by1jaGFyIHBvcykgKGxldCogKChjYWNoZWQgKGFuZCAob3JnLWVsZW1lbnQtLWNhY2hl LWFjdGl2ZS1wKSAob3JnLWVsZW1lbnQtLWNhY2hlLWZpbmQgcG9zIG5pbCkpKSAoYmVnaW4gKG9y Zy1lbGVtZW50LXByb3BlcnR5IDpiZWdpbiBjYWNoZWQpKSBlbGVtZW50IG5leHQpIChjb25kICgo bm90IGNhY2hlZCkgKGlmIChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQp IChvcmctb3V0bGluZS1yZWdleHAgLi4uKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVn ZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAuLi4pKSAob3V0bGluZS1wcmV2aW91cy1oZWFk aW5nKSkgKHByb2duIChmb3J3YXJkLWxpbmUpKSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4i KSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAoKD0gcG9zIGJlZ2luKSAodGhyb3cgKHF1b3RlIGV4aXQp IChpZiBzeW5jcCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhcmVudCBjYWNoZWQpIGNhY2hlZCkp KSAoKHJlLXNlYXJjaC1iYWNrd2FyZCAobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxl dmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIC4uLikgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRs aW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgLi4uKSkgb3JnLW91dGxpbmUtcmVn ZXhwLWJvbCkgYmVnaW4gdCkgKGZvcndhcmQtbGluZSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0J XG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAodCAobGV0ICgodXAgY2FjaGVkKSAocG9zIChpZiAu Li4gLi4uIHBvcykpKSAoZ290by1jaGFyIChvciAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmNvbnRl bnRzLWJlZ2luIGNhY2hlZCkgYmVnaW4pKSAod2hpbGUgKGxldCAoLi4uKSAoYW5kIC4uLiAuLi4g Li4uKSkpIChjb25kICgobm90IHVwKSkgKChlb2JwKSAoc2V0cSBlbGVtZW50IHVwKSkgKHQgKHNl dHEgZWxlbWVudCB1cCBuZXh0IC4uLikpKSkpKSAobGV0ICgoZW5kIChvciAob3JnLWVsZW1lbnQt cHJvcGVydHkgOmVuZCBlbGVtZW50KSAoc2F2ZS1leGN1cnNpb24gKGxldCogLi4uIC4uLikgKHBv aW50KSkpKSAocGFyZW50IGVsZW1lbnQpIHNwZWNpYWwtZmxhZykgKHdoaWxlIHQgKGlmIHN5bmNw IChwcm9nbiAoY29uZCAoLi4uIC4uLikgKC4uLiAuLi4pKSkpIChpZiBlbGVtZW50IG5pbCAoc2V0 cSBlbGVtZW50IChvcmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50IGVuZCAocXVvdGUgZWxlbWVu dCkgc3BlY2lhbC1mbGFnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6c3RydWN0dXJlIHBhcmVudCkp KSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQpIChvcmct ZWxlbWVudC0tY2FjaGUtcHV0IGVsZW1lbnQpKSAobGV0ICgoZWxlbS1lbmQgKG9yZy1lbGVtZW50 LXByb3BlcnR5IDplbmQgZWxlbWVudCkpICh0eXBlIChvcmctZWxlbWVudC10eXBlIGVsZW1lbnQp KSkgKGNvbmQgKChhbmQgLi4uIC4uLikgKGdvdG8tY2hhciBlbGVtLWVuZCkpICgobm90IC4uLikg KHRocm93IC4uLiBlbGVtZW50KSkgKChsZXQgLi4uIC4uLikpICh0ICh0aHJvdyAuLi4gZWxlbWVu dCkpKSkgKHNldHEgZWxlbWVudCBuaWwpKSkpKQogIChzYXZlLWV4Y3Vyc2lvbiAoc2F2ZS1yZXN0 cmljdGlvbiAod2lkZW4pIChnb3RvLWNoYXIgcG9zKSAobGV0KiAoKGNhY2hlZCAoYW5kIChvcmct ZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChvcmctZWxlbWVudC0tY2FjaGUtZmluZCBwb3Mgbmls KSkpIChiZWdpbiAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmJlZ2luIGNhY2hlZCkpIGVsZW1lbnQg bmV4dCkgKGNvbmQgKChub3QgY2FjaGVkKSAoaWYgKGxldCogKC4uLiAuLi4gLi4uIC4uLikgKG91 dGxpbmUtcHJldmlvdXMtaGVhZGluZykpIChwcm9nbiAoZm9yd2FyZC1saW5lKSkpIChza2lwLWNo YXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkgKCg9IHBvcyBiZWdpbikg KHRocm93IChxdW90ZSBleGl0KSAoaWYgc3luY3AgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpwYXJl bnQgY2FjaGVkKSBjYWNoZWQpKSkgKChyZS1zZWFyY2gtYmFja3dhcmQgKGxldCogKC4uLiAuLi4g Li4uIC4uLikgb3JnLW91dGxpbmUtcmVnZXhwLWJvbCkgYmVnaW4gdCkgKGZvcndhcmQtbGluZSkg KHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAodCAobGV0 ICgodXAgY2FjaGVkKSAocG9zIC4uLikpIChnb3RvLWNoYXIgKG9yIC4uLiBiZWdpbikpICh3aGls ZSAobGV0IC4uLiAuLi4pKSAoY29uZCAoLi4uKSAoLi4uIC4uLikgKHQgLi4uKSkpKSkgKGxldCAo KGVuZCAob3IgKG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkgKHNhdmUtZXhjdXJz aW9uIC4uLiAuLi4pKSkgKHBhcmVudCBlbGVtZW50KSBzcGVjaWFsLWZsYWcpICh3aGlsZSB0IChp ZiBzeW5jcCAocHJvZ24gKGNvbmQgLi4uIC4uLikpKSAoaWYgZWxlbWVudCBuaWwgKHNldHEgZWxl bWVudCAob3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVudCBlbmQgLi4uIHNwZWNpYWwtZmxhZyAu Li4pKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQpIChv cmctZWxlbWVudC0tY2FjaGUtcHV0IGVsZW1lbnQpKSAobGV0ICgoZWxlbS1lbmQgLi4uKSAodHlw ZSAuLi4pKSAoY29uZCAoLi4uIC4uLikgKC4uLiAuLi4pICguLi4pICh0IC4uLikpKSAoc2V0cSBl bGVtZW50IG5pbCkpKSkpKQogIChjYXRjaCAocXVvdGUgZXhpdCkgKHNhdmUtZXhjdXJzaW9uIChz YXZlLXJlc3RyaWN0aW9uICh3aWRlbikgKGdvdG8tY2hhciBwb3MpIChsZXQqICgoY2FjaGVkIChh bmQgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKG9yZy1lbGVtZW50LS1jYWNoZS1maW5k IHBvcyBuaWwpKSkgKGJlZ2luIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6YmVnaW4gY2FjaGVkKSkg ZWxlbWVudCBuZXh0KSAoY29uZCAoKG5vdCBjYWNoZWQpIChpZiAobGV0KiAuLi4gLi4uKSAocHJv Z24gLi4uKSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUp KSAoKD0gcG9zIGJlZ2luKSAodGhyb3cgKHF1b3RlIGV4aXQpIChpZiBzeW5jcCAuLi4gY2FjaGVk KSkpICgocmUtc2VhcmNoLWJhY2t3YXJkIChsZXQqIC4uLiBvcmctb3V0bGluZS1yZWdleHAtYm9s KSBiZWdpbiB0KSAoZm9yd2FyZC1saW5lKSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIpIChi ZWdpbm5pbmctb2YtbGluZSkpICh0IChsZXQgKC4uLiAuLi4pIChnb3RvLWNoYXIgLi4uKSAod2hp bGUgLi4uKSAoY29uZCAuLi4gLi4uIC4uLikpKSkgKGxldCAoKGVuZCAob3IgLi4uIC4uLikpIChw YXJlbnQgZWxlbWVudCkgc3BlY2lhbC1mbGFnKSAod2hpbGUgdCAoaWYgc3luY3AgKHByb2duIC4u LikpIChpZiBlbGVtZW50IG5pbCAoc2V0cSBlbGVtZW50IC4uLikgKG9yZy1lbGVtZW50LXB1dC1w cm9wZXJ0eSBlbGVtZW50IDpwYXJlbnQgcGFyZW50KSAob3JnLWVsZW1lbnQtLWNhY2hlLXB1dCBl bGVtZW50KSkgKGxldCAoLi4uIC4uLikgKGNvbmQgLi4uIC4uLiAuLi4gLi4uKSkgKHNldHEgZWxl bWVudCBuaWwpKSkpKSkpCiAgb3JnLWVsZW1lbnQtLXBhcnNlLXRvKDI1NzI4MCkKICAoY29uZCAo KGJvYnApIG5pbCkgKChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChv cmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRs aW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIChj b25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3JnLWF0LWhlYWRpbmctcCkpIChiZWdp bm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNlciAocG9pbnQtbWF4KSB0 KSkgKHQgKGlmIChvcmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChwcm9nbiAoaWYgKG5vdCBv cmctZWxlbWVudC0tY2FjaGUpIChvcmctZWxlbWVudC1jYWNoZS1yZXNldCkgKG9yZy1lbGVtZW50 LS1jYWNoZS1zeW5jIChjdXJyZW50LWJ1ZmZlcikgb3JpZ2luKSkpKSAob3JnLWVsZW1lbnQtLXBh cnNlLXRvIG9yaWdpbikpKQogIChsZXQgKChvcmlnaW4gKHBvaW50KSkpIChlbmQtb2YtbGluZSkg KHNraXAtY2hhcnMtYmFja3dhcmQgIiANCVxuIikgKGNvbmQgKChib2JwKSBuaWwpICgobGV0KiAo KG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChv cmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxp bmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGlu ZS1yZWdleHApKSkgKG9yZy1hdC1oZWFkaW5nLXApKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmct ZWxlbWVudC1oZWFkbGluZS1wYXJzZXIgKHBvaW50LW1heCkgdCkpICh0IChpZiAob3JnLWVsZW1l bnQtLWNhY2hlLWFjdGl2ZS1wKSAocHJvZ24gKGlmIChub3Qgb3JnLWVsZW1lbnQtLWNhY2hlKSAo b3JnLWVsZW1lbnQtY2FjaGUtcmVzZXQpIChvcmctZWxlbWVudC0tY2FjaGUtc3luYyAoY3VycmVu dC1idWZmZXIpIG9yaWdpbikpKSkgKG9yZy1lbGVtZW50LS1wYXJzZS10byBvcmlnaW4pKSkpCiAg KHNhdmUtcmVzdHJpY3Rpb24gKHdpZGVuKSAobGV0ICgob3JpZ2luIChwb2ludCkpKSAoZW5kLW9m LWxpbmUpIChza2lwLWNoYXJzLWJhY2t3YXJkICIgDQlcbiIpIChjb25kICgoYm9icCkgbmlsKSAo KGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJl Z2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9y Zy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3Jn LW91dGxpbmUtcmVnZXhwKSkpIChvcmctYXQtaGVhZGluZy1wKSkgKGJlZ2lubmluZy1vZi1saW5l KSAob3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFyc2VyIChwb2ludC1tYXgpIHQpKSAodCAoaWYgKG9y Zy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKHByb2duIChpZiAobm90IG9yZy1lbGVtZW50LS1j YWNoZSkgKG9yZy1lbGVtZW50LWNhY2hlLXJlc2V0KSAob3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMg Li4uIG9yaWdpbikpKSkgKG9yZy1lbGVtZW50LS1wYXJzZS10byBvcmlnaW4pKSkpKQogIChzYXZl LWV4Y3Vyc2lvbiAoc2F2ZS1yZXN0cmljdGlvbiAod2lkZW4pIChsZXQgKChvcmlnaW4gKHBvaW50 KSkpIChlbmQtb2YtbGluZSkgKHNraXAtY2hhcnMtYmFja3dhcmQgIiANCVxuIikgKGNvbmQgKChi b2JwKSBuaWwpICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3Jn LW91dGxpbmUtcmVnZXhwIC4uLikgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkg KG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgLi4uKSkgKG9yZy1hdC1oZWFkaW5nLXApKSAoYmVnaW5u aW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIgKHBvaW50LW1heCkgdCkp ICh0IChpZiAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAocHJvZ24gKGlmIC4uLiAuLi4g Li4uKSkpIChvcmctZWxlbWVudC0tcGFyc2UtdG8gb3JpZ2luKSkpKSkpCiAgb3JnLWVsZW1lbnQt YXQtcG9pbnQoKQogIChsZXQgKChkcmF3ZXIgKG9yZy1lbGVtZW50LWF0LXBvaW50KSkpIChpZiAo YW5kIChlcSAob3JnLWVsZW1lbnQtdHlwZSBkcmF3ZXIpIChxdW90ZSBwcm9wZXJ0eS1kcmF3ZXIp KSAobGV0ICgocCBkcmF3ZXIpKSAod2hpbGUgKGFuZCAoc2V0cSBwIChvcmctZWxlbWVudC1wcm9w ZXJ0eSA6cGFyZW50IHApKSAobm90IChlcSAuLi4gLi4uKSkpKSAobm90IHApKSkgKHByb2duIChs ZXQgKChlbmQgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpjb250ZW50cy1lbmQgZHJhd2VyKSkpIChp ZiBlbmQgKHByb2duIChmb3J3YXJkLWxpbmUpICh3aGlsZSAoPCAuLi4gZW5kKSAoaWYgLi4uIC4u LikgKGZvcndhcmQtbGluZSkpKSkpKSkpCiAgKHdoaWxlIChhbmQgKG51bGwgcGxpc3QpIChyZS1z ZWFyY2gtZm9yd2FyZCBvcmctcHJvcGVydHktc3RhcnQtcmUgZW5kIHQpKSAobGV0ICgoZHJhd2Vy IChvcmctZWxlbWVudC1hdC1wb2ludCkpKSAoaWYgKGFuZCAoZXEgKG9yZy1lbGVtZW50LXR5cGUg ZHJhd2VyKSAocXVvdGUgcHJvcGVydHktZHJhd2VyKSkgKGxldCAoKHAgZHJhd2VyKSkgKHdoaWxl IChhbmQgKHNldHEgcCAuLi4pIChub3QgLi4uKSkpIChub3QgcCkpKSAocHJvZ24gKGxldCAoKGVu ZCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmNvbnRlbnRzLWVuZCBkcmF3ZXIpKSkgKGlmIGVuZCAo cHJvZ24gKGZvcndhcmQtbGluZSkgKHdoaWxlIC4uLiAuLi4gLi4uKSkpKSkpKSkKICAoc2F2ZS1l eGN1cnNpb24gKHdoaWxlIChhbmQgKG51bGwgcGxpc3QpIChyZS1zZWFyY2gtZm9yd2FyZCBvcmct cHJvcGVydHktc3RhcnQtcmUgZW5kIHQpKSAobGV0ICgoZHJhd2VyIChvcmctZWxlbWVudC1hdC1w b2ludCkpKSAoaWYgKGFuZCAoZXEgKG9yZy1lbGVtZW50LXR5cGUgZHJhd2VyKSAocXVvdGUgcHJv cGVydHktZHJhd2VyKSkgKGxldCAoKHAgZHJhd2VyKSkgKHdoaWxlIChhbmQgLi4uIC4uLikpIChu b3QgcCkpKSAocHJvZ24gKGxldCAoKGVuZCAuLi4pKSAoaWYgZW5kIChwcm9nbiAuLi4gLi4uKSkp KSkpKSBwbGlzdCkKICAobGV0ICgoZW5kIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAoKG9yZy1jYWxs ZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxp bWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhw KSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHAp KSkgKG91dGxpbmUtbmV4dC1oZWFkaW5nKSkgKHBvaW50KSkpIHBsaXN0KSAoc2F2ZS1leGN1cnNp b24gKHdoaWxlIChhbmQgKG51bGwgcGxpc3QpIChyZS1zZWFyY2gtZm9yd2FyZCBvcmctcHJvcGVy dHktc3RhcnQtcmUgZW5kIHQpKSAobGV0ICgoZHJhd2VyIChvcmctZWxlbWVudC1hdC1wb2ludCkp KSAoaWYgKGFuZCAoZXEgKG9yZy1lbGVtZW50LXR5cGUgZHJhd2VyKSAocXVvdGUgcHJvcGVydHkt ZHJhd2VyKSkgKGxldCAoLi4uKSAod2hpbGUgLi4uKSAobm90IHApKSkgKHByb2duIChsZXQgKC4u LikgKGlmIGVuZCAuLi4pKSkpKSkgcGxpc3QpKQogIChsZXQqICgoY29tcG9uZW50cyAob3JnLWhl YWRpbmctY29tcG9uZW50cykpIChsZXZlbCAobnRoIDEgY29tcG9uZW50cykpICh0b2RvIChudGgg MiBjb21wb25lbnRzKSkgKHRvZG8tdHlwZSAoYW5kIHRvZG8gKGlmIChtZW1iZXIgdG9kbyBvcmct ZG9uZS1rZXl3b3JkcykgKHF1b3RlIGRvbmUpIChxdW90ZSB0b2RvKSkpKSAodGFncyAobGV0ICgo cmF3LXRhZ3MgKG50aCA1IGNvbXBvbmVudHMpKSkgKGFuZCByYXctdGFncyAob3JnLXNwbGl0LXN0 cmluZyByYXctdGFncyAiOiIpKSkpIChyYXctdmFsdWUgKG9yIChudGggNCBjb21wb25lbnRzKSAi IikpIChjb21tZW50ZWRwIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIG5pbCkpIChzdHJpbmctbWF0 Y2ggKGZvcm1hdCAiXiVzXFwoIFxcfCRcXCkiIG9yZy1jb21tZW50LXN0cmluZykgcmF3LXZhbHVl KSkpIChhcmNoaXZlZHAgKG1lbWJlciBvcmctYXJjaGl2ZS10YWcgdGFncykpIChmb290bm90ZS1z ZWN0aW9uLXAgKGFuZCBvcmctZm9vdG5vdGUtc2VjdGlvbiAoc3RyaW5nPSBvcmctZm9vdG5vdGUt c2VjdGlvbiByYXctdmFsdWUpKSkgKHN0YW5kYXJkLXByb3BzIChsZXQgKChlbmQgKHNhdmUtZXhj dXJzaW9uIChsZXQqIC4uLiAuLi4pIChwb2ludCkpKSBwbGlzdCkgKHNhdmUtZXhjdXJzaW9uICh3 aGlsZSAoYW5kIChudWxsIHBsaXN0KSAocmUtc2VhcmNoLWZvcndhcmQgb3JnLXByb3BlcnR5LXN0 YXJ0LXJlIGVuZCB0KSkgKGxldCAoLi4uKSAoaWYgLi4uIC4uLikpKSBwbGlzdCkpKSAodGltZS1w cm9wcyAoc2F2ZS1leGN1cnNpb24gKGZvcndhcmQtbGluZSkgKGlmIChsb29raW5nLWF0IG9yZy1w bGFubmluZy1vci1jbG9jay1saW5lLXJlKSAocHJvZ24gKGxldCAoLi4uIHBsaXN0KSAod2hpbGUg Li4uIC4uLiAuLi4gLi4uKSBwbGlzdCkpKSkpIChiZWdpbiAocG9pbnQpKSAoZW5kIChtaW4gKHNh dmUtZXhjdXJzaW9uIChvcmctZW5kLW9mLXN1YnRyZWUgdCB0KSkgbGltaXQpKSAocG9zLWFmdGVy LWhlYWQgKHByb2duIChmb3J3YXJkLWxpbmUpIChwb2ludCkpKSAoY29udGVudHMtYmVnaW4gKHNh dmUtZXhjdXJzaW9uIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIiBlbmQpIChhbmQgKC89IChw b2ludCkgZW5kKSAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pKSkpIChjb250ZW50cy1lbmQgKGFu ZCBjb250ZW50cy1iZWdpbiAocHJvZ24gKGdvdG8tY2hhciBlbmQpIChza2lwLWNoYXJzLWJhY2t3 YXJkICIgDQlcbiIpIChmb3J3YXJkLWxpbmUpIChwb2ludCkpKSkpIChpZiBjb21tZW50ZWRwIChw cm9nbiAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCBuaWwpKSAoc2V0cSByYXctdmFsdWUgKHJlcGxh Y2UtcmVnZXhwLWluLXN0cmluZyAoY29uY2F0IChyZWdleHAtcXVvdGUgb3JnLWNvbW1lbnQtc3Ry aW5nKSAiXFwoPzogXFx8JFxcKSIpICIiIHJhdy12YWx1ZSkpKSkpIChpZiBhcmNoaXZlZHAgKHBy b2duIChzZXRxIHRhZ3MgKGRlbGV0ZSBvcmctYXJjaGl2ZS10YWcgdGFncykpKSkgKGxldCAoKGhl YWRsaW5lIChsaXN0IChxdW90ZSBoZWFkbGluZSkgKG5jb25jIChsaXN0IDpyYXctdmFsdWUgcmF3 LXZhbHVlIDpiZWdpbiBiZWdpbiA6ZW5kIGVuZCA6cHJlLWJsYW5rIChpZiAuLi4gMCAuLi4pIDpj b250ZW50cy1iZWdpbiBjb250ZW50cy1iZWdpbiA6Y29udGVudHMtZW5kIGNvbnRlbnRzLWVuZCA6 bGV2ZWwgbGV2ZWwgOnByaW9yaXR5IChudGggMyBjb21wb25lbnRzKSA6dGFncyB0YWdzIDp0b2Rv LWtleXdvcmQgdG9kbyA6dG9kby10eXBlIHRvZG8tdHlwZSA6cG9zdC1ibGFuayAoY291bnQtbGlu ZXMgLi4uIGVuZCkgOmZvb3Rub3RlLXNlY3Rpb24tcCBmb290bm90ZS1zZWN0aW9uLXAgOmFyY2hp dmVkcCBhcmNoaXZlZHAgOmNvbW1lbnRlZHAgY29tbWVudGVkcCkgdGltZS1wcm9wcyBzdGFuZGFy ZC1wcm9wcykpKSkgKGxldCAoKGFsdC10aXRsZSAob3JnLWVsZW1lbnQtcHJvcGVydHkgOkFMVF9U SVRMRSBoZWFkbGluZSkpKSAoaWYgYWx0LXRpdGxlIChwcm9nbiAob3JnLWVsZW1lbnQtcHV0LXBy b3BlcnR5IGhlYWRsaW5lIDphbHQtdGl0bGUgKGlmIHJhdy1zZWNvbmRhcnktcCBhbHQtdGl0bGUg KG9yZy1lbGVtZW50LXBhcnNlLXNlY29uZGFyeS1zdHJpbmcgYWx0LXRpdGxlIC4uLiBoZWFkbGlu ZSkpKSkpKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGhlYWRsaW5lIDp0aXRsZSAoaWYgcmF3 LXNlY29uZGFyeS1wIHJhdy12YWx1ZSAob3JnLWVsZW1lbnQtcGFyc2Utc2Vjb25kYXJ5LXN0cmlu ZyByYXctdmFsdWUgKG9yZy1lbGVtZW50LXJlc3RyaWN0aW9uIChxdW90ZSBoZWFkbGluZSkpIGhl YWRsaW5lKSkpKSkKICAoc2F2ZS1leGN1cnNpb24gKGxldCogKChjb21wb25lbnRzIChvcmctaGVh ZGluZy1jb21wb25lbnRzKSkgKGxldmVsIChudGggMSBjb21wb25lbnRzKSkgKHRvZG8gKG50aCAy IGNvbXBvbmVudHMpKSAodG9kby10eXBlIChhbmQgdG9kbyAoaWYgKG1lbWJlciB0b2RvIG9yZy1k b25lLWtleXdvcmRzKSAocXVvdGUgZG9uZSkgKHF1b3RlIHRvZG8pKSkpICh0YWdzIChsZXQgKChy YXctdGFncyAobnRoIDUgY29tcG9uZW50cykpKSAoYW5kIHJhdy10YWdzIChvcmctc3BsaXQtc3Ry aW5nIHJhdy10YWdzICI6IikpKSkgKHJhdy12YWx1ZSAob3IgKG50aCA0IGNvbXBvbmVudHMpICIi KSkgKGNvbW1lbnRlZHAgKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggbmlsKSkgKHN0cmluZy1tYXRj aCAoZm9ybWF0ICJeJXNcXCggXFx8JFxcKSIgb3JnLWNvbW1lbnQtc3RyaW5nKSByYXctdmFsdWUp KSkgKGFyY2hpdmVkcCAobWVtYmVyIG9yZy1hcmNoaXZlLXRhZyB0YWdzKSkgKGZvb3Rub3RlLXNl Y3Rpb24tcCAoYW5kIG9yZy1mb290bm90ZS1zZWN0aW9uIChzdHJpbmc9IG9yZy1mb290bm90ZS1z ZWN0aW9uIHJhdy12YWx1ZSkpKSAoc3RhbmRhcmQtcHJvcHMgKGxldCAoKGVuZCAoc2F2ZS1leGN1 cnNpb24gLi4uIC4uLikpIHBsaXN0KSAoc2F2ZS1leGN1cnNpb24gKHdoaWxlIChhbmQgLi4uIC4u LikgKGxldCAuLi4gLi4uKSkgcGxpc3QpKSkgKHRpbWUtcHJvcHMgKHNhdmUtZXhjdXJzaW9uIChm b3J3YXJkLWxpbmUpIChpZiAobG9va2luZy1hdCBvcmctcGxhbm5pbmctb3ItY2xvY2stbGluZS1y ZSkgKHByb2duIChsZXQgLi4uIC4uLiBwbGlzdCkpKSkpIChiZWdpbiAocG9pbnQpKSAoZW5kICht aW4gKHNhdmUtZXhjdXJzaW9uIChvcmctZW5kLW9mLXN1YnRyZWUgdCB0KSkgbGltaXQpKSAocG9z LWFmdGVyLWhlYWQgKHByb2duIChmb3J3YXJkLWxpbmUpIChwb2ludCkpKSAoY29udGVudHMtYmVn aW4gKHNhdmUtZXhjdXJzaW9uIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIiBlbmQpIChhbmQg KC89IChwb2ludCkgZW5kKSAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pKSkpIChjb250ZW50cy1l bmQgKGFuZCBjb250ZW50cy1iZWdpbiAocHJvZ24gKGdvdG8tY2hhciBlbmQpIChza2lwLWNoYXJz LWJhY2t3YXJkICIgDQlcbiIpIChmb3J3YXJkLWxpbmUpIChwb2ludCkpKSkpIChpZiBjb21tZW50 ZWRwIChwcm9nbiAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCBuaWwpKSAoc2V0cSByYXctdmFsdWUg KHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZyAoY29uY2F0IC4uLiAiXFwoPzogXFx8JFxcKSIpICIi IHJhdy12YWx1ZSkpKSkpIChpZiBhcmNoaXZlZHAgKHByb2duIChzZXRxIHRhZ3MgKGRlbGV0ZSBv cmctYXJjaGl2ZS10YWcgdGFncykpKSkgKGxldCAoKGhlYWRsaW5lIChsaXN0IChxdW90ZSBoZWFk bGluZSkgKG5jb25jIChsaXN0IDpyYXctdmFsdWUgcmF3LXZhbHVlIDpiZWdpbiBiZWdpbiA6ZW5k IGVuZCA6cHJlLWJsYW5rIC4uLiA6Y29udGVudHMtYmVnaW4gY29udGVudHMtYmVnaW4gOmNvbnRl bnRzLWVuZCBjb250ZW50cy1lbmQgOmxldmVsIGxldmVsIDpwcmlvcml0eSAuLi4gOnRhZ3MgdGFn cyA6dG9kby1rZXl3b3JkIHRvZG8gOnRvZG8tdHlwZSB0b2RvLXR5cGUgOnBvc3QtYmxhbmsgLi4u IDpmb290bm90ZS1zZWN0aW9uLXAgZm9vdG5vdGUtc2VjdGlvbi1wIDphcmNoaXZlZHAgYXJjaGl2 ZWRwIDpjb21tZW50ZWRwIGNvbW1lbnRlZHApIHRpbWUtcHJvcHMgc3RhbmRhcmQtcHJvcHMpKSkp IChsZXQgKChhbHQtdGl0bGUgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpBTFRfVElUTEUgaGVhZGxp bmUpKSkgKGlmIGFsdC10aXRsZSAocHJvZ24gKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBoZWFk bGluZSA6YWx0LXRpdGxlIChpZiByYXctc2Vjb25kYXJ5LXAgYWx0LXRpdGxlIC4uLikpKSkpIChv cmctZWxlbWVudC1wdXQtcHJvcGVydHkgaGVhZGxpbmUgOnRpdGxlIChpZiByYXctc2Vjb25kYXJ5 LXAgcmF3LXZhbHVlIChvcmctZWxlbWVudC1wYXJzZS1zZWNvbmRhcnktc3RyaW5nIHJhdy12YWx1 ZSAob3JnLWVsZW1lbnQtcmVzdHJpY3Rpb24gKHF1b3RlIGhlYWRsaW5lKSkgaGVhZGxpbmUpKSkp KSkKICBvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIoMjU3NzA2IHQpCiAgKGNvbmQgKChlcSBz cGVjaWFsIChxdW90ZSBpdGVtKSkgKG9yZy1lbGVtZW50LWl0ZW0tcGFyc2VyIGxpbWl0IHN0cnVj dHVyZSByYXctc2Vjb25kYXJ5LXApKSAoKGVxIHNwZWNpYWwgKHF1b3RlIHRhYmxlLXJvdykpIChv cmctZWxlbWVudC10YWJsZS1yb3ctcGFyc2VyIGxpbWl0KSkgKChlcSBzcGVjaWFsIChxdW90ZSBu b2RlLXByb3BlcnR5KSkgKG9yZy1lbGVtZW50LW5vZGUtcHJvcGVydHktcGFyc2VyIGxpbWl0KSkg KChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1y ZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBv cmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9y Zy1vdXRsaW5lLXJlZ2V4cCkpKSAob3JnLWF0LWhlYWRpbmctcCkpIChvcmctZWxlbWVudC1oZWFk bGluZS1wYXJzZXIgbGltaXQgcmF3LXNlY29uZGFyeS1wKSkgKChlcSBzcGVjaWFsIChxdW90ZSBz ZWN0aW9uKSkgKG9yZy1lbGVtZW50LXNlY3Rpb24tcGFyc2VyIGxpbWl0KSkgKChlcSBzcGVjaWFs IChxdW90ZSBmaXJzdC1zZWN0aW9uKSkgKG9yZy1lbGVtZW50LXNlY3Rpb24tcGFyc2VyIChvciAo c2F2ZS1leGN1cnNpb24gKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkg KG9yZy1vdXRsaW5lLXJlZ2V4cCAuLi4pIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdl eHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIC4uLikpIChvdXRsaW5lLW5leHQtaGVhZGluZykp KSBsaW1pdCkpKSAoKG5vdCAoYm9scCkpIChvcmctZWxlbWVudC1wYXJhZ3JhcGgtcGFyc2VyIGxp bWl0IChsaXN0IChwb2ludCkpKSkgKChsb29raW5nLWF0IG9yZy1wbGFubmluZy1vci1jbG9jay1s aW5lLXJlKSAoaWYgKGVxdWFsIChtYXRjaC1zdHJpbmcgMSkgb3JnLWNsb2NrLXN0cmluZykgKG9y Zy1lbGVtZW50LWNsb2NrLXBhcnNlciBsaW1pdCkgKG9yZy1lbGVtZW50LXBsYW5uaW5nLXBhcnNl ciBsaW1pdCkpKSAoKG9yZy1hdC1oZWFkaW5nLXApIChvcmctZWxlbWVudC1pbmxpbmV0YXNrLXBh cnNlciBsaW1pdCByYXctc2Vjb25kYXJ5LXApKSAodCAobGV0ICgoYWZmaWxpYXRlZCAob3JnLWVs ZW1lbnQtLWNvbGxlY3QtYWZmaWxpYXRlZC1rZXl3b3JkcyBsaW1pdCkpKSAoY29uZCAoKGFuZCAo Y2RyIGFmZmlsaWF0ZWQpICg+PSAocG9pbnQpIGxpbWl0KSkgKGdvdG8tY2hhciAoY2FyIGFmZmls aWF0ZWQpKSAob3JnLWVsZW1lbnQta2V5d29yZC1wYXJzZXIgbGltaXQgbmlsKSkgKChsb29raW5n LWF0ICJbICAgICBdKlxcXFxiZWdpbntbQS1aYS16MC05Kl0rfVxcKFxcWy4qP1xcXVxcfHsuKj99 XFwpKlsgICAgIF0qJCIpIChvcmctZWxlbWVudC1sYXRleC1lbnZpcm9ubWVudC1wYXJzZXIgbGlt aXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCBvcmctZHJhd2VyLXJlZ2V4cCkgKGlmIChlcXVh bCAobWF0Y2gtc3RyaW5nIDEpICJQUk9QRVJUSUVTIikgKG9yZy1lbGVtZW50LXByb3BlcnR5LWRy YXdlci1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkgKG9yZy1lbGVtZW50LWRyYXdlci1wYXJzZXIg bGltaXQgYWZmaWxpYXRlZCkpKSAoKGxvb2tpbmctYXQgIlsgICBdKjpcXCggXFx8JFxcKSIpIChv cmctZWxlbWVudC1maXhlZC13aWR0aC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2lu Zy1hdCAiWyAgICAgXSojIikgKGdvdG8tY2hhciAobWF0Y2gtZW5kIDApKSAoY29uZCAoKGxvb2tp bmctYXQgIlxcKD86IFxcfCRcXCkiKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1j b21tZW50LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJcXCtCRUdJTl9c XChcXFMtK1xcKSIpIChiZWdpbm5pbmctb2YtbGluZSkgKGxldCAuLi4gLi4uKSkgKChsb29raW5n LWF0ICJcXCtDQUxMOiIpIChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWJhYmVsLWNh bGwtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlxcK0JFR0lOOj8gIikg KGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQtZHluYW1pYy1ibG9jay1wYXJzZXIgbGlt aXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiXFwrXFxTLSs6IikgKGJlZ2lubmluZy1vZi1s aW5lKSAob3JnLWVsZW1lbnQta2V5d29yZC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICh0IChi ZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LXBhcmFncmFwaC1wYXJzZXIgbGltaXQgYWZm aWxpYXRlZCkpKSkgKChsb29raW5nLWF0IG9yZy1mb290bm90ZS1kZWZpbml0aW9uLXJlKSAob3Jn LWVsZW1lbnQtZm9vdG5vdGUtZGVmaW5pdGlvbi1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgo bG9va2luZy1hdCAiWyAgIF0qLVxcezUsXFx9WyAgICBdKiQiKSAob3JnLWVsZW1lbnQtaG9yaXpv bnRhbC1ydWxlLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICIlJSgiKSAo b3JnLWVsZW1lbnQtZGlhcnktc2V4cC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgob3JnLWF0 LXRhYmxlLXAgdCkgKG9yZy1lbGVtZW50LXRhYmxlLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkg KChsb29raW5nLWF0IChvcmctaXRlbS1yZSkpIChvcmctZWxlbWVudC1wbGFpbi1saXN0LXBhcnNl ciBsaW1pdCBhZmZpbGlhdGVkIChvciBzdHJ1Y3R1cmUgKG9yZy1lbGVtZW50LS1saXN0LXN0cnVj dCBsaW1pdCkpKSkgKHQgKG9yZy1lbGVtZW50LXBhcmFncmFwaC1wYXJzZXIgbGltaXQgYWZmaWxp YXRlZCkpKSkpKQogIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIHQpIChyYXctc2Vjb25kYXJ5LXAg KGFuZCBncmFudWxhcml0eSAobm90IChlcSBncmFudWxhcml0eSAocXVvdGUgb2JqZWN0KSkpKSkp IChjb25kICgoZXEgc3BlY2lhbCAocXVvdGUgaXRlbSkpIChvcmctZWxlbWVudC1pdGVtLXBhcnNl ciBsaW1pdCBzdHJ1Y3R1cmUgcmF3LXNlY29uZGFyeS1wKSkgKChlcSBzcGVjaWFsIChxdW90ZSB0 YWJsZS1yb3cpKSAob3JnLWVsZW1lbnQtdGFibGUtcm93LXBhcnNlciBsaW1pdCkpICgoZXEgc3Bl Y2lhbCAocXVvdGUgbm9kZS1wcm9wZXJ0eSkpIChvcmctZWxlbWVudC1ub2RlLXByb3BlcnR5LXBh cnNlciBsaW1pdCkpICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAo b3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0 bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAo Y29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgKG9yZy1hdC1oZWFkaW5nLXApKSAob3Jn LWVsZW1lbnQtaGVhZGxpbmUtcGFyc2VyIGxpbWl0IHJhdy1zZWNvbmRhcnktcCkpICgoZXEgc3Bl Y2lhbCAocXVvdGUgc2VjdGlvbikpIChvcmctZWxlbWVudC1zZWN0aW9uLXBhcnNlciBsaW1pdCkp ICgoZXEgc3BlY2lhbCAocXVvdGUgZmlyc3Qtc2VjdGlvbikpIChvcmctZWxlbWVudC1zZWN0aW9u LXBhcnNlciAob3IgKHNhdmUtZXhjdXJzaW9uIChsZXQqICguLi4gLi4uIC4uLiAuLi4pIChvdXRs aW5lLW5leHQtaGVhZGluZykpKSBsaW1pdCkpKSAoKG5vdCAoYm9scCkpIChvcmctZWxlbWVudC1w YXJhZ3JhcGgtcGFyc2VyIGxpbWl0IChsaXN0IChwb2ludCkpKSkgKChsb29raW5nLWF0IG9yZy1w bGFubmluZy1vci1jbG9jay1saW5lLXJlKSAoaWYgKGVxdWFsIChtYXRjaC1zdHJpbmcgMSkgb3Jn LWNsb2NrLXN0cmluZykgKG9yZy1lbGVtZW50LWNsb2NrLXBhcnNlciBsaW1pdCkgKG9yZy1lbGVt ZW50LXBsYW5uaW5nLXBhcnNlciBsaW1pdCkpKSAoKG9yZy1hdC1oZWFkaW5nLXApIChvcmctZWxl bWVudC1pbmxpbmV0YXNrLXBhcnNlciBsaW1pdCByYXctc2Vjb25kYXJ5LXApKSAodCAobGV0ICgo YWZmaWxpYXRlZCAob3JnLWVsZW1lbnQtLWNvbGxlY3QtYWZmaWxpYXRlZC1rZXl3b3JkcyBsaW1p dCkpKSAoY29uZCAoKGFuZCAoY2RyIGFmZmlsaWF0ZWQpICg+PSAuLi4gbGltaXQpKSAoZ290by1j aGFyIChjYXIgYWZmaWxpYXRlZCkpIChvcmctZWxlbWVudC1rZXl3b3JkLXBhcnNlciBsaW1pdCBu aWwpKSAoKGxvb2tpbmctYXQgIlsgICAgICAgIF0qXFxcXGJlZ2lue1tBLVphLXowLTkqXSt9XFwo XFxbLio/XFxdXFx8ey4qP31cXCkqWyAgICAgXSokIikgKG9yZy1lbGVtZW50LWxhdGV4LWVudmly b25tZW50LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0IG9yZy1kcmF3ZXIt cmVnZXhwKSAoaWYgKGVxdWFsIC4uLiAiUFJPUEVSVElFUyIpIChvcmctZWxlbWVudC1wcm9wZXJ0 eS1kcmF3ZXItcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpIChvcmctZWxlbWVudC1kcmF3ZXItcGFy c2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSkgKChsb29raW5nLWF0ICJbICAgICAgICBdKjpcXCggXFx8 JFxcKSIpIChvcmctZWxlbWVudC1maXhlZC13aWR0aC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkp ICgobG9va2luZy1hdCAiWyAgICAgXSojIikgKGdvdG8tY2hhciAobWF0Y2gtZW5kIDApKSAoY29u ZCAoLi4uIC4uLiAuLi4pICguLi4gLi4uIC4uLikgKC4uLiAuLi4gLi4uKSAoLi4uIC4uLiAuLi4p ICguLi4gLi4uIC4uLikgKHQgLi4uIC4uLikpKSAoKGxvb2tpbmctYXQgb3JnLWZvb3Rub3RlLWRl ZmluaXRpb24tcmUpIChvcmctZWxlbWVudC1mb290bm90ZS1kZWZpbml0aW9uLXBhcnNlciBsaW1p dCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJbICAgXSotXFx7NSxcXH1bICAgIF0qJCIpIChv cmctZWxlbWVudC1ob3Jpem9udGFsLXJ1bGUtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxv b2tpbmctYXQgIiUlKCIpIChvcmctZWxlbWVudC1kaWFyeS1zZXhwLXBhcnNlciBsaW1pdCBhZmZp bGlhdGVkKSkgKChvcmctYXQtdGFibGUtcCB0KSAob3JnLWVsZW1lbnQtdGFibGUtcGFyc2VyIGxp bWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgKG9yZy1pdGVtLXJlKSkgKG9yZy1lbGVtZW50 LXBsYWluLWxpc3QtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQgKG9yIHN0cnVjdHVyZSAuLi4pKSkg KHQgKG9yZy1lbGVtZW50LXBhcmFncmFwaC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpKSkpKSkK ICAoc2F2ZS1leGN1cnNpb24gKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggdCkgKHJhdy1zZWNvbmRh cnktcCAoYW5kIGdyYW51bGFyaXR5IChub3QgKGVxIGdyYW51bGFyaXR5IChxdW90ZSBvYmplY3Qp KSkpKSkgKGNvbmQgKChlcSBzcGVjaWFsIChxdW90ZSBpdGVtKSkgKG9yZy1lbGVtZW50LWl0ZW0t cGFyc2VyIGxpbWl0IHN0cnVjdHVyZSByYXctc2Vjb25kYXJ5LXApKSAoKGVxIHNwZWNpYWwgKHF1 b3RlIHRhYmxlLXJvdykpIChvcmctZWxlbWVudC10YWJsZS1yb3ctcGFyc2VyIGxpbWl0KSkgKChl cSBzcGVjaWFsIChxdW90ZSBub2RlLXByb3BlcnR5KSkgKG9yZy1lbGVtZW50LW5vZGUtcHJvcGVy dHktcGFyc2VyIGxpbWl0KSkgKChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxz IHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkp IChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAt Ym9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3JnLWF0LWhlYWRpbmctcCkp IChvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIgbGltaXQgcmF3LXNlY29uZGFyeS1wKSkgKChl cSBzcGVjaWFsIChxdW90ZSBzZWN0aW9uKSkgKG9yZy1lbGVtZW50LXNlY3Rpb24tcGFyc2VyIGxp bWl0KSkgKChlcSBzcGVjaWFsIChxdW90ZSBmaXJzdC1zZWN0aW9uKSkgKG9yZy1lbGVtZW50LXNl Y3Rpb24tcGFyc2VyIChvciAoc2F2ZS1leGN1cnNpb24gKGxldCogLi4uIC4uLikpIGxpbWl0KSkp ICgobm90IChib2xwKSkgKG9yZy1lbGVtZW50LXBhcmFncmFwaC1wYXJzZXIgbGltaXQgKGxpc3Qg KHBvaW50KSkpKSAoKGxvb2tpbmctYXQgb3JnLXBsYW5uaW5nLW9yLWNsb2NrLWxpbmUtcmUpIChp ZiAoZXF1YWwgKG1hdGNoLXN0cmluZyAxKSBvcmctY2xvY2stc3RyaW5nKSAob3JnLWVsZW1lbnQt Y2xvY2stcGFyc2VyIGxpbWl0KSAob3JnLWVsZW1lbnQtcGxhbm5pbmctcGFyc2VyIGxpbWl0KSkp ICgob3JnLWF0LWhlYWRpbmctcCkgKG9yZy1lbGVtZW50LWlubGluZXRhc2stcGFyc2VyIGxpbWl0 IHJhdy1zZWNvbmRhcnktcCkpICh0IChsZXQgKChhZmZpbGlhdGVkIChvcmctZWxlbWVudC0tY29s bGVjdC1hZmZpbGlhdGVkLWtleXdvcmRzIGxpbWl0KSkpIChjb25kICgoYW5kIC4uLiAuLi4pIChn b3RvLWNoYXIgLi4uKSAob3JnLWVsZW1lbnQta2V5d29yZC1wYXJzZXIgbGltaXQgbmlsKSkgKChs b29raW5nLWF0ICJbICAgICAgXSpcXFxcYmVnaW57W0EtWmEtejAtOSpdK31cXChcXFsuKj9cXF1c XHx7Lio/fVxcKSpbICAgICBdKiQiKSAob3JnLWVsZW1lbnQtbGF0ZXgtZW52aXJvbm1lbnQtcGFy c2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgb3JnLWRyYXdlci1yZWdleHApIChp ZiAuLi4gLi4uIC4uLikpICgobG9va2luZy1hdCAiWyAgICAgICAgXSo6XFwoIFxcfCRcXCkiKSAo b3JnLWVsZW1lbnQtZml4ZWQtd2lkdGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tp bmctYXQgIlsgICAgIF0qIyIpIChnb3RvLWNoYXIgLi4uKSAoY29uZCAuLi4gLi4uIC4uLiAuLi4g Li4uIC4uLikpICgobG9va2luZy1hdCBvcmctZm9vdG5vdGUtZGVmaW5pdGlvbi1yZSkgKG9yZy1l bGVtZW50LWZvb3Rub3RlLWRlZmluaXRpb24tcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxv b2tpbmctYXQgIlsgICAgICAgXSotXFx7NSxcXH1bICAgIF0qJCIpIChvcmctZWxlbWVudC1ob3Jp em9udGFsLXJ1bGUtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIiUlKCIp IChvcmctZWxlbWVudC1kaWFyeS1zZXhwLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChvcmct YXQtdGFibGUtcCB0KSAob3JnLWVsZW1lbnQtdGFibGUtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQp KSAoKGxvb2tpbmctYXQgLi4uKSAob3JnLWVsZW1lbnQtcGxhaW4tbGlzdC1wYXJzZXIgbGltaXQg YWZmaWxpYXRlZCAuLi4pKSAodCAob3JnLWVsZW1lbnQtcGFyYWdyYXBoLXBhcnNlciBsaW1pdCBh ZmZpbGlhdGVkKSkpKSkpKSkKICBvcmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50KDI1NzcwNiBl bGVtZW50IG5pbCBuaWwpCiAgKHNldHEgZWxlbWVudCAob3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxl bWVudCBlbmQgKHF1b3RlIGVsZW1lbnQpIHNwZWNpYWwtZmxhZyAob3JnLWVsZW1lbnQtcHJvcGVy dHkgOnN0cnVjdHVyZSBwYXJlbnQpKSkKICAoaWYgZWxlbWVudCBuaWwgKHNldHEgZWxlbWVudCAo b3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVudCBlbmQgKHF1b3RlIGVsZW1lbnQpIHNwZWNpYWwt ZmxhZyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnN0cnVjdHVyZSBwYXJlbnQpKSkgKG9yZy1lbGVt ZW50LXB1dC1wcm9wZXJ0eSBlbGVtZW50IDpwYXJlbnQgcGFyZW50KSAob3JnLWVsZW1lbnQtLWNh Y2hlLXB1dCBlbGVtZW50KSkKICAod2hpbGUgdCAoaWYgc3luY3AgKHByb2duIChjb25kICgoPSAo cG9pbnQpIHBvcykgKHRocm93IChxdW90ZSBleGl0KSBwYXJlbnQpKSAoKG9yZy1lbGVtZW50LS1j YWNoZS1pbnRlcnJ1cHQtcCB0aW1lLWxpbWl0KSAodGhyb3cgKHF1b3RlIGludGVycnVwdCkgbmls KSkpKSkgKGlmIGVsZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50LS1jdXJyZW50 LWVsZW1lbnQgZW5kIChxdW90ZSBlbGVtZW50KSBzcGVjaWFsLWZsYWcgKG9yZy1lbGVtZW50LXBy b3BlcnR5IDpzdHJ1Y3R1cmUgcGFyZW50KSkpIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgZWxl bWVudCA6cGFyZW50IHBhcmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQgZWxlbWVudCkpIChs ZXQgKChlbGVtLWVuZCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSkgKHR5cGUg KG9yZy1lbGVtZW50LXR5cGUgZWxlbWVudCkpKSAoY29uZCAoKGFuZCAoPD0gZWxlbS1lbmQgcG9z KSAoLz0gKHBvaW50LW1heCkgZWxlbS1lbmQpKSAoZ290by1jaGFyIGVsZW0tZW5kKSkgKChub3Qg KG1lbXEgdHlwZSBvcmctZWxlbWVudC1ncmVhdGVyLWVsZW1lbnRzKSkgKHRocm93IChxdW90ZSBl eGl0KSBlbGVtZW50KSkgKChsZXQgKChjYmVnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6Y29udGVu dHMtYmVnaW4gZWxlbWVudCkpIChjZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6Y29udGVudHMt ZW5kIGVsZW1lbnQpKSkgKGlmIChvciBzeW5jcCAoYW5kIGNiZWcgY2VuZCAuLi4gLi4uKSkgKHBy b2duIChnb3RvLWNoYXIgLi4uKSAoc2V0cSBuZXh0IG5pbCBzcGVjaWFsLWZsYWcgLi4uIHBhcmVu dCBlbGVtZW50IGVuZCBjZW5kKSkpKSkgKHQgKHRocm93IChxdW90ZSBleGl0KSBlbGVtZW50KSkp KSAoc2V0cSBlbGVtZW50IG5pbCkpCiAgKGxldCAoKGVuZCAob3IgKG9yZy1lbGVtZW50LXByb3Bl cnR5IDplbmQgZWxlbWVudCkgKHNhdmUtZXhjdXJzaW9uIChsZXQqICgob3JnLWNhbGxlZC13aXRo LWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgLi4uKSAob3V0bGluZS1yZWdl eHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAuLi4pKSAob3V0 bGluZS1uZXh0LWhlYWRpbmcpKSAocG9pbnQpKSkpIChwYXJlbnQgZWxlbWVudCkgc3BlY2lhbC1m bGFnKSAod2hpbGUgdCAoaWYgc3luY3AgKHByb2duIChjb25kICgoPSAocG9pbnQpIHBvcykgKHRo cm93IChxdW90ZSBleGl0KSBwYXJlbnQpKSAoKG9yZy1lbGVtZW50LS1jYWNoZS1pbnRlcnJ1cHQt cCB0aW1lLWxpbWl0KSAodGhyb3cgKHF1b3RlIGludGVycnVwdCkgbmlsKSkpKSkgKGlmIGVsZW1l bnQgbmlsIChzZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50LS1jdXJyZW50LWVsZW1lbnQgZW5kIChx dW90ZSBlbGVtZW50KSBzcGVjaWFsLWZsYWcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpzdHJ1Y3R1 cmUgcGFyZW50KSkpIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgZWxlbWVudCA6cGFyZW50IHBh cmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQgZWxlbWVudCkpIChsZXQgKChlbGVtLWVuZCAo b3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSkgKHR5cGUgKG9yZy1lbGVtZW50LXR5 cGUgZWxlbWVudCkpKSAoY29uZCAoKGFuZCAoPD0gZWxlbS1lbmQgcG9zKSAoLz0gKHBvaW50LW1h eCkgZWxlbS1lbmQpKSAoZ290by1jaGFyIGVsZW0tZW5kKSkgKChub3QgKG1lbXEgdHlwZSBvcmct ZWxlbWVudC1ncmVhdGVyLWVsZW1lbnRzKSkgKHRocm93IChxdW90ZSBleGl0KSBlbGVtZW50KSkg KChsZXQgKChjYmVnIC4uLikgKGNlbmQgLi4uKSkgKGlmIChvciBzeW5jcCAuLi4pIChwcm9nbiAu Li4gLi4uKSkpKSAodCAodGhyb3cgKHF1b3RlIGV4aXQpIGVsZW1lbnQpKSkpIChzZXRxIGVsZW1l bnQgbmlsKSkpCiAgKGxldCogKChjYWNoZWQgKGFuZCAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2 ZS1wKSAob3JnLWVsZW1lbnQtLWNhY2hlLWZpbmQgcG9zIG5pbCkpKSAoYmVnaW4gKG9yZy1lbGVt ZW50LXByb3BlcnR5IDpiZWdpbiBjYWNoZWQpKSBlbGVtZW50IG5leHQpIChjb25kICgobm90IGNh Y2hlZCkgKGlmIChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmct b3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5l LXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIChjb25j YXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3V0bGluZS1wcmV2aW91cy1oZWFkaW5nKSkg KHByb2duIChmb3J3YXJkLWxpbmUpKSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVn aW5uaW5nLW9mLWxpbmUpKSAoKD0gcG9zIGJlZ2luKSAodGhyb3cgKHF1b3RlIGV4aXQpIChpZiBz eW5jcCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhcmVudCBjYWNoZWQpIGNhY2hlZCkpKSAoKHJl LXNlYXJjaC1iYWNrd2FyZCAobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0 KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAo b3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJv bCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgb3JnLW91dGxpbmUtcmVnZXhwLWJv bCkgYmVnaW4gdCkgKGZvcndhcmQtbGluZSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAo YmVnaW5uaW5nLW9mLWxpbmUpKSAodCAobGV0ICgodXAgY2FjaGVkKSAocG9zIChpZiAoPSAuLi4g cG9zKSAoMS0gcG9zKSBwb3MpKSkgKGdvdG8tY2hhciAob3IgKG9yZy1lbGVtZW50LXByb3BlcnR5 IDpjb250ZW50cy1iZWdpbiBjYWNoZWQpIGJlZ2luKSkgKHdoaWxlIChsZXQgKChlbmQgLi4uKSkg KGFuZCAoPD0gZW5kIHBvcykgKGdvdG8tY2hhciBlbmQpIChzZXRxIHVwIC4uLikpKSkgKGNvbmQg KChub3QgdXApKSAoKGVvYnApIChzZXRxIGVsZW1lbnQgdXApKSAodCAoc2V0cSBlbGVtZW50IHVw IG5leHQgKHBvaW50KSkpKSkpKSAobGV0ICgoZW5kIChvciAob3JnLWVsZW1lbnQtcHJvcGVydHkg OmVuZCBlbGVtZW50KSAoc2F2ZS1leGN1cnNpb24gKGxldCogKC4uLiAuLi4gLi4uIC4uLikgKG91 dGxpbmUtbmV4dC1oZWFkaW5nKSkgKHBvaW50KSkpKSAocGFyZW50IGVsZW1lbnQpIHNwZWNpYWwt ZmxhZykgKHdoaWxlIHQgKGlmIHN5bmNwIChwcm9nbiAoY29uZCAoKD0gLi4uIHBvcykgKHRocm93 IC4uLiBwYXJlbnQpKSAoKG9yZy1lbGVtZW50LS1jYWNoZS1pbnRlcnJ1cHQtcCB0aW1lLWxpbWl0 KSAodGhyb3cgLi4uIG5pbCkpKSkpIChpZiBlbGVtZW50IG5pbCAoc2V0cSBlbGVtZW50IChvcmct ZWxlbWVudC0tY3VycmVudC1lbGVtZW50IGVuZCAocXVvdGUgZWxlbWVudCkgc3BlY2lhbC1mbGFn IChvcmctZWxlbWVudC1wcm9wZXJ0eSA6c3RydWN0dXJlIHBhcmVudCkpKSAob3JnLWVsZW1lbnQt cHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQpIChvcmctZWxlbWVudC0tY2FjaGUt cHV0IGVsZW1lbnQpKSAobGV0ICgoZWxlbS1lbmQgKG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQg ZWxlbWVudCkpICh0eXBlIChvcmctZWxlbWVudC10eXBlIGVsZW1lbnQpKSkgKGNvbmQgKChhbmQg KDw9IGVsZW0tZW5kIHBvcykgKC89IC4uLiBlbGVtLWVuZCkpIChnb3RvLWNoYXIgZWxlbS1lbmQp KSAoKG5vdCAobWVtcSB0eXBlIG9yZy1lbGVtZW50LWdyZWF0ZXItZWxlbWVudHMpKSAodGhyb3cg KHF1b3RlIGV4aXQpIGVsZW1lbnQpKSAoKGxldCAoLi4uIC4uLikgKGlmIC4uLiAuLi4pKSkgKHQg KHRocm93IChxdW90ZSBleGl0KSBlbGVtZW50KSkpKSAoc2V0cSBlbGVtZW50IG5pbCkpKSkKICAo c2F2ZS1yZXN0cmljdGlvbiAod2lkZW4pIChnb3RvLWNoYXIgcG9zKSAobGV0KiAoKGNhY2hlZCAo YW5kIChvcmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChvcmctZWxlbWVudC0tY2FjaGUtZmlu ZCBwb3MgbmlsKSkpIChiZWdpbiAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmJlZ2luIGNhY2hlZCkp IGVsZW1lbnQgbmV4dCkgKGNvbmQgKChub3QgY2FjaGVkKSAoaWYgKGxldCogKChvcmctY2FsbGVk LXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAuLi4pIChvdXRsaW5l LXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIC4uLikp IChvdXRsaW5lLXByZXZpb3VzLWhlYWRpbmcpKSAocHJvZ24gKGZvcndhcmQtbGluZSkpKSAoc2tp cC1jaGFycy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkpICgoPSBwb3MgYmVn aW4pICh0aHJvdyAocXVvdGUgZXhpdCkgKGlmIHN5bmNwIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6 cGFyZW50IGNhY2hlZCkgY2FjaGVkKSkpICgocmUtc2VhcmNoLWJhY2t3YXJkIChsZXQqICgob3Jn LWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgLi4uKSAo b3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJv bCAuLi4pKSBvcmctb3V0bGluZS1yZWdleHAtYm9sKSBiZWdpbiB0KSAoZm9yd2FyZC1saW5lKSAo c2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkpICh0IChsZXQg KCh1cCBjYWNoZWQpIChwb3MgKGlmIC4uLiAuLi4gcG9zKSkpIChnb3RvLWNoYXIgKG9yIChvcmct ZWxlbWVudC1wcm9wZXJ0eSA6Y29udGVudHMtYmVnaW4gY2FjaGVkKSBiZWdpbikpICh3aGlsZSAo bGV0ICguLi4pIChhbmQgLi4uIC4uLiAuLi4pKSkgKGNvbmQgKChub3QgdXApKSAoKGVvYnApIChz ZXRxIGVsZW1lbnQgdXApKSAodCAoc2V0cSBlbGVtZW50IHVwIG5leHQgLi4uKSkpKSkpIChsZXQg KChlbmQgKG9yIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQpIChzYXZlLWV4Y3Vy c2lvbiAobGV0KiAuLi4gLi4uKSAocG9pbnQpKSkpIChwYXJlbnQgZWxlbWVudCkgc3BlY2lhbC1m bGFnKSAod2hpbGUgdCAoaWYgc3luY3AgKHByb2duIChjb25kICguLi4gLi4uKSAoLi4uIC4uLikp KSkgKGlmIGVsZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50LS1jdXJyZW50LWVs ZW1lbnQgZW5kIChxdW90ZSBlbGVtZW50KSBzcGVjaWFsLWZsYWcgKG9yZy1lbGVtZW50LXByb3Bl cnR5IDpzdHJ1Y3R1cmUgcGFyZW50KSkpIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgZWxlbWVu dCA6cGFyZW50IHBhcmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQgZWxlbWVudCkpIChsZXQg KChlbGVtLWVuZCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSkgKHR5cGUgKG9y Zy1lbGVtZW50LXR5cGUgZWxlbWVudCkpKSAoY29uZCAoKGFuZCAuLi4gLi4uKSAoZ290by1jaGFy IGVsZW0tZW5kKSkgKChub3QgLi4uKSAodGhyb3cgLi4uIGVsZW1lbnQpKSAoKGxldCAuLi4gLi4u KSkgKHQgKHRocm93IC4uLiBlbGVtZW50KSkpKSAoc2V0cSBlbGVtZW50IG5pbCkpKSkpCiAgKHNh dmUtZXhjdXJzaW9uIChzYXZlLXJlc3RyaWN0aW9uICh3aWRlbikgKGdvdG8tY2hhciBwb3MpIChs ZXQqICgoY2FjaGVkIChhbmQgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKG9yZy1lbGVt ZW50LS1jYWNoZS1maW5kIHBvcyBuaWwpKSkgKGJlZ2luIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6 YmVnaW4gY2FjaGVkKSkgZWxlbWVudCBuZXh0KSAoY29uZCAoKG5vdCBjYWNoZWQpIChpZiAobGV0 KiAoLi4uIC4uLiAuLi4gLi4uKSAob3V0bGluZS1wcmV2aW91cy1oZWFkaW5nKSkgKHByb2duIChm b3J3YXJkLWxpbmUpKSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9m LWxpbmUpKSAoKD0gcG9zIGJlZ2luKSAodGhyb3cgKHF1b3RlIGV4aXQpIChpZiBzeW5jcCAob3Jn LWVsZW1lbnQtcHJvcGVydHkgOnBhcmVudCBjYWNoZWQpIGNhY2hlZCkpKSAoKHJlLXNlYXJjaC1i YWNrd2FyZCAobGV0KiAoLi4uIC4uLiAuLi4gLi4uKSBvcmctb3V0bGluZS1yZWdleHAtYm9sKSBi ZWdpbiB0KSAoZm9yd2FyZC1saW5lKSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIpIChiZWdp bm5pbmctb2YtbGluZSkpICh0IChsZXQgKCh1cCBjYWNoZWQpIChwb3MgLi4uKSkgKGdvdG8tY2hh ciAob3IgLi4uIGJlZ2luKSkgKHdoaWxlIChsZXQgLi4uIC4uLikpIChjb25kICguLi4pICguLi4g Li4uKSAodCAuLi4pKSkpKSAobGV0ICgoZW5kIChvciAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmVu ZCBlbGVtZW50KSAoc2F2ZS1leGN1cnNpb24gLi4uIC4uLikpKSAocGFyZW50IGVsZW1lbnQpIHNw ZWNpYWwtZmxhZykgKHdoaWxlIHQgKGlmIHN5bmNwIChwcm9nbiAoY29uZCAuLi4gLi4uKSkpIChp ZiBlbGVtZW50IG5pbCAoc2V0cSBlbGVtZW50IChvcmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50 IGVuZCAuLi4gc3BlY2lhbC1mbGFnIC4uLikpIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgZWxl bWVudCA6cGFyZW50IHBhcmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQgZWxlbWVudCkpIChs ZXQgKChlbGVtLWVuZCAuLi4pICh0eXBlIC4uLikpIChjb25kICguLi4gLi4uKSAoLi4uIC4uLikg KC4uLikgKHQgLi4uKSkpIChzZXRxIGVsZW1lbnQgbmlsKSkpKSkpCiAgKGNhdGNoIChxdW90ZSBl eGl0KSAoc2F2ZS1leGN1cnNpb24gKHNhdmUtcmVzdHJpY3Rpb24gKHdpZGVuKSAoZ290by1jaGFy IHBvcykgKGxldCogKChjYWNoZWQgKGFuZCAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAo b3JnLWVsZW1lbnQtLWNhY2hlLWZpbmQgcG9zIG5pbCkpKSAoYmVnaW4gKG9yZy1lbGVtZW50LXBy b3BlcnR5IDpiZWdpbiBjYWNoZWQpKSBlbGVtZW50IG5leHQpIChjb25kICgobm90IGNhY2hlZCkg KGlmIChsZXQqIC4uLiAuLi4pIChwcm9nbiAuLi4pKSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlc biIpIChiZWdpbm5pbmctb2YtbGluZSkpICgoPSBwb3MgYmVnaW4pICh0aHJvdyAocXVvdGUgZXhp dCkgKGlmIHN5bmNwIC4uLiBjYWNoZWQpKSkgKChyZS1zZWFyY2gtYmFja3dhcmQgKGxldCogLi4u IG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wpIGJlZ2luIHQpIChmb3J3YXJkLWxpbmUpIChza2lwLWNo YXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkgKHQgKGxldCAoLi4uIC4u LikgKGdvdG8tY2hhciAuLi4pICh3aGlsZSAuLi4pIChjb25kIC4uLiAuLi4gLi4uKSkpKSAobGV0 ICgoZW5kIChvciAuLi4gLi4uKSkgKHBhcmVudCBlbGVtZW50KSBzcGVjaWFsLWZsYWcpICh3aGls ZSB0IChpZiBzeW5jcCAocHJvZ24gLi4uKSkgKGlmIGVsZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQg Li4uKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQpIChv cmctZWxlbWVudC0tY2FjaGUtcHV0IGVsZW1lbnQpKSAobGV0ICguLi4gLi4uKSAoY29uZCAuLi4g Li4uIC4uLiAuLi4pKSAoc2V0cSBlbGVtZW50IG5pbCkpKSkpKSkKICBvcmctZWxlbWVudC0tcGFy c2UtdG8oMjU3MjgwKQogIChjb25kICgoYm9icCkgbmlsKSAoKGxldCogKChvcmctY2FsbGVkLXdp dGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVk LW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9y Zy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChv cmctYXQtaGVhZGluZy1wKSkgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQtaGVhZGxp bmUtcGFyc2VyIChwb2ludC1tYXgpIHQpKSAodCAoaWYgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3Rp dmUtcCkgKHByb2duIChpZiAobm90IG9yZy1lbGVtZW50LS1jYWNoZSkgKG9yZy1lbGVtZW50LWNh Y2hlLXJlc2V0KSAob3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMgKGN1cnJlbnQtYnVmZmVyKSBvcmln aW4pKSkpIChvcmctZWxlbWVudC0tcGFyc2UtdG8gb3JpZ2luKSkpCiAgKGxldCAoKG9yaWdpbiAo cG9pbnQpKSkgKGVuZC1vZi1saW5lKSAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIA0JXG4iKSAoY29u ZCAoKGJvYnApIG5pbCkgKChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQp IChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChv dXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9s IChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3JnLWF0LWhlYWRpbmctcCkpIChi ZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNlciAocG9pbnQtbWF4 KSB0KSkgKHQgKGlmIChvcmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChwcm9nbiAoaWYgKG5v dCBvcmctZWxlbWVudC0tY2FjaGUpIChvcmctZWxlbWVudC1jYWNoZS1yZXNldCkgKG9yZy1lbGVt ZW50LS1jYWNoZS1zeW5jIChjdXJyZW50LWJ1ZmZlcikgb3JpZ2luKSkpKSAob3JnLWVsZW1lbnQt LXBhcnNlLXRvIG9yaWdpbikpKSkKICAoc2F2ZS1yZXN0cmljdGlvbiAod2lkZW4pIChsZXQgKChv cmlnaW4gKHBvaW50KSkpIChlbmQtb2YtbGluZSkgKHNraXAtY2hhcnMtYmFja3dhcmQgIiANCVxu IikgKGNvbmQgKChib2JwKSBuaWwpICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxl dmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdl eHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVn ZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgKG9yZy1hdC1oZWFkaW5n LXApKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIgKHBv aW50LW1heCkgdCkpICh0IChpZiAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAocHJvZ24g KGlmIChub3Qgb3JnLWVsZW1lbnQtLWNhY2hlKSAob3JnLWVsZW1lbnQtY2FjaGUtcmVzZXQpIChv cmctZWxlbWVudC0tY2FjaGUtc3luYyAuLi4gb3JpZ2luKSkpKSAob3JnLWVsZW1lbnQtLXBhcnNl LXRvIG9yaWdpbikpKSkpCiAgKHNhdmUtZXhjdXJzaW9uIChzYXZlLXJlc3RyaWN0aW9uICh3aWRl bikgKGxldCAoKG9yaWdpbiAocG9pbnQpKSkgKGVuZC1vZi1saW5lKSAoc2tpcC1jaGFycy1iYWNr d2FyZCAiIA0JXG4iKSAoY29uZCAoKGJvYnApIG5pbCkgKChsZXQqICgob3JnLWNhbGxlZC13aXRo LWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgLi4uKSAob3V0bGluZS1yZWdl eHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAuLi4pKSAob3Jn LWF0LWhlYWRpbmctcCkpIChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWhlYWRsaW5l LXBhcnNlciAocG9pbnQtbWF4KSB0KSkgKHQgKGlmIChvcmctZWxlbWVudC0tY2FjaGUtYWN0aXZl LXApIChwcm9nbiAoaWYgLi4uIC4uLiAuLi4pKSkgKG9yZy1lbGVtZW50LS1wYXJzZS10byBvcmln aW4pKSkpKSkKICBvcmctZWxlbWVudC1hdC1wb2ludCgpCiAgKGxldCAoKGRyYXdlciAob3JnLWVs ZW1lbnQtYXQtcG9pbnQpKSkgKGlmIChhbmQgKGVxIChvcmctZWxlbWVudC10eXBlIGRyYXdlcikg KHF1b3RlIHByb3BlcnR5LWRyYXdlcikpIChsZXQgKChwIGRyYXdlcikpICh3aGlsZSAoYW5kIChz ZXRxIHAgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpwYXJlbnQgcCkpIChub3QgKGVxIC4uLiAuLi4p KSkpIChub3QgcCkpKSAocHJvZ24gKGxldCAoKGVuZCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmNv bnRlbnRzLWVuZCBkcmF3ZXIpKSkgKGlmIGVuZCAocHJvZ24gKGZvcndhcmQtbGluZSkgKHdoaWxl ICg8IC4uLiBlbmQpIChpZiAuLi4gLi4uKSAoZm9yd2FyZC1saW5lKSkpKSkpKSkKICAod2hpbGUg KGFuZCAobnVsbCBwbGlzdCkgKHJlLXNlYXJjaC1mb3J3YXJkIG9yZy1wcm9wZXJ0eS1zdGFydC1y ZSBlbmQgdCkpIChsZXQgKChkcmF3ZXIgKG9yZy1lbGVtZW50LWF0LXBvaW50KSkpIChpZiAoYW5k IChlcSAob3JnLWVsZW1lbnQtdHlwZSBkcmF3ZXIpIChxdW90ZSBwcm9wZXJ0eS1kcmF3ZXIpKSAo bGV0ICgocCBkcmF3ZXIpKSAod2hpbGUgKGFuZCAoc2V0cSBwIC4uLikgKG5vdCAuLi4pKSkgKG5v dCBwKSkpIChwcm9nbiAobGV0ICgoZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6Y29udGVudHMt ZW5kIGRyYXdlcikpKSAoaWYgZW5kIChwcm9nbiAoZm9yd2FyZC1saW5lKSAod2hpbGUgLi4uIC4u LiAuLi4pKSkpKSkpKQogIChzYXZlLWV4Y3Vyc2lvbiAod2hpbGUgKGFuZCAobnVsbCBwbGlzdCkg KHJlLXNlYXJjaC1mb3J3YXJkIG9yZy1wcm9wZXJ0eS1zdGFydC1yZSBlbmQgdCkpIChsZXQgKChk cmF3ZXIgKG9yZy1lbGVtZW50LWF0LXBvaW50KSkpIChpZiAoYW5kIChlcSAob3JnLWVsZW1lbnQt dHlwZSBkcmF3ZXIpIChxdW90ZSBwcm9wZXJ0eS1kcmF3ZXIpKSAobGV0ICgocCBkcmF3ZXIpKSAo d2hpbGUgKGFuZCAuLi4gLi4uKSkgKG5vdCBwKSkpIChwcm9nbiAobGV0ICgoZW5kIC4uLikpIChp ZiBlbmQgKHByb2duIC4uLiAuLi4pKSkpKSkpIHBsaXN0KQogIChsZXQgKChlbmQgKHNhdmUtZXhj dXJzaW9uIChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0 bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJl Z2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQg Il4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3V0bGluZS1uZXh0LWhlYWRpbmcpKSAocG9pbnQp KSkgcGxpc3QpIChzYXZlLWV4Y3Vyc2lvbiAod2hpbGUgKGFuZCAobnVsbCBwbGlzdCkgKHJlLXNl YXJjaC1mb3J3YXJkIG9yZy1wcm9wZXJ0eS1zdGFydC1yZSBlbmQgdCkpIChsZXQgKChkcmF3ZXIg KG9yZy1lbGVtZW50LWF0LXBvaW50KSkpIChpZiAoYW5kIChlcSAob3JnLWVsZW1lbnQtdHlwZSBk cmF3ZXIpIChxdW90ZSBwcm9wZXJ0eS1kcmF3ZXIpKSAobGV0ICguLi4pICh3aGlsZSAuLi4pIChu b3QgcCkpKSAocHJvZ24gKGxldCAoLi4uKSAoaWYgZW5kIC4uLikpKSkpKSBwbGlzdCkpCiAgKGxl dCogKChjb21wb25lbnRzIChvcmctaGVhZGluZy1jb21wb25lbnRzKSkgKGxldmVsIChudGggMSBj b21wb25lbnRzKSkgKHRvZG8gKG50aCAyIGNvbXBvbmVudHMpKSAodG9kby10eXBlIChhbmQgdG9k byAoaWYgKG1lbWJlciB0b2RvIG9yZy1kb25lLWtleXdvcmRzKSAocXVvdGUgZG9uZSkgKHF1b3Rl IHRvZG8pKSkpICh0YWdzIChsZXQgKChyYXctdGFncyAobnRoIDUgY29tcG9uZW50cykpKSAoYW5k IHJhdy10YWdzIChvcmctc3BsaXQtc3RyaW5nIHJhdy10YWdzICI6IikpKSkgKHJhdy12YWx1ZSAo b3IgKG50aCA0IGNvbXBvbmVudHMpICIiKSkgKGNvbW1lbnRlZHAgKGxldCAoKGNhc2UtZm9sZC1z ZWFyY2ggbmlsKSkgKHN0cmluZy1tYXRjaCAoZm9ybWF0ICJeJXNcXCggXFx8JFxcKSIgb3JnLWNv bW1lbnQtc3RyaW5nKSByYXctdmFsdWUpKSkgKGFyY2hpdmVkcCAobWVtYmVyIG9yZy1hcmNoaXZl LXRhZyB0YWdzKSkgKGZvb3Rub3RlLXNlY3Rpb24tcCAoYW5kIG9yZy1mb290bm90ZS1zZWN0aW9u IChzdHJpbmc9IG9yZy1mb290bm90ZS1zZWN0aW9uIHJhdy12YWx1ZSkpKSAoc3RhbmRhcmQtcHJv cHMgKGxldCAoKGVuZCAoc2F2ZS1leGN1cnNpb24gKGxldCogLi4uIC4uLikgKHBvaW50KSkpIHBs aXN0KSAoc2F2ZS1leGN1cnNpb24gKHdoaWxlIChhbmQgKG51bGwgcGxpc3QpIChyZS1zZWFyY2gt Zm9yd2FyZCBvcmctcHJvcGVydHktc3RhcnQtcmUgZW5kIHQpKSAobGV0ICguLi4pIChpZiAuLi4g Li4uKSkpIHBsaXN0KSkpICh0aW1lLXByb3BzIChzYXZlLWV4Y3Vyc2lvbiAoZm9yd2FyZC1saW5l KSAoaWYgKGxvb2tpbmctYXQgb3JnLXBsYW5uaW5nLW9yLWNsb2NrLWxpbmUtcmUpIChwcm9nbiAo bGV0ICguLi4gcGxpc3QpICh3aGlsZSAuLi4gLi4uIC4uLiAuLi4pIHBsaXN0KSkpKSkgKGJlZ2lu IChwb2ludCkpIChlbmQgKG1pbiAoc2F2ZS1leGN1cnNpb24gKG9yZy1lbmQtb2Ytc3VidHJlZSB0 IHQpKSBsaW1pdCkpIChwb3MtYWZ0ZXItaGVhZCAocHJvZ24gKGZvcndhcmQtbGluZSkgKHBvaW50 KSkpIChjb250ZW50cy1iZWdpbiAoc2F2ZS1leGN1cnNpb24gKHNraXAtY2hhcnMtZm9yd2FyZCAi IA0JXG4iIGVuZCkgKGFuZCAoLz0gKHBvaW50KSBlbmQpIChsaW5lLWJlZ2lubmluZy1wb3NpdGlv bikpKSkgKGNvbnRlbnRzLWVuZCAoYW5kIGNvbnRlbnRzLWJlZ2luIChwcm9nbiAoZ290by1jaGFy IGVuZCkgKHNraXAtY2hhcnMtYmFja3dhcmQgIiANCVxuIikgKGZvcndhcmQtbGluZSkgKHBvaW50 KSkpKSkgKGlmIGNvbW1lbnRlZHAgKHByb2duIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIG5pbCkp IChzZXRxIHJhdy12YWx1ZSAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nIChjb25jYXQgKHJlZ2V4 cC1xdW90ZSBvcmctY29tbWVudC1zdHJpbmcpICJcXCg/OiBcXHwkXFwpIikgIiIgcmF3LXZhbHVl KSkpKSkgKGlmIGFyY2hpdmVkcCAocHJvZ24gKHNldHEgdGFncyAoZGVsZXRlIG9yZy1hcmNoaXZl LXRhZyB0YWdzKSkpKSAobGV0ICgoaGVhZGxpbmUgKGxpc3QgKHF1b3RlIGhlYWRsaW5lKSAobmNv bmMgKGxpc3QgOnJhdy12YWx1ZSByYXctdmFsdWUgOmJlZ2luIGJlZ2luIDplbmQgZW5kIDpwcmUt YmxhbmsgKGlmIC4uLiAwIC4uLikgOmNvbnRlbnRzLWJlZ2luIGNvbnRlbnRzLWJlZ2luIDpjb250 ZW50cy1lbmQgY29udGVudHMtZW5kIDpsZXZlbCBsZXZlbCA6cHJpb3JpdHkgKG50aCAzIGNvbXBv bmVudHMpIDp0YWdzIHRhZ3MgOnRvZG8ta2V5d29yZCB0b2RvIDp0b2RvLXR5cGUgdG9kby10eXBl IDpwb3N0LWJsYW5rIChjb3VudC1saW5lcyAuLi4gZW5kKSA6Zm9vdG5vdGUtc2VjdGlvbi1wIGZv b3Rub3RlLXNlY3Rpb24tcCA6YXJjaGl2ZWRwIGFyY2hpdmVkcCA6Y29tbWVudGVkcCBjb21tZW50 ZWRwKSB0aW1lLXByb3BzIHN0YW5kYXJkLXByb3BzKSkpKSAobGV0ICgoYWx0LXRpdGxlIChvcmct ZWxlbWVudC1wcm9wZXJ0eSA6QUxUX1RJVExFIGhlYWRsaW5lKSkpIChpZiBhbHQtdGl0bGUgKHBy b2duIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgaGVhZGxpbmUgOmFsdC10aXRsZSAoaWYgcmF3 LXNlY29uZGFyeS1wIGFsdC10aXRsZSAob3JnLWVsZW1lbnQtcGFyc2Utc2Vjb25kYXJ5LXN0cmlu ZyBhbHQtdGl0bGUgLi4uIGhlYWRsaW5lKSkpKSkpIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkg aGVhZGxpbmUgOnRpdGxlIChpZiByYXctc2Vjb25kYXJ5LXAgcmF3LXZhbHVlIChvcmctZWxlbWVu dC1wYXJzZS1zZWNvbmRhcnktc3RyaW5nIHJhdy12YWx1ZSAob3JnLWVsZW1lbnQtcmVzdHJpY3Rp b24gKHF1b3RlIGhlYWRsaW5lKSkgaGVhZGxpbmUpKSkpKQogIChzYXZlLWV4Y3Vyc2lvbiAobGV0 KiAoKGNvbXBvbmVudHMgKG9yZy1oZWFkaW5nLWNvbXBvbmVudHMpKSAobGV2ZWwgKG50aCAxIGNv bXBvbmVudHMpKSAodG9kbyAobnRoIDIgY29tcG9uZW50cykpICh0b2RvLXR5cGUgKGFuZCB0b2Rv IChpZiAobWVtYmVyIHRvZG8gb3JnLWRvbmUta2V5d29yZHMpIChxdW90ZSBkb25lKSAocXVvdGUg dG9kbykpKSkgKHRhZ3MgKGxldCAoKHJhdy10YWdzIChudGggNSBjb21wb25lbnRzKSkpIChhbmQg cmF3LXRhZ3MgKG9yZy1zcGxpdC1zdHJpbmcgcmF3LXRhZ3MgIjoiKSkpKSAocmF3LXZhbHVlIChv ciAobnRoIDQgY29tcG9uZW50cykgIiIpKSAoY29tbWVudGVkcCAobGV0ICgoY2FzZS1mb2xkLXNl YXJjaCBuaWwpKSAoc3RyaW5nLW1hdGNoIChmb3JtYXQgIl4lc1xcKCBcXHwkXFwpIiBvcmctY29t bWVudC1zdHJpbmcpIHJhdy12YWx1ZSkpKSAoYXJjaGl2ZWRwIChtZW1iZXIgb3JnLWFyY2hpdmUt dGFnIHRhZ3MpKSAoZm9vdG5vdGUtc2VjdGlvbi1wIChhbmQgb3JnLWZvb3Rub3RlLXNlY3Rpb24g KHN0cmluZz0gb3JnLWZvb3Rub3RlLXNlY3Rpb24gcmF3LXZhbHVlKSkpIChzdGFuZGFyZC1wcm9w cyAobGV0ICgoZW5kIChzYXZlLWV4Y3Vyc2lvbiAuLi4gLi4uKSkgcGxpc3QpIChzYXZlLWV4Y3Vy c2lvbiAod2hpbGUgKGFuZCAuLi4gLi4uKSAobGV0IC4uLiAuLi4pKSBwbGlzdCkpKSAodGltZS1w cm9wcyAoc2F2ZS1leGN1cnNpb24gKGZvcndhcmQtbGluZSkgKGlmIChsb29raW5nLWF0IG9yZy1w bGFubmluZy1vci1jbG9jay1saW5lLXJlKSAocHJvZ24gKGxldCAuLi4gLi4uIHBsaXN0KSkpKSkg KGJlZ2luIChwb2ludCkpIChlbmQgKG1pbiAoc2F2ZS1leGN1cnNpb24gKG9yZy1lbmQtb2Ytc3Vi dHJlZSB0IHQpKSBsaW1pdCkpIChwb3MtYWZ0ZXItaGVhZCAocHJvZ24gKGZvcndhcmQtbGluZSkg KHBvaW50KSkpIChjb250ZW50cy1iZWdpbiAoc2F2ZS1leGN1cnNpb24gKHNraXAtY2hhcnMtZm9y d2FyZCAiIA0JXG4iIGVuZCkgKGFuZCAoLz0gKHBvaW50KSBlbmQpIChsaW5lLWJlZ2lubmluZy1w b3NpdGlvbikpKSkgKGNvbnRlbnRzLWVuZCAoYW5kIGNvbnRlbnRzLWJlZ2luIChwcm9nbiAoZ290 by1jaGFyIGVuZCkgKHNraXAtY2hhcnMtYmFja3dhcmQgIiANCVxuIikgKGZvcndhcmQtbGluZSkg KHBvaW50KSkpKSkgKGlmIGNvbW1lbnRlZHAgKHByb2duIChsZXQgKChjYXNlLWZvbGQtc2VhcmNo IG5pbCkpIChzZXRxIHJhdy12YWx1ZSAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nIChjb25jYXQg Li4uICJcXCg/OiBcXHwkXFwpIikgIiIgcmF3LXZhbHVlKSkpKSkgKGlmIGFyY2hpdmVkcCAocHJv Z24gKHNldHEgdGFncyAoZGVsZXRlIG9yZy1hcmNoaXZlLXRhZyB0YWdzKSkpKSAobGV0ICgoaGVh ZGxpbmUgKGxpc3QgKHF1b3RlIGhlYWRsaW5lKSAobmNvbmMgKGxpc3QgOnJhdy12YWx1ZSByYXct dmFsdWUgOmJlZ2luIGJlZ2luIDplbmQgZW5kIDpwcmUtYmxhbmsgLi4uIDpjb250ZW50cy1iZWdp biBjb250ZW50cy1iZWdpbiA6Y29udGVudHMtZW5kIGNvbnRlbnRzLWVuZCA6bGV2ZWwgbGV2ZWwg OnByaW9yaXR5IC4uLiA6dGFncyB0YWdzIDp0b2RvLWtleXdvcmQgdG9kbyA6dG9kby10eXBlIHRv ZG8tdHlwZSA6cG9zdC1ibGFuayAuLi4gOmZvb3Rub3RlLXNlY3Rpb24tcCBmb290bm90ZS1zZWN0 aW9uLXAgOmFyY2hpdmVkcCBhcmNoaXZlZHAgOmNvbW1lbnRlZHAgY29tbWVudGVkcCkgdGltZS1w cm9wcyBzdGFuZGFyZC1wcm9wcykpKSkgKGxldCAoKGFsdC10aXRsZSAob3JnLWVsZW1lbnQtcHJv cGVydHkgOkFMVF9USVRMRSBoZWFkbGluZSkpKSAoaWYgYWx0LXRpdGxlIChwcm9nbiAob3JnLWVs ZW1lbnQtcHV0LXByb3BlcnR5IGhlYWRsaW5lIDphbHQtdGl0bGUgKGlmIHJhdy1zZWNvbmRhcnkt cCBhbHQtdGl0bGUgLi4uKSkpKSkgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBoZWFkbGluZSA6 dGl0bGUgKGlmIHJhdy1zZWNvbmRhcnktcCByYXctdmFsdWUgKG9yZy1lbGVtZW50LXBhcnNlLXNl Y29uZGFyeS1zdHJpbmcgcmF3LXZhbHVlIChvcmctZWxlbWVudC1yZXN0cmljdGlvbiAocXVvdGUg aGVhZGxpbmUpKSBoZWFkbGluZSkpKSkpKQogIG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNlcigy NTc3MDYgdCkKICAoY29uZCAoKGVxIHNwZWNpYWwgKHF1b3RlIGl0ZW0pKSAob3JnLWVsZW1lbnQt aXRlbS1wYXJzZXIgbGltaXQgc3RydWN0dXJlIHJhdy1zZWNvbmRhcnktcCkpICgoZXEgc3BlY2lh bCAocXVvdGUgdGFibGUtcm93KSkgKG9yZy1lbGVtZW50LXRhYmxlLXJvdy1wYXJzZXIgbGltaXQp KSAoKGVxIHNwZWNpYWwgKHF1b3RlIG5vZGUtcHJvcGVydHkpKSAob3JnLWVsZW1lbnQtbm9kZS1w cm9wZXJ0eS1wYXJzZXIgbGltaXQpKSAoKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1s ZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVn ZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJl Z2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChvcmctYXQtaGVhZGlu Zy1wKSkgKG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNlciBsaW1pdCByYXctc2Vjb25kYXJ5LXAp KSAoKGVxIHNwZWNpYWwgKHF1b3RlIHNlY3Rpb24pKSAob3JnLWVsZW1lbnQtc2VjdGlvbi1wYXJz ZXIgbGltaXQpKSAoKGVxIHNwZWNpYWwgKHF1b3RlIGZpcnN0LXNlY3Rpb24pKSAob3JnLWVsZW1l bnQtc2VjdGlvbi1wYXJzZXIgKG9yIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAoKG9yZy1jYWxsZWQt d2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIC4uLikgKG91dGxpbmUt cmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgLi4uKSkg KG91dGxpbmUtbmV4dC1oZWFkaW5nKSkpIGxpbWl0KSkpICgobm90IChib2xwKSkgKG9yZy1lbGVt ZW50LXBhcmFncmFwaC1wYXJzZXIgbGltaXQgKGxpc3QgKHBvaW50KSkpKSAoKGxvb2tpbmctYXQg b3JnLXBsYW5uaW5nLW9yLWNsb2NrLWxpbmUtcmUpIChpZiAoZXF1YWwgKG1hdGNoLXN0cmluZyAx KSBvcmctY2xvY2stc3RyaW5nKSAob3JnLWVsZW1lbnQtY2xvY2stcGFyc2VyIGxpbWl0KSAob3Jn LWVsZW1lbnQtcGxhbm5pbmctcGFyc2VyIGxpbWl0KSkpICgob3JnLWF0LWhlYWRpbmctcCkgKG9y Zy1lbGVtZW50LWlubGluZXRhc2stcGFyc2VyIGxpbWl0IHJhdy1zZWNvbmRhcnktcCkpICh0IChs ZXQgKChhZmZpbGlhdGVkIChvcmctZWxlbWVudC0tY29sbGVjdC1hZmZpbGlhdGVkLWtleXdvcmRz IGxpbWl0KSkpIChjb25kICgoYW5kIChjZHIgYWZmaWxpYXRlZCkgKD49IChwb2ludCkgbGltaXQp KSAoZ290by1jaGFyIChjYXIgYWZmaWxpYXRlZCkpIChvcmctZWxlbWVudC1rZXl3b3JkLXBhcnNl ciBsaW1pdCBuaWwpKSAoKGxvb2tpbmctYXQgIlsgICAgIF0qXFxcXGJlZ2lue1tBLVphLXowLTkq XSt9XFwoXFxbLio/XFxdXFx8ey4qP31cXCkqWyAgICAgXSokIikgKG9yZy1lbGVtZW50LWxhdGV4 LWVudmlyb25tZW50LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0IG9yZy1k cmF3ZXItcmVnZXhwKSAoaWYgKGVxdWFsIChtYXRjaC1zdHJpbmcgMSkgIlBST1BFUlRJRVMiKSAo b3JnLWVsZW1lbnQtcHJvcGVydHktZHJhd2VyLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSAob3Jn LWVsZW1lbnQtZHJhd2VyLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkpICgobG9va2luZy1hdCAi WyAgIF0qOlxcKCBcXHwkXFwpIikgKG9yZy1lbGVtZW50LWZpeGVkLXdpZHRoLXBhcnNlciBsaW1p dCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJbICAgICBdKiMiKSAoZ290by1jaGFyIChtYXRj aC1lbmQgMCkpIChjb25kICgobG9va2luZy1hdCAiXFwoPzogXFx8JFxcKSIpIChiZWdpbm5pbmct b2YtbGluZSkgKG9yZy1lbGVtZW50LWNvbW1lbnQtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAo KGxvb2tpbmctYXQgIlxcK0JFR0lOX1xcKFxcUy0rXFwpIikgKGJlZ2lubmluZy1vZi1saW5lKSAo bGV0IC4uLiAuLi4pKSAoKGxvb2tpbmctYXQgIlxcK0NBTEw6IikgKGJlZ2lubmluZy1vZi1saW5l KSAob3JnLWVsZW1lbnQtYmFiZWwtY2FsbC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9v a2luZy1hdCAiXFwrQkVHSU46PyAiKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1k eW5hbWljLWJsb2NrLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJcXCtc XFMtKzoiKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1rZXl3b3JkLXBhcnNlciBs aW1pdCBhZmZpbGlhdGVkKSkgKHQgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQtcGFy YWdyYXBoLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkpKSAoKGxvb2tpbmctYXQgb3JnLWZvb3Ru b3RlLWRlZmluaXRpb24tcmUpIChvcmctZWxlbWVudC1mb290bm90ZS1kZWZpbml0aW9uLXBhcnNl ciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJbICAgXSotXFx7NSxcXH1bICAgIF0q JCIpIChvcmctZWxlbWVudC1ob3Jpem9udGFsLXJ1bGUtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQp KSAoKGxvb2tpbmctYXQgIiUlKCIpIChvcmctZWxlbWVudC1kaWFyeS1zZXhwLXBhcnNlciBsaW1p dCBhZmZpbGlhdGVkKSkgKChvcmctYXQtdGFibGUtcCB0KSAob3JnLWVsZW1lbnQtdGFibGUtcGFy c2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgKG9yZy1pdGVtLXJlKSkgKG9yZy1l bGVtZW50LXBsYWluLWxpc3QtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQgKG9yIHN0cnVjdHVyZSAo b3JnLWVsZW1lbnQtLWxpc3Qtc3RydWN0IGxpbWl0KSkpKSAodCAob3JnLWVsZW1lbnQtcGFyYWdy YXBoLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkpKSkpCiAgKGxldCAoKGNhc2UtZm9sZC1zZWFy Y2ggdCkgKHJhdy1zZWNvbmRhcnktcCAoYW5kIGdyYW51bGFyaXR5IChub3QgKGVxIGdyYW51bGFy aXR5IChxdW90ZSBvYmplY3QpKSkpKSkgKGNvbmQgKChlcSBzcGVjaWFsIChxdW90ZSBpdGVtKSkg KG9yZy1lbGVtZW50LWl0ZW0tcGFyc2VyIGxpbWl0IHN0cnVjdHVyZSByYXctc2Vjb25kYXJ5LXAp KSAoKGVxIHNwZWNpYWwgKHF1b3RlIHRhYmxlLXJvdykpIChvcmctZWxlbWVudC10YWJsZS1yb3ct cGFyc2VyIGxpbWl0KSkgKChlcSBzcGVjaWFsIChxdW90ZSBub2RlLXByb3BlcnR5KSkgKG9yZy1l bGVtZW50LW5vZGUtcHJvcGVydHktcGFyc2VyIGxpbWl0KSkgKChsZXQqICgob3JnLWNhbGxlZC13 aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRl ZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChv cmctb3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAo b3JnLWF0LWhlYWRpbmctcCkpIChvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIgbGltaXQgcmF3 LXNlY29uZGFyeS1wKSkgKChlcSBzcGVjaWFsIChxdW90ZSBzZWN0aW9uKSkgKG9yZy1lbGVtZW50 LXNlY3Rpb24tcGFyc2VyIGxpbWl0KSkgKChlcSBzcGVjaWFsIChxdW90ZSBmaXJzdC1zZWN0aW9u KSkgKG9yZy1lbGVtZW50LXNlY3Rpb24tcGFyc2VyIChvciAoc2F2ZS1leGN1cnNpb24gKGxldCog KC4uLiAuLi4gLi4uIC4uLikgKG91dGxpbmUtbmV4dC1oZWFkaW5nKSkpIGxpbWl0KSkpICgobm90 IChib2xwKSkgKG9yZy1lbGVtZW50LXBhcmFncmFwaC1wYXJzZXIgbGltaXQgKGxpc3QgKHBvaW50 KSkpKSAoKGxvb2tpbmctYXQgb3JnLXBsYW5uaW5nLW9yLWNsb2NrLWxpbmUtcmUpIChpZiAoZXF1 YWwgKG1hdGNoLXN0cmluZyAxKSBvcmctY2xvY2stc3RyaW5nKSAob3JnLWVsZW1lbnQtY2xvY2st cGFyc2VyIGxpbWl0KSAob3JnLWVsZW1lbnQtcGxhbm5pbmctcGFyc2VyIGxpbWl0KSkpICgob3Jn LWF0LWhlYWRpbmctcCkgKG9yZy1lbGVtZW50LWlubGluZXRhc2stcGFyc2VyIGxpbWl0IHJhdy1z ZWNvbmRhcnktcCkpICh0IChsZXQgKChhZmZpbGlhdGVkIChvcmctZWxlbWVudC0tY29sbGVjdC1h ZmZpbGlhdGVkLWtleXdvcmRzIGxpbWl0KSkpIChjb25kICgoYW5kIChjZHIgYWZmaWxpYXRlZCkg KD49IC4uLiBsaW1pdCkpIChnb3RvLWNoYXIgKGNhciBhZmZpbGlhdGVkKSkgKG9yZy1lbGVtZW50 LWtleXdvcmQtcGFyc2VyIGxpbWl0IG5pbCkpICgobG9va2luZy1hdCAiWyAgICAgICAgXSpcXFxc YmVnaW57W0EtWmEtejAtOSpdK31cXChcXFsuKj9cXF1cXHx7Lio/fVxcKSpbICAgICBdKiQiKSAo b3JnLWVsZW1lbnQtbGF0ZXgtZW52aXJvbm1lbnQtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAo KGxvb2tpbmctYXQgb3JnLWRyYXdlci1yZWdleHApIChpZiAoZXF1YWwgLi4uICJQUk9QRVJUSUVT IikgKG9yZy1lbGVtZW50LXByb3BlcnR5LWRyYXdlci1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkg KG9yZy1lbGVtZW50LWRyYXdlci1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpKSAoKGxvb2tpbmct YXQgIlsgICAgICAgIF0qOlxcKCBcXHwkXFwpIikgKG9yZy1lbGVtZW50LWZpeGVkLXdpZHRoLXBh cnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJbICAgICBdKiMiKSAoZ290by1j aGFyIChtYXRjaC1lbmQgMCkpIChjb25kICguLi4gLi4uIC4uLikgKC4uLiAuLi4gLi4uKSAoLi4u IC4uLiAuLi4pICguLi4gLi4uIC4uLikgKC4uLiAuLi4gLi4uKSAodCAuLi4gLi4uKSkpICgobG9v a2luZy1hdCBvcmctZm9vdG5vdGUtZGVmaW5pdGlvbi1yZSkgKG9yZy1lbGVtZW50LWZvb3Rub3Rl LWRlZmluaXRpb24tcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlsgICBd Ki1cXHs1LFxcfVsgICAgXSokIikgKG9yZy1lbGVtZW50LWhvcml6b250YWwtcnVsZS1wYXJzZXIg bGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiJSUoIikgKG9yZy1lbGVtZW50LWRpYXJ5 LXNleHAtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKG9yZy1hdC10YWJsZS1wIHQpIChvcmct ZWxlbWVudC10YWJsZS1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAob3Jn LWl0ZW0tcmUpKSAob3JnLWVsZW1lbnQtcGxhaW4tbGlzdC1wYXJzZXIgbGltaXQgYWZmaWxpYXRl ZCAob3Igc3RydWN0dXJlIC4uLikpKSAodCAob3JnLWVsZW1lbnQtcGFyYWdyYXBoLXBhcnNlciBs aW1pdCBhZmZpbGlhdGVkKSkpKSkpKQogIChzYXZlLWV4Y3Vyc2lvbiAobGV0ICgoY2FzZS1mb2xk LXNlYXJjaCB0KSAocmF3LXNlY29uZGFyeS1wIChhbmQgZ3JhbnVsYXJpdHkgKG5vdCAoZXEgZ3Jh bnVsYXJpdHkgKHF1b3RlIG9iamVjdCkpKSkpKSAoY29uZCAoKGVxIHNwZWNpYWwgKHF1b3RlIGl0 ZW0pKSAob3JnLWVsZW1lbnQtaXRlbS1wYXJzZXIgbGltaXQgc3RydWN0dXJlIHJhdy1zZWNvbmRh cnktcCkpICgoZXEgc3BlY2lhbCAocXVvdGUgdGFibGUtcm93KSkgKG9yZy1lbGVtZW50LXRhYmxl LXJvdy1wYXJzZXIgbGltaXQpKSAoKGVxIHNwZWNpYWwgKHF1b3RlIG5vZGUtcHJvcGVydHkpKSAo b3JnLWVsZW1lbnQtbm9kZS1wcm9wZXJ0eS1wYXJzZXIgbGltaXQpKSAoKGxldCogKChvcmctY2Fs bGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1s aW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4 cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhw KSkpIChvcmctYXQtaGVhZGluZy1wKSkgKG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNlciBsaW1p dCByYXctc2Vjb25kYXJ5LXApKSAoKGVxIHNwZWNpYWwgKHF1b3RlIHNlY3Rpb24pKSAob3JnLWVs ZW1lbnQtc2VjdGlvbi1wYXJzZXIgbGltaXQpKSAoKGVxIHNwZWNpYWwgKHF1b3RlIGZpcnN0LXNl Y3Rpb24pKSAob3JnLWVsZW1lbnQtc2VjdGlvbi1wYXJzZXIgKG9yIChzYXZlLWV4Y3Vyc2lvbiAo bGV0KiAuLi4gLi4uKSkgbGltaXQpKSkgKChub3QgKGJvbHApKSAob3JnLWVsZW1lbnQtcGFyYWdy YXBoLXBhcnNlciBsaW1pdCAobGlzdCAocG9pbnQpKSkpICgobG9va2luZy1hdCBvcmctcGxhbm5p bmctb3ItY2xvY2stbGluZS1yZSkgKGlmIChlcXVhbCAobWF0Y2gtc3RyaW5nIDEpIG9yZy1jbG9j ay1zdHJpbmcpIChvcmctZWxlbWVudC1jbG9jay1wYXJzZXIgbGltaXQpIChvcmctZWxlbWVudC1w bGFubmluZy1wYXJzZXIgbGltaXQpKSkgKChvcmctYXQtaGVhZGluZy1wKSAob3JnLWVsZW1lbnQt aW5saW5ldGFzay1wYXJzZXIgbGltaXQgcmF3LXNlY29uZGFyeS1wKSkgKHQgKGxldCAoKGFmZmls aWF0ZWQgKG9yZy1lbGVtZW50LS1jb2xsZWN0LWFmZmlsaWF0ZWQta2V5d29yZHMgbGltaXQpKSkg KGNvbmQgKChhbmQgLi4uIC4uLikgKGdvdG8tY2hhciAuLi4pIChvcmctZWxlbWVudC1rZXl3b3Jk LXBhcnNlciBsaW1pdCBuaWwpKSAoKGxvb2tpbmctYXQgIlsgICAgICBdKlxcXFxiZWdpbntbQS1a YS16MC05Kl0rfVxcKFxcWy4qP1xcXVxcfHsuKj99XFwpKlsgICAgIF0qJCIpIChvcmctZWxlbWVu dC1sYXRleC1lbnZpcm9ubWVudC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1h dCBvcmctZHJhd2VyLXJlZ2V4cCkgKGlmIC4uLiAuLi4gLi4uKSkgKChsb29raW5nLWF0ICJbICAg ICAgICBdKjpcXCggXFx8JFxcKSIpIChvcmctZWxlbWVudC1maXhlZC13aWR0aC1wYXJzZXIgbGlt aXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiWyAgICAgXSojIikgKGdvdG8tY2hhciAuLi4p IChjb25kIC4uLiAuLi4gLi4uIC4uLiAuLi4gLi4uKSkgKChsb29raW5nLWF0IG9yZy1mb290bm90 ZS1kZWZpbml0aW9uLXJlKSAob3JnLWVsZW1lbnQtZm9vdG5vdGUtZGVmaW5pdGlvbi1wYXJzZXIg bGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiWyAgICAgICBdKi1cXHs1LFxcfVsgICAg XSokIikgKG9yZy1lbGVtZW50LWhvcml6b250YWwtcnVsZS1wYXJzZXIgbGltaXQgYWZmaWxpYXRl ZCkpICgobG9va2luZy1hdCAiJSUoIikgKG9yZy1lbGVtZW50LWRpYXJ5LXNleHAtcGFyc2VyIGxp bWl0IGFmZmlsaWF0ZWQpKSAoKG9yZy1hdC10YWJsZS1wIHQpIChvcmctZWxlbWVudC10YWJsZS1w YXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAuLi4pIChvcmctZWxlbWVudC1w bGFpbi1saXN0LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkIC4uLikpICh0IChvcmctZWxlbWVudC1w YXJhZ3JhcGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSkpKSkpKQogIG9yZy1lbGVtZW50LS1j dXJyZW50LWVsZW1lbnQoMjU3NzA2IGVsZW1lbnQgbmlsIG5pbCkKICAoc2V0cSBlbGVtZW50IChv cmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50IGVuZCAocXVvdGUgZWxlbWVudCkgc3BlY2lhbC1m bGFnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6c3RydWN0dXJlIHBhcmVudCkpKQogIChpZiBlbGVt ZW50IG5pbCAoc2V0cSBlbGVtZW50IChvcmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50IGVuZCAo cXVvdGUgZWxlbWVudCkgc3BlY2lhbC1mbGFnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6c3RydWN0 dXJlIHBhcmVudCkpKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVudCBw YXJlbnQpIChvcmctZWxlbWVudC0tY2FjaGUtcHV0IGVsZW1lbnQpKQogICh3aGlsZSB0IChpZiBz eW5jcCAocHJvZ24gKGNvbmQgKCg9IChwb2ludCkgcG9zKSAodGhyb3cgKHF1b3RlIGV4aXQpIHBh cmVudCkpICgob3JnLWVsZW1lbnQtLWNhY2hlLWludGVycnVwdC1wIHRpbWUtbGltaXQpICh0aHJv dyAocXVvdGUgaW50ZXJydXB0KSBuaWwpKSkpKSAoaWYgZWxlbWVudCBuaWwgKHNldHEgZWxlbWVu dCAob3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVudCBlbmQgKHF1b3RlIGVsZW1lbnQpIHNwZWNp YWwtZmxhZyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnN0cnVjdHVyZSBwYXJlbnQpKSkgKG9yZy1l bGVtZW50LXB1dC1wcm9wZXJ0eSBlbGVtZW50IDpwYXJlbnQgcGFyZW50KSAob3JnLWVsZW1lbnQt LWNhY2hlLXB1dCBlbGVtZW50KSkgKGxldCAoKGVsZW0tZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0 eSA6ZW5kIGVsZW1lbnQpKSAodHlwZSAob3JnLWVsZW1lbnQtdHlwZSBlbGVtZW50KSkpIChjb25k ICgoYW5kICg8PSBlbGVtLWVuZCBwb3MpICgvPSAocG9pbnQtbWF4KSBlbGVtLWVuZCkpIChnb3Rv LWNoYXIgZWxlbS1lbmQpKSAoKG5vdCAobWVtcSB0eXBlIG9yZy1lbGVtZW50LWdyZWF0ZXItZWxl bWVudHMpKSAodGhyb3cgKHF1b3RlIGV4aXQpIGVsZW1lbnQpKSAoKGxldCAoKGNiZWcgKG9yZy1l bGVtZW50LXByb3BlcnR5IDpjb250ZW50cy1iZWdpbiBlbGVtZW50KSkgKGNlbmQgKG9yZy1lbGVt ZW50LXByb3BlcnR5IDpjb250ZW50cy1lbmQgZWxlbWVudCkpKSAoaWYgKG9yIHN5bmNwIChhbmQg Y2JlZyBjZW5kIC4uLiAuLi4pKSAocHJvZ24gKGdvdG8tY2hhciAuLi4pIChzZXRxIG5leHQgbmls IHNwZWNpYWwtZmxhZyAuLi4gcGFyZW50IGVsZW1lbnQgZW5kIGNlbmQpKSkpKSAodCAodGhyb3cg KHF1b3RlIGV4aXQpIGVsZW1lbnQpKSkpIChzZXRxIGVsZW1lbnQgbmlsKSkKICAobGV0ICgoZW5k IChvciAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSAoc2F2ZS1leGN1cnNpb24g KGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJl Z2V4cCAuLi4pIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGlu ZS1yZWdleHAtYm9sIC4uLikpIChvdXRsaW5lLW5leHQtaGVhZGluZykpIChwb2ludCkpKSkgKHBh cmVudCBlbGVtZW50KSBzcGVjaWFsLWZsYWcpICh3aGlsZSB0IChpZiBzeW5jcCAocHJvZ24gKGNv bmQgKCg9IChwb2ludCkgcG9zKSAodGhyb3cgKHF1b3RlIGV4aXQpIHBhcmVudCkpICgob3JnLWVs ZW1lbnQtLWNhY2hlLWludGVycnVwdC1wIHRpbWUtbGltaXQpICh0aHJvdyAocXVvdGUgaW50ZXJy dXB0KSBuaWwpKSkpKSAoaWYgZWxlbWVudCBuaWwgKHNldHEgZWxlbWVudCAob3JnLWVsZW1lbnQt LWN1cnJlbnQtZWxlbWVudCBlbmQgKHF1b3RlIGVsZW1lbnQpIHNwZWNpYWwtZmxhZyAob3JnLWVs ZW1lbnQtcHJvcGVydHkgOnN0cnVjdHVyZSBwYXJlbnQpKSkgKG9yZy1lbGVtZW50LXB1dC1wcm9w ZXJ0eSBlbGVtZW50IDpwYXJlbnQgcGFyZW50KSAob3JnLWVsZW1lbnQtLWNhY2hlLXB1dCBlbGVt ZW50KSkgKGxldCAoKGVsZW0tZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQp KSAodHlwZSAob3JnLWVsZW1lbnQtdHlwZSBlbGVtZW50KSkpIChjb25kICgoYW5kICg8PSBlbGVt LWVuZCBwb3MpICgvPSAocG9pbnQtbWF4KSBlbGVtLWVuZCkpIChnb3RvLWNoYXIgZWxlbS1lbmQp KSAoKG5vdCAobWVtcSB0eXBlIG9yZy1lbGVtZW50LWdyZWF0ZXItZWxlbWVudHMpKSAodGhyb3cg KHF1b3RlIGV4aXQpIGVsZW1lbnQpKSAoKGxldCAoKGNiZWcgLi4uKSAoY2VuZCAuLi4pKSAoaWYg KG9yIHN5bmNwIC4uLikgKHByb2duIC4uLiAuLi4pKSkpICh0ICh0aHJvdyAocXVvdGUgZXhpdCkg ZWxlbWVudCkpKSkgKHNldHEgZWxlbWVudCBuaWwpKSkKICAobGV0KiAoKGNhY2hlZCAoYW5kIChv cmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChvcmctZWxlbWVudC0tY2FjaGUtZmluZCBwb3Mg bmlsKSkpIChiZWdpbiAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmJlZ2luIGNhY2hlZCkpIGVsZW1l bnQgbmV4dCkgKGNvbmQgKChub3QgY2FjaGVkKSAoaWYgKGxldCogKChvcmctY2FsbGVkLXdpdGgt bGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91 dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1v dXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChvdXRs aW5lLXByZXZpb3VzLWhlYWRpbmcpKSAocHJvZ24gKGZvcndhcmQtbGluZSkpKSAoc2tpcC1jaGFy cy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkpICgoPSBwb3MgYmVnaW4pICh0 aHJvdyAocXVvdGUgZXhpdCkgKGlmIHN5bmNwIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGFyZW50 IGNhY2hlZCkgY2FjaGVkKSkpICgocmUtc2VhcmNoLWJhY2t3YXJkIChsZXQqICgob3JnLWNhbGxl ZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGlt aXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHAp IChvcmctb3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkp KSBvcmctb3V0bGluZS1yZWdleHAtYm9sKSBiZWdpbiB0KSAoZm9yd2FyZC1saW5lKSAoc2tpcC1j aGFycy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkpICh0IChsZXQgKCh1cCBj YWNoZWQpIChwb3MgKGlmICg9IC4uLiBwb3MpICgxLSBwb3MpIHBvcykpKSAoZ290by1jaGFyIChv ciAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmNvbnRlbnRzLWJlZ2luIGNhY2hlZCkgYmVnaW4pKSAo d2hpbGUgKGxldCAoKGVuZCAuLi4pKSAoYW5kICg8PSBlbmQgcG9zKSAoZ290by1jaGFyIGVuZCkg KHNldHEgdXAgLi4uKSkpKSAoY29uZCAoKG5vdCB1cCkpICgoZW9icCkgKHNldHEgZWxlbWVudCB1 cCkpICh0IChzZXRxIGVsZW1lbnQgdXAgbmV4dCAocG9pbnQpKSkpKSkpIChsZXQgKChlbmQgKG9y IChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQpIChzYXZlLWV4Y3Vyc2lvbiAobGV0 KiAoLi4uIC4uLiAuLi4gLi4uKSAob3V0bGluZS1uZXh0LWhlYWRpbmcpKSAocG9pbnQpKSkpIChw YXJlbnQgZWxlbWVudCkgc3BlY2lhbC1mbGFnKSAod2hpbGUgdCAoaWYgc3luY3AgKHByb2duIChj b25kICgoPSAuLi4gcG9zKSAodGhyb3cgLi4uIHBhcmVudCkpICgob3JnLWVsZW1lbnQtLWNhY2hl LWludGVycnVwdC1wIHRpbWUtbGltaXQpICh0aHJvdyAuLi4gbmlsKSkpKSkgKGlmIGVsZW1lbnQg bmlsIChzZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50LS1jdXJyZW50LWVsZW1lbnQgZW5kIChxdW90 ZSBlbGVtZW50KSBzcGVjaWFsLWZsYWcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpzdHJ1Y3R1cmUg cGFyZW50KSkpIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgZWxlbWVudCA6cGFyZW50IHBhcmVu dCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQgZWxlbWVudCkpIChsZXQgKChlbGVtLWVuZCAob3Jn LWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSkgKHR5cGUgKG9yZy1lbGVtZW50LXR5cGUg ZWxlbWVudCkpKSAoY29uZCAoKGFuZCAoPD0gZWxlbS1lbmQgcG9zKSAoLz0gLi4uIGVsZW0tZW5k KSkgKGdvdG8tY2hhciBlbGVtLWVuZCkpICgobm90IChtZW1xIHR5cGUgb3JnLWVsZW1lbnQtZ3Jl YXRlci1lbGVtZW50cykpICh0aHJvdyAocXVvdGUgZXhpdCkgZWxlbWVudCkpICgobGV0ICguLi4g Li4uKSAoaWYgLi4uIC4uLikpKSAodCAodGhyb3cgKHF1b3RlIGV4aXQpIGVsZW1lbnQpKSkpIChz ZXRxIGVsZW1lbnQgbmlsKSkpKQogIChzYXZlLXJlc3RyaWN0aW9uICh3aWRlbikgKGdvdG8tY2hh ciBwb3MpIChsZXQqICgoY2FjaGVkIChhbmQgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkg KG9yZy1lbGVtZW50LS1jYWNoZS1maW5kIHBvcyBuaWwpKSkgKGJlZ2luIChvcmctZWxlbWVudC1w cm9wZXJ0eSA6YmVnaW4gY2FjaGVkKSkgZWxlbWVudCBuZXh0KSAoY29uZCAoKG5vdCBjYWNoZWQp IChpZiAobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxp bmUtcmVnZXhwIC4uLikgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1v dXRsaW5lLXJlZ2V4cC1ib2wgLi4uKSkgKG91dGxpbmUtcHJldmlvdXMtaGVhZGluZykpIChwcm9n biAoZm9yd2FyZC1saW5lKSkpIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmlu Zy1vZi1saW5lKSkgKCg9IHBvcyBiZWdpbikgKHRocm93IChxdW90ZSBleGl0KSAoaWYgc3luY3Ag KG9yZy1lbGVtZW50LXByb3BlcnR5IDpwYXJlbnQgY2FjaGVkKSBjYWNoZWQpKSkgKChyZS1zZWFy Y2gtYmFja3dhcmQgKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9y Zy1vdXRsaW5lLXJlZ2V4cCAuLi4pIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHAp IChvcmctb3V0bGluZS1yZWdleHAtYm9sIC4uLikpIG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wpIGJl Z2luIHQpIChmb3J3YXJkLWxpbmUpIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lu bmluZy1vZi1saW5lKSkgKHQgKGxldCAoKHVwIGNhY2hlZCkgKHBvcyAoaWYgLi4uIC4uLiBwb3Mp KSkgKGdvdG8tY2hhciAob3IgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpjb250ZW50cy1iZWdpbiBj YWNoZWQpIGJlZ2luKSkgKHdoaWxlIChsZXQgKC4uLikgKGFuZCAuLi4gLi4uIC4uLikpKSAoY29u ZCAoKG5vdCB1cCkpICgoZW9icCkgKHNldHEgZWxlbWVudCB1cCkpICh0IChzZXRxIGVsZW1lbnQg dXAgbmV4dCAuLi4pKSkpKSkgKGxldCAoKGVuZCAob3IgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpl bmQgZWxlbWVudCkgKHNhdmUtZXhjdXJzaW9uIChsZXQqIC4uLiAuLi4pIChwb2ludCkpKSkgKHBh cmVudCBlbGVtZW50KSBzcGVjaWFsLWZsYWcpICh3aGlsZSB0IChpZiBzeW5jcCAocHJvZ24gKGNv bmQgKC4uLiAuLi4pICguLi4gLi4uKSkpKSAoaWYgZWxlbWVudCBuaWwgKHNldHEgZWxlbWVudCAo b3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVudCBlbmQgKHF1b3RlIGVsZW1lbnQpIHNwZWNpYWwt ZmxhZyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnN0cnVjdHVyZSBwYXJlbnQpKSkgKG9yZy1lbGVt ZW50LXB1dC1wcm9wZXJ0eSBlbGVtZW50IDpwYXJlbnQgcGFyZW50KSAob3JnLWVsZW1lbnQtLWNh Y2hlLXB1dCBlbGVtZW50KSkgKGxldCAoKGVsZW0tZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6 ZW5kIGVsZW1lbnQpKSAodHlwZSAob3JnLWVsZW1lbnQtdHlwZSBlbGVtZW50KSkpIChjb25kICgo YW5kIC4uLiAuLi4pIChnb3RvLWNoYXIgZWxlbS1lbmQpKSAoKG5vdCAuLi4pICh0aHJvdyAuLi4g ZWxlbWVudCkpICgobGV0IC4uLiAuLi4pKSAodCAodGhyb3cgLi4uIGVsZW1lbnQpKSkpIChzZXRx IGVsZW1lbnQgbmlsKSkpKSkKICAoc2F2ZS1leGN1cnNpb24gKHNhdmUtcmVzdHJpY3Rpb24gKHdp ZGVuKSAoZ290by1jaGFyIHBvcykgKGxldCogKChjYWNoZWQgKGFuZCAob3JnLWVsZW1lbnQtLWNh Y2hlLWFjdGl2ZS1wKSAob3JnLWVsZW1lbnQtLWNhY2hlLWZpbmQgcG9zIG5pbCkpKSAoYmVnaW4g KG9yZy1lbGVtZW50LXByb3BlcnR5IDpiZWdpbiBjYWNoZWQpKSBlbGVtZW50IG5leHQpIChjb25k ICgobm90IGNhY2hlZCkgKGlmIChsZXQqICguLi4gLi4uIC4uLiAuLi4pIChvdXRsaW5lLXByZXZp b3VzLWhlYWRpbmcpKSAocHJvZ24gKGZvcndhcmQtbGluZSkpKSAoc2tpcC1jaGFycy1mb3J3YXJk ICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkpICgoPSBwb3MgYmVnaW4pICh0aHJvdyAocXVv dGUgZXhpdCkgKGlmIHN5bmNwIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGFyZW50IGNhY2hlZCkg Y2FjaGVkKSkpICgocmUtc2VhcmNoLWJhY2t3YXJkIChsZXQqICguLi4gLi4uIC4uLiAuLi4pIG9y Zy1vdXRsaW5lLXJlZ2V4cC1ib2wpIGJlZ2luIHQpIChmb3J3YXJkLWxpbmUpIChza2lwLWNoYXJz LWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkgKHQgKGxldCAoKHVwIGNhY2hl ZCkgKHBvcyAuLi4pKSAoZ290by1jaGFyIChvciAuLi4gYmVnaW4pKSAod2hpbGUgKGxldCAuLi4g Li4uKSkgKGNvbmQgKC4uLikgKC4uLiAuLi4pICh0IC4uLikpKSkpIChsZXQgKChlbmQgKG9yIChv cmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQpIChzYXZlLWV4Y3Vyc2lvbiAuLi4gLi4u KSkpIChwYXJlbnQgZWxlbWVudCkgc3BlY2lhbC1mbGFnKSAod2hpbGUgdCAoaWYgc3luY3AgKHBy b2duIChjb25kIC4uLiAuLi4pKSkgKGlmIGVsZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQgKG9yZy1l bGVtZW50LS1jdXJyZW50LWVsZW1lbnQgZW5kIC4uLiBzcGVjaWFsLWZsYWcgLi4uKSkgKG9yZy1l bGVtZW50LXB1dC1wcm9wZXJ0eSBlbGVtZW50IDpwYXJlbnQgcGFyZW50KSAob3JnLWVsZW1lbnQt LWNhY2hlLXB1dCBlbGVtZW50KSkgKGxldCAoKGVsZW0tZW5kIC4uLikgKHR5cGUgLi4uKSkgKGNv bmQgKC4uLiAuLi4pICguLi4gLi4uKSAoLi4uKSAodCAuLi4pKSkgKHNldHEgZWxlbWVudCBuaWwp KSkpKSkKICAoY2F0Y2ggKHF1b3RlIGV4aXQpIChzYXZlLWV4Y3Vyc2lvbiAoc2F2ZS1yZXN0cmlj dGlvbiAod2lkZW4pIChnb3RvLWNoYXIgcG9zKSAobGV0KiAoKGNhY2hlZCAoYW5kIChvcmctZWxl bWVudC0tY2FjaGUtYWN0aXZlLXApIChvcmctZWxlbWVudC0tY2FjaGUtZmluZCBwb3MgbmlsKSkp IChiZWdpbiAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmJlZ2luIGNhY2hlZCkpIGVsZW1lbnQgbmV4 dCkgKGNvbmQgKChub3QgY2FjaGVkKSAoaWYgKGxldCogLi4uIC4uLikgKHByb2duIC4uLikpIChz a2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkgKCg9IHBvcyBi ZWdpbikgKHRocm93IChxdW90ZSBleGl0KSAoaWYgc3luY3AgLi4uIGNhY2hlZCkpKSAoKHJlLXNl YXJjaC1iYWNrd2FyZCAobGV0KiAuLi4gb3JnLW91dGxpbmUtcmVnZXhwLWJvbCkgYmVnaW4gdCkg KGZvcndhcmQtbGluZSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9m LWxpbmUpKSAodCAobGV0ICguLi4gLi4uKSAoZ290by1jaGFyIC4uLikgKHdoaWxlIC4uLikgKGNv bmQgLi4uIC4uLiAuLi4pKSkpIChsZXQgKChlbmQgKG9yIC4uLiAuLi4pKSAocGFyZW50IGVsZW1l bnQpIHNwZWNpYWwtZmxhZykgKHdoaWxlIHQgKGlmIHN5bmNwIChwcm9nbiAuLi4pKSAoaWYgZWxl bWVudCBuaWwgKHNldHEgZWxlbWVudCAuLi4pIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgZWxl bWVudCA6cGFyZW50IHBhcmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQgZWxlbWVudCkpIChs ZXQgKC4uLiAuLi4pIChjb25kIC4uLiAuLi4gLi4uIC4uLikpIChzZXRxIGVsZW1lbnQgbmlsKSkp KSkpKQogIG9yZy1lbGVtZW50LS1wYXJzZS10bygyNTcyODApCiAgKGNvbmQgKChib2JwKSBuaWwp ICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUt cmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAg b3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBv cmctb3V0bGluZS1yZWdleHApKSkgKG9yZy1hdC1oZWFkaW5nLXApKSAoYmVnaW5uaW5nLW9mLWxp bmUpIChvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIgKHBvaW50LW1heCkgdCkpICh0IChpZiAo b3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAocHJvZ24gKGlmIChub3Qgb3JnLWVsZW1lbnQt LWNhY2hlKSAob3JnLWVsZW1lbnQtY2FjaGUtcmVzZXQpIChvcmctZWxlbWVudC0tY2FjaGUtc3lu YyAoY3VycmVudC1idWZmZXIpIG9yaWdpbikpKSkgKG9yZy1lbGVtZW50LS1wYXJzZS10byBvcmln aW4pKSkKICAobGV0ICgob3JpZ2luIChwb2ludCkpKSAoZW5kLW9mLWxpbmUpIChza2lwLWNoYXJz LWJhY2t3YXJkICIgDQlcbiIpIChjb25kICgoYm9icCkgbmlsKSAoKGxldCogKChvcmctY2FsbGVk LXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1p dGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkg KG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkp IChvcmctYXQtaGVhZGluZy1wKSkgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQtaGVh ZGxpbmUtcGFyc2VyIChwb2ludC1tYXgpIHQpKSAodCAoaWYgKG9yZy1lbGVtZW50LS1jYWNoZS1h Y3RpdmUtcCkgKHByb2duIChpZiAobm90IG9yZy1lbGVtZW50LS1jYWNoZSkgKG9yZy1lbGVtZW50 LWNhY2hlLXJlc2V0KSAob3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMgKGN1cnJlbnQtYnVmZmVyKSBv cmlnaW4pKSkpIChvcmctZWxlbWVudC0tcGFyc2UtdG8gb3JpZ2luKSkpKQogIChzYXZlLXJlc3Ry aWN0aW9uICh3aWRlbikgKGxldCAoKG9yaWdpbiAocG9pbnQpKSkgKGVuZC1vZi1saW5lKSAoc2tp cC1jaGFycy1iYWNrd2FyZCAiIA0JXG4iKSAoY29uZCAoKGJvYnApIG5pbCkgKChsZXQqICgob3Jn LWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1n ZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1y ZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJl Z2V4cCkpKSAob3JnLWF0LWhlYWRpbmctcCkpIChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVt ZW50LWhlYWRsaW5lLXBhcnNlciAocG9pbnQtbWF4KSB0KSkgKHQgKGlmIChvcmctZWxlbWVudC0t Y2FjaGUtYWN0aXZlLXApIChwcm9nbiAoaWYgKG5vdCBvcmctZWxlbWVudC0tY2FjaGUpIChvcmct ZWxlbWVudC1jYWNoZS1yZXNldCkgKG9yZy1lbGVtZW50LS1jYWNoZS1zeW5jIC4uLiBvcmlnaW4p KSkpIChvcmctZWxlbWVudC0tcGFyc2UtdG8gb3JpZ2luKSkpKSkKICAoc2F2ZS1leGN1cnNpb24g KHNhdmUtcmVzdHJpY3Rpb24gKHdpZGVuKSAobGV0ICgob3JpZ2luIChwb2ludCkpKSAoZW5kLW9m LWxpbmUpIChza2lwLWNoYXJzLWJhY2t3YXJkICIgDQlcbiIpIChjb25kICgoYm9icCkgbmlsKSAo KGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJl Z2V4cCAuLi4pIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGlu ZS1yZWdleHAtYm9sIC4uLikpIChvcmctYXQtaGVhZGluZy1wKSkgKGJlZ2lubmluZy1vZi1saW5l KSAob3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFyc2VyIChwb2ludC1tYXgpIHQpKSAodCAoaWYgKG9y Zy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKHByb2duIChpZiAuLi4gLi4uIC4uLikpKSAob3Jn LWVsZW1lbnQtLXBhcnNlLXRvIG9yaWdpbikpKSkpKQogIG9yZy1lbGVtZW50LWF0LXBvaW50KCkK ICAobGV0ICgoZHJhd2VyIChvcmctZWxlbWVudC1hdC1wb2ludCkpKSAoaWYgKGFuZCAoZXEgKG9y Zy1lbGVtZW50LXR5cGUgZHJhd2VyKSAocXVvdGUgcHJvcGVydHktZHJhd2VyKSkgKGxldCAoKHAg ZHJhd2VyKSkgKHdoaWxlIChhbmQgKHNldHEgcCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhcmVu dCBwKSkgKG5vdCAoZXEgLi4uIC4uLikpKSkgKG5vdCBwKSkpIChwcm9nbiAobGV0ICgoZW5kIChv cmctZWxlbWVudC1wcm9wZXJ0eSA6Y29udGVudHMtZW5kIGRyYXdlcikpKSAoaWYgZW5kIChwcm9n biAoZm9yd2FyZC1saW5lKSAod2hpbGUgKDwgLi4uIGVuZCkgKGlmIC4uLiAuLi4pIChmb3J3YXJk LWxpbmUpKSkpKSkpKQogICh3aGlsZSAoYW5kIChudWxsIHBsaXN0KSAocmUtc2VhcmNoLWZvcndh cmQgb3JnLXByb3BlcnR5LXN0YXJ0LXJlIGVuZCB0KSkgKGxldCAoKGRyYXdlciAob3JnLWVsZW1l bnQtYXQtcG9pbnQpKSkgKGlmIChhbmQgKGVxIChvcmctZWxlbWVudC10eXBlIGRyYXdlcikgKHF1 b3RlIHByb3BlcnR5LWRyYXdlcikpIChsZXQgKChwIGRyYXdlcikpICh3aGlsZSAoYW5kIChzZXRx IHAgLi4uKSAobm90IC4uLikpKSAobm90IHApKSkgKHByb2duIChsZXQgKChlbmQgKG9yZy1lbGVt ZW50LXByb3BlcnR5IDpjb250ZW50cy1lbmQgZHJhd2VyKSkpIChpZiBlbmQgKHByb2duIChmb3J3 YXJkLWxpbmUpICh3aGlsZSAuLi4gLi4uIC4uLikpKSkpKSkpCiAgKHNhdmUtZXhjdXJzaW9uICh3 aGlsZSAoYW5kIChudWxsIHBsaXN0KSAocmUtc2VhcmNoLWZvcndhcmQgb3JnLXByb3BlcnR5LXN0 YXJ0LXJlIGVuZCB0KSkgKGxldCAoKGRyYXdlciAob3JnLWVsZW1lbnQtYXQtcG9pbnQpKSkgKGlm IChhbmQgKGVxIChvcmctZWxlbWVudC10eXBlIGRyYXdlcikgKHF1b3RlIHByb3BlcnR5LWRyYXdl cikpIChsZXQgKChwIGRyYXdlcikpICh3aGlsZSAoYW5kIC4uLiAuLi4pKSAobm90IHApKSkgKHBy b2duIChsZXQgKChlbmQgLi4uKSkgKGlmIGVuZCAocHJvZ24gLi4uIC4uLikpKSkpKSkgcGxpc3Qp CiAgKGxldCAoKGVuZCAoc2F2ZS1leGN1cnNpb24gKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGlt aXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxp bmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRs aW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChvdXRsaW5l LW5leHQtaGVhZGluZykpIChwb2ludCkpKSBwbGlzdCkgKHNhdmUtZXhjdXJzaW9uICh3aGlsZSAo YW5kIChudWxsIHBsaXN0KSAocmUtc2VhcmNoLWZvcndhcmQgb3JnLXByb3BlcnR5LXN0YXJ0LXJl IGVuZCB0KSkgKGxldCAoKGRyYXdlciAob3JnLWVsZW1lbnQtYXQtcG9pbnQpKSkgKGlmIChhbmQg KGVxIChvcmctZWxlbWVudC10eXBlIGRyYXdlcikgKHF1b3RlIHByb3BlcnR5LWRyYXdlcikpIChs ZXQgKC4uLikgKHdoaWxlIC4uLikgKG5vdCBwKSkpIChwcm9nbiAobGV0ICguLi4pIChpZiBlbmQg Li4uKSkpKSkpIHBsaXN0KSkKICAobGV0KiAoKGNvbXBvbmVudHMgKG9yZy1oZWFkaW5nLWNvbXBv bmVudHMpKSAobGV2ZWwgKG50aCAxIGNvbXBvbmVudHMpKSAodG9kbyAobnRoIDIgY29tcG9uZW50 cykpICh0b2RvLXR5cGUgKGFuZCB0b2RvIChpZiAobWVtYmVyIHRvZG8gb3JnLWRvbmUta2V5d29y ZHMpIChxdW90ZSBkb25lKSAocXVvdGUgdG9kbykpKSkgKHRhZ3MgKGxldCAoKHJhdy10YWdzIChu dGggNSBjb21wb25lbnRzKSkpIChhbmQgcmF3LXRhZ3MgKG9yZy1zcGxpdC1zdHJpbmcgcmF3LXRh Z3MgIjoiKSkpKSAocmF3LXZhbHVlIChvciAobnRoIDQgY29tcG9uZW50cykgIiIpKSAoY29tbWVu dGVkcCAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCBuaWwpKSAoc3RyaW5nLW1hdGNoIChmb3JtYXQg Il4lc1xcKCBcXHwkXFwpIiBvcmctY29tbWVudC1zdHJpbmcpIHJhdy12YWx1ZSkpKSAoYXJjaGl2 ZWRwIChtZW1iZXIgb3JnLWFyY2hpdmUtdGFnIHRhZ3MpKSAoZm9vdG5vdGUtc2VjdGlvbi1wIChh bmQgb3JnLWZvb3Rub3RlLXNlY3Rpb24gKHN0cmluZz0gb3JnLWZvb3Rub3RlLXNlY3Rpb24gcmF3 LXZhbHVlKSkpIChzdGFuZGFyZC1wcm9wcyAobGV0ICgoZW5kIChzYXZlLWV4Y3Vyc2lvbiAobGV0 KiAuLi4gLi4uKSAocG9pbnQpKSkgcGxpc3QpIChzYXZlLWV4Y3Vyc2lvbiAod2hpbGUgKGFuZCAo bnVsbCBwbGlzdCkgKHJlLXNlYXJjaC1mb3J3YXJkIG9yZy1wcm9wZXJ0eS1zdGFydC1yZSBlbmQg dCkpIChsZXQgKC4uLikgKGlmIC4uLiAuLi4pKSkgcGxpc3QpKSkgKHRpbWUtcHJvcHMgKHNhdmUt ZXhjdXJzaW9uIChmb3J3YXJkLWxpbmUpIChpZiAobG9va2luZy1hdCBvcmctcGxhbm5pbmctb3It Y2xvY2stbGluZS1yZSkgKHByb2duIChsZXQgKC4uLiBwbGlzdCkgKHdoaWxlIC4uLiAuLi4gLi4u IC4uLikgcGxpc3QpKSkpKSAoYmVnaW4gKHBvaW50KSkgKGVuZCAobWluIChzYXZlLWV4Y3Vyc2lv biAob3JnLWVuZC1vZi1zdWJ0cmVlIHQgdCkpIGxpbWl0KSkgKHBvcy1hZnRlci1oZWFkIChwcm9n biAoZm9yd2FyZC1saW5lKSAocG9pbnQpKSkgKGNvbnRlbnRzLWJlZ2luIChzYXZlLWV4Y3Vyc2lv biAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIgZW5kKSAoYW5kICgvPSAocG9pbnQpIGVuZCkg KGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkpKSAoY29udGVudHMtZW5kIChhbmQgY29udGVudHMt YmVnaW4gKHByb2duIChnb3RvLWNoYXIgZW5kKSAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIA0JXG4i KSAoZm9yd2FyZC1saW5lKSAocG9pbnQpKSkpKSAoaWYgY29tbWVudGVkcCAocHJvZ24gKGxldCAo KGNhc2UtZm9sZC1zZWFyY2ggbmlsKSkgKHNldHEgcmF3LXZhbHVlIChyZXBsYWNlLXJlZ2V4cC1p bi1zdHJpbmcgKGNvbmNhdCAocmVnZXhwLXF1b3RlIG9yZy1jb21tZW50LXN0cmluZykgIlxcKD86 IFxcfCRcXCkiKSAiIiByYXctdmFsdWUpKSkpKSAoaWYgYXJjaGl2ZWRwIChwcm9nbiAoc2V0cSB0 YWdzIChkZWxldGUgb3JnLWFyY2hpdmUtdGFnIHRhZ3MpKSkpIChsZXQgKChoZWFkbGluZSAobGlz dCAocXVvdGUgaGVhZGxpbmUpIChuY29uYyAobGlzdCA6cmF3LXZhbHVlIHJhdy12YWx1ZSA6YmVn aW4gYmVnaW4gOmVuZCBlbmQgOnByZS1ibGFuayAoaWYgLi4uIDAgLi4uKSA6Y29udGVudHMtYmVn aW4gY29udGVudHMtYmVnaW4gOmNvbnRlbnRzLWVuZCBjb250ZW50cy1lbmQgOmxldmVsIGxldmVs IDpwcmlvcml0eSAobnRoIDMgY29tcG9uZW50cykgOnRhZ3MgdGFncyA6dG9kby1rZXl3b3JkIHRv ZG8gOnRvZG8tdHlwZSB0b2RvLXR5cGUgOnBvc3QtYmxhbmsgKGNvdW50LWxpbmVzIC4uLiBlbmQp IDpmb290bm90ZS1zZWN0aW9uLXAgZm9vdG5vdGUtc2VjdGlvbi1wIDphcmNoaXZlZHAgYXJjaGl2 ZWRwIDpjb21tZW50ZWRwIGNvbW1lbnRlZHApIHRpbWUtcHJvcHMgc3RhbmRhcmQtcHJvcHMpKSkp IChsZXQgKChhbHQtdGl0bGUgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpBTFRfVElUTEUgaGVhZGxp bmUpKSkgKGlmIGFsdC10aXRsZSAocHJvZ24gKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBoZWFk bGluZSA6YWx0LXRpdGxlIChpZiByYXctc2Vjb25kYXJ5LXAgYWx0LXRpdGxlIChvcmctZWxlbWVu dC1wYXJzZS1zZWNvbmRhcnktc3RyaW5nIGFsdC10aXRsZSAuLi4gaGVhZGxpbmUpKSkpKSkgKG9y Zy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBoZWFkbGluZSA6dGl0bGUgKGlmIHJhdy1zZWNvbmRhcnkt cCByYXctdmFsdWUgKG9yZy1lbGVtZW50LXBhcnNlLXNlY29uZGFyeS1zdHJpbmcgcmF3LXZhbHVl IChvcmctZWxlbWVudC1yZXN0cmljdGlvbiAocXVvdGUgaGVhZGxpbmUpKSBoZWFkbGluZSkpKSkp CiAgKHNhdmUtZXhjdXJzaW9uIChsZXQqICgoY29tcG9uZW50cyAob3JnLWhlYWRpbmctY29tcG9u ZW50cykpIChsZXZlbCAobnRoIDEgY29tcG9uZW50cykpICh0b2RvIChudGggMiBjb21wb25lbnRz KSkgKHRvZG8tdHlwZSAoYW5kIHRvZG8gKGlmIChtZW1iZXIgdG9kbyBvcmctZG9uZS1rZXl3b3Jk cykgKHF1b3RlIGRvbmUpIChxdW90ZSB0b2RvKSkpKSAodGFncyAobGV0ICgocmF3LXRhZ3MgKG50 aCA1IGNvbXBvbmVudHMpKSkgKGFuZCByYXctdGFncyAob3JnLXNwbGl0LXN0cmluZyByYXctdGFn cyAiOiIpKSkpIChyYXctdmFsdWUgKG9yIChudGggNCBjb21wb25lbnRzKSAiIikpIChjb21tZW50 ZWRwIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIG5pbCkpIChzdHJpbmctbWF0Y2ggKGZvcm1hdCAi XiVzXFwoIFxcfCRcXCkiIG9yZy1jb21tZW50LXN0cmluZykgcmF3LXZhbHVlKSkpIChhcmNoaXZl ZHAgKG1lbWJlciBvcmctYXJjaGl2ZS10YWcgdGFncykpIChmb290bm90ZS1zZWN0aW9uLXAgKGFu ZCBvcmctZm9vdG5vdGUtc2VjdGlvbiAoc3RyaW5nPSBvcmctZm9vdG5vdGUtc2VjdGlvbiByYXct dmFsdWUpKSkgKHN0YW5kYXJkLXByb3BzIChsZXQgKChlbmQgKHNhdmUtZXhjdXJzaW9uIC4uLiAu Li4pKSBwbGlzdCkgKHNhdmUtZXhjdXJzaW9uICh3aGlsZSAoYW5kIC4uLiAuLi4pIChsZXQgLi4u IC4uLikpIHBsaXN0KSkpICh0aW1lLXByb3BzIChzYXZlLWV4Y3Vyc2lvbiAoZm9yd2FyZC1saW5l KSAoaWYgKGxvb2tpbmctYXQgb3JnLXBsYW5uaW5nLW9yLWNsb2NrLWxpbmUtcmUpIChwcm9nbiAo bGV0IC4uLiAuLi4gcGxpc3QpKSkpKSAoYmVnaW4gKHBvaW50KSkgKGVuZCAobWluIChzYXZlLWV4 Y3Vyc2lvbiAob3JnLWVuZC1vZi1zdWJ0cmVlIHQgdCkpIGxpbWl0KSkgKHBvcy1hZnRlci1oZWFk IChwcm9nbiAoZm9yd2FyZC1saW5lKSAocG9pbnQpKSkgKGNvbnRlbnRzLWJlZ2luIChzYXZlLWV4 Y3Vyc2lvbiAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIgZW5kKSAoYW5kICgvPSAocG9pbnQp IGVuZCkgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkpKSAoY29udGVudHMtZW5kIChhbmQgY29u dGVudHMtYmVnaW4gKHByb2duIChnb3RvLWNoYXIgZW5kKSAoc2tpcC1jaGFycy1iYWNrd2FyZCAi IA0JXG4iKSAoZm9yd2FyZC1saW5lKSAocG9pbnQpKSkpKSAoaWYgY29tbWVudGVkcCAocHJvZ24g KGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggbmlsKSkgKHNldHEgcmF3LXZhbHVlIChyZXBsYWNlLXJl Z2V4cC1pbi1zdHJpbmcgKGNvbmNhdCAuLi4gIlxcKD86IFxcfCRcXCkiKSAiIiByYXctdmFsdWUp KSkpKSAoaWYgYXJjaGl2ZWRwIChwcm9nbiAoc2V0cSB0YWdzIChkZWxldGUgb3JnLWFyY2hpdmUt dGFnIHRhZ3MpKSkpIChsZXQgKChoZWFkbGluZSAobGlzdCAocXVvdGUgaGVhZGxpbmUpIChuY29u YyAobGlzdCA6cmF3LXZhbHVlIHJhdy12YWx1ZSA6YmVnaW4gYmVnaW4gOmVuZCBlbmQgOnByZS1i bGFuayAuLi4gOmNvbnRlbnRzLWJlZ2luIGNvbnRlbnRzLWJlZ2luIDpjb250ZW50cy1lbmQgY29u dGVudHMtZW5kIDpsZXZlbCBsZXZlbCA6cHJpb3JpdHkgLi4uIDp0YWdzIHRhZ3MgOnRvZG8ta2V5 d29yZCB0b2RvIDp0b2RvLXR5cGUgdG9kby10eXBlIDpwb3N0LWJsYW5rIC4uLiA6Zm9vdG5vdGUt c2VjdGlvbi1wIGZvb3Rub3RlLXNlY3Rpb24tcCA6YXJjaGl2ZWRwIGFyY2hpdmVkcCA6Y29tbWVu dGVkcCBjb21tZW50ZWRwKSB0aW1lLXByb3BzIHN0YW5kYXJkLXByb3BzKSkpKSAobGV0ICgoYWx0 LXRpdGxlIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6QUxUX1RJVExFIGhlYWRsaW5lKSkpIChpZiBh bHQtdGl0bGUgKHByb2duIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgaGVhZGxpbmUgOmFsdC10 aXRsZSAoaWYgcmF3LXNlY29uZGFyeS1wIGFsdC10aXRsZSAuLi4pKSkpKSAob3JnLWVsZW1lbnQt cHV0LXByb3BlcnR5IGhlYWRsaW5lIDp0aXRsZSAoaWYgcmF3LXNlY29uZGFyeS1wIHJhdy12YWx1 ZSAob3JnLWVsZW1lbnQtcGFyc2Utc2Vjb25kYXJ5LXN0cmluZyByYXctdmFsdWUgKG9yZy1lbGVt ZW50LXJlc3RyaWN0aW9uIChxdW90ZSBoZWFkbGluZSkpIGhlYWRsaW5lKSkpKSkpCiAgb3JnLWVs ZW1lbnQtaGVhZGxpbmUtcGFyc2VyKDI1NzcwNiB0KQogIChjb25kICgoZXEgc3BlY2lhbCAocXVv dGUgaXRlbSkpIChvcmctZWxlbWVudC1pdGVtLXBhcnNlciBsaW1pdCBzdHJ1Y3R1cmUgcmF3LXNl Y29uZGFyeS1wKSkgKChlcSBzcGVjaWFsIChxdW90ZSB0YWJsZS1yb3cpKSAob3JnLWVsZW1lbnQt dGFibGUtcm93LXBhcnNlciBsaW1pdCkpICgoZXEgc3BlY2lhbCAocXVvdGUgbm9kZS1wcm9wZXJ0 eSkpIChvcmctZWxlbWVudC1ub2RlLXByb3BlcnR5LXBhcnNlciBsaW1pdCkpICgobGV0KiAoKG9y Zy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmct Z2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUt cmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1y ZWdleHApKSkgKG9yZy1hdC1oZWFkaW5nLXApKSAob3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFyc2Vy IGxpbWl0IHJhdy1zZWNvbmRhcnktcCkpICgoZXEgc3BlY2lhbCAocXVvdGUgc2VjdGlvbikpIChv cmctZWxlbWVudC1zZWN0aW9uLXBhcnNlciBsaW1pdCkpICgoZXEgc3BlY2lhbCAocXVvdGUgZmly c3Qtc2VjdGlvbikpIChvcmctZWxlbWVudC1zZWN0aW9uLXBhcnNlciAob3IgKHNhdmUtZXhjdXJz aW9uIChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGlu ZS1yZWdleHAgLi4uKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91 dGxpbmUtcmVnZXhwLWJvbCAuLi4pKSAob3V0bGluZS1uZXh0LWhlYWRpbmcpKSkgbGltaXQpKSkg KChub3QgKGJvbHApKSAob3JnLWVsZW1lbnQtcGFyYWdyYXBoLXBhcnNlciBsaW1pdCAobGlzdCAo cG9pbnQpKSkpICgobG9va2luZy1hdCBvcmctcGxhbm5pbmctb3ItY2xvY2stbGluZS1yZSkgKGlm IChlcXVhbCAobWF0Y2gtc3RyaW5nIDEpIG9yZy1jbG9jay1zdHJpbmcpIChvcmctZWxlbWVudC1j bG9jay1wYXJzZXIgbGltaXQpIChvcmctZWxlbWVudC1wbGFubmluZy1wYXJzZXIgbGltaXQpKSkg KChvcmctYXQtaGVhZGluZy1wKSAob3JnLWVsZW1lbnQtaW5saW5ldGFzay1wYXJzZXIgbGltaXQg cmF3LXNlY29uZGFyeS1wKSkgKHQgKGxldCAoKGFmZmlsaWF0ZWQgKG9yZy1lbGVtZW50LS1jb2xs ZWN0LWFmZmlsaWF0ZWQta2V5d29yZHMgbGltaXQpKSkgKGNvbmQgKChhbmQgKGNkciBhZmZpbGlh dGVkKSAoPj0gKHBvaW50KSBsaW1pdCkpIChnb3RvLWNoYXIgKGNhciBhZmZpbGlhdGVkKSkgKG9y Zy1lbGVtZW50LWtleXdvcmQtcGFyc2VyIGxpbWl0IG5pbCkpICgobG9va2luZy1hdCAiWyAgICAg XSpcXFxcYmVnaW57W0EtWmEtejAtOSpdK31cXChcXFsuKj9cXF1cXHx7Lio/fVxcKSpbICAgICBd KiQiKSAob3JnLWVsZW1lbnQtbGF0ZXgtZW52aXJvbm1lbnQtcGFyc2VyIGxpbWl0IGFmZmlsaWF0 ZWQpKSAoKGxvb2tpbmctYXQgb3JnLWRyYXdlci1yZWdleHApIChpZiAoZXF1YWwgKG1hdGNoLXN0 cmluZyAxKSAiUFJPUEVSVElFUyIpIChvcmctZWxlbWVudC1wcm9wZXJ0eS1kcmF3ZXItcGFyc2Vy IGxpbWl0IGFmZmlsaWF0ZWQpIChvcmctZWxlbWVudC1kcmF3ZXItcGFyc2VyIGxpbWl0IGFmZmls aWF0ZWQpKSkgKChsb29raW5nLWF0ICJbICAgXSo6XFwoIFxcfCRcXCkiKSAob3JnLWVsZW1lbnQt Zml4ZWQtd2lkdGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlsgICAg IF0qIyIpIChnb3RvLWNoYXIgKG1hdGNoLWVuZCAwKSkgKGNvbmQgKChsb29raW5nLWF0ICJcXCg/ OiBcXHwkXFwpIikgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQtY29tbWVudC1wYXJz ZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiXFwrQkVHSU5fXFwoXFxTLStcXCki KSAoYmVnaW5uaW5nLW9mLWxpbmUpIChsZXQgLi4uIC4uLikpICgobG9va2luZy1hdCAiXFwrQ0FM TDoiKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1iYWJlbC1jYWxsLXBhcnNlciBs aW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJcXCtCRUdJTjo/ICIpIChiZWdpbm5pbmct b2YtbGluZSkgKG9yZy1lbGVtZW50LWR5bmFtaWMtYmxvY2stcGFyc2VyIGxpbWl0IGFmZmlsaWF0 ZWQpKSAoKGxvb2tpbmctYXQgIlxcK1xcUy0rOiIpIChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1l bGVtZW50LWtleXdvcmQtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAodCAoYmVnaW5uaW5nLW9m LWxpbmUpIChvcmctZWxlbWVudC1wYXJhZ3JhcGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSkp ICgobG9va2luZy1hdCBvcmctZm9vdG5vdGUtZGVmaW5pdGlvbi1yZSkgKG9yZy1lbGVtZW50LWZv b3Rub3RlLWRlZmluaXRpb24tcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQg IlsgICBdKi1cXHs1LFxcfVsgICAgXSokIikgKG9yZy1lbGVtZW50LWhvcml6b250YWwtcnVsZS1w YXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiJSUoIikgKG9yZy1lbGVtZW50 LWRpYXJ5LXNleHAtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKG9yZy1hdC10YWJsZS1wIHQp IChvcmctZWxlbWVudC10YWJsZS1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1h dCAob3JnLWl0ZW0tcmUpKSAob3JnLWVsZW1lbnQtcGxhaW4tbGlzdC1wYXJzZXIgbGltaXQgYWZm aWxpYXRlZCAob3Igc3RydWN0dXJlIChvcmctZWxlbWVudC0tbGlzdC1zdHJ1Y3QgbGltaXQpKSkp ICh0IChvcmctZWxlbWVudC1wYXJhZ3JhcGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSkpKSkK ICAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCB0KSAocmF3LXNlY29uZGFyeS1wIChhbmQgZ3JhbnVs YXJpdHkgKG5vdCAoZXEgZ3JhbnVsYXJpdHkgKHF1b3RlIG9iamVjdCkpKSkpKSAoY29uZCAoKGVx IHNwZWNpYWwgKHF1b3RlIGl0ZW0pKSAob3JnLWVsZW1lbnQtaXRlbS1wYXJzZXIgbGltaXQgc3Ry dWN0dXJlIHJhdy1zZWNvbmRhcnktcCkpICgoZXEgc3BlY2lhbCAocXVvdGUgdGFibGUtcm93KSkg KG9yZy1lbGVtZW50LXRhYmxlLXJvdy1wYXJzZXIgbGltaXQpKSAoKGVxIHNwZWNpYWwgKHF1b3Rl IG5vZGUtcHJvcGVydHkpKSAob3JnLWVsZW1lbnQtbm9kZS1wcm9wZXJ0eS1wYXJzZXIgbGltaXQp KSAoKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5l LXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhw IG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIg b3JnLW91dGxpbmUtcmVnZXhwKSkpIChvcmctYXQtaGVhZGluZy1wKSkgKG9yZy1lbGVtZW50LWhl YWRsaW5lLXBhcnNlciBsaW1pdCByYXctc2Vjb25kYXJ5LXApKSAoKGVxIHNwZWNpYWwgKHF1b3Rl IHNlY3Rpb24pKSAob3JnLWVsZW1lbnQtc2VjdGlvbi1wYXJzZXIgbGltaXQpKSAoKGVxIHNwZWNp YWwgKHF1b3RlIGZpcnN0LXNlY3Rpb24pKSAob3JnLWVsZW1lbnQtc2VjdGlvbi1wYXJzZXIgKG9y IChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAoLi4uIC4uLiAuLi4gLi4uKSAob3V0bGluZS1uZXh0LWhl YWRpbmcpKSkgbGltaXQpKSkgKChub3QgKGJvbHApKSAob3JnLWVsZW1lbnQtcGFyYWdyYXBoLXBh cnNlciBsaW1pdCAobGlzdCAocG9pbnQpKSkpICgobG9va2luZy1hdCBvcmctcGxhbm5pbmctb3It Y2xvY2stbGluZS1yZSkgKGlmIChlcXVhbCAobWF0Y2gtc3RyaW5nIDEpIG9yZy1jbG9jay1zdHJp bmcpIChvcmctZWxlbWVudC1jbG9jay1wYXJzZXIgbGltaXQpIChvcmctZWxlbWVudC1wbGFubmlu Zy1wYXJzZXIgbGltaXQpKSkgKChvcmctYXQtaGVhZGluZy1wKSAob3JnLWVsZW1lbnQtaW5saW5l dGFzay1wYXJzZXIgbGltaXQgcmF3LXNlY29uZGFyeS1wKSkgKHQgKGxldCAoKGFmZmlsaWF0ZWQg KG9yZy1lbGVtZW50LS1jb2xsZWN0LWFmZmlsaWF0ZWQta2V5d29yZHMgbGltaXQpKSkgKGNvbmQg KChhbmQgKGNkciBhZmZpbGlhdGVkKSAoPj0gLi4uIGxpbWl0KSkgKGdvdG8tY2hhciAoY2FyIGFm ZmlsaWF0ZWQpKSAob3JnLWVsZW1lbnQta2V5d29yZC1wYXJzZXIgbGltaXQgbmlsKSkgKChsb29r aW5nLWF0ICJbICAgICAgICBdKlxcXFxiZWdpbntbQS1aYS16MC05Kl0rfVxcKFxcWy4qP1xcXVxc fHsuKj99XFwpKlsgICAgIF0qJCIpIChvcmctZWxlbWVudC1sYXRleC1lbnZpcm9ubWVudC1wYXJz ZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCBvcmctZHJhd2VyLXJlZ2V4cCkgKGlm IChlcXVhbCAuLi4gIlBST1BFUlRJRVMiKSAob3JnLWVsZW1lbnQtcHJvcGVydHktZHJhd2VyLXBh cnNlciBsaW1pdCBhZmZpbGlhdGVkKSAob3JnLWVsZW1lbnQtZHJhd2VyLXBhcnNlciBsaW1pdCBh ZmZpbGlhdGVkKSkpICgobG9va2luZy1hdCAiWyAgICAgICAgXSo6XFwoIFxcfCRcXCkiKSAob3Jn LWVsZW1lbnQtZml4ZWQtd2lkdGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmct YXQgIlsgICAgIF0qIyIpIChnb3RvLWNoYXIgKG1hdGNoLWVuZCAwKSkgKGNvbmQgKC4uLiAuLi4g Li4uKSAoLi4uIC4uLiAuLi4pICguLi4gLi4uIC4uLikgKC4uLiAuLi4gLi4uKSAoLi4uIC4uLiAu Li4pICh0IC4uLiAuLi4pKSkgKChsb29raW5nLWF0IG9yZy1mb290bm90ZS1kZWZpbml0aW9uLXJl KSAob3JnLWVsZW1lbnQtZm9vdG5vdGUtZGVmaW5pdGlvbi1wYXJzZXIgbGltaXQgYWZmaWxpYXRl ZCkpICgobG9va2luZy1hdCAiWyAgIF0qLVxcezUsXFx9WyAgICBdKiQiKSAob3JnLWVsZW1lbnQt aG9yaXpvbnRhbC1ydWxlLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICIl JSgiKSAob3JnLWVsZW1lbnQtZGlhcnktc2V4cC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgo b3JnLWF0LXRhYmxlLXAgdCkgKG9yZy1lbGVtZW50LXRhYmxlLXBhcnNlciBsaW1pdCBhZmZpbGlh dGVkKSkgKChsb29raW5nLWF0IChvcmctaXRlbS1yZSkpIChvcmctZWxlbWVudC1wbGFpbi1saXN0 LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkIChvciBzdHJ1Y3R1cmUgLi4uKSkpICh0IChvcmctZWxl bWVudC1wYXJhZ3JhcGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSkpKSkpCiAgKHNhdmUtZXhj dXJzaW9uIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIHQpIChyYXctc2Vjb25kYXJ5LXAgKGFuZCBn cmFudWxhcml0eSAobm90IChlcSBncmFudWxhcml0eSAocXVvdGUgb2JqZWN0KSkpKSkpIChjb25k ICgoZXEgc3BlY2lhbCAocXVvdGUgaXRlbSkpIChvcmctZWxlbWVudC1pdGVtLXBhcnNlciBsaW1p dCBzdHJ1Y3R1cmUgcmF3LXNlY29uZGFyeS1wKSkgKChlcSBzcGVjaWFsIChxdW90ZSB0YWJsZS1y b3cpKSAob3JnLWVsZW1lbnQtdGFibGUtcm93LXBhcnNlciBsaW1pdCkpICgoZXEgc3BlY2lhbCAo cXVvdGUgbm9kZS1wcm9wZXJ0eSkpIChvcmctZWxlbWVudC1ub2RlLXByb3BlcnR5LXBhcnNlciBs aW1pdCkpICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91 dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1y ZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0 ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgKG9yZy1hdC1oZWFkaW5nLXApKSAob3JnLWVsZW1l bnQtaGVhZGxpbmUtcGFyc2VyIGxpbWl0IHJhdy1zZWNvbmRhcnktcCkpICgoZXEgc3BlY2lhbCAo cXVvdGUgc2VjdGlvbikpIChvcmctZWxlbWVudC1zZWN0aW9uLXBhcnNlciBsaW1pdCkpICgoZXEg c3BlY2lhbCAocXVvdGUgZmlyc3Qtc2VjdGlvbikpIChvcmctZWxlbWVudC1zZWN0aW9uLXBhcnNl ciAob3IgKHNhdmUtZXhjdXJzaW9uIChsZXQqIC4uLiAuLi4pKSBsaW1pdCkpKSAoKG5vdCAoYm9s cCkpIChvcmctZWxlbWVudC1wYXJhZ3JhcGgtcGFyc2VyIGxpbWl0IChsaXN0IChwb2ludCkpKSkg KChsb29raW5nLWF0IG9yZy1wbGFubmluZy1vci1jbG9jay1saW5lLXJlKSAoaWYgKGVxdWFsICht YXRjaC1zdHJpbmcgMSkgb3JnLWNsb2NrLXN0cmluZykgKG9yZy1lbGVtZW50LWNsb2NrLXBhcnNl ciBsaW1pdCkgKG9yZy1lbGVtZW50LXBsYW5uaW5nLXBhcnNlciBsaW1pdCkpKSAoKG9yZy1hdC1o ZWFkaW5nLXApIChvcmctZWxlbWVudC1pbmxpbmV0YXNrLXBhcnNlciBsaW1pdCByYXctc2Vjb25k YXJ5LXApKSAodCAobGV0ICgoYWZmaWxpYXRlZCAob3JnLWVsZW1lbnQtLWNvbGxlY3QtYWZmaWxp YXRlZC1rZXl3b3JkcyBsaW1pdCkpKSAoY29uZCAoKGFuZCAuLi4gLi4uKSAoZ290by1jaGFyIC4u LikgKG9yZy1lbGVtZW50LWtleXdvcmQtcGFyc2VyIGxpbWl0IG5pbCkpICgobG9va2luZy1hdCAi WyAgICAgIF0qXFxcXGJlZ2lue1tBLVphLXowLTkqXSt9XFwoXFxbLio/XFxdXFx8ey4qP31cXCkq WyAgICAgXSokIikgKG9yZy1lbGVtZW50LWxhdGV4LWVudmlyb25tZW50LXBhcnNlciBsaW1pdCBh ZmZpbGlhdGVkKSkgKChsb29raW5nLWF0IG9yZy1kcmF3ZXItcmVnZXhwKSAoaWYgLi4uIC4uLiAu Li4pKSAoKGxvb2tpbmctYXQgIlsgICAgICAgIF0qOlxcKCBcXHwkXFwpIikgKG9yZy1lbGVtZW50 LWZpeGVkLXdpZHRoLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJbICAg ICBdKiMiKSAoZ290by1jaGFyIC4uLikgKGNvbmQgLi4uIC4uLiAuLi4gLi4uIC4uLiAuLi4pKSAo KGxvb2tpbmctYXQgb3JnLWZvb3Rub3RlLWRlZmluaXRpb24tcmUpIChvcmctZWxlbWVudC1mb290 bm90ZS1kZWZpbml0aW9uLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJb ICAgICAgIF0qLVxcezUsXFx9WyAgICBdKiQiKSAob3JnLWVsZW1lbnQtaG9yaXpvbnRhbC1ydWxl LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICIlJSgiKSAob3JnLWVsZW1l bnQtZGlhcnktc2V4cC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgob3JnLWF0LXRhYmxlLXAg dCkgKG9yZy1lbGVtZW50LXRhYmxlLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5n LWF0IC4uLikgKG9yZy1lbGVtZW50LXBsYWluLWxpc3QtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQg Li4uKSkgKHQgKG9yZy1lbGVtZW50LXBhcmFncmFwaC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkp KSkpKSkpCiAgb3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVudCgyNTc3MDYgZWxlbWVudCBuaWwg bmlsKQogIChzZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50LS1jdXJyZW50LWVsZW1lbnQgZW5kIChx dW90ZSBlbGVtZW50KSBzcGVjaWFsLWZsYWcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpzdHJ1Y3R1 cmUgcGFyZW50KSkpCiAgKGlmIGVsZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50 LS1jdXJyZW50LWVsZW1lbnQgZW5kIChxdW90ZSBlbGVtZW50KSBzcGVjaWFsLWZsYWcgKG9yZy1l bGVtZW50LXByb3BlcnR5IDpzdHJ1Y3R1cmUgcGFyZW50KSkpIChvcmctZWxlbWVudC1wdXQtcHJv cGVydHkgZWxlbWVudCA6cGFyZW50IHBhcmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQgZWxl bWVudCkpCiAgKHdoaWxlIHQgKGlmIHN5bmNwIChwcm9nbiAoY29uZCAoKD0gKHBvaW50KSBwb3Mp ICh0aHJvdyAocXVvdGUgZXhpdCkgcGFyZW50KSkgKChvcmctZWxlbWVudC0tY2FjaGUtaW50ZXJy dXB0LXAgdGltZS1saW1pdCkgKHRocm93IChxdW90ZSBpbnRlcnJ1cHQpIG5pbCkpKSkpIChpZiBl bGVtZW50IG5pbCAoc2V0cSBlbGVtZW50IChvcmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50IGVu ZCAocXVvdGUgZWxlbWVudCkgc3BlY2lhbC1mbGFnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6c3Ry dWN0dXJlIHBhcmVudCkpKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVu dCBwYXJlbnQpIChvcmctZWxlbWVudC0tY2FjaGUtcHV0IGVsZW1lbnQpKSAobGV0ICgoZWxlbS1l bmQgKG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkpICh0eXBlIChvcmctZWxlbWVu dC10eXBlIGVsZW1lbnQpKSkgKGNvbmQgKChhbmQgKDw9IGVsZW0tZW5kIHBvcykgKC89IChwb2lu dC1tYXgpIGVsZW0tZW5kKSkgKGdvdG8tY2hhciBlbGVtLWVuZCkpICgobm90IChtZW1xIHR5cGUg b3JnLWVsZW1lbnQtZ3JlYXRlci1lbGVtZW50cykpICh0aHJvdyAocXVvdGUgZXhpdCkgZWxlbWVu dCkpICgobGV0ICgoY2JlZyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmNvbnRlbnRzLWJlZ2luIGVs ZW1lbnQpKSAoY2VuZCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmNvbnRlbnRzLWVuZCBlbGVtZW50 KSkpIChpZiAob3Igc3luY3AgKGFuZCBjYmVnIGNlbmQgLi4uIC4uLikpIChwcm9nbiAoZ290by1j aGFyIC4uLikgKHNldHEgbmV4dCBuaWwgc3BlY2lhbC1mbGFnIC4uLiBwYXJlbnQgZWxlbWVudCBl bmQgY2VuZCkpKSkpICh0ICh0aHJvdyAocXVvdGUgZXhpdCkgZWxlbWVudCkpKSkgKHNldHEgZWxl bWVudCBuaWwpKQogIChsZXQgKChlbmQgKG9yIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVs ZW1lbnQpIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxl dmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIC4uLikgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRs aW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgLi4uKSkgKG91dGxpbmUtbmV4dC1o ZWFkaW5nKSkgKHBvaW50KSkpKSAocGFyZW50IGVsZW1lbnQpIHNwZWNpYWwtZmxhZykgKHdoaWxl IHQgKGlmIHN5bmNwIChwcm9nbiAoY29uZCAoKD0gKHBvaW50KSBwb3MpICh0aHJvdyAocXVvdGUg ZXhpdCkgcGFyZW50KSkgKChvcmctZWxlbWVudC0tY2FjaGUtaW50ZXJydXB0LXAgdGltZS1saW1p dCkgKHRocm93IChxdW90ZSBpbnRlcnJ1cHQpIG5pbCkpKSkpIChpZiBlbGVtZW50IG5pbCAoc2V0 cSBlbGVtZW50IChvcmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50IGVuZCAocXVvdGUgZWxlbWVu dCkgc3BlY2lhbC1mbGFnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6c3RydWN0dXJlIHBhcmVudCkp KSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQpIChvcmct ZWxlbWVudC0tY2FjaGUtcHV0IGVsZW1lbnQpKSAobGV0ICgoZWxlbS1lbmQgKG9yZy1lbGVtZW50 LXByb3BlcnR5IDplbmQgZWxlbWVudCkpICh0eXBlIChvcmctZWxlbWVudC10eXBlIGVsZW1lbnQp KSkgKGNvbmQgKChhbmQgKDw9IGVsZW0tZW5kIHBvcykgKC89IChwb2ludC1tYXgpIGVsZW0tZW5k KSkgKGdvdG8tY2hhciBlbGVtLWVuZCkpICgobm90IChtZW1xIHR5cGUgb3JnLWVsZW1lbnQtZ3Jl YXRlci1lbGVtZW50cykpICh0aHJvdyAocXVvdGUgZXhpdCkgZWxlbWVudCkpICgobGV0ICgoY2Jl ZyAuLi4pIChjZW5kIC4uLikpIChpZiAob3Igc3luY3AgLi4uKSAocHJvZ24gLi4uIC4uLikpKSkg KHQgKHRocm93IChxdW90ZSBleGl0KSBlbGVtZW50KSkpKSAoc2V0cSBlbGVtZW50IG5pbCkpKQog IChsZXQqICgoY2FjaGVkIChhbmQgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKG9yZy1l bGVtZW50LS1jYWNoZS1maW5kIHBvcyBuaWwpKSkgKGJlZ2luIChvcmctZWxlbWVudC1wcm9wZXJ0 eSA6YmVnaW4gY2FjaGVkKSkgZWxlbWVudCBuZXh0KSAoY29uZCAoKG5vdCBjYWNoZWQpIChpZiAo bGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVn ZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3Jn LW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmct b3V0bGluZS1yZWdleHApKSkgKG91dGxpbmUtcHJldmlvdXMtaGVhZGluZykpIChwcm9nbiAoZm9y d2FyZC1saW5lKSkpIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1s aW5lKSkgKCg9IHBvcyBiZWdpbikgKHRocm93IChxdW90ZSBleGl0KSAoaWYgc3luY3AgKG9yZy1l bGVtZW50LXByb3BlcnR5IDpwYXJlbnQgY2FjaGVkKSBjYWNoZWQpKSkgKChyZS1zZWFyY2gtYmFj a3dhcmQgKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRs aW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVn ZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAi XiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wpIGJlZ2luIHQp IChmb3J3YXJkLWxpbmUpIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1v Zi1saW5lKSkgKHQgKGxldCAoKHVwIGNhY2hlZCkgKHBvcyAoaWYgKD0gLi4uIHBvcykgKDEtIHBv cykgcG9zKSkpIChnb3RvLWNoYXIgKG9yIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6Y29udGVudHMt YmVnaW4gY2FjaGVkKSBiZWdpbikpICh3aGlsZSAobGV0ICgoZW5kIC4uLikpIChhbmQgKDw9IGVu ZCBwb3MpIChnb3RvLWNoYXIgZW5kKSAoc2V0cSB1cCAuLi4pKSkpIChjb25kICgobm90IHVwKSkg KChlb2JwKSAoc2V0cSBlbGVtZW50IHVwKSkgKHQgKHNldHEgZWxlbWVudCB1cCBuZXh0IChwb2lu dCkpKSkpKSkgKGxldCAoKGVuZCAob3IgKG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVu dCkgKHNhdmUtZXhjdXJzaW9uIChsZXQqICguLi4gLi4uIC4uLiAuLi4pIChvdXRsaW5lLW5leHQt aGVhZGluZykpIChwb2ludCkpKSkgKHBhcmVudCBlbGVtZW50KSBzcGVjaWFsLWZsYWcpICh3aGls ZSB0IChpZiBzeW5jcCAocHJvZ24gKGNvbmQgKCg9IC4uLiBwb3MpICh0aHJvdyAuLi4gcGFyZW50 KSkgKChvcmctZWxlbWVudC0tY2FjaGUtaW50ZXJydXB0LXAgdGltZS1saW1pdCkgKHRocm93IC4u LiBuaWwpKSkpKSAoaWYgZWxlbWVudCBuaWwgKHNldHEgZWxlbWVudCAob3JnLWVsZW1lbnQtLWN1 cnJlbnQtZWxlbWVudCBlbmQgKHF1b3RlIGVsZW1lbnQpIHNwZWNpYWwtZmxhZyAob3JnLWVsZW1l bnQtcHJvcGVydHkgOnN0cnVjdHVyZSBwYXJlbnQpKSkgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0 eSBlbGVtZW50IDpwYXJlbnQgcGFyZW50KSAob3JnLWVsZW1lbnQtLWNhY2hlLXB1dCBlbGVtZW50 KSkgKGxldCAoKGVsZW0tZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQpKSAo dHlwZSAob3JnLWVsZW1lbnQtdHlwZSBlbGVtZW50KSkpIChjb25kICgoYW5kICg8PSBlbGVtLWVu ZCBwb3MpICgvPSAuLi4gZWxlbS1lbmQpKSAoZ290by1jaGFyIGVsZW0tZW5kKSkgKChub3QgKG1l bXEgdHlwZSBvcmctZWxlbWVudC1ncmVhdGVyLWVsZW1lbnRzKSkgKHRocm93IChxdW90ZSBleGl0 KSBlbGVtZW50KSkgKChsZXQgKC4uLiAuLi4pIChpZiAuLi4gLi4uKSkpICh0ICh0aHJvdyAocXVv dGUgZXhpdCkgZWxlbWVudCkpKSkgKHNldHEgZWxlbWVudCBuaWwpKSkpCiAgKHNhdmUtcmVzdHJp Y3Rpb24gKHdpZGVuKSAoZ290by1jaGFyIHBvcykgKGxldCogKChjYWNoZWQgKGFuZCAob3JnLWVs ZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAob3JnLWVsZW1lbnQtLWNhY2hlLWZpbmQgcG9zIG5pbCkp KSAoYmVnaW4gKG9yZy1lbGVtZW50LXByb3BlcnR5IDpiZWdpbiBjYWNoZWQpKSBlbGVtZW50IG5l eHQpIChjb25kICgobm90IGNhY2hlZCkgKGlmIChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0 ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgLi4uKSAob3V0bGluZS1yZWdleHAgb3Jn LW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAuLi4pKSAob3V0bGluZS1w cmV2aW91cy1oZWFkaW5nKSkgKHByb2duIChmb3J3YXJkLWxpbmUpKSkgKHNraXAtY2hhcnMtZm9y d2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAoKD0gcG9zIGJlZ2luKSAodGhyb3cg KHF1b3RlIGV4aXQpIChpZiBzeW5jcCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhcmVudCBjYWNo ZWQpIGNhY2hlZCkpKSAoKHJlLXNlYXJjaC1iYWNrd2FyZCAobGV0KiAoKG9yZy1jYWxsZWQtd2l0 aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIC4uLikgKG91dGxpbmUtcmVn ZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgLi4uKSkgb3Jn LW91dGxpbmUtcmVnZXhwLWJvbCkgYmVnaW4gdCkgKGZvcndhcmQtbGluZSkgKHNraXAtY2hhcnMt Zm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAodCAobGV0ICgodXAgY2FjaGVk KSAocG9zIChpZiAuLi4gLi4uIHBvcykpKSAoZ290by1jaGFyIChvciAob3JnLWVsZW1lbnQtcHJv cGVydHkgOmNvbnRlbnRzLWJlZ2luIGNhY2hlZCkgYmVnaW4pKSAod2hpbGUgKGxldCAoLi4uKSAo YW5kIC4uLiAuLi4gLi4uKSkpIChjb25kICgobm90IHVwKSkgKChlb2JwKSAoc2V0cSBlbGVtZW50 IHVwKSkgKHQgKHNldHEgZWxlbWVudCB1cCBuZXh0IC4uLikpKSkpKSAobGV0ICgoZW5kIChvciAo b3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSAoc2F2ZS1leGN1cnNpb24gKGxldCog Li4uIC4uLikgKHBvaW50KSkpKSAocGFyZW50IGVsZW1lbnQpIHNwZWNpYWwtZmxhZykgKHdoaWxl IHQgKGlmIHN5bmNwIChwcm9nbiAoY29uZCAoLi4uIC4uLikgKC4uLiAuLi4pKSkpIChpZiBlbGVt ZW50IG5pbCAoc2V0cSBlbGVtZW50IChvcmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50IGVuZCAo cXVvdGUgZWxlbWVudCkgc3BlY2lhbC1mbGFnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6c3RydWN0 dXJlIHBhcmVudCkpKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVudCBw YXJlbnQpIChvcmctZWxlbWVudC0tY2FjaGUtcHV0IGVsZW1lbnQpKSAobGV0ICgoZWxlbS1lbmQg KG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkpICh0eXBlIChvcmctZWxlbWVudC10 eXBlIGVsZW1lbnQpKSkgKGNvbmQgKChhbmQgLi4uIC4uLikgKGdvdG8tY2hhciBlbGVtLWVuZCkp ICgobm90IC4uLikgKHRocm93IC4uLiBlbGVtZW50KSkgKChsZXQgLi4uIC4uLikpICh0ICh0aHJv dyAuLi4gZWxlbWVudCkpKSkgKHNldHEgZWxlbWVudCBuaWwpKSkpKQogIChzYXZlLWV4Y3Vyc2lv biAoc2F2ZS1yZXN0cmljdGlvbiAod2lkZW4pIChnb3RvLWNoYXIgcG9zKSAobGV0KiAoKGNhY2hl ZCAoYW5kIChvcmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChvcmctZWxlbWVudC0tY2FjaGUt ZmluZCBwb3MgbmlsKSkpIChiZWdpbiAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmJlZ2luIGNhY2hl ZCkpIGVsZW1lbnQgbmV4dCkgKGNvbmQgKChub3QgY2FjaGVkKSAoaWYgKGxldCogKC4uLiAuLi4g Li4uIC4uLikgKG91dGxpbmUtcHJldmlvdXMtaGVhZGluZykpIChwcm9nbiAoZm9yd2FyZC1saW5l KSkpIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkgKCg9 IHBvcyBiZWdpbikgKHRocm93IChxdW90ZSBleGl0KSAoaWYgc3luY3AgKG9yZy1lbGVtZW50LXBy b3BlcnR5IDpwYXJlbnQgY2FjaGVkKSBjYWNoZWQpKSkgKChyZS1zZWFyY2gtYmFja3dhcmQgKGxl dCogKC4uLiAuLi4gLi4uIC4uLikgb3JnLW91dGxpbmUtcmVnZXhwLWJvbCkgYmVnaW4gdCkgKGZv cndhcmQtbGluZSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxp bmUpKSAodCAobGV0ICgodXAgY2FjaGVkKSAocG9zIC4uLikpIChnb3RvLWNoYXIgKG9yIC4uLiBi ZWdpbikpICh3aGlsZSAobGV0IC4uLiAuLi4pKSAoY29uZCAoLi4uKSAoLi4uIC4uLikgKHQgLi4u KSkpKSkgKGxldCAoKGVuZCAob3IgKG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkg KHNhdmUtZXhjdXJzaW9uIC4uLiAuLi4pKSkgKHBhcmVudCBlbGVtZW50KSBzcGVjaWFsLWZsYWcp ICh3aGlsZSB0IChpZiBzeW5jcCAocHJvZ24gKGNvbmQgLi4uIC4uLikpKSAoaWYgZWxlbWVudCBu aWwgKHNldHEgZWxlbWVudCAob3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVudCBlbmQgLi4uIHNw ZWNpYWwtZmxhZyAuLi4pKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVu dCBwYXJlbnQpIChvcmctZWxlbWVudC0tY2FjaGUtcHV0IGVsZW1lbnQpKSAobGV0ICgoZWxlbS1l bmQgLi4uKSAodHlwZSAuLi4pKSAoY29uZCAoLi4uIC4uLikgKC4uLiAuLi4pICguLi4pICh0IC4u LikpKSAoc2V0cSBlbGVtZW50IG5pbCkpKSkpKQogIChjYXRjaCAocXVvdGUgZXhpdCkgKHNhdmUt ZXhjdXJzaW9uIChzYXZlLXJlc3RyaWN0aW9uICh3aWRlbikgKGdvdG8tY2hhciBwb3MpIChsZXQq ICgoY2FjaGVkIChhbmQgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKG9yZy1lbGVtZW50 LS1jYWNoZS1maW5kIHBvcyBuaWwpKSkgKGJlZ2luIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6YmVn aW4gY2FjaGVkKSkgZWxlbWVudCBuZXh0KSAoY29uZCAoKG5vdCBjYWNoZWQpIChpZiAobGV0KiAu Li4gLi4uKSAocHJvZ24gLi4uKSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5u aW5nLW9mLWxpbmUpKSAoKD0gcG9zIGJlZ2luKSAodGhyb3cgKHF1b3RlIGV4aXQpIChpZiBzeW5j cCAuLi4gY2FjaGVkKSkpICgocmUtc2VhcmNoLWJhY2t3YXJkIChsZXQqIC4uLiBvcmctb3V0bGlu ZS1yZWdleHAtYm9sKSBiZWdpbiB0KSAoZm9yd2FyZC1saW5lKSAoc2tpcC1jaGFycy1mb3J3YXJk ICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkpICh0IChsZXQgKC4uLiAuLi4pIChnb3RvLWNo YXIgLi4uKSAod2hpbGUgLi4uKSAoY29uZCAuLi4gLi4uIC4uLikpKSkgKGxldCAoKGVuZCAob3Ig Li4uIC4uLikpIChwYXJlbnQgZWxlbWVudCkgc3BlY2lhbC1mbGFnKSAod2hpbGUgdCAoaWYgc3lu Y3AgKHByb2duIC4uLikpIChpZiBlbGVtZW50IG5pbCAoc2V0cSBlbGVtZW50IC4uLikgKG9yZy1l bGVtZW50LXB1dC1wcm9wZXJ0eSBlbGVtZW50IDpwYXJlbnQgcGFyZW50KSAob3JnLWVsZW1lbnQt LWNhY2hlLXB1dCBlbGVtZW50KSkgKGxldCAoLi4uIC4uLikgKGNvbmQgLi4uIC4uLiAuLi4gLi4u KSkgKHNldHEgZWxlbWVudCBuaWwpKSkpKSkpCiAgb3JnLWVsZW1lbnQtLXBhcnNlLXRvKDI1NzI4 MCkKICAoY29uZCAoKGJvYnApIG5pbCkgKChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQt bGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJl Z2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1y ZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3JnLWF0LWhlYWRp bmctcCkpIChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNlciAo cG9pbnQtbWF4KSB0KSkgKHQgKGlmIChvcmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChwcm9n biAoaWYgKG5vdCBvcmctZWxlbWVudC0tY2FjaGUpIChvcmctZWxlbWVudC1jYWNoZS1yZXNldCkg KG9yZy1lbGVtZW50LS1jYWNoZS1zeW5jIChjdXJyZW50LWJ1ZmZlcikgb3JpZ2luKSkpKSAob3Jn LWVsZW1lbnQtLXBhcnNlLXRvIG9yaWdpbikpKQogIChsZXQgKChvcmlnaW4gKHBvaW50KSkpIChl bmQtb2YtbGluZSkgKHNraXAtY2hhcnMtYmFja3dhcmQgIiANCVxuIikgKGNvbmQgKChib2JwKSBu aWwpICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxp bmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdl eHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJe IiBvcmctb3V0bGluZS1yZWdleHApKSkgKG9yZy1hdC1oZWFkaW5nLXApKSAoYmVnaW5uaW5nLW9m LWxpbmUpIChvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIgKHBvaW50LW1heCkgdCkpICh0IChp ZiAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAocHJvZ24gKGlmIChub3Qgb3JnLWVsZW1l bnQtLWNhY2hlKSAob3JnLWVsZW1lbnQtY2FjaGUtcmVzZXQpIChvcmctZWxlbWVudC0tY2FjaGUt c3luYyAoY3VycmVudC1idWZmZXIpIG9yaWdpbikpKSkgKG9yZy1lbGVtZW50LS1wYXJzZS10byBv cmlnaW4pKSkpCiAgKHNhdmUtcmVzdHJpY3Rpb24gKHdpZGVuKSAobGV0ICgob3JpZ2luIChwb2lu dCkpKSAoZW5kLW9mLWxpbmUpIChza2lwLWNoYXJzLWJhY2t3YXJkICIgDQlcbiIpIChjb25kICgo Ym9icCkgbmlsKSAoKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9y Zy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxp bmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNv bmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChvcmctYXQtaGVhZGluZy1wKSkgKGJlZ2lu bmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFyc2VyIChwb2ludC1tYXgpIHQp KSAodCAoaWYgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKHByb2duIChpZiAobm90IG9y Zy1lbGVtZW50LS1jYWNoZSkgKG9yZy1lbGVtZW50LWNhY2hlLXJlc2V0KSAob3JnLWVsZW1lbnQt LWNhY2hlLXN5bmMgLi4uIG9yaWdpbikpKSkgKG9yZy1lbGVtZW50LS1wYXJzZS10byBvcmlnaW4p KSkpKQogIChzYXZlLWV4Y3Vyc2lvbiAoc2F2ZS1yZXN0cmljdGlvbiAod2lkZW4pIChsZXQgKChv cmlnaW4gKHBvaW50KSkpIChlbmQtb2YtbGluZSkgKHNraXAtY2hhcnMtYmFja3dhcmQgIiANCVxu IikgKGNvbmQgKChib2JwKSBuaWwpICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxl dmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIC4uLikgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRs aW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgLi4uKSkgKG9yZy1hdC1oZWFkaW5n LXApKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIgKHBv aW50LW1heCkgdCkpICh0IChpZiAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAocHJvZ24g KGlmIC4uLiAuLi4gLi4uKSkpIChvcmctZWxlbWVudC0tcGFyc2UtdG8gb3JpZ2luKSkpKSkpCiAg b3JnLWVsZW1lbnQtYXQtcG9pbnQoKQogIChsZXQgKChkcmF3ZXIgKG9yZy1lbGVtZW50LWF0LXBv aW50KSkpIChpZiAoYW5kIChlcSAob3JnLWVsZW1lbnQtdHlwZSBkcmF3ZXIpIChxdW90ZSBwcm9w ZXJ0eS1kcmF3ZXIpKSAobGV0ICgocCBkcmF3ZXIpKSAod2hpbGUgKGFuZCAoc2V0cSBwIChvcmct ZWxlbWVudC1wcm9wZXJ0eSA6cGFyZW50IHApKSAobm90IChlcSAuLi4gLi4uKSkpKSAobm90IHAp KSkgKHByb2duIChsZXQgKChlbmQgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpjb250ZW50cy1lbmQg ZHJhd2VyKSkpIChpZiBlbmQgKHByb2duIChmb3J3YXJkLWxpbmUpICh3aGlsZSAoPCAuLi4gZW5k KSAoaWYgLi4uIC4uLikgKGZvcndhcmQtbGluZSkpKSkpKSkpCiAgKHdoaWxlIChhbmQgKG51bGwg cGxpc3QpIChyZS1zZWFyY2gtZm9yd2FyZCBvcmctcHJvcGVydHktc3RhcnQtcmUgZW5kIHQpKSAo bGV0ICgoZHJhd2VyIChvcmctZWxlbWVudC1hdC1wb2ludCkpKSAoaWYgKGFuZCAoZXEgKG9yZy1l bGVtZW50LXR5cGUgZHJhd2VyKSAocXVvdGUgcHJvcGVydHktZHJhd2VyKSkgKGxldCAoKHAgZHJh d2VyKSkgKHdoaWxlIChhbmQgKHNldHEgcCAuLi4pIChub3QgLi4uKSkpIChub3QgcCkpKSAocHJv Z24gKGxldCAoKGVuZCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmNvbnRlbnRzLWVuZCBkcmF3ZXIp KSkgKGlmIGVuZCAocHJvZ24gKGZvcndhcmQtbGluZSkgKHdoaWxlIC4uLiAuLi4gLi4uKSkpKSkp KSkKICAoc2F2ZS1leGN1cnNpb24gKHdoaWxlIChhbmQgKG51bGwgcGxpc3QpIChyZS1zZWFyY2gt Zm9yd2FyZCBvcmctcHJvcGVydHktc3RhcnQtcmUgZW5kIHQpKSAobGV0ICgoZHJhd2VyIChvcmct ZWxlbWVudC1hdC1wb2ludCkpKSAoaWYgKGFuZCAoZXEgKG9yZy1lbGVtZW50LXR5cGUgZHJhd2Vy KSAocXVvdGUgcHJvcGVydHktZHJhd2VyKSkgKGxldCAoKHAgZHJhd2VyKSkgKHdoaWxlIChhbmQg Li4uIC4uLikpIChub3QgcCkpKSAocHJvZ24gKGxldCAoKGVuZCAuLi4pKSAoaWYgZW5kIChwcm9n biAuLi4gLi4uKSkpKSkpKSBwbGlzdCkKICAobGV0ICgoZW5kIChzYXZlLWV4Y3Vyc2lvbiAobGV0 KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhw IChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91 dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0 bGluZS1yZWdleHApKSkgKG91dGxpbmUtbmV4dC1oZWFkaW5nKSkgKHBvaW50KSkpIHBsaXN0KSAo c2F2ZS1leGN1cnNpb24gKHdoaWxlIChhbmQgKG51bGwgcGxpc3QpIChyZS1zZWFyY2gtZm9yd2Fy ZCBvcmctcHJvcGVydHktc3RhcnQtcmUgZW5kIHQpKSAobGV0ICgoZHJhd2VyIChvcmctZWxlbWVu dC1hdC1wb2ludCkpKSAoaWYgKGFuZCAoZXEgKG9yZy1lbGVtZW50LXR5cGUgZHJhd2VyKSAocXVv dGUgcHJvcGVydHktZHJhd2VyKSkgKGxldCAoLi4uKSAod2hpbGUgLi4uKSAobm90IHApKSkgKHBy b2duIChsZXQgKC4uLikgKGlmIGVuZCAuLi4pKSkpKSkgcGxpc3QpKQogIChsZXQqICgoY29tcG9u ZW50cyAob3JnLWhlYWRpbmctY29tcG9uZW50cykpIChsZXZlbCAobnRoIDEgY29tcG9uZW50cykp ICh0b2RvIChudGggMiBjb21wb25lbnRzKSkgKHRvZG8tdHlwZSAoYW5kIHRvZG8gKGlmIChtZW1i ZXIgdG9kbyBvcmctZG9uZS1rZXl3b3JkcykgKHF1b3RlIGRvbmUpIChxdW90ZSB0b2RvKSkpKSAo dGFncyAobGV0ICgocmF3LXRhZ3MgKG50aCA1IGNvbXBvbmVudHMpKSkgKGFuZCByYXctdGFncyAo b3JnLXNwbGl0LXN0cmluZyByYXctdGFncyAiOiIpKSkpIChyYXctdmFsdWUgKG9yIChudGggNCBj b21wb25lbnRzKSAiIikpIChjb21tZW50ZWRwIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIG5pbCkp IChzdHJpbmctbWF0Y2ggKGZvcm1hdCAiXiVzXFwoIFxcfCRcXCkiIG9yZy1jb21tZW50LXN0cmlu ZykgcmF3LXZhbHVlKSkpIChhcmNoaXZlZHAgKG1lbWJlciBvcmctYXJjaGl2ZS10YWcgdGFncykp IChmb290bm90ZS1zZWN0aW9uLXAgKGFuZCBvcmctZm9vdG5vdGUtc2VjdGlvbiAoc3RyaW5nPSBv cmctZm9vdG5vdGUtc2VjdGlvbiByYXctdmFsdWUpKSkgKHN0YW5kYXJkLXByb3BzIChsZXQgKChl bmQgKHNhdmUtZXhjdXJzaW9uIChsZXQqIC4uLiAuLi4pIChwb2ludCkpKSBwbGlzdCkgKHNhdmUt ZXhjdXJzaW9uICh3aGlsZSAoYW5kIChudWxsIHBsaXN0KSAocmUtc2VhcmNoLWZvcndhcmQgb3Jn LXByb3BlcnR5LXN0YXJ0LXJlIGVuZCB0KSkgKGxldCAoLi4uKSAoaWYgLi4uIC4uLikpKSBwbGlz dCkpKSAodGltZS1wcm9wcyAoc2F2ZS1leGN1cnNpb24gKGZvcndhcmQtbGluZSkgKGlmIChsb29r aW5nLWF0IG9yZy1wbGFubmluZy1vci1jbG9jay1saW5lLXJlKSAocHJvZ24gKGxldCAoLi4uIHBs aXN0KSAod2hpbGUgLi4uIC4uLiAuLi4gLi4uKSBwbGlzdCkpKSkpIChiZWdpbiAocG9pbnQpKSAo ZW5kIChtaW4gKHNhdmUtZXhjdXJzaW9uIChvcmctZW5kLW9mLXN1YnRyZWUgdCB0KSkgbGltaXQp KSAocG9zLWFmdGVyLWhlYWQgKHByb2duIChmb3J3YXJkLWxpbmUpIChwb2ludCkpKSAoY29udGVu dHMtYmVnaW4gKHNhdmUtZXhjdXJzaW9uIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIiBlbmQp IChhbmQgKC89IChwb2ludCkgZW5kKSAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pKSkpIChjb250 ZW50cy1lbmQgKGFuZCBjb250ZW50cy1iZWdpbiAocHJvZ24gKGdvdG8tY2hhciBlbmQpIChza2lw LWNoYXJzLWJhY2t3YXJkICIgDQlcbiIpIChmb3J3YXJkLWxpbmUpIChwb2ludCkpKSkpIChpZiBj b21tZW50ZWRwIChwcm9nbiAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCBuaWwpKSAoc2V0cSByYXct dmFsdWUgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZyAoY29uY2F0IChyZWdleHAtcXVvdGUgb3Jn LWNvbW1lbnQtc3RyaW5nKSAiXFwoPzogXFx8JFxcKSIpICIiIHJhdy12YWx1ZSkpKSkpIChpZiBh cmNoaXZlZHAgKHByb2duIChzZXRxIHRhZ3MgKGRlbGV0ZSBvcmctYXJjaGl2ZS10YWcgdGFncykp KSkgKGxldCAoKGhlYWRsaW5lIChsaXN0IChxdW90ZSBoZWFkbGluZSkgKG5jb25jIChsaXN0IDpy YXctdmFsdWUgcmF3LXZhbHVlIDpiZWdpbiBiZWdpbiA6ZW5kIGVuZCA6cHJlLWJsYW5rIChpZiAu Li4gMCAuLi4pIDpjb250ZW50cy1iZWdpbiBjb250ZW50cy1iZWdpbiA6Y29udGVudHMtZW5kIGNv bnRlbnRzLWVuZCA6bGV2ZWwgbGV2ZWwgOnByaW9yaXR5IChudGggMyBjb21wb25lbnRzKSA6dGFn cyB0YWdzIDp0b2RvLWtleXdvcmQgdG9kbyA6dG9kby10eXBlIHRvZG8tdHlwZSA6cG9zdC1ibGFu ayAoY291bnQtbGluZXMgLi4uIGVuZCkgOmZvb3Rub3RlLXNlY3Rpb24tcCBmb290bm90ZS1zZWN0 aW9uLXAgOmFyY2hpdmVkcCBhcmNoaXZlZHAgOmNvbW1lbnRlZHAgY29tbWVudGVkcCkgdGltZS1w cm9wcyBzdGFuZGFyZC1wcm9wcykpKSkgKGxldCAoKGFsdC10aXRsZSAob3JnLWVsZW1lbnQtcHJv cGVydHkgOkFMVF9USVRMRSBoZWFkbGluZSkpKSAoaWYgYWx0LXRpdGxlIChwcm9nbiAob3JnLWVs ZW1lbnQtcHV0LXByb3BlcnR5IGhlYWRsaW5lIDphbHQtdGl0bGUgKGlmIHJhdy1zZWNvbmRhcnkt cCBhbHQtdGl0bGUgKG9yZy1lbGVtZW50LXBhcnNlLXNlY29uZGFyeS1zdHJpbmcgYWx0LXRpdGxl IC4uLiBoZWFkbGluZSkpKSkpKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGhlYWRsaW5lIDp0 aXRsZSAoaWYgcmF3LXNlY29uZGFyeS1wIHJhdy12YWx1ZSAob3JnLWVsZW1lbnQtcGFyc2Utc2Vj b25kYXJ5LXN0cmluZyByYXctdmFsdWUgKG9yZy1lbGVtZW50LXJlc3RyaWN0aW9uIChxdW90ZSBo ZWFkbGluZSkpIGhlYWRsaW5lKSkpKSkKICAoc2F2ZS1leGN1cnNpb24gKGxldCogKChjb21wb25l bnRzIChvcmctaGVhZGluZy1jb21wb25lbnRzKSkgKGxldmVsIChudGggMSBjb21wb25lbnRzKSkg KHRvZG8gKG50aCAyIGNvbXBvbmVudHMpKSAodG9kby10eXBlIChhbmQgdG9kbyAoaWYgKG1lbWJl ciB0b2RvIG9yZy1kb25lLWtleXdvcmRzKSAocXVvdGUgZG9uZSkgKHF1b3RlIHRvZG8pKSkpICh0 YWdzIChsZXQgKChyYXctdGFncyAobnRoIDUgY29tcG9uZW50cykpKSAoYW5kIHJhdy10YWdzIChv cmctc3BsaXQtc3RyaW5nIHJhdy10YWdzICI6IikpKSkgKHJhdy12YWx1ZSAob3IgKG50aCA0IGNv bXBvbmVudHMpICIiKSkgKGNvbW1lbnRlZHAgKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggbmlsKSkg KHN0cmluZy1tYXRjaCAoZm9ybWF0ICJeJXNcXCggXFx8JFxcKSIgb3JnLWNvbW1lbnQtc3RyaW5n KSByYXctdmFsdWUpKSkgKGFyY2hpdmVkcCAobWVtYmVyIG9yZy1hcmNoaXZlLXRhZyB0YWdzKSkg KGZvb3Rub3RlLXNlY3Rpb24tcCAoYW5kIG9yZy1mb290bm90ZS1zZWN0aW9uIChzdHJpbmc9IG9y Zy1mb290bm90ZS1zZWN0aW9uIHJhdy12YWx1ZSkpKSAoc3RhbmRhcmQtcHJvcHMgKGxldCAoKGVu ZCAoc2F2ZS1leGN1cnNpb24gLi4uIC4uLikpIHBsaXN0KSAoc2F2ZS1leGN1cnNpb24gKHdoaWxl IChhbmQgLi4uIC4uLikgKGxldCAuLi4gLi4uKSkgcGxpc3QpKSkgKHRpbWUtcHJvcHMgKHNhdmUt ZXhjdXJzaW9uIChmb3J3YXJkLWxpbmUpIChpZiAobG9va2luZy1hdCBvcmctcGxhbm5pbmctb3It Y2xvY2stbGluZS1yZSkgKHByb2duIChsZXQgLi4uIC4uLiBwbGlzdCkpKSkpIChiZWdpbiAocG9p bnQpKSAoZW5kIChtaW4gKHNhdmUtZXhjdXJzaW9uIChvcmctZW5kLW9mLXN1YnRyZWUgdCB0KSkg bGltaXQpKSAocG9zLWFmdGVyLWhlYWQgKHByb2duIChmb3J3YXJkLWxpbmUpIChwb2ludCkpKSAo Y29udGVudHMtYmVnaW4gKHNhdmUtZXhjdXJzaW9uIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxu IiBlbmQpIChhbmQgKC89IChwb2ludCkgZW5kKSAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pKSkp IChjb250ZW50cy1lbmQgKGFuZCBjb250ZW50cy1iZWdpbiAocHJvZ24gKGdvdG8tY2hhciBlbmQp IChza2lwLWNoYXJzLWJhY2t3YXJkICIgDQlcbiIpIChmb3J3YXJkLWxpbmUpIChwb2ludCkpKSkp IChpZiBjb21tZW50ZWRwIChwcm9nbiAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCBuaWwpKSAoc2V0 cSByYXctdmFsdWUgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZyAoY29uY2F0IC4uLiAiXFwoPzog XFx8JFxcKSIpICIiIHJhdy12YWx1ZSkpKSkpIChpZiBhcmNoaXZlZHAgKHByb2duIChzZXRxIHRh Z3MgKGRlbGV0ZSBvcmctYXJjaGl2ZS10YWcgdGFncykpKSkgKGxldCAoKGhlYWRsaW5lIChsaXN0 IChxdW90ZSBoZWFkbGluZSkgKG5jb25jIChsaXN0IDpyYXctdmFsdWUgcmF3LXZhbHVlIDpiZWdp biBiZWdpbiA6ZW5kIGVuZCA6cHJlLWJsYW5rIC4uLiA6Y29udGVudHMtYmVnaW4gY29udGVudHMt YmVnaW4gOmNvbnRlbnRzLWVuZCBjb250ZW50cy1lbmQgOmxldmVsIGxldmVsIDpwcmlvcml0eSAu Li4gOnRhZ3MgdGFncyA6dG9kby1rZXl3b3JkIHRvZG8gOnRvZG8tdHlwZSB0b2RvLXR5cGUgOnBv c3QtYmxhbmsgLi4uIDpmb290bm90ZS1zZWN0aW9uLXAgZm9vdG5vdGUtc2VjdGlvbi1wIDphcmNo aXZlZHAgYXJjaGl2ZWRwIDpjb21tZW50ZWRwIGNvbW1lbnRlZHApIHRpbWUtcHJvcHMgc3RhbmRh cmQtcHJvcHMpKSkpIChsZXQgKChhbHQtdGl0bGUgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpBTFRf VElUTEUgaGVhZGxpbmUpKSkgKGlmIGFsdC10aXRsZSAocHJvZ24gKG9yZy1lbGVtZW50LXB1dC1w cm9wZXJ0eSBoZWFkbGluZSA6YWx0LXRpdGxlIChpZiByYXctc2Vjb25kYXJ5LXAgYWx0LXRpdGxl IC4uLikpKSkpIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgaGVhZGxpbmUgOnRpdGxlIChpZiBy YXctc2Vjb25kYXJ5LXAgcmF3LXZhbHVlIChvcmctZWxlbWVudC1wYXJzZS1zZWNvbmRhcnktc3Ry aW5nIHJhdy12YWx1ZSAob3JnLWVsZW1lbnQtcmVzdHJpY3Rpb24gKHF1b3RlIGhlYWRsaW5lKSkg aGVhZGxpbmUpKSkpKSkKICBvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIoMjU3NzA2IHQpCiAg KGNvbmQgKChlcSBzcGVjaWFsIChxdW90ZSBpdGVtKSkgKG9yZy1lbGVtZW50LWl0ZW0tcGFyc2Vy IGxpbWl0IHN0cnVjdHVyZSByYXctc2Vjb25kYXJ5LXApKSAoKGVxIHNwZWNpYWwgKHF1b3RlIHRh YmxlLXJvdykpIChvcmctZWxlbWVudC10YWJsZS1yb3ctcGFyc2VyIGxpbWl0KSkgKChlcSBzcGVj aWFsIChxdW90ZSBub2RlLXByb3BlcnR5KSkgKG9yZy1lbGVtZW50LW5vZGUtcHJvcGVydHktcGFy c2VyIGxpbWl0KSkgKChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChv cmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRs aW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIChj b25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3JnLWF0LWhlYWRpbmctcCkpIChvcmct ZWxlbWVudC1oZWFkbGluZS1wYXJzZXIgbGltaXQgcmF3LXNlY29uZGFyeS1wKSkgKChlcSBzcGVj aWFsIChxdW90ZSBzZWN0aW9uKSkgKG9yZy1lbGVtZW50LXNlY3Rpb24tcGFyc2VyIGxpbWl0KSkg KChlcSBzcGVjaWFsIChxdW90ZSBmaXJzdC1zZWN0aW9uKSkgKG9yZy1lbGVtZW50LXNlY3Rpb24t cGFyc2VyIChvciAoc2F2ZS1leGN1cnNpb24gKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRl ZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAuLi4pIChvdXRsaW5lLXJlZ2V4cCBvcmct b3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIC4uLikpIChvdXRsaW5lLW5l eHQtaGVhZGluZykpKSBsaW1pdCkpKSAoKG5vdCAoYm9scCkpIChvcmctZWxlbWVudC1wYXJhZ3Jh cGgtcGFyc2VyIGxpbWl0IChsaXN0IChwb2ludCkpKSkgKChsb29raW5nLWF0IG9yZy1wbGFubmlu Zy1vci1jbG9jay1saW5lLXJlKSAoaWYgKGVxdWFsIChtYXRjaC1zdHJpbmcgMSkgb3JnLWNsb2Nr LXN0cmluZykgKG9yZy1lbGVtZW50LWNsb2NrLXBhcnNlciBsaW1pdCkgKG9yZy1lbGVtZW50LXBs YW5uaW5nLXBhcnNlciBsaW1pdCkpKSAoKG9yZy1hdC1oZWFkaW5nLXApIChvcmctZWxlbWVudC1p bmxpbmV0YXNrLXBhcnNlciBsaW1pdCByYXctc2Vjb25kYXJ5LXApKSAodCAobGV0ICgoYWZmaWxp YXRlZCAob3JnLWVsZW1lbnQtLWNvbGxlY3QtYWZmaWxpYXRlZC1rZXl3b3JkcyBsaW1pdCkpKSAo Y29uZCAoKGFuZCAoY2RyIGFmZmlsaWF0ZWQpICg+PSAocG9pbnQpIGxpbWl0KSkgKGdvdG8tY2hh ciAoY2FyIGFmZmlsaWF0ZWQpKSAob3JnLWVsZW1lbnQta2V5d29yZC1wYXJzZXIgbGltaXQgbmls KSkgKChsb29raW5nLWF0ICJbICAgICBdKlxcXFxiZWdpbntbQS1aYS16MC05Kl0rfVxcKFxcWy4q P1xcXVxcfHsuKj99XFwpKlsgICAgIF0qJCIpIChvcmctZWxlbWVudC1sYXRleC1lbnZpcm9ubWVu dC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCBvcmctZHJhd2VyLXJlZ2V4 cCkgKGlmIChlcXVhbCAobWF0Y2gtc3RyaW5nIDEpICJQUk9QRVJUSUVTIikgKG9yZy1lbGVtZW50 LXByb3BlcnR5LWRyYXdlci1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkgKG9yZy1lbGVtZW50LWRy YXdlci1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpKSAoKGxvb2tpbmctYXQgIlsgICBdKjpcXCgg XFx8JFxcKSIpIChvcmctZWxlbWVudC1maXhlZC13aWR0aC1wYXJzZXIgbGltaXQgYWZmaWxpYXRl ZCkpICgobG9va2luZy1hdCAiWyAgICAgXSojIikgKGdvdG8tY2hhciAobWF0Y2gtZW5kIDApKSAo Y29uZCAoKGxvb2tpbmctYXQgIlxcKD86IFxcfCRcXCkiKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChv cmctZWxlbWVudC1jb21tZW50LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0 ICJcXCtCRUdJTl9cXChcXFMtK1xcKSIpIChiZWdpbm5pbmctb2YtbGluZSkgKGxldCAuLi4gLi4u KSkgKChsb29raW5nLWF0ICJcXCtDQUxMOiIpIChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVt ZW50LWJhYmVsLWNhbGwtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlxc K0JFR0lOOj8gIikgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQtZHluYW1pYy1ibG9j ay1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiXFwrXFxTLSs6IikgKGJl Z2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQta2V5d29yZC1wYXJzZXIgbGltaXQgYWZmaWxp YXRlZCkpICh0IChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LXBhcmFncmFwaC1wYXJz ZXIgbGltaXQgYWZmaWxpYXRlZCkpKSkgKChsb29raW5nLWF0IG9yZy1mb290bm90ZS1kZWZpbml0 aW9uLXJlKSAob3JnLWVsZW1lbnQtZm9vdG5vdGUtZGVmaW5pdGlvbi1wYXJzZXIgbGltaXQgYWZm aWxpYXRlZCkpICgobG9va2luZy1hdCAiWyAgIF0qLVxcezUsXFx9WyAgICBdKiQiKSAob3JnLWVs ZW1lbnQtaG9yaXpvbnRhbC1ydWxlLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5n LWF0ICIlJSgiKSAob3JnLWVsZW1lbnQtZGlhcnktc2V4cC1wYXJzZXIgbGltaXQgYWZmaWxpYXRl ZCkpICgob3JnLWF0LXRhYmxlLXAgdCkgKG9yZy1lbGVtZW50LXRhYmxlLXBhcnNlciBsaW1pdCBh ZmZpbGlhdGVkKSkgKChsb29raW5nLWF0IChvcmctaXRlbS1yZSkpIChvcmctZWxlbWVudC1wbGFp bi1saXN0LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkIChvciBzdHJ1Y3R1cmUgKG9yZy1lbGVtZW50 LS1saXN0LXN0cnVjdCBsaW1pdCkpKSkgKHQgKG9yZy1lbGVtZW50LXBhcmFncmFwaC1wYXJzZXIg bGltaXQgYWZmaWxpYXRlZCkpKSkpKQogIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIHQpIChyYXct c2Vjb25kYXJ5LXAgKGFuZCBncmFudWxhcml0eSAobm90IChlcSBncmFudWxhcml0eSAocXVvdGUg b2JqZWN0KSkpKSkpIChjb25kICgoZXEgc3BlY2lhbCAocXVvdGUgaXRlbSkpIChvcmctZWxlbWVu dC1pdGVtLXBhcnNlciBsaW1pdCBzdHJ1Y3R1cmUgcmF3LXNlY29uZGFyeS1wKSkgKChlcSBzcGVj aWFsIChxdW90ZSB0YWJsZS1yb3cpKSAob3JnLWVsZW1lbnQtdGFibGUtcm93LXBhcnNlciBsaW1p dCkpICgoZXEgc3BlY2lhbCAocXVvdGUgbm9kZS1wcm9wZXJ0eSkpIChvcmctZWxlbWVudC1ub2Rl LXByb3BlcnR5LXBhcnNlciBsaW1pdCkpICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVk LWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1y ZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUt cmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgKG9yZy1hdC1oZWFk aW5nLXApKSAob3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFyc2VyIGxpbWl0IHJhdy1zZWNvbmRhcnkt cCkpICgoZXEgc3BlY2lhbCAocXVvdGUgc2VjdGlvbikpIChvcmctZWxlbWVudC1zZWN0aW9uLXBh cnNlciBsaW1pdCkpICgoZXEgc3BlY2lhbCAocXVvdGUgZmlyc3Qtc2VjdGlvbikpIChvcmctZWxl bWVudC1zZWN0aW9uLXBhcnNlciAob3IgKHNhdmUtZXhjdXJzaW9uIChsZXQqICguLi4gLi4uIC4u LiAuLi4pIChvdXRsaW5lLW5leHQtaGVhZGluZykpKSBsaW1pdCkpKSAoKG5vdCAoYm9scCkpIChv cmctZWxlbWVudC1wYXJhZ3JhcGgtcGFyc2VyIGxpbWl0IChsaXN0IChwb2ludCkpKSkgKChsb29r aW5nLWF0IG9yZy1wbGFubmluZy1vci1jbG9jay1saW5lLXJlKSAoaWYgKGVxdWFsIChtYXRjaC1z dHJpbmcgMSkgb3JnLWNsb2NrLXN0cmluZykgKG9yZy1lbGVtZW50LWNsb2NrLXBhcnNlciBsaW1p dCkgKG9yZy1lbGVtZW50LXBsYW5uaW5nLXBhcnNlciBsaW1pdCkpKSAoKG9yZy1hdC1oZWFkaW5n LXApIChvcmctZWxlbWVudC1pbmxpbmV0YXNrLXBhcnNlciBsaW1pdCByYXctc2Vjb25kYXJ5LXAp KSAodCAobGV0ICgoYWZmaWxpYXRlZCAob3JnLWVsZW1lbnQtLWNvbGxlY3QtYWZmaWxpYXRlZC1r ZXl3b3JkcyBsaW1pdCkpKSAoY29uZCAoKGFuZCAoY2RyIGFmZmlsaWF0ZWQpICg+PSAuLi4gbGlt aXQpKSAoZ290by1jaGFyIChjYXIgYWZmaWxpYXRlZCkpIChvcmctZWxlbWVudC1rZXl3b3JkLXBh cnNlciBsaW1pdCBuaWwpKSAoKGxvb2tpbmctYXQgIlsgICAgICAgIF0qXFxcXGJlZ2lue1tBLVph LXowLTkqXSt9XFwoXFxbLio/XFxdXFx8ey4qP31cXCkqWyAgICAgXSokIikgKG9yZy1lbGVtZW50 LWxhdGV4LWVudmlyb25tZW50LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0 IG9yZy1kcmF3ZXItcmVnZXhwKSAoaWYgKGVxdWFsIC4uLiAiUFJPUEVSVElFUyIpIChvcmctZWxl bWVudC1wcm9wZXJ0eS1kcmF3ZXItcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpIChvcmctZWxlbWVu dC1kcmF3ZXItcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSkgKChsb29raW5nLWF0ICJbICAgICAg ICBdKjpcXCggXFx8JFxcKSIpIChvcmctZWxlbWVudC1maXhlZC13aWR0aC1wYXJzZXIgbGltaXQg YWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiWyAgICAgXSojIikgKGdvdG8tY2hhciAobWF0Y2gt ZW5kIDApKSAoY29uZCAoLi4uIC4uLiAuLi4pICguLi4gLi4uIC4uLikgKC4uLiAuLi4gLi4uKSAo Li4uIC4uLiAuLi4pICguLi4gLi4uIC4uLikgKHQgLi4uIC4uLikpKSAoKGxvb2tpbmctYXQgb3Jn LWZvb3Rub3RlLWRlZmluaXRpb24tcmUpIChvcmctZWxlbWVudC1mb290bm90ZS1kZWZpbml0aW9u LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJbICAgXSotXFx7NSxcXH1b ICAgIF0qJCIpIChvcmctZWxlbWVudC1ob3Jpem9udGFsLXJ1bGUtcGFyc2VyIGxpbWl0IGFmZmls aWF0ZWQpKSAoKGxvb2tpbmctYXQgIiUlKCIpIChvcmctZWxlbWVudC1kaWFyeS1zZXhwLXBhcnNl ciBsaW1pdCBhZmZpbGlhdGVkKSkgKChvcmctYXQtdGFibGUtcCB0KSAob3JnLWVsZW1lbnQtdGFi bGUtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgKG9yZy1pdGVtLXJlKSkg KG9yZy1lbGVtZW50LXBsYWluLWxpc3QtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQgKG9yIHN0cnVj dHVyZSAuLi4pKSkgKHQgKG9yZy1lbGVtZW50LXBhcmFncmFwaC1wYXJzZXIgbGltaXQgYWZmaWxp YXRlZCkpKSkpKSkKICAoc2F2ZS1leGN1cnNpb24gKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggdCkg KHJhdy1zZWNvbmRhcnktcCAoYW5kIGdyYW51bGFyaXR5IChub3QgKGVxIGdyYW51bGFyaXR5IChx dW90ZSBvYmplY3QpKSkpKSkgKGNvbmQgKChlcSBzcGVjaWFsIChxdW90ZSBpdGVtKSkgKG9yZy1l bGVtZW50LWl0ZW0tcGFyc2VyIGxpbWl0IHN0cnVjdHVyZSByYXctc2Vjb25kYXJ5LXApKSAoKGVx IHNwZWNpYWwgKHF1b3RlIHRhYmxlLXJvdykpIChvcmctZWxlbWVudC10YWJsZS1yb3ctcGFyc2Vy IGxpbWl0KSkgKChlcSBzcGVjaWFsIChxdW90ZSBub2RlLXByb3BlcnR5KSkgKG9yZy1lbGVtZW50 LW5vZGUtcHJvcGVydHktcGFyc2VyIGxpbWl0KSkgKChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxp bWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRs aW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0 bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3JnLWF0 LWhlYWRpbmctcCkpIChvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIgbGltaXQgcmF3LXNlY29u ZGFyeS1wKSkgKChlcSBzcGVjaWFsIChxdW90ZSBzZWN0aW9uKSkgKG9yZy1lbGVtZW50LXNlY3Rp b24tcGFyc2VyIGxpbWl0KSkgKChlcSBzcGVjaWFsIChxdW90ZSBmaXJzdC1zZWN0aW9uKSkgKG9y Zy1lbGVtZW50LXNlY3Rpb24tcGFyc2VyIChvciAoc2F2ZS1leGN1cnNpb24gKGxldCogLi4uIC4u LikpIGxpbWl0KSkpICgobm90IChib2xwKSkgKG9yZy1lbGVtZW50LXBhcmFncmFwaC1wYXJzZXIg bGltaXQgKGxpc3QgKHBvaW50KSkpKSAoKGxvb2tpbmctYXQgb3JnLXBsYW5uaW5nLW9yLWNsb2Nr LWxpbmUtcmUpIChpZiAoZXF1YWwgKG1hdGNoLXN0cmluZyAxKSBvcmctY2xvY2stc3RyaW5nKSAo b3JnLWVsZW1lbnQtY2xvY2stcGFyc2VyIGxpbWl0KSAob3JnLWVsZW1lbnQtcGxhbm5pbmctcGFy c2VyIGxpbWl0KSkpICgob3JnLWF0LWhlYWRpbmctcCkgKG9yZy1lbGVtZW50LWlubGluZXRhc2st cGFyc2VyIGxpbWl0IHJhdy1zZWNvbmRhcnktcCkpICh0IChsZXQgKChhZmZpbGlhdGVkIChvcmct ZWxlbWVudC0tY29sbGVjdC1hZmZpbGlhdGVkLWtleXdvcmRzIGxpbWl0KSkpIChjb25kICgoYW5k IC4uLiAuLi4pIChnb3RvLWNoYXIgLi4uKSAob3JnLWVsZW1lbnQta2V5d29yZC1wYXJzZXIgbGlt aXQgbmlsKSkgKChsb29raW5nLWF0ICJbICAgICAgXSpcXFxcYmVnaW57W0EtWmEtejAtOSpdK31c XChcXFsuKj9cXF1cXHx7Lio/fVxcKSpbICAgICBdKiQiKSAob3JnLWVsZW1lbnQtbGF0ZXgtZW52 aXJvbm1lbnQtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgb3JnLWRyYXdl ci1yZWdleHApIChpZiAuLi4gLi4uIC4uLikpICgobG9va2luZy1hdCAiWyAgICAgICAgXSo6XFwo IFxcfCRcXCkiKSAob3JnLWVsZW1lbnQtZml4ZWQtd2lkdGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0 ZWQpKSAoKGxvb2tpbmctYXQgIlsgICAgIF0qIyIpIChnb3RvLWNoYXIgLi4uKSAoY29uZCAuLi4g Li4uIC4uLiAuLi4gLi4uIC4uLikpICgobG9va2luZy1hdCBvcmctZm9vdG5vdGUtZGVmaW5pdGlv bi1yZSkgKG9yZy1lbGVtZW50LWZvb3Rub3RlLWRlZmluaXRpb24tcGFyc2VyIGxpbWl0IGFmZmls aWF0ZWQpKSAoKGxvb2tpbmctYXQgIlsgICAgICAgXSotXFx7NSxcXH1bICAgIF0qJCIpIChvcmct ZWxlbWVudC1ob3Jpem9udGFsLXJ1bGUtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tp bmctYXQgIiUlKCIpIChvcmctZWxlbWVudC1kaWFyeS1zZXhwLXBhcnNlciBsaW1pdCBhZmZpbGlh dGVkKSkgKChvcmctYXQtdGFibGUtcCB0KSAob3JnLWVsZW1lbnQtdGFibGUtcGFyc2VyIGxpbWl0 IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgLi4uKSAob3JnLWVsZW1lbnQtcGxhaW4tbGlzdC1w YXJzZXIgbGltaXQgYWZmaWxpYXRlZCAuLi4pKSAodCAob3JnLWVsZW1lbnQtcGFyYWdyYXBoLXBh cnNlciBsaW1pdCBhZmZpbGlhdGVkKSkpKSkpKSkKICBvcmctZWxlbWVudC0tY3VycmVudC1lbGVt ZW50KDI1NzcwNiBlbGVtZW50IG5pbCBuaWwpCiAgKHNldHEgZWxlbWVudCAob3JnLWVsZW1lbnQt LWN1cnJlbnQtZWxlbWVudCBlbmQgKHF1b3RlIGVsZW1lbnQpIHNwZWNpYWwtZmxhZyAob3JnLWVs ZW1lbnQtcHJvcGVydHkgOnN0cnVjdHVyZSBwYXJlbnQpKSkKICAoaWYgZWxlbWVudCBuaWwgKHNl dHEgZWxlbWVudCAob3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVudCBlbmQgKHF1b3RlIGVsZW1l bnQpIHNwZWNpYWwtZmxhZyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnN0cnVjdHVyZSBwYXJlbnQp KSkgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBlbGVtZW50IDpwYXJlbnQgcGFyZW50KSAob3Jn LWVsZW1lbnQtLWNhY2hlLXB1dCBlbGVtZW50KSkKICAod2hpbGUgdCAoaWYgc3luY3AgKHByb2du IChjb25kICgoPSAocG9pbnQpIHBvcykgKHRocm93IChxdW90ZSBleGl0KSBwYXJlbnQpKSAoKG9y Zy1lbGVtZW50LS1jYWNoZS1pbnRlcnJ1cHQtcCB0aW1lLWxpbWl0KSAodGhyb3cgKHF1b3RlIGlu dGVycnVwdCkgbmlsKSkpKSkgKGlmIGVsZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQgKG9yZy1lbGVt ZW50LS1jdXJyZW50LWVsZW1lbnQgZW5kIChxdW90ZSBlbGVtZW50KSBzcGVjaWFsLWZsYWcgKG9y Zy1lbGVtZW50LXByb3BlcnR5IDpzdHJ1Y3R1cmUgcGFyZW50KSkpIChvcmctZWxlbWVudC1wdXQt cHJvcGVydHkgZWxlbWVudCA6cGFyZW50IHBhcmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQg ZWxlbWVudCkpIChsZXQgKChlbGVtLWVuZCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVt ZW50KSkgKHR5cGUgKG9yZy1lbGVtZW50LXR5cGUgZWxlbWVudCkpKSAoY29uZCAoKGFuZCAoPD0g ZWxlbS1lbmQgcG9zKSAoLz0gKHBvaW50LW1heCkgZWxlbS1lbmQpKSAoZ290by1jaGFyIGVsZW0t ZW5kKSkgKChub3QgKG1lbXEgdHlwZSBvcmctZWxlbWVudC1ncmVhdGVyLWVsZW1lbnRzKSkgKHRo cm93IChxdW90ZSBleGl0KSBlbGVtZW50KSkgKChsZXQgKChjYmVnIChvcmctZWxlbWVudC1wcm9w ZXJ0eSA6Y29udGVudHMtYmVnaW4gZWxlbWVudCkpIChjZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0 eSA6Y29udGVudHMtZW5kIGVsZW1lbnQpKSkgKGlmIChvciBzeW5jcCAoYW5kIGNiZWcgY2VuZCAu Li4gLi4uKSkgKHByb2duIChnb3RvLWNoYXIgLi4uKSAoc2V0cSBuZXh0IG5pbCBzcGVjaWFsLWZs YWcgLi4uIHBhcmVudCBlbGVtZW50IGVuZCBjZW5kKSkpKSkgKHQgKHRocm93IChxdW90ZSBleGl0 KSBlbGVtZW50KSkpKSAoc2V0cSBlbGVtZW50IG5pbCkpCiAgKGxldCAoKGVuZCAob3IgKG9yZy1l bGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkgKHNhdmUtZXhjdXJzaW9uIChsZXQqICgob3Jn LWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgLi4uKSAo b3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJv bCAuLi4pKSAob3V0bGluZS1uZXh0LWhlYWRpbmcpKSAocG9pbnQpKSkpIChwYXJlbnQgZWxlbWVu dCkgc3BlY2lhbC1mbGFnKSAod2hpbGUgdCAoaWYgc3luY3AgKHByb2duIChjb25kICgoPSAocG9p bnQpIHBvcykgKHRocm93IChxdW90ZSBleGl0KSBwYXJlbnQpKSAoKG9yZy1lbGVtZW50LS1jYWNo ZS1pbnRlcnJ1cHQtcCB0aW1lLWxpbWl0KSAodGhyb3cgKHF1b3RlIGludGVycnVwdCkgbmlsKSkp KSkgKGlmIGVsZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50LS1jdXJyZW50LWVs ZW1lbnQgZW5kIChxdW90ZSBlbGVtZW50KSBzcGVjaWFsLWZsYWcgKG9yZy1lbGVtZW50LXByb3Bl cnR5IDpzdHJ1Y3R1cmUgcGFyZW50KSkpIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgZWxlbWVu dCA6cGFyZW50IHBhcmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQgZWxlbWVudCkpIChsZXQg KChlbGVtLWVuZCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSkgKHR5cGUgKG9y Zy1lbGVtZW50LXR5cGUgZWxlbWVudCkpKSAoY29uZCAoKGFuZCAoPD0gZWxlbS1lbmQgcG9zKSAo Lz0gKHBvaW50LW1heCkgZWxlbS1lbmQpKSAoZ290by1jaGFyIGVsZW0tZW5kKSkgKChub3QgKG1l bXEgdHlwZSBvcmctZWxlbWVudC1ncmVhdGVyLWVsZW1lbnRzKSkgKHRocm93IChxdW90ZSBleGl0 KSBlbGVtZW50KSkgKChsZXQgKChjYmVnIC4uLikgKGNlbmQgLi4uKSkgKGlmIChvciBzeW5jcCAu Li4pIChwcm9nbiAuLi4gLi4uKSkpKSAodCAodGhyb3cgKHF1b3RlIGV4aXQpIGVsZW1lbnQpKSkp IChzZXRxIGVsZW1lbnQgbmlsKSkpCiAgKGxldCogKChjYWNoZWQgKGFuZCAob3JnLWVsZW1lbnQt LWNhY2hlLWFjdGl2ZS1wKSAob3JnLWVsZW1lbnQtLWNhY2hlLWZpbmQgcG9zIG5pbCkpKSAoYmVn aW4gKG9yZy1lbGVtZW50LXByb3BlcnR5IDpiZWdpbiBjYWNoZWQpKSBlbGVtZW50IG5leHQpIChj b25kICgobm90IGNhY2hlZCkgKGlmIChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2 ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4 cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdl eHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3V0bGluZS1wcmV2aW91 cy1oZWFkaW5nKSkgKHByb2duIChmb3J3YXJkLWxpbmUpKSkgKHNraXAtY2hhcnMtZm9yd2FyZCAi IA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAoKD0gcG9zIGJlZ2luKSAodGhyb3cgKHF1b3Rl IGV4aXQpIChpZiBzeW5jcCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhcmVudCBjYWNoZWQpIGNh Y2hlZCkpKSAoKHJlLXNlYXJjaC1iYWNrd2FyZCAobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1p dGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGlu ZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxp bmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgb3JnLW91dGxp bmUtcmVnZXhwLWJvbCkgYmVnaW4gdCkgKGZvcndhcmQtbGluZSkgKHNraXAtY2hhcnMtZm9yd2Fy ZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAodCAobGV0ICgodXAgY2FjaGVkKSAocG9z IChpZiAoPSAuLi4gcG9zKSAoMS0gcG9zKSBwb3MpKSkgKGdvdG8tY2hhciAob3IgKG9yZy1lbGVt ZW50LXByb3BlcnR5IDpjb250ZW50cy1iZWdpbiBjYWNoZWQpIGJlZ2luKSkgKHdoaWxlIChsZXQg KChlbmQgLi4uKSkgKGFuZCAoPD0gZW5kIHBvcykgKGdvdG8tY2hhciBlbmQpIChzZXRxIHVwIC4u LikpKSkgKGNvbmQgKChub3QgdXApKSAoKGVvYnApIChzZXRxIGVsZW1lbnQgdXApKSAodCAoc2V0 cSBlbGVtZW50IHVwIG5leHQgKHBvaW50KSkpKSkpKSAobGV0ICgoZW5kIChvciAob3JnLWVsZW1l bnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSAoc2F2ZS1leGN1cnNpb24gKGxldCogKC4uLiAuLi4g Li4uIC4uLikgKG91dGxpbmUtbmV4dC1oZWFkaW5nKSkgKHBvaW50KSkpKSAocGFyZW50IGVsZW1l bnQpIHNwZWNpYWwtZmxhZykgKHdoaWxlIHQgKGlmIHN5bmNwIChwcm9nbiAoY29uZCAoKD0gLi4u IHBvcykgKHRocm93IC4uLiBwYXJlbnQpKSAoKG9yZy1lbGVtZW50LS1jYWNoZS1pbnRlcnJ1cHQt cCB0aW1lLWxpbWl0KSAodGhyb3cgLi4uIG5pbCkpKSkpIChpZiBlbGVtZW50IG5pbCAoc2V0cSBl bGVtZW50IChvcmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50IGVuZCAocXVvdGUgZWxlbWVudCkg c3BlY2lhbC1mbGFnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6c3RydWN0dXJlIHBhcmVudCkpKSAo b3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQpIChvcmctZWxl bWVudC0tY2FjaGUtcHV0IGVsZW1lbnQpKSAobGV0ICgoZWxlbS1lbmQgKG9yZy1lbGVtZW50LXBy b3BlcnR5IDplbmQgZWxlbWVudCkpICh0eXBlIChvcmctZWxlbWVudC10eXBlIGVsZW1lbnQpKSkg KGNvbmQgKChhbmQgKDw9IGVsZW0tZW5kIHBvcykgKC89IC4uLiBlbGVtLWVuZCkpIChnb3RvLWNo YXIgZWxlbS1lbmQpKSAoKG5vdCAobWVtcSB0eXBlIG9yZy1lbGVtZW50LWdyZWF0ZXItZWxlbWVu dHMpKSAodGhyb3cgKHF1b3RlIGV4aXQpIGVsZW1lbnQpKSAoKGxldCAoLi4uIC4uLikgKGlmIC4u LiAuLi4pKSkgKHQgKHRocm93IChxdW90ZSBleGl0KSBlbGVtZW50KSkpKSAoc2V0cSBlbGVtZW50 IG5pbCkpKSkKICAoc2F2ZS1yZXN0cmljdGlvbiAod2lkZW4pIChnb3RvLWNoYXIgcG9zKSAobGV0 KiAoKGNhY2hlZCAoYW5kIChvcmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChvcmctZWxlbWVu dC0tY2FjaGUtZmluZCBwb3MgbmlsKSkpIChiZWdpbiAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmJl Z2luIGNhY2hlZCkpIGVsZW1lbnQgbmV4dCkgKGNvbmQgKChub3QgY2FjaGVkKSAoaWYgKGxldCog KChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAu Li4pIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdl eHAtYm9sIC4uLikpIChvdXRsaW5lLXByZXZpb3VzLWhlYWRpbmcpKSAocHJvZ24gKGZvcndhcmQt bGluZSkpKSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkp ICgoPSBwb3MgYmVnaW4pICh0aHJvdyAocXVvdGUgZXhpdCkgKGlmIHN5bmNwIChvcmctZWxlbWVu dC1wcm9wZXJ0eSA6cGFyZW50IGNhY2hlZCkgY2FjaGVkKSkpICgocmUtc2VhcmNoLWJhY2t3YXJk IChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1y ZWdleHAgLi4uKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxp bmUtcmVnZXhwLWJvbCAuLi4pKSBvcmctb3V0bGluZS1yZWdleHAtYm9sKSBiZWdpbiB0KSAoZm9y d2FyZC1saW5lKSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGlu ZSkpICh0IChsZXQgKCh1cCBjYWNoZWQpIChwb3MgKGlmIC4uLiAuLi4gcG9zKSkpIChnb3RvLWNo YXIgKG9yIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6Y29udGVudHMtYmVnaW4gY2FjaGVkKSBiZWdp bikpICh3aGlsZSAobGV0ICguLi4pIChhbmQgLi4uIC4uLiAuLi4pKSkgKGNvbmQgKChub3QgdXAp KSAoKGVvYnApIChzZXRxIGVsZW1lbnQgdXApKSAodCAoc2V0cSBlbGVtZW50IHVwIG5leHQgLi4u KSkpKSkpIChsZXQgKChlbmQgKG9yIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQp IChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAuLi4gLi4uKSAocG9pbnQpKSkpIChwYXJlbnQgZWxlbWVu dCkgc3BlY2lhbC1mbGFnKSAod2hpbGUgdCAoaWYgc3luY3AgKHByb2duIChjb25kICguLi4gLi4u KSAoLi4uIC4uLikpKSkgKGlmIGVsZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50 LS1jdXJyZW50LWVsZW1lbnQgZW5kIChxdW90ZSBlbGVtZW50KSBzcGVjaWFsLWZsYWcgKG9yZy1l bGVtZW50LXByb3BlcnR5IDpzdHJ1Y3R1cmUgcGFyZW50KSkpIChvcmctZWxlbWVudC1wdXQtcHJv cGVydHkgZWxlbWVudCA6cGFyZW50IHBhcmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQgZWxl bWVudCkpIChsZXQgKChlbGVtLWVuZCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50 KSkgKHR5cGUgKG9yZy1lbGVtZW50LXR5cGUgZWxlbWVudCkpKSAoY29uZCAoKGFuZCAuLi4gLi4u KSAoZ290by1jaGFyIGVsZW0tZW5kKSkgKChub3QgLi4uKSAodGhyb3cgLi4uIGVsZW1lbnQpKSAo KGxldCAuLi4gLi4uKSkgKHQgKHRocm93IC4uLiBlbGVtZW50KSkpKSAoc2V0cSBlbGVtZW50IG5p bCkpKSkpCiAgKHNhdmUtZXhjdXJzaW9uIChzYXZlLXJlc3RyaWN0aW9uICh3aWRlbikgKGdvdG8t Y2hhciBwb3MpIChsZXQqICgoY2FjaGVkIChhbmQgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUt cCkgKG9yZy1lbGVtZW50LS1jYWNoZS1maW5kIHBvcyBuaWwpKSkgKGJlZ2luIChvcmctZWxlbWVu dC1wcm9wZXJ0eSA6YmVnaW4gY2FjaGVkKSkgZWxlbWVudCBuZXh0KSAoY29uZCAoKG5vdCBjYWNo ZWQpIChpZiAobGV0KiAoLi4uIC4uLiAuLi4gLi4uKSAob3V0bGluZS1wcmV2aW91cy1oZWFkaW5n KSkgKHByb2duIChmb3J3YXJkLWxpbmUpKSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAo YmVnaW5uaW5nLW9mLWxpbmUpKSAoKD0gcG9zIGJlZ2luKSAodGhyb3cgKHF1b3RlIGV4aXQpIChp ZiBzeW5jcCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhcmVudCBjYWNoZWQpIGNhY2hlZCkpKSAo KHJlLXNlYXJjaC1iYWNrd2FyZCAobGV0KiAoLi4uIC4uLiAuLi4gLi4uKSBvcmctb3V0bGluZS1y ZWdleHAtYm9sKSBiZWdpbiB0KSAoZm9yd2FyZC1saW5lKSAoc2tpcC1jaGFycy1mb3J3YXJkICIg DQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkpICh0IChsZXQgKCh1cCBjYWNoZWQpIChwb3MgLi4u KSkgKGdvdG8tY2hhciAob3IgLi4uIGJlZ2luKSkgKHdoaWxlIChsZXQgLi4uIC4uLikpIChjb25k ICguLi4pICguLi4gLi4uKSAodCAuLi4pKSkpKSAobGV0ICgoZW5kIChvciAob3JnLWVsZW1lbnQt cHJvcGVydHkgOmVuZCBlbGVtZW50KSAoc2F2ZS1leGN1cnNpb24gLi4uIC4uLikpKSAocGFyZW50 IGVsZW1lbnQpIHNwZWNpYWwtZmxhZykgKHdoaWxlIHQgKGlmIHN5bmNwIChwcm9nbiAoY29uZCAu Li4gLi4uKSkpIChpZiBlbGVtZW50IG5pbCAoc2V0cSBlbGVtZW50IChvcmctZWxlbWVudC0tY3Vy cmVudC1lbGVtZW50IGVuZCAuLi4gc3BlY2lhbC1mbGFnIC4uLikpIChvcmctZWxlbWVudC1wdXQt cHJvcGVydHkgZWxlbWVudCA6cGFyZW50IHBhcmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQg ZWxlbWVudCkpIChsZXQgKChlbGVtLWVuZCAuLi4pICh0eXBlIC4uLikpIChjb25kICguLi4gLi4u KSAoLi4uIC4uLikgKC4uLikgKHQgLi4uKSkpIChzZXRxIGVsZW1lbnQgbmlsKSkpKSkpCiAgKGNh dGNoIChxdW90ZSBleGl0KSAoc2F2ZS1leGN1cnNpb24gKHNhdmUtcmVzdHJpY3Rpb24gKHdpZGVu KSAoZ290by1jaGFyIHBvcykgKGxldCogKChjYWNoZWQgKGFuZCAob3JnLWVsZW1lbnQtLWNhY2hl LWFjdGl2ZS1wKSAob3JnLWVsZW1lbnQtLWNhY2hlLWZpbmQgcG9zIG5pbCkpKSAoYmVnaW4gKG9y Zy1lbGVtZW50LXByb3BlcnR5IDpiZWdpbiBjYWNoZWQpKSBlbGVtZW50IG5leHQpIChjb25kICgo bm90IGNhY2hlZCkgKGlmIChsZXQqIC4uLiAuLi4pIChwcm9nbiAuLi4pKSAoc2tpcC1jaGFycy1m b3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkpICgoPSBwb3MgYmVnaW4pICh0aHJv dyAocXVvdGUgZXhpdCkgKGlmIHN5bmNwIC4uLiBjYWNoZWQpKSkgKChyZS1zZWFyY2gtYmFja3dh cmQgKGxldCogLi4uIG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wpIGJlZ2luIHQpIChmb3J3YXJkLWxp bmUpIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkgKHQg KGxldCAoLi4uIC4uLikgKGdvdG8tY2hhciAuLi4pICh3aGlsZSAuLi4pIChjb25kIC4uLiAuLi4g Li4uKSkpKSAobGV0ICgoZW5kIChvciAuLi4gLi4uKSkgKHBhcmVudCBlbGVtZW50KSBzcGVjaWFs LWZsYWcpICh3aGlsZSB0IChpZiBzeW5jcCAocHJvZ24gLi4uKSkgKGlmIGVsZW1lbnQgbmlsIChz ZXRxIGVsZW1lbnQgLi4uKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVu dCBwYXJlbnQpIChvcmctZWxlbWVudC0tY2FjaGUtcHV0IGVsZW1lbnQpKSAobGV0ICguLi4gLi4u KSAoY29uZCAuLi4gLi4uIC4uLiAuLi4pKSAoc2V0cSBlbGVtZW50IG5pbCkpKSkpKSkKICBvcmct ZWxlbWVudC0tcGFyc2UtdG8oMjU3MjgwKQogIChjb25kICgoYm9icCkgbmlsKSAoKGxldCogKChv cmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3Jn LWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5l LXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUt cmVnZXhwKSkpIChvcmctYXQtaGVhZGluZy1wKSkgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVs ZW1lbnQtaGVhZGxpbmUtcGFyc2VyIChwb2ludC1tYXgpIHQpKSAodCAoaWYgKG9yZy1lbGVtZW50 LS1jYWNoZS1hY3RpdmUtcCkgKHByb2duIChpZiAobm90IG9yZy1lbGVtZW50LS1jYWNoZSkgKG9y Zy1lbGVtZW50LWNhY2hlLXJlc2V0KSAob3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMgKGN1cnJlbnQt YnVmZmVyKSBvcmlnaW4pKSkpIChvcmctZWxlbWVudC0tcGFyc2UtdG8gb3JpZ2luKSkpCiAgKGxl dCAoKG9yaWdpbiAocG9pbnQpKSkgKGVuZC1vZi1saW5lKSAoc2tpcC1jaGFycy1iYWNrd2FyZCAi IA0JXG4iKSAoY29uZCAoKGJvYnApIG5pbCkgKChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0 ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5l LXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGlu ZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3JnLWF0LWhl YWRpbmctcCkpIChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNl ciAocG9pbnQtbWF4KSB0KSkgKHQgKGlmIChvcmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChw cm9nbiAoaWYgKG5vdCBvcmctZWxlbWVudC0tY2FjaGUpIChvcmctZWxlbWVudC1jYWNoZS1yZXNl dCkgKG9yZy1lbGVtZW50LS1jYWNoZS1zeW5jIChjdXJyZW50LWJ1ZmZlcikgb3JpZ2luKSkpKSAo b3JnLWVsZW1lbnQtLXBhcnNlLXRvIG9yaWdpbikpKSkKICAoc2F2ZS1yZXN0cmljdGlvbiAod2lk ZW4pIChsZXQgKChvcmlnaW4gKHBvaW50KSkpIChlbmQtb2YtbGluZSkgKHNraXAtY2hhcnMtYmFj a3dhcmQgIiANCVxuIikgKGNvbmQgKChib2JwKSBuaWwpICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0 aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQt b3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3Jn LW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgKG9y Zy1hdC1oZWFkaW5nLXApKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1oZWFkbGlu ZS1wYXJzZXIgKHBvaW50LW1heCkgdCkpICh0IChpZiAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2 ZS1wKSAocHJvZ24gKGlmIChub3Qgb3JnLWVsZW1lbnQtLWNhY2hlKSAob3JnLWVsZW1lbnQtY2Fj aGUtcmVzZXQpIChvcmctZWxlbWVudC0tY2FjaGUtc3luYyAuLi4gb3JpZ2luKSkpKSAob3JnLWVs ZW1lbnQtLXBhcnNlLXRvIG9yaWdpbikpKSkpCiAgKHNhdmUtZXhjdXJzaW9uIChzYXZlLXJlc3Ry aWN0aW9uICh3aWRlbikgKGxldCAoKG9yaWdpbiAocG9pbnQpKSkgKGVuZC1vZi1saW5lKSAoc2tp cC1jaGFycy1iYWNrd2FyZCAiIA0JXG4iKSAoY29uZCAoKGJvYnApIG5pbCkgKChsZXQqICgob3Jn LWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgLi4uKSAo b3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJv bCAuLi4pKSAob3JnLWF0LWhlYWRpbmctcCkpIChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVt ZW50LWhlYWRsaW5lLXBhcnNlciAocG9pbnQtbWF4KSB0KSkgKHQgKGlmIChvcmctZWxlbWVudC0t Y2FjaGUtYWN0aXZlLXApIChwcm9nbiAoaWYgLi4uIC4uLiAuLi4pKSkgKG9yZy1lbGVtZW50LS1w YXJzZS10byBvcmlnaW4pKSkpKSkKICBvcmctZWxlbWVudC1hdC1wb2ludCgpCiAgKGxldCAoKGRy YXdlciAob3JnLWVsZW1lbnQtYXQtcG9pbnQpKSkgKGlmIChhbmQgKGVxIChvcmctZWxlbWVudC10 eXBlIGRyYXdlcikgKHF1b3RlIHByb3BlcnR5LWRyYXdlcikpIChsZXQgKChwIGRyYXdlcikpICh3 aGlsZSAoYW5kIChzZXRxIHAgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpwYXJlbnQgcCkpIChub3Qg KGVxIC4uLiAuLi4pKSkpIChub3QgcCkpKSAocHJvZ24gKGxldCAoKGVuZCAob3JnLWVsZW1lbnQt cHJvcGVydHkgOmNvbnRlbnRzLWVuZCBkcmF3ZXIpKSkgKGlmIGVuZCAocHJvZ24gKGZvcndhcmQt bGluZSkgKHdoaWxlICg8IC4uLiBlbmQpIChpZiAuLi4gLi4uKSAoZm9yd2FyZC1saW5lKSkpKSkp KSkKICAod2hpbGUgKGFuZCAobnVsbCBwbGlzdCkgKHJlLXNlYXJjaC1mb3J3YXJkIG9yZy1wcm9w ZXJ0eS1zdGFydC1yZSBlbmQgdCkpIChsZXQgKChkcmF3ZXIgKG9yZy1lbGVtZW50LWF0LXBvaW50 KSkpIChpZiAoYW5kIChlcSAob3JnLWVsZW1lbnQtdHlwZSBkcmF3ZXIpIChxdW90ZSBwcm9wZXJ0 eS1kcmF3ZXIpKSAobGV0ICgocCBkcmF3ZXIpKSAod2hpbGUgKGFuZCAoc2V0cSBwIC4uLikgKG5v dCAuLi4pKSkgKG5vdCBwKSkpIChwcm9nbiAobGV0ICgoZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0 eSA6Y29udGVudHMtZW5kIGRyYXdlcikpKSAoaWYgZW5kIChwcm9nbiAoZm9yd2FyZC1saW5lKSAo d2hpbGUgLi4uIC4uLiAuLi4pKSkpKSkpKQogIChzYXZlLWV4Y3Vyc2lvbiAod2hpbGUgKGFuZCAo bnVsbCBwbGlzdCkgKHJlLXNlYXJjaC1mb3J3YXJkIG9yZy1wcm9wZXJ0eS1zdGFydC1yZSBlbmQg dCkpIChsZXQgKChkcmF3ZXIgKG9yZy1lbGVtZW50LWF0LXBvaW50KSkpIChpZiAoYW5kIChlcSAo b3JnLWVsZW1lbnQtdHlwZSBkcmF3ZXIpIChxdW90ZSBwcm9wZXJ0eS1kcmF3ZXIpKSAobGV0ICgo cCBkcmF3ZXIpKSAod2hpbGUgKGFuZCAuLi4gLi4uKSkgKG5vdCBwKSkpIChwcm9nbiAobGV0ICgo ZW5kIC4uLikpIChpZiBlbmQgKHByb2duIC4uLiAuLi4pKSkpKSkpIHBsaXN0KQogIChsZXQgKChl bmQgKHNhdmUtZXhjdXJzaW9uIChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxz IHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkp IChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAt Ym9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3V0bGluZS1uZXh0LWhlYWRp bmcpKSAocG9pbnQpKSkgcGxpc3QpIChzYXZlLWV4Y3Vyc2lvbiAod2hpbGUgKGFuZCAobnVsbCBw bGlzdCkgKHJlLXNlYXJjaC1mb3J3YXJkIG9yZy1wcm9wZXJ0eS1zdGFydC1yZSBlbmQgdCkpIChs ZXQgKChkcmF3ZXIgKG9yZy1lbGVtZW50LWF0LXBvaW50KSkpIChpZiAoYW5kIChlcSAob3JnLWVs ZW1lbnQtdHlwZSBkcmF3ZXIpIChxdW90ZSBwcm9wZXJ0eS1kcmF3ZXIpKSAobGV0ICguLi4pICh3 aGlsZSAuLi4pIChub3QgcCkpKSAocHJvZ24gKGxldCAoLi4uKSAoaWYgZW5kIC4uLikpKSkpKSBw bGlzdCkpCiAgKGxldCogKChjb21wb25lbnRzIChvcmctaGVhZGluZy1jb21wb25lbnRzKSkgKGxl dmVsIChudGggMSBjb21wb25lbnRzKSkgKHRvZG8gKG50aCAyIGNvbXBvbmVudHMpKSAodG9kby10 eXBlIChhbmQgdG9kbyAoaWYgKG1lbWJlciB0b2RvIG9yZy1kb25lLWtleXdvcmRzKSAocXVvdGUg ZG9uZSkgKHF1b3RlIHRvZG8pKSkpICh0YWdzIChsZXQgKChyYXctdGFncyAobnRoIDUgY29tcG9u ZW50cykpKSAoYW5kIHJhdy10YWdzIChvcmctc3BsaXQtc3RyaW5nIHJhdy10YWdzICI6IikpKSkg KHJhdy12YWx1ZSAob3IgKG50aCA0IGNvbXBvbmVudHMpICIiKSkgKGNvbW1lbnRlZHAgKGxldCAo KGNhc2UtZm9sZC1zZWFyY2ggbmlsKSkgKHN0cmluZy1tYXRjaCAoZm9ybWF0ICJeJXNcXCggXFx8 JFxcKSIgb3JnLWNvbW1lbnQtc3RyaW5nKSByYXctdmFsdWUpKSkgKGFyY2hpdmVkcCAobWVtYmVy IG9yZy1hcmNoaXZlLXRhZyB0YWdzKSkgKGZvb3Rub3RlLXNlY3Rpb24tcCAoYW5kIG9yZy1mb290 bm90ZS1zZWN0aW9uIChzdHJpbmc9IG9yZy1mb290bm90ZS1zZWN0aW9uIHJhdy12YWx1ZSkpKSAo c3RhbmRhcmQtcHJvcHMgKGxldCAoKGVuZCAoc2F2ZS1leGN1cnNpb24gKGxldCogLi4uIC4uLikg KHBvaW50KSkpIHBsaXN0KSAoc2F2ZS1leGN1cnNpb24gKHdoaWxlIChhbmQgKG51bGwgcGxpc3Qp IChyZS1zZWFyY2gtZm9yd2FyZCBvcmctcHJvcGVydHktc3RhcnQtcmUgZW5kIHQpKSAobGV0ICgu Li4pIChpZiAuLi4gLi4uKSkpIHBsaXN0KSkpICh0aW1lLXByb3BzIChzYXZlLWV4Y3Vyc2lvbiAo Zm9yd2FyZC1saW5lKSAoaWYgKGxvb2tpbmctYXQgb3JnLXBsYW5uaW5nLW9yLWNsb2NrLWxpbmUt cmUpIChwcm9nbiAobGV0ICguLi4gcGxpc3QpICh3aGlsZSAuLi4gLi4uIC4uLiAuLi4pIHBsaXN0 KSkpKSkgKGJlZ2luIChwb2ludCkpIChlbmQgKG1pbiAoc2F2ZS1leGN1cnNpb24gKG9yZy1lbmQt b2Ytc3VidHJlZSB0IHQpKSBsaW1pdCkpIChwb3MtYWZ0ZXItaGVhZCAocHJvZ24gKGZvcndhcmQt bGluZSkgKHBvaW50KSkpIChjb250ZW50cy1iZWdpbiAoc2F2ZS1leGN1cnNpb24gKHNraXAtY2hh cnMtZm9yd2FyZCAiIA0JXG4iIGVuZCkgKGFuZCAoLz0gKHBvaW50KSBlbmQpIChsaW5lLWJlZ2lu bmluZy1wb3NpdGlvbikpKSkgKGNvbnRlbnRzLWVuZCAoYW5kIGNvbnRlbnRzLWJlZ2luIChwcm9n biAoZ290by1jaGFyIGVuZCkgKHNraXAtY2hhcnMtYmFja3dhcmQgIiANCVxuIikgKGZvcndhcmQt bGluZSkgKHBvaW50KSkpKSkgKGlmIGNvbW1lbnRlZHAgKHByb2duIChsZXQgKChjYXNlLWZvbGQt c2VhcmNoIG5pbCkpIChzZXRxIHJhdy12YWx1ZSAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nIChj b25jYXQgKHJlZ2V4cC1xdW90ZSBvcmctY29tbWVudC1zdHJpbmcpICJcXCg/OiBcXHwkXFwpIikg IiIgcmF3LXZhbHVlKSkpKSkgKGlmIGFyY2hpdmVkcCAocHJvZ24gKHNldHEgdGFncyAoZGVsZXRl IG9yZy1hcmNoaXZlLXRhZyB0YWdzKSkpKSAobGV0ICgoaGVhZGxpbmUgKGxpc3QgKHF1b3RlIGhl YWRsaW5lKSAobmNvbmMgKGxpc3QgOnJhdy12YWx1ZSByYXctdmFsdWUgOmJlZ2luIGJlZ2luIDpl bmQgZW5kIDpwcmUtYmxhbmsgKGlmIC4uLiAwIC4uLikgOmNvbnRlbnRzLWJlZ2luIGNvbnRlbnRz LWJlZ2luIDpjb250ZW50cy1lbmQgY29udGVudHMtZW5kIDpsZXZlbCBsZXZlbCA6cHJpb3JpdHkg KG50aCAzIGNvbXBvbmVudHMpIDp0YWdzIHRhZ3MgOnRvZG8ta2V5d29yZCB0b2RvIDp0b2RvLXR5 cGUgdG9kby10eXBlIDpwb3N0LWJsYW5rIChjb3VudC1saW5lcyAuLi4gZW5kKSA6Zm9vdG5vdGUt c2VjdGlvbi1wIGZvb3Rub3RlLXNlY3Rpb24tcCA6YXJjaGl2ZWRwIGFyY2hpdmVkcCA6Y29tbWVu dGVkcCBjb21tZW50ZWRwKSB0aW1lLXByb3BzIHN0YW5kYXJkLXByb3BzKSkpKSAobGV0ICgoYWx0 LXRpdGxlIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6QUxUX1RJVExFIGhlYWRsaW5lKSkpIChpZiBh bHQtdGl0bGUgKHByb2duIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgaGVhZGxpbmUgOmFsdC10 aXRsZSAoaWYgcmF3LXNlY29uZGFyeS1wIGFsdC10aXRsZSAob3JnLWVsZW1lbnQtcGFyc2Utc2Vj b25kYXJ5LXN0cmluZyBhbHQtdGl0bGUgLi4uIGhlYWRsaW5lKSkpKSkpIChvcmctZWxlbWVudC1w dXQtcHJvcGVydHkgaGVhZGxpbmUgOnRpdGxlIChpZiByYXctc2Vjb25kYXJ5LXAgcmF3LXZhbHVl IChvcmctZWxlbWVudC1wYXJzZS1zZWNvbmRhcnktc3RyaW5nIHJhdy12YWx1ZSAob3JnLWVsZW1l bnQtcmVzdHJpY3Rpb24gKHF1b3RlIGhlYWRsaW5lKSkgaGVhZGxpbmUpKSkpKQogIChzYXZlLWV4 Y3Vyc2lvbiAobGV0KiAoKGNvbXBvbmVudHMgKG9yZy1oZWFkaW5nLWNvbXBvbmVudHMpKSAobGV2 ZWwgKG50aCAxIGNvbXBvbmVudHMpKSAodG9kbyAobnRoIDIgY29tcG9uZW50cykpICh0b2RvLXR5 cGUgKGFuZCB0b2RvIChpZiAobWVtYmVyIHRvZG8gb3JnLWRvbmUta2V5d29yZHMpIChxdW90ZSBk b25lKSAocXVvdGUgdG9kbykpKSkgKHRhZ3MgKGxldCAoKHJhdy10YWdzIChudGggNSBjb21wb25l bnRzKSkpIChhbmQgcmF3LXRhZ3MgKG9yZy1zcGxpdC1zdHJpbmcgcmF3LXRhZ3MgIjoiKSkpKSAo cmF3LXZhbHVlIChvciAobnRoIDQgY29tcG9uZW50cykgIiIpKSAoY29tbWVudGVkcCAobGV0ICgo Y2FzZS1mb2xkLXNlYXJjaCBuaWwpKSAoc3RyaW5nLW1hdGNoIChmb3JtYXQgIl4lc1xcKCBcXHwk XFwpIiBvcmctY29tbWVudC1zdHJpbmcpIHJhdy12YWx1ZSkpKSAoYXJjaGl2ZWRwIChtZW1iZXIg b3JnLWFyY2hpdmUtdGFnIHRhZ3MpKSAoZm9vdG5vdGUtc2VjdGlvbi1wIChhbmQgb3JnLWZvb3Ru b3RlLXNlY3Rpb24gKHN0cmluZz0gb3JnLWZvb3Rub3RlLXNlY3Rpb24gcmF3LXZhbHVlKSkpIChz dGFuZGFyZC1wcm9wcyAobGV0ICgoZW5kIChzYXZlLWV4Y3Vyc2lvbiAuLi4gLi4uKSkgcGxpc3Qp IChzYXZlLWV4Y3Vyc2lvbiAod2hpbGUgKGFuZCAuLi4gLi4uKSAobGV0IC4uLiAuLi4pKSBwbGlz dCkpKSAodGltZS1wcm9wcyAoc2F2ZS1leGN1cnNpb24gKGZvcndhcmQtbGluZSkgKGlmIChsb29r aW5nLWF0IG9yZy1wbGFubmluZy1vci1jbG9jay1saW5lLXJlKSAocHJvZ24gKGxldCAuLi4gLi4u IHBsaXN0KSkpKSkgKGJlZ2luIChwb2ludCkpIChlbmQgKG1pbiAoc2F2ZS1leGN1cnNpb24gKG9y Zy1lbmQtb2Ytc3VidHJlZSB0IHQpKSBsaW1pdCkpIChwb3MtYWZ0ZXItaGVhZCAocHJvZ24gKGZv cndhcmQtbGluZSkgKHBvaW50KSkpIChjb250ZW50cy1iZWdpbiAoc2F2ZS1leGN1cnNpb24gKHNr aXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iIGVuZCkgKGFuZCAoLz0gKHBvaW50KSBlbmQpIChsaW5l LWJlZ2lubmluZy1wb3NpdGlvbikpKSkgKGNvbnRlbnRzLWVuZCAoYW5kIGNvbnRlbnRzLWJlZ2lu IChwcm9nbiAoZ290by1jaGFyIGVuZCkgKHNraXAtY2hhcnMtYmFja3dhcmQgIiANCVxuIikgKGZv cndhcmQtbGluZSkgKHBvaW50KSkpKSkgKGlmIGNvbW1lbnRlZHAgKHByb2duIChsZXQgKChjYXNl LWZvbGQtc2VhcmNoIG5pbCkpIChzZXRxIHJhdy12YWx1ZSAocmVwbGFjZS1yZWdleHAtaW4tc3Ry aW5nIChjb25jYXQgLi4uICJcXCg/OiBcXHwkXFwpIikgIiIgcmF3LXZhbHVlKSkpKSkgKGlmIGFy Y2hpdmVkcCAocHJvZ24gKHNldHEgdGFncyAoZGVsZXRlIG9yZy1hcmNoaXZlLXRhZyB0YWdzKSkp KSAobGV0ICgoaGVhZGxpbmUgKGxpc3QgKHF1b3RlIGhlYWRsaW5lKSAobmNvbmMgKGxpc3QgOnJh dy12YWx1ZSByYXctdmFsdWUgOmJlZ2luIGJlZ2luIDplbmQgZW5kIDpwcmUtYmxhbmsgLi4uIDpj b250ZW50cy1iZWdpbiBjb250ZW50cy1iZWdpbiA6Y29udGVudHMtZW5kIGNvbnRlbnRzLWVuZCA6 bGV2ZWwgbGV2ZWwgOnByaW9yaXR5IC4uLiA6dGFncyB0YWdzIDp0b2RvLWtleXdvcmQgdG9kbyA6 dG9kby10eXBlIHRvZG8tdHlwZSA6cG9zdC1ibGFuayAuLi4gOmZvb3Rub3RlLXNlY3Rpb24tcCBm b290bm90ZS1zZWN0aW9uLXAgOmFyY2hpdmVkcCBhcmNoaXZlZHAgOmNvbW1lbnRlZHAgY29tbWVu dGVkcCkgdGltZS1wcm9wcyBzdGFuZGFyZC1wcm9wcykpKSkgKGxldCAoKGFsdC10aXRsZSAob3Jn LWVsZW1lbnQtcHJvcGVydHkgOkFMVF9USVRMRSBoZWFkbGluZSkpKSAoaWYgYWx0LXRpdGxlIChw cm9nbiAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGhlYWRsaW5lIDphbHQtdGl0bGUgKGlmIHJh dy1zZWNvbmRhcnktcCBhbHQtdGl0bGUgLi4uKSkpKSkgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0 eSBoZWFkbGluZSA6dGl0bGUgKGlmIHJhdy1zZWNvbmRhcnktcCByYXctdmFsdWUgKG9yZy1lbGVt ZW50LXBhcnNlLXNlY29uZGFyeS1zdHJpbmcgcmF3LXZhbHVlIChvcmctZWxlbWVudC1yZXN0cmlj dGlvbiAocXVvdGUgaGVhZGxpbmUpKSBoZWFkbGluZSkpKSkpKQogIG9yZy1lbGVtZW50LWhlYWRs aW5lLXBhcnNlcigyNTc3MDYgdCkKICAoY29uZCAoKGVxIHNwZWNpYWwgKHF1b3RlIGl0ZW0pKSAo b3JnLWVsZW1lbnQtaXRlbS1wYXJzZXIgbGltaXQgc3RydWN0dXJlIHJhdy1zZWNvbmRhcnktcCkp ICgoZXEgc3BlY2lhbCAocXVvdGUgdGFibGUtcm93KSkgKG9yZy1lbGVtZW50LXRhYmxlLXJvdy1w YXJzZXIgbGltaXQpKSAoKGVxIHNwZWNpYWwgKHF1b3RlIG5vZGUtcHJvcGVydHkpKSAob3JnLWVs ZW1lbnQtbm9kZS1wcm9wZXJ0eS1wYXJzZXIgbGltaXQpKSAoKGxldCogKChvcmctY2FsbGVkLXdp dGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVk LW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9y Zy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChv cmctYXQtaGVhZGluZy1wKSkgKG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNlciBsaW1pdCByYXct c2Vjb25kYXJ5LXApKSAoKGVxIHNwZWNpYWwgKHF1b3RlIHNlY3Rpb24pKSAob3JnLWVsZW1lbnQt c2VjdGlvbi1wYXJzZXIgbGltaXQpKSAoKGVxIHNwZWNpYWwgKHF1b3RlIGZpcnN0LXNlY3Rpb24p KSAob3JnLWVsZW1lbnQtc2VjdGlvbi1wYXJzZXIgKG9yIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAo KG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIC4u LikgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4 cC1ib2wgLi4uKSkgKG91dGxpbmUtbmV4dC1oZWFkaW5nKSkpIGxpbWl0KSkpICgobm90IChib2xw KSkgKG9yZy1lbGVtZW50LXBhcmFncmFwaC1wYXJzZXIgbGltaXQgKGxpc3QgKHBvaW50KSkpKSAo KGxvb2tpbmctYXQgb3JnLXBsYW5uaW5nLW9yLWNsb2NrLWxpbmUtcmUpIChpZiAoZXF1YWwgKG1h dGNoLXN0cmluZyAxKSBvcmctY2xvY2stc3RyaW5nKSAob3JnLWVsZW1lbnQtY2xvY2stcGFyc2Vy IGxpbWl0KSAob3JnLWVsZW1lbnQtcGxhbm5pbmctcGFyc2VyIGxpbWl0KSkpICgob3JnLWF0LWhl YWRpbmctcCkgKG9yZy1lbGVtZW50LWlubGluZXRhc2stcGFyc2VyIGxpbWl0IHJhdy1zZWNvbmRh cnktcCkpICh0IChsZXQgKChhZmZpbGlhdGVkIChvcmctZWxlbWVudC0tY29sbGVjdC1hZmZpbGlh dGVkLWtleXdvcmRzIGxpbWl0KSkpIChjb25kICgoYW5kIChjZHIgYWZmaWxpYXRlZCkgKD49IChw b2ludCkgbGltaXQpKSAoZ290by1jaGFyIChjYXIgYWZmaWxpYXRlZCkpIChvcmctZWxlbWVudC1r ZXl3b3JkLXBhcnNlciBsaW1pdCBuaWwpKSAoKGxvb2tpbmctYXQgIlsgICAgIF0qXFxcXGJlZ2lu e1tBLVphLXowLTkqXSt9XFwoXFxbLio/XFxdXFx8ey4qP31cXCkqWyAgICAgXSokIikgKG9yZy1l bGVtZW50LWxhdGV4LWVudmlyb25tZW50LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29r aW5nLWF0IG9yZy1kcmF3ZXItcmVnZXhwKSAoaWYgKGVxdWFsIChtYXRjaC1zdHJpbmcgMSkgIlBS T1BFUlRJRVMiKSAob3JnLWVsZW1lbnQtcHJvcGVydHktZHJhd2VyLXBhcnNlciBsaW1pdCBhZmZp bGlhdGVkKSAob3JnLWVsZW1lbnQtZHJhd2VyLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkpICgo bG9va2luZy1hdCAiWyAgIF0qOlxcKCBcXHwkXFwpIikgKG9yZy1lbGVtZW50LWZpeGVkLXdpZHRo LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJbICAgICBdKiMiKSAoZ290 by1jaGFyIChtYXRjaC1lbmQgMCkpIChjb25kICgobG9va2luZy1hdCAiXFwoPzogXFx8JFxcKSIp IChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWNvbW1lbnQtcGFyc2VyIGxpbWl0IGFm ZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlxcK0JFR0lOX1xcKFxcUy0rXFwpIikgKGJlZ2lubmlu Zy1vZi1saW5lKSAobGV0IC4uLiAuLi4pKSAoKGxvb2tpbmctYXQgIlxcK0NBTEw6IikgKGJlZ2lu bmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQtYmFiZWwtY2FsbC1wYXJzZXIgbGltaXQgYWZmaWxp YXRlZCkpICgobG9va2luZy1hdCAiXFwrQkVHSU46PyAiKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChv cmctZWxlbWVudC1keW5hbWljLWJsb2NrLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29r aW5nLWF0ICJcXCtcXFMtKzoiKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1rZXl3 b3JkLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKHQgKGJlZ2lubmluZy1vZi1saW5lKSAob3Jn LWVsZW1lbnQtcGFyYWdyYXBoLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkpKSAoKGxvb2tpbmct YXQgb3JnLWZvb3Rub3RlLWRlZmluaXRpb24tcmUpIChvcmctZWxlbWVudC1mb290bm90ZS1kZWZp bml0aW9uLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJbICAgXSotXFx7 NSxcXH1bICAgIF0qJCIpIChvcmctZWxlbWVudC1ob3Jpem9udGFsLXJ1bGUtcGFyc2VyIGxpbWl0 IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIiUlKCIpIChvcmctZWxlbWVudC1kaWFyeS1zZXhw LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChvcmctYXQtdGFibGUtcCB0KSAob3JnLWVsZW1l bnQtdGFibGUtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgKG9yZy1pdGVt LXJlKSkgKG9yZy1lbGVtZW50LXBsYWluLWxpc3QtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQgKG9y IHN0cnVjdHVyZSAob3JnLWVsZW1lbnQtLWxpc3Qtc3RydWN0IGxpbWl0KSkpKSAodCAob3JnLWVs ZW1lbnQtcGFyYWdyYXBoLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkpKSkpCiAgKGxldCAoKGNh c2UtZm9sZC1zZWFyY2ggdCkgKHJhdy1zZWNvbmRhcnktcCAoYW5kIGdyYW51bGFyaXR5IChub3Qg KGVxIGdyYW51bGFyaXR5IChxdW90ZSBvYmplY3QpKSkpKSkgKGNvbmQgKChlcSBzcGVjaWFsIChx dW90ZSBpdGVtKSkgKG9yZy1lbGVtZW50LWl0ZW0tcGFyc2VyIGxpbWl0IHN0cnVjdHVyZSByYXct c2Vjb25kYXJ5LXApKSAoKGVxIHNwZWNpYWwgKHF1b3RlIHRhYmxlLXJvdykpIChvcmctZWxlbWVu dC10YWJsZS1yb3ctcGFyc2VyIGxpbWl0KSkgKChlcSBzcGVjaWFsIChxdW90ZSBub2RlLXByb3Bl cnR5KSkgKG9yZy1lbGVtZW50LW5vZGUtcHJvcGVydHktcGFyc2VyIGxpbWl0KSkgKChsZXQqICgo b3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9y Zy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGlu ZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5l LXJlZ2V4cCkpKSAob3JnLWF0LWhlYWRpbmctcCkpIChvcmctZWxlbWVudC1oZWFkbGluZS1wYXJz ZXIgbGltaXQgcmF3LXNlY29uZGFyeS1wKSkgKChlcSBzcGVjaWFsIChxdW90ZSBzZWN0aW9uKSkg KG9yZy1lbGVtZW50LXNlY3Rpb24tcGFyc2VyIGxpbWl0KSkgKChlcSBzcGVjaWFsIChxdW90ZSBm aXJzdC1zZWN0aW9uKSkgKG9yZy1lbGVtZW50LXNlY3Rpb24tcGFyc2VyIChvciAoc2F2ZS1leGN1 cnNpb24gKGxldCogKC4uLiAuLi4gLi4uIC4uLikgKG91dGxpbmUtbmV4dC1oZWFkaW5nKSkpIGxp bWl0KSkpICgobm90IChib2xwKSkgKG9yZy1lbGVtZW50LXBhcmFncmFwaC1wYXJzZXIgbGltaXQg KGxpc3QgKHBvaW50KSkpKSAoKGxvb2tpbmctYXQgb3JnLXBsYW5uaW5nLW9yLWNsb2NrLWxpbmUt cmUpIChpZiAoZXF1YWwgKG1hdGNoLXN0cmluZyAxKSBvcmctY2xvY2stc3RyaW5nKSAob3JnLWVs ZW1lbnQtY2xvY2stcGFyc2VyIGxpbWl0KSAob3JnLWVsZW1lbnQtcGxhbm5pbmctcGFyc2VyIGxp bWl0KSkpICgob3JnLWF0LWhlYWRpbmctcCkgKG9yZy1lbGVtZW50LWlubGluZXRhc2stcGFyc2Vy IGxpbWl0IHJhdy1zZWNvbmRhcnktcCkpICh0IChsZXQgKChhZmZpbGlhdGVkIChvcmctZWxlbWVu dC0tY29sbGVjdC1hZmZpbGlhdGVkLWtleXdvcmRzIGxpbWl0KSkpIChjb25kICgoYW5kIChjZHIg YWZmaWxpYXRlZCkgKD49IC4uLiBsaW1pdCkpIChnb3RvLWNoYXIgKGNhciBhZmZpbGlhdGVkKSkg KG9yZy1lbGVtZW50LWtleXdvcmQtcGFyc2VyIGxpbWl0IG5pbCkpICgobG9va2luZy1hdCAiWyAg ICAgICAgXSpcXFxcYmVnaW57W0EtWmEtejAtOSpdK31cXChcXFsuKj9cXF1cXHx7Lio/fVxcKSpb ICAgICBdKiQiKSAob3JnLWVsZW1lbnQtbGF0ZXgtZW52aXJvbm1lbnQtcGFyc2VyIGxpbWl0IGFm ZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgb3JnLWRyYXdlci1yZWdleHApIChpZiAoZXF1YWwgLi4u ICJQUk9QRVJUSUVTIikgKG9yZy1lbGVtZW50LXByb3BlcnR5LWRyYXdlci1wYXJzZXIgbGltaXQg YWZmaWxpYXRlZCkgKG9yZy1lbGVtZW50LWRyYXdlci1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkp KSAoKGxvb2tpbmctYXQgIlsgICAgICAgIF0qOlxcKCBcXHwkXFwpIikgKG9yZy1lbGVtZW50LWZp eGVkLXdpZHRoLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJbICAgICBd KiMiKSAoZ290by1jaGFyIChtYXRjaC1lbmQgMCkpIChjb25kICguLi4gLi4uIC4uLikgKC4uLiAu Li4gLi4uKSAoLi4uIC4uLiAuLi4pICguLi4gLi4uIC4uLikgKC4uLiAuLi4gLi4uKSAodCAuLi4g Li4uKSkpICgobG9va2luZy1hdCBvcmctZm9vdG5vdGUtZGVmaW5pdGlvbi1yZSkgKG9yZy1lbGVt ZW50LWZvb3Rub3RlLWRlZmluaXRpb24tcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tp bmctYXQgIlsgICBdKi1cXHs1LFxcfVsgICAgXSokIikgKG9yZy1lbGVtZW50LWhvcml6b250YWwt cnVsZS1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiJSUoIikgKG9yZy1l bGVtZW50LWRpYXJ5LXNleHAtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKG9yZy1hdC10YWJs ZS1wIHQpIChvcmctZWxlbWVudC10YWJsZS1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9v a2luZy1hdCAob3JnLWl0ZW0tcmUpKSAob3JnLWVsZW1lbnQtcGxhaW4tbGlzdC1wYXJzZXIgbGlt aXQgYWZmaWxpYXRlZCAob3Igc3RydWN0dXJlIC4uLikpKSAodCAob3JnLWVsZW1lbnQtcGFyYWdy YXBoLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkpKSkpKQogIChzYXZlLWV4Y3Vyc2lvbiAobGV0 ICgoY2FzZS1mb2xkLXNlYXJjaCB0KSAocmF3LXNlY29uZGFyeS1wIChhbmQgZ3JhbnVsYXJpdHkg KG5vdCAoZXEgZ3JhbnVsYXJpdHkgKHF1b3RlIG9iamVjdCkpKSkpKSAoY29uZCAoKGVxIHNwZWNp YWwgKHF1b3RlIGl0ZW0pKSAob3JnLWVsZW1lbnQtaXRlbS1wYXJzZXIgbGltaXQgc3RydWN0dXJl IHJhdy1zZWNvbmRhcnktcCkpICgoZXEgc3BlY2lhbCAocXVvdGUgdGFibGUtcm93KSkgKG9yZy1l bGVtZW50LXRhYmxlLXJvdy1wYXJzZXIgbGltaXQpKSAoKGVxIHNwZWNpYWwgKHF1b3RlIG5vZGUt cHJvcGVydHkpKSAob3JnLWVsZW1lbnQtbm9kZS1wcm9wZXJ0eS1wYXJzZXIgbGltaXQpKSAoKGxl dCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4 cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1v dXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91 dGxpbmUtcmVnZXhwKSkpIChvcmctYXQtaGVhZGluZy1wKSkgKG9yZy1lbGVtZW50LWhlYWRsaW5l LXBhcnNlciBsaW1pdCByYXctc2Vjb25kYXJ5LXApKSAoKGVxIHNwZWNpYWwgKHF1b3RlIHNlY3Rp b24pKSAob3JnLWVsZW1lbnQtc2VjdGlvbi1wYXJzZXIgbGltaXQpKSAoKGVxIHNwZWNpYWwgKHF1 b3RlIGZpcnN0LXNlY3Rpb24pKSAob3JnLWVsZW1lbnQtc2VjdGlvbi1wYXJzZXIgKG9yIChzYXZl LWV4Y3Vyc2lvbiAobGV0KiAuLi4gLi4uKSkgbGltaXQpKSkgKChub3QgKGJvbHApKSAob3JnLWVs ZW1lbnQtcGFyYWdyYXBoLXBhcnNlciBsaW1pdCAobGlzdCAocG9pbnQpKSkpICgobG9va2luZy1h dCBvcmctcGxhbm5pbmctb3ItY2xvY2stbGluZS1yZSkgKGlmIChlcXVhbCAobWF0Y2gtc3RyaW5n IDEpIG9yZy1jbG9jay1zdHJpbmcpIChvcmctZWxlbWVudC1jbG9jay1wYXJzZXIgbGltaXQpIChv cmctZWxlbWVudC1wbGFubmluZy1wYXJzZXIgbGltaXQpKSkgKChvcmctYXQtaGVhZGluZy1wKSAo b3JnLWVsZW1lbnQtaW5saW5ldGFzay1wYXJzZXIgbGltaXQgcmF3LXNlY29uZGFyeS1wKSkgKHQg KGxldCAoKGFmZmlsaWF0ZWQgKG9yZy1lbGVtZW50LS1jb2xsZWN0LWFmZmlsaWF0ZWQta2V5d29y ZHMgbGltaXQpKSkgKGNvbmQgKChhbmQgLi4uIC4uLikgKGdvdG8tY2hhciAuLi4pIChvcmctZWxl bWVudC1rZXl3b3JkLXBhcnNlciBsaW1pdCBuaWwpKSAoKGxvb2tpbmctYXQgIlsgICAgICBdKlxc XFxiZWdpbntbQS1aYS16MC05Kl0rfVxcKFxcWy4qP1xcXVxcfHsuKj99XFwpKlsgICAgIF0qJCIp IChvcmctZWxlbWVudC1sYXRleC1lbnZpcm9ubWVudC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkp ICgobG9va2luZy1hdCBvcmctZHJhd2VyLXJlZ2V4cCkgKGlmIC4uLiAuLi4gLi4uKSkgKChsb29r aW5nLWF0ICJbICAgICAgICBdKjpcXCggXFx8JFxcKSIpIChvcmctZWxlbWVudC1maXhlZC13aWR0 aC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiWyAgICAgXSojIikgKGdv dG8tY2hhciAuLi4pIChjb25kIC4uLiAuLi4gLi4uIC4uLiAuLi4gLi4uKSkgKChsb29raW5nLWF0 IG9yZy1mb290bm90ZS1kZWZpbml0aW9uLXJlKSAob3JnLWVsZW1lbnQtZm9vdG5vdGUtZGVmaW5p dGlvbi1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiWyAgICAgICBdKi1c XHs1LFxcfVsgICAgXSokIikgKG9yZy1lbGVtZW50LWhvcml6b250YWwtcnVsZS1wYXJzZXIgbGlt aXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiJSUoIikgKG9yZy1lbGVtZW50LWRpYXJ5LXNl eHAtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKG9yZy1hdC10YWJsZS1wIHQpIChvcmctZWxl bWVudC10YWJsZS1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAuLi4pIChv cmctZWxlbWVudC1wbGFpbi1saXN0LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkIC4uLikpICh0IChv cmctZWxlbWVudC1wYXJhZ3JhcGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSkpKSkpKQogIG9y Zy1lbGVtZW50LS1jdXJyZW50LWVsZW1lbnQoMjU3NzA2IGVsZW1lbnQgbmlsIG5pbCkKICAoc2V0 cSBlbGVtZW50IChvcmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50IGVuZCAocXVvdGUgZWxlbWVu dCkgc3BlY2lhbC1mbGFnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6c3RydWN0dXJlIHBhcmVudCkp KQogIChpZiBlbGVtZW50IG5pbCAoc2V0cSBlbGVtZW50IChvcmctZWxlbWVudC0tY3VycmVudC1l bGVtZW50IGVuZCAocXVvdGUgZWxlbWVudCkgc3BlY2lhbC1mbGFnIChvcmctZWxlbWVudC1wcm9w ZXJ0eSA6c3RydWN0dXJlIHBhcmVudCkpKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1l bnQgOnBhcmVudCBwYXJlbnQpIChvcmctZWxlbWVudC0tY2FjaGUtcHV0IGVsZW1lbnQpKQogICh3 aGlsZSB0IChpZiBzeW5jcCAocHJvZ24gKGNvbmQgKCg9IChwb2ludCkgcG9zKSAodGhyb3cgKHF1 b3RlIGV4aXQpIHBhcmVudCkpICgob3JnLWVsZW1lbnQtLWNhY2hlLWludGVycnVwdC1wIHRpbWUt bGltaXQpICh0aHJvdyAocXVvdGUgaW50ZXJydXB0KSBuaWwpKSkpKSAoaWYgZWxlbWVudCBuaWwg KHNldHEgZWxlbWVudCAob3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVudCBlbmQgKHF1b3RlIGVs ZW1lbnQpIHNwZWNpYWwtZmxhZyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnN0cnVjdHVyZSBwYXJl bnQpKSkgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBlbGVtZW50IDpwYXJlbnQgcGFyZW50KSAo b3JnLWVsZW1lbnQtLWNhY2hlLXB1dCBlbGVtZW50KSkgKGxldCAoKGVsZW0tZW5kIChvcmctZWxl bWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQpKSAodHlwZSAob3JnLWVsZW1lbnQtdHlwZSBlbGVt ZW50KSkpIChjb25kICgoYW5kICg8PSBlbGVtLWVuZCBwb3MpICgvPSAocG9pbnQtbWF4KSBlbGVt LWVuZCkpIChnb3RvLWNoYXIgZWxlbS1lbmQpKSAoKG5vdCAobWVtcSB0eXBlIG9yZy1lbGVtZW50 LWdyZWF0ZXItZWxlbWVudHMpKSAodGhyb3cgKHF1b3RlIGV4aXQpIGVsZW1lbnQpKSAoKGxldCAo KGNiZWcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpjb250ZW50cy1iZWdpbiBlbGVtZW50KSkgKGNl bmQgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpjb250ZW50cy1lbmQgZWxlbWVudCkpKSAoaWYgKG9y IHN5bmNwIChhbmQgY2JlZyBjZW5kIC4uLiAuLi4pKSAocHJvZ24gKGdvdG8tY2hhciAuLi4pIChz ZXRxIG5leHQgbmlsIHNwZWNpYWwtZmxhZyAuLi4gcGFyZW50IGVsZW1lbnQgZW5kIGNlbmQpKSkp KSAodCAodGhyb3cgKHF1b3RlIGV4aXQpIGVsZW1lbnQpKSkpIChzZXRxIGVsZW1lbnQgbmlsKSkK ICAobGV0ICgoZW5kIChvciAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSAoc2F2 ZS1leGN1cnNpb24gKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9y Zy1vdXRsaW5lLXJlZ2V4cCAuLi4pIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHAp IChvcmctb3V0bGluZS1yZWdleHAtYm9sIC4uLikpIChvdXRsaW5lLW5leHQtaGVhZGluZykpIChw b2ludCkpKSkgKHBhcmVudCBlbGVtZW50KSBzcGVjaWFsLWZsYWcpICh3aGlsZSB0IChpZiBzeW5j cCAocHJvZ24gKGNvbmQgKCg9IChwb2ludCkgcG9zKSAodGhyb3cgKHF1b3RlIGV4aXQpIHBhcmVu dCkpICgob3JnLWVsZW1lbnQtLWNhY2hlLWludGVycnVwdC1wIHRpbWUtbGltaXQpICh0aHJvdyAo cXVvdGUgaW50ZXJydXB0KSBuaWwpKSkpKSAoaWYgZWxlbWVudCBuaWwgKHNldHEgZWxlbWVudCAo b3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVudCBlbmQgKHF1b3RlIGVsZW1lbnQpIHNwZWNpYWwt ZmxhZyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnN0cnVjdHVyZSBwYXJlbnQpKSkgKG9yZy1lbGVt ZW50LXB1dC1wcm9wZXJ0eSBlbGVtZW50IDpwYXJlbnQgcGFyZW50KSAob3JnLWVsZW1lbnQtLWNh Y2hlLXB1dCBlbGVtZW50KSkgKGxldCAoKGVsZW0tZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6 ZW5kIGVsZW1lbnQpKSAodHlwZSAob3JnLWVsZW1lbnQtdHlwZSBlbGVtZW50KSkpIChjb25kICgo YW5kICg8PSBlbGVtLWVuZCBwb3MpICgvPSAocG9pbnQtbWF4KSBlbGVtLWVuZCkpIChnb3RvLWNo YXIgZWxlbS1lbmQpKSAoKG5vdCAobWVtcSB0eXBlIG9yZy1lbGVtZW50LWdyZWF0ZXItZWxlbWVu dHMpKSAodGhyb3cgKHF1b3RlIGV4aXQpIGVsZW1lbnQpKSAoKGxldCAoKGNiZWcgLi4uKSAoY2Vu ZCAuLi4pKSAoaWYgKG9yIHN5bmNwIC4uLikgKHByb2duIC4uLiAuLi4pKSkpICh0ICh0aHJvdyAo cXVvdGUgZXhpdCkgZWxlbWVudCkpKSkgKHNldHEgZWxlbWVudCBuaWwpKSkKICAobGV0KiAoKGNh Y2hlZCAoYW5kIChvcmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChvcmctZWxlbWVudC0tY2Fj aGUtZmluZCBwb3MgbmlsKSkpIChiZWdpbiAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmJlZ2luIGNh Y2hlZCkpIGVsZW1lbnQgbmV4dCkgKGNvbmQgKChub3QgY2FjaGVkKSAoaWYgKGxldCogKChvcmct Y2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdl dC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJl Z2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVn ZXhwKSkpIChvdXRsaW5lLXByZXZpb3VzLWhlYWRpbmcpKSAocHJvZ24gKGZvcndhcmQtbGluZSkp KSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkpICgoPSBw b3MgYmVnaW4pICh0aHJvdyAocXVvdGUgZXhpdCkgKGlmIHN5bmNwIChvcmctZWxlbWVudC1wcm9w ZXJ0eSA6cGFyZW50IGNhY2hlZCkgY2FjaGVkKSkpICgocmUtc2VhcmNoLWJhY2t3YXJkIChsZXQq ICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAg KG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0 bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRs aW5lLXJlZ2V4cCkpKSBvcmctb3V0bGluZS1yZWdleHAtYm9sKSBiZWdpbiB0KSAoZm9yd2FyZC1s aW5lKSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkpICh0 IChsZXQgKCh1cCBjYWNoZWQpIChwb3MgKGlmICg9IC4uLiBwb3MpICgxLSBwb3MpIHBvcykpKSAo Z290by1jaGFyIChvciAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmNvbnRlbnRzLWJlZ2luIGNhY2hl ZCkgYmVnaW4pKSAod2hpbGUgKGxldCAoKGVuZCAuLi4pKSAoYW5kICg8PSBlbmQgcG9zKSAoZ290 by1jaGFyIGVuZCkgKHNldHEgdXAgLi4uKSkpKSAoY29uZCAoKG5vdCB1cCkpICgoZW9icCkgKHNl dHEgZWxlbWVudCB1cCkpICh0IChzZXRxIGVsZW1lbnQgdXAgbmV4dCAocG9pbnQpKSkpKSkpIChs ZXQgKChlbmQgKG9yIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQpIChzYXZlLWV4 Y3Vyc2lvbiAobGV0KiAoLi4uIC4uLiAuLi4gLi4uKSAob3V0bGluZS1uZXh0LWhlYWRpbmcpKSAo cG9pbnQpKSkpIChwYXJlbnQgZWxlbWVudCkgc3BlY2lhbC1mbGFnKSAod2hpbGUgdCAoaWYgc3lu Y3AgKHByb2duIChjb25kICgoPSAuLi4gcG9zKSAodGhyb3cgLi4uIHBhcmVudCkpICgob3JnLWVs ZW1lbnQtLWNhY2hlLWludGVycnVwdC1wIHRpbWUtbGltaXQpICh0aHJvdyAuLi4gbmlsKSkpKSkg KGlmIGVsZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50LS1jdXJyZW50LWVsZW1l bnQgZW5kIChxdW90ZSBlbGVtZW50KSBzcGVjaWFsLWZsYWcgKG9yZy1lbGVtZW50LXByb3BlcnR5 IDpzdHJ1Y3R1cmUgcGFyZW50KSkpIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgZWxlbWVudCA6 cGFyZW50IHBhcmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQgZWxlbWVudCkpIChsZXQgKChl bGVtLWVuZCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSkgKHR5cGUgKG9yZy1l bGVtZW50LXR5cGUgZWxlbWVudCkpKSAoY29uZCAoKGFuZCAoPD0gZWxlbS1lbmQgcG9zKSAoLz0g Li4uIGVsZW0tZW5kKSkgKGdvdG8tY2hhciBlbGVtLWVuZCkpICgobm90IChtZW1xIHR5cGUgb3Jn LWVsZW1lbnQtZ3JlYXRlci1lbGVtZW50cykpICh0aHJvdyAocXVvdGUgZXhpdCkgZWxlbWVudCkp ICgobGV0ICguLi4gLi4uKSAoaWYgLi4uIC4uLikpKSAodCAodGhyb3cgKHF1b3RlIGV4aXQpIGVs ZW1lbnQpKSkpIChzZXRxIGVsZW1lbnQgbmlsKSkpKQogIChzYXZlLXJlc3RyaWN0aW9uICh3aWRl bikgKGdvdG8tY2hhciBwb3MpIChsZXQqICgoY2FjaGVkIChhbmQgKG9yZy1lbGVtZW50LS1jYWNo ZS1hY3RpdmUtcCkgKG9yZy1lbGVtZW50LS1jYWNoZS1maW5kIHBvcyBuaWwpKSkgKGJlZ2luIChv cmctZWxlbWVudC1wcm9wZXJ0eSA6YmVnaW4gY2FjaGVkKSkgZWxlbWVudCBuZXh0KSAoY29uZCAo KG5vdCBjYWNoZWQpIChpZiAobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0 KSAob3JnLW91dGxpbmUtcmVnZXhwIC4uLikgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJl Z2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgLi4uKSkgKG91dGxpbmUtcHJldmlvdXMtaGVh ZGluZykpIChwcm9nbiAoZm9yd2FyZC1saW5lKSkpIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxu IikgKGJlZ2lubmluZy1vZi1saW5lKSkgKCg9IHBvcyBiZWdpbikgKHRocm93IChxdW90ZSBleGl0 KSAoaWYgc3luY3AgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpwYXJlbnQgY2FjaGVkKSBjYWNoZWQp KSkgKChyZS1zZWFyY2gtYmFja3dhcmQgKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1s ZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAuLi4pIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0 bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIC4uLikpIG9yZy1vdXRsaW5lLXJl Z2V4cC1ib2wpIGJlZ2luIHQpIChmb3J3YXJkLWxpbmUpIChza2lwLWNoYXJzLWZvcndhcmQgIiAN CVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkgKHQgKGxldCAoKHVwIGNhY2hlZCkgKHBvcyAoaWYg Li4uIC4uLiBwb3MpKSkgKGdvdG8tY2hhciAob3IgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpjb250 ZW50cy1iZWdpbiBjYWNoZWQpIGJlZ2luKSkgKHdoaWxlIChsZXQgKC4uLikgKGFuZCAuLi4gLi4u IC4uLikpKSAoY29uZCAoKG5vdCB1cCkpICgoZW9icCkgKHNldHEgZWxlbWVudCB1cCkpICh0IChz ZXRxIGVsZW1lbnQgdXAgbmV4dCAuLi4pKSkpKSkgKGxldCAoKGVuZCAob3IgKG9yZy1lbGVtZW50 LXByb3BlcnR5IDplbmQgZWxlbWVudCkgKHNhdmUtZXhjdXJzaW9uIChsZXQqIC4uLiAuLi4pIChw b2ludCkpKSkgKHBhcmVudCBlbGVtZW50KSBzcGVjaWFsLWZsYWcpICh3aGlsZSB0IChpZiBzeW5j cCAocHJvZ24gKGNvbmQgKC4uLiAuLi4pICguLi4gLi4uKSkpKSAoaWYgZWxlbWVudCBuaWwgKHNl dHEgZWxlbWVudCAob3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVudCBlbmQgKHF1b3RlIGVsZW1l bnQpIHNwZWNpYWwtZmxhZyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnN0cnVjdHVyZSBwYXJlbnQp KSkgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBlbGVtZW50IDpwYXJlbnQgcGFyZW50KSAob3Jn LWVsZW1lbnQtLWNhY2hlLXB1dCBlbGVtZW50KSkgKGxldCAoKGVsZW0tZW5kIChvcmctZWxlbWVu dC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQpKSAodHlwZSAob3JnLWVsZW1lbnQtdHlwZSBlbGVtZW50 KSkpIChjb25kICgoYW5kIC4uLiAuLi4pIChnb3RvLWNoYXIgZWxlbS1lbmQpKSAoKG5vdCAuLi4p ICh0aHJvdyAuLi4gZWxlbWVudCkpICgobGV0IC4uLiAuLi4pKSAodCAodGhyb3cgLi4uIGVsZW1l bnQpKSkpIChzZXRxIGVsZW1lbnQgbmlsKSkpKSkKICAoc2F2ZS1leGN1cnNpb24gKHNhdmUtcmVz dHJpY3Rpb24gKHdpZGVuKSAoZ290by1jaGFyIHBvcykgKGxldCogKChjYWNoZWQgKGFuZCAob3Jn LWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAob3JnLWVsZW1lbnQtLWNhY2hlLWZpbmQgcG9zIG5p bCkpKSAoYmVnaW4gKG9yZy1lbGVtZW50LXByb3BlcnR5IDpiZWdpbiBjYWNoZWQpKSBlbGVtZW50 IG5leHQpIChjb25kICgobm90IGNhY2hlZCkgKGlmIChsZXQqICguLi4gLi4uIC4uLiAuLi4pIChv dXRsaW5lLXByZXZpb3VzLWhlYWRpbmcpKSAocHJvZ24gKGZvcndhcmQtbGluZSkpKSAoc2tpcC1j aGFycy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkpICgoPSBwb3MgYmVnaW4p ICh0aHJvdyAocXVvdGUgZXhpdCkgKGlmIHN5bmNwIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGFy ZW50IGNhY2hlZCkgY2FjaGVkKSkpICgocmUtc2VhcmNoLWJhY2t3YXJkIChsZXQqICguLi4gLi4u IC4uLiAuLi4pIG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wpIGJlZ2luIHQpIChmb3J3YXJkLWxpbmUp IChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkgKHQgKGxl dCAoKHVwIGNhY2hlZCkgKHBvcyAuLi4pKSAoZ290by1jaGFyIChvciAuLi4gYmVnaW4pKSAod2hp bGUgKGxldCAuLi4gLi4uKSkgKGNvbmQgKC4uLikgKC4uLiAuLi4pICh0IC4uLikpKSkpIChsZXQg KChlbmQgKG9yIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQpIChzYXZlLWV4Y3Vy c2lvbiAuLi4gLi4uKSkpIChwYXJlbnQgZWxlbWVudCkgc3BlY2lhbC1mbGFnKSAod2hpbGUgdCAo aWYgc3luY3AgKHByb2duIChjb25kIC4uLiAuLi4pKSkgKGlmIGVsZW1lbnQgbmlsIChzZXRxIGVs ZW1lbnQgKG9yZy1lbGVtZW50LS1jdXJyZW50LWVsZW1lbnQgZW5kIC4uLiBzcGVjaWFsLWZsYWcg Li4uKSkgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBlbGVtZW50IDpwYXJlbnQgcGFyZW50KSAo b3JnLWVsZW1lbnQtLWNhY2hlLXB1dCBlbGVtZW50KSkgKGxldCAoKGVsZW0tZW5kIC4uLikgKHR5 cGUgLi4uKSkgKGNvbmQgKC4uLiAuLi4pICguLi4gLi4uKSAoLi4uKSAodCAuLi4pKSkgKHNldHEg ZWxlbWVudCBuaWwpKSkpKSkKICAoY2F0Y2ggKHF1b3RlIGV4aXQpIChzYXZlLWV4Y3Vyc2lvbiAo c2F2ZS1yZXN0cmljdGlvbiAod2lkZW4pIChnb3RvLWNoYXIgcG9zKSAobGV0KiAoKGNhY2hlZCAo YW5kIChvcmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChvcmctZWxlbWVudC0tY2FjaGUtZmlu ZCBwb3MgbmlsKSkpIChiZWdpbiAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmJlZ2luIGNhY2hlZCkp IGVsZW1lbnQgbmV4dCkgKGNvbmQgKChub3QgY2FjaGVkKSAoaWYgKGxldCogLi4uIC4uLikgKHBy b2duIC4uLikpIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5l KSkgKCg9IHBvcyBiZWdpbikgKHRocm93IChxdW90ZSBleGl0KSAoaWYgc3luY3AgLi4uIGNhY2hl ZCkpKSAoKHJlLXNlYXJjaC1iYWNrd2FyZCAobGV0KiAuLi4gb3JnLW91dGxpbmUtcmVnZXhwLWJv bCkgYmVnaW4gdCkgKGZvcndhcmQtbGluZSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAo YmVnaW5uaW5nLW9mLWxpbmUpKSAodCAobGV0ICguLi4gLi4uKSAoZ290by1jaGFyIC4uLikgKHdo aWxlIC4uLikgKGNvbmQgLi4uIC4uLiAuLi4pKSkpIChsZXQgKChlbmQgKG9yIC4uLiAuLi4pKSAo cGFyZW50IGVsZW1lbnQpIHNwZWNpYWwtZmxhZykgKHdoaWxlIHQgKGlmIHN5bmNwIChwcm9nbiAu Li4pKSAoaWYgZWxlbWVudCBuaWwgKHNldHEgZWxlbWVudCAuLi4pIChvcmctZWxlbWVudC1wdXQt cHJvcGVydHkgZWxlbWVudCA6cGFyZW50IHBhcmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQg ZWxlbWVudCkpIChsZXQgKC4uLiAuLi4pIChjb25kIC4uLiAuLi4gLi4uIC4uLikpIChzZXRxIGVs ZW1lbnQgbmlsKSkpKSkpKQogIG9yZy1lbGVtZW50LS1wYXJzZS10bygyNTcyODApCiAgKGNvbmQg KChib2JwKSBuaWwpICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAo b3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0 bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAo Y29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgKG9yZy1hdC1oZWFkaW5nLXApKSAoYmVn aW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIgKHBvaW50LW1heCkg dCkpICh0IChpZiAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAocHJvZ24gKGlmIChub3Qg b3JnLWVsZW1lbnQtLWNhY2hlKSAob3JnLWVsZW1lbnQtY2FjaGUtcmVzZXQpIChvcmctZWxlbWVu dC0tY2FjaGUtc3luYyAoY3VycmVudC1idWZmZXIpIG9yaWdpbikpKSkgKG9yZy1lbGVtZW50LS1w YXJzZS10byBvcmlnaW4pKSkKICAobGV0ICgob3JpZ2luIChwb2ludCkpKSAoZW5kLW9mLWxpbmUp IChza2lwLWNoYXJzLWJhY2t3YXJkICIgDQlcbiIpIChjb25kICgoYm9icCkgbmlsKSAoKGxldCog KChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAo b3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRs aW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxp bmUtcmVnZXhwKSkpIChvcmctYXQtaGVhZGluZy1wKSkgKGJlZ2lubmluZy1vZi1saW5lKSAob3Jn LWVsZW1lbnQtaGVhZGxpbmUtcGFyc2VyIChwb2ludC1tYXgpIHQpKSAodCAoaWYgKG9yZy1lbGVt ZW50LS1jYWNoZS1hY3RpdmUtcCkgKHByb2duIChpZiAobm90IG9yZy1lbGVtZW50LS1jYWNoZSkg KG9yZy1lbGVtZW50LWNhY2hlLXJlc2V0KSAob3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMgKGN1cnJl bnQtYnVmZmVyKSBvcmlnaW4pKSkpIChvcmctZWxlbWVudC0tcGFyc2UtdG8gb3JpZ2luKSkpKQog IChzYXZlLXJlc3RyaWN0aW9uICh3aWRlbikgKGxldCAoKG9yaWdpbiAocG9pbnQpKSkgKGVuZC1v Zi1saW5lKSAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIA0JXG4iKSAoY29uZCAoKGJvYnApIG5pbCkg KChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1y ZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBv cmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9y Zy1vdXRsaW5lLXJlZ2V4cCkpKSAob3JnLWF0LWhlYWRpbmctcCkpIChiZWdpbm5pbmctb2YtbGlu ZSkgKG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNlciAocG9pbnQtbWF4KSB0KSkgKHQgKGlmIChv cmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChwcm9nbiAoaWYgKG5vdCBvcmctZWxlbWVudC0t Y2FjaGUpIChvcmctZWxlbWVudC1jYWNoZS1yZXNldCkgKG9yZy1lbGVtZW50LS1jYWNoZS1zeW5j IC4uLiBvcmlnaW4pKSkpIChvcmctZWxlbWVudC0tcGFyc2UtdG8gb3JpZ2luKSkpKSkKICAoc2F2 ZS1leGN1cnNpb24gKHNhdmUtcmVzdHJpY3Rpb24gKHdpZGVuKSAobGV0ICgob3JpZ2luIChwb2lu dCkpKSAoZW5kLW9mLWxpbmUpIChza2lwLWNoYXJzLWJhY2t3YXJkICIgDQlcbiIpIChjb25kICgo Ym9icCkgbmlsKSAoKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9y Zy1vdXRsaW5lLXJlZ2V4cCAuLi4pIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHAp IChvcmctb3V0bGluZS1yZWdleHAtYm9sIC4uLikpIChvcmctYXQtaGVhZGluZy1wKSkgKGJlZ2lu bmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFyc2VyIChwb2ludC1tYXgpIHQp KSAodCAoaWYgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKHByb2duIChpZiAuLi4gLi4u IC4uLikpKSAob3JnLWVsZW1lbnQtLXBhcnNlLXRvIG9yaWdpbikpKSkpKQogIG9yZy1lbGVtZW50 LWF0LXBvaW50KCkKICAobGV0ICgoZHJhd2VyIChvcmctZWxlbWVudC1hdC1wb2ludCkpKSAoaWYg KGFuZCAoZXEgKG9yZy1lbGVtZW50LXR5cGUgZHJhd2VyKSAocXVvdGUgcHJvcGVydHktZHJhd2Vy KSkgKGxldCAoKHAgZHJhd2VyKSkgKHdoaWxlIChhbmQgKHNldHEgcCAob3JnLWVsZW1lbnQtcHJv cGVydHkgOnBhcmVudCBwKSkgKG5vdCAoZXEgLi4uIC4uLikpKSkgKG5vdCBwKSkpIChwcm9nbiAo bGV0ICgoZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6Y29udGVudHMtZW5kIGRyYXdlcikpKSAo aWYgZW5kIChwcm9nbiAoZm9yd2FyZC1saW5lKSAod2hpbGUgKDwgLi4uIGVuZCkgKGlmIC4uLiAu Li4pIChmb3J3YXJkLWxpbmUpKSkpKSkpKQogICh3aGlsZSAoYW5kIChudWxsIHBsaXN0KSAocmUt c2VhcmNoLWZvcndhcmQgb3JnLXByb3BlcnR5LXN0YXJ0LXJlIGVuZCB0KSkgKGxldCAoKGRyYXdl ciAob3JnLWVsZW1lbnQtYXQtcG9pbnQpKSkgKGlmIChhbmQgKGVxIChvcmctZWxlbWVudC10eXBl IGRyYXdlcikgKHF1b3RlIHByb3BlcnR5LWRyYXdlcikpIChsZXQgKChwIGRyYXdlcikpICh3aGls ZSAoYW5kIChzZXRxIHAgLi4uKSAobm90IC4uLikpKSAobm90IHApKSkgKHByb2duIChsZXQgKChl bmQgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpjb250ZW50cy1lbmQgZHJhd2VyKSkpIChpZiBlbmQg KHByb2duIChmb3J3YXJkLWxpbmUpICh3aGlsZSAuLi4gLi4uIC4uLikpKSkpKSkpCiAgKHNhdmUt ZXhjdXJzaW9uICh3aGlsZSAoYW5kIChudWxsIHBsaXN0KSAocmUtc2VhcmNoLWZvcndhcmQgb3Jn LXByb3BlcnR5LXN0YXJ0LXJlIGVuZCB0KSkgKGxldCAoKGRyYXdlciAob3JnLWVsZW1lbnQtYXQt cG9pbnQpKSkgKGlmIChhbmQgKGVxIChvcmctZWxlbWVudC10eXBlIGRyYXdlcikgKHF1b3RlIHBy b3BlcnR5LWRyYXdlcikpIChsZXQgKChwIGRyYXdlcikpICh3aGlsZSAoYW5kIC4uLiAuLi4pKSAo bm90IHApKSkgKHByb2duIChsZXQgKChlbmQgLi4uKSkgKGlmIGVuZCAocHJvZ24gLi4uIC4uLikp KSkpKSkgcGxpc3QpCiAgKGxldCAoKGVuZCAoc2F2ZS1leGN1cnNpb24gKGxldCogKChvcmctY2Fs bGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1s aW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4 cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhw KSkpIChvdXRsaW5lLW5leHQtaGVhZGluZykpIChwb2ludCkpKSBwbGlzdCkgKHNhdmUtZXhjdXJz aW9uICh3aGlsZSAoYW5kIChudWxsIHBsaXN0KSAocmUtc2VhcmNoLWZvcndhcmQgb3JnLXByb3Bl cnR5LXN0YXJ0LXJlIGVuZCB0KSkgKGxldCAoKGRyYXdlciAob3JnLWVsZW1lbnQtYXQtcG9pbnQp KSkgKGlmIChhbmQgKGVxIChvcmctZWxlbWVudC10eXBlIGRyYXdlcikgKHF1b3RlIHByb3BlcnR5 LWRyYXdlcikpIChsZXQgKC4uLikgKHdoaWxlIC4uLikgKG5vdCBwKSkpIChwcm9nbiAobGV0ICgu Li4pIChpZiBlbmQgLi4uKSkpKSkpIHBsaXN0KSkKICAobGV0KiAoKGNvbXBvbmVudHMgKG9yZy1o ZWFkaW5nLWNvbXBvbmVudHMpKSAobGV2ZWwgKG50aCAxIGNvbXBvbmVudHMpKSAodG9kbyAobnRo IDIgY29tcG9uZW50cykpICh0b2RvLXR5cGUgKGFuZCB0b2RvIChpZiAobWVtYmVyIHRvZG8gb3Jn LWRvbmUta2V5d29yZHMpIChxdW90ZSBkb25lKSAocXVvdGUgdG9kbykpKSkgKHRhZ3MgKGxldCAo KHJhdy10YWdzIChudGggNSBjb21wb25lbnRzKSkpIChhbmQgcmF3LXRhZ3MgKG9yZy1zcGxpdC1z dHJpbmcgcmF3LXRhZ3MgIjoiKSkpKSAocmF3LXZhbHVlIChvciAobnRoIDQgY29tcG9uZW50cykg IiIpKSAoY29tbWVudGVkcCAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCBuaWwpKSAoc3RyaW5nLW1h dGNoIChmb3JtYXQgIl4lc1xcKCBcXHwkXFwpIiBvcmctY29tbWVudC1zdHJpbmcpIHJhdy12YWx1 ZSkpKSAoYXJjaGl2ZWRwIChtZW1iZXIgb3JnLWFyY2hpdmUtdGFnIHRhZ3MpKSAoZm9vdG5vdGUt c2VjdGlvbi1wIChhbmQgb3JnLWZvb3Rub3RlLXNlY3Rpb24gKHN0cmluZz0gb3JnLWZvb3Rub3Rl LXNlY3Rpb24gcmF3LXZhbHVlKSkpIChzdGFuZGFyZC1wcm9wcyAobGV0ICgoZW5kIChzYXZlLWV4 Y3Vyc2lvbiAobGV0KiAuLi4gLi4uKSAocG9pbnQpKSkgcGxpc3QpIChzYXZlLWV4Y3Vyc2lvbiAo d2hpbGUgKGFuZCAobnVsbCBwbGlzdCkgKHJlLXNlYXJjaC1mb3J3YXJkIG9yZy1wcm9wZXJ0eS1z dGFydC1yZSBlbmQgdCkpIChsZXQgKC4uLikgKGlmIC4uLiAuLi4pKSkgcGxpc3QpKSkgKHRpbWUt cHJvcHMgKHNhdmUtZXhjdXJzaW9uIChmb3J3YXJkLWxpbmUpIChpZiAobG9va2luZy1hdCBvcmct cGxhbm5pbmctb3ItY2xvY2stbGluZS1yZSkgKHByb2duIChsZXQgKC4uLiBwbGlzdCkgKHdoaWxl IC4uLiAuLi4gLi4uIC4uLikgcGxpc3QpKSkpKSAoYmVnaW4gKHBvaW50KSkgKGVuZCAobWluIChz YXZlLWV4Y3Vyc2lvbiAob3JnLWVuZC1vZi1zdWJ0cmVlIHQgdCkpIGxpbWl0KSkgKHBvcy1hZnRl ci1oZWFkIChwcm9nbiAoZm9yd2FyZC1saW5lKSAocG9pbnQpKSkgKGNvbnRlbnRzLWJlZ2luIChz YXZlLWV4Y3Vyc2lvbiAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIgZW5kKSAoYW5kICgvPSAo cG9pbnQpIGVuZCkgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkpKSAoY29udGVudHMtZW5kIChh bmQgY29udGVudHMtYmVnaW4gKHByb2duIChnb3RvLWNoYXIgZW5kKSAoc2tpcC1jaGFycy1iYWNr d2FyZCAiIA0JXG4iKSAoZm9yd2FyZC1saW5lKSAocG9pbnQpKSkpKSAoaWYgY29tbWVudGVkcCAo cHJvZ24gKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggbmlsKSkgKHNldHEgcmF3LXZhbHVlIChyZXBs YWNlLXJlZ2V4cC1pbi1zdHJpbmcgKGNvbmNhdCAocmVnZXhwLXF1b3RlIG9yZy1jb21tZW50LXN0 cmluZykgIlxcKD86IFxcfCRcXCkiKSAiIiByYXctdmFsdWUpKSkpKSAoaWYgYXJjaGl2ZWRwIChw cm9nbiAoc2V0cSB0YWdzIChkZWxldGUgb3JnLWFyY2hpdmUtdGFnIHRhZ3MpKSkpIChsZXQgKCho ZWFkbGluZSAobGlzdCAocXVvdGUgaGVhZGxpbmUpIChuY29uYyAobGlzdCA6cmF3LXZhbHVlIHJh dy12YWx1ZSA6YmVnaW4gYmVnaW4gOmVuZCBlbmQgOnByZS1ibGFuayAoaWYgLi4uIDAgLi4uKSA6 Y29udGVudHMtYmVnaW4gY29udGVudHMtYmVnaW4gOmNvbnRlbnRzLWVuZCBjb250ZW50cy1lbmQg OmxldmVsIGxldmVsIDpwcmlvcml0eSAobnRoIDMgY29tcG9uZW50cykgOnRhZ3MgdGFncyA6dG9k by1rZXl3b3JkIHRvZG8gOnRvZG8tdHlwZSB0b2RvLXR5cGUgOnBvc3QtYmxhbmsgKGNvdW50LWxp bmVzIC4uLiBlbmQpIDpmb290bm90ZS1zZWN0aW9uLXAgZm9vdG5vdGUtc2VjdGlvbi1wIDphcmNo aXZlZHAgYXJjaGl2ZWRwIDpjb21tZW50ZWRwIGNvbW1lbnRlZHApIHRpbWUtcHJvcHMgc3RhbmRh cmQtcHJvcHMpKSkpIChsZXQgKChhbHQtdGl0bGUgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpBTFRf VElUTEUgaGVhZGxpbmUpKSkgKGlmIGFsdC10aXRsZSAocHJvZ24gKG9yZy1lbGVtZW50LXB1dC1w cm9wZXJ0eSBoZWFkbGluZSA6YWx0LXRpdGxlIChpZiByYXctc2Vjb25kYXJ5LXAgYWx0LXRpdGxl IChvcmctZWxlbWVudC1wYXJzZS1zZWNvbmRhcnktc3RyaW5nIGFsdC10aXRsZSAuLi4gaGVhZGxp bmUpKSkpKSkgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBoZWFkbGluZSA6dGl0bGUgKGlmIHJh dy1zZWNvbmRhcnktcCByYXctdmFsdWUgKG9yZy1lbGVtZW50LXBhcnNlLXNlY29uZGFyeS1zdHJp bmcgcmF3LXZhbHVlIChvcmctZWxlbWVudC1yZXN0cmljdGlvbiAocXVvdGUgaGVhZGxpbmUpKSBo ZWFkbGluZSkpKSkpCiAgKHNhdmUtZXhjdXJzaW9uIChsZXQqICgoY29tcG9uZW50cyAob3JnLWhl YWRpbmctY29tcG9uZW50cykpIChsZXZlbCAobnRoIDEgY29tcG9uZW50cykpICh0b2RvIChudGgg MiBjb21wb25lbnRzKSkgKHRvZG8tdHlwZSAoYW5kIHRvZG8gKGlmIChtZW1iZXIgdG9kbyBvcmct ZG9uZS1rZXl3b3JkcykgKHF1b3RlIGRvbmUpIChxdW90ZSB0b2RvKSkpKSAodGFncyAobGV0ICgo cmF3LXRhZ3MgKG50aCA1IGNvbXBvbmVudHMpKSkgKGFuZCByYXctdGFncyAob3JnLXNwbGl0LXN0 cmluZyByYXctdGFncyAiOiIpKSkpIChyYXctdmFsdWUgKG9yIChudGggNCBjb21wb25lbnRzKSAi IikpIChjb21tZW50ZWRwIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIG5pbCkpIChzdHJpbmctbWF0 Y2ggKGZvcm1hdCAiXiVzXFwoIFxcfCRcXCkiIG9yZy1jb21tZW50LXN0cmluZykgcmF3LXZhbHVl KSkpIChhcmNoaXZlZHAgKG1lbWJlciBvcmctYXJjaGl2ZS10YWcgdGFncykpIChmb290bm90ZS1z ZWN0aW9uLXAgKGFuZCBvcmctZm9vdG5vdGUtc2VjdGlvbiAoc3RyaW5nPSBvcmctZm9vdG5vdGUt c2VjdGlvbiByYXctdmFsdWUpKSkgKHN0YW5kYXJkLXByb3BzIChsZXQgKChlbmQgKHNhdmUtZXhj dXJzaW9uIC4uLiAuLi4pKSBwbGlzdCkgKHNhdmUtZXhjdXJzaW9uICh3aGlsZSAoYW5kIC4uLiAu Li4pIChsZXQgLi4uIC4uLikpIHBsaXN0KSkpICh0aW1lLXByb3BzIChzYXZlLWV4Y3Vyc2lvbiAo Zm9yd2FyZC1saW5lKSAoaWYgKGxvb2tpbmctYXQgb3JnLXBsYW5uaW5nLW9yLWNsb2NrLWxpbmUt cmUpIChwcm9nbiAobGV0IC4uLiAuLi4gcGxpc3QpKSkpKSAoYmVnaW4gKHBvaW50KSkgKGVuZCAo bWluIChzYXZlLWV4Y3Vyc2lvbiAob3JnLWVuZC1vZi1zdWJ0cmVlIHQgdCkpIGxpbWl0KSkgKHBv cy1hZnRlci1oZWFkIChwcm9nbiAoZm9yd2FyZC1saW5lKSAocG9pbnQpKSkgKGNvbnRlbnRzLWJl Z2luIChzYXZlLWV4Y3Vyc2lvbiAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIgZW5kKSAoYW5k ICgvPSAocG9pbnQpIGVuZCkgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkpKSAoY29udGVudHMt ZW5kIChhbmQgY29udGVudHMtYmVnaW4gKHByb2duIChnb3RvLWNoYXIgZW5kKSAoc2tpcC1jaGFy cy1iYWNrd2FyZCAiIA0JXG4iKSAoZm9yd2FyZC1saW5lKSAocG9pbnQpKSkpKSAoaWYgY29tbWVu dGVkcCAocHJvZ24gKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggbmlsKSkgKHNldHEgcmF3LXZhbHVl IChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcgKGNvbmNhdCAuLi4gIlxcKD86IFxcfCRcXCkiKSAi IiByYXctdmFsdWUpKSkpKSAoaWYgYXJjaGl2ZWRwIChwcm9nbiAoc2V0cSB0YWdzIChkZWxldGUg b3JnLWFyY2hpdmUtdGFnIHRhZ3MpKSkpIChsZXQgKChoZWFkbGluZSAobGlzdCAocXVvdGUgaGVh ZGxpbmUpIChuY29uYyAobGlzdCA6cmF3LXZhbHVlIHJhdy12YWx1ZSA6YmVnaW4gYmVnaW4gOmVu ZCBlbmQgOnByZS1ibGFuayAuLi4gOmNvbnRlbnRzLWJlZ2luIGNvbnRlbnRzLWJlZ2luIDpjb250 ZW50cy1lbmQgY29udGVudHMtZW5kIDpsZXZlbCBsZXZlbCA6cHJpb3JpdHkgLi4uIDp0YWdzIHRh Z3MgOnRvZG8ta2V5d29yZCB0b2RvIDp0b2RvLXR5cGUgdG9kby10eXBlIDpwb3N0LWJsYW5rIC4u LiA6Zm9vdG5vdGUtc2VjdGlvbi1wIGZvb3Rub3RlLXNlY3Rpb24tcCA6YXJjaGl2ZWRwIGFyY2hp dmVkcCA6Y29tbWVudGVkcCBjb21tZW50ZWRwKSB0aW1lLXByb3BzIHN0YW5kYXJkLXByb3BzKSkp KSAobGV0ICgoYWx0LXRpdGxlIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6QUxUX1RJVExFIGhlYWRs aW5lKSkpIChpZiBhbHQtdGl0bGUgKHByb2duIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgaGVh ZGxpbmUgOmFsdC10aXRsZSAoaWYgcmF3LXNlY29uZGFyeS1wIGFsdC10aXRsZSAuLi4pKSkpKSAo b3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGhlYWRsaW5lIDp0aXRsZSAoaWYgcmF3LXNlY29uZGFy eS1wIHJhdy12YWx1ZSAob3JnLWVsZW1lbnQtcGFyc2Utc2Vjb25kYXJ5LXN0cmluZyByYXctdmFs dWUgKG9yZy1lbGVtZW50LXJlc3RyaWN0aW9uIChxdW90ZSBoZWFkbGluZSkpIGhlYWRsaW5lKSkp KSkpCiAgb3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFyc2VyKDI1NzcwNiB0KQogIChjb25kICgoZXEg c3BlY2lhbCAocXVvdGUgaXRlbSkpIChvcmctZWxlbWVudC1pdGVtLXBhcnNlciBsaW1pdCBzdHJ1 Y3R1cmUgcmF3LXNlY29uZGFyeS1wKSkgKChlcSBzcGVjaWFsIChxdW90ZSB0YWJsZS1yb3cpKSAo b3JnLWVsZW1lbnQtdGFibGUtcm93LXBhcnNlciBsaW1pdCkpICgoZXEgc3BlY2lhbCAocXVvdGUg bm9kZS1wcm9wZXJ0eSkpIChvcmctZWxlbWVudC1ub2RlLXByb3BlcnR5LXBhcnNlciBsaW1pdCkp ICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUt cmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAg b3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBv cmctb3V0bGluZS1yZWdleHApKSkgKG9yZy1hdC1oZWFkaW5nLXApKSAob3JnLWVsZW1lbnQtaGVh ZGxpbmUtcGFyc2VyIGxpbWl0IHJhdy1zZWNvbmRhcnktcCkpICgoZXEgc3BlY2lhbCAocXVvdGUg c2VjdGlvbikpIChvcmctZWxlbWVudC1zZWN0aW9uLXBhcnNlciBsaW1pdCkpICgoZXEgc3BlY2lh bCAocXVvdGUgZmlyc3Qtc2VjdGlvbikpIChvcmctZWxlbWVudC1zZWN0aW9uLXBhcnNlciAob3Ig KHNhdmUtZXhjdXJzaW9uIChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQp IChvcmctb3V0bGluZS1yZWdleHAgLi4uKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVn ZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAuLi4pKSAob3V0bGluZS1uZXh0LWhlYWRpbmcp KSkgbGltaXQpKSkgKChub3QgKGJvbHApKSAob3JnLWVsZW1lbnQtcGFyYWdyYXBoLXBhcnNlciBs aW1pdCAobGlzdCAocG9pbnQpKSkpICgobG9va2luZy1hdCBvcmctcGxhbm5pbmctb3ItY2xvY2st bGluZS1yZSkgKGlmIChlcXVhbCAobWF0Y2gtc3RyaW5nIDEpIG9yZy1jbG9jay1zdHJpbmcpIChv cmctZWxlbWVudC1jbG9jay1wYXJzZXIgbGltaXQpIChvcmctZWxlbWVudC1wbGFubmluZy1wYXJz ZXIgbGltaXQpKSkgKChvcmctYXQtaGVhZGluZy1wKSAob3JnLWVsZW1lbnQtaW5saW5ldGFzay1w YXJzZXIgbGltaXQgcmF3LXNlY29uZGFyeS1wKSkgKHQgKGxldCAoKGFmZmlsaWF0ZWQgKG9yZy1l bGVtZW50LS1jb2xsZWN0LWFmZmlsaWF0ZWQta2V5d29yZHMgbGltaXQpKSkgKGNvbmQgKChhbmQg KGNkciBhZmZpbGlhdGVkKSAoPj0gKHBvaW50KSBsaW1pdCkpIChnb3RvLWNoYXIgKGNhciBhZmZp bGlhdGVkKSkgKG9yZy1lbGVtZW50LWtleXdvcmQtcGFyc2VyIGxpbWl0IG5pbCkpICgobG9va2lu Zy1hdCAiWyAgICAgXSpcXFxcYmVnaW57W0EtWmEtejAtOSpdK31cXChcXFsuKj9cXF1cXHx7Lio/ fVxcKSpbICAgICBdKiQiKSAob3JnLWVsZW1lbnQtbGF0ZXgtZW52aXJvbm1lbnQtcGFyc2VyIGxp bWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgb3JnLWRyYXdlci1yZWdleHApIChpZiAoZXF1 YWwgKG1hdGNoLXN0cmluZyAxKSAiUFJPUEVSVElFUyIpIChvcmctZWxlbWVudC1wcm9wZXJ0eS1k cmF3ZXItcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpIChvcmctZWxlbWVudC1kcmF3ZXItcGFyc2Vy IGxpbWl0IGFmZmlsaWF0ZWQpKSkgKChsb29raW5nLWF0ICJbICAgXSo6XFwoIFxcfCRcXCkiKSAo b3JnLWVsZW1lbnQtZml4ZWQtd2lkdGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tp bmctYXQgIlsgICAgIF0qIyIpIChnb3RvLWNoYXIgKG1hdGNoLWVuZCAwKSkgKGNvbmQgKChsb29r aW5nLWF0ICJcXCg/OiBcXHwkXFwpIikgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQt Y29tbWVudC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiXFwrQkVHSU5f XFwoXFxTLStcXCkiKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChsZXQgLi4uIC4uLikpICgobG9va2lu Zy1hdCAiXFwrQ0FMTDoiKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1iYWJlbC1j YWxsLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJcXCtCRUdJTjo/ICIp IChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWR5bmFtaWMtYmxvY2stcGFyc2VyIGxp bWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlxcK1xcUy0rOiIpIChiZWdpbm5pbmctb2Yt bGluZSkgKG9yZy1lbGVtZW50LWtleXdvcmQtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAodCAo YmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1wYXJhZ3JhcGgtcGFyc2VyIGxpbWl0IGFm ZmlsaWF0ZWQpKSkpICgobG9va2luZy1hdCBvcmctZm9vdG5vdGUtZGVmaW5pdGlvbi1yZSkgKG9y Zy1lbGVtZW50LWZvb3Rub3RlLWRlZmluaXRpb24tcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAo KGxvb2tpbmctYXQgIlsgICBdKi1cXHs1LFxcfVsgICAgXSokIikgKG9yZy1lbGVtZW50LWhvcml6 b250YWwtcnVsZS1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiJSUoIikg KG9yZy1lbGVtZW50LWRpYXJ5LXNleHAtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKG9yZy1h dC10YWJsZS1wIHQpIChvcmctZWxlbWVudC10YWJsZS1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkp ICgobG9va2luZy1hdCAob3JnLWl0ZW0tcmUpKSAob3JnLWVsZW1lbnQtcGxhaW4tbGlzdC1wYXJz ZXIgbGltaXQgYWZmaWxpYXRlZCAob3Igc3RydWN0dXJlIChvcmctZWxlbWVudC0tbGlzdC1zdHJ1 Y3QgbGltaXQpKSkpICh0IChvcmctZWxlbWVudC1wYXJhZ3JhcGgtcGFyc2VyIGxpbWl0IGFmZmls aWF0ZWQpKSkpKSkKICAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCB0KSAocmF3LXNlY29uZGFyeS1w IChhbmQgZ3JhbnVsYXJpdHkgKG5vdCAoZXEgZ3JhbnVsYXJpdHkgKHF1b3RlIG9iamVjdCkpKSkp KSAoY29uZCAoKGVxIHNwZWNpYWwgKHF1b3RlIGl0ZW0pKSAob3JnLWVsZW1lbnQtaXRlbS1wYXJz ZXIgbGltaXQgc3RydWN0dXJlIHJhdy1zZWNvbmRhcnktcCkpICgoZXEgc3BlY2lhbCAocXVvdGUg dGFibGUtcm93KSkgKG9yZy1lbGVtZW50LXRhYmxlLXJvdy1wYXJzZXIgbGltaXQpKSAoKGVxIHNw ZWNpYWwgKHF1b3RlIG5vZGUtcHJvcGVydHkpKSAob3JnLWVsZW1lbnQtbm9kZS1wcm9wZXJ0eS1w YXJzZXIgbGltaXQpKSAoKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkg KG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91 dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wg KGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChvcmctYXQtaGVhZGluZy1wKSkgKG9y Zy1lbGVtZW50LWhlYWRsaW5lLXBhcnNlciBsaW1pdCByYXctc2Vjb25kYXJ5LXApKSAoKGVxIHNw ZWNpYWwgKHF1b3RlIHNlY3Rpb24pKSAob3JnLWVsZW1lbnQtc2VjdGlvbi1wYXJzZXIgbGltaXQp KSAoKGVxIHNwZWNpYWwgKHF1b3RlIGZpcnN0LXNlY3Rpb24pKSAob3JnLWVsZW1lbnQtc2VjdGlv bi1wYXJzZXIgKG9yIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAoLi4uIC4uLiAuLi4gLi4uKSAob3V0 bGluZS1uZXh0LWhlYWRpbmcpKSkgbGltaXQpKSkgKChub3QgKGJvbHApKSAob3JnLWVsZW1lbnQt cGFyYWdyYXBoLXBhcnNlciBsaW1pdCAobGlzdCAocG9pbnQpKSkpICgobG9va2luZy1hdCBvcmct cGxhbm5pbmctb3ItY2xvY2stbGluZS1yZSkgKGlmIChlcXVhbCAobWF0Y2gtc3RyaW5nIDEpIG9y Zy1jbG9jay1zdHJpbmcpIChvcmctZWxlbWVudC1jbG9jay1wYXJzZXIgbGltaXQpIChvcmctZWxl bWVudC1wbGFubmluZy1wYXJzZXIgbGltaXQpKSkgKChvcmctYXQtaGVhZGluZy1wKSAob3JnLWVs ZW1lbnQtaW5saW5ldGFzay1wYXJzZXIgbGltaXQgcmF3LXNlY29uZGFyeS1wKSkgKHQgKGxldCAo KGFmZmlsaWF0ZWQgKG9yZy1lbGVtZW50LS1jb2xsZWN0LWFmZmlsaWF0ZWQta2V5d29yZHMgbGlt aXQpKSkgKGNvbmQgKChhbmQgKGNkciBhZmZpbGlhdGVkKSAoPj0gLi4uIGxpbWl0KSkgKGdvdG8t Y2hhciAoY2FyIGFmZmlsaWF0ZWQpKSAob3JnLWVsZW1lbnQta2V5d29yZC1wYXJzZXIgbGltaXQg bmlsKSkgKChsb29raW5nLWF0ICJbICAgICAgICBdKlxcXFxiZWdpbntbQS1aYS16MC05Kl0rfVxc KFxcWy4qP1xcXVxcfHsuKj99XFwpKlsgICAgIF0qJCIpIChvcmctZWxlbWVudC1sYXRleC1lbnZp cm9ubWVudC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCBvcmctZHJhd2Vy LXJlZ2V4cCkgKGlmIChlcXVhbCAuLi4gIlBST1BFUlRJRVMiKSAob3JnLWVsZW1lbnQtcHJvcGVy dHktZHJhd2VyLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSAob3JnLWVsZW1lbnQtZHJhd2VyLXBh cnNlciBsaW1pdCBhZmZpbGlhdGVkKSkpICgobG9va2luZy1hdCAiWyAgICAgICAgXSo6XFwoIFxc fCRcXCkiKSAob3JnLWVsZW1lbnQtZml4ZWQtd2lkdGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQp KSAoKGxvb2tpbmctYXQgIlsgICAgIF0qIyIpIChnb3RvLWNoYXIgKG1hdGNoLWVuZCAwKSkgKGNv bmQgKC4uLiAuLi4gLi4uKSAoLi4uIC4uLiAuLi4pICguLi4gLi4uIC4uLikgKC4uLiAuLi4gLi4u KSAoLi4uIC4uLiAuLi4pICh0IC4uLiAuLi4pKSkgKChsb29raW5nLWF0IG9yZy1mb290bm90ZS1k ZWZpbml0aW9uLXJlKSAob3JnLWVsZW1lbnQtZm9vdG5vdGUtZGVmaW5pdGlvbi1wYXJzZXIgbGlt aXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiWyAgIF0qLVxcezUsXFx9WyAgICBdKiQiKSAo b3JnLWVsZW1lbnQtaG9yaXpvbnRhbC1ydWxlLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChs b29raW5nLWF0ICIlJSgiKSAob3JnLWVsZW1lbnQtZGlhcnktc2V4cC1wYXJzZXIgbGltaXQgYWZm aWxpYXRlZCkpICgob3JnLWF0LXRhYmxlLXAgdCkgKG9yZy1lbGVtZW50LXRhYmxlLXBhcnNlciBs aW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0IChvcmctaXRlbS1yZSkpIChvcmctZWxlbWVu dC1wbGFpbi1saXN0LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkIChvciBzdHJ1Y3R1cmUgLi4uKSkp ICh0IChvcmctZWxlbWVudC1wYXJhZ3JhcGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSkpKSkp CiAgKHNhdmUtZXhjdXJzaW9uIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIHQpIChyYXctc2Vjb25k YXJ5LXAgKGFuZCBncmFudWxhcml0eSAobm90IChlcSBncmFudWxhcml0eSAocXVvdGUgb2JqZWN0 KSkpKSkpIChjb25kICgoZXEgc3BlY2lhbCAocXVvdGUgaXRlbSkpIChvcmctZWxlbWVudC1pdGVt LXBhcnNlciBsaW1pdCBzdHJ1Y3R1cmUgcmF3LXNlY29uZGFyeS1wKSkgKChlcSBzcGVjaWFsIChx dW90ZSB0YWJsZS1yb3cpKSAob3JnLWVsZW1lbnQtdGFibGUtcm93LXBhcnNlciBsaW1pdCkpICgo ZXEgc3BlY2lhbCAocXVvdGUgbm9kZS1wcm9wZXJ0eSkpIChvcmctZWxlbWVudC1ub2RlLXByb3Bl cnR5LXBhcnNlciBsaW1pdCkpICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVs cyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHAp KSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhw LWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgKG9yZy1hdC1oZWFkaW5nLXAp KSAob3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFyc2VyIGxpbWl0IHJhdy1zZWNvbmRhcnktcCkpICgo ZXEgc3BlY2lhbCAocXVvdGUgc2VjdGlvbikpIChvcmctZWxlbWVudC1zZWN0aW9uLXBhcnNlciBs aW1pdCkpICgoZXEgc3BlY2lhbCAocXVvdGUgZmlyc3Qtc2VjdGlvbikpIChvcmctZWxlbWVudC1z ZWN0aW9uLXBhcnNlciAob3IgKHNhdmUtZXhjdXJzaW9uIChsZXQqIC4uLiAuLi4pKSBsaW1pdCkp KSAoKG5vdCAoYm9scCkpIChvcmctZWxlbWVudC1wYXJhZ3JhcGgtcGFyc2VyIGxpbWl0IChsaXN0 IChwb2ludCkpKSkgKChsb29raW5nLWF0IG9yZy1wbGFubmluZy1vci1jbG9jay1saW5lLXJlKSAo aWYgKGVxdWFsIChtYXRjaC1zdHJpbmcgMSkgb3JnLWNsb2NrLXN0cmluZykgKG9yZy1lbGVtZW50 LWNsb2NrLXBhcnNlciBsaW1pdCkgKG9yZy1lbGVtZW50LXBsYW5uaW5nLXBhcnNlciBsaW1pdCkp KSAoKG9yZy1hdC1oZWFkaW5nLXApIChvcmctZWxlbWVudC1pbmxpbmV0YXNrLXBhcnNlciBsaW1p dCByYXctc2Vjb25kYXJ5LXApKSAodCAobGV0ICgoYWZmaWxpYXRlZCAob3JnLWVsZW1lbnQtLWNv bGxlY3QtYWZmaWxpYXRlZC1rZXl3b3JkcyBsaW1pdCkpKSAoY29uZCAoKGFuZCAuLi4gLi4uKSAo Z290by1jaGFyIC4uLikgKG9yZy1lbGVtZW50LWtleXdvcmQtcGFyc2VyIGxpbWl0IG5pbCkpICgo bG9va2luZy1hdCAiWyAgICAgIF0qXFxcXGJlZ2lue1tBLVphLXowLTkqXSt9XFwoXFxbLio/XFxd XFx8ey4qP31cXCkqWyAgICAgXSokIikgKG9yZy1lbGVtZW50LWxhdGV4LWVudmlyb25tZW50LXBh cnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0IG9yZy1kcmF3ZXItcmVnZXhwKSAo aWYgLi4uIC4uLiAuLi4pKSAoKGxvb2tpbmctYXQgIlsgICAgICAgIF0qOlxcKCBcXHwkXFwpIikg KG9yZy1lbGVtZW50LWZpeGVkLXdpZHRoLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29r aW5nLWF0ICJbICAgICBdKiMiKSAoZ290by1jaGFyIC4uLikgKGNvbmQgLi4uIC4uLiAuLi4gLi4u IC4uLiAuLi4pKSAoKGxvb2tpbmctYXQgb3JnLWZvb3Rub3RlLWRlZmluaXRpb24tcmUpIChvcmct ZWxlbWVudC1mb290bm90ZS1kZWZpbml0aW9uLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChs b29raW5nLWF0ICJbICAgICAgIF0qLVxcezUsXFx9WyAgICBdKiQiKSAob3JnLWVsZW1lbnQtaG9y aXpvbnRhbC1ydWxlLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICIlJSgi KSAob3JnLWVsZW1lbnQtZGlhcnktc2V4cC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgob3Jn LWF0LXRhYmxlLXAgdCkgKG9yZy1lbGVtZW50LXRhYmxlLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVk KSkgKChsb29raW5nLWF0IC4uLikgKG9yZy1lbGVtZW50LXBsYWluLWxpc3QtcGFyc2VyIGxpbWl0 IGFmZmlsaWF0ZWQgLi4uKSkgKHQgKG9yZy1lbGVtZW50LXBhcmFncmFwaC1wYXJzZXIgbGltaXQg YWZmaWxpYXRlZCkpKSkpKSkpCiAgb3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVudCgyNTc3MDYg ZWxlbWVudCBuaWwgbmlsKQogIChzZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50LS1jdXJyZW50LWVs ZW1lbnQgZW5kIChxdW90ZSBlbGVtZW50KSBzcGVjaWFsLWZsYWcgKG9yZy1lbGVtZW50LXByb3Bl cnR5IDpzdHJ1Y3R1cmUgcGFyZW50KSkpCiAgKGlmIGVsZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQg KG9yZy1lbGVtZW50LS1jdXJyZW50LWVsZW1lbnQgZW5kIChxdW90ZSBlbGVtZW50KSBzcGVjaWFs LWZsYWcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpzdHJ1Y3R1cmUgcGFyZW50KSkpIChvcmctZWxl bWVudC1wdXQtcHJvcGVydHkgZWxlbWVudCA6cGFyZW50IHBhcmVudCkgKG9yZy1lbGVtZW50LS1j YWNoZS1wdXQgZWxlbWVudCkpCiAgKHdoaWxlIHQgKGlmIHN5bmNwIChwcm9nbiAoY29uZCAoKD0g KHBvaW50KSBwb3MpICh0aHJvdyAocXVvdGUgZXhpdCkgcGFyZW50KSkgKChvcmctZWxlbWVudC0t Y2FjaGUtaW50ZXJydXB0LXAgdGltZS1saW1pdCkgKHRocm93IChxdW90ZSBpbnRlcnJ1cHQpIG5p bCkpKSkpIChpZiBlbGVtZW50IG5pbCAoc2V0cSBlbGVtZW50IChvcmctZWxlbWVudC0tY3VycmVu dC1lbGVtZW50IGVuZCAocXVvdGUgZWxlbWVudCkgc3BlY2lhbC1mbGFnIChvcmctZWxlbWVudC1w cm9wZXJ0eSA6c3RydWN0dXJlIHBhcmVudCkpKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGVs ZW1lbnQgOnBhcmVudCBwYXJlbnQpIChvcmctZWxlbWVudC0tY2FjaGUtcHV0IGVsZW1lbnQpKSAo bGV0ICgoZWxlbS1lbmQgKG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkpICh0eXBl IChvcmctZWxlbWVudC10eXBlIGVsZW1lbnQpKSkgKGNvbmQgKChhbmQgKDw9IGVsZW0tZW5kIHBv cykgKC89IChwb2ludC1tYXgpIGVsZW0tZW5kKSkgKGdvdG8tY2hhciBlbGVtLWVuZCkpICgobm90 IChtZW1xIHR5cGUgb3JnLWVsZW1lbnQtZ3JlYXRlci1lbGVtZW50cykpICh0aHJvdyAocXVvdGUg ZXhpdCkgZWxlbWVudCkpICgobGV0ICgoY2JlZyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmNvbnRl bnRzLWJlZ2luIGVsZW1lbnQpKSAoY2VuZCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmNvbnRlbnRz LWVuZCBlbGVtZW50KSkpIChpZiAob3Igc3luY3AgKGFuZCBjYmVnIGNlbmQgLi4uIC4uLikpIChw cm9nbiAoZ290by1jaGFyIC4uLikgKHNldHEgbmV4dCBuaWwgc3BlY2lhbC1mbGFnIC4uLiBwYXJl bnQgZWxlbWVudCBlbmQgY2VuZCkpKSkpICh0ICh0aHJvdyAocXVvdGUgZXhpdCkgZWxlbWVudCkp KSkgKHNldHEgZWxlbWVudCBuaWwpKQogIChsZXQgKChlbmQgKG9yIChvcmctZWxlbWVudC1wcm9w ZXJ0eSA6ZW5kIGVsZW1lbnQpIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAoKG9yZy1jYWxsZWQtd2l0 aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIC4uLikgKG91dGxpbmUtcmVn ZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgLi4uKSkgKG91 dGxpbmUtbmV4dC1oZWFkaW5nKSkgKHBvaW50KSkpKSAocGFyZW50IGVsZW1lbnQpIHNwZWNpYWwt ZmxhZykgKHdoaWxlIHQgKGlmIHN5bmNwIChwcm9nbiAoY29uZCAoKD0gKHBvaW50KSBwb3MpICh0 aHJvdyAocXVvdGUgZXhpdCkgcGFyZW50KSkgKChvcmctZWxlbWVudC0tY2FjaGUtaW50ZXJydXB0 LXAgdGltZS1saW1pdCkgKHRocm93IChxdW90ZSBpbnRlcnJ1cHQpIG5pbCkpKSkpIChpZiBlbGVt ZW50IG5pbCAoc2V0cSBlbGVtZW50IChvcmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50IGVuZCAo cXVvdGUgZWxlbWVudCkgc3BlY2lhbC1mbGFnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6c3RydWN0 dXJlIHBhcmVudCkpKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVudCBw YXJlbnQpIChvcmctZWxlbWVudC0tY2FjaGUtcHV0IGVsZW1lbnQpKSAobGV0ICgoZWxlbS1lbmQg KG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkpICh0eXBlIChvcmctZWxlbWVudC10 eXBlIGVsZW1lbnQpKSkgKGNvbmQgKChhbmQgKDw9IGVsZW0tZW5kIHBvcykgKC89IChwb2ludC1t YXgpIGVsZW0tZW5kKSkgKGdvdG8tY2hhciBlbGVtLWVuZCkpICgobm90IChtZW1xIHR5cGUgb3Jn LWVsZW1lbnQtZ3JlYXRlci1lbGVtZW50cykpICh0aHJvdyAocXVvdGUgZXhpdCkgZWxlbWVudCkp ICgobGV0ICgoY2JlZyAuLi4pIChjZW5kIC4uLikpIChpZiAob3Igc3luY3AgLi4uKSAocHJvZ24g Li4uIC4uLikpKSkgKHQgKHRocm93IChxdW90ZSBleGl0KSBlbGVtZW50KSkpKSAoc2V0cSBlbGVt ZW50IG5pbCkpKQogIChsZXQqICgoY2FjaGVkIChhbmQgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3Rp dmUtcCkgKG9yZy1lbGVtZW50LS1jYWNoZS1maW5kIHBvcyBuaWwpKSkgKGJlZ2luIChvcmctZWxl bWVudC1wcm9wZXJ0eSA6YmVnaW4gY2FjaGVkKSkgZWxlbWVudCBuZXh0KSAoY29uZCAoKG5vdCBj YWNoZWQpIChpZiAobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3Jn LW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGlu ZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29u Y2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgKG91dGxpbmUtcHJldmlvdXMtaGVhZGluZykp IChwcm9nbiAoZm9yd2FyZC1saW5lKSkpIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGJl Z2lubmluZy1vZi1saW5lKSkgKCg9IHBvcyBiZWdpbikgKHRocm93IChxdW90ZSBleGl0KSAoaWYg c3luY3AgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpwYXJlbnQgY2FjaGVkKSBjYWNoZWQpKSkgKChy ZS1zZWFyY2gtYmFja3dhcmQgKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMg dCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkg KG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1i b2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIG9yZy1vdXRsaW5lLXJlZ2V4cC1i b2wpIGJlZ2luIHQpIChmb3J3YXJkLWxpbmUpIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikg KGJlZ2lubmluZy1vZi1saW5lKSkgKHQgKGxldCAoKHVwIGNhY2hlZCkgKHBvcyAoaWYgKD0gLi4u IHBvcykgKDEtIHBvcykgcG9zKSkpIChnb3RvLWNoYXIgKG9yIChvcmctZWxlbWVudC1wcm9wZXJ0 eSA6Y29udGVudHMtYmVnaW4gY2FjaGVkKSBiZWdpbikpICh3aGlsZSAobGV0ICgoZW5kIC4uLikp IChhbmQgKDw9IGVuZCBwb3MpIChnb3RvLWNoYXIgZW5kKSAoc2V0cSB1cCAuLi4pKSkpIChjb25k ICgobm90IHVwKSkgKChlb2JwKSAoc2V0cSBlbGVtZW50IHVwKSkgKHQgKHNldHEgZWxlbWVudCB1 cCBuZXh0IChwb2ludCkpKSkpKSkgKGxldCAoKGVuZCAob3IgKG9yZy1lbGVtZW50LXByb3BlcnR5 IDplbmQgZWxlbWVudCkgKHNhdmUtZXhjdXJzaW9uIChsZXQqICguLi4gLi4uIC4uLiAuLi4pIChv dXRsaW5lLW5leHQtaGVhZGluZykpIChwb2ludCkpKSkgKHBhcmVudCBlbGVtZW50KSBzcGVjaWFs LWZsYWcpICh3aGlsZSB0IChpZiBzeW5jcCAocHJvZ24gKGNvbmQgKCg9IC4uLiBwb3MpICh0aHJv dyAuLi4gcGFyZW50KSkgKChvcmctZWxlbWVudC0tY2FjaGUtaW50ZXJydXB0LXAgdGltZS1saW1p dCkgKHRocm93IC4uLiBuaWwpKSkpKSAoaWYgZWxlbWVudCBuaWwgKHNldHEgZWxlbWVudCAob3Jn LWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVudCBlbmQgKHF1b3RlIGVsZW1lbnQpIHNwZWNpYWwtZmxh ZyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnN0cnVjdHVyZSBwYXJlbnQpKSkgKG9yZy1lbGVtZW50 LXB1dC1wcm9wZXJ0eSBlbGVtZW50IDpwYXJlbnQgcGFyZW50KSAob3JnLWVsZW1lbnQtLWNhY2hl LXB1dCBlbGVtZW50KSkgKGxldCAoKGVsZW0tZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5k IGVsZW1lbnQpKSAodHlwZSAob3JnLWVsZW1lbnQtdHlwZSBlbGVtZW50KSkpIChjb25kICgoYW5k ICg8PSBlbGVtLWVuZCBwb3MpICgvPSAuLi4gZWxlbS1lbmQpKSAoZ290by1jaGFyIGVsZW0tZW5k KSkgKChub3QgKG1lbXEgdHlwZSBvcmctZWxlbWVudC1ncmVhdGVyLWVsZW1lbnRzKSkgKHRocm93 IChxdW90ZSBleGl0KSBlbGVtZW50KSkgKChsZXQgKC4uLiAuLi4pIChpZiAuLi4gLi4uKSkpICh0 ICh0aHJvdyAocXVvdGUgZXhpdCkgZWxlbWVudCkpKSkgKHNldHEgZWxlbWVudCBuaWwpKSkpCiAg KHNhdmUtcmVzdHJpY3Rpb24gKHdpZGVuKSAoZ290by1jaGFyIHBvcykgKGxldCogKChjYWNoZWQg KGFuZCAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAob3JnLWVsZW1lbnQtLWNhY2hlLWZp bmQgcG9zIG5pbCkpKSAoYmVnaW4gKG9yZy1lbGVtZW50LXByb3BlcnR5IDpiZWdpbiBjYWNoZWQp KSBlbGVtZW50IG5leHQpIChjb25kICgobm90IGNhY2hlZCkgKGlmIChsZXQqICgob3JnLWNhbGxl ZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgLi4uKSAob3V0bGlu ZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAuLi4p KSAob3V0bGluZS1wcmV2aW91cy1oZWFkaW5nKSkgKHByb2duIChmb3J3YXJkLWxpbmUpKSkgKHNr aXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAoKD0gcG9zIGJl Z2luKSAodGhyb3cgKHF1b3RlIGV4aXQpIChpZiBzeW5jcCAob3JnLWVsZW1lbnQtcHJvcGVydHkg OnBhcmVudCBjYWNoZWQpIGNhY2hlZCkpKSAoKHJlLXNlYXJjaC1iYWNrd2FyZCAobGV0KiAoKG9y Zy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIC4uLikg KG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1i b2wgLi4uKSkgb3JnLW91dGxpbmUtcmVnZXhwLWJvbCkgYmVnaW4gdCkgKGZvcndhcmQtbGluZSkg KHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAodCAobGV0 ICgodXAgY2FjaGVkKSAocG9zIChpZiAuLi4gLi4uIHBvcykpKSAoZ290by1jaGFyIChvciAob3Jn LWVsZW1lbnQtcHJvcGVydHkgOmNvbnRlbnRzLWJlZ2luIGNhY2hlZCkgYmVnaW4pKSAod2hpbGUg KGxldCAoLi4uKSAoYW5kIC4uLiAuLi4gLi4uKSkpIChjb25kICgobm90IHVwKSkgKChlb2JwKSAo c2V0cSBlbGVtZW50IHVwKSkgKHQgKHNldHEgZWxlbWVudCB1cCBuZXh0IC4uLikpKSkpKSAobGV0 ICgoZW5kIChvciAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSAoc2F2ZS1leGN1 cnNpb24gKGxldCogLi4uIC4uLikgKHBvaW50KSkpKSAocGFyZW50IGVsZW1lbnQpIHNwZWNpYWwt ZmxhZykgKHdoaWxlIHQgKGlmIHN5bmNwIChwcm9nbiAoY29uZCAoLi4uIC4uLikgKC4uLiAuLi4p KSkpIChpZiBlbGVtZW50IG5pbCAoc2V0cSBlbGVtZW50IChvcmctZWxlbWVudC0tY3VycmVudC1l bGVtZW50IGVuZCAocXVvdGUgZWxlbWVudCkgc3BlY2lhbC1mbGFnIChvcmctZWxlbWVudC1wcm9w ZXJ0eSA6c3RydWN0dXJlIHBhcmVudCkpKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1l bnQgOnBhcmVudCBwYXJlbnQpIChvcmctZWxlbWVudC0tY2FjaGUtcHV0IGVsZW1lbnQpKSAobGV0 ICgoZWxlbS1lbmQgKG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkpICh0eXBlIChv cmctZWxlbWVudC10eXBlIGVsZW1lbnQpKSkgKGNvbmQgKChhbmQgLi4uIC4uLikgKGdvdG8tY2hh ciBlbGVtLWVuZCkpICgobm90IC4uLikgKHRocm93IC4uLiBlbGVtZW50KSkgKChsZXQgLi4uIC4u LikpICh0ICh0aHJvdyAuLi4gZWxlbWVudCkpKSkgKHNldHEgZWxlbWVudCBuaWwpKSkpKQogIChz YXZlLWV4Y3Vyc2lvbiAoc2F2ZS1yZXN0cmljdGlvbiAod2lkZW4pIChnb3RvLWNoYXIgcG9zKSAo bGV0KiAoKGNhY2hlZCAoYW5kIChvcmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChvcmctZWxl bWVudC0tY2FjaGUtZmluZCBwb3MgbmlsKSkpIChiZWdpbiAob3JnLWVsZW1lbnQtcHJvcGVydHkg OmJlZ2luIGNhY2hlZCkpIGVsZW1lbnQgbmV4dCkgKGNvbmQgKChub3QgY2FjaGVkKSAoaWYgKGxl dCogKC4uLiAuLi4gLi4uIC4uLikgKG91dGxpbmUtcHJldmlvdXMtaGVhZGluZykpIChwcm9nbiAo Zm9yd2FyZC1saW5lKSkpIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1v Zi1saW5lKSkgKCg9IHBvcyBiZWdpbikgKHRocm93IChxdW90ZSBleGl0KSAoaWYgc3luY3AgKG9y Zy1lbGVtZW50LXByb3BlcnR5IDpwYXJlbnQgY2FjaGVkKSBjYWNoZWQpKSkgKChyZS1zZWFyY2gt YmFja3dhcmQgKGxldCogKC4uLiAuLi4gLi4uIC4uLikgb3JnLW91dGxpbmUtcmVnZXhwLWJvbCkg YmVnaW4gdCkgKGZvcndhcmQtbGluZSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVn aW5uaW5nLW9mLWxpbmUpKSAodCAobGV0ICgodXAgY2FjaGVkKSAocG9zIC4uLikpIChnb3RvLWNo YXIgKG9yIC4uLiBiZWdpbikpICh3aGlsZSAobGV0IC4uLiAuLi4pKSAoY29uZCAoLi4uKSAoLi4u IC4uLikgKHQgLi4uKSkpKSkgKGxldCAoKGVuZCAob3IgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpl bmQgZWxlbWVudCkgKHNhdmUtZXhjdXJzaW9uIC4uLiAuLi4pKSkgKHBhcmVudCBlbGVtZW50KSBz cGVjaWFsLWZsYWcpICh3aGlsZSB0IChpZiBzeW5jcCAocHJvZ24gKGNvbmQgLi4uIC4uLikpKSAo aWYgZWxlbWVudCBuaWwgKHNldHEgZWxlbWVudCAob3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVu dCBlbmQgLi4uIHNwZWNpYWwtZmxhZyAuLi4pKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGVs ZW1lbnQgOnBhcmVudCBwYXJlbnQpIChvcmctZWxlbWVudC0tY2FjaGUtcHV0IGVsZW1lbnQpKSAo bGV0ICgoZWxlbS1lbmQgLi4uKSAodHlwZSAuLi4pKSAoY29uZCAoLi4uIC4uLikgKC4uLiAuLi4p ICguLi4pICh0IC4uLikpKSAoc2V0cSBlbGVtZW50IG5pbCkpKSkpKQogIChjYXRjaCAocXVvdGUg ZXhpdCkgKHNhdmUtZXhjdXJzaW9uIChzYXZlLXJlc3RyaWN0aW9uICh3aWRlbikgKGdvdG8tY2hh ciBwb3MpIChsZXQqICgoY2FjaGVkIChhbmQgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkg KG9yZy1lbGVtZW50LS1jYWNoZS1maW5kIHBvcyBuaWwpKSkgKGJlZ2luIChvcmctZWxlbWVudC1w cm9wZXJ0eSA6YmVnaW4gY2FjaGVkKSkgZWxlbWVudCBuZXh0KSAoY29uZCAoKG5vdCBjYWNoZWQp IChpZiAobGV0KiAuLi4gLi4uKSAocHJvZ24gLi4uKSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0J XG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAoKD0gcG9zIGJlZ2luKSAodGhyb3cgKHF1b3RlIGV4 aXQpIChpZiBzeW5jcCAuLi4gY2FjaGVkKSkpICgocmUtc2VhcmNoLWJhY2t3YXJkIChsZXQqIC4u LiBvcmctb3V0bGluZS1yZWdleHAtYm9sKSBiZWdpbiB0KSAoZm9yd2FyZC1saW5lKSAoc2tpcC1j aGFycy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkpICh0IChsZXQgKC4uLiAu Li4pIChnb3RvLWNoYXIgLi4uKSAod2hpbGUgLi4uKSAoY29uZCAuLi4gLi4uIC4uLikpKSkgKGxl dCAoKGVuZCAob3IgLi4uIC4uLikpIChwYXJlbnQgZWxlbWVudCkgc3BlY2lhbC1mbGFnKSAod2hp bGUgdCAoaWYgc3luY3AgKHByb2duIC4uLikpIChpZiBlbGVtZW50IG5pbCAoc2V0cSBlbGVtZW50 IC4uLikgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBlbGVtZW50IDpwYXJlbnQgcGFyZW50KSAo b3JnLWVsZW1lbnQtLWNhY2hlLXB1dCBlbGVtZW50KSkgKGxldCAoLi4uIC4uLikgKGNvbmQgLi4u IC4uLiAuLi4gLi4uKSkgKHNldHEgZWxlbWVudCBuaWwpKSkpKSkpCiAgb3JnLWVsZW1lbnQtLXBh cnNlLXRvKDI1NzI4MCkKICAoY29uZCAoKGJvYnApIG5pbCkgKChsZXQqICgob3JnLWNhbGxlZC13 aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRl ZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChv cmctb3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAo b3JnLWF0LWhlYWRpbmctcCkpIChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWhlYWRs aW5lLXBhcnNlciAocG9pbnQtbWF4KSB0KSkgKHQgKGlmIChvcmctZWxlbWVudC0tY2FjaGUtYWN0 aXZlLXApIChwcm9nbiAoaWYgKG5vdCBvcmctZWxlbWVudC0tY2FjaGUpIChvcmctZWxlbWVudC1j YWNoZS1yZXNldCkgKG9yZy1lbGVtZW50LS1jYWNoZS1zeW5jIChjdXJyZW50LWJ1ZmZlcikgb3Jp Z2luKSkpKSAob3JnLWVsZW1lbnQtLXBhcnNlLXRvIG9yaWdpbikpKQogIChsZXQgKChvcmlnaW4g KHBvaW50KSkpIChlbmQtb2YtbGluZSkgKHNraXAtY2hhcnMtYmFja3dhcmQgIiANCVxuIikgKGNv bmQgKChib2JwKSBuaWwpICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0 KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAo b3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJv bCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgKG9yZy1hdC1oZWFkaW5nLXApKSAo YmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIgKHBvaW50LW1h eCkgdCkpICh0IChpZiAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAocHJvZ24gKGlmIChu b3Qgb3JnLWVsZW1lbnQtLWNhY2hlKSAob3JnLWVsZW1lbnQtY2FjaGUtcmVzZXQpIChvcmctZWxl bWVudC0tY2FjaGUtc3luYyAoY3VycmVudC1idWZmZXIpIG9yaWdpbikpKSkgKG9yZy1lbGVtZW50 LS1wYXJzZS10byBvcmlnaW4pKSkpCiAgKHNhdmUtcmVzdHJpY3Rpb24gKHdpZGVuKSAobGV0ICgo b3JpZ2luIChwb2ludCkpKSAoZW5kLW9mLWxpbmUpIChza2lwLWNoYXJzLWJhY2t3YXJkICIgDQlc biIpIChjb25kICgoYm9icCkgbmlsKSAoKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1s ZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVn ZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJl Z2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChvcmctYXQtaGVhZGlu Zy1wKSkgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFyc2VyIChw b2ludC1tYXgpIHQpKSAodCAoaWYgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKHByb2du IChpZiAobm90IG9yZy1lbGVtZW50LS1jYWNoZSkgKG9yZy1lbGVtZW50LWNhY2hlLXJlc2V0KSAo b3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMgLi4uIG9yaWdpbikpKSkgKG9yZy1lbGVtZW50LS1wYXJz ZS10byBvcmlnaW4pKSkpKQogIChzYXZlLWV4Y3Vyc2lvbiAoc2F2ZS1yZXN0cmljdGlvbiAod2lk ZW4pIChsZXQgKChvcmlnaW4gKHBvaW50KSkpIChlbmQtb2YtbGluZSkgKHNraXAtY2hhcnMtYmFj a3dhcmQgIiANCVxuIikgKGNvbmQgKChib2JwKSBuaWwpICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0 aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIC4uLikgKG91dGxpbmUtcmVn ZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgLi4uKSkgKG9y Zy1hdC1oZWFkaW5nLXApKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1oZWFkbGlu ZS1wYXJzZXIgKHBvaW50LW1heCkgdCkpICh0IChpZiAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2 ZS1wKSAocHJvZ24gKGlmIC4uLiAuLi4gLi4uKSkpIChvcmctZWxlbWVudC0tcGFyc2UtdG8gb3Jp Z2luKSkpKSkpCiAgb3JnLWVsZW1lbnQtYXQtcG9pbnQoKQogIChsZXQgKChkcmF3ZXIgKG9yZy1l bGVtZW50LWF0LXBvaW50KSkpIChpZiAoYW5kIChlcSAob3JnLWVsZW1lbnQtdHlwZSBkcmF3ZXIp IChxdW90ZSBwcm9wZXJ0eS1kcmF3ZXIpKSAobGV0ICgocCBkcmF3ZXIpKSAod2hpbGUgKGFuZCAo c2V0cSBwIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGFyZW50IHApKSAobm90IChlcSAuLi4gLi4u KSkpKSAobm90IHApKSkgKHByb2duIChsZXQgKChlbmQgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpj b250ZW50cy1lbmQgZHJhd2VyKSkpIChpZiBlbmQgKHByb2duIChmb3J3YXJkLWxpbmUpICh3aGls ZSAoPCAuLi4gZW5kKSAoaWYgLi4uIC4uLikgKGZvcndhcmQtbGluZSkpKSkpKSkpCiAgKHdoaWxl IChhbmQgKG51bGwgcGxpc3QpIChyZS1zZWFyY2gtZm9yd2FyZCBvcmctcHJvcGVydHktc3RhcnQt cmUgZW5kIHQpKSAobGV0ICgoZHJhd2VyIChvcmctZWxlbWVudC1hdC1wb2ludCkpKSAoaWYgKGFu ZCAoZXEgKG9yZy1lbGVtZW50LXR5cGUgZHJhd2VyKSAocXVvdGUgcHJvcGVydHktZHJhd2VyKSkg KGxldCAoKHAgZHJhd2VyKSkgKHdoaWxlIChhbmQgKHNldHEgcCAuLi4pIChub3QgLi4uKSkpIChu b3QgcCkpKSAocHJvZ24gKGxldCAoKGVuZCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmNvbnRlbnRz LWVuZCBkcmF3ZXIpKSkgKGlmIGVuZCAocHJvZ24gKGZvcndhcmQtbGluZSkgKHdoaWxlIC4uLiAu Li4gLi4uKSkpKSkpKSkKICAoc2F2ZS1leGN1cnNpb24gKHdoaWxlIChhbmQgKG51bGwgcGxpc3Qp IChyZS1zZWFyY2gtZm9yd2FyZCBvcmctcHJvcGVydHktc3RhcnQtcmUgZW5kIHQpKSAobGV0ICgo ZHJhd2VyIChvcmctZWxlbWVudC1hdC1wb2ludCkpKSAoaWYgKGFuZCAoZXEgKG9yZy1lbGVtZW50 LXR5cGUgZHJhd2VyKSAocXVvdGUgcHJvcGVydHktZHJhd2VyKSkgKGxldCAoKHAgZHJhd2VyKSkg KHdoaWxlIChhbmQgLi4uIC4uLikpIChub3QgcCkpKSAocHJvZ24gKGxldCAoKGVuZCAuLi4pKSAo aWYgZW5kIChwcm9nbiAuLi4gLi4uKSkpKSkpKSBwbGlzdCkKICAobGV0ICgoZW5kIChzYXZlLWV4 Y3Vyc2lvbiAobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91 dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1y ZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0 ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgKG91dGxpbmUtbmV4dC1oZWFkaW5nKSkgKHBvaW50 KSkpIHBsaXN0KSAoc2F2ZS1leGN1cnNpb24gKHdoaWxlIChhbmQgKG51bGwgcGxpc3QpIChyZS1z ZWFyY2gtZm9yd2FyZCBvcmctcHJvcGVydHktc3RhcnQtcmUgZW5kIHQpKSAobGV0ICgoZHJhd2Vy IChvcmctZWxlbWVudC1hdC1wb2ludCkpKSAoaWYgKGFuZCAoZXEgKG9yZy1lbGVtZW50LXR5cGUg ZHJhd2VyKSAocXVvdGUgcHJvcGVydHktZHJhd2VyKSkgKGxldCAoLi4uKSAod2hpbGUgLi4uKSAo bm90IHApKSkgKHByb2duIChsZXQgKC4uLikgKGlmIGVuZCAuLi4pKSkpKSkgcGxpc3QpKQogIChs ZXQqICgoY29tcG9uZW50cyAob3JnLWhlYWRpbmctY29tcG9uZW50cykpIChsZXZlbCAobnRoIDEg Y29tcG9uZW50cykpICh0b2RvIChudGggMiBjb21wb25lbnRzKSkgKHRvZG8tdHlwZSAoYW5kIHRv ZG8gKGlmIChtZW1iZXIgdG9kbyBvcmctZG9uZS1rZXl3b3JkcykgKHF1b3RlIGRvbmUpIChxdW90 ZSB0b2RvKSkpKSAodGFncyAobGV0ICgocmF3LXRhZ3MgKG50aCA1IGNvbXBvbmVudHMpKSkgKGFu ZCByYXctdGFncyAob3JnLXNwbGl0LXN0cmluZyByYXctdGFncyAiOiIpKSkpIChyYXctdmFsdWUg KG9yIChudGggNCBjb21wb25lbnRzKSAiIikpIChjb21tZW50ZWRwIChsZXQgKChjYXNlLWZvbGQt c2VhcmNoIG5pbCkpIChzdHJpbmctbWF0Y2ggKGZvcm1hdCAiXiVzXFwoIFxcfCRcXCkiIG9yZy1j b21tZW50LXN0cmluZykgcmF3LXZhbHVlKSkpIChhcmNoaXZlZHAgKG1lbWJlciBvcmctYXJjaGl2 ZS10YWcgdGFncykpIChmb290bm90ZS1zZWN0aW9uLXAgKGFuZCBvcmctZm9vdG5vdGUtc2VjdGlv biAoc3RyaW5nPSBvcmctZm9vdG5vdGUtc2VjdGlvbiByYXctdmFsdWUpKSkgKHN0YW5kYXJkLXBy b3BzIChsZXQgKChlbmQgKHNhdmUtZXhjdXJzaW9uIChsZXQqIC4uLiAuLi4pIChwb2ludCkpKSBw bGlzdCkgKHNhdmUtZXhjdXJzaW9uICh3aGlsZSAoYW5kIChudWxsIHBsaXN0KSAocmUtc2VhcmNo LWZvcndhcmQgb3JnLXByb3BlcnR5LXN0YXJ0LXJlIGVuZCB0KSkgKGxldCAoLi4uKSAoaWYgLi4u IC4uLikpKSBwbGlzdCkpKSAodGltZS1wcm9wcyAoc2F2ZS1leGN1cnNpb24gKGZvcndhcmQtbGlu ZSkgKGlmIChsb29raW5nLWF0IG9yZy1wbGFubmluZy1vci1jbG9jay1saW5lLXJlKSAocHJvZ24g KGxldCAoLi4uIHBsaXN0KSAod2hpbGUgLi4uIC4uLiAuLi4gLi4uKSBwbGlzdCkpKSkpIChiZWdp biAocG9pbnQpKSAoZW5kIChtaW4gKHNhdmUtZXhjdXJzaW9uIChvcmctZW5kLW9mLXN1YnRyZWUg dCB0KSkgbGltaXQpKSAocG9zLWFmdGVyLWhlYWQgKHByb2duIChmb3J3YXJkLWxpbmUpIChwb2lu dCkpKSAoY29udGVudHMtYmVnaW4gKHNhdmUtZXhjdXJzaW9uIChza2lwLWNoYXJzLWZvcndhcmQg IiANCVxuIiBlbmQpIChhbmQgKC89IChwb2ludCkgZW5kKSAobGluZS1iZWdpbm5pbmctcG9zaXRp b24pKSkpIChjb250ZW50cy1lbmQgKGFuZCBjb250ZW50cy1iZWdpbiAocHJvZ24gKGdvdG8tY2hh ciBlbmQpIChza2lwLWNoYXJzLWJhY2t3YXJkICIgDQlcbiIpIChmb3J3YXJkLWxpbmUpIChwb2lu dCkpKSkpIChpZiBjb21tZW50ZWRwIChwcm9nbiAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCBuaWwp KSAoc2V0cSByYXctdmFsdWUgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZyAoY29uY2F0IChyZWdl eHAtcXVvdGUgb3JnLWNvbW1lbnQtc3RyaW5nKSAiXFwoPzogXFx8JFxcKSIpICIiIHJhdy12YWx1 ZSkpKSkpIChpZiBhcmNoaXZlZHAgKHByb2duIChzZXRxIHRhZ3MgKGRlbGV0ZSBvcmctYXJjaGl2 ZS10YWcgdGFncykpKSkgKGxldCAoKGhlYWRsaW5lIChsaXN0IChxdW90ZSBoZWFkbGluZSkgKG5j b25jIChsaXN0IDpyYXctdmFsdWUgcmF3LXZhbHVlIDpiZWdpbiBiZWdpbiA6ZW5kIGVuZCA6cHJl LWJsYW5rIChpZiAuLi4gMCAuLi4pIDpjb250ZW50cy1iZWdpbiBjb250ZW50cy1iZWdpbiA6Y29u dGVudHMtZW5kIGNvbnRlbnRzLWVuZCA6bGV2ZWwgbGV2ZWwgOnByaW9yaXR5IChudGggMyBjb21w b25lbnRzKSA6dGFncyB0YWdzIDp0b2RvLWtleXdvcmQgdG9kbyA6dG9kby10eXBlIHRvZG8tdHlw ZSA6cG9zdC1ibGFuayAoY291bnQtbGluZXMgLi4uIGVuZCkgOmZvb3Rub3RlLXNlY3Rpb24tcCBm b290bm90ZS1zZWN0aW9uLXAgOmFyY2hpdmVkcCBhcmNoaXZlZHAgOmNvbW1lbnRlZHAgY29tbWVu dGVkcCkgdGltZS1wcm9wcyBzdGFuZGFyZC1wcm9wcykpKSkgKGxldCAoKGFsdC10aXRsZSAob3Jn LWVsZW1lbnQtcHJvcGVydHkgOkFMVF9USVRMRSBoZWFkbGluZSkpKSAoaWYgYWx0LXRpdGxlIChw cm9nbiAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGhlYWRsaW5lIDphbHQtdGl0bGUgKGlmIHJh dy1zZWNvbmRhcnktcCBhbHQtdGl0bGUgKG9yZy1lbGVtZW50LXBhcnNlLXNlY29uZGFyeS1zdHJp bmcgYWx0LXRpdGxlIC4uLiBoZWFkbGluZSkpKSkpKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5 IGhlYWRsaW5lIDp0aXRsZSAoaWYgcmF3LXNlY29uZGFyeS1wIHJhdy12YWx1ZSAob3JnLWVsZW1l bnQtcGFyc2Utc2Vjb25kYXJ5LXN0cmluZyByYXctdmFsdWUgKG9yZy1lbGVtZW50LXJlc3RyaWN0 aW9uIChxdW90ZSBoZWFkbGluZSkpIGhlYWRsaW5lKSkpKSkKICAoc2F2ZS1leGN1cnNpb24gKGxl dCogKChjb21wb25lbnRzIChvcmctaGVhZGluZy1jb21wb25lbnRzKSkgKGxldmVsIChudGggMSBj b21wb25lbnRzKSkgKHRvZG8gKG50aCAyIGNvbXBvbmVudHMpKSAodG9kby10eXBlIChhbmQgdG9k byAoaWYgKG1lbWJlciB0b2RvIG9yZy1kb25lLWtleXdvcmRzKSAocXVvdGUgZG9uZSkgKHF1b3Rl IHRvZG8pKSkpICh0YWdzIChsZXQgKChyYXctdGFncyAobnRoIDUgY29tcG9uZW50cykpKSAoYW5k IHJhdy10YWdzIChvcmctc3BsaXQtc3RyaW5nIHJhdy10YWdzICI6IikpKSkgKHJhdy12YWx1ZSAo b3IgKG50aCA0IGNvbXBvbmVudHMpICIiKSkgKGNvbW1lbnRlZHAgKGxldCAoKGNhc2UtZm9sZC1z ZWFyY2ggbmlsKSkgKHN0cmluZy1tYXRjaCAoZm9ybWF0ICJeJXNcXCggXFx8JFxcKSIgb3JnLWNv bW1lbnQtc3RyaW5nKSByYXctdmFsdWUpKSkgKGFyY2hpdmVkcCAobWVtYmVyIG9yZy1hcmNoaXZl LXRhZyB0YWdzKSkgKGZvb3Rub3RlLXNlY3Rpb24tcCAoYW5kIG9yZy1mb290bm90ZS1zZWN0aW9u IChzdHJpbmc9IG9yZy1mb290bm90ZS1zZWN0aW9uIHJhdy12YWx1ZSkpKSAoc3RhbmRhcmQtcHJv cHMgKGxldCAoKGVuZCAoc2F2ZS1leGN1cnNpb24gLi4uIC4uLikpIHBsaXN0KSAoc2F2ZS1leGN1 cnNpb24gKHdoaWxlIChhbmQgLi4uIC4uLikgKGxldCAuLi4gLi4uKSkgcGxpc3QpKSkgKHRpbWUt cHJvcHMgKHNhdmUtZXhjdXJzaW9uIChmb3J3YXJkLWxpbmUpIChpZiAobG9va2luZy1hdCBvcmct cGxhbm5pbmctb3ItY2xvY2stbGluZS1yZSkgKHByb2duIChsZXQgLi4uIC4uLiBwbGlzdCkpKSkp IChiZWdpbiAocG9pbnQpKSAoZW5kIChtaW4gKHNhdmUtZXhjdXJzaW9uIChvcmctZW5kLW9mLXN1 YnRyZWUgdCB0KSkgbGltaXQpKSAocG9zLWFmdGVyLWhlYWQgKHByb2duIChmb3J3YXJkLWxpbmUp IChwb2ludCkpKSAoY29udGVudHMtYmVnaW4gKHNhdmUtZXhjdXJzaW9uIChza2lwLWNoYXJzLWZv cndhcmQgIiANCVxuIiBlbmQpIChhbmQgKC89IChwb2ludCkgZW5kKSAobGluZS1iZWdpbm5pbmct cG9zaXRpb24pKSkpIChjb250ZW50cy1lbmQgKGFuZCBjb250ZW50cy1iZWdpbiAocHJvZ24gKGdv dG8tY2hhciBlbmQpIChza2lwLWNoYXJzLWJhY2t3YXJkICIgDQlcbiIpIChmb3J3YXJkLWxpbmUp IChwb2ludCkpKSkpIChpZiBjb21tZW50ZWRwIChwcm9nbiAobGV0ICgoY2FzZS1mb2xkLXNlYXJj aCBuaWwpKSAoc2V0cSByYXctdmFsdWUgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZyAoY29uY2F0 IC4uLiAiXFwoPzogXFx8JFxcKSIpICIiIHJhdy12YWx1ZSkpKSkpIChpZiBhcmNoaXZlZHAgKHBy b2duIChzZXRxIHRhZ3MgKGRlbGV0ZSBvcmctYXJjaGl2ZS10YWcgdGFncykpKSkgKGxldCAoKGhl YWRsaW5lIChsaXN0IChxdW90ZSBoZWFkbGluZSkgKG5jb25jIChsaXN0IDpyYXctdmFsdWUgcmF3 LXZhbHVlIDpiZWdpbiBiZWdpbiA6ZW5kIGVuZCA6cHJlLWJsYW5rIC4uLiA6Y29udGVudHMtYmVn aW4gY29udGVudHMtYmVnaW4gOmNvbnRlbnRzLWVuZCBjb250ZW50cy1lbmQgOmxldmVsIGxldmVs IDpwcmlvcml0eSAuLi4gOnRhZ3MgdGFncyA6dG9kby1rZXl3b3JkIHRvZG8gOnRvZG8tdHlwZSB0 b2RvLXR5cGUgOnBvc3QtYmxhbmsgLi4uIDpmb290bm90ZS1zZWN0aW9uLXAgZm9vdG5vdGUtc2Vj dGlvbi1wIDphcmNoaXZlZHAgYXJjaGl2ZWRwIDpjb21tZW50ZWRwIGNvbW1lbnRlZHApIHRpbWUt cHJvcHMgc3RhbmRhcmQtcHJvcHMpKSkpIChsZXQgKChhbHQtdGl0bGUgKG9yZy1lbGVtZW50LXBy b3BlcnR5IDpBTFRfVElUTEUgaGVhZGxpbmUpKSkgKGlmIGFsdC10aXRsZSAocHJvZ24gKG9yZy1l bGVtZW50LXB1dC1wcm9wZXJ0eSBoZWFkbGluZSA6YWx0LXRpdGxlIChpZiByYXctc2Vjb25kYXJ5 LXAgYWx0LXRpdGxlIC4uLikpKSkpIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgaGVhZGxpbmUg OnRpdGxlIChpZiByYXctc2Vjb25kYXJ5LXAgcmF3LXZhbHVlIChvcmctZWxlbWVudC1wYXJzZS1z ZWNvbmRhcnktc3RyaW5nIHJhdy12YWx1ZSAob3JnLWVsZW1lbnQtcmVzdHJpY3Rpb24gKHF1b3Rl IGhlYWRsaW5lKSkgaGVhZGxpbmUpKSkpKSkKICBvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIo MjU3NzA2IHQpCiAgKGNvbmQgKChlcSBzcGVjaWFsIChxdW90ZSBpdGVtKSkgKG9yZy1lbGVtZW50 LWl0ZW0tcGFyc2VyIGxpbWl0IHN0cnVjdHVyZSByYXctc2Vjb25kYXJ5LXApKSAoKGVxIHNwZWNp YWwgKHF1b3RlIHRhYmxlLXJvdykpIChvcmctZWxlbWVudC10YWJsZS1yb3ctcGFyc2VyIGxpbWl0 KSkgKChlcSBzcGVjaWFsIChxdW90ZSBub2RlLXByb3BlcnR5KSkgKG9yZy1lbGVtZW50LW5vZGUt cHJvcGVydHktcGFyc2VyIGxpbWl0KSkgKChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQt bGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJl Z2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1y ZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3JnLWF0LWhlYWRp bmctcCkpIChvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIgbGltaXQgcmF3LXNlY29uZGFyeS1w KSkgKChlcSBzcGVjaWFsIChxdW90ZSBzZWN0aW9uKSkgKG9yZy1lbGVtZW50LXNlY3Rpb24tcGFy c2VyIGxpbWl0KSkgKChlcSBzcGVjaWFsIChxdW90ZSBmaXJzdC1zZWN0aW9uKSkgKG9yZy1lbGVt ZW50LXNlY3Rpb24tcGFyc2VyIChvciAoc2F2ZS1leGN1cnNpb24gKGxldCogKChvcmctY2FsbGVk LXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAuLi4pIChvdXRsaW5l LXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIC4uLikp IChvdXRsaW5lLW5leHQtaGVhZGluZykpKSBsaW1pdCkpKSAoKG5vdCAoYm9scCkpIChvcmctZWxl bWVudC1wYXJhZ3JhcGgtcGFyc2VyIGxpbWl0IChsaXN0IChwb2ludCkpKSkgKChsb29raW5nLWF0 IG9yZy1wbGFubmluZy1vci1jbG9jay1saW5lLXJlKSAoaWYgKGVxdWFsIChtYXRjaC1zdHJpbmcg MSkgb3JnLWNsb2NrLXN0cmluZykgKG9yZy1lbGVtZW50LWNsb2NrLXBhcnNlciBsaW1pdCkgKG9y Zy1lbGVtZW50LXBsYW5uaW5nLXBhcnNlciBsaW1pdCkpKSAoKG9yZy1hdC1oZWFkaW5nLXApIChv cmctZWxlbWVudC1pbmxpbmV0YXNrLXBhcnNlciBsaW1pdCByYXctc2Vjb25kYXJ5LXApKSAodCAo bGV0ICgoYWZmaWxpYXRlZCAob3JnLWVsZW1lbnQtLWNvbGxlY3QtYWZmaWxpYXRlZC1rZXl3b3Jk cyBsaW1pdCkpKSAoY29uZCAoKGFuZCAoY2RyIGFmZmlsaWF0ZWQpICg+PSAocG9pbnQpIGxpbWl0 KSkgKGdvdG8tY2hhciAoY2FyIGFmZmlsaWF0ZWQpKSAob3JnLWVsZW1lbnQta2V5d29yZC1wYXJz ZXIgbGltaXQgbmlsKSkgKChsb29raW5nLWF0ICJbICAgICBdKlxcXFxiZWdpbntbQS1aYS16MC05 Kl0rfVxcKFxcWy4qP1xcXVxcfHsuKj99XFwpKlsgICAgIF0qJCIpIChvcmctZWxlbWVudC1sYXRl eC1lbnZpcm9ubWVudC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCBvcmct ZHJhd2VyLXJlZ2V4cCkgKGlmIChlcXVhbCAobWF0Y2gtc3RyaW5nIDEpICJQUk9QRVJUSUVTIikg KG9yZy1lbGVtZW50LXByb3BlcnR5LWRyYXdlci1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkgKG9y Zy1lbGVtZW50LWRyYXdlci1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpKSAoKGxvb2tpbmctYXQg IlsgICBdKjpcXCggXFx8JFxcKSIpIChvcmctZWxlbWVudC1maXhlZC13aWR0aC1wYXJzZXIgbGlt aXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiWyAgICAgXSojIikgKGdvdG8tY2hhciAobWF0 Y2gtZW5kIDApKSAoY29uZCAoKGxvb2tpbmctYXQgIlxcKD86IFxcfCRcXCkiKSAoYmVnaW5uaW5n LW9mLWxpbmUpIChvcmctZWxlbWVudC1jb21tZW50LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkg KChsb29raW5nLWF0ICJcXCtCRUdJTl9cXChcXFMtK1xcKSIpIChiZWdpbm5pbmctb2YtbGluZSkg KGxldCAuLi4gLi4uKSkgKChsb29raW5nLWF0ICJcXCtDQUxMOiIpIChiZWdpbm5pbmctb2YtbGlu ZSkgKG9yZy1lbGVtZW50LWJhYmVsLWNhbGwtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxv b2tpbmctYXQgIlxcK0JFR0lOOj8gIikgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQt ZHluYW1pYy1ibG9jay1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiXFwr XFxTLSs6IikgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQta2V5d29yZC1wYXJzZXIg bGltaXQgYWZmaWxpYXRlZCkpICh0IChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LXBh cmFncmFwaC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpKSkgKChsb29raW5nLWF0IG9yZy1mb290 bm90ZS1kZWZpbml0aW9uLXJlKSAob3JnLWVsZW1lbnQtZm9vdG5vdGUtZGVmaW5pdGlvbi1wYXJz ZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiWyAgIF0qLVxcezUsXFx9WyAgICBd KiQiKSAob3JnLWVsZW1lbnQtaG9yaXpvbnRhbC1ydWxlLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVk KSkgKChsb29raW5nLWF0ICIlJSgiKSAob3JnLWVsZW1lbnQtZGlhcnktc2V4cC1wYXJzZXIgbGlt aXQgYWZmaWxpYXRlZCkpICgob3JnLWF0LXRhYmxlLXAgdCkgKG9yZy1lbGVtZW50LXRhYmxlLXBh cnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0IChvcmctaXRlbS1yZSkpIChvcmct ZWxlbWVudC1wbGFpbi1saXN0LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkIChvciBzdHJ1Y3R1cmUg KG9yZy1lbGVtZW50LS1saXN0LXN0cnVjdCBsaW1pdCkpKSkgKHQgKG9yZy1lbGVtZW50LXBhcmFn cmFwaC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpKSkpKQogIChsZXQgKChjYXNlLWZvbGQtc2Vh cmNoIHQpIChyYXctc2Vjb25kYXJ5LXAgKGFuZCBncmFudWxhcml0eSAobm90IChlcSBncmFudWxh cml0eSAocXVvdGUgb2JqZWN0KSkpKSkpIChjb25kICgoZXEgc3BlY2lhbCAocXVvdGUgaXRlbSkp IChvcmctZWxlbWVudC1pdGVtLXBhcnNlciBsaW1pdCBzdHJ1Y3R1cmUgcmF3LXNlY29uZGFyeS1w KSkgKChlcSBzcGVjaWFsIChxdW90ZSB0YWJsZS1yb3cpKSAob3JnLWVsZW1lbnQtdGFibGUtcm93 LXBhcnNlciBsaW1pdCkpICgoZXEgc3BlY2lhbCAocXVvdGUgbm9kZS1wcm9wZXJ0eSkpIChvcmct ZWxlbWVudC1ub2RlLXByb3BlcnR5LXBhcnNlciBsaW1pdCkpICgobGV0KiAoKG9yZy1jYWxsZWQt d2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0 ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAo b3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkg KG9yZy1hdC1oZWFkaW5nLXApKSAob3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFyc2VyIGxpbWl0IHJh dy1zZWNvbmRhcnktcCkpICgoZXEgc3BlY2lhbCAocXVvdGUgc2VjdGlvbikpIChvcmctZWxlbWVu dC1zZWN0aW9uLXBhcnNlciBsaW1pdCkpICgoZXEgc3BlY2lhbCAocXVvdGUgZmlyc3Qtc2VjdGlv bikpIChvcmctZWxlbWVudC1zZWN0aW9uLXBhcnNlciAob3IgKHNhdmUtZXhjdXJzaW9uIChsZXQq ICguLi4gLi4uIC4uLiAuLi4pIChvdXRsaW5lLW5leHQtaGVhZGluZykpKSBsaW1pdCkpKSAoKG5v dCAoYm9scCkpIChvcmctZWxlbWVudC1wYXJhZ3JhcGgtcGFyc2VyIGxpbWl0IChsaXN0IChwb2lu dCkpKSkgKChsb29raW5nLWF0IG9yZy1wbGFubmluZy1vci1jbG9jay1saW5lLXJlKSAoaWYgKGVx dWFsIChtYXRjaC1zdHJpbmcgMSkgb3JnLWNsb2NrLXN0cmluZykgKG9yZy1lbGVtZW50LWNsb2Nr LXBhcnNlciBsaW1pdCkgKG9yZy1lbGVtZW50LXBsYW5uaW5nLXBhcnNlciBsaW1pdCkpKSAoKG9y Zy1hdC1oZWFkaW5nLXApIChvcmctZWxlbWVudC1pbmxpbmV0YXNrLXBhcnNlciBsaW1pdCByYXct c2Vjb25kYXJ5LXApKSAodCAobGV0ICgoYWZmaWxpYXRlZCAob3JnLWVsZW1lbnQtLWNvbGxlY3Qt YWZmaWxpYXRlZC1rZXl3b3JkcyBsaW1pdCkpKSAoY29uZCAoKGFuZCAoY2RyIGFmZmlsaWF0ZWQp ICg+PSAuLi4gbGltaXQpKSAoZ290by1jaGFyIChjYXIgYWZmaWxpYXRlZCkpIChvcmctZWxlbWVu dC1rZXl3b3JkLXBhcnNlciBsaW1pdCBuaWwpKSAoKGxvb2tpbmctYXQgIlsgICAgICAgIF0qXFxc XGJlZ2lue1tBLVphLXowLTkqXSt9XFwoXFxbLio/XFxdXFx8ey4qP31cXCkqWyAgICAgXSokIikg KG9yZy1lbGVtZW50LWxhdGV4LWVudmlyb25tZW50LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkg KChsb29raW5nLWF0IG9yZy1kcmF3ZXItcmVnZXhwKSAoaWYgKGVxdWFsIC4uLiAiUFJPUEVSVElF UyIpIChvcmctZWxlbWVudC1wcm9wZXJ0eS1kcmF3ZXItcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQp IChvcmctZWxlbWVudC1kcmF3ZXItcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSkgKChsb29raW5n LWF0ICJbICAgICAgICBdKjpcXCggXFx8JFxcKSIpIChvcmctZWxlbWVudC1maXhlZC13aWR0aC1w YXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiWyAgICAgXSojIikgKGdvdG8t Y2hhciAobWF0Y2gtZW5kIDApKSAoY29uZCAoLi4uIC4uLiAuLi4pICguLi4gLi4uIC4uLikgKC4u LiAuLi4gLi4uKSAoLi4uIC4uLiAuLi4pICguLi4gLi4uIC4uLikgKHQgLi4uIC4uLikpKSAoKGxv b2tpbmctYXQgb3JnLWZvb3Rub3RlLWRlZmluaXRpb24tcmUpIChvcmctZWxlbWVudC1mb290bm90 ZS1kZWZpbml0aW9uLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJbICAg XSotXFx7NSxcXH1bICAgIF0qJCIpIChvcmctZWxlbWVudC1ob3Jpem9udGFsLXJ1bGUtcGFyc2Vy IGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIiUlKCIpIChvcmctZWxlbWVudC1kaWFy eS1zZXhwLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChvcmctYXQtdGFibGUtcCB0KSAob3Jn LWVsZW1lbnQtdGFibGUtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgKG9y Zy1pdGVtLXJlKSkgKG9yZy1lbGVtZW50LXBsYWluLWxpc3QtcGFyc2VyIGxpbWl0IGFmZmlsaWF0 ZWQgKG9yIHN0cnVjdHVyZSAuLi4pKSkgKHQgKG9yZy1lbGVtZW50LXBhcmFncmFwaC1wYXJzZXIg bGltaXQgYWZmaWxpYXRlZCkpKSkpKSkKICAoc2F2ZS1leGN1cnNpb24gKGxldCAoKGNhc2UtZm9s ZC1zZWFyY2ggdCkgKHJhdy1zZWNvbmRhcnktcCAoYW5kIGdyYW51bGFyaXR5IChub3QgKGVxIGdy YW51bGFyaXR5IChxdW90ZSBvYmplY3QpKSkpKSkgKGNvbmQgKChlcSBzcGVjaWFsIChxdW90ZSBp dGVtKSkgKG9yZy1lbGVtZW50LWl0ZW0tcGFyc2VyIGxpbWl0IHN0cnVjdHVyZSByYXctc2Vjb25k YXJ5LXApKSAoKGVxIHNwZWNpYWwgKHF1b3RlIHRhYmxlLXJvdykpIChvcmctZWxlbWVudC10YWJs ZS1yb3ctcGFyc2VyIGxpbWl0KSkgKChlcSBzcGVjaWFsIChxdW90ZSBub2RlLXByb3BlcnR5KSkg KG9yZy1lbGVtZW50LW5vZGUtcHJvcGVydHktcGFyc2VyIGxpbWl0KSkgKChsZXQqICgob3JnLWNh bGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQt bGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdl eHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4 cCkpKSAob3JnLWF0LWhlYWRpbmctcCkpIChvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIgbGlt aXQgcmF3LXNlY29uZGFyeS1wKSkgKChlcSBzcGVjaWFsIChxdW90ZSBzZWN0aW9uKSkgKG9yZy1l bGVtZW50LXNlY3Rpb24tcGFyc2VyIGxpbWl0KSkgKChlcSBzcGVjaWFsIChxdW90ZSBmaXJzdC1z ZWN0aW9uKSkgKG9yZy1lbGVtZW50LXNlY3Rpb24tcGFyc2VyIChvciAoc2F2ZS1leGN1cnNpb24g KGxldCogLi4uIC4uLikpIGxpbWl0KSkpICgobm90IChib2xwKSkgKG9yZy1lbGVtZW50LXBhcmFn cmFwaC1wYXJzZXIgbGltaXQgKGxpc3QgKHBvaW50KSkpKSAoKGxvb2tpbmctYXQgb3JnLXBsYW5u aW5nLW9yLWNsb2NrLWxpbmUtcmUpIChpZiAoZXF1YWwgKG1hdGNoLXN0cmluZyAxKSBvcmctY2xv Y2stc3RyaW5nKSAob3JnLWVsZW1lbnQtY2xvY2stcGFyc2VyIGxpbWl0KSAob3JnLWVsZW1lbnQt cGxhbm5pbmctcGFyc2VyIGxpbWl0KSkpICgob3JnLWF0LWhlYWRpbmctcCkgKG9yZy1lbGVtZW50 LWlubGluZXRhc2stcGFyc2VyIGxpbWl0IHJhdy1zZWNvbmRhcnktcCkpICh0IChsZXQgKChhZmZp bGlhdGVkIChvcmctZWxlbWVudC0tY29sbGVjdC1hZmZpbGlhdGVkLWtleXdvcmRzIGxpbWl0KSkp IChjb25kICgoYW5kIC4uLiAuLi4pIChnb3RvLWNoYXIgLi4uKSAob3JnLWVsZW1lbnQta2V5d29y ZC1wYXJzZXIgbGltaXQgbmlsKSkgKChsb29raW5nLWF0ICJbICAgICAgXSpcXFxcYmVnaW57W0Et WmEtejAtOSpdK31cXChcXFsuKj9cXF1cXHx7Lio/fVxcKSpbICAgICBdKiQiKSAob3JnLWVsZW1l bnQtbGF0ZXgtZW52aXJvbm1lbnQtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmct YXQgb3JnLWRyYXdlci1yZWdleHApIChpZiAuLi4gLi4uIC4uLikpICgobG9va2luZy1hdCAiWyAg ICAgICAgXSo6XFwoIFxcfCRcXCkiKSAob3JnLWVsZW1lbnQtZml4ZWQtd2lkdGgtcGFyc2VyIGxp bWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlsgICAgIF0qIyIpIChnb3RvLWNoYXIgLi4u KSAoY29uZCAuLi4gLi4uIC4uLiAuLi4gLi4uIC4uLikpICgobG9va2luZy1hdCBvcmctZm9vdG5v dGUtZGVmaW5pdGlvbi1yZSkgKG9yZy1lbGVtZW50LWZvb3Rub3RlLWRlZmluaXRpb24tcGFyc2Vy IGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlsgICAgICAgXSotXFx7NSxcXH1bICAg IF0qJCIpIChvcmctZWxlbWVudC1ob3Jpem9udGFsLXJ1bGUtcGFyc2VyIGxpbWl0IGFmZmlsaWF0 ZWQpKSAoKGxvb2tpbmctYXQgIiUlKCIpIChvcmctZWxlbWVudC1kaWFyeS1zZXhwLXBhcnNlciBs aW1pdCBhZmZpbGlhdGVkKSkgKChvcmctYXQtdGFibGUtcCB0KSAob3JnLWVsZW1lbnQtdGFibGUt cGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgLi4uKSAob3JnLWVsZW1lbnQt cGxhaW4tbGlzdC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCAuLi4pKSAodCAob3JnLWVsZW1lbnQt cGFyYWdyYXBoLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkpKSkpKSkKICBvcmctZWxlbWVudC0t Y3VycmVudC1lbGVtZW50KDI1NzcwNiBlbGVtZW50IG5pbCBuaWwpCiAgKHNldHEgZWxlbWVudCAo b3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVudCBlbmQgKHF1b3RlIGVsZW1lbnQpIHNwZWNpYWwt ZmxhZyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnN0cnVjdHVyZSBwYXJlbnQpKSkKICAoaWYgZWxl bWVudCBuaWwgKHNldHEgZWxlbWVudCAob3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVudCBlbmQg KHF1b3RlIGVsZW1lbnQpIHNwZWNpYWwtZmxhZyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnN0cnVj dHVyZSBwYXJlbnQpKSkgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBlbGVtZW50IDpwYXJlbnQg cGFyZW50KSAob3JnLWVsZW1lbnQtLWNhY2hlLXB1dCBlbGVtZW50KSkKICAod2hpbGUgdCAoaWYg c3luY3AgKHByb2duIChjb25kICgoPSAocG9pbnQpIHBvcykgKHRocm93IChxdW90ZSBleGl0KSBw YXJlbnQpKSAoKG9yZy1lbGVtZW50LS1jYWNoZS1pbnRlcnJ1cHQtcCB0aW1lLWxpbWl0KSAodGhy b3cgKHF1b3RlIGludGVycnVwdCkgbmlsKSkpKSkgKGlmIGVsZW1lbnQgbmlsIChzZXRxIGVsZW1l bnQgKG9yZy1lbGVtZW50LS1jdXJyZW50LWVsZW1lbnQgZW5kIChxdW90ZSBlbGVtZW50KSBzcGVj aWFsLWZsYWcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpzdHJ1Y3R1cmUgcGFyZW50KSkpIChvcmct ZWxlbWVudC1wdXQtcHJvcGVydHkgZWxlbWVudCA6cGFyZW50IHBhcmVudCkgKG9yZy1lbGVtZW50 LS1jYWNoZS1wdXQgZWxlbWVudCkpIChsZXQgKChlbGVtLWVuZCAob3JnLWVsZW1lbnQtcHJvcGVy dHkgOmVuZCBlbGVtZW50KSkgKHR5cGUgKG9yZy1lbGVtZW50LXR5cGUgZWxlbWVudCkpKSAoY29u ZCAoKGFuZCAoPD0gZWxlbS1lbmQgcG9zKSAoLz0gKHBvaW50LW1heCkgZWxlbS1lbmQpKSAoZ290 by1jaGFyIGVsZW0tZW5kKSkgKChub3QgKG1lbXEgdHlwZSBvcmctZWxlbWVudC1ncmVhdGVyLWVs ZW1lbnRzKSkgKHRocm93IChxdW90ZSBleGl0KSBlbGVtZW50KSkgKChsZXQgKChjYmVnIChvcmct ZWxlbWVudC1wcm9wZXJ0eSA6Y29udGVudHMtYmVnaW4gZWxlbWVudCkpIChjZW5kIChvcmctZWxl bWVudC1wcm9wZXJ0eSA6Y29udGVudHMtZW5kIGVsZW1lbnQpKSkgKGlmIChvciBzeW5jcCAoYW5k IGNiZWcgY2VuZCAuLi4gLi4uKSkgKHByb2duIChnb3RvLWNoYXIgLi4uKSAoc2V0cSBuZXh0IG5p bCBzcGVjaWFsLWZsYWcgLi4uIHBhcmVudCBlbGVtZW50IGVuZCBjZW5kKSkpKSkgKHQgKHRocm93 IChxdW90ZSBleGl0KSBlbGVtZW50KSkpKSAoc2V0cSBlbGVtZW50IG5pbCkpCiAgKGxldCAoKGVu ZCAob3IgKG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkgKHNhdmUtZXhjdXJzaW9u IChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1y ZWdleHAgLi4uKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxp bmUtcmVnZXhwLWJvbCAuLi4pKSAob3V0bGluZS1uZXh0LWhlYWRpbmcpKSAocG9pbnQpKSkpIChw YXJlbnQgZWxlbWVudCkgc3BlY2lhbC1mbGFnKSAod2hpbGUgdCAoaWYgc3luY3AgKHByb2duIChj b25kICgoPSAocG9pbnQpIHBvcykgKHRocm93IChxdW90ZSBleGl0KSBwYXJlbnQpKSAoKG9yZy1l bGVtZW50LS1jYWNoZS1pbnRlcnJ1cHQtcCB0aW1lLWxpbWl0KSAodGhyb3cgKHF1b3RlIGludGVy cnVwdCkgbmlsKSkpKSkgKGlmIGVsZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50 LS1jdXJyZW50LWVsZW1lbnQgZW5kIChxdW90ZSBlbGVtZW50KSBzcGVjaWFsLWZsYWcgKG9yZy1l bGVtZW50LXByb3BlcnR5IDpzdHJ1Y3R1cmUgcGFyZW50KSkpIChvcmctZWxlbWVudC1wdXQtcHJv cGVydHkgZWxlbWVudCA6cGFyZW50IHBhcmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQgZWxl bWVudCkpIChsZXQgKChlbGVtLWVuZCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50 KSkgKHR5cGUgKG9yZy1lbGVtZW50LXR5cGUgZWxlbWVudCkpKSAoY29uZCAoKGFuZCAoPD0gZWxl bS1lbmQgcG9zKSAoLz0gKHBvaW50LW1heCkgZWxlbS1lbmQpKSAoZ290by1jaGFyIGVsZW0tZW5k KSkgKChub3QgKG1lbXEgdHlwZSBvcmctZWxlbWVudC1ncmVhdGVyLWVsZW1lbnRzKSkgKHRocm93 IChxdW90ZSBleGl0KSBlbGVtZW50KSkgKChsZXQgKChjYmVnIC4uLikgKGNlbmQgLi4uKSkgKGlm IChvciBzeW5jcCAuLi4pIChwcm9nbiAuLi4gLi4uKSkpKSAodCAodGhyb3cgKHF1b3RlIGV4aXQp IGVsZW1lbnQpKSkpIChzZXRxIGVsZW1lbnQgbmlsKSkpCiAgKGxldCogKChjYWNoZWQgKGFuZCAo b3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAob3JnLWVsZW1lbnQtLWNhY2hlLWZpbmQgcG9z IG5pbCkpKSAoYmVnaW4gKG9yZy1lbGVtZW50LXByb3BlcnR5IDpiZWdpbiBjYWNoZWQpKSBlbGVt ZW50IG5leHQpIChjb25kICgobm90IGNhY2hlZCkgKGlmIChsZXQqICgob3JnLWNhbGxlZC13aXRo LWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1v dXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmct b3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3V0 bGluZS1wcmV2aW91cy1oZWFkaW5nKSkgKHByb2duIChmb3J3YXJkLWxpbmUpKSkgKHNraXAtY2hh cnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAoKD0gcG9zIGJlZ2luKSAo dGhyb3cgKHF1b3RlIGV4aXQpIChpZiBzeW5jcCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhcmVu dCBjYWNoZWQpIGNhY2hlZCkpKSAoKHJlLXNlYXJjaC1iYWNrd2FyZCAobGV0KiAoKG9yZy1jYWxs ZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxp bWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhw KSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHAp KSkgb3JnLW91dGxpbmUtcmVnZXhwLWJvbCkgYmVnaW4gdCkgKGZvcndhcmQtbGluZSkgKHNraXAt Y2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAodCAobGV0ICgodXAg Y2FjaGVkKSAocG9zIChpZiAoPSAuLi4gcG9zKSAoMS0gcG9zKSBwb3MpKSkgKGdvdG8tY2hhciAo b3IgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpjb250ZW50cy1iZWdpbiBjYWNoZWQpIGJlZ2luKSkg KHdoaWxlIChsZXQgKChlbmQgLi4uKSkgKGFuZCAoPD0gZW5kIHBvcykgKGdvdG8tY2hhciBlbmQp IChzZXRxIHVwIC4uLikpKSkgKGNvbmQgKChub3QgdXApKSAoKGVvYnApIChzZXRxIGVsZW1lbnQg dXApKSAodCAoc2V0cSBlbGVtZW50IHVwIG5leHQgKHBvaW50KSkpKSkpKSAobGV0ICgoZW5kIChv ciAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSAoc2F2ZS1leGN1cnNpb24gKGxl dCogKC4uLiAuLi4gLi4uIC4uLikgKG91dGxpbmUtbmV4dC1oZWFkaW5nKSkgKHBvaW50KSkpKSAo cGFyZW50IGVsZW1lbnQpIHNwZWNpYWwtZmxhZykgKHdoaWxlIHQgKGlmIHN5bmNwIChwcm9nbiAo Y29uZCAoKD0gLi4uIHBvcykgKHRocm93IC4uLiBwYXJlbnQpKSAoKG9yZy1lbGVtZW50LS1jYWNo ZS1pbnRlcnJ1cHQtcCB0aW1lLWxpbWl0KSAodGhyb3cgLi4uIG5pbCkpKSkpIChpZiBlbGVtZW50 IG5pbCAoc2V0cSBlbGVtZW50IChvcmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50IGVuZCAocXVv dGUgZWxlbWVudCkgc3BlY2lhbC1mbGFnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6c3RydWN0dXJl IHBhcmVudCkpKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVudCBwYXJl bnQpIChvcmctZWxlbWVudC0tY2FjaGUtcHV0IGVsZW1lbnQpKSAobGV0ICgoZWxlbS1lbmQgKG9y Zy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkpICh0eXBlIChvcmctZWxlbWVudC10eXBl IGVsZW1lbnQpKSkgKGNvbmQgKChhbmQgKDw9IGVsZW0tZW5kIHBvcykgKC89IC4uLiBlbGVtLWVu ZCkpIChnb3RvLWNoYXIgZWxlbS1lbmQpKSAoKG5vdCAobWVtcSB0eXBlIG9yZy1lbGVtZW50LWdy ZWF0ZXItZWxlbWVudHMpKSAodGhyb3cgKHF1b3RlIGV4aXQpIGVsZW1lbnQpKSAoKGxldCAoLi4u IC4uLikgKGlmIC4uLiAuLi4pKSkgKHQgKHRocm93IChxdW90ZSBleGl0KSBlbGVtZW50KSkpKSAo c2V0cSBlbGVtZW50IG5pbCkpKSkKICAoc2F2ZS1yZXN0cmljdGlvbiAod2lkZW4pIChnb3RvLWNo YXIgcG9zKSAobGV0KiAoKGNhY2hlZCAoYW5kIChvcmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXAp IChvcmctZWxlbWVudC0tY2FjaGUtZmluZCBwb3MgbmlsKSkpIChiZWdpbiAob3JnLWVsZW1lbnQt cHJvcGVydHkgOmJlZ2luIGNhY2hlZCkpIGVsZW1lbnQgbmV4dCkgKGNvbmQgKChub3QgY2FjaGVk KSAoaWYgKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRs aW5lLXJlZ2V4cCAuLi4pIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmct b3V0bGluZS1yZWdleHAtYm9sIC4uLikpIChvdXRsaW5lLXByZXZpb3VzLWhlYWRpbmcpKSAocHJv Z24gKGZvcndhcmQtbGluZSkpKSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5p bmctb2YtbGluZSkpICgoPSBwb3MgYmVnaW4pICh0aHJvdyAocXVvdGUgZXhpdCkgKGlmIHN5bmNw IChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGFyZW50IGNhY2hlZCkgY2FjaGVkKSkpICgocmUtc2Vh cmNoLWJhY2t3YXJkIChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChv cmctb3V0bGluZS1yZWdleHAgLi4uKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhw KSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAuLi4pKSBvcmctb3V0bGluZS1yZWdleHAtYm9sKSBi ZWdpbiB0KSAoZm9yd2FyZC1saW5lKSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIpIChiZWdp bm5pbmctb2YtbGluZSkpICh0IChsZXQgKCh1cCBjYWNoZWQpIChwb3MgKGlmIC4uLiAuLi4gcG9z KSkpIChnb3RvLWNoYXIgKG9yIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6Y29udGVudHMtYmVnaW4g Y2FjaGVkKSBiZWdpbikpICh3aGlsZSAobGV0ICguLi4pIChhbmQgLi4uIC4uLiAuLi4pKSkgKGNv bmQgKChub3QgdXApKSAoKGVvYnApIChzZXRxIGVsZW1lbnQgdXApKSAodCAoc2V0cSBlbGVtZW50 IHVwIG5leHQgLi4uKSkpKSkpIChsZXQgKChlbmQgKG9yIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6 ZW5kIGVsZW1lbnQpIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAuLi4gLi4uKSAocG9pbnQpKSkpIChw YXJlbnQgZWxlbWVudCkgc3BlY2lhbC1mbGFnKSAod2hpbGUgdCAoaWYgc3luY3AgKHByb2duIChj b25kICguLi4gLi4uKSAoLi4uIC4uLikpKSkgKGlmIGVsZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQg KG9yZy1lbGVtZW50LS1jdXJyZW50LWVsZW1lbnQgZW5kIChxdW90ZSBlbGVtZW50KSBzcGVjaWFs LWZsYWcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpzdHJ1Y3R1cmUgcGFyZW50KSkpIChvcmctZWxl bWVudC1wdXQtcHJvcGVydHkgZWxlbWVudCA6cGFyZW50IHBhcmVudCkgKG9yZy1lbGVtZW50LS1j YWNoZS1wdXQgZWxlbWVudCkpIChsZXQgKChlbGVtLWVuZCAob3JnLWVsZW1lbnQtcHJvcGVydHkg OmVuZCBlbGVtZW50KSkgKHR5cGUgKG9yZy1lbGVtZW50LXR5cGUgZWxlbWVudCkpKSAoY29uZCAo KGFuZCAuLi4gLi4uKSAoZ290by1jaGFyIGVsZW0tZW5kKSkgKChub3QgLi4uKSAodGhyb3cgLi4u IGVsZW1lbnQpKSAoKGxldCAuLi4gLi4uKSkgKHQgKHRocm93IC4uLiBlbGVtZW50KSkpKSAoc2V0 cSBlbGVtZW50IG5pbCkpKSkpCiAgKHNhdmUtZXhjdXJzaW9uIChzYXZlLXJlc3RyaWN0aW9uICh3 aWRlbikgKGdvdG8tY2hhciBwb3MpIChsZXQqICgoY2FjaGVkIChhbmQgKG9yZy1lbGVtZW50LS1j YWNoZS1hY3RpdmUtcCkgKG9yZy1lbGVtZW50LS1jYWNoZS1maW5kIHBvcyBuaWwpKSkgKGJlZ2lu IChvcmctZWxlbWVudC1wcm9wZXJ0eSA6YmVnaW4gY2FjaGVkKSkgZWxlbWVudCBuZXh0KSAoY29u ZCAoKG5vdCBjYWNoZWQpIChpZiAobGV0KiAoLi4uIC4uLiAuLi4gLi4uKSAob3V0bGluZS1wcmV2 aW91cy1oZWFkaW5nKSkgKHByb2duIChmb3J3YXJkLWxpbmUpKSkgKHNraXAtY2hhcnMtZm9yd2Fy ZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAoKD0gcG9zIGJlZ2luKSAodGhyb3cgKHF1 b3RlIGV4aXQpIChpZiBzeW5jcCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhcmVudCBjYWNoZWQp IGNhY2hlZCkpKSAoKHJlLXNlYXJjaC1iYWNrd2FyZCAobGV0KiAoLi4uIC4uLiAuLi4gLi4uKSBv cmctb3V0bGluZS1yZWdleHAtYm9sKSBiZWdpbiB0KSAoZm9yd2FyZC1saW5lKSAoc2tpcC1jaGFy cy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkpICh0IChsZXQgKCh1cCBjYWNo ZWQpIChwb3MgLi4uKSkgKGdvdG8tY2hhciAob3IgLi4uIGJlZ2luKSkgKHdoaWxlIChsZXQgLi4u IC4uLikpIChjb25kICguLi4pICguLi4gLi4uKSAodCAuLi4pKSkpKSAobGV0ICgoZW5kIChvciAo b3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSAoc2F2ZS1leGN1cnNpb24gLi4uIC4u LikpKSAocGFyZW50IGVsZW1lbnQpIHNwZWNpYWwtZmxhZykgKHdoaWxlIHQgKGlmIHN5bmNwIChw cm9nbiAoY29uZCAuLi4gLi4uKSkpIChpZiBlbGVtZW50IG5pbCAoc2V0cSBlbGVtZW50IChvcmct ZWxlbWVudC0tY3VycmVudC1lbGVtZW50IGVuZCAuLi4gc3BlY2lhbC1mbGFnIC4uLikpIChvcmct ZWxlbWVudC1wdXQtcHJvcGVydHkgZWxlbWVudCA6cGFyZW50IHBhcmVudCkgKG9yZy1lbGVtZW50 LS1jYWNoZS1wdXQgZWxlbWVudCkpIChsZXQgKChlbGVtLWVuZCAuLi4pICh0eXBlIC4uLikpIChj b25kICguLi4gLi4uKSAoLi4uIC4uLikgKC4uLikgKHQgLi4uKSkpIChzZXRxIGVsZW1lbnQgbmls KSkpKSkpCiAgKGNhdGNoIChxdW90ZSBleGl0KSAoc2F2ZS1leGN1cnNpb24gKHNhdmUtcmVzdHJp Y3Rpb24gKHdpZGVuKSAoZ290by1jaGFyIHBvcykgKGxldCogKChjYWNoZWQgKGFuZCAob3JnLWVs ZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAob3JnLWVsZW1lbnQtLWNhY2hlLWZpbmQgcG9zIG5pbCkp KSAoYmVnaW4gKG9yZy1lbGVtZW50LXByb3BlcnR5IDpiZWdpbiBjYWNoZWQpKSBlbGVtZW50IG5l eHQpIChjb25kICgobm90IGNhY2hlZCkgKGlmIChsZXQqIC4uLiAuLi4pIChwcm9nbiAuLi4pKSAo c2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkpICgoPSBwb3Mg YmVnaW4pICh0aHJvdyAocXVvdGUgZXhpdCkgKGlmIHN5bmNwIC4uLiBjYWNoZWQpKSkgKChyZS1z ZWFyY2gtYmFja3dhcmQgKGxldCogLi4uIG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wpIGJlZ2luIHQp IChmb3J3YXJkLWxpbmUpIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1v Zi1saW5lKSkgKHQgKGxldCAoLi4uIC4uLikgKGdvdG8tY2hhciAuLi4pICh3aGlsZSAuLi4pIChj b25kIC4uLiAuLi4gLi4uKSkpKSAobGV0ICgoZW5kIChvciAuLi4gLi4uKSkgKHBhcmVudCBlbGVt ZW50KSBzcGVjaWFsLWZsYWcpICh3aGlsZSB0IChpZiBzeW5jcCAocHJvZ24gLi4uKSkgKGlmIGVs ZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQgLi4uKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGVs ZW1lbnQgOnBhcmVudCBwYXJlbnQpIChvcmctZWxlbWVudC0tY2FjaGUtcHV0IGVsZW1lbnQpKSAo bGV0ICguLi4gLi4uKSAoY29uZCAuLi4gLi4uIC4uLiAuLi4pKSAoc2V0cSBlbGVtZW50IG5pbCkp KSkpKSkKICBvcmctZWxlbWVudC0tcGFyc2UtdG8oMjU3MjgwKQogIChjb25kICgoYm9icCkgbmls KSAoKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5l LXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhw IG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIg b3JnLW91dGxpbmUtcmVnZXhwKSkpIChvcmctYXQtaGVhZGluZy1wKSkgKGJlZ2lubmluZy1vZi1s aW5lKSAob3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFyc2VyIChwb2ludC1tYXgpIHQpKSAodCAoaWYg KG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKHByb2duIChpZiAobm90IG9yZy1lbGVtZW50 LS1jYWNoZSkgKG9yZy1lbGVtZW50LWNhY2hlLXJlc2V0KSAob3JnLWVsZW1lbnQtLWNhY2hlLXN5 bmMgKGN1cnJlbnQtYnVmZmVyKSBvcmlnaW4pKSkpIChvcmctZWxlbWVudC0tcGFyc2UtdG8gb3Jp Z2luKSkpCiAgKGxldCAoKG9yaWdpbiAocG9pbnQpKSkgKGVuZC1vZi1saW5lKSAoc2tpcC1jaGFy cy1iYWNrd2FyZCAiIA0JXG4iKSAoY29uZCAoKGJvYnApIG5pbCkgKChsZXQqICgob3JnLWNhbGxl ZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGlt aXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHAp IChvcmctb3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkp KSAob3JnLWF0LWhlYWRpbmctcCkpIChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWhl YWRsaW5lLXBhcnNlciAocG9pbnQtbWF4KSB0KSkgKHQgKGlmIChvcmctZWxlbWVudC0tY2FjaGUt YWN0aXZlLXApIChwcm9nbiAoaWYgKG5vdCBvcmctZWxlbWVudC0tY2FjaGUpIChvcmctZWxlbWVu dC1jYWNoZS1yZXNldCkgKG9yZy1lbGVtZW50LS1jYWNoZS1zeW5jIChjdXJyZW50LWJ1ZmZlcikg b3JpZ2luKSkpKSAob3JnLWVsZW1lbnQtLXBhcnNlLXRvIG9yaWdpbikpKSkKICAoc2F2ZS1yZXN0 cmljdGlvbiAod2lkZW4pIChsZXQgKChvcmlnaW4gKHBvaW50KSkpIChlbmQtb2YtbGluZSkgKHNr aXAtY2hhcnMtYmFja3dhcmQgIiANCVxuIikgKGNvbmQgKChib2JwKSBuaWwpICgobGV0KiAoKG9y Zy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmct Z2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUt cmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1y ZWdleHApKSkgKG9yZy1hdC1oZWFkaW5nLXApKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxl bWVudC1oZWFkbGluZS1wYXJzZXIgKHBvaW50LW1heCkgdCkpICh0IChpZiAob3JnLWVsZW1lbnQt LWNhY2hlLWFjdGl2ZS1wKSAocHJvZ24gKGlmIChub3Qgb3JnLWVsZW1lbnQtLWNhY2hlKSAob3Jn LWVsZW1lbnQtY2FjaGUtcmVzZXQpIChvcmctZWxlbWVudC0tY2FjaGUtc3luYyAuLi4gb3JpZ2lu KSkpKSAob3JnLWVsZW1lbnQtLXBhcnNlLXRvIG9yaWdpbikpKSkpCiAgKHNhdmUtZXhjdXJzaW9u IChzYXZlLXJlc3RyaWN0aW9uICh3aWRlbikgKGxldCAoKG9yaWdpbiAocG9pbnQpKSkgKGVuZC1v Zi1saW5lKSAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIA0JXG4iKSAoY29uZCAoKGJvYnApIG5pbCkg KChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1y ZWdleHAgLi4uKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxp bmUtcmVnZXhwLWJvbCAuLi4pKSAob3JnLWF0LWhlYWRpbmctcCkpIChiZWdpbm5pbmctb2YtbGlu ZSkgKG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNlciAocG9pbnQtbWF4KSB0KSkgKHQgKGlmIChv cmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChwcm9nbiAoaWYgLi4uIC4uLiAuLi4pKSkgKG9y Zy1lbGVtZW50LS1wYXJzZS10byBvcmlnaW4pKSkpKSkKICBvcmctZWxlbWVudC1hdC1wb2ludCgp CiAgKGxldCAoKGRyYXdlciAob3JnLWVsZW1lbnQtYXQtcG9pbnQpKSkgKGlmIChhbmQgKGVxIChv cmctZWxlbWVudC10eXBlIGRyYXdlcikgKHF1b3RlIHByb3BlcnR5LWRyYXdlcikpIChsZXQgKChw IGRyYXdlcikpICh3aGlsZSAoYW5kIChzZXRxIHAgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpwYXJl bnQgcCkpIChub3QgKGVxIC4uLiAuLi4pKSkpIChub3QgcCkpKSAocHJvZ24gKGxldCAoKGVuZCAo b3JnLWVsZW1lbnQtcHJvcGVydHkgOmNvbnRlbnRzLWVuZCBkcmF3ZXIpKSkgKGlmIGVuZCAocHJv Z24gKGZvcndhcmQtbGluZSkgKHdoaWxlICg8IC4uLiBlbmQpIChpZiAuLi4gLi4uKSAoZm9yd2Fy ZC1saW5lKSkpKSkpKSkKICAod2hpbGUgKGFuZCAobnVsbCBwbGlzdCkgKHJlLXNlYXJjaC1mb3J3 YXJkIG9yZy1wcm9wZXJ0eS1zdGFydC1yZSBlbmQgdCkpIChsZXQgKChkcmF3ZXIgKG9yZy1lbGVt ZW50LWF0LXBvaW50KSkpIChpZiAoYW5kIChlcSAob3JnLWVsZW1lbnQtdHlwZSBkcmF3ZXIpIChx dW90ZSBwcm9wZXJ0eS1kcmF3ZXIpKSAobGV0ICgocCBkcmF3ZXIpKSAod2hpbGUgKGFuZCAoc2V0 cSBwIC4uLikgKG5vdCAuLi4pKSkgKG5vdCBwKSkpIChwcm9nbiAobGV0ICgoZW5kIChvcmctZWxl bWVudC1wcm9wZXJ0eSA6Y29udGVudHMtZW5kIGRyYXdlcikpKSAoaWYgZW5kIChwcm9nbiAoZm9y d2FyZC1saW5lKSAod2hpbGUgLi4uIC4uLiAuLi4pKSkpKSkpKQogIChzYXZlLWV4Y3Vyc2lvbiAo d2hpbGUgKGFuZCAobnVsbCBwbGlzdCkgKHJlLXNlYXJjaC1mb3J3YXJkIG9yZy1wcm9wZXJ0eS1z dGFydC1yZSBlbmQgdCkpIChsZXQgKChkcmF3ZXIgKG9yZy1lbGVtZW50LWF0LXBvaW50KSkpIChp ZiAoYW5kIChlcSAob3JnLWVsZW1lbnQtdHlwZSBkcmF3ZXIpIChxdW90ZSBwcm9wZXJ0eS1kcmF3 ZXIpKSAobGV0ICgocCBkcmF3ZXIpKSAod2hpbGUgKGFuZCAuLi4gLi4uKSkgKG5vdCBwKSkpIChw cm9nbiAobGV0ICgoZW5kIC4uLikpIChpZiBlbmQgKHByb2duIC4uLiAuLi4pKSkpKSkpIHBsaXN0 KQogIChsZXQgKChlbmQgKHNhdmUtZXhjdXJzaW9uIChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxp bWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRs aW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0 bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3V0bGlu ZS1uZXh0LWhlYWRpbmcpKSAocG9pbnQpKSkgcGxpc3QpIChzYXZlLWV4Y3Vyc2lvbiAod2hpbGUg KGFuZCAobnVsbCBwbGlzdCkgKHJlLXNlYXJjaC1mb3J3YXJkIG9yZy1wcm9wZXJ0eS1zdGFydC1y ZSBlbmQgdCkpIChsZXQgKChkcmF3ZXIgKG9yZy1lbGVtZW50LWF0LXBvaW50KSkpIChpZiAoYW5k IChlcSAob3JnLWVsZW1lbnQtdHlwZSBkcmF3ZXIpIChxdW90ZSBwcm9wZXJ0eS1kcmF3ZXIpKSAo bGV0ICguLi4pICh3aGlsZSAuLi4pIChub3QgcCkpKSAocHJvZ24gKGxldCAoLi4uKSAoaWYgZW5k IC4uLikpKSkpKSBwbGlzdCkpCiAgKGxldCogKChjb21wb25lbnRzIChvcmctaGVhZGluZy1jb21w b25lbnRzKSkgKGxldmVsIChudGggMSBjb21wb25lbnRzKSkgKHRvZG8gKG50aCAyIGNvbXBvbmVu dHMpKSAodG9kby10eXBlIChhbmQgdG9kbyAoaWYgKG1lbWJlciB0b2RvIG9yZy1kb25lLWtleXdv cmRzKSAocXVvdGUgZG9uZSkgKHF1b3RlIHRvZG8pKSkpICh0YWdzIChsZXQgKChyYXctdGFncyAo bnRoIDUgY29tcG9uZW50cykpKSAoYW5kIHJhdy10YWdzIChvcmctc3BsaXQtc3RyaW5nIHJhdy10 YWdzICI6IikpKSkgKHJhdy12YWx1ZSAob3IgKG50aCA0IGNvbXBvbmVudHMpICIiKSkgKGNvbW1l bnRlZHAgKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggbmlsKSkgKHN0cmluZy1tYXRjaCAoZm9ybWF0 ICJeJXNcXCggXFx8JFxcKSIgb3JnLWNvbW1lbnQtc3RyaW5nKSByYXctdmFsdWUpKSkgKGFyY2hp dmVkcCAobWVtYmVyIG9yZy1hcmNoaXZlLXRhZyB0YWdzKSkgKGZvb3Rub3RlLXNlY3Rpb24tcCAo YW5kIG9yZy1mb290bm90ZS1zZWN0aW9uIChzdHJpbmc9IG9yZy1mb290bm90ZS1zZWN0aW9uIHJh dy12YWx1ZSkpKSAoc3RhbmRhcmQtcHJvcHMgKGxldCAoKGVuZCAoc2F2ZS1leGN1cnNpb24gKGxl dCogLi4uIC4uLikgKHBvaW50KSkpIHBsaXN0KSAoc2F2ZS1leGN1cnNpb24gKHdoaWxlIChhbmQg KG51bGwgcGxpc3QpIChyZS1zZWFyY2gtZm9yd2FyZCBvcmctcHJvcGVydHktc3RhcnQtcmUgZW5k IHQpKSAobGV0ICguLi4pIChpZiAuLi4gLi4uKSkpIHBsaXN0KSkpICh0aW1lLXByb3BzIChzYXZl LWV4Y3Vyc2lvbiAoZm9yd2FyZC1saW5lKSAoaWYgKGxvb2tpbmctYXQgb3JnLXBsYW5uaW5nLW9y LWNsb2NrLWxpbmUtcmUpIChwcm9nbiAobGV0ICguLi4gcGxpc3QpICh3aGlsZSAuLi4gLi4uIC4u LiAuLi4pIHBsaXN0KSkpKSkgKGJlZ2luIChwb2ludCkpIChlbmQgKG1pbiAoc2F2ZS1leGN1cnNp b24gKG9yZy1lbmQtb2Ytc3VidHJlZSB0IHQpKSBsaW1pdCkpIChwb3MtYWZ0ZXItaGVhZCAocHJv Z24gKGZvcndhcmQtbGluZSkgKHBvaW50KSkpIChjb250ZW50cy1iZWdpbiAoc2F2ZS1leGN1cnNp b24gKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iIGVuZCkgKGFuZCAoLz0gKHBvaW50KSBlbmQp IChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpKSkgKGNvbnRlbnRzLWVuZCAoYW5kIGNvbnRlbnRz LWJlZ2luIChwcm9nbiAoZ290by1jaGFyIGVuZCkgKHNraXAtY2hhcnMtYmFja3dhcmQgIiANCVxu IikgKGZvcndhcmQtbGluZSkgKHBvaW50KSkpKSkgKGlmIGNvbW1lbnRlZHAgKHByb2duIChsZXQg KChjYXNlLWZvbGQtc2VhcmNoIG5pbCkpIChzZXRxIHJhdy12YWx1ZSAocmVwbGFjZS1yZWdleHAt aW4tc3RyaW5nIChjb25jYXQgKHJlZ2V4cC1xdW90ZSBvcmctY29tbWVudC1zdHJpbmcpICJcXCg/ OiBcXHwkXFwpIikgIiIgcmF3LXZhbHVlKSkpKSkgKGlmIGFyY2hpdmVkcCAocHJvZ24gKHNldHEg dGFncyAoZGVsZXRlIG9yZy1hcmNoaXZlLXRhZyB0YWdzKSkpKSAobGV0ICgoaGVhZGxpbmUgKGxp c3QgKHF1b3RlIGhlYWRsaW5lKSAobmNvbmMgKGxpc3QgOnJhdy12YWx1ZSByYXctdmFsdWUgOmJl Z2luIGJlZ2luIDplbmQgZW5kIDpwcmUtYmxhbmsgKGlmIC4uLiAwIC4uLikgOmNvbnRlbnRzLWJl Z2luIGNvbnRlbnRzLWJlZ2luIDpjb250ZW50cy1lbmQgY29udGVudHMtZW5kIDpsZXZlbCBsZXZl bCA6cHJpb3JpdHkgKG50aCAzIGNvbXBvbmVudHMpIDp0YWdzIHRhZ3MgOnRvZG8ta2V5d29yZCB0 b2RvIDp0b2RvLXR5cGUgdG9kby10eXBlIDpwb3N0LWJsYW5rIChjb3VudC1saW5lcyAuLi4gZW5k KSA6Zm9vdG5vdGUtc2VjdGlvbi1wIGZvb3Rub3RlLXNlY3Rpb24tcCA6YXJjaGl2ZWRwIGFyY2hp dmVkcCA6Y29tbWVudGVkcCBjb21tZW50ZWRwKSB0aW1lLXByb3BzIHN0YW5kYXJkLXByb3BzKSkp KSAobGV0ICgoYWx0LXRpdGxlIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6QUxUX1RJVExFIGhlYWRs aW5lKSkpIChpZiBhbHQtdGl0bGUgKHByb2duIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgaGVh ZGxpbmUgOmFsdC10aXRsZSAoaWYgcmF3LXNlY29uZGFyeS1wIGFsdC10aXRsZSAob3JnLWVsZW1l bnQtcGFyc2Utc2Vjb25kYXJ5LXN0cmluZyBhbHQtdGl0bGUgLi4uIGhlYWRsaW5lKSkpKSkpIChv cmctZWxlbWVudC1wdXQtcHJvcGVydHkgaGVhZGxpbmUgOnRpdGxlIChpZiByYXctc2Vjb25kYXJ5 LXAgcmF3LXZhbHVlIChvcmctZWxlbWVudC1wYXJzZS1zZWNvbmRhcnktc3RyaW5nIHJhdy12YWx1 ZSAob3JnLWVsZW1lbnQtcmVzdHJpY3Rpb24gKHF1b3RlIGhlYWRsaW5lKSkgaGVhZGxpbmUpKSkp KQogIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAoKGNvbXBvbmVudHMgKG9yZy1oZWFkaW5nLWNvbXBv bmVudHMpKSAobGV2ZWwgKG50aCAxIGNvbXBvbmVudHMpKSAodG9kbyAobnRoIDIgY29tcG9uZW50 cykpICh0b2RvLXR5cGUgKGFuZCB0b2RvIChpZiAobWVtYmVyIHRvZG8gb3JnLWRvbmUta2V5d29y ZHMpIChxdW90ZSBkb25lKSAocXVvdGUgdG9kbykpKSkgKHRhZ3MgKGxldCAoKHJhdy10YWdzIChu dGggNSBjb21wb25lbnRzKSkpIChhbmQgcmF3LXRhZ3MgKG9yZy1zcGxpdC1zdHJpbmcgcmF3LXRh Z3MgIjoiKSkpKSAocmF3LXZhbHVlIChvciAobnRoIDQgY29tcG9uZW50cykgIiIpKSAoY29tbWVu dGVkcCAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCBuaWwpKSAoc3RyaW5nLW1hdGNoIChmb3JtYXQg Il4lc1xcKCBcXHwkXFwpIiBvcmctY29tbWVudC1zdHJpbmcpIHJhdy12YWx1ZSkpKSAoYXJjaGl2 ZWRwIChtZW1iZXIgb3JnLWFyY2hpdmUtdGFnIHRhZ3MpKSAoZm9vdG5vdGUtc2VjdGlvbi1wIChh bmQgb3JnLWZvb3Rub3RlLXNlY3Rpb24gKHN0cmluZz0gb3JnLWZvb3Rub3RlLXNlY3Rpb24gcmF3 LXZhbHVlKSkpIChzdGFuZGFyZC1wcm9wcyAobGV0ICgoZW5kIChzYXZlLWV4Y3Vyc2lvbiAuLi4g Li4uKSkgcGxpc3QpIChzYXZlLWV4Y3Vyc2lvbiAod2hpbGUgKGFuZCAuLi4gLi4uKSAobGV0IC4u LiAuLi4pKSBwbGlzdCkpKSAodGltZS1wcm9wcyAoc2F2ZS1leGN1cnNpb24gKGZvcndhcmQtbGlu ZSkgKGlmIChsb29raW5nLWF0IG9yZy1wbGFubmluZy1vci1jbG9jay1saW5lLXJlKSAocHJvZ24g KGxldCAuLi4gLi4uIHBsaXN0KSkpKSkgKGJlZ2luIChwb2ludCkpIChlbmQgKG1pbiAoc2F2ZS1l eGN1cnNpb24gKG9yZy1lbmQtb2Ytc3VidHJlZSB0IHQpKSBsaW1pdCkpIChwb3MtYWZ0ZXItaGVh ZCAocHJvZ24gKGZvcndhcmQtbGluZSkgKHBvaW50KSkpIChjb250ZW50cy1iZWdpbiAoc2F2ZS1l eGN1cnNpb24gKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iIGVuZCkgKGFuZCAoLz0gKHBvaW50 KSBlbmQpIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpKSkgKGNvbnRlbnRzLWVuZCAoYW5kIGNv bnRlbnRzLWJlZ2luIChwcm9nbiAoZ290by1jaGFyIGVuZCkgKHNraXAtY2hhcnMtYmFja3dhcmQg IiANCVxuIikgKGZvcndhcmQtbGluZSkgKHBvaW50KSkpKSkgKGlmIGNvbW1lbnRlZHAgKHByb2du IChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIG5pbCkpIChzZXRxIHJhdy12YWx1ZSAocmVwbGFjZS1y ZWdleHAtaW4tc3RyaW5nIChjb25jYXQgLi4uICJcXCg/OiBcXHwkXFwpIikgIiIgcmF3LXZhbHVl KSkpKSkgKGlmIGFyY2hpdmVkcCAocHJvZ24gKHNldHEgdGFncyAoZGVsZXRlIG9yZy1hcmNoaXZl LXRhZyB0YWdzKSkpKSAobGV0ICgoaGVhZGxpbmUgKGxpc3QgKHF1b3RlIGhlYWRsaW5lKSAobmNv bmMgKGxpc3QgOnJhdy12YWx1ZSByYXctdmFsdWUgOmJlZ2luIGJlZ2luIDplbmQgZW5kIDpwcmUt YmxhbmsgLi4uIDpjb250ZW50cy1iZWdpbiBjb250ZW50cy1iZWdpbiA6Y29udGVudHMtZW5kIGNv bnRlbnRzLWVuZCA6bGV2ZWwgbGV2ZWwgOnByaW9yaXR5IC4uLiA6dGFncyB0YWdzIDp0b2RvLWtl eXdvcmQgdG9kbyA6dG9kby10eXBlIHRvZG8tdHlwZSA6cG9zdC1ibGFuayAuLi4gOmZvb3Rub3Rl LXNlY3Rpb24tcCBmb290bm90ZS1zZWN0aW9uLXAgOmFyY2hpdmVkcCBhcmNoaXZlZHAgOmNvbW1l bnRlZHAgY29tbWVudGVkcCkgdGltZS1wcm9wcyBzdGFuZGFyZC1wcm9wcykpKSkgKGxldCAoKGFs dC10aXRsZSAob3JnLWVsZW1lbnQtcHJvcGVydHkgOkFMVF9USVRMRSBoZWFkbGluZSkpKSAoaWYg YWx0LXRpdGxlIChwcm9nbiAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGhlYWRsaW5lIDphbHQt dGl0bGUgKGlmIHJhdy1zZWNvbmRhcnktcCBhbHQtdGl0bGUgLi4uKSkpKSkgKG9yZy1lbGVtZW50 LXB1dC1wcm9wZXJ0eSBoZWFkbGluZSA6dGl0bGUgKGlmIHJhdy1zZWNvbmRhcnktcCByYXctdmFs dWUgKG9yZy1lbGVtZW50LXBhcnNlLXNlY29uZGFyeS1zdHJpbmcgcmF3LXZhbHVlIChvcmctZWxl bWVudC1yZXN0cmljdGlvbiAocXVvdGUgaGVhZGxpbmUpKSBoZWFkbGluZSkpKSkpKQogIG9yZy1l bGVtZW50LWhlYWRsaW5lLXBhcnNlcigyNTc3MDYgdCkKICAoY29uZCAoKGVxIHNwZWNpYWwgKHF1 b3RlIGl0ZW0pKSAob3JnLWVsZW1lbnQtaXRlbS1wYXJzZXIgbGltaXQgc3RydWN0dXJlIHJhdy1z ZWNvbmRhcnktcCkpICgoZXEgc3BlY2lhbCAocXVvdGUgdGFibGUtcm93KSkgKG9yZy1lbGVtZW50 LXRhYmxlLXJvdy1wYXJzZXIgbGltaXQpKSAoKGVxIHNwZWNpYWwgKHF1b3RlIG5vZGUtcHJvcGVy dHkpKSAob3JnLWVsZW1lbnQtbm9kZS1wcm9wZXJ0eS1wYXJzZXIgbGltaXQpKSAoKGxldCogKChv cmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3Jn LWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5l LXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUt cmVnZXhwKSkpIChvcmctYXQtaGVhZGluZy1wKSkgKG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNl ciBsaW1pdCByYXctc2Vjb25kYXJ5LXApKSAoKGVxIHNwZWNpYWwgKHF1b3RlIHNlY3Rpb24pKSAo b3JnLWVsZW1lbnQtc2VjdGlvbi1wYXJzZXIgbGltaXQpKSAoKGVxIHNwZWNpYWwgKHF1b3RlIGZp cnN0LXNlY3Rpb24pKSAob3JnLWVsZW1lbnQtc2VjdGlvbi1wYXJzZXIgKG9yIChzYXZlLWV4Y3Vy c2lvbiAobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxp bmUtcmVnZXhwIC4uLikgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1v dXRsaW5lLXJlZ2V4cC1ib2wgLi4uKSkgKG91dGxpbmUtbmV4dC1oZWFkaW5nKSkpIGxpbWl0KSkp ICgobm90IChib2xwKSkgKG9yZy1lbGVtZW50LXBhcmFncmFwaC1wYXJzZXIgbGltaXQgKGxpc3Qg KHBvaW50KSkpKSAoKGxvb2tpbmctYXQgb3JnLXBsYW5uaW5nLW9yLWNsb2NrLWxpbmUtcmUpIChp ZiAoZXF1YWwgKG1hdGNoLXN0cmluZyAxKSBvcmctY2xvY2stc3RyaW5nKSAob3JnLWVsZW1lbnQt Y2xvY2stcGFyc2VyIGxpbWl0KSAob3JnLWVsZW1lbnQtcGxhbm5pbmctcGFyc2VyIGxpbWl0KSkp ICgob3JnLWF0LWhlYWRpbmctcCkgKG9yZy1lbGVtZW50LWlubGluZXRhc2stcGFyc2VyIGxpbWl0 IHJhdy1zZWNvbmRhcnktcCkpICh0IChsZXQgKChhZmZpbGlhdGVkIChvcmctZWxlbWVudC0tY29s bGVjdC1hZmZpbGlhdGVkLWtleXdvcmRzIGxpbWl0KSkpIChjb25kICgoYW5kIChjZHIgYWZmaWxp YXRlZCkgKD49IChwb2ludCkgbGltaXQpKSAoZ290by1jaGFyIChjYXIgYWZmaWxpYXRlZCkpIChv cmctZWxlbWVudC1rZXl3b3JkLXBhcnNlciBsaW1pdCBuaWwpKSAoKGxvb2tpbmctYXQgIlsgICAg IF0qXFxcXGJlZ2lue1tBLVphLXowLTkqXSt9XFwoXFxbLio/XFxdXFx8ey4qP31cXCkqWyAgICAg XSokIikgKG9yZy1lbGVtZW50LWxhdGV4LWVudmlyb25tZW50LXBhcnNlciBsaW1pdCBhZmZpbGlh dGVkKSkgKChsb29raW5nLWF0IG9yZy1kcmF3ZXItcmVnZXhwKSAoaWYgKGVxdWFsIChtYXRjaC1z dHJpbmcgMSkgIlBST1BFUlRJRVMiKSAob3JnLWVsZW1lbnQtcHJvcGVydHktZHJhd2VyLXBhcnNl ciBsaW1pdCBhZmZpbGlhdGVkKSAob3JnLWVsZW1lbnQtZHJhd2VyLXBhcnNlciBsaW1pdCBhZmZp bGlhdGVkKSkpICgobG9va2luZy1hdCAiWyAgIF0qOlxcKCBcXHwkXFwpIikgKG9yZy1lbGVtZW50 LWZpeGVkLXdpZHRoLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJbICAg ICBdKiMiKSAoZ290by1jaGFyIChtYXRjaC1lbmQgMCkpIChjb25kICgobG9va2luZy1hdCAiXFwo PzogXFx8JFxcKSIpIChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWNvbW1lbnQtcGFy c2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlxcK0JFR0lOX1xcKFxcUy0rXFwp IikgKGJlZ2lubmluZy1vZi1saW5lKSAobGV0IC4uLiAuLi4pKSAoKGxvb2tpbmctYXQgIlxcK0NB TEw6IikgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQtYmFiZWwtY2FsbC1wYXJzZXIg bGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiXFwrQkVHSU46PyAiKSAoYmVnaW5uaW5n LW9mLWxpbmUpIChvcmctZWxlbWVudC1keW5hbWljLWJsb2NrLXBhcnNlciBsaW1pdCBhZmZpbGlh dGVkKSkgKChsb29raW5nLWF0ICJcXCtcXFMtKzoiKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmct ZWxlbWVudC1rZXl3b3JkLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKHQgKGJlZ2lubmluZy1v Zi1saW5lKSAob3JnLWVsZW1lbnQtcGFyYWdyYXBoLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkp KSAoKGxvb2tpbmctYXQgb3JnLWZvb3Rub3RlLWRlZmluaXRpb24tcmUpIChvcmctZWxlbWVudC1m b290bm90ZS1kZWZpbml0aW9uLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0 ICJbICAgXSotXFx7NSxcXH1bICAgIF0qJCIpIChvcmctZWxlbWVudC1ob3Jpem9udGFsLXJ1bGUt cGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIiUlKCIpIChvcmctZWxlbWVu dC1kaWFyeS1zZXhwLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChvcmctYXQtdGFibGUtcCB0 KSAob3JnLWVsZW1lbnQtdGFibGUtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmct YXQgKG9yZy1pdGVtLXJlKSkgKG9yZy1lbGVtZW50LXBsYWluLWxpc3QtcGFyc2VyIGxpbWl0IGFm ZmlsaWF0ZWQgKG9yIHN0cnVjdHVyZSAob3JnLWVsZW1lbnQtLWxpc3Qtc3RydWN0IGxpbWl0KSkp KSAodCAob3JnLWVsZW1lbnQtcGFyYWdyYXBoLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkpKSkp CiAgKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggdCkgKHJhdy1zZWNvbmRhcnktcCAoYW5kIGdyYW51 bGFyaXR5IChub3QgKGVxIGdyYW51bGFyaXR5IChxdW90ZSBvYmplY3QpKSkpKSkgKGNvbmQgKChl cSBzcGVjaWFsIChxdW90ZSBpdGVtKSkgKG9yZy1lbGVtZW50LWl0ZW0tcGFyc2VyIGxpbWl0IHN0 cnVjdHVyZSByYXctc2Vjb25kYXJ5LXApKSAoKGVxIHNwZWNpYWwgKHF1b3RlIHRhYmxlLXJvdykp IChvcmctZWxlbWVudC10YWJsZS1yb3ctcGFyc2VyIGxpbWl0KSkgKChlcSBzcGVjaWFsIChxdW90 ZSBub2RlLXByb3BlcnR5KSkgKG9yZy1lbGVtZW50LW5vZGUtcHJvcGVydHktcGFyc2VyIGxpbWl0 KSkgKChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGlu ZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4 cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4i IG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3JnLWF0LWhlYWRpbmctcCkpIChvcmctZWxlbWVudC1o ZWFkbGluZS1wYXJzZXIgbGltaXQgcmF3LXNlY29uZGFyeS1wKSkgKChlcSBzcGVjaWFsIChxdW90 ZSBzZWN0aW9uKSkgKG9yZy1lbGVtZW50LXNlY3Rpb24tcGFyc2VyIGxpbWl0KSkgKChlcSBzcGVj aWFsIChxdW90ZSBmaXJzdC1zZWN0aW9uKSkgKG9yZy1lbGVtZW50LXNlY3Rpb24tcGFyc2VyIChv ciAoc2F2ZS1leGN1cnNpb24gKGxldCogKC4uLiAuLi4gLi4uIC4uLikgKG91dGxpbmUtbmV4dC1o ZWFkaW5nKSkpIGxpbWl0KSkpICgobm90IChib2xwKSkgKG9yZy1lbGVtZW50LXBhcmFncmFwaC1w YXJzZXIgbGltaXQgKGxpc3QgKHBvaW50KSkpKSAoKGxvb2tpbmctYXQgb3JnLXBsYW5uaW5nLW9y LWNsb2NrLWxpbmUtcmUpIChpZiAoZXF1YWwgKG1hdGNoLXN0cmluZyAxKSBvcmctY2xvY2stc3Ry aW5nKSAob3JnLWVsZW1lbnQtY2xvY2stcGFyc2VyIGxpbWl0KSAob3JnLWVsZW1lbnQtcGxhbm5p bmctcGFyc2VyIGxpbWl0KSkpICgob3JnLWF0LWhlYWRpbmctcCkgKG9yZy1lbGVtZW50LWlubGlu ZXRhc2stcGFyc2VyIGxpbWl0IHJhdy1zZWNvbmRhcnktcCkpICh0IChsZXQgKChhZmZpbGlhdGVk IChvcmctZWxlbWVudC0tY29sbGVjdC1hZmZpbGlhdGVkLWtleXdvcmRzIGxpbWl0KSkpIChjb25k ICgoYW5kIChjZHIgYWZmaWxpYXRlZCkgKD49IC4uLiBsaW1pdCkpIChnb3RvLWNoYXIgKGNhciBh ZmZpbGlhdGVkKSkgKG9yZy1lbGVtZW50LWtleXdvcmQtcGFyc2VyIGxpbWl0IG5pbCkpICgobG9v a2luZy1hdCAiWyAgICAgICAgXSpcXFxcYmVnaW57W0EtWmEtejAtOSpdK31cXChcXFsuKj9cXF1c XHx7Lio/fVxcKSpbICAgICBdKiQiKSAob3JnLWVsZW1lbnQtbGF0ZXgtZW52aXJvbm1lbnQtcGFy c2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgb3JnLWRyYXdlci1yZWdleHApIChp ZiAoZXF1YWwgLi4uICJQUk9QRVJUSUVTIikgKG9yZy1lbGVtZW50LXByb3BlcnR5LWRyYXdlci1w YXJzZXIgbGltaXQgYWZmaWxpYXRlZCkgKG9yZy1lbGVtZW50LWRyYXdlci1wYXJzZXIgbGltaXQg YWZmaWxpYXRlZCkpKSAoKGxvb2tpbmctYXQgIlsgICAgICAgIF0qOlxcKCBcXHwkXFwpIikgKG9y Zy1lbGVtZW50LWZpeGVkLXdpZHRoLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5n LWF0ICJbICAgICBdKiMiKSAoZ290by1jaGFyIChtYXRjaC1lbmQgMCkpIChjb25kICguLi4gLi4u IC4uLikgKC4uLiAuLi4gLi4uKSAoLi4uIC4uLiAuLi4pICguLi4gLi4uIC4uLikgKC4uLiAuLi4g Li4uKSAodCAuLi4gLi4uKSkpICgobG9va2luZy1hdCBvcmctZm9vdG5vdGUtZGVmaW5pdGlvbi1y ZSkgKG9yZy1lbGVtZW50LWZvb3Rub3RlLWRlZmluaXRpb24tcGFyc2VyIGxpbWl0IGFmZmlsaWF0 ZWQpKSAoKGxvb2tpbmctYXQgIlsgICBdKi1cXHs1LFxcfVsgICAgXSokIikgKG9yZy1lbGVtZW50 LWhvcml6b250YWwtcnVsZS1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAi JSUoIikgKG9yZy1lbGVtZW50LWRpYXJ5LXNleHAtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAo KG9yZy1hdC10YWJsZS1wIHQpIChvcmctZWxlbWVudC10YWJsZS1wYXJzZXIgbGltaXQgYWZmaWxp YXRlZCkpICgobG9va2luZy1hdCAob3JnLWl0ZW0tcmUpKSAob3JnLWVsZW1lbnQtcGxhaW4tbGlz dC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCAob3Igc3RydWN0dXJlIC4uLikpKSAodCAob3JnLWVs ZW1lbnQtcGFyYWdyYXBoLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkpKSkpKQogIChzYXZlLWV4 Y3Vyc2lvbiAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCB0KSAocmF3LXNlY29uZGFyeS1wIChhbmQg Z3JhbnVsYXJpdHkgKG5vdCAoZXEgZ3JhbnVsYXJpdHkgKHF1b3RlIG9iamVjdCkpKSkpKSAoY29u ZCAoKGVxIHNwZWNpYWwgKHF1b3RlIGl0ZW0pKSAob3JnLWVsZW1lbnQtaXRlbS1wYXJzZXIgbGlt aXQgc3RydWN0dXJlIHJhdy1zZWNvbmRhcnktcCkpICgoZXEgc3BlY2lhbCAocXVvdGUgdGFibGUt cm93KSkgKG9yZy1lbGVtZW50LXRhYmxlLXJvdy1wYXJzZXIgbGltaXQpKSAoKGVxIHNwZWNpYWwg KHF1b3RlIG5vZGUtcHJvcGVydHkpKSAob3JnLWVsZW1lbnQtbm9kZS1wcm9wZXJ0eS1wYXJzZXIg bGltaXQpKSAoKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1v dXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUt cmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNh dCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChvcmctYXQtaGVhZGluZy1wKSkgKG9yZy1lbGVt ZW50LWhlYWRsaW5lLXBhcnNlciBsaW1pdCByYXctc2Vjb25kYXJ5LXApKSAoKGVxIHNwZWNpYWwg KHF1b3RlIHNlY3Rpb24pKSAob3JnLWVsZW1lbnQtc2VjdGlvbi1wYXJzZXIgbGltaXQpKSAoKGVx IHNwZWNpYWwgKHF1b3RlIGZpcnN0LXNlY3Rpb24pKSAob3JnLWVsZW1lbnQtc2VjdGlvbi1wYXJz ZXIgKG9yIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAuLi4gLi4uKSkgbGltaXQpKSkgKChub3QgKGJv bHApKSAob3JnLWVsZW1lbnQtcGFyYWdyYXBoLXBhcnNlciBsaW1pdCAobGlzdCAocG9pbnQpKSkp ICgobG9va2luZy1hdCBvcmctcGxhbm5pbmctb3ItY2xvY2stbGluZS1yZSkgKGlmIChlcXVhbCAo bWF0Y2gtc3RyaW5nIDEpIG9yZy1jbG9jay1zdHJpbmcpIChvcmctZWxlbWVudC1jbG9jay1wYXJz ZXIgbGltaXQpIChvcmctZWxlbWVudC1wbGFubmluZy1wYXJzZXIgbGltaXQpKSkgKChvcmctYXQt aGVhZGluZy1wKSAob3JnLWVsZW1lbnQtaW5saW5ldGFzay1wYXJzZXIgbGltaXQgcmF3LXNlY29u ZGFyeS1wKSkgKHQgKGxldCAoKGFmZmlsaWF0ZWQgKG9yZy1lbGVtZW50LS1jb2xsZWN0LWFmZmls aWF0ZWQta2V5d29yZHMgbGltaXQpKSkgKGNvbmQgKChhbmQgLi4uIC4uLikgKGdvdG8tY2hhciAu Li4pIChvcmctZWxlbWVudC1rZXl3b3JkLXBhcnNlciBsaW1pdCBuaWwpKSAoKGxvb2tpbmctYXQg IlsgICAgICBdKlxcXFxiZWdpbntbQS1aYS16MC05Kl0rfVxcKFxcWy4qP1xcXVxcfHsuKj99XFwp KlsgICAgIF0qJCIpIChvcmctZWxlbWVudC1sYXRleC1lbnZpcm9ubWVudC1wYXJzZXIgbGltaXQg YWZmaWxpYXRlZCkpICgobG9va2luZy1hdCBvcmctZHJhd2VyLXJlZ2V4cCkgKGlmIC4uLiAuLi4g Li4uKSkgKChsb29raW5nLWF0ICJbICAgICAgICBdKjpcXCggXFx8JFxcKSIpIChvcmctZWxlbWVu dC1maXhlZC13aWR0aC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiWyAg ICAgXSojIikgKGdvdG8tY2hhciAuLi4pIChjb25kIC4uLiAuLi4gLi4uIC4uLiAuLi4gLi4uKSkg KChsb29raW5nLWF0IG9yZy1mb290bm90ZS1kZWZpbml0aW9uLXJlKSAob3JnLWVsZW1lbnQtZm9v dG5vdGUtZGVmaW5pdGlvbi1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAi WyAgICAgICBdKi1cXHs1LFxcfVsgICAgXSokIikgKG9yZy1lbGVtZW50LWhvcml6b250YWwtcnVs ZS1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiJSUoIikgKG9yZy1lbGVt ZW50LWRpYXJ5LXNleHAtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKG9yZy1hdC10YWJsZS1w IHQpIChvcmctZWxlbWVudC10YWJsZS1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2lu Zy1hdCAuLi4pIChvcmctZWxlbWVudC1wbGFpbi1saXN0LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVk IC4uLikpICh0IChvcmctZWxlbWVudC1wYXJhZ3JhcGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQp KSkpKSkpKQogIG9yZy1lbGVtZW50LS1jdXJyZW50LWVsZW1lbnQoMjU3NzA2IGVsZW1lbnQgbmls IG5pbCkKICAoc2V0cSBlbGVtZW50IChvcmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50IGVuZCAo cXVvdGUgZWxlbWVudCkgc3BlY2lhbC1mbGFnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6c3RydWN0 dXJlIHBhcmVudCkpKQogIChpZiBlbGVtZW50IG5pbCAoc2V0cSBlbGVtZW50IChvcmctZWxlbWVu dC0tY3VycmVudC1lbGVtZW50IGVuZCAocXVvdGUgZWxlbWVudCkgc3BlY2lhbC1mbGFnIChvcmct ZWxlbWVudC1wcm9wZXJ0eSA6c3RydWN0dXJlIHBhcmVudCkpKSAob3JnLWVsZW1lbnQtcHV0LXBy b3BlcnR5IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQpIChvcmctZWxlbWVudC0tY2FjaGUtcHV0IGVs ZW1lbnQpKQogICh3aGlsZSB0IChpZiBzeW5jcCAocHJvZ24gKGNvbmQgKCg9IChwb2ludCkgcG9z KSAodGhyb3cgKHF1b3RlIGV4aXQpIHBhcmVudCkpICgob3JnLWVsZW1lbnQtLWNhY2hlLWludGVy cnVwdC1wIHRpbWUtbGltaXQpICh0aHJvdyAocXVvdGUgaW50ZXJydXB0KSBuaWwpKSkpKSAoaWYg ZWxlbWVudCBuaWwgKHNldHEgZWxlbWVudCAob3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVudCBl bmQgKHF1b3RlIGVsZW1lbnQpIHNwZWNpYWwtZmxhZyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnN0 cnVjdHVyZSBwYXJlbnQpKSkgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBlbGVtZW50IDpwYXJl bnQgcGFyZW50KSAob3JnLWVsZW1lbnQtLWNhY2hlLXB1dCBlbGVtZW50KSkgKGxldCAoKGVsZW0t ZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQpKSAodHlwZSAob3JnLWVsZW1l bnQtdHlwZSBlbGVtZW50KSkpIChjb25kICgoYW5kICg8PSBlbGVtLWVuZCBwb3MpICgvPSAocG9p bnQtbWF4KSBlbGVtLWVuZCkpIChnb3RvLWNoYXIgZWxlbS1lbmQpKSAoKG5vdCAobWVtcSB0eXBl IG9yZy1lbGVtZW50LWdyZWF0ZXItZWxlbWVudHMpKSAodGhyb3cgKHF1b3RlIGV4aXQpIGVsZW1l bnQpKSAoKGxldCAoKGNiZWcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpjb250ZW50cy1iZWdpbiBl bGVtZW50KSkgKGNlbmQgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpjb250ZW50cy1lbmQgZWxlbWVu dCkpKSAoaWYgKG9yIHN5bmNwIChhbmQgY2JlZyBjZW5kIC4uLiAuLi4pKSAocHJvZ24gKGdvdG8t Y2hhciAuLi4pIChzZXRxIG5leHQgbmlsIHNwZWNpYWwtZmxhZyAuLi4gcGFyZW50IGVsZW1lbnQg ZW5kIGNlbmQpKSkpKSAodCAodGhyb3cgKHF1b3RlIGV4aXQpIGVsZW1lbnQpKSkpIChzZXRxIGVs ZW1lbnQgbmlsKSkKICAobGV0ICgoZW5kIChvciAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBl bGVtZW50KSAoc2F2ZS1leGN1cnNpb24gKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1s ZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAuLi4pIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0 bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIC4uLikpIChvdXRsaW5lLW5leHQt aGVhZGluZykpIChwb2ludCkpKSkgKHBhcmVudCBlbGVtZW50KSBzcGVjaWFsLWZsYWcpICh3aGls ZSB0IChpZiBzeW5jcCAocHJvZ24gKGNvbmQgKCg9IChwb2ludCkgcG9zKSAodGhyb3cgKHF1b3Rl IGV4aXQpIHBhcmVudCkpICgob3JnLWVsZW1lbnQtLWNhY2hlLWludGVycnVwdC1wIHRpbWUtbGlt aXQpICh0aHJvdyAocXVvdGUgaW50ZXJydXB0KSBuaWwpKSkpKSAoaWYgZWxlbWVudCBuaWwgKHNl dHEgZWxlbWVudCAob3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVudCBlbmQgKHF1b3RlIGVsZW1l bnQpIHNwZWNpYWwtZmxhZyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnN0cnVjdHVyZSBwYXJlbnQp KSkgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBlbGVtZW50IDpwYXJlbnQgcGFyZW50KSAob3Jn LWVsZW1lbnQtLWNhY2hlLXB1dCBlbGVtZW50KSkgKGxldCAoKGVsZW0tZW5kIChvcmctZWxlbWVu dC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQpKSAodHlwZSAob3JnLWVsZW1lbnQtdHlwZSBlbGVtZW50 KSkpIChjb25kICgoYW5kICg8PSBlbGVtLWVuZCBwb3MpICgvPSAocG9pbnQtbWF4KSBlbGVtLWVu ZCkpIChnb3RvLWNoYXIgZWxlbS1lbmQpKSAoKG5vdCAobWVtcSB0eXBlIG9yZy1lbGVtZW50LWdy ZWF0ZXItZWxlbWVudHMpKSAodGhyb3cgKHF1b3RlIGV4aXQpIGVsZW1lbnQpKSAoKGxldCAoKGNi ZWcgLi4uKSAoY2VuZCAuLi4pKSAoaWYgKG9yIHN5bmNwIC4uLikgKHByb2duIC4uLiAuLi4pKSkp ICh0ICh0aHJvdyAocXVvdGUgZXhpdCkgZWxlbWVudCkpKSkgKHNldHEgZWxlbWVudCBuaWwpKSkK ICAobGV0KiAoKGNhY2hlZCAoYW5kIChvcmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChvcmct ZWxlbWVudC0tY2FjaGUtZmluZCBwb3MgbmlsKSkpIChiZWdpbiAob3JnLWVsZW1lbnQtcHJvcGVy dHkgOmJlZ2luIGNhY2hlZCkpIGVsZW1lbnQgbmV4dCkgKGNvbmQgKChub3QgY2FjaGVkKSAoaWYg KGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJl Z2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9y Zy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3Jn LW91dGxpbmUtcmVnZXhwKSkpIChvdXRsaW5lLXByZXZpb3VzLWhlYWRpbmcpKSAocHJvZ24gKGZv cndhcmQtbGluZSkpKSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2Yt bGluZSkpICgoPSBwb3MgYmVnaW4pICh0aHJvdyAocXVvdGUgZXhpdCkgKGlmIHN5bmNwIChvcmct ZWxlbWVudC1wcm9wZXJ0eSA6cGFyZW50IGNhY2hlZCkgY2FjaGVkKSkpICgocmUtc2VhcmNoLWJh Y2t3YXJkIChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0 bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJl Z2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQg Il4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSBvcmctb3V0bGluZS1yZWdleHAtYm9sKSBiZWdpbiB0 KSAoZm9yd2FyZC1saW5lKSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmct b2YtbGluZSkpICh0IChsZXQgKCh1cCBjYWNoZWQpIChwb3MgKGlmICg9IC4uLiBwb3MpICgxLSBw b3MpIHBvcykpKSAoZ290by1jaGFyIChvciAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmNvbnRlbnRz LWJlZ2luIGNhY2hlZCkgYmVnaW4pKSAod2hpbGUgKGxldCAoKGVuZCAuLi4pKSAoYW5kICg8PSBl bmQgcG9zKSAoZ290by1jaGFyIGVuZCkgKHNldHEgdXAgLi4uKSkpKSAoY29uZCAoKG5vdCB1cCkp ICgoZW9icCkgKHNldHEgZWxlbWVudCB1cCkpICh0IChzZXRxIGVsZW1lbnQgdXAgbmV4dCAocG9p bnQpKSkpKSkpIChsZXQgKChlbmQgKG9yIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1l bnQpIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAoLi4uIC4uLiAuLi4gLi4uKSAob3V0bGluZS1uZXh0 LWhlYWRpbmcpKSAocG9pbnQpKSkpIChwYXJlbnQgZWxlbWVudCkgc3BlY2lhbC1mbGFnKSAod2hp bGUgdCAoaWYgc3luY3AgKHByb2duIChjb25kICgoPSAuLi4gcG9zKSAodGhyb3cgLi4uIHBhcmVu dCkpICgob3JnLWVsZW1lbnQtLWNhY2hlLWludGVycnVwdC1wIHRpbWUtbGltaXQpICh0aHJvdyAu Li4gbmlsKSkpKSkgKGlmIGVsZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50LS1j dXJyZW50LWVsZW1lbnQgZW5kIChxdW90ZSBlbGVtZW50KSBzcGVjaWFsLWZsYWcgKG9yZy1lbGVt ZW50LXByb3BlcnR5IDpzdHJ1Y3R1cmUgcGFyZW50KSkpIChvcmctZWxlbWVudC1wdXQtcHJvcGVy dHkgZWxlbWVudCA6cGFyZW50IHBhcmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQgZWxlbWVu dCkpIChsZXQgKChlbGVtLWVuZCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSkg KHR5cGUgKG9yZy1lbGVtZW50LXR5cGUgZWxlbWVudCkpKSAoY29uZCAoKGFuZCAoPD0gZWxlbS1l bmQgcG9zKSAoLz0gLi4uIGVsZW0tZW5kKSkgKGdvdG8tY2hhciBlbGVtLWVuZCkpICgobm90ICht ZW1xIHR5cGUgb3JnLWVsZW1lbnQtZ3JlYXRlci1lbGVtZW50cykpICh0aHJvdyAocXVvdGUgZXhp dCkgZWxlbWVudCkpICgobGV0ICguLi4gLi4uKSAoaWYgLi4uIC4uLikpKSAodCAodGhyb3cgKHF1 b3RlIGV4aXQpIGVsZW1lbnQpKSkpIChzZXRxIGVsZW1lbnQgbmlsKSkpKQogIChzYXZlLXJlc3Ry aWN0aW9uICh3aWRlbikgKGdvdG8tY2hhciBwb3MpIChsZXQqICgoY2FjaGVkIChhbmQgKG9yZy1l bGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKG9yZy1lbGVtZW50LS1jYWNoZS1maW5kIHBvcyBuaWwp KSkgKGJlZ2luIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6YmVnaW4gY2FjaGVkKSkgZWxlbWVudCBu ZXh0KSAoY29uZCAoKG5vdCBjYWNoZWQpIChpZiAobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1p dGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIC4uLikgKG91dGxpbmUtcmVnZXhwIG9y Zy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgLi4uKSkgKG91dGxpbmUt cHJldmlvdXMtaGVhZGluZykpIChwcm9nbiAoZm9yd2FyZC1saW5lKSkpIChza2lwLWNoYXJzLWZv cndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkgKCg9IHBvcyBiZWdpbikgKHRocm93 IChxdW90ZSBleGl0KSAoaWYgc3luY3AgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpwYXJlbnQgY2Fj aGVkKSBjYWNoZWQpKSkgKChyZS1zZWFyY2gtYmFja3dhcmQgKGxldCogKChvcmctY2FsbGVkLXdp dGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAuLi4pIChvdXRsaW5lLXJl Z2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIC4uLikpIG9y Zy1vdXRsaW5lLXJlZ2V4cC1ib2wpIGJlZ2luIHQpIChmb3J3YXJkLWxpbmUpIChza2lwLWNoYXJz LWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkgKHQgKGxldCAoKHVwIGNhY2hl ZCkgKHBvcyAoaWYgLi4uIC4uLiBwb3MpKSkgKGdvdG8tY2hhciAob3IgKG9yZy1lbGVtZW50LXBy b3BlcnR5IDpjb250ZW50cy1iZWdpbiBjYWNoZWQpIGJlZ2luKSkgKHdoaWxlIChsZXQgKC4uLikg KGFuZCAuLi4gLi4uIC4uLikpKSAoY29uZCAoKG5vdCB1cCkpICgoZW9icCkgKHNldHEgZWxlbWVu dCB1cCkpICh0IChzZXRxIGVsZW1lbnQgdXAgbmV4dCAuLi4pKSkpKSkgKGxldCAoKGVuZCAob3Ig KG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkgKHNhdmUtZXhjdXJzaW9uIChsZXQq IC4uLiAuLi4pIChwb2ludCkpKSkgKHBhcmVudCBlbGVtZW50KSBzcGVjaWFsLWZsYWcpICh3aGls ZSB0IChpZiBzeW5jcCAocHJvZ24gKGNvbmQgKC4uLiAuLi4pICguLi4gLi4uKSkpKSAoaWYgZWxl bWVudCBuaWwgKHNldHEgZWxlbWVudCAob3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVudCBlbmQg KHF1b3RlIGVsZW1lbnQpIHNwZWNpYWwtZmxhZyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnN0cnVj dHVyZSBwYXJlbnQpKSkgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBlbGVtZW50IDpwYXJlbnQg cGFyZW50KSAob3JnLWVsZW1lbnQtLWNhY2hlLXB1dCBlbGVtZW50KSkgKGxldCAoKGVsZW0tZW5k IChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQpKSAodHlwZSAob3JnLWVsZW1lbnQt dHlwZSBlbGVtZW50KSkpIChjb25kICgoYW5kIC4uLiAuLi4pIChnb3RvLWNoYXIgZWxlbS1lbmQp KSAoKG5vdCAuLi4pICh0aHJvdyAuLi4gZWxlbWVudCkpICgobGV0IC4uLiAuLi4pKSAodCAodGhy b3cgLi4uIGVsZW1lbnQpKSkpIChzZXRxIGVsZW1lbnQgbmlsKSkpKSkKICAoc2F2ZS1leGN1cnNp b24gKHNhdmUtcmVzdHJpY3Rpb24gKHdpZGVuKSAoZ290by1jaGFyIHBvcykgKGxldCogKChjYWNo ZWQgKGFuZCAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAob3JnLWVsZW1lbnQtLWNhY2hl LWZpbmQgcG9zIG5pbCkpKSAoYmVnaW4gKG9yZy1lbGVtZW50LXByb3BlcnR5IDpiZWdpbiBjYWNo ZWQpKSBlbGVtZW50IG5leHQpIChjb25kICgobm90IGNhY2hlZCkgKGlmIChsZXQqICguLi4gLi4u IC4uLiAuLi4pIChvdXRsaW5lLXByZXZpb3VzLWhlYWRpbmcpKSAocHJvZ24gKGZvcndhcmQtbGlu ZSkpKSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkpICgo PSBwb3MgYmVnaW4pICh0aHJvdyAocXVvdGUgZXhpdCkgKGlmIHN5bmNwIChvcmctZWxlbWVudC1w cm9wZXJ0eSA6cGFyZW50IGNhY2hlZCkgY2FjaGVkKSkpICgocmUtc2VhcmNoLWJhY2t3YXJkIChs ZXQqICguLi4gLi4uIC4uLiAuLi4pIG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wpIGJlZ2luIHQpIChm b3J3YXJkLWxpbmUpIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1s aW5lKSkgKHQgKGxldCAoKHVwIGNhY2hlZCkgKHBvcyAuLi4pKSAoZ290by1jaGFyIChvciAuLi4g YmVnaW4pKSAod2hpbGUgKGxldCAuLi4gLi4uKSkgKGNvbmQgKC4uLikgKC4uLiAuLi4pICh0IC4u LikpKSkpIChsZXQgKChlbmQgKG9yIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQp IChzYXZlLWV4Y3Vyc2lvbiAuLi4gLi4uKSkpIChwYXJlbnQgZWxlbWVudCkgc3BlY2lhbC1mbGFn KSAod2hpbGUgdCAoaWYgc3luY3AgKHByb2duIChjb25kIC4uLiAuLi4pKSkgKGlmIGVsZW1lbnQg bmlsIChzZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50LS1jdXJyZW50LWVsZW1lbnQgZW5kIC4uLiBz cGVjaWFsLWZsYWcgLi4uKSkgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBlbGVtZW50IDpwYXJl bnQgcGFyZW50KSAob3JnLWVsZW1lbnQtLWNhY2hlLXB1dCBlbGVtZW50KSkgKGxldCAoKGVsZW0t ZW5kIC4uLikgKHR5cGUgLi4uKSkgKGNvbmQgKC4uLiAuLi4pICguLi4gLi4uKSAoLi4uKSAodCAu Li4pKSkgKHNldHEgZWxlbWVudCBuaWwpKSkpKSkKICAoY2F0Y2ggKHF1b3RlIGV4aXQpIChzYXZl LWV4Y3Vyc2lvbiAoc2F2ZS1yZXN0cmljdGlvbiAod2lkZW4pIChnb3RvLWNoYXIgcG9zKSAobGV0 KiAoKGNhY2hlZCAoYW5kIChvcmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChvcmctZWxlbWVu dC0tY2FjaGUtZmluZCBwb3MgbmlsKSkpIChiZWdpbiAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmJl Z2luIGNhY2hlZCkpIGVsZW1lbnQgbmV4dCkgKGNvbmQgKChub3QgY2FjaGVkKSAoaWYgKGxldCog Li4uIC4uLikgKHByb2duIC4uLikpIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lu bmluZy1vZi1saW5lKSkgKCg9IHBvcyBiZWdpbikgKHRocm93IChxdW90ZSBleGl0KSAoaWYgc3lu Y3AgLi4uIGNhY2hlZCkpKSAoKHJlLXNlYXJjaC1iYWNrd2FyZCAobGV0KiAuLi4gb3JnLW91dGxp bmUtcmVnZXhwLWJvbCkgYmVnaW4gdCkgKGZvcndhcmQtbGluZSkgKHNraXAtY2hhcnMtZm9yd2Fy ZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAodCAobGV0ICguLi4gLi4uKSAoZ290by1j aGFyIC4uLikgKHdoaWxlIC4uLikgKGNvbmQgLi4uIC4uLiAuLi4pKSkpIChsZXQgKChlbmQgKG9y IC4uLiAuLi4pKSAocGFyZW50IGVsZW1lbnQpIHNwZWNpYWwtZmxhZykgKHdoaWxlIHQgKGlmIHN5 bmNwIChwcm9nbiAuLi4pKSAoaWYgZWxlbWVudCBuaWwgKHNldHEgZWxlbWVudCAuLi4pIChvcmct ZWxlbWVudC1wdXQtcHJvcGVydHkgZWxlbWVudCA6cGFyZW50IHBhcmVudCkgKG9yZy1lbGVtZW50 LS1jYWNoZS1wdXQgZWxlbWVudCkpIChsZXQgKC4uLiAuLi4pIChjb25kIC4uLiAuLi4gLi4uIC4u LikpIChzZXRxIGVsZW1lbnQgbmlsKSkpKSkpKQogIG9yZy1lbGVtZW50LS1wYXJzZS10bygyNTcy ODApCiAgKGNvbmQgKChib2JwKSBuaWwpICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVk LWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1y ZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUt cmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgKG9yZy1hdC1oZWFk aW5nLXApKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIg KHBvaW50LW1heCkgdCkpICh0IChpZiAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAocHJv Z24gKGlmIChub3Qgb3JnLWVsZW1lbnQtLWNhY2hlKSAob3JnLWVsZW1lbnQtY2FjaGUtcmVzZXQp IChvcmctZWxlbWVudC0tY2FjaGUtc3luYyAoY3VycmVudC1idWZmZXIpIG9yaWdpbikpKSkgKG9y Zy1lbGVtZW50LS1wYXJzZS10byBvcmlnaW4pKSkKICAobGV0ICgob3JpZ2luIChwb2ludCkpKSAo ZW5kLW9mLWxpbmUpIChza2lwLWNoYXJzLWJhY2t3YXJkICIgDQlcbiIpIChjb25kICgoYm9icCkg bmlsKSAoKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRs aW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVn ZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAi XiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChvcmctYXQtaGVhZGluZy1wKSkgKGJlZ2lubmluZy1v Zi1saW5lKSAob3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFyc2VyIChwb2ludC1tYXgpIHQpKSAodCAo aWYgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKHByb2duIChpZiAobm90IG9yZy1lbGVt ZW50LS1jYWNoZSkgKG9yZy1lbGVtZW50LWNhY2hlLXJlc2V0KSAob3JnLWVsZW1lbnQtLWNhY2hl LXN5bmMgKGN1cnJlbnQtYnVmZmVyKSBvcmlnaW4pKSkpIChvcmctZWxlbWVudC0tcGFyc2UtdG8g b3JpZ2luKSkpKQogIChzYXZlLXJlc3RyaWN0aW9uICh3aWRlbikgKGxldCAoKG9yaWdpbiAocG9p bnQpKSkgKGVuZC1vZi1saW5lKSAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIA0JXG4iKSAoY29uZCAo KGJvYnApIG5pbCkgKChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChv cmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRs aW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIChj b25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3JnLWF0LWhlYWRpbmctcCkpIChiZWdp bm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNlciAocG9pbnQtbWF4KSB0 KSkgKHQgKGlmIChvcmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChwcm9nbiAoaWYgKG5vdCBv cmctZWxlbWVudC0tY2FjaGUpIChvcmctZWxlbWVudC1jYWNoZS1yZXNldCkgKG9yZy1lbGVtZW50 LS1jYWNoZS1zeW5jIC4uLiBvcmlnaW4pKSkpIChvcmctZWxlbWVudC0tcGFyc2UtdG8gb3JpZ2lu KSkpKSkKICAoc2F2ZS1leGN1cnNpb24gKHNhdmUtcmVzdHJpY3Rpb24gKHdpZGVuKSAobGV0ICgo b3JpZ2luIChwb2ludCkpKSAoZW5kLW9mLWxpbmUpIChza2lwLWNoYXJzLWJhY2t3YXJkICIgDQlc biIpIChjb25kICgoYm9icCkgbmlsKSAoKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1s ZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAuLi4pIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0 bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIC4uLikpIChvcmctYXQtaGVhZGlu Zy1wKSkgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFyc2VyIChw b2ludC1tYXgpIHQpKSAodCAoaWYgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKHByb2du IChpZiAuLi4gLi4uIC4uLikpKSAob3JnLWVsZW1lbnQtLXBhcnNlLXRvIG9yaWdpbikpKSkpKQog IG9yZy1lbGVtZW50LWF0LXBvaW50KCkKICAobGV0ICgoZHJhd2VyIChvcmctZWxlbWVudC1hdC1w b2ludCkpKSAoaWYgKGFuZCAoZXEgKG9yZy1lbGVtZW50LXR5cGUgZHJhd2VyKSAocXVvdGUgcHJv cGVydHktZHJhd2VyKSkgKGxldCAoKHAgZHJhd2VyKSkgKHdoaWxlIChhbmQgKHNldHEgcCAob3Jn LWVsZW1lbnQtcHJvcGVydHkgOnBhcmVudCBwKSkgKG5vdCAoZXEgLi4uIC4uLikpKSkgKG5vdCBw KSkpIChwcm9nbiAobGV0ICgoZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6Y29udGVudHMtZW5k IGRyYXdlcikpKSAoaWYgZW5kIChwcm9nbiAoZm9yd2FyZC1saW5lKSAod2hpbGUgKDwgLi4uIGVu ZCkgKGlmIC4uLiAuLi4pIChmb3J3YXJkLWxpbmUpKSkpKSkpKQogICh3aGlsZSAoYW5kIChudWxs IHBsaXN0KSAocmUtc2VhcmNoLWZvcndhcmQgb3JnLXByb3BlcnR5LXN0YXJ0LXJlIGVuZCB0KSkg KGxldCAoKGRyYXdlciAob3JnLWVsZW1lbnQtYXQtcG9pbnQpKSkgKGlmIChhbmQgKGVxIChvcmct ZWxlbWVudC10eXBlIGRyYXdlcikgKHF1b3RlIHByb3BlcnR5LWRyYXdlcikpIChsZXQgKChwIGRy YXdlcikpICh3aGlsZSAoYW5kIChzZXRxIHAgLi4uKSAobm90IC4uLikpKSAobm90IHApKSkgKHBy b2duIChsZXQgKChlbmQgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpjb250ZW50cy1lbmQgZHJhd2Vy KSkpIChpZiBlbmQgKHByb2duIChmb3J3YXJkLWxpbmUpICh3aGlsZSAuLi4gLi4uIC4uLikpKSkp KSkpCiAgKHNhdmUtZXhjdXJzaW9uICh3aGlsZSAoYW5kIChudWxsIHBsaXN0KSAocmUtc2VhcmNo LWZvcndhcmQgb3JnLXByb3BlcnR5LXN0YXJ0LXJlIGVuZCB0KSkgKGxldCAoKGRyYXdlciAob3Jn LWVsZW1lbnQtYXQtcG9pbnQpKSkgKGlmIChhbmQgKGVxIChvcmctZWxlbWVudC10eXBlIGRyYXdl cikgKHF1b3RlIHByb3BlcnR5LWRyYXdlcikpIChsZXQgKChwIGRyYXdlcikpICh3aGlsZSAoYW5k IC4uLiAuLi4pKSAobm90IHApKSkgKHByb2duIChsZXQgKChlbmQgLi4uKSkgKGlmIGVuZCAocHJv Z24gLi4uIC4uLikpKSkpKSkgcGxpc3QpCiAgKGxldCAoKGVuZCAoc2F2ZS1leGN1cnNpb24gKGxl dCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4 cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1v dXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91 dGxpbmUtcmVnZXhwKSkpIChvdXRsaW5lLW5leHQtaGVhZGluZykpIChwb2ludCkpKSBwbGlzdCkg KHNhdmUtZXhjdXJzaW9uICh3aGlsZSAoYW5kIChudWxsIHBsaXN0KSAocmUtc2VhcmNoLWZvcndh cmQgb3JnLXByb3BlcnR5LXN0YXJ0LXJlIGVuZCB0KSkgKGxldCAoKGRyYXdlciAob3JnLWVsZW1l bnQtYXQtcG9pbnQpKSkgKGlmIChhbmQgKGVxIChvcmctZWxlbWVudC10eXBlIGRyYXdlcikgKHF1 b3RlIHByb3BlcnR5LWRyYXdlcikpIChsZXQgKC4uLikgKHdoaWxlIC4uLikgKG5vdCBwKSkpIChw cm9nbiAobGV0ICguLi4pIChpZiBlbmQgLi4uKSkpKSkpIHBsaXN0KSkKICAobGV0KiAoKGNvbXBv bmVudHMgKG9yZy1oZWFkaW5nLWNvbXBvbmVudHMpKSAobGV2ZWwgKG50aCAxIGNvbXBvbmVudHMp KSAodG9kbyAobnRoIDIgY29tcG9uZW50cykpICh0b2RvLXR5cGUgKGFuZCB0b2RvIChpZiAobWVt YmVyIHRvZG8gb3JnLWRvbmUta2V5d29yZHMpIChxdW90ZSBkb25lKSAocXVvdGUgdG9kbykpKSkg KHRhZ3MgKGxldCAoKHJhdy10YWdzIChudGggNSBjb21wb25lbnRzKSkpIChhbmQgcmF3LXRhZ3Mg KG9yZy1zcGxpdC1zdHJpbmcgcmF3LXRhZ3MgIjoiKSkpKSAocmF3LXZhbHVlIChvciAobnRoIDQg Y29tcG9uZW50cykgIiIpKSAoY29tbWVudGVkcCAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCBuaWwp KSAoc3RyaW5nLW1hdGNoIChmb3JtYXQgIl4lc1xcKCBcXHwkXFwpIiBvcmctY29tbWVudC1zdHJp bmcpIHJhdy12YWx1ZSkpKSAoYXJjaGl2ZWRwIChtZW1iZXIgb3JnLWFyY2hpdmUtdGFnIHRhZ3Mp KSAoZm9vdG5vdGUtc2VjdGlvbi1wIChhbmQgb3JnLWZvb3Rub3RlLXNlY3Rpb24gKHN0cmluZz0g b3JnLWZvb3Rub3RlLXNlY3Rpb24gcmF3LXZhbHVlKSkpIChzdGFuZGFyZC1wcm9wcyAobGV0ICgo ZW5kIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAuLi4gLi4uKSAocG9pbnQpKSkgcGxpc3QpIChzYXZl LWV4Y3Vyc2lvbiAod2hpbGUgKGFuZCAobnVsbCBwbGlzdCkgKHJlLXNlYXJjaC1mb3J3YXJkIG9y Zy1wcm9wZXJ0eS1zdGFydC1yZSBlbmQgdCkpIChsZXQgKC4uLikgKGlmIC4uLiAuLi4pKSkgcGxp c3QpKSkgKHRpbWUtcHJvcHMgKHNhdmUtZXhjdXJzaW9uIChmb3J3YXJkLWxpbmUpIChpZiAobG9v a2luZy1hdCBvcmctcGxhbm5pbmctb3ItY2xvY2stbGluZS1yZSkgKHByb2duIChsZXQgKC4uLiBw bGlzdCkgKHdoaWxlIC4uLiAuLi4gLi4uIC4uLikgcGxpc3QpKSkpKSAoYmVnaW4gKHBvaW50KSkg KGVuZCAobWluIChzYXZlLWV4Y3Vyc2lvbiAob3JnLWVuZC1vZi1zdWJ0cmVlIHQgdCkpIGxpbWl0 KSkgKHBvcy1hZnRlci1oZWFkIChwcm9nbiAoZm9yd2FyZC1saW5lKSAocG9pbnQpKSkgKGNvbnRl bnRzLWJlZ2luIChzYXZlLWV4Y3Vyc2lvbiAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIgZW5k KSAoYW5kICgvPSAocG9pbnQpIGVuZCkgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkpKSAoY29u dGVudHMtZW5kIChhbmQgY29udGVudHMtYmVnaW4gKHByb2duIChnb3RvLWNoYXIgZW5kKSAoc2tp cC1jaGFycy1iYWNrd2FyZCAiIA0JXG4iKSAoZm9yd2FyZC1saW5lKSAocG9pbnQpKSkpKSAoaWYg Y29tbWVudGVkcCAocHJvZ24gKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggbmlsKSkgKHNldHEgcmF3 LXZhbHVlIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcgKGNvbmNhdCAocmVnZXhwLXF1b3RlIG9y Zy1jb21tZW50LXN0cmluZykgIlxcKD86IFxcfCRcXCkiKSAiIiByYXctdmFsdWUpKSkpKSAoaWYg YXJjaGl2ZWRwIChwcm9nbiAoc2V0cSB0YWdzIChkZWxldGUgb3JnLWFyY2hpdmUtdGFnIHRhZ3Mp KSkpIChsZXQgKChoZWFkbGluZSAobGlzdCAocXVvdGUgaGVhZGxpbmUpIChuY29uYyAobGlzdCA6 cmF3LXZhbHVlIHJhdy12YWx1ZSA6YmVnaW4gYmVnaW4gOmVuZCBlbmQgOnByZS1ibGFuayAoaWYg Li4uIDAgLi4uKSA6Y29udGVudHMtYmVnaW4gY29udGVudHMtYmVnaW4gOmNvbnRlbnRzLWVuZCBj b250ZW50cy1lbmQgOmxldmVsIGxldmVsIDpwcmlvcml0eSAobnRoIDMgY29tcG9uZW50cykgOnRh Z3MgdGFncyA6dG9kby1rZXl3b3JkIHRvZG8gOnRvZG8tdHlwZSB0b2RvLXR5cGUgOnBvc3QtYmxh bmsgKGNvdW50LWxpbmVzIC4uLiBlbmQpIDpmb290bm90ZS1zZWN0aW9uLXAgZm9vdG5vdGUtc2Vj dGlvbi1wIDphcmNoaXZlZHAgYXJjaGl2ZWRwIDpjb21tZW50ZWRwIGNvbW1lbnRlZHApIHRpbWUt cHJvcHMgc3RhbmRhcmQtcHJvcHMpKSkpIChsZXQgKChhbHQtdGl0bGUgKG9yZy1lbGVtZW50LXBy b3BlcnR5IDpBTFRfVElUTEUgaGVhZGxpbmUpKSkgKGlmIGFsdC10aXRsZSAocHJvZ24gKG9yZy1l bGVtZW50LXB1dC1wcm9wZXJ0eSBoZWFkbGluZSA6YWx0LXRpdGxlIChpZiByYXctc2Vjb25kYXJ5 LXAgYWx0LXRpdGxlIChvcmctZWxlbWVudC1wYXJzZS1zZWNvbmRhcnktc3RyaW5nIGFsdC10aXRs ZSAuLi4gaGVhZGxpbmUpKSkpKSkgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBoZWFkbGluZSA6 dGl0bGUgKGlmIHJhdy1zZWNvbmRhcnktcCByYXctdmFsdWUgKG9yZy1lbGVtZW50LXBhcnNlLXNl Y29uZGFyeS1zdHJpbmcgcmF3LXZhbHVlIChvcmctZWxlbWVudC1yZXN0cmljdGlvbiAocXVvdGUg aGVhZGxpbmUpKSBoZWFkbGluZSkpKSkpCiAgKHNhdmUtZXhjdXJzaW9uIChsZXQqICgoY29tcG9u ZW50cyAob3JnLWhlYWRpbmctY29tcG9uZW50cykpIChsZXZlbCAobnRoIDEgY29tcG9uZW50cykp ICh0b2RvIChudGggMiBjb21wb25lbnRzKSkgKHRvZG8tdHlwZSAoYW5kIHRvZG8gKGlmIChtZW1i ZXIgdG9kbyBvcmctZG9uZS1rZXl3b3JkcykgKHF1b3RlIGRvbmUpIChxdW90ZSB0b2RvKSkpKSAo dGFncyAobGV0ICgocmF3LXRhZ3MgKG50aCA1IGNvbXBvbmVudHMpKSkgKGFuZCByYXctdGFncyAo b3JnLXNwbGl0LXN0cmluZyByYXctdGFncyAiOiIpKSkpIChyYXctdmFsdWUgKG9yIChudGggNCBj b21wb25lbnRzKSAiIikpIChjb21tZW50ZWRwIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIG5pbCkp IChzdHJpbmctbWF0Y2ggKGZvcm1hdCAiXiVzXFwoIFxcfCRcXCkiIG9yZy1jb21tZW50LXN0cmlu ZykgcmF3LXZhbHVlKSkpIChhcmNoaXZlZHAgKG1lbWJlciBvcmctYXJjaGl2ZS10YWcgdGFncykp IChmb290bm90ZS1zZWN0aW9uLXAgKGFuZCBvcmctZm9vdG5vdGUtc2VjdGlvbiAoc3RyaW5nPSBv cmctZm9vdG5vdGUtc2VjdGlvbiByYXctdmFsdWUpKSkgKHN0YW5kYXJkLXByb3BzIChsZXQgKChl bmQgKHNhdmUtZXhjdXJzaW9uIC4uLiAuLi4pKSBwbGlzdCkgKHNhdmUtZXhjdXJzaW9uICh3aGls ZSAoYW5kIC4uLiAuLi4pIChsZXQgLi4uIC4uLikpIHBsaXN0KSkpICh0aW1lLXByb3BzIChzYXZl LWV4Y3Vyc2lvbiAoZm9yd2FyZC1saW5lKSAoaWYgKGxvb2tpbmctYXQgb3JnLXBsYW5uaW5nLW9y LWNsb2NrLWxpbmUtcmUpIChwcm9nbiAobGV0IC4uLiAuLi4gcGxpc3QpKSkpKSAoYmVnaW4gKHBv aW50KSkgKGVuZCAobWluIChzYXZlLWV4Y3Vyc2lvbiAob3JnLWVuZC1vZi1zdWJ0cmVlIHQgdCkp IGxpbWl0KSkgKHBvcy1hZnRlci1oZWFkIChwcm9nbiAoZm9yd2FyZC1saW5lKSAocG9pbnQpKSkg KGNvbnRlbnRzLWJlZ2luIChzYXZlLWV4Y3Vyc2lvbiAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlc biIgZW5kKSAoYW5kICgvPSAocG9pbnQpIGVuZCkgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkp KSAoY29udGVudHMtZW5kIChhbmQgY29udGVudHMtYmVnaW4gKHByb2duIChnb3RvLWNoYXIgZW5k KSAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIA0JXG4iKSAoZm9yd2FyZC1saW5lKSAocG9pbnQpKSkp KSAoaWYgY29tbWVudGVkcCAocHJvZ24gKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggbmlsKSkgKHNl dHEgcmF3LXZhbHVlIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcgKGNvbmNhdCAuLi4gIlxcKD86 IFxcfCRcXCkiKSAiIiByYXctdmFsdWUpKSkpKSAoaWYgYXJjaGl2ZWRwIChwcm9nbiAoc2V0cSB0 YWdzIChkZWxldGUgb3JnLWFyY2hpdmUtdGFnIHRhZ3MpKSkpIChsZXQgKChoZWFkbGluZSAobGlz dCAocXVvdGUgaGVhZGxpbmUpIChuY29uYyAobGlzdCA6cmF3LXZhbHVlIHJhdy12YWx1ZSA6YmVn aW4gYmVnaW4gOmVuZCBlbmQgOnByZS1ibGFuayAuLi4gOmNvbnRlbnRzLWJlZ2luIGNvbnRlbnRz LWJlZ2luIDpjb250ZW50cy1lbmQgY29udGVudHMtZW5kIDpsZXZlbCBsZXZlbCA6cHJpb3JpdHkg Li4uIDp0YWdzIHRhZ3MgOnRvZG8ta2V5d29yZCB0b2RvIDp0b2RvLXR5cGUgdG9kby10eXBlIDpw b3N0LWJsYW5rIC4uLiA6Zm9vdG5vdGUtc2VjdGlvbi1wIGZvb3Rub3RlLXNlY3Rpb24tcCA6YXJj aGl2ZWRwIGFyY2hpdmVkcCA6Y29tbWVudGVkcCBjb21tZW50ZWRwKSB0aW1lLXByb3BzIHN0YW5k YXJkLXByb3BzKSkpKSAobGV0ICgoYWx0LXRpdGxlIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6QUxU X1RJVExFIGhlYWRsaW5lKSkpIChpZiBhbHQtdGl0bGUgKHByb2duIChvcmctZWxlbWVudC1wdXQt cHJvcGVydHkgaGVhZGxpbmUgOmFsdC10aXRsZSAoaWYgcmF3LXNlY29uZGFyeS1wIGFsdC10aXRs ZSAuLi4pKSkpKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGhlYWRsaW5lIDp0aXRsZSAoaWYg cmF3LXNlY29uZGFyeS1wIHJhdy12YWx1ZSAob3JnLWVsZW1lbnQtcGFyc2Utc2Vjb25kYXJ5LXN0 cmluZyByYXctdmFsdWUgKG9yZy1lbGVtZW50LXJlc3RyaWN0aW9uIChxdW90ZSBoZWFkbGluZSkp IGhlYWRsaW5lKSkpKSkpCiAgb3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFyc2VyKDI1NzcwNiB0KQog IChjb25kICgoZXEgc3BlY2lhbCAocXVvdGUgaXRlbSkpIChvcmctZWxlbWVudC1pdGVtLXBhcnNl ciBsaW1pdCBzdHJ1Y3R1cmUgcmF3LXNlY29uZGFyeS1wKSkgKChlcSBzcGVjaWFsIChxdW90ZSB0 YWJsZS1yb3cpKSAob3JnLWVsZW1lbnQtdGFibGUtcm93LXBhcnNlciBsaW1pdCkpICgoZXEgc3Bl Y2lhbCAocXVvdGUgbm9kZS1wcm9wZXJ0eSkpIChvcmctZWxlbWVudC1ub2RlLXByb3BlcnR5LXBh cnNlciBsaW1pdCkpICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAo b3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0 bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAo Y29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgKG9yZy1hdC1oZWFkaW5nLXApKSAob3Jn LWVsZW1lbnQtaGVhZGxpbmUtcGFyc2VyIGxpbWl0IHJhdy1zZWNvbmRhcnktcCkpICgoZXEgc3Bl Y2lhbCAocXVvdGUgc2VjdGlvbikpIChvcmctZWxlbWVudC1zZWN0aW9uLXBhcnNlciBsaW1pdCkp ICgoZXEgc3BlY2lhbCAocXVvdGUgZmlyc3Qtc2VjdGlvbikpIChvcmctZWxlbWVudC1zZWN0aW9u LXBhcnNlciAob3IgKHNhdmUtZXhjdXJzaW9uIChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0 ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgLi4uKSAob3V0bGluZS1yZWdleHAgb3Jn LW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAuLi4pKSAob3V0bGluZS1u ZXh0LWhlYWRpbmcpKSkgbGltaXQpKSkgKChub3QgKGJvbHApKSAob3JnLWVsZW1lbnQtcGFyYWdy YXBoLXBhcnNlciBsaW1pdCAobGlzdCAocG9pbnQpKSkpICgobG9va2luZy1hdCBvcmctcGxhbm5p bmctb3ItY2xvY2stbGluZS1yZSkgKGlmIChlcXVhbCAobWF0Y2gtc3RyaW5nIDEpIG9yZy1jbG9j ay1zdHJpbmcpIChvcmctZWxlbWVudC1jbG9jay1wYXJzZXIgbGltaXQpIChvcmctZWxlbWVudC1w bGFubmluZy1wYXJzZXIgbGltaXQpKSkgKChvcmctYXQtaGVhZGluZy1wKSAob3JnLWVsZW1lbnQt aW5saW5ldGFzay1wYXJzZXIgbGltaXQgcmF3LXNlY29uZGFyeS1wKSkgKHQgKGxldCAoKGFmZmls aWF0ZWQgKG9yZy1lbGVtZW50LS1jb2xsZWN0LWFmZmlsaWF0ZWQta2V5d29yZHMgbGltaXQpKSkg KGNvbmQgKChhbmQgKGNkciBhZmZpbGlhdGVkKSAoPj0gKHBvaW50KSBsaW1pdCkpIChnb3RvLWNo YXIgKGNhciBhZmZpbGlhdGVkKSkgKG9yZy1lbGVtZW50LWtleXdvcmQtcGFyc2VyIGxpbWl0IG5p bCkpICgobG9va2luZy1hdCAiWyAgICAgXSpcXFxcYmVnaW57W0EtWmEtejAtOSpdK31cXChcXFsu Kj9cXF1cXHx7Lio/fVxcKSpbICAgICBdKiQiKSAob3JnLWVsZW1lbnQtbGF0ZXgtZW52aXJvbm1l bnQtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgb3JnLWRyYXdlci1yZWdl eHApIChpZiAoZXF1YWwgKG1hdGNoLXN0cmluZyAxKSAiUFJPUEVSVElFUyIpIChvcmctZWxlbWVu dC1wcm9wZXJ0eS1kcmF3ZXItcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpIChvcmctZWxlbWVudC1k cmF3ZXItcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSkgKChsb29raW5nLWF0ICJbICAgXSo6XFwo IFxcfCRcXCkiKSAob3JnLWVsZW1lbnQtZml4ZWQtd2lkdGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0 ZWQpKSAoKGxvb2tpbmctYXQgIlsgICAgIF0qIyIpIChnb3RvLWNoYXIgKG1hdGNoLWVuZCAwKSkg KGNvbmQgKChsb29raW5nLWF0ICJcXCg/OiBcXHwkXFwpIikgKGJlZ2lubmluZy1vZi1saW5lKSAo b3JnLWVsZW1lbnQtY29tbWVudC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1h dCAiXFwrQkVHSU5fXFwoXFxTLStcXCkiKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChsZXQgLi4uIC4u LikpICgobG9va2luZy1hdCAiXFwrQ0FMTDoiKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxl bWVudC1iYWJlbC1jYWxsLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJc XCtCRUdJTjo/ICIpIChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWR5bmFtaWMtYmxv Y2stcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlxcK1xcUy0rOiIpIChi ZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWtleXdvcmQtcGFyc2VyIGxpbWl0IGFmZmls aWF0ZWQpKSAodCAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1wYXJhZ3JhcGgtcGFy c2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSkpICgobG9va2luZy1hdCBvcmctZm9vdG5vdGUtZGVmaW5p dGlvbi1yZSkgKG9yZy1lbGVtZW50LWZvb3Rub3RlLWRlZmluaXRpb24tcGFyc2VyIGxpbWl0IGFm ZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlsgICBdKi1cXHs1LFxcfVsgICAgXSokIikgKG9yZy1l bGVtZW50LWhvcml6b250YWwtcnVsZS1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2lu Zy1hdCAiJSUoIikgKG9yZy1lbGVtZW50LWRpYXJ5LXNleHAtcGFyc2VyIGxpbWl0IGFmZmlsaWF0 ZWQpKSAoKG9yZy1hdC10YWJsZS1wIHQpIChvcmctZWxlbWVudC10YWJsZS1wYXJzZXIgbGltaXQg YWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAob3JnLWl0ZW0tcmUpKSAob3JnLWVsZW1lbnQtcGxh aW4tbGlzdC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCAob3Igc3RydWN0dXJlIChvcmctZWxlbWVu dC0tbGlzdC1zdHJ1Y3QgbGltaXQpKSkpICh0IChvcmctZWxlbWVudC1wYXJhZ3JhcGgtcGFyc2Vy IGxpbWl0IGFmZmlsaWF0ZWQpKSkpKSkKICAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCB0KSAocmF3 LXNlY29uZGFyeS1wIChhbmQgZ3JhbnVsYXJpdHkgKG5vdCAoZXEgZ3JhbnVsYXJpdHkgKHF1b3Rl IG9iamVjdCkpKSkpKSAoY29uZCAoKGVxIHNwZWNpYWwgKHF1b3RlIGl0ZW0pKSAob3JnLWVsZW1l bnQtaXRlbS1wYXJzZXIgbGltaXQgc3RydWN0dXJlIHJhdy1zZWNvbmRhcnktcCkpICgoZXEgc3Bl Y2lhbCAocXVvdGUgdGFibGUtcm93KSkgKG9yZy1lbGVtZW50LXRhYmxlLXJvdy1wYXJzZXIgbGlt aXQpKSAoKGVxIHNwZWNpYWwgKHF1b3RlIG5vZGUtcHJvcGVydHkpKSAob3JnLWVsZW1lbnQtbm9k ZS1wcm9wZXJ0eS1wYXJzZXIgbGltaXQpKSAoKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRl ZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUt cmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5l LXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChvcmctYXQtaGVh ZGluZy1wKSkgKG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNlciBsaW1pdCByYXctc2Vjb25kYXJ5 LXApKSAoKGVxIHNwZWNpYWwgKHF1b3RlIHNlY3Rpb24pKSAob3JnLWVsZW1lbnQtc2VjdGlvbi1w YXJzZXIgbGltaXQpKSAoKGVxIHNwZWNpYWwgKHF1b3RlIGZpcnN0LXNlY3Rpb24pKSAob3JnLWVs ZW1lbnQtc2VjdGlvbi1wYXJzZXIgKG9yIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAoLi4uIC4uLiAu Li4gLi4uKSAob3V0bGluZS1uZXh0LWhlYWRpbmcpKSkgbGltaXQpKSkgKChub3QgKGJvbHApKSAo b3JnLWVsZW1lbnQtcGFyYWdyYXBoLXBhcnNlciBsaW1pdCAobGlzdCAocG9pbnQpKSkpICgobG9v a2luZy1hdCBvcmctcGxhbm5pbmctb3ItY2xvY2stbGluZS1yZSkgKGlmIChlcXVhbCAobWF0Y2gt c3RyaW5nIDEpIG9yZy1jbG9jay1zdHJpbmcpIChvcmctZWxlbWVudC1jbG9jay1wYXJzZXIgbGlt aXQpIChvcmctZWxlbWVudC1wbGFubmluZy1wYXJzZXIgbGltaXQpKSkgKChvcmctYXQtaGVhZGlu Zy1wKSAob3JnLWVsZW1lbnQtaW5saW5ldGFzay1wYXJzZXIgbGltaXQgcmF3LXNlY29uZGFyeS1w KSkgKHQgKGxldCAoKGFmZmlsaWF0ZWQgKG9yZy1lbGVtZW50LS1jb2xsZWN0LWFmZmlsaWF0ZWQt a2V5d29yZHMgbGltaXQpKSkgKGNvbmQgKChhbmQgKGNkciBhZmZpbGlhdGVkKSAoPj0gLi4uIGxp bWl0KSkgKGdvdG8tY2hhciAoY2FyIGFmZmlsaWF0ZWQpKSAob3JnLWVsZW1lbnQta2V5d29yZC1w YXJzZXIgbGltaXQgbmlsKSkgKChsb29raW5nLWF0ICJbICAgICAgICBdKlxcXFxiZWdpbntbQS1a YS16MC05Kl0rfVxcKFxcWy4qP1xcXVxcfHsuKj99XFwpKlsgICAgIF0qJCIpIChvcmctZWxlbWVu dC1sYXRleC1lbnZpcm9ubWVudC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1h dCBvcmctZHJhd2VyLXJlZ2V4cCkgKGlmIChlcXVhbCAuLi4gIlBST1BFUlRJRVMiKSAob3JnLWVs ZW1lbnQtcHJvcGVydHktZHJhd2VyLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSAob3JnLWVsZW1l bnQtZHJhd2VyLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkpICgobG9va2luZy1hdCAiWyAgICAg ICAgXSo6XFwoIFxcfCRcXCkiKSAob3JnLWVsZW1lbnQtZml4ZWQtd2lkdGgtcGFyc2VyIGxpbWl0 IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlsgICAgIF0qIyIpIChnb3RvLWNoYXIgKG1hdGNo LWVuZCAwKSkgKGNvbmQgKC4uLiAuLi4gLi4uKSAoLi4uIC4uLiAuLi4pICguLi4gLi4uIC4uLikg KC4uLiAuLi4gLi4uKSAoLi4uIC4uLiAuLi4pICh0IC4uLiAuLi4pKSkgKChsb29raW5nLWF0IG9y Zy1mb290bm90ZS1kZWZpbml0aW9uLXJlKSAob3JnLWVsZW1lbnQtZm9vdG5vdGUtZGVmaW5pdGlv bi1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiWyAgIF0qLVxcezUsXFx9 WyAgICBdKiQiKSAob3JnLWVsZW1lbnQtaG9yaXpvbnRhbC1ydWxlLXBhcnNlciBsaW1pdCBhZmZp bGlhdGVkKSkgKChsb29raW5nLWF0ICIlJSgiKSAob3JnLWVsZW1lbnQtZGlhcnktc2V4cC1wYXJz ZXIgbGltaXQgYWZmaWxpYXRlZCkpICgob3JnLWF0LXRhYmxlLXAgdCkgKG9yZy1lbGVtZW50LXRh YmxlLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0IChvcmctaXRlbS1yZSkp IChvcmctZWxlbWVudC1wbGFpbi1saXN0LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkIChvciBzdHJ1 Y3R1cmUgLi4uKSkpICh0IChvcmctZWxlbWVudC1wYXJhZ3JhcGgtcGFyc2VyIGxpbWl0IGFmZmls aWF0ZWQpKSkpKSkpCiAgKHNhdmUtZXhjdXJzaW9uIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIHQp IChyYXctc2Vjb25kYXJ5LXAgKGFuZCBncmFudWxhcml0eSAobm90IChlcSBncmFudWxhcml0eSAo cXVvdGUgb2JqZWN0KSkpKSkpIChjb25kICgoZXEgc3BlY2lhbCAocXVvdGUgaXRlbSkpIChvcmct ZWxlbWVudC1pdGVtLXBhcnNlciBsaW1pdCBzdHJ1Y3R1cmUgcmF3LXNlY29uZGFyeS1wKSkgKChl cSBzcGVjaWFsIChxdW90ZSB0YWJsZS1yb3cpKSAob3JnLWVsZW1lbnQtdGFibGUtcm93LXBhcnNl ciBsaW1pdCkpICgoZXEgc3BlY2lhbCAocXVvdGUgbm9kZS1wcm9wZXJ0eSkpIChvcmctZWxlbWVu dC1ub2RlLXByb3BlcnR5LXBhcnNlciBsaW1pdCkpICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1s aW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0 bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91 dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgKG9yZy1h dC1oZWFkaW5nLXApKSAob3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFyc2VyIGxpbWl0IHJhdy1zZWNv bmRhcnktcCkpICgoZXEgc3BlY2lhbCAocXVvdGUgc2VjdGlvbikpIChvcmctZWxlbWVudC1zZWN0 aW9uLXBhcnNlciBsaW1pdCkpICgoZXEgc3BlY2lhbCAocXVvdGUgZmlyc3Qtc2VjdGlvbikpIChv cmctZWxlbWVudC1zZWN0aW9uLXBhcnNlciAob3IgKHNhdmUtZXhjdXJzaW9uIChsZXQqIC4uLiAu Li4pKSBsaW1pdCkpKSAoKG5vdCAoYm9scCkpIChvcmctZWxlbWVudC1wYXJhZ3JhcGgtcGFyc2Vy IGxpbWl0IChsaXN0IChwb2ludCkpKSkgKChsb29raW5nLWF0IG9yZy1wbGFubmluZy1vci1jbG9j ay1saW5lLXJlKSAoaWYgKGVxdWFsIChtYXRjaC1zdHJpbmcgMSkgb3JnLWNsb2NrLXN0cmluZykg KG9yZy1lbGVtZW50LWNsb2NrLXBhcnNlciBsaW1pdCkgKG9yZy1lbGVtZW50LXBsYW5uaW5nLXBh cnNlciBsaW1pdCkpKSAoKG9yZy1hdC1oZWFkaW5nLXApIChvcmctZWxlbWVudC1pbmxpbmV0YXNr LXBhcnNlciBsaW1pdCByYXctc2Vjb25kYXJ5LXApKSAodCAobGV0ICgoYWZmaWxpYXRlZCAob3Jn LWVsZW1lbnQtLWNvbGxlY3QtYWZmaWxpYXRlZC1rZXl3b3JkcyBsaW1pdCkpKSAoY29uZCAoKGFu ZCAuLi4gLi4uKSAoZ290by1jaGFyIC4uLikgKG9yZy1lbGVtZW50LWtleXdvcmQtcGFyc2VyIGxp bWl0IG5pbCkpICgobG9va2luZy1hdCAiWyAgICAgIF0qXFxcXGJlZ2lue1tBLVphLXowLTkqXSt9 XFwoXFxbLio/XFxdXFx8ey4qP31cXCkqWyAgICAgXSokIikgKG9yZy1lbGVtZW50LWxhdGV4LWVu dmlyb25tZW50LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0IG9yZy1kcmF3 ZXItcmVnZXhwKSAoaWYgLi4uIC4uLiAuLi4pKSAoKGxvb2tpbmctYXQgIlsgICAgICAgIF0qOlxc KCBcXHwkXFwpIikgKG9yZy1lbGVtZW50LWZpeGVkLXdpZHRoLXBhcnNlciBsaW1pdCBhZmZpbGlh dGVkKSkgKChsb29raW5nLWF0ICJbICAgICBdKiMiKSAoZ290by1jaGFyIC4uLikgKGNvbmQgLi4u IC4uLiAuLi4gLi4uIC4uLiAuLi4pKSAoKGxvb2tpbmctYXQgb3JnLWZvb3Rub3RlLWRlZmluaXRp b24tcmUpIChvcmctZWxlbWVudC1mb290bm90ZS1kZWZpbml0aW9uLXBhcnNlciBsaW1pdCBhZmZp bGlhdGVkKSkgKChsb29raW5nLWF0ICJbICAgICAgIF0qLVxcezUsXFx9WyAgICBdKiQiKSAob3Jn LWVsZW1lbnQtaG9yaXpvbnRhbC1ydWxlLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29r aW5nLWF0ICIlJSgiKSAob3JnLWVsZW1lbnQtZGlhcnktc2V4cC1wYXJzZXIgbGltaXQgYWZmaWxp YXRlZCkpICgob3JnLWF0LXRhYmxlLXAgdCkgKG9yZy1lbGVtZW50LXRhYmxlLXBhcnNlciBsaW1p dCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0IC4uLikgKG9yZy1lbGVtZW50LXBsYWluLWxpc3Qt cGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQgLi4uKSkgKHQgKG9yZy1lbGVtZW50LXBhcmFncmFwaC1w YXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpKSkpKSkpCiAgb3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxl bWVudCgyNTc3MDYgZWxlbWVudCBuaWwgbmlsKQogIChzZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50 LS1jdXJyZW50LWVsZW1lbnQgZW5kIChxdW90ZSBlbGVtZW50KSBzcGVjaWFsLWZsYWcgKG9yZy1l bGVtZW50LXByb3BlcnR5IDpzdHJ1Y3R1cmUgcGFyZW50KSkpCiAgKGlmIGVsZW1lbnQgbmlsIChz ZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50LS1jdXJyZW50LWVsZW1lbnQgZW5kIChxdW90ZSBlbGVt ZW50KSBzcGVjaWFsLWZsYWcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpzdHJ1Y3R1cmUgcGFyZW50 KSkpIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgZWxlbWVudCA6cGFyZW50IHBhcmVudCkgKG9y Zy1lbGVtZW50LS1jYWNoZS1wdXQgZWxlbWVudCkpCiAgKHdoaWxlIHQgKGlmIHN5bmNwIChwcm9n biAoY29uZCAoKD0gKHBvaW50KSBwb3MpICh0aHJvdyAocXVvdGUgZXhpdCkgcGFyZW50KSkgKChv cmctZWxlbWVudC0tY2FjaGUtaW50ZXJydXB0LXAgdGltZS1saW1pdCkgKHRocm93IChxdW90ZSBp bnRlcnJ1cHQpIG5pbCkpKSkpIChpZiBlbGVtZW50IG5pbCAoc2V0cSBlbGVtZW50IChvcmctZWxl bWVudC0tY3VycmVudC1lbGVtZW50IGVuZCAocXVvdGUgZWxlbWVudCkgc3BlY2lhbC1mbGFnIChv cmctZWxlbWVudC1wcm9wZXJ0eSA6c3RydWN0dXJlIHBhcmVudCkpKSAob3JnLWVsZW1lbnQtcHV0 LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQpIChvcmctZWxlbWVudC0tY2FjaGUtcHV0 IGVsZW1lbnQpKSAobGV0ICgoZWxlbS1lbmQgKG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxl bWVudCkpICh0eXBlIChvcmctZWxlbWVudC10eXBlIGVsZW1lbnQpKSkgKGNvbmQgKChhbmQgKDw9 IGVsZW0tZW5kIHBvcykgKC89IChwb2ludC1tYXgpIGVsZW0tZW5kKSkgKGdvdG8tY2hhciBlbGVt LWVuZCkpICgobm90IChtZW1xIHR5cGUgb3JnLWVsZW1lbnQtZ3JlYXRlci1lbGVtZW50cykpICh0 aHJvdyAocXVvdGUgZXhpdCkgZWxlbWVudCkpICgobGV0ICgoY2JlZyAob3JnLWVsZW1lbnQtcHJv cGVydHkgOmNvbnRlbnRzLWJlZ2luIGVsZW1lbnQpKSAoY2VuZCAob3JnLWVsZW1lbnQtcHJvcGVy dHkgOmNvbnRlbnRzLWVuZCBlbGVtZW50KSkpIChpZiAob3Igc3luY3AgKGFuZCBjYmVnIGNlbmQg Li4uIC4uLikpIChwcm9nbiAoZ290by1jaGFyIC4uLikgKHNldHEgbmV4dCBuaWwgc3BlY2lhbC1m bGFnIC4uLiBwYXJlbnQgZWxlbWVudCBlbmQgY2VuZCkpKSkpICh0ICh0aHJvdyAocXVvdGUgZXhp dCkgZWxlbWVudCkpKSkgKHNldHEgZWxlbWVudCBuaWwpKQogIChsZXQgKChlbmQgKG9yIChvcmct ZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQpIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAoKG9y Zy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIC4uLikg KG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1i b2wgLi4uKSkgKG91dGxpbmUtbmV4dC1oZWFkaW5nKSkgKHBvaW50KSkpKSAocGFyZW50IGVsZW1l bnQpIHNwZWNpYWwtZmxhZykgKHdoaWxlIHQgKGlmIHN5bmNwIChwcm9nbiAoY29uZCAoKD0gKHBv aW50KSBwb3MpICh0aHJvdyAocXVvdGUgZXhpdCkgcGFyZW50KSkgKChvcmctZWxlbWVudC0tY2Fj aGUtaW50ZXJydXB0LXAgdGltZS1saW1pdCkgKHRocm93IChxdW90ZSBpbnRlcnJ1cHQpIG5pbCkp KSkpIChpZiBlbGVtZW50IG5pbCAoc2V0cSBlbGVtZW50IChvcmctZWxlbWVudC0tY3VycmVudC1l bGVtZW50IGVuZCAocXVvdGUgZWxlbWVudCkgc3BlY2lhbC1mbGFnIChvcmctZWxlbWVudC1wcm9w ZXJ0eSA6c3RydWN0dXJlIHBhcmVudCkpKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1l bnQgOnBhcmVudCBwYXJlbnQpIChvcmctZWxlbWVudC0tY2FjaGUtcHV0IGVsZW1lbnQpKSAobGV0 ICgoZWxlbS1lbmQgKG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkpICh0eXBlIChv cmctZWxlbWVudC10eXBlIGVsZW1lbnQpKSkgKGNvbmQgKChhbmQgKDw9IGVsZW0tZW5kIHBvcykg KC89IChwb2ludC1tYXgpIGVsZW0tZW5kKSkgKGdvdG8tY2hhciBlbGVtLWVuZCkpICgobm90ICht ZW1xIHR5cGUgb3JnLWVsZW1lbnQtZ3JlYXRlci1lbGVtZW50cykpICh0aHJvdyAocXVvdGUgZXhp dCkgZWxlbWVudCkpICgobGV0ICgoY2JlZyAuLi4pIChjZW5kIC4uLikpIChpZiAob3Igc3luY3Ag Li4uKSAocHJvZ24gLi4uIC4uLikpKSkgKHQgKHRocm93IChxdW90ZSBleGl0KSBlbGVtZW50KSkp KSAoc2V0cSBlbGVtZW50IG5pbCkpKQogIChsZXQqICgoY2FjaGVkIChhbmQgKG9yZy1lbGVtZW50 LS1jYWNoZS1hY3RpdmUtcCkgKG9yZy1lbGVtZW50LS1jYWNoZS1maW5kIHBvcyBuaWwpKSkgKGJl Z2luIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6YmVnaW4gY2FjaGVkKSkgZWxlbWVudCBuZXh0KSAo Y29uZCAoKG5vdCBjYWNoZWQpIChpZiAobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxl dmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdl eHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVn ZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgKG91dGxpbmUtcHJldmlv dXMtaGVhZGluZykpIChwcm9nbiAoZm9yd2FyZC1saW5lKSkpIChza2lwLWNoYXJzLWZvcndhcmQg IiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkgKCg9IHBvcyBiZWdpbikgKHRocm93IChxdW90 ZSBleGl0KSAoaWYgc3luY3AgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpwYXJlbnQgY2FjaGVkKSBj YWNoZWQpKSkgKChyZS1zZWFyY2gtYmFja3dhcmQgKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGlt aXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxp bmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRs aW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIG9yZy1vdXRs aW5lLXJlZ2V4cC1ib2wpIGJlZ2luIHQpIChmb3J3YXJkLWxpbmUpIChza2lwLWNoYXJzLWZvcndh cmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkgKHQgKGxldCAoKHVwIGNhY2hlZCkgKHBv cyAoaWYgKD0gLi4uIHBvcykgKDEtIHBvcykgcG9zKSkpIChnb3RvLWNoYXIgKG9yIChvcmctZWxl bWVudC1wcm9wZXJ0eSA6Y29udGVudHMtYmVnaW4gY2FjaGVkKSBiZWdpbikpICh3aGlsZSAobGV0 ICgoZW5kIC4uLikpIChhbmQgKDw9IGVuZCBwb3MpIChnb3RvLWNoYXIgZW5kKSAoc2V0cSB1cCAu Li4pKSkpIChjb25kICgobm90IHVwKSkgKChlb2JwKSAoc2V0cSBlbGVtZW50IHVwKSkgKHQgKHNl dHEgZWxlbWVudCB1cCBuZXh0IChwb2ludCkpKSkpKSkgKGxldCAoKGVuZCAob3IgKG9yZy1lbGVt ZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkgKHNhdmUtZXhjdXJzaW9uIChsZXQqICguLi4gLi4u IC4uLiAuLi4pIChvdXRsaW5lLW5leHQtaGVhZGluZykpIChwb2ludCkpKSkgKHBhcmVudCBlbGVt ZW50KSBzcGVjaWFsLWZsYWcpICh3aGlsZSB0IChpZiBzeW5jcCAocHJvZ24gKGNvbmQgKCg9IC4u LiBwb3MpICh0aHJvdyAuLi4gcGFyZW50KSkgKChvcmctZWxlbWVudC0tY2FjaGUtaW50ZXJydXB0 LXAgdGltZS1saW1pdCkgKHRocm93IC4uLiBuaWwpKSkpKSAoaWYgZWxlbWVudCBuaWwgKHNldHEg ZWxlbWVudCAob3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVudCBlbmQgKHF1b3RlIGVsZW1lbnQp IHNwZWNpYWwtZmxhZyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnN0cnVjdHVyZSBwYXJlbnQpKSkg KG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBlbGVtZW50IDpwYXJlbnQgcGFyZW50KSAob3JnLWVs ZW1lbnQtLWNhY2hlLXB1dCBlbGVtZW50KSkgKGxldCAoKGVsZW0tZW5kIChvcmctZWxlbWVudC1w cm9wZXJ0eSA6ZW5kIGVsZW1lbnQpKSAodHlwZSAob3JnLWVsZW1lbnQtdHlwZSBlbGVtZW50KSkp IChjb25kICgoYW5kICg8PSBlbGVtLWVuZCBwb3MpICgvPSAuLi4gZWxlbS1lbmQpKSAoZ290by1j aGFyIGVsZW0tZW5kKSkgKChub3QgKG1lbXEgdHlwZSBvcmctZWxlbWVudC1ncmVhdGVyLWVsZW1l bnRzKSkgKHRocm93IChxdW90ZSBleGl0KSBlbGVtZW50KSkgKChsZXQgKC4uLiAuLi4pIChpZiAu Li4gLi4uKSkpICh0ICh0aHJvdyAocXVvdGUgZXhpdCkgZWxlbWVudCkpKSkgKHNldHEgZWxlbWVu dCBuaWwpKSkpCiAgKHNhdmUtcmVzdHJpY3Rpb24gKHdpZGVuKSAoZ290by1jaGFyIHBvcykgKGxl dCogKChjYWNoZWQgKGFuZCAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAob3JnLWVsZW1l bnQtLWNhY2hlLWZpbmQgcG9zIG5pbCkpKSAoYmVnaW4gKG9yZy1lbGVtZW50LXByb3BlcnR5IDpi ZWdpbiBjYWNoZWQpKSBlbGVtZW50IG5leHQpIChjb25kICgobm90IGNhY2hlZCkgKGlmIChsZXQq ICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAg Li4uKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVn ZXhwLWJvbCAuLi4pKSAob3V0bGluZS1wcmV2aW91cy1oZWFkaW5nKSkgKHByb2duIChmb3J3YXJk LWxpbmUpKSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUp KSAoKD0gcG9zIGJlZ2luKSAodGhyb3cgKHF1b3RlIGV4aXQpIChpZiBzeW5jcCAob3JnLWVsZW1l bnQtcHJvcGVydHkgOnBhcmVudCBjYWNoZWQpIGNhY2hlZCkpKSAoKHJlLXNlYXJjaC1iYWNrd2Fy ZCAobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUt cmVnZXhwIC4uLikgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRs aW5lLXJlZ2V4cC1ib2wgLi4uKSkgb3JnLW91dGxpbmUtcmVnZXhwLWJvbCkgYmVnaW4gdCkgKGZv cndhcmQtbGluZSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxp bmUpKSAodCAobGV0ICgodXAgY2FjaGVkKSAocG9zIChpZiAuLi4gLi4uIHBvcykpKSAoZ290by1j aGFyIChvciAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmNvbnRlbnRzLWJlZ2luIGNhY2hlZCkgYmVn aW4pKSAod2hpbGUgKGxldCAoLi4uKSAoYW5kIC4uLiAuLi4gLi4uKSkpIChjb25kICgobm90IHVw KSkgKChlb2JwKSAoc2V0cSBlbGVtZW50IHVwKSkgKHQgKHNldHEgZWxlbWVudCB1cCBuZXh0IC4u LikpKSkpKSAobGV0ICgoZW5kIChvciAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50 KSAoc2F2ZS1leGN1cnNpb24gKGxldCogLi4uIC4uLikgKHBvaW50KSkpKSAocGFyZW50IGVsZW1l bnQpIHNwZWNpYWwtZmxhZykgKHdoaWxlIHQgKGlmIHN5bmNwIChwcm9nbiAoY29uZCAoLi4uIC4u LikgKC4uLiAuLi4pKSkpIChpZiBlbGVtZW50IG5pbCAoc2V0cSBlbGVtZW50IChvcmctZWxlbWVu dC0tY3VycmVudC1lbGVtZW50IGVuZCAocXVvdGUgZWxlbWVudCkgc3BlY2lhbC1mbGFnIChvcmct ZWxlbWVudC1wcm9wZXJ0eSA6c3RydWN0dXJlIHBhcmVudCkpKSAob3JnLWVsZW1lbnQtcHV0LXBy b3BlcnR5IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQpIChvcmctZWxlbWVudC0tY2FjaGUtcHV0IGVs ZW1lbnQpKSAobGV0ICgoZWxlbS1lbmQgKG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVu dCkpICh0eXBlIChvcmctZWxlbWVudC10eXBlIGVsZW1lbnQpKSkgKGNvbmQgKChhbmQgLi4uIC4u LikgKGdvdG8tY2hhciBlbGVtLWVuZCkpICgobm90IC4uLikgKHRocm93IC4uLiBlbGVtZW50KSkg KChsZXQgLi4uIC4uLikpICh0ICh0aHJvdyAuLi4gZWxlbWVudCkpKSkgKHNldHEgZWxlbWVudCBu aWwpKSkpKQogIChzYXZlLWV4Y3Vyc2lvbiAoc2F2ZS1yZXN0cmljdGlvbiAod2lkZW4pIChnb3Rv LWNoYXIgcG9zKSAobGV0KiAoKGNhY2hlZCAoYW5kIChvcmctZWxlbWVudC0tY2FjaGUtYWN0aXZl LXApIChvcmctZWxlbWVudC0tY2FjaGUtZmluZCBwb3MgbmlsKSkpIChiZWdpbiAob3JnLWVsZW1l bnQtcHJvcGVydHkgOmJlZ2luIGNhY2hlZCkpIGVsZW1lbnQgbmV4dCkgKGNvbmQgKChub3QgY2Fj aGVkKSAoaWYgKGxldCogKC4uLiAuLi4gLi4uIC4uLikgKG91dGxpbmUtcHJldmlvdXMtaGVhZGlu ZykpIChwcm9nbiAoZm9yd2FyZC1saW5lKSkpIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikg KGJlZ2lubmluZy1vZi1saW5lKSkgKCg9IHBvcyBiZWdpbikgKHRocm93IChxdW90ZSBleGl0KSAo aWYgc3luY3AgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpwYXJlbnQgY2FjaGVkKSBjYWNoZWQpKSkg KChyZS1zZWFyY2gtYmFja3dhcmQgKGxldCogKC4uLiAuLi4gLi4uIC4uLikgb3JnLW91dGxpbmUt cmVnZXhwLWJvbCkgYmVnaW4gdCkgKGZvcndhcmQtbGluZSkgKHNraXAtY2hhcnMtZm9yd2FyZCAi IA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAodCAobGV0ICgodXAgY2FjaGVkKSAocG9zIC4u LikpIChnb3RvLWNoYXIgKG9yIC4uLiBiZWdpbikpICh3aGlsZSAobGV0IC4uLiAuLi4pKSAoY29u ZCAoLi4uKSAoLi4uIC4uLikgKHQgLi4uKSkpKSkgKGxldCAoKGVuZCAob3IgKG9yZy1lbGVtZW50 LXByb3BlcnR5IDplbmQgZWxlbWVudCkgKHNhdmUtZXhjdXJzaW9uIC4uLiAuLi4pKSkgKHBhcmVu dCBlbGVtZW50KSBzcGVjaWFsLWZsYWcpICh3aGlsZSB0IChpZiBzeW5jcCAocHJvZ24gKGNvbmQg Li4uIC4uLikpKSAoaWYgZWxlbWVudCBuaWwgKHNldHEgZWxlbWVudCAob3JnLWVsZW1lbnQtLWN1 cnJlbnQtZWxlbWVudCBlbmQgLi4uIHNwZWNpYWwtZmxhZyAuLi4pKSAob3JnLWVsZW1lbnQtcHV0 LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQpIChvcmctZWxlbWVudC0tY2FjaGUtcHV0 IGVsZW1lbnQpKSAobGV0ICgoZWxlbS1lbmQgLi4uKSAodHlwZSAuLi4pKSAoY29uZCAoLi4uIC4u LikgKC4uLiAuLi4pICguLi4pICh0IC4uLikpKSAoc2V0cSBlbGVtZW50IG5pbCkpKSkpKQogIChj YXRjaCAocXVvdGUgZXhpdCkgKHNhdmUtZXhjdXJzaW9uIChzYXZlLXJlc3RyaWN0aW9uICh3aWRl bikgKGdvdG8tY2hhciBwb3MpIChsZXQqICgoY2FjaGVkIChhbmQgKG9yZy1lbGVtZW50LS1jYWNo ZS1hY3RpdmUtcCkgKG9yZy1lbGVtZW50LS1jYWNoZS1maW5kIHBvcyBuaWwpKSkgKGJlZ2luIChv cmctZWxlbWVudC1wcm9wZXJ0eSA6YmVnaW4gY2FjaGVkKSkgZWxlbWVudCBuZXh0KSAoY29uZCAo KG5vdCBjYWNoZWQpIChpZiAobGV0KiAuLi4gLi4uKSAocHJvZ24gLi4uKSkgKHNraXAtY2hhcnMt Zm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAoKD0gcG9zIGJlZ2luKSAodGhy b3cgKHF1b3RlIGV4aXQpIChpZiBzeW5jcCAuLi4gY2FjaGVkKSkpICgocmUtc2VhcmNoLWJhY2t3 YXJkIChsZXQqIC4uLiBvcmctb3V0bGluZS1yZWdleHAtYm9sKSBiZWdpbiB0KSAoZm9yd2FyZC1s aW5lKSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkpICh0 IChsZXQgKC4uLiAuLi4pIChnb3RvLWNoYXIgLi4uKSAod2hpbGUgLi4uKSAoY29uZCAuLi4gLi4u IC4uLikpKSkgKGxldCAoKGVuZCAob3IgLi4uIC4uLikpIChwYXJlbnQgZWxlbWVudCkgc3BlY2lh bC1mbGFnKSAod2hpbGUgdCAoaWYgc3luY3AgKHByb2duIC4uLikpIChpZiBlbGVtZW50IG5pbCAo c2V0cSBlbGVtZW50IC4uLikgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBlbGVtZW50IDpwYXJl bnQgcGFyZW50KSAob3JnLWVsZW1lbnQtLWNhY2hlLXB1dCBlbGVtZW50KSkgKGxldCAoLi4uIC4u LikgKGNvbmQgLi4uIC4uLiAuLi4gLi4uKSkgKHNldHEgZWxlbWVudCBuaWwpKSkpKSkpCiAgb3Jn LWVsZW1lbnQtLXBhcnNlLXRvKDI1NzI4MCkKICAoY29uZCAoKGJvYnApIG5pbCkgKChsZXQqICgo b3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9y Zy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGlu ZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5l LXJlZ2V4cCkpKSAob3JnLWF0LWhlYWRpbmctcCkpIChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1l bGVtZW50LWhlYWRsaW5lLXBhcnNlciAocG9pbnQtbWF4KSB0KSkgKHQgKGlmIChvcmctZWxlbWVu dC0tY2FjaGUtYWN0aXZlLXApIChwcm9nbiAoaWYgKG5vdCBvcmctZWxlbWVudC0tY2FjaGUpIChv cmctZWxlbWVudC1jYWNoZS1yZXNldCkgKG9yZy1lbGVtZW50LS1jYWNoZS1zeW5jIChjdXJyZW50 LWJ1ZmZlcikgb3JpZ2luKSkpKSAob3JnLWVsZW1lbnQtLXBhcnNlLXRvIG9yaWdpbikpKQogIChs ZXQgKChvcmlnaW4gKHBvaW50KSkpIChlbmQtb2YtbGluZSkgKHNraXAtY2hhcnMtYmFja3dhcmQg IiANCVxuIikgKGNvbmQgKChib2JwKSBuaWwpICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1p dGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGlu ZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxp bmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgKG9yZy1hdC1o ZWFkaW5nLXApKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1oZWFkbGluZS1wYXJz ZXIgKHBvaW50LW1heCkgdCkpICh0IChpZiAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAo cHJvZ24gKGlmIChub3Qgb3JnLWVsZW1lbnQtLWNhY2hlKSAob3JnLWVsZW1lbnQtY2FjaGUtcmVz ZXQpIChvcmctZWxlbWVudC0tY2FjaGUtc3luYyAoY3VycmVudC1idWZmZXIpIG9yaWdpbikpKSkg KG9yZy1lbGVtZW50LS1wYXJzZS10byBvcmlnaW4pKSkpCiAgKHNhdmUtcmVzdHJpY3Rpb24gKHdp ZGVuKSAobGV0ICgob3JpZ2luIChwb2ludCkpKSAoZW5kLW9mLWxpbmUpIChza2lwLWNoYXJzLWJh Y2t3YXJkICIgDQlcbiIpIChjb25kICgoYm9icCkgbmlsKSAoKGxldCogKChvcmctY2FsbGVkLXdp dGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVk LW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9y Zy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChv cmctYXQtaGVhZGluZy1wKSkgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQtaGVhZGxp bmUtcGFyc2VyIChwb2ludC1tYXgpIHQpKSAodCAoaWYgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3Rp dmUtcCkgKHByb2duIChpZiAobm90IG9yZy1lbGVtZW50LS1jYWNoZSkgKG9yZy1lbGVtZW50LWNh Y2hlLXJlc2V0KSAob3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMgLi4uIG9yaWdpbikpKSkgKG9yZy1l bGVtZW50LS1wYXJzZS10byBvcmlnaW4pKSkpKQogIChzYXZlLWV4Y3Vyc2lvbiAoc2F2ZS1yZXN0 cmljdGlvbiAod2lkZW4pIChsZXQgKChvcmlnaW4gKHBvaW50KSkpIChlbmQtb2YtbGluZSkgKHNr aXAtY2hhcnMtYmFja3dhcmQgIiANCVxuIikgKGNvbmQgKChib2JwKSBuaWwpICgobGV0KiAoKG9y Zy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIC4uLikg KG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1i b2wgLi4uKSkgKG9yZy1hdC1oZWFkaW5nLXApKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxl bWVudC1oZWFkbGluZS1wYXJzZXIgKHBvaW50LW1heCkgdCkpICh0IChpZiAob3JnLWVsZW1lbnQt LWNhY2hlLWFjdGl2ZS1wKSAocHJvZ24gKGlmIC4uLiAuLi4gLi4uKSkpIChvcmctZWxlbWVudC0t cGFyc2UtdG8gb3JpZ2luKSkpKSkpCiAgb3JnLWVsZW1lbnQtYXQtcG9pbnQoKQogIChsZXQgKChk cmF3ZXIgKG9yZy1lbGVtZW50LWF0LXBvaW50KSkpIChpZiAoYW5kIChlcSAob3JnLWVsZW1lbnQt dHlwZSBkcmF3ZXIpIChxdW90ZSBwcm9wZXJ0eS1kcmF3ZXIpKSAobGV0ICgocCBkcmF3ZXIpKSAo d2hpbGUgKGFuZCAoc2V0cSBwIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGFyZW50IHApKSAobm90 IChlcSAuLi4gLi4uKSkpKSAobm90IHApKSkgKHByb2duIChsZXQgKChlbmQgKG9yZy1lbGVtZW50 LXByb3BlcnR5IDpjb250ZW50cy1lbmQgZHJhd2VyKSkpIChpZiBlbmQgKHByb2duIChmb3J3YXJk LWxpbmUpICh3aGlsZSAoPCAuLi4gZW5kKSAoaWYgLi4uIC4uLikgKGZvcndhcmQtbGluZSkpKSkp KSkpCiAgKHdoaWxlIChhbmQgKG51bGwgcGxpc3QpIChyZS1zZWFyY2gtZm9yd2FyZCBvcmctcHJv cGVydHktc3RhcnQtcmUgZW5kIHQpKSAobGV0ICgoZHJhd2VyIChvcmctZWxlbWVudC1hdC1wb2lu dCkpKSAoaWYgKGFuZCAoZXEgKG9yZy1lbGVtZW50LXR5cGUgZHJhd2VyKSAocXVvdGUgcHJvcGVy dHktZHJhd2VyKSkgKGxldCAoKHAgZHJhd2VyKSkgKHdoaWxlIChhbmQgKHNldHEgcCAuLi4pIChu b3QgLi4uKSkpIChub3QgcCkpKSAocHJvZ24gKGxldCAoKGVuZCAob3JnLWVsZW1lbnQtcHJvcGVy dHkgOmNvbnRlbnRzLWVuZCBkcmF3ZXIpKSkgKGlmIGVuZCAocHJvZ24gKGZvcndhcmQtbGluZSkg KHdoaWxlIC4uLiAuLi4gLi4uKSkpKSkpKSkKICAoc2F2ZS1leGN1cnNpb24gKHdoaWxlIChhbmQg KG51bGwgcGxpc3QpIChyZS1zZWFyY2gtZm9yd2FyZCBvcmctcHJvcGVydHktc3RhcnQtcmUgZW5k IHQpKSAobGV0ICgoZHJhd2VyIChvcmctZWxlbWVudC1hdC1wb2ludCkpKSAoaWYgKGFuZCAoZXEg KG9yZy1lbGVtZW50LXR5cGUgZHJhd2VyKSAocXVvdGUgcHJvcGVydHktZHJhd2VyKSkgKGxldCAo KHAgZHJhd2VyKSkgKHdoaWxlIChhbmQgLi4uIC4uLikpIChub3QgcCkpKSAocHJvZ24gKGxldCAo KGVuZCAuLi4pKSAoaWYgZW5kIChwcm9nbiAuLi4gLi4uKSkpKSkpKSBwbGlzdCkKICAobGV0ICgo ZW5kIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVs cyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHAp KSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhw LWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgKG91dGxpbmUtbmV4dC1oZWFk aW5nKSkgKHBvaW50KSkpIHBsaXN0KSAoc2F2ZS1leGN1cnNpb24gKHdoaWxlIChhbmQgKG51bGwg cGxpc3QpIChyZS1zZWFyY2gtZm9yd2FyZCBvcmctcHJvcGVydHktc3RhcnQtcmUgZW5kIHQpKSAo bGV0ICgoZHJhd2VyIChvcmctZWxlbWVudC1hdC1wb2ludCkpKSAoaWYgKGFuZCAoZXEgKG9yZy1l bGVtZW50LXR5cGUgZHJhd2VyKSAocXVvdGUgcHJvcGVydHktZHJhd2VyKSkgKGxldCAoLi4uKSAo d2hpbGUgLi4uKSAobm90IHApKSkgKHByb2duIChsZXQgKC4uLikgKGlmIGVuZCAuLi4pKSkpKSkg cGxpc3QpKQogIChsZXQqICgoY29tcG9uZW50cyAob3JnLWhlYWRpbmctY29tcG9uZW50cykpIChs ZXZlbCAobnRoIDEgY29tcG9uZW50cykpICh0b2RvIChudGggMiBjb21wb25lbnRzKSkgKHRvZG8t dHlwZSAoYW5kIHRvZG8gKGlmIChtZW1iZXIgdG9kbyBvcmctZG9uZS1rZXl3b3JkcykgKHF1b3Rl IGRvbmUpIChxdW90ZSB0b2RvKSkpKSAodGFncyAobGV0ICgocmF3LXRhZ3MgKG50aCA1IGNvbXBv bmVudHMpKSkgKGFuZCByYXctdGFncyAob3JnLXNwbGl0LXN0cmluZyByYXctdGFncyAiOiIpKSkp IChyYXctdmFsdWUgKG9yIChudGggNCBjb21wb25lbnRzKSAiIikpIChjb21tZW50ZWRwIChsZXQg KChjYXNlLWZvbGQtc2VhcmNoIG5pbCkpIChzdHJpbmctbWF0Y2ggKGZvcm1hdCAiXiVzXFwoIFxc fCRcXCkiIG9yZy1jb21tZW50LXN0cmluZykgcmF3LXZhbHVlKSkpIChhcmNoaXZlZHAgKG1lbWJl ciBvcmctYXJjaGl2ZS10YWcgdGFncykpIChmb290bm90ZS1zZWN0aW9uLXAgKGFuZCBvcmctZm9v dG5vdGUtc2VjdGlvbiAoc3RyaW5nPSBvcmctZm9vdG5vdGUtc2VjdGlvbiByYXctdmFsdWUpKSkg KHN0YW5kYXJkLXByb3BzIChsZXQgKChlbmQgKHNhdmUtZXhjdXJzaW9uIChsZXQqIC4uLiAuLi4p IChwb2ludCkpKSBwbGlzdCkgKHNhdmUtZXhjdXJzaW9uICh3aGlsZSAoYW5kIChudWxsIHBsaXN0 KSAocmUtc2VhcmNoLWZvcndhcmQgb3JnLXByb3BlcnR5LXN0YXJ0LXJlIGVuZCB0KSkgKGxldCAo Li4uKSAoaWYgLi4uIC4uLikpKSBwbGlzdCkpKSAodGltZS1wcm9wcyAoc2F2ZS1leGN1cnNpb24g KGZvcndhcmQtbGluZSkgKGlmIChsb29raW5nLWF0IG9yZy1wbGFubmluZy1vci1jbG9jay1saW5l LXJlKSAocHJvZ24gKGxldCAoLi4uIHBsaXN0KSAod2hpbGUgLi4uIC4uLiAuLi4gLi4uKSBwbGlz dCkpKSkpIChiZWdpbiAocG9pbnQpKSAoZW5kIChtaW4gKHNhdmUtZXhjdXJzaW9uIChvcmctZW5k LW9mLXN1YnRyZWUgdCB0KSkgbGltaXQpKSAocG9zLWFmdGVyLWhlYWQgKHByb2duIChmb3J3YXJk LWxpbmUpIChwb2ludCkpKSAoY29udGVudHMtYmVnaW4gKHNhdmUtZXhjdXJzaW9uIChza2lwLWNo YXJzLWZvcndhcmQgIiANCVxuIiBlbmQpIChhbmQgKC89IChwb2ludCkgZW5kKSAobGluZS1iZWdp bm5pbmctcG9zaXRpb24pKSkpIChjb250ZW50cy1lbmQgKGFuZCBjb250ZW50cy1iZWdpbiAocHJv Z24gKGdvdG8tY2hhciBlbmQpIChza2lwLWNoYXJzLWJhY2t3YXJkICIgDQlcbiIpIChmb3J3YXJk LWxpbmUpIChwb2ludCkpKSkpIChpZiBjb21tZW50ZWRwIChwcm9nbiAobGV0ICgoY2FzZS1mb2xk LXNlYXJjaCBuaWwpKSAoc2V0cSByYXctdmFsdWUgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZyAo Y29uY2F0IChyZWdleHAtcXVvdGUgb3JnLWNvbW1lbnQtc3RyaW5nKSAiXFwoPzogXFx8JFxcKSIp ICIiIHJhdy12YWx1ZSkpKSkpIChpZiBhcmNoaXZlZHAgKHByb2duIChzZXRxIHRhZ3MgKGRlbGV0 ZSBvcmctYXJjaGl2ZS10YWcgdGFncykpKSkgKGxldCAoKGhlYWRsaW5lIChsaXN0IChxdW90ZSBo ZWFkbGluZSkgKG5jb25jIChsaXN0IDpyYXctdmFsdWUgcmF3LXZhbHVlIDpiZWdpbiBiZWdpbiA6 ZW5kIGVuZCA6cHJlLWJsYW5rIChpZiAuLi4gMCAuLi4pIDpjb250ZW50cy1iZWdpbiBjb250ZW50 cy1iZWdpbiA6Y29udGVudHMtZW5kIGNvbnRlbnRzLWVuZCA6bGV2ZWwgbGV2ZWwgOnByaW9yaXR5 IChudGggMyBjb21wb25lbnRzKSA6dGFncyB0YWdzIDp0b2RvLWtleXdvcmQgdG9kbyA6dG9kby10 eXBlIHRvZG8tdHlwZSA6cG9zdC1ibGFuayAoY291bnQtbGluZXMgLi4uIGVuZCkgOmZvb3Rub3Rl LXNlY3Rpb24tcCBmb290bm90ZS1zZWN0aW9uLXAgOmFyY2hpdmVkcCBhcmNoaXZlZHAgOmNvbW1l bnRlZHAgY29tbWVudGVkcCkgdGltZS1wcm9wcyBzdGFuZGFyZC1wcm9wcykpKSkgKGxldCAoKGFs dC10aXRsZSAob3JnLWVsZW1lbnQtcHJvcGVydHkgOkFMVF9USVRMRSBoZWFkbGluZSkpKSAoaWYg YWx0LXRpdGxlIChwcm9nbiAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGhlYWRsaW5lIDphbHQt dGl0bGUgKGlmIHJhdy1zZWNvbmRhcnktcCBhbHQtdGl0bGUgKG9yZy1lbGVtZW50LXBhcnNlLXNl Y29uZGFyeS1zdHJpbmcgYWx0LXRpdGxlIC4uLiBoZWFkbGluZSkpKSkpKSAob3JnLWVsZW1lbnQt cHV0LXByb3BlcnR5IGhlYWRsaW5lIDp0aXRsZSAoaWYgcmF3LXNlY29uZGFyeS1wIHJhdy12YWx1 ZSAob3JnLWVsZW1lbnQtcGFyc2Utc2Vjb25kYXJ5LXN0cmluZyByYXctdmFsdWUgKG9yZy1lbGVt ZW50LXJlc3RyaWN0aW9uIChxdW90ZSBoZWFkbGluZSkpIGhlYWRsaW5lKSkpKSkKICAoc2F2ZS1l eGN1cnNpb24gKGxldCogKChjb21wb25lbnRzIChvcmctaGVhZGluZy1jb21wb25lbnRzKSkgKGxl dmVsIChudGggMSBjb21wb25lbnRzKSkgKHRvZG8gKG50aCAyIGNvbXBvbmVudHMpKSAodG9kby10 eXBlIChhbmQgdG9kbyAoaWYgKG1lbWJlciB0b2RvIG9yZy1kb25lLWtleXdvcmRzKSAocXVvdGUg ZG9uZSkgKHF1b3RlIHRvZG8pKSkpICh0YWdzIChsZXQgKChyYXctdGFncyAobnRoIDUgY29tcG9u ZW50cykpKSAoYW5kIHJhdy10YWdzIChvcmctc3BsaXQtc3RyaW5nIHJhdy10YWdzICI6IikpKSkg KHJhdy12YWx1ZSAob3IgKG50aCA0IGNvbXBvbmVudHMpICIiKSkgKGNvbW1lbnRlZHAgKGxldCAo KGNhc2UtZm9sZC1zZWFyY2ggbmlsKSkgKHN0cmluZy1tYXRjaCAoZm9ybWF0ICJeJXNcXCggXFx8 JFxcKSIgb3JnLWNvbW1lbnQtc3RyaW5nKSByYXctdmFsdWUpKSkgKGFyY2hpdmVkcCAobWVtYmVy IG9yZy1hcmNoaXZlLXRhZyB0YWdzKSkgKGZvb3Rub3RlLXNlY3Rpb24tcCAoYW5kIG9yZy1mb290 bm90ZS1zZWN0aW9uIChzdHJpbmc9IG9yZy1mb290bm90ZS1zZWN0aW9uIHJhdy12YWx1ZSkpKSAo c3RhbmRhcmQtcHJvcHMgKGxldCAoKGVuZCAoc2F2ZS1leGN1cnNpb24gLi4uIC4uLikpIHBsaXN0 KSAoc2F2ZS1leGN1cnNpb24gKHdoaWxlIChhbmQgLi4uIC4uLikgKGxldCAuLi4gLi4uKSkgcGxp c3QpKSkgKHRpbWUtcHJvcHMgKHNhdmUtZXhjdXJzaW9uIChmb3J3YXJkLWxpbmUpIChpZiAobG9v a2luZy1hdCBvcmctcGxhbm5pbmctb3ItY2xvY2stbGluZS1yZSkgKHByb2duIChsZXQgLi4uIC4u LiBwbGlzdCkpKSkpIChiZWdpbiAocG9pbnQpKSAoZW5kIChtaW4gKHNhdmUtZXhjdXJzaW9uIChv cmctZW5kLW9mLXN1YnRyZWUgdCB0KSkgbGltaXQpKSAocG9zLWFmdGVyLWhlYWQgKHByb2duIChm b3J3YXJkLWxpbmUpIChwb2ludCkpKSAoY29udGVudHMtYmVnaW4gKHNhdmUtZXhjdXJzaW9uIChz a2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIiBlbmQpIChhbmQgKC89IChwb2ludCkgZW5kKSAobGlu ZS1iZWdpbm5pbmctcG9zaXRpb24pKSkpIChjb250ZW50cy1lbmQgKGFuZCBjb250ZW50cy1iZWdp biAocHJvZ24gKGdvdG8tY2hhciBlbmQpIChza2lwLWNoYXJzLWJhY2t3YXJkICIgDQlcbiIpIChm b3J3YXJkLWxpbmUpIChwb2ludCkpKSkpIChpZiBjb21tZW50ZWRwIChwcm9nbiAobGV0ICgoY2Fz ZS1mb2xkLXNlYXJjaCBuaWwpKSAoc2V0cSByYXctdmFsdWUgKHJlcGxhY2UtcmVnZXhwLWluLXN0 cmluZyAoY29uY2F0IC4uLiAiXFwoPzogXFx8JFxcKSIpICIiIHJhdy12YWx1ZSkpKSkpIChpZiBh cmNoaXZlZHAgKHByb2duIChzZXRxIHRhZ3MgKGRlbGV0ZSBvcmctYXJjaGl2ZS10YWcgdGFncykp KSkgKGxldCAoKGhlYWRsaW5lIChsaXN0IChxdW90ZSBoZWFkbGluZSkgKG5jb25jIChsaXN0IDpy YXctdmFsdWUgcmF3LXZhbHVlIDpiZWdpbiBiZWdpbiA6ZW5kIGVuZCA6cHJlLWJsYW5rIC4uLiA6 Y29udGVudHMtYmVnaW4gY29udGVudHMtYmVnaW4gOmNvbnRlbnRzLWVuZCBjb250ZW50cy1lbmQg OmxldmVsIGxldmVsIDpwcmlvcml0eSAuLi4gOnRhZ3MgdGFncyA6dG9kby1rZXl3b3JkIHRvZG8g OnRvZG8tdHlwZSB0b2RvLXR5cGUgOnBvc3QtYmxhbmsgLi4uIDpmb290bm90ZS1zZWN0aW9uLXAg Zm9vdG5vdGUtc2VjdGlvbi1wIDphcmNoaXZlZHAgYXJjaGl2ZWRwIDpjb21tZW50ZWRwIGNvbW1l bnRlZHApIHRpbWUtcHJvcHMgc3RhbmRhcmQtcHJvcHMpKSkpIChsZXQgKChhbHQtdGl0bGUgKG9y Zy1lbGVtZW50LXByb3BlcnR5IDpBTFRfVElUTEUgaGVhZGxpbmUpKSkgKGlmIGFsdC10aXRsZSAo cHJvZ24gKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBoZWFkbGluZSA6YWx0LXRpdGxlIChpZiBy YXctc2Vjb25kYXJ5LXAgYWx0LXRpdGxlIC4uLikpKSkpIChvcmctZWxlbWVudC1wdXQtcHJvcGVy dHkgaGVhZGxpbmUgOnRpdGxlIChpZiByYXctc2Vjb25kYXJ5LXAgcmF3LXZhbHVlIChvcmctZWxl bWVudC1wYXJzZS1zZWNvbmRhcnktc3RyaW5nIHJhdy12YWx1ZSAob3JnLWVsZW1lbnQtcmVzdHJp Y3Rpb24gKHF1b3RlIGhlYWRsaW5lKSkgaGVhZGxpbmUpKSkpKSkKICBvcmctZWxlbWVudC1oZWFk bGluZS1wYXJzZXIoMjU3NzA2IHQpCiAgKGNvbmQgKChlcSBzcGVjaWFsIChxdW90ZSBpdGVtKSkg KG9yZy1lbGVtZW50LWl0ZW0tcGFyc2VyIGxpbWl0IHN0cnVjdHVyZSByYXctc2Vjb25kYXJ5LXAp KSAoKGVxIHNwZWNpYWwgKHF1b3RlIHRhYmxlLXJvdykpIChvcmctZWxlbWVudC10YWJsZS1yb3ct cGFyc2VyIGxpbWl0KSkgKChlcSBzcGVjaWFsIChxdW90ZSBub2RlLXByb3BlcnR5KSkgKG9yZy1l bGVtZW50LW5vZGUtcHJvcGVydHktcGFyc2VyIGxpbWl0KSkgKChsZXQqICgob3JnLWNhbGxlZC13 aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRl ZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChv cmctb3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAo b3JnLWF0LWhlYWRpbmctcCkpIChvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIgbGltaXQgcmF3 LXNlY29uZGFyeS1wKSkgKChlcSBzcGVjaWFsIChxdW90ZSBzZWN0aW9uKSkgKG9yZy1lbGVtZW50 LXNlY3Rpb24tcGFyc2VyIGxpbWl0KSkgKChlcSBzcGVjaWFsIChxdW90ZSBmaXJzdC1zZWN0aW9u KSkgKG9yZy1lbGVtZW50LXNlY3Rpb24tcGFyc2VyIChvciAoc2F2ZS1leGN1cnNpb24gKGxldCog KChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAu Li4pIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdl eHAtYm9sIC4uLikpIChvdXRsaW5lLW5leHQtaGVhZGluZykpKSBsaW1pdCkpKSAoKG5vdCAoYm9s cCkpIChvcmctZWxlbWVudC1wYXJhZ3JhcGgtcGFyc2VyIGxpbWl0IChsaXN0IChwb2ludCkpKSkg KChsb29raW5nLWF0IG9yZy1wbGFubmluZy1vci1jbG9jay1saW5lLXJlKSAoaWYgKGVxdWFsICht YXRjaC1zdHJpbmcgMSkgb3JnLWNsb2NrLXN0cmluZykgKG9yZy1lbGVtZW50LWNsb2NrLXBhcnNl ciBsaW1pdCkgKG9yZy1lbGVtZW50LXBsYW5uaW5nLXBhcnNlciBsaW1pdCkpKSAoKG9yZy1hdC1o ZWFkaW5nLXApIChvcmctZWxlbWVudC1pbmxpbmV0YXNrLXBhcnNlciBsaW1pdCByYXctc2Vjb25k YXJ5LXApKSAodCAobGV0ICgoYWZmaWxpYXRlZCAob3JnLWVsZW1lbnQtLWNvbGxlY3QtYWZmaWxp YXRlZC1rZXl3b3JkcyBsaW1pdCkpKSAoY29uZCAoKGFuZCAoY2RyIGFmZmlsaWF0ZWQpICg+PSAo cG9pbnQpIGxpbWl0KSkgKGdvdG8tY2hhciAoY2FyIGFmZmlsaWF0ZWQpKSAob3JnLWVsZW1lbnQt a2V5d29yZC1wYXJzZXIgbGltaXQgbmlsKSkgKChsb29raW5nLWF0ICJbICAgICBdKlxcXFxiZWdp bntbQS1aYS16MC05Kl0rfVxcKFxcWy4qP1xcXVxcfHsuKj99XFwpKlsgICAgIF0qJCIpIChvcmct ZWxlbWVudC1sYXRleC1lbnZpcm9ubWVudC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9v a2luZy1hdCBvcmctZHJhd2VyLXJlZ2V4cCkgKGlmIChlcXVhbCAobWF0Y2gtc3RyaW5nIDEpICJQ Uk9QRVJUSUVTIikgKG9yZy1lbGVtZW50LXByb3BlcnR5LWRyYXdlci1wYXJzZXIgbGltaXQgYWZm aWxpYXRlZCkgKG9yZy1lbGVtZW50LWRyYXdlci1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpKSAo KGxvb2tpbmctYXQgIlsgICBdKjpcXCggXFx8JFxcKSIpIChvcmctZWxlbWVudC1maXhlZC13aWR0 aC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiWyAgICAgXSojIikgKGdv dG8tY2hhciAobWF0Y2gtZW5kIDApKSAoY29uZCAoKGxvb2tpbmctYXQgIlxcKD86IFxcfCRcXCki KSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1jb21tZW50LXBhcnNlciBsaW1pdCBh ZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJcXCtCRUdJTl9cXChcXFMtK1xcKSIpIChiZWdpbm5p bmctb2YtbGluZSkgKGxldCAuLi4gLi4uKSkgKChsb29raW5nLWF0ICJcXCtDQUxMOiIpIChiZWdp bm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWJhYmVsLWNhbGwtcGFyc2VyIGxpbWl0IGFmZmls aWF0ZWQpKSAoKGxvb2tpbmctYXQgIlxcK0JFR0lOOj8gIikgKGJlZ2lubmluZy1vZi1saW5lKSAo b3JnLWVsZW1lbnQtZHluYW1pYy1ibG9jay1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9v a2luZy1hdCAiXFwrXFxTLSs6IikgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQta2V5 d29yZC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICh0IChiZWdpbm5pbmctb2YtbGluZSkgKG9y Zy1lbGVtZW50LXBhcmFncmFwaC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpKSkgKChsb29raW5n LWF0IG9yZy1mb290bm90ZS1kZWZpbml0aW9uLXJlKSAob3JnLWVsZW1lbnQtZm9vdG5vdGUtZGVm aW5pdGlvbi1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiWyAgIF0qLVxc ezUsXFx9WyAgICBdKiQiKSAob3JnLWVsZW1lbnQtaG9yaXpvbnRhbC1ydWxlLXBhcnNlciBsaW1p dCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICIlJSgiKSAob3JnLWVsZW1lbnQtZGlhcnktc2V4 cC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgob3JnLWF0LXRhYmxlLXAgdCkgKG9yZy1lbGVt ZW50LXRhYmxlLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0IChvcmctaXRl bS1yZSkpIChvcmctZWxlbWVudC1wbGFpbi1saXN0LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkIChv ciBzdHJ1Y3R1cmUgKG9yZy1lbGVtZW50LS1saXN0LXN0cnVjdCBsaW1pdCkpKSkgKHQgKG9yZy1l bGVtZW50LXBhcmFncmFwaC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpKSkpKQogIChsZXQgKChj YXNlLWZvbGQtc2VhcmNoIHQpIChyYXctc2Vjb25kYXJ5LXAgKGFuZCBncmFudWxhcml0eSAobm90 IChlcSBncmFudWxhcml0eSAocXVvdGUgb2JqZWN0KSkpKSkpIChjb25kICgoZXEgc3BlY2lhbCAo cXVvdGUgaXRlbSkpIChvcmctZWxlbWVudC1pdGVtLXBhcnNlciBsaW1pdCBzdHJ1Y3R1cmUgcmF3 LXNlY29uZGFyeS1wKSkgKChlcSBzcGVjaWFsIChxdW90ZSB0YWJsZS1yb3cpKSAob3JnLWVsZW1l bnQtdGFibGUtcm93LXBhcnNlciBsaW1pdCkpICgoZXEgc3BlY2lhbCAocXVvdGUgbm9kZS1wcm9w ZXJ0eSkpIChvcmctZWxlbWVudC1ub2RlLXByb3BlcnR5LXBhcnNlciBsaW1pdCkpICgobGV0KiAo KG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChv cmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxp bmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGlu ZS1yZWdleHApKSkgKG9yZy1hdC1oZWFkaW5nLXApKSAob3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFy c2VyIGxpbWl0IHJhdy1zZWNvbmRhcnktcCkpICgoZXEgc3BlY2lhbCAocXVvdGUgc2VjdGlvbikp IChvcmctZWxlbWVudC1zZWN0aW9uLXBhcnNlciBsaW1pdCkpICgoZXEgc3BlY2lhbCAocXVvdGUg Zmlyc3Qtc2VjdGlvbikpIChvcmctZWxlbWVudC1zZWN0aW9uLXBhcnNlciAob3IgKHNhdmUtZXhj dXJzaW9uIChsZXQqICguLi4gLi4uIC4uLiAuLi4pIChvdXRsaW5lLW5leHQtaGVhZGluZykpKSBs aW1pdCkpKSAoKG5vdCAoYm9scCkpIChvcmctZWxlbWVudC1wYXJhZ3JhcGgtcGFyc2VyIGxpbWl0 IChsaXN0IChwb2ludCkpKSkgKChsb29raW5nLWF0IG9yZy1wbGFubmluZy1vci1jbG9jay1saW5l LXJlKSAoaWYgKGVxdWFsIChtYXRjaC1zdHJpbmcgMSkgb3JnLWNsb2NrLXN0cmluZykgKG9yZy1l bGVtZW50LWNsb2NrLXBhcnNlciBsaW1pdCkgKG9yZy1lbGVtZW50LXBsYW5uaW5nLXBhcnNlciBs aW1pdCkpKSAoKG9yZy1hdC1oZWFkaW5nLXApIChvcmctZWxlbWVudC1pbmxpbmV0YXNrLXBhcnNl ciBsaW1pdCByYXctc2Vjb25kYXJ5LXApKSAodCAobGV0ICgoYWZmaWxpYXRlZCAob3JnLWVsZW1l bnQtLWNvbGxlY3QtYWZmaWxpYXRlZC1rZXl3b3JkcyBsaW1pdCkpKSAoY29uZCAoKGFuZCAoY2Ry IGFmZmlsaWF0ZWQpICg+PSAuLi4gbGltaXQpKSAoZ290by1jaGFyIChjYXIgYWZmaWxpYXRlZCkp IChvcmctZWxlbWVudC1rZXl3b3JkLXBhcnNlciBsaW1pdCBuaWwpKSAoKGxvb2tpbmctYXQgIlsg ICAgICAgIF0qXFxcXGJlZ2lue1tBLVphLXowLTkqXSt9XFwoXFxbLio/XFxdXFx8ey4qP31cXCkq WyAgICAgXSokIikgKG9yZy1lbGVtZW50LWxhdGV4LWVudmlyb25tZW50LXBhcnNlciBsaW1pdCBh ZmZpbGlhdGVkKSkgKChsb29raW5nLWF0IG9yZy1kcmF3ZXItcmVnZXhwKSAoaWYgKGVxdWFsIC4u LiAiUFJPUEVSVElFUyIpIChvcmctZWxlbWVudC1wcm9wZXJ0eS1kcmF3ZXItcGFyc2VyIGxpbWl0 IGFmZmlsaWF0ZWQpIChvcmctZWxlbWVudC1kcmF3ZXItcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQp KSkgKChsb29raW5nLWF0ICJbICAgICAgICBdKjpcXCggXFx8JFxcKSIpIChvcmctZWxlbWVudC1m aXhlZC13aWR0aC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiWyAgICAg XSojIikgKGdvdG8tY2hhciAobWF0Y2gtZW5kIDApKSAoY29uZCAoLi4uIC4uLiAuLi4pICguLi4g Li4uIC4uLikgKC4uLiAuLi4gLi4uKSAoLi4uIC4uLiAuLi4pICguLi4gLi4uIC4uLikgKHQgLi4u IC4uLikpKSAoKGxvb2tpbmctYXQgb3JnLWZvb3Rub3RlLWRlZmluaXRpb24tcmUpIChvcmctZWxl bWVudC1mb290bm90ZS1kZWZpbml0aW9uLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29r aW5nLWF0ICJbICAgXSotXFx7NSxcXH1bICAgIF0qJCIpIChvcmctZWxlbWVudC1ob3Jpem9udGFs LXJ1bGUtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIiUlKCIpIChvcmct ZWxlbWVudC1kaWFyeS1zZXhwLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChvcmctYXQtdGFi bGUtcCB0KSAob3JnLWVsZW1lbnQtdGFibGUtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxv b2tpbmctYXQgKG9yZy1pdGVtLXJlKSkgKG9yZy1lbGVtZW50LXBsYWluLWxpc3QtcGFyc2VyIGxp bWl0IGFmZmlsaWF0ZWQgKG9yIHN0cnVjdHVyZSAuLi4pKSkgKHQgKG9yZy1lbGVtZW50LXBhcmFn cmFwaC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpKSkpKSkKICAoc2F2ZS1leGN1cnNpb24gKGxl dCAoKGNhc2UtZm9sZC1zZWFyY2ggdCkgKHJhdy1zZWNvbmRhcnktcCAoYW5kIGdyYW51bGFyaXR5 IChub3QgKGVxIGdyYW51bGFyaXR5IChxdW90ZSBvYmplY3QpKSkpKSkgKGNvbmQgKChlcSBzcGVj aWFsIChxdW90ZSBpdGVtKSkgKG9yZy1lbGVtZW50LWl0ZW0tcGFyc2VyIGxpbWl0IHN0cnVjdHVy ZSByYXctc2Vjb25kYXJ5LXApKSAoKGVxIHNwZWNpYWwgKHF1b3RlIHRhYmxlLXJvdykpIChvcmct ZWxlbWVudC10YWJsZS1yb3ctcGFyc2VyIGxpbWl0KSkgKChlcSBzcGVjaWFsIChxdW90ZSBub2Rl LXByb3BlcnR5KSkgKG9yZy1lbGVtZW50LW5vZGUtcHJvcGVydHktcGFyc2VyIGxpbWl0KSkgKChs ZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdl eHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmct b3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1v dXRsaW5lLXJlZ2V4cCkpKSAob3JnLWF0LWhlYWRpbmctcCkpIChvcmctZWxlbWVudC1oZWFkbGlu ZS1wYXJzZXIgbGltaXQgcmF3LXNlY29uZGFyeS1wKSkgKChlcSBzcGVjaWFsIChxdW90ZSBzZWN0 aW9uKSkgKG9yZy1lbGVtZW50LXNlY3Rpb24tcGFyc2VyIGxpbWl0KSkgKChlcSBzcGVjaWFsIChx dW90ZSBmaXJzdC1zZWN0aW9uKSkgKG9yZy1lbGVtZW50LXNlY3Rpb24tcGFyc2VyIChvciAoc2F2 ZS1leGN1cnNpb24gKGxldCogLi4uIC4uLikpIGxpbWl0KSkpICgobm90IChib2xwKSkgKG9yZy1l bGVtZW50LXBhcmFncmFwaC1wYXJzZXIgbGltaXQgKGxpc3QgKHBvaW50KSkpKSAoKGxvb2tpbmct YXQgb3JnLXBsYW5uaW5nLW9yLWNsb2NrLWxpbmUtcmUpIChpZiAoZXF1YWwgKG1hdGNoLXN0cmlu ZyAxKSBvcmctY2xvY2stc3RyaW5nKSAob3JnLWVsZW1lbnQtY2xvY2stcGFyc2VyIGxpbWl0KSAo b3JnLWVsZW1lbnQtcGxhbm5pbmctcGFyc2VyIGxpbWl0KSkpICgob3JnLWF0LWhlYWRpbmctcCkg KG9yZy1lbGVtZW50LWlubGluZXRhc2stcGFyc2VyIGxpbWl0IHJhdy1zZWNvbmRhcnktcCkpICh0 IChsZXQgKChhZmZpbGlhdGVkIChvcmctZWxlbWVudC0tY29sbGVjdC1hZmZpbGlhdGVkLWtleXdv cmRzIGxpbWl0KSkpIChjb25kICgoYW5kIC4uLiAuLi4pIChnb3RvLWNoYXIgLi4uKSAob3JnLWVs ZW1lbnQta2V5d29yZC1wYXJzZXIgbGltaXQgbmlsKSkgKChsb29raW5nLWF0ICJbICAgICAgXSpc XFxcYmVnaW57W0EtWmEtejAtOSpdK31cXChcXFsuKj9cXF1cXHx7Lio/fVxcKSpbICAgICBdKiQi KSAob3JnLWVsZW1lbnQtbGF0ZXgtZW52aXJvbm1lbnQtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQp KSAoKGxvb2tpbmctYXQgb3JnLWRyYXdlci1yZWdleHApIChpZiAuLi4gLi4uIC4uLikpICgobG9v a2luZy1hdCAiWyAgICAgICAgXSo6XFwoIFxcfCRcXCkiKSAob3JnLWVsZW1lbnQtZml4ZWQtd2lk dGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlsgICAgIF0qIyIpIChn b3RvLWNoYXIgLi4uKSAoY29uZCAuLi4gLi4uIC4uLiAuLi4gLi4uIC4uLikpICgobG9va2luZy1h dCBvcmctZm9vdG5vdGUtZGVmaW5pdGlvbi1yZSkgKG9yZy1lbGVtZW50LWZvb3Rub3RlLWRlZmlu aXRpb24tcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlsgICAgICAgXSot XFx7NSxcXH1bICAgIF0qJCIpIChvcmctZWxlbWVudC1ob3Jpem9udGFsLXJ1bGUtcGFyc2VyIGxp bWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIiUlKCIpIChvcmctZWxlbWVudC1kaWFyeS1z ZXhwLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChvcmctYXQtdGFibGUtcCB0KSAob3JnLWVs ZW1lbnQtdGFibGUtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgLi4uKSAo b3JnLWVsZW1lbnQtcGxhaW4tbGlzdC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCAuLi4pKSAodCAo b3JnLWVsZW1lbnQtcGFyYWdyYXBoLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkpKSkpKSkKICBv cmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50KDI1NzcwNiBlbGVtZW50IG5pbCBuaWwpCiAgKHNl dHEgZWxlbWVudCAob3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVudCBlbmQgKHF1b3RlIGVsZW1l bnQpIHNwZWNpYWwtZmxhZyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnN0cnVjdHVyZSBwYXJlbnQp KSkKICAoaWYgZWxlbWVudCBuaWwgKHNldHEgZWxlbWVudCAob3JnLWVsZW1lbnQtLWN1cnJlbnQt ZWxlbWVudCBlbmQgKHF1b3RlIGVsZW1lbnQpIHNwZWNpYWwtZmxhZyAob3JnLWVsZW1lbnQtcHJv cGVydHkgOnN0cnVjdHVyZSBwYXJlbnQpKSkgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBlbGVt ZW50IDpwYXJlbnQgcGFyZW50KSAob3JnLWVsZW1lbnQtLWNhY2hlLXB1dCBlbGVtZW50KSkKICAo d2hpbGUgdCAoaWYgc3luY3AgKHByb2duIChjb25kICgoPSAocG9pbnQpIHBvcykgKHRocm93IChx dW90ZSBleGl0KSBwYXJlbnQpKSAoKG9yZy1lbGVtZW50LS1jYWNoZS1pbnRlcnJ1cHQtcCB0aW1l LWxpbWl0KSAodGhyb3cgKHF1b3RlIGludGVycnVwdCkgbmlsKSkpKSkgKGlmIGVsZW1lbnQgbmls IChzZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50LS1jdXJyZW50LWVsZW1lbnQgZW5kIChxdW90ZSBl bGVtZW50KSBzcGVjaWFsLWZsYWcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpzdHJ1Y3R1cmUgcGFy ZW50KSkpIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgZWxlbWVudCA6cGFyZW50IHBhcmVudCkg KG9yZy1lbGVtZW50LS1jYWNoZS1wdXQgZWxlbWVudCkpIChsZXQgKChlbGVtLWVuZCAob3JnLWVs ZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSkgKHR5cGUgKG9yZy1lbGVtZW50LXR5cGUgZWxl bWVudCkpKSAoY29uZCAoKGFuZCAoPD0gZWxlbS1lbmQgcG9zKSAoLz0gKHBvaW50LW1heCkgZWxl bS1lbmQpKSAoZ290by1jaGFyIGVsZW0tZW5kKSkgKChub3QgKG1lbXEgdHlwZSBvcmctZWxlbWVu dC1ncmVhdGVyLWVsZW1lbnRzKSkgKHRocm93IChxdW90ZSBleGl0KSBlbGVtZW50KSkgKChsZXQg KChjYmVnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6Y29udGVudHMtYmVnaW4gZWxlbWVudCkpIChj ZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6Y29udGVudHMtZW5kIGVsZW1lbnQpKSkgKGlmIChv ciBzeW5jcCAoYW5kIGNiZWcgY2VuZCAuLi4gLi4uKSkgKHByb2duIChnb3RvLWNoYXIgLi4uKSAo c2V0cSBuZXh0IG5pbCBzcGVjaWFsLWZsYWcgLi4uIHBhcmVudCBlbGVtZW50IGVuZCBjZW5kKSkp KSkgKHQgKHRocm93IChxdW90ZSBleGl0KSBlbGVtZW50KSkpKSAoc2V0cSBlbGVtZW50IG5pbCkp CiAgKGxldCAoKGVuZCAob3IgKG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkgKHNh dmUtZXhjdXJzaW9uIChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChv cmctb3V0bGluZS1yZWdleHAgLi4uKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhw KSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAuLi4pKSAob3V0bGluZS1uZXh0LWhlYWRpbmcpKSAo cG9pbnQpKSkpIChwYXJlbnQgZWxlbWVudCkgc3BlY2lhbC1mbGFnKSAod2hpbGUgdCAoaWYgc3lu Y3AgKHByb2duIChjb25kICgoPSAocG9pbnQpIHBvcykgKHRocm93IChxdW90ZSBleGl0KSBwYXJl bnQpKSAoKG9yZy1lbGVtZW50LS1jYWNoZS1pbnRlcnJ1cHQtcCB0aW1lLWxpbWl0KSAodGhyb3cg KHF1b3RlIGludGVycnVwdCkgbmlsKSkpKSkgKGlmIGVsZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQg KG9yZy1lbGVtZW50LS1jdXJyZW50LWVsZW1lbnQgZW5kIChxdW90ZSBlbGVtZW50KSBzcGVjaWFs LWZsYWcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpzdHJ1Y3R1cmUgcGFyZW50KSkpIChvcmctZWxl bWVudC1wdXQtcHJvcGVydHkgZWxlbWVudCA6cGFyZW50IHBhcmVudCkgKG9yZy1lbGVtZW50LS1j YWNoZS1wdXQgZWxlbWVudCkpIChsZXQgKChlbGVtLWVuZCAob3JnLWVsZW1lbnQtcHJvcGVydHkg OmVuZCBlbGVtZW50KSkgKHR5cGUgKG9yZy1lbGVtZW50LXR5cGUgZWxlbWVudCkpKSAoY29uZCAo KGFuZCAoPD0gZWxlbS1lbmQgcG9zKSAoLz0gKHBvaW50LW1heCkgZWxlbS1lbmQpKSAoZ290by1j aGFyIGVsZW0tZW5kKSkgKChub3QgKG1lbXEgdHlwZSBvcmctZWxlbWVudC1ncmVhdGVyLWVsZW1l bnRzKSkgKHRocm93IChxdW90ZSBleGl0KSBlbGVtZW50KSkgKChsZXQgKChjYmVnIC4uLikgKGNl bmQgLi4uKSkgKGlmIChvciBzeW5jcCAuLi4pIChwcm9nbiAuLi4gLi4uKSkpKSAodCAodGhyb3cg KHF1b3RlIGV4aXQpIGVsZW1lbnQpKSkpIChzZXRxIGVsZW1lbnQgbmlsKSkpCiAgKGxldCogKChj YWNoZWQgKGFuZCAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAob3JnLWVsZW1lbnQtLWNh Y2hlLWZpbmQgcG9zIG5pbCkpKSAoYmVnaW4gKG9yZy1lbGVtZW50LXByb3BlcnR5IDpiZWdpbiBj YWNoZWQpKSBlbGVtZW50IG5leHQpIChjb25kICgobm90IGNhY2hlZCkgKGlmIChsZXQqICgob3Jn LWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1n ZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1y ZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJl Z2V4cCkpKSAob3V0bGluZS1wcmV2aW91cy1oZWFkaW5nKSkgKHByb2duIChmb3J3YXJkLWxpbmUp KSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAoKD0g cG9zIGJlZ2luKSAodGhyb3cgKHF1b3RlIGV4aXQpIChpZiBzeW5jcCAob3JnLWVsZW1lbnQtcHJv cGVydHkgOnBhcmVudCBjYWNoZWQpIGNhY2hlZCkpKSAoKHJlLXNlYXJjaC1iYWNrd2FyZCAobGV0 KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhw IChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91 dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0 bGluZS1yZWdleHApKSkgb3JnLW91dGxpbmUtcmVnZXhwLWJvbCkgYmVnaW4gdCkgKGZvcndhcmQt bGluZSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAo dCAobGV0ICgodXAgY2FjaGVkKSAocG9zIChpZiAoPSAuLi4gcG9zKSAoMS0gcG9zKSBwb3MpKSkg KGdvdG8tY2hhciAob3IgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpjb250ZW50cy1iZWdpbiBjYWNo ZWQpIGJlZ2luKSkgKHdoaWxlIChsZXQgKChlbmQgLi4uKSkgKGFuZCAoPD0gZW5kIHBvcykgKGdv dG8tY2hhciBlbmQpIChzZXRxIHVwIC4uLikpKSkgKGNvbmQgKChub3QgdXApKSAoKGVvYnApIChz ZXRxIGVsZW1lbnQgdXApKSAodCAoc2V0cSBlbGVtZW50IHVwIG5leHQgKHBvaW50KSkpKSkpKSAo bGV0ICgoZW5kIChvciAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSAoc2F2ZS1l eGN1cnNpb24gKGxldCogKC4uLiAuLi4gLi4uIC4uLikgKG91dGxpbmUtbmV4dC1oZWFkaW5nKSkg KHBvaW50KSkpKSAocGFyZW50IGVsZW1lbnQpIHNwZWNpYWwtZmxhZykgKHdoaWxlIHQgKGlmIHN5 bmNwIChwcm9nbiAoY29uZCAoKD0gLi4uIHBvcykgKHRocm93IC4uLiBwYXJlbnQpKSAoKG9yZy1l bGVtZW50LS1jYWNoZS1pbnRlcnJ1cHQtcCB0aW1lLWxpbWl0KSAodGhyb3cgLi4uIG5pbCkpKSkp IChpZiBlbGVtZW50IG5pbCAoc2V0cSBlbGVtZW50IChvcmctZWxlbWVudC0tY3VycmVudC1lbGVt ZW50IGVuZCAocXVvdGUgZWxlbWVudCkgc3BlY2lhbC1mbGFnIChvcmctZWxlbWVudC1wcm9wZXJ0 eSA6c3RydWN0dXJlIHBhcmVudCkpKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQg OnBhcmVudCBwYXJlbnQpIChvcmctZWxlbWVudC0tY2FjaGUtcHV0IGVsZW1lbnQpKSAobGV0ICgo ZWxlbS1lbmQgKG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkpICh0eXBlIChvcmct ZWxlbWVudC10eXBlIGVsZW1lbnQpKSkgKGNvbmQgKChhbmQgKDw9IGVsZW0tZW5kIHBvcykgKC89 IC4uLiBlbGVtLWVuZCkpIChnb3RvLWNoYXIgZWxlbS1lbmQpKSAoKG5vdCAobWVtcSB0eXBlIG9y Zy1lbGVtZW50LWdyZWF0ZXItZWxlbWVudHMpKSAodGhyb3cgKHF1b3RlIGV4aXQpIGVsZW1lbnQp KSAoKGxldCAoLi4uIC4uLikgKGlmIC4uLiAuLi4pKSkgKHQgKHRocm93IChxdW90ZSBleGl0KSBl bGVtZW50KSkpKSAoc2V0cSBlbGVtZW50IG5pbCkpKSkKICAoc2F2ZS1yZXN0cmljdGlvbiAod2lk ZW4pIChnb3RvLWNoYXIgcG9zKSAobGV0KiAoKGNhY2hlZCAoYW5kIChvcmctZWxlbWVudC0tY2Fj aGUtYWN0aXZlLXApIChvcmctZWxlbWVudC0tY2FjaGUtZmluZCBwb3MgbmlsKSkpIChiZWdpbiAo b3JnLWVsZW1lbnQtcHJvcGVydHkgOmJlZ2luIGNhY2hlZCkpIGVsZW1lbnQgbmV4dCkgKGNvbmQg KChub3QgY2FjaGVkKSAoaWYgKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMg dCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAuLi4pIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1y ZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIC4uLikpIChvdXRsaW5lLXByZXZpb3VzLWhl YWRpbmcpKSAocHJvZ24gKGZvcndhcmQtbGluZSkpKSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlc biIpIChiZWdpbm5pbmctb2YtbGluZSkpICgoPSBwb3MgYmVnaW4pICh0aHJvdyAocXVvdGUgZXhp dCkgKGlmIHN5bmNwIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGFyZW50IGNhY2hlZCkgY2FjaGVk KSkpICgocmUtc2VhcmNoLWJhY2t3YXJkIChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQt bGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgLi4uKSAob3V0bGluZS1yZWdleHAgb3JnLW91 dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAuLi4pKSBvcmctb3V0bGluZS1y ZWdleHAtYm9sKSBiZWdpbiB0KSAoZm9yd2FyZC1saW5lKSAoc2tpcC1jaGFycy1mb3J3YXJkICIg DQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkpICh0IChsZXQgKCh1cCBjYWNoZWQpIChwb3MgKGlm IC4uLiAuLi4gcG9zKSkpIChnb3RvLWNoYXIgKG9yIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6Y29u dGVudHMtYmVnaW4gY2FjaGVkKSBiZWdpbikpICh3aGlsZSAobGV0ICguLi4pIChhbmQgLi4uIC4u LiAuLi4pKSkgKGNvbmQgKChub3QgdXApKSAoKGVvYnApIChzZXRxIGVsZW1lbnQgdXApKSAodCAo c2V0cSBlbGVtZW50IHVwIG5leHQgLi4uKSkpKSkpIChsZXQgKChlbmQgKG9yIChvcmctZWxlbWVu dC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQpIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAuLi4gLi4uKSAo cG9pbnQpKSkpIChwYXJlbnQgZWxlbWVudCkgc3BlY2lhbC1mbGFnKSAod2hpbGUgdCAoaWYgc3lu Y3AgKHByb2duIChjb25kICguLi4gLi4uKSAoLi4uIC4uLikpKSkgKGlmIGVsZW1lbnQgbmlsIChz ZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50LS1jdXJyZW50LWVsZW1lbnQgZW5kIChxdW90ZSBlbGVt ZW50KSBzcGVjaWFsLWZsYWcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpzdHJ1Y3R1cmUgcGFyZW50 KSkpIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgZWxlbWVudCA6cGFyZW50IHBhcmVudCkgKG9y Zy1lbGVtZW50LS1jYWNoZS1wdXQgZWxlbWVudCkpIChsZXQgKChlbGVtLWVuZCAob3JnLWVsZW1l bnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSkgKHR5cGUgKG9yZy1lbGVtZW50LXR5cGUgZWxlbWVu dCkpKSAoY29uZCAoKGFuZCAuLi4gLi4uKSAoZ290by1jaGFyIGVsZW0tZW5kKSkgKChub3QgLi4u KSAodGhyb3cgLi4uIGVsZW1lbnQpKSAoKGxldCAuLi4gLi4uKSkgKHQgKHRocm93IC4uLiBlbGVt ZW50KSkpKSAoc2V0cSBlbGVtZW50IG5pbCkpKSkpCiAgKHNhdmUtZXhjdXJzaW9uIChzYXZlLXJl c3RyaWN0aW9uICh3aWRlbikgKGdvdG8tY2hhciBwb3MpIChsZXQqICgoY2FjaGVkIChhbmQgKG9y Zy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKG9yZy1lbGVtZW50LS1jYWNoZS1maW5kIHBvcyBu aWwpKSkgKGJlZ2luIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6YmVnaW4gY2FjaGVkKSkgZWxlbWVu dCBuZXh0KSAoY29uZCAoKG5vdCBjYWNoZWQpIChpZiAobGV0KiAoLi4uIC4uLiAuLi4gLi4uKSAo b3V0bGluZS1wcmV2aW91cy1oZWFkaW5nKSkgKHByb2duIChmb3J3YXJkLWxpbmUpKSkgKHNraXAt Y2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAoKD0gcG9zIGJlZ2lu KSAodGhyb3cgKHF1b3RlIGV4aXQpIChpZiBzeW5jcCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBh cmVudCBjYWNoZWQpIGNhY2hlZCkpKSAoKHJlLXNlYXJjaC1iYWNrd2FyZCAobGV0KiAoLi4uIC4u LiAuLi4gLi4uKSBvcmctb3V0bGluZS1yZWdleHAtYm9sKSBiZWdpbiB0KSAoZm9yd2FyZC1saW5l KSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkpICh0IChs ZXQgKCh1cCBjYWNoZWQpIChwb3MgLi4uKSkgKGdvdG8tY2hhciAob3IgLi4uIGJlZ2luKSkgKHdo aWxlIChsZXQgLi4uIC4uLikpIChjb25kICguLi4pICguLi4gLi4uKSAodCAuLi4pKSkpKSAobGV0 ICgoZW5kIChvciAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSAoc2F2ZS1leGN1 cnNpb24gLi4uIC4uLikpKSAocGFyZW50IGVsZW1lbnQpIHNwZWNpYWwtZmxhZykgKHdoaWxlIHQg KGlmIHN5bmNwIChwcm9nbiAoY29uZCAuLi4gLi4uKSkpIChpZiBlbGVtZW50IG5pbCAoc2V0cSBl bGVtZW50IChvcmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50IGVuZCAuLi4gc3BlY2lhbC1mbGFn IC4uLikpIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgZWxlbWVudCA6cGFyZW50IHBhcmVudCkg KG9yZy1lbGVtZW50LS1jYWNoZS1wdXQgZWxlbWVudCkpIChsZXQgKChlbGVtLWVuZCAuLi4pICh0 eXBlIC4uLikpIChjb25kICguLi4gLi4uKSAoLi4uIC4uLikgKC4uLikgKHQgLi4uKSkpIChzZXRx IGVsZW1lbnQgbmlsKSkpKSkpCiAgKGNhdGNoIChxdW90ZSBleGl0KSAoc2F2ZS1leGN1cnNpb24g KHNhdmUtcmVzdHJpY3Rpb24gKHdpZGVuKSAoZ290by1jaGFyIHBvcykgKGxldCogKChjYWNoZWQg KGFuZCAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAob3JnLWVsZW1lbnQtLWNhY2hlLWZp bmQgcG9zIG5pbCkpKSAoYmVnaW4gKG9yZy1lbGVtZW50LXByb3BlcnR5IDpiZWdpbiBjYWNoZWQp KSBlbGVtZW50IG5leHQpIChjb25kICgobm90IGNhY2hlZCkgKGlmIChsZXQqIC4uLiAuLi4pIChw cm9nbiAuLi4pKSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGlu ZSkpICgoPSBwb3MgYmVnaW4pICh0aHJvdyAocXVvdGUgZXhpdCkgKGlmIHN5bmNwIC4uLiBjYWNo ZWQpKSkgKChyZS1zZWFyY2gtYmFja3dhcmQgKGxldCogLi4uIG9yZy1vdXRsaW5lLXJlZ2V4cC1i b2wpIGJlZ2luIHQpIChmb3J3YXJkLWxpbmUpIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikg KGJlZ2lubmluZy1vZi1saW5lKSkgKHQgKGxldCAoLi4uIC4uLikgKGdvdG8tY2hhciAuLi4pICh3 aGlsZSAuLi4pIChjb25kIC4uLiAuLi4gLi4uKSkpKSAobGV0ICgoZW5kIChvciAuLi4gLi4uKSkg KHBhcmVudCBlbGVtZW50KSBzcGVjaWFsLWZsYWcpICh3aGlsZSB0IChpZiBzeW5jcCAocHJvZ24g Li4uKSkgKGlmIGVsZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQgLi4uKSAob3JnLWVsZW1lbnQtcHV0 LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQpIChvcmctZWxlbWVudC0tY2FjaGUtcHV0 IGVsZW1lbnQpKSAobGV0ICguLi4gLi4uKSAoY29uZCAuLi4gLi4uIC4uLiAuLi4pKSAoc2V0cSBl bGVtZW50IG5pbCkpKSkpKSkKICBvcmctZWxlbWVudC0tcGFyc2UtdG8oMjU3MjgwKQogIChjb25k ICgoYm9icCkgbmlsKSAoKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkg KG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91 dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wg KGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChvcmctYXQtaGVhZGluZy1wKSkgKGJl Z2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFyc2VyIChwb2ludC1tYXgp IHQpKSAodCAoaWYgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKHByb2duIChpZiAobm90 IG9yZy1lbGVtZW50LS1jYWNoZSkgKG9yZy1lbGVtZW50LWNhY2hlLXJlc2V0KSAob3JnLWVsZW1l bnQtLWNhY2hlLXN5bmMgKGN1cnJlbnQtYnVmZmVyKSBvcmlnaW4pKSkpIChvcmctZWxlbWVudC0t cGFyc2UtdG8gb3JpZ2luKSkpCiAgKGxldCAoKG9yaWdpbiAocG9pbnQpKSkgKGVuZC1vZi1saW5l KSAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIA0JXG4iKSAoY29uZCAoKGJvYnApIG5pbCkgKChsZXQq ICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAg KG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0 bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRs aW5lLXJlZ2V4cCkpKSAob3JnLWF0LWhlYWRpbmctcCkpIChiZWdpbm5pbmctb2YtbGluZSkgKG9y Zy1lbGVtZW50LWhlYWRsaW5lLXBhcnNlciAocG9pbnQtbWF4KSB0KSkgKHQgKGlmIChvcmctZWxl bWVudC0tY2FjaGUtYWN0aXZlLXApIChwcm9nbiAoaWYgKG5vdCBvcmctZWxlbWVudC0tY2FjaGUp IChvcmctZWxlbWVudC1jYWNoZS1yZXNldCkgKG9yZy1lbGVtZW50LS1jYWNoZS1zeW5jIChjdXJy ZW50LWJ1ZmZlcikgb3JpZ2luKSkpKSAob3JnLWVsZW1lbnQtLXBhcnNlLXRvIG9yaWdpbikpKSkK ICAoc2F2ZS1yZXN0cmljdGlvbiAod2lkZW4pIChsZXQgKChvcmlnaW4gKHBvaW50KSkpIChlbmQt b2YtbGluZSkgKHNraXAtY2hhcnMtYmFja3dhcmQgIiANCVxuIikgKGNvbmQgKChib2JwKSBuaWwp ICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUt cmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAg b3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBv cmctb3V0bGluZS1yZWdleHApKSkgKG9yZy1hdC1oZWFkaW5nLXApKSAoYmVnaW5uaW5nLW9mLWxp bmUpIChvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIgKHBvaW50LW1heCkgdCkpICh0IChpZiAo b3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAocHJvZ24gKGlmIChub3Qgb3JnLWVsZW1lbnQt LWNhY2hlKSAob3JnLWVsZW1lbnQtY2FjaGUtcmVzZXQpIChvcmctZWxlbWVudC0tY2FjaGUtc3lu YyAuLi4gb3JpZ2luKSkpKSAob3JnLWVsZW1lbnQtLXBhcnNlLXRvIG9yaWdpbikpKSkpCiAgKHNh dmUtZXhjdXJzaW9uIChzYXZlLXJlc3RyaWN0aW9uICh3aWRlbikgKGxldCAoKG9yaWdpbiAocG9p bnQpKSkgKGVuZC1vZi1saW5lKSAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIA0JXG4iKSAoY29uZCAo KGJvYnApIG5pbCkgKChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChv cmctb3V0bGluZS1yZWdleHAgLi4uKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhw KSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAuLi4pKSAob3JnLWF0LWhlYWRpbmctcCkpIChiZWdp bm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNlciAocG9pbnQtbWF4KSB0 KSkgKHQgKGlmIChvcmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChwcm9nbiAoaWYgLi4uIC4u LiAuLi4pKSkgKG9yZy1lbGVtZW50LS1wYXJzZS10byBvcmlnaW4pKSkpKSkKICBvcmctZWxlbWVu dC1hdC1wb2ludCgpCiAgKGxldCAoKGRyYXdlciAob3JnLWVsZW1lbnQtYXQtcG9pbnQpKSkgKGlm IChhbmQgKGVxIChvcmctZWxlbWVudC10eXBlIGRyYXdlcikgKHF1b3RlIHByb3BlcnR5LWRyYXdl cikpIChsZXQgKChwIGRyYXdlcikpICh3aGlsZSAoYW5kIChzZXRxIHAgKG9yZy1lbGVtZW50LXBy b3BlcnR5IDpwYXJlbnQgcCkpIChub3QgKGVxIC4uLiAuLi4pKSkpIChub3QgcCkpKSAocHJvZ24g KGxldCAoKGVuZCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmNvbnRlbnRzLWVuZCBkcmF3ZXIpKSkg KGlmIGVuZCAocHJvZ24gKGZvcndhcmQtbGluZSkgKHdoaWxlICg8IC4uLiBlbmQpIChpZiAuLi4g Li4uKSAoZm9yd2FyZC1saW5lKSkpKSkpKSkKICAod2hpbGUgKGFuZCAobnVsbCBwbGlzdCkgKHJl LXNlYXJjaC1mb3J3YXJkIG9yZy1wcm9wZXJ0eS1zdGFydC1yZSBlbmQgdCkpIChsZXQgKChkcmF3 ZXIgKG9yZy1lbGVtZW50LWF0LXBvaW50KSkpIChpZiAoYW5kIChlcSAob3JnLWVsZW1lbnQtdHlw ZSBkcmF3ZXIpIChxdW90ZSBwcm9wZXJ0eS1kcmF3ZXIpKSAobGV0ICgocCBkcmF3ZXIpKSAod2hp bGUgKGFuZCAoc2V0cSBwIC4uLikgKG5vdCAuLi4pKSkgKG5vdCBwKSkpIChwcm9nbiAobGV0ICgo ZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6Y29udGVudHMtZW5kIGRyYXdlcikpKSAoaWYgZW5k IChwcm9nbiAoZm9yd2FyZC1saW5lKSAod2hpbGUgLi4uIC4uLiAuLi4pKSkpKSkpKQogIChzYXZl LWV4Y3Vyc2lvbiAod2hpbGUgKGFuZCAobnVsbCBwbGlzdCkgKHJlLXNlYXJjaC1mb3J3YXJkIG9y Zy1wcm9wZXJ0eS1zdGFydC1yZSBlbmQgdCkpIChsZXQgKChkcmF3ZXIgKG9yZy1lbGVtZW50LWF0 LXBvaW50KSkpIChpZiAoYW5kIChlcSAob3JnLWVsZW1lbnQtdHlwZSBkcmF3ZXIpIChxdW90ZSBw cm9wZXJ0eS1kcmF3ZXIpKSAobGV0ICgocCBkcmF3ZXIpKSAod2hpbGUgKGFuZCAuLi4gLi4uKSkg KG5vdCBwKSkpIChwcm9nbiAobGV0ICgoZW5kIC4uLikpIChpZiBlbmQgKHByb2duIC4uLiAuLi4p KSkpKSkpIHBsaXN0KQogIChsZXQgKChlbmQgKHNhdmUtZXhjdXJzaW9uIChsZXQqICgob3JnLWNh bGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQt bGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdl eHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4 cCkpKSAob3V0bGluZS1uZXh0LWhlYWRpbmcpKSAocG9pbnQpKSkgcGxpc3QpIChzYXZlLWV4Y3Vy c2lvbiAod2hpbGUgKGFuZCAobnVsbCBwbGlzdCkgKHJlLXNlYXJjaC1mb3J3YXJkIG9yZy1wcm9w ZXJ0eS1zdGFydC1yZSBlbmQgdCkpIChsZXQgKChkcmF3ZXIgKG9yZy1lbGVtZW50LWF0LXBvaW50 KSkpIChpZiAoYW5kIChlcSAob3JnLWVsZW1lbnQtdHlwZSBkcmF3ZXIpIChxdW90ZSBwcm9wZXJ0 eS1kcmF3ZXIpKSAobGV0ICguLi4pICh3aGlsZSAuLi4pIChub3QgcCkpKSAocHJvZ24gKGxldCAo Li4uKSAoaWYgZW5kIC4uLikpKSkpKSBwbGlzdCkpCiAgKGxldCogKChjb21wb25lbnRzIChvcmct aGVhZGluZy1jb21wb25lbnRzKSkgKGxldmVsIChudGggMSBjb21wb25lbnRzKSkgKHRvZG8gKG50 aCAyIGNvbXBvbmVudHMpKSAodG9kby10eXBlIChhbmQgdG9kbyAoaWYgKG1lbWJlciB0b2RvIG9y Zy1kb25lLWtleXdvcmRzKSAocXVvdGUgZG9uZSkgKHF1b3RlIHRvZG8pKSkpICh0YWdzIChsZXQg KChyYXctdGFncyAobnRoIDUgY29tcG9uZW50cykpKSAoYW5kIHJhdy10YWdzIChvcmctc3BsaXQt c3RyaW5nIHJhdy10YWdzICI6IikpKSkgKHJhdy12YWx1ZSAob3IgKG50aCA0IGNvbXBvbmVudHMp ICIiKSkgKGNvbW1lbnRlZHAgKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggbmlsKSkgKHN0cmluZy1t YXRjaCAoZm9ybWF0ICJeJXNcXCggXFx8JFxcKSIgb3JnLWNvbW1lbnQtc3RyaW5nKSByYXctdmFs dWUpKSkgKGFyY2hpdmVkcCAobWVtYmVyIG9yZy1hcmNoaXZlLXRhZyB0YWdzKSkgKGZvb3Rub3Rl LXNlY3Rpb24tcCAoYW5kIG9yZy1mb290bm90ZS1zZWN0aW9uIChzdHJpbmc9IG9yZy1mb290bm90 ZS1zZWN0aW9uIHJhdy12YWx1ZSkpKSAoc3RhbmRhcmQtcHJvcHMgKGxldCAoKGVuZCAoc2F2ZS1l eGN1cnNpb24gKGxldCogLi4uIC4uLikgKHBvaW50KSkpIHBsaXN0KSAoc2F2ZS1leGN1cnNpb24g KHdoaWxlIChhbmQgKG51bGwgcGxpc3QpIChyZS1zZWFyY2gtZm9yd2FyZCBvcmctcHJvcGVydHkt c3RhcnQtcmUgZW5kIHQpKSAobGV0ICguLi4pIChpZiAuLi4gLi4uKSkpIHBsaXN0KSkpICh0aW1l LXByb3BzIChzYXZlLWV4Y3Vyc2lvbiAoZm9yd2FyZC1saW5lKSAoaWYgKGxvb2tpbmctYXQgb3Jn LXBsYW5uaW5nLW9yLWNsb2NrLWxpbmUtcmUpIChwcm9nbiAobGV0ICguLi4gcGxpc3QpICh3aGls ZSAuLi4gLi4uIC4uLiAuLi4pIHBsaXN0KSkpKSkgKGJlZ2luIChwb2ludCkpIChlbmQgKG1pbiAo c2F2ZS1leGN1cnNpb24gKG9yZy1lbmQtb2Ytc3VidHJlZSB0IHQpKSBsaW1pdCkpIChwb3MtYWZ0 ZXItaGVhZCAocHJvZ24gKGZvcndhcmQtbGluZSkgKHBvaW50KSkpIChjb250ZW50cy1iZWdpbiAo c2F2ZS1leGN1cnNpb24gKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iIGVuZCkgKGFuZCAoLz0g KHBvaW50KSBlbmQpIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpKSkgKGNvbnRlbnRzLWVuZCAo YW5kIGNvbnRlbnRzLWJlZ2luIChwcm9nbiAoZ290by1jaGFyIGVuZCkgKHNraXAtY2hhcnMtYmFj a3dhcmQgIiANCVxuIikgKGZvcndhcmQtbGluZSkgKHBvaW50KSkpKSkgKGlmIGNvbW1lbnRlZHAg KHByb2duIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIG5pbCkpIChzZXRxIHJhdy12YWx1ZSAocmVw bGFjZS1yZWdleHAtaW4tc3RyaW5nIChjb25jYXQgKHJlZ2V4cC1xdW90ZSBvcmctY29tbWVudC1z dHJpbmcpICJcXCg/OiBcXHwkXFwpIikgIiIgcmF3LXZhbHVlKSkpKSkgKGlmIGFyY2hpdmVkcCAo cHJvZ24gKHNldHEgdGFncyAoZGVsZXRlIG9yZy1hcmNoaXZlLXRhZyB0YWdzKSkpKSAobGV0ICgo aGVhZGxpbmUgKGxpc3QgKHF1b3RlIGhlYWRsaW5lKSAobmNvbmMgKGxpc3QgOnJhdy12YWx1ZSBy YXctdmFsdWUgOmJlZ2luIGJlZ2luIDplbmQgZW5kIDpwcmUtYmxhbmsgKGlmIC4uLiAwIC4uLikg OmNvbnRlbnRzLWJlZ2luIGNvbnRlbnRzLWJlZ2luIDpjb250ZW50cy1lbmQgY29udGVudHMtZW5k IDpsZXZlbCBsZXZlbCA6cHJpb3JpdHkgKG50aCAzIGNvbXBvbmVudHMpIDp0YWdzIHRhZ3MgOnRv ZG8ta2V5d29yZCB0b2RvIDp0b2RvLXR5cGUgdG9kby10eXBlIDpwb3N0LWJsYW5rIChjb3VudC1s aW5lcyAuLi4gZW5kKSA6Zm9vdG5vdGUtc2VjdGlvbi1wIGZvb3Rub3RlLXNlY3Rpb24tcCA6YXJj aGl2ZWRwIGFyY2hpdmVkcCA6Y29tbWVudGVkcCBjb21tZW50ZWRwKSB0aW1lLXByb3BzIHN0YW5k YXJkLXByb3BzKSkpKSAobGV0ICgoYWx0LXRpdGxlIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6QUxU X1RJVExFIGhlYWRsaW5lKSkpIChpZiBhbHQtdGl0bGUgKHByb2duIChvcmctZWxlbWVudC1wdXQt cHJvcGVydHkgaGVhZGxpbmUgOmFsdC10aXRsZSAoaWYgcmF3LXNlY29uZGFyeS1wIGFsdC10aXRs ZSAob3JnLWVsZW1lbnQtcGFyc2Utc2Vjb25kYXJ5LXN0cmluZyBhbHQtdGl0bGUgLi4uIGhlYWRs aW5lKSkpKSkpIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgaGVhZGxpbmUgOnRpdGxlIChpZiBy YXctc2Vjb25kYXJ5LXAgcmF3LXZhbHVlIChvcmctZWxlbWVudC1wYXJzZS1zZWNvbmRhcnktc3Ry aW5nIHJhdy12YWx1ZSAob3JnLWVsZW1lbnQtcmVzdHJpY3Rpb24gKHF1b3RlIGhlYWRsaW5lKSkg aGVhZGxpbmUpKSkpKQogIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAoKGNvbXBvbmVudHMgKG9yZy1o ZWFkaW5nLWNvbXBvbmVudHMpKSAobGV2ZWwgKG50aCAxIGNvbXBvbmVudHMpKSAodG9kbyAobnRo IDIgY29tcG9uZW50cykpICh0b2RvLXR5cGUgKGFuZCB0b2RvIChpZiAobWVtYmVyIHRvZG8gb3Jn LWRvbmUta2V5d29yZHMpIChxdW90ZSBkb25lKSAocXVvdGUgdG9kbykpKSkgKHRhZ3MgKGxldCAo KHJhdy10YWdzIChudGggNSBjb21wb25lbnRzKSkpIChhbmQgcmF3LXRhZ3MgKG9yZy1zcGxpdC1z dHJpbmcgcmF3LXRhZ3MgIjoiKSkpKSAocmF3LXZhbHVlIChvciAobnRoIDQgY29tcG9uZW50cykg IiIpKSAoY29tbWVudGVkcCAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCBuaWwpKSAoc3RyaW5nLW1h dGNoIChmb3JtYXQgIl4lc1xcKCBcXHwkXFwpIiBvcmctY29tbWVudC1zdHJpbmcpIHJhdy12YWx1 ZSkpKSAoYXJjaGl2ZWRwIChtZW1iZXIgb3JnLWFyY2hpdmUtdGFnIHRhZ3MpKSAoZm9vdG5vdGUt c2VjdGlvbi1wIChhbmQgb3JnLWZvb3Rub3RlLXNlY3Rpb24gKHN0cmluZz0gb3JnLWZvb3Rub3Rl LXNlY3Rpb24gcmF3LXZhbHVlKSkpIChzdGFuZGFyZC1wcm9wcyAobGV0ICgoZW5kIChzYXZlLWV4 Y3Vyc2lvbiAuLi4gLi4uKSkgcGxpc3QpIChzYXZlLWV4Y3Vyc2lvbiAod2hpbGUgKGFuZCAuLi4g Li4uKSAobGV0IC4uLiAuLi4pKSBwbGlzdCkpKSAodGltZS1wcm9wcyAoc2F2ZS1leGN1cnNpb24g KGZvcndhcmQtbGluZSkgKGlmIChsb29raW5nLWF0IG9yZy1wbGFubmluZy1vci1jbG9jay1saW5l LXJlKSAocHJvZ24gKGxldCAuLi4gLi4uIHBsaXN0KSkpKSkgKGJlZ2luIChwb2ludCkpIChlbmQg KG1pbiAoc2F2ZS1leGN1cnNpb24gKG9yZy1lbmQtb2Ytc3VidHJlZSB0IHQpKSBsaW1pdCkpIChw b3MtYWZ0ZXItaGVhZCAocHJvZ24gKGZvcndhcmQtbGluZSkgKHBvaW50KSkpIChjb250ZW50cy1i ZWdpbiAoc2F2ZS1leGN1cnNpb24gKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iIGVuZCkgKGFu ZCAoLz0gKHBvaW50KSBlbmQpIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpKSkgKGNvbnRlbnRz LWVuZCAoYW5kIGNvbnRlbnRzLWJlZ2luIChwcm9nbiAoZ290by1jaGFyIGVuZCkgKHNraXAtY2hh cnMtYmFja3dhcmQgIiANCVxuIikgKGZvcndhcmQtbGluZSkgKHBvaW50KSkpKSkgKGlmIGNvbW1l bnRlZHAgKHByb2duIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIG5pbCkpIChzZXRxIHJhdy12YWx1 ZSAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nIChjb25jYXQgLi4uICJcXCg/OiBcXHwkXFwpIikg IiIgcmF3LXZhbHVlKSkpKSkgKGlmIGFyY2hpdmVkcCAocHJvZ24gKHNldHEgdGFncyAoZGVsZXRl IG9yZy1hcmNoaXZlLXRhZyB0YWdzKSkpKSAobGV0ICgoaGVhZGxpbmUgKGxpc3QgKHF1b3RlIGhl YWRsaW5lKSAobmNvbmMgKGxpc3QgOnJhdy12YWx1ZSByYXctdmFsdWUgOmJlZ2luIGJlZ2luIDpl bmQgZW5kIDpwcmUtYmxhbmsgLi4uIDpjb250ZW50cy1iZWdpbiBjb250ZW50cy1iZWdpbiA6Y29u dGVudHMtZW5kIGNvbnRlbnRzLWVuZCA6bGV2ZWwgbGV2ZWwgOnByaW9yaXR5IC4uLiA6dGFncyB0 YWdzIDp0b2RvLWtleXdvcmQgdG9kbyA6dG9kby10eXBlIHRvZG8tdHlwZSA6cG9zdC1ibGFuayAu Li4gOmZvb3Rub3RlLXNlY3Rpb24tcCBmb290bm90ZS1zZWN0aW9uLXAgOmFyY2hpdmVkcCBhcmNo aXZlZHAgOmNvbW1lbnRlZHAgY29tbWVudGVkcCkgdGltZS1wcm9wcyBzdGFuZGFyZC1wcm9wcykp KSkgKGxldCAoKGFsdC10aXRsZSAob3JnLWVsZW1lbnQtcHJvcGVydHkgOkFMVF9USVRMRSBoZWFk bGluZSkpKSAoaWYgYWx0LXRpdGxlIChwcm9nbiAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGhl YWRsaW5lIDphbHQtdGl0bGUgKGlmIHJhdy1zZWNvbmRhcnktcCBhbHQtdGl0bGUgLi4uKSkpKSkg KG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBoZWFkbGluZSA6dGl0bGUgKGlmIHJhdy1zZWNvbmRh cnktcCByYXctdmFsdWUgKG9yZy1lbGVtZW50LXBhcnNlLXNlY29uZGFyeS1zdHJpbmcgcmF3LXZh bHVlIChvcmctZWxlbWVudC1yZXN0cmljdGlvbiAocXVvdGUgaGVhZGxpbmUpKSBoZWFkbGluZSkp KSkpKQogIG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNlcigyNTc3MDYgdCkKICAoY29uZCAoKGVx IHNwZWNpYWwgKHF1b3RlIGl0ZW0pKSAob3JnLWVsZW1lbnQtaXRlbS1wYXJzZXIgbGltaXQgc3Ry dWN0dXJlIHJhdy1zZWNvbmRhcnktcCkpICgoZXEgc3BlY2lhbCAocXVvdGUgdGFibGUtcm93KSkg KG9yZy1lbGVtZW50LXRhYmxlLXJvdy1wYXJzZXIgbGltaXQpKSAoKGVxIHNwZWNpYWwgKHF1b3Rl IG5vZGUtcHJvcGVydHkpKSAob3JnLWVsZW1lbnQtbm9kZS1wcm9wZXJ0eS1wYXJzZXIgbGltaXQp KSAoKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5l LXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhw IG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIg b3JnLW91dGxpbmUtcmVnZXhwKSkpIChvcmctYXQtaGVhZGluZy1wKSkgKG9yZy1lbGVtZW50LWhl YWRsaW5lLXBhcnNlciBsaW1pdCByYXctc2Vjb25kYXJ5LXApKSAoKGVxIHNwZWNpYWwgKHF1b3Rl IHNlY3Rpb24pKSAob3JnLWVsZW1lbnQtc2VjdGlvbi1wYXJzZXIgbGltaXQpKSAoKGVxIHNwZWNp YWwgKHF1b3RlIGZpcnN0LXNlY3Rpb24pKSAob3JnLWVsZW1lbnQtc2VjdGlvbi1wYXJzZXIgKG9y IChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0 KSAob3JnLW91dGxpbmUtcmVnZXhwIC4uLikgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJl Z2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgLi4uKSkgKG91dGxpbmUtbmV4dC1oZWFkaW5n KSkpIGxpbWl0KSkpICgobm90IChib2xwKSkgKG9yZy1lbGVtZW50LXBhcmFncmFwaC1wYXJzZXIg bGltaXQgKGxpc3QgKHBvaW50KSkpKSAoKGxvb2tpbmctYXQgb3JnLXBsYW5uaW5nLW9yLWNsb2Nr LWxpbmUtcmUpIChpZiAoZXF1YWwgKG1hdGNoLXN0cmluZyAxKSBvcmctY2xvY2stc3RyaW5nKSAo b3JnLWVsZW1lbnQtY2xvY2stcGFyc2VyIGxpbWl0KSAob3JnLWVsZW1lbnQtcGxhbm5pbmctcGFy c2VyIGxpbWl0KSkpICgob3JnLWF0LWhlYWRpbmctcCkgKG9yZy1lbGVtZW50LWlubGluZXRhc2st cGFyc2VyIGxpbWl0IHJhdy1zZWNvbmRhcnktcCkpICh0IChsZXQgKChhZmZpbGlhdGVkIChvcmct ZWxlbWVudC0tY29sbGVjdC1hZmZpbGlhdGVkLWtleXdvcmRzIGxpbWl0KSkpIChjb25kICgoYW5k IChjZHIgYWZmaWxpYXRlZCkgKD49IChwb2ludCkgbGltaXQpKSAoZ290by1jaGFyIChjYXIgYWZm aWxpYXRlZCkpIChvcmctZWxlbWVudC1rZXl3b3JkLXBhcnNlciBsaW1pdCBuaWwpKSAoKGxvb2tp bmctYXQgIlsgICAgIF0qXFxcXGJlZ2lue1tBLVphLXowLTkqXSt9XFwoXFxbLio/XFxdXFx8ey4q P31cXCkqWyAgICAgXSokIikgKG9yZy1lbGVtZW50LWxhdGV4LWVudmlyb25tZW50LXBhcnNlciBs aW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0IG9yZy1kcmF3ZXItcmVnZXhwKSAoaWYgKGVx dWFsIChtYXRjaC1zdHJpbmcgMSkgIlBST1BFUlRJRVMiKSAob3JnLWVsZW1lbnQtcHJvcGVydHkt ZHJhd2VyLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSAob3JnLWVsZW1lbnQtZHJhd2VyLXBhcnNl ciBsaW1pdCBhZmZpbGlhdGVkKSkpICgobG9va2luZy1hdCAiWyAgIF0qOlxcKCBcXHwkXFwpIikg KG9yZy1lbGVtZW50LWZpeGVkLXdpZHRoLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29r aW5nLWF0ICJbICAgICBdKiMiKSAoZ290by1jaGFyIChtYXRjaC1lbmQgMCkpIChjb25kICgobG9v a2luZy1hdCAiXFwoPzogXFx8JFxcKSIpIChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50 LWNvbW1lbnQtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlxcK0JFR0lO X1xcKFxcUy0rXFwpIikgKGJlZ2lubmluZy1vZi1saW5lKSAobGV0IC4uLiAuLi4pKSAoKGxvb2tp bmctYXQgIlxcK0NBTEw6IikgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQtYmFiZWwt Y2FsbC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiXFwrQkVHSU46PyAi KSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1keW5hbWljLWJsb2NrLXBhcnNlciBs aW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJcXCtcXFMtKzoiKSAoYmVnaW5uaW5nLW9m LWxpbmUpIChvcmctZWxlbWVudC1rZXl3b3JkLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKHQg KGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQtcGFyYWdyYXBoLXBhcnNlciBsaW1pdCBh ZmZpbGlhdGVkKSkpKSAoKGxvb2tpbmctYXQgb3JnLWZvb3Rub3RlLWRlZmluaXRpb24tcmUpIChv cmctZWxlbWVudC1mb290bm90ZS1kZWZpbml0aW9uLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkg KChsb29raW5nLWF0ICJbICAgXSotXFx7NSxcXH1bICAgIF0qJCIpIChvcmctZWxlbWVudC1ob3Jp em9udGFsLXJ1bGUtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIiUlKCIp IChvcmctZWxlbWVudC1kaWFyeS1zZXhwLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChvcmct YXQtdGFibGUtcCB0KSAob3JnLWVsZW1lbnQtdGFibGUtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQp KSAoKGxvb2tpbmctYXQgKG9yZy1pdGVtLXJlKSkgKG9yZy1lbGVtZW50LXBsYWluLWxpc3QtcGFy c2VyIGxpbWl0IGFmZmlsaWF0ZWQgKG9yIHN0cnVjdHVyZSAob3JnLWVsZW1lbnQtLWxpc3Qtc3Ry dWN0IGxpbWl0KSkpKSAodCAob3JnLWVsZW1lbnQtcGFyYWdyYXBoLXBhcnNlciBsaW1pdCBhZmZp bGlhdGVkKSkpKSkpCiAgKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggdCkgKHJhdy1zZWNvbmRhcnkt cCAoYW5kIGdyYW51bGFyaXR5IChub3QgKGVxIGdyYW51bGFyaXR5IChxdW90ZSBvYmplY3QpKSkp KSkgKGNvbmQgKChlcSBzcGVjaWFsIChxdW90ZSBpdGVtKSkgKG9yZy1lbGVtZW50LWl0ZW0tcGFy c2VyIGxpbWl0IHN0cnVjdHVyZSByYXctc2Vjb25kYXJ5LXApKSAoKGVxIHNwZWNpYWwgKHF1b3Rl IHRhYmxlLXJvdykpIChvcmctZWxlbWVudC10YWJsZS1yb3ctcGFyc2VyIGxpbWl0KSkgKChlcSBz cGVjaWFsIChxdW90ZSBub2RlLXByb3BlcnR5KSkgKG9yZy1lbGVtZW50LW5vZGUtcHJvcGVydHkt cGFyc2VyIGxpbWl0KSkgKChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQp IChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChv dXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9s IChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3JnLWF0LWhlYWRpbmctcCkpIChv cmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIgbGltaXQgcmF3LXNlY29uZGFyeS1wKSkgKChlcSBz cGVjaWFsIChxdW90ZSBzZWN0aW9uKSkgKG9yZy1lbGVtZW50LXNlY3Rpb24tcGFyc2VyIGxpbWl0 KSkgKChlcSBzcGVjaWFsIChxdW90ZSBmaXJzdC1zZWN0aW9uKSkgKG9yZy1lbGVtZW50LXNlY3Rp b24tcGFyc2VyIChvciAoc2F2ZS1leGN1cnNpb24gKGxldCogKC4uLiAuLi4gLi4uIC4uLikgKG91 dGxpbmUtbmV4dC1oZWFkaW5nKSkpIGxpbWl0KSkpICgobm90IChib2xwKSkgKG9yZy1lbGVtZW50 LXBhcmFncmFwaC1wYXJzZXIgbGltaXQgKGxpc3QgKHBvaW50KSkpKSAoKGxvb2tpbmctYXQgb3Jn LXBsYW5uaW5nLW9yLWNsb2NrLWxpbmUtcmUpIChpZiAoZXF1YWwgKG1hdGNoLXN0cmluZyAxKSBv cmctY2xvY2stc3RyaW5nKSAob3JnLWVsZW1lbnQtY2xvY2stcGFyc2VyIGxpbWl0KSAob3JnLWVs ZW1lbnQtcGxhbm5pbmctcGFyc2VyIGxpbWl0KSkpICgob3JnLWF0LWhlYWRpbmctcCkgKG9yZy1l bGVtZW50LWlubGluZXRhc2stcGFyc2VyIGxpbWl0IHJhdy1zZWNvbmRhcnktcCkpICh0IChsZXQg KChhZmZpbGlhdGVkIChvcmctZWxlbWVudC0tY29sbGVjdC1hZmZpbGlhdGVkLWtleXdvcmRzIGxp bWl0KSkpIChjb25kICgoYW5kIChjZHIgYWZmaWxpYXRlZCkgKD49IC4uLiBsaW1pdCkpIChnb3Rv LWNoYXIgKGNhciBhZmZpbGlhdGVkKSkgKG9yZy1lbGVtZW50LWtleXdvcmQtcGFyc2VyIGxpbWl0 IG5pbCkpICgobG9va2luZy1hdCAiWyAgICAgICAgXSpcXFxcYmVnaW57W0EtWmEtejAtOSpdK31c XChcXFsuKj9cXF1cXHx7Lio/fVxcKSpbICAgICBdKiQiKSAob3JnLWVsZW1lbnQtbGF0ZXgtZW52 aXJvbm1lbnQtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgb3JnLWRyYXdl ci1yZWdleHApIChpZiAoZXF1YWwgLi4uICJQUk9QRVJUSUVTIikgKG9yZy1lbGVtZW50LXByb3Bl cnR5LWRyYXdlci1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkgKG9yZy1lbGVtZW50LWRyYXdlci1w YXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpKSAoKGxvb2tpbmctYXQgIlsgICAgICAgIF0qOlxcKCBc XHwkXFwpIikgKG9yZy1lbGVtZW50LWZpeGVkLXdpZHRoLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVk KSkgKChsb29raW5nLWF0ICJbICAgICBdKiMiKSAoZ290by1jaGFyIChtYXRjaC1lbmQgMCkpIChj b25kICguLi4gLi4uIC4uLikgKC4uLiAuLi4gLi4uKSAoLi4uIC4uLiAuLi4pICguLi4gLi4uIC4u LikgKC4uLiAuLi4gLi4uKSAodCAuLi4gLi4uKSkpICgobG9va2luZy1hdCBvcmctZm9vdG5vdGUt ZGVmaW5pdGlvbi1yZSkgKG9yZy1lbGVtZW50LWZvb3Rub3RlLWRlZmluaXRpb24tcGFyc2VyIGxp bWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlsgICBdKi1cXHs1LFxcfVsgICAgXSokIikg KG9yZy1lbGVtZW50LWhvcml6b250YWwtcnVsZS1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgo bG9va2luZy1hdCAiJSUoIikgKG9yZy1lbGVtZW50LWRpYXJ5LXNleHAtcGFyc2VyIGxpbWl0IGFm ZmlsaWF0ZWQpKSAoKG9yZy1hdC10YWJsZS1wIHQpIChvcmctZWxlbWVudC10YWJsZS1wYXJzZXIg bGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAob3JnLWl0ZW0tcmUpKSAob3JnLWVsZW1l bnQtcGxhaW4tbGlzdC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCAob3Igc3RydWN0dXJlIC4uLikp KSAodCAob3JnLWVsZW1lbnQtcGFyYWdyYXBoLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkpKSkp KQogIChzYXZlLWV4Y3Vyc2lvbiAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCB0KSAocmF3LXNlY29u ZGFyeS1wIChhbmQgZ3JhbnVsYXJpdHkgKG5vdCAoZXEgZ3JhbnVsYXJpdHkgKHF1b3RlIG9iamVj dCkpKSkpKSAoY29uZCAoKGVxIHNwZWNpYWwgKHF1b3RlIGl0ZW0pKSAob3JnLWVsZW1lbnQtaXRl bS1wYXJzZXIgbGltaXQgc3RydWN0dXJlIHJhdy1zZWNvbmRhcnktcCkpICgoZXEgc3BlY2lhbCAo cXVvdGUgdGFibGUtcm93KSkgKG9yZy1lbGVtZW50LXRhYmxlLXJvdy1wYXJzZXIgbGltaXQpKSAo KGVxIHNwZWNpYWwgKHF1b3RlIG5vZGUtcHJvcGVydHkpKSAob3JnLWVsZW1lbnQtbm9kZS1wcm9w ZXJ0eS1wYXJzZXIgbGltaXQpKSAoKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZl bHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhw KSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4 cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChvcmctYXQtaGVhZGluZy1w KSkgKG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNlciBsaW1pdCByYXctc2Vjb25kYXJ5LXApKSAo KGVxIHNwZWNpYWwgKHF1b3RlIHNlY3Rpb24pKSAob3JnLWVsZW1lbnQtc2VjdGlvbi1wYXJzZXIg bGltaXQpKSAoKGVxIHNwZWNpYWwgKHF1b3RlIGZpcnN0LXNlY3Rpb24pKSAob3JnLWVsZW1lbnQt c2VjdGlvbi1wYXJzZXIgKG9yIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAuLi4gLi4uKSkgbGltaXQp KSkgKChub3QgKGJvbHApKSAob3JnLWVsZW1lbnQtcGFyYWdyYXBoLXBhcnNlciBsaW1pdCAobGlz dCAocG9pbnQpKSkpICgobG9va2luZy1hdCBvcmctcGxhbm5pbmctb3ItY2xvY2stbGluZS1yZSkg KGlmIChlcXVhbCAobWF0Y2gtc3RyaW5nIDEpIG9yZy1jbG9jay1zdHJpbmcpIChvcmctZWxlbWVu dC1jbG9jay1wYXJzZXIgbGltaXQpIChvcmctZWxlbWVudC1wbGFubmluZy1wYXJzZXIgbGltaXQp KSkgKChvcmctYXQtaGVhZGluZy1wKSAob3JnLWVsZW1lbnQtaW5saW5ldGFzay1wYXJzZXIgbGlt aXQgcmF3LXNlY29uZGFyeS1wKSkgKHQgKGxldCAoKGFmZmlsaWF0ZWQgKG9yZy1lbGVtZW50LS1j b2xsZWN0LWFmZmlsaWF0ZWQta2V5d29yZHMgbGltaXQpKSkgKGNvbmQgKChhbmQgLi4uIC4uLikg KGdvdG8tY2hhciAuLi4pIChvcmctZWxlbWVudC1rZXl3b3JkLXBhcnNlciBsaW1pdCBuaWwpKSAo KGxvb2tpbmctYXQgIlsgICAgICBdKlxcXFxiZWdpbntbQS1aYS16MC05Kl0rfVxcKFxcWy4qP1xc XVxcfHsuKj99XFwpKlsgICAgIF0qJCIpIChvcmctZWxlbWVudC1sYXRleC1lbnZpcm9ubWVudC1w YXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCBvcmctZHJhd2VyLXJlZ2V4cCkg KGlmIC4uLiAuLi4gLi4uKSkgKChsb29raW5nLWF0ICJbICAgICAgICBdKjpcXCggXFx8JFxcKSIp IChvcmctZWxlbWVudC1maXhlZC13aWR0aC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9v a2luZy1hdCAiWyAgICAgXSojIikgKGdvdG8tY2hhciAuLi4pIChjb25kIC4uLiAuLi4gLi4uIC4u LiAuLi4gLi4uKSkgKChsb29raW5nLWF0IG9yZy1mb290bm90ZS1kZWZpbml0aW9uLXJlKSAob3Jn LWVsZW1lbnQtZm9vdG5vdGUtZGVmaW5pdGlvbi1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgo bG9va2luZy1hdCAiWyAgICAgICBdKi1cXHs1LFxcfVsgICAgXSokIikgKG9yZy1lbGVtZW50LWhv cml6b250YWwtcnVsZS1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiJSUo IikgKG9yZy1lbGVtZW50LWRpYXJ5LXNleHAtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKG9y Zy1hdC10YWJsZS1wIHQpIChvcmctZWxlbWVudC10YWJsZS1wYXJzZXIgbGltaXQgYWZmaWxpYXRl ZCkpICgobG9va2luZy1hdCAuLi4pIChvcmctZWxlbWVudC1wbGFpbi1saXN0LXBhcnNlciBsaW1p dCBhZmZpbGlhdGVkIC4uLikpICh0IChvcmctZWxlbWVudC1wYXJhZ3JhcGgtcGFyc2VyIGxpbWl0 IGFmZmlsaWF0ZWQpKSkpKSkpKQogIG9yZy1lbGVtZW50LS1jdXJyZW50LWVsZW1lbnQoMjU3NzA2 IGVsZW1lbnQgbmlsIG5pbCkKICAoc2V0cSBlbGVtZW50IChvcmctZWxlbWVudC0tY3VycmVudC1l bGVtZW50IGVuZCAocXVvdGUgZWxlbWVudCkgc3BlY2lhbC1mbGFnIChvcmctZWxlbWVudC1wcm9w ZXJ0eSA6c3RydWN0dXJlIHBhcmVudCkpKQogIChpZiBlbGVtZW50IG5pbCAoc2V0cSBlbGVtZW50 IChvcmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50IGVuZCAocXVvdGUgZWxlbWVudCkgc3BlY2lh bC1mbGFnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6c3RydWN0dXJlIHBhcmVudCkpKSAob3JnLWVs ZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQpIChvcmctZWxlbWVudC0t Y2FjaGUtcHV0IGVsZW1lbnQpKQogICh3aGlsZSB0IChpZiBzeW5jcCAocHJvZ24gKGNvbmQgKCg9 IChwb2ludCkgcG9zKSAodGhyb3cgKHF1b3RlIGV4aXQpIHBhcmVudCkpICgob3JnLWVsZW1lbnQt LWNhY2hlLWludGVycnVwdC1wIHRpbWUtbGltaXQpICh0aHJvdyAocXVvdGUgaW50ZXJydXB0KSBu aWwpKSkpKSAoaWYgZWxlbWVudCBuaWwgKHNldHEgZWxlbWVudCAob3JnLWVsZW1lbnQtLWN1cnJl bnQtZWxlbWVudCBlbmQgKHF1b3RlIGVsZW1lbnQpIHNwZWNpYWwtZmxhZyAob3JnLWVsZW1lbnQt cHJvcGVydHkgOnN0cnVjdHVyZSBwYXJlbnQpKSkgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBl bGVtZW50IDpwYXJlbnQgcGFyZW50KSAob3JnLWVsZW1lbnQtLWNhY2hlLXB1dCBlbGVtZW50KSkg KGxldCAoKGVsZW0tZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQpKSAodHlw ZSAob3JnLWVsZW1lbnQtdHlwZSBlbGVtZW50KSkpIChjb25kICgoYW5kICg8PSBlbGVtLWVuZCBw b3MpICgvPSAocG9pbnQtbWF4KSBlbGVtLWVuZCkpIChnb3RvLWNoYXIgZWxlbS1lbmQpKSAoKG5v dCAobWVtcSB0eXBlIG9yZy1lbGVtZW50LWdyZWF0ZXItZWxlbWVudHMpKSAodGhyb3cgKHF1b3Rl IGV4aXQpIGVsZW1lbnQpKSAoKGxldCAoKGNiZWcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpjb250 ZW50cy1iZWdpbiBlbGVtZW50KSkgKGNlbmQgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpjb250ZW50 cy1lbmQgZWxlbWVudCkpKSAoaWYgKG9yIHN5bmNwIChhbmQgY2JlZyBjZW5kIC4uLiAuLi4pKSAo cHJvZ24gKGdvdG8tY2hhciAuLi4pIChzZXRxIG5leHQgbmlsIHNwZWNpYWwtZmxhZyAuLi4gcGFy ZW50IGVsZW1lbnQgZW5kIGNlbmQpKSkpKSAodCAodGhyb3cgKHF1b3RlIGV4aXQpIGVsZW1lbnQp KSkpIChzZXRxIGVsZW1lbnQgbmlsKSkKICAobGV0ICgoZW5kIChvciAob3JnLWVsZW1lbnQtcHJv cGVydHkgOmVuZCBlbGVtZW50KSAoc2F2ZS1leGN1cnNpb24gKGxldCogKChvcmctY2FsbGVkLXdp dGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAuLi4pIChvdXRsaW5lLXJl Z2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIC4uLikpIChv dXRsaW5lLW5leHQtaGVhZGluZykpIChwb2ludCkpKSkgKHBhcmVudCBlbGVtZW50KSBzcGVjaWFs LWZsYWcpICh3aGlsZSB0IChpZiBzeW5jcCAocHJvZ24gKGNvbmQgKCg9IChwb2ludCkgcG9zKSAo dGhyb3cgKHF1b3RlIGV4aXQpIHBhcmVudCkpICgob3JnLWVsZW1lbnQtLWNhY2hlLWludGVycnVw dC1wIHRpbWUtbGltaXQpICh0aHJvdyAocXVvdGUgaW50ZXJydXB0KSBuaWwpKSkpKSAoaWYgZWxl bWVudCBuaWwgKHNldHEgZWxlbWVudCAob3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVudCBlbmQg KHF1b3RlIGVsZW1lbnQpIHNwZWNpYWwtZmxhZyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnN0cnVj dHVyZSBwYXJlbnQpKSkgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBlbGVtZW50IDpwYXJlbnQg cGFyZW50KSAob3JnLWVsZW1lbnQtLWNhY2hlLXB1dCBlbGVtZW50KSkgKGxldCAoKGVsZW0tZW5k IChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQpKSAodHlwZSAob3JnLWVsZW1lbnQt dHlwZSBlbGVtZW50KSkpIChjb25kICgoYW5kICg8PSBlbGVtLWVuZCBwb3MpICgvPSAocG9pbnQt bWF4KSBlbGVtLWVuZCkpIChnb3RvLWNoYXIgZWxlbS1lbmQpKSAoKG5vdCAobWVtcSB0eXBlIG9y Zy1lbGVtZW50LWdyZWF0ZXItZWxlbWVudHMpKSAodGhyb3cgKHF1b3RlIGV4aXQpIGVsZW1lbnQp KSAoKGxldCAoKGNiZWcgLi4uKSAoY2VuZCAuLi4pKSAoaWYgKG9yIHN5bmNwIC4uLikgKHByb2du IC4uLiAuLi4pKSkpICh0ICh0aHJvdyAocXVvdGUgZXhpdCkgZWxlbWVudCkpKSkgKHNldHEgZWxl bWVudCBuaWwpKSkKICAobGV0KiAoKGNhY2hlZCAoYW5kIChvcmctZWxlbWVudC0tY2FjaGUtYWN0 aXZlLXApIChvcmctZWxlbWVudC0tY2FjaGUtZmluZCBwb3MgbmlsKSkpIChiZWdpbiAob3JnLWVs ZW1lbnQtcHJvcGVydHkgOmJlZ2luIGNhY2hlZCkpIGVsZW1lbnQgbmV4dCkgKGNvbmQgKChub3Qg Y2FjaGVkKSAoaWYgKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9y Zy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxp bmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNv bmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChvdXRsaW5lLXByZXZpb3VzLWhlYWRpbmcp KSAocHJvZ24gKGZvcndhcmQtbGluZSkpKSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIpIChi ZWdpbm5pbmctb2YtbGluZSkpICgoPSBwb3MgYmVnaW4pICh0aHJvdyAocXVvdGUgZXhpdCkgKGlm IHN5bmNwIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGFyZW50IGNhY2hlZCkgY2FjaGVkKSkpICgo cmUtc2VhcmNoLWJhY2t3YXJkIChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxz IHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkp IChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAt Ym9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSBvcmctb3V0bGluZS1yZWdleHAt Ym9sKSBiZWdpbiB0KSAoZm9yd2FyZC1saW5lKSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIp IChiZWdpbm5pbmctb2YtbGluZSkpICh0IChsZXQgKCh1cCBjYWNoZWQpIChwb3MgKGlmICg9IC4u LiBwb3MpICgxLSBwb3MpIHBvcykpKSAoZ290by1jaGFyIChvciAob3JnLWVsZW1lbnQtcHJvcGVy dHkgOmNvbnRlbnRzLWJlZ2luIGNhY2hlZCkgYmVnaW4pKSAod2hpbGUgKGxldCAoKGVuZCAuLi4p KSAoYW5kICg8PSBlbmQgcG9zKSAoZ290by1jaGFyIGVuZCkgKHNldHEgdXAgLi4uKSkpKSAoY29u ZCAoKG5vdCB1cCkpICgoZW9icCkgKHNldHEgZWxlbWVudCB1cCkpICh0IChzZXRxIGVsZW1lbnQg dXAgbmV4dCAocG9pbnQpKSkpKSkpIChsZXQgKChlbmQgKG9yIChvcmctZWxlbWVudC1wcm9wZXJ0 eSA6ZW5kIGVsZW1lbnQpIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAoLi4uIC4uLiAuLi4gLi4uKSAo b3V0bGluZS1uZXh0LWhlYWRpbmcpKSAocG9pbnQpKSkpIChwYXJlbnQgZWxlbWVudCkgc3BlY2lh bC1mbGFnKSAod2hpbGUgdCAoaWYgc3luY3AgKHByb2duIChjb25kICgoPSAuLi4gcG9zKSAodGhy b3cgLi4uIHBhcmVudCkpICgob3JnLWVsZW1lbnQtLWNhY2hlLWludGVycnVwdC1wIHRpbWUtbGlt aXQpICh0aHJvdyAuLi4gbmlsKSkpKSkgKGlmIGVsZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQgKG9y Zy1lbGVtZW50LS1jdXJyZW50LWVsZW1lbnQgZW5kIChxdW90ZSBlbGVtZW50KSBzcGVjaWFsLWZs YWcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpzdHJ1Y3R1cmUgcGFyZW50KSkpIChvcmctZWxlbWVu dC1wdXQtcHJvcGVydHkgZWxlbWVudCA6cGFyZW50IHBhcmVudCkgKG9yZy1lbGVtZW50LS1jYWNo ZS1wdXQgZWxlbWVudCkpIChsZXQgKChlbGVtLWVuZCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmVu ZCBlbGVtZW50KSkgKHR5cGUgKG9yZy1lbGVtZW50LXR5cGUgZWxlbWVudCkpKSAoY29uZCAoKGFu ZCAoPD0gZWxlbS1lbmQgcG9zKSAoLz0gLi4uIGVsZW0tZW5kKSkgKGdvdG8tY2hhciBlbGVtLWVu ZCkpICgobm90IChtZW1xIHR5cGUgb3JnLWVsZW1lbnQtZ3JlYXRlci1lbGVtZW50cykpICh0aHJv dyAocXVvdGUgZXhpdCkgZWxlbWVudCkpICgobGV0ICguLi4gLi4uKSAoaWYgLi4uIC4uLikpKSAo dCAodGhyb3cgKHF1b3RlIGV4aXQpIGVsZW1lbnQpKSkpIChzZXRxIGVsZW1lbnQgbmlsKSkpKQog IChzYXZlLXJlc3RyaWN0aW9uICh3aWRlbikgKGdvdG8tY2hhciBwb3MpIChsZXQqICgoY2FjaGVk IChhbmQgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKG9yZy1lbGVtZW50LS1jYWNoZS1m aW5kIHBvcyBuaWwpKSkgKGJlZ2luIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6YmVnaW4gY2FjaGVk KSkgZWxlbWVudCBuZXh0KSAoY29uZCAoKG5vdCBjYWNoZWQpIChpZiAobGV0KiAoKG9yZy1jYWxs ZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIC4uLikgKG91dGxp bmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgLi4u KSkgKG91dGxpbmUtcHJldmlvdXMtaGVhZGluZykpIChwcm9nbiAoZm9yd2FyZC1saW5lKSkpIChz a2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkgKCg9IHBvcyBi ZWdpbikgKHRocm93IChxdW90ZSBleGl0KSAoaWYgc3luY3AgKG9yZy1lbGVtZW50LXByb3BlcnR5 IDpwYXJlbnQgY2FjaGVkKSBjYWNoZWQpKSkgKChyZS1zZWFyY2gtYmFja3dhcmQgKGxldCogKChv cmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAuLi4p IChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAt Ym9sIC4uLikpIG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wpIGJlZ2luIHQpIChmb3J3YXJkLWxpbmUp IChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkgKHQgKGxl dCAoKHVwIGNhY2hlZCkgKHBvcyAoaWYgLi4uIC4uLiBwb3MpKSkgKGdvdG8tY2hhciAob3IgKG9y Zy1lbGVtZW50LXByb3BlcnR5IDpjb250ZW50cy1iZWdpbiBjYWNoZWQpIGJlZ2luKSkgKHdoaWxl IChsZXQgKC4uLikgKGFuZCAuLi4gLi4uIC4uLikpKSAoY29uZCAoKG5vdCB1cCkpICgoZW9icCkg KHNldHEgZWxlbWVudCB1cCkpICh0IChzZXRxIGVsZW1lbnQgdXAgbmV4dCAuLi4pKSkpKSkgKGxl dCAoKGVuZCAob3IgKG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkgKHNhdmUtZXhj dXJzaW9uIChsZXQqIC4uLiAuLi4pIChwb2ludCkpKSkgKHBhcmVudCBlbGVtZW50KSBzcGVjaWFs LWZsYWcpICh3aGlsZSB0IChpZiBzeW5jcCAocHJvZ24gKGNvbmQgKC4uLiAuLi4pICguLi4gLi4u KSkpKSAoaWYgZWxlbWVudCBuaWwgKHNldHEgZWxlbWVudCAob3JnLWVsZW1lbnQtLWN1cnJlbnQt ZWxlbWVudCBlbmQgKHF1b3RlIGVsZW1lbnQpIHNwZWNpYWwtZmxhZyAob3JnLWVsZW1lbnQtcHJv cGVydHkgOnN0cnVjdHVyZSBwYXJlbnQpKSkgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBlbGVt ZW50IDpwYXJlbnQgcGFyZW50KSAob3JnLWVsZW1lbnQtLWNhY2hlLXB1dCBlbGVtZW50KSkgKGxl dCAoKGVsZW0tZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQpKSAodHlwZSAo b3JnLWVsZW1lbnQtdHlwZSBlbGVtZW50KSkpIChjb25kICgoYW5kIC4uLiAuLi4pIChnb3RvLWNo YXIgZWxlbS1lbmQpKSAoKG5vdCAuLi4pICh0aHJvdyAuLi4gZWxlbWVudCkpICgobGV0IC4uLiAu Li4pKSAodCAodGhyb3cgLi4uIGVsZW1lbnQpKSkpIChzZXRxIGVsZW1lbnQgbmlsKSkpKSkKICAo c2F2ZS1leGN1cnNpb24gKHNhdmUtcmVzdHJpY3Rpb24gKHdpZGVuKSAoZ290by1jaGFyIHBvcykg KGxldCogKChjYWNoZWQgKGFuZCAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAob3JnLWVs ZW1lbnQtLWNhY2hlLWZpbmQgcG9zIG5pbCkpKSAoYmVnaW4gKG9yZy1lbGVtZW50LXByb3BlcnR5 IDpiZWdpbiBjYWNoZWQpKSBlbGVtZW50IG5leHQpIChjb25kICgobm90IGNhY2hlZCkgKGlmIChs ZXQqICguLi4gLi4uIC4uLiAuLi4pIChvdXRsaW5lLXByZXZpb3VzLWhlYWRpbmcpKSAocHJvZ24g KGZvcndhcmQtbGluZSkpKSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmct b2YtbGluZSkpICgoPSBwb3MgYmVnaW4pICh0aHJvdyAocXVvdGUgZXhpdCkgKGlmIHN5bmNwIChv cmctZWxlbWVudC1wcm9wZXJ0eSA6cGFyZW50IGNhY2hlZCkgY2FjaGVkKSkpICgocmUtc2VhcmNo LWJhY2t3YXJkIChsZXQqICguLi4gLi4uIC4uLiAuLi4pIG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wp IGJlZ2luIHQpIChmb3J3YXJkLWxpbmUpIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGJl Z2lubmluZy1vZi1saW5lKSkgKHQgKGxldCAoKHVwIGNhY2hlZCkgKHBvcyAuLi4pKSAoZ290by1j aGFyIChvciAuLi4gYmVnaW4pKSAod2hpbGUgKGxldCAuLi4gLi4uKSkgKGNvbmQgKC4uLikgKC4u LiAuLi4pICh0IC4uLikpKSkpIChsZXQgKChlbmQgKG9yIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6 ZW5kIGVsZW1lbnQpIChzYXZlLWV4Y3Vyc2lvbiAuLi4gLi4uKSkpIChwYXJlbnQgZWxlbWVudCkg c3BlY2lhbC1mbGFnKSAod2hpbGUgdCAoaWYgc3luY3AgKHByb2duIChjb25kIC4uLiAuLi4pKSkg KGlmIGVsZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50LS1jdXJyZW50LWVsZW1l bnQgZW5kIC4uLiBzcGVjaWFsLWZsYWcgLi4uKSkgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBl bGVtZW50IDpwYXJlbnQgcGFyZW50KSAob3JnLWVsZW1lbnQtLWNhY2hlLXB1dCBlbGVtZW50KSkg KGxldCAoKGVsZW0tZW5kIC4uLikgKHR5cGUgLi4uKSkgKGNvbmQgKC4uLiAuLi4pICguLi4gLi4u KSAoLi4uKSAodCAuLi4pKSkgKHNldHEgZWxlbWVudCBuaWwpKSkpKSkKICAoY2F0Y2ggKHF1b3Rl IGV4aXQpIChzYXZlLWV4Y3Vyc2lvbiAoc2F2ZS1yZXN0cmljdGlvbiAod2lkZW4pIChnb3RvLWNo YXIgcG9zKSAobGV0KiAoKGNhY2hlZCAoYW5kIChvcmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXAp IChvcmctZWxlbWVudC0tY2FjaGUtZmluZCBwb3MgbmlsKSkpIChiZWdpbiAob3JnLWVsZW1lbnQt cHJvcGVydHkgOmJlZ2luIGNhY2hlZCkpIGVsZW1lbnQgbmV4dCkgKGNvbmQgKChub3QgY2FjaGVk KSAoaWYgKGxldCogLi4uIC4uLikgKHByb2duIC4uLikpIChza2lwLWNoYXJzLWZvcndhcmQgIiAN CVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkgKCg9IHBvcyBiZWdpbikgKHRocm93IChxdW90ZSBl eGl0KSAoaWYgc3luY3AgLi4uIGNhY2hlZCkpKSAoKHJlLXNlYXJjaC1iYWNrd2FyZCAobGV0KiAu Li4gb3JnLW91dGxpbmUtcmVnZXhwLWJvbCkgYmVnaW4gdCkgKGZvcndhcmQtbGluZSkgKHNraXAt Y2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAodCAobGV0ICguLi4g Li4uKSAoZ290by1jaGFyIC4uLikgKHdoaWxlIC4uLikgKGNvbmQgLi4uIC4uLiAuLi4pKSkpIChs ZXQgKChlbmQgKG9yIC4uLiAuLi4pKSAocGFyZW50IGVsZW1lbnQpIHNwZWNpYWwtZmxhZykgKHdo aWxlIHQgKGlmIHN5bmNwIChwcm9nbiAuLi4pKSAoaWYgZWxlbWVudCBuaWwgKHNldHEgZWxlbWVu dCAuLi4pIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgZWxlbWVudCA6cGFyZW50IHBhcmVudCkg KG9yZy1lbGVtZW50LS1jYWNoZS1wdXQgZWxlbWVudCkpIChsZXQgKC4uLiAuLi4pIChjb25kIC4u LiAuLi4gLi4uIC4uLikpIChzZXRxIGVsZW1lbnQgbmlsKSkpKSkpKQogIG9yZy1lbGVtZW50LS1w YXJzZS10bygyNTcyODApCiAgKGNvbmQgKChib2JwKSBuaWwpICgobGV0KiAoKG9yZy1jYWxsZWQt d2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0 ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAo b3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkg KG9yZy1hdC1oZWFkaW5nLXApKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1oZWFk bGluZS1wYXJzZXIgKHBvaW50LW1heCkgdCkpICh0IChpZiAob3JnLWVsZW1lbnQtLWNhY2hlLWFj dGl2ZS1wKSAocHJvZ24gKGlmIChub3Qgb3JnLWVsZW1lbnQtLWNhY2hlKSAob3JnLWVsZW1lbnQt Y2FjaGUtcmVzZXQpIChvcmctZWxlbWVudC0tY2FjaGUtc3luYyAoY3VycmVudC1idWZmZXIpIG9y aWdpbikpKSkgKG9yZy1lbGVtZW50LS1wYXJzZS10byBvcmlnaW4pKSkKICAobGV0ICgob3JpZ2lu IChwb2ludCkpKSAoZW5kLW9mLWxpbmUpIChza2lwLWNoYXJzLWJhY2t3YXJkICIgDQlcbiIpIChj b25kICgoYm9icCkgbmlsKSAoKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMg dCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkg KG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1i b2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChvcmctYXQtaGVhZGluZy1wKSkg KGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFyc2VyIChwb2ludC1t YXgpIHQpKSAodCAoaWYgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKHByb2duIChpZiAo bm90IG9yZy1lbGVtZW50LS1jYWNoZSkgKG9yZy1lbGVtZW50LWNhY2hlLXJlc2V0KSAob3JnLWVs ZW1lbnQtLWNhY2hlLXN5bmMgKGN1cnJlbnQtYnVmZmVyKSBvcmlnaW4pKSkpIChvcmctZWxlbWVu dC0tcGFyc2UtdG8gb3JpZ2luKSkpKQogIChzYXZlLXJlc3RyaWN0aW9uICh3aWRlbikgKGxldCAo KG9yaWdpbiAocG9pbnQpKSkgKGVuZC1vZi1saW5lKSAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIA0J XG4iKSAoY29uZCAoKGJvYnApIG5pbCkgKChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQt bGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJl Z2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1y ZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3JnLWF0LWhlYWRp bmctcCkpIChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNlciAo cG9pbnQtbWF4KSB0KSkgKHQgKGlmIChvcmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChwcm9n biAoaWYgKG5vdCBvcmctZWxlbWVudC0tY2FjaGUpIChvcmctZWxlbWVudC1jYWNoZS1yZXNldCkg KG9yZy1lbGVtZW50LS1jYWNoZS1zeW5jIC4uLiBvcmlnaW4pKSkpIChvcmctZWxlbWVudC0tcGFy c2UtdG8gb3JpZ2luKSkpKSkKICAoc2F2ZS1leGN1cnNpb24gKHNhdmUtcmVzdHJpY3Rpb24gKHdp ZGVuKSAobGV0ICgob3JpZ2luIChwb2ludCkpKSAoZW5kLW9mLWxpbmUpIChza2lwLWNoYXJzLWJh Y2t3YXJkICIgDQlcbiIpIChjb25kICgoYm9icCkgbmlsKSAoKGxldCogKChvcmctY2FsbGVkLXdp dGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAuLi4pIChvdXRsaW5lLXJl Z2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIC4uLikpIChv cmctYXQtaGVhZGluZy1wKSkgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQtaGVhZGxp bmUtcGFyc2VyIChwb2ludC1tYXgpIHQpKSAodCAoaWYgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3Rp dmUtcCkgKHByb2duIChpZiAuLi4gLi4uIC4uLikpKSAob3JnLWVsZW1lbnQtLXBhcnNlLXRvIG9y aWdpbikpKSkpKQogIG9yZy1lbGVtZW50LWF0LXBvaW50KCkKICAobGV0ICgoZHJhd2VyIChvcmct ZWxlbWVudC1hdC1wb2ludCkpKSAoaWYgKGFuZCAoZXEgKG9yZy1lbGVtZW50LXR5cGUgZHJhd2Vy KSAocXVvdGUgcHJvcGVydHktZHJhd2VyKSkgKGxldCAoKHAgZHJhd2VyKSkgKHdoaWxlIChhbmQg KHNldHEgcCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhcmVudCBwKSkgKG5vdCAoZXEgLi4uIC4u LikpKSkgKG5vdCBwKSkpIChwcm9nbiAobGV0ICgoZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6 Y29udGVudHMtZW5kIGRyYXdlcikpKSAoaWYgZW5kIChwcm9nbiAoZm9yd2FyZC1saW5lKSAod2hp bGUgKDwgLi4uIGVuZCkgKGlmIC4uLiAuLi4pIChmb3J3YXJkLWxpbmUpKSkpKSkpKQogICh3aGls ZSAoYW5kIChudWxsIHBsaXN0KSAocmUtc2VhcmNoLWZvcndhcmQgb3JnLXByb3BlcnR5LXN0YXJ0 LXJlIGVuZCB0KSkgKGxldCAoKGRyYXdlciAob3JnLWVsZW1lbnQtYXQtcG9pbnQpKSkgKGlmIChh bmQgKGVxIChvcmctZWxlbWVudC10eXBlIGRyYXdlcikgKHF1b3RlIHByb3BlcnR5LWRyYXdlcikp IChsZXQgKChwIGRyYXdlcikpICh3aGlsZSAoYW5kIChzZXRxIHAgLi4uKSAobm90IC4uLikpKSAo bm90IHApKSkgKHByb2duIChsZXQgKChlbmQgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpjb250ZW50 cy1lbmQgZHJhd2VyKSkpIChpZiBlbmQgKHByb2duIChmb3J3YXJkLWxpbmUpICh3aGlsZSAuLi4g Li4uIC4uLikpKSkpKSkpCiAgKHNhdmUtZXhjdXJzaW9uICh3aGlsZSAoYW5kIChudWxsIHBsaXN0 KSAocmUtc2VhcmNoLWZvcndhcmQgb3JnLXByb3BlcnR5LXN0YXJ0LXJlIGVuZCB0KSkgKGxldCAo KGRyYXdlciAob3JnLWVsZW1lbnQtYXQtcG9pbnQpKSkgKGlmIChhbmQgKGVxIChvcmctZWxlbWVu dC10eXBlIGRyYXdlcikgKHF1b3RlIHByb3BlcnR5LWRyYXdlcikpIChsZXQgKChwIGRyYXdlcikp ICh3aGlsZSAoYW5kIC4uLiAuLi4pKSAobm90IHApKSkgKHByb2duIChsZXQgKChlbmQgLi4uKSkg KGlmIGVuZCAocHJvZ24gLi4uIC4uLikpKSkpKSkgcGxpc3QpCiAgKGxldCAoKGVuZCAoc2F2ZS1l eGN1cnNpb24gKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1v dXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUt cmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNh dCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChvdXRsaW5lLW5leHQtaGVhZGluZykpIChwb2lu dCkpKSBwbGlzdCkgKHNhdmUtZXhjdXJzaW9uICh3aGlsZSAoYW5kIChudWxsIHBsaXN0KSAocmUt c2VhcmNoLWZvcndhcmQgb3JnLXByb3BlcnR5LXN0YXJ0LXJlIGVuZCB0KSkgKGxldCAoKGRyYXdl ciAob3JnLWVsZW1lbnQtYXQtcG9pbnQpKSkgKGlmIChhbmQgKGVxIChvcmctZWxlbWVudC10eXBl IGRyYXdlcikgKHF1b3RlIHByb3BlcnR5LWRyYXdlcikpIChsZXQgKC4uLikgKHdoaWxlIC4uLikg KG5vdCBwKSkpIChwcm9nbiAobGV0ICguLi4pIChpZiBlbmQgLi4uKSkpKSkpIHBsaXN0KSkKICAo bGV0KiAoKGNvbXBvbmVudHMgKG9yZy1oZWFkaW5nLWNvbXBvbmVudHMpKSAobGV2ZWwgKG50aCAx IGNvbXBvbmVudHMpKSAodG9kbyAobnRoIDIgY29tcG9uZW50cykpICh0b2RvLXR5cGUgKGFuZCB0 b2RvIChpZiAobWVtYmVyIHRvZG8gb3JnLWRvbmUta2V5d29yZHMpIChxdW90ZSBkb25lKSAocXVv dGUgdG9kbykpKSkgKHRhZ3MgKGxldCAoKHJhdy10YWdzIChudGggNSBjb21wb25lbnRzKSkpIChh bmQgcmF3LXRhZ3MgKG9yZy1zcGxpdC1zdHJpbmcgcmF3LXRhZ3MgIjoiKSkpKSAocmF3LXZhbHVl IChvciAobnRoIDQgY29tcG9uZW50cykgIiIpKSAoY29tbWVudGVkcCAobGV0ICgoY2FzZS1mb2xk LXNlYXJjaCBuaWwpKSAoc3RyaW5nLW1hdGNoIChmb3JtYXQgIl4lc1xcKCBcXHwkXFwpIiBvcmct Y29tbWVudC1zdHJpbmcpIHJhdy12YWx1ZSkpKSAoYXJjaGl2ZWRwIChtZW1iZXIgb3JnLWFyY2hp dmUtdGFnIHRhZ3MpKSAoZm9vdG5vdGUtc2VjdGlvbi1wIChhbmQgb3JnLWZvb3Rub3RlLXNlY3Rp b24gKHN0cmluZz0gb3JnLWZvb3Rub3RlLXNlY3Rpb24gcmF3LXZhbHVlKSkpIChzdGFuZGFyZC1w cm9wcyAobGV0ICgoZW5kIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAuLi4gLi4uKSAocG9pbnQpKSkg cGxpc3QpIChzYXZlLWV4Y3Vyc2lvbiAod2hpbGUgKGFuZCAobnVsbCBwbGlzdCkgKHJlLXNlYXJj aC1mb3J3YXJkIG9yZy1wcm9wZXJ0eS1zdGFydC1yZSBlbmQgdCkpIChsZXQgKC4uLikgKGlmIC4u LiAuLi4pKSkgcGxpc3QpKSkgKHRpbWUtcHJvcHMgKHNhdmUtZXhjdXJzaW9uIChmb3J3YXJkLWxp bmUpIChpZiAobG9va2luZy1hdCBvcmctcGxhbm5pbmctb3ItY2xvY2stbGluZS1yZSkgKHByb2du IChsZXQgKC4uLiBwbGlzdCkgKHdoaWxlIC4uLiAuLi4gLi4uIC4uLikgcGxpc3QpKSkpKSAoYmVn aW4gKHBvaW50KSkgKGVuZCAobWluIChzYXZlLWV4Y3Vyc2lvbiAob3JnLWVuZC1vZi1zdWJ0cmVl IHQgdCkpIGxpbWl0KSkgKHBvcy1hZnRlci1oZWFkIChwcm9nbiAoZm9yd2FyZC1saW5lKSAocG9p bnQpKSkgKGNvbnRlbnRzLWJlZ2luIChzYXZlLWV4Y3Vyc2lvbiAoc2tpcC1jaGFycy1mb3J3YXJk ICIgDQlcbiIgZW5kKSAoYW5kICgvPSAocG9pbnQpIGVuZCkgKGxpbmUtYmVnaW5uaW5nLXBvc2l0 aW9uKSkpKSAoY29udGVudHMtZW5kIChhbmQgY29udGVudHMtYmVnaW4gKHByb2duIChnb3RvLWNo YXIgZW5kKSAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIA0JXG4iKSAoZm9yd2FyZC1saW5lKSAocG9p bnQpKSkpKSAoaWYgY29tbWVudGVkcCAocHJvZ24gKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggbmls KSkgKHNldHEgcmF3LXZhbHVlIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcgKGNvbmNhdCAocmVn ZXhwLXF1b3RlIG9yZy1jb21tZW50LXN0cmluZykgIlxcKD86IFxcfCRcXCkiKSAiIiByYXctdmFs dWUpKSkpKSAoaWYgYXJjaGl2ZWRwIChwcm9nbiAoc2V0cSB0YWdzIChkZWxldGUgb3JnLWFyY2hp dmUtdGFnIHRhZ3MpKSkpIChsZXQgKChoZWFkbGluZSAobGlzdCAocXVvdGUgaGVhZGxpbmUpIChu Y29uYyAobGlzdCA6cmF3LXZhbHVlIHJhdy12YWx1ZSA6YmVnaW4gYmVnaW4gOmVuZCBlbmQgOnBy ZS1ibGFuayAoaWYgLi4uIDAgLi4uKSA6Y29udGVudHMtYmVnaW4gY29udGVudHMtYmVnaW4gOmNv bnRlbnRzLWVuZCBjb250ZW50cy1lbmQgOmxldmVsIGxldmVsIDpwcmlvcml0eSAobnRoIDMgY29t cG9uZW50cykgOnRhZ3MgdGFncyA6dG9kby1rZXl3b3JkIHRvZG8gOnRvZG8tdHlwZSB0b2RvLXR5 cGUgOnBvc3QtYmxhbmsgKGNvdW50LWxpbmVzIC4uLiBlbmQpIDpmb290bm90ZS1zZWN0aW9uLXAg Zm9vdG5vdGUtc2VjdGlvbi1wIDphcmNoaXZlZHAgYXJjaGl2ZWRwIDpjb21tZW50ZWRwIGNvbW1l bnRlZHApIHRpbWUtcHJvcHMgc3RhbmRhcmQtcHJvcHMpKSkpIChsZXQgKChhbHQtdGl0bGUgKG9y Zy1lbGVtZW50LXByb3BlcnR5IDpBTFRfVElUTEUgaGVhZGxpbmUpKSkgKGlmIGFsdC10aXRsZSAo cHJvZ24gKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBoZWFkbGluZSA6YWx0LXRpdGxlIChpZiBy YXctc2Vjb25kYXJ5LXAgYWx0LXRpdGxlIChvcmctZWxlbWVudC1wYXJzZS1zZWNvbmRhcnktc3Ry aW5nIGFsdC10aXRsZSAuLi4gaGVhZGxpbmUpKSkpKSkgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0 eSBoZWFkbGluZSA6dGl0bGUgKGlmIHJhdy1zZWNvbmRhcnktcCByYXctdmFsdWUgKG9yZy1lbGVt ZW50LXBhcnNlLXNlY29uZGFyeS1zdHJpbmcgcmF3LXZhbHVlIChvcmctZWxlbWVudC1yZXN0cmlj dGlvbiAocXVvdGUgaGVhZGxpbmUpKSBoZWFkbGluZSkpKSkpCiAgKHNhdmUtZXhjdXJzaW9uIChs ZXQqICgoY29tcG9uZW50cyAob3JnLWhlYWRpbmctY29tcG9uZW50cykpIChsZXZlbCAobnRoIDEg Y29tcG9uZW50cykpICh0b2RvIChudGggMiBjb21wb25lbnRzKSkgKHRvZG8tdHlwZSAoYW5kIHRv ZG8gKGlmIChtZW1iZXIgdG9kbyBvcmctZG9uZS1rZXl3b3JkcykgKHF1b3RlIGRvbmUpIChxdW90 ZSB0b2RvKSkpKSAodGFncyAobGV0ICgocmF3LXRhZ3MgKG50aCA1IGNvbXBvbmVudHMpKSkgKGFu ZCByYXctdGFncyAob3JnLXNwbGl0LXN0cmluZyByYXctdGFncyAiOiIpKSkpIChyYXctdmFsdWUg KG9yIChudGggNCBjb21wb25lbnRzKSAiIikpIChjb21tZW50ZWRwIChsZXQgKChjYXNlLWZvbGQt c2VhcmNoIG5pbCkpIChzdHJpbmctbWF0Y2ggKGZvcm1hdCAiXiVzXFwoIFxcfCRcXCkiIG9yZy1j b21tZW50LXN0cmluZykgcmF3LXZhbHVlKSkpIChhcmNoaXZlZHAgKG1lbWJlciBvcmctYXJjaGl2 ZS10YWcgdGFncykpIChmb290bm90ZS1zZWN0aW9uLXAgKGFuZCBvcmctZm9vdG5vdGUtc2VjdGlv biAoc3RyaW5nPSBvcmctZm9vdG5vdGUtc2VjdGlvbiByYXctdmFsdWUpKSkgKHN0YW5kYXJkLXBy b3BzIChsZXQgKChlbmQgKHNhdmUtZXhjdXJzaW9uIC4uLiAuLi4pKSBwbGlzdCkgKHNhdmUtZXhj dXJzaW9uICh3aGlsZSAoYW5kIC4uLiAuLi4pIChsZXQgLi4uIC4uLikpIHBsaXN0KSkpICh0aW1l LXByb3BzIChzYXZlLWV4Y3Vyc2lvbiAoZm9yd2FyZC1saW5lKSAoaWYgKGxvb2tpbmctYXQgb3Jn LXBsYW5uaW5nLW9yLWNsb2NrLWxpbmUtcmUpIChwcm9nbiAobGV0IC4uLiAuLi4gcGxpc3QpKSkp KSAoYmVnaW4gKHBvaW50KSkgKGVuZCAobWluIChzYXZlLWV4Y3Vyc2lvbiAob3JnLWVuZC1vZi1z dWJ0cmVlIHQgdCkpIGxpbWl0KSkgKHBvcy1hZnRlci1oZWFkIChwcm9nbiAoZm9yd2FyZC1saW5l KSAocG9pbnQpKSkgKGNvbnRlbnRzLWJlZ2luIChzYXZlLWV4Y3Vyc2lvbiAoc2tpcC1jaGFycy1m b3J3YXJkICIgDQlcbiIgZW5kKSAoYW5kICgvPSAocG9pbnQpIGVuZCkgKGxpbmUtYmVnaW5uaW5n LXBvc2l0aW9uKSkpKSAoY29udGVudHMtZW5kIChhbmQgY29udGVudHMtYmVnaW4gKHByb2duIChn b3RvLWNoYXIgZW5kKSAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIA0JXG4iKSAoZm9yd2FyZC1saW5l KSAocG9pbnQpKSkpKSAoaWYgY29tbWVudGVkcCAocHJvZ24gKGxldCAoKGNhc2UtZm9sZC1zZWFy Y2ggbmlsKSkgKHNldHEgcmF3LXZhbHVlIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcgKGNvbmNh dCAuLi4gIlxcKD86IFxcfCRcXCkiKSAiIiByYXctdmFsdWUpKSkpKSAoaWYgYXJjaGl2ZWRwIChw cm9nbiAoc2V0cSB0YWdzIChkZWxldGUgb3JnLWFyY2hpdmUtdGFnIHRhZ3MpKSkpIChsZXQgKCho ZWFkbGluZSAobGlzdCAocXVvdGUgaGVhZGxpbmUpIChuY29uYyAobGlzdCA6cmF3LXZhbHVlIHJh dy12YWx1ZSA6YmVnaW4gYmVnaW4gOmVuZCBlbmQgOnByZS1ibGFuayAuLi4gOmNvbnRlbnRzLWJl Z2luIGNvbnRlbnRzLWJlZ2luIDpjb250ZW50cy1lbmQgY29udGVudHMtZW5kIDpsZXZlbCBsZXZl bCA6cHJpb3JpdHkgLi4uIDp0YWdzIHRhZ3MgOnRvZG8ta2V5d29yZCB0b2RvIDp0b2RvLXR5cGUg dG9kby10eXBlIDpwb3N0LWJsYW5rIC4uLiA6Zm9vdG5vdGUtc2VjdGlvbi1wIGZvb3Rub3RlLXNl Y3Rpb24tcCA6YXJjaGl2ZWRwIGFyY2hpdmVkcCA6Y29tbWVudGVkcCBjb21tZW50ZWRwKSB0aW1l LXByb3BzIHN0YW5kYXJkLXByb3BzKSkpKSAobGV0ICgoYWx0LXRpdGxlIChvcmctZWxlbWVudC1w cm9wZXJ0eSA6QUxUX1RJVExFIGhlYWRsaW5lKSkpIChpZiBhbHQtdGl0bGUgKHByb2duIChvcmct ZWxlbWVudC1wdXQtcHJvcGVydHkgaGVhZGxpbmUgOmFsdC10aXRsZSAoaWYgcmF3LXNlY29uZGFy eS1wIGFsdC10aXRsZSAuLi4pKSkpKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGhlYWRsaW5l IDp0aXRsZSAoaWYgcmF3LXNlY29uZGFyeS1wIHJhdy12YWx1ZSAob3JnLWVsZW1lbnQtcGFyc2Ut c2Vjb25kYXJ5LXN0cmluZyByYXctdmFsdWUgKG9yZy1lbGVtZW50LXJlc3RyaWN0aW9uIChxdW90 ZSBoZWFkbGluZSkpIGhlYWRsaW5lKSkpKSkpCiAgb3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFyc2Vy KDI1NzcwNiB0KQogIChjb25kICgoZXEgc3BlY2lhbCAocXVvdGUgaXRlbSkpIChvcmctZWxlbWVu dC1pdGVtLXBhcnNlciBsaW1pdCBzdHJ1Y3R1cmUgcmF3LXNlY29uZGFyeS1wKSkgKChlcSBzcGVj aWFsIChxdW90ZSB0YWJsZS1yb3cpKSAob3JnLWVsZW1lbnQtdGFibGUtcm93LXBhcnNlciBsaW1p dCkpICgoZXEgc3BlY2lhbCAocXVvdGUgbm9kZS1wcm9wZXJ0eSkpIChvcmctZWxlbWVudC1ub2Rl LXByb3BlcnR5LXBhcnNlciBsaW1pdCkpICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVk LWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1y ZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUt cmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgKG9yZy1hdC1oZWFk aW5nLXApKSAob3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFyc2VyIGxpbWl0IHJhdy1zZWNvbmRhcnkt cCkpICgoZXEgc3BlY2lhbCAocXVvdGUgc2VjdGlvbikpIChvcmctZWxlbWVudC1zZWN0aW9uLXBh cnNlciBsaW1pdCkpICgoZXEgc3BlY2lhbCAocXVvdGUgZmlyc3Qtc2VjdGlvbikpIChvcmctZWxl bWVudC1zZWN0aW9uLXBhcnNlciAob3IgKHNhdmUtZXhjdXJzaW9uIChsZXQqICgob3JnLWNhbGxl ZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgLi4uKSAob3V0bGlu ZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAuLi4p KSAob3V0bGluZS1uZXh0LWhlYWRpbmcpKSkgbGltaXQpKSkgKChub3QgKGJvbHApKSAob3JnLWVs ZW1lbnQtcGFyYWdyYXBoLXBhcnNlciBsaW1pdCAobGlzdCAocG9pbnQpKSkpICgobG9va2luZy1h dCBvcmctcGxhbm5pbmctb3ItY2xvY2stbGluZS1yZSkgKGlmIChlcXVhbCAobWF0Y2gtc3RyaW5n IDEpIG9yZy1jbG9jay1zdHJpbmcpIChvcmctZWxlbWVudC1jbG9jay1wYXJzZXIgbGltaXQpIChv cmctZWxlbWVudC1wbGFubmluZy1wYXJzZXIgbGltaXQpKSkgKChvcmctYXQtaGVhZGluZy1wKSAo b3JnLWVsZW1lbnQtaW5saW5ldGFzay1wYXJzZXIgbGltaXQgcmF3LXNlY29uZGFyeS1wKSkgKHQg KGxldCAoKGFmZmlsaWF0ZWQgKG9yZy1lbGVtZW50LS1jb2xsZWN0LWFmZmlsaWF0ZWQta2V5d29y ZHMgbGltaXQpKSkgKGNvbmQgKChhbmQgKGNkciBhZmZpbGlhdGVkKSAoPj0gKHBvaW50KSBsaW1p dCkpIChnb3RvLWNoYXIgKGNhciBhZmZpbGlhdGVkKSkgKG9yZy1lbGVtZW50LWtleXdvcmQtcGFy c2VyIGxpbWl0IG5pbCkpICgobG9va2luZy1hdCAiWyAgICAgXSpcXFxcYmVnaW57W0EtWmEtejAt OSpdK31cXChcXFsuKj9cXF1cXHx7Lio/fVxcKSpbICAgICBdKiQiKSAob3JnLWVsZW1lbnQtbGF0 ZXgtZW52aXJvbm1lbnQtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgb3Jn LWRyYXdlci1yZWdleHApIChpZiAoZXF1YWwgKG1hdGNoLXN0cmluZyAxKSAiUFJPUEVSVElFUyIp IChvcmctZWxlbWVudC1wcm9wZXJ0eS1kcmF3ZXItcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpIChv cmctZWxlbWVudC1kcmF3ZXItcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSkgKChsb29raW5nLWF0 ICJbICAgXSo6XFwoIFxcfCRcXCkiKSAob3JnLWVsZW1lbnQtZml4ZWQtd2lkdGgtcGFyc2VyIGxp bWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlsgICAgIF0qIyIpIChnb3RvLWNoYXIgKG1h dGNoLWVuZCAwKSkgKGNvbmQgKChsb29raW5nLWF0ICJcXCg/OiBcXHwkXFwpIikgKGJlZ2lubmlu Zy1vZi1saW5lKSAob3JnLWVsZW1lbnQtY29tbWVudC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkp ICgobG9va2luZy1hdCAiXFwrQkVHSU5fXFwoXFxTLStcXCkiKSAoYmVnaW5uaW5nLW9mLWxpbmUp IChsZXQgLi4uIC4uLikpICgobG9va2luZy1hdCAiXFwrQ0FMTDoiKSAoYmVnaW5uaW5nLW9mLWxp bmUpIChvcmctZWxlbWVudC1iYWJlbC1jYWxsLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChs b29raW5nLWF0ICJcXCtCRUdJTjo/ICIpIChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50 LWR5bmFtaWMtYmxvY2stcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlxc K1xcUy0rOiIpIChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWtleXdvcmQtcGFyc2Vy IGxpbWl0IGFmZmlsaWF0ZWQpKSAodCAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1w YXJhZ3JhcGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSkpICgobG9va2luZy1hdCBvcmctZm9v dG5vdGUtZGVmaW5pdGlvbi1yZSkgKG9yZy1lbGVtZW50LWZvb3Rub3RlLWRlZmluaXRpb24tcGFy c2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlsgICBdKi1cXHs1LFxcfVsgICAg XSokIikgKG9yZy1lbGVtZW50LWhvcml6b250YWwtcnVsZS1wYXJzZXIgbGltaXQgYWZmaWxpYXRl ZCkpICgobG9va2luZy1hdCAiJSUoIikgKG9yZy1lbGVtZW50LWRpYXJ5LXNleHAtcGFyc2VyIGxp bWl0IGFmZmlsaWF0ZWQpKSAoKG9yZy1hdC10YWJsZS1wIHQpIChvcmctZWxlbWVudC10YWJsZS1w YXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAob3JnLWl0ZW0tcmUpKSAob3Jn LWVsZW1lbnQtcGxhaW4tbGlzdC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCAob3Igc3RydWN0dXJl IChvcmctZWxlbWVudC0tbGlzdC1zdHJ1Y3QgbGltaXQpKSkpICh0IChvcmctZWxlbWVudC1wYXJh Z3JhcGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSkpKSkKICAobGV0ICgoY2FzZS1mb2xkLXNl YXJjaCB0KSAocmF3LXNlY29uZGFyeS1wIChhbmQgZ3JhbnVsYXJpdHkgKG5vdCAoZXEgZ3JhbnVs YXJpdHkgKHF1b3RlIG9iamVjdCkpKSkpKSAoY29uZCAoKGVxIHNwZWNpYWwgKHF1b3RlIGl0ZW0p KSAob3JnLWVsZW1lbnQtaXRlbS1wYXJzZXIgbGltaXQgc3RydWN0dXJlIHJhdy1zZWNvbmRhcnkt cCkpICgoZXEgc3BlY2lhbCAocXVvdGUgdGFibGUtcm93KSkgKG9yZy1lbGVtZW50LXRhYmxlLXJv dy1wYXJzZXIgbGltaXQpKSAoKGVxIHNwZWNpYWwgKHF1b3RlIG5vZGUtcHJvcGVydHkpKSAob3Jn LWVsZW1lbnQtbm9kZS1wcm9wZXJ0eS1wYXJzZXIgbGltaXQpKSAoKGxldCogKChvcmctY2FsbGVk LXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1p dGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkg KG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkp IChvcmctYXQtaGVhZGluZy1wKSkgKG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNlciBsaW1pdCBy YXctc2Vjb25kYXJ5LXApKSAoKGVxIHNwZWNpYWwgKHF1b3RlIHNlY3Rpb24pKSAob3JnLWVsZW1l bnQtc2VjdGlvbi1wYXJzZXIgbGltaXQpKSAoKGVxIHNwZWNpYWwgKHF1b3RlIGZpcnN0LXNlY3Rp b24pKSAob3JnLWVsZW1lbnQtc2VjdGlvbi1wYXJzZXIgKG9yIChzYXZlLWV4Y3Vyc2lvbiAobGV0 KiAoLi4uIC4uLiAuLi4gLi4uKSAob3V0bGluZS1uZXh0LWhlYWRpbmcpKSkgbGltaXQpKSkgKChu b3QgKGJvbHApKSAob3JnLWVsZW1lbnQtcGFyYWdyYXBoLXBhcnNlciBsaW1pdCAobGlzdCAocG9p bnQpKSkpICgobG9va2luZy1hdCBvcmctcGxhbm5pbmctb3ItY2xvY2stbGluZS1yZSkgKGlmIChl cXVhbCAobWF0Y2gtc3RyaW5nIDEpIG9yZy1jbG9jay1zdHJpbmcpIChvcmctZWxlbWVudC1jbG9j ay1wYXJzZXIgbGltaXQpIChvcmctZWxlbWVudC1wbGFubmluZy1wYXJzZXIgbGltaXQpKSkgKChv cmctYXQtaGVhZGluZy1wKSAob3JnLWVsZW1lbnQtaW5saW5ldGFzay1wYXJzZXIgbGltaXQgcmF3 LXNlY29uZGFyeS1wKSkgKHQgKGxldCAoKGFmZmlsaWF0ZWQgKG9yZy1lbGVtZW50LS1jb2xsZWN0 LWFmZmlsaWF0ZWQta2V5d29yZHMgbGltaXQpKSkgKGNvbmQgKChhbmQgKGNkciBhZmZpbGlhdGVk KSAoPj0gLi4uIGxpbWl0KSkgKGdvdG8tY2hhciAoY2FyIGFmZmlsaWF0ZWQpKSAob3JnLWVsZW1l bnQta2V5d29yZC1wYXJzZXIgbGltaXQgbmlsKSkgKChsb29raW5nLWF0ICJbICAgICAgICBdKlxc XFxiZWdpbntbQS1aYS16MC05Kl0rfVxcKFxcWy4qP1xcXVxcfHsuKj99XFwpKlsgICAgIF0qJCIp IChvcmctZWxlbWVudC1sYXRleC1lbnZpcm9ubWVudC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkp ICgobG9va2luZy1hdCBvcmctZHJhd2VyLXJlZ2V4cCkgKGlmIChlcXVhbCAuLi4gIlBST1BFUlRJ RVMiKSAob3JnLWVsZW1lbnQtcHJvcGVydHktZHJhd2VyLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVk KSAob3JnLWVsZW1lbnQtZHJhd2VyLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkpICgobG9va2lu Zy1hdCAiWyAgICAgICAgXSo6XFwoIFxcfCRcXCkiKSAob3JnLWVsZW1lbnQtZml4ZWQtd2lkdGgt cGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlsgICAgIF0qIyIpIChnb3Rv LWNoYXIgKG1hdGNoLWVuZCAwKSkgKGNvbmQgKC4uLiAuLi4gLi4uKSAoLi4uIC4uLiAuLi4pICgu Li4gLi4uIC4uLikgKC4uLiAuLi4gLi4uKSAoLi4uIC4uLiAuLi4pICh0IC4uLiAuLi4pKSkgKChs b29raW5nLWF0IG9yZy1mb290bm90ZS1kZWZpbml0aW9uLXJlKSAob3JnLWVsZW1lbnQtZm9vdG5v dGUtZGVmaW5pdGlvbi1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiWyAg IF0qLVxcezUsXFx9WyAgICBdKiQiKSAob3JnLWVsZW1lbnQtaG9yaXpvbnRhbC1ydWxlLXBhcnNl ciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICIlJSgiKSAob3JnLWVsZW1lbnQtZGlh cnktc2V4cC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgob3JnLWF0LXRhYmxlLXAgdCkgKG9y Zy1lbGVtZW50LXRhYmxlLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0IChv cmctaXRlbS1yZSkpIChvcmctZWxlbWVudC1wbGFpbi1saXN0LXBhcnNlciBsaW1pdCBhZmZpbGlh dGVkIChvciBzdHJ1Y3R1cmUgLi4uKSkpICh0IChvcmctZWxlbWVudC1wYXJhZ3JhcGgtcGFyc2Vy IGxpbWl0IGFmZmlsaWF0ZWQpKSkpKSkpCiAgKHNhdmUtZXhjdXJzaW9uIChsZXQgKChjYXNlLWZv bGQtc2VhcmNoIHQpIChyYXctc2Vjb25kYXJ5LXAgKGFuZCBncmFudWxhcml0eSAobm90IChlcSBn cmFudWxhcml0eSAocXVvdGUgb2JqZWN0KSkpKSkpIChjb25kICgoZXEgc3BlY2lhbCAocXVvdGUg aXRlbSkpIChvcmctZWxlbWVudC1pdGVtLXBhcnNlciBsaW1pdCBzdHJ1Y3R1cmUgcmF3LXNlY29u ZGFyeS1wKSkgKChlcSBzcGVjaWFsIChxdW90ZSB0YWJsZS1yb3cpKSAob3JnLWVsZW1lbnQtdGFi bGUtcm93LXBhcnNlciBsaW1pdCkpICgoZXEgc3BlY2lhbCAocXVvdGUgbm9kZS1wcm9wZXJ0eSkp IChvcmctZWxlbWVudC1ub2RlLXByb3BlcnR5LXBhcnNlciBsaW1pdCkpICgobGV0KiAoKG9yZy1j YWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0 LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVn ZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdl eHApKSkgKG9yZy1hdC1oZWFkaW5nLXApKSAob3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFyc2VyIGxp bWl0IHJhdy1zZWNvbmRhcnktcCkpICgoZXEgc3BlY2lhbCAocXVvdGUgc2VjdGlvbikpIChvcmct ZWxlbWVudC1zZWN0aW9uLXBhcnNlciBsaW1pdCkpICgoZXEgc3BlY2lhbCAocXVvdGUgZmlyc3Qt c2VjdGlvbikpIChvcmctZWxlbWVudC1zZWN0aW9uLXBhcnNlciAob3IgKHNhdmUtZXhjdXJzaW9u IChsZXQqIC4uLiAuLi4pKSBsaW1pdCkpKSAoKG5vdCAoYm9scCkpIChvcmctZWxlbWVudC1wYXJh Z3JhcGgtcGFyc2VyIGxpbWl0IChsaXN0IChwb2ludCkpKSkgKChsb29raW5nLWF0IG9yZy1wbGFu bmluZy1vci1jbG9jay1saW5lLXJlKSAoaWYgKGVxdWFsIChtYXRjaC1zdHJpbmcgMSkgb3JnLWNs b2NrLXN0cmluZykgKG9yZy1lbGVtZW50LWNsb2NrLXBhcnNlciBsaW1pdCkgKG9yZy1lbGVtZW50 LXBsYW5uaW5nLXBhcnNlciBsaW1pdCkpKSAoKG9yZy1hdC1oZWFkaW5nLXApIChvcmctZWxlbWVu dC1pbmxpbmV0YXNrLXBhcnNlciBsaW1pdCByYXctc2Vjb25kYXJ5LXApKSAodCAobGV0ICgoYWZm aWxpYXRlZCAob3JnLWVsZW1lbnQtLWNvbGxlY3QtYWZmaWxpYXRlZC1rZXl3b3JkcyBsaW1pdCkp KSAoY29uZCAoKGFuZCAuLi4gLi4uKSAoZ290by1jaGFyIC4uLikgKG9yZy1lbGVtZW50LWtleXdv cmQtcGFyc2VyIGxpbWl0IG5pbCkpICgobG9va2luZy1hdCAiWyAgICAgIF0qXFxcXGJlZ2lue1tB LVphLXowLTkqXSt9XFwoXFxbLio/XFxdXFx8ey4qP31cXCkqWyAgICAgXSokIikgKG9yZy1lbGVt ZW50LWxhdGV4LWVudmlyb25tZW50LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5n LWF0IG9yZy1kcmF3ZXItcmVnZXhwKSAoaWYgLi4uIC4uLiAuLi4pKSAoKGxvb2tpbmctYXQgIlsg ICAgICAgIF0qOlxcKCBcXHwkXFwpIikgKG9yZy1lbGVtZW50LWZpeGVkLXdpZHRoLXBhcnNlciBs aW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJbICAgICBdKiMiKSAoZ290by1jaGFyIC4u LikgKGNvbmQgLi4uIC4uLiAuLi4gLi4uIC4uLiAuLi4pKSAoKGxvb2tpbmctYXQgb3JnLWZvb3Ru b3RlLWRlZmluaXRpb24tcmUpIChvcmctZWxlbWVudC1mb290bm90ZS1kZWZpbml0aW9uLXBhcnNl ciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJbICAgICAgIF0qLVxcezUsXFx9WyAg ICBdKiQiKSAob3JnLWVsZW1lbnQtaG9yaXpvbnRhbC1ydWxlLXBhcnNlciBsaW1pdCBhZmZpbGlh dGVkKSkgKChsb29raW5nLWF0ICIlJSgiKSAob3JnLWVsZW1lbnQtZGlhcnktc2V4cC1wYXJzZXIg bGltaXQgYWZmaWxpYXRlZCkpICgob3JnLWF0LXRhYmxlLXAgdCkgKG9yZy1lbGVtZW50LXRhYmxl LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0IC4uLikgKG9yZy1lbGVtZW50 LXBsYWluLWxpc3QtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQgLi4uKSkgKHQgKG9yZy1lbGVtZW50 LXBhcmFncmFwaC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpKSkpKSkpCiAgb3JnLWVsZW1lbnQt LWN1cnJlbnQtZWxlbWVudCgyNTc3MDYgZWxlbWVudCBuaWwgbmlsKQogIChzZXRxIGVsZW1lbnQg KG9yZy1lbGVtZW50LS1jdXJyZW50LWVsZW1lbnQgZW5kIChxdW90ZSBlbGVtZW50KSBzcGVjaWFs LWZsYWcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpzdHJ1Y3R1cmUgcGFyZW50KSkpCiAgKGlmIGVs ZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50LS1jdXJyZW50LWVsZW1lbnQgZW5k IChxdW90ZSBlbGVtZW50KSBzcGVjaWFsLWZsYWcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpzdHJ1 Y3R1cmUgcGFyZW50KSkpIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgZWxlbWVudCA6cGFyZW50 IHBhcmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQgZWxlbWVudCkpCiAgKHdoaWxlIHQgKGlm IHN5bmNwIChwcm9nbiAoY29uZCAoKD0gKHBvaW50KSBwb3MpICh0aHJvdyAocXVvdGUgZXhpdCkg cGFyZW50KSkgKChvcmctZWxlbWVudC0tY2FjaGUtaW50ZXJydXB0LXAgdGltZS1saW1pdCkgKHRo cm93IChxdW90ZSBpbnRlcnJ1cHQpIG5pbCkpKSkpIChpZiBlbGVtZW50IG5pbCAoc2V0cSBlbGVt ZW50IChvcmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50IGVuZCAocXVvdGUgZWxlbWVudCkgc3Bl Y2lhbC1mbGFnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6c3RydWN0dXJlIHBhcmVudCkpKSAob3Jn LWVsZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQpIChvcmctZWxlbWVu dC0tY2FjaGUtcHV0IGVsZW1lbnQpKSAobGV0ICgoZWxlbS1lbmQgKG9yZy1lbGVtZW50LXByb3Bl cnR5IDplbmQgZWxlbWVudCkpICh0eXBlIChvcmctZWxlbWVudC10eXBlIGVsZW1lbnQpKSkgKGNv bmQgKChhbmQgKDw9IGVsZW0tZW5kIHBvcykgKC89IChwb2ludC1tYXgpIGVsZW0tZW5kKSkgKGdv dG8tY2hhciBlbGVtLWVuZCkpICgobm90IChtZW1xIHR5cGUgb3JnLWVsZW1lbnQtZ3JlYXRlci1l bGVtZW50cykpICh0aHJvdyAocXVvdGUgZXhpdCkgZWxlbWVudCkpICgobGV0ICgoY2JlZyAob3Jn LWVsZW1lbnQtcHJvcGVydHkgOmNvbnRlbnRzLWJlZ2luIGVsZW1lbnQpKSAoY2VuZCAob3JnLWVs ZW1lbnQtcHJvcGVydHkgOmNvbnRlbnRzLWVuZCBlbGVtZW50KSkpIChpZiAob3Igc3luY3AgKGFu ZCBjYmVnIGNlbmQgLi4uIC4uLikpIChwcm9nbiAoZ290by1jaGFyIC4uLikgKHNldHEgbmV4dCBu aWwgc3BlY2lhbC1mbGFnIC4uLiBwYXJlbnQgZWxlbWVudCBlbmQgY2VuZCkpKSkpICh0ICh0aHJv dyAocXVvdGUgZXhpdCkgZWxlbWVudCkpKSkgKHNldHEgZWxlbWVudCBuaWwpKQogIChsZXQgKChl bmQgKG9yIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQpIChzYXZlLWV4Y3Vyc2lv biAobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUt cmVnZXhwIC4uLikgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRs aW5lLXJlZ2V4cC1ib2wgLi4uKSkgKG91dGxpbmUtbmV4dC1oZWFkaW5nKSkgKHBvaW50KSkpKSAo cGFyZW50IGVsZW1lbnQpIHNwZWNpYWwtZmxhZykgKHdoaWxlIHQgKGlmIHN5bmNwIChwcm9nbiAo Y29uZCAoKD0gKHBvaW50KSBwb3MpICh0aHJvdyAocXVvdGUgZXhpdCkgcGFyZW50KSkgKChvcmct ZWxlbWVudC0tY2FjaGUtaW50ZXJydXB0LXAgdGltZS1saW1pdCkgKHRocm93IChxdW90ZSBpbnRl cnJ1cHQpIG5pbCkpKSkpIChpZiBlbGVtZW50IG5pbCAoc2V0cSBlbGVtZW50IChvcmctZWxlbWVu dC0tY3VycmVudC1lbGVtZW50IGVuZCAocXVvdGUgZWxlbWVudCkgc3BlY2lhbC1mbGFnIChvcmct ZWxlbWVudC1wcm9wZXJ0eSA6c3RydWN0dXJlIHBhcmVudCkpKSAob3JnLWVsZW1lbnQtcHV0LXBy b3BlcnR5IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQpIChvcmctZWxlbWVudC0tY2FjaGUtcHV0IGVs ZW1lbnQpKSAobGV0ICgoZWxlbS1lbmQgKG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVu dCkpICh0eXBlIChvcmctZWxlbWVudC10eXBlIGVsZW1lbnQpKSkgKGNvbmQgKChhbmQgKDw9IGVs ZW0tZW5kIHBvcykgKC89IChwb2ludC1tYXgpIGVsZW0tZW5kKSkgKGdvdG8tY2hhciBlbGVtLWVu ZCkpICgobm90IChtZW1xIHR5cGUgb3JnLWVsZW1lbnQtZ3JlYXRlci1lbGVtZW50cykpICh0aHJv dyAocXVvdGUgZXhpdCkgZWxlbWVudCkpICgobGV0ICgoY2JlZyAuLi4pIChjZW5kIC4uLikpIChp ZiAob3Igc3luY3AgLi4uKSAocHJvZ24gLi4uIC4uLikpKSkgKHQgKHRocm93IChxdW90ZSBleGl0 KSBlbGVtZW50KSkpKSAoc2V0cSBlbGVtZW50IG5pbCkpKQogIChsZXQqICgoY2FjaGVkIChhbmQg KG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKG9yZy1lbGVtZW50LS1jYWNoZS1maW5kIHBv cyBuaWwpKSkgKGJlZ2luIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6YmVnaW4gY2FjaGVkKSkgZWxl bWVudCBuZXh0KSAoY29uZCAoKG5vdCBjYWNoZWQpIChpZiAobGV0KiAoKG9yZy1jYWxsZWQtd2l0 aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQt b3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3Jn LW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgKG91 dGxpbmUtcHJldmlvdXMtaGVhZGluZykpIChwcm9nbiAoZm9yd2FyZC1saW5lKSkpIChza2lwLWNo YXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkgKCg9IHBvcyBiZWdpbikg KHRocm93IChxdW90ZSBleGl0KSAoaWYgc3luY3AgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpwYXJl bnQgY2FjaGVkKSBjYWNoZWQpKSkgKChyZS1zZWFyY2gtYmFja3dhcmQgKGxldCogKChvcmctY2Fs bGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1s aW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4 cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhw KSkpIG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wpIGJlZ2luIHQpIChmb3J3YXJkLWxpbmUpIChza2lw LWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkgKHQgKGxldCAoKHVw IGNhY2hlZCkgKHBvcyAoaWYgKD0gLi4uIHBvcykgKDEtIHBvcykgcG9zKSkpIChnb3RvLWNoYXIg KG9yIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6Y29udGVudHMtYmVnaW4gY2FjaGVkKSBiZWdpbikp ICh3aGlsZSAobGV0ICgoZW5kIC4uLikpIChhbmQgKDw9IGVuZCBwb3MpIChnb3RvLWNoYXIgZW5k KSAoc2V0cSB1cCAuLi4pKSkpIChjb25kICgobm90IHVwKSkgKChlb2JwKSAoc2V0cSBlbGVtZW50 IHVwKSkgKHQgKHNldHEgZWxlbWVudCB1cCBuZXh0IChwb2ludCkpKSkpKSkgKGxldCAoKGVuZCAo b3IgKG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkgKHNhdmUtZXhjdXJzaW9uIChs ZXQqICguLi4gLi4uIC4uLiAuLi4pIChvdXRsaW5lLW5leHQtaGVhZGluZykpIChwb2ludCkpKSkg KHBhcmVudCBlbGVtZW50KSBzcGVjaWFsLWZsYWcpICh3aGlsZSB0IChpZiBzeW5jcCAocHJvZ24g KGNvbmQgKCg9IC4uLiBwb3MpICh0aHJvdyAuLi4gcGFyZW50KSkgKChvcmctZWxlbWVudC0tY2Fj aGUtaW50ZXJydXB0LXAgdGltZS1saW1pdCkgKHRocm93IC4uLiBuaWwpKSkpKSAoaWYgZWxlbWVu dCBuaWwgKHNldHEgZWxlbWVudCAob3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVudCBlbmQgKHF1 b3RlIGVsZW1lbnQpIHNwZWNpYWwtZmxhZyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnN0cnVjdHVy ZSBwYXJlbnQpKSkgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBlbGVtZW50IDpwYXJlbnQgcGFy ZW50KSAob3JnLWVsZW1lbnQtLWNhY2hlLXB1dCBlbGVtZW50KSkgKGxldCAoKGVsZW0tZW5kIChv cmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQpKSAodHlwZSAob3JnLWVsZW1lbnQtdHlw ZSBlbGVtZW50KSkpIChjb25kICgoYW5kICg8PSBlbGVtLWVuZCBwb3MpICgvPSAuLi4gZWxlbS1l bmQpKSAoZ290by1jaGFyIGVsZW0tZW5kKSkgKChub3QgKG1lbXEgdHlwZSBvcmctZWxlbWVudC1n cmVhdGVyLWVsZW1lbnRzKSkgKHRocm93IChxdW90ZSBleGl0KSBlbGVtZW50KSkgKChsZXQgKC4u LiAuLi4pIChpZiAuLi4gLi4uKSkpICh0ICh0aHJvdyAocXVvdGUgZXhpdCkgZWxlbWVudCkpKSkg KHNldHEgZWxlbWVudCBuaWwpKSkpCiAgKHNhdmUtcmVzdHJpY3Rpb24gKHdpZGVuKSAoZ290by1j aGFyIHBvcykgKGxldCogKChjYWNoZWQgKGFuZCAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1w KSAob3JnLWVsZW1lbnQtLWNhY2hlLWZpbmQgcG9zIG5pbCkpKSAoYmVnaW4gKG9yZy1lbGVtZW50 LXByb3BlcnR5IDpiZWdpbiBjYWNoZWQpKSBlbGVtZW50IG5leHQpIChjb25kICgobm90IGNhY2hl ZCkgKGlmIChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0 bGluZS1yZWdleHAgLi4uKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3Jn LW91dGxpbmUtcmVnZXhwLWJvbCAuLi4pKSAob3V0bGluZS1wcmV2aW91cy1oZWFkaW5nKSkgKHBy b2duIChmb3J3YXJkLWxpbmUpKSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5u aW5nLW9mLWxpbmUpKSAoKD0gcG9zIGJlZ2luKSAodGhyb3cgKHF1b3RlIGV4aXQpIChpZiBzeW5j cCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhcmVudCBjYWNoZWQpIGNhY2hlZCkpKSAoKHJlLXNl YXJjaC1iYWNrd2FyZCAobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAo b3JnLW91dGxpbmUtcmVnZXhwIC4uLikgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4 cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgLi4uKSkgb3JnLW91dGxpbmUtcmVnZXhwLWJvbCkg YmVnaW4gdCkgKGZvcndhcmQtbGluZSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVn aW5uaW5nLW9mLWxpbmUpKSAodCAobGV0ICgodXAgY2FjaGVkKSAocG9zIChpZiAuLi4gLi4uIHBv cykpKSAoZ290by1jaGFyIChvciAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmNvbnRlbnRzLWJlZ2lu IGNhY2hlZCkgYmVnaW4pKSAod2hpbGUgKGxldCAoLi4uKSAoYW5kIC4uLiAuLi4gLi4uKSkpIChj b25kICgobm90IHVwKSkgKChlb2JwKSAoc2V0cSBlbGVtZW50IHVwKSkgKHQgKHNldHEgZWxlbWVu dCB1cCBuZXh0IC4uLikpKSkpKSAobGV0ICgoZW5kIChvciAob3JnLWVsZW1lbnQtcHJvcGVydHkg OmVuZCBlbGVtZW50KSAoc2F2ZS1leGN1cnNpb24gKGxldCogLi4uIC4uLikgKHBvaW50KSkpKSAo cGFyZW50IGVsZW1lbnQpIHNwZWNpYWwtZmxhZykgKHdoaWxlIHQgKGlmIHN5bmNwIChwcm9nbiAo Y29uZCAoLi4uIC4uLikgKC4uLiAuLi4pKSkpIChpZiBlbGVtZW50IG5pbCAoc2V0cSBlbGVtZW50 IChvcmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50IGVuZCAocXVvdGUgZWxlbWVudCkgc3BlY2lh bC1mbGFnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6c3RydWN0dXJlIHBhcmVudCkpKSAob3JnLWVs ZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQpIChvcmctZWxlbWVudC0t Y2FjaGUtcHV0IGVsZW1lbnQpKSAobGV0ICgoZWxlbS1lbmQgKG9yZy1lbGVtZW50LXByb3BlcnR5 IDplbmQgZWxlbWVudCkpICh0eXBlIChvcmctZWxlbWVudC10eXBlIGVsZW1lbnQpKSkgKGNvbmQg KChhbmQgLi4uIC4uLikgKGdvdG8tY2hhciBlbGVtLWVuZCkpICgobm90IC4uLikgKHRocm93IC4u LiBlbGVtZW50KSkgKChsZXQgLi4uIC4uLikpICh0ICh0aHJvdyAuLi4gZWxlbWVudCkpKSkgKHNl dHEgZWxlbWVudCBuaWwpKSkpKQogIChzYXZlLWV4Y3Vyc2lvbiAoc2F2ZS1yZXN0cmljdGlvbiAo d2lkZW4pIChnb3RvLWNoYXIgcG9zKSAobGV0KiAoKGNhY2hlZCAoYW5kIChvcmctZWxlbWVudC0t Y2FjaGUtYWN0aXZlLXApIChvcmctZWxlbWVudC0tY2FjaGUtZmluZCBwb3MgbmlsKSkpIChiZWdp biAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmJlZ2luIGNhY2hlZCkpIGVsZW1lbnQgbmV4dCkgKGNv bmQgKChub3QgY2FjaGVkKSAoaWYgKGxldCogKC4uLiAuLi4gLi4uIC4uLikgKG91dGxpbmUtcHJl dmlvdXMtaGVhZGluZykpIChwcm9nbiAoZm9yd2FyZC1saW5lKSkpIChza2lwLWNoYXJzLWZvcndh cmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkgKCg9IHBvcyBiZWdpbikgKHRocm93IChx dW90ZSBleGl0KSAoaWYgc3luY3AgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpwYXJlbnQgY2FjaGVk KSBjYWNoZWQpKSkgKChyZS1zZWFyY2gtYmFja3dhcmQgKGxldCogKC4uLiAuLi4gLi4uIC4uLikg b3JnLW91dGxpbmUtcmVnZXhwLWJvbCkgYmVnaW4gdCkgKGZvcndhcmQtbGluZSkgKHNraXAtY2hh cnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAodCAobGV0ICgodXAgY2Fj aGVkKSAocG9zIC4uLikpIChnb3RvLWNoYXIgKG9yIC4uLiBiZWdpbikpICh3aGlsZSAobGV0IC4u LiAuLi4pKSAoY29uZCAoLi4uKSAoLi4uIC4uLikgKHQgLi4uKSkpKSkgKGxldCAoKGVuZCAob3Ig KG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkgKHNhdmUtZXhjdXJzaW9uIC4uLiAu Li4pKSkgKHBhcmVudCBlbGVtZW50KSBzcGVjaWFsLWZsYWcpICh3aGlsZSB0IChpZiBzeW5jcCAo cHJvZ24gKGNvbmQgLi4uIC4uLikpKSAoaWYgZWxlbWVudCBuaWwgKHNldHEgZWxlbWVudCAob3Jn LWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVudCBlbmQgLi4uIHNwZWNpYWwtZmxhZyAuLi4pKSAob3Jn LWVsZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQpIChvcmctZWxlbWVu dC0tY2FjaGUtcHV0IGVsZW1lbnQpKSAobGV0ICgoZWxlbS1lbmQgLi4uKSAodHlwZSAuLi4pKSAo Y29uZCAoLi4uIC4uLikgKC4uLiAuLi4pICguLi4pICh0IC4uLikpKSAoc2V0cSBlbGVtZW50IG5p bCkpKSkpKQogIChjYXRjaCAocXVvdGUgZXhpdCkgKHNhdmUtZXhjdXJzaW9uIChzYXZlLXJlc3Ry aWN0aW9uICh3aWRlbikgKGdvdG8tY2hhciBwb3MpIChsZXQqICgoY2FjaGVkIChhbmQgKG9yZy1l bGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKG9yZy1lbGVtZW50LS1jYWNoZS1maW5kIHBvcyBuaWwp KSkgKGJlZ2luIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6YmVnaW4gY2FjaGVkKSkgZWxlbWVudCBu ZXh0KSAoY29uZCAoKG5vdCBjYWNoZWQpIChpZiAobGV0KiAuLi4gLi4uKSAocHJvZ24gLi4uKSkg KHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAoKD0gcG9z IGJlZ2luKSAodGhyb3cgKHF1b3RlIGV4aXQpIChpZiBzeW5jcCAuLi4gY2FjaGVkKSkpICgocmUt c2VhcmNoLWJhY2t3YXJkIChsZXQqIC4uLiBvcmctb3V0bGluZS1yZWdleHAtYm9sKSBiZWdpbiB0 KSAoZm9yd2FyZC1saW5lKSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmct b2YtbGluZSkpICh0IChsZXQgKC4uLiAuLi4pIChnb3RvLWNoYXIgLi4uKSAod2hpbGUgLi4uKSAo Y29uZCAuLi4gLi4uIC4uLikpKSkgKGxldCAoKGVuZCAob3IgLi4uIC4uLikpIChwYXJlbnQgZWxl bWVudCkgc3BlY2lhbC1mbGFnKSAod2hpbGUgdCAoaWYgc3luY3AgKHByb2duIC4uLikpIChpZiBl bGVtZW50IG5pbCAoc2V0cSBlbGVtZW50IC4uLikgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBl bGVtZW50IDpwYXJlbnQgcGFyZW50KSAob3JnLWVsZW1lbnQtLWNhY2hlLXB1dCBlbGVtZW50KSkg KGxldCAoLi4uIC4uLikgKGNvbmQgLi4uIC4uLiAuLi4gLi4uKSkgKHNldHEgZWxlbWVudCBuaWwp KSkpKSkpCiAgb3JnLWVsZW1lbnQtLXBhcnNlLXRvKDI1NzI4MCkKICAoY29uZCAoKGJvYnApIG5p bCkgKChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGlu ZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4 cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4i IG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3JnLWF0LWhlYWRpbmctcCkpIChiZWdpbm5pbmctb2Yt bGluZSkgKG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNlciAocG9pbnQtbWF4KSB0KSkgKHQgKGlm IChvcmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChwcm9nbiAoaWYgKG5vdCBvcmctZWxlbWVu dC0tY2FjaGUpIChvcmctZWxlbWVudC1jYWNoZS1yZXNldCkgKG9yZy1lbGVtZW50LS1jYWNoZS1z eW5jIChjdXJyZW50LWJ1ZmZlcikgb3JpZ2luKSkpKSAob3JnLWVsZW1lbnQtLXBhcnNlLXRvIG9y aWdpbikpKQogIChsZXQgKChvcmlnaW4gKHBvaW50KSkpIChlbmQtb2YtbGluZSkgKHNraXAtY2hh cnMtYmFja3dhcmQgIiANCVxuIikgKGNvbmQgKChib2JwKSBuaWwpICgobGV0KiAoKG9yZy1jYWxs ZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxp bWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhw KSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHAp KSkgKG9yZy1hdC1oZWFkaW5nLXApKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1o ZWFkbGluZS1wYXJzZXIgKHBvaW50LW1heCkgdCkpICh0IChpZiAob3JnLWVsZW1lbnQtLWNhY2hl LWFjdGl2ZS1wKSAocHJvZ24gKGlmIChub3Qgb3JnLWVsZW1lbnQtLWNhY2hlKSAob3JnLWVsZW1l bnQtY2FjaGUtcmVzZXQpIChvcmctZWxlbWVudC0tY2FjaGUtc3luYyAoY3VycmVudC1idWZmZXIp IG9yaWdpbikpKSkgKG9yZy1lbGVtZW50LS1wYXJzZS10byBvcmlnaW4pKSkpCiAgKHNhdmUtcmVz dHJpY3Rpb24gKHdpZGVuKSAobGV0ICgob3JpZ2luIChwb2ludCkpKSAoZW5kLW9mLWxpbmUpIChz a2lwLWNoYXJzLWJhY2t3YXJkICIgDQlcbiIpIChjb25kICgoYm9icCkgbmlsKSAoKGxldCogKChv cmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3Jn LWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5l LXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUt cmVnZXhwKSkpIChvcmctYXQtaGVhZGluZy1wKSkgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVs ZW1lbnQtaGVhZGxpbmUtcGFyc2VyIChwb2ludC1tYXgpIHQpKSAodCAoaWYgKG9yZy1lbGVtZW50 LS1jYWNoZS1hY3RpdmUtcCkgKHByb2duIChpZiAobm90IG9yZy1lbGVtZW50LS1jYWNoZSkgKG9y Zy1lbGVtZW50LWNhY2hlLXJlc2V0KSAob3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMgLi4uIG9yaWdp bikpKSkgKG9yZy1lbGVtZW50LS1wYXJzZS10byBvcmlnaW4pKSkpKQogIChzYXZlLWV4Y3Vyc2lv biAoc2F2ZS1yZXN0cmljdGlvbiAod2lkZW4pIChsZXQgKChvcmlnaW4gKHBvaW50KSkpIChlbmQt b2YtbGluZSkgKHNraXAtY2hhcnMtYmFja3dhcmQgIiANCVxuIikgKGNvbmQgKChib2JwKSBuaWwp ICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUt cmVnZXhwIC4uLikgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRs aW5lLXJlZ2V4cC1ib2wgLi4uKSkgKG9yZy1hdC1oZWFkaW5nLXApKSAoYmVnaW5uaW5nLW9mLWxp bmUpIChvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIgKHBvaW50LW1heCkgdCkpICh0IChpZiAo b3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAocHJvZ24gKGlmIC4uLiAuLi4gLi4uKSkpIChv cmctZWxlbWVudC0tcGFyc2UtdG8gb3JpZ2luKSkpKSkpCiAgb3JnLWVsZW1lbnQtYXQtcG9pbnQo KQogIChsZXQgKChkcmF3ZXIgKG9yZy1lbGVtZW50LWF0LXBvaW50KSkpIChpZiAoYW5kIChlcSAo b3JnLWVsZW1lbnQtdHlwZSBkcmF3ZXIpIChxdW90ZSBwcm9wZXJ0eS1kcmF3ZXIpKSAobGV0ICgo cCBkcmF3ZXIpKSAod2hpbGUgKGFuZCAoc2V0cSBwIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGFy ZW50IHApKSAobm90IChlcSAuLi4gLi4uKSkpKSAobm90IHApKSkgKHByb2duIChsZXQgKChlbmQg KG9yZy1lbGVtZW50LXByb3BlcnR5IDpjb250ZW50cy1lbmQgZHJhd2VyKSkpIChpZiBlbmQgKHBy b2duIChmb3J3YXJkLWxpbmUpICh3aGlsZSAoPCAuLi4gZW5kKSAoaWYgLi4uIC4uLikgKGZvcndh cmQtbGluZSkpKSkpKSkpCiAgKHdoaWxlIChhbmQgKG51bGwgcGxpc3QpIChyZS1zZWFyY2gtZm9y d2FyZCBvcmctcHJvcGVydHktc3RhcnQtcmUgZW5kIHQpKSAobGV0ICgoZHJhd2VyIChvcmctZWxl bWVudC1hdC1wb2ludCkpKSAoaWYgKGFuZCAoZXEgKG9yZy1lbGVtZW50LXR5cGUgZHJhd2VyKSAo cXVvdGUgcHJvcGVydHktZHJhd2VyKSkgKGxldCAoKHAgZHJhd2VyKSkgKHdoaWxlIChhbmQgKHNl dHEgcCAuLi4pIChub3QgLi4uKSkpIChub3QgcCkpKSAocHJvZ24gKGxldCAoKGVuZCAob3JnLWVs ZW1lbnQtcHJvcGVydHkgOmNvbnRlbnRzLWVuZCBkcmF3ZXIpKSkgKGlmIGVuZCAocHJvZ24gKGZv cndhcmQtbGluZSkgKHdoaWxlIC4uLiAuLi4gLi4uKSkpKSkpKSkKICAoc2F2ZS1leGN1cnNpb24g KHdoaWxlIChhbmQgKG51bGwgcGxpc3QpIChyZS1zZWFyY2gtZm9yd2FyZCBvcmctcHJvcGVydHkt c3RhcnQtcmUgZW5kIHQpKSAobGV0ICgoZHJhd2VyIChvcmctZWxlbWVudC1hdC1wb2ludCkpKSAo aWYgKGFuZCAoZXEgKG9yZy1lbGVtZW50LXR5cGUgZHJhd2VyKSAocXVvdGUgcHJvcGVydHktZHJh d2VyKSkgKGxldCAoKHAgZHJhd2VyKSkgKHdoaWxlIChhbmQgLi4uIC4uLikpIChub3QgcCkpKSAo cHJvZ24gKGxldCAoKGVuZCAuLi4pKSAoaWYgZW5kIChwcm9nbiAuLi4gLi4uKSkpKSkpKSBwbGlz dCkKICAobGV0ICgoZW5kIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1s aW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0 bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91 dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgKG91dGxp bmUtbmV4dC1oZWFkaW5nKSkgKHBvaW50KSkpIHBsaXN0KSAoc2F2ZS1leGN1cnNpb24gKHdoaWxl IChhbmQgKG51bGwgcGxpc3QpIChyZS1zZWFyY2gtZm9yd2FyZCBvcmctcHJvcGVydHktc3RhcnQt cmUgZW5kIHQpKSAobGV0ICgoZHJhd2VyIChvcmctZWxlbWVudC1hdC1wb2ludCkpKSAoaWYgKGFu ZCAoZXEgKG9yZy1lbGVtZW50LXR5cGUgZHJhd2VyKSAocXVvdGUgcHJvcGVydHktZHJhd2VyKSkg KGxldCAoLi4uKSAod2hpbGUgLi4uKSAobm90IHApKSkgKHByb2duIChsZXQgKC4uLikgKGlmIGVu ZCAuLi4pKSkpKSkgcGxpc3QpKQogIChsZXQqICgoY29tcG9uZW50cyAob3JnLWhlYWRpbmctY29t cG9uZW50cykpIChsZXZlbCAobnRoIDEgY29tcG9uZW50cykpICh0b2RvIChudGggMiBjb21wb25l bnRzKSkgKHRvZG8tdHlwZSAoYW5kIHRvZG8gKGlmIChtZW1iZXIgdG9kbyBvcmctZG9uZS1rZXl3 b3JkcykgKHF1b3RlIGRvbmUpIChxdW90ZSB0b2RvKSkpKSAodGFncyAobGV0ICgocmF3LXRhZ3Mg KG50aCA1IGNvbXBvbmVudHMpKSkgKGFuZCByYXctdGFncyAob3JnLXNwbGl0LXN0cmluZyByYXct dGFncyAiOiIpKSkpIChyYXctdmFsdWUgKG9yIChudGggNCBjb21wb25lbnRzKSAiIikpIChjb21t ZW50ZWRwIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIG5pbCkpIChzdHJpbmctbWF0Y2ggKGZvcm1h dCAiXiVzXFwoIFxcfCRcXCkiIG9yZy1jb21tZW50LXN0cmluZykgcmF3LXZhbHVlKSkpIChhcmNo aXZlZHAgKG1lbWJlciBvcmctYXJjaGl2ZS10YWcgdGFncykpIChmb290bm90ZS1zZWN0aW9uLXAg KGFuZCBvcmctZm9vdG5vdGUtc2VjdGlvbiAoc3RyaW5nPSBvcmctZm9vdG5vdGUtc2VjdGlvbiBy YXctdmFsdWUpKSkgKHN0YW5kYXJkLXByb3BzIChsZXQgKChlbmQgKHNhdmUtZXhjdXJzaW9uIChs ZXQqIC4uLiAuLi4pIChwb2ludCkpKSBwbGlzdCkgKHNhdmUtZXhjdXJzaW9uICh3aGlsZSAoYW5k IChudWxsIHBsaXN0KSAocmUtc2VhcmNoLWZvcndhcmQgb3JnLXByb3BlcnR5LXN0YXJ0LXJlIGVu ZCB0KSkgKGxldCAoLi4uKSAoaWYgLi4uIC4uLikpKSBwbGlzdCkpKSAodGltZS1wcm9wcyAoc2F2 ZS1leGN1cnNpb24gKGZvcndhcmQtbGluZSkgKGlmIChsb29raW5nLWF0IG9yZy1wbGFubmluZy1v ci1jbG9jay1saW5lLXJlKSAocHJvZ24gKGxldCAoLi4uIHBsaXN0KSAod2hpbGUgLi4uIC4uLiAu Li4gLi4uKSBwbGlzdCkpKSkpIChiZWdpbiAocG9pbnQpKSAoZW5kIChtaW4gKHNhdmUtZXhjdXJz aW9uIChvcmctZW5kLW9mLXN1YnRyZWUgdCB0KSkgbGltaXQpKSAocG9zLWFmdGVyLWhlYWQgKHBy b2duIChmb3J3YXJkLWxpbmUpIChwb2ludCkpKSAoY29udGVudHMtYmVnaW4gKHNhdmUtZXhjdXJz aW9uIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIiBlbmQpIChhbmQgKC89IChwb2ludCkgZW5k KSAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pKSkpIChjb250ZW50cy1lbmQgKGFuZCBjb250ZW50 cy1iZWdpbiAocHJvZ24gKGdvdG8tY2hhciBlbmQpIChza2lwLWNoYXJzLWJhY2t3YXJkICIgDQlc biIpIChmb3J3YXJkLWxpbmUpIChwb2ludCkpKSkpIChpZiBjb21tZW50ZWRwIChwcm9nbiAobGV0 ICgoY2FzZS1mb2xkLXNlYXJjaCBuaWwpKSAoc2V0cSByYXctdmFsdWUgKHJlcGxhY2UtcmVnZXhw LWluLXN0cmluZyAoY29uY2F0IChyZWdleHAtcXVvdGUgb3JnLWNvbW1lbnQtc3RyaW5nKSAiXFwo PzogXFx8JFxcKSIpICIiIHJhdy12YWx1ZSkpKSkpIChpZiBhcmNoaXZlZHAgKHByb2duIChzZXRx IHRhZ3MgKGRlbGV0ZSBvcmctYXJjaGl2ZS10YWcgdGFncykpKSkgKGxldCAoKGhlYWRsaW5lIChs aXN0IChxdW90ZSBoZWFkbGluZSkgKG5jb25jIChsaXN0IDpyYXctdmFsdWUgcmF3LXZhbHVlIDpi ZWdpbiBiZWdpbiA6ZW5kIGVuZCA6cHJlLWJsYW5rIChpZiAuLi4gMCAuLi4pIDpjb250ZW50cy1i ZWdpbiBjb250ZW50cy1iZWdpbiA6Y29udGVudHMtZW5kIGNvbnRlbnRzLWVuZCA6bGV2ZWwgbGV2 ZWwgOnByaW9yaXR5IChudGggMyBjb21wb25lbnRzKSA6dGFncyB0YWdzIDp0b2RvLWtleXdvcmQg dG9kbyA6dG9kby10eXBlIHRvZG8tdHlwZSA6cG9zdC1ibGFuayAoY291bnQtbGluZXMgLi4uIGVu ZCkgOmZvb3Rub3RlLXNlY3Rpb24tcCBmb290bm90ZS1zZWN0aW9uLXAgOmFyY2hpdmVkcCBhcmNo aXZlZHAgOmNvbW1lbnRlZHAgY29tbWVudGVkcCkgdGltZS1wcm9wcyBzdGFuZGFyZC1wcm9wcykp KSkgKGxldCAoKGFsdC10aXRsZSAob3JnLWVsZW1lbnQtcHJvcGVydHkgOkFMVF9USVRMRSBoZWFk bGluZSkpKSAoaWYgYWx0LXRpdGxlIChwcm9nbiAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGhl YWRsaW5lIDphbHQtdGl0bGUgKGlmIHJhdy1zZWNvbmRhcnktcCBhbHQtdGl0bGUgKG9yZy1lbGVt ZW50LXBhcnNlLXNlY29uZGFyeS1zdHJpbmcgYWx0LXRpdGxlIC4uLiBoZWFkbGluZSkpKSkpKSAo b3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGhlYWRsaW5lIDp0aXRsZSAoaWYgcmF3LXNlY29uZGFy eS1wIHJhdy12YWx1ZSAob3JnLWVsZW1lbnQtcGFyc2Utc2Vjb25kYXJ5LXN0cmluZyByYXctdmFs dWUgKG9yZy1lbGVtZW50LXJlc3RyaWN0aW9uIChxdW90ZSBoZWFkbGluZSkpIGhlYWRsaW5lKSkp KSkKICAoc2F2ZS1leGN1cnNpb24gKGxldCogKChjb21wb25lbnRzIChvcmctaGVhZGluZy1jb21w b25lbnRzKSkgKGxldmVsIChudGggMSBjb21wb25lbnRzKSkgKHRvZG8gKG50aCAyIGNvbXBvbmVu dHMpKSAodG9kby10eXBlIChhbmQgdG9kbyAoaWYgKG1lbWJlciB0b2RvIG9yZy1kb25lLWtleXdv cmRzKSAocXVvdGUgZG9uZSkgKHF1b3RlIHRvZG8pKSkpICh0YWdzIChsZXQgKChyYXctdGFncyAo bnRoIDUgY29tcG9uZW50cykpKSAoYW5kIHJhdy10YWdzIChvcmctc3BsaXQtc3RyaW5nIHJhdy10 YWdzICI6IikpKSkgKHJhdy12YWx1ZSAob3IgKG50aCA0IGNvbXBvbmVudHMpICIiKSkgKGNvbW1l bnRlZHAgKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggbmlsKSkgKHN0cmluZy1tYXRjaCAoZm9ybWF0 ICJeJXNcXCggXFx8JFxcKSIgb3JnLWNvbW1lbnQtc3RyaW5nKSByYXctdmFsdWUpKSkgKGFyY2hp dmVkcCAobWVtYmVyIG9yZy1hcmNoaXZlLXRhZyB0YWdzKSkgKGZvb3Rub3RlLXNlY3Rpb24tcCAo YW5kIG9yZy1mb290bm90ZS1zZWN0aW9uIChzdHJpbmc9IG9yZy1mb290bm90ZS1zZWN0aW9uIHJh dy12YWx1ZSkpKSAoc3RhbmRhcmQtcHJvcHMgKGxldCAoKGVuZCAoc2F2ZS1leGN1cnNpb24gLi4u IC4uLikpIHBsaXN0KSAoc2F2ZS1leGN1cnNpb24gKHdoaWxlIChhbmQgLi4uIC4uLikgKGxldCAu Li4gLi4uKSkgcGxpc3QpKSkgKHRpbWUtcHJvcHMgKHNhdmUtZXhjdXJzaW9uIChmb3J3YXJkLWxp bmUpIChpZiAobG9va2luZy1hdCBvcmctcGxhbm5pbmctb3ItY2xvY2stbGluZS1yZSkgKHByb2du IChsZXQgLi4uIC4uLiBwbGlzdCkpKSkpIChiZWdpbiAocG9pbnQpKSAoZW5kIChtaW4gKHNhdmUt ZXhjdXJzaW9uIChvcmctZW5kLW9mLXN1YnRyZWUgdCB0KSkgbGltaXQpKSAocG9zLWFmdGVyLWhl YWQgKHByb2duIChmb3J3YXJkLWxpbmUpIChwb2ludCkpKSAoY29udGVudHMtYmVnaW4gKHNhdmUt ZXhjdXJzaW9uIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIiBlbmQpIChhbmQgKC89IChwb2lu dCkgZW5kKSAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pKSkpIChjb250ZW50cy1lbmQgKGFuZCBj b250ZW50cy1iZWdpbiAocHJvZ24gKGdvdG8tY2hhciBlbmQpIChza2lwLWNoYXJzLWJhY2t3YXJk ICIgDQlcbiIpIChmb3J3YXJkLWxpbmUpIChwb2ludCkpKSkpIChpZiBjb21tZW50ZWRwIChwcm9n biAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCBuaWwpKSAoc2V0cSByYXctdmFsdWUgKHJlcGxhY2Ut cmVnZXhwLWluLXN0cmluZyAoY29uY2F0IC4uLiAiXFwoPzogXFx8JFxcKSIpICIiIHJhdy12YWx1 ZSkpKSkpIChpZiBhcmNoaXZlZHAgKHByb2duIChzZXRxIHRhZ3MgKGRlbGV0ZSBvcmctYXJjaGl2 ZS10YWcgdGFncykpKSkgKGxldCAoKGhlYWRsaW5lIChsaXN0IChxdW90ZSBoZWFkbGluZSkgKG5j b25jIChsaXN0IDpyYXctdmFsdWUgcmF3LXZhbHVlIDpiZWdpbiBiZWdpbiA6ZW5kIGVuZCA6cHJl LWJsYW5rIC4uLiA6Y29udGVudHMtYmVnaW4gY29udGVudHMtYmVnaW4gOmNvbnRlbnRzLWVuZCBj b250ZW50cy1lbmQgOmxldmVsIGxldmVsIDpwcmlvcml0eSAuLi4gOnRhZ3MgdGFncyA6dG9kby1r ZXl3b3JkIHRvZG8gOnRvZG8tdHlwZSB0b2RvLXR5cGUgOnBvc3QtYmxhbmsgLi4uIDpmb290bm90 ZS1zZWN0aW9uLXAgZm9vdG5vdGUtc2VjdGlvbi1wIDphcmNoaXZlZHAgYXJjaGl2ZWRwIDpjb21t ZW50ZWRwIGNvbW1lbnRlZHApIHRpbWUtcHJvcHMgc3RhbmRhcmQtcHJvcHMpKSkpIChsZXQgKChh bHQtdGl0bGUgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpBTFRfVElUTEUgaGVhZGxpbmUpKSkgKGlm IGFsdC10aXRsZSAocHJvZ24gKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBoZWFkbGluZSA6YWx0 LXRpdGxlIChpZiByYXctc2Vjb25kYXJ5LXAgYWx0LXRpdGxlIC4uLikpKSkpIChvcmctZWxlbWVu dC1wdXQtcHJvcGVydHkgaGVhZGxpbmUgOnRpdGxlIChpZiByYXctc2Vjb25kYXJ5LXAgcmF3LXZh bHVlIChvcmctZWxlbWVudC1wYXJzZS1zZWNvbmRhcnktc3RyaW5nIHJhdy12YWx1ZSAob3JnLWVs ZW1lbnQtcmVzdHJpY3Rpb24gKHF1b3RlIGhlYWRsaW5lKSkgaGVhZGxpbmUpKSkpKSkKICBvcmct ZWxlbWVudC1oZWFkbGluZS1wYXJzZXIoMjU3NzA2IHQpCiAgKGNvbmQgKChlcSBzcGVjaWFsIChx dW90ZSBpdGVtKSkgKG9yZy1lbGVtZW50LWl0ZW0tcGFyc2VyIGxpbWl0IHN0cnVjdHVyZSByYXct c2Vjb25kYXJ5LXApKSAoKGVxIHNwZWNpYWwgKHF1b3RlIHRhYmxlLXJvdykpIChvcmctZWxlbWVu dC10YWJsZS1yb3ctcGFyc2VyIGxpbWl0KSkgKChlcSBzcGVjaWFsIChxdW90ZSBub2RlLXByb3Bl cnR5KSkgKG9yZy1lbGVtZW50LW5vZGUtcHJvcGVydHktcGFyc2VyIGxpbWl0KSkgKChsZXQqICgo b3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9y Zy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGlu ZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5l LXJlZ2V4cCkpKSAob3JnLWF0LWhlYWRpbmctcCkpIChvcmctZWxlbWVudC1oZWFkbGluZS1wYXJz ZXIgbGltaXQgcmF3LXNlY29uZGFyeS1wKSkgKChlcSBzcGVjaWFsIChxdW90ZSBzZWN0aW9uKSkg KG9yZy1lbGVtZW50LXNlY3Rpb24tcGFyc2VyIGxpbWl0KSkgKChlcSBzcGVjaWFsIChxdW90ZSBm aXJzdC1zZWN0aW9uKSkgKG9yZy1lbGVtZW50LXNlY3Rpb24tcGFyc2VyIChvciAoc2F2ZS1leGN1 cnNpb24gKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRs aW5lLXJlZ2V4cCAuLi4pIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmct b3V0bGluZS1yZWdleHAtYm9sIC4uLikpIChvdXRsaW5lLW5leHQtaGVhZGluZykpKSBsaW1pdCkp KSAoKG5vdCAoYm9scCkpIChvcmctZWxlbWVudC1wYXJhZ3JhcGgtcGFyc2VyIGxpbWl0IChsaXN0 IChwb2ludCkpKSkgKChsb29raW5nLWF0IG9yZy1wbGFubmluZy1vci1jbG9jay1saW5lLXJlKSAo aWYgKGVxdWFsIChtYXRjaC1zdHJpbmcgMSkgb3JnLWNsb2NrLXN0cmluZykgKG9yZy1lbGVtZW50 LWNsb2NrLXBhcnNlciBsaW1pdCkgKG9yZy1lbGVtZW50LXBsYW5uaW5nLXBhcnNlciBsaW1pdCkp KSAoKG9yZy1hdC1oZWFkaW5nLXApIChvcmctZWxlbWVudC1pbmxpbmV0YXNrLXBhcnNlciBsaW1p dCByYXctc2Vjb25kYXJ5LXApKSAodCAobGV0ICgoYWZmaWxpYXRlZCAob3JnLWVsZW1lbnQtLWNv bGxlY3QtYWZmaWxpYXRlZC1rZXl3b3JkcyBsaW1pdCkpKSAoY29uZCAoKGFuZCAoY2RyIGFmZmls aWF0ZWQpICg+PSAocG9pbnQpIGxpbWl0KSkgKGdvdG8tY2hhciAoY2FyIGFmZmlsaWF0ZWQpKSAo b3JnLWVsZW1lbnQta2V5d29yZC1wYXJzZXIgbGltaXQgbmlsKSkgKChsb29raW5nLWF0ICJbICAg ICBdKlxcXFxiZWdpbntbQS1aYS16MC05Kl0rfVxcKFxcWy4qP1xcXVxcfHsuKj99XFwpKlsgICAg IF0qJCIpIChvcmctZWxlbWVudC1sYXRleC1lbnZpcm9ubWVudC1wYXJzZXIgbGltaXQgYWZmaWxp YXRlZCkpICgobG9va2luZy1hdCBvcmctZHJhd2VyLXJlZ2V4cCkgKGlmIChlcXVhbCAobWF0Y2gt c3RyaW5nIDEpICJQUk9QRVJUSUVTIikgKG9yZy1lbGVtZW50LXByb3BlcnR5LWRyYXdlci1wYXJz ZXIgbGltaXQgYWZmaWxpYXRlZCkgKG9yZy1lbGVtZW50LWRyYXdlci1wYXJzZXIgbGltaXQgYWZm aWxpYXRlZCkpKSAoKGxvb2tpbmctYXQgIlsgICBdKjpcXCggXFx8JFxcKSIpIChvcmctZWxlbWVu dC1maXhlZC13aWR0aC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiWyAg ICAgXSojIikgKGdvdG8tY2hhciAobWF0Y2gtZW5kIDApKSAoY29uZCAoKGxvb2tpbmctYXQgIlxc KD86IFxcfCRcXCkiKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1jb21tZW50LXBh cnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJcXCtCRUdJTl9cXChcXFMtK1xc KSIpIChiZWdpbm5pbmctb2YtbGluZSkgKGxldCAuLi4gLi4uKSkgKChsb29raW5nLWF0ICJcXCtD QUxMOiIpIChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWJhYmVsLWNhbGwtcGFyc2Vy IGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlxcK0JFR0lOOj8gIikgKGJlZ2lubmlu Zy1vZi1saW5lKSAob3JnLWVsZW1lbnQtZHluYW1pYy1ibG9jay1wYXJzZXIgbGltaXQgYWZmaWxp YXRlZCkpICgobG9va2luZy1hdCAiXFwrXFxTLSs6IikgKGJlZ2lubmluZy1vZi1saW5lKSAob3Jn LWVsZW1lbnQta2V5d29yZC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICh0IChiZWdpbm5pbmct b2YtbGluZSkgKG9yZy1lbGVtZW50LXBhcmFncmFwaC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkp KSkgKChsb29raW5nLWF0IG9yZy1mb290bm90ZS1kZWZpbml0aW9uLXJlKSAob3JnLWVsZW1lbnQt Zm9vdG5vdGUtZGVmaW5pdGlvbi1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1h dCAiWyAgIF0qLVxcezUsXFx9WyAgICBdKiQiKSAob3JnLWVsZW1lbnQtaG9yaXpvbnRhbC1ydWxl LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICIlJSgiKSAob3JnLWVsZW1l bnQtZGlhcnktc2V4cC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgob3JnLWF0LXRhYmxlLXAg dCkgKG9yZy1lbGVtZW50LXRhYmxlLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5n LWF0IChvcmctaXRlbS1yZSkpIChvcmctZWxlbWVudC1wbGFpbi1saXN0LXBhcnNlciBsaW1pdCBh ZmZpbGlhdGVkIChvciBzdHJ1Y3R1cmUgKG9yZy1lbGVtZW50LS1saXN0LXN0cnVjdCBsaW1pdCkp KSkgKHQgKG9yZy1lbGVtZW50LXBhcmFncmFwaC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpKSkp KQogIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIHQpIChyYXctc2Vjb25kYXJ5LXAgKGFuZCBncmFu dWxhcml0eSAobm90IChlcSBncmFudWxhcml0eSAocXVvdGUgb2JqZWN0KSkpKSkpIChjb25kICgo ZXEgc3BlY2lhbCAocXVvdGUgaXRlbSkpIChvcmctZWxlbWVudC1pdGVtLXBhcnNlciBsaW1pdCBz dHJ1Y3R1cmUgcmF3LXNlY29uZGFyeS1wKSkgKChlcSBzcGVjaWFsIChxdW90ZSB0YWJsZS1yb3cp KSAob3JnLWVsZW1lbnQtdGFibGUtcm93LXBhcnNlciBsaW1pdCkpICgoZXEgc3BlY2lhbCAocXVv dGUgbm9kZS1wcm9wZXJ0eSkpIChvcmctZWxlbWVudC1ub2RlLXByb3BlcnR5LXBhcnNlciBsaW1p dCkpICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxp bmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdl eHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJe IiBvcmctb3V0bGluZS1yZWdleHApKSkgKG9yZy1hdC1oZWFkaW5nLXApKSAob3JnLWVsZW1lbnQt aGVhZGxpbmUtcGFyc2VyIGxpbWl0IHJhdy1zZWNvbmRhcnktcCkpICgoZXEgc3BlY2lhbCAocXVv dGUgc2VjdGlvbikpIChvcmctZWxlbWVudC1zZWN0aW9uLXBhcnNlciBsaW1pdCkpICgoZXEgc3Bl Y2lhbCAocXVvdGUgZmlyc3Qtc2VjdGlvbikpIChvcmctZWxlbWVudC1zZWN0aW9uLXBhcnNlciAo b3IgKHNhdmUtZXhjdXJzaW9uIChsZXQqICguLi4gLi4uIC4uLiAuLi4pIChvdXRsaW5lLW5leHQt aGVhZGluZykpKSBsaW1pdCkpKSAoKG5vdCAoYm9scCkpIChvcmctZWxlbWVudC1wYXJhZ3JhcGgt cGFyc2VyIGxpbWl0IChsaXN0IChwb2ludCkpKSkgKChsb29raW5nLWF0IG9yZy1wbGFubmluZy1v ci1jbG9jay1saW5lLXJlKSAoaWYgKGVxdWFsIChtYXRjaC1zdHJpbmcgMSkgb3JnLWNsb2NrLXN0 cmluZykgKG9yZy1lbGVtZW50LWNsb2NrLXBhcnNlciBsaW1pdCkgKG9yZy1lbGVtZW50LXBsYW5u aW5nLXBhcnNlciBsaW1pdCkpKSAoKG9yZy1hdC1oZWFkaW5nLXApIChvcmctZWxlbWVudC1pbmxp bmV0YXNrLXBhcnNlciBsaW1pdCByYXctc2Vjb25kYXJ5LXApKSAodCAobGV0ICgoYWZmaWxpYXRl ZCAob3JnLWVsZW1lbnQtLWNvbGxlY3QtYWZmaWxpYXRlZC1rZXl3b3JkcyBsaW1pdCkpKSAoY29u ZCAoKGFuZCAoY2RyIGFmZmlsaWF0ZWQpICg+PSAuLi4gbGltaXQpKSAoZ290by1jaGFyIChjYXIg YWZmaWxpYXRlZCkpIChvcmctZWxlbWVudC1rZXl3b3JkLXBhcnNlciBsaW1pdCBuaWwpKSAoKGxv b2tpbmctYXQgIlsgICAgICAgIF0qXFxcXGJlZ2lue1tBLVphLXowLTkqXSt9XFwoXFxbLio/XFxd XFx8ey4qP31cXCkqWyAgICAgXSokIikgKG9yZy1lbGVtZW50LWxhdGV4LWVudmlyb25tZW50LXBh cnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0IG9yZy1kcmF3ZXItcmVnZXhwKSAo aWYgKGVxdWFsIC4uLiAiUFJPUEVSVElFUyIpIChvcmctZWxlbWVudC1wcm9wZXJ0eS1kcmF3ZXIt cGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpIChvcmctZWxlbWVudC1kcmF3ZXItcGFyc2VyIGxpbWl0 IGFmZmlsaWF0ZWQpKSkgKChsb29raW5nLWF0ICJbICAgICAgICBdKjpcXCggXFx8JFxcKSIpIChv cmctZWxlbWVudC1maXhlZC13aWR0aC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2lu Zy1hdCAiWyAgICAgXSojIikgKGdvdG8tY2hhciAobWF0Y2gtZW5kIDApKSAoY29uZCAoLi4uIC4u LiAuLi4pICguLi4gLi4uIC4uLikgKC4uLiAuLi4gLi4uKSAoLi4uIC4uLiAuLi4pICguLi4gLi4u IC4uLikgKHQgLi4uIC4uLikpKSAoKGxvb2tpbmctYXQgb3JnLWZvb3Rub3RlLWRlZmluaXRpb24t cmUpIChvcmctZWxlbWVudC1mb290bm90ZS1kZWZpbml0aW9uLXBhcnNlciBsaW1pdCBhZmZpbGlh dGVkKSkgKChsb29raW5nLWF0ICJbICAgXSotXFx7NSxcXH1bICAgIF0qJCIpIChvcmctZWxlbWVu dC1ob3Jpem9udGFsLXJ1bGUtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQg IiUlKCIpIChvcmctZWxlbWVudC1kaWFyeS1zZXhwLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkg KChvcmctYXQtdGFibGUtcCB0KSAob3JnLWVsZW1lbnQtdGFibGUtcGFyc2VyIGxpbWl0IGFmZmls aWF0ZWQpKSAoKGxvb2tpbmctYXQgKG9yZy1pdGVtLXJlKSkgKG9yZy1lbGVtZW50LXBsYWluLWxp c3QtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQgKG9yIHN0cnVjdHVyZSAuLi4pKSkgKHQgKG9yZy1l bGVtZW50LXBhcmFncmFwaC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpKSkpKSkKICAoc2F2ZS1l eGN1cnNpb24gKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggdCkgKHJhdy1zZWNvbmRhcnktcCAoYW5k IGdyYW51bGFyaXR5IChub3QgKGVxIGdyYW51bGFyaXR5IChxdW90ZSBvYmplY3QpKSkpKSkgKGNv bmQgKChlcSBzcGVjaWFsIChxdW90ZSBpdGVtKSkgKG9yZy1lbGVtZW50LWl0ZW0tcGFyc2VyIGxp bWl0IHN0cnVjdHVyZSByYXctc2Vjb25kYXJ5LXApKSAoKGVxIHNwZWNpYWwgKHF1b3RlIHRhYmxl LXJvdykpIChvcmctZWxlbWVudC10YWJsZS1yb3ctcGFyc2VyIGxpbWl0KSkgKChlcSBzcGVjaWFs IChxdW90ZSBub2RlLXByb3BlcnR5KSkgKG9yZy1lbGVtZW50LW5vZGUtcHJvcGVydHktcGFyc2Vy IGxpbWl0KSkgKChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmct b3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5l LXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIChjb25j YXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3JnLWF0LWhlYWRpbmctcCkpIChvcmctZWxl bWVudC1oZWFkbGluZS1wYXJzZXIgbGltaXQgcmF3LXNlY29uZGFyeS1wKSkgKChlcSBzcGVjaWFs IChxdW90ZSBzZWN0aW9uKSkgKG9yZy1lbGVtZW50LXNlY3Rpb24tcGFyc2VyIGxpbWl0KSkgKChl cSBzcGVjaWFsIChxdW90ZSBmaXJzdC1zZWN0aW9uKSkgKG9yZy1lbGVtZW50LXNlY3Rpb24tcGFy c2VyIChvciAoc2F2ZS1leGN1cnNpb24gKGxldCogLi4uIC4uLikpIGxpbWl0KSkpICgobm90IChi b2xwKSkgKG9yZy1lbGVtZW50LXBhcmFncmFwaC1wYXJzZXIgbGltaXQgKGxpc3QgKHBvaW50KSkp KSAoKGxvb2tpbmctYXQgb3JnLXBsYW5uaW5nLW9yLWNsb2NrLWxpbmUtcmUpIChpZiAoZXF1YWwg KG1hdGNoLXN0cmluZyAxKSBvcmctY2xvY2stc3RyaW5nKSAob3JnLWVsZW1lbnQtY2xvY2stcGFy c2VyIGxpbWl0KSAob3JnLWVsZW1lbnQtcGxhbm5pbmctcGFyc2VyIGxpbWl0KSkpICgob3JnLWF0 LWhlYWRpbmctcCkgKG9yZy1lbGVtZW50LWlubGluZXRhc2stcGFyc2VyIGxpbWl0IHJhdy1zZWNv bmRhcnktcCkpICh0IChsZXQgKChhZmZpbGlhdGVkIChvcmctZWxlbWVudC0tY29sbGVjdC1hZmZp bGlhdGVkLWtleXdvcmRzIGxpbWl0KSkpIChjb25kICgoYW5kIC4uLiAuLi4pIChnb3RvLWNoYXIg Li4uKSAob3JnLWVsZW1lbnQta2V5d29yZC1wYXJzZXIgbGltaXQgbmlsKSkgKChsb29raW5nLWF0 ICJbICAgICAgXSpcXFxcYmVnaW57W0EtWmEtejAtOSpdK31cXChcXFsuKj9cXF1cXHx7Lio/fVxc KSpbICAgICBdKiQiKSAob3JnLWVsZW1lbnQtbGF0ZXgtZW52aXJvbm1lbnQtcGFyc2VyIGxpbWl0 IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgb3JnLWRyYXdlci1yZWdleHApIChpZiAuLi4gLi4u IC4uLikpICgobG9va2luZy1hdCAiWyAgICAgICAgXSo6XFwoIFxcfCRcXCkiKSAob3JnLWVsZW1l bnQtZml4ZWQtd2lkdGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlsg ICAgIF0qIyIpIChnb3RvLWNoYXIgLi4uKSAoY29uZCAuLi4gLi4uIC4uLiAuLi4gLi4uIC4uLikp ICgobG9va2luZy1hdCBvcmctZm9vdG5vdGUtZGVmaW5pdGlvbi1yZSkgKG9yZy1lbGVtZW50LWZv b3Rub3RlLWRlZmluaXRpb24tcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQg IlsgICAgICAgXSotXFx7NSxcXH1bICAgIF0qJCIpIChvcmctZWxlbWVudC1ob3Jpem9udGFsLXJ1 bGUtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIiUlKCIpIChvcmctZWxl bWVudC1kaWFyeS1zZXhwLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChvcmctYXQtdGFibGUt cCB0KSAob3JnLWVsZW1lbnQtdGFibGUtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tp bmctYXQgLi4uKSAob3JnLWVsZW1lbnQtcGxhaW4tbGlzdC1wYXJzZXIgbGltaXQgYWZmaWxpYXRl ZCAuLi4pKSAodCAob3JnLWVsZW1lbnQtcGFyYWdyYXBoLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVk KSkpKSkpKSkKICBvcmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50KDI1NzcwNiBlbGVtZW50IG5p bCBuaWwpCiAgKHNldHEgZWxlbWVudCAob3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVudCBlbmQg KHF1b3RlIGVsZW1lbnQpIHNwZWNpYWwtZmxhZyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnN0cnVj dHVyZSBwYXJlbnQpKSkKICAoaWYgZWxlbWVudCBuaWwgKHNldHEgZWxlbWVudCAob3JnLWVsZW1l bnQtLWN1cnJlbnQtZWxlbWVudCBlbmQgKHF1b3RlIGVsZW1lbnQpIHNwZWNpYWwtZmxhZyAob3Jn LWVsZW1lbnQtcHJvcGVydHkgOnN0cnVjdHVyZSBwYXJlbnQpKSkgKG9yZy1lbGVtZW50LXB1dC1w cm9wZXJ0eSBlbGVtZW50IDpwYXJlbnQgcGFyZW50KSAob3JnLWVsZW1lbnQtLWNhY2hlLXB1dCBl bGVtZW50KSkKICAod2hpbGUgdCAoaWYgc3luY3AgKHByb2duIChjb25kICgoPSAocG9pbnQpIHBv cykgKHRocm93IChxdW90ZSBleGl0KSBwYXJlbnQpKSAoKG9yZy1lbGVtZW50LS1jYWNoZS1pbnRl cnJ1cHQtcCB0aW1lLWxpbWl0KSAodGhyb3cgKHF1b3RlIGludGVycnVwdCkgbmlsKSkpKSkgKGlm IGVsZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50LS1jdXJyZW50LWVsZW1lbnQg ZW5kIChxdW90ZSBlbGVtZW50KSBzcGVjaWFsLWZsYWcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpz dHJ1Y3R1cmUgcGFyZW50KSkpIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgZWxlbWVudCA6cGFy ZW50IHBhcmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQgZWxlbWVudCkpIChsZXQgKChlbGVt LWVuZCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSkgKHR5cGUgKG9yZy1lbGVt ZW50LXR5cGUgZWxlbWVudCkpKSAoY29uZCAoKGFuZCAoPD0gZWxlbS1lbmQgcG9zKSAoLz0gKHBv aW50LW1heCkgZWxlbS1lbmQpKSAoZ290by1jaGFyIGVsZW0tZW5kKSkgKChub3QgKG1lbXEgdHlw ZSBvcmctZWxlbWVudC1ncmVhdGVyLWVsZW1lbnRzKSkgKHRocm93IChxdW90ZSBleGl0KSBlbGVt ZW50KSkgKChsZXQgKChjYmVnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6Y29udGVudHMtYmVnaW4g ZWxlbWVudCkpIChjZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6Y29udGVudHMtZW5kIGVsZW1l bnQpKSkgKGlmIChvciBzeW5jcCAoYW5kIGNiZWcgY2VuZCAuLi4gLi4uKSkgKHByb2duIChnb3Rv LWNoYXIgLi4uKSAoc2V0cSBuZXh0IG5pbCBzcGVjaWFsLWZsYWcgLi4uIHBhcmVudCBlbGVtZW50 IGVuZCBjZW5kKSkpKSkgKHQgKHRocm93IChxdW90ZSBleGl0KSBlbGVtZW50KSkpKSAoc2V0cSBl bGVtZW50IG5pbCkpCiAgKGxldCAoKGVuZCAob3IgKG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQg ZWxlbWVudCkgKHNhdmUtZXhjdXJzaW9uIChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQt bGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgLi4uKSAob3V0bGluZS1yZWdleHAgb3JnLW91 dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAuLi4pKSAob3V0bGluZS1uZXh0 LWhlYWRpbmcpKSAocG9pbnQpKSkpIChwYXJlbnQgZWxlbWVudCkgc3BlY2lhbC1mbGFnKSAod2hp bGUgdCAoaWYgc3luY3AgKHByb2duIChjb25kICgoPSAocG9pbnQpIHBvcykgKHRocm93IChxdW90 ZSBleGl0KSBwYXJlbnQpKSAoKG9yZy1lbGVtZW50LS1jYWNoZS1pbnRlcnJ1cHQtcCB0aW1lLWxp bWl0KSAodGhyb3cgKHF1b3RlIGludGVycnVwdCkgbmlsKSkpKSkgKGlmIGVsZW1lbnQgbmlsIChz ZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50LS1jdXJyZW50LWVsZW1lbnQgZW5kIChxdW90ZSBlbGVt ZW50KSBzcGVjaWFsLWZsYWcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpzdHJ1Y3R1cmUgcGFyZW50 KSkpIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgZWxlbWVudCA6cGFyZW50IHBhcmVudCkgKG9y Zy1lbGVtZW50LS1jYWNoZS1wdXQgZWxlbWVudCkpIChsZXQgKChlbGVtLWVuZCAob3JnLWVsZW1l bnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSkgKHR5cGUgKG9yZy1lbGVtZW50LXR5cGUgZWxlbWVu dCkpKSAoY29uZCAoKGFuZCAoPD0gZWxlbS1lbmQgcG9zKSAoLz0gKHBvaW50LW1heCkgZWxlbS1l bmQpKSAoZ290by1jaGFyIGVsZW0tZW5kKSkgKChub3QgKG1lbXEgdHlwZSBvcmctZWxlbWVudC1n cmVhdGVyLWVsZW1lbnRzKSkgKHRocm93IChxdW90ZSBleGl0KSBlbGVtZW50KSkgKChsZXQgKChj YmVnIC4uLikgKGNlbmQgLi4uKSkgKGlmIChvciBzeW5jcCAuLi4pIChwcm9nbiAuLi4gLi4uKSkp KSAodCAodGhyb3cgKHF1b3RlIGV4aXQpIGVsZW1lbnQpKSkpIChzZXRxIGVsZW1lbnQgbmlsKSkp CiAgKGxldCogKChjYWNoZWQgKGFuZCAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAob3Jn LWVsZW1lbnQtLWNhY2hlLWZpbmQgcG9zIG5pbCkpKSAoYmVnaW4gKG9yZy1lbGVtZW50LXByb3Bl cnR5IDpiZWdpbiBjYWNoZWQpKSBlbGVtZW50IG5leHQpIChjb25kICgobm90IGNhY2hlZCkgKGlm IChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1y ZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBv cmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9y Zy1vdXRsaW5lLXJlZ2V4cCkpKSAob3V0bGluZS1wcmV2aW91cy1oZWFkaW5nKSkgKHByb2duIChm b3J3YXJkLWxpbmUpKSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9m LWxpbmUpKSAoKD0gcG9zIGJlZ2luKSAodGhyb3cgKHF1b3RlIGV4aXQpIChpZiBzeW5jcCAob3Jn LWVsZW1lbnQtcHJvcGVydHkgOnBhcmVudCBjYWNoZWQpIGNhY2hlZCkpKSAoKHJlLXNlYXJjaC1i YWNrd2FyZCAobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91 dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1y ZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0 ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgb3JnLW91dGxpbmUtcmVnZXhwLWJvbCkgYmVnaW4g dCkgKGZvcndhcmQtbGluZSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5n LW9mLWxpbmUpKSAodCAobGV0ICgodXAgY2FjaGVkKSAocG9zIChpZiAoPSAuLi4gcG9zKSAoMS0g cG9zKSBwb3MpKSkgKGdvdG8tY2hhciAob3IgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpjb250ZW50 cy1iZWdpbiBjYWNoZWQpIGJlZ2luKSkgKHdoaWxlIChsZXQgKChlbmQgLi4uKSkgKGFuZCAoPD0g ZW5kIHBvcykgKGdvdG8tY2hhciBlbmQpIChzZXRxIHVwIC4uLikpKSkgKGNvbmQgKChub3QgdXAp KSAoKGVvYnApIChzZXRxIGVsZW1lbnQgdXApKSAodCAoc2V0cSBlbGVtZW50IHVwIG5leHQgKHBv aW50KSkpKSkpKSAobGV0ICgoZW5kIChvciAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVt ZW50KSAoc2F2ZS1leGN1cnNpb24gKGxldCogKC4uLiAuLi4gLi4uIC4uLikgKG91dGxpbmUtbmV4 dC1oZWFkaW5nKSkgKHBvaW50KSkpKSAocGFyZW50IGVsZW1lbnQpIHNwZWNpYWwtZmxhZykgKHdo aWxlIHQgKGlmIHN5bmNwIChwcm9nbiAoY29uZCAoKD0gLi4uIHBvcykgKHRocm93IC4uLiBwYXJl bnQpKSAoKG9yZy1lbGVtZW50LS1jYWNoZS1pbnRlcnJ1cHQtcCB0aW1lLWxpbWl0KSAodGhyb3cg Li4uIG5pbCkpKSkpIChpZiBlbGVtZW50IG5pbCAoc2V0cSBlbGVtZW50IChvcmctZWxlbWVudC0t Y3VycmVudC1lbGVtZW50IGVuZCAocXVvdGUgZWxlbWVudCkgc3BlY2lhbC1mbGFnIChvcmctZWxl bWVudC1wcm9wZXJ0eSA6c3RydWN0dXJlIHBhcmVudCkpKSAob3JnLWVsZW1lbnQtcHV0LXByb3Bl cnR5IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQpIChvcmctZWxlbWVudC0tY2FjaGUtcHV0IGVsZW1l bnQpKSAobGV0ICgoZWxlbS1lbmQgKG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkp ICh0eXBlIChvcmctZWxlbWVudC10eXBlIGVsZW1lbnQpKSkgKGNvbmQgKChhbmQgKDw9IGVsZW0t ZW5kIHBvcykgKC89IC4uLiBlbGVtLWVuZCkpIChnb3RvLWNoYXIgZWxlbS1lbmQpKSAoKG5vdCAo bWVtcSB0eXBlIG9yZy1lbGVtZW50LWdyZWF0ZXItZWxlbWVudHMpKSAodGhyb3cgKHF1b3RlIGV4 aXQpIGVsZW1lbnQpKSAoKGxldCAoLi4uIC4uLikgKGlmIC4uLiAuLi4pKSkgKHQgKHRocm93IChx dW90ZSBleGl0KSBlbGVtZW50KSkpKSAoc2V0cSBlbGVtZW50IG5pbCkpKSkKICAoc2F2ZS1yZXN0 cmljdGlvbiAod2lkZW4pIChnb3RvLWNoYXIgcG9zKSAobGV0KiAoKGNhY2hlZCAoYW5kIChvcmct ZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChvcmctZWxlbWVudC0tY2FjaGUtZmluZCBwb3Mgbmls KSkpIChiZWdpbiAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmJlZ2luIGNhY2hlZCkpIGVsZW1lbnQg bmV4dCkgKGNvbmQgKChub3QgY2FjaGVkKSAoaWYgKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGlt aXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAuLi4pIChvdXRsaW5lLXJlZ2V4cCBv cmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIC4uLikpIChvdXRsaW5l LXByZXZpb3VzLWhlYWRpbmcpKSAocHJvZ24gKGZvcndhcmQtbGluZSkpKSAoc2tpcC1jaGFycy1m b3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkpICgoPSBwb3MgYmVnaW4pICh0aHJv dyAocXVvdGUgZXhpdCkgKGlmIHN5bmNwIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGFyZW50IGNh Y2hlZCkgY2FjaGVkKSkpICgocmUtc2VhcmNoLWJhY2t3YXJkIChsZXQqICgob3JnLWNhbGxlZC13 aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgLi4uKSAob3V0bGluZS1y ZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAuLi4pKSBv cmctb3V0bGluZS1yZWdleHAtYm9sKSBiZWdpbiB0KSAoZm9yd2FyZC1saW5lKSAoc2tpcC1jaGFy cy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkpICh0IChsZXQgKCh1cCBjYWNo ZWQpIChwb3MgKGlmIC4uLiAuLi4gcG9zKSkpIChnb3RvLWNoYXIgKG9yIChvcmctZWxlbWVudC1w cm9wZXJ0eSA6Y29udGVudHMtYmVnaW4gY2FjaGVkKSBiZWdpbikpICh3aGlsZSAobGV0ICguLi4p IChhbmQgLi4uIC4uLiAuLi4pKSkgKGNvbmQgKChub3QgdXApKSAoKGVvYnApIChzZXRxIGVsZW1l bnQgdXApKSAodCAoc2V0cSBlbGVtZW50IHVwIG5leHQgLi4uKSkpKSkpIChsZXQgKChlbmQgKG9y IChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQpIChzYXZlLWV4Y3Vyc2lvbiAobGV0 KiAuLi4gLi4uKSAocG9pbnQpKSkpIChwYXJlbnQgZWxlbWVudCkgc3BlY2lhbC1mbGFnKSAod2hp bGUgdCAoaWYgc3luY3AgKHByb2duIChjb25kICguLi4gLi4uKSAoLi4uIC4uLikpKSkgKGlmIGVs ZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50LS1jdXJyZW50LWVsZW1lbnQgZW5k IChxdW90ZSBlbGVtZW50KSBzcGVjaWFsLWZsYWcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpzdHJ1 Y3R1cmUgcGFyZW50KSkpIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgZWxlbWVudCA6cGFyZW50 IHBhcmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQgZWxlbWVudCkpIChsZXQgKChlbGVtLWVu ZCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSkgKHR5cGUgKG9yZy1lbGVtZW50 LXR5cGUgZWxlbWVudCkpKSAoY29uZCAoKGFuZCAuLi4gLi4uKSAoZ290by1jaGFyIGVsZW0tZW5k KSkgKChub3QgLi4uKSAodGhyb3cgLi4uIGVsZW1lbnQpKSAoKGxldCAuLi4gLi4uKSkgKHQgKHRo cm93IC4uLiBlbGVtZW50KSkpKSAoc2V0cSBlbGVtZW50IG5pbCkpKSkpCiAgKHNhdmUtZXhjdXJz aW9uIChzYXZlLXJlc3RyaWN0aW9uICh3aWRlbikgKGdvdG8tY2hhciBwb3MpIChsZXQqICgoY2Fj aGVkIChhbmQgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKG9yZy1lbGVtZW50LS1jYWNo ZS1maW5kIHBvcyBuaWwpKSkgKGJlZ2luIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6YmVnaW4gY2Fj aGVkKSkgZWxlbWVudCBuZXh0KSAoY29uZCAoKG5vdCBjYWNoZWQpIChpZiAobGV0KiAoLi4uIC4u LiAuLi4gLi4uKSAob3V0bGluZS1wcmV2aW91cy1oZWFkaW5nKSkgKHByb2duIChmb3J3YXJkLWxp bmUpKSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAo KD0gcG9zIGJlZ2luKSAodGhyb3cgKHF1b3RlIGV4aXQpIChpZiBzeW5jcCAob3JnLWVsZW1lbnQt cHJvcGVydHkgOnBhcmVudCBjYWNoZWQpIGNhY2hlZCkpKSAoKHJlLXNlYXJjaC1iYWNrd2FyZCAo bGV0KiAoLi4uIC4uLiAuLi4gLi4uKSBvcmctb3V0bGluZS1yZWdleHAtYm9sKSBiZWdpbiB0KSAo Zm9yd2FyZC1saW5lKSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2Yt bGluZSkpICh0IChsZXQgKCh1cCBjYWNoZWQpIChwb3MgLi4uKSkgKGdvdG8tY2hhciAob3IgLi4u IGJlZ2luKSkgKHdoaWxlIChsZXQgLi4uIC4uLikpIChjb25kICguLi4pICguLi4gLi4uKSAodCAu Li4pKSkpKSAobGV0ICgoZW5kIChvciAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50 KSAoc2F2ZS1leGN1cnNpb24gLi4uIC4uLikpKSAocGFyZW50IGVsZW1lbnQpIHNwZWNpYWwtZmxh ZykgKHdoaWxlIHQgKGlmIHN5bmNwIChwcm9nbiAoY29uZCAuLi4gLi4uKSkpIChpZiBlbGVtZW50 IG5pbCAoc2V0cSBlbGVtZW50IChvcmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50IGVuZCAuLi4g c3BlY2lhbC1mbGFnIC4uLikpIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgZWxlbWVudCA6cGFy ZW50IHBhcmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQgZWxlbWVudCkpIChsZXQgKChlbGVt LWVuZCAuLi4pICh0eXBlIC4uLikpIChjb25kICguLi4gLi4uKSAoLi4uIC4uLikgKC4uLikgKHQg Li4uKSkpIChzZXRxIGVsZW1lbnQgbmlsKSkpKSkpCiAgKGNhdGNoIChxdW90ZSBleGl0KSAoc2F2 ZS1leGN1cnNpb24gKHNhdmUtcmVzdHJpY3Rpb24gKHdpZGVuKSAoZ290by1jaGFyIHBvcykgKGxl dCogKChjYWNoZWQgKGFuZCAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAob3JnLWVsZW1l bnQtLWNhY2hlLWZpbmQgcG9zIG5pbCkpKSAoYmVnaW4gKG9yZy1lbGVtZW50LXByb3BlcnR5IDpi ZWdpbiBjYWNoZWQpKSBlbGVtZW50IG5leHQpIChjb25kICgobm90IGNhY2hlZCkgKGlmIChsZXQq IC4uLiAuLi4pIChwcm9nbiAuLi4pKSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIpIChiZWdp bm5pbmctb2YtbGluZSkpICgoPSBwb3MgYmVnaW4pICh0aHJvdyAocXVvdGUgZXhpdCkgKGlmIHN5 bmNwIC4uLiBjYWNoZWQpKSkgKChyZS1zZWFyY2gtYmFja3dhcmQgKGxldCogLi4uIG9yZy1vdXRs aW5lLXJlZ2V4cC1ib2wpIGJlZ2luIHQpIChmb3J3YXJkLWxpbmUpIChza2lwLWNoYXJzLWZvcndh cmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkgKHQgKGxldCAoLi4uIC4uLikgKGdvdG8t Y2hhciAuLi4pICh3aGlsZSAuLi4pIChjb25kIC4uLiAuLi4gLi4uKSkpKSAobGV0ICgoZW5kIChv ciAuLi4gLi4uKSkgKHBhcmVudCBlbGVtZW50KSBzcGVjaWFsLWZsYWcpICh3aGlsZSB0IChpZiBz eW5jcCAocHJvZ24gLi4uKSkgKGlmIGVsZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQgLi4uKSAob3Jn LWVsZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQpIChvcmctZWxlbWVu dC0tY2FjaGUtcHV0IGVsZW1lbnQpKSAobGV0ICguLi4gLi4uKSAoY29uZCAuLi4gLi4uIC4uLiAu Li4pKSAoc2V0cSBlbGVtZW50IG5pbCkpKSkpKSkKICBvcmctZWxlbWVudC0tcGFyc2UtdG8oMjU3 MjgwKQogIChjb25kICgoYm9icCkgbmlsKSAoKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRl ZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUt cmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5l LXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChvcmctYXQtaGVh ZGluZy1wKSkgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFyc2Vy IChwb2ludC1tYXgpIHQpKSAodCAoaWYgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKHBy b2duIChpZiAobm90IG9yZy1lbGVtZW50LS1jYWNoZSkgKG9yZy1lbGVtZW50LWNhY2hlLXJlc2V0 KSAob3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMgKGN1cnJlbnQtYnVmZmVyKSBvcmlnaW4pKSkpIChv cmctZWxlbWVudC0tcGFyc2UtdG8gb3JpZ2luKSkpCiAgKGxldCAoKG9yaWdpbiAocG9pbnQpKSkg KGVuZC1vZi1saW5lKSAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIA0JXG4iKSAoY29uZCAoKGJvYnAp IG5pbCkgKChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0 bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJl Z2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQg Il4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3JnLWF0LWhlYWRpbmctcCkpIChiZWdpbm5pbmct b2YtbGluZSkgKG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNlciAocG9pbnQtbWF4KSB0KSkgKHQg KGlmIChvcmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChwcm9nbiAoaWYgKG5vdCBvcmctZWxl bWVudC0tY2FjaGUpIChvcmctZWxlbWVudC1jYWNoZS1yZXNldCkgKG9yZy1lbGVtZW50LS1jYWNo ZS1zeW5jIChjdXJyZW50LWJ1ZmZlcikgb3JpZ2luKSkpKSAob3JnLWVsZW1lbnQtLXBhcnNlLXRv IG9yaWdpbikpKSkKICAoc2F2ZS1yZXN0cmljdGlvbiAod2lkZW4pIChsZXQgKChvcmlnaW4gKHBv aW50KSkpIChlbmQtb2YtbGluZSkgKHNraXAtY2hhcnMtYmFja3dhcmQgIiANCVxuIikgKGNvbmQg KChib2JwKSBuaWwpICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAo b3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0 bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAo Y29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgKG9yZy1hdC1oZWFkaW5nLXApKSAoYmVn aW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIgKHBvaW50LW1heCkg dCkpICh0IChpZiAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAocHJvZ24gKGlmIChub3Qg b3JnLWVsZW1lbnQtLWNhY2hlKSAob3JnLWVsZW1lbnQtY2FjaGUtcmVzZXQpIChvcmctZWxlbWVu dC0tY2FjaGUtc3luYyAuLi4gb3JpZ2luKSkpKSAob3JnLWVsZW1lbnQtLXBhcnNlLXRvIG9yaWdp bikpKSkpCiAgKHNhdmUtZXhjdXJzaW9uIChzYXZlLXJlc3RyaWN0aW9uICh3aWRlbikgKGxldCAo KG9yaWdpbiAocG9pbnQpKSkgKGVuZC1vZi1saW5lKSAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIA0J XG4iKSAoY29uZCAoKGJvYnApIG5pbCkgKChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQt bGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgLi4uKSAob3V0bGluZS1yZWdleHAgb3JnLW91 dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAuLi4pKSAob3JnLWF0LWhlYWRp bmctcCkpIChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNlciAo cG9pbnQtbWF4KSB0KSkgKHQgKGlmIChvcmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChwcm9n biAoaWYgLi4uIC4uLiAuLi4pKSkgKG9yZy1lbGVtZW50LS1wYXJzZS10byBvcmlnaW4pKSkpKSkK ICBvcmctZWxlbWVudC1hdC1wb2ludCgpCiAgKGxldCAoKGRyYXdlciAob3JnLWVsZW1lbnQtYXQt cG9pbnQpKSkgKGlmIChhbmQgKGVxIChvcmctZWxlbWVudC10eXBlIGRyYXdlcikgKHF1b3RlIHBy b3BlcnR5LWRyYXdlcikpIChsZXQgKChwIGRyYXdlcikpICh3aGlsZSAoYW5kIChzZXRxIHAgKG9y Zy1lbGVtZW50LXByb3BlcnR5IDpwYXJlbnQgcCkpIChub3QgKGVxIC4uLiAuLi4pKSkpIChub3Qg cCkpKSAocHJvZ24gKGxldCAoKGVuZCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmNvbnRlbnRzLWVu ZCBkcmF3ZXIpKSkgKGlmIGVuZCAocHJvZ24gKGZvcndhcmQtbGluZSkgKHdoaWxlICg8IC4uLiBl bmQpIChpZiAuLi4gLi4uKSAoZm9yd2FyZC1saW5lKSkpKSkpKSkKICAod2hpbGUgKGFuZCAobnVs bCBwbGlzdCkgKHJlLXNlYXJjaC1mb3J3YXJkIG9yZy1wcm9wZXJ0eS1zdGFydC1yZSBlbmQgdCkp IChsZXQgKChkcmF3ZXIgKG9yZy1lbGVtZW50LWF0LXBvaW50KSkpIChpZiAoYW5kIChlcSAob3Jn LWVsZW1lbnQtdHlwZSBkcmF3ZXIpIChxdW90ZSBwcm9wZXJ0eS1kcmF3ZXIpKSAobGV0ICgocCBk cmF3ZXIpKSAod2hpbGUgKGFuZCAoc2V0cSBwIC4uLikgKG5vdCAuLi4pKSkgKG5vdCBwKSkpIChw cm9nbiAobGV0ICgoZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6Y29udGVudHMtZW5kIGRyYXdl cikpKSAoaWYgZW5kIChwcm9nbiAoZm9yd2FyZC1saW5lKSAod2hpbGUgLi4uIC4uLiAuLi4pKSkp KSkpKQogIChzYXZlLWV4Y3Vyc2lvbiAod2hpbGUgKGFuZCAobnVsbCBwbGlzdCkgKHJlLXNlYXJj aC1mb3J3YXJkIG9yZy1wcm9wZXJ0eS1zdGFydC1yZSBlbmQgdCkpIChsZXQgKChkcmF3ZXIgKG9y Zy1lbGVtZW50LWF0LXBvaW50KSkpIChpZiAoYW5kIChlcSAob3JnLWVsZW1lbnQtdHlwZSBkcmF3 ZXIpIChxdW90ZSBwcm9wZXJ0eS1kcmF3ZXIpKSAobGV0ICgocCBkcmF3ZXIpKSAod2hpbGUgKGFu ZCAuLi4gLi4uKSkgKG5vdCBwKSkpIChwcm9nbiAobGV0ICgoZW5kIC4uLikpIChpZiBlbmQgKHBy b2duIC4uLiAuLi4pKSkpKSkpIHBsaXN0KQogIChsZXQgKChlbmQgKHNhdmUtZXhjdXJzaW9uIChs ZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdl eHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmct b3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1v dXRsaW5lLXJlZ2V4cCkpKSAob3V0bGluZS1uZXh0LWhlYWRpbmcpKSAocG9pbnQpKSkgcGxpc3Qp IChzYXZlLWV4Y3Vyc2lvbiAod2hpbGUgKGFuZCAobnVsbCBwbGlzdCkgKHJlLXNlYXJjaC1mb3J3 YXJkIG9yZy1wcm9wZXJ0eS1zdGFydC1yZSBlbmQgdCkpIChsZXQgKChkcmF3ZXIgKG9yZy1lbGVt ZW50LWF0LXBvaW50KSkpIChpZiAoYW5kIChlcSAob3JnLWVsZW1lbnQtdHlwZSBkcmF3ZXIpIChx dW90ZSBwcm9wZXJ0eS1kcmF3ZXIpKSAobGV0ICguLi4pICh3aGlsZSAuLi4pIChub3QgcCkpKSAo cHJvZ24gKGxldCAoLi4uKSAoaWYgZW5kIC4uLikpKSkpKSBwbGlzdCkpCiAgKGxldCogKChjb21w b25lbnRzIChvcmctaGVhZGluZy1jb21wb25lbnRzKSkgKGxldmVsIChudGggMSBjb21wb25lbnRz KSkgKHRvZG8gKG50aCAyIGNvbXBvbmVudHMpKSAodG9kby10eXBlIChhbmQgdG9kbyAoaWYgKG1l bWJlciB0b2RvIG9yZy1kb25lLWtleXdvcmRzKSAocXVvdGUgZG9uZSkgKHF1b3RlIHRvZG8pKSkp ICh0YWdzIChsZXQgKChyYXctdGFncyAobnRoIDUgY29tcG9uZW50cykpKSAoYW5kIHJhdy10YWdz IChvcmctc3BsaXQtc3RyaW5nIHJhdy10YWdzICI6IikpKSkgKHJhdy12YWx1ZSAob3IgKG50aCA0 IGNvbXBvbmVudHMpICIiKSkgKGNvbW1lbnRlZHAgKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggbmls KSkgKHN0cmluZy1tYXRjaCAoZm9ybWF0ICJeJXNcXCggXFx8JFxcKSIgb3JnLWNvbW1lbnQtc3Ry aW5nKSByYXctdmFsdWUpKSkgKGFyY2hpdmVkcCAobWVtYmVyIG9yZy1hcmNoaXZlLXRhZyB0YWdz KSkgKGZvb3Rub3RlLXNlY3Rpb24tcCAoYW5kIG9yZy1mb290bm90ZS1zZWN0aW9uIChzdHJpbmc9 IG9yZy1mb290bm90ZS1zZWN0aW9uIHJhdy12YWx1ZSkpKSAoc3RhbmRhcmQtcHJvcHMgKGxldCAo KGVuZCAoc2F2ZS1leGN1cnNpb24gKGxldCogLi4uIC4uLikgKHBvaW50KSkpIHBsaXN0KSAoc2F2 ZS1leGN1cnNpb24gKHdoaWxlIChhbmQgKG51bGwgcGxpc3QpIChyZS1zZWFyY2gtZm9yd2FyZCBv cmctcHJvcGVydHktc3RhcnQtcmUgZW5kIHQpKSAobGV0ICguLi4pIChpZiAuLi4gLi4uKSkpIHBs aXN0KSkpICh0aW1lLXByb3BzIChzYXZlLWV4Y3Vyc2lvbiAoZm9yd2FyZC1saW5lKSAoaWYgKGxv b2tpbmctYXQgb3JnLXBsYW5uaW5nLW9yLWNsb2NrLWxpbmUtcmUpIChwcm9nbiAobGV0ICguLi4g cGxpc3QpICh3aGlsZSAuLi4gLi4uIC4uLiAuLi4pIHBsaXN0KSkpKSkgKGJlZ2luIChwb2ludCkp IChlbmQgKG1pbiAoc2F2ZS1leGN1cnNpb24gKG9yZy1lbmQtb2Ytc3VidHJlZSB0IHQpKSBsaW1p dCkpIChwb3MtYWZ0ZXItaGVhZCAocHJvZ24gKGZvcndhcmQtbGluZSkgKHBvaW50KSkpIChjb250 ZW50cy1iZWdpbiAoc2F2ZS1leGN1cnNpb24gKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iIGVu ZCkgKGFuZCAoLz0gKHBvaW50KSBlbmQpIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpKSkgKGNv bnRlbnRzLWVuZCAoYW5kIGNvbnRlbnRzLWJlZ2luIChwcm9nbiAoZ290by1jaGFyIGVuZCkgKHNr aXAtY2hhcnMtYmFja3dhcmQgIiANCVxuIikgKGZvcndhcmQtbGluZSkgKHBvaW50KSkpKSkgKGlm IGNvbW1lbnRlZHAgKHByb2duIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIG5pbCkpIChzZXRxIHJh dy12YWx1ZSAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nIChjb25jYXQgKHJlZ2V4cC1xdW90ZSBv cmctY29tbWVudC1zdHJpbmcpICJcXCg/OiBcXHwkXFwpIikgIiIgcmF3LXZhbHVlKSkpKSkgKGlm IGFyY2hpdmVkcCAocHJvZ24gKHNldHEgdGFncyAoZGVsZXRlIG9yZy1hcmNoaXZlLXRhZyB0YWdz KSkpKSAobGV0ICgoaGVhZGxpbmUgKGxpc3QgKHF1b3RlIGhlYWRsaW5lKSAobmNvbmMgKGxpc3Qg OnJhdy12YWx1ZSByYXctdmFsdWUgOmJlZ2luIGJlZ2luIDplbmQgZW5kIDpwcmUtYmxhbmsgKGlm IC4uLiAwIC4uLikgOmNvbnRlbnRzLWJlZ2luIGNvbnRlbnRzLWJlZ2luIDpjb250ZW50cy1lbmQg Y29udGVudHMtZW5kIDpsZXZlbCBsZXZlbCA6cHJpb3JpdHkgKG50aCAzIGNvbXBvbmVudHMpIDp0 YWdzIHRhZ3MgOnRvZG8ta2V5d29yZCB0b2RvIDp0b2RvLXR5cGUgdG9kby10eXBlIDpwb3N0LWJs YW5rIChjb3VudC1saW5lcyAuLi4gZW5kKSA6Zm9vdG5vdGUtc2VjdGlvbi1wIGZvb3Rub3RlLXNl Y3Rpb24tcCA6YXJjaGl2ZWRwIGFyY2hpdmVkcCA6Y29tbWVudGVkcCBjb21tZW50ZWRwKSB0aW1l LXByb3BzIHN0YW5kYXJkLXByb3BzKSkpKSAobGV0ICgoYWx0LXRpdGxlIChvcmctZWxlbWVudC1w cm9wZXJ0eSA6QUxUX1RJVExFIGhlYWRsaW5lKSkpIChpZiBhbHQtdGl0bGUgKHByb2duIChvcmct ZWxlbWVudC1wdXQtcHJvcGVydHkgaGVhZGxpbmUgOmFsdC10aXRsZSAoaWYgcmF3LXNlY29uZGFy eS1wIGFsdC10aXRsZSAob3JnLWVsZW1lbnQtcGFyc2Utc2Vjb25kYXJ5LXN0cmluZyBhbHQtdGl0 bGUgLi4uIGhlYWRsaW5lKSkpKSkpIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgaGVhZGxpbmUg OnRpdGxlIChpZiByYXctc2Vjb25kYXJ5LXAgcmF3LXZhbHVlIChvcmctZWxlbWVudC1wYXJzZS1z ZWNvbmRhcnktc3RyaW5nIHJhdy12YWx1ZSAob3JnLWVsZW1lbnQtcmVzdHJpY3Rpb24gKHF1b3Rl IGhlYWRsaW5lKSkgaGVhZGxpbmUpKSkpKQogIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAoKGNvbXBv bmVudHMgKG9yZy1oZWFkaW5nLWNvbXBvbmVudHMpKSAobGV2ZWwgKG50aCAxIGNvbXBvbmVudHMp KSAodG9kbyAobnRoIDIgY29tcG9uZW50cykpICh0b2RvLXR5cGUgKGFuZCB0b2RvIChpZiAobWVt YmVyIHRvZG8gb3JnLWRvbmUta2V5d29yZHMpIChxdW90ZSBkb25lKSAocXVvdGUgdG9kbykpKSkg KHRhZ3MgKGxldCAoKHJhdy10YWdzIChudGggNSBjb21wb25lbnRzKSkpIChhbmQgcmF3LXRhZ3Mg KG9yZy1zcGxpdC1zdHJpbmcgcmF3LXRhZ3MgIjoiKSkpKSAocmF3LXZhbHVlIChvciAobnRoIDQg Y29tcG9uZW50cykgIiIpKSAoY29tbWVudGVkcCAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCBuaWwp KSAoc3RyaW5nLW1hdGNoIChmb3JtYXQgIl4lc1xcKCBcXHwkXFwpIiBvcmctY29tbWVudC1zdHJp bmcpIHJhdy12YWx1ZSkpKSAoYXJjaGl2ZWRwIChtZW1iZXIgb3JnLWFyY2hpdmUtdGFnIHRhZ3Mp KSAoZm9vdG5vdGUtc2VjdGlvbi1wIChhbmQgb3JnLWZvb3Rub3RlLXNlY3Rpb24gKHN0cmluZz0g b3JnLWZvb3Rub3RlLXNlY3Rpb24gcmF3LXZhbHVlKSkpIChzdGFuZGFyZC1wcm9wcyAobGV0ICgo ZW5kIChzYXZlLWV4Y3Vyc2lvbiAuLi4gLi4uKSkgcGxpc3QpIChzYXZlLWV4Y3Vyc2lvbiAod2hp bGUgKGFuZCAuLi4gLi4uKSAobGV0IC4uLiAuLi4pKSBwbGlzdCkpKSAodGltZS1wcm9wcyAoc2F2 ZS1leGN1cnNpb24gKGZvcndhcmQtbGluZSkgKGlmIChsb29raW5nLWF0IG9yZy1wbGFubmluZy1v ci1jbG9jay1saW5lLXJlKSAocHJvZ24gKGxldCAuLi4gLi4uIHBsaXN0KSkpKSkgKGJlZ2luIChw b2ludCkpIChlbmQgKG1pbiAoc2F2ZS1leGN1cnNpb24gKG9yZy1lbmQtb2Ytc3VidHJlZSB0IHQp KSBsaW1pdCkpIChwb3MtYWZ0ZXItaGVhZCAocHJvZ24gKGZvcndhcmQtbGluZSkgKHBvaW50KSkp IChjb250ZW50cy1iZWdpbiAoc2F2ZS1leGN1cnNpb24gKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0J XG4iIGVuZCkgKGFuZCAoLz0gKHBvaW50KSBlbmQpIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikp KSkgKGNvbnRlbnRzLWVuZCAoYW5kIGNvbnRlbnRzLWJlZ2luIChwcm9nbiAoZ290by1jaGFyIGVu ZCkgKHNraXAtY2hhcnMtYmFja3dhcmQgIiANCVxuIikgKGZvcndhcmQtbGluZSkgKHBvaW50KSkp KSkgKGlmIGNvbW1lbnRlZHAgKHByb2duIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIG5pbCkpIChz ZXRxIHJhdy12YWx1ZSAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nIChjb25jYXQgLi4uICJcXCg/ OiBcXHwkXFwpIikgIiIgcmF3LXZhbHVlKSkpKSkgKGlmIGFyY2hpdmVkcCAocHJvZ24gKHNldHEg dGFncyAoZGVsZXRlIG9yZy1hcmNoaXZlLXRhZyB0YWdzKSkpKSAobGV0ICgoaGVhZGxpbmUgKGxp c3QgKHF1b3RlIGhlYWRsaW5lKSAobmNvbmMgKGxpc3QgOnJhdy12YWx1ZSByYXctdmFsdWUgOmJl Z2luIGJlZ2luIDplbmQgZW5kIDpwcmUtYmxhbmsgLi4uIDpjb250ZW50cy1iZWdpbiBjb250ZW50 cy1iZWdpbiA6Y29udGVudHMtZW5kIGNvbnRlbnRzLWVuZCA6bGV2ZWwgbGV2ZWwgOnByaW9yaXR5 IC4uLiA6dGFncyB0YWdzIDp0b2RvLWtleXdvcmQgdG9kbyA6dG9kby10eXBlIHRvZG8tdHlwZSA6 cG9zdC1ibGFuayAuLi4gOmZvb3Rub3RlLXNlY3Rpb24tcCBmb290bm90ZS1zZWN0aW9uLXAgOmFy Y2hpdmVkcCBhcmNoaXZlZHAgOmNvbW1lbnRlZHAgY29tbWVudGVkcCkgdGltZS1wcm9wcyBzdGFu ZGFyZC1wcm9wcykpKSkgKGxldCAoKGFsdC10aXRsZSAob3JnLWVsZW1lbnQtcHJvcGVydHkgOkFM VF9USVRMRSBoZWFkbGluZSkpKSAoaWYgYWx0LXRpdGxlIChwcm9nbiAob3JnLWVsZW1lbnQtcHV0 LXByb3BlcnR5IGhlYWRsaW5lIDphbHQtdGl0bGUgKGlmIHJhdy1zZWNvbmRhcnktcCBhbHQtdGl0 bGUgLi4uKSkpKSkgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBoZWFkbGluZSA6dGl0bGUgKGlm IHJhdy1zZWNvbmRhcnktcCByYXctdmFsdWUgKG9yZy1lbGVtZW50LXBhcnNlLXNlY29uZGFyeS1z dHJpbmcgcmF3LXZhbHVlIChvcmctZWxlbWVudC1yZXN0cmljdGlvbiAocXVvdGUgaGVhZGxpbmUp KSBoZWFkbGluZSkpKSkpKQogIG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNlcigyNTc3MDYgdCkK ICAoY29uZCAoKGVxIHNwZWNpYWwgKHF1b3RlIGl0ZW0pKSAob3JnLWVsZW1lbnQtaXRlbS1wYXJz ZXIgbGltaXQgc3RydWN0dXJlIHJhdy1zZWNvbmRhcnktcCkpICgoZXEgc3BlY2lhbCAocXVvdGUg dGFibGUtcm93KSkgKG9yZy1lbGVtZW50LXRhYmxlLXJvdy1wYXJzZXIgbGltaXQpKSAoKGVxIHNw ZWNpYWwgKHF1b3RlIG5vZGUtcHJvcGVydHkpKSAob3JnLWVsZW1lbnQtbm9kZS1wcm9wZXJ0eS1w YXJzZXIgbGltaXQpKSAoKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkg KG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91 dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wg KGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChvcmctYXQtaGVhZGluZy1wKSkgKG9y Zy1lbGVtZW50LWhlYWRsaW5lLXBhcnNlciBsaW1pdCByYXctc2Vjb25kYXJ5LXApKSAoKGVxIHNw ZWNpYWwgKHF1b3RlIHNlY3Rpb24pKSAob3JnLWVsZW1lbnQtc2VjdGlvbi1wYXJzZXIgbGltaXQp KSAoKGVxIHNwZWNpYWwgKHF1b3RlIGZpcnN0LXNlY3Rpb24pKSAob3JnLWVsZW1lbnQtc2VjdGlv bi1wYXJzZXIgKG9yIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1p dGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIC4uLikgKG91dGxpbmUtcmVnZXhwIG9y Zy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgLi4uKSkgKG91dGxpbmUt bmV4dC1oZWFkaW5nKSkpIGxpbWl0KSkpICgobm90IChib2xwKSkgKG9yZy1lbGVtZW50LXBhcmFn cmFwaC1wYXJzZXIgbGltaXQgKGxpc3QgKHBvaW50KSkpKSAoKGxvb2tpbmctYXQgb3JnLXBsYW5u aW5nLW9yLWNsb2NrLWxpbmUtcmUpIChpZiAoZXF1YWwgKG1hdGNoLXN0cmluZyAxKSBvcmctY2xv Y2stc3RyaW5nKSAob3JnLWVsZW1lbnQtY2xvY2stcGFyc2VyIGxpbWl0KSAob3JnLWVsZW1lbnQt cGxhbm5pbmctcGFyc2VyIGxpbWl0KSkpICgob3JnLWF0LWhlYWRpbmctcCkgKG9yZy1lbGVtZW50 LWlubGluZXRhc2stcGFyc2VyIGxpbWl0IHJhdy1zZWNvbmRhcnktcCkpICh0IChsZXQgKChhZmZp bGlhdGVkIChvcmctZWxlbWVudC0tY29sbGVjdC1hZmZpbGlhdGVkLWtleXdvcmRzIGxpbWl0KSkp IChjb25kICgoYW5kIChjZHIgYWZmaWxpYXRlZCkgKD49IChwb2ludCkgbGltaXQpKSAoZ290by1j aGFyIChjYXIgYWZmaWxpYXRlZCkpIChvcmctZWxlbWVudC1rZXl3b3JkLXBhcnNlciBsaW1pdCBu aWwpKSAoKGxvb2tpbmctYXQgIlsgICAgIF0qXFxcXGJlZ2lue1tBLVphLXowLTkqXSt9XFwoXFxb Lio/XFxdXFx8ey4qP31cXCkqWyAgICAgXSokIikgKG9yZy1lbGVtZW50LWxhdGV4LWVudmlyb25t ZW50LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0IG9yZy1kcmF3ZXItcmVn ZXhwKSAoaWYgKGVxdWFsIChtYXRjaC1zdHJpbmcgMSkgIlBST1BFUlRJRVMiKSAob3JnLWVsZW1l bnQtcHJvcGVydHktZHJhd2VyLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSAob3JnLWVsZW1lbnQt ZHJhd2VyLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkpICgobG9va2luZy1hdCAiWyAgIF0qOlxc KCBcXHwkXFwpIikgKG9yZy1lbGVtZW50LWZpeGVkLXdpZHRoLXBhcnNlciBsaW1pdCBhZmZpbGlh dGVkKSkgKChsb29raW5nLWF0ICJbICAgICBdKiMiKSAoZ290by1jaGFyIChtYXRjaC1lbmQgMCkp IChjb25kICgobG9va2luZy1hdCAiXFwoPzogXFx8JFxcKSIpIChiZWdpbm5pbmctb2YtbGluZSkg KG9yZy1lbGVtZW50LWNvbW1lbnQtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmct YXQgIlxcK0JFR0lOX1xcKFxcUy0rXFwpIikgKGJlZ2lubmluZy1vZi1saW5lKSAobGV0IC4uLiAu Li4pKSAoKGxvb2tpbmctYXQgIlxcK0NBTEw6IikgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVs ZW1lbnQtYmFiZWwtY2FsbC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAi XFwrQkVHSU46PyAiKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1keW5hbWljLWJs b2NrLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJcXCtcXFMtKzoiKSAo YmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1rZXl3b3JkLXBhcnNlciBsaW1pdCBhZmZp bGlhdGVkKSkgKHQgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQtcGFyYWdyYXBoLXBh cnNlciBsaW1pdCBhZmZpbGlhdGVkKSkpKSAoKGxvb2tpbmctYXQgb3JnLWZvb3Rub3RlLWRlZmlu aXRpb24tcmUpIChvcmctZWxlbWVudC1mb290bm90ZS1kZWZpbml0aW9uLXBhcnNlciBsaW1pdCBh ZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJbICAgXSotXFx7NSxcXH1bICAgIF0qJCIpIChvcmct ZWxlbWVudC1ob3Jpem9udGFsLXJ1bGUtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tp bmctYXQgIiUlKCIpIChvcmctZWxlbWVudC1kaWFyeS1zZXhwLXBhcnNlciBsaW1pdCBhZmZpbGlh dGVkKSkgKChvcmctYXQtdGFibGUtcCB0KSAob3JnLWVsZW1lbnQtdGFibGUtcGFyc2VyIGxpbWl0 IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgKG9yZy1pdGVtLXJlKSkgKG9yZy1lbGVtZW50LXBs YWluLWxpc3QtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQgKG9yIHN0cnVjdHVyZSAob3JnLWVsZW1l bnQtLWxpc3Qtc3RydWN0IGxpbWl0KSkpKSAodCAob3JnLWVsZW1lbnQtcGFyYWdyYXBoLXBhcnNl ciBsaW1pdCBhZmZpbGlhdGVkKSkpKSkpCiAgKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggdCkgKHJh dy1zZWNvbmRhcnktcCAoYW5kIGdyYW51bGFyaXR5IChub3QgKGVxIGdyYW51bGFyaXR5IChxdW90 ZSBvYmplY3QpKSkpKSkgKGNvbmQgKChlcSBzcGVjaWFsIChxdW90ZSBpdGVtKSkgKG9yZy1lbGVt ZW50LWl0ZW0tcGFyc2VyIGxpbWl0IHN0cnVjdHVyZSByYXctc2Vjb25kYXJ5LXApKSAoKGVxIHNw ZWNpYWwgKHF1b3RlIHRhYmxlLXJvdykpIChvcmctZWxlbWVudC10YWJsZS1yb3ctcGFyc2VyIGxp bWl0KSkgKChlcSBzcGVjaWFsIChxdW90ZSBub2RlLXByb3BlcnR5KSkgKG9yZy1lbGVtZW50LW5v ZGUtcHJvcGVydHktcGFyc2VyIGxpbWl0KSkgKChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0 ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5l LXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGlu ZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3JnLWF0LWhl YWRpbmctcCkpIChvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIgbGltaXQgcmF3LXNlY29uZGFy eS1wKSkgKChlcSBzcGVjaWFsIChxdW90ZSBzZWN0aW9uKSkgKG9yZy1lbGVtZW50LXNlY3Rpb24t cGFyc2VyIGxpbWl0KSkgKChlcSBzcGVjaWFsIChxdW90ZSBmaXJzdC1zZWN0aW9uKSkgKG9yZy1l bGVtZW50LXNlY3Rpb24tcGFyc2VyIChvciAoc2F2ZS1leGN1cnNpb24gKGxldCogKC4uLiAuLi4g Li4uIC4uLikgKG91dGxpbmUtbmV4dC1oZWFkaW5nKSkpIGxpbWl0KSkpICgobm90IChib2xwKSkg KG9yZy1lbGVtZW50LXBhcmFncmFwaC1wYXJzZXIgbGltaXQgKGxpc3QgKHBvaW50KSkpKSAoKGxv b2tpbmctYXQgb3JnLXBsYW5uaW5nLW9yLWNsb2NrLWxpbmUtcmUpIChpZiAoZXF1YWwgKG1hdGNo LXN0cmluZyAxKSBvcmctY2xvY2stc3RyaW5nKSAob3JnLWVsZW1lbnQtY2xvY2stcGFyc2VyIGxp bWl0KSAob3JnLWVsZW1lbnQtcGxhbm5pbmctcGFyc2VyIGxpbWl0KSkpICgob3JnLWF0LWhlYWRp bmctcCkgKG9yZy1lbGVtZW50LWlubGluZXRhc2stcGFyc2VyIGxpbWl0IHJhdy1zZWNvbmRhcnkt cCkpICh0IChsZXQgKChhZmZpbGlhdGVkIChvcmctZWxlbWVudC0tY29sbGVjdC1hZmZpbGlhdGVk LWtleXdvcmRzIGxpbWl0KSkpIChjb25kICgoYW5kIChjZHIgYWZmaWxpYXRlZCkgKD49IC4uLiBs aW1pdCkpIChnb3RvLWNoYXIgKGNhciBhZmZpbGlhdGVkKSkgKG9yZy1lbGVtZW50LWtleXdvcmQt cGFyc2VyIGxpbWl0IG5pbCkpICgobG9va2luZy1hdCAiWyAgICAgICAgXSpcXFxcYmVnaW57W0Et WmEtejAtOSpdK31cXChcXFsuKj9cXF1cXHx7Lio/fVxcKSpbICAgICBdKiQiKSAob3JnLWVsZW1l bnQtbGF0ZXgtZW52aXJvbm1lbnQtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmct YXQgb3JnLWRyYXdlci1yZWdleHApIChpZiAoZXF1YWwgLi4uICJQUk9QRVJUSUVTIikgKG9yZy1l bGVtZW50LXByb3BlcnR5LWRyYXdlci1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkgKG9yZy1lbGVt ZW50LWRyYXdlci1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpKSAoKGxvb2tpbmctYXQgIlsgICAg ICAgIF0qOlxcKCBcXHwkXFwpIikgKG9yZy1lbGVtZW50LWZpeGVkLXdpZHRoLXBhcnNlciBsaW1p dCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJbICAgICBdKiMiKSAoZ290by1jaGFyIChtYXRj aC1lbmQgMCkpIChjb25kICguLi4gLi4uIC4uLikgKC4uLiAuLi4gLi4uKSAoLi4uIC4uLiAuLi4p ICguLi4gLi4uIC4uLikgKC4uLiAuLi4gLi4uKSAodCAuLi4gLi4uKSkpICgobG9va2luZy1hdCBv cmctZm9vdG5vdGUtZGVmaW5pdGlvbi1yZSkgKG9yZy1lbGVtZW50LWZvb3Rub3RlLWRlZmluaXRp b24tcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlsgICBdKi1cXHs1LFxc fVsgICAgXSokIikgKG9yZy1lbGVtZW50LWhvcml6b250YWwtcnVsZS1wYXJzZXIgbGltaXQgYWZm aWxpYXRlZCkpICgobG9va2luZy1hdCAiJSUoIikgKG9yZy1lbGVtZW50LWRpYXJ5LXNleHAtcGFy c2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKG9yZy1hdC10YWJsZS1wIHQpIChvcmctZWxlbWVudC10 YWJsZS1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAob3JnLWl0ZW0tcmUp KSAob3JnLWVsZW1lbnQtcGxhaW4tbGlzdC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCAob3Igc3Ry dWN0dXJlIC4uLikpKSAodCAob3JnLWVsZW1lbnQtcGFyYWdyYXBoLXBhcnNlciBsaW1pdCBhZmZp bGlhdGVkKSkpKSkpKQogIChzYXZlLWV4Y3Vyc2lvbiAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCB0 KSAocmF3LXNlY29uZGFyeS1wIChhbmQgZ3JhbnVsYXJpdHkgKG5vdCAoZXEgZ3JhbnVsYXJpdHkg KHF1b3RlIG9iamVjdCkpKSkpKSAoY29uZCAoKGVxIHNwZWNpYWwgKHF1b3RlIGl0ZW0pKSAob3Jn LWVsZW1lbnQtaXRlbS1wYXJzZXIgbGltaXQgc3RydWN0dXJlIHJhdy1zZWNvbmRhcnktcCkpICgo ZXEgc3BlY2lhbCAocXVvdGUgdGFibGUtcm93KSkgKG9yZy1lbGVtZW50LXRhYmxlLXJvdy1wYXJz ZXIgbGltaXQpKSAoKGVxIHNwZWNpYWwgKHF1b3RlIG5vZGUtcHJvcGVydHkpKSAob3JnLWVsZW1l bnQtbm9kZS1wcm9wZXJ0eS1wYXJzZXIgbGltaXQpKSAoKGxldCogKChvcmctY2FsbGVkLXdpdGgt bGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91 dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1v dXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChvcmct YXQtaGVhZGluZy1wKSkgKG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNlciBsaW1pdCByYXctc2Vj b25kYXJ5LXApKSAoKGVxIHNwZWNpYWwgKHF1b3RlIHNlY3Rpb24pKSAob3JnLWVsZW1lbnQtc2Vj dGlvbi1wYXJzZXIgbGltaXQpKSAoKGVxIHNwZWNpYWwgKHF1b3RlIGZpcnN0LXNlY3Rpb24pKSAo b3JnLWVsZW1lbnQtc2VjdGlvbi1wYXJzZXIgKG9yIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAuLi4g Li4uKSkgbGltaXQpKSkgKChub3QgKGJvbHApKSAob3JnLWVsZW1lbnQtcGFyYWdyYXBoLXBhcnNl ciBsaW1pdCAobGlzdCAocG9pbnQpKSkpICgobG9va2luZy1hdCBvcmctcGxhbm5pbmctb3ItY2xv Y2stbGluZS1yZSkgKGlmIChlcXVhbCAobWF0Y2gtc3RyaW5nIDEpIG9yZy1jbG9jay1zdHJpbmcp IChvcmctZWxlbWVudC1jbG9jay1wYXJzZXIgbGltaXQpIChvcmctZWxlbWVudC1wbGFubmluZy1w YXJzZXIgbGltaXQpKSkgKChvcmctYXQtaGVhZGluZy1wKSAob3JnLWVsZW1lbnQtaW5saW5ldGFz ay1wYXJzZXIgbGltaXQgcmF3LXNlY29uZGFyeS1wKSkgKHQgKGxldCAoKGFmZmlsaWF0ZWQgKG9y Zy1lbGVtZW50LS1jb2xsZWN0LWFmZmlsaWF0ZWQta2V5d29yZHMgbGltaXQpKSkgKGNvbmQgKChh bmQgLi4uIC4uLikgKGdvdG8tY2hhciAuLi4pIChvcmctZWxlbWVudC1rZXl3b3JkLXBhcnNlciBs aW1pdCBuaWwpKSAoKGxvb2tpbmctYXQgIlsgICAgICBdKlxcXFxiZWdpbntbQS1aYS16MC05Kl0r fVxcKFxcWy4qP1xcXVxcfHsuKj99XFwpKlsgICAgIF0qJCIpIChvcmctZWxlbWVudC1sYXRleC1l bnZpcm9ubWVudC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCBvcmctZHJh d2VyLXJlZ2V4cCkgKGlmIC4uLiAuLi4gLi4uKSkgKChsb29raW5nLWF0ICJbICAgICAgICBdKjpc XCggXFx8JFxcKSIpIChvcmctZWxlbWVudC1maXhlZC13aWR0aC1wYXJzZXIgbGltaXQgYWZmaWxp YXRlZCkpICgobG9va2luZy1hdCAiWyAgICAgXSojIikgKGdvdG8tY2hhciAuLi4pIChjb25kIC4u LiAuLi4gLi4uIC4uLiAuLi4gLi4uKSkgKChsb29raW5nLWF0IG9yZy1mb290bm90ZS1kZWZpbml0 aW9uLXJlKSAob3JnLWVsZW1lbnQtZm9vdG5vdGUtZGVmaW5pdGlvbi1wYXJzZXIgbGltaXQgYWZm aWxpYXRlZCkpICgobG9va2luZy1hdCAiWyAgICAgICBdKi1cXHs1LFxcfVsgICAgXSokIikgKG9y Zy1lbGVtZW50LWhvcml6b250YWwtcnVsZS1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9v a2luZy1hdCAiJSUoIikgKG9yZy1lbGVtZW50LWRpYXJ5LXNleHAtcGFyc2VyIGxpbWl0IGFmZmls aWF0ZWQpKSAoKG9yZy1hdC10YWJsZS1wIHQpIChvcmctZWxlbWVudC10YWJsZS1wYXJzZXIgbGlt aXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAuLi4pIChvcmctZWxlbWVudC1wbGFpbi1saXN0 LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkIC4uLikpICh0IChvcmctZWxlbWVudC1wYXJhZ3JhcGgt cGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSkpKSkpKQogIG9yZy1lbGVtZW50LS1jdXJyZW50LWVs ZW1lbnQoMjU3NzA2IGVsZW1lbnQgbmlsIG5pbCkKICAoc2V0cSBlbGVtZW50IChvcmctZWxlbWVu dC0tY3VycmVudC1lbGVtZW50IGVuZCAocXVvdGUgZWxlbWVudCkgc3BlY2lhbC1mbGFnIChvcmct ZWxlbWVudC1wcm9wZXJ0eSA6c3RydWN0dXJlIHBhcmVudCkpKQogIChpZiBlbGVtZW50IG5pbCAo c2V0cSBlbGVtZW50IChvcmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50IGVuZCAocXVvdGUgZWxl bWVudCkgc3BlY2lhbC1mbGFnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6c3RydWN0dXJlIHBhcmVu dCkpKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQpIChv cmctZWxlbWVudC0tY2FjaGUtcHV0IGVsZW1lbnQpKQogICh3aGlsZSB0IChpZiBzeW5jcCAocHJv Z24gKGNvbmQgKCg9IChwb2ludCkgcG9zKSAodGhyb3cgKHF1b3RlIGV4aXQpIHBhcmVudCkpICgo b3JnLWVsZW1lbnQtLWNhY2hlLWludGVycnVwdC1wIHRpbWUtbGltaXQpICh0aHJvdyAocXVvdGUg aW50ZXJydXB0KSBuaWwpKSkpKSAoaWYgZWxlbWVudCBuaWwgKHNldHEgZWxlbWVudCAob3JnLWVs ZW1lbnQtLWN1cnJlbnQtZWxlbWVudCBlbmQgKHF1b3RlIGVsZW1lbnQpIHNwZWNpYWwtZmxhZyAo b3JnLWVsZW1lbnQtcHJvcGVydHkgOnN0cnVjdHVyZSBwYXJlbnQpKSkgKG9yZy1lbGVtZW50LXB1 dC1wcm9wZXJ0eSBlbGVtZW50IDpwYXJlbnQgcGFyZW50KSAob3JnLWVsZW1lbnQtLWNhY2hlLXB1 dCBlbGVtZW50KSkgKGxldCAoKGVsZW0tZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVs ZW1lbnQpKSAodHlwZSAob3JnLWVsZW1lbnQtdHlwZSBlbGVtZW50KSkpIChjb25kICgoYW5kICg8 PSBlbGVtLWVuZCBwb3MpICgvPSAocG9pbnQtbWF4KSBlbGVtLWVuZCkpIChnb3RvLWNoYXIgZWxl bS1lbmQpKSAoKG5vdCAobWVtcSB0eXBlIG9yZy1lbGVtZW50LWdyZWF0ZXItZWxlbWVudHMpKSAo dGhyb3cgKHF1b3RlIGV4aXQpIGVsZW1lbnQpKSAoKGxldCAoKGNiZWcgKG9yZy1lbGVtZW50LXBy b3BlcnR5IDpjb250ZW50cy1iZWdpbiBlbGVtZW50KSkgKGNlbmQgKG9yZy1lbGVtZW50LXByb3Bl cnR5IDpjb250ZW50cy1lbmQgZWxlbWVudCkpKSAoaWYgKG9yIHN5bmNwIChhbmQgY2JlZyBjZW5k IC4uLiAuLi4pKSAocHJvZ24gKGdvdG8tY2hhciAuLi4pIChzZXRxIG5leHQgbmlsIHNwZWNpYWwt ZmxhZyAuLi4gcGFyZW50IGVsZW1lbnQgZW5kIGNlbmQpKSkpKSAodCAodGhyb3cgKHF1b3RlIGV4 aXQpIGVsZW1lbnQpKSkpIChzZXRxIGVsZW1lbnQgbmlsKSkKICAobGV0ICgoZW5kIChvciAob3Jn LWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSAoc2F2ZS1leGN1cnNpb24gKGxldCogKChv cmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAuLi4p IChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAt Ym9sIC4uLikpIChvdXRsaW5lLW5leHQtaGVhZGluZykpIChwb2ludCkpKSkgKHBhcmVudCBlbGVt ZW50KSBzcGVjaWFsLWZsYWcpICh3aGlsZSB0IChpZiBzeW5jcCAocHJvZ24gKGNvbmQgKCg9IChw b2ludCkgcG9zKSAodGhyb3cgKHF1b3RlIGV4aXQpIHBhcmVudCkpICgob3JnLWVsZW1lbnQtLWNh Y2hlLWludGVycnVwdC1wIHRpbWUtbGltaXQpICh0aHJvdyAocXVvdGUgaW50ZXJydXB0KSBuaWwp KSkpKSAoaWYgZWxlbWVudCBuaWwgKHNldHEgZWxlbWVudCAob3JnLWVsZW1lbnQtLWN1cnJlbnQt ZWxlbWVudCBlbmQgKHF1b3RlIGVsZW1lbnQpIHNwZWNpYWwtZmxhZyAob3JnLWVsZW1lbnQtcHJv cGVydHkgOnN0cnVjdHVyZSBwYXJlbnQpKSkgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBlbGVt ZW50IDpwYXJlbnQgcGFyZW50KSAob3JnLWVsZW1lbnQtLWNhY2hlLXB1dCBlbGVtZW50KSkgKGxl dCAoKGVsZW0tZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQpKSAodHlwZSAo b3JnLWVsZW1lbnQtdHlwZSBlbGVtZW50KSkpIChjb25kICgoYW5kICg8PSBlbGVtLWVuZCBwb3Mp ICgvPSAocG9pbnQtbWF4KSBlbGVtLWVuZCkpIChnb3RvLWNoYXIgZWxlbS1lbmQpKSAoKG5vdCAo bWVtcSB0eXBlIG9yZy1lbGVtZW50LWdyZWF0ZXItZWxlbWVudHMpKSAodGhyb3cgKHF1b3RlIGV4 aXQpIGVsZW1lbnQpKSAoKGxldCAoKGNiZWcgLi4uKSAoY2VuZCAuLi4pKSAoaWYgKG9yIHN5bmNw IC4uLikgKHByb2duIC4uLiAuLi4pKSkpICh0ICh0aHJvdyAocXVvdGUgZXhpdCkgZWxlbWVudCkp KSkgKHNldHEgZWxlbWVudCBuaWwpKSkKICAobGV0KiAoKGNhY2hlZCAoYW5kIChvcmctZWxlbWVu dC0tY2FjaGUtYWN0aXZlLXApIChvcmctZWxlbWVudC0tY2FjaGUtZmluZCBwb3MgbmlsKSkpIChi ZWdpbiAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmJlZ2luIGNhY2hlZCkpIGVsZW1lbnQgbmV4dCkg KGNvbmQgKChub3QgY2FjaGVkKSAoaWYgKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1s ZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVn ZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJl Z2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChvdXRsaW5lLXByZXZp b3VzLWhlYWRpbmcpKSAocHJvZ24gKGZvcndhcmQtbGluZSkpKSAoc2tpcC1jaGFycy1mb3J3YXJk ICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkpICgoPSBwb3MgYmVnaW4pICh0aHJvdyAocXVv dGUgZXhpdCkgKGlmIHN5bmNwIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGFyZW50IGNhY2hlZCkg Y2FjaGVkKSkpICgocmUtc2VhcmNoLWJhY2t3YXJkIChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxp bWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRs aW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0 bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSBvcmctb3V0 bGluZS1yZWdleHAtYm9sKSBiZWdpbiB0KSAoZm9yd2FyZC1saW5lKSAoc2tpcC1jaGFycy1mb3J3 YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkpICh0IChsZXQgKCh1cCBjYWNoZWQpIChw b3MgKGlmICg9IC4uLiBwb3MpICgxLSBwb3MpIHBvcykpKSAoZ290by1jaGFyIChvciAob3JnLWVs ZW1lbnQtcHJvcGVydHkgOmNvbnRlbnRzLWJlZ2luIGNhY2hlZCkgYmVnaW4pKSAod2hpbGUgKGxl dCAoKGVuZCAuLi4pKSAoYW5kICg8PSBlbmQgcG9zKSAoZ290by1jaGFyIGVuZCkgKHNldHEgdXAg Li4uKSkpKSAoY29uZCAoKG5vdCB1cCkpICgoZW9icCkgKHNldHEgZWxlbWVudCB1cCkpICh0IChz ZXRxIGVsZW1lbnQgdXAgbmV4dCAocG9pbnQpKSkpKSkpIChsZXQgKChlbmQgKG9yIChvcmctZWxl bWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQpIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAoLi4uIC4u LiAuLi4gLi4uKSAob3V0bGluZS1uZXh0LWhlYWRpbmcpKSAocG9pbnQpKSkpIChwYXJlbnQgZWxl bWVudCkgc3BlY2lhbC1mbGFnKSAod2hpbGUgdCAoaWYgc3luY3AgKHByb2duIChjb25kICgoPSAu Li4gcG9zKSAodGhyb3cgLi4uIHBhcmVudCkpICgob3JnLWVsZW1lbnQtLWNhY2hlLWludGVycnVw dC1wIHRpbWUtbGltaXQpICh0aHJvdyAuLi4gbmlsKSkpKSkgKGlmIGVsZW1lbnQgbmlsIChzZXRx IGVsZW1lbnQgKG9yZy1lbGVtZW50LS1jdXJyZW50LWVsZW1lbnQgZW5kIChxdW90ZSBlbGVtZW50 KSBzcGVjaWFsLWZsYWcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpzdHJ1Y3R1cmUgcGFyZW50KSkp IChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgZWxlbWVudCA6cGFyZW50IHBhcmVudCkgKG9yZy1l bGVtZW50LS1jYWNoZS1wdXQgZWxlbWVudCkpIChsZXQgKChlbGVtLWVuZCAob3JnLWVsZW1lbnQt cHJvcGVydHkgOmVuZCBlbGVtZW50KSkgKHR5cGUgKG9yZy1lbGVtZW50LXR5cGUgZWxlbWVudCkp KSAoY29uZCAoKGFuZCAoPD0gZWxlbS1lbmQgcG9zKSAoLz0gLi4uIGVsZW0tZW5kKSkgKGdvdG8t Y2hhciBlbGVtLWVuZCkpICgobm90IChtZW1xIHR5cGUgb3JnLWVsZW1lbnQtZ3JlYXRlci1lbGVt ZW50cykpICh0aHJvdyAocXVvdGUgZXhpdCkgZWxlbWVudCkpICgobGV0ICguLi4gLi4uKSAoaWYg Li4uIC4uLikpKSAodCAodGhyb3cgKHF1b3RlIGV4aXQpIGVsZW1lbnQpKSkpIChzZXRxIGVsZW1l bnQgbmlsKSkpKQogIChzYXZlLXJlc3RyaWN0aW9uICh3aWRlbikgKGdvdG8tY2hhciBwb3MpIChs ZXQqICgoY2FjaGVkIChhbmQgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKG9yZy1lbGVt ZW50LS1jYWNoZS1maW5kIHBvcyBuaWwpKSkgKGJlZ2luIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6 YmVnaW4gY2FjaGVkKSkgZWxlbWVudCBuZXh0KSAoY29uZCAoKG5vdCBjYWNoZWQpIChpZiAobGV0 KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhw IC4uLikgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJl Z2V4cC1ib2wgLi4uKSkgKG91dGxpbmUtcHJldmlvdXMtaGVhZGluZykpIChwcm9nbiAoZm9yd2Fy ZC1saW5lKSkpIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5l KSkgKCg9IHBvcyBiZWdpbikgKHRocm93IChxdW90ZSBleGl0KSAoaWYgc3luY3AgKG9yZy1lbGVt ZW50LXByb3BlcnR5IDpwYXJlbnQgY2FjaGVkKSBjYWNoZWQpKSkgKChyZS1zZWFyY2gtYmFja3dh cmQgKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5l LXJlZ2V4cCAuLi4pIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0 bGluZS1yZWdleHAtYm9sIC4uLikpIG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wpIGJlZ2luIHQpIChm b3J3YXJkLWxpbmUpIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1s aW5lKSkgKHQgKGxldCAoKHVwIGNhY2hlZCkgKHBvcyAoaWYgLi4uIC4uLiBwb3MpKSkgKGdvdG8t Y2hhciAob3IgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpjb250ZW50cy1iZWdpbiBjYWNoZWQpIGJl Z2luKSkgKHdoaWxlIChsZXQgKC4uLikgKGFuZCAuLi4gLi4uIC4uLikpKSAoY29uZCAoKG5vdCB1 cCkpICgoZW9icCkgKHNldHEgZWxlbWVudCB1cCkpICh0IChzZXRxIGVsZW1lbnQgdXAgbmV4dCAu Li4pKSkpKSkgKGxldCAoKGVuZCAob3IgKG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVu dCkgKHNhdmUtZXhjdXJzaW9uIChsZXQqIC4uLiAuLi4pIChwb2ludCkpKSkgKHBhcmVudCBlbGVt ZW50KSBzcGVjaWFsLWZsYWcpICh3aGlsZSB0IChpZiBzeW5jcCAocHJvZ24gKGNvbmQgKC4uLiAu Li4pICguLi4gLi4uKSkpKSAoaWYgZWxlbWVudCBuaWwgKHNldHEgZWxlbWVudCAob3JnLWVsZW1l bnQtLWN1cnJlbnQtZWxlbWVudCBlbmQgKHF1b3RlIGVsZW1lbnQpIHNwZWNpYWwtZmxhZyAob3Jn LWVsZW1lbnQtcHJvcGVydHkgOnN0cnVjdHVyZSBwYXJlbnQpKSkgKG9yZy1lbGVtZW50LXB1dC1w cm9wZXJ0eSBlbGVtZW50IDpwYXJlbnQgcGFyZW50KSAob3JnLWVsZW1lbnQtLWNhY2hlLXB1dCBl bGVtZW50KSkgKGxldCAoKGVsZW0tZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1l bnQpKSAodHlwZSAob3JnLWVsZW1lbnQtdHlwZSBlbGVtZW50KSkpIChjb25kICgoYW5kIC4uLiAu Li4pIChnb3RvLWNoYXIgZWxlbS1lbmQpKSAoKG5vdCAuLi4pICh0aHJvdyAuLi4gZWxlbWVudCkp ICgobGV0IC4uLiAuLi4pKSAodCAodGhyb3cgLi4uIGVsZW1lbnQpKSkpIChzZXRxIGVsZW1lbnQg bmlsKSkpKSkKICAoc2F2ZS1leGN1cnNpb24gKHNhdmUtcmVzdHJpY3Rpb24gKHdpZGVuKSAoZ290 by1jaGFyIHBvcykgKGxldCogKChjYWNoZWQgKGFuZCAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2 ZS1wKSAob3JnLWVsZW1lbnQtLWNhY2hlLWZpbmQgcG9zIG5pbCkpKSAoYmVnaW4gKG9yZy1lbGVt ZW50LXByb3BlcnR5IDpiZWdpbiBjYWNoZWQpKSBlbGVtZW50IG5leHQpIChjb25kICgobm90IGNh Y2hlZCkgKGlmIChsZXQqICguLi4gLi4uIC4uLiAuLi4pIChvdXRsaW5lLXByZXZpb3VzLWhlYWRp bmcpKSAocHJvZ24gKGZvcndhcmQtbGluZSkpKSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIp IChiZWdpbm5pbmctb2YtbGluZSkpICgoPSBwb3MgYmVnaW4pICh0aHJvdyAocXVvdGUgZXhpdCkg KGlmIHN5bmNwIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGFyZW50IGNhY2hlZCkgY2FjaGVkKSkp ICgocmUtc2VhcmNoLWJhY2t3YXJkIChsZXQqICguLi4gLi4uIC4uLiAuLi4pIG9yZy1vdXRsaW5l LXJlZ2V4cC1ib2wpIGJlZ2luIHQpIChmb3J3YXJkLWxpbmUpIChza2lwLWNoYXJzLWZvcndhcmQg IiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkgKHQgKGxldCAoKHVwIGNhY2hlZCkgKHBvcyAu Li4pKSAoZ290by1jaGFyIChvciAuLi4gYmVnaW4pKSAod2hpbGUgKGxldCAuLi4gLi4uKSkgKGNv bmQgKC4uLikgKC4uLiAuLi4pICh0IC4uLikpKSkpIChsZXQgKChlbmQgKG9yIChvcmctZWxlbWVu dC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQpIChzYXZlLWV4Y3Vyc2lvbiAuLi4gLi4uKSkpIChwYXJl bnQgZWxlbWVudCkgc3BlY2lhbC1mbGFnKSAod2hpbGUgdCAoaWYgc3luY3AgKHByb2duIChjb25k IC4uLiAuLi4pKSkgKGlmIGVsZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50LS1j dXJyZW50LWVsZW1lbnQgZW5kIC4uLiBzcGVjaWFsLWZsYWcgLi4uKSkgKG9yZy1lbGVtZW50LXB1 dC1wcm9wZXJ0eSBlbGVtZW50IDpwYXJlbnQgcGFyZW50KSAob3JnLWVsZW1lbnQtLWNhY2hlLXB1 dCBlbGVtZW50KSkgKGxldCAoKGVsZW0tZW5kIC4uLikgKHR5cGUgLi4uKSkgKGNvbmQgKC4uLiAu Li4pICguLi4gLi4uKSAoLi4uKSAodCAuLi4pKSkgKHNldHEgZWxlbWVudCBuaWwpKSkpKSkKICAo Y2F0Y2ggKHF1b3RlIGV4aXQpIChzYXZlLWV4Y3Vyc2lvbiAoc2F2ZS1yZXN0cmljdGlvbiAod2lk ZW4pIChnb3RvLWNoYXIgcG9zKSAobGV0KiAoKGNhY2hlZCAoYW5kIChvcmctZWxlbWVudC0tY2Fj aGUtYWN0aXZlLXApIChvcmctZWxlbWVudC0tY2FjaGUtZmluZCBwb3MgbmlsKSkpIChiZWdpbiAo b3JnLWVsZW1lbnQtcHJvcGVydHkgOmJlZ2luIGNhY2hlZCkpIGVsZW1lbnQgbmV4dCkgKGNvbmQg KChub3QgY2FjaGVkKSAoaWYgKGxldCogLi4uIC4uLikgKHByb2duIC4uLikpIChza2lwLWNoYXJz LWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkgKCg9IHBvcyBiZWdpbikgKHRo cm93IChxdW90ZSBleGl0KSAoaWYgc3luY3AgLi4uIGNhY2hlZCkpKSAoKHJlLXNlYXJjaC1iYWNr d2FyZCAobGV0KiAuLi4gb3JnLW91dGxpbmUtcmVnZXhwLWJvbCkgYmVnaW4gdCkgKGZvcndhcmQt bGluZSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAo dCAobGV0ICguLi4gLi4uKSAoZ290by1jaGFyIC4uLikgKHdoaWxlIC4uLikgKGNvbmQgLi4uIC4u LiAuLi4pKSkpIChsZXQgKChlbmQgKG9yIC4uLiAuLi4pKSAocGFyZW50IGVsZW1lbnQpIHNwZWNp YWwtZmxhZykgKHdoaWxlIHQgKGlmIHN5bmNwIChwcm9nbiAuLi4pKSAoaWYgZWxlbWVudCBuaWwg KHNldHEgZWxlbWVudCAuLi4pIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgZWxlbWVudCA6cGFy ZW50IHBhcmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQgZWxlbWVudCkpIChsZXQgKC4uLiAu Li4pIChjb25kIC4uLiAuLi4gLi4uIC4uLikpIChzZXRxIGVsZW1lbnQgbmlsKSkpKSkpKQogIG9y Zy1lbGVtZW50LS1wYXJzZS10bygyNTcyODApCiAgKGNvbmQgKChib2JwKSBuaWwpICgobGV0KiAo KG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChv cmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxp bmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGlu ZS1yZWdleHApKSkgKG9yZy1hdC1oZWFkaW5nLXApKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmct ZWxlbWVudC1oZWFkbGluZS1wYXJzZXIgKHBvaW50LW1heCkgdCkpICh0IChpZiAob3JnLWVsZW1l bnQtLWNhY2hlLWFjdGl2ZS1wKSAocHJvZ24gKGlmIChub3Qgb3JnLWVsZW1lbnQtLWNhY2hlKSAo b3JnLWVsZW1lbnQtY2FjaGUtcmVzZXQpIChvcmctZWxlbWVudC0tY2FjaGUtc3luYyAoY3VycmVu dC1idWZmZXIpIG9yaWdpbikpKSkgKG9yZy1lbGVtZW50LS1wYXJzZS10byBvcmlnaW4pKSkKICAo bGV0ICgob3JpZ2luIChwb2ludCkpKSAoZW5kLW9mLWxpbmUpIChza2lwLWNoYXJzLWJhY2t3YXJk ICIgDQlcbiIpIChjb25kICgoYm9icCkgbmlsKSAoKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGlt aXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxp bmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRs aW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChvcmctYXQt aGVhZGluZy1wKSkgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFy c2VyIChwb2ludC1tYXgpIHQpKSAodCAoaWYgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkg KHByb2duIChpZiAobm90IG9yZy1lbGVtZW50LS1jYWNoZSkgKG9yZy1lbGVtZW50LWNhY2hlLXJl c2V0KSAob3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMgKGN1cnJlbnQtYnVmZmVyKSBvcmlnaW4pKSkp IChvcmctZWxlbWVudC0tcGFyc2UtdG8gb3JpZ2luKSkpKQogIChzYXZlLXJlc3RyaWN0aW9uICh3 aWRlbikgKGxldCAoKG9yaWdpbiAocG9pbnQpKSkgKGVuZC1vZi1saW5lKSAoc2tpcC1jaGFycy1i YWNrd2FyZCAiIA0JXG4iKSAoY29uZCAoKGJvYnApIG5pbCkgKChsZXQqICgob3JnLWNhbGxlZC13 aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRl ZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChv cmctb3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAo b3JnLWF0LWhlYWRpbmctcCkpIChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWhlYWRs aW5lLXBhcnNlciAocG9pbnQtbWF4KSB0KSkgKHQgKGlmIChvcmctZWxlbWVudC0tY2FjaGUtYWN0 aXZlLXApIChwcm9nbiAoaWYgKG5vdCBvcmctZWxlbWVudC0tY2FjaGUpIChvcmctZWxlbWVudC1j YWNoZS1yZXNldCkgKG9yZy1lbGVtZW50LS1jYWNoZS1zeW5jIC4uLiBvcmlnaW4pKSkpIChvcmct ZWxlbWVudC0tcGFyc2UtdG8gb3JpZ2luKSkpKSkKICAoc2F2ZS1leGN1cnNpb24gKHNhdmUtcmVz dHJpY3Rpb24gKHdpZGVuKSAobGV0ICgob3JpZ2luIChwb2ludCkpKSAoZW5kLW9mLWxpbmUpIChz a2lwLWNoYXJzLWJhY2t3YXJkICIgDQlcbiIpIChjb25kICgoYm9icCkgbmlsKSAoKGxldCogKChv cmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAuLi4p IChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAt Ym9sIC4uLikpIChvcmctYXQtaGVhZGluZy1wKSkgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVs ZW1lbnQtaGVhZGxpbmUtcGFyc2VyIChwb2ludC1tYXgpIHQpKSAodCAoaWYgKG9yZy1lbGVtZW50 LS1jYWNoZS1hY3RpdmUtcCkgKHByb2duIChpZiAuLi4gLi4uIC4uLikpKSAob3JnLWVsZW1lbnQt LXBhcnNlLXRvIG9yaWdpbikpKSkpKQogIG9yZy1lbGVtZW50LWF0LXBvaW50KCkKICAobGV0ICgo ZHJhd2VyIChvcmctZWxlbWVudC1hdC1wb2ludCkpKSAoaWYgKGFuZCAoZXEgKG9yZy1lbGVtZW50 LXR5cGUgZHJhd2VyKSAocXVvdGUgcHJvcGVydHktZHJhd2VyKSkgKGxldCAoKHAgZHJhd2VyKSkg KHdoaWxlIChhbmQgKHNldHEgcCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhcmVudCBwKSkgKG5v dCAoZXEgLi4uIC4uLikpKSkgKG5vdCBwKSkpIChwcm9nbiAobGV0ICgoZW5kIChvcmctZWxlbWVu dC1wcm9wZXJ0eSA6Y29udGVudHMtZW5kIGRyYXdlcikpKSAoaWYgZW5kIChwcm9nbiAoZm9yd2Fy ZC1saW5lKSAod2hpbGUgKDwgLi4uIGVuZCkgKGlmIC4uLiAuLi4pIChmb3J3YXJkLWxpbmUpKSkp KSkpKQogICh3aGlsZSAoYW5kIChudWxsIHBsaXN0KSAocmUtc2VhcmNoLWZvcndhcmQgb3JnLXBy b3BlcnR5LXN0YXJ0LXJlIGVuZCB0KSkgKGxldCAoKGRyYXdlciAob3JnLWVsZW1lbnQtYXQtcG9p bnQpKSkgKGlmIChhbmQgKGVxIChvcmctZWxlbWVudC10eXBlIGRyYXdlcikgKHF1b3RlIHByb3Bl cnR5LWRyYXdlcikpIChsZXQgKChwIGRyYXdlcikpICh3aGlsZSAoYW5kIChzZXRxIHAgLi4uKSAo bm90IC4uLikpKSAobm90IHApKSkgKHByb2duIChsZXQgKChlbmQgKG9yZy1lbGVtZW50LXByb3Bl cnR5IDpjb250ZW50cy1lbmQgZHJhd2VyKSkpIChpZiBlbmQgKHByb2duIChmb3J3YXJkLWxpbmUp ICh3aGlsZSAuLi4gLi4uIC4uLikpKSkpKSkpCiAgKHNhdmUtZXhjdXJzaW9uICh3aGlsZSAoYW5k IChudWxsIHBsaXN0KSAocmUtc2VhcmNoLWZvcndhcmQgb3JnLXByb3BlcnR5LXN0YXJ0LXJlIGVu ZCB0KSkgKGxldCAoKGRyYXdlciAob3JnLWVsZW1lbnQtYXQtcG9pbnQpKSkgKGlmIChhbmQgKGVx IChvcmctZWxlbWVudC10eXBlIGRyYXdlcikgKHF1b3RlIHByb3BlcnR5LWRyYXdlcikpIChsZXQg KChwIGRyYXdlcikpICh3aGlsZSAoYW5kIC4uLiAuLi4pKSAobm90IHApKSkgKHByb2duIChsZXQg KChlbmQgLi4uKSkgKGlmIGVuZCAocHJvZ24gLi4uIC4uLikpKSkpKSkgcGxpc3QpCiAgKGxldCAo KGVuZCAoc2F2ZS1leGN1cnNpb24gKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZl bHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhw KSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4 cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChvdXRsaW5lLW5leHQtaGVh ZGluZykpIChwb2ludCkpKSBwbGlzdCkgKHNhdmUtZXhjdXJzaW9uICh3aGlsZSAoYW5kIChudWxs IHBsaXN0KSAocmUtc2VhcmNoLWZvcndhcmQgb3JnLXByb3BlcnR5LXN0YXJ0LXJlIGVuZCB0KSkg KGxldCAoKGRyYXdlciAob3JnLWVsZW1lbnQtYXQtcG9pbnQpKSkgKGlmIChhbmQgKGVxIChvcmct ZWxlbWVudC10eXBlIGRyYXdlcikgKHF1b3RlIHByb3BlcnR5LWRyYXdlcikpIChsZXQgKC4uLikg KHdoaWxlIC4uLikgKG5vdCBwKSkpIChwcm9nbiAobGV0ICguLi4pIChpZiBlbmQgLi4uKSkpKSkp IHBsaXN0KSkKICAobGV0KiAoKGNvbXBvbmVudHMgKG9yZy1oZWFkaW5nLWNvbXBvbmVudHMpKSAo bGV2ZWwgKG50aCAxIGNvbXBvbmVudHMpKSAodG9kbyAobnRoIDIgY29tcG9uZW50cykpICh0b2Rv LXR5cGUgKGFuZCB0b2RvIChpZiAobWVtYmVyIHRvZG8gb3JnLWRvbmUta2V5d29yZHMpIChxdW90 ZSBkb25lKSAocXVvdGUgdG9kbykpKSkgKHRhZ3MgKGxldCAoKHJhdy10YWdzIChudGggNSBjb21w b25lbnRzKSkpIChhbmQgcmF3LXRhZ3MgKG9yZy1zcGxpdC1zdHJpbmcgcmF3LXRhZ3MgIjoiKSkp KSAocmF3LXZhbHVlIChvciAobnRoIDQgY29tcG9uZW50cykgIiIpKSAoY29tbWVudGVkcCAobGV0 ICgoY2FzZS1mb2xkLXNlYXJjaCBuaWwpKSAoc3RyaW5nLW1hdGNoIChmb3JtYXQgIl4lc1xcKCBc XHwkXFwpIiBvcmctY29tbWVudC1zdHJpbmcpIHJhdy12YWx1ZSkpKSAoYXJjaGl2ZWRwIChtZW1i ZXIgb3JnLWFyY2hpdmUtdGFnIHRhZ3MpKSAoZm9vdG5vdGUtc2VjdGlvbi1wIChhbmQgb3JnLWZv b3Rub3RlLXNlY3Rpb24gKHN0cmluZz0gb3JnLWZvb3Rub3RlLXNlY3Rpb24gcmF3LXZhbHVlKSkp IChzdGFuZGFyZC1wcm9wcyAobGV0ICgoZW5kIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAuLi4gLi4u KSAocG9pbnQpKSkgcGxpc3QpIChzYXZlLWV4Y3Vyc2lvbiAod2hpbGUgKGFuZCAobnVsbCBwbGlz dCkgKHJlLXNlYXJjaC1mb3J3YXJkIG9yZy1wcm9wZXJ0eS1zdGFydC1yZSBlbmQgdCkpIChsZXQg KC4uLikgKGlmIC4uLiAuLi4pKSkgcGxpc3QpKSkgKHRpbWUtcHJvcHMgKHNhdmUtZXhjdXJzaW9u IChmb3J3YXJkLWxpbmUpIChpZiAobG9va2luZy1hdCBvcmctcGxhbm5pbmctb3ItY2xvY2stbGlu ZS1yZSkgKHByb2duIChsZXQgKC4uLiBwbGlzdCkgKHdoaWxlIC4uLiAuLi4gLi4uIC4uLikgcGxp c3QpKSkpKSAoYmVnaW4gKHBvaW50KSkgKGVuZCAobWluIChzYXZlLWV4Y3Vyc2lvbiAob3JnLWVu ZC1vZi1zdWJ0cmVlIHQgdCkpIGxpbWl0KSkgKHBvcy1hZnRlci1oZWFkIChwcm9nbiAoZm9yd2Fy ZC1saW5lKSAocG9pbnQpKSkgKGNvbnRlbnRzLWJlZ2luIChzYXZlLWV4Y3Vyc2lvbiAoc2tpcC1j aGFycy1mb3J3YXJkICIgDQlcbiIgZW5kKSAoYW5kICgvPSAocG9pbnQpIGVuZCkgKGxpbmUtYmVn aW5uaW5nLXBvc2l0aW9uKSkpKSAoY29udGVudHMtZW5kIChhbmQgY29udGVudHMtYmVnaW4gKHBy b2duIChnb3RvLWNoYXIgZW5kKSAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIA0JXG4iKSAoZm9yd2Fy ZC1saW5lKSAocG9pbnQpKSkpKSAoaWYgY29tbWVudGVkcCAocHJvZ24gKGxldCAoKGNhc2UtZm9s ZC1zZWFyY2ggbmlsKSkgKHNldHEgcmF3LXZhbHVlIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcg KGNvbmNhdCAocmVnZXhwLXF1b3RlIG9yZy1jb21tZW50LXN0cmluZykgIlxcKD86IFxcfCRcXCki KSAiIiByYXctdmFsdWUpKSkpKSAoaWYgYXJjaGl2ZWRwIChwcm9nbiAoc2V0cSB0YWdzIChkZWxl dGUgb3JnLWFyY2hpdmUtdGFnIHRhZ3MpKSkpIChsZXQgKChoZWFkbGluZSAobGlzdCAocXVvdGUg aGVhZGxpbmUpIChuY29uYyAobGlzdCA6cmF3LXZhbHVlIHJhdy12YWx1ZSA6YmVnaW4gYmVnaW4g OmVuZCBlbmQgOnByZS1ibGFuayAoaWYgLi4uIDAgLi4uKSA6Y29udGVudHMtYmVnaW4gY29udGVu dHMtYmVnaW4gOmNvbnRlbnRzLWVuZCBjb250ZW50cy1lbmQgOmxldmVsIGxldmVsIDpwcmlvcml0 eSAobnRoIDMgY29tcG9uZW50cykgOnRhZ3MgdGFncyA6dG9kby1rZXl3b3JkIHRvZG8gOnRvZG8t dHlwZSB0b2RvLXR5cGUgOnBvc3QtYmxhbmsgKGNvdW50LWxpbmVzIC4uLiBlbmQpIDpmb290bm90 ZS1zZWN0aW9uLXAgZm9vdG5vdGUtc2VjdGlvbi1wIDphcmNoaXZlZHAgYXJjaGl2ZWRwIDpjb21t ZW50ZWRwIGNvbW1lbnRlZHApIHRpbWUtcHJvcHMgc3RhbmRhcmQtcHJvcHMpKSkpIChsZXQgKChh bHQtdGl0bGUgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpBTFRfVElUTEUgaGVhZGxpbmUpKSkgKGlm IGFsdC10aXRsZSAocHJvZ24gKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBoZWFkbGluZSA6YWx0 LXRpdGxlIChpZiByYXctc2Vjb25kYXJ5LXAgYWx0LXRpdGxlIChvcmctZWxlbWVudC1wYXJzZS1z ZWNvbmRhcnktc3RyaW5nIGFsdC10aXRsZSAuLi4gaGVhZGxpbmUpKSkpKSkgKG9yZy1lbGVtZW50 LXB1dC1wcm9wZXJ0eSBoZWFkbGluZSA6dGl0bGUgKGlmIHJhdy1zZWNvbmRhcnktcCByYXctdmFs dWUgKG9yZy1lbGVtZW50LXBhcnNlLXNlY29uZGFyeS1zdHJpbmcgcmF3LXZhbHVlIChvcmctZWxl bWVudC1yZXN0cmljdGlvbiAocXVvdGUgaGVhZGxpbmUpKSBoZWFkbGluZSkpKSkpCiAgKHNhdmUt ZXhjdXJzaW9uIChsZXQqICgoY29tcG9uZW50cyAob3JnLWhlYWRpbmctY29tcG9uZW50cykpIChs ZXZlbCAobnRoIDEgY29tcG9uZW50cykpICh0b2RvIChudGggMiBjb21wb25lbnRzKSkgKHRvZG8t dHlwZSAoYW5kIHRvZG8gKGlmIChtZW1iZXIgdG9kbyBvcmctZG9uZS1rZXl3b3JkcykgKHF1b3Rl IGRvbmUpIChxdW90ZSB0b2RvKSkpKSAodGFncyAobGV0ICgocmF3LXRhZ3MgKG50aCA1IGNvbXBv bmVudHMpKSkgKGFuZCByYXctdGFncyAob3JnLXNwbGl0LXN0cmluZyByYXctdGFncyAiOiIpKSkp IChyYXctdmFsdWUgKG9yIChudGggNCBjb21wb25lbnRzKSAiIikpIChjb21tZW50ZWRwIChsZXQg KChjYXNlLWZvbGQtc2VhcmNoIG5pbCkpIChzdHJpbmctbWF0Y2ggKGZvcm1hdCAiXiVzXFwoIFxc fCRcXCkiIG9yZy1jb21tZW50LXN0cmluZykgcmF3LXZhbHVlKSkpIChhcmNoaXZlZHAgKG1lbWJl ciBvcmctYXJjaGl2ZS10YWcgdGFncykpIChmb290bm90ZS1zZWN0aW9uLXAgKGFuZCBvcmctZm9v dG5vdGUtc2VjdGlvbiAoc3RyaW5nPSBvcmctZm9vdG5vdGUtc2VjdGlvbiByYXctdmFsdWUpKSkg KHN0YW5kYXJkLXByb3BzIChsZXQgKChlbmQgKHNhdmUtZXhjdXJzaW9uIC4uLiAuLi4pKSBwbGlz dCkgKHNhdmUtZXhjdXJzaW9uICh3aGlsZSAoYW5kIC4uLiAuLi4pIChsZXQgLi4uIC4uLikpIHBs aXN0KSkpICh0aW1lLXByb3BzIChzYXZlLWV4Y3Vyc2lvbiAoZm9yd2FyZC1saW5lKSAoaWYgKGxv b2tpbmctYXQgb3JnLXBsYW5uaW5nLW9yLWNsb2NrLWxpbmUtcmUpIChwcm9nbiAobGV0IC4uLiAu Li4gcGxpc3QpKSkpKSAoYmVnaW4gKHBvaW50KSkgKGVuZCAobWluIChzYXZlLWV4Y3Vyc2lvbiAo b3JnLWVuZC1vZi1zdWJ0cmVlIHQgdCkpIGxpbWl0KSkgKHBvcy1hZnRlci1oZWFkIChwcm9nbiAo Zm9yd2FyZC1saW5lKSAocG9pbnQpKSkgKGNvbnRlbnRzLWJlZ2luIChzYXZlLWV4Y3Vyc2lvbiAo c2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIgZW5kKSAoYW5kICgvPSAocG9pbnQpIGVuZCkgKGxp bmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkpKSAoY29udGVudHMtZW5kIChhbmQgY29udGVudHMtYmVn aW4gKHByb2duIChnb3RvLWNoYXIgZW5kKSAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIA0JXG4iKSAo Zm9yd2FyZC1saW5lKSAocG9pbnQpKSkpKSAoaWYgY29tbWVudGVkcCAocHJvZ24gKGxldCAoKGNh c2UtZm9sZC1zZWFyY2ggbmlsKSkgKHNldHEgcmF3LXZhbHVlIChyZXBsYWNlLXJlZ2V4cC1pbi1z dHJpbmcgKGNvbmNhdCAuLi4gIlxcKD86IFxcfCRcXCkiKSAiIiByYXctdmFsdWUpKSkpKSAoaWYg YXJjaGl2ZWRwIChwcm9nbiAoc2V0cSB0YWdzIChkZWxldGUgb3JnLWFyY2hpdmUtdGFnIHRhZ3Mp KSkpIChsZXQgKChoZWFkbGluZSAobGlzdCAocXVvdGUgaGVhZGxpbmUpIChuY29uYyAobGlzdCA6 cmF3LXZhbHVlIHJhdy12YWx1ZSA6YmVnaW4gYmVnaW4gOmVuZCBlbmQgOnByZS1ibGFuayAuLi4g OmNvbnRlbnRzLWJlZ2luIGNvbnRlbnRzLWJlZ2luIDpjb250ZW50cy1lbmQgY29udGVudHMtZW5k IDpsZXZlbCBsZXZlbCA6cHJpb3JpdHkgLi4uIDp0YWdzIHRhZ3MgOnRvZG8ta2V5d29yZCB0b2Rv IDp0b2RvLXR5cGUgdG9kby10eXBlIDpwb3N0LWJsYW5rIC4uLiA6Zm9vdG5vdGUtc2VjdGlvbi1w IGZvb3Rub3RlLXNlY3Rpb24tcCA6YXJjaGl2ZWRwIGFyY2hpdmVkcCA6Y29tbWVudGVkcCBjb21t ZW50ZWRwKSB0aW1lLXByb3BzIHN0YW5kYXJkLXByb3BzKSkpKSAobGV0ICgoYWx0LXRpdGxlIChv cmctZWxlbWVudC1wcm9wZXJ0eSA6QUxUX1RJVExFIGhlYWRsaW5lKSkpIChpZiBhbHQtdGl0bGUg KHByb2duIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgaGVhZGxpbmUgOmFsdC10aXRsZSAoaWYg cmF3LXNlY29uZGFyeS1wIGFsdC10aXRsZSAuLi4pKSkpKSAob3JnLWVsZW1lbnQtcHV0LXByb3Bl cnR5IGhlYWRsaW5lIDp0aXRsZSAoaWYgcmF3LXNlY29uZGFyeS1wIHJhdy12YWx1ZSAob3JnLWVs ZW1lbnQtcGFyc2Utc2Vjb25kYXJ5LXN0cmluZyByYXctdmFsdWUgKG9yZy1lbGVtZW50LXJlc3Ry aWN0aW9uIChxdW90ZSBoZWFkbGluZSkpIGhlYWRsaW5lKSkpKSkpCiAgb3JnLWVsZW1lbnQtaGVh ZGxpbmUtcGFyc2VyKDI1NzcwNiB0KQogIChjb25kICgoZXEgc3BlY2lhbCAocXVvdGUgaXRlbSkp IChvcmctZWxlbWVudC1pdGVtLXBhcnNlciBsaW1pdCBzdHJ1Y3R1cmUgcmF3LXNlY29uZGFyeS1w KSkgKChlcSBzcGVjaWFsIChxdW90ZSB0YWJsZS1yb3cpKSAob3JnLWVsZW1lbnQtdGFibGUtcm93 LXBhcnNlciBsaW1pdCkpICgoZXEgc3BlY2lhbCAocXVvdGUgbm9kZS1wcm9wZXJ0eSkpIChvcmct ZWxlbWVudC1ub2RlLXByb3BlcnR5LXBhcnNlciBsaW1pdCkpICgobGV0KiAoKG9yZy1jYWxsZWQt d2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0 ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAo b3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkg KG9yZy1hdC1oZWFkaW5nLXApKSAob3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFyc2VyIGxpbWl0IHJh dy1zZWNvbmRhcnktcCkpICgoZXEgc3BlY2lhbCAocXVvdGUgc2VjdGlvbikpIChvcmctZWxlbWVu dC1zZWN0aW9uLXBhcnNlciBsaW1pdCkpICgoZXEgc3BlY2lhbCAocXVvdGUgZmlyc3Qtc2VjdGlv bikpIChvcmctZWxlbWVudC1zZWN0aW9uLXBhcnNlciAob3IgKHNhdmUtZXhjdXJzaW9uIChsZXQq ICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAg Li4uKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVn ZXhwLWJvbCAuLi4pKSAob3V0bGluZS1uZXh0LWhlYWRpbmcpKSkgbGltaXQpKSkgKChub3QgKGJv bHApKSAob3JnLWVsZW1lbnQtcGFyYWdyYXBoLXBhcnNlciBsaW1pdCAobGlzdCAocG9pbnQpKSkp ICgobG9va2luZy1hdCBvcmctcGxhbm5pbmctb3ItY2xvY2stbGluZS1yZSkgKGlmIChlcXVhbCAo bWF0Y2gtc3RyaW5nIDEpIG9yZy1jbG9jay1zdHJpbmcpIChvcmctZWxlbWVudC1jbG9jay1wYXJz ZXIgbGltaXQpIChvcmctZWxlbWVudC1wbGFubmluZy1wYXJzZXIgbGltaXQpKSkgKChvcmctYXQt aGVhZGluZy1wKSAob3JnLWVsZW1lbnQtaW5saW5ldGFzay1wYXJzZXIgbGltaXQgcmF3LXNlY29u ZGFyeS1wKSkgKHQgKGxldCAoKGFmZmlsaWF0ZWQgKG9yZy1lbGVtZW50LS1jb2xsZWN0LWFmZmls aWF0ZWQta2V5d29yZHMgbGltaXQpKSkgKGNvbmQgKChhbmQgKGNkciBhZmZpbGlhdGVkKSAoPj0g KHBvaW50KSBsaW1pdCkpIChnb3RvLWNoYXIgKGNhciBhZmZpbGlhdGVkKSkgKG9yZy1lbGVtZW50 LWtleXdvcmQtcGFyc2VyIGxpbWl0IG5pbCkpICgobG9va2luZy1hdCAiWyAgICAgXSpcXFxcYmVn aW57W0EtWmEtejAtOSpdK31cXChcXFsuKj9cXF1cXHx7Lio/fVxcKSpbICAgICBdKiQiKSAob3Jn LWVsZW1lbnQtbGF0ZXgtZW52aXJvbm1lbnQtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxv b2tpbmctYXQgb3JnLWRyYXdlci1yZWdleHApIChpZiAoZXF1YWwgKG1hdGNoLXN0cmluZyAxKSAi UFJPUEVSVElFUyIpIChvcmctZWxlbWVudC1wcm9wZXJ0eS1kcmF3ZXItcGFyc2VyIGxpbWl0IGFm ZmlsaWF0ZWQpIChvcmctZWxlbWVudC1kcmF3ZXItcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSkg KChsb29raW5nLWF0ICJbICAgXSo6XFwoIFxcfCRcXCkiKSAob3JnLWVsZW1lbnQtZml4ZWQtd2lk dGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlsgICAgIF0qIyIpIChn b3RvLWNoYXIgKG1hdGNoLWVuZCAwKSkgKGNvbmQgKChsb29raW5nLWF0ICJcXCg/OiBcXHwkXFwp IikgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQtY29tbWVudC1wYXJzZXIgbGltaXQg YWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiXFwrQkVHSU5fXFwoXFxTLStcXCkiKSAoYmVnaW5u aW5nLW9mLWxpbmUpIChsZXQgLi4uIC4uLikpICgobG9va2luZy1hdCAiXFwrQ0FMTDoiKSAoYmVn aW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1iYWJlbC1jYWxsLXBhcnNlciBsaW1pdCBhZmZp bGlhdGVkKSkgKChsb29raW5nLWF0ICJcXCtCRUdJTjo/ICIpIChiZWdpbm5pbmctb2YtbGluZSkg KG9yZy1lbGVtZW50LWR5bmFtaWMtYmxvY2stcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxv b2tpbmctYXQgIlxcK1xcUy0rOiIpIChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWtl eXdvcmQtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAodCAoYmVnaW5uaW5nLW9mLWxpbmUpIChv cmctZWxlbWVudC1wYXJhZ3JhcGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSkpICgobG9va2lu Zy1hdCBvcmctZm9vdG5vdGUtZGVmaW5pdGlvbi1yZSkgKG9yZy1lbGVtZW50LWZvb3Rub3RlLWRl ZmluaXRpb24tcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlsgICBdKi1c XHs1LFxcfVsgICAgXSokIikgKG9yZy1lbGVtZW50LWhvcml6b250YWwtcnVsZS1wYXJzZXIgbGlt aXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiJSUoIikgKG9yZy1lbGVtZW50LWRpYXJ5LXNl eHAtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKG9yZy1hdC10YWJsZS1wIHQpIChvcmctZWxl bWVudC10YWJsZS1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAob3JnLWl0 ZW0tcmUpKSAob3JnLWVsZW1lbnQtcGxhaW4tbGlzdC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCAo b3Igc3RydWN0dXJlIChvcmctZWxlbWVudC0tbGlzdC1zdHJ1Y3QgbGltaXQpKSkpICh0IChvcmct ZWxlbWVudC1wYXJhZ3JhcGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSkpKSkKICAobGV0ICgo Y2FzZS1mb2xkLXNlYXJjaCB0KSAocmF3LXNlY29uZGFyeS1wIChhbmQgZ3JhbnVsYXJpdHkgKG5v dCAoZXEgZ3JhbnVsYXJpdHkgKHF1b3RlIG9iamVjdCkpKSkpKSAoY29uZCAoKGVxIHNwZWNpYWwg KHF1b3RlIGl0ZW0pKSAob3JnLWVsZW1lbnQtaXRlbS1wYXJzZXIgbGltaXQgc3RydWN0dXJlIHJh dy1zZWNvbmRhcnktcCkpICgoZXEgc3BlY2lhbCAocXVvdGUgdGFibGUtcm93KSkgKG9yZy1lbGVt ZW50LXRhYmxlLXJvdy1wYXJzZXIgbGltaXQpKSAoKGVxIHNwZWNpYWwgKHF1b3RlIG5vZGUtcHJv cGVydHkpKSAob3JnLWVsZW1lbnQtbm9kZS1wcm9wZXJ0eS1wYXJzZXIgbGltaXQpKSAoKGxldCog KChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAo b3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRs aW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxp bmUtcmVnZXhwKSkpIChvcmctYXQtaGVhZGluZy1wKSkgKG9yZy1lbGVtZW50LWhlYWRsaW5lLXBh cnNlciBsaW1pdCByYXctc2Vjb25kYXJ5LXApKSAoKGVxIHNwZWNpYWwgKHF1b3RlIHNlY3Rpb24p KSAob3JnLWVsZW1lbnQtc2VjdGlvbi1wYXJzZXIgbGltaXQpKSAoKGVxIHNwZWNpYWwgKHF1b3Rl IGZpcnN0LXNlY3Rpb24pKSAob3JnLWVsZW1lbnQtc2VjdGlvbi1wYXJzZXIgKG9yIChzYXZlLWV4 Y3Vyc2lvbiAobGV0KiAoLi4uIC4uLiAuLi4gLi4uKSAob3V0bGluZS1uZXh0LWhlYWRpbmcpKSkg bGltaXQpKSkgKChub3QgKGJvbHApKSAob3JnLWVsZW1lbnQtcGFyYWdyYXBoLXBhcnNlciBsaW1p dCAobGlzdCAocG9pbnQpKSkpICgobG9va2luZy1hdCBvcmctcGxhbm5pbmctb3ItY2xvY2stbGlu ZS1yZSkgKGlmIChlcXVhbCAobWF0Y2gtc3RyaW5nIDEpIG9yZy1jbG9jay1zdHJpbmcpIChvcmct ZWxlbWVudC1jbG9jay1wYXJzZXIgbGltaXQpIChvcmctZWxlbWVudC1wbGFubmluZy1wYXJzZXIg bGltaXQpKSkgKChvcmctYXQtaGVhZGluZy1wKSAob3JnLWVsZW1lbnQtaW5saW5ldGFzay1wYXJz ZXIgbGltaXQgcmF3LXNlY29uZGFyeS1wKSkgKHQgKGxldCAoKGFmZmlsaWF0ZWQgKG9yZy1lbGVt ZW50LS1jb2xsZWN0LWFmZmlsaWF0ZWQta2V5d29yZHMgbGltaXQpKSkgKGNvbmQgKChhbmQgKGNk ciBhZmZpbGlhdGVkKSAoPj0gLi4uIGxpbWl0KSkgKGdvdG8tY2hhciAoY2FyIGFmZmlsaWF0ZWQp KSAob3JnLWVsZW1lbnQta2V5d29yZC1wYXJzZXIgbGltaXQgbmlsKSkgKChsb29raW5nLWF0ICJb ICAgICAgICBdKlxcXFxiZWdpbntbQS1aYS16MC05Kl0rfVxcKFxcWy4qP1xcXVxcfHsuKj99XFwp KlsgICAgIF0qJCIpIChvcmctZWxlbWVudC1sYXRleC1lbnZpcm9ubWVudC1wYXJzZXIgbGltaXQg YWZmaWxpYXRlZCkpICgobG9va2luZy1hdCBvcmctZHJhd2VyLXJlZ2V4cCkgKGlmIChlcXVhbCAu Li4gIlBST1BFUlRJRVMiKSAob3JnLWVsZW1lbnQtcHJvcGVydHktZHJhd2VyLXBhcnNlciBsaW1p dCBhZmZpbGlhdGVkKSAob3JnLWVsZW1lbnQtZHJhd2VyLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVk KSkpICgobG9va2luZy1hdCAiWyAgICAgICAgXSo6XFwoIFxcfCRcXCkiKSAob3JnLWVsZW1lbnQt Zml4ZWQtd2lkdGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlsgICAg IF0qIyIpIChnb3RvLWNoYXIgKG1hdGNoLWVuZCAwKSkgKGNvbmQgKC4uLiAuLi4gLi4uKSAoLi4u IC4uLiAuLi4pICguLi4gLi4uIC4uLikgKC4uLiAuLi4gLi4uKSAoLi4uIC4uLiAuLi4pICh0IC4u LiAuLi4pKSkgKChsb29raW5nLWF0IG9yZy1mb290bm90ZS1kZWZpbml0aW9uLXJlKSAob3JnLWVs ZW1lbnQtZm9vdG5vdGUtZGVmaW5pdGlvbi1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9v a2luZy1hdCAiWyAgIF0qLVxcezUsXFx9WyAgICBdKiQiKSAob3JnLWVsZW1lbnQtaG9yaXpvbnRh bC1ydWxlLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICIlJSgiKSAob3Jn LWVsZW1lbnQtZGlhcnktc2V4cC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgob3JnLWF0LXRh YmxlLXAgdCkgKG9yZy1lbGVtZW50LXRhYmxlLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChs b29raW5nLWF0IChvcmctaXRlbS1yZSkpIChvcmctZWxlbWVudC1wbGFpbi1saXN0LXBhcnNlciBs aW1pdCBhZmZpbGlhdGVkIChvciBzdHJ1Y3R1cmUgLi4uKSkpICh0IChvcmctZWxlbWVudC1wYXJh Z3JhcGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSkpKSkpCiAgKHNhdmUtZXhjdXJzaW9uIChs ZXQgKChjYXNlLWZvbGQtc2VhcmNoIHQpIChyYXctc2Vjb25kYXJ5LXAgKGFuZCBncmFudWxhcml0 eSAobm90IChlcSBncmFudWxhcml0eSAocXVvdGUgb2JqZWN0KSkpKSkpIChjb25kICgoZXEgc3Bl Y2lhbCAocXVvdGUgaXRlbSkpIChvcmctZWxlbWVudC1pdGVtLXBhcnNlciBsaW1pdCBzdHJ1Y3R1 cmUgcmF3LXNlY29uZGFyeS1wKSkgKChlcSBzcGVjaWFsIChxdW90ZSB0YWJsZS1yb3cpKSAob3Jn LWVsZW1lbnQtdGFibGUtcm93LXBhcnNlciBsaW1pdCkpICgoZXEgc3BlY2lhbCAocXVvdGUgbm9k ZS1wcm9wZXJ0eSkpIChvcmctZWxlbWVudC1ub2RlLXByb3BlcnR5LXBhcnNlciBsaW1pdCkpICgo bGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVn ZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3Jn LW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmct b3V0bGluZS1yZWdleHApKSkgKG9yZy1hdC1oZWFkaW5nLXApKSAob3JnLWVsZW1lbnQtaGVhZGxp bmUtcGFyc2VyIGxpbWl0IHJhdy1zZWNvbmRhcnktcCkpICgoZXEgc3BlY2lhbCAocXVvdGUgc2Vj dGlvbikpIChvcmctZWxlbWVudC1zZWN0aW9uLXBhcnNlciBsaW1pdCkpICgoZXEgc3BlY2lhbCAo cXVvdGUgZmlyc3Qtc2VjdGlvbikpIChvcmctZWxlbWVudC1zZWN0aW9uLXBhcnNlciAob3IgKHNh dmUtZXhjdXJzaW9uIChsZXQqIC4uLiAuLi4pKSBsaW1pdCkpKSAoKG5vdCAoYm9scCkpIChvcmct ZWxlbWVudC1wYXJhZ3JhcGgtcGFyc2VyIGxpbWl0IChsaXN0IChwb2ludCkpKSkgKChsb29raW5n LWF0IG9yZy1wbGFubmluZy1vci1jbG9jay1saW5lLXJlKSAoaWYgKGVxdWFsIChtYXRjaC1zdHJp bmcgMSkgb3JnLWNsb2NrLXN0cmluZykgKG9yZy1lbGVtZW50LWNsb2NrLXBhcnNlciBsaW1pdCkg KG9yZy1lbGVtZW50LXBsYW5uaW5nLXBhcnNlciBsaW1pdCkpKSAoKG9yZy1hdC1oZWFkaW5nLXAp IChvcmctZWxlbWVudC1pbmxpbmV0YXNrLXBhcnNlciBsaW1pdCByYXctc2Vjb25kYXJ5LXApKSAo dCAobGV0ICgoYWZmaWxpYXRlZCAob3JnLWVsZW1lbnQtLWNvbGxlY3QtYWZmaWxpYXRlZC1rZXl3 b3JkcyBsaW1pdCkpKSAoY29uZCAoKGFuZCAuLi4gLi4uKSAoZ290by1jaGFyIC4uLikgKG9yZy1l bGVtZW50LWtleXdvcmQtcGFyc2VyIGxpbWl0IG5pbCkpICgobG9va2luZy1hdCAiWyAgICAgIF0q XFxcXGJlZ2lue1tBLVphLXowLTkqXSt9XFwoXFxbLio/XFxdXFx8ey4qP31cXCkqWyAgICAgXSok IikgKG9yZy1lbGVtZW50LWxhdGV4LWVudmlyb25tZW50LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVk KSkgKChsb29raW5nLWF0IG9yZy1kcmF3ZXItcmVnZXhwKSAoaWYgLi4uIC4uLiAuLi4pKSAoKGxv b2tpbmctYXQgIlsgICAgICAgIF0qOlxcKCBcXHwkXFwpIikgKG9yZy1lbGVtZW50LWZpeGVkLXdp ZHRoLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJbICAgICBdKiMiKSAo Z290by1jaGFyIC4uLikgKGNvbmQgLi4uIC4uLiAuLi4gLi4uIC4uLiAuLi4pKSAoKGxvb2tpbmct YXQgb3JnLWZvb3Rub3RlLWRlZmluaXRpb24tcmUpIChvcmctZWxlbWVudC1mb290bm90ZS1kZWZp bml0aW9uLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJbICAgICAgIF0q LVxcezUsXFx9WyAgICBdKiQiKSAob3JnLWVsZW1lbnQtaG9yaXpvbnRhbC1ydWxlLXBhcnNlciBs aW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICIlJSgiKSAob3JnLWVsZW1lbnQtZGlhcnkt c2V4cC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgob3JnLWF0LXRhYmxlLXAgdCkgKG9yZy1l bGVtZW50LXRhYmxlLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0IC4uLikg KG9yZy1lbGVtZW50LXBsYWluLWxpc3QtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQgLi4uKSkgKHQg KG9yZy1lbGVtZW50LXBhcmFncmFwaC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpKSkpKSkpCiAg b3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVudCgyNTc3MDYgZWxlbWVudCBuaWwgbmlsKQogIChz ZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50LS1jdXJyZW50LWVsZW1lbnQgZW5kIChxdW90ZSBlbGVt ZW50KSBzcGVjaWFsLWZsYWcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpzdHJ1Y3R1cmUgcGFyZW50 KSkpCiAgKGlmIGVsZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50LS1jdXJyZW50 LWVsZW1lbnQgZW5kIChxdW90ZSBlbGVtZW50KSBzcGVjaWFsLWZsYWcgKG9yZy1lbGVtZW50LXBy b3BlcnR5IDpzdHJ1Y3R1cmUgcGFyZW50KSkpIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgZWxl bWVudCA6cGFyZW50IHBhcmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQgZWxlbWVudCkpCiAg KHdoaWxlIHQgKGlmIHN5bmNwIChwcm9nbiAoY29uZCAoKD0gKHBvaW50KSBwb3MpICh0aHJvdyAo cXVvdGUgZXhpdCkgcGFyZW50KSkgKChvcmctZWxlbWVudC0tY2FjaGUtaW50ZXJydXB0LXAgdGlt ZS1saW1pdCkgKHRocm93IChxdW90ZSBpbnRlcnJ1cHQpIG5pbCkpKSkpIChpZiBlbGVtZW50IG5p bCAoc2V0cSBlbGVtZW50IChvcmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50IGVuZCAocXVvdGUg ZWxlbWVudCkgc3BlY2lhbC1mbGFnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6c3RydWN0dXJlIHBh cmVudCkpKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQp IChvcmctZWxlbWVudC0tY2FjaGUtcHV0IGVsZW1lbnQpKSAobGV0ICgoZWxlbS1lbmQgKG9yZy1l bGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkpICh0eXBlIChvcmctZWxlbWVudC10eXBlIGVs ZW1lbnQpKSkgKGNvbmQgKChhbmQgKDw9IGVsZW0tZW5kIHBvcykgKC89IChwb2ludC1tYXgpIGVs ZW0tZW5kKSkgKGdvdG8tY2hhciBlbGVtLWVuZCkpICgobm90IChtZW1xIHR5cGUgb3JnLWVsZW1l bnQtZ3JlYXRlci1lbGVtZW50cykpICh0aHJvdyAocXVvdGUgZXhpdCkgZWxlbWVudCkpICgobGV0 ICgoY2JlZyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmNvbnRlbnRzLWJlZ2luIGVsZW1lbnQpKSAo Y2VuZCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmNvbnRlbnRzLWVuZCBlbGVtZW50KSkpIChpZiAo b3Igc3luY3AgKGFuZCBjYmVnIGNlbmQgLi4uIC4uLikpIChwcm9nbiAoZ290by1jaGFyIC4uLikg KHNldHEgbmV4dCBuaWwgc3BlY2lhbC1mbGFnIC4uLiBwYXJlbnQgZWxlbWVudCBlbmQgY2VuZCkp KSkpICh0ICh0aHJvdyAocXVvdGUgZXhpdCkgZWxlbWVudCkpKSkgKHNldHEgZWxlbWVudCBuaWwp KQogIChsZXQgKChlbmQgKG9yIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQpIChz YXZlLWV4Y3Vyc2lvbiAobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAo b3JnLW91dGxpbmUtcmVnZXhwIC4uLikgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4 cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgLi4uKSkgKG91dGxpbmUtbmV4dC1oZWFkaW5nKSkg KHBvaW50KSkpKSAocGFyZW50IGVsZW1lbnQpIHNwZWNpYWwtZmxhZykgKHdoaWxlIHQgKGlmIHN5 bmNwIChwcm9nbiAoY29uZCAoKD0gKHBvaW50KSBwb3MpICh0aHJvdyAocXVvdGUgZXhpdCkgcGFy ZW50KSkgKChvcmctZWxlbWVudC0tY2FjaGUtaW50ZXJydXB0LXAgdGltZS1saW1pdCkgKHRocm93 IChxdW90ZSBpbnRlcnJ1cHQpIG5pbCkpKSkpIChpZiBlbGVtZW50IG5pbCAoc2V0cSBlbGVtZW50 IChvcmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50IGVuZCAocXVvdGUgZWxlbWVudCkgc3BlY2lh bC1mbGFnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6c3RydWN0dXJlIHBhcmVudCkpKSAob3JnLWVs ZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQpIChvcmctZWxlbWVudC0t Y2FjaGUtcHV0IGVsZW1lbnQpKSAobGV0ICgoZWxlbS1lbmQgKG9yZy1lbGVtZW50LXByb3BlcnR5 IDplbmQgZWxlbWVudCkpICh0eXBlIChvcmctZWxlbWVudC10eXBlIGVsZW1lbnQpKSkgKGNvbmQg KChhbmQgKDw9IGVsZW0tZW5kIHBvcykgKC89IChwb2ludC1tYXgpIGVsZW0tZW5kKSkgKGdvdG8t Y2hhciBlbGVtLWVuZCkpICgobm90IChtZW1xIHR5cGUgb3JnLWVsZW1lbnQtZ3JlYXRlci1lbGVt ZW50cykpICh0aHJvdyAocXVvdGUgZXhpdCkgZWxlbWVudCkpICgobGV0ICgoY2JlZyAuLi4pIChj ZW5kIC4uLikpIChpZiAob3Igc3luY3AgLi4uKSAocHJvZ24gLi4uIC4uLikpKSkgKHQgKHRocm93 IChxdW90ZSBleGl0KSBlbGVtZW50KSkpKSAoc2V0cSBlbGVtZW50IG5pbCkpKQogIChsZXQqICgo Y2FjaGVkIChhbmQgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKG9yZy1lbGVtZW50LS1j YWNoZS1maW5kIHBvcyBuaWwpKSkgKGJlZ2luIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6YmVnaW4g Y2FjaGVkKSkgZWxlbWVudCBuZXh0KSAoY29uZCAoKG5vdCBjYWNoZWQpIChpZiAobGV0KiAoKG9y Zy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmct Z2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUt cmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1y ZWdleHApKSkgKG91dGxpbmUtcHJldmlvdXMtaGVhZGluZykpIChwcm9nbiAoZm9yd2FyZC1saW5l KSkpIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkgKCg9 IHBvcyBiZWdpbikgKHRocm93IChxdW90ZSBleGl0KSAoaWYgc3luY3AgKG9yZy1lbGVtZW50LXBy b3BlcnR5IDpwYXJlbnQgY2FjaGVkKSBjYWNoZWQpKSkgKChyZS1zZWFyY2gtYmFja3dhcmQgKGxl dCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4 cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1v dXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91 dGxpbmUtcmVnZXhwKSkpIG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wpIGJlZ2luIHQpIChmb3J3YXJk LWxpbmUpIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkg KHQgKGxldCAoKHVwIGNhY2hlZCkgKHBvcyAoaWYgKD0gLi4uIHBvcykgKDEtIHBvcykgcG9zKSkp IChnb3RvLWNoYXIgKG9yIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6Y29udGVudHMtYmVnaW4gY2Fj aGVkKSBiZWdpbikpICh3aGlsZSAobGV0ICgoZW5kIC4uLikpIChhbmQgKDw9IGVuZCBwb3MpIChn b3RvLWNoYXIgZW5kKSAoc2V0cSB1cCAuLi4pKSkpIChjb25kICgobm90IHVwKSkgKChlb2JwKSAo c2V0cSBlbGVtZW50IHVwKSkgKHQgKHNldHEgZWxlbWVudCB1cCBuZXh0IChwb2ludCkpKSkpKSkg KGxldCAoKGVuZCAob3IgKG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkgKHNhdmUt ZXhjdXJzaW9uIChsZXQqICguLi4gLi4uIC4uLiAuLi4pIChvdXRsaW5lLW5leHQtaGVhZGluZykp IChwb2ludCkpKSkgKHBhcmVudCBlbGVtZW50KSBzcGVjaWFsLWZsYWcpICh3aGlsZSB0IChpZiBz eW5jcCAocHJvZ24gKGNvbmQgKCg9IC4uLiBwb3MpICh0aHJvdyAuLi4gcGFyZW50KSkgKChvcmct ZWxlbWVudC0tY2FjaGUtaW50ZXJydXB0LXAgdGltZS1saW1pdCkgKHRocm93IC4uLiBuaWwpKSkp KSAoaWYgZWxlbWVudCBuaWwgKHNldHEgZWxlbWVudCAob3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxl bWVudCBlbmQgKHF1b3RlIGVsZW1lbnQpIHNwZWNpYWwtZmxhZyAob3JnLWVsZW1lbnQtcHJvcGVy dHkgOnN0cnVjdHVyZSBwYXJlbnQpKSkgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBlbGVtZW50 IDpwYXJlbnQgcGFyZW50KSAob3JnLWVsZW1lbnQtLWNhY2hlLXB1dCBlbGVtZW50KSkgKGxldCAo KGVsZW0tZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQpKSAodHlwZSAob3Jn LWVsZW1lbnQtdHlwZSBlbGVtZW50KSkpIChjb25kICgoYW5kICg8PSBlbGVtLWVuZCBwb3MpICgv PSAuLi4gZWxlbS1lbmQpKSAoZ290by1jaGFyIGVsZW0tZW5kKSkgKChub3QgKG1lbXEgdHlwZSBv cmctZWxlbWVudC1ncmVhdGVyLWVsZW1lbnRzKSkgKHRocm93IChxdW90ZSBleGl0KSBlbGVtZW50 KSkgKChsZXQgKC4uLiAuLi4pIChpZiAuLi4gLi4uKSkpICh0ICh0aHJvdyAocXVvdGUgZXhpdCkg ZWxlbWVudCkpKSkgKHNldHEgZWxlbWVudCBuaWwpKSkpCiAgKHNhdmUtcmVzdHJpY3Rpb24gKHdp ZGVuKSAoZ290by1jaGFyIHBvcykgKGxldCogKChjYWNoZWQgKGFuZCAob3JnLWVsZW1lbnQtLWNh Y2hlLWFjdGl2ZS1wKSAob3JnLWVsZW1lbnQtLWNhY2hlLWZpbmQgcG9zIG5pbCkpKSAoYmVnaW4g KG9yZy1lbGVtZW50LXByb3BlcnR5IDpiZWdpbiBjYWNoZWQpKSBlbGVtZW50IG5leHQpIChjb25k ICgobm90IGNhY2hlZCkgKGlmIChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxz IHQpIChvcmctb3V0bGluZS1yZWdleHAgLi4uKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUt cmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAuLi4pKSAob3V0bGluZS1wcmV2aW91cy1o ZWFkaW5nKSkgKHByb2duIChmb3J3YXJkLWxpbmUpKSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0J XG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAoKD0gcG9zIGJlZ2luKSAodGhyb3cgKHF1b3RlIGV4 aXQpIChpZiBzeW5jcCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhcmVudCBjYWNoZWQpIGNhY2hl ZCkpKSAoKHJlLXNlYXJjaC1iYWNrd2FyZCAobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVk LWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIC4uLikgKG91dGxpbmUtcmVnZXhwIG9yZy1v dXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgLi4uKSkgb3JnLW91dGxpbmUt cmVnZXhwLWJvbCkgYmVnaW4gdCkgKGZvcndhcmQtbGluZSkgKHNraXAtY2hhcnMtZm9yd2FyZCAi IA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAodCAobGV0ICgodXAgY2FjaGVkKSAocG9zIChp ZiAuLi4gLi4uIHBvcykpKSAoZ290by1jaGFyIChvciAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmNv bnRlbnRzLWJlZ2luIGNhY2hlZCkgYmVnaW4pKSAod2hpbGUgKGxldCAoLi4uKSAoYW5kIC4uLiAu Li4gLi4uKSkpIChjb25kICgobm90IHVwKSkgKChlb2JwKSAoc2V0cSBlbGVtZW50IHVwKSkgKHQg KHNldHEgZWxlbWVudCB1cCBuZXh0IC4uLikpKSkpKSAobGV0ICgoZW5kIChvciAob3JnLWVsZW1l bnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSAoc2F2ZS1leGN1cnNpb24gKGxldCogLi4uIC4uLikg KHBvaW50KSkpKSAocGFyZW50IGVsZW1lbnQpIHNwZWNpYWwtZmxhZykgKHdoaWxlIHQgKGlmIHN5 bmNwIChwcm9nbiAoY29uZCAoLi4uIC4uLikgKC4uLiAuLi4pKSkpIChpZiBlbGVtZW50IG5pbCAo c2V0cSBlbGVtZW50IChvcmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50IGVuZCAocXVvdGUgZWxl bWVudCkgc3BlY2lhbC1mbGFnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6c3RydWN0dXJlIHBhcmVu dCkpKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQpIChv cmctZWxlbWVudC0tY2FjaGUtcHV0IGVsZW1lbnQpKSAobGV0ICgoZWxlbS1lbmQgKG9yZy1lbGVt ZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkpICh0eXBlIChvcmctZWxlbWVudC10eXBlIGVsZW1l bnQpKSkgKGNvbmQgKChhbmQgLi4uIC4uLikgKGdvdG8tY2hhciBlbGVtLWVuZCkpICgobm90IC4u LikgKHRocm93IC4uLiBlbGVtZW50KSkgKChsZXQgLi4uIC4uLikpICh0ICh0aHJvdyAuLi4gZWxl bWVudCkpKSkgKHNldHEgZWxlbWVudCBuaWwpKSkpKQogIChzYXZlLWV4Y3Vyc2lvbiAoc2F2ZS1y ZXN0cmljdGlvbiAod2lkZW4pIChnb3RvLWNoYXIgcG9zKSAobGV0KiAoKGNhY2hlZCAoYW5kIChv cmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChvcmctZWxlbWVudC0tY2FjaGUtZmluZCBwb3Mg bmlsKSkpIChiZWdpbiAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmJlZ2luIGNhY2hlZCkpIGVsZW1l bnQgbmV4dCkgKGNvbmQgKChub3QgY2FjaGVkKSAoaWYgKGxldCogKC4uLiAuLi4gLi4uIC4uLikg KG91dGxpbmUtcHJldmlvdXMtaGVhZGluZykpIChwcm9nbiAoZm9yd2FyZC1saW5lKSkpIChza2lw LWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkgKCg9IHBvcyBiZWdp bikgKHRocm93IChxdW90ZSBleGl0KSAoaWYgc3luY3AgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpw YXJlbnQgY2FjaGVkKSBjYWNoZWQpKSkgKChyZS1zZWFyY2gtYmFja3dhcmQgKGxldCogKC4uLiAu Li4gLi4uIC4uLikgb3JnLW91dGxpbmUtcmVnZXhwLWJvbCkgYmVnaW4gdCkgKGZvcndhcmQtbGlu ZSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAodCAo bGV0ICgodXAgY2FjaGVkKSAocG9zIC4uLikpIChnb3RvLWNoYXIgKG9yIC4uLiBiZWdpbikpICh3 aGlsZSAobGV0IC4uLiAuLi4pKSAoY29uZCAoLi4uKSAoLi4uIC4uLikgKHQgLi4uKSkpKSkgKGxl dCAoKGVuZCAob3IgKG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkgKHNhdmUtZXhj dXJzaW9uIC4uLiAuLi4pKSkgKHBhcmVudCBlbGVtZW50KSBzcGVjaWFsLWZsYWcpICh3aGlsZSB0 IChpZiBzeW5jcCAocHJvZ24gKGNvbmQgLi4uIC4uLikpKSAoaWYgZWxlbWVudCBuaWwgKHNldHEg ZWxlbWVudCAob3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVudCBlbmQgLi4uIHNwZWNpYWwtZmxh ZyAuLi4pKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQp IChvcmctZWxlbWVudC0tY2FjaGUtcHV0IGVsZW1lbnQpKSAobGV0ICgoZWxlbS1lbmQgLi4uKSAo dHlwZSAuLi4pKSAoY29uZCAoLi4uIC4uLikgKC4uLiAuLi4pICguLi4pICh0IC4uLikpKSAoc2V0 cSBlbGVtZW50IG5pbCkpKSkpKQogIChjYXRjaCAocXVvdGUgZXhpdCkgKHNhdmUtZXhjdXJzaW9u IChzYXZlLXJlc3RyaWN0aW9uICh3aWRlbikgKGdvdG8tY2hhciBwb3MpIChsZXQqICgoY2FjaGVk IChhbmQgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKG9yZy1lbGVtZW50LS1jYWNoZS1m aW5kIHBvcyBuaWwpKSkgKGJlZ2luIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6YmVnaW4gY2FjaGVk KSkgZWxlbWVudCBuZXh0KSAoY29uZCAoKG5vdCBjYWNoZWQpIChpZiAobGV0KiAuLi4gLi4uKSAo cHJvZ24gLi4uKSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxp bmUpKSAoKD0gcG9zIGJlZ2luKSAodGhyb3cgKHF1b3RlIGV4aXQpIChpZiBzeW5jcCAuLi4gY2Fj aGVkKSkpICgocmUtc2VhcmNoLWJhY2t3YXJkIChsZXQqIC4uLiBvcmctb3V0bGluZS1yZWdleHAt Ym9sKSBiZWdpbiB0KSAoZm9yd2FyZC1saW5lKSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIp IChiZWdpbm5pbmctb2YtbGluZSkpICh0IChsZXQgKC4uLiAuLi4pIChnb3RvLWNoYXIgLi4uKSAo d2hpbGUgLi4uKSAoY29uZCAuLi4gLi4uIC4uLikpKSkgKGxldCAoKGVuZCAob3IgLi4uIC4uLikp IChwYXJlbnQgZWxlbWVudCkgc3BlY2lhbC1mbGFnKSAod2hpbGUgdCAoaWYgc3luY3AgKHByb2du IC4uLikpIChpZiBlbGVtZW50IG5pbCAoc2V0cSBlbGVtZW50IC4uLikgKG9yZy1lbGVtZW50LXB1 dC1wcm9wZXJ0eSBlbGVtZW50IDpwYXJlbnQgcGFyZW50KSAob3JnLWVsZW1lbnQtLWNhY2hlLXB1 dCBlbGVtZW50KSkgKGxldCAoLi4uIC4uLikgKGNvbmQgLi4uIC4uLiAuLi4gLi4uKSkgKHNldHEg ZWxlbWVudCBuaWwpKSkpKSkpCiAgb3JnLWVsZW1lbnQtLXBhcnNlLXRvKDI1NzI4MCkKICAoY29u ZCAoKGJvYnApIG5pbCkgKChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQp IChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChv dXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9s IChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3JnLWF0LWhlYWRpbmctcCkpIChi ZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNlciAocG9pbnQtbWF4 KSB0KSkgKHQgKGlmIChvcmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChwcm9nbiAoaWYgKG5v dCBvcmctZWxlbWVudC0tY2FjaGUpIChvcmctZWxlbWVudC1jYWNoZS1yZXNldCkgKG9yZy1lbGVt ZW50LS1jYWNoZS1zeW5jIChjdXJyZW50LWJ1ZmZlcikgb3JpZ2luKSkpKSAob3JnLWVsZW1lbnQt LXBhcnNlLXRvIG9yaWdpbikpKQogIChsZXQgKChvcmlnaW4gKHBvaW50KSkpIChlbmQtb2YtbGlu ZSkgKHNraXAtY2hhcnMtYmFja3dhcmQgIiANCVxuIikgKGNvbmQgKChib2JwKSBuaWwpICgobGV0 KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhw IChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91 dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0 bGluZS1yZWdleHApKSkgKG9yZy1hdC1oZWFkaW5nLXApKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChv cmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIgKHBvaW50LW1heCkgdCkpICh0IChpZiAob3JnLWVs ZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAocHJvZ24gKGlmIChub3Qgb3JnLWVsZW1lbnQtLWNhY2hl KSAob3JnLWVsZW1lbnQtY2FjaGUtcmVzZXQpIChvcmctZWxlbWVudC0tY2FjaGUtc3luYyAoY3Vy cmVudC1idWZmZXIpIG9yaWdpbikpKSkgKG9yZy1lbGVtZW50LS1wYXJzZS10byBvcmlnaW4pKSkp CiAgKHNhdmUtcmVzdHJpY3Rpb24gKHdpZGVuKSAobGV0ICgob3JpZ2luIChwb2ludCkpKSAoZW5k LW9mLWxpbmUpIChza2lwLWNoYXJzLWJhY2t3YXJkICIgDQlcbiIpIChjb25kICgoYm9icCkgbmls KSAoKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5l LXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhw IG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIg b3JnLW91dGxpbmUtcmVnZXhwKSkpIChvcmctYXQtaGVhZGluZy1wKSkgKGJlZ2lubmluZy1vZi1s aW5lKSAob3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFyc2VyIChwb2ludC1tYXgpIHQpKSAodCAoaWYg KG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKHByb2duIChpZiAobm90IG9yZy1lbGVtZW50 LS1jYWNoZSkgKG9yZy1lbGVtZW50LWNhY2hlLXJlc2V0KSAob3JnLWVsZW1lbnQtLWNhY2hlLXN5 bmMgLi4uIG9yaWdpbikpKSkgKG9yZy1lbGVtZW50LS1wYXJzZS10byBvcmlnaW4pKSkpKQogIChz YXZlLWV4Y3Vyc2lvbiAoc2F2ZS1yZXN0cmljdGlvbiAod2lkZW4pIChsZXQgKChvcmlnaW4gKHBv aW50KSkpIChlbmQtb2YtbGluZSkgKHNraXAtY2hhcnMtYmFja3dhcmQgIiANCVxuIikgKGNvbmQg KChib2JwKSBuaWwpICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAo b3JnLW91dGxpbmUtcmVnZXhwIC4uLikgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4 cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgLi4uKSkgKG9yZy1hdC1oZWFkaW5nLXApKSAoYmVn aW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIgKHBvaW50LW1heCkg dCkpICh0IChpZiAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAocHJvZ24gKGlmIC4uLiAu Li4gLi4uKSkpIChvcmctZWxlbWVudC0tcGFyc2UtdG8gb3JpZ2luKSkpKSkpCiAgb3JnLWVsZW1l bnQtYXQtcG9pbnQoKQogIChsZXQgKChkcmF3ZXIgKG9yZy1lbGVtZW50LWF0LXBvaW50KSkpIChp ZiAoYW5kIChlcSAob3JnLWVsZW1lbnQtdHlwZSBkcmF3ZXIpIChxdW90ZSBwcm9wZXJ0eS1kcmF3 ZXIpKSAobGV0ICgocCBkcmF3ZXIpKSAod2hpbGUgKGFuZCAoc2V0cSBwIChvcmctZWxlbWVudC1w cm9wZXJ0eSA6cGFyZW50IHApKSAobm90IChlcSAuLi4gLi4uKSkpKSAobm90IHApKSkgKHByb2du IChsZXQgKChlbmQgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpjb250ZW50cy1lbmQgZHJhd2VyKSkp IChpZiBlbmQgKHByb2duIChmb3J3YXJkLWxpbmUpICh3aGlsZSAoPCAuLi4gZW5kKSAoaWYgLi4u IC4uLikgKGZvcndhcmQtbGluZSkpKSkpKSkpCiAgKHdoaWxlIChhbmQgKG51bGwgcGxpc3QpIChy ZS1zZWFyY2gtZm9yd2FyZCBvcmctcHJvcGVydHktc3RhcnQtcmUgZW5kIHQpKSAobGV0ICgoZHJh d2VyIChvcmctZWxlbWVudC1hdC1wb2ludCkpKSAoaWYgKGFuZCAoZXEgKG9yZy1lbGVtZW50LXR5 cGUgZHJhd2VyKSAocXVvdGUgcHJvcGVydHktZHJhd2VyKSkgKGxldCAoKHAgZHJhd2VyKSkgKHdo aWxlIChhbmQgKHNldHEgcCAuLi4pIChub3QgLi4uKSkpIChub3QgcCkpKSAocHJvZ24gKGxldCAo KGVuZCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmNvbnRlbnRzLWVuZCBkcmF3ZXIpKSkgKGlmIGVu ZCAocHJvZ24gKGZvcndhcmQtbGluZSkgKHdoaWxlIC4uLiAuLi4gLi4uKSkpKSkpKSkKICAoc2F2 ZS1leGN1cnNpb24gKHdoaWxlIChhbmQgKG51bGwgcGxpc3QpIChyZS1zZWFyY2gtZm9yd2FyZCBv cmctcHJvcGVydHktc3RhcnQtcmUgZW5kIHQpKSAobGV0ICgoZHJhd2VyIChvcmctZWxlbWVudC1h dC1wb2ludCkpKSAoaWYgKGFuZCAoZXEgKG9yZy1lbGVtZW50LXR5cGUgZHJhd2VyKSAocXVvdGUg cHJvcGVydHktZHJhd2VyKSkgKGxldCAoKHAgZHJhd2VyKSkgKHdoaWxlIChhbmQgLi4uIC4uLikp IChub3QgcCkpKSAocHJvZ24gKGxldCAoKGVuZCAuLi4pKSAoaWYgZW5kIChwcm9nbiAuLi4gLi4u KSkpKSkpKSBwbGlzdCkKICAobGV0ICgoZW5kIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAoKG9yZy1j YWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0 LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVn ZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdl eHApKSkgKG91dGxpbmUtbmV4dC1oZWFkaW5nKSkgKHBvaW50KSkpIHBsaXN0KSAoc2F2ZS1leGN1 cnNpb24gKHdoaWxlIChhbmQgKG51bGwgcGxpc3QpIChyZS1zZWFyY2gtZm9yd2FyZCBvcmctcHJv cGVydHktc3RhcnQtcmUgZW5kIHQpKSAobGV0ICgoZHJhd2VyIChvcmctZWxlbWVudC1hdC1wb2lu dCkpKSAoaWYgKGFuZCAoZXEgKG9yZy1lbGVtZW50LXR5cGUgZHJhd2VyKSAocXVvdGUgcHJvcGVy dHktZHJhd2VyKSkgKGxldCAoLi4uKSAod2hpbGUgLi4uKSAobm90IHApKSkgKHByb2duIChsZXQg KC4uLikgKGlmIGVuZCAuLi4pKSkpKSkgcGxpc3QpKQogIChsZXQqICgoY29tcG9uZW50cyAob3Jn LWhlYWRpbmctY29tcG9uZW50cykpIChsZXZlbCAobnRoIDEgY29tcG9uZW50cykpICh0b2RvIChu dGggMiBjb21wb25lbnRzKSkgKHRvZG8tdHlwZSAoYW5kIHRvZG8gKGlmIChtZW1iZXIgdG9kbyBv cmctZG9uZS1rZXl3b3JkcykgKHF1b3RlIGRvbmUpIChxdW90ZSB0b2RvKSkpKSAodGFncyAobGV0 ICgocmF3LXRhZ3MgKG50aCA1IGNvbXBvbmVudHMpKSkgKGFuZCByYXctdGFncyAob3JnLXNwbGl0 LXN0cmluZyByYXctdGFncyAiOiIpKSkpIChyYXctdmFsdWUgKG9yIChudGggNCBjb21wb25lbnRz KSAiIikpIChjb21tZW50ZWRwIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIG5pbCkpIChzdHJpbmct bWF0Y2ggKGZvcm1hdCAiXiVzXFwoIFxcfCRcXCkiIG9yZy1jb21tZW50LXN0cmluZykgcmF3LXZh bHVlKSkpIChhcmNoaXZlZHAgKG1lbWJlciBvcmctYXJjaGl2ZS10YWcgdGFncykpIChmb290bm90 ZS1zZWN0aW9uLXAgKGFuZCBvcmctZm9vdG5vdGUtc2VjdGlvbiAoc3RyaW5nPSBvcmctZm9vdG5v dGUtc2VjdGlvbiByYXctdmFsdWUpKSkgKHN0YW5kYXJkLXByb3BzIChsZXQgKChlbmQgKHNhdmUt ZXhjdXJzaW9uIChsZXQqIC4uLiAuLi4pIChwb2ludCkpKSBwbGlzdCkgKHNhdmUtZXhjdXJzaW9u ICh3aGlsZSAoYW5kIChudWxsIHBsaXN0KSAocmUtc2VhcmNoLWZvcndhcmQgb3JnLXByb3BlcnR5 LXN0YXJ0LXJlIGVuZCB0KSkgKGxldCAoLi4uKSAoaWYgLi4uIC4uLikpKSBwbGlzdCkpKSAodGlt ZS1wcm9wcyAoc2F2ZS1leGN1cnNpb24gKGZvcndhcmQtbGluZSkgKGlmIChsb29raW5nLWF0IG9y Zy1wbGFubmluZy1vci1jbG9jay1saW5lLXJlKSAocHJvZ24gKGxldCAoLi4uIHBsaXN0KSAod2hp bGUgLi4uIC4uLiAuLi4gLi4uKSBwbGlzdCkpKSkpIChiZWdpbiAocG9pbnQpKSAoZW5kIChtaW4g KHNhdmUtZXhjdXJzaW9uIChvcmctZW5kLW9mLXN1YnRyZWUgdCB0KSkgbGltaXQpKSAocG9zLWFm dGVyLWhlYWQgKHByb2duIChmb3J3YXJkLWxpbmUpIChwb2ludCkpKSAoY29udGVudHMtYmVnaW4g KHNhdmUtZXhjdXJzaW9uIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIiBlbmQpIChhbmQgKC89 IChwb2ludCkgZW5kKSAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pKSkpIChjb250ZW50cy1lbmQg KGFuZCBjb250ZW50cy1iZWdpbiAocHJvZ24gKGdvdG8tY2hhciBlbmQpIChza2lwLWNoYXJzLWJh Y2t3YXJkICIgDQlcbiIpIChmb3J3YXJkLWxpbmUpIChwb2ludCkpKSkpIChpZiBjb21tZW50ZWRw IChwcm9nbiAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCBuaWwpKSAoc2V0cSByYXctdmFsdWUgKHJl cGxhY2UtcmVnZXhwLWluLXN0cmluZyAoY29uY2F0IChyZWdleHAtcXVvdGUgb3JnLWNvbW1lbnQt c3RyaW5nKSAiXFwoPzogXFx8JFxcKSIpICIiIHJhdy12YWx1ZSkpKSkpIChpZiBhcmNoaXZlZHAg KHByb2duIChzZXRxIHRhZ3MgKGRlbGV0ZSBvcmctYXJjaGl2ZS10YWcgdGFncykpKSkgKGxldCAo KGhlYWRsaW5lIChsaXN0IChxdW90ZSBoZWFkbGluZSkgKG5jb25jIChsaXN0IDpyYXctdmFsdWUg cmF3LXZhbHVlIDpiZWdpbiBiZWdpbiA6ZW5kIGVuZCA6cHJlLWJsYW5rIChpZiAuLi4gMCAuLi4p IDpjb250ZW50cy1iZWdpbiBjb250ZW50cy1iZWdpbiA6Y29udGVudHMtZW5kIGNvbnRlbnRzLWVu ZCA6bGV2ZWwgbGV2ZWwgOnByaW9yaXR5IChudGggMyBjb21wb25lbnRzKSA6dGFncyB0YWdzIDp0 b2RvLWtleXdvcmQgdG9kbyA6dG9kby10eXBlIHRvZG8tdHlwZSA6cG9zdC1ibGFuayAoY291bnQt bGluZXMgLi4uIGVuZCkgOmZvb3Rub3RlLXNlY3Rpb24tcCBmb290bm90ZS1zZWN0aW9uLXAgOmFy Y2hpdmVkcCBhcmNoaXZlZHAgOmNvbW1lbnRlZHAgY29tbWVudGVkcCkgdGltZS1wcm9wcyBzdGFu ZGFyZC1wcm9wcykpKSkgKGxldCAoKGFsdC10aXRsZSAob3JnLWVsZW1lbnQtcHJvcGVydHkgOkFM VF9USVRMRSBoZWFkbGluZSkpKSAoaWYgYWx0LXRpdGxlIChwcm9nbiAob3JnLWVsZW1lbnQtcHV0 LXByb3BlcnR5IGhlYWRsaW5lIDphbHQtdGl0bGUgKGlmIHJhdy1zZWNvbmRhcnktcCBhbHQtdGl0 bGUgKG9yZy1lbGVtZW50LXBhcnNlLXNlY29uZGFyeS1zdHJpbmcgYWx0LXRpdGxlIC4uLiBoZWFk bGluZSkpKSkpKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGhlYWRsaW5lIDp0aXRsZSAoaWYg cmF3LXNlY29uZGFyeS1wIHJhdy12YWx1ZSAob3JnLWVsZW1lbnQtcGFyc2Utc2Vjb25kYXJ5LXN0 cmluZyByYXctdmFsdWUgKG9yZy1lbGVtZW50LXJlc3RyaWN0aW9uIChxdW90ZSBoZWFkbGluZSkp IGhlYWRsaW5lKSkpKSkKICAoc2F2ZS1leGN1cnNpb24gKGxldCogKChjb21wb25lbnRzIChvcmct aGVhZGluZy1jb21wb25lbnRzKSkgKGxldmVsIChudGggMSBjb21wb25lbnRzKSkgKHRvZG8gKG50 aCAyIGNvbXBvbmVudHMpKSAodG9kby10eXBlIChhbmQgdG9kbyAoaWYgKG1lbWJlciB0b2RvIG9y Zy1kb25lLWtleXdvcmRzKSAocXVvdGUgZG9uZSkgKHF1b3RlIHRvZG8pKSkpICh0YWdzIChsZXQg KChyYXctdGFncyAobnRoIDUgY29tcG9uZW50cykpKSAoYW5kIHJhdy10YWdzIChvcmctc3BsaXQt c3RyaW5nIHJhdy10YWdzICI6IikpKSkgKHJhdy12YWx1ZSAob3IgKG50aCA0IGNvbXBvbmVudHMp ICIiKSkgKGNvbW1lbnRlZHAgKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggbmlsKSkgKHN0cmluZy1t YXRjaCAoZm9ybWF0ICJeJXNcXCggXFx8JFxcKSIgb3JnLWNvbW1lbnQtc3RyaW5nKSByYXctdmFs dWUpKSkgKGFyY2hpdmVkcCAobWVtYmVyIG9yZy1hcmNoaXZlLXRhZyB0YWdzKSkgKGZvb3Rub3Rl LXNlY3Rpb24tcCAoYW5kIG9yZy1mb290bm90ZS1zZWN0aW9uIChzdHJpbmc9IG9yZy1mb290bm90 ZS1zZWN0aW9uIHJhdy12YWx1ZSkpKSAoc3RhbmRhcmQtcHJvcHMgKGxldCAoKGVuZCAoc2F2ZS1l eGN1cnNpb24gLi4uIC4uLikpIHBsaXN0KSAoc2F2ZS1leGN1cnNpb24gKHdoaWxlIChhbmQgLi4u IC4uLikgKGxldCAuLi4gLi4uKSkgcGxpc3QpKSkgKHRpbWUtcHJvcHMgKHNhdmUtZXhjdXJzaW9u IChmb3J3YXJkLWxpbmUpIChpZiAobG9va2luZy1hdCBvcmctcGxhbm5pbmctb3ItY2xvY2stbGlu ZS1yZSkgKHByb2duIChsZXQgLi4uIC4uLiBwbGlzdCkpKSkpIChiZWdpbiAocG9pbnQpKSAoZW5k IChtaW4gKHNhdmUtZXhjdXJzaW9uIChvcmctZW5kLW9mLXN1YnRyZWUgdCB0KSkgbGltaXQpKSAo cG9zLWFmdGVyLWhlYWQgKHByb2duIChmb3J3YXJkLWxpbmUpIChwb2ludCkpKSAoY29udGVudHMt YmVnaW4gKHNhdmUtZXhjdXJzaW9uIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIiBlbmQpIChh bmQgKC89IChwb2ludCkgZW5kKSAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pKSkpIChjb250ZW50 cy1lbmQgKGFuZCBjb250ZW50cy1iZWdpbiAocHJvZ24gKGdvdG8tY2hhciBlbmQpIChza2lwLWNo YXJzLWJhY2t3YXJkICIgDQlcbiIpIChmb3J3YXJkLWxpbmUpIChwb2ludCkpKSkpIChpZiBjb21t ZW50ZWRwIChwcm9nbiAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCBuaWwpKSAoc2V0cSByYXctdmFs dWUgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZyAoY29uY2F0IC4uLiAiXFwoPzogXFx8JFxcKSIp ICIiIHJhdy12YWx1ZSkpKSkpIChpZiBhcmNoaXZlZHAgKHByb2duIChzZXRxIHRhZ3MgKGRlbGV0 ZSBvcmctYXJjaGl2ZS10YWcgdGFncykpKSkgKGxldCAoKGhlYWRsaW5lIChsaXN0IChxdW90ZSBo ZWFkbGluZSkgKG5jb25jIChsaXN0IDpyYXctdmFsdWUgcmF3LXZhbHVlIDpiZWdpbiBiZWdpbiA6 ZW5kIGVuZCA6cHJlLWJsYW5rIC4uLiA6Y29udGVudHMtYmVnaW4gY29udGVudHMtYmVnaW4gOmNv bnRlbnRzLWVuZCBjb250ZW50cy1lbmQgOmxldmVsIGxldmVsIDpwcmlvcml0eSAuLi4gOnRhZ3Mg dGFncyA6dG9kby1rZXl3b3JkIHRvZG8gOnRvZG8tdHlwZSB0b2RvLXR5cGUgOnBvc3QtYmxhbmsg Li4uIDpmb290bm90ZS1zZWN0aW9uLXAgZm9vdG5vdGUtc2VjdGlvbi1wIDphcmNoaXZlZHAgYXJj aGl2ZWRwIDpjb21tZW50ZWRwIGNvbW1lbnRlZHApIHRpbWUtcHJvcHMgc3RhbmRhcmQtcHJvcHMp KSkpIChsZXQgKChhbHQtdGl0bGUgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpBTFRfVElUTEUgaGVh ZGxpbmUpKSkgKGlmIGFsdC10aXRsZSAocHJvZ24gKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBo ZWFkbGluZSA6YWx0LXRpdGxlIChpZiByYXctc2Vjb25kYXJ5LXAgYWx0LXRpdGxlIC4uLikpKSkp IChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgaGVhZGxpbmUgOnRpdGxlIChpZiByYXctc2Vjb25k YXJ5LXAgcmF3LXZhbHVlIChvcmctZWxlbWVudC1wYXJzZS1zZWNvbmRhcnktc3RyaW5nIHJhdy12 YWx1ZSAob3JnLWVsZW1lbnQtcmVzdHJpY3Rpb24gKHF1b3RlIGhlYWRsaW5lKSkgaGVhZGxpbmUp KSkpKSkKICBvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIoMjU3NzA2IHQpCiAgKGNvbmQgKChl cSBzcGVjaWFsIChxdW90ZSBpdGVtKSkgKG9yZy1lbGVtZW50LWl0ZW0tcGFyc2VyIGxpbWl0IHN0 cnVjdHVyZSByYXctc2Vjb25kYXJ5LXApKSAoKGVxIHNwZWNpYWwgKHF1b3RlIHRhYmxlLXJvdykp IChvcmctZWxlbWVudC10YWJsZS1yb3ctcGFyc2VyIGxpbWl0KSkgKChlcSBzcGVjaWFsIChxdW90 ZSBub2RlLXByb3BlcnR5KSkgKG9yZy1lbGVtZW50LW5vZGUtcHJvcGVydHktcGFyc2VyIGxpbWl0 KSkgKChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGlu ZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4 cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4i IG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3JnLWF0LWhlYWRpbmctcCkpIChvcmctZWxlbWVudC1o ZWFkbGluZS1wYXJzZXIgbGltaXQgcmF3LXNlY29uZGFyeS1wKSkgKChlcSBzcGVjaWFsIChxdW90 ZSBzZWN0aW9uKSkgKG9yZy1lbGVtZW50LXNlY3Rpb24tcGFyc2VyIGxpbWl0KSkgKChlcSBzcGVj aWFsIChxdW90ZSBmaXJzdC1zZWN0aW9uKSkgKG9yZy1lbGVtZW50LXNlY3Rpb24tcGFyc2VyIChv ciAoc2F2ZS1leGN1cnNpb24gKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMg dCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAuLi4pIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1y ZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIC4uLikpIChvdXRsaW5lLW5leHQtaGVhZGlu ZykpKSBsaW1pdCkpKSAoKG5vdCAoYm9scCkpIChvcmctZWxlbWVudC1wYXJhZ3JhcGgtcGFyc2Vy IGxpbWl0IChsaXN0IChwb2ludCkpKSkgKChsb29raW5nLWF0IG9yZy1wbGFubmluZy1vci1jbG9j ay1saW5lLXJlKSAoaWYgKGVxdWFsIChtYXRjaC1zdHJpbmcgMSkgb3JnLWNsb2NrLXN0cmluZykg KG9yZy1lbGVtZW50LWNsb2NrLXBhcnNlciBsaW1pdCkgKG9yZy1lbGVtZW50LXBsYW5uaW5nLXBh cnNlciBsaW1pdCkpKSAoKG9yZy1hdC1oZWFkaW5nLXApIChvcmctZWxlbWVudC1pbmxpbmV0YXNr LXBhcnNlciBsaW1pdCByYXctc2Vjb25kYXJ5LXApKSAodCAobGV0ICgoYWZmaWxpYXRlZCAob3Jn LWVsZW1lbnQtLWNvbGxlY3QtYWZmaWxpYXRlZC1rZXl3b3JkcyBsaW1pdCkpKSAoY29uZCAoKGFu ZCAoY2RyIGFmZmlsaWF0ZWQpICg+PSAocG9pbnQpIGxpbWl0KSkgKGdvdG8tY2hhciAoY2FyIGFm ZmlsaWF0ZWQpKSAob3JnLWVsZW1lbnQta2V5d29yZC1wYXJzZXIgbGltaXQgbmlsKSkgKChsb29r aW5nLWF0ICJbICAgICBdKlxcXFxiZWdpbntbQS1aYS16MC05Kl0rfVxcKFxcWy4qP1xcXVxcfHsu Kj99XFwpKlsgICAgIF0qJCIpIChvcmctZWxlbWVudC1sYXRleC1lbnZpcm9ubWVudC1wYXJzZXIg bGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCBvcmctZHJhd2VyLXJlZ2V4cCkgKGlmIChl cXVhbCAobWF0Y2gtc3RyaW5nIDEpICJQUk9QRVJUSUVTIikgKG9yZy1lbGVtZW50LXByb3BlcnR5 LWRyYXdlci1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkgKG9yZy1lbGVtZW50LWRyYXdlci1wYXJz ZXIgbGltaXQgYWZmaWxpYXRlZCkpKSAoKGxvb2tpbmctYXQgIlsgICBdKjpcXCggXFx8JFxcKSIp IChvcmctZWxlbWVudC1maXhlZC13aWR0aC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9v a2luZy1hdCAiWyAgICAgXSojIikgKGdvdG8tY2hhciAobWF0Y2gtZW5kIDApKSAoY29uZCAoKGxv b2tpbmctYXQgIlxcKD86IFxcfCRcXCkiKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVu dC1jb21tZW50LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJcXCtCRUdJ Tl9cXChcXFMtK1xcKSIpIChiZWdpbm5pbmctb2YtbGluZSkgKGxldCAuLi4gLi4uKSkgKChsb29r aW5nLWF0ICJcXCtDQUxMOiIpIChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWJhYmVs LWNhbGwtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlxcK0JFR0lOOj8g IikgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQtZHluYW1pYy1ibG9jay1wYXJzZXIg bGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiXFwrXFxTLSs6IikgKGJlZ2lubmluZy1v Zi1saW5lKSAob3JnLWVsZW1lbnQta2V5d29yZC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICh0 IChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LXBhcmFncmFwaC1wYXJzZXIgbGltaXQg YWZmaWxpYXRlZCkpKSkgKChsb29raW5nLWF0IG9yZy1mb290bm90ZS1kZWZpbml0aW9uLXJlKSAo b3JnLWVsZW1lbnQtZm9vdG5vdGUtZGVmaW5pdGlvbi1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkp ICgobG9va2luZy1hdCAiWyAgIF0qLVxcezUsXFx9WyAgICBdKiQiKSAob3JnLWVsZW1lbnQtaG9y aXpvbnRhbC1ydWxlLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICIlJSgi KSAob3JnLWVsZW1lbnQtZGlhcnktc2V4cC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgob3Jn LWF0LXRhYmxlLXAgdCkgKG9yZy1lbGVtZW50LXRhYmxlLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVk KSkgKChsb29raW5nLWF0IChvcmctaXRlbS1yZSkpIChvcmctZWxlbWVudC1wbGFpbi1saXN0LXBh cnNlciBsaW1pdCBhZmZpbGlhdGVkIChvciBzdHJ1Y3R1cmUgKG9yZy1lbGVtZW50LS1saXN0LXN0 cnVjdCBsaW1pdCkpKSkgKHQgKG9yZy1lbGVtZW50LXBhcmFncmFwaC1wYXJzZXIgbGltaXQgYWZm aWxpYXRlZCkpKSkpKQogIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIHQpIChyYXctc2Vjb25kYXJ5 LXAgKGFuZCBncmFudWxhcml0eSAobm90IChlcSBncmFudWxhcml0eSAocXVvdGUgb2JqZWN0KSkp KSkpIChjb25kICgoZXEgc3BlY2lhbCAocXVvdGUgaXRlbSkpIChvcmctZWxlbWVudC1pdGVtLXBh cnNlciBsaW1pdCBzdHJ1Y3R1cmUgcmF3LXNlY29uZGFyeS1wKSkgKChlcSBzcGVjaWFsIChxdW90 ZSB0YWJsZS1yb3cpKSAob3JnLWVsZW1lbnQtdGFibGUtcm93LXBhcnNlciBsaW1pdCkpICgoZXEg c3BlY2lhbCAocXVvdGUgbm9kZS1wcm9wZXJ0eSkpIChvcmctZWxlbWVudC1ub2RlLXByb3BlcnR5 LXBhcnNlciBsaW1pdCkpICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0 KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAo b3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJv bCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgKG9yZy1hdC1oZWFkaW5nLXApKSAo b3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFyc2VyIGxpbWl0IHJhdy1zZWNvbmRhcnktcCkpICgoZXEg c3BlY2lhbCAocXVvdGUgc2VjdGlvbikpIChvcmctZWxlbWVudC1zZWN0aW9uLXBhcnNlciBsaW1p dCkpICgoZXEgc3BlY2lhbCAocXVvdGUgZmlyc3Qtc2VjdGlvbikpIChvcmctZWxlbWVudC1zZWN0 aW9uLXBhcnNlciAob3IgKHNhdmUtZXhjdXJzaW9uIChsZXQqICguLi4gLi4uIC4uLiAuLi4pIChv dXRsaW5lLW5leHQtaGVhZGluZykpKSBsaW1pdCkpKSAoKG5vdCAoYm9scCkpIChvcmctZWxlbWVu dC1wYXJhZ3JhcGgtcGFyc2VyIGxpbWl0IChsaXN0IChwb2ludCkpKSkgKChsb29raW5nLWF0IG9y Zy1wbGFubmluZy1vci1jbG9jay1saW5lLXJlKSAoaWYgKGVxdWFsIChtYXRjaC1zdHJpbmcgMSkg b3JnLWNsb2NrLXN0cmluZykgKG9yZy1lbGVtZW50LWNsb2NrLXBhcnNlciBsaW1pdCkgKG9yZy1l bGVtZW50LXBsYW5uaW5nLXBhcnNlciBsaW1pdCkpKSAoKG9yZy1hdC1oZWFkaW5nLXApIChvcmct ZWxlbWVudC1pbmxpbmV0YXNrLXBhcnNlciBsaW1pdCByYXctc2Vjb25kYXJ5LXApKSAodCAobGV0 ICgoYWZmaWxpYXRlZCAob3JnLWVsZW1lbnQtLWNvbGxlY3QtYWZmaWxpYXRlZC1rZXl3b3JkcyBs aW1pdCkpKSAoY29uZCAoKGFuZCAoY2RyIGFmZmlsaWF0ZWQpICg+PSAuLi4gbGltaXQpKSAoZ290 by1jaGFyIChjYXIgYWZmaWxpYXRlZCkpIChvcmctZWxlbWVudC1rZXl3b3JkLXBhcnNlciBsaW1p dCBuaWwpKSAoKGxvb2tpbmctYXQgIlsgICAgICAgIF0qXFxcXGJlZ2lue1tBLVphLXowLTkqXSt9 XFwoXFxbLio/XFxdXFx8ey4qP31cXCkqWyAgICAgXSokIikgKG9yZy1lbGVtZW50LWxhdGV4LWVu dmlyb25tZW50LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0IG9yZy1kcmF3 ZXItcmVnZXhwKSAoaWYgKGVxdWFsIC4uLiAiUFJPUEVSVElFUyIpIChvcmctZWxlbWVudC1wcm9w ZXJ0eS1kcmF3ZXItcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpIChvcmctZWxlbWVudC1kcmF3ZXIt cGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSkgKChsb29raW5nLWF0ICJbICAgICAgICBdKjpcXCgg XFx8JFxcKSIpIChvcmctZWxlbWVudC1maXhlZC13aWR0aC1wYXJzZXIgbGltaXQgYWZmaWxpYXRl ZCkpICgobG9va2luZy1hdCAiWyAgICAgXSojIikgKGdvdG8tY2hhciAobWF0Y2gtZW5kIDApKSAo Y29uZCAoLi4uIC4uLiAuLi4pICguLi4gLi4uIC4uLikgKC4uLiAuLi4gLi4uKSAoLi4uIC4uLiAu Li4pICguLi4gLi4uIC4uLikgKHQgLi4uIC4uLikpKSAoKGxvb2tpbmctYXQgb3JnLWZvb3Rub3Rl LWRlZmluaXRpb24tcmUpIChvcmctZWxlbWVudC1mb290bm90ZS1kZWZpbml0aW9uLXBhcnNlciBs aW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJbICAgXSotXFx7NSxcXH1bICAgIF0qJCIp IChvcmctZWxlbWVudC1ob3Jpem9udGFsLXJ1bGUtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAo KGxvb2tpbmctYXQgIiUlKCIpIChvcmctZWxlbWVudC1kaWFyeS1zZXhwLXBhcnNlciBsaW1pdCBh ZmZpbGlhdGVkKSkgKChvcmctYXQtdGFibGUtcCB0KSAob3JnLWVsZW1lbnQtdGFibGUtcGFyc2Vy IGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgKG9yZy1pdGVtLXJlKSkgKG9yZy1lbGVt ZW50LXBsYWluLWxpc3QtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQgKG9yIHN0cnVjdHVyZSAuLi4p KSkgKHQgKG9yZy1lbGVtZW50LXBhcmFncmFwaC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpKSkp KSkKICAoc2F2ZS1leGN1cnNpb24gKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggdCkgKHJhdy1zZWNv bmRhcnktcCAoYW5kIGdyYW51bGFyaXR5IChub3QgKGVxIGdyYW51bGFyaXR5IChxdW90ZSBvYmpl Y3QpKSkpKSkgKGNvbmQgKChlcSBzcGVjaWFsIChxdW90ZSBpdGVtKSkgKG9yZy1lbGVtZW50LWl0 ZW0tcGFyc2VyIGxpbWl0IHN0cnVjdHVyZSByYXctc2Vjb25kYXJ5LXApKSAoKGVxIHNwZWNpYWwg KHF1b3RlIHRhYmxlLXJvdykpIChvcmctZWxlbWVudC10YWJsZS1yb3ctcGFyc2VyIGxpbWl0KSkg KChlcSBzcGVjaWFsIChxdW90ZSBub2RlLXByb3BlcnR5KSkgKG9yZy1lbGVtZW50LW5vZGUtcHJv cGVydHktcGFyc2VyIGxpbWl0KSkgKChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2 ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4 cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdl eHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3JnLWF0LWhlYWRpbmct cCkpIChvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIgbGltaXQgcmF3LXNlY29uZGFyeS1wKSkg KChlcSBzcGVjaWFsIChxdW90ZSBzZWN0aW9uKSkgKG9yZy1lbGVtZW50LXNlY3Rpb24tcGFyc2Vy IGxpbWl0KSkgKChlcSBzcGVjaWFsIChxdW90ZSBmaXJzdC1zZWN0aW9uKSkgKG9yZy1lbGVtZW50 LXNlY3Rpb24tcGFyc2VyIChvciAoc2F2ZS1leGN1cnNpb24gKGxldCogLi4uIC4uLikpIGxpbWl0 KSkpICgobm90IChib2xwKSkgKG9yZy1lbGVtZW50LXBhcmFncmFwaC1wYXJzZXIgbGltaXQgKGxp c3QgKHBvaW50KSkpKSAoKGxvb2tpbmctYXQgb3JnLXBsYW5uaW5nLW9yLWNsb2NrLWxpbmUtcmUp IChpZiAoZXF1YWwgKG1hdGNoLXN0cmluZyAxKSBvcmctY2xvY2stc3RyaW5nKSAob3JnLWVsZW1l bnQtY2xvY2stcGFyc2VyIGxpbWl0KSAob3JnLWVsZW1lbnQtcGxhbm5pbmctcGFyc2VyIGxpbWl0 KSkpICgob3JnLWF0LWhlYWRpbmctcCkgKG9yZy1lbGVtZW50LWlubGluZXRhc2stcGFyc2VyIGxp bWl0IHJhdy1zZWNvbmRhcnktcCkpICh0IChsZXQgKChhZmZpbGlhdGVkIChvcmctZWxlbWVudC0t Y29sbGVjdC1hZmZpbGlhdGVkLWtleXdvcmRzIGxpbWl0KSkpIChjb25kICgoYW5kIC4uLiAuLi4p IChnb3RvLWNoYXIgLi4uKSAob3JnLWVsZW1lbnQta2V5d29yZC1wYXJzZXIgbGltaXQgbmlsKSkg KChsb29raW5nLWF0ICJbICAgICAgXSpcXFxcYmVnaW57W0EtWmEtejAtOSpdK31cXChcXFsuKj9c XF1cXHx7Lio/fVxcKSpbICAgICBdKiQiKSAob3JnLWVsZW1lbnQtbGF0ZXgtZW52aXJvbm1lbnQt cGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgb3JnLWRyYXdlci1yZWdleHAp IChpZiAuLi4gLi4uIC4uLikpICgobG9va2luZy1hdCAiWyAgICAgICAgXSo6XFwoIFxcfCRcXCki KSAob3JnLWVsZW1lbnQtZml4ZWQtd2lkdGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxv b2tpbmctYXQgIlsgICAgIF0qIyIpIChnb3RvLWNoYXIgLi4uKSAoY29uZCAuLi4gLi4uIC4uLiAu Li4gLi4uIC4uLikpICgobG9va2luZy1hdCBvcmctZm9vdG5vdGUtZGVmaW5pdGlvbi1yZSkgKG9y Zy1lbGVtZW50LWZvb3Rub3RlLWRlZmluaXRpb24tcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAo KGxvb2tpbmctYXQgIlsgICAgICAgXSotXFx7NSxcXH1bICAgIF0qJCIpIChvcmctZWxlbWVudC1o b3Jpem9udGFsLXJ1bGUtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIiUl KCIpIChvcmctZWxlbWVudC1kaWFyeS1zZXhwLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChv cmctYXQtdGFibGUtcCB0KSAob3JnLWVsZW1lbnQtdGFibGUtcGFyc2VyIGxpbWl0IGFmZmlsaWF0 ZWQpKSAoKGxvb2tpbmctYXQgLi4uKSAob3JnLWVsZW1lbnQtcGxhaW4tbGlzdC1wYXJzZXIgbGlt aXQgYWZmaWxpYXRlZCAuLi4pKSAodCAob3JnLWVsZW1lbnQtcGFyYWdyYXBoLXBhcnNlciBsaW1p dCBhZmZpbGlhdGVkKSkpKSkpKSkKICBvcmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50KDI1Nzcw NiBlbGVtZW50IG5pbCBuaWwpCiAgKHNldHEgZWxlbWVudCAob3JnLWVsZW1lbnQtLWN1cnJlbnQt ZWxlbWVudCBlbmQgKHF1b3RlIGVsZW1lbnQpIHNwZWNpYWwtZmxhZyAob3JnLWVsZW1lbnQtcHJv cGVydHkgOnN0cnVjdHVyZSBwYXJlbnQpKSkKICAoaWYgZWxlbWVudCBuaWwgKHNldHEgZWxlbWVu dCAob3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVudCBlbmQgKHF1b3RlIGVsZW1lbnQpIHNwZWNp YWwtZmxhZyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnN0cnVjdHVyZSBwYXJlbnQpKSkgKG9yZy1l bGVtZW50LXB1dC1wcm9wZXJ0eSBlbGVtZW50IDpwYXJlbnQgcGFyZW50KSAob3JnLWVsZW1lbnQt LWNhY2hlLXB1dCBlbGVtZW50KSkKICAod2hpbGUgdCAoaWYgc3luY3AgKHByb2duIChjb25kICgo PSAocG9pbnQpIHBvcykgKHRocm93IChxdW90ZSBleGl0KSBwYXJlbnQpKSAoKG9yZy1lbGVtZW50 LS1jYWNoZS1pbnRlcnJ1cHQtcCB0aW1lLWxpbWl0KSAodGhyb3cgKHF1b3RlIGludGVycnVwdCkg bmlsKSkpKSkgKGlmIGVsZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50LS1jdXJy ZW50LWVsZW1lbnQgZW5kIChxdW90ZSBlbGVtZW50KSBzcGVjaWFsLWZsYWcgKG9yZy1lbGVtZW50 LXByb3BlcnR5IDpzdHJ1Y3R1cmUgcGFyZW50KSkpIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkg ZWxlbWVudCA6cGFyZW50IHBhcmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQgZWxlbWVudCkp IChsZXQgKChlbGVtLWVuZCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSkgKHR5 cGUgKG9yZy1lbGVtZW50LXR5cGUgZWxlbWVudCkpKSAoY29uZCAoKGFuZCAoPD0gZWxlbS1lbmQg cG9zKSAoLz0gKHBvaW50LW1heCkgZWxlbS1lbmQpKSAoZ290by1jaGFyIGVsZW0tZW5kKSkgKChu b3QgKG1lbXEgdHlwZSBvcmctZWxlbWVudC1ncmVhdGVyLWVsZW1lbnRzKSkgKHRocm93IChxdW90 ZSBleGl0KSBlbGVtZW50KSkgKChsZXQgKChjYmVnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6Y29u dGVudHMtYmVnaW4gZWxlbWVudCkpIChjZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6Y29udGVu dHMtZW5kIGVsZW1lbnQpKSkgKGlmIChvciBzeW5jcCAoYW5kIGNiZWcgY2VuZCAuLi4gLi4uKSkg KHByb2duIChnb3RvLWNoYXIgLi4uKSAoc2V0cSBuZXh0IG5pbCBzcGVjaWFsLWZsYWcgLi4uIHBh cmVudCBlbGVtZW50IGVuZCBjZW5kKSkpKSkgKHQgKHRocm93IChxdW90ZSBleGl0KSBlbGVtZW50 KSkpKSAoc2V0cSBlbGVtZW50IG5pbCkpCiAgKGxldCAoKGVuZCAob3IgKG9yZy1lbGVtZW50LXBy b3BlcnR5IDplbmQgZWxlbWVudCkgKHNhdmUtZXhjdXJzaW9uIChsZXQqICgob3JnLWNhbGxlZC13 aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgLi4uKSAob3V0bGluZS1y ZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAuLi4pKSAo b3V0bGluZS1uZXh0LWhlYWRpbmcpKSAocG9pbnQpKSkpIChwYXJlbnQgZWxlbWVudCkgc3BlY2lh bC1mbGFnKSAod2hpbGUgdCAoaWYgc3luY3AgKHByb2duIChjb25kICgoPSAocG9pbnQpIHBvcykg KHRocm93IChxdW90ZSBleGl0KSBwYXJlbnQpKSAoKG9yZy1lbGVtZW50LS1jYWNoZS1pbnRlcnJ1 cHQtcCB0aW1lLWxpbWl0KSAodGhyb3cgKHF1b3RlIGludGVycnVwdCkgbmlsKSkpKSkgKGlmIGVs ZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50LS1jdXJyZW50LWVsZW1lbnQgZW5k IChxdW90ZSBlbGVtZW50KSBzcGVjaWFsLWZsYWcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpzdHJ1 Y3R1cmUgcGFyZW50KSkpIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgZWxlbWVudCA6cGFyZW50 IHBhcmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQgZWxlbWVudCkpIChsZXQgKChlbGVtLWVu ZCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSkgKHR5cGUgKG9yZy1lbGVtZW50 LXR5cGUgZWxlbWVudCkpKSAoY29uZCAoKGFuZCAoPD0gZWxlbS1lbmQgcG9zKSAoLz0gKHBvaW50 LW1heCkgZWxlbS1lbmQpKSAoZ290by1jaGFyIGVsZW0tZW5kKSkgKChub3QgKG1lbXEgdHlwZSBv cmctZWxlbWVudC1ncmVhdGVyLWVsZW1lbnRzKSkgKHRocm93IChxdW90ZSBleGl0KSBlbGVtZW50 KSkgKChsZXQgKChjYmVnIC4uLikgKGNlbmQgLi4uKSkgKGlmIChvciBzeW5jcCAuLi4pIChwcm9n biAuLi4gLi4uKSkpKSAodCAodGhyb3cgKHF1b3RlIGV4aXQpIGVsZW1lbnQpKSkpIChzZXRxIGVs ZW1lbnQgbmlsKSkpCiAgKGxldCogKChjYWNoZWQgKGFuZCAob3JnLWVsZW1lbnQtLWNhY2hlLWFj dGl2ZS1wKSAob3JnLWVsZW1lbnQtLWNhY2hlLWZpbmQgcG9zIG5pbCkpKSAoYmVnaW4gKG9yZy1l bGVtZW50LXByb3BlcnR5IDpiZWdpbiBjYWNoZWQpKSBlbGVtZW50IG5leHQpIChjb25kICgobm90 IGNhY2hlZCkgKGlmIChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChv cmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRs aW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIChj b25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3V0bGluZS1wcmV2aW91cy1oZWFkaW5n KSkgKHByb2duIChmb3J3YXJkLWxpbmUpKSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAo YmVnaW5uaW5nLW9mLWxpbmUpKSAoKD0gcG9zIGJlZ2luKSAodGhyb3cgKHF1b3RlIGV4aXQpIChp ZiBzeW5jcCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhcmVudCBjYWNoZWQpIGNhY2hlZCkpKSAo KHJlLXNlYXJjaC1iYWNrd2FyZCAobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVs cyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHAp KSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhw LWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgb3JnLW91dGxpbmUtcmVnZXhw LWJvbCkgYmVnaW4gdCkgKGZvcndhcmQtbGluZSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4i KSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAodCAobGV0ICgodXAgY2FjaGVkKSAocG9zIChpZiAoPSAu Li4gcG9zKSAoMS0gcG9zKSBwb3MpKSkgKGdvdG8tY2hhciAob3IgKG9yZy1lbGVtZW50LXByb3Bl cnR5IDpjb250ZW50cy1iZWdpbiBjYWNoZWQpIGJlZ2luKSkgKHdoaWxlIChsZXQgKChlbmQgLi4u KSkgKGFuZCAoPD0gZW5kIHBvcykgKGdvdG8tY2hhciBlbmQpIChzZXRxIHVwIC4uLikpKSkgKGNv bmQgKChub3QgdXApKSAoKGVvYnApIChzZXRxIGVsZW1lbnQgdXApKSAodCAoc2V0cSBlbGVtZW50 IHVwIG5leHQgKHBvaW50KSkpKSkpKSAobGV0ICgoZW5kIChvciAob3JnLWVsZW1lbnQtcHJvcGVy dHkgOmVuZCBlbGVtZW50KSAoc2F2ZS1leGN1cnNpb24gKGxldCogKC4uLiAuLi4gLi4uIC4uLikg KG91dGxpbmUtbmV4dC1oZWFkaW5nKSkgKHBvaW50KSkpKSAocGFyZW50IGVsZW1lbnQpIHNwZWNp YWwtZmxhZykgKHdoaWxlIHQgKGlmIHN5bmNwIChwcm9nbiAoY29uZCAoKD0gLi4uIHBvcykgKHRo cm93IC4uLiBwYXJlbnQpKSAoKG9yZy1lbGVtZW50LS1jYWNoZS1pbnRlcnJ1cHQtcCB0aW1lLWxp bWl0KSAodGhyb3cgLi4uIG5pbCkpKSkpIChpZiBlbGVtZW50IG5pbCAoc2V0cSBlbGVtZW50IChv cmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50IGVuZCAocXVvdGUgZWxlbWVudCkgc3BlY2lhbC1m bGFnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6c3RydWN0dXJlIHBhcmVudCkpKSAob3JnLWVsZW1l bnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQpIChvcmctZWxlbWVudC0tY2Fj aGUtcHV0IGVsZW1lbnQpKSAobGV0ICgoZWxlbS1lbmQgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpl bmQgZWxlbWVudCkpICh0eXBlIChvcmctZWxlbWVudC10eXBlIGVsZW1lbnQpKSkgKGNvbmQgKChh bmQgKDw9IGVsZW0tZW5kIHBvcykgKC89IC4uLiBlbGVtLWVuZCkpIChnb3RvLWNoYXIgZWxlbS1l bmQpKSAoKG5vdCAobWVtcSB0eXBlIG9yZy1lbGVtZW50LWdyZWF0ZXItZWxlbWVudHMpKSAodGhy b3cgKHF1b3RlIGV4aXQpIGVsZW1lbnQpKSAoKGxldCAoLi4uIC4uLikgKGlmIC4uLiAuLi4pKSkg KHQgKHRocm93IChxdW90ZSBleGl0KSBlbGVtZW50KSkpKSAoc2V0cSBlbGVtZW50IG5pbCkpKSkK ICAoc2F2ZS1yZXN0cmljdGlvbiAod2lkZW4pIChnb3RvLWNoYXIgcG9zKSAobGV0KiAoKGNhY2hl ZCAoYW5kIChvcmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChvcmctZWxlbWVudC0tY2FjaGUt ZmluZCBwb3MgbmlsKSkpIChiZWdpbiAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmJlZ2luIGNhY2hl ZCkpIGVsZW1lbnQgbmV4dCkgKGNvbmQgKChub3QgY2FjaGVkKSAoaWYgKGxldCogKChvcmctY2Fs bGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAuLi4pIChvdXRs aW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIC4u LikpIChvdXRsaW5lLXByZXZpb3VzLWhlYWRpbmcpKSAocHJvZ24gKGZvcndhcmQtbGluZSkpKSAo c2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkpICgoPSBwb3Mg YmVnaW4pICh0aHJvdyAocXVvdGUgZXhpdCkgKGlmIHN5bmNwIChvcmctZWxlbWVudC1wcm9wZXJ0 eSA6cGFyZW50IGNhY2hlZCkgY2FjaGVkKSkpICgocmUtc2VhcmNoLWJhY2t3YXJkIChsZXQqICgo b3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgLi4u KSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhw LWJvbCAuLi4pKSBvcmctb3V0bGluZS1yZWdleHAtYm9sKSBiZWdpbiB0KSAoZm9yd2FyZC1saW5l KSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkpICh0IChs ZXQgKCh1cCBjYWNoZWQpIChwb3MgKGlmIC4uLiAuLi4gcG9zKSkpIChnb3RvLWNoYXIgKG9yIChv cmctZWxlbWVudC1wcm9wZXJ0eSA6Y29udGVudHMtYmVnaW4gY2FjaGVkKSBiZWdpbikpICh3aGls ZSAobGV0ICguLi4pIChhbmQgLi4uIC4uLiAuLi4pKSkgKGNvbmQgKChub3QgdXApKSAoKGVvYnAp IChzZXRxIGVsZW1lbnQgdXApKSAodCAoc2V0cSBlbGVtZW50IHVwIG5leHQgLi4uKSkpKSkpIChs ZXQgKChlbmQgKG9yIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQpIChzYXZlLWV4 Y3Vyc2lvbiAobGV0KiAuLi4gLi4uKSAocG9pbnQpKSkpIChwYXJlbnQgZWxlbWVudCkgc3BlY2lh bC1mbGFnKSAod2hpbGUgdCAoaWYgc3luY3AgKHByb2duIChjb25kICguLi4gLi4uKSAoLi4uIC4u LikpKSkgKGlmIGVsZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50LS1jdXJyZW50 LWVsZW1lbnQgZW5kIChxdW90ZSBlbGVtZW50KSBzcGVjaWFsLWZsYWcgKG9yZy1lbGVtZW50LXBy b3BlcnR5IDpzdHJ1Y3R1cmUgcGFyZW50KSkpIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgZWxl bWVudCA6cGFyZW50IHBhcmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQgZWxlbWVudCkpIChs ZXQgKChlbGVtLWVuZCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSkgKHR5cGUg KG9yZy1lbGVtZW50LXR5cGUgZWxlbWVudCkpKSAoY29uZCAoKGFuZCAuLi4gLi4uKSAoZ290by1j aGFyIGVsZW0tZW5kKSkgKChub3QgLi4uKSAodGhyb3cgLi4uIGVsZW1lbnQpKSAoKGxldCAuLi4g Li4uKSkgKHQgKHRocm93IC4uLiBlbGVtZW50KSkpKSAoc2V0cSBlbGVtZW50IG5pbCkpKSkpCiAg KHNhdmUtZXhjdXJzaW9uIChzYXZlLXJlc3RyaWN0aW9uICh3aWRlbikgKGdvdG8tY2hhciBwb3Mp IChsZXQqICgoY2FjaGVkIChhbmQgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKG9yZy1l bGVtZW50LS1jYWNoZS1maW5kIHBvcyBuaWwpKSkgKGJlZ2luIChvcmctZWxlbWVudC1wcm9wZXJ0 eSA6YmVnaW4gY2FjaGVkKSkgZWxlbWVudCBuZXh0KSAoY29uZCAoKG5vdCBjYWNoZWQpIChpZiAo bGV0KiAoLi4uIC4uLiAuLi4gLi4uKSAob3V0bGluZS1wcmV2aW91cy1oZWFkaW5nKSkgKHByb2du IChmb3J3YXJkLWxpbmUpKSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5n LW9mLWxpbmUpKSAoKD0gcG9zIGJlZ2luKSAodGhyb3cgKHF1b3RlIGV4aXQpIChpZiBzeW5jcCAo b3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhcmVudCBjYWNoZWQpIGNhY2hlZCkpKSAoKHJlLXNlYXJj aC1iYWNrd2FyZCAobGV0KiAoLi4uIC4uLiAuLi4gLi4uKSBvcmctb3V0bGluZS1yZWdleHAtYm9s KSBiZWdpbiB0KSAoZm9yd2FyZC1saW5lKSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIpIChi ZWdpbm5pbmctb2YtbGluZSkpICh0IChsZXQgKCh1cCBjYWNoZWQpIChwb3MgLi4uKSkgKGdvdG8t Y2hhciAob3IgLi4uIGJlZ2luKSkgKHdoaWxlIChsZXQgLi4uIC4uLikpIChjb25kICguLi4pICgu Li4gLi4uKSAodCAuLi4pKSkpKSAobGV0ICgoZW5kIChvciAob3JnLWVsZW1lbnQtcHJvcGVydHkg OmVuZCBlbGVtZW50KSAoc2F2ZS1leGN1cnNpb24gLi4uIC4uLikpKSAocGFyZW50IGVsZW1lbnQp IHNwZWNpYWwtZmxhZykgKHdoaWxlIHQgKGlmIHN5bmNwIChwcm9nbiAoY29uZCAuLi4gLi4uKSkp IChpZiBlbGVtZW50IG5pbCAoc2V0cSBlbGVtZW50IChvcmctZWxlbWVudC0tY3VycmVudC1lbGVt ZW50IGVuZCAuLi4gc3BlY2lhbC1mbGFnIC4uLikpIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkg ZWxlbWVudCA6cGFyZW50IHBhcmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQgZWxlbWVudCkp IChsZXQgKChlbGVtLWVuZCAuLi4pICh0eXBlIC4uLikpIChjb25kICguLi4gLi4uKSAoLi4uIC4u LikgKC4uLikgKHQgLi4uKSkpIChzZXRxIGVsZW1lbnQgbmlsKSkpKSkpCiAgKGNhdGNoIChxdW90 ZSBleGl0KSAoc2F2ZS1leGN1cnNpb24gKHNhdmUtcmVzdHJpY3Rpb24gKHdpZGVuKSAoZ290by1j aGFyIHBvcykgKGxldCogKChjYWNoZWQgKGFuZCAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1w KSAob3JnLWVsZW1lbnQtLWNhY2hlLWZpbmQgcG9zIG5pbCkpKSAoYmVnaW4gKG9yZy1lbGVtZW50 LXByb3BlcnR5IDpiZWdpbiBjYWNoZWQpKSBlbGVtZW50IG5leHQpIChjb25kICgobm90IGNhY2hl ZCkgKGlmIChsZXQqIC4uLiAuLi4pIChwcm9nbiAuLi4pKSAoc2tpcC1jaGFycy1mb3J3YXJkICIg DQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkpICgoPSBwb3MgYmVnaW4pICh0aHJvdyAocXVvdGUg ZXhpdCkgKGlmIHN5bmNwIC4uLiBjYWNoZWQpKSkgKChyZS1zZWFyY2gtYmFja3dhcmQgKGxldCog Li4uIG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wpIGJlZ2luIHQpIChmb3J3YXJkLWxpbmUpIChza2lw LWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkgKHQgKGxldCAoLi4u IC4uLikgKGdvdG8tY2hhciAuLi4pICh3aGlsZSAuLi4pIChjb25kIC4uLiAuLi4gLi4uKSkpKSAo bGV0ICgoZW5kIChvciAuLi4gLi4uKSkgKHBhcmVudCBlbGVtZW50KSBzcGVjaWFsLWZsYWcpICh3 aGlsZSB0IChpZiBzeW5jcCAocHJvZ24gLi4uKSkgKGlmIGVsZW1lbnQgbmlsIChzZXRxIGVsZW1l bnQgLi4uKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQp IChvcmctZWxlbWVudC0tY2FjaGUtcHV0IGVsZW1lbnQpKSAobGV0ICguLi4gLi4uKSAoY29uZCAu Li4gLi4uIC4uLiAuLi4pKSAoc2V0cSBlbGVtZW50IG5pbCkpKSkpKSkKICBvcmctZWxlbWVudC0t cGFyc2UtdG8oMjU3MjgwKQogIChjb25kICgoYm9icCkgbmlsKSAoKGxldCogKChvcmctY2FsbGVk LXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1p dGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkg KG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkp IChvcmctYXQtaGVhZGluZy1wKSkgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQtaGVh ZGxpbmUtcGFyc2VyIChwb2ludC1tYXgpIHQpKSAodCAoaWYgKG9yZy1lbGVtZW50LS1jYWNoZS1h Y3RpdmUtcCkgKHByb2duIChpZiAobm90IG9yZy1lbGVtZW50LS1jYWNoZSkgKG9yZy1lbGVtZW50 LWNhY2hlLXJlc2V0KSAob3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMgKGN1cnJlbnQtYnVmZmVyKSBv cmlnaW4pKSkpIChvcmctZWxlbWVudC0tcGFyc2UtdG8gb3JpZ2luKSkpCiAgKGxldCAoKG9yaWdp biAocG9pbnQpKSkgKGVuZC1vZi1saW5lKSAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIA0JXG4iKSAo Y29uZCAoKGJvYnApIG5pbCkgKChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxz IHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkp IChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAt Ym9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3JnLWF0LWhlYWRpbmctcCkp IChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNlciAocG9pbnQt bWF4KSB0KSkgKHQgKGlmIChvcmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChwcm9nbiAoaWYg KG5vdCBvcmctZWxlbWVudC0tY2FjaGUpIChvcmctZWxlbWVudC1jYWNoZS1yZXNldCkgKG9yZy1l bGVtZW50LS1jYWNoZS1zeW5jIChjdXJyZW50LWJ1ZmZlcikgb3JpZ2luKSkpKSAob3JnLWVsZW1l bnQtLXBhcnNlLXRvIG9yaWdpbikpKSkKICAoc2F2ZS1yZXN0cmljdGlvbiAod2lkZW4pIChsZXQg KChvcmlnaW4gKHBvaW50KSkpIChlbmQtb2YtbGluZSkgKHNraXAtY2hhcnMtYmFja3dhcmQgIiAN CVxuIikgKGNvbmQgKChib2JwKSBuaWwpICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVk LWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1y ZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUt cmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgKG9yZy1hdC1oZWFk aW5nLXApKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIg KHBvaW50LW1heCkgdCkpICh0IChpZiAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAocHJv Z24gKGlmIChub3Qgb3JnLWVsZW1lbnQtLWNhY2hlKSAob3JnLWVsZW1lbnQtY2FjaGUtcmVzZXQp IChvcmctZWxlbWVudC0tY2FjaGUtc3luYyAuLi4gb3JpZ2luKSkpKSAob3JnLWVsZW1lbnQtLXBh cnNlLXRvIG9yaWdpbikpKSkpCiAgKHNhdmUtZXhjdXJzaW9uIChzYXZlLXJlc3RyaWN0aW9uICh3 aWRlbikgKGxldCAoKG9yaWdpbiAocG9pbnQpKSkgKGVuZC1vZi1saW5lKSAoc2tpcC1jaGFycy1i YWNrd2FyZCAiIA0JXG4iKSAoY29uZCAoKGJvYnApIG5pbCkgKChsZXQqICgob3JnLWNhbGxlZC13 aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgLi4uKSAob3V0bGluZS1y ZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAuLi4pKSAo b3JnLWF0LWhlYWRpbmctcCkpIChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWhlYWRs aW5lLXBhcnNlciAocG9pbnQtbWF4KSB0KSkgKHQgKGlmIChvcmctZWxlbWVudC0tY2FjaGUtYWN0 aXZlLXApIChwcm9nbiAoaWYgLi4uIC4uLiAuLi4pKSkgKG9yZy1lbGVtZW50LS1wYXJzZS10byBv cmlnaW4pKSkpKSkKICBvcmctZWxlbWVudC1hdC1wb2ludCgpCiAgKGxldCAoKGRyYXdlciAob3Jn LWVsZW1lbnQtYXQtcG9pbnQpKSkgKGlmIChhbmQgKGVxIChvcmctZWxlbWVudC10eXBlIGRyYXdl cikgKHF1b3RlIHByb3BlcnR5LWRyYXdlcikpIChsZXQgKChwIGRyYXdlcikpICh3aGlsZSAoYW5k IChzZXRxIHAgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpwYXJlbnQgcCkpIChub3QgKGVxIC4uLiAu Li4pKSkpIChub3QgcCkpKSAocHJvZ24gKGxldCAoKGVuZCAob3JnLWVsZW1lbnQtcHJvcGVydHkg OmNvbnRlbnRzLWVuZCBkcmF3ZXIpKSkgKGlmIGVuZCAocHJvZ24gKGZvcndhcmQtbGluZSkgKHdo aWxlICg8IC4uLiBlbmQpIChpZiAuLi4gLi4uKSAoZm9yd2FyZC1saW5lKSkpKSkpKSkKICAod2hp bGUgKGFuZCAobnVsbCBwbGlzdCkgKHJlLXNlYXJjaC1mb3J3YXJkIG9yZy1wcm9wZXJ0eS1zdGFy dC1yZSBlbmQgdCkpIChsZXQgKChkcmF3ZXIgKG9yZy1lbGVtZW50LWF0LXBvaW50KSkpIChpZiAo YW5kIChlcSAob3JnLWVsZW1lbnQtdHlwZSBkcmF3ZXIpIChxdW90ZSBwcm9wZXJ0eS1kcmF3ZXIp KSAobGV0ICgocCBkcmF3ZXIpKSAod2hpbGUgKGFuZCAoc2V0cSBwIC4uLikgKG5vdCAuLi4pKSkg KG5vdCBwKSkpIChwcm9nbiAobGV0ICgoZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6Y29udGVu dHMtZW5kIGRyYXdlcikpKSAoaWYgZW5kIChwcm9nbiAoZm9yd2FyZC1saW5lKSAod2hpbGUgLi4u IC4uLiAuLi4pKSkpKSkpKQogIChzYXZlLWV4Y3Vyc2lvbiAod2hpbGUgKGFuZCAobnVsbCBwbGlz dCkgKHJlLXNlYXJjaC1mb3J3YXJkIG9yZy1wcm9wZXJ0eS1zdGFydC1yZSBlbmQgdCkpIChsZXQg KChkcmF3ZXIgKG9yZy1lbGVtZW50LWF0LXBvaW50KSkpIChpZiAoYW5kIChlcSAob3JnLWVsZW1l bnQtdHlwZSBkcmF3ZXIpIChxdW90ZSBwcm9wZXJ0eS1kcmF3ZXIpKSAobGV0ICgocCBkcmF3ZXIp KSAod2hpbGUgKGFuZCAuLi4gLi4uKSkgKG5vdCBwKSkpIChwcm9nbiAobGV0ICgoZW5kIC4uLikp IChpZiBlbmQgKHByb2duIC4uLiAuLi4pKSkpKSkpIHBsaXN0KQogIChsZXQgKChlbmQgKHNhdmUt ZXhjdXJzaW9uIChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmct b3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5l LXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIChjb25j YXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3V0bGluZS1uZXh0LWhlYWRpbmcpKSAocG9p bnQpKSkgcGxpc3QpIChzYXZlLWV4Y3Vyc2lvbiAod2hpbGUgKGFuZCAobnVsbCBwbGlzdCkgKHJl LXNlYXJjaC1mb3J3YXJkIG9yZy1wcm9wZXJ0eS1zdGFydC1yZSBlbmQgdCkpIChsZXQgKChkcmF3 ZXIgKG9yZy1lbGVtZW50LWF0LXBvaW50KSkpIChpZiAoYW5kIChlcSAob3JnLWVsZW1lbnQtdHlw ZSBkcmF3ZXIpIChxdW90ZSBwcm9wZXJ0eS1kcmF3ZXIpKSAobGV0ICguLi4pICh3aGlsZSAuLi4p IChub3QgcCkpKSAocHJvZ24gKGxldCAoLi4uKSAoaWYgZW5kIC4uLikpKSkpKSBwbGlzdCkpCiAg KGxldCogKChjb21wb25lbnRzIChvcmctaGVhZGluZy1jb21wb25lbnRzKSkgKGxldmVsIChudGgg MSBjb21wb25lbnRzKSkgKHRvZG8gKG50aCAyIGNvbXBvbmVudHMpKSAodG9kby10eXBlIChhbmQg dG9kbyAoaWYgKG1lbWJlciB0b2RvIG9yZy1kb25lLWtleXdvcmRzKSAocXVvdGUgZG9uZSkgKHF1 b3RlIHRvZG8pKSkpICh0YWdzIChsZXQgKChyYXctdGFncyAobnRoIDUgY29tcG9uZW50cykpKSAo YW5kIHJhdy10YWdzIChvcmctc3BsaXQtc3RyaW5nIHJhdy10YWdzICI6IikpKSkgKHJhdy12YWx1 ZSAob3IgKG50aCA0IGNvbXBvbmVudHMpICIiKSkgKGNvbW1lbnRlZHAgKGxldCAoKGNhc2UtZm9s ZC1zZWFyY2ggbmlsKSkgKHN0cmluZy1tYXRjaCAoZm9ybWF0ICJeJXNcXCggXFx8JFxcKSIgb3Jn LWNvbW1lbnQtc3RyaW5nKSByYXctdmFsdWUpKSkgKGFyY2hpdmVkcCAobWVtYmVyIG9yZy1hcmNo aXZlLXRhZyB0YWdzKSkgKGZvb3Rub3RlLXNlY3Rpb24tcCAoYW5kIG9yZy1mb290bm90ZS1zZWN0 aW9uIChzdHJpbmc9IG9yZy1mb290bm90ZS1zZWN0aW9uIHJhdy12YWx1ZSkpKSAoc3RhbmRhcmQt cHJvcHMgKGxldCAoKGVuZCAoc2F2ZS1leGN1cnNpb24gKGxldCogLi4uIC4uLikgKHBvaW50KSkp IHBsaXN0KSAoc2F2ZS1leGN1cnNpb24gKHdoaWxlIChhbmQgKG51bGwgcGxpc3QpIChyZS1zZWFy Y2gtZm9yd2FyZCBvcmctcHJvcGVydHktc3RhcnQtcmUgZW5kIHQpKSAobGV0ICguLi4pIChpZiAu Li4gLi4uKSkpIHBsaXN0KSkpICh0aW1lLXByb3BzIChzYXZlLWV4Y3Vyc2lvbiAoZm9yd2FyZC1s aW5lKSAoaWYgKGxvb2tpbmctYXQgb3JnLXBsYW5uaW5nLW9yLWNsb2NrLWxpbmUtcmUpIChwcm9n biAobGV0ICguLi4gcGxpc3QpICh3aGlsZSAuLi4gLi4uIC4uLiAuLi4pIHBsaXN0KSkpKSkgKGJl Z2luIChwb2ludCkpIChlbmQgKG1pbiAoc2F2ZS1leGN1cnNpb24gKG9yZy1lbmQtb2Ytc3VidHJl ZSB0IHQpKSBsaW1pdCkpIChwb3MtYWZ0ZXItaGVhZCAocHJvZ24gKGZvcndhcmQtbGluZSkgKHBv aW50KSkpIChjb250ZW50cy1iZWdpbiAoc2F2ZS1leGN1cnNpb24gKHNraXAtY2hhcnMtZm9yd2Fy ZCAiIA0JXG4iIGVuZCkgKGFuZCAoLz0gKHBvaW50KSBlbmQpIChsaW5lLWJlZ2lubmluZy1wb3Np dGlvbikpKSkgKGNvbnRlbnRzLWVuZCAoYW5kIGNvbnRlbnRzLWJlZ2luIChwcm9nbiAoZ290by1j aGFyIGVuZCkgKHNraXAtY2hhcnMtYmFja3dhcmQgIiANCVxuIikgKGZvcndhcmQtbGluZSkgKHBv aW50KSkpKSkgKGlmIGNvbW1lbnRlZHAgKHByb2duIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIG5p bCkpIChzZXRxIHJhdy12YWx1ZSAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nIChjb25jYXQgKHJl Z2V4cC1xdW90ZSBvcmctY29tbWVudC1zdHJpbmcpICJcXCg/OiBcXHwkXFwpIikgIiIgcmF3LXZh bHVlKSkpKSkgKGlmIGFyY2hpdmVkcCAocHJvZ24gKHNldHEgdGFncyAoZGVsZXRlIG9yZy1hcmNo aXZlLXRhZyB0YWdzKSkpKSAobGV0ICgoaGVhZGxpbmUgKGxpc3QgKHF1b3RlIGhlYWRsaW5lKSAo bmNvbmMgKGxpc3QgOnJhdy12YWx1ZSByYXctdmFsdWUgOmJlZ2luIGJlZ2luIDplbmQgZW5kIDpw cmUtYmxhbmsgKGlmIC4uLiAwIC4uLikgOmNvbnRlbnRzLWJlZ2luIGNvbnRlbnRzLWJlZ2luIDpj b250ZW50cy1lbmQgY29udGVudHMtZW5kIDpsZXZlbCBsZXZlbCA6cHJpb3JpdHkgKG50aCAzIGNv bXBvbmVudHMpIDp0YWdzIHRhZ3MgOnRvZG8ta2V5d29yZCB0b2RvIDp0b2RvLXR5cGUgdG9kby10 eXBlIDpwb3N0LWJsYW5rIChjb3VudC1saW5lcyAuLi4gZW5kKSA6Zm9vdG5vdGUtc2VjdGlvbi1w IGZvb3Rub3RlLXNlY3Rpb24tcCA6YXJjaGl2ZWRwIGFyY2hpdmVkcCA6Y29tbWVudGVkcCBjb21t ZW50ZWRwKSB0aW1lLXByb3BzIHN0YW5kYXJkLXByb3BzKSkpKSAobGV0ICgoYWx0LXRpdGxlIChv cmctZWxlbWVudC1wcm9wZXJ0eSA6QUxUX1RJVExFIGhlYWRsaW5lKSkpIChpZiBhbHQtdGl0bGUg KHByb2duIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgaGVhZGxpbmUgOmFsdC10aXRsZSAoaWYg cmF3LXNlY29uZGFyeS1wIGFsdC10aXRsZSAob3JnLWVsZW1lbnQtcGFyc2Utc2Vjb25kYXJ5LXN0 cmluZyBhbHQtdGl0bGUgLi4uIGhlYWRsaW5lKSkpKSkpIChvcmctZWxlbWVudC1wdXQtcHJvcGVy dHkgaGVhZGxpbmUgOnRpdGxlIChpZiByYXctc2Vjb25kYXJ5LXAgcmF3LXZhbHVlIChvcmctZWxl bWVudC1wYXJzZS1zZWNvbmRhcnktc3RyaW5nIHJhdy12YWx1ZSAob3JnLWVsZW1lbnQtcmVzdHJp Y3Rpb24gKHF1b3RlIGhlYWRsaW5lKSkgaGVhZGxpbmUpKSkpKQogIChzYXZlLWV4Y3Vyc2lvbiAo bGV0KiAoKGNvbXBvbmVudHMgKG9yZy1oZWFkaW5nLWNvbXBvbmVudHMpKSAobGV2ZWwgKG50aCAx IGNvbXBvbmVudHMpKSAodG9kbyAobnRoIDIgY29tcG9uZW50cykpICh0b2RvLXR5cGUgKGFuZCB0 b2RvIChpZiAobWVtYmVyIHRvZG8gb3JnLWRvbmUta2V5d29yZHMpIChxdW90ZSBkb25lKSAocXVv dGUgdG9kbykpKSkgKHRhZ3MgKGxldCAoKHJhdy10YWdzIChudGggNSBjb21wb25lbnRzKSkpIChh bmQgcmF3LXRhZ3MgKG9yZy1zcGxpdC1zdHJpbmcgcmF3LXRhZ3MgIjoiKSkpKSAocmF3LXZhbHVl IChvciAobnRoIDQgY29tcG9uZW50cykgIiIpKSAoY29tbWVudGVkcCAobGV0ICgoY2FzZS1mb2xk LXNlYXJjaCBuaWwpKSAoc3RyaW5nLW1hdGNoIChmb3JtYXQgIl4lc1xcKCBcXHwkXFwpIiBvcmct Y29tbWVudC1zdHJpbmcpIHJhdy12YWx1ZSkpKSAoYXJjaGl2ZWRwIChtZW1iZXIgb3JnLWFyY2hp dmUtdGFnIHRhZ3MpKSAoZm9vdG5vdGUtc2VjdGlvbi1wIChhbmQgb3JnLWZvb3Rub3RlLXNlY3Rp b24gKHN0cmluZz0gb3JnLWZvb3Rub3RlLXNlY3Rpb24gcmF3LXZhbHVlKSkpIChzdGFuZGFyZC1w cm9wcyAobGV0ICgoZW5kIChzYXZlLWV4Y3Vyc2lvbiAuLi4gLi4uKSkgcGxpc3QpIChzYXZlLWV4 Y3Vyc2lvbiAod2hpbGUgKGFuZCAuLi4gLi4uKSAobGV0IC4uLiAuLi4pKSBwbGlzdCkpKSAodGlt ZS1wcm9wcyAoc2F2ZS1leGN1cnNpb24gKGZvcndhcmQtbGluZSkgKGlmIChsb29raW5nLWF0IG9y Zy1wbGFubmluZy1vci1jbG9jay1saW5lLXJlKSAocHJvZ24gKGxldCAuLi4gLi4uIHBsaXN0KSkp KSkgKGJlZ2luIChwb2ludCkpIChlbmQgKG1pbiAoc2F2ZS1leGN1cnNpb24gKG9yZy1lbmQtb2Yt c3VidHJlZSB0IHQpKSBsaW1pdCkpIChwb3MtYWZ0ZXItaGVhZCAocHJvZ24gKGZvcndhcmQtbGlu ZSkgKHBvaW50KSkpIChjb250ZW50cy1iZWdpbiAoc2F2ZS1leGN1cnNpb24gKHNraXAtY2hhcnMt Zm9yd2FyZCAiIA0JXG4iIGVuZCkgKGFuZCAoLz0gKHBvaW50KSBlbmQpIChsaW5lLWJlZ2lubmlu Zy1wb3NpdGlvbikpKSkgKGNvbnRlbnRzLWVuZCAoYW5kIGNvbnRlbnRzLWJlZ2luIChwcm9nbiAo Z290by1jaGFyIGVuZCkgKHNraXAtY2hhcnMtYmFja3dhcmQgIiANCVxuIikgKGZvcndhcmQtbGlu ZSkgKHBvaW50KSkpKSkgKGlmIGNvbW1lbnRlZHAgKHByb2duIChsZXQgKChjYXNlLWZvbGQtc2Vh cmNoIG5pbCkpIChzZXRxIHJhdy12YWx1ZSAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nIChjb25j YXQgLi4uICJcXCg/OiBcXHwkXFwpIikgIiIgcmF3LXZhbHVlKSkpKSkgKGlmIGFyY2hpdmVkcCAo cHJvZ24gKHNldHEgdGFncyAoZGVsZXRlIG9yZy1hcmNoaXZlLXRhZyB0YWdzKSkpKSAobGV0ICgo aGVhZGxpbmUgKGxpc3QgKHF1b3RlIGhlYWRsaW5lKSAobmNvbmMgKGxpc3QgOnJhdy12YWx1ZSBy YXctdmFsdWUgOmJlZ2luIGJlZ2luIDplbmQgZW5kIDpwcmUtYmxhbmsgLi4uIDpjb250ZW50cy1i ZWdpbiBjb250ZW50cy1iZWdpbiA6Y29udGVudHMtZW5kIGNvbnRlbnRzLWVuZCA6bGV2ZWwgbGV2 ZWwgOnByaW9yaXR5IC4uLiA6dGFncyB0YWdzIDp0b2RvLWtleXdvcmQgdG9kbyA6dG9kby10eXBl IHRvZG8tdHlwZSA6cG9zdC1ibGFuayAuLi4gOmZvb3Rub3RlLXNlY3Rpb24tcCBmb290bm90ZS1z ZWN0aW9uLXAgOmFyY2hpdmVkcCBhcmNoaXZlZHAgOmNvbW1lbnRlZHAgY29tbWVudGVkcCkgdGlt ZS1wcm9wcyBzdGFuZGFyZC1wcm9wcykpKSkgKGxldCAoKGFsdC10aXRsZSAob3JnLWVsZW1lbnQt cHJvcGVydHkgOkFMVF9USVRMRSBoZWFkbGluZSkpKSAoaWYgYWx0LXRpdGxlIChwcm9nbiAob3Jn LWVsZW1lbnQtcHV0LXByb3BlcnR5IGhlYWRsaW5lIDphbHQtdGl0bGUgKGlmIHJhdy1zZWNvbmRh cnktcCBhbHQtdGl0bGUgLi4uKSkpKSkgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBoZWFkbGlu ZSA6dGl0bGUgKGlmIHJhdy1zZWNvbmRhcnktcCByYXctdmFsdWUgKG9yZy1lbGVtZW50LXBhcnNl LXNlY29uZGFyeS1zdHJpbmcgcmF3LXZhbHVlIChvcmctZWxlbWVudC1yZXN0cmljdGlvbiAocXVv dGUgaGVhZGxpbmUpKSBoZWFkbGluZSkpKSkpKQogIG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNl cigyNTc3MDYgdCkKICAoY29uZCAoKGVxIHNwZWNpYWwgKHF1b3RlIGl0ZW0pKSAob3JnLWVsZW1l bnQtaXRlbS1wYXJzZXIgbGltaXQgc3RydWN0dXJlIHJhdy1zZWNvbmRhcnktcCkpICgoZXEgc3Bl Y2lhbCAocXVvdGUgdGFibGUtcm93KSkgKG9yZy1lbGVtZW50LXRhYmxlLXJvdy1wYXJzZXIgbGlt aXQpKSAoKGVxIHNwZWNpYWwgKHF1b3RlIG5vZGUtcHJvcGVydHkpKSAob3JnLWVsZW1lbnQtbm9k ZS1wcm9wZXJ0eS1wYXJzZXIgbGltaXQpKSAoKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRl ZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUt cmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5l LXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChvcmctYXQtaGVh ZGluZy1wKSkgKG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNlciBsaW1pdCByYXctc2Vjb25kYXJ5 LXApKSAoKGVxIHNwZWNpYWwgKHF1b3RlIHNlY3Rpb24pKSAob3JnLWVsZW1lbnQtc2VjdGlvbi1w YXJzZXIgbGltaXQpKSAoKGVxIHNwZWNpYWwgKHF1b3RlIGZpcnN0LXNlY3Rpb24pKSAob3JnLWVs ZW1lbnQtc2VjdGlvbi1wYXJzZXIgKG9yIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAoKG9yZy1jYWxs ZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIC4uLikgKG91dGxp bmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgLi4u KSkgKG91dGxpbmUtbmV4dC1oZWFkaW5nKSkpIGxpbWl0KSkpICgobm90IChib2xwKSkgKG9yZy1l bGVtZW50LXBhcmFncmFwaC1wYXJzZXIgbGltaXQgKGxpc3QgKHBvaW50KSkpKSAoKGxvb2tpbmct YXQgb3JnLXBsYW5uaW5nLW9yLWNsb2NrLWxpbmUtcmUpIChpZiAoZXF1YWwgKG1hdGNoLXN0cmlu ZyAxKSBvcmctY2xvY2stc3RyaW5nKSAob3JnLWVsZW1lbnQtY2xvY2stcGFyc2VyIGxpbWl0KSAo b3JnLWVsZW1lbnQtcGxhbm5pbmctcGFyc2VyIGxpbWl0KSkpICgob3JnLWF0LWhlYWRpbmctcCkg KG9yZy1lbGVtZW50LWlubGluZXRhc2stcGFyc2VyIGxpbWl0IHJhdy1zZWNvbmRhcnktcCkpICh0 IChsZXQgKChhZmZpbGlhdGVkIChvcmctZWxlbWVudC0tY29sbGVjdC1hZmZpbGlhdGVkLWtleXdv cmRzIGxpbWl0KSkpIChjb25kICgoYW5kIChjZHIgYWZmaWxpYXRlZCkgKD49IChwb2ludCkgbGlt aXQpKSAoZ290by1jaGFyIChjYXIgYWZmaWxpYXRlZCkpIChvcmctZWxlbWVudC1rZXl3b3JkLXBh cnNlciBsaW1pdCBuaWwpKSAoKGxvb2tpbmctYXQgIlsgICAgIF0qXFxcXGJlZ2lue1tBLVphLXow LTkqXSt9XFwoXFxbLio/XFxdXFx8ey4qP31cXCkqWyAgICAgXSokIikgKG9yZy1lbGVtZW50LWxh dGV4LWVudmlyb25tZW50LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0IG9y Zy1kcmF3ZXItcmVnZXhwKSAoaWYgKGVxdWFsIChtYXRjaC1zdHJpbmcgMSkgIlBST1BFUlRJRVMi KSAob3JnLWVsZW1lbnQtcHJvcGVydHktZHJhd2VyLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSAo b3JnLWVsZW1lbnQtZHJhd2VyLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkpICgobG9va2luZy1h dCAiWyAgIF0qOlxcKCBcXHwkXFwpIikgKG9yZy1lbGVtZW50LWZpeGVkLXdpZHRoLXBhcnNlciBs aW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJbICAgICBdKiMiKSAoZ290by1jaGFyICht YXRjaC1lbmQgMCkpIChjb25kICgobG9va2luZy1hdCAiXFwoPzogXFx8JFxcKSIpIChiZWdpbm5p bmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWNvbW1lbnQtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQp KSAoKGxvb2tpbmctYXQgIlxcK0JFR0lOX1xcKFxcUy0rXFwpIikgKGJlZ2lubmluZy1vZi1saW5l KSAobGV0IC4uLiAuLi4pKSAoKGxvb2tpbmctYXQgIlxcK0NBTEw6IikgKGJlZ2lubmluZy1vZi1s aW5lKSAob3JnLWVsZW1lbnQtYmFiZWwtY2FsbC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgo bG9va2luZy1hdCAiXFwrQkVHSU46PyAiKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVu dC1keW5hbWljLWJsb2NrLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJc XCtcXFMtKzoiKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1rZXl3b3JkLXBhcnNl ciBsaW1pdCBhZmZpbGlhdGVkKSkgKHQgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQt cGFyYWdyYXBoLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkpKSAoKGxvb2tpbmctYXQgb3JnLWZv b3Rub3RlLWRlZmluaXRpb24tcmUpIChvcmctZWxlbWVudC1mb290bm90ZS1kZWZpbml0aW9uLXBh cnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJbICAgXSotXFx7NSxcXH1bICAg IF0qJCIpIChvcmctZWxlbWVudC1ob3Jpem9udGFsLXJ1bGUtcGFyc2VyIGxpbWl0IGFmZmlsaWF0 ZWQpKSAoKGxvb2tpbmctYXQgIiUlKCIpIChvcmctZWxlbWVudC1kaWFyeS1zZXhwLXBhcnNlciBs aW1pdCBhZmZpbGlhdGVkKSkgKChvcmctYXQtdGFibGUtcCB0KSAob3JnLWVsZW1lbnQtdGFibGUt cGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgKG9yZy1pdGVtLXJlKSkgKG9y Zy1lbGVtZW50LXBsYWluLWxpc3QtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQgKG9yIHN0cnVjdHVy ZSAob3JnLWVsZW1lbnQtLWxpc3Qtc3RydWN0IGxpbWl0KSkpKSAodCAob3JnLWVsZW1lbnQtcGFy YWdyYXBoLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkpKSkpCiAgKGxldCAoKGNhc2UtZm9sZC1z ZWFyY2ggdCkgKHJhdy1zZWNvbmRhcnktcCAoYW5kIGdyYW51bGFyaXR5IChub3QgKGVxIGdyYW51 bGFyaXR5IChxdW90ZSBvYmplY3QpKSkpKSkgKGNvbmQgKChlcSBzcGVjaWFsIChxdW90ZSBpdGVt KSkgKG9yZy1lbGVtZW50LWl0ZW0tcGFyc2VyIGxpbWl0IHN0cnVjdHVyZSByYXctc2Vjb25kYXJ5 LXApKSAoKGVxIHNwZWNpYWwgKHF1b3RlIHRhYmxlLXJvdykpIChvcmctZWxlbWVudC10YWJsZS1y b3ctcGFyc2VyIGxpbWl0KSkgKChlcSBzcGVjaWFsIChxdW90ZSBub2RlLXByb3BlcnR5KSkgKG9y Zy1lbGVtZW50LW5vZGUtcHJvcGVydHktcGFyc2VyIGxpbWl0KSkgKChsZXQqICgob3JnLWNhbGxl ZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGlt aXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHAp IChvcmctb3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkp KSAob3JnLWF0LWhlYWRpbmctcCkpIChvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIgbGltaXQg cmF3LXNlY29uZGFyeS1wKSkgKChlcSBzcGVjaWFsIChxdW90ZSBzZWN0aW9uKSkgKG9yZy1lbGVt ZW50LXNlY3Rpb24tcGFyc2VyIGxpbWl0KSkgKChlcSBzcGVjaWFsIChxdW90ZSBmaXJzdC1zZWN0 aW9uKSkgKG9yZy1lbGVtZW50LXNlY3Rpb24tcGFyc2VyIChvciAoc2F2ZS1leGN1cnNpb24gKGxl dCogKC4uLiAuLi4gLi4uIC4uLikgKG91dGxpbmUtbmV4dC1oZWFkaW5nKSkpIGxpbWl0KSkpICgo bm90IChib2xwKSkgKG9yZy1lbGVtZW50LXBhcmFncmFwaC1wYXJzZXIgbGltaXQgKGxpc3QgKHBv aW50KSkpKSAoKGxvb2tpbmctYXQgb3JnLXBsYW5uaW5nLW9yLWNsb2NrLWxpbmUtcmUpIChpZiAo ZXF1YWwgKG1hdGNoLXN0cmluZyAxKSBvcmctY2xvY2stc3RyaW5nKSAob3JnLWVsZW1lbnQtY2xv Y2stcGFyc2VyIGxpbWl0KSAob3JnLWVsZW1lbnQtcGxhbm5pbmctcGFyc2VyIGxpbWl0KSkpICgo b3JnLWF0LWhlYWRpbmctcCkgKG9yZy1lbGVtZW50LWlubGluZXRhc2stcGFyc2VyIGxpbWl0IHJh dy1zZWNvbmRhcnktcCkpICh0IChsZXQgKChhZmZpbGlhdGVkIChvcmctZWxlbWVudC0tY29sbGVj dC1hZmZpbGlhdGVkLWtleXdvcmRzIGxpbWl0KSkpIChjb25kICgoYW5kIChjZHIgYWZmaWxpYXRl ZCkgKD49IC4uLiBsaW1pdCkpIChnb3RvLWNoYXIgKGNhciBhZmZpbGlhdGVkKSkgKG9yZy1lbGVt ZW50LWtleXdvcmQtcGFyc2VyIGxpbWl0IG5pbCkpICgobG9va2luZy1hdCAiWyAgICAgICAgXSpc XFxcYmVnaW57W0EtWmEtejAtOSpdK31cXChcXFsuKj9cXF1cXHx7Lio/fVxcKSpbICAgICBdKiQi KSAob3JnLWVsZW1lbnQtbGF0ZXgtZW52aXJvbm1lbnQtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQp KSAoKGxvb2tpbmctYXQgb3JnLWRyYXdlci1yZWdleHApIChpZiAoZXF1YWwgLi4uICJQUk9QRVJU SUVTIikgKG9yZy1lbGVtZW50LXByb3BlcnR5LWRyYXdlci1wYXJzZXIgbGltaXQgYWZmaWxpYXRl ZCkgKG9yZy1lbGVtZW50LWRyYXdlci1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpKSAoKGxvb2tp bmctYXQgIlsgICAgICAgIF0qOlxcKCBcXHwkXFwpIikgKG9yZy1lbGVtZW50LWZpeGVkLXdpZHRo LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJbICAgICBdKiMiKSAoZ290 by1jaGFyIChtYXRjaC1lbmQgMCkpIChjb25kICguLi4gLi4uIC4uLikgKC4uLiAuLi4gLi4uKSAo Li4uIC4uLiAuLi4pICguLi4gLi4uIC4uLikgKC4uLiAuLi4gLi4uKSAodCAuLi4gLi4uKSkpICgo bG9va2luZy1hdCBvcmctZm9vdG5vdGUtZGVmaW5pdGlvbi1yZSkgKG9yZy1lbGVtZW50LWZvb3Ru b3RlLWRlZmluaXRpb24tcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlsg ICBdKi1cXHs1LFxcfVsgICAgXSokIikgKG9yZy1lbGVtZW50LWhvcml6b250YWwtcnVsZS1wYXJz ZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiJSUoIikgKG9yZy1lbGVtZW50LWRp YXJ5LXNleHAtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKG9yZy1hdC10YWJsZS1wIHQpIChv cmctZWxlbWVudC10YWJsZS1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAo b3JnLWl0ZW0tcmUpKSAob3JnLWVsZW1lbnQtcGxhaW4tbGlzdC1wYXJzZXIgbGltaXQgYWZmaWxp YXRlZCAob3Igc3RydWN0dXJlIC4uLikpKSAodCAob3JnLWVsZW1lbnQtcGFyYWdyYXBoLXBhcnNl ciBsaW1pdCBhZmZpbGlhdGVkKSkpKSkpKQogIChzYXZlLWV4Y3Vyc2lvbiAobGV0ICgoY2FzZS1m b2xkLXNlYXJjaCB0KSAocmF3LXNlY29uZGFyeS1wIChhbmQgZ3JhbnVsYXJpdHkgKG5vdCAoZXEg Z3JhbnVsYXJpdHkgKHF1b3RlIG9iamVjdCkpKSkpKSAoY29uZCAoKGVxIHNwZWNpYWwgKHF1b3Rl IGl0ZW0pKSAob3JnLWVsZW1lbnQtaXRlbS1wYXJzZXIgbGltaXQgc3RydWN0dXJlIHJhdy1zZWNv bmRhcnktcCkpICgoZXEgc3BlY2lhbCAocXVvdGUgdGFibGUtcm93KSkgKG9yZy1lbGVtZW50LXRh YmxlLXJvdy1wYXJzZXIgbGltaXQpKSAoKGVxIHNwZWNpYWwgKHF1b3RlIG5vZGUtcHJvcGVydHkp KSAob3JnLWVsZW1lbnQtbm9kZS1wcm9wZXJ0eS1wYXJzZXIgbGltaXQpKSAoKGxldCogKChvcmct Y2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdl dC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJl Z2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVn ZXhwKSkpIChvcmctYXQtaGVhZGluZy1wKSkgKG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNlciBs aW1pdCByYXctc2Vjb25kYXJ5LXApKSAoKGVxIHNwZWNpYWwgKHF1b3RlIHNlY3Rpb24pKSAob3Jn LWVsZW1lbnQtc2VjdGlvbi1wYXJzZXIgbGltaXQpKSAoKGVxIHNwZWNpYWwgKHF1b3RlIGZpcnN0 LXNlY3Rpb24pKSAob3JnLWVsZW1lbnQtc2VjdGlvbi1wYXJzZXIgKG9yIChzYXZlLWV4Y3Vyc2lv biAobGV0KiAuLi4gLi4uKSkgbGltaXQpKSkgKChub3QgKGJvbHApKSAob3JnLWVsZW1lbnQtcGFy YWdyYXBoLXBhcnNlciBsaW1pdCAobGlzdCAocG9pbnQpKSkpICgobG9va2luZy1hdCBvcmctcGxh bm5pbmctb3ItY2xvY2stbGluZS1yZSkgKGlmIChlcXVhbCAobWF0Y2gtc3RyaW5nIDEpIG9yZy1j bG9jay1zdHJpbmcpIChvcmctZWxlbWVudC1jbG9jay1wYXJzZXIgbGltaXQpIChvcmctZWxlbWVu dC1wbGFubmluZy1wYXJzZXIgbGltaXQpKSkgKChvcmctYXQtaGVhZGluZy1wKSAob3JnLWVsZW1l bnQtaW5saW5ldGFzay1wYXJzZXIgbGltaXQgcmF3LXNlY29uZGFyeS1wKSkgKHQgKGxldCAoKGFm ZmlsaWF0ZWQgKG9yZy1lbGVtZW50LS1jb2xsZWN0LWFmZmlsaWF0ZWQta2V5d29yZHMgbGltaXQp KSkgKGNvbmQgKChhbmQgLi4uIC4uLikgKGdvdG8tY2hhciAuLi4pIChvcmctZWxlbWVudC1rZXl3 b3JkLXBhcnNlciBsaW1pdCBuaWwpKSAoKGxvb2tpbmctYXQgIlsgICAgICBdKlxcXFxiZWdpbntb QS1aYS16MC05Kl0rfVxcKFxcWy4qP1xcXVxcfHsuKj99XFwpKlsgICAgIF0qJCIpIChvcmctZWxl bWVudC1sYXRleC1lbnZpcm9ubWVudC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2lu Zy1hdCBvcmctZHJhd2VyLXJlZ2V4cCkgKGlmIC4uLiAuLi4gLi4uKSkgKChsb29raW5nLWF0ICJb ICAgICAgICBdKjpcXCggXFx8JFxcKSIpIChvcmctZWxlbWVudC1maXhlZC13aWR0aC1wYXJzZXIg bGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiWyAgICAgXSojIikgKGdvdG8tY2hhciAu Li4pIChjb25kIC4uLiAuLi4gLi4uIC4uLiAuLi4gLi4uKSkgKChsb29raW5nLWF0IG9yZy1mb290 bm90ZS1kZWZpbml0aW9uLXJlKSAob3JnLWVsZW1lbnQtZm9vdG5vdGUtZGVmaW5pdGlvbi1wYXJz ZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiWyAgICAgICBdKi1cXHs1LFxcfVsg ICAgXSokIikgKG9yZy1lbGVtZW50LWhvcml6b250YWwtcnVsZS1wYXJzZXIgbGltaXQgYWZmaWxp YXRlZCkpICgobG9va2luZy1hdCAiJSUoIikgKG9yZy1lbGVtZW50LWRpYXJ5LXNleHAtcGFyc2Vy IGxpbWl0IGFmZmlsaWF0ZWQpKSAoKG9yZy1hdC10YWJsZS1wIHQpIChvcmctZWxlbWVudC10YWJs ZS1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAuLi4pIChvcmctZWxlbWVu dC1wbGFpbi1saXN0LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkIC4uLikpICh0IChvcmctZWxlbWVu dC1wYXJhZ3JhcGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSkpKSkpKQogIG9yZy1lbGVtZW50 LS1jdXJyZW50LWVsZW1lbnQoMjU3NzA2IGVsZW1lbnQgbmlsIG5pbCkKICAoc2V0cSBlbGVtZW50 IChvcmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50IGVuZCAocXVvdGUgZWxlbWVudCkgc3BlY2lh bC1mbGFnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6c3RydWN0dXJlIHBhcmVudCkpKQogIChpZiBl bGVtZW50IG5pbCAoc2V0cSBlbGVtZW50IChvcmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50IGVu ZCAocXVvdGUgZWxlbWVudCkgc3BlY2lhbC1mbGFnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6c3Ry dWN0dXJlIHBhcmVudCkpKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVu dCBwYXJlbnQpIChvcmctZWxlbWVudC0tY2FjaGUtcHV0IGVsZW1lbnQpKQogICh3aGlsZSB0IChp ZiBzeW5jcCAocHJvZ24gKGNvbmQgKCg9IChwb2ludCkgcG9zKSAodGhyb3cgKHF1b3RlIGV4aXQp IHBhcmVudCkpICgob3JnLWVsZW1lbnQtLWNhY2hlLWludGVycnVwdC1wIHRpbWUtbGltaXQpICh0 aHJvdyAocXVvdGUgaW50ZXJydXB0KSBuaWwpKSkpKSAoaWYgZWxlbWVudCBuaWwgKHNldHEgZWxl bWVudCAob3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVudCBlbmQgKHF1b3RlIGVsZW1lbnQpIHNw ZWNpYWwtZmxhZyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnN0cnVjdHVyZSBwYXJlbnQpKSkgKG9y Zy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBlbGVtZW50IDpwYXJlbnQgcGFyZW50KSAob3JnLWVsZW1l bnQtLWNhY2hlLXB1dCBlbGVtZW50KSkgKGxldCAoKGVsZW0tZW5kIChvcmctZWxlbWVudC1wcm9w ZXJ0eSA6ZW5kIGVsZW1lbnQpKSAodHlwZSAob3JnLWVsZW1lbnQtdHlwZSBlbGVtZW50KSkpIChj b25kICgoYW5kICg8PSBlbGVtLWVuZCBwb3MpICgvPSAocG9pbnQtbWF4KSBlbGVtLWVuZCkpIChn b3RvLWNoYXIgZWxlbS1lbmQpKSAoKG5vdCAobWVtcSB0eXBlIG9yZy1lbGVtZW50LWdyZWF0ZXIt ZWxlbWVudHMpKSAodGhyb3cgKHF1b3RlIGV4aXQpIGVsZW1lbnQpKSAoKGxldCAoKGNiZWcgKG9y Zy1lbGVtZW50LXByb3BlcnR5IDpjb250ZW50cy1iZWdpbiBlbGVtZW50KSkgKGNlbmQgKG9yZy1l bGVtZW50LXByb3BlcnR5IDpjb250ZW50cy1lbmQgZWxlbWVudCkpKSAoaWYgKG9yIHN5bmNwIChh bmQgY2JlZyBjZW5kIC4uLiAuLi4pKSAocHJvZ24gKGdvdG8tY2hhciAuLi4pIChzZXRxIG5leHQg bmlsIHNwZWNpYWwtZmxhZyAuLi4gcGFyZW50IGVsZW1lbnQgZW5kIGNlbmQpKSkpKSAodCAodGhy b3cgKHF1b3RlIGV4aXQpIGVsZW1lbnQpKSkpIChzZXRxIGVsZW1lbnQgbmlsKSkKICAobGV0ICgo ZW5kIChvciAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSAoc2F2ZS1leGN1cnNp b24gKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5l LXJlZ2V4cCAuLi4pIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0 bGluZS1yZWdleHAtYm9sIC4uLikpIChvdXRsaW5lLW5leHQtaGVhZGluZykpIChwb2ludCkpKSkg KHBhcmVudCBlbGVtZW50KSBzcGVjaWFsLWZsYWcpICh3aGlsZSB0IChpZiBzeW5jcCAocHJvZ24g KGNvbmQgKCg9IChwb2ludCkgcG9zKSAodGhyb3cgKHF1b3RlIGV4aXQpIHBhcmVudCkpICgob3Jn LWVsZW1lbnQtLWNhY2hlLWludGVycnVwdC1wIHRpbWUtbGltaXQpICh0aHJvdyAocXVvdGUgaW50 ZXJydXB0KSBuaWwpKSkpKSAoaWYgZWxlbWVudCBuaWwgKHNldHEgZWxlbWVudCAob3JnLWVsZW1l bnQtLWN1cnJlbnQtZWxlbWVudCBlbmQgKHF1b3RlIGVsZW1lbnQpIHNwZWNpYWwtZmxhZyAob3Jn LWVsZW1lbnQtcHJvcGVydHkgOnN0cnVjdHVyZSBwYXJlbnQpKSkgKG9yZy1lbGVtZW50LXB1dC1w cm9wZXJ0eSBlbGVtZW50IDpwYXJlbnQgcGFyZW50KSAob3JnLWVsZW1lbnQtLWNhY2hlLXB1dCBl bGVtZW50KSkgKGxldCAoKGVsZW0tZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1l bnQpKSAodHlwZSAob3JnLWVsZW1lbnQtdHlwZSBlbGVtZW50KSkpIChjb25kICgoYW5kICg8PSBl bGVtLWVuZCBwb3MpICgvPSAocG9pbnQtbWF4KSBlbGVtLWVuZCkpIChnb3RvLWNoYXIgZWxlbS1l bmQpKSAoKG5vdCAobWVtcSB0eXBlIG9yZy1lbGVtZW50LWdyZWF0ZXItZWxlbWVudHMpKSAodGhy b3cgKHF1b3RlIGV4aXQpIGVsZW1lbnQpKSAoKGxldCAoKGNiZWcgLi4uKSAoY2VuZCAuLi4pKSAo aWYgKG9yIHN5bmNwIC4uLikgKHByb2duIC4uLiAuLi4pKSkpICh0ICh0aHJvdyAocXVvdGUgZXhp dCkgZWxlbWVudCkpKSkgKHNldHEgZWxlbWVudCBuaWwpKSkKICAobGV0KiAoKGNhY2hlZCAoYW5k IChvcmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChvcmctZWxlbWVudC0tY2FjaGUtZmluZCBw b3MgbmlsKSkpIChiZWdpbiAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmJlZ2luIGNhY2hlZCkpIGVs ZW1lbnQgbmV4dCkgKGNvbmQgKChub3QgY2FjaGVkKSAoaWYgKGxldCogKChvcmctY2FsbGVkLXdp dGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVk LW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9y Zy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChv dXRsaW5lLXByZXZpb3VzLWhlYWRpbmcpKSAocHJvZ24gKGZvcndhcmQtbGluZSkpKSAoc2tpcC1j aGFycy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkpICgoPSBwb3MgYmVnaW4p ICh0aHJvdyAocXVvdGUgZXhpdCkgKGlmIHN5bmNwIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGFy ZW50IGNhY2hlZCkgY2FjaGVkKSkpICgocmUtc2VhcmNoLWJhY2t3YXJkIChsZXQqICgob3JnLWNh bGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQt bGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdl eHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4 cCkpKSBvcmctb3V0bGluZS1yZWdleHAtYm9sKSBiZWdpbiB0KSAoZm9yd2FyZC1saW5lKSAoc2tp cC1jaGFycy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkpICh0IChsZXQgKCh1 cCBjYWNoZWQpIChwb3MgKGlmICg9IC4uLiBwb3MpICgxLSBwb3MpIHBvcykpKSAoZ290by1jaGFy IChvciAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmNvbnRlbnRzLWJlZ2luIGNhY2hlZCkgYmVnaW4p KSAod2hpbGUgKGxldCAoKGVuZCAuLi4pKSAoYW5kICg8PSBlbmQgcG9zKSAoZ290by1jaGFyIGVu ZCkgKHNldHEgdXAgLi4uKSkpKSAoY29uZCAoKG5vdCB1cCkpICgoZW9icCkgKHNldHEgZWxlbWVu dCB1cCkpICh0IChzZXRxIGVsZW1lbnQgdXAgbmV4dCAocG9pbnQpKSkpKSkpIChsZXQgKChlbmQg KG9yIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQpIChzYXZlLWV4Y3Vyc2lvbiAo bGV0KiAoLi4uIC4uLiAuLi4gLi4uKSAob3V0bGluZS1uZXh0LWhlYWRpbmcpKSAocG9pbnQpKSkp IChwYXJlbnQgZWxlbWVudCkgc3BlY2lhbC1mbGFnKSAod2hpbGUgdCAoaWYgc3luY3AgKHByb2du IChjb25kICgoPSAuLi4gcG9zKSAodGhyb3cgLi4uIHBhcmVudCkpICgob3JnLWVsZW1lbnQtLWNh Y2hlLWludGVycnVwdC1wIHRpbWUtbGltaXQpICh0aHJvdyAuLi4gbmlsKSkpKSkgKGlmIGVsZW1l bnQgbmlsIChzZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50LS1jdXJyZW50LWVsZW1lbnQgZW5kIChx dW90ZSBlbGVtZW50KSBzcGVjaWFsLWZsYWcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpzdHJ1Y3R1 cmUgcGFyZW50KSkpIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgZWxlbWVudCA6cGFyZW50IHBh cmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQgZWxlbWVudCkpIChsZXQgKChlbGVtLWVuZCAo b3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSkgKHR5cGUgKG9yZy1lbGVtZW50LXR5 cGUgZWxlbWVudCkpKSAoY29uZCAoKGFuZCAoPD0gZWxlbS1lbmQgcG9zKSAoLz0gLi4uIGVsZW0t ZW5kKSkgKGdvdG8tY2hhciBlbGVtLWVuZCkpICgobm90IChtZW1xIHR5cGUgb3JnLWVsZW1lbnQt Z3JlYXRlci1lbGVtZW50cykpICh0aHJvdyAocXVvdGUgZXhpdCkgZWxlbWVudCkpICgobGV0ICgu Li4gLi4uKSAoaWYgLi4uIC4uLikpKSAodCAodGhyb3cgKHF1b3RlIGV4aXQpIGVsZW1lbnQpKSkp IChzZXRxIGVsZW1lbnQgbmlsKSkpKQogIChzYXZlLXJlc3RyaWN0aW9uICh3aWRlbikgKGdvdG8t Y2hhciBwb3MpIChsZXQqICgoY2FjaGVkIChhbmQgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUt cCkgKG9yZy1lbGVtZW50LS1jYWNoZS1maW5kIHBvcyBuaWwpKSkgKGJlZ2luIChvcmctZWxlbWVu dC1wcm9wZXJ0eSA6YmVnaW4gY2FjaGVkKSkgZWxlbWVudCBuZXh0KSAoY29uZCAoKG5vdCBjYWNo ZWQpIChpZiAobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91 dGxpbmUtcmVnZXhwIC4uLikgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9y Zy1vdXRsaW5lLXJlZ2V4cC1ib2wgLi4uKSkgKG91dGxpbmUtcHJldmlvdXMtaGVhZGluZykpIChw cm9nbiAoZm9yd2FyZC1saW5lKSkpIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lu bmluZy1vZi1saW5lKSkgKCg9IHBvcyBiZWdpbikgKHRocm93IChxdW90ZSBleGl0KSAoaWYgc3lu Y3AgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpwYXJlbnQgY2FjaGVkKSBjYWNoZWQpKSkgKChyZS1z ZWFyY2gtYmFja3dhcmQgKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkg KG9yZy1vdXRsaW5lLXJlZ2V4cCAuLi4pIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdl eHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIC4uLikpIG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wp IGJlZ2luIHQpIChmb3J3YXJkLWxpbmUpIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGJl Z2lubmluZy1vZi1saW5lKSkgKHQgKGxldCAoKHVwIGNhY2hlZCkgKHBvcyAoaWYgLi4uIC4uLiBw b3MpKSkgKGdvdG8tY2hhciAob3IgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpjb250ZW50cy1iZWdp biBjYWNoZWQpIGJlZ2luKSkgKHdoaWxlIChsZXQgKC4uLikgKGFuZCAuLi4gLi4uIC4uLikpKSAo Y29uZCAoKG5vdCB1cCkpICgoZW9icCkgKHNldHEgZWxlbWVudCB1cCkpICh0IChzZXRxIGVsZW1l bnQgdXAgbmV4dCAuLi4pKSkpKSkgKGxldCAoKGVuZCAob3IgKG9yZy1lbGVtZW50LXByb3BlcnR5 IDplbmQgZWxlbWVudCkgKHNhdmUtZXhjdXJzaW9uIChsZXQqIC4uLiAuLi4pIChwb2ludCkpKSkg KHBhcmVudCBlbGVtZW50KSBzcGVjaWFsLWZsYWcpICh3aGlsZSB0IChpZiBzeW5jcCAocHJvZ24g KGNvbmQgKC4uLiAuLi4pICguLi4gLi4uKSkpKSAoaWYgZWxlbWVudCBuaWwgKHNldHEgZWxlbWVu dCAob3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVudCBlbmQgKHF1b3RlIGVsZW1lbnQpIHNwZWNp YWwtZmxhZyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnN0cnVjdHVyZSBwYXJlbnQpKSkgKG9yZy1l bGVtZW50LXB1dC1wcm9wZXJ0eSBlbGVtZW50IDpwYXJlbnQgcGFyZW50KSAob3JnLWVsZW1lbnQt LWNhY2hlLXB1dCBlbGVtZW50KSkgKGxldCAoKGVsZW0tZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0 eSA6ZW5kIGVsZW1lbnQpKSAodHlwZSAob3JnLWVsZW1lbnQtdHlwZSBlbGVtZW50KSkpIChjb25k ICgoYW5kIC4uLiAuLi4pIChnb3RvLWNoYXIgZWxlbS1lbmQpKSAoKG5vdCAuLi4pICh0aHJvdyAu Li4gZWxlbWVudCkpICgobGV0IC4uLiAuLi4pKSAodCAodGhyb3cgLi4uIGVsZW1lbnQpKSkpIChz ZXRxIGVsZW1lbnQgbmlsKSkpKSkKICAoc2F2ZS1leGN1cnNpb24gKHNhdmUtcmVzdHJpY3Rpb24g KHdpZGVuKSAoZ290by1jaGFyIHBvcykgKGxldCogKChjYWNoZWQgKGFuZCAob3JnLWVsZW1lbnQt LWNhY2hlLWFjdGl2ZS1wKSAob3JnLWVsZW1lbnQtLWNhY2hlLWZpbmQgcG9zIG5pbCkpKSAoYmVn aW4gKG9yZy1lbGVtZW50LXByb3BlcnR5IDpiZWdpbiBjYWNoZWQpKSBlbGVtZW50IG5leHQpIChj b25kICgobm90IGNhY2hlZCkgKGlmIChsZXQqICguLi4gLi4uIC4uLiAuLi4pIChvdXRsaW5lLXBy ZXZpb3VzLWhlYWRpbmcpKSAocHJvZ24gKGZvcndhcmQtbGluZSkpKSAoc2tpcC1jaGFycy1mb3J3 YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkpICgoPSBwb3MgYmVnaW4pICh0aHJvdyAo cXVvdGUgZXhpdCkgKGlmIHN5bmNwIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGFyZW50IGNhY2hl ZCkgY2FjaGVkKSkpICgocmUtc2VhcmNoLWJhY2t3YXJkIChsZXQqICguLi4gLi4uIC4uLiAuLi4p IG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wpIGJlZ2luIHQpIChmb3J3YXJkLWxpbmUpIChza2lwLWNo YXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkgKHQgKGxldCAoKHVwIGNh Y2hlZCkgKHBvcyAuLi4pKSAoZ290by1jaGFyIChvciAuLi4gYmVnaW4pKSAod2hpbGUgKGxldCAu Li4gLi4uKSkgKGNvbmQgKC4uLikgKC4uLiAuLi4pICh0IC4uLikpKSkpIChsZXQgKChlbmQgKG9y IChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQpIChzYXZlLWV4Y3Vyc2lvbiAuLi4g Li4uKSkpIChwYXJlbnQgZWxlbWVudCkgc3BlY2lhbC1mbGFnKSAod2hpbGUgdCAoaWYgc3luY3Ag KHByb2duIChjb25kIC4uLiAuLi4pKSkgKGlmIGVsZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQgKG9y Zy1lbGVtZW50LS1jdXJyZW50LWVsZW1lbnQgZW5kIC4uLiBzcGVjaWFsLWZsYWcgLi4uKSkgKG9y Zy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBlbGVtZW50IDpwYXJlbnQgcGFyZW50KSAob3JnLWVsZW1l bnQtLWNhY2hlLXB1dCBlbGVtZW50KSkgKGxldCAoKGVsZW0tZW5kIC4uLikgKHR5cGUgLi4uKSkg KGNvbmQgKC4uLiAuLi4pICguLi4gLi4uKSAoLi4uKSAodCAuLi4pKSkgKHNldHEgZWxlbWVudCBu aWwpKSkpKSkKICAoY2F0Y2ggKHF1b3RlIGV4aXQpIChzYXZlLWV4Y3Vyc2lvbiAoc2F2ZS1yZXN0 cmljdGlvbiAod2lkZW4pIChnb3RvLWNoYXIgcG9zKSAobGV0KiAoKGNhY2hlZCAoYW5kIChvcmct ZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChvcmctZWxlbWVudC0tY2FjaGUtZmluZCBwb3Mgbmls KSkpIChiZWdpbiAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmJlZ2luIGNhY2hlZCkpIGVsZW1lbnQg bmV4dCkgKGNvbmQgKChub3QgY2FjaGVkKSAoaWYgKGxldCogLi4uIC4uLikgKHByb2duIC4uLikp IChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkgKCg9IHBv cyBiZWdpbikgKHRocm93IChxdW90ZSBleGl0KSAoaWYgc3luY3AgLi4uIGNhY2hlZCkpKSAoKHJl LXNlYXJjaC1iYWNrd2FyZCAobGV0KiAuLi4gb3JnLW91dGxpbmUtcmVnZXhwLWJvbCkgYmVnaW4g dCkgKGZvcndhcmQtbGluZSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5n LW9mLWxpbmUpKSAodCAobGV0ICguLi4gLi4uKSAoZ290by1jaGFyIC4uLikgKHdoaWxlIC4uLikg KGNvbmQgLi4uIC4uLiAuLi4pKSkpIChsZXQgKChlbmQgKG9yIC4uLiAuLi4pKSAocGFyZW50IGVs ZW1lbnQpIHNwZWNpYWwtZmxhZykgKHdoaWxlIHQgKGlmIHN5bmNwIChwcm9nbiAuLi4pKSAoaWYg ZWxlbWVudCBuaWwgKHNldHEgZWxlbWVudCAuLi4pIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkg ZWxlbWVudCA6cGFyZW50IHBhcmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQgZWxlbWVudCkp IChsZXQgKC4uLiAuLi4pIChjb25kIC4uLiAuLi4gLi4uIC4uLikpIChzZXRxIGVsZW1lbnQgbmls KSkpKSkpKQogIG9yZy1lbGVtZW50LS1wYXJzZS10bygyNTcyODApCiAgKGNvbmQgKChib2JwKSBu aWwpICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxp bmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdl eHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJe IiBvcmctb3V0bGluZS1yZWdleHApKSkgKG9yZy1hdC1oZWFkaW5nLXApKSAoYmVnaW5uaW5nLW9m LWxpbmUpIChvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIgKHBvaW50LW1heCkgdCkpICh0IChp ZiAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAocHJvZ24gKGlmIChub3Qgb3JnLWVsZW1l bnQtLWNhY2hlKSAob3JnLWVsZW1lbnQtY2FjaGUtcmVzZXQpIChvcmctZWxlbWVudC0tY2FjaGUt c3luYyAoY3VycmVudC1idWZmZXIpIG9yaWdpbikpKSkgKG9yZy1lbGVtZW50LS1wYXJzZS10byBv cmlnaW4pKSkKICAobGV0ICgob3JpZ2luIChwb2ludCkpKSAoZW5kLW9mLWxpbmUpIChza2lwLWNo YXJzLWJhY2t3YXJkICIgDQlcbiIpIChjb25kICgoYm9icCkgbmlsKSAoKGxldCogKChvcmctY2Fs bGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1s aW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4 cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhw KSkpIChvcmctYXQtaGVhZGluZy1wKSkgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQt aGVhZGxpbmUtcGFyc2VyIChwb2ludC1tYXgpIHQpKSAodCAoaWYgKG9yZy1lbGVtZW50LS1jYWNo ZS1hY3RpdmUtcCkgKHByb2duIChpZiAobm90IG9yZy1lbGVtZW50LS1jYWNoZSkgKG9yZy1lbGVt ZW50LWNhY2hlLXJlc2V0KSAob3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMgKGN1cnJlbnQtYnVmZmVy KSBvcmlnaW4pKSkpIChvcmctZWxlbWVudC0tcGFyc2UtdG8gb3JpZ2luKSkpKQogIChzYXZlLXJl c3RyaWN0aW9uICh3aWRlbikgKGxldCAoKG9yaWdpbiAocG9pbnQpKSkgKGVuZC1vZi1saW5lKSAo c2tpcC1jaGFycy1iYWNrd2FyZCAiIA0JXG4iKSAoY29uZCAoKGJvYnApIG5pbCkgKChsZXQqICgo b3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9y Zy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGlu ZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5l LXJlZ2V4cCkpKSAob3JnLWF0LWhlYWRpbmctcCkpIChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1l bGVtZW50LWhlYWRsaW5lLXBhcnNlciAocG9pbnQtbWF4KSB0KSkgKHQgKGlmIChvcmctZWxlbWVu dC0tY2FjaGUtYWN0aXZlLXApIChwcm9nbiAoaWYgKG5vdCBvcmctZWxlbWVudC0tY2FjaGUpIChv cmctZWxlbWVudC1jYWNoZS1yZXNldCkgKG9yZy1lbGVtZW50LS1jYWNoZS1zeW5jIC4uLiBvcmln aW4pKSkpIChvcmctZWxlbWVudC0tcGFyc2UtdG8gb3JpZ2luKSkpKSkKICAoc2F2ZS1leGN1cnNp b24gKHNhdmUtcmVzdHJpY3Rpb24gKHdpZGVuKSAobGV0ICgob3JpZ2luIChwb2ludCkpKSAoZW5k LW9mLWxpbmUpIChza2lwLWNoYXJzLWJhY2t3YXJkICIgDQlcbiIpIChjb25kICgoYm9icCkgbmls KSAoKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5l LXJlZ2V4cCAuLi4pIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0 bGluZS1yZWdleHAtYm9sIC4uLikpIChvcmctYXQtaGVhZGluZy1wKSkgKGJlZ2lubmluZy1vZi1s aW5lKSAob3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFyc2VyIChwb2ludC1tYXgpIHQpKSAodCAoaWYg KG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKHByb2duIChpZiAuLi4gLi4uIC4uLikpKSAo b3JnLWVsZW1lbnQtLXBhcnNlLXRvIG9yaWdpbikpKSkpKQogIG9yZy1lbGVtZW50LWF0LXBvaW50 KCkKICAobGV0ICgoZHJhd2VyIChvcmctZWxlbWVudC1hdC1wb2ludCkpKSAoaWYgKGFuZCAoZXEg KG9yZy1lbGVtZW50LXR5cGUgZHJhd2VyKSAocXVvdGUgcHJvcGVydHktZHJhd2VyKSkgKGxldCAo KHAgZHJhd2VyKSkgKHdoaWxlIChhbmQgKHNldHEgcCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBh cmVudCBwKSkgKG5vdCAoZXEgLi4uIC4uLikpKSkgKG5vdCBwKSkpIChwcm9nbiAobGV0ICgoZW5k IChvcmctZWxlbWVudC1wcm9wZXJ0eSA6Y29udGVudHMtZW5kIGRyYXdlcikpKSAoaWYgZW5kIChw cm9nbiAoZm9yd2FyZC1saW5lKSAod2hpbGUgKDwgLi4uIGVuZCkgKGlmIC4uLiAuLi4pIChmb3J3 YXJkLWxpbmUpKSkpKSkpKQogICh3aGlsZSAoYW5kIChudWxsIHBsaXN0KSAocmUtc2VhcmNoLWZv cndhcmQgb3JnLXByb3BlcnR5LXN0YXJ0LXJlIGVuZCB0KSkgKGxldCAoKGRyYXdlciAob3JnLWVs ZW1lbnQtYXQtcG9pbnQpKSkgKGlmIChhbmQgKGVxIChvcmctZWxlbWVudC10eXBlIGRyYXdlcikg KHF1b3RlIHByb3BlcnR5LWRyYXdlcikpIChsZXQgKChwIGRyYXdlcikpICh3aGlsZSAoYW5kIChz ZXRxIHAgLi4uKSAobm90IC4uLikpKSAobm90IHApKSkgKHByb2duIChsZXQgKChlbmQgKG9yZy1l bGVtZW50LXByb3BlcnR5IDpjb250ZW50cy1lbmQgZHJhd2VyKSkpIChpZiBlbmQgKHByb2duIChm b3J3YXJkLWxpbmUpICh3aGlsZSAuLi4gLi4uIC4uLikpKSkpKSkpCiAgKHNhdmUtZXhjdXJzaW9u ICh3aGlsZSAoYW5kIChudWxsIHBsaXN0KSAocmUtc2VhcmNoLWZvcndhcmQgb3JnLXByb3BlcnR5 LXN0YXJ0LXJlIGVuZCB0KSkgKGxldCAoKGRyYXdlciAob3JnLWVsZW1lbnQtYXQtcG9pbnQpKSkg KGlmIChhbmQgKGVxIChvcmctZWxlbWVudC10eXBlIGRyYXdlcikgKHF1b3RlIHByb3BlcnR5LWRy YXdlcikpIChsZXQgKChwIGRyYXdlcikpICh3aGlsZSAoYW5kIC4uLiAuLi4pKSAobm90IHApKSkg KHByb2duIChsZXQgKChlbmQgLi4uKSkgKGlmIGVuZCAocHJvZ24gLi4uIC4uLikpKSkpKSkgcGxp c3QpCiAgKGxldCAoKGVuZCAoc2F2ZS1leGN1cnNpb24gKGxldCogKChvcmctY2FsbGVkLXdpdGgt bGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91 dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1v dXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChvdXRs aW5lLW5leHQtaGVhZGluZykpIChwb2ludCkpKSBwbGlzdCkgKHNhdmUtZXhjdXJzaW9uICh3aGls ZSAoYW5kIChudWxsIHBsaXN0KSAocmUtc2VhcmNoLWZvcndhcmQgb3JnLXByb3BlcnR5LXN0YXJ0 LXJlIGVuZCB0KSkgKGxldCAoKGRyYXdlciAob3JnLWVsZW1lbnQtYXQtcG9pbnQpKSkgKGlmIChh bmQgKGVxIChvcmctZWxlbWVudC10eXBlIGRyYXdlcikgKHF1b3RlIHByb3BlcnR5LWRyYXdlcikp IChsZXQgKC4uLikgKHdoaWxlIC4uLikgKG5vdCBwKSkpIChwcm9nbiAobGV0ICguLi4pIChpZiBl bmQgLi4uKSkpKSkpIHBsaXN0KSkKICAobGV0KiAoKGNvbXBvbmVudHMgKG9yZy1oZWFkaW5nLWNv bXBvbmVudHMpKSAobGV2ZWwgKG50aCAxIGNvbXBvbmVudHMpKSAodG9kbyAobnRoIDIgY29tcG9u ZW50cykpICh0b2RvLXR5cGUgKGFuZCB0b2RvIChpZiAobWVtYmVyIHRvZG8gb3JnLWRvbmUta2V5 d29yZHMpIChxdW90ZSBkb25lKSAocXVvdGUgdG9kbykpKSkgKHRhZ3MgKGxldCAoKHJhdy10YWdz IChudGggNSBjb21wb25lbnRzKSkpIChhbmQgcmF3LXRhZ3MgKG9yZy1zcGxpdC1zdHJpbmcgcmF3 LXRhZ3MgIjoiKSkpKSAocmF3LXZhbHVlIChvciAobnRoIDQgY29tcG9uZW50cykgIiIpKSAoY29t bWVudGVkcCAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCBuaWwpKSAoc3RyaW5nLW1hdGNoIChmb3Jt YXQgIl4lc1xcKCBcXHwkXFwpIiBvcmctY29tbWVudC1zdHJpbmcpIHJhdy12YWx1ZSkpKSAoYXJj aGl2ZWRwIChtZW1iZXIgb3JnLWFyY2hpdmUtdGFnIHRhZ3MpKSAoZm9vdG5vdGUtc2VjdGlvbi1w IChhbmQgb3JnLWZvb3Rub3RlLXNlY3Rpb24gKHN0cmluZz0gb3JnLWZvb3Rub3RlLXNlY3Rpb24g cmF3LXZhbHVlKSkpIChzdGFuZGFyZC1wcm9wcyAobGV0ICgoZW5kIChzYXZlLWV4Y3Vyc2lvbiAo bGV0KiAuLi4gLi4uKSAocG9pbnQpKSkgcGxpc3QpIChzYXZlLWV4Y3Vyc2lvbiAod2hpbGUgKGFu ZCAobnVsbCBwbGlzdCkgKHJlLXNlYXJjaC1mb3J3YXJkIG9yZy1wcm9wZXJ0eS1zdGFydC1yZSBl bmQgdCkpIChsZXQgKC4uLikgKGlmIC4uLiAuLi4pKSkgcGxpc3QpKSkgKHRpbWUtcHJvcHMgKHNh dmUtZXhjdXJzaW9uIChmb3J3YXJkLWxpbmUpIChpZiAobG9va2luZy1hdCBvcmctcGxhbm5pbmct b3ItY2xvY2stbGluZS1yZSkgKHByb2duIChsZXQgKC4uLiBwbGlzdCkgKHdoaWxlIC4uLiAuLi4g Li4uIC4uLikgcGxpc3QpKSkpKSAoYmVnaW4gKHBvaW50KSkgKGVuZCAobWluIChzYXZlLWV4Y3Vy c2lvbiAob3JnLWVuZC1vZi1zdWJ0cmVlIHQgdCkpIGxpbWl0KSkgKHBvcy1hZnRlci1oZWFkIChw cm9nbiAoZm9yd2FyZC1saW5lKSAocG9pbnQpKSkgKGNvbnRlbnRzLWJlZ2luIChzYXZlLWV4Y3Vy c2lvbiAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIgZW5kKSAoYW5kICgvPSAocG9pbnQpIGVu ZCkgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkpKSAoY29udGVudHMtZW5kIChhbmQgY29udGVu dHMtYmVnaW4gKHByb2duIChnb3RvLWNoYXIgZW5kKSAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIA0J XG4iKSAoZm9yd2FyZC1saW5lKSAocG9pbnQpKSkpKSAoaWYgY29tbWVudGVkcCAocHJvZ24gKGxl dCAoKGNhc2UtZm9sZC1zZWFyY2ggbmlsKSkgKHNldHEgcmF3LXZhbHVlIChyZXBsYWNlLXJlZ2V4 cC1pbi1zdHJpbmcgKGNvbmNhdCAocmVnZXhwLXF1b3RlIG9yZy1jb21tZW50LXN0cmluZykgIlxc KD86IFxcfCRcXCkiKSAiIiByYXctdmFsdWUpKSkpKSAoaWYgYXJjaGl2ZWRwIChwcm9nbiAoc2V0 cSB0YWdzIChkZWxldGUgb3JnLWFyY2hpdmUtdGFnIHRhZ3MpKSkpIChsZXQgKChoZWFkbGluZSAo bGlzdCAocXVvdGUgaGVhZGxpbmUpIChuY29uYyAobGlzdCA6cmF3LXZhbHVlIHJhdy12YWx1ZSA6 YmVnaW4gYmVnaW4gOmVuZCBlbmQgOnByZS1ibGFuayAoaWYgLi4uIDAgLi4uKSA6Y29udGVudHMt YmVnaW4gY29udGVudHMtYmVnaW4gOmNvbnRlbnRzLWVuZCBjb250ZW50cy1lbmQgOmxldmVsIGxl dmVsIDpwcmlvcml0eSAobnRoIDMgY29tcG9uZW50cykgOnRhZ3MgdGFncyA6dG9kby1rZXl3b3Jk IHRvZG8gOnRvZG8tdHlwZSB0b2RvLXR5cGUgOnBvc3QtYmxhbmsgKGNvdW50LWxpbmVzIC4uLiBl bmQpIDpmb290bm90ZS1zZWN0aW9uLXAgZm9vdG5vdGUtc2VjdGlvbi1wIDphcmNoaXZlZHAgYXJj aGl2ZWRwIDpjb21tZW50ZWRwIGNvbW1lbnRlZHApIHRpbWUtcHJvcHMgc3RhbmRhcmQtcHJvcHMp KSkpIChsZXQgKChhbHQtdGl0bGUgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpBTFRfVElUTEUgaGVh ZGxpbmUpKSkgKGlmIGFsdC10aXRsZSAocHJvZ24gKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBo ZWFkbGluZSA6YWx0LXRpdGxlIChpZiByYXctc2Vjb25kYXJ5LXAgYWx0LXRpdGxlIChvcmctZWxl bWVudC1wYXJzZS1zZWNvbmRhcnktc3RyaW5nIGFsdC10aXRsZSAuLi4gaGVhZGxpbmUpKSkpKSkg KG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBoZWFkbGluZSA6dGl0bGUgKGlmIHJhdy1zZWNvbmRh cnktcCByYXctdmFsdWUgKG9yZy1lbGVtZW50LXBhcnNlLXNlY29uZGFyeS1zdHJpbmcgcmF3LXZh bHVlIChvcmctZWxlbWVudC1yZXN0cmljdGlvbiAocXVvdGUgaGVhZGxpbmUpKSBoZWFkbGluZSkp KSkpCiAgKHNhdmUtZXhjdXJzaW9uIChsZXQqICgoY29tcG9uZW50cyAob3JnLWhlYWRpbmctY29t cG9uZW50cykpIChsZXZlbCAobnRoIDEgY29tcG9uZW50cykpICh0b2RvIChudGggMiBjb21wb25l bnRzKSkgKHRvZG8tdHlwZSAoYW5kIHRvZG8gKGlmIChtZW1iZXIgdG9kbyBvcmctZG9uZS1rZXl3 b3JkcykgKHF1b3RlIGRvbmUpIChxdW90ZSB0b2RvKSkpKSAodGFncyAobGV0ICgocmF3LXRhZ3Mg KG50aCA1IGNvbXBvbmVudHMpKSkgKGFuZCByYXctdGFncyAob3JnLXNwbGl0LXN0cmluZyByYXct dGFncyAiOiIpKSkpIChyYXctdmFsdWUgKG9yIChudGggNCBjb21wb25lbnRzKSAiIikpIChjb21t ZW50ZWRwIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIG5pbCkpIChzdHJpbmctbWF0Y2ggKGZvcm1h dCAiXiVzXFwoIFxcfCRcXCkiIG9yZy1jb21tZW50LXN0cmluZykgcmF3LXZhbHVlKSkpIChhcmNo aXZlZHAgKG1lbWJlciBvcmctYXJjaGl2ZS10YWcgdGFncykpIChmb290bm90ZS1zZWN0aW9uLXAg KGFuZCBvcmctZm9vdG5vdGUtc2VjdGlvbiAoc3RyaW5nPSBvcmctZm9vdG5vdGUtc2VjdGlvbiBy YXctdmFsdWUpKSkgKHN0YW5kYXJkLXByb3BzIChsZXQgKChlbmQgKHNhdmUtZXhjdXJzaW9uIC4u LiAuLi4pKSBwbGlzdCkgKHNhdmUtZXhjdXJzaW9uICh3aGlsZSAoYW5kIC4uLiAuLi4pIChsZXQg Li4uIC4uLikpIHBsaXN0KSkpICh0aW1lLXByb3BzIChzYXZlLWV4Y3Vyc2lvbiAoZm9yd2FyZC1s aW5lKSAoaWYgKGxvb2tpbmctYXQgb3JnLXBsYW5uaW5nLW9yLWNsb2NrLWxpbmUtcmUpIChwcm9n biAobGV0IC4uLiAuLi4gcGxpc3QpKSkpKSAoYmVnaW4gKHBvaW50KSkgKGVuZCAobWluIChzYXZl LWV4Y3Vyc2lvbiAob3JnLWVuZC1vZi1zdWJ0cmVlIHQgdCkpIGxpbWl0KSkgKHBvcy1hZnRlci1o ZWFkIChwcm9nbiAoZm9yd2FyZC1saW5lKSAocG9pbnQpKSkgKGNvbnRlbnRzLWJlZ2luIChzYXZl LWV4Y3Vyc2lvbiAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIgZW5kKSAoYW5kICgvPSAocG9p bnQpIGVuZCkgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkpKSAoY29udGVudHMtZW5kIChhbmQg Y29udGVudHMtYmVnaW4gKHByb2duIChnb3RvLWNoYXIgZW5kKSAoc2tpcC1jaGFycy1iYWNrd2Fy ZCAiIA0JXG4iKSAoZm9yd2FyZC1saW5lKSAocG9pbnQpKSkpKSAoaWYgY29tbWVudGVkcCAocHJv Z24gKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggbmlsKSkgKHNldHEgcmF3LXZhbHVlIChyZXBsYWNl LXJlZ2V4cC1pbi1zdHJpbmcgKGNvbmNhdCAuLi4gIlxcKD86IFxcfCRcXCkiKSAiIiByYXctdmFs dWUpKSkpKSAoaWYgYXJjaGl2ZWRwIChwcm9nbiAoc2V0cSB0YWdzIChkZWxldGUgb3JnLWFyY2hp dmUtdGFnIHRhZ3MpKSkpIChsZXQgKChoZWFkbGluZSAobGlzdCAocXVvdGUgaGVhZGxpbmUpIChu Y29uYyAobGlzdCA6cmF3LXZhbHVlIHJhdy12YWx1ZSA6YmVnaW4gYmVnaW4gOmVuZCBlbmQgOnBy ZS1ibGFuayAuLi4gOmNvbnRlbnRzLWJlZ2luIGNvbnRlbnRzLWJlZ2luIDpjb250ZW50cy1lbmQg Y29udGVudHMtZW5kIDpsZXZlbCBsZXZlbCA6cHJpb3JpdHkgLi4uIDp0YWdzIHRhZ3MgOnRvZG8t a2V5d29yZCB0b2RvIDp0b2RvLXR5cGUgdG9kby10eXBlIDpwb3N0LWJsYW5rIC4uLiA6Zm9vdG5v dGUtc2VjdGlvbi1wIGZvb3Rub3RlLXNlY3Rpb24tcCA6YXJjaGl2ZWRwIGFyY2hpdmVkcCA6Y29t bWVudGVkcCBjb21tZW50ZWRwKSB0aW1lLXByb3BzIHN0YW5kYXJkLXByb3BzKSkpKSAobGV0ICgo YWx0LXRpdGxlIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6QUxUX1RJVExFIGhlYWRsaW5lKSkpIChp ZiBhbHQtdGl0bGUgKHByb2duIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgaGVhZGxpbmUgOmFs dC10aXRsZSAoaWYgcmF3LXNlY29uZGFyeS1wIGFsdC10aXRsZSAuLi4pKSkpKSAob3JnLWVsZW1l bnQtcHV0LXByb3BlcnR5IGhlYWRsaW5lIDp0aXRsZSAoaWYgcmF3LXNlY29uZGFyeS1wIHJhdy12 YWx1ZSAob3JnLWVsZW1lbnQtcGFyc2Utc2Vjb25kYXJ5LXN0cmluZyByYXctdmFsdWUgKG9yZy1l bGVtZW50LXJlc3RyaWN0aW9uIChxdW90ZSBoZWFkbGluZSkpIGhlYWRsaW5lKSkpKSkpCiAgb3Jn LWVsZW1lbnQtaGVhZGxpbmUtcGFyc2VyKDI1NzcwNiB0KQogIChjb25kICgoZXEgc3BlY2lhbCAo cXVvdGUgaXRlbSkpIChvcmctZWxlbWVudC1pdGVtLXBhcnNlciBsaW1pdCBzdHJ1Y3R1cmUgcmF3 LXNlY29uZGFyeS1wKSkgKChlcSBzcGVjaWFsIChxdW90ZSB0YWJsZS1yb3cpKSAob3JnLWVsZW1l bnQtdGFibGUtcm93LXBhcnNlciBsaW1pdCkpICgoZXEgc3BlY2lhbCAocXVvdGUgbm9kZS1wcm9w ZXJ0eSkpIChvcmctZWxlbWVudC1ub2RlLXByb3BlcnR5LXBhcnNlciBsaW1pdCkpICgobGV0KiAo KG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChv cmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxp bmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGlu ZS1yZWdleHApKSkgKG9yZy1hdC1oZWFkaW5nLXApKSAob3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFy c2VyIGxpbWl0IHJhdy1zZWNvbmRhcnktcCkpICgoZXEgc3BlY2lhbCAocXVvdGUgc2VjdGlvbikp IChvcmctZWxlbWVudC1zZWN0aW9uLXBhcnNlciBsaW1pdCkpICgoZXEgc3BlY2lhbCAocXVvdGUg Zmlyc3Qtc2VjdGlvbikpIChvcmctZWxlbWVudC1zZWN0aW9uLXBhcnNlciAob3IgKHNhdmUtZXhj dXJzaW9uIChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0 bGluZS1yZWdleHAgLi4uKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3Jn LW91dGxpbmUtcmVnZXhwLWJvbCAuLi4pKSAob3V0bGluZS1uZXh0LWhlYWRpbmcpKSkgbGltaXQp KSkgKChub3QgKGJvbHApKSAob3JnLWVsZW1lbnQtcGFyYWdyYXBoLXBhcnNlciBsaW1pdCAobGlz dCAocG9pbnQpKSkpICgobG9va2luZy1hdCBvcmctcGxhbm5pbmctb3ItY2xvY2stbGluZS1yZSkg KGlmIChlcXVhbCAobWF0Y2gtc3RyaW5nIDEpIG9yZy1jbG9jay1zdHJpbmcpIChvcmctZWxlbWVu dC1jbG9jay1wYXJzZXIgbGltaXQpIChvcmctZWxlbWVudC1wbGFubmluZy1wYXJzZXIgbGltaXQp KSkgKChvcmctYXQtaGVhZGluZy1wKSAob3JnLWVsZW1lbnQtaW5saW5ldGFzay1wYXJzZXIgbGlt aXQgcmF3LXNlY29uZGFyeS1wKSkgKHQgKGxldCAoKGFmZmlsaWF0ZWQgKG9yZy1lbGVtZW50LS1j b2xsZWN0LWFmZmlsaWF0ZWQta2V5d29yZHMgbGltaXQpKSkgKGNvbmQgKChhbmQgKGNkciBhZmZp bGlhdGVkKSAoPj0gKHBvaW50KSBsaW1pdCkpIChnb3RvLWNoYXIgKGNhciBhZmZpbGlhdGVkKSkg KG9yZy1lbGVtZW50LWtleXdvcmQtcGFyc2VyIGxpbWl0IG5pbCkpICgobG9va2luZy1hdCAiWyAg ICAgXSpcXFxcYmVnaW57W0EtWmEtejAtOSpdK31cXChcXFsuKj9cXF1cXHx7Lio/fVxcKSpbICAg ICBdKiQiKSAob3JnLWVsZW1lbnQtbGF0ZXgtZW52aXJvbm1lbnQtcGFyc2VyIGxpbWl0IGFmZmls aWF0ZWQpKSAoKGxvb2tpbmctYXQgb3JnLWRyYXdlci1yZWdleHApIChpZiAoZXF1YWwgKG1hdGNo LXN0cmluZyAxKSAiUFJPUEVSVElFUyIpIChvcmctZWxlbWVudC1wcm9wZXJ0eS1kcmF3ZXItcGFy c2VyIGxpbWl0IGFmZmlsaWF0ZWQpIChvcmctZWxlbWVudC1kcmF3ZXItcGFyc2VyIGxpbWl0IGFm ZmlsaWF0ZWQpKSkgKChsb29raW5nLWF0ICJbICAgXSo6XFwoIFxcfCRcXCkiKSAob3JnLWVsZW1l bnQtZml4ZWQtd2lkdGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlsg ICAgIF0qIyIpIChnb3RvLWNoYXIgKG1hdGNoLWVuZCAwKSkgKGNvbmQgKChsb29raW5nLWF0ICJc XCg/OiBcXHwkXFwpIikgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQtY29tbWVudC1w YXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiXFwrQkVHSU5fXFwoXFxTLStc XCkiKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChsZXQgLi4uIC4uLikpICgobG9va2luZy1hdCAiXFwr Q0FMTDoiKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1iYWJlbC1jYWxsLXBhcnNl ciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJcXCtCRUdJTjo/ICIpIChiZWdpbm5p bmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWR5bmFtaWMtYmxvY2stcGFyc2VyIGxpbWl0IGFmZmls aWF0ZWQpKSAoKGxvb2tpbmctYXQgIlxcK1xcUy0rOiIpIChiZWdpbm5pbmctb2YtbGluZSkgKG9y Zy1lbGVtZW50LWtleXdvcmQtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAodCAoYmVnaW5uaW5n LW9mLWxpbmUpIChvcmctZWxlbWVudC1wYXJhZ3JhcGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQp KSkpICgobG9va2luZy1hdCBvcmctZm9vdG5vdGUtZGVmaW5pdGlvbi1yZSkgKG9yZy1lbGVtZW50 LWZvb3Rub3RlLWRlZmluaXRpb24tcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmct YXQgIlsgICBdKi1cXHs1LFxcfVsgICAgXSokIikgKG9yZy1lbGVtZW50LWhvcml6b250YWwtcnVs ZS1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiJSUoIikgKG9yZy1lbGVt ZW50LWRpYXJ5LXNleHAtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKG9yZy1hdC10YWJsZS1w IHQpIChvcmctZWxlbWVudC10YWJsZS1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2lu Zy1hdCAob3JnLWl0ZW0tcmUpKSAob3JnLWVsZW1lbnQtcGxhaW4tbGlzdC1wYXJzZXIgbGltaXQg YWZmaWxpYXRlZCAob3Igc3RydWN0dXJlIChvcmctZWxlbWVudC0tbGlzdC1zdHJ1Y3QgbGltaXQp KSkpICh0IChvcmctZWxlbWVudC1wYXJhZ3JhcGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSkp KSkKICAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCB0KSAocmF3LXNlY29uZGFyeS1wIChhbmQgZ3Jh bnVsYXJpdHkgKG5vdCAoZXEgZ3JhbnVsYXJpdHkgKHF1b3RlIG9iamVjdCkpKSkpKSAoY29uZCAo KGVxIHNwZWNpYWwgKHF1b3RlIGl0ZW0pKSAob3JnLWVsZW1lbnQtaXRlbS1wYXJzZXIgbGltaXQg c3RydWN0dXJlIHJhdy1zZWNvbmRhcnktcCkpICgoZXEgc3BlY2lhbCAocXVvdGUgdGFibGUtcm93 KSkgKG9yZy1lbGVtZW50LXRhYmxlLXJvdy1wYXJzZXIgbGltaXQpKSAoKGVxIHNwZWNpYWwgKHF1 b3RlIG5vZGUtcHJvcGVydHkpKSAob3JnLWVsZW1lbnQtbm9kZS1wcm9wZXJ0eS1wYXJzZXIgbGlt aXQpKSAoKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRs aW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVn ZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAi XiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChvcmctYXQtaGVhZGluZy1wKSkgKG9yZy1lbGVtZW50 LWhlYWRsaW5lLXBhcnNlciBsaW1pdCByYXctc2Vjb25kYXJ5LXApKSAoKGVxIHNwZWNpYWwgKHF1 b3RlIHNlY3Rpb24pKSAob3JnLWVsZW1lbnQtc2VjdGlvbi1wYXJzZXIgbGltaXQpKSAoKGVxIHNw ZWNpYWwgKHF1b3RlIGZpcnN0LXNlY3Rpb24pKSAob3JnLWVsZW1lbnQtc2VjdGlvbi1wYXJzZXIg KG9yIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAoLi4uIC4uLiAuLi4gLi4uKSAob3V0bGluZS1uZXh0 LWhlYWRpbmcpKSkgbGltaXQpKSkgKChub3QgKGJvbHApKSAob3JnLWVsZW1lbnQtcGFyYWdyYXBo LXBhcnNlciBsaW1pdCAobGlzdCAocG9pbnQpKSkpICgobG9va2luZy1hdCBvcmctcGxhbm5pbmct b3ItY2xvY2stbGluZS1yZSkgKGlmIChlcXVhbCAobWF0Y2gtc3RyaW5nIDEpIG9yZy1jbG9jay1z dHJpbmcpIChvcmctZWxlbWVudC1jbG9jay1wYXJzZXIgbGltaXQpIChvcmctZWxlbWVudC1wbGFu bmluZy1wYXJzZXIgbGltaXQpKSkgKChvcmctYXQtaGVhZGluZy1wKSAob3JnLWVsZW1lbnQtaW5s aW5ldGFzay1wYXJzZXIgbGltaXQgcmF3LXNlY29uZGFyeS1wKSkgKHQgKGxldCAoKGFmZmlsaWF0 ZWQgKG9yZy1lbGVtZW50LS1jb2xsZWN0LWFmZmlsaWF0ZWQta2V5d29yZHMgbGltaXQpKSkgKGNv bmQgKChhbmQgKGNkciBhZmZpbGlhdGVkKSAoPj0gLi4uIGxpbWl0KSkgKGdvdG8tY2hhciAoY2Fy IGFmZmlsaWF0ZWQpKSAob3JnLWVsZW1lbnQta2V5d29yZC1wYXJzZXIgbGltaXQgbmlsKSkgKChs b29raW5nLWF0ICJbICAgICAgICBdKlxcXFxiZWdpbntbQS1aYS16MC05Kl0rfVxcKFxcWy4qP1xc XVxcfHsuKj99XFwpKlsgICAgIF0qJCIpIChvcmctZWxlbWVudC1sYXRleC1lbnZpcm9ubWVudC1w YXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCBvcmctZHJhd2VyLXJlZ2V4cCkg KGlmIChlcXVhbCAuLi4gIlBST1BFUlRJRVMiKSAob3JnLWVsZW1lbnQtcHJvcGVydHktZHJhd2Vy LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSAob3JnLWVsZW1lbnQtZHJhd2VyLXBhcnNlciBsaW1p dCBhZmZpbGlhdGVkKSkpICgobG9va2luZy1hdCAiWyAgICAgICAgXSo6XFwoIFxcfCRcXCkiKSAo b3JnLWVsZW1lbnQtZml4ZWQtd2lkdGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tp bmctYXQgIlsgICAgIF0qIyIpIChnb3RvLWNoYXIgKG1hdGNoLWVuZCAwKSkgKGNvbmQgKC4uLiAu Li4gLi4uKSAoLi4uIC4uLiAuLi4pICguLi4gLi4uIC4uLikgKC4uLiAuLi4gLi4uKSAoLi4uIC4u LiAuLi4pICh0IC4uLiAuLi4pKSkgKChsb29raW5nLWF0IG9yZy1mb290bm90ZS1kZWZpbml0aW9u LXJlKSAob3JnLWVsZW1lbnQtZm9vdG5vdGUtZGVmaW5pdGlvbi1wYXJzZXIgbGltaXQgYWZmaWxp YXRlZCkpICgobG9va2luZy1hdCAiWyAgIF0qLVxcezUsXFx9WyAgICBdKiQiKSAob3JnLWVsZW1l bnQtaG9yaXpvbnRhbC1ydWxlLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0 ICIlJSgiKSAob3JnLWVsZW1lbnQtZGlhcnktc2V4cC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkp ICgob3JnLWF0LXRhYmxlLXAgdCkgKG9yZy1lbGVtZW50LXRhYmxlLXBhcnNlciBsaW1pdCBhZmZp bGlhdGVkKSkgKChsb29raW5nLWF0IChvcmctaXRlbS1yZSkpIChvcmctZWxlbWVudC1wbGFpbi1s aXN0LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkIChvciBzdHJ1Y3R1cmUgLi4uKSkpICh0IChvcmct ZWxlbWVudC1wYXJhZ3JhcGgtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSkpKSkpCiAgKHNhdmUt ZXhjdXJzaW9uIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIHQpIChyYXctc2Vjb25kYXJ5LXAgKGFu ZCBncmFudWxhcml0eSAobm90IChlcSBncmFudWxhcml0eSAocXVvdGUgb2JqZWN0KSkpKSkpIChj b25kICgoZXEgc3BlY2lhbCAocXVvdGUgaXRlbSkpIChvcmctZWxlbWVudC1pdGVtLXBhcnNlciBs aW1pdCBzdHJ1Y3R1cmUgcmF3LXNlY29uZGFyeS1wKSkgKChlcSBzcGVjaWFsIChxdW90ZSB0YWJs ZS1yb3cpKSAob3JnLWVsZW1lbnQtdGFibGUtcm93LXBhcnNlciBsaW1pdCkpICgoZXEgc3BlY2lh bCAocXVvdGUgbm9kZS1wcm9wZXJ0eSkpIChvcmctZWxlbWVudC1ub2RlLXByb3BlcnR5LXBhcnNl ciBsaW1pdCkpICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3Jn LW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGlu ZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29u Y2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgKG9yZy1hdC1oZWFkaW5nLXApKSAob3JnLWVs ZW1lbnQtaGVhZGxpbmUtcGFyc2VyIGxpbWl0IHJhdy1zZWNvbmRhcnktcCkpICgoZXEgc3BlY2lh bCAocXVvdGUgc2VjdGlvbikpIChvcmctZWxlbWVudC1zZWN0aW9uLXBhcnNlciBsaW1pdCkpICgo ZXEgc3BlY2lhbCAocXVvdGUgZmlyc3Qtc2VjdGlvbikpIChvcmctZWxlbWVudC1zZWN0aW9uLXBh cnNlciAob3IgKHNhdmUtZXhjdXJzaW9uIChsZXQqIC4uLiAuLi4pKSBsaW1pdCkpKSAoKG5vdCAo Ym9scCkpIChvcmctZWxlbWVudC1wYXJhZ3JhcGgtcGFyc2VyIGxpbWl0IChsaXN0IChwb2ludCkp KSkgKChsb29raW5nLWF0IG9yZy1wbGFubmluZy1vci1jbG9jay1saW5lLXJlKSAoaWYgKGVxdWFs IChtYXRjaC1zdHJpbmcgMSkgb3JnLWNsb2NrLXN0cmluZykgKG9yZy1lbGVtZW50LWNsb2NrLXBh cnNlciBsaW1pdCkgKG9yZy1lbGVtZW50LXBsYW5uaW5nLXBhcnNlciBsaW1pdCkpKSAoKG9yZy1h dC1oZWFkaW5nLXApIChvcmctZWxlbWVudC1pbmxpbmV0YXNrLXBhcnNlciBsaW1pdCByYXctc2Vj b25kYXJ5LXApKSAodCAobGV0ICgoYWZmaWxpYXRlZCAob3JnLWVsZW1lbnQtLWNvbGxlY3QtYWZm aWxpYXRlZC1rZXl3b3JkcyBsaW1pdCkpKSAoY29uZCAoKGFuZCAuLi4gLi4uKSAoZ290by1jaGFy IC4uLikgKG9yZy1lbGVtZW50LWtleXdvcmQtcGFyc2VyIGxpbWl0IG5pbCkpICgobG9va2luZy1h dCAiWyAgICAgIF0qXFxcXGJlZ2lue1tBLVphLXowLTkqXSt9XFwoXFxbLio/XFxdXFx8ey4qP31c XCkqWyAgICAgXSokIikgKG9yZy1lbGVtZW50LWxhdGV4LWVudmlyb25tZW50LXBhcnNlciBsaW1p dCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0IG9yZy1kcmF3ZXItcmVnZXhwKSAoaWYgLi4uIC4u LiAuLi4pKSAoKGxvb2tpbmctYXQgIlsgICAgICAgIF0qOlxcKCBcXHwkXFwpIikgKG9yZy1lbGVt ZW50LWZpeGVkLXdpZHRoLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJb ICAgICBdKiMiKSAoZ290by1jaGFyIC4uLikgKGNvbmQgLi4uIC4uLiAuLi4gLi4uIC4uLiAuLi4p KSAoKGxvb2tpbmctYXQgb3JnLWZvb3Rub3RlLWRlZmluaXRpb24tcmUpIChvcmctZWxlbWVudC1m b290bm90ZS1kZWZpbml0aW9uLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0 ICJbICAgICAgIF0qLVxcezUsXFx9WyAgICBdKiQiKSAob3JnLWVsZW1lbnQtaG9yaXpvbnRhbC1y dWxlLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICIlJSgiKSAob3JnLWVs ZW1lbnQtZGlhcnktc2V4cC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgob3JnLWF0LXRhYmxl LXAgdCkgKG9yZy1lbGVtZW50LXRhYmxlLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29r aW5nLWF0IC4uLikgKG9yZy1lbGVtZW50LXBsYWluLWxpc3QtcGFyc2VyIGxpbWl0IGFmZmlsaWF0 ZWQgLi4uKSkgKHQgKG9yZy1lbGVtZW50LXBhcmFncmFwaC1wYXJzZXIgbGltaXQgYWZmaWxpYXRl ZCkpKSkpKSkpCiAgb3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVudCgyNTc3MDYgZWxlbWVudCBu aWwgbmlsKQogIChzZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50LS1jdXJyZW50LWVsZW1lbnQgZW5k IChxdW90ZSBlbGVtZW50KSBzcGVjaWFsLWZsYWcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpzdHJ1 Y3R1cmUgcGFyZW50KSkpCiAgKGlmIGVsZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQgKG9yZy1lbGVt ZW50LS1jdXJyZW50LWVsZW1lbnQgZW5kIChxdW90ZSBlbGVtZW50KSBzcGVjaWFsLWZsYWcgKG9y Zy1lbGVtZW50LXByb3BlcnR5IDpzdHJ1Y3R1cmUgcGFyZW50KSkpIChvcmctZWxlbWVudC1wdXQt cHJvcGVydHkgZWxlbWVudCA6cGFyZW50IHBhcmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQg ZWxlbWVudCkpCiAgKHdoaWxlIHQgKGlmIHN5bmNwIChwcm9nbiAoY29uZCAoKD0gKHBvaW50KSBw b3MpICh0aHJvdyAocXVvdGUgZXhpdCkgcGFyZW50KSkgKChvcmctZWxlbWVudC0tY2FjaGUtaW50 ZXJydXB0LXAgdGltZS1saW1pdCkgKHRocm93IChxdW90ZSBpbnRlcnJ1cHQpIG5pbCkpKSkpIChp ZiBlbGVtZW50IG5pbCAoc2V0cSBlbGVtZW50IChvcmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50 IGVuZCAocXVvdGUgZWxlbWVudCkgc3BlY2lhbC1mbGFnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6 c3RydWN0dXJlIHBhcmVudCkpKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBh cmVudCBwYXJlbnQpIChvcmctZWxlbWVudC0tY2FjaGUtcHV0IGVsZW1lbnQpKSAobGV0ICgoZWxl bS1lbmQgKG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkpICh0eXBlIChvcmctZWxl bWVudC10eXBlIGVsZW1lbnQpKSkgKGNvbmQgKChhbmQgKDw9IGVsZW0tZW5kIHBvcykgKC89IChw b2ludC1tYXgpIGVsZW0tZW5kKSkgKGdvdG8tY2hhciBlbGVtLWVuZCkpICgobm90IChtZW1xIHR5 cGUgb3JnLWVsZW1lbnQtZ3JlYXRlci1lbGVtZW50cykpICh0aHJvdyAocXVvdGUgZXhpdCkgZWxl bWVudCkpICgobGV0ICgoY2JlZyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmNvbnRlbnRzLWJlZ2lu IGVsZW1lbnQpKSAoY2VuZCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmNvbnRlbnRzLWVuZCBlbGVt ZW50KSkpIChpZiAob3Igc3luY3AgKGFuZCBjYmVnIGNlbmQgLi4uIC4uLikpIChwcm9nbiAoZ290 by1jaGFyIC4uLikgKHNldHEgbmV4dCBuaWwgc3BlY2lhbC1mbGFnIC4uLiBwYXJlbnQgZWxlbWVu dCBlbmQgY2VuZCkpKSkpICh0ICh0aHJvdyAocXVvdGUgZXhpdCkgZWxlbWVudCkpKSkgKHNldHEg ZWxlbWVudCBuaWwpKQogIChsZXQgKChlbmQgKG9yIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5k IGVsZW1lbnQpIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVk LWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIC4uLikgKG91dGxpbmUtcmVnZXhwIG9yZy1v dXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgLi4uKSkgKG91dGxpbmUtbmV4 dC1oZWFkaW5nKSkgKHBvaW50KSkpKSAocGFyZW50IGVsZW1lbnQpIHNwZWNpYWwtZmxhZykgKHdo aWxlIHQgKGlmIHN5bmNwIChwcm9nbiAoY29uZCAoKD0gKHBvaW50KSBwb3MpICh0aHJvdyAocXVv dGUgZXhpdCkgcGFyZW50KSkgKChvcmctZWxlbWVudC0tY2FjaGUtaW50ZXJydXB0LXAgdGltZS1s aW1pdCkgKHRocm93IChxdW90ZSBpbnRlcnJ1cHQpIG5pbCkpKSkpIChpZiBlbGVtZW50IG5pbCAo c2V0cSBlbGVtZW50IChvcmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50IGVuZCAocXVvdGUgZWxl bWVudCkgc3BlY2lhbC1mbGFnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6c3RydWN0dXJlIHBhcmVu dCkpKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQpIChv cmctZWxlbWVudC0tY2FjaGUtcHV0IGVsZW1lbnQpKSAobGV0ICgoZWxlbS1lbmQgKG9yZy1lbGVt ZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkpICh0eXBlIChvcmctZWxlbWVudC10eXBlIGVsZW1l bnQpKSkgKGNvbmQgKChhbmQgKDw9IGVsZW0tZW5kIHBvcykgKC89IChwb2ludC1tYXgpIGVsZW0t ZW5kKSkgKGdvdG8tY2hhciBlbGVtLWVuZCkpICgobm90IChtZW1xIHR5cGUgb3JnLWVsZW1lbnQt Z3JlYXRlci1lbGVtZW50cykpICh0aHJvdyAocXVvdGUgZXhpdCkgZWxlbWVudCkpICgobGV0ICgo Y2JlZyAuLi4pIChjZW5kIC4uLikpIChpZiAob3Igc3luY3AgLi4uKSAocHJvZ24gLi4uIC4uLikp KSkgKHQgKHRocm93IChxdW90ZSBleGl0KSBlbGVtZW50KSkpKSAoc2V0cSBlbGVtZW50IG5pbCkp KQogIChsZXQqICgoY2FjaGVkIChhbmQgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKG9y Zy1lbGVtZW50LS1jYWNoZS1maW5kIHBvcyBuaWwpKSkgKGJlZ2luIChvcmctZWxlbWVudC1wcm9w ZXJ0eSA6YmVnaW4gY2FjaGVkKSkgZWxlbWVudCBuZXh0KSAoY29uZCAoKG5vdCBjYWNoZWQpIChp ZiAobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUt cmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAg b3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBv cmctb3V0bGluZS1yZWdleHApKSkgKG91dGxpbmUtcHJldmlvdXMtaGVhZGluZykpIChwcm9nbiAo Zm9yd2FyZC1saW5lKSkpIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1v Zi1saW5lKSkgKCg9IHBvcyBiZWdpbikgKHRocm93IChxdW90ZSBleGl0KSAoaWYgc3luY3AgKG9y Zy1lbGVtZW50LXByb3BlcnR5IDpwYXJlbnQgY2FjaGVkKSBjYWNoZWQpKSkgKChyZS1zZWFyY2gt YmFja3dhcmQgKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1v dXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUt cmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNh dCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wpIGJlZ2lu IHQpIChmb3J3YXJkLWxpbmUpIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmlu Zy1vZi1saW5lKSkgKHQgKGxldCAoKHVwIGNhY2hlZCkgKHBvcyAoaWYgKD0gLi4uIHBvcykgKDEt IHBvcykgcG9zKSkpIChnb3RvLWNoYXIgKG9yIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6Y29udGVu dHMtYmVnaW4gY2FjaGVkKSBiZWdpbikpICh3aGlsZSAobGV0ICgoZW5kIC4uLikpIChhbmQgKDw9 IGVuZCBwb3MpIChnb3RvLWNoYXIgZW5kKSAoc2V0cSB1cCAuLi4pKSkpIChjb25kICgobm90IHVw KSkgKChlb2JwKSAoc2V0cSBlbGVtZW50IHVwKSkgKHQgKHNldHEgZWxlbWVudCB1cCBuZXh0IChw b2ludCkpKSkpKSkgKGxldCAoKGVuZCAob3IgKG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxl bWVudCkgKHNhdmUtZXhjdXJzaW9uIChsZXQqICguLi4gLi4uIC4uLiAuLi4pIChvdXRsaW5lLW5l eHQtaGVhZGluZykpIChwb2ludCkpKSkgKHBhcmVudCBlbGVtZW50KSBzcGVjaWFsLWZsYWcpICh3 aGlsZSB0IChpZiBzeW5jcCAocHJvZ24gKGNvbmQgKCg9IC4uLiBwb3MpICh0aHJvdyAuLi4gcGFy ZW50KSkgKChvcmctZWxlbWVudC0tY2FjaGUtaW50ZXJydXB0LXAgdGltZS1saW1pdCkgKHRocm93 IC4uLiBuaWwpKSkpKSAoaWYgZWxlbWVudCBuaWwgKHNldHEgZWxlbWVudCAob3JnLWVsZW1lbnQt LWN1cnJlbnQtZWxlbWVudCBlbmQgKHF1b3RlIGVsZW1lbnQpIHNwZWNpYWwtZmxhZyAob3JnLWVs ZW1lbnQtcHJvcGVydHkgOnN0cnVjdHVyZSBwYXJlbnQpKSkgKG9yZy1lbGVtZW50LXB1dC1wcm9w ZXJ0eSBlbGVtZW50IDpwYXJlbnQgcGFyZW50KSAob3JnLWVsZW1lbnQtLWNhY2hlLXB1dCBlbGVt ZW50KSkgKGxldCAoKGVsZW0tZW5kIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQp KSAodHlwZSAob3JnLWVsZW1lbnQtdHlwZSBlbGVtZW50KSkpIChjb25kICgoYW5kICg8PSBlbGVt LWVuZCBwb3MpICgvPSAuLi4gZWxlbS1lbmQpKSAoZ290by1jaGFyIGVsZW0tZW5kKSkgKChub3Qg KG1lbXEgdHlwZSBvcmctZWxlbWVudC1ncmVhdGVyLWVsZW1lbnRzKSkgKHRocm93IChxdW90ZSBl eGl0KSBlbGVtZW50KSkgKChsZXQgKC4uLiAuLi4pIChpZiAuLi4gLi4uKSkpICh0ICh0aHJvdyAo cXVvdGUgZXhpdCkgZWxlbWVudCkpKSkgKHNldHEgZWxlbWVudCBuaWwpKSkpCiAgKHNhdmUtcmVz dHJpY3Rpb24gKHdpZGVuKSAoZ290by1jaGFyIHBvcykgKGxldCogKChjYWNoZWQgKGFuZCAob3Jn LWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAob3JnLWVsZW1lbnQtLWNhY2hlLWZpbmQgcG9zIG5p bCkpKSAoYmVnaW4gKG9yZy1lbGVtZW50LXByb3BlcnR5IDpiZWdpbiBjYWNoZWQpKSBlbGVtZW50 IG5leHQpIChjb25kICgobm90IGNhY2hlZCkgKGlmIChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxp bWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgLi4uKSAob3V0bGluZS1yZWdleHAg b3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAuLi4pKSAob3V0bGlu ZS1wcmV2aW91cy1oZWFkaW5nKSkgKHByb2duIChmb3J3YXJkLWxpbmUpKSkgKHNraXAtY2hhcnMt Zm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAoKD0gcG9zIGJlZ2luKSAodGhy b3cgKHF1b3RlIGV4aXQpIChpZiBzeW5jcCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhcmVudCBj YWNoZWQpIGNhY2hlZCkpKSAoKHJlLXNlYXJjaC1iYWNrd2FyZCAobGV0KiAoKG9yZy1jYWxsZWQt d2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIC4uLikgKG91dGxpbmUt cmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgLi4uKSkg b3JnLW91dGxpbmUtcmVnZXhwLWJvbCkgYmVnaW4gdCkgKGZvcndhcmQtbGluZSkgKHNraXAtY2hh cnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAodCAobGV0ICgodXAgY2Fj aGVkKSAocG9zIChpZiAuLi4gLi4uIHBvcykpKSAoZ290by1jaGFyIChvciAob3JnLWVsZW1lbnQt cHJvcGVydHkgOmNvbnRlbnRzLWJlZ2luIGNhY2hlZCkgYmVnaW4pKSAod2hpbGUgKGxldCAoLi4u KSAoYW5kIC4uLiAuLi4gLi4uKSkpIChjb25kICgobm90IHVwKSkgKChlb2JwKSAoc2V0cSBlbGVt ZW50IHVwKSkgKHQgKHNldHEgZWxlbWVudCB1cCBuZXh0IC4uLikpKSkpKSAobGV0ICgoZW5kIChv ciAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSAoc2F2ZS1leGN1cnNpb24gKGxl dCogLi4uIC4uLikgKHBvaW50KSkpKSAocGFyZW50IGVsZW1lbnQpIHNwZWNpYWwtZmxhZykgKHdo aWxlIHQgKGlmIHN5bmNwIChwcm9nbiAoY29uZCAoLi4uIC4uLikgKC4uLiAuLi4pKSkpIChpZiBl bGVtZW50IG5pbCAoc2V0cSBlbGVtZW50IChvcmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50IGVu ZCAocXVvdGUgZWxlbWVudCkgc3BlY2lhbC1mbGFnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6c3Ry dWN0dXJlIHBhcmVudCkpKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVu dCBwYXJlbnQpIChvcmctZWxlbWVudC0tY2FjaGUtcHV0IGVsZW1lbnQpKSAobGV0ICgoZWxlbS1l bmQgKG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkpICh0eXBlIChvcmctZWxlbWVu dC10eXBlIGVsZW1lbnQpKSkgKGNvbmQgKChhbmQgLi4uIC4uLikgKGdvdG8tY2hhciBlbGVtLWVu ZCkpICgobm90IC4uLikgKHRocm93IC4uLiBlbGVtZW50KSkgKChsZXQgLi4uIC4uLikpICh0ICh0 aHJvdyAuLi4gZWxlbWVudCkpKSkgKHNldHEgZWxlbWVudCBuaWwpKSkpKQogIChzYXZlLWV4Y3Vy c2lvbiAoc2F2ZS1yZXN0cmljdGlvbiAod2lkZW4pIChnb3RvLWNoYXIgcG9zKSAobGV0KiAoKGNh Y2hlZCAoYW5kIChvcmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChvcmctZWxlbWVudC0tY2Fj aGUtZmluZCBwb3MgbmlsKSkpIChiZWdpbiAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmJlZ2luIGNh Y2hlZCkpIGVsZW1lbnQgbmV4dCkgKGNvbmQgKChub3QgY2FjaGVkKSAoaWYgKGxldCogKC4uLiAu Li4gLi4uIC4uLikgKG91dGxpbmUtcHJldmlvdXMtaGVhZGluZykpIChwcm9nbiAoZm9yd2FyZC1s aW5lKSkpIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkg KCg9IHBvcyBiZWdpbikgKHRocm93IChxdW90ZSBleGl0KSAoaWYgc3luY3AgKG9yZy1lbGVtZW50 LXByb3BlcnR5IDpwYXJlbnQgY2FjaGVkKSBjYWNoZWQpKSkgKChyZS1zZWFyY2gtYmFja3dhcmQg KGxldCogKC4uLiAuLi4gLi4uIC4uLikgb3JnLW91dGxpbmUtcmVnZXhwLWJvbCkgYmVnaW4gdCkg KGZvcndhcmQtbGluZSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9m LWxpbmUpKSAodCAobGV0ICgodXAgY2FjaGVkKSAocG9zIC4uLikpIChnb3RvLWNoYXIgKG9yIC4u LiBiZWdpbikpICh3aGlsZSAobGV0IC4uLiAuLi4pKSAoY29uZCAoLi4uKSAoLi4uIC4uLikgKHQg Li4uKSkpKSkgKGxldCAoKGVuZCAob3IgKG9yZy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVu dCkgKHNhdmUtZXhjdXJzaW9uIC4uLiAuLi4pKSkgKHBhcmVudCBlbGVtZW50KSBzcGVjaWFsLWZs YWcpICh3aGlsZSB0IChpZiBzeW5jcCAocHJvZ24gKGNvbmQgLi4uIC4uLikpKSAoaWYgZWxlbWVu dCBuaWwgKHNldHEgZWxlbWVudCAob3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVudCBlbmQgLi4u IHNwZWNpYWwtZmxhZyAuLi4pKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBh cmVudCBwYXJlbnQpIChvcmctZWxlbWVudC0tY2FjaGUtcHV0IGVsZW1lbnQpKSAobGV0ICgoZWxl bS1lbmQgLi4uKSAodHlwZSAuLi4pKSAoY29uZCAoLi4uIC4uLikgKC4uLiAuLi4pICguLi4pICh0 IC4uLikpKSAoc2V0cSBlbGVtZW50IG5pbCkpKSkpKQogIChjYXRjaCAocXVvdGUgZXhpdCkgKHNh dmUtZXhjdXJzaW9uIChzYXZlLXJlc3RyaWN0aW9uICh3aWRlbikgKGdvdG8tY2hhciBwb3MpIChs ZXQqICgoY2FjaGVkIChhbmQgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKG9yZy1lbGVt ZW50LS1jYWNoZS1maW5kIHBvcyBuaWwpKSkgKGJlZ2luIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6 YmVnaW4gY2FjaGVkKSkgZWxlbWVudCBuZXh0KSAoY29uZCAoKG5vdCBjYWNoZWQpIChpZiAobGV0 KiAuLi4gLi4uKSAocHJvZ24gLi4uKSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4iKSAoYmVn aW5uaW5nLW9mLWxpbmUpKSAoKD0gcG9zIGJlZ2luKSAodGhyb3cgKHF1b3RlIGV4aXQpIChpZiBz eW5jcCAuLi4gY2FjaGVkKSkpICgocmUtc2VhcmNoLWJhY2t3YXJkIChsZXQqIC4uLiBvcmctb3V0 bGluZS1yZWdleHAtYm9sKSBiZWdpbiB0KSAoZm9yd2FyZC1saW5lKSAoc2tpcC1jaGFycy1mb3J3 YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkpICh0IChsZXQgKC4uLiAuLi4pIChnb3Rv LWNoYXIgLi4uKSAod2hpbGUgLi4uKSAoY29uZCAuLi4gLi4uIC4uLikpKSkgKGxldCAoKGVuZCAo b3IgLi4uIC4uLikpIChwYXJlbnQgZWxlbWVudCkgc3BlY2lhbC1mbGFnKSAod2hpbGUgdCAoaWYg c3luY3AgKHByb2duIC4uLikpIChpZiBlbGVtZW50IG5pbCAoc2V0cSBlbGVtZW50IC4uLikgKG9y Zy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBlbGVtZW50IDpwYXJlbnQgcGFyZW50KSAob3JnLWVsZW1l bnQtLWNhY2hlLXB1dCBlbGVtZW50KSkgKGxldCAoLi4uIC4uLikgKGNvbmQgLi4uIC4uLiAuLi4g Li4uKSkgKHNldHEgZWxlbWVudCBuaWwpKSkpKSkpCiAgb3JnLWVsZW1lbnQtLXBhcnNlLXRvKDI1 NzI4MCkKICAoY29uZCAoKGJvYnApIG5pbCkgKChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0 ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5l LXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGlu ZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3JnLWF0LWhl YWRpbmctcCkpIChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWhlYWRsaW5lLXBhcnNl ciAocG9pbnQtbWF4KSB0KSkgKHQgKGlmIChvcmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChw cm9nbiAoaWYgKG5vdCBvcmctZWxlbWVudC0tY2FjaGUpIChvcmctZWxlbWVudC1jYWNoZS1yZXNl dCkgKG9yZy1lbGVtZW50LS1jYWNoZS1zeW5jIChjdXJyZW50LWJ1ZmZlcikgb3JpZ2luKSkpKSAo b3JnLWVsZW1lbnQtLXBhcnNlLXRvIG9yaWdpbikpKQogIChsZXQgKChvcmlnaW4gKHBvaW50KSkp IChlbmQtb2YtbGluZSkgKHNraXAtY2hhcnMtYmFja3dhcmQgIiANCVxuIikgKGNvbmQgKChib2Jw KSBuaWwpICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91 dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1y ZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0 ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgKG9yZy1hdC1oZWFkaW5nLXApKSAoYmVnaW5uaW5n LW9mLWxpbmUpIChvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIgKHBvaW50LW1heCkgdCkpICh0 IChpZiAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAocHJvZ24gKGlmIChub3Qgb3JnLWVs ZW1lbnQtLWNhY2hlKSAob3JnLWVsZW1lbnQtY2FjaGUtcmVzZXQpIChvcmctZWxlbWVudC0tY2Fj aGUtc3luYyAoY3VycmVudC1idWZmZXIpIG9yaWdpbikpKSkgKG9yZy1lbGVtZW50LS1wYXJzZS10 byBvcmlnaW4pKSkpCiAgKHNhdmUtcmVzdHJpY3Rpb24gKHdpZGVuKSAobGV0ICgob3JpZ2luIChw b2ludCkpKSAoZW5kLW9mLWxpbmUpIChza2lwLWNoYXJzLWJhY2t3YXJkICIgDQlcbiIpIChjb25k ICgoYm9icCkgbmlsKSAoKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkg KG9yZy1vdXRsaW5lLXJlZ2V4cCAob3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91 dGxpbmUtcmVnZXhwIG9yZy1vdXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wg KGNvbmNhdCAiXiIgb3JnLW91dGxpbmUtcmVnZXhwKSkpIChvcmctYXQtaGVhZGluZy1wKSkgKGJl Z2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFyc2VyIChwb2ludC1tYXgp IHQpKSAodCAoaWYgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3RpdmUtcCkgKHByb2duIChpZiAobm90 IG9yZy1lbGVtZW50LS1jYWNoZSkgKG9yZy1lbGVtZW50LWNhY2hlLXJlc2V0KSAob3JnLWVsZW1l bnQtLWNhY2hlLXN5bmMgLi4uIG9yaWdpbikpKSkgKG9yZy1lbGVtZW50LS1wYXJzZS10byBvcmln aW4pKSkpKQogIChzYXZlLWV4Y3Vyc2lvbiAoc2F2ZS1yZXN0cmljdGlvbiAod2lkZW4pIChsZXQg KChvcmlnaW4gKHBvaW50KSkpIChlbmQtb2YtbGluZSkgKHNraXAtY2hhcnMtYmFja3dhcmQgIiAN CVxuIikgKGNvbmQgKChib2JwKSBuaWwpICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVk LWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIC4uLikgKG91dGxpbmUtcmVnZXhwIG9yZy1v dXRsaW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgLi4uKSkgKG9yZy1hdC1oZWFk aW5nLXApKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIg KHBvaW50LW1heCkgdCkpICh0IChpZiAob3JnLWVsZW1lbnQtLWNhY2hlLWFjdGl2ZS1wKSAocHJv Z24gKGlmIC4uLiAuLi4gLi4uKSkpIChvcmctZWxlbWVudC0tcGFyc2UtdG8gb3JpZ2luKSkpKSkp CiAgb3JnLWVsZW1lbnQtYXQtcG9pbnQoKQogIChsZXQgKChkcmF3ZXIgKG9yZy1lbGVtZW50LWF0 LXBvaW50KSkpIChpZiAoYW5kIChlcSAob3JnLWVsZW1lbnQtdHlwZSBkcmF3ZXIpIChxdW90ZSBw cm9wZXJ0eS1kcmF3ZXIpKSAobGV0ICgocCBkcmF3ZXIpKSAod2hpbGUgKGFuZCAoc2V0cSBwIChv cmctZWxlbWVudC1wcm9wZXJ0eSA6cGFyZW50IHApKSAobm90IChlcSAuLi4gLi4uKSkpKSAobm90 IHApKSkgKHByb2duIChsZXQgKChlbmQgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpjb250ZW50cy1l bmQgZHJhd2VyKSkpIChpZiBlbmQgKHByb2duIChmb3J3YXJkLWxpbmUpICh3aGlsZSAoPCAuLi4g ZW5kKSAoaWYgLi4uIC4uLikgKGZvcndhcmQtbGluZSkpKSkpKSkpCiAgKHdoaWxlIChhbmQgKG51 bGwgcGxpc3QpIChyZS1zZWFyY2gtZm9yd2FyZCBvcmctcHJvcGVydHktc3RhcnQtcmUgZW5kIHQp KSAobGV0ICgoZHJhd2VyIChvcmctZWxlbWVudC1hdC1wb2ludCkpKSAoaWYgKGFuZCAoZXEgKG9y Zy1lbGVtZW50LXR5cGUgZHJhd2VyKSAocXVvdGUgcHJvcGVydHktZHJhd2VyKSkgKGxldCAoKHAg ZHJhd2VyKSkgKHdoaWxlIChhbmQgKHNldHEgcCAuLi4pIChub3QgLi4uKSkpIChub3QgcCkpKSAo cHJvZ24gKGxldCAoKGVuZCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmNvbnRlbnRzLWVuZCBkcmF3 ZXIpKSkgKGlmIGVuZCAocHJvZ24gKGZvcndhcmQtbGluZSkgKHdoaWxlIC4uLiAuLi4gLi4uKSkp KSkpKSkKICAoc2F2ZS1leGN1cnNpb24gKHdoaWxlIChhbmQgKG51bGwgcGxpc3QpIChyZS1zZWFy Y2gtZm9yd2FyZCBvcmctcHJvcGVydHktc3RhcnQtcmUgZW5kIHQpKSAobGV0ICgoZHJhd2VyIChv cmctZWxlbWVudC1hdC1wb2ludCkpKSAoaWYgKGFuZCAoZXEgKG9yZy1lbGVtZW50LXR5cGUgZHJh d2VyKSAocXVvdGUgcHJvcGVydHktZHJhd2VyKSkgKGxldCAoKHAgZHJhd2VyKSkgKHdoaWxlIChh bmQgLi4uIC4uLikpIChub3QgcCkpKSAocHJvZ24gKGxldCAoKGVuZCAuLi4pKSAoaWYgZW5kIChw cm9nbiAuLi4gLi4uKSkpKSkpKSBwbGlzdCkKICAobGV0ICgoZW5kIChzYXZlLWV4Y3Vyc2lvbiAo bGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVn ZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3Jn LW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmct b3V0bGluZS1yZWdleHApKSkgKG91dGxpbmUtbmV4dC1oZWFkaW5nKSkgKHBvaW50KSkpIHBsaXN0 KSAoc2F2ZS1leGN1cnNpb24gKHdoaWxlIChhbmQgKG51bGwgcGxpc3QpIChyZS1zZWFyY2gtZm9y d2FyZCBvcmctcHJvcGVydHktc3RhcnQtcmUgZW5kIHQpKSAobGV0ICgoZHJhd2VyIChvcmctZWxl bWVudC1hdC1wb2ludCkpKSAoaWYgKGFuZCAoZXEgKG9yZy1lbGVtZW50LXR5cGUgZHJhd2VyKSAo cXVvdGUgcHJvcGVydHktZHJhd2VyKSkgKGxldCAoLi4uKSAod2hpbGUgLi4uKSAobm90IHApKSkg KHByb2duIChsZXQgKC4uLikgKGlmIGVuZCAuLi4pKSkpKSkgcGxpc3QpKQogIChsZXQqICgoY29t cG9uZW50cyAob3JnLWhlYWRpbmctY29tcG9uZW50cykpIChsZXZlbCAobnRoIDEgY29tcG9uZW50 cykpICh0b2RvIChudGggMiBjb21wb25lbnRzKSkgKHRvZG8tdHlwZSAoYW5kIHRvZG8gKGlmICht ZW1iZXIgdG9kbyBvcmctZG9uZS1rZXl3b3JkcykgKHF1b3RlIGRvbmUpIChxdW90ZSB0b2RvKSkp KSAodGFncyAobGV0ICgocmF3LXRhZ3MgKG50aCA1IGNvbXBvbmVudHMpKSkgKGFuZCByYXctdGFn cyAob3JnLXNwbGl0LXN0cmluZyByYXctdGFncyAiOiIpKSkpIChyYXctdmFsdWUgKG9yIChudGgg NCBjb21wb25lbnRzKSAiIikpIChjb21tZW50ZWRwIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIG5p bCkpIChzdHJpbmctbWF0Y2ggKGZvcm1hdCAiXiVzXFwoIFxcfCRcXCkiIG9yZy1jb21tZW50LXN0 cmluZykgcmF3LXZhbHVlKSkpIChhcmNoaXZlZHAgKG1lbWJlciBvcmctYXJjaGl2ZS10YWcgdGFn cykpIChmb290bm90ZS1zZWN0aW9uLXAgKGFuZCBvcmctZm9vdG5vdGUtc2VjdGlvbiAoc3RyaW5n PSBvcmctZm9vdG5vdGUtc2VjdGlvbiByYXctdmFsdWUpKSkgKHN0YW5kYXJkLXByb3BzIChsZXQg KChlbmQgKHNhdmUtZXhjdXJzaW9uIChsZXQqIC4uLiAuLi4pIChwb2ludCkpKSBwbGlzdCkgKHNh dmUtZXhjdXJzaW9uICh3aGlsZSAoYW5kIChudWxsIHBsaXN0KSAocmUtc2VhcmNoLWZvcndhcmQg b3JnLXByb3BlcnR5LXN0YXJ0LXJlIGVuZCB0KSkgKGxldCAoLi4uKSAoaWYgLi4uIC4uLikpKSBw bGlzdCkpKSAodGltZS1wcm9wcyAoc2F2ZS1leGN1cnNpb24gKGZvcndhcmQtbGluZSkgKGlmIChs b29raW5nLWF0IG9yZy1wbGFubmluZy1vci1jbG9jay1saW5lLXJlKSAocHJvZ24gKGxldCAoLi4u IHBsaXN0KSAod2hpbGUgLi4uIC4uLiAuLi4gLi4uKSBwbGlzdCkpKSkpIChiZWdpbiAocG9pbnQp KSAoZW5kIChtaW4gKHNhdmUtZXhjdXJzaW9uIChvcmctZW5kLW9mLXN1YnRyZWUgdCB0KSkgbGlt aXQpKSAocG9zLWFmdGVyLWhlYWQgKHByb2duIChmb3J3YXJkLWxpbmUpIChwb2ludCkpKSAoY29u dGVudHMtYmVnaW4gKHNhdmUtZXhjdXJzaW9uIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIiBl bmQpIChhbmQgKC89IChwb2ludCkgZW5kKSAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pKSkpIChj b250ZW50cy1lbmQgKGFuZCBjb250ZW50cy1iZWdpbiAocHJvZ24gKGdvdG8tY2hhciBlbmQpIChz a2lwLWNoYXJzLWJhY2t3YXJkICIgDQlcbiIpIChmb3J3YXJkLWxpbmUpIChwb2ludCkpKSkpIChp ZiBjb21tZW50ZWRwIChwcm9nbiAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCBuaWwpKSAoc2V0cSBy YXctdmFsdWUgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZyAoY29uY2F0IChyZWdleHAtcXVvdGUg b3JnLWNvbW1lbnQtc3RyaW5nKSAiXFwoPzogXFx8JFxcKSIpICIiIHJhdy12YWx1ZSkpKSkpIChp ZiBhcmNoaXZlZHAgKHByb2duIChzZXRxIHRhZ3MgKGRlbGV0ZSBvcmctYXJjaGl2ZS10YWcgdGFn cykpKSkgKGxldCAoKGhlYWRsaW5lIChsaXN0IChxdW90ZSBoZWFkbGluZSkgKG5jb25jIChsaXN0 IDpyYXctdmFsdWUgcmF3LXZhbHVlIDpiZWdpbiBiZWdpbiA6ZW5kIGVuZCA6cHJlLWJsYW5rIChp ZiAuLi4gMCAuLi4pIDpjb250ZW50cy1iZWdpbiBjb250ZW50cy1iZWdpbiA6Y29udGVudHMtZW5k IGNvbnRlbnRzLWVuZCA6bGV2ZWwgbGV2ZWwgOnByaW9yaXR5IChudGggMyBjb21wb25lbnRzKSA6 dGFncyB0YWdzIDp0b2RvLWtleXdvcmQgdG9kbyA6dG9kby10eXBlIHRvZG8tdHlwZSA6cG9zdC1i bGFuayAoY291bnQtbGluZXMgLi4uIGVuZCkgOmZvb3Rub3RlLXNlY3Rpb24tcCBmb290bm90ZS1z ZWN0aW9uLXAgOmFyY2hpdmVkcCBhcmNoaXZlZHAgOmNvbW1lbnRlZHAgY29tbWVudGVkcCkgdGlt ZS1wcm9wcyBzdGFuZGFyZC1wcm9wcykpKSkgKGxldCAoKGFsdC10aXRsZSAob3JnLWVsZW1lbnQt cHJvcGVydHkgOkFMVF9USVRMRSBoZWFkbGluZSkpKSAoaWYgYWx0LXRpdGxlIChwcm9nbiAob3Jn LWVsZW1lbnQtcHV0LXByb3BlcnR5IGhlYWRsaW5lIDphbHQtdGl0bGUgKGlmIHJhdy1zZWNvbmRh cnktcCBhbHQtdGl0bGUgKG9yZy1lbGVtZW50LXBhcnNlLXNlY29uZGFyeS1zdHJpbmcgYWx0LXRp dGxlIC4uLiBoZWFkbGluZSkpKSkpKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGhlYWRsaW5l IDp0aXRsZSAoaWYgcmF3LXNlY29uZGFyeS1wIHJhdy12YWx1ZSAob3JnLWVsZW1lbnQtcGFyc2Ut c2Vjb25kYXJ5LXN0cmluZyByYXctdmFsdWUgKG9yZy1lbGVtZW50LXJlc3RyaWN0aW9uIChxdW90 ZSBoZWFkbGluZSkpIGhlYWRsaW5lKSkpKSkKICAoc2F2ZS1leGN1cnNpb24gKGxldCogKChjb21w b25lbnRzIChvcmctaGVhZGluZy1jb21wb25lbnRzKSkgKGxldmVsIChudGggMSBjb21wb25lbnRz KSkgKHRvZG8gKG50aCAyIGNvbXBvbmVudHMpKSAodG9kby10eXBlIChhbmQgdG9kbyAoaWYgKG1l bWJlciB0b2RvIG9yZy1kb25lLWtleXdvcmRzKSAocXVvdGUgZG9uZSkgKHF1b3RlIHRvZG8pKSkp ICh0YWdzIChsZXQgKChyYXctdGFncyAobnRoIDUgY29tcG9uZW50cykpKSAoYW5kIHJhdy10YWdz IChvcmctc3BsaXQtc3RyaW5nIHJhdy10YWdzICI6IikpKSkgKHJhdy12YWx1ZSAob3IgKG50aCA0 IGNvbXBvbmVudHMpICIiKSkgKGNvbW1lbnRlZHAgKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggbmls KSkgKHN0cmluZy1tYXRjaCAoZm9ybWF0ICJeJXNcXCggXFx8JFxcKSIgb3JnLWNvbW1lbnQtc3Ry aW5nKSByYXctdmFsdWUpKSkgKGFyY2hpdmVkcCAobWVtYmVyIG9yZy1hcmNoaXZlLXRhZyB0YWdz KSkgKGZvb3Rub3RlLXNlY3Rpb24tcCAoYW5kIG9yZy1mb290bm90ZS1zZWN0aW9uIChzdHJpbmc9 IG9yZy1mb290bm90ZS1zZWN0aW9uIHJhdy12YWx1ZSkpKSAoc3RhbmRhcmQtcHJvcHMgKGxldCAo KGVuZCAoc2F2ZS1leGN1cnNpb24gLi4uIC4uLikpIHBsaXN0KSAoc2F2ZS1leGN1cnNpb24gKHdo aWxlIChhbmQgLi4uIC4uLikgKGxldCAuLi4gLi4uKSkgcGxpc3QpKSkgKHRpbWUtcHJvcHMgKHNh dmUtZXhjdXJzaW9uIChmb3J3YXJkLWxpbmUpIChpZiAobG9va2luZy1hdCBvcmctcGxhbm5pbmct b3ItY2xvY2stbGluZS1yZSkgKHByb2duIChsZXQgLi4uIC4uLiBwbGlzdCkpKSkpIChiZWdpbiAo cG9pbnQpKSAoZW5kIChtaW4gKHNhdmUtZXhjdXJzaW9uIChvcmctZW5kLW9mLXN1YnRyZWUgdCB0 KSkgbGltaXQpKSAocG9zLWFmdGVyLWhlYWQgKHByb2duIChmb3J3YXJkLWxpbmUpIChwb2ludCkp KSAoY29udGVudHMtYmVnaW4gKHNhdmUtZXhjdXJzaW9uIChza2lwLWNoYXJzLWZvcndhcmQgIiAN CVxuIiBlbmQpIChhbmQgKC89IChwb2ludCkgZW5kKSAobGluZS1iZWdpbm5pbmctcG9zaXRpb24p KSkpIChjb250ZW50cy1lbmQgKGFuZCBjb250ZW50cy1iZWdpbiAocHJvZ24gKGdvdG8tY2hhciBl bmQpIChza2lwLWNoYXJzLWJhY2t3YXJkICIgDQlcbiIpIChmb3J3YXJkLWxpbmUpIChwb2ludCkp KSkpIChpZiBjb21tZW50ZWRwIChwcm9nbiAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCBuaWwpKSAo c2V0cSByYXctdmFsdWUgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZyAoY29uY2F0IC4uLiAiXFwo PzogXFx8JFxcKSIpICIiIHJhdy12YWx1ZSkpKSkpIChpZiBhcmNoaXZlZHAgKHByb2duIChzZXRx IHRhZ3MgKGRlbGV0ZSBvcmctYXJjaGl2ZS10YWcgdGFncykpKSkgKGxldCAoKGhlYWRsaW5lIChs aXN0IChxdW90ZSBoZWFkbGluZSkgKG5jb25jIChsaXN0IDpyYXctdmFsdWUgcmF3LXZhbHVlIDpi ZWdpbiBiZWdpbiA6ZW5kIGVuZCA6cHJlLWJsYW5rIC4uLiA6Y29udGVudHMtYmVnaW4gY29udGVu dHMtYmVnaW4gOmNvbnRlbnRzLWVuZCBjb250ZW50cy1lbmQgOmxldmVsIGxldmVsIDpwcmlvcml0 eSAuLi4gOnRhZ3MgdGFncyA6dG9kby1rZXl3b3JkIHRvZG8gOnRvZG8tdHlwZSB0b2RvLXR5cGUg OnBvc3QtYmxhbmsgLi4uIDpmb290bm90ZS1zZWN0aW9uLXAgZm9vdG5vdGUtc2VjdGlvbi1wIDph cmNoaXZlZHAgYXJjaGl2ZWRwIDpjb21tZW50ZWRwIGNvbW1lbnRlZHApIHRpbWUtcHJvcHMgc3Rh bmRhcmQtcHJvcHMpKSkpIChsZXQgKChhbHQtdGl0bGUgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpB TFRfVElUTEUgaGVhZGxpbmUpKSkgKGlmIGFsdC10aXRsZSAocHJvZ24gKG9yZy1lbGVtZW50LXB1 dC1wcm9wZXJ0eSBoZWFkbGluZSA6YWx0LXRpdGxlIChpZiByYXctc2Vjb25kYXJ5LXAgYWx0LXRp dGxlIC4uLikpKSkpIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgaGVhZGxpbmUgOnRpdGxlIChp ZiByYXctc2Vjb25kYXJ5LXAgcmF3LXZhbHVlIChvcmctZWxlbWVudC1wYXJzZS1zZWNvbmRhcnkt c3RyaW5nIHJhdy12YWx1ZSAob3JnLWVsZW1lbnQtcmVzdHJpY3Rpb24gKHF1b3RlIGhlYWRsaW5l KSkgaGVhZGxpbmUpKSkpKSkKICBvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIoMjU3NzA2IHQp CiAgKGNvbmQgKChlcSBzcGVjaWFsIChxdW90ZSBpdGVtKSkgKG9yZy1lbGVtZW50LWl0ZW0tcGFy c2VyIGxpbWl0IHN0cnVjdHVyZSByYXctc2Vjb25kYXJ5LXApKSAoKGVxIHNwZWNpYWwgKHF1b3Rl IHRhYmxlLXJvdykpIChvcmctZWxlbWVudC10YWJsZS1yb3ctcGFyc2VyIGxpbWl0KSkgKChlcSBz cGVjaWFsIChxdW90ZSBub2RlLXByb3BlcnR5KSkgKG9yZy1lbGVtZW50LW5vZGUtcHJvcGVydHkt cGFyc2VyIGxpbWl0KSkgKChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQp IChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJlZ2V4cCkpIChv dXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9s IChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3JnLWF0LWhlYWRpbmctcCkpIChv cmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIgbGltaXQgcmF3LXNlY29uZGFyeS1wKSkgKChlcSBz cGVjaWFsIChxdW90ZSBzZWN0aW9uKSkgKG9yZy1lbGVtZW50LXNlY3Rpb24tcGFyc2VyIGxpbWl0 KSkgKChlcSBzcGVjaWFsIChxdW90ZSBmaXJzdC1zZWN0aW9uKSkgKG9yZy1lbGVtZW50LXNlY3Rp b24tcGFyc2VyIChvciAoc2F2ZS1leGN1cnNpb24gKGxldCogKChvcmctY2FsbGVkLXdpdGgtbGlt aXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAuLi4pIChvdXRsaW5lLXJlZ2V4cCBv cmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1yZWdleHAtYm9sIC4uLikpIChvdXRsaW5l LW5leHQtaGVhZGluZykpKSBsaW1pdCkpKSAoKG5vdCAoYm9scCkpIChvcmctZWxlbWVudC1wYXJh Z3JhcGgtcGFyc2VyIGxpbWl0IChsaXN0IChwb2ludCkpKSkgKChsb29raW5nLWF0IG9yZy1wbGFu bmluZy1vci1jbG9jay1saW5lLXJlKSAoaWYgKGVxdWFsIChtYXRjaC1zdHJpbmcgMSkgb3JnLWNs b2NrLXN0cmluZykgKG9yZy1lbGVtZW50LWNsb2NrLXBhcnNlciBsaW1pdCkgKG9yZy1lbGVtZW50 LXBsYW5uaW5nLXBhcnNlciBsaW1pdCkpKSAoKG9yZy1hdC1oZWFkaW5nLXApIChvcmctZWxlbWVu dC1pbmxpbmV0YXNrLXBhcnNlciBsaW1pdCByYXctc2Vjb25kYXJ5LXApKSAodCAobGV0ICgoYWZm aWxpYXRlZCAob3JnLWVsZW1lbnQtLWNvbGxlY3QtYWZmaWxpYXRlZC1rZXl3b3JkcyBsaW1pdCkp KSAoY29uZCAoKGFuZCAoY2RyIGFmZmlsaWF0ZWQpICg+PSAocG9pbnQpIGxpbWl0KSkgKGdvdG8t Y2hhciAoY2FyIGFmZmlsaWF0ZWQpKSAob3JnLWVsZW1lbnQta2V5d29yZC1wYXJzZXIgbGltaXQg bmlsKSkgKChsb29raW5nLWF0ICJbICAgICBdKlxcXFxiZWdpbntbQS1aYS16MC05Kl0rfVxcKFxc Wy4qP1xcXVxcfHsuKj99XFwpKlsgICAgIF0qJCIpIChvcmctZWxlbWVudC1sYXRleC1lbnZpcm9u bWVudC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCBvcmctZHJhd2VyLXJl Z2V4cCkgKGlmIChlcXVhbCAobWF0Y2gtc3RyaW5nIDEpICJQUk9QRVJUSUVTIikgKG9yZy1lbGVt ZW50LXByb3BlcnR5LWRyYXdlci1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkgKG9yZy1lbGVtZW50 LWRyYXdlci1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpKSAoKGxvb2tpbmctYXQgIlsgICBdKjpc XCggXFx8JFxcKSIpIChvcmctZWxlbWVudC1maXhlZC13aWR0aC1wYXJzZXIgbGltaXQgYWZmaWxp YXRlZCkpICgobG9va2luZy1hdCAiWyAgICAgXSojIikgKGdvdG8tY2hhciAobWF0Y2gtZW5kIDAp KSAoY29uZCAoKGxvb2tpbmctYXQgIlxcKD86IFxcfCRcXCkiKSAoYmVnaW5uaW5nLW9mLWxpbmUp IChvcmctZWxlbWVudC1jb21tZW50LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5n LWF0ICJcXCtCRUdJTl9cXChcXFMtK1xcKSIpIChiZWdpbm5pbmctb2YtbGluZSkgKGxldCAuLi4g Li4uKSkgKChsb29raW5nLWF0ICJcXCtDQUxMOiIpIChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1l bGVtZW50LWJhYmVsLWNhbGwtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQg IlxcK0JFR0lOOj8gIikgKGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQtZHluYW1pYy1i bG9jay1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiXFwrXFxTLSs6Iikg KGJlZ2lubmluZy1vZi1saW5lKSAob3JnLWVsZW1lbnQta2V5d29yZC1wYXJzZXIgbGltaXQgYWZm aWxpYXRlZCkpICh0IChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LXBhcmFncmFwaC1w YXJzZXIgbGltaXQgYWZmaWxpYXRlZCkpKSkgKChsb29raW5nLWF0IG9yZy1mb290bm90ZS1kZWZp bml0aW9uLXJlKSAob3JnLWVsZW1lbnQtZm9vdG5vdGUtZGVmaW5pdGlvbi1wYXJzZXIgbGltaXQg YWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiWyAgIF0qLVxcezUsXFx9WyAgICBdKiQiKSAob3Jn LWVsZW1lbnQtaG9yaXpvbnRhbC1ydWxlLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29r aW5nLWF0ICIlJSgiKSAob3JnLWVsZW1lbnQtZGlhcnktc2V4cC1wYXJzZXIgbGltaXQgYWZmaWxp YXRlZCkpICgob3JnLWF0LXRhYmxlLXAgdCkgKG9yZy1lbGVtZW50LXRhYmxlLXBhcnNlciBsaW1p dCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0IChvcmctaXRlbS1yZSkpIChvcmctZWxlbWVudC1w bGFpbi1saXN0LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkIChvciBzdHJ1Y3R1cmUgKG9yZy1lbGVt ZW50LS1saXN0LXN0cnVjdCBsaW1pdCkpKSkgKHQgKG9yZy1lbGVtZW50LXBhcmFncmFwaC1wYXJz ZXIgbGltaXQgYWZmaWxpYXRlZCkpKSkpKQogIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIHQpIChy YXctc2Vjb25kYXJ5LXAgKGFuZCBncmFudWxhcml0eSAobm90IChlcSBncmFudWxhcml0eSAocXVv dGUgb2JqZWN0KSkpKSkpIChjb25kICgoZXEgc3BlY2lhbCAocXVvdGUgaXRlbSkpIChvcmctZWxl bWVudC1pdGVtLXBhcnNlciBsaW1pdCBzdHJ1Y3R1cmUgcmF3LXNlY29uZGFyeS1wKSkgKChlcSBz cGVjaWFsIChxdW90ZSB0YWJsZS1yb3cpKSAob3JnLWVsZW1lbnQtdGFibGUtcm93LXBhcnNlciBs aW1pdCkpICgoZXEgc3BlY2lhbCAocXVvdGUgbm9kZS1wcm9wZXJ0eSkpIChvcmctZWxlbWVudC1u b2RlLXByb3BlcnR5LXBhcnNlciBsaW1pdCkpICgobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1saW1p dGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0bGlu ZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxp bmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgKG9yZy1hdC1o ZWFkaW5nLXApKSAob3JnLWVsZW1lbnQtaGVhZGxpbmUtcGFyc2VyIGxpbWl0IHJhdy1zZWNvbmRh cnktcCkpICgoZXEgc3BlY2lhbCAocXVvdGUgc2VjdGlvbikpIChvcmctZWxlbWVudC1zZWN0aW9u LXBhcnNlciBsaW1pdCkpICgoZXEgc3BlY2lhbCAocXVvdGUgZmlyc3Qtc2VjdGlvbikpIChvcmct ZWxlbWVudC1zZWN0aW9uLXBhcnNlciAob3IgKHNhdmUtZXhjdXJzaW9uIChsZXQqICguLi4gLi4u IC4uLiAuLi4pIChvdXRsaW5lLW5leHQtaGVhZGluZykpKSBsaW1pdCkpKSAoKG5vdCAoYm9scCkp IChvcmctZWxlbWVudC1wYXJhZ3JhcGgtcGFyc2VyIGxpbWl0IChsaXN0IChwb2ludCkpKSkgKChs b29raW5nLWF0IG9yZy1wbGFubmluZy1vci1jbG9jay1saW5lLXJlKSAoaWYgKGVxdWFsIChtYXRj aC1zdHJpbmcgMSkgb3JnLWNsb2NrLXN0cmluZykgKG9yZy1lbGVtZW50LWNsb2NrLXBhcnNlciBs aW1pdCkgKG9yZy1lbGVtZW50LXBsYW5uaW5nLXBhcnNlciBsaW1pdCkpKSAoKG9yZy1hdC1oZWFk aW5nLXApIChvcmctZWxlbWVudC1pbmxpbmV0YXNrLXBhcnNlciBsaW1pdCByYXctc2Vjb25kYXJ5 LXApKSAodCAobGV0ICgoYWZmaWxpYXRlZCAob3JnLWVsZW1lbnQtLWNvbGxlY3QtYWZmaWxpYXRl ZC1rZXl3b3JkcyBsaW1pdCkpKSAoY29uZCAoKGFuZCAoY2RyIGFmZmlsaWF0ZWQpICg+PSAuLi4g bGltaXQpKSAoZ290by1jaGFyIChjYXIgYWZmaWxpYXRlZCkpIChvcmctZWxlbWVudC1rZXl3b3Jk LXBhcnNlciBsaW1pdCBuaWwpKSAoKGxvb2tpbmctYXQgIlsgICAgICAgIF0qXFxcXGJlZ2lue1tB LVphLXowLTkqXSt9XFwoXFxbLio/XFxdXFx8ey4qP31cXCkqWyAgICAgXSokIikgKG9yZy1lbGVt ZW50LWxhdGV4LWVudmlyb25tZW50LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5n LWF0IG9yZy1kcmF3ZXItcmVnZXhwKSAoaWYgKGVxdWFsIC4uLiAiUFJPUEVSVElFUyIpIChvcmct ZWxlbWVudC1wcm9wZXJ0eS1kcmF3ZXItcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpIChvcmctZWxl bWVudC1kcmF3ZXItcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSkgKChsb29raW5nLWF0ICJbICAg ICAgICBdKjpcXCggXFx8JFxcKSIpIChvcmctZWxlbWVudC1maXhlZC13aWR0aC1wYXJzZXIgbGlt aXQgYWZmaWxpYXRlZCkpICgobG9va2luZy1hdCAiWyAgICAgXSojIikgKGdvdG8tY2hhciAobWF0 Y2gtZW5kIDApKSAoY29uZCAoLi4uIC4uLiAuLi4pICguLi4gLi4uIC4uLikgKC4uLiAuLi4gLi4u KSAoLi4uIC4uLiAuLi4pICguLi4gLi4uIC4uLikgKHQgLi4uIC4uLikpKSAoKGxvb2tpbmctYXQg b3JnLWZvb3Rub3RlLWRlZmluaXRpb24tcmUpIChvcmctZWxlbWVudC1mb290bm90ZS1kZWZpbml0 aW9uLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChsb29raW5nLWF0ICJbICAgXSotXFx7NSxc XH1bICAgIF0qJCIpIChvcmctZWxlbWVudC1ob3Jpem9udGFsLXJ1bGUtcGFyc2VyIGxpbWl0IGFm ZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIiUlKCIpIChvcmctZWxlbWVudC1kaWFyeS1zZXhwLXBh cnNlciBsaW1pdCBhZmZpbGlhdGVkKSkgKChvcmctYXQtdGFibGUtcCB0KSAob3JnLWVsZW1lbnQt dGFibGUtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgKG9yZy1pdGVtLXJl KSkgKG9yZy1lbGVtZW50LXBsYWluLWxpc3QtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQgKG9yIHN0 cnVjdHVyZSAuLi4pKSkgKHQgKG9yZy1lbGVtZW50LXBhcmFncmFwaC1wYXJzZXIgbGltaXQgYWZm aWxpYXRlZCkpKSkpKSkKICAoc2F2ZS1leGN1cnNpb24gKGxldCAoKGNhc2UtZm9sZC1zZWFyY2gg dCkgKHJhdy1zZWNvbmRhcnktcCAoYW5kIGdyYW51bGFyaXR5IChub3QgKGVxIGdyYW51bGFyaXR5 IChxdW90ZSBvYmplY3QpKSkpKSkgKGNvbmQgKChlcSBzcGVjaWFsIChxdW90ZSBpdGVtKSkgKG9y Zy1lbGVtZW50LWl0ZW0tcGFyc2VyIGxpbWl0IHN0cnVjdHVyZSByYXctc2Vjb25kYXJ5LXApKSAo KGVxIHNwZWNpYWwgKHF1b3RlIHRhYmxlLXJvdykpIChvcmctZWxlbWVudC10YWJsZS1yb3ctcGFy c2VyIGxpbWl0KSkgKChlcSBzcGVjaWFsIChxdW90ZSBub2RlLXByb3BlcnR5KSkgKG9yZy1lbGVt ZW50LW5vZGUtcHJvcGVydHktcGFyc2VyIGxpbWl0KSkgKChsZXQqICgob3JnLWNhbGxlZC13aXRo LWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1v dXRsaW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmct b3V0bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3Jn LWF0LWhlYWRpbmctcCkpIChvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIgbGltaXQgcmF3LXNl Y29uZGFyeS1wKSkgKChlcSBzcGVjaWFsIChxdW90ZSBzZWN0aW9uKSkgKG9yZy1lbGVtZW50LXNl Y3Rpb24tcGFyc2VyIGxpbWl0KSkgKChlcSBzcGVjaWFsIChxdW90ZSBmaXJzdC1zZWN0aW9uKSkg KG9yZy1lbGVtZW50LXNlY3Rpb24tcGFyc2VyIChvciAoc2F2ZS1leGN1cnNpb24gKGxldCogLi4u IC4uLikpIGxpbWl0KSkpICgobm90IChib2xwKSkgKG9yZy1lbGVtZW50LXBhcmFncmFwaC1wYXJz ZXIgbGltaXQgKGxpc3QgKHBvaW50KSkpKSAoKGxvb2tpbmctYXQgb3JnLXBsYW5uaW5nLW9yLWNs b2NrLWxpbmUtcmUpIChpZiAoZXF1YWwgKG1hdGNoLXN0cmluZyAxKSBvcmctY2xvY2stc3RyaW5n KSAob3JnLWVsZW1lbnQtY2xvY2stcGFyc2VyIGxpbWl0KSAob3JnLWVsZW1lbnQtcGxhbm5pbmct cGFyc2VyIGxpbWl0KSkpICgob3JnLWF0LWhlYWRpbmctcCkgKG9yZy1lbGVtZW50LWlubGluZXRh c2stcGFyc2VyIGxpbWl0IHJhdy1zZWNvbmRhcnktcCkpICh0IChsZXQgKChhZmZpbGlhdGVkIChv cmctZWxlbWVudC0tY29sbGVjdC1hZmZpbGlhdGVkLWtleXdvcmRzIGxpbWl0KSkpIChjb25kICgo YW5kIC4uLiAuLi4pIChnb3RvLWNoYXIgLi4uKSAob3JnLWVsZW1lbnQta2V5d29yZC1wYXJzZXIg bGltaXQgbmlsKSkgKChsb29raW5nLWF0ICJbICAgICAgXSpcXFxcYmVnaW57W0EtWmEtejAtOSpd K31cXChcXFsuKj9cXF1cXHx7Lio/fVxcKSpbICAgICBdKiQiKSAob3JnLWVsZW1lbnQtbGF0ZXgt ZW52aXJvbm1lbnQtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgb3JnLWRy YXdlci1yZWdleHApIChpZiAuLi4gLi4uIC4uLikpICgobG9va2luZy1hdCAiWyAgICAgICAgXSo6 XFwoIFxcfCRcXCkiKSAob3JnLWVsZW1lbnQtZml4ZWQtd2lkdGgtcGFyc2VyIGxpbWl0IGFmZmls aWF0ZWQpKSAoKGxvb2tpbmctYXQgIlsgICAgIF0qIyIpIChnb3RvLWNoYXIgLi4uKSAoY29uZCAu Li4gLi4uIC4uLiAuLi4gLi4uIC4uLikpICgobG9va2luZy1hdCBvcmctZm9vdG5vdGUtZGVmaW5p dGlvbi1yZSkgKG9yZy1lbGVtZW50LWZvb3Rub3RlLWRlZmluaXRpb24tcGFyc2VyIGxpbWl0IGFm ZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgIlsgICAgICAgXSotXFx7NSxcXH1bICAgIF0qJCIpIChv cmctZWxlbWVudC1ob3Jpem9udGFsLXJ1bGUtcGFyc2VyIGxpbWl0IGFmZmlsaWF0ZWQpKSAoKGxv b2tpbmctYXQgIiUlKCIpIChvcmctZWxlbWVudC1kaWFyeS1zZXhwLXBhcnNlciBsaW1pdCBhZmZp bGlhdGVkKSkgKChvcmctYXQtdGFibGUtcCB0KSAob3JnLWVsZW1lbnQtdGFibGUtcGFyc2VyIGxp bWl0IGFmZmlsaWF0ZWQpKSAoKGxvb2tpbmctYXQgLi4uKSAob3JnLWVsZW1lbnQtcGxhaW4tbGlz dC1wYXJzZXIgbGltaXQgYWZmaWxpYXRlZCAuLi4pKSAodCAob3JnLWVsZW1lbnQtcGFyYWdyYXBo LXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkpKSkpKSkKICBvcmctZWxlbWVudC0tY3VycmVudC1l bGVtZW50KDI1NzcwNiBlbGVtZW50IG5pbCBuaWwpCiAgKHNldHEgZWxlbWVudCAob3JnLWVsZW1l bnQtLWN1cnJlbnQtZWxlbWVudCBlbmQgKHF1b3RlIGVsZW1lbnQpIHNwZWNpYWwtZmxhZyAob3Jn LWVsZW1lbnQtcHJvcGVydHkgOnN0cnVjdHVyZSBwYXJlbnQpKSkKICAoaWYgZWxlbWVudCBuaWwg KHNldHEgZWxlbWVudCAob3JnLWVsZW1lbnQtLWN1cnJlbnQtZWxlbWVudCBlbmQgKHF1b3RlIGVs ZW1lbnQpIHNwZWNpYWwtZmxhZyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnN0cnVjdHVyZSBwYXJl bnQpKSkgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBlbGVtZW50IDpwYXJlbnQgcGFyZW50KSAo b3JnLWVsZW1lbnQtLWNhY2hlLXB1dCBlbGVtZW50KSkKICAod2hpbGUgdCAoaWYgc3luY3AgKHBy b2duIChjb25kICgoPSAocG9pbnQpIHBvcykgKHRocm93IChxdW90ZSBleGl0KSBwYXJlbnQpKSAo KG9yZy1lbGVtZW50LS1jYWNoZS1pbnRlcnJ1cHQtcCB0aW1lLWxpbWl0KSAodGhyb3cgKHF1b3Rl IGludGVycnVwdCkgbmlsKSkpKSkgKGlmIGVsZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQgKG9yZy1l bGVtZW50LS1jdXJyZW50LWVsZW1lbnQgZW5kIChxdW90ZSBlbGVtZW50KSBzcGVjaWFsLWZsYWcg KG9yZy1lbGVtZW50LXByb3BlcnR5IDpzdHJ1Y3R1cmUgcGFyZW50KSkpIChvcmctZWxlbWVudC1w dXQtcHJvcGVydHkgZWxlbWVudCA6cGFyZW50IHBhcmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1w dXQgZWxlbWVudCkpIChsZXQgKChlbGVtLWVuZCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBl bGVtZW50KSkgKHR5cGUgKG9yZy1lbGVtZW50LXR5cGUgZWxlbWVudCkpKSAoY29uZCAoKGFuZCAo PD0gZWxlbS1lbmQgcG9zKSAoLz0gKHBvaW50LW1heCkgZWxlbS1lbmQpKSAoZ290by1jaGFyIGVs ZW0tZW5kKSkgKChub3QgKG1lbXEgdHlwZSBvcmctZWxlbWVudC1ncmVhdGVyLWVsZW1lbnRzKSkg KHRocm93IChxdW90ZSBleGl0KSBlbGVtZW50KSkgKChsZXQgKChjYmVnIChvcmctZWxlbWVudC1w cm9wZXJ0eSA6Y29udGVudHMtYmVnaW4gZWxlbWVudCkpIChjZW5kIChvcmctZWxlbWVudC1wcm9w ZXJ0eSA6Y29udGVudHMtZW5kIGVsZW1lbnQpKSkgKGlmIChvciBzeW5jcCAoYW5kIGNiZWcgY2Vu ZCAuLi4gLi4uKSkgKHByb2duIChnb3RvLWNoYXIgLi4uKSAoc2V0cSBuZXh0IG5pbCBzcGVjaWFs LWZsYWcgLi4uIHBhcmVudCBlbGVtZW50IGVuZCBjZW5kKSkpKSkgKHQgKHRocm93IChxdW90ZSBl eGl0KSBlbGVtZW50KSkpKSAoc2V0cSBlbGVtZW50IG5pbCkpCiAgKGxldCAoKGVuZCAob3IgKG9y Zy1lbGVtZW50LXByb3BlcnR5IDplbmQgZWxlbWVudCkgKHNhdmUtZXhjdXJzaW9uIChsZXQqICgo b3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgLi4u KSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhw LWJvbCAuLi4pKSAob3V0bGluZS1uZXh0LWhlYWRpbmcpKSAocG9pbnQpKSkpIChwYXJlbnQgZWxl bWVudCkgc3BlY2lhbC1mbGFnKSAod2hpbGUgdCAoaWYgc3luY3AgKHByb2duIChjb25kICgoPSAo cG9pbnQpIHBvcykgKHRocm93IChxdW90ZSBleGl0KSBwYXJlbnQpKSAoKG9yZy1lbGVtZW50LS1j YWNoZS1pbnRlcnJ1cHQtcCB0aW1lLWxpbWl0KSAodGhyb3cgKHF1b3RlIGludGVycnVwdCkgbmls KSkpKSkgKGlmIGVsZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQgKG9yZy1lbGVtZW50LS1jdXJyZW50 LWVsZW1lbnQgZW5kIChxdW90ZSBlbGVtZW50KSBzcGVjaWFsLWZsYWcgKG9yZy1lbGVtZW50LXBy b3BlcnR5IDpzdHJ1Y3R1cmUgcGFyZW50KSkpIChvcmctZWxlbWVudC1wdXQtcHJvcGVydHkgZWxl bWVudCA6cGFyZW50IHBhcmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQgZWxlbWVudCkpIChs ZXQgKChlbGVtLWVuZCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSkgKHR5cGUg KG9yZy1lbGVtZW50LXR5cGUgZWxlbWVudCkpKSAoY29uZCAoKGFuZCAoPD0gZWxlbS1lbmQgcG9z KSAoLz0gKHBvaW50LW1heCkgZWxlbS1lbmQpKSAoZ290by1jaGFyIGVsZW0tZW5kKSkgKChub3Qg KG1lbXEgdHlwZSBvcmctZWxlbWVudC1ncmVhdGVyLWVsZW1lbnRzKSkgKHRocm93IChxdW90ZSBl eGl0KSBlbGVtZW50KSkgKChsZXQgKChjYmVnIC4uLikgKGNlbmQgLi4uKSkgKGlmIChvciBzeW5j cCAuLi4pIChwcm9nbiAuLi4gLi4uKSkpKSAodCAodGhyb3cgKHF1b3RlIGV4aXQpIGVsZW1lbnQp KSkpIChzZXRxIGVsZW1lbnQgbmlsKSkpCiAgKGxldCogKChjYWNoZWQgKGFuZCAob3JnLWVsZW1l bnQtLWNhY2hlLWFjdGl2ZS1wKSAob3JnLWVsZW1lbnQtLWNhY2hlLWZpbmQgcG9zIG5pbCkpKSAo YmVnaW4gKG9yZy1lbGVtZW50LXByb3BlcnR5IDpiZWdpbiBjYWNoZWQpKSBlbGVtZW50IG5leHQp IChjb25kICgobm90IGNhY2hlZCkgKGlmIChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQt bGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRsaW5lLXJl Z2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1y ZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3V0bGluZS1wcmV2 aW91cy1oZWFkaW5nKSkgKHByb2duIChmb3J3YXJkLWxpbmUpKSkgKHNraXAtY2hhcnMtZm9yd2Fy ZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAoKD0gcG9zIGJlZ2luKSAodGhyb3cgKHF1 b3RlIGV4aXQpIChpZiBzeW5jcCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhcmVudCBjYWNoZWQp IGNhY2hlZCkpKSAoKHJlLXNlYXJjaC1iYWNrd2FyZCAobGV0KiAoKG9yZy1jYWxsZWQtd2l0aC1s aW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0ZWQtb3V0 bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91 dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkgb3JnLW91 dGxpbmUtcmVnZXhwLWJvbCkgYmVnaW4gdCkgKGZvcndhcmQtbGluZSkgKHNraXAtY2hhcnMtZm9y d2FyZCAiIA0JXG4iKSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAodCAobGV0ICgodXAgY2FjaGVkKSAo cG9zIChpZiAoPSAuLi4gcG9zKSAoMS0gcG9zKSBwb3MpKSkgKGdvdG8tY2hhciAob3IgKG9yZy1l bGVtZW50LXByb3BlcnR5IDpjb250ZW50cy1iZWdpbiBjYWNoZWQpIGJlZ2luKSkgKHdoaWxlIChs ZXQgKChlbmQgLi4uKSkgKGFuZCAoPD0gZW5kIHBvcykgKGdvdG8tY2hhciBlbmQpIChzZXRxIHVw IC4uLikpKSkgKGNvbmQgKChub3QgdXApKSAoKGVvYnApIChzZXRxIGVsZW1lbnQgdXApKSAodCAo c2V0cSBlbGVtZW50IHVwIG5leHQgKHBvaW50KSkpKSkpKSAobGV0ICgoZW5kIChvciAob3JnLWVs ZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSAoc2F2ZS1leGN1cnNpb24gKGxldCogKC4uLiAu Li4gLi4uIC4uLikgKG91dGxpbmUtbmV4dC1oZWFkaW5nKSkgKHBvaW50KSkpKSAocGFyZW50IGVs ZW1lbnQpIHNwZWNpYWwtZmxhZykgKHdoaWxlIHQgKGlmIHN5bmNwIChwcm9nbiAoY29uZCAoKD0g Li4uIHBvcykgKHRocm93IC4uLiBwYXJlbnQpKSAoKG9yZy1lbGVtZW50LS1jYWNoZS1pbnRlcnJ1 cHQtcCB0aW1lLWxpbWl0KSAodGhyb3cgLi4uIG5pbCkpKSkpIChpZiBlbGVtZW50IG5pbCAoc2V0 cSBlbGVtZW50IChvcmctZWxlbWVudC0tY3VycmVudC1lbGVtZW50IGVuZCAocXVvdGUgZWxlbWVu dCkgc3BlY2lhbC1mbGFnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6c3RydWN0dXJlIHBhcmVudCkp KSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBhcmVudCBwYXJlbnQpIChvcmct ZWxlbWVudC0tY2FjaGUtcHV0IGVsZW1lbnQpKSAobGV0ICgoZWxlbS1lbmQgKG9yZy1lbGVtZW50 LXByb3BlcnR5IDplbmQgZWxlbWVudCkpICh0eXBlIChvcmctZWxlbWVudC10eXBlIGVsZW1lbnQp KSkgKGNvbmQgKChhbmQgKDw9IGVsZW0tZW5kIHBvcykgKC89IC4uLiBlbGVtLWVuZCkpIChnb3Rv LWNoYXIgZWxlbS1lbmQpKSAoKG5vdCAobWVtcSB0eXBlIG9yZy1lbGVtZW50LWdyZWF0ZXItZWxl bWVudHMpKSAodGhyb3cgKHF1b3RlIGV4aXQpIGVsZW1lbnQpKSAoKGxldCAoLi4uIC4uLikgKGlm IC4uLiAuLi4pKSkgKHQgKHRocm93IChxdW90ZSBleGl0KSBlbGVtZW50KSkpKSAoc2V0cSBlbGVt ZW50IG5pbCkpKSkKICAoc2F2ZS1yZXN0cmljdGlvbiAod2lkZW4pIChnb3RvLWNoYXIgcG9zKSAo bGV0KiAoKGNhY2hlZCAoYW5kIChvcmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXApIChvcmctZWxl bWVudC0tY2FjaGUtZmluZCBwb3MgbmlsKSkpIChiZWdpbiAob3JnLWVsZW1lbnQtcHJvcGVydHkg OmJlZ2luIGNhY2hlZCkpIGVsZW1lbnQgbmV4dCkgKGNvbmQgKChub3QgY2FjaGVkKSAoaWYgKGxl dCogKChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4 cCAuLi4pIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0bGluZS1y ZWdleHAtYm9sIC4uLikpIChvdXRsaW5lLXByZXZpb3VzLWhlYWRpbmcpKSAocHJvZ24gKGZvcndh cmQtbGluZSkpKSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGlu ZSkpICgoPSBwb3MgYmVnaW4pICh0aHJvdyAocXVvdGUgZXhpdCkgKGlmIHN5bmNwIChvcmctZWxl bWVudC1wcm9wZXJ0eSA6cGFyZW50IGNhY2hlZCkgY2FjaGVkKSkpICgocmUtc2VhcmNoLWJhY2t3 YXJkIChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGlu ZS1yZWdleHAgLi4uKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91 dGxpbmUtcmVnZXhwLWJvbCAuLi4pKSBvcmctb3V0bGluZS1yZWdleHAtYm9sKSBiZWdpbiB0KSAo Zm9yd2FyZC1saW5lKSAoc2tpcC1jaGFycy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2Yt bGluZSkpICh0IChsZXQgKCh1cCBjYWNoZWQpIChwb3MgKGlmIC4uLiAuLi4gcG9zKSkpIChnb3Rv LWNoYXIgKG9yIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6Y29udGVudHMtYmVnaW4gY2FjaGVkKSBi ZWdpbikpICh3aGlsZSAobGV0ICguLi4pIChhbmQgLi4uIC4uLiAuLi4pKSkgKGNvbmQgKChub3Qg dXApKSAoKGVvYnApIChzZXRxIGVsZW1lbnQgdXApKSAodCAoc2V0cSBlbGVtZW50IHVwIG5leHQg Li4uKSkpKSkpIChsZXQgKChlbmQgKG9yIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1l bnQpIChzYXZlLWV4Y3Vyc2lvbiAobGV0KiAuLi4gLi4uKSAocG9pbnQpKSkpIChwYXJlbnQgZWxl bWVudCkgc3BlY2lhbC1mbGFnKSAod2hpbGUgdCAoaWYgc3luY3AgKHByb2duIChjb25kICguLi4g Li4uKSAoLi4uIC4uLikpKSkgKGlmIGVsZW1lbnQgbmlsIChzZXRxIGVsZW1lbnQgKG9yZy1lbGVt ZW50LS1jdXJyZW50LWVsZW1lbnQgZW5kIChxdW90ZSBlbGVtZW50KSBzcGVjaWFsLWZsYWcgKG9y Zy1lbGVtZW50LXByb3BlcnR5IDpzdHJ1Y3R1cmUgcGFyZW50KSkpIChvcmctZWxlbWVudC1wdXQt cHJvcGVydHkgZWxlbWVudCA6cGFyZW50IHBhcmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1wdXQg ZWxlbWVudCkpIChsZXQgKChlbGVtLWVuZCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmVuZCBlbGVt ZW50KSkgKHR5cGUgKG9yZy1lbGVtZW50LXR5cGUgZWxlbWVudCkpKSAoY29uZCAoKGFuZCAuLi4g Li4uKSAoZ290by1jaGFyIGVsZW0tZW5kKSkgKChub3QgLi4uKSAodGhyb3cgLi4uIGVsZW1lbnQp KSAoKGxldCAuLi4gLi4uKSkgKHQgKHRocm93IC4uLiBlbGVtZW50KSkpKSAoc2V0cSBlbGVtZW50 IG5pbCkpKSkpCiAgKHNhdmUtZXhjdXJzaW9uIChzYXZlLXJlc3RyaWN0aW9uICh3aWRlbikgKGdv dG8tY2hhciBwb3MpIChsZXQqICgoY2FjaGVkIChhbmQgKG9yZy1lbGVtZW50LS1jYWNoZS1hY3Rp dmUtcCkgKG9yZy1lbGVtZW50LS1jYWNoZS1maW5kIHBvcyBuaWwpKSkgKGJlZ2luIChvcmctZWxl bWVudC1wcm9wZXJ0eSA6YmVnaW4gY2FjaGVkKSkgZWxlbWVudCBuZXh0KSAoY29uZCAoKG5vdCBj YWNoZWQpIChpZiAobGV0KiAoLi4uIC4uLiAuLi4gLi4uKSAob3V0bGluZS1wcmV2aW91cy1oZWFk aW5nKSkgKHByb2duIChmb3J3YXJkLWxpbmUpKSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIA0JXG4i KSAoYmVnaW5uaW5nLW9mLWxpbmUpKSAoKD0gcG9zIGJlZ2luKSAodGhyb3cgKHF1b3RlIGV4aXQp IChpZiBzeW5jcCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhcmVudCBjYWNoZWQpIGNhY2hlZCkp KSAoKHJlLXNlYXJjaC1iYWNrd2FyZCAobGV0KiAoLi4uIC4uLiAuLi4gLi4uKSBvcmctb3V0bGlu ZS1yZWdleHAtYm9sKSBiZWdpbiB0KSAoZm9yd2FyZC1saW5lKSAoc2tpcC1jaGFycy1mb3J3YXJk ICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkpICh0IChsZXQgKCh1cCBjYWNoZWQpIChwb3Mg Li4uKSkgKGdvdG8tY2hhciAob3IgLi4uIGJlZ2luKSkgKHdoaWxlIChsZXQgLi4uIC4uLikpIChj b25kICguLi4pICguLi4gLi4uKSAodCAuLi4pKSkpKSAobGV0ICgoZW5kIChvciAob3JnLWVsZW1l bnQtcHJvcGVydHkgOmVuZCBlbGVtZW50KSAoc2F2ZS1leGN1cnNpb24gLi4uIC4uLikpKSAocGFy ZW50IGVsZW1lbnQpIHNwZWNpYWwtZmxhZykgKHdoaWxlIHQgKGlmIHN5bmNwIChwcm9nbiAoY29u ZCAuLi4gLi4uKSkpIChpZiBlbGVtZW50IG5pbCAoc2V0cSBlbGVtZW50IChvcmctZWxlbWVudC0t Y3VycmVudC1lbGVtZW50IGVuZCAuLi4gc3BlY2lhbC1mbGFnIC4uLikpIChvcmctZWxlbWVudC1w dXQtcHJvcGVydHkgZWxlbWVudCA6cGFyZW50IHBhcmVudCkgKG9yZy1lbGVtZW50LS1jYWNoZS1w dXQgZWxlbWVudCkpIChsZXQgKChlbGVtLWVuZCAuLi4pICh0eXBlIC4uLikpIChjb25kICguLi4g Li4uKSAoLi4uIC4uLikgKC4uLikgKHQgLi4uKSkpIChzZXRxIGVsZW1lbnQgbmlsKSkpKSkpCiAg KGNhdGNoIChxdW90ZSBleGl0KSAoc2F2ZS1leGN1cnNpb24gKHNhdmUtcmVzdHJpY3Rpb24gKHdp ZGVuKSAoZ290by1jaGFyIHBvcykgKGxldCogKChjYWNoZWQgKGFuZCAob3JnLWVsZW1lbnQtLWNh Y2hlLWFjdGl2ZS1wKSAob3JnLWVsZW1lbnQtLWNhY2hlLWZpbmQgcG9zIG5pbCkpKSAoYmVnaW4g KG9yZy1lbGVtZW50LXByb3BlcnR5IDpiZWdpbiBjYWNoZWQpKSBlbGVtZW50IG5leHQpIChjb25k ICgobm90IGNhY2hlZCkgKGlmIChsZXQqIC4uLiAuLi4pIChwcm9nbiAuLi4pKSAoc2tpcC1jaGFy cy1mb3J3YXJkICIgDQlcbiIpIChiZWdpbm5pbmctb2YtbGluZSkpICgoPSBwb3MgYmVnaW4pICh0 aHJvdyAocXVvdGUgZXhpdCkgKGlmIHN5bmNwIC4uLiBjYWNoZWQpKSkgKChyZS1zZWFyY2gtYmFj a3dhcmQgKGxldCogLi4uIG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wpIGJlZ2luIHQpIChmb3J3YXJk LWxpbmUpIChza2lwLWNoYXJzLWZvcndhcmQgIiANCVxuIikgKGJlZ2lubmluZy1vZi1saW5lKSkg KHQgKGxldCAoLi4uIC4uLikgKGdvdG8tY2hhciAuLi4pICh3aGlsZSAuLi4pIChjb25kIC4uLiAu Li4gLi4uKSkpKSAobGV0ICgoZW5kIChvciAuLi4gLi4uKSkgKHBhcmVudCBlbGVtZW50KSBzcGVj aWFsLWZsYWcpICh3aGlsZSB0IChpZiBzeW5jcCAocHJvZ24gLi4uKSkgKGlmIGVsZW1lbnQgbmls IChzZXRxIGVsZW1lbnQgLi4uKSAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5IGVsZW1lbnQgOnBh cmVudCBwYXJlbnQpIChvcmctZWxlbWVudC0tY2FjaGUtcHV0IGVsZW1lbnQpKSAobGV0ICguLi4g Li4uKSAoY29uZCAuLi4gLi4uIC4uLiAuLi4pKSAoc2V0cSBlbGVtZW50IG5pbCkpKSkpKSkKICBv cmctZWxlbWVudC0tcGFyc2UtdG8oMjU3MjgwKQogIChjb25kICgoYm9icCkgbmlsKSAoKGxldCog KChvcmctY2FsbGVkLXdpdGgtbGltaXRlZC1sZXZlbHMgdCkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAo b3JnLWdldC1saW1pdGVkLW91dGxpbmUtcmVnZXhwKSkgKG91dGxpbmUtcmVnZXhwIG9yZy1vdXRs aW5lLXJlZ2V4cCkgKG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgKGNvbmNhdCAiXiIgb3JnLW91dGxp bmUtcmVnZXhwKSkpIChvcmctYXQtaGVhZGluZy1wKSkgKGJlZ2lubmluZy1vZi1saW5lKSAob3Jn LWVsZW1lbnQtaGVhZGxpbmUtcGFyc2VyIChwb2ludC1tYXgpIHQpKSAodCAoaWYgKG9yZy1lbGVt ZW50LS1jYWNoZS1hY3RpdmUtcCkgKHByb2duIChpZiAobm90IG9yZy1lbGVtZW50LS1jYWNoZSkg KG9yZy1lbGVtZW50LWNhY2hlLXJlc2V0KSAob3JnLWVsZW1lbnQtLWNhY2hlLXN5bmMgKGN1cnJl bnQtYnVmZmVyKSBvcmlnaW4pKSkpIChvcmctZWxlbWVudC0tcGFyc2UtdG8gb3JpZ2luKSkpCiAg KGxldCAoKG9yaWdpbiAocG9pbnQpKSkgKGVuZC1vZi1saW5lKSAoc2tpcC1jaGFycy1iYWNrd2Fy ZCAiIA0JXG4iKSAoY29uZCAoKGJvYnApIG5pbCkgKChsZXQqICgob3JnLWNhbGxlZC13aXRoLWxp bWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgKG9yZy1nZXQtbGltaXRlZC1vdXRs aW5lLXJlZ2V4cCkpIChvdXRsaW5lLXJlZ2V4cCBvcmctb3V0bGluZS1yZWdleHApIChvcmctb3V0 bGluZS1yZWdleHAtYm9sIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3JnLWF0 LWhlYWRpbmctcCkpIChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1lbGVtZW50LWhlYWRsaW5lLXBh cnNlciAocG9pbnQtbWF4KSB0KSkgKHQgKGlmIChvcmctZWxlbWVudC0tY2FjaGUtYWN0aXZlLXAp IChwcm9nbiAoaWYgKG5vdCBvcmctZWxlbWVudC0tY2FjaGUpIChvcmctZWxlbWVudC1jYWNoZS1y ZXNldCkgKG9yZy1lbGVtZW50LS1jYWNoZS1zeW5jIChjdXJyZW50LWJ1ZmZlcikgb3JpZ2luKSkp KSAob3JnLWVsZW1lbnQtLXBhcnNlLXRvIG9yaWdpbikpKSkKICAoc2F2ZS1yZXN0cmljdGlvbiAo d2lkZW4pIChsZXQgKChvcmlnaW4gKHBvaW50KSkpIChlbmQtb2YtbGluZSkgKHNraXAtY2hhcnMt YmFja3dhcmQgIiANCVxuIikgKGNvbmQgKChib2JwKSBuaWwpICgobGV0KiAoKG9yZy1jYWxsZWQt d2l0aC1saW1pdGVkLWxldmVscyB0KSAob3JnLW91dGxpbmUtcmVnZXhwIChvcmctZ2V0LWxpbWl0 ZWQtb3V0bGluZS1yZWdleHApKSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAo b3JnLW91dGxpbmUtcmVnZXhwLWJvbCAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHApKSkg KG9yZy1hdC1oZWFkaW5nLXApKSAoYmVnaW5uaW5nLW9mLWxpbmUpIChvcmctZWxlbWVudC1oZWFk bGluZS1wYXJzZXIgKHBvaW50LW1heCkgdCkpICh0IChpZiAob3JnLWVsZW1lbnQtLWNhY2hlLWFj dGl2ZS1wKSAocHJvZ24gKGlmIChub3Qgb3JnLWVsZW1lbnQtLWNhY2hlKSAob3JnLWVsZW1lbnQt Y2FjaGUtcmVzZXQpIChvcmctZWxlbWVudC0tY2FjaGUtc3luYyAuLi4gb3JpZ2luKSkpKSAob3Jn LWVsZW1lbnQtLXBhcnNlLXRvIG9yaWdpbikpKSkpCiAgKHNhdmUtZXhjdXJzaW9uIChzYXZlLXJl c3RyaWN0aW9uICh3aWRlbikgKGxldCAoKG9yaWdpbiAocG9pbnQpKSkgKGVuZC1vZi1saW5lKSAo c2tpcC1jaGFycy1iYWNrd2FyZCAiIA0JXG4iKSAoY29uZCAoKGJvYnApIG5pbCkgKChsZXQqICgo b3JnLWNhbGxlZC13aXRoLWxpbWl0ZWQtbGV2ZWxzIHQpIChvcmctb3V0bGluZS1yZWdleHAgLi4u KSAob3V0bGluZS1yZWdleHAgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLW91dGxpbmUtcmVnZXhw LWJvbCAuLi4pKSAob3JnLWF0LWhlYWRpbmctcCkpIChiZWdpbm5pbmctb2YtbGluZSkgKG9yZy1l bGVtZW50LWhlYWRsaW5lLXBhcnNlciAocG9pbnQtbWF4KSB0KSkgKHQgKGlmIChvcmctZWxlbWVu dC0tY2FjaGUtYWN0aXZlLXApIChwcm9nbiAoaWYgLi4uIC4uLiAuLi4pKSkgKG9yZy1lbGVtZW50 LS1wYXJzZS10byBvcmlnaW4pKSkpKSkKICBvcmctZWxlbWVudC1hdC1wb2ludCgpCiAgb3JnLWN5 Y2xlLWhpZGUtZHJhd2VycyhhbGwpCiAgb3JnLWRyaWxsLWVudHJ5KCkKICBieXRlLWNvZGUoIlwz MDYgXDIwNVwyMjcACFwyMDMTAAlcMjAzEwBcMzA3CSFcMjA0GABcMzEwIFwyMDIbAFwzMTEQCVwy MTEaEVxuXDIwNCYAXDMxMlwzMTMhXDIxMFwyMTJcMzE0XG4hXDIxMFwzMTUgXDIwNDsAXDMxNlwz MTchXDIxMFwzMjBcMzIxIVwyMTBcMjAyXDIyMwBcMzIyIFwyMTEbXDIwNFAAXDMxNlwzMjMhXDIx MFwzMjQUXDMyNVwzMjZcMzExXCJcMjEwXDIwMlwyMjIAXDMyNwtcMzMwXCJcMjAzYgBcMzMxIBRc MzI1XDMyNlwzMTFcIlwyMTBcMjAyXDIyMgBcMzI3C1wzMzJcIlwyMDNuAFwzMTERXDIwMlwyMjIA Cw1YXDIwM1wyMTIADh1cMjAzfwBcMzMzDh0hFh1cMzM0Dh1cbkNcIhYdXDIwMlwyMjAAXG4OHkIW HlwzMTERKSpcMjAyAABcMjA3IiBbcmVzdW1pbmctcCAqb3JnLWRyaWxsLWN1cnJlbnQtaXRlbSog bSByZXN1bHQgZW5kLXBvcyBvcmctZHJpbGwtZmFpbHVyZS1xdWFsaXR5IG9yZy1kcmlsbC1lbnRy aWVzLXBlbmRpbmctcCBvcmctZHJpbGwtZW50cnktcCBvcmctZHJpbGwtcG9wLW5leHQtcGVuZGlu Zy1lbnRyeSBuaWwgZXJyb3IgIlVuZXhwZWN0ZWRseSByYW4gb3V0IG9mIHBlbmRpbmcgZHJpbGwg aXRlbXMiIG9yZy1kcmlsbC1nb3RvLWVudHJ5IG9yZy1kcmlsbC1lbnRyeS1kdWUtcCBtZXNzYWdl ICJFbnRyeSBubyBsb25nZXIgZHVlLCBza2lwcGluZy4uLiIgc2l0LWZvciAwLjMgb3JnLWRyaWxs LWVudHJ5ICJRdWl0IiA6cXVpdCB0aHJvdyAtLWNsLWJsb2NrLW9yZy1kcmlsbC1lbnRyaWVzLS0g ZXFsIGVkaXQgcG9pbnQtbWFya2VyIHNraXAgc2h1ZmZsZS1saXN0IGFwcGVuZCAqb3JnLWRyaWxs LWFnYWluLWVudHJpZXMqICpvcmctZHJpbGwtZG9uZS1lbnRyaWVzKl0gNCkKICBvcmctZHJpbGwt ZW50cmllcyh0KQogIG9yZy1kcmlsbChuaWwgbmlsIHQpCiAgb3JnLWRyaWxsLXJlc3VtZSgpCiAg Y2FsbC1pbnRlcmFjdGl2ZWx5KG9yZy1kcmlsbC1yZXN1bWUgcmVjb3JkIG5pbCkKICBjb21tYW5k LWV4ZWN1dGUob3JnLWRyaWxsLXJlc3VtZSByZWNvcmQpCiAgaGVsbS1NLXgoKQogIGNhbGwtaW50 ZXJhY3RpdmVseShoZWxtLU0teCBuaWwgbmlsKQo= --20cf3071c8d21d542704fd1711f1--