From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Tom Breton (Tehom)" Subject: Re: Advice sought on managing decision alternatives. Date: Sat, 7 Feb 2009 15:46:32 -0500 (EST) Message-ID: <1044.66.30.185.29.1234039592.squirrel@mail.panix.com> References: <20090101170227.C707734803@mail2.panix.com> <1131.66.30.178.137.1230850437.squirrel@mail.panix.com> <1371.66.30.178.137.1232336005.squirrel@mail.panix.com> <1057.24.63.22.246.1233375672.squirrel@mail.panix.com> <1036.24.63.0.170.1233950825.squirrel@mail.panix.com> <60BDFE6D-6B8C-4A23-A737-67DC1F523C79@uva.nl> Mime-Version: 1.0 Content-Type: multipart/mixed;boundary="----=_20090207154632_35974" Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LVu4S-0004Jf-8h for emacs-orgmode@gnu.org; Sat, 07 Feb 2009 15:46:36 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LVu4Q-0004IW-Cd for emacs-orgmode@gnu.org; Sat, 07 Feb 2009 15:46:35 -0500 Received: from [199.232.76.173] (port=60757 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LVu4Q-0004IT-81 for emacs-orgmode@gnu.org; Sat, 07 Feb 2009 15:46:34 -0500 Received: from mail1.panix.com ([166.84.1.72]:57816) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LVu4P-0006Nf-6L for emacs-orgmode@gnu.org; Sat, 07 Feb 2009 15:46:34 -0500 In-Reply-To: <60BDFE6D-6B8C-4A23-A737-67DC1F523C79@uva.nl> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Cc: emacs-orgmode@gnu.org ------=_20090207154632_35974 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi, Carsten. Here is the new patch to org.el and the new org-choose.el A couple of notes: * As we talked about, "decisions" and "chosenness" are now called "choose" everywhere. * I was able to add the library-aware customization we talked about. * I also added new variable `org-todo-normal-interpretations' - see explanation below. * New test file. Essentially the same, with name replacement. * Didn't append the example files; they are all unchanged from before. ******* About `org-todo-normal-interpretations' You said your idea was to make a generally useful system. I noticed that one thing was still hard-coded. It's the part of org-todo that finds the next entry: (memq interpret '(sequence choose)) ... (memq interpret '(type priority)) If I understand your intentions correctly, new TODO modules should always behave like `sequence' in this respect. So the first line now looks at a variable list. I saw two possible approaches to get this list: * Extract the symbol from `org-todo-interpretations'. It's in there, but: * Con: Of the two obvious ways to extract it, neither is good 1. Parse the widget form the way that wid-edit does, which is hairy 2. Have a policy that every module that adds to it has to put the symbol first, which changes the appearance of widgets and invites mistakes. * Add yet another variable to contain all the "normal" interpretation symbols. I have tentatively chosen the second and coded it. I named the variable `org-todo-normal-interpretations' (as always, feel free to suggest a better name). Tom Breton (Tehom) ------=_20090207154632_35974 Content-Type: application/octet-stream; name="org.el.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="org.el.diff" KioqIG9sZC1vcmcuZWwJMjAwOS0wMS0wNCAwMzowMTo1MC4wMDAwMDAwMDAgLTA1MDAKLS0tIG9y Zy5lbAkyMDA5LTAyLTA3IDE1OjEzOjU3LjAwMDAwMDAwMCAtMDUwMAoqKioqKioqKioqKioqKioK KioqIDE0MDksMTQxNCAqKioqCi0tLSAxNDA5LDE0MjYgLS0tLQogICAgOnRhZyAiT3JnIFByb2dy ZXNzIgogICAgOmdyb3VwICdvcmctdGltZSkKICAKKyAoZGVmdmFyIG9yZy10b2RvLWludGVycHJl dGF0aW9uLXdpZGdldHMKKyAgICAnKAorICAgICAgICAoOnRhZyAiU2VxdWVuY2UgKGN5Y2xpbmcg aGl0cyBldmVyeSBzdGF0ZSkiIHNlcXVlbmNlKQorICAgICAgICAoOnRhZyAiVHlwZSAgICAgKGN5 Y2xpbmcgZGlyZWN0bHkgdG8gRE9ORSkiIHR5cGUpKQorICAgIAorICAgICJUaGUgYXZhaWxhYmxl IGludGVycHJldGF0aW9uIHN5bWJvbHMgZm9yIGN1c3RvbWl6aW5nCisgYG9yZy10b2RvLWtleXdv cmRzJy4KKyBJbnRlcmVzdGVkIGxpYnJhcmllcyBzaG91bGQgYWRkIHRvIHRoaXMgbGlzdC4iICkK KyAoZGVmdmFyIG9yZy10b2RvLW5vcm1hbC1pbnRlcnByZXRhdGlvbnMgCisgICAgJyhzZXF1ZW5j ZSkKKyAgICAiIiApCisgCiAgKGRlZmN1c3RvbSBvcmctdG9kby1rZXl3b3JkcyAnKChzZXF1ZW5j ZSAiVE9ETyIgIkRPTkUiKSkKICAgICJMaXN0IG9mIFRPRE8gZW50cnkga2V5d29yZCBzZXF1ZW5j ZXMgYW5kIHRoZWlyIGludGVycHJldGF0aW9uLgogIFxcPG9yZy1tb2RlLW1hcD5UaGlzIGlzIGEg bGlzdCBvZiBzZXF1ZW5jZXMuCioqKioqKioqKioqKioqKgoqKiogMTQ1OCwxNDY1ICoqKioKICAJ CSAgKGNvbnMKICAJCSAgIChjaG9pY2UKICAJCSAgICA6dGFnICJJbnRlcnByZXRhdGlvbiIKISAJ CSAgICAoY29uc3QgOnRhZyAiU2VxdWVuY2UgKGN5Y2xpbmcgaGl0cyBldmVyeSBzdGF0ZSkiIHNl cXVlbmNlKQohIAkJICAgIChjb25zdCA6dGFnICJUeXBlICAgICAoY3ljbGluZyBkaXJlY3RseSB0 byBET05FKSIgdHlwZSkpCiAgCQkgICAocmVwZWF0CiAgCQkgICAgKHN0cmluZyA6dGFnICJLZXl3 b3JkIikpKSkpKQogIAotLS0gMTQ3MCwxNDg3IC0tLS0KICAJCSAgKGNvbnMKICAJCSAgIChjaG9p Y2UKICAJCSAgICA6dGFnICJJbnRlcnByZXRhdGlvbiIKISAJCSAgICAgIDs7UXVpY2sgYW5kIGRp cnR5IHdheSB0byBzZWUKISAJCSAgICAgIDs7YG9yZy10b2RvLWludGVycHJldGF0aW9ucycuICBU aGlzIHRha2VzIHRoZQohIAkJICAgICAgOztwbGFjZSBvZiBpdGVtIGFyZ3VtZW50cwohIAkJICAg ICAgOmNvbnZlcnQtd2lkZ2V0CiEgCQkgICAgICAobGFtYmRhICh3aWRnZXQpCiEgCQkJICh3aWRn ZXQtcHV0IHdpZGdldCAKISAJCQkgICAgOmFyZ3MgKG1hcGNhciAKISAJCQkJICAgICAjJyhsYW1i ZGEgKHgpCiEgCQkJCQkgICh3aWRnZXQtY29udmVydCAKISAJCQkJCSAgICAgKGNvbnMgJ2NvbnN0 IHgpKSkKISAJCQkJICAgICBvcmctdG9kby1pbnRlcnByZXRhdGlvbi13aWRnZXRzKSkKISAJCQkg d2lkZ2V0KSkKICAJCSAgIChyZXBlYXQKICAJCSAgICAoc3RyaW5nIDp0YWcgIktleXdvcmQiKSkp KSkpCiAgCioqKioqKioqKioqKioqKgoqKiogMzAyNSwzMDMxICoqKioKICAgICAgKG9yZy1zZXQt bG9jYWwgJ29yZy1maWxlLXByb3BlcnRpZXMgbmlsKQogICAgICAob3JnLXNldC1sb2NhbCAnb3Jn LWZpbGUtdGFncyBuaWwpCiAgICAgIChsZXQgKChyZSAob3JnLW1ha2Utb3B0aW9ucy1yZWdleHAK ISAJICAgICAgICcoIkNBVEVHT1JZIiAiU0VRX1RPRE8iICJUWVBfVE9ETyIgIlRPRE8iICJDT0xV TU5TIgogIAkJICJTVEFSVFVQIiAiQVJDSElWRSIgIkZJTEVUQUdTIiAiVEFHUyIgIkxJTksiICJQ UklPUklUSUVTIgogIAkJICJDT05TVEFOVFMiICJQUk9QRVJUWSIgIkRSQVdFUlMiICJTRVRVUEZJ TEUiKSkpCiAgCSAgKHNwbGl0cmUgIlsgXHRdKyIpCi0tLSAzMDQ3LDMwNTMgLS0tLQogICAgICAo b3JnLXNldC1sb2NhbCAnb3JnLWZpbGUtcHJvcGVydGllcyBuaWwpCiAgICAgIChvcmctc2V0LWxv Y2FsICdvcmctZmlsZS10YWdzIG5pbCkKICAgICAgKGxldCAoKHJlIChvcmctbWFrZS1vcHRpb25z LXJlZ2V4cAohIAkgICAgICAgJygiQ0FURUdPUlkiICJTRVFfVE9ETyIgIlRZUF9UT0RPIiAiVE9E TyIgIkNIT09TRV9UT0RPIiAiQ09MVU1OUyIKICAJCSAiU1RBUlRVUCIgIkFSQ0hJVkUiICJGSUxF VEFHUyIgIlRBR1MiICJMSU5LIiAiUFJJT1JJVElFUyIKICAJCSAiQ09OU1RBTlRTIiAiUFJPUEVS VFkiICJEUkFXRVJTIiAiU0VUVVBGSUxFIikpKQogIAkgIChzcGxpdHJlICJbIFx0XSsiKQoqKioq KioqKioqKioqKioKKioqIDMwNTIsMzA1NyAqKioqCi0tLSAzMDc0LDMwODEgLS0tLQogIAkgICAg ICAocHVzaCAoY29ucyAnc2VxdWVuY2UgKG9yZy1zcGxpdC1zdHJpbmcgdmFsdWUgc3BsaXRyZSkp IGt3ZHMpKQogIAkgICAgICgoZXF1YWwga2V5ICJUWVBfVE9ETyIpCiAgCSAgICAgIChwdXNoIChj b25zICd0eXBlIChvcmctc3BsaXQtc3RyaW5nIHZhbHVlIHNwbGl0cmUpKSBrd2RzKSkKKyAJICAg ICAoKGVxdWFsIGtleSAiQ0hPT1NFX1RPRE8iKQorIAkgICAgICAocHVzaCAoY29ucyAnY2hvb3Nl IChvcmctc3BsaXQtc3RyaW5nIHZhbHVlIHNwbGl0cmUpKSBrd2RzKSkKICAJICAgICAoKGVxdWFs IGtleSAiVEFHUyIpCiAgCSAgICAgIChzZXRxIHRhZ3MgKGFwcGVuZCB0YWdzIChvcmctc3BsaXQt c3RyaW5nIHZhbHVlIHNwbGl0cmUpKSkpCiAgCSAgICAgKChlcXVhbCBrZXkgIkNPTFVNTlMiKQoq KioqKioqKioqKioqKioKKioqIDMxMzMsMzEzOCAqKioqCi0tLSAzMTU3LDMxNjggLS0tLQogICAg ICAgIChzZXRxIGt3ZHMgKG5yZXZlcnNlIGt3ZHMpKQogICAgICAgIChsZXQgKGludGVyIGt3cyBr dykKICAJKHdoaWxlIChzZXRxIGt3cyAocG9wIGt3ZHMpKQorIAkgIChsZXQKKyAJICAgICAoKGt3 cworIAkJIChvcgorIAkJICAgIChydW4taG9vay13aXRoLWFyZ3MtdW50aWwtc3VjY2VzcworIAkJ ICAgICAgICdvcmctdG9kby1zZXR1cC1maWx0ZXItaG9vayBrd3MpIAorIAkJICAgIGt3cykpKQog IAkgICAgIChzZXRxIGludGVyIChwb3Aga3dzKSBzZXAgKG1lbWJlciAifCIga3dzKQogIAkJa3dz MCAoZGVsZXRlICJ8IiAoY29weS1zZXF1ZW5jZSBrd3MpKQogIAkJa3dzYSBuaWwKKioqKioqKioq KioqKioqCioqKiAzMTU0LDMxNjAgKioqKgogIAkJCQkgICAgICAnKCg6ZW5kZ3JvdXApKSkpCiAg CQlodyAoY2FyIGt3czEpCiAgCQlkd3MgKGlmIHNlcCAob3JnLXJlbW92ZS1rZXl3b3JkLWtleXMg KGNkciBzZXApKSAobGFzdCBrd3MxKSkKISAJCXRhaWwgKGxpc3QgaW50ZXIgaHcgKGNhciBkd3Mp IChvcmctbGFzdCBkd3MpKSkKICAJICAoYWRkLXRvLWxpc3QgJ29yZy10b2RvLWhlYWRzIGh3ICdh cHBlbmQpCiAgCSAgKHB1c2gga3dzMSBvcmctdG9kby1zZXRzKQogIAkgIChzZXRxIG9yZy1kb25l LWtleXdvcmRzIChhcHBlbmQgb3JnLWRvbmUta2V5d29yZHMgZHdzIG5pbCkpCi0tLSAzMTg0LDMx OTAgLS0tLQogIAkJCQkgJygoOmVuZGdyb3VwKSkpKQogIAkJaHcgKGNhciBrd3MxKQogIAkJZHdz IChpZiBzZXAgKG9yZy1yZW1vdmUta2V5d29yZC1rZXlzIChjZHIgc2VwKSkgKGxhc3Qga3dzMSkp CiEgCQl0YWlsIChsaXN0IGludGVyIGh3IChjYXIgZHdzKSAob3JnLWxhc3QgZHdzKSkpKQogIAkg IChhZGQtdG8tbGlzdCAnb3JnLXRvZG8taGVhZHMgaHcgJ2FwcGVuZCkKICAJICAocHVzaCBrd3Mx IG9yZy10b2RvLXNldHMpCiAgCSAgKHNldHEgb3JnLWRvbmUta2V5d29yZHMgKGFwcGVuZCBvcmct ZG9uZS1rZXl3b3JkcyBkd3MgbmlsKSkKKioqKioqKioqKioqKioqCioqKiA0OTM0LDQ5NDQgKioq KgogICAgICAgIChvcmctYmFjay10by1oZWFkaW5nKQogICAgICAgIChvdXRsaW5lLXByZXZpb3Vz LWhlYWRpbmcpCiAgICAgICAgKGxvb2tpbmctYXQgb3JnLXRvZG8tbGluZS1yZWdleHApKQogICAg ICAoaWYgKG9yIGFyZwogIAkgICAgKG5vdCAobWF0Y2gtYmVnaW5uaW5nIDIpKQogIAkgICAgKG1l bWJlciAobWF0Y2gtc3RyaW5nIDIpIG9yZy1kb25lLWtleXdvcmRzKSkKISAJKGluc2VydCAoY2Fy IG9yZy10b2RvLWtleXdvcmRzLTEpICIgIikKISAgICAgICAoaW5zZXJ0IChtYXRjaC1zdHJpbmcg MikgIiAiKSkKICAgICAgKHdoZW4gb3JnLXByb3ZpZGUtdG9kby1zdGF0aXN0aWNzCiAgICAgICAg KG9yZy11cGRhdGUtcGFyZW50LXRvZG8tc3RhdGlzdGljcykpKSkKICAKLS0tIDQ5NjQsNDk4MyAt LS0tCiAgICAgICAgKG9yZy1iYWNrLXRvLWhlYWRpbmcpCiAgICAgICAgKG91dGxpbmUtcHJldmlv dXMtaGVhZGluZykKICAgICAgICAobG9va2luZy1hdCBvcmctdG9kby1saW5lLXJlZ2V4cCkpCisg ICAgIChsZXQqCisgICAgICAgICgobmV3LW1hcmsteAogIAkgICAoaWYgKG9yIGFyZwogIAkJICAo bm90IChtYXRjaC1iZWdpbm5pbmcgMikpCiAgCQkgIChtZW1iZXIgKG1hdGNoLXN0cmluZyAyKSBv cmctZG9uZS1rZXl3b3JkcykpCiEgCSAgICAgIChjYXIgb3JnLXRvZG8ta2V5d29yZHMtMSkKISAJ ICAgICAgKG1hdGNoLXN0cmluZyAyKSkpCiEgCSAgKG5ldy1tYXJrCiEgCSAgICAgKG9yCiEgCQko cnVuLWhvb2std2l0aC1hcmdzLXVudGlsLXN1Y2Nlc3MKISAJCSAgICdvcmctdG9kby1nZXQtZGVm YXVsdC1ob29rIG5ldy1tYXJrLXggbmlsKQohIAkJbmV3LW1hcmsteCkpKQohICAgICAgICAoaW5z ZXJ0IG5ldy1tYXJrICIgIikpCiEgICAgICAKICAgICAgKHdoZW4gb3JnLXByb3ZpZGUtdG9kby1z dGF0aXN0aWNzCiAgICAgICAgKG9yZy11cGRhdGUtcGFyZW50LXRvZG8tc3RhdGlzdGljcykpKSkK ICAKKioqKioqKioqKioqKioqCioqKiA4MTkwLDgxOTUgKioqKgotLS0gODIyOSw4MjQ2IC0tLS0K ICA6ZnJvbSAgcHJldmlvdXMgc3RhdGUgKGtleXdvcmQgYXMgYSBzdHJpbmcpLCBvciBuaWwKICA6 dG8gICAgbmV3IHN0YXRlIChrZXl3b3JkIGFzIGEgc3RyaW5nKSwgb3IgbmlsIikKICAKKyAoZGVm dmFyIG9yZy10b2RvLXNldHVwLWZpbHRlci1ob29rIG5pbCAKKyAgICAiSG9vayBmb3IgZnVuY3Rp b25zIHRoYXQgcHJlLWZpbHRlciB0b2RvIHNwZWNzLgorIAorIEVhY2ggZnVuY3Rpb24gdGFrZXMg YSB0b2RvIHNwZWMgYW5kIHJldHVybnMgZWl0aGVyIGBuaWwnIG9yIHRoZSBzcGVjCisgdHJhbnNm b3JtZWQgaW50byBjYW5vbmljYWwgZm9ybS4iICkKKyAKKyAoZGVmdmFyIG9yZy10b2RvLWdldC1k ZWZhdWx0LWhvb2sgbmlsCisgICAgIkhvb2sgZm9yIGZ1bmN0aW9ucyB0aGF0IGdldCBhIGRlZmF1 bHQgaXRlbSBmb3IgdG9kby4KKyAKKyBFYWNoIGZ1bmN0aW9uIHRha2VzIGFyZ3VtZW50cyAoTkVX LU1BUksgT0xELU1BUkspIGFuZCByZXR1cm5zIGVpdGhlcgorIGBuaWwnIG9yIGEgc3RyaW5nIHRv IGJlIHVzZWQgZm9yIHRoZSB0b2RvIG1hcmsuIiApCisgCiAgKGRlZnZhciBvcmctYWdlbmRhLWhl YWRsaW5lLXNuYXBzaG90LWJlZm9yZS1yZXBlYXQpCiAgKGRlZnVuIG9yZy10b2RvICgmb3B0aW9u YWwgYXJnKQogICAgIkNoYW5nZSB0aGUgVE9ETyBzdGF0ZSBvZiBhbiBpdGVtLgoqKioqKioqKioq KioqKioKKioqIDgyODUsODI5MSAqKioqCiAgCQkgICAgICgobnVsbCBtZW1iZXIpIChvciBoZWFk IChjYXIgb3JnLXRvZG8ta2V5d29yZHMtMSkpKQogIAkJICAgICAoKGVxdWFsIHRoaXMgZmluYWwt ZG9uZS13b3JkKSBuaWwpIDs7IC0+IG1ha2UgZW1wdHkKICAJCSAgICAgKChudWxsIHRhaWwpIG5p bCkgOzsgLT4gZmlyc3QgZW50cnkKISAJCSAgICAgKChlcSBpbnRlcnByZXQgJ3NlcXVlbmNlKQog IAkJICAgICAgKGNhciB0YWlsKSkKICAJCSAgICAgKChtZW1xIGludGVycHJldCAnKHR5cGUgcHJp b3JpdHkpKQogIAkJICAgICAgKGlmIChlcSB0aGlzLWNvbW1hbmQgbGFzdC1jb21tYW5kKQotLS0g ODMzNiw4MzQyIC0tLS0KICAJCSAgICAgKChudWxsIG1lbWJlcikgKG9yIGhlYWQgKGNhciBvcmct dG9kby1rZXl3b3Jkcy0xKSkpCiAgCQkgICAgICgoZXF1YWwgdGhpcyBmaW5hbC1kb25lLXdvcmQp IG5pbCkgOzsgLT4gbWFrZSBlbXB0eQogIAkJICAgICAoKG51bGwgdGFpbCkgbmlsKSA7OyAtPiBm aXJzdCBlbnRyeQohIAkJICAgICAoKG1lbXEgaW50ZXJwcmV0IG9yZy10b2RvLW5vcm1hbC1pbnRl cnByZXRhdGlvbnMpCiAgCQkgICAgICAoY2FyIHRhaWwpKQogIAkJICAgICAoKG1lbXEgaW50ZXJw cmV0ICcodHlwZSBwcmlvcml0eSkpCiAgCQkgICAgICAoaWYgKGVxIHRoaXMtY29tbWFuZCBsYXN0 LWNvbW1hbmQpCioqKioqKioqKioqKioqKgoqKiogODI5NCw4Mjk5ICoqKioKLS0tIDgzNDUsODM1 NCAtLS0tCiAgCQkJICAgIChvciBkb25lLXdvcmQgKGNhciBvcmctZG9uZS1rZXl3b3JkcykpCiAg CQkJICBuaWwpKSkKICAJCSAgICAgKHQgbmlsKSkpCisgCSAgICAgKHN0YXRlIChvciAKKyAJCSAg ICAgICAocnVuLWhvb2std2l0aC1hcmdzLXVudGlsLXN1Y2Nlc3MKKyAJCQkgICdvcmctdG9kby1n ZXQtZGVmYXVsdC1ob29rIHN0YXRlIGxhc3Qtc3RhdGUpIAorIAkJICAgICAgIHN0YXRlKSkKICAJ ICAgICAobmV4dCAoaWYgc3RhdGUgKGNvbmNhdCAiICIgc3RhdGUgIiAiKSAiICIpKQogIAkgICAg IChjaGFuZ2UtcGxpc3QgKGxpc3QgOnR5cGUgJ3RvZG8tc3RhdGUtY2hhbmdlIDpmcm9tIHRoaXMg OnRvIHN0YXRlCiAgCQkJCSA6cG9zaXRpb24gc3RhcnRwb3MpKQo= ------=_20090207154632_35974 Content-Type: application/octet-stream; name="org-choose.el" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="org-choose.el" Ozs7XyBvcmctY2hvb3NlLmVsIC0tLSBkZWNpc2lvbiBtYW5hZ2VtZW50IGZvciBvcmctbW9kZQoK Ozs7Xy4gSGVhZGVycwo7OztfICwgTGljZW5zZQo7OyBDb3B5cmlnaHQgKEMpIDIwMDkgIFRvbSBC cmV0b24gKFRlaG9tKQoKOzsgQXV0aG9yOiBUb20gQnJldG9uIChUZWhvbSkKOzsgS2V5d29yZHM6 IAoKOzsgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vciBtb2RpZnkKOzsgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKOzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyIHZlcnNpb24gMiwgb3IgKGF0IHlvdXIgb3B0aW9uKQo7OyBhbnkgbGF0ZXIg dmVyc2lvbi4KCjs7IFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAo7OyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgo7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCjs7IEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgo7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQo7OyBhbG9uZyB3aXRoIEdOVSBF bWFjczsgc2VlIHRoZSBmaWxlIENPUFlJTkcuICBJZiBub3QsIHdyaXRlIHRvCjs7IHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwK OzsgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCgo7OztfICwgQ29tbWVudGFyeToKCjs7IAoK Cjs7O18gLCBSZXF1aXJlcwoKKHJlcXVpcmUgJ29yZykKKGV2YWwtd2hlbi1jb21waWxlCiAgIChy ZXF1aXJlICdjbCkpCgo7OztfLiBCb2R5Cjs7O18gLCBUaGUgdmFyaWFibGVzCgooZGVmc3RydWN0 IChvcmctY2hvb3NlLW1hcmstZGF0YS4gKDp0eXBlIGxpc3QpKQogICAiVGhlIGZvcm1hdCBvZiBh biBlbnRyeSBpbiBvcmctY2hvb3NlLW1hcmstZGF0YS4KSW5kZXhlcyBhcmUgMC1iYXNlZCBvciBg bmlsJy4KIgogICBrZXl3b3JkCiAgIGJvdC1sb3dlci1yYW5nZQogICB0b3AtdXBwZXItcmFuZ2UK ICAgcmFuZ2UtbGVuZ3RoCiAgIHN0YXRpYy1kZWZhdWx0CiAgIGFsbC1rZXl3b3JkcykKCihkZWZ2 YXIgb3JnLWNob29zZS1tYXJrLWRhdGEgCiAgICgpCiAgICJBbGlzdCBvZiBpbmZvcm1hdGlvbiBm b3IgY2hvb3NlIG1hcmtzLgoKRWFjaCBlbnRyeSBpcyBhbiBgb3JnLWNob29zZS1tYXJrLWRhdGEu JyIgKQoobWFrZS12YXJpYWJsZS1idWZmZXItbG9jYWwgJ29yZy1jaG9vc2UtbWFyay1kYXRhKQo7 OztfICwgRm9yIHNldHVwCjs7O18gIC4gb3JnLWNob29zZS1maWx0ZXItb25lCgooZGVmdW4gb3Jn LWNob29zZS1maWx0ZXItb25lIChpKQogICAiUmV0dXJuIGEgbGlzdCBvZgogKiBhIGNhbm9uaXpl ZCB2ZXJzaW9uIG9mIHRoZSBzdHJpbmcKICogb3B0aW9uYWxseSBvbmUgc3ltYm9sIgoKICAgKGlm CiAgICAgIChub3QKCSAoc3RyaW5nLW1hdGNoICIoLiopIiBpKSkKICAgICAgKGxpc3QgaSBpKQog ICAgICAobGV0KiAKCSAoCgkgICAgKGVuZC10ZXh0IChtYXRjaC1iZWdpbm5pbmcgMCkpCgkgICAg KHZhbmlsbGEtdGV4dCAoc3Vic3RyaW5nIGkgMCBlbmQtdGV4dCkpCgkgICAgOztHZXQgdGhlIHBh cmVudGhlc2l6ZWQgcGFydC4KCSAgICAobWF0Y2ggKG1hdGNoLXN0cmluZyAwIGkpKQoJICAgIDs7 UmVtb3ZlIHRoZSBwYXJlbnRoZXNlcy4KCSAgICAoYXJncyAoc3Vic3RyaW5nIG1hdGNoIDEgLTEp KQoJICAgIDs7U3BsaXQgaXQKCSAgICAoYXJnbGlzdAoJICAgICAgIChsZXQKCQkgICgoYXJnbGlz dC14IChzcGxpdC1zdHJpbmcgYXJncyAiLCIpKSkKCQkgIDs7V2hlbiBzdHJpbmcgc3RhcnRzIHdp dGggIiwiIGBzcGxpdC1zdHJpbmcnIGRvZXNuJ3QKCQkgIDs7bWFrZSBhIGZpcnN0IGFyZywgc28g aW4gdGhhdCBjYXNlIG1ha2Ugb25lCgkJICA7O21hbnVhbGx5LgoJCSAgKGlmIAoJCSAgICAgKHN0 cmluZy1tYXRjaCAiXiwiIGFyZ3MpCgkJICAgICAoY29ucyBuaWwgYXJnbGlzdC14KQoJCSAgICAg YXJnbGlzdC14KSkpCgkgICAgKGRlY2lzaW9uLWFyZyAoc2Vjb25kIGFyZ2xpc3QpKQoJICAgICh0 eXBlCgkgICAgICAgKGNvbmQKCQkgICgoc3RyaW5nPSBkZWNpc2lvbi1hcmcgIjAiKQoJCSAgICAg J2RlZmF1bHQtbWFyaykKCQkgICgoc3RyaW5nPSBkZWNpc2lvbi1hcmcgIisiKQoJCSAgICAgJ3Rv cC11cHBlci1yYW5nZSkKCQkgICgoc3RyaW5nPSBkZWNpc2lvbi1hcmcgIi0iKQoJCSAgICAgJ2Jv dC1sb3dlci1yYW5nZSkKCQkgICh0IG5pbCkpKQoJICAgICh2YW5pbGxhLWFyZyAoZmlyc3QgYXJn bGlzdCkpCgkgICAgKHZhbmlsbGEtbWFyawoJICAgICAgIChpZiB2YW5pbGxhLWFyZwoJCSAgKGNv bmNhdCB2YW5pbGxhLXRleHQgIigidmFuaWxsYS1hcmciKSIpCgkJICB2YW5pbGxhLXRleHQpKSkK CSAoaWYgdHlwZQoJICAgIChsaXN0IHZhbmlsbGEtdGV4dCB2YW5pbGxhLW1hcmsgdHlwZSkKCSAg ICAobGlzdCB2YW5pbGxhLXRleHQgdmFuaWxsYS1tYXJrKSkpKSkKCjs7O18gIC4gb3JnLWNob29z ZS1zZXR1cC12YXJzCihkZWZ1biBvcmctY2hvb3NlLXNldHVwLXZhcnMgKGJvdC1sb3dlci1yYW5n ZSB0b3AtdXBwZXItcmFuZ2UKCQkJCSAgIHN0YXRpYy1kZWZhdWx0IG51bS1pdGVtcyBhbGwtbWFy ay10ZXh0cykKICAgIkFkZCB0byBvcmctY2hvb3NlLW1hcmstZGF0YSBhY2NvcmRpbmcgdG8gYXJn dW1lbnRzIgoKICAgKGxldCoKICAgICAgKAoJICh0YWlsCgkgICAgOztJZiB0aGVyZSdzIG5vIGJv dC1sb3dlci1yYW5nZSBvciBubyBkZWZhdWx0LCB3ZSBkb24ndAoJICAgIDs7aGF2ZSByYW5nZXMu CgkgICAgKGNkcgoJICAgICAgIChpZiAoYW5kIHN0YXRpYy1kZWZhdWx0IGJvdC1sb3dlci1yYW5n ZSkKCQkgIChsZXQqCgkJICAgICAoCgkJCTs7SWYgdGhlcmUncyBubyB0b3AtdXBwZXItcmFuZ2Us IHVzZSB0aGUgbGFzdAoJCQk7O2l0ZW0uCgkJCSh0b3AtdXBwZXItcmFuZ2UKCQkJICAgKG9yIHRv cC11cHBlci1yYW5nZSAoMS0gbnVtLWl0ZW1zKSkpCgkJCShsb3dlci1yYW5nZS1sZW5ndGggCgkJ CSAgICgxKyAoLSBzdGF0aWMtZGVmYXVsdCBib3QtbG93ZXItcmFuZ2UpKSkKCQkJKHVwcGVyLXJh bmdlLWxlbmd0aCAKCQkJICAgKC0gdG9wLXVwcGVyLXJhbmdlIHN0YXRpYy1kZWZhdWx0KSkKCQkJ KHJhbmdlLWxlbmd0aCAKCQkJICAgKG1pbiB1cHBlci1yYW5nZS1sZW5ndGggbG93ZXItcmFuZ2Ut bGVuZ3RoKSkpCgoKCQkgICAgIChtYWtlLW9yZy1jaG9vc2UtbWFyay1kYXRhLgoJCQk6a2V5d29y ZCBuaWwKCQkJOmJvdC1sb3dlci1yYW5nZSBib3QtbG93ZXItcmFuZ2UKCQkJOnRvcC11cHBlci1y YW5nZSB0b3AtdXBwZXItcmFuZ2UKCQkJOnJhbmdlLWxlbmd0aCAgICByYW5nZS1sZW5ndGgKCQkJ OnN0YXRpYy1kZWZhdWx0IHN0YXRpYy1kZWZhdWx0CgkJCTphbGwta2V5d29yZHMgYWxsLW1hcmst dGV4dHMpKQoKCQkgIChtYWtlLW9yZy1jaG9vc2UtbWFyay1kYXRhLgoJCSAgICAgOmtleXdvcmQg bmlsCgkJICAgICA6Ym90LWxvd2VyLXJhbmdlIG5pbAoJCSAgICAgOnRvcC11cHBlci1yYW5nZSBu aWwKCQkgICAgIDpyYW5nZS1sZW5ndGggICAgbmlsCgkJICAgICA6c3RhdGljLWRlZmF1bHQgKG9y IHN0YXRpYy1kZWZhdWx0IDApCgkJICAgICA6YWxsLWtleXdvcmRzIGFsbC1tYXJrLXRleHRzKSkp KSkKCiAgICAgIChkb2xpc3QgKHRleHQgYWxsLW1hcmstdGV4dHMpCgkgKHB1c2huZXcgKGNvbnMg dGV4dCB0YWlsKQoJICAgIG9yZy1jaG9vc2UtbWFyay1kYXRhCgkgICAgOnRlc3QKCSAgICAjJyhs YW1iZGEgKGEgYikKCQkgKGVxdWFsIChjYXIgYSkgKGNhciBiKSkpKSkpKQoKCgoKOzs7XyAgLiBv cmctY2hvb3NlLWZpbHRlci10YWlsCihkZWZ1biBvcmctY2hvb3NlLWZpbHRlci10YWlsIChyYXcp CiAgICJSZXR1cm4gYSB0cmFuc2xhdGlvbiBvZiBSQVcgdG8gdmFuaWxsYSBhbmQgc2V0IGFwcHJv cHJpYXRlCmJ1ZmZlci1sb2NhbCB2YXJpYWJsZXMuIAoKUkFXIGlzIGEgbGlzdCBvZiBzdHJpbmdz IHJlcHJlc2VudGluZyB0aGUgaW5wdXQgdGV4dCBvZiBhIGNob29zZQppbnRlcnByZXRhdGlvbi4i CiAgIChsZXQKICAgICAgKCh2YW5pbGxhLWxpc3QgbmlsKQoJIChhbGwtbWFyay10ZXh0cyBuaWwp CgkgKGluZGV4IDApCgkgYm90LWxvd2VyLXJhbmdlIHRvcC11cHBlci1yYW5nZSByYW5nZS1sZW5n dGggc3RhdGljLWRlZmF1bHQpCiAgICAgIChkb2xpc3QgKGkgcmF3KQoJIChkZXN0cnVjdHVyaW5n LWJpbmQKCSAgICAodmFuaWxsYS10ZXh0IHZhbmlsbGEtbWFyayAmb3B0aW9uYWwgdHlwZSkKCSAg ICAob3JnLWNob29zZS1maWx0ZXItb25lIGkpCgkgICAgKGNvbmQKCSAgICAgICAoKGVxIHR5cGUg J2JvdC1sb3dlci1yYW5nZSkKCQkgIChzZXRxIGJvdC1sb3dlci1yYW5nZSBpbmRleCkpCgkgICAg ICAgKChlcSB0eXBlICd0b3AtdXBwZXItcmFuZ2UpCgkJICAoc2V0cSB0b3AtdXBwZXItcmFuZ2Ug aW5kZXgpKQoJICAgICAgICgoZXEgdHlwZSAnZGVmYXVsdC1tYXJrKQoJCSAgKHNldHEgc3RhdGlj LWRlZmF1bHQgaW5kZXgpKSkKCSAgICAoaW5jZiBpbmRleCkKCSAgICAocHVzaCB2YW5pbGxhLXRl eHQgYWxsLW1hcmstdGV4dHMpCgkgICAgKHB1c2ggdmFuaWxsYS1tYXJrIHZhbmlsbGEtbGlzdCkp KQoKICAgICAgKG9yZy1jaG9vc2Utc2V0dXAtdmFycyBib3QtbG93ZXItcmFuZ2UgdG9wLXVwcGVy LXJhbmdlCgkgc3RhdGljLWRlZmF1bHQgaW5kZXggKHJldmVyc2UgYWxsLW1hcmstdGV4dHMpKSAK ICAgICAgKG5yZXZlcnNlIHZhbmlsbGEtbGlzdCkpKQoKOzs7XyAgLiBvcmctY2hvb3NlLXNldHVw LWZpbHRlcgoKKGRlZnVuIG9yZy1jaG9vc2Utc2V0dXAtZmlsdGVyIChyYXcpCiAgICJBIHNldHVw IGZpbHRlciBmb3IgY2hvb3NlIGludGVycHJldGF0aW9ucy4iCiAgICh3aGVuIChlcSAoY2FyIHJh dykgJ2Nob29zZSkKICAgICAgKGNvbnMKCSAnY2hvb3NlCgkgKG9yZy1jaG9vc2UtZmlsdGVyLXRh aWwgKGNkciByYXcpKSkpKQoKOzs7XyAgLiBvcmctY2hvb3NlLWNvbmZvcm0tYWZ0ZXItcHJvbW90 aW9uCihkZWZ1biBvcmctY2hvb3NlLWNvbmZvcm0tYWZ0ZXItcHJvbW90aW9uIChlbnRyeS1wb3Mg a2V5d29yZHMgaGlnaGVzdC1vay1peCkKICAgIiIKICAgCiAgICh1bmxlc3MKICAgICAgOztTa2lw IHRoZSBlbnRyeSB0aGF0IHRyaWdnZXJlZCB0aGlzIGJ5IHNraXBwaW5nIGFueSBlbnRyeSB3aXRo CiAgICAgIDs7dGhlIHNhbWUgc3RhcnRpbmcgcG9zaXRpb24uICBCb3RoIG1hcCBhbmQgcGxpc3Qg dXNlIHRoZSBzdGFydAogICAgICA7O29mIHRoZSBoZWFkZXIgbGluZSBhcyB0aGUgcG9zaXRpb24s IHNvIHdlIGNhbiBqdXN0IGNvbXBhcmUKICAgICAgOzt0aGVtIHdpdGggYD0nCiAgICAgICg9IChw b2ludCkgZW50cnktcG9zKQogICAgICAobGV0CgkgKChpeAoJICAgICAob3JnLWNob29zZS1nZXQt ZW50cnktaW5kZXgga2V5d29yZHMpKSkKCSA7O0lmIHRoZSBpbmRleCBvZiB0aGUgZW50cnkgZXhj ZWVkcyB0aGUgaGlnaGVzdCBhbGxvd2FibGUKCSA7O2luZGV4LCBjaGFuZ2UgaXQgdG8gdGhhdC4K CSAod2hlbiAoYW5kIGl4IAoJCSAgKD4gaXggaGlnaGVzdC1vay1peCkpCgkgICAgKG9yZy10b2Rv IAoJICAgICAgIChudGggaGlnaGVzdC1vay1peCBrZXl3b3JkcykpKSkpKQo7OztfICAuIG9yZy1j aG9vc2UtY29uZm9ybS1hZnRlci1kZW1vdGlvbgooZGVmdW4gb3JnLWNob29zZS1jb25mb3JtLWFm dGVyLWRlbW90aW9uIChlbnRyeS1wb3Mga2V5d29yZHMKCQkJCQkgICAgICAgcmFpc2UtdG8taXgK CQkJCQkgICAgICAgb2xkLWhpZ2hlc3Qtb2staXgpIAogICAiIgogICAodW5sZXNzCiAgICAgIDs7 U2tpcCB0aGUgZW50cnkgdGhhdCB0cmlnZ2VyZWQgdGhpcy4KICAgICAgKD0gKHBvaW50KSBlbnRy eS1wb3MpCiAgICAgIChsZXQKCSAoKGl4CgkgICAgIChvcmctY2hvb3NlLWdldC1lbnRyeS1pbmRl eCBrZXl3b3JkcykpKQoJIDs7SWYgdGhlIGluZGV4IG9mIHRoZSBlbnRyeSB3YXMgYXQgb3IgYWJv dmUgdGhlIG9sZCBhbGxvd2FibGUKCSA7O3Bvc2l0aW9uLCBjaGFuZ2UgaXQgdG8gdGhlIG5ldyBt aXJyb3IgcG9zaXRpb24gaWYgdGhlcmUgaXMKCSA7O29uZS4KCSAod2hlbiAoYW5kIAoJCSAgaXgg CgkJICByYWlzZS10by1peAoJCSAgKD49IGl4IG9sZC1oaWdoZXN0LW9rLWl4KSkKCSAgICAob3Jn LXRvZG8gCgkgICAgICAgKG50aCByYWlzZS10by1peCBrZXl3b3JkcykpKSkpKQoKOzs7XyAsIG9y Zy1jaG9vc2Uta2VlcC1zZW5zaWJsZSAodGhlIHRyaWdnZXItaG9vayBmdW5jdGlvbikKKGRlZnVu IG9yZy1jaG9vc2Uta2VlcC1zZW5zaWJsZSAoY2hhbmdlLXBsaXN0KQogICAiIgoKICAgKGxldCoK ICAgICAgKCAgKGZyb20gKHBsaXN0LWdldCBjaGFuZ2UtcGxpc3QgOmZyb20pKQoJICh0byAocGxp c3QtZ2V0IGNoYW5nZS1wbGlzdCA6dG8pKQoJIChlbnRyeS1wb3MgCgkgICAgKHNldC1tYXJrZXIK CSAgICAgICAobWFrZS1tYXJrZXIpCgkgICAgICAgKHBsaXN0LWdldCBjaGFuZ2UtcGxpc3QgOnBv c2l0aW9uKSkpCgkgKGt3ZC1kYXRhCgkgICAgKGFzc29jIHRvIG9yZy10b2RvLWt3ZC1hbGlzdCkp KQogICAgICAod2hlbgoJIChlcSAobnRoIDEga3dkLWRhdGEpICdjaG9vc2UpCgkgKGxldCoKCSAg ICAoCgkgICAgICAgKGRhdGEKCQkgIChhc3NvYyB0byBvcmctY2hvb3NlLW1hcmstZGF0YSkpCgkg ICAgICAgKGtleXdvcmRzCgkJICAob3JnLWNob29zZS1tYXJrLWRhdGEuLWFsbC1rZXl3b3JkcyBk YXRhKSkKCSAgICAgICAob2xkLWluZGV4CgkJICAob3JnLWNob29zZS1nZXQtaW5kZXgtaW4ta2V5 d29yZHMKCQkgICAgIGZyb20gCgkJICAgICBrZXl3b3JkcykpCgkgICAgICAgKG5ldy1pbmRleAoJ CSAgKG9yZy1jaG9vc2UtZ2V0LWluZGV4LWluLWtleXdvcmRzCgkJICAgICB0byAKCQkgICAgIGtl eXdvcmRzKSkKCSAgICAgICAoaGlnaGVzdC1vay1peAoJCSAgKG9yZy1jaG9vc2UtaGlnaGVzdC1v dGhlci1vawoJCSAgICAgbmV3LWluZGV4CgkJICAgICBkYXRhKSkKCSAgICAgICAoZnVuY2RhdGEK CQkgIChjb25kCgkJICAgICA7O1RoZSBlbnRyeSBkb2Vzbid0IHBhcnRpY2lwYXRlIGluIGNvbmZv cm1hbmNlLAoJCSAgICAgOztzbyBnaXZlIGBuaWwnIHdoaWNoIGRvZXMgbm90aGluZy4KCQkgICAg ICgobm90IGhpZ2hlc3Qtb2staXgpIG5pbCkKCQkgICAgIDs7VGhlIGVudHJ5IHdhcyBjcmVhdGVk IG9yIHByb21vdGVkCgkJICAgICAoKG9yCgkJCSAobm90IG9sZC1pbmRleCkKCQkJICg+IG5ldy1p bmRleCBvbGQtaW5kZXgpKQoJCQkobGlzdAoJCQkgICAjJ29yZy1jaG9vc2UtY29uZm9ybS1hZnRl ci1wcm9tb3Rpb24KCQkJICAgZW50cnktcG9zIGtleXdvcmRzIAoJCQkgICBoaWdoZXN0LW9rLWl4 KSkKCQkgICAgICh0CTs7T3RoZXJ3aXNlIHRoZSBlbnRyeSB3YXMgZGVtb3RlZC4KCQkJKGxldAoJ CQkgICAoCgkJCSAgICAgIChyYWlzZS10by1peAoJCQkJIChtaW4KCQkJCSAgICBoaWdoZXN0LW9r LWl4CgkJCQkgICAgKG9yZy1jaG9vc2UtbWFyay1kYXRhLi1zdGF0aWMtZGVmYXVsdAoJCQkJICAg ICAgIGRhdGEpKSkKCQkJICAgICAgKG9sZC1oaWdoZXN0LW9rLWl4CgkJCQkgKG9yZy1jaG9vc2Ut aGlnaGVzdC1vdGhlci1vawoJCQkJICAgIG9sZC1pbmRleAoJCQkJICAgIGRhdGEpKSkKCQkJICAg CgkJCSAgIChsaXN0CgkJCSAgICAgICMnb3JnLWNob29zZS1jb25mb3JtLWFmdGVyLWRlbW90aW9u IAoJCQkgICAgICBlbnRyeS1wb3MgCgkJCSAgICAgIGtleXdvcmRzCgkJCSAgICAgIHJhaXNlLXRv LWl4CgkJCSAgICAgIG9sZC1oaWdoZXN0LW9rLWl4KSkpKSkpCgkgICAgCgkgICAgKGlmIGZ1bmNk YXRhCgkgICAgICAgOztUaGUgZnVubnktbG9va2luZyBuYW1lcyBhcmUgdG8gbWFrZSB2YXJpYWJs ZSBjYXB0dXJlCgkgICAgICAgOzt1bmxpa2VseS4gIChQb29yLW1hbidzIGxleGljYWwgYmluZGlu Z3MpLgoJICAgICAgIChkZXN0cnVjdHVyaW5nLWJpbmQgKGZ1bmMtZDQ3MyAuIGFyZ3MtNDZrKSBm dW5jZGF0YQoJCSAgKGxldAoJCSAgICAgKChtYXAtb3Zlci1lbnRyaWVzCgkJCSAob3JnLWNob29z ZS1nZXQtZm4tbWFwLWdyb3VwKSkKCQkJOztXZSBtYXkgY2FsbCBgb3JnLXRvZG8nLCBzbyBsZXQg dmFyaW91cyBob29rcwoJCQk7O2BuaWwnIHNvIHdlIGRvbid0IGNhdXNlIGxvb3BzLgoJCQlvcmct YWZ0ZXItdG9kby1zdGF0ZS1jaGFuZ2UtaG9vawoJCQlvcmctdHJpZ2dlci1ob29rIAoJCQlvcmct YmxvY2tlci1ob29rIAoJCQlvcmctdG9kby1nZXQtZGVmYXVsdC1ob29rCgkJCTs7QWxzbyBsZXQg dGhpcyBhbGlzdCBgbmlsJyBzbyB3ZSBkb24ndCBsb2cKCQkJOztzZWNvbmRhcnkgdHJhbnNpdGlv bnMuCgkJCW9yZy10b2RvLWxvZy1zdGF0ZXMpCgkJICAgICA7O01hcCBvdmVyIGdyb3VwCgkJICAg ICAoZnVuY2FsbCBtYXAtb3Zlci1lbnRyaWVzCgkJCSMnKGxhbWJkYSAoKQoJCQkgICAgIChhcHBs eSBmdW5jLWQ0NzMgYXJncy00NmspKSkpKSkpKQogICAgICAKICAgICAgOztSZW1vdmUgdGhlIG1h cmtlcgogICAgICAoc2V0LW1hcmtlciBlbnRyeS1wb3MgbmlsKSkpCgoKCjs7O18gLCBHZXR0aW5n IHRoZSBkZWZhdWx0IG1hcmsKOzs7XyAgLiBvcmctY2hvb3NlLWdldC1pbmRleC1pbi1rZXl3b3Jk cwooZGVmdW4gb3JnLWNob29zZS1nZXQtaW5kZXgtaW4ta2V5d29yZHMgKGl4IGFsbC1rZXl3b3Jk cykKICAgIlJldHVybiBpbmRleCBvZiBjdXJyZW50IGVudHJ5LiIKICAgKGlmIGl4CiAgICAgIChw b3NpdGlvbiBpeCBhbGwta2V5d29yZHMKCSA6dGVzdCAjJ2VxdWFsKSkpCgo7OztfICAuIG9yZy1j aG9vc2UtZ2V0LWVudHJ5LWluZGV4CihkZWZ1biBvcmctY2hvb3NlLWdldC1lbnRyeS1pbmRleCAo YWxsLWtleXdvcmRzKQogICAiUmV0dXJuIGluZGV4IG9mIGN1cnJlbnQgZW50cnkuIgoKICAgKGxl dCoKICAgICAgKChzdGF0ZSAob3JnLWVudHJ5LWdldCAocG9pbnQpICJUT0RPIikpKQogICAgICAo b3JnLWNob29zZS1nZXQtaW5kZXgtaW4ta2V5d29yZHMgc3RhdGUgYWxsLWtleXdvcmRzKSkpCgo7 OztfICAuIG9yZy1jaG9vc2UtZ2V0LWZuLW1hcC1ncm91cAoKKGRlZnVuIG9yZy1jaG9vc2UtZ2V0 LWZuLW1hcC1ncm91cCAoKQogICAiUmV0dXJuIGEgZnVuY3Rpb24gdG8gbWFwIG92ZXIgdGhlIGdy b3VwIgogICAKICAgIycobGFtYmRhIChmbikKCShzYXZlLWV4Y3Vyc2lvbgoJICAgKG91dGxpbmUt dXAtaGVhZGluZy1hbGwgMSkKCSAgIChzYXZlLXJlc3RyaWN0aW9uCgkgICAgICAob3JnLW1hcC1l bnRyaWVzIGZuIG5pbCAndHJlZSkpKSkpCgo7OztfICAuIG9yZy1jaG9vc2UtZ2V0LWhpZ2hlc3Qt bWFyay1pbmRleAoKKGRlZnVuIG9yZy1jaG9vc2UtZ2V0LWhpZ2hlc3QtbWFyay1pbmRleCAoa2V5 d29yZHMpCiAgICJHZXQgdGhlIGluZGV4IG9mIHRoZSBoaWdoZXN0IGN1cnJlbnQgbWFyayBpbiB0 aGUgZ3JvdXAuCklmIHRoZXJlIGlzIG5vbmUsIHJldHVybiAwIgoKICAgKGxldCoKICAgICAgKAoJ IDs7RnVuYyBtYXBzIG92ZXIgYXBwbGljYWJsZSBlbnRyaWVzLgoJIChtYXAtb3Zlci1lbnRyaWVz CgkgICAgKG9yZy1jaG9vc2UtZ2V0LWZuLW1hcC1ncm91cCkpCgkgCgkgKGluZGV4ZXMtbGlzdAoJ ICAgIChyZW1vdmUgbmlsCgkgICAgICAgKGZ1bmNhbGwgbWFwLW92ZXItZW50cmllcyAKCQkgICMn KGxhbWJkYSAoKQoJCSAgICAgICAob3JnLWNob29zZS1nZXQtZW50cnktaW5kZXgga2V5d29yZHMp KSkpKSkKICAgICAgKGlmCgkgaW5kZXhlcy1saXN0CgkgKGFwcGx5ICMnbWF4IGluZGV4ZXMtbGlz dCkKCSAwKSkpCgoKOzs7XyAgLiBvcmctY2hvb3NlLWhpZ2hlc3Qtb2sKCihkZWZ1biBvcmctY2hv b3NlLWhpZ2hlc3Qtb3RoZXItb2sgKGl4IGRhdGEpCiAgICIiCgogICAobGV0CiAgICAgICgJCQoJ IChib3QtbG93ZXItcmFuZ2UKCSAgICAob3JnLWNob29zZS1tYXJrLWRhdGEuLWJvdC1sb3dlci1y YW5nZSBkYXRhKSkKCSAodG9wLXVwcGVyLXJhbmdlCgkgICAgKG9yZy1jaG9vc2UtbWFyay1kYXRh Li10b3AtdXBwZXItcmFuZ2UgZGF0YSkpCgkgKHJhbmdlLWxlbmd0aAoJICAgIChvcmctY2hvb3Nl LW1hcmstZGF0YS4tcmFuZ2UtbGVuZ3RoIGRhdGEpKSkKICAgICAgKHdoZW4gKGFuZCBpeCBib3Qt bG93ZXItcmFuZ2UpCgkgKGxldCoKCSAgICAoKGRlbHRhCgkJKC0gdG9wLXVwcGVyLXJhbmdlIGl4 KSkpCgkgICAgKHVubGVzcwoJICAgICAgICg8IHJhbmdlLWxlbmd0aCBkZWx0YSkKCSAgICAgICAo KyBib3QtbG93ZXItcmFuZ2UgZGVsdGEpKSkpKSkKCjs7O18gIC4gb3JnLWNob29zZS1nZXQtZGVm YXVsdC1tYXJrLWluZGV4CgooZGVmdW4gb3JnLWNob29zZS1nZXQtZGVmYXVsdC1tYXJrLWluZGV4 IChkYXRhKSAKICAgIkdldCB0aGUgaW5kZXggb2YgdGhlIGRlZmF1bHQgbWFyayBpbiBhIGNob29z ZSBpbnRlcnByZXRhdGlvbi4KCkFyZ3MgYXJlIGluIHRoZSBzYW1lIG9yZGVyIGFzIHRoZSBmaWVs ZHMgb2YKYG9yZy1jaG9vc2UtbWFyay1kYXRhLicgYW5kIGhhdmUgdGhlIHNhbWUgbWVhbmluZy4i CgogICAob3IKICAgICAgKGxldAoJICgoaGlnaGVzdC1tYXJrLWluZGV4CgkgICAgIChvcmctY2hv b3NlLWdldC1oaWdoZXN0LW1hcmstaW5kZXgKCQkob3JnLWNob29zZS1tYXJrLWRhdGEuLWFsbC1r ZXl3b3JkcyBkYXRhKSkpKQoJIChvcmctY2hvb3NlLWhpZ2hlc3Qtb3RoZXItb2sKCSAgICBoaWdo ZXN0LW1hcmstaW5kZXggZGF0YSkpCiAgICAgIChvcmctY2hvb3NlLW1hcmstZGF0YS4tc3RhdGlj LWRlZmF1bHQgZGF0YSkpKQoKCgo7OztfICAuIG9yZy1jaG9vc2UtZ2V0LW1hcmstTgooZGVmdW4g b3JnLWNob29zZS1nZXQtbWFyay1OIChuIGRhdGEpCiAgICJHZXQgdGhlIHRleHQgb2YgdGhlIG50 aCBtYXJrIGluIGEgY2hvb3NlIGludGVycHJldGF0aW9uLiIKICAgCiAgIChsZXQqCiAgICAgICgo bCAob3JnLWNob29zZS1tYXJrLWRhdGEuLWFsbC1rZXl3b3JkcyBkYXRhKSkpCiAgICAgIChudGgg biBsKSkpCgo7OztfICAuIG9yZy1jaG9vc2UtZ2V0LWRlZmF1bHQtbWFyawoKKGRlZnVuIG9yZy1j aG9vc2UtZ2V0LWRlZmF1bHQtbWFyayAobmV3LW1hcmsgb2xkLW1hcmspCiAgICJHZXQgdGhlIGRl ZmF1bHQgbWFyayBJRkYgaW4gYSBjaG9vc2UgaW50ZXJwcmV0YXRpb24uCk5FVy1NQVJLIGFuZCBP TEQtTUFSSyBhcmUgdGhlIHRleHQgb2YgdGhlIG5ldyBhbmQgb2xkIG1hcmtzLiIKCiAgIChsZXQq CiAgICAgICgKCSAob2xkLWt3ZC1kYXRhCgkgICAgKGFzc29jIG9sZC1tYXJrIG9yZy10b2RvLWt3 ZC1hbGlzdCkpCgkgKG5ldy1rd2QtZGF0YQoJICAgIChhc3NvYyBuZXctbWFyayBvcmctdG9kby1r d2QtYWxpc3QpKQoJIChiZWNvbWVzLWNob29zZQoJICAgIChhbmQKCSAgICAgICAob3IKCQkgIChu b3Qgb2xkLWt3ZC1kYXRhKQoJCSAgKG5vdAoJCSAgICAgKGVxIChudGggMSBvbGQta3dkLWRhdGEp ICdjaG9vc2UpKSkKCSAgICAgICAoZXEgKG50aCAxIG5ldy1rd2QtZGF0YSkgJ2Nob29zZSkpKSkK ICAgICAgKHdoZW4KCSBiZWNvbWVzLWNob29zZQoJIChsZXQKCSAgICAoKG5ldy1tYXJrLWRhdGEK CQkoYXNzb2MgbmV3LW1hcmsgb3JnLWNob29zZS1tYXJrLWRhdGEpKSkKCSAgICAoaWYKCSAgICAg ICBuZXctbWFyawoJICAgICAgIChvcmctY2hvb3NlLWdldC1tYXJrLU4KCQkgIChvcmctY2hvb3Nl LWdldC1kZWZhdWx0LW1hcmstaW5kZXgKCQkgICAgIG5ldy1tYXJrLWRhdGEpCgkJICBuZXctbWFy ay1kYXRhKQoJICAgICAgIChlcnJvciAiU29tZWhvdyBnb3QgYW4gdW5yZWNvZ25pemFibGUgbWFy ayIpKSkpKSkKCjs7O18gLCBTZXR0aW5nIGl0IGFsbCB1cAoKKGV2YWwtYWZ0ZXItbG9hZCAnb3Jn CiAgIChwcm9nbgogICAgICAoYWRkLXRvLWxpc3QgJ29yZy10b2RvLXNldHVwLWZpbHRlci1ob29r CgkgIydvcmctY2hvb3NlLXNldHVwLWZpbHRlcikgCiAgICAgIChhZGQtdG8tbGlzdCAnb3JnLXRv ZG8tZ2V0LWRlZmF1bHQtaG9vawoJICMnb3JnLWNob29zZS1nZXQtZGVmYXVsdC1tYXJrKSAKICAg ICAgKGFkZC10by1saXN0ICdvcmctdHJpZ2dlci1ob29rCgkgIydvcmctY2hvb3NlLWtlZXAtc2Vu c2libGUpCiAgICAgIChhZGQtdG8tbGlzdCAnb3JnLXRvZG8taW50ZXJwcmV0YXRpb24td2lkZ2V0 cwoJICcoOnRhZyAiQ2hvb3NlICAgKHRvIHJlY29yZCBkZWNpc2lvbnMpIiBjaG9vc2UpKQogICAg ICAoYWRkLXRvLWxpc3QgJ29yZy10b2RvLW5vcm1hbC1pbnRlcnByZXRhdGlvbnMgJ2Nob29zZSkp KQoKCgo7OztfLiBGb290ZXJzCjs7O18gLCBQcm92aWRlcwoKKHByb3ZpZGUgJ29yZy1jaG9vc2Up Cgo7OztfICogTG9jYWwgZW1hY3MgdmFycy4KOzs7XyAgKyBMb2NhbCB2YXJpYWJsZXM6Cjs7O18g ICsgRW5kOgoKOzs7XyAsIEVuZAo7Ozsgb3JnLWNob29zZS5lbCBlbmRzIGhlcmUK ------=_20090207154632_35974 Content-Type: application/octet-stream; name="test-org-choose.el" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="test-org-choose.el" Ozs7XyB0ZXN0LW9yZy1jaG9vc2UuZWwgLS0tIFRlc3QgY29kZSBmb3Igb3JnLWNob29zZQoKOzs7 Xy4gSGVhZGVycwo7OztfICwgTGljZW5zZQo7OyBDb3B5cmlnaHQgKEMpIDIwMDkgIFRvbSBCcmV0 b24gKFRlaG9tKQoKOzsgQXV0aG9yOiBUb20gQnJldG9uIChUZWhvbSkgPHRlaG9tQGxvY2FsaG9z dC5sb2NhbGRvbWFpbj4KOzsgS2V5d29yZHM6IGxpc3AKCjs7IFRoaXMgZmlsZSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cjs7IGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5Cjs7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIsIG9y IChhdCB5b3VyIG9wdGlvbikKOzsgYW55IGxhdGVyIHZlcnNpb24uCgo7OyBUaGlzIGZpbGUgaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKOzsgYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK OzsgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZQo7OyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgoK OzsgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UKOzsgYWxvbmcgd2l0aCBHTlUgRW1hY3M7IHNlZSB0aGUgZmlsZSBDT1BZSU5H LiAgSWYgbm90LCB3cml0ZSB0bwo7OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu LCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCjs7IEJvc3RvbiwgTUEgMDIxMTEtMTMwNywg VVNBLgoKOzs7XyAsIENvbW1lbnRhcnk6Cgo7OyAKCgo7OztfICwgUmVxdWlyZXMKCihyZXF1aXJl ICdydGVzdC1kZWZpbmUpCihyZXF1aXJlICdtb2NrYnVmKQoocmVxdWlyZSAnZWwtbW9jaykKKHJl cXVpcmUgJ29yZykKKHJlcXVpcmUgJ29yZy1pZCkKKHJlcXVpcmUgJ29yZy1jaG9vc2UpCgoKOzs7 Xy4gQm9keQo7OztfICwgRXhhbXBsZSBmaWxlcwooZGVmY29uc3QgdGVzdC1vcmctY2hvb3NlOnRo OmV4YW1wbGVzLWRpcgogICAocnRlc3Q6ZXhwYW5kLWZpbGVuYW1lLWJ5LWxvYWQtZmlsZSAiZXhh bXBsZXMiKSAKICAgIkRpcmVjdG9yeSB3aGVyZSBleGFtcGxlcyBhcmUiICkKCihydGVzdDpkZWZl eGFtcGxlIHRlc3Qtb3JnLWNob29zZTp0aGQ6ZmlsZS1zaW1wbGUKICAgKGV4cGFuZC1maWxlLW5h bWUgInNpbXBsZS5vcmciIAogICAgICB0ZXN0LW9yZy1jaG9vc2U6dGg6ZXhhbXBsZXMtZGlyKSkK KHJ0ZXN0OmRlZmV4YW1wbGUgdGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLXctMS1jaG9zZW4KICAg KGV4cGFuZC1maWxlLW5hbWUgInctMS1jaG9zZW4ub3JnIiAKICAgICAgdGVzdC1vcmctY2hvb3Nl OnRoOmV4YW1wbGVzLWRpcikpCihydGVzdDpkZWZleGFtcGxlIHRlc3Qtb3JnLWNob29zZTp0aGQ6 ZmlsZS1ub25hdXRvbWF0aWMKICAgKGV4cGFuZC1maWxlLW5hbWUgIm5vbmF1dG9tYXRpYy5vcmci IAogICAgICB0ZXN0LW9yZy1jaG9vc2U6dGg6ZXhhbXBsZXMtZGlyKSkKKHJ0ZXN0OmRlZmV4YW1w bGUgdGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLXctMi10eXBlcwogICAoZXhwYW5kLWZpbGUtbmFt ZSAidy0yLXR5cGVzLm9yZyIgCiAgICAgIHRlc3Qtb3JnLWNob29zZTp0aDpleGFtcGxlcy1kaXIp KQoocnRlc3Q6ZGVmZXhhbXBsZSB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtdy1zb21lLW5pbHMK ICAgKGV4cGFuZC1maWxlLW5hbWUgInctc29tZS1uaWxzLm9yZyIgCiAgICAgIHRlc3Qtb3JnLWNo b29zZTp0aDpleGFtcGxlcy1kaXIpKQoocnRlc3Q6ZGVmZXhhbXBsZSB0ZXN0LW9yZy1jaG9vc2U6 dGhkOmZpbGUtbm9zaWJzCiAgIChleHBhbmQtZmlsZS1uYW1lICJuby1zaWJzLm9yZyIgCiAgICAg IHRlc3Qtb3JnLWNob29zZTp0aDpleGFtcGxlcy1kaXIpKQoKKHJ0ZXN0OmRlZmV4YW1wbGUgdGVz dC1vcmctY2hvb3NlOnRoZDpub2ZpbGUtMS1saXN0LW8tbWFya3MKICAgJygiUkVKRUNURUQiICJO T1RfQ0hPU0VOIiAiTUFZQkUiICJMRUFOSU5HX1RPV0FSRFMiICJDSE9TRU4iKSkKCihydGVzdDpk ZWZleGFtcGxlIHRlc3Qtb3JnLWNob29zZTp0aGQ6bm9maWxlLTEtcmF3LW1hcmtzCiAgICcoY2hv b3NlICJSRUpFQ1RFRCIgIk5PVF9DSE9TRU4iICJNQVlCRSIgIkxFQU5JTkdfVE9XQVJEUyIgIkNI T1NFTiIpCiAgICJSYXcgbWFya3MiKQoKKHJ0ZXN0OmRlZmV4YW1wbGUgdGVzdC1vcmctY2hvb3Nl OnRoZDpub2ZpbGUtMS1vdXRwdXQtbWFya3MKICAgJyhjaG9vc2UgIlJFSkVDVEVEIiAiTk9UX0NI T1NFTiIgIk1BWUJFIiAiTEVBTklOR19UT1dBUkRTIiAiQ0hPU0VOIikKICAgIk91dHB1dCBtYXJr cyIpCgoocnRlc3Q6ZGVmZXhhbXBsZSB0ZXN0LW9yZy1jaG9vc2U6dGhkOm5vZmlsZS0xLXNldHVw LWFyZ3MKICAgKGxpc3QgbmlsIG5pbCBuaWwgNSB0ZXN0LW9yZy1jaG9vc2U6dGhkOm5vZmlsZS0x LWxpc3Qtby1tYXJrcykKICAgIkFyZ3VtZW50cyBnaXZlbiB0byBvcmctY2hvb3NlLXNldHVwLXZh cnMiCiAgICkKCihydGVzdDpkZWZleGFtcGxlIHRlc3Qtb3JnLWNob29zZTp0aGQ6bm9maWxlLTEt bWFyay1kYXRhCiAgIChtYXBjYXIgCiAgICAgICMnKGxhbWJkYSAoeCkKCSAgIChtYWtlLW9yZy1j aG9vc2UtbWFyay1kYXRhLgoJICAgICAgOmtleXdvcmQgeAoJICAgICAgOmJvdC1sb3dlci1yYW5n ZSBuaWwKCSAgICAgIDp0b3AtdXBwZXItcmFuZ2UgbmlsCgkgICAgICA6cmFuZ2UtbGVuZ3RoICAg IG5pbAoJICAgICAgOnN0YXRpYy1kZWZhdWx0IDAKCSAgICAgIDphbGwta2V5d29yZHMgdGVzdC1v cmctY2hvb3NlOnRoZDpub2ZpbGUtMS1saXN0LW8tbWFya3MpKQogICAgICAKICAgICAgdGVzdC1v cmctY2hvb3NlOnRoZDpub2ZpbGUtMS1saXN0LW8tbWFya3MpCiAgIAogICAiVGhlIG1hcmsgZGF0 YSBjb3JyZXNwb25kaW5nIHRvIG5vZmlsZS0xIikKCihydGVzdDpkZWZleGFtcGxlIHRlc3Qtb3Jn LWNob29zZTp0aGQ6bm9maWxlLTItbGlzdC1vLW1hcmtzCiAgICcoIlpFUk8iICJPTkUiICJUV08i ICJUSFJFRSIgIkZPVVIiICJGSVZFIiAiU0lYIikpCgoocnRlc3Q6ZGVmZXhhbXBsZSB0ZXN0LW9y Zy1jaG9vc2U6dGhkOm5vZmlsZS0yLXJhdy1tYXJrcwogICAnKGNob29zZSAiWkVSTyIgIk9ORSIg IlRXTyhiKSIgIlRIUkVFKGMsLSkiICJGT1VSKGQsMCkiIAogICAgICAgIkZJVkUoZSwrKSIgIlNJ WCgsKSIpCiAgICJSYXcgbWFya3MiKQoKCihydGVzdDpkZWZleGFtcGxlIHRlc3Qtb3JnLWNob29z ZTp0aGQ6bm9maWxlLTItb3V0cHV0LW1hcmtzCiAgICcoY2hvb3NlICJaRVJPIiAiT05FIiAiVFdP KGIpIiAiVEhSRUUoYykiICJGT1VSKGQpIiAKICAgICAgICJGSVZFKGUpIiAiU0lYIikKICAgIk91 dHB1dCBtYXJrcyIpCihydGVzdDpkZWZleGFtcGxlIHRlc3Qtb3JnLWNob29zZTp0aGQ6bm9maWxl LTItc2V0dXAtYXJncwogICAobGlzdCAzIDUgNCA3IHRlc3Qtb3JnLWNob29zZTp0aGQ6bm9maWxl LTItbGlzdC1vLW1hcmtzKQogICAiQXJndW1lbnRzIGdpdmVuIHRvIG9yZy1jaG9vc2Utc2V0dXAt dmFycyIKICAgKQoKKHJ0ZXN0OmRlZmV4YW1wbGUgdGVzdC1vcmctY2hvb3NlOnRoZDpub2ZpbGUt Mi1tYXJrLWRhdGEKICAgKG1hcGNhciAKICAgICAgIycobGFtYmRhICh4KQoJICAgKG1ha2Utb3Jn LWNob29zZS1tYXJrLWRhdGEuCgkgICAgICA6a2V5d29yZCB4CgkgICAgICA6Ym90LWxvd2VyLXJh bmdlIDMKCSAgICAgIDp0b3AtdXBwZXItcmFuZ2UgNQoJICAgICAgOnJhbmdlLWxlbmd0aCAgICAx CgkgICAgICA6c3RhdGljLWRlZmF1bHQgICAgNAoJICAgICAgOmFsbC1rZXl3b3JkcwoJICAgICAg dGVzdC1vcmctY2hvb3NlOnRoZDpub2ZpbGUtMi1saXN0LW8tbWFya3MpKQogICAgICAKICAgICAg dGVzdC1vcmctY2hvb3NlOnRoZDpub2ZpbGUtMi1saXN0LW8tbWFya3MpCiAgIAogICAiVGhlIG1h cmsgZGF0YSBjb3JyZXNwb25kaW5nIHRvIG5vZmlsZSBleGFtcGxlIDIiKQoKOztBbiBleGFtcGxl IG9mIG9uZSB0aGF0J3Mgbm90IGF1dG9tYXRpY2FsbHkgbWFuYWdlZAoocnRlc3Q6ZGVmZXhhbXBs ZSB0ZXN0LW9yZy1jaG9vc2U6dGhkOm5vZmlsZS0zLXJhdy1tYXJrcwogICAnKHNlcXVlbmNlICJa RVJPIiAiT05FIiAiVFdPKGIpIiAiVEhSRUUoYykiICJGT1VSKGQpIiAKICAgICAgICJGSVZFKGUp IiAiU0lYIikKICAgIklucHV0IG1hcmtzIikKCihydGVzdDpkZWZleGFtcGxlIHRlc3Qtb3JnLWNo b29zZTp0aGQ6bm9maWxlLTMtb3V0cHV0LW1hcmtzCiAgIG5pbAogICAiT3V0cHV0IG1hcmtzIikK Cgo7O0FuIGV4YW1wbGUgd2hlcmUgdGhlIHRvcCBvZiB0aGUgcmFuZ2UgaXMgaW1wbGljaXQKKHJ0 ZXN0OmRlZmV4YW1wbGUgdGVzdC1vcmctY2hvb3NlOnRoZDpub2ZpbGUtNC1saXN0LW8tbWFya3MK ICAgJygiWkVSTyIgIk9ORSIgIlRXTyIgIlRIUkVFIiAiRk9VUiIgIkZJVkUiICJTSVgiKSkKCihy dGVzdDpkZWZleGFtcGxlIHRlc3Qtb3JnLWNob29zZTp0aGQ6bm9maWxlLTQtcmF3LW1hcmtzCiAg ICcoY2hvb3NlICJaRVJPIiAiT05FIiAiVFdPKGIpIiAiVEhSRUUoYywtKSIgIkZPVVIoZCwwKSIg CiAgICAgICAiRklWRShlKSIgIlNJWCIpCiAgICJJbnB1dCBtYXJrcyIpCgoocnRlc3Q6ZGVmZXhh bXBsZSB0ZXN0LW9yZy1jaG9vc2U6dGhkOm5vZmlsZS00LXNldHVwLWFyZ3MKICAgKGxpc3QgMyBu aWwgNCA3IHRlc3Qtb3JnLWNob29zZTp0aGQ6bm9maWxlLTQtbGlzdC1vLW1hcmtzKQogICAiQXJn dW1lbnRzIGdpdmVuIHRvIG9yZy1jaG9vc2Utc2V0dXAtdmFycyIpCgoocnRlc3Q6ZGVmZXhhbXBs ZSB0ZXN0LW9yZy1jaG9vc2U6dGhkOm5vZmlsZS00LW1hcmstZGF0YQogICAobWFwY2FyIAogICAg ICAjJyhsYW1iZGEgKHgpCgkgICAobWFrZS1vcmctY2hvb3NlLW1hcmstZGF0YS4KCSAgICAgIDpr ZXl3b3JkIHgKCSAgICAgIDpib3QtbG93ZXItcmFuZ2UgMwoJICAgICAgOnRvcC11cHBlci1yYW5n ZSA2CgkgICAgICA6cmFuZ2UtbGVuZ3RoICAgIDIKCSAgICAgIDpzdGF0aWMtZGVmYXVsdCAgICA0 CgkgICAgICA6YWxsLWtleXdvcmRzCgkgICAgICB0ZXN0LW9yZy1jaG9vc2U6dGhkOm5vZmlsZS00 LWxpc3Qtby1tYXJrcykpCiAgICAgIHRlc3Qtb3JnLWNob29zZTp0aGQ6bm9maWxlLTQtbGlzdC1v LW1hcmtzKQogICAKICAgIlRoZSBtYXJrIGRhdGEgY29ycmVzcG9uZGluZyB0byBub2ZpbGUgZXhh bXBsZSAyIikKCihydGVzdDpkZWZleGFtcGxlIHRlc3Qtb3JnLWNob29zZTp0aGQ6bm9maWxlLTQt a3dkLWFsaXN0CiAgIChtYXBjYXIgCiAgICAgICMnKGxhbWJkYSAoeCkKCSAgIDs7KEtFWSBpbnRl cnByZXRhdGlvbiBoZWFkIGRvbmUtd29yZCBmaW5hbC1kb25lLXdvcmQpCgkgICAobGlzdCB4ICdj aG9vc2UgIlpFUk8iICJTSVgiICJTSVgiKSkKICAgICAgdGVzdC1vcmctY2hvb3NlOnRoZDpub2Zp bGUtNC1saXN0LW8tbWFya3MpKQoKCihydGVzdDpkZWZleGFtcGxlIHRlc3Qtb3JnLWNob29zZTp0 aGQ6ZmlsZS1zaW1wbGUtbGlzdC1vLW1hcmtzCiAgICcoIlJFSkVDVEVEIiAiTk9UX0NIT1NFTiIg Ik1BWUJFIiAiTEVBTklOR19UT1dBUkRTIiAiQ0hPU0VOIikpCihydGVzdDpkZWZleGFtcGxlIHRl c3Qtb3JnLWNob29zZTp0aGQ6ZmlsZS1zaW1wbGUtc2V0dXAtYXJncwogICAobGlzdCAxIDQgMiA1 IHRlc3Qtb3JnLWNob29zZTp0aGQ6ZmlsZS1zaW1wbGUtbGlzdC1vLW1hcmtzKQogICAiQXJndW1l bnRzIGdpdmVuIHRvIG9yZy1jaG9vc2Utc2V0dXAtdmFycyIKICAgKQoKKHJ0ZXN0OmRlZmV4YW1w bGUgdGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLXNpbXBsZS1tYXJrLWRhdGEKICAgKG1hcGNhciAK ICAgICAgIycobGFtYmRhICh4KQoJICAgKG1ha2Utb3JnLWNob29zZS1tYXJrLWRhdGEuCgkgICAg ICA6a2V5d29yZCB4CgkgICAgICA6Ym90LWxvd2VyLXJhbmdlIDEKCSAgICAgIDp0b3AtdXBwZXIt cmFuZ2UgNAoJICAgICAgOnJhbmdlLWxlbmd0aCAgICAyCgkgICAgICA6c3RhdGljLWRlZmF1bHQg ICAgMgoJICAgICAgOmFsbC1rZXl3b3JkcwoJICAgICAgdGVzdC1vcmctY2hvb3NlOnRoZDpmaWxl LXNpbXBsZS1saXN0LW8tbWFya3MpKQogICAgICAKICAgICAgdGVzdC1vcmctY2hvb3NlOnRoZDpm aWxlLXNpbXBsZS1saXN0LW8tbWFya3MpCiAgIAogICAiVGhlIG1hcmsgZGF0YSBjb3JyZXNwb25k aW5nIHRvIGZpbGUxIikKKHJ0ZXN0OmRlZmV4YW1wbGUgdGVzdC1vcmctY2hvb3NlOnRoZDpmaWxl LXNpbXBsZS1oaWdoLWl4CiAgIDMpCgoocnRlc3Q6ZGVmZXhhbXBsZSB0ZXN0LW9yZy1jaG9vc2U6 dGhkOmZpbGUtc2ltcGxlLXNpYi1tYXliZS1pZAogICAiNjdhN2NiYmEtYzc4Yi00N2ZlLTg4NmEt MDhhODBmNjdlNGFiIgogICAiSUQgb2YgYSBzaWJsaW5nIikKKHJ0ZXN0OmRlZmV4YW1wbGUgdGVz dC1vcmctY2hvb3NlOnRoZDpmaWxlLXNpbXBsZS1zaWItbWF5YmUtaXgKICAgMgogICAiTWFyayBp bmRleCBvZiB0aGF0IHNpYmxpbmciKQoKKHJ0ZXN0OmRlZmV4YW1wbGUgdGVzdC1vcmctY2hvb3Nl OnRoZDpmaWxlLXNpbXBsZS1zaWItcmVqZWN0ZWQtaWQKICAgIjk1M2Q0NTI0LWYxNWUtNDE5OC1h YjMzLTU3Njk3MzJmNTFhZCIKICAgIklEIG9mIGFub3RoZXIgc2libGluZyIpCgoocnRlc3Q6ZGVm ZXhhbXBsZSB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtc2ltcGxlLXNpYi1sZWFuaW5nLWlkCiAg ICJiZTAxZjYxMS02MTc1LTRlNDAtYTNiNS01MjVhOWMxZTNiNGQiCiAgICJJRCBvZiBhbm90aGVy IHNpYmxpbmciKQoocnRlc3Q6ZGVmZXhhbXBsZSB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtc2lt cGxlLXNpYi1ub3QtY2hvc2VuLWlkCiAgICJiNzc2MGFjOS1lMGJmLTQxYTAtOTY2MS03MjBkNDI2 NzA0MzIiCiAgICJJRCBvZiBhbm90aGVyIHNpYmxpbmciKQoKKHJ0ZXN0OmRlZmV4YW1wbGUgdGVz dC1vcmctY2hvb3NlOnRoZDpmaWxlLXNpbXBsZS1wYXJlbnQtaWQKICAgImExM2E0YjZmLTAyZDYt NDQ1Yy1hMzhlLTdlNTFiOWJhMjlkNCIKICAgIklEIG9mIHRoZSBwYXJlbnQgb2YgdGhvc2Ugbm9k ZXMiKQoocnRlc3Q6ZGVmZXhhbXBsZSB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtc2ltcGxlLW9y aWdpbmFsLW1hcmtzCiAgICcoIk1BWUJFIiJSRUpFQ1RFRCIiTEVBTklOR19UT1dBUkRTIiJOT1Rf Q0hPU0VOIikpCgoKCihydGVzdDpkZWZleGFtcGxlIHRlc3Qtb3JnLWNob29zZTp0aGQ6ZmlsZS13 LTEtY2hvc2VuLW1hcmstZGF0YQogICB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtc2ltcGxlLW1h cmstZGF0YSkKKHJ0ZXN0OmRlZmV4YW1wbGUgdGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLXctMS1j aG9zZW4taGlnaC1peAogICA0KQoocnRlc3Q6ZGVmZXhhbXBsZSB0ZXN0LW9yZy1jaG9vc2U6dGhk OmZpbGUtdy0xLWNob3Nlbi1zaWItbm90LWNob3Nlbi1hLWlkCiAgICJiMzkwZjliMS01N2QwLTRh MTctOTgxMS00N2I0OWZlZTE5NmYiCiAgICJJRCBvZiBhIG5vdC1jaG9zZW4gc2libGluZyIpCihy dGVzdDpkZWZleGFtcGxlIHRlc3Qtb3JnLWNob29zZTp0aGQ6ZmlsZS13LTEtY2hvc2VuLXNpYi1t YXliZS1pZAogICAiNWE0NDk3MDQtNDk0Yy00MTJmLWIyMWQtOGZmZTA3YjgwOTJjIgogICAiSUQg b2YgYW5vdGhlciBub3QtY2hvc2VuIHNpYmxpbmciKQoocnRlc3Q6ZGVmZXhhbXBsZSB0ZXN0LW9y Zy1jaG9vc2U6dGhkOmZpbGUtdy0xLWNob3Nlbi1zaWItY2hvc2VuLWlkCiAgICJjMDk1ODM2NC0x Zjk5LTRkZmMtYTY3MS1mMjFiYjVmNzA4YmIiCiAgICJJRCBvZiB0aGUgY2hvc2VuIHNpYmxpbmci KQoocnRlc3Q6ZGVmZXhhbXBsZSB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtdy0xLWNob3Nlbi1w YXJlbnQtaWQKICAgImIyYTZmNzhjLTYxOTktNDYxYi05ODUwLTE4OTgwYjg1YjFhYiIpCihydGVz dDpkZWZleGFtcGxlIHRlc3Qtb3JnLWNob29zZTp0aGQ6ZmlsZS13LTEtY2hvc2VuLWxpc3Qtby1t YXJrcwogICB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtc2ltcGxlLWxpc3Qtby1tYXJrcykKCihy dGVzdDpkZWZleGFtcGxlIHRlc3Qtb3JnLWNob29zZTp0aGQ6ZmlsZS13LTEtY2hvc2VuLW9yaWdp bmFsLW1hcmtzCiAgICcoIk5PVF9DSE9TRU4iICJSRUpFQ1RFRCIgIkNIT1NFTiAiICJNQVlCRSIp KQoKKHJ0ZXN0OmRlZmV4YW1wbGUgdGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLW5vbmF1dG9tYXRp Yy1saXN0LW8tbWFya3MKICAgJygiTk8iICJNQVlCRV9ZTiIgIllFUyIpKQoocnRlc3Q6ZGVmZXhh bXBsZSB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtbm9uYXV0b21hdGljLXJhdy1tYXJrcwogICAn KGNob29zZSAiTk8iICJNQVlCRV9ZTigsMCkiICJZRVMiKSkKCihydGVzdDpkZWZleGFtcGxlIHRl c3Qtb3JnLWNob29zZTp0aGQ6ZmlsZS1ub25hdXRvbWF0aWMtc2V0dXAtYXJncwogICAobGlzdCBu aWwgbmlsIDEgMyB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtbm9uYXV0b21hdGljLWxpc3Qtby1t YXJrcykKICAgIkFyZ3VtZW50cyBnaXZlbiB0byBvcmctY2hvb3NlLXNldHVwLXZhcnMiKQoocnRl c3Q6ZGVmZXhhbXBsZSB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtbm9uYXV0b21hdGljLWhpZ2gt aXgKICAgMikKCihydGVzdDpkZWZleGFtcGxlIHRlc3Qtb3JnLWNob29zZTp0aGQ6ZmlsZS1ub25h dXRvbWF0aWMtc2liLXllcy1pZAogICAiNmEyN2NjOTctNmU2NS00YzRlLTkwMTQtN2ZiY2YyN2Y1 MmZhIikKCihydGVzdDpkZWZleGFtcGxlIHRlc3Qtb3JnLWNob29zZTp0aGQ6ZmlsZS1ub25hdXRv bWF0aWMtbWFyay1kYXRhCiAgIChtYXBjYXIgCiAgICAgICMnKGxhbWJkYSAoeCkKCSAgIChtYWtl LW9yZy1jaG9vc2UtbWFyay1kYXRhLgoJICAgICAgOmtleXdvcmQgeAoJICAgICAgOmJvdC1sb3dl ci1yYW5nZSBuaWwKCSAgICAgIDp0b3AtdXBwZXItcmFuZ2UgbmlsCgkgICAgICA6cmFuZ2UtbGVu Z3RoICAgIG5pbAoJICAgICAgOnN0YXRpYy1kZWZhdWx0ICAgIDEKCSAgICAgIDphbGwta2V5d29y ZHMKCSAgICAgIHRlc3Qtb3JnLWNob29zZTp0aGQ6ZmlsZS1ub25hdXRvbWF0aWMtbGlzdC1vLW1h cmtzKQoJICAgKQogICAgICB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtbm9uYXV0b21hdGljLWxp c3Qtby1tYXJrcykKICAgCiAgICJUaGUgbWFyayBkYXRhIGNvcnJlc3BvbmRpbmcgdG8gZmlsZTMi KQoKKHJ0ZXN0OmRlZmV4YW1wbGUgdGVzdC1vcmctY2hvb3NlOnRoZDpjb250ZXh0Omt3ZC1hbGlz dC1ub3JtYWwtdG9kbwogICAobWFwY2FyIAogICAgICAjJyhsYW1iZGEgKHgpCgkgICA7OyhLRVkg aW50ZXJwcmV0YXRpb24gaGVhZCBkb25lLXdvcmQgZmluYWwtZG9uZS13b3JkKQoJICAgKGxpc3Qg eCAnc2VxdWVuY2UgIlRPRE8iICJET05FIiAiRE9ORSIpKQogICAgICAnKCJUT0RPIiAiRE9ORSIp KQoKICAgIkEga3dkLWFsaXN0IHRoYXQgaW5jbHVkZXMgb25seSB0aGUgMiBub3JtYWwgVE9ETyBt YXJrcy4KTkIsIHRoaXMgaXMgY29udGV4dC4gIEl0IGlzIG5vdCAqcHJvZHVjZWQqIGJ5IGFueSB0 ZXN0IGNvZGUsIGl0IGlzCnVzZWQgdG8gY29udHJvbCB3aGF0IG1hcmtzIGFyZSB1bmRlcnN0b29k LiIKICAgKQoKCihydGVzdDpkZWZleGFtcGxlIHRlc3Qtb3JnLWNob29zZTp0aGQ6Y29udGV4dDpr d2QtYWxpc3QKICAgKGFwcGVuZAogICAgICB0ZXN0LW9yZy1jaG9vc2U6dGhkOmNvbnRleHQ6a3dk LWFsaXN0LW5vcm1hbC10b2RvCiAgICAgIChtYXBjYXIgCiAgICAgICMnKGxhbWJkYSAoeCkKICAg ICAgIDs7KEtFWSBpbnRlcnByZXRhdGlvbiBoZWFkIGRvbmUtd29yZCBmaW5hbC1kb25lLXdvcmQp CgkgICAobGlzdCB4ICdjaG9vc2UgICJOTyIgIllFUyIgIllFUyIpKQoJIHRlc3Qtb3JnLWNob29z ZTp0aGQ6ZmlsZS1ub25hdXRvbWF0aWMtbGlzdC1vLW1hcmtzKSkKICAgCiAgICJBIGt3ZC1hbGlz dCB0byBjb21iaW5lcyAyIG5vcm1hbCBUT0RPIG1hcmtzIGFuZCB0aGUKZmlsZS1ub25hdXRvbWF0 aWMgbWFya3MuCk5CLCB0aGlzIGlzIG5vdCAqcHJvZHVjZWQqIGJ5IGFueSB0ZXN0IGNvZGUsIGl0 IGlzIHVzZWQgdG8gY29udHJvbAp3aGF0IG1hcmtzIGFyZSB1bmRlcnN0b29kLiIKICAgKQoKKHJ0 ZXN0OmRlZmV4YW1wbGUgdGVzdC1vcmctY2hvb3NlOnRoZDpjb250ZXh0Omt3ZC1hbGlzdC1zaW1w bGUKCiAgIChhcHBlbmQKICAgICAgdGVzdC1vcmctY2hvb3NlOnRoZDpjb250ZXh0Omt3ZC1hbGlz dC1ub3JtYWwtdG9kbwogICAgICAobWFwY2FyIAoJICMnKGxhbWJkYSAoeCkKCSAgICAgIDs7KEtF WSBpbnRlcnByZXRhdGlvbiBoZWFkIGRvbmUtd29yZCBmaW5hbC1kb25lLXdvcmQpCgkgICAgICAo bGlzdCB4ICdjaG9vc2UgIlJFSkVDVEVEIiAiQ0hPU0VOIiAiQ0hPU0VOIikpCgkgdGVzdC1vcmct Y2hvb3NlOnRoZDpmaWxlLXNpbXBsZS1saXN0LW8tbWFya3MpKQoKICAgIkEga3dkLWFsaXN0IHRo YXQgaW5jbHVkZXMgdGhlIG1hcmtzIGluIHNpbXBsZS5vcmcgcGx1cyAyIG5vcm1hbCBUT0RPIG1h cmtzLgpOQiwgdGhpcyBpcyBjb250ZXh0LiAgSXQgaXMgbm90ICpwcm9kdWNlZCogYnkgYW55IHRl c3QgY29kZSwgaXQgaXMKdXNlZCB0byBjb250cm9sIHdoYXQgbWFya3MgYXJlIHVuZGVyc3Rvb2Qu IgogICApCgoKKHJ0ZXN0OmRlZmV4YW1wbGUgdGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLXctMi10 eXBlcy1tYXJrLWRhdGEKICAgKGFwcGVuZAogICAgICB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUt c2ltcGxlLW1hcmstZGF0YQogICAgICB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtbm9uYXV0b21h dGljLW1hcmstZGF0YSkpCgoocnRlc3Q6ZGVmZXhhbXBsZSB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZp bGUtdy0yLXR5cGVzLXQxLWhpZ2gtaXgKICAgMykKCihydGVzdDpkZWZleGFtcGxlIHRlc3Qtb3Jn LWNob29zZTp0aGQ6ZmlsZS13LTItdHlwZXMtdDEtbGVhbmluZy1pZAogICAiYzhlN2Q3YWYtMTVh Mi00NjUwLWE2MDQtNTBhZGU1MmJkMDZjIikKKHJ0ZXN0OmRlZmV4YW1wbGUgdGVzdC1vcmctY2hv b3NlOnRoZDpmaWxlLXctMi10eXBlcy10MS1saXN0LW8tbWFya3MKICAgJygiUkVKRUNURUQiICJO T1RfQ0hPU0VOIiAiTUFZQkUiICJMRUFOSU5HX1RPV0FSRFMiICJDSE9TRU4iKSkKCihydGVzdDpk ZWZleGFtcGxlIHRlc3Qtb3JnLWNob29zZTp0aGQ6ZmlsZS13LTItdHlwZXMtdDItaGlnaC1peAog ICAyKQoKKHJ0ZXN0OmRlZmV4YW1wbGUgdGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLXctMi10eXBl cy10Mi15ZXMtaWQKICAgIjAyZTkxN2Y1LWFjM2QtNDc3Zi1iYWY1LTdlYjdjODk2MTY4MyIpCihy dGVzdDpkZWZleGFtcGxlIHRlc3Qtb3JnLWNob29zZTp0aGQ6ZmlsZS13LTItdHlwZXMtdDItbGlz dC1vLW1hcmtzCiAgICcoIllFUyIgIk1BWUJFX1lOIiAiTk8iKSkKCihydGVzdDpkZWZleGFtcGxl IHRlc3Qtb3JnLWNob29zZTp0aGQ6ZmlsZS13LXNvbWUtbmlscy1oaWdoLWl4CiAgIDQpCgoocnRl c3Q6ZGVmZXhhbXBsZSB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtdy1zb21lLW5pbHMtc2liLW1h cmtlZC1pZAogICAiYTRlNTIxMzEtMTE0NS00OWY1LThiNGItZGM0MjY0OTAwYTA1IikKCihydGVz dDpkZWZleGFtcGxlIHRlc3Qtb3JnLWNob29zZTp0aGQ6ZmlsZS13LXNvbWUtbmlscy1zaWItbmls LWlkCiAgICJkOTcyOTQ2OC1kYjIyLTQ4NzAtODk2OS05NTAwZGE2M2Q1NjAiKQoocnRlc3Q6ZGVm ZXhhbXBsZSB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtdy1zb21lLW5pbHMtbGlzdC1vLW1hcmtz CiAgICcoIlJFSkVDVEVEIiAiTk9UX0NIT1NFTiIgIk1BWUJFIiAiTEVBTklOR19UT1dBUkRTIiAi Q0hPU0VOIikpCgoocnRlc3Q6ZGVmZXhhbXBsZSB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtbm9z aWJzLXNpYgogICAiNzhmYjYzZmEtNGZhZC00YzdmLWFhNGEtOTU0ZWUzNDMxNzU0IikKKHJ0ZXN0 OmRlZmV4YW1wbGUgdGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLW5vc2licy1oaWdoLWl4CiAgIDAp Cgo7OztfICwgVGVzdHMgb2Ygb3JnLWNob29zZS1maWx0ZXItb25lCgoocnRlc3Q6ZGVmZXhhbXBs ZSB0ZXN0LW9yZy1jaG9vc2U6dGhkOnNpbmdsZW1hcmstMS1pbnB1dC1vdXRwdXQKICAgJygiT05F KCwwKSIgKCJPTkUiICJPTkUiIGRlZmF1bHQtbWFyaykpCiAgICJQYWlycyBvZiBzaW5nbGUgbWFy a3M6IElucHV0IGFuZCBvdXRwdXQiCiAgICkKCgoocnRlc3Q6ZGVmZXhhbXBsZSB0ZXN0LW9yZy1j aG9vc2U6dGhkOnNpbmdsZW1hcmstMi1pbnB1dC1vdXRwdXQKICAgJygiVFdPIiAoIlRXTyIgIlRX TyIpKQogICAiUGFpcnMgb2Ygc2luZ2xlIG1hcmtzOiBJbnB1dCBhbmQgb3V0cHV0IgogICApCgoK KHJ0ZXN0OmRlZmV4YW1wbGUgdGVzdC1vcmctY2hvb3NlOnRoZDpzaW5nbGVtYXJrLTMtaW5wdXQt b3V0cHV0CiAgICcoIlRIUkVFKGIpIiAoIlRIUkVFIiAiVEhSRUUoYikiKSkKICAgIlBhaXJzIG9m IHNpbmdsZSBtYXJrczogSW5wdXQgYW5kIG91dHB1dCIpCgoKKHJ0ZXN0OmRlZmV4YW1wbGUgdGVz dC1vcmctY2hvb3NlOnRoZDpzaW5nbGVtYXJrLTQtaW5wdXQtb3V0cHV0CiAgICcoIkZPVVIoYyww KSIgKCJGT1VSIiAiRk9VUihjKSIgZGVmYXVsdC1tYXJrKSkKICAgIlBhaXJzIG9mIHNpbmdsZSBt YXJrczogSW5wdXQgYW5kIG91dHB1dCIpCgoocnRlc3Q6ZGVmZXhhbXBsZSB0ZXN0LW9yZy1jaG9v c2U6dGhkOnNpbmdsZW1hcmstNS1pbnB1dC1vdXRwdXQKICAgJygiRklWRShkLCspIiAoIkZJVkUi ICJGSVZFKGQpIiB0b3AtdXBwZXItcmFuZ2UpKQogICAiUGFpcnMgb2Ygc2luZ2xlIG1hcmtzOiBJ bnB1dCBhbmQgb3V0cHV0IikKCihydGVzdDpkZWZleGFtcGxlIHRlc3Qtb3JnLWNob29zZTp0aGQ6 c2luZ2xlbWFyay02LWlucHV0LW91dHB1dAogICAnKCJTSVgoZSwtKSIgKCJTSVgiICJTSVgoZSki IGJvdC1sb3dlci1yYW5nZSkpCiAgICJQYWlycyBvZiBzaW5nbGUgbWFya3M6IElucHV0IGFuZCBv dXRwdXQiKQoKKHJ0ZXN0OmRlZmV4YW1wbGUgdGVzdC1vcmctY2hvb3NlOnRoZDpzaW5nbGVtYXJr LTctaW5wdXQtb3V0cHV0CiAgICcoIlNFVkVOKCwpIiAoIlNFVkVOIiAiU0VWRU4iKSkKICAgIlBh aXJzIG9mIHNpbmdsZSBtYXJrczogSW5wdXQgYW5kIG91dHB1dCIpCgoocnRlc3Q6ZGVmZXhhbXBs ZSB0ZXN0LW9yZy1jaG9vc2U6dGhkOnNpbmdsZW1hcmstOC1pbnB1dC1vdXRwdXQKICAgJygiRUlH SFQoeCEvQCwpIiAoIkVJR0hUIiAiRUlHSFQoeCEvQCkiKSkKICAgIlBhaXJzIG9mIHNpbmdsZSBt YXJrczogSW5wdXQgYW5kIG91dHB1dCIpCgoocnRlc3Q6ZGVmdGVzdCBvcmctY2hvb3NlLWZpbHRl ci1vbmUKCiAgICggICJEb2VzIHRoZSBleGFtcGxlcyBjb3JyZWN0bHkuIgogICAgICAoZXF1YWwK CSAob3JnLWNob29zZS1maWx0ZXItb25lIAoJICAgIChjYXIgdGVzdC1vcmctY2hvb3NlOnRoZDpz aW5nbGVtYXJrLTEtaW5wdXQtb3V0cHV0KSkKCSAoc2Vjb25kCgkgICAgdGVzdC1vcmctY2hvb3Nl OnRoZDpzaW5nbGVtYXJrLTEtaW5wdXQtb3V0cHV0KSkpCiAgIAogICAoICAiRG9lcyB0aGUgZXhh bXBsZXMgY29ycmVjdGx5LiIKICAgICAgKGVxdWFsCgkgKG9yZy1jaG9vc2UtZmlsdGVyLW9uZSAK CSAgICAoY2FyIHRlc3Qtb3JnLWNob29zZTp0aGQ6c2luZ2xlbWFyay0yLWlucHV0LW91dHB1dCkp CgkgKHNlY29uZAoJICAgIHRlc3Qtb3JnLWNob29zZTp0aGQ6c2luZ2xlbWFyay0yLWlucHV0LW91 dHB1dCkpKQogICAKICAgKCAgIkRvZXMgdGhlIGV4YW1wbGVzIGNvcnJlY3RseS4iCiAgICAgIChl cXVhbAoJIChvcmctY2hvb3NlLWZpbHRlci1vbmUgCgkgICAgKGNhciB0ZXN0LW9yZy1jaG9vc2U6 dGhkOnNpbmdsZW1hcmstMy1pbnB1dC1vdXRwdXQpKQoJIChzZWNvbmQKCSAgICB0ZXN0LW9yZy1j aG9vc2U6dGhkOnNpbmdsZW1hcmstMy1pbnB1dC1vdXRwdXQpKSkKICAgKCAgIkRvZXMgdGhlIGV4 YW1wbGVzIGNvcnJlY3RseS4iCiAgICAgIChlcXVhbAoJIChvcmctY2hvb3NlLWZpbHRlci1vbmUg CgkgICAgKGNhciB0ZXN0LW9yZy1jaG9vc2U6dGhkOnNpbmdsZW1hcmstNC1pbnB1dC1vdXRwdXQp KQoJIChzZWNvbmQKCSAgICB0ZXN0LW9yZy1jaG9vc2U6dGhkOnNpbmdsZW1hcmstNC1pbnB1dC1v dXRwdXQpKSkKICAgKCAgIkRvZXMgdGhlIGV4YW1wbGVzIGNvcnJlY3RseS4iCiAgICAgIChlcXVh bAoJIChvcmctY2hvb3NlLWZpbHRlci1vbmUgCgkgICAgKGNhciB0ZXN0LW9yZy1jaG9vc2U6dGhk OnNpbmdsZW1hcmstNS1pbnB1dC1vdXRwdXQpKQoJIChzZWNvbmQKCSAgICB0ZXN0LW9yZy1jaG9v c2U6dGhkOnNpbmdsZW1hcmstNS1pbnB1dC1vdXRwdXQpKSkKICAgKCAgIkRvZXMgdGhlIGV4YW1w bGVzIGNvcnJlY3RseS4iCiAgICAgIChlcXVhbAoJIChvcmctY2hvb3NlLWZpbHRlci1vbmUgCgkg ICAgKGNhciB0ZXN0LW9yZy1jaG9vc2U6dGhkOnNpbmdsZW1hcmstNi1pbnB1dC1vdXRwdXQpKQoJ IChzZWNvbmQKCSAgICB0ZXN0LW9yZy1jaG9vc2U6dGhkOnNpbmdsZW1hcmstNi1pbnB1dC1vdXRw dXQpKSkKICAgKCAgIkRvZXMgdGhlIGV4YW1wbGVzIGNvcnJlY3RseS4iCiAgICAgIChlcXVhbAoJ IChvcmctY2hvb3NlLWZpbHRlci1vbmUgCgkgICAgKGNhciB0ZXN0LW9yZy1jaG9vc2U6dGhkOnNp bmdsZW1hcmstNy1pbnB1dC1vdXRwdXQpKQoJIChzZWNvbmQKCSAgICB0ZXN0LW9yZy1jaG9vc2U6 dGhkOnNpbmdsZW1hcmstNy1pbnB1dC1vdXRwdXQpKSkKICAgICAgKCAgIkRvZXMgdGhlIGV4YW1w bGVzIGNvcnJlY3RseS4iCgkgKGVxdWFsCgkgICAgKG9yZy1jaG9vc2UtZmlsdGVyLW9uZSAKCSAg ICAgICAoY2FyIHRlc3Qtb3JnLWNob29zZTp0aGQ6c2luZ2xlbWFyay04LWlucHV0LW91dHB1dCkp CgkgICAgKHNlY29uZAoJICAgICAgIHRlc3Qtb3JnLWNob29zZTp0aGQ6c2luZ2xlbWFyay04LWlu cHV0LW91dHB1dCkpKQogICApCjs7O18gLCBUZXN0cyBvZiBvcmctY2hvb3NlLXNldHVwLXZhcnMK CihydGVzdDpkZWZ0ZXN0IG9yZy1jaG9vc2Utc2V0dXAtdmFycwoKICAgKCAgIlRoZSBgKi1zZXR1 cC1hcmdzJyBleGFtcGxlcyBhcmUgcHJvcGVyIGFyZ3MgdG8KYG9yZy1jaG9vc2Utc2V0dXAtdmFy cycuICBJdCBzZXRzIG9yZy1jaG9vc2UtbWFyay1kYXRhCmNvcnJlc3BvbmRpbmdseS4iCiAgICAg ICh3aXRoLXRlbXAtYnVmZmVyCgkgKGFwcGx5ICMnb3JnLWNob29zZS1zZXR1cC12YXJzCgkgICAg dGVzdC1vcmctY2hvb3NlOnRoZDpub2ZpbGUtMS1zZXR1cC1hcmdzKQoJIAoJIChydGVzdDpzZXRz PQoJICAgIG9yZy1jaG9vc2UtbWFyay1kYXRhCgkgICAgdGVzdC1vcmctY2hvb3NlOnRoZDpub2Zp bGUtMS1tYXJrLWRhdGEpKSkKCiAgICggICJUaGUgYCotc2V0dXAtYXJncycgZXhhbXBsZXMgYXJl IHByb3BlciBhcmdzIHRvCmBvcmctY2hvb3NlLXNldHVwLXZhcnMnLiAgSXQgc2V0cyBvcmctY2hv b3NlLW1hcmstZGF0YQpjb3JyZXNwb25kaW5nbHkuIgogICAgICAod2l0aC10ZW1wLWJ1ZmZlcgoJ IChhcHBseSAjJ29yZy1jaG9vc2Utc2V0dXAtdmFycwoJICAgIHRlc3Qtb3JnLWNob29zZTp0aGQ6 bm9maWxlLTItc2V0dXAtYXJncykKCSAKCSAocnRlc3Q6c2V0cz0KCSAgICBvcmctY2hvb3NlLW1h cmstZGF0YQoJICAgIHRlc3Qtb3JnLWNob29zZTp0aGQ6bm9maWxlLTItbWFyay1kYXRhKSkpCgog ICAoICAiVGhlIGAqLXNldHVwLWFyZ3MnIGV4YW1wbGVzIGFyZSBwcm9wZXIgYXJncyB0bwpgb3Jn LWNob29zZS1zZXR1cC12YXJzJy4gIEl0IHNldHMgb3JnLWNob29zZS1tYXJrLWRhdGEKY29ycmVz cG9uZGluZ2x5LiIKICAgICAgKHdpdGgtdGVtcC1idWZmZXIKCSAoYXBwbHkgIydvcmctY2hvb3Nl LXNldHVwLXZhcnMKCSAgICB0ZXN0LW9yZy1jaG9vc2U6dGhkOm5vZmlsZS00LXNldHVwLWFyZ3Mp CgkgCgkgKHJ0ZXN0OnNldHM9CgkgICAgb3JnLWNob29zZS1tYXJrLWRhdGEKCSAgICB0ZXN0LW9y Zy1jaG9vc2U6dGhkOm5vZmlsZS00LW1hcmstZGF0YSkpKQoKICAgKCAgIlRoZSBgKi1zZXR1cC1h cmdzJyBleGFtcGxlcyBhcmUgcHJvcGVyIGFyZ3MgdG8KYG9yZy1jaG9vc2Utc2V0dXAtdmFycycu ICBJdCBzZXRzIG9yZy1jaG9vc2UtbWFyay1kYXRhCmNvcnJlc3BvbmRpbmdseS4iCiAgICAgICh3 aXRoLXRlbXAtYnVmZmVyCgkgKGFwcGx5ICMnb3JnLWNob29zZS1zZXR1cC12YXJzCgkgICAgdGVz dC1vcmctY2hvb3NlOnRoZDpmaWxlLXNpbXBsZS1zZXR1cC1hcmdzKQoJIAoJIChydGVzdDpzZXRz PQoJICAgIG9yZy1jaG9vc2UtbWFyay1kYXRhCgkgICAgdGVzdC1vcmctY2hvb3NlOnRoZDpmaWxl LXNpbXBsZS1tYXJrLWRhdGEpKSkgICAgICAKICAgKCAgIlRoZSBgKi1zZXR1cC1hcmdzJyBleGFt cGxlcyBhcmUgcHJvcGVyIGFyZ3MgdG8KYG9yZy1jaG9vc2Utc2V0dXAtdmFycycuICBJdCBzZXRz IG9yZy1jaG9vc2UtbWFyay1kYXRhCmNvcnJlc3BvbmRpbmdseS4iCiAgICAgICh3aXRoLXRlbXAt YnVmZmVyCgkgKGFwcGx5ICMnb3JnLWNob29zZS1zZXR1cC12YXJzCgkgICAgdGVzdC1vcmctY2hv b3NlOnRoZDpmaWxlLW5vbmF1dG9tYXRpYy1zZXR1cC1hcmdzKQoJIAoJIChydGVzdDpzZXRzPQoJ ICAgIG9yZy1jaG9vc2UtbWFyay1kYXRhCgkgICAgdGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLW5v bmF1dG9tYXRpYy1tYXJrLWRhdGEpKSkgICAKICAgKQoKOzs7XyAsIFRlc3RzIG9mIHRoZSBzZXR1 cCBmaWx0ZXIKCihydGVzdDpkZWZ0ZXN0IG9yZy1jaG9vc2Utc2V0dXAtZmlsdGVyCgogICA7O0kn ZCBsaWtlIHRvIGhhdmUgYWxzbyB0ZXN0ZWQgdGhhdCBvdXRwdXQgaXMgY29uZm9ybWFudC4gIEJ1 dAogICA7O0FGQUlDVCBubyBleGlzdGluZyBwcmVkaWNhdGUgcmVwb3J0cyB0aGF0LCBzbyBJJ2xs IG9ubHkgdGVzdCB0aGF0CiAgIDs7b3V0cHV0IG1hdGNoZXMgd2hhdCdzIGV4cGVjdGVkLCB3aGlj aCBJJ2xsIGV5ZWJhbGwuCgogICAoICAiU2l0dWF0aW9uOiBDYWxsZWQgbWFudWFsbHksIHBhc3Nl ZCBkYXRhIHdpdGggYW5vdGhlciBpbnRlcnByZXRhdGlvbi4KUmVzcG9uc2U6IFJldHVybiB2YWx1 ZSBpcyBgbmlsJy4iCiAgICAgIChlcXVhbAoJICh3aXRoLXRlbXAtYnVmZmVyCgkgICAgKG9yZy1j aG9vc2Utc2V0dXAtZmlsdGVyCgkgICAgICAgdGVzdC1vcmctY2hvb3NlOnRoZDpub2ZpbGUtMy1y YXctbWFya3MpKQoJIHRlc3Qtb3JnLWNob29zZTp0aGQ6bm9maWxlLTMtb3V0cHV0LW1hcmtzKSkK CiAgICggICJTaXR1YXRpb246IENhbGxlZCBtYW51YWxseSwgcGFzc2VkIGtub3duIGRhdGEuClJl c3BvbnNlOiBSZXR1cm4gdmFsdWUgaXMgYXMgZXhwZWN0ZWQuIgogICAgICAoZXF1YWwKCSAod2l0 aC10ZW1wLWJ1ZmZlcgoJICAgIChvcmctY2hvb3NlLXNldHVwLWZpbHRlcgoJICAgICAgIHRlc3Qt b3JnLWNob29zZTp0aGQ6bm9maWxlLTEtcmF3LW1hcmtzKSkKCSB0ZXN0LW9yZy1jaG9vc2U6dGhk Om5vZmlsZS0xLW91dHB1dC1tYXJrcykpCgogICAoICAiU2l0dWF0aW9uOiBDYWxsZWQgbWFudWFs bHksIHBhc3NlZCBrbm93biBkYXRhLgpSZXNwb25zZTogUmV0dXJuIHZhbHVlIGlzIGFzIGV4cGVj dGVkLiIKICAgICAgKGVxdWFsCgkgKHdpdGgtdGVtcC1idWZmZXIKCSAgICAob3JnLWNob29zZS1z ZXR1cC1maWx0ZXIKCSAgICAgICB0ZXN0LW9yZy1jaG9vc2U6dGhkOm5vZmlsZS0yLXJhdy1tYXJr cykpCgkgdGVzdC1vcmctY2hvb3NlOnRoZDpub2ZpbGUtMi1vdXRwdXQtbWFya3MpKQoKCiAgICgg ICJTaXR1YXRpb246IENhbGxlZCBtYW51YWxseSwgcGFzc2VkIGtub3duIGRhdGEuClJlc3BvbnNl OiBWYXJpYWJsZXMgaGF2ZSBiZWVuIHNldCB1cCBhcyBleHBlY3RlZC4iCgogICAgICAod2l0aC10 ZW1wLWJ1ZmZlcgoJIChvcmctY2hvb3NlLXNldHVwLWZpbHRlcgoJICAgIHRlc3Qtb3JnLWNob29z ZTp0aGQ6bm9maWxlLTEtcmF3LW1hcmtzKQoJIChydGVzdDpzZXRzPQoJICAgIG9yZy1jaG9vc2Ut bWFyay1kYXRhCgkgICAgdGVzdC1vcmctY2hvb3NlOnRoZDpub2ZpbGUtMS1tYXJrLWRhdGEpKSkK CiAgICggICJTaXR1YXRpb246IENhbGxlZCBtYW51YWxseSwgcGFzc2VkIGtub3duIGRhdGEuClJl c3BvbnNlOiBWYXJpYWJsZXMgaGF2ZSBiZWVuIHNldCB1cCBhcyBleHBlY3RlZC4iCgogICAgICAo d2l0aC10ZW1wLWJ1ZmZlcgoJIChvcmctY2hvb3NlLXNldHVwLWZpbHRlcgoJICAgIHRlc3Qtb3Jn LWNob29zZTp0aGQ6bm9maWxlLTItcmF3LW1hcmtzKQoJIChydGVzdDpzZXRzPQoJICAgIG9yZy1j aG9vc2UtbWFyay1kYXRhCgkgICAgdGVzdC1vcmctY2hvb3NlOnRoZDpub2ZpbGUtMi1tYXJrLWRh dGEpKSkKCiAgICggICJTaXR1YXRpb246IENhbGxlZCBtYW51YWxseSwgcGFzc2VkIGtub3duIGRh dGEuClJlc3BvbnNlOiBWYXJpYWJsZXMgaGF2ZSBiZWVuIHNldCB1cCBhcyBleHBlY3RlZC4iCgog ICAgICAod2l0aC10ZW1wLWJ1ZmZlcgoJIChvcmctY2hvb3NlLXNldHVwLWZpbHRlcgoJICAgIHRl c3Qtb3JnLWNob29zZTp0aGQ6bm9maWxlLTQtcmF3LW1hcmtzKQoJIChydGVzdDpzZXRzPQoJICAg IG9yZy1jaG9vc2UtbWFyay1kYXRhCgkgICAgdGVzdC1vcmctY2hvb3NlOnRoZDpub2ZpbGUtNC1t YXJrLWRhdGEpKSkKCiAgICggICJTaXR1YXRpb246IEluIHRlbXAgYnVmZmVyLCBnaXZlbiB0aGUg c2FtZSBtYXJrcyBhcyBmb3IgZmlsZSAzLgpSZXNwb25zZTogYG9yZy1jaG9vc2UtbWFyay1kYXRh JyBoYXZlIGJlZW4gc2V0IHVwIGFzIGV4cGVjdGVkLiIKICAgICAgKHdpdGgtdGVtcC1idWZmZXIK CSAob3JnLWNob29zZS1zZXR1cC1maWx0ZXIKCSAgICB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUt bm9uYXV0b21hdGljLXJhdy1tYXJrcykKCSAocnRlc3Q6c2V0cz0KCSAgICBvcmctY2hvb3NlLW1h cmstZGF0YQoJICAgIHRlc3Qtb3JnLWNob29zZTp0aGQ6ZmlsZS1ub25hdXRvbWF0aWMtbWFyay1k YXRhKSkpCgogICAoICAiU2l0dWF0aW9uOiBgb3JnLWNob29zZS1tYXJrLWRhdGEnIGhhcyBhbHJl YWR5IGJlZW4gc2V0IHdpdGgKbWFya3MgZnJvbSB0aGlzIHNldApSZXNwb25zZTogYG9yZy1jaG9v c2UtbWFyay1kYXRhJyBnZXRzIHRoZSBleHBlY3RlZCB2YWx1ZSBhbmQKbm90aGluZyBleHRyYS4i CiAgICAgICh3aXRoLXRlbXAtYnVmZmVyCgkgKGxldAoJICAgICgob3JnLWNob29zZS1tYXJrLWRh dGEKCQl0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtbm9uYXV0b21hdGljLW1hcmstZGF0YSkpCgkg ICAgKG9yZy1jaG9vc2Utc2V0dXAtZmlsdGVyCgkgICAgICAgdGVzdC1vcmctY2hvb3NlOnRoZDpm aWxlLW5vbmF1dG9tYXRpYy1yYXctbWFya3MpCgkgICAgKHJ0ZXN0OnNldHM9CgkgICAgICAgb3Jn LWNob29zZS1tYXJrLWRhdGEKCSAgICAgICB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtbm9uYXV0 b21hdGljLW1hcmstZGF0YSkpKSkKICAgCiAgICggICJTaXR1YXRpb246IGBvcmctY2hvb3NlLW1h cmstZGF0YScgaGFzIGFscmVhZHkgYmVlbiBzZXQgd2l0aAptYXJrcyBmcm9tIGFub3RoZXIgc2V0 ClJlc3BvbnNlOiBgb3JnLWNob29zZS1tYXJrLWRhdGEnIGdldHMgdGhlIG5ldyBtYXJrcyBhbmQg a2VlcHMgdGhlCm1hcmtzIGZyb20gdGhlIG90aGVyIHNldC4iCiAgICAgICh3aXRoLXRlbXAtYnVm ZmVyCgkgKGxldAoJICAgICgob3JnLWNob29zZS1tYXJrLWRhdGEKCQl0ZXN0LW9yZy1jaG9vc2U6 dGhkOmZpbGUtc2ltcGxlLW1hcmstZGF0YSkpCgkgICAgKG9yZy1jaG9vc2Utc2V0dXAtZmlsdGVy CgkgICAgICAgdGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLW5vbmF1dG9tYXRpYy1yYXctbWFya3Mp CgkgICAgKHJ0ZXN0OnNldHM9CgkgICAgICAgb3JnLWNob29zZS1tYXJrLWRhdGEKCSAgICAgICAo YXBwZW5kCgkJICB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtc2ltcGxlLW1hcmstZGF0YQoJCSAg dGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLW5vbmF1dG9tYXRpYy1tYXJrLWRhdGEpKSkpKQogICAK ICAgOztJbnNpbnVhdGVkIHRlc3RzLCBzbyB0aGF0IHNldHVwIGZpbHRlciBpcyBjYWxsZWQgYXV0 b21hdGljYWxseSBieQogICA7O3NldHVwLgoKICAgKCAgIlNpdHVhdGlvbjogSW4gZXhhbXBsZSBm aWxlIDEuClJlc3BvbnNlOiBgb3JnLWNob29zZS1tYXJrLWRhdGEnIGdldHMgdGhlIGV4cGVjdGVk IHZhbHVlLiIKICAgICAgKHdpdGgtYnVmZmVyLWNvbnRhaW5pbmctb2JqZWN0ICg6ZmlsZSB0ZXN0 LW9yZy1jaG9vc2U6dGhkOmZpbGUtc2ltcGxlKQoJIChydGVzdDpzZXRzPQoJICAgIG9yZy1jaG9v c2UtbWFyay1kYXRhCgkgICAgdGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLXNpbXBsZS1tYXJrLWRh dGEpKSkKICAgCiAgICggICJTaXR1YXRpb246IEluIGV4YW1wbGUgZmlsZSAyLgpSZXNwb25zZTog YG9yZy1jaG9vc2UtbWFyay1kYXRhJyBnZXRzIHRoZSBleHBlY3RlZCB2YWx1ZS4iCiAgICAgICh3 aXRoLWJ1ZmZlci1jb250YWluaW5nLW9iamVjdCAoOmZpbGUgdGVzdC1vcmctY2hvb3NlOnRoZDpm aWxlLXctMS1jaG9zZW4pCgkgKHJ0ZXN0OnNldHM9CgkgICAgb3JnLWNob29zZS1tYXJrLWRhdGEK CSAgICB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtdy0xLWNob3Nlbi1tYXJrLWRhdGEpKSkKCiAg ICggICJTaXR1YXRpb246IEluIGV4YW1wbGUgZmlsZSAzLgpSZXNwb25zZTogYG9yZy1jaG9vc2Ut bWFyay1kYXRhJyBnZXRzIHRoZSBleHBlY3RlZCB2YWx1ZS4iCiAgICAgICh3aXRoLWJ1ZmZlci1j b250YWluaW5nLW9iamVjdCAoOmZpbGUgdGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLW5vbmF1dG9t YXRpYykKCgkgKHJ0ZXN0OnNldHM9CgkgICAgb3JnLWNob29zZS1tYXJrLWRhdGEKCSAgICB0ZXN0 LW9yZy1jaG9vc2U6dGhkOmZpbGUtbm9uYXV0b21hdGljLW1hcmstZGF0YSkpKQoKICAgKCAgIlNp dHVhdGlvbjogSW4gZXhhbXBsZSBmaWxlIDQuClJlc3BvbnNlOiBgb3JnLWNob29zZS1tYXJrLWRh dGEnIGdldHMgdGhlIGV4cGVjdGVkIHZhbHVlLiIKICAgICAgKHdpdGgtYnVmZmVyLWNvbnRhaW5p bmctb2JqZWN0ICg6ZmlsZSB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtdy0yLXR5cGVzKQoKCSAo cnRlc3Q6c2V0cz0KCSAgICBvcmctY2hvb3NlLW1hcmstZGF0YQoJICAgIHRlc3Qtb3JnLWNob29z ZTp0aGQ6ZmlsZS13LTItdHlwZXMtbWFyay1kYXRhKSkpKQoKCjs7O18gLCBUZXN0cyBvZiB0aGUg ZnVuY3Rpb24gdG8gZ2V0IGRlZmF1bHQKOzs7XyAgLiBUZXN0IGhlbHBlcgoKOzs7XyAgICAuIG9y Zy1jaG9vc2U6dGg6aW4tYnVmZmVyLWF0CgooZGVmbWFjcm8qIG9yZy1jaG9vc2U6dGg6aW4tYnVm ZmVyLWF0ICgoJmtleSBmaWxlIGlkKSAmcmVzdCBib2R5KQogICAiIgogICAKICAgYCh3aXRoLWJ1 ZmZlci1jb250YWluaW5nLW9iamVjdAogICAgICAgKDpmaWxlICxmaWxlKQogICAgICAgOztIYXZl IHRvIHNob3cgZW50cmllcyBvdGhlcndpc2Ugd2UgbWlnaHQgZmFpbCB0byBnbyB0byB0aGVtLgog ICAgICAgKHNob3ctYWxsKQogICAgICAgOztHbyB0byBvbmUgb2YgdGhlIGVudHJpZXMuICBVc2Ug YG9yZy1maW5kLWVudHJ5LXdpdGgtaWQnIHNvIHdlCiAgICAgICA7O2Nhbid0IGFjY2lkZW50YWxs eSBsZWF2ZSB0aGlzIGZpbGUsIGFzIHdlIGNvdWxkIHdpdGgKICAgICAgIDs7YG9yZy1pZC1maW5k Jy4KICAgICAgIChnb3RvLWNoYXIKCSAgKG9yZy1maW5kLWVudHJ5LXdpdGgtaWQgLGlkKSkgCiAg ICAgICAsQGJvZHkpKQoKOzs7XyAgICAgLCBUZXN0cwoKKHB1dCAnb3JnLWNob29zZTp0aDppbi1i dWZmZXItYXQgJ3J0ZXN0OnRlc3QtdGhydQogICAnb3JnLWNob29zZS1nZXQtZW50cnktaW5kZXgp Cgo7OztfICAuIG9yZy1jaG9vc2UtZ2V0LWVudHJ5LWluZGV4CihydGVzdDpkZWZ0ZXN0IG9yZy1j aG9vc2UtZ2V0LWVudHJ5LWluZGV4CiAgIDs7VGhlc2UgdGVzdHMgYXJlIHRlc3RzIGFmdGVyIGlu c2ludWF0aW9uLgogICAoICAiU2l0dWF0aW9uOiBQb2ludCBpcyBpbiBhIG1hcmtlZCBlbnRyeS4K UmVzcG9uc2U6IFJldHVybiB0aGUgaW5kZXggb2YgdGhhdCBlbnRyeS4iCiAgICAgIChvcmctY2hv b3NlOnRoOmluLWJ1ZmZlci1hdAoJICg6ZmlsZSB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtc2lt cGxlIAoJICAgIDppZCB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtc2ltcGxlLXNpYi1tYXliZS1p ZCkKCSAKCSAoZXF1YWwKCSAgICAob3JnLWNob29zZS1nZXQtZW50cnktaW5kZXggCgkgICAgICAg dGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLXNpbXBsZS1saXN0LW8tbWFya3MpCgkgICAgdGVzdC1v cmctY2hvb3NlOnRoZDpmaWxlLXNpbXBsZS1zaWItbWF5YmUtaXgpKSkKICAgCiAgIAogICAoICAi U2l0dWF0aW9uOiBQb2ludCBpcyBpbiBhIHVubWFya2VkIGVudHJ5IChuaWwpLgpSZXNwb25zZTog UmV0dXJuIG5pbC4iCiAgICAgIChvcmctY2hvb3NlOnRoOmluLWJ1ZmZlci1hdAoJICg6ZmlsZSB0 ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtdy1zb21lLW5pbHMKCSAgICA6aWQgdGVzdC1vcmctY2hv b3NlOnRoZDpmaWxlLXctc29tZS1uaWxzLXNpYi1uaWwtaWQpCgkgCgkgKGVxdWFsCgkgICAgKG9y Zy1jaG9vc2UtZ2V0LWVudHJ5LWluZGV4IAoJICAgICAgIHRlc3Qtb3JnLWNob29zZTp0aGQ6Zmls ZS13LXNvbWUtbmlscy1saXN0LW8tbWFya3MpCgkgICAgbmlsKSkpCiAgIAogICAoICAiU2l0dWF0 aW9uOiBQb2ludCBpcyBpbiBhbiBlbnRyeSB3aXRoIGEgbWFyayBmcm9tIGEgZGlmZmVyZW50IHNl dC4KUmVzcG9uc2U6IFJldHVybiBuaWwuIgogICAgICAob3JnLWNob29zZTp0aDppbi1idWZmZXIt YXQgCgkgKDpmaWxlIHRlc3Qtb3JnLWNob29zZTp0aGQ6ZmlsZS13LTItdHlwZXMKCSAgICA6aWQg dGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLXctMi10eXBlcy10Mi15ZXMtaWQpCgkgCgkgKGVxdWFs CgkgICAgKG9yZy1jaG9vc2UtZ2V0LWVudHJ5LWluZGV4IAoJICAgICAgIHRlc3Qtb3JnLWNob29z ZTp0aGQ6ZmlsZS13LTItdHlwZXMtdDEtbGlzdC1vLW1hcmtzKQoJICAgIG5pbCkpKQogICAgICAK ICAgKQo7OztfICAuIG9yZy1jaG9vc2UtZ2V0LWhpZ2hlc3QtbWFyay1pbmRleAoocnRlc3Q6ZGVm dGVzdCBvcmctY2hvb3NlLWdldC1oaWdoZXN0LW1hcmstaW5kZXgKCiAgICggICJTaXR1YXRpb246 IFBvaW50IGlzIGluIG9uZSBvZiB0aGUgc2libGluZyBlbnRyaWVzClJlc3BvbnNlOiBSZXR1cm5z IHRoZSBoaWdoZXN0IGluZGV4LiIKICAgICAgKG9yZy1jaG9vc2U6dGg6aW4tYnVmZmVyLWF0IAoJ ICg6ZmlsZSB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtc2ltcGxlCgkgICAgOmlkIHRlc3Qtb3Jn LWNob29zZTp0aGQ6ZmlsZS1zaW1wbGUtc2liLW1heWJlLWlkKQoJIChlcXVhbAoJICAgIChvcmct Y2hvb3NlLWdldC1oaWdoZXN0LW1hcmstaW5kZXgKCSAgICAgICB0ZXN0LW9yZy1jaG9vc2U6dGhk OmZpbGUtc2ltcGxlLWxpc3Qtby1tYXJrcykKCSAgICB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUt c2ltcGxlLWhpZ2gtaXgpKSkKICAgCiAgICggICJTaXR1YXRpb246IFBvaW50IGlzIGluIGEgZGlm ZmVyZW50IG9uZSBvZiB0aGUgc2libGluZyBlbnRyaWVzClJlc3BvbnNlOiBSZXR1cm5zIHRoZSBo aWdoZXN0IGluZGV4LiIKICAgICAgKG9yZy1jaG9vc2U6dGg6aW4tYnVmZmVyLWF0IAoJICg6Zmls ZSB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtc2ltcGxlCgkgICAgOmlkIHRlc3Qtb3JnLWNob29z ZTp0aGQ6ZmlsZS1zaW1wbGUtc2liLXJlamVjdGVkLWlkKQoJIChlcXVhbAoJICAgIChvcmctY2hv b3NlLWdldC1oaWdoZXN0LW1hcmstaW5kZXgKCSAgICAgICB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZp bGUtc2ltcGxlLWxpc3Qtby1tYXJrcykKCSAgICB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtc2lt cGxlLWhpZ2gtaXgpKSkKCiAgICggICJTaXR1YXRpb246IFBvaW50IGlzIGluIG9uZSBvZiB0aGUg c2libGluZyBlbnRyaWVzClJlc3BvbnNlOiBSZXR1cm5zIHRoZSBoaWdoZXN0IGluZGV4LiIKICAg ICAgKG9yZy1jaG9vc2U6dGg6aW4tYnVmZmVyLWF0IAoJICg6ZmlsZSB0ZXN0LW9yZy1jaG9vc2U6 dGhkOmZpbGUtdy0xLWNob3NlbgoJICAgIDppZCB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtdy0x LWNob3Nlbi1zaWItbm90LWNob3Nlbi1hLWlkKQoJIChlcXVhbAoJICAgIChvcmctY2hvb3NlLWdl dC1oaWdoZXN0LW1hcmstaW5kZXgKCSAgICAgICB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtdy0x LWNob3Nlbi1saXN0LW8tbWFya3MpCgkgICAgdGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLXctMS1j aG9zZW4taGlnaC1peCkpKQogICAKICAgKCAgIlNpdHVhdGlvbjogUG9pbnQgaXMgaW4gb25lIG9m IHRoZSBzaWJsaW5nIGVudHJpZXMKUmVzcG9uc2U6IFJldHVybnMgdGhlIGhpZ2hlc3QgaW5kZXgu IgogICAgICAob3JnLWNob29zZTp0aDppbi1idWZmZXItYXQgCgkgKDpmaWxlIHRlc3Qtb3JnLWNo b29zZTp0aGQ6ZmlsZS1ub25hdXRvbWF0aWMKCSAgICA6aWQgdGVzdC1vcmctY2hvb3NlOnRoZDpm aWxlLW5vbmF1dG9tYXRpYy1zaWIteWVzLWlkKQoJIChlcXVhbAoJICAgIChvcmctY2hvb3NlLWdl dC1oaWdoZXN0LW1hcmstaW5kZXgKCSAgICAgICB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtbm9u YXV0b21hdGljLWxpc3Qtby1tYXJrcykKCSAgICB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtbm9u YXV0b21hdGljLWhpZ2gtaXgpKSkKCgogICAoICAiU2l0dWF0aW9uOiBQb2ludCBpcyBpbiBvbmUg b2YgdGhlIHNpYmxpbmcgZW50cmllcyBvZiBvbmUgdHlwZS4KUmVzcG9uc2U6IFJldHVybnMgdGhl IGhpZ2hlc3QgaW5kZXggb2Ygc2libGluZ3Mgb2YgdGhhdCB0eXBlLCBpZ25vcmluZwp0aGUgb3Ro ZXJzLiIKICAgICAgKG9yZy1jaG9vc2U6dGg6aW4tYnVmZmVyLWF0IAoJICg6ZmlsZSB0ZXN0LW9y Zy1jaG9vc2U6dGhkOmZpbGUtdy0yLXR5cGVzCgkgICAgOmlkIHRlc3Qtb3JnLWNob29zZTp0aGQ6 ZmlsZS13LTItdHlwZXMtdDEtbGVhbmluZy1pZCkKCSAoZXF1YWwKCSAgICAob3JnLWNob29zZS1n ZXQtaGlnaGVzdC1tYXJrLWluZGV4CgkgICAgICAgdGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLXct Mi10eXBlcy10MS1saXN0LW8tbWFya3MpCgkgICAgdGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLXct Mi10eXBlcy10MS1oaWdoLWl4KSkpCiAgIAoKICAgKCAgIlNpdHVhdGlvbjogUG9pbnQgaXMgaW4g b25lIG9mIHRoZSBzaWJsaW5nIGVudHJpZXMgb2Ygb25lIHR5cGUsCmluIGEgc2libGluZyBncm91 cCB0aGF0IGhhcyAyIHR5cGVzLgpSZXNwb25zZTogUmV0dXJucyB0aGUgaGlnaGVzdCBpbmRleCBv ZiBzaWJsaW5ncyBvZiB0aGF0IHR5cGUsIGlnbm9yaW5nCnRoZSBvdGhlcnMuIgogICAgICAob3Jn LWNob29zZTp0aDppbi1idWZmZXItYXQgCgkgKDpmaWxlIHRlc3Qtb3JnLWNob29zZTp0aGQ6Zmls ZS13LTItdHlwZXMKCSAgICA6aWQgdGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLXctMi10eXBlcy10 Mi15ZXMtaWQpCgkgKGVxdWFsCgkgICAgKG9yZy1jaG9vc2UtZ2V0LWhpZ2hlc3QtbWFyay1pbmRl eAoJICAgICAgIHRlc3Qtb3JnLWNob29zZTp0aGQ6ZmlsZS13LTItdHlwZXMtdDItbGlzdC1vLW1h cmtzKQoJICAgIHRlc3Qtb3JnLWNob29zZTp0aGQ6ZmlsZS13LTItdHlwZXMtdDItaGlnaC1peCkp KQoKCiAgICggICJTaXR1YXRpb246IFBvaW50IGlzIGluIG9uZSBvZiB0aGUgc2libGluZyBlbnRy aWVzLiAgU29tZQplbnRyaWVzIGFyZSBuaWwuIApSZXNwb25zZTogUmV0dXJucyB0aGUgaGlnaGVz dCBpbmRleCwgaWdub3JpbmcgdGhlIGBuaWwncy4iCiAgICAgIChvcmctY2hvb3NlOnRoOmluLWJ1 ZmZlci1hdCAKCSAoOmZpbGUgdGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLXctc29tZS1uaWxzCgkg ICAgOmlkIHRlc3Qtb3JnLWNob29zZTp0aGQ6ZmlsZS13LXNvbWUtbmlscy1zaWItbWFya2VkLWlk KQoJIChlcXVhbAoJICAgIChvcmctY2hvb3NlLWdldC1oaWdoZXN0LW1hcmstaW5kZXgKCSAgICAg ICB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtdy1zb21lLW5pbHMtbGlzdC1vLW1hcmtzKQoJICAg IHRlc3Qtb3JnLWNob29zZTp0aGQ6ZmlsZS13LXNvbWUtbmlscy1oaWdoLWl4KSkpCgogICAoICJT aXR1YXRpb246IFRoZXJlIGFyZSBubyBlbnRyaWVzIG9mIGNob29zZSB0eXBlLgpSZXNwb25zZTog UmV0dXJuIDAiCiAgICAgIChvcmctY2hvb3NlOnRoOmluLWJ1ZmZlci1hdCAKCSAoOmZpbGUgdGVz dC1vcmctY2hvb3NlOnRoZDpmaWxlLW5vc2licwoJICAgIDppZCB0ZXN0LW9yZy1jaG9vc2U6dGhk OmZpbGUtbm9zaWJzLXNpYikKCSAoZXF1YWwKCSAgICAob3JnLWNob29zZS1nZXQtaGlnaGVzdC1t YXJrLWluZGV4CgkgICAgICAgdGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLXNpbXBsZS1saXN0LW8t bWFya3MpCgkgICAgMCkpKQogICAKICAgKQoKOzs7XyAgLiBvcmctY2hvb3NlLWdldC1kZWZhdWx0 LW1hcmstaW5kZXgKKHB1dCAnb3JnLWNob29zZS1nZXQtZGVmYXVsdC1tYXJrLWluZGV4ICdydGVz dDp0ZXN0LXRocnUKICAgJ29yZy1jaG9vc2UtZ2V0LWRlZmF1bHQtbWFyaykKOzs7XyAgLiBvcmct Y2hvb3NlLWdldC1tYXJrLU4KKHJ0ZXN0OmRlZnRlc3Qgb3JnLWNob29zZS1nZXQtbWFyay1OCiAg IAogICAoICAiQmVoYXZpb3I6IEdldHMgdGhlIGNvcnJlc3BvbmRpbmcgbWFyayBmcm9tIHRoZSBz ZXQuIgogICAgICAobGV0CgkgKChvcmctY2hvb3NlLW1hcmstZGF0YSAKCSAgICAgdGVzdC1vcmct Y2hvb3NlOnRoZDpub2ZpbGUtNC1tYXJrLWRhdGEpKQoJIChlcXVhbAoJICAgIChvcmctY2hvb3Nl LWdldC1tYXJrLU4gMAoJICAgICAgIChhc3NvYyAiT05FIiBvcmctY2hvb3NlLW1hcmstZGF0YSkp CgkgICAgIlpFUk8iKSkpCgogICAoICAiQmVoYXZpb3I6IEdldHMgdGhlIGNvcnJlc3BvbmRpbmcg bWFyayBmcm9tIHRoZSBzZXQuIgogICAgICAobGV0CgkgKChvcmctY2hvb3NlLW1hcmstZGF0YSAK CSAgICAgdGVzdC1vcmctY2hvb3NlOnRoZDpub2ZpbGUtNC1tYXJrLWRhdGEpKQoJIChlcXVhbAoJ ICAgIChvcmctY2hvb3NlLWdldC1tYXJrLU4gNAoJICAgICAgIChhc3NvYyAiVEhSRUUiIG9yZy1j aG9vc2UtbWFyay1kYXRhKSkKCSAgICAiRk9VUiIpKSkKICAgKQoKOzs7XyAgLiBvcmctY2hvb3Nl LWdldC1kZWZhdWx0LW1hcmsKCjs7O18gICAsIFRlc3QgaGVscGVycwooZGVmdW4gb3JnLWNob29z ZS1nZXQtZGVmYXVsdC1tYXJrLWluZGV4OnRoIChuZXctbWFyayBtYXJrLWRhdGEpCiAgICJUZXN0 IGhlbHBlciIKCiAgIChvcmctY2hvb3NlLWdldC1kZWZhdWx0LW1hcmstaW5kZXgKICAgICAgKGFz c29jIG5ldy1tYXJrIG1hcmstZGF0YSkpKQooZGVmdW4gb3JnLWNob29zZTp0aDpjb2xsZWN0LWNo aWxkcmVucy10b2RvLW1hcmtzIChwYXJlbnQtaWQpCiAgICIiCiAgIAogICAoc2F2ZS1leGN1cnNp b24KICAgICAgKHNob3ctYWxsKSA7O0luIGNhc2UgYW55dGhpbmcgZ290IGhpZGRlbgogICAgICAo Z290by1jaGFyCgkgKG9yZy1maW5kLWVudHJ5LXdpdGgtaWQKCSAgICBwYXJlbnQtaWQpKQogICAg ICAoc2F2ZS1yZXN0cmljdGlvbgoJIChvcmctbWFwLWVudHJpZXMgCgkgICAgIycobGFtYmRhICgp CgkJIChvcmctZW50cnktZ2V0IChwb2ludCkgIlRPRE8iKSkKCSAgICBuaWwgJ3RyZWUpKSkpCjs7 O18gICAgLiBUZXN0cyBvZiBvcmctY2hvb3NlOnRoOmNvbGxlY3QtY2hpbGRyZW5zLXRvZG8tbWFy a3MKKHJ0ZXN0OmRlZnRlc3Qgb3JnLWNob29zZTp0aDpjb2xsZWN0LWNoaWxkcmVucy10b2RvLW1h cmtzCiAgICgiU2l0dWF0aW9uOiBJbiBhIGtub3duIGZpbGUuClBhcmFtOiBUaGUgaWQgb2YgdGhl IHBhcmVudCBlbnRyeS4KUmVzcG9uc2U6IFJldHVybnMgdGhlIFRPRE8gbWFya3Mgb2YgdGhlIGNo aWxkcmVuLiIKICAgICAgKHdpdGgtYnVmZmVyLWNvbnRhaW5pbmctb2JqZWN0IAoJICg6ZmlsZSB0 ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtc2ltcGxlKQoJIChlcXVhbAoJICAgIChvcmctY2hvb3Nl OnRoOmNvbGxlY3QtY2hpbGRyZW5zLXRvZG8tbWFya3MKCSAgICAgICB0ZXN0LW9yZy1jaG9vc2U6 dGhkOmZpbGUtc2ltcGxlLXBhcmVudC1pZCkKCSAgICB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUt c2ltcGxlLW9yaWdpbmFsLW1hcmtzKSkpKQoKCjs7O18gICAsIFRlc3RzCgoocnRlc3Q6ZGVmdGVz dCBvcmctY2hvb3NlLWdldC1kZWZhdWx0LW1hcmsKCiAgICggICJTaXR1YXRpb246IHdlJ3JlIG5v dCBnb2luZyBpbnRvIGEgY2hvb3NlIHR5cGUKUmVzcG9uc2U6IFJldHVybiBuaWwsIHNpZ25hbGxp bmcgdG8gdXNlIHRoZSBtYXJrIHdlIHdlcmUgZ29pbmcgdG8uIgogICAgICAobGV0CgkgKChvcmct dG9kby1rd2QtYWxpc3QKCSAgICAgdGVzdC1vcmctY2hvb3NlOnRoZDpjb250ZXh0Omt3ZC1hbGlz dCkpCgkgKGVxdWFsCgkgICAgKG9yZy1jaG9vc2UtZ2V0LWRlZmF1bHQtbWFyayBuaWwgIkRPTkUi KQoJICAgIG5pbCkpKQoKICAgKCAgIlNpdHVhdGlvbjogV2Ugd2VyZSBhbHJlYWR5IGluIGEgY2hv b3NlIHR5cGUuClJlc3BvbnNlOiBSZXR1cm4gbmlsLCBzaWduYWxsaW5nIHRvIHVzZSB0aGUgbWFy ayB3ZSB3ZXJlIGdvaW5nIHRvLiIKICAgICAgKGxldAoJICgob3JnLXRvZG8ta3dkLWFsaXN0Cgkg ICAgIHRlc3Qtb3JnLWNob29zZTp0aGQ6Y29udGV4dDprd2QtYWxpc3QpKQoJIChlcXVhbAoJICAg IChvcmctY2hvb3NlLWdldC1kZWZhdWx0LW1hcmsgIllFUyIgIk1BWUJFX1lOIikKCSAgICBuaWwp KSkKCiAgIAogICA7O1RoZXNlIHRlc3RzIHRlc3QgdGhlIGluZGV4IHJldHVybiBmb3IKICAgOztg b3JnLWNob29zZS1nZXQtZGVmYXVsdC1tYXJrLWluZGV4JyBhbmQgYWxzbyB0ZXN0IHRoZSBzdHJp bmcKICAgOztyZXR1cm4gZm9yIGBvcmctY2hvb3NlLWdldC1kZWZhdWx0LW1hcmsnLiAgQ29tYmlu aW5nIHRoZSB0ZXN0cwogICA7O3VuZGVyIGBhbmQnIGlzIG5vdCBnb29kIHN0eWxlIGJ1dCBJIGRv bid0IHdhbnQgdG8gd3JpdGUgZWFjaAogICA7O3NldHVwIHR3aWNlLgoKICAgKCAgIlNpdHVhdGlv bjogdGhlcmUgYXJlIG5vIHJhbmdlcy4KUmVzcG9uc2U6IHJldHVybiB0aGUgc3RhdGljIGRlZmF1 bHQuIgogICAgICAobGV0CgkgKChvcmctY2hvb3NlLW1hcmstZGF0YSAKCSAgICAgdGVzdC1vcmct Y2hvb3NlOnRoZDpmaWxlLW5vbmF1dG9tYXRpYy1tYXJrLWRhdGEpCgkgICAgKG9yZy10b2RvLWt3 ZC1hbGlzdAoJICAgICAgIHRlc3Qtb3JnLWNob29zZTp0aGQ6Y29udGV4dDprd2QtYWxpc3QpKQoJ IAoJICh3aXRoLW1vY2sKCSAgICAoc3R1YiBvcmctY2hvb3NlLWdldC1oaWdoZXN0LW1hcmstaW5k ZXggPT4gbmlsKQoJICAgIChhbmQKCSAgICAgICAoZXF1YWwgCgkJICAob3JnLWNob29zZS1nZXQt ZGVmYXVsdC1tYXJrLWluZGV4OnRoICJOTyIKCQkgICAgIHRlc3Qtb3JnLWNob29zZTp0aGQ6Zmls ZS1ub25hdXRvbWF0aWMtbWFyay1kYXRhKQoJCSAgMSkKIAkgICAgICAgKGVxdWFsCiAJCSAgKG9y Zy1jaG9vc2UtZ2V0LWRlZmF1bHQtbWFyayAiTk8iIG5pbCkKIAkJICAiTUFZQkVfWU4iKSkpKSkK ICAgCiAgICggIlNpdHVhdGlvbjogbm8gY3VycmVudCBtYXJrIGlzIGluIHRoZSB1cHBlciByYW5n ZS4KUmVzcG9uc2U6IHJldHVybiB0aGUgc3RhdGljIGRlZmF1bHQuIgogICAgICAobGV0CgkgKChv cmctY2hvb3NlLW1hcmstZGF0YSAKCSAgICAgdGVzdC1vcmctY2hvb3NlOnRoZDpub2ZpbGUtNC1t YXJrLWRhdGEpCgkgICAgKG9yZy10b2RvLWt3ZC1hbGlzdAoJICAgICAgIHRlc3Qtb3JnLWNob29z ZTp0aGQ6bm9maWxlLTQta3dkLWFsaXN0KSkKCSAod2l0aC1tb2NrCgkgICAgKHN0dWIgb3JnLWNo b29zZS1nZXQtaGlnaGVzdC1tYXJrLWluZGV4ID0+IDIpCgkgICAgKGFuZAoJICAgICAgIChlcXVh bCAKCQkgIChvcmctY2hvb3NlLWdldC1kZWZhdWx0LW1hcmstaW5kZXg6dGggCgkJICAgICAiT05F IgoJCSAgICAgdGVzdC1vcmctY2hvb3NlOnRoZDpub2ZpbGUtNC1tYXJrLWRhdGEpCgkJICA0KQog CSAgICAgICAoZXF1YWwKIAkJICAob3JnLWNob29zZS1nZXQtZGVmYXVsdC1tYXJrICJPTkUiIG5p bCkKIAkJICAiRk9VUiIpCgkgICAgICAgKSkpKQoKCiAgIDs7QmVjYXVzZSB0aGUgc3RhdGljIGRl ZmF1bHQgaXMgYXQgb3IgYWJvdmUgdGhlIHRvcCBvZiBsb3dlciByYW5nZSwKICAgOzthbnkgbWly cm9yLXdpc2UgY29uc3RyYWludCBpcyBhIHN0cm9uZ2VyIGNvbnN0cmFpbnQgdGhhbiBpdC4gIFNv CiAgIDs7bm8gYWRkaXRpb25hbCB0ZXN0IGlzIG5lZWRlZCBmb3IgdGhlIGludGVyYWN0aW9uIGJl dHdlZW4gdGhvc2UKICAgOzt0d28gY29uc3RyYWludHMuCgogICAoICJTaXR1YXRpb246IGEgY3Vy cmVudCBtYXJrIGlzIGluIHRoZSB1cHBlciByYW5nZS4KUmVzcG9uc2U6IHJldHVybiBhbiBhY2Nv cmRpbmdseSBsb3dlciBpbmRleC4uIgogICAgICAobGV0CgkgKChvcmctY2hvb3NlLW1hcmstZGF0 YSAKCSAgICAgdGVzdC1vcmctY2hvb3NlOnRoZDpub2ZpbGUtNC1tYXJrLWRhdGEpCgkgICAgKG9y Zy10b2RvLWt3ZC1hbGlzdAoJICAgICAgIHRlc3Qtb3JnLWNob29zZTp0aGQ6bm9maWxlLTQta3dk LWFsaXN0KSkKCSAod2l0aC1tb2NrCgkgICAgKHN0dWIgb3JnLWNob29zZS1nZXQtaGlnaGVzdC1t YXJrLWluZGV4ID0+IDYpCgkgICAgKGFuZAoJICAgICAgIChlcXVhbCAKCQkgIChvcmctY2hvb3Nl LWdldC1kZWZhdWx0LW1hcmstaW5kZXg6dGggCgkJICAgICAiT05FIgoJCSAgICAgdGVzdC1vcmct Y2hvb3NlOnRoZDpub2ZpbGUtNC1tYXJrLWRhdGEpCgkJICAzKQogCSAgICAgICAoZXF1YWwKIAkJ ICAob3JnLWNob29zZS1nZXQtZGVmYXVsdC1tYXJrICJPTkUiIG5pbCkKIAkJICAiVEhSRUUiKSkp KSkKCgogICAoIlNpdHVhdGlvbjogUG9pbnQgaXMgb24gYSBoZWFkaW5nLiAgClRoZSBvbmx5IHR5 cGUgb2YgVE9ETyBpbiB0aGlzIGJ1ZmZlciBpcyBhIGNob29zZSB0eXBlLgpUaGUgZGVmYXVsdCB0 eXBlIGlzIE1BWUJFLgpObyBzaWJsaW5nIG1hcmsgaXMgaGlnaGVyIHRoYW4gTEVBTklOR19UT1dB UkRTLgpPcGVyYXRpb246IEFkZCBhIG5ldyB0b2RvIGhlYWRpbmcuClJlc3VsdDogSXQgdGhlbiBo YXMgdGhlIG1hcmsgTUFZQkUuIgoKICAgICAgKG9yZy1jaG9vc2U6dGg6aW4tYnVmZmVyLWF0Cgkg KDpmaWxlIHRlc3Qtb3JnLWNob29zZTp0aGQ6ZmlsZS1zaW1wbGUKCSAgICA6aWQgdGVzdC1vcmct Y2hvb3NlOnRoZDpmaWxlLXNpbXBsZS1zaWItbWF5YmUtaWQpCgkgKG9yZy1pbnNlcnQtdG9kby1o ZWFkaW5nIDEpCgoJIChlcXVhbAoJICAgIChvcmctZW50cnktZ2V0IChwb2ludCkgIlRPRE8iKQoJ ICAgICJNQVlCRSIpKSkKICAgCiAgICgiU2l0dWF0aW9uOiBQb2ludCBpcyBvbiBhIGhlYWRpbmcg d2l0aCBubyBtYXJrLgpUaGUgb25seSB0eXBlIG9mIFRPRE8gaW4gdGhpcyBidWZmZXIgaXMgYSBj aG9vc2UgdHlwZS4KVGhlIGRlZmF1bHQgdHlwZSBpcyBNQVlCRS4KTm8gc2libGluZyBtYXJrIGlz IGhpZ2hlciB0aGFuIExFQU5JTkdfVE9XQVJEUy4KT3BlcmF0aW9uOiBBZGQgYSB0b2RvIG1hcmsg dG8gdGhlIGhlYWRpbmcuClJlc3VsdDogSXQgdGhlbiBoYXMgdGhlIG1hcmsgTUFZQkUuIgoKICAg ICAgKG9yZy1jaG9vc2U6dGg6aW4tYnVmZmVyLWF0CgkgKDpmaWxlIHRlc3Qtb3JnLWNob29zZTp0 aGQ6ZmlsZS1zaW1wbGUKCSAgICA6aWQgdGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLXNpbXBsZS1z aWItbWF5YmUtaWQpIAoJIChvcmctaW5zZXJ0LWhlYWRpbmcpCgoJIAoJIChvcmctdG9kbykKCSAK CSAoZXF1YWwKCSAgICAob3JnLWVudHJ5LWdldCAocG9pbnQpICJUT0RPIikKCSAgICAiTUFZQkUi KSkpCiAgIAogICAKICAgKCJTaXR1YXRpb246IFBvaW50IGlzIG9uIGEgaGVhZGluZy4gIApUaGUg b25seSB0eXBlIG9mIFRPRE8gaW4gdGhpcyBidWZmZXIgaXMgYSBjaG9vc2UgdHlwZS4KVGhlIGRl ZmF1bHQgdHlwZSBpcyBNQVlCRS4KQSBzaWJsaW5nIG1hcmsgaXMgQ0hPU0VOClRoZSBtYXJrIE5P VF9DSE9TRU4gbWlycm9ycyB0aGUgbWFyayBDSE9TRU4uCk9wZXJhdGlvbjogQWRkIGEgdG9kbyBt YXJrIHRvIHRoZSBoZWFkaW5nLgpSZXN1bHQ6IEl0IHRoZW4gaGFzIHRoZSBtYXJrIE5PVF9DSE9T RU4uIgoKICAgICAgKG9yZy1jaG9vc2U6dGg6aW4tYnVmZmVyLWF0CgkgKDpmaWxlIHRlc3Qtb3Jn LWNob29zZTp0aGQ6ZmlsZS13LTEtY2hvc2VuCgkgICAgOmlkIHRlc3Qtb3JnLWNob29zZTp0aGQ6 ZmlsZS13LTEtY2hvc2VuLXNpYi1ub3QtY2hvc2VuLWEtaWQpIAoJIChvcmctaW5zZXJ0LWhlYWRp bmcpCgoJIChvcmctdG9kbykKCgkgKGVxdWFsCgkgICAgKG9yZy1lbnRyeS1nZXQgKHBvaW50KSAi VE9ETyIpCgkgICAgIk5PVF9DSE9TRU4iKSkpKQoKCjs7O18gLCBUZXN0cyBvZiB0aGUgdHJpZ2dl ciBmdW5jdGlvbgoKOzs7XyAgLiBvcmctY2hvb3NlLWNvbmZvcm0tYWZ0ZXItcHJvbW90aW9uCgo7 OztfICAgLCBUZXN0IGhlbHBlcgoKKGRlZnVuKiBvcmctY2hvb3NlLWNvbmZvcm0tYWZ0ZXItcHJv bW90aW9uOnRoICgma2V5IGZpbGUgaWQKCQkJCQkJICAgIG1hcmstZGF0YSAKCQkJCQkJICAgIG90 aGVyLXdhcwoJCQkJCQkgICAgb3RoZXItY2hhbmdlZC10bwoJCQkJCQkgICAgZXhwZWN0CgkJCQkJ CSAgICBkZW1vdGVkKQogICAiIgogICAob3JnLWNob29zZTp0aDppbi1idWZmZXItYXQKICAgICAg KDpmaWxlIGZpbGUgOmlkIGlkKSAKICAgICAgKGxldCoKCSAoCgkgICAgKGRhdGEKCSAgICAgICAo b3IKCQkgIChhc3NvYyBvdGhlci1jaGFuZ2VkLXRvIG1hcmstZGF0YSkKCQkgIChlcnJvcgoJCSAg ICAgIk1hcmstZGF0YSBzaG91bGQgY29udGFpbiB0aGUgZW50cnkgYmVpbmcgY2hhbmdlZCB0byIp KSkKCSAgICAKCSAgICAoa2V5d29yZHMKCSAgICAgICAob3JnLWNob29zZS1tYXJrLWRhdGEuLWFs bC1rZXl3b3JkcyBkYXRhKSkKCSAgICAKCSAgICAoaW5kZXgKCSAgICAgICAob3JnLWNob29zZS1n ZXQtaW5kZXgtaW4ta2V5d29yZHMKCQkgIG90aGVyLWNoYW5nZWQtdG8ga2V5d29yZHMpKQoJICAg IChvbGQtaW5kZXgKCSAgICAgICAod2hlbiBvdGhlci13YXMKCQkgIChvcmctY2hvb3NlLWdldC1p bmRleC1pbi1rZXl3b3JkcwoJCSAgICAgb3RoZXItd2FzIGtleXdvcmRzKSkpKQoJIAoJIChpZiBk ZW1vdGVkCgkgICAgKG9yZy1jaG9vc2UtY29uZm9ybS1hZnRlci1kZW1vdGlvbgoJICAgICAgIDAg OztGYWtlIHBvc2l0aW9uIHRoYXQgbWF0Y2hlcyBub3RoaW5nCgkgICAgICAga2V5d29yZHMKCSAg ICAgICAobGV0CgkJICAoKG5ldy1oaWdoZXN0IAoJCSAgICAgIChvcmctY2hvb3NlLWhpZ2hlc3Qt b3RoZXItb2sgaW5kZXggZGF0YSkpCgkJICAgICAoc3RhdGljLWRlZmF1bHQKCQkJKG9yZy1jaG9v c2UtbWFyay1kYXRhLi1zdGF0aWMtZGVmYXVsdCBkYXRhKSkpCgkJICAoaWYgbmV3LWhpZ2hlc3QK CQkgICAgIChtaW4gbmV3LWhpZ2hlc3Qgc3RhdGljLWRlZmF1bHQpCgkJICAgICBzdGF0aWMtZGVm YXVsdCkpCgkgICAgICAgKG9yZy1jaG9vc2UtaGlnaGVzdC1vdGhlci1vayBvbGQtaW5kZXggZGF0 YSkpCgkgICAgCgkgICAgKG9yZy1jaG9vc2UtY29uZm9ybS1hZnRlci1wcm9tb3Rpb24gCgkgICAg ICAgMCA7O0Zha2UgcG9zaXRpb24gdGhhdCBtYXRjaGVzIG5vdGhpbmcKCSAgICAgICBrZXl3b3Jk cwoJICAgICAgIChvcmctY2hvb3NlLWhpZ2hlc3Qtb3RoZXItb2sgaW5kZXggZGF0YSkpKSkKCiAg ICAgIChlcXVhbAoJIChvcmctZW50cnktZ2V0IChwb2ludCkgIlRPRE8iKQoJIGV4cGVjdCkpKQoK Cjs7O18gICAsIFRlc3RzCihydGVzdDpkZWZ0ZXN0IG9yZy1jaG9vc2UtY29uZm9ybS1hZnRlci1w cm9tb3Rpb24KCiAgICggICJTaXR1YXRpb246IEVudHJ5J3MgbWFyayBpcyBmcm9tIHNvbWUgb3Ro ZXIgd29ya2Zsb3cgc3RhdGUuClJlc3BvbnNlOiBEbyBub3RoaW5nLiIKICAgICAgKG9yZy1jaG9v c2UtY29uZm9ybS1hZnRlci1wcm9tb3Rpb246dGggCgkgOmZpbGUgdGVzdC1vcmctY2hvb3NlOnRo ZDpmaWxlLXctMi10eXBlcwoJIDppZCB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtdy0yLXR5cGVz LXQyLXllcy1pZAoJIDptYXJrLWRhdGEgdGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLXctMi10eXBl cy1tYXJrLWRhdGEKCSA6b3RoZXItY2hhbmdlZC10byAiQ0hPU0VOIgoJIDpleHBlY3QgIllFUyIp KQoKICAgKCAgIlNpdHVhdGlvbjogRW50cnkncyBtYXJrIGlzIGFscmVhZHkgbG93ZXIgdGhhbiB0 aGUgaGlnaGVzdCBhbGxvd2VkIGluZGV4LgpSZXNwb25zZTogTm8gY2hhbmdlLiIKICAgICAgKG9y Zy1jaG9vc2UtY29uZm9ybS1hZnRlci1wcm9tb3Rpb246dGggCgkgOmZpbGUgdGVzdC1vcmctY2hv b3NlOnRoZDpmaWxlLXNpbXBsZQoJIDppZCB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtc2ltcGxl LXNpYi1yZWplY3RlZC1pZAoJIDptYXJrLWRhdGEgdGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLXNp bXBsZS1tYXJrLWRhdGEKCSA6b3RoZXItY2hhbmdlZC10byAiQ0hPU0VOIgoJIDpleHBlY3QgIlJF SkVDVEVEIikpCgoKICAgKCAgIlNpdHVhdGlvbjogRW50cnkncyBtYXJrIGlzIGhpZ2hlciB0aGFu IHRoZSBoaWdoZXN0IGFsbG93ZWQgaW5kZXguClJlc3BvbnNlOiBEZW1vdGUgaXQuIgogICAgICAo b3JnLWNob29zZS1jb25mb3JtLWFmdGVyLXByb21vdGlvbjp0aCAKCSA6ZmlsZSB0ZXN0LW9yZy1j aG9vc2U6dGhkOmZpbGUtc2ltcGxlCgkgOmlkIHRlc3Qtb3JnLWNob29zZTp0aGQ6ZmlsZS1zaW1w bGUtc2liLWxlYW5pbmctaWQKCSA6bWFyay1kYXRhIHRlc3Qtb3JnLWNob29zZTp0aGQ6ZmlsZS1z aW1wbGUtbWFyay1kYXRhCgkgOm90aGVyLWNoYW5nZWQtdG8gIkxFQU5JTkdfVE9XQVJEUyIKCSA6 ZXhwZWN0ICJNQVlCRSIpKQogICApCjs7O18gIC4gb3JnLWNob29zZS1jb25mb3JtLWFmdGVyLWRl bW90aW9uCgo7OztfICAgLCBUZXN0cwoocnRlc3Q6ZGVmdGVzdCBvcmctY2hvb3NlLWNvbmZvcm0t YWZ0ZXItZGVtb3Rpb24KCiAgICggICJTaXR1YXRpb246IFRoZSBvdGhlciBlbnRyeSB3YXMgbm90 IGtlZXBpbmcgdGhpcyBub2RlIGJlbG93IHRoZSBkZWZhdWx0LgpSZXNwb25zZTogVGhpcyBub2Rl IGlzIHVuY2hhbmdlZC4iCiAgICAgIChvcmctY2hvb3NlLWNvbmZvcm0tYWZ0ZXItcHJvbW90aW9u OnRoIAoJIDpmaWxlIHRlc3Qtb3JnLWNob29zZTp0aGQ6ZmlsZS1zaW1wbGUKCSA6aWQgdGVzdC1v cmctY2hvb3NlOnRoZDpmaWxlLXNpbXBsZS1zaWItbWF5YmUtaWQKCSA6bWFyay1kYXRhIHRlc3Qt b3JnLWNob29zZTp0aGQ6ZmlsZS1zaW1wbGUtbWFyay1kYXRhCgkgOm90aGVyLXdhcyAiTEVBTklO R19UT1dBUkRTIgoJIDpvdGhlci1jaGFuZ2VkLXRvICJNQVlCRSIKCSA6ZGVtb3RlZCB0CgkgOmV4 cGVjdCAiTUFZQkUiKSkKICAgCiAgICggICJTaXR1YXRpb246IFRoZSBvdGhlciBlbnRyeSB3YXMg a2VlcGluZyB0aGlzIG5vZGUgYmVsb3cgdGhlIGRlZmF1bHQuClJlc3BvbnNlOiBUaGlzIG5vZGUg aXMgcHJvbW90ZWQuIgogICAgICAob3JnLWNob29zZS1jb25mb3JtLWFmdGVyLXByb21vdGlvbjp0 aCAKCSA6ZmlsZSB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtc2ltcGxlCgkgOmlkIHRlc3Qtb3Jn LWNob29zZTp0aGQ6ZmlsZS1zaW1wbGUtc2liLW1heWJlLWlkCgkgOm1hcmstZGF0YSB0ZXN0LW9y Zy1jaG9vc2U6dGhkOmZpbGUtc2ltcGxlLW1hcmstZGF0YQoJIDpvdGhlci13YXMgIkxFQU5JTkdf VE9XQVJEUyIKCSA6b3RoZXItY2hhbmdlZC10byAiQ0hPU0VOIgoJIDpkZW1vdGVkIHQKCSA6ZXhw ZWN0ICJOT1RfQ0hPU0VOIikpCiAgIAogICAoICAiU2l0dWF0aW9uOiBUaGUgb3RoZXIgZW50cnkg d2FzIGtlZXBpbmcgdGhpcyBub2RlIGJlbG93IHRoZQpkZWZhdWx0LiAgSXQgd2FzIGp1c3QgZGVt b3RlZCBxdWl0ZSBsb3cuClJlc3BvbnNlOiBUaGlzIG5vZGUgaXMgcHJvbW90ZWQgb25seSB0byB0 aGUgZGVmYXVsdC4iCiAgICAgIChvcmctY2hvb3NlLWNvbmZvcm0tYWZ0ZXItcHJvbW90aW9uOnRo IAoJIDpmaWxlIHRlc3Qtb3JnLWNob29zZTp0aGQ6ZmlsZS1zaW1wbGUKCSA6aWQgdGVzdC1vcmct Y2hvb3NlOnRoZDpmaWxlLXNpbXBsZS1zaWItbm90LWNob3Nlbi1pZAoJIDptYXJrLWRhdGEgdGVz dC1vcmctY2hvb3NlOnRoZDpmaWxlLXNpbXBsZS1tYXJrLWRhdGEKCSA6b3RoZXItd2FzICJDSE9T RU4iCgkgOm90aGVyLWNoYW5nZWQtdG8gIlJFSkVDVEVEIgoJIDpkZW1vdGVkIHQKCSA6ZXhwZWN0 ICJNQVlCRSIpKQoKICAgKQoKCjs7O18gIC4gb3JnLWNob29zZS1rZWVwLXNlbnNpYmxlCjs7O18g ICAsIEhlbHBlcgooZGVmdW4qIG9yZy1jaG9vc2Uta2VlcC1zZW5zaWJsZTp0aDptYW51YWwgKCZr ZXkgZnJvbSB0bykKICAgIiIKICAgCiAgIChsZXQKICAgICAgKG9yZy1ibG9ja2VyLWhvb2spCiAg ICAgIChvcmctdG9kbyB0bykKICAgICAgKG9yZy1jaG9vc2Uta2VlcC1zZW5zaWJsZQoJIChsaXN0 CgkgICAgOmZyb20gZnJvbQoJICAgIDp0byB0bwoJICAgIDpwb3NpdGlvbiAocG9pbnQtYXQtYm9s KSkpKSkKCjs7O18gICAsIFRlc3RzCgoocnRlc3Q6ZGVmdGVzdCBvcmctY2hvb3NlLWtlZXAtc2Vu c2libGUKCiAgIDs7Tm9uLWluc2ludWF0ZWQgdGVzdHMsIGBvcmctY2hvb3NlLWtlZXAtc2Vuc2li bGUnIGlzIGp1c3QKICAgOztjYWxsZWQgbWFudWFsbHkuCiAgICggICJPcGVyYXRpb246IEFuIGVu dHJ5J3MgdG9kbyBtYXJrIGlzIGNoYW5nZWQgaW50byBhIFRPRE8gZnJvbQpzb21lIG90aGVyIHdv cmtmbG93IHN0YXRlLiAKUmVzcG9uc2U6IE5vIGNoYW5nZSB0byBvdXIgZW50cmllcy4iCiAgICAg IChvcmctY2hvb3NlOnRoOmluLWJ1ZmZlci1hdAoJICg6ZmlsZSB0ZXN0LW9yZy1jaG9vc2U6dGhk OmZpbGUtc2ltcGxlCgkgICAgOmlkIHRlc3Qtb3JnLWNob29zZTp0aGQ6ZmlsZS1zaW1wbGUtc2li LXJlamVjdGVkLWlkKSAKCSAobGV0CgkgICAgKChvcmctdG9kby1rd2QtYWxpc3QKCQl0ZXN0LW9y Zy1jaG9vc2U6dGhkOmNvbnRleHQ6a3dkLWFsaXN0LXNpbXBsZSkpCgkgICAgKG9yZy1jaG9vc2Ut a2VlcC1zZW5zaWJsZTp0aDptYW51YWwgCgkgICAgICAgOmZyb20gIlJFU1BPTlNFOiIgOnRvICJO T1RfQ0hPU0VOIikpCSAKCSAKCSAoZXF1YWwKCSAgICAob3JnLWNob29zZTp0aDpjb2xsZWN0LWNo aWxkcmVucy10b2RvLW1hcmtzCgkgICAgICAgdGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLXNpbXBs ZS1wYXJlbnQtaWQpCgkgICAgJygiTUFZQkUiIk5PVF9DSE9TRU4iIkxFQU5JTkdfVE9XQVJEUyIi Tk9UX0NIT1NFTiIpKSkpCiAgIAoKICAgKCAgIk9wZXJhdGlvbjogQW4gZW50cnkgaXMgcHJvbW90 ZWQsIGJ1dCBub3QgaGlnaCBlbm91Z2ggdG8gY2F1c2UKaW5jb25zaXN0ZW50IHN0YXRlLgpSZXNw b25zZTogSXQgZ2V0cyBwcm9tb3RlZC4gIE90aGVyIG5vZGVzIGtlZXAgdGhlaXIgdmFsdWVzIgog ICAgICAob3JnLWNob29zZTp0aDppbi1idWZmZXItYXQKCSAoOmZpbGUgdGVzdC1vcmctY2hvb3Nl OnRoZDpmaWxlLXNpbXBsZQoJICAgIDppZCB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtc2ltcGxl LXNpYi1yZWplY3RlZC1pZCkgCgoJIChvcmctY2hvb3NlLWtlZXAtc2Vuc2libGU6dGg6bWFudWFs IAoJICAgIDpmcm9tICJSRVNQT05TRToiIDp0byAiTk9UX0NIT1NFTiIpCSAKCSAKCSAoZXF1YWwK CSAgICAob3JnLWNob29zZTp0aDpjb2xsZWN0LWNoaWxkcmVucy10b2RvLW1hcmtzCgkgICAgICAg dGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLXNpbXBsZS1wYXJlbnQtaWQpCgkgICAgJygiTUFZQkUi Ik5PVF9DSE9TRU4iIkxFQU5JTkdfVE9XQVJEUyIiTk9UX0NIT1NFTiIpKSkpCiAgIAoKICAgKCAg Ik9wZXJhdGlvbjogQW4gZW50cnkgaXMgcHJvbW90ZWQgaGlnaCBlbm91Z2ggdG8gY2F1c2UKaW5j b25zaXN0ZW50IHN0YXRlLiAgTGVhbmluZ190b3dhcmRzIGJlY29tZXMgQ2hvc2VuLgpSZXNwb25z ZTogSXQgZ2V0cyBwcm9tb3RlZC4gIE90aGVyIG5vZGVzIGFyZSBkZW1vdGVkIGp1c3QgZW5vdWdo IHRvCmtlZXAgdGhlIHN0YXRlIGNvbnNpc3RlbnQuIgogICAgICAob3JnLWNob29zZTp0aDppbi1i dWZmZXItYXQKCSAoOmZpbGUgdGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLXNpbXBsZQoJICAgIDpp ZCB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtc2ltcGxlLXNpYi1sZWFuaW5nLWlkKSAKCgkgCgkg KG9yZy1jaG9vc2Uta2VlcC1zZW5zaWJsZTp0aDptYW51YWwgCgkgICAgOmZyb20gIkxFQU5JTkdf VE9XQVJEUyIgOnRvICJDSE9TRU4iKQoJIAoJIChlcXVhbAoJICAgIChvcmctY2hvb3NlOnRoOmNv bGxlY3QtY2hpbGRyZW5zLXRvZG8tbWFya3MKCSAgICAgICB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZp bGUtc2ltcGxlLXBhcmVudC1pZCkKCSAgICAnKCJOT1RfQ0hPU0VOIiJSRUpFQ1RFRCIiQ0hPU0VO IiJOT1RfQ0hPU0VOIikpKSkKCgogICAoICAiT3BlcmF0aW9uOiBBbiBlbnRyeSBpcyBwcm9tb3Rl ZCBoaWdoIGVub3VnaCB0byBjYXVzZQppbmNvbnNpc3RlbnQgc3RhdGUuICBSZWplY3RlZCBiZWNv bWVzIExlYW5pbmdfdG93YXJkcy4KUmVzcG9uc2U6IEl0IGdldHMgcHJvbW90ZWQuICBPdGhlciBu b2RlcyBhcmUgZGVtb3RlZCBqdXN0IGVub3VnaCB0bwprZWVwIHRoZSBzdGF0ZSBjb25zaXN0ZW50 LiIKICAgICAgKG9yZy1jaG9vc2U6dGg6aW4tYnVmZmVyLWF0CgkgKDpmaWxlIHRlc3Qtb3JnLWNo b29zZTp0aGQ6ZmlsZS1zaW1wbGUKCSAgICA6aWQgdGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLXNp bXBsZS1zaWItcmVqZWN0ZWQtaWQpIAoJIAoJIChvcmctY2hvb3NlLWtlZXAtc2Vuc2libGU6dGg6 bWFudWFsIAoJICAgIDpmcm9tICJSRUpFQ1RFRCIgOnRvICJMRUFOSU5HX1RPV0FSRFMiKQoJIAoJ IChlcXVhbAoJICAgIChvcmctY2hvb3NlOnRoOmNvbGxlY3QtY2hpbGRyZW5zLXRvZG8tbWFya3MK CSAgICAgICB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtc2ltcGxlLXBhcmVudC1pZCkKCSAgICAn KCJNQVlCRSIiTEVBTklOR19UT1dBUkRTIiJNQVlCRSIiTk9UX0NIT1NFTiIpKSkpCiAgIAoKICAg KCAgIlNpdHVhdGlvbjogQW4gZW50cnkgd2FzIG1lZGl1bS1oaWdoLW1hcmtlZDsgaXQncyBub3Qg aGlnaAplbm91Z2ggdG8gYmUga2VlcGluZyBvdGhlciBub2RlcyBkb3duIGJlbG93IHRoZSBkZWZh dWx0LgpPcGVyYXRpb246IFRoYXQgZW50cnkgaXMgZGVtb3RlZCBvbmUgcGxhY2UuICBMRUFOSU5H X1RPV0FSRFMgYmVjb21lcyBNQVlCRS4KUmVzcG9uc2U6IEl0IGdldHMgZGVtb3RlZC4gIE90aGVy IG5vZGVzIGFyZSB1bmNoYW5nZWQuIgogICAgICAob3JnLWNob29zZTp0aDppbi1idWZmZXItYXQK CSAoOmZpbGUgdGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLXNpbXBsZQoJICAgIDppZCB0ZXN0LW9y Zy1jaG9vc2U6dGhkOmZpbGUtc2ltcGxlLXNpYi1sZWFuaW5nLWlkKSAKCSAKCSAob3JnLWNob29z ZS1rZWVwLXNlbnNpYmxlOnRoOm1hbnVhbCAKCSAgICA6ZnJvbSAiTEVBTklOR19UT1dBUkRTIiA6 dG8gIk1BWUJFIikKCSAKCSAoZXF1YWwKCSAgICAob3JnLWNob29zZTp0aDpjb2xsZWN0LWNoaWxk cmVucy10b2RvLW1hcmtzCgkgICAgICAgdGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLXNpbXBsZS1w YXJlbnQtaWQpCgkgICAgJygiTUFZQkUiIlJFSkVDVEVEIiJNQVlCRSIiTk9UX0NIT1NFTiIpKSkp CiAgIAogICAoICAiU2l0dWF0aW9uOiBBbiBlbnRyeSB3YXMgaGlnaC1tYXJrZWQsIGhvbGRpbmcg b3RoZXIgbm9kZXMgYmVsb3cKdGhlIHRvcCBvZiB0aGUgbG93IHJhbmdlLiAKT3BlcmF0aW9uOiBU aGF0IGVudHJ5IGlzIGRlbW90ZWQgb25lIHBsYWNlLiAgQ0hPU0VOIGJlY29tZXMgTEVBTklOR19U T1dBUkRTLgpSZXNwb25zZTogSXQgZ2V0cyBkZW1vdGVkLiAgTm9kZXMgdGhhdCBpdCB3YXMgaG9s ZGluZyBkb3duIGFyZQpwcm9tb3RlZC4gTk9UX0NIT1NFTiBiZWNvbWVzIE1BWUJFLiIKICAgICAg KG9yZy1jaG9vc2U6dGg6aW4tYnVmZmVyLWF0CgkgKDpmaWxlIHRlc3Qtb3JnLWNob29zZTp0aGQ6 ZmlsZS13LTEtY2hvc2VuCgkgICAgOmlkIHRlc3Qtb3JnLWNob29zZTp0aGQ6ZmlsZS13LTEtY2hv c2VuLXNpYi1jaG9zZW4taWQpIAoJIAoJIChvcmctY2hvb3NlLWtlZXAtc2Vuc2libGU6dGg6bWFu dWFsIAoJICAgIDpmcm9tICJDSE9TRU4iIDp0byAiTEVBTklOR19UT1dBUkRTIikKCSAKCSAoZXF1 YWwKCSAgICAob3JnLWNob29zZTp0aDpjb2xsZWN0LWNoaWxkcmVucy10b2RvLW1hcmtzCgkgICAg ICAgdGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLXctMS1jaG9zZW4tcGFyZW50LWlkKQoJICAgICco ICJNQVlCRSIgIlJFSkVDVEVEIiAiTEVBTklOR19UT1dBUkRTIiAiTUFZQkUiKSkpKQogICAKCiAg ICggICJTaXR1YXRpb246IEFuIGVudHJ5IHdhcyBoaWdoLW1hcmtlZCwgaG9sZGluZyBvdGhlciBu b2RlcyBiZWxvdwp0aGUgdG9wIG9mIHRoZSBsb3cgcmFuZ2UuIApPcGVyYXRpb246IFRoYXQgZW50 cnkgaXMgZGVtb3RlZCB0d28gcGxhY2VzLiAgQ0hPU0VOIGJlY29tZXMgTUFZQkUuClJlc3BvbnNl OiBJdCBnZXRzIGRlbW90ZWQuICBOb2RlcyB0aGF0IGl0IHdhcyBob2xkaW5nIGRvd24gYXJlCnBy b21vdGVkIGFzIGlmIGJ5IHR3byBvbmUtcGxhY2Ugb3BlcmF0aW9ucy4KTk9UX0NIT1NFTiBiZWNv bWVzIE1BWUJFLiIKICAgICAgKG9yZy1jaG9vc2U6dGg6aW4tYnVmZmVyLWF0CgkgKDpmaWxlIHRl c3Qtb3JnLWNob29zZTp0aGQ6ZmlsZS13LTEtY2hvc2VuCgkgICAgOmlkIHRlc3Qtb3JnLWNob29z ZTp0aGQ6ZmlsZS13LTEtY2hvc2VuLXNpYi1jaG9zZW4taWQpIAoJIAoJIChvcmctY2hvb3NlLWtl ZXAtc2Vuc2libGU6dGg6bWFudWFsIAoJICAgIDpmcm9tICJDSE9TRU4iIDp0byAiTUFZQkUiKQoJ IAoJIChlcXVhbAoJICAgIChvcmctY2hvb3NlOnRoOmNvbGxlY3QtY2hpbGRyZW5zLXRvZG8tbWFy a3MKCSAgICAgICB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtdy0xLWNob3Nlbi1wYXJlbnQtaWQp CgkgICAgJygiTUFZQkUiICJSRUpFQ1RFRCIgIk1BWUJFIiAiTUFZQkUiKSkpKQoKICAgOztObyB0 ZXN0cyBmb3IgdGhlIHNpdHVhdGlvbiB3aGVyZSBhIG5vZGUgaXMgZGVtb3RlZCB0byB0aGUgbWlk ZGxlCiAgIDs7b2YgdGhlIHVwcGVyIHJhbmdlIGFuZCBzaG91bGQgYm90aCBwb3RlbnRpYWxseSBy YWlzZSBzb21lIG90aGVycwogICA7O2FuZCBsb3dlciBzb21lIG90aGVycy4gIEl0J3MgdW5saWtl bHkgdG8gYmUgYW4gaW1wb3J0YW50CiAgIDs7c2l0dWF0aW9uLiAgWUFHTkkuCgoKICAgOztUZXN0 cyBvZiBvcmctY2hvb3NlIGFmdGVyIGhhdmluZyBiZWVuIGluc2ludWF0ZWQKCiAgIDs7SW1wbGlj aXQgb3BlcmF0aW9ucyBvZiBgb3JnLXRvZG8nCiAgICggICJPcGVyYXRpb246IEFuIGVudHJ5IGlz IGltcGxpY2l0bHkgcHJvbW90ZWQuClJlc3BvbnNlOiBJdCBnZXRzIHByb21vdGVkIHRvIHRoZSBu ZXh0IHZhbHVlLiIKICAgICAgKG9yZy1jaG9vc2U6dGg6aW4tYnVmZmVyLWF0CgkgKDpmaWxlIHRl c3Qtb3JnLWNob29zZTp0aGQ6ZmlsZS1zaW1wbGUKCSAgICA6aWQgdGVzdC1vcmctY2hvb3NlOnRo ZDpmaWxlLXNpbXBsZS1zaWItcmVqZWN0ZWQtaWQpIAoJIAoJIChvcmctdG9kbykKCSAoZXF1YWwK CSAgICAob3JnLWVudHJ5LWdldCAocG9pbnQpICJUT0RPIikKCSAgICAiTk9UX0NIT1NFTiIpKSkK CiAgICggICJPcGVyYXRpb246IEFuIGVudHJ5IGlzIGltcGxpY2l0bHkgcHJvbW90ZWQsIGJ1dCBu b3QgaGlnaCBlbm91Z2ggdG8gY2F1c2UKaW5jb25zaXN0ZW50IHN0YXRlLgpSZXNwb25zZTogSXQg Z2V0cyBwcm9tb3RlZC4gIE90aGVyIG5vZGVzIGtlZXAgdGhlaXIgdmFsdWVzIgogICAgICAob3Jn LWNob29zZTp0aDppbi1idWZmZXItYXQKCSAoOmZpbGUgdGVzdC1vcmctY2hvb3NlOnRoZDpmaWxl LXNpbXBsZQoJICAgIDppZCB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtc2ltcGxlLXNpYi1yZWpl Y3RlZC1pZCkgCgkgCgkgKG9yZy10b2RvKQoJIChlcXVhbAoJICAgIChvcmctY2hvb3NlOnRoOmNv bGxlY3QtY2hpbGRyZW5zLXRvZG8tbWFya3MKCSAgICAgICB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZp bGUtc2ltcGxlLXBhcmVudC1pZCkKCSAgICAnKCJNQVlCRSIiTk9UX0NIT1NFTiIiTEVBTklOR19U T1dBUkRTIiJOT1RfQ0hPU0VOIikpKSkKCiAgIDs7VGVzdHMgdGhhdCBvcGVyYXRpb25zIHN0aWxs IGJlaGF2ZSBhZnRlciBpbnNpbnVhdGlvbiB0aGUgc2FtZSBhcwogICA7O3RoZXkgZGlkIG1hbnVh bGx5LgogICAoICAiT3BlcmF0aW9uOiBBbiBlbnRyeSBpcyBleHBsaWNpdGx5IHByb21vdGVkLCBi dXQgbm90IGhpZ2ggZW5vdWdoIHRvIGNhdXNlCmluY29uc2lzdGVudCBzdGF0ZS4KUmVzcG9uc2U6 IEl0IGdldHMgcHJvbW90ZWQuICBPdGhlciBub2RlcyBrZWVwIHRoZWlyIHZhbHVlcyIKICAgICAg KG9yZy1jaG9vc2U6dGg6aW4tYnVmZmVyLWF0CgkgKDpmaWxlIHRlc3Qtb3JnLWNob29zZTp0aGQ6 ZmlsZS1zaW1wbGUKCSAgICA6aWQgdGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLXNpbXBsZS1zaWIt cmVqZWN0ZWQtaWQpIAoJIAoJIChvcmctdG9kbyAiTk9UX0NIT1NFTiIpCgkgCgkgKGVxdWFsCgkg ICAgKG9yZy1jaG9vc2U6dGg6Y29sbGVjdC1jaGlsZHJlbnMtdG9kby1tYXJrcwoJICAgICAgIHRl c3Qtb3JnLWNob29zZTp0aGQ6ZmlsZS1zaW1wbGUtcGFyZW50LWlkKQoJICAgICcoIk1BWUJFIiJO T1RfQ0hPU0VOIiJMRUFOSU5HX1RPV0FSRFMiIk5PVF9DSE9TRU4iKSkpKQogICAKCiAgICggICJP cGVyYXRpb246IEFuIGVudHJ5IGlzIHByb21vdGVkIGhpZ2ggZW5vdWdoIHRvIGNhdXNlCmluY29u c2lzdGVudCBzdGF0ZS4gIExlYW5pbmdfdG93YXJkcyBiZWNvbWVzIENob3Nlbi4KUmVzcG9uc2U6 IEl0IGdldHMgcHJvbW90ZWQuICBPdGhlciBub2RlcyBhcmUgZGVtb3RlZCBqdXN0IGVub3VnaCB0 bwprZWVwIHRoZSBzdGF0ZSBjb25zaXN0ZW50LiIKICAgICAgKG9yZy1jaG9vc2U6dGg6aW4tYnVm ZmVyLWF0CgkgKDpmaWxlIHRlc3Qtb3JnLWNob29zZTp0aGQ6ZmlsZS1zaW1wbGUKCSAgICA6aWQg dGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLXNpbXBsZS1zaWItbGVhbmluZy1pZCkgCgkgCgkgKG9y Zy10b2RvICJDSE9TRU4iKQoJIAoJIChlcXVhbAoJICAgIChvcmctY2hvb3NlOnRoOmNvbGxlY3Qt Y2hpbGRyZW5zLXRvZG8tbWFya3MKCSAgICAgICB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtc2lt cGxlLXBhcmVudC1pZCkKCSAgICAnKCJOT1RfQ0hPU0VOIiJSRUpFQ1RFRCIiQ0hPU0VOIiJOT1Rf Q0hPU0VOIikpKSkKCiAgICggICJPcGVyYXRpb246IEFuIGVudHJ5IGlzIHByb21vdGVkIGhpZ2gg ZW5vdWdoIHRvIGNhdXNlCmluY29uc2lzdGVudCBzdGF0ZS4gIFJlamVjdGVkIGJlY29tZXMgTGVh bmluZ190b3dhcmRzLgpSZXNwb25zZTogSXQgZ2V0cyBwcm9tb3RlZC4gIE90aGVyIG5vZGVzIGFy ZSBkZW1vdGVkIGp1c3QgZW5vdWdoIHRvCmtlZXAgdGhlIHN0YXRlIGNvbnNpc3RlbnQuIgogICAg ICAob3JnLWNob29zZTp0aDppbi1idWZmZXItYXQKCSAoOmZpbGUgdGVzdC1vcmctY2hvb3NlOnRo ZDpmaWxlLXNpbXBsZQoJICAgIDppZCB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtc2ltcGxlLXNp Yi1yZWplY3RlZC1pZCkgCgkgCgkgKG9yZy10b2RvICJMRUFOSU5HX1RPV0FSRFMiKQoJIAoJIChl cXVhbAoJICAgIChvcmctY2hvb3NlOnRoOmNvbGxlY3QtY2hpbGRyZW5zLXRvZG8tbWFya3MKCSAg ICAgICB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUtc2ltcGxlLXBhcmVudC1pZCkKCSAgICAnKCJN QVlCRSIiTEVBTklOR19UT1dBUkRTIiJNQVlCRSIiTk9UX0NIT1NFTiIpKSkpCiAgIAoKICAgKCAg IlNpdHVhdGlvbjogQW4gZW50cnkgd2FzIG1lZGl1bS1oaWdoLW1hcmtlZDsgaXQncyBub3QgaGln aAplbm91Z2ggdG8gYmUga2VlcGluZyBvdGhlciBub2RlcyBkb3duIGJlbG93IHRoZSBkZWZhdWx0 LgpPcGVyYXRpb246IFRoYXQgZW50cnkgaXMgZGVtb3RlZCBvbmUgcGxhY2UuICBMRUFOSU5HX1RP V0FSRFMgYmVjb21lcyBNQVlCRS4KUmVzcG9uc2U6IEl0IGdldHMgZGVtb3RlZC4iCiAgICAgIChv cmctY2hvb3NlOnRoOmluLWJ1ZmZlci1hdAoJICg6ZmlsZSB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZp bGUtc2ltcGxlCgkgICAgOmlkIHRlc3Qtb3JnLWNob29zZTp0aGQ6ZmlsZS1zaW1wbGUtc2liLWxl YW5pbmctaWQpIAoJIAoJIChvcmctdG9kbyAiTUFZQkUiKQoJIAoJIChlcXVhbAoJICAgIChvcmct Y2hvb3NlOnRoOmNvbGxlY3QtY2hpbGRyZW5zLXRvZG8tbWFya3MKCSAgICAgICB0ZXN0LW9yZy1j aG9vc2U6dGhkOmZpbGUtc2ltcGxlLXBhcmVudC1pZCkKCSAgICAnKCJNQVlCRSIiUkVKRUNURUQi Ik1BWUJFIiJOT1RfQ0hPU0VOIikpKSkKICAgCiAgICggICJTaXR1YXRpb246IEFuIGVudHJ5IHdh cyBoaWdoLW1hcmtlZCwgaG9sZGluZyBvdGhlciBub2RlcyBiZWxvdwp0aGUgdG9wIG9mIHRoZSBs b3cgcmFuZ2UuIApPcGVyYXRpb246IFRoYXQgZW50cnkgaXMgZGVtb3RlZCBvbmUgcGxhY2UuICBD SE9TRU4gYmVjb21lcyBMRUFOSU5HX1RPV0FSRFMuClJlc3BvbnNlOiBJdCBnZXRzIGRlbW90ZWQu ICBOb2RlcyB0aGF0IGl0IHdhcyBob2xkaW5nIGRvd24gYXJlCnByb21vdGVkLiBOT1RfQ0hPU0VO IGJlY29tZXMgTUFZQkUuIgogICAgICAob3JnLWNob29zZTp0aDppbi1idWZmZXItYXQKCSAoOmZp bGUgdGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLXctMS1jaG9zZW4KCSAgICA6aWQgdGVzdC1vcmct Y2hvb3NlOnRoZDpmaWxlLXctMS1jaG9zZW4tc2liLWNob3Nlbi1pZCkgCgkgCgkgKG9yZy10b2Rv ICJMRUFOSU5HX1RPV0FSRFMiKQoJIAoJIChlcXVhbAoJICAgIChvcmctY2hvb3NlOnRoOmNvbGxl Y3QtY2hpbGRyZW5zLXRvZG8tbWFya3MKCSAgICAgICB0ZXN0LW9yZy1jaG9vc2U6dGhkOmZpbGUt dy0xLWNob3Nlbi1wYXJlbnQtaWQpCgkgICAgJyggIk1BWUJFIiAiUkVKRUNURUQiICJMRUFOSU5H X1RPV0FSRFMiICJNQVlCRSIpKSkpCiAgIAoKICAgKCAgIlNpdHVhdGlvbjogQW4gZW50cnkgd2Fz IGhpZ2gtbWFya2VkLCBob2xkaW5nIG90aGVyIG5vZGVzIGJlbG93CnRoZSB0b3Agb2YgdGhlIGxv dyByYW5nZS4gCk9wZXJhdGlvbjogVGhhdCBlbnRyeSBpcyBkZW1vdGVkIHR3byBwbGFjZXMuICBD SE9TRU4gYmVjb21lcyBNQVlCRS4KUmVzcG9uc2U6IEl0IGdldHMgZGVtb3RlZC4gIE5vZGVzIHRo YXQgaXQgd2FzIGhvbGRpbmcgZG93biBhcmUKcHJvbW90ZWQgYXMgaWYgYnkgdHdvIG9uZS1wbGFj ZSBvcGVyYXRpb25zLgpOT1RfQ0hPU0VOIGJlY29tZXMgTUFZQkUuIgogICAgICAob3JnLWNob29z ZTp0aDppbi1idWZmZXItYXQKCSAoOmZpbGUgdGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLXctMS1j aG9zZW4KCSAgICA6aWQgdGVzdC1vcmctY2hvb3NlOnRoZDpmaWxlLXctMS1jaG9zZW4tc2liLWNo b3Nlbi1pZCkgCgkgCgkgKG9yZy10b2RvICJNQVlCRSIpCgkgCgkgKGVxdWFsCgkgICAgKG9yZy1j aG9vc2U6dGg6Y29sbGVjdC1jaGlsZHJlbnMtdG9kby1tYXJrcwoJICAgICAgIHRlc3Qtb3JnLWNo b29zZTp0aGQ6ZmlsZS13LTEtY2hvc2VuLXBhcmVudC1pZCkKCSAgICAnKCJNQVlCRSIgIlJFSkVD VEVEIiAiTUFZQkUiICJNQVlCRSIpKSkpCiAgICkKCgoKCjs7O18uIEZvb3RlcnMKOzs7XyAsIFBy b3ZpZGVzCgoocHJvdmlkZSAndGVzdC1vcmctY2hvb3NlKQoKOzs7XyAqIExvY2FsIGVtYWNzIHZh cnMuCjs7O18gICsgTG9jYWwgdmFyaWFibGVzOgo7OztfICArIEVuZDoKCjs7O18gLCBFbmQKOzs7 IHRlc3Qtb3JnLWNob29zZS5lbCBlbmRzIGhlcmUK ------=_20090207154632_35974 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode ------=_20090207154632_35974--