From xemacs-m  Mon Mar  3 22:42:00 1997
Received: from mailhost.lanl.gov (mailhost.lanl.gov [128.165.3.12])
	by xemacs.org (8.8.5/8.8.5) with ESMTP id WAA25495
	for <xemacs-beta@xemacs.org>; Mon, 3 Mar 1997 22:41:58 -0600 (CST)
Received: from branagh.ta52.lanl.gov (branagh.ta52.lanl.gov [128.165.144.9]) by mailhost.lanl.gov (8.8.5/8.8.3) with SMTP id VAA02335 for <xemacs-beta@xemacs.org>; Mon, 3 Mar 1997 21:41:58 -0700 (MST)
Received: by branagh.ta52.lanl.gov (SMI-8.6/SMI-SVR4)
	id VAA05878; Mon, 3 Mar 1997 21:37:46 -0700
Date: Mon, 3 Mar 1997 21:37:46 -0700
Message-Id: <199703040437.VAA05878@branagh.ta52.lanl.gov>
From: "John A. Turner" <turner@branagh.ta52.lanl.gov>
MIME-Version: 1.0
Content-Type: multipart/mixed;
	boundary="ldeo4abDjgMW0cvR7wEcF3/UgaEyFnghCaC7bx/d"
Content-Transfer-Encoding: 7bit
To: xemacs-beta@xemacs.org
Subject: package request from real user
Reply-To: turner@lanl.gov


--ldeo4abDjgMW0cvR7wEcF3/UgaEyFnghCaC7bx/d
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Saw the attached post to c.e.x. about search-menu.el.  It's one I was
going to mention back during the package adding frenzy, because some
folks here like it, but I decided not to because I do recall some
problems with 19.14 that I never quite got ironed out.  

But since an honest-to-goodness user asked about it, I decided to try
it again with b96.  Seems to work fine.

The version I have is attached.  It fits the requirements of being
pretty small and in a single file.  I think it's pretty nifty, and
people used to this sort of thing seem to like it, but it's up to you
whether to add it, of course.

-- 
John Turner
http://www.lanl.gov/home/turner

P.S.  Shouldn't C-c C-w put the .sig *before* attachments?  Is there
any way to force it to?  Is there any reason not to?


--ldeo4abDjgMW0cvR7wEcF3/UgaEyFnghCaC7bx/d
Content-Type: multipart/digest;
	boundary="+CyOy2/+Q6FRriLee5V27BjdaLg08OfP1tawUPrc"
Content-Transfer-Encoding: 7bit

This is a forwarded message, MIME encapsulation.

--+CyOy2/+Q6FRriLee5V27BjdaLg08OfP1tawUPrc

x-gateway: relay2.UU.NET from xemacs to comp.emacs.xemacs; Mon, 3 Mar 1997 17:23:09 EST
Message-ID: <199703032221.RAA04351@gbrpbm.msd.ray.com>
Newsgroups: comp.emacs.xemacs
Path: newshost.lanl.gov!ncar!csn!nntp-xfer-1.csn.net!su-news-hub1.bbnplanet.com!news.bbnplanet.com!newsxfer3.itd.umich.edu!newsxfer.itd.umich.edu!uunet!in3.uu.net!relay2.uu.net!wendy-fate.uu.net!xemacs
Lines: 42
From: jom@gbr.msd.ray.com (John Mickiewicz {68119})
Sender: xemacs-request@xemacs.org
Subject: Re: New Xemacs search/replace command
Date: Mon, 3 Mar 1997 17:21:19 -0500

Jim,

   On Jan. 27, 1997 you sent me the search-menu.el file.  I got it to be
invoked OK and it works pretty well.  But if one cuts and paste many different
patterns, the pop-up search window eventually becomes "read only" and won't
let you use the pattern line ANYMORE !!!  Even if you just try to type in a new
pattern.  Have you experienced this problem at all and if so, do you have a fix
for it?  I have to exit XEmacs and bring it up again to clear the problem.
The actual error message is:
		"Buffer is read-only: #<buffer "*sm control*"> 

   I did successfully add this selection to the "Edit" pulldown and 
created a separate pushbutton on the menu bar.  But I haven't figured out how
to create a "toolbar" selection.
  
   Also can the search-menu.el file be modified to highlight the whole pattern
instead of just the first character of the pattern when it finds it?


Question for Steve L. Baur: Is this capability included in 19.15? - I hope so !


Note:  I'm running XEmacs 19.14 on a SPARC20 running SunOS 4.1.4B.


Thanks,

John 
                                    ***
                                   (0 0)
---------------------------oOO------(_)----------------------------------------
>   John E. Mickiewicz   -   S3SJ2       Mail Stop S3SG10 @ Raytheon Bedford  <
>   E-mail: jom@gbr.msd.ray.com          Computing Devices International      <
>   Office: (617) 274-3410               One Maguire Road                     <
>   FAX:    (617) 274-2866               Lexington, MA  02173                 <
-------------------------------------------------------------------------------
"Views expressed are mine and do not necessarily reflect those of my employer!"
---------------------------------------------oOO------------------------------- 
                                   || ||
                                  ooO Ooo



--+CyOy2/+Q6FRriLee5V27BjdaLg08OfP1tawUPrc--

--ldeo4abDjgMW0cvR7wEcF3/UgaEyFnghCaC7bx/d
Content-Type: application/octet-stream
Content-Description: search-menu.el
Content-Disposition: attachment;
	filename="search-menu.el"
Content-Transfer-Encoding: base64

