From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Juhani Rantanen" Newsgroups: gmane.lisp.guile.bugs Subject: Re: Segfault when running fibc benchmark in current trunk Date: Mon, 20 Apr 2009 01:02:45 +0300 (EEST) Message-ID: <39231.87.93.21.245.1240178565.squirrel@webmail.aj-group.net> References: <36841.87.95.9.89.1239928621.squirrel@mail.aj-group.net> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed;boundary="----=_20090420010245_50081" X-Trace: ger.gmane.org 1240178614 6865 80.91.229.12 (19 Apr 2009 22:03:34 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 19 Apr 2009 22:03:34 +0000 (UTC) Cc: bug-guile@gnu.org, Juhani Rantanen To: "Andy Wingo" Original-X-From: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Mon Apr 20 00:04:50 2009 Return-path: Envelope-to: guile-bugs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1Lvf7u-0000pu-0A for guile-bugs@m.gmane.org; Mon, 20 Apr 2009 00:04:50 +0200 Original-Received: from localhost ([127.0.0.1]:38898 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Lvf6U-0008Iu-Pp for guile-bugs@m.gmane.org; Sun, 19 Apr 2009 18:03:10 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Lvf6P-0008IT-5I for bug-guile@gnu.org; Sun, 19 Apr 2009 18:03:05 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Lvf6K-0008HO-E6 for bug-guile@gnu.org; Sun, 19 Apr 2009 18:03:04 -0400 Original-Received: from [199.232.76.173] (port=37710 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Lvf6K-0008HJ-7m for bug-guile@gnu.org; Sun, 19 Apr 2009 18:03:00 -0400 Original-Received: from server-a110.esp.mediateam.fi ([81.17.202.110]:34249 helo=homer.aj-group.net) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1Lvf6I-0005di-Pj for bug-guile@gnu.org; Sun, 19 Apr 2009 18:02:59 -0400 Original-Received: from localhost (localhost [127.0.0.1]) by homer.aj-group.net (Postfix) with ESMTP id 0CBCB379AB; Mon, 20 Apr 2009 01:02:56 +0300 (EEST) X-Virus-Scanned: Debian amavisd-new at aj-group.net Original-Received: from homer.aj-group.net ([127.0.0.1]) by localhost (homer.aj-group.net [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id MDSWweDCaRiq; Mon, 20 Apr 2009 01:02:49 +0300 (EEST) Original-Received: by homer.aj-group.net (Postfix, from userid 1018) id 58A51379D9; Mon, 20 Apr 2009 01:02:48 +0300 (EEST) Original-Received: from webmail.aj-group.net (localhost [127.0.0.1]) by homer.aj-group.net (Postfix) with ESMTP id 3F593379AB; Mon, 20 Apr 2009 01:02:45 +0300 (EEST) Original-Received: from 87.93.21.245 (SquirrelMail authenticated user misty) by webmail.aj-group.net with HTTP; Mon, 20 Apr 2009 01:02:45 +0300 (EEST) In-Reply-To: User-Agent: SquirrelMail/1.4.9a X-Priority: 3 (Normal) Importance: Normal X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.4-2.6 X-BeenThere: bug-guile@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Bug reports for GUILE, GNU's Ubiquitous Extension Language" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Errors-To: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.bugs:4208 Archived-At: ------=_20090420010245_50081 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable > I look forward to the next bug report :) Here are some more files that don't need the benchmark suite to run. I also ran all of the tests with Gambit and there wasn't any errors. Testing maze under Guile-r5rs Compiling... Running... ERROR: In procedure zero?: ERROR: Wrong type argument in position 1: #f Testing trav2 under Guile-r5rs Compiling... Running... ERROR: In procedure memoization: ERROR: Non-list result for unquote-splicing (#(node () () 1 #f #f #f #f #= f #f ...) . #0#) in expression ((unquote-splicing (#> (#> #@0+1)))). Testing trav1 under Guile-r5rs Compiling... Running... ERROR: In procedure memoization: ERROR: Non-list result for unquote-splicing (#(node () () 1 #f #f #f #f #= f #f ...) . #0#) in expression ((unquote-splicing (#> (#> #@0+1)))). Best Regards, Juhani ------=_20090420010245_50081 Content-Type: application/octet-stream; name="maze_bug.scm" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="maze_bug.scm" KGRlZmluZSAocnVuLWJlbmNoIG5hbWUgY291bnQgb2s/IHJ1bikKICAobGV0IGxvb3AgKChpIGNv dW50KSAocmVzdWx0ICcodW5kZWZpbmVkKSkpCiAgICAoaWYgKDwgMCBpKQogICAgICAobG9vcCAo LSBpIDEpIChydW4pKQogICAgICByZXN1bHQpKSkKCihkZWZpbmUgKHJ1bi1iZW5jaG1hcmsgbmFt ZSBjb3VudCBvaz8gcnVuLW1ha2VyIC4gYXJncykKICAobmV3bGluZSkKICAobGV0KiAoKHJ1biAo YXBwbHkgcnVuLW1ha2VyIGFyZ3MpKQogICAgICAgICAocmVzdWx0IChydW4tYmVuY2ggbmFtZSBj b3VudCBvaz8gcnVuKSkpCiAgICAoaWYgKG5vdCAob2s/IHJlc3VsdCkpCiAgICAgIChiZWdpbgog ICAgICAgIChkaXNwbGF5ICIqKiogd3JvbmcgcmVzdWx0ICoqKiIpCiAgICAgICAgKG5ld2xpbmUp CiAgICAgICAgKGRpc3BsYXkgIioqKiBnb3Q6ICIpCiAgICAgICAgKHdyaXRlIHJlc3VsdCkKICAg ICAgICAobmV3bGluZSkpKSkpCgooZGVmaW5lIChmYXRhbC1lcnJvciAuIGFyZ3MpCiAgKGZvci1l YWNoIGRpc3BsYXkgYXJncykKICAobmV3bGluZSkKICAoZXhpdCAxKSkKCiAoZGVmaW5lIChjYWxs LXdpdGgtb3V0cHV0LWZpbGUvdHJ1bmNhdGUgZmlsZW5hbWUgcHJvYykKICAgKGNhbGwtd2l0aC1v dXRwdXQtZmlsZSBmaWxlbmFtZSBwcm9jKSkKCihkZWZpbmUgbWF6ZS1pdGVycyAgICAgICAgNDAw KQo7OzsgTUFaRSAtLSBDb25zdHJ1Y3RzIGEgbWF6ZSBvbiBhIGhleGFnb25hbCBncmlkLCB3cml0 dGVuIGJ5IE9saW4gU2hpdmVycy4KCjstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KOyBXYXMgZmlsZSAi cmFuZC5zY20iLgoKOyBNaW5pbWFsIFN0YW5kYXJkIFJhbmRvbSBOdW1iZXIgR2VuZXJhdG9yCjsg UGFyayAmIE1pbGxlciwgQ0FDTSAzMSgxMCksIE9jdCAxOTg4LCAzMiBiaXQgaW50ZWdlciB2ZXJz aW9uLgo7IGJldHRlciBjb25zdGFudHMsIGFzIHByb3Bvc2VkIGJ5IFBhcmsuCjsgQnkgT3phbiBZ aWdpdAoKOzs7IFJlaGFja2VkIGJ5IE9saW4gNC8xOTk1LgoKKGRlZmluZSAocmFuZG9tLXN0YXRl IG4pCiAgKGNvbnMgbiAjZikpCgooZGVmaW5lIChyYW5kIHN0YXRlKQogIChsZXQgKChzZWVkIChj YXIgc3RhdGUpKQogICAgICAgIChBIDI4MTMpIDsgNDgyNzEKICAgICAgICAoTSA4Mzg4NjA3KSA7 IDIxNDc0ODM2NDcKICAgICAgICAoUSAyNzg3KSA7IDQ0NDg4CiAgICAgICAgKFIgMjY5OSkpIDsg MzM5OQogICAgKGxldCogKChoaSAocXVvdGllbnQgc2VlZCBRKSkKICAgICAgICAgICAobG8gKG1v ZHVsbyBzZWVkIFEpKQogICAgICAgICAgICh0ZXN0ICgtICgqIEEgbG8pICgqIFIgaGkpKSkKICAg ICAgICAgICAodmFsIChpZiAoPiB0ZXN0IDApIHRlc3QgKCsgdGVzdCBNKSkpKQogICAgICAoc2V0 LWNhciEgc3RhdGUgdmFsKQogICAgICB2YWwpKSkKCihkZWZpbmUgKHJhbmRvbS1pbnQgbiBzdGF0 ZSkKICAobW9kdWxvIChyYW5kIHN0YXRlKSBuKSkKCjstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KOyBX YXMgZmlsZSAidWYuc2NtIi4KCjs7OyBUYXJqYW4ncyBhbW9ydGlzZWQgdW5pb24tZmluZCBkYXRh IHN0cnVjdHVyZS4KOzs7IENvcHlyaWdodCAoYykgMTk5NSBieSBPbGluIFNoaXZlcnMuCgo7Ozsg VGhpcyBkYXRhIHN0cnVjdHVyZSBpbXBsZW1lbnRzIGRpc2pvaW50IHNldHMgb2YgZWxlbWVudHMu Cjs7OyBGb3VyIG9wZXJhdGlvbnMgYXJlIHN1cHBvcnRlZC4gVGhlIGltcGxlbWVudGF0aW9uIGlz IGV4dHJlbWVseQo7OzsgZmFzdCAtLSBhbnkgc2VxdWVuY2Ugb2YgTiBvcGVyYXRpb25zIGNhbiBi ZSBwZXJmb3JtZWQgaW4gdGltZQo7Ozsgc28gY2xvc2UgdG8gbGluZWFyIGl0J3MgbGF1Z2hhYmxl IGhvdyBjbG9zZSBpdCBpcy4gU2VlIHlvdXIKOzs7IGludHJvIGRhdGEgc3RydWN0dXJlcyBib29r IGZvciBtb3JlLiBUaGUgb3BlcmF0aW9ucyBhcmU6Cjs7Owo7OzsgLSAoYmFzZS1zZXQgbmVsdHMp IC0+IHNldAo7OzsgICBSZXR1cm5zIGEgbmV3IHNldCwgb2Ygc2l6ZSBORUxUUy4KOzs7Cjs7OyAt IChzZXQtc2l6ZSBzKSAtPiBpbnRlZ2VyCjs7OyAgIFJldHVybnMgdGhlIG51bWJlciBvZiBlbGVt ZW50cyBpbiBzZXQgUy4KOzs7Cjs7OyAtICh1bmlvbiEgc2V0MSBzZXQyKQo7OzsgICBVbmlvbnMg dGhlIHR3byBzZXRzIC0tIFNFVDEgYW5kIFNFVDIgYXJlIG5vdyBjb25zaWRlcmVkIHRoZSBzYW1l IHNldAo7OzsgICBieSBTRVQtRVFVQUw/Lgo7OzsKOzs7IC0gKHNldC1lcXVhbD8gc2V0MSBzZXQy KQo7OzsgICBSZXR1cm5zIHRydWUgPD09PiB0aGUgdHdvIHNldHMgYXJlIHRoZSBzYW1lLgoKOzs7 IFJlcHJlc2VudGF0aW9uOiBhIHNldCBpcyBhIGNvbnMgY2VsbC4gRXZlcnkgc2V0IGhhcyBhICJy ZXByZXNlbnRhdGl2ZSIKOzs7IGNvbnMgY2VsbCwgcmVhY2hlZCBieSBjaGFzaW5nIGNkciBsaW5r cyB1bnRpbCB3ZSBmaW5kIHRoZSBjb25zIHdpdGgKOzs7IGNkciA9ICgpLiBTZXQgZXF1YWxpdHkg aXMgZGV0ZXJtaW5lZCBieSBjb21wYXJpbmcgcmVwcmVzZW50YXRpdmVzIHVzaW5nCjs7OyBFUT8u IEEgcmVwcmVzZW50YXRpdmUncyBjYXIgY29udGFpbnMgdGhlIG51bWJlciBvZiBlbGVtZW50cyBp biB0aGUgc2V0LgoKOzs7IFRoZSBzcGVlZCBvZiB0aGUgYWxnb3JpdGhtIGNvbWVzIGJlY2F1c2Ug d2hlbiB3ZSBjaGFzZSBsaW5rcyB0byBmaW5kIAo7OzsgcmVwcmVzZW50YXRpdmVzLCB3ZSBjb2xs YXBzZSBsaW5rcyBieSBjaGFuZ2luZyBhbGwgdGhlIGNlbGxzIGluIHRoZSBwYXRoCjs7OyB3ZSBm b2xsb3dlZCB0byBwb2ludCBkaXJlY3RseSB0byB0aGUgcmVwcmVzZW50YXRpdmUsIHNvIHRoYXQg bmV4dCB0aW1lCjs7OyB3ZSB3YWxrIHRoZSBjZHItY2hhaW4sIHdlJ2xsIGdvIGRpcmVjdGx5IHRv IHRoZSByZXByZXNlbnRhdGl2ZSBpbiBvbmUgaG9wLgoKCihkZWZpbmUgKGJhc2Utc2V0IG5lbHRz KSAoY29ucyBuZWx0cyAnKCkpKQoKOzs7IFNldHMgYXJlIGNoYWluZWQgdG9nZXRoZXIgdGhyb3Vn aCBjZHIgbGlua3MuIExhc3QgZ3V5IGluIHRoZSBjaGFpbgo7OzsgaXMgdGhlIHJvb3Qgb2YgdGhl IHNldC4KCihkZWZpbmUgKGdldC1zZXQtcm9vdCBzKQogIChsZXQgbHAgKChyIHMpKSAgICAgICAg ICAgICAgICAgICAgICAgOyBGaW5kIHRoZSBsYXN0IHBhaXIKICAgIChsZXQgKChuZXh0IChjZHIg cikpKSAgICAgICAgICAgICAgIDsgaW4gdGhlIGxpc3QuIFRoYXQncwogICAgICAoY29uZCAoKHBh aXI/IG5leHQpIChscCBuZXh0KSkgICAgOyB0aGUgcm9vdCByLgoKICAgICAgICAgICAgKGVsc2UK ICAgICAgICAgICAgIChpZiAobm90IChlcT8gciBzKSkgICAgICAgIDsgTm93IHppcCBkb3duIHRo ZSBsaXN0IGFnYWluLAogICAgICAgICAgICAgICAgIChsZXQgbHAgKCh4IHMpKSAgICAgICAgOyBj aGFuZ2luZyBldmVyeW9uZSdzIGNkciB0byByLgogICAgICAgICAgICAgICAgICAgKGxldCAoKG5l eHQgKGNkciB4KSkpICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgKGNvbmQgKChub3QgKGVx PyByIG5leHQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldC1jZHIhIHggcikKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChscCBuZXh0KSkpKSkpCiAgICAgICAgICAgICByKSkp KSkgICAgICAgICAgICAgICAgICAgICA7IFRoZW4gcmV0dXJuIHIuCgooZGVmaW5lIChzZXQtZXF1 YWw/IHMxIHMyKSAoZXE/IChnZXQtc2V0LXJvb3QgczEpIChnZXQtc2V0LXJvb3QgczIpKSkKCihk ZWZpbmUgKHNldC1zaXplIHMpIChjYXIgKGdldC1zZXQtcm9vdCBzKSkpCgooZGVmaW5lICh1bmlv biEgczEgczIpCiAgKGxldCogKChyMSAoZ2V0LXNldC1yb290IHMxKSkKICAgICAgICAgKHIyIChn ZXQtc2V0LXJvb3QgczIpKQogICAgICAgICAobjEgKHNldC1zaXplIHIxKSkKICAgICAgICAgKG4y IChzZXQtc2l6ZSByMikpCiAgICAgICAgIChuICAoKyBuMSBuMikpKQoKICAgIChjb25kICgoPiBu MSBuMikKICAgICAgICAgICAoc2V0LWNkciEgcjIgcjEpCiAgICAgICAgICAgKHNldC1jYXIhIHIx IG4pKQogICAgICAgICAgKGVsc2UKICAgICAgICAgICAoc2V0LWNkciEgcjEgcjIpCiAgICAgICAg ICAgKHNldC1jYXIhIHIyIG4pKSkpKQoKOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo7IFdhcyBmaWxl ICJtYXplLnNjbSIuCgo7OzsgQnVpbGRpbmcgbWF6ZXMgd2l0aCB1bmlvbi9maW5kIGRpc2pvaW50 IHNldHMuCjs7OyBDb3B5cmlnaHQgKGMpIDE5OTUgYnkgT2xpbiBTaGl2ZXJzLgoKOzs7IFRoaXMg aXMgdGhlIGFsZ29yaXRobWljIGNvcmUgb2YgdGhlIG1hemUgY29uc3RydWN0b3IuCjs7OyBFeHRl cm5hbCBkZXBlbmRlbmNpZXM6Cjs7OyAtIFJBTkRPTS1JTlQKOzs7IC0gVW5pb24vZmluZCBjb2Rl Cjs7OyAtIGJpdHdpc2UgbG9naWNhbCBmdW5jdGlvbnMKCjsgKGRlZmluZS1yZWNvcmQgd2FsbAo7 ICAgb3duZXIgICAgICAgICA7IENlbGwgdGhhdCBvd25zIHRoaXMgd2FsbC4KOyAgIG5laWdoYm9y ICAgICAgOyBUaGUgb3RoZXIgY2VsbCBib3JkZXJpbmcgdGhpcyB3YWxsLgo7ICAgYml0KSAgICAg ICAgICA7IEludGVnZXIgLS0gYSBiaXQgaWRlbnRpZnlpbmcgdGhpcyB3YWxsIGluIE9XTkVSJ3Mg Y2VsbC4KCjsgKGRlZmluZS1yZWNvcmQgY2VsbAo7ICAgcmVhY2hhYmxlICAgICA7IFVuaW9uL2Zp bmQgc2V0IC0tIGFsbCByZWFjaGFibGUgY2VsbHMuCjsgICBpZCAgICAgICAgICAgIDsgSWRlbnRp ZnlpbmcgaW5mbyAoZS5nLiwgdGhlIGNvb3JkcyBvZiB0aGUgY2VsbCkuCjsgICAod2FsbHMgLTEp ICAgIDsgQSBiaXRzZXQgdGVsbGluZyB3aGljaCB3YWxscyBhcmUgc3RpbGwgc3RhbmRpbmcuCjsg ICAocGFyZW50ICNmKSAgIDsgRm9yIERGUyBzcGFubmluZyB0cmVlIGNvbnN0cnVjdGlvbi4KOyAg IChtYXJrICNmKSkgICAgOyBGb3IgbWFya2luZyB0aGUgc29sdXRpb24gcGF0aC4KCihkZWZpbmUg KG1ha2Utd2FsbCBvd25lciBuZWlnaGJvciBiaXQpCiAgKHZlY3RvciAnd2FsbCBvd25lciBuZWln aGJvciBiaXQpKQoKKGRlZmluZSAod2FsbDpvd25lciBvKSAgICAgICAgICAodmVjdG9yLXJlZiBv IDEpKQooZGVmaW5lIChzZXQtd2FsbDpvd25lciBvIHYpICAgICh2ZWN0b3Itc2V0ISBvIDEgdikp CihkZWZpbmUgKHdhbGw6bmVpZ2hib3IgbykgICAgICAgKHZlY3Rvci1yZWYgbyAyKSkKKGRlZmlu ZSAoc2V0LXdhbGw6bmVpZ2hib3IgbyB2KSAodmVjdG9yLXNldCEgbyAyIHYpKQooZGVmaW5lICh3 YWxsOmJpdCBvKSAgICAgICAgICAgICh2ZWN0b3ItcmVmIG8gMykpCihkZWZpbmUgKHNldC13YWxs OmJpdCBvIHYpICAgICAgKHZlY3Rvci1zZXQhIG8gMyB2KSkKCihkZWZpbmUgKG1ha2UtY2VsbCBy ZWFjaGFibGUgaWQpCiAgKHZlY3RvciAnY2VsbCByZWFjaGFibGUgaWQgLTEgI2YgI2YpKQoKKGRl ZmluZSAoY2VsbDpyZWFjaGFibGUgbykgICAgICAgKHZlY3Rvci1yZWYgbyAxKSkKKGRlZmluZSAo c2V0LWNlbGw6cmVhY2hhYmxlIG8gdikgKHZlY3Rvci1zZXQhIG8gMSB2KSkKKGRlZmluZSAoY2Vs bDppZCBvKSAgICAgICAgICAgICAgKHZlY3Rvci1yZWYgbyAyKSkKKGRlZmluZSAoc2V0LWNlbGw6 aWQgbyB2KSAgICAgICAgKHZlY3Rvci1zZXQhIG8gMiB2KSkKKGRlZmluZSAoY2VsbDp3YWxscyBv KSAgICAgICAgICAgKHZlY3Rvci1yZWYgbyAzKSkKKGRlZmluZSAoc2V0LWNlbGw6d2FsbHMgbyB2 KSAgICAgKHZlY3Rvci1zZXQhIG8gMyB2KSkKKGRlZmluZSAoY2VsbDpwYXJlbnQgbykgICAgICAg ICAgKHZlY3Rvci1yZWYgbyA0KSkKKGRlZmluZSAoc2V0LWNlbGw6cGFyZW50IG8gdikgICAgKHZl Y3Rvci1zZXQhIG8gNCB2KSkKKGRlZmluZSAoY2VsbDptYXJrIG8pICAgICAgICAgICAgKHZlY3Rv ci1yZWYgbyA1KSkKKGRlZmluZSAoc2V0LWNlbGw6bWFyayBvIHYpICAgICAgKHZlY3Rvci1zZXQh IG8gNSB2KSkKCjs7OyBJdGVyYXRlcyBpbiByZXZlcnNlIG9yZGVyLgoKKGRlZmluZSAodmVjdG9y LWZvci1lYWNoIHByb2MgdikKICAobGV0IGxwICgoaSAoLSAodmVjdG9yLWxlbmd0aCB2KSAxKSkp CiAgICAoY29uZCAoKD49IGkgMCkKICAgICAgICAgICAocHJvYyAodmVjdG9yLXJlZiB2IGkpKQog ICAgICAgICAgIChscCAoLSBpIDEpKSkpKSkKCgo7OzsgUmFuZG9tbHkgcGVybXV0ZSBhIHZlY3Rv ci4KCihkZWZpbmUgKHBlcm11dGUtdmVjISB2IHJhbmRvbS1zdGF0ZSkKICAobGV0IGxwICgoaSAo LSAodmVjdG9yLWxlbmd0aCB2KSAxKSkpCiAgICAoY29uZCAoKD4gaSAxKQogICAgICAgICAgIChs ZXQgKChlbHQtaSAodmVjdG9yLXJlZiB2IGkpKQogICAgICAgICAgICAgICAgIChqIChyYW5kb20t aW50IGkgcmFuZG9tLXN0YXRlKSkpICAgICAgIDsgaiBpbiBbMCxpKQogICAgICAgICAgICAgKHZl Y3Rvci1zZXQhIHYgaSAodmVjdG9yLXJlZiB2IGopKQogICAgICAgICAgICAgKHZlY3Rvci1zZXQh IHYgaiBlbHQtaSkpCiAgICAgICAgICAgKGxwICgtIGkgMSkpKSkpCiAgdikKCgo7OzsgVGhpcyBp cyB0aGUgY29yZSBvZiB0aGUgYWxnb3JpdGhtLgoKKGRlZmluZSAoZGlnLW1hemUgd2FsbHMgbmNl bGxzKQogIChjYWxsLXdpdGgtY3VycmVudC1jb250aW51YXRpb24KICAgIChsYW1iZGEgKHF1aXQp CiAgICAgICh2ZWN0b3ItZm9yLWVhY2gKICAgICAgIChsYW1iZGEgKHdhbGwpICAgICAgICAgICAg ICAgICAgIDsgRm9yIGVhY2ggd2FsbCwKICAgICAgICAgKGxldCogKChjMSAgICh3YWxsOm93bmVy IHdhbGwpKSA7IGZpbmQgdGhlIGNlbGxzIG9uCiAgICAgICAgICAgICAgICAoc2V0MSAoY2VsbDpy ZWFjaGFibGUgYzEpKQoKICAgICAgICAgICAgICAgIChjMiAgICh3YWxsOm5laWdoYm9yIHdhbGwp KSA7IGVhY2ggc2lkZSBvZiB0aGUgd2FsbAogICAgICAgICAgICAgICAgKHNldDIgKGNlbGw6cmVh Y2hhYmxlIGMyKSkpCgogICAgICAgICAgIDs7IElmIHRoZXJlIGlzIG5vIHBhdGggZnJvbSBjMSB0 byBjMiwga25vY2sgZG93biB0aGUKICAgICAgICAgICA7OyB3YWxsIGFuZCB1bmlvbiB0aGUgdHdv IHNldHMgb2YgcmVhY2hhYmxlIGNlbGxzLgogICAgICAgICAgIDs7IElmIHRoZSBuZXcgc2V0IG9m IHJlYWNoYWJsZSBjZWxscyBpcyB0aGUgd2hvbGUgc2V0CiAgICAgICAgICAgOzsgb2YgY2VsbHMs IHF1aXQuCiAgICAgICAgICAgKGlmIChub3QgKHNldC1lcXVhbD8gc2V0MSBzZXQyKSkKICAgICAg ICAgICAgICAgKGxldCAoKHdhbGxzIChjZWxsOndhbGxzIGMxKSkgICAgCiAgICAgICAgICAgICAg ICAgICAgICh3YWxsLW1hc2sgKGJpdHdpc2Utbm90ICh3YWxsOmJpdCB3YWxsKSkpKQogICAgICAg ICAgICAgICAgICh1bmlvbiEgc2V0MSBzZXQyKQogICAgICAgICAgICAgICAgIChzZXQtY2VsbDp3 YWxscyBjMSAoYml0d2lzZS1hbmQgd2FsbHMgd2FsbC1tYXNrKSkKICAgICAgICAgICAgICAgICAo aWYgKD0gKHNldC1zaXplIHNldDEpIG5jZWxscykgKHF1aXQgI2YpKSkpKSkKICAgICAgIHdhbGxz KSkpKQoKCjs7OyBTb21lIHNpbXBsZSBERlMgcm91dGluZXMgdXNlZnVsIGZvciBkZXRlcm1pbmlu ZyBwYXRoIGxlbmd0aCAKOzs7IHRocm91Z2ggdGhlIG1hemUuCgo7OzsgQnVpbGQgYSBERlMgdHJl ZSBmcm9tIFJPT1QuIAo7OzsgKERPLUNISUxEUkVOIHByb2MgbWF6ZSBub2RlKSBhcHBsaWVzIFBS T0MgdG8gZWFjaCBvZiBOT0RFJ3MgY2hpbGRyZW4uCjs7OyBXZSBhc3N1bWUgdGhlcmUgYXJlIG5v IGxvb3BzIGluIHRoZSBtYXplOyBpZiB0aGlzIGlzIGluY29ycmVjdCwgdGhlCjs7OyBhbGdvcml0 aG0gd2lsbCBkaXZlcmdlLgoKKGRlZmluZSAoZGZzLW1hemUgbWF6ZSByb290IGRvLWNoaWxkcmVu KQogIChsZXQgc2VhcmNoICgobm9kZSByb290KSAocGFyZW50ICNmKSkKICAgIChzZXQtY2VsbDpw YXJlbnQgbm9kZSBwYXJlbnQpCiAgICAoZG8tY2hpbGRyZW4gKGxhbWJkYSAoY2hpbGQpCiAgICAg ICAgICAgICAgICAgICAoaWYgKG5vdCAoZXE/IGNoaWxkIHBhcmVudCkpCiAgICAgICAgICAgICAg ICAgICAgICAgKHNlYXJjaCBjaGlsZCBub2RlKSkpCiAgICAgICAgICAgICAgICAgbWF6ZSBub2Rl KSkpCgo7OzsgTW92ZSB0aGUgcm9vdCB0byBORVctUk9PVC4KCihkZWZpbmUgKHJlcm9vdC1tYXpl IG5ldy1yb290KQogIChsZXQgbHAgKChub2RlIG5ldy1yb290KSAobmV3LXBhcmVudCAjZikpCiAg ICAobGV0ICgob2xkLXBhcmVudCAoY2VsbDpwYXJlbnQgbm9kZSkpKQogICAgICAoc2V0LWNlbGw6 cGFyZW50IG5vZGUgbmV3LXBhcmVudCkKICAgICAgKGlmIG9sZC1wYXJlbnQgKGxwIG9sZC1wYXJl bnQgbm9kZSkpKSkpCgo7OzsgSG93IGZhciBmcm9tIENFTEwgdG8gdGhlIHJvb3Q/CgooZGVmaW5l IChwYXRoLWxlbmd0aCBjZWxsKQogIChkbyAoKGxlbiAwICgrIGxlbiAxKSkKICAgICAgIChub2Rl IChjZWxsOnBhcmVudCBjZWxsKSAoY2VsbDpwYXJlbnQgbm9kZSkpKQogICAgICAoKG5vdCBub2Rl KSBsZW4pKSkKCjs7OyBNYXJrIHRoZSBub2RlcyBmcm9tIE5PREUgYmFjayB0byByb290LiBVc2Vk IHRvIG1hcmsgdGhlIHdpbm5pbmcgcGF0aC4KCihkZWZpbmUgKG1hcmstcGF0aCBub2RlKQogIChs ZXQgbHAgKChub2RlIG5vZGUpKQogICAgKHNldC1jZWxsOm1hcmsgbm9kZSAjdCkKICAgIChjb25k ICgoY2VsbDpwYXJlbnQgbm9kZSkgPT4gbHApKSkpCgo7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCjsg V2FzIGZpbGUgImhhcnIuc2NtIi4KCjs7OyBIZXggYXJyYXlzCjs7OyBDb3B5cmlnaHQgKGMpIDE5 OTUgYnkgT2xpbiBTaGl2ZXJzLgoKOzs7IEV4dGVybmFsIGRlcGVuZGVuY2llczoKOzs7IC0gZGVm aW5lLXJlY29yZAoKOzs7ICAgICAgICBfX18gICAgICAgX19fICAgICAgIF9fXwo7OzsgICAgICAg LyAgIFwgICAgIC8gICBcICAgICAvICAgXAo7OzsgICBfX18vICBBICBcX19fLyAgQSAgXF9fXy8g IEEgIFxfX18KOzs7ICAvICAgXCAgICAgLyAgIFwgICAgIC8gICBcICAgICAvICAgXAo7OzsgLyAg QSAgXF9fXy8gIEEgIFxfX18vICBBICBcX19fLyAgQSAgXAo7OzsgXCAgICAgLyAgIFwgICAgIC8g ICBcICAgICAvICAgXCAgICAgLwo7OzsgIFxfX18vICAgICBcX19fLyAgICAgXF9fXy8gICAgIFxf X18vCjs7OyAgLyAgIFwgICAgIC8gICBcICAgICAvICAgXCAgICAgLyAgIFwKOzs7IC8gICAgIFxf X18vICAgICBcX19fLyAgICAgXF9fXy8gICAgIFwKOzs7IFwgICAgIC8gICBcICAgICAvICAgXCAg ICAgLyAgIFwgICAgIC8KOzs7ICBcX19fLyAgICAgXF9fXy8gICAgIFxfX18vICAgICBcX19fLwo7 OzsgIC8gICBcICAgICAvICAgXCAgICAgLyAgIFwgICAgIC8gICBcCjs7OyAvICAgICBcX19fLyAg ICAgXF9fXy8gICAgIFxfX18vICAgICBcCjs7OyBcICAgICAvICAgXCAgICAgLyAgIFwgICAgIC8g ICBcICAgICAvCjs7OyAgXF9fXy8gICAgIFxfX18vICAgICBcX19fLyAgICAgXF9fXy8KCjs7OyBI ZXggYXJyYXlzIGFyZSBpbmRleGVkIGJ5IHRoZSAoeCx5KSBjb29yZCBvZiB0aGUgY2VudGVyIG9m IHRoZSBoZXhhZ29uYWwKOzs7IGVsZW1lbnQuIEhleGVzIGFyZSB0aHJlZSB3aWRlIGFuZCB0d28g aGlnaDsgZS5nLiwgdG8gZ2V0IGZyb20gdGhlIGNlbnRlcgo7Ozsgb2YgYW4gZWx0IHRvIGl0cyB7 TlcsIE4sIE5FfSBuZWlnaGJvcnMsIGFkZCB7KC0zLDEpLCAoMCwyKSwgKDMsMSl9Cjs7OyByZXNw ZWN0aXZlbHkuCjs7Owo7OzsgSGV4IGFycmF5cyBhcmUgcmVwcmVzZW50ZWQgd2l0aCBhIG1hdHJp eCwgZXNzZW50aWFsbHkgbWFkZSBieSBzaG92aW5nIHRoZQo7Ozsgb2RkIGNvbHVtbnMgZG93biBh IGhhbGYtY2VsbCBzbyB0aGluZ3MgbGluZSB1cC4gVGhlIG1hcHBpbmcgaXMgYXMgZm9sbG93czoK Ozs7ICAgICBDZW50ZXIgY29vcmQgICAgICByb3cvY29sdW1uCjs7OyAgICAgLS0tLS0tLS0tLS0t ICAgICAgLS0tLS0tLS0tLQo7OzsgICAgICh4LCAgeSkgICAgICAgIC0+ICh5LzIsIHgvMykKOzs7 ICAgICAoM2MsIDJyICsgYyYxKSA8LSAociwgICBjKQoKCjsgKGRlZmluZS1yZWNvcmQgaGFycgo7 ICAgbnJvd3MKOyAgIG5jb2xzCjsgICBlbHRzKQoKKGRlZmluZSAobWFrZS1oYXJyIG5yb3dzIG5j b2xzIGVsdHMpCiAgKHZlY3RvciAnaGFyciBucm93cyBuY29scyBlbHRzKSkKCihkZWZpbmUgKGhh cnI6bnJvd3MgbykgICAgICAgKHZlY3Rvci1yZWYgbyAxKSkKKGRlZmluZSAoc2V0LWhhcnI6bnJv d3MgbyB2KSAodmVjdG9yLXNldCEgbyAxIHYpKQooZGVmaW5lIChoYXJyOm5jb2xzIG8pICAgICAg ICh2ZWN0b3ItcmVmIG8gMikpCihkZWZpbmUgKHNldC1oYXJyOm5jb2xzIG8gdikgKHZlY3Rvci1z ZXQhIG8gMiB2KSkKKGRlZmluZSAoaGFycjplbHRzIG8pICAgICAgICAodmVjdG9yLXJlZiBvIDMp KQooZGVmaW5lIChzZXQtaGFycjplbHRzIG8gdikgICh2ZWN0b3Itc2V0ISBvIDMgdikpCgooZGVm aW5lIChoYXJyIHIgYykKICAobWFrZS1oYXJyIHIgYyAobWFrZS12ZWN0b3IgKCogciBjKSkpKQoK CgooZGVmaW5lIChocmVmIGhhIHggeSkKICAobGV0ICgociAocXVvdGllbnQgeSAyKSkKICAgICAg ICAoYyAocXVvdGllbnQgeCAzKSkpCiAgICAodmVjdG9yLXJlZiAoaGFycjplbHRzIGhhKQogICAg ICAgICAgICAgICAgKCsgKCogKGhhcnI6bmNvbHMgaGEpIHIpIGMpKSkpCgooZGVmaW5lIChoc2V0 ISBoYSB4IHkgdmFsKQogIChsZXQgKChyIChxdW90aWVudCB5IDIpKQogICAgICAgIChjIChxdW90 aWVudCB4IDMpKSkKICAgICh2ZWN0b3Itc2V0ISAoaGFycjplbHRzIGhhKQogICAgICAgICAgICAg ICAgICgrICgqIChoYXJyOm5jb2xzIGhhKSByKSBjKQogICAgICAgICAgICAgICAgIHZhbCkpKQoK KGRlZmluZSAoaHJlZi9yYyBoYSByIGMpCiAgICAodmVjdG9yLXJlZiAoaGFycjplbHRzIGhhKQog ICAgICAgICAgICAgICAgKCsgKCogKGhhcnI6bmNvbHMgaGEpIHIpIGMpKSkKCjs7OyBDcmVhdGUg YSBucm93cyB4IG5jb2xzIGhleCBhcnJheS4gVGhlIGVsdCBjZW50ZXJlZCBvbiBjb29yZCAoeCwg eSkKOzs7IGlzIHRoZSB2YWx1ZSByZXR1cm5lZCBieSAoUFJPQyB4IHkpLgoKKGRlZmluZSAoaGFy ci10YWJ1bGF0ZSBucm93cyBuY29scyBwcm9jKQogIChsZXQgKCh2IChtYWtlLXZlY3RvciAoKiBu cm93cyBuY29scykpKSkKCiAgICAoZG8gKChyICgtIG5yb3dzIDEpICgtIHIgMSkpKQogICAgICAg ICgoPCByIDApKQogICAgICAoZG8gKChjIDAgKCsgYyAxKSkKICAgICAgICAgICAoaSAoKiByIG5j b2xzKSAoKyBpIDEpKSkKICAgICAgICAgICgoPSBjIG5jb2xzKSkKICAgICAgICAodmVjdG9yLXNl dCEgdiBpIChwcm9jICgqIDMgYykgKCsgKCogMiByKSAoYml0d2lzZS1hbmQgYyAxKSkpKSkpCgog ICAgKG1ha2UtaGFyciBucm93cyBuY29scyB2KSkpCgoKKGRlZmluZSAoaGFyci1mb3ItZWFjaCBw cm9jIGhhcnIpCiAgKHZlY3Rvci1mb3ItZWFjaCBwcm9jIChoYXJyOmVsdHMgaGFycikpKQoKOy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQo7IFdhcyBmaWxlICJoZXguc2NtIi4KCjs7OyBIZXhhZ29uYWwg aGFja2VyeSBmb3IgbWF6ZSBnZW5lcmF0aW9uLgo7OzsgQ29weXJpZ2h0IChjKSAxOTk1IGJ5IE9s aW4gU2hpdmVycy4KCjs7OyBFeHRlcm5hbCBkZXBlbmRlbmNpZXM6Cjs7OyAtIGNlbGwgYW5kIHdh bGwgcmVjb3Jkcwo7OzsgLSBGdW5jdGlvbmFsIFBvc3RzY3JpcHQgZm9yIEhFWEVTLT5QQVRICjs7 OyAtIGxvZ2ljYWwgZnVuY3Rpb25zIGZvciBiaXQgaGFja2luZwo7OzsgLSBoZXggYXJyYXkgY29k ZS4KCjs7OyBUbyBoYXZlIHRoZSBtYXplIHNwYW4gKDAsMCkgdG8gKDEsMSk6Cjs7OyAoc2NhbGUg KC8gKCsgMSAoKiAzIG5jb2xzKSkpICgvICgrIDEgKCogMiBucm93cykpKQo7OzsgICAgICAgICh0 cmFuc2xhdGUgKHBvaW50IDIgMSkgbWF6ZSkpCgo7OzsgRXZlcnkgZWx0IG9mIHRoZSBoZXggYXJy YXkgbWFuYWdlcyBoaXMgU1csIFMsIGFuZCBTRSB3YWxsLgo7OzsgVGVybWlub2xvZ3k6IC0gQW4g ZXZlbiBjb2x1bW4gaXMgb25lIHdob3NlIGNvbHVtbiBpbmRleCBpcyBldmVuLiBUaGF0Cjs7OyAg ICAgICAgICAgICAgICBtZWFucyB0aGUgZmlyc3QsIHRoaXJkLCAuLi4gY29sdW1ucyAoaW5kaWNl cyAwLCAyLCAuLi4pLgo7OzsgICAgICAgICAgICAgIC0gQW4gb2RkIGNvbHVtbiBpcyBvbmUgd2hv c2UgY29sdW1uIGluZGV4IGlzIG9kZC4gVGhhdAo7OzsgICAgICAgICAgICAgICAgbWVhbnMgdGhl IHNlY29uZCwgZm91cnRoLi4uIGNvbHVtbnMgKGluZGljZXMgMSwgMywgLi4uKS4KOzs7ICAgICAg ICAgICAgICBUaGUgZXZlbi9vZGQgZmxpcC1mbG9wIGlzIGNvbmZ1c2luZzsgYmUgY2FyZWZ1bCB0 byBrZWVwIGl0Cjs7OyAgICAgICAgICAgICAgc3RyYWlnaHQuIFRoZSAqZXZlbiogY29sdW1ucyBh cmUgdGhlIGxvdyBvbmVzLiBUaGUgKm9kZCoKOzs7ICAgICAgICAgICAgICBjb2x1bW5zIGFyZSB0 aGUgaGlnaCBvbmVzLgo7OzsgICAgXyAgIF8KOzs7ICBfLyBcXy8gXAo7OzsgLyBcXy8gXF8vCjs7 OyBcXy8gXF8vIFwKOzs7IC8gXF8vIFxfLwo7OzsgXF8vIFxfLyBcCjs7OyAvIFxfLyBcXy8KOzs7 IFxfLyBcXy8gXAo7OzsgLyBcXy8gXF8vCjs7OyBcXy8gXF8vCjs7OyAgMCAxIDIgMwoKKGRlZmlu ZSBzb3V0aC13ZXN0IDEpCihkZWZpbmUgc291dGggICAgICAyKQooZGVmaW5lIHNvdXRoLWVhc3Qg NCkKCihkZWZpbmUgKGdlbi1tYXplLWFycmF5IHIgYykKICAoaGFyci10YWJ1bGF0ZSByIGMgKGxh bWJkYSAoeCB5KSAobWFrZS1jZWxsIChiYXNlLXNldCAxKSAoY29ucyB4IHkpKSkpKQoKOzs7IFRo aXMgY291bGQgYmUgbWFkZSBtb3JlIGVmZmljaWVudC4KKGRlZmluZSAobWFrZS13YWxsLXZlYyBo YXJyKQogIChsZXQqICgobnJvd3MgKGhhcnI6bnJvd3MgaGFycikpCiAgICAgICAgIChuY29scyAo aGFycjpuY29scyBoYXJyKSkKICAgICAgICAgKHhtYXggKCogMyAoLSBuY29scyAxKSkpCgogICAg ICAgICA7OyBBY2N1bXVsYXRlIHdhbGxzLgogICAgICAgICAod2FsbHMgJygpKQogICAgICAgICAo YWRkLXdhbGwgKGxhbWJkYSAobyBuIGIpIDsgb3duZXIgbmVpZ2hib3IgYml0CiAgICAgICAgICAg ICAgICAgICAgIChzZXQhIHdhbGxzIChjb25zIChtYWtlLXdhbGwgbyBuIGIpIHdhbGxzKSkpKSkK ICAgICAgICAKICAgIDs7IERvIGV2ZXJ5dGhpbmcgYnV0IHRoZSBib3R0b20gcm93LgogICAgKGRv ICgoeCAoKiAoLSBuY29scyAxKSAzKSAoLSB4IDMpKSkKICAgICAgICAoKDwgeCAwKSkKICAgICAg KGRvICgoeSAoKyAoKiAoLSBucm93cyAxKSAyKSAoYml0d2lzZS1hbmQgeCAxKSkKICAgICAgICAg ICAgICAoLSB5IDIpKSkKICAgICAgICAgICgoPD0geSAxKSkgICAgOyBEb24ndCBkbyBib3R0b20g cm93LgogICAgICAgICAgKGxldCAoKGhleCAoaHJlZiBoYXJyIHggeSkpKQogICAgICAgICAgICAo aWYgKG5vdCAoemVybz8geCkpCiAgICAgICAgICAgICAgICAoYWRkLXdhbGwgaGV4IChocmVmIGhh cnIgKC0geCAzKSAoLSB5IDEpKSBzb3V0aC13ZXN0KSkKICAgICAgICAgICAgKGFkZC13YWxsIGhl eCAoaHJlZiBoYXJyIHggKC0geSAyKSkgc291dGgpCiAgICAgICAgICAgIChpZiAoPCB4IHhtYXgp CiAgICAgICAgICAgICAgICAoYWRkLXdhbGwgaGV4IChocmVmIGhhcnIgKCsgeCAzKSAoLSB5IDEp KSBzb3V0aC1lYXN0KSkpKSkKCiAgICA7OyBEbyB0aGUgU0UgYW5kIFNXIHdhbGxzIG9mIHRoZSBv ZGQgY29sdW1ucyBvbiB0aGUgYm90dG9tIHJvdy4KICAgIDs7IElmIHRoZSByaWdodG1vc3QgYm90 dG9tIGhleCBsaWVzIGluIGFuIG9kZCBjb2x1bW4sIGhvd2V2ZXIsCiAgICA7OyBkb24ndCBhZGQg aXQncyBTRSB3YWxsIC0tIGl0J3MgYSBjb3JuZXIgaGV4LCBhbmQgaGFzIG5vIFNFIG5laWdoYm9y LgogICAgKGlmICg+IG5jb2xzIDEpCiAgICAgICAgKGxldCAoKHJtb2MteCAoKyAzICgqIDYgKHF1 b3RpZW50ICgtIG5jb2xzIDIpIDIpKSkpKQogICAgICAgICAgOzsgRG8gcmlnaHRtb3N0IG9kZCBj b2wuCiAgICAgICAgICAobGV0ICgocm1vYy1oZXggKGhyZWYgaGFyciBybW9jLXggMSkpKQogICAg ICAgICAgICAoaWYgKDwgcm1vYy14IHhtYXgpIDsgTm90ICBhIGNvcm5lciAtLSBkbyBFIHdhbGwu CiAgICAgICAgICAgICAgICAoYWRkLXdhbGwgcm1vYy1oZXggKGhyZWYgaGFyciB4bWF4IDApIHNv dXRoLWVhc3QpKQogICAgICAgICAgICAoYWRkLXdhbGwgcm1vYy1oZXggKGhyZWYgaGFyciAoLSBy bW9jLXggMykgMCkgc291dGgtd2VzdCkpCgogICAgICAgICAgKGRvICgoeCAoLSBybW9jLXggNikg OyBEbyB0aGUgcmVzdCBvZiB0aGUgYm90dG9tIHJvdydzIG9kZCBjb2xzLgogICAgICAgICAgICAg ICAgICAoLSB4IDYpKSkKICAgICAgICAgICAgICAoKDwgeCAzKSkgOyAzIGlzIFggY29vcmQgb2Yg bGVmdG1vc3Qgb2RkIGNvbHVtbi4KICAgICAgICAgICAgKGFkZC13YWxsIChocmVmIGhhcnIgeCAx KSAoaHJlZiBoYXJyICgtIHggMykgMCkgc291dGgtd2VzdCkKICAgICAgICAgICAgKGFkZC13YWxs IChocmVmIGhhcnIgeCAxKSAoaHJlZiBoYXJyICgrIHggMykgMCkgc291dGgtZWFzdCkpKSkKCiAg ICAobGlzdC0+dmVjdG9yIHdhbGxzKSkpCgoKOzs7IEZpbmQgdGhlIGNlbGwgY3RvcCBmcm9tIHRo ZSB0b3Agcm93LCBhbmQgdGhlIGNlbGwgY2JvdCBmcm9tIHRoZSBib3R0b20KOzs7IHJvdyBzdWNo IHRoYXQgY2JvdCBpcyBmdXJ0aGVzdCBmcm9tIGN0b3AuIAo7OzsgUmV0dXJuIFtjdG9wLXgsIGN0 b3AteSwgY2JvdC14LCBjYm90LXldLgoKKGRlZmluZSAocGljay1lbnRyYW5jZXMgaGFycikKICAo ZGZzLW1hemUgaGFyciAoaHJlZi9yYyBoYXJyIDAgMCkgZm9yLWVhY2gtaGV4LWNoaWxkKQogIChs ZXQgKChucm93cyAoaGFycjpucm93cyBoYXJyKSkKICAgICAgICAobmNvbHMgKGhhcnI6bmNvbHMg aGFycikpKQogICAgKGxldCB0cC1scCAoKG1heC1sZW4gLTEpCiAgICAgICAgICAgICAgICAoZW50 cmFuY2UgI2YpCiAgICAgICAgICAgICAgICAoZXhpdCAjZikKICAgICAgICAgICAgICAgICh0Y29s ICgtIG5jb2xzIDEpKSkKICAgICAgKGlmICg8IHRjb2wgMCkgKHZlY3RvciBlbnRyYW5jZSBleGl0 KQogICAgICAgICAgKGxldCAoKHRvcC1jZWxsIChocmVmL3JjIGhhcnIgKC0gbnJvd3MgMSkgdGNv bCkpKQogICAgICAgICAgICAocmVyb290LW1hemUgdG9wLWNlbGwpCiAgICAgICAgICAgIChsZXQg KChyZXN1bHQKICAgICAgICAgICAgICAgICAgICAobGV0IGJ0LWxwICgobWF4LWxlbiBtYXgtbGVu KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbnRyYW5jZSBlbnRyYW5jZSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXhpdCBleGl0KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChiY29sICgtIG5jb2xzIDEpKSkKOyAgICAgICAgICAgICAgICAgICAg IChmb3JtYXQgI3QgIn5hIH5hIH5hIH5hfiUiIG1heC1sZW4gZW50cmFuY2UgZXhpdCBiY29sKQog ICAgICAgICAgICAgICAgICAgICAgKGlmICg8IGJjb2wgMCkgKHZlY3RvciBtYXgtbGVuIGVudHJh bmNlIGV4aXQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKHRoaXMtbGVuIChwYXRo LWxlbmd0aCAoaHJlZi9yYyBoYXJyIDAgYmNvbCkpKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChpZiAoPiB0aGlzLWxlbiBtYXgtbGVuKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChidC1scCB0aGlzLWxlbiB0Y29sIGJjb2wgKC0gYmNvbCAxKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoYnQtbHAgbWF4LWxlbiAgZW50cmFuY2UgZXhpdCAoLSBiY29sIDEp KSkpKSkpKQogICAgICAgICAgICAgIChsZXQgKChtYXgtbGVuICh2ZWN0b3ItcmVmIHJlc3VsdCAw KSkKICAgICAgICAgICAgICAgICAgICAoZW50cmFuY2UgKHZlY3Rvci1yZWYgcmVzdWx0IDEpKQog ICAgICAgICAgICAgICAgICAgIChleGl0ICh2ZWN0b3ItcmVmIHJlc3VsdCAyKSkpCiAgICAgICAg ICAgICAgICAodHAtbHAgbWF4LWxlbiBlbnRyYW5jZSBleGl0ICgtIHRjb2wgMSkpKSkpKSkpKQog ICAgICAgICAgICAgICAgCgoKOzs7IEFwcGx5IFBST0MgdG8gZWFjaCBub2RlIHJlYWNoYWJsZSBm cm9tIENFTEwuCihkZWZpbmUgKGZvci1lYWNoLWhleC1jaGlsZCBwcm9jIGhhcnIgY2VsbCkKICAo bGV0KiAoKHdhbGxzIChjZWxsOndhbGxzIGNlbGwpKQogICAgICAgICAoaWQgKGNlbGw6aWQgY2Vs bCkpCiAgICAgICAgICh4IChjYXIgaWQpKQogICAgICAgICAoeSAoY2RyIGlkKSkKICAgICAgICAg KG5yIChoYXJyOm5yb3dzIGhhcnIpKQogICAgICAgICAobmMgKGhhcnI6bmNvbHMgaGFycikpCiAg ICAgICAgIChtYXh5ICgqIDIgKC0gbnIgMSkpKQogICAgICAgICAobWF4eCAoKiAzICgtIG5jIDEp KSkpCiAgICAoaWYgKG5vdCAoYml0LXRlc3Qgd2FsbHMgc291dGgtd2VzdCkpIChwcm9jIChocmVm IGhhcnIgKC0geCAzKSAoLSB5IDEpKSkpCiAgICAoaWYgKG5vdCAoYml0LXRlc3Qgd2FsbHMgc291 dGgpKSAgICAgIChwcm9jIChocmVmIGhhcnIgeCAgICAgICAoLSB5IDIpKSkpCiAgICAoaWYgKG5v dCAoYml0LXRlc3Qgd2FsbHMgc291dGgtZWFzdCkpIChwcm9jIChocmVmIGhhcnIgKCsgeCAzKSAo LSB5IDEpKSkpCgogICAgOzsgTlcgbmVpZ2hib3IsIGlmIHRoZXJlIGlzIG9uZSAod2UgbWF5IGJl IGluIGNvbCAxLCBvciB0b3Agcm93L29kZCBjb2wpCiAgICAoaWYgKGFuZCAoPiB4IDApICAgIDsg Tm90IGluIGZpcnN0IGNvbHVtbi4KICAgICAgICAgICAgIChvciAoPD0geSBtYXh5KSAgICAgICAg ICAgIDsgTm90IG9uIHRvcCByb3cgb3IKICAgICAgICAgICAgICAgICAoemVybz8gKG1vZHVsbyB4 IDYpKSkpIDsgbm90IGluIGFuIG9kZCBjb2x1bW4uCiAgICAgICAgKGxldCAoKG53IChocmVmIGhh cnIgKC0geCAzKSAoKyB5IDEpKSkpCiAgICAgICAgICAoaWYgKG5vdCAoYml0LXRlc3QgKGNlbGw6 d2FsbHMgbncpIHNvdXRoLWVhc3QpKSAocHJvYyBudykpKSkKCiAgICA7OyBOIG5laWdoYm9yLCBp ZiB0aGVyZSBpcyBvbmUgKHdlIG1heSBiZSBvbiB0b3Agcm93KS4KICAgIChpZiAoPCB5IG1heHkp ICAgICAgICAgICAgICA7IE5vdCBvbiB0b3Agcm93CiAgICAgICAgKGxldCAoKG4gKGhyZWYgaGFy ciB4ICgrIHkgMikpKSkKICAgICAgICAgIChpZiAobm90IChiaXQtdGVzdCAoY2VsbDp3YWxscyBu KSBzb3V0aCkpIChwcm9jIG4pKSkpCgogICAgOzsgTkUgbmVpZ2hib3IsIGlmIHRoZXJlIGlzIG9u ZSAod2UgbWF5IGJlIGluIGxhc3QgY29sLCBvciB0b3Agcm93L29kZCBjb2wpCiAgICAoaWYgKGFu ZCAoPCB4IG1heHgpIDsgTm90IGluIGxhc3QgY29sdW1uLgogICAgICAgICAgICAgKG9yICg8PSB5 IG1heHkpICAgICAgICAgICAgOyBOb3Qgb24gdG9wIHJvdyBvcgogICAgICAgICAgICAgICAgICh6 ZXJvPyAobW9kdWxvIHggNikpKSkgOyBub3QgaW4gYW4gb2RkIGNvbHVtbi4KICAgICAgICAobGV0 ICgobmUgKGhyZWYgaGFyciAoKyB4IDMpICgrIHkgMSkpKSkKICAgICAgICAgIChpZiAobm90IChi aXQtdGVzdCAoY2VsbDp3YWxscyBuZSkgc291dGgtd2VzdCkpIChwcm9jIG5lKSkpKSkpCgoKCjs7 OyBUaGUgdG9wLWxldmVsCihkZWZpbmUgKG1ha2UtbWF6ZSBucm93cyBuY29scykKICAobGV0KiAo KGNlbGxzIChnZW4tbWF6ZS1hcnJheSBucm93cyBuY29scykpCiAgICAgICAgICh3YWxscyAocGVy bXV0ZS12ZWMhIChtYWtlLXdhbGwtdmVjIGNlbGxzKSAocmFuZG9tLXN0YXRlIDIwKSkpKQogICAg KGRpZy1tYXplIHdhbGxzICgqIG5yb3dzIG5jb2xzKSkKICAgIChsZXQgKChyZXN1bHQgKHBpY2st ZW50cmFuY2VzIGNlbGxzKSkpCiAgICAgIChsZXQgKChlbnRyYW5jZSAodmVjdG9yLXJlZiByZXN1 bHQgMCkpCiAgICAgICAgICAgIChleGl0ICh2ZWN0b3ItcmVmIHJlc3VsdCAxKSkpCiAgICAgICAg KGxldCogKChleGl0LWNlbGwgKGhyZWYvcmMgY2VsbHMgMCBleGl0KSkKICAgICAgICAgICAgICAg KHdhbGxzIChjZWxsOndhbGxzIGV4aXQtY2VsbCkpKQogICAgICAgICAgKHJlcm9vdC1tYXplICho cmVmL3JjIGNlbGxzICgtIG5yb3dzIDEpIGVudHJhbmNlKSkKICAgICAgICAgIChtYXJrLXBhdGgg ZXhpdC1jZWxsKQogICAgICAgICAgKHNldC1jZWxsOndhbGxzIGV4aXQtY2VsbCAoYml0d2lzZS1h bmQgd2FsbHMgKGJpdHdpc2Utbm90IHNvdXRoKSkpCiAgICAgICAgICAodmVjdG9yIGNlbGxzIGVu dHJhbmNlIGV4aXQpKSkpKSkKCgooZGVmaW5lIChwbWF6ZSBucm93cyBuY29scykKICAobGV0ICgo cmVzdWx0IChtYWtlLW1hemUgbnJvd3MgbmNvbHMpKSkKICAgIChsZXQgKChjZWxscyAodmVjdG9y LXJlZiByZXN1bHQgMCkpCiAgICAgICAgICAoZW50cmFuY2UgKHZlY3Rvci1yZWYgcmVzdWx0IDEp KQogICAgICAgICAgKGV4aXQgKHZlY3Rvci1yZWYgcmVzdWx0IDIpKSkKICAgICAgKHByaW50LWhl eG1hemUgY2VsbHMgZW50cmFuY2UpKSkpCgo7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCjsgV2FzIGZp bGUgImhleHByaW50LnNjbSIuCgo7OzsgUHJpbnQgb3V0IGEgaGV4IGFycmF5IHdpdGggY2hhcmFj dGVycy4KOzs7IENvcHlyaWdodCAoYykgMTk5NSBieSBPbGluIFNoaXZlcnMuCgo7OzsgRXh0ZXJu YWwgZGVwZW5kZW5jaWVzOgo7OzsgLSBoZXggYXJyYXkgY29kZQo7OzsgLSBoZXggY2VsbCBjb2Rl Cgo7OzsgICAgXyAgIF8KOzs7ICBfLyBcXy8gXAo7OzsgLyBcXy8gXF8vCjs7OyBcXy8gXF8vIFwK Ozs7IC8gXF8vIFxfLwo7OzsgXF8vIFxfLyBcCjs7OyAvIFxfLyBcXy8KOzs7IFxfLyBcXy8gXAo7 OzsgLyBcXy8gXF8vCjs7OyBcXy8gXF8vIAoKOzs7IFRvcCBwYXJ0IG9mIHRvcCByb3cgbG9va3Mg bGlrZSB0aGlzOgo7OzsgICAgXyAgIF8gIF8gICBfCjs7OyAgXy8gXF8vIFwvIFxfLyBcCjs7OyAv ICAgICAgICAKCihkZWZpbmUgb3V0cHV0ICNmKSA7IHRoZSBsaXN0IG9mIGFsbCBjaGFyYWN0ZXJz IHdyaXR0ZW4gb3V0LCBpbiByZXZlcnNlIG9yZGVyLgoKKGRlZmluZSAod3JpdGUtY2ggYykKICAo c2V0ISBvdXRwdXQgKGNvbnMgYyBvdXRwdXQpKSkKCihkZWZpbmUgKHByaW50LWhleG1hemUgaGFy ciBlbnRyYW5jZSkKICAobGV0KiAoKG5yb3dzICAoaGFycjpucm93cyBoYXJyKSkKICAgICAgICAg KG5jb2xzICAoaGFycjpuY29scyBoYXJyKSkKICAgICAgICAgKG5jb2xzMiAoKiAyIChxdW90aWVu dCBuY29scyAyKSkpKQoKICAgIDs7IFByaW50IG91dCB0aGUgZmxhdCB0b3BzIGZvciB0aGUgdG9w IHJvdydzIG9kZCBjb2xzLgogICAgKGRvICgoYyAxICgrIGMgMikpKQogICAgICAgICgoPj0gYyBu Y29scykpCjsgICAgIChkaXNwbGF5ICIgICAiKQogICAgICAod3JpdGUtY2ggI1xzcGFjZSkKICAg ICAgKHdyaXRlLWNoICNcc3BhY2UpCiAgICAgICh3cml0ZS1jaCAjXHNwYWNlKQogICAgICAod3Jp dGUtY2ggKGlmICg9IGMgZW50cmFuY2UpICNcc3BhY2UgI1xfKSkpCjsgICAobmV3bGluZSkKICAg ICh3cml0ZS1jaCAjXG5ld2xpbmUpCgogICAgOzsgUHJpbnQgb3V0IHRoZSBzbGFudGVkIHRvcHMg Zm9yIHRoZSB0b3Agcm93J3Mgb2RkIGNvbHMKICAgIDs7IGFuZCB0aGUgZmxhdCB0b3BzIGZvciB0 aGUgdG9wIHJvdydzIGV2ZW4gY29scy4KICAgICh3cml0ZS1jaCAjXHNwYWNlKQogICAgKGRvICgo YyAwICgrIGMgMikpKQogICAgICAgICgoPj0gYyBuY29sczIpKQo7ICAgICAoZm9ybWF0ICN0ICJ+ YS9+YVxcIgo7ICAgICAgICAgICAgIChpZiAoPSBjIGVudHJhbmNlKSAjXHNwYWNlICNcXykKOyAg ICAgICAgICAgICAoZG90L3NwYWNlIGhhcnIgKC0gbnJvd3MgMSkgKCsgYyAxKSkpCiAgICAgICh3 cml0ZS1jaCAoaWYgKD0gYyBlbnRyYW5jZSkgI1xzcGFjZSAjXF8pKQogICAgICAod3JpdGUtY2gg I1wvKQogICAgICAod3JpdGUtY2ggKGRvdC9zcGFjZSBoYXJyICgtIG5yb3dzIDEpICgrIGMgMSkp KQogICAgICAod3JpdGUtY2ggI1xcKSkKICAgIChpZiAob2RkPyBuY29scykKICAgICAgICAod3Jp dGUtY2ggKGlmICg9IGVudHJhbmNlICgtIG5jb2xzIDEpKSAjXHNwYWNlICNcXykpKQo7ICAgKG5l d2xpbmUpCiAgICAod3JpdGUtY2ggI1xuZXdsaW5lKQoKICAgIChkbyAoKHIgKC0gbnJvd3MgMSkg KC0gciAxKSkpCiAgICAgICAgKCg8IHIgMCkpCgogICAgICA7OyBEbyB0aGUgYm90dG9tcyBmb3Ig cm93IHIncyBvZGQgY29scy4KICAgICAgKHdyaXRlLWNoICNcLykKICAgICAgKGRvICgoYyAxICgr IGMgMikpKQogICAgICAgICAgKCg+PSBjIG5jb2xzMikpCiAgICAgICAgOzsgVGhlIGRvdC9zcGFj ZSBmb3IgdGhlIGV2ZW4gY29sIGp1c3QgYmVoaW5kIGMuCiAgICAgICAgKHdyaXRlLWNoIChkb3Qv c3BhY2UgaGFyciByICgtIGMgMSkpKQogICAgICAgIChkaXNwbGF5LWhleGJvdHRvbSAoY2VsbDp3 YWxscyAoaHJlZi9yYyBoYXJyIHIgYykpKSkgICAgCgogICAgICAoY29uZCAoKG9kZD8gbmNvbHMp CiAgICAgICAgICAgICAod3JpdGUtY2ggKGRvdC9zcGFjZSBoYXJyIHIgKC0gbmNvbHMgMSkpKQog ICAgICAgICAgICAgKHdyaXRlLWNoICNcXCkpKQo7ICAgICAobmV3bGluZSkKICAgICAgKHdyaXRl LWNoICNcbmV3bGluZSkKCiAgICAgIDs7IERvIHRoZSBib3R0b21zIGZvciByb3cgcidzIGV2ZW4g Y29scy4KICAgICAgKGRvICgoYyAwICgrIGMgMikpKQogICAgICAgICAgKCg+PSBjIG5jb2xzMikp CiAgICAgICAgKGRpc3BsYXktaGV4Ym90dG9tIChjZWxsOndhbGxzIChocmVmL3JjIGhhcnIgciBj KSkpCiAgICAgICAgOzsgVGhlIGRvdC9zcGFjZSBpcyBmb3IgdGhlIG9kZCBjb2wganVzdCBhZnRl ciBjLCBvbiByb3cgYmVsb3cuCiAgICAgICAgKHdyaXRlLWNoIChkb3Qvc3BhY2UgaGFyciAoLSBy IDEpICgrIGMgMSkpKSkKICAgICAgCiAgICAgIChjb25kICgob2RkPyBuY29scykKICAgICAgICAg ICAgIChkaXNwbGF5LWhleGJvdHRvbSAoY2VsbDp3YWxscyAoaHJlZi9yYyBoYXJyIHIgKC0gbmNv bHMgMSkpKSkpCiAgICAgICAgICAgICgobm90ICh6ZXJvPyByKSkgKHdyaXRlLWNoICNcXCkpKQo7 ICAgICAobmV3bGluZSkKICAgICAgKHdyaXRlLWNoICNcbmV3bGluZSkpKSkKCihkZWZpbmUgKGJp dC10ZXN0IGogYml0KQogIChub3QgKHplcm8/IChiaXR3aXNlLWFuZCBqIGJpdCkpKSkKCjs7OyBS ZXR1cm4gYSAuIGlmIGhhcnJbcixjXSBpcyBtYXJrZWQsIG90aGVyd2lzZSBhIHNwYWNlLgo7Ozsg V2UgdXNlIHRoZSBkb3QgdG8gbWFyayB0aGUgc29sdXRpb24gcGF0aC4KKGRlZmluZSAoZG90L3Nw YWNlIGhhcnIgciBjKQogIChpZiAoYW5kICg+PSByIDApIChjZWxsOm1hcmsgKGhyZWYvcmMgaGFy ciByIGMpKSkgI1wuICNcc3BhY2UpKQoKOzs7IFByaW50IGEgXF8vIGhleCBib3R0b20uCihkZWZp bmUgKGRpc3BsYXktaGV4Ym90dG9tIGhleHdhbGxzKQogICh3cml0ZS1jaCAoaWYgKGJpdC10ZXN0 IGhleHdhbGxzIHNvdXRoLXdlc3QpICNcXCAjXHNwYWNlKSkKICAod3JpdGUtY2ggKGlmIChiaXQt dGVzdCBoZXh3YWxscyBzb3V0aCAgICAgKSAjXF8gI1xzcGFjZSkpCiAgKHdyaXRlLWNoIChpZiAo Yml0LXRlc3QgaGV4d2FsbHMgc291dGgtZWFzdCkgI1wvICNcc3BhY2UpKSkKCjs7OyAgICBfICAg Xwo7OzsgIF8vIFxfLyBcCjs7OyAvIFxfLyBcXy8KOzs7IFxfLyBcXy8gXF8vCjs7OyAvIFxfLyBc Xy8KOzs7IFxfLyBcXy8gXAo7OzsgLyBcXy8gXF8vCjs7OyBcXy8gXF8vIFwKOzs7IC8gXF8vIFxf Lwo7OzsgXF8vIFxfLyBcXy8KCjstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCihkZWZpbmUgKHJ1biBu cm93cyBuY29scykKICAoc2V0ISBvdXRwdXQgJygpKQogIChwbWF6ZSBucm93cyBuY29scykKICAo cmV2ZXJzZSBvdXRwdXQpKQoKKGRlZmluZSAobWFpbiAuIGFyZ3MpCiAgKHJ1bi1iZW5jaG1hcmsK ICAgICJtYXplIgogICAgbWF6ZS1pdGVycwogICAgKGxhbWJkYSAocmVzdWx0KQogICAgICAoZXF1 YWw/IHJlc3VsdCAnCigjXCAgI1wgICNcICAjXF8gI1wgICNcICAjXCAgI1xfICNcICAjXCAgI1wg ICNcXyAjXG5ld2xpbmUKICNcICAjXF8gI1wvICNcICAjXFwgI1xfICNcLyAjXCAgI1xcICNcXyAj XC8gI1wuICNcXCAjXCAgI1xuZXdsaW5lCiAjXC8gI1wgICNcXCAjXCAgI1wgICNcICAjXFwgI1xf ICNcICAjXC4gI1wgICNcICAjXC8gI1wuICNcXCAjXG5ld2xpbmUKICNcXCAjXCAgI1wgICNcICAj XFwgI1wgICNcLyAjXC4gI1wgICNcXyAjXC8gI1wuICNcXCAjXCAgI1wvICNcbmV3bGluZQogI1wv ICNcICAjXFwgI1xfICNcLyAjXC4gI1wgICNcXyAjXC8gI1wgICNcXCAjXF8gI1wgICNcLiAjXFwg I1xuZXdsaW5lCiAjXFwgI1wgICNcLyAjXCAgI1xcICNcICAjXC8gI1wgICNcICAjXF8gI1wvICNc ICAjXFwgI1xfICNcLyAjXG5ld2xpbmUKICNcLyAjXCAgI1wgICNcXyAjXC8gI1wuICNcXCAjXCAg I1wvICNcICAjXFwgI1wgICNcLyAjXCAgI1xcICNcbmV3bGluZQogI1xcICNcICAjXC8gI1wgICNc XCAjXCAgI1wvICNcICAjXCAgI1xfICNcLyAjXCAgI1wgICNcICAjXC8gI1xuZXdsaW5lCiAjXC8g I1wgICNcXCAjXCAgI1wvICNcLiAjXFwgI1wgICNcLyAjXC4gI1xcICNcXyAjXC8gI1wgICNcXCAj XG5ld2xpbmUKICNcXCAjXF8gI1wvICNcICAjXFwgI1wgICNcLyAjXC4gI1wgICNcXyAjXCAgI1wu ICNcXCAjXCAgI1wvICNcbmV3bGluZQogI1wvICNcICAjXFwgI1xfICNcICAjXC4gI1wgICNcXyAj XC8gI1wgICNcXCAjXCAgI1wgICNcICAjXFwgI1xuZXdsaW5lCiAjXFwgI1xfICNcICAjXCAgI1xc ICNcXyAjXC8gI1wgICNcICAjXF8gI1wvICNcLiAjXFwgI1wgICNcLyAjXG5ld2xpbmUKICNcLyAj XCAgI1wgICNcXyAjXC8gI1wgICNcICAjXCAgI1wvICNcICAjXFwgI1wgICNcLyAjXCAgI1xcICNc bmV3bGluZQogI1xcICNcXyAjXCAgI1wgICNcXCAjXCAgI1wvICNcICAjXFwgI1xfICNcICAjXC4g I1xcICNcXyAjXC8gI1xuZXdsaW5lCiAjXC8gI1wgICNcXCAjXF8gI1wgICNcICAjXFwgI1xfICNc ICAjXCAgI1xcICNcXyAjXCAgI1wuICNcXCAjXG5ld2xpbmUKICNcXCAjXF8gI1wgICNcICAjXFwg I1xfICNcLyAjXCAgI1wgICNcXyAjXC8gI1wuICNcXCAjXCAgI1wvICNcbmV3bGluZQogI1wvICNc ICAjXFwgI1xfICNcICAjXCAgI1xcICNcICAjXC8gI1wuICNcXCAjXCAgI1wgICNcLiAjXFwgI1xu ZXdsaW5lCiAjXFwgI1wgICNcLyAjXC4gI1xcICNcXyAjXCAgI1wuICNcICAjXCAgI1wvICNcLiAj XFwgI1wgICNcLyAjXG5ld2xpbmUKICNcLyAjXCAgI1wgICNcICAjXCAgI1wuICNcICAjXF8gI1wv ICNcLiAjXFwgI1wgICNcLyAjXCAgI1xcICNcbmV3bGluZQogI1xcICNcICAjXC8gI1wuICNcXCAj XF8gI1wvICNcLiAjXFwgI1xfICNcICAjXC4gI1xcICNcICAjXC8gI1xuZXdsaW5lCiAjXC8gI1wg ICNcXCAjXF8gI1wgICNcLiAjXCAgI1wgICNcLyAjXCAgI1wgICNcXyAjXC8gI1wgICNcXCAjXG5l d2xpbmUKICNcXCAjXF8gI1wgICNcICAjXFwgI1xfICNcLyAjXC4gI1xcICNcXyAjXCAgI1wgICNc XCAjXF8gI1wvICNcbmV3bGluZQogI1wvICNcICAjXCAgI1xfICNcLyAjXCAgI1xcICNcICAjXC8g I1wgICNcXCAjXF8gI1wgICNcICAjXFwgI1xuZXdsaW5lCiAjXFwgI1xfICNcLyAjXCAgI1wgICNc XyAjXC8gI1wuICNcXCAjXF8gI1wgICNcICAjXFwgI1xfICNcLyAjXG5ld2xpbmUKICNcLyAjXCAg I1xcICNcICAjXC8gI1wgICNcICAjXF8gI1wgICNcLiAjXCAgI1xfICNcICAjXCAgI1xcICNcbmV3 bGluZQogI1xcICNcICAjXC8gI1wgICNcXCAjXF8gI1wvICNcLiAjXCAgI1xfICNcICAjXCAgI1xc ICNcXyAjXC8gI1xuZXdsaW5lCiAjXC8gI1wgICNcICAjXF8gI1wgICNcICAjXFwgI1wgICNcICAj XCAgI1xcICNcXyAjXC8gI1wgICNcXCAjXG5ld2xpbmUKICNcXCAjXF8gI1wvICNcLiAjXFwgI1xf ICNcICAjXC4gI1xcICNcXyAjXC8gI1wgICNcICAjXF8gI1wvICNcbmV3bGluZQogI1wvICNcICAj XFwgI1wgICNcICAjXC4gI1wgICNcXyAjXC8gI1wgICNcICAjXCAgI1wvICNcICAjXFwgI1xuZXds aW5lCiAjXFwgI1wgICNcLyAjXC4gI1xcICNcXyAjXC8gI1wgICNcXCAjXF8gI1wvICNcLiAjXFwg I1wgICNcLyAjXG5ld2xpbmUKICNcLyAjXCAgI1xcICNcXyAjXCAgI1wuICNcICAjXF8gI1wvICNc LiAjXCAgI1wgICNcICAjXCAgI1xcICNcbmV3bGluZQogI1xcICNcICAjXCAgI1wgICNcICAjXCAg I1wgICNcLiAjXCAgI1wgICNcLyAjXC4gI1xcICNcXyAjXC8gI1xuZXdsaW5lCiAjXC8gI1wgICNc XCAjXF8gI1wvICNcICAjXFwgI1xfICNcLyAjXCAgI1xcICNcXyAjXCAgI1wuICNcXCAjXG5ld2xp bmUKICNcXCAjXF8gI1wvICNcICAjXCAgI1wgICNcLyAjXCAgI1xcICNcXyAjXC8gI1wuICNcICAj XCAgI1wvICNcbmV3bGluZQogI1wvICNcICAjXCAgI1wgICNcLyAjXCAgI1wgICNcXyAjXCAgI1wg ICNcXCAjXCAgI1wvICNcICAjXFwgI1xuZXdsaW5lCiAjXFwgI1xfICNcLyAjXCAgI1xcICNcXyAj XC8gI1wgICNcXCAjXF8gI1wvICNcLiAjXFwgI1xfICNcLyAjXG5ld2xpbmUKICNcLyAjXCAgI1xc ICNcXyAjXC8gI1wgICNcICAjXF8gI1wvICNcICAjXFwgI1xfICNcICAjXC4gI1xcICNcbmV3bGlu ZQogI1xcICNcICAjXCAgI1wgICNcICAjXF8gI1wvICNcLiAjXCAgI1wgICNcLyAjXC4gI1wgICNc XyAjXC8gI1xuZXdsaW5lCiAjXC8gI1wgICNcXCAjXCAgI1wvICNcLiAjXCAgI1wgICNcLyAjXCAg I1xcICNcXyAjXCAgI1wuICNcXCAjXG5ld2xpbmUKICNcXCAjXF8gI1wvICNcLiAjXCAgI1xfICNc LyAjXC4gI1xcICNcXyAjXC8gI1wuICNcXCAjXCAgI1wvICNcbmV3bGluZQogI1wvICNcICAjXCAg I1xfICNcICAjXC4gI1xcICNcXyAjXCAgI1wuICNcICAjXF8gI1wgICNcLiAjXFwgI1xuZXdsaW5l CiAjXFwgI1xfICNcLyAjXCAgI1xcICNcICAjXC8gI1wgICNcXCAjXF8gI1wvICNcICAjXFwgI1xf ICNcLyAjXG5ld2xpbmUpKSkKICAgIChsYW1iZGEgKG5yb3dzIG5jb2xzKSAobGFtYmRhICgpIChy dW4gbnJvd3MgbmNvbHMpKSkKICAgIDIwCiAgICA3KSkKKG1haW4pCjsgbWF6ZSBtYXplCg== ------=_20090420010245_50081 Content-Type: application/octet-stream; name="trav1_bug.scm" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="trav1_bug.scm" KGRlZmluZSAocnVuLWJlbmNoIG5hbWUgY291bnQgb2s/IHJ1bikKICAobGV0IGxvb3AgKChpIGNv dW50KSAocmVzdWx0ICcodW5kZWZpbmVkKSkpCiAgICAoaWYgKDwgMCBpKQogICAgICAobG9vcCAo LSBpIDEpIChydW4pKQogICAgICByZXN1bHQpKSkKCihkZWZpbmUgKHJ1bi1iZW5jaG1hcmsgbmFt ZSBjb3VudCBvaz8gcnVuLW1ha2VyIC4gYXJncykKICAobmV3bGluZSkKICAobGV0KiAoKHJ1biAo YXBwbHkgcnVuLW1ha2VyIGFyZ3MpKQogICAgICAgICAocmVzdWx0IChydW4tYmVuY2ggbmFtZSBj b3VudCBvaz8gcnVuKSkpCiAgICAoaWYgKG5vdCAob2s/IHJlc3VsdCkpCiAgICAgIChiZWdpbgog ICAgICAgIChkaXNwbGF5ICIqKiogd3JvbmcgcmVzdWx0ICoqKiIpCiAgICAgICAgKG5ld2xpbmUp CiAgICAgICAgKGRpc3BsYXkgIioqKiBnb3Q6ICIpCiAgICAgICAgKHdyaXRlIHJlc3VsdCkKICAg ICAgICAobmV3bGluZSkpKSkpCgooZGVmaW5lIChmYXRhbC1lcnJvciAuIGFyZ3MpCiAgKGZvci1l YWNoIGRpc3BsYXkgYXJncykKICAobmV3bGluZSkKICAoZXhpdCAxKSkKCiAoZGVmaW5lIChjYWxs LXdpdGgtb3V0cHV0LWZpbGUvdHJ1bmNhdGUgZmlsZW5hbWUgcHJvYykKICAgKGNhbGwtd2l0aC1v dXRwdXQtZmlsZSBmaWxlbmFtZSBwcm9jKSkKCihkZWZpbmUgdHJhdjEtaXRlcnMgICAgICAgIDEw KQogCihkZWZpbmUgKG1ha2Utbm9kZSkKICAodmVjdG9yICdub2RlICcoKSAnKCkgKHNuYikgI2Yg I2YgI2YgI2YgI2YgI2YgI2YpKQoKKGRlZmluZSAobm9kZS1wYXJlbnRzIG5vZGUpICh2ZWN0b3It cmVmIG5vZGUgMSkpCihkZWZpbmUgKG5vZGUtc29ucyBub2RlKSAodmVjdG9yLXJlZiBub2RlIDIp KQooZGVmaW5lIChub2RlLXNuIG5vZGUpICh2ZWN0b3ItcmVmIG5vZGUgMykpCihkZWZpbmUgKG5v ZGUtZW50cnkxIG5vZGUpICh2ZWN0b3ItcmVmIG5vZGUgNCkpCihkZWZpbmUgKG5vZGUtZW50cnky IG5vZGUpICh2ZWN0b3ItcmVmIG5vZGUgNSkpCihkZWZpbmUgKG5vZGUtZW50cnkzIG5vZGUpICh2 ZWN0b3ItcmVmIG5vZGUgNikpCihkZWZpbmUgKG5vZGUtZW50cnk0IG5vZGUpICh2ZWN0b3ItcmVm IG5vZGUgNykpCihkZWZpbmUgKG5vZGUtZW50cnk1IG5vZGUpICh2ZWN0b3ItcmVmIG5vZGUgOCkp CihkZWZpbmUgKG5vZGUtZW50cnk2IG5vZGUpICh2ZWN0b3ItcmVmIG5vZGUgOSkpCihkZWZpbmUg KG5vZGUtbWFyayBub2RlKSAodmVjdG9yLXJlZiBub2RlIDEwKSkKCihkZWZpbmUgKG5vZGUtcGFy ZW50cy1zZXQhIG5vZGUgdikgKHZlY3Rvci1zZXQhIG5vZGUgMSB2KSkKKGRlZmluZSAobm9kZS1z b25zLXNldCEgbm9kZSB2KSAodmVjdG9yLXNldCEgbm9kZSAyIHYpKQooZGVmaW5lIChub2RlLXNu LXNldCEgbm9kZSB2KSAodmVjdG9yLXNldCEgbm9kZSAzIHYpKQooZGVmaW5lIChub2RlLWVudHJ5 MS1zZXQhIG5vZGUgdikgKHZlY3Rvci1zZXQhIG5vZGUgNCB2KSkKKGRlZmluZSAobm9kZS1lbnRy eTItc2V0ISBub2RlIHYpICh2ZWN0b3Itc2V0ISBub2RlIDUgdikpCihkZWZpbmUgKG5vZGUtZW50 cnkzLXNldCEgbm9kZSB2KSAodmVjdG9yLXNldCEgbm9kZSA2IHYpKQooZGVmaW5lIChub2RlLWVu dHJ5NC1zZXQhIG5vZGUgdikgKHZlY3Rvci1zZXQhIG5vZGUgNyB2KSkKKGRlZmluZSAobm9kZS1l bnRyeTUtc2V0ISBub2RlIHYpICh2ZWN0b3Itc2V0ISBub2RlIDggdikpCihkZWZpbmUgKG5vZGUt ZW50cnk2LXNldCEgbm9kZSB2KSAodmVjdG9yLXNldCEgbm9kZSA5IHYpKQooZGVmaW5lIChub2Rl LW1hcmstc2V0ISBub2RlIHYpICh2ZWN0b3Itc2V0ISBub2RlIDEwIHYpKQoKKGRlZmluZSAqc24q IDApCihkZWZpbmUgKnJhbmQqIDIxKQooZGVmaW5lICpjb3VudCogMCkKKGRlZmluZSAqbWFya2Vy KiAjZikKKGRlZmluZSAqcm9vdCogJygpKQoKKGRlZmluZSAoc25iKQogIChzZXQhICpzbiogKCsg MSAqc24qKSkKICAqc24qKQogCihkZWZpbmUgKHNlZWQpCiAgKHNldCEgKnJhbmQqIDIxKQogICpy YW5kKikKIAooZGVmaW5lICh0cmF2ZXJzZS1yYW5kb20pCiAgKHNldCEgKnJhbmQqIChyZW1haW5k ZXIgKCogKnJhbmQqIDE3KSAyNTEpKQogICpyYW5kKikKIAooZGVmaW5lICh0cmF2ZXJzZS1yZW1v dmUgbiBxKQogIChjb25kICgoZXE/IChjZHIgKGNhciBxKSkgKGNhciBxKSkKICAgICAgICAgKGxl dCAoKHggKGNhYXIgcSkpKSAoc2V0LWNhciEgcSAnKCkpIHgpKQogICAgICAgICgoPSBuIDApCiAg ICAgICAgIChsZXQgKCh4IChjYWFyIHEpKSkKICAgICAgICAgICAoZG8gKChwIChjYXIgcSkgKGNk ciBwKSkpCiAgICAgICAgICAgICAgICgoZXE/IChjZHIgcCkgKGNhciBxKSkKICAgICAgICAgICAg ICAgIChzZXQtY2RyISBwIChjZHIgKGNhciBxKSkpCiAgICAgICAgICAgICAgICAoc2V0LWNhciEg cSBwKSkpCiAgICAgICAgICAgeCkpCiAgICAgICAgKGVsc2UgKGRvICgobiBuICgtIG4gMSkpCiAg ICAgICAgICAgICAgICAocSAoY2FyIHEpIChjZHIgcSkpCiAgICAgICAgICAgICAgICAocCAoY2Ry IChjYXIgcSkpIChjZHIgcCkpKQogICAgICAgICAgICAgICAoKD0gbiAwKSAobGV0ICgoeCAoY2Fy IHEpKSkgKHNldC1jZHIhIHEgcCkgeCkpKSkpKQogCihkZWZpbmUgKHRyYXZlcnNlLXNlbGVjdCBu IHEpCiAgKGRvICgobiBuICgtIG4gMSkpCiAgICAgICAocSAoY2FyIHEpIChjZHIgcSkpKQogICAg ICAoKD0gbiAwKSAoY2FyIHEpKSkpCiAKKGRlZmluZSAoYWRkIGEgcSkKICAoY29uZCAoKG51bGw/ IHEpCiAgICAgICAgIGAoLChsZXQgKCh4IGAoLGEpKSkKICAgICAgICAgICAgICAoc2V0LWNkciEg eCB4KSB4KSkpCiAgICAgICAgKChudWxsPyAoY2FyIHEpKQogICAgICAgICAobGV0ICgoeCBgKCxh KSkpCiAgICAgICAgICAgKHNldC1jZHIhIHggeCkKICAgICAgICAgICAoc2V0LWNhciEgcSB4KQog ICAgICAgICAgIHEpKQogICAgICAgIDsgdGhlIENMIHZlcnNpb24gaGFkIGEgdXNlbGVzcyBzZXQt Y2FyISBpbiB0aGUgbmV4dCBsaW5lICh3YykKICAgICAgICAoZWxzZSAoc2V0LWNkciEgKGNhciBx KSBgKCxhICxAKGNkciAoY2FyIHEpKSkpCiAgICAgICAgICAgICAgcSkpKQogCihkZWZpbmUgKGNy ZWF0ZS1zdHJ1Y3R1cmUgbikKICAobGV0ICgoYSBgKCwobWFrZS1ub2RlKSkpKQogICAgKGRvICgo bSAoLSBuIDEpICgtIG0gMSkpCiAgICAgICAgIChwIGEpKQogICAgICAgICgoPSBtIDApCiAgICAg ICAgIChzZXQhIGEgYCgsKGJlZ2luIChzZXQtY2RyISBwIGEpIHApKSkKICAgICAgICAgKGRvICgo dW51c2VkIGEpCiAgICAgICAgICAgICAgKHVzZWQgKGFkZCAodHJhdmVyc2UtcmVtb3ZlIDAgYSkg JygpKSkKICAgICAgICAgICAgICAoeCAnKCkpCiAgICAgICAgICAgICAgKHkgJygpKSkKICAgICAg ICAgICAgICgobnVsbD8gKGNhciB1bnVzZWQpKQogICAgICAgICAgICAgIChmaW5kLXJvb3QgKHRy YXZlcnNlLXNlbGVjdCAwIHVzZWQpIG4pKQogICAgICAgICAgIChzZXQhIHggKHRyYXZlcnNlLXJl bW92ZSAocmVtYWluZGVyICh0cmF2ZXJzZS1yYW5kb20pIG4pIHVudXNlZCkpCiAgICAgICAgICAg KHNldCEgeSAodHJhdmVyc2Utc2VsZWN0IChyZW1haW5kZXIgKHRyYXZlcnNlLXJhbmRvbSkgbikg dXNlZCkpCiAgICAgICAgICAgKGFkZCB4IHVzZWQpCiAgICAgICAgICAgKG5vZGUtc29ucy1zZXQh IHkgYCgseCAsQChub2RlLXNvbnMgeSkpKQogICAgICAgICAgIChub2RlLXBhcmVudHMtc2V0ISB4 IGAoLHkgLEAobm9kZS1wYXJlbnRzIHgpKSkgKSkKICAgICAgKHNldCEgYSAoY29ucyAobWFrZS1u b2RlKSBhKSkpKSkKIAooZGVmaW5lIChmaW5kLXJvb3Qgbm9kZSBuKQogIChkbyAoKG4gbiAoLSBu IDEpKSkKICAgICAgKChvciAoPSBuIDApIChudWxsPyAobm9kZS1wYXJlbnRzIG5vZGUpKSkKICAg ICAgIG5vZGUpCiAgICAoc2V0ISBub2RlIChjYXIgKG5vZGUtcGFyZW50cyBub2RlKSkpKSkKIAoo ZGVmaW5lICh0cmF2ZXJzIG5vZGUgbWFyaykKICAoY29uZCAoKGVxPyAobm9kZS1tYXJrIG5vZGUp IG1hcmspICNmKQogICAgICAgIChlbHNlIChub2RlLW1hcmstc2V0ISBub2RlIG1hcmspCiAgICAg ICAgICAgKHNldCEgKmNvdW50KiAoKyAxICpjb3VudCopKQogICAgICAgICAgIChub2RlLWVudHJ5 MS1zZXQhIG5vZGUgKG5vdCAobm9kZS1lbnRyeTEgbm9kZSkpKQogICAgICAgICAgIChub2RlLWVu dHJ5Mi1zZXQhIG5vZGUgKG5vdCAobm9kZS1lbnRyeTIgbm9kZSkpKQogICAgICAgICAgIChub2Rl LWVudHJ5My1zZXQhIG5vZGUgKG5vdCAobm9kZS1lbnRyeTMgbm9kZSkpKQogICAgICAgICAgIChu b2RlLWVudHJ5NC1zZXQhIG5vZGUgKG5vdCAobm9kZS1lbnRyeTQgbm9kZSkpKQogICAgICAgICAg IChub2RlLWVudHJ5NS1zZXQhIG5vZGUgKG5vdCAobm9kZS1lbnRyeTUgbm9kZSkpKQogICAgICAg ICAgIChub2RlLWVudHJ5Ni1zZXQhIG5vZGUgKG5vdCAobm9kZS1lbnRyeTYgbm9kZSkpKQogICAg ICAgICAgIChkbyAoKHNvbnMgKG5vZGUtc29ucyBub2RlKSAoY2RyIHNvbnMpKSkKICAgICAgICAg ICAgICAgKChudWxsPyBzb25zKSAjZikKICAgICAgICAgICAgICh0cmF2ZXJzIChjYXIgc29ucykg bWFyaykpKSkpCiAKKGRlZmluZSAodHJhdmVyc2Ugcm9vdCkKICAobGV0ICgoKmNvdW50KiAwKSkK ICAgICh0cmF2ZXJzIHJvb3QgKGJlZ2luIChzZXQhICptYXJrZXIqIChub3QgKm1hcmtlciopKSAq bWFya2VyKikpCiAgICAqY291bnQqKSkKIAooZGVmaW5lIChpbml0LXRyYXZlcnNlKSAgOyBDaGFu Z2VkIGZyb20gZGVmbWFjcm8gdG8gZGVmdW4gXGJzCiAgKHNldCEgKnJvb3QqIChjcmVhdGUtc3Ry dWN0dXJlIDEwMCkpCiAgI2YpCiAKKGRlZmluZSAocnVuLXRyYXZlcnNlKSAgOyBDaGFuZ2VkIGZy b20gZGVmbWFjcm8gdG8gZGVmdW4gXGJzCiAgKGRvICgoaSA1MCAoLSBpIDEpKSkKICAgICAgKCg9 IGkgMCkpCiAgICAodHJhdmVyc2UgKnJvb3QqKQogICAgKHRyYXZlcnNlICpyb290KikKICAgICh0 cmF2ZXJzZSAqcm9vdCopCiAgICAodHJhdmVyc2UgKnJvb3QqKQogICAgKHRyYXZlcnNlICpyb290 KikpKQoKOzs7IHRvIGluaXRpYWxpemUsIGNhbGw6ICAoaW5pdC10cmF2ZXJzZSkKOzs7IHRvIHJ1 biB0cmF2ZXJzZSwgY2FsbDogIChydW4tdHJhdmVyc2UpCgooZGVmaW5lIChtYWluIC4gYXJncykK ICAocnVuLWJlbmNobWFyawogICAgInRyYXYxIgogICAgdHJhdjEtaXRlcnMKICAgIChsYW1iZGEg KHJlc3VsdCkgI3QpCiAgICAobGFtYmRhICgpIChsYW1iZGEgKCkgKGluaXQtdHJhdmVyc2UpKSkp KQoobWFpbikKOyB0cmF2MSB0cmF2MQo= ------=_20090420010245_50081 Content-Type: application/octet-stream; name="trav2_bug.scm" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="trav2_bug.scm" OyB0cmF2MiB0cmF2MgooZGVmaW5lLW1hY3JvIChpZi1maXhmbG8geWVzIG5vKSBubykKOy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQoKKGRlZmluZSAocnVuLWJlbmNoIG5hbWUgY291bnQgb2s/IHJ1bikK ICAobGV0IGxvb3AgKChpIGNvdW50KSAocmVzdWx0ICcodW5kZWZpbmVkKSkpCiAgICAoaWYgKDwg MCBpKQogICAgICAobG9vcCAoLSBpIDEpIChydW4pKQogICAgICByZXN1bHQpKSkKCihkZWZpbmUg KHJ1bi1iZW5jaG1hcmsgbmFtZSBjb3VudCBvaz8gcnVuLW1ha2VyIC4gYXJncykKICAobmV3bGlu ZSkKICAobGV0KiAoKHJ1biAoYXBwbHkgcnVuLW1ha2VyIGFyZ3MpKQogICAgICAgICAocmVzdWx0 IChydW4tYmVuY2ggbmFtZSBjb3VudCBvaz8gcnVuKSkpCiAgICAoaWYgKG5vdCAob2s/IHJlc3Vs dCkpCiAgICAgIChiZWdpbgogICAgICAgIChkaXNwbGF5ICIqKiogd3JvbmcgcmVzdWx0ICoqKiIp CiAgICAgICAgKG5ld2xpbmUpCiAgICAgICAgKGRpc3BsYXkgIioqKiBnb3Q6ICIpCiAgICAgICAg KHdyaXRlIHJlc3VsdCkKICAgICAgICAobmV3bGluZSkpKSkpCgooZGVmaW5lIChmYXRhbC1lcnJv ciAuIGFyZ3MpCiAgKGZvci1lYWNoIGRpc3BsYXkgYXJncykKICAobmV3bGluZSkKICAoZXhpdCAx KSkKCiAoZGVmaW5lIChjYWxsLXdpdGgtb3V0cHV0LWZpbGUvdHJ1bmNhdGUgZmlsZW5hbWUgcHJv YykKICAgKGNhbGwtd2l0aC1vdXRwdXQtZmlsZSBmaWxlbmFtZSBwcm9jKSkKCihkZWZpbmUgdHJh djItaXRlcnMgICAgICAgICAyKQoKKGRlZmluZSAobWFrZS1ub2RlKQogICh2ZWN0b3IgJ25vZGUg JygpICcoKSAoc25iKSAjZiAjZiAjZiAjZiAjZiAjZiAjZikpCgooZGVmaW5lIChub2RlLXBhcmVu dHMgbm9kZSkgKHZlY3Rvci1yZWYgbm9kZSAxKSkKKGRlZmluZSAobm9kZS1zb25zIG5vZGUpICh2 ZWN0b3ItcmVmIG5vZGUgMikpCihkZWZpbmUgKG5vZGUtc24gbm9kZSkgKHZlY3Rvci1yZWYgbm9k ZSAzKSkKKGRlZmluZSAobm9kZS1lbnRyeTEgbm9kZSkgKHZlY3Rvci1yZWYgbm9kZSA0KSkKKGRl ZmluZSAobm9kZS1lbnRyeTIgbm9kZSkgKHZlY3Rvci1yZWYgbm9kZSA1KSkKKGRlZmluZSAobm9k ZS1lbnRyeTMgbm9kZSkgKHZlY3Rvci1yZWYgbm9kZSA2KSkKKGRlZmluZSAobm9kZS1lbnRyeTQg bm9kZSkgKHZlY3Rvci1yZWYgbm9kZSA3KSkKKGRlZmluZSAobm9kZS1lbnRyeTUgbm9kZSkgKHZl Y3Rvci1yZWYgbm9kZSA4KSkKKGRlZmluZSAobm9kZS1lbnRyeTYgbm9kZSkgKHZlY3Rvci1yZWYg bm9kZSA5KSkKKGRlZmluZSAobm9kZS1tYXJrIG5vZGUpICh2ZWN0b3ItcmVmIG5vZGUgMTApKQoK KGRlZmluZSAobm9kZS1wYXJlbnRzLXNldCEgbm9kZSB2KSAodmVjdG9yLXNldCEgbm9kZSAxIHYp KQooZGVmaW5lIChub2RlLXNvbnMtc2V0ISBub2RlIHYpICh2ZWN0b3Itc2V0ISBub2RlIDIgdikp CihkZWZpbmUgKG5vZGUtc24tc2V0ISBub2RlIHYpICh2ZWN0b3Itc2V0ISBub2RlIDMgdikpCihk ZWZpbmUgKG5vZGUtZW50cnkxLXNldCEgbm9kZSB2KSAodmVjdG9yLXNldCEgbm9kZSA0IHYpKQoo ZGVmaW5lIChub2RlLWVudHJ5Mi1zZXQhIG5vZGUgdikgKHZlY3Rvci1zZXQhIG5vZGUgNSB2KSkK KGRlZmluZSAobm9kZS1lbnRyeTMtc2V0ISBub2RlIHYpICh2ZWN0b3Itc2V0ISBub2RlIDYgdikp CihkZWZpbmUgKG5vZGUtZW50cnk0LXNldCEgbm9kZSB2KSAodmVjdG9yLXNldCEgbm9kZSA3IHYp KQooZGVmaW5lIChub2RlLWVudHJ5NS1zZXQhIG5vZGUgdikgKHZlY3Rvci1zZXQhIG5vZGUgOCB2 KSkKKGRlZmluZSAobm9kZS1lbnRyeTYtc2V0ISBub2RlIHYpICh2ZWN0b3Itc2V0ISBub2RlIDkg dikpCihkZWZpbmUgKG5vZGUtbWFyay1zZXQhIG5vZGUgdikgKHZlY3Rvci1zZXQhIG5vZGUgMTAg dikpCgooZGVmaW5lICpzbiogMCkKKGRlZmluZSAqcmFuZCogMjEpCihkZWZpbmUgKmNvdW50KiAw KQooZGVmaW5lICptYXJrZXIqICNmKQooZGVmaW5lICpyb290KiAnKCkpCgooZGVmaW5lIChzbmIp CiAgKHNldCEgKnNuKiAoKyAxICpzbiopKQogICpzbiopCiAKKGRlZmluZSAoc2VlZCkKICAoc2V0 ISAqcmFuZCogMjEpCiAgKnJhbmQqKQogCihkZWZpbmUgKHRyYXZlcnNlLXJhbmRvbSkKICAoc2V0 ISAqcmFuZCogKHJlbWFpbmRlciAoKiAqcmFuZCogMTcpIDI1MSkpCiAgKnJhbmQqKQogCihkZWZp bmUgKHRyYXZlcnNlLXJlbW92ZSBuIHEpCiAgKGNvbmQgKChlcT8gKGNkciAoY2FyIHEpKSAoY2Fy IHEpKQogICAgICAgICAobGV0ICgoeCAoY2FhciBxKSkpIChzZXQtY2FyISBxICcoKSkgeCkpCiAg ICAgICAgKCg9IG4gMCkKICAgICAgICAgKGxldCAoKHggKGNhYXIgcSkpKQogICAgICAgICAgIChk byAoKHAgKGNhciBxKSAoY2RyIHApKSkKICAgICAgICAgICAgICAgKChlcT8gKGNkciBwKSAoY2Fy IHEpKQogICAgICAgICAgICAgICAgKHNldC1jZHIhIHAgKGNkciAoY2FyIHEpKSkKICAgICAgICAg ICAgICAgIChzZXQtY2FyISBxIHApKSkKICAgICAgICAgICB4KSkKICAgICAgICAoZWxzZSAoZG8g KChuIG4gKC0gbiAxKSkKICAgICAgICAgICAgICAgIChxIChjYXIgcSkgKGNkciBxKSkKICAgICAg ICAgICAgICAgIChwIChjZHIgKGNhciBxKSkgKGNkciBwKSkpCiAgICAgICAgICAgICAgICgoPSBu IDApIChsZXQgKCh4IChjYXIgcSkpKSAoc2V0LWNkciEgcSBwKSB4KSkpKSkpCiAKKGRlZmluZSAo dHJhdmVyc2Utc2VsZWN0IG4gcSkKICAoZG8gKChuIG4gKC0gbiAxKSkKICAgICAgIChxIChjYXIg cSkgKGNkciBxKSkpCiAgICAgICgoPSBuIDApIChjYXIgcSkpKSkKIAooZGVmaW5lIChhZGQgYSBx KQogIChjb25kICgobnVsbD8gcSkKICAgICAgICAgYCgsKGxldCAoKHggYCgsYSkpKQogICAgICAg ICAgICAgIChzZXQtY2RyISB4IHgpIHgpKSkKICAgICAgICAoKG51bGw/IChjYXIgcSkpCiAgICAg ICAgIChsZXQgKCh4IGAoLGEpKSkKICAgICAgICAgICAoc2V0LWNkciEgeCB4KQogICAgICAgICAg IChzZXQtY2FyISBxIHgpCiAgICAgICAgICAgcSkpCiAgICAgICAgOyB0aGUgQ0wgdmVyc2lvbiBo YWQgYSB1c2VsZXNzIHNldC1jYXIhIGluIHRoZSBuZXh0IGxpbmUgKHdjKQogICAgICAgIChlbHNl IChzZXQtY2RyISAoY2FyIHEpIGAoLGEgLEAoY2RyIChjYXIgcSkpKSkKICAgICAgICAgICAgICBx KSkpCiAKKGRlZmluZSAoY3JlYXRlLXN0cnVjdHVyZSBuKQogIChsZXQgKChhIGAoLChtYWtlLW5v ZGUpKSkpCiAgICAoZG8gKChtICgtIG4gMSkgKC0gbSAxKSkKICAgICAgICAgKHAgYSkpCiAgICAg ICAgKCg9IG0gMCkKICAgICAgICAgKHNldCEgYSBgKCwoYmVnaW4gKHNldC1jZHIhIHAgYSkgcCkp KQogICAgICAgICAoZG8gKCh1bnVzZWQgYSkKICAgICAgICAgICAgICAodXNlZCAoYWRkICh0cmF2 ZXJzZS1yZW1vdmUgMCBhKSAnKCkpKQogICAgICAgICAgICAgICh4ICcoKSkKICAgICAgICAgICAg ICAoeSAnKCkpKQogICAgICAgICAgICAgKChudWxsPyAoY2FyIHVudXNlZCkpCiAgICAgICAgICAg ICAgKGZpbmQtcm9vdCAodHJhdmVyc2Utc2VsZWN0IDAgdXNlZCkgbikpCiAgICAgICAgICAgKHNl dCEgeCAodHJhdmVyc2UtcmVtb3ZlIChyZW1haW5kZXIgKHRyYXZlcnNlLXJhbmRvbSkgbikgdW51 c2VkKSkKICAgICAgICAgICAoc2V0ISB5ICh0cmF2ZXJzZS1zZWxlY3QgKHJlbWFpbmRlciAodHJh dmVyc2UtcmFuZG9tKSBuKSB1c2VkKSkKICAgICAgICAgICAoYWRkIHggdXNlZCkKICAgICAgICAg ICAobm9kZS1zb25zLXNldCEgeSBgKCx4ICxAKG5vZGUtc29ucyB5KSkpCiAgICAgICAgICAgKG5v ZGUtcGFyZW50cy1zZXQhIHggYCgseSAsQChub2RlLXBhcmVudHMgeCkpKSApKQogICAgICAoc2V0 ISBhIChjb25zIChtYWtlLW5vZGUpIGEpKSkpKQogCihkZWZpbmUgKGZpbmQtcm9vdCBub2RlIG4p CiAgKGRvICgobiBuICgtIG4gMSkpKQogICAgICAoKG9yICg9IG4gMCkgKG51bGw/IChub2RlLXBh cmVudHMgbm9kZSkpKQogICAgICAgbm9kZSkKICAgIChzZXQhIG5vZGUgKGNhciAobm9kZS1wYXJl bnRzIG5vZGUpKSkpKQogCihkZWZpbmUgKHRyYXZlcnMgbm9kZSBtYXJrKQogIChjb25kICgoZXE/ IChub2RlLW1hcmsgbm9kZSkgbWFyaykgI2YpCiAgICAgICAgKGVsc2UgKG5vZGUtbWFyay1zZXQh IG5vZGUgbWFyaykKICAgICAgICAgICAoc2V0ISAqY291bnQqICgrIDEgKmNvdW50KikpCiAgICAg ICAgICAgKG5vZGUtZW50cnkxLXNldCEgbm9kZSAobm90IChub2RlLWVudHJ5MSBub2RlKSkpCiAg ICAgICAgICAgKG5vZGUtZW50cnkyLXNldCEgbm9kZSAobm90IChub2RlLWVudHJ5MiBub2RlKSkp CiAgICAgICAgICAgKG5vZGUtZW50cnkzLXNldCEgbm9kZSAobm90IChub2RlLWVudHJ5MyBub2Rl KSkpCiAgICAgICAgICAgKG5vZGUtZW50cnk0LXNldCEgbm9kZSAobm90IChub2RlLWVudHJ5NCBu b2RlKSkpCiAgICAgICAgICAgKG5vZGUtZW50cnk1LXNldCEgbm9kZSAobm90IChub2RlLWVudHJ5 NSBub2RlKSkpCiAgICAgICAgICAgKG5vZGUtZW50cnk2LXNldCEgbm9kZSAobm90IChub2RlLWVu dHJ5NiBub2RlKSkpCiAgICAgICAgICAgKGRvICgoc29ucyAobm9kZS1zb25zIG5vZGUpIChjZHIg c29ucykpKQogICAgICAgICAgICAgICAoKG51bGw/IHNvbnMpICNmKQogICAgICAgICAgICAgKHRy YXZlcnMgKGNhciBzb25zKSBtYXJrKSkpKSkKIAooZGVmaW5lICh0cmF2ZXJzZSByb290KQogIChs ZXQgKCgqY291bnQqIDApKQogICAgKHRyYXZlcnMgcm9vdCAoYmVnaW4gKHNldCEgKm1hcmtlciog KG5vdCAqbWFya2VyKikpICptYXJrZXIqKSkKICAgICpjb3VudCopKQogCihkZWZpbmUgKGluaXQt dHJhdmVyc2UpICA7IENoYW5nZWQgZnJvbSBkZWZtYWNybyB0byBkZWZ1biBcYnMKICAoc2V0ISAq cm9vdCogKGNyZWF0ZS1zdHJ1Y3R1cmUgMTAwKSkKICAjZikKIAooZGVmaW5lIChydW4tdHJhdmVy c2UpICA7IENoYW5nZWQgZnJvbSBkZWZtYWNybyB0byBkZWZ1biBcYnMKICAoZG8gKChpIDUwICgt IGkgMSkpKQogICAgICAoKD0gaSAwKSkKICAgICh0cmF2ZXJzZSAqcm9vdCopCiAgICAodHJhdmVy c2UgKnJvb3QqKQogICAgKHRyYXZlcnNlICpyb290KikKICAgICh0cmF2ZXJzZSAqcm9vdCopCiAg ICAodHJhdmVyc2UgKnJvb3QqKSkpCgo7OzsgdG8gaW5pdGlhbGl6ZSwgY2FsbDogIChpbml0LXRy YXZlcnNlKQo7OzsgdG8gcnVuIHRyYXZlcnNlLCBjYWxsOiAgKHJ1bi10cmF2ZXJzZSkKCihpbml0 LXRyYXZlcnNlKQoKKGRlZmluZSAobWFpbiAuIGFyZ3MpCiAgKHJ1bi1iZW5jaG1hcmsKICAgICJ0 cmF2MiIKICAgIHRyYXYyLWl0ZXJzCiAgICAobGFtYmRhIChyZXN1bHQpICN0KQogICAgKGxhbWJk YSAoKSAobGFtYmRhICgpIChydW4tdHJhdmVyc2UpKSkpKQoobWFpbikKOyB0cmF2MiB0cmF2Mgo= ------=_20090420010245_50081--