From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.emacs.gnus.general/59981 Path: news.gmane.org!not-for-mail From: sigurd@12move.de (Karl =?iso-8859-1?Q?Pfl=E4sterer?=) Newsgroups: gmane.emacs.gnus.general Subject: Gnus-FAQ: xml to texi with Scheme prog Date: Wed, 09 Mar 2005 20:41:56 +0100 Organization: Lemis World Message-ID: Reply-To: khp@pflaesterer.de (Karl =?iso-8859-1?Q?Pfl=E4sterer?=) NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: sea.gmane.org 1110468110 25321 80.91.229.2 (10 Mar 2005 15:21:50 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Thu, 10 Mar 2005 15:21:50 +0000 (UTC) Original-X-From: ding-owner+M8522@lists.math.uh.edu Thu Mar 10 16:21:50 2005 Original-Received: from malifon.math.uh.edu ([129.7.128.13] ident=mail) by ciao.gmane.org with esmtp (Exim 4.43) id 1D9PLo-0006gd-7f for ding-account@gmane.org; Thu, 10 Mar 2005 16:13:26 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.math.uh.edu ident=lists) by malifon.math.uh.edu with smtp (Exim 3.20 #1) id 1D9PGW-00057M-00; Thu, 10 Mar 2005 09:07:56 -0600 Original-Received: from util2.math.uh.edu ([129.7.128.23]) by malifon.math.uh.edu with esmtp (Exim 3.20 #1) id 1D978p-0003SC-00 for ding@lists.math.uh.edu; Wed, 09 Mar 2005 13:46:47 -0600 Original-Received: from quimby.gnus.org ([80.91.224.244]) by util2.math.uh.edu with esmtp (Exim 4.30) id 1D978m-0008HR-GG for ding@lists.math.uh.edu; Wed, 09 Mar 2005 13:46:44 -0600 Original-Received: from news by quimby.gnus.org with local (Exim 3.35 #1 (Debian)) id 1D978l-00036o-00 for ; Wed, 09 Mar 2005 20:46:43 +0100 Original-To: ding@gnus.org Original-Path: wintendo.pflaesterer.de!not-for-mail Original-Newsgroups: gnus.ding Original-Lines: 342 Original-NNTP-Posting-Host: b85d8.b.pppool.de Original-X-Trace: quimby.gnus.org 1110397603 11952 213.7.133.216 (9 Mar 2005 19:46:43 GMT) Original-X-Complaints-To: usenet@quimby.gnus.org Original-NNTP-Posting-Date: Wed, 9 Mar 2005 19:46:43 +0000 (UTC) Mail-Copies-To: never User-Agent: Gnus/5.110003 (No Gnus v0.3) Hamster/2.0.6.0 Cancel-Lock: sha1:7j73jhWBCZ2mXI5oTzaSwJijlz8= X-Spam-Score: -4.9 (----) Precedence: bulk Original-Sender: ding-owner@lists.math.uh.edu X-MailScanner-From: ding-owner+m8522@lists.math.uh.edu X-MailScanner-To: ding-account@gmane.org Xref: news.gmane.org gmane.emacs.gnus.general:59981 X-Report-Spam: http://spam.gmane.org/gmane.emacs.gnus.general:59981 --=-=-= Hi, as some of you may know the Gnus FAQ exists at the moment in two parallel versions which have to be synchronized manually: a XML version (which should be the master version) and a Texi version (which should get automagically created out of the XML version but is written by hand). To achieve the transformation I wrote a program in Scheme (I used PLT Scheme) which uses the SSAX lib to parse the XML data. I hope the program may be of use so it's easier for the different versions of the FAQ to stay in sync. I attach the program and a shell script which can get used to run the program from the command line. --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=xml2texi.scm Content-Transfer-Encoding: base64 Content-Description: xml2texi.scm KHJlcXVpcmUgKGxpYiAic3NheC5zcyIgInNzYXgiKQ0KICAgICAgICAgKGxp YiAic3hwYXRoLnNzIiAic3NheCIpDQogICAgICAgICAobGliICJzeG1sLXRy ZWUtdHJhbnMuc3MiICJzc2F4IikNCiAgICAgICAgIChsaWIgInByZWdleHAu c3MiKQ0KICAgICAgICAgKGxpYiAibGlzdC5zcyIpDQogICAgICAgICAobGli ICJldGMuc3MiKQ0KICAgICAgICAgKHJlbmFtZSAobGliICIxLnNzIiAic3Jm aSIpIGxpc3QtaW5kZXggbGlzdC1pbmRleCkNCiAgICAgICAgIChyZW5hbWUg KGxpYiAiMTMuc3MiICJzcmZpIikgc3RyaW5nLWpvaW4gc3RyaW5nLWpvaW4p KQ0KDQoNCjs7OyBDb25zdGFudHMNCjs7IEluIGFuZCBvdXQ7IGZvciBjb252 ZW5pZW5jZSBpZiB3ZSB3b3JrIGZyb20gdGhlIFJFUEwNCihkZWZpbmUgK2lu ZmlsZSsgImdudXMtZmFxLnhtbCIpDQooZGVmaW5lICtvdXRmaWxlKyAiZ251 cy1mYXEudGV4aSIpDQoNCjs7IFRoZXNlIGFyZSB0aGUgbmFtZXMgb2YgdGhl IHNlY3Rpb25zLiAgVGhlc2UgdmFyaWFibGVzIGhvbGQgdGhlIG5hbWVzDQo7 OyBvZiB0aGUgc2VjdGlvbnMgd2hlcmUgbnVtYmVyaW5nIHN0YXJ0cyBpbiB0 aGUgbWFpbiBtZW51Lg0KOzsgV2hlcmUgd2Ugc3RhcnQgbnVtYmVyaW5nIGlu IG1lbnUNCihkZWZpbmUgK2ZpcnN0LW51bWJlcmVkLXNlY3Rpb24rICJJbnN0 YWxsYXRpb24gRkFRIikNCjs7IFdoZXJlIHdlIGVuZCBudW1iZXJpbmcgaW4g bWVudQ0KKGRlZmluZSArbGFzdC1udW1iZXJlZC1zZWN0aW9uKyAiVHVuaW5n IEdudXMiKQ0KDQo7OyBXaGljaCBzZWN0aW9ucyBub3QgdG8gaW5jbHVkZTsg aS5lLiBub3QgdG8gbmFtZSBhIG5vZGUuDQooZGVmaW5lICtpZ25vcmVkLXNl Y3Rpb25zKyAnKCJGcmVxdWVudGx5IEFza2VkIFF1ZXN0aW9ucyB3aXRoIEFu c3dlcnMiKSkNCg0KOzsgTmFtZXMgb2YgbWVudSBlbnRyaWVzIGFuZCB0aGUg Y29ycmVzcG9uZGluZyBkZXNjcmlwdGlvbnMgKHVzZWQgaW4gdGhlDQo7OyBt YWluIG1lbnUpLg0KKGRlZmluZSArc2VjdGlvbi1jb21tZW50cy1hbGlzdCsN CiAgICAnKCgiSW50cm9kdWN0aW9uIiAuICJBYm91dCBHbnVzIGFuZCB0aGlz IEZBUS4iKQ0KICAgICAgKCJJbnN0YWxsYXRpb24gRkFRIiAuICJJbnN0YWxs YXRpb24gb2YgR251cy4iKQ0KICAgICAgKCJTdGFydHVwIC8gR3JvdXAgYnVm ZmVyIiAuICJTdGFydCB1cCBxdWVzdGlvbnMgYW5kIHRoZSBmaXJzdCBidWZm ZXIgR251cyBzaG93cyB5b3UuIikNCiAgICAgICgiR2V0dGluZyBNZXNzYWdl cyIgLiAiTWFraW5nIEdudXMgcmVhZCB5b3VyIG1haWwgYW5kIG5ld3MuIikN CiAgICAgICgiUmVhZGluZyBtZXNzYWdlcyIgLiAiSG93IHRvIGVmZmljaWVu dGx5IHJlYWQgbWVzc2FnZXMuIikNCiAgICAgICgiQ29tcG9zaW5nIG1lc3Nh Z2VzIiAuICJDb21wb3NpbmcgbWFpbHMgb3IgVXNlbmV0IHBvc3RpbmdzLiIp DQogICAgICAoIk9sZCBtZXNzYWdlcyIgLiAiSW1wb3J0aW5nLCBhcmNoaXZp bmcsIHNlYXJjaGluZyBhbmQgZGVsZXRpbmcgbWVzc2FnZXMuIikNCiAgICAg ICgiR251cyBpbiBhIGRpYWwtdXAgZW52aXJvbm1lbnQiIC4gIlJlYWRpbmcg bWFpbCBhbmQgbmV3cyB3aGlsZSBvZmZsaW5lLiIpDQogICAgICAoIkdldHRp bmcgaGVscCIgLiAiV2hlbiB0aGlzIEZBUSBpc24ndCBlbm91Z2guIikNCiAg ICAgICgiVHVuaW5nIEdudXMiIC4gICJIb3cgdG8gbWFrZSBHbnVzIGZhc3Rl ci4iKQ0KICAgICAgKCJHbG9zc2FyeSIgLiAiVGVybXMgdXNlZCBpbiB0aGUg RkFRIGV4cGxhaW5lZC4iKSkpDQoNCjs7IFdoZXJlIHRvIGJyZWFrIGRlc2Ny aXB0aW9ucyBpbiBtZW51cw0KKGRlZmluZSArd2lkdGgrIDcyKQ0KDQo7OyBU aGUgYm9pbGVycGxhdGUgdGV4dCB3ZSBpbmNsdWRlIGJlZm9yZSB0aGUgZG9j dW1lbnQNCihkZWZpbmUgYm9pbGVycGxhdGUNCiAgICAobGFtYmRhICh0aXRl bCkNCiAgICAgIChmb3JtYXQNCiAgICAgICAiXA0KQGMgXFxpbnB1dCB0ZXhp bmZvIEBjIC0qLXRleGluZm8tKi1+JVwNCkBjIFVuY29tbWVudCAxc3QgbGlu ZSBiZWZvcmUgdGV4aW5nIHRoaXMgZmlsZSBhbG9uZS5+JVwNCkBjICUqKnN0 YXJ0IG9mIGhlYWRlcn4lXA0KQGMgQ29weXJpZ2h0IChDKSAxOTk1LCAyMDAx LCAyMDAzLCAyMDA0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLn4l XA0KQHNldGZpbGVuYW1lIGdudXMtZmFxLmluZm9+JVwNCkBzZXR0aXRsZSB+ QX4lXA0KQGMgJSoqZW5kIG9mIGhlYWRlcn4lXA0KIiB0aXRlbCkpKQ0KDQo7 OzsgTGl0dGxlIEhlbHBlcnMNCjs7IChhIGIgYykgLT4gKDEgMiAzKQ0KKGRl ZmluZSAobnVtYmVyLWxpc3Qgc3RhcnQgaW5jIGxzdCkNCiAgICAobGV0IGxv b3AgKChsc3QgbHN0KSAobHZsIHN0YXJ0KSAoYWNjICcoKSkpDQogICAgICAg ICAoaWYgKG51bGw/IGxzdCkNCiAgICAgICAgICAgKHJldmVyc2UgYWNjKQ0K ICAgICAgICAgICAobG9vcCAoY2RyIGxzdCkgKCsgaW5jIGx2bCkgKGNvbnMg bHZsIGFjYykpKSkpDQoNCjs7IEdpdmVuIGFuIGFsaXN0IG1hZGUgb2YgcmVn ZXhwcyBhbmQgdGhlaXIgcmVwbGFjZW1lbnRzIChrZXkgYW5kIHZhbHVlDQo7 OyBhcmUgaW4gYSBwcm9wZXIgbGlzdCkgcmV0dXJucyBhIGZ1bmN0aW9uIHdo aWNoIGdpdmVuIGEgc3RyaW5nDQo7OyByZXBsYWNlcyBhbGwgb2NjdXJlbmNl cyBvZiB0aGUgcmVnZXhwcyAoZnJvbSBsZWZ0IHRvIHJpZ2h0KS4NCjs7ICgo cmUxIHJlcGwxKSAocmUyIHJlcGwyKSkgLT4gc3RyIC0+IHN0cg0KKGRlZmlu ZSBtYWtlLXJlZy1yZXBsYWNlcg0KICAgIChsYW1iZGEgKGRlZmFsaXN0KQ0K ICAgICAgKGxldCAoKGFsbHJlZyAoc3RyaW5nLWpvaW4gKG1hcCBjYXIgZGVm YWxpc3QpICJ8IikpKQ0KICAgICAgICAobGFtYmRhIChzdHIpDQogICAgICAg ICAgKGlmIChhbmQgKHN0cmluZz8gc3RyKSAocHJlZ2V4cC1tYXRjaCBhbGxy ZWcgc3RyKSkNCiAgICAgICAgICAgIChsZXQgbG9vcCAoKGxzdCBkZWZhbGlz dCkgKHN0ciBzdHIpKQ0KICAgICAgICAgICAgICAgICAoaWYgKG51bGw/IGxz dCkNCiAgICAgICAgICAgICAgICAgICBzdHINCiAgICAgICAgICAgICAgICAg ICAobG9vcCAoY2RyIGxzdCkgKHByZWdleHAtcmVwbGFjZSogKGNhYXIgbHN0 KSBzdHIgKGNhZGFyIGxzdCkpKSkpDQogICAgICAgICAgICBzdHIpKSkpKQ0K DQooZGVmaW5lIGVzY2FwZS10ZXhpDQogICAgKG1ha2UtcmVnLXJlcGxhY2Vy ICcoKCJAIiAgIkBAIikgKCJ7IiAgIkB7IikgKCJ9IiAgIkB9IikpKSkNCg0K KGRlZmluZSBub3JtYWxpemUNCiAgICAoY29tcG9zZSBlc2NhcGUtdGV4aSAo bWFrZS1yZWctcmVwbGFjZXIgYCgoLChmb3JtYXQgIn4lXFxzKyIpICwoZm9y bWF0ICJ+JSIpKSkpKSkNCg0KKGRlZmluZSBub3JtYWxpemUtZXhhbXBsZQ0K ICAgIChjb21wb3NlIGVzY2FwZS10ZXhpIChtYWtlLXJlZy1yZXBsYWNlciAn KCgiXlxccyt8XFxzKyQiICIiKSkpKSkNCg0KKGRlZmluZSB0cmltLXdzICht YWtlLXJlZy1yZXBsYWNlciAnKCgiXlxccyt8XFxzKyQiICIiKSkpKQ0KDQoo ZGVmaW5lIGZpbHRlci1zZWN0DQogICAgKGxhbWJkYSAobHN0KQ0KICAgICAg KGZpbHRlciAobGFtYmRhIChlKSAobm90IChtZW1iZXIgZSAraWdub3JlZC1z ZWN0aW9ucyspKSkgbHN0KSkpDQoNCjs7OzsgUGFyYQ0KKGRlZmluZSBmb3Jt YXQtcGFyYQ0KICAgIChsYW1iZGEgKGxpc3Qtb2YtZW50cmllcykNCiAgICAg IChmb3JtYXQgIn4lfkF+JSIgKHRyaW0td3MgKGFwcGx5IHN0cmluZy1hcHBl bmQgbGlzdC1vZi1lbnRyaWVzKSkpKSkNCg0KOzs7OyBRdWVzdGlvbnMNCihk ZWZpbmUgZm9ybWF0LXEtbGV2ZWwNCiAgICAobGFtYmRhIChsZXZlbCkNCiAg ICAgIChhcHBseSBmb3JtYXQgIlt+QS5+QV0iIChyZXZlcnNlIGxldmVsKSkp KQ0KDQooZGVmaW5lIGZvcm1hdC1xLWRlc2NyaXB0aW9uDQogICAgKGNvbXBv c2UgdHJpbS13cyAobWFrZS1yZWctcmVwbGFjZXIgYCgoLChmb3JtYXQgIn4l IikgIiAiKSkpKSkNCg0KOzs7OyBCdWlsZGluZyBub2Rlcw0KOzsgY3Vyci1u b2RlIHVwLW5vZGUgKGxpc3Qgb2Ygbm9kZXMpIChsaXN0IG9mIG5vZGUgbmFt ZXMpIC0+DQo7OyAgICgoY3Vyci1ub2RlIGN1cnItbmFtZSkgKG5leHQgbmV4 dC1uYW1lKSAocHJldiBwcmV2LW5hbWUpIHVwKQ0KKGRlZmluZSAoZmluZC1w cmV2LW5leHQtdXAgY3VyciB1cCBzZWFyY2gtbGlzdCBuYW1lLWxpc3QpDQog ICAgKGRvICgobHN0ICAgc2VhcmNoLWxpc3QgKGNkciBsc3QpKQ0KICAgICAg ICAgKHJsc3QgIG5hbWUtbGlzdCAgIChjZHIgcmxzdCkpDQogICAgICAgICAo cHJldiAgdXAgICAoY2FyIGxzdCkpDQogICAgICAgICAocHJldm4gdXAgICAo Y2FyIHJsc3QpKSkNCiAgICAgICAgKChvciAobnVsbD8gbHN0KSAoZXF1YWw/ IChjYXIgbHN0KSBjdXJyKSkNCiAgICAgICAgICh2YWx1ZXMgKGNvbnMgY3Vy ciAoaWYgKHBhaXI/IHJsc3QpIChjYXIgcmxzdCkgY3VycikpDQogICAgICAg ICAgICAgICAgIChpZiAoYW5kIChwYWlyPyBsc3QpIChwYWlyPyAoY2RyIGxz dCkpKSA7bmV4dA0KICAgICAgICAgICAgICAgICAgIChjb25zIChjYWRyIGxz dCkgKGNhZHIgcmxzdCkpDQogICAgICAgICAgICAgICAgICAgKGNvbnMgIiIg IiIpKQ0KICAgICAgICAgICAgICAgICAoY29ucyBwcmV2IHByZXZuKQ0KICAg ICAgICAgICAgICAgICB1cCkpKSkNCg0KDQooZGVmaW5lIChmb3JtYXQtbm9k ZSBzZWN0aW9uIHRpdGxlIHVwIGxzdC1vZi1ub2RlcyBsc3Qtb2YtbmFtZXMp DQogICAgKGlmIChtZW1iZXIgdGl0bGUgK2lnbm9yZWQtc2VjdGlvbnMrKQ0K ICAgICAgKCkNCiAgICAgIChjYWxsLXdpdGgtdmFsdWVzDQogICAgICAgKGxh bWJkYSAoKSAoZmluZC1wcmV2LW5leHQtdXAgdGl0bGUgdXAgbHN0LW9mLW5v ZGVzIGxzdC1vZi1uYW1lcykpDQogICAgICAgKGxhbWJkYSAoY3Vycm4gcHJl dm4gbmV4dG4gdXApDQogICAgICAgICAoZm9ybWF0ICJ+JUBub2RlIH5BLCB+ QSwgfkEsIH5BfiV+QSB+QX4lIg0KICAgICAgICAgICAgICAgICAoY2RyIGN1 cnJuKSAoY2RyIHByZXZuKSAoY2RyIG5leHRuKSB1cA0KICAgICAgICAgICAg ICAgICBzZWN0aW9uIDs7IEBzdWJzZWN0aW9uIGV0Yy4NCiAgICAgICAgICAg ICAgICAgKGlmIChwYWlyPyB0aXRsZSkNCiAgICAgICAgICAgICAgICAgICAo YXBwbHkgZm9ybWF0ICJ+QS5+QSIgKHJldmVyc2UgdGl0bGUpKQ0KICAgICAg ICAgICAgICAgICAgIHRpdGxlKSkpKSkpDQoNCjs7OzsgQnVpbGRpbmcgbWVu dXMNCg0KKGRlZmluZSBmb3JtYXQtbWVudQ0KICAgIChsYW1iZGEgKGFsaXN0 LW9mLWVudHJpZXMpDQogICAgICAobGV0ICgobGVuIChhcHBseSBtYXggKG1h cCAobGFtYmRhIChzKSAoc3RyaW5nLWxlbmd0aCAoY2FyIHMpKSkgYWxpc3Qt b2YtZW50cmllcykpKSkNCiAgICAgICAgKGZvcm1hdCAifiVAbWVudX4lfkFA ZW5kIG1lbnV+JSINCiAgICAgICAgICAgICAgICAoYXBwbHkgc3RyaW5nLWFw cGVuZA0KICAgICAgICAgICAgICAgICAgICAgICAobWFwIChsYW1iZGEgKGUp DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9ybWF0ICIqIH5B Ojp+QX5BfiUiDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChjYXIgZSkgO3RoZSBlbnRyeQ0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobWFrZS1zdHJpbmcgKC0gbGVuIChzdHJpbmct bGVuZ3RoIChjYXIgZSkpIC0zKSAjXCApDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChmb3JtYXQtbWVudS1kZXNjcmlwdGlvbiAo Y2RyIGUpICt3aWR0aCsgKCsgbGVuIDcpKSkpDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgYWxpc3Qtb2YtZW50cmllcykpKSkpKQ0KDQoNCihkZWZp bmUgZm9ybWF0LW1lbnUtZGVzY3JpcHRpb24NCiAgICAobGFtYmRhIChlbnRy eSB3aWR0aCBvZmZzZXQpDQogICAgICAobGV0IGxvb3AgKChsc3QgKHByZWdl eHAtc3BsaXQgIlxccyIgZW50cnkpKSAobGVuIDApIChhY2MgJygpKSkNCiAg ICAgICAgICAgKGlmIChudWxsPyBsc3QpDQogICAgICAgICAgICAgKGFwcGx5 IHN0cmluZy1hcHBlbmQgKHJldmVyc2UhIGFjYykpDQogICAgICAgICAgICAg KGxldCAoKHNsZW4gKCsgMSAoc3RyaW5nLWxlbmd0aCAoY2FyIGxzdCkpKSkp IDsgKzEgYmVjYXVzZSBvZiB3aGl0ZXNwYWNlIGFkZGVkIGxhdGVyDQogICAg ICAgICAgICAgICAoaWYgKD4gKCsgc2xlbiBsZW4pICgtIHdpZHRoIG9mZnNl dCkpDQogICAgICAgICAgICAgICAgIChsb29wIChjZHIgbHN0KSAwIChjb25z DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9ybWF0 ICJ+JX5BIH5BIiAgICAgICAgICAgICAgICAgOyBzdGFydCBhIG5ldyBsaW5l DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChtYWtlLXN0cmluZyBvZmZzZXQgI1wgKSA7IHRoZSB3aGl0ZXNwYWNlDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChj YXIgbHN0KSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFjYykpDQogICAgICAgICAgICAgICAgIChsb29wIChjZHIgbHN0KSAoKyBz bGVuIGxlbikgKGNvbnMgKGZvcm1hdCAiIH5BIihjYXIgbHN0KSkgYWNjKSkp KSkpKSkNCg0KDQooZGVmaW5lIGZvcm1hdC1zdWItdGl0bGVzDQogICAgKGxh bWJkYSAobGlzdC1vZi1lbnRyaWVzIGZpcnN0LW51bWJlci1lbnRyeSBsYXN0 LW51bWJlci1lbnRyeSkNCiAgICAgIChsZXQgKChvZmZzZXQgKG9yIChsaXN0 LWluZGV4IChsYW1iZGEgKGUpIChlcXVhbD8gZSBmaXJzdC1udW1iZXItZW50 cnkpKSBsaXN0LW9mLWVudHJpZXMpIDApKQ0KICAgICAgICAgICAgKGVuZCAo b3IgKGxpc3QtaW5kZXggKGxhbWJkYSAoZSkgKGVxdWFsPyBlIGxhc3QtbnVt YmVyLWVudHJ5KSkgbGlzdC1vZi1lbnRyaWVzKQ0KICAgICAgICAgICAgICAg ICAgICAgKGxlbmd0aCBsaXN0LW9mLWVudHJpZXMpKSkpDQogICAgICAobWFw IChsYW1iZGEgKGVudHJ5IGluZCkNCiAgICAgICAgICAgICAoZm9ybWF0ICJG QVEgfkEgfkEiDQogICAgICAgICAgICAgICAgICAgICAoaWYgKDw9IG9mZnNl dCBpbmQgZW5kKQ0KICAgICAgICAgICAgICAgICAgICAgICAoZm9ybWF0ICJ+ QSAtIiAoLSBpbmQgb2Zmc2V0IC0xKSkgO251bWJlcmVkIGVudHJ5DQogICAg ICAgICAgICAgICAgICAgICAgICItIikNCiAgICAgICAgICAgICAgICAgICAg IGVudHJ5KSkNCiAgICAgICAgICAgbGlzdC1vZi1lbnRyaWVzIChudW1iZXIt bGlzdCAwIDEgbGlzdC1vZi1lbnRyaWVzKSkpKSkNCg0KOzs7OyBXZSBudW1i ZXIgc29tZSBzZWN0aW9ucyBmaXJzdA0KDQo7OyBudGFncyBpcyBhbiBhbGlz dCA9PiAoKHRhZyBzdGFydGNvdW50ZXIgaW5jcmVtZW50KQ0KKGRlZmluZSAo bnVtYmVyLW5vZGVzIHRyZWUgbGV2ZWwgbnRhZ3MpDQogICAgKGlmIChudWxs PyBudGFncykNCiAgICAgIHRyZWUNCiAgICAgIChsZXQqICgodmFscyAgKGNh ciBudGFncykpDQogICAgICAgICAgICAgKG50YWcgIChjYXIgdmFscykpDQog ICAgICAgICAgICAgKHN0YXJ0IChzZWNvbmQgdmFscykpDQogICAgICAgICAg ICAgKGluYyAgICh0aGlyZCB2YWxzKSkNCiAgICAgICAgICAgICAobnRhZ3Mg KGNkciBudGFncykpKQ0KDQogICAgICAgIChtYXANCiAgICAgICAgIChsYW1i ZGEgKG5vZGUgc3VibGV2ZWwpDQogICAgICAgICAgIChwcmUtcG9zdC1vcmRl cg0KICAgICAgICAgICAgbm9kZQ0KICAgICAgICAgICAgYCgoLG50YWcgKnBy ZW9yZGVyKg0KICAgICAgICAgICAgICAgICAgICAgLiAsKGxhbWJkYSAodGFn IC4gZW50cnkpDQogICAgICAgICAgICAgICAgICAgICAgICAgIGAoLHRhZyAs KGNvbnMgc3VibGV2ZWwgbGV2ZWwpDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAsQChudW1iZXItbm9kZXMgZW50cnkgKGNvbnMgc3VibGV2 ZWwgbGV2ZWwpIG50YWdzKSkpKQ0KICAgICAgICAgICAgICAoKmRlZmF1bHQq IC4gLChsYW1iZGEgeCB4KSkNCiAgICAgICAgICAgICAgKCp0ZXh0KiAuICwo bGFtYmRhICh0YWcgcykgcykpKSkpDQogICAgICAgICB0cmVlIChudW1iZXIt bGlzdCBzdGFydCBpbmMgdHJlZSkpKSkpDQoNCg0KOzsodHJhbnNmb3JtLT5u dW1iZXJlZCBmYXFzeG1sICcoc2VjdGlvbiBhcnRpY2xlIHFhbmRhc2V0ICgo cWFuZGFkaXYgMSAxKSAocWFuZGFlbnRyeSAwIDEpKSkpDQooZGVmaW5lIHRy YW5zZm9ybS0+bnVtYmVyZWQNCiAgICAobGFtYmRhIChzeG1sIHJ1bGVzKQ0K ICAgICAgKGxldCogKChydWxlcyAocmV2ZXJzZSBydWxlcykpDQogICAgICAg ICAgICAgKHJ1bGUgKGNhciBydWxlcykpDQogICAgICAgICAgICAgKG50YWcg KGNhZHIgcnVsZXMpKQ0KICAgICAgICAgICAgIChzdHlsZXMgKG1hcCAobGFt YmRhICh0YWcpIChjb25zIHRhZyAobGFtYmRhIHggeCkpKSAobGlzdC10YWls IHJ1bGVzIDIpKSkpDQogIChwcmUtcG9zdC1vcmRlcg0KICAgc3htbA0KICAg ICBgKCgqZGVmYXVsdCogKnByZW9yZGVyKiAuICwobGFtYmRhIHggeCkpDQog ICAgICAgKCpUT1AqIC4gLChsYW1iZGEgeCB4KSkNCiAgICAgICAsQHN0eWxl cw0KICAgICAgICgsbnRhZyAqcHJlb3JkZXIqDQogICAgICAgIC4gLChsYW1i ZGEgKHRhZyAuIG5vZGVzKQ0KICAgICAgICAgICAgIChjb25zIHRhZyAobnVt YmVyLW5vZGVzIG5vZGVzICcoKSBydWxlKSkpKSkpKSkpDQoNCg0KOzs7OyBU aGUgbWFpbiB0cmFuc2Zvcm0gZnVuY3Rpb24NCg0KKGRlZmluZSAodHJhbnNm b3JtIHN4bWwpDQogICAgKGxldCogKChzeG1sICh0cmFuc2Zvcm0tPm51bWJl cmVkDQogICAgICAgICAgICAgICAgICBzeG1sICcoc2VjdGlvbiBhcnRpY2xl IHFhbmRhc2V0ICgocWFuZGFkaXYgMSAxKSAocWFuZGFlbnRyeSAwIDEpKSkp KQ0KICAgICAgICAgICAocWFuZGFkaXZ0aXRsZXMgKGZpbHRlci1zZWN0ICht YXAgc2Vjb25kICgoc3hwYXRoICcoLy8gcWFuZGFkaXYgdGl0bGUpKSBzeG1s KSkpKQ0KICAgICAgICAgICAoZnFhbmRhZGl2dGl0bGVzIChmb3JtYXQtc3Vi LXRpdGxlcyBxYW5kYWRpdnRpdGxlcyAiIiAiIikpDQogICAgICAgICAgIChz dWJ0aXRsZXMgKGZpbHRlci1zZWN0IChhcHBlbmQgKG1hcCBzZWNvbmQgKChz eHBhdGggJygvLyBzZWN0aW9uIHRpdGxlKSkgc3htbCkpDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcWFuZGFkaXZ0aXRs ZXMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAobWFwIHNlY29uZCAoKHN4cGF0aCAnKC8vIGdsb3NzYXJ5IHRpdGxlKSkg c3htbCkpKSkpDQogICAgICAgICAgIChmc3VidGl0bGVzIChmb3JtYXQtc3Vi LXRpdGxlcyBzdWJ0aXRsZXMgK2ZpcnN0LW51bWJlcmVkLXNlY3Rpb24rDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArbGFz dC1udW1iZXJlZC1zZWN0aW9uKykpDQogICAgICAgICAgIChxdWVzdGxldmVs IChtYXAgc2Vjb25kICgoc3hwYXRoICcoYXJ0aWNsZSBzZWN0aW9uIHFhbmRh c2V0IHFhbmRhZGl2IHFhbmRhZW50cnkpKSBzeG1sKSkpDQogICAgICAgICAg ICh1cDEgKGNhZGFyICgoc3hwYXRoICcoYXJ0aWNsZSBhcnRpY2xlaW5mbyB0 aXRsZSkpIHN4bWwpKSkNCg0KOzs7ICoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KOzs7IFRo ZSBTdHlsZSBTaGVldA0KOzs7ICoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KICAgICAgICAg ICAoc3R5bGUtc2hlZXQNCiAgICAgICAgICAgICBgKA0KOzs7ICoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKg0KOzs7IEZpcnN0IHRoZSBTWE1MIHNwZWNpYWwgbWFya2Vycw0K Ozs7ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKg0KICAgICAgICAgICAgICAgOzsgKlRPUCog KlBJKiBAIGFyZSBtYXJrZXJzIGZyb20gU1hNTA0KICAgICAgICAgICAgICAg KCpUT1AqIC4gLChsYW1iZGEgKHRhZyAuIHgpIHgpKQ0KICAgICAgICAgICAg ICAgKCpQSSogLiAsKGxhbWJkYSBfICcoKSkpDQogICAgICAgICAgICAgICAo QCAuICwobGFtYmRhIF8gIiIpKQ0KDQogICAgICAgICAgICAgICA7OyBMb29r IGZvciB0aGUgZXhhbXBsZSBydWxlIHdoZXJlIHdlIG92ZXJ3cml0ZSB0aGUg KnRleHQqIHJ1bGUNCiAgICAgICAgICAgICAgIDs7IHNvIGNvZGUgZG9lc24n dCBnZXQgbWFuZ2xlZC4NCiAgICAgICAgICAgICAgICgqdGV4dCoNCiAgICAg ICAgICAgICAgICAuICwobGFtYmRhICh0YWcgc3RyaW5nKQ0KICAgICAgICAg ICAgICAgICAgICAgKG5vcm1hbGl6ZSBzdHJpbmcpKSkNCiAgICAgICAgICAg ICAgIDs7IElmIG5vdGhpbmcgZWxzZSBtYXRjaGVzDQogICAgICAgICAgICAg ICAoKmRlZmF1bHQqIC4gLChsYW1iZGEgeCB4KSkNCjs7OyAqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioNCjs7OyBOb3cgdG8gdGhlIHRhZ3Mgb2Ygb3VyIEZBUQ0KOzs7ICoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKg0KICAgICAgICAgICAgICAgKGFydGljbGUgLiAsKGxh bWJkYSAodGFnIC4gc2VjdHMpDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChjb25zIChib2lsZXJwbGF0ZSB1cDEpIHNlY3RzKSkpDQoNCiAgICAg ICAgICAgICAgIChhcnRpY2xlaW5mbw0KICAgICAgICAgICAgICAgICgoKmRl ZmF1bHQqIC4gLChsYW1iZGEgXyAnKCkpKQ0KICAgICAgICAgICAgICAgICAo dGl0bGUNCiAgICAgICAgICAgICAgICAgIC4gLChsYW1iZGEgKHRhZyB0aXRl bCkNCiAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKG1lbnVjb20gKG1h cCAobGFtYmRhIChlbnRyeSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChsZXQgKChlIChhc3NvYyBlbnRyeSArc2Vj dGlvbi1jb21tZW50cy1hbGlzdCspKSkNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIGUgKGNkciBlKSAiIikp KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN1YnRpdGxlcykpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0 IChmb3JtYXQtbm9kZSAnQHNlY3Rpb24gdGl0ZWwgIiIgJygpICcoKSkNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9ybWF0LW1lbnUgKG1h cCBjb25zIGZzdWJ0aXRsZXMgbWVudWNvbSkpKSkpKSkNCiAgICAgICAgICAg ICAgICAuICwobGFtYmRhICh0YWcgLiBpbmZvKSBpbmZvKSkNCg0KICAgICAg ICAgICAgICAgOzsgU2VjdGlvbnMNCiAgICAgICAgICAgICAgIChhYnN0cmFj dA0KICAgICAgICAgICAgICAgIC4gLChsYW1iZGEgKHRhZyAuIHRleHQpDQog ICAgICAgICAgICAgICAgICAgICAoY29ucyAoZm9ybWF0ICJ+JUBzdWJoZWFk aW5nIEFic3RyYWN0fiUiKSB0ZXh0KSkpDQogICAgICAgICAgICAgICAoc2Vj dGlvbg0KICAgICAgICAgICAgICAgICgodGl0bGUNCiAgICAgICAgICAgICAg ICAgIC4gLChsYW1iZGEgKHRhZyB0aXRlbCkNCiAgICAgICAgICAgICAgICAg ICAgICAgKGZvcm1hdC1ub2RlICdAc3ViaGVhZGluZyB0aXRlbCB1cDEgc3Vi dGl0bGVzIGZzdWJ0aXRsZXMpKSkpDQogICAgICAgICAgICAgICAgLiAsKGxh bWJkYSAodGFnIC4gZW50cnkpIGVudHJ5KSkNCg0KICAgICAgICAgICAgICAg OzsgUSZBIHdlbGwgaXQncyBjYWxsZWQgRkFRIGlzbid0IGl0Pw0KICAgICAg ICAgICAgICAgKHFhbmRhc2V0IC4gLChsYW1iZGEgKHRhZyAuIHgpIHgpKQ0K ICAgICAgICAgICAgICAgKHFhbmRhZGl2DQogICAgICAgICAgICAgICAgKCh0 aXRsZQ0KICAgICAgICAgICAgICAgICAgLiAsKGxhbWJkYSAodGFnIHRpdGVs KSB0aXRlbCkpKQ0KICAgICAgICAgICAgICAgIC4gLChsYW1iZGEgKHRhZyBs ZXZlbCB0aXRlbCAuIGVudHJpZXMpDQogICAgICAgICAgICAgICAgICAgICAo bGV0ICgocXVlc3Rpb25zIChtYXAgY2FkciBlbnRyaWVzKSkNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgIChubGV2ZWwgKGZpbHRlciAobGFtYmRhIChs dmwpIChlcT8gKGNhciBsZXZlbCkgKGNhZHIgbHZsKSkpIHF1ZXN0bGV2ZWwp KSkNCiAgICAgICAgICAgICAgICAgICAgICAgKGxpc3QqDQogICAgICAgICAg ICAgICAgICAgICAgICAoZm9ybWF0LW5vZGUgJ0BzdWJzZWN0aW9uIHRpdGVs IHVwMSBzdWJ0aXRsZXMgZnN1YnRpdGxlcykNCiAgICAgICAgICAgICAgICAg ICAgICAgIChmb3JtYXQtbWVudSAobWFwIChsYW1iZGEgKGx2bCBxdWVzdCkN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGNvbnMgKGZvcm1hdC1xLWxldmVsIGx2bCkNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1hdC1xLWRl c2NyaXB0aW9uIHF1ZXN0KSkpDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBubGV2ZWwgcXVlc3Rpb25zKSkNCiAgICAgICAg ICAgICAgICAgICAgICAgIGVudHJpZXMpKSkpDQogICAgICAgICAgICAgICAo cWFuZGFlbnRyeQ0KICAgICAgICAgICAgICAgIC4gLChsYW1iZGEgKHRhZyBs ZXZlbCBxdWVzdGlvbiBhbnN3ZXIpDQogICAgICAgICAgICAgICAgICAgICAo bGV0ICgobm9kZXMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZp bHRlciAobGFtYmRhIChsdmwpIChlcT8gKGNhZHIgbHZsKSAoY2FkciBsZXZl bCkpKSBxdWVzdGxldmVsKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICh1cCAobGlzdC1yZWYgZnFhbmRhZGl2dGl0bGVzICgtIChjYWRyIGxldmVs KSAxKSkpKQ0KICAgICAgICAgICAgICAgICAgICAgICAobGlzdCoNCiAgICAg ICAgICAgICAgICAgICAgICAgIChmb3JtYXQtbm9kZSAiQHN1YnN1YmhlYWRp bmcgUXVlc3Rpb24iIGxldmVsIHVwIG5vZGVzIChtYXAgZm9ybWF0LXEtbGV2 ZWwgbm9kZXMpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgcXVlc3Rpb24g YW5zd2VyKSkpKQ0KICAgICAgICAgICAgICAgKHF1ZXN0aW9uIC4gLChsYW1i ZGEgKHRhZyBxdWVzdCkgcXVlc3QpKQ0KICAgICAgICAgICAgICAgKGFuc3dl cg0KICAgICAgICAgICAgICAgIC4gLChsYW1iZGEgKHRhZyAgLiBhbnN3KSAo bGlzdCogKGZvcm1hdCAifiVAc3Vic3ViaGVhZGluZyBBbnN3ZXJ+JSIpIGFu c3cpKSkNCg0KICAgICAgICAgICAgICAgOzsgUGFyYQ0KICAgICAgICAgICAg ICAgKHBhcmEgLiAsKGxhbWJkYSAodGFnIC4geCkgKGZvcm1hdC1wYXJhIHgp KSkNCiAgICAgICAgICAgICAgIChzaW1wYXJhIC4gLChsYW1iZGEgKHRhZyAu IHgpIChjb25zIChmb3JtYXQgIn4lIikgIHgpKSkNCg0KICAgICAgICAgICAg ICAgOzsgSXRlbWl6ZWQgbGlzdHMuDQogICAgICAgICAgICAgICA7OyBXZSBy ZXdyaXRlIHBhcmEgaGVyZSBiZWNhdXNlIGl0IHBsYXlzIGhlcmUgdGhlIHJv bGUgb2YgYW4NCiAgICAgICAgICAgICAgIDs7IGl0ZW0gbWFya2VyDQogICAg ICAgICAgICAgICAoaXRlbWl6ZWRsaXN0DQogICAgICAgICAgICAgICAgLiAs KGxhbWJkYSAodGFnIGxzdGl0ZW0pDQogICAgICAgICAgICAgICAgICAgICAo Zm9ybWF0ICJ+JUBpdGVtaXplIEBidWxsZXR+JX5BQGVuZCBpdGVtaXplfiUi IGxzdGl0ZW0pKSkNCiAgICAgICAgICAgICAgIChsaXN0aXRlbQ0KICAgICAg ICAgICAgICAgICgocGFyYQ0KICAgICAgICAgICAgICAgICAgLiAsKGxhbWJk YSAodGFnIGl0ZW0pDQogICAgICAgICAgICAgICAgICAgICAgIChmb3JtYXQg In4lQGl0ZW1+JX5BfiUiICh0cmltLXdzIGl0ZW0pKSkpKQ0KICAgICAgICAg ICAgICAgIC4gLChsYW1iZGEgKHRhZyAuIHgpIChzdHJpbmctam9pbiB4ICIi KSkpDQoNCiAgICAgICAgICAgICAgIDs7IFRoZSBnbG9zc2FyeS4NCiAgICAg ICAgICAgICAgIChnbG9zc2FyeQ0KICAgICAgICAgICAgICAgICgodGl0bGUg LiAsKGxhbWJkYSBfJygpKSkpDQogICAgICAgICAgICAgICAgLiAsKGxhbWJk YSAodGFnIC4gdGVybXMpDQogICAgICAgICAgICAgICAgICAgICAobGV0ICgo dGl0ZWwgKGNhZGFyICgoc3hwYXRoICcoYXJ0aWNsZSBnbG9zc2FyeSB0aXRs ZSkpIHN4bWwpKSkpDQogICAgICAgICAgICAgICAgICAgICAgIChjb25zIChm b3JtYXQtbm9kZSAnQHN1YnNlY3Rpb24gdGl0ZWwgdXAxIHN1YnRpdGxlcyBm c3VidGl0bGVzKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlz dCAoZm9ybWF0ICJ+JUB0YWJsZSBAZGZufiUiKQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB0ZXJtcw0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoZm9ybWF0ICJ+JUBlbmQgdGFibGV+JSIpKSkp KSkNCiAgICAgICAgICAgICAgIChnbG9zc2VudHJ5IC4gLChsYW1iZGEgKHRh ZyAuIGVudHJ5KSBlbnRyeSkpDQogICAgICAgICAgICAgICAoZ2xvc3N0ZXJt DQogICAgICAgICAgICAgICAgLiAsKGxhbWJkYSAodGFnIHRlcm0pDQogICAg ICAgICAgICAgICAgICAgICAoZm9ybWF0ICJ+JUBpdGVtIH5BIiB0ZXJtKSkp DQogICAgICAgICAgICAgICAoZ2xvc3NkZWYNCiAgICAgICAgICAgICAgICAu ICwobGFtYmRhICh0YWcgZGVmKSBkZWYpKQ0KDQogICAgICAgICAgICAgICA7 OyBMaXNwIGV4YW1wbGVzDQogICAgICAgICAgICAgICA7OyBXZSByZXdyaXRl IHRoZSAqdGV4dCogcnVsZSBzbyBjb2RlIHN0YXlzIHRoZSB3YXkgaXQncyB3 cml0ZW4uDQogICAgICAgICAgICAgICAocHJvZ3JhbWxpc3RpbmcNCiAgICAg ICAgICAgICAgICAoKCp0ZXh0Kg0KICAgICAgICAgICAgICAgICAgLiAsKGxh bWJkYSAodGFnIGV4YW1wbCkNCiAgICAgICAgICAgICAgICAgICAgICAgKG5v cm1hbGl6ZS1leGFtcGxlIGV4YW1wbCkpKSkNCiAgICAgICAgICAgICAgICAu ICwobGFtYmRhICh0YWcgLiBleGFtcGwpDQogICAgICAgICAgICAgICAgICAg ICAoZm9ybWF0ICJ+JUBleGFtcGxlfiV+QX4lQGVuZCBleGFtcGxlfiVAbm9p bmRlbnR+JSIgKHN0cmluZy1qb2luIGV4YW1wbCAiIikpKSkNCg0KICAgICAg ICAgICAgICAgOzsgVGhlIGxpbmsgaGFuZGxpbmcNCiAgICAgICAgICAgICAg IDs7IEhlcmUgd2UgYXJlIGludGVyZXN0ZWQgaW4gdGhlIGF0dHJpYnV0ZXMs IHNvIHdlIHJld3JpdGUgdGhlIEANCiAgICAgICAgICAgICAgIDs7IHJ1bGUu ICBJZiB3ZSBmaW5kIGEgdmFsdWUgd2UgbG9vayBpZiBpdCdzIGFuIGVtYWls IG9yIGh0dHANCiAgICAgICAgICAgICAgIDs7IHVyaS4NCiAgICAgICAgICAg ICAgICh1bGluaw0KICAgICAgICAgICAgICAgICgoQA0KICAgICAgICAgICAg ICAgICAgLiAsKGxhbWJkYSAoYXQgdmFsKSB2YWwpKSkNCiAgICAgICAgICAg ICAgICAuICwobGFtYmRhICh0YWcgdXJpIG5hbWUpDQogICAgICAgICAgICAg ICAgICAgICAoaWYgKHByZWdleHAtbWF0Y2ggIl5odHRwOnxeZnRwOiIgdXJp KQ0KICAgICAgICAgICAgICAgICAgICAgICAoZm9ybWF0ICJAdXJlZnt+QSwg fkF9IiAgdXJpIG5hbWUpDQogICAgICAgICAgICAgICAgICAgICAgIChmb3Jt YXQgIkBlbWFpbHt+QSwgfkF9IiAoc3Vic3RyaW5nIHVyaSA3KSBuYW1lKSkp KQ0KICAgICAgICAgICAgICAgKHVybA0KICAgICAgICAgICAgICAgIC4gLChs YW1iZGEgKHRhZyB2YWwpIHZhbCkpDQoNCiAgICAgICAgICAgICAgIDs7IHVz ZXJpbnB1dA0KICAgICAgICAgICAgICAgKHVzZXJpbnB1dA0KICAgICAgICAg ICAgICAgIC4gLChsYW1iZGEgKHRhZyB2YWwpDQogICAgICAgICAgICAgICAg ICAgICAoZm9ybWF0ICJAc2FtcHt+QX0iIHZhbCkpKQ0KICAgICAgICAgICAg ICAgKSkpDQogICAgICAocHJlLXBvc3Qtb3JkZXIgc3htbCBzdHlsZS1zaGVl dCkpKQ0KDQo7Ozs7IFdlIGNhbGwgbWFpbiB3aXRoIGluZmlsZSBhbmQgb3V0 ZmlsZSBhcyBhcmd1bWVudHMNCihkZWZpbmUgbWFpbg0KICAgIChsYW1iZGEg KGluIG91dCkNCiAgICAgICh3aXRoLW91dHB1dC10by1maWxlIG91dA0KICAg ICAgICAobGFtYmRhICgpDQogICAgICAgICAgKGNhbGwtd2l0aC1pbnB1dC1m aWxlIGluDQogICAgICAgICAgICAobGFtYmRhIChwb3J0KQ0KICAgICAgICAg ICAgICAoU1JWOnNlbmQtcmVwbHkgKHRyYW5zZm9ybSAoc3NheDp4bWwtPnN4 bWwgcG9ydCAnKCkpKSkpKSkNCiAgICAgICAgJ3JlcGxhY2UpKSkNCg== --=-=-= Content-Type: application/x-sh Content-Disposition: attachment; filename=xml2texi.sh Content-Transfer-Encoding: base64 Content-Description: xml2texi.sh IyEgL2Jpbi9zaA0KI3wNCmV4ZWMgbXpzY2hlbWUgLW1yICQwICR7MSsiJEAi fQ0KfCMNCihyZXF1aXJlIChsaWIgImNtZGxpbmUuc3MiKSkNCihkZWZpbmUg K3NjbWZpbGUrICJ4bWwydGV4aS5zY20iKQ0KKGRlZmluZSAraW4rICJnbnVz LWZhcS54bWwiKQ0KKGRlZmluZSArb3V0KyAiZ251cy1mYXEudGV4aSIpDQoN Cihjb21tYW5kLWxpbmUNCiAieG1sMnRleGkiDQogKGN1cnJlbnQtY29tbWFu ZC1saW5lLWFyZ3VtZW50cykNCiAob25jZS1lYWNoDQogICgoIi1pIiAiLS1p bnB1dCIpIGluICJOYW1lIG9mIFhNTCBkYXRhIGZpbGUgKGRlZmF1bHQgZ251 cy1mYXEueG1sKSINCiAgIChzZXQhICtpbisgaW4pKQ0KICAoKCItbyIgIi0t b3V0cHV0Iikgb3V0ICJOYW1lIG9mIG91dHB1dCBmaWxlIChkZWZhdWx0IGdu dXMtZmFxLnRleGkpIg0KICAgKHNldCEgK291dCsgb3V0KSkNCiAgKCgiLWwi ICItLWxpYnJhcnkiKSBsaWIgIk5hbWUgb2YgU2NoZW1lIGxpYnJhcnkgdG8g bG9hZCAoZGVmYXVsdCBmYXF4bWwydGV4aS5zY20pIg0KICAgKHNldCEgK3Nj bWZpbGUrIGxpYikpKQ0KIChoZWxwLWxhYmVscyAiVGhlIGZpcnN0IChvciBv bmx5KSByZW1haW5pbmcgYXJndW1lbnQgaXMgdXNlZCBhcyB0aGUgbmFtZSBv ZiB0aGUgSW5wdXQgZmlsZSINCiAgICAgICAgICAgICAgIlRoZSBzZWNvbmQg YXJndW1lbnQgaXMgdXNlZCBhcyB0aGUgbmFtZSBvZiB0aGUgT3V0cHV0IGZp bGUiKQ0KIChhcmdzIGluZmlsZStvdXRmaWxlDQogICAgICAgKGNvbmQgKCg9 IChsZW5ndGggaW5maWxlK291dGZpbGUpIDIpDQogICAgICAgICAgICAgICAo c2V0ISAraW4rIChjYXIgaW5maWxlK291dGZpbGUpKQ0KICAgICAgICAgICAg ICAgKHNldCEgK291dCsgKGNhZHIgaW5maWxlK291dGZpbGUpKSkNCiAgICAg ICAgICAgICAoKD0gKGxlbmd0aCBpbmZpbGUrb3V0ZmlsZSkgMSkNCiAgICAg ICAgICAgICAgIChzZXQhICtpbisgKGNhciBpbmZpbGUrb3V0ZmlsZSkpKQ0K ICAgICAgICAgICAgIChlbHNlICNmKSkpKQ0KDQoobG9hZCArc2NtZmlsZSsp DQoobWFpbiAraW4rICtvdXQrKQ0K --=-=-= KP --=-=-=--