Ozs7IHNlYXJjaC1tZW51LmVsIC0tLSBwb3AgdXAgYSB3aW5kb3cgZm9yIGNvbnRyb2wgc2Vh
cmNoIGFuZCByZXBsYWNlIC0tLSBGU0YgRW1hY3MgMTk6Cgo7OyBBdXRob3I6IEJyeWFuIE0u
IEtyYW1lciAgIDxrcmFtZXJAYWkudG9yb250by5lZHU+Cjs7IENyZWF0ZWQ6IEFwcmlsIDIy
LCAxOTk0Cjs7IFZlcnNpb246IGZvciBYRW1hY3MgMTkuMTQsIE5vdi4gNiwgMTk5Ngo7OyBL
ZXl3b3Jkczogc2VhcmNoLCByZXBsYWNlLCBmb3JtCgoKOzsgVGhpcyBmaWxlIGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKOzsgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkKOzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZl
cnNpb24gMiwgb3IgKGF0IHlvdXIgb3B0aW9uKQo7OyBhbnkgbGF0ZXIgdmVyc2lvbi4KCjs7
IFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAo7OyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgo7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCjs7IEdOVSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgo7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQo7OyBhbG9uZyB3aXRo
IEdOVSBFbWFjczsgc2VlIHRoZSBmaWxlIENPUFlJTkcuICBJZiBub3QsIHdyaXRlIHRvCjs7
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdl
LCBNQSAwMjEzOSwgVVNBLgoKOzs7IENvbW1lbnRhcnk6Cjs7ICAtLS0tLS0tLS0tCjs7Cjs7
ICBUaGlzIGlzIHVzZWZ1bCBmb3IgY2VydGFpbiBraW5kcyBvZiBlZGl0aW5nLiBpLXNlYXJj
aCBpcyB1c3VhbGx5IG1vcmUKOzsgIGFwcHJvcHJpYXRlIGZvciBzZWFyY2hpbmcuCjs7Cjs7
ICB1c2FnZTogKGxvYWQtbGlicmFyeSAic2VhcmNoLW1lbnUiKQo7OyAgICAgICAgIE0teCBz
ZWFyY2gtbWVudQo7Owo7OyAgICAoaXQncyBtb3JlIGNvbnZlbmllbnQgZnJvbSBhIG1lbnUg
b3IgYSBrZXkgc2VxdWVuY2UpCjs7Cjs7IE9wdGlvbmFsIEN1c3RvbWl6YXRpb246Cjs7Cjs7
ICAgIFNwZWNpZnkgdGhlIHNpemUgYW5kIGxvY2F0aW9uIG9mIHRoZSBjb250cm9sIG1lbnUg
Ynkgc3BlY2lmeWluZwo7OyAgICBmcmFtZSBwYXJhbWV0ZXJzIGluIHNlYXJjaG0tZnJhbWUt
cGFyYW1ldGVycwo7Owo7OyAgICBTcGVjaWZ5IHRoZSBjb2xvdXJzIGFuZCBmb250cyB1c2lu
ZyB0aGUgdmFyaWFibGVzOgo7Owo7OyAgICAJc2VhcmNobS1idXR0b24tZmFjZSAtIGZvbnQs
IGZvcmVncm91bmQsIGFuZCBiYWNrZ3JvdW5kIGZvcgo7OyAgICAJICAgICAgICAgICAgCSAg
ICAJYnV0dG9ucwo7OyAgICAJc2VhcmNobS1idXR0b24taGlnaGxpZ2h0IC0gZm9udCwgZm9y
ZWdyb3VuZCwgYW5kIGJhY2tncm91bmQgZm9yCjs7ICAgIAkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYnV0dG9ucyB3aGVuIHVuZGVyIG1vdXNlCjs7ICAgIAlzZWFyY2htLWJ1ZmZl
ci1uYW1lLWZhY2UgLSBmb250LCBmb3JlZ3JvdW5kIGFuZCBiYWNrZ3JvdW5kIGZvciB0YXJn
ZXQgYnVmZmVyCjs7ICAgIAkgICAgCSAgICAJICAgIAkgICBuYW1lCjs7ICAgIAlzZWFyY2ht
LWZpZWxkLWZhY2UgLSBmb250LCBmb3JlZ3JvdW5kLCBhbmQgYmFja2dyb3VuZCB1c2VkIGZv
ciBmaWVsZHMKOzsgICAgCXNlYXJjaG0tZmllbGQtbGFiZWwtZmFjZSAtIGZvbnQsIGZvcmVn
cm91bmQsIGFuZCBiYWNrZ3JvdW5kIHVzZWQgZm9yIGZpZWxkIGxhYmVscwo7Owo7OyAgICBl
ZzogKHNldHEgc2VhcmNobS1idXR0b24tZmFjZSAnKCI5eDE1IiAid2hpdGUiICJibHVlIikp
Cjs7Cjs7ICAgIFNldHRpbmcgdGhlc2UgdG8gbmlsIGlzIHBvc3NpYmxlIGFuZCB2ZXJ5IHNh
ZmUgKHVzZXMgeW91ciBlbWFjcycgZGVmYXVsdHMuKQo7Owo7Owo7OyAgICBJbiBhZGRpdGlv
bgo7OyAgICAgIHNlYXJjaG0tYnV0dG9uLWZvbnQgc2V0IHRvIGEgZm9udCBuYW1lIHdpbGwg
Y2hhbmdlIG9ubHkgdGhlIGJ1dHRvbiBmb250cwo7Owo7OyAgc2VhcmNobS1hdXRvLXNpemUg
LSBpZiBzZXQgdG8gbm9uLW5pbCwgdGhlIGNvbnRyb2wgYnVmZmVyIHdpbGwgc2l6ZSBpdHNl
bGYgdG8gdGhlCjs7ICAJICAgIAkgICAgCWJ1ZmZlciBzaXplIGF0IGVhY2ggY2FsbCAoaWdu
b3JpbmcgdGhlIGhlaWdodCBhbmQgd2lkdGgKOzsgIAkgICAgCSAgICAJZnJhbWUgcGFyYW1l
dGVycykKOzsKOzsgIFRPIENIQU5HRSBCVUZGRVIgQkVJTkcgU0VBUkNIRUQsIGludm9rZSBN
LXggc2VhcmNoLW1lbnUgZnJvbSB0aGUgZGVzaXJlZCBidWZmZXIKOzsKOzsgIGJ1dHRvbnMg
YXJlIGFjdGl2YXRlZCB1c2luZyB0aGUgbWlkZGxlIG1vdXNlIGJ1dHRvbgo7Owo7OyAgdHlw
ZSBhIHJlZ2V4cCBiZXNpZGUgcGF0dGVybjosIHRoZSBjbGljayBvbiAiU2VhcmNoIiBhbmQg
dGhlIGV4cGVjdGVkIHdpbGwgb2NjdXI7Cjs7ICAgICAgICBkaXR0byAiU2VhcmNoIEJhY2t3
YXJkIgo7OyAgIlJlcGxhY2UiIHdpbGwgcmVwbGFjZSB0aGUgcGF0dGVybiB3aXRoIHRoZSAi
U3Vic3RpdHV0aW9uOiIgaWYgdGhlIGN1cnJlbnQKOzsgICAgICAgIGJ1ZmZlciBsb2NhdGlv
biBpcyBsb29raW5nLWF0IHRoZSBwYXR0ZXJuLgo7OyAgIlJlcGxhY2UgYW5kIFNlYXJjaCIg
d2lsbCBmb2xsb3cgdGhlIHJlcGxhY2VtZW50IHdpdGggYSBzZWFyY2gKOzsgICJSZXBsYWNl
IEFsbCIgd2lsbCByZXBsYWNlIGFsbCBzdWJzZXF1ZW50IG1hdGNoZXMgYSBsYSByZXBsYWNl
LXJlZ2V4cAo7OyAgIlVuZG8iIHVuZG9lcyB0aGUgbGFzdCBjaGFuZ2UKOzsgICJFeGVjdXRl
IEVtYWNzLUxpc3AiIGludGVycHJldHMgdGhlIGNvbnRlbnRzIG9mIG9mIHRoZSBFbWFjcy1M
aXNwOiBmaWVsZCBhcyBhbiBzLWV4cHJlc3Npb24KOzsgICAgICBhbmQgZXZhbHVhdGVzIGl0
LiBQcmVzdW1hYmx5IGl0IGRvZXMgc29tZXRoaW5nIGRpZmZlcmVudCBhdCBkaWZmZXJlbnQg
bG9jYXRpb25zCjs7ICAgICAgaW4gdGhlIHRhcmdldCBidWZmZXIKOzsgICJHcmVwIiBpbnZv
a2VzIGdyZXAgd2l0aCBQYXR0ZXJuOiBvbiBlaXRoZXIgdGhlIGZpbGUgb2YgdGhlIHRhcmdl
dCBidWZmZXIgKGRlZmF1bHQpIG9yIHRoZQo7OyAgICAgIHNwZWNpZmllZCBmaWxlcy4KOzsK
OzsKOzsgICBDSEFOR0lORyBUSEUgTEFZT1VUIE9GIFRIRSBDT05UUk9MIEJVRkZFUgo7Owo7
OyAgIFRoZSB2YXJpYWJsZSBzZWFyY2htLWNvbW1hbmRzIGRlc2NyaWJlcyB0aGUgbGF5b3V0
LiBUaGUgdmFsdWUgaXMgYSBsaXN0IG9mCjs7ICAgc3BlY2lmaWNhdGlvbnMuIEVhY2ggc3Bl
Y2lmaWNhdGlvbiBpcyBhIGxpc3QuIFRoZSBjYXIgb2YgdGhpcyBsaXN0IGlzIHNvbWUKOzsg
ICB0ZXh0IHRoYXQgaXMgaW5zZXJ0ZWQgaW50byB0aGUgYnVmZmVyLiBCYXNpY2FsbHkgdGhl
IGJ1ZmZlciBpcyBmaWxsZWQgYnkKOzsgICBzZXF1ZW50aWFsbHkgaW5zZXJ0aW5nIHRoZSBj
YXIgb2YgZWFjaCBzcGVjaWZpY2F0aW9uLgo7Owo7OyAgIFRoZSBjZHIgb2YgYSBzcGVjaWZp
Y2F0aW9uIGlzIGEgbGlzdCBvZiBhbHRlcm5hdGluZyBrZXl3b3JkcyBhbmQgdmFsdWVzCjs7
ICAgbGlrZSBhIHBsaXN0LiBUaGUga2V5d29yZHMgc3BlY2lmeSBwcm9wZXJ0aWVzIG9mIHRo
ZSByZWdpb24gb2YgdGV4dCBzcGVjaWZpZWQKOzsgICBieSB0aGUgY2FyIG9mIHRoZSBzcGVj
aWZpY2F0aW9uLiBUaGUga2V5d29yZHMgYXJlOgo7Owo7OyAgIAlmYWNlIC0gc2V0IHRoZSBm
YWNlIG9mIHRoZSBpbnNlcnRlZCB0ZXh0IHRvIHRoZSB2YWx1ZQo7OyAgIAloaWdobGlnaHQg
LSBzZXQgdGhlIGhpZ2hsaWdodCBvZiB0aGUgaW5zZXJ0ZWQgdGV4dCB0byB0aGUgdmFsdWUK
OzsgICAJZmllbGQgLSB0aGUgaW5zZXJ0ZWQgdGV4dCBpcyBpbnRlcnByZXRlZCBhcyBhIGZp
ZWxkIHdpdGgga2V5IGVxIHRvIHRoZSB2YWx1ZQo7OyAgIAkgICAgICAgIEF0IHRoZSBtb21l
bnQgZmllbGRzIHdvcmsgYmVzdCBpZiB0aGUgdGV4dCBpcyAiICBcbiIgYW5kIHRoZSBmb2xs
b3dpbmcKOzsgICAJICAgICAgICBsaW5lIGNvbnRhaW5zIGF0IGxlYXN0IG9uZSBjaGFyYWN0
ZXIuCjs7ICAgCWNvbW1hbmQgLSBpZiBzZWFyY2htLXJlc3BvbmQtdG8tY2xpY2sgaXMgaW52
b2tlZCBmcm9tIGEgbW91c2UgY2xpY2sgb3Zlcgo7OyAgIAkgICAgCSAgdGhpcyBwaWVjZSBv
ZiB0ZXh0LCB0aGUgYWN0aW9uIHNwZWNpZmllZCBieSB0aGUgdmFsdWUgaXMgZXZhbHVhdGVk
Lgo7OyAgIAkgICAgCSAgVGhlIHZhbHVlIGlzIGEgbGlzdCBvZiB0aGUgZm9ybSAoY29tbWFu
ZCBhcmcgYXJnIGFyZyAuLi4pLgo7OyAgIAkgICAgCSAgVGhlIGFyZ3VtZW50cyBhcmUgaW50
ZXJwcmV0ZWQgYXMgZm9sbG93cyAtIGlmIHRoZXJlIGlzIGEgZmllbGQgaW4gdGhlCjs7ICAg
CSAgICAJICBjb250cm9sIGJ1ZmZlciB3aXRoIGtleSBlcSB0byB0aGUgYXJnLCB0aGUgdGV4
dCBpbiB0aGF0IGZpZWxkIGlzCjs7ICAgCSAgICAJICBzdWJzdGl0dXRlZCBmb3IgYXJnLiBP
dGhlcndpc2UgYXJnIGlzIHBhc3NlZCBhcyBpcy4gVGhlIGNvbW1hbmQgaXMgZXZhbHVhdGVk
Cjs7ICAgCSAgICAJICBpbiB0aGUgY29udGV4dCBvZiB0aGUgYnVmZmVyIGJlaW5nIHNlYXJj
aGVkLgo7OyAgIAlsb2NhbC1jb21tYW5kIC0gbGlrZSBjb21tYW5kIGV4Y2VwdCB0aGF0IHRo
ZSBjb21tYW5kIGlzIGludGVycHJldGVkIGluCjs7ICAgCSAgICAJICAgdGhlIGNvbnRleHQg
b2YgdGhlIHNlYXJjaCBjb250cm9sIGJ1ZmZlcgo7Owo7OyAgIFRoZSB3aG9sZSBidWZmZXIs
IGV4Y2VwdCB0aGUgZmllbGRzLCBpcyBtYWRlIHJlYWQgb25seS4KOzsKOzsgICAoc2VhcmNo
bS1zZXR1cC1idWZmZXIgPGJ1ZmZlcj4gPHNwZWM+KSBpcyBhIGZ1bmN0aW9uIHRoYXQgY2Fu
IGJlIHVzZWQgdG8gaGVscAo7OyAgIHNldCB1cCBvdGhlciBtZW51cyB1c2luZyB0aGUgc2Ft
ZSBzcGVjaWZpY2F0aW9uIG1lY2hhbmlzbS4KOzsKOzsKOzs7ICBDaGFuZ2UgTG9nCjs7Cjs7
CTE5OTYvMTEvMDYgLSBpbmNvcnBvcmF0ZWQgc29tZSBjaGFuZ2VzIHN1Z2dlc3RlZCBieQo7
OwkJCVRob21hcyBGZXVzdGVyIDxUaG9tYXMuRmV1c3RlckB0aGVvLnBoeXNpay51bmktZ2ll
c3Nlbi5kZT4KOzsgICAgICAxOTk3LzMvMyAtIG1pbm9yIHR5cG9zIGZpeGVkIGJ5IEpvaG4g
QS4gVHVybmVyIDx0dXJuZXJAbGFubC5nb3Y+Cjs7CgoKKGRlZnZhciBzZWFyY2htLWNvbW1h
bmRzCiAgICAnKCgiQnVmZmVyOiBcblxuIiBmYWNlIHNlYXJjaG0tYnVmZmVyKQogICAgICAo
IlBhdHRlcm46XHQiIGZhY2Ugc2VhcmNobS1maWVsZC1sYWJlbCkKICAgICAgKCIgXG4iIGZp
ZWxkIHBhdHRlcm4gZmFjZSBzZWFyY2htLWZpZWxkKQogICAgICAoIlN1YnN0aXR1dGlvbjpc
dCIgZmFjZSBzZWFyY2htLWZpZWxkLWxhYmVsKQogICAgICAoIiBcbiIgZmllbGQgc3Vic3Rp
dHV0aW9uIGZhY2Ugc2VhcmNobS1maWVsZCkKICAgICAgKCJFbWFjcyBMaXNwOlx0IiBmYWNl
IHNlYXJjaG0tZmllbGQtbGFiZWwpCiAgICAgICgiIFxuIiBmaWVsZCBsaXNwIGZhY2Ugc2Vh
cmNobS1maWVsZCkKICAgICAgKCIgXG4iKQogICAgICAoIlNlYXJjaCIgY29tbWFuZCAoc2Vh
cmNobS1zZWFyY2ggcGF0dGVybikgZmFjZSBzZWFyY2htLWJ1dHRvbiBoaWdobGlnaHQgc2Vh
cmNobS1oaWdobGlnaHQpCiAgICAgICgiXHQiKQogICAgICAoIlNlYXJjaCBCYWNrd2FyZCIg
Y29tbWFuZCAoc2VhcmNobS1zZWFyY2gtYmFjayBwYXR0ZXJuKQogICAgICAgZmFjZSBzZWFy
Y2htLWJ1dHRvbiBoaWdobGlnaHQgc2VhcmNobS1oaWdobGlnaHQpCiAgICAgICgiXHRcdCIp
CiAgICAgICgiQmVnaW5uaW5nIG9mIEJ1ZmZlciIgY29tbWFuZCAoYmVnaW5uaW5nLW9mLWJ1
ZmZlcikKICAgICAgIGZhY2Ugc2VhcmNobS1idXR0b24gaGlnaGxpZ2h0IHNlYXJjaG0taGln
aGxpZ2h0KQogICAgICAoIlxuXG4iKQogICAgICAoIlJlcGxhY2UiIGNvbW1hbmQgKHNlYXJj
aG0tcmVwbGFjZSBwYXR0ZXJuIHN1YnN0aXR1dGlvbikKICAgICAgIGZhY2Ugc2VhcmNobS1i
dXR0b24gaGlnaGxpZ2h0IHNlYXJjaG0taGlnaGxpZ2h0KQogICAgICAoIlx0IikKICAgICAg
KCJSZXBsYWNlIGFuZCBTZWFyY2giIGNvbW1hbmQgKHNlYXJjaG0tcmVwLXNlYXJjaCBwYXR0
ZXJuIHN1YnN0aXR1dGlvbikKICAgICAgIGZhY2Ugc2VhcmNobS1idXR0b24gaGlnaGxpZ2h0
IHNlYXJjaG0taGlnaGxpZ2h0KQogICAgICAoIlx0IikKICAgICAgKCJSZXBsYWNlIEFsbCIg
Y29tbWFuZCAoc2VhcmNobS1yZXBsYWNlLWFsbCBwYXR0ZXJuIHN1YnN0aXR1dGlvbikKICAg
ICAgIGZhY2Ugc2VhcmNobS1idXR0b24gaGlnaGxpZ2h0IHNlYXJjaG0taGlnaGxpZ2h0KQog
ICAgICAoIlxuXG4iKQogICAgICAoIlVuZG8iIGNvbW1hbmQgKHNlYXJjaG0tdW5kbykgZmFj
ZSBzZWFyY2htLWJ1dHRvbiBoaWdobGlnaHQgc2VhcmNobS1oaWdobGlnaHQpCiAgICAgICgi
XHQiKQogICAgICAoIkV4ZWN1dGUgRW1hY3MgTGlzcCIgY29tbWFuZCAoc2VhcmNobS1lbWFj
cy1saXNwIGxpc3ApCiAgICAgICBmYWNlIHNlYXJjaG0tYnV0dG9uIGhpZ2hsaWdodCBzZWFy
Y2htLWhpZ2hsaWdodCkKICAgICAgKCJcdCIpCiAgICAgICgiRGlzbWlzcyIgbG9jYWwtY29t
bWFuZCAoc2VhcmNobS1kaXNtaXNzKSBmYWNlIHNlYXJjaG0tYnV0dG9uIGhpZ2hsaWdodCBz
ZWFyY2htLWhpZ2hsaWdodCkKICAgICAgKCJcblxuIikKICAgICAgKCJHcmVwIiBjb21tYW5k
IChzZWFyY2htLWdyZXAgcGF0dGVybiBmaWxlcykKICAgICAgIGZhY2Ugc2VhcmNobS1idXR0
b24gaGlnaGxpZ2h0IHNlYXJjaG0taGlnaGxpZ2h0KQogICAgICAoIlx0IikKICAgICAgKCJG
aWxlczpcdCIgZmFjZSBzZWFyY2htLWZpZWxkLWxhYmVsKQogICAgICAoIiBcbiIgZmllbGQg
ZmlsZXMgZmFjZSBzZWFyY2htLWZpZWxkKQogICAgICApCiAgIlNwZWNpZmljYXRpb24gb2Yg
dGhlIGxheW91dCBhbmQgY29tbWFuZHMgaW4gdGhlIHNlYXJjaCBjb250cm9sIGJ1ZmZlciIp
CgoKCihkZWZ2YXIgc2VhcmNobS1zZXR1cC1ob29rIG5pbAogICJIb29rIHRvIHJ1biBhZnRl
ciBzZWFyY2htLXNldHVwLWJ1ZmZlciIpCgoKKGRlZnZhciBzZWFyY2htLWF1dG8tc2l6ZSB0
ICJJZiBub24tbmlsLCBjb250cm9sIHdpbmRvdyBpcyBzaXplZCB0byBmaXQgYnVmZmVyIikK
CgooZGVmdmFyIHNlYXJjaG0tZnJhbWUtcGFyYW1ldGVycyAnKChtb2RlbGluZSAuIG5pbCkg
KHRvcCAuIDEwMCkgKGxlZnQgLiAtMjAwKSAoaGVpZ2h0IC4gMTQpCgkJCQkgICAod2lkdGgg
LiA2MCkgKG1lbnUtYmFyLWxpbmVzIC4gMCkgKG1pbmlidWZmZXIgLiBuaWwpCgkJCQkgICAo
dmVydGljYWwtc2Nyb2xsLWJhcnMgLiBuaWwpKSkKCihkZWZ2YXIgc2VhcmNobS11c2UtYmxh
Y2stYW5kLXdoaXRlIG5pbCAiRm9yY2UgYmxhY2sgYW5kIHdoaXRlIGRpc3BsYXkgb2Ygc2Vh
cmNoIG1lbnUiKQoKKGRlZnZhciBzZWFyY2htLWJ1dHRvbi1mb250ICItYWRvYmUtY291cmll
ci1ib2xkLW8tbm9ybWFsLS0xMi0xMjAtNzUtNzUtbS03MC1pc284ODU5LTEiCiAgIkZvbnQg
dG8gdXNlIGZvciBidXR0b25zIikKCgooZGVmdmFyIHNlYXJjaG0tY3VycmVudC1idWZmZXIg
bmlsICJCdWZmZXIgc2VhcmNoLW1lbnUgaXMgbG9va2luZyBhdCIpCihkZWZ2YXIgc2VhcmNo
bS1jdXJyZW50LWRpcmVjdG9yeSBuaWwgIkRpcmVjdG9yeSBvZiBidWZmZXIgdGhhdCBzZWFy
Y2gtbWVudSBpcyBsb29raW5nIGF0IikKCihkZWZ2YXIgc2VhcmNobS1jb250cm9sLWJ1ZmZl
ciBuaWwgIkJ1ZmZlciBjb250YWluaW5nIHNlYXJjaCBtZW51IikKCgooZGVmdmFyIHNlYXJj
aG0tYnV0dG9uLWZhY2UgJyhzZWFyY2htLWJ1dHRvbi1mb250ICJ3aGl0ZSIgIkNhZGV0Qmx1
ZSIpCiAgImZvbnQsIGZvcmVncm91bmQsIGFuZCBiYWNrZ3JvdW5kIGZvciBzZWFyY2ggbWVu
dSBidXR0b25zIikKCihkZWZ2YXIgc2VhcmNobS1idWZmZXItbmFtZS1mYWNlICcoc2VhcmNo
bS1idXR0b24tZm9udCAicmVkIiAid2hpdGUiKQogICJmb250LCBmb3JlZ3JvdW5kLCBhbmQg
YmFja2dyb3VuZCBmb3Igc2VhcmNoIG1lbnUgYnVmZmVyIG5hbWUgZGlzcGxheSIpCgooZGVm
dmFyIHNlYXJjaG0tYnV0dG9uLWhpZ2hsaWdodCAnKHNlYXJjaG0tYnV0dG9uLWZvbnQgImJs
YWNrIiAiZGFya3NlYWdyZWVuMiIpCiAgImZvbnQsIGZvcmVncm91bmQsIGFuZCBiYWNrZ3Jv
dW5kIGZvciBzZWFyY2ggbWVudSBidXR0b25zIHVuZGVyIG1vdXNlIikKCihkZWZ2YXIgc2Vh
cmNobS1maWVsZC1mYWNlICcobmlsIG5pbCAiZ3JleTg5IikpCgooZGVmdmFyIHNlYXJjaG0t
ZmllbGQtbGFiZWwtZmFjZSAnKHNlYXJjaG0tYnV0dG9uLWZvbnQgbmlsIG5pbCkpCgo7OyBz
ZXQgdGhlIGZhY2UgZm9udCBvbmx5IGlmIHRoZXJlIGlzIG5vIGVycm9yCgooZGVmdW4gc2Vh
cmNobS1zZXQtZmFjZS1mb250IChuYW1lIGZvbnQtc3BlYykKICAoY29uZGl0aW9uLWNhc2Ug
bmlsCiAgICAgIChhbmQgZm9udC1zcGVjIChzZXQtZmFjZS1mb250IG5hbWUgZm9udC1zcGVj
KSkKICAgIChlcnJvciAoc2V0LWZhY2UtZm9udCBuYW1lIG5pbCkpCiAgICApCiAgKQoKCjs7
IFByb2Nlc3MgY29sb3VyIHNwZWMgKGZvcmVncm91bmQgYmFja2dyb3VuZCkgYW5kIG1ha2Ug
YXBwcm9wcmlhdGUKOzsgY2hvaWNlcyBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUgY29sb3Vy
cyBleGlzdCBhbmQgaWYgdGhlIGZpZWxkcwo7OyBzaG91bGQgYmUgaW52ZXJ0ZWQKCihkZWZ1
biBzZWFyY2htLXZlcmlmeS1jb2xvdXJzIChuYW1lIHNwZWMgaW52ZXJ0LW9uLWJsYWNrLWFu
ZC13aGl0ZSkKICAoY29uZCAoKGFuZCAobm90IHNlYXJjaG0tdXNlLWJsYWNrLWFuZC13aGl0
ZSkgKGVxIChkZXZpY2UtY2xhc3MpICdjb2xvcikpCgkgKGxldCAoKGZvcmUgKGNhciBzcGVj
KSkKCSAgICAgICAoYmFjayAoY2FyIChjZHIgc3BlYykpKQoJICAgICAgIChpbnZhbGlkIG5p
bCkpCgkgICAoaWYgKG9yIChudWxsIGZvcmUpIChhbmQgKHN0cmluZ3AgZm9yZSkgKHZhbGlk
LWNvbG9yLW5hbWUtcCBmb3JlKSkpCgkgICAgICAgKGFuZCBmb3JlIChzZXQtZmFjZS1mb3Jl
Z3JvdW5kIG5hbWUgZm9yZSkpCgkgICAgIChzZXRxIGludmFsaWQgdCkpCgkgICAoaWYgKG9y
IChudWxsIGJhY2spIChhbmQgKHN0cmluZ3AgYmFjaykgKHZhbGlkLWNvbG9yLW5hbWUtcCBi
YWNrKSkpCgkgICAgICAgKGFuZCBiYWNrIChzZXQtZmFjZS1iYWNrZ3JvdW5kIG5hbWUgYmFj
aykpCgkgICAgIChzZXRxIGludmFsaWQgdCkpCgkgICAoaWYgaW52YWxpZAoJICAgICAgIChp
ZiBpbnZlcnQtb24tYmxhY2stYW5kLXdoaXRlCgkJICAgKHByb2duCgkJICAgICAoc2V0LWZh
Y2UtZm9yZWdyb3VuZCBuYW1lICJ3aGl0ZSIpCgkJICAgICAoc2V0LWZhY2UtYmFja2dyb3Vu
ZCBuYW1lICJibGFjayIpKQoJCSAocHJvZ24KCQkgICAoc2V0LWZhY2UtYmFja2dyb3VuZCBu
YW1lICJ3aGl0ZSIpCgkJICAgKHNldC1mYWNlLWZvcmVncm91bmQgbmFtZSAiYmxhY2siKSkp
KSkpCgkoKGFuZCBzcGVjIChlcXVhbCAoY2FyIHNwZWMpICJ3aGl0ZSIpKQoJIChzZXQtZmFj
ZS1mb3JlZ3JvdW5kIG5hbWUgIndoaXRlIikKCSAoc2V0LWZhY2UtYmFja2dyb3VuZCBuYW1l
ICJibGFjayIpKQoJKChhbmQgc3BlYyAoZXF1YWwgKGNhciBzcGVjKSAiYmxhY2siKSkKCSAo
c2V0LWZhY2UtZm9yZWdyb3VuZCBuYW1lICJibGFjayIpCgkgKHNldC1mYWNlLWJhY2tncm91
bmQgbmFtZSAid2hpdGUiKSkKCShpbnZlcnQtb24tYmxhY2stYW5kLXdoaXRlCgkgKHNldC1m
YWNlLWZvcmVncm91bmQgbmFtZSAid2hpdGUiKQoJIChzZXQtZmFjZS1iYWNrZ3JvdW5kIG5h
bWUgImJsYWNrIikpCgkodAoJIChzZXQtZmFjZS1iYWNrZ3JvdW5kIG5hbWUgIndoaXRlIikK
CSAoc2V0LWZhY2UtZm9yZWdyb3VuZCBuYW1lICJibGFjayIpKSkpCgoKOzsgY3JlYXRlIG9y
IG1vZGlmeSB0aGUgZmFjZSBhcyBzcGVjaWZpZWQgYnkgc3BlYwoKKGRlZnVuIHNlYXJjaG0t
Y3JlYXRlLWZhY2UgKG5hbWUgc3BlYyBpbnZlcnQtb24tYmxhY2stYW5kLXdoaXRlKQogIChp
ZiAobm90IChtZW1iZXIgbmFtZSAoZmFjZS1saXN0KSkpCiAgICAgIChtYWtlLWZhY2UgbmFt
ZSkpCiAgKGNvbmQgKChhbmQgKHN5bWJvbHAgc3BlYykgKG1lbWJlciBzcGVjIChmYWNlLWxp
c3QpKSkKCSAoY29weS1mYWNlIG5hbWUgc3BlYykpCgkoKGxpc3RwIHNwZWMpCgkgKGlmIChz
eW1ib2xwIChjYXIgc3BlYykpCgkgICAgIChzZWFyY2htLXNldC1mYWNlLWZvbnQgbmFtZSAo
ZXZhbCAoY2FyIHNwZWMpKSkKCSAgIChzZWFyY2htLXNldC1mYWNlLWZvbnQgbmFtZSAoY2Fy
IHNwZWMpKSkKCSAoc2VhcmNobS12ZXJpZnktY29sb3VycyBuYW1lIChjZHIgc3BlYykgaW52
ZXJ0LW9uLWJsYWNrLWFuZC13aGl0ZSkpCgkodCAoZXJyb3IgIkludmFsaWQgZmFjZSBzcGVj
aWZpY2F0aW9uIikpKSkKCihzZWFyY2htLWNyZWF0ZS1mYWNlICdzZWFyY2htLWJ1dHRvbiBz
ZWFyY2htLWJ1dHRvbi1mYWNlIHQpCihzZWFyY2htLWNyZWF0ZS1mYWNlICdzZWFyY2htLWJ1
ZmZlciBzZWFyY2htLWJ1ZmZlci1uYW1lLWZhY2UgdCkKKHNlYXJjaG0tY3JlYXRlLWZhY2Ug
J3NlYXJjaG0taGlnaGxpZ2h0IHNlYXJjaG0tYnV0dG9uLWhpZ2hsaWdodCBuaWwpCihzZWFy
Y2htLWNyZWF0ZS1mYWNlICdzZWFyY2htLWZpZWxkLWxhYmVsIHNlYXJjaG0tZmllbGQtbGFi
ZWwtZmFjZSB0KQooc2VhcmNobS1jcmVhdGUtZmFjZSAnc2VhcmNobS1maWVsZCBzZWFyY2ht
LWZpZWxkLWZhY2UgdCkKCgoKCgo7OyBpbnZva2UgdGhlIGdyZXAgY29tbWFuZCBhcyBzcGVj
aWZpZWQgYnkgdGhlIHNlYXJjaCBjb250cm9sIHdpbmRvdwoKKGRlZnVuIHNlYXJjaG0tZ3Jl
cCAoZm9ybSBmaWxlcykKICAoaWYgKG51bGwgZm9ybSkgKGVycm9yICJObyBncmVwIHBhdHRl
cm4uIikpCiAgKGdyZXAgKGNvbmNhdCAiZ3JlcCAtbiAtaSAtZSAnIiBmb3JtICInICIKCQko
b3IgZmlsZXMKCQkgICAgKGZpbGUtbmFtZS1ub25kaXJlY3RvcnkgKGJ1ZmZlci1maWxlLW5h
bWUgc2VhcmNobS1jdXJyZW50LWJ1ZmZlcikpKSkKCSkKICApCgoKOzsgZXhlY3V0ZSBzb21l
IGVtYWNzIGxpc3AgZm9ybQoKKGRlZnVuIHNlYXJjaG0tZW1hY3MtbGlzcCAoZm9ybSkKICAo
ZXZhbCAoY2FyIChyZWFkLWZyb20tc3RyaW5nIGZvcm0pKSkpCgoKOzsgZ2V0IHJpZCBvZiBj
b250cm9sIHdpbmRvdwoKKGRlZnVuIHNlYXJjaG0tZGlzbWlzcyAoKQogIChsZXQqICgod2lu
ZG93IChnZXQtYnVmZmVyLXdpbmRvdyBzZWFyY2htLWNvbnRyb2wtYnVmZmVyIHQpKQoJIChm
cmFtZSAoYW5kICh3aW5kb3dwIHdpbmRvdykgKHdpbmRvdy1mcmFtZSB3aW5kb3cpKSkpCiAg
ICAoa2lsbC1idWZmZXIgc2VhcmNobS1jb250cm9sLWJ1ZmZlcikKICAgIChpZiAoZnJhbWVw
IGZyYW1lKQoJKGRlbGV0ZS1mcmFtZSBmcmFtZSkpKSkKCgo7OyB3aGF0IGNhbiBJIHNheT8K
CihkZWZ1biBzZWFyY2htLXVuZG8gKCkKICAodW5kbyAxKSkKCgo7OyByZXBsYWNlIHRleHQg
YXQgcG9pbnQgd2l0aCBzdWJzdGl0dXRpb24KCihkZWZ1biBzZWFyY2htLXJlcGxhY2UgKHBh
dHRlcm4gc3Vic3RpdHV0aW9uKQogIChpZiAobnVsbCBwYXR0ZXJuKSAoZXJyb3IgIk5vIHNl
YXJjaCBwYXR0ZXJuIHNwZWNpZmllZCIpKQogIChpZiAobG9va2luZy1hdCBwYXR0ZXJuKQog
ICAgKHByb2duICh1bmRvLWJvdW5kYXJ5KSAocmVwbGFjZS1tYXRjaCAob3Igc3Vic3RpdHV0
aW9uICIiKSB0KSkKICAgIChlcnJvciAiVGV4dCBhdCBjdXJyZW50IHBvc2l0aW9uIGRvZXMg
bm90IG1hdGNoIHBhdHRlcm4uIEhhdmUgeW91IG1vdmVkIHRoZSBwb2ludD8iKSkpCgoKOzsg
cmVwbGFjZSBhbGwgcmVtYWluaW5nIG9jY3VycmVuY2VzIG9mIHBhdHRlcm4gd2l0aCBzdWJz
dGl0dXRpb24KCihkZWZ1biBzZWFyY2htLXJlcGxhY2UtYWxsIChwYXR0ZXJuIHN1YnN0aXR1
dGlvbikKICAoaWYgKG51bGwgcGF0dGVybikgKGVycm9yICJObyBzZWFyY2ggcGF0dGVybiBz
cGVjaWZpZWQiKSkKICAodW5kby1ib3VuZGFyeSkKICAod2hpbGUgKHJlLXNlYXJjaC1mb3J3
YXJkIHBhdHRlcm4gbmlsIHQpCiAgICAocmVwbGFjZS1tYXRjaCAob3Igc3Vic3RpdHV0aW9u
ICIiKSB0ICBuaWwpKSkKCgo7OyByZXBsYWNlIGFuZCBzZWFyY2ggYWdhaW4gaW4gdGhlIGNv
bnRyb2xsZWQgYnVmZmVyCgooZGVmdW4gc2VhcmNobS1yZXAtc2VhcmNoIChwYXR0ZXJuIHN1
YnN0aXR1dGlvbikKICAoaWYgKG51bGwgcGF0dGVybikgKGVycm9yICJObyBzZWFyY2ggcGF0
dGVybiBzcGVjaWZpZWQiKSkKICAoaWYgKGxvb2tpbmctYXQgcGF0dGVybikKICAgICAgKHBy
b2duCgkodW5kby1ib3VuZGFyeSkKCShyZXBsYWNlLW1hdGNoIChvciBzdWJzdGl0dXRpb24g
IiIpIHQpCgkoc2VhcmNobS1zZWFyY2ggcGF0dGVybikpCiAgICAoZXJyb3IgIlRleHQgYXQg
Y3VycmVudCBwb3NpdGlvbiBkb2VzIG5vdCBtYXRjaCBwYXR0ZXJuLiBIYXZlIHlvdSBtb3Zl
ZCB0aGUgcG9pbnQ/IikpKQoKCjs7IFNlYXJjaCBmb3J3YXJkIGluIHRoZSBjb250cm9sbGVk
IGJ1ZmZlciBmb3IgcGF0dGVybgoKKGRlZnVuIHNlYXJjaG0tc2VhcmNoIChwYXR0ZXJuKQog
IChpZiAobnVsbCBwYXR0ZXJuKSAoZXJyb3IgIk5vIHNlYXJjaCBwYXR0ZXJuIHNwZWNpZmll
ZCIpKQogIChmb3J3YXJkLWNoYXIpCiAgKGlmIChyZS1zZWFyY2gtZm9yd2FyZCBwYXR0ZXJu
KQogICAgICAocHJvZ24KCTsoZGVhY3RpdmF0ZS1tYXJrKQoJKGdvdG8tY2hhciAobWF0Y2gt
ZW5kIDApKQoJKHB1c2gtbWFyayAobWF0Y2gtYmVnaW5uaW5nIDApIHQgdCBzZWFyY2htLWN1
cnJlbnQtYnVmZmVyKQoJKGV4Y2hhbmdlLXBvaW50LWFuZC1tYXJrKQoJKGFjdGl2YXRlLXJl
Z2lvbikpKSkKCgo7OyBTZWFyY2ggYmFja3dhcmQgaW4gdGhlIGNvbnRyb2xsZWQgYnVmZmVy
IGZvciBwYXR0ZXJuCgooZGVmdW4gc2VhcmNobS1zZWFyY2gtYmFjayAocGF0dGVybikKICAo
aWYgKG51bGwgcGF0dGVybikgKGVycm9yICJObyBzZWFyY2ggcGF0dGVybiBzcGVjaWZpZWQi
KSkKICAoaWYgKHJlLXNlYXJjaC1iYWNrd2FyZCBwYXR0ZXJuKQogICAgICAocHJvZ24KCTso
ZGVhY3RpdmF0ZS1tYXJrKQoJKGdvdG8tY2hhciAobWF0Y2gtZW5kIDApKQoJKHB1c2gtbWFy
ayAobWF0Y2gtYmVnaW5uaW5nIDApIHQgdCBzZWFyY2htLWN1cnJlbnQtYnVmZmVyKQoJKGV4
Y2hhbmdlLXBvaW50LWFuZC1tYXJrKQoJKGFjdGl2YXRlLXJlZ2lvbikpKSkKCgo7OyB0cmFu
c2xhdGUgXG4gaW50byBuZXdsaW5lIGFuZCBcdCBpbnRvIHRhYiBpbiBhIHN0cmluZwoKKGRl
ZnVuIHNlYXJjaG0tcHJvY2Vzcy1zdWJzdGl0dXRpb24gKHN0cikKICAoaWYgc3RyCiAgICAg
IChsZXQgKChjb3B5IChjb3B5LXNlcXVlbmNlIHN0cikpCgkgICAgKGkgMCkKCSAgICAoaiAw
KQoJICAgIChsMiAobGVuZ3RoIHN0cikpCgkgICAgKGwgKGxlbmd0aCBzdHIpKSkKCSh3aGls
ZSAoPCBpIGwpCgkgIChpZiAoZXEgP1xcIChhcmVmIHN0ciBpKSkKCSAgICAgIChpZiAoPCAo
KyBpIDEpIGwpCgkJICAoY29uZCAoKGVxID9uIChhcmVmIHN0ciAoKyAxIGkpKSkKCQkJIChz
ZXRxIGkgKCsgaSAxKSkKCQkJIChzZXRxIGwyICgtIGwyIDEpKQoJCQkgKGFzZXQgY29weSBq
ID9cbikpCgkJCSgoZXEgP3QgKGFyZWYgc3RyICgrIDEgaSkpKQoJCQkgKHNldHEgaSAoKyBp
IDEpKQoJCQkgKHNldHEgbDIgKC0gbDIgMSkpCgkJCSAoYXNldCBjb3B5IGogP1x0KSkKCQkJ
KHQgKGFzZXQgY29weSBqIChhcmVmIHN0ciBpKSkpKQoJCShhc2V0IGNvcHkgaiAoYXJlZiBz
dHIgaSkpKQoJICAgIChhc2V0IGNvcHkgaiAoYXJlZiBzdHIgaSkpKQoJICAoc2V0cSBpICgr
IGkgMSkpCgkgIChzZXRxIGogKCsgaiAxKSkKCSAgKQoJKHN1YnN0cmluZyBjb3B5IDAgbDIp
KSkpCgoKOzsgZGVidWdnaW5nIGZ1bmN0aW9uIHRvIGxvb2sgYXQgcHJvcGVydHkgdGFncyBp
biBidWZmZXIKOzsgb3V0cHV0IGVuZHMgdXAgaW4gbWVzc2FnZSBsb2cKCihkZWZ1biBzZWFy
Y2htLWxvb2thdC1yZWFkLW9ubHkgKCkKICAgICAgIChzYXZlLWV4Y3Vyc2lvbgoJIChsZXQg
KChwMSAocG9pbnQtbWluKSkKCSAgICAgICBwMikKCSAgICh3aGlsZSBwMQoJICAgICAoc2V0
cSBwMiAobmV4dC1zaW5nbGUtcHJvcGVydHktY2hhbmdlIHAxICdyZWFkLW9ubHkpKQoJICAg
ICAoaWYgcDIKCQkgKHByb2duCgkJICAgKG1lc3NhZ2UgIiVkICVkICVzICVzICclcyciIHAx
IHAyIChnZXQtdGV4dC1wcm9wZXJ0eSBwMSAncmVhZC1vbmx5KSAoZ2V0LXRleHQtcHJvcGVy
dHkgcDIgJ3JlYWQtb25seSkgKGJ1ZmZlci1zdWJzdHJpbmcgcDEgcDIpKQoJCSAgIChzZXRx
IHAxIHAyKSkKCSAgICAgICAoc2V0cSBwMSBuaWwpKSkpKSkKCjs7IEV4dHJhY3QgYSBmaWVs
ZCB2YWx1ZSAoaWRlbnRpZmllZCBieSBoYXZpbmcgcmVhZC1vbmx5IHByb3BlcnR5IGtleSkg
ZnJvbSB0aGUgY29udHJvbCBidWZmZXIKCihkZWZ1biBzZWFyY2htLXBhdHRlcm4tZmllbGQg
KGtleSkKICAobGV0ICgoYnVmIChnZXQtYnVmZmVyICIqc20gY29udHJvbCoiKSkpCiAgICAo
c2F2ZS1leGN1cnNpb24KICAgICAgKHNldC1idWZmZXIgYnVmKQogICAgICAobGV0ICgocDEg
KHBvaW50LW1pbikpCgkgICAgcDIpCgkod2hpbGUgKGFuZCBwMSAobm90IHAyKSkKCSAgKHNl
dHEgcDEgKG5leHQtc2luZ2xlLXByb3BlcnR5LWNoYW5nZSBwMSAnZmllbGQpKQoJICAoaWYg
KGFuZCBwMSAoZXEga2V5IChnZXQtdGV4dC1wcm9wZXJ0eSBwMSAnZmllbGQpKSkKCSAgICAg
IChwcm9nbgoJCShzZXRxIHAyIChuZXh0LXNpbmdsZS1wcm9wZXJ0eS1jaGFuZ2UgcDEgJ2Zp
ZWxkKSkpKSkKCShpZiAoYW5kIHAxIHAyKQoJICAgIChidWZmZXItc3Vic3RyaW5nIHAxICgt
IHAyIDEpKSkpKSkpCgoKOzsgZmluZCB2YWx1ZXMgKGZyb20gdGhlIGJ1ZmZlcikgb2YgdGhl
IGFyZ3VtZW50cyBzcGVjaWZpZWQgYnkgdGhlIGNvbW1hbmQKCihkZWZ1biBzZWFyY2htLWdl
dC1hcmdzIChhcmdzKQogIChpZiBhcmdzCiAgICAgIChjb25zIChvciAoc2VhcmNobS1wYXR0
ZXJuLWZpZWxkIChjYXIgYXJncykpIChjYXIgYXJncykpCgkgICAgKHNlYXJjaG0tZ2V0LWFy
Z3MgKGNkciBhcmdzKSkpCiAgICBuaWwpKQoKCjs7IEV4ZWN1dGUgYSBjb21tYW5kIGluIHRo
ZSBjb250ZXh0IG9mIHRoZSBjb250cm9sbGVkIGJ1ZmZlcgoKKGRlZnVuIHNlYXJjaG0tZG8t
Y29tbWFuZCAoY29tbWFuZCBsb2NhbCBidWZmZXIpCiAgKGxldCAoKGV4cHIgKHNlYXJjaG0t
Z2V0LWFyZ3MgKGNkciBjb21tYW5kKSkpKQogICAgKHNldC1idWZmZXIgYnVmZmVyKQogICAg
KGlmIGxvY2FsCgkoc2F2ZS1leGN1cnNpb24KCSAgKGFwcGx5IChjYXIgY29tbWFuZCkgZXhw
cikpCiAgICAgIChzYXZlLXdpbmRvdy1leGN1cnNpb24KCShzYXZlLWV4Y3Vyc2lvbgoJICAo
aWYgc2VhcmNobS1jdXJyZW50LWJ1ZmZlcgoJICAgICAgKHByb2duCgkJKHNldC1idWZmZXIg
c2VhcmNobS1jdXJyZW50LWJ1ZmZlcikKCQkobGV0ICgod2luZG93IChnZXQtYnVmZmVyLXdp
bmRvdyBzZWFyY2htLWN1cnJlbnQtYnVmZmVyIHQpKSkKCQkgIChpZiAoYW5kICh3aW5kb3dw
IHdpbmRvdykgKHdpbmRvdy1saXZlLXAgd2luZG93KSkKCQkgICAgICAocHJvZ24KCQkJKHNl
bGVjdC13aW5kb3cgd2luZG93KQoJCQkoYXBwbHkgKGNhciBjb21tYW5kKSBleHByKSkKCQkg
ICAgKGVycm9yICJXaW5kb3cgaXMgbm8gbG9uZ2VyIGxpdmUuIikpKSkKCSAgICAoZXJyb3Ig
Ik5vIHRhcmdldCBidWZmZXIiKSkpKSkpKQoKCgoKOzsgRmluZCBhbmQgZXhlY3V0ZSB0aGUg
Y29tbWFuZCwgaWYgYW55LCBzcGVjaWZpZWQgYnkgYSBtb3VzZSBjbGljawoKKGRlZnVuIHNl
YXJjaG0tcmVzcG9uZC10by1jbGljayAoY2xpY2spCiAgIkZpbmQgYW5kIGV4ZWN1dGUgdGhl
IGNvbW1hbmQsIGlmIGFueSwgc3BlY2lmaWVkIGJ5IGEgbW91c2UgY2xpY2siCiAgKGludGVy
YWN0aXZlICJlIikKICAoc2V0cSBlIGNsaWNrKQogIChsZXQqICgod2luZG93IChldmVudC13
aW5kb3cgY2xpY2spKQoJIChidWZmZXIgKGFuZCB3aW5kb3cgKHdpbmRvdy1idWZmZXIgd2lu
ZG93KSkpCgkgKHBvcyAoZXZlbnQtcG9pbnQgY2xpY2spKQoJIChjb21tYW5kIChhbmQgYnVm
ZmVyIChnZXQtdGV4dC1wcm9wZXJ0eSBwb3MgJ3NlYXJjaG0tY29tbWFuZCBidWZmZXIpKSkK
CSAobGNvbW1hbmQgKGFuZCBidWZmZXIgKGdldC10ZXh0LXByb3BlcnR5IHBvcyAnc2VhcmNo
bS1sb2NhbC1jb21tYW5kIGJ1ZmZlcikpKSkKICAgIDs7IChteS1tZXNzYWdlICJDb21tYW5k
OiAlcyIgKGxpc3QgY2xpY2sgd2luZG93IGJ1ZmZlciBwb3MgY29tbWFuZCBsY29tbWFuZCkp
CiAgICAoaWYgY29tbWFuZAoJKHNlYXJjaG0tZG8tY29tbWFuZCBjb21tYW5kIG5pbCBidWZm
ZXIpCiAgICAgIChpZiBsY29tbWFuZAoJKHNlYXJjaG0tZG8tY29tbWFuZCBsY29tbWFuZCB0
IGJ1ZmZlcikKICAgICAgOzsobW91c2UtZHJhZy1yZWdpb24gY2xpY2spCiAgICAgIDs7KG1v
dXNlLXNldC1wb2ludCBjbGljaykKICAgICAgKSkpKQoKOzsgZnVuY3Rpb24gdG8gZG8gc2Vh
cmNoIGZyb20ga2V5IHN0cm9rZQoKKGRlZnVuIHNlYXJjaG0tY2FsbC1zZWFyY2ggKCZvcHRp
b25hbCBhcmdzKQogICJJbnZva2UgdGhlIHNlYXJjaCBtZW51IHNlYXJjaCBmb3J3YXJkIGZ1
bmN0aW9uIgogIChpbnRlcmFjdGl2ZSAiUCIpCiAgKHNlYXJjaG0tZG8tY29tbWFuZCAnKHNl
YXJjaG0tc2VhcmNoIHBhdHRlcm4pIG5pbCAoZ2V0LWJ1ZmZlciAiKnNtIGNvbnRyb2wqIikp
KQoKOzsgbm8tb3AgdG8gc2hhZG93IGdsb2JhbCBrZXkgYmluZGluZ3MKCihkZWZ1biBzZWFy
Y2htLW5vb3AgKCZvcHRpb25hbCBhcmdzKQogICJJbnRlcmFjdGl2ZSBiZWVwIgogIChpbnRl
cmFjdGl2ZSAiUCIpCiAgKGJlZXApKQoKOzsgbm8tb3AgdG8gc2hhZG93IGdsb2JhbCBrZXkg
YmluZGluZ3MKCihkZWZ1biBzZWFyY2htLW1vdXNlLW5vb3AgKGNsaWNrKQogICJEbyBub3Ro
aW5nIG9uIGEgbW91c2UgY2xpY2siCiAgKGludGVyYWN0aXZlICJlIikKICBuaWwpCgoKCjs7
IHRyZWF0IHBhdHRlcm4gYXMgYSBsaXN0IG9mIGFsdGVybmF0aW5nIGtleXdvcmRzIGFuZCB2
YWx1ZXMKOzsgKGxpa2UgcGxpc3RzKQo7OyByZXR1cm4gdGhlIHZhbHVlIGNvcnJlc3BvbmRp
bmcgdG8ga2V5CgooZGVmdW4gc2VhcmNobS1sb29rdXAta2V5IChrZXkgcGF0dGVybikKICAo
bGV0ICgoZm91bmQgKG1lbXEga2V5IHBhdHRlcm4pKSkKICAgIChhbmQgZm91bmQKCSAoY2Ry
IGZvdW5kKQoJIChjYXIgKGNkciBmb3VuZCkpKSkpCgoKOzsgY2FsY3VsYXRlIHNpemUgb2Yg
YnVmZmVyCgooZGVmdW4gc2VhcmNobS1idWZmZXItZGltZW5zaW9ucyAoYnVmZmVyKQogIChz
YXZlLWV4Y3Vyc2lvbgogICAgKHNldC1idWZmZXIgYnVmZmVyKQogICAgKGdvdG8tY2hhciAo
cG9pbnQtbWluKSkKICAgIChlbmQtb2YtbGluZSkKICAgIChsZXQgKChtYXggKGN1cnJlbnQt
Y29sdW1uKSkpCiAgICAgICh3aGlsZSAoZXF1YWwgKGZvcndhcmQtbGluZSAxKSAwKQoJKGVu
ZC1vZi1saW5lKQoJKGlmICg+IChjdXJyZW50LWNvbHVtbikgbWF4KQoJICAgIChzZXRxIG1h
eCAoY3VycmVudC1jb2x1bW4pKSkpCiAgICAgIChsaXN0ICd3aWR0aCAoKyBtYXggMikgJ2hl
aWdodCAoKyAyIChjb3VudC1saW5lcyAocG9pbnQtbWluKSAocG9pbnQtbWF4KSkpKSkpKQoK
Cjs7IGNyZWF0ZSB0aGUgc2VhcmNoIGJ1ZmZlcgoKKGRlZnVuIHNlYXJjaG0tc2V0dXAtYnVm
ZmVyIChidWYgY29tbWFuZHMpCiAgKHNhdmUtd2luZG93LWV4Y3Vyc2lvbgogICAgKHNhdmUt
ZXhjdXJzaW9uCiAgICAgIChzZXQtYnVmZmVyIGJ1ZikKICAgICAgKGxvY2FsLXNldC1rZXkg
IlxDLXkiICd5YW5rKQogICAgICAobGV0ICgoaW5oaWJpdC1yZWFkLW9ubHkgdCkKCSAgICAo
c2VhcmNoLW1hcCAobWFrZS1zcGFyc2Uta2V5bWFwKSkpCgkoZGVmaW5lLWtleSBzZWFyY2gt
bWFwIFtidXR0b24xZG93bl0gJ3NlYXJjaG0tbW91c2Utbm9vcCkKCShkZWZpbmUta2V5IHNl
YXJjaC1tYXAgW2J1dHRvbjFdICdzZWFyY2htLW1vdXNlLW5vb3ApCgkoZGVmaW5lLWtleSBz
ZWFyY2gtbWFwIFtidXR0b24yXSAnc2VhcmNobS1yZXNwb25kLXRvLWNsaWNrKQoJKG1ha2Ut
bG9jYWwtdmFyaWFibGUgJ2hpZ2hsaWdodC1ub25zZWxlY3RlZC13aW5kb3dzKQoJKHNldHEg
aGlnaGxpZ2h0LW5vbnNlbGVjdGVkLXdpbmRvd3MgdCkKCShlcmFzZS1idWZmZXIpCgkoaW5z
ZXJ0LXN0cmluZyAiXG4iKQoJKGdvdG8tY2hhciAocG9pbnQtbWluKSkKCShsZXQgKChwdHIg
Y29tbWFuZHMpCgkgICAgICAobGFzdC1yZWFkLW9ubHkgKHBvaW50LW1pbikpCgkgICAgICBk
ZXNjKQoJICAod2hpbGUgcHRyCgkgICAgKHNldHEgZGVzYyAoY2FyIHB0cikpCgkgICAgKHNl
dHEgcHRyIChjZHIgcHRyKSkKCSAgICAobGV0ICgocDEgKHBvaW50KSkKCQkgIHAyCgkJICAo
ZmllbGQta2V5cyAoc2VhcmNobS1sb29rdXAta2V5ICdmaWVsZCAoY2RyIGRlc2MpKSkKCQkg
IChsb2NhbC1jb21tYW5kIChzZWFyY2htLWxvb2t1cC1rZXkgJ2xvY2FsLWNvbW1hbmQgKGNk
ciBkZXNjKSkpCgkJICAoY29tbWFuZCAoc2VhcmNobS1sb29rdXAta2V5ICdjb21tYW5kIChj
ZHIgZGVzYykpKQoJCSAgKGZhY2UgKHNlYXJjaG0tbG9va3VwLWtleSAnZmFjZSAoY2RyIGRl
c2MpKSkKCQkgIChoaWdobGlnaHQgKHNlYXJjaG0tbG9va3VwLWtleSAnaGlnaGxpZ2h0IChj
ZHIgZGVzYykpKSkKCSAgICAgIChpbnNlcnQtc3RyaW5nIChjYXIgZGVzYykpCgkgICAgICAo
aWYgKG9yIGNvbW1hbmQgbG9jYWwtY29tbWFuZCkKCQkgIChzZXRxIHAyIChwb2ludCkpCgkJ
KHNldHEgcDIgKC0gKHBvaW50KSAxKSkpCgkgICAgICAoaWYgZmllbGQta2V5cwoJCSAgKHBy
b2duCgkJICAgIChwdXQtdGV4dC1wcm9wZXJ0eSBsYXN0LXJlYWQtb25seSBwMSAncmVhZC1v
bmx5IHQpCgkJICAgIChwdXQtdGV4dC1wcm9wZXJ0eSBwMSBwMiAncmVhZC1vbmx5IG5pbCkK
CQkgICAgKHB1dC10ZXh0LXByb3BlcnR5IHAxIHAyICdmaWVsZCBmaWVsZC1rZXlzKQoJCSAg
ICAoc2V0cSBsYXN0LXJlYWQtb25seSAoKyBwMiAxKSkpKQoJICAgICAgKGlmIGZhY2UgKHB1
dC10ZXh0LXByb3BlcnR5IHAxIHAyICdmYWNlIGZhY2UpKQoJICAgICAgKGlmIGhpZ2hsaWdo
dCAocHV0LXRleHQtcHJvcGVydHkgcDEgcDIgJ2hpZ2hsaWdodCB0KSkKCSAgICAgIChpZiBj
b21tYW5kCgkJICAocHJvZ24KCQkgICAgKHB1dC10ZXh0LXByb3BlcnR5IHAxIHAyICdzZWFy
Y2htLWNvbW1hbmQgY29tbWFuZCkKCQkgICAgKHB1dC10ZXh0LXByb3BlcnR5IHAxIHAyICdr
ZXltYXAgc2VhcmNoLW1hcCkpKQoJICAgICAgKGlmIGxvY2FsLWNvbW1hbmQKCQkgIChwcm9n
bgoJCSAgICAocHV0LXRleHQtcHJvcGVydHkgcDEgcDIgJ3NlYXJjaG0tbG9jYWwtY29tbWFu
ZCBsb2NhbC1jb21tYW5kKQoJCSAgICAocHV0LXRleHQtcHJvcGVydHkgcDEgcDIgJ2tleW1h
cCBzZWFyY2gtbWFwKSkpKQoJICAgIChwdXQtdGV4dC1wcm9wZXJ0eSBsYXN0LXJlYWQtb25s
eSAocG9pbnQtbWF4KSAncmVhZC1vbmx5ICdlbmQtZmllbGQpKSkKCShydW4taG9va3MgJ3Nl
YXJjaG0tc2V0dXAtaG9vaykpKSkpCgoKCihkZWZ1biBzZWFyY2htLXRlc3QgKCkKICAoc2Vh
cmNobS1zZXR1cC1idWZmZXIgIipzbSBjb250cm9sKiIgc2VhcmNobS1jb21tYW5kcykKICAo
Z2xvYmFsLXNldC1rZXkgW00tQy1tb3VzZS0yXSAnc2VhcmNobS1sb29rLWF0LXByb3ApCiAg
KQoKKGRlZnVuIHNlYXJjaG0tbG9vay1hdC1wcm9wIChjbGljaykKICAoaW50ZXJhY3RpdmUg
ImUiKQogIChsZXQqICgod2luZG93IChldmVudC13aW5kb3cgY2xpY2spKQoJIChidWZmZXIg
KGFuZCB3aW5kb3cgKHdpbmRvdy1idWZmZXIgd2luZG93KSkpCgkgKHBvcyAoZXZlbnQtcG9p
bnQgY2xpY2spKSkKICAgIChtZXNzYWdlICIlcyIgKGxpc3Qgd2luZG93IGJ1ZmZlciBwb3Mg
KHRleHQtcHJvcGVydGllcy1hdCBwb3MpKSkKICAgICkKICApCgoKCgo7OyByZXR1cm4gdGhl
IHNlYXJjaCBjb250cm9sIGJ1ZmZlciwgY3JlYXRpbmcgaXQgaWYgaXQgaXMgbm90IHByZXNl
bnQgaW4gYQo7OyByZWFzb25hYmxlIGZvcm0KCihkZWZ1biBzZWFyY2htLWdldC1jb250cm9s
LWJ1ZmZlciAoKQogIChpZiAob3IgKG5vdCBzZWFyY2htLWNvbnRyb2wtYnVmZmVyKQoJICAo
bm90IChidWZmZXJwIHNlYXJjaG0tY29udHJvbC1idWZmZXIpKQoJICAobnVsbCAoYnVmZmVy
LW5hbWUgc2VhcmNobS1jb250cm9sLWJ1ZmZlcikpKSA7IGRlbGV0ZWQKICAgICAgKHByb2du
Cgkoc2V0cSBzZWFyY2htLWNvbnRyb2wtYnVmZmVyIChnZXQtYnVmZmVyLWNyZWF0ZSAiKnNt
IGNvbnRyb2wqIikpCgkoc2VhcmNobS1zZXR1cC1idWZmZXIgc2VhcmNobS1jb250cm9sLWJ1
ZmZlciBzZWFyY2htLWNvbW1hbmRzKQoJKSkKICBzZWFyY2htLWNvbnRyb2wtYnVmZmVyKQoK
Cjs7IGRpc3BsYXkgdGhlIHNlYXJjaCBjb250cm9sIG1lbnUgZmlyc3QgaW5zZXJ0aW5nIHRo
ZSBuYW1lIG9mIHRoZSBjb250cm9sbGVkIGJ1ZmZlcgoKKGRlZnVuIHNlYXJjaG0tZGlzcGxh
eS1jb250cm9sLW1lbnUgKCkKICAobGV0KiAoKGJ1ZiAoc2VhcmNobS1nZXQtY29udHJvbC1i
dWZmZXIpKQoJICh3aW5kb3cgKGdldC1idWZmZXItd2luZG93IGJ1ZiB0KSkKCSAoZnJhbWUg
KGFuZCB3aW5kb3cgKHdpbmRvdy1saXZlLXAgd2luZG93KSAod2luZG93LWZyYW1lIHdpbmRv
dykpKSkKICAgIChpZiAobnVsbCBmcmFtZSkKCShzZXRxIGZyYW1lIChtYWtlLWZyYW1lIHNl
YXJjaG0tZnJhbWUtcGFyYW1ldGVycykpKQogICAgKHNlbGVjdC1mcmFtZSBmcmFtZSkKICAg
IChzZXQtd2luZG93LWJ1ZmZlciAoc2VsZWN0ZWQtd2luZG93KSBidWYpCiAgICAoc3dpdGNo
LXRvLWJ1ZmZlciBidWYpCiAgICAoc2V0LWJ1ZmZlci1tZW51YmFyIG5pbCkKICAgIChsZXQg
KChpbmhpYml0LXJlYWQtb25seSB0KSkKICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkK
ICAgICAgKGVuZC1vZi1saW5lKQogICAgICAoZGVsZXRlLXJlZ2lvbiAocG9pbnQtbWluKSAo
cG9pbnQpIGJ1ZikKICAgICAgKGluc2VydC1zdHJpbmcgIkJ1ZmZlcjogXHQiIGJ1ZikKICAg
ICAgKGluc2VydC1zdHJpbmcgKGJ1ZmZlci1uYW1lIHNlYXJjaG0tY3VycmVudC1idWZmZXIp
IGJ1ZikKICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKICAgICAgKGVuZC1vZi1saW5l
KQogICAgICAocHV0LXRleHQtcHJvcGVydHkgKHBvaW50LW1pbikgKHBvaW50KSAnZmFjZSAn
c2VhcmNobS1idWZmZXIpCiAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSAocG9pbnQtbWluKSAo
cG9pbnQpICdyZWFkLW9ubHkgJ2VuZC1maWVsZCkKICAgICAgKQogICAgKGlmIHNlYXJjaG0t
YXV0by1zaXplIChzZXQtZnJhbWUtcHJvcGVydGllcyBmcmFtZSAoc2VhcmNobS1idWZmZXIt
ZGltZW5zaW9ucyBidWYpKSkKICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbiBidWYpIGJ1ZikK
ICAgIChyZS1zZWFyY2gtZm9yd2FyZCAiXlBhdHRlcm46XHQiKQogICAgKG1ha2UtZnJhbWUt
dmlzaWJsZSBmcmFtZSkKICAgIChyYWlzZS1mcmFtZSBmcmFtZSkpKQoKCihkZWZ1biBzZWFy
Y2gtbWVudSAoKQogICJQb3AgdXAgYSBmcmFtZSBjb250YWluaW5nIGZpZWxkcyBhbmQgYnV0
dG9ucyBmb3IgZG9pbmcgc2VhcmNoLiIKICAoaW50ZXJhY3RpdmUpCiAgKHNldHEgc2VhcmNo
bS1jdXJyZW50LWJ1ZmZlciAoY3VycmVudC1idWZmZXIpKQogIChzZWFyY2htLWRpc3BsYXkt
Y29udHJvbC1tZW51KQogICkKCgooZGVmdW4gZGVidWctcHJvcGVydGllcyAoYnVmZmVyKQog
IChsZXQgKChwIChwb2ludC1taW4gYnVmZmVyKSkgcSkKICAgIChwcmludCAobGlzdCAxICh0
ZXh0LXByb3BlcnRpZXMtYXQgMSBidWZmZXIpKSkKICAgICh3aGlsZSAoc2V0cSBxIChuZXh0
LXByb3BlcnR5LWNoYW5nZSBwIGJ1ZmZlcikpCiAgICAgIChwcmludCAobGlzdCBwIChidWZm
ZXItc3Vic3RyaW5nIHAgcSBidWZmZXIpICh0ZXh0LXByb3BlcnRpZXMtYXQgcCBidWZmZXIp
KSkKICAgICAgKHNldHEgcCBxKQogICAgICApKSkKCihwcm92aWRlICdzZWFyY2gtbWVudSkK
Cjs7OyBzZWFyY2gtbWVudS5lbCBlbmRzIGhlcmUK

--ldeo4abDjgMW0cvR7wEcF3/UgaEyFnghCaC7bx/d--

