From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Andreas =?UTF-8?Q?R=C3=B6hler?= Newsgroups: gmane.emacs.bugs Subject: bug#6974: Emacs doesn't like Swedish =?utf-8?b?w6Q=?= (on w32) Date: Sat, 04 Sep 2010 09:30:55 +0200 Message-ID: <4C81F5AF.6010001@easy-emacs.de> References: <4C80ABD4.8090106@easy-emacs.de> <83tym7i4jj.fsf@gnu.org> <4C80C3D8.5020308@easy-emacs.de> <83mxrzhr86.fsf@gnu.org> <4C812105.2020200@easy-emacs.de> <83iq2miu77.fsf@gnu.org> <4C814D80.3050703@easy-emacs.de> <83fwxqillu.fsf@gnu.org> <4C81E5BB.2050306@easy-emacs.de> <83eidahuuo.fsf@gnu.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------040909020102010102050301" X-Trace: dough.gmane.org 1283586034 11227 80.91.229.12 (4 Sep 2010 07:40:34 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sat, 4 Sep 2010 07:40:34 +0000 (UTC) Cc: bug-gnu-emacs@gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sat Sep 04 09:40:32 2010 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1OrnMV-0003fy-6J for geb-bug-gnu-emacs@m.gmane.org; Sat, 04 Sep 2010 09:40:32 +0200 Original-Received: from localhost ([127.0.0.1]:44020 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OrnMT-0008Vm-Vq for geb-bug-gnu-emacs@m.gmane.org; Sat, 04 Sep 2010 03:40:30 -0400 Original-Received: from [140.186.70.92] (port=53975 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OrnLz-0008TZ-IX for bug-gnu-emacs@gnu.org; Sat, 04 Sep 2010 03:40:02 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OrnLw-0005TJ-IE for bug-gnu-emacs@gnu.org; Sat, 04 Sep 2010 03:39:59 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:33280) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OrnLw-0005TE-GT for bug-gnu-emacs@gnu.org; Sat, 04 Sep 2010 03:39:56 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.69) (envelope-from ) id 1OrnCN-0005YL-U5; Sat, 04 Sep 2010 03:30:04 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Andreas =?UTF-8?Q?R=C3=B6hler?= Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 04 Sep 2010 07:30:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 6974 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by submit@debbugs.gnu.org id=B.128358539321322 (code B ref -1); Sat, 04 Sep 2010 07:30:03 +0000 Original-Received: (at submit) by debbugs.gnu.org; 4 Sep 2010 07:29:53 +0000 Original-Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OrnCB-0005Xr-VL for submit@debbugs.gnu.org; Sat, 04 Sep 2010 03:29:52 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OrnC9-0005Xk-2w for submit@debbugs.gnu.org; Sat, 04 Sep 2010 03:29:51 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OrnDq-0004Sb-Tr for submit@debbugs.gnu.org; Sat, 04 Sep 2010 03:31:36 -0400 Original-Received: from lists.gnu.org ([199.232.76.165]:50379) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OrnDq-0004SV-O1 for submit@debbugs.gnu.org; Sat, 04 Sep 2010 03:31:34 -0400 Original-Received: from [140.186.70.92] (port=38764 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OrnDo-0006pZ-N3 for bug-gnu-emacs@gnu.org; Sat, 04 Sep 2010 03:31:34 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OrnDm-0004Rx-J5 for bug-gnu-emacs@gnu.org; Sat, 04 Sep 2010 03:31:32 -0400 Original-Received: from moutng.kundenserver.de ([212.227.126.186]:50909) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OrnDj-0004R7-T8; Sat, 04 Sep 2010 03:31:28 -0400 Original-Received: from [192.168.178.27] (brln-4dbc7deb.pool.mediaWays.net [77.188.125.235]) by mrelayeu.kundenserver.de (node=mreu2) with ESMTP (Nemesis) id 0MAAfN-1P2UT73ky1-00BrD2; Sat, 04 Sep 2010 09:31:25 +0200 User-Agent: Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.1.11) Gecko/20100711 Thunderbird/3.0.6 In-Reply-To: <83eidahuuo.fsf@gnu.org> X-Provags-ID: V02:K0:RZNs/VNWRJO+8J+hkoqD76EhswLBVm2TBoipe0ONUt9 cD3L2M/gBO1lsypPoqONMVvgQhOWU93MfXJsBAtRqkXAl9TPfO Ceaxvf3EFgj08dJMSOfqZ6Dhl6y6r9TSk5MUT1kqEODw62I0YC cFRUcFusZlMjOehtp0NEbU5XtMNzsbRN1Zc4sSDC67rWG/XePe WLt2XftKhRlnZHgpVAIR3/0xsIFvJfTiZU9Nmbrg8s= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Resent-Date: Sat, 04 Sep 2010 03:30:03 -0400 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:39947 Archived-At: This is a multi-part message in MIME format. --------------040909020102010102050301 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Am 04.09.2010 08:43, schrieb Eli Zaretskii: >> Date: Sat, 04 Sep 2010 08:22:51 +0200 >> From: Andreas Röhler >> CC: bug-gnu-emacs@gnu.org >> >>> Can you use some kind of hex dump program (e.g., `od') to show what's >>> in the file at that place? >>> >> >> 0000000 062050 063145 067151 026545 061141 071142 073145 072055 >> 0000020 061141 062554 020012 023440 066147 061157 066141 060455 >> 0000040 061142 062562 026566 060564 066142 005145 020040 024047 >> 0000060 021050 067111 064546 064556 074564 020042 161042 117210 >> 0000100 020042 064556 020154 024460 020012 020040 024040 060442 >> 0000120 070154 060550 020042 147042 021261 067040 066151 031040 >> 0000140 005051 020040 020040 021050 071141 021061 021040 103342 >> 0000160 021222 067040 066151 030040 005051 020040 020040 021050 >> 0000200 071141 021062 021040 103742 021222 067040 066151 030040 >> 0000220 005051 020040 020040 021050 062542 060564 020042 147042 >> 0000240 021262 067040 066151 030440 005051 020040 020040 021050 >> 0000260 060547 066555 021141 021040 131716 020042 064556 020154 >> 0000300 024461 020012 020040 024040 072042 062550 060564 020042 >> 0000320 147042 021270 067040 066151 030040 024451 005051 >> 0000336 > > Please post the file as an attachment. > Attached. BTW it's my personal note-file, some emacs-issues to remember. So doesn't contain real privat stuff, even if not conceived being public once... :) Hex-dump is from the narrowed section containing the example-code. Encoding-errors are at other positions too. --------------040909020102010102050301 Content-Type: text/plain; name="befehle.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="befehle.txt" KHVuZW5jb2RhYmxlLWNoYXItcG9zaXRpb24gKHBvaW50LW1pbikgKHBvaW50LW1heCkgJ3V0 Zi04KQoKbWF0Y2gtc3Vic3RpdHV0ZS1yZXBsYWNlbWVudAoKKHF1ZXJ5LXJlcGxhY2UgKGZv cm1hdCAiJXMiICfDpCkgIsOkIikKKHF1ZXJ5LXJlcGxhY2UgKGZvcm1hdCAiJXMiICfDvCkg IsO8IikKKHF1ZXJ5LXJlcGxhY2UgKGZvcm1hdCAiJXMiICfihpApICLihpAiKQoocXVlcnkt cmVwbGFjZSAoZm9ybWF0ICIlcyIgJ+KJoCkgIuKJoCIpCgooaW5zZXJ0IChsaXN0IChyZWFk LWZyb20tc3RyaW5nIChmb3JtYXQgIiVzIiDOsSkpCgooc2V0cSBtb24gKGxpc3QgIkphbnVh ciIgIkZlYnJ1YXIiICJNw6RyeiIgIkFwcmlsIiAiTWFpIiAiSnVuaSIgIkp1bGkiICJBdWd1 c3QiICJTZXB0ZW1iZXIiICJPa3RvYmVyIiAgICJOb3ZlbWJlciIgIkRlemVtYmVyIikpIApN YWkKXCwocG9wIG1vbikKCgoKZ2l0IGNsb25lIGdpdDovL3JlcG8ub3IuY3ovb3JnLW1vZGUu Z2l0CgoKKG1lc3NhZ2UgIiVzIiAoY2FzZSBzeXN0ZW0tdHlwZQogICAgICAgICAgICAgICAg KGdudS9saW51eCAiTGludXgiKQogICAgICAgICAgICAgICAgKHdpbmRvdy1udCAid2luZG93 cyIpCiAgICAgICAgICAgICAgICAoZGFyd2luICJtYWMiKQogICAgICAgICAgICAgICAgKHQg Im90aGVyIikpKQoKCiAgKHVubGVzcyAoZXEgbGFzdC1jb21tYW5kLWV2ZW50ICduZXh0KQoK Qy1oIGIgIGxpc3RldCBhbGxlIFRhc3RlbmJpbmR1bmdlbgpDLWggSyAgc3ByaW5ndCBpbiBk aWUgSW5mby1Eb2t1bWVudGF0aW9uIHp1IGVpbmVyIFRhc3RlbmJpbmR1bmcKCgoKClRoZSBy ZWFkIHN5bnRheCBgIycnIGlzIGEgc2hvcnQtaGFuZCBmb3IgdXNpbmcgYGZ1bmN0aW9uJy4g IEZvcgpleGFtcGxlLAoKICAgICAjJyhsYW1iZGEgKHgpICgqIHggeCkpCgppcyBlcXVpdmFs ZW50IHRvCgogICAgIChmdW5jdGlvbiAobGFtYmRhICh4KSAoKiB4IHgpKSkKCjs7Ozs7Ozs7 Ozs7Ozs7OzsKClRvIHJlcHJlc2VudCBzaGFyZWQgb3IgY2lyY3VsYXIgc3RydWN0dXJlcyB3 aXRoaW4gYSBjb21wbGV4IG9mIExpc3AKb2JqZWN0cywgeW91IGNhbiB1c2UgdGhlIHJlYWRl ciBjb25zdHJ1Y3RzIGAjTj0nIGFuZCBgI04jJy4KCiAgIFVzZSBgI049JyBiZWZvcmUgYW4g b2JqZWN0IHRvIGxhYmVsIGl0IGZvciBsYXRlciByZWZlcmVuY2U7CnN1YnNlcXVlbnRseSwg eW91IGNhbiB1c2UgYCNOIycgdG8gcmVmZXIgdGhlIHNhbWUgb2JqZWN0IGluIGFub3RoZXIK cGxhY2UuICBIZXJlLCBOIGlzIHNvbWUgaW50ZWdlci4gIEZvciBleGFtcGxlLCBoZXJlIGlz IGhvdyB0byBtYWtlIGEKbGlzdCBpbiB3aGljaCB0aGUgZmlyc3QgZWxlbWVudCByZWN1cnMg YXMgdGhlIHRoaXJkIGVsZW1lbnQ6CgogICAgICgjMT0oYSkgYiAjMSMpCgpUaGlzIGRpZmZl cnMgZnJvbSBvcmRpbmFyeSBzeW50YXggc3VjaCBhcyB0aGlzCgogICAgICgoYSkgYiAoYSkp Cjs7Ozs7Ozs7Ozs7OwoKY29tcGxldGlvbi1hdC1wb2ludAptdWx0aS1pc2VhcmNoLWJ1ZmZl cnMKCk9uY2UgYWdhaW4gSSByZWNvbW1lbmQgdGhhdCBwZW9wbGUgCgpjb21waWxlIHdpdGgg LURVU0VfTElTUF9VTklPTl9UWVBFIHRvCgpjYXRjaCBzdWNoIGJ1Z3MuICBUaGV5J3JlIHRy aXZpYWwgdG8gY2F0Y2ggdGhpcyB3YXkuCgoKRmxvcmlhbiBEaWVzY2ggd3JvdGU6Cj4gU3Rl ZmFuIFJldXRoZXIgPHN0ZWZhbi5uZXdzQGFyY29yLmRlPiB3cml0ZXM6Cj4+aW0gWEVtYWNz IGthbm4gbWFuIGltIHNoZWxsIGRlbiBBbmZhbmcgZWluZXMgQmVmZWhscyBlaW5nZWJlbiB1 bmQKPj5lcmjDpGx0IGRhbm4gbWl0IE0tcCBkZW4gdm9yaWdlbiBCZWZlaGwsIGRlciBkZW4g Z2xlaWNoZW4gQW5mYW5nIGhhdHRlLgo+Pkthbm4gbWFuIGRpZXNlcyBWZXJoYWx0ZW4gZGVt IEdOVSBFbWFjcyBhdWNoIGlyZ2VuZHdpZSBiZWliaWVnZW4/IE0tcAo+Pmlnbm9yaWVydCBo aWVyIGRpZSBFaW5nYWJlIHVuZCBob2x0IGVpbmZhY2ggZGVuIHZvcmlnZW4gQmVmZWhsLiBN LXIgdW5kCj4+ZGFubiBlaW5lIFJlZ2V4cCBlaW5nZWJlbiBnZWh0IHp3YXIgcHJpbnppcGll bGwsIGFiZXIgZGllIFZhcmlhbnRlIG1pdAo+Pk0tcCBpc3QgZG9jaCBpcmdlbmR3aWUgZmx1 ZmZpZ2VyLgo+IAo+IE1laW5zdCBkdSBzb3dhcyB3aWUgY29taW50LXByZXZpb3VzLW1hdGNo aW5nLWlucHV0LWZyb20taW5wdXQgwqAoQy1jIE0tcik/CgpHZW5hdSBkYXMuIERhcyBtdXNz IGljaCBpbSBBcHJvcG9zIHZvciBsYXV0ZXIgQsOkdW1lbiB3b2hsIMO8YmVyc2VoZW4gaGFi ZW4uCgoKaWdub3JlLWVycm9ycwoKXChbdWVdXClzdFwoWzAtOV1bMC05XVwpX1woWzAtOV1b MC05XVwpXwpfXDFzdFwyX1wxc3RcM18KCmRpcmVkLW1hcmstZmlsZXMtY29udGFpbmluZy1y ZWdleHAKXChbKCBdXClcKFthLXotXStcKS1hdHB0CmRpcmVkLWRvLXF1ZXJ5LXJlcGxhY2Ut cmVnZXhwClwxYXItXDItYXRwdAoKcmFpc2Utc2V4cAoKcGFyZWRpdC1zcGxpY2Utc2V4cC1r aWxsaW5nLWJhY2t3YXJkCgouWHJlc291cmNlcwplbWFjcy5mb250OiBCaXRzdHJlYW0gVmVy YSBTYW5zIE1vbm8tMTAKClwoWzAtOV0rXCkKXCwoKyAoc3RyaW5nLXRvLW51bWJlciBcMSkg MjQwKQoKKG50aCBcKFsxLTVdXCkgc3VmZml4KQoobnRoIFwsKDEtIChzdHJpbmctdG8tbnVt YmVyIFwxKSkgc3VmZml4KQoKZGlmZiAtdSAtYiAvaG9tZS9zcGVjay9lbWFjcy9saXNwL2Rp cmVkLWF1eC5lbCAvaG9tZS9zcGVjay9wcm9nYXJiZWl0L2VtYWNzL3ZlcmFlbmRlcnQvZGly ZWQtYXV4LmVsIAoKOzsgdm9uIGF1dG8tc2F2ZSBTaWNoZXJ1bmdlbiB3aWVkZXJoZXJzdGVs bGVuCnJlY292ZXItdGhpcy1maWxlCgogIChpbnRlcmFjdGl2ZSAocHJvZ24KCQkgKGJhcmYt aWYtYnVmZmVyLXJlYWQtb25seSkKCQkgKGxpc3QgKGlmIGN1cnJlbnQtcHJlZml4LWFyZyAn ZnVsbCkgdCkpKQoKCihkZWxxIG5pbCAobWFwY2FyICdjZHIgdGFibGUpKQoKXChbXiBdXClc LlwoW14gXVwpClwxXFxcXChbWzpwdW5jdDpdXVxcXFx7MCwyXFxcXH1cXFxcfFtbOmFscGhh Ol1dXFxcXClcMgoKXCguKlwpZmEtXChbYS16LV0rXCkgXChyZWxvYWQgcHJvdFwpKVwoLipc KQpcMWZhLVwyIFwzICJcMiIpXDQKClxcXFxmXFxcXG5cXFxcclxcXFx0ClxcZlxcblxcclxc dAoKPiA+PiBIb3cgY2FuIEkgc3BlY2lmeSB3aGljaCBhYmJyZXYgdGFibGUgc2hvdWxkIGJl IGxvYWRlZCBpbiB0aGUgZmlsZSBpdHNlbGYgPwo+Cj4KPiBJIHRoaW5rIHRoZSBwcm9ibGVt IGlzLCB0aGF0IHRoZSB2YWx1ZXMgb2YgZmlsZS1sb2NhbC12YXJpYWJsZXMKPiBhcmUgbm90 IGV2YWx1YXRlZC4gVGhpcyBpbiBlZmZlY3QgYXNzaWducyB0aGUgc3ltYm9sIGBteS1hYmJy ZXYtdGFibGUnCj4gdG8gdGhlIHZhcmlhYmxlIGBsb2NhbC1hYmJyZXYtdGFibGUnIHJhdGhl ciB0aGFuIGl0cyB2YWx1ZQo+ICh0aGUgYWN0dWFsIHRhYmxlKS4KPgo+IE9uZSB3YXkgb2Yg Zml4aW5nIGl0IGlzIHVzaW5nIHRoZSBzcGVjaWFsIGV2YWwgZm9ybQo+Cj4gLSotIGV2YWw6 IChzZXRxIGxvY2FsLWFiYnJldi10YWJsZSBteS1hYmJyZXYtdGFibGUpOyBhYmJyZXYtbW9k ZTogdCAtCj4gKi0KPgo+IGFuZCBhZGRpbmcgdGhpcyBmb3JtIChhbmQgZm9ybXMgZm9yIG90 aGVyIHRhYmxlLXN5bWJvbHMgeW91IHBsYW4gdG8KPiB1c2UgaW4gdGhpcyB3YXkpIHRvIGBz YWZlLWxvY2FsLWV2YWwtZm9ybXMnLgo+Cj4gKHB1c2ggJyhzZXRxIGxvY2FsLWFiYnJldi10 YWJsZSBteS1hYmJyZXYtdGFibGUpIHNhZmUtbG9jYWwtZXZhbC0KPiBmb3JtcykKCkMteCA4 IFJFVCBnaXZlcyB0aGUgZm9sbG93aW5nIHByb21wdDoKVW5pY29kZSAobmFtZSBvciBoZXgp OgoKCmVuZC1vZi1mb3JtLWJhc2UgXFwiXCguXClcXCIgXFwiXCguXClcXCIKZW5kLW9mLWZv cm0tYmFzZSBcXCJcMVxcIiBcXCJcMlxcIiBuaWwgbmlsIG5pbCBuaWwgbmlsIHQKCgpoZyBj bG9uZSBodHRwOi8vYml0YnVja2V0Lm9yZy9hZ3Ivcm9wZW1vZGUvCgoKCgoKCgoKCihkZWZp bmUtYWJicmV2LXRhYmxlCiAgJ2dsb2JhbC1hYmJyZXYtdGFibGUKICAnKCgiSW5maW5pdHki ICLiiJ4iIG5pbCAwKQogICAgKCJhbHBoYSIgIs6xIiBuaWwgMikKICAgICgiYXIxIiAi4oaS IiBuaWwgMCkKICAgICgiYXIyIiAi4oeSIiBuaWwgMCkKICAgICgiYmV0YSIgIs6yIiBuaWwg MSkKICAgICgiZ2FtbWEiICLOsyIgbmlsIDEpCiAgICAoInRoZXRhIiAizrgiIG5pbCAwKSkp CgoKCgoKCgoKKGluc2VydCA4NTkyKeKGkCAKKGluc2VydCAjWDIyNjAp4omgCmhhc2tlbGwt bW9kZQoKCnN0cmFjZQpnY29yZQoKOzs7Ozs7Ozs7CgpFbWFjcycgU2NobmVsbHN0YXJ0ZXIg KEdlbGFkZW5lcyBhbHMgQmluw6RyZGF0ZWkpCgojIS91c3IvYmluL21ha2UgLWYKZW1hY3M9 L3Vzci9iaW4vZW1hY3MgCmZhc3QtZW1hY3M6IC91c3Ivc2hhcmUvZW1hY3Mvc2l0ZS1saXNw L3NpdGUtc3RhcnQuZWwgICAgIC91c3IvbG9jYWwvYmluL2VtYWNzICAgfi8uZW1hY3MgICAg ICAKJChlbWFjcykgLS1iYXRjaCAtLWV4ZWN1dGUgIihkdW1wLWVtYWNzIFwiZmFzdC1lbWFj c1wiIFwiJChlbWFjcylcIikiCiAgICAgICAgIAoKdW5kIAoKIyEvYmluL2Jhc2gKcHVzaGQg YGRpcm5hbWUgJDBgIAptYWtlLWVtYWNzCnBvcGQKZXhlYyBmYXN0LWVtYWNzICRACgo7Ozs7 Ozs7OzsKCmNvbXBpbGF0aW9uLW5leHQtZXJyb3IKCkFsbCByZWd1bGFyCmV4cHJlc3Npb24g cmVwbGFjZW1lbnQgY29tbWFuZHMgbm93IGFsbG93IGBcPycgaW4gdGhlIHJlcGxhY2VtZW50 CnN0cmluZyB0byBzcGVjaWZ5IGEgcG9zaXRpb24gd2hlcmUgdGhlIHJlcGxhY2VtZW50IHN0 cmluZyBjYW4gYmUKZWRpdGVkIGZvciBlYWNoIHJlcGxhY2VtZW50LgoKCklmIHRoZSBzdHJp bmcgYmVnaW5zIHdpdGggYEAnLCBFbWFjcyBzZWFyY2hlcyB0aGUga2V5IHNlcXVlbmNlIHdo aWNoCiBpbnZva2VkIHRoZSBjb21tYW5kIGZvciBpdHMgZmlyc3QgbW91c2UgY2xpY2sgKG9y IGFueSBvdGhlciBldmVudAogd2hpY2ggc3BlY2lmaWVzIGEgd2luZG93KS4KSWYgdGhlIHN0 cmluZyBiZWdpbnMgd2l0aCBgXicgYW5kIGBzaGlmdC1zZWxlY3QtbW9kZScgaXMgbm9uLW5p bCwKIEVtYWNzIGZpcnN0IGNhbGxzIHRoZSBmdW5jdGlvbiBgaGFuZGxlLXNoaWZ0LXNlbGVj dCcuCllvdSBtYXkgdXNlIGBAJywgYConLCBhbmQgYF4nIHRvZ2V0aGVyLiAgVGhleSBhcmUg cHJvY2Vzc2VkIGluIHRoZQogb3JkZXIgdGhhdCB0aGV5IGFwcGVhciwgYmVmb3JlIHJlYWRp bmcgYW55IGFyZ3VtZW50cy4KCgo7Ozs7Ozs7OzsKCj4gPiBJcyBpdCBwb3NzYmlsZSB0byBo aWdobGlnaCB0aGUgY29sdW1uIG9mIHRoZSBwYWdlIHdoZXJlIHRoZSBjdXJzb25yIGlzCj4g PiBsb2NhdGVkID8KCk0teCBjb2x1bW4tbWFya2VyLTEgUkVUIAoob3IgMiBvciAzLCB5b3Ug Y2FuIG1hcmsgdXAgdG8gdGhyZWUgY29sdW1ucykuCgpDLXUgTS14IGNvbHVtbi1tYXJrZXIt MSBSRVQgIHRvIGRpc2FibGUgaXQuCgoKOzs7Ozs7Ozs7Cgo+ID4KPiA+IKAgKGF1dG9sb2Fk ICdtdXNlLW1vZGUgIm11c2UtbW9kZSIgIiIgdCkKPiA+IKAgKGV2YWwtYWZ0ZXItbG9hZCAi bXVzZS1tb2RlIgo+ID4goCCgICcocHJvZ24KPiA+IKAgoCCgIKAocmVxdWlyZSAnbXVzZS1o dG1sKQo+ID4goCCgIKAgoChyZXF1aXJlICdtdXNlLWpvdXJuYWwpCj4gPiCgIKAgoCCgKHJl cXVpcmUgJ211c2UtbGF0ZXgpCj4gPiCgIKAgoCCgKHJlcXVpcmUgJ211c2UtdGV4aW5mbykK PiA+IKAgoCCgIKAocmVxdWlyZSAnbXVzZS1kb2Nib29rKQo+ID4goCCgIKAgoChyZXF1aXJl ICdtdXNlLWJsb3N4b20pCj4gPiCgIKAgoCCgKHJlcXVpcmUgJ211c2UtcHJvamVjdCkpKQoK Ozs7Ozs7Ozs7CgpWb24gRW1hY3Mta2V5cyB6dSBVbml2ZXJzYWwKIlwoXFxDXC1cKVwoW15c Il1cKVwoW15cIl0qXCkiClsoY29udHJvbCBcMikoXDMpXQoKCgo7Ozs7Ozs7OzsKCkZXSVcs IEkndmUgZ290IHRoaXMgaW4gbXkgfi8uZW1hY3M6CgooYWRkLWhvb2sgJ3RleHQtbW9kZS1o b29rCiAgICAgICAgICAoZGVmdW4gdGV4dC1tb2RlLXB1bmN0dWF0aW9uLXN5bnRheCAoKQog ICAgICAgICAgICA7OyBDaGFuZ2Ugbm9uLWxldHRlciBjaGFyYWN0ZXJzIGZyb20gd29yZCBz eW50YXggdG8gcHVuY3R1YXRpb246CiAgICAgICAgICAgIChtb2RpZnktc3ludGF4LWVudHJ5 ID9cMjQwICIuIikgOyBOTy1CUkVBSyBTUEFDRQogICAgICAgICAgICAobW9kaWZ5LXN5bnRh eC1lbnRyeSA/JyAiLiIpKSkgIDsgQVBPU1RST1BIRQoKLS0gCktldmluIFJvZGdlcnMKRGVu dmVyLCBDb2xvcmFkbywgVVNBCgoKOzs7Ozs7Ozs7CgpDaGVjayBvdXQgdGhlIEVtYWNzIG1h bnVhbAotIDIyLjE3LjEuMiBFeHRlbmRlZCBNZW51IEl0ZW1zCgpJIHRoaW5rIHRoZXkgYXJl IGV4dGVuZGVkIHRoZSBzYW1lIHdheSBhcyBiaW5kaW5nIGNvbW1hbmRzIHRvIGtleXMuCgo+ ID4gVGhhdCBzYWlkLCBpZiB3ZSdyZSBhZGRpbmcgbWVudSBpdGVtcywgaG93IGNvdWxkIEkg YWRkIG9uZSB0aGF0IGJhc2ljYWxseSBkaWQKPiA+ICJzaGlmdCByZWdpb24gcmlnaHQiLCBi dXQgdHdpY2U/CgpGaXJzdCB5b3UgbmVlZCB0byB3cml0ZSBzdWNoIGEgY29tbWFuZC4gKFRo ZW4gYmluZCB0aGUgY29tbWFuZCB0byBhCm1lbnUuKQoKKGRlZnVuIG15LWNvbW1hbmQtbmFt ZSAoKQogIChpbnRlcmFjdGl2ZSkKICAoY2FsbC1pbnRlcmFjdGl2ZWx5ICdvcmlnaW5hbC1j b21tYW5kLW5hbWUpCiAgKGNhbGwtaW50ZXJhY3RpdmVseSAnb3JpZ2luYWwtY29tbWFuZC1u YW1lKSkKCllvdSBjYW4gZmluZCB0aGUgb3JpZ2luYWwgY29tbWFuZCBuYW1lIHdpdGggQy1o IGsgPGNsaWNrIG9uIG1lbnU+LgoKCjs7Ozs7Ozs7OwoKTm90aWNlIHRoYXQgcmVnZXhwIGRv bid0ICdzaG93JyBhbnl0aGluZywgdGhleSAnbWF0Y2gnIGlucHV0LiAgSXQncwp0aGUgcHJv Z3JhbSB0aGF0IHVzZSB0aGUgcmVnZXhwIHRoYXQgbWF5IGRlY2lkZSB0byBzaG93IG9yIGhp ZGUgbGluZXMKZGVwZW5kaW5nIG9uIHdoZXRoZXIgYSByZWdleHAgbWF0Y2ggdGhlbS4KCkhl cmUgaXMgc3VjaCBhIHJlZ2V4cCBtYXRjaGluZyBhbnkgbGluZSBidXQgdGhvc2UgY29udGFp bmluZyAiLS0iOgogIAogICAgICAgICAgIF5cKFteLV1cfC1bXi1dXCkqXChcfC1cKSQKCgot LSBfX1Bhc2NhbCBCb3VyZ3VpZ25vbl9fIAoKOzs7Ozs7Ozs7CgplcGEtZGlyZWQtZG8tZW5j cnlwdAoKRHUga2FubnN0IGVzIG5hdPWCiYX1gIim77297728cmxpY2ggYXVjaCB1bnRlciBM aW51eCBhdXNwcm9iaWVyZW4sIHouQi46CgooZGVmaW5lLWtleSBnbG9iYWwtbWFwIFtrcC1k ZWNpbWFsXSBbPypdKQoKRGFubiBt9YKJhfWAiKbvvb3vvbxzc3Rlc3QgRHUgbWl0IEtvbW1h LVRhc3RlIGVpbiBTdGVybiBiZWtvbW1lbi4gQWJlciBhdWYgbWVpbmVtCldpbmRvd3MgWFAg U1AzIHVuZCBHTlUgRW1hY3MgMjIuMy4xIGhhdCBlcyBmdW5rdGlvbmllcnQuCgoKOzsgR3Jv 9YKJhfWAiJ3vva3mrrdjaHN0YWJlbgpeXChbO10rWyBdK1wpXChbQS1aXVwpCgo7OyBjLWNv bW1lbnQtc3RhcnQgc3VjaGVuCiAgKHJlLXNlYXJjaC1iYWNrd2FyZCAiXC9cXCogIiBuaWwg dCAxKQogIChyZS1zZWFyY2gtYmFja3dhcmQgIlxcL1xcKiAiIG5pbCB0IDEpCgoKCihzZXRx IGlzcGVsbC1wcm9ncmFtLW5hbWUgIi9vcHQvbG9jYWwvYmluL2FzcGVsbCIpCgo7Ozs7Ozs7 Ozs7CgpFbWFjcyBtaXQgblhodG1sLU1vZGUgPGh0dHA6Ly93d3cuZW1hY3N3aWtpLm9yZy9j Z2ktYmluL3dpa2kvTnhodG1sTW9kZT4KTmFjaHRlaWxlOiAtIEVtYWNzIGlzdCBuYXT1gomF 9YCIpu+9ve+9vHJsaWNoIEdlc2NobWFja3NzYWNoZQogICAgICAgICAgIC0gdW50ZXJzdPWC iYX1gIim77297728dHp0IG51ciBYSFRNTAoKOzs7Ozs7Ozs7CgpNaXQgRWluemVsLSwgRG9w cGVsLSwgRHJlaWZhY2hrbGljayBkZXIgbGlua2VuIE1hdXN0YXN0ZSBtYXJraWVydCBtYW4K WmVpY2hlbiwgV29ydCwgWmVpbGUgZGVzIEFuZmFuZ3MgZWluZXIgUmVnaW9uLCBtaXQgZGVy IHJlY2h0ZW4gTWF1c3Rhc3RlCmRhcyBFbmRlLCB6d2VpbWFsIHJlY2h0cyBs9YKJhfWAiKbv vb3vvbZzY2h0IGRpZSBSZWdpb24uICBPYiBnZWz1gomF9YCIpu+9ve+9tnNjaHQgb2RlciBu aWNodCwgbWl0CmRlciBtaXR0bGVyZW4gTWF1c3Rhc3RlIGb1gomF9YCIpu+9ve+9vGd0IG1h biBzaWUgYW5kZXJzd28gZWluLgoKCk5pbCBvZGVyIEVpbmdhYmUKICAobGV0ICgocyAocmVh ZC1mcm9tLW1pbmlidWZmZXIgIkRlc2NyaXB0aW9uIGZvciAlczogIikpKQogICAgKG1lc3Nh Z2UgIiVzIiAod2hlbiAobm90IChzdHJpbmc9ICIiIHMpKSBzKSkpKQoKCiAoZ2xvYmFsLXNl dC1rZXkgWyhjb250cm9sIGJ1dHRvbjMpXSAnZGVzY3JpYmUtZmFjZS1hdC1tb3VzZS1wb2lu dCkKCnV1aWQuZWwgdjAuMgogVm9uOiBTdGVmYW4gQXJlbnR6IDxzdGVmYW4uYXJlbnR6QGdt YWlsLmNvbT4KIEFuOiBnbnUtZW1hY3Mtc291cmNlc0BnbnUub3JnCjs7Cjs7IHV1aWQuZWwg LSBUaGlzIHRpbnkgZW1hY3MgZXh0ZW5zaW9uIGRlZmluZXMgYSBuZXcgY29tbWFuZCwKOzsg aW5zZXJ0LXJhbmRvbS11dWlkLCB3aGljaCB3aWxsIGluc2VydCBhIHJhbmRvbWx5IGdlbmVy YXRlZAo7OyBVVUlEIGF0IHRoZSBwb2ludC4KOzsKCihkZWZ1biBnZW5lcmF0ZS1yYW5kb20t aGV4LXN0cmluZyAobGVuZ3RoKQogIChsZXQgKHJlc3VsdCAoZGlnaXRzICIwMTIzNDU2Nzg5 YWJjZGVmIikpCiAgICAoZG90aW1lcyAobnVtYmVyIGxlbmd0aCByZXN1bHQpCiAgICAgIChz ZXRxIHJlc3VsdCAoY29ucyAoZWx0IGRpZ2l0cyAocmFuZG9tIDE2KSkgcmVzdWx0KSkpCiAg ICAoY29uY2F0IHJlc3VsdCkpKQogIAooZGVmdW4gZ2VuZXJhdGUtcmFuZG9tLXV1aWQgKCkK ICAiR2VuZXJhdGUgYSByYW5kb20gVVVJRC4iCiAgKG1hcGNvbmNhdCAnZ2VuZXJhdGUtcmFu ZG9tLWhleC1zdHJpbmcgKGxpc3QgOCA0IDQgNCAxMikgIi0iKSkKCihkZWZ1biBpbnNlcnQt cmFuZG9tLXV1aWQgKCkKICAiSW5zZXJ0IGEgcmFuZG9tIFVVSUQgYXQgdGhlIHBvaW50LiIK ICAoaW50ZXJhY3RpdmUpCiAgKGluc2VydCAoZ2VuZXJhdGUtcmFuZG9tLXV1aWQpKSkKCjs7 Ozs7Ozs7ClJlOiBCYXNpYyBFbWFjcyBMaXNwIHF1ZXN0aW9uCiBWb246IEdpb3Jnb3MgS2Vy YW1pZGFzIDxrZXJhbWlkYUBjZWlkLnVwYXRyYXMuZ3I+CiBBbjogaGVscC1nbnUtZW1hY3NA Z251Lm9yZwogCk9uIFR1ZSwgMjkgQXByIDIwMDggMjA6NTY6MTcgKzAzMDAsIEdpb3Jnb3Mg S2VyYW1pZGFzIDxrZXJhbWlkYUBjZWlkLnVwYXRyYXMuZ3I+IHdyb3RlOgo+IE9uIFR1ZSwg MjkgQXByIDIwMDggMTc6NDk6MTkgKzAyMDAsIE1hdHRoaWFzIFBmZWlmZXIgPHBmZW1hdEB3 ZWIuZGU+IHdyb3RlOgo+PiBIZWxsbywKPj4KPj4gV2hhdCBpcyB0aGUgZGlmZmVyZW5jZSBi ZXR3ZWVuCj4+Cj4+IChsaXN0IDAgbmlsIC0xKQo+Pgo+PiBhbmQKPj4KPj4gJygwIG5pbCAt MSkKPgo+IEluIENvbW1vbiBMaXNwIChsaXN0IDAgbmlsIC0xKSBpcyByZXF1aXJlZCB0byAn Y29ucycgYSBuZXcgbGlzdCBldmVyeQo+IHRpbWUgaXQgaXMgY2FsbGVkLiBRdW90aW5nIHRo ZSBsaXN0IGFzIGluICcoMCBuaWwgLTEpIGlzIG5vdCByZXF1aXJlZAo+IHRvIGJ1aWxkIGEg bmV3IGxpc3QuIEluIGZhY3QsIGluIGNvbXBpbGVkIGNvZGUgaXQgbWF5IHJldXNlIHRoZSBz YW1lCj4gc3RhdGljIG9iamVjdCBvdmVyIGFuZCBvdmVyIGFnYWluLgoKUmVhZGluZyBteSBv d24gcG9zdCByZXZlYWxzIHRoYXQgSSBtYXkgaGF2ZSBiZWVuIHRvbyB0ZXJzZS4gVG8gY2xh cmlmeQp0aGUgcG9pbnQgSSB3YXMgdHJ5aW5nIHRvIG1ha2UsIGhlcmUncyBhIHNtYWxsIHRl c3QgaW4gQ29tbW9uIExpc3AsIGFuZAp0aGUgZXF1aXZhbGVudCB0ZXN0IGluIEVtYWNzIExp c3AuCgoxLiBDb21tb24gTGlzcCB0ZXN0Ci0tLS0tLS0tLS0tLS0tLS0tLS0KCiogU2F2ZSB0 aGUgZm9sbG93aW5nIExpc3AgY29kZSB0byBhIGZpbGUgY2FsbGVkICJmb28ubGlzcCI6Cgog KGRlZnVuIGZvby1xdW90ZWQgKCkKICAnKDAgbmlsIC0xKSkKCiAoZGVmdW4gZm9vLWxpc3Qg KCkKICAobGlzdCAwIG5pbCAtMSkpCgoqIFRoZW4gY29tcGlsZSB0aGUgZmlsZSwgYW5kIGxv YWQgaXQuIEhlcmUncyB0aGUgb3V0cHV0IGZyb20gbG9hZGluZwogdGhlIGNvbXBpbGVkIGZp bGUgaW4gU0JDTDoKCiBDTC1VU0VSPiAoY29tcGlsZS1maWxlICJmb28iKQoKIDsgY29tcGls aW5nIGZpbGUgIi9ob21lL2tlcmFtaWRhL2Zvby5saXNwIiAod3JpdHRlbiAzMCBBUFIgMjAw OCAwMTo0ODowMiBBTSk6CiA7IGNvbXBpbGluZyAoREVGVU4gRk9PLVFVT1RFRCAuLi4pCiA7 IGNvbXBpbGluZyAoREVGVU4gRk9PLUxJU1QgLi4uKQoKIDsgL2hvbWUva2VyYW1pZGEvZm9v LmZhc2wgd3JpdHRlbgogOyBjb21waWxhdGlvbiBmaW5pc2hlZCBpbiAwOjAwOjAwCiAjUCIv aG9tZS9rZXJhbWlkYS9mb28uZmFzbCIKIE5JTAogTklMCiBDTC1VU0VSPiAobG9hZCAiZm9v IikgICAgIDs7IFRoaXMgYWN0dWFsbHkgbG9hZHMgImZvby5mYXNsIiBpbiBTQkNMLgogVAog Q0wtVVNFUj4KCiogRXZlcnkgdGltZSB0aGUgYGZvby1xdW90ZWQnIGZ1bmN0aW9uIHJ1bnMg aXQgcmV0dXJucyBleGFjdGx5IHRoZSBzYW1lCiBjb21waWxlZCBvYmplY3QuIFRoZSBvYmpl Y3QgcmV0dXJuZWQgYnkgc2VwYXJhdGUgY2FsbHMgdG8KIGBmb28tcXVvdGVkJyBpcyBhbGwg b2YgRVEsIEVRTCBhbmQgRVFVQUwgdG8gYW55IHByZXZpb3VzIGNhbGwsIGFzIHlvdQogY2Fu IHNlZSBpbjoKCiBDTC1VU0VSPiAobGV0ICgob25lLWxpc3QgKGZvby1xdW90ZWQpKQogICAg ICAgIChhbm90aGVyLWxpc3QgKGZvby1xdW90ZWQpKSkKICAgICAgKG1hcGNhciAobGFtYmRh ICh0ZXN0KQogICAgICAgICAgIChmdW5jYWxsIHRlc3Qgb25lLWxpc3QgYW5vdGhlci1saXN0 KSkKICAgICAgICAgIChsaXN0ICMnZXEgIydlcWwgIydlcXVhbCkpKQogKFQgVCBUKQogQ0wt VVNFUj4KCiogSW4gY29udHJhc3QsIHRoZSBvYmplY3QgcmV0dXJuZWQgYnkgdGhlIGBmb28t bGlzdCcgZnVuY3Rpb24gaXMgYSBuZXdseQogQ09OUy1lZCBsaXN0IGV2ZXJ5IHRpbWUgdGhl IGZ1bmN0aW9uIHJ1bnM6CgogQ0wtVVNFUj4gKGxldCAoKG9uZS1saXN0IChmb28tbGlzdCkp CiAgICAgICAgKGFub3RoZXItbGlzdCAoZm9vLWxpc3QpKSkKICAgICAgKG1hcGNhciAobGFt YmRhICh0ZXN0KQogICAgICAgICAgIChmdW5jYWxsIHRlc3Qgb25lLWxpc3QgYW5vdGhlci1s aXN0KSkKICAgICAgICAgIChsaXN0ICMnZXEgIydlcWwgIydlcXVhbCkpKQogKE5JTCBOSUwg VCkKIENMLVVTRVI+CgpUaGUgbGlzdHMgcmV0dXJuZWQgYnkgYGZvby1saXN0JyBhcmUgRVFV QUwsIGJ1dCB0aGV5IGFyZSBuZWl0aGVyIEVRIG5vcgpFUUwgdG8gZWFjaCBvdGhlci4gVGhl eSBhcmUgY3JlYXRlZCBmcm9tIHNjcmF0Y2ggYnkgYWxsb2NhdGluZyBuZXcKc3RvcmFnZSBm b3IgdGhlIHZhbHVlIG9mIHRoZSBleHByZXNzaW9uIGV2ZXJ5IHRpbWUgdGhlIGBmb28tbGlz dCcKZnVuY3Rpb24gaXMgY2FsbGVkLgoKMi4gRW1hY3MgTGlzcCB0ZXN0Ci0tLS0tLS0tLS0t LS0tLS0tLQoKKiBTYXZlIHRoZSBzYW1lIHR3byBmdW5jdGlvbnMgaW4gYSBmaWxlIGNhbGxl ZCAiZm9vLmVsIi4KCiogRmlyZSB1cCBFbWFjcywgYW5kIGJ5dGUtY29tcGlsZSB0aGUgZmls ZSBieSB0eXBpbmcKCiBNLXggYnl0ZS1jb21waWxlLWZpbGUgUkVUIGZvby5lbCBSRVQKCiog TG9hZCB0aGUgYnl0ZS1jb21waWxlZCBmaWxlIGJ5IHR5cGluZwoKIE0teCBsb2FkLWZpbGUg UkVUIGZvby5lbGMgUkVUCgoqIE5vdyBldmFsdWF0ZSB0aGUgc2FtZSB0d28gTEVUIGZvcm1z IGluIHlvdXIgc2NyYXRjaCBidWZmZXIsIGJ5IHBhc3RpbmcKIHRoZW0gaW4gdGhlIGJ1ZmZl ciBhbmQgdHlwaW5nIGBDLXggQy1lJyBhZnRlciBlYWNoIGV4cHJlc3Npb24uCgogRW1hY3Mg TGlzcCBzaG91bGQgYWxzbyBldmFsdWF0ZSB0aGVtIGFzOgoKIChsZXQgKChvbmUtbGlzdCAo Zm9vLXF1b3RlZCkpCiAgICAoYW5vdGhlci1saXN0IChmb28tcXVvdGVkKSkpCiAgKG1hcGNh ciAobGFtYmRhICh0ZXN0KQogICAgICAgKGZ1bmNhbGwgdGVzdCBvbmUtbGlzdCBhbm90aGVy LWxpc3QpKQogICAgICAobGlzdCAjJ2VxICMnZXFsICMnZXF1YWwpKSkKID0+ICh0IHQgdCkK CiAobGV0ICgob25lLWxpc3QgKGZvby1saXN0KSkKICAgIChhbm90aGVyLWxpc3QgKGZvby1s aXN0KSkpCiAgKG1hcGNhciAobGFtYmRhICh0ZXN0KQogICAgICAgKGZ1bmNhbGwgdGVzdCBv bmUtbGlzdCBhbm90aGVyLWxpc3QpKQogICAgICAobGlzdCAjJ2VxICMnZXFsICMnZXF1YWwp KSkKID0+IChuaWwgbmlsIHQpCgpJIGhvcGUgdGhpcyBtYWtlcyB3aGF0IEkgaW5pdGlhbGx5 IHdyb3RlIGEgYml0IGVhc2llciB0byBncmFzcCA6LSkKCkdpb3Jnb3MKCjs7Ozs7Ozs7OwoK QW4gYWx0ZXJuYXRpdmUgd2F5IG9mIGV2YWx1YXRpbmcgRW1hY3MgTGlzcCBleHByZXNzaW9u cyBpbnRlcmFjdGl2ZWx5IGlzIHRvIHVzZSBJbmZlcmlvciBFbWFjcy1MaXNwIG1vZGUsIHdo aWNoIHByb3ZpZGVzIGFuIGludGVyZmFjZSByYXRoZXIgbGlrZSBTaGVsbCBtb2RlIChzZWUg c2VjdGlvbiBTaGVsbCBNb2RlKSBmb3IgZXZhbHVhdGluZyBFbWFjcyBMaXNwIGV4cHJlc3Np b25zLiBUeXBlIE0teCBpZWxtIHRvIGNyZWF0ZSBhbiBgKmllbG0qJyBidWZmZXIgd2hpY2gg dXNlcyB0aGlzIG1vZGUuCgo7IEthc3RydXAKKHByb2duIChzZXRxIHggJyg1KSkgKGRvdGlt ZXMgKGkgNSkgKHB1c2ggaSB4KSkgeCkKCmFuZCBnZXQKKDQgMyAyIDEgMCA1KQoKYW5kIHRo YXQgaXMgdGhlIG9ubHkgcGVybWl0dGVkIGJlaGF2aW9yLgoKSW4gY29udHJhc3QsIGxpc3Qg bXVzdCBhbHdheXMgY3JlYXRlIGEgZnJlc2ggb2JqZWN0LgosLCBtZWlucwoocHJvZ24gKHNl dHEgeCAobGlzdCA1KSkgKGRvdGltZXMgKGkgNSkgKHB1c2ggaSB4KSkgeCkKOzs7Ozs7Ozs7 CgpBbnNpIENvbG9yIE5hbWVzIFZlY3RvciwgcHktc2hlbGwsIGZhY2UKCjs7Ozs7Ozs7OwoK TS14IGFwcm9wb3MgUkVUIGh5cGVyIFJFVAoKVGhpcyBpcyBzcGVjaWZpZWQgYnk6IHgtaHlw ZXIta2V5c3ltClVzdWFsbHksIGl0J3MgSHlwZXJfTCBhbmQgSHlwZXJfUi4KCllvdSBjYW4g Y2hvb3NlIHdoYXQga2V5IGdlbmVyYXRlIHRoZXNlIGtleXN5bXMgd2l0aCB4bW9kbWFwKDEp LgoKOzs7Ozs7Ozs7Cgo7OyBveGRpdmsgT3B0aW9uZW4KIC1mdWxsc2NyZWVuIC1zIDYKCjs7 Ozs7Ozs7OwoKCgooYWRkLWhvb2sgJ2RpcmVkLW1vZGUtaG9vawogICAgICAgICAgKGxhbWJk YSAoKQogICAgICAgICAgICAobG9jYWwtc2V0LWtleSBbbW91c2UtMl0gJ215LWRpcmVkLW1v dXNlLWZpbmQtZmlsZS1zYW1lLXdpbmRvdykpKQoKOzs7Ozs7Ozs7CgoKKGRlZnVuIGluc2Vy dC1oeXBoZW4tb3ItdHdvICgpCiAgKGludGVyYWN0aXZlICIqIikKICAoY29uZAogICAoKG9y IChib2xwKSAobm90IChsb29raW5nLWJhY2sgIiciKSkpCiAgICA7OyBpbnNlcnQganVzdCBv bmUgJwogICAgKHNlbGYtaW5zZXJ0LWNvbW1hbmQgMSkpCiAgICgoc2F2ZS1leGN1cnNpb24K ICAgICAgKGJhY2t3YXJkLWNoYXIpCiAgICAgIDs7IFNraXAgc3ltYm9sIGJhY2t3YXJkcy4K ICAgICAgKGFuZCAobm90ICh6ZXJvcCAoc2tpcC1zeW50YXgtYmFja3dhcmQgIndfIikpKQog ICAgICAgKG5vdCAobG9va2luZy1iYWNrICJgIikpCiAgICAgICAob3IgKGluc2VydC1hbmQt aW5oZXJpdCAiYCIpIHQpKSkpCiAgICh0CiAgICA7OyBpbnNlcnQgYCcgYXJvdW5kIGZvbGxv d2luZyBzeW1ib2wKICAgIChkZWxldGUtYmFja3dhcmQtY2hhciAxKQogICAgKHVubGVzcyAo bG9va2luZy1iYWNrICJgIikgKGluc2VydC1hbmQtaW5oZXJpdCAiYCIpKQogICAgKHNhdmUt ZXhjdXJzaW9uCiAgICAgIChza2lwLXN5bnRheC1mb3J3YXJkICJ3XyIpCiAgICAgICh1bmxl c3MgKGxvb2tpbmctYXQgIiciKSAoaW5zZXJ0LWFuZC1pbmhlcml0ICInIikpKSkpKQoKKGds b2JhbC1zZXQta2V5IFszOV0gJ2luc2VydC1oeXBoZW4tb3ItdHdvKQoKbWFydGluIChSdWRh bGljcykKCjs7Ozs7Ozs7OwoKOzsgSW50ZXJuYWwgZnVuY3Rpb24gZm9yIHRlc3QKKGRlZnVu IGhpZ2hsaWdodC1jdXJyZW50LWxpbmUtcmVsb2FkICgpCiAgIlJlbG9hZCBsaWJyYXJ5IGhp Z2hsaWdodC1jdXJyZW50LXdvcmQgZm9yIHRlc3QgcHVycG9zZXMuIgogICh1bmxvYWQtZmVh dHVyZSAnaGlnaGxpZ2h0LWN1cnJlbnQtd29yZCkKICAobG9hZC1saWJyYXJ5ICJoaWdobGln aHQtY3VycmVudC13b3JkIikpCgo7CgplbWFjcyBDLXggQy1jIHN1ZG8gYXB0LWdldAoKCgkK UmU6IEZhc3QgZW1hY3M/OiBtc2cjMDAwNzQKaGVscC1nbnUtZW1hY3MtZ251ClN1YmplY3Q6 IAlSZTogRmFzdCBlbWFjcz8KCQoKPiBDLXggQy1mIC9zdWRvOjovZXRjL2ZzdGFiIFJFVAoK SSB1c2UgdGhpcyB3aGljaCBpcyBncmVhdC4gT3BlbiB0aGUgZmlsZSBpbiBub3JtYWwgbW9k ZSwgYW5kIHRoZW4gCkMteCBDLXIgdG8gc3dpdGNoIHRvIHJvb3QgcHJpdnMuCgosLS0tLQp8 IChkZWZ1biBmaW5kLWFsdGVybmF0aXZlLWZpbGUtd2l0aC1zdWRvICgpCnwgIk9wZW4gY3Vy cmVudCBidWZmZXIgYXMgcm9vdCEiCnwgKGludGVyYWN0aXZlKQp8ICh3aGVuIGJ1ZmZlci1m aWxlLW5hbWUKfCAoZmluZC1hbHRlcm5hdGUtZmlsZQp8IChjb25jYXQgIi9zdWRvOnJvb3RA bG9jYWxob3N0OiIKfCBidWZmZXItZmlsZS1uYW1lKSkpKQp8CnwgKGdsb2JhbC1zZXQta2V5 IChrYmQgIkMteCBDLXIiKSAnZmluZC1hbHRlcm5hdGl2ZS1maWxlLXdpdGgtc3VkbykKOzs7 Ozs7Ozs7Ozs7OwoKSXQgaXMgcG9zc2libGUgdG8gdXNlIHlvdXIgYWxpYXNlcyB3aXRoIE0t eCBzaGVsbC1jb21tYW5kLCBJIGRvIGl0IGFsbAp0aGUgdGltZS4gRG8gdGhlIGZvbGxvd2lu ZzoKCiAgKiBpbiB5b3UgYmFzaCBjb25maWcgKC5iYXNocmMpOiBzaG9wdCAtcyAtcSBleHBh bmRfYWxpYXNlcwogICAgVGhpcyBtYWtlcyBiYXNoIGFsaWFzZXMgd29yayBpbiBub24taW50 ZXJhY3RpdmUgYmFzaHMuCgogICogSW4geW91ciBlbWFjcyBjb25maWcgKC5lbWFjcyk6IChz ZXRlbnYgIkJBU0hfRU5WIiAifi8uYmFzaHJjIikKICAgIFRoaXMgdGVsbHMgZW1hY3MgdGhh dCBub24taW50ZXJhY3RpdmUgYmFzaCBzdWJwcm9jZXNzZXMgc2hvdWxkCiAgICBsb2FkIC5i YXNocmMuCjs7Ozs7Ozs7OwoKdHJhbXAKQy14IEMtZiAvc3U6Oi9wYXRoL3RvL2ZpbGUvb3du ZWQvYnkvcm9vdAoKc2NwIE1ZRklMRSBVU0VSQEhPU1Q6L01ZRElSCgogL1tyYUBha3Jvbnl4 LmRlXS9QQVRILwoKTS14IGxpc3QtY2hhcnNldC1jaGFycyBSRVQgdW5pY29kZS1ibXAgUkVU CgpBbmQgYWxzbyBjaGVjayBgTS14IGxpc3QtbG9hZC1wYXRoLXNoYWRvd3MnIHRvIGZpbmQg d2hpY2ggZXh0ZXJuYWwgZWxpc3AKZmlsZXMgc2hhZG93IGVtYWNzIGJ1aWx0aW5zLgoKQnll LApUYXNzaWxvCgo7Ozs7Ozs7Ozs7Cgo+IFRoZSBzaGVsbCBvZiBFbWFjcyBnaXZlcyBtZSwK PiA+IFdBUk5JTkc6IHRlcm1pbmFsIGlzIG5vdCBmdWxseSBmdW5jdGlvbmFsCj4gPgo+ID4g VGhpcyBpcyBxdWl0ZSBkaXN0dXJiaW5nLiBBbnlvbmUga25vd3MgaG93IHRvIGdldCBvdXQg b2YgdGhpcyB3YXJuaW5nCj4gPiBwbHo/CgpCeSAidGhlIHNoZWxsIG9mIEVtYWNzIiBkbyB5 b3UgbWVhbiAiTS14IHNoZWxsIiBjb21tYW5kPyBJZiBzbywgdGhlCndhcm5pbmcgaXMgY29y cmVjdCwgIk0teCBzaGVsbCIgaXMgbm90IHRlcm1pbmFsIGF0IGFsbCwgaXQncyBhIGtpbmQg b2YKcmVwZWF0ZWQgc2hlbGwgY29tbWFuZCBwcm9tcHQuIElmIHlvdSBuZWVkIGEgdGVybWlu YWwgaW5zaWRlIEVtYWNzIHVzZQoiTS14IHRlcm0iLgoK --------------040909020102010102050301--