From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Tom Breton (Tehom)" Newsgroups: gmane.emacs.devel Subject: Re: ewoc patch Date: Thu, 10 Dec 2009 20:23:16 -0500 Message-ID: References: <08698ba442eec12008bede6987588958.squirrel@mail.panix.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed;boundary="----=_20091210202316_27374" X-Trace: ger.gmane.org 1260494758 8043 80.91.229.12 (11 Dec 2009 01:25:58 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 11 Dec 2009 01:25:58 +0000 (UTC) Cc: emacs-devel@gnu.org To: "Stefan Monnier" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Dec 11 02:25:50 2009 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1NIuEE-0000tn-SN for ged-emacs-devel@m.gmane.org; Fri, 11 Dec 2009 02:25:49 +0100 Original-Received: from localhost ([127.0.0.1]:59762 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NIuEE-0004Uj-5W for ged-emacs-devel@m.gmane.org; Thu, 10 Dec 2009 20:23:30 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NIuE7-0004U1-P9 for emacs-devel@gnu.org; Thu, 10 Dec 2009 20:23:23 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NIuE1-0004SJ-TW for emacs-devel@gnu.org; Thu, 10 Dec 2009 20:23:22 -0500 Original-Received: from [199.232.76.173] (port=47657 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NIuE1-0004SE-NW for emacs-devel@gnu.org; Thu, 10 Dec 2009 20:23:17 -0500 Original-Received: from mail1.panix.com ([166.84.1.72]:65358) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NIuE1-0002LB-1w for emacs-devel@gnu.org; Thu, 10 Dec 2009 20:23:17 -0500 Original-Received: from mailbackend.panix.com (mailbackend.panix.com [166.84.1.89]) by mail1.panix.com (Postfix) with ESMTP id AD2C11F083; Thu, 10 Dec 2009 20:23:16 -0500 (EST) Original-Received: from mail.panix.com (localhost [127.0.0.1]) by mailbackend.panix.com (Postfix) with ESMTP id 568F02DC14; Thu, 10 Dec 2009 20:23:16 -0500 (EST) X-Panix-Received: from 96.252.49.112 (SquirrelMail authenticated user tehom@panix.com) by mail.panix.com with HTTP; Thu, 10 Dec 2009 20:23:16 -0500 In-Reply-To: User-Agent: SquirrelMail/1.4.19 X-Priority: 3 (Normal) Importance: Normal X-detected-operating-system: by monty-python.gnu.org: Genre and OS details not recognized. X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:118534 Archived-At: ------=_20091210202316_27374 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable > Keep only `separator', but with the added twist that a non-string, > non-nil argument means the empty string (aka mean "nosep"). That shoul= d > preserve backward compatibility with a mostly clean API. Done. > I think you're worrying for no good reason. If you really want to > handle version dependencies right, you don't want it in a Lisp variable > but in a header understood and processed by some package manager (ELPA, > for instace). Otherwise, you'll have to deal (one way or another) with > runtime checks, and in most cases the calling package will simply not > work with an older version. Yes, I have to deal with runtime checks. Anyways, I have replaced the version variable with a variable called `ewoc-provides-variable-separator' that is bound just if ewoc provides a variable separator. I hope that will satisfy. Attached is * new ewoc patch against 23.1 * test file Thank you for your help, Stefan. Tom Breton (Tehom) ------=_20091210202316_27374 Content-Type: application/octet-stream; name="ewoc.el.5.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="ewoc.el.5.diff" Y2QgL2hvbWUvdGVob20vcHJvamVjdHMvZW10ZXN0L2xpc3Avdmlld2Vycy8KZGlmZiAtYyAtYiAv aG9tZS90ZWhvbS9wcm9qZWN0cy9lbXRlc3QvbGlzcC92aWV3ZXJzL29sZC0yMzFld29jLmVsIC9o b21lL3RlaG9tL3Byb2plY3RzL2VtdGVzdC9saXNwL3ZpZXdlcnMvMjMxZXdvYy5lbAoqKiogL2hv bWUvdGVob20vcHJvamVjdHMvZW10ZXN0L2xpc3Avdmlld2Vycy9vbGQtMjMxZXdvYy5lbAkyMDA5 LTEyLTA5IDE3OjM3OjIxLjAwMDAwMDAwMCAtMDUwMAotLS0gL2hvbWUvdGVob20vcHJvamVjdHMv ZW10ZXN0L2xpc3Avdmlld2Vycy8yMzFld29jLmVsCTIwMDktMTItMTAgMjA6MDE6MTMuMDAwMDAw MDAwIC0wNTAwCioqKioqKioqKioqKioqKgoqKiogMTM0LDE1MSAqKioqCiAgICAgICAgKHNldHEg biAoMS0gbikpKQogICAgICAodW5sZXNzIChlcSBkbGwgbm9kZSkgbm9kZSkpKQogIAotIChkZWZ1 biBld29jLWxvY2F0aW9uIChub2RlKQotICAgIlJldHVybiB0aGUgc3RhcnQgbG9jYXRpb24gb2Yg Tk9ERS4iCi0gICAoZXdvYy0tbm9kZS1zdGFydC1tYXJrZXIgbm9kZSkpCi0gCiAgDAogIDs7OyBU aGUgZXdvYyBkYXRhIHR5cGUKICAKICAoZGVmc3RydWN0IChld29jCiAgCSAgICAoOmNvbnN0cnVj dG9yIG5pbCkKISAJICAgICg6Y29uc3RydWN0b3IgZXdvYy0tY3JlYXRlIChidWZmZXIgcHJldHR5 LXByaW50ZXIgZGxsKSkKICAJICAgICg6Y29uYy1uYW1lIGV3b2MtLSkpCiEgICBidWZmZXIgcHJl dHR5LXByaW50ZXIgaGVhZGVyIGZvb3RlciBkbGwgbGFzdC1ub2RlIGhmLXBwKQogIAogIChkZWZt YWNybyBld29jLS1zZXQtYnVmZmVyLWJpbmQtZGxsLWxldCogKGV3b2MgdmFybGlzdCAmcmVzdCBm b3JtcykKICAgICJFeGVjdXRlIEZPUk1TIHdpdGggZXdvYy0tYnVmZmVyIHNlbGVjdGVkIGFzIGN1 cnJlbnQgYnVmZmVyLAotLS0gMTM0LDE0NyAtLS0tCiAgICAgICAgKHNldHEgbiAoMS0gbikpKQog ICAgICAodW5sZXNzIChlcSBkbGwgbm9kZSkgbm9kZSkpKQogIAogIAwKICA7OzsgVGhlIGV3b2Mg ZGF0YSB0eXBlCiAgCiAgKGRlZnN0cnVjdCAoZXdvYwogIAkgICAgKDpjb25zdHJ1Y3RvciBuaWwp CiEgCSAgICAoOmNvbnN0cnVjdG9yIGV3b2MtLWNyZWF0ZSAoYnVmZmVyIHByZXR0eS1wcmludGVy IGRsbCBzZXBhcmF0b3IpKQogIAkgICAgKDpjb25jLW5hbWUgZXdvYy0tKSkKISAgIGJ1ZmZlciBw cmV0dHktcHJpbnRlciBoZWFkZXIgZm9vdGVyIGRsbCBsYXN0LW5vZGUgaGYtcHAgc2VwYXJhdG9y KQogIAogIChkZWZtYWNybyBld29jLS1zZXQtYnVmZmVyLWJpbmQtZGxsLWxldCogKGV3b2MgdmFy bGlzdCAmcmVzdCBmb3JtcykKICAgICJFeGVjdXRlIEZPUk1TIHdpdGggZXdvYy0tYnVmZmVyIHNl bGVjdGVkIGFzIGN1cnJlbnQgYnVmZmVyLAoqKioqKioqKioqKioqKioKKioqIDE3MCwyMzMgKioq KgogIAkgICAgICAoZXEgbm9kZSAoZXdvYy0tZm9vdGVyIGV3b2MpKSkKICAgICAgbm9kZSkpCiAg CiEgKGRlZnVuIGV3b2MtLWFkanVzdCAoYmVnIGVuZCBub2RlIGRsbCkKISAgIDs7ICJNYW51YWxs eSByZXNlYXQiIG1hcmtlcnMgZm9yIE5PREUgYW5kIGl0cyBzdWNjZXNzb3JzIChpbmNsdWRpbmcg Zm9vdGVyCiEgICA7OyBhbmQgZGxsKSwgaW4gdGhlIGNhc2Ugd2hlcmUgdGhleSBvcmlnaW5hbGx5 IHNoYXJlZCBzdGFydCBwb3NpdGlvbiB3aXRoCiEgICA7OyBCRUcsIHRvIEVORC4gIEJFRyBhbmQg RU5EIGFyZSBidWZmZXIgcG9zaXRpb25zIGRlc2NyaWJpbmcgTk9ERSdzIGxlZnQKISAgIDs7IG5l aWdoYm9yLiAgVGhpcyBvcGVyYXRpb24gaXMgZnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQgdG8gdGVt cG9yYXJpbHkKISAgIDs7IHNldHRpbmcgdGhlc2Ugbm9kZXMnIG1hcmtlcnMnIGluc2VydGlvbiB0 eXBlIHRvIHQgYXJvdW5kIHRoZSBwcmV0dHktcHJpbnQKISAgIDs7IGNhbGwgdGhhdCBwcmVjZWRl cyB0aGUgY2FsbCB0byBgZXdvYy0tYWRqdXN0JywgYW5kIHRoZW4gY2hhbmdpbmcgdGhlbSBiYWNr CiEgICA7OyB0byBuaWwuCiEgICAod2hlbiAoPCBiZWcgZW5kKQohICAgICAobGV0IChtKQohICAg ICAgICh3aGlsZSAoYW5kICg9IGJlZyAoc2V0cSBtIChld29jLS1ub2RlLXN0YXJ0LW1hcmtlciBu b2RlKSkpCiEgICAgICAgICAgICAgICAgICAgOzsgVGhlICJkdW1teSIgbm9kZSBgZGxsJyBhY3R1 YWxseSBob2xkcyB0aGUgbWFya2VyIHRoYXQKISAgICAgICAgICAgICAgICAgICA7OyBwb2ludHMg dG8gdGhlIGVuZCBvZiB0aGUgZm9vdGVyLCBzbyB3ZSBjaGVjayBgZGxsJwohICAgICAgICAgICAg ICAgICAgIDs7ICphZnRlciogcmVzZWF0aW5nIHRoZSBtYXJrZXIuCiEgICAgICAgICAgICAgICAg ICAgKHByb2duCiEgICAgICAgICAgICAgICAgICAgICAoc2V0LW1hcmtlciBtIGVuZCkKISAgICAg ICAgICAgICAgICAgICAgIChub3QgKGVxIGRsbCBub2RlKSkpKQohICAgICAgICAgKHNldHEgbm9k ZSAoZXdvYy0tbm9kZS1yaWdodCBub2RlKSkpKSkpCiAgCiEgKGRlZnVuIGV3b2MtLWluc2VydC1u ZXctbm9kZSAobm9kZSBkYXRhIHByZXR0eS1wcmludGVyIGRsbCkKICAgICJJbnNlcnQgYmVmb3Jl IE5PREUgYSBuZXcgbm9kZSBmb3IgREFUQSwgZGlzcGxheWVkIGJ5IFBSRVRUWS1QUklOVEVSLgog IEZvdXJ0aCBhcmcgRExMIC0tIGZyb20gYChld29jLS1kbGwgRVdPQyknIC0tIGlzIGZvciBpbnRl cm5hbCBwdXJwb3Nlcy4KICBDYWxsIFBSRVRUWS1QUklOVEVSIHdpdGggcG9pbnQgYXQgTk9ERSdz IHN0YXJ0LCB0aHVzIHB1c2hpbmcgYmFjawogIE5PREUgYW5kIGxlYXZpbmcgdGhlIG5ldyBub2Rl J3Mgc3RhcnQgdGhlcmUuICBSZXR1cm4gdGhlIG5ldyBub2RlLiIKICAgIChzYXZlLWV4Y3Vyc2lv bgohICAgICAobGV0ICgoZWxlbW5vZGUgKGV3b2MtLW5vZGUtY3JlYXRlCiEgICAgICAgICAgICAg ICAgICAgICAgKGNvcHktbWFya2VyIChld29jLS1ub2RlLXN0YXJ0LW1hcmtlciBub2RlKSkgZGF0 YSkpKQohICAgICAgIChzZXRmIChld29jLS1ub2RlLWxlZnQgIGVsZW1ub2RlKSAoZXdvYy0tbm9k ZS1sZWZ0IG5vZGUpCiEgICAgICAgICAgICAgKGV3b2MtLW5vZGUtcmlnaHQgZWxlbW5vZGUpICAg ICAgICAgICAgICAgICAgbm9kZQohICAgICAgICAgICAgIChld29jLS1ub2RlLXJpZ2h0IChld29j LS1ub2RlLWxlZnQgbm9kZSkpIGVsZW1ub2RlCiEgICAgICAgICAgICAgKGV3b2MtLW5vZGUtbGVm dCAgICAgICAgICAgICAgICAgICBub2RlKSAgZWxlbW5vZGUpCiEgICAgICAgKGV3b2MtLXJlZnJl c2gtbm9kZSBwcmV0dHktcHJpbnRlciBlbGVtbm9kZSBkbGwpCiAgICAgICAgZWxlbW5vZGUpKSkK ICAKISAoZGVmdW4gZXdvYy0tcmVmcmVzaC1ub2RlIChwcCBub2RlIGRsbCkKICAgICJSZWRpc3Bs YXkgdGhlIGVsZW1lbnQgcmVwcmVzZW50ZWQgYnkgTk9ERSB1c2luZyB0aGUgcHJldHR5LXByaW50 ZXIgUFAuIgohICAgKGxldCAoKGluaGliaXQtcmVhZC1vbmx5IHQpCiEgICAgICAgICAobSAoZXdv Yy0tbm9kZS1zdGFydC1tYXJrZXIgbm9kZSkpCiEgICAgICAgICAoUiAoZXdvYy0tbm9kZS1yaWdo dCBub2RlKSkpCiEgICAgIDs7IEZpcnN0LCByZW1vdmUgdGhlIHN0cmluZyBmcm9tIHRoZSBidWZm ZXI6CiEgICAgIChkZWxldGUtcmVnaW9uIG0gKGV3b2MtLW5vZGUtc3RhcnQtbWFya2VyIFIpKQoh ICAgICA7OyBDYWxjdWxhdGUgYW5kIGluc2VydCB0aGUgc3RyaW5nLgohICAgICAoZ290by1jaGFy IG0pCiEgICAgIChmdW5jYWxsIHBwIChld29jLS1ub2RlLWRhdGEgbm9kZSkpCiEgICAgIChld29j LS1hZGp1c3QgbSAocG9pbnQpIFIgZGxsKSkpCiEgCiEgKGRlZnVuIGV3b2MtLXdyYXAgKGZ1bmMp CiEgICAobGV4aWNhbC1sZXQgKChld29jLS11c2VyLXBwIGZ1bmMpKQohICAgICAobGFtYmRhIChk YXRhKQohICAgICAgIChmdW5jYWxsIGV3b2MtLXVzZXItcHAgZGF0YSkKISAgICAgICAoaW5zZXJ0 ICJcbiIpKSkpCiAgCiAgDAogIDs7OyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICA7OzsgICAgICAgICAg ICAgICAgICBQdWJsaWMgbWVtYmVycyBvZiB0aGUgRXdvYyBwYWNrYWdlCiAgCiAgOzs7IyMjYXV0 b2xvYWQKISAoZGVmdW4gZXdvYy1jcmVhdGUgKHByZXR0eS1wcmludGVyICZvcHRpb25hbCBoZWFk ZXIgZm9vdGVyIG5vc2VwKQogICAgIkNyZWF0ZSBhbiBlbXB0eSBld29jLgogIAogIFRoZSBld29j IHdpbGwgYmUgaW5zZXJ0ZWQgaW4gdGhlIGN1cnJlbnQgYnVmZmVyIGF0IHRoZSBjdXJyZW50IHBv c2l0aW9uLgotLS0gMTY2LDI5OSAtLS0tCiAgCSAgICAgIChlcSBub2RlIChld29jLS1mb290ZXIg ZXdvYykpKQogICAgICBub2RlKSkKICAKISAoZGVmdW4gZXdvYy0tbGluay1ub2RlLWJlZm9yZSAo bmV3LW5vZGUgbm9kZSkKISAgICAiUGh5c2ljYWxseSBpbnNlcnQgTkVXLU5PREUgYmVmb3JlIE5P REUuIgohICAgIChzZXRmCiEgICAgICAgKGV3b2MtLW5vZGUtbGVmdCBuZXctbm9kZSkgICAgICAg ICAgICAgICAoZXdvYy0tbm9kZS1sZWZ0IG5vZGUpCiEgICAgICAgKGV3b2MtLW5vZGUtcmlnaHQg bmV3LW5vZGUpICAgICAgICAgICAgICAgbm9kZQohICAgICAgIChld29jLS1ub2RlLXJpZ2h0IChl d29jLS1ub2RlLWxlZnQgbm9kZSkpIG5ldy1ub2RlICAgICAgCiEgICAgICAgKGV3b2MtLW5vZGUt bGVmdCBub2RlKSAgICAgICAgICAgICAgICAgICAgbmV3LW5vZGUpKQogIAohIChkZWZ1biBld29j LS1pbnNlcnQtbmV3LW5vZGUgKGV3b2Mgbm9kZSBkYXRhIHByZXR0eS1wcmludGVyKQogICAgIklu c2VydCBiZWZvcmUgTk9ERSBhIG5ldyBub2RlIGZvciBEQVRBLCBkaXNwbGF5ZWQgYnkgUFJFVFRZ LVBSSU5URVIuCiAgRm91cnRoIGFyZyBETEwgLS0gZnJvbSBgKGV3b2MtLWRsbCBFV09DKScgLS0g aXMgZm9yIGludGVybmFsIHB1cnBvc2VzLgogIENhbGwgUFJFVFRZLVBSSU5URVIgd2l0aCBwb2lu dCBhdCBOT0RFJ3Mgc3RhcnQsIHRodXMgcHVzaGluZyBiYWNrCiAgTk9ERSBhbmQgbGVhdmluZyB0 aGUgbmV3IG5vZGUncyBzdGFydCB0aGVyZS4gIFJldHVybiB0aGUgbmV3IG5vZGUuIgogICAgKHNh dmUtZXhjdXJzaW9uCiEgICAgIChsZXQgKChlbGVtbm9kZSAoZXdvYy0tbm9kZS1jcmVhdGUgbmls IGRhdGEpKSkKISAgICAgICAgKGV3b2MtLWxpbmstbm9kZS1iZWZvcmUgZWxlbW5vZGUgbm9kZSkK ISAgICAgICAgKGdvdG8tY2hhciAoZXdvYy1sb2NhdGlvbi1zYWZlIG5vZGUpKQohICAgICAgICAo ZXdvYy0tcHJpbnQtbm9kZSBld29jIGVsZW1ub2RlIHByZXR0eS1wcmludGVyKQogICAgICAgIGVs ZW1ub2RlKSkpCiAgCiEgKGRlZnVuIGV3b2MtLXJlZnJlc2gtbm9kZSAocHAgbm9kZSBld29jKQog ICAgIlJlZGlzcGxheSB0aGUgZWxlbWVudCByZXByZXNlbnRlZCBieSBOT0RFIHVzaW5nIHRoZSBw cmV0dHktcHJpbnRlciBQUC4iCiEgICAgKHNhdmUtZXhjdXJzaW9uCiEgICAgICAgKGdvdG8tY2hh ciAoZXdvYy1sb2NhdGlvbi1zYWZlIG5vZGUpKQohICAgICAgIChld29jLS1kZWxldGUtbm9kZS10 ZXh0IG5vZGUpCiEgICAgICAgKGV3b2MtLXByaW50LWFuZXcgZXdvYyBub2RlIHBwKSkpCiEgCiEg DAohIDs7OyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KISA7OzsgICAgICAgICAgICAgICAgICBOb2RlIGxv Y2F0aW9uCiEgCiEgKGRlZnVuIGV3b2MtLW5leHQtcHJpbnRlZC1ub2RlIChub2RlKQohICAgICJS ZXR1cm4gdGhlIG5leHQgbm9uLWVtcHR5IG5vZGUgYWZ0ZXIgTk9ERS4iCiEgICAgOztUaGlzIGxv b3Agd2lsbCB0ZXJtaW5hdGUgYmVjYXVzZSB3ZSBzZXQgYXQgbGVhc3Qgb25lCiEgICAgOztzdGFy dC1tYXJrZXIgaW4gdGhlIGV3b2Mgd2hlbiBjcmVhdGluZyBpdC4KISAgICAoZG8KISAgICAgICAo KG5vZGUtYWZ0ZXIgCiEgCSAgKGV3b2MtLW5vZGUtcmlnaHQgbm9kZSkgCiEgCSAgKGV3b2MtLW5v ZGUtcmlnaHQgbm9kZS1hZnRlcikpKQohICAgICAgICgKISAJIChld29jLS1ub2RlLXN0YXJ0LW1h cmtlciBub2RlLWFmdGVyKQohIAkgbm9kZS1hZnRlcikpKQohICAgIAohIChkZWZ1biBld29jLS1u ZXh0LXN0YXJ0LW1hcmtlciAobm9kZSkKISAgICAiUmV0dXJuIHRoZSBmaXJzdCBzdGFydCBtYXJr ZXIgYWZ0ZXIgTk9ERS4iCiEgICAgKGV3b2MtLW5vZGUtc3RhcnQtbWFya2VyCiEgICAgICAgKGV3 b2MtLW5leHQtcHJpbnRlZC1ub2RlIG5vZGUpKSkKISAKISAoZGVmdW4gZXdvYy1sb2NhdGlvbiAo bm9kZSkKISAgICAiUmV0dXJuIHRoZSBzdGFydCBsb2NhdGlvbiBvZiBOT0RFLgohIElmIE5PREUg aXMgZW1wdHksIHJldHVybiB0aGUgc3RhcnQgbWFya2VyIG9mIHRoZSBuZXh0IG5vbi1lbXB0eSBu b2RlLiIKISAgICAob3IKISAgICAgICAoZXdvYy0tbm9kZS1zdGFydC1tYXJrZXIgbm9kZSkKISAg ICAgICAoZXdvYy0tbmV4dC1zdGFydC1tYXJrZXIgbm9kZSkpKQohIAohIDs7QSBzdGFydC1tYXJr ZXIncyBpbnNlcnRpb24tdHlwZSBzaG91bGQgYWxyZWFkeSBiZSBgdCcsIGJ1dCBzb21lCiEgOztj YWxsZXJzIHdhbnQgdG8gYmUgMTAwJSBzdXJlIGl0IGlzLCBzbyB0aGlzIGZ1bmN0aW9uIGV4aXN0 cy4KISAoZGVmdW4gZXdvYy1sb2NhdGlvbi1zYWZlIChub2RlKQohICAgICJHZXQgTk9ERSdzIHN0 YXJ0IGxvY2F0aW9uLiAgCiEgQWxzbyBzZXQgdGhlIHN0YXJ0LW1hcmtlcidzIGluc2VydGlvbiB0 eXBlIHRvIGB0JyBzbyB0aGF0IGl0IHdpbGwgc3RheQohIGFmdGVyIGFueSB0ZXh0IGluc2VydGVk IGF0IHRoYXQgcG9pbnQuIgohIAohICAgIChsZXQKISAgICAgICAoKG5leHQtc3RhcnQtbWFya2Vy IChld29jLWxvY2F0aW9uIG5vZGUpKSkKISAgICAgICAoc2V0LW1hcmtlci1pbnNlcnRpb24tdHlw ZSBuZXh0LXN0YXJ0LW1hcmtlciB0KQohICAgICAgIG5leHQtc3RhcnQtbWFya2VyKSkKISAKISAM CiEgOzs7ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQohIDs7OyAgICAgICAgICAgICAgICAgIFByaW50aW5n IGFuZCB1bnByaW50aW5nCiEgCiEgKGRlZnVuIGV3b2MtLW1hcmstbm9kZS1lbXB0eSAobm9kZSkK ISAgICAiTWFyayBOT0RFIGVtcHR5IChidXQgZG9uJ3QgZW1wdHkgaXQsIGFzc3VtZSBpdCB3YXMg ZW1wdGllZCkKISBJTlRFUk5BTCBVU0UgT05MWS4iCiEgICAgKGxldAohICAgICAgICgoc3RhcnQt bWFya2VyIChld29jLS1ub2RlLXN0YXJ0LW1hcmtlciBub2RlKSkpCiEgICAgICAgKHdoZW4gc3Rh cnQtbWFya2VyCiEgCSAoc2V0LW1hcmtlciBzdGFydC1tYXJrZXIgbmlsKQohIAkgKHNldGYgKGV3 b2MtLW5vZGUtc3RhcnQtbWFya2VyIG5vZGUpIG5pbCkpKSkKISAKISAoZGVmdW4gZXdvYy0tZGVs ZXRlLW5vZGUtdGV4dCAobm9kZSkKISAgICAiRGVsZXRlIGEgbm9kZSdzIHRleHQgYW5kIG1hcmsg aXQgZW1wdHkuIgohICAgIChsZXQKISAgICAgICAoKGluaGliaXQtcmVhZC1vbmx5IHQpCiEgCSAo bSAoZXdvYy0tbm9kZS1zdGFydC1tYXJrZXIgbm9kZSkpKQohICAgICAgICh3aGVuIG0KISAJIChk ZWxldGUtcmVnaW9uIG0gKGV3b2MtLW5leHQtc3RhcnQtbWFya2VyIG5vZGUpKQohIAkgKGV3b2Mt LW1hcmstbm9kZS1lbXB0eSBub2RlKSkpKQohIAohIChkZWZ1biBld29jLS1wcmludC1hbmV3IChl d29jIG5vZGUgcHApCiEgICAgIlByaW50IGEgbm9kZSB0aGF0IHdhcyBlcmFzZWQgYnV0IG5vdCBt YXJrZWQgZW1wdHkuIgohICAgIChld29jLS1tYXJrLW5vZGUtZW1wdHkgbm9kZSkKISAgICAoZXdv Yy0tcHJpbnQtbm9kZSBld29jIG5vZGUgcHApKQohIAohICAgIAohIChkZWZ1biBld29jLS1wcmlu dC1ub2RlIChld29jIG5vZGUgcHJpbnRlcikKISAgICAiUHJpbnQgTk9ERSBhdCBwb2ludCB1c2lu ZyBQUklOVEVSLgohIFNldCBOT0RFJ3Mgc3RhcnQtbWFya2VyIGFjY29yZGluZ2x5LiIKISAgICA7 O09ubHkgcHJpbnQgaWYgbm9kZSBpcyBjdXJyZW50bHkgZW1wdHkKISAgICAod2hlbiAoZXdvYy0t bm9kZS1zdGFydC1tYXJrZXIgbm9kZSkKISAgICAgICAoZXJyb3IgImV3b2MtLXByaW50LW5vZGUg Y2FsbGVkIHdpdGggYSBub2RlIHRoYXQncyBhbHJlYWR5IHByaW50ZWQiKSkKISAKISAgICAobGV0 CiEgICAgICAgKAohIAkgKHN0YXJ0LXBvcyAocG9pbnQpKQohIAkgKGluaGliaXQtcmVhZC1vbmx5 IHQpKQohIAohICAgICAgIChmdW5jYWxsIHByaW50ZXIgKGV3b2MtZGF0YSBub2RlKSkKISAgICAg ICAobGV0CiEgCSAoKHNlcGFyYXRvciAoZXdvYy0tc2VwYXJhdG9yIGV3b2MpKSkKISAJICh3aGVu IHNlcGFyYXRvciAoaW5zZXJ0IHNlcGFyYXRvcikpKQohIAohICAgICAgIDs7T25seSBzZXQgdXAg dGhpcyBub2RlIGFzIG5vbi1lbXB0eSBpZiBpdCBhY3R1YWxseSBpcwohICAgICAgIDs7bm9uLWVt cHR5LgohICAgICAgICh1bmxlc3MKISAJICg9IHN0YXJ0LXBvcyAocG9pbnQpKQohIAkgOztTZXQg aXRzIHN0YXJ0LW1hcmtlciB0byB0aGUgcG9zaXRpb24gd2Ugc3RhcnRlZAohIAkgOztwcmludGlu ZyBmcm9tLgohIAkgKHNldGYgCiEgCSAgICAoZXdvYy0tbm9kZS1zdGFydC1tYXJrZXIgbm9kZSkK ISAJICAgIChjb3B5LW1hcmtlciBzdGFydC1wb3MgdCkpKSkpCiAgCiAgDAogIDs7OyA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KICA7OzsgICAgICAgICAgICAgICAgICBQdWJsaWMgbWVtYmVycyBvZiB0aGUg RXdvYyBwYWNrYWdlCiAgCiAgOzs7IyMjYXV0b2xvYWQKISAoZGVmdW4gZXdvYy1jcmVhdGUgKHBy ZXR0eS1wcmludGVyICZvcHRpb25hbCBoZWFkZXIgZm9vdGVyIHNlcGFyYXRvcikKICAgICJDcmVh dGUgYW4gZW1wdHkgZXdvYy4KICAKICBUaGUgZXdvYyB3aWxsIGJlIGluc2VydGVkIGluIHRoZSBj dXJyZW50IGJ1ZmZlciBhdCB0aGUgY3VycmVudCBwb3NpdGlvbi4KKioqKioqKioqKioqKioqCioq KiAyNDksMjU5ICoqKioKICAgICAgICAgICAoZGxsIChwcm9nbiAoc2V0ZiAoZXdvYy0tbm9kZS1y aWdodCBkdW1teS1ub2RlKSBkdW1teS1ub2RlKQogICAgICAgICAgICAgICAgICAgICAgIChzZXRm IChld29jLS1ub2RlLWxlZnQgZHVtbXktbm9kZSkgZHVtbXktbm9kZSkKICAgICAgICAgICAgICAg ICAgICAgICBkdW1teS1ub2RlKSkKISAgICAgICAgICAod3JhcCAoaWYgbm9zZXAgJ2lkZW50aXR5 ICdld29jLS13cmFwKSkKICAgICAgICAgICAobmV3LWV3b2MgKGV3b2MtLWNyZWF0ZSAoY3VycmVu dC1idWZmZXIpCiEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmNhbGwgd3Jh cCBwcmV0dHktcHJpbnRlcikKISAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkbGwp KQohICAgICAgICAgIChoZi1wcCAoZnVuY2FsbCB3cmFwICdpbnNlcnQpKQogICAgICAgICAgIChw b3MgKHBvaW50KSkKICAgICAgICAgICBoZWFkIGZvb3QpCiAgICAgIChld29jLS1zZXQtYnVmZmVy LWJpbmQtZGxsIG5ldy1ld29jCi0tLSAzMTUsMzMyIC0tLS0KICAgICAgICAgICAoZGxsIChwcm9n biAoc2V0ZiAoZXdvYy0tbm9kZS1yaWdodCBkdW1teS1ub2RlKSBkdW1teS1ub2RlKQogICAgICAg ICAgICAgICAgICAgICAgIChzZXRmIChld29jLS1ub2RlLWxlZnQgZHVtbXktbm9kZSkgZHVtbXkt bm9kZSkKICAgICAgICAgICAgICAgICAgICAgICBkdW1teS1ub2RlKSkKISAJIChzZXBhcmF0b3IK ISAJICAgIChjb25kCiEgCSAgICAgICAoKG51bGwgc2VwYXJhdG9yKSAiXG4iKQohIAkgICAgICAg KChzdHJpbmdwIHNlcGFyYXRvcikKISAJCSAgKGlmIChzdHJpbmc9IHNlcGFyYXRvciAiIikgbmls IHNlcGFyYXRvcikpCiEgCSAgICAgICA7O05vbi1uaWwsIG5vbi1zdHJpbmcgYXJndW1lbnQgbWVh bnMgZW1wdHkgc2VwYXJhdG9yCiEgCSAgICAgICAodCBuaWwpKSkKICAgICAgICAgICAobmV3LWV3 b2MgKGV3b2MtLWNyZWF0ZSAoY3VycmVudC1idWZmZXIpCiEgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcHJldHR5LXByaW50ZXIKISAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkbGwKISAJCSAgICAgIAkJIHNlcGFyYXRvcikpCiEgICAgICAgICAgKGhmLXBwICMnaW5z ZXJ0KQogICAgICAgICAgIChwb3MgKHBvaW50KSkKICAgICAgICAgICBoZWFkIGZvb3QpCiAgICAg IChld29jLS1zZXQtYnVmZmVyLWJpbmQtZGxsIG5ldy1ld29jCioqKioqKioqKioqKioqKgoqKiog MjYxLDI2OCAqKioqCiAgICAgICAgKHVubGVzcyBoZWFkZXIgKHNldHEgaGVhZGVyICIiKSkKICAg ICAgICAodW5sZXNzIGZvb3RlciAoc2V0cSBmb290ZXIgIiIpKQogICAgICAgIChzZXRmIChld29j LS1ub2RlLXN0YXJ0LW1hcmtlciBkbGwpIChjb3B5LW1hcmtlciBwb3MpCiEgICAgICAgICAgICAg Zm9vdCAoZXdvYy0taW5zZXJ0LW5ldy1ub2RlICBkbGwgZm9vdGVyIGhmLXBwIGRsbCkKISAgICAg ICAgICAgICBoZWFkIChld29jLS1pbnNlcnQtbmV3LW5vZGUgZm9vdCBoZWFkZXIgaGYtcHAgZGxs KQogICAgICAgICAgICAgIChld29jLS1oZi1wcCBuZXctZXdvYykgaGYtcHAKICAgICAgICAgICAg ICAoZXdvYy0tZm9vdGVyIG5ldy1ld29jKSBmb290CiAgICAgICAgICAgICAgKGV3b2MtLWhlYWRl ciBuZXctZXdvYykgaGVhZCkpCi0tLSAzMzQsMzQxIC0tLS0KICAgICAgICAodW5sZXNzIGhlYWRl ciAoc2V0cSBoZWFkZXIgIiIpKQogICAgICAgICh1bmxlc3MgZm9vdGVyIChzZXRxIGZvb3RlciAi IikpCiAgICAgICAgKHNldGYgKGV3b2MtLW5vZGUtc3RhcnQtbWFya2VyIGRsbCkgKGNvcHktbWFy a2VyIHBvcykKISAgICAgICAgICAgICBmb290IChld29jLS1pbnNlcnQtbmV3LW5vZGUgbmV3LWV3 b2MgIGRsbCBmb290ZXIgaGYtcHApCiEgICAgICAgICAgICAgaGVhZCAoZXdvYy0taW5zZXJ0LW5l dy1ub2RlIG5ldy1ld29jIGZvb3QgaGVhZGVyIGhmLXBwKQogICAgICAgICAgICAgIChld29jLS1o Zi1wcCBuZXctZXdvYykgaGYtcHAKICAgICAgICAgICAgICAoZXdvYy0tZm9vdGVyIG5ldy1ld29j KSBmb290CiAgICAgICAgICAgICAgKGV3b2MtLWhlYWRlciBuZXctZXdvYykgaGVhZCkpCioqKioq KioqKioqKioqKgoqKiogMzAwLDMwNiAqKioqCiAgICAiRW50ZXIgYSBuZXcgZWxlbWVudCBEQVRB IGJlZm9yZSBOT0RFIGluIEVXT0MuCiAgUmV0dXJuIHRoZSBuZXcgbm9kZS4iCiAgICAoZXdvYy0t c2V0LWJ1ZmZlci1iaW5kLWRsbCBld29jCiEgICAgIChld29jLS1pbnNlcnQtbmV3LW5vZGUgbm9k ZSBkYXRhIChld29jLS1wcmV0dHktcHJpbnRlciBld29jKSBkbGwpKSkKICAKICAoZGVmdW4gZXdv Yy1uZXh0IChld29jIG5vZGUpCiAgICAiUmV0dXJuIHRoZSBub2RlIGluIEVXT0MgdGhhdCBmb2xs b3dzIE5PREUuCi0tLSAzNzMsMzc5IC0tLS0KICAgICJFbnRlciBhIG5ldyBlbGVtZW50IERBVEEg YmVmb3JlIE5PREUgaW4gRVdPQy4KICBSZXR1cm4gdGhlIG5ldyBub2RlLiIKICAgICAoZXdvYy0t c2V0LWJ1ZmZlci1iaW5kLWRsbCBld29jCiEgICAgICAgKGV3b2MtLWluc2VydC1uZXctbm9kZSBl d29jIG5vZGUgZGF0YSAoZXdvYy0tcHJldHR5LXByaW50ZXIgZXdvYykpKSkKICAKICAoZGVmdW4g ZXdvYy1uZXh0IChld29jIG5vZGUpCiAgICAiUmV0dXJuIHRoZSBub2RlIGluIEVXT0MgdGhhdCBm b2xsb3dzIE5PREUuCioqKioqKioqKioqKioqKgoqKiogMzQ3LDM1NSAqKioqCiAgICAgIChzYXZl LWV4Y3Vyc2lvbgogICAgICAgICh3aGlsZSAobm90IChlcSBub2RlIGZvb3RlcikpCiAgICAgICAg ICAoaWYgKGFwcGx5IG1hcC1mdW5jdGlvbiAoZXdvYy0tbm9kZS1kYXRhIG5vZGUpIGFyZ3MpCiEg ICAgICAgICAgICAgKGV3b2MtLXJlZnJlc2gtbm9kZSBwcCBub2RlIGRsbCkpCiAgICAgICAgICAo c2V0cSBub2RlIChld29jLS1ub2RlLW5leHQgZGxsIG5vZGUpKSkpKSkKICAKICAoZGVmdW4gZXdv Yy1kZWxldGUgKGV3b2MgJnJlc3Qgbm9kZXMpCiAgICAiRGVsZXRlIE5PREVTIGZyb20gRVdPQy4i CiAgICAoZXdvYy0tc2V0LWJ1ZmZlci1iaW5kLWRsbC1sZXQqIGV3b2MKLS0tIDQyMCw0NDIgLS0t LQogICAgICAoc2F2ZS1leGN1cnNpb24KICAgICAgICAod2hpbGUgKG5vdCAoZXEgbm9kZSBmb290 ZXIpKQogICAgICAgICAgKGlmIChhcHBseSBtYXAtZnVuY3Rpb24gKGV3b2MtLW5vZGUtZGF0YSBu b2RlKSBhcmdzKQohICAgICAgICAgICAgIChld29jLS1yZWZyZXNoLW5vZGUgcHAgbm9kZSBld29j KSkKICAgICAgICAgIChzZXRxIG5vZGUgKGV3b2MtLW5vZGUtbmV4dCBkbGwgbm9kZSkpKSkpKQog IAorIChkZWZhbGlhcyAnZXdvYy1mb3JlYWNoICdld29jLW1hcCkKKyAKKyAoZGVmbWFjcm8gZXdv Yy1kbyAoc3BlYyAmcmVzdCBib2R5KQorICAgICJFdmFsdWF0ZSBCT0RZIHJlcGVhdGVkbHksIHdp dGggTkFNRSBib3VuZCBzdWNjZXNzaXZlbHkgdG8gdGhlIGRhdGEKKyBvZiBlYWNoIGVsZW1lbnQu CisgVGhlIGVsZW1lbnQgd2lsbCBiZSByZWZyZXNoZWQgaWYgQk9EWSByZXR1cm5zIG5vbi1uaWwu IgorICAgIChkZXN0cnVjdHVyaW5nLWJpbmQgKG5hbWUgZXdvYy1mb3JtKSBzcGVjCisgICAgICAg YChwcm9nbgorIAkgIChld29jLWZvcmVhY2gKKyAJICAgICAjJyhsYW1iZGEgKCxuYW1lKQorIAkJ ICAsQGJvZHkpCisgCSAgICAgLGV3b2MtZm9ybSkpKSkKKyAKKyAKICAoZGVmdW4gZXdvYy1kZWxl dGUgKGV3b2MgJnJlc3Qgbm9kZXMpCiAgICAiRGVsZXRlIE5PREVTIGZyb20gRVdPQy4iCiAgICAo ZXdvYy0tc2V0LWJ1ZmZlci1iaW5kLWRsbC1sZXQqIGV3b2MKKioqKioqKioqKioqKioqCioqKiAz NTksMzY3ICoqKioKICAgICAgICA7OyBzZXQgbGFzdC1ub2RlIHRvIG5pbC4KICAgICAgICAod2hl biAoZXEgbGFzdCBub2RlKQogICAgICAgICAgKHNldGYgbGFzdCBuaWwgKGV3b2MtLWxhc3Qtbm9k ZSBld29jKSBuaWwpKQohICAgICAgIChkZWxldGUtcmVnaW9uIChld29jLS1ub2RlLXN0YXJ0LW1h cmtlciBub2RlKQohICAgICAgICAgICAgICAgICAgICAgIChld29jLS1ub2RlLXN0YXJ0LW1hcmtl ciAoZXdvYy0tbm9kZS1uZXh0IGRsbCBub2RlKSkpCiEgICAgICAgKHNldC1tYXJrZXIgKGV3b2Mt LW5vZGUtc3RhcnQtbWFya2VyIG5vZGUpIG5pbCkKICAgICAgICAoc2V0ZiBMIChld29jLS1ub2Rl LWxlZnQgIG5vZGUpCiAgICAgICAgICAgICAgUiAoZXdvYy0tbm9kZS1yaWdodCBub2RlKQogICAg ICAgICAgICAgIDs7IExpbmsgbmVpZ2hib3JzIHRvIGVhY2ggb3RoZXIuCi0tLSA0NDYsNDUyIC0t LS0KICAgICAgICA7OyBzZXQgbGFzdC1ub2RlIHRvIG5pbC4KICAgICAgICAod2hlbiAoZXEgbGFz dCBub2RlKQogICAgICAgICAgKHNldGYgbGFzdCBuaWwgKGV3b2MtLWxhc3Qtbm9kZSBld29jKSBu aWwpKQohICAgICAgIChld29jLS1kZWxldGUtbm9kZS10ZXh0IG5vZGUpCiAgICAgICAgKHNldGYg TCAoZXdvYy0tbm9kZS1sZWZ0ICBub2RlKQogICAgICAgICAgICAgIFIgKGV3b2MtLW5vZGUtcmln aHQgbm9kZSkKICAgICAgICAgICAgICA7OyBMaW5rIG5laWdoYm9ycyB0byBlYWNoIG90aGVyLgoq KioqKioqKioqKioqKioKKioqIDM4MSwzODggKioqKgogICAgKGV3b2MtLXNldC1idWZmZXItYmlu ZC1kbGwtbGV0KiBld29jCiAgICAgICAgKChub2RlIChld29jLS1ub2RlLW50aCBkbGwgMSkpCiAg ICAgICAgIChmb290ZXIgKGV3b2MtLWZvb3RlciBld29jKSkKISAgICAgICAgKGdvb2RieWUgbmls KQohICAgICAgICAoaW5oaWJpdC1yZWFkLW9ubHkgdCkpCiAgICAgICh3aGlsZSAobm90IChlcSBu b2RlIGZvb3RlcikpCiAgICAgICAgKHVubGVzcyAoYXBwbHkgcHJlZGljYXRlIChld29jLS1ub2Rl LWRhdGEgbm9kZSkgYXJncykKICAgICAgICAgIChwdXNoIG5vZGUgZ29vZGJ5ZSkpCi0tLSA0NjYs NDcyIC0tLS0KICAgIChld29jLS1zZXQtYnVmZmVyLWJpbmQtZGxsLWxldCogZXdvYwogICAgICAg ICgobm9kZSAoZXdvYy0tbm9kZS1udGggZGxsIDEpKQogICAgICAgICAoZm9vdGVyIChld29jLS1m b290ZXIgZXdvYykpCiEgICAgICAgIChnb29kYnllIG5pbCkpCiAgICAgICh3aGlsZSAobm90IChl cSBub2RlIGZvb3RlcikpCiAgICAgICAgKHVubGVzcyAoYXBwbHkgcHJlZGljYXRlIChld29jLS1u b2RlLWRhdGEgbm9kZSkgYXJncykKICAgICAgICAgIChwdXNoIG5vZGUgZ29vZGJ5ZSkpCioqKioq KioqKioqKioqKgoqKiogNDA2LDQxNiAqKioqCiAgICAgICAgbmlsKQogIAogICAgICAgOzsgQmVm b3JlIHNlY29uZCBlbGVtPwohICAgICAgKCg8IHBvcyAoZXdvYy0tbm9kZS1zdGFydC1tYXJrZXIg KGV3b2MtLW5vZGUtbnRoIGRsbCAyKSkpCiAgICAgICAgKGV3b2MtLW5vZGUtbnRoIGRsbCAxKSkK ICAKICAgICAgIDs7IEFmdGVyIG9uZS1iZWZvcmUtbGFzdCBlbGVtPwohICAgICAgKCg+PSBwb3Mg KGV3b2MtLW5vZGUtc3RhcnQtbWFya2VyIChld29jLS1ub2RlLW50aCBkbGwgLTIpKSkKICAgICAg ICAoZXdvYy0tbm9kZS1udGggZGxsIC0yKSkKICAKICAgICAgIDs7IFdlIG5vdyBrbm93IHRoYXQg cG9zIGlzIHdpdGhpbiBhIGVsZW0uCi0tLSA0OTAsNTAwIC0tLS0KICAgICAgICBuaWwpCiAgCiAg ICAgICA7OyBCZWZvcmUgc2Vjb25kIGVsZW0/CiEgCSAoKDwgcG9zIChld29jLWxvY2F0aW9uIChl d29jLS1ub2RlLW50aCBkbGwgMikpKQogICAgICAgIChld29jLS1ub2RlLW50aCBkbGwgMSkpCiAg CiAgICAgICA7OyBBZnRlciBvbmUtYmVmb3JlLWxhc3QgZWxlbT8KISAJICgoPj0gcG9zIChld29j LWxvY2F0aW9uIChld29jLS1ub2RlLW50aCBkbGwgLTIpKSkKICAgICAgICAoZXdvYy0tbm9kZS1u dGggZGxsIC0yKSkKICAKICAgICAgIDs7IFdlIG5vdyBrbm93IHRoYXQgcG9zIGlzIHdpdGhpbiBh IGVsZW0uCioqKioqKioqKioqKioqKgoqKiogNDE4LDQzOSAqKioqCiAgICAgICAgOzsgTWFrZSBh biBlZHVjYXRlZCBndWVzcyBhYm91dCB3aGljaCBvZiB0aGUgdGhyZWUga25vd24KICAgICAgICA7 OyBub2RlJ2VzICh0aGUgZmlyc3QsIHRoZSBsYXN0LCBvciBHVUVTUykgaXMgbmVhcmVzdC4KICAg ICAgICAobGV0KiAoKGJlc3QtZ3Vlc3MgKGV3b2MtLW5vZGUtbnRoIGRsbCAxKSkKISAJICAgICAo ZGlzdGFuY2UgKGFicyAoLSBwb3MgKGV3b2MtLW5vZGUtc3RhcnQtbWFya2VyIGJlc3QtZ3Vlc3Mp KSkpKQogIAkod2hlbiBndWVzcwohIAkgIChsZXQgKChkIChhYnMgKC0gcG9zIChld29jLS1ub2Rl LXN0YXJ0LW1hcmtlciBndWVzcykpKSkpCiAgCSAgICAod2hlbiAoPCBkIGRpc3RhbmNlKQogIAkg ICAgICAoc2V0cSBkaXN0YW5jZSBkKQogIAkgICAgICAoc2V0cSBiZXN0LWd1ZXNzIGd1ZXNzKSkp KQogIAogIAkobGV0KiAoKGcgKGV3b2MtLW5vZGUtbnRoIGRsbCAtMSkpCTtDaGVjayB0aGUgbGFz dCBlbGVtCiEgCSAgICAgICAoZCAoYWJzICgtIHBvcyAoZXdvYy0tbm9kZS1zdGFydC1tYXJrZXIg ZykpKSkpCiAgCSAgKHdoZW4gKDwgZCBkaXN0YW5jZSkKICAJICAgIChzZXRxIGRpc3RhbmNlIGQp CiAgCSAgICAoc2V0cSBiZXN0LWd1ZXNzIGcpKSkKICAKICAJKHdoZW4gKGV3b2MtLWxhc3Qtbm9k ZSBld29jKSAgICA7Q2hlY2sgInByZXZpb3VzIi4KICAJICAobGV0KiAoKGcgKGV3b2MtLWxhc3Qt bm9kZSBld29jKSkKISAJCSAoZCAoYWJzICgtIHBvcyAoZXdvYy0tbm9kZS1zdGFydC1tYXJrZXIg ZykpKSkpCiAgCSAgICAod2hlbiAoPCBkIGRpc3RhbmNlKQogIAkgICAgICAoc2V0cSBkaXN0YW5j ZSBkKQogIAkgICAgICAoc2V0cSBiZXN0LWd1ZXNzIGcpKSkpCi0tLSA1MDIsNTIzIC0tLS0KICAg ICAgICA7OyBNYWtlIGFuIGVkdWNhdGVkIGd1ZXNzIGFib3V0IHdoaWNoIG9mIHRoZSB0aHJlZSBr bm93bgogICAgICAgIDs7IG5vZGUnZXMgKHRoZSBmaXJzdCwgdGhlIGxhc3QsIG9yIEdVRVNTKSBp cyBuZWFyZXN0LgogICAgICAgIChsZXQqICgoYmVzdC1ndWVzcyAoZXdvYy0tbm9kZS1udGggZGxs IDEpKQohIAkgICAgIChkaXN0YW5jZSAoYWJzICgtIHBvcyAoZXdvYy1sb2NhdGlvbiBiZXN0LWd1 ZXNzKSkpKSkKICAJKHdoZW4gZ3Vlc3MKISAJICAobGV0ICgoZCAoYWJzICgtIHBvcyAoZXdvYy1s b2NhdGlvbiBndWVzcykpKSkpCiAgCSAgICAod2hlbiAoPCBkIGRpc3RhbmNlKQogIAkgICAgICAo c2V0cSBkaXN0YW5jZSBkKQogIAkgICAgICAoc2V0cSBiZXN0LWd1ZXNzIGd1ZXNzKSkpKQogIAog IAkobGV0KiAoKGcgKGV3b2MtLW5vZGUtbnRoIGRsbCAtMSkpCTtDaGVjayB0aGUgbGFzdCBlbGVt CiEgCSAgICAgICAoZCAoYWJzICgtIHBvcyAoZXdvYy1sb2NhdGlvbiBnKSkpKSkKICAJICAod2hl biAoPCBkIGRpc3RhbmNlKQogIAkgICAgKHNldHEgZGlzdGFuY2UgZCkKICAJICAgIChzZXRxIGJl c3QtZ3Vlc3MgZykpKQogIAogIAkod2hlbiAoZXdvYy0tbGFzdC1ub2RlIGV3b2MpICAgIDtDaGVj ayAicHJldmlvdXMiLgogIAkgIChsZXQqICgoZyAoZXdvYy0tbGFzdC1ub2RlIGV3b2MpKQohIAkJ IChkIChhYnMgKC0gcG9zIChld29jLWxvY2F0aW9uIGcpKSkpKQogIAkgICAgKHdoZW4gKDwgZCBk aXN0YW5jZSkKICAJICAgICAgKHNldHEgZGlzdGFuY2UgZCkKICAJICAgICAgKHNldHEgYmVzdC1n dWVzcyBnKSkpKQoqKioqKioqKioqKioqKioKKioqIDQ0NSw0NjAgKioqKgogIAkoY29uZAogIAkg OzsgSXMgcG9zIGFmdGVyIHRoZSBndWVzcz8KICAJICgoPj0gcG9zCiEgCSAgICAgIChld29jLS1u b2RlLXN0YXJ0LW1hcmtlciBiZXN0LWd1ZXNzKSkKICAJICA7OyBMb29wIHVudGlsIHdlIGFyZSBl eGFjdGx5IG9uZSBub2RlIHRvbyBmYXIgZG93bi4uLgohIAkgICh3aGlsZSAoPj0gcG9zIChld29j LS1ub2RlLXN0YXJ0LW1hcmtlciBiZXN0LWd1ZXNzKSkKICAJICAgIChzZXRxIGJlc3QtZ3Vlc3Mg KGV3b2MtLW5vZGUtbmV4dCBkbGwgYmVzdC1ndWVzcykpKQogIAkgIDs7IC4uLmFuZCByZXR1cm4g dGhlIHByZXZpb3VzIG5vZGUuCiAgCSAgKGV3b2MtLW5vZGUtcHJldiBkbGwgYmVzdC1ndWVzcykp CiAgCiAgCSA7OyBQb3MgaXMgYmVmb3JlIGJlc3QtZ3Vlc3MKICAJICh0CiEgCSAgKHdoaWxlICg8 IHBvcyAoZXdvYy0tbm9kZS1zdGFydC1tYXJrZXIgYmVzdC1ndWVzcykpCiAgCSAgICAoc2V0cSBi ZXN0LWd1ZXNzIChld29jLS1ub2RlLXByZXYgZGxsIGJlc3QtZ3Vlc3MpKSkKICAJICBiZXN0LWd1 ZXNzKSkpKSkpKQogIAotLS0gNTI5LDU0NCAtLS0tCiAgCShjb25kCiAgCSA7OyBJcyBwb3MgYWZ0 ZXIgdGhlIGd1ZXNzPwogIAkgKCg+PSBwb3MKISAJCSAgICAgIChld29jLWxvY2F0aW9uIGJlc3Qt Z3Vlc3MpKQogIAkgIDs7IExvb3AgdW50aWwgd2UgYXJlIGV4YWN0bHkgb25lIG5vZGUgdG9vIGZh ciBkb3duLi4uCiEgCQkgICAgICh3aGlsZSAoPj0gcG9zIChld29jLWxvY2F0aW9uIGJlc3QtZ3Vl c3MpKQogIAkgICAgKHNldHEgYmVzdC1ndWVzcyAoZXdvYy0tbm9kZS1uZXh0IGRsbCBiZXN0LWd1 ZXNzKSkpCiAgCSAgOzsgLi4uYW5kIHJldHVybiB0aGUgcHJldmlvdXMgbm9kZS4KICAJICAoZXdv Yy0tbm9kZS1wcmV2IGRsbCBiZXN0LWd1ZXNzKSkKICAKICAJIDs7IFBvcyBpcyBiZWZvcmUgYmVz dC1ndWVzcwogIAkgKHQKISAJCSAgICAgKHdoaWxlICg8IHBvcyAoZXdvYy1sb2NhdGlvbiBiZXN0 LWd1ZXNzKSkKICAJICAgIChzZXRxIGJlc3QtZ3Vlc3MgKGV3b2MtLW5vZGUtcHJldiBkbGwgYmVz dC1ndWVzcykpKQogIAkgIGJlc3QtZ3Vlc3MpKSkpKSkpCiAgCioqKioqKioqKioqKioqKgoqKiog NDY1LDQ3MSAqKioqCiAgICAgICAgKChwcCAoZXdvYy0tcHJldHR5LXByaW50ZXIgZXdvYykpKQog ICAgICAoc2F2ZS1leGN1cnNpb24KICAgICAgICAoZG9saXN0IChub2RlIG5vZGVzKQohICAgICAg ICAgKGV3b2MtLXJlZnJlc2gtbm9kZSBwcCBub2RlIGRsbCkpKSkpCiAgCiAgKGRlZnVuIGV3b2Mt Z290by1wcmV2IChld29jIGFyZykKICAgICJNb3ZlIHBvaW50IHRvIHRoZSBBUkd0aCBwcmV2aW91 cyBlbGVtZW50IGluIEVXT0MuCi0tLSA1NDksNTU1IC0tLS0KICAgICAgICAoKHBwIChld29jLS1w cmV0dHktcHJpbnRlciBld29jKSkpCiAgICAgIChzYXZlLWV4Y3Vyc2lvbgogICAgICAgIChkb2xp c3QgKG5vZGUgbm9kZXMpCiEgICAgICAgICAoZXdvYy0tcmVmcmVzaC1ub2RlIHBwIG5vZGUgZXdv YykpKSkpCiAgCiAgKGRlZnVuIGV3b2MtZ290by1wcmV2IChld29jIGFyZykKICAgICJNb3ZlIHBv aW50IHRvIHRoZSBBUkd0aCBwcmV2aW91cyBlbGVtZW50IGluIEVXT0MuCioqKioqKioqKioqKioq KgoqKiogNDc1LDQ4MSAqKioqCiAgICAgICAgKChub2RlIChld29jLWxvY2F0ZSBld29jIChwb2lu dCkpKSkKICAgICAgKHdoZW4gbm9kZQogICAgICAgIDs7IElmIHdlIHdlcmUgcGFzdCB0aGUgbGFz dCBlbGVtZW50LCBmaXJzdCBqdW1wIHRvIGl0LgohICAgICAgICh3aGVuICg+PSAocG9pbnQpIChl d29jLS1ub2RlLXN0YXJ0LW1hcmtlciAoZXdvYy0tbm9kZS1yaWdodCBub2RlKSkpCiAgCShzZXRx IGFyZyAoMS0gYXJnKSkpCiAgICAgICAgKHdoaWxlIChhbmQgbm9kZSAoPiBhcmcgMCkpCiAgCShz ZXRxIGFyZyAoMS0gYXJnKSkKLS0tIDU1OSw1NjUgLS0tLQogICAgICAgICgobm9kZSAoZXdvYy1s b2NhdGUgZXdvYyAocG9pbnQpKSkpCiAgICAgICh3aGVuIG5vZGUKICAgICAgICA7OyBJZiB3ZSB3 ZXJlIHBhc3QgdGhlIGxhc3QgZWxlbWVudCwgZmlyc3QganVtcCB0byBpdC4KISAJICh3aGVuICg+ PSAocG9pbnQpIChld29jLWxvY2F0aW9uIChld29jLS1ub2RlLXJpZ2h0IG5vZGUpKSkKICAJKHNl dHEgYXJnICgxLSBhcmcpKSkKICAgICAgICAod2hpbGUgKGFuZCBub2RlICg+IGFyZyAwKSkKICAJ KHNldHEgYXJnICgxLSBhcmcpKQoqKioqKioqKioqKioqKioKKioqIDUwMSw1MDcgKioqKgogIChk ZWZ1biBld29jLWdvdG8tbm9kZSAoZXdvYyBub2RlKQogICAgIk1vdmUgcG9pbnQgdG8gTk9ERSBp biBFV09DLiIKICAgIChld29jLS1zZXQtYnVmZmVyLWJpbmQtZGxsIGV3b2MKISAgICAgKGdvdG8t Y2hhciAoZXdvYy0tbm9kZS1zdGFydC1tYXJrZXIgbm9kZSkpCiAgICAgIChpZiBnb2FsLWNvbHVt biAobW92ZS10by1jb2x1bW4gZ29hbC1jb2x1bW4pKQogICAgICAoc2V0ZiAoZXdvYy0tbGFzdC1u b2RlIGV3b2MpIG5vZGUpKSkKICAKLS0tIDU4NSw1OTEgLS0tLQogIChkZWZ1biBld29jLWdvdG8t bm9kZSAoZXdvYyBub2RlKQogICAgIk1vdmUgcG9pbnQgdG8gTk9ERSBpbiBFV09DLiIKICAgIChl d29jLS1zZXQtYnVmZmVyLWJpbmQtZGxsIGV3b2MKISAgICAgICAoZ290by1jaGFyIChld29jLWxv Y2F0aW9uIG5vZGUpKQogICAgICAoaWYgZ29hbC1jb2x1bW4gKG1vdmUtdG8tY29sdW1uIGdvYWwt Y29sdW1uKSkKICAgICAgKHNldGYgKGV3b2MtLWxhc3Qtbm9kZSBld29jKSBub2RlKSkpCiAgCioq KioqKioqKioqKioqKgoqKiogNTEzLDUyOSAqKioqCiAgbnVtYmVyIG9mIGVsZW1lbnRzIG5lZWRz IHRvIGJlIHJlZnJlc2hlZC4iCiAgICAoZXdvYy0tc2V0LWJ1ZmZlci1iaW5kLWRsbC1sZXQqIGV3 b2MKICAgICAgICAoKGZvb3RlciAoZXdvYy0tZm9vdGVyIGV3b2MpKSkKISAgICAgKGxldCAoKGlu aGliaXQtcmVhZC1vbmx5IHQpKQohICAgICAgIChkZWxldGUtcmVnaW9uIChld29jLS1ub2RlLXN0 YXJ0LW1hcmtlciAoZXdvYy0tbm9kZS1udGggZGxsIDEpKQohIAkJICAgICAoZXdvYy0tbm9kZS1z dGFydC1tYXJrZXIgZm9vdGVyKSkKISAgICAgICAoZ290by1jaGFyIChld29jLS1ub2RlLXN0YXJ0 LW1hcmtlciBmb290ZXIpKQogICAgICAgIChsZXQgKChwcCAoZXdvYy0tcHJldHR5LXByaW50ZXIg ZXdvYykpCiEgICAgICAgICAgICAgKG5vZGUgKGV3b2MtLW5vZGUtbnRoIGRsbCAxKSkpCiAgCSh3 aGlsZSAobm90IChlcSBub2RlIGZvb3RlcikpCiEgCSAgKHNldC1tYXJrZXIgKGV3b2MtLW5vZGUt c3RhcnQtbWFya2VyIG5vZGUpIChwb2ludCkpCiEgCSAgKGZ1bmNhbGwgcHAgKGV3b2MtLW5vZGUt ZGF0YSBub2RlKSkKICAJICAoc2V0cSBub2RlIChld29jLS1ub2RlLW5leHQgZGxsIG5vZGUpKSkp KQohICAgICAoc2V0LW1hcmtlciAoZXdvYy0tbm9kZS1zdGFydC1tYXJrZXIgZm9vdGVyKSAocG9p bnQpKSkpCiAgCiAgKGRlZnVuIGV3b2MtY29sbGVjdCAoZXdvYyBwcmVkaWNhdGUgJnJlc3QgYXJn cykKICAgICJTZWxlY3QgZWxlbWVudHMgZnJvbSBFV09DIHVzaW5nIFBSRURJQ0FURS4KLS0tIDU5 Nyw2MTMgLS0tLQogIG51bWJlciBvZiBlbGVtZW50cyBuZWVkcyB0byBiZSByZWZyZXNoZWQuIgog ICAgKGV3b2MtLXNldC1idWZmZXItYmluZC1kbGwtbGV0KiBld29jCiAgICAgICAgKChmb290ZXIg KGV3b2MtLWZvb3RlciBld29jKSkpCiEgICAgIChsZXQgKChpbmhpYml0LXJlYWQtb25seSB0KQoh IAkgICAgKGZpcnN0LW5vZGUgKGV3b2MtLW5vZGUtbnRoIGRsbCAxKSkpCiEgICAgICAgKGRlbGV0 ZS1yZWdpb24gKGV3b2MtbG9jYXRpb24gZmlyc3Qtbm9kZSkKISAJCSAgICAgKGV3b2MtbG9jYXRp b24gZm9vdGVyKSkKISAgICAgICAoZ290by1jaGFyIChld29jLWxvY2F0aW9uIGZvb3RlcikpCiAg ICAgICAgKGxldCAoKHBwIChld29jLS1wcmV0dHktcHJpbnRlciBld29jKSkKISAgICAgICAgICAg ICAobm9kZSBmaXJzdC1ub2RlKSkKICAJKHdoaWxlIChub3QgKGVxIG5vZGUgZm9vdGVyKSkKISAJ ICAgKGV3b2MtLXByaW50LWFuZXcgZXdvYyBub2RlIHBwKQogIAkgIChzZXRxIG5vZGUgKGV3b2Mt LW5vZGUtbmV4dCBkbGwgbm9kZSkpKSkpCiEgICAgIChzZXQtbWFya2VyIChld29jLWxvY2F0aW9u IGZvb3RlcikgKHBvaW50KSkpKQogIAogIChkZWZ1biBld29jLWNvbGxlY3QgKGV3b2MgcHJlZGlj YXRlICZyZXN0IGFyZ3MpCiAgICAiU2VsZWN0IGVsZW1lbnRzIGZyb20gRVdPQyB1c2luZyBQUkVE SUNBVEUuCioqKioqKioqKioqKioqKgoqKiogNTY3LDU3NiAqKioqCiAgICAgIChzZXRmIChld29j LS1ub2RlLWRhdGEgaGVhZCkgaGVhZGVyCiAgICAgICAgICAgIChld29jLS1ub2RlLWRhdGEgZm9v dCkgZm9vdGVyKQogICAgICAoc2F2ZS1leGN1cnNpb24KISAgICAgICAoZXdvYy0tcmVmcmVzaC1u b2RlIGhmLXBwIGhlYWQgZGxsKQohICAgICAgIChld29jLS1yZWZyZXNoLW5vZGUgaGYtcHAgZm9v dCBkbGwpKSkpCiAgCiAgDAogIChwcm92aWRlICdld29jKQogIAogIDs7IExvY2FsIFZhcmlhYmxl czoKLS0tIDY1MSw2NjEgLS0tLQogICAgICAoc2V0ZiAoZXdvYy0tbm9kZS1kYXRhIGhlYWQpIGhl YWRlcgogICAgICAgICAgICAoZXdvYy0tbm9kZS1kYXRhIGZvb3QpIGZvb3RlcikKICAgICAgKHNh dmUtZXhjdXJzaW9uCiEgICAgICAgKGV3b2MtLXJlZnJlc2gtbm9kZSBoZi1wcCBoZWFkIGV3b2Mp CiEgICAgICAgKGV3b2MtLXJlZnJlc2gtbm9kZSBoZi1wcCBmb290IGV3b2MpKSkpCiAgCiAgDAor IChkZWZjb25zdCBld29jLXByb3ZpZGVzLXZhcmlhYmxlLXNlcGFyYXRvciB0KQogIChwcm92aWRl ICdld29jKQogIAogIDs7IExvY2FsIFZhcmlhYmxlczoKCkRpZmYgZmluaXNoZWQgYXQgVGh1IERl YyAxMCAyMDoxNzoxOQo= ------=_20091210202316_27374 Content-Type: application/octet-stream; name="testewoc.el" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="testewoc.el" Ozs7XyB0ZXN0ZXdvYy5lbCAtLS0gVGVzdGluZyBmb3IgZXdvYy5lbAoKOzs7Xy4gSGVhZGVycwo7 OztfICwgTGljZW5zZQo7OyBDb3B5cmlnaHQgKEMpIDIwMDkgIFRvbSBCcmV0b24gKFRlaG9tKQoK OzsgQXV0aG9yOiBUb20gQnJldG9uIChUZWhvbSkgPHRlaG9tQGxvY2FsaG9zdC5sb2NhbGRvbWFp bj4KOzsgS2V5d29yZHM6IG1haW50LCBsaXNwCgo7OyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQo7OyBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQo7 OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLCBvciAoYXQg eW91ciBvcHRpb24pCjs7IGFueSBsYXRlciB2ZXJzaW9uLgoKOzsgVGhpcyBmaWxlIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCjs7IGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCjs7IE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0 aGUKOzsgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCjs7IFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlCjs7IGFsb25nIHdpdGggR05VIEVtYWNzOyBzZWUgdGhlIGZpbGUgQ09QWUlORy4gIElm IG5vdCwgd3JpdGUgdG8KOzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkg VGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAo7OyBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4K Cjs7O18gLCBDb21tZW50YXJ5OgoKOzsgVGhlc2UgdGVzdHMgcmVxdWlyZSBteSBwYWNrYWdlIHJ0 ZXN0LCBhbmQgaW4gcGFydGljdWxhciBtb2NrYnVmLgo7OyBIb3dldmVyLCBydGVzdCBpcyBpbiBm bHV4IHJpZ2h0IG5vdyAoYW5kIHRoZSBuZXcgdmVyc2lvbiB3aWxsCjs7IGRlcGVuZCBvbiBld29j KSwgc28gSSdtIGFmcmFpZCBpdCdzIG5vdCBlYXN5IHRvIGFjdHVhbGx5IHJ1biB0aGVzZQo7OyB0 ZXN0cyByaWdodCBub3cuCgo7O1RoZSBsYXN0IHRlc3QgcmVsaWVzIG9uIFRUTidzIGNvbG9yY29t cCBhcHBsaWNhdGlvbi4KCjs7O18gLCBSZXF1aXJlcwoKKHdoZW4gKG5vdCAoZmJvdW5kcCAncnRl c3Q6ZGVmdGVzdCkpCiAgICAoZGVmbWFjcm8gcnRlc3Q6ZGVmdGVzdCAoJnJlc3QgZHVtbXkpKQog ICAgKGRlZm1hY3JvIHJ0ZXN0OmlmLWF2YWlsICgmcmVzdCBkdW1teSkpKQoKOzs7Xy4gQm9keQoK Ozs7XyAsIFRlc3RpbmcgZXdvYwoKOzs7XyAgLiBFd29jIHRlc3Qgc3VwcG9ydAo7OztfICAgLCBl d29jLWRlYnVnLWdldC1wb3NpdGlvbi1za2VsZXRvbgoKKGRlZnVuIGV3b2MtZGVidWctZ2V0LXBv c2l0aW9uLXNrZWxldG9uIChld29jICZvcHRpb25hbCBmdW5jKQogICAiUmV0dXJuIGEgbGlzdCBz aG93aW5nIHRoZSBwb3NpdGlvbiB0aGF0IGVhY2ggbm9kZSBzdGFydHMgYXQuCkVXT0MgbXVzdCBi ZSBhbiBld29jLgoKRlVOQyBtdXN0IGJlIG5pbCBvciBhIGZ1bmN0aW9uIHRvIGNhbGwgb24gZWFj aCBld29jIG5vZGUgKGluY2x1ZGluZwpoZWFkZXIgYW5kIGZvb3RlciBub2RlcykuIEl0cyByZXR1 cm4gdmFsdWUgd2lsbCBiZSBpbmNvcnBvcmF0ZWQgaW50bwp0aGUgcmV0dXJuIHZhbHVlLiBJdCBj YW4gYmUgdXNlZCwgZm9yIGluc3RhbmNlLCB0byBpZGVudGlmeSBub2Rlcy4iCiAgIChld29jLS1z ZXQtYnVmZmVyLWJpbmQtZGxsIGV3b2MKICAgICAgKGxldCAKCSAoKGZ1bmMgKG9yIGZ1bmMgIydp Z25vcmUpKSkKCSAoZG8gKChub2RlIChld29jLS1ub2RlLXJpZ2h0IGRsbCkgKGV3b2MtLW5vZGUt cmlnaHQgbm9kZSkpCgkJKHJ2LW91dHB1dCAoKSkpCgkgICAgKChlcSBkbGwgbm9kZSkgKG5yZXZl cnNlIHJ2LW91dHB1dCkpIAoJICAgIChwdXNoCgkgICAgICAgKGxpc3QKCQkgIChsZXQKCQkgICAg ICgobWFya2VyIChld29jLS1ub2RlLXN0YXJ0LW1hcmtlciBub2RlKSkpCgkJICAgICAod2hlbiBt YXJrZXIgKG1hcmtlci1wb3NpdGlvbiBtYXJrZXIpKSkKCQkgIChmdW5jYWxsIGZ1bmMgKGV3b2Mt LW5vZGUtZGF0YSBub2RlKSkpCgkgICAgICAgcnYtb3V0cHV0KSkpKSkKCjs7O18gIC4gVGVzdHMK KHJ0ZXN0OmRlZnRlc3QgZXdvYwogICAoICAiU2l0dWF0aW9uOiBuZXdsaW5lIHNlcGFyYXRvciwg ZW1wdHkgaGVhZGVyICYgZm9vdGVyLgpEZW1vbnN0cmF0ZXM6IENvcnJlY3QgYmVoYXZpb3Igb2Yg dmFyaW91cyBwYXJ0cyBvZiBld29jIGludGVyZmFjZS4iCiAgICAgICh3aXRoLXRlbXAtYnVmZmVy CgkgKGxldAoJICAgICgoZXdvYyAKCQkoZXdvYy1jcmVhdGUKCQkgICAjJ2luc2VydCBuaWwgbmls KSkKCSAgICAgICAoZXhwZWN0ZWQtY29udGVudHMKCQkgICIKQAphCmIKYwpkCgoiCgkJICApKQoJ ICAgIAoJICAgIAoJICAgIChld29jLWVudGVyLWxhc3QgZXdvYyAiQCIpCgkgICAgKGV3b2MtZW50 ZXItbGFzdCBld29jICJhIikKCSAgICAoZXdvYy1lbnRlci1sYXN0IGV3b2MgImIiKQoJICAgIChl d29jLWVudGVyLWxhc3QgZXdvYyAiYyIpCgkgICAgKGV3b2MtZW50ZXItbGFzdCBld29jICJkIikK CgkgICAgOztWYWxpZGF0ZQoJICAgIChhc3NlcnQKCSAgICAgICAobW9ja2J1ZjpidWYtY29udGVu dHMtbWF0Y2hlcwoJCSAgOnN0cmluZyBleHBlY3RlZC1jb250ZW50cykpCiAgICAgIAoJICAgIDs7 Q2hlY2sgdGhhdCBub2RlcycgZGF0YSBpcyBhcyBleHBlY3RlZAoJICAgIChsZXQqIAoJICAgICAg ICgobm9kZSAoZXdvYy1udGggZXdvYyAwKSkpCgkgICAgICAgKGFzc2VydAoJCSAgKGVxdWFsIChl d29jLWRhdGEgbm9kZSkgIkAiKQoJCSAgdCkpCgoJICAgIChsZXQqIAoJICAgICAgICgobm9kZSAo ZXdvYy1udGggZXdvYyA0KSkpCgkgICAgICAgKGFzc2VydAoJCSAgKGVxdWFsIChld29jLWRhdGEg bm9kZSkgImQiKQoJCSAgdCkpCgoKCSAgICA7O1Rlc3QgZXdvYy1sb2NhdGlvbi4gIFNpbmNlIHRo ZXJlJ3Mgb25lIGVsZW1lbnQgdG8gYQoJICAgIDs7bGluZSwgd2UgbmVlZCBvbmx5IHRlc3Qgd2hh dCBsaW5lIGl0J3Mgb24gYW5kIHRoYXQgaXQncwoJICAgIDs7YXQgdGhlIGJlZ2lubmluZyBvZiB0 aGUgbGluZS4gIGBjb3VudC1saW5lcycgbmVlZHMgKzEgdG8KCSAgICA7O2FjY291bnQgZm9yIHRo ZSBpbml0aWFsIHNlcGFyYXRvci4gIGBnb3RvLXN0YXJ0LW9mLWVsJwoJICAgIDs7YWNjb3VudHMg Zm9yIHRoZSBzZXBhcmF0b3IgYW5kIHRoZSBmYWN0IHRoYXQgdGhlIHRvcAoJICAgIDs7bGluZSA9 IDEuCgkgICAgKGxhYmVscwoJICAgICAgICgoYm9scC8xIChwb3MpCgkJICAgKHNhdmUtZXhjdXJz aW9uCgkJICAgICAgKGdvdG8tY2hhciBwb3MpCgkJICAgICAgKGJvbHApKSkKCQkgIChhc3NlcnQt cG9zLW1hdGNoZXMtbnVtIChwb3MgZWwtbnVtKQoJCSAgICAgKGFzc2VydAoJCQkoYm9scC8xIHBv cykKCQkJdCkKCQkgICAgIChhc3NlcnQKCQkJKD0gKDEtIChjb3VudC1saW5lcyAxIHBvcykpIGVs LW51bSkKCQkJdCkpCgkJICAoYXNzZXJ0LW5vZGUtbWF0Y2hlcy1udW0gKG5vZGUgZWwtbnVtKQoJ CSAgICAgKGFzc2VydC1wb3MtbWF0Y2hlcy1udW0gKGV3b2MtbG9jYXRpb24gbm9kZSkKCQkJZWwt bnVtKSkKCQkgIChnb3RvLXN0YXJ0LW9mLWVsIChlbC1udW0pIAoJCSAgICAgKGdvdG8tbGluZSAo KyAyIGVsLW51bSkpKSkKCSAgICAgICAKCSAgICAgICA7O2V3b2MtbG9jYXRpb24KCSAgICAgICA7 O0ZpcnN0IGVsZW1lbnQKCSAgICAgICAobGV0KiAKCQkgICgobm9kZSAoZXdvYy1udGggZXdvYyAw KSkpCgkJICAoYXNzZXJ0LW5vZGUtbWF0Y2hlcy1udW0gbm9kZSAwKSkKCSAgICAKCSAgICAgICA7 O0xhc3QgZWxlbWVudAoJICAgICAgIChsZXQqIAoJCSAgKChub2RlIChld29jLW50aCBld29jIDQp KSkKCQkgIChhc3NlcnQtbm9kZS1tYXRjaGVzLW51bSBub2RlIDQpKQoJICAgIAoKCgkgICAgICAg OztUZXN0IGV3b2MtbG9jYXRlCgoJICAgICAgIDs7UG9pbnQgYXQgdGhlIGJlZ2lubmluZyBvZiBh biBlbGVtZW50LCByZXR1cm5zIHRoYXQKCSAgICAgICA7O2VsZW1lbnQuICBCZWNhdXNlIG9mIHRo ZSBpbml0aWFsIHNlcGFyYXRvciwgYGdvdG8tbGluZScKCSAgICAgICA7O25lZWRzIHRvIGdvIHRv IDEgKyBlbGVtZW50IG51bWJlci4KCSAgICAgICAoZ290by1zdGFydC1vZi1lbCAyKQoJICAgICAg IChsZXQqIAoJCSAgKChub2RlIChld29jLWxvY2F0ZSBld29jKSkpCgkJICAoYXNzZXJ0CgkJICAg ICAoZXF1YWwgKGV3b2MtZGF0YSBub2RlKSAiYiIpCgkJICAgICB0KSkKCSAgICAKCgkgICAgICAg OztGaXJzdCBub2RlCgkgICAgICAgKGdvdG8tc3RhcnQtb2YtZWwgMCkKCSAgICAgICAobGV0KiAK CQkgICgobm9kZSAoZXdvYy1sb2NhdGUgZXdvYykpKQoJCSAgKGFzc2VydAoJCSAgICAgKGVxdWFs IChld29jLWRhdGEgbm9kZSkgIkAiKQoJCSAgICAgdCkpCgoJICAgICAgIDs7TGFzdCBub2RlCgkg ICAgICAgKGdvdG8tc3RhcnQtb2YtZWwgNCkKCSAgICAgICAobGV0KiAKCQkgICgobm9kZSAoZXdv Yy1sb2NhdGUgZXdvYykpKQoJCSAgKGFzc2VydAoJCSAgICAgKGVxdWFsIChld29jLWRhdGEgbm9k ZSkgImQiKQoJCSAgICAgdCkpCgoJICAgICAgIDs7QWZ0ZXIgZW5kCgkgICAgICAgKGdvdG8tY2hh ciAocG9pbnQtbWF4KSkKCSAgICAgICAobGV0KiAKCQkgICgobm9kZSAoZXdvYy1sb2NhdGUgZXdv YykpKQoJCSAgKGFzc2VydAoJCSAgICAgKGVxdWFsIChld29jLWRhdGEgbm9kZSkgImQiKQoJCSAg ICAgdCkpCgoJICAgICAgIDs7QmVmb3JlIGJlZ2lubmluZwoJICAgICAgIChnb3RvLWNoYXIgMSkK CSAgICAgICAobGV0KiAKCQkgICgobm9kZSAoZXdvYy1sb2NhdGUgZXdvYykpKQoJCSAgKGFzc2Vy dAoJCSAgICAgKGVxdWFsIChld29jLWRhdGEgbm9kZSkgIkAiKQoJCSAgICAgdCkpCgoKCSAgICAg ICA7O1Rlc3QgZXdvYy1nb3RvLXByZXYKCSAgICAgICA7OzQgLSAxIHRvIDMgCgkgICAgICAgKGdv dG8tc3RhcnQtb2YtZWwgNCkKCSAgICAgICAoZXdvYy1nb3RvLXByZXYgZXdvYyAxKQoJICAgICAg IChsZXQqIAoJCSAgKChub2RlIChld29jLWxvY2F0ZSBld29jKSkpCgkJICAoYXNzZXJ0CgkJICAg ICAoZXF1YWwgKGV3b2MtZGF0YSBub2RlKSAiYyIpCgkJICAgICB0KSkKCgkgICAgICAgOzs0IC0g MiB0byAyCgkgICAgICAgKGdvdG8tc3RhcnQtb2YtZWwgNCkKCSAgICAgICAoZXdvYy1nb3RvLXBy ZXYgZXdvYyAyKQoJICAgICAgIChsZXQqIAoJCSAgKChub2RlIChld29jLWxvY2F0ZSBld29jKSkp CgkJICAoYXNzZXJ0CgkJICAgICAoZXF1YWwgKGV3b2MtZGF0YSBub2RlKSAiYiIpCgkJICAgICB0 KSkKCgkgICAgICAgOzswIC0gMSBzdGlsbCBhdCAwCgkgICAgICAgKGdvdG8tc3RhcnQtb2YtZWwg MCkKCSAgICAgICAoZXdvYy1nb3RvLXByZXYgZXdvYyAxKQoJICAgICAgIChsZXQqIAoJCSAgKChu b2RlIChld29jLWxvY2F0ZSBld29jKSkpCgkJICAoYXNzZXJ0CgkJICAgICAoZXF1YWwgKGV3b2Mt ZGF0YSBub2RlKSAiQCIpCgkJICAgICB0KSkKCSAgICAKCSAgICAgICA7O1Rlc3QgZXdvYy1nb3Rv LW5leHQKCSAgICAgICA7OzIgKyAxIHRvIDMKCSAgICAgICAoZ290by1zdGFydC1vZi1lbCAyKQoJ ICAgICAgIChld29jLWdvdG8tbmV4dCBld29jIDEpCgkgICAgICAgKGxldCogCgkJICAoKG5vZGUg KGV3b2MtbG9jYXRlIGV3b2MpKSkKCQkgIChhc3NlcnQKCQkgICAgIChlcXVhbCAoZXdvYy1kYXRh IG5vZGUpICJjIikKCQkgICAgIHQpKQoKCSAgICAgICA7OzIgKyAyIHRvIDQKCSAgICAgICAoZ290 by1zdGFydC1vZi1lbCAyKQoJICAgICAgIChld29jLWdvdG8tbmV4dCBld29jIDIpCgkgICAgICAg KGxldCogCgkJICAoKG5vZGUgKGV3b2MtbG9jYXRlIGV3b2MpKSkKCQkgIChhc3NlcnQKCQkgICAg IChlcXVhbCAoZXdvYy1kYXRhIG5vZGUpICJkIikKCQkgICAgIHQpKQoKCSAgICAgICA7OzQgKyAx IHN0aWxsIGF0IDQKCSAgICAgICAoZ290by1zdGFydC1vZi1lbCA0KQoJICAgICAgIChld29jLWdv dG8tbmV4dCBld29jIDEpCgkgICAgICAgKGxldCogCgkJICAoKG5vZGUgKGV3b2MtbG9jYXRlIGV3 b2MpKSkKCQkgIChhc3NlcnQKCQkgICAgIChlcXVhbCAoZXdvYy1kYXRhIG5vZGUpICJkIikKCQkg ICAgIHQpKQoJICAgICAgIAoJICAgICAgIDs7VGVzdCBld29jLS1yZWZyZXNoLW5vZGUuCgkgICAg ICAgKGVtdDpnaXZlcy1lcnJvcgoJCSAgKGV3b2MtLXJlZnJlc2gtbm9kZSAjJ2luc2VydCBuaWwg ZXdvYykpCgkgICAgICAgCgkgICAgICAgOzsyMy4xIGZhaWxzIHRoZXNlIHRlc3RzLgoJICAgICAg IChsZXQqIAoJCSAgKChub2RlIChld29jLW50aCBld29jIDApKSkKCQkgIChld29jLS1yZWZyZXNo LW5vZGUgIydpbnNlcnQgbm9kZSBld29jKQoJCSAgKGFzc2VydAoJCSAgICAgKG1vY2tidWY6YnVm LWNvbnRlbnRzLW1hdGNoZXMKCQkJOnN0cmluZyBleHBlY3RlZC1jb250ZW50cykpKQoJICAgICAg IChsZXQqIAoJCSAgKChub2RlIChld29jLW50aCBld29jIDEpKSkKCQkgIChld29jLS1yZWZyZXNo LW5vZGUgIydpbnNlcnQgbm9kZSBld29jKQoJCSAgKGFzc2VydAoJCSAgICAgKG1vY2tidWY6YnVm LWNvbnRlbnRzLW1hdGNoZXMKCQkJOnN0cmluZyBleHBlY3RlZC1jb250ZW50cykpKQoKCSAgICAg ICAobGV0KiAKCQkgICgobm9kZSAoZXdvYy1udGggZXdvYyA0KSkpCgkJICAoZXdvYy0tcmVmcmVz aC1ub2RlICMnaW5zZXJ0IG5vZGUgZXdvYykKCQkgIChhc3NlcnQKCQkgICAgIChtb2NrYnVmOmJ1 Zi1jb250ZW50cy1tYXRjaGVzCgkJCTpzdHJpbmcgZXhwZWN0ZWQtY29udGVudHMpKSkKCgkgICAg ICAgOztUZXN0IGV3b2MtcmVmcmVzaAoJICAgICAgIChld29jLXJlZnJlc2ggZXdvYykKCSAgICAg ICAoYXNzZXJ0CgkJICAobW9ja2J1ZjpidWYtY29udGVudHMtbWF0Y2hlcwoJCSAgICAgOnN0cmlu ZyBleHBlY3RlZC1jb250ZW50cwoJCSAgICAgKSkpKQoJIHQpKQoKCiAgICggICJTaXR1YXRpb246 IG5vIHNlcGFyYXRvciwgZW1wdHkgaGVhZGVyICYgZm9vdGVyLgpEZW1vbnN0cmF0ZXM6IENvcnJl Y3QgYmVoYXZpb3Igb2YgdmFyaW91cyBwYXJ0cyBvZiBld29jIGludGVyZmFjZS4iCiAgICAgICh3 aXRoLXRlbXAtYnVmZmVyCgkgKGxldAoJICAgICgoZXdvYyAKCQkoZXdvYy1jcmVhdGUgIydpbnNl cnQgbmlsIG5pbCAiIikpCgkgICAgICAgKGV4cGVjdGVkLWNvbnRlbnRzCgkJICAiQGFiY2QiKSkK CSAgICAKCSAgICAoZXdvYy1lbnRlci1sYXN0IGV3b2MgIkAiKQoJICAgIChld29jLWVudGVyLWxh c3QgZXdvYyAiYSIpCgkgICAgKGV3b2MtZW50ZXItbGFzdCBld29jICJiIikKCSAgICAoZXdvYy1l bnRlci1sYXN0IGV3b2MgImMiKQoJICAgIChld29jLWVudGVyLWxhc3QgZXdvYyAiZCIpCgkgICAg CgkgICAgOztWYWxpZGF0ZQoJICAgIChhc3NlcnQKCSAgICAgICAobW9ja2J1ZjpidWYtY29udGVu dHMtbWF0Y2hlcwoJCSAgOnN0cmluZyBleHBlY3RlZC1jb250ZW50cykpCgoJICAgIDs7Q2hlY2sg dGhhdCBub2RlcycgZGF0YSBpcyBhcyBleHBlY3RlZAoJICAgIChsZXQqIAoJICAgICAgICgobm9k ZSAoZXdvYy1udGggZXdvYyAwKSkpCgkgICAgICAgKGFzc2VydAoJCSAgKGVxdWFsIChld29jLWRh dGEgbm9kZSkgIkAiKQoJCSAgdCkpCgoJICAgIChsZXQqIAoJICAgICAgICgobm9kZSAoZXdvYy1u dGggZXdvYyA0KSkpCgkgICAgICAgKGFzc2VydAoJCSAgKGVxdWFsIChld29jLWRhdGEgbm9kZSkg ImQiKQoJCSAgdCkpCgoKCSAgICAobGFiZWxzCgkgICAgICAgKAoJCSAgKGFzc2VydC1wb3MtbWF0 Y2hlcy1udW0gKHBvcyBlbC1udW0pCgkJICAgICAoYXNzZXJ0CgkJCSg9ICgxLSBwb3MpIGVsLW51 bSkKCQkJdCkpCgkJICAoYXNzZXJ0LW5vZGUtbWF0Y2hlcy1udW0gKG5vZGUgZWwtbnVtKQoJCSAg ICAgKGFzc2VydC1wb3MtbWF0Y2hlcy1udW0gKGV3b2MtbG9jYXRpb24gbm9kZSkKCQkJZWwtbnVt KSkKCQkgIChnb3RvLXN0YXJ0LW9mLWVsIChlbC1udW0pIAoJCSAgICAgKGdvdG8tY2hhciAoMSsg ZWwtbnVtKSkpKQoJICAgICAgIAoJICAgICAgIDs7ZXdvYy1sb2NhdGlvbgoJICAgICAgIDs7Rmly c3QgZWxlbWVudAoJICAgICAgIChsZXQqIAoJCSAgKChub2RlIChld29jLW50aCBld29jIDApKSkK CQkgIChhc3NlcnQtbm9kZS1tYXRjaGVzLW51bSBub2RlIDApKQoJICAgIAoJICAgICAgIDs7TGFz dCBlbGVtZW50CgkgICAgICAgKGxldCogCgkJICAoKG5vZGUgKGV3b2MtbnRoIGV3b2MgNCkpKQoJ CSAgKGFzc2VydC1ub2RlLW1hdGNoZXMtbnVtIG5vZGUgNCkpCgkgICAgCgoKCSAgICAgICA7O1Rl c3QgZXdvYy1sb2NhdGUKCgkgICAgICAgOztQb2ludCBhdCB0aGUgYmVnaW5uaW5nIG9mIGFuIGVs ZW1lbnQsIHJldHVybnMgdGhhdAoJICAgICAgIDs7ZWxlbWVudC4gIEJlY2F1c2Ugb2YgdGhlIGlu aXRpYWwgc2VwYXJhdG9yLCBgZ290by1saW5lJwoJICAgICAgIDs7bmVlZHMgdG8gZ28gdG8gMSAr IGVsZW1lbnQgbnVtYmVyLgoJICAgICAgIChnb3RvLXN0YXJ0LW9mLWVsIDIpCgkgICAgICAgKGxl dCogCgkJICAoKG5vZGUgKGV3b2MtbG9jYXRlIGV3b2MpKSkKCQkgIChhc3NlcnQKCQkgICAgIChl cXVhbCAoZXdvYy1kYXRhIG5vZGUpICJiIikKCQkgICAgIHQpKQoJICAgIAoKCSAgICAgICA7O0Zp cnN0IG5vZGUKCSAgICAgICAoZ290by1zdGFydC1vZi1lbCAwKQoJICAgICAgIChsZXQqIAoJCSAg KChub2RlIChld29jLWxvY2F0ZSBld29jKSkpCgkJICAoYXNzZXJ0CgkJICAgICAoZXF1YWwgKGV3 b2MtZGF0YSBub2RlKSAiQCIpCgkJICAgICB0KSkKCgkgICAgICAgOztMYXN0IG5vZGUKCSAgICAg ICAoZ290by1zdGFydC1vZi1lbCA0KQoJICAgICAgIChsZXQqIAoJCSAgKChub2RlIChld29jLWxv Y2F0ZSBld29jKSkpCgkJICAoYXNzZXJ0CgkJICAgICAoZXF1YWwgKGV3b2MtZGF0YSBub2RlKSAi ZCIpCgkJICAgICB0KSkKCgkgICAgICAgOztBZnRlciBlbmQKCSAgICAgICAoZ290by1jaGFyIChw b2ludC1tYXgpKQoJICAgICAgIChsZXQqIAoJCSAgKChub2RlIChld29jLWxvY2F0ZSBld29jKSkp CgkJICAoYXNzZXJ0CgkJICAgICAoZXF1YWwgKGV3b2MtZGF0YSBub2RlKSAiZCIpCgkJICAgICB0 KSkKCgkgICAgICAgOztCZWZvcmUgYmVnaW5uaW5nCgkgICAgICAgKGdvdG8tY2hhciAxKQoJICAg ICAgIChsZXQqIAoJCSAgKChub2RlIChld29jLWxvY2F0ZSBld29jKSkpCgkJICAoYXNzZXJ0CgkJ ICAgICAoZXF1YWwgKGV3b2MtZGF0YSBub2RlKSAiQCIpCgkJICAgICB0KSkKCgoJICAgICAgIDs7 VGVzdCBld29jLWdvdG8tcHJldgoJICAgICAgIDs7NCAtIDEgdG8gMyAKCSAgICAgICAoZ290by1z dGFydC1vZi1lbCA0KQoJICAgICAgIChld29jLWdvdG8tcHJldiBld29jIDEpCgkgICAgICAgKGxl dCogCgkJICAoKG5vZGUgKGV3b2MtbG9jYXRlIGV3b2MpKSkKCQkgIChhc3NlcnQKCQkgICAgIChl cXVhbCAoZXdvYy1kYXRhIG5vZGUpICJjIikKCQkgICAgIHQpKQoKCSAgICAgICA7OzQgLSAyIHRv IDIKCSAgICAgICAoZ290by1zdGFydC1vZi1lbCA0KQoJICAgICAgIChld29jLWdvdG8tcHJldiBl d29jIDIpCgkgICAgICAgKGxldCogCgkJICAoKG5vZGUgKGV3b2MtbG9jYXRlIGV3b2MpKSkKCQkg IChhc3NlcnQKCQkgICAgIChlcXVhbCAoZXdvYy1kYXRhIG5vZGUpICJiIikKCQkgICAgIHQpKQoK CSAgICAgICA7OzAgLSAxIHN0aWxsIGF0IDAKCSAgICAgICAoZ290by1zdGFydC1vZi1lbCAwKQoJ ICAgICAgIChld29jLWdvdG8tcHJldiBld29jIDEpCgkgICAgICAgKGxldCogCgkJICAoKG5vZGUg KGV3b2MtbG9jYXRlIGV3b2MpKSkKCQkgIChhc3NlcnQKCQkgICAgIChlcXVhbCAoZXdvYy1kYXRh IG5vZGUpICJAIikKCQkgICAgIHQpKQoJICAgIAoJICAgICAgIDs7VGVzdCBld29jLWdvdG8tbmV4 dAoJICAgICAgIDs7MiArIDEgdG8gMwoJICAgICAgIChnb3RvLXN0YXJ0LW9mLWVsIDIpCgkgICAg ICAgKGV3b2MtZ290by1uZXh0IGV3b2MgMSkKCSAgICAgICAobGV0KiAKCQkgICgobm9kZSAoZXdv Yy1sb2NhdGUgZXdvYykpKQoJCSAgKGFzc2VydAoJCSAgICAgKGVxdWFsIChld29jLWRhdGEgbm9k ZSkgImMiKQoJCSAgICAgdCkpCgoJICAgICAgIDs7MiArIDIgdG8gNAoJICAgICAgIChnb3RvLXN0 YXJ0LW9mLWVsIDIpCgkgICAgICAgKGV3b2MtZ290by1uZXh0IGV3b2MgMikKCSAgICAgICAobGV0 KiAKCQkgICgobm9kZSAoZXdvYy1sb2NhdGUgZXdvYykpKQoJCSAgKGFzc2VydAoJCSAgICAgKGVx dWFsIChld29jLWRhdGEgbm9kZSkgImQiKQoJCSAgICAgdCkpCgoJICAgICAgIDs7NCArIDEgc3Rp bGwgYXQgNAoJICAgICAgIChnb3RvLXN0YXJ0LW9mLWVsIDQpCgkgICAgICAgKGV3b2MtZ290by1u ZXh0IGV3b2MgMSkKCSAgICAgICAobGV0KiAKCQkgICgobm9kZSAoZXdvYy1sb2NhdGUgZXdvYykp KQoJCSAgKGFzc2VydAoJCSAgICAgKGVxdWFsIChld29jLWRhdGEgbm9kZSkgImQiKQoJCSAgICAg dCkpCgkgICAgICAgCgkgICAgICAgOztUZXN0IGV3b2MtLXJlZnJlc2gtbm9kZS4KCSAgICAgICAo ZW10OmdpdmVzLWVycm9yCgkJICAoZXdvYy0tcmVmcmVzaC1ub2RlICMnaW5zZXJ0IG5pbCBld29j KSkKCSAgICAgICAKCSAgICAgICAobGV0KiAKCQkgICgobm9kZSAoZXdvYy1udGggZXdvYyAwKSkp CgkJICAoZXdvYy0tcmVmcmVzaC1ub2RlICMnaW5zZXJ0IG5vZGUgZXdvYykKCQkgIChhc3NlcnQK CQkgICAgIChtb2NrYnVmOmJ1Zi1jb250ZW50cy1tYXRjaGVzCgkJCTpzdHJpbmcgZXhwZWN0ZWQt Y29udGVudHMpKSkKCSAgICAgICAobGV0KiAKCQkgICgobm9kZSAoZXdvYy1udGggZXdvYyAxKSkp CgkJICAoZXdvYy0tcmVmcmVzaC1ub2RlICMnaW5zZXJ0IG5vZGUgZXdvYykKCQkgIChhc3NlcnQK CQkgICAgIChtb2NrYnVmOmJ1Zi1jb250ZW50cy1tYXRjaGVzCgkJCTpzdHJpbmcgZXhwZWN0ZWQt Y29udGVudHMpKSkKCgkgICAgICAgKGxldCogCgkJICAoKG5vZGUgKGV3b2MtbnRoIGV3b2MgNCkp KQoJCSAgKGV3b2MtLXJlZnJlc2gtbm9kZSAjJ2luc2VydCBub2RlIGV3b2MpCgkJICAoYXNzZXJ0 CgkJICAgICAobW9ja2J1ZjpidWYtY29udGVudHMtbWF0Y2hlcwoJCQk6c3RyaW5nIGV4cGVjdGVk LWNvbnRlbnRzKSkpCgoJICAgICAgIDs7VGVzdCBld29jLXJlZnJlc2gKCSAgICAgICAoZXdvYy1y ZWZyZXNoIGV3b2MpCgkgICAgICAgKGFzc2VydAoJCSAgKG1vY2tidWY6YnVmLWNvbnRlbnRzLW1h dGNoZXMKCQkgICAgIDpzdHJpbmcgZXhwZWN0ZWQtY29udGVudHMKCQkgICAgICkpKSkKCSB0KSkK CiAgICggICJQYXJhbTogbm9uLW5pbCwgbm9uLXN0cmluZyBzZXBhcmF0b3IgYXJndW1lbnQuClJl c3BvbnNlOiAgQmVoYXZlcyBhcyB0aGUgZW1wdHkgc2VwYXJhdG9yLiIKICAgICAgKHdpdGgtdGVt cC1idWZmZXIKCSAobGV0CgkgICAgKChld29jIAoJCShld29jLWNyZWF0ZSAjJ2luc2VydCBuaWwg bmlsIHQpKQoJICAgICAgIChleHBlY3RlZC1jb250ZW50cwoJCSAgIkBhYmNkIikpCgkgICAgCgkg ICAgKGV3b2MtZW50ZXItbGFzdCBld29jICJAIikKCSAgICAoZXdvYy1lbnRlci1sYXN0IGV3b2Mg ImEiKQoJICAgIChld29jLWVudGVyLWxhc3QgZXdvYyAiYiIpCgkgICAgKGV3b2MtZW50ZXItbGFz dCBld29jICJjIikKCSAgICAoZXdvYy1lbnRlci1sYXN0IGV3b2MgImQiKQoJICAgIAoJICAgIChh c3NlcnQKCSAgICAgICAobW9ja2J1ZjpidWYtY29udGVudHMtbWF0Y2hlcwoJCSAgOnN0cmluZyBl eHBlY3RlZC1jb250ZW50cykpKQoKCSB0KSkKCiAgICAgICggICJTaXR1YXRpb246IG5vIHNlcGFy YXRvciwgZW1wdHkgaGVhZGVyICYgZm9vdGVyLCBzb21lIGVtcHR5IGVsZW1lbnRzLgpEZW1vbnN0 cmF0ZXM6IENvcnJlY3QgYmVoYXZpb3Igb2YgcmVmcmVzaCBhbmQgbWFwLiIKICAgICAgKHdpdGgt dGVtcC1idWZmZXIKCSAobGV0CgkgICAgKChld29jIAoJCShld29jLWNyZWF0ZQoJCSAgICMnaW5z ZXJ0IG5pbCBuaWwgIiIpKQoJICAgICAgIChleHBlY3RlZC1jb250ZW50cwoJCSAgImFjZSIpKQoJ ICAgIAoJICAgIChld29jLWVudGVyLWxhc3QgZXdvYyAiYSIpCgkgICAgKGV3b2MtZW50ZXItbGFz dCBld29jICIiKQoJICAgIChld29jLWVudGVyLWxhc3QgZXdvYyAiYyIpCgkgICAgKGV3b2MtZW50 ZXItbGFzdCBld29jICIiKQoJICAgIChld29jLWVudGVyLWxhc3QgZXdvYyAiZSIpCgkgICAgCgkg ICAgOztWYWxpZGF0ZQoJICAgIChhc3NlcnQKCSAgICAgICAobW9ja2J1ZjpidWYtY29udGVudHMt bWF0Y2hlcwoJCSAgOnN0cmluZyBleHBlY3RlZC1jb250ZW50cykpCgoJICAgIDs7UmVmcmVzaAoK CSAgICAoZXdvYy1yZWZyZXNoIGV3b2MpCgoJICAgIChhc3NlcnQKCSAgICAgICAobW9ja2J1Zjpi dWYtY29udGVudHMtbWF0Y2hlcwoJCSAgOnN0cmluZyBleHBlY3RlZC1jb250ZW50cykpCgoJICAg IDs7TWFwCgoJICAgIDs7QWxsIGVsZW1lbnRzIG5vbi1uaWwsIGllIHJlcHJpbnRlZC4KCSAgICAo bGV0CgkgICAgICAgKChsCgkJICAgKGV3b2MtbWFwICMnaWRlbnRpdHkgZXdvYykpKQoJICAgICAg IDs7YGV3b2MtbWFwJyBkb2Vzbid0IGFjdHVhbGx5IGNvbGxlY3QgYSBsaXN0IG9mIHJldHVybgoJ ICAgICAgIDs7dmFsdWVzLCBzbyB3ZSBjYW4ndCB0ZXN0IHRoYXQuCgkgICAgICAgKQoJICAgIAoJ ICAgIChhc3NlcnQKCSAgICAgICAobW9ja2J1ZjpidWYtY29udGVudHMtbWF0Y2hlcwoJCSAgOnN0 cmluZyBleHBlY3RlZC1jb250ZW50cykpCgkgICAKCSAgICA7O09uZSBlbGVtZW50IG5vbi1uaWws IGllIHJlcHJpbnRlZC4KCSAgICAoZXdvYy1tYXAgIydzdHJpbmctZXF1YWwKCSAgICAgICBld29j CgkgICAgICAgImMiKQoJICAgIChhc3NlcnQKCSAgICAgICAobW9ja2J1ZjpidWYtY29udGVudHMt bWF0Y2hlcwoJCSAgOnN0cmluZyBleHBlY3RlZC1jb250ZW50cykpKQoJIAoJIHQpKQoKICAgKCAg IlNpdHVhdGlvbjogbm8gc2VwYXJhdG9yLCBlbXB0eSBoZWFkZXIgJiBmb290ZXIsIHNvbWUgZW1w dHkgZWxlbWVudHMuCkRlbW9uc3RyYXRlczogQ29ycmVjdCBiZWhhdmlvciBvZiBmaWx0ZXIuIgog ICAgICAod2l0aC10ZW1wLWJ1ZmZlcgoJIChsZXQKCSAgICAoKGV3b2MgCgkJKGV3b2MtY3JlYXRl CgkJICAgIydpbnNlcnQgbmlsIG5pbCAiIikpKQoJICAgIAoJICAgIChld29jLWVudGVyLWxhc3Qg ZXdvYyAiYSIpCgkgICAgKGV3b2MtZW50ZXItbGFzdCBld29jICJiIikKCSAgICAoZXdvYy1lbnRl ci1sYXN0IGV3b2MgIiIpCgkgICAgKGV3b2MtZW50ZXItbGFzdCBld29jICJhIikKCSAgICAoZXdv Yy1lbnRlci1sYXN0IGV3b2MgImMiKQoJICAgIChld29jLWVudGVyLWxhc3QgZXdvYyAiYSIpCgkg ICAgKGV3b2MtZW50ZXItbGFzdCBld29jICIiKQoJICAgIChld29jLWVudGVyLWxhc3QgZXdvYyAi ZCIpCgkgICAgCgkgICAgOztWYWxpZGF0ZQoJICAgIChhc3NlcnQKCSAgICAgICAobW9ja2J1Zjpi dWYtY29udGVudHMtbWF0Y2hlcwoJCSAgOnN0cmluZyAiYWJhY2FkIikpCgoJICAgIChld29jLWZp bHRlciBld29jCgkgICAgICAgIycobGFtYmRhIChkYXRhIHN0cikKCQkgICAgKG5vdCAoc3RyaW5n LWVxdWFsIGRhdGEgc3RyKSkKCQkgICAgKQoJICAgICAgICJhIikKCSAgICAKCSAgICAoYXNzZXJ0 CgkgICAgICAgKG1vY2tidWY6YnVmLWNvbnRlbnRzLW1hdGNoZXMKCQkgIDpzdHJpbmcgImJjZCIp KQoKCSAgICA7O0JlaGF2aW9yIG9mIGBld29jLWRvJwoJICAgIChsZXQKCSAgICAgICAoKGNvdW50 IDApKQoJICAgICAgIChld29jLWRvIChpIGV3b2MpCgkJICAoaW5jZiBjb3VudCkpCgkgICAgICAg KGFzc2VydCAoPSBjb3VudCA1KSB0KSkKCSAgICAKCSAgICAobGV0CgkgICAgICAgKChjb3VudCAw KSkKCSAgICAgICAoZXdvYy1kbyAoaSBld29jKQoJCSAgKHdoZW4gKG5vdCAoc3RyaW5nLWVxdWFs IGkgIiIpKQoJCSAgICAgKGluY2YgY291bnQpKSkKCSAgICAgICAoYXNzZXJ0ICg9IGNvdW50IDMp IHQpKSkKCSAKCSB0KSkKICAgCiAgIAogICAoICAiRGVtb25zdHJhdGlvbjogVGhlIGNvbG9yY29t cCBhcHBsaWNhdGlvbi4iCiAgICAgIChsZXQqCgkgKChjb2xvciAiZ3JlZW4iKQoJICAgIChidWYt bmFtZQoJICAgICAgIDs7SGFjazogU2luY2UgY29sb3Jjb21wIGRvZXNuJ3QgdGVsbCB1cyB3aGF0 IGJ1ZmZlciBpdAoJICAgICAgIDs7bWFkZSwgZmlyc3QgZ2VuZXJhdGUgdGhlIGJ1ZmZlciBuYW1l IHRoZSBzYW1lIHdheSBpdAoJICAgICAgIDs7ZG9lcy4gIExhdGVyIHdlJ2xsIGZpbmQgdGhlIGJ1 ZmZlciB3aXRoIHRoaXMgbmFtZS4KCSAgICAgICAoZ2VuZXJhdGUtbmV3LWJ1ZmZlci1uYW1lIAoJ CSAgKGZvcm1hdCAib3JpZ2luYWxseTogJXMiIGNvbG9yKSkpKQoJIDs7SWYgYGNvbG9yY29tcCcg aXMgbm90IGF2YWlsYWJsZSwgdGhpcyB0ZXN0IGlzIGRvcm1hbnQgKG5vdAoJIDs7c3VwcG9ydGVk IHlldCkKCSAocmVxdWlyZSAnY29sb3Jjb21wKQoJIAoJIChjb2xvcmNvbXAgY29sb3IpCgkgKHdp dGgtY3VycmVudC1idWZmZXIgKGdldC1idWZmZXIgYnVmLW5hbWUpCgkgICAgKGFzc2VydAoJICAg ICAgIChtb2NrYnVmOmJ1Zi1jb250ZW50cy1tYXRjaGVzCgkJICA6ZGlyICIuLi90L2V4YW1wbGVz L2V3b2MvIgoJCSAgOmZpbGUgImNvbG9yY29tcC4xLnR4dCIpKQoKCSAgICA7O1B1dCBpdCB0aHJ1 IGl0cyBwYWNlcyBhbmQgY2hlY2sgdGhhdCBidWZmZXIgdGV4dCBpcwoJICAgIDs7Y29ycmVjdC4K CSAgICAoZG90aW1lcyAoaSAzMikgKGNvbG9yY29tcC1SLW1vcmUpKQoJICAgIChhc3NlcnQKCSAg ICAgICAobW9ja2J1ZjpidWYtY29udGVudHMtbWF0Y2hlcwoJCSAgOmRpciAiLi4vdC9leGFtcGxl cy9ld29jLyIKCQkgIDpmaWxlICJjb2xvcmNvbXAuMi50eHQiKSkKCgkgICAgKGRvdGltZXMgKGkg NjQpIChjb2xvcmNvbXAtQi1tb3JlKSkKCSAgICAoYXNzZXJ0CgkgICAgICAgKG1vY2tidWY6YnVm LWNvbnRlbnRzLW1hdGNoZXMKCQkgIDpkaXIgIi4uL3QvZXhhbXBsZXMvZXdvYy8iCgkJICA6Zmls ZSAiY29sb3Jjb21wLjMudHh0IikpCgoJICAgIChkb3RpbWVzIChpIDE1KSAoY29sb3Jjb21wLUct bGVzcykpCgkgICAgKGFzc2VydAoJICAgICAgIChtb2NrYnVmOmJ1Zi1jb250ZW50cy1tYXRjaGVz CgkJICA6ZGlyICIuLi90L2V4YW1wbGVzL2V3b2MvIgoJCSAgOmZpbGUgImNvbG9yY29tcC40LnR4 dCIpKQoKCSAgICAoY29sb3Jjb21wLWNvcHktYXMta2lsbC1hbmQtZXhpdCkpCgkgdCkpCiAgIAog ICApCgoKOzs7Xy4gRm9vdGVycwo7OztfICwgUHJvdmlkZXMKCihwcm92aWRlICd0ZXN0ZXdvYykK Cjs7O18gKiBMb2NhbCBlbWFjcyB2YXJzLgo7OztfICArIExvY2FsIHZhcmlhYmxlczoKOzs7XyAg KyBtb2RlOiBhbGxvdXQKOzs7XyAgKyBFbmQ6Cgo7OztfICwgRW5kCjs7OyB0ZXN0ZXdvYy5lbCBl bmRzIGhlcmUK ------=_20091210202316_27374--