From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Michael Mauger Newsgroups: gmane.emacs.bugs Subject: bug#6686: 24.0.50; [restore functionality] sql-mode Date: Wed, 28 Jul 2010 17:34:54 -0700 (PDT) Message-ID: <773473.3928.qm@web62508.mail.re1.yahoo.com> References: <87aaplpp6j.fsf@blind-mole.une.edu.au> <87wrsmdvct.fsf@stupidchicken.com> <512661.97188.qm@web62501.mail.re1.yahoo.com> <20100729.095153.213352561.tcross@une.edu.au> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="0-999822227-1280363694=:3928" X-Trace: dough.gmane.org 1280419847 3164 80.91.229.12 (29 Jul 2010 16:10:47 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Thu, 29 Jul 2010 16:10:47 +0000 (UTC) Cc: cyd@stupidchicken.com, 6686@debbugs.gnu.org To: Tim Cross Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Jul 29 18:10:43 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 1OeVfJ-00031o-Np for geb-bug-gnu-emacs@m.gmane.org; Thu, 29 Jul 2010 18:10:40 +0200 Original-Received: from localhost ([127.0.0.1]:41709 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OeVfD-0001cm-1b for geb-bug-gnu-emacs@m.gmane.org; Thu, 29 Jul 2010 12:08:55 -0400 Original-Received: from [140.186.70.92] (port=57970 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OeVeL-0001CW-4x for bug-gnu-emacs@gnu.org; Thu, 29 Jul 2010 12:08:21 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OeVeC-00071Y-7h for bug-gnu-emacs@gnu.org; Thu, 29 Jul 2010 12:07:55 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:55358) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OeVeC-00071U-4J for bug-gnu-emacs@gnu.org; Thu, 29 Jul 2010 12:07:52 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.69) (envelope-from ) id 1OeVK2-0004SV-99; Thu, 29 Jul 2010 11:47:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Michael Mauger Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 29 Jul 2010 15:47:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 6686 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 6686-submit@debbugs.gnu.org id=B6686.128041836617102 (code B ref 6686); Thu, 29 Jul 2010 15:47:02 +0000 Original-Received: (at 6686) by debbugs.gnu.org; 29 Jul 2010 15:46:06 +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 1OeVJ8-0004RI-3f for submit@debbugs.gnu.org; Thu, 29 Jul 2010 11:46:06 -0400 Original-Received: from web62508.mail.re1.yahoo.com ([69.147.75.100]) by debbugs.gnu.org with smtp (Exim 4.69) (envelope-from ) id 1OeH59-0005hH-Mm for 6686@debbugs.gnu.org; Wed, 28 Jul 2010 20:34:44 -0400 Original-Received: (qmail 3950 invoked by uid 60001); 29 Jul 2010 00:34:54 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s1024; t=1280363694; bh=un3medMsVpoMHDKb29gmjQ7qZnG2FGVCiC6RC+vTPAA=; h=Message-ID:X-YMail-OSG:Received:X-Mailer:References:Date:From:Subject:To:Cc:In-Reply-To:MIME-Version:Content-Type; b=WNUrVdm3RC5bW/P5Rk0beLckSnVd4rsoyPVxoMbmC7QYPcCgubWVG2h5LNr/4eIAldeBSH+z/K02KD9ENI9uPZrTCBh6mGyFscfO7GAFB9PXOqk0ehi55pGu/iQp2O5C1OsLj77n62KUXYWe1gxDrnpAHs3ZTxX3tgLyXJg3Dog= DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=Message-ID:X-YMail-OSG:Received:X-Mailer:References:Date:From:Subject:To:Cc:In-Reply-To:MIME-Version:Content-Type; b=uY671HyzZk+ld3T5z7PshWipN9BbZPRqeM91wASubhD14Wy490bg/CISh+WLnsYUjOlYQwfxtU/wg2zkpm4uYhB0busZhPlYRXYPMwMrcUdPB33j/S378+0W1nzudA/uZRVX2zWw8cgdjlEvfH+ASGV/0EobNNoqRildWIxUzYc=; X-YMail-OSG: 4g0FYOIVM1l3UrYXsIOUO3sSzo0Tlhux.DUENJwi00_uAXs VatGxD7iHgs4VShHxjIriDohmvaPU4nd5tB.8k1oA_h8POlvxe29OECmKAvk 2yv4yf1mBC1QEc9iMpOkXB562TNNUnJMyLQ1erTbCeq5fC0PCQ9g8Shl_uOb grpNoBZk2kQHJKmVtxVPWSPHqTwv_XFomwz7qdgvVoJJs2aKtw5GJNjX1hba S0oawsWiS_cQoU4AdmBCGwyUmPjoUPpjLTg17EQ3r9OXKavj8l5Yi7sn5Hle A6yE45O_4kTwofvE.LdcUOXhuQZyCnn8hgPN2SJxMn0cNO02gKPR1Qabbh9a UzTg0QDI7FA-- Original-Received: from [98.216.52.54] by web62508.mail.re1.yahoo.com via HTTP; Wed, 28 Jul 2010 17:34:54 PDT X-Mailer: YahooMailRC/420.4 YahooMailWebService/0.8.105.277674 In-Reply-To: <20100729.095153.213352561.tcross@une.edu.au> X-Mailman-Approved-At: Thu, 29 Jul 2010 11:45:59 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Resent-Date: Thu, 29 Jul 2010 11:47:02 -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:39046 Archived-At: --0-999822227-1280363694=:3928 Content-Type: text/plain; charset=us-ascii Tim Cross wrote: > To: mmaug@yahoo.com > Cc: 6686@debbugs.gnu.org; cyd@stupidchicken.com > Sent: Wed, July 28, 2010 7:51:53 PM > Subject: Re: bug#6686: 24.0.50; [restore functionality] sql-mode > > Michael Mauger wrote ... > >----- Original Message ---- > > > >> From: Chong Yidong > >> To: Michael R. Mauger > >> Cc: Tim Cross ; 6686@debbugs.gnu.org > >> Sent: Fri, July 23, 2010 12:19:14 PM > >> Subject: Re: bug#6686: 24.0.50; [restore functionality] sql-mode > >> > >> Hi Michael, > >> > >> Could you take a look at this bug report? Thanks. > >> > >> > >> Tim Cross writes: > >> > >> > The way sql-mode works in emacs has changed and while some of the > >> > changes are good, there is one major change that isn't. > >> > > >> > In previous versions of sql-mode, running queries and executing stored > >> > procedures/functions from within the sql interactive buffer did not >hold > >> > system focus. If the command you executed was going to take some time to > >> > run, you could switch to another buffer/frame and continue working, read > >> > mail, use w3m etc. However, this has now changed. When you execute an > >> > SQL command or call a stored procedure/function from within the SQLi > >> > buffer, you are effectively locked out from doing anything else in >emacs > >> > until that command has completed. I'm guessing, but suspect this change > >> > is due to the additional output processing that has been added to > >> > sql-mode, such as translation of tabs to spaces etc. I have disabled as > >> > many features as I can, but this has made no difference. > >> > > >> > I am using sql-mode to access an Oracle database using sqlplus. > >> > Everything works as it always has with emacs 23 and this change only > >> > occured in emacs 24 either late last year or early this year. > >> > > >> > Could we either have the old behavior restored or if that is not > >> > possible and if the change is due to other new features, have a way of > >> > turning the new features off and restoring the old behavior. I really > >> > want to continue using sql-mode and *really* don't want to have to give > >> > it up in favor of something far less pleasant to use than emacs! > >> > > >> > thanks, > >> > > >> > Tim > >> > > >> > > >> > In GNU Emacs 24.0.50.1 (i686-pc-linux-gnu, GTK+ Version 2.20.1) > >> > of 2010-07-19 on blind-mole > >> > Windowing system distributor `The X.Org Foundation', version >11.0.10706000 > >> > configured using `configure '--prefix=/usr/local'' > >> > > > >The only change that I believe impacted the handling of the command >interaction > > >in SQLi mode > > > >is the use of `comint-input-sender' which may modify the text sent to the > >command interpreter > >before sending it. (For example, replacing TAB characters or handling > >&placeholders). This > > > >should not cause the blocking behavior you describe. > > > >I have seen that behavior with code found on the net that strips out > >continuation prompts on > > > >SQL*Plus. Is that a possible culprit? > > > >To be sure that the input filtering is not the cause you can: > > > > (sql-set-product-feature 'oracle :input-filter nil) > > > >The other thing you can try is to interrupt emacs under the debugger when its > > >blocking and > >look at the backtrace. > > > >Beyond that, more details of your setup of SQL mode might be helpful. I'm >not > > >seeing the same > > > >behavior but I don't have sqlplus available to me now. > > > > OK, I will try the suggestion of setting input fileter to nil and see if that > makes a difference. > > Note that I do not observe this behavior with emacs 23 and its version of > sql-mode. This is on the same system, using the same configuration and the > same version of sqlplus. Also note that I do not have any additional code or > customizations, other than those provided by sql-mode. My sql-mode custom > settings are > > '(sql-input-ring-file-name "~/.sql-input") > '(sql-oracle-scan-on nil) > '(sql-product (quote oracle)) > > I will let you know what I find. > > thanks > > Tim Here's another option: attached is the version of sql.el found in Emacs 23. Load this rather than the E24 version and see if you see the same behavior. If you do then this is an E24 bug, else I've got some debugging to do... --0-999822227-1280363694=:3928 Content-Type: application/octet-stream; name="sql.el" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="sql.el" Ozs7IHNxbC5lbCAtLS0gc3BlY2lhbGl6ZWQgY29taW50LmVsIGZvciBTUUwg aW50ZXJwcmV0ZXJzCgo7OyBDb3B5cmlnaHQgKEMpIDE5OTgsIDE5OTksIDIw MDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsCjs7ICAg MjAwNywgMjAwOCwgMjAwOSwgMjAxMCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCgo7OyBBdXRob3I6IEFsZXggU2Nocm9lZGVyIDxhbGV4QGdu dS5vcmc+Cjs7IE1haW50YWluZXI6IE1pY2hhZWwgTWF1Z2VyIDxtbWF1Z0B5 YWhvby5jb20+Cjs7IFZlcnNpb246IDIuMC4yCjs7IEtleXdvcmRzOiBjb21t IGxhbmd1YWdlcyBwcm9jZXNzZXMKOzsgVVJMOiBodHRwOi8vc2F2YW5uYWgu Z251Lm9yZy9jZ2ktYmluL3ZpZXdjdnMvZW1hY3MvZW1hY3MvbGlzcC9wcm9n bW9kZXMvc3FsLmVsCjs7IFVSTDogaHR0cDovL3d3dy5lbWFjc3dpa2kub3Jn L2NnaS1iaW4vd2lraS5wbD9TcWxNb2RlCgo7OyBUaGlzIGZpbGUgaXMgcGFy dCBvZiBHTlUgRW1hY3MuCgo7OyBHTlUgRW1hY3MgaXMgZnJlZSBzb2Z0d2Fy ZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQo7OyBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieQo7OyB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBv cgo7OyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoKOzsg R05VIEVtYWNzIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCjs7IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCjs7IE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUKOzsgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KCjs7IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCjs7IGFs b25nIHdpdGggR05VIEVtYWNzLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cu Z251Lm9yZy9saWNlbnNlcy8+LgoKOzs7IENvbW1lbnRhcnk6Cgo7OyBQbGVh c2Ugc2VuZCBidWcgcmVwb3J0cyBhbmQgYnVnIGZpeGVzIHRvIHRoZSBtYWls aW5nIGxpc3QgYXQKOzsgaGVscC1nbnUtZW1hY3NAZ251Lm9yZy4gIElmIHlv dSB3YW50IHRvIHN1YnNjcmliZSB0byB0aGUgbWFpbGluZwo7OyBsaXN0LCBz ZWUgdGhlIHdlYiBwYWdlIGF0Cjs7IGh0dHA6Ly9saXN0cy5nbnUub3JnL21h aWxtYW4vbGlzdGluZm8vaGVscC1nbnUtZW1hY3MgZm9yCjs7IGluc3RydWN0 aW9ucy4gIEkgbW9uaXRvciB0aGlzIGxpc3QgYWN0aXZlbHkuICBJZiB5b3Ug c2VuZCBhbiBlLW1haWwKOzsgdG8gQWxleCBTY2hyb2VkZXIgaXQgdXN1YWxs eSBtYWtlcyBpdCB0byBtZSB3aGVuIEFsZXggaGFzIGEgY2hhbmNlCjs7IHRv IGZvcndhcmQgdGhlbSBhbG9uZyAoVGhhbmtzLCBBbGV4KS4KCjs7IFRoaXMg ZmlsZSBwcm92aWRlcyBhIHNxbC1tb2RlIGFuZCBhIHNxbC1pbnRlcmFjdGl2 ZS1tb2RlLiAgVGhlCjs7IG9yaWdpbmFsIGdvYWxzIHdlcmUgdHdvIHNpbXBs ZSBtb2RlcyBwcm92aWRpbmcgc3ludGFjdGljCjs7IGhpZ2hsaWdodGluZy4g IFRoZSBpbnRlcmFjdGl2ZSBtb2RlIGhhZCB0byBwcm92aWRlIGEgY29tbWFu ZC1saW5lCjs7IGhpc3Rvcnk7IHRoZSBvdGhlciBtb2RlIGhhZCB0byBwcm92 aWRlICJzZW5kIHJlZ2lvbi9idWZmZXIgdG8gU1FMCjs7IGludGVycHJldGVy IiBmdW5jdGlvbnMuICAic2ltcGxlIiBpbiB0aGlzIGNvbnRleHQgbWVhbnMg ZWFzeSB0bwo7OyB1c2UsIGVhc3kgdG8gbWFpbnRhaW4gYW5kIGxpdHRsZSBv ciBubyBiZWxscyBhbmQgd2hpc3RsZXMuICBUaGlzCjs7IGhhcyBjaGFuZ2Vk IHNvbWV3aGF0IGFzIGV4cGVyaWVuY2Ugd2l0aCB0aGUgbW9kZSBoYXMgYWNj dW11bGF0ZWQuCgo7OyBTdXBwb3J0IGZvciBkaWZmZXJlbnQgZmxhdm9ycyBv ZiBTUUwgYW5kIGNvbW1hbmQgaW50ZXJwcmV0ZXJzIHdhcwo7OyBhdmFpbGFi bGUgaW4gZWFybHkgdmVyc2lvbnMgb2Ygc3FsLmVsLiAgVGhpcyBzdXBwb3J0 IGhhcyBiZWVuCjs7IGV4dGVuZGVkIGFuZCBmb3JtYWxpemVkIGluIGxhdGVy IHZlcnNpb25zLiAgUGFydCBvZiB0aGUgaW1wZXR1cyBmb3IKOzsgdGhlIGlt cHJvdmVkIHN1cHBvcnQgb2YgU1FMIGZsYXZvcnMgd2FzIGJvcm5lIG91dCBv ZiB0aGUgY3VycmVudAo7OyBtYWludGFpbmVyJ3MgY29uc3VsdGluZyBleHBl cmllbmNlLiAgSW4gdGhlIHBhc3QgZmlmdGVlbiB5ZWFycywgSQo7OyBoYXZl IHVzZWQgT3JhY2xlLCBTeWJhc2UsIEluZm9ybWl4LCBNeVNRTCwgUG9zdGdy ZXMsIGFuZCBTUUxTZXJ2ZXIuCjs7IE9uIHNvbWUgYXNzaWdubWVudHMsIEkg aGF2ZSB1c2VkIHR3byBvciBtb3JlIG9mIHRoZXNlIGNvbmN1cnJlbnRseS4K Cjs7IElmIGFueWJvZHkgZmVlbHMgbGlrZSBleHRlbmRpbmcgdGhpcyBzcWwg bW9kZSwgdGFrZSBhIGxvb2sgYXQgdGhlCjs7IGFib3ZlIG1lbnRpb25lZCBt b2RlcyBhbmQgd3JpdGUgYSBzcWx4LW1vZGUgb24gdG9wIG9mIHRoaXMgb25l LiAgSWYKOzsgdGhpcyBwcm92ZXMgdG8gYmUgZGlmZmljdWx0LCBwbGVhc2Ug c3VnZ2VzdCBjaGFuZ2VzIHRoYXQgd2lsbAo7OyBmYWNpbGl0YXRlIHlvdXIg cGxhbnMuICBGYWNpbGl0aWVzIGhhdmUgYmVlbiBwcm92aWRlZCB0byBhZGQK OzsgcHJvZHVjdHMgYW5kIHByb2R1Y3Qtc3BlY2lmaWMgY29uZmlndXJhdGlv bi4KCjs7IHNxbC1pbnRlcmFjdGl2ZS1tb2RlIGlzIHVzZWQgdG8gaW50ZXJh Y3Qgd2l0aCBhIFNRTCBpbnRlcnByZXRlcgo7OyBwcm9jZXNzIGluIGEgU1FM aSBidWZmZXIgKHVzdWFsbHkgY2FsbGVkIGAqU1FMKicpLiAgVGhlIFNRTGkg YnVmZmVyCjs7IGlzIGNyZWF0ZWQgYnkgY2FsbGluZyBhIFNRTCBpbnRlcnBy ZXRlci1zcGVjaWZpYyBlbnRyeSBmdW5jdGlvbiBvcgo7OyBzcWwtcHJvZHVj dC1pbnRlcmFjdGl2ZS4gIERvICpub3QqIGNhbGwgc3FsLWludGVyYWN0aXZl LW1vZGUgYnkKOzsgaXRzZWxmLgoKOzsgVGhlIGxpc3Qgb2YgY3VycmVudGx5 IHN1cHBvcnRlZCBpbnRlcnByZXRlcnMgYW5kIHRoZSBjb3JyZXNwb25kaW5n Cjs7IGVudHJ5IGZ1bmN0aW9uIHVzZWQgdG8gY3JlYXRlIHRoZSBTUUxpIGJ1 ZmZlcnMgaXMgc2hvd24gd2l0aAo7OyBgc3FsLWhlbHAnIChNLXggc3FsLWhl bHApLgoKOzsgU2luY2Ugc3FsLWludGVyYWN0aXZlLW1vZGUgaXMgYnVpbHQg b24gdG9wIG9mIHRoZSBnZW5lcmFsCjs7IGNvbW1hbmQtaW50ZXJwcmV0ZXIt aW4tYS1idWZmZXIgbW9kZSAoY29taW50IG1vZGUpLCBpdCBzaGFyZXMgYQo7 OyBjb21tb24gYmFzZSBmdW5jdGlvbmFsaXR5LCBhbmQgYSBjb21tb24gc2V0 IG9mIGJpbmRpbmdzLCB3aXRoIGFsbAo7OyBtb2RlcyBkZXJpdmVkIGZyb20g Y29taW50IG1vZGUuICBUaGlzIG1ha2VzIHRoZXNlIG1vZGVzIGVhc2llciB0 bwo7OyB1c2UuCgo7OyBzcWwtbW9kZSBjYW4gYmUgdXNlZCB0byBrZWVwIGVk aXRpbmcgU1FMIHN0YXRlbWVudHMuICBUaGUgU1FMCjs7IHN0YXRlbWVudHMg Y2FuIGJlIHNlbnQgdG8gdGhlIFNRTCBwcm9jZXNzIGluIHRoZSBTUUxpIGJ1 ZmZlci4KCjs7IEZvciBkb2N1bWVudGF0aW9uIG9uIHRoZSBmdW5jdGlvbmFs aXR5IHByb3ZpZGVkIGJ5IGNvbWludCBtb2RlLCBhbmQKOzsgdGhlIGhvb2tz IGF2YWlsYWJsZSBmb3IgY3VzdG9taXppbmcgaXQsIHNlZSB0aGUgZmlsZSBg Y29taW50LmVsJy4KCjs7IEhpbnQgZm9yIG5ld2JpZXM6IHRha2UgYSBsb29r IGF0IGBkYWJicmV2LWV4cGFuZCcsIGBhYmJyZXYtbW9kZScsIGFuZAo7OyBg aW1lbnUtYWRkLW1lbnViYXItaW5kZXgnLgoKOzs7IFJlcXVpcmVtZW50cyBm b3IgRW1hY3MgMTkuMzQ6Cgo7OyBJZiB5b3UgYXJlIHVzaW5nIEVtYWNzIDE5 LjM0LCB5b3Ugd2lsbCBoYXZlIHRvIGdldCBhbmQgaW5zdGFsbAo7OyB0aGUg ZmlsZSByZWdleHAtb3B0LmVsCjs7IDxVUkw6ZnRwOi8vZnRwLmlmaS51aW8u bm8vcHViL2VtYWNzL2VtYWNzLTIwLjMvbGlzcC9lbWFjcy1saXNwL3JlZ2V4 cC1vcHQuZWw+Cjs7IGFuZCB0aGUgY3VzdG9tIHBhY2thZ2UKOzsgPFVSTDpo dHRwOi8vd3d3LmRpbmEua3ZsLmRrL35hYnJhaGFtL2N1c3RvbS8+LgoKOzs7 IEJ1Z3M6Cgo7OyBzcWwtbXMgbm93IHVzZXMgb3NxbCBpbnN0ZWFkIG9mIGlz cWwuICBPc3FsIGZsdXNoZXMgaXRzIGVycm9yCjs7IHN0cmVhbSBtb3JlIGZy ZXF1ZW50bHkgdGhhbiBpc3FsIHNvIHRoYXQgZXJyb3IgbWVzc2FnZXMgYXJl Cjs7IGF2YWlsYWJsZS4gIFRoZXJlIGlzIG5vIHByb21wdCBhbmQgc29tZSBv dXRwdXQgc3RpbGwgaXMgYnVmZmVyZWQuCjs7IFRoaXMgaW1wcm92ZXMgdGhl IGludGVyYWN0aW9uIHVuZGVyIEVtYWNzIGJ1dCBpdCBzdGlsbCBpcyBzb21l d2hhdAo7OyBhd2t3YXJkLgoKOzsgUXVvdGVkIGlkZW50aWZpZXJzIGFyZSBu b3Qgc3VwcG9ydGVkIGZvciBoaWxpZ2h0aW5nLiAgTW9zdAo7OyBkYXRhYmFz ZXMgc3VwcG9ydCB0aGUgdXNlIG9mIGRvdWJsZSBxdW90ZWQgc3RyaW5ncyBp biBwbGFjZSBvZgo7OyBpZGVudGlmaWVyczsgbXMgKE1pY3Jvc29mdCBTUUxT ZXJ2ZXIpIGFsc28gc3VwcG9ydHMgaWRlbnRpZmllcnMKOzsgZW5jbG9zZWQg d2l0aGluIGJyYWNrZXRzIFtdLgoKOzsgQ2hhbmdlTG9nIGF2YWlsYWJsZSBv biByZXF1ZXN0LgoKOzs7IFByb2R1Y3QgU3VwcG9ydDoKCjs7IFRvIGFkZCBz dXBwb3J0IGZvciBhZGRpdGlvbmFsIFNRTCBwcm9kdWN0cyB0aGUgZm9sbG93 aW5nIHN0ZXBzCjs7IG11c3QgYmUgZm9sbG93ZWQgKCJ4eXoiIGlzIHRoZSBu YW1lIG9mIHRoZSBwcm9kdWN0IGluIHRoZSBleGFtcGxlcwo7OyBiZWxvdyk6 Cgo7OyAxKSBBZGQgdGhlIHByb2R1Y3QgdG8gYHNxbC1wcm9kdWN0JyBjaG9p Y2UgbGlzdC4KCjs7ICAgICAoY29uc3QgOnRhZyAiWHl6REIiIHh5eikKCjs7 IDIpIEFkZCBhbiBlbnRyeSB0byB0aGUgYHNxbC1wcm9kdWN0LWFsaXN0JyBs aXN0LgoKOzsgICAgICh4eXoKOzsgICAgICA6Zm9udC1sb2NrIHNxbC1tb2Rl LXh5ei1mb250LWxvY2sta2V5d29yZHMKOzsgICAgICA6c3FsaS1sb2dpbiAo dXNlciBwYXNzd29yZCBzZXJ2ZXIgZGF0YWJhc2UpCjs7ICAgICAgOnNxbGkt Y29ubmVjdCBzcWwtY29ubmVjdC14eXoKOzsgICAgICA6c3FsaS1wcm9tcHQt cmVnZXhwICJeeHl6ZGI+ICIKOzsgICAgICA6c3FsaS1wcm9tcHQtbGVuZ3Ro IDcKOzsgICAgICA6c3FsaS1pbnB1dC1zZW5kZXIgbmlsCjs7ICAgICAgOnN5 bnRheC1hbGlzdCAoKD8jIC4gInciKSkpCgo7OyAzKSBBZGQgY3VzdG9taXph YmxlIHZhbHVlcyBmb3IgdGhlIHByb2R1Y3QgaW50ZXJwcmV0ZXIgYW5kIG9w dGlvbnMuCgo7OyAgICAgOzsgQ3VzdG9taXphdGlvbiBmb3IgWHl6REIKOzsK OzsgICAgIChkZWZjdXN0b20gc3FsLXh5ei1wcm9ncmFtICJpeHl6Igo7OyAg ICAgICAiKkNvbW1hbmQgdG8gc3RhcnQgaXh5eiBieSBYeXpEQi4iCjs7ICAg ICAgIDp0eXBlICdmaWxlCjs7ICAgICAgIDpncm91cCAnU1FMKQo7Owo7OyAg ICAgKGRlZmN1c3RvbSBzcWwteHl6LW9wdGlvbnMgJygiLVgiICItWSIgIi1a IikKOzsgICAgICAgIipMaXN0IG9mIGFkZGl0aW9uYWwgb3B0aW9ucyBmb3Ig YHNxbC14eXotcHJvZ3JhbScuIgo7OyAgICAgICA6dHlwZSAnKHJlcGVhdCBz dHJpbmcpCjs7ICAgICAgIDpncm91cCAnU1FMKQoKOzsgNCkgQWRkIGFuIGVu dHJ5IHRvIFNRTC0+UHJvZHVjdCBzdWJtZW51LgoKOzsgICAgIFsiWHl6REIi IHNxbC1oaWdobGlnaHQteHl6LWtleXdvcmRzCjs7ICAgICAgOnN0eWxlIHJh ZGlvCjs7ICAgICAgOnNlbGVjdGVkIChlcSBzcWwtcHJvZHVjdCAneHl6KV0K Cjs7IDUpIEFkZCB0aGUgZm9udC1sb2NrIHNwZWNpZmljYXRpb25zLiAgQXQg YSBtaW5pbXVtLCBkZWZhdWx0IHRvCjs7ICAgIHVzaW5nIEFOU0kga2V5d29y ZHMuICBTZWUgc3FsLW1vZGUtb3JhY2xlLWZvbnQtbG9jay1rZXl3b3JkcyBm b3IKOzsgICAgYSBtb3JlIGNvbXBsZXggZXhhbXBsZS4KCjs7ICAgICAoZGVm dmFyIHNxbC1tb2RlLXh5ei1mb250LWxvY2sta2V5d29yZHMgbmlsCjs7ICAg ICAgICJYeXpEQiBTUUwga2V5d29yZHMgdXNlZCBieSBmb250LWxvY2suIikK Cjs7IDYpIEFkZCBhIHByb2R1Y3QgaGlnaGxpZ2h0aW5nIGZ1bmN0aW9uLgoK OzsgICAgIChkZWZ1biBzcWwtaGlnaGxpZ2h0LXh5ei1rZXl3b3JkcyAoKQo7 OyAgICAgICAiSGlnaGxpZ2h0IFh5ekRCIGtleXdvcmRzLiIKOzsgICAgICAg KGludGVyYWN0aXZlKQo7OyAgICAgICAoc3FsLXNldC1wcm9kdWN0ICd4eXop KQoKOzsgNykgQWRkIGFuIGF1dG9sb2FkZWQgU1FMaSBmdW5jdGlvbi4KCjs7 ICAgICA7OzsjIyNhdXRvbG9hZAo7OyAgICAgKGRlZnVuIHNxbC14eXogKCkK OzsgICAgICAgIlJ1biBpeHl6IGJ5IFh5ekRCIGFzIGFuIGluZmVyaW9yIHBy b2Nlc3MuIgo7OyAgICAgICAoaW50ZXJhY3RpdmUpCjs7ICAgICAgIChzcWwt cHJvZHVjdC1pbnRlcmFjdGl2ZSAneHl6KSkKCjs7IDgpIEFkZCBhIGNvbm5l Y3QgZnVuY3Rpb24gd2hpY2ggZm9ybWF0cyB0aGUgY29tbWFuZCBsaW5lIGFy Z3VtZW50cwo7OyAgICBhbmQgc3RhcnRzIHRoZSBwcm9kdWN0IGludGVycHJl dGVyIGluIGEgY29taW50IGJ1ZmZlci4gIFNlZSB0aGUKOzsgICAgZXhpc3Rp bmcgY29ubmVjdCBmdW5jdGlvbnMgZm9yIGV4YW1wbGVzIG9mIHRoZSB0eXBl cyBvZgo7OyAgICBwcm9jZXNzaW5nIGF2YWlsYWJsZS4KCjs7ICAgICAoZGVm dW4gc3FsLWNvbm5lY3QteHl6ICgpCjs7ICAgICAgICJDcmVhdGUgY29taW50 IGJ1ZmZlciBhbmQgY29ubmVjdCB0byBYeXpEQiB1c2luZyB0aGUgbG9naW4K OzsgICAgIHBhcmFtZXRlcnMgYW5kIGNvbW1hbmQgb3B0aW9ucy4iCjs7Cjs7 ICAgICAgICAgOzsgRG8gc29tZXRoaW5nIHdpdGggYHNxbC11c2VyJywgYHNx bC1wYXNzd29yZCcsCjs7ICAgICAgICAgOzsgYHNxbC1kYXRhYmFzZScsIGFu ZCBgc3FsLXNlcnZlcicuCjs7ICAgICAgICAgKGxldCAoKHBhcmFtcyBzcWwt eHl6LW9wdGlvbnMpKQo7OyAgICAgICAgICAgKGlmIChub3QgKHN0cmluZz0g IiIgc3FsLXNlcnZlcikpCjs7ICAgICAgICAgICAgICAoc2V0cSBwYXJhbXMg KGFwcGVuZCAobGlzdCAiLVMiIHNxbC1zZXJ2ZXIpIHBhcmFtcykpKQo7OyAg ICAgICAgICAgKGlmIChub3QgKHN0cmluZz0gIiIgc3FsLWRhdGFiYXNlKSkK OzsgICAgICAgICAgICAgICAoc2V0cSBwYXJhbXMgKGFwcGVuZCAobGlzdCAi LUQiIHNxbC1kYXRhYmFzZSkgcGFyYW1zKSkpCjs7ICAgICAgICAgICAoaWYg KG5vdCAoc3RyaW5nPSAiIiBzcWwtcGFzc3dvcmQpKQo7OyAgICAgICAgICAg ICAgIChzZXRxIHBhcmFtcyAoYXBwZW5kIChsaXN0ICItUCIgc3FsLXBhc3N3 b3JkKSBwYXJhbXMpKSkKOzsgICAgICAgICAgIChpZiAobm90IChzdHJpbmc9 ICIiIHNxbC11c2VyKSkKOzsgICAgICAgICAgICAgICAoc2V0cSBwYXJhbXMg KGFwcGVuZCAobGlzdCAiLVUiIHNxbC11c2VyKSBwYXJhbXMpKSkKOzsgICAg ICAgICAgIChzZXQtYnVmZmVyIChhcHBseSAnbWFrZS1jb21pbnQgIlNRTCIg c3FsLXh5ei1wcm9ncmFtCjs7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbmlsIHBhcmFtcykpKSkKCjs7IDkpIFNhdmUgYW5kIGNvbXBpbGUgc3Fs LmVsLgoKOzs7IFRvIERvOgoKOzsgQWRkIGJldHRlciBoaWxpZ2h0IHN1cHBv cnQgZm9yIG90aGVyIGJyYW5kczsgdGhlcmUgaXMgYSBiaWFzIHRvd2FyZHMK OzsgT3JhY2xlIGJlY2F1c2UgdGhhdCdzIHdoYXQgSSB1c2UgYXQgd29yay4g IEFueWJvZHkgZWxzZSBqdXN0IHNlbmQgaW4KOzsgeW91ciBsaXN0cyBvZiBy ZXNlcnZlZCB3b3Jkcywga2V5d29yZHMgYW5kIGJ1aWx0aW4gZnVuY3Rpb25z ISAgQXMKOzsgbG9uZyBhcyBJIGRvbid0IHJlY2VpdmUgYW55IGZlZWRiYWNr LCBldmVyeXRoaW5nIGlzIGhpbGlnaHRlZCB3aXRoCjs7IEFOU0kga2V5d29y ZHMgb25seS4gIEkgcmVjZWl2ZWQgdGhlIGxpc3Qgb2YgQU5TSSBrZXl3b3Jk cyBmcm9tIGEKOzsgdXNlcjsgaWYgeW91IGtub3cgb2YgYW55IGNoYW5nZXMs IGxldCBtZSBrbm93LgoKOzsgQWRkIGRpZmZlcmVudCBoaWxpZ2h0aW5nIGxl dmVscy4KCjs7OyBUaGFua3MgdG8gYWxsIHRoZSBwZW9wbGUgd2hvIGhlbHBl ZCBtZSBvdXQ6Cgo7OyBBbGV4IFNjaHJvZWRlciA8YWxleEBnbnUub3JnPgo7 OyBLYWkgQmxhdWJlcmcgPGthaS5ibGF1YmVyZ0BtZXRsYS5maT4KOzsgPGli YWxhYmFuQGRhbGV0LmNvbT4KOzsgWWFpciBGcmllZG1hbiA8eWZyaWVkbWFA Sm9obkJyeWNlLkNvLklsPgo7OyBHcmVnb3IgWnljaCA8enljaEBwb29sLmlu Zm9ybWF0aWsucnd0aC1hYWNoZW4uZGU+Cjs7IG5pbm8gPG5pbm9AaW5mb3Jt LmRrPgo7OyBCZXJlbmQgZGUgQm9lciA8YmVyZW5kQHBvYm94LmNvbT4KOzsg QWRhbSBKZW5raW5zIDxhZGFtQHRoZWplbmtpbnMub3JnPgo7OyBNaWNoYWVs IE1hdWdlciA8bW1hdWdAeWFob28uY29tPiAtLSBpbXByb3ZlZCBwcm9kdWN0 IHN1cHBvcnQKOzsgRHJldyBBZGFtcyA8ZHJldy5hZGFtc0BvcmFjbGUuY29t PiAtLSBFbWFjcyAyMCBzdXBwb3J0Cjs7IEhhcmFsZCBNYWllciA8bWFpZXJo QG15c2VsZi5jb20+IC0tIHNxbC1zZW5kLXN0cmluZwo7OyBTdGVmYW4gTW9u bmllciA8bW9ubmllckBpcm8udW1vbnRyZWFsLmNhPiAtLSBmb250LWxvY2sg Y29ycmVjdGlvbnMKCgwKCjs7OyBDb2RlOgoKKHJlcXVpcmUgJ2NvbWludCkK OzsgTmVlZCB0aGUgZm9sbG93aW5nIHRvIGFsbG93IEdOVSBFbWFjcyAxOSB0 byBjb21waWxlIHRoZSBmaWxlLgooZXZhbC13aGVuLWNvbXBpbGUKICAocmVx dWlyZSAncmVnZXhwLW9wdCkpCihyZXF1aXJlICdjdXN0b20pCihldmFsLXdo ZW4tY29tcGlsZSA7OyBuZWVkZWQgaW4gRW1hY3MgMTksIDIwCiAgKHNldHEg bWF4LXNwZWNwZGwtc2l6ZSAyMDAwKSkKCihkZWZ2YXIgZm9udC1sb2NrLWtl eXdvcmQtZmFjZSkKKGRlZnZhciBmb250LWxvY2stc2V0LWRlZmF1bHRzKQoo ZGVmdmFyIGZvbnQtbG9jay1zdHJpbmctZmFjZSkKCjs7OyBBbGxvdyBjdXN0 b21pemF0aW9uCgooZGVmZ3JvdXAgU1FMIG5pbAogICJSdW5uaW5nIGEgU1FM IGludGVycHJldGVyIGZyb20gd2l0aGluIEVtYWNzIGJ1ZmZlcnMuIgogIDp2 ZXJzaW9uICIyMC40IgogIDpncm91cCAncHJvY2Vzc2VzKQoKOzsgVGhlc2Ug Zm91ciB2YXJpYWJsZXMgd2lsbCBiZSB1c2VkIGFzIGRlZmF1bHRzLCBpZiBz ZXQuCgooZGVmY3VzdG9tIHNxbC11c2VyICIiCiAgIipEZWZhdWx0IHVzZXJu YW1lLiIKICA6dHlwZSAnc3RyaW5nCiAgOmdyb3VwICdTUUwpCgooZGVmY3Vz dG9tIHNxbC1wYXNzd29yZCAiIgogICIqRGVmYXVsdCBwYXNzd29yZC4KClN0 b3JpbmcgeW91ciBwYXNzd29yZCBpbiBhIHRleHRmaWxlIHN1Y2ggYXMgfi8u ZW1hY3MgY291bGQgYmUgZGFuZ2Vyb3VzLgpDdXN0b21pemluZyB5b3VyIHBh c3N3b3JkIHdpbGwgc3RvcmUgaXQgaW4geW91ciB+Ly5lbWFjcyBmaWxlLiIK ICA6dHlwZSAnc3RyaW5nCiAgOmdyb3VwICdTUUwpCgooZGVmY3VzdG9tIHNx bC1kYXRhYmFzZSAiIgogICIqRGVmYXVsdCBkYXRhYmFzZS4iCiAgOnR5cGUg J3N0cmluZwogIDpncm91cCAnU1FMKQoKKGRlZmN1c3RvbSBzcWwtc2VydmVy ICIiCiAgIipEZWZhdWx0IHNlcnZlciBvciBob3N0LiIKICA6dHlwZSAnc3Ry aW5nCiAgOmdyb3VwICdTUUwpCgo7OyBTUUwgUHJvZHVjdCBzdXBwb3J0Cgoo ZGVmdmFyIHNxbC1pbnRlcmFjdGl2ZS1wcm9kdWN0IG5pbAogICJQcm9kdWN0 IHVuZGVyIGBzcWwtaW50ZXJhY3RpdmUtbW9kZScuIikKCihkZWZ2YXIgc3Fs LXByb2R1Y3QtYWxpc3QKICAnKChhbnNpCiAgICAgOm5hbWUgIkFOU0kiCiAg ICAgOmZvbnQtbG9jayBzcWwtbW9kZS1hbnNpLWZvbnQtbG9jay1rZXl3b3Jk cykKICAgIChkYjIKICAgICA6bmFtZSAiREIyIgogICAgIDpmb250LWxvY2sg c3FsLW1vZGUtZGIyLWZvbnQtbG9jay1rZXl3b3JkcwogICAgIDpzcWxpLWxv Z2luIG5pbAogICAgIDpzcWxpLWNvbm5lY3Qgc3FsLWNvbm5lY3QtZGIyCiAg ICAgOnNxbGktcHJvbXB0LXJlZ2V4cCAiXmRiMiA9PiAiCiAgICAgOnNxbGkt cHJvbXB0LWxlbmd0aCA3KQogICAgKGluZm9ybWl4CiAgICAgOmZvbnQtbG9j ayBzcWwtbW9kZS1pbmZvcm1peC1mb250LWxvY2sta2V5d29yZHMKICAgICA6 c3FsaS1sb2dpbiAoZGF0YWJhc2UpCiAgICAgOnNxbGktY29ubmVjdCBzcWwt Y29ubmVjdC1pbmZvcm1peAogICAgIDpzcWxpLXByb21wdC1yZWdleHAgIl5T UUw+ICIKICAgICA6c3FsaS1wcm9tcHQtbGVuZ3RoIDUpCiAgICAoaW5ncmVz CiAgICAgOmZvbnQtbG9jayBzcWwtbW9kZS1pbmdyZXMtZm9udC1sb2NrLWtl eXdvcmRzCiAgICAgOnNxbGktbG9naW4gKGRhdGFiYXNlKQogICAgIDpzcWxp LWNvbm5lY3Qgc3FsLWNvbm5lY3QtaW5ncmVzCiAgICAgOnNxbGktcHJvbXB0 LXJlZ2V4cCAiXlwqICIKICAgICA6c3FsaS1wcm9tcHQtbGVuZ3RoIDIpCiAg ICAoaW50ZXJiYXNlCiAgICAgOmZvbnQtbG9jayBzcWwtbW9kZS1pbnRlcmJh c2UtZm9udC1sb2NrLWtleXdvcmRzCiAgICAgOnNxbGktbG9naW4gKHVzZXIg cGFzc3dvcmQgZGF0YWJhc2UpCiAgICAgOnNxbGktY29ubmVjdCBzcWwtY29u bmVjdC1pbnRlcmJhc2UKICAgICA6c3FsaS1wcm9tcHQtcmVnZXhwICJeU1FM PiAiCiAgICAgOnNxbGktcHJvbXB0LWxlbmd0aCA1KQogICAgKGxpbnRlcgog ICAgIDpmb250LWxvY2sgc3FsLW1vZGUtbGludGVyLWZvbnQtbG9jay1rZXl3 b3JkcwogICAgIDpzcWxpLWxvZ2luICh1c2VyIHBhc3N3b3JkIGRhdGFiYXNl IHNlcnZlcikKICAgICA6c3FsaS1jb25uZWN0IHNxbC1jb25uZWN0LWxpbnRl cgogICAgIDpzcWxpLXByb21wdC1yZWdleHAgIl5TUUw+IgogICAgIDpzcWxp LXByb21wdC1sZW5ndGggNCkKICAgIChtcwogICAgIDpuYW1lICJNUyBTUUxT ZXJ2ZXIiCiAgICAgOmZvbnQtbG9jayBzcWwtbW9kZS1tcy1mb250LWxvY2st a2V5d29yZHMKICAgICA6c3FsaS1sb2dpbiAodXNlciBwYXNzd29yZCBzZXJ2 ZXIgZGF0YWJhc2UpCiAgICAgOnNxbGktY29ubmVjdCBzcWwtY29ubmVjdC1t cwogICAgIDpzcWxpLXByb21wdC1yZWdleHAgIl5bMC05XSo+IgogICAgIDpz cWxpLXByb21wdC1sZW5ndGggNQogICAgIDpzeW50YXgtYWxpc3QgKCg/QCAu ICJ3IikpKQogICAgKG15c3FsCiAgICAgOm5hbWUgIk15U1FMIgogICAgIDpm b250LWxvY2sgc3FsLW1vZGUtbXlzcWwtZm9udC1sb2NrLWtleXdvcmRzCiAg ICAgOnNxbGktbG9naW4gKHVzZXIgcGFzc3dvcmQgZGF0YWJhc2Ugc2VydmVy KQogICAgIDpzcWxpLWNvbm5lY3Qgc3FsLWNvbm5lY3QtbXlzcWwKICAgICA6 c3FsaS1wcm9tcHQtcmVnZXhwICJebXlzcWw+ICIKICAgICA6c3FsaS1wcm9t cHQtbGVuZ3RoIDYpCiAgICAob3JhY2xlCiAgICAgOmZvbnQtbG9jayBzcWwt bW9kZS1vcmFjbGUtZm9udC1sb2NrLWtleXdvcmRzCiAgICAgOnNxbGktbG9n aW4gKHVzZXIgcGFzc3dvcmQgZGF0YWJhc2UpCiAgICAgOnNxbGktY29ubmVj dCBzcWwtY29ubmVjdC1vcmFjbGUKICAgICA6c3FsaS1wcm9tcHQtcmVnZXhw ICJeU1FMPiAiCiAgICAgOnNxbGktcHJvbXB0LWxlbmd0aCA1CiAgICAgOnN5 bnRheC1hbGlzdCAoKD8kIC4gInciKSAoPyMgLiAidyIpKSkKICAgIChwb3N0 Z3JlcwogICAgIDpmb250LWxvY2sgc3FsLW1vZGUtcG9zdGdyZXMtZm9udC1s b2NrLWtleXdvcmRzCiAgICAgOnNxbGktbG9naW4gKHVzZXIgZGF0YWJhc2Ug c2VydmVyKQogICAgIDpzcWxpLWNvbm5lY3Qgc3FsLWNvbm5lY3QtcG9zdGdy ZXMKICAgICA6c3FsaS1wcm9tcHQtcmVnZXhwICJeLipbIz5dICoiCiAgICAg OnNxbGktcHJvbXB0LWxlbmd0aCA1KQogICAgKHNvbGlkCiAgICAgOmZvbnQt bG9jayBzcWwtbW9kZS1zb2xpZC1mb250LWxvY2sta2V5d29yZHMKICAgICA6 c3FsaS1sb2dpbiAodXNlciBwYXNzd29yZCBzZXJ2ZXIpCiAgICAgOnNxbGkt Y29ubmVjdCBzcWwtY29ubmVjdC1zb2xpZAogICAgIDpzcWxpLXByb21wdC1y ZWdleHAgIl4iCiAgICAgOnNxbGktcHJvbXB0LWxlbmd0aCAwKQogICAgKHNx bGl0ZQogICAgIDpuYW1lICJTUUxpdGUiCiAgICAgOmZvbnQtbG9jayBzcWwt bW9kZS1zcWxpdGUtZm9udC1sb2NrLWtleXdvcmRzCiAgICAgOnNxbGktbG9n aW4gKGRhdGFiYXNlKQogICAgIDpzcWxpLWNvbm5lY3Qgc3FsLWNvbm5lY3Qt c3FsaXRlCiAgICAgOnNxbGktcHJvbXB0LXJlZ2V4cCAiXnNxbGl0ZT4gIgog ICAgIDpzcWxpLXByb21wdC1sZW5ndGggOCkKICAgIChzeWJhc2UKICAgICA6 Zm9udC1sb2NrIHNxbC1tb2RlLXN5YmFzZS1mb250LWxvY2sta2V5d29yZHMK ICAgICA6c3FsaS1sb2dpbiAoc2VydmVyIHVzZXIgcGFzc3dvcmQgZGF0YWJh c2UpCiAgICAgOnNxbGktY29ubmVjdCBzcWwtY29ubmVjdC1zeWJhc2UKICAg ICA6c3FsaS1wcm9tcHQtcmVnZXhwICJeU1FMPiAiCiAgICAgOnNxbGktcHJv bXB0LWxlbmd0aCA1CiAgICAgOnN5bnRheC1hbGlzdCAoKD9AIC4gInciKSkp CiAgICApCiAgIlRoaXMgdmFyaWFibGUgY29udGFpbnMgYSBsaXN0IG9mIHBy b2R1Y3QgZmVhdHVyZXMgZm9yIGVhY2ggb2YgdGhlClNRTCBwcm9kdWN0cyBo YW5kbGVkIGJ5IGBzcWwtbW9kZScuICBXaXRob3V0IGFuIGVudHJ5IGluIHRo aXMgbGlzdCBhCnByb2R1Y3Qgd2lsbCBub3QgYmUgcHJvcGVybHkgaGlnaGxp Z2h0ZWQgYW5kIHdpbGwgbm90IHN1cHBvcnQKYHNxbC1pbnRlcmFjdGl2ZS1t b2RlJy4KCkVhY2ggZWxlbWVudCBpbiB0aGUgbGlzdCBpcyBpbiB0aGUgZm9s bG93aW5nIGZvcm1hdDoKCiBcKFBST0RVQ1QgRkVBVFVSRSBWQUxVRSAuLi4p Cgp3aGVyZSBQUk9EVUNUIGlzIHRoZSBhcHByb3ByaWF0ZSB2YWx1ZSBvZiBg c3FsLXByb2R1Y3QnLiAgVGhlIHByb2R1Y3QKbmFtZSBpcyB0aGVuIGZvbGxv d2VkIGJ5IEZFQVRVUkUtVkFMVUUgcGFpcnMuICBJZiBhIEZFQVRVUkUgaXMg bm90CnNwZWNpZmllZCwgaXRzIFZBTFVFIGlzIHRyZWF0ZWQgYXMgbmlsLiAg RkVBVFVSRSBtdXN0IGJlIG9uZSBvZiB0aGUKZm9sbG93aW5nOgoKIDpmb250 LWxvY2sgICAgICAgICAgICAgbmFtZSBvZiB0aGUgdmFyaWFibGUgY29udGFp bmluZyB0aGUgcHJvZHVjdAogICAgICAgICAgICAgICAgICAgICAgICBzcGVj aWZpYyBmb250IGxvY2sgaGlnaGxpZ2h0aW5nIHBhdHRlcm5zLgoKIDpzcWxp LWxvZ2luICAgICAgICAgICAgYSBsaXN0IG9mIGxvZ2luIHBhcmFtZXRlcnMg KGkuZS4sIHVzZXIsCiAgICAgICAgICAgICAgICAgICAgICAgIHBhc3N3b3Jk LCBkYXRhYmFzZSBhbmQgc2VydmVyKSBuZWVkZWQgdG8KICAgICAgICAgICAg ICAgICAgICAgICAgY29ubmVjdCB0byB0aGUgZGF0YWJhc2UuCgogOnNxbGkt Y29ubmVjdCAgICAgICAgICB0aGUgbmFtZSBvZiBhIGZ1bmN0aW9uIHdoaWNo IGFjY2VwdHMgbm8KICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVy cyB0aGF0IHdpbGwgdXNlIHRoZSB2YWx1ZXMgb2YKICAgICAgICAgICAgICAg ICAgICAgICAgYHNxbC11c2VyJywgYHNxbC1wYXNzd29yZCcsCiAgICAgICAg ICAgICAgICAgICAgICAgIGBzcWwtZGF0YWJhc2UnIGFuZCBgc3FsLXNlcnZl cicgdG8gb3BlbiBhCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbWludCBi dWZmZXIgYW5kIGNvbm5lY3QgdG8gdGhlCiAgICAgICAgICAgICAgICAgICAg ICAgIGRhdGFiYXNlLiAgRG8gcHJvZHVjdCBzcGVjaWZpYwogICAgICAgICAg ICAgICAgICAgICAgICBjb25maWd1cmF0aW9uIG9mIGNvbWludCBpbiB0aGlz IGZ1bmN0aW9uLgoKIDpzcWxpLXByb21wdC1yZWdleHAgICAgYSByZWd1bGFy IGV4cHJlc3Npb24gc3RyaW5nIHRoYXQgbWF0Y2hlcwogICAgICAgICAgICAg ICAgICAgICAgICB0aGUgcHJvbXB0IGlzc3VlZCBieSB0aGUgcHJvZHVjdAog ICAgICAgICAgICAgICAgICAgICAgICBpbnRlcnByZXRlci4gIChOb3QgbmVl ZGVkIGluIDIxLjMrKQoKIDpzcWxpLXByb21wdC1sZW5ndGggICAgdGhlIGxl bmd0aCBvZiB0aGUgcHJvbXB0IG9uIHRoZSBsaW5lLihOb3QKICAgICAgICAg ICAgICAgICAgICAgICAgbmVlZGVkIGluIDIxLjMrKQoKIDpzeW50YXgtYWxp c3QgICAgICAgICAgYW4gYWxpc3Qgb2Ygc3ludGF4IHRhYmxlIGVudHJpZXMg dG8gZW5hYmxlCiAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNpYWwgY2hh cmFjdGVyIHRyZWF0bWVudCBieSBmb250LWxvY2sgYW5kCiAgICAgICAgICAg ICAgICAgICAgICAgIGltZW51LiAiKQoKKGRlZmN1c3RvbSBzcWwtcHJvZHVj dCAnYW5zaQogICIqU2VsZWN0IHRoZSBTUUwgZGF0YWJhc2UgcHJvZHVjdCB1 c2VkIHNvIHRoYXQgYnVmZmVycyBjYW4gYmUKaGlnaGxpZ2h0ZWQgcHJvcGVy bHkgd2hlbiB5b3Ugb3BlbiB0aGVtLiIKICA6dHlwZSBgKGNob2ljZQogICAg ICAgICAgLEAobWFwY2FyIChsYW1iZGEgKHByb2QtaW5mbykKICAgICAgICAg ICAgICAgICAgICAgIGAoY29uc3QgOnRhZwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAsKG9yIChwbGlzdC1nZXQgKGNkciBwcm9kLWluZm8pIDpu YW1lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYXBp dGFsaXplIChzeW1ib2wtbmFtZSAoY2FyIHByb2QtaW5mbykpKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLChjYXIgcHJvZC1pbmZvKSkpCiAg ICAgICAgICAgICAgICAgICAgc3FsLXByb2R1Y3QtYWxpc3QpKQogIDpncm91 cCAnU1FMKQoKOzsgbWlzYyBjdXN0b21pemF0aW9uIG9mIHNxbC5lbCBiZWhh dmlvcgoKKGRlZmN1c3RvbSBzcWwtZWxlY3RyaWMtc3R1ZmYgbmlsCiAgIlRy ZWF0IHNvbWUgaW5wdXQgYXMgZWxlY3RyaWMuCklmIHNldCB0byB0aGUgc3lt Ym9sIGBzZW1pY29sb24nLCB0aGVuIGhpdHRpbmcgYDsnIHdpbGwgc2VuZCBj dXJyZW50CmlucHV0IGluIHRoZSBTUUxpIGJ1ZmZlciB0byB0aGUgcHJvY2Vz cy4KSWYgc2V0IHRvIHRoZSBzeW1ib2wgYGdvJywgdGhlbiBoaXR0aW5nIGBn bycgb24gYSBsaW5lIGJ5IGl0c2VsZiB3aWxsCnNlbmQgY3VycmVudCBpbnB1 dCBpbiB0aGUgU1FMaSBidWZmZXIgdG8gdGhlIHByb2Nlc3MuCklmIHNldCB0 byBuaWwsIHRoZW4geW91IG11c3QgdXNlIFxcW2NvbWludC1zZW5kLWlucHV0 XSBpbiBvcmRlciB0byBzZW5kCmN1cnJlbnQgaW5wdXQgaW4gdGhlIFNRTGkg YnVmZmVyIHRvIHRoZSBwcm9jZXNzLiIKICA6dHlwZSAnKGNob2ljZSAoY29u c3QgOnRhZyAiTm90aGluZyIgbmlsKQoJCSAoY29uc3QgOnRhZyAiVGhlIHNl bWljb2xvbiBgOyciIHNlbWljb2xvbikKCQkgKGNvbnN0IDp0YWcgIlRoZSBz dHJpbmcgYGdvJyBieSBpdHNlbGYiIGdvKSkKICA6dmVyc2lvbiAiMjAuOCIK ICA6Z3JvdXAgJ1NRTCkKCihkZWZjdXN0b20gc3FsLXBvcC10by1idWZmZXIt YWZ0ZXItc2VuZC1yZWdpb24gbmlsCiAgIipJZiB0LCBwb3AgdG8gdGhlIGJ1 ZmZlciBTUUwgc3RhdGVtZW50cyBhcmUgc2VudCB0by4KCkFmdGVyIGEgY2Fs bCB0byBgc3FsLXNlbmQtcmVnaW9uJyBvciBgc3FsLXNlbmQtYnVmZmVyJywK dGhlIHdpbmRvdyBpcyBzcGxpdCBhbmQgdGhlIFNRTGkgYnVmZmVyIGlzIHNo b3duLiAgSWYgdGhpcwp2YXJpYWJsZSBpcyBub3QgbmlsLCB0aGF0IGJ1ZmZl cidzIHdpbmRvdyB3aWxsIGJlIHNlbGVjdGVkCmJ5IGNhbGxpbmcgYHBvcC10 by1idWZmZXInLiAgSWYgdGhpcyB2YXJpYWJsZSBpcyBuaWwsIHRoYXQKYnVm ZmVyIGlzIHNob3duIHVzaW5nIGBkaXNwbGF5LWJ1ZmZlcicuIgogIDp0eXBl ICdib29sZWFuCiAgOmdyb3VwICdTUUwpCgo7OyBpbWVudSBzdXBwb3J0IGZv ciBzcWwtbW9kZS4KCihkZWZ2YXIgc3FsLWltZW51LWdlbmVyaWMtZXhwcmVz c2lvbgogIDs7IEl0ZW1zIGFyZSBpbiByZXZlcnNlIG9yZGVyIGJlY2F1c2Ug dGhleSBhcmUgcmVuZGVyZWQgaW4gcmV2ZXJzZS4KICAnKCgiUnVsZXMvRGVm YXVsdHMiICJeXFxzLSpjcmVhdGVcXHMtK1xcKFxcdytcXHMtK1xcKSpcXChy dWxlXFx8ZGVmYXVsdFxcKVxccy0rXFwoXFx3K1xcKSIgMykKICAgICgiU2Vx dWVuY2VzIiAiXlxccy0qY3JlYXRlXFxzLStcXChcXHcrXFxzLStcXCkqc2Vx dWVuY2VcXHMtK1xcKFxcdytcXCkiIDIpCiAgICAoIlRyaWdnZXJzIiAiXlxc cy0qY3JlYXRlXFxzLStcXChcXHcrXFxzLStcXCkqdHJpZ2dlclxccy0rXFwo XFx3K1xcKSIgMikKICAgICgiRnVuY3Rpb25zIiAiXlxccy0qXFwoY3JlYXRl XFxzLStcXChcXHcrXFxzLStcXCkqXFwpP2Z1bmN0aW9uXFxzLStcXChcXHcr XFwpIiAzKQogICAgKCJQcm9jZWR1cmVzIiAiXlxccy0qXFwoY3JlYXRlXFxz LStcXChcXHcrXFxzLStcXCkqXFwpP3Byb2NcXChlZHVyZVxcKT9cXHMtK1xc KFxcdytcXCkiIDQpCiAgICAoIlBhY2thZ2VzIiAiXlxccy0qY3JlYXRlXFxz LStcXChcXHcrXFxzLStcXCkqcGFja2FnZVxccy0rXFwoYm9keVxccy0rXFwp P1xcKFxcdytcXCkiIDMpCiAgICAoIkluZGV4ZXMiICJeXFxzLSpjcmVhdGVc XHMtK1xcKFxcdytcXHMtK1xcKSppbmRleFxccy0rXFwoXFx3K1xcKSIgMikK ICAgICgiVGFibGVzL1ZpZXdzIiAiXlxccy0qY3JlYXRlXFxzLStcXChcXHcr XFxzLStcXCkqXFwodGFibGVcXHx2aWV3XFwpXFxzLStcXChcXHcrXFwpIiAz KSkKICAiRGVmaW5lIGludGVyZXN0aW5nIHBvaW50cyBpbiB0aGUgU1FMIGJ1 ZmZlciBmb3IgYGltZW51Jy4KClRoaXMgaXMgdXNlZCB0byBzZXQgYGltZW51 LWdlbmVyaWMtZXhwcmVzc2lvbicgd2hlbiBTUUwgbW9kZSBpcwplbnRlcmVk LiAgU3Vic2VxdWVudCBjaGFuZ2VzIHRvIGBzcWwtaW1lbnUtZ2VuZXJpYy1l eHByZXNzaW9uJyB3aWxsCm5vdCBhZmZlY3QgZXhpc3RpbmcgU1FMIGJ1ZmZl cnMgYmVjYXVzZSBpbWVudS1nZW5lcmljLWV4cHJlc3Npb24gaXMKYSBsb2Nh bCB2YXJpYWJsZS4iKQoKOzsgaGlzdG9yeSBmaWxlCgooZGVmY3VzdG9tIHNx bC1pbnB1dC1yaW5nLWZpbGUtbmFtZSBuaWwKICAiKklmIG5vbi1uaWwsIG5h bWUgb2YgdGhlIGZpbGUgdG8gcmVhZC93cml0ZSBpbnB1dCBoaXN0b3J5LgoK WW91IGhhdmUgdG8gc2V0IHRoaXMgdmFyaWFibGUgaWYgeW91IHdhbnQgdGhl IGhpc3Rvcnkgb2YgeW91ciBjb21tYW5kcwpzYXZlZCBmcm9tIG9uZSBFbWFj cyBzZXNzaW9uIHRvIHRoZSBuZXh0LiAgSWYgdGhpcyB2YXJpYWJsZSBpcyBz ZXQsCmV4aXRpbmcgdGhlIFNRTCBpbnRlcnByZXRlciBpbiBhbiBTUUxpIGJ1 ZmZlciB3aWxsIHdyaXRlIHRoZSBpbnB1dApoaXN0b3J5IHRvIHRoZSBzcGVj aWZpZWQgZmlsZS4gIFN0YXJ0aW5nIGEgbmV3IHByb2Nlc3MgaW4gYSBTUUxp IGJ1ZmZlcgp3aWxsIHJlYWQgdGhlIGlucHV0IGhpc3RvcnkgZnJvbSB0aGUg c3BlY2lmaWVkIGZpbGUuCgpUaGlzIGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSBg Y29taW50LWlucHV0LXJpbmctZmlsZS1uYW1lJy4KCk5vdGUgdGhhdCB0aGUg c2l6ZSBvZiB0aGUgaW5wdXQgaGlzdG9yeSBpcyBkZXRlcm1pbmVkIGJ5IHRo ZSB2YXJpYWJsZQpgY29taW50LWlucHV0LXJpbmctc2l6ZScuIgogIDp0eXBl ICcoY2hvaWNlIChjb25zdCA6dGFnICJub25lIiBuaWwpCgkJIChmaWxlKSkK ICA6Z3JvdXAgJ1NRTCkKCihkZWZjdXN0b20gc3FsLWlucHV0LXJpbmctc2Vw YXJhdG9yICJcbi0tXG4iCiAgIipTZXBhcmF0b3IgYmV0d2VlbiBjb21tYW5k cyBpbiB0aGUgaGlzdG9yeSBmaWxlLgoKSWYgc2V0IHRvIFwiXFxuXCIsIGVh Y2ggbGluZSBpbiB0aGUgaGlzdG9yeSBmaWxlIHdpbGwgYmUgaW50ZXJwcmV0 ZWQgYXMKb25lIGNvbW1hbmQuICBNdWx0aS1saW5lIGNvbW1hbmRzIGFyZSBz cGxpdCBpbnRvIHNldmVyYWwgY29tbWFuZHMgd2hlbgp0aGUgaW5wdXQgcmlu ZyBpcyBpbml0aWFsaXplZCBmcm9tIGEgaGlzdG9yeSBmaWxlLgoKVGhpcyB2 YXJpYWJsZSB1c2VkIHRvIGluaXRpYWxpemUgYGNvbWludC1pbnB1dC1yaW5n LXNlcGFyYXRvcicuCmBjb21pbnQtaW5wdXQtcmluZy1zZXBhcmF0b3InIGlz IHBhcnQgb2YgRW1hY3MgMjE7IGlmIHlvdXIgRW1hY3MKZG9lcyBub3QgaGF2 ZSBpdCwgc2V0dGluZyBgc3FsLWlucHV0LXJpbmctc2VwYXJhdG9yJyB3aWxs IGhhdmUgbm8KZWZmZWN0LiAgSW4gdGhhdCBjYXNlIG11bHRpbGluZSBjb21t YW5kcyB3aWxsIGJlIHNwbGl0IGludG8gc2V2ZXJhbApjb21tYW5kcyB3aGVu IHRoZSBpbnB1dCBoaXN0b3J5IGlzIHJlYWQsIGFzIGlmIHlvdSBoYWQgc2V0 CmBzcWwtaW5wdXQtcmluZy1zZXBhcmF0b3InIHRvIFwiXFxuXCIuIgogIDp0 eXBlICdzdHJpbmcKICA6Z3JvdXAgJ1NRTCkKCjs7IFRoZSB1c3VhbCBob29r cwoKKGRlZmN1c3RvbSBzcWwtaW50ZXJhY3RpdmUtbW9kZS1ob29rICcoKQog ICIqSG9vayBmb3IgY3VzdG9taXppbmcgYHNxbC1pbnRlcmFjdGl2ZS1tb2Rl Jy4iCiAgOnR5cGUgJ2hvb2sKICA6Z3JvdXAgJ1NRTCkKCihkZWZjdXN0b20g c3FsLW1vZGUtaG9vayAnKCkKICAiKkhvb2sgZm9yIGN1c3RvbWl6aW5nIGBz cWwtbW9kZScuIgogIDp0eXBlICdob29rCiAgOmdyb3VwICdTUUwpCgooZGVm Y3VzdG9tIHNxbC1zZXQtc3FsaS1ob29rICcoKQogICIqSG9vayBmb3IgcmVh Y3RpbmcgdG8gY2hhbmdlcyBvZiBgc3FsLWJ1ZmZlcicuCgpUaGlzIGlzIGNh bGxlZCBieSBgc3FsLXNldC1zcWxpLWJ1ZmZlcicgd2hlbiB0aGUgdmFsdWUg b2YgYHNxbC1idWZmZXInCmlzIGNoYW5nZWQuIgogIDp0eXBlICdob29rCiAg Omdyb3VwICdTUUwpCgo7OyBDdXN0b21pemF0aW9uIGZvciBPcmFjbGUKCihk ZWZjdXN0b20gc3FsLW9yYWNsZS1wcm9ncmFtICJzcWxwbHVzIgogICIqQ29t bWFuZCB0byBzdGFydCBzcWxwbHVzIGJ5IE9yYWNsZS4KClN0YXJ0cyBgc3Fs LWludGVyYWN0aXZlLW1vZGUnIGFmdGVyIGRvaW5nIHNvbWUgc2V0dXAuCgpP biBXaW5kb3dzLCBcInNxbHBsdXNcIiB1c3VhbGx5IHN0YXJ0cyB0aGUgc3Fs cGx1cyBcIkdVSVwiLiAgSW4gb3JkZXIgdG8Kc3RhcnQgdGhlIHNxbHBsdXMg Y29uc29sZSwgdXNlIFwicGx1czMzXCIgb3Igc29tZXRoaW5nIHNpbWlsYXIu ICBZb3UKd2lsbCBmaW5kIHRoZSBmaWxlIGluIHlvdXIgT3JhbnRcXGJpbiBk aXJlY3RvcnkuCgpUaGUgcHJvZ3JhbSBjYW4gYWxzbyBzcGVjaWZ5IGEgVENQ IGNvbm5lY3Rpb24uICBTZWUgYG1ha2UtY29taW50Jy4iCiAgOnR5cGUgJ2Zp bGUKICA6Z3JvdXAgJ1NRTCkKCihkZWZjdXN0b20gc3FsLW9yYWNsZS1vcHRp b25zIG5pbAogICIqTGlzdCBvZiBhZGRpdGlvbmFsIG9wdGlvbnMgZm9yIGBz cWwtb3JhY2xlLXByb2dyYW0nLiIKICA6dHlwZSAnKHJlcGVhdCBzdHJpbmcp CiAgOnZlcnNpb24gIjIwLjgiCiAgOmdyb3VwICdTUUwpCgo7OyBDdXN0b21p emF0aW9uIGZvciBTUUxpdGUKCihkZWZjdXN0b20gc3FsLXNxbGl0ZS1wcm9n cmFtICJzcWxpdGUiCiAgIipDb21tYW5kIHRvIHN0YXJ0IFNRTGl0ZS4KClN0 YXJ0cyBgc3FsLWludGVyYWN0aXZlLW1vZGUnIGFmdGVyIGRvaW5nIHNvbWUg c2V0dXAuCgpUaGUgcHJvZ3JhbSBjYW4gYWxzbyBzcGVjaWZ5IGEgVENQIGNv bm5lY3Rpb24uICBTZWUgYG1ha2UtY29taW50Jy4iCiAgOnR5cGUgJ2ZpbGUK ICA6Z3JvdXAgJ1NRTCkKCihkZWZjdXN0b20gc3FsLXNxbGl0ZS1vcHRpb25z IG5pbAogICIqTGlzdCBvZiBhZGRpdGlvbmFsIG9wdGlvbnMgZm9yIGBzcWwt c3FsaXRlLXByb2dyYW0nLiIKICA6dHlwZSAnKHJlcGVhdCBzdHJpbmcpCiAg OnZlcnNpb24gIjIwLjgiCiAgOmdyb3VwICdTUUwpCgo7OyBDdXN0b21pemF0 aW9uIGZvciBNeVNxbAoKKGRlZmN1c3RvbSBzcWwtbXlzcWwtcHJvZ3JhbSAi bXlzcWwiCiAgIipDb21tYW5kIHRvIHN0YXJ0IG15c3FsIGJ5IFRjWC4KClN0 YXJ0cyBgc3FsLWludGVyYWN0aXZlLW1vZGUnIGFmdGVyIGRvaW5nIHNvbWUg c2V0dXAuCgpUaGUgcHJvZ3JhbSBjYW4gYWxzbyBzcGVjaWZ5IGEgVENQIGNv bm5lY3Rpb24uICBTZWUgYG1ha2UtY29taW50Jy4iCiAgOnR5cGUgJ2ZpbGUK ICA6Z3JvdXAgJ1NRTCkKCihkZWZjdXN0b20gc3FsLW15c3FsLW9wdGlvbnMg bmlsCiAgIipMaXN0IG9mIGFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgYHNxbC1t eXNxbC1wcm9ncmFtJy4KVGhlIGZvbGxvd2luZyBsaXN0IG9mIG9wdGlvbnMg aXMgcmVwb3J0ZWQgdG8gbWFrZSB0aGluZ3Mgd29yawpvbiBXaW5kb3dzOiBc Ii1DXCIgXCItdFwiIFwiLWZcIiBcIi1uXCIuIgogIDp0eXBlICcocmVwZWF0 IHN0cmluZykKICA6dmVyc2lvbiAiMjAuOCIKICA6Z3JvdXAgJ1NRTCkKCjs7 IEN1c3RvbWl6YXRpb24gZm9yIFNvbGlkCgooZGVmY3VzdG9tIHNxbC1zb2xp ZC1wcm9ncmFtICJzb2xzcWwiCiAgIipDb21tYW5kIHRvIHN0YXJ0IFNPTElE IFNRTCBFZGl0b3IuCgpTdGFydHMgYHNxbC1pbnRlcmFjdGl2ZS1tb2RlJyBh ZnRlciBkb2luZyBzb21lIHNldHVwLgoKVGhlIHByb2dyYW0gY2FuIGFsc28g c3BlY2lmeSBhIFRDUCBjb25uZWN0aW9uLiAgU2VlIGBtYWtlLWNvbWludCcu IgogIDp0eXBlICdmaWxlCiAgOmdyb3VwICdTUUwpCgo7OyBDdXN0b21pemF0 aW9uIGZvciBTeUJhc2UKCihkZWZjdXN0b20gc3FsLXN5YmFzZS1wcm9ncmFt ICJpc3FsIgogICIqQ29tbWFuZCB0byBzdGFydCBpc3FsIGJ5IFN5QmFzZS4K ClN0YXJ0cyBgc3FsLWludGVyYWN0aXZlLW1vZGUnIGFmdGVyIGRvaW5nIHNv bWUgc2V0dXAuCgpUaGUgcHJvZ3JhbSBjYW4gYWxzbyBzcGVjaWZ5IGEgVENQ IGNvbm5lY3Rpb24uICBTZWUgYG1ha2UtY29taW50Jy4iCiAgOnR5cGUgJ2Zp bGUKICA6Z3JvdXAgJ1NRTCkKCihkZWZjdXN0b20gc3FsLXN5YmFzZS1vcHRp b25zIG5pbAogICIqTGlzdCBvZiBhZGRpdGlvbmFsIG9wdGlvbnMgZm9yIGBz cWwtc3liYXNlLXByb2dyYW0nLgpTb21lIHZlcnNpb25zIG9mIGlzcWwgbWln aHQgcmVxdWlyZSB0aGUgLW4gb3B0aW9uIGluIG9yZGVyIHRvIHdvcmsuIgog IDp0eXBlICcocmVwZWF0IHN0cmluZykKICA6dmVyc2lvbiAiMjAuOCIKICA6 Z3JvdXAgJ1NRTCkKCjs7IEN1c3RvbWl6YXRpb24gZm9yIEluZm9ybWl4Cgoo ZGVmY3VzdG9tIHNxbC1pbmZvcm1peC1wcm9ncmFtICJkYmFjY2VzcyIKICAi KkNvbW1hbmQgdG8gc3RhcnQgZGJhY2Nlc3MgYnkgSW5mb3JtaXguCgpTdGFy dHMgYHNxbC1pbnRlcmFjdGl2ZS1tb2RlJyBhZnRlciBkb2luZyBzb21lIHNl dHVwLgoKVGhlIHByb2dyYW0gY2FuIGFsc28gc3BlY2lmeSBhIFRDUCBjb25u ZWN0aW9uLiAgU2VlIGBtYWtlLWNvbWludCcuIgogIDp0eXBlICdmaWxlCiAg Omdyb3VwICdTUUwpCgo7OyBDdXN0b21pemF0aW9uIGZvciBJbmdyZXMKCihk ZWZjdXN0b20gc3FsLWluZ3Jlcy1wcm9ncmFtICJzcWwiCiAgIipDb21tYW5k IHRvIHN0YXJ0IHNxbCBieSBJbmdyZXMuCgpTdGFydHMgYHNxbC1pbnRlcmFj dGl2ZS1tb2RlJyBhZnRlciBkb2luZyBzb21lIHNldHVwLgoKVGhlIHByb2dy YW0gY2FuIGFsc28gc3BlY2lmeSBhIFRDUCBjb25uZWN0aW9uLiAgU2VlIGBt YWtlLWNvbWludCcuIgogIDp0eXBlICdmaWxlCiAgOmdyb3VwICdTUUwpCgo7 OyBDdXN0b21pemF0aW9uIGZvciBNaWNyb3NvZnQKCihkZWZjdXN0b20gc3Fs LW1zLXByb2dyYW0gIm9zcWwiCiAgIipDb21tYW5kIHRvIHN0YXJ0IG9zcWwg YnkgTWljcm9zb2Z0LgoKU3RhcnRzIGBzcWwtaW50ZXJhY3RpdmUtbW9kZScg YWZ0ZXIgZG9pbmcgc29tZSBzZXR1cC4KClRoZSBwcm9ncmFtIGNhbiBhbHNv IHNwZWNpZnkgYSBUQ1AgY29ubmVjdGlvbi4gIFNlZSBgbWFrZS1jb21pbnQn LiIKICA6dHlwZSAnZmlsZQogIDpncm91cCAnU1FMKQoKKGRlZmN1c3RvbSBz cWwtbXMtb3B0aW9ucyAnKCItdyIgIjMwMCIgIi1uIikKICA7OyAtdyBpcyB0 aGUgbGluZXNpemUKICAiKkxpc3Qgb2YgYWRkaXRpb25hbCBvcHRpb25zIGZv ciBgc3FsLW1zLXByb2dyYW0nLiIKICA6dHlwZSAnKHJlcGVhdCBzdHJpbmcp CiAgOnZlcnNpb24gIjIyLjEiCiAgOmdyb3VwICdTUUwpCgo7OyBDdXN0b21p emF0aW9uIGZvciBQb3N0Z3JlcwoKKGRlZmN1c3RvbSBzcWwtcG9zdGdyZXMt cHJvZ3JhbSAicHNxbCIKICAiQ29tbWFuZCB0byBzdGFydCBwc3FsIGJ5IFBv c3RncmVzLgoKU3RhcnRzIGBzcWwtaW50ZXJhY3RpdmUtbW9kZScgYWZ0ZXIg ZG9pbmcgc29tZSBzZXR1cC4KClRoZSBwcm9ncmFtIGNhbiBhbHNvIHNwZWNp ZnkgYSBUQ1AgY29ubmVjdGlvbi4gIFNlZSBgbWFrZS1jb21pbnQnLiIKICA6 dHlwZSAnZmlsZQogIDpncm91cCAnU1FMKQoKKGRlZmN1c3RvbSBzcWwtcG9z dGdyZXMtb3B0aW9ucyAnKCItUCIgInBhZ2VyPW9mZiIpCiAgIipMaXN0IG9m IGFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgYHNxbC1wb3N0Z3Jlcy1wcm9ncmFt Jy4KVGhlIGRlZmF1bHQgc2V0dGluZyBpbmNsdWRlcyB0aGUgLVAgb3B0aW9u IHdoaWNoIGJyZWFrcyBvbGRlciB2ZXJzaW9ucwpvZiB0aGUgcHNxbCBjbGll bnQgKHN1Y2ggYXMgdmVyc2lvbiA2LjUuMykuICBUaGUgLVAgb3B0aW9uIGlz IGVxdWl2YWxlbnQKdG8gdGhlIC0tcHNldCBvcHRpb24uICBJZiB5b3Ugd2Fu dCB0aGUgcHNxbCB0byBwcm9tcHQgeW91IGZvciBhIHVzZXIKbmFtZSwgYWRk IHRoZSBzdHJpbmcgXCItdVwiIHRvIHRoZSBsaXN0IG9mIG9wdGlvbnMuICBJ ZiB5b3Ugd2FudCB0bwpwcm92aWRlIGEgdXNlciBuYW1lIG9uIHRoZSBjb21t YW5kIGxpbmUgKG5ld2VyIHZlcnNpb25zIHN1Y2ggYXMgNy4xKSwKYWRkIHlv dXIgbmFtZSB3aXRoIGEgXCItVVwiIHByZWZpeCAoc3VjaCBhcyBcIi1VbWFy a1wiKSB0byB0aGUgbGlzdC4iCiAgOnR5cGUgJyhyZXBlYXQgc3RyaW5nKQog IDp2ZXJzaW9uICIyMC44IgogIDpncm91cCAnU1FMKQoKOzsgQ3VzdG9taXph dGlvbiBmb3IgSW50ZXJiYXNlCgooZGVmY3VzdG9tIHNxbC1pbnRlcmJhc2Ut cHJvZ3JhbSAiaXNxbCIKICAiKkNvbW1hbmQgdG8gc3RhcnQgaXNxbCBieSBJ bnRlcmJhc2UuCgpTdGFydHMgYHNxbC1pbnRlcmFjdGl2ZS1tb2RlJyBhZnRl ciBkb2luZyBzb21lIHNldHVwLgoKVGhlIHByb2dyYW0gY2FuIGFsc28gc3Bl Y2lmeSBhIFRDUCBjb25uZWN0aW9uLiAgU2VlIGBtYWtlLWNvbWludCcuIgog IDp0eXBlICdmaWxlCiAgOmdyb3VwICdTUUwpCgooZGVmY3VzdG9tIHNxbC1p bnRlcmJhc2Utb3B0aW9ucyBuaWwKICAiKkxpc3Qgb2YgYWRkaXRpb25hbCBv cHRpb25zIGZvciBgc3FsLWludGVyYmFzZS1wcm9ncmFtJy4iCiAgOnR5cGUg JyhyZXBlYXQgc3RyaW5nKQogIDp2ZXJzaW9uICIyMC44IgogIDpncm91cCAn U1FMKQoKOzsgQ3VzdG9taXphdGlvbiBmb3IgREIyCgooZGVmY3VzdG9tIHNx bC1kYjItcHJvZ3JhbSAiZGIyIgogICIqQ29tbWFuZCB0byBzdGFydCBkYjIg YnkgSUJNLgoKU3RhcnRzIGBzcWwtaW50ZXJhY3RpdmUtbW9kZScgYWZ0ZXIg ZG9pbmcgc29tZSBzZXR1cC4KClRoZSBwcm9ncmFtIGNhbiBhbHNvIHNwZWNp ZnkgYSBUQ1AgY29ubmVjdGlvbi4gIFNlZSBgbWFrZS1jb21pbnQnLiIKICA6 dHlwZSAnZmlsZQogIDpncm91cCAnU1FMKQoKKGRlZmN1c3RvbSBzcWwtZGIy LW9wdGlvbnMgbmlsCiAgIipMaXN0IG9mIGFkZGl0aW9uYWwgb3B0aW9ucyBm b3IgYHNxbC1kYjItcHJvZ3JhbScuIgogIDp0eXBlICcocmVwZWF0IHN0cmlu ZykKICA6dmVyc2lvbiAiMjAuOCIKICA6Z3JvdXAgJ1NRTCkKCjs7IEN1c3Rv bWl6YXRpb24gZm9yIExpbnRlcgoKKGRlZmN1c3RvbSBzcWwtbGludGVyLXBy b2dyYW0gImlubCIKICAiKkNvbW1hbmQgdG8gc3RhcnQgaW5sIGJ5IFJFTEVY LgoKU3RhcnRzIGBzcWwtaW50ZXJhY3RpdmUtbW9kZScgYWZ0ZXIgZG9pbmcg c29tZSBzZXR1cC4iCiAgOnR5cGUgJ2ZpbGUKICA6Z3JvdXAgJ1NRTCkKCihk ZWZjdXN0b20gc3FsLWxpbnRlci1vcHRpb25zIG5pbAogICIqTGlzdCBvZiBh ZGRpdGlvbmFsIG9wdGlvbnMgZm9yIGBzcWwtbGludGVyLXByb2dyYW0nLiIK ICA6dHlwZSAnKHJlcGVhdCBzdHJpbmcpCiAgOnZlcnNpb24gIjIxLjMiCiAg Omdyb3VwICdTUUwpCgoMCgo7OzsgVmFyaWFibGVzIHdoaWNoIGRvIG5vdCBu ZWVkIGN1c3RvbWl6YXRpb24KCihkZWZ2YXIgc3FsLXVzZXItaGlzdG9yeSBu aWwKICAiSGlzdG9yeSBvZiB1c2VybmFtZXMgdXNlZC4iKQoKKGRlZnZhciBz cWwtZGF0YWJhc2UtaGlzdG9yeSBuaWwKICAiSGlzdG9yeSBvZiBkYXRhYmFz ZXMgdXNlZC4iKQoKKGRlZnZhciBzcWwtc2VydmVyLWhpc3RvcnkgbmlsCiAg Ikhpc3Rvcnkgb2Ygc2VydmVycyB1c2VkLiIpCgo7OyBQYXNzd29yZHMgYXJl IG5vdCBrZXB0IGluIGEgaGlzdG9yeS4KCihkZWZ2YXIgc3FsLWJ1ZmZlciBu aWwKICAiQ3VycmVudCBTUUxpIGJ1ZmZlci4KClRoZSBnbG9iYWwgdmFsdWUg b2YgYHNxbC1idWZmZXInIGlzIHRoZSBuYW1lIG9mIHRoZSBsYXRlc3QgU1FM aSBidWZmZXIKY3JlYXRlZC4gIEFueSBTUUwgYnVmZmVyIGNyZWF0ZWQgd2ls bCBtYWtlIGEgbG9jYWwgY29weSBvZiB0aGlzIHZhbHVlLgpTZWUgYHNxbC1p bnRlcmFjdGl2ZS1tb2RlJyBmb3IgbW9yZSBvbiBtdWx0aXBsZSBzZXNzaW9u cy4gIElmIHlvdSB3YW50CnRvIGNoYW5nZSB0aGUgU1FMaSBidWZmZXIgYSBT UUwgbW9kZSBzZW5kcyBpdHMgU1FMIHN0cmluZ3MgdG8sIGNoYW5nZQp0aGUg bG9jYWwgdmFsdWUgb2YgYHNxbC1idWZmZXInIHVzaW5nIFxcW3NxbC1zZXQt c3FsaS1idWZmZXJdLiIpCgooZGVmdmFyIHNxbC1wcm9tcHQtcmVnZXhwIG5p bAogICJQcm9tcHQgdXNlZCB0byBpbml0aWFsaXplIGBjb21pbnQtcHJvbXB0 LXJlZ2V4cCcuCgpZb3UgY2FuIGNoYW5nZSBgc3FsLXByb21wdC1yZWdleHAn IG9uIGBzcWwtaW50ZXJhY3RpdmUtbW9kZS1ob29rJy4iKQoKKGRlZnZhciBz cWwtcHJvbXB0LWxlbmd0aCAwCiAgIlByb21wdCB1c2VkIHRvIHNldCBgbGVm dC1tYXJnaW4nIGluIGBzcWwtaW50ZXJhY3RpdmUtbW9kZScuCgpZb3UgY2Fu IGNoYW5nZSBgc3FsLXByb21wdC1sZW5ndGgnIG9uIGBzcWwtaW50ZXJhY3Rp dmUtbW9kZS1ob29rJy4iKQoKKGRlZnZhciBzcWwtYWx0ZXJuYXRlLWJ1ZmZl ci1uYW1lIG5pbAogICJCdWZmZXItbG9jYWwgc3RyaW5nIHVzZWQgdG8gcG9z c2libHkgcmVuYW1lIHRoZSBTUUxpIGJ1ZmZlci4KClVzZWQgYnkgYHNxbC1y ZW5hbWUtYnVmZmVyJy4iKQoKOzsgS2V5bWFwIGZvciBzcWwtaW50ZXJhY3Rp dmUtbW9kZS4KCihkZWZ2YXIgc3FsLWludGVyYWN0aXZlLW1vZGUtbWFwCiAg KGxldCAoKG1hcCAobWFrZS1zcGFyc2Uta2V5bWFwKSkpCiAgICAoaWYgKGZi b3VuZHAgJ3NldC1rZXltYXAtcGFyZW50KQoJKHNldC1rZXltYXAtcGFyZW50 IG1hcCBjb21pbnQtbW9kZS1tYXApOyBFbWFjcwogICAgICAoaWYgKGZib3Vu ZHAgJ3NldC1rZXltYXAtcGFyZW50cykKCSAgKHNldC1rZXltYXAtcGFyZW50 cyBtYXAgKGxpc3QgY29taW50LW1vZGUtbWFwKSkpKTsgWEVtYWNzCiAgICAo aWYgKGZib3VuZHAgJ3NldC1rZXltYXAtbmFtZSkKCShzZXQta2V5bWFwLW5h bWUgbWFwICdzcWwtaW50ZXJhY3RpdmUtbW9kZS1tYXApKTsgWEVtYWNzCiAg ICAoZGVmaW5lLWtleSBtYXAgKGtiZCAiQy1qIikgJ3NxbC1hY2N1bXVsYXRl LWFuZC1pbmRlbnQpCiAgICAoZGVmaW5lLWtleSBtYXAgKGtiZCAiQy1jIEMt dyIpICdzcWwtY29weS1jb2x1bW4pCiAgICAoZGVmaW5lLWtleSBtYXAgKGti ZCAiTyIpICdzcWwtbWFnaWMtZ28pCiAgICAoZGVmaW5lLWtleSBtYXAgKGti ZCAibyIpICdzcWwtbWFnaWMtZ28pCiAgICAoZGVmaW5lLWtleSBtYXAgKGti ZCAiOyIpICdzcWwtbWFnaWMtc2VtaWNvbG9uKQogICAgbWFwKQogICJNb2Rl IG1hcCB1c2VkIGZvciBgc3FsLWludGVyYWN0aXZlLW1vZGUnLgpCYXNlZCBv biBgY29taW50LW1vZGUtbWFwJy4iKQoKOzsgS2V5bWFwIGZvciBzcWwtbW9k ZS4KCihkZWZ2YXIgc3FsLW1vZGUtbWFwCiAgKGxldCAoKG1hcCAobWFrZS1z cGFyc2Uta2V5bWFwKSkpCiAgICAoZGVmaW5lLWtleSBtYXAgKGtiZCAiQy1j IEMtYyIpICdzcWwtc2VuZC1wYXJhZ3JhcGgpCiAgICAoZGVmaW5lLWtleSBt YXAgKGtiZCAiQy1jIEMtciIpICdzcWwtc2VuZC1yZWdpb24pCiAgICAoZGVm aW5lLWtleSBtYXAgKGtiZCAiQy1jIEMtcyIpICdzcWwtc2VuZC1zdHJpbmcp CiAgICAoZGVmaW5lLWtleSBtYXAgKGtiZCAiQy1jIEMtYiIpICdzcWwtc2Vu ZC1idWZmZXIpCiAgICBtYXApCiAgIk1vZGUgbWFwIHVzZWQgZm9yIGBzcWwt bW9kZScuIikKCjs7IGVhc3kgbWVudSBmb3Igc3FsLW1vZGUuCgooZWFzeS1t ZW51LWRlZmluZQogc3FsLW1vZGUtbWVudSBzcWwtbW9kZS1tYXAKICJNZW51 IGZvciBgc3FsLW1vZGUnLiIKIGAoIlNRTCIKICAgWyJTZW5kIFBhcmFncmFw aCIgc3FsLXNlbmQtcGFyYWdyYXBoIChhbmQgKGJ1ZmZlci1saXZlLXAgc3Fs LWJ1ZmZlcikKCQkJCQkgICAgIChnZXQtYnVmZmVyLXByb2Nlc3Mgc3FsLWJ1 ZmZlcikpXQogICBbIlNlbmQgUmVnaW9uIiBzcWwtc2VuZC1yZWdpb24gKGFu ZCAob3IgKGFuZCAoYm91bmRwICdtYXJrLWFjdGl2ZSk7IEVtYWNzCgkJCQkJ CW1hcmstYWN0aXZlKQoJCQkJCSAgIChtYXJrIHQpKTsgWEVtYWNzCgkJCQkg ICAgICAgKGJ1ZmZlci1saXZlLXAgc3FsLWJ1ZmZlcikKCQkJCSAgICAgICAo Z2V0LWJ1ZmZlci1wcm9jZXNzIHNxbC1idWZmZXIpKV0KICAgWyJTZW5kIEJ1 ZmZlciIgc3FsLXNlbmQtYnVmZmVyIChhbmQgKGJ1ZmZlci1saXZlLXAgc3Fs LWJ1ZmZlcikKCQkJCSAgICAgICAoZ2V0LWJ1ZmZlci1wcm9jZXNzIHNxbC1i dWZmZXIpKV0KICAgWyJTZW5kIFN0cmluZyIgc3FsLXNlbmQtc3RyaW5nIHRd CiAgIFsiLS0iIG5pbCBuaWxdCiAgIFsiU3RhcnQgU1FMaSBzZXNzaW9uIiBz cWwtcHJvZHVjdC1pbnRlcmFjdGl2ZSAoc3FsLXByb2R1Y3QtZmVhdHVyZSA6 c3FsaS1jb25uZWN0KV0KICAgWyJTaG93IFNRTGkgYnVmZmVyIiBzcWwtc2hv dy1zcWxpLWJ1ZmZlciB0XQogICBbIlNldCBTUUxpIGJ1ZmZlciIgc3FsLXNl dC1zcWxpLWJ1ZmZlciB0XQogICBbIlBvcCB0byBTUUxpIGJ1ZmZlciBhZnRl ciBzZW5kIgogICAgc3FsLXRvZ2dsZS1wb3AtdG8tYnVmZmVyLWFmdGVyLXNl bmQtcmVnaW9uCiAgICA6c3R5bGUgdG9nZ2xlCiAgICA6c2VsZWN0ZWQgc3Fs LXBvcC10by1idWZmZXItYWZ0ZXItc2VuZC1yZWdpb25dCiAgIFsiLS0iIG5p bCBuaWxdCiAgICgiUHJvZHVjdCIKICAgICxAKG1hcGNhciAobGFtYmRhIChw cm9kLWluZm8pCiAgICAgICAgICAgICAgICAobGV0KiAoKHByb2QgKHBvcCBw cm9kLWluZm8pKQogICAgICAgICAgICAgICAgICAgICAgIChuYW1lIChvciAo cGxpc3QtZ2V0IHByb2QtaW5mbyA6bmFtZSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGNhcGl0YWxpemUgKHN5bWJvbC1uYW1lIHByb2Qp KSkpCiAgICAgICAgICAgICAgICAgICAgICAgKGNtZCAoaW50ZXJuIChmb3Jt YXQgInNxbC1oaWdobGlnaHQtJXMta2V5d29yZHMiIHByb2QpKSkpCiAgICAg ICAgICAgICAgICAgIChmc2V0IGNtZCBgKGxhbWJkYSAoKSAsKGZvcm1hdCAi SGlnaGxpZ2h0ICVzIFNRTCBrZXl3b3Jkcy4iIG5hbWUpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoaW50ZXJhY3RpdmUpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoc3FsLXNldC1wcm9kdWN0ICcscHJvZCkp KQogICAgICAgICAgICAgICAgICAodmVjdG9yIG5hbWUgY21kCiAgICAgICAg ICAgICAgICAgICAgICAgICAgOnN0eWxlICdyYWRpbwogICAgICAgICAgICAg ICAgICAgICAgICAgIDpzZWxlY3RlZCBgKGVxIHNxbC1wcm9kdWN0ICcscHJv ZCkpKSkKICAgICAgICAgICAgICBzcWwtcHJvZHVjdC1hbGlzdCkpKSkKCjs7 IGVhc3kgbWVudSBmb3Igc3FsLWludGVyYWN0aXZlLW1vZGUuCgooZWFzeS1t ZW51LWRlZmluZQogc3FsLWludGVyYWN0aXZlLW1vZGUtbWVudSBzcWwtaW50 ZXJhY3RpdmUtbW9kZS1tYXAKICJNZW51IGZvciBgc3FsLWludGVyYWN0aXZl LW1vZGUnLiIKICcoIlNRTCIKICAgWyJSZW5hbWUgQnVmZmVyIiBzcWwtcmVu YW1lLWJ1ZmZlciB0XSkpCgo7OyBBYmJyZXZpYXRpb25zIC0tIGlmIHlvdSB3 YW50IG1vcmUgb2YgdGhlbSwgZGVmaW5lIHRoZW0gaW4geW91cgo7OyB+Ly5l bWFjcyBmaWxlLiAgQWJicmV2cyBoYXZlIHRvIGJlIGVuYWJsZWQgaW4geW91 ciB+Ly5lbWFjcywgdG9vLgoKKGRlZnZhciBzcWwtbW9kZS1hYmJyZXYtdGFi bGUgbmlsCiAgIkFiYnJldiB0YWJsZSB1c2VkIGluIGBzcWwtbW9kZScgYW5k IGBzcWwtaW50ZXJhY3RpdmUtbW9kZScuIikKKHVubGVzcyBzcWwtbW9kZS1h YmJyZXYtdGFibGUKICAoZGVmaW5lLWFiYnJldi10YWJsZSAnc3FsLW1vZGUt YWJicmV2LXRhYmxlIG5pbCkpCgoobWFwYwogOzsgSW4gRW1hY3MgMjIrLCBw cm92aWRlIFNZU1RFTS1GTEFHIHRvIGRlZmluZS1hYmJyZXYuCiAnKGxhbWJk YSAoYWJicmV2KQogICAgKGxldCAoKG5hbWUgKGNhciBhYmJyZXYpKQogICAg ICAgICAgKGV4cGFuc2lvbiAoY2RyIGFiYnJldikpKQogICAgICAoY29uZGl0 aW9uLWNhc2UgbmlsCiAgICAgICAgICAoZGVmaW5lLWFiYnJldiBzcWwtbW9k ZS1hYmJyZXYtdGFibGUgbmFtZSBleHBhbnNpb24gbmlsIDAgdCkKICAgICAg ICAoZXJyb3IKICAgICAgICAgKGRlZmluZS1hYmJyZXYgc3FsLW1vZGUtYWJi cmV2LXRhYmxlIG5hbWUgZXhwYW5zaW9uKSkpKSkKICcoKCJpbnMiICAuICJp bnNlcnQiKQogICAoInVwZCIgIC4gInVwZGF0ZSIpCiAgICgiZGVsIiAgLiAi ZGVsZXRlIikKICAgKCJzZWwiICAuICJzZWxlY3QiKQogICAoInByb2MiIC4g InByb2NlZHVyZSIpCiAgICgiZnVuYyIgLiAiZnVuY3Rpb24iKQogICAoImNy IiAgIC4gImNyZWF0ZSIpKSkKCjs7IFN5bnRheCBUYWJsZQoKKGRlZnZhciBz cWwtbW9kZS1zeW50YXgtdGFibGUKICAobGV0ICgodGFibGUgKG1ha2Utc3lu dGF4LXRhYmxlKSkpCiAgICA7OyBDLXN0eWxlIGNvbW1lbnRzIC8qKi8gKHNl ZSBlbGlzcCBtYW51YWwgIlN5bnRheCBGbGFncyIpKQogICAgKG1vZGlmeS1z eW50YXgtZW50cnkgPy8gIi4gMTQiIHRhYmxlKQogICAgKG1vZGlmeS1zeW50 YXgtZW50cnkgPyogIi4gMjMiIHRhYmxlKQogICAgOzsgZG91YmxlLWRhc2gg c3RhcnRzIGNvbW1lbnRzCiAgICAobW9kaWZ5LXN5bnRheC1lbnRyeSA/LSAi LiAxMmIiIHRhYmxlKQogICAgOzsgbmV3bGluZSBhbmQgZm9ybWZlZWQgZW5k IGNvbW1lbnRzCiAgICAobW9kaWZ5LXN5bnRheC1lbnRyeSA/XG4gIj4gYiIg dGFibGUpCiAgICAobW9kaWZ5LXN5bnRheC1lbnRyeSA/XGYgIj4gYiIgdGFi bGUpCiAgICA7OyBzaW5nbGUgcXVvdGVzICgnKSBkZWxpbWl0IHN0cmluZ3MK ICAgIChtb2RpZnktc3ludGF4LWVudHJ5ID8nICJcIiIgdGFibGUpCiAgICA7 OyBkb3VibGUgcXVvdGVzICgiKSBkb24ndCBkZWxpbWl0IHN0cmluZ3MKICAg IChtb2RpZnktc3ludGF4LWVudHJ5ID9cIiAiLiIgdGFibGUpCiAgICA7OyBi YWNrc2xhc2ggaXMgbm8gZXNjYXBlIGNoYXJhY3RlcgogICAgKG1vZGlmeS1z eW50YXgtZW50cnkgP1xcICIuIiB0YWJsZSkKICAgIHRhYmxlKQogICJTeW50 YXggdGFibGUgdXNlZCBpbiBgc3FsLW1vZGUnIGFuZCBgc3FsLWludGVyYWN0 aXZlLW1vZGUnLiIpCgo7OyBGb250IGxvY2sgc3VwcG9ydAoKKGRlZnZhciBz cWwtbW9kZS1mb250LWxvY2stb2JqZWN0LW5hbWUKICAoZXZhbC13aGVuLWNv bXBpbGUKICAgIChsaXN0IChjb25jYXQgIl5cXHMtKlxcKD86Y3JlYXRlXFx8 ZHJvcFxcfGFsdGVyXFwpXFxzLSsiIDs7IGxlYWQgb2ZmIHdpdGggQ1JFQVRF LCBEUk9QIG9yIEFMVEVSCgkJICAiXFwoPzpcXHcrXFxzLStcXCkqIiAgOzsg b3B0aW9uYWwgaW50ZXJ2ZW5pbmcga2V5d29yZHMKCQkgICJcXCg/OnRhYmxl XFx8dmlld1xcfFxcKD86cGFja2FnZVxcfHR5cGVcXClcXCg/Olxccy0rYm9k eVxcKT9cXHxwcm9jXFwoPzplZHVyZVxcKT8iCgkJICAiXFx8ZnVuY3Rpb25c XHx0cmlnZ2VyXFx8c2VxdWVuY2VcXHxydWxlXFx8ZGVmYXVsdFxcKVxccy0r IgoJCSAgIlxcKFxcdytcXCkiKQoJICAxICdmb250LWxvY2stZnVuY3Rpb24t bmFtZS1mYWNlKSkKCiAgIlBhdHRlcm4gdG8gbWF0Y2ggdGhlIG5hbWVzIG9m IHRvcC1sZXZlbCBvYmplY3RzLgoKVGhlIHBhdHRlcm4gbWF0Y2hlcyB0aGUg bmFtZSBpbiBhIENSRUFURSwgRFJPUCBvciBBTFRFUgpzdGF0ZW1lbnQuICBU aGUgZm9ybWF0IG9mIHZhcmlhYmxlIHNob3VsZCBiZSBhIHZhbGlkCmBmb250 LWxvY2sta2V5d29yZHMnIGVudHJ5LiIpCgooZGVmbWFjcm8gc3FsLWtleXdv cmRzLXJlICgmcmVzdCBrZXl3b3JkcykKICAiQ29tcGlsZS10aW1lIGdlbmVy YXRpb24gb2YgcmVnZXhwIG1hdGNoaW5nIGFueSBvbmUgb2YgS0VZV09SRFMu IgogIGAoZXZhbC13aGVuLWNvbXBpbGUKICAgICAoY29uY2F0ICJcXGIiCgkg ICAgIChyZWdleHAtb3B0ICcsa2V5d29yZHMgdCkKCSAgICAgIlxcYiIpKSkK CihkZWZ2YXIgc3FsLW1vZGUtYW5zaS1mb250LWxvY2sta2V5d29yZHMKICAo bGV0ICgoYW5zaS1mdW5jcyAoc3FsLWtleXdvcmRzLXJlCiJhYnMiICJhdmci ICJiaXRfbGVuZ3RoIiAiY2FyZGluYWxpdHkiICJjYXN0IiAiY2hhcl9sZW5n dGgiCiJjaGFyYWN0ZXJfbGVuZ3RoIiAiY29hbGVzY2UiICJjb252ZXJ0IiAi Y291bnQiICJjdXJyZW50X2RhdGUiCiJjdXJyZW50X3BhdGgiICJjdXJyZW50 X3JvbGUiICJjdXJyZW50X3RpbWUiICJjdXJyZW50X3RpbWVzdGFtcCIKImN1 cnJlbnRfdXNlciIgImV4dHJhY3QiICJsb2NhbHRpbWUiICJsb2NhbHRpbWVz dGFtcCIgImxvd2VyIiAibWF4IgoibWluIiAibW9kIiAibnVsbGlmIiAib2N0 ZXRfbGVuZ3RoIiAib3ZlcmxheSIgInBsYWNpbmciICJzZXNzaW9uX3VzZXIi CiJzdWJzdHJpbmciICJzdW0iICJzeXN0ZW1fdXNlciIgInRyYW5zbGF0ZSIg InRyZWF0IiAidHJpbSIgInVwcGVyIgoidXNlciIKKSkKCgkoYW5zaS1ub24t cmVzZXJ2ZWQgKHNxbC1rZXl3b3Jkcy1yZQoiYWRhIiAiYXNlbnNpdGl2ZSIg ImFzc2lnbm1lbnQiICJhc3ltbWV0cmljIiAiYXRvbWljIiAiYmV0d2VlbiIK ImJpdHZhciIgImNhbGxlZCIgImNhdGFsb2dfbmFtZSIgImNoYWluIiAiY2hh cmFjdGVyX3NldF9jYXRhbG9nIgoiY2hhcmFjdGVyX3NldF9uYW1lIiAiY2hh cmFjdGVyX3NldF9zY2hlbWEiICJjaGVja2VkIiAiY2xhc3Nfb3JpZ2luIgoi Y29ib2wiICJjb2xsYXRpb25fY2F0YWxvZyIgImNvbGxhdGlvbl9uYW1lIiAi Y29sbGF0aW9uX3NjaGVtYSIKImNvbHVtbl9uYW1lIiAiY29tbWFuZF9mdW5j dGlvbiIgImNvbW1hbmRfZnVuY3Rpb25fY29kZSIgImNvbW1pdHRlZCIKImNv bmRpdGlvbl9udW1iZXIiICJjb25uZWN0aW9uX25hbWUiICJjb25zdHJhaW50 X2NhdGFsb2ciCiJjb25zdHJhaW50X25hbWUiICJjb25zdHJhaW50X3NjaGVt YSIgImNvbnRhaW5zIiAiY3Vyc29yX25hbWUiCiJkYXRldGltZV9pbnRlcnZh bF9jb2RlIiAiZGF0ZXRpbWVfaW50ZXJ2YWxfcHJlY2lzaW9uIiAiZGVmaW5l ZCIKImRlZmluZXIiICJkaXNwYXRjaCIgImR5bmFtaWNfZnVuY3Rpb24iICJk eW5hbWljX2Z1bmN0aW9uX2NvZGUiCiJleGlzdGluZyIgImV4aXN0cyIgImZp bmFsIiAiZm9ydHJhbiIgImdlbmVyYXRlZCIgImdyYW50ZWQiCiJoaWVyYXJj aHkiICJob2xkIiAiaW1wbGVtZW50YXRpb24iICJpbmZpeCIgImluc2Vuc2l0 aXZlIiAiaW5zdGFuY2UiCiJpbnN0YW50aWFibGUiICJpbnZva2VyIiAia2V5 X21lbWJlciIgImtleV90eXBlIiAibGVuZ3RoIiAibSIKIm1lc3NhZ2VfbGVu Z3RoIiAibWVzc2FnZV9vY3RldF9sZW5ndGgiICJtZXNzYWdlX3RleHQiICJt ZXRob2QiICJtb3JlIgoibXVtcHMiICJuYW1lIiAibnVsbGFibGUiICJudW1i ZXIiICJvcHRpb25zIiAib3ZlcmxhcHMiICJvdmVycmlkaW5nIgoicGFyYW1l dGVyX21vZGUiICJwYXJhbWV0ZXJfbmFtZSIgInBhcmFtZXRlcl9vcmRpbmFs X3Bvc2l0aW9uIgoicGFyYW1ldGVyX3NwZWNpZmljX2NhdGFsb2ciICJwYXJh bWV0ZXJfc3BlY2lmaWNfbmFtZSIKInBhcmFtZXRlcl9zcGVjaWZpY19zY2hl bWEiICJwYXNjYWwiICJwbGkiICJwb3NpdGlvbiIgInJlcGVhdGFibGUiCiJy ZXR1cm5lZF9sZW5ndGgiICJyZXR1cm5lZF9vY3RldF9sZW5ndGgiICJyZXR1 cm5lZF9zcWxzdGF0ZSIKInJvdXRpbmVfY2F0YWxvZyIgInJvdXRpbmVfbmFt ZSIgInJvdXRpbmVfc2NoZW1hIiAicm93X2NvdW50IiAic2NhbGUiCiJzY2hl bWFfbmFtZSIgInNlY3VyaXR5IiAic2VsZiIgInNlbnNpdGl2ZSIgInNlcmlh bGl6YWJsZSIKInNlcnZlcl9uYW1lIiAic2ltaWxhciIgInNpbXBsZSIgInNv dXJjZSIgInNwZWNpZmljX25hbWUiICJzdHlsZSIKInN1YmNsYXNzX29yaWdp biIgInN1Ymxpc3QiICJzeW1tZXRyaWMiICJzeXN0ZW0iICJ0YWJsZV9uYW1l IgoidHJhbnNhY3Rpb25fYWN0aXZlIiAidHJhbnNhY3Rpb25zX2NvbW1pdHRl ZCIKInRyYW5zYWN0aW9uc19yb2xsZWRfYmFjayIgInRyYW5zZm9ybSIgInRy YW5zZm9ybXMiICJ0cmlnZ2VyX2NhdGFsb2ciCiJ0cmlnZ2VyX25hbWUiICJ0 cmlnZ2VyX3NjaGVtYSIgInR5cGUiICJ1bmNvbW1pdHRlZCIgInVubmFtZWQi CiJ1c2VyX2RlZmluZWRfdHlwZV9jYXRhbG9nIiAidXNlcl9kZWZpbmVkX3R5 cGVfbmFtZSIKInVzZXJfZGVmaW5lZF90eXBlX3NjaGVtYSIKKSkKCgkoYW5z aS1yZXNlcnZlZCAoc3FsLWtleXdvcmRzLXJlCiJhYnNvbHV0ZSIgImFjdGlv biIgImFkZCIgImFkbWluIiAiYWZ0ZXIiICJhZ2dyZWdhdGUiICJhbGlhcyIg ImFsbCIKImFsbG9jYXRlIiAiYWx0ZXIiICJhbmQiICJhbnkiICJhcmUiICJh cyIgImFzYyIgImFzc2VydGlvbiIgImF0IgoiYXV0aG9yaXphdGlvbiIgImJl Zm9yZSIgImJlZ2luIiAiYm90aCIgImJyZWFkdGgiICJieSIgImNhbGwiCiJj YXNjYWRlIiAiY2FzY2FkZWQiICJjYXNlIiAiY2F0YWxvZyIgImNoZWNrIiAi Y2xhc3MiICJjbG9zZSIKImNvbGxhdGUiICJjb2xsYXRpb24iICJjb2x1bW4i ICJjb21taXQiICJjb21wbGV0aW9uIiAiY29ubmVjdCIKImNvbm5lY3Rpb24i ICJjb25zdHJhaW50IiAiY29uc3RyYWludHMiICJjb25zdHJ1Y3RvciIgImNv bnRpbnVlIgoiY29ycmVzcG9uZGluZyIgImNyZWF0ZSIgImNyb3NzIiAiY3Vi ZSIgImN1cnJlbnQiICJjdXJzb3IiICJjeWNsZSIKImRhdGEiICJkYXkiICJk ZWFsbG9jYXRlIiAiZGVjbGFyZSIgImRlZmF1bHQiICJkZWZlcnJhYmxlIiAi ZGVmZXJyZWQiCiJkZWxldGUiICJkZXB0aCIgImRlcmVmIiAiZGVzYyIgImRl c2NyaWJlIiAiZGVzY3JpcHRvciIgImRlc3Ryb3kiCiJkZXN0cnVjdG9yIiAi ZGV0ZXJtaW5pc3RpYyIgImRpYWdub3N0aWNzIiAiZGljdGlvbmFyeSIgImRp c2Nvbm5lY3QiCiJkaXN0aW5jdCIgImRvbWFpbiIgImRyb3AiICJkeW5hbWlj IiAiZWFjaCIgImVsc2UiICJlbmQiICJlcXVhbHMiCiJlc2NhcGUiICJldmVy eSIgImV4Y2VwdCIgImV4Y2VwdGlvbiIgImV4ZWMiICJleGVjdXRlIiAiZXh0 ZXJuYWwiCiJmYWxzZSIgImZldGNoIiAiZmlyc3QiICJmb3IiICJmb3JlaWdu IiAiZm91bmQiICJmcmVlIiAiZnJvbSIgImZ1bGwiCiJmdW5jdGlvbiIgImdl bmVyYWwiICJnZXQiICJnbG9iYWwiICJnbyIgImdvdG8iICJncmFudCIgImdy b3VwIgoiZ3JvdXBpbmciICJoYXZpbmciICJob3N0IiAiaG91ciIgImlkZW50 aXR5IiAiaWdub3JlIiAiaW1tZWRpYXRlIiAiaW4iCiJpbmRpY2F0b3IiICJp bml0aWFsaXplIiAiaW5pdGlhbGx5IiAiaW5uZXIiICJpbm91dCIgImlucHV0 IiAiaW5zZXJ0IgoiaW50ZXJzZWN0IiAiaW50byIgImlzIiAiaXNvbGF0aW9u IiAiaXRlcmF0ZSIgImpvaW4iICJrZXkiICJsYW5ndWFnZSIKImxhc3QiICJs YXRlcmFsIiAibGVhZGluZyIgImxlZnQiICJsZXNzIiAibGV2ZWwiICJsaWtl IiAibGltaXQiCiJsb2NhbCIgImxvY2F0b3IiICJtYXAiICJtYXRjaCIgIm1p bnV0ZSIgIm1vZGlmaWVzIiAibW9kaWZ5IiAibW9kdWxlIgoibW9udGgiICJu YW1lcyIgIm5hdHVyYWwiICJuZXciICJuZXh0IiAibm8iICJub25lIiAibm90 IiAibnVsbCIgIm9mIgoib2ZmIiAib2xkIiAib24iICJvbmx5IiAib3BlbiIg Im9wZXJhdGlvbiIgIm9wdGlvbiIgIm9yIiAib3JkZXIiCiJvcmRpbmFsaXR5 IiAib3V0IiAib3V0ZXIiICJvdXRwdXQiICJwYWQiICJwYXJhbWV0ZXIiICJw YXJhbWV0ZXJzIgoicGFydGlhbCIgInBhdGgiICJwb3N0Zml4IiAicHJlZml4 IiAicHJlb3JkZXIiICJwcmVwYXJlIiAicHJlc2VydmUiCiJwcmltYXJ5IiAi cHJpb3IiICJwcml2aWxlZ2VzIiAicHJvY2VkdXJlIiAicHVibGljIiAicmVh ZCIgInJlYWRzIgoicmVjdXJzaXZlIiAicmVmZXJlbmNlcyIgInJlZmVyZW5j aW5nIiAicmVsYXRpdmUiICJyZXN0cmljdCIgInJlc3VsdCIKInJldHVybiIg InJldHVybnMiICJyZXZva2UiICJyaWdodCIgInJvbGUiICJyb2xsYmFjayIg InJvbGx1cCIKInJvdXRpbmUiICJyb3dzIiAic2F2ZXBvaW50IiAic2NoZW1h IiAic2Nyb2xsIiAic2VhcmNoIiAic2Vjb25kIgoic2VjdGlvbiIgInNlbGVj dCIgInNlcXVlbmNlIiAic2Vzc2lvbiIgInNldCIgInNldHMiICJzaXplIiAi c29tZSIKInNwYWNlIiAic3BlY2lmaWMiICJzcGVjaWZpY3R5cGUiICJzcWwi ICJzcWxleGNlcHRpb24iICJzcWxzdGF0ZSIKInNxbHdhcm5pbmciICJzdGFy dCIgInN0YXRlIiAic3RhdGVtZW50IiAic3RhdGljIiAic3RydWN0dXJlIiAi dGFibGUiCiJ0ZW1wb3JhcnkiICJ0ZXJtaW5hdGUiICJ0aGFuIiAidGhlbiIg InRpbWV6b25lX2hvdXIiCiJ0aW1lem9uZV9taW51dGUiICJ0byIgInRyYWls aW5nIiAidHJhbnNhY3Rpb24iICJ0cmFuc2xhdGlvbiIKInRyaWdnZXIiICJ0 cnVlIiAidW5kZXIiICJ1bmlvbiIgInVuaXF1ZSIgInVua25vd24iICJ1bm5l c3QiICJ1cGRhdGUiCiJ1c2FnZSIgInVzaW5nIiAidmFsdWUiICJ2YWx1ZXMi ICJ2YXJpYWJsZSIgInZpZXciICJ3aGVuIiAid2hlbmV2ZXIiCiJ3aGVyZSIg IndpdGgiICJ3aXRob3V0IiAid29yayIgIndyaXRlIiAieWVhciIKKSkKCgko YW5zaS10eXBlcyAoc3FsLWtleXdvcmRzLXJlCiJhcnJheSIgImJpbmFyeSIg ImJpdCIgImJsb2IiICJib29sZWFuIiAiY2hhciIgImNoYXJhY3RlciIgImNs b2IiCiJkYXRlIiAiZGVjIiAiZGVjaW1hbCIgImRvdWJsZSIgImZsb2F0IiAi aW50IiAiaW50ZWdlciIgImludGVydmFsIgoibGFyZ2UiICJuYXRpb25hbCIg Im5jaGFyIiAibmNsb2IiICJudW1lcmljIiAib2JqZWN0IiAicHJlY2lzaW9u IgoicmVhbCIgInJlZiIgInJvdyIgInNjb3BlIiAic21hbGxpbnQiICJ0aW1l IiAidGltZXN0YW1wIiAidmFyY2hhciIKInZhcnlpbmciICJ6b25lIgopKSkK CiAgICBgKCgsYW5zaS1ub24tcmVzZXJ2ZWQgLiBmb250LWxvY2sta2V5d29y ZC1mYWNlKQogICAgICAoLGFuc2ktcmVzZXJ2ZWQgICAgIC4gZm9udC1sb2Nr LWtleXdvcmQtZmFjZSkKICAgICAgKCxhbnNpLWZ1bmNzICAgICAgICAuIGZv bnQtbG9jay1idWlsdGluLWZhY2UpCiAgICAgICgsYW5zaS10eXBlcyAgICAg ICAgLiBmb250LWxvY2stdHlwZS1mYWNlKSkpCgogICJBTlNJIFNRTCBrZXl3 b3JkcyB1c2VkIGJ5IGZvbnQtbG9jay4KClRoaXMgdmFyaWFibGUgaXMgdXNl ZCBieSBgc3FsLW1vZGUnIGFuZCBgc3FsLWludGVyYWN0aXZlLW1vZGUnLiAg VGhlCnJlZ3VsYXIgZXhwcmVzc2lvbnMgYXJlIGNyZWF0ZWQgZHVyaW5nIGNv bXBpbGF0aW9uIGJ5IGNhbGxpbmcgdGhlCmZ1bmN0aW9uIGByZWdleHAtb3B0 Jy4gIFRoZXJlZm9yZSwgdGFrZSBhIGxvb2sgYXQgdGhlIHNvdXJjZSBiZWZv cmUKeW91IGRlZmluZSB5b3VyIG93biBgc3FsLW1vZGUtYW5zaS1mb250LWxv Y2sta2V5d29yZHMnLiAgWW91IG1heSB3YW50CnRvIGFkZCBmdW5jdGlvbnMg YW5kIFBML1NRTCBrZXl3b3Jkcy4iKQoKKGRlZnZhciBzcWwtbW9kZS1vcmFj bGUtZm9udC1sb2NrLWtleXdvcmRzCiAgKGxldCAoKG9yYWNsZS1mdW5jdGlv bnMgKHNxbC1rZXl3b3Jkcy1yZQoiYWJzIiAiYWNvcyIgImFkZF9tb250aHMi ICJhc2NpaSIgImFzY2lpc3RyIiAiYXNpbiIgImF0YW4iICJhdGFuMiIKImF2 ZyIgImJmaWxlbmFtZSIgImJpbl90b19udW0iICJiaXRhbmQiICJjYXN0IiAi Y2VpbCIgImNoYXJ0b3Jvd2lkIgoiY2hyIiAiY29hbGVzY2UiICJjb21wb3Nl IiAiY29uY2F0IiAiY29udmVydCIgImNvcnIiICJjb3MiICJjb3NoIgoiY291 bnQiICJjb3Zhcl9wb3AiICJjb3Zhcl9zYW1wIiAiY3VtZV9kaXN0IiAiY3Vy cmVudF9kYXRlIgoiY3VycmVudF90aW1lc3RhbXAiICJjdXJyZW50X3VzZXIi ICJkYnRpbWV6b25lIiAiZGVjb2RlIiAiZGVjb21wb3NlIgoiZGVuc2VfcmFu ayIgImRlcHRoIiAiZGVyZWYiICJkdW1wIiAiZW1wdHlfY2xvYiIgImV4aXN0 c25vZGUiICJleHAiCiJleHRyYWN0IiAiZXh0cmFjdHZhbHVlIiAiZmlyc3Qi ICJmaXJzdF92YWx1ZSIgImZsb29yIiAiZm9sbG93aW5nIgoiZnJvbV90eiIg ImdyZWF0ZXN0IiAiZ3JvdXBfaWQiICJncm91cGluZ19pZCIgImhleHRvcmF3 IiAiaW5pdGNhcCIKImluc3RyIiAibGFnIiAibGFzdCIgImxhc3RfZGF5IiAi bGFzdF92YWx1ZSIgImxlYWQiICJsZWFzdCIgImxlbmd0aCIKImxuIiAibG9j YWx0aW1lc3RhbXAiICJsb3dlciIgImxwYWQiICJsdHJpbSIgIm1ha2VfcmVm IiAibWF4IiAibWluIgoibW9kIiAibW9udGhzX2JldHdlZW4iICJuZXdfdGlt ZSIgIm5leHRfZGF5IiAibmxzX2NoYXJzZXRfZGVjbF9sZW4iCiJubHNfY2hh cnNldF9pZCIgIm5sc19jaGFyc2V0X25hbWUiICJubHNfaW5pdGNhcCIgIm5s c19sb3dlciIKIm5sc191cHBlciIgIm5sc3NvcnQiICJudGlsZSIgIm51bGxp ZiIgIm51bXRvZHNpbnRlcnZhbCIKIm51bXRveW1pbnRlcnZhbCIgIm52bCIg Im52bDIiICJvdmVyIiAicGF0aCIgInBlcmNlbnRfcmFuayIKInBlcmNlbnRp bGVfY29udCIgInBlcmNlbnRpbGVfZGlzYyIgInBvd2VyIiAicHJlY2VkaW5n IiAicmFuayIKInJhdGlvX3RvX3JlcG9ydCIgInJhd3RvaGV4IiAicmF3dG9u aGV4IiAicmVmdG9oZXgiICJyZWdyXyIKInJlZ3JfYXZneCIgInJlZ3JfYXZn eSIgInJlZ3JfY291bnQiICJyZWdyX2ludGVyY2VwdCIgInJlZ3JfcjIiCiJy ZWdyX3Nsb3BlIiAicmVncl9zeHgiICJyZWdyX3N4eSIgInJlZ3Jfc3l5IiAi cmVwbGFjZSIgInJvdW5kIgoicm93X251bWJlciIgInJvd2lkdG9jaGFyIiAi cm93aWR0b25jaGFyIiAicnBhZCIgInJ0cmltIgoic2Vzc2lvbnRpbWV6b25l IiAic2lnbiIgInNpbiIgInNpbmgiICJzb3VuZGV4IiAic3FydCIgInN0ZGRl diIKInN0ZGRldl9wb3AiICJzdGRkZXZfc2FtcCIgInN1YnN0ciIgInN1bSIg InN5c19jb25uZWN0X2J5X3BhdGgiCiJzeXNfY29udGV4dCIgInN5c19kYnVy aWdlbiIgInN5c19leHRyYWN0X3V0YyIgInN5c19ndWlkIiAic3lzX3R5cGVp ZCIKInN5c194bWxhZ2ciICJzeXNfeG1sZ2VuIiAic3lzZGF0ZSIgInN5c3Rp bWVzdGFtcCIgInRhbiIgInRhbmgiCiJ0b19jaGFyIiAidG9fY2xvYiIgInRv X2RhdGUiICJ0b19kc2ludGVydmFsIiAidG9fbG9iIiAidG9fbXVsdGlfYnl0 ZSIKInRvX25jaGFyIiAidG9fbmNsb2IiICJ0b19udW1iZXIiICJ0b19zaW5n bGVfYnl0ZSIgInRvX3RpbWVzdGFtcCIKInRvX3RpbWVzdGFtcF90eiIgInRv X3ltaW50ZXJ2YWwiICJ0cmFuc2xhdGUiICJ0cmVhdCIgInRyaW0iICJ0cnVu YyIKInR6X29mZnNldCIgInVpZCIgInVuYm91bmRlZCIgInVuaXN0ciIgInVw ZGF0ZXhtbCIgInVwcGVyIiAidXNlciIKInVzZXJlbnYiICJ2YXJfcG9wIiAi dmFyX3NhbXAiICJ2YXJpYW5jZSIgInZzaXplIiAid2lkdGhfYnVja2V0IiAi eG1sIgoieG1sYWdnIiAieG1sYXR0cmlidXRlIiAieG1sY29sYXR0dmFsIiAi eG1sY29uY2F0IiAieG1sZWxlbWVudCIKInhtbGZvcmVzdCIgInhtbHNlcXVl bmNlIiAieG1sdHJhbnNmb3JtIgopKQoKCShvcmFjbGUta2V5d29yZHMgKHNx bC1rZXl3b3Jkcy1yZQoiYWJvcnQiICJhY2Nlc3MiICJhY2Nlc3NlZCIgImFj Y291bnQiICJhY3RpdmF0ZSIgImFkZCIgImFkbWluIgoiYWR2aXNlIiAiYWZ0 ZXIiICJhZ2VudCIgImFnZ3JlZ2F0ZSIgImFsbCIgImFsbG9jYXRlIiAiYWxs b3ciICJhbHRlciIKImFsd2F5cyIgImFuYWx5emUiICJhbmNpbGxhcnkiICJh bmQiICJhbnkiICJhcHBseSIgImFyY2hpdmUiCiJhcmNoaXZlbG9nIiAiYXJy YXkiICJhcyIgImFzYyIgImFzc29jaWF0ZSIgImF0IiAiYXR0cmlidXRlIgoi YXR0cmlidXRlcyIgImF1ZGl0IiAiYXV0aGVudGljYXRlZCIgImF1dGhpZCIg ImF1dGhvcml6YXRpb24iICJhdXRvIgoiYXV0b2FsbG9jYXRlIiAiYXV0b21h dGljIiAiYXZhaWxhYmlsaXR5IiAiYmFja3VwIiAiYmVmb3JlIiAiYmVnaW4i CiJiZWhhbGYiICJiZXR3ZWVuIiAiYmluZGluZyIgImJpdG1hcCIgImJsb2Nr IiAiYmxvY2tzaXplIiAiYm9keSIKImJvdGgiICJidWZmZXJfcG9vbCIgImJ1 aWxkIiAiYnkiICAiY2FjaGUiICJjYWxsIiAiY2FuY2VsIgoiY2FzY2FkZSIg ImNhc2UiICJjYXRlZ29yeSIgImNlcnRpZmljYXRlIiAiY2hhaW5lZCIgImNo YW5nZSIgImNoZWNrIgoiY2hlY2twb2ludCIgImNoaWxkIiAiY2h1bmsiICJj bGFzcyIgImNsZWFyIiAiY2xvbmUiICJjbG9zZSIgImNsdXN0ZXIiCiJjb2x1 bW4iICJjb2x1bW5fdmFsdWUiICJjb2x1bW5zIiAiY29tbWVudCIgImNvbW1p dCIgImNvbW1pdHRlZCIKImNvbXBhdGliaWxpdHkiICJjb21waWxlIiAiY29t cGxldGUiICJjb21wb3NpdGVfbGltaXQiICJjb21wcmVzcyIKImNvbXB1dGUi ICJjb25uZWN0IiAiY29ubmVjdF90aW1lIiAiY29uc2lkZXIiICJjb25zaXN0 ZW50IgoiY29uc3RyYWludCIgImNvbnN0cmFpbnRzIiAiY29uc3RydWN0b3Ii ICJjb250ZW50cyIgImNvbnRleHQiCiJjb250aW51ZSIgImNvbnRyb2xmaWxl IiAiY29ycnVwdGlvbiIgImNvc3QiICJjcHVfcGVyX2NhbGwiCiJjcHVfcGVy X3Nlc3Npb24iICJjcmVhdGUiICJjcm9zcyIgImN1YmUiICJjdXJyZW50IiAi Y3VycnZhbCIgImN5Y2xlIgoiZGFuZ2xpbmciICJkYXRhIiAiZGF0YWJhc2Ui ICJkYXRhZmlsZSIgImRhdGFmaWxlcyIgImRheSIgImRkbCIKImRlYWxsb2Nh dGUiICJkZWJ1ZyIgImRlZmF1bHQiICJkZWZlcnJhYmxlIiAiZGVmZXJyZWQi ICJkZWZpbmVyIgoiZGVsYXkiICJkZWxldGUiICJkZW1hbmQiICJkZXNjIiAi ZGV0ZXJtaW5lcyIgImRldGVybWluaXN0aWMiCiJkaWN0aW9uYXJ5IiAiZGlt ZW5zaW9uIiAiZGlyZWN0b3J5IiAiZGlzYWJsZSIgImRpc2Fzc29jaWF0ZSIK ImRpc2Nvbm5lY3QiICJkaXN0aW5jdCIgImRpc3Rpbmd1aXNoZWQiICJkaXN0 cmlidXRlZCIgImRtbCIgImRyb3AiCiJlYWNoIiAiZWxlbWVudCIgImVsc2Ui ICJlbmFibGUiICJlbmQiICJlcXVhbHNfcGF0aCIgImVzY2FwZSIKImVzdGlt YXRlIiAiZXhjZXB0IiAiZXhjZXB0aW9ucyIgImV4Y2hhbmdlIiAiZXhjbHVk aW5nIiAiZXhpc3RzIgoiZXhwaXJlIiAiZXhwbGFpbiIgImV4dGVudCIgImV4 dGVybmFsIiAiZXh0ZXJuYWxseSIKImZhaWxlZF9sb2dpbl9hdHRlbXB0cyIg ImZhc3QiICJmaWxlIiAiZmluYWwiICJmaW5pc2giICJmbHVzaCIgImZvciIK ImZvcmNlIiAiZm9yZWlnbiIgImZyZWVsaXN0IiAiZnJlZWxpc3RzIiAiZnJl ZXBvb2xzIiAiZnJlc2giICJmcm9tIgoiZnVsbCIgImZ1bmN0aW9uIiAiZnVu Y3Rpb25zIiAiZ2VuZXJhdGVkIiAiZ2xvYmFsIiAiZ2xvYmFsX25hbWUiCiJn bG9iYWxseSIgImdyYW50IiAiZ3JvdXAiICJncm91cGluZyIgImdyb3VwcyIg Imd1YXJkIiAiaGFzaCIKImhhc2hrZXlzIiAiaGF2aW5nIiAiaGVhcCIgImhp ZXJhcmNoeSIgImlkIiAiaWRlbnRpZmllZCIgImlkZW50aWZpZXIiCiJpZGxl X3RpbWUiICJpbW1lZGlhdGUiICJpbiIgImluY2x1ZGluZyIgImluY3JlbWVu dCIgImluZGV4IiAiaW5kZXhlZCIKImluZGV4ZXMiICJpbmRleHR5cGUiICJp bmRleHR5cGVzIiAiaW5kaWNhdG9yIiAiaW5pdGlhbCIgImluaXRpYWxpemVk IgoiaW5pdGlhbGx5IiAiaW5pdHJhbnMiICJpbm5lciIgImluc2VydCIgImlu c3RhbmNlIiAiaW5zdGFudGlhYmxlIgoiaW5zdGVhZCIgImludGVyc2VjdCIg ImludG8iICJpbnZhbGlkYXRlIiAiaXMiICJpc29sYXRpb24iICJqYXZhIgoi am9pbiIgICJrZWVwIiAia2V5IiAia2lsbCIgImxhbmd1YWdlIiAibGVmdCIg Imxlc3MiICJsZXZlbCIKImxldmVscyIgImxpYnJhcnkiICJsaWtlIiAibGlr ZTIiICJsaWtlNCIgImxpa2VjIiAibGltaXQiICJsaW5rIgoibGlzdCIgImxv YiIgImxvY2FsIiAibG9jYXRpb24iICJsb2NhdG9yIiAibG9jayIgImxvZyIg ImxvZ2ZpbGUiCiJsb2dnaW5nIiAibG9naWNhbCIgImxvZ2ljYWxfcmVhZHNf cGVyX2NhbGwiCiJsb2dpY2FsX3JlYWRzX3Blcl9zZXNzaW9uIiAgIm1hbmFn ZWQiICJtYW5hZ2VtZW50IiAibWFudWFsIiAibWFwIgoibWFwcGluZyIgIm1h c3RlciIgIm1hdGNoZWQiICJtYXRlcmlhbGl6ZWQiICJtYXhkYXRhZmlsZXMi CiJtYXhleHRlbnRzIiAibWF4aW1pemUiICJtYXhpbnN0YW5jZXMiICJtYXhs b2dmaWxlcyIgIm1heGxvZ2hpc3RvcnkiCiJtYXhsb2dtZW1iZXJzIiAibWF4 c2l6ZSIgIm1heHRyYW5zIiAibWF4dmFsdWUiICJtZW1iZXIiICJtZW1vcnki CiJtZXJnZSIgIm1pZ3JhdGUiICJtaW5leHRlbnRzIiAibWluaW1pemUiICJt aW5pbXVtIiAibWludXMiICJtaW52YWx1ZSIKIm1vZGUiICJtb2RpZnkiICJt b25pdG9yaW5nIiAibW9udGgiICJtb3VudCIgIm1vdmUiICJtb3ZlbWVudCIg Im5hbWUiCiJuYW1lZCIgIm5hdHVyYWwiICJuZXN0ZWQiICJuZXZlciIgIm5l dyIgIm5leHQiICJuZXh0dmFsIiAibm8iCiJub2FyY2hpdmVsb2ciICJub2F1 ZGl0IiAibm9jYWNoZSIgIm5vY29tcHJlc3MiICJub2NvcHkiICJub2N5Y2xl Igoibm9kZWxheSIgIm5vZm9yY2UiICJub2xvZ2dpbmciICJub21hcHBpbmci ICJub21heHZhbHVlIiAibm9taW5pbWl6ZSIKIm5vbWludmFsdWUiICJub21v bml0b3JpbmciICJub25lIiAibm9vcmRlciIgIm5vcGFyYWxsZWwiICJub3Jl bHkiCiJub3Jlc2V0bG9ncyIgIm5vcmV2ZXJzZSIgIm5vcm1hbCIgIm5vcm93 ZGVwZW5kZW5jaWVzIiAibm9zb3J0Igoibm9zd2l0Y2giICJub3QiICJub3Ro aW5nIiAibm90aW1lb3V0IiAibm92YWxpZGF0ZSIgIm5vd2FpdCIgIm51bGwi CiJudWxscyIgIm9iamVjdCIgIm9mIiAib2ZmIiAib2ZmbGluZSIgIm9pZGlu ZGV4IiAib2xkIiAib24iICJvbmxpbmUiCiJvbmx5IiAib3BlbiIgIm9wZXJh dG9yIiAib3B0aW1hbCIgIm9wdGlvbiIgIm9yIiAib3JkZXIiCiJvcmdhbml6 YXRpb24iICJvdXQiICJvdXRlciIgIm91dGxpbmUiICJvdmVyZmxvdyIgIm92 ZXJyaWRpbmciCiJwYWNrYWdlIiAicGFja2FnZXMiICJwYXJhbGxlbCIgInBh cmFsbGVsX2VuYWJsZSIgInBhcmFtZXRlcnMiCiJwYXJlbnQiICJwYXJ0aXRp b24iICJwYXJ0aXRpb25zIiAicGFzc3dvcmQiICJwYXNzd29yZF9ncmFjZV90 aW1lIgoicGFzc3dvcmRfbGlmZV90aW1lIiAicGFzc3dvcmRfbG9ja190aW1l IiAicGFzc3dvcmRfcmV1c2VfbWF4IgoicGFzc3dvcmRfcmV1c2VfdGltZSIg InBhc3N3b3JkX3ZlcmlmeV9mdW5jdGlvbiIgInBjdGZyZWUiCiJwY3RpbmNy ZWFzZSIgInBjdHRocmVzaG9sZCIgInBjdHVzZWQiICJwY3R2ZXJzaW9uIiAi cGVyY2VudCIKInBlcmZvcm1hbmNlIiAicGVybWFuZW50IiAicGZpbGUiICJw aHlzaWNhbCIgInBpcGVsaW5lZCIgInBsYW4iCiJwb3N0X3RyYW5zYWN0aW9u IiAicHJhZ21hIiAicHJlYnVpbHQiICJwcmVzZXJ2ZSIgInByaW1hcnkiICJw cml2YXRlIgoicHJpdmF0ZV9zZ2EiICJwcml2aWxlZ2VzIiAicHJvY2VkdXJl IiAicHJvZmlsZSIgInByb3RlY3Rpb24iICJwdWJsaWMiCiJwdXJnZSIgInF1 ZXJ5IiAicXVpZXNjZSIgInF1b3RhIiAicmFuZ2UiICJyZWFkIiAicmVhZHMi ICJyZWJ1aWxkIgoicmVjb3Jkc19wZXJfYmxvY2siICJyZWNvdmVyIiAicmVj b3ZlcnkiICJyZWN5Y2xlIiAicmVkdWNlZCIgInJlZiIKInJlZmVyZW5jZXMi ICJyZWZlcmVuY2luZyIgInJlZnJlc2giICJyZWdpc3RlciIgInJlamVjdCIg InJlbGF0aW9uYWwiCiJyZWx5IiAicmVuYW1lIiAicmVzZXQiICJyZXNldGxv Z3MiICJyZXNpemUiICJyZXNvbHZlIiAicmVzb2x2ZXIiCiJyZXNvdXJjZSIg InJlc3RyaWN0IiAicmVzdHJpY3RfcmVmZXJlbmNlcyIgInJlc3RyaWN0ZWQi ICJyZXN1bHQiCiJyZXN1bWFibGUiICJyZXN1bWUiICJyZXRlbnRpb24iICJy ZXR1cm4iICJyZXR1cm5pbmciICJyZXVzZSIKInJldmVyc2UiICJyZXZva2Ui ICJyZXdyaXRlIiAicmlnaHQiICJybmRzIiAicm5wcyIgInJvbGUiICJyb2xl cyIKInJvbGxiYWNrIiAicm9sbHVwIiAicm93IiAicm93ZGVwZW5kZW5jaWVz IiAicm93bnVtIiAicm93cyIgInNhbXBsZSIKInNhdmVwb2ludCIgInNjYW4i ICJzY2hlbWEiICJzY24iICJzY29wZSIgInNlZ21lbnQiICJzZWxlY3QiCiJz ZWxlY3Rpdml0eSIgInNlbGYiICJzZXF1ZW5jZSIgInNlcmlhbGl6YWJsZSIg InNlc3Npb24iCiJzZXNzaW9uc19wZXJfdXNlciIgInNldCIgInNldHMiICJz ZXR0aW5ncyIgInNoYXJlZCIgInNoYXJlZF9wb29sIgoic2hyaW5rIiAic2h1 dGRvd24iICJzaWJsaW5ncyIgInNpZCIgInNpbmdsZSIgInNpemUiICJza2lw IiAic29tZSIKInNvcnQiICJzb3VyY2UiICJzcGFjZSIgInNwZWNpZmljYXRp b24iICJzcGZpbGUiICJzcGxpdCIgInN0YW5kYnkiCiJzdGFydCIgInN0YXRl bWVudF9pZCIgInN0YXRpYyIgInN0YXRpc3RpY3MiICJzdG9wIiAic3RvcmFn ZSIgInN0b3JlIgoic3RydWN0dXJlIiAic3VicGFydGl0aW9uIiAic3VicGFy dGl0aW9ucyIgInN1YnN0aXR1dGFibGUiCiJzdWNjZXNzZnVsIiAic3VwcGxl bWVudGFsIiAic3VzcGVuZCIgInN3aXRjaCIgInN3aXRjaG92ZXIiICJzeW5v bnltIgoic3lzIiAic3lzdGVtIiAidGFibGUiICJ0YWJsZXMiICJ0YWJsZXNw YWNlIiAidGVtcGZpbGUiICJ0ZW1wbGF0ZSIKInRlbXBvcmFyeSIgInRlc3Qi ICJ0aGFuIiAidGhlbiIgInRocmVhZCIgInRocm91Z2giICJ0aW1lX3pvbmUi CiJ0aW1lb3V0IiAidG8iICJ0cmFjZSIgInRyYW5zYWN0aW9uIiAidHJpZ2dl ciIgInRyaWdnZXJzIiAidHJ1bmNhdGUiCiJ0cnVzdCIgInR5cGUiICJ0eXBl cyIgInVuYXJjaGl2ZWQiICJ1bmRlciIgInVuZGVyX3BhdGgiICJ1bmRvIgoi dW5pZm9ybSIgInVuaW9uIiAidW5pcXVlIiAidW5saW1pdGVkIiAidW5sb2Nr IiAidW5xdWllc2NlIgoidW5yZWNvdmVyYWJsZSIgInVudGlsIiAidW51c2Fi bGUiICJ1bnVzZWQiICJ1cGRhdGUiICJ1cGdyYWRlIiAidXNhZ2UiCiJ1c2Ui ICJ1c2luZyIgInZhbGlkYXRlIiAidmFsaWRhdGlvbiIgInZhbHVlIiAidmFs dWVzIiAidmFyaWFibGUiCiJ2YXJyYXkiICJ2ZXJzaW9uIiAidmlldyIgIndh aXQiICJ3aGVuIiAid2hlbmV2ZXIiICJ3aGVyZSIgIndpdGgiCiJ3aXRob3V0 IiAid25kcyIgInducHMiICJ3b3JrIiAid3JpdGUiICJ4bWxkYXRhIiAieG1s c2NoZW1hIiAieG1sdHlwZSIKKSkKCgkob3JhY2xlLXR5cGVzIChzcWwta2V5 d29yZHMtcmUKImJmaWxlIiAiYmxvYiIgImJ5dGUiICJjaGFyIiAiY2hhcmFj dGVyIiAiY2xvYiIgImRhdGUiICJkZWMiICJkZWNpbWFsIgoiZG91YmxlIiAi ZmxvYXQiICJpbnQiICJpbnRlZ2VyIiAiaW50ZXJ2YWwiICJsb25nIiAibmF0 aW9uYWwiICJuY2hhciIKIm5jbG9iIiAibnVtYmVyIiAibnVtZXJpYyIgIm52 YXJjaGFyMiIgInByZWNpc2lvbiIgInJhdyIgInJlYWwiCiJyb3dpZCIgInNl Y29uZCIgInNtYWxsaW50IiAidGltZSIgInRpbWVzdGFtcCIgInVyb3dpZCIg InZhcmNoYXIiCiJ2YXJjaGFyMiIgInZhcnlpbmciICJ5ZWFyIiAiem9uZSIK KSkKCgkocGxzcWwtZnVuY3Rpb25zIChzcWwta2V5d29yZHMtcmUKIiVidWxr X3Jvd2NvdW50IiAiJWZvdW5kIiAiJWlzb3BlbiIgIiVub3Rmb3VuZCIgIiVy b3djb3VudCIgIiVyb3d0eXBlIgoiJXR5cGUiICJleHRlbmQiICJwcmlvciIK KSkKCgkocGxzcWwta2V5d29yZHMgKHNxbC1rZXl3b3Jkcy1yZQoiYXV0b25v bW91c190cmFuc2FjdGlvbiIgImJ1bGsiICJjaGFyX2Jhc2UiICJjb2xsZWN0 IiAiY29uc3RhbnQiCiJjdXJzb3IiICJkZWNsYXJlIiAiZG8iICJlbHNpZiIg ImV4Y2VwdGlvbl9pbml0IiAiZXhlY3V0ZSIgImV4aXQiCiJleHRlbmRzIiAi ZmFsc2UiICJmZXRjaCIgImZvcmFsbCIgImdvdG8iICJob3VyIiAiaWYiICJp bnRlcmZhY2UiCiJsb29wIiAibWludXRlIiAibnVtYmVyX2Jhc2UiICJvY2ly b3dpZCIgIm9wYXF1ZSIgIm90aGVycyIgInJvd3R5cGUiCiJzZXBhcmF0ZSIg InNlcmlhbGx5X3JldXNhYmxlIiAic3FsIiAic3FsY29kZSIgInNxbGVycm0i ICJzdWJ0eXBlIgoidGhlIiAidGltZXpvbmVfYWJiciIgInRpbWV6b25lX2hv dXIiICJ0aW1lem9uZV9taW51dGUiCiJ0aW1lem9uZV9yZWdpb24iICJ0cnVl IiAidmFycnlpbmciICJ3aGlsZSIKKSkKCgkocGxzcWwtdHlwZSAoc3FsLWtl eXdvcmRzLXJlCiJiaW5hcnlfaW50ZWdlciIgImJvb2xlYW4iICJuYXR1cmFs biIgInBsc19pbnRlZ2VyIiAicG9zaXRpdmUiCiJwb3NpdGl2ZW4iICJyZWNv cmQiICJzaWdudHlwZSIgInN0cmluZyIKKSkKCgkocGxzcWwtd2FybmluZyAo c3FsLWtleXdvcmRzLXJlCiJhY2Nlc3NfaW50b19udWxsIiAiY2FzZV9ub3Rf Zm91bmQiICJjb2xsZWN0aW9uX2lzX251bGwiCiJjdXJzb3JfYWxyZWFkeV9v cGVuIiAiZHVwX3ZhbF9vbl9pbmRleCIgImludmFsaWRfY3Vyc29yIgoiaW52 YWxpZF9udW1iZXIiICJsb2dpbl9kZW5pZWQiICJub19kYXRhX2ZvdW5kIiAi bm90X2xvZ2dlZF9vbiIKInByb2dyYW1fZXJyb3IiICJyb3d0eXBlX21pc21h dGNoIiAic2VsZl9pc19udWxsIiAic3RvcmFnZV9lcnJvciIKInN1YnNjcmlw dF9iZXlvbmRfY291bnQiICJzdWJzY3JpcHRfb3V0c2lkZV9saW1pdCIgInN5 c19pbnZhbGlkX3Jvd2lkIgoidGltZW91dF9vbl9yZXNvdXJjZSIgInRvb19t YW55X3Jvd3MiICJ2YWx1ZV9lcnJvciIgInplcm9fZGl2aWRlIgoiZXhjZXB0 aW9uIiAibm90Zm91bmQiCikpCgoJKHNxbHBsdXMtY29tbWFuZHMKCSAoZXZh bC13aGVuLWNvbXBpbGUgKGNvbmNhdCAiXlxcKFxcKCIKCQkJCSAgICAocmVn ZXhwLW9wdCAnKAoiQCIgIkBAIiAiYWNjZXB0IiAiYXBwZW5kIiAiYXJjaGl2 ZSIgImF0dHJpYnV0ZSIgImJyZWFrIgoiYnRpdGxlIiAiY2hhbmdlIiAiY2xl YXIiICJjb2x1bW4iICJjb25uZWN0IiAiY29weSIgImRlZmluZSIKImRlbCIg ImRlc2NyaWJlIiAiZGlzY29ubmVjdCIgImVkaXQiICJleGVjdXRlIiAiZXhp dCIgImdldCIgImhlbHAiCiJob3N0IiAiaW5wdXQiICJsaXN0IiAicGFzc3dv cmQiICJwYXVzZSIgInByaW50IiAicHJvbXB0IiAicmVjb3ZlciIKInJlbWFy ayIgInJlcGZvb3RlciIgInJlcGhlYWRlciIgInJ1biIgInNhdmUiICJzaG93 IiAic2h1dGRvd24iCiJzcG9vbCIgInN0YXJ0IiAic3RhcnR1cCIgInN0b3Jl IiAidGltaW5nIiAidHRpdGxlIiAidW5kZWZpbmUiCiJ2YXJpYWJsZSIgIndo ZW5ldmVyIgoKKSB0KQoKICAgIlxcKVxcfCIKICAgIlxcKGNvbXB1dGVcXHMt K1xcKGF2Z1xcfGNvdVxcfG1pblxcfG1heFxcfG51bVxcfHN1bVxcfHN0ZFxc fHZhclxcKVxcKVxcfCIKICAgIlxcKHNldFxccy0rXFwoYXBwaVxcKG5mb1xc KT9cXHxhcnJheVxcKHNpemVcXCk/XFx8IgogICAiYXV0b1xcKGNvbW1pdFxc KT9cXHxhdXRvcFxcKHJpbnRcXCk/XFx8YXV0b3JlY292ZXJ5XFx8IgogICAi YXV0b3RcXChyYWNlXFwpP1xcfGJsb1xcKGNrdGVybWluYXRvclxcKT9cXHxj bWRzXFwoZXBcXCk/XFx8IgogICAiY29sc2VwXFx8Y29tXFwocGF0aWJpbGl0 eVxcKT9cXHxjb25cXChjYXRcXCk/XFx8IgogICAiY29weWNcXChvbW1pdFxc KT9cXHxjb3B5dHlwZWNoZWNrXFx8ZGVmXFwoaW5lXFwpP1xcfCIKICAgImRl c2NyaWJlXFx8ZWNob1xcfGVkaXRmXFwoaWxlXFwpP1xcfGVtYlxcKGVkZGVk XFwpP1xcfCIKICAgImVzY1xcKGFwZVxcKT9cXHxmZWVkXFwoYmFja1xcKT9c XHxmbGFnZ2VyXFx8IgogICAiZmx1XFwoc2hcXCk/XFx8aGVhXFwoZGluZ1xc KT9cXHxoZWFkc1xcKGVwXFwpP1xcfCIKICAgImluc3RhbmNlXFx8bGluXFwo ZXNpemVcXCk/XFx8bG9ib2ZcXChmc2V0XFwpP1xcfCIKICAgImxvZ3NvdXJj ZVxcfGxvbmdcXHxsb25nY1xcKGh1bmtzaXplXFwpP1xcfG1hcmtcXCh1cFxc KT9cXHwiCiAgICJuZXdwXFwoYWdlXFwpP1xcfG51bGxcXHxudW1mXFwob3Jt YXRcXCk/XFx8IgogICAibnVtXFwod2lkdGhcXCk/XFx8cGFnZXNcXChpemVc XCk/XFx8cGF1XFwoc2VcXCk/XFx8IgogICAicmVjc2VwXFx8cmVjc2VwY2hh clxcfHNlcnZlcm91dFxcKHB1dFxcKT9cXHwiCiAgICJzaGlmdFxcKGlub3V0 XFwpP1xcfHNob3dcXChtb2RlXFwpP1xcfCIKICAgInNxbGJsXFwoYW5rbGlu ZXNcXCk/XFx8c3FsY1xcKGFzZVxcKT9cXHwiCiAgICJzcWxjb1xcKG50aW51 ZVxcKT9cXHxzcWxuXFwodW1iZXJcXCk/XFx8IgogICAic3FscGx1c2NvbXBh dFxcKGliaWxpdHlcXCk/XFx8c3FscHJlXFwoZml4XFwpP1xcfCIKICAgInNx bHBcXChyb21wdFxcKT9cXHxzcWx0XFwoZXJtaW5hdG9yXFwpP1xcfCIKICAg InN1ZlxcKGZpeFxcKT9cXHx0YWJcXHx0ZXJtXFwob3V0XFwpP1xcfHRpXFwo bWVcXCk/XFx8IgogICAidGltaVxcKG5nXFwpP1xcfHRyaW1cXChvdXRcXCk/ XFx8dHJpbXNcXChwb29sXFwpP1xcfCIKICAgInVuZFxcKGVybGluZVxcKT9c XHx2ZXJcXChpZnlcXCk/XFx8d3JhXFwocFxcKT9cXClcXClcXCkiCiAgICJc XGIuKiQiCiAgICkpKSkKCiAgICBgKCgsc3FscGx1cy1jb21tYW5kcyAuIGZv bnQtbG9jay1kb2MtZmFjZSkKICAgICAgKCxvcmFjbGUtZnVuY3Rpb25zIC4g Zm9udC1sb2NrLWJ1aWx0aW4tZmFjZSkKICAgICAgKCxvcmFjbGUta2V5d29y ZHMgIC4gZm9udC1sb2NrLWtleXdvcmQtZmFjZSkKICAgICAgKCxvcmFjbGUt dHlwZXMgICAgIC4gZm9udC1sb2NrLXR5cGUtZmFjZSkKICAgICAgKCxwbHNx bC1mdW5jdGlvbnMgIC4gZm9udC1sb2NrLWJ1aWx0aW4tZmFjZSkKICAgICAg KCxwbHNxbC1rZXl3b3JkcyAgIC4gZm9udC1sb2NrLWtleXdvcmQtZmFjZSkK ICAgICAgKCxwbHNxbC10eXBlICAgICAgIC4gZm9udC1sb2NrLXR5cGUtZmFj ZSkKICAgICAgKCxwbHNxbC13YXJuaW5nICAgIC4gZm9udC1sb2NrLXdhcm5p bmctZmFjZSkpKQoKICAiT3JhY2xlIFNRTCBrZXl3b3JkcyB1c2VkIGJ5IGZv bnQtbG9jay4KClRoaXMgdmFyaWFibGUgaXMgdXNlZCBieSBgc3FsLW1vZGUn IGFuZCBgc3FsLWludGVyYWN0aXZlLW1vZGUnLiAgVGhlCnJlZ3VsYXIgZXhw cmVzc2lvbnMgYXJlIGNyZWF0ZWQgZHVyaW5nIGNvbXBpbGF0aW9uIGJ5IGNh bGxpbmcgdGhlCmZ1bmN0aW9uIGByZWdleHAtb3B0Jy4gIFRoZXJlZm9yZSwg dGFrZSBhIGxvb2sgYXQgdGhlIHNvdXJjZSBiZWZvcmUKeW91IGRlZmluZSB5 b3VyIG93biBgc3FsLW1vZGUtb3JhY2xlLWZvbnQtbG9jay1rZXl3b3Jkcycu ICBZb3UgbWF5IHdhbnQKdG8gYWRkIGZ1bmN0aW9ucyBhbmQgUEwvU1FMIGtl eXdvcmRzLiIpCgooZGVmdmFyIHNxbC1tb2RlLXBvc3RncmVzLWZvbnQtbG9j ay1rZXl3b3JkcwogIChsZXQgKChwZy1mdW5jcyAoc3FsLWtleXdvcmRzLXJl CiJhYmJyZXYiICJhYnMiICJhY29zIiAiYWdlIiAiYXJlYSIgImFzY2lpIiAi YXNpbiIgImF0YWIyIiAiYXRhbiIKImF0YW4yIiAiYXZnIiAiYml0X2xlbmd0 aCIgImJvdGgiICJicm9hZGNhc3QiICJidHJpbSIgImNicnQiICJjZWlsIgoi Y2VudGVyIiAiY2hhcl9sZW5ndGgiICJjaHIiICJjb2FsZXNjZSIgImNvbF9k ZXNjcmlwdGlvbiIgImNvbnZlcnQiCiJjb3MiICJjb3QiICJjb3VudCIgImN1 cnJlbnRfZGF0YWJhc2UiICJjdXJyZW50X2RhdGUiICJjdXJyZW50X3NjaGVt YSIKImN1cnJlbnRfc2NoZW1hcyIgImN1cnJlbnRfc2V0dGluZyIgImN1cnJl bnRfdGltZSIgImN1cnJlbnRfdGltZXN0YW1wIgoiY3VycmVudF91c2VyIiAi Y3VycnZhbCIgImRhdGVfcGFydCIgImRhdGVfdHJ1bmMiICJkZWNvZGUiICJk ZWdyZWVzIgoiZGlhbWV0ZXIiICJlbmNvZGUiICJleHAiICJleHRyYWN0IiAi Zmxvb3IiICJnZXRfYml0IiAiZ2V0X2J5dGUiCiJoYXNfZGF0YWJhc2VfcHJp dmlsZWdlIiAiaGFzX2Z1bmN0aW9uX3ByaXZpbGVnZSIKImhhc19sYW5ndWFn ZV9wcml2aWxlZ2UiICJoYXNfc2NoZW1hX3ByaXZpbGVnZSIgImhhc190YWJs ZV9wcml2aWxlZ2UiCiJoZWlnaHQiICJob3N0IiAiaW5pdGNhcCIgImlzY2xv c2VkIiAiaXNmaW5pdGUiICJpc29wZW4iICJsZWFkaW5nIgoibGVuZ3RoIiAi bG4iICJsb2NhbHRpbWUiICJsb2NhbHRpbWVzdGFtcCIgImxvZyIgImxvd2Vy IiAibHBhZCIKImx0cmltIiAibWFza2xlbiIgIm1heCIgIm1pbiIgIm1vZCIg Im5ldG1hc2siICJuZXR3b3JrIiAibmV4dHZhbCIKIm5vdyIgIm5wb2ludHMi ICJudWxsaWYiICJvYmpfZGVzY3JpcHRpb24iICJvY3RldF9sZW5ndGgiICJv dmVybGF5IgoicGNsb3NlIiAicGdfY2xpZW50X2VuY29kaW5nIiAicGdfZnVu Y3Rpb25faXNfdmlzaWJsZSIKInBnX2dldF9jb25zdHJhaW50ZGVmIiAicGdf Z2V0X2luZGV4ZGVmIiAicGdfZ2V0X3J1bGVkZWYiCiJwZ19nZXRfdXNlcmJ5 aWQiICJwZ19nZXRfdmlld2RlZiIgInBnX29wY2xhc3NfaXNfdmlzaWJsZSIK InBnX29wZXJhdG9yX2lzX3Zpc2libGUiICJwZ190YWJsZV9pc192aXNpYmxl IiAicGdfdHlwZV9pc192aXNpYmxlIgoicGkiICJwb3BlbiIgInBvc2l0aW9u IiAicG93IiAicXVvdGVfaWRlbnQiICJxdW90ZV9saXRlcmFsIiAicmFkaWFu cyIKInJhZGl1cyIgInJhbmRvbSIgInJlcGVhdCIgInJlcGxhY2UiICJyb3Vu ZCIgInJwYWQiICJydHJpbSIKInNlc3Npb25fdXNlciIgInNldF9iaXQiICJz ZXRfYnl0ZSIgInNldF9jb25maWciICJzZXRfbWFza2xlbiIKInNldHZhbCIg InNpZ24iICJzaW4iICJzcGxpdF9wYXJ0IiAic3FydCIgInN0ZGRldiIgInN0 cnBvcyIgInN1YnN0ciIKInN1YnN0cmluZyIgInN1bSIgInRhbiIgInRpbWVv ZmRheSIgInRvX2FzY2lpIiAidG9fY2hhciIgInRvX2RhdGUiCiJ0b19oZXgi ICJ0b19udW1iZXIiICJ0b190aW1lc3RhbXAiICJ0cmFpbGluZyIgInRyYW5z bGF0ZSIgInRyaW0iCiJ0cnVuYyIgInVwcGVyIiAidmFyaWFuY2UiICJ2ZXJz aW9uIiAid2lkdGgiCikpCgoJKHBnLXJlc2VydmVkIChzcWwta2V5d29yZHMt cmUKImFib3J0IiAiYWNjZXNzIiAiYWRkIiAiYWZ0ZXIiICJhZ2dyZWdhdGUi ICJhbGlnbm1lbnQiICJhbGwiICJhbHRlciIKImFuYWx5emUiICJhbmQiICJh bnkiICJhcyIgImFzYyIgImFzc2lnbm1lbnQiICJhdXRob3JpemF0aW9uIgoi YmFja3dhcmQiICJiYXNldHlwZSIgImJlZm9yZSIgImJlZ2luIiAiYmV0d2Vl biIgImJpbmFyeSIgImJ5IiAiY2FjaGUiCiJjYWxsZWQiICJjYXNjYWRlIiAi Y2FzZSIgImNhc3QiICJjaGFyYWN0ZXJpc3RpY3MiICJjaGVjayIKImNoZWNr cG9pbnQiICJjbGFzcyIgImNsb3NlIiAiY2x1c3RlciIgImNvbHVtbiIgImNv bW1lbnQiICJjb21taXQiCiJjb21taXR0ZWQiICJjb21tdXRhdG9yIiAiY29u c3RyYWludCIgImNvbnN0cmFpbnRzIiAiY29udmVyc2lvbiIKImNvcHkiICJj cmVhdGUiICJjcmVhdGVkYiIgImNyZWF0ZXVzZXIiICJjdXJzb3IiICJjeWNs ZSIgImRhdGFiYXNlIgoiZGVhbGxvY2F0ZSIgImRlY2xhcmUiICJkZWZhdWx0 IiAiZGVmZXJyYWJsZSIgImRlZmVycmVkIiAiZGVmaW5lciIKImRlbGV0ZSIg ImRlbGltaXRlciIgImRlc2MiICJkaXN0aW5jdCIgImRvIiAiZG9tYWluIiAi ZHJvcCIgImVhY2giCiJlbGVtZW50IiAiZWxzZSIgImVuY29kaW5nIiAiZW5j cnlwdGVkIiAiZW5kIiAiZXNjYXBlIiAiZXhjZXB0IgoiZXhjbHVzaXZlIiAi ZXhlY3V0ZSIgImV4aXN0cyIgImV4cGxhaW4iICJleHRlbmRlZCIgImV4dGVy bmFsIiAiZmFsc2UiCiJmZXRjaCIgImZpbmFsZnVuYyIgImZvciIgImZvcmNl IiAiZm9yZWlnbiIgImZvcndhcmQiICJmcmVlemUiICJmcm9tIgoiZnVsbCIg ImZ1bmN0aW9uIiAiZ3JhbnQiICJncm91cCIgImd0Y21wIiAiaGFuZGxlciIg Imhhc2hlcyIgImhhdmluZyIKImltbWVkaWF0ZSIgImltbXV0YWJsZSIgImlt cGxpY2l0IiAiaW4iICJpbmNyZW1lbnQiICJpbmRleCIgImluaGVyaXRzIgoi aW5pdGNvbmQiICJpbml0aWFsbHkiICJpbnB1dCIgImluc2Vuc2l0aXZlIiAi aW5zZXJ0IiAiaW5zdGVhZCIKImludGVybmFsbGVuZ3RoIiAiaW50ZXJzZWN0 IiAiaW50byIgImludm9rZXIiICJpcyIgImlzbnVsbCIKImlzb2xhdGlvbiIg ImpvaW4iICJrZXkiICJsYW5ndWFnZSIgImxlZnRhcmciICJsZXZlbCIgImxp a2UiICJsaW1pdCIKImxpc3RlbiIgImxvYWQiICJsb2NhbCIgImxvY2F0aW9u IiAibG9jayIgImx0Y21wIiAibWFpbiIgIm1hdGNoIgoibWF4dmFsdWUiICJt ZXJnZXMiICJtaW52YWx1ZSIgIm1vZGUiICJtb3ZlIiAibmF0dXJhbCIgIm5l Z2F0b3IiCiJuZXh0IiAibm9jcmVhdGVkYiIgIm5vY3JlYXRldXNlciIgIm5v bmUiICJub3QiICJub3RoaW5nIiAibm90aWZ5Igoibm90bnVsbCIgIm51bGwi ICJvZiIgIm9mZnNldCIgIm9pZHMiICJvbiIgIm9ubHkiICJvcGVyYXRvciIg Im9yIgoib3JkZXIiICJvdXRwdXQiICJvd25lciIgInBhcnRpYWwiICJwYXNz ZWRieXZhbHVlIiAicGFzc3dvcmQiICJwbGFpbiIKInByZXBhcmUiICJwcmlt YXJ5IiAicHJpb3IiICJwcml2aWxlZ2VzIiAicHJvY2VkdXJhbCIgInByb2Nl ZHVyZSIKInB1YmxpYyIgInJlYWQiICJyZWNoZWNrIiAicmVmZXJlbmNlcyIg InJlaW5kZXgiICJyZWxhdGl2ZSIgInJlbmFtZSIKInJlc2V0IiAicmVzdHJp Y3QiICJyZXR1cm5zIiAicmV2b2tlIiAicmlnaHRhcmciICJyb2xsYmFjayIg InJvdyIKInJ1bGUiICJzY2hlbWEiICJzY3JvbGwiICJzZWN1cml0eSIgInNl bGVjdCIgInNlcXVlbmNlIiAic2VyaWFsaXphYmxlIgoic2Vzc2lvbiIgInNl dCIgInNmdW5jIiAic2hhcmUiICJzaG93IiAic2ltaWxhciIgInNvbWUiICJz b3J0MSIKInNvcnQyIiAic3RhYmxlIiAic3RhcnQiICJzdGF0ZW1lbnQiICJz dGF0aXN0aWNzIiAic3RvcmFnZSIgInN0cmljdCIKInN0eXBlIiAic3lzaWQi ICJ0YWJsZSIgInRlbXAiICJ0ZW1wbGF0ZSIgInRlbXBvcmFyeSIgInRoZW4i ICJ0byIKInRyYW5zYWN0aW9uIiAidHJpZ2dlciIgInRydWUiICJ0cnVuY2F0 ZSIgInRydXN0ZWQiICJ0eXBlIgoidW5lbmNyeXB0ZWQiICJ1bmlvbiIgInVu aXF1ZSIgInVua25vd24iICJ1bmxpc3RlbiIgInVudGlsIiAidXBkYXRlIgoi dXNhZ2UiICJ1c2VyIiAidXNpbmciICJ2YWN1dW0iICJ2YWxpZCIgInZhbGlk YXRvciIgInZhbHVlcyIKInZhcmlhYmxlIiAidmVyYm9zZSIgInZpZXciICJ2 b2xhdGlsZSIgIndoZW4iICJ3aGVyZSIgIndpdGgiICJ3aXRob3V0Igoid29y ayIKKSkKCgkocGctdHlwZXMgKHNxbC1rZXl3b3Jkcy1yZQoiYW55YXJyYXki ICJiaWdpbnQiICJiaWdzZXJpYWwiICJiaXQiICJib29sZWFuIiAiYm94IiAi Ynl0ZWEiICJjaGFyIgoiY2hhcmFjdGVyIiAiY2lkciIgImNpcmNsZSIgImNz dHJpbmciICJkYXRlIiAiZGVjaW1hbCIgImRvdWJsZSIKImZsb2F0NCIgImZs b2F0OCIgImluZXQiICJpbnQyIiAiaW50NCIgImludDgiICJpbnRlZ2VyIiAi aW50ZXJuYWwiCiJpbnRlcnZhbCIgImxhbmd1YWdlX2hhbmRsZXIiICJsaW5l IiAibHNlZyIgIm1hY2FkZHIiICJtb25leSIKIm51bWVyaWMiICJvaWQiICJv cGFxdWUiICJwYXRoIiAicG9pbnQiICJwb2x5Z29uIiAicHJlY2lzaW9uIiAi cmVhbCIKInJlY29yZCIgInJlZ2NsYXNzIiAicmVnb3BlciIgInJlZ29wZXJh dG9yIiAicmVncHJvYyIgInJlZ3Byb2NlZHVyZSIKInJlZ3R5cGUiICJzZXJp YWwiICJzZXJpYWw0IiAic2VyaWFsOCIgInNtYWxsaW50IiAidGV4dCIgInRp bWUiCiJ0aW1lc3RhbXAiICJ2YXJjaGFyIiAidmFyeWluZyIgInZvaWQiICJ6 b25lIgopKSkKCiAgYCgoLHBnLWZ1bmNzICAgIC4gZm9udC1sb2NrLWJ1aWx0 aW4tZmFjZSkKICAgICgscGctcmVzZXJ2ZWQgLiBmb250LWxvY2sta2V5d29y ZC1mYWNlKQogICAgKCxwZy10eXBlcyAgICAuIGZvbnQtbG9jay10eXBlLWZh Y2UpKSkKCiAgIlBvc3RncmVzIFNRTCBrZXl3b3JkcyB1c2VkIGJ5IGZvbnQt bG9jay4KClRoaXMgdmFyaWFibGUgaXMgdXNlZCBieSBgc3FsLW1vZGUnIGFu ZCBgc3FsLWludGVyYWN0aXZlLW1vZGUnLiAgVGhlCnJlZ3VsYXIgZXhwcmVz c2lvbnMgYXJlIGNyZWF0ZWQgZHVyaW5nIGNvbXBpbGF0aW9uIGJ5IGNhbGxp bmcgdGhlCmZ1bmN0aW9uIGByZWdleHAtb3B0Jy4gIFRoZXJlZm9yZSwgdGFr ZSBhIGxvb2sgYXQgdGhlIHNvdXJjZSBiZWZvcmUKeW91IGRlZmluZSB5b3Vy IG93biBgc3FsLW1vZGUtcG9zdGdyZXMtZm9udC1sb2NrLWtleXdvcmRzJy4i KQoKKGRlZnZhciBzcWwtbW9kZS1saW50ZXItZm9udC1sb2NrLWtleXdvcmRz CiAgKGxldCAoKGxpbnRlci1rZXl3b3JkcyAoc3FsLWtleXdvcmRzLXJlCiJh dXRvY29tbWl0IiAiYXV0b2luYyIgImF1dG9yb3dpZCIgImNhbmNlbCIgImNh c2NhZGUiICJjaGFubmVsIgoiY29tbWl0dGVkIiAiY291bnQiICJjb3VudGJs b2IiICJjcm9zcyIgImN1cnJlbnQiICJkYXRhIiAiZGF0YWJhc2UiCiJkYXRh ZmlsZSIgImRhdGFmaWxlcyIgImRhdGVzcGxpdCIgImRiYSIgImRibmFtZSIg ImRlZmF1bHQiICJkZWZlcnJlZCIKImRlbmllZCIgImRlc2NyaXB0aW9uIiAi ZGV2aWNlIiAiZGlmZmVyZW5jZSIgImRpcmVjdG9yeSIgImVycm9yIgoiZXNj YXBlIiAiZXVjIiAiZXhjbHVzaXZlIiAiZXh0ZXJuYWwiICJleHRmaWxlIiAi ZmFsc2UiICJmaWxlIgoiZmlsZW5hbWUiICJmaWxlc2l6ZSIgImZpbGV0aW1l IiAiZmlsdGVyIiAiZmluZGJsb2IiICJmaXJzdCIgImZvcmVpZ24iCiJmdWxs IiAiZnV6enkiICJnbG9iYWwiICJncmFudGVkIiAiaWdub3JlIiAiaW1tZWRp YXRlIiAiaW5jcmVtZW50IgoiaW5kZXhlcyIgImluZGV4ZmlsZSIgImluZGV4 ZmlsZXMiICJpbmRleHRpbWUiICJpbml0aWFsIiAiaW50ZWdyaXR5IgoiaW50 ZXJuYWwiICJrZXkiICJsYXN0X2F1dG9pbmMiICJsYXN0X3Jvd2lkIiAibGlt aXQiICJsaW50ZXIiCiJsaW50ZXJfZmlsZV9kZXZpY2UiICJsaW50ZXJfZmls ZV9zaXplIiAibGludGVyX25hbWVfbGVuZ3RoIiAibG4iCiJsb2NhbCIgImxv Z2luIiAibWF4aXNuIiAibWF4cm93IiAibWF4cm93aWQiICJtYXh2YWx1ZSIg Im1lc3NhZ2UiCiJtaW52YWx1ZSIgIm1vZHVsZSIgIm5hbWVzIiAibmF0aW9u YWwiICJuYXR1cmFsIiAibmV3IiAibmV3X3RhYmxlIgoibm8iICJub2RlIiAi bm9uZXVjIiAibnVsbGlmZXJyb3IiICJudW1iZXJzIiAib2ZmIiAib2xkIiAi b2xkX3RhYmxlIgoib25seSIgIm9wZXJhdGlvbiIgIm9wdGltaXN0aWMiICJv cHRpb24iICJwYWdlIiAicGFydGlhbGx5IiAicGFzc3dvcmQiCiJwaHJhc2Ui ICJwbGFuIiAicHJlY2lzaW9uIiAicHJpbWFyeSIgInByaW9yaXR5IiAicHJp dmlsZWdlcyIKInByb2NfaW5mb19zaXplIiAicHJvY19wYXJfbmFtZV9sZW4i ICJwcm90b2NvbCIgInF1YW50IiAicmFuZ2UiICJyYXciCiJyZWFkIiAicmVj b3JkIiAicmVjb3JkcyIgInJlZmVyZW5jZXMiICJyZW1vdGUiICJyZW5hbWUi ICJyZXBsaWNhdGlvbiIKInJlc3RhcnQiICJyZXdyaXRlIiAicm9vdCIgInJv dyIgInJ1bGUiICJzYXZlcG9pbnQiICJzZWN1cml0eSIKInNlbnNpdGl2ZSIg InNlcXVlbmNlIiAic2VyaWFsaXphYmxlIiAic2VydmVyIiAic2luY2UiICJz aXplIiAic29tZSIKInN0YXJ0dXAiICJzdGF0ZW1lbnQiICJzdGF0aW9uIiAi c3VjY2VzcyIgInN5c19ndWlkIiAidGFibGVzIiAidGVzdCIKInRpbWVvdXQi ICJ0cmFjZSIgInRyYW5zYWN0aW9uIiAidHJhbnNsYXRpb24iICJ0cmlnZ2Vy IgoidHJpZ2dlcl9pbmZvX3NpemUiICJ0cnVlIiAidHJ1bmMiICJ1bmNvbW1p dHRlZCIgInVuaWNvZGUiICJ1bmtub3duIgoidW5saW1pdGVkIiAidW5saXN0 ZWQiICJ1c2VyIiAidXRmOCIgInZhbHVlIiAidmFyeWluZyIgInZvbHVtZXMi CiJ3YWl0IiAid2luZG93c19jb2RlIiAid29ya3NwYWNlIiAid3JpdGUiICJ4 bWwiCikpCgoJKGxpbnRlci1yZXNlcnZlZCAoc3FsLWtleXdvcmRzLXJlCiJh Y2Nlc3MiICJhY3Rpb24iICJhZGQiICJhZGRyZXNzIiAiYWZ0ZXIiICJhbGwi ICJhbHRlciIgImFsd2F5cyIgImFuZCIKImFueSIgImFwcGVuZCIgImFzIiAi YXNjIiAiYXNjaWMiICJhc3luYyIgImF0X2JlZ2luIiAiYXRfZW5kIiAiYXVk aXQiCiJhdWRfb2JqX25hbWVfbGVuIiAiYmFja3VwIiAiYmFzZSIgImJlZm9y ZSIgImJldHdlZW4iICJibG9iZmlsZSIKImJsb2JmaWxlcyIgImJsb2JwY3Qi ICJicmllZiIgImJyb3dzZSIgImJ5IiAiY2FzZSIgImNhc3QiICJjaGVjayIK ImNsZWFyIiAiY2xvc2UiICJjb2x1bW4iICJjb21tZW50IiAiY29tbWl0IiAi Y29ubmVjdCIgImNvbnRhaW5zIgoiY29ycmVjdCIgImNyZWF0ZSIgImRlbGV0 ZSIgImRlc2MiICJkaXNhYmxlIiAiZGlzY29ubmVjdCIgImRpc3RpbmN0Igoi ZHJvcCIgImVhY2giICJlZiIgImVsc2UiICJlbmFibGUiICJlbmQiICJldmVu dCIgImV4Y2VwdCIgImV4Y2x1ZGUiCiJleGVjdXRlIiAiZXhpc3RzIiAiZXh0 cmFjdCIgImZldGNoIiAiZmluaXNoIiAiZm9yIiAiZnJvbSIgImdldCIKImdy YW50IiAiZ3JvdXAiICJoYXZpbmciICJpZGVudGlmaWVkIiAiaW4iICJpbmRl eCIgImlubmVyIiAiaW5zZXJ0IgoiaW5zdGVhZCIgImludGVyc2VjdCIgImlu dG8iICJpcyIgImlzb2xhdGlvbiIgImpvaW4iICJsZWZ0IiAibGV2ZWwiCiJs aWtlIiAibG9jayIgIm1vZGUiICJtb2RpZnkiICJub3QiICJub3dhaXQiICJu dWxsIiAib2YiICJvbiIgIm9wZW4iCiJvciIgIm9yZGVyIiAib3V0ZXIiICJv d25lciIgInByZXNzIiAicHJpb3IiICJwcm9jZWR1cmUiICJwdWJsaWMiCiJw dXJnZSIgInJlYnVpbGQiICJyZXNvdXJjZSIgInJlc3RyaWN0IiAicmV2b2tl IiAicmlnaHQiICJyb2xlIgoicm9sbGJhY2siICJyb3dudW0iICJzZWxlY3Qi ICJzZXNzaW9uIiAic2V0IiAic2hhcmUiICJzaHV0ZG93biIKInN0YXJ0IiAi c3RvcCIgInN5bmMiICJzeW5jaHJvbml6ZSIgInN5bm9ueW0iICJzeXNkYXRl IiAidGFibGUiICJ0aGVuIgoidG8iICJ1bmlvbiIgInVuaXF1ZSIgInVubG9j ayIgInVudGlsIiAidXBkYXRlIiAidXNpbmciICJ2YWx1ZXMiCiJ2aWV3IiAi d2hlbiIgIndoZXJlIiAid2l0aCIgIndpdGhvdXQiCikpCgoJKGxpbnRlci10 eXBlcyAoc3FsLWtleXdvcmRzLXJlCiJiaWdpbnQiICJiaXRtYXAiICJibG9i IiAiYm9vbGVhbiIgImNoYXIiICJjaGFyYWN0ZXIiICJkYXRlIgoiZGF0ZXRp bWUiICJkZWMiICJkZWNpbWFsIiAiZG91YmxlIiAiZmxvYXQiICJpbnQiICJp bnRlZ2VyIiAibmNoYXIiCiJudW1iZXIiICJudW1lcmljIiAicmVhbCIgInNt YWxsaW50IiAidmFyYnl0ZSIgInZhcmNoYXIiICJieXRlIgoiY3Vyc29yIiAi bG9uZyIKKSkKCgkobGludGVyLWZ1bmN0aW9ucyAoc3FsLWtleXdvcmRzLXJl CiJhYnMiICJhY29zIiAiYXNpbiIgImF0YW4iICJhdGFuMiIgImF2ZyIgImNl aWwiICJjb3MiICJjb3NoIiAiZGl2dGltZSIKImV4cCIgImZsb29yIiAiZ2V0 Yml0cyIgImdldGJsb2IiICJnZXRieXRlIiAiZ2V0bG9uZyIgImdldHJhdyIK ImdldHN0ciIgImdldHRleHQiICJnZXR3b3JkIiAiaGV4dG9yYXciICJsZW5i bG9iIiAibGVuZ3RoIiAibG9nIgoibG93ZXIiICJscGFkIiAibHRyaW0iICJt YXgiICJtaW4iICJtb2QiICJtb250aG5hbWUiICJudmwiCiJvY3RldF9sZW5n dGgiICJwb3dlciIgInJhbmQiICJyYXd0b2hleCIgInJlcGVhdF9zdHJpbmci CiJyaWdodF9zdWJzdHIiICJyb3VuZCIgInJwYWQiICJydHJpbSIgInNpZ24i ICJzaW4iICJzaW5oIiAic291bmRleCIKInNxcnQiICJzdW0iICJ0YW4iICJ0 YW5oIiAidGltZWludF90b19kYXlzIiAidG9fY2hhciIgInRvX2RhdGUiCiJ0 b19nbXRpbWUiICJ0b19sb2NhbHRpbWUiICJ0b19udW1iZXIiICJ0cmltIiAi dXBwZXIiICJkZWNvZGUiCiJzdWJzdHIiICJzdWJzdHJpbmciICJjaHIiICJk YXluYW1lIiAiZGF5cyIgImdyZWF0ZXN0IiAiaGV4IiAiaW5pdGNhcCIKImlu c3RyIiAibGVhc3QiICJtdWx0aW1lIiAicmVwbGFjZSIgIndpZHRoIgopKSkK CiAgICBgKCgsbGludGVyLWtleXdvcmRzICAuIGZvbnQtbG9jay1rZXl3b3Jk LWZhY2UpCiAgICAgICgsbGludGVyLXJlc2VydmVkICAuIGZvbnQtbG9jay1r ZXl3b3JkLWZhY2UpCiAgICAgICgsbGludGVyLWZ1bmN0aW9ucyAuIGZvbnQt bG9jay1idWlsdGluLWZhY2UpCiAgICAgICgsbGludGVyLXR5cGVzICAgICAu IGZvbnQtbG9jay10eXBlLWZhY2UpKSkKCiAgIkxpbnRlciBTUUwga2V5d29y ZHMgdXNlZCBieSBmb250LWxvY2suCgpUaGlzIHZhcmlhYmxlIGlzIHVzZWQg YnkgYHNxbC1tb2RlJyBhbmQgYHNxbC1pbnRlcmFjdGl2ZS1tb2RlJy4gIFRo ZQpyZWd1bGFyIGV4cHJlc3Npb25zIGFyZSBjcmVhdGVkIGR1cmluZyBjb21w aWxhdGlvbiBieSBjYWxsaW5nIHRoZQpmdW5jdGlvbiBgcmVnZXhwLW9wdCcu IikKCihkZWZ2YXIgc3FsLW1vZGUtbXMtZm9udC1sb2NrLWtleXdvcmRzCiAg KGxldCAoKG1zLXJlc2VydmVkIChzcWwta2V5d29yZHMtcmUKImFic29sdXRl IiAiYWRkIiAiYWxsIiAiYWx0ZXIiICJhbmQiICJhbnkiICJhcyIgImFzYyIg ImF1dGhvcml6YXRpb24iCiJhdmciICJiYWNrdXAiICJiZWdpbiIgImJldHdl ZW4iICJicmVhayIgImJyb3dzZSIgImJ1bGsiICJieSIKImNhc2NhZGUiICJj YXNlIiAiY2hlY2siICJjaGVja3BvaW50IiAiY2xvc2UiICJjbHVzdGVyZWQi ICJjb2FsZXNjZSIKImNvbHVtbiIgImNvbW1pdCIgImNvbW1pdHRlZCIgImNv bXB1dGUiICJjb25maXJtIiAiY29uc3RyYWludCIKImNvbnRhaW5zIiAiY29u dGFpbnN0YWJsZSIgImNvbnRpbnVlIiAiY29udHJvbHJvdyIgImNvbnZlcnQi ICJjb3VudCIKImNyZWF0ZSIgImNyb3NzIiAiY3VycmVudCIgImN1cnJlbnRf ZGF0ZSIgImN1cnJlbnRfdGltZSIKImN1cnJlbnRfdGltZXN0YW1wIiAiY3Vy cmVudF91c2VyIiAiZGF0YWJhc2UiICJkZWFsbG9jYXRlIiAiZGVjbGFyZSIK ImRlZmF1bHQiICJkZWxldGUiICJkZW55IiAiZGVzYyIgImRpc2siICJkaXN0 aW5jdCIgImRpc3RyaWJ1dGVkIgoiZG91YmxlIiAiZHJvcCIgImR1bW15IiAi ZHVtcCIgImVsc2UiICJlbmQiICJlcnJsdmwiICJlcnJvcmV4aXQiCiJlc2Nh cGUiICJleGNlcHQiICJleGVjIiAiZXhlY3V0ZSIgImV4aXN0cyIgImV4aXQi ICJmZXRjaCIgImZpbGUiCiJmaWxsZmFjdG9yIiAiZmlyc3QiICJmbG9wcHki ICJmb3IiICJmb3JlaWduIiAiZnJlZXRleHQiCiJmcmVldGV4dHRhYmxlIiAi ZnJvbSIgImZ1bGwiICJnb3RvIiAiZ3JhbnQiICJncm91cCIgImhhdmluZyIK ImhvbGRsb2NrIiAiaWRlbnRpdHkiICJpZGVudGl0eV9pbnNlcnQiICJpZGVu dGl0eWNvbCIgImlmIiAiaW4iCiJpbmRleCIgImlubmVyIiAiaW5zZXJ0IiAi aW50ZXJzZWN0IiAiaW50byIgImlzIiAiaXNvbGF0aW9uIiAiam9pbiIKImtl eSIgImtpbGwiICJsYXN0IiAibGVmdCIgImxldmVsIiAibGlrZSIgImxpbmVu byIgImxvYWQiICJtYXgiICJtaW4iCiJtaXJyb3JleGl0IiAibmF0aW9uYWwi ICJuZXh0IiAibm9jaGVjayIgIm5vbG9jayIgIm5vbmNsdXN0ZXJlZCIgIm5v dCIKIm51bGwiICJudWxsaWYiICJvZiIgIm9mZiIgIm9mZnNldHMiICJvbiIg Im9uY2UiICJvbmx5IiAib3BlbiIKIm9wZW5kYXRhc291cmNlIiAib3BlbnF1 ZXJ5IiAib3BlbnJvd3NldCIgIm9wdGlvbiIgIm9yIiAib3JkZXIiCiJvdXRl ciIgIm91dHB1dCIgIm92ZXIiICJwYWdsb2NrIiAicGVyY2VudCIgInBlcm0i ICJwZXJtYW5lbnQiICJwaXBlIgoicGxhbiIgInByZWNpc2lvbiIgInByZXBh cmUiICJwcmltYXJ5IiAicHJpbnQiICJwcmlvciIgInByaXZpbGVnZXMiCiJw cm9jIiAicHJvY2VkdXJlIiAicHJvY2Vzc2V4aXQiICJwdWJsaWMiICJyYWlz ZXJyb3IiICJyZWFkIgoicmVhZGNvbW1pdHRlZCIgInJlYWRwYXN0IiAicmVh ZHRleHQiICJyZWFkdW5jb21taXR0ZWQiICJyZWNvbmZpZ3VyZSIKInJlZmVy ZW5jZXMiICJyZWxhdGl2ZSIgInJlcGVhdGFibGUiICJyZXBlYXRhYmxlcmVh ZCIgInJlcGxpY2F0aW9uIgoicmVzdG9yZSIgInJlc3RyaWN0IiAicmV0dXJu IiAicmV2b2tlIiAicmlnaHQiICJyb2xsYmFjayIgInJvd2NvdW50Igoicm93 Z3VpZGNvbCIgInJvd2xvY2siICJydWxlIiAic2F2ZSIgInNjaGVtYSIgInNl bGVjdCIgInNlcmlhbGl6YWJsZSIKInNlc3Npb25fdXNlciIgInNldCIgInNo dXRkb3duIiAic29tZSIgInN0YXRpc3RpY3MiICJzdW0iCiJzeXN0ZW1fdXNl ciIgInRhYmxlIiAidGFibG9jayIgInRhYmxvY2t4IiAidGFwZSIgInRlbXAi ICJ0ZW1wb3JhcnkiCiJ0ZXh0c2l6ZSIgInRoZW4iICJ0byIgInRvcCIgInRy YW4iICJ0cmFuc2FjdGlvbiIgInRyaWdnZXIiICJ0cnVuY2F0ZSIKInRzZXF1 YWwiICJ1bmNvbW1pdHRlZCIgInVuaW9uIiAidW5pcXVlIiAidXBkYXRlIiAi dXBkYXRldGV4dCIKInVwZGxvY2siICJ1c2UiICJ1c2VyIiAidmFsdWVzIiAi dmlldyIgIndhaXRmb3IiICJ3aGVuIiAid2hlcmUiCiJ3aGlsZSIgIndpdGgi ICJ3b3JrIiAid3JpdGV0ZXh0IiAiY29sbGF0ZSIgImZ1bmN0aW9uIiAib3Bl bnhtbCIKInJldHVybnMiCikpCgoJKG1zLXR5cGVzIChzcWwta2V5d29yZHMt cmUKImJpbmFyeSIgImJpdCIgImNoYXIiICJjaGFyYWN0ZXIiICJjdXJzb3Ii ICJkYXRldGltZSIgImRlYyIgImRlY2ltYWwiCiJkb3VibGUiICJmbG9hdCIg ImltYWdlIiAiaW50IiAiaW50ZWdlciIgIm1vbmV5IiAibmF0aW9uYWwiICJu Y2hhciIKIm50ZXh0IiAibnVtZXJpYyIgIm51bWVyaWMiICJudmFyY2hhciIg InByZWNpc2lvbiIgInJlYWwiCiJzbWFsbGRhdGV0aW1lIiAic21hbGxpbnQi ICJzbWFsbG1vbmV5IiAidGV4dCIgInRpbWVzdGFtcCIgInRpbnlpbnQiCiJ1 bmlxdWVpZGVudGlmaWVyIiAidmFyYmluYXJ5IiAidmFyY2hhciIgInZhcnlp bmciCikpCgoJKG1zLXZhcnMgIlxcYkBbYS16QS1aMC05X10qXFxiIikKCgko bXMtZnVuY3Rpb25zIChzcWwta2V5d29yZHMtcmUKIkBAY29ubmVjdGlvbnMi ICJAQGNwdV9idXN5IiAiQEBjdXJzb3Jfcm93cyIgIkBAZGF0ZWZpcnN0IiAi QEBkYnRzIgoiQEBlcnJvciIgIkBAZmV0Y2hfc3RhdHVzIiAiQEBpZGVudGl0 eSIgIkBAaWRsZSIgIkBAaW9fYnVzeSIKIkBAbGFuZ2lkIiAiQEBsYW5ndWFn ZSIgIkBAbG9ja190aW1lb3V0IiAiQEBtYXhfY29ubmVjdGlvbnMiCiJAQG1h eF9wcmVjaXNpb24iICJAQG5lc3RsZXZlbCIgIkBAb3B0aW9ucyIgIkBAcGFj a19yZWNlaXZlZCIKIkBAcGFja19zZW50IiAiQEBwYWNrZXRfZXJyb3JzIiAi QEBwcm9jaWQiICJAQHJlbXNlcnZlciIgIkBAcm93Y291bnQiCiJAQHNlcnZl cm5hbWUiICJAQHNlcnZpY2VuYW1lIiAiQEBzcGlkIiAiQEB0ZXh0c2l6ZSIg IkBAdGltZXRpY2tzIgoiQEB0b3RhbF9lcnJvcnMiICJAQHRvdGFsX3JlYWQi ICJAQHRvdGFsX3dyaXRlIiAiQEB0cmFuY291bnQiCiJAQHZlcnNpb24iICJh YnMiICJhY29zIiAiYW5kIiAiYXBwX25hbWUiICJhc2NpaSIgImFzaW4iICJh dGFuIiAiYXRuMiIKImF2ZyIgImNhc2UiICJjYXN0IiAiY2VpbGluZyIgImNo YXIiICJjaGFyaW5kZXgiICJjb2FsZXNjZSIKImNvbF9sZW5ndGgiICJjb2xf bmFtZSIgImNvbHVtbnByb3BlcnR5IiAiY29udGFpbnN0YWJsZSIgImNvbnZl cnQiCiJjb3MiICJjb3QiICJjb3VudCIgImN1cnJlbnRfdGltZXN0YW1wIiAi Y3VycmVudF91c2VyIiAiY3Vyc29yX3N0YXR1cyIKImRhdGFiYXNlcHJvcGVy dHkiICJkYXRhbGVuZ3RoIiAiZGF0ZWFkZCIgImRhdGVkaWZmIiAiZGF0ZW5h bWUiCiJkYXRlcGFydCIgImRheSIgImRiX2lkIiAiZGJfbmFtZSIgImRlZ3Jl ZXMiICJkaWZmZXJlbmNlIiAiZXhwIgoiZmlsZV9pZCIgImZpbGVfbmFtZSIg ImZpbGVncm91cF9pZCIgImZpbGVncm91cF9uYW1lIgoiZmlsZWdyb3VwcHJv cGVydHkiICJmaWxlcHJvcGVydHkiICJmbG9vciIgImZvcm1hdG1lc3NhZ2Ui CiJmcmVldGV4dHRhYmxlIiAiZnVsbHRleHRjYXRhbG9ncHJvcGVydHkiICJm dWxsdGV4dHNlcnZpY2Vwcm9wZXJ0eSIKImdldGFuc2ludWxsIiAiZ2V0ZGF0 ZSIgImdyb3VwaW5nIiAiaG9zdF9pZCIgImhvc3RfbmFtZSIgImlkZW50X2lu Y3IiCiJpZGVudF9zZWVkIiAiaWRlbnRpdHkiICJpbmRleF9jb2wiICJpbmRl eHByb3BlcnR5IiAiaXNfbWVtYmVyIgoiaXNfc3J2cm9sZW1lbWJlciIgImlz ZGF0ZSIgImlzbnVsbCIgImlzbnVtZXJpYyIgImxlZnQiICJsZW4iICJsb2ci CiJsb2cxMCIgImxvd2VyIiAibHRyaW0iICJtYXgiICJtaW4iICJtb250aCIg Im5jaGFyIiAibmV3aWQiICJudWxsaWYiCiJvYmplY3RfaWQiICJvYmplY3Rf bmFtZSIgIm9iamVjdHByb3BlcnR5IiAib3BlbnF1ZXJ5IiAib3BlbnJvd3Nl dCIKInBhcnNlbmFtZSIgInBhdGluZGV4IiAicGF0aW5kZXgiICJwZXJtaXNz aW9ucyIgInBpIiAicG93ZXIiCiJxdW90ZW5hbWUiICJyYWRpYW5zIiAicmFu ZCIgInJlcGxhY2UiICJyZXBsaWNhdGUiICJyZXZlcnNlIiAicmlnaHQiCiJy b3VuZCIgInJ0cmltIiAic2Vzc2lvbl91c2VyIiAic2lnbiIgInNpbiIgInNv dW5kZXgiICJzcGFjZSIgInNxcnQiCiJzcXVhcmUiICJzdGF0c19kYXRlIiAi c3RkZXYiICJzdGRldnAiICJzdHIiICJzdHVmZiIgInN1YnN0cmluZyIgInN1 bSIKInN1c2VyX2lkIiAic3VzZXJfbmFtZSIgInN1c2VyX3NpZCIgInN1c2Vy X3NuYW1lIiAic3lzdGVtX3VzZXIiICJ0YW4iCiJ0ZXh0cHRyIiAidGV4dHZh bGlkIiAidHlwZXByb3BlcnR5IiAidW5pY29kZSIgInVwcGVyIiAidXNlciIK InVzZXJfaWQiICJ1c2VyX25hbWUiICJ2YXIiICJ2YXJwIiAieWVhciIKKSkK CgkobXMtY29tbWFuZHMKCSAoZXZhbC13aGVuLWNvbXBpbGUKCSAgIChjb25j YXQgIl5cXChcXChzZXRcXHMtK1xcKCIKCQkgICAocmVnZXhwLW9wdCAnKAoi ZGF0ZWZpcnN0IiAiZGF0ZWZvcm1hdCIgImRlYWRsb2NrX3ByaW9yaXR5IiAi bG9ja190aW1lb3V0IgoiY29uY2F0X251bGxfeWllbGRzX251bGwiICJjdXJz b3JfY2xvc2Vfb25fY29tbWl0IgoiZGlzYWJsZV9kZWZfY25zdF9jaGsiICJm aXBzX2ZsYWdnZXIiICJpZGVudGl0eV9pbnNlcnQiICJsYW5ndWFnZSIKIm9m ZnNldHMiICJxdW90ZWRfaWRlbnRpZmllciIgImFyaXRoYWJvcnQiICJhcml0 aGlnbm9yZSIgImZtdG9ubHkiCiJub2NvdW50IiAibm9leGVjIiAibnVtZXJp Y19yb3VuZGFib3J0IiAicGFyc2Vvbmx5IgoicXVlcnlfZ292ZXJub3JfY29z dF9saW1pdCIgInJvd2NvdW50IiAidGV4dHNpemUiICJhbnNpX2RlZmF1bHRz IgoiYW5zaV9udWxsX2RmbHRfb2ZmIiAiYW5zaV9udWxsX2RmbHRfb24iICJh bnNpX251bGxzIiAiYW5zaV9wYWRkaW5nIgoiYW5zaV93YXJuaW5ncyIgImZv cmNlcGxhbiIgInNob3dwbGFuX2FsbCIgInNob3dwbGFuX3RleHQiCiJzdGF0 aXN0aWNzIiAiaW1wbGljaXRfdHJhbnNhY3Rpb25zIiAicmVtb3RlX3Byb2Nf dHJhbnNhY3Rpb25zIgoidHJhbnNhY3Rpb24iICJ4YWN0X2Fib3J0IgopIHQp CgkJICAgIlxcKVxcKVxcfGdvXFxzLSpcXHx1c2VcXHMtK1xcfHNldHVzZXJc XHMtK1xcfGRiY2NcXHMtK1xcKS4qJCIpKSkpCgogICAgYCgoLG1zLWNvbW1h bmRzICAuIGZvbnQtbG9jay1kb2MtZmFjZSkKICAgICAgKCxtcy1yZXNlcnZl ZCAgLiBmb250LWxvY2sta2V5d29yZC1mYWNlKQogICAgICAoLG1zLWZ1bmN0 aW9ucyAuIGZvbnQtbG9jay1idWlsdGluLWZhY2UpCiAgICAgICgsbXMtdmFy cyAgICAgIC4gZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFjZSkKICAgICAg KCxtcy10eXBlcyAgICAgLiBmb250LWxvY2stdHlwZS1mYWNlKSkpCgogICJN aWNyb3NvZnQgU1FMU2VydmVyIFNRTCBrZXl3b3JkcyB1c2VkIGJ5IGZvbnQt bG9jay4KClRoaXMgdmFyaWFibGUgaXMgdXNlZCBieSBgc3FsLW1vZGUnIGFu ZCBgc3FsLWludGVyYWN0aXZlLW1vZGUnLiAgVGhlCnJlZ3VsYXIgZXhwcmVz c2lvbnMgYXJlIGNyZWF0ZWQgZHVyaW5nIGNvbXBpbGF0aW9uIGJ5IGNhbGxp bmcgdGhlCmZ1bmN0aW9uIGByZWdleHAtb3B0Jy4gIFRoZXJlZm9yZSwgdGFr ZSBhIGxvb2sgYXQgdGhlIHNvdXJjZSBiZWZvcmUKeW91IGRlZmluZSB5b3Vy IG93biBgc3FsLW1vZGUtbXMtZm9udC1sb2NrLWtleXdvcmRzJy4iKQoKKGRl ZnZhciBzcWwtbW9kZS1zeWJhc2UtZm9udC1sb2NrLWtleXdvcmRzIG5pbAog ICJTeWJhc2UgU1FMIGtleXdvcmRzIHVzZWQgYnkgZm9udC1sb2NrLgoKVGhp cyB2YXJpYWJsZSBpcyB1c2VkIGJ5IGBzcWwtbW9kZScgYW5kIGBzcWwtaW50 ZXJhY3RpdmUtbW9kZScuICBUaGUKcmVndWxhciBleHByZXNzaW9ucyBhcmUg Y3JlYXRlZCBkdXJpbmcgY29tcGlsYXRpb24gYnkgY2FsbGluZyB0aGUKZnVu Y3Rpb24gYHJlZ2V4cC1vcHQnLiAgVGhlcmVmb3JlLCB0YWtlIGEgbG9vayBh dCB0aGUgc291cmNlIGJlZm9yZQp5b3UgZGVmaW5lIHlvdXIgb3duIGBzcWwt bW9kZS1zeWJhc2UtZm9udC1sb2NrLWtleXdvcmRzJy4iKQoKKGRlZnZhciBz cWwtbW9kZS1pbmZvcm1peC1mb250LWxvY2sta2V5d29yZHMgbmlsCiAgIklu Zm9ybWl4IFNRTCBrZXl3b3JkcyB1c2VkIGJ5IGZvbnQtbG9jay4KClRoaXMg dmFyaWFibGUgaXMgdXNlZCBieSBgc3FsLW1vZGUnIGFuZCBgc3FsLWludGVy YWN0aXZlLW1vZGUnLiAgVGhlCnJlZ3VsYXIgZXhwcmVzc2lvbnMgYXJlIGNy ZWF0ZWQgZHVyaW5nIGNvbXBpbGF0aW9uIGJ5IGNhbGxpbmcgdGhlCmZ1bmN0 aW9uIGByZWdleHAtb3B0Jy4gIFRoZXJlZm9yZSwgdGFrZSBhIGxvb2sgYXQg dGhlIHNvdXJjZSBiZWZvcmUKeW91IGRlZmluZSB5b3VyIG93biBgc3FsLW1v ZGUtaW5mb3JtaXgtZm9udC1sb2NrLWtleXdvcmRzJy4iKQoKKGRlZnZhciBz cWwtbW9kZS1pbnRlcmJhc2UtZm9udC1sb2NrLWtleXdvcmRzIG5pbAogICJJ bnRlcmJhc2UgU1FMIGtleXdvcmRzIHVzZWQgYnkgZm9udC1sb2NrLgoKVGhp cyB2YXJpYWJsZSBpcyB1c2VkIGJ5IGBzcWwtbW9kZScgYW5kIGBzcWwtaW50 ZXJhY3RpdmUtbW9kZScuICBUaGUKcmVndWxhciBleHByZXNzaW9ucyBhcmUg Y3JlYXRlZCBkdXJpbmcgY29tcGlsYXRpb24gYnkgY2FsbGluZyB0aGUKZnVu Y3Rpb24gYHJlZ2V4cC1vcHQnLiAgVGhlcmVmb3JlLCB0YWtlIGEgbG9vayBh dCB0aGUgc291cmNlIGJlZm9yZQp5b3UgZGVmaW5lIHlvdXIgb3duIGBzcWwt bW9kZS1pbnRlcmJhc2UtZm9udC1sb2NrLWtleXdvcmRzJy4iKQoKKGRlZnZh ciBzcWwtbW9kZS1pbmdyZXMtZm9udC1sb2NrLWtleXdvcmRzIG5pbAogICJJ bmdyZXMgU1FMIGtleXdvcmRzIHVzZWQgYnkgZm9udC1sb2NrLgoKVGhpcyB2 YXJpYWJsZSBpcyB1c2VkIGJ5IGBzcWwtbW9kZScgYW5kIGBzcWwtaW50ZXJh Y3RpdmUtbW9kZScuICBUaGUKcmVndWxhciBleHByZXNzaW9ucyBhcmUgY3Jl YXRlZCBkdXJpbmcgY29tcGlsYXRpb24gYnkgY2FsbGluZyB0aGUKZnVuY3Rp b24gYHJlZ2V4cC1vcHQnLiAgVGhlcmVmb3JlLCB0YWtlIGEgbG9vayBhdCB0 aGUgc291cmNlIGJlZm9yZQp5b3UgZGVmaW5lIHlvdXIgb3duIGBzcWwtbW9k ZS1pbnRlcmJhc2UtZm9udC1sb2NrLWtleXdvcmRzJy4iKQoKKGRlZnZhciBz cWwtbW9kZS1zb2xpZC1mb250LWxvY2sta2V5d29yZHMgbmlsCiAgIlNvbGlk IFNRTCBrZXl3b3JkcyB1c2VkIGJ5IGZvbnQtbG9jay4KClRoaXMgdmFyaWFi bGUgaXMgdXNlZCBieSBgc3FsLW1vZGUnIGFuZCBgc3FsLWludGVyYWN0aXZl LW1vZGUnLiAgVGhlCnJlZ3VsYXIgZXhwcmVzc2lvbnMgYXJlIGNyZWF0ZWQg ZHVyaW5nIGNvbXBpbGF0aW9uIGJ5IGNhbGxpbmcgdGhlCmZ1bmN0aW9uIGBy ZWdleHAtb3B0Jy4gIFRoZXJlZm9yZSwgdGFrZSBhIGxvb2sgYXQgdGhlIHNv dXJjZSBiZWZvcmUKeW91IGRlZmluZSB5b3VyIG93biBgc3FsLW1vZGUtc29s aWQtZm9udC1sb2NrLWtleXdvcmRzJy4iKQoKKGRlZnZhciBzcWwtbW9kZS1t eXNxbC1mb250LWxvY2sta2V5d29yZHMKICAobGV0ICgobXlzcWwtZnVuY3Mg KHNxbC1rZXl3b3Jkcy1yZQoiYXNjaWkiICJhdmciICJiZG1wb2x5ZnJvbXRl eHQiICJiZG1wb2x5ZnJvbXdrYiIgImJkcG9seWZyb210ZXh0IgoiYmRwb2x5 ZnJvbXdrYiIgImJlbmNobWFyayIgImJpbiIgImJpdF9hbmQiICJiaXRfbGVu Z3RoIiAiYml0X29yIgoiYml0X3hvciIgImJvdGgiICJjYXN0IiAiY2hhcl9s ZW5ndGgiICJjaGFyYWN0ZXJfbGVuZ3RoIiAiY29hbGVzY2UiCiJjb25jYXQi ICJjb25jYXRfd3MiICJjb25uZWN0aW9uX2lkIiAiY29udiIgImNvbnZlcnQi ICJjb3VudCIKImN1cmRhdGUiICJjdXJyZW50X2RhdGUiICJjdXJyZW50X3Rp bWUiICJjdXJyZW50X3RpbWVzdGFtcCIgImN1cnRpbWUiCiJlbHQiICJlbmNy eXB0IiAiZXhwb3J0X3NldCIgImZpZWxkIiAiZmluZF9pbl9zZXQiICJmb3Vu ZF9yb3dzIiAiZnJvbSIKImdlb21jb2xsZnJvbXRleHQiICJnZW9tY29sbGZy b213a2IiICJnZW9tZXRyeWNvbGxlY3Rpb25mcm9tdGV4dCIKImdlb21ldHJ5 Y29sbGVjdGlvbmZyb213a2IiICJnZW9tZXRyeWZyb210ZXh0IiAiZ2VvbWV0 cnlmcm9td2tiIgoiZ2VvbWZyb210ZXh0IiAiZ2VvbWZyb213a2IiICJnZXRf bG9jayIgImdyb3VwX2NvbmNhdCIgImhleCIgImlmbnVsbCIKImluc3RyIiAi aW50ZXJ2YWwiICJpc251bGwiICJsYXN0X2luc2VydF9pZCIgImxjYXNlIiAi bGVhZGluZyIKImxlbmd0aCIgImxpbmVmcm9tdGV4dCIgImxpbmVmcm9td2ti IiAibGluZXN0cmluZ2Zyb210ZXh0IgoibGluZXN0cmluZ2Zyb213a2IiICJs b2FkX2ZpbGUiICJsb2NhdGUiICJsb3dlciIgImxwYWQiICJsdHJpbSIKIm1h a2Vfc2V0IiAibWFzdGVyX3Bvc193YWl0IiAibWF4IiAibWlkIiAibWluIiAi bWxpbmVmcm9tdGV4dCIKIm1saW5lZnJvbXdrYiIgIm1wb2ludGZyb210ZXh0 IiAibXBvaW50ZnJvbXdrYiIgIm1wb2x5ZnJvbXRleHQiCiJtcG9seWZyb213 a2IiICJtdWx0aWxpbmVzdHJpbmdmcm9tdGV4dCIgIm11bHRpbGluZXN0cmlu Z2Zyb213a2IiCiJtdWx0aXBvaW50ZnJvbXRleHQiICJtdWx0aXBvaW50ZnJv bXdrYiIgIm11bHRpcG9seWdvbmZyb210ZXh0IgoibXVsdGlwb2x5Z29uZnJv bXdrYiIgIm5vdyIgIm51bGxpZiIgIm9jdCIgIm9jdGV0X2xlbmd0aCIgIm9y ZCIKInBvaW50ZnJvbXRleHQiICJwb2ludGZyb213a2IiICJwb2x5ZnJvbXRl eHQiICJwb2x5ZnJvbXdrYiIKInBvbHlnb25mcm9tdGV4dCIgInBvbHlnb25m cm9td2tiIiAicG9zaXRpb24iICJxdW90ZSIgInJhbmQiCiJyZWxlYXNlX2xv Y2siICJyZXBlYXQiICJyZXBsYWNlIiAicmV2ZXJzZSIgInJwYWQiICJydHJp bSIgInNvdW5kZXgiCiJzcGFjZSIgInN0ZCIgInN0ZGRldiIgInN1YnN0cmlu ZyIgInN1YnN0cmluZ19pbmRleCIgInN1bSIgInN5c2RhdGUiCiJ0cmFpbGlu ZyIgInRyaW0iICJ1Y2FzZSIgInVuaXhfdGltZXN0YW1wIiAidXBwZXIiICJ1 c2VyIiAidmFyaWFuY2UiCikpCgoJKG15c3FsLWtleXdvcmRzIChzcWwta2V5 d29yZHMtcmUKImFjdGlvbiIgImFkZCIgImFmdGVyIiAiYWdhaW5zdCIgImFs bCIgImFsdGVyIiAiYW5kIiAiYXMiICJhc2MiCiJhdXRvX2luY3JlbWVudCIg ImF2Z19yb3dfbGVuZ3RoIiAiYmRiIiAiYmV0d2VlbiIgImJ5IiAiY2FzY2Fk ZSIKImNhc2UiICJjaGFuZ2UiICJjaGFyYWN0ZXIiICJjaGVjayIgImNoZWNr c3VtIiAiY2xvc2UiICJjb2xsYXRlIgoiY29sbGF0aW9uIiAiY29sdW1uIiAi Y29sdW1ucyIgImNvbW1lbnQiICJjb21taXR0ZWQiICJjb25jdXJyZW50Igoi Y29uc3RyYWludCIgImNyZWF0ZSIgImNyb3NzIiAiZGF0YSIgImRhdGFiYXNl IiAiZGVmYXVsdCIKImRlbGF5X2tleV93cml0ZSIgImRlbGF5ZWQiICJkZWxl dGUiICJkZXNjIiAiZGlyZWN0b3J5IiAiZGlzYWJsZSIKImRpc3RpbmN0IiAi ZGlzdGluY3Ryb3ciICJkbyIgImRyb3AiICJkdW1wZmlsZSIgImR1cGxpY2F0 ZSIgImVsc2UiCiJlbmFibGUiICJlbmNsb3NlZCIgImVuZCIgImVzY2FwZWQi ICJleGlzdHMiICJmaWVsZHMiICJmaXJzdCIgImZvciIKImZvcmNlIiAiZm9y ZWlnbiIgImZyb20iICJmdWxsIiAiZnVsbHRleHQiICJnbG9iYWwiICJncm91 cCIgImhhbmRsZXIiCiJoYXZpbmciICJoZWFwIiAiaGlnaF9wcmlvcml0eSIg ImlmIiAiaWdub3JlIiAiaW4iICJpbmRleCIgImluZmlsZSIKImlubmVyIiAi aW5zZXJ0IiAiaW5zZXJ0X21ldGhvZCIgImludG8iICJpcyIgImlzYW0iICJp c29sYXRpb24iICJqb2luIgoia2V5IiAia2V5cyIgImxhc3QiICJsZWZ0IiAi bGV2ZWwiICJsaWtlIiAibGltaXQiICJsaW5lcyIgImxvYWQiCiJsb2NhbCIg ImxvY2siICJsb3dfcHJpb3JpdHkiICJtYXRjaCIgIm1heF9yb3dzIiAibWVy Z2UiICJtaW5fcm93cyIKIm1vZGUiICJtb2RpZnkiICJtcmdfbXlpc2FtIiAi bXlpc2FtIiAibmF0dXJhbCIgIm5leHQiICJubyIgIm5vdCIKIm51bGwiICJv ZmZzZXQiICJvaiIgIm9uIiAib3BlbiIgIm9wdGlvbmFsbHkiICJvciIgIm9y ZGVyIiAib3V0ZXIiCiJvdXRmaWxlIiAicGFja19rZXlzIiAicGFydGlhbCIg InBhc3N3b3JkIiAicHJldiIgInByaW1hcnkiCiJwcm9jZWR1cmUiICJxdWlj ayIgInJhaWQwIiAicmFpZF90eXBlIiAicmVhZCIgInJlZmVyZW5jZXMiICJy ZW5hbWUiCiJyZXBlYXRhYmxlIiAicmVzdHJpY3QiICJyaWdodCIgInJvbGxi YWNrIiAicm9sbHVwIiAicm93X2Zvcm1hdCIKInNhdmVwb2ludCIgInNlbGVj dCIgInNlcGFyYXRvciIgInNlcmlhbGl6YWJsZSIgInNlc3Npb24iICJzZXQi CiJzaGFyZSIgInNob3ciICJzcWxfYmlnX3Jlc3VsdCIgInNxbF9idWZmZXJf cmVzdWx0IiAic3FsX2NhY2hlIgoic3FsX2NhbGNfZm91bmRfcm93cyIgInNx bF9ub19jYWNoZSIgInNxbF9zbWFsbF9yZXN1bHQiICJzdGFydGluZyIKInN0 cmFpZ2h0X2pvaW4iICJzdHJpcGVkIiAidGFibGUiICJ0YWJsZXMiICJ0ZW1w b3JhcnkiICJ0ZXJtaW5hdGVkIgoidGhlbiIgInRvIiAidHJhbnNhY3Rpb24i ICJ0cnVuY2F0ZSIgInR5cGUiICJ1bmNvbW1pdHRlZCIgInVuaW9uIgoidW5p cXVlIiAidW5sb2NrIiAidXBkYXRlIiAidXNlIiAidXNpbmciICJ2YWx1ZXMi ICJ3aGVuIiAid2hlcmUiCiJ3aXRoIiAid3JpdGUiICJ4b3IiCikpCgoJKG15 c3FsLXR5cGVzIChzcWwta2V5d29yZHMtcmUKImJpZ2ludCIgImJpbmFyeSIg ImJpdCIgImJsb2IiICJib29sIiAiYm9vbGVhbiIgImNoYXIiICJjdXJ2ZSIg ImRhdGUiCiJkYXRldGltZSIgImRlYyIgImRlY2ltYWwiICJkb3VibGUiICJl bnVtIiAiZml4ZWQiICJmbG9hdCIgImdlb21ldHJ5IgoiZ2VvbWV0cnljb2xs ZWN0aW9uIiAiaW50IiAiaW50ZWdlciIgImxpbmUiICJsaW5lYXJyaW5nIiAi bGluZXN0cmluZyIKImxvbmdibG9iIiAibG9uZ3RleHQiICJtZWRpdW1ibG9i IiAibWVkaXVtaW50IiAibWVkaXVtdGV4dCIKIm11bHRpY3VydmUiICJtdWx0 aWxpbmVzdHJpbmciICJtdWx0aXBvaW50IiAibXVsdGlwb2x5Z29uIgoibXVs dGlzdXJmYWNlIiAibmF0aW9uYWwiICJudW1lcmljIiAicG9pbnQiICJwb2x5 Z29uIiAicHJlY2lzaW9uIgoicmVhbCIgInNtYWxsaW50IiAic3VyZmFjZSIg InRleHQiICJ0aW1lIiAidGltZXN0YW1wIiAidGlueWJsb2IiCiJ0aW55aW50 IiAidGlueXRleHQiICJ1bnNpZ25lZCIgInZhcmNoYXIiICJ5ZWFyIiAieWVh cjIiICJ5ZWFyNCIKInplcm9maWxsIgopKSkKCiAgICBgKCgsbXlzcWwtZnVu Y3MgICAgLiBmb250LWxvY2stYnVpbHRpbi1mYWNlKQogICAgICAoLG15c3Fs LWtleXdvcmRzIC4gZm9udC1sb2NrLWtleXdvcmQtZmFjZSkKICAgICAgKCxt eXNxbC10eXBlcyAgICAuIGZvbnQtbG9jay10eXBlLWZhY2UpKSkKCiAgIk15 U1FMIFNRTCBrZXl3b3JkcyB1c2VkIGJ5IGZvbnQtbG9jay4KClRoaXMgdmFy aWFibGUgaXMgdXNlZCBieSBgc3FsLW1vZGUnIGFuZCBgc3FsLWludGVyYWN0 aXZlLW1vZGUnLiAgVGhlCnJlZ3VsYXIgZXhwcmVzc2lvbnMgYXJlIGNyZWF0 ZWQgZHVyaW5nIGNvbXBpbGF0aW9uIGJ5IGNhbGxpbmcgdGhlCmZ1bmN0aW9u IGByZWdleHAtb3B0Jy4gIFRoZXJlZm9yZSwgdGFrZSBhIGxvb2sgYXQgdGhl IHNvdXJjZSBiZWZvcmUKeW91IGRlZmluZSB5b3VyIG93biBgc3FsLW1vZGUt bXlzcWwtZm9udC1sb2NrLWtleXdvcmRzJy4iKQoKKGRlZnZhciBzcWwtbW9k ZS1zcWxpdGUtZm9udC1sb2NrLWtleXdvcmRzIG5pbAogICJTUUxpdGUgU1FM IGtleXdvcmRzIHVzZWQgYnkgZm9udC1sb2NrLgoKVGhpcyB2YXJpYWJsZSBp cyB1c2VkIGJ5IGBzcWwtbW9kZScgYW5kIGBzcWwtaW50ZXJhY3RpdmUtbW9k ZScuICBUaGUKcmVndWxhciBleHByZXNzaW9ucyBhcmUgY3JlYXRlZCBkdXJp bmcgY29tcGlsYXRpb24gYnkgY2FsbGluZyB0aGUKZnVuY3Rpb24gYHJlZ2V4 cC1vcHQnLiAgVGhlcmVmb3JlLCB0YWtlIGEgbG9vayBhdCB0aGUgc291cmNl IGJlZm9yZQp5b3UgZGVmaW5lIHlvdXIgb3duIGBzcWwtbW9kZS1zcWxpdGUt Zm9udC1sb2NrLWtleXdvcmRzJy4iKQoKKGRlZnZhciBzcWwtbW9kZS1kYjIt Zm9udC1sb2NrLWtleXdvcmRzIG5pbAogICJEQjIgU1FMIGtleXdvcmRzIHVz ZWQgYnkgZm9udC1sb2NrLgoKVGhpcyB2YXJpYWJsZSBpcyB1c2VkIGJ5IGBz cWwtbW9kZScgYW5kIGBzcWwtaW50ZXJhY3RpdmUtbW9kZScuICBUaGUKcmVn dWxhciBleHByZXNzaW9ucyBhcmUgY3JlYXRlZCBkdXJpbmcgY29tcGlsYXRp b24gYnkgY2FsbGluZyB0aGUKZnVuY3Rpb24gYHJlZ2V4cC1vcHQnLiAgVGhl cmVmb3JlLCB0YWtlIGEgbG9vayBhdCB0aGUgc291cmNlIGJlZm9yZQp5b3Ug ZGVmaW5lIHlvdXIgb3duIGBzcWwtbW9kZS1kYjItZm9udC1sb2NrLWtleXdv cmRzJy4iKQoKKGRlZnZhciBzcWwtbW9kZS1mb250LWxvY2sta2V5d29yZHMg bmlsCiAgIlNRTCBrZXl3b3JkcyB1c2VkIGJ5IGZvbnQtbG9jay4KClNldHRp bmcgdGhpcyB2YXJpYWJsZSBkaXJlY3RseSBubyBsb25nZXIgaGFzIGFueSBh ZmZlY3QuICBVc2UKYHNxbC1wcm9kdWN0JyBhbmQgYHNxbC1hZGQtcHJvZHVj dC1rZXl3b3JkcycgdG8gY29udHJvbCB0aGUKaGlnaGxpZ2h0aW5nIHJ1bGVz IGluIFNRTCBtb2RlLiIpCgoMCgo7OzsgU1FMIFByb2R1Y3Qgc3VwcG9ydCBm dW5jdGlvbnMKCihkZWZ1biBzcWwtcHJvZHVjdC1mZWF0dXJlIChmZWF0dXJl ICZvcHRpb25hbCBwcm9kdWN0KQogICJMb29rdXAgYGZlYXR1cmUnIG5lZWRl ZCB0byBzdXBwb3J0IHRoZSBjdXJyZW50IFNRTCBwcm9kdWN0LgoKU2VlIGBz cWwtcHJvZHVjdC1hbGlzdCcgZm9yIGEgbGlzdCBvZiBwcm9kdWN0cyBhbmQg c3VwcG9ydGVkIGZlYXR1cmVzLiIKICAocGxpc3QtZ2V0CiAgIChjZHIgKGFz c29jIChvciBwcm9kdWN0IHNxbC1wcm9kdWN0KQoJICAgICAgIHNxbC1wcm9k dWN0LWFsaXN0KSkKICAgZmVhdHVyZSkpCgooZGVmdW4gc3FsLXByb2R1Y3Qt Zm9udC1sb2NrIChrZXl3b3Jkcy1vbmx5IGltZW51KQogICJTZXRzIGBmb250 LWxvY2stZGVmYXVsdHMnIGFuZCBgZm9udC1sb2NrLWtleXdvcmRzJyBiYXNl ZCBvbgp0aGUgcHJvZHVjdC1zcGVjaWZpYyBrZXl3b3JkcyBhbmQgc3ludGF4 LWFsaXN0cyBkZWZpbmVkIGluCmBzcWwtcHJvZHVjdC1hbGlzdCcuIgogIChs ZXQKICAgICAgOzsgR2V0IHRoZSBwcm9kdWN0LXNwZWNpZmljIHN5bnRheC1h bGlzdC4KICAgICAgKChzeW50YXgtYWxpc3QKCShhcHBlbmQKCSAoc3FsLXBy b2R1Y3QtZmVhdHVyZSA6c3ludGF4LWFsaXN0KQoJICcoKD9fIC4gInciKSAo Py4gLiAidyIpKSkpKQoKICAgIDs7IEdldCB0aGUgcHJvZHVjdC1zcGVjaWZp YyBrZXl3b3Jkcy4KICAgIChzZXRxIHNxbC1tb2RlLWZvbnQtbG9jay1rZXl3 b3JkcwoJICAoYXBwZW5kCgkgICAodW5sZXNzIChlcSBzcWwtcHJvZHVjdCAn YW5zaSkKCSAgICAgKGV2YWwgKHNxbC1wcm9kdWN0LWZlYXR1cmUgOmZvbnQt bG9jaykpKQoJICAgOzsgQWx3YXlzIGhpZ2hsaWdodCBBTlNJIGtleXdvcmRz CgkgICAoZXZhbCAoc3FsLXByb2R1Y3QtZmVhdHVyZSA6Zm9udC1sb2NrICdh bnNpKSkKCSAgIDs7IEZvbnRpZnkgb2JqZWN0IG5hbWVzIGluIENSRUFURSwg RFJPUCBhbmQgQUxURVIgRERMCgkgICA7OyBzdGF0ZW1lbnRzCgkgICAobGlz dCBzcWwtbW9kZS1mb250LWxvY2stb2JqZWN0LW5hbWUpKSkKCiAgICA7OyBT ZXR1cCBmb250LWxvY2suICBGb3JjZSByZS1wYXJzaW5nIG9mIGBmb250LWxv Y2stZGVmYXVsdHMnLgogICAgKHNldCAobWFrZS1sb2NhbC12YXJpYWJsZSAn Zm9udC1sb2NrLXNldC1kZWZhdWx0cykgbmlsKQogICAgKHNldHEgZm9udC1s b2NrLWRlZmF1bHRzIChsaXN0ICdzcWwtbW9kZS1mb250LWxvY2sta2V5d29y ZHMKCQkJCSAgIGtleXdvcmRzLW9ubHkgdCBzeW50YXgtYWxpc3QpKQoKICAg IDs7IEZvcmNlIGZvbnQgbG9jayB0byByZWluaXRpYWxpemUgaWYgaXQgaXMg YWxyZWFkeSBvbgogICAgOzsgT3RoZXJ3aXNlLCB3ZSBjYW4gd2FpdCB1bnRp bCBpdCBjYW4gYmUgc3RhcnRlZC4KICAgICh3aGVuIChhbmQgKGZib3VuZHAg J2ZvbnQtbG9jay1tb2RlKQoJICAgICAgIGZvbnQtbG9jay1tb2RlKQogICAg ICAoZm9udC1sb2NrLW1vZGUtaW50ZXJuYWwgbmlsKQogICAgICAoZm9udC1s b2NrLW1vZGUtaW50ZXJuYWwgdCkpCgogICAgKGFkZC1ob29rICdmb250LWxv Y2stbW9kZS1ob29rCgkgICAgICAobGFtYmRhICgpCgkJOzsgUHJvdmlkZSBk ZWZhdWx0cyBmb3IgbmV3IGZvbnQtbG9jayBmYWNlcy4KCQkoZGVmdmFyIGZv bnQtbG9jay1idWlsdGluLWZhY2UKCQkgIChpZiAoYm91bmRwICdmb250LWxv Y2stcHJlcHJvY2Vzc29yLWZhY2UpCgkJICAgICAgZm9udC1sb2NrLXByZXBy b2Nlc3Nvci1mYWNlCgkJICAgIGZvbnQtbG9jay1rZXl3b3JkLWZhY2UpKQoJ CShkZWZ2YXIgZm9udC1sb2NrLWRvYy1mYWNlIGZvbnQtbG9jay1zdHJpbmct ZmFjZSkpCgkgICAgICBuaWwgdCkKCiAgICA7OyBTZXR1cCBpbWVudTsgaXQg bmVlZHMgdGhlIHNhbWUgc3ludGF4LWFsaXN0LgogICAgKHdoZW4gaW1lbnUK CShzZXRxIGltZW51LXN5bnRheC1hbGlzdCBzeW50YXgtYWxpc3QpKSkpCgo7 OzsjIyNhdXRvbG9hZAooZGVmdW4gc3FsLWFkZC1wcm9kdWN0LWtleXdvcmRz IChwcm9kdWN0IGtleXdvcmRzICZvcHRpb25hbCBhcHBlbmQpCiAgIkFkZCBo aWdobGlnaHRpbmcgS0VZV09SRFMgZm9yIFNRTCBQUk9EVUNULgoKUFJPRFVD VCBzaG91bGQgYmUgYSBzeW1ib2wsIHRoZSBuYW1lIG9mIGEgc3FsIHByb2R1 Y3QsIHN1Y2ggYXMKYG9yYWNsZScuICBLRVlXT1JEUyBzaG91bGQgYmUgYSBs aXN0OyBzZWUgdGhlIHZhcmlhYmxlCmBmb250LWxvY2sta2V5d29yZHMnLiAg QnkgZGVmYXVsdCB0aGV5IGFyZSBhZGRlZCBhdCB0aGUgYmVnaW5uaW5nCm9m IHRoZSBjdXJyZW50IGhpZ2hsaWdodGluZyBsaXN0LiAgSWYgb3B0aW9uYWwg YXJndW1lbnQgQVBQRU5EIGlzCmBzZXQnLCB0aGV5IGFyZSB1c2VkIHRvIHJl cGxhY2UgdGhlIGN1cnJlbnQgaGlnaGxpZ2h0aW5nIGxpc3QuCklmIEFQUEVO RCBpcyBhbnkgb3RoZXIgbm9uLW5pbCB2YWx1ZSwgdGhleSBhcmUgYWRkZWQg YXQgdGhlIGVuZApvZiB0aGUgY3VycmVudCBoaWdobGlnaHRpbmcgbGlzdC4K CkZvciBleGFtcGxlOgoKIChzcWwtYWRkLXByb2R1Y3Qta2V5d29yZHMgJ21z CiAgJygoXCJcXFxcYlxcXFx3K190XFxcXGJcIiAuIGZvbnQtbG9jay10eXBl LWZhY2UpKSkKCmFkZHMgYSBmb250aWZpY2F0aW9uIHBhdHRlcm4gdG8gZm9u dGlmeSBpZGVudGlmaWVycyBlbmRpbmcgaW4KYF90JyBhcyBkYXRhIHR5cGVz LiIKCiAgKGxldCAoKGZvbnQtbG9jayAoc3FsLXByb2R1Y3QtZmVhdHVyZSA6 Zm9udC1sb2NrIHByb2R1Y3QpKQoJb2xkKQogICAgKHNldHEgb2xkIChldmFs IGZvbnQtbG9jaykpCiAgICAoc2V0IGZvbnQtbG9jawoJIChpZiAoZXEgYXBw ZW5kICdzZXQpCgkgICAgIGtleXdvcmRzCgkgICAoaWYgYXBwZW5kCgkgICAg ICAgKGFwcGVuZCBvbGQga2V5d29yZHMpCgkgICAgIChhcHBlbmQga2V5d29y ZHMgb2xkKSkpKSkpCgoMCgo7OzsgRnVuY3Rpb25zIHRvIHN3aXRjaCBoaWdo bGlnaHRpbmcKCihkZWZ1biBzcWwtaGlnaGxpZ2h0LXByb2R1Y3QgKCkKICAi VHVybiBvbiB0aGUgYXBwcm9wcmlhdGUgZm9udCBoaWdobGlnaHRpbmcgZm9y IHRoZSBTUUwgcHJvZHVjdCBzZWxlY3RlZC4iCiAgKHdoZW4gKGRlcml2ZWQt bW9kZS1wICdzcWwtbW9kZSkKICAgIDs7IFNldHVwIGZvbnQtbG9jawogICAg KHNxbC1wcm9kdWN0LWZvbnQtbG9jayBuaWwgdCkKCiAgICA7OyBTZXQgdGhl IG1vZGUgbmFtZSB0byBpbmNsdWRlIHRoZSBwcm9kdWN0LgogICAgKHNldHEg bW9kZS1uYW1lIChjb25jYXQgIlNRTFsiIChwcmluMS10by1zdHJpbmcgc3Fs LXByb2R1Y3QpICJdIikpKSkKCihkZWZ1biBzcWwtc2V0LXByb2R1Y3QgKHBy b2R1Y3QpCiAgIlNldCBgc3FsLXByb2R1Y3QnIHRvIHByb2R1Y3QgYW5kIGVu YWJsZSBhcHByb3ByaWF0ZSBoaWdobGlnaHRpbmcuIgogIChpbnRlcmFjdGl2 ZQogICAobGlzdCAoY29tcGxldGluZy1yZWFkICJFbnRlciBTUUwgcHJvZHVj dDogIgogICAgICAgICAgICAgICAgICAgICAgICAgIChtYXBjYXIgKGxhbWJk YSAoaW5mbykgKHN5bWJvbC1uYW1lIChjYXIgaW5mbykpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3FsLXByb2R1Y3QtYWxpc3QpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgbmlsICdyZXF1aXJlLW1hdGNoKSkp CiAgKGlmIChzdHJpbmdwIHByb2R1Y3QpIChzZXRxIHByb2R1Y3QgKGludGVy biBwcm9kdWN0KSkpCiAgKHdoZW4gKG5vdCAoYXNzb2MgcHJvZHVjdCBzcWwt cHJvZHVjdC1hbGlzdCkpCiAgICAoZXJyb3IgIlNRTCBwcm9kdWN0ICVzIGlz IG5vdCBzdXBwb3J0ZWQ7IHRyZWF0ZWQgYXMgQU5TSSIgcHJvZHVjdCkKICAg IChzZXRxIHByb2R1Y3QgJ2Fuc2kpKQoKICA7OyBTYXZlIHByb2R1Y3Qgc2V0 dGluZyBhbmQgZm9udGlmeS4KICAoc2V0cSBzcWwtcHJvZHVjdCBwcm9kdWN0 KQogIChzcWwtaGlnaGxpZ2h0LXByb2R1Y3QpKQoMCgo7OzsgQ29tcGF0aWJp bGl0eSBmdW5jdGlvbnMKCihpZiAobm90IChmYm91bmRwICdjb21pbnQtbGlu ZS1iZWdpbm5pbmctcG9zaXRpb24pKQogICAgOzsgY29taW50LWxpbmUtYmVn aW5uaW5nLXBvc2l0aW9uIGlzIGRlZmluZWQgaW4gRW1hY3MgMjEKICAgIChk ZWZ1biBjb21pbnQtbGluZS1iZWdpbm5pbmctcG9zaXRpb24gKCkKICAgICAg IlJldHVybiB0aGUgYnVmZmVyIHBvc2l0aW9uIG9mIHRoZSBiZWdpbm5pbmcg b2YgdGhlIGxpbmUsIGFmdGVyIGFueSBwcm9tcHQuClRoZSBwcm9tcHQgaXMg YXNzdW1lZCB0byBiZSBhbnkgdGV4dCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRo ZSBsaW5lIG1hdGNoaW5nCnRoZSByZWd1bGFyIGV4cHJlc3Npb24gYGNvbWlu dC1wcm9tcHQtcmVnZXhwJywgYSBidWZmZXIgbG9jYWwgdmFyaWFibGUuIgog ICAgICAoc2F2ZS1leGN1cnNpb24gKGNvbWludC1ib2wgbmlsKSAocG9pbnQp KSkpCgoMCgo7OzsgU21hbGwgZnVuY3Rpb25zCgooZGVmdW4gc3FsLW1hZ2lj LWdvIChhcmcpCiAgIkluc2VydCBcIm9cIiBhbmQgY2FsbCBgY29taW50LXNl bmQtaW5wdXQnLgpgc3FsLWVsZWN0cmljLXN0dWZmJyBtdXN0IGJlIHRoZSBz eW1ib2wgYGdvJy4iCiAgKGludGVyYWN0aXZlICJQIikKICAoc2VsZi1pbnNl cnQtY29tbWFuZCAocHJlZml4LW51bWVyaWMtdmFsdWUgYXJnKSkKICAoaWYg KGFuZCAoZXF1YWwgc3FsLWVsZWN0cmljLXN0dWZmICdnbykKCSAgIChzYXZl LWV4Y3Vyc2lvbgoJICAgICAoY29taW50LWJvbCBuaWwpCgkgICAgIChsb29r aW5nLWF0ICJnb1xcYiIpKSkKICAgICAgKGNvbWludC1zZW5kLWlucHV0KSkp CgooZGVmdW4gc3FsLW1hZ2ljLXNlbWljb2xvbiAoYXJnKQogICJJbnNlcnQg c2VtaWNvbG9uIGFuZCBjYWxsIGBjb21pbnQtc2VuZC1pbnB1dCcuCmBzcWwt ZWxlY3RyaWMtc3R1ZmYnIG11c3QgYmUgdGhlIHN5bWJvbCBgc2VtaWNvbG9u Jy4iCiAgKGludGVyYWN0aXZlICJQIikKICAoc2VsZi1pbnNlcnQtY29tbWFu ZCAocHJlZml4LW51bWVyaWMtdmFsdWUgYXJnKSkKICAoaWYgKGVxdWFsIHNx bC1lbGVjdHJpYy1zdHVmZiAnc2VtaWNvbG9uKQogICAgICAgKGNvbWludC1z ZW5kLWlucHV0KSkpCgooZGVmdW4gc3FsLWFjY3VtdWxhdGUtYW5kLWluZGVu dCAoKQogICJDb250aW51ZSBTUUwgc3RhdGVtZW50IG9uIHRoZSBuZXh0IGxp bmUuIgogIChpbnRlcmFjdGl2ZSkKICAoaWYgKGZib3VuZHAgJ2NvbWludC1h Y2N1bXVsYXRlKQogICAgICAoY29taW50LWFjY3VtdWxhdGUpCiAgICAobmV3 bGluZSkpCiAgKGluZGVudC1hY2NvcmRpbmctdG8tbW9kZSkpCgo7OzsjIyNh dXRvbG9hZAooZGVmdW4gc3FsLWhlbHAgKCkKICAiU2hvdyBzaG9ydCBoZWxw IGZvciB0aGUgU1FMIG1vZGVzLgoKVXNlIGFuIGVudHJ5IGZ1bmN0aW9uIHRv IG9wZW4gYW4gaW50ZXJhY3RpdmUgU1FMIGJ1ZmZlci4gIFRoaXMgYnVmZmVy IGlzCnVzdWFsbHkgbmFtZWQgYCpTUUwqJy4gIFRoZSBuYW1lIG9mIHRoZSBt YWpvciBtb2RlIGlzIFNRTGkuCgpVc2UgdGhlIGZvbGxvd2luZyBjb21tYW5k cyB0byBzdGFydCBhIHNwZWNpZmljIFNRTCBpbnRlcnByZXRlcjoKCiAgICBQ b3N0R3JlczogXFxbc3FsLXBvc3RncmVzXQogICAgTXlTUUw6IFxcW3NxbC1t eXNxbF0KICAgIFNRTGl0ZTogXFxbc3FsLXNxbGl0ZV0KCk90aGVyIG5vbi1m cmVlIFNRTCBpbXBsZW1lbnRhdGlvbnMgYXJlIGFsc28gc3VwcG9ydGVkOgoK ICAgIFNvbGlkOiBcXFtzcWwtc29saWRdCiAgICBPcmFjbGU6IFxcW3NxbC1v cmFjbGVdCiAgICBJbmZvcm1peDogXFxbc3FsLWluZm9ybWl4XQogICAgU3li YXNlOiBcXFtzcWwtc3liYXNlXQogICAgSW5ncmVzOiBcXFtzcWwtaW5ncmVz XQogICAgTWljcm9zb2Z0OiBcXFtzcWwtbXNdCiAgICBEQjI6IFxcW3NxbC1k YjJdCiAgICBJbnRlcmJhc2U6IFxcW3NxbC1pbnRlcmJhc2VdCiAgICBMaW50 ZXI6IFxcW3NxbC1saW50ZXJdCgpCdXQgd2UgdXJnZSB5b3UgdG8gY2hvb3Nl IGEgZnJlZSBpbXBsZW1lbnRhdGlvbiBpbnN0ZWFkIG9mIHRoZXNlLgoKT25j ZSB5b3UgaGF2ZSB0aGUgU1FMaSBidWZmZXIsIHlvdSBjYW4gZW50ZXIgU1FM IHN0YXRlbWVudHMgaW4gdGhlCmJ1ZmZlci4gIFRoZSBvdXRwdXQgZ2VuZXJh dGVkIGlzIGFwcGVuZGVkIHRvIHRoZSBidWZmZXIgYW5kIGEgbmV3IHByb21w dAppcyBnZW5lcmF0ZWQuICBTZWUgdGhlIEluL091dCBtZW51IGluIHRoZSBT UUxpIGJ1ZmZlciBmb3Igc29tZSBmdW5jdGlvbnMKdGhhdCBoZWxwIHlvdSBu YXZpZ2F0ZSB0aHJvdWdoIHRoZSBidWZmZXIsIHRoZSBpbnB1dCBoaXN0b3J5 LCBldGMuCgpJZiB5b3UgaGF2ZSBhIHJlYWxseSBjb21wbGV4IFNRTCBzdGF0 ZW1lbnQgb3IgaWYgeW91IGFyZSB3cml0aW5nIGEKcHJvY2VkdXJlLCB5b3Ug Y2FuIGRvIHRoaXMgaW4gYSBzZXBhcmF0ZSBidWZmZXIuICBQdXQgdGhlIG5l dyBidWZmZXIgaW4KYHNxbC1tb2RlJyBieSBjYWxsaW5nIFxcW3NxbC1tb2Rl XS4gIFRoZSBuYW1lIG9mIHRoaXMgYnVmZmVyIGNhbiBiZQphbnl0aGluZy4g IFRoZSBuYW1lIG9mIHRoZSBtYWpvciBtb2RlIGlzIFNRTC4KCkluIHRoaXMg U1FMIGJ1ZmZlciAoU1FMIG1vZGUpLCB5b3UgY2FuIHNlbmQgdGhlIHJlZ2lv biBvciB0aGUgZW50aXJlCmJ1ZmZlciB0byB0aGUgaW50ZXJhY3RpdmUgU1FM IGJ1ZmZlciAoU1FMaSBtb2RlKS4gIFRoZSByZXN1bHRzIGFyZQphcHBlbmRl ZCB0byB0aGUgU1FMaSBidWZmZXIgd2l0aG91dCBkaXN0dXJiaW5nIHlvdXIg U1FMIGJ1ZmZlci4iCiAgKGludGVyYWN0aXZlKQogIChkZXNjcmliZS1mdW5j dGlvbiAnc3FsLWhlbHApKQoKKGRlZnVuIHNxbC1yZWFkLXBhc3N3ZCAocHJv bXB0ICZvcHRpb25hbCBkZWZhdWx0KQogICJSZWFkIGEgcGFzc3dvcmQgdXNp bmcgUFJPTVBULiAgT3B0aW9uYWwgREVGQVVMVCBpcyBwYXNzd29yZCB0byBz dGFydCB3aXRoLiIKICAocmVhZC1wYXNzd2QgcHJvbXB0IG5pbCBkZWZhdWx0 KSkKCihkZWZ1biBzcWwtZ2V0LWxvZ2luICgmcmVzdCB3aGF0KQogICJHZXQg dXNlcm5hbWUsIHBhc3N3b3JkIGFuZCBkYXRhYmFzZSBmcm9tIHRoZSB1c2Vy LgoKVGhlIHZhcmlhYmxlcyBgc3FsLXVzZXInLCBgc3FsLXBhc3N3b3JkJywg YHNxbC1zZXJ2ZXInLCBhbmQKYHNxbC1kYXRhYmFzZScgY2FuIGJlIGN1c3Rv bWl6ZWQuICBUaGV5IGFyZSB1c2VkIGFzIHRoZSBkZWZhdWx0IHZhbHVlcy4K VXNlcm5hbWVzLCBzZXJ2ZXJzIGFuZCBkYXRhYmFzZXMgYXJlIHN0b3JlZCBp biBgc3FsLXVzZXItaGlzdG9yeScsCmBzcWwtc2VydmVyLWhpc3RvcnknIGFu ZCBgZGF0YWJhc2UtaGlzdG9yeScuICBQYXNzd29yZHMgYXJlIG5vdCBzdG9y ZWQKaW4gYSBoaXN0b3J5LgoKUGFyYW1ldGVyIFdIQVQgaXMgYSBsaXN0IG9m IHRoZSBhcmd1bWVudHMgcGFzc2VkIHRvIHRoaXMgZnVuY3Rpb24uClRoZSBm dW5jdGlvbiBhc2tzIGZvciB0aGUgdXNlcm5hbWUgaWYgV0hBVCBjb250YWlu cyBzeW1ib2wgYHVzZXInLCBmb3IKdGhlIHBhc3N3b3JkIGlmIGl0IGNvbnRh aW5zIHN5bWJvbCBgcGFzc3dvcmQnLCBmb3IgdGhlIHNlcnZlciBpZiBpdApj b250YWlucyBzeW1ib2wgYHNlcnZlcicsIGFuZCBmb3IgdGhlIGRhdGFiYXNl IGlmIGl0IGNvbnRhaW5zIHN5bWJvbApgZGF0YWJhc2UnLiAgVGhlIG1lbWJl cnMgb2YgV0hBVCBhcmUgcHJvY2Vzc2VkIGluIHRoZSBvcmRlciBpbiB3aGlj aAp0aGV5IGFyZSBwcm92aWRlZC4KCkluIG9yZGVyIHRvIGFzayB0aGUgdXNl ciBmb3IgdXNlcm5hbWUsIHBhc3N3b3JkIGFuZCBkYXRhYmFzZSwgY2FsbCB0 aGUKZnVuY3Rpb24gbGlrZSB0aGlzOiAoc3FsLWdldC1sb2dpbiAndXNlciAn cGFzc3dvcmQgJ2RhdGFiYXNlKS4iCiAgKGludGVyYWN0aXZlKQogICh3aGls ZSB3aGF0CiAgICAoY29uZAogICAgICgoZXEgKGNhciB3aGF0KSAndXNlcikJ CTsgdXNlcgogICAgICAoc2V0cSBzcWwtdXNlcgoJICAgIChyZWFkLWZyb20t bWluaWJ1ZmZlciAiVXNlcjogIiBzcWwtdXNlciBuaWwgbmlsCgkJCQkgIHNx bC11c2VyLWhpc3RvcnkpKSkKICAgICAoKGVxIChjYXIgd2hhdCkgJ3Bhc3N3 b3JkKQkJOyBwYXNzd29yZAogICAgICAoc2V0cSBzcWwtcGFzc3dvcmQKCSAg ICAoc3FsLXJlYWQtcGFzc3dkICJQYXNzd29yZDogIiBzcWwtcGFzc3dvcmQp KSkKICAgICAoKGVxIChjYXIgd2hhdCkgJ3NlcnZlcikJCTsgc2VydmVyCiAg ICAgIChzZXRxIHNxbC1zZXJ2ZXIKCSAgICAocmVhZC1mcm9tLW1pbmlidWZm ZXIgIlNlcnZlcjogIiBzcWwtc2VydmVyIG5pbCBuaWwKCQkJCSAgc3FsLXNl cnZlci1oaXN0b3J5KSkpCiAgICAgKChlcSAoY2FyIHdoYXQpICdkYXRhYmFz ZSkJCTsgZGF0YWJhc2UKICAgICAgKHNldHEgc3FsLWRhdGFiYXNlCgkgICAg KHJlYWQtZnJvbS1taW5pYnVmZmVyICJEYXRhYmFzZTogIiBzcWwtZGF0YWJh c2UgbmlsIG5pbAoJCQkJICBzcWwtZGF0YWJhc2UtaGlzdG9yeSkpKSkKICAg IChzZXRxIHdoYXQgKGNkciB3aGF0KSkpKQoKKGRlZnVuIHNxbC1maW5kLXNx bGktYnVmZmVyICgpCiAgIlJldHVybiB0aGUgY3VycmVudCBkZWZhdWx0IFNR TGkgYnVmZmVyIG9yIG5pbC4KSW4gb3JkZXIgdG8gcXVhbGlmeSwgdGhlIFNR TGkgYnVmZmVyIG11c3QgYmUgYWxpdmUsCmJlIGluIGBzcWwtaW50ZXJhY3Rp dmUtbW9kZScgYW5kIGhhdmUgYSBwcm9jZXNzLiIKICAobGV0ICgoZGVmYXVs dC1idWZmZXIgKGRlZmF1bHQtdmFsdWUgJ3NxbC1idWZmZXIpKSkKICAgIChp ZiAoYW5kIChidWZmZXItbGl2ZS1wIGRlZmF1bHQtYnVmZmVyKQoJICAgICAo Z2V0LWJ1ZmZlci1wcm9jZXNzIGRlZmF1bHQtYnVmZmVyKSkKCWRlZmF1bHQt YnVmZmVyCiAgICAgIChzYXZlLWN1cnJlbnQtYnVmZmVyCgkobGV0ICgoYnVm bGlzdCAoYnVmZmVyLWxpc3QpKQoJICAgICAgKGZvdW5kKSkKCSAgKHdoaWxl IChub3QgKG9yIChudWxsIGJ1Zmxpc3QpCgkJCSAgZm91bmQpKQoJICAgIChs ZXQgKChjYW5kaWRhdGUgKGNhciBidWZsaXN0KSkpCgkgICAgICAoc2V0LWJ1 ZmZlciBjYW5kaWRhdGUpCgkgICAgICAoaWYgKGFuZCAoZGVyaXZlZC1tb2Rl LXAgJ3NxbC1pbnRlcmFjdGl2ZS1tb2RlKQoJCSAgICAgICAoZ2V0LWJ1ZmZl ci1wcm9jZXNzIGNhbmRpZGF0ZSkpCgkJICAoc2V0cSBmb3VuZCBjYW5kaWRh dGUpKQoJICAgICAgKHNldHEgYnVmbGlzdCAoY2RyIGJ1Zmxpc3QpKSkpCgkg IGZvdW5kKSkpKSkKCihkZWZ1biBzcWwtc2V0LXNxbGktYnVmZmVyLWdlbmVy YWxseSAoKQogICJTZXQgU1FMaSBidWZmZXIgZm9yIGFsbCBTUUwgYnVmZmVy cyB0aGF0IGhhdmUgbm9uZS4KVGhpcyBmdW5jdGlvbiBjaGVja3MgYWxsIFNR TCBidWZmZXJzIGZvciB0aGVpciBTUUxpIGJ1ZmZlci4gIElmIHRoZWlyClNR TGkgYnVmZmVyIGlzIG5vbmV4aXN0ZW50IG9yIGhhcyBubyBwcm9jZXNzLCBp dCBpcyBzZXQgdG8gdGhlIGN1cnJlbnQKZGVmYXVsdCBTUUxpIGJ1ZmZlci4g IFRoZSBjdXJyZW50IGRlZmF1bHQgU1FMaSBidWZmZXIgaXMgZGV0ZXJtaW5l ZAp1c2luZyBgc3FsLWZpbmQtc3FsaS1idWZmZXInLiAgSWYgYHNxbC1idWZm ZXInIGlzIHNldCwKYHNxbC1zZXQtc3FsaS1ob29rJyBpcyBydW4uIgogIChp bnRlcmFjdGl2ZSkKICAoc2F2ZS1leGN1cnNpb24KICAgIChsZXQgKChidWZs aXN0IChidWZmZXItbGlzdCkpCgkgIChkZWZhdWx0LXNxbGktYnVmZmVyIChz cWwtZmluZC1zcWxpLWJ1ZmZlcikpKQogICAgICAoc2V0cS1kZWZhdWx0IHNx bC1idWZmZXIgZGVmYXVsdC1zcWxpLWJ1ZmZlcikKICAgICAgKHdoaWxlIChu b3QgKG51bGwgYnVmbGlzdCkpCgkobGV0ICgoY2FuZGlkYXRlIChjYXIgYnVm bGlzdCkpKQoJICAoc2V0LWJ1ZmZlciBjYW5kaWRhdGUpCgkgIChpZiAoYW5k IChkZXJpdmVkLW1vZGUtcCAnc3FsLW1vZGUpCgkJICAgKG5vdCAoYnVmZmVy LWxpdmUtcCBzcWwtYnVmZmVyKSkpCgkgICAgICAocHJvZ24KCQkoc2V0cSBz cWwtYnVmZmVyIGRlZmF1bHQtc3FsaS1idWZmZXIpCgkJKHJ1bi1ob29rcyAn c3FsLXNldC1zcWxpLWhvb2spKSkpCgkoc2V0cSBidWZsaXN0IChjZHIgYnVm bGlzdCkpKSkpKQoKKGRlZnVuIHNxbC1zZXQtc3FsaS1idWZmZXIgKCkKICAi U2V0IHRoZSBTUUxpIGJ1ZmZlciBTUUwgc3RyaW5ncyBhcmUgc2VudCB0by4K CkNhbGwgdGhpcyBmdW5jdGlvbiBpbiBhIFNRTCBidWZmZXIgaW4gb3JkZXIg dG8gc2V0IHRoZSBTUUxpIGJ1ZmZlciBTUUwKc3RyaW5ncyBhcmUgc2VudCB0 by4gIENhbGxpbmcgdGhpcyBmdW5jdGlvbiBzZXRzIGBzcWwtYnVmZmVyJyBh bmQgcnVucwpgc3FsLXNldC1zcWxpLWhvb2snLgoKSWYgeW91IGNhbGwgaXQg ZnJvbSBhIFNRTCBidWZmZXIsIHRoaXMgc2V0cyB0aGUgbG9jYWwgY29weSBv Zgpgc3FsLWJ1ZmZlcicuCgpJZiB5b3UgY2FsbCBpdCBmcm9tIGFueXdoZXJl IGVsc2UsIGl0IHNldHMgdGhlIGdsb2JhbCBjb3B5IG9mCmBzcWwtYnVmZmVy Jy4iCiAgKGludGVyYWN0aXZlKQogIChsZXQgKChkZWZhdWx0LWJ1ZmZlciAo c3FsLWZpbmQtc3FsaS1idWZmZXIpKSkKICAgIChpZiAobnVsbCBkZWZhdWx0 LWJ1ZmZlcikKCShlcnJvciAiVGhlcmUgaXMgbm8gc3VpdGFibGUgU1FMaSBi dWZmZXIiKSkKICAgIChsZXQgKChuZXctYnVmZmVyCgkgICAoZ2V0LWJ1ZmZl cgoJICAgIChyZWFkLWJ1ZmZlciAiTmV3IFNRTGkgYnVmZmVyOiAiIGRlZmF1 bHQtYnVmZmVyIHQpKSkpCiAgICAgIChpZiAobnVsbCAoZ2V0LWJ1ZmZlci1w cm9jZXNzIG5ldy1idWZmZXIpKQoJICAoZXJyb3IgIkJ1ZmZlciAlcyBoYXMg bm8gcHJvY2VzcyIgKGJ1ZmZlci1uYW1lIG5ldy1idWZmZXIpKSkKICAgICAg KGlmIChudWxsICh3aXRoLWN1cnJlbnQtYnVmZmVyIG5ldy1idWZmZXIKCQkg IChlcXVhbCBtYWpvci1tb2RlICdzcWwtaW50ZXJhY3RpdmUtbW9kZSkpKQoJ ICAoZXJyb3IgIkJ1ZmZlciAlcyBpcyBubyBTUUxpIGJ1ZmZlciIgKGJ1ZmZl ci1uYW1lIG5ldy1idWZmZXIpKSkKICAgICAgKGlmIG5ldy1idWZmZXIKCSAg KHByb2duCgkgICAgKHNldHEgc3FsLWJ1ZmZlciBuZXctYnVmZmVyKQoJICAg IChydW4taG9va3MgJ3NxbC1zZXQtc3FsaS1ob29rKSkpKSkpCgooZGVmdW4g c3FsLXNob3ctc3FsaS1idWZmZXIgKCkKICAiU2hvdyB0aGUgbmFtZSBvZiBj dXJyZW50IFNRTGkgYnVmZmVyLgoKVGhpcyBpcyB0aGUgYnVmZmVyIFNRTCBz dHJpbmdzIGFyZSBzZW50IHRvLiAgSXQgaXMgc3RvcmVkIGluIHRoZQp2YXJp YWJsZSBgc3FsLWJ1ZmZlcicuICBTZWUgYHNxbC1oZWxwJyBvbiBob3cgdG8g Y3JlYXRlIHN1Y2ggYSBidWZmZXIuIgogIChpbnRlcmFjdGl2ZSkKICAoaWYg KG51bGwgKGJ1ZmZlci1saXZlLXAgc3FsLWJ1ZmZlcikpCiAgICAgIChtZXNz YWdlICIlcyBoYXMgbm8gU1FMaSBidWZmZXIgc2V0LiIgKGJ1ZmZlci1uYW1l IChjdXJyZW50LWJ1ZmZlcikpKQogICAgKGlmIChudWxsIChnZXQtYnVmZmVy LXByb2Nlc3Mgc3FsLWJ1ZmZlcikpCgkobWVzc2FnZSAiQnVmZmVyICVzIGhh cyBubyBwcm9jZXNzLiIgKGJ1ZmZlci1uYW1lIHNxbC1idWZmZXIpKQogICAg ICAobWVzc2FnZSAiQ3VycmVudCBTUUxpIGJ1ZmZlciBpcyAlcy4iIChidWZm ZXItbmFtZSBzcWwtYnVmZmVyKSkpKSkKCihkZWZ1biBzcWwtbWFrZS1hbHRl cm5hdGUtYnVmZmVyLW5hbWUgKCkKICAiUmV0dXJuIGEgc3RyaW5nIHRoYXQg Y2FuIGJlIHVzZWQgdG8gcmVuYW1lIGEgU1FMaSBidWZmZXIuCgpUaGlzIGlz IHVzZWQgdG8gc2V0IGBzcWwtYWx0ZXJuYXRlLWJ1ZmZlci1uYW1lJyB3aXRo aW4KYHNxbC1pbnRlcmFjdGl2ZS1tb2RlJy4iCiAgKGNvbmNhdCAoaWYgKHN0 cmluZz0gIiIgc3FsLXVzZXIpCgkgICAgICAoaWYgKHN0cmluZz0gIiIgKHVz ZXItbG9naW4tbmFtZSkpCgkJICAoKQoJCShjb25jYXQgKHVzZXItbG9naW4t bmFtZSkgIi8iKSkKCSAgICAoY29uY2F0IHNxbC11c2VyICIvIikpCgkgIChp ZiAoc3RyaW5nPSAiIiBzcWwtZGF0YWJhc2UpCgkgICAgICAoaWYgKHN0cmlu Zz0gIiIgc3FsLXNlcnZlcikKCQkgIChzeXN0ZW0tbmFtZSkKCQlzcWwtc2Vy dmVyKQoJICAgIHNxbC1kYXRhYmFzZSkpKQoKKGRlZnVuIHNxbC1yZW5hbWUt YnVmZmVyICgpCiAgIlJlbmFtZSBhIFNRTGkgYnVmZmVyLiIKICAoaW50ZXJh Y3RpdmUpCiAgKHJlbmFtZS1idWZmZXIgKGZvcm1hdCAiKlNRTDogJXMqIiBz cWwtYWx0ZXJuYXRlLWJ1ZmZlci1uYW1lKSB0KSkKCihkZWZ1biBzcWwtY29w eS1jb2x1bW4gKCkKICAiQ29weSBjdXJyZW50IGNvbHVtbiB0byB0aGUgZW5k IG9mIGJ1ZmZlci4KSW5zZXJ0cyBTRUxFQ1Qgb3IgY29tbWFzIGlmIGFwcHJv cHJpYXRlLiIKICAoaW50ZXJhY3RpdmUpCiAgKGxldCAoKGNvbHVtbikpCiAg ICAoc2F2ZS1leGN1cnNpb24KICAgICAgKHNldHEgY29sdW1uIChidWZmZXIt c3Vic3RyaW5nCgkJICAocHJvZ24gKGZvcndhcmQtY2hhciAxKSAoYmFja3dh cmQtc2V4cCAxKSAocG9pbnQpKQoJCSAgKHByb2duIChmb3J3YXJkLXNleHAg MSkgKHBvaW50KSkpKQogICAgICAoZ290by1jaGFyIChwb2ludC1tYXgpKQog ICAgICAobGV0ICgoYm9sIChjb21pbnQtbGluZS1iZWdpbm5pbmctcG9zaXRp b24pKSkKCShjb25kCgkgOzsgaWYgZW1wdHkgY29tbWFuZCBsaW5lLCBpbnNl cnQgU0VMRUNUCgkgKCg9IGJvbCAocG9pbnQpKQoJICAoaW5zZXJ0ICJTRUxF Q1QgIikpCgkgOzsgZWxzZSBpZiBhcHBlbmRpbmcgdG8gSU5UTyAuKiAoLCBT RUxFQ1Qgb3IgT1JERVIgQlksIGluc2VydCBhIGNvbW1hCgkgKChzYXZlLWV4 Y3Vyc2lvbgoJICAgIChyZS1zZWFyY2gtYmFja3dhcmQgIlxcYlxcKFxcKGlu dG9cXHMtK1xcUy0rXFxzLSsoXFwpXFx8c2VsZWN0XFx8b3JkZXIgYnlcXCkg LisiCgkJCQlib2wgdCkpCgkgIChpbnNlcnQgIiwgIikpCgkgOzsgZWxzZSBp bnNlcnQgYSBzcGFjZQoJICh0CgkgIChpZiAoZXEgKHByZWNlZGluZy1jaGFy KSA/XHMpCgkgICAgICBuaWwKCSAgICAoaW5zZXJ0ICIgIikpKSkpCiAgICAg IDs7IGluIGFueSBjYXNlLCBpbnNlcnQgdGhlIGNvbHVtbgogICAgICAoaW5z ZXJ0IGNvbHVtbikKICAgICAgKG1lc3NhZ2UgIiVzIiBjb2x1bW4pKSkpCgo7 OyBPbiBXaW5kb3dzLCBTUUwqUGx1cyBmb3IgT3JhY2xlIHR1cm5zIG9uIGZ1 bGwgYnVmZmVyaW5nIGZvciBzdGRvdXQKOzsgaWYgaXQgaXMgbm90IGF0dGFj aGVkIHRvIGEgY2hhcmFjdGVyIGRldmljZTsgdGhlcmVmb3JlIHBsYWNlaG9s ZGVyCjs7IHJlcGxhY2VtZW50IGJ5IFNRTCpQbHVzIGlzIGZ1bGx5IGJ1ZmZl cmVkLiAgVGhlIHdvcmthcm91bmQgbGV0cwo7OyBFbWFjcyBxdWVyeSBmb3Ig dGhlIHBsYWNlaG9sZGVycy4KCihkZWZ2YXIgc3FsLXBsYWNlaG9sZGVyLWhp c3RvcnkgbmlsCiAgIkhpc3Rvcnkgb2YgcGxhY2Vob2xkZXIgdmFsdWVzIHVz ZWQuIikKCihkZWZ1biBzcWwtcXVlcnktcGxhY2Vob2xkZXJzLWFuZC1zZW5k IChwcm9jIHN0cmluZykKICAiU2VuZCB0byBQUk9DIGlucHV0IFNUUklORywg bWF5YmUgcmVwbGFjaW5nIHBsYWNlaG9sZGVycy4KUGxhY2Vob2xkZXJzIGFy ZSB3b3JkcyBzdGFydGluZyB3aXRoIGFuIGFtcGVyc2FuZCBsaWtlICZ0aGlz LgpUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgZm9yIGBjb21pbnQtaW5wdXQtc2Vu ZGVyJyBpZiB1c2luZwpgc3FsLW9yYWNsZScgb24gV2luZG93cy4iCiAgKHdo aWxlIChzdHJpbmctbWF0Y2ggIiZcXChcXHN3K1xcKSIgc3RyaW5nKQogICAg KHNldHEgc3RyaW5nIChyZXBsYWNlLW1hdGNoCgkJICAocmVhZC1mcm9tLW1p bmlidWZmZXIKCQkgICAoZm9ybWF0ICJFbnRlciB2YWx1ZSBmb3IgJXM6ICIg KG1hdGNoLXN0cmluZyAxIHN0cmluZykpCgkJICAgbmlsIG5pbCBuaWwgc3Fs LXBsYWNlaG9sZGVyLWhpc3RvcnkpCgkJICB0IHQgc3RyaW5nKSkpCiAgKGNv bWludC1zZW5kLXN0cmluZyBwcm9jIHN0cmluZykKICAoaWYgY29taW50LWlu cHV0LXNlbmRlci1uby1uZXdsaW5lCiAgICAgIChpZiAobm90IChzdHJpbmct ZXF1YWwgc3RyaW5nICIiKSkKCSAgKHByb2Nlc3Mtc2VuZC1lb2YpKQogICAg KGNvbWludC1zZW5kLXN0cmluZyBwcm9jICJcbiIpKSkKCjs7IFVzaW5nIERC MiBpbnRlcmFjdGl2ZWx5LCBuZXdsaW5lcyBtdXN0IGJlIGVzY2FwZWQgd2l0 aCAiIFwiLgo7OyBUaGUgc3BhY2UgYmVmb3JlIHRoZSBiYWNrc2xhc2ggaXMg cmVsZXZhbnQuCihkZWZ1biBzcWwtZXNjYXBlLW5ld2xpbmVzLWFuZC1zZW5k IChwcm9jIHN0cmluZykKICAiU2VuZCB0byBQUk9DIGlucHV0IFNUUklORywg ZXNjYXBpbmcgbmV3bGluZXMgaWYgbmVjZXNzYXJ5LgpFdmVyeSBuZXdsaW5l IGluIFNUUklORyB3aWxsIGJlIHByZWNlZGVkIHdpdGggYSBzcGFjZSBhbmQg YSBiYWNrc2xhc2guIgogIChsZXQgKChyZXN1bHQgIiIpIChzdGFydCAwKSBt YiBtZSkKICAgICh3aGlsZSAoc3RyaW5nLW1hdGNoICJcbiIgc3RyaW5nIHN0 YXJ0KQogICAgICAoc2V0cSBtYiAobWF0Y2gtYmVnaW5uaW5nIDApCgkgICAg bWUgKG1hdGNoLWVuZCAwKSkKICAgICAgKGlmIChhbmQgKD4gbWIgMSkKCSAg ICAgICAoc3RyaW5nLWVxdWFsICIgXFwiIChzdWJzdHJpbmcgc3RyaW5nICgt IG1iIDIpIG1iKSkpCgkgIChzZXRxIHJlc3VsdCAoY29uY2F0IHJlc3VsdCAo c3Vic3RyaW5nIHN0cmluZyBzdGFydCBtZSkpKQoJKHNldHEgcmVzdWx0IChj b25jYXQgcmVzdWx0IChzdWJzdHJpbmcgc3RyaW5nIHN0YXJ0IG1iKSAiIFxc XG4iKSkpCiAgICAgIChzZXRxIHN0YXJ0IG1lKSkKICAgIChzZXRxIHJlc3Vs dCAoY29uY2F0IHJlc3VsdCAoc3Vic3RyaW5nIHN0cmluZyBzdGFydCkpKQog ICAgKGNvbWludC1zZW5kLXN0cmluZyBwcm9jIHJlc3VsdCkKICAgIChpZiBj b21pbnQtaW5wdXQtc2VuZGVyLW5vLW5ld2xpbmUKCShpZiAobm90IChzdHJp bmctZXF1YWwgc3RyaW5nICIiKSkKCSAgICAocHJvY2Vzcy1zZW5kLWVvZikp CiAgICAgIChjb21pbnQtc2VuZC1zdHJpbmcgcHJvYyAiXG4iKSkpKQoKDAoK Ozs7IFNlbmRpbmcgdGhlIHJlZ2lvbiB0byB0aGUgU1FMaSBidWZmZXIuCgoo ZGVmdW4gc3FsLXNlbmQtcmVnaW9uIChzdGFydCBlbmQpCiAgIlNlbmQgYSBy ZWdpb24gdG8gdGhlIFNRTCBwcm9jZXNzLiIKICAoaW50ZXJhY3RpdmUgInIi KQogIChpZiAoYnVmZmVyLWxpdmUtcCBzcWwtYnVmZmVyKQogICAgICAoc2F2 ZS1leGN1cnNpb24KCShjb21pbnQtc2VuZC1yZWdpb24gc3FsLWJ1ZmZlciBz dGFydCBlbmQpCgkoaWYgKHN0cmluZy1tYXRjaCAiXG4kIiAoYnVmZmVyLXN1 YnN0cmluZyBzdGFydCBlbmQpKQoJICAgICgpCgkgIChjb21pbnQtc2VuZC1z dHJpbmcgc3FsLWJ1ZmZlciAiXG4iKSkKCShtZXNzYWdlICJTZW50IHN0cmlu ZyB0byBidWZmZXIgJXMuIiAoYnVmZmVyLW5hbWUgc3FsLWJ1ZmZlcikpCgko aWYgc3FsLXBvcC10by1idWZmZXItYWZ0ZXItc2VuZC1yZWdpb24KCSAgICAo cG9wLXRvLWJ1ZmZlciBzcWwtYnVmZmVyKQoJICAoZGlzcGxheS1idWZmZXIg c3FsLWJ1ZmZlcikpKQogICAgKG1lc3NhZ2UgIk5vIFNRTCBwcm9jZXNzIHN0 YXJ0ZWQuIikpKQoKKGRlZnVuIHNxbC1zZW5kLXBhcmFncmFwaCAoKQogICJT ZW5kIHRoZSBjdXJyZW50IHBhcmFncmFwaCB0byB0aGUgU1FMIHByb2Nlc3Mu IgogIChpbnRlcmFjdGl2ZSkKICAobGV0ICgoc3RhcnQgKHNhdmUtZXhjdXJz aW9uCgkJIChiYWNrd2FyZC1wYXJhZ3JhcGgpCgkJIChwb2ludCkpKQoJKGVu ZCAoc2F2ZS1leGN1cnNpb24KCSAgICAgICAoZm9yd2FyZC1wYXJhZ3JhcGgp CgkgICAgICAgKHBvaW50KSkpKQogICAgKHNxbC1zZW5kLXJlZ2lvbiBzdGFy dCBlbmQpKSkKCihkZWZ1biBzcWwtc2VuZC1idWZmZXIgKCkKICAiU2VuZCB0 aGUgYnVmZmVyIGNvbnRlbnRzIHRvIHRoZSBTUUwgcHJvY2Vzcy4iCiAgKGlu dGVyYWN0aXZlKQogIChzcWwtc2VuZC1yZWdpb24gKHBvaW50LW1pbikgKHBv aW50LW1heCkpKQoKKGRlZnVuIHNxbC1zZW5kLXN0cmluZyAoc3RyKQogICJT ZW5kIGEgc3RyaW5nIHRvIHRoZSBTUUwgcHJvY2Vzcy4iCiAgKGludGVyYWN0 aXZlICJzU1FMIFRleHQ6ICIpCiAgKGlmIChidWZmZXItbGl2ZS1wIHNxbC1i dWZmZXIpCiAgICAgIChzYXZlLWV4Y3Vyc2lvbgogICAgICAgIChjb21pbnQt c2VuZC1zdHJpbmcgc3FsLWJ1ZmZlciBzdHIpCiAgICAgICAgKGNvbWludC1z ZW5kLXN0cmluZyBzcWwtYnVmZmVyICJcbiIpCiAgICAgICAgKG1lc3NhZ2Ug IlNlbnQgc3RyaW5nIHRvIGJ1ZmZlciAlcy4iIChidWZmZXItbmFtZSBzcWwt YnVmZmVyKSkKICAgICAgICAoaWYgc3FsLXBvcC10by1idWZmZXItYWZ0ZXIt c2VuZC1yZWdpb24KICAgICAgICAgICAgKHBvcC10by1idWZmZXIgc3FsLWJ1 ZmZlcikKICAgICAgICAgIChkaXNwbGF5LWJ1ZmZlciBzcWwtYnVmZmVyKSkp CiAgICAobWVzc2FnZSAiTm8gU1FMIHByb2Nlc3Mgc3RhcnRlZC4iKSkpCgoo ZGVmdW4gc3FsLXRvZ2dsZS1wb3AtdG8tYnVmZmVyLWFmdGVyLXNlbmQtcmVn aW9uICgmb3B0aW9uYWwgdmFsdWUpCiAgIlRvZ2dsZSBgc3FsLXBvcC10by1i dWZmZXItYWZ0ZXItc2VuZC1yZWdpb24nLgoKSWYgZ2l2ZW4gdGhlIG9wdGlv bmFsIHBhcmFtZXRlciBWQUxVRSwgc2V0cwpgc3FsLXRvZ2dsZS1wb3AtdG8t YnVmZmVyLWFmdGVyLXNlbmQtcmVnaW9uJyB0byBWQUxVRS4iCiAgKGludGVy YWN0aXZlICJQIikKICAoaWYgdmFsdWUKICAgICAgKHNldHEgc3FsLXBvcC10 by1idWZmZXItYWZ0ZXItc2VuZC1yZWdpb24gdmFsdWUpCiAgICAoc2V0cSBz cWwtcG9wLXRvLWJ1ZmZlci1hZnRlci1zZW5kLXJlZ2lvbgoJICAobnVsbCBz cWwtcG9wLXRvLWJ1ZmZlci1hZnRlci1zZW5kLXJlZ2lvbiApKSkpCgoMCgo7 OzsgU1FMIG1vZGUgLS0gdXNlcyBTUUwgaW50ZXJhY3RpdmUgbW9kZQoKOzs7 IyMjYXV0b2xvYWQKKGRlZnVuIHNxbC1tb2RlICgpCiAgIk1ham9yIG1vZGUg dG8gZWRpdCBTUUwuCgpZb3UgY2FuIHNlbmQgU1FMIHN0YXRlbWVudHMgdG8g dGhlIFNRTGkgYnVmZmVyIHVzaW5nClxcW3NxbC1zZW5kLXJlZ2lvbl0uICBT dWNoIGEgYnVmZmVyIG11c3QgZXhpc3QgYmVmb3JlIHlvdSBjYW4gZG8gdGhp cy4KU2VlIGBzcWwtaGVscCcgb24gaG93IHRvIGNyZWF0ZSBTUUxpIGJ1ZmZl cnMuCgpcXHtzcWwtbW9kZS1tYXB9CkN1c3RvbWl6YXRpb246IEVudHJ5IHRv IHRoaXMgbW9kZSBydW5zIHRoZSBgc3FsLW1vZGUtaG9vaycuCgpXaGVuIHlv dSBwdXQgYSBidWZmZXIgaW4gU1FMIG1vZGUsIHRoZSBidWZmZXIgc3RvcmVz IHRoZSBsYXN0IFNRTGkKYnVmZmVyIGNyZWF0ZWQgYXMgaXRzIGRlc3RpbmF0 aW9uIGluIHRoZSB2YXJpYWJsZSBgc3FsLWJ1ZmZlcicuICBUaGlzCndpbGwg YmUgdGhlIGJ1ZmZlciBcXFtzcWwtc2VuZC1yZWdpb25dIHNlbmRzIHRoZSBy ZWdpb24gdG8uICBJZiB0aGlzClNRTGkgYnVmZmVyIGlzIGtpbGxlZCwgXFxb c3FsLXNlbmQtcmVnaW9uXSBpcyBubyBsb25nZXIgYWJsZSB0bwpkZXRlcm1p bmUgd2hlcmUgdGhlIHN0cmluZ3Mgc2hvdWxkIGJlIHNlbnQgdG8uICBZb3Ug Y2FuIHNldCB0aGUKdmFsdWUgb2YgYHNxbC1idWZmZXInIHVzaW5nIFxcW3Nx bC1zZXQtc3FsaS1idWZmZXJdLgoKRm9yIGluZm9ybWF0aW9uIG9uIGhvdyB0 byBjcmVhdGUgbXVsdGlwbGUgU1FMaSBidWZmZXJzLCBzZWUKYHNxbC1pbnRl cmFjdGl2ZS1tb2RlJy4KCk5vdGUgdGhhdCBTUUwgZG9lc24ndCBoYXZlIGFu IGVzY2FwZSBjaGFyYWN0ZXIgdW5sZXNzIHlvdSBzcGVjaWZ5Cm9uZS4gIElm IHlvdSBzcGVjaWZ5IGJhY2tzbGFzaCBhcyBlc2NhcGUgY2hhcmFjdGVyIGlu IFNRTCwKeW91IG11c3QgdGVsbCBFbWFjcy4gIEhlcmUncyBob3cgdG8gZG8g dGhhdCBpbiB5b3VyIGB+Ly5lbWFjcycgZmlsZToKClwoYWRkLWhvb2sgJ3Nx bC1tb2RlLWhvb2sKICAgICAgICAgIChsYW1iZGEgKCkKCSAgICAobW9kaWZ5 LXN5bnRheC1lbnRyeSA/XFxcXCBcIi5cIiBzcWwtbW9kZS1zeW50YXgtdGFi bGUpKSkiCiAgKGludGVyYWN0aXZlKQogIChraWxsLWFsbC1sb2NhbC12YXJp YWJsZXMpCiAgKHNldHEgbWFqb3ItbW9kZSAnc3FsLW1vZGUpCiAgKHNldHEg bW9kZS1uYW1lICJTUUwiKQogICh1c2UtbG9jYWwtbWFwIHNxbC1tb2RlLW1h cCkKICAoaWYgc3FsLW1vZGUtbWVudQogICAgICAoZWFzeS1tZW51LWFkZCBz cWwtbW9kZS1tZW51KSk7IFhFbWFjcwogIChzZXQtc3ludGF4LXRhYmxlIHNx bC1tb2RlLXN5bnRheC10YWJsZSkKICAobWFrZS1sb2NhbC12YXJpYWJsZSAn Zm9udC1sb2NrLWRlZmF1bHRzKQogIChtYWtlLWxvY2FsLXZhcmlhYmxlICdz cWwtbW9kZS1mb250LWxvY2sta2V5d29yZHMpCiAgKG1ha2UtbG9jYWwtdmFy aWFibGUgJ2NvbW1lbnQtc3RhcnQpCiAgKHNldHEgY29tbWVudC1zdGFydCAi LS0iKQogIDs7IE1ha2UgZWFjaCBidWZmZXIgaW4gc3FsLW1vZGUgcmVtZW1i ZXIgdGhlICJjdXJyZW50IiBTUUxpIGJ1ZmZlci4KICAobWFrZS1sb2NhbC12 YXJpYWJsZSAnc3FsLWJ1ZmZlcikKICA7OyBBZGQgaW1lbnUgc3VwcG9ydCBm b3Igc3FsLW1vZGUuICBOb3RlIHRoYXQgaW1lbnUtZ2VuZXJpYy1leHByZXNz aW9uCiAgOzsgaXMgYnVmZmVyLWxvY2FsLCBzbyB3ZSBkb24ndCBuZWVkIGEg bG9jYWwtdmFyaWFibGUgZm9yIGl0LiAgU1FMIGlzCiAgOzsgY2FzZS1pbnNl bnNpdGl2ZSwgdGhhdCdzIHdoeSB3ZSBoYXZlIHRvIHNldCBpbWVudS1jYXNl LWZvbGQtc2VhcmNoLgogIChzZXRxIGltZW51LWdlbmVyaWMtZXhwcmVzc2lv biBzcWwtaW1lbnUtZ2VuZXJpYy1leHByZXNzaW9uCglpbWVudS1jYXNlLWZv bGQtc2VhcmNoIHQpCiAgOzsgTWFrZSBgc3FsLXNlbmQtcGFyYWdyYXBoJyB3 b3JrIG9uIHBhcmFncmFwaHMgdGhhdCBjb250YWluIGluZGVudGVkCiAgOzsg bGluZXMuCiAgKG1ha2UtbG9jYWwtdmFyaWFibGUgJ3BhcmFncmFwaC1zZXBh cmF0ZSkKICAobWFrZS1sb2NhbC12YXJpYWJsZSAncGFyYWdyYXBoLXN0YXJ0 KQogIChzZXRxIHBhcmFncmFwaC1zZXBhcmF0ZSAiW1xmXSokIgoJcGFyYWdy YXBoLXN0YXJ0ICJbXG5cZl0iKQogIDs7IEFiYnJldnMKICAoc2V0cSBsb2Nh bC1hYmJyZXYtdGFibGUgc3FsLW1vZGUtYWJicmV2LXRhYmxlKQogIChzZXRx IGFiYnJldi1hbGwtY2FwcyAxKQogIDs7IFJ1biBob29rCiAgKHJ1bi1tb2Rl LWhvb2tzICdzcWwtbW9kZS1ob29rKQogIDs7IENhdGNoIGNoYW5nZXMgdG8g c3FsLXByb2R1Y3QgYW5kIGhpZ2hsaWdodCBhY2NvcmRpbmdseQogIChzcWwt aGlnaGxpZ2h0LXByb2R1Y3QpCiAgKGFkZC1ob29rICdoYWNrLWxvY2FsLXZh cmlhYmxlcy1ob29rICdzcWwtaGlnaGxpZ2h0LXByb2R1Y3QgdCB0KSkKCgwK Cjs7OyBTUUwgaW50ZXJhY3RpdmUgbW9kZQoKKHB1dCAnc3FsLWludGVyYWN0 aXZlLW1vZGUgJ21vZGUtY2xhc3MgJ3NwZWNpYWwpCgooZGVmdW4gc3FsLWlu dGVyYWN0aXZlLW1vZGUgKCkKICAiTWFqb3IgbW9kZSB0byB1c2UgYSBTUUwg aW50ZXJwcmV0ZXIgaW50ZXJhY3RpdmVseS4KCkRvIG5vdCBjYWxsIHRoaXMg ZnVuY3Rpb24gYnkgeW91cnNlbGYuICBUaGUgZW52aXJvbm1lbnQgbXVzdCBi ZQppbml0aWFsaXplZCBieSBhbiBlbnRyeSBmdW5jdGlvbiBzcGVjaWZpYyBm b3IgdGhlIFNRTCBpbnRlcnByZXRlci4KU2VlIGBzcWwtaGVscCcgZm9yIGEg bGlzdCBvZiBhdmFpbGFibGUgZW50cnkgZnVuY3Rpb25zLgoKXFxbY29taW50 LXNlbmQtaW5wdXRdIGFmdGVyIHRoZSBlbmQgb2YgdGhlIHByb2Nlc3MnIG91 dHB1dCBzZW5kcyB0aGUKdGV4dCBmcm9tIHRoZSBlbmQgb2YgcHJvY2VzcyB0 byB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IGxpbmUuClxcW2NvbWludC1zZW5k LWlucHV0XSBiZWZvcmUgZW5kIG9mIHByb2Nlc3Mgb3V0cHV0IGNvcGllcyB0 aGUgY3VycmVudApsaW5lIG1pbnVzIHRoZSBwcm9tcHQgdG8gdGhlIGVuZCBv ZiB0aGUgYnVmZmVyIGFuZCBzZW5kcyBpdC4KXFxbY29taW50LWNvcHktb2xk LWlucHV0XSBqdXN0IGNvcGllcyB0aGUgY3VycmVudCBsaW5lLgpVc2UgXFxb c3FsLWFjY3VtdWxhdGUtYW5kLWluZGVudF0gdG8gZW50ZXIgbXVsdGktbGlu ZSBzdGF0ZW1lbnRzLgoKSWYgeW91IHdhbnQgdG8gbWFrZSBtdWx0aXBsZSBT UUwgYnVmZmVycywgcmVuYW1lIHRoZSBgKlNRTConIGJ1ZmZlcgp1c2luZyBc XFtyZW5hbWUtYnVmZmVyXSBvciBcXFtyZW5hbWUtdW5pcXVlbHldIGFuZCBz dGFydCBhIG5ldyBwcm9jZXNzLgpTZWUgYHNxbC1oZWxwJyBmb3IgYSBsaXN0 IG9mIGF2YWlsYWJsZSBlbnRyeSBmdW5jdGlvbnMuICBUaGUgbGFzdCBidWZm ZXIKY3JlYXRlZCBieSBzdWNoIGFuIGVudHJ5IGZ1bmN0aW9uIGlzIHRoZSBj dXJyZW50IFNRTGkgYnVmZmVyLiAgU1FMCmJ1ZmZlcnMgd2lsbCBzZW5kIHN0 cmluZ3MgdG8gdGhlIFNRTGkgYnVmZmVyIGN1cnJlbnQgYXQgdGhlIHRpbWUg b2YKdGhlaXIgY3JlYXRpb24uICBTZWUgYHNxbC1tb2RlJyBmb3IgZGV0YWls cy4KClNhbXBsZSBzZXNzaW9uIHVzaW5nIHR3byBjb25uZWN0aW9uczoKCjEu IENyZWF0ZSBmaXJzdCBTUUxpIGJ1ZmZlciBieSBjYWxsaW5nIGFuIGVudHJ5 IGZ1bmN0aW9uLgoyLiBSZW5hbWUgYnVmZmVyIFwiKlNRTCpcIiB0byBcIipD b25uZWN0aW9uIDEqXCIuCjMuIENyZWF0ZSBhIFNRTCBidWZmZXIgXCJ0ZXN0 MS5zcWxcIi4KNC4gQ3JlYXRlIHNlY29uZCBTUUxpIGJ1ZmZlciBieSBjYWxs aW5nIGFuIGVudHJ5IGZ1bmN0aW9uLgo1LiBSZW5hbWUgYnVmZmVyIFwiKlNR TCpcIiB0byBcIipDb25uZWN0aW9uIDIqXCIuCjYuIENyZWF0ZSBhIFNRTCBi dWZmZXIgXCJ0ZXN0Mi5zcWxcIi4KCk5vdyBcXFtzcWwtc2VuZC1yZWdpb25d IGluIGJ1ZmZlciBcInRlc3QxLnNxbFwiIHdpbGwgc2VuZCB0aGUgcmVnaW9u IHRvCmJ1ZmZlciBcIipDb25uZWN0aW9uIDEqXCIsIFxcW3NxbC1zZW5kLXJl Z2lvbl0gaW4gYnVmZmVyIFwidGVzdDIuc3FsXCIKd2lsbCBzZW5kIHRoZSBy ZWdpb24gdG8gYnVmZmVyIFwiKkNvbm5lY3Rpb24gMipcIi4KCklmIHlvdSBh Y2NpZGVudGFsbHkgc3VzcGVuZCB5b3VyIHByb2Nlc3MsIHVzZSBcXFtjb21p bnQtY29udGludWUtc3Viam9iXQp0byBjb250aW51ZSBpdC4gIE9uIHNvbWUg b3BlcmF0aW5nIHN5c3RlbXMsIHRoaXMgd2lsbCBub3Qgd29yayBiZWNhdXNl CnRoZSBzaWduYWxzIGFyZSBub3Qgc3VwcG9ydGVkLgoKXFx7c3FsLWludGVy YWN0aXZlLW1vZGUtbWFwfQpDdXN0b21pemF0aW9uOiBFbnRyeSB0byB0aGlz IG1vZGUgcnVucyB0aGUgaG9va3Mgb24gYGNvbWludC1tb2RlLWhvb2snCmFu ZCBgc3FsLWludGVyYWN0aXZlLW1vZGUtaG9vaycgKGluIHRoYXQgb3JkZXIp LiAgQmVmb3JlIGVhY2ggaW5wdXQsIHRoZQpob29rcyBvbiBgY29taW50LWlu cHV0LWZpbHRlci1mdW5jdGlvbnMnIGFyZSBydW4uICBBZnRlciBlYWNoIFNR TAppbnRlcnByZXRlciBvdXRwdXQsIHRoZSBob29rcyBvbiBgY29taW50LW91 dHB1dC1maWx0ZXItZnVuY3Rpb25zJyBhcmUKcnVuLgoKVmFyaWFibGUgYHNx bC1pbnB1dC1yaW5nLWZpbGUtbmFtZScgY29udHJvbHMgdGhlIGluaXRpYWxp emF0aW9uIG9mIHRoZQppbnB1dCByaW5nIGhpc3RvcnkuCgpWYXJpYWJsZXMg YGNvbWludC1vdXRwdXQtZmlsdGVyLWZ1bmN0aW9ucycsIGEgaG9vaywgYW5k CmBjb21pbnQtc2Nyb2xsLXRvLWJvdHRvbS1vbi1pbnB1dCcgYW5kCmBjb21p bnQtc2Nyb2xsLXRvLWJvdHRvbS1vbi1vdXRwdXQnIGNvbnRyb2wgd2hldGhl ciBpbnB1dCBhbmQgb3V0cHV0CmNhdXNlIHRoZSB3aW5kb3cgdG8gc2Nyb2xs IHRvIHRoZSBlbmQgb2YgdGhlIGJ1ZmZlci4KCklmIHlvdSB3YW50IHRvIG1h a2UgU1FMIGJ1ZmZlcnMgbGltaXRlZCBpbiBsZW5ndGgsIGFkZCB0aGUgZnVu Y3Rpb24KYGNvbWludC10cnVuY2F0ZS1idWZmZXInIHRvIGBjb21pbnQtb3V0 cHV0LWZpbHRlci1mdW5jdGlvbnMnLgoKSGVyZSBpcyBhbiBleGFtcGxlIGZv ciB5b3VyIC5lbWFjcyBmaWxlLiAgSXQga2VlcHMgdGhlIFNRTGkgYnVmZmVy IGEKY2VydGFpbiBsZW5ndGguCgpcKGFkZC1ob29rICdzcWwtaW50ZXJhY3Rp dmUtbW9kZS1ob29rCiAgICBcKGZ1bmN0aW9uIChsYW1iZGEgKCkKICAgICAg ICBcKHNldHEgY29taW50LW91dHB1dC1maWx0ZXItZnVuY3Rpb25zICdjb21p bnQtdHJ1bmNhdGUtYnVmZmVyKSkpKQoKSGVyZSBpcyBhbm90aGVyIGV4YW1w bGUuICBJdCB3aWxsIGFsd2F5cyBwdXQgcG9pbnQgYmFjayB0byB0aGUgc3Rh dGVtZW50CnlvdSBlbnRlcmVkLCByaWdodCBhYm92ZSB0aGUgb3V0cHV0IGl0 IGNyZWF0ZWQuCgpcKHNldHEgY29taW50LW91dHB1dC1maWx0ZXItZnVuY3Rp b25zCiAgICAgICBcKGZ1bmN0aW9uIChsYW1iZGEgKFNUUikgKGNvbWludC1z aG93LW91dHB1dCkpKSkiCiAgKGRlbGF5LW1vZGUtaG9va3MgKGNvbWludC1t b2RlKSkKICA7OyBHZXQgdGhlIGBzcWwtcHJvZHVjdCcgZm9yIHRoaXMgaW50 ZXJhY3RpdmUgc2Vzc2lvbi4KICAoc2V0IChtYWtlLWxvY2FsLXZhcmlhYmxl ICdzcWwtcHJvZHVjdCkKICAgICAgIChvciBzcWwtaW50ZXJhY3RpdmUtcHJv ZHVjdAoJICAgc3FsLXByb2R1Y3QpKQogIDs7IFNldHVwIHRoZSBtb2RlLgog IChzZXRxIG1ham9yLW1vZGUgJ3NxbC1pbnRlcmFjdGl2ZS1tb2RlKQogIChz ZXRxIG1vZGUtbmFtZSAoY29uY2F0ICJTUUxpWyIgKHByaW4xLXRvLXN0cmlu ZyBzcWwtcHJvZHVjdCkgIl0iKSkKICAodXNlLWxvY2FsLW1hcCBzcWwtaW50 ZXJhY3RpdmUtbW9kZS1tYXApCiAgKGlmIHNxbC1pbnRlcmFjdGl2ZS1tb2Rl LW1lbnUKICAgICAgKGVhc3ktbWVudS1hZGQgc3FsLWludGVyYWN0aXZlLW1v ZGUtbWVudSkpIDsgWEVtYWNzCiAgKHNldC1zeW50YXgtdGFibGUgc3FsLW1v ZGUtc3ludGF4LXRhYmxlKQogIChtYWtlLWxvY2FsLXZhcmlhYmxlICdzcWwt bW9kZS1mb250LWxvY2sta2V5d29yZHMpCiAgKG1ha2UtbG9jYWwtdmFyaWFi bGUgJ2ZvbnQtbG9jay1kZWZhdWx0cykKICA7OyBOb3RlIHRoYXQgbWFraW5n IEtFWVdPUkRTLU9OTFkgbmlsIHdpbGwgY2F1c2UgaGF2b2MgaWYgeW91IHRy eQogIDs7IFNFTEVDVCAneCcgRlJPTSBEVUFMIHdpdGggU1FMKlBsdXMsIGJl Y2F1c2UgdGhlIHRpdGxlIG9mIHRoZSBjb2x1bW4KICA7OyB3aWxsIGhhdmUg anVzdCBvbmUgcXVvdGUuICBUaGVyZWZvcmUgc3ludGFjdGljIGhpbGlnaHRp bmcgaXMKICA7OyBkaXNhYmxlZCBmb3IgaW50ZXJhY3RpdmUgYnVmZmVycy4g IE5vIGltZW51IHN1cHBvcnQuCiAgKHNxbC1wcm9kdWN0LWZvbnQtbG9jayB0 IG5pbCkKICA7OyBFbmFibGUgY29tbWVudGluZyBhbmQgdW5jb21tZW50aW5n IG9mIHRoZSByZWdpb24uCiAgKG1ha2UtbG9jYWwtdmFyaWFibGUgJ2NvbW1l bnQtc3RhcnQpCiAgKHNldHEgY29tbWVudC1zdGFydCAiLS0iKQogIDs7IEFi YnJldmlhdGlvbiB0YWJsZSBpbml0IGFuZCBjYXNlLWluc2Vuc2l0aXZlLiAg SXQgaXMgbm90IGFjdGl2YXRlZAogIDs7IGJ5IGRlZmF1bHQuCiAgKHNldHEg bG9jYWwtYWJicmV2LXRhYmxlIHNxbC1tb2RlLWFiYnJldi10YWJsZSkKICAo c2V0cSBhYmJyZXYtYWxsLWNhcHMgMSkKICA7OyBFeGl0aW5nIHRoZSBwcm9j ZXNzIHdpbGwgY2FsbCBzcWwtc3RvcC4KICAoc2V0LXByb2Nlc3Mtc2VudGlu ZWwgKGdldC1idWZmZXItcHJvY2VzcyBzcWwtYnVmZmVyKSAnc3FsLXN0b3Ap CiAgOzsgQ3JlYXRlIGEgdXNlZnVsbCBuYW1lIGZvciByZW5hbWluZyB0aGlz IGJ1ZmZlciBsYXRlci4KICAobWFrZS1sb2NhbC12YXJpYWJsZSAnc3FsLWFs dGVybmF0ZS1idWZmZXItbmFtZSkKICAoc2V0cSBzcWwtYWx0ZXJuYXRlLWJ1 ZmZlci1uYW1lIChzcWwtbWFrZS1hbHRlcm5hdGUtYnVmZmVyLW5hbWUpKQog IDs7IFVzZXIgc3R1ZmYuICBJbml0aWFsaXplIGJlZm9yZSB0aGUgaG9vay4K ICAoc2V0IChtYWtlLWxvY2FsLXZhcmlhYmxlICdzcWwtcHJvbXB0LXJlZ2V4 cCkKICAgICAgIChzcWwtcHJvZHVjdC1mZWF0dXJlIDpzcWxpLXByb21wdC1y ZWdleHApKQogIChzZXQgKG1ha2UtbG9jYWwtdmFyaWFibGUgJ3NxbC1wcm9t cHQtbGVuZ3RoKQogICAgICAgKHNxbC1wcm9kdWN0LWZlYXR1cmUgOnNxbGkt cHJvbXB0LWxlbmd0aCkpCiAgKG1ha2UtbG9jYWwtdmFyaWFibGUgJ3NxbC1p bnB1dC1yaW5nLXNlcGFyYXRvcikKICAobWFrZS1sb2NhbC12YXJpYWJsZSAn c3FsLWlucHV0LXJpbmctZmlsZS1uYW1lKQogIDs7IFJ1biBob29rLgogIChy dW4tbW9kZS1ob29rcyAnc3FsLWludGVyYWN0aXZlLW1vZGUtaG9vaykKICA7 OyBTZXQgY29taW50IGJhc2VkIG9uIHVzZXIgb3ZlcnJpZGVzLgogIChzZXRx IGNvbWludC1wcm9tcHQtcmVnZXhwIHNxbC1wcm9tcHQtcmVnZXhwKQogIChz ZXRxIGxlZnQtbWFyZ2luIHNxbC1wcm9tcHQtbGVuZ3RoKQogIDs7IFBlb3Bs ZSB3YW50aW5nIGEgZGlmZmVyZW50IGhpc3RvcnkgZmlsZSBmb3IgZWFjaAog IDs7IGJ1ZmZlci9wcm9jZXNzL2NsaWVudC93aGF0ZXZlciBjYW4gY2hhbmdl IHNlcGFyYXRvciBhbmQgZmlsZS1uYW1lCiAgOzsgb24gdGhlIHNxbC1pbnRl cmFjdGl2ZS1tb2RlLWhvb2suCiAgKHNldHEgY29taW50LWlucHV0LXJpbmct c2VwYXJhdG9yIHNxbC1pbnB1dC1yaW5nLXNlcGFyYXRvcgoJY29taW50LWlu cHV0LXJpbmctZmlsZS1uYW1lIHNxbC1pbnB1dC1yaW5nLWZpbGUtbmFtZSkK ICA7OyBDYWxsaW5nIHRoZSBob29rIGJlZm9yZSBjYWxsaW5nIGNvbWludC1y ZWFkLWlucHV0LXJpbmcgYWxsb3dzIHVzZXJzCiAgOzsgdG8gc2V0IGNvbWlu dC1pbnB1dC1yaW5nLWZpbGUtbmFtZSBpbiBzcWwtaW50ZXJhY3RpdmUtbW9k ZS1ob29rLgogIChjb21pbnQtcmVhZC1pbnB1dC1yaW5nIHQpKQoKKGRlZnVu IHNxbC1zdG9wIChwcm9jZXNzIGV2ZW50KQogICJDYWxsZWQgd2hlbiB0aGUg U1FMIHByb2Nlc3MgaXMgc3RvcHBlZC4KCldyaXRlcyB0aGUgaW5wdXQgaGlz dG9yeSB0byBhIGhpc3RvcnkgZmlsZSB1c2luZwpgY29taW50LXdyaXRlLWlu cHV0LXJpbmcnIGFuZCBpbnNlcnRzIGEgc2hvcnQgbWVzc2FnZSBpbiB0aGUg U1FMIGJ1ZmZlci4KClRoaXMgZnVuY3Rpb24gaXMgYSBzZW50aW5lbCB3YXRj aGluZyB0aGUgU1FMIGludGVycHJldGVyIHByb2Nlc3MuClNlbnRpbmVscyB3 aWxsIGFsd2F5cyBnZXQgdGhlIHR3byBwYXJhbWV0ZXJzIFBST0NFU1MgYW5k IEVWRU5ULiIKICAoY29taW50LXdyaXRlLWlucHV0LXJpbmcpCiAgKGlmIChh bmQgKGVxIChjdXJyZW50LWJ1ZmZlcikgc3FsLWJ1ZmZlcikKCSAgIChub3Qg YnVmZmVyLXJlYWQtb25seSkpCiAgICAgIChpbnNlcnQgKGZvcm1hdCAiXG5Q cm9jZXNzICVzICVzXG4iIHByb2Nlc3MgZXZlbnQpKQogICAgKG1lc3NhZ2Ug IlByb2Nlc3MgJXMgJXMiIHByb2Nlc3MgZXZlbnQpKSkKCgwKCjs7OyBFbnRy eSBmdW5jdGlvbnMgZm9yIGRpZmZlcmVudCBTUUwgaW50ZXJwcmV0ZXJzLgoK Ozs7IyMjYXV0b2xvYWQKKGRlZnVuIHNxbC1wcm9kdWN0LWludGVyYWN0aXZl ICgmb3B0aW9uYWwgcHJvZHVjdCkKICAiUnVuIHByb2R1Y3QgaW50ZXJwcmV0 ZXIgYXMgYW4gaW5mZXJpb3IgcHJvY2Vzcy4KCklmIGJ1ZmZlciBgKlNRTCon IGV4aXN0cyBidXQgbm8gcHJvY2VzcyBpcyBydW5uaW5nLCBtYWtlIGEgbmV3 IHByb2Nlc3MuCklmIGJ1ZmZlciBleGlzdHMgYW5kIGEgcHJvY2VzcyBpcyBy dW5uaW5nLCBqdXN0IHN3aXRjaCB0byBidWZmZXIgYCpTUUwqJy4KClwoVHlw ZSBcXFtkZXNjcmliZS1tb2RlXSBpbiB0aGUgU1FMIGJ1ZmZlciBmb3IgYSBs aXN0IG9mIGNvbW1hbmRzLikiCiAgKGludGVyYWN0aXZlKQogIChzZXRxIHBy b2R1Y3QgKG9yIHByb2R1Y3Qgc3FsLXByb2R1Y3QpKQogICh3aGVuIChzcWwt cHJvZHVjdC1mZWF0dXJlIDpzcWxpLWNvbm5lY3QgcHJvZHVjdCkKICAgIChp ZiAoY29taW50LWNoZWNrLXByb2MgIipTUUwqIikKCShwb3AtdG8tYnVmZmVy ICIqU1FMKiIpCiAgICAgIDs7IEdldCBjcmVkZW50aWFscy4KICAgICAgKGFw cGx5ICdzcWwtZ2V0LWxvZ2luIChzcWwtcHJvZHVjdC1mZWF0dXJlIDpzcWxp LWxvZ2luIHByb2R1Y3QpKQogICAgICA7OyBDb25uZWN0IHRvIGRhdGFiYXNl LgogICAgICAobWVzc2FnZSAiTG9naW4uLi4iKQogICAgICAoZnVuY2FsbCAo c3FsLXByb2R1Y3QtZmVhdHVyZSA6c3FsaS1jb25uZWN0IHByb2R1Y3QpKQog ICAgICA7OyBTZXQgU1FMaSBtb2RlLgogICAgICAoc2V0cSBzcWwtaW50ZXJh Y3RpdmUtcHJvZHVjdCBwcm9kdWN0KQogICAgICAoc2V0cSBzcWwtYnVmZmVy IChjdXJyZW50LWJ1ZmZlcikpCiAgICAgIChzcWwtaW50ZXJhY3RpdmUtbW9k ZSkKICAgICAgOzsgQWxsIGRvbmUuCiAgICAgIChtZXNzYWdlICJMb2dpbi4u LmRvbmUiKQogICAgICAocG9wLXRvLWJ1ZmZlciBzcWwtYnVmZmVyKSkpKQoK Ozs7IyMjYXV0b2xvYWQKKGRlZnVuIHNxbC1vcmFjbGUgKCkKICAiUnVuIHNx bHBsdXMgYnkgT3JhY2xlIGFzIGFuIGluZmVyaW9yIHByb2Nlc3MuCgpJZiBi dWZmZXIgYCpTUUwqJyBleGlzdHMgYnV0IG5vIHByb2Nlc3MgaXMgcnVubmlu ZywgbWFrZSBhIG5ldyBwcm9jZXNzLgpJZiBidWZmZXIgZXhpc3RzIGFuZCBh IHByb2Nlc3MgaXMgcnVubmluZywganVzdCBzd2l0Y2ggdG8gYnVmZmVyCmAq U1FMKicuCgpJbnRlcnByZXRlciB1c2VkIGNvbWVzIGZyb20gdmFyaWFibGUg YHNxbC1vcmFjbGUtcHJvZ3JhbScuICBMb2dpbiB1c2VzCnRoZSB2YXJpYWJs ZXMgYHNxbC11c2VyJywgYHNxbC1wYXNzd29yZCcsIGFuZCBgc3FsLWRhdGFi YXNlJyBhcwpkZWZhdWx0cywgaWYgc2V0LiAgQWRkaXRpb25hbCBjb21tYW5k IGxpbmUgcGFyYW1ldGVycyBjYW4gYmUgc3RvcmVkIGluCnRoZSBsaXN0IGBz cWwtb3JhY2xlLW9wdGlvbnMnLgoKVGhlIGJ1ZmZlciBpcyBwdXQgaW4gU1FM IGludGVyYWN0aXZlIG1vZGUsIGdpdmluZyBjb21tYW5kcyBmb3Igc2VuZGlu ZwppbnB1dC4gIFNlZSBgc3FsLWludGVyYWN0aXZlLW1vZGUnLgoKVG8gc3Bl Y2lmeSBhIGNvZGluZyBzeXN0ZW0gZm9yIGNvbnZlcnRpbmcgbm9uLUFTQ0lJ IGNoYXJhY3RlcnMKaW4gdGhlIGlucHV0IGFuZCBvdXRwdXQgdG8gdGhlIHBy b2Nlc3MsIHVzZSBcXFt1bml2ZXJzYWwtY29kaW5nLXN5c3RlbS1hcmd1bWVu dF0KYmVmb3JlIFxcW3NxbC1vcmFjbGVdLiAgWW91IGNhbiBhbHNvIHNwZWNp ZnkgdGhpcyB3aXRoIFxcW3NldC1idWZmZXItcHJvY2Vzcy1jb2Rpbmctc3lz dGVtXQppbiB0aGUgU1FMIGJ1ZmZlciwgYWZ0ZXIgeW91IHN0YXJ0IHRoZSBw cm9jZXNzLgpUaGUgZGVmYXVsdCBjb21lcyBmcm9tIGBwcm9jZXNzLWNvZGlu Zy1zeXN0ZW0tYWxpc3QnIGFuZApgZGVmYXVsdC1wcm9jZXNzLWNvZGluZy1z eXN0ZW0nLgoKXChUeXBlIFxcW2Rlc2NyaWJlLW1vZGVdIGluIHRoZSBTUUwg YnVmZmVyIGZvciBhIGxpc3Qgb2YgY29tbWFuZHMuKSIKICAoaW50ZXJhY3Rp dmUpCiAgKHNxbC1wcm9kdWN0LWludGVyYWN0aXZlICdvcmFjbGUpKQoKKGRl ZnVuIHNxbC1jb25uZWN0LW9yYWNsZSAoKQogICJDcmVhdGUgY29taW50IGJ1 ZmZlciBhbmQgY29ubmVjdCB0byBPcmFjbGUgdXNpbmcgdGhlIGxvZ2luCnBh cmFtZXRlcnMgYW5kIGNvbW1hbmQgb3B0aW9ucy4iCiAgOzsgUHJvZHVjZSB1 c2VyL3Bhc3N3b3JkQGRhdGFiYXNlIGNvbnN0cnVjdC4gIFBhc3N3b3JkIHdp dGhvdXQgdXNlcgogIDs7IGlzIG1lYW5pbmdsZXNzOyBkYXRhYmFzZSB3aXRo b3V0IHVzZXIvcGFzc3dvcmQgaXMgbWVhbmluZ2xlc3MsCiAgOzsgYmVjYXVz ZSAiQHBhcmFtIiB3aWxsIGFzayBzcWxwbHVzIHRvIGludGVycHJldCB0aGUg c2NyaXB0CiAgOzsgInBhcmFtIi4KICAobGV0ICgocGFyYW1ldGVyCiAgICAg ICAgIChpZiAobm90IChzdHJpbmc9ICIiIHNxbC11c2VyKSkKICAgICAgICAg ICAgIChpZiAobm90IChzdHJpbmc9ICIiIHNxbC1wYXNzd29yZCkpCiAgICAg ICAgICAgICAgICAgKGNvbmNhdCBzcWwtdXNlciAiLyIgc3FsLXBhc3N3b3Jk KQogICAgICAgICAgICAgICBzcWwtdXNlcikpKSkKICAgIChpZiAoYW5kIHBh cmFtZXRlciAobm90IChzdHJpbmc9ICIiIHNxbC1kYXRhYmFzZSkpKQoJKHNl dHEgcGFyYW1ldGVyIChjb25jYXQgcGFyYW1ldGVyICJAIiBzcWwtZGF0YWJh c2UpKSkKICAgIChzZXRxIHBhcmFtZXRlciAoaWYgcGFyYW1ldGVyCiAgICAg ICAgICAgICAgICAgICAgICAgIChuY29uYyAobGlzdCBwYXJhbWV0ZXIpIHNx bC1vcmFjbGUtb3B0aW9ucykKICAgICAgICAgICAgICAgICAgICAgIHNxbC1v cmFjbGUtb3B0aW9ucykpCiAgICAoc2V0LWJ1ZmZlciAoYXBwbHkgJ21ha2Ut Y29taW50ICJTUUwiIHNxbC1vcmFjbGUtcHJvZ3JhbSBuaWwgcGFyYW1ldGVy KSkKICAgIDs7IFNRTCpQbHVzIGlzIGJ1ZmZlcmVkIG9uIFdpbmRvd3M7IHRo aXMgaGFuZGxlcyAmcGxhY2Vob2xkZXJzLgogICAgKGlmIChlcSB3aW5kb3ct c3lzdGVtICd3MzIpCgkoc2V0cSBjb21pbnQtaW5wdXQtc2VuZGVyICdzcWwt cXVlcnktcGxhY2Vob2xkZXJzLWFuZC1zZW5kKSkpKQoKDAoKOzs7IyMjYXV0 b2xvYWQKKGRlZnVuIHNxbC1zeWJhc2UgKCkKICAiUnVuIGlzcWwgYnkgU3lC YXNlIGFzIGFuIGluZmVyaW9yIHByb2Nlc3MuCgpJZiBidWZmZXIgYCpTUUwq JyBleGlzdHMgYnV0IG5vIHByb2Nlc3MgaXMgcnVubmluZywgbWFrZSBhIG5l dyBwcm9jZXNzLgpJZiBidWZmZXIgZXhpc3RzIGFuZCBhIHByb2Nlc3MgaXMg cnVubmluZywganVzdCBzd2l0Y2ggdG8gYnVmZmVyCmAqU1FMKicuCgpJbnRl cnByZXRlciB1c2VkIGNvbWVzIGZyb20gdmFyaWFibGUgYHNxbC1zeWJhc2Ut cHJvZ3JhbScuICBMb2dpbiB1c2VzCnRoZSB2YXJpYWJsZXMgYHNxbC1zZXJ2 ZXInLCBgc3FsLXVzZXInLCBgc3FsLXBhc3N3b3JkJywgYW5kCmBzcWwtZGF0 YWJhc2UnIGFzIGRlZmF1bHRzLCBpZiBzZXQuICBBZGRpdGlvbmFsIGNvbW1h bmQgbGluZSBwYXJhbWV0ZXJzCmNhbiBiZSBzdG9yZWQgaW4gdGhlIGxpc3Qg YHNxbC1zeWJhc2Utb3B0aW9ucycuCgpUaGUgYnVmZmVyIGlzIHB1dCBpbiBT UUwgaW50ZXJhY3RpdmUgbW9kZSwgZ2l2aW5nIGNvbW1hbmRzIGZvciBzZW5k aW5nCmlucHV0LiAgU2VlIGBzcWwtaW50ZXJhY3RpdmUtbW9kZScuCgpUbyBz cGVjaWZ5IGEgY29kaW5nIHN5c3RlbSBmb3IgY29udmVydGluZyBub24tQVND SUkgY2hhcmFjdGVycwppbiB0aGUgaW5wdXQgYW5kIG91dHB1dCB0byB0aGUg cHJvY2VzcywgdXNlIFxcW3VuaXZlcnNhbC1jb2Rpbmctc3lzdGVtLWFyZ3Vt ZW50XQpiZWZvcmUgXFxbc3FsLXN5YmFzZV0uICBZb3UgY2FuIGFsc28gc3Bl Y2lmeSB0aGlzIHdpdGggXFxbc2V0LWJ1ZmZlci1wcm9jZXNzLWNvZGluZy1z eXN0ZW1dCmluIHRoZSBTUUwgYnVmZmVyLCBhZnRlciB5b3Ugc3RhcnQgdGhl IHByb2Nlc3MuClRoZSBkZWZhdWx0IGNvbWVzIGZyb20gYHByb2Nlc3MtY29k aW5nLXN5c3RlbS1hbGlzdCcgYW5kCmBkZWZhdWx0LXByb2Nlc3MtY29kaW5n LXN5c3RlbScuCgpcKFR5cGUgXFxbZGVzY3JpYmUtbW9kZV0gaW4gdGhlIFNR TCBidWZmZXIgZm9yIGEgbGlzdCBvZiBjb21tYW5kcy4pIgogIChpbnRlcmFj dGl2ZSkKICAoc3FsLXByb2R1Y3QtaW50ZXJhY3RpdmUgJ3N5YmFzZSkpCgoo ZGVmdW4gc3FsLWNvbm5lY3Qtc3liYXNlICgpCiAgIkNyZWF0ZSBjb21pbnQg YnVmZmVyIGFuZCBjb25uZWN0IHRvIFN5YmFzZSB1c2luZyB0aGUgbG9naW4K cGFyYW1ldGVycyBhbmQgY29tbWFuZCBvcHRpb25zLiIKICA7OyBQdXQgYWxs IHBhcmFtZXRlcnMgdG8gdGhlIHByb2dyYW0gKGlmIGRlZmluZWQpIGluIGEg bGlzdCBhbmQgY2FsbAogIDs7IG1ha2UtY29taW50LgogIChsZXQgKChwYXJh bXMgc3FsLXN5YmFzZS1vcHRpb25zKSkKICAgIChpZiAobm90IChzdHJpbmc9 ICIiIHNxbC1zZXJ2ZXIpKQoJKHNldHEgcGFyYW1zIChhcHBlbmQgKGxpc3Qg Ii1TIiBzcWwtc2VydmVyKSBwYXJhbXMpKSkKICAgIChpZiAobm90IChzdHJp bmc9ICIiIHNxbC1kYXRhYmFzZSkpCgkoc2V0cSBwYXJhbXMgKGFwcGVuZCAo bGlzdCAiLUQiIHNxbC1kYXRhYmFzZSkgcGFyYW1zKSkpCiAgICAoaWYgKG5v dCAoc3RyaW5nPSAiIiBzcWwtcGFzc3dvcmQpKQoJKHNldHEgcGFyYW1zIChh cHBlbmQgKGxpc3QgIi1QIiBzcWwtcGFzc3dvcmQpIHBhcmFtcykpKQogICAg KGlmIChub3QgKHN0cmluZz0gIiIgc3FsLXVzZXIpKQoJKHNldHEgcGFyYW1z IChhcHBlbmQgKGxpc3QgIi1VIiBzcWwtdXNlcikgcGFyYW1zKSkpCiAgICAo c2V0LWJ1ZmZlciAoYXBwbHkgJ21ha2UtY29taW50ICJTUUwiIHNxbC1zeWJh c2UtcHJvZ3JhbQoJCSAgICAgICBuaWwgcGFyYW1zKSkpKQoKDAoKOzs7IyMj YXV0b2xvYWQKKGRlZnVuIHNxbC1pbmZvcm1peCAoKQogICJSdW4gZGJhY2Nl c3MgYnkgSW5mb3JtaXggYXMgYW4gaW5mZXJpb3IgcHJvY2Vzcy4KCklmIGJ1 ZmZlciBgKlNRTConIGV4aXN0cyBidXQgbm8gcHJvY2VzcyBpcyBydW5uaW5n LCBtYWtlIGEgbmV3IHByb2Nlc3MuCklmIGJ1ZmZlciBleGlzdHMgYW5kIGEg cHJvY2VzcyBpcyBydW5uaW5nLCBqdXN0IHN3aXRjaCB0byBidWZmZXIKYCpT UUwqJy4KCkludGVycHJldGVyIHVzZWQgY29tZXMgZnJvbSB2YXJpYWJsZSBg c3FsLWluZm9ybWl4LXByb2dyYW0nLiAgTG9naW4gdXNlcwp0aGUgdmFyaWFi bGUgYHNxbC1kYXRhYmFzZScgYXMgZGVmYXVsdCwgaWYgc2V0LgoKVGhlIGJ1 ZmZlciBpcyBwdXQgaW4gU1FMIGludGVyYWN0aXZlIG1vZGUsIGdpdmluZyBj b21tYW5kcyBmb3Igc2VuZGluZwppbnB1dC4gIFNlZSBgc3FsLWludGVyYWN0 aXZlLW1vZGUnLgoKVG8gc3BlY2lmeSBhIGNvZGluZyBzeXN0ZW0gZm9yIGNv bnZlcnRpbmcgbm9uLUFTQ0lJIGNoYXJhY3RlcnMKaW4gdGhlIGlucHV0IGFu ZCBvdXRwdXQgdG8gdGhlIHByb2Nlc3MsIHVzZSBcXFt1bml2ZXJzYWwtY29k aW5nLXN5c3RlbS1hcmd1bWVudF0KYmVmb3JlIFxcW3NxbC1pbmZvcm1peF0u ICBZb3UgY2FuIGFsc28gc3BlY2lmeSB0aGlzIHdpdGggXFxbc2V0LWJ1ZmZl ci1wcm9jZXNzLWNvZGluZy1zeXN0ZW1dCmluIHRoZSBTUUwgYnVmZmVyLCBh ZnRlciB5b3Ugc3RhcnQgdGhlIHByb2Nlc3MuClRoZSBkZWZhdWx0IGNvbWVz IGZyb20gYHByb2Nlc3MtY29kaW5nLXN5c3RlbS1hbGlzdCcgYW5kCmBkZWZh dWx0LXByb2Nlc3MtY29kaW5nLXN5c3RlbScuCgpcKFR5cGUgXFxbZGVzY3Jp YmUtbW9kZV0gaW4gdGhlIFNRTCBidWZmZXIgZm9yIGEgbGlzdCBvZiBjb21t YW5kcy4pIgogIChpbnRlcmFjdGl2ZSkKICAoc3FsLXByb2R1Y3QtaW50ZXJh Y3RpdmUgJ2luZm9ybWl4KSkKCihkZWZ1biBzcWwtY29ubmVjdC1pbmZvcm1p eCAoKQogICJDcmVhdGUgY29taW50IGJ1ZmZlciBhbmQgY29ubmVjdCB0byBJ bmZvcm1peCB1c2luZyB0aGUgbG9naW4KcGFyYW1ldGVycyBhbmQgY29tbWFu ZCBvcHRpb25zLiIKICA7OyB1c2VybmFtZSBhbmQgcGFzc3dvcmQgYXJlIGln bm9yZWQuCiAgKHNldC1idWZmZXIgKGlmIChzdHJpbmc9ICIiIHNxbC1kYXRh YmFzZSkKICAgICAgICAgICAgICAgICAgKG1ha2UtY29taW50ICJTUUwiIHNx bC1pbmZvcm1peC1wcm9ncmFtIG5pbCkKICAgICAgICAgICAgICAgIChtYWtl LWNvbWludCAiU1FMIiBzcWwtaW5mb3JtaXgtcHJvZ3JhbSBuaWwgc3FsLWRh dGFiYXNlICItIikpKSkKCgwKCjs7OyMjI2F1dG9sb2FkCihkZWZ1biBzcWwt c3FsaXRlICgpCiAgIlJ1biBzcWxpdGUgYXMgYW4gaW5mZXJpb3IgcHJvY2Vz cy4KClNRTGl0ZSBpcyBmcmVlIHNvZnR3YXJlLgoKSWYgYnVmZmVyIGAqU1FM KicgZXhpc3RzIGJ1dCBubyBwcm9jZXNzIGlzIHJ1bm5pbmcsIG1ha2UgYSBu ZXcgcHJvY2Vzcy4KSWYgYnVmZmVyIGV4aXN0cyBhbmQgYSBwcm9jZXNzIGlz IHJ1bm5pbmcsIGp1c3Qgc3dpdGNoIHRvIGJ1ZmZlcgpgKlNRTConLgoKSW50 ZXJwcmV0ZXIgdXNlZCBjb21lcyBmcm9tIHZhcmlhYmxlIGBzcWwtc3FsaXRl LXByb2dyYW0nLiAgTG9naW4gdXNlcwp0aGUgdmFyaWFibGVzIGBzcWwtdXNl cicsIGBzcWwtcGFzc3dvcmQnLCBgc3FsLWRhdGFiYXNlJywgYW5kCmBzcWwt c2VydmVyJyBhcyBkZWZhdWx0cywgaWYgc2V0LiAgQWRkaXRpb25hbCBjb21t YW5kIGxpbmUgcGFyYW1ldGVycwpjYW4gYmUgc3RvcmVkIGluIHRoZSBsaXN0 IGBzcWwtc3FsaXRlLW9wdGlvbnMnLgoKVGhlIGJ1ZmZlciBpcyBwdXQgaW4g U1FMIGludGVyYWN0aXZlIG1vZGUsIGdpdmluZyBjb21tYW5kcyBmb3Igc2Vu ZGluZwppbnB1dC4gIFNlZSBgc3FsLWludGVyYWN0aXZlLW1vZGUnLgoKVG8g c3BlY2lmeSBhIGNvZGluZyBzeXN0ZW0gZm9yIGNvbnZlcnRpbmcgbm9uLUFT Q0lJIGNoYXJhY3RlcnMKaW4gdGhlIGlucHV0IGFuZCBvdXRwdXQgdG8gdGhl IHByb2Nlc3MsIHVzZSBcXFt1bml2ZXJzYWwtY29kaW5nLXN5c3RlbS1hcmd1 bWVudF0KYmVmb3JlIFxcW3NxbC1zcWxpdGVdLiAgWW91IGNhbiBhbHNvIHNw ZWNpZnkgdGhpcyB3aXRoIFxcW3NldC1idWZmZXItcHJvY2Vzcy1jb2Rpbmct c3lzdGVtXQppbiB0aGUgU1FMIGJ1ZmZlciwgYWZ0ZXIgeW91IHN0YXJ0IHRo ZSBwcm9jZXNzLgpUaGUgZGVmYXVsdCBjb21lcyBmcm9tIGBwcm9jZXNzLWNv ZGluZy1zeXN0ZW0tYWxpc3QnIGFuZApgZGVmYXVsdC1wcm9jZXNzLWNvZGlu Zy1zeXN0ZW0nLgoKXChUeXBlIFxcW2Rlc2NyaWJlLW1vZGVdIGluIHRoZSBT UUwgYnVmZmVyIGZvciBhIGxpc3Qgb2YgY29tbWFuZHMuKSIKICAoaW50ZXJh Y3RpdmUpCiAgKHNxbC1wcm9kdWN0LWludGVyYWN0aXZlICdzcWxpdGUpKQoK KGRlZnVuIHNxbC1jb25uZWN0LXNxbGl0ZSAoKQogICJDcmVhdGUgY29taW50 IGJ1ZmZlciBhbmQgY29ubmVjdCB0byBTUUxpdGUgdXNpbmcgdGhlIGxvZ2lu CnBhcmFtZXRlcnMgYW5kIGNvbW1hbmQgb3B0aW9ucy4iCiAgOzsgUHV0IGFs bCBwYXJhbWV0ZXJzIHRvIHRoZSBwcm9ncmFtIChpZiBkZWZpbmVkKSBpbiBh IGxpc3QgYW5kIGNhbGwKICA7OyBtYWtlLWNvbWludC4KICAobGV0ICgocGFy YW1zKSkKICAgIChpZiAobm90IChzdHJpbmc9ICIiIHNxbC1kYXRhYmFzZSkp Cgkoc2V0cSBwYXJhbXMgKGFwcGVuZCAobGlzdCBzcWwtZGF0YWJhc2UpIHBh cmFtcykpKQogICAgKGlmIChub3QgKG51bGwgc3FsLXNxbGl0ZS1vcHRpb25z KSkKCShzZXRxIHBhcmFtcyAoYXBwZW5kIHNxbC1zcWxpdGUtb3B0aW9ucyBw YXJhbXMpKSkKICAgIChzZXQtYnVmZmVyIChhcHBseSAnbWFrZS1jb21pbnQg IlNRTCIgc3FsLXNxbGl0ZS1wcm9ncmFtCgkJICAgICAgIG5pbCBwYXJhbXMp KSkpCgoMCgo7OzsjIyNhdXRvbG9hZAooZGVmdW4gc3FsLW15c3FsICgpCiAg IlJ1biBteXNxbCBieSBUY1ggYXMgYW4gaW5mZXJpb3IgcHJvY2Vzcy4KCk15 c3FsIHZlcnNpb25zIDMuMjMgYW5kIHVwIGFyZSBmcmVlIHNvZnR3YXJlLgoK SWYgYnVmZmVyIGAqU1FMKicgZXhpc3RzIGJ1dCBubyBwcm9jZXNzIGlzIHJ1 bm5pbmcsIG1ha2UgYSBuZXcgcHJvY2Vzcy4KSWYgYnVmZmVyIGV4aXN0cyBh bmQgYSBwcm9jZXNzIGlzIHJ1bm5pbmcsIGp1c3Qgc3dpdGNoIHRvIGJ1ZmZl cgpgKlNRTConLgoKSW50ZXJwcmV0ZXIgdXNlZCBjb21lcyBmcm9tIHZhcmlh YmxlIGBzcWwtbXlzcWwtcHJvZ3JhbScuICBMb2dpbiB1c2VzCnRoZSB2YXJp YWJsZXMgYHNxbC11c2VyJywgYHNxbC1wYXNzd29yZCcsIGBzcWwtZGF0YWJh c2UnLCBhbmQKYHNxbC1zZXJ2ZXInIGFzIGRlZmF1bHRzLCBpZiBzZXQuICBB ZGRpdGlvbmFsIGNvbW1hbmQgbGluZSBwYXJhbWV0ZXJzCmNhbiBiZSBzdG9y ZWQgaW4gdGhlIGxpc3QgYHNxbC1teXNxbC1vcHRpb25zJy4KClRoZSBidWZm ZXIgaXMgcHV0IGluIFNRTCBpbnRlcmFjdGl2ZSBtb2RlLCBnaXZpbmcgY29t bWFuZHMgZm9yIHNlbmRpbmcKaW5wdXQuICBTZWUgYHNxbC1pbnRlcmFjdGl2 ZS1tb2RlJy4KClRvIHNwZWNpZnkgYSBjb2Rpbmcgc3lzdGVtIGZvciBjb252 ZXJ0aW5nIG5vbi1BU0NJSSBjaGFyYWN0ZXJzCmluIHRoZSBpbnB1dCBhbmQg b3V0cHV0IHRvIHRoZSBwcm9jZXNzLCB1c2UgXFxbdW5pdmVyc2FsLWNvZGlu Zy1zeXN0ZW0tYXJndW1lbnRdCmJlZm9yZSBcXFtzcWwtbXlzcWxdLiAgWW91 IGNhbiBhbHNvIHNwZWNpZnkgdGhpcyB3aXRoIFxcW3NldC1idWZmZXItcHJv Y2Vzcy1jb2Rpbmctc3lzdGVtXQppbiB0aGUgU1FMIGJ1ZmZlciwgYWZ0ZXIg eW91IHN0YXJ0IHRoZSBwcm9jZXNzLgpUaGUgZGVmYXVsdCBjb21lcyBmcm9t IGBwcm9jZXNzLWNvZGluZy1zeXN0ZW0tYWxpc3QnIGFuZApgZGVmYXVsdC1w cm9jZXNzLWNvZGluZy1zeXN0ZW0nLgoKXChUeXBlIFxcW2Rlc2NyaWJlLW1v ZGVdIGluIHRoZSBTUUwgYnVmZmVyIGZvciBhIGxpc3Qgb2YgY29tbWFuZHMu KSIKICAoaW50ZXJhY3RpdmUpCiAgKHNxbC1wcm9kdWN0LWludGVyYWN0aXZl ICdteXNxbCkpCgooZGVmdW4gc3FsLWNvbm5lY3QtbXlzcWwgKCkKICAiQ3Jl YXRlIGNvbWludCBidWZmZXIgYW5kIGNvbm5lY3QgdG8gTXlTUUwgdXNpbmcg dGhlIGxvZ2luCnBhcmFtZXRlcnMgYW5kIGNvbW1hbmQgb3B0aW9ucy4iCiAg OzsgUHV0IGFsbCBwYXJhbWV0ZXJzIHRvIHRoZSBwcm9ncmFtIChpZiBkZWZp bmVkKSBpbiBhIGxpc3QgYW5kIGNhbGwKICA7OyBtYWtlLWNvbWludC4KICAo bGV0ICgocGFyYW1zKSkKICAgIChpZiAobm90IChzdHJpbmc9ICIiIHNxbC1k YXRhYmFzZSkpCgkoc2V0cSBwYXJhbXMgKGFwcGVuZCAobGlzdCBzcWwtZGF0 YWJhc2UpIHBhcmFtcykpKQogICAgKGlmIChub3QgKHN0cmluZz0gIiIgc3Fs LXNlcnZlcikpCgkoc2V0cSBwYXJhbXMgKGFwcGVuZCAobGlzdCAoY29uY2F0 ICItLWhvc3Q9IiBzcWwtc2VydmVyKSkgcGFyYW1zKSkpCiAgICAoaWYgKG5v dCAoc3RyaW5nPSAiIiBzcWwtcGFzc3dvcmQpKQoJKHNldHEgcGFyYW1zIChh cHBlbmQgKGxpc3QgKGNvbmNhdCAiLS1wYXNzd29yZD0iIHNxbC1wYXNzd29y ZCkpIHBhcmFtcykpKQogICAgKGlmIChub3QgKHN0cmluZz0gIiIgc3FsLXVz ZXIpKQoJKHNldHEgcGFyYW1zIChhcHBlbmQgKGxpc3QgKGNvbmNhdCAiLS11 c2VyPSIgc3FsLXVzZXIpKSBwYXJhbXMpKSkKICAgIChpZiAobm90IChudWxs IHNxbC1teXNxbC1vcHRpb25zKSkKCShzZXRxIHBhcmFtcyAoYXBwZW5kIHNx bC1teXNxbC1vcHRpb25zIHBhcmFtcykpKQogICAgKHNldC1idWZmZXIgKGFw cGx5ICdtYWtlLWNvbWludCAiU1FMIiBzcWwtbXlzcWwtcHJvZ3JhbQoJCSAg ICAgICBuaWwgcGFyYW1zKSkpKQoKDAoKOzs7IyMjYXV0b2xvYWQKKGRlZnVu IHNxbC1zb2xpZCAoKQogICJSdW4gc29sc3FsIGJ5IFNvbGlkIGFzIGFuIGlu ZmVyaW9yIHByb2Nlc3MuCgpJZiBidWZmZXIgYCpTUUwqJyBleGlzdHMgYnV0 IG5vIHByb2Nlc3MgaXMgcnVubmluZywgbWFrZSBhIG5ldyBwcm9jZXNzLgpJ ZiBidWZmZXIgZXhpc3RzIGFuZCBhIHByb2Nlc3MgaXMgcnVubmluZywganVz dCBzd2l0Y2ggdG8gYnVmZmVyCmAqU1FMKicuCgpJbnRlcnByZXRlciB1c2Vk IGNvbWVzIGZyb20gdmFyaWFibGUgYHNxbC1zb2xpZC1wcm9ncmFtJy4gIExv Z2luIHVzZXMKdGhlIHZhcmlhYmxlcyBgc3FsLXVzZXInLCBgc3FsLXBhc3N3 b3JkJywgYW5kIGBzcWwtc2VydmVyJyBhcwpkZWZhdWx0cywgaWYgc2V0LgoK VGhlIGJ1ZmZlciBpcyBwdXQgaW4gU1FMIGludGVyYWN0aXZlIG1vZGUsIGdp dmluZyBjb21tYW5kcyBmb3Igc2VuZGluZwppbnB1dC4gIFNlZSBgc3FsLWlu dGVyYWN0aXZlLW1vZGUnLgoKVG8gc3BlY2lmeSBhIGNvZGluZyBzeXN0ZW0g Zm9yIGNvbnZlcnRpbmcgbm9uLUFTQ0lJIGNoYXJhY3RlcnMKaW4gdGhlIGlu cHV0IGFuZCBvdXRwdXQgdG8gdGhlIHByb2Nlc3MsIHVzZSBcXFt1bml2ZXJz YWwtY29kaW5nLXN5c3RlbS1hcmd1bWVudF0KYmVmb3JlIFxcW3NxbC1zb2xp ZF0uICBZb3UgY2FuIGFsc28gc3BlY2lmeSB0aGlzIHdpdGggXFxbc2V0LWJ1 ZmZlci1wcm9jZXNzLWNvZGluZy1zeXN0ZW1dCmluIHRoZSBTUUwgYnVmZmVy LCBhZnRlciB5b3Ugc3RhcnQgdGhlIHByb2Nlc3MuClRoZSBkZWZhdWx0IGNv bWVzIGZyb20gYHByb2Nlc3MtY29kaW5nLXN5c3RlbS1hbGlzdCcgYW5kCmBk ZWZhdWx0LXByb2Nlc3MtY29kaW5nLXN5c3RlbScuCgpcKFR5cGUgXFxbZGVz Y3JpYmUtbW9kZV0gaW4gdGhlIFNRTCBidWZmZXIgZm9yIGEgbGlzdCBvZiBj b21tYW5kcy4pIgogIChpbnRlcmFjdGl2ZSkKICAoc3FsLXByb2R1Y3QtaW50 ZXJhY3RpdmUgJ3NvbGlkKSkKCihkZWZ1biBzcWwtY29ubmVjdC1zb2xpZCAo KQogICJDcmVhdGUgY29taW50IGJ1ZmZlciBhbmQgY29ubmVjdCB0byBTb2xp ZCB1c2luZyB0aGUgbG9naW4KcGFyYW1ldGVycyBhbmQgY29tbWFuZCBvcHRp b25zLiIKICA7OyBQdXQgYWxsIHBhcmFtZXRlcnMgdG8gdGhlIHByb2dyYW0g KGlmIGRlZmluZWQpIGluIGEgbGlzdCBhbmQgY2FsbAogIDs7IG1ha2UtY29t aW50LgogIChsZXQgKChwYXJhbXMpKQogICAgOzsgSXQgb25seSBtYWtlcyBz ZW5zZSBpZiBib3RoIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBhcmUgdGhlcmUu CiAgICAoaWYgKG5vdCAob3IgKHN0cmluZz0gIiIgc3FsLXVzZXIpCgkJIChz dHJpbmc9ICIiIHNxbC1wYXNzd29yZCkpKQoJKHNldHEgcGFyYW1zIChhcHBl bmQgKGxpc3Qgc3FsLXVzZXIgc3FsLXBhc3N3b3JkKSBwYXJhbXMpKSkKICAg IChpZiAobm90IChzdHJpbmc9ICIiIHNxbC1zZXJ2ZXIpKQoJKHNldHEgcGFy YW1zIChhcHBlbmQgKGxpc3Qgc3FsLXNlcnZlcikgcGFyYW1zKSkpCiAgICAo c2V0LWJ1ZmZlciAoYXBwbHkgJ21ha2UtY29taW50ICJTUUwiIHNxbC1zb2xp ZC1wcm9ncmFtCgkJICAgICAgIG5pbCBwYXJhbXMpKSkpCgoMCgo7OzsjIyNh dXRvbG9hZAooZGVmdW4gc3FsLWluZ3JlcyAoKQogICJSdW4gc3FsIGJ5IElu Z3JlcyBhcyBhbiBpbmZlcmlvciBwcm9jZXNzLgoKSWYgYnVmZmVyIGAqU1FM KicgZXhpc3RzIGJ1dCBubyBwcm9jZXNzIGlzIHJ1bm5pbmcsIG1ha2UgYSBu ZXcgcHJvY2Vzcy4KSWYgYnVmZmVyIGV4aXN0cyBhbmQgYSBwcm9jZXNzIGlz IHJ1bm5pbmcsIGp1c3Qgc3dpdGNoIHRvIGJ1ZmZlcgpgKlNRTConLgoKSW50 ZXJwcmV0ZXIgdXNlZCBjb21lcyBmcm9tIHZhcmlhYmxlIGBzcWwtaW5ncmVz LXByb2dyYW0nLiAgTG9naW4gdXNlcwp0aGUgdmFyaWFibGUgYHNxbC1kYXRh YmFzZScgYXMgZGVmYXVsdCwgaWYgc2V0LgoKVGhlIGJ1ZmZlciBpcyBwdXQg aW4gU1FMIGludGVyYWN0aXZlIG1vZGUsIGdpdmluZyBjb21tYW5kcyBmb3Ig c2VuZGluZwppbnB1dC4gIFNlZSBgc3FsLWludGVyYWN0aXZlLW1vZGUnLgoK VG8gc3BlY2lmeSBhIGNvZGluZyBzeXN0ZW0gZm9yIGNvbnZlcnRpbmcgbm9u LUFTQ0lJIGNoYXJhY3RlcnMKaW4gdGhlIGlucHV0IGFuZCBvdXRwdXQgdG8g dGhlIHByb2Nlc3MsIHVzZSBcXFt1bml2ZXJzYWwtY29kaW5nLXN5c3RlbS1h cmd1bWVudF0KYmVmb3JlIFxcW3NxbC1pbmdyZXNdLiAgWW91IGNhbiBhbHNv IHNwZWNpZnkgdGhpcyB3aXRoIFxcW3NldC1idWZmZXItcHJvY2Vzcy1jb2Rp bmctc3lzdGVtXQppbiB0aGUgU1FMIGJ1ZmZlciwgYWZ0ZXIgeW91IHN0YXJ0 IHRoZSBwcm9jZXNzLgpUaGUgZGVmYXVsdCBjb21lcyBmcm9tIGBwcm9jZXNz LWNvZGluZy1zeXN0ZW0tYWxpc3QnIGFuZApgZGVmYXVsdC1wcm9jZXNzLWNv ZGluZy1zeXN0ZW0nLgoKXChUeXBlIFxcW2Rlc2NyaWJlLW1vZGVdIGluIHRo ZSBTUUwgYnVmZmVyIGZvciBhIGxpc3Qgb2YgY29tbWFuZHMuKSIKICAoaW50 ZXJhY3RpdmUpCiAgKHNxbC1wcm9kdWN0LWludGVyYWN0aXZlICdpbmdyZXMp KQoKKGRlZnVuIHNxbC1jb25uZWN0LWluZ3JlcyAoKQogICJDcmVhdGUgY29t aW50IGJ1ZmZlciBhbmQgY29ubmVjdCB0byBJbmdyZXMgdXNpbmcgdGhlIGxv Z2luCnBhcmFtZXRlcnMgYW5kIGNvbW1hbmQgb3B0aW9ucy4iCiAgOzsgdXNl cm5hbWUgYW5kIHBhc3N3b3JkIGFyZSBpZ25vcmVkLgogIChzZXQtYnVmZmVy IChpZiAoc3RyaW5nPSAiIiBzcWwtZGF0YWJhc2UpCiAgICAgICAgICAgICAg ICAgIChtYWtlLWNvbWludCAiU1FMIiBzcWwtaW5ncmVzLXByb2dyYW0gbmls KQogICAgICAgICAgICAgICAgKG1ha2UtY29taW50ICJTUUwiIHNxbC1pbmdy ZXMtcHJvZ3JhbSBuaWwgc3FsLWRhdGFiYXNlKSkpKQoKDAoKOzs7IyMjYXV0 b2xvYWQKKGRlZnVuIHNxbC1tcyAoKQogICJSdW4gb3NxbCBieSBNaWNyb3Nv ZnQgYXMgYW4gaW5mZXJpb3IgcHJvY2Vzcy4KCklmIGJ1ZmZlciBgKlNRTCon IGV4aXN0cyBidXQgbm8gcHJvY2VzcyBpcyBydW5uaW5nLCBtYWtlIGEgbmV3 IHByb2Nlc3MuCklmIGJ1ZmZlciBleGlzdHMgYW5kIGEgcHJvY2VzcyBpcyBy dW5uaW5nLCBqdXN0IHN3aXRjaCB0byBidWZmZXIKYCpTUUwqJy4KCkludGVy cHJldGVyIHVzZWQgY29tZXMgZnJvbSB2YXJpYWJsZSBgc3FsLW1zLXByb2dy YW0nLiAgTG9naW4gdXNlcyB0aGUKdmFyaWFibGVzIGBzcWwtdXNlcicsIGBz cWwtcGFzc3dvcmQnLCBgc3FsLWRhdGFiYXNlJywgYW5kIGBzcWwtc2VydmVy JwphcyBkZWZhdWx0cywgaWYgc2V0LiAgQWRkaXRpb25hbCBjb21tYW5kIGxp bmUgcGFyYW1ldGVycyBjYW4gYmUgc3RvcmVkCmluIHRoZSBsaXN0IGBzcWwt bXMtb3B0aW9ucycuCgpUaGUgYnVmZmVyIGlzIHB1dCBpbiBTUUwgaW50ZXJh Y3RpdmUgbW9kZSwgZ2l2aW5nIGNvbW1hbmRzIGZvciBzZW5kaW5nCmlucHV0 LiAgU2VlIGBzcWwtaW50ZXJhY3RpdmUtbW9kZScuCgpUbyBzcGVjaWZ5IGEg Y29kaW5nIHN5c3RlbSBmb3IgY29udmVydGluZyBub24tQVNDSUkgY2hhcmFj dGVycwppbiB0aGUgaW5wdXQgYW5kIG91dHB1dCB0byB0aGUgcHJvY2Vzcywg dXNlIFxcW3VuaXZlcnNhbC1jb2Rpbmctc3lzdGVtLWFyZ3VtZW50XQpiZWZv cmUgXFxbc3FsLW1zXS4gIFlvdSBjYW4gYWxzbyBzcGVjaWZ5IHRoaXMgd2l0 aCBcXFtzZXQtYnVmZmVyLXByb2Nlc3MtY29kaW5nLXN5c3RlbV0KaW4gdGhl IFNRTCBidWZmZXIsIGFmdGVyIHlvdSBzdGFydCB0aGUgcHJvY2Vzcy4KVGhl IGRlZmF1bHQgY29tZXMgZnJvbSBgcHJvY2Vzcy1jb2Rpbmctc3lzdGVtLWFs aXN0JyBhbmQKYGRlZmF1bHQtcHJvY2Vzcy1jb2Rpbmctc3lzdGVtJy4KClwo VHlwZSBcXFtkZXNjcmliZS1tb2RlXSBpbiB0aGUgU1FMIGJ1ZmZlciBmb3Ig YSBsaXN0IG9mIGNvbW1hbmRzLikiCiAgKGludGVyYWN0aXZlKQogIChzcWwt cHJvZHVjdC1pbnRlcmFjdGl2ZSAnbXMpKQoKKGRlZnVuIHNxbC1jb25uZWN0 LW1zICgpCiAgIkNyZWF0ZSBjb21pbnQgYnVmZmVyIGFuZCBjb25uZWN0IHRv IE1pY3Jvc29mdCB1c2luZyB0aGUgbG9naW4KcGFyYW1ldGVycyBhbmQgY29t bWFuZCBvcHRpb25zLiIKICA7OyBQdXQgYWxsIHBhcmFtZXRlcnMgdG8gdGhl IHByb2dyYW0gKGlmIGRlZmluZWQpIGluIGEgbGlzdCBhbmQgY2FsbAogIDs7 IG1ha2UtY29taW50LgogIChsZXQgKChwYXJhbXMgc3FsLW1zLW9wdGlvbnMp KQogICAgKGlmIChub3QgKHN0cmluZz0gIiIgc3FsLXNlcnZlcikpCiAgICAg ICAgKHNldHEgcGFyYW1zIChhcHBlbmQgKGxpc3QgIi1TIiBzcWwtc2VydmVy KSBwYXJhbXMpKSkKICAgIChpZiAobm90IChzdHJpbmc9ICIiIHNxbC1kYXRh YmFzZSkpCiAgICAgICAgKHNldHEgcGFyYW1zIChhcHBlbmQgKGxpc3QgIi1k IiBzcWwtZGF0YWJhc2UpIHBhcmFtcykpKQogICAgKGlmIChub3QgKHN0cmlu Zz0gIiIgc3FsLXVzZXIpKQoJKHNldHEgcGFyYW1zIChhcHBlbmQgKGxpc3Qg Ii1VIiBzcWwtdXNlcikgcGFyYW1zKSkpCiAgICAoaWYgKG5vdCAoc3RyaW5n PSAiIiBzcWwtcGFzc3dvcmQpKQoJKHNldHEgcGFyYW1zIChhcHBlbmQgKGxp c3QgIi1QIiBzcWwtcGFzc3dvcmQpIHBhcmFtcykpCiAgICAgIChpZiAoc3Ry aW5nPSAiIiBzcWwtdXNlcikKCSAgOzsgaWYgbmVpdGhlciB1c2VyIG5vciBw YXNzd29yZCBpcyBwcm92aWRlZCwgdXNlIHN5c3RlbQoJICA7OyBjcmVkZW50 aWFscy4KCSAgKHNldHEgcGFyYW1zIChhcHBlbmQgKGxpc3QgIi1FIikgcGFy YW1zKSkKCTs7IElmIC1QIGlzIHBhc3NlZCB0byBJU1FMIGFzIHRoZSBsYXN0 IGFyZ3VtZW50IHdpdGhvdXQgYQoJOzsgcGFzc3dvcmQsIGl0J3MgY29uc2lk ZXJlZCBudWxsLgoJKHNldHEgcGFyYW1zIChhcHBlbmQgcGFyYW1zIChsaXN0 ICItUCIpKSkpKQogICAgKHNldC1idWZmZXIgKGFwcGx5ICdtYWtlLWNvbWlu dCAiU1FMIiBzcWwtbXMtcHJvZ3JhbQoJCSAgICAgICBuaWwgcGFyYW1zKSkp KQoKDAoKOzs7IyMjYXV0b2xvYWQKKGRlZnVuIHNxbC1wb3N0Z3JlcyAoKQog ICJSdW4gcHNxbCBieSBQb3N0Z3JlcyBhcyBhbiBpbmZlcmlvciBwcm9jZXNz LgoKSWYgYnVmZmVyIGAqU1FMKicgZXhpc3RzIGJ1dCBubyBwcm9jZXNzIGlz IHJ1bm5pbmcsIG1ha2UgYSBuZXcgcHJvY2Vzcy4KSWYgYnVmZmVyIGV4aXN0 cyBhbmQgYSBwcm9jZXNzIGlzIHJ1bm5pbmcsIGp1c3Qgc3dpdGNoIHRvIGJ1 ZmZlcgpgKlNRTConLgoKSW50ZXJwcmV0ZXIgdXNlZCBjb21lcyBmcm9tIHZh cmlhYmxlIGBzcWwtcG9zdGdyZXMtcHJvZ3JhbScuICBMb2dpbiB1c2VzCnRo ZSB2YXJpYWJsZXMgYHNxbC1kYXRhYmFzZScgYW5kIGBzcWwtc2VydmVyJyBh cyBkZWZhdWx0LCBpZiBzZXQuCkFkZGl0aW9uYWwgY29tbWFuZCBsaW5lIHBh cmFtZXRlcnMgY2FuIGJlIHN0b3JlZCBpbiB0aGUgbGlzdApgc3FsLXBvc3Rn cmVzLW9wdGlvbnMnLgoKVGhlIGJ1ZmZlciBpcyBwdXQgaW4gU1FMIGludGVy YWN0aXZlIG1vZGUsIGdpdmluZyBjb21tYW5kcyBmb3Igc2VuZGluZwppbnB1 dC4gIFNlZSBgc3FsLWludGVyYWN0aXZlLW1vZGUnLgoKVG8gc3BlY2lmeSBh IGNvZGluZyBzeXN0ZW0gZm9yIGNvbnZlcnRpbmcgbm9uLUFTQ0lJIGNoYXJh Y3RlcnMKaW4gdGhlIGlucHV0IGFuZCBvdXRwdXQgdG8gdGhlIHByb2Nlc3Ms IHVzZSBcXFt1bml2ZXJzYWwtY29kaW5nLXN5c3RlbS1hcmd1bWVudF0KYmVm b3JlIFxcW3NxbC1wb3N0Z3Jlc10uICBZb3UgY2FuIGFsc28gc3BlY2lmeSB0 aGlzIHdpdGggXFxbc2V0LWJ1ZmZlci1wcm9jZXNzLWNvZGluZy1zeXN0ZW1d CmluIHRoZSBTUUwgYnVmZmVyLCBhZnRlciB5b3Ugc3RhcnQgdGhlIHByb2Nl c3MuClRoZSBkZWZhdWx0IGNvbWVzIGZyb20gYHByb2Nlc3MtY29kaW5nLXN5 c3RlbS1hbGlzdCcgYW5kCmBkZWZhdWx0LXByb2Nlc3MtY29kaW5nLXN5c3Rl bScuICBJZiB5b3VyIG91dHB1dCBsaW5lcyBlbmQgd2l0aCBeTSwKeW91ciBt aWdodCB0cnkgdW5kZWNpZGVkLWRvcyBhcyBhIGNvZGluZyBzeXN0ZW0uICBJ ZiB0aGlzIGRvZXNuJ3QgaGVscCwKVHJ5IHRvIHNldCBgY29taW50LW91dHB1 dC1maWx0ZXItZnVuY3Rpb25zJyBsaWtlIHRoaXM6CgpcKHNldHEgY29taW50 LW91dHB1dC1maWx0ZXItZnVuY3Rpb25zIChhcHBlbmQgY29taW50LW91dHB1 dC1maWx0ZXItZnVuY3Rpb25zCgkJCQkJICAgICAnKGNvbWludC1zdHJpcC1j dHJsLW0pKSkKClwoVHlwZSBcXFtkZXNjcmliZS1tb2RlXSBpbiB0aGUgU1FM IGJ1ZmZlciBmb3IgYSBsaXN0IG9mIGNvbW1hbmRzLikiCiAgKGludGVyYWN0 aXZlKQogIChzcWwtcHJvZHVjdC1pbnRlcmFjdGl2ZSAncG9zdGdyZXMpKQoK KGRlZnVuIHNxbC1jb25uZWN0LXBvc3RncmVzICgpCiAgIkNyZWF0ZSBjb21p bnQgYnVmZmVyIGFuZCBjb25uZWN0IHRvIFBvc3RncmVzIHVzaW5nIHRoZSBs b2dpbgpwYXJhbWV0ZXJzIGFuZCBjb21tYW5kIG9wdGlvbnMuIgogIDs7IHVz ZXJuYW1lIGFuZCBwYXNzd29yZCBhcmUgaWdub3JlZC4gIE1hcmsgU3Rvc2Jl cmcgc3VnZ2VzdCB0byBhZGQKICA7OyB0aGUgZGF0YWJhc2UgYXQgdGhlIGVu ZC4gIEphc29uIEJlZWdhbiBzdWdnZXN0IHVzaW5nIC0tcHNldCBhbmQKICA7 OyBwYWdlcj1vZmYgaW5zdGVhZCBvZiBcXG98Y2F0LiAgVGhlIGxhdGVyIHdh cyB0aGUgc29sdXRpb24gYnkKICA7OyBHcmVnb3IgWnljaC4gIEphc29uJ3Mg c3VnZ2VzdGlvbiBpcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IKICA7OyBzcWwt cG9zdGdyZXMtb3B0aW9ucy4KICAobGV0ICgocGFyYW1zIHNxbC1wb3N0Z3Jl cy1vcHRpb25zKSkKICAgIChpZiAobm90IChzdHJpbmc9ICIiIHNxbC1kYXRh YmFzZSkpCgkoc2V0cSBwYXJhbXMgKGFwcGVuZCBwYXJhbXMgKGxpc3Qgc3Fs LWRhdGFiYXNlKSkpKQogICAgKGlmIChub3QgKHN0cmluZz0gIiIgc3FsLXNl cnZlcikpCgkoc2V0cSBwYXJhbXMgKGFwcGVuZCAobGlzdCAiLWgiIHNxbC1z ZXJ2ZXIpIHBhcmFtcykpKQogICAgKGlmIChub3QgKHN0cmluZz0gIiIgc3Fs LXVzZXIpKQoJKHNldHEgcGFyYW1zIChhcHBlbmQgKGxpc3QgIi1VIiBzcWwt dXNlcikgcGFyYW1zKSkpCiAgICAoc2V0LWJ1ZmZlciAoYXBwbHkgJ21ha2Ut Y29taW50ICJTUUwiIHNxbC1wb3N0Z3Jlcy1wcm9ncmFtCgkJICAgICAgIG5p bCBwYXJhbXMpKSkpCgoMCgo7OzsjIyNhdXRvbG9hZAooZGVmdW4gc3FsLWlu dGVyYmFzZSAoKQogICJSdW4gaXNxbCBieSBJbnRlcmJhc2UgYXMgYW4gaW5m ZXJpb3IgcHJvY2Vzcy4KCklmIGJ1ZmZlciBgKlNRTConIGV4aXN0cyBidXQg bm8gcHJvY2VzcyBpcyBydW5uaW5nLCBtYWtlIGEgbmV3IHByb2Nlc3MuCklm IGJ1ZmZlciBleGlzdHMgYW5kIGEgcHJvY2VzcyBpcyBydW5uaW5nLCBqdXN0 IHN3aXRjaCB0byBidWZmZXIKYCpTUUwqJy4KCkludGVycHJldGVyIHVzZWQg Y29tZXMgZnJvbSB2YXJpYWJsZSBgc3FsLWludGVyYmFzZS1wcm9ncmFtJy4g IExvZ2luCnVzZXMgdGhlIHZhcmlhYmxlcyBgc3FsLXVzZXInLCBgc3FsLXBh c3N3b3JkJywgYW5kIGBzcWwtZGF0YWJhc2UnIGFzCmRlZmF1bHRzLCBpZiBz ZXQuCgpUaGUgYnVmZmVyIGlzIHB1dCBpbiBTUUwgaW50ZXJhY3RpdmUgbW9k ZSwgZ2l2aW5nIGNvbW1hbmRzIGZvciBzZW5kaW5nCmlucHV0LiAgU2VlIGBz cWwtaW50ZXJhY3RpdmUtbW9kZScuCgpUbyBzcGVjaWZ5IGEgY29kaW5nIHN5 c3RlbSBmb3IgY29udmVydGluZyBub24tQVNDSUkgY2hhcmFjdGVycwppbiB0 aGUgaW5wdXQgYW5kIG91dHB1dCB0byB0aGUgcHJvY2VzcywgdXNlIFxcW3Vu aXZlcnNhbC1jb2Rpbmctc3lzdGVtLWFyZ3VtZW50XQpiZWZvcmUgXFxbc3Fs LWludGVyYmFzZV0uICBZb3UgY2FuIGFsc28gc3BlY2lmeSB0aGlzIHdpdGgg XFxbc2V0LWJ1ZmZlci1wcm9jZXNzLWNvZGluZy1zeXN0ZW1dCmluIHRoZSBT UUwgYnVmZmVyLCBhZnRlciB5b3Ugc3RhcnQgdGhlIHByb2Nlc3MuClRoZSBk ZWZhdWx0IGNvbWVzIGZyb20gYHByb2Nlc3MtY29kaW5nLXN5c3RlbS1hbGlz dCcgYW5kCmBkZWZhdWx0LXByb2Nlc3MtY29kaW5nLXN5c3RlbScuCgpcKFR5 cGUgXFxbZGVzY3JpYmUtbW9kZV0gaW4gdGhlIFNRTCBidWZmZXIgZm9yIGEg bGlzdCBvZiBjb21tYW5kcy4pIgogIChpbnRlcmFjdGl2ZSkKICAoc3FsLXBy b2R1Y3QtaW50ZXJhY3RpdmUgJ2ludGVyYmFzZSkpCgooZGVmdW4gc3FsLWNv bm5lY3QtaW50ZXJiYXNlICgpCiAgIkNyZWF0ZSBjb21pbnQgYnVmZmVyIGFu ZCBjb25uZWN0IHRvIEludGVyYmFzZSB1c2luZyB0aGUgbG9naW4KcGFyYW1l dGVycyBhbmQgY29tbWFuZCBvcHRpb25zLiIKICA7OyBQdXQgYWxsIHBhcmFt ZXRlcnMgdG8gdGhlIHByb2dyYW0gKGlmIGRlZmluZWQpIGluIGEgbGlzdCBh bmQgY2FsbAogIDs7IG1ha2UtY29taW50LgogIChsZXQgKChwYXJhbXMgc3Fs LWludGVyYmFzZS1vcHRpb25zKSkKICAgIChpZiAobm90IChzdHJpbmc9ICIi IHNxbC11c2VyKSkKCShzZXRxIHBhcmFtcyAoYXBwZW5kIChsaXN0ICItdSIg c3FsLXVzZXIpIHBhcmFtcykpKQogICAgKGlmIChub3QgKHN0cmluZz0gIiIg c3FsLXBhc3N3b3JkKSkKCShzZXRxIHBhcmFtcyAoYXBwZW5kIChsaXN0ICIt cCIgc3FsLXBhc3N3b3JkKSBwYXJhbXMpKSkKICAgIChpZiAobm90IChzdHJp bmc9ICIiIHNxbC1kYXRhYmFzZSkpCiAgICAgICAgKHNldHEgcGFyYW1zIChj b25zIHNxbC1kYXRhYmFzZSBwYXJhbXMpKSkgOyBhZGQgdG8gdGhlIGZyb250 IQogICAgKHNldC1idWZmZXIgKGFwcGx5ICdtYWtlLWNvbWludCAiU1FMIiBz cWwtaW50ZXJiYXNlLXByb2dyYW0KCQkgICAgICAgbmlsIHBhcmFtcykpKSkK CgwKCjs7OyMjI2F1dG9sb2FkCihkZWZ1biBzcWwtZGIyICgpCiAgIlJ1biBk YjIgYnkgSUJNIGFzIGFuIGluZmVyaW9yIHByb2Nlc3MuCgpJZiBidWZmZXIg YCpTUUwqJyBleGlzdHMgYnV0IG5vIHByb2Nlc3MgaXMgcnVubmluZywgbWFr ZSBhIG5ldyBwcm9jZXNzLgpJZiBidWZmZXIgZXhpc3RzIGFuZCBhIHByb2Nl c3MgaXMgcnVubmluZywganVzdCBzd2l0Y2ggdG8gYnVmZmVyCmAqU1FMKicu CgpJbnRlcnByZXRlciB1c2VkIGNvbWVzIGZyb20gdmFyaWFibGUgYHNxbC1k YjItcHJvZ3JhbScuICBUaGVyZSBpcyBub3QKYXV0b21hdGljIGxvZ2luLgoK VGhlIGJ1ZmZlciBpcyBwdXQgaW4gU1FMIGludGVyYWN0aXZlIG1vZGUsIGdp dmluZyBjb21tYW5kcyBmb3Igc2VuZGluZwppbnB1dC4gIFNlZSBgc3FsLWlu dGVyYWN0aXZlLW1vZGUnLgoKSWYgeW91IHVzZSBcXFtzcWwtYWNjdW11bGF0 ZS1hbmQtaW5kZW50XSB0byBzZW5kIG11bHRpbGluZSBjb21tYW5kcyB0bwpk YjIsIG5ld2xpbmVzIHdpbGwgYmUgZXNjYXBlZCBpZiBuZWNlc3NhcnkuICBJ ZiB5b3UgZG9uJ3Qgd2FudCB0aGF0LCBzZXQKYGNvbWludC1pbnB1dC1zZW5k ZXInIGJhY2sgdG8gYGNvbWludC1zaW1wbGUtc2VuZCcgYnkgd3JpdGluZyBh biBhZnRlcgphZHZpY2UuICBTZWUgdGhlIGVsaXNwIG1hbnVhbCBmb3IgbW9y ZSBpbmZvcm1hdGlvbi4KClRvIHNwZWNpZnkgYSBjb2Rpbmcgc3lzdGVtIGZv ciBjb252ZXJ0aW5nIG5vbi1BU0NJSSBjaGFyYWN0ZXJzCmluIHRoZSBpbnB1 dCBhbmQgb3V0cHV0IHRvIHRoZSBwcm9jZXNzLCB1c2UgXFxbdW5pdmVyc2Fs LWNvZGluZy1zeXN0ZW0tYXJndW1lbnRdCmJlZm9yZSBcXFtzcWwtZGIyXS4g IFlvdSBjYW4gYWxzbyBzcGVjaWZ5IHRoaXMgd2l0aCBcXFtzZXQtYnVmZmVy LXByb2Nlc3MtY29kaW5nLXN5c3RlbV0KaW4gdGhlIFNRTCBidWZmZXIsIGFm dGVyIHlvdSBzdGFydCB0aGUgcHJvY2Vzcy4KVGhlIGRlZmF1bHQgY29tZXMg ZnJvbSBgcHJvY2Vzcy1jb2Rpbmctc3lzdGVtLWFsaXN0JyBhbmQKYGRlZmF1 bHQtcHJvY2Vzcy1jb2Rpbmctc3lzdGVtJy4KClwoVHlwZSBcXFtkZXNjcmli ZS1tb2RlXSBpbiB0aGUgU1FMIGJ1ZmZlciBmb3IgYSBsaXN0IG9mIGNvbW1h bmRzLikiCiAgKGludGVyYWN0aXZlKQogIChzcWwtcHJvZHVjdC1pbnRlcmFj dGl2ZSAnZGIyKSkKCihkZWZ1biBzcWwtY29ubmVjdC1kYjIgKCkKICAiQ3Jl YXRlIGNvbWludCBidWZmZXIgYW5kIGNvbm5lY3QgdG8gREIyIHVzaW5nIHRo ZSBsb2dpbgpwYXJhbWV0ZXJzIGFuZCBjb21tYW5kIG9wdGlvbnMuIgogIDs7 IFB1dCBhbGwgcGFyYW1ldGVycyB0byB0aGUgcHJvZ3JhbSAoaWYgZGVmaW5l ZCkgaW4gYSBsaXN0IGFuZCBjYWxsCiAgOzsgbWFrZS1jb21pbnQuCiAgKHNl dC1idWZmZXIgKGFwcGx5ICdtYWtlLWNvbWludCAiU1FMIiBzcWwtZGIyLXBy b2dyYW0KCQkgICAgIG5pbCBzcWwtZGIyLW9wdGlvbnMpKQogIDs7IFByb3Bl cmx5IGVzY2FwZSBuZXdsaW5lcyB3aGVuIERCMiBpcyBpbnRlcmFjdGl2ZS4K ICAoc2V0cSBjb21pbnQtaW5wdXQtc2VuZGVyICdzcWwtZXNjYXBlLW5ld2xp bmVzLWFuZC1zZW5kKSkKCjs7OyMjI2F1dG9sb2FkCihkZWZ1biBzcWwtbGlu dGVyICgpCiAgIlJ1biBpbmwgYnkgUkVMRVggYXMgYW4gaW5mZXJpb3IgcHJv Y2Vzcy4KCklmIGJ1ZmZlciBgKlNRTConIGV4aXN0cyBidXQgbm8gcHJvY2Vz cyBpcyBydW5uaW5nLCBtYWtlIGEgbmV3IHByb2Nlc3MuCklmIGJ1ZmZlciBl eGlzdHMgYW5kIGEgcHJvY2VzcyBpcyBydW5uaW5nLCBqdXN0IHN3aXRjaCB0 byBidWZmZXIKYCpTUUwqJy4KCkludGVycHJldGVyIHVzZWQgY29tZXMgZnJv bSB2YXJpYWJsZSBgc3FsLWxpbnRlci1wcm9ncmFtJyAtIHVzdWFsbHkgYGlu bCcuCkxvZ2luIHVzZXMgdGhlIHZhcmlhYmxlcyBgc3FsLXVzZXInLCBgc3Fs LXBhc3N3b3JkJywgYHNxbC1kYXRhYmFzZScgYW5kCmBzcWwtc2VydmVyJyBh cyBkZWZhdWx0cywgaWYgc2V0LiAgQWRkaXRpb25hbCBjb21tYW5kIGxpbmUg cGFyYW1ldGVycwpjYW4gYmUgc3RvcmVkIGluIHRoZSBsaXN0IGBzcWwtbGlu dGVyLW9wdGlvbnMnLiBSdW4gaW5sIC1oIHRvIGdldCBoZWxwIG9uCnBhcmFt ZXRlcnMuCgpgc3FsLWRhdGFiYXNlJyBpcyB1c2VkIHRvIHNldCB0aGUgTElO VEVSX01CWCBlbnZpcm9ubWVudCB2YXJpYWJsZSBmb3IKbG9jYWwgY29ubmVj dGlvbnMsIGBzcWwtc2VydmVyJyByZWZlcnMgdG8gdGhlIHNlcnZlciBuYW1l IGZyb20gdGhlCmBub2RldGFiJyBmaWxlIGZvciB0aGUgbmV0d29yayBjb25u ZWN0aW9uIChkYmNfdGNwIG9yIGZyaWVuZHMgbXVzdCBydW4KZm9yIHRoaXMg dG8gd29yaykuICBJZiBgc3FsLXBhc3N3b3JkJyBpcyBhbiBlbXB0eSBzdHJp bmcsIGlubCB3aWxsIHVzZQphbiBlbXB0eSBwYXNzd29yZC4KClRoZSBidWZm ZXIgaXMgcHV0IGluIFNRTCBpbnRlcmFjdGl2ZSBtb2RlLCBnaXZpbmcgY29t bWFuZHMgZm9yIHNlbmRpbmcKaW5wdXQuICBTZWUgYHNxbC1pbnRlcmFjdGl2 ZS1tb2RlJy4KClwoVHlwZSBcXFtkZXNjcmliZS1tb2RlXSBpbiB0aGUgU1FM IGJ1ZmZlciBmb3IgYSBsaXN0IG9mIGNvbW1hbmRzLikiCiAgKGludGVyYWN0 aXZlKQogIChzcWwtcHJvZHVjdC1pbnRlcmFjdGl2ZSAnbGludGVyKSkKCihk ZWZ1biBzcWwtY29ubmVjdC1saW50ZXIgKCkKICAiQ3JlYXRlIGNvbWludCBi dWZmZXIgYW5kIGNvbm5lY3QgdG8gTGludGVyIHVzaW5nIHRoZSBsb2dpbgpw YXJhbWV0ZXJzIGFuZCBjb21tYW5kIG9wdGlvbnMuIgogIDs7IFB1dCBhbGwg cGFyYW1ldGVycyB0byB0aGUgcHJvZ3JhbSAoaWYgZGVmaW5lZCkgaW4gYSBs aXN0IGFuZCBjYWxsCiAgOzsgbWFrZS1jb21pbnQuCiAgKGxldCAoKHBhcmFt cyBzcWwtbGludGVyLW9wdGlvbnMpIChsb2dpbiBuaWwpIChvbGQtbWJ4IChn ZXRlbnYgIkxJTlRFUl9NQlgiKSkpCiAgICAoaWYgKG5vdCAoc3RyaW5nPSAi IiBzcWwtdXNlcikpCgkoc2V0cSBsb2dpbiAoY29uY2F0IHNxbC11c2VyICIv IiBzcWwtcGFzc3dvcmQpKSkKICAgIChzZXRxIHBhcmFtcyAoYXBwZW5kIChs aXN0ICItdSIgbG9naW4pIHBhcmFtcykpCiAgICAoaWYgKG5vdCAoc3RyaW5n PSAiIiBzcWwtc2VydmVyKSkKCShzZXRxIHBhcmFtcyAoYXBwZW5kIChsaXN0 ICItbiIgc3FsLXNlcnZlcikgcGFyYW1zKSkpCiAgICAoaWYgKHN0cmluZz0g IiIgc3FsLWRhdGFiYXNlKQoJKHNldGVudiAiTElOVEVSX01CWCIgbmlsKQog ICAgICAoc2V0ZW52ICJMSU5URVJfTUJYIiBzcWwtZGF0YWJhc2UpKQogICAg KHNldC1idWZmZXIgKGFwcGx5ICdtYWtlLWNvbWludCAiU1FMIiBzcWwtbGlu dGVyLXByb2dyYW0gbmlsCgkJICAgICAgIHBhcmFtcykpCiAgICAoc2V0ZW52 ICJMSU5URVJfTUJYIiBvbGQtbWJ4KSkpCgoMCgoocHJvdmlkZSAnc3FsKQoK OzsgYXJjaC10YWc6IDdlMWZhMWM0LTljYTItNDAyZS04N2QyLTgzYTVlY2Ni N2FjMwo7Ozsgc3FsLmVsIGVuZHMgaGVyZQo= --0-999822227-1280363694=:3928--