From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Drew Adams Newsgroups: gmane.emacs.bugs Subject: bug#29321: Isearch hit count Date: Sun, 28 Oct 2018 17:22:28 -0700 (PDT) Message-ID: <3e52e081-ad81-41a6-a0d6-295790db82d4@default> References: <87o9bfqfc3.fsf@mail.linkov.net> <988284b2-58af-428d-9c6f-da56db0c6565@default> <874ld5elxb.fsf@mail.linkov.net> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="__15407725501702221abhmp0016.oracle.com" X-Trace: blaine.gmane.org 1540772473 32617 195.159.176.226 (29 Oct 2018 00:21:13 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 29 Oct 2018 00:21:13 +0000 (UTC) Cc: charles@aurox.ch, 29321@debbugs.gnu.org To: Juri Linkov Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Oct 29 01:21:08 2018 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gGvIp-0008MA-2Q for geb-bug-gnu-emacs@m.gmane.org; Mon, 29 Oct 2018 01:21:07 +0100 Original-Received: from localhost ([::1]:42770 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gGvKv-0004AZ-8I for geb-bug-gnu-emacs@m.gmane.org; Sun, 28 Oct 2018 20:23:17 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:34954) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gGvKl-0004AI-Ey for bug-gnu-emacs@gnu.org; Sun, 28 Oct 2018 20:23:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gGvKi-00051U-6f for bug-gnu-emacs@gnu.org; Sun, 28 Oct 2018 20:23:07 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:45235) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gGvKg-0004zV-37 for bug-gnu-emacs@gnu.org; Sun, 28 Oct 2018 20:23:04 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gGvKf-0005D0-VE for bug-gnu-emacs@gnu.org; Sun, 28 Oct 2018 20:23:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Drew Adams Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 29 Oct 2018 00:23:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 29321 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 29321-submit@debbugs.gnu.org id=B29321.154077257119985 (code B ref 29321); Mon, 29 Oct 2018 00:23:01 +0000 Original-Received: (at 29321) by debbugs.gnu.org; 29 Oct 2018 00:22:51 +0000 Original-Received: from localhost ([127.0.0.1]:49494 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gGvKU-0005CH-KF for submit@debbugs.gnu.org; Sun, 28 Oct 2018 20:22:50 -0400 Original-Received: from aserp2120.oracle.com ([141.146.126.78]:55248) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gGvKS-0005C4-6x for 29321@debbugs.gnu.org; Sun, 28 Oct 2018 20:22:49 -0400 Original-Received: from pps.filterd (aserp2120.oracle.com [127.0.0.1]) by aserp2120.oracle.com (8.16.0.22/8.16.0.22) with SMTP id w9T0KwVJ072453; Mon, 29 Oct 2018 00:22:32 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=mime-version : message-id : date : from : sender : to : cc : subject : references : in-reply-to : content-type; s=corp-2018-07-02; bh=sl2dkbNwoAbrAiMByLsnvPlk5mtXCJyO9ZhJvt2TF4E=; b=W89L68W9MNnwRXtN0vsoYCsfp7x4U2Tzsx3/GrQQbI9KNPJLdf++GuRpWjqoxi5TU3pS NgQxBgSOpxpxE72NUTXe9fq5xQsWYv53+C6FvKdPvjOnoXNJN2r6wvQdyITYB0VnVxJp Aj5OvDSkYwal8ViRmIeq4E53D2FEUOEk0DxYe5OSeOFYQLesPqr7c1TXAtP63rAqZyuS 6KlQfxLo7sNEN0cXwpZNRS0WJ8F0Fe16pAzIpYOoc7vYOo3PFE1CYJAsS+dPnW8948we 4JU6FJcKk7xO5IqkzUlP5I07TRzLM4REn0nLmuhmeg2L4/Ut++JsHiebht76c5vVSA74 1Q== Original-Received: from aserv0022.oracle.com (aserv0022.oracle.com [141.146.126.234]) by aserp2120.oracle.com with ESMTP id 2ncfypjvqf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 29 Oct 2018 00:22:32 +0000 Original-Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236]) by aserv0022.oracle.com (8.14.4/8.14.4) with ESMTP id w9T0MVJ0031382 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 29 Oct 2018 00:22:31 GMT Original-Received: from abhmp0016.oracle.com (abhmp0016.oracle.com [141.146.116.22]) by aserv0122.oracle.com (8.14.4/8.14.4) with ESMTP id w9T0MUYX022184; Mon, 29 Oct 2018 00:22:30 GMT In-Reply-To: <874ld5elxb.fsf@mail.linkov.net> X-Priority: 3 X-Mailer: Oracle Beehive Extensions for Outlook 2.0.1.9.1 (1003210) [OL 16.0.4756.0 (x86)] X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=9060 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1807170000 definitions=main-1810290002 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 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: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:151763 Archived-At: --__15407725501702221abhmp0016.oracle.com Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable > > First, when I hit `C-s ea' I see 1248/2520, but then another > > `C-s' shows 1249/2530 - the total has jumped by 10. > > > > I continue searching forward, and the numbering seems normal: > > 1250/2530, 1251/2530. OK, so the initial total was off by 10. > > > > But at match #1251 I switch to `C-r', and the match number is > > 1241/2520: both the match number and the total are off by 10. > > > > On a small buffer I don't notice this problem. > > > > Do you see this too? If not, maybe I patched mistakenly. >=20 > I see this too. The problem was in too frequent updating > of the Isearch prompt - the loop updated it after every > max-at-a-time (default 20) matches, thus causing flickering > (that didn't update the final number). Now changed to show > only the final number without showing intermediate numbers > (that are invalid during counting anyway). >=20 > Please try a new patch, it removes flickering: OK, I applied the new patch. Here's my feedback, in case it helps. For my own code, after the update search seems very slow. Just mentioning that - not that it's relevant. For vanilla Emacs after the update: 1. When I repeat searching quickly the count can freeze (not get updated), and when I stop or slow down, and then start (repeat) again, it is still frozen. 2. When that's happened and I reverse direction, it's also frozen, even without repeating quickly. And what's worse, the match number is completely wrong. E.g., if I'm near the buffer beginning the match number is near the end. Perhaps it is the complement (numbering from the end and not from the beginning, when C-M-r direction. In general, the numbers seem quite messed up now. I can go to the end of the file and get different numbers for the last match, neither of which is the highest match number (i.e., not =3D total). BTW, with the previous update I'm pretty sure I at one point saw the same thing about the numbering switching to the complement (might not be the exact complement). I even thought that might be intended, and so I reworded the doc string of the option to fit that. But afterward I never saw that again yesterday. See attached screenshot. Note that this was a new search with the same input as a previous search. But once it has the wrong numbering it seems to stick with the "complement" numbers. Dunno how much this helps. I again applied the patch manually. I've attached the resulting file - perhaps you can diff it against what it should be, to see if it is faithful or I made a mistake. That might save us some time, if I did make a mistake. I don't want to provide misleading feedback. Less relevant - just personal opinion: I prefer the numbering in the prefix form CURRENT/TOTAL, rather than the suffix, I think. But I could change my mind. What are the reasons you prefer it as a suffix - or is it just better in terms of implementation/performance? BTW: I just noticed that the doc string for the option is now wrong, since it still says "CURRENT/TOTAL". Maybe you should to change it to just say something like "show the current match number and the total number of..." HTH, and thanks for working on this. - Drew --__15407725501702221abhmp0016.oracle.com Content-Type: application/octet-stream; name="isearch-2018-10-27a-AFTER-JURI-10-28a.el" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="isearch-2018-10-27a-AFTER-JURI-10-28a.el" Ozs7IGlzZWFyY2guZWwgLS0tIGluY3JlbWVudGFsIHNlYXJjaCBtaW5vciBtb2RlIC0qLSBsZXhp Y2FsLWJpbmRpbmc6IHQgLSotCgo7OyBDb3B5cmlnaHQgKEMpIDE5OTItMTk5NywgMTk5OS0yMDE4 IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgoKOzsgQXV0aG9yOiBEYW5pZWwgTGFMaWJl cnRlIDxsaWJlcnRlQGNzLnVpdWMuZWR1Pgo7OyBNYWludGFpbmVyOiBlbWFjcy1kZXZlbEBnbnUu b3JnCjs7IEtleXdvcmRzOiBtYXRjaGluZwo7OyBQYWNrYWdlOiBlbWFjcwoKOzsgVGhpcyBmaWxl IGlzIHBhcnQgb2YgR05VIEVtYWNzLgoKOzsgR05VIEVtYWNzIGlzIGZyZWUgc29mdHdhcmU6IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKOzsgaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKOzsgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5z ZSwgb3IKOzsgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KCjs7IEdOVSBFbWFj cyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAo7OyBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgo7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlCjs7IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCgo7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZQo7OyBhbG9uZyB3aXRoIEdOVSBFbWFjcy4gIElmIG5vdCwgc2VlIDxo dHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCgo7OzsgQ29tbWVudGFyeToKCjs7IEluc3Ry dWN0aW9ucwoKOzsgRm9yIHByb2dyYW1tZWQgdXNlIG9mIGlzZWFyY2gtbW9kZSwgZS5nLiBjYWxs aW5nIChpc2VhcmNoLWZvcndhcmQpLAo7OyBpc2VhcmNoLW1vZGUgYmVoYXZlcyBtb2RhbGx5IGFu ZCBkb2VzIG5vdCByZXR1cm4gdW50aWwgdGhlIHNlYXJjaAo7OyBpcyBjb21wbGV0ZWQuICBJdCB1 c2VzIGEgcmVjdXJzaXZlLWVkaXQgdG8gYmVoYXZlIHRoaXMgd2F5LgoKOzsgVGhlIGtleSBiaW5k aW5ncyBhY3RpdmUgd2l0aGluIGlzZWFyY2gtbW9kZSBhcmUgZGVmaW5lZCBiZWxvdyBpbgo7OyBg aXNlYXJjaC1tb2RlLW1hcCcuICBBbHNvIHNlZSBtaW5pYnVmZmVyLWxvY2FsLWlzZWFyY2gtbWFw Cjs7IGZvciBiaW5kaW5ncyBhY3RpdmUgZHVyaW5nIGBpc2VhcmNoLWVkaXQtc3RyaW5nJy4KCjs7 IGlzZWFyY2gtbW9kZSBzaG91bGQgd29yayBldmVuIGlmIHlvdSBzd2l0Y2ggd2luZG93cyB3aXRo IHRoZSBtb3VzZSwKOzsgaW4gd2hpY2ggY2FzZSBpc2VhcmNoLW1vZGUgaXMgdGVybWluYXRlZCBh dXRvbWF0aWNhbGx5IGJlZm9yZSB0aGUKOzsgc3dpdGNoLgoKOzsgVGhlIHNlYXJjaCByaW5nIGFu ZCBjb21wbGV0aW9uIGNvbW1hbmRzIGF1dG9tYXRpY2FsbHkgcHV0IHlvdSBpbgo7OyB0aGUgbWlu aWJ1ZmZlciB0byBlZGl0IHRoZSBzdHJpbmcuICBUaGlzIGdpdmVzIHlvdSBhIGNoYW5jZSB0bwo7 OyBtb2RpZnkgdGhlIHNlYXJjaCBzdHJpbmcgYmVmb3JlIGV4ZWN1dGluZyB0aGUgc2VhcmNoLiAg VGhlcmUgYXJlCjs7IHRocmVlIGNvbW1hbmRzIHRvIHRlcm1pbmF0ZSB0aGUgZWRpdGluZzogQy1z IGFuZCBDLXIgZXhpdCB0aGUKOzsgbWluaWJ1ZmZlciBhbmQgc2VhcmNoIGZvcndhcmQgYW5kIHJl dmVyc2UgcmVzcGVjdGl2ZWx5LCB3aGlsZSBDLW0KOzsgZXhpdHMgYW5kIHNlYXJjaGVzIGluIHRo ZSBsYXN0IHNlYXJjaCBkaXJlY3Rpb24uCgo7OyBFeGl0aW5nIGltbWVkaWF0ZWx5IGZyb20gaXNl YXJjaCB1c2VzIGlzZWFyY2gtZWRpdC1zdHJpbmcgaW5zdGVhZAo7OyBvZiBub25pbmNyZW1lbnRh bC1zZWFyY2gsIGlmIHNlYXJjaC1ub25pbmNyZW1lbnRhbC1pbnN0ZWFkIGlzIG5vbi1uaWwuCjs7 IFRoZSBuYW1lIG9mIHRoaXMgb3B0aW9uIHNob3VsZCBwcm9iYWJseSBiZSBjaGFuZ2VkIGlmIHdl IGRlY2lkZSB0bwo7OyBrZWVwIHRoZSBiZWhhdmlvci4gIE5vIHBvaW50IGluIGZvcmNpbmcgbm9u aW5jcmVtZW50YWwgc2VhcmNoIHVudGlsCjs7IHRoZSBsYXN0IHBvc3NpYmxlIG1vbWVudC4KCjs7 OyBDb2RlOgoKKGV2YWwtd2hlbi1jb21waWxlIChyZXF1aXJlICdjbC1saWIpKQoMCjs7IFNvbWUg YWRkaXRpb25hbCBvcHRpb25zIGFuZCBjb25zdGFudHMuCgooZGVmZ3JvdXAgaXNlYXJjaCBuaWwK ICAiSW5jcmVtZW50YWwgc2VhcmNoIG1pbm9yIG1vZGUuIgogIDpsaW5rICcoZW1hY3MtY29tbWVu dGFyeS1saW5rICJpc2VhcmNoIikKICA6bGluayAnKGN1c3RvbS1tYW51YWwgIihlbWFjcylJbmNy ZW1lbnRhbCBTZWFyY2giKQogIDpwcmVmaXggImlzZWFyY2gtIgogIDpwcmVmaXggInNlYXJjaC0i CiAgOmdyb3VwICdtYXRjaGluZykKCgooZGVmY3VzdG9tIHNlYXJjaC1leGl0LW9wdGlvbiB0CiAg IkRlZmluZXMgd2hhdCBjb250cm9sIGNoYXJhY3RlcnMgZG8gaW4gaW5jcmVtZW50YWwgc2VhcmNo LgpJZiB0LCByYW5kb20gY29udHJvbCBhbmQgbWV0YSBjaGFyYWN0ZXJzIHRlcm1pbmF0ZSB0aGUg c2VhcmNoCmFuZCBhcmUgdGhlbiBleGVjdXRlZCBub3JtYWxseS4KSWYgYGVkaXQnLCBlZGl0IHRo ZSBzZWFyY2ggc3RyaW5nIGluc3RlYWQgb2YgZXhpdGluZy4KSWYgYG1vdmUnLCBleHRlbmQgdGhl IHNlYXJjaCBzdHJpbmcgYnkgbW90aW9uIGNvbW1hbmRzCnRoYXQgaGF2ZSB0aGUgYGlzZWFyY2gt bW92ZScgcHJvcGVydHkgb24gdGhlaXIgc3ltYm9scwplcXVhbCB0byBgZW5hYmxlZCcsIG9yIHRo ZSBzaGlmdC10cmFuc2xhdGVkIGNvbW1hbmQgaXMKbm90IGRpc2FibGVkIGJ5IHRoZSB2YWx1ZSBg ZGlzYWJsZWQnIG9mIHRoZSBzYW1lIHByb3BlcnR5LgpJZiBgc2hpZnQtbW92ZScsIGV4dGVuZCB0 aGUgc2VhcmNoIHN0cmluZyBieSBtb3Rpb24gY29tbWFuZHMKd2hpbGUgaG9sZGluZyBkb3duIHRo ZSBzaGlmdCBrZXkuCkJvdGggYG1vdmUnIGFuZCBgc2hpZnQtbW92ZScgZXh0ZW5kIHRoZSBzZWFy Y2ggc3RyaW5nIGJ5IHlhbmtpbmcgdGV4dAp0aGF0IGVuZHMgYXQgdGhlIG5ldyBwb3NpdGlvbiBh ZnRlciBtb3ZpbmcgcG9pbnQgaW4gdGhlIGN1cnJlbnQgYnVmZmVyLgpJZiBgYXBwZW5kJywgdGhl IGNoYXJhY3RlcnMgd2hpY2ggeW91IHR5cGUgdGhhdCBhcmUgbm90IGludGVycHJldGVkIGJ5CnRo ZSBpbmNyZW1lbnRhbCBzZWFyY2ggYXJlIHNpbXBseSBhcHBlbmRlZCB0byB0aGUgc2VhcmNoIHN0 cmluZy4KSWYgbmlsLCBydW4gdGhlIGNvbW1hbmQgd2l0aG91dCBleGl0aW5nIElzZWFyY2guIgog IDp0eXBlICcoY2hvaWNlIChjb25zdCA6dGFnICJUZXJtaW5hdGUgaW5jcmVtZW50YWwgc2VhcmNo IiB0KQogICAgICAgICAgICAgICAgIChjb25zdCA6dGFnICJFZGl0IHRoZSBzZWFyY2ggc3RyaW5n IiBlZGl0KQogICAgICAgICAgICAgICAgIChjb25zdCA6dGFnICJFeHRlbmQgdGhlIHNlYXJjaCBz dHJpbmcgYnkgbW90aW9uIGNvbW1hbmRzIiBtb3ZlKQogICAgICAgICAgICAgICAgIChjb25zdCA6 dGFnICJFeHRlbmQgdGhlIHNlYXJjaCBzdHJpbmcgYnkgc2hpZnRlZCBtb3Rpb24ga2V5cyIgc2hp ZnQtbW92ZSkKICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiQXBwZW5kIGNvbnRyb2wgY2hh cmFjdGVycyB0byB0aGUgc2VhcmNoIHN0cmluZyIgYXBwZW5kKQogICAgICAgICAgICAgICAgIChj b25zdCA6dGFnICJEb24ndCB0ZXJtaW5hdGUgaW5jcmVtZW50YWwgc2VhcmNoIiBuaWwpKQogIDp2 ZXJzaW9uICIyNy4xIikKCihkZWZjdXN0b20gc2VhcmNoLXNsb3ctd2luZG93LWxpbmVzIDEKICAi TnVtYmVyIG9mIGxpbmVzIGluIHNsb3cgc2VhcmNoIGRpc3BsYXkgd2luZG93cy4KVGhlc2UgYXJl IHRoZSBzaG9ydCB3aW5kb3dzIHVzZWQgZHVyaW5nIGluY3JlbWVudGFsIHNlYXJjaCBvbiBzbG93 IHRlcm1pbmFscy4KTmVnYXRpdmUgbWVhbnMgcHV0IHRoZSBzbG93IHNlYXJjaCB3aW5kb3cgYXQg dGhlIHRvcCAobm9ybWFsbHkgaXQncyBhdCBib3R0b20pCmFuZCB0aGUgdmFsdWUgaXMgbWludXMg dGhlIG51bWJlciBvZiBsaW5lcy4iCiAgOnR5cGUgJ2ludGVnZXIpCgooZGVmY3VzdG9tIHNlYXJj aC1zbG93LXNwZWVkIDEyMDAKICAiSGlnaGVzdCB0ZXJtaW5hbCBzcGVlZCBhdCB3aGljaCB0byB1 c2UgXCJzbG93XCIgc3R5bGUgaW5jcmVtZW50YWwgc2VhcmNoLgpUaGlzIGlzIHRoZSBzdHlsZSB3 aGVyZSBhIG9uZS1saW5lIHdpbmRvdyBpcyBjcmVhdGVkIHRvIHNob3cgdGhlIGxpbmUKdGhhdCB0 aGUgc2VhcmNoIGhhcyByZWFjaGVkLiIKICA6dHlwZSAnaW50ZWdlcikKCihkZWZjdXN0b20gc2Vh cmNoLXVwcGVyLWNhc2UgJ25vdC15YW5rcwogICJJZiBub24tbmlsLCB1cHBlciBjYXNlIGNoYXJz IGRpc2FibGUgY2FzZSBmb2xkIHNlYXJjaGluZy4KVGhhdCBpcywgdXBwZXIgYW5kIGxvd2VyIGNh c2UgY2hhcnMgbXVzdCBtYXRjaCBleGFjdGx5LgpUaGlzIGFwcGxpZXMgbm8gbWF0dGVyIHdoZXJl IHRoZSBjaGFycyBjb21lIGZyb20sIGJ1dCBkb2VzIG5vdAphcHBseSB0byBjaGFycyBpbiByZWdl eHBzIHRoYXQgYXJlIHByZWZpeGVkIHdpdGggYFxcJy4KSWYgdGhpcyB2YWx1ZSBpcyBgbm90LXlh bmtzJywgdGV4dCB5YW5rZWQgaW50byB0aGUgc2VhcmNoIHN0cmluZwppbiBJc2VhcmNoIG1vZGUg aXMgYWx3YXlzIGRvd25jYXNlZC4iCiAgOnR5cGUgJyhjaG9pY2UgKGNvbnN0IDp0YWcgIm9mZiIg bmlsKQoJCSAoY29uc3Qgbm90LXlhbmtzKQoJCSAob3RoZXIgOnRhZyAib24iIHQpKSkKCihkZWZj dXN0b20gc2VhcmNoLW5vbmluY3JlbWVudGFsLWluc3RlYWQgdAogICJJZiBub24tbmlsLCBkbyBh IG5vbmluY3JlbWVudGFsIHNlYXJjaCBpbnN0ZWFkIG9mIGV4aXRpbmcgaW1tZWRpYXRlbHkuClRo aXMgYWZmZWN0cyB0aGUgYmVoYXZpb3Igb2YgYGlzZWFyY2gtZXhpdCcgYW5kIGFueSBrZXkgYm91 bmQgdG8gdGhhdApjb21tYW5kOiBpZiB0aGlzIHZhcmlhYmxlIGlzIG5pbCwgYGlzZWFyY2gtZXhp dCcgYWx3YXlzIGV4aXRzIHRoZSBzZWFyY2g7CmlmIHRoZSB2YWx1ZSBpcyBub24tbmlsLCBhbmQg dGhlIHNlYXJjaCBzdHJpbmcgaXMgZW1wdHksIGBpc2VhcmNoLWV4aXQnCnN0YXJ0cyBhIG5vbmlu Y3JlbWVudGFsIHNlYXJjaCBpbnN0ZWFkLiAgKEFjdHVhbGx5LCBgaXNlYXJjaC1lZGl0LXN0cmlu ZycKaXMgY2FsbGVkIHRvIGxldCB5b3UgZW50ZXIgdGhlIHNlYXJjaCBzdHJpbmcsIGFuZCBSRVQg dGVybWluYXRlcyBlZGl0aW5nCmFuZCBkb2VzIGEgbm9uaW5jcmVtZW50YWwgc2VhcmNoLikiCiAg OnR5cGUgJ2Jvb2xlYW4pCgooZGVmY3VzdG9tIHNlYXJjaC13aGl0ZXNwYWNlLXJlZ2V4cCAocHVy ZWNvcHkgIlxccy0rIikKICAiSWYgbm9uLW5pbCwgcmVndWxhciBleHByZXNzaW9uIHRvIG1hdGNo IGEgc2VxdWVuY2Ugb2Ygd2hpdGVzcGFjZSBjaGFycy4KV2hlbiB5b3UgZW50ZXIgYSBzcGFjZSBv ciBzcGFjZXMgaW4gdGhlIGluY3JlbWVudGFsIHNlYXJjaCwgaXQKd2lsbCBtYXRjaCBhbnkgc2Vx dWVuY2UgbWF0Y2hlZCBieSB0aGlzIHJlZ2V4cC4gIEFzIGFuIGV4Y2VwdGlvbiwKc3BhY2VzIGFy ZSB0cmVhdGVkIG5vcm1hbGx5IGluIHJlZ2V4cCBpbmNyZW1lbnRhbCBzZWFyY2ggaWYgdGhleQpv Y2N1ciBpbiBhIHJlZ2V4cCBjb25zdHJ1Y3QgbGlrZSBbLi4uXSBvciAqLCArIG9yID8uCgpJZiB0 aGUgdmFsdWUgaXMgYSBzdHJpbmcsIGl0IGFwcGxpZXMgdG8gYm90aCBvcmRpbmFyeSBhbmQKcmVn ZXhwIGluY3JlbWVudGFsIHNlYXJjaC4gIElmIHRoZSB2YWx1ZSBpcyBuaWwsIG9yCmBpc2VhcmNo LWxheC13aGl0ZXNwYWNlJyBpcyBuaWwgZm9yIG9yZGluYXJ5IGluY3JlbWVudGFsIHNlYXJjaCwg b3IKYGlzZWFyY2gtcmVnZXhwLWxheC13aGl0ZXNwYWNlJyBpcyBuaWwgZm9yIHJlZ2V4cCBpbmNy ZW1lbnRhbCBzZWFyY2gsCnRoZW4gZWFjaCBzcGFjZSB5b3UgdHlwZSBtYXRjaGVzIGxpdGVyYWxs eSwgYWdhaW5zdCBvbmUgc3BhY2UuCgpZb3UgbWlnaHQgd2FudCB0byB1c2Ugc29tZXRoaW5nIGxp a2UgXCJbIFxcdFxcclxcbl0rXCIgaW5zdGVhZC4KSW4gdGhlIEN1c3RvbWl6YXRpb24gYnVmZmVy LCB0aGF0IGlzIGBbJyBmb2xsb3dlZCBieSBhIHNwYWNlLAphIHRhYiwgYSBjYXJyaWFnZSByZXR1 cm4gKGNvbnRyb2wtTSksIGEgbmV3bGluZSwgYW5kIGBdKycuIgogIDp0eXBlICcoY2hvaWNlIChj b25zdCA6dGFnICJNYXRjaCBTcGFjZXMgTGl0ZXJhbGx5IiBuaWwpCgkJIHJlZ2V4cCkKICA6dmVy c2lvbiAiMjQuMyIpCgooZGVmY3VzdG9tIHNlYXJjaC1pbnZpc2libGUgJ29wZW4KICAiSWYgdCBp bmNyZW1lbnRhbCBzZWFyY2gvcXVlcnktcmVwbGFjZSBjYW4gbWF0Y2ggaGlkZGVuIHRleHQuCkEg bmlsIHZhbHVlIG1lYW5zIGRvbid0IG1hdGNoIGludmlzaWJsZSB0ZXh0LgpXaGVuIHRoZSB2YWx1 ZSBpcyBgb3BlbicsIGlmIHRoZSB0ZXh0IG1hdGNoZWQgaXMgbWFkZSBpbnZpc2libGUgYnkKYW4g b3ZlcmxheSBoYXZpbmcgYSBub24tbmlsIGBpbnZpc2libGUnIHByb3BlcnR5LCBhbmQgdGhhdCBv dmVybGF5CmhhcyBhIG5vbi1uaWwgcHJvcGVydHkgYGlzZWFyY2gtb3Blbi1pbnZpc2libGUnLCB0 aGVuIGluY3JlbWVudGFsCnNlYXJjaCB3aWxsIHNob3cgdGhlIGhpZGRlbiB0ZXh0LiAgKFRoaXMg YXBwbGllcyB3aGVuIHVzaW5nIGBvdXRsaW5lLmVsJwphbmQgYGhpZGVzaG93LmVsJy4pCgpUbyB0 ZW1wb3JhcmlseSBjaGFuZ2UgdGhlIHZhbHVlIGZvciBhbiBhY3RpdmUgaW5jcmVtZW50YWwgc2Vh cmNoLAp1c2UgXFw8aXNlYXJjaC1tb2RlLW1hcD5cXFtpc2VhcmNoLXRvZ2dsZS1pbnZpc2libGVd LgoKU2VlIGFsc28gdGhlIHJlbGF0ZWQgb3B0aW9uIGBpc2VhcmNoLWhpZGUtaW1tZWRpYXRlbHkn LgoKU2VlIGFsc28gYHJldmVhbC1tb2RlJyBpZiB5b3Ugd2FudCBvdmVybGF5cyB0byBhdXRvbWF0 aWNhbGx5IGJlIG9wZW5lZAp3aGVuZXZlciBwb2ludCBpcyBpbiBvbmUgb2YgdGhlbS4iCiAgOnR5 cGUgJyhjaG9pY2UgKGNvbnN0IDp0YWcgIk1hdGNoIGhpZGRlbiB0ZXh0IiB0KQoJCSAoY29uc3Qg OnRhZyAiT3BlbiBvdmVybGF5cyIgb3BlbikKCQkgKGNvbnN0IDp0YWcgIkRvbid0IG1hdGNoIGhp ZGRlbiB0ZXh0IiBuaWwpKSkKCihkZWZjdXN0b20gaXNlYXJjaC1oaWRlLWltbWVkaWF0ZWx5IHQK ICAiSWYgbm9uLW5pbCwgcmUtaGlkZSBhbiBpbnZpc2libGUgbWF0Y2ggcmlnaHQgYXdheS4KVGhp cyB2YXJpYWJsZSBtYWtlcyBhIGRpZmZlcmVuY2Ugd2hlbiBgc2VhcmNoLWludmlzaWJsZScgaXMg c2V0IHRvIGBvcGVuJy4KSWYgbm9uLW5pbCwgaW52aXNpYmxlIG1hdGNoZXMgYXJlIHJlLWhpZGRl biBhcyBzb29uIGFzIHRoZSBtYXRjaCBtb3ZlcwpvZmYgdGhlIGludmlzaWJsZSB0ZXh0IHN1cnJv dW5kaW5nIHRoZSBtYXRjaC4KSWYgbmlsIHRoZW4gZG8gbm90IHJlLWhpZGUgb3BlbmVkIGludmlz aWJsZSB0ZXh0IHdoZW4gdGhlIG1hdGNoIG1vdmVzLgpXaGF0ZXZlciB0aGUgdmFsdWUsIGFsbCBv cGVuZWQgaW52aXNpYmxlIHRleHQgaXMgaGlkZGVuIGFnYWluIGFmdGVyIGV4aXRpbmcKdGhlIHNl YXJjaCwgd2l0aCB0aGUgZXhjZXB0aW9uIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgbWF0Y2gsIGlm IGFueS4iCiAgOnR5cGUgJ2Jvb2xlYW4pCgooZGVmY3VzdG9tIGlzZWFyY2gtcmVzdW1lLWluLWNv bW1hbmQtaGlzdG9yeSBuaWwKICAiSWYgbm9uLW5pbCwgYGlzZWFyY2gtcmVzdW1lJyBjb21tYW5k cyBhcmUgYWRkZWQgdG8gdGhlIGNvbW1hbmQgaGlzdG9yeS4KVGhpcyBhbGxvd3MgeW91IHRvIHJl c3VtZSBlYXJsaWVyIElzZWFyY2ggc2Vzc2lvbnMgdGhyb3VnaCB0aGUKY29tbWFuZCBoaXN0b3J5 LiIKICA6dHlwZSAnYm9vbGVhbikKCihkZWZ2YXIgaXNlYXJjaC1tb2RlLWhvb2sgbmlsCiAgIkZ1 bmN0aW9uKHMpIHRvIGNhbGwgYWZ0ZXIgc3RhcnRpbmcgdXAgYW4gaW5jcmVtZW50YWwgc2VhcmNo LiIpCgooZGVmdmFyIGlzZWFyY2gtdXBkYXRlLXBvc3QtaG9vayBuaWwKICAiRnVuY3Rpb24ocykg dG8gY2FsbCBhZnRlciBpc2VhcmNoIGhhcyBmb3VuZCBtYXRjaGVzIGluIHRoZSBidWZmZXIuIikK CihkZWZ2YXIgaXNlYXJjaC1tb2RlLWVuZC1ob29rIG5pbAogICJGdW5jdGlvbihzKSB0byBjYWxs IGFmdGVyIHRlcm1pbmF0aW5nIGFuIGluY3JlbWVudGFsIHNlYXJjaC4KV2hlbiB0aGVzZSBmdW5j dGlvbnMgYXJlIGNhbGxlZCwgYGlzZWFyY2gtbW9kZS1lbmQtaG9vay1xdWl0JwppcyBub24tbmls IGlmIHRoZSB1c2VyIHF1aXRzIHRoZSBzZWFyY2guIikKCihkZWZ2YXIgaXNlYXJjaC1tb2RlLWVu ZC1ob29rLXF1aXQgbmlsCiAgIk5vbi1uaWwgd2hpbGUgcnVubmluZyBgaXNlYXJjaC1tb2RlLWVu ZC1ob29rJyBpZiB0aGUgdXNlciBxdWl0cyB0aGUgc2VhcmNoLiIpCgooZGVmdmFyIGlzZWFyY2gt bWVzc2FnZS1mdW5jdGlvbiBuaWwKICAiRnVuY3Rpb24gdG8gY2FsbCB0byBkaXNwbGF5IHRoZSBz ZWFyY2ggcHJvbXB0LgpJZiBuaWwsIHVzZSBmdW5jdGlvbiBgaXNlYXJjaC1tZXNzYWdlJy4iKQoK KGRlZnZhciBpc2VhcmNoLXdyYXAtZnVuY3Rpb24gbmlsCiAgIkZ1bmN0aW9uIHRvIGNhbGwgdG8g d3JhcCB0aGUgc2VhcmNoIHdoZW4gc2VhcmNoIGlzIGZhaWxlZC4KSWYgbmlsLCBtb3ZlIHBvaW50 IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGJ1ZmZlciBmb3IgYSBmb3J3YXJkIHNlYXJjaCwKb3Ig dG8gdGhlIGVuZCBvZiB0aGUgYnVmZmVyIGZvciBhIGJhY2t3YXJkIHNlYXJjaC4iKQoKKGRlZnZh ciBpc2VhcmNoLXB1c2gtc3RhdGUtZnVuY3Rpb24gbmlsCiAgIkZ1bmN0aW9uIHRvIHNhdmUgYSBm dW5jdGlvbiByZXN0b3JpbmcgdGhlIG1vZGUtc3BlY2lmaWMgSXNlYXJjaCBzdGF0ZQp0byB0aGUg c2VhcmNoIHN0YXR1cyBzdGFjay4iKQoKKGRlZnZhciBpc2VhcmNoLWZpbHRlci1wcmVkaWNhdGUg Iydpc2VhcmNoLWZpbHRlci12aXNpYmxlCiAgIlByZWRpY2F0ZSB0aGF0IGZpbHRlcnMgdGhlIHNl YXJjaCBoaXRzIHRoYXQgd291bGQgbm9ybWFsbHkgYmUgYXZhaWxhYmxlLgpTZWFyY2ggaGl0cyB0 aGF0IGRpc3NhdGlzZnkgdGhlIHByZWRpY2F0ZSBhcmUgc2tpcHBlZC4gIFRoZSBmdW5jdGlvbgpo YXMgdHdvIGFyZ3VtZW50czogdGhlIHBvc2l0aW9ucyBvZiBzdGFydCBhbmQgZW5kIG9mIHRleHQg bWF0Y2hlZCBieQp0aGUgc2VhcmNoLiAgSWYgdGhpcyBmdW5jdGlvbiByZXR1cm5zIG5pbCwgY29u dGludWUgc2VhcmNoaW5nIHdpdGhvdXQKc3RvcHBpbmcgYXQgdGhpcyBtYXRjaC4KSWYgeW91IHVz ZSBgYWRkLWZ1bmN0aW9uJyB0byBtb2RpZnkgdGhpcyB2YXJpYWJsZSwgeW91IGNhbiB1c2UgdGhl CmBpc2VhcmNoLW1lc3NhZ2UtcHJlZml4JyBhZHZpY2UgcHJvcGVydHkgdG8gc3BlY2lmeSB0aGUg cHJlZml4IHN0cmluZwpkaXNwbGF5ZWQgaW4gdGhlIHNlYXJjaCBtZXNzYWdlLiIpCgo7OyBTZWFy Y2ggcmluZy4KCihkZWZ2YXIgc2VhcmNoLXJpbmcgbmlsCiAgIkxpc3Qgb2Ygc2VhcmNoIHN0cmlu ZyBzZXF1ZW5jZXMuIikKKGRlZnZhciByZWdleHAtc2VhcmNoLXJpbmcgbmlsCiAgIkxpc3Qgb2Yg cmVndWxhciBleHByZXNzaW9uIHNlYXJjaCBzdHJpbmcgc2VxdWVuY2VzLiIpCgooZGVmY3VzdG9t IHNlYXJjaC1yaW5nLW1heCAxNgogICJNYXhpbXVtIGxlbmd0aCBvZiBzZWFyY2ggcmluZyBiZWZv cmUgb2xkZXN0IGVsZW1lbnRzIGFyZSB0aHJvd24gYXdheS4iCiAgOnR5cGUgJ2ludGVnZXIpCihk ZWZjdXN0b20gcmVnZXhwLXNlYXJjaC1yaW5nLW1heCAxNgogICJNYXhpbXVtIGxlbmd0aCBvZiBy ZWdleHAgc2VhcmNoIHJpbmcgYmVmb3JlIG9sZGVzdCBlbGVtZW50cyBhcmUgdGhyb3duIGF3YXku IgogIDp0eXBlICdpbnRlZ2VyKQoKKGRlZnZhciBzZWFyY2gtcmluZy15YW5rLXBvaW50ZXIgbmls CiAgIkluZGV4IGluIGBzZWFyY2gtcmluZycgb2YgbGFzdCBzdHJpbmcgcmV1c2VkLgpJdCBpcyBu aWwgaWYgbm9uZSB5ZXQuIikKKGRlZnZhciByZWdleHAtc2VhcmNoLXJpbmcteWFuay1wb2ludGVy IG5pbAogICJJbmRleCBpbiBgcmVnZXhwLXNlYXJjaC1yaW5nJyBvZiBsYXN0IHN0cmluZyByZXVz ZWQuCkl0IGlzIG5pbCBpZiBub25lIHlldC4iKQoKKGRlZmN1c3RvbSBzZWFyY2gtcmluZy11cGRh dGUgbmlsCiAgIk5vbi1uaWwgaWYgYWR2YW5jaW5nIG9yIHJldHJlYXRpbmcgaW4gdGhlIHNlYXJj aCByaW5nIHNob3VsZCBjYXVzZSBzZWFyY2guCkRlZmF1bHQgdmFsdWUsIG5pbCwgbWVhbnMgZWRp dCB0aGUgc3RyaW5nIGluc3RlYWQuIgogIDp0eXBlICdib29sZWFuKQoKKGF1dG9sb2FkICdjaGFy LWZvbGQtdG8tcmVnZXhwICJjaGFyLWZvbGQiKQoKKGRlZmN1c3RvbSBzZWFyY2gtZGVmYXVsdC1t b2RlIG5pbAogICJEZWZhdWx0IG1vZGUgdG8gdXNlIHdoZW4gc3RhcnRpbmcgaXNlYXJjaC4KVmFs dWUgaXMgbmlsLCB0LCBvciBhIGZ1bmN0aW9uLgoKSWYgbmlsLCBkZWZhdWx0IHRvIGxpdGVyYWwg c2VhcmNoZXMgKG5vdGUgdGhhdCBgY2FzZS1mb2xkLXNlYXJjaCcKYW5kIGBpc2VhcmNoLWxheC13 aGl0ZXNwYWNlJyBtYXkgc3RpbGwgYmUgYXBwbGllZCkuXFw8aXNlYXJjaC1tb2RlLW1hcD4KSWYg dCwgZGVmYXVsdCB0byByZWdleHAgc2VhcmNoZXMgKGFzIGlmIHR5cGluZyBgXFxbaXNlYXJjaC10 b2dnbGUtcmVnZXhwXScgZHVyaW5nCmlzZWFyY2gpLgoKSWYgYSBmdW5jdGlvbiwgdXNlIHRoYXQg ZnVuY3Rpb24gYXMgYW4gYGlzZWFyY2gtcmVnZXhwLWZ1bmN0aW9uJy4KRXhhbXBsZSBmdW5jdGlv bnMgKGFuZCB0aGUga2V5cyB0byB0b2dnbGUgdGhlbSBkdXJpbmcgaXNlYXJjaCkKYXJlIGB3b3Jk LXNlYXJjaC1yZWdleHAnIFwoYFxcW2lzZWFyY2gtdG9nZ2xlLXdvcmRdJyksIGBpc2VhcmNoLXN5 bWJvbC1yZWdleHAnClwoYFxcW2lzZWFyY2gtdG9nZ2xlLXN5bWJvbF0nKSwgYW5kIGBjaGFyLWZv bGQtdG8tcmVnZXhwJyBcKGBcXFtpc2VhcmNoLXRvZ2dsZS1jaGFyLWZvbGRdJykuIgogIDs7IDp0 eXBlIGlzIHNldCBiZWxvdyBieSBgaXNlYXJjaC1kZWZpbmUtbW9kZS10b2dnbGUnLgogIDp0eXBl ICcoY2hvaWNlIChjb25zdCA6dGFnICJMaXRlcmFsIHNlYXJjaCIgbmlsKQogICAgICAgICAgICAg ICAgIChjb25zdCA6dGFnICJSZWdleHAgc2VhcmNoIiB0KQogICAgICAgICAgICAgICAgIChmdW5j dGlvbiA6dGFnICJPdGhlciIpKQogIDp2ZXJzaW9uICIyNS4xIikKCjs7OyBpc2VhcmNoIGhpZ2hs aWdodCBjdXN0b21pemF0aW9uLgoKKGRlZmN1c3RvbSBzZWFyY2gtaGlnaGxpZ2h0IHQKICAiTm9u LW5pbCBtZWFucyBpbmNyZW1lbnRhbCBzZWFyY2ggaGlnaGxpZ2h0cyB0aGUgY3VycmVudCBtYXRj aC4iCiAgOnR5cGUgJ2Jvb2xlYW4pCgooZGVmZmFjZSBpc2VhcmNoCiAgJygoKChjbGFzcyBjb2xv cikgKG1pbi1jb2xvcnMgODgpIChiYWNrZ3JvdW5kIGxpZ2h0KSkKICAgICA7OyBUaGUgYmFja2dy b3VuZCBtdXN0IG5vdCBiZSB0b28gZGFyaywgZm9yIHRoYXQgbWVhbnMKICAgICA7OyB0aGUgY2hh cmFjdGVyIGlzIGhhcmQgdG8gc2VlIHdoZW4gdGhlIGN1cnNvciBpcyB0aGVyZS4KICAgICAoOmJh Y2tncm91bmQgIm1hZ2VudGEzIiA6Zm9yZWdyb3VuZCAibGlnaHRza3libHVlMSIpKQogICAgKCgo Y2xhc3MgY29sb3IpIChtaW4tY29sb3JzIDg4KSAoYmFja2dyb3VuZCBkYXJrKSkKICAgICAoOmJh Y2tncm91bmQgInBhbGV2aW9sZXRyZWQyIiA6Zm9yZWdyb3VuZCAiYnJvd240IikpCiAgICAoKChj bGFzcyBjb2xvcikgKG1pbi1jb2xvcnMgMTYpKQogICAgICg6YmFja2dyb3VuZCAibWFnZW50YTQi IDpmb3JlZ3JvdW5kICJjeWFuMSIpKQogICAgKCgoY2xhc3MgY29sb3IpIChtaW4tY29sb3JzIDgp KQogICAgICg6YmFja2dyb3VuZCAibWFnZW50YTQiIDpmb3JlZ3JvdW5kICJjeWFuMSIpKQogICAg KHQgKDppbnZlcnNlLXZpZGVvIHQpKSkKICAiRmFjZSBmb3IgaGlnaGxpZ2h0aW5nIElzZWFyY2gg bWF0Y2hlcy4iCiAgOmdyb3VwICdpc2VhcmNoCiAgOmdyb3VwICdiYXNpYy1mYWNlcykKKGRlZnZh ciBpc2VhcmNoLWZhY2UgJ2lzZWFyY2gpCgooZGVmZmFjZSBpc2VhcmNoLWZhaWwKICAnKCgoKGNs YXNzIGNvbG9yKSAobWluLWNvbG9ycyA4OCkgKGJhY2tncm91bmQgbGlnaHQpKQogICAgICg6YmFj a2dyb3VuZCAiUm9zeUJyb3duMSIpKQogICAgKCgoY2xhc3MgY29sb3IpIChtaW4tY29sb3JzIDg4 KSAoYmFja2dyb3VuZCBkYXJrKSkKICAgICAoOmJhY2tncm91bmQgInJlZDQiKSkKICAgICgoKGNs YXNzIGNvbG9yKSAobWluLWNvbG9ycyAxNikpCiAgICAgKDpiYWNrZ3JvdW5kICJyZWQiKSkKICAg ICgoKGNsYXNzIGNvbG9yKSAobWluLWNvbG9ycyA4KSkKICAgICAoOmJhY2tncm91bmQgInJlZCIp KQogICAgKCgoY2xhc3MgY29sb3IgZ3JheXNjYWxlKSkKICAgICA6Zm9yZWdyb3VuZCAiZ3JleSIp CiAgICAodCAoOmludmVyc2UtdmlkZW8gdCkpKQogICJGYWNlIGZvciBoaWdobGlnaHRpbmcgZmFp bGVkIHBhcnQgaW4gSXNlYXJjaCBlY2hvLWFyZWEgbWVzc2FnZS4iCiAgOnZlcnNpb24gIjIzLjEi KQoKKGRlZmN1c3RvbSBpc2VhcmNoLWxhenktaGlnaGxpZ2h0IHQKICAiQ29udHJvbHMgdGhlIGxh enktaGlnaGxpZ2h0aW5nIGR1cmluZyBpbmNyZW1lbnRhbCBzZWFyY2guCldoZW4gbm9uLW5pbCwg YWxsIHRleHQgY3VycmVudGx5IHZpc2libGUgb24gdGhlIHNjcmVlbgptYXRjaGluZyB0aGUgY3Vy cmVudCBzZWFyY2ggc3RyaW5nIGlzIGhpZ2hsaWdodGVkIGxhemlseQooc2VlIGBsYXp5LWhpZ2hs aWdodC1pbml0aWFsLWRlbGF5JyBhbmQgYGxhenktaGlnaGxpZ2h0LWludGVydmFsJykuCgpXaGVu IG11bHRpcGxlIHdpbmRvd3MgZGlzcGxheSB0aGUgY3VycmVudCBidWZmZXIsIHRoZQpoaWdobGln aHRpbmcgaXMgZGlzcGxheWVkIG9ubHkgb24gdGhlIHNlbGVjdGVkIHdpbmRvdywgdW5sZXNzCnRo aXMgdmFyaWFibGUgaXMgc2V0IHRvIHRoZSBzeW1ib2wgYGFsbC13aW5kb3dzJy4iCiAgOnR5cGUg JyhjaG9pY2UgYm9vbGVhbgogICAgICAgICAgICAgICAgIChjb25zdCA6dGFnICJPbiwgYW5kIGFw cGxpZWQgdG8gYWxsIHdpbmRvd3MiIGFsbC13aW5kb3dzKSkKICA6Z3JvdXAgJ2xhenktaGlnaGxp Z2h0CiAgOmdyb3VwICdpc2VhcmNoKQoKKGRlZmN1c3RvbSBpc2VhcmNoLWxhenktY291bnQgbmls CiAgIlNob3cgbWF0Y2ggbnVtYmVyIGluIHRoZSBJc2VhcmNoIHByb21wdC4KV2hlbiBib3RoIHRo aXMgb3B0aW9uIGFuZCBgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodCcgYXJlIG5vbi1uaWwsIHNob3cK Q1VSUkVOVC9UT1RBTCwgd2hlcmUgQ1VSUkVOVCBpcyB0aGUgY3VycmVudCBtYXRjaCBudW1iZXIg YW5kIFRPVEFMIGlzCnRoZSB0b3RhbCBudW1iZXIgb2YgbWF0Y2hlcyBpbiB0aGUgYnVmZmVyIChv ciBpdHMgcmVzdHJpY3Rpb24pLiIKICA6dHlwZSAnYm9vbGVhbgogIDpncm91cCAnaXNlYXJjaAog IDp2ZXJzaW9uICIyNy4xIikKCjs7OyBMYXp5IGhpZ2hsaWdodCBjdXN0b21pemF0aW9uLgoKKGRl Zmdyb3VwIGxhenktaGlnaGxpZ2h0IG5pbAogICJMYXp5IGhpZ2hsaWdodGluZyBmZWF0dXJlIGZv ciBtYXRjaGluZyBzdHJpbmdzLiIKICA6cHJlZml4ICJsYXp5LWhpZ2hsaWdodC0iCiAgOnZlcnNp b24gIjIxLjEiCiAgOmdyb3VwICdpc2VhcmNoCiAgOmdyb3VwICdtYXRjaGluZykKCihkZWZjdXN0 b20gbGF6eS1oaWdobGlnaHQtY2xlYW51cCB0CiAgIkNvbnRyb2xzIHdoZXRoZXIgdG8gcmVtb3Zl IGV4dHJhIGhpZ2hsaWdodGluZyBhZnRlciBhIHNlYXJjaC4KSWYgdGhpcyBpcyBuaWwsIGV4dHJh IGhpZ2hsaWdodGluZyBjYW4gYmUgXCJtYW51YWxseVwiIHJlbW92ZWQgd2l0aApcXFtsYXp5LWhp Z2hsaWdodC1jbGVhbnVwXS4iCiAgOnR5cGUgJ2Jvb2xlYW4KICA6Z3JvdXAgJ2xhenktaGlnaGxp Z2h0KQoKKGRlZmN1c3RvbSBsYXp5LWhpZ2hsaWdodC1pbml0aWFsLWRlbGF5IDAuMjUKICAiU2Vj b25kcyB0byB3YWl0IGJlZm9yZSBiZWdpbm5pbmcgdG8gbGF6aWx5IGhpZ2hsaWdodCBhbGwgbWF0 Y2hlcy4iCiAgOnR5cGUgJ251bWJlcgogIDpncm91cCAnbGF6eS1oaWdobGlnaHQpCgooZGVmY3Vz dG9tIGxhenktaGlnaGxpZ2h0LWludGVydmFsIDAgOyAwLjA2MjUKICAiU2Vjb25kcyBiZXR3ZWVu IGxhemlseSBoaWdobGlnaHRpbmcgc3VjY2Vzc2l2ZSBtYXRjaGVzLiIKICA6dHlwZSAnbnVtYmVy CiAgOmdyb3VwICdsYXp5LWhpZ2hsaWdodCkKCihkZWZjdXN0b20gbGF6eS1oaWdobGlnaHQtbWF4 LWF0LWEtdGltZSBuaWwgOyAyMCAoYnVnIzI1NzUxKQogICJNYXhpbXVtIG1hdGNoZXMgdG8gaGln aGxpZ2h0IGF0IGEgdGltZSAoZm9yIGBsYXp5LWhpZ2hsaWdodCcpLgpMYXJnZXIgdmFsdWVzIG1h eSByZWR1Y2UgSXNlYXJjaCdzIHJlc3BvbnNpdmVuZXNzIHRvIHVzZXIgaW5wdXQ7CnNtYWxsZXIg dmFsdWVzIG1ha2UgbWF0Y2hlcyBoaWdobGlnaHQgc2xvd2x5LgpBIHZhbHVlIG9mIG5pbCBtZWFu cyBoaWdobGlnaHQgYWxsIG1hdGNoZXMgc2hvd24gb24gdGhlIHNjcmVlbi4iCiAgOnR5cGUgJyhj aG9pY2UgKGNvbnN0IDp0YWcgIkFsbCIgbmlsKQoJCSAoaW50ZWdlciA6dGFnICJTb21lIikpCiAg Omdyb3VwICdsYXp5LWhpZ2hsaWdodCkKCihkZWZjdXN0b20gbGF6eS1oaWdobGlnaHQtYnVmZmVy LW1heC1hdC1hLXRpbWUgMjAKICAiTWF4aW11bSBtYXRjaGVzIHRvIGhpZ2hsaWdodCBhdCBhIHRp bWUgKGZvciBgbGF6eS1oaWdobGlnaHQtYnVmZmVyJykuCkxhcmdlciB2YWx1ZXMgbWF5IHJlZHVj ZSBJc2VhcmNoJ3MgcmVzcG9uc2l2ZW5lc3MgdG8gdXNlciBpbnB1dDsKc21hbGxlciB2YWx1ZXMg bWFrZSBtYXRjaGVzIGhpZ2hsaWdodCBzbG93bHkuCkEgdmFsdWUgb2YgbmlsIG1lYW5zIGhpZ2hs aWdodCBhbGwgbWF0Y2hlcyBpbiB0aGUgYnVmZmVyLiIKICA6dHlwZSAnKGNob2ljZSAoY29uc3Qg OnRhZyAiQWxsIiBuaWwpCgkJIChpbnRlZ2VyIDp0YWcgIlNvbWUiKSkKICA6Z3JvdXAgJ2xhenkt aGlnaGxpZ2h0CiAgOnZlcnNpb24gIjI3LjEiKQoKKGRlZmN1c3RvbSBsYXp5LWhpZ2hsaWdodC1i dWZmZXIgbmlsCiAgIkNvbnRyb2xzIHRoZSBsYXp5LWhpZ2hsaWdodGluZyBvZiB0aGUgZnVsbCBi dWZmZXIuCldoZW4gbm9uLW5pbCwgYWxsIHRleHQgaW4gdGhlIGJ1ZmZlciBtYXRjaGluZyB0aGUg Y3VycmVudCBzZWFyY2gKc3RyaW5nIGlzIGhpZ2hsaWdodGVkIGxhemlseSAoc2VlIGBsYXp5LWhp Z2hsaWdodC1pbml0aWFsLWRlbGF5JywKYGxhenktaGlnaGxpZ2h0LWludGVydmFsJyBhbmQgYGxh enktaGlnaGxpZ2h0LWJ1ZmZlci1tYXgtYXQtYS10aW1lJykuClRoaXMgaXMgdXNlZnVsIHdoZW4g YGxhenktaGlnaGxpZ2h0LWNsZWFudXAnIGlzIGN1c3RvbWl6ZWQgdG8gbmlsCmFuZCBkb2Vzbid0 IHJlbW92ZSBmdWxsLWJ1ZmZlciBoaWdobGlnaHRpbmcgYWZ0ZXIgYSBzZWFyY2guIgogIDp0eXBl ICdib29sZWFuCiAgOmdyb3VwICdsYXp5LWhpZ2hsaWdodAogIDp2ZXJzaW9uICIyNy4xIikKCihk ZWZmYWNlIGxhenktaGlnaGxpZ2h0CiAgJygoKChjbGFzcyBjb2xvcikgKG1pbi1jb2xvcnMgODgp IChiYWNrZ3JvdW5kIGxpZ2h0KSkKICAgICAoOmJhY2tncm91bmQgInBhbGV0dXJxdW9pc2UiKSkK ICAgICgoKGNsYXNzIGNvbG9yKSAobWluLWNvbG9ycyA4OCkgKGJhY2tncm91bmQgZGFyaykpCiAg ICAgKDpiYWNrZ3JvdW5kICJwYWxldHVycXVvaXNlNCIpKQogICAgKCgoY2xhc3MgY29sb3IpICht aW4tY29sb3JzIDE2KSkKICAgICAoOmJhY2tncm91bmQgInR1cnF1b2lzZTMiKSkKICAgICgoKGNs YXNzIGNvbG9yKSAobWluLWNvbG9ycyA4KSkKICAgICAoOmJhY2tncm91bmQgInR1cnF1b2lzZTMi KSkKICAgICh0ICg6dW5kZXJsaW5lIHQpKSkKICAiRmFjZSBmb3IgbGF6eSBoaWdobGlnaHRpbmcg b2YgbWF0Y2hlcyBvdGhlciB0aGFuIHRoZSBjdXJyZW50IG9uZS4iCiAgOmdyb3VwICdsYXp5LWhp Z2hsaWdodAogIDpncm91cCAnYmFzaWMtZmFjZXMpCgoMCjs7IERlZmluZSBpc2VhcmNoIGhlbHAg bWFwLgoKKGRlZnZhciBpc2VhcmNoLWhlbHAtbWFwCiAgKGxldCAoKG1hcCAobWFrZS1zcGFyc2Ut a2V5bWFwKSkpCiAgICAoZGVmaW5lLWtleSBtYXAgKGNoYXItdG8tc3RyaW5nIGhlbHAtY2hhcikg J2lzZWFyY2gtaGVscC1mb3ItaGVscCkKICAgIChkZWZpbmUta2V5IG1hcCBbaGVscF0gJ2lzZWFy Y2gtaGVscC1mb3ItaGVscCkKICAgIChkZWZpbmUta2V5IG1hcCBbZjFdICdpc2VhcmNoLWhlbHAt Zm9yLWhlbHApCiAgICAoZGVmaW5lLWtleSBtYXAgIj8iICdpc2VhcmNoLWhlbHAtZm9yLWhlbHAp CiAgICAoZGVmaW5lLWtleSBtYXAgImIiICdpc2VhcmNoLWRlc2NyaWJlLWJpbmRpbmdzKQogICAg KGRlZmluZS1rZXkgbWFwICJrIiAnaXNlYXJjaC1kZXNjcmliZS1rZXkpCiAgICAoZGVmaW5lLWtl eSBtYXAgIm0iICdpc2VhcmNoLWRlc2NyaWJlLW1vZGUpCiAgICAoZGVmaW5lLWtleSBtYXAgInEi ICdoZWxwLXF1aXQpCiAgICBtYXApCiAgIktleW1hcCBmb3IgY2hhcmFjdGVycyBmb2xsb3dpbmcg dGhlIEhlbHAga2V5IGZvciBJc2VhcmNoIG1vZGUuIikKCihldmFsLXdoZW4tY29tcGlsZSAocmVx dWlyZSAnaGVscC1tYWNybykpCgoobWFrZS1oZWxwLXNjcmVlbiBpc2VhcmNoLWhlbHAtZm9yLWhl bHAtaW50ZXJuYWwKICAocHVyZWNvcHkgIlR5cGUgYSBoZWxwIG9wdGlvbjogW2JrbV0gb3IgPyIp CiAgIllvdSBoYXZlIHR5cGVkICVUSElTLUtFWSUsIHRoZSBoZWxwIGNoYXJhY3Rlci4gIFR5cGUg YSBIZWxwIG9wdGlvbjoKXChUeXBlIFxcPGhlbHAtbWFwPlxcW2hlbHAtcXVpdF0gdG8gZXhpdCB0 aGUgSGVscCBjb21tYW5kLikKCmIgICAgICAgICAgIERpc3BsYXkgYWxsIElzZWFyY2gga2V5IGJp bmRpbmdzLgprIEtFWVMgICAgICBEaXNwbGF5IGZ1bGwgZG9jdW1lbnRhdGlvbiBvZiBJc2VhcmNo IGtleSBzZXF1ZW5jZS4KbSAgICAgICAgICAgRGlzcGxheSBkb2N1bWVudGF0aW9uIG9mIElzZWFy Y2ggbW9kZS4KCllvdSBjYW4ndCB0eXBlIGhlcmUgb3RoZXIgaGVscCBrZXlzIGF2YWlsYWJsZSBp biB0aGUgZ2xvYmFsIGhlbHAgbWFwLApidXQgb3V0c2lkZSBvZiB0aGlzIGhlbHAgd2luZG93IHdo ZW4geW91IHR5cGUgdGhlbSBpbiBJc2VhcmNoIG1vZGUsCnRoZXkgZXhpdCBJc2VhcmNoIG1vZGUg YmVmb3JlIGRpc3BsYXlpbmcgZ2xvYmFsIGhlbHAuIgogIGlzZWFyY2gtaGVscC1tYXApCgooZGVm dmFyIGlzZWFyY2gtLWRpc3BsYXktaGVscC1hY3Rpb24gJyhuaWwgKGluaGliaXQtc2FtZS13aW5k b3cgLiB0KSkpCgooZGVmdW4gaXNlYXJjaC1oZWxwLWZvci1oZWxwICgpCiAgIkRpc3BsYXkgSXNl YXJjaCBoZWxwIG1lbnUuIgogIChpbnRlcmFjdGl2ZSkKICAobGV0ICgoZGlzcGxheS1idWZmZXIt b3ZlcnJpZGluZy1hY3Rpb24gaXNlYXJjaC0tZGlzcGxheS1oZWxwLWFjdGlvbikpCiAgICAoaXNl YXJjaC1oZWxwLWZvci1oZWxwLWludGVybmFsKSkKICAoaXNlYXJjaC11cGRhdGUpKQoKKGRlZnVu IGlzZWFyY2gtZGVzY3JpYmUtYmluZGluZ3MgKCkKICAiU2hvdyBhIGxpc3Qgb2YgYWxsIGtleXMg ZGVmaW5lZCBpbiBJc2VhcmNoIG1vZGUsIGFuZCB0aGVpciBkZWZpbml0aW9ucy4KVGhpcyBpcyBs aWtlIGBkZXNjcmliZS1iaW5kaW5ncycsIGJ1dCBkaXNwbGF5cyBvbmx5IElzZWFyY2gga2V5cy4i CiAgKGludGVyYWN0aXZlKQogIChsZXQgKChkaXNwbGF5LWJ1ZmZlci1vdmVycmlkaW5nLWFjdGlv biBpc2VhcmNoLS1kaXNwbGF5LWhlbHAtYWN0aW9uKSkKICAgICh3aXRoLWhlbHAtd2luZG93ICIq SGVscCoiCiAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIHN0YW5kYXJkLW91dHB1dAoJKHByaW5j ICJJc2VhcmNoIE1vZGUgQmluZGluZ3M6XG4iKQoJKHByaW5jIChzdWJzdGl0dXRlLWNvbW1hbmQt a2V5cyAiXFx7aXNlYXJjaC1tb2RlLW1hcH0iKSkpKSkpCgooZGVmdW4gaXNlYXJjaC1kZXNjcmli ZS1rZXkgKCkKICAiRGlzcGxheSBkb2N1bWVudGF0aW9uIG9mIHRoZSBmdW5jdGlvbiBpbnZva2Vk IGJ5IGlzZWFyY2gga2V5LiIKICAoaW50ZXJhY3RpdmUpCiAgKGxldCAoKGRpc3BsYXktYnVmZmVy LW92ZXJyaWRpbmctYWN0aW9uIGlzZWFyY2gtLWRpc3BsYXktaGVscC1hY3Rpb24pKQogICAgKGNh bGwtaW50ZXJhY3RpdmVseSAnZGVzY3JpYmUta2V5KSkKICAoaXNlYXJjaC11cGRhdGUpKQoKKGRl ZnVuIGlzZWFyY2gtZGVzY3JpYmUtbW9kZSAoKQogICJEaXNwbGF5IGRvY3VtZW50YXRpb24gb2Yg SXNlYXJjaCBtb2RlLiIKICAoaW50ZXJhY3RpdmUpCiAgKGxldCAoKGRpc3BsYXktYnVmZmVyLW92 ZXJyaWRpbmctYWN0aW9uIGlzZWFyY2gtLWRpc3BsYXktaGVscC1hY3Rpb24pKQogICAgKGRlc2Ny aWJlLWZ1bmN0aW9uICdpc2VhcmNoLWZvcndhcmQpKQogIChpc2VhcmNoLXVwZGF0ZSkpCgooZGVm YWxpYXMgJ2lzZWFyY2gtbW9kZS1oZWxwICdpc2VhcmNoLWRlc2NyaWJlLW1vZGUpCgoMCjs7IERl ZmluZSBpc2VhcmNoLW1vZGUga2V5bWFwLgoKKGRlZnZhciBpc2VhcmNoLW1vZGUtbWFwCiAgKGxl dCAoKGkgMCkKCShtYXAgKG1ha2Uta2V5bWFwKSkpCiAgICAob3IgKGNoYXItdGFibGUtcCAobnRo IDEgbWFwKSkKCShlcnJvciAiVGhlIGluaXRpYWxpemF0aW9uIG9mIGlzZWFyY2gtbW9kZS1tYXAg bXVzdCBiZSB1cGRhdGVkIikpCiAgICA7OyBNYWtlIGFsbCBtdWx0aWJ5dGUgY2hhcmFjdGVycyBz ZWFyY2ggZm9yIHRoZW1zZWx2ZXMuCiAgICAoc2V0LWNoYXItdGFibGUtcmFuZ2UgKG50aCAxIG1h cCkgKGNvbnMgI3gxMDAgKG1heC1jaGFyKSkKCQkJICAnaXNlYXJjaC1wcmludGluZy1jaGFyKQoK ICAgIDs7IFNpbmdsZS1ieXRlIHByaW50aW5nIGNoYXJzIGV4dGVuZCB0aGUgc2VhcmNoIHN0cmlu ZyBieSBkZWZhdWx0LgogICAgKHNldHEgaSA/XHMpCiAgICAod2hpbGUgKDwgaSAyNTYpCiAgICAg IChkZWZpbmUta2V5IG1hcCAodmVjdG9yIGkpICdpc2VhcmNoLXByaW50aW5nLWNoYXIpCiAgICAg IChzZXRxIGkgKDErIGkpKSkKCiAgICA7OyBUbyBoYW5kbGUgbG9jYWwgYmluZGluZ3Mgd2l0aCBt ZXRhIGNoYXIgcHJlZml4IGtleXMsIGRlZmluZQogICAgOzsgYW5vdGhlciBmdWxsIGtleW1hcC4g IFRoaXMgbXVzdCBiZSBkb25lIGZvciBhbnkgb3RoZXIgcHJlZml4CiAgICA7OyBrZXlzIGFzIHdl bGwsIG9uZSBmdWxsIGtleW1hcCBwZXIgY2hhciBvZiB0aGUgcHJlZml4IGtleS4gIEl0CiAgICA7 OyB3b3VsZCBiZSBzaW1wbGVyIHRvIGRpc2FibGUgdGhlIGdsb2JhbCBrZXltYXAsIGFuZC9vciBo YXZlIGEKICAgIDs7IGRlZmF1bHQgbG9jYWwga2V5IGJpbmRpbmcgZm9yIGFueSBrZXkgbm90IG90 aGVyd2lzZSBib3VuZC4KICAgIChsZXQgKChtZXRhLW1hcCAobWFrZS1zcGFyc2Uta2V5bWFwKSkp CiAgICAgIChkZWZpbmUta2V5IG1hcCAoY2hhci10by1zdHJpbmcgbWV0YS1wcmVmaXgtY2hhcikg bWV0YS1tYXApKQoKICAgIDs7IFNldmVyYWwgbm9uLXByaW50aW5nIGNoYXJzIGNoYW5nZSB0aGUg c2VhcmNoaW5nIGJlaGF2aW9yLgogICAgKGRlZmluZS1rZXkgbWFwICJcQy1zIiAnaXNlYXJjaC1y ZXBlYXQtZm9yd2FyZCkKICAgIChkZWZpbmUta2V5IG1hcCAiXEMtciIgJ2lzZWFyY2gtcmVwZWF0 LWJhY2t3YXJkKQogICAgOzsgRGVmaW5lIE0tQy1zIGFuZCBNLUMtciBsaWtlIEMtcyBhbmQgQy1y IHNvIHRoYXQgdGhlIHNhbWUga2V5CiAgICA7OyBjb21iaW5hdGlvbnMgY2FuIGJlIHVzZWQgdG8g cmVwZWF0IHJlZ2V4cCBpc2VhcmNoZXMgdGhhdCBjYW4KICAgIDs7IGJlIHVzZWQgdG8gc3RhcnQg dGhlc2Ugc2VhcmNoZXMuCiAgICAoZGVmaW5lLWtleSBtYXAgIlxNLVxDLXMiICdpc2VhcmNoLXJl cGVhdC1mb3J3YXJkKQogICAgKGRlZmluZS1rZXkgbWFwICJcTS1cQy1yIiAnaXNlYXJjaC1yZXBl YXQtYmFja3dhcmQpCiAgICAoZGVmaW5lLWtleSBtYXAgIlwxNzciICdpc2VhcmNoLWRlbGV0ZS1j aGFyKQogICAgKGRlZmluZS1rZXkgbWFwIFtiYWNrc3BhY2VdICd1bmRlZmluZWQpIDtidWcjMjA0 NjYuCiAgICAoZGVmaW5lLWtleSBtYXAgIlxDLWciICdpc2VhcmNoLWFib3J0KQoKICAgIDs7IFRo aXMgYXNzdW1lcyBcZSBpcyB0aGUgbWV0YS1wcmVmaXgtY2hhci4KICAgIChvciAoPSA/XGUgbWV0 YS1wcmVmaXgtY2hhcikKCShlcnJvciAiSW5jb25zaXN0ZW5jeSBpbiBpc2VhcmNoLmVsIikpCiAg ICAoZGVmaW5lLWtleSBtYXAgIlxlXGVcZSIgJ2lzZWFyY2gtY2FuY2VsKQoKICAgIChkZWZpbmUt a2V5IG1hcCAiXEMtcSIgJ2lzZWFyY2gtcXVvdGUtY2hhcikKCiAgICAoZGVmaW5lLWtleSBtYXAg IlxyIiAnaXNlYXJjaC1leGl0KQogICAgKGRlZmluZS1rZXkgbWFwIFtyZXR1cm5dICdpc2VhcmNo LWV4aXQpCiAgICAoZGVmaW5lLWtleSBtYXAgIlxDLWoiICdpc2VhcmNoLXByaW50aW5nLWNoYXIp CiAgICAoZGVmaW5lLWtleSBtYXAgIlx0IiAnaXNlYXJjaC1wcmludGluZy1jaGFyKQogICAgKGRl ZmluZS1rZXkgbWFwIFs/XFMtXCBdICdpc2VhcmNoLXByaW50aW5nLWNoYXIpCgogICAgKGRlZmlu ZS1rZXkgbWFwICAgICJcQy13IiAnaXNlYXJjaC15YW5rLXdvcmQtb3ItY2hhcikKICAgIChkZWZp bmUta2V5IG1hcCAiXE0tXEMtdyIgJ2lzZWFyY2gteWFuay1zeW1ib2wtb3ItY2hhcikKICAgIChk ZWZpbmUta2V5IG1hcCAiXE0tXEMtZCIgJ2lzZWFyY2gtZGVsLWNoYXIpCiAgICAoZGVmaW5lLWtl eSBtYXAgIlxNLVxDLXkiICdpc2VhcmNoLXlhbmstY2hhcikKICAgIChkZWZpbmUta2V5IG1hcCAg ICAiXEMteSIgJ2lzZWFyY2gteWFuay1raWxsKQogICAgKGRlZmluZS1rZXkgbWFwICJcTS1zXEMt ZSIgJ2lzZWFyY2gteWFuay1saW5lKQoKICAgIChkZWZpbmUta2V5IG1hcCAoY2hhci10by1zdHJp bmcgaGVscC1jaGFyKSBpc2VhcmNoLWhlbHAtbWFwKQogICAgKGRlZmluZS1rZXkgbWFwIFtoZWxw XSBpc2VhcmNoLWhlbHAtbWFwKQogICAgKGRlZmluZS1rZXkgbWFwIFtmMV0gaXNlYXJjaC1oZWxw LW1hcCkKCiAgICAoZGVmaW5lLWtleSBtYXAgIlxNLW4iICdpc2VhcmNoLXJpbmctYWR2YW5jZSkK ICAgIChkZWZpbmUta2V5IG1hcCAiXE0tcCIgJ2lzZWFyY2gtcmluZy1yZXRyZWF0KQogICAgKGRl ZmluZS1rZXkgbWFwICJcTS15IiAnaXNlYXJjaC15YW5rLXBvcCkKCiAgICAoZGVmaW5lLWtleSBt YXAgIlxNLVx0IiAnaXNlYXJjaC1jb21wbGV0ZSkKCiAgICA7OyBQYXNzIGZyYW1lIGV2ZW50cyB0 cmFuc3BhcmVudGx5IHNvIHRoZXkgd29uJ3QgZXhpdCB0aGUgc2VhcmNoLgogICAgOzsgSW4gcGFy dGljdWxhciwgaWYgd2UgaGF2ZSBtb3JlIHRoYW4gb25lIGRpc3BsYXkgb3BlbiwgdGhlbiBhCiAg ICA7OyBzd2l0Y2gtZnJhbWUgbWlnaHQgYmUgZ2VuZXJhdGVkIGJ5IHNvbWVvbmUgdHlwaW5nIGF0 IGFub3RoZXIga2V5Ym9hcmQuCiAgICAoZGVmaW5lLWtleSBtYXAgW3N3aXRjaC1mcmFtZV0gbmls KQogICAgKGRlZmluZS1rZXkgbWFwIFtkZWxldGUtZnJhbWVdIG5pbCkKICAgIChkZWZpbmUta2V5 IG1hcCBbaWNvbmlmeS1mcmFtZV0gbmlsKQogICAgKGRlZmluZS1rZXkgbWFwIFttYWtlLWZyYW1l LXZpc2libGVdIG5pbCkKICAgIChkZWZpbmUta2V5IG1hcCBbbW91c2UtbW92ZW1lbnRdIG5pbCkK ICAgIChkZWZpbmUta2V5IG1hcCBbbGFuZ3VhZ2UtY2hhbmdlXSBuaWwpCgogICAgOzsgRm9yIHNl YXJjaGluZyBtdWx0aWxpbmd1YWwgdGV4dC4KICAgIChkZWZpbmUta2V5IG1hcCAiXEMtXFwiICdp c2VhcmNoLXRvZ2dsZS1pbnB1dC1tZXRob2QpCiAgICAoZGVmaW5lLWtleSBtYXAgIlxDLV4iICdp c2VhcmNoLXRvZ2dsZS1zcGVjaWZpZWQtaW5wdXQtbWV0aG9kKQoKICAgIDs7IFBlb3BsZSBleHBl Y3QgdG8gYmUgYWJsZSB0byBwYXN0ZSB3aXRoIHRoZSBtb3VzZS4KICAgIChkZWZpbmUta2V5IG1h cCBbbW91c2UtMl0gIydpc2VhcmNoLW1vdXNlLTIpCiAgICAoZGVmaW5lLWtleSBtYXAgW2Rvd24t bW91c2UtMl0gbmlsKQogICAgKGRlZmluZS1rZXkgbWFwIFt4dGVybS1wYXN0ZV0gIydpc2VhcmNo LXh0ZXJtLXBhc3RlKQoKICAgIDs7IFNvbWUgYmluZGluZ3MgeW91IG1heSB3YW50IHRvIHB1dCBp biB5b3VyIGlzZWFyY2gtbW9kZS1ob29rLgogICAgOzsgU3VnZ2VzdCBzb21lIGFsdGVybmF0ZXMu Li4KICAgIChkZWZpbmUta2V5IG1hcCAiXE0tYyIgJ2lzZWFyY2gtdG9nZ2xlLWNhc2UtZm9sZCkK ICAgIChkZWZpbmUta2V5IG1hcCAiXE0tciIgJ2lzZWFyY2gtdG9nZ2xlLXJlZ2V4cCkKICAgIChk ZWZpbmUta2V5IG1hcCAiXE0tZSIgJ2lzZWFyY2gtZWRpdC1zdHJpbmcpCgogICAgKHB1dCAnaXNl YXJjaC10b2dnbGUtY2FzZS1mb2xkIDphZHZlcnRpc2VkLWJpbmRpbmcgIlxNLXNjIikKICAgIChw dXQgJ2lzZWFyY2gtdG9nZ2xlLXJlZ2V4cCAgICA6YWR2ZXJ0aXNlZC1iaW5kaW5nICJcTS1zciIp CiAgICAocHV0ICdpc2VhcmNoLWVkaXQtc3RyaW5nICAgICAgOmFkdmVydGlzZWQtYmluZGluZyAi XE0tc2UiKQoKICAgIChkZWZpbmUta2V5IG1hcCAiXE0tc2UiICdpc2VhcmNoLWVkaXQtc3RyaW5n KQogICAgOzsgTW9yZSB0b2dnbGVzIGRlZmluZWQgYnkgYGlzZWFyY2gtZGVmaW5lLW1vZGUtdG9n Z2xlJy4KCiAgICAoZGVmaW5lLWtleSBtYXAgWz9cTS0lXSAnaXNlYXJjaC1xdWVyeS1yZXBsYWNl KQogICAgKGRlZmluZS1rZXkgbWFwIFs/XEMtXE0tJV0gJ2lzZWFyY2gtcXVlcnktcmVwbGFjZS1y ZWdleHApCiAgICAoZGVmaW5lLWtleSBtYXAgIlxNLXNvIiAnaXNlYXJjaC1vY2N1cikKICAgIChk ZWZpbmUta2V5IG1hcCAiXE0tc2hyIiAnaXNlYXJjaC1oaWdobGlnaHQtcmVnZXhwKQoKICAgIDs7 IFRoZSBrZXkgdHJhbnNsYXRpb25zIGRlZmluZWQgaW4gdGhlIEMteCA4IHByZWZpeCBzaG91bGQg YWRkCiAgICA7OyBjaGFyYWN0ZXJzIHRvIHRoZSBzZWFyY2ggc3RyaW5nLiAgU2VlIGlzby10cmFu c2wuZWwuCiAgICAoZGVmaW5lLWtleSBtYXAgIlxDLXg4XHIiICdpc2VhcmNoLWNoYXItYnktbmFt ZSkKCiAgICBtYXApCiAgIktleW1hcCBmb3IgYGlzZWFyY2gtbW9kZScuIikKCihkZWZ2YXIgbWlu aWJ1ZmZlci1sb2NhbC1pc2VhcmNoLW1hcAogIChsZXQgKChtYXAgKG1ha2Utc3BhcnNlLWtleW1h cCkpKQogICAgKHNldC1rZXltYXAtcGFyZW50IG1hcCBtaW5pYnVmZmVyLWxvY2FsLW1hcCkKICAg IChkZWZpbmUta2V5IG1hcCAiXHIiICAgICdleGl0LW1pbmlidWZmZXIpCiAgICAoZGVmaW5lLWtl eSBtYXAgIlxNLVx0IiAnaXNlYXJjaC1jb21wbGV0ZS1lZGl0KQogICAgKGRlZmluZS1rZXkgbWFw ICJcQy1zIiAgJ2lzZWFyY2gtZm9yd2FyZC1leGl0LW1pbmlidWZmZXIpCiAgICAoZGVmaW5lLWtl eSBtYXAgIlxDLXIiICAnaXNlYXJjaC1yZXZlcnNlLWV4aXQtbWluaWJ1ZmZlcikKICAgIChkZWZp bmUta2V5IG1hcCAiXEMtZiIgICdpc2VhcmNoLXlhbmstY2hhci1pbi1taW5pYnVmZmVyKQogICAg KGRlZmluZS1rZXkgbWFwIFtyaWdodF0gJ2lzZWFyY2gteWFuay1jaGFyLWluLW1pbmlidWZmZXIp CiAgICBtYXApCiAgIktleW1hcCBmb3IgZWRpdGluZyBJc2VhcmNoIHN0cmluZ3MgaW4gdGhlIG1p bmlidWZmZXIuIikKCjs7IEludGVybmFsIHZhcmlhYmxlcyBkZWNsYXJlZCBnbG9iYWxseSBmb3Ig Ynl0ZS1jb21waWxlci4KOzsgVGhlc2UgYXJlIGFsbCBzZXQgd2l0aCBzZXRxIHdoaWxlIGlzZWFy Y2hpbmcKOzsgYW5kIGJvdW5kIGxvY2FsbHkgd2hpbGUgZWRpdGluZyB0aGUgc2VhcmNoIHN0cmlu Zy4KCihkZWZ2YXIgaXNlYXJjaC1mb3J3YXJkIG5pbCkJOyBTZWFyY2hpbmcgaW4gdGhlIGZvcndh cmQgZGlyZWN0aW9uLgooZGVmdmFyIGlzZWFyY2gtcmVnZXhwIG5pbCkJOyBTZWFyY2hpbmcgZm9y IGEgcmVnZXhwLgo7OyBXZSBzdGlsbCBzdXBwb3J0IHNldHRpbmcgdGhpcyB0byB0IGZvciBiYWNr d2FyZHMgY29tcGF0aWJpbGl0eS4KKGRlZmluZS1vYnNvbGV0ZS12YXJpYWJsZS1hbGlhcyAnaXNl YXJjaC13b3JkCiAgJ2lzZWFyY2gtcmVnZXhwLWZ1bmN0aW9uICIyNS4xIikKKGRlZnZhciBpc2Vh cmNoLXJlZ2V4cC1mdW5jdGlvbiBuaWwKICAiUmVnZXhwLWJhc2VkIHNlYXJjaCBtb2RlIGZvciB3 b3Jkcy9zeW1ib2xzLgpJZiB0aGUgdmFsdWUgaXMgYSBmdW5jdGlvbiAoZS5nLiBgaXNlYXJjaC1z eW1ib2wtcmVnZXhwJyksIGl0IGlzCmNhbGxlZCB0byBjb252ZXJ0IGEgcGxhaW4gc2VhcmNoIHN0 cmluZyB0byBhIHJlZ2V4cCB1c2VkIGJ5CnJlZ2V4cCBzZWFyY2ggZnVuY3Rpb25zLgpUaGUgc3lt Ym9sIHByb3BlcnR5IGBpc2VhcmNoLW1lc3NhZ2UtcHJlZml4JyBwdXQgb24gdGhpcyBmdW5jdGlv bgpzcGVjaWZpZXMgdGhlIHByZWZpeCBzdHJpbmcgZGlzcGxheWVkIGluIHRoZSBzZWFyY2ggbWVz c2FnZS4KClRoaXMgdmFyaWFibGUgaXMgc2V0IGFuZCBjaGFuZ2VkIGR1cmluZyBpc2VhcmNoLiAg VG8gY2hhbmdlIHRoZQpkZWZhdWx0IGJlaGF2aW9yIHVzZWQgZm9yIHNlYXJjaGVzLCBzZWUgYHNl YXJjaC1kZWZhdWx0LW1vZGUnCmluc3RlYWQuIikKCihkZWZ2YXIgaXNlYXJjaC1sYXgtd2hpdGVz cGFjZSB0CiAgIklmIG5vbi1uaWwsIGEgc3BhY2Ugd2lsbCBtYXRjaCBhIHNlcXVlbmNlIG9mIHdo aXRlc3BhY2UgY2hhcnMuCldoZW4geW91IGVudGVyIGEgc3BhY2Ugb3Igc3BhY2VzIGluIG9yZGlu YXJ5IGluY3JlbWVudGFsIHNlYXJjaCwgaXQKd2lsbCBtYXRjaCBhbnkgc2VxdWVuY2UgbWF0Y2hl ZCBieSB0aGUgcmVnZXhwIGRlZmluZWQgYnkgdGhlIHZhcmlhYmxlCmBzZWFyY2gtd2hpdGVzcGFj ZS1yZWdleHAnLiAgSWYgdGhlIHZhbHVlIGlzIG5pbCwgZWFjaCBzcGFjZSB5b3UgdHlwZQptYXRj aGVzIGxpdGVyYWxseSwgYWdhaW5zdCBvbmUgc3BhY2UuICBZb3UgY2FuIHRvZ2dsZSB0aGUgdmFs dWUgb2YgdGhpcwp2YXJpYWJsZSBieSB0aGUgY29tbWFuZCBgaXNlYXJjaC10b2dnbGUtbGF4LXdo aXRlc3BhY2UnLiIpCgooZGVmdmFyIGlzZWFyY2gtcmVnZXhwLWxheC13aGl0ZXNwYWNlIG5pbAog ICJJZiBub24tbmlsLCBhIHNwYWNlIHdpbGwgbWF0Y2ggYSBzZXF1ZW5jZSBvZiB3aGl0ZXNwYWNl IGNoYXJzLgpXaGVuIHlvdSBlbnRlciBhIHNwYWNlIG9yIHNwYWNlcyBpbiByZWdleHAgaW5jcmVt ZW50YWwgc2VhcmNoLCBpdAp3aWxsIG1hdGNoIGFueSBzZXF1ZW5jZSBtYXRjaGVkIGJ5IHRoZSBy ZWdleHAgZGVmaW5lZCBieSB0aGUgdmFyaWFibGUKYHNlYXJjaC13aGl0ZXNwYWNlLXJlZ2V4cCcu ICBJZiB0aGUgdmFsdWUgaXMgbmlsLCBlYWNoIHNwYWNlIHlvdSB0eXBlCm1hdGNoZXMgbGl0ZXJh bGx5LCBhZ2FpbnN0IG9uZSBzcGFjZS4gIFlvdSBjYW4gdG9nZ2xlIHRoZSB2YWx1ZSBvZiB0aGlz CnZhcmlhYmxlIGJ5IHRoZSBjb21tYW5kIGBpc2VhcmNoLXRvZ2dsZS1sYXgtd2hpdGVzcGFjZScu IikKCihkZWZ2YXIgaXNlYXJjaC1jbWRzIG5pbAogICJTdGFjayBvZiBzZWFyY2ggc3RhdHVzIGVs ZW1lbnRzLgpFYWNoIGVsZW1lbnQgaXMgYW4gYGlzZWFyY2gtLXN0YXRlJyBzdHJ1Y3Qgd2hlcmUg dGhlIHNsb3RzIGFyZQogW1NUUklORyBNRVNTQUdFIFBPSU5UIFNVQ0NFU1MgRk9SV0FSRCBPVEhF Ui1FTkQgV09SRC9SRUdFWFAtRlVOQ1RJT04KICBFUlJPUiBXUkFQUEVEIEJBUlJJRVIgQ0FTRS1G T0xELVNFQVJDSCBQT1AtRlVOXSIpCgooZGVmdmFyIGlzZWFyY2gtc3RyaW5nICIiKSAgOyBUaGUg Y3VycmVudCBzZWFyY2ggc3RyaW5nLgooZGVmdmFyIGlzZWFyY2gtbWVzc2FnZSAiIikgOyB0ZXh0 LWNoYXItZGVzY3JpcHRpb24gdmVyc2lvbiBvZiBpc2VhcmNoLXN0cmluZwoKKGRlZnZhciBpc2Vh cmNoLW1lc3NhZ2UtcHJlZml4LWFkZCBuaWwpIDsgQWRkaXRpb25hbCB0ZXh0IGZvciB0aGUgbWVz c2FnZSBwcmVmaXgKKGRlZnZhciBpc2VhcmNoLW1lc3NhZ2Utc3VmZml4LWFkZCBuaWwpIDsgQWRk aXRpb25hbCB0ZXh0IGZvciB0aGUgbWVzc2FnZSBzdWZmaXgKCihkZWZ2YXIgaXNlYXJjaC1zdWNj ZXNzIHQpCTsgU2VhcmNoaW5nIGlzIGN1cnJlbnRseSBzdWNjZXNzZnVsLgooZGVmdmFyIGlzZWFy Y2gtZXJyb3IgbmlsKQk7IEVycm9yIG1lc3NhZ2UgZm9yIGZhaWxlZCBzZWFyY2guCihkZWZ2YXIg aXNlYXJjaC1vdGhlci1lbmQgbmlsKQk7IFN0YXJ0IChlbmQpIG9mIG1hdGNoIGlmIGZvcndhcmQg KGJhY2t3YXJkKS4KKGRlZnZhciBpc2VhcmNoLXdyYXBwZWQgbmlsKQk7IFNlYXJjaGluZyByZXN0 YXJ0ZWQgZnJvbSB0aGUgdG9wIChib3R0b20pLgooZGVmdmFyIGlzZWFyY2gtYmFycmllciAwCiAg IlJlY29yZGVkIG1pbmltdW0vbWF4aW1hbCBwb2ludCBmb3IgdGhlIGN1cnJlbnQgc2VhcmNoLiIp CihkZWZ2YXIgaXNlYXJjaC1qdXN0LXN0YXJ0ZWQgbmlsKQooZGVmdmFyIGlzZWFyY2gtc3RhcnQt aHNjcm9sbCAwKQk7IGhzY3JvbGwgd2hlbiBzdGFydGluZyB0aGUgc2VhcmNoLgoKOzsgY2FzZS1m b2xkLXNlYXJjaCB3aGlsZSBzZWFyY2hpbmcuCjs7ICAgZWl0aGVyIG5pbCwgdCwgb3IgJ3llcy4g ICd5ZXMgbWVhbnMgdGhlIHNhbWUgYXMgdCBleGNlcHQgdGhhdCBtaXhlZAo7OyAgIGNhc2UgaW4g dGhlIHNlYXJjaCBzdHJpbmcgaXMgaWdub3JlZC4KKGRlZnZhciBpc2VhcmNoLWNhc2UtZm9sZC1z ZWFyY2ggbmlsKQoKOzsgc2VhcmNoLWludmlzaWJsZSB3aGlsZSBzZWFyY2hpbmcuCjs7ICAgZWl0 aGVyIG5pbCwgdCwgb3IgJ29wZW4uICAnb3BlbiBtZWFucyB0aGUgc2FtZSBhcyB0IGV4Y2VwdCB0 aGF0Cjs7ICAgb3BlbnMgaGlkZGVuIG92ZXJsYXlzLgooZGVmdmFyIGlzZWFyY2gtaW52aXNpYmxl IHNlYXJjaC1pbnZpc2libGUpCgooZGVmdmFyIGlzZWFyY2gtbGFzdC1jYXNlLWZvbGQtc2VhcmNo IG5pbCkKCjs7IFVzZWQgdG8gc2F2ZSBkZWZhdWx0IHZhbHVlIHdoaWxlIGlzZWFyY2ggaXMgYWN0 aXZlCihkZWZ2YXIgaXNlYXJjaC1vcmlnaW5hbC1taW5pYnVmZmVyLW1lc3NhZ2UtdGltZW91dCBu aWwpCgooZGVmdmFyIGlzZWFyY2gtYWRqdXN0ZWQgbmlsKQooZGVmdmFyIGlzZWFyY2gtc2xvdy10 ZXJtaW5hbC1tb2RlIG5pbCkKOzsgSWYgdCwgdXNpbmcgYSBzbWFsbCB3aW5kb3cuCihkZWZ2YXIg aXNlYXJjaC1zbWFsbC13aW5kb3cgbmlsKQooZGVmdmFyIGlzZWFyY2gtb3BvaW50IDApCjs7IFRo ZSB3aW5kb3cgY29uZmlndXJhdGlvbiBhY3RpdmUgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgc2Vh cmNoLgooZGVmdmFyIGlzZWFyY2gtd2luZG93LWNvbmZpZ3VyYXRpb24gbmlsKQoKOzsgRmxhZyB0 byBpbmRpY2F0ZSBhIHlhbmsgb2NjdXJyZWQsIHNvIGRvbid0IG1vdmUgdGhlIGN1cnNvci4KKGRl ZnZhciBpc2VhcmNoLXlhbmstZmxhZyBuaWwpCgo7OyBBIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBh ZnRlciBlYWNoIGlucHV0IGNoYXJhY3RlciBpcyBwcm9jZXNzZWQuCjs7IChJdCBpcyBub3QgY2Fs bGVkIGFmdGVyIGNoYXJhY3RlcnMgdGhhdCBleGl0IHRoZSBzZWFyY2guKQo7OyBJdCBpcyBvbmx5 IHNldCBmcm9tIGFuIG9wdGlvbmFsIGFyZ3VtZW50IHRvIGBpc2VhcmNoLW1vZGUnLgooZGVmdmFy IGlzZWFyY2gtb3AtZnVuIG5pbCkKCjs7ICBJcyBpc2VhcmNoLW1vZGUgaW4gYSByZWN1cnNpdmUg ZWRpdCBmb3IgbW9kYWwgc2VhcmNoaW5nLgooZGVmdmFyIGlzZWFyY2gtcmVjdXJzaXZlLWVkaXQg bmlsKQoKOzsgU2hvdWxkIGlzZWFyY2ggYmUgdGVybWluYXRlZCBhZnRlciBkb2luZyBvbmUgc2Vh cmNoPwooZGVmdmFyIGlzZWFyY2gtbm9uaW5jcmVtZW50YWwgbmlsKQoKOzsgTmV3IHZhbHVlIG9m IGlzZWFyY2gtbm9uaW5jcmVtZW50YWwgYWZ0ZXIgaXNlYXJjaC1lZGl0LXN0cmluZy4KKGRlZnZh ciBpc2VhcmNoLW5ldy1ub25pbmNyZW1lbnRhbCBuaWwpCgo7OyBOZXcgdmFsdWUgb2YgaXNlYXJj aC1mb3J3YXJkIGFmdGVyIGlzZWFyY2gtZWRpdC1zdHJpbmcuCihkZWZ2YXIgaXNlYXJjaC1uZXct Zm9yd2FyZCBuaWwpCgo7OyBBY2N1bXVsYXRlIGhlcmUgdGhlIG92ZXJsYXlzIG9wZW5lZCBkdXJp bmcgc2VhcmNoaW5nLgooZGVmdmFyIGlzZWFyY2gtb3BlbmVkLW92ZXJsYXlzIG5pbCkKCjs7IE5v bi1uaWwgaWYgdGhlIHN0cmluZyBleGlzdHMgYnV0IGlzIGludmlzaWJsZS4KKGRlZnZhciBpc2Vh cmNoLWhpZGRlbiBuaWwpCgo7OyBUaGUgdmFsdWUgb2YgaW5wdXQtbWV0aG9kLWZ1bmN0aW9uIHdo ZW4gaXNlYXJjaCBpcyBpbnZva2VkLgooZGVmdmFyIGlzZWFyY2gtaW5wdXQtbWV0aG9kLWZ1bmN0 aW9uIG5pbCkKCjs7IEEgZmxhZyB0byB0ZWxsIGlmIGlucHV0LW1ldGhvZC1mdW5jdGlvbiBpcyBs b2NhbGx5IGJvdW5kIHdoZW4KOzsgaXNlYXJjaCBpcyBpbnZva2VkLgooZGVmdmFyIGlzZWFyY2gt aW5wdXQtbWV0aG9kLWxvY2FsLXAgbmlsKQoKKGRlZnZhciBpc2VhcmNoLS1zYXZlZC1vdmVycmlk aW5nLWxvY2FsLW1hcCBuaWwpCgo7OyBNaW5vci1tb2RlLWFsaXN0IGNoYW5nZXMgLSBraW5kIG9m IHJlZHVuZGFudCB3aXRoIHRoZQo7OyBlY2hvIGFyZWEsIGJ1dCBpZiBpc2VhcmNoaW5nIGluIG11 bHRpcGxlIHdpbmRvd3MsIGl0IGNhbiBiZSB1c2VmdWwuCgoob3IgKGFzc3EgJ2lzZWFyY2gtbW9k ZSBtaW5vci1tb2RlLWFsaXN0KQogICAgKG5jb25jIG1pbm9yLW1vZGUtYWxpc3QKCSAgIChsaXN0 ICcoaXNlYXJjaC1tb2RlIGlzZWFyY2gtbW9kZSkpKSkKCihkZWZ2YXItbG9jYWwgaXNlYXJjaC1t b2RlIG5pbCkgOzsgTmFtZSBvZiB0aGUgbWlub3IgbW9kZSwgaWYgbm9uLW5pbC4KCihkZWZpbmUt a2V5IGdsb2JhbC1tYXAgIlxDLXMiICdpc2VhcmNoLWZvcndhcmQpCihkZWZpbmUta2V5IGVzYy1t YXAgIlxDLXMiICdpc2VhcmNoLWZvcndhcmQtcmVnZXhwKQooZGVmaW5lLWtleSBnbG9iYWwtbWFw ICJcQy1yIiAnaXNlYXJjaC1iYWNrd2FyZCkKKGRlZmluZS1rZXkgZXNjLW1hcCAiXEMtciIgJ2lz ZWFyY2gtYmFja3dhcmQtcmVnZXhwKQooZGVmaW5lLWtleSBzZWFyY2gtbWFwICJ3IiAnaXNlYXJj aC1mb3J3YXJkLXdvcmQpCihkZWZpbmUta2V5IHNlYXJjaC1tYXAgIl8iICdpc2VhcmNoLWZvcndh cmQtc3ltYm9sKQooZGVmaW5lLWtleSBzZWFyY2gtbWFwICIuIiAnaXNlYXJjaC1mb3J3YXJkLXN5 bWJvbC1hdC1wb2ludCkKCjs7IEVudHJ5IHBvaW50cyB0byBpc2VhcmNoLW1vZGUuCgooZGVmdW4g aXNlYXJjaC1mb3J3YXJkICgmb3B0aW9uYWwgcmVnZXhwLXAgbm8tcmVjdXJzaXZlLWVkaXQpCiAg IlwKRG8gaW5jcmVtZW50YWwgc2VhcmNoIGZvcndhcmQuCldpdGggYSBwcmVmaXggYXJndW1lbnQs IGRvIGFuIGluY3JlbWVudGFsIHJlZ3VsYXIgZXhwcmVzc2lvbiBzZWFyY2ggaW5zdGVhZC4KXFw8 aXNlYXJjaC1tb2RlLW1hcD4KQXMgeW91IHR5cGUgY2hhcmFjdGVycywgdGhleSBhZGQgdG8gdGhl IHNlYXJjaCBzdHJpbmcgYW5kIGFyZSBmb3VuZC4KVGhlIGZvbGxvd2luZyBub24tcHJpbnRpbmcg a2V5cyBhcmUgYm91bmQgaW4gYGlzZWFyY2gtbW9kZS1tYXAnLgoKVHlwZSBcXFtpc2VhcmNoLWRl bGV0ZS1jaGFyXSB0byBjYW5jZWwgbGFzdCBpbnB1dCBpdGVtIGZyb20gZW5kIG9mIHNlYXJjaCBz dHJpbmcuClR5cGUgXFxbaXNlYXJjaC1leGl0XSB0byBleGl0LCBsZWF2aW5nIHBvaW50IGF0IGxv Y2F0aW9uIGZvdW5kLgpUeXBlIExGRCAoQy1qKSB0byBtYXRjaCBlbmQgb2YgbGluZS4KVHlwZSBc XFtpc2VhcmNoLXJlcGVhdC1mb3J3YXJkXSB0byBzZWFyY2ggYWdhaW4gZm9yd2FyZCxcCiBcXFtp c2VhcmNoLXJlcGVhdC1iYWNrd2FyZF0gdG8gc2VhcmNoIGFnYWluIGJhY2t3YXJkLgpUeXBlIFxc W2lzZWFyY2gteWFuay13b3JkLW9yLWNoYXJdIHRvIHlhbmsgbmV4dCB3b3JkIG9yIGNoYXJhY3Rl ciBpbiBidWZmZXIKICBvbnRvIHRoZSBlbmQgb2YgdGhlIHNlYXJjaCBzdHJpbmcsIGFuZCBzZWFy Y2ggZm9yIGl0LgpUeXBlIFxcW2lzZWFyY2gtZGVsLWNoYXJdIHRvIGRlbGV0ZSBjaGFyYWN0ZXIg ZnJvbSBlbmQgb2Ygc2VhcmNoIHN0cmluZy4KVHlwZSBcXFtpc2VhcmNoLXlhbmstY2hhcl0gdG8g eWFuayBjaGFyIGZyb20gYnVmZmVyIG9udG8gZW5kIG9mIHNlYXJjaFwKIHN0cmluZyBhbmQgc2Vh cmNoIGZvciBpdC4KVHlwZSBcXFtpc2VhcmNoLXlhbmstbGluZV0gdG8geWFuayByZXN0IG9mIGxp bmUgb250byBlbmQgb2Ygc2VhcmNoIHN0cmluZ1wKIGFuZCBzZWFyY2ggZm9yIGl0LgpUeXBlIFxc W2lzZWFyY2gteWFuay1raWxsXSB0byB5YW5rIHRoZSBsYXN0IHN0cmluZyBvZiBraWxsZWQgdGV4 dC4KVHlwZSBcXFtpc2VhcmNoLXlhbmstcG9wXSB0byByZXBsYWNlIHN0cmluZyBqdXN0IHlhbmtl ZCBpbnRvIHNlYXJjaCBwcm9tcHQKIHdpdGggc3RyaW5nIGtpbGxlZCBiZWZvcmUgaXQuClR5cGUg XFxbaXNlYXJjaC1xdW90ZS1jaGFyXSB0byBxdW90ZSBjb250cm9sIGNoYXJhY3RlciB0byBzZWFy Y2ggZm9yIGl0LgpUeXBlIFxcW2lzZWFyY2gtY2hhci1ieS1uYW1lXSB0byBhZGQgYSBjaGFyYWN0 ZXIgdG8gc2VhcmNoIGJ5IFVuaWNvZGUgbmFtZSxcCiB3aXRoIGNvbXBsZXRpb24uClxcW2lzZWFy Y2gtYWJvcnRdIHdoaWxlIHNlYXJjaGluZyBvciB3aGVuIHNlYXJjaCBoYXMgZmFpbGVkIGNhbmNl bHMgaW5wdXRcCiBiYWNrIHRvIHdoYXQgaGFzCiBiZWVuIGZvdW5kIHN1Y2Nlc3NmdWxseS4KXFxb aXNlYXJjaC1hYm9ydF0gd2hlbiBzZWFyY2ggaXMgc3VjY2Vzc2Z1bCBhYm9ydHMgYW5kIG1vdmVz IHBvaW50IHRvXAogc3RhcnRpbmcgcG9pbnQuCgpJZiB5b3UgdHJ5IHRvIGV4aXQgd2l0aCB0aGUg c2VhcmNoIHN0cmluZyBzdGlsbCBlbXB0eSwgaXQgaW52b2tlcwogbm9uaW5jcmVtZW50YWwgc2Vh cmNoLgoKVHlwZSBcXFtpc2VhcmNoLXRvZ2dsZS1jYXNlLWZvbGRdIHRvIHRvZ2dsZSBzZWFyY2gg Y2FzZS1zZW5zaXRpdml0eS4KVHlwZSBcXFtpc2VhcmNoLXRvZ2dsZS1pbnZpc2libGVdIHRvIHRv Z2dsZSBzZWFyY2ggaW4gaW52aXNpYmxlIHRleHQuClR5cGUgXFxbaXNlYXJjaC10b2dnbGUtcmVn ZXhwXSB0byB0b2dnbGUgcmVndWxhci1leHByZXNzaW9uIG1vZGUuClR5cGUgXFxbaXNlYXJjaC10 b2dnbGUtd29yZF0gdG8gdG9nZ2xlIHdvcmQgbW9kZS4KVHlwZSBcXFtpc2VhcmNoLXRvZ2dsZS1z eW1ib2xdIHRvIHRvZ2dsZSBzeW1ib2wgbW9kZS4KVHlwZSBcXFtpc2VhcmNoLXRvZ2dsZS1jaGFy LWZvbGRdIHRvIHRvZ2dsZSBjaGFyYWN0ZXIgZm9sZGluZy4KClR5cGUgXFxbaXNlYXJjaC10b2dn bGUtbGF4LXdoaXRlc3BhY2VdIHRvIHRvZ2dsZSB3aGl0ZXNwYWNlIG1hdGNoaW5nLgpJbiBpbmNy ZW1lbnRhbCBzZWFyY2hlcywgYSBzcGFjZSBvciBzcGFjZXMgbm9ybWFsbHkgbWF0Y2hlcyBhbnkg d2hpdGVzcGFjZQpkZWZpbmVkIGJ5IHRoZSB2YXJpYWJsZSBgc2VhcmNoLXdoaXRlc3BhY2UtcmVn ZXhwJzsgc2VlIGFsc28gdGhlIHZhcmlhYmxlcwpgaXNlYXJjaC1sYXgtd2hpdGVzcGFjZScgYW5k IGBpc2VhcmNoLXJlZ2V4cC1sYXgtd2hpdGVzcGFjZScuCgpUeXBlIFxcW2lzZWFyY2gtZWRpdC1z dHJpbmddIHRvIGVkaXQgdGhlIHNlYXJjaCBzdHJpbmcgaW4gdGhlIG1pbmlidWZmZXIuCgpBbHNv IHN1cHBvcnRlZCBpcyBhIHNlYXJjaCByaW5nIG9mIHRoZSBwcmV2aW91cyAxNiBzZWFyY2ggc3Ry aW5ncy4KVHlwZSBcXFtpc2VhcmNoLXJpbmctYWR2YW5jZV0gdG8gc2VhcmNoIGZvciB0aGUgbmV4 dCBpdGVtIGluIHRoZSBzZWFyY2ggcmluZy4KVHlwZSBcXFtpc2VhcmNoLXJpbmctcmV0cmVhdF0g dG8gc2VhcmNoIGZvciB0aGUgcHJldmlvdXMgaXRlbSBpbiB0aGUgc2VhcmNoXAogcmluZy4KVHlw ZSBcXFtpc2VhcmNoLWNvbXBsZXRlXSB0byBjb21wbGV0ZSB0aGUgc2VhcmNoIHN0cmluZyB1c2lu ZyB0aGUgc2VhcmNoIHJpbmcuCgpUeXBlIFxcW2lzZWFyY2gtcXVlcnktcmVwbGFjZV0gdG8gcnVu IGBxdWVyeS1yZXBsYWNlJyB3aXRoIHN0cmluZyB0b1wKIHJlcGxhY2UgZnJvbSBsYXN0IHNlYXJj aCBzdHJpbmcuClR5cGUgXFxbaXNlYXJjaC1xdWVyeS1yZXBsYWNlLXJlZ2V4cF0gdG8gcnVuIGBx dWVyeS1yZXBsYWNlLXJlZ2V4cCdcCiB3aXRoIHRoZSBsYXN0IHNlYXJjaCBzdHJpbmcuClR5cGUg XFxbaXNlYXJjaC1vY2N1cl0gdG8gcnVuIGBvY2N1cicgdGhhdCBzaG93c1wKIHRoZSBsYXN0IHNl YXJjaCBzdHJpbmcuClR5cGUgXFxbaXNlYXJjaC1oaWdobGlnaHQtcmVnZXhwXSB0byBydW4gYGhp Z2hsaWdodC1yZWdleHAnXAogdGhhdCBoaWdobGlnaHRzIHRoZSBsYXN0IHNlYXJjaCBzdHJpbmcu CgpUeXBlIFxcW2lzZWFyY2gtZGVzY3JpYmUtYmluZGluZ3NdIHRvIGRpc3BsYXkgYWxsIElzZWFy Y2gga2V5IGJpbmRpbmdzLgpUeXBlIFxcW2lzZWFyY2gtZGVzY3JpYmUta2V5XSB0byBkaXNwbGF5 IGRvY3VtZW50YXRpb24gb2YgSXNlYXJjaCBrZXkuClR5cGUgXFxbaXNlYXJjaC1kZXNjcmliZS1t b2RlXSB0byBkaXNwbGF5IGRvY3VtZW50YXRpb24gb2YgSXNlYXJjaCBtb2RlLgoKSWYgYW4gaW5w dXQgbWV0aG9kIGlzIHR1cm5lZCBvbiBpbiB0aGUgY3VycmVudCBidWZmZXIsIHRoYXQgaW5wdXQK bWV0aG9kIGlzIGFsc28gYWN0aXZlIHdoaWxlIHlvdSBhcmUgdHlwaW5nIGNoYXJhY3RlcnMgdG8g c2VhcmNoLgpUbyB0b2dnbGUgdGhlIGlucHV0IG1ldGhvZCwgdHlwZSBcXFtpc2VhcmNoLXRvZ2ds ZS1pbnB1dC1tZXRob2RdLiAgXApJdCBhbHNvIHRvZ2dsZXMgdGhlIGlucHV0Cm1ldGhvZCBpbiB0 aGUgY3VycmVudCBidWZmZXIuCgpUbyB1c2UgYSBkaWZmZXJlbnQgaW5wdXQgbWV0aG9kIGZvciBz ZWFyY2hpbmcsIHR5cGUgXApcXFtpc2VhcmNoLXRvZ2dsZS1zcGVjaWZpZWQtaW5wdXQtbWV0aG9k XSwKYW5kIHNwZWNpZnkgYW4gaW5wdXQgbWV0aG9kIHlvdSB3YW50IHRvIHVzZS4KClRoZSBhYm92 ZSBrZXlzLCBib3VuZCBpbiBgaXNlYXJjaC1tb2RlLW1hcCcsIGFyZSBvZnRlbiBjb250cm9sbGVk IGJ5CiBvcHRpb25zOyBkbyBcXFthcHJvcG9zXSBvbiBzZWFyY2gtLiogdG8gZmluZCB0aGVtLgpP dGhlciBjb250cm9sIGFuZCBtZXRhIGNoYXJhY3RlcnMgdGVybWluYXRlIHRoZSBzZWFyY2gKIGFu ZCBhcmUgdGhlbiBleGVjdXRlZCBub3JtYWxseSAoZGVwZW5kaW5nIG9uIGBzZWFyY2gtZXhpdC1v cHRpb24nKS4KTGlrZXdpc2UgZm9yIGZ1bmN0aW9uIGtleXMgYW5kIG1vdXNlIGJ1dHRvbiBldmVu dHMuCgpJZiB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBub24taW50ZXJhY3RpdmVseSB3aXRoIGEg bmlsIE5PLVJFQ1VSU0lWRS1FRElULAppdCBkb2VzIG5vdCByZXR1cm4gdG8gdGhlIGNhbGxpbmcg ZnVuY3Rpb24gdW50aWwgdGhlIHNlYXJjaCBpcyBkb25lLgpTZWUgdGhlIGZ1bmN0aW9uIGBpc2Vh cmNoLW1vZGUnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIKCiAgKGludGVyYWN0aXZlICJQXG5wIikK ICAoaXNlYXJjaC1tb2RlIHQgKG5vdCAobnVsbCByZWdleHAtcCkpIG5pbCAobm90IG5vLXJlY3Vy c2l2ZS1lZGl0KSkpCgooZGVmdW4gaXNlYXJjaC1mb3J3YXJkLXJlZ2V4cCAoJm9wdGlvbmFsIG5v dC1yZWdleHAgbm8tcmVjdXJzaXZlLWVkaXQpCiAgIkRvIGluY3JlbWVudGFsIHNlYXJjaCBmb3J3 YXJkIGZvciByZWd1bGFyIGV4cHJlc3Npb24uCldpdGggYSBwcmVmaXggYXJndW1lbnQsIGRvIGEg cmVndWxhciBzdHJpbmcgc2VhcmNoIGluc3RlYWQuCkxpa2Ugb3JkaW5hcnkgaW5jcmVtZW50YWwg c2VhcmNoIGV4Y2VwdCB0aGF0IHlvdXIgaW5wdXQgaXMgdHJlYXRlZAphcyBhIHJlZ2V4cC4gIFNl ZSB0aGUgY29tbWFuZCBgaXNlYXJjaC1mb3J3YXJkJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCklu IGluY3JlbWVudGFsIHNlYXJjaGVzLCBhIHNwYWNlIG9yIHNwYWNlcyBub3JtYWxseSBtYXRjaGVz IGFueQp3aGl0ZXNwYWNlIGRlZmluZWQgYnkgdGhlIHZhcmlhYmxlIGBzZWFyY2gtd2hpdGVzcGFj ZS1yZWdleHAnLgpUbyBzZWFyY2ggZm9yIGEgbGl0ZXJhbCBzcGFjZSBhbmQgbm90aGluZyBlbHNl LCBlbnRlciBDLXEgU1BDLgpUbyB0b2dnbGUgd2hpdGVzcGFjZSBtYXRjaGluZywgdXNlIGBpc2Vh cmNoLXRvZ2dsZS1sYXgtd2hpdGVzcGFjZScuClRoaXMgY29tbWFuZCBkb2VzIG5vdCBzdXBwb3J0 IGNoYXJhY3RlciBmb2xkaW5nLiIKICAoaW50ZXJhY3RpdmUgIlBcbnAiKQogIChpc2VhcmNoLW1v ZGUgdCAobnVsbCBub3QtcmVnZXhwKSBuaWwgKG5vdCBuby1yZWN1cnNpdmUtZWRpdCkpKQoKKGRl ZnVuIGlzZWFyY2gtZm9yd2FyZC13b3JkICgmb3B0aW9uYWwgbm90LXdvcmQgbm8tcmVjdXJzaXZl LWVkaXQpCiAgIkRvIGluY3JlbWVudGFsIHNlYXJjaCBmb3J3YXJkIGZvciBhIHNlcXVlbmNlIG9m IHdvcmRzLgpXaXRoIGEgcHJlZml4IGFyZ3VtZW50LCBkbyBhIHJlZ3VsYXIgc3RyaW5nIHNlYXJj aCBpbnN0ZWFkLgpMaWtlIG9yZGluYXJ5IGluY3JlbWVudGFsIHNlYXJjaCBleGNlcHQgdGhhdCB5 b3VyIGlucHV0IGlzIHRyZWF0ZWQKYXMgYSBzZXF1ZW5jZSBvZiB3b3JkcyB3aXRob3V0IHJlZ2Fy ZCB0byBob3cgdGhlIHdvcmRzIGFyZSBzZXBhcmF0ZWQuClNlZSB0aGUgY29tbWFuZCBgaXNlYXJj aC1mb3J3YXJkJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KVGhpcyBjb21tYW5kIGRvZXMgbm90IHN1 cHBvcnQgY2hhcmFjdGVyIGZvbGRpbmcsIGFuZCBsYXggc3BhY2UgbWF0Y2hpbmcKaGFzIG5vIGVm ZmVjdCBvbiBpdC4iCiAgKGludGVyYWN0aXZlICJQXG5wIikKICAoaXNlYXJjaC1tb2RlIHQgbmls IG5pbCAobm90IG5vLXJlY3Vyc2l2ZS1lZGl0KSAobnVsbCBub3Qtd29yZCkpKQoKKGRlZnVuIGlz ZWFyY2gtZm9yd2FyZC1zeW1ib2wgKCZvcHRpb25hbCBfbm90LXN5bWJvbCBuby1yZWN1cnNpdmUt ZWRpdCkKICAiRG8gaW5jcmVtZW50YWwgc2VhcmNoIGZvcndhcmQgZm9yIGEgc3ltYm9sLgpUaGUg cHJlZml4IGFyZ3VtZW50IGlzIGN1cnJlbnRseSB1bnVzZWQuCkxpa2Ugb3JkaW5hcnkgaW5jcmVt ZW50YWwgc2VhcmNoIGV4Y2VwdCB0aGF0IHlvdXIgaW5wdXQgaXMgdHJlYXRlZAphcyBhIHN5bWJv bCBzdXJyb3VuZGVkIGJ5IHN5bWJvbCBib3VuZGFyeSBjb25zdHJ1Y3RzIFxcXzwgYW5kIFxcXz4u ClNlZSB0aGUgY29tbWFuZCBgaXNlYXJjaC1mb3J3YXJkJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4K VGhpcyBjb21tYW5kIGRvZXMgbm90IHN1cHBvcnQgY2hhcmFjdGVyIGZvbGRpbmcsIGFuZCBsYXgg c3BhY2UgbWF0Y2hpbmcKaGFzIG5vIGVmZmVjdCBvbiBpdC4iCiAgKGludGVyYWN0aXZlICJQXG5w IikKICAoaXNlYXJjaC1tb2RlIHQgbmlsIG5pbCAobm90IG5vLXJlY3Vyc2l2ZS1lZGl0KSAnaXNl YXJjaC1zeW1ib2wtcmVnZXhwKSkKCihkZWZ1biBpc2VhcmNoLWJhY2t3YXJkICgmb3B0aW9uYWwg cmVnZXhwLXAgbm8tcmVjdXJzaXZlLWVkaXQpCiAgIkRvIGluY3JlbWVudGFsIHNlYXJjaCBiYWNr d2FyZC4KV2l0aCBhIHByZWZpeCBhcmd1bWVudCwgZG8gYSByZWd1bGFyIGV4cHJlc3Npb24gc2Vh cmNoIGluc3RlYWQuClNlZSB0aGUgY29tbWFuZCBgaXNlYXJjaC1mb3J3YXJkJyBmb3IgbW9yZSBp bmZvcm1hdGlvbi4iCiAgKGludGVyYWN0aXZlICJQXG5wIikKICAoaXNlYXJjaC1tb2RlIG5pbCAo bm90IChudWxsIHJlZ2V4cC1wKSkgbmlsIChub3Qgbm8tcmVjdXJzaXZlLWVkaXQpKSkKCihkZWZ1 biBpc2VhcmNoLWJhY2t3YXJkLXJlZ2V4cCAoJm9wdGlvbmFsIG5vdC1yZWdleHAgbm8tcmVjdXJz aXZlLWVkaXQpCiAgIkRvIGluY3JlbWVudGFsIHNlYXJjaCBiYWNrd2FyZCBmb3IgcmVndWxhciBl eHByZXNzaW9uLgpXaXRoIGEgcHJlZml4IGFyZ3VtZW50LCBkbyBhIHJlZ3VsYXIgc3RyaW5nIHNl YXJjaCBpbnN0ZWFkLgpMaWtlIG9yZGluYXJ5IGluY3JlbWVudGFsIHNlYXJjaCBleGNlcHQgdGhh dCB5b3VyIGlucHV0IGlzIHRyZWF0ZWQKYXMgYSByZWdleHAuICBTZWUgdGhlIGNvbW1hbmQgYGlz ZWFyY2gtZm9yd2FyZC1yZWdleHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIKICAoaW50ZXJhY3Rp dmUgIlBcbnAiKQogIChpc2VhcmNoLW1vZGUgbmlsIChudWxsIG5vdC1yZWdleHApIG5pbCAobm90 IG5vLXJlY3Vyc2l2ZS1lZGl0KSkpCgooZGVmdW4gaXNlYXJjaC1mb3J3YXJkLXN5bWJvbC1hdC1w b2ludCAoKQogICJEbyBpbmNyZW1lbnRhbCBzZWFyY2ggZm9yd2FyZCBmb3IgYSBzeW1ib2wgZm91 bmQgbmVhciBwb2ludC4KTGlrZSBvcmRpbmFyeSBpbmNyZW1lbnRhbCBzZWFyY2ggZXhjZXB0IHRo YXQgdGhlIHN5bWJvbCBmb3VuZCBhdCBwb2ludAppcyBhZGRlZCB0byB0aGUgc2VhcmNoIHN0cmlu ZyBpbml0aWFsbHkgYXMgYSByZWdleHAgc3Vycm91bmRlZApieSBzeW1ib2wgYm91bmRhcnkgY29u c3RydWN0cyBcXF88IGFuZCBcXF8+LgpTZWUgdGhlIGNvbW1hbmQgYGlzZWFyY2gtZm9yd2FyZC1z eW1ib2wnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIKICAoaW50ZXJhY3RpdmUpCiAgKGlzZWFyY2gt Zm9yd2FyZC1zeW1ib2wgbmlsIDEpCiAgKGxldCAoKGJvdW5kcyAoZmluZC10YWctZGVmYXVsdC1i b3VuZHMpKSkKICAgIChjb25kCiAgICAgKGJvdW5kcwogICAgICAod2hlbiAoPCAoY2FyIGJvdW5k cykgKHBvaW50KSkKCShnb3RvLWNoYXIgKGNhciBib3VuZHMpKSkKICAgICAgKGlzZWFyY2gteWFu ay1zdHJpbmcKICAgICAgIChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgKGNhciBib3Vu ZHMpIChjZHIgYm91bmRzKSkpKQogICAgICh0CiAgICAgIChzZXRxIGlzZWFyY2gtZXJyb3IgIk5v IHN5bWJvbCBhdCBwb2ludCIpCiAgICAgIChpc2VhcmNoLXB1c2gtc3RhdGUpCiAgICAgIChpc2Vh cmNoLXVwZGF0ZSkpKSkpCgoMCjs7IGlzZWFyY2gtbW9kZSBvbmx5IHNldHMgdXAgaW5jcmVtZW50 YWwgc2VhcmNoIGZvciB0aGUgbWlub3IgbW9kZS4KOzsgQWxsIHRoZSB3b3JrIGlzIGRvbmUgYnkg dGhlIGlzZWFyY2gtbW9kZSBjb21tYW5kcy4KCjs7IE5vdCB1c2VkIHlldDoKOzsoZGVmdmFyIGlz ZWFyY2gtY29tbWFuZHMgJyhpc2VhcmNoLWZvcndhcmQgaXNlYXJjaC1iYWNrd2FyZAo7OwkJCSAg ICAgaXNlYXJjaC1mb3J3YXJkLXJlZ2V4cCBpc2VhcmNoLWJhY2t3YXJkLXJlZ2V4cCkKOzsgICJM aXN0IG9mIGNvbW1hbmRzIGZvciB3aGljaCBpc2VhcmNoLW1vZGUgZG9lcyBub3QgcmVjdXJzaXZl LWVkaXQuIikKCihkZWZ1biBpc2VhcmNoLW1vZGUgKGZvcndhcmQgJm9wdGlvbmFsIHJlZ2V4cCBv cC1mdW4gcmVjdXJzaXZlLWVkaXQgcmVnZXhwLWZ1bmN0aW9uKQogICJTdGFydCBJc2VhcmNoIG1p bm9yIG1vZGUuCkl0IGlzIGNhbGxlZCBieSB0aGUgZnVuY3Rpb24gYGlzZWFyY2gtZm9yd2FyZCcg YW5kIG90aGVyIHJlbGF0ZWQgZnVuY3Rpb25zLgoKVGhlIG5vbi1uaWwgYXJnIEZPUldBUkQgbWVh bnMgc2VhcmNoaW5nIGluIHRoZSBmb3J3YXJkIGRpcmVjdGlvbi4KClRoZSBub24tbmlsIGFyZyBS RUdFWFAgZG9lcyBhbiBpbmNyZW1lbnRhbCByZWd1bGFyIGV4cHJlc3Npb24gc2VhcmNoLgoKVGhl IGFyZyBPUC1GVU4gaXMgYSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgYWZ0ZXIgZWFjaCBpbnB1dCBj aGFyYWN0ZXIKaXMgcHJvY2Vzc2VkLiAgKEl0IGlzIG5vdCBjYWxsZWQgYWZ0ZXIgY2hhcmFjdGVy cyB0aGF0IGV4aXQgdGhlIHNlYXJjaC4pCgpXaGVuIHRoZSBhcmcgUkVDVVJTSVZFLUVESVQgaXMg bm9uLW5pbCwgdGhpcyBmdW5jdGlvbiBiZWhhdmVzIG1vZGFsbHkgYW5kCmRvZXMgbm90IHJldHVy biB0byB0aGUgY2FsbGluZyBmdW5jdGlvbiB1bnRpbCB0aGUgc2VhcmNoIGlzIGNvbXBsZXRlZC4K VG8gYmVoYXZlIHRoaXMgd2F5IGl0IGVudGVycyBhIHJlY3Vyc2l2ZS1lZGl0IGFuZCBleGl0cyBp dCB3aGVuIGRvbmUKaXNlYXJjaGluZy4KClRoZSBhcmcgUkVHRVhQLUZVTkNUSU9OLCBpZiBub24t bmlsLCBzaG91bGQgYmUgYSBmdW5jdGlvbi4gIEl0IGlzCnVzZWQgdG8gc2V0IHRoZSB2YWx1ZSBv ZiBgaXNlYXJjaC1yZWdleHAtZnVuY3Rpb24nLiIKCiAgOzsgSW5pdGlhbGl6ZSBnbG9iYWwgdmFy cy4KICAoc2V0cSBpc2VhcmNoLWZvcndhcmQgZm9yd2FyZAoJaXNlYXJjaC1yZWdleHAgKG9yIHJl Z2V4cAogICAgICAgICAgICAgICAgICAgICAgICAgICAoYW5kIChub3QgcmVnZXhwLWZ1bmN0aW9u KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcSBzZWFyY2gtZGVmYXVsdC1tb2Rl IHQpKSkKCWlzZWFyY2gtcmVnZXhwLWZ1bmN0aW9uIChvciByZWdleHAtZnVuY3Rpb24KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFuZCAoZnVuY3Rpb25wIHNlYXJjaC1kZWZh dWx0LW1vZGUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5vdCBy ZWdleHApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoLWRl ZmF1bHQtbW9kZSkpCglpc2VhcmNoLW9wLWZ1biBvcC1mdW4KCWlzZWFyY2gtbGFzdC1jYXNlLWZv bGQtc2VhcmNoIGlzZWFyY2gtY2FzZS1mb2xkLXNlYXJjaAoJaXNlYXJjaC1jYXNlLWZvbGQtc2Vh cmNoIGNhc2UtZm9sZC1zZWFyY2gKCWlzZWFyY2gtaW52aXNpYmxlIHNlYXJjaC1pbnZpc2libGUK CWlzZWFyY2gtc3RyaW5nICIiCglpc2VhcmNoLW1lc3NhZ2UgIiIKCWlzZWFyY2gtY21kcyBuaWwK CWlzZWFyY2gtc3VjY2VzcyB0Cglpc2VhcmNoLXdyYXBwZWQgbmlsCglpc2VhcmNoLWJhcnJpZXIg KHBvaW50KQoJaXNlYXJjaC1hZGp1c3RlZCBuaWwKCWlzZWFyY2gteWFuay1mbGFnIG5pbAoJaXNl YXJjaC1lcnJvciBuaWwKCWlzZWFyY2gtc2xvdy10ZXJtaW5hbC1tb2RlIChhbmQgKDw9IGJhdWQt cmF0ZSBzZWFyY2gtc2xvdy1zcGVlZCkKCQkJCQkoPiAod2luZG93LWhlaWdodCkKCQkJCQkgICAo KiA0CgkJCQkJICAgICAgKGFicyBzZWFyY2gtc2xvdy13aW5kb3ctbGluZXMpKSkpCglpc2VhcmNo LW90aGVyLWVuZCBuaWwKCWlzZWFyY2gtc21hbGwtd2luZG93IG5pbAoJaXNlYXJjaC1qdXN0LXN0 YXJ0ZWQgdAoJaXNlYXJjaC1zdGFydC1oc2Nyb2xsICh3aW5kb3ctaHNjcm9sbCkKCglpc2VhcmNo LW9wb2ludCAocG9pbnQpCglzZWFyY2gtcmluZy15YW5rLXBvaW50ZXIgbmlsCglpc2VhcmNoLW9w ZW5lZC1vdmVybGF5cyBuaWwKCWlzZWFyY2gtaW5wdXQtbWV0aG9kLWZ1bmN0aW9uIGlucHV0LW1l dGhvZC1mdW5jdGlvbgoJaXNlYXJjaC1pbnB1dC1tZXRob2QtbG9jYWwtcCAobG9jYWwtdmFyaWFi bGUtcCAnaW5wdXQtbWV0aG9kLWZ1bmN0aW9uKQoJcmVnZXhwLXNlYXJjaC1yaW5nLXlhbmstcG9p bnRlciBuaWwKCgk7OyBTYXZlIHRoZSBvcmlnaW5hbCB2YWx1ZSBvZiBgbWluaWJ1ZmZlci1tZXNz YWdlLXRpbWVvdXQnLCBhbmQKCTs7IHNldCBpdCB0byBuaWwgc28gdGhhdCBpc2VhcmNoJ3MgbWVz c2FnZXMgZG9uJ3QgZ2V0IHRpbWVkIG91dC4KCWlzZWFyY2gtb3JpZ2luYWwtbWluaWJ1ZmZlci1t ZXNzYWdlLXRpbWVvdXQgbWluaWJ1ZmZlci1tZXNzYWdlLXRpbWVvdXQKCW1pbmlidWZmZXItbWVz c2FnZS10aW1lb3V0IG5pbCkKCiAgOzsgV2UgbXVzdCBieXBhc3MgaW5wdXQgbWV0aG9kIHdoaWxl IHJlYWRpbmcga2V5LiAgV2hlbiBhIHVzZXIgdHlwZQogIDs7IHByaW50YWJsZSBjaGFyYWN0ZXIs IGFwcHJvcHJpYXRlIGlucHV0IG1ldGhvZCBpcyB0dXJuZWQgb24gaW4KICA7OyBtaW5pYnVmZmVy IHRvIHJlYWQgbXVsdGlieXRlIGNoYXJhY3RlcnMuCiAgKG9yIGlzZWFyY2gtaW5wdXQtbWV0aG9k LWxvY2FsLXAKICAgICAgKG1ha2UtbG9jYWwtdmFyaWFibGUgJ2lucHV0LW1ldGhvZC1mdW5jdGlv bikpCiAgKHNldHEgaW5wdXQtbWV0aG9kLWZ1bmN0aW9uIG5pbCkKCiAgKGxvb2tpbmctYXQgIiIp CiAgKHNldHEgaXNlYXJjaC13aW5kb3ctY29uZmlndXJhdGlvbgoJKGlmIGlzZWFyY2gtc2xvdy10 ZXJtaW5hbC1tb2RlIChjdXJyZW50LXdpbmRvdy1jb25maWd1cmF0aW9uKSBuaWwpKQoKICA7OyBN YXliZSBtYWtlIG1pbmlidWZmZXIgZnJhbWUgdmlzaWJsZSBhbmQvb3IgcmFpc2UgaXQuCiAgKGxl dCAoKGZyYW1lICh3aW5kb3ctZnJhbWUgKG1pbmlidWZmZXItd2luZG93KSkpKQogICAgKHVubGVz cyAobWVtcSAoZnJhbWUtbGl2ZS1wIGZyYW1lKSAnKG5pbCB0KSkKICAgICAgKHVubGVzcyAoZnJh bWUtdmlzaWJsZS1wIGZyYW1lKQoJKG1ha2UtZnJhbWUtdmlzaWJsZSBmcmFtZSkpCiAgICAgIChp ZiBtaW5pYnVmZmVyLWF1dG8tcmFpc2UKCSAgKHJhaXNlLWZyYW1lIGZyYW1lKSkpKQoKICAoc2V0 cQlpc2VhcmNoLW1vZGUgIiBJc2VhcmNoIikgIDs7IGZvcndhcmQ/IHJlZ2V4cD8KICAoZm9yY2Ut bW9kZS1saW5lLXVwZGF0ZSkKCiAgKHNldHEgb3ZlcnJpZGluZy10ZXJtaW5hbC1sb2NhbC1tYXAg aXNlYXJjaC1tb2RlLW1hcCkKICAocnVuLWhvb2tzICdpc2VhcmNoLW1vZGUtaG9vaykKICA7OyBS ZW1lbWJlciB0aGUgaW5pdGlhbCBtYXAgcG9zc2libHkgbW9kaWZpZWQKICA7OyBieSBleHRlcm5h bCBwYWNrYWdlcyBpbiBpc2VhcmNoLW1vZGUtaG9vay4gIChCdWcjMTYwMzUpCiAgKHNldHEgaXNl YXJjaC0tc2F2ZWQtb3ZlcnJpZGluZy1sb2NhbC1tYXAgb3ZlcnJpZGluZy10ZXJtaW5hbC1sb2Nh bC1tYXApCgogIDs7IFB1c2hpbmcgdGhlIGluaXRpYWwgc3RhdGUgdXNlZCB0byBiZSBiZWZvcmUg cnVubmluZyBpc2VhcmNoLW1vZGUtaG9vaywKICA7OyBidXQgYSBob29rIG1pZ2h0IHNldCBgaXNl YXJjaC1wdXNoLXN0YXRlLWZ1bmN0aW9uJyB1c2VkIGluCiAgOzsgYGlzZWFyY2gtcHVzaC1zdGF0 ZScgdG8gc2F2ZSBtb2RlLXNwZWNpZmljIGluaXRpYWwgc3RhdGUuICAoQnVnIzQ5OTQpCiAgKGlz ZWFyY2gtcHVzaC1zdGF0ZSkKCiAgKGlzZWFyY2gtdXBkYXRlKQoKICAoYWRkLWhvb2sgJ3ByZS1j b21tYW5kLWhvb2sgJ2lzZWFyY2gtcHJlLWNvbW1hbmQtaG9vaykKICAoYWRkLWhvb2sgJ3Bvc3Qt Y29tbWFuZC1ob29rICdpc2VhcmNoLXBvc3QtY29tbWFuZC1ob29rKQogIChhZGQtaG9vayAnbW91 c2UtbGVhdmUtYnVmZmVyLWhvb2sgJ2lzZWFyY2gtZG9uZSkKICAoYWRkLWhvb2sgJ2tiZC1tYWNy by10ZXJtaW5hdGlvbi1ob29rICdpc2VhcmNoLWRvbmUpCgogIDs7IGlzZWFyY2gtbW9kZSBjYW4g YmUgbWFkZSBtb2RhbCAoaW4gdGhlIHNlbnNlIG9mIG5vdCByZXR1cm5pbmcgdG8KICA7OyB0aGUg Y2FsbGluZyBmdW5jdGlvbiB1bnRpbCBzZWFyY2hpbmcgaXMgY29tcGxldGVkKSBieSBlbnRlcmlu ZwogIDs7IGEgcmVjdXJzaXZlLWVkaXQgYW5kIGV4aXRpbmcgaXQgd2hlbiBkb25lIGlzZWFyY2hp bmcuCiAgKGlmIHJlY3Vyc2l2ZS1lZGl0CiAgICAgIChsZXQgKChpc2VhcmNoLXJlY3Vyc2l2ZS1l ZGl0IHQpKQoJKHJlY3Vyc2l2ZS1lZGl0KSkpCiAgaXNlYXJjaC1zdWNjZXNzKQoKCjs7IFNvbWUg aGlnaCBsZXZlbCB1dGlsaXRpZXMuICBPdGhlcnMgYmVsb3cuCihkZWZ2YXIgaXNlYXJjaC0tY3Vy cmVudC1idWZmZXIgbmlsKQoKKGRlZnVuIGlzZWFyY2gtdXBkYXRlICgpCiAgIlRoaXMgaXMgY2Fs bGVkIGFmdGVyIGV2ZXJ5IGlzZWFyY2ggY29tbWFuZCB0byB1cGRhdGUgdGhlIGRpc3BsYXkuClRo ZSBzZWNvbmQgbGFzdCB0aGluZyBpdCBkb2VzIGlzIHRvIHJ1biBgaXNlYXJjaC11cGRhdGUtcG9z dC1ob29rJy4KVGhlIGxhc3QgdGhpbmcgaXMgdG8gdHJpZ2dlciBhIG5ldyByb3VuZCBvZiBsYXp5 IGhpZ2hsaWdodGluZy4iCiAgKHVubGVzcyAoZXEgKGN1cnJlbnQtYnVmZmVyKSBpc2VhcmNoLS1j dXJyZW50LWJ1ZmZlcikKICAgICh3aGVuIChidWZmZXItbGl2ZS1wIGlzZWFyY2gtLWN1cnJlbnQt YnVmZmVyKQogICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciBpc2VhcmNoLS1jdXJyZW50LWJ1ZmZl cgogICAgICAgIChzZXRxIGN1cnNvci1zZW5zb3ItaW5oaWJpdCAoZGVscSAnaXNlYXJjaCBjdXJz b3Itc2Vuc29yLWluaGliaXQpKSkpCiAgICAoc2V0cSBpc2VhcmNoLS1jdXJyZW50LWJ1ZmZlciAo Y3VycmVudC1idWZmZXIpKQogICAgKG1ha2UtbG9jYWwtdmFyaWFibGUgJ2N1cnNvci1zZW5zb3It aW5oaWJpdCkKICAgIDs7IFN1c3BlbmQgdGhpbmdzIGxpa2UgY3Vyc29yLWludGFuZ2libGUgZHVy aW5nIElzZWFyY2ggc28gd2UgY2FuIHNlYXJjaAogICAgOzsgZXZlbiB3aXRoaW4gaW50YW5naWJs ZSB0ZXh0LgogICAgKHB1c2ggJ2lzZWFyY2ggY3Vyc29yLXNlbnNvci1pbmhpYml0KSkKCiAgKGlm IChhbmQgKG51bGwgdW5yZWFkLWNvbW1hbmQtZXZlbnRzKQoJICAgKG51bGwgZXhlY3V0aW5nLWti ZC1tYWNybykpCiAgICAgIChwcm9nbgogICAgICAgIChpZiAobm90IChpbnB1dC1wZW5kaW5nLXAp KQogICAgICAgICAgKGZ1bmNhbGwgKG9yIGlzZWFyY2gtbWVzc2FnZS1mdW5jdGlvbiAjJ2lzZWFy Y2gtbWVzc2FnZSkpKQogICAgICAgIChpZiAoYW5kIGlzZWFyY2gtc2xvdy10ZXJtaW5hbC1tb2Rl CiAgICAgICAgICAgICAgICAgKG5vdCAob3IgaXNlYXJjaC1zbWFsbC13aW5kb3cKICAgICAgICAg ICAgICAgICAgICAgICAgICAocG9zLXZpc2libGUtaW4td2luZG93LWdyb3VwLXApKSkpCiAgICAg ICAgICAgIChsZXQgKChmb3VuZC1wb2ludCAocG9pbnQpKSkKICAgICAgICAgICAgICAoc2V0cSBp c2VhcmNoLXNtYWxsLXdpbmRvdyB0KQogICAgICAgICAgICAgIChtb3ZlLXRvLXdpbmRvdy1saW5l IDApCiAgICAgICAgICAgICAgKGxldCAoKHdpbmRvdy1taW4taGVpZ2h0IDEpKQogICAgICAgICAg ICAgICAgKHNwbGl0LXdpbmRvdyBuaWwgKGlmICg8IHNlYXJjaC1zbG93LXdpbmRvdy1saW5lcyAw KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxKyAoLSBzZWFyY2gtc2xv dy13aW5kb3ctbGluZXMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoLSAo d2luZG93LWhlaWdodCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEr IHNlYXJjaC1zbG93LXdpbmRvdy1saW5lcykpKSkpCiAgICAgICAgICAgICAgKGlmICg8IHNlYXJj aC1zbG93LXdpbmRvdy1saW5lcyAwKQogICAgICAgICAgICAgICAgICAocHJvZ24gKHZlcnRpY2Fs LW1vdGlvbiAoLSAxIHNlYXJjaC1zbG93LXdpbmRvdy1saW5lcykpCiAgICAgICAgICAgICAgICAg ICAgICAgICAoc2V0LXdpbmRvdy1zdGFydCAobmV4dC13aW5kb3cpIChwb2ludCkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAoc2V0LXdpbmRvdy1oc2Nyb2xsIChuZXh0LXdpbmRvdykKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy1oc2Nyb2xsKSkK ICAgICAgICAgICAgICAgICAgICAgICAgIChzZXQtd2luZG93LWhzY3JvbGwgKHNlbGVjdGVkLXdp bmRvdykgMCkpCiAgICAgICAgICAgICAgICAob3RoZXItd2luZG93IDEpKQogICAgICAgICAgICAg IChnb3RvLWNoYXIgZm91bmQtcG9pbnQpKQoJICA7OyBLZWVwIHNhbWUgaHNjcm9sbGluZyBhcyBh dCB0aGUgc3RhcnQgb2YgdGhlIHNlYXJjaCB3aGVuIHBvc3NpYmxlCgkgIChsZXQgKChjdXJyZW50 LXNjcm9sbCAod2luZG93LWhzY3JvbGwpKQoJCXZpc2libGUtcCkKCSAgICAoc2V0LXdpbmRvdy1o c2Nyb2xsIChzZWxlY3RlZC13aW5kb3cpIGlzZWFyY2gtc3RhcnQtaHNjcm9sbCkKCSAgICAoc2V0 cSB2aXNpYmxlLXAgKHBvcy12aXNpYmxlLWluLXdpbmRvdy1ncm91cC1wIG5pbCBuaWwgdCkpCgkg ICAgKGlmIChvciAobm90IHZpc2libGUtcCkKCQkgICAgOzsgV2hlbiBwb2ludCBpcyBub3Qgdmlz aWJsZSBiZWNhdXNlIG9mIGhzY3JvbGwsCgkJICAgIDs7IHBvcy12aXNpYmxlLWluLXdpbmRvdy1n cm91cC1wIHJldHVybnMgbm9uLW5pbCwgYnV0CgkJICAgIDs7IHRoZSBYIGNvb3JkaW5hdGUgaXQg cmV0dXJucyBpcyAxIHBpeGVsIGJleW9uZAoJCSAgICA7OyB0aGUgbGFzdCB2aXNpYmxlIG9uZS4K CQkgICAgKD49IChjYXIgdmlzaWJsZS1wKQogICAgICAgICAgICAgICAgICAgICAgICAoKiAod2lu ZG93LW1heC1jaGFycy1wZXItbGluZSkgKGZyYW1lLWNoYXItd2lkdGgpKSkpCgkJKHNldC13aW5k b3ctaHNjcm9sbCAoc2VsZWN0ZWQtd2luZG93KSBjdXJyZW50LXNjcm9sbCkpKSkKCShpZiBpc2Vh cmNoLW90aGVyLWVuZAogICAgICAgICAgICAoaWYgKDwgaXNlYXJjaC1vdGhlci1lbmQgKHBvaW50 KSkgOyBpc2VhcmNoLWZvcndhcmQ/CiAgICAgICAgICAgICAgICAoaXNlYXJjaC1oaWdobGlnaHQg aXNlYXJjaC1vdGhlci1lbmQgKHBvaW50KSkKICAgICAgICAgICAgICAoaXNlYXJjaC1oaWdobGln aHQgKHBvaW50KSBpc2VhcmNoLW90aGVyLWVuZCkpCiAgICAgICAgICAoaXNlYXJjaC1kZWhpZ2hs aWdodCkpKSkKICAoc2V0cSA7OyBxdWl0LWZsYWcgbmlsICBub3QgZm9yIGlzZWFyY2gtbW9kZQog ICBpc2VhcmNoLWFkanVzdGVkIG5pbAogICBpc2VhcmNoLXlhbmstZmxhZyBuaWwpCiAgOzsgV2Ug bXVzdCBwcmV2ZW50IHRoZSBwb2ludCBtb3ZpbmcgdG8gdGhlIGVuZCBvZiBjb21wb3NpdGlvbiB3 aGVuIGEKICA7OyBwYXJ0IG9mIHRoZSBjb21wb3NpdGlvbiBoYXMganVzdCBiZWVuIHNlYXJjaGVk LgogIChzZXRxIGRpc2FibGUtcG9pbnQtYWRqdXN0bWVudCB0KQogIChydW4taG9va3MgJ2lzZWFy Y2gtdXBkYXRlLXBvc3QtaG9vaykKICAod2hlbiBpc2VhcmNoLWxhenktaGlnaGxpZ2h0CiAgICAo aXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1uZXctbG9vcCkpKQoKKGRlZnVuIGlzZWFyY2gtZG9uZSAo Jm9wdGlvbmFsIG5vcHVzaCBlZGl0KQogICJFeGl0IElzZWFyY2ggbW9kZS4KRm9yIHN1Y2Nlc3Nm dWwgc2VhcmNoLCBwYXNzIG5vIGFyZ3MuCkZvciBhIGZhaWxpbmcgc2VhcmNoLCBOT1BVU0ggaXMg dC4KRm9yIGdvaW5nIHRvIHRoZSBtaW5pYnVmZmVyIHRvIGVkaXQgdGhlIHNlYXJjaCBzdHJpbmcs Ck5PUFVTSCBpcyB0IGFuZCBFRElUIGlzIHQuIgoKICAod2hlbiBpc2VhcmNoLXJlc3VtZS1pbi1j b21tYW5kLWhpc3RvcnkKICAgIChhZGQtdG8taGlzdG9yeSAnY29tbWFuZC1oaXN0b3J5CiAgICAg ICAgICAgICAgICAgICAgYChpc2VhcmNoLXJlc3VtZSAsaXNlYXJjaC1zdHJpbmcgLGlzZWFyY2gt cmVnZXhwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsaXNlYXJjaC1yZWdl eHAtZnVuY3Rpb24gLGlzZWFyY2gtZm9yd2FyZAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLGlzZWFyY2gtbWVzc2FnZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJyxpc2VhcmNoLWNhc2UtZm9sZC1zZWFyY2gpKSkKCiAgKHJlbW92ZS1ob29rICdwcmUt Y29tbWFuZC1ob29rICdpc2VhcmNoLXByZS1jb21tYW5kLWhvb2spCiAgKHJlbW92ZS1ob29rICdw b3N0LWNvbW1hbmQtaG9vayAnaXNlYXJjaC1wb3N0LWNvbW1hbmQtaG9vaykKICAocmVtb3ZlLWhv b2sgJ21vdXNlLWxlYXZlLWJ1ZmZlci1ob29rICdpc2VhcmNoLWRvbmUpCiAgKHJlbW92ZS1ob29r ICdrYmQtbWFjcm8tdGVybWluYXRpb24taG9vayAnaXNlYXJjaC1kb25lKQogIChzZXRxIGlzZWFy Y2gtbGF6eS1oaWdobGlnaHQtc3RhcnQgbmlsKQogICh3aGVuIChidWZmZXItbGl2ZS1wIGlzZWFy Y2gtLWN1cnJlbnQtYnVmZmVyKQogICAgKHdpdGgtY3VycmVudC1idWZmZXIgaXNlYXJjaC0tY3Vy cmVudC1idWZmZXIKICAgICAgKHNldHEgaXNlYXJjaC0tY3VycmVudC1idWZmZXIgbmlsKQogICAg ICAoc2V0cSBjdXJzb3Itc2Vuc29yLWluaGliaXQgKGRlbHEgJ2lzZWFyY2ggY3Vyc29yLXNlbnNv ci1pbmhpYml0KSkpKQoKICA7OyBDYWxsZWQgYnkgYWxsIGNvbW1hbmRzIHRoYXQgdGVybWluYXRl IGlzZWFyY2gtbW9kZS4KICA7OyBJZiBOT1BVU0ggaXMgbm9uLW5pbCwgd2UgZG9uJ3QgcHVzaCB0 aGUgc3RyaW5nIG9uIHRoZSBzZWFyY2ggcmluZy4KICAoc2V0cSBvdmVycmlkaW5nLXRlcm1pbmFs LWxvY2FsLW1hcCBuaWwpCiAgOzsgKHNldHEgcHJlLWNvbW1hbmQtaG9vayBpc2VhcmNoLW9sZC1w cmUtY29tbWFuZC1ob29rKSA7IGZvciBsZW1hY3MKICAoc2V0cSBtaW5pYnVmZmVyLW1lc3NhZ2Ut dGltZW91dCBpc2VhcmNoLW9yaWdpbmFsLW1pbmlidWZmZXItbWVzc2FnZS10aW1lb3V0KQogIChp c2VhcmNoLWRlaGlnaGxpZ2h0KQogIChsYXp5LWhpZ2hsaWdodC1jbGVhbnVwIGxhenktaGlnaGxp Z2h0LWNsZWFudXApCiAgKGxldCAoKGZvdW5kLXN0YXJ0ICh3aW5kb3ctZ3JvdXAtc3RhcnQpKQoJ KGZvdW5kLXBvaW50IChwb2ludCkpKQogICAgKHdoZW4gaXNlYXJjaC13aW5kb3ctY29uZmlndXJh dGlvbgogICAgICAoc2V0LXdpbmRvdy1jb25maWd1cmF0aW9uIGlzZWFyY2gtd2luZG93LWNvbmZp Z3VyYXRpb24pCiAgICAgIChpZiBpc2VhcmNoLXNtYWxsLXdpbmRvdwoJICAoZ290by1jaGFyIGZv dW5kLXBvaW50KQoJOzsgc2V0LXdpbmRvdy1jb25maWd1cmF0aW9uIGNsb2JiZXJzIHdpbmRvdy1z dGFydDsgcmVzdG9yZSBpdC4KCTs7IFRoaXMgaGFzIGFuIGFubm95aW5nIHNpZGUgZWZmZWN0IG9m IGNsZWFyaW5nIHRoZSBsYXN0X21vZGlmZgoJOzsgZmllbGQgb2YgdGhlIHdpbmRvdywgd2hpY2gg Y2FuIGNhdXNlIHVud2FudGVkIHNjcm9sbGluZywKCTs7IHNvIGRvbid0IGRvIGl0IHVubGVzcyB0 cnVseSBuZWNlc3NhcnkuCgkoc2V0LXdpbmRvdy1ncm91cC1zdGFydCAoc2VsZWN0ZWQtd2luZG93 KSBmb3VuZC1zdGFydCB0KSkpKQoKICAoc2V0cSBpc2VhcmNoLW1vZGUgbmlsKQogIChpZiBpc2Vh cmNoLWlucHV0LW1ldGhvZC1sb2NhbC1wCiAgICAgIChzZXRxIGlucHV0LW1ldGhvZC1mdW5jdGlv biBpc2VhcmNoLWlucHV0LW1ldGhvZC1mdW5jdGlvbikKICAgIChraWxsLWxvY2FsLXZhcmlhYmxl ICdpbnB1dC1tZXRob2QtZnVuY3Rpb24pKQoKICAoZm9yY2UtbW9kZS1saW5lLXVwZGF0ZSkKCiAg OzsgSWYgd2UgZW5kZWQgaW4gdGhlIG1pZGRsZSBvZiBzb21lIGludGFuZ2libGUgdGV4dCwKICA7 OyBtb3ZlIHRvIHRoZSBmdXJ0aGVyIGVuZCBvZiB0aGF0IGludGFuZ2libGUgdGV4dC4KICAobGV0 ICgoYWZ0ZXIgKGlmIChlb2JwKSBuaWwKCQkgKGdldC10ZXh0LXByb3BlcnR5IChwb2ludCkgJ2lu dGFuZ2libGUpKSkKCShiZWZvcmUgKGlmIChib2JwKSBuaWwKCQkgIChnZXQtdGV4dC1wcm9wZXJ0 eSAoMS0gKHBvaW50KSkgJ2ludGFuZ2libGUpKSkpCiAgICAod2hlbiAoYW5kIGJlZm9yZSBhZnRl ciAoZXEgYmVmb3JlIGFmdGVyKSkKICAgICAgKGdvdG8tY2hhcgogICAgICAgKGlmIGlzZWFyY2gt Zm9yd2FyZAogICAgICAgICAgIChuZXh0LXNpbmdsZS1wcm9wZXJ0eS1jaGFuZ2UgKHBvaW50KSAn aW50YW5naWJsZSkKICAgICAgICAgKHByZXZpb3VzLXNpbmdsZS1wcm9wZXJ0eS1jaGFuZ2UgKHBv aW50KSAnaW50YW5naWJsZSkpKSkpCgogIChpZiAoYW5kICg+IChsZW5ndGggaXNlYXJjaC1zdHJp bmcpIDApIChub3Qgbm9wdXNoKSkKICAgICAgOzsgVXBkYXRlIHRoZSByaW5nIGRhdGEuCiAgICAg IChpc2VhcmNoLXVwZGF0ZS1yaW5nIGlzZWFyY2gtc3RyaW5nIGlzZWFyY2gtcmVnZXhwKSkKCiAg KGxldCAoKGlzZWFyY2gtbW9kZS1lbmQtaG9vay1xdWl0IChhbmQgbm9wdXNoIChub3QgZWRpdCkp KSkKICAgIChydW4taG9va3MgJ2lzZWFyY2gtbW9kZS1lbmQtaG9vaykpCgogIDs7IElmIHRoZXJl IHdhcyBtb3ZlbWVudCwgbWFyayB0aGUgc3RhcnRpbmcgcG9zaXRpb24uCiAgOzsgTWF5YmUgc2hv dWxkIHRlc3QgZGlmZmVyZW5jZSBiZXR3ZWVuIGFuZCBzZXQgbWFyayBvbmx5IGlmID4gdGhyZXNo b2xkLgogIChpZiAoLz0gKHBvaW50KSBpc2VhcmNoLW9wb2ludCkKICAgICAgKG9yIChhbmQgdHJh bnNpZW50LW1hcmstbW9kZSBtYXJrLWFjdGl2ZSkKCSAgKHByb2duCgkgICAgKHB1c2gtbWFyayBp c2VhcmNoLW9wb2ludCB0KQoJICAgIChvciBleGVjdXRpbmcta2JkLW1hY3JvICg+IChtaW5pYnVm ZmVyLWRlcHRoKSAwKSBlZGl0CgkJKG1lc3NhZ2UgIk1hcmsgc2F2ZWQgd2hlcmUgc2VhcmNoIHN0 YXJ0ZWQiKSkpKSkKCiAgKGFuZCAobm90IGVkaXQpIGlzZWFyY2gtcmVjdXJzaXZlLWVkaXQgKGV4 aXQtcmVjdXJzaXZlLWVkaXQpKSkKCihkZWZ1biBpc2VhcmNoLXVwZGF0ZS1yaW5nIChzdHJpbmcg Jm9wdGlvbmFsIHJlZ2V4cCkKICAiQWRkIFNUUklORyB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBz ZWFyY2ggcmluZy4KUkVHRVhQIGlmIG5vbi1uaWwgc2F5cyB1c2UgdGhlIHJlZ2V4cCBzZWFyY2gg cmluZy4iCiAgKGxldCAoKGhpc3RvcnktZGVsZXRlLWR1cGxpY2F0ZXMgdCkpCiAgICAoYWRkLXRv LWhpc3RvcnkKICAgICAoaWYgcmVnZXhwICdyZWdleHAtc2VhcmNoLXJpbmcgJ3NlYXJjaC1yaW5n KQogICAgIChpc2VhcmNoLXN0cmluZy1wcm9wZXJ0aXplIHN0cmluZykKICAgICAoaWYgcmVnZXhw IHJlZ2V4cC1zZWFyY2gtcmluZy1tYXggc2VhcmNoLXJpbmctbWF4KQogICAgIHQpKSkKCihkZWZ1 biBpc2VhcmNoLXN0cmluZy1wcm9wZXJ0aXplIChzdHJpbmcgJm9wdGlvbmFsIHByb3BlcnRpZXMp CiAgIkFkZCBpc2VhcmNoIHByb3BlcnRpZXMgdG8gdGhlIGlzZWFyY2ggc3RyaW5nLiIKICAodW5s ZXNzIHByb3BlcnRpZXMKICAgIChzZXRxIHByb3BlcnRpZXMgYChpc2VhcmNoLWNhc2UtZm9sZC1z ZWFyY2ggLGlzZWFyY2gtY2FzZS1mb2xkLXNlYXJjaCkpCiAgICAodW5sZXNzIGlzZWFyY2gtcmVn ZXhwCiAgICAgIChzZXRxIHByb3BlcnRpZXMgKGFwcGVuZCBwcm9wZXJ0aWVzIGAoaXNlYXJjaC1y ZWdleHAtZnVuY3Rpb24gLGlzZWFyY2gtcmVnZXhwLWZ1bmN0aW9uKSkpKSkKICAoYXBwbHkgJ3By b3BlcnRpemUgc3RyaW5nIHByb3BlcnRpZXMpKQoKKGRlZnVuIGlzZWFyY2gtdXBkYXRlLWZyb20t c3RyaW5nLXByb3BlcnRpZXMgKHN0cmluZykKICAiVXBkYXRlIGlzZWFyY2ggcHJvcGVydGllcyBm cm9tIHRoZSBpc2VhcmNoIHN0cmluZyIKICAod2hlbiAocGxpc3QtbWVtYmVyICh0ZXh0LXByb3Bl cnRpZXMtYXQgMCBzdHJpbmcpICdpc2VhcmNoLWNhc2UtZm9sZC1zZWFyY2gpCiAgICAoc2V0cSBp c2VhcmNoLWNhc2UtZm9sZC1zZWFyY2gKCSAgKGdldC10ZXh0LXByb3BlcnR5IDAgJ2lzZWFyY2gt Y2FzZS1mb2xkLXNlYXJjaCBzdHJpbmcpKSkKICAod2hlbiAocGxpc3QtbWVtYmVyICh0ZXh0LXBy b3BlcnRpZXMtYXQgMCBzdHJpbmcpICdpc2VhcmNoLXJlZ2V4cC1mdW5jdGlvbikKICAgIChzZXRx IGlzZWFyY2gtcmVnZXhwLWZ1bmN0aW9uCgkgIChnZXQtdGV4dC1wcm9wZXJ0eSAwICdpc2VhcmNo LXJlZ2V4cC1mdW5jdGlvbiBzdHJpbmcpKSkpCgoMCjs7IFRoZSBzZWFyY2ggc3RhdHVzIHN0cnVj dHVyZSBhbmQgc3RhY2suCgooY2wtZGVmc3RydWN0IChpc2VhcmNoLS1zdGF0ZQogICAgICAgICAg ICAgICAoOmNvbnN0cnVjdG9yIG5pbCkKICAgICAgICAgICAgICAgKDpjb3BpZXIgbmlsKQogICAg ICAgICAgICAgICAoOmNvbnN0cnVjdG9yIGlzZWFyY2gtLWdldC1zdGF0ZQogICAgICAgICAgICAg ICAgKCZhdXgKICAgICAgICAgICAgICAgICAoc3RyaW5nIGlzZWFyY2gtc3RyaW5nKQogICAgICAg ICAgICAgICAgIChtZXNzYWdlIGlzZWFyY2gtbWVzc2FnZSkKICAgICAgICAgICAgICAgICAocG9p bnQgKHBvaW50KSkKICAgICAgICAgICAgICAgICAoc3VjY2VzcyBpc2VhcmNoLXN1Y2Nlc3MpCiAg ICAgICAgICAgICAgICAgKGZvcndhcmQgaXNlYXJjaC1mb3J3YXJkKQogICAgICAgICAgICAgICAg IChvdGhlci1lbmQgaXNlYXJjaC1vdGhlci1lbmQpCiAgICAgICAgICAgICAgICAgKHdvcmQgaXNl YXJjaC1yZWdleHAtZnVuY3Rpb24pCiAgICAgICAgICAgICAgICAgKGVycm9yIGlzZWFyY2gtZXJy b3IpCiAgICAgICAgICAgICAgICAgKHdyYXBwZWQgaXNlYXJjaC13cmFwcGVkKQogICAgICAgICAg ICAgICAgIChiYXJyaWVyIGlzZWFyY2gtYmFycmllcikKICAgICAgICAgICAgICAgICAoY2FzZS1m b2xkLXNlYXJjaCBpc2VhcmNoLWNhc2UtZm9sZC1zZWFyY2gpCiAgICAgICAgICAgICAgICAgKHBv cC1mdW4gKGlmIGlzZWFyY2gtcHVzaC1zdGF0ZS1mdW5jdGlvbgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoZnVuY2FsbCBpc2VhcmNoLXB1c2gtc3RhdGUtZnVuY3Rpb24pKSkpKSkKICAo c3RyaW5nIG5pbCA6cmVhZC1vbmx5IHQpCiAgKG1lc3NhZ2UgbmlsIDpyZWFkLW9ubHkgdCkKICAo cG9pbnQgbmlsIDpyZWFkLW9ubHkgdCkKICAoc3VjY2VzcyBuaWwgOnJlYWQtb25seSB0KQogIChm b3J3YXJkIG5pbCA6cmVhZC1vbmx5IHQpCiAgKG90aGVyLWVuZCBuaWwgOnJlYWQtb25seSB0KQog ICh3b3JkIG5pbCA6cmVhZC1vbmx5IHQpCiAgKGVycm9yIG5pbCA6cmVhZC1vbmx5IHQpCiAgKHdy YXBwZWQgbmlsIDpyZWFkLW9ubHkgdCkKICAoYmFycmllciBuaWwgOnJlYWQtb25seSB0KQogIChj YXNlLWZvbGQtc2VhcmNoIG5pbCA6cmVhZC1vbmx5IHQpCiAgKHBvcC1mdW4gbmlsIDpyZWFkLW9u bHkgdCkpCgooZGVmdW4gaXNlYXJjaC0tc2V0LXN0YXRlIChjbWQpCiAgKHNldHEgaXNlYXJjaC1z dHJpbmcgKGlzZWFyY2gtLXN0YXRlLXN0cmluZyBjbWQpCglpc2VhcmNoLW1lc3NhZ2UgKGlzZWFy Y2gtLXN0YXRlLW1lc3NhZ2UgY21kKQoJaXNlYXJjaC1zdWNjZXNzIChpc2VhcmNoLS1zdGF0ZS1z dWNjZXNzIGNtZCkKCWlzZWFyY2gtZm9yd2FyZCAoaXNlYXJjaC0tc3RhdGUtZm9yd2FyZCBjbWQp Cglpc2VhcmNoLW90aGVyLWVuZCAoaXNlYXJjaC0tc3RhdGUtb3RoZXItZW5kIGNtZCkKCWlzZWFy Y2gtcmVnZXhwLWZ1bmN0aW9uIChpc2VhcmNoLS1zdGF0ZS13b3JkIGNtZCkKCWlzZWFyY2gtZXJy b3IgKGlzZWFyY2gtLXN0YXRlLWVycm9yIGNtZCkKCWlzZWFyY2gtd3JhcHBlZCAoaXNlYXJjaC0t c3RhdGUtd3JhcHBlZCBjbWQpCglpc2VhcmNoLWJhcnJpZXIgKGlzZWFyY2gtLXN0YXRlLWJhcnJp ZXIgY21kKQoJaXNlYXJjaC1jYXNlLWZvbGQtc2VhcmNoIChpc2VhcmNoLS1zdGF0ZS1jYXNlLWZv bGQtc2VhcmNoIGNtZCkpCiAgKGlmIChmdW5jdGlvbnAgKGlzZWFyY2gtLXN0YXRlLXBvcC1mdW4g Y21kKSkKICAgICAgKGZ1bmNhbGwgKGlzZWFyY2gtLXN0YXRlLXBvcC1mdW4gY21kKSBjbWQpKQog IChnb3RvLWNoYXIgKGlzZWFyY2gtLXN0YXRlLXBvaW50IGNtZCkpKQoKKGRlZnVuIGlzZWFyY2gt cG9wLXN0YXRlICgpCiAgKHNldHEgaXNlYXJjaC1jbWRzIChjZHIgaXNlYXJjaC1jbWRzKSkKICAo aXNlYXJjaC0tc2V0LXN0YXRlIChjYXIgaXNlYXJjaC1jbWRzKSkpCgooZGVmdW4gaXNlYXJjaC1w dXNoLXN0YXRlICgpCiAgKHB1c2ggKGlzZWFyY2gtLWdldC1zdGF0ZSkgaXNlYXJjaC1jbWRzKSkK CgwKOzsgQ29tbWFuZHMgYWN0aXZlIHdoaWxlIGluc2lkZSBvZiB0aGUgaXNlYXJjaCBtaW5vciBt b2RlLgoKKGRlZnVuIGlzZWFyY2gtZXhpdCAoKQogICJFeGl0IHNlYXJjaCBub3JtYWxseS4KSG93 ZXZlciwgaWYgdGhpcyBpcyB0aGUgZmlyc3QgY29tbWFuZCBhZnRlciBzdGFydGluZyBpbmNyZW1l bnRhbApzZWFyY2ggYW5kIGBzZWFyY2gtbm9uaW5jcmVtZW50YWwtaW5zdGVhZCcgaXMgbm9uLW5p bCwgZG8gYQpub25pbmNyZW1lbnRhbCBzZWFyY2ggaW5zdGVhZCB2aWEgYGlzZWFyY2gtZWRpdC1z dHJpbmcnLiIKICAoaW50ZXJhY3RpdmUpCiAgKGlmIChhbmQgc2VhcmNoLW5vbmluY3JlbWVudGFs LWluc3RlYWQKCSAgICg9IDAgKGxlbmd0aCBpc2VhcmNoLXN0cmluZykpKQogICAgICAobGV0ICgo aXNlYXJjaC1ub25pbmNyZW1lbnRhbCB0KSkKCShpc2VhcmNoLWVkaXQtc3RyaW5nKSkgOzsgdGhp cyBjYWxscyBpc2VhcmNoLWRvbmUgYXMgd2VsbAogICAgKGlzZWFyY2gtZG9uZSkpCiAgKGlzZWFy Y2gtY2xlYW4tb3ZlcmxheXMpKQoKKGRlZnVuIGlzZWFyY2gtZmFpbC1wb3MgKCZvcHRpb25hbCBt c2cpCiAgIlJldHVybiBwb3NpdGlvbiBvZiBmaXJzdCBtaXNtYXRjaCBpbiBzZWFyY2ggc3RyaW5n LCBvciBuaWwgaWYgbm9uZS4KSWYgTVNHIGlzIG5vbi1uaWwsIHVzZSB2YXJpYWJsZSBgaXNlYXJj aC1tZXNzYWdlJywgb3RoZXJ3aXNlIGBpc2VhcmNoLXN0cmluZycuIgogIChsZXQgKChjbWRzIGlz ZWFyY2gtY21kcykKCShjdXJyLW1zZyAoaWYgbXNnIGlzZWFyY2gtbWVzc2FnZSBpc2VhcmNoLXN0 cmluZykpCglzdWNjLW1zZykKICAgICh3aGVuIChvciAobm90IGlzZWFyY2gtc3VjY2VzcykgaXNl YXJjaC1lcnJvcikKICAgICAgKHdoaWxlIChhbmQgY21kcwoJCSAgKG9yIChub3QgKGlzZWFyY2gt LXN0YXRlLXN1Y2Nlc3MgKGNhciBjbWRzKSkpCgkJICAgICAgKGlzZWFyY2gtLXN0YXRlLWVycm9y IChjYXIgY21kcykpKSkKICAgICAgICAocG9wIGNtZHMpKQogICAgICAoc2V0cSBzdWNjLW1zZyAo YW5kIGNtZHMgKGlmIG1zZyAoaXNlYXJjaC0tc3RhdGUtbWVzc2FnZSAoY2FyIGNtZHMpKQoJCQkJ IChpc2VhcmNoLS1zdGF0ZS1zdHJpbmcgKGNhciBjbWRzKSkpKSkKICAgICAgKGlmIChhbmQgKHN0 cmluZ3Agc3VjYy1tc2cpCgkgICAgICAgKDwgKGxlbmd0aCBzdWNjLW1zZykgKGxlbmd0aCBjdXJy LW1zZykpCgkgICAgICAgKGVxdWFsIHN1Y2MtbXNnCgkJICAgICAgKHN1YnN0cmluZyBjdXJyLW1z ZyAwIChsZW5ndGggc3VjYy1tc2cpKSkpCgkgIChsZW5ndGggc3VjYy1tc2cpCgkwKSkpKQoKKGRl ZmluZS1vYnNvbGV0ZS12YXJpYWJsZS1hbGlhcyAnaXNlYXJjaC1uZXctd29yZAogICdpc2VhcmNo LW5ldy1yZWdleHAtZnVuY3Rpb24gIjI1LjEiKQoKKGRlZnZhciBpc2VhcmNoLW5ldy1yZWdleHAt ZnVuY3Rpb24gbmlsCiAgIkhvbGRzIHRoZSBuZXh0IGBpc2VhcmNoLXJlZ2V4cC1mdW5jdGlvbicg aW5zaWRlIGB3aXRoLWlzZWFyY2gtc3VzcGVuZGVkJy4KSWYgdGhpcyBpcyBzZXQgaW5zaWRlIGNv ZGUgd3JhcHBlZCBieSB0aGUgbWFjcm8KYHdpdGgtaXNlYXJjaC1zdXNwZW5kZWQnLCB0aGVuIHRo ZSB2YWx1ZSBzZXQgd2lsbCBiZSB1c2VkIGFzIHRoZQpgaXNlYXJjaC1yZWdleHAtZnVuY3Rpb24n IG9uY2UgaXNlYXJjaCByZXN1bWVzLiIpCgooZGVmdmFyIGlzZWFyY2gtc3VzcGVuZGVkIG5pbCkK CihkZWZtYWNybyB3aXRoLWlzZWFyY2gtc3VzcGVuZGVkICgmcmVzdCBib2R5KQogICJFeGl0IElz ZWFyY2ggbW9kZSwgcnVuIEJPRFksIGFuZCByZWludm9rZSB0aGUgcGVuZGluZyBzZWFyY2guCllv dSBjYW4gdXBkYXRlIHRoZSBnbG9iYWwgaXNlYXJjaCB2YXJpYWJsZXMgYnkgc2V0dGluZyBuZXcg dmFsdWVzIHRvCmBpc2VhcmNoLW5ldy1zdHJpbmcnLCBgaXNlYXJjaC1uZXctbWVzc2FnZScsIGBp c2VhcmNoLW5ldy1mb3J3YXJkJywKYGlzZWFyY2gtbmV3LXJlZ2V4cC1mdW5jdGlvbicsIGBpc2Vh cmNoLW5ldy1jYXNlLWZvbGQnLCBgaXNlYXJjaC1uZXctbm9uaW5jcmVtZW50YWwnLiIKICA7OyBU aGlzIGNvZGUgaXMgdmVyeSBoYWlyeSBmb3Igc2V2ZXJhbCByZWFzb25zLCBleHBsYWluZWQgaW4g dGhlIGNvZGUuCiAgOzsgTWFpbmx5LCBpc2VhcmNoLW1vZGUgbXVzdCBiZSB0ZXJtaW5hdGVkIHdo aWxlIGVkaXRpbmcgYW5kIHRoZW4gcmVzdGFydGVkLgogIDs7IElmIHRoZXJlIHdlcmUgYSB3YXkg dG8gY2F0Y2ggYW55IGNoYW5nZSBvZiBidWZmZXIgZnJvbSB0aGUgbWluaWJ1ZmZlciwKICA7OyB0 aGlzIGNvdWxkIGJlIHNpbXBsaWZpZWQgZ3JlYXRseS4KICA7OyBFZGl0aW5nIGRvZXNuJ3QgYmFj ayB1cCB0aGUgc2VhcmNoIHBvaW50LiAgU2hvdWxkIGl0PwogIGAoY29uZGl0aW9uLWNhc2Ugbmls CiAgICAgIChwcm9nbgoJKGxldCAoKGlzZWFyY2gtbmV3LW5vbmluY3JlbWVudGFsIGlzZWFyY2gt bm9uaW5jcmVtZW50YWwpCgoJICAgICAgOzsgTG9jYWxseSBiaW5kIGFsbCBpc2VhcmNoIGdsb2Jh bCB2YXJpYWJsZXMgdG8gcHJvdGVjdCB0aGVtCgkgICAgICA7OyBmcm9tIHJlY3Vyc2l2ZSBpc2Vh cmNoaW5nLgoJICAgICAgOzsgaXNlYXJjaC1zdHJpbmcgLW1lc3NhZ2UgYW5kIC1mb3J3YXJkIGFy ZSBub3QgYm91bmQKCSAgICAgIDs7IHNvIHRoZXkgbWF5IGJlIGNoYW5nZWQuICBJbnN0ZWFkLCBz YXZlIHRoZSB2YWx1ZXMuCgkgICAgICAoaXNlYXJjaC1uZXctc3RyaW5nIGlzZWFyY2gtc3RyaW5n KQoJICAgICAgKGlzZWFyY2gtbmV3LW1lc3NhZ2UgaXNlYXJjaC1tZXNzYWdlKQoJICAgICAgKGlz ZWFyY2gtbmV3LWZvcndhcmQgaXNlYXJjaC1mb3J3YXJkKQoJICAgICAgKGlzZWFyY2gtbmV3LXJl Z2V4cC1mdW5jdGlvbiBpc2VhcmNoLXJlZ2V4cC1mdW5jdGlvbikKCSAgICAgIChpc2VhcmNoLW5l dy1jYXNlLWZvbGQgaXNlYXJjaC1jYXNlLWZvbGQtc2VhcmNoKQoKCSAgICAgIChpc2VhcmNoLXJl Z2V4cCBpc2VhcmNoLXJlZ2V4cCkKCSAgICAgIChpc2VhcmNoLW9wLWZ1biBpc2VhcmNoLW9wLWZ1 bikKCSAgICAgIChpc2VhcmNoLWNtZHMgaXNlYXJjaC1jbWRzKQoJICAgICAgKGlzZWFyY2gtc3Vj Y2VzcyBpc2VhcmNoLXN1Y2Nlc3MpCgkgICAgICAoaXNlYXJjaC13cmFwcGVkIGlzZWFyY2gtd3Jh cHBlZCkKCSAgICAgIChpc2VhcmNoLWJhcnJpZXIgaXNlYXJjaC1iYXJyaWVyKQoJICAgICAgKGlz ZWFyY2gtYWRqdXN0ZWQgaXNlYXJjaC1hZGp1c3RlZCkKCSAgICAgIChpc2VhcmNoLXlhbmstZmxh ZyBpc2VhcmNoLXlhbmstZmxhZykKCSAgICAgIChpc2VhcmNoLWVycm9yIGlzZWFyY2gtZXJyb3Ip CgoJICAgICAgKG11bHRpLWlzZWFyY2gtZmlsZS1saXN0LW5ldyBtdWx0aS1pc2VhcmNoLWZpbGUt bGlzdCkKCSAgICAgIChtdWx0aS1pc2VhcmNoLWJ1ZmZlci1saXN0LW5ldyBtdWx0aS1pc2VhcmNo LWJ1ZmZlci1saXN0KQoJICAgICAgKG11bHRpLWlzZWFyY2gtbmV4dC1idWZmZXItZnVuY3Rpb24g bXVsdGktaXNlYXJjaC1uZXh0LWJ1ZmZlci1jdXJyZW50LWZ1bmN0aW9uKQoJICAgICAgKG11bHRp LWlzZWFyY2gtY3VycmVudC1idWZmZXItbmV3IG11bHRpLWlzZWFyY2gtY3VycmVudC1idWZmZXIp CiAgOzs7IERvbid0IGJpbmQgdGhpcy4gIFdlIHdhbnQgaXNlYXJjaC1zZWFyY2gsIGJlbG93LCB0 byBzZXQgaXQuCiAgOzs7IEFuZCB0aGUgb2xkIHZhbHVlIHdvbid0IG1hdHRlciBhZnRlciB0aGF0 LgogIDs7OwkgICAgKGlzZWFyY2gtb3RoZXItZW5kIGlzZWFyY2gtb3RoZXItZW5kKQogIDs7OyBQ ZXJoYXBzIHNvbWUgb2YgdGhlc2Ugb3RoZXIgdmFyaWFibGVzIHNob3VsZCBiZSBib3VuZCBmb3Ig YQogIDs7OyBzaG9ydGVyIHBlcmlvZCwgZW5kaW5nIGJlZm9yZSB0aGUgbmV4dCBpc2VhcmNoLXNl YXJjaC4KICA7OzsgQnV0IHRoZXJlIGRvZXNuJ3Qgc2VlbSB0byBiZSBhIHJlYWwgYnVnLCBzbyBs ZXQncyBub3QgcmlzayBpdCBub3cuCgkgICAgICAoaXNlYXJjaC1vcG9pbnQgaXNlYXJjaC1vcG9p bnQpCgkgICAgICAoaXNlYXJjaC1zbG93LXRlcm1pbmFsLW1vZGUgaXNlYXJjaC1zbG93LXRlcm1p bmFsLW1vZGUpCgkgICAgICAoaXNlYXJjaC1zbWFsbC13aW5kb3cgaXNlYXJjaC1zbWFsbC13aW5k b3cpCgkgICAgICAoaXNlYXJjaC1yZWN1cnNpdmUtZWRpdCBpc2VhcmNoLXJlY3Vyc2l2ZS1lZGl0 KQoJICAgICAgOzsgU2F2ZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24gc28gd2UgY2FuIHJlc3RvcmUg aXQgaGVyZS4KCSAgICAgIChpc2VhcmNoLXdpbmRvdy1jb25maWd1cmF0aW9uIChjdXJyZW50LXdp bmRvdy1jb25maWd1cmF0aW9uKSkKCgkgICAgICA7OyBUaGlzIGNvdWxkIHByb3RlY3QgdGhlIGlu ZGV4IG9mIHRoZSBzZWFyY2ggcmluZ3MsCgkgICAgICA7OyBidXQgd2UgY2FuJ3QgcmVsaWFibHkg Y291bnQgdGhlIG51bWJlciBvZiB0eXBlZCBNLXAKCSAgICAgIDs7IGluIGByZWFkLWZyb20tbWlu aWJ1ZmZlcicgdG8gYWRqdXN0IHRoZSBpbmRleCBhY2NvcmRpbmdseS4KCSAgICAgIDs7IFNvIHdo ZW4gdGhlIGZvbGxvd2luZyBpcyBjb21tZW50ZWQgb3V0LCBgaXNlYXJjaC1tb2RlJwoJICAgICAg OzsgYmVsb3cgcmVzZXRzIHRoZSBpbmRleCB0byB0aGUgcHJlZGljdGFibGUgdmFsdWUgbmlsLgoJ ICAgICAgOzsgKHNlYXJjaC1yaW5nLXlhbmstcG9pbnRlciBzZWFyY2gtcmluZy15YW5rLXBvaW50 ZXIpCgkgICAgICA7OyAocmVnZXhwLXNlYXJjaC1yaW5nLXlhbmstcG9pbnRlciByZWdleHAtc2Vh cmNoLXJpbmcteWFuay1wb2ludGVyKQoKCSAgICAgIDs7IFRlbXBvcmFyaWx5IHJlc3RvcmUgYG1p bmlidWZmZXItbWVzc2FnZS10aW1lb3V0Jy4KCSAgICAgIChtaW5pYnVmZmVyLW1lc3NhZ2UtdGlt ZW91dAoJICAgICAgIGlzZWFyY2gtb3JpZ2luYWwtbWluaWJ1ZmZlci1tZXNzYWdlLXRpbWVvdXQp CgkgICAgICAoaXNlYXJjaC1vcmlnaW5hbC1taW5pYnVmZmVyLW1lc3NhZ2UtdGltZW91dAoJICAg ICAgIGlzZWFyY2gtb3JpZ2luYWwtbWluaWJ1ZmZlci1tZXNzYWdlLXRpbWVvdXQpCgkgICAgICBv bGQtcG9pbnQgb2xkLW90aGVyLWVuZCkKCiAgICAgICAgICAoc2V0cSBpc2VhcmNoLXN1c3BlbmRl ZCB0KQoKCSAgOzsgQWN0dWFsbHkgdGVybWluYXRlIGlzZWFyY2hpbmcgdW50aWwgZWRpdGluZyBp cyBkb25lLgoJICA7OyBUaGlzIGlzIHNvIHRoYXQgdGhlIHVzZXIgY2FuIGRvIGFueXRoaW5nIHdp dGhvdXQgZmFpbHVyZSwKCSAgOzsgbGlrZSBzd2l0Y2ggYnVmZmVycyBhbmQgc3RhcnQgYW5vdGhl ciBpc2VhcmNoLCBhbmQgcmV0dXJuLgoJICAoY29uZGl0aW9uLWNhc2UgbmlsCgkgICAgICAoaXNl YXJjaC1kb25lIHQgdCkKCSAgICAoZXhpdCBuaWwpKQkJCTsgd2FzIHJlY3Vyc2l2ZSBlZGl0aW5n CgoJICA7OyBTYXZlIG9sZCBwb2ludCBhbmQgaXNlYXJjaC1vdGhlci1lbmQgYmVmb3JlIHJlYWRp bmcgZnJvbSBtaW5pYnVmZmVyCgkgIDs7IHRoYXQgY2FuIGNoYW5nZSB0aGVpciB2YWx1ZXMuCgkg IChzZXRxIG9sZC1wb2ludCAocG9pbnQpIG9sZC1vdGhlci1lbmQgaXNlYXJjaC1vdGhlci1lbmQp CgoJICAodW53aW5kLXByb3RlY3QKCSAgICAgIChwcm9nbiAsQGJvZHkpCgogICAgICAgICAgICAo c2V0cSBpc2VhcmNoLXN1c3BlbmRlZCBuaWwpCgoJICAgIDs7IEFsd2F5cyByZXN1bWUgaXNlYXJj aGluZyBieSByZXN0YXJ0aW5nIGl0LgoJICAgIChpc2VhcmNoLW1vZGUgaXNlYXJjaC1mb3J3YXJk CgkJCSAgaXNlYXJjaC1yZWdleHAKCQkJICBpc2VhcmNoLW9wLWZ1bgoJCQkgIG5pbAoJCQkgIGlz ZWFyY2gtcmVnZXhwLWZ1bmN0aW9uKQoKCSAgICA7OyBDb3B5IG5ldyBsb2NhbCB2YWx1ZXMgdG8g aXNlYXJjaCBnbG9iYWxzCgkgICAgKHNldHEgaXNlYXJjaC1zdHJpbmcgaXNlYXJjaC1uZXctc3Ry aW5nCgkJICBpc2VhcmNoLW1lc3NhZ2UgaXNlYXJjaC1uZXctbWVzc2FnZQoJCSAgaXNlYXJjaC1m b3J3YXJkIGlzZWFyY2gtbmV3LWZvcndhcmQKCQkgIGlzZWFyY2gtbm9uaW5jcmVtZW50YWwgaXNl YXJjaC1uZXctbm9uaW5jcmVtZW50YWwKCQkgIGlzZWFyY2gtcmVnZXhwLWZ1bmN0aW9uIGlzZWFy Y2gtbmV3LXJlZ2V4cC1mdW5jdGlvbgoJCSAgaXNlYXJjaC1jYXNlLWZvbGQtc2VhcmNoIGlzZWFy Y2gtbmV3LWNhc2UtZm9sZAoJCSAgbXVsdGktaXNlYXJjaC1jdXJyZW50LWJ1ZmZlciBtdWx0aS1p c2VhcmNoLWN1cnJlbnQtYnVmZmVyLW5ldwoJCSAgbXVsdGktaXNlYXJjaC1maWxlLWxpc3QgbXVs dGktaXNlYXJjaC1maWxlLWxpc3QtbmV3CgkJICBtdWx0aS1pc2VhcmNoLWJ1ZmZlci1saXN0IG11 bHRpLWlzZWFyY2gtYnVmZmVyLWxpc3QtbmV3KQoKICAgICAgICAgICAgKGlzZWFyY2gtdXBkYXRl LWZyb20tc3RyaW5nLXByb3BlcnRpZXMgaXNlYXJjaC1zdHJpbmcpCgoJICAgIDs7IFJlc3RvcmUg dGhlIG1pbmlidWZmZXIgbWVzc2FnZSBiZWZvcmUgbW92aW5nIHBvaW50LgogICAgICAgICAgICAo ZnVuY2FsbCAob3IgaXNlYXJjaC1tZXNzYWdlLWZ1bmN0aW9uICMnaXNlYXJjaC1tZXNzYWdlKSBu aWwgdCkKCgkgICAgOzsgU2V0IHBvaW50IGF0IHRoZSBzdGFydCAoZW5kKSBvZiBvbGQgbWF0Y2gg aWYgZm9yd2FyZCAoYmFja3dhcmQpLAoJICAgIDs7IHNvIGFmdGVyIGV4aXRpbmcgbWluaWJ1ZmZl ciBpc2VhcmNoIHJlc3VtZXMgYXQgdGhlIHN0YXJ0IChlbmQpCgkgICAgOzsgb2YgdGhpcyBtYXRj aCBhbmQgY2FuIGZpbmQgaXQgYWdhaW4uCgkgICAgKGlmIChhbmQgb2xkLW90aGVyLWVuZCAoZXEg b2xkLXBvaW50IChwb2ludCkpCgkJICAgICAoZXEgaXNlYXJjaC1mb3J3YXJkIGlzZWFyY2gtbmV3 LWZvcndhcmQpKQoJCShnb3RvLWNoYXIgb2xkLW90aGVyLWVuZCkpKQoKCSAgOzsgRW1wdHkgaXNl YXJjaC1zdHJpbmcgbWVhbnMgdXNlIGRlZmF1bHQuCgkgICh3aGVuICg9IDAgKGxlbmd0aCBpc2Vh cmNoLXN0cmluZykpCgkgICAgKHNldHEgaXNlYXJjaC1zdHJpbmcgKG9yIChjYXIgKGlmIGlzZWFy Y2gtcmVnZXhwCgkJCQkJICAgICAgcmVnZXhwLXNlYXJjaC1yaW5nCgkJCQkJICAgIHNlYXJjaC1y aW5nKSkKCQkJCSAgICAgIiIpCgoJCSAgaXNlYXJjaC1tZXNzYWdlCgkJICAobWFwY29uY2F0ICdp c2VhcmNoLXRleHQtY2hhci1kZXNjcmlwdGlvbgoJCQkgICAgIGlzZWFyY2gtc3RyaW5nICIiKSkK CSAgICA7OyBBZnRlciB0YWtpbmcgdGhlIGxhc3QgZWxlbWVudCwgYWRqdXN0IHJpbmcgdG8gcHJl dmlvdXMgb25lLgoJICAgIChpc2VhcmNoLXJpbmctYWRqdXN0MSBuaWwpKSkKCgk7OyBUaGlzIHVz ZWQgdG8gcHVzaCB0aGUgc3RhdGUgYXMgb2YgYmVmb3JlIHRoaXMgQy1zLCBidXQgaXQgYWRkcwoJ OzsgYW4gaW5jb25zaXN0ZW50IHN0YXRlIHdoZXJlIHBhcnQgb2YgdmFyaWFibGVzIGFyZSBmcm9t IHRoZQoJOzsgcHJldmlvdXMgc2VhcmNoIChlLmcuIGBpc2VhcmNoLXN1Y2Nlc3MnKSwgYW5kIHBh cnQgb2YgdmFyaWFibGVzCgk7OyBhcmUganVzdCBlbnRlcmVkIGZyb20gdGhlIG1pbmlidWZmZXIg KGUuZy4gYGlzZWFyY2gtc3RyaW5nJykuCgk7OyAoaXNlYXJjaC1wdXNoLXN0YXRlKQoKCTs7IFJl aW52b2tlIHRoZSBwZW5kaW5nIHNlYXJjaC4KCShpc2VhcmNoLXNlYXJjaCkKCShpc2VhcmNoLXB1 c2gtc3RhdGUpCQk7IHRoaXMgcHVzaGVzIHRoZSBjb3JyZWN0IHN0YXRlCgkoaXNlYXJjaC11cGRh dGUpCgkoaWYgaXNlYXJjaC1ub25pbmNyZW1lbnRhbAoJICAgIChwcm9nbgoJICAgICAgOzsgKHNp dC1mb3IgMSkgOzsgbmVlZGVkIGlmIGlzZWFyY2gtZG9uZSBkb2VzOiAobWVzc2FnZSAiIikKCSAg ICAgIChpc2VhcmNoLWRvbmUpCgkgICAgICA7OyBUaGUgc2VhcmNoIGRvbmUgbWVzc2FnZSBpcyBj b25mdXNpbmcgd2hlbiB0aGUgc3RyaW5nCgkgICAgICA7OyBpcyBlbXB0eSwgc28gZXJhc2UgaXQu CgkgICAgICAoaWYgKGVxdWFsIGlzZWFyY2gtc3RyaW5nICIiKQoJCSAgKG1lc3NhZ2UgIiIpKSkp KQoKICAgIChxdWl0ICA7IGhhbmRsZSBhYm9ydC1yZWN1cnNpdmUtZWRpdAogICAgIChzZXRxIGlz ZWFyY2gtc3VzcGVuZGVkIG5pbCkKICAgICAoaXNlYXJjaC1hYm9ydCkgIDs7IG91dHNpZGUgb2Yg bGV0IHRvIHJlc3RvcmUgb3V0c2lkZSBnbG9iYWwgdmFsdWVzCiAgICAgKSkpCgooZGVmdmFyIG1p bmlidWZmZXItaGlzdG9yeS1zeW1ib2wpIDs7IGZyb20gZXh0ZXJuYWwgcGFja2FnZSBnbWhpc3Qu ZWwKCihkZWZ1biBpc2VhcmNoLWVkaXQtc3RyaW5nICgpCiAgIkVkaXQgdGhlIHNlYXJjaCBzdHJp bmcgaW4gdGhlIG1pbmlidWZmZXIuClRoZSBmb2xsb3dpbmcgYWRkaXRpb25hbCBjb21tYW5kIGtl eXMgYXJlIGFjdGl2ZSB3aGlsZSBlZGl0aW5nLgpcXDxtaW5pYnVmZmVyLWxvY2FsLWlzZWFyY2gt bWFwPgpcXFtleGl0LW1pbmlidWZmZXJdIHRvIHJlc3VtZSBpbmNyZW1lbnRhbCBzZWFyY2hpbmcg d2l0aCB0aGUgZWRpdGVkIHN0cmluZy4KXFxbaXNlYXJjaC1mb3J3YXJkLWV4aXQtbWluaWJ1ZmZl cl0gdG8gcmVzdW1lIGlzZWFyY2hpbmcgZm9yd2FyZC4KXFxbaXNlYXJjaC1yZXZlcnNlLWV4aXQt bWluaWJ1ZmZlcl0gdG8gcmVzdW1lIGlzZWFyY2hpbmcgYmFja3dhcmQuClxcW2lzZWFyY2gtY29t cGxldGUtZWRpdF0gdG8gY29tcGxldGUgdGhlIHNlYXJjaCBzdHJpbmcgdXNpbmcgdGhlIHNlYXJj aCByaW5nLiIKICAoaW50ZXJhY3RpdmUpCiAgKHdpdGgtaXNlYXJjaC1zdXNwZW5kZWQKICAgKGxl dCogKChtZXNzYWdlLWxvZy1tYXggbmlsKQoJICA7OyBEb24ndCBhZGQgYSBuZXcgc2VhcmNoIHN0 cmluZyB0byB0aGUgc2VhcmNoIHJpbmcgaGVyZQoJICA7OyBpbiBgcmVhZC1mcm9tLW1pbmlidWZm ZXInLiBJdCBzaG91bGQgYmUgYWRkZWQgb25seQoJICA7OyBieSBgaXNlYXJjaC11cGRhdGUtcmlu ZycgY2FsbGVkIGZyb20gYGlzZWFyY2gtZG9uZScuCgkgIChoaXN0b3J5LWFkZC1uZXctaW5wdXQg bmlsKQoJICA7OyBCaW5kaW5nIG1pbmlidWZmZXItaGlzdG9yeS1zeW1ib2wgdG8gbmlsIGlzIGEg d29yay1hcm91bmQKCSAgOzsgZm9yIHNvbWUgaW5jb21wYXRpYmlsaXR5IHdpdGggZ21oaXN0LgoJ ICAobWluaWJ1ZmZlci1oaXN0b3J5LXN5bWJvbCkKCSAgOzsgU2VhcmNoIHN0cmluZyBtaWdodCBo YXZlIG1ldGEgaW5mb3JtYXRpb24gb24gdGV4dCBwcm9wZXJ0aWVzLgoJICAobWluaWJ1ZmZlci1h bGxvdy10ZXh0LXByb3BlcnRpZXMgdCkpCiAgICAgKHNldHEgaXNlYXJjaC1uZXctc3RyaW5nCgkg ICAocmVhZC1mcm9tLW1pbmlidWZmZXIKCSAgICAoaXNlYXJjaC1tZXNzYWdlLXByZWZpeCBuaWwg aXNlYXJjaC1ub25pbmNyZW1lbnRhbCkKCSAgICAoY29ucyBpc2VhcmNoLXN0cmluZyAoMSsgKG9y IChpc2VhcmNoLWZhaWwtcG9zKQoJCQkJCSAobGVuZ3RoIGlzZWFyY2gtc3RyaW5nKSkpKQoJICAg IG1pbmlidWZmZXItbG9jYWwtaXNlYXJjaC1tYXAgbmlsCgkgICAgKGlmIGlzZWFyY2gtcmVnZXhw CgkJKGNvbnMgJ3JlZ2V4cC1zZWFyY2gtcmluZwoJCSAgICAgICgxKyAob3IgcmVnZXhwLXNlYXJj aC1yaW5nLXlhbmstcG9pbnRlciAtMSkpKQoJICAgICAgKGNvbnMgJ3NlYXJjaC1yaW5nCgkJICAg ICgxKyAob3Igc2VhcmNoLXJpbmcteWFuay1wb2ludGVyIC0xKSkpKQoJICAgIG5pbCB0KQoJICAg aXNlYXJjaC1uZXctbWVzc2FnZQoJICAgKG1hcGNvbmNhdCAnaXNlYXJjaC10ZXh0LWNoYXItZGVz Y3JpcHRpb24KCQkgICAgICBpc2VhcmNoLW5ldy1zdHJpbmcgIiIpKSkpKQoKKGRlZnVuIGlzZWFy Y2gtbm9uaW5jcmVtZW50YWwtZXhpdC1taW5pYnVmZmVyICgpCiAgKGludGVyYWN0aXZlKQogIChz ZXRxIGlzZWFyY2gtbmV3LW5vbmluY3JlbWVudGFsIHQpCiAgKGV4aXQtbWluaWJ1ZmZlcikpCjs7 IEl0IG1ha2VzIG5vIHNlbnNlIHRvIGNoYW5nZSB0aGUgdmFsdWUgb2YgYGlzZWFyY2gtbmV3LW5v bmluY3JlbWVudGFsJwo7OyBmcm9tIG5pbCB0byB0IGR1cmluZyBgaXNlYXJjaC1lZGl0LXN0cmlu ZycuICAgVGh1cyBtYXJrZWQgYXMgb2Jzb2xldGUuCihtYWtlLW9ic29sZXRlICdpc2VhcmNoLW5v bmluY3JlbWVudGFsLWV4aXQtbWluaWJ1ZmZlciAnZXhpdC1taW5pYnVmZmVyICIyNC40IikKCihk ZWZ1biBpc2VhcmNoLWZvcndhcmQtZXhpdC1taW5pYnVmZmVyICgpCiAgIlJlc3VtZSBpc2VhcmNo aW5nIGZvcndhcmQgZnJvbSB0aGUgbWluaWJ1ZmZlciB0aGF0IGVkaXRzIHRoZSBzZWFyY2ggc3Ry aW5nLiIKICAoaW50ZXJhY3RpdmUpCiAgKHNldHEgaXNlYXJjaC1uZXctZm9yd2FyZCB0IGlzZWFy Y2gtbmV3LW5vbmluY3JlbWVudGFsIG5pbCkKICAoZXhpdC1taW5pYnVmZmVyKSkKCihkZWZ1biBp c2VhcmNoLXJldmVyc2UtZXhpdC1taW5pYnVmZmVyICgpCiAgIlJlc3VtZSBpc2VhcmNoaW5nIGJh Y2t3YXJkIGZyb20gdGhlIG1pbmlidWZmZXIgdGhhdCBlZGl0cyB0aGUgc2VhcmNoIHN0cmluZy4i CiAgKGludGVyYWN0aXZlKQogIChzZXRxIGlzZWFyY2gtbmV3LWZvcndhcmQgbmlsIGlzZWFyY2gt bmV3LW5vbmluY3JlbWVudGFsIG5pbCkKICAoZXhpdC1taW5pYnVmZmVyKSkKCihkZWZ1biBpc2Vh cmNoLWNhbmNlbCAoKQogICJUZXJtaW5hdGUgdGhlIHNlYXJjaCBhbmQgZ28gYmFjayB0byB0aGUg c3RhcnRpbmcgcG9pbnQuIgogIChpbnRlcmFjdGl2ZSkKICAoaWYgKGFuZCBpc2VhcmNoLXB1c2gt c3RhdGUtZnVuY3Rpb24gaXNlYXJjaC1jbWRzKQogICAgICA7OyBGb3IgZGVmaW5lZCBwdXNoLXN0 YXRlIGZ1bmN0aW9uLCByZXN0b3JlIHRoZSBmaXJzdCBzdGF0ZS4KICAgICAgOzsgVGhpcyBjYWxs cyBwb3Atc3RhdGUgZnVuY3Rpb24gYW5kIHJlc3RvcmVzIG9yaWdpbmFsIHBvaW50LgogICAgICAo bGV0ICgoaXNlYXJjaC1jbWRzIChsYXN0IGlzZWFyY2gtY21kcykpKQoJKGlzZWFyY2gtLXNldC1z dGF0ZSAoY2FyIGlzZWFyY2gtY21kcykpKQogICAgKGdvdG8tY2hhciBpc2VhcmNoLW9wb2ludCkp CiAgKGlzZWFyY2gtZG9uZSB0KSAgICAgICAgICAgICAgICAgICAgICA7IEV4aXQgaXNlYXJjaC4u CiAgKGlzZWFyY2gtY2xlYW4tb3ZlcmxheXMpCiAgKHNpZ25hbCAncXVpdCBuaWwpKSAgICAgICAg ICAgICAgICAgICA7IC4uYW5kIHBhc3Mgb24gcXVpdCBzaWduYWwuCgooZGVmdW4gaXNlYXJjaC1h Ym9ydCAoKQogICJBYm9ydCBpbmNyZW1lbnRhbCBzZWFyY2ggbW9kZSBpZiBzZWFyY2hpbmcgaXMg c3VjY2Vzc2Z1bCwgc2lnbmFsaW5nIHF1aXQuCk90aGVyd2lzZSwgcmV2ZXJ0IHRvIHByZXZpb3Vz IHN1Y2Nlc3NmdWwgc2VhcmNoIGFuZCBjb250aW51ZSBzZWFyY2hpbmcuClVzZSBgaXNlYXJjaC1l eGl0JyB0byBxdWl0IHdpdGhvdXQgc2lnbmFsaW5nLiIKICAoaW50ZXJhY3RpdmUpCiAgOzsgKGRp bmcpICBzaWduYWwgaW5zdGVhZCBiZWxvdywgaWYgcXVpdHRpbmcKICAoZGlzY2FyZC1pbnB1dCkK ICAoaWYgKGFuZCBpc2VhcmNoLXN1Y2Nlc3MgKG5vdCBpc2VhcmNoLWVycm9yKSkKICAgICAgOzsg SWYgc2VhcmNoIGlzIHN1Y2Nlc3NmdWwgYW5kIGhhcyBubyBpbmNvbXBsZXRlIHJlZ2V4cCwKICAg ICAgOzsgbW92ZSBiYWNrIHRvIHN0YXJ0aW5nIHBvaW50IGFuZCByZWFsbHkgZG8gcXVpdC4KICAg ICAgKHByb2duCiAgICAgICAgKHNldHEgaXNlYXJjaC1zdWNjZXNzIG5pbCkKICAgICAgICAoaXNl YXJjaC1jYW5jZWwpKQogICAgOzsgSWYgc2VhcmNoIGlzIGZhaWxpbmcsIG9yIGhhcyBhbiBpbmNv bXBsZXRlIHJlZ2V4cCwKICAgIDs7IHJ1YiBvdXQgdW50aWwgaXQgaXMgb25jZSBtb3JlIHN1Y2Nl c3NmdWwuCiAgICAod2hpbGUgKG9yIChub3QgaXNlYXJjaC1zdWNjZXNzKSBpc2VhcmNoLWVycm9y KQogICAgICAoaXNlYXJjaC1wb3Atc3RhdGUpKQogICAgKGlzZWFyY2gtdXBkYXRlKSkpCgooZGVm dW4gaXNlYXJjaC1yZXBlYXQgKGRpcmVjdGlvbikKICA7OyBVdGlsaXR5IGZvciBpc2VhcmNoLXJl cGVhdC1mb3J3YXJkIGFuZCAtYmFja3dhcmQuCiAgKGlmIChlcSBpc2VhcmNoLWZvcndhcmQgKGVx IGRpcmVjdGlvbiAnZm9yd2FyZCkpCiAgICAgIDs7IEMtcyBpbiBmb3J3YXJkIG9yIEMtciBpbiBy ZXZlcnNlLgogICAgICAoaWYgKGVxdWFsIGlzZWFyY2gtc3RyaW5nICIiKQoJICA7OyBJZiBzZWFy Y2ggc3RyaW5nIGlzIGVtcHR5LCB1c2UgbGFzdCBvbmUuCgkgIChpZiAobnVsbCAoaWYgaXNlYXJj aC1yZWdleHAgcmVnZXhwLXNlYXJjaC1yaW5nIHNlYXJjaC1yaW5nKSkKCSAgICAgIChzZXRxIGlz ZWFyY2gtZXJyb3IgIk5vIHByZXZpb3VzIHNlYXJjaCBzdHJpbmciKQoJICAgIChzZXRxIGlzZWFy Y2gtc3RyaW5nCgkJICAoY2FyIChpZiBpc2VhcmNoLXJlZ2V4cCByZWdleHAtc2VhcmNoLXJpbmcg c2VhcmNoLXJpbmcpKQoJCSAgaXNlYXJjaC1tZXNzYWdlCgkJICAobWFwY29uY2F0ICdpc2VhcmNo LXRleHQtY2hhci1kZXNjcmlwdGlvbgoJCQkgICAgIGlzZWFyY2gtc3RyaW5nICIiKQoJCSAgaXNl YXJjaC1jYXNlLWZvbGQtc2VhcmNoIGlzZWFyY2gtbGFzdC1jYXNlLWZvbGQtc2VhcmNoKQoJICAg IDs7IEFmdGVyIHRha2luZyB0aGUgbGFzdCBlbGVtZW50LCBhZGp1c3QgcmluZyB0byBwcmV2aW91 cyBvbmUuCgkgICAgKGlzZWFyY2gtcmluZy1hZGp1c3QxIG5pbCkpCgk7OyBJZiBhbHJlYWR5IGhh dmUgd2hhdCB0byBzZWFyY2ggZm9yLCByZXBlYXQgaXQuCgkob3IgaXNlYXJjaC1zdWNjZXNzCgkg ICAgKHByb2duCgkgICAgICA7OyBTZXQgaXNlYXJjaC13cmFwcGVkIGJlZm9yZSBjYWxsaW5nIGlz ZWFyY2gtd3JhcC1mdW5jdGlvbgoJICAgICAgKHNldHEgaXNlYXJjaC13cmFwcGVkIHQpCgkgICAg ICAoaWYgaXNlYXJjaC13cmFwLWZ1bmN0aW9uCgkJICAoZnVuY2FsbCBpc2VhcmNoLXdyYXAtZnVu Y3Rpb24pCgkgICAgICAgIChnb3RvLWNoYXIgKGlmIGlzZWFyY2gtZm9yd2FyZCAocG9pbnQtbWlu KSAocG9pbnQtbWF4KSkpKSkpKQogICAgOzsgQy1zIGluIHJldmVyc2Ugb3IgQy1yIGluIGZvcndh cmQsIGNoYW5nZSBkaXJlY3Rpb24uCiAgICAoc2V0cSBpc2VhcmNoLWZvcndhcmQgKG5vdCBpc2Vh cmNoLWZvcndhcmQpCgkgIGlzZWFyY2gtc3VjY2VzcyB0KSkKCiAgKHNldHEgaXNlYXJjaC1iYXJy aWVyIChwb2ludCkpIDsgRm9yIHN1YnNlcXVlbnQgXHwgaWYgcmVnZXhwLgoKICAoaWYgKGVxdWFs IGlzZWFyY2gtc3RyaW5nICIiKQogICAgICAoc2V0cSBpc2VhcmNoLXN1Y2Nlc3MgdCkKICAgIChp ZiAoYW5kIGlzZWFyY2gtc3VjY2VzcwoJICAgICAoZXF1YWwgKHBvaW50KSBpc2VhcmNoLW90aGVy LWVuZCkKCSAgICAgKG5vdCBpc2VhcmNoLWp1c3Qtc3RhcnRlZCkpCgk7OyBJZiByZXBlYXRpbmcg YSBzZWFyY2ggdGhhdCBmb3VuZAoJOzsgYW4gZW1wdHkgc3RyaW5nLCBlbnN1cmUgd2UgYWR2YW5j ZS4KCShpZiAoaWYgaXNlYXJjaC1mb3J3YXJkIChlb2JwKSAoYm9icCkpCgkgICAgOzsgSWYgdGhl cmUncyBub3doZXJlIHRvIGFkdmFuY2UgdG8sIGZhaWwgKGFuZCB3cmFwIG5leHQgdGltZSkuCgkg ICAgKHByb2duCgkgICAgICAoc2V0cSBpc2VhcmNoLXN1Y2Nlc3MgbmlsKQoJICAgICAgKGRpbmcp KQoJICAoZm9yd2FyZC1jaGFyIChpZiBpc2VhcmNoLWZvcndhcmQgMSAtMSkpCgkgIChpc2VhcmNo LXNlYXJjaCkpCiAgICAgIChpc2VhcmNoLXNlYXJjaCkpKQoKICAoaXNlYXJjaC1wdXNoLXN0YXRl KQogIChpc2VhcmNoLXVwZGF0ZSkpCgooZGVmdW4gaXNlYXJjaC1yZXBlYXQtZm9yd2FyZCAoKQog ICJSZXBlYXQgaW5jcmVtZW50YWwgc2VhcmNoIGZvcndhcmRzLiIKICAoaW50ZXJhY3RpdmUpCiAg KGlzZWFyY2gtcmVwZWF0ICdmb3J3YXJkKSkKCihkZWZ1biBpc2VhcmNoLXJlcGVhdC1iYWNrd2Fy ZCAoKQogICJSZXBlYXQgaW5jcmVtZW50YWwgc2VhcmNoIGJhY2t3YXJkcy4iCiAgKGludGVyYWN0 aXZlKQogIChpc2VhcmNoLXJlcGVhdCAnYmFja3dhcmQpKQoKDAo7OzsgVG9nZ2xlcyBmb3IgYGlz ZWFyY2gtcmVnZXhwLWZ1bmN0aW9uJyBhbmQgYHNlYXJjaC1kZWZhdWx0LW1vZGUnLgooZGVmbWFj cm8gaXNlYXJjaC1kZWZpbmUtbW9kZS10b2dnbGUgKG1vZGUga2V5IGZ1bmN0aW9uICZvcHRpb25h bCBkb2NzdHJpbmcgJnJlc3QgYm9keSkKICAiRGVmaW5lIGEgY29tbWFuZCBjYWxsZWQgYGlzZWFy Y2gtdG9nZ2xlLU1PREUnIGFuZCBiaW5kIGl0IHRvIGBNLXMgS0VZJy4KVGhlIGZpcnN0IGxpbmUg b2YgdGhlIGNvbW1hbmQncyBkb2NzdHJpbmcgaXMgYXV0by1nZW5lcmF0ZWQsIHRoZQpyZW1haW5k ZXIgbWF5IGJlIHByb3ZpZGVkIGluIERPQ1NUUklORy4KSWYgRlVOQ1RJT04gaXMgYSBzeW1ib2ws IHRoaXMgY29tbWFuZCBmaXJzdCB0b2dnbGVzIHRoZSB2YWx1ZSBvZgpgaXNlYXJjaC1yZWdleHAt ZnVuY3Rpb24nIGJldHdlZW4gbmlsIGFuZCBGVU5DVElPTi4gIEFsc28gc2V0IHRoZQpgaXNlYXJj aC1tZXNzYWdlLXByZWZpeCcgcHJvcGVydHkgb2YgRlVOQ1RJT04uClRoZSBjb21tYW5kIHRoZW4g ZXhlY3V0ZXMgQk9EWSBhbmQgdXBkYXRlcyB0aGUgaXNlYXJjaCBwcm9tcHQuIgogIChkZWNsYXJl IChpbmRlbnQgZGVmdW4pKQogIChsZXQgKChjb21tYW5kLW5hbWUgKGludGVybiAoZm9ybWF0ICJp c2VhcmNoLXRvZ2dsZS0lcyIgbW9kZSkpKQogICAgICAgIChrZXkgKGNvbmNhdCAiXE0tcyIga2V5 KSkpCiAgICBgKHByb2duCiAgICAgICAoZGVmdW4gLGNvbW1hbmQtbmFtZSAoKQogICAgICAgICAs KGZvcm1hdCAiVG9nZ2xlICVzIHNlYXJjaGluZyBvbiBvciBvZmYuJXMiIG1vZGUKICAgICAgICAg ICAgICAgICAgKGlmIGRvY3N0cmluZyAoY29uY2F0ICJcbiIgZG9jc3RyaW5nKSAiIikpCiAgICAg ICAgIChpbnRlcmFjdGl2ZSkKICAgICAgICAgLEAod2hlbiBmdW5jdGlvbgogICAgICAgICAgICAg YCgoc2V0cSBpc2VhcmNoLXJlZ2V4cC1mdW5jdGlvbgogICAgICAgICAgICAgICAgICAgICAodW5s ZXNzIChlcSBpc2VhcmNoLXJlZ2V4cC1mdW5jdGlvbiAjJyxmdW5jdGlvbikKICAgICAgICAgICAg ICAgICAgICAgICAjJyxmdW5jdGlvbikpCiAgICAgICAgICAgICAgIChzZXRxIGlzZWFyY2gtcmVn ZXhwIG5pbCkpKQogICAgICAgICAsQGJvZHkKICAgICAgICAgKHNldHEgaXNlYXJjaC1zdWNjZXNz IHQgaXNlYXJjaC1hZGp1c3RlZCB0KQogICAgICAgICAoaXNlYXJjaC11cGRhdGUpKQogICAgICAg KGRlZmluZS1rZXkgaXNlYXJjaC1tb2RlLW1hcCAsa2V5ICMnLGNvbW1hbmQtbmFtZSkKICAgICAg ICxAKHdoZW4gKGFuZCBmdW5jdGlvbiAoc3ltYm9scCBmdW5jdGlvbikpCiAgICAgICAgICAgYCgo cHV0ICcsZnVuY3Rpb24gJ2lzZWFyY2gtbWVzc2FnZS1wcmVmaXggLChmb3JtYXQgIiVzICIgbW9k ZSkpCiAgICAgICAgICAgICAocHV0ICcsZnVuY3Rpb24gOmFkdmVydGlzZWQtYmluZGluZyAsa2V5 KQogICAgICAgICAgICAgKGNsLWNhbGxmIChsYW1iZGEgKHR5cGVzKSAoY29ucyAnY2hvaWNlCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ucyAnKGNvbnN0IDp0YWcg LChjYXBpdGFsaXplIChmb3JtYXQgIiVzIHNlYXJjaCIgbW9kZSkpICxmdW5jdGlvbikKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjZHIgdHlwZXMpKSkpCiAg ICAgICAgICAgICAgICAgKGdldCAnc2VhcmNoLWRlZmF1bHQtbW9kZSAnY3VzdG9tLXR5cGUpKSkp KSkpCgooaXNlYXJjaC1kZWZpbmUtbW9kZS10b2dnbGUgd29yZCAidyIgd29yZC1zZWFyY2gtcmVn ZXhwICJcClR1cm5pbmcgb24gd29yZCBzZWFyY2ggdHVybnMgb2ZmIHJlZ2V4cCBtb2RlLiIpCihp c2VhcmNoLWRlZmluZS1tb2RlLXRvZ2dsZSBzeW1ib2wgIl8iIGlzZWFyY2gtc3ltYm9sLXJlZ2V4 cCAiXApUdXJuaW5nIG9uIHN5bWJvbCBzZWFyY2ggdHVybnMgb2ZmIHJlZ2V4cCBtb2RlLiIpCihp c2VhcmNoLWRlZmluZS1tb2RlLXRvZ2dsZSBjaGFyLWZvbGQgIiciIGNoYXItZm9sZC10by1yZWdl eHAgIlwKVHVybmluZyBvbiBjaGFyYWN0ZXItZm9sZGluZyB0dXJucyBvZmYgcmVnZXhwIG1vZGUu IikKCihpc2VhcmNoLWRlZmluZS1tb2RlLXRvZ2dsZSByZWdleHAgInIiIG5pbCBuaWwKICAoc2V0 cSBpc2VhcmNoLXJlZ2V4cCAobm90IGlzZWFyY2gtcmVnZXhwKSkKICAoaWYgaXNlYXJjaC1yZWdl eHAgKHNldHEgaXNlYXJjaC1yZWdleHAtZnVuY3Rpb24gbmlsKSkpCgooZGVmdW4gaXNlYXJjaC0t bW9tZW50YXJ5LW1lc3NhZ2UgKHN0cmluZykKICAiUHJpbnQgU1RSSU5HIGF0IHRoZSBlbmQgb2Yg dGhlIGlzZWFyY2ggcHJvbXB0IGZvciAxIHNlY29uZCIKICAobGV0ICgobWVzc2FnZS1sb2ctbWF4 IG5pbCkpCiAgICAobWVzc2FnZSAiJXMlcyVzIgogICAgICAgICAgICAgKGlzZWFyY2gtbWVzc2Fn ZS1wcmVmaXggbmlsIGlzZWFyY2gtbm9uaW5jcmVtZW50YWwpCiAgICAgICAgICAgICBpc2VhcmNo LW1lc3NhZ2UKICAgICAgICAgICAgIChwcm9wZXJ0aXplIChmb3JtYXQgIiBbJXNdIiBzdHJpbmcp ICdmYWNlICdtaW5pYnVmZmVyLXByb21wdCkpKQogIChzaXQtZm9yIDEpKQoKKGlzZWFyY2gtZGVm aW5lLW1vZGUtdG9nZ2xlIGxheC13aGl0ZXNwYWNlICIgIiBuaWwKICAiSW4gb3JkaW5hcnkgc2Vh cmNoLCB0b2dnbGVzIHRoZSB2YWx1ZSBvZiB0aGUgdmFyaWFibGUKYGlzZWFyY2gtbGF4LXdoaXRl c3BhY2UnLiAgSW4gcmVnZXhwIHNlYXJjaCwgdG9nZ2xlcyB0aGUKdmFsdWUgb2YgdGhlIHZhcmlh YmxlIGBpc2VhcmNoLXJlZ2V4cC1sYXgtd2hpdGVzcGFjZScuIgogIChpc2VhcmNoLS1tb21lbnRh cnktbWVzc2FnZQogICAoaWYgKGlmIGlzZWFyY2gtcmVnZXhwCiAgICAgICAgICAgKHNldHEgaXNl YXJjaC1yZWdleHAtbGF4LXdoaXRlc3BhY2UgKG5vdCBpc2VhcmNoLXJlZ2V4cC1sYXgtd2hpdGVz cGFjZSkpCiAgICAgICAgIChzZXRxIGlzZWFyY2gtbGF4LXdoaXRlc3BhY2UgKG5vdCBpc2VhcmNo LWxheC13aGl0ZXNwYWNlKSkpCiAgICAgICAibWF0Y2ggc3BhY2VzIGxvb3NlbHkiCiAgICAgIm1h dGNoIHNwYWNlcyBsaXRlcmFsbHkiKSkpCgooaXNlYXJjaC1kZWZpbmUtbW9kZS10b2dnbGUgY2Fz ZS1mb2xkICJjIiBuaWwKICAiVG9nZ2xlcyB0aGUgdmFsdWUgb2YgdGhlIHZhcmlhYmxlIGBpc2Vh cmNoLWNhc2UtZm9sZC1zZWFyY2gnLiIKICAoaXNlYXJjaC0tbW9tZW50YXJ5LW1lc3NhZ2UKICAg KGlmIChzZXRxIGlzZWFyY2gtY2FzZS1mb2xkLXNlYXJjaAogICAgICAgICAgICAgKGlmIGlzZWFy Y2gtY2FzZS1mb2xkLXNlYXJjaCBuaWwgJ3llcykpCiAgICAgICAiY2FzZSBpbnNlbnNpdGl2ZSIK ICAgICAiY2FzZSBzZW5zaXRpdmUiKSkpCgooaXNlYXJjaC1kZWZpbmUtbW9kZS10b2dnbGUgaW52 aXNpYmxlICJpIiBuaWwKICAiVGhpcyBkZXRlcm1pbmVzIHdoZXRoZXIgdG8gc2VhcmNoIGluc2lk ZSBpbnZpc2libGUgdGV4dCBvciBub3QuClRvZ2dsZXMgdGhlIHZhcmlhYmxlIGBpc2VhcmNoLWlu dmlzaWJsZScgYmV0d2VlbiB2YWx1ZXMKbmlsIGFuZCBhIG5vbi1uaWwgdmFsdWUgb2YgdGhlIG9w dGlvbiBgc2VhcmNoLWludmlzaWJsZScKXChvciBgb3BlbicgaWYgYHNlYXJjaC1pbnZpc2libGUn IGlzIG5pbCkuIgogICJtYXRjaCAlc3Zpc2libGUgdGV4dCIKICAoaXNlYXJjaC0tbW9tZW50YXJ5 LW1lc3NhZ2UKICAgKGlmIChzZXRxIGlzZWFyY2gtaW52aXNpYmxlCiAgICAgICAgICAgICAoaWYg aXNlYXJjaC1pbnZpc2libGUKICAgICAgICAgICAgICAgICBuaWwgKG9yIHNlYXJjaC1pbnZpc2li bGUgJ29wZW4pKSkKICAgICAgICJtYXRjaCBpbnZpc2libGUgdGV4dCIKICAgICAibWF0Y2ggdmlz aWJsZSB0ZXh0IikpKQoKDAo7OyBXb3JkIHNlYXJjaAoKKGRlZnVuIHdvcmQtc2VhcmNoLXJlZ2V4 cCAoc3RyaW5nICZvcHRpb25hbCBsYXgpCiAgIlJldHVybiBhIHJlZ2V4cCB3aGljaCBtYXRjaGVz IHdvcmRzLCBpZ25vcmluZyBwdW5jdHVhdGlvbi4KR2l2ZW4gU1RSSU5HLCBhIHN0cmluZyBvZiB3 b3JkcyBzZXBhcmF0ZWQgYnkgd29yZCBkZWxpbWl0ZXJzLApjb21wdXRlIGEgcmVnZXhwIHRoYXQg bWF0Y2hlcyB0aG9zZSBleGFjdCB3b3JkcyBzZXBhcmF0ZWQgYnkKYXJiaXRyYXJ5IHB1bmN0dWF0 aW9uLiAgSWYgdGhlIHN0cmluZyBiZWdpbnMgb3IgZW5kcyBpbiB3aGl0ZXNwYWNlLAp0aGUgYmVn aW5uaW5nIG9yIHRoZSBlbmQgb2YgdGhlIHN0cmluZyBtYXRjaGVzIGFyYml0cmFyeSB3aGl0ZXNw YWNlLgpPdGhlcndpc2UgaWYgTEFYIGlzIG5vbi1uaWwsIHRoZSBiZWdpbm5pbmcgb3IgdGhlIGVu ZCBvZiB0aGUgc3RyaW5nCm5lZWQgbm90IG1hdGNoIGEgd29yZCBib3VuZGFyeS4KClVzZWQgaW4g YHdvcmQtc2VhcmNoLWZvcndhcmQnLCBgd29yZC1zZWFyY2gtYmFja3dhcmQnLApgd29yZC1zZWFy Y2gtZm9yd2FyZC1sYXgnLCBgd29yZC1zZWFyY2gtYmFja3dhcmQtbGF4Jy4iCiAgKGNvbmQKICAg KChlcXVhbCBzdHJpbmcgIiIpICIiKQogICAoKHN0cmluZy1tYXRjaC1wICJcXGBcXFcrXFwnIiBz dHJpbmcpICJcXFcrIikKICAgKHQgKGNvbmNhdAogICAgICAgKGlmIChzdHJpbmctbWF0Y2gtcCAi XFxgXFxXIiBzdHJpbmcpICJcXFcrIgoJICJcXDwiKQogICAgICAgKG1hcGNvbmNhdCAncmVnZXhw LXF1b3RlIChzcGxpdC1zdHJpbmcgc3RyaW5nICJcXFcrIiB0KSAiXFxXKyIpCiAgICAgICAoaWYg KHN0cmluZy1tYXRjaC1wICJcXFdcXCciIHN0cmluZykgIlxcVysiCgkgKHVubGVzcyBsYXggIlxc PiIpKSkpKSkKCihkZWZ1biB3b3JkLXNlYXJjaC1iYWNrd2FyZCAoc3RyaW5nICZvcHRpb25hbCBi b3VuZCBub2Vycm9yIGNvdW50KQogICJTZWFyY2ggYmFja3dhcmQgZnJvbSBwb2ludCBmb3IgU1RS SU5HLCBpZ25vcmluZyBkaWZmZXJlbmNlcyBpbiBwdW5jdHVhdGlvbi4KU2V0IHBvaW50IHRvIHRo ZSBiZWdpbm5pbmcgb2YgdGhlIG9jY3VycmVuY2UgZm91bmQsIGFuZCByZXR1cm4gcG9pbnQuCkFu IG9wdGlvbmFsIHNlY29uZCBhcmd1bWVudCBib3VuZHMgdGhlIHNlYXJjaDsgaXQgaXMgYSBidWZm ZXIgcG9zaXRpb24uCiAgVGhlIG1hdGNoIGZvdW5kIG11c3Qgbm90IGJlZ2luIGJlZm9yZSB0aGF0 IHBvc2l0aW9uLiAgQSB2YWx1ZSBvZiBuaWwKICBtZWFucyBzZWFyY2ggdG8gdGhlIGJlZ2lubmlu ZyBvZiB0aGUgYWNjZXNzaWJsZSBwb3J0aW9uIG9mIHRoZSBidWZmZXIuCk9wdGlvbmFsIHRoaXJk IGFyZ3VtZW50LCBpZiB0LCBtZWFucyBpZiBmYWlsIGp1c3QgcmV0dXJuIG5pbCAobm8gZXJyb3Ip LgogIElmIG5vdCBuaWwgYW5kIG5vdCB0LCBwb3NpdGlvbiBhdCBsaW1pdCBvZiBzZWFyY2ggYW5k IHJldHVybiBuaWwuCk9wdGlvbmFsIGZvdXJ0aCBhcmd1bWVudCBDT1VOVCwgaWYgYSBwb3NpdGl2 ZSBudW1iZXIsIG1lYW5zIHRvIHNlYXJjaAogIGZvciBDT1VOVCBzdWNjZXNzaXZlIG9jY3VycmVu Y2VzLiAgSWYgQ09VTlQgaXMgbmVnYXRpdmUsIHNlYXJjaAogIGZvcndhcmQsIGluc3RlYWQgb2Yg YmFja3dhcmQsIGZvciAtQ09VTlQgb2NjdXJyZW5jZXMuICBBIHZhbHVlIG9mCiAgbmlsIG1lYW5z IHRoZSBzYW1lIGFzIDEuCldpdGggQ09VTlQgcG9zaXRpdmUsIHRoZSBtYXRjaCBmb3VuZCBpcyB0 aGUgQ09VTlR0aCB0byBsYXN0IG9uZSAob3IKICBsYXN0LCBpZiBDT1VOVCBpcyAxIG9yIG5pbCkg aW4gdGhlIGJ1ZmZlciBsb2NhdGVkIGVudGlyZWx5IGJlZm9yZQogIHRoZSBvcmlnaW4gb2YgdGhl IHNlYXJjaDsgY29ycmVzcG9uZGluZ2x5IHdpdGggQ09VTlQgbmVnYXRpdmUuCgpSZWxpZXMgb24g dGhlIGZ1bmN0aW9uIGB3b3JkLXNlYXJjaC1yZWdleHAnIHRvIGNvbnZlcnQgYSBzZXF1ZW5jZQpv ZiB3b3JkcyBpbiBTVFJJTkcgdG8gYSByZWdleHAgdXNlZCB0byBzZWFyY2ggd29yZHMgd2l0aG91 dCByZWdhcmQKdG8gcHVuY3R1YXRpb24uClRoaXMgY29tbWFuZCBkb2VzIG5vdCBzdXBwb3J0IGNo YXJhY3RlciBmb2xkaW5nLCBhbmQgbGF4IHNwYWNlIG1hdGNoaW5nCmhhcyBubyBlZmZlY3Qgb24g aXQuIgogIChpbnRlcmFjdGl2ZSAic1dvcmQgc2VhcmNoIGJhY2t3YXJkOiAiKQogIChyZS1zZWFy Y2gtYmFja3dhcmQgKHdvcmQtc2VhcmNoLXJlZ2V4cCBzdHJpbmcgbmlsKSBib3VuZCBub2Vycm9y IGNvdW50KSkKCihkZWZ1biB3b3JkLXNlYXJjaC1mb3J3YXJkIChzdHJpbmcgJm9wdGlvbmFsIGJv dW5kIG5vZXJyb3IgY291bnQpCiAgIlNlYXJjaCBmb3J3YXJkIGZyb20gcG9pbnQgZm9yIFNUUklO RywgaWdub3JpbmcgZGlmZmVyZW5jZXMgaW4gcHVuY3R1YXRpb24uClNldCBwb2ludCB0byB0aGUg ZW5kIG9mIHRoZSBvY2N1cnJlbmNlIGZvdW5kLCBhbmQgcmV0dXJuIHBvaW50LgpBbiBvcHRpb25h bCBzZWNvbmQgYXJndW1lbnQgYm91bmRzIHRoZSBzZWFyY2g7IGl0IGlzIGEgYnVmZmVyIHBvc2l0 aW9uLgogIFRoZSBtYXRjaCBmb3VuZCBtdXN0IG5vdCBlbmQgYWZ0ZXIgdGhhdCBwb3NpdGlvbi4g IEEgdmFsdWUgb2YgbmlsCiAgbWVhbnMgc2VhcmNoIHRvIHRoZSBlbmQgb2YgdGhlIGFjY2Vzc2li bGUgcG9ydGlvbiBvZiB0aGUgYnVmZmVyLgpPcHRpb25hbCB0aGlyZCBhcmd1bWVudCwgaWYgdCwg bWVhbnMgaWYgZmFpbCBqdXN0IHJldHVybiBuaWwgKG5vIGVycm9yKS4KICBJZiBub3QgbmlsIGFu ZCBub3QgdCwgbW92ZSB0byBsaW1pdCBvZiBzZWFyY2ggYW5kIHJldHVybiBuaWwuCk9wdGlvbmFs IGZvdXJ0aCBhcmd1bWVudCBDT1VOVCwgaWYgYSBwb3NpdGl2ZSBudW1iZXIsIG1lYW5zIHRvIHNl YXJjaAogIGZvciBDT1VOVCBzdWNjZXNzaXZlIG9jY3VycmVuY2VzLiAgSWYgQ09VTlQgaXMgbmVn YXRpdmUsIHNlYXJjaAogIGJhY2t3YXJkLCBpbnN0ZWFkIG9mIGZvcndhcmQsIGZvciAtQ09VTlQg b2NjdXJyZW5jZXMuICBBIHZhbHVlIG9mCiAgbmlsIG1lYW5zIHRoZSBzYW1lIGFzIDEuCldpdGgg Q09VTlQgcG9zaXRpdmUsIHRoZSBtYXRjaCBmb3VuZCBpcyB0aGUgQ09VTlR0aCBvbmUgKG9yIGZp cnN0LAogIGlmIENPVU5UIGlzIDEgb3IgbmlsKSBpbiB0aGUgYnVmZmVyIGxvY2F0ZWQgZW50aXJl bHkgYWZ0ZXIgdGhlCiAgb3JpZ2luIG9mIHRoZSBzZWFyY2g7IGNvcnJlc3BvbmRpbmdseSB3aXRo IENPVU5UIG5lZ2F0aXZlLgoKUmVsaWVzIG9uIHRoZSBmdW5jdGlvbiBgd29yZC1zZWFyY2gtcmVn ZXhwJyB0byBjb252ZXJ0IGEgc2VxdWVuY2UKb2Ygd29yZHMgaW4gU1RSSU5HIHRvIGEgcmVnZXhw IHVzZWQgdG8gc2VhcmNoIHdvcmRzIHdpdGhvdXQgcmVnYXJkCnRvIHB1bmN0dWF0aW9uLgpUaGlz IGNvbW1hbmQgZG9lcyBub3Qgc3VwcG9ydCBjaGFyYWN0ZXIgZm9sZGluZywgYW5kIGxheCBzcGFj ZSBtYXRjaGluZwpoYXMgbm8gZWZmZWN0IG9uIGl0LiIKICAoaW50ZXJhY3RpdmUgInNXb3JkIHNl YXJjaDogIikKICAocmUtc2VhcmNoLWZvcndhcmQgKHdvcmQtc2VhcmNoLXJlZ2V4cCBzdHJpbmcg bmlsKSBib3VuZCBub2Vycm9yIGNvdW50KSkKCihkZWZ1biB3b3JkLXNlYXJjaC1iYWNrd2FyZC1s YXggKHN0cmluZyAmb3B0aW9uYWwgYm91bmQgbm9lcnJvciBjb3VudCkKICAiU2VhcmNoIGJhY2t3 YXJkIGZyb20gcG9pbnQgZm9yIFNUUklORywgaWdub3JpbmcgZGlmZmVyZW5jZXMgaW4gcHVuY3R1 YXRpb24uClNldCBwb2ludCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBvY2N1cnJlbmNlIGZvdW5k LCBhbmQgcmV0dXJuIHBvaW50LgoKVW5saWtlIGB3b3JkLXNlYXJjaC1iYWNrd2FyZCcsIHRoZSBl bmQgb2YgU1RSSU5HIG5lZWQgbm90IG1hdGNoIGEgd29yZApib3VuZGFyeSwgdW5sZXNzIFNUUklO RyBlbmRzIGluIHdoaXRlc3BhY2UuCgpBbiBvcHRpb25hbCBzZWNvbmQgYXJndW1lbnQgYm91bmRz IHRoZSBzZWFyY2g7IGl0IGlzIGEgYnVmZmVyIHBvc2l0aW9uLgogIFRoZSBtYXRjaCBmb3VuZCBt dXN0IG5vdCBiZWdpbiBiZWZvcmUgdGhhdCBwb3NpdGlvbi4gIEEgdmFsdWUgb2YgbmlsCiAgbWVh bnMgc2VhcmNoIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGFjY2Vzc2libGUgcG9ydGlvbiBvZiB0 aGUgYnVmZmVyLgpPcHRpb25hbCB0aGlyZCBhcmd1bWVudCwgaWYgdCwgbWVhbnMgaWYgZmFpbCBq dXN0IHJldHVybiBuaWwgKG5vIGVycm9yKS4KICBJZiBub3QgbmlsIGFuZCBub3QgdCwgcG9zaXRp b24gYXQgbGltaXQgb2Ygc2VhcmNoIGFuZCByZXR1cm4gbmlsLgpPcHRpb25hbCBmb3VydGggYXJn dW1lbnQgQ09VTlQsIGlmIGEgcG9zaXRpdmUgbnVtYmVyLCBtZWFucyB0byBzZWFyY2gKICBmb3Ig Q09VTlQgc3VjY2Vzc2l2ZSBvY2N1cnJlbmNlcy4gIElmIENPVU5UIGlzIG5lZ2F0aXZlLCBzZWFy Y2gKICBmb3J3YXJkLCBpbnN0ZWFkIG9mIGJhY2t3YXJkLCBmb3IgLUNPVU5UIG9jY3VycmVuY2Vz LiAgQSB2YWx1ZSBvZgogIG5pbCBtZWFucyB0aGUgc2FtZSBhcyAxLgpXaXRoIENPVU5UIHBvc2l0 aXZlLCB0aGUgbWF0Y2ggZm91bmQgaXMgdGhlIENPVU5UdGggdG8gbGFzdCBvbmUgKG9yCiAgbGFz dCwgaWYgQ09VTlQgaXMgMSBvciBuaWwpIGluIHRoZSBidWZmZXIgbG9jYXRlZCBlbnRpcmVseSBi ZWZvcmUKICB0aGUgb3JpZ2luIG9mIHRoZSBzZWFyY2g7IGNvcnJlc3BvbmRpbmdseSB3aXRoIENP VU5UIG5lZ2F0aXZlLgoKUmVsaWVzIG9uIHRoZSBmdW5jdGlvbiBgd29yZC1zZWFyY2gtcmVnZXhw JyB0byBjb252ZXJ0IGEgc2VxdWVuY2UKb2Ygd29yZHMgaW4gU1RSSU5HIHRvIGEgcmVnZXhwIHVz ZWQgdG8gc2VhcmNoIHdvcmRzIHdpdGhvdXQgcmVnYXJkCnRvIHB1bmN0dWF0aW9uLgpUaGlzIGNv bW1hbmQgZG9lcyBub3Qgc3VwcG9ydCBjaGFyYWN0ZXIgZm9sZGluZywgYW5kIGxheCBzcGFjZSBt YXRjaGluZwpoYXMgbm8gZWZmZWN0IG9uIGl0LiIKICAoaW50ZXJhY3RpdmUgInNXb3JkIHNlYXJj aCBiYWNrd2FyZDogIikKICAocmUtc2VhcmNoLWJhY2t3YXJkICh3b3JkLXNlYXJjaC1yZWdleHAg c3RyaW5nIHQpIGJvdW5kIG5vZXJyb3IgY291bnQpKQoKKGRlZnVuIHdvcmQtc2VhcmNoLWZvcndh cmQtbGF4IChzdHJpbmcgJm9wdGlvbmFsIGJvdW5kIG5vZXJyb3IgY291bnQpCiAgIlNlYXJjaCBm b3J3YXJkIGZyb20gcG9pbnQgZm9yIFNUUklORywgaWdub3JpbmcgZGlmZmVyZW5jZXMgaW4gcHVu Y3R1YXRpb24uClNldCBwb2ludCB0byB0aGUgZW5kIG9mIHRoZSBvY2N1cnJlbmNlIGZvdW5kLCBh bmQgcmV0dXJuIHBvaW50LgoKVW5saWtlIGB3b3JkLXNlYXJjaC1mb3J3YXJkJywgdGhlIGVuZCBv ZiBTVFJJTkcgbmVlZCBub3QgbWF0Y2ggYSB3b3JkCmJvdW5kYXJ5LCB1bmxlc3MgU1RSSU5HIGVu ZHMgaW4gd2hpdGVzcGFjZS4KCkFuIG9wdGlvbmFsIHNlY29uZCBhcmd1bWVudCBib3VuZHMgdGhl IHNlYXJjaDsgaXQgaXMgYSBidWZmZXIgcG9zaXRpb24uCiAgVGhlIG1hdGNoIGZvdW5kIG11c3Qg bm90IGVuZCBhZnRlciB0aGF0IHBvc2l0aW9uLiAgQSB2YWx1ZSBvZiBuaWwKICBtZWFucyBzZWFy Y2ggdG8gdGhlIGVuZCBvZiB0aGUgYWNjZXNzaWJsZSBwb3J0aW9uIG9mIHRoZSBidWZmZXIuCk9w dGlvbmFsIHRoaXJkIGFyZ3VtZW50LCBpZiB0LCBtZWFucyBpZiBmYWlsIGp1c3QgcmV0dXJuIG5p bCAobm8gZXJyb3IpLgogIElmIG5vdCBuaWwgYW5kIG5vdCB0LCBtb3ZlIHRvIGxpbWl0IG9mIHNl YXJjaCBhbmQgcmV0dXJuIG5pbC4KT3B0aW9uYWwgZm91cnRoIGFyZ3VtZW50IENPVU5ULCBpZiBh IHBvc2l0aXZlIG51bWJlciwgbWVhbnMgdG8gc2VhcmNoCiAgZm9yIENPVU5UIHN1Y2Nlc3NpdmUg b2NjdXJyZW5jZXMuICBJZiBDT1VOVCBpcyBuZWdhdGl2ZSwgc2VhcmNoCiAgYmFja3dhcmQsIGlu c3RlYWQgb2YgZm9yd2FyZCwgZm9yIC1DT1VOVCBvY2N1cnJlbmNlcy4gIEEgdmFsdWUgb2YKICBu aWwgbWVhbnMgdGhlIHNhbWUgYXMgMS4KV2l0aCBDT1VOVCBwb3NpdGl2ZSwgdGhlIG1hdGNoIGZv dW5kIGlzIHRoZSBDT1VOVHRoIG9uZSAob3IgZmlyc3QsCiAgaWYgQ09VTlQgaXMgMSBvciBuaWwp IGluIHRoZSBidWZmZXIgbG9jYXRlZCBlbnRpcmVseSBhZnRlciB0aGUKICBvcmlnaW4gb2YgdGhl IHNlYXJjaDsgY29ycmVzcG9uZGluZ2x5IHdpdGggQ09VTlQgbmVnYXRpdmUuCgpSZWxpZXMgb24g dGhlIGZ1bmN0aW9uIGB3b3JkLXNlYXJjaC1yZWdleHAnIHRvIGNvbnZlcnQgYSBzZXF1ZW5jZQpv ZiB3b3JkcyBpbiBTVFJJTkcgdG8gYSByZWdleHAgdXNlZCB0byBzZWFyY2ggd29yZHMgd2l0aG91 dCByZWdhcmQKdG8gcHVuY3R1YXRpb24uClRoaXMgY29tbWFuZCBkb2VzIG5vdCBzdXBwb3J0IGNo YXJhY3RlciBmb2xkaW5nLCBhbmQgbGF4IHNwYWNlIG1hdGNoaW5nCmhhcyBubyBlZmZlY3Qgb24g aXQuIgogIChpbnRlcmFjdGl2ZSAic1dvcmQgc2VhcmNoOiAiKQogIChyZS1zZWFyY2gtZm9yd2Fy ZCAod29yZC1zZWFyY2gtcmVnZXhwIHN0cmluZyB0KSBib3VuZCBub2Vycm9yIGNvdW50KSkKCjs7 IFN5bWJvbCBzZWFyY2gKCihkZWZ1biBpc2VhcmNoLXN5bWJvbC1yZWdleHAgKHN0cmluZyAmb3B0 aW9uYWwgbGF4KQogICJSZXR1cm4gYSByZWdleHAgd2hpY2ggbWF0Y2hlcyBTVFJJTkcgYXMgYSBz eW1ib2wuCkNyZWF0ZXMgYSByZWdleHAgd2hlcmUgU1RSSU5HIGlzIHN1cnJvdW5kZWQgYnkgc3lt Ym9sIGRlbGltaXRlcnMgXFxfPCBhbmQgXFxfPi4KSWYgdGhlcmUgYXJlIG1vcmUgdGhhbiBvbmUg c3ltYm9sLCB0aGVuIGNvbXB1dGUgYSByZWdleHAgdGhhdCBtYXRjaGVzCnRob3NlIGV4YWN0IHN5 bWJvbHMgc2VwYXJhdGVkIGJ5IG5vbi1zeW1ib2wgY2hhcmFjdGVycy4gIElmIHRoZSBzdHJpbmcK YmVnaW5zIG9yIGVuZHMgaW4gd2hpdGVzcGFjZSwgdGhlIGJlZ2lubmluZyBvciB0aGUgZW5kIG9m IHRoZSBzdHJpbmcKbWF0Y2hlcyBhcmJpdHJhcnkgbm9uLXN5bWJvbCB3aGl0ZXNwYWNlLiAgT3Ro ZXJ3aXNlIGlmIExBWCBpcyBub24tbmlsLAp0aGUgYmVnaW5uaW5nIG9yIHRoZSBlbmQgb2YgdGhl IHN0cmluZyBuZWVkIG5vdCBtYXRjaCBhIHN5bWJvbCBib3VuZGFyeS4iCiAgKGxldCAoKG5vdC13 b3JkLXN5bWJvbC1yZQoJIDs7IFRoaXMgcmVnZXhwIG1hdGNoZXMgYWxsIHN5bnRheGVzIGV4Y2Vw dCB3b3JkIGFuZCBzeW1ib2wgc3ludGF4LgoJIDs7IEZJWE1FOiBSZXBsYWNlIGl0IHdpdGggc29t ZXRoaW5nIHNob3J0ZXIgaWYgcG9zc2libGUgKGJ1ZyMxNDYwMikuCgkgIlxcKD86XFxzLVxcfFxc cy5cXHxcXHMoXFx8XFxzKVxcfFxcc1wiXFx8XFxzXFxcXHxcXHMvXFx8XFxzJFxcfFxccydcXHxc XHM8XFx8XFxzPlxcfFxcc0BcXHxcXHMhXFx8XFxzfFxcKSsiKSkKICAgIChjb25kCiAgICAgKChl cXVhbCBzdHJpbmcgIiIpICIiKQogICAgICgoc3RyaW5nLW1hdGNoLXAgKGZvcm1hdCAiXFxgJXNc XCciIG5vdC13b3JkLXN5bWJvbC1yZSkgc3RyaW5nKSBub3Qtd29yZC1zeW1ib2wtcmUpCiAgICAg KHQgKGNvbmNhdAoJIChpZiAoc3RyaW5nLW1hdGNoLXAgKGZvcm1hdCAiXFxgJXMiIG5vdC13b3Jk LXN5bWJvbC1yZSkgc3RyaW5nKSBub3Qtd29yZC1zeW1ib2wtcmUKCSAgICJcXF88IikKCSAobWFw Y29uY2F0ICdyZWdleHAtcXVvdGUgKHNwbGl0LXN0cmluZyBzdHJpbmcgbm90LXdvcmQtc3ltYm9s LXJlIHQpIG5vdC13b3JkLXN5bWJvbC1yZSkKCSAoaWYgKHN0cmluZy1tYXRjaC1wIChmb3JtYXQg IiVzXFwnIiBub3Qtd29yZC1zeW1ib2wtcmUpIHN0cmluZykgbm90LXdvcmQtc3ltYm9sLXJlCgkg ICAodW5sZXNzIGxheCAiXFxfPiIpKSkpKSkpCgo7OyBTZWFyY2ggd2l0aCBsYXggd2hpdGVzcGFj ZQoKKGRlZnVuIHNlYXJjaC1mb3J3YXJkLWxheC13aGl0ZXNwYWNlIChzdHJpbmcgJm9wdGlvbmFs IGJvdW5kIG5vZXJyb3IgY291bnQpCiAgIlNlYXJjaCBmb3J3YXJkIGZvciBTVFJJTkcsIG1hdGNo aW5nIGEgc2VxdWVuY2Ugb2Ygd2hpdGVzcGFjZSBjaGFycy4iCiAgKGxldCAoKHNlYXJjaC1zcGFj ZXMtcmVnZXhwIHNlYXJjaC13aGl0ZXNwYWNlLXJlZ2V4cCkpCiAgICAocmUtc2VhcmNoLWZvcndh cmQgKHJlZ2V4cC1xdW90ZSBzdHJpbmcpIGJvdW5kIG5vZXJyb3IgY291bnQpKSkKCihkZWZ1biBz ZWFyY2gtYmFja3dhcmQtbGF4LXdoaXRlc3BhY2UgKHN0cmluZyAmb3B0aW9uYWwgYm91bmQgbm9l cnJvciBjb3VudCkKICAiU2VhcmNoIGJhY2t3YXJkIGZvciBTVFJJTkcsIG1hdGNoaW5nIGEgc2Vx dWVuY2Ugb2Ygd2hpdGVzcGFjZSBjaGFycy4iCiAgKGxldCAoKHNlYXJjaC1zcGFjZXMtcmVnZXhw IHNlYXJjaC13aGl0ZXNwYWNlLXJlZ2V4cCkpCiAgICAocmUtc2VhcmNoLWJhY2t3YXJkIChyZWdl eHAtcXVvdGUgc3RyaW5nKSBib3VuZCBub2Vycm9yIGNvdW50KSkpCgooZGVmdW4gcmUtc2VhcmNo LWZvcndhcmQtbGF4LXdoaXRlc3BhY2UgKHJlZ2V4cCAmb3B0aW9uYWwgYm91bmQgbm9lcnJvciBj b3VudCkKICAiU2VhcmNoIGZvcndhcmQgZm9yIFJFR0VYUCwgbWF0Y2hpbmcgYSBzZXF1ZW5jZSBv ZiB3aGl0ZXNwYWNlIGNoYXJzLiIKICAobGV0ICgoc2VhcmNoLXNwYWNlcy1yZWdleHAgc2VhcmNo LXdoaXRlc3BhY2UtcmVnZXhwKSkKICAgIChyZS1zZWFyY2gtZm9yd2FyZCByZWdleHAgYm91bmQg bm9lcnJvciBjb3VudCkpKQoKKGRlZnVuIHJlLXNlYXJjaC1iYWNrd2FyZC1sYXgtd2hpdGVzcGFj ZSAocmVnZXhwICZvcHRpb25hbCBib3VuZCBub2Vycm9yIGNvdW50KQogICJTZWFyY2ggYmFja3dh cmQgZm9yIFJFR0VYUCwgbWF0Y2hpbmcgYSBzZXF1ZW5jZSBvZiB3aGl0ZXNwYWNlIGNoYXJzLiIK ICAobGV0ICgoc2VhcmNoLXNwYWNlcy1yZWdleHAgc2VhcmNoLXdoaXRlc3BhY2UtcmVnZXhwKSkK ICAgIChyZS1zZWFyY2gtYmFja3dhcmQgcmVnZXhwIGJvdW5kIG5vZXJyb3IgY291bnQpKSkKCihk b2xpc3QgKG9sZCAnKHJlLXNlYXJjaC1mb3J3YXJkLWxheC13aGl0ZXNwYWNlIHNlYXJjaC1iYWNr d2FyZC1sYXgtd2hpdGVzcGFjZQogICAgICAgICAgICAgICBzZWFyY2gtZm9yd2FyZC1sYXgtd2hp dGVzcGFjZSByZS1zZWFyY2gtYmFja3dhcmQtbGF4LXdoaXRlc3BhY2UpKQogIChtYWtlLW9ic29s ZXRlIG9sZAogICAgICAgICAgICAgICAgICJpbnN0ZWFkLCB1c2UgKGxldCAoKHNlYXJjaC1zcGFj ZXMtcmVnZXhwIHNlYXJjaC13aGl0ZXNwYWNlLXJlZ2V4cCkpCiAgICAgICAgICAgICAgIChyZS1z ZWFyY2gtLi4uIC4uLikpIgogICAgICAgICAgICAgICAgICIyNS4xIikpCgoMCihkZWZ1biBpc2Vh cmNoLXF1ZXJ5LXJlcGxhY2UgKCZvcHRpb25hbCBhcmcgcmVnZXhwLWZsYWcpCiAgIlN0YXJ0IGBx dWVyeS1yZXBsYWNlJyB3aXRoIHN0cmluZyB0byByZXBsYWNlIGZyb20gbGFzdCBzZWFyY2ggc3Ry aW5nLgpUaGUgQVJHIChwcmVmaXggYXJnIGlmIGludGVyYWN0aXZlKSwgaWYgbm9uLW5pbCwgbWVh bnMgcmVwbGFjZQpvbmx5IG1hdGNoZXMgc3Vycm91bmRlZCBieSB3b3JkIGJvdW5kYXJpZXMuICBB IG5lZ2F0aXZlIHByZWZpeAphcmcgbWVhbnMgcmVwbGFjZSBiYWNrd2FyZC4gIE5vdGUgdGhhdCB1 c2luZyB0aGUgcHJlZml4IGFyZwppcyBwb3NzaWJsZSBvbmx5IHdoZW4gYGlzZWFyY2gtYWxsb3ct c2Nyb2xsJyBpcyBub24tbmlsIG9yCmBpc2VhcmNoLWFsbG93LXByZWZpeCcgaXMgbm9uLW5pbCwg YW5kIGl0IGRvZXNuJ3QgYWx3YXlzIHByb3ZpZGUgdGhlCmNvcnJlY3QgbWF0Y2hlcyBmb3IgYHF1 ZXJ5LXJlcGxhY2UnLCBzbyB0aGUgcHJlZmVycmVkIHdheSB0byBydW4gd29yZApyZXBsYWNlbWVu dHMgZnJvbSBJc2VhcmNoIGlzIGBNLXMgdyAuLi4gTS0lJy4iCiAgKGludGVyYWN0aXZlCiAgIChs aXN0IGN1cnJlbnQtcHJlZml4LWFyZykpCiAgKGJhcmYtaWYtYnVmZmVyLXJlYWQtb25seSkKICAo aWYgcmVnZXhwLWZsYWcgKHNldHEgaXNlYXJjaC1yZWdleHAgdCkpCiAgKGxldCAoKGNhc2UtZm9s ZC1zZWFyY2ggaXNlYXJjaC1jYXNlLWZvbGQtc2VhcmNoKQoJOzsgc2V0IGBzZWFyY2gtdXBwZXIt Y2FzZScgdG8gbmlsIHRvIG5vdCBjYWxsCgk7OyBgaXNlYXJjaC1uby11cHBlci1jYXNlLXAnIGlu IGBwZXJmb3JtLXJlcGxhY2UnCgkoc2VhcmNoLXVwcGVyLWNhc2UgbmlsKQoJKHNlYXJjaC1pbnZp c2libGUgaXNlYXJjaC1pbnZpc2libGUpCgkocmVwbGFjZS1sYXgtd2hpdGVzcGFjZQoJIGlzZWFy Y2gtbGF4LXdoaXRlc3BhY2UpCgkocmVwbGFjZS1yZWdleHAtbGF4LXdoaXRlc3BhY2UKCSBpc2Vh cmNoLXJlZ2V4cC1sYXgtd2hpdGVzcGFjZSkKCShkZWxpbWl0ZWQgKGFuZCBhcmcgKG5vdCAoZXEg YXJnICctKSkpKQoJKGJhY2t3YXJkIChhbmQgYXJnIChlcSBhcmcgJy0pKSkKCTs7IFNldCBgaXNl YXJjaC1yZWN1cnNpdmUtZWRpdCcgdG8gbmlsIHRvIHByZXZlbnQgY2FsbGluZwoJOzsgYGV4aXQt cmVjdXJzaXZlLWVkaXQnIGluIGBpc2VhcmNoLWRvbmUnIHRoYXQgdGVybWluYXRlcwoJOzsgdGhl IGV4ZWN1dGlvbiBvZiB0aGlzIGNvbW1hbmQgd2hlbiBpdCBpcyBub24tbmlsLgoJOzsgV2UgY2Fs bCBgZXhpdC1yZWN1cnNpdmUtZWRpdCcgZXhwbGljaXRseSBhdCB0aGUgZW5kIGJlbG93LgoJKGlz ZWFyY2gtcmVjdXJzaXZlLWVkaXQgbmlsKQoJKGlzZWFyY2gtc3RyaW5nLXByb3BlcnRpemVkCiAg ICAgICAgIChpc2VhcmNoLXN0cmluZy1wcm9wZXJ0aXplIGlzZWFyY2gtc3RyaW5nKSkpCiAgICAo aXNlYXJjaC1kb25lIG5pbCB0KQogICAgKGlzZWFyY2gtY2xlYW4tb3ZlcmxheXMpCiAgICAoaWYg KGFuZCBpc2VhcmNoLW90aGVyLWVuZAoJICAgICAoaWYgYmFja3dhcmQKCQkgKD4gaXNlYXJjaC1v dGhlci1lbmQgKHBvaW50KSkKCSAgICAgICAoPCBpc2VhcmNoLW90aGVyLWVuZCAocG9pbnQpKSkK ICAgICAgICAgICAgIChub3QgKGFuZCB0cmFuc2llbnQtbWFyay1tb2RlIG1hcmstYWN0aXZlCiAg ICAgICAgICAgICAgICAgICAgICAgKGlmIGJhY2t3YXJkCgkJCSAgICg+IChtYXJrKSAocG9pbnQp KQoJCQkgKDwgKG1hcmspIChwb2ludCkpKSkpKQogICAgICAgIChnb3RvLWNoYXIgaXNlYXJjaC1v dGhlci1lbmQpKQogICAgKHNldCBxdWVyeS1yZXBsYWNlLWZyb20taGlzdG9yeS12YXJpYWJsZQog ICAgICAgICAoY29ucyBpc2VhcmNoLXN0cmluZy1wcm9wZXJ0aXplZAogICAgICAgICAgICAgICAo c3ltYm9sLXZhbHVlIHF1ZXJ5LXJlcGxhY2UtZnJvbS1oaXN0b3J5LXZhcmlhYmxlKSkpCiAgICAo cGVyZm9ybS1yZXBsYWNlCiAgICAgaXNlYXJjaC1zdHJpbmctcHJvcGVydGl6ZWQKICAgICAocXVl cnktcmVwbGFjZS1yZWFkLXRvCiAgICAgIGlzZWFyY2gtc3RyaW5nLXByb3BlcnRpemVkCiAgICAg IChjb25jYXQgIlF1ZXJ5IHJlcGxhY2UiCiAgICAgICAgICAgICAgKGlzZWFyY2gtLWRlc2NyaWJl LXJlZ2V4cC1tb2RlIChvciBkZWxpbWl0ZWQgaXNlYXJjaC1yZWdleHAtZnVuY3Rpb24pIHQpCgkg ICAgICAoaWYgYmFja3dhcmQgIiBiYWNrd2FyZCIgIiIpCgkgICAgICAoaWYgKHVzZS1yZWdpb24t cCkgIiBpbiByZWdpb24iICIiKSkKICAgICAgaXNlYXJjaC1yZWdleHApCiAgICAgdCBpc2VhcmNo LXJlZ2V4cCAob3IgZGVsaW1pdGVkIGlzZWFyY2gtcmVnZXhwLWZ1bmN0aW9uKSBuaWwgbmlsCiAg ICAgKGlmICh1c2UtcmVnaW9uLXApIChyZWdpb24tYmVnaW5uaW5nKSkKICAgICAoaWYgKHVzZS1y ZWdpb24tcCkgKHJlZ2lvbi1lbmQpKQogICAgIGJhY2t3YXJkKSkKICAoYW5kIGlzZWFyY2gtcmVj dXJzaXZlLWVkaXQgKGV4aXQtcmVjdXJzaXZlLWVkaXQpKSkKCihkZWZ1biBpc2VhcmNoLXF1ZXJ5 LXJlcGxhY2UtcmVnZXhwICgmb3B0aW9uYWwgYXJnKQogICJTdGFydCBgcXVlcnktcmVwbGFjZS1y ZWdleHAnIHdpdGggc3RyaW5nIHRvIHJlcGxhY2UgZnJvbSBsYXN0IHNlYXJjaCBzdHJpbmcuClNl ZSBgaXNlYXJjaC1xdWVyeS1yZXBsYWNlJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iCiAgKGludGVy YWN0aXZlCiAgIChsaXN0IGN1cnJlbnQtcHJlZml4LWFyZykpCiAgKGlzZWFyY2gtcXVlcnktcmVw bGFjZSBhcmcgdCkpCgooZGVmdW4gaXNlYXJjaC1vY2N1ciAocmVnZXhwICZvcHRpb25hbCBubGlu ZXMpCiAgIlJ1biBgb2NjdXInIHVzaW5nIHRoZSBsYXN0IHNlYXJjaCBzdHJpbmcgYXMgdGhlIHJl Z2V4cC4KSW50ZXJhY3RpdmVseSwgUkVHRVhQIGlzIGNvbnN0cnVjdGVkIHVzaW5nIHRoZSBzZWFy Y2ggc3RyaW5nIGZyb20gdGhlCmxhc3Qgc2VhcmNoIGNvbW1hbmQuICBOTElORVMgaGFzIHRoZSBz YW1lIG1lYW5pbmcgYXMgaW4gYG9jY3VyJy4KCklmIHRoZSBsYXN0IHNlYXJjaCBjb21tYW5kIHdh cyBhIHdvcmQgc2VhcmNoLCBSRUdFWFAgaXMgY29tcHV0ZWQgZnJvbQp0aGUgc2VhcmNoIHdvcmRz LCBpZ25vcmluZyBwdW5jdHVhdGlvbi4gIElmIHRoZSBsYXN0IHNlYXJjaApjb21tYW5kIHdhcyBh IHJlZ3VsYXIgZXhwcmVzc2lvbiBzZWFyY2gsIFJFR0VYUCBpcyB0aGUgcmVndWxhcgpleHByZXNz aW9uIHVzZWQgaW4gdGhhdCBzZWFyY2guICBJZiB0aGUgbGFzdCBzZWFyY2ggY29tbWFuZCBzZWFy Y2hlZApmb3IgYSBsaXRlcmFsIHN0cmluZywgUkVHRVhQIGlzIGNvbnN0cnVjdGVkIGJ5IHF1b3Rp bmcgYWxsIHRoZSBzcGVjaWFsCmNoYXJhY3RlcnMgaW4gdGhhdCBzdHJpbmcuIgogIChpbnRlcmFj dGl2ZQogICAobGV0KiAoKHBlcmZvcm0tY29sbGVjdCAoY29uc3AgY3VycmVudC1wcmVmaXgtYXJn KSkKCSAgKHJlZ2V4cCAoY29uZAoJCSAgICgoZnVuY3Rpb25wIGlzZWFyY2gtcmVnZXhwLWZ1bmN0 aW9uKQoJCSAgICAoZnVuY2FsbCBpc2VhcmNoLXJlZ2V4cC1mdW5jdGlvbiBpc2VhcmNoLXN0cmlu ZykpCgkJICAgKGlzZWFyY2gtcmVnZXhwLWZ1bmN0aW9uICh3b3JkLXNlYXJjaC1yZWdleHAgaXNl YXJjaC1zdHJpbmcpKQoJCSAgIChpc2VhcmNoLXJlZ2V4cCBpc2VhcmNoLXN0cmluZykKCQkgICAo dCAocmVnZXhwLXF1b3RlIGlzZWFyY2gtc3RyaW5nKSkpKSkKICAgICAobGlzdCByZWdleHAKCSAg IChpZiBwZXJmb3JtLWNvbGxlY3QKCSAgICAgICA7OyBQZXJmb3JtIGNvbGxlY3Qgb3BlcmF0aW9u CgkgICAgICAgKGlmICh6ZXJvcCAocmVnZXhwLW9wdC1kZXB0aCByZWdleHApKQoJCSAgIDs7IE5v IHN1YmV4cHJlc3Npb24gc28gY29sbGVjdCB0aGUgZW50aXJlIG1hdGNoLgoJCSAgICJcXCYiCgkJ IDs7IEdldCB0aGUgcmVnZXhwIGZvciBjb2xsZWN0aW9uIHBhdHRlcm4uCgkJIChsZXQgKChkZWZh dWx0IChjYXIgb2NjdXItY29sbGVjdC1yZWdleHAtaGlzdG9yeSkpCgkJICAgICAgIHJlZ2V4cC1j b2xsZWN0KQoJCSAgICh3aXRoLWlzZWFyY2gtc3VzcGVuZGVkCgkJICAgIChzZXRxIHJlZ2V4cC1j b2xsZWN0CgkJCSAgKHJlYWQtcmVnZXhwCgkJCSAgIChmb3JtYXQgIlJlZ2V4cCB0byBjb2xsZWN0 IChkZWZhdWx0ICVzKTogIiBkZWZhdWx0KQoJCQkgICBkZWZhdWx0ICdvY2N1ci1jb2xsZWN0LXJl Z2V4cC1oaXN0b3J5KSkpCgkJICAgcmVnZXhwLWNvbGxlY3QpKQoJICAgICA7OyBPdGhlcndpc2Ug bm9ybWFsIG9jY3VyIHRha2VzIG51bWVyaWNhbCBwcmVmaXggYXJndW1lbnQuCgkgICAgICh3aGVu IGN1cnJlbnQtcHJlZml4LWFyZwoJICAgICAgIChwcmVmaXgtbnVtZXJpYy12YWx1ZSBjdXJyZW50 LXByZWZpeC1hcmcpKSkpKSkKICAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCBpc2VhcmNoLWNhc2Ut Zm9sZC1zZWFyY2gpCgk7OyBTZXQgYHNlYXJjaC11cHBlci1jYXNlJyB0byBuaWwgdG8gbm90IGNh bGwKCTs7IGBpc2VhcmNoLW5vLXVwcGVyLWNhc2UtcCcgaW4gYG9jY3VyLTEnLgoJKHNlYXJjaC11 cHBlci1jYXNlIG5pbCkKCShzZWFyY2gtc3BhY2VzLXJlZ2V4cAoJIChpZiAoaWYgaXNlYXJjaC1y ZWdleHAKCQkgaXNlYXJjaC1yZWdleHAtbGF4LXdoaXRlc3BhY2UKCSAgICAgICBpc2VhcmNoLWxh eC13aGl0ZXNwYWNlKQoJICAgICBzZWFyY2gtd2hpdGVzcGFjZS1yZWdleHApKSkKICAgIChvY2N1 ciAoaWYgaXNlYXJjaC1yZWdleHAtZnVuY3Rpb24KCSAgICAgICAocHJvcGVydGl6ZSByZWdleHAK CQkJICAgJ2lzZWFyY2gtc3RyaW5nIGlzZWFyY2gtc3RyaW5nCgkJCSAgICdpc2VhcmNoLXJlZ2V4 cC1mdW5jdGlvbi1kZXNjcgogICAgICAgICAgICAgICAgICAgICAgICAgICAoaXNlYXJjaC0tZGVz Y3JpYmUtcmVnZXhwLW1vZGUgaXNlYXJjaC1yZWdleHAtZnVuY3Rpb24pKQoJICAgICByZWdleHAp CgkgICBubGluZXMKCSAgIChpZiAodXNlLXJlZ2lvbi1wKSAocmVnaW9uLWJvdW5kcykpKSkpCgoo ZGVjbGFyZS1mdW5jdGlvbiBoaS1sb2NrLXJlYWQtZmFjZS1uYW1lICJoaS1sb2NrIiAoKSkKCihk ZWZ1biBpc2VhcmNoLWhpZ2hsaWdodC1yZWdleHAgKCkKICAiUnVuIGBoaWdobGlnaHQtcmVnZXhw JyB3aXRoIHJlZ2V4cCBmcm9tIHRoZSBjdXJyZW50IHNlYXJjaCBzdHJpbmcuCkl0IGV4aXRzIElz ZWFyY2ggbW9kZSBhbmQgY2FsbHMgYGhpLWxvY2stZmFjZS1idWZmZXInIHdpdGggaXRzIHJlZ2V4 cAphcmd1bWVudCBmcm9tIHRoZSBsYXN0IHNlYXJjaCByZWdleHAgb3IgYSBxdW90ZWQgc2VhcmNo IHN0cmluZywKYW5kIHJlYWRzIGl0cyBmYWNlIGFyZ3VtZW50IHVzaW5nIGBoaS1sb2NrLXJlYWQt ZmFjZS1uYW1lJy4iCiAgKGludGVyYWN0aXZlKQogIChsZXQgKAoJOzsgU2V0IGBpc2VhcmNoLXJl Y3Vyc2l2ZS1lZGl0JyB0byBuaWwgdG8gcHJldmVudCBjYWxsaW5nCgk7OyBgZXhpdC1yZWN1cnNp dmUtZWRpdCcgaW4gYGlzZWFyY2gtZG9uZScgdGhhdCB0ZXJtaW5hdGVzCgk7OyB0aGUgZXhlY3V0 aW9uIG9mIHRoaXMgY29tbWFuZCB3aGVuIGl0IGlzIG5vbi1uaWwuCgk7OyBXZSBjYWxsIGBleGl0 LXJlY3Vyc2l2ZS1lZGl0JyBleHBsaWNpdGx5IGF0IHRoZSBlbmQgYmVsb3cuCgkoaXNlYXJjaC1y ZWN1cnNpdmUtZWRpdCBuaWwpKQogICAgKGlzZWFyY2gtZG9uZSBuaWwgdCkKICAgIChpc2VhcmNo LWNsZWFuLW92ZXJsYXlzKSkKICAocmVxdWlyZSAnaGktbG9jayBuaWwgdCkKICAobGV0ICgocmVn ZXhwIChjb25kICgoZnVuY3Rpb25wIGlzZWFyY2gtcmVnZXhwLWZ1bmN0aW9uKQogICAgICAgICAg ICAgICAgICAgICAgIChmdW5jYWxsIGlzZWFyY2gtcmVnZXhwLWZ1bmN0aW9uIGlzZWFyY2gtc3Ry aW5nKSkKCQkgICAgICAoaXNlYXJjaC1yZWdleHAtZnVuY3Rpb24gKHdvcmQtc2VhcmNoLXJlZ2V4 cCBpc2VhcmNoLXN0cmluZykpCgkJICAgICAgKGlzZWFyY2gtcmVnZXhwIGlzZWFyY2gtc3RyaW5n KQoJCSAgICAgICgoaWYgKGFuZCAoZXEgaXNlYXJjaC1jYXNlLWZvbGQtc2VhcmNoIHQpCgkJCQlz ZWFyY2gtdXBwZXItY2FzZSkKCQkJICAgKGlzZWFyY2gtbm8tdXBwZXItY2FzZS1wCgkJCSAgICBp c2VhcmNoLXN0cmluZyBpc2VhcmNoLXJlZ2V4cCkKCQkJIGlzZWFyY2gtY2FzZS1mb2xkLXNlYXJj aCkKCQkgICAgICAgOzsgVHVybiBpc2VhcmNoLXN0cmluZyBpbnRvIGEgY2FzZS1pbnNlbnNpdGl2 ZQoJCSAgICAgICA7OyByZWdleHAuCgkJICAgICAgIChtYXBjb25jYXQKCQkJKGxhbWJkYSAoYykK CQkJICAobGV0ICgocyAoc3RyaW5nIGMpKSkKCQkJICAgIChpZiAoc3RyaW5nLW1hdGNoICJbWzph bHBoYTpdXSIgcykKCQkJCShmb3JtYXQgIlslcyVzXSIgKHVwY2FzZSBzKSAoZG93bmNhc2Ugcykp CgkJCSAgICAgIChyZWdleHAtcXVvdGUgcykpKSkKCQkJaXNlYXJjaC1zdHJpbmcgIiIpKQoJCSAg ICAgICh0IChyZWdleHAtcXVvdGUgaXNlYXJjaC1zdHJpbmcpKSkpKQogICAgKGhpLWxvY2stZmFj ZS1idWZmZXIgcmVnZXhwIChoaS1sb2NrLXJlYWQtZmFjZS1uYW1lKSkpCiAgKGFuZCBpc2VhcmNo LXJlY3Vyc2l2ZS1lZGl0IChleGl0LXJlY3Vyc2l2ZS1lZGl0KSkpCgoMCihkZWZ1biBpc2VhcmNo LWRlbGV0ZS1jaGFyICgpCiAgIlVuZG8gbGFzdCBpbnB1dCBpdGVtIGR1cmluZyBhIHNlYXJjaC4K CkFuIGlucHV0IGl0ZW0gaXMgdGhlIHJlc3VsdCBvZiBhIGNvbW1hbmQgdGhhdCBwdXNoZXMgYSBu ZXcgc3RhdGUKb2YgaXNlYXJjaCAoYXMgcmVjb3JkZWQgYnkgdGhlIGBpc2VhcmNoLS1zdGF0ZScg c3RydWN0dXJlKSB0bwpgaXNlYXJjaC1jbWRzJy4gIEluZm8gbm9kZSBgKGVtYWNzKUJhc2ljIElz ZWFyY2gnIGV4cGxhaW5zIHdoZW4KRW1hY3MgcmVjb3JkcyBhIG5ldyBpbnB1dCBpdGVtLgoKSWYg bm8gaW5wdXQgaXRlbXMgaGF2ZSBiZWVuIGVudGVyZWQgeWV0LCBqdXN0IGJlZXAuIgogIChpbnRl cmFjdGl2ZSkKICAoaWYgKG51bGwgKGNkciBpc2VhcmNoLWNtZHMpKQogICAgICAoZGluZykKICAg IChpc2VhcmNoLXBvcC1zdGF0ZSkpCiAgKGlzZWFyY2gtdXBkYXRlKSkKCihkZWZ1biBpc2VhcmNo LWRlbC1jaGFyICgmb3B0aW9uYWwgYXJnKQogICJEZWxldGUgY2hhcmFjdGVyIGZyb20gZW5kIG9m IHNlYXJjaCBzdHJpbmcgYW5kIHNlYXJjaCBhZ2Fpbi4KVW5saWtlIGBpc2VhcmNoLWRlbGV0ZS1j aGFyJywgaXQgb25seSBkZWxldGVzIHRoZSBsYXN0IGNoYXJhY3RlciwKYnV0IGRvZXNuJ3QgY2Fu Y2VsIHRoZSBlZmZlY3Qgb2Ygb3RoZXIgaXNlYXJjaCBjb21tYW5kLgpJZiBzZWFyY2ggc3RyaW5n IGlzIGVtcHR5LCBqdXN0IGJlZXAuIgogIChpbnRlcmFjdGl2ZSAicCIpCiAgKGlmICg9IDAgKGxl bmd0aCBpc2VhcmNoLXN0cmluZykpCiAgICAgIChkaW5nKQogICAgKHNldHEgaXNlYXJjaC1zdHJp bmcgKHN1YnN0cmluZyBpc2VhcmNoLXN0cmluZyAwCgkJCQkgICAgKC0gKG1pbiAob3IgYXJnIDEp CgkJCQkJICAgIChsZW5ndGggaXNlYXJjaC1zdHJpbmcpKSkpCiAgICAgICAgICBpc2VhcmNoLW1l c3NhZ2UgKG1hcGNvbmNhdCAnaXNlYXJjaC10ZXh0LWNoYXItZGVzY3JpcHRpb24KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzZWFyY2gtc3RyaW5nICIiKSkpCiAgOzsgRG8g dGhlIGZvbGxvd2luZyBiZWZvcmUgbW92aW5nIHBvaW50LgogIChmdW5jYWxsIChvciBpc2VhcmNo LW1lc3NhZ2UtZnVuY3Rpb24gIydpc2VhcmNoLW1lc3NhZ2UpIG5pbCB0KQogIDs7IFVzZSB0aGUg aXNlYXJjaC1vdGhlci1lbmQgYXMgbmV3IHN0YXJ0aW5nIHBvaW50IHRvIGJlIGFibGUKICA7OyB0 byBmaW5kIHRoZSByZW1haW5pbmcgcGFydCBvZiB0aGUgc2VhcmNoIHN0cmluZyBhZ2Fpbi4KICA7 OyBUaGlzIGlzIGxpa2Ugd2hhdCBgaXNlYXJjaC1zZWFyY2gtYW5kLXVwZGF0ZScgZG9lcywKICA7 OyBidXQgY3VycmVudGx5IGl0IGRvZXNuJ3Qgc3VwcG9ydCBkZWxldGlvbiBvZiBjaGFyYWN0ZXJz CiAgOzsgZm9yIHRoZSBjYXNlIHdoZXJlIHVuc3VjY2Vzc2Z1bCBzZWFyY2ggbWF5IGJlY29tZSBz dWNjZXNzZnVsCiAgOzsgYnkgZGVsZXRpb24gb2YgY2hhcmFjdGVycy4KICAoaWYgaXNlYXJjaC1v dGhlci1lbmQgKGdvdG8tY2hhciBpc2VhcmNoLW90aGVyLWVuZCkpCiAgKGlzZWFyY2gtc2VhcmNo KQogIChpc2VhcmNoLXB1c2gtc3RhdGUpCiAgKGlzZWFyY2gtdXBkYXRlKSkKCihkZWZ1biBpc2Vh cmNoLXlhbmstc3RyaW5nIChzdHJpbmcpCiAgIlB1bGwgU1RSSU5HIGludG8gc2VhcmNoIHN0cmlu Zy4iCiAgOzsgRG93bmNhc2UgdGhlIHN0cmluZyBpZiBub3Qgc3VwcG9zZWQgdG8gY2FzZS1mb2xk IHlhbmtlZCBzdHJpbmdzLgogIChpZiAoYW5kIGlzZWFyY2gtY2FzZS1mb2xkLXNlYXJjaAoJICAg KGVxICdub3QteWFua3Mgc2VhcmNoLXVwcGVyLWNhc2UpKQogICAgICAoc2V0cSBzdHJpbmcgKGRv d25jYXNlIHN0cmluZykpKQogIChpZiBpc2VhcmNoLXJlZ2V4cCAoc2V0cSBzdHJpbmcgKHJlZ2V4 cC1xdW90ZSBzdHJpbmcpKSkKICA7OyBEb24ndCBtb3ZlIGN1cnNvciBpbiByZXZlcnNlIHNlYXJj aC4KICAoc2V0cSBpc2VhcmNoLXlhbmstZmxhZyB0KQogIChpc2VhcmNoLXByb2Nlc3Mtc2VhcmNo LXN0cmluZwogICBzdHJpbmcgKG1hcGNvbmNhdCAnaXNlYXJjaC10ZXh0LWNoYXItZGVzY3JpcHRp b24gc3RyaW5nICIiKSkpCgooZGVmdW4gaXNlYXJjaC15YW5rLWtpbGwgKCkKICAiUHVsbCBzdHJp bmcgZnJvbSBraWxsIHJpbmcgaW50byBzZWFyY2ggc3RyaW5nLiIKICAoaW50ZXJhY3RpdmUpCiAg KHVubGVzcyBpc2VhcmNoLW1vZGUgKGlzZWFyY2gtbW9kZSB0KSkKICAoaXNlYXJjaC15YW5rLXN0 cmluZyAoY3VycmVudC1raWxsIDApKSkKCihkZWZ1biBpc2VhcmNoLXlhbmstcG9wICgpCiAgIlJl cGxhY2UganVzdC15YW5rZWQgc2VhcmNoIHN0cmluZyB3aXRoIHByZXZpb3VzbHkga2lsbGVkIHN0 cmluZy4iCiAgKGludGVyYWN0aXZlKQogIChpZiAobm90IChtZW1xIGxhc3QtY29tbWFuZCAnKGlz ZWFyY2gteWFuay1raWxsIGlzZWFyY2gteWFuay1wb3ApKSkKICAgICAgOzsgRmFsbCBiYWNrIG9u IGBpc2VhcmNoLXlhbmsta2lsbCcgZm9yIHRoZSBiZW5lZml0cyBvZiBwZW9wbGUKICAgICAgOzsg d2hvIGFyZSB1c2VkIHRvIHRoZSBvbGQgYmVoYXZpb3Igb2YgYE0teScgaW4gaXNlYXJjaCBtb2Rl LiBJbgogICAgICA7OyBmdXR1cmUsIHRoaXMgZmFsbGJhY2sgbWF5IGJlIGNoYW5nZWQgaWYgd2Ug ZXZlciBjaGFuZ2UKICAgICAgOzsgYHlhbmstcG9wJyB0byBkbyBzb21ldGhpbmcgbGlrZSB0aGUg a2lsbC1yaW5nLWJyb3dzZXIuCiAgICAgIChpc2VhcmNoLXlhbmsta2lsbCkKICAgIChpc2VhcmNo LXBvcC1zdGF0ZSkKICAgIChpc2VhcmNoLXlhbmstc3RyaW5nIChjdXJyZW50LWtpbGwgMSkpKSkK CihkZWZ1biBpc2VhcmNoLXlhbmsteC1zZWxlY3Rpb24gKCkKICAiUHVsbCBjdXJyZW50IFggc2Vs ZWN0aW9uIGludG8gc2VhcmNoIHN0cmluZy4iCiAgKGludGVyYWN0aXZlKQogIChpc2VhcmNoLXlh bmstc3RyaW5nIChndWktZ2V0LXNlbGVjdGlvbikpCiAgOzsgSWYgYGd1aS1nZXQtc2VsZWN0aW9u JyByZXR1cm5lZCB0aGUgdGV4dCBmcm9tIHRoZSBhY3RpdmUgcmVnaW9uLAogIDs7IHRoZW4gaXQg InVzZWQiIHRoZSBtYXJrIHdoaWNoIHdlIHNob3VsZCBoZW5jZSBkZWFjdGl2YXRlLgogICh3aGVu IHNlbGVjdC1hY3RpdmUtcmVnaW9ucyAoZGVhY3RpdmF0ZS1tYXJrKSkpCgoKKGRlZnVuIGlzZWFy Y2gtbW91c2UtMiAoY2xpY2spCiAgIkhhbmRsZSBtb3VzZS0yIGluIElzZWFyY2ggbW9kZS4KRm9y IGEgY2xpY2sgaW4gdGhlIGVjaG8gYXJlYSwgaW52b2tlIGBpc2VhcmNoLXlhbmsteC1zZWxlY3Rp b24nLgpPdGhlcndpc2UgaW52b2tlIHdoYXRldmVyIHRoZSBjYWxsaW5nIG1vdXNlLTIgY29tbWFu ZCBzZXF1ZW5jZQppcyBib3VuZCB0byBvdXRzaWRlIG9mIElzZWFyY2guIgogIChpbnRlcmFjdGl2 ZSAiZSIpCiAgKGxldCAoKHcgKHBvc24td2luZG93IChldmVudC1zdGFydCBjbGljaykpKQogICAg ICAgIChiaW5kaW5nIChsZXQgKChvdmVycmlkaW5nLXRlcm1pbmFsLWxvY2FsLW1hcCBuaWwpKQog ICAgICAgICAgICAgICAgICAgKGtleS1iaW5kaW5nICh0aGlzLWNvbW1hbmQta2V5cy12ZWN0b3Ip IHQpKSkpCiAgICAoaWYgKGFuZCAod2luZG93LW1pbmlidWZmZXItcCB3KQoJICAgICAobm90ICht aW5pYnVmZmVyLXdpbmRvdy1hY3RpdmUtcCB3KSkpIDsgaW4gZWNobyBhcmVhCgkoaXNlYXJjaC15 YW5rLXgtc2VsZWN0aW9uKQogICAgICAod2hlbiAoZnVuY3Rpb25wIGJpbmRpbmcpCgkoY2FsbC1p bnRlcmFjdGl2ZWx5IGJpbmRpbmcpKSkpKQoKKGRlY2xhcmUtZnVuY3Rpb24geHRlcm0tLXBhc3Rl ZC10ZXh0ICJ0ZXJtL3h0ZXJtIiAoKSkKCihkZWZ1biBpc2VhcmNoLXh0ZXJtLXBhc3RlICgpCiAg IlB1bGwgdGVybWluYWwgcGFzdGUgaW50byBzZWFyY2ggc3RyaW5nLiIKICAoaW50ZXJhY3RpdmUp CiAgKGlzZWFyY2gteWFuay1zdHJpbmcgKHh0ZXJtLS1wYXN0ZWQtdGV4dCkpKQoKKGRlZnVuIGlz ZWFyY2gteWFuay1pbnRlcm5hbCAoanVtcGZvcm0pCiAgIlB1bGwgdGhlIHRleHQgZnJvbSBwb2lu dCB0byB0aGUgcG9pbnQgcmVhY2hlZCBieSBKVU1QRk9STS4KSlVNUEZPUk0gaXMgYSBsYW1iZGEg ZXhwcmVzc2lvbiB0aGF0IHRha2VzIG5vIGFyZ3VtZW50cyBhbmQgcmV0dXJucwphIGJ1ZmZlciBw b3NpdGlvbiwgcG9zc2libHkgaGF2aW5nIG1vdmVkIHBvaW50IHRvIHRoYXQgcG9zaXRpb24uCkZv ciBleGFtcGxlLCBpdCBtaWdodCBtb3ZlIHBvaW50IGZvcndhcmQgYnkgYSB3b3JkIGFuZCByZXR1 cm4gcG9pbnQsCm9yIGl0IG1pZ2h0IHJldHVybiB0aGUgcG9zaXRpb24gb2YgdGhlIGVuZCBvZiB0 aGUgbGluZS4iCiAgKGlzZWFyY2gteWFuay1zdHJpbmcKICAgKHNhdmUtZXhjdXJzaW9uCiAgICAg KGFuZCAobm90IGlzZWFyY2gtZm9yd2FyZCkgaXNlYXJjaC1vdGhlci1lbmQKCSAgKGdvdG8tY2hh ciBpc2VhcmNoLW90aGVyLWVuZCkpCiAgICAgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGll cyAocG9pbnQpIChmdW5jYWxsIGp1bXBmb3JtKSkpKSkKCihkZWZ1biBpc2VhcmNoLXlhbmstY2hh ci1pbi1taW5pYnVmZmVyICgmb3B0aW9uYWwgYXJnKQogICJQdWxsIG5leHQgY2hhcmFjdGVyIGZy b20gYnVmZmVyIGludG8gZW5kIG9mIHNlYXJjaCBzdHJpbmcgaW4gbWluaWJ1ZmZlci4iCiAgKGlu dGVyYWN0aXZlICJwIikKICAoaWYgKGVvYnApCiAgICAgIChpbnNlcnQKICAgICAgICh3aXRoLWN1 cnJlbnQtYnVmZmVyIChjYWRyIChidWZmZXItbGlzdCkpCiAgICAgICAgIChidWZmZXItc3Vic3Ry aW5nLW5vLXByb3BlcnRpZXMKICAgICAgICAgIChwb2ludCkgKHByb2duIChmb3J3YXJkLWNoYXIg YXJnKSAocG9pbnQpKSkpKQogICAgKGZvcndhcmQtY2hhciBhcmcpKSkKCihkZWZ1biBpc2VhcmNo LXlhbmstY2hhciAoJm9wdGlvbmFsIGFyZykKICAiUHVsbCBuZXh0IGNoYXJhY3RlciBmcm9tIGJ1 ZmZlciBpbnRvIHNlYXJjaCBzdHJpbmcuCklmIG9wdGlvbmFsIEFSRyBpcyBub24tbmlsLCBwdWxs IGluIHRoZSBuZXh0IEFSRyBjaGFyYWN0ZXJzLiIKICAoaW50ZXJhY3RpdmUgInAiKQogIChpc2Vh cmNoLXlhbmstaW50ZXJuYWwgKGxhbWJkYSAoKSAoZm9yd2FyZC1jaGFyIGFyZykgKHBvaW50KSkp KQoKKGRlZnVuIGlzZWFyY2gtLXlhbmstY2hhci1vci1zeW50YXggKHN5bnRheC1saXN0IGZuKQog IChpc2VhcmNoLXlhbmstaW50ZXJuYWwKICAgKGxhbWJkYSAoKQogICAgIChpZiAob3IgKG1lbXEg KGNoYXItc3ludGF4IChvciAoY2hhci1hZnRlcikgMCkpIHN5bnRheC1saXN0KQogICAgICAgICAg ICAgKG1lbXEgKGNoYXItc3ludGF4IChvciAoY2hhci1hZnRlciAoMSsgKHBvaW50KSkpIDApKQog ICAgICAgICAgICAgICAgICAgc3ludGF4LWxpc3QpKQoJIChmdW5jYWxsIGZuIDEpCiAgICAgICAo Zm9yd2FyZC1jaGFyIDEpKQogICAgIChwb2ludCkpKSkKCihkZWZ1biBpc2VhcmNoLXlhbmstd29y ZC1vci1jaGFyICgpCiAgIlB1bGwgbmV4dCBjaGFyYWN0ZXIgb3Igd29yZCBmcm9tIGJ1ZmZlciBp bnRvIHNlYXJjaCBzdHJpbmcuIgogIChpbnRlcmFjdGl2ZSkKICAoaXNlYXJjaC0teWFuay1jaGFy LW9yLXN5bnRheCAnKD93KSAnZm9yd2FyZC13b3JkKSkKCihkZWZ1biBpc2VhcmNoLXlhbmstc3lt Ym9sLW9yLWNoYXIgKCkKICAiUHVsbCBuZXh0IGNoYXJhY3RlciBvciBzeW1ib2wgZnJvbSBidWZm ZXIgaW50byBzZWFyY2ggc3RyaW5nLiIKICAoaW50ZXJhY3RpdmUpCiAgKGlzZWFyY2gtLXlhbmst Y2hhci1vci1zeW50YXggJyg/dyA/XykgJ2ZvcndhcmQtc3ltYm9sKSkKCihkZWZ1biBpc2VhcmNo LXlhbmstd29yZCAoJm9wdGlvbmFsIGFyZykKICAiUHVsbCBuZXh0IHdvcmQgZnJvbSBidWZmZXIg aW50byBzZWFyY2ggc3RyaW5nLgpJZiBvcHRpb25hbCBBUkcgaXMgbm9uLW5pbCwgcHVsbCBpbiB0 aGUgbmV4dCBBUkcgd29yZHMuIgogIChpbnRlcmFjdGl2ZSAicCIpCiAgKGlzZWFyY2gteWFuay1p bnRlcm5hbCAobGFtYmRhICgpIChmb3J3YXJkLXdvcmQgYXJnKSAocG9pbnQpKSkpCgooZGVmdW4g aXNlYXJjaC15YW5rLWxpbmUgKCZvcHRpb25hbCBhcmcpCiAgIlB1bGwgcmVzdCBvZiBsaW5lIGZy b20gYnVmZmVyIGludG8gc2VhcmNoIHN0cmluZy4KSWYgb3B0aW9uYWwgQVJHIGlzIG5vbi1uaWws IHlhbmsgdGhlIG5leHQgQVJHIGxpbmVzLiIKICAoaW50ZXJhY3RpdmUgInAiKQogIChpc2VhcmNo LXlhbmstaW50ZXJuYWwKICAgKGxhbWJkYSAoKSAobGV0ICgoaW5oaWJpdC1maWVsZC10ZXh0LW1v dGlvbiB0KSkKCQkobGluZS1lbmQtcG9zaXRpb24gKGlmIChlb2xwKSAoMSsgYXJnKSBhcmcpKSkp KSkKCihkZWZ1biBpc2VhcmNoLWNoYXItYnktbmFtZSAoJm9wdGlvbmFsIGNvdW50KQogICJSZWFk IGEgY2hhcmFjdGVyIGJ5IGl0cyBVbmljb2RlIG5hbWUgYW5kIGFkZCBpdCB0byB0aGUgc2VhcmNo IHN0cmluZy4KQ29tcGxldGlvbiBpcyBhdmFpbGFibGUgbGlrZSBpbiBgcmVhZC1jaGFyLWJ5LW5h bWUnIHVzZWQgYnkgYGluc2VydC1jaGFyJy4KV2l0aCBhcmd1bWVudCwgYWRkIENPVU5UIGNvcGll cyBvZiB0aGUgY2hhcmFjdGVyLiIKICAoaW50ZXJhY3RpdmUgInAiKQogICh3aXRoLWlzZWFyY2gt c3VzcGVuZGVkCiAgIChsZXQgKChjaGFyIChyZWFkLWNoYXItYnktbmFtZSAiQWRkIGNoYXJhY3Rl ciB0byBzZWFyY2ggKFVuaWNvZGUgbmFtZSBvciBoZXgpOiAiKSkpCiAgICAgKHdoZW4gY2hhcgog ICAgICAgKGxldCAoKHN0cmluZyAoaWYgKGFuZCAoaW50ZWdlcnAgY291bnQpICg+IGNvdW50IDEp KQoJCQkgKG1ha2Utc3RyaW5nIGNvdW50IGNoYXIpCgkJICAgICAgIChjaGFyLXRvLXN0cmluZyBj aGFyKSkpKQoJIChzZXRxIGlzZWFyY2gtbmV3LXN0cmluZyAoY29uY2F0IGlzZWFyY2gtc3RyaW5n IHN0cmluZykKCSAgICAgICBpc2VhcmNoLW5ldy1tZXNzYWdlIChjb25jYXQgaXNlYXJjaC1tZXNz YWdlCgkJCQkJICAgKG1hcGNvbmNhdCAnaXNlYXJjaC10ZXh0LWNoYXItZGVzY3JpcHRpb24KCQkJ CQkJICAgICAgc3RyaW5nICIiKSkpKSkpKSkKCihkZWZ1biBpc2VhcmNoLXNlYXJjaC1hbmQtdXBk YXRlICgpCiAgOzsgRG8gdGhlIHNlYXJjaCBhbmQgdXBkYXRlIHRoZSBkaXNwbGF5LgogICh3aGVu IChvciBpc2VhcmNoLXN1Y2Nlc3MKCSAgICA7OyBVbnN1Y2Nlc3NmdWwgcmVnZXhwIHNlYXJjaCBt YXkgYmVjb21lIHN1Y2Nlc3NmdWwgYnkKCSAgICA7OyBhZGRpdGlvbiBvZiBjaGFyYWN0ZXJzIHdo aWNoIG1ha2UgaXNlYXJjaC1zdHJpbmcgdmFsaWQKCSAgICBpc2VhcmNoLXJlZ2V4cAoJICAgIDs7 IElmIHRoZSBzdHJpbmcgd2FzIGZvdW5kIGJ1dCB3YXMgY29tcGxldGVseSBpbnZpc2libGUsCgkg ICAgOzsgaXQgbWlnaHQgbm93IGJlIHBhcnRseSB2aXNpYmxlLCBzbyB0cnkgYWdhaW4uCgkgICAg KHByb2cxIGlzZWFyY2gtaGlkZGVuIChzZXRxIGlzZWFyY2gtaGlkZGVuIG5pbCkpKQogICAgOzsg SW4gcmV2ZXJzZSBzZWFyY2gsIGFkZGluZyBzdHVmZiBhdAogICAgOzsgdGhlIGVuZCBtYXkgY2F1 c2UgemVybyBvciBtYW55IG1vcmUgY2hhcnMgdG8gYmUKICAgIDs7IG1hdGNoZWQsIGluIHRoZSBz dHJpbmcgZm9sbG93aW5nIHBvaW50LgogICAgOzsgQWxsb3cgYWxsIHRob3NlIHBvc3NpYmlsaXRp ZXMgd2l0aG91dCBtb3ZpbmcgcG9pbnQgYXMKICAgIDs7IGxvbmcgYXMgdGhlIG1hdGNoIGRvZXMg bm90IGV4dGVuZCBwYXN0IHNlYXJjaCBvcmlnaW4uCiAgICAoaWYgKGFuZCAobm90IGlzZWFyY2gt Zm9yd2FyZCkgKG5vdCBpc2VhcmNoLWFkanVzdGVkKQoJICAgICAoY29uZGl0aW9uLWNhc2UgKCkK CQkgKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggaXNlYXJjaC1jYXNlLWZvbGQtc2VhcmNoKSkKCQkg ICAoaWYgKGFuZCAoZXEgY2FzZS1mb2xkLXNlYXJjaCB0KSBzZWFyY2gtdXBwZXItY2FzZSkKCQkg ICAgICAgKHNldHEgY2FzZS1mb2xkLXNlYXJjaAoJCQkgICAgIChpc2VhcmNoLW5vLXVwcGVyLWNh c2UtcCBpc2VhcmNoLXN0cmluZyBpc2VhcmNoLXJlZ2V4cCkpKQoJCSAgIChsb29raW5nLWF0IChj b25kCgkJCQkoKGZ1bmN0aW9ucCBpc2VhcmNoLXJlZ2V4cC1mdW5jdGlvbikKCQkJCSAoZnVuY2Fs bCBpc2VhcmNoLXJlZ2V4cC1mdW5jdGlvbiBpc2VhcmNoLXN0cmluZyB0KSkKCQkJCShpc2VhcmNo LXJlZ2V4cC1mdW5jdGlvbiAod29yZC1zZWFyY2gtcmVnZXhwIGlzZWFyY2gtc3RyaW5nIHQpKQoJ CQkJKGlzZWFyY2gtcmVnZXhwIGlzZWFyY2gtc3RyaW5nKQoJCQkJKHQgKHJlZ2V4cC1xdW90ZSBp c2VhcmNoLXN0cmluZykpKSkpCgkgICAgICAgKGVycm9yIG5pbCkpCgkgICAgIChvciBpc2VhcmNo LXlhbmstZmxhZwoJCSAoPD0gKG1hdGNoLWVuZCAwKQoJCSAgICAgKG1pbiBpc2VhcmNoLW9wb2lu dCBpc2VhcmNoLWJhcnJpZXIpKSkpCgkocHJvZ24KCSAgKHNldHEgaXNlYXJjaC1zdWNjZXNzIHQK CQlpc2VhcmNoLWVycm9yIG5pbAoJCWlzZWFyY2gtb3RoZXItZW5kIChtYXRjaC1lbmQgMCkpCgkg IChpZiAoYW5kIChlcSBpc2VhcmNoLWNhc2UtZm9sZC1zZWFyY2ggdCkgc2VhcmNoLXVwcGVyLWNh c2UpCgkgICAgICAoc2V0cSBpc2VhcmNoLWNhc2UtZm9sZC1zZWFyY2gKCQkgICAgKGlzZWFyY2gt bm8tdXBwZXItY2FzZS1wIGlzZWFyY2gtc3RyaW5nIGlzZWFyY2gtcmVnZXhwKSkpKQogICAgICA7 OyBOb3QgcmVnZXhwLCBub3QgcmV2ZXJzZSwgb3Igbm8gbWF0Y2ggYXQgcG9pbnQuCiAgICAgIDs7 IERvIHRoZSBmb2xsb3dpbmcgYmVmb3JlIG1vdmluZyBwb2ludC4KICAgICAgKGZ1bmNhbGwgKG9y IGlzZWFyY2gtbWVzc2FnZS1mdW5jdGlvbiAjJ2lzZWFyY2gtbWVzc2FnZSkgbmlsIHQpCiAgICAg IChpZiAoYW5kIGlzZWFyY2gtb3RoZXItZW5kIChub3QgaXNlYXJjaC1hZGp1c3RlZCkpCgkgIChn b3RvLWNoYXIgKGlmIGlzZWFyY2gtZm9yd2FyZCBpc2VhcmNoLW90aGVyLWVuZAoJCSAgICAgICAo bWluIGlzZWFyY2gtb3BvaW50CgkJCSAgICBpc2VhcmNoLWJhcnJpZXIKCQkJICAgICgxKyBpc2Vh cmNoLW90aGVyLWVuZCkpKSkpCiAgICAgIChpc2VhcmNoLXNlYXJjaCkKICAgICAgKSkKICAoaXNl YXJjaC1wdXNoLXN0YXRlKQogIChpZiBpc2VhcmNoLW9wLWZ1biAoZnVuY2FsbCBpc2VhcmNoLW9w LWZ1bikpCiAgKGlzZWFyY2gtdXBkYXRlKSkKCgo7OyAqLCA/LCB9LCBhbmQgfCBjaGFycyBjYW4g bWFrZSBhIHJlZ2V4cCBtb3JlIGxpYmVyYWwuCjs7IFRoZXkgY2FuIG1ha2UgYSByZWdleHAgbWF0 Y2ggc29vbmVyIG9yIG1ha2UgaXQgc3VjY2VlZCBpbnN0ZWFkIG9mIGZhaWxpbmcuCjs7IFNvIGdv IGJhY2sgdG8gcGxhY2UgbGFzdCBzdWNjZXNzZnVsIHNlYXJjaCBzdGFydGVkCjs7IG9yIHRvIHRo ZSBsYXN0IF5TL15SIChiYXJyaWVyKSwgd2hpY2hldmVyIGlzIG5lYXJlci4KOzsgKyBuZWVkcyBu byBzcGVjaWFsIGhhbmRsaW5nIGJlY2F1c2UgdGhlIHN0cmluZyBtdXN0IG1hdGNoIGF0IGxlYXN0 IG9uY2UuCgooZGVmdW4gaXNlYXJjaC1iYWNrc2xhc2ggKHN0cikKICAiUmV0dXJuIHQgaWYgU1RS IGVuZHMgaW4gYW4gb2RkIG51bWJlciBvZiBiYWNrc2xhc2hlcy4iCiAgKD0gKG1vZCAoLSAobGVu Z3RoIHN0cikgKHN0cmluZy1tYXRjaCAiXFxcXCpcXCciIHN0cikpIDIpIDEpKQoKKGRlZnVuIGlz ZWFyY2gtZmFsbGJhY2sgKHdhbnQtYmFja3NsYXNoICZvcHRpb25hbCBhbGxvdy1pbnZhbGlkIHRv LWJhcnJpZXIpCiAgIlJldHVybiBwb2ludCB0byBwcmV2aW91cyBzdWNjZXNzZnVsIG1hdGNoIHRv IGFsbG93IHJlZ2V4cCBsaWJlcmFsaXphdGlvbi4KXFw8aXNlYXJjaC1tb2RlLW1hcD4KUmVzcGVj dHMgXFxbaXNlYXJjaC1yZXBlYXQtZm9yd2FyZF0gYW5kIFxcW2lzZWFyY2gtcmVwZWF0LWJhY2t3 YXJkXSBieSBcCnN0b3BwaW5nIGF0IGBpc2VhcmNoLWJhcnJpZXInIGFzIG5lZWRlZC4KCkRvIG5v dGhpbmcgaWYgYSBiYWNrc2xhc2ggaXMgZXNjYXBpbmcgdGhlIGxpYmVyYWxpemluZyBjaGFyYWN0 ZXIuCklmIFdBTlQtQkFDS1NMQVNIIGlzIG5vbi1uaWwsIGludmVydCB0aGlzIGJlaGF2aW9yIChm b3IgXFx9IGFuZCBcXHwpLgoKRG8gbm90aGluZyBpZiByZWdleHAgaGFzIHJlY2VudGx5IGJlZW4g aW52YWxpZCB1bmxlc3Mgb3B0aW9uYWwKQUxMT1ctSU5WQUxJRCBub24tbmlsLgoKSWYgb3B0aW9u YWwgVE8tQkFSUklFUiBub24tbmlsLCBpZ25vcmUgcHJldmlvdXMgbWF0Y2hlcyBhbmQgZ28gZXhh Y3RseQp0byB0aGUgYmFycmllci4iCiAgOzsgKGVxIChub3QgYSkgKG5vdCBiKSkgbWFrZXMgYWxs IG5vbi1uaWwgdmFsdWVzIGVxdWl2YWxlbnQKICAod2hlbiAoYW5kIGlzZWFyY2gtcmVnZXhwIChl cSAobm90IChpc2VhcmNoLWJhY2tzbGFzaCBpc2VhcmNoLXN0cmluZykpCgkJCQkobm90IHdhbnQt YmFja3NsYXNoKSkKCSAgICAgOzsgV2UgaGF2ZSB0byBjaGVjayAyIHN0YWNrIGZyYW1lcyBiZWNh dXNlIHRoZSBsYXN0IG1pZ2h0IGJlCgkgICAgIDs7IGludmFsaWQganVzdCBiZWNhdXNlIG9mIGEg YmFja3NsYXNoLgoJICAgICAob3IgKG5vdCBpc2VhcmNoLWVycm9yKQoJCSAobm90IChpc2VhcmNo LS1zdGF0ZS1lcnJvciAoY2FkciBpc2VhcmNoLWNtZHMpKSkKCQkgYWxsb3ctaW52YWxpZCkpCiAg ICAoaWYgdG8tYmFycmllcgoJKHByb2duIChnb3RvLWNoYXIgaXNlYXJjaC1iYXJyaWVyKQoJICAg ICAgIChzZXRxIGlzZWFyY2gtYWRqdXN0ZWQgdCkpCiAgICAgIChsZXQqICgoc3RhY2sgaXNlYXJj aC1jbWRzKQoJICAgICAocHJldmlvdXMgKGNkciBzdGFjaykpCTsgbG9va2JlbG93IGluIHRoZSBz dGFjawoJICAgICAoZnJhbWUgKGNhciBzdGFjaykpKQoJOzsgV2FsayBkb3duIHRoZSBzdGFjayBs b29raW5nIGZvciBhIHZhbGlkIHJlZ2V4cCAoYXMgb2YgY291cnNlIG9ubHkKCTs7IHRoZXkgY2Fu IGJlIHRoZSBwcmV2aW91cyBzdWNjZXNzZnVsIG1hdGNoKTsgdGhpcyBjb252ZW5pZW50bHkKCTs7 IHJlbW92ZXMgYWxsIGJyYWNrZXQtc2V0cyBhbmQgZ3JvdXBzIHRoYXQgbWlnaHQgYmUgaW4gdGhl IHdheSwgYXMKCTs7IHdlbGwgYXMgcGFydGlhbCBce1x9IGNvbnN0cnVjdHMgdGhhdCB0aGUgY29k ZSBiZWxvdyBsZWF2ZXMgYmVoaW5kLgoJOzsgQWxzbyBza2lwIG92ZXIgcG9zdGZpeCBvcGVyYXRv cnMgLS0gdGhvdWdoIGhvcnJpZCwKCTs7ICdhYj9cezUsNlx9K1x7MSwyXH0qJyBpcyBwZXJmZWN0 bHkgdmFsaWQuCgkod2hpbGUgKGFuZCBwcmV2aW91cwoJCSAgICAob3IgKGlzZWFyY2gtLXN0YXRl LWVycm9yIGZyYW1lKQoJCQkobGV0KiAoKHN0cmluZyAoaXNlYXJjaC0tc3RhdGUtc3RyaW5nIGZy YW1lKSkKCQkJICAgICAgIChsY2hhciAoYXJlZiBzdHJpbmcgKDEtIChsZW5ndGggc3RyaW5nKSkp KSkKCQkJICA7OyBUaGUgb3BlcmF0b3JzIGFyZW4ndCBhbHdheXMgb3BlcmF0b3JzOyBjaGVjawoJ CQkgIDs7IGJhY2tzbGFzaGVzLiAgVGhpcyBkb2Vzbid0IGhhbmRsZSB0aGUgY2FzZSBvZgoJCQkg IDs7IG9wZXJhdG9ycyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSByZWdleHAgbm90CgkJCSAgOzsg YmVpbmcgc3BlY2lhbCwgYnV0IHRoZW4gd2Ugc2hvdWxkIGZhbGwgYmFjayB0bwoJCQkgIDs7IHRo ZSBiYXJyaWVyIGFueXdheSBiZWNhdXNlIGl0J3MgYWxsIG9wdGlvbmFsLgoJCQkgIChpZiAoaXNl YXJjaC1iYWNrc2xhc2gKCQkJICAgICAgIChpc2VhcmNoLS1zdGF0ZS1zdHJpbmcgKGNhciBwcmV2 aW91cykpKQoJCQkgICAgICAoZXEgbGNoYXIgP1x9KQoJCQkgICAgKG1lbXEgbGNoYXIgJyg/KiA/ PyA/KykpKSkpKQoJICAoc2V0cSBzdGFjayBwcmV2aW91cyBwcmV2aW91cyAoY2RyIHByZXZpb3Vz KSBmcmFtZSAoY2FyIHN0YWNrKSkpCgkod2hlbiBzdGFjawoJICA7OyBgc3RhY2snIG5vdyByZWZl cnMgdGhlIG1vc3QgcmVjZW50IHZhbGlkIHJlZ2V4cCB0aGF0IGlzIG5vdCBhdAoJICA7OyBhbGwg b3B0aW9uYWwgaW4gaXRzIGxhc3QgdGVybS4gIE5vdyBkaWcgb25lIGxldmVsIGRlZXBlciBhbmQg ZmluZAoJICA7OyB3aGF0IG1hdGNoZWQgYmVmb3JlIHRoYXQuCgkgIChsZXQgKChsYXN0LW90aGVy LWVuZAoJCSAob3IgKGFuZCAoY2FyIHByZXZpb3VzKQoJCQkgIChpc2VhcmNoLS1zdGF0ZS1vdGhl ci1lbmQgKGNhciBwcmV2aW91cykpKQoJCSAgICAgaXNlYXJjaC1iYXJyaWVyKSkpCgkgICAgKGdv dG8tY2hhciAoaWYgaXNlYXJjaC1mb3J3YXJkCgkJCSAgIChtYXggbGFzdC1vdGhlci1lbmQgaXNl YXJjaC1iYXJyaWVyKQoJCQkgKG1pbiBsYXN0LW90aGVyLWVuZCBpc2VhcmNoLWJhcnJpZXIpKSkK CSAgICAoc2V0cSBpc2VhcmNoLWFkanVzdGVkIHQpKSkpKSkpCgo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Owo7OyBzY3JvbGxpbmcgd2l0aGluIElzZWFyY2ggbW9kZS4gIEFsYW4gTWFja2VuemllIChh Y21AbXVjLmRlKSwgMjAwMy8yLzI0Cjs7Cjs7IFRoZSBpZGVhIGhlcmUgaXMgdGhhdCBjZXJ0YWlu IHZlcnRpY2FsIHNjcm9sbGluZyBjb21tYW5kcyAobGlrZSBDLWwKOzsgYHJlY2VudGVyJykgc2hv dWxkIGJlIHVzYWJsZSBXSVRISU4gSXNlYXJjaCBtb2RlLiAgRm9yIGEgY29tbWFuZCB0byBiZQo7 OyBzdWl0YWJsZSwgaXQgbXVzdCBOT1QgYWx0ZXIgdGhlIGJ1ZmZlciwgc3dhcCB0byBhbm90aGVy IGJ1ZmZlciBvciBmcmFtZSwKOzsgdGFtcGVyIHdpdGggaXNlYXJjaCdzIHN0YXRlLCBvciBtb3Zl IHBvaW50LiAgSXQgaXMgdW5hY2NlcHRhYmxlIGZvciB0aGUKOzsgc2VhcmNoIHN0cmluZyB0byBi ZSBzY3JvbGxlZCBvdXQgb2YgdGhlIGN1cnJlbnQgd2luZG93LiAgSWYgYSBjb21tYW5kCjs7IGF0 dGVtcHRzIHRoaXMsIHdlIHNjcm9sbCB0aGUgdGV4dCBiYWNrIGFnYWluLgo7Owo7OyBXZSBpbXBs ZW1lbnQgdGhpcyBmZWF0dXJlIHdpdGggYSBwcm9wZXJ0eSBjYWxsZWQgYGlzZWFyY2gtc2Nyb2xs Jy4KOzsgSWYgYSBjb21tYW5kJ3Mgc3ltYm9sIGhhcyB0aGUgdmFsdWUgdCBmb3IgdGhpcyBwcm9w ZXJ0eSBvciBmb3IgdGhlCjs7IGBzY3JvbGwtY29tbWFuZCcgcHJvcGVydHksIGl0IGlzIGEgc2Ny b2xsaW5nIGNvbW1hbmQuICBUaGUgZmVhdHVyZQo7OyBuZWVkcyB0byBiZSBlbmFibGVkIGJ5IHNl dHRpbmcgdGhlIGN1c3RvbWl6YWJsZSB2YXJpYWJsZQo7OyBgaXNlYXJjaC1hbGxvdy1zY3JvbGwn IHRvIGEgbm9uLW5pbCB2YWx1ZS4KOzsKOzsgVGhlIHVuaXZlcnNhbCBhcmd1bWVudCBjb21tYW5k cyAoZS5nLiBDLXUpIGluIHNpbXBsZS5lbCBhcmUgbWFya2VkCjs7IGFzIHNjcm9sbGluZyBjb21t YW5kcywgYW5kIGlzZWFyY2guZWwgaGFzIGJlZW4gYW1lbmRlZCB0byBhbGxvdwo7OyBwcmVmaXgg YXJndW1lbnRzIHRvIGJlIHBhc3NlZCB0aHJvdWdoIHRvIHNjcm9sbGluZyBjb21tYW5kcy4gIFRo dXMKOzsgTS0wIEMtbCB3aWxsIHNjcm9sbCBwb2ludCB0byB0aGUgdG9wIG9mIHRoZSB3aW5kb3cu Cjs7Cjs7IEhvcml6b250YWwgc2Nyb2xsaW5nIGNvbW1hbmRzIGFyZSBjdXJyZW50bHkgbm90IGNh dGVyZWQgZm9yLgo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OwoKOzsgU2V0IHRoZSBpc2VhcmNoLXNj cm9sbCBwcm9wZXJ0eSBvbiBzb21lIHN0YW5kYXJkIGZ1bmN0aW9uczoKOzsgU2Nyb2xsLWJhciBm dW5jdGlvbnM6CihpZiAoZmJvdW5kcCAnc2Nyb2xsLWJhci10b29sa2l0LXNjcm9sbCkKICAgIChw dXQgJ3Njcm9sbC1iYXItdG9vbGtpdC1zY3JvbGwgJ2lzZWFyY2gtc2Nyb2xsIHQpKQooaWYgKGZi b3VuZHAgJ3czMi1oYW5kbGUtc2Nyb2xsLWJhci1ldmVudCkKICAgIChwdXQgJ3czMi1oYW5kbGUt c2Nyb2xsLWJhci1ldmVudCAnaXNlYXJjaC1zY3JvbGwgdCkpCgo7OyBDb21tYW5kcyB3aGljaCBz Y3JvbGwgdGhlIHdpbmRvdyAoc29tZSBzY3JvbGwgY29tbWFuZHMKOzsgYWxyZWFkeSBoYXZlIHRo ZSBgc2Nyb2xsLWNvbW1hbmQnIHByb3BlcnR5IG9uIHRoZW0pOgoocHV0ICdyZWNlbnRlciAnaXNl YXJjaC1zY3JvbGwgdCkKKHB1dCAncmVjZW50ZXItdG9wLWJvdHRvbSAnaXNlYXJjaC1zY3JvbGwg dCkKKHB1dCAncmVwb3NpdGlvbi13aW5kb3cgJ2lzZWFyY2gtc2Nyb2xsIHQpCgo7OyBDb21tYW5k cyB3aGljaCBhY3Qgb24gdGhlIG90aGVyIHdpbmRvdwoocHV0ICdsaXN0LWJ1ZmZlcnMgJ2lzZWFy Y2gtc2Nyb2xsIHQpCihwdXQgJ3Njcm9sbC1vdGhlci13aW5kb3cgJ2lzZWFyY2gtc2Nyb2xsIHQp CihwdXQgJ3Njcm9sbC1vdGhlci13aW5kb3ctZG93biAnaXNlYXJjaC1zY3JvbGwgdCkKKHB1dCAn YmVnaW5uaW5nLW9mLWJ1ZmZlci1vdGhlci13aW5kb3cgJ2lzZWFyY2gtc2Nyb2xsIHQpCihwdXQg J2VuZC1vZi1idWZmZXItb3RoZXItd2luZG93ICdpc2VhcmNoLXNjcm9sbCB0KQoKOzsgQ29tbWFu ZHMgd2hpY2ggY2hhbmdlIHRoZSB3aW5kb3cgbGF5b3V0CihwdXQgJ2RlbGV0ZS1vdGhlci13aW5k b3dzICdpc2VhcmNoLXNjcm9sbCB0KQoocHV0ICdiYWxhbmNlLXdpbmRvd3MgJ2lzZWFyY2gtc2Ny b2xsIHQpCihwdXQgJ3NwbGl0LXdpbmRvdy1yaWdodCAnaXNlYXJjaC1zY3JvbGwgdCkKKHB1dCAn c3BsaXQtd2luZG93LWJlbG93ICdpc2VhcmNoLXNjcm9sbCB0KQoocHV0ICdlbmxhcmdlLXdpbmRv dyAnaXNlYXJjaC1zY3JvbGwgdCkKCjs7IEFsaWFzZXMgZm9yIHNwbGl0LXdpbmRvdy0qCihwdXQg J3NwbGl0LXdpbmRvdy12ZXJ0aWNhbGx5ICdpc2VhcmNoLXNjcm9sbCB0KQoocHV0ICdzcGxpdC13 aW5kb3ctaG9yaXpvbnRhbGx5ICdpc2VhcmNoLXNjcm9sbCB0KQoKOzsgVW5pdmVyc2FsIGFyZ3Vt ZW50IGNvbW1hbmRzCihwdXQgJ3VuaXZlcnNhbC1hcmd1bWVudCAnaXNlYXJjaC1zY3JvbGwgdCkK KHB1dCAndW5pdmVyc2FsLWFyZ3VtZW50LW1vcmUgJ2lzZWFyY2gtc2Nyb2xsIHQpCihwdXQgJ25l Z2F0aXZlLWFyZ3VtZW50ICdpc2VhcmNoLXNjcm9sbCB0KQoocHV0ICdkaWdpdC1hcmd1bWVudCAn aXNlYXJjaC1zY3JvbGwgdCkKCihkZWZjdXN0b20gaXNlYXJjaC1hbGxvdy1zY3JvbGwgbmlsCiAg IldoZXRoZXIgc2Nyb2xsaW5nIGlzIGFsbG93ZWQgZHVyaW5nIGluY3JlbWVudGFsIHNlYXJjaC4K SWYgbm9uLW5pbCwgc2Nyb2xsaW5nIGNvbW1hbmRzIGNhbiBiZSB1c2VkIGluIElzZWFyY2ggbW9k ZS4KSG93ZXZlciwgdGhlIGN1cnJlbnQgbWF0Y2ggd2lsbCBuZXZlciBzY3JvbGwgb2Zmc2NyZWVu LgpJZiBuaWwsIHNjcm9sbGluZyBjb21tYW5kcyB3aWxsIGZpcnN0IGNhbmNlbCBJc2VhcmNoIG1v ZGUuIgogIDp0eXBlICdib29sZWFuCiAgOmdyb3VwICdpc2VhcmNoKQoKKGRlZmN1c3RvbSBpc2Vh cmNoLWFsbG93LXByZWZpeCB0CiAgIldoZXRoZXIgcHJlZml4IGFyZ3VtZW50cyBhcmUgYWxsb3dl ZCBkdXJpbmcgaW5jcmVtZW50YWwgc2VhcmNoLgpJZiBub24tbmlsLCBlbnRlcmluZyBhIHByZWZp eCBhcmd1bWVudCB3aWxsIG5vdCB0ZXJtaW5hdGUgdGhlCnNlYXJjaC4gIFRoaXMgb3B0aW9uIGlz IGlnbm9yZWQgXChwcmVzdW1lZCB0KSB3aGVuCmBpc2VhcmNoLWFsbG93LXNjcm9sbCcgaXMgc2V0 LiIKICA6dmVyc2lvbiAiMjQuNCIKICA6dHlwZSAnYm9vbGVhbgogIDpncm91cCAnaXNlYXJjaCkK CihkZWZ1biBpc2VhcmNoLXN0cmluZy1vdXQtb2Ytd2luZG93IChpc2VhcmNoLXBvaW50KQogICJU ZXN0IHdoZXRoZXIgdGhlIHNlYXJjaCBzdHJpbmcgaXMgY3VycmVudGx5IG91dHNpZGUgb2YgdGhl IHdpbmRvdy4KUmV0dXJuIG5pbCBpZiBpdCdzIGNvbXBsZXRlbHkgdmlzaWJsZSwgb3IgaWYgcG9p bnQgaXMgdmlzaWJsZSwKdG9nZXRoZXIgd2l0aCBhcyBtdWNoIG9mIHRoZSBzZWFyY2ggc3RyaW5n IGFzIHdpbGwgZml0OyB0aGUgc3ltYm9sCmBhYm92ZScgaWYgd2UgbmVlZCB0byBzY3JvbGwgdGhl IHRleHQgZG93bndhcmRzOyB0aGUgc3ltYm9sIGBiZWxvdycsCmlmIHVwd2FyZHMuIgogIChsZXQg KCh3LXN0YXJ0ICh3aW5kb3ctZ3JvdXAtc3RhcnQpKQogICAgICAgICh3LWVuZCAod2luZG93LWdy b3VwLWVuZCBuaWwgdCkpCiAgICAgICAgKHctTDEgKHNhdmUtZXhjdXJzaW9uCiAgICAgICAgICAg ICAgICAoc2F2ZS1zZWxlY3RlZC13aW5kb3cgKG1vdmUtdG8td2luZG93LWdyb3VwLWxpbmUgMSkg KHBvaW50KSkpKQogICAgICAgICh3LUwtMSAoc2F2ZS1leGN1cnNpb24KICAgICAgICAgICAgICAg ICAoc2F2ZS1zZWxlY3RlZC13aW5kb3cgKG1vdmUtdG8td2luZG93LWdyb3VwLWxpbmUgLTEpIChw b2ludCkpKSkKICAgICAgICBzdGFydCBlbmQpICAgICAgICAgICAgICAgICAgOyBzdGFydCBhbmQg ZW5kIG9mIHNlYXJjaCBzdHJpbmcgaW4gYnVmZmVyCiAgICAoaWYgaXNlYXJjaC1mb3J3YXJkCiAg ICAgICAgKHNldHEgZW5kIGlzZWFyY2gtcG9pbnQgIHN0YXJ0IChvciBpc2VhcmNoLW90aGVyLWVu ZCBpc2VhcmNoLXBvaW50KSkKICAgICAgKHNldHEgc3RhcnQgaXNlYXJjaC1wb2ludCAgZW5kIChv ciBpc2VhcmNoLW90aGVyLWVuZCBpc2VhcmNoLXBvaW50KSkpCiAgICAoY29uZCAoKG9yIChhbmQg KD49IHN0YXJ0IHctc3RhcnQpICg8PSBlbmQgdy1lbmQpKQogICAgICAgICAgICAgICAoaWYgaXNl YXJjaC1mb3J3YXJkCiAgICAgICAgICAgICAgICAgICAoYW5kICg+PSBpc2VhcmNoLXBvaW50IHct TC0xKSAoPCBpc2VhcmNoLXBvaW50IHctZW5kKSkgOyBwb2ludCBvbiBMaW5lIC0xCiAgICAgICAg ICAgICAgICAgKGFuZCAoPj0gaXNlYXJjaC1wb2ludCB3LXN0YXJ0KSAoPCBpc2VhcmNoLXBvaW50 IHctTDEpKSkpIDsgcG9pbnQgb24gTGluZSAwCiAgICAgICAgICAgbmlsKQogICAgICAgICAgKChh bmQgKDwgc3RhcnQgdy1zdGFydCkKICAgICAgICAgICAgICAgICg8IGlzZWFyY2gtcG9pbnQgdy1M LTEpKQogICAgICAgICAgICdhYm92ZSkKICAgICAgICAgICh0ICdiZWxvdykpKSkKCihkZWZ1biBp c2VhcmNoLWJhY2staW50by13aW5kb3cgKGFib3ZlIGlzZWFyY2gtcG9pbnQpCiAgIlNjcm9sbCB0 aGUgd2luZG93IHRvIGJyaW5nIHRoZSBzZWFyY2ggc3RyaW5nIGJhY2sgaW50byB2aWV3LgpSZXN0 b3JlIHBvaW50IHRvIElTRUFSQ0gtUE9JTlQgaW4gdGhlIHByb2Nlc3MuICBBQk9WRSBpcyB0IHdo ZW4gdGhlCnNlYXJjaCBzdHJpbmcgaXMgYWJvdmUgdGhlIHRvcCBvZiB0aGUgd2luZG93LCBuaWwg d2hlbiBpdCBpcyBiZW5lYXRoCnRoZSBib3R0b20uIgogIChsZXQgKHN0YXJ0IGVuZCkKICAgIChp ZiBpc2VhcmNoLWZvcndhcmQKICAgICAgICAoc2V0cSBlbmQgaXNlYXJjaC1wb2ludCAgc3RhcnQg KG9yIGlzZWFyY2gtb3RoZXItZW5kIGlzZWFyY2gtcG9pbnQpKQogICAgICAoc2V0cSBzdGFydCBp c2VhcmNoLXBvaW50ICBlbmQgKG9yIGlzZWFyY2gtb3RoZXItZW5kIGlzZWFyY2gtcG9pbnQpKSkK ICAgIChpZiBhYm92ZQogICAgICAgIChwcm9nbgogICAgICAgICAgKGdvdG8tY2hhciBzdGFydCkK ICAgICAgICAgIChyZWNlbnRlci13aW5kb3ctZ3JvdXAgMCkKICAgICAgICAgICh3aGVuICg+PSBp c2VhcmNoLXBvaW50ICh3aW5kb3ctZ3JvdXAtZW5kIG5pbCB0KSkKICAgICAgICAgICAgKGdvdG8t Y2hhciBpc2VhcmNoLXBvaW50KQogICAgICAgICAgICAocmVjZW50ZXItd2luZG93LWdyb3VwIC0x KSkpCiAgICAgIChnb3RvLWNoYXIgZW5kKQogICAgICAocmVjZW50ZXItd2luZG93LWdyb3VwIC0x KQogICAgICAod2hlbiAoPCBpc2VhcmNoLXBvaW50ICh3aW5kb3ctZ3JvdXAtc3RhcnQpKQogICAg ICAgIChnb3RvLWNoYXIgaXNlYXJjaC1wb2ludCkKICAgICAgICAocmVjZW50ZXItd2luZG93LWdy b3VwIDApKSkpCiAgKGdvdG8tY2hhciBpc2VhcmNoLXBvaW50KSkKCihkZWZ2YXIgaXNlYXJjaC1w cmUtc2Nyb2xsLXBvaW50IG5pbCkKKGRlZnZhciBpc2VhcmNoLXByZS1tb3ZlLXBvaW50IG5pbCkK CihkZWZ1biBpc2VhcmNoLXByZS1jb21tYW5kLWhvb2sgKCkKICAiRGVjaWRlIHdoZXRoZXIgdG8g ZXhpdCBJc2VhcmNoIG1vZGUgYmVmb3JlIGV4ZWN1dGluZyB0aGUgY29tbWFuZC4KRG9uJ3QgZXhp dCBJc2VhcmNoIGlmIHRoZSBrZXkgc2VxdWVuY2UgdGhhdCBpbnZva2VkIHRoaXMgY29tbWFuZApp cyBib3VuZCBpbiBgaXNlYXJjaC1tb2RlLW1hcCcsIG9yIGlmIHRoZSBpbnZva2VkIGNvbW1hbmQg aXMKYSBwcmVmaXggYXJndW1lbnQgY29tbWFuZCAod2hlbiBgaXNlYXJjaC1hbGxvdy1wcmVmaXgn IGlzIG5vbi1uaWwpLApvciBpdCBpcyBhIHNjcm9sbGluZyBjb21tYW5kICh3aGVuIGBpc2VhcmNo LWFsbG93LXNjcm9sbCcgaXMgbm9uLW5pbCkuCk90aGVyd2lzZSwgZXhpdCBJc2VhcmNoICh3aGVu IGBzZWFyY2gtZXhpdC1vcHRpb24nIGlzIHQpCmJlZm9yZSB0aGUgY29tbWFuZCBpcyBleGVjdXRl ZCBnbG9iYWxseSB3aXRoIHRlcm1pbmF0ZWQgSXNlYXJjaC4KU2VlIG1vcmUgZm9yIG9wdGlvbnMg aW4gYHNlYXJjaC1leGl0LW9wdGlvbicuIgogIChsZXQqICgoa2V5ICh0aGlzLXNpbmdsZS1jb21t YW5kLWtleXMpKQoJIChtYWluLWV2ZW50IChhcmVmIGtleSAwKSkpCiAgICAoY29uZAogICAgIDs7 IERvbid0IGV4aXQgSXNlYXJjaCBpZiB3ZSdyZSBpbiB0aGUgbWlkZGxlIG9mIHNvbWUKICAgICA7 OyBgc2V0LXRyYW5zaWVudC1tYXAnIHRoaW5neSBsaWtlIGB1bml2ZXJzYWwtYXJndW1lbnQtLW1v ZGUnLgogICAgICgobm90IChlcSBvdmVycmlkaW5nLXRlcm1pbmFsLWxvY2FsLW1hcCBpc2VhcmNo LS1zYXZlZC1vdmVycmlkaW5nLWxvY2FsLW1hcCkpKQogICAgIDs7IERvbid0IGV4aXQgSXNlYXJj aCBmb3IgaXNlYXJjaCBrZXkgYmluZGluZ3MuCiAgICAgKChjb21tYW5kcCAobG9va3VwLWtleSBp c2VhcmNoLW1vZGUtbWFwIGtleSBuaWwpKSkKICAgICA7OyBPcHRpb25hbGx5IGVkaXQgdGhlIHNl YXJjaCBzdHJpbmcgaW5zdGVhZCBvZiBleGl0aW5nLgogICAgICgoZXEgc2VhcmNoLWV4aXQtb3B0 aW9uICdlZGl0KQogICAgICAoc2V0cSB0aGlzLWNvbW1hbmQgJ2lzZWFyY2gtZWRpdC1zdHJpbmcp KQogICAgIDs7IEhhbmRsZSBhIHNjcm9sbGluZyBmdW5jdGlvbiBvciBwcmVmaXggYXJndW1lbnQu CiAgICAgKChvciAoYW5kIGlzZWFyY2gtYWxsb3ctcHJlZml4CiAgICAgICAgICAgICAgIChtZW1x IHRoaXMtY29tbWFuZCAnKHVuaXZlcnNhbC1hcmd1bWVudCB1bml2ZXJzYWwtYXJndW1lbnQtbW9y ZQoJCQkJICAgIGRpZ2l0LWFyZ3VtZW50IG5lZ2F0aXZlLWFyZ3VtZW50KSkpCgkgIChhbmQgaXNl YXJjaC1hbGxvdy1zY3JvbGwKCSAgICAgICAoc3ltYm9scCB0aGlzLWNvbW1hbmQpCgkgICAgICAg KG9yIChlcSAoZ2V0IHRoaXMtY29tbWFuZCAnaXNlYXJjaC1zY3JvbGwpIHQpCgkJICAgKGVxIChn ZXQgdGhpcy1jb21tYW5kICdzY3JvbGwtY29tbWFuZCkgdCkpKSkKICAgICAgKHdoZW4gaXNlYXJj aC1hbGxvdy1zY3JvbGwKCShzZXRxIGlzZWFyY2gtcHJlLXNjcm9sbC1wb2ludCAocG9pbnQpKSkp CiAgICAgOzsgQSBtb3VzZSBjbGljayBvbiB0aGUgaXNlYXJjaCBtZXNzYWdlIHN0YXJ0cyBlZGl0 aW5nIHRoZSBzZWFyY2ggc3RyaW5nLgogICAgICgoYW5kIChlcSAoY2FyLXNhZmUgbWFpbi1ldmVu dCkgJ2Rvd24tbW91c2UtMSkKCSAgICh3aW5kb3ctbWluaWJ1ZmZlci1wIChwb3NuLXdpbmRvdyAo ZXZlbnQtc3RhcnQgbWFpbi1ldmVudCkpKSkKICAgICAgOzsgU3dhbGxvdyB0aGUgdXAtZXZlbnQu CiAgICAgIChyZWFkLWV2ZW50KQogICAgICAoc2V0cSB0aGlzLWNvbW1hbmQgJ2lzZWFyY2gtZWRp dC1zdHJpbmcpKQogICAgIDs7IERvbid0IHRlcm1pbmF0ZSB0aGUgc2VhcmNoIGZvciBtb3Rpb24g Y29tbWFuZHMuCiAgICAgKChvciAoYW5kIChlcSBzZWFyY2gtZXhpdC1vcHRpb24gJ21vdmUpCiAg ICAgICAgICAgICAgIChzeW1ib2xwIHRoaXMtY29tbWFuZCkKICAgICAgICAgICAgICAgKG9yIChl cSAoZ2V0IHRoaXMtY29tbWFuZCAnaXNlYXJjaC1tb3ZlKSAnZW5hYmxlZCkKICAgICAgICAgICAg ICAgICAgIChhbmQgKG5vdCAoZXEgKGdldCB0aGlzLWNvbW1hbmQgJ2lzZWFyY2gtbW92ZSkgJ2Rp c2FibGVkKSkKICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZ3AgKG50aCAxIChpbnRlcmFj dGl2ZS1mb3JtIHRoaXMtY29tbWFuZCkpKQogICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5n LW1hdGNoLXAgIl5eIiAobnRoIDEgKGludGVyYWN0aXZlLWZvcm0gdGhpcy1jb21tYW5kKSkpKSkp CiAgICAgICAgICAoYW5kIChlcSBzZWFyY2gtZXhpdC1vcHRpb24gJ3NoaWZ0LW1vdmUpCiAgICAg ICAgICAgICAgIHRoaXMtY29tbWFuZC1rZXlzLXNoaWZ0LXRyYW5zbGF0ZWQpKQogICAgICAoc2V0 cSB0aGlzLWNvbW1hbmQta2V5cy1zaGlmdC10cmFuc2xhdGVkIG5pbCkKICAgICAgKHNldHEgaXNl YXJjaC1wcmUtbW92ZS1wb2ludCAocG9pbnQpKSkKICAgICA7OyBBcHBlbmQgY29udHJvbCBjaGFy YWN0ZXJzIHRvIHRoZSBzZWFyY2ggc3RyaW5nCiAgICAgKChlcSBzZWFyY2gtZXhpdC1vcHRpb24g J2FwcGVuZCkKICAgICAgKHVubGVzcyAobWVtcSBuaWwgKG1hcGNhciAobGFtYmRhIChrKSAoY2hh cmFjdGVycCBrKSkga2V5KSkKICAgICAgICAoaXNlYXJjaC1wcm9jZXNzLXNlYXJjaC1zdHJpbmcg a2V5IGtleSkpCiAgICAgIChzZXRxIHRoaXMtY29tbWFuZCAnaWdub3JlKSkKICAgICA7OyBPdGhl ciBjaGFyYWN0ZXJzIHRlcm1pbmF0ZSB0aGUgc2VhcmNoIGFuZCBhcmUgdGhlbiBleGVjdXRlZCBu b3JtYWxseS4KICAgICAoc2VhcmNoLWV4aXQtb3B0aW9uCiAgICAgIChpc2VhcmNoLWRvbmUpCiAg ICAgIChpc2VhcmNoLWNsZWFuLW92ZXJsYXlzKSkpKSkKCihkZWZ1biBpc2VhcmNoLXBvc3QtY29t bWFuZC1ob29rICgpCiAgKGNvbmQKICAgKGlzZWFyY2gtcHJlLXNjcm9sbC1wb2ludAogICAgKGxl dCAoKGFiLWJlbCAoaXNlYXJjaC1zdHJpbmctb3V0LW9mLXdpbmRvdyBpc2VhcmNoLXByZS1zY3Jv bGwtcG9pbnQpKSkKICAgICAgKGlmIGFiLWJlbAoJICAoaXNlYXJjaC1iYWNrLWludG8td2luZG93 IChlcSBhYi1iZWwgJ2Fib3ZlKSBpc2VhcmNoLXByZS1zY3JvbGwtcG9pbnQpCgkoZ290by1jaGFy IGlzZWFyY2gtcHJlLXNjcm9sbC1wb2ludCkpKQogICAgKHNldHEgaXNlYXJjaC1wcmUtc2Nyb2xs LXBvaW50IG5pbCkKICAgIChpc2VhcmNoLXVwZGF0ZSkpCiAgICgobWVtcSBzZWFyY2gtZXhpdC1v cHRpb24gJyhtb3ZlIHNoaWZ0LW1vdmUpKQogICAgKHdoZW4gKGFuZCBpc2VhcmNoLXByZS1tb3Zl LXBvaW50CiAgICAgICAgICAgICAgIChub3QgKGVxIGlzZWFyY2gtcHJlLW1vdmUtcG9pbnQgKHBv aW50KSkpKQogICAgICAobGV0ICgoc3RyaW5nIChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRp ZXMKICAgICAgICAgICAgICAgICAgICAgKG9yIGlzZWFyY2gtb3RoZXItZW5kIGlzZWFyY2gtb3Bv aW50KSAocG9pbnQpKSkpCiAgICAgICAgKGlmIGlzZWFyY2gtcmVnZXhwIChzZXRxIHN0cmluZyAo cmVnZXhwLXF1b3RlIHN0cmluZykpKQogICAgICAgIChzZXRxIGlzZWFyY2gtc3RyaW5nIHN0cmlu ZykKICAgICAgICAoc2V0cSBpc2VhcmNoLW1lc3NhZ2UgKG1hcGNvbmNhdCAnaXNlYXJjaC10ZXh0 LWNoYXItZGVzY3JpcHRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHJpbmcgIiIpKQogICAgICAgIChzZXRxIGlzZWFyY2gteWFuay1mbGFnIHQpCiAgICAgICAg KHNldHEgaXNlYXJjaC1mb3J3YXJkICg8PSAob3IgaXNlYXJjaC1vdGhlci1lbmQgaXNlYXJjaC1v cG9pbnQpIChwb2ludCkpKQogICAgICAgICh3aGVuIGlzZWFyY2gtZm9yd2FyZAogICAgICAgICAg KGdvdG8tY2hhciBpc2VhcmNoLXByZS1tb3ZlLXBvaW50KSkKICAgICAgICAoaXNlYXJjaC1zZWFy Y2gtYW5kLXVwZGF0ZSkpKQogICAgKHNldHEgaXNlYXJjaC1wcmUtbW92ZS1wb2ludCBuaWwpKSkp CgooZGVmdW4gaXNlYXJjaC1xdW90ZS1jaGFyICgmb3B0aW9uYWwgY291bnQpCiAgIlF1b3RlIHNw ZWNpYWwgY2hhcmFjdGVycyBmb3IgaW5jcmVtZW50YWwgc2VhcmNoLgpXaXRoIGFyZ3VtZW50LCBh ZGQgQ09VTlQgY29waWVzIG9mIHRoZSBjaGFyYWN0ZXIuIgogIChpbnRlcmFjdGl2ZSAicCIpCiAg KGxldCAoKGNoYXIgKHJlYWQtcXVvdGVkLWNoYXIgKGlzZWFyY2gtbWVzc2FnZSB0KSkpKQogICAg KHVubGVzcyAoY2hhcmFjdGVycCBjaGFyKQogICAgICAodXNlci1lcnJvciAiJXMgaXMgbm90IGEg dmFsaWQgY2hhcmFjdGVyIgoJCSAgKGtleS1kZXNjcmlwdGlvbiAodmVjdG9yIGNoYXIpKSkpCiAg ICA7OyBBc3N1bWUgY2hhcmFjdGVyIGNvZGVzIDAyMDAgLSAwMzc3IHN0YW5kIGZvciBjaGFyYWN0 ZXJzIGluIHNvbWUKICAgIDs7IHNpbmdsZS1ieXRlIGNoYXJhY3RlciBzZXQsIGFuZCBjb252ZXJ0 IHRoZW0gdG8gRW1hY3MKICAgIDs7IGNoYXJhY3RlcnMuCiAgICAoaWYgKGFuZCBpc2VhcmNoLXJl Z2V4cCBpc2VhcmNoLXJlZ2V4cC1sYXgtd2hpdGVzcGFjZSAoPSBjaGFyID9ccykpCgkoaWYgKHN1 YnJlZ2V4cC1jb250ZXh0LXAgaXNlYXJjaC1zdHJpbmcgKGxlbmd0aCBpc2VhcmNoLXN0cmluZykp CgkgICAgKGlzZWFyY2gtcHJvY2Vzcy1zZWFyY2gtc3RyaW5nICJbIF0iICIgIikKCSAgKGlzZWFy Y2gtcHJvY2Vzcy1zZWFyY2gtY2hhciBjaGFyIGNvdW50KSkKICAgICAgOzsgVGhpcyB1c2VkIHRv IGFzc3VtZSBjaGFyYWN0ZXIgY29kZXMgMDI0MCAtIDAzNzcgc3RhbmQgZm9yCiAgICAgIDs7IGNo YXJhY3RlcnMgaW4gc29tZSBzaW5nbGUtYnl0ZSBjaGFyYWN0ZXIgc2V0LCBhbmQgY29udmVydGVk IHRoZW0KICAgICAgOzsgdG8gRW1hY3MgY2hhcmFjdGVycy4gIEJ1dCBpbiAyMy4xIHRoaXMgZmVh dHVyZSBpcyBkZXByZWNhdGVkCiAgICAgIDs7IGluIGZhdm9yIG9mIGluc2VydGluZyB0aGUgY29y cmVzcG9uZGluZyBVbmljb2RlIGNoYXJhY3RlcnMuCiAgICAgIDs7IChhbmQgZW5hYmxlLW11bHRp Ynl0ZS1jaGFyYWN0ZXJzCiAgICAgIDs7ICAgICAgKD49IGNoYXIgP1wyMDApCiAgICAgIDs7ICAg ICAgKDw9IGNoYXIgP1wzNzcpCiAgICAgIDs7ICAgICAgKHNldHEgY2hhciAodW5pYnl0ZS1jaGFy LXRvLW11bHRpYnl0ZSBjaGFyKSkpCiAgICAgIChpc2VhcmNoLXByb2Nlc3Mtc2VhcmNoLWNoYXIg Y2hhciBjb3VudCkpKSkKCihkZWZ1biBpc2VhcmNoLXByaW50aW5nLWNoYXIgKCZvcHRpb25hbCBj aGFyIGNvdW50KQogICJBZGQgdGhpcyBvcmRpbmFyeSBwcmludGluZyBDSEFSIHRvIHRoZSBzZWFy Y2ggc3RyaW5nIGFuZCBzZWFyY2guCldpdGggYXJndW1lbnQsIGFkZCBDT1VOVCBjb3BpZXMgb2Yg dGhlIGNoYXJhY3Rlci4iCiAgKGludGVyYWN0aXZlIChsaXN0IGxhc3QtY29tbWFuZC1ldmVudAoJ CSAgICAgKHByZWZpeC1udW1lcmljLXZhbHVlIGN1cnJlbnQtcHJlZml4LWFyZykpKQogIChsZXQg KChjaGFyIChvciBjaGFyIGxhc3QtY29tbWFuZC1ldmVudCkpKQogICAgKGlmICg9IGNoYXIgP1xT LVwgKQoJKHNldHEgY2hhciA/XHMpKQogICAgKGlmIGN1cnJlbnQtaW5wdXQtbWV0aG9kCgkoaXNl YXJjaC1wcm9jZXNzLXNlYXJjaC1tdWx0aWJ5dGUtY2hhcmFjdGVycyBjaGFyIGNvdW50KQogICAg ICAoaXNlYXJjaC1wcm9jZXNzLXNlYXJjaC1jaGFyIGNoYXIgY291bnQpKSkpCgooZGVmdW4gaXNl YXJjaC1wcm9jZXNzLXNlYXJjaC1jaGFyIChjaGFyICZvcHRpb25hbCBjb3VudCkKICAiQWRkIENI QVIgdG8gdGhlIHNlYXJjaCBzdHJpbmcsIENPVU5UIHRpbWVzLgpTZWFyY2ggaXMgdXBkYXRlZCBh Y2NvcmRpbmdseS4iCiAgOzsgKiBhbmQgPyBhcmUgc3BlY2lhbCBpbiByZWdleHBzIHdoZW4gbm90 IHByZWNlZGVkIGJ5IFwuCiAgOzsgfSBhbmQgfCBhcmUgc3BlY2lhbCBpbiByZWdleHBzIHdoZW4g cHJlY2VkZWQgYnkgXC4KICA7OyBOb3RoaW5nIHNwZWNpYWwgZm9yICsgYmVjYXVzZSBpdCBtYXRj aGVzIGF0IGxlYXN0IG9uY2UuCiAgKGNvbmQKICAgKChtZW1xIGNoYXIgJyg/KiA/PykpIChpc2Vh cmNoLWZhbGxiYWNrIG5pbCkpCiAgICgoZXEgICBjaGFyID9cfSkgICAgICAoaXNlYXJjaC1mYWxs YmFjayB0IHQpKQogICAoKGVxICAgY2hhciA/fCkgICAgICAgKGlzZWFyY2gtZmFsbGJhY2sgdCBu aWwgdCkpKQoKICA7OyBBcHBlbmQgdGhlIGNoYXIocykgdG8gdGhlIHNlYXJjaCBzdHJpbmcsCiAg OzsgdXBkYXRlIHRoZSBtZXNzYWdlIGFuZCByZS1zZWFyY2guCiAgKGxldCogKChzdHJpbmcgKGlm IChhbmQgKGludGVnZXJwIGNvdW50KSAoPiBjb3VudCAxKSkKCQkgICAgIChtYWtlLXN0cmluZyBj b3VudCBjaGFyKQoJCSAgIChjaGFyLXRvLXN0cmluZyBjaGFyKSkpCgkgKG1lc3NhZ2UgKGlmICg+ PSBjaGFyID9cMjAwKQoJCSAgICAgIHN0cmluZwoJCSAgICAobWFwY29uY2F0ICdpc2VhcmNoLXRl eHQtY2hhci1kZXNjcmlwdGlvbiBzdHJpbmcgIiIpKSkpCiAgICAoaXNlYXJjaC1wcm9jZXNzLXNl YXJjaC1zdHJpbmcgc3RyaW5nIG1lc3NhZ2UpKSkKCihkZWZ1biBpc2VhcmNoLXByb2Nlc3Mtc2Vh cmNoLXN0cmluZyAoc3RyaW5nIG1lc3NhZ2UpCiAgKHNldHEgaXNlYXJjaC1zdHJpbmcgKGNvbmNh dCBpc2VhcmNoLXN0cmluZyBzdHJpbmcpCglpc2VhcmNoLW1lc3NhZ2UgKGNvbmNhdCBpc2VhcmNo LW1lc3NhZ2UgbWVzc2FnZSkpCiAgKGlzZWFyY2gtc2VhcmNoLWFuZC11cGRhdGUpKQoKDAo7OyBT ZWFyY2ggUmluZwoKKGRlZnVuIGlzZWFyY2gtcmluZy1hZGp1c3QxIChhZHZhbmNlKQogIDs7IEhl bHBlciBmb3IgaXNlYXJjaC1yaW5nLWFkanVzdAogIChsZXQqICgocmluZyAoaWYgaXNlYXJjaC1y ZWdleHAgcmVnZXhwLXNlYXJjaC1yaW5nIHNlYXJjaC1yaW5nKSkKCSAobGVuZ3RoIChsZW5ndGgg cmluZykpCgkgKHlhbmstcG9pbnRlci1uYW1lIChpZiBpc2VhcmNoLXJlZ2V4cAoJCQkJJ3JlZ2V4 cC1zZWFyY2gtcmluZy15YW5rLXBvaW50ZXIKCQkJICAgICAgJ3NlYXJjaC1yaW5nLXlhbmstcG9p bnRlcikpCgkgKHlhbmstcG9pbnRlciAoZXZhbCB5YW5rLXBvaW50ZXItbmFtZSkpKQogICAgKGlm ICh6ZXJvcCBsZW5ndGgpCgkoKQogICAgICAoc2V0IHlhbmstcG9pbnRlci1uYW1lCgkgICAoc2V0 cSB5YW5rLXBvaW50ZXIKCQkgKG1vZCAoKyAob3IgeWFuay1wb2ludGVyIChpZiBhZHZhbmNlIDAg LTEpKQoJCQkgKGlmIGFkdmFuY2UgLTEgMSkpCgkJICAgICAgbGVuZ3RoKSkpCiAgICAgIChzZXRx IGlzZWFyY2gtc3RyaW5nIChudGggeWFuay1wb2ludGVyIHJpbmcpCgkgICAgaXNlYXJjaC1tZXNz YWdlIChtYXBjb25jYXQgJ2lzZWFyY2gtdGV4dC1jaGFyLWRlc2NyaXB0aW9uCgkJCQkgICAgICAg aXNlYXJjaC1zdHJpbmcgIiIpKQogICAgICAoaXNlYXJjaC11cGRhdGUtZnJvbS1zdHJpbmctcHJv cGVydGllcyBpc2VhcmNoLXN0cmluZykpKSkKCihkZWZ1biBpc2VhcmNoLXJpbmctYWRqdXN0IChh ZHZhbmNlKQogIDs7IEhlbHBlciBmb3IgaXNlYXJjaC1yaW5nLWFkdmFuY2UgYW5kIGlzZWFyY2gt cmluZy1yZXRyZWF0CiAgKGlzZWFyY2gtcmluZy1hZGp1c3QxIGFkdmFuY2UpCiAgKGlmIHNlYXJj aC1yaW5nLXVwZGF0ZQogICAgICAocHJvZ24KICAgICAgICAoZnVuY2FsbCAob3IgaXNlYXJjaC1t ZXNzYWdlLWZ1bmN0aW9uICMnaXNlYXJjaC1tZXNzYWdlKSBuaWwgdCkKCShpc2VhcmNoLXNlYXJj aCkKCShpc2VhcmNoLXB1c2gtc3RhdGUpCgkoaXNlYXJjaC11cGRhdGUpKQogICAgOzsgT3RoZXJ3 aXNlLCBlZGl0IHRoZSBzZWFyY2ggc3RyaW5nIGluc3RlYWQuICBOb3RlIHRoYXQgdGhlcmUgaXMK ICAgIDs7IG5vIG5lZWQgdG8gcHVzaCB0aGUgc2VhcmNoIHN0YXRlIGFmdGVyIGlzZWFyY2gtZWRp dC1zdHJpbmcgaGVyZQogICAgOzsgc2luY2UgaXNlYXJjaC1lZGl0LXN0cmluZyBhbHJlYWR5IHB1 c2hlcyBpdHMgc3RhdGUKICAgIChpc2VhcmNoLWVkaXQtc3RyaW5nKSkpCgooZGVmdW4gaXNlYXJj aC1yaW5nLWFkdmFuY2UgKCkKICAiQWR2YW5jZSB0byB0aGUgbmV4dCBzZWFyY2ggc3RyaW5nIGlu IHRoZSByaW5nLiIKICA7OyBUaGlzIGNvdWxkIGJlIG1vcmUgZ2VuZXJhbCB0byBoYW5kbGUgYSBw cmVmaXggYXJnLCBidXQgd2hvIHdvdWxkIHVzZSBpdC4KICAoaW50ZXJhY3RpdmUpCiAgKGlzZWFy Y2gtcmluZy1hZGp1c3QgJ2FkdmFuY2UpKQoKKGRlZnVuIGlzZWFyY2gtcmluZy1yZXRyZWF0ICgp CiAgIlJldHJlYXQgdG8gdGhlIHByZXZpb3VzIHNlYXJjaCBzdHJpbmcgaW4gdGhlIHJpbmcuIgog IChpbnRlcmFjdGl2ZSkKICAoaXNlYXJjaC1yaW5nLWFkanVzdCBuaWwpKQoKKGRlZnVuIGlzZWFy Y2gtY29tcGxldGUxICgpCiAgOzsgSGVscGVyIGZvciBpc2VhcmNoLWNvbXBsZXRlIGFuZCBpc2Vh cmNoLWNvbXBsZXRlLWVkaXQKICA7OyBSZXR1cm4gdCBpZiBjb21wbGV0aW9uIE9LLCBuaWwgaWYg bm8gY29tcGxldGlvbiBleGlzdHMuCiAgKGxldCogKChyaW5nIChpZiBpc2VhcmNoLXJlZ2V4cCBy ZWdleHAtc2VhcmNoLXJpbmcgc2VhcmNoLXJpbmcpKQogICAgICAgICAoY29tcGxldGlvbi1pZ25v cmUtY2FzZSBjYXNlLWZvbGQtc2VhcmNoKQogICAgICAgICAoY29tcGxldGlvbiAodHJ5LWNvbXBs ZXRpb24gaXNlYXJjaC1zdHJpbmcgcmluZykpKQogICAgKGNvbmQKICAgICAoKGVxIGNvbXBsZXRp b24gdCkKICAgICAgOzsgaXNlYXJjaC1zdHJpbmcgc3RheXMgdGhlIHNhbWUKICAgICAgdCkKICAg ICAoKG9yIGNvbXBsZXRpb24gOyBub3QgbmlsLCBtdXN0IGJlIGEgc3RyaW5nCgkgICg9IDAgKGxl bmd0aCBpc2VhcmNoLXN0cmluZykpKSA7IHNob3VsZG4ndCBoYXZlIHRvIHNheSB0aGlzCiAgICAg IChpZiAoZXF1YWwgY29tcGxldGlvbiBpc2VhcmNoLXN0cmluZykgIDs7IG5vIGV4dGVuc2lvbj8K CSAgKHByb2duCgkgICAgKGlmIGNvbXBsZXRpb24tYXV0by1oZWxwCgkJKHdpdGgtb3V0cHV0LXRv LXRlbXAtYnVmZmVyICIqSXNlYXJjaCBjb21wbGV0aW9ucyoiCgkJICAoZGlzcGxheS1jb21wbGV0 aW9uLWxpc3QKCQkgICAoYWxsLWNvbXBsZXRpb25zIGlzZWFyY2gtc3RyaW5nIHJpbmcpKSkpCgkg ICAgdCkKCShhbmQgY29tcGxldGlvbgoJICAgICAoc2V0cSBpc2VhcmNoLXN0cmluZyBjb21wbGV0 aW9uKSkpKQogICAgICh0CiAgICAgIChtZXNzYWdlICJObyBjb21wbGV0aW9uIikgOyB3YWl0cyBh IHNlY29uZCBpZiBpbiBtaW5pYnVmZmVyCiAgICAgIG5pbCkpKSkKCihkZWZ1biBpc2VhcmNoLWNv bXBsZXRlICgpCiAgIkNvbXBsZXRlIHRoZSBzZWFyY2ggc3RyaW5nIGZyb20gdGhlIHN0cmluZ3Mg b24gdGhlIHNlYXJjaCByaW5nLgpUaGUgY29tcGxldGVkIHN0cmluZyBpcyB0aGVuIGVkaXRhYmxl IGluIHRoZSBtaW5pYnVmZmVyLgpJZiB0aGVyZSBpcyBubyBjb21wbGV0aW9uIHBvc3NpYmxlLCBz YXkgc28gYW5kIGNvbnRpbnVlIHNlYXJjaGluZy4iCiAgKGludGVyYWN0aXZlKQogIChpZiAoaXNl YXJjaC1jb21wbGV0ZTEpCiAgICAgIChwcm9nbiAoc2V0cSBpc2VhcmNoLW1lc3NhZ2UKCQkgICAo bWFwY29uY2F0ICdpc2VhcmNoLXRleHQtY2hhci1kZXNjcmlwdGlvbgoJCQkgICAgICBpc2VhcmNo LXN0cmluZyAiIikpCgkgICAgIChpc2VhcmNoLWVkaXQtc3RyaW5nKSkKICAgIDs7IGVsc2UKICAg IChzaXQtZm9yIDEpCiAgICAoaXNlYXJjaC11cGRhdGUpKSkKCihkZWZ1biBpc2VhcmNoLWNvbXBs ZXRlLWVkaXQgKCkKICAiU2FtZSBhcyBgaXNlYXJjaC1jb21wbGV0ZScgZXhjZXB0IGluIHRoZSBt aW5pYnVmZmVyLiIKICAoaW50ZXJhY3RpdmUpCiAgKHNldHEgaXNlYXJjaC1zdHJpbmcgKGZpZWxk LXN0cmluZykpCiAgKGlmIChpc2VhcmNoLWNvbXBsZXRlMSkKICAgICAgKHByb2duCgkoZGVsZXRl LWZpZWxkKQoJKGluc2VydCBpc2VhcmNoLXN0cmluZykpKSkKCgwKOzsgTWVzc2FnZSBzdHJpbmcK CihkZWZ1biBpc2VhcmNoLW1lc3NhZ2UgKCZvcHRpb25hbCBjLXEtaGFjayBlbGxpcHNpcykKICA7 OyBHZW5lcmF0ZSBhbmQgcHJpbnQgdGhlIG1lc3NhZ2Ugc3RyaW5nLgoKICA7OyBOLkIuOiBUaGlz IGZ1bmN0aW9uIHNob3VsZCBhbHdheXMgYmUgY2FsbGVkIHdpdGggcG9pbnQgYXQgdGhlCiAgOzsg c2VhcmNoIHBvaW50LCBiZWNhdXNlIGluIGNlcnRhaW4gKHJhcmUpIGNpcmN1bXN0YW5jZXMsIHVu ZGVzaXJlZAogIDs7IHNjcm9sbGluZyBjYW4gaGFwcGVuIHdoZW4gcG9pbnQgaXMgZWxzZXdoZXJl LiAgVGhlc2UKICA7OyBjaXJjdW1zdGFuY2VzIGFyZSB3aGVuIGZvbGxvdy1tb2RlIGlzIGFjdGl2 ZSwgdGhlIHNlYXJjaCBzdHJpbmcKICA7OyBzcGFucyB0d28gKG9yIHNldmVyYWwpIHdpbmRvd3Ms IGFuZCB0aGUgbWVzc2FnZSBhYm91dCB0byBiZQogIDs7IGRpc3BsYXllZCB3aWxsIGNhdXNlIHRo ZSBlY2hvIGFyZWEgdG8gZXhwYW5kLgogIChsZXQgKChjdXJzb3ItaW4tZWNoby1hcmVhIGVsbGlw c2lzKQoJKG0gaXNlYXJjaC1tZXNzYWdlKQoJKGZhaWwtcG9zIChpc2VhcmNoLWZhaWwtcG9zIHQp KSkKICAgIDs7IEhpZ2hsaWdodCBmYWlsZWQgcGFydAogICAgKHdoZW4gZmFpbC1wb3MKICAgICAg KHNldHEgbSAoY29weS1zZXF1ZW5jZSBtKSkKICAgICAgKGFkZC10ZXh0LXByb3BlcnRpZXMgZmFp bC1wb3MgKGxlbmd0aCBtKSAnKGZhY2UgaXNlYXJjaC1mYWlsKSBtKQogICAgICA7OyBIaWdobGln aHQgZmFpbGVkIHRyYWlsaW5nIHdoaXRlc3BhY2UKICAgICAgKHdoZW4gKHN0cmluZy1tYXRjaCAi ICskIiBtKQoJKGFkZC10ZXh0LXByb3BlcnRpZXMgKG1hdGNoLWJlZ2lubmluZyAwKSAobWF0Y2gt ZW5kIDApCgkJCSAgICAgJyhmYWNlIHRyYWlsaW5nLXdoaXRlc3BhY2UpIG0pKSkKICAgIChzZXRx IG0gKGNvbmNhdAoJICAgICAoaXNlYXJjaC1tZXNzYWdlLXByZWZpeCBlbGxpcHNpcyBpc2VhcmNo LW5vbmluY3JlbWVudGFsKQoJICAgICBtCgkgICAgIChpc2VhcmNoLW1lc3NhZ2Utc3VmZml4IGMt cS1oYWNrKSkpCiAgICAoaWYgYy1xLWhhY2sgbSAobGV0ICgobWVzc2FnZS1sb2ctbWF4IG5pbCkp IChtZXNzYWdlICIlcyIgbSkpKSkpCgooZGVmdW4gaXNlYXJjaC0tZGVzY3JpYmUtcmVnZXhwLW1v ZGUgKHJlZ2V4cC1mdW5jdGlvbiAmb3B0aW9uYWwgc3BhY2UtYmVmb3JlKQogICJNYWtlIGEgc3Ry aW5nIGZvciBkZXNjcmliaW5nIFJFR0VYUC1GVU5DVElPTi4KSWYgU1BBQ0UtQkVGT1JFIGlzIG5v bi1uaWwsIHB1dCBhIHNwYWNlIGJlZm9yZSwgaW5zdGVhZCBvZiBhZnRlciwKdGhlIHdvcmQgbW9k ZS4iCiAgKHdoZW4gKGVxIHJlZ2V4cC1mdW5jdGlvbiB0KQogICAgKHNldHEgcmVnZXhwLWZ1bmN0 aW9uICMnd29yZC1zZWFyY2gtcmVnZXhwKSkKICAobGV0ICgoZGVzY3JpcHRpb24KICAgICAgICAg KGNvbmQKICAgICAgICAgIDs7IDEuIERvIG5vdCB1c2UgYSBkZXNjcmlwdGlvbiBvbiB0aGUgZGVm YXVsdCBzZWFyY2ggbW9kZSwKICAgICAgICAgIDs7ICAgIGJ1dCBvbmx5IGlmIHRoZSBkZWZhdWx0 IHNlYXJjaCBtb2RlIGlzIG5vbi1uaWwuCiAgICAgICAgICAoKGFuZCAob3IgKGFuZCBzZWFyY2gt ZGVmYXVsdC1tb2RlCiAgICAgICAgICAgICAgICAgICAgICAgICAoZXF1YWwgc2VhcmNoLWRlZmF1 bHQtbW9kZSByZWdleHAtZnVuY3Rpb24pKQogICAgICAgICAgICAgICAgICAgIDs7IFNwZWNpYWwg Y2FzZSB3aGVyZSBgc2VhcmNoLWRlZmF1bHQtbW9kZScgaXMgdAogICAgICAgICAgICAgICAgICAg IDs7IChkZWZhdWx0cyB0byByZWdleHAgc2VhcmNoZXMpLgogICAgICAgICAgICAgICAgICAgIChh bmQgKGVxIHNlYXJjaC1kZWZhdWx0LW1vZGUgdCkKICAgICAgICAgICAgICAgICAgICAgICAgIChl cSBzZWFyY2gtZGVmYXVsdC1tb2RlIGlzZWFyY2gtcmVnZXhwKSkpCiAgICAgICAgICAgICAgICA7 OyBBbHNvIGRvIG5vdCBvbWl0IGRlc2NyaXB0aW9uIGluIGNhc2Ugb2YgZXJyb3IKICAgICAgICAg ICAgICAgIDs7IGluIGRlZmF1bHQgbm9uLWxpdGVyYWwgc2VhcmNoLgogICAgICAgICAgICAgICAg KG9yIGlzZWFyY2gtc3VjY2VzcyAobm90IChvciByZWdleHAtZnVuY3Rpb24gaXNlYXJjaC1yZWdl eHApKSkpCiAgICAgICAgICAgIiIpCiAgICAgICAgICA7OyAyLiBVc2UgdGhlIGBpc2VhcmNoLW1l c3NhZ2UtcHJlZml4JyBzZXQgZm9yCiAgICAgICAgICA7OyAgICBgcmVnZXhwLWZ1bmN0aW9uJyBp ZiBhdmFpbGFibGUuCiAgICAgICAgICAocmVnZXhwLWZ1bmN0aW9uCiAgICAgICAgICAgKGFuZCAo c3ltYm9scCByZWdleHAtZnVuY3Rpb24pCiAgICAgICAgICAgICAgICAob3IgKGdldCByZWdleHAt ZnVuY3Rpb24gJ2lzZWFyY2gtbWVzc2FnZS1wcmVmaXgpCiAgICAgICAgICAgICAgICAgICAgIiIp KSkKICAgICAgICAgIDs7IDMuIEVsc2UgaWYgYGlzZWFyY2gtcmVnZXhwJyBpcyBub24tbmlsLCBz ZXQgZGVzY3JpcHRpb24KICAgICAgICAgIDs7ICAgIHRvICJyZWdleHAgIi4KICAgICAgICAgIChp c2VhcmNoLXJlZ2V4cCAicmVnZXhwICIpCiAgICAgICAgICA7OyA0LiBFbHNlIGlmIHdlJ3JlIGlu IGxpdGVyYWwgbW9kZSAoYW5kIGlmIHRoZSBkZWZhdWx0CiAgICAgICAgICA7OyAgICBtb2RlIGlz IGFsc28gbm90IGxpdGVyYWwpLCBkZXNjcmliZSBpdC4KICAgICAgICAgICgoZnVuY3Rpb25wIHNl YXJjaC1kZWZhdWx0LW1vZGUpICJsaXRlcmFsICIpCiAgICAgICAgICA7OyA1LiBBbmQgZmluYWxs eSwgaWYgbm9uZSBvZiB0aGUgYWJvdmUgaXMgdHJ1ZSwgc2V0IHRoZQogICAgICAgICAgOzsgICAg ZGVzY3JpcHRpb24gdG8gYW4gZW1wdHkgc3RyaW5nLgogICAgICAgICAgKHQgIiIpKSkpCiAgICAo aWYgc3BhY2UtYmVmb3JlCiAgICAgICAgOzsgTW92ZSBzcGFjZSBmcm9tIHRoZSBlbmQgdG8gdGhl IGJlZ2lubmluZy4KICAgICAgICAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nICJcXCguKlxcKSBc XCciICIgXFwxIiBkZXNjcmlwdGlvbikKICAgICAgZGVzY3JpcHRpb24pKSkKKGRlZmluZS1vYnNv bGV0ZS1mdW5jdGlvbi1hbGlhcyAnaXNlYXJjaC0tZGVzY3JpYmUtd29yZC1tb2RlCiAgJ2lzZWFy Y2gtLWRlc2NyaWJlLXJlZ2V4cC1tb2RlICIyNS4xIikKCihkZWZ1biBpc2VhcmNoLW1lc3NhZ2Ut cHJlZml4ICgmb3B0aW9uYWwgZWxsaXBzaXMgbm9uaW5jcmVtZW50YWwpCiAgOzsgSWYgYWJvdXQg dG8gc2VhcmNoLCBhbmQgcHJldmlvdXMgc2VhcmNoIHJlZ2V4cCB3YXMgaW52YWxpZCwKICA7OyBj aGVjayB0aGF0IGl0IHN0aWxsIGlzLiAgSWYgaXQgaXMgdmFsaWQgbm93LAogIDs7IGxldCB0aGUg bWVzc2FnZSB3ZSBkaXNwbGF5IHdoaWxlIHNlYXJjaGluZyBzYXkgdGhhdCBpdCBpcyB2YWxpZC4K ICAoYW5kIGlzZWFyY2gtZXJyb3IgZWxsaXBzaXMKICAgICAgIChjb25kaXRpb24tY2FzZSAoKQoJ ICAgKHByb2duIChyZS1zZWFyY2gtZm9yd2FyZCBpc2VhcmNoLXN0cmluZyAocG9pbnQpIHQpCgkJ ICAoc2V0cSBpc2VhcmNoLWVycm9yIG5pbCkpCgkgKGVycm9yIG5pbCkpKQogIDs7IElmIGN1cnJl bnRseSBmYWlsaW5nLCBkaXNwbGF5IG5vIGVsbGlwc2lzLgogIChvciBpc2VhcmNoLXN1Y2Nlc3Mg KHNldHEgZWxsaXBzaXMgbmlsKSkKICAobGV0ICgobSAoY29uY2F0IChpZiBpc2VhcmNoLXN1Y2Nl c3MgIiIgImZhaWxpbmcgIikKCQkgICAoaWYgaXNlYXJjaC1hZGp1c3RlZCAicGVuZGluZyAiICIi KQoJCSAgIChpZiAoYW5kIGlzZWFyY2gtd3JhcHBlZAoJCQkgICAgKG5vdCBpc2VhcmNoLXdyYXAt ZnVuY3Rpb24pCgkJCSAgICAoaWYgaXNlYXJjaC1mb3J3YXJkCgkJCQkoPiAocG9pbnQpIGlzZWFy Y2gtb3BvaW50KQoJCQkgICAgICAoPCAocG9pbnQpIGlzZWFyY2gtb3BvaW50KSkpCgkJICAgICAg ICJvdmVyIikKCQkgICAoaWYgaXNlYXJjaC13cmFwcGVkICJ3cmFwcGVkICIpCiAgICAgICAgICAg ICAgICAgICAoaWYgKGFuZCAobm90IGlzZWFyY2gtc3VjY2VzcykgKG5vdCBpc2VhcmNoLWNhc2Ut Zm9sZC1zZWFyY2gpKQogICAgICAgICAgICAgICAgICAgICAgICJjYXNlLXNlbnNpdGl2ZSAiKQog ICAgICAgICAgICAgICAgICAgKGxldCAoKHByZWZpeCAiIikpCiAgICAgICAgICAgICAgICAgICAg IChhZHZpY2UtZnVuY3Rpb24tbWFwYwogICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAoXyBw cm9wcykKICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKG5wIChjZHIgKGFzc3EgJ2lzZWFy Y2gtbWVzc2FnZS1wcmVmaXggcHJvcHMpKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgKGlm IG5wIChzZXRxIHByZWZpeCAoY29uY2F0IG5wIHByZWZpeCkpKSkpCiAgICAgICAgICAgICAgICAg ICAgICBpc2VhcmNoLWZpbHRlci1wcmVkaWNhdGUpCiAgICAgICAgICAgICAgICAgICAgIHByZWZp eCkKICAgICAgICAgICAgICAgICAgIChpc2VhcmNoLS1kZXNjcmliZS1yZWdleHAtbW9kZSBpc2Vh cmNoLXJlZ2V4cC1mdW5jdGlvbikKCQkgICAoY29uZAoJCSAgICAobXVsdGktaXNlYXJjaC1maWxl LWxpc3QgIm11bHRpLWZpbGUgIikKCQkgICAgKG11bHRpLWlzZWFyY2gtYnVmZmVyLWxpc3QgIm11 bHRpLWJ1ZmZlciAiKQoJCSAgICAodCAiIikpCgkJICAgKG9yIGlzZWFyY2gtbWVzc2FnZS1wcmVm aXgtYWRkICIiKQoJCSAgIChpZiBub25pbmNyZW1lbnRhbCAic2VhcmNoIiAiSS1zZWFyY2giKQoJ CSAgIChpZiBpc2VhcmNoLWZvcndhcmQgIiIgIiBiYWNrd2FyZCIpCgkJICAgKGlmIGN1cnJlbnQt aW5wdXQtbWV0aG9kCgkJICAgICAgIDs7IElucHV0IG1ldGhvZHMgZm9yIFJUTCBsYW5ndWFnZXMg dXNlIFJUTAoJCSAgICAgICA7OyBjaGFyYWN0ZXJzIGZvciB0aGVpciB0aXRsZSwgYW5kIHRoYXQg bWVzc2VzCgkJICAgICAgIDs7IHVwIHRoZSBkaXNwbGF5IG9mIHNlYXJjaCB0ZXh0IGFmdGVyIHRo ZSBwcm9tcHQuCgkJICAgICAgIChiaWRpLXN0cmluZy1tYXJrLWxlZnQtdG8tcmlnaHQKCQkJKGNv bmNhdCAiIFsiIGN1cnJlbnQtaW5wdXQtbWV0aG9kLXRpdGxlICJdOiAiKSkKCQkgICAgICI6ICIp CgkJICAgKSkpCiAgICAocHJvcGVydGl6ZSAoY29uY2F0ICh1cGNhc2UgKHN1YnN0cmluZyBtIDAg MSkpIChzdWJzdHJpbmcgbSAxKSkKCQknZmFjZSAnbWluaWJ1ZmZlci1wcm9tcHQpKSkKCihkZWZ1 biBpc2VhcmNoLW1lc3NhZ2Utc3VmZml4ICgmb3B0aW9uYWwgYy1xLWhhY2spCiAgKHByb3BlcnRp emUgKGNvbmNhdCAoaWYgYy1xLWhhY2sgIl5RIiAiIikKCSAgICAgICAgICAgICAgKGlmIGlzZWFy Y2gtZXJyb3IKCSAgICAgICAgICAgICAgICAgIChjb25jYXQgIiBbIiBpc2VhcmNoLWVycm9yICJd IikKCSAgICAgICAgICAgICAgICAiIikKCSAgICAgICAgICAgICAgKG9yIGlzZWFyY2gtbWVzc2Fn ZS1zdWZmaXgtYWRkICIiKQogICAgICAgICAgICAgICAgICAgICAgKGlmIChhbmQgaXNlYXJjaC1s YXp5LWNvdW50IGlzZWFyY2gtbGF6eS1jb3VudC1jdXJyZW50KQogICAgICAgICAgICAgICAgICAg ICAgICAgIChmb3JtYXQgIiAoJWQgb2YgJWQpIgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGlmIGlzZWFyY2gtZm9yd2FyZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlzZWFyY2gtbGF6eS1jb3VudC1jdXJyZW50CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICgtIGlzZWFyY2gtbGF6eS1jb3VudC10b3RhbAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpc2VhcmNoLWxhenktY291bnQtY3VycmVudAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMSkpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAob3IgaXNlYXJjaC1sYXp5LWNvdW50LXRvdGFsICI/IikpCiAgICAgICAg ICAgICAgICAgICAgICAgICIiKSkKICAgICAgICAgICAgICAnZmFjZSAnbWluaWJ1ZmZlci1wcm9t cHQpKQoKDAo7OyBTZWFyY2hpbmcKCihkZWZ2YXIgaXNlYXJjaC1zZWFyY2gtZnVuLWZ1bmN0aW9u ICdpc2VhcmNoLXNlYXJjaC1mdW4tZGVmYXVsdAogICJOb24tZGVmYXVsdCB2YWx1ZSBvdmVycmlk ZXMgdGhlIGJlaGF2aW9yIG9mIGBpc2VhcmNoLXNlYXJjaC1mdW4tZGVmYXVsdCcuClRoaXMgdmFy aWFibGUncyB2YWx1ZSBzaG91bGQgYmUgYSBmdW5jdGlvbiwgd2hpY2ggd2lsbCBiZSBjYWxsZWQK d2l0aCBubyBhcmd1bWVudHMsIGFuZCBzaG91bGQgcmV0dXJuIGEgZnVuY3Rpb24gdGhhdCB0YWtl cyB0aHJlZQphcmd1bWVudHM6IFNUUklORywgQk9VTkQsIGFuZCBOT0VSUk9SLiAgU1RSSU5HIGlz IHRoZSBzdHJpbmcgdG8KYmUgc2VhcmNoZWQgZm9yLiAgU2VlIGByZS1zZWFyY2gtZm9yd2FyZCcg Zm9yIHRoZSBtZWFuaW5nIG9mCkJPVU5EIGFuZCBOT0VSUk9SIGFyZ3VtZW50cy4KClRoaXMgcmV0 dXJuZWQgZnVuY3Rpb24gd2lsbCBiZSB1c2VkIGJ5IGBpc2VhcmNoLXNlYXJjaC1zdHJpbmcnIHRv CnNlYXJjaCBmb3IgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgU1RSSU5HLiIpCgooZGVmdW4gaXNl YXJjaC1zZWFyY2gtZnVuICgpCiAgIlJldHVybiB0aGUgZnVuY3Rpb24gdG8gdXNlIGZvciB0aGUg c2VhcmNoLgpDYW4gYmUgY2hhbmdlZCB2aWEgYGlzZWFyY2gtc2VhcmNoLWZ1bi1mdW5jdGlvbicg Zm9yIHNwZWNpYWwgbmVlZHMuIgogIChmdW5jYWxsIChvciBpc2VhcmNoLXNlYXJjaC1mdW4tZnVu Y3Rpb24gJ2lzZWFyY2gtc2VhcmNoLWZ1bi1kZWZhdWx0KSkpCgooZGVmdW4gaXNlYXJjaC0tbGF4 LXJlZ2V4cC1mdW5jdGlvbi1wICgpCiAgIk5vbi1uaWwgaWYgbmV4dCByZWdleHAtZnVuY3Rpb24g Y2FsbCBzaG91bGQgYmUgbGF4LiIKICAob3IgKG1lbXEgdGhpcy1jb21tYW5kICcoaXNlYXJjaC1w cmludGluZy1jaGFyIGlzZWFyY2gtZGVsLWNoYXIpKQogICAgICBpc2VhcmNoLXlhbmstZmxhZykp CgooZGVmdW4gaXNlYXJjaC1zZWFyY2gtZnVuLWRlZmF1bHQgKCkKICAiUmV0dXJuIGRlZmF1bHQg ZnVuY3Rpb25zIHRvIHVzZSBmb3IgdGhlIHNlYXJjaC4iCiAgKGxhbWJkYSAoc3RyaW5nICZvcHRp b25hbCBib3VuZCBub2Vycm9yIGNvdW50KQogICAgOzsgVXNlIGxheCB2ZXJzaW9ucyB0byBub3Qg ZmFpbCBhdCB0aGUgZW5kIG9mIHRoZSB3b3JkIHdoaWxlCiAgICA7OyB0aGUgdXNlciBhZGRzIGFu ZCByZW1vdmVzIGNoYXJhY3RlcnMgaW4gdGhlIHNlYXJjaCBzdHJpbmcKICAgIDs7IChvciB3aGVu IHVzaW5nIG5vbmluY3JlbWVudGFsIHdvcmQgaXNlYXJjaCkKICAgIChsZXQgKChzZWFyY2gtc3Bh Y2VzLXJlZ2V4cCAod2hlbiAoY29uZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoaXNlYXJjaC1yZWdleHAgaXNlYXJjaC1yZWdleHAtbGF4LXdoaXRlc3BhY2UpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0IGlzZWFyY2gtbGF4LXdoaXRlc3Bh Y2UpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoLXdoaXRlc3BhY2Ut cmVnZXhwKSkpCiAgICAgIChmdW5jYWxsCiAgICAgICAoaWYgaXNlYXJjaC1mb3J3YXJkICMncmUt c2VhcmNoLWZvcndhcmQgIydyZS1zZWFyY2gtYmFja3dhcmQpCiAgICAgICAoY29uZCAoaXNlYXJj aC1yZWdleHAtZnVuY3Rpb24KICAgICAgICAgICAgICAobGV0ICgobGF4IChhbmQgKG5vdCBib3Vu ZCkgKGlzZWFyY2gtLWxheC1yZWdleHAtZnVuY3Rpb24tcCkpKSkKICAgICAgICAgICAgICAgICh3 aGVuIGxheAogICAgICAgICAgICAgICAgICAoc2V0cSBpc2VhcmNoLWFkanVzdGVkIHQpKQogICAg ICAgICAgICAgICAgKGlmIChmdW5jdGlvbnAgaXNlYXJjaC1yZWdleHAtZnVuY3Rpb24pCiAgICAg ICAgICAgICAgICAgICAgKGZ1bmNhbGwgaXNlYXJjaC1yZWdleHAtZnVuY3Rpb24gc3RyaW5nIGxh eCkKICAgICAgICAgICAgICAgICAgKHdvcmQtc2VhcmNoLXJlZ2V4cCBzdHJpbmcgbGF4KSkpKQog ICAgICAgICAgICAgKGlzZWFyY2gtcmVnZXhwIHN0cmluZykKICAgICAgICAgICAgICh0IChyZWdl eHAtcXVvdGUgc3RyaW5nKSkpCiAgICAgICBib3VuZCBub2Vycm9yIGNvdW50KSkpKQoKKGRlZnVu IGlzZWFyY2gtc2VhcmNoLXN0cmluZyAoc3RyaW5nIGJvdW5kIG5vZXJyb3IpCiAgIlNlYXJjaCBm b3IgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgU1RSSU5HIG9yIGl0cyB0cmFuc2xhdGlvbi4KU1RS SU5HJ3MgY2hhcmFjdGVycyBhcmUgdHJhbnNsYXRlZCB1c2luZyBgdHJhbnNsYXRpb24tdGFibGUt Zm9yLWlucHV0JwppZiB0aGF0IGlzIG5vbi1uaWwuCklmIGZvdW5kLCBtb3ZlIHBvaW50IHRvIHRo ZSBlbmQgb2YgdGhlIG9jY3VycmVuY2UsCnVwZGF0ZSB0aGUgbWF0Y2ggZGF0YSwgYW5kIHJldHVy biBwb2ludC4KQW4gb3B0aW9uYWwgc2Vjb25kIGFyZ3VtZW50IGJvdW5kcyB0aGUgc2VhcmNoOyBp dCBpcyBhIGJ1ZmZlciBwb3NpdGlvbi4KVGhlIG1hdGNoIGZvdW5kIG11c3Qgbm90IGV4dGVuZCBh ZnRlciB0aGF0IHBvc2l0aW9uLgpPcHRpb25hbCB0aGlyZCBhcmd1bWVudCwgaWYgdCwgbWVhbnMg aWYgZmFpbCBqdXN0IHJldHVybiBuaWwgKG5vIGVycm9yKS4KICBJZiBub3QgbmlsIGFuZCBub3Qg dCwgbW92ZSB0byBsaW1pdCBvZiBzZWFyY2ggYW5kIHJldHVybiBuaWwuIgogIChsZXQqICgoZnVu YyAoaXNlYXJjaC1zZWFyY2gtZnVuKSkKICAgICAgICAgKHBvczEgKHNhdmUtZXhjdXJzaW9uIChm dW5jYWxsIGZ1bmMgc3RyaW5nIGJvdW5kIG5vZXJyb3IpKSkKICAgICAgICAgcG9zMikKICAgICh3 aGVuIChhbmQKCSAgIDs7IEF2b2lkICJvYnNvbGV0ZSIgd2FybmluZ3MgZm9yIHRyYW5zbGF0aW9u LXRhYmxlLWZvci1pbnB1dC4KCSAgICh3aXRoLW5vLXdhcm5pbmdzCgkgICAgIChjaGFyLXRhYmxl LXAgdHJhbnNsYXRpb24tdGFibGUtZm9yLWlucHV0KSkKCSAgIChtdWx0aWJ5dGUtc3RyaW5nLXAg c3RyaW5nKQoJICAgOzsgTWlub3Igb3B0aW1pemF0aW9uLgoJICAgKHN0cmluZy1tYXRjaC1wICJb Xls6YXNjaWk6XV0iIHN0cmluZykpCiAgICAgIChsZXQgKCh0cmFuc2xhdGVkCiAgICAgICAgICAg ICAoYXBwbHkgJ3N0cmluZwogICAgICAgICAgICAgICAgICAgIChtYXBjYXIgKGxhbWJkYSAoYykK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9yCgkJCSAgICAgICA7OyBBdm9pZCAib2Jz b2xldGUiIHdhcm5pbmdzIGZvcgoJCQkgICAgICAgOzsgdHJhbnNsYXRpb24tdGFibGUtZm9yLWlu cHV0LgoJCQkgICAgICAgKHdpdGgtbm8td2FybmluZ3MKCQkJCSAoYXJlZiB0cmFuc2xhdGlvbi10 YWJsZS1mb3ItaW5wdXQgYykpCgkJCSAgICAgICBjKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cmluZykpKQogICAgICAgICAgICBtYXRjaC1kYXRhKQogICAgICAgICh3aGVuIHRyYW5z bGF0ZWQKICAgICAgICAgIChzYXZlLW1hdGNoLWRhdGEKICAgICAgICAgICAgKHNhdmUtZXhjdXJz aW9uCiAgICAgICAgICAgICAgKGlmIChzZXRxIHBvczIgKGZ1bmNhbGwgZnVuYyB0cmFuc2xhdGVk IGJvdW5kIG5vZXJyb3IpKQogICAgICAgICAgICAgICAgICAoc2V0cSBtYXRjaC1kYXRhIChtYXRj aC1kYXRhIHQpKSkpKQogICAgICAgICAgKHdoZW4gKGFuZCBwb3MyCiAgICAgICAgICAgICAgICAg ICAgIChvciAobm90IHBvczEpCiAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgaXNlYXJjaC1m b3J3YXJkICg8IHBvczIgcG9zMSkgKD4gcG9zMiBwb3MxKSkpKQogICAgICAgICAgICAoc2V0cSBw b3MxIHBvczIpCiAgICAgICAgICAgIChzZXQtbWF0Y2gtZGF0YSBtYXRjaC1kYXRhKSkpKSkKICAg ICh3aGVuIHBvczEKICAgICAgOzsgV2hlbiB1c2luZyBtdWx0aXBsZSBidWZmZXJzIGlzZWFyY2gs IHN3aXRjaCB0byB0aGUgbmV3IGJ1ZmZlciBoZXJlLAogICAgICA7OyBiZWNhdXNlIGBzYXZlLWV4 Y3Vyc2lvbicgYWJvdmUgZG9lc24ndCBhbGxvdyBkb2luZyBpdCBpbnNpZGUgZnVuY2FsbC4KICAg ICAgKGlmIChhbmQgbXVsdGktaXNlYXJjaC1uZXh0LWJ1ZmZlci1jdXJyZW50LWZ1bmN0aW9uCgkg ICAgICAgKGJ1ZmZlci1saXZlLXAgbXVsdGktaXNlYXJjaC1jdXJyZW50LWJ1ZmZlcikpCgkgIChz d2l0Y2gtdG8tYnVmZmVyIG11bHRpLWlzZWFyY2gtY3VycmVudC1idWZmZXIpKQogICAgICAoZ290 by1jaGFyIHBvczEpCiAgICAgIHBvczEpKSkKCihkZWZ1biBpc2VhcmNoLXNlYXJjaCAoKQogIDs7 IERvIHRoZSBzZWFyY2ggd2l0aCB0aGUgY3VycmVudCBzZWFyY2ggc3RyaW5nLgogIChpZiAoYW5k IChlcSBpc2VhcmNoLWNhc2UtZm9sZC1zZWFyY2ggdCkgc2VhcmNoLXVwcGVyLWNhc2UpCiAgICAg IChzZXRxIGlzZWFyY2gtY2FzZS1mb2xkLXNlYXJjaAoJICAgIChpc2VhcmNoLW5vLXVwcGVyLWNh c2UtcCBpc2VhcmNoLXN0cmluZyBpc2VhcmNoLXJlZ2V4cCkpKQogIChjb25kaXRpb24tY2FzZSBs b3NzYWdlCiAgICAgIChsZXQgKChpbmhpYml0LXBvaW50LW1vdGlvbi1ob29rcyBpc2VhcmNoLWlu dmlzaWJsZSkKCSAgICAoaW5oaWJpdC1xdWl0IG5pbCkKCSAgICAoY2FzZS1mb2xkLXNlYXJjaCBp c2VhcmNoLWNhc2UtZm9sZC1zZWFyY2gpCgkgICAgKHNlYXJjaC1pbnZpc2libGUgaXNlYXJjaC1p bnZpc2libGUpCgkgICAgKHJldHJ5IHQpKQoJKHNldHEgaXNlYXJjaC1lcnJvciBuaWwpCgkod2hp bGUgcmV0cnkKCSAgKHNldHEgaXNlYXJjaC1zdWNjZXNzCgkJKGlzZWFyY2gtc2VhcmNoLXN0cmlu ZyBpc2VhcmNoLXN0cmluZyBuaWwgdCkpCgkgIDs7IENsZWFyIFJFVFJZIHVubGVzcyB0aGUgc2Vh cmNoIHByZWRpY2F0ZSBzYXlzCgkgIDs7IHRvIHNraXAgdGhpcyBzZWFyY2ggaGl0LgoJICAoaWYg KG9yIChub3QgaXNlYXJjaC1zdWNjZXNzKQoJCSAgKGJvYnApIChlb2JwKQoJCSAgKD0gKG1hdGNo LWJlZ2lubmluZyAwKSAobWF0Y2gtZW5kIDApKQoJCSAgKGZ1bmNhbGwgaXNlYXJjaC1maWx0ZXIt cHJlZGljYXRlCgkJCSAgIChtYXRjaC1iZWdpbm5pbmcgMCkgKG1hdGNoLWVuZCAwKSkpCgkgICAg ICAoc2V0cSByZXRyeSBuaWwpKSkKCShzZXRxIGlzZWFyY2gtanVzdC1zdGFydGVkIG5pbCkKCShp ZiBpc2VhcmNoLXN1Y2Nlc3MKCSAgICAoc2V0cSBpc2VhcmNoLW90aGVyLWVuZAoJCSAgKGlmIGlz ZWFyY2gtZm9yd2FyZCAobWF0Y2gtYmVnaW5uaW5nIDApIChtYXRjaC1lbmQgMCkpKSkpCgogICAg KHF1aXQgKGlzZWFyY2gtdW5yZWFkID9cQy1nKQoJICAoc2V0cSBpc2VhcmNoLXN1Y2Nlc3Mgbmls KSkKCiAgICAoaW52YWxpZC1yZWdleHAKICAgICAoc2V0cSBpc2VhcmNoLWVycm9yIChjYXIgKGNk ciBsb3NzYWdlKSkpCiAgICAgKGNvbmQKICAgICAgKChzdHJpbmctbWF0Y2gKCSJcXGBQcmVtYXR1 cmUgXFx8XFxgVW5tYXRjaGVkICIKCWlzZWFyY2gtZXJyb3IpCiAgICAgICAoc2V0cSBpc2VhcmNo LWVycm9yICJpbmNvbXBsZXRlIGlucHV0IikpCiAgICAgICgoYW5kIChub3QgaXNlYXJjaC1yZWdl eHApCgkgICAgKHN0cmluZy1tYXRjaCAiXFxgUmVndWxhciBleHByZXNzaW9uIHRvbyBiaWciIGlz ZWFyY2gtZXJyb3IpKQogICAgICAgKGNvbmQKCShpc2VhcmNoLXJlZ2V4cC1mdW5jdGlvbgoJIChz ZXRxIGlzZWFyY2gtZXJyb3IgIlRvbyBtYW55IHdvcmRzIikpCgkoKGFuZCBpc2VhcmNoLWxheC13 aGl0ZXNwYWNlIHNlYXJjaC13aGl0ZXNwYWNlLXJlZ2V4cCkKCSAoc2V0cSBpc2VhcmNoLWVycm9y ICJUb28gbWFueSBzcGFjZXMgZm9yIHdoaXRlc3BhY2UgbWF0Y2hpbmciKSkpKSkpCgogICAgKHNl YXJjaC1mYWlsZWQKICAgICAoc2V0cSBpc2VhcmNoLXN1Y2Nlc3MgbmlsKQogICAgIChzZXRxIGlz ZWFyY2gtZXJyb3IgKG50aCAyIGxvc3NhZ2UpKSkKCiAgICAoZXJyb3IKICAgICA7OyBzdGFjayBv dmVyZmxvdyBpbiByZWdleHAgc2VhcmNoLgogICAgIChzZXRxIGlzZWFyY2gtZXJyb3IgKGZvcm1h dCAiJXMiIGxvc3NhZ2UpKSkpCgogIChpZiBpc2VhcmNoLXN1Y2Nlc3MKICAgICAgbmlsCiAgICA7 OyBEaW5nIGlmIGZhaWxlZCB0aGlzIHRpbWUgYWZ0ZXIgc3VjY2VlZGluZyBsYXN0IHRpbWUuCiAg ICAoYW5kIChpc2VhcmNoLS1zdGF0ZS1zdWNjZXNzIChjYXIgaXNlYXJjaC1jbWRzKSkKCSAoZGlu ZykpCiAgICAoaWYgKGZ1bmN0aW9ucCAoaXNlYXJjaC0tc3RhdGUtcG9wLWZ1biAoY2FyIGlzZWFy Y2gtY21kcykpKQogICAgICAgIChmdW5jYWxsIChpc2VhcmNoLS1zdGF0ZS1wb3AtZnVuIChjYXIg aXNlYXJjaC1jbWRzKSkKICAgICAgICAgICAgICAgICAoY2FyIGlzZWFyY2gtY21kcykpKQogICAg KGdvdG8tY2hhciAoaXNlYXJjaC0tc3RhdGUtcG9pbnQgKGNhciBpc2VhcmNoLWNtZHMpKSkpKQoK Cjs7IENhbGxlZCB3aGVuIG9wZW5pbmcgYW4gb3ZlcmxheSwgYW5kIHdlIGFyZSBzdGlsbCBpbiBp c2VhcmNoLgooZGVmdW4gaXNlYXJjaC1vcGVuLW92ZXJsYXktdGVtcG9yYXJ5IChvdikKICAoaWYg KG5vdCAobnVsbCAob3ZlcmxheS1nZXQgb3YgJ2lzZWFyY2gtb3Blbi1pbnZpc2libGUtdGVtcG9y YXJ5KSkpCiAgICAgIDs7IFNvbWUgbW9kZXMgd291bGQgd2FudCB0byBvcGVuIHRoZSBvdmVybGF5 cyB0ZW1wb3JhcnkgZHVyaW5nCiAgICAgIDs7IGlzZWFyY2ggaW4gdGhlaXIgb3duIHdheSwgdGhl eSBzaG91bGQgc2V0IHRoZQogICAgICA7OyBgaXNlYXJjaC1vcGVuLWludmlzaWJsZS10ZW1wb3Jh cnknIHRvIGEgZnVuY3Rpb24gZG9pbmcgdGhpcy4KICAgICAgKGZ1bmNhbGwgIChvdmVybGF5LWdl dCBvdiAnaXNlYXJjaC1vcGVuLWludmlzaWJsZS10ZW1wb3JhcnkpICBvdiBuaWwpCiAgICA7OyBT dG9yZSB0aGUgdmFsdWVzIGZvciB0aGUgYGludmlzaWJsZScgcHJvcGVydHksIGFuZCB0aGVuIHNl dCBpdCB0byBuaWwuCiAgICA7OyBUaGlzIHdheSB0aGUgdGV4dCBoaWRkZW4gYnkgdGhpcyBvdmVy bGF5IGJlY29tZXMgdmlzaWJsZS4KICAgIChvdmVybGF5LXB1dCBvdiAnaXNlYXJjaC1pbnZpc2li bGUgKG92ZXJsYXktZ2V0IG92ICdpbnZpc2libGUpKQogICAgKG92ZXJsYXktcHV0IG92ICdpbnZp c2libGUgbmlsKSkpCgoKOzsgVGhpcyBpcyBjYWxsZWQgYXQgdGhlIGVuZCBvZiBpc2VhcmNoLiAg SXQgd2lsbCBvcGVuIHRoZSBvdmVybGF5cwo7OyB0aGF0IGNvbnRhaW4gdGhlIGxhdGVzdCBtYXRj aC4gIE9idmlvdXNseSBpbiBjYXNlIG9mIGEgQy1nIHRoZQo7OyBwb2ludCByZXR1cm5zIHRvIHRo ZSBvcmlnaW5hbCBsb2NhdGlvbiB3aGljaCBzdXJlbHkgaXMgbm90IGNvbnRhaW4KOzsgaW4gYW55 IG9mIHRoZXNlIG92ZXJsYXlzLCBzZSB3ZSBhcmUgc2FmZSBpbiB0aGlzIGNhc2UgdG9vLgooZGVm dW4gaXNlYXJjaC1vcGVuLW5lY2Vzc2FyeS1vdmVybGF5cyAob3YpCiAgKGxldCAoKGluc2lkZS1v dmVybGF5IChhbmQgICg+IChwb2ludCkgKG92ZXJsYXktc3RhcnQgb3YpKQoJCQkgICAgICAoPD0g KHBvaW50KSAob3ZlcmxheS1lbmQgb3YpKSkpCgk7OyBJZiB0aGlzIGV4aXN0cyBpdCBtZWFucyB0 aGF0IHRoZSBvdmVybGF5IHdhcyBvcGVuZWQgdXNpbmcKCTs7IHRoaXMgZnVuY3Rpb24sIG5vdCBi eSB1cyB0d2Vha2luZyB0aGUgb3ZlcmxheSBwcm9wZXJ0aWVzLgoJKGZjdC10ZW1wIChvdmVybGF5 LWdldCBvdiAnaXNlYXJjaC1vcGVuLWludmlzaWJsZS10ZW1wb3JhcnkpKSkKICAgICh3aGVuIChv ciBpbnNpZGUtb3ZlcmxheSAobm90IGZjdC10ZW1wKSkKICAgICAgOzsgcmVzdG9yZSB0aGUgdmFs dWVzIGZvciB0aGUgYGludmlzaWJsZScgcHJvcGVydGllcy4KICAgICAgKG92ZXJsYXktcHV0IG92 ICdpbnZpc2libGUgKG92ZXJsYXktZ2V0IG92ICdpc2VhcmNoLWludmlzaWJsZSkpCiAgICAgIChv dmVybGF5LXB1dCBvdiAnaXNlYXJjaC1pbnZpc2libGUgbmlsKSkKICAgIChpZiBpbnNpZGUtb3Zl cmxheQoJKGZ1bmNhbGwgKG92ZXJsYXktZ2V0IG92ICdpc2VhcmNoLW9wZW4taW52aXNpYmxlKSAg b3YpCiAgICAgIChpZiBmY3QtdGVtcAoJICAoZnVuY2FsbCBmY3QtdGVtcCBvdiB0KSkpKSkKCjs7 IFRoaXMgaXMgY2FsbGVkIHdoZW4gZXhpdGluZyBpc2VhcmNoLiBJdCBjbG9zZXMgdGhlIHRlbXBv cmFyeQo7OyBvcGVuZWQgb3ZlcmxheXMsIGV4Y2VwdCB0aGUgb25lcyB0aGF0IGNvbnRhaW4gdGhl IGxhdGVzdCBtYXRjaC4KKGRlZnVuIGlzZWFyY2gtY2xlYW4tb3ZlcmxheXMgKCkKICAod2hlbiBp c2VhcmNoLW9wZW5lZC1vdmVybGF5cwogICAgKG1hcGMgJ2lzZWFyY2gtb3Blbi1uZWNlc3Nhcnkt b3ZlcmxheXMgaXNlYXJjaC1vcGVuZWQtb3ZlcmxheXMpCiAgICAoc2V0cSBpc2VhcmNoLW9wZW5l ZC1vdmVybGF5cyBuaWwpKSkKCgooZGVmdW4gaXNlYXJjaC1pbnRlcnNlY3RzLXAgKHN0YXJ0MCBl bmQwIHN0YXJ0MSBlbmQxKQogICJSZXR1cm4gdCBpZiByZWdpb25zIFNUQVJUMC4uRU5EMCBhbmQg U1RBUlQxLi5FTkQxIGludGVyc2VjdC4iCiAgKG9yIChhbmQgKD49IHN0YXJ0MCBzdGFydDEpICg8 ICBzdGFydDAgZW5kMSkpCiAgICAgIChhbmQgKD4gIGVuZDAgc3RhcnQxKSAgICg8PSBlbmQwIGVu ZDEpKQogICAgICAoYW5kICg+PSBzdGFydDEgc3RhcnQwKSAoPCAgc3RhcnQxIGVuZDApKQogICAg ICAoYW5kICg+ICBlbmQxIHN0YXJ0MCkgICAoPD0gZW5kMSBlbmQwKSkpKQoKCjs7IFZlcmlmeSBp ZiB0aGUgY3VycmVudCBtYXRjaCBpcyBvdXRzaWRlIG9mIGVhY2ggZWxlbWVudCBvZgo7OyBgaXNl YXJjaC1vcGVuZWQtb3ZlcmxheXMnLCBpZiBzbyBjbG9zZSB0aGF0IG92ZXJsYXkuCgooZGVmdW4g aXNlYXJjaC1jbG9zZS11bm5lY2Vzc2FyeS1vdmVybGF5cyAoYmVnaW4gZW5kKQogIChsZXQgKChv dmVybGF5cyBpc2VhcmNoLW9wZW5lZC1vdmVybGF5cykpCiAgICAoc2V0cSBpc2VhcmNoLW9wZW5l ZC1vdmVybGF5cyBuaWwpCiAgICAoZG9saXN0IChvdiBvdmVybGF5cykKICAgICAgKGlmIChpc2Vh cmNoLWludGVyc2VjdHMtcCBiZWdpbiBlbmQgKG92ZXJsYXktc3RhcnQgb3YpIChvdmVybGF5LWVu ZCBvdikpCgkgIChwdXNoIG92IGlzZWFyY2gtb3BlbmVkLW92ZXJsYXlzKQoJKGxldCAoKGZjdC10 ZW1wIChvdmVybGF5LWdldCBvdiAnaXNlYXJjaC1vcGVuLWludmlzaWJsZS10ZW1wb3JhcnkpKSkK CSAgKGlmIGZjdC10ZW1wCgkgICAgICA7OyBJZiB0aGlzIGV4aXN0cyBpdCBtZWFucyB0aGF0IHRo ZSBvdmVybGF5IHdhcyBvcGVuZWQKCSAgICAgIDs7IHVzaW5nIHRoaXMgZnVuY3Rpb24sIG5vdCBi eSB1cyB0d2Vha2luZyB0aGUgb3ZlcmxheQoJICAgICAgOzsgcHJvcGVydGllcy4KCSAgICAgIChm dW5jYWxsIGZjdC10ZW1wIG92IHQpCgkgICAgKG92ZXJsYXktcHV0IG92ICdpbnZpc2libGUgKG92 ZXJsYXktZ2V0IG92ICdpc2VhcmNoLWludmlzaWJsZSkpCgkgICAgKG92ZXJsYXktcHV0IG92ICdp c2VhcmNoLWludmlzaWJsZSBuaWwpKSkpKSkpCgoKKGRlZnVuIGlzZWFyY2gtcmFuZ2UtaW52aXNp YmxlIChiZWcgZW5kKQogICJSZXR1cm4gdCBpZiBhbGwgdGhlIHRleHQgZnJvbSBCRUcgdG8gRU5E IGlzIGludmlzaWJsZS4iCiAgKHdoZW4gKC89IGJlZyBlbmQpCiAgICA7OyBDaGVjayB0aGF0IGlu dmlzaWJpbGl0eSBydW5zIHVwIHRvIEVORC4KICAgIChzYXZlLWV4Y3Vyc2lvbgogICAgICAoZ290 by1jaGFyIGJlZykKICAgICAgKGxldCAoOzsgY2FuLWJlLW9wZW5lZCBrZWVwcyB0cmFjayBpZiB3 ZSBjYW4gb3BlbiBzb21lIG92ZXJsYXlzLgoJICAgIChjYW4tYmUtb3BlbmVkIChlcSBzZWFyY2gt aW52aXNpYmxlICdvcGVuKSkKCSAgICA7OyB0aGUgbGlzdCBvZiBvdmVybGF5cyB0aGF0IGNvdWxk IGJlIG9wZW5lZAoJICAgIChjcnQtb3ZlcmxheXMgbmlsKSkKCSh3aGVuIChhbmQgY2FuLWJlLW9w ZW5lZCBpc2VhcmNoLWhpZGUtaW1tZWRpYXRlbHkpCgkgIChpc2VhcmNoLWNsb3NlLXVubmVjZXNz YXJ5LW92ZXJsYXlzIGJlZyBlbmQpKQoJOzsgSWYgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXIgaXMg Y3VycmVudGx5IGludmlzaWJsZSwKCTs7IHNraXAgYWxsIGNoYXJhY3RlcnMgd2l0aCB0aGF0IHNh bWUgYGludmlzaWJsZScgcHJvcGVydHkgdmFsdWUuCgk7OyBEbyB0aGF0IG92ZXIgYW5kIG92ZXIu Cgkod2hpbGUgKGFuZCAoPCAocG9pbnQpIGVuZCkgKGludmlzaWJsZS1wIChwb2ludCkpKQoJICAo aWYgKGludmlzaWJsZS1wIChnZXQtdGV4dC1wcm9wZXJ0eSAocG9pbnQpICdpbnZpc2libGUpKQoJ ICAgICAgKHByb2duCgkJKGdvdG8tY2hhciAobmV4dC1zaW5nbGUtcHJvcGVydHktY2hhbmdlIChw b2ludCkgJ2ludmlzaWJsZQoJCQkJCQkJbmlsIGVuZCkpCgkJOzsgaWYgdGV4dCBpcyBoaWRkZW4g YnkgYW4gYGludmlzaWJsZScgdGV4dCBwcm9wZXJ0eQoJCTs7IHdlIGNhbm5vdCBvcGVuIGl0IGF0 IGFsbC4KCQkoc2V0cSBjYW4tYmUtb3BlbmVkIG5pbCkpCgkgICAgKHdoZW4gY2FuLWJlLW9wZW5l ZAoJICAgICAgKGxldCAoKG92ZXJsYXlzIChvdmVybGF5cy1hdCAocG9pbnQpKSkKCQkgICAgb3Yt bGlzdAoJCSAgICBvCgkJICAgIGludmlzLXByb3ApCgkJKHdoaWxlIG92ZXJsYXlzCgkJICAoc2V0 cSBvIChjYXIgb3ZlcmxheXMpCgkJCWludmlzLXByb3AgKG92ZXJsYXktZ2V0IG8gJ2ludmlzaWJs ZSkpCgkJICAoaWYgKGludmlzaWJsZS1wIGludmlzLXByb3ApCgkJICAgICAgKGlmIChvdmVybGF5 LWdldCBvICdpc2VhcmNoLW9wZW4taW52aXNpYmxlKQoJCQkgIChzZXRxIG92LWxpc3QgKGNvbnMg byBvdi1saXN0KSkKCQkJOzsgV2UgZm91bmQgb25lIG92ZXJsYXkgdGhhdCBjYW5ub3QgYmUKCQkJ Ozsgb3BlbmVkLCB0aGF0IG1lYW5zIHRoZSB3aG9sZSBjaHVuawoJCQk7OyBjYW5ub3QgYmUgb3Bl bmVkLgoJCQkoc2V0cSBjYW4tYmUtb3BlbmVkIG5pbCkpKQoJCSAgKHNldHEgb3ZlcmxheXMgKGNk ciBvdmVybGF5cykpKQoJCShpZiBjYW4tYmUtb3BlbmVkCgkJICAgIDs7IEl0IG1ha2VzIHNlbnNl IHRvIGFwcGVuZCB0byB0aGUgb3BlbgoJCSAgICA7OyBvdmVybGF5cyBsaXN0IG9ubHkgaWYgd2Ug a25vdyB0aGF0IHRoaXMgaXMKCQkgICAgOzsgdC4KCQkgICAgKHNldHEgY3J0LW92ZXJsYXlzIChh cHBlbmQgb3YtbGlzdCBjcnQtb3ZlcmxheXMpKSkpKQoJICAgIChnb3RvLWNoYXIgKG5leHQtb3Zl cmxheS1jaGFuZ2UgKHBvaW50KSkpKSkKCTs7IFNlZSBpZiBpbnZpc2liaWxpdHkgcmVhY2hlcyB1 cCB0aHJ1IEVORC4KCShpZiAoPj0gKHBvaW50KSBlbmQpCgkgICAgKGlmIChhbmQgY2FuLWJlLW9w ZW5lZCAoY29uc3AgY3J0LW92ZXJsYXlzKSkKCQkocHJvZ24KCQkgIChzZXRxIGlzZWFyY2gtb3Bl bmVkLW92ZXJsYXlzCgkJCShhcHBlbmQgaXNlYXJjaC1vcGVuZWQtb3ZlcmxheXMgY3J0LW92ZXJs YXlzKSkKCQkgIChtYXBjICdpc2VhcmNoLW9wZW4tb3ZlcmxheS10ZW1wb3JhcnkgY3J0LW92ZXJs YXlzKQoJCSAgbmlsKQoJICAgICAgKHNldHEgaXNlYXJjaC1oaWRkZW4gdCkpKSkpKSkKCihkZWZ1 biBpc2VhcmNoLWZpbHRlci12aXNpYmxlIChiZWcgZW5kKQogICJUZXN0IHdoZXRoZXIgdGhlIGN1 cnJlbnQgc2VhcmNoIGhpdCBpcyB2aXNpYmxlIGF0IGxlYXN0IHBhcnRpYWxseS4KUmV0dXJuIG5v bi1uaWwgaWYgdGhlIHRleHQgZnJvbSBCRUcgdG8gRU5EIGlzIHZpc2libGUgdG8gSXNlYXJjaCBh cwpkZXRlcm1pbmVkIGJ5IGBpc2VhcmNoLXJhbmdlLWludmlzaWJsZScgdW5sZXNzIGludmlzaWJs ZSB0ZXh0IGNhbiBiZQpzZWFyY2hlZCB0b28gd2hlbiBgc2VhcmNoLWludmlzaWJsZScgaXMgdC4i CiAgKG9yIChlcSBzZWFyY2gtaW52aXNpYmxlIHQpCiAgICAgIChub3QgKGlzZWFyY2gtcmFuZ2Ut aW52aXNpYmxlIGJlZyBlbmQpKSkpCgoMCjs7IEdlbmVyYWwgdXRpbGl0aWVzCgooZGVmdW4gaXNl YXJjaC1uby11cHBlci1jYXNlLXAgKHN0cmluZyByZWdleHAtZmxhZykKICAiUmV0dXJuIHQgaWYg dGhlcmUgYXJlIG5vIHVwcGVyIGNhc2UgY2hhcnMgaW4gU1RSSU5HLgpJZiBSRUdFWFAtRkxBRyBp cyBub24tbmlsLCBkaXNyZWdhcmQgbGV0dGVycyBwcmVjZWRlZCBieSBgXFwnIChidXQgbm90IGBc XFxcJykKc2luY2UgdGhleSBoYXZlIHNwZWNpYWwgbWVhbmluZyBpbiBhIHJlZ2V4cC4iCiAgKGxl dCAocXVvdGUtZmxhZyAoaSAwKSAobGVuIChsZW5ndGggc3RyaW5nKSkgZm91bmQpCiAgICAod2hp bGUgKGFuZCAobm90IGZvdW5kKSAoPCBpIGxlbikpCiAgICAgIChsZXQgKChjaGFyIChhcmVmIHN0 cmluZyBpKSkpCgkoaWYgKGFuZCByZWdleHAtZmxhZyAoZXEgY2hhciA/XFwpKQoJICAgIChzZXRx IHF1b3RlLWZsYWcgKG5vdCBxdW90ZS1mbGFnKSkKCSAgKGlmIChhbmQgKG5vdCBxdW90ZS1mbGFn KSAobm90IChlcSBjaGFyIChkb3duY2FzZSBjaGFyKSkpKQoJICAgICAgKHNldHEgZm91bmQgdCkp CgkgIChzZXRxIHF1b3RlLWZsYWcgbmlsKSkpCiAgICAgIChzZXRxIGkgKDErIGkpKSkKICAgIChu b3QgKG9yIGZvdW5kCiAgICAgICAgICAgICA7OyBFdmVuIGlmIHRoZXJlJ3Mgbm8gdXBwZXJjYXNl IGNoYXIsIHdlIHdhbnQgdG8gZGV0ZWN0IHRoZSB1c2UKICAgICAgICAgICAgIDs7IG9mIFs6dXBw ZXI6XSBvciBbOmxvd2VyOl0gY2hhci1jbGFzcywgd2hpY2ggaW5kaWNhdGVzCiAgICAgICAgICAg ICA7OyBjbGVhcmx5IHRoYXQgdGhlIHVzZXIgY2FyZXMgYWJvdXQgY2FzZSBkaXN0aW5jdGlvbi4K ICAgICAgICAgICAgIChhbmQgcmVnZXhwLWZsYWcgKHN0cmluZy1tYXRjaCAiXFxbOlxcKHVwcFxc fGxvd1xcKWVyOl0iIHN0cmluZykKICAgICAgICAgICAgICAgICAgKGNvbmRpdGlvbi1jYXNlIGVy cgogICAgICAgICAgICAgICAgICAgICAgKHByb2duCiAgICAgICAgICAgICAgICAgICAgICAgIChz dHJpbmctbWF0Y2ggKHN1YnN0cmluZyBzdHJpbmcgMCAobWF0Y2gtYmVnaW5uaW5nIDApKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiKQogICAgICAgICAgICAgICAgICAg ICAgICBuaWwpCiAgICAgICAgICAgICAgICAgICAgKGludmFsaWQtcmVnZXhwCiAgICAgICAgICAg ICAgICAgICAgIChlcXVhbCAiVW5tYXRjaGVkIFsgb3IgW14iIChjYWRyIGVycikpKSkpKSkpKQoK OzsgUG9ydGFiaWxpdHkgZnVuY3Rpb25zIHRvIHN1cHBvcnQgdmFyaW91cyBFbWFjcyB2ZXJzaW9u cy4KCihkZWZ1biBpc2VhcmNoLXRleHQtY2hhci1kZXNjcmlwdGlvbiAoYykKICAoY29uZAogICAo KDwgYyA/XHMpIChwcm9wZXJ0aXplCgkgICAgICAgKGNoYXItdG8tc3RyaW5nIGMpCgkgICAgICAg J2Rpc3BsYXkgKHByb3BlcnRpemUgKGZvcm1hdCAiXiVjIiAoKyBjIDY0KSkgJ2ZhY2UgJ2VzY2Fw ZS1nbHlwaCkpKQogICAoKD0gYyA/XF4/KSAocHJvcGVydGl6ZQoJCShjaGFyLXRvLXN0cmluZyBj KQoJCSdkaXNwbGF5IChwcm9wZXJ0aXplICJePyIgJ2ZhY2UgJ2VzY2FwZS1nbHlwaCkpKQogICAo dCAoY2hhci10by1zdHJpbmcgYykpKSkKCjs7IEdlbmVyYWwgZnVuY3Rpb24gdG8gdW5yZWFkIGNo YXJhY3RlcnMgb3IgZXZlbnRzLgo7OyBBbHNvIGluc2VydCB0aGVtIGluIGEga2V5Ym9hcmQgbWFj cm8gYmVpbmcgZGVmaW5lZC4KKGRlZnVuIGlzZWFyY2gtdW5yZWFkICgmcmVzdCBjaGFyLW9yLWV2 ZW50cykKICAobWFwYyAnc3RvcmUta2JkLW1hY3JvLWV2ZW50IGNoYXItb3ItZXZlbnRzKQogIChz ZXRxIHVucmVhZC1jb21tYW5kLWV2ZW50cwoJKGFwcGVuZCBjaGFyLW9yLWV2ZW50cyB1bnJlYWQt Y29tbWFuZC1ldmVudHMpKSkKCgwKOzsgSGlnaGxpZ2h0aW5nCgooZGVmdmFyIGlzZWFyY2gtb3Zl cmxheSBuaWwpCgooZGVmdW4gaXNlYXJjaC1oaWdobGlnaHQgKGJlZyBlbmQpCiAgKGlmIHNlYXJj aC1oaWdobGlnaHQKICAgICAgKGlmIGlzZWFyY2gtb3ZlcmxheQoJICA7OyBPdmVybGF5IGFscmVh ZHkgZXhpc3RzLCBqdXN0IG1vdmUgaXQuCgkgIChtb3ZlLW92ZXJsYXkgaXNlYXJjaC1vdmVybGF5 IGJlZyBlbmQgKGN1cnJlbnQtYnVmZmVyKSkKCTs7IE92ZXJsYXkgZG9lc24ndCBleGlzdCwgY3Jl YXRlIGl0LgoJKHNldHEgaXNlYXJjaC1vdmVybGF5IChtYWtlLW92ZXJsYXkgYmVnIGVuZCkpCgk7 OyAxMDAxIGlzIGhpZ2hlciB0aGFuIGxhenkncyAxMDAwIGFuZCBlZGlmZidzIDEwMCsKCShvdmVy bGF5LXB1dCBpc2VhcmNoLW92ZXJsYXkgJ3ByaW9yaXR5IDEwMDEpCgkob3ZlcmxheS1wdXQgaXNl YXJjaC1vdmVybGF5ICdmYWNlIGlzZWFyY2gtZmFjZSkpKSkKCihkZWZ1biBpc2VhcmNoLWRlaGln aGxpZ2h0ICgpCiAgKHdoZW4gaXNlYXJjaC1vdmVybGF5CiAgICAoZGVsZXRlLW92ZXJsYXkgaXNl YXJjaC1vdmVybGF5KSkpCgwKOzsgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodCBmZWF0dXJlCjs7IGJ5 IEJvYiBHbGlja3N0ZWluIDxodHRwOi8vd3d3LnphbnNoaW4uY29tL35ib2JnLz4KCjs7IFdoZW4g YWN0aXZlLCAqZXZlcnkqIG1hdGNoIGZvciB0aGUgY3VycmVudCBzZWFyY2ggc3RyaW5nIGlzCjs7 IGhpZ2hsaWdodGVkOiB0aGUgY3VycmVudCBvbmUgdXNpbmcgdGhlIG5vcm1hbCBpc2VhcmNoIG1h dGNoIGNvbG9yCjs7IGFuZCBhbGwgdGhlIG90aGVycyB1c2luZyBgaXNlYXJjaC1sYXp5LWhpZ2hs aWdodCcuICBUaGUgZXh0cmEKOzsgaGlnaGxpZ2h0aW5nIG1ha2VzIGl0IGVhc2llciB0byBhbnRp Y2lwYXRlIHdoZXJlIHRoZSBjdXJzb3Igd2lsbAo7OyBsYW5kIGVhY2ggdGltZSB5b3UgcHJlc3Mg Qy1zIG9yIEMtciB0byByZXBlYXQgYSBwZW5kaW5nIHNlYXJjaC4KOzsgSGlnaGxpZ2h0aW5nIG9m IHRoZXNlIGFkZGl0aW9uYWwgbWF0Y2hlcyBoYXBwZW5zIGluIGEgZGVmZXJyZWQKOzsgZmFzaGlv biB1c2luZyAiaWRsZSB0aW1lcnMsIiBzbyB0aGUgY3ljbGVzIG5lZWRlZCBkbyBub3Qgcm9iCjs7 IGlzZWFyY2ggb2YgaXRzIHVzdWFsIHNuYXBweSByZXNwb25zZS4KCjs7IElNUExFTUVOVEFUSU9O IE5PVEU6IFRoaXMgZGVwZW5kcyBvbiBzb21lIGlzZWFyY2ggaW50ZXJuYWxzLgo7OyBTcGVjaWZp Y2FsbHk6Cjs7ICAtIGBpc2VhcmNoLXVwZGF0ZScgaXMgZXhwZWN0ZWQgdG8gYmUgY2FsbGVkIChh dCBsZWFzdCkgZXZlcnkgdGltZQo7OyAgICB0aGUgc2VhcmNoIHN0cmluZyBvciB3aW5kb3ctc3Rh cnQgY2hhbmdlczsKOzsgIC0gYGlzZWFyY2gtc3RyaW5nJyBpcyBleHBlY3RlZCB0byBjb250YWlu IHRoZSBjdXJyZW50IHNlYXJjaAo7OyAgICBzdHJpbmcgYXMgZW50ZXJlZCBieSB0aGUgdXNlcjsK OzsgIC0gdGhlIHR5cGUgb2YgdGhlIGN1cnJlbnQgc2VhcmNoIGlzIGV4cGVjdGVkIHRvIGJlIGdp dmVuIGJ5Cjs7ICAgIGBpc2VhcmNoLXJlZ2V4cC1mdW5jdGlvbicgYW5kIGBpc2VhcmNoLXJlZ2V4 cCc7Cjs7ICAtIHRoZSBkaXJlY3Rpb24gb2YgdGhlIGN1cnJlbnQgc2VhcmNoIGlzIGV4cGVjdGVk IHRvIGJlIGdpdmVuIGJ5Cjs7ICAgIGBpc2VhcmNoLWZvcndhcmQnOwo7OyAgLSB0aGUgdmFyaWFi bGUgYGlzZWFyY2gtZXJyb3InIGlzIGV4cGVjdGVkIHRvIGJlIHRydWUKOzsgICAgb25seSBpZiBg aXNlYXJjaC1zdHJpbmcnIGlzIGFuIGludmFsaWQgcmVnZXhwLgoKKGRlZnZhciBpc2VhcmNoLWxh enktaGlnaGxpZ2h0LW92ZXJsYXlzIG5pbCkKKGRlZnZhciBpc2VhcmNoLWxhenktaGlnaGxpZ2h0 LXdyYXBwZWQgbmlsKQooZGVmdmFyIGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtc3RhcnQtbGltaXQg bmlsKQooZGVmdmFyIGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtZW5kLWxpbWl0IG5pbCkKKGRlZnZh ciBpc2VhcmNoLWxhenktaGlnaGxpZ2h0LXN0YXJ0IG5pbCkKKGRlZnZhciBpc2VhcmNoLWxhenkt aGlnaGxpZ2h0LWVuZCBuaWwpCihkZWZ2YXIgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC10aW1lciBu aWwpCihkZWZ2YXIgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1sYXN0LXN0cmluZyBuaWwpCihkZWZ2 YXIgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC13aW5kb3cgbmlsKQooZGVmdmFyIGlzZWFyY2gtbGF6 eS1oaWdobGlnaHQtd2luZG93LWdyb3VwIG5pbCkKKGRlZnZhciBpc2VhcmNoLWxhenktaGlnaGxp Z2h0LXdpbmRvdy1zdGFydCBuaWwpCihkZWZ2YXIgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC13aW5k b3ctZW5kIG5pbCkKKGRlZnZhciBpc2VhcmNoLWxhenktaGlnaGxpZ2h0LWJ1ZmZlciBuaWwpCihk ZWZ2YXIgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1jYXNlLWZvbGQtc2VhcmNoIG5pbCkKKGRlZnZh ciBpc2VhcmNoLWxhenktaGlnaGxpZ2h0LXJlZ2V4cCBuaWwpCihkZWZ2YXIgaXNlYXJjaC1sYXp5 LWhpZ2hsaWdodC1sYXgtd2hpdGVzcGFjZSBuaWwpCihkZWZ2YXIgaXNlYXJjaC1sYXp5LWhpZ2hs aWdodC1yZWdleHAtbGF4LXdoaXRlc3BhY2UgbmlsKQooZGVmaW5lLW9ic29sZXRlLXZhcmlhYmxl LWFsaWFzICdpc2VhcmNoLWxhenktaGlnaGxpZ2h0LXdvcmQKICAnaXNlYXJjaC1sYXp5LWhpZ2hs aWdodC1yZWdleHAtZnVuY3Rpb24gIjI1LjEiKQooZGVmdmFyIGlzZWFyY2gtbGF6eS1oaWdobGln aHQtcmVnZXhwLWZ1bmN0aW9uIG5pbCkKKGRlZnZhciBpc2VhcmNoLWxhenktaGlnaGxpZ2h0LWZv cndhcmQgbmlsKQooZGVmdmFyIGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtZXJyb3IgbmlsKQooZGVm dmFyIGlzZWFyY2gtbGF6eS1jb3VudC1jdXJyZW50IG5pbCkKKGRlZnZhciBpc2VhcmNoLWxhenkt Y291bnQtdG90YWwgbmlsKQooZGVmdmFyIGlzZWFyY2gtbGF6eS1jb3VudC1zdGFydCBuaWwpCihk ZWZ2YXIgaXNlYXJjaC1sYXp5LWNvdW50LWhhc2ggKG1ha2UtaGFzaC10YWJsZSkpCgooZGVmdW4g bGF6eS1oaWdobGlnaHQtY2xlYW51cCAoJm9wdGlvbmFsIGZvcmNlIHByb2NyYXN0aW5hdGUpCiAg IlN0b3AgbGF6eSBoaWdobGlnaHRpbmcgYW5kIHJlbW92ZSBleHRyYSBoaWdobGlnaHRpbmcgZnJv bSBjdXJyZW50IGJ1ZmZlci4KRk9SQ0Ugbm9uLW5pbCBtZWFucyBkbyBpdCB3aGV0aGVyIG9yIG5v dCBgbGF6eS1oaWdobGlnaHQtY2xlYW51cCcgaXMgbmlsLgpQUk9DUkFTVElOQVRFIG5vbi1uaWwg bWVhbnMgcG9zdHBvbmUgY2xlYW51cCB0byBhIGxhdGVyIHRpbWUuClRoaXMgZnVuY3Rpb24gaXMg Y2FsbGVkIHdoZW4gZXhpdGluZyBhbiBpbmNyZW1lbnRhbCBzZWFyY2ggaWYKYGxhenktaGlnaGxp Z2h0LWNsZWFudXAnIGlzIG5vbi1uaWwuIgogIChpbnRlcmFjdGl2ZSAnKHQpKQogICh3aGVuIChh bmQgKG9yIGZvcmNlIGxhenktaGlnaGxpZ2h0LWNsZWFudXApIChub3QgcHJvY3Jhc3RpbmF0ZSkp CiAgICAod2hpbGUgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1vdmVybGF5cwogICAgICAoZGVsZXRl LW92ZXJsYXkgKGNhciBpc2VhcmNoLWxhenktaGlnaGxpZ2h0LW92ZXJsYXlzKSkKICAgICAgKHNl dHEgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1vdmVybGF5cwogICAgICAgICAgICAoY2RyIGlzZWFy Y2gtbGF6eS1oaWdobGlnaHQtb3ZlcmxheXMpKSkpCiAgKHdoZW4gaXNlYXJjaC1sYXp5LWhpZ2hs aWdodC10aW1lcgogICAgKGNhbmNlbC10aW1lciBpc2VhcmNoLWxhenktaGlnaGxpZ2h0LXRpbWVy KQogICAgKHNldHEgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC10aW1lciBuaWwpKSkKCihkZWZ1biBp c2VhcmNoLWxhenktaGlnaGxpZ2h0LW5ldy1sb29wICgmb3B0aW9uYWwgYmVnIGVuZCkKICAiQ2xl YW51cCBhbnkgcHJldmlvdXMgYGxhenktaGlnaGxpZ2h0JyBsb29wIGFuZCBiZWdpbiBhIG5ldyBv bmUuCkJFRyBhbmQgRU5EIHNwZWNpZnkgdGhlIGJvdW5kcyB3aXRoaW4gd2hpY2ggaGlnaGxpZ2h0 aW5nIHNob3VsZCBvY2N1ci4KVGhpcyBpcyBjYWxsZWQgd2hlbiBgaXNlYXJjaC11cGRhdGUnIGlz IGludm9rZWQgKHdoaWNoIGNhbiBjYXVzZSB0aGUKc2VhcmNoIHN0cmluZyB0byBjaGFuZ2Ugb3Ig dGhlIHdpbmRvdyB0byBzY3JvbGwpLiAgSXQgaXMgYWxzbyB1c2VkCmJ5IG90aGVyIEVtYWNzIGZl YXR1cmVzLiIKICAoc2V0cSBpc2VhcmNoLWxhenktY291bnQtc3RhcnQKICAgICAgICAob3IgKG5v dCAoZXF1YWwgaXNlYXJjaC1zdHJpbmcKICAgICAgICAgICAgICAgICAgICAgICAgaXNlYXJjaC1s YXp5LWhpZ2hsaWdodC1sYXN0LXN0cmluZykpCiAgICAgICAgICAgIChub3QgKG1lbXEgKHNlbGVj dGVkLXdpbmRvdykKICAgICAgICAgICAgICAgICAgICAgICBpc2VhcmNoLWxhenktaGlnaGxpZ2h0 LXdpbmRvdy1ncm91cCkpCgkgICAgKG5vdCAoZXEgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1jYXNl LWZvbGQtc2VhcmNoCgkJICAgICBpc2VhcmNoLWNhc2UtZm9sZC1zZWFyY2gpKQoJICAgIChub3Qg KGVxIGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtcmVnZXhwCgkJICAgICBpc2VhcmNoLXJlZ2V4cCkp CgkgICAgKG5vdCAoZXEgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1yZWdleHAtZnVuY3Rpb24KCQkg ICAgIGlzZWFyY2gtcmVnZXhwLWZ1bmN0aW9uKSkKCSAgICAobm90IChlcSBpc2VhcmNoLWxhenkt aGlnaGxpZ2h0LWxheC13aGl0ZXNwYWNlCgkJICAgICBpc2VhcmNoLWxheC13aGl0ZXNwYWNlKSkK CSAgICAobm90IChlcSBpc2VhcmNoLWxhenktaGlnaGxpZ2h0LXJlZ2V4cC1sYXgtd2hpdGVzcGFj ZQoJCSAgICAgaXNlYXJjaC1yZWdleHAtbGF4LXdoaXRlc3BhY2UpKQoJICAgIChub3QgKGVxIGlz ZWFyY2gtZm9yd2FyZAoJCSAgICAgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1mb3J3YXJkKSkKCSAg ICA7OyBJbiBjYXNlIHdlIGFyZSByZWNvdmVyaW5nIGZyb20gYW4gZXJyb3IuCgkgICAgKG5vdCAo ZXF1YWwgaXNlYXJjaC1lcnJvcgoJCQlpc2VhcmNoLWxhenktaGlnaGxpZ2h0LWVycm9yKSkpKQog ICh3aGVuIChhbmQgKG51bGwgZXhlY3V0aW5nLWtiZC1tYWNybykKICAgICAgICAgICAgIChzaXQt Zm9yIDApICAgICAgICAgO21ha2Ugc3VyZSAod2luZG93LXN0YXJ0KSBpcyBjcmVkaWJsZQogICAg ICAgICAgICAgKG9yIGlzZWFyY2gtbGF6eS1jb3VudC1zdGFydAogICAgICAgICAgICAgICAgIChu b3QgKG9yIGxhenktaGlnaGxpZ2h0LWJ1ZmZlcgoJCSAgICAgICAgICAoPSAod2luZG93LWdyb3Vw LXN0YXJ0KQoJCQkgICAgIGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtd2luZG93LXN0YXJ0KSkpCgkg ICAgICAgICAobm90IChvciBsYXp5LWhpZ2hsaWdodC1idWZmZXIKCQkgICAgICAgICAgKD0gKHdp bmRvdy1ncm91cC1lbmQpIDsgV2luZG93IG1heSBoYXZlIGJlZW4gc3BsaXQvam9pbmVkLgoJCQkg ICAgIGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtd2luZG93LWVuZCkpKSkpCiAgICA7OyBzb21ldGhp bmcgaW1wb3J0YW50IGRpZCBpbmRlZWQgY2hhbmdlCiAgICAobGF6eS1oaWdobGlnaHQtY2xlYW51 cCB0IChub3QgKGVxdWFsIGlzZWFyY2gtc3RyaW5nICIiKSkpIDtzdG9wIG9sZCB0aW1lcgogICAg KHNldHEgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1lcnJvciBpc2VhcmNoLWVycm9yKQogICAgOzsg SXQgdXNlZCB0byBjaGVjayBmb3IgYChub3QgaXNlYXJjaC1lcnJvciknIGhlcmUsIGJ1dCBhY3R1 YWxseQogICAgOzsgbGF6eS1oaWdobGlnaHRpbmcgbWlnaHQgZmluZCBtYXRjaGVzIHRvIGhpZ2hs aWdodCBldmVuIHdoZW4KICAgIDs7IGBpc2VhcmNoLWVycm9yJyBpcyBub24tbmlsLiAgKEJ1ZyM5 OTE4KQogICAgKHNldHEgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1zdGFydC1saW1pdCBiZWcKCSAg aXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1lbmQtbGltaXQgZW5kKQogICAgKHNldHEgaXNlYXJjaC1s YXp5LWhpZ2hsaWdodC13aW5kb3cgICAgICAgKHNlbGVjdGVkLXdpbmRvdykKICAgICAgICAgIGlz ZWFyY2gtbGF6eS1oaWdobGlnaHQtd2luZG93LWdyb3VwIChzZWxlY3RlZC13aW5kb3ctZ3JvdXAp CgkgIGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtd2luZG93LXN0YXJ0ICh3aW5kb3ctZ3JvdXAtc3Rh cnQpCgkgIGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtd2luZG93LWVuZCAgICh3aW5kb3ctZ3JvdXAt ZW5kKQoJICBpc2VhcmNoLWxhenktaGlnaGxpZ2h0LWJ1ZmZlciAgICAgICBsYXp5LWhpZ2hsaWdo dC1idWZmZXIKCSAgOzsgU3RhcnQgbGF6eS1oaWdobGlnaHRpbmcgYXQgdGhlIGJlZ2lubmluZyBv ZiB0aGUgZm91bmQKCSAgOzsgbWF0Y2ggKGBpc2VhcmNoLW90aGVyLWVuZCcpLiAgSWYgbm8gbWF0 Y2gsIHVzZSBwb2ludC4KCSAgOzsgT25lIG9mIHRoZSBuZXh0IHR3byB2YXJpYWJsZXMgKGRlcGVu ZGluZyBvbiBzZWFyY2ggZGlyZWN0aW9uKQoJICA7OyBpcyB1c2VkIHRvIGRlZmluZSB0aGUgc3Rh cnRpbmcgcG9zaXRpb24gb2YgbGF6eS1oaWdobGlnaHRpbmcKCSAgOzsgYW5kIGFsc28gdG8gcmVt ZW1iZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24gb2YgcG9pbnQgYmV0d2VlbgoJICA7OyBjYWxscyBv ZiBgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC11cGRhdGUnLCBhbmQgYW5vdGhlciB2YXJpYWJsZQoJ ICA7OyBpcyB1c2VkIHRvIGRlZmluZSB3aGVyZSB0aGUgd3JhcHBlZCBzZWFyY2ggbXVzdCBzdG9w LgoJICBpc2VhcmNoLWxhenktaGlnaGxpZ2h0LXN0YXJ0ICAgICAgICAob3IgaXNlYXJjaC1vdGhl ci1lbmQgKHBvaW50KSkKCSAgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1lbmQgICAgICAgICAgKG9y IGlzZWFyY2gtb3RoZXItZW5kIChwb2ludCkpCgkgIGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtd3Jh cHBlZCAgICAgIG5pbAoJICBpc2VhcmNoLWxhenktaGlnaGxpZ2h0LWxhc3Qtc3RyaW5nICBpc2Vh cmNoLXN0cmluZwoJICBpc2VhcmNoLWxhenktaGlnaGxpZ2h0LWNhc2UtZm9sZC1zZWFyY2ggaXNl YXJjaC1jYXNlLWZvbGQtc2VhcmNoCgkgIGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtcmVnZXhwICAg ICAgIGlzZWFyY2gtcmVnZXhwCgkgIGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtbGF4LXdoaXRlc3Bh Y2UgICBpc2VhcmNoLWxheC13aGl0ZXNwYWNlCgkgIGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtcmVn ZXhwLWxheC13aGl0ZXNwYWNlIGlzZWFyY2gtcmVnZXhwLWxheC13aGl0ZXNwYWNlCgkgIGlzZWFy Y2gtbGF6eS1oaWdobGlnaHQtcmVnZXhwLWZ1bmN0aW9uICBpc2VhcmNoLXJlZ2V4cC1mdW5jdGlv bgoJICBpc2VhcmNoLWxhenktaGlnaGxpZ2h0LWZvcndhcmQgICAgICBpc2VhcmNoLWZvcndhcmQp CiAgICA7OyBFeHRlbmQgc3RhcnQvZW5kIHRvIG1hdGNoIHdob2xlIHN0cmluZyBhdCBwb2ludCAo YnVnIzE5MzUzKQogICAgKGlmIGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtZm9yd2FyZAogICAgICAg IChzZXRxIGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtc3RhcnQKCSAgICAgIChtaW4gKCsgaXNlYXJj aC1sYXp5LWhpZ2hsaWdodC1zdGFydAoJCSAgICAgICgxLSAobGVuZ3RoIGlzZWFyY2gtbGF6eS1o aWdobGlnaHQtbGFzdC1zdHJpbmcpKSkKCQkgICAocG9pbnQtbWF4KSkpCiAgICAgIChzZXRxIGlz ZWFyY2gtbGF6eS1oaWdobGlnaHQtZW5kCgkgICAgKG1heCAoLSBpc2VhcmNoLWxhenktaGlnaGxp Z2h0LWVuZAoJCSAgICAoMS0gKGxlbmd0aCBpc2VhcmNoLWxhenktaGlnaGxpZ2h0LWxhc3Qtc3Ry aW5nKSkpCgkJIChwb2ludC1taW4pKSkpCiAgICAodW5sZXNzIChlcXVhbCBpc2VhcmNoLXN0cmlu ZyAiIikKICAgICAgKHNldHEgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC10aW1lcgogICAgICAgICAg ICAocnVuLXdpdGgtaWRsZS10aW1lciBsYXp5LWhpZ2hsaWdodC1pbml0aWFsLWRlbGF5IG5pbAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1z dGFydCkpKSkpCgooZGVmdW4gaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1zZWFyY2ggKHN0cmluZyBi b3VuZCkKICAiU2VhcmNoIGFoZWFkIGZvciB0aGUgbmV4dCBvciBwcmV2aW91cyBtYXRjaCwgZm9y IGxhenkgaGlnaGxpZ2h0aW5nLgpBdHRlbXB0IHRvIGRvIHRoZSBzZWFyY2ggZXhhY3RseSB0aGUg d2F5IHRoZSBwZW5kaW5nIElzZWFyY2ggd291bGQuIgogIChjb25kaXRpb24tY2FzZSBuaWwKICAg ICAgKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1jYXNlLWZv bGQtc2VhcmNoKQoJICAgIChpc2VhcmNoLXJlZ2V4cCBpc2VhcmNoLWxhenktaGlnaGxpZ2h0LXJl Z2V4cCkKCSAgICAoaXNlYXJjaC1yZWdleHAtZnVuY3Rpb24gaXNlYXJjaC1sYXp5LWhpZ2hsaWdo dC1yZWdleHAtZnVuY3Rpb24pCgkgICAgKGlzZWFyY2gtbGF4LXdoaXRlc3BhY2UKCSAgICAgaXNl YXJjaC1sYXp5LWhpZ2hsaWdodC1sYXgtd2hpdGVzcGFjZSkKCSAgICAoaXNlYXJjaC1yZWdleHAt bGF4LXdoaXRlc3BhY2UKCSAgICAgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1yZWdleHAtbGF4LXdo aXRlc3BhY2UpCgkgICAgKGlzZWFyY2gtZm9yd2FyZCBpc2VhcmNoLWxhenktaGlnaGxpZ2h0LWZv cndhcmQpCgkgICAgKHNlYXJjaC1pbnZpc2libGUgbmlsKQk7IGRvbid0IG1hdGNoIGludmlzaWJs ZSB0ZXh0CgkgICAgKHJldHJ5IHQpCgkgICAgKHN1Y2Nlc3MgbmlsKSkKCTs7IFVzZSBhIGxvb3Ag bGlrZSBpbiBgaXNlYXJjaC1zZWFyY2gnLgoJKHdoaWxlIHJldHJ5CgkgIChzZXRxIHN1Y2Nlc3Mg KGlzZWFyY2gtc2VhcmNoLXN0cmluZyBzdHJpbmcgYm91bmQgdCkpCgkgIDs7IENsZWFyIFJFVFJZ IHVubGVzcyB0aGUgc2VhcmNoIHByZWRpY2F0ZSBzYXlzCgkgIDs7IHRvIHNraXAgdGhpcyBzZWFy Y2ggaGl0LgoJICAoaWYgKG9yIChub3Qgc3VjY2VzcykKCQkgICg9IChwb2ludCkgYm91bmQpIDsg bGlrZSAoYm9icCkgKGVvYnApIGluIGBpc2VhcmNoLXNlYXJjaCcuCgkJICAoPSAobWF0Y2gtYmVn aW5uaW5nIDApIChtYXRjaC1lbmQgMCkpCgkJICAoZnVuY2FsbCBpc2VhcmNoLWZpbHRlci1wcmVk aWNhdGUKCQkJICAgKG1hdGNoLWJlZ2lubmluZyAwKSAobWF0Y2gtZW5kIDApKSkKCSAgICAgIChz ZXRxIHJldHJ5IG5pbCkpKQoJc3VjY2VzcykKICAgIChlcnJvciBuaWwpKSkKCihkZWZ1biBpc2Vh cmNoLWxhenktaGlnaGxpZ2h0LW1hdGNoIChtYiBtZSkKICAobGV0ICgob3YgKG1ha2Utb3Zlcmxh eSBtYiBtZSkpKQogICAgKHB1c2ggb3YgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1vdmVybGF5cykK ICAgIDs7IDEwMDAgaXMgaGlnaGVyIHRoYW4gZWRpZmYncyAxMDArLAogICAgOzsgYnV0IGxvd2Vy IHRoYW4gaXNlYXJjaCBtYWluIG92ZXJsYXkncyAxMDAxCiAgICAob3ZlcmxheS1wdXQgb3YgJ3By aW9yaXR5IDEwMDApCiAgICAob3ZlcmxheS1wdXQgb3YgJ2ZhY2UgJ2xhenktaGlnaGxpZ2h0KQog ICAgKHVubGVzcyAob3IgKGVxIGlzZWFyY2gtbGF6eS1oaWdobGlnaHQgJ2FsbC13aW5kb3dzKQog ICAgICAgICAgICAgICAgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1idWZmZXIpCiAgICAgIChvdmVy bGF5LXB1dCBvdiAnd2luZG93IChzZWxlY3RlZC13aW5kb3cpKSkpKQoKKGRlZnVuIGlzZWFyY2gt bGF6eS1oaWdobGlnaHQtc3RhcnQgKCkKICAiU3RhcnQgYSBuZXcgbGF6eS1oaWdobGlnaHQgdXBk YXRpbmcgbG9vcC4iCiAgKGxhenktaGlnaGxpZ2h0LWNsZWFudXAgdCkgO3JlbW92ZSBvbGQgb3Zl cmxheXMKICAoaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC11cGRhdGUpKQoKKGRlZnVuIGlzZWFyY2gt bGF6eS1oaWdobGlnaHQtdXBkYXRlICgpCiAgIlVwZGF0ZSBoaWdobGlnaHRpbmcgb2Ygb3RoZXIg bWF0Y2hlcyBmb3IgY3VycmVudCBzZWFyY2guIgogIChsZXQgKChtYXggbGF6eS1oaWdobGlnaHQt bWF4LWF0LWEtdGltZSkKICAgICAgICAobG9vcGluZyB0KQogICAgICAgIG5vbW9yZSB3aW5kb3ct c3RhcnQgd2luZG93LWVuZCkKICAgICh3aXRoLWxvY2FsLXF1aXQKICAgICAgKHNhdmUtc2VsZWN0 ZWQtd2luZG93CgkoaWYgKGFuZCAod2luZG93LWxpdmUtcCBpc2VhcmNoLWxhenktaGlnaGxpZ2h0 LXdpbmRvdykKCQkgKG5vdCAobWVtcSAoc2VsZWN0ZWQtd2luZG93KSBpc2VhcmNoLWxhenktaGln aGxpZ2h0LXdpbmRvdy1ncm91cCkpKQoJICAgIChzZWxlY3Qtd2luZG93IGlzZWFyY2gtbGF6eS1o aWdobGlnaHQtd2luZG93KSkKCShzZXRxIHdpbmRvdy1zdGFydCAod2luZG93LWdyb3VwLXN0YXJ0 KSkKCShzZXRxIHdpbmRvdy1lbmQgKHdpbmRvdy1ncm91cC1lbmQpKQoJKHNhdmUtZXhjdXJzaW9u CgkgIChzYXZlLW1hdGNoLWRhdGEKCSAgICAoZ290by1jaGFyIChpZiBpc2VhcmNoLWxhenktaGln aGxpZ2h0LWZvcndhcmQKCQkJICAgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1lbmQKCQkJIGlzZWFy Y2gtbGF6eS1oaWdobGlnaHQtc3RhcnQpKQoJICAgICh3aGlsZSBsb29waW5nCgkgICAgICAobGV0 KiAoKGJvdW5kIChpZiBpc2VhcmNoLWxhenktaGlnaGxpZ2h0LWZvcndhcmQKCQkgICAgICAgICAg ICAgICAgKG1pbiAob3IgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1lbmQtbGltaXQgKHBvaW50LW1h eCkpCgkJCSAgICAgICAgICAgICAoaWYgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC13cmFwcGVkCgkJ CQkgICAgICAgICBpc2VhcmNoLWxhenktaGlnaGxpZ2h0LXN0YXJ0CgkJCSAgICAgICAgICAgICAg IHdpbmRvdy1lbmQpKQoJCSAgICAgICAgICAgICAgKG1heCAob3IgaXNlYXJjaC1sYXp5LWhpZ2hs aWdodC1zdGFydC1saW1pdCAocG9pbnQtbWluKSkKCQkJICAgICAgICAgICAoaWYgaXNlYXJjaC1s YXp5LWhpZ2hsaWdodC13cmFwcGVkCgkJCSAgICAgICAgICAgICAgIGlzZWFyY2gtbGF6eS1oaWdo bGlnaHQtZW5kCgkJCSAgICAgICAgICAgICB3aW5kb3ctc3RhcnQpKSkpCgkJICAgICAoZm91bmQg KGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtc2VhcmNoCgkJCSAgICAgaXNlYXJjaC1sYXp5LWhpZ2hs aWdodC1sYXN0LXN0cmluZwoJCQkgICAgIGJvdW5kKSkpCgkJKHdoZW4gbWF4CgkJICAoc2V0cSBt YXggKDEtIG1heCkpCgkJICAoaWYgKDw9IG1heCAwKQoJCSAgICAgIChzZXRxIGxvb3Bpbmcgbmls KSkpCgkJKGlmIGZvdW5kCgkJICAgIChsZXQgKChtYiAobWF0Y2gtYmVnaW5uaW5nIDApKQoJCQkg IChtZSAobWF0Y2gtZW5kIDApKSkKCQkgICAgICAoaWYgKD0gbWIgbWUpCTt6ZXJvLWxlbmd0aCBt YXRjaAoJCQkgIChpZiBpc2VhcmNoLWxhenktaGlnaGxpZ2h0LWZvcndhcmQKCQkJICAgICAgKGlm ICg9IG1iIChpZiBpc2VhcmNoLWxhenktaGlnaGxpZ2h0LXdyYXBwZWQKCQkJCQkgICAgaXNlYXJj aC1sYXp5LWhpZ2hsaWdodC1zdGFydAoJCQkJCSAgd2luZG93LWVuZCkpCgkJCQkgIChzZXRxIGZv dW5kIG5pbCkKCQkJCShmb3J3YXJkLWNoYXIgMSkpCgkJCSAgICAoaWYgKD0gbWIgKGlmIGlzZWFy Y2gtbGF6eS1oaWdobGlnaHQtd3JhcHBlZAoJCQkJCSAgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1l bmQKCQkJCQl3aW5kb3ctc3RhcnQpKQoJCQkJKHNldHEgZm91bmQgbmlsKQoJCQkgICAgICAoZm9y d2FyZC1jaGFyIC0xKSkpCgoJCQk7OyBub24temVyby1sZW5ndGggbWF0Y2gKCQkJKGlzZWFyY2gt bGF6eS1oaWdobGlnaHQtbWF0Y2ggbWIgbWUpKQoJCSAgICAgIDs7IFJlbWVtYmVyIHRoZSBjdXJy ZW50IHBvc2l0aW9uIG9mIHBvaW50IGZvcgoJCSAgICAgIDs7IHRoZSBuZXh0IGNhbGwgb2YgYGlz ZWFyY2gtbGF6eS1oaWdobGlnaHQtdXBkYXRlJwoJCSAgICAgIDs7IHdoZW4gYGxhenktaGlnaGxp Z2h0LW1heC1hdC1hLXRpbWUnIGlzIHRvbyBzbWFsbC4KCQkgICAgICAoaWYgaXNlYXJjaC1sYXp5 LWhpZ2hsaWdodC1mb3J3YXJkCgkJCSAgKHNldHEgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1lbmQg KHBvaW50KSkKCQkJKHNldHEgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1zdGFydCAocG9pbnQpKSkp KQoKCQk7OyBub3QgZm91bmQgb3IgemVyby1sZW5ndGggbWF0Y2ggYXQgdGhlIHNlYXJjaCBib3Vu ZAoJCShpZiAobm90IGZvdW5kKQoJCSAgICAoaWYgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC13cmFw cGVkCgkJCShzZXRxIGxvb3BpbmcgbmlsCgkJCSAgICAgIG5vbW9yZSAgdCkKCQkgICAgICAoc2V0 cSBpc2VhcmNoLWxhenktaGlnaGxpZ2h0LXdyYXBwZWQgdCkKCQkgICAgICAoaWYgaXNlYXJjaC1s YXp5LWhpZ2hsaWdodC1mb3J3YXJkCgkJCSAgKHByb2duCgkJCSAgICAoc2V0cSBpc2VhcmNoLWxh enktaGlnaGxpZ2h0LWVuZCB3aW5kb3ctc3RhcnQpCgkJCSAgICAoZ290by1jaGFyIChtYXggKG9y IGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtc3RhcnQtbGltaXQgKHBvaW50LW1pbikpCgkJCQkJICAg IHdpbmRvdy1zdGFydCkpKQoJCQkoc2V0cSBpc2VhcmNoLWxhenktaGlnaGxpZ2h0LXN0YXJ0IHdp bmRvdy1lbmQpCgkJCShnb3RvLWNoYXIgKG1pbiAob3IgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1l bmQtbGltaXQgKHBvaW50LW1heCkpCgkJCQkJd2luZG93LWVuZCkpKSkpKSkKCSAgICAoaWYgbm9t b3JlCiAgICAgICAgICAgICAgICAod2hlbiAob3IgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1idWZm ZXIKICAgICAgICAgICAgICAgICAgICAgICAgICBpc2VhcmNoLWxhenktY291bnQtc3RhcnQpCgkJ ICAoaWYgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1mb3J3YXJkCgkJICAgICAgKHNldHEgaXNlYXJj aC1sYXp5LWhpZ2hsaWdodC1lbmQgKHBvaW50LW1pbikpCgkJICAgIChzZXRxIGlzZWFyY2gtbGF6 eS1oaWdobGlnaHQtc3RhcnQgKHBvaW50LW1heCkpKQoJCSAgKHJ1bi1hdC10aW1lIGxhenktaGln aGxpZ2h0LWludGVydmFsIG5pbAoJCQkgICAgICAgJ2lzZWFyY2gtbGF6eS1oaWdobGlnaHQtYnVm ZmVyLXVwZGF0ZSkpCgkgICAgICAoc2V0cSBpc2VhcmNoLWxhenktaGlnaGxpZ2h0LXRpbWVyCgkJ ICAgIChydW4tYXQtdGltZSBsYXp5LWhpZ2hsaWdodC1pbnRlcnZhbCBuaWwKCQkJCSAnaXNlYXJj aC1sYXp5LWhpZ2hsaWdodC11cGRhdGUpKSkpKSkpKSkKCihkZWZ1biBpc2VhcmNoLWxhenktaGln aGxpZ2h0LWJ1ZmZlci11cGRhdGUgKCkKICAiVXBkYXRlIGhpZ2hsaWdodGluZyBvZiBvdGhlciBt YXRjaGVzIGluIHRoZSBmdWxsIGJ1ZmZlci4iCiAgKGxldCAoKG1heCBsYXp5LWhpZ2hsaWdodC1i dWZmZXItbWF4LWF0LWEtdGltZSkKICAgICAgICAobG9vcGluZyB0KQogICAgICAgIG5vbW9yZSB3 aW5kb3ctc3RhcnQgd2luZG93LWVuZCkKICAgICh3aXRoLWxvY2FsLXF1aXQKICAgICAgKHNhdmUt c2VsZWN0ZWQtd2luZG93CgkoaWYgKGFuZCAod2luZG93LWxpdmUtcCBpc2VhcmNoLWxhenktaGln aGxpZ2h0LXdpbmRvdykKCQkgKG5vdCAobWVtcSAoc2VsZWN0ZWQtd2luZG93KSBpc2VhcmNoLWxh enktaGlnaGxpZ2h0LXdpbmRvdy1ncm91cCkpKQoJICAgIChzZWxlY3Qtd2luZG93IGlzZWFyY2gt bGF6eS1oaWdobGlnaHQtd2luZG93KSkKCShzZXRxIHdpbmRvdy1zdGFydCAod2luZG93LWdyb3Vw LXN0YXJ0KSkKCShzZXRxIHdpbmRvdy1lbmQgKHdpbmRvdy1ncm91cC1lbmQpKQoJKHNhdmUtZXhj dXJzaW9uCgkgIChzYXZlLW1hdGNoLWRhdGEKCSAgICAoZ290by1jaGFyIChpZiBpc2VhcmNoLWxh enktaGlnaGxpZ2h0LWZvcndhcmQKCQkJICAgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1lbmQKCQkJ IGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtc3RhcnQpKQoJICAgICh3aGlsZSBsb29waW5nCgkgICAg ICAobGV0KiAoKGJvdW5kIChpZiBpc2VhcmNoLWxhenktaGlnaGxpZ2h0LWZvcndhcmQKCQkJCShv ciBpc2VhcmNoLWxhenktaGlnaGxpZ2h0LWVuZC1saW1pdCAocG9pbnQtbWF4KSkKCQkJICAgICAg KG9yIGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtc3RhcnQtbGltaXQgKHBvaW50LW1pbikpKSkKCQkg ICAgIChmb3VuZCAoaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1zZWFyY2gKCQkJICAgICBpc2VhcmNo LWxhenktaGlnaGxpZ2h0LWxhc3Qtc3RyaW5nCgkJCSAgICAgYm91bmQpKSkKCQkod2hlbiBtYXgK CQkgIChzZXRxIG1heCAoMS0gbWF4KSkKCQkgIChpZiAoPD0gbWF4IDApCgkJICAgICAgKHNldHEg bG9vcGluZyBuaWwpKSkKCQkoaWYgZm91bmQKCQkgICAgKGxldCAoKG1iIChtYXRjaC1iZWdpbm5p bmcgMCkpCgkJCSAgKG1lIChtYXRjaC1lbmQgMCkpKQoJCSAgICAgIChpZiAoPSBtYiBtZSkJO3pl cm8tbGVuZ3RoIG1hdGNoCgkJCSAgKGlmIGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtZm9yd2FyZAoJ CQkgICAgICAoaWYgKD0gbWIgKHBvaW50LW1heCkpCgkJCQkgIChzZXRxIGZvdW5kIG5pbCkKCQkJ CShmb3J3YXJkLWNoYXIgMSkpCgkJCSAgICAoaWYgKD0gbWIgKHBvaW50LW1pbikpCgkJCQkoc2V0 cSBmb3VuZCBuaWwpCgkJCSAgICAgIChmb3J3YXJkLWNoYXIgLTEpKSkKICAgICAgICAgICAgICAg ICAgICAgICAgKHNldHEgaXNlYXJjaC1sYXp5LWNvdW50LXRvdGFsICgxKyAob3IgaXNlYXJjaC1s YXp5LWNvdW50LXRvdGFsIDApKSkKICAgICAgICAgICAgICAgICAgICAgICAgKHB1dGhhc2ggKGlm IGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtZm9yd2FyZCBtYiBtZSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaXNlYXJjaC1sYXp5LWNvdW50LXRvdGFsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlzZWFyY2gtbGF6eS1jb3VudC1oYXNoKQoJCQk7OyBBbHJlYWR5IGhp Z2hsaWdodGVkIGJ5IGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtdXBkYXRlCiAgICAgICAgICAgICAg ICAgICAgICAgICh1bmxlc3MgKG9yIChhbmQgKD49IG1iIHdpbmRvdy1zdGFydCkgKDw9IG1lIHdp bmRvdy1lbmQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobm90IGlzZWFy Y2gtbGF6eS1oaWdobGlnaHQtYnVmZmVyKSkKCQkJICA7OyBub24temVyby1sZW5ndGggbWF0Y2gK CQkJICAoaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1tYXRjaCBtYiBtZSkpKQoJCSAgICAgIDs7IFJl bWVtYmVyIHRoZSBjdXJyZW50IHBvc2l0aW9uIG9mIHBvaW50IGZvcgoJCSAgICAgIDs7IHRoZSBu ZXh0IGNhbGwgb2YgYGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtdXBkYXRlJwoJCSAgICAgIDs7IHdo ZW4gYGxhenktaGlnaGxpZ2h0LWJ1ZmZlci1tYXgtYXQtYS10aW1lJyBpcyB0b28gc21hbGwuCgkJ ICAgICAgKGlmIGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtZm9yd2FyZAoJCQkgIChzZXRxIGlzZWFy Y2gtbGF6eS1oaWdobGlnaHQtZW5kIChwb2ludCkpCgkJCShzZXRxIGlzZWFyY2gtbGF6eS1oaWdo bGlnaHQtc3RhcnQgKHBvaW50KSkpKSkKCgkJOzsgbm90IGZvdW5kIG9yIHplcm8tbGVuZ3RoIG1h dGNoIGF0IHRoZSBzZWFyY2ggYm91bmQKCQkoaWYgKG5vdCBmb3VuZCkKCQkgICAgKHNldHEgbG9v cGluZyBuaWwKCQkJICBub21vcmUgIHQpKSkpCgkgICAgKGlmIG5vbW9yZQoJICAgICAgICAod2hl biAoYW5kIGlzZWFyY2gtbGF6eS1jb3VudCBpc2VhcmNoLW1vZGUpCiAgICAgICAgICAgICAgICAg IChzZXRxIGlzZWFyY2gtbGF6eS1jb3VudC1jdXJyZW50CiAgICAgICAgICAgICAgICAgICAgICAg IChnZXRoYXNoIGlzZWFyY2gtb3RoZXItZW5kIGlzZWFyY2gtbGF6eS1jb3VudC1oYXNoKSkKICAg ICAgICAgICAgICAgICAgKGZ1bmNhbGwgKG9yIGlzZWFyY2gtbWVzc2FnZS1mdW5jdGlvbiAjJ2lz ZWFyY2gtbWVzc2FnZSkgbmlsIHQpKQoJICAgICAgKHNldHEgaXNlYXJjaC1sYXp5LWhpZ2hsaWdo dC10aW1lcgoJCSAgICAocnVuLWF0LXRpbWUgbGF6eS1oaWdobGlnaHQtaW50ZXJ2YWwgbmlsCgkJ CQkgJ2lzZWFyY2gtbGF6eS1oaWdobGlnaHQtYnVmZmVyLXVwZGF0ZSkpKSkpKSkpKQoKKGRlZnVu IGlzZWFyY2gtcmVzdW1lIChzdHJpbmcgcmVnZXhwIHdvcmQgZm9yd2FyZCBtZXNzYWdlIGNhc2Ut Zm9sZCkKICAiUmVzdW1lIGFuIGluY3JlbWVudGFsIHNlYXJjaC4KU1RSSU5HIGlzIHRoZSBzdHJp bmcgb3IgcmVnZXhwIHNlYXJjaGVkIGZvci4KUkVHRVhQIG5vbi1uaWwgbWVhbnMgdGhlIHJlc3Vt ZWQgc2VhcmNoIHdhcyBhIHJlZ2V4cCBzZWFyY2guCldPUkQgbm9uLW5pbCBtZWFucyByZXN1bWUg YSB3b3JkIHNlYXJjaC4KRk9SV0FSRCBub24tbmlsIG1lYW5zIHJlc3VtZSBhIGZvcndhcmQgc2Vh cmNoLgpNRVNTQUdFIGlzIHRoZSBlY2hvLWFyZWEgbWVzc2FnZSByZWNvcmRlZCBmb3IgdGhlIHNl YXJjaCByZXN1bWVkLgpDQVNFLUZPTEQgbm9uLW5pbCBtZWFucyB0aGUgc2VhcmNoIHdhcyBjYXNl LWluc2Vuc2l0aXZlLiIKICAoaXNlYXJjaC1tb2RlIGZvcndhcmQgcmVnZXhwIG5pbCBuaWwgd29y ZCkKICAoc2V0cSBpc2VhcmNoLXN0cmluZyBzdHJpbmcKCWlzZWFyY2gtbWVzc2FnZSBtZXNzYWdl Cglpc2VhcmNoLWNhc2UtZm9sZC1zZWFyY2ggY2FzZS1mb2xkKQogIChpc2VhcmNoLXNlYXJjaCkK ICAoaXNlYXJjaC11cGRhdGUpKQoKKHByb3ZpZGUgJ2lzZWFyY2gpCgo7OzsgaXNlYXJjaC5lbCBl bmRzIGhlcmUK --__15407725501702221abhmp0016.oracle.com Content-Type: image/png; name="throw-isearch-count-2018-10-28.png" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="throw-isearch-count-2018-10-28.png" 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 iup//qd8ZGwwOCwvsa+++urpp5/WaDSbNm3aunXrgKW+vtbujUseAODewKVrvIczF3acH7tsUWRr a6vlSmlpaRcuXNi2bVt+fr7Ymg0bNqxYseL27dvr169fuXLlYO+Ec9IWpN28ea5X0+Xk+hNjoh9+ VPDiC9krs1b6Mi4XSKVSuVsEAqf+ol5dXd3o0aN1Op2vd8RHkUilUlt7ameRP0hLS1Mqb23c+Ibp o1Bce+utDaWlpZWVlWq1+sEHIyWSoqKirdzSFxYlJs9b6uq15nyr3huXPADAPePq1av1bZOZ2A0f RP5os3ctLS1NpVKFhtrrlKqqqgoLCwsMDJw2bZp7v3Bb/W3ei7+7c11rpq9qtdrWmqrubm6i827n shff8pMONqlU+uSTT2o0mqamppiYGG6mXq8nhDAMQynlpk0YhmlsbBw3bpxGo6moqEhPT3dYRV1d XUJCQm9vrydBOlORjyKxU7vbgUmlUmdW83CvuXTtRs1x7uulK7W7SveXy75ds2YNpfTxxx//qPDd f3jxmWmTJ40ezSeE7P+i6M13v3X16nC+VQfnkgcAACcZetciHl8Y9rPN3rWSkpL8/HzL+ZRSLlGg lF6/fn3s2LFRUVEPPfTQ888/7+ov3AsWpB04+Omft4rXvfGq6RM1ZkRBQeGvf+2F2z+3F0ufX9Ct VnMfjVY74NPW1q5UKpVKZW9PL/dpae+SlR/3k941uVw+adKkrq6uu3fvBgQEqFQqtVrd3d3d29ur Uql6enq4r2q1Wq1Wd3V1KZXKnp4elmVbW1vb29ud6Vvq6OiIjIx0u3eNy2y80onlRiRSqXTevHmH Dh2yDEAqlS5cuPDgwYNuxCaXy5OSkmbMmDHZhoSEhDFjxhw+fNiTHS8pKdm48Y1rV39QdatvNNz6 9//82/4Dxzo7O8eOHTt//nw+n9+l7P18z98iIkZQPWVYcu3K6SOVN129ypxv1UG45AEAwHlc7xrv 6TX2HoaWlJSIxWLzOdRATwihVE8pPX/+h9jYuMjISD6fP2nSpGXLlrn04/uLL/76x/x/aWmrVXW3 q7rblao2paotJCTgm4MnhcIMj3bRbC8ynpsXER4+YsSI0NDQ0NBQhmECzQwfPsz0YXnskUNnHhjN 96t0LTY2Vq1W9/T0BAYGDuhO02g0LMvqdLqAgACNRkMIYRhGp9MFBwer1eqOjg5fp2tcSnTt2rWh StfkcnliYuKdO3eio6MHLNLr9Xw+373Y5HL5jBkzNBqN3ragoCCFQuF5uqZRNYeFhWz5oPQd8ftV VVUKhUKlUl25cqWxsVGj0TTdarnZ2PjYowkTY8ZePnfiSFWTT9M1X1/yAADgPC5dc+EPeXBZgl6v 63/D0imVyuDgYEJIVFTUE088UVpa6uRQZULIqldWfPjRnwgh3apupVLV3a3u6enVaDRjHoyc8nDc S8sz3dgxW0JCQurrb3Cf5uafrX4uXrleW99UW9/kdi1W9935BrGF69vg8XixsbGxsbFxcXFxcXHc dEJCQlxcXEJCQmxsrKnXh8fjcVt5WK9DXK7GPWWTGvm6UqsiIiIGVC2VSqdMmeLJE15CSFNTU11d XV1d3Y0bNwgh7e3tdXV1hJC6urr29nZPSjZ3925XS2vHvLmP5b2z7oP3N/9r/ibxO28WFb73YcGW zz/d2dby07y5j7EM097Rqff5Ie3ji0seAAD+n71zD4uqzv/49wwzw8wwMBcuIyAIEYoXNPlRYk/6 W8j8JRbbZU1LRUsNV9OlLdPc8le7Pc8+Pd0odyuzfk+0v921Z7O21MElCgsUUpS4ilyHO8EwzMy5 zJz7748vTCMYnBku+mu/r+f7jGfOOXPO94CfOR/en8vxA0nu2phvbd7zKgoCw7B6vR7DMK1Wu3Tp 0uzsbCDZQeE5ftmylOaWqkGb3Wq1D1rtQ0MOp5PEcWpRcuLNN8dkZGSkX4tJXTQAAIC6y62lJVVw 1F1utQ4R1iGptQjjUFxcPGp68O3k5zwqQU0K0+2umc3m1atXQ38I/l7S0tKSk5Nn3mPjed5oNEZH R3uvTEhIEEXR4XBM5siRkZFxcXFxcXGxsbEAAIPBEBcXBwCIi4szGAyTObI3ISHasFB9VubK+7PS H8vO2vX4Ou+Rs+2BtNRFSfPiDPrgqTrj+HhM/ssvv1y7dpVOF6LX6++77+7CwkKB5ydj8ggEAoHw gwkqQ2FkRBB4GA2BoRAYHQEwSgLEBfPnb9++bfv2x7Ky7l11553xcfHJCxMuVdZIiY+cPPX5lq0P d3ZbaJqhSBfLshzPuyg3Sbj0+pBbUhY8/MgD2Vse2fLohuwtD23fsTnn19k5O7euW792Vca90uMv +fn5v1q3Sq/Xed+5Gxs67lixJHbOrNg5syLCDRq1knIPyzDNTR2Jc2P9Dobm5+fn5+fD6Xnfw/wO GMHcNZqmGYZRKpXuiSAIgiAIlUpFkqTT6ZymYCjU1WD41YNCodBoNBEREWfOnPEvROjHTBITE9va 2qKjowmCKC8vh+c1m8233367y+Vqa2tbuXKlHzNpamqaN29ebW1tX1+fyWRqaGggCEIURbVaXVBQ 0DwC3NPvmlwYDO1sq8MJinK5I8INEeGG6pqmb0ov/e3j00XF57/+puLrbyo+Pl5Ufr72ZEFp+cVW 65A7fwSJ/6l8DYZCk//00+MvvXRo69b1zz23d8OGLKVS+ec/vxNhmnXP2rWP79jhn8kjEAgEwieG c9ekuGs8z3k7aiIQRUEEGID+myAKHM+JgqDX640Gg8GgFzh30dclUr67jx49umv3tu+rK3kekARJ u1mGZt1umiLdAAPKQAUvMG7aSRJDpMtut/cPWHt7ezrbLG1Fhecm6a7hFBURfpU6MlXu2tatWz23 0vz8fLhyMgV00F1zu90kScbHx6smQqPR9Pf3BwYGTp+7Zjabb731VhhyHYtSqTQYDCUlJX54bP5l 0ZWVlSUlJYmiSNM01NhwHI+KisJxvKGhwT/HEbproaGhJpMJABAWFqbX66GvlpaWlpqamvTTREdH FxYWSjkvdNfcRK9Go/KM9/M/37Xn2feOfvDM/gOe8ei2nY8+lvPEbw54emqsX7/+tttuk2IIvrpr 0OT37fvNli0PrV69Kjw8oa+vXavV6HTBp06dWr16DcAAAMAPk0cgEAiET/iQuwaDniL8B0ZBxZFX UeB5XqNWh4aGGvR6lUodHh4RqFRKnARBuFhOsA3YLW2dLxx6e1fO7x/f9t85217YlfP7bVue2/jQ vk3rn9m8YX/2xgObH96fvfHZRzcf3PHY8/ufehUAkJGRkZGR4ff1m2ZFwACoZ8D1FEn5fcxReKS1 yTc7gJFQhUIh/SPiiAg6HWRmZl64cMFisQyOweVyAQA0Gg2Q3AtjSubT2toaGhqq0+nMZvPZs2dT UlIoiurq6ppkow1P7hoAwGKxtLW1AQBmzZo1/qeCg32LWlosPY3NHZ5hd+D33HPPhJ+aP3++T2eR jiAIAs+XlHy3fPl/REYuqK8vI0mKIKioqOiiopKBgQEZhhmNRj9MHoFAIBB+IEldYxkaOmrijwrb cDAUDOe4CIIgcBwXGKgUBL6l6XJh0TdS/tTOz8/fvWdHxcWKb89UFJjNv3v+yaf27X76mT3jjKf2 PZH75M49ex/fvXv7nr27t2zZmpk5wY0NqmuCKPT02Sg3AwfcRJEUezUAgJrqKzfdFF1UWOZ3ZehU 6WqQpqamOXPmSA+GUhSF43hgYKDL5Zq+YGhiYuKFCxegnue9nmVZmqa1Wm1wcHB/f7+vypbfNarn zp2bO3euSqVyOBxGo1GhULAsW1dX53fZJlTXNBqNXq/X6/UAAL1ebzAYmpubk5KSurq6BgYGhoaG nE6nXq+32Ww9PT2wChUAoFarJap6UF3DeFuoUecZrx/+275nDhw7dqyoqKi8vLyqqio1NRUAUFZW dvz48bS0tLy8PFEUY2JiXnzxxelQ11iG5gX+lVde27jxfpale3u7CYLEcTI0NOKzz07+MisrKChI oVDwPO+rySMQCATCJ3xT16CWxvEcx3HiiNgmejlqLMtAz00XEgKVFcnwFOX6/tKVsLDQrt7q3h/q rzl6+urg6Oyu6eyu7eqube+qrqo946alimFt7b0Fp0pHjW/OXBo7omeFAgBSUxb5chVX4Z2yNiUp 2BiGAQBYltVLwGg0gmlW1yCZmZnt7e0wxFw9Ao7jgiC4XK6goKBpPfvYyZw8eVKtViclJREEIQhC WVnZ5Dv31tfX19TU1NTUAAAaGhqgugYAmD17dkJCQkJCAqw8MBqNCQkJAICEhAT48/eJjq4fvNU1 juMBABs2bMjNzc3Nzc3JyYG7LV++PDc3FwCQm5u7fPnySV7aOAiCwHP8ypXLyssvtbRcpigXSVIG Q0R8fFJGxh2wpwzD0P6aPAKBQCB8w4dGHtIJ1vp2n25saKusLKPcjmEBTxThgnfzAPiW4ziO4zmW c9M0Q7P1NU1dnX0SzxI/J3LXrnUTjs2b7r4jfZnvF/0jY/2zKWnkIQiCVqutr6+vvZrq6uqamhrv NVVVVRiGYRg2qg5gOoAeG47jYKS/f1tbG8MwLMuO3xl/miZTUFAQFBQUFRVVVlY2JcdcsGBBcnJy cnIyACApKQk6ZwCA6urqyspKAEBdXV1LS4vNZgMA2Gw2qK75Suxs09ybYz0j5ZYkAMDevXu3b98O ANi/f39eXl5eXh68qLKysry8vCm5uvG5994HP/rok4sXq3Gc1OnCTKaYlJTbTp0qgvbovaevJo9A IBAIn5DkrnE8x/Ecz/NQUeM4jud5+MrzPMexI1X/vCgKIhB5wYdIliAIFy9ciYiIsHRe4nmegwre yCvDsCzLsSxH06zbzbgomiJdBElRpKuvz1pddUUhv3a2+zXBnfiEwzpElBZ/J/2Yo/DOV/MOg07S Y4PuGqy7DA4O1mq1QUFBQUFBWq1Wq9WGhIQEj6DVao1GY1BQEOxBP5mTSiQzM9OjOUGPraGhYQY8 xZ+ipKTE6XROVZeNUblrcAEAsHjx4qVLlwIAFi5c6FHUPBqbr9TUt1+qbj5fUQeHbcgBAHjrrbfe f/99AMDLL78MZTaoqHk0tumD4zle4NesuXvduodLS8/v2vXspk05hw794bdP5gIA7rv/gerqap7n /TN5BAKBQPiKJHcNfi/zHMfz/Ej0k4Wv/IgbB4DIC9B/44EvTkK7pTM7+xGGcdM043YzbjftdjEu l9vtYijKRVFut5smSRfuJEjS5XQSBEnhThLHqc6Ovs8+LTpxYiqT2WHBQXffNdL4pDC2tmCqPDbo eLEsy3Fcd3d3T0/P4OAgjuMOh8PpdNpsNpjmPzAw0NfX197eDp9qMDPuGrj6uZlwWaFQkCQ5M2c3 ewEAoGm6tbUV9rAdtclXRFH09F0DAMTFxcXHx8NNXV1dLS0tUEuDC1Bgs1gsfghsyQvmpCy++bbU hXAYDToAwLFjx6CoBgDIGwEKbEeOHJlWgQ0atTwgICM9PefxPUfefffwW29u3rRxUfJwhsDm7K0V FRUMy/hh8ggEAoHwFUmlBiSB8zzv6ZwJm3qIP4Yth+tDPes6LS3/PHFaYqnB2nvv+mXWfbUNZ1iG dbsZt4umacblol1uGi67XTT02yjShTtJgqDcLto6MHT+fHVbS+emTZulnOVX61YFBgYy9I8N7ktL qjo6foADpyiZXAHrDyiSarximTcvrr6mxaeHlv5UHain7MDvmgNYagArLm02m8lkSkhIMJlM4eHh YWFh4eHhBoNBp9PpdDqZTAbLEXie1+l0VquVoqgZeGYouPqBoU1NTTExMRRFzUypQVNTU2ZmZlNT E3ybmZmZmJjo/RYuS++F5jmsyWRSjql5hKUGISEhRqPRI6oZjUYY/PXkDvpUavBdWUlH90BnZ293 z0B3z8Dhdz5+/tChRYsWpaWlpaWlAQDSRoiJiQEApKamwvXTVGpAErggCBiGyWSYTIZhMkypUGo0 am1QUFRU5LlzZRiG/eOT40sWJ8fEzMYwTLrJIxAIBMInhksNKion3nVEReMEgYdKmyAMv/ICLwiC R3WDIpzgS2TETdFqjZIkXQ4H4XDgTidpt2MIASgAACAASURBVOO4k3TYcbsdtw85rdahwUH7oNVu HRgaHLQP2Rx2u7O3p/9fBWdPny6UeJZrPrHgjhVL7lixJGlRwsL5N4UZtN6bcNznJxwUj/BTm3w9 4CigK8zzfEREREBAQENDQ2VlZWVlJcMwNE2zLMswjMFgYBgGwzBBEGQymR8PQpgqVCpVbW3t5DP9 J8Qjm40611jBz1cyMzNLSkoKxgC3wty1qUpfS5ob662uBQcHgeuauwZNHgBRrVaFhobGxsTEx8+J j5sTGzt73boHd+/+Ndxt+46dBEEwNO2TySMQCATCVwIMK/5L0z+eunbw4EGCcAqCIIoCEEUwkqcC XQHPqygIYKREoLO99fOThRLVtT+9/WZza31ra/OIu0Y4nQSOkw4HTuCU3YE7HQR03QYH7U4nSRDk 4KC9vq65s6N308ZNUi4yPz8/856VBn2wt7oGAmS6kCAAgEatBF7+HMuyjVcscfFRzVc6fVLXpg+P uoZhGEVRkZGRcrm8v78fiiVGo9HTlU2hUAwODgYEBGAYptfr+/v7XS7XzKhrHsxm87Jly6xW6+Dg 4Ay0yYXSGlyGoprnpONskkjitWhqakpKSjKZTJGRkZGRkQCAiIgIj7qmVqv9UNdKSs50dlu7uvqg utbQaMnZuWfNmjVZWVkAgLvuustbWouJiYHSGpgedc3b5DGAyeUBCoVcpVIFBgYGBgZiGBYXFxcd FVVSehYAsO7B+xUKRW93xxenJJk8AoFAIHxiWF1LXTrBfgRBjChqAsdzwhiGm3qIIs974qRSRZ3i 4uKY6Hm/WHH/EztfenLPH/c9+cozv331wNOvHXj6td/tzzu4/41DB9964fk//eGFd/740nuvv/Lh G69++Mar+W8f/vu3ZyoKzKcnc/2aIM3YHrk3LJ6aWXjHFQSBpmnvKlq5XK5SqRQKBXTdRFHkOA62 /5hJzGbzkiVLnE5nY2PjDEhrnpOOWpCyaZJMYe4a5exbvCA+9ZbEGyR3bZTJwwxIWGssk8mUSqXB oP/Ff678618+/ODou3aHg6YZpK4hEAjEtDJx7trGjRtVgXJPXhoAQBAEDABBFDEAxBE3Aq4XARAE vsPSesL8pcQ/tbf6xebN2dIvEqprdgdRWFDScLkNjg5L9zVHb3c/TrhuNHUNdskXBIEgCJPJxPN8 f38/3GowGJRKpUqlCggIEEWxr69PJpMBAEJCQqxW6wyra4mJiaWlpVar1W9fzdeZQLkLAq6Oe3o2 wYWpch+hujaFuWubH1px6ewn1ReL62vLq7776mJ5cfnF5j25B69X7tr4Jo8BECCTyeUBAXK5KAKl UqlRq3/o7TpZUITUNQQCgZhyoLqGrfvH621/Sfn8ncTGxsaxO6Wnpx95902NEsMA7AohAoAJooDB peGKRUwYDo+KAABBFCouVh754O+Tz9aaKtIz0g+/+xxFUh1tvRI/YggLPv3FuVdePTytE5NOYWHh rFmzFAoFwzAmk0mtVsPaTwCAXC6Xy+UymYzjOIIgmpubVSqVKIqxsbENDQ02m02Km2KxWObOncsw zIR7Tjd+zMRbORt1seNs8huz2XznnXeO/5gpHMe/+uoriWe8ZslwfX39hM+Yunz58oIFC6QYmvSf qkST5ziWZVma4WQYJlcEVH5f/d7/HLtxTB6BQCB+Npw4ceLb5qwJ3DXgb/uJG+qLOz0jff36u3z6 CE6xjXUtR9//aJqm5Ae+hvN0Op3D4ZixiOS/D9J/EZP54Uu0u+kwtJ+BySMQCMTPBqnu2s+D9Ayf 70DFX6PbDwKBQCAQiOvJv5e7hkAgEAgEAvH/DuiuTcszQxEIBAKBQCAQUwVy1xAIBAKBQCBuaJC7 hkAgEAgEAnFDg9w1BAKBQCAQiBua4VKDlTd/cb1ngkAgEAgEAoEYzY+VoV//b8o19xi/FyjCV/45 NHS9p4BAIBDTwn0Gw/WeAgJxA4Hj+DXXBwcHOxwOnw61Kvt7WUXlVEwKgUAgEAgEAjE9oNw1BALx f+ydb2wT15bAz4x3FUGT0EC1zR8pZDpY9msKqImRgrRZokCW9INHT8nuW0XPgFZPNkL9MEFaplne VnnWqhRF2yVpVaEyq6cWR42qKtkqw4cggoWJhNADTJduJIOfO+AqibWvIgG3Wpqn9eyHmfHfuROP cf7R81OExPG95557zpnx3ONrXwRBEGRDQ7veXG8TEARBEARBEDKboroWDLOsxInZooTAhkS5sGlC 4CSWlVhWYrlwsGwWJEVOYtkyKlxjqIDH5nLRM+tngN9FB+Krodbm8tDWFVN+j83lsrlcNpdnHd2y 7qxSXIjDrXcePierbb+qP/fPQ8c3vd8QBHl+bM2/Orx0r+5YT53hyxUVFWtskBFMHb/7x7HFur7W tKiyi29qLdjWKot3Run9Ny/t5nkH31fHlDhelBP+3NdVmSWpaO2r33r18fbSdapEnj17rv4ls7cH tlynXu5RdpZBGe3xQ0+HtT4dPmXvtjKMXaCWuj4BB3sUS7rjAfpLWpn6POXzKb7y+GQjYxavVYoL adyy5uE6sMr2U/cmoO1C6uNTsHABTtxOvaen999sDr85t2xZbxMQZAOxvLxsKK+oqPjpp58sqbr4 n4kiq2tylGMlVkjk17NI8jzU8pgQVhsHhRDLSpyQSCvRS2IhTkykO8nBMGdUJwsKWuPc6lpCYKVD Z5/Ojl9Tq2tqNU4WQywrsVxUBtCLZHmFutwJiSGWjcyO39JKdLkVtZiqLdv4bDvZkCAafw8khzit l3Zov4f2BHTxDO1x6fIAlW4+E9DlHjqQWV9TfpfN5aIDcSrgp10um8evd4lnSkeeAO3JKj49DNCa 3J/Rb8nOeIB2uaiIROur//SKn2jPjF9rmVXF0aoFfr+RPbofPH4q4M/raMyjQKZLui3Bn5TfZesZ yUwh7f/s+Xpy2xvOixQvojuN2se1iNAzaUfp8SLqN4hvdvUlbXBav2G8VjcuJuMCIQ+t+nPTXEcW UI6Mpo40ZktSo6OptMCK38qWt1b9Zvl+iCCIRn9/v8mrRVbXlh6PXfz+T683HO2qzClpkeR5MHXc 1sQHN14Zu/lG/ZUb78Ce6UsNDz+at/XVMRDljsG7k/sHeQfPN7U9eXBsurKvtQKC4WNT9SOXWgd5 B99Gnf9d5HuHQ62uMV0Onq/fenUB3sousFV28Q5ua+LOX//tzc8cPK81rmlt2j2XaH635WANAFS0 ttFXf2QmByqN7QSoaW3iefrqHHPzUivPO3g+XU5bDo99c5beM32pdZDfdvej+w/b1NGj75/f+Xu1 nsc37Xoy+/50XVcrSX3k2TMq8DZVc1z5+L2Uzwe2b+g7NUrPXgCghz9VPlTrPT7ltaf08HWlYy8A wM4acJ1KnfIpvh74qpe2+bQVdodP+cUC7f8S/urvlbPvpQ7aqCc7YRtQ/repzjOp904pPp/iekp9 fAf+oUfZBtS9CXqEViY+T53ywTf/QX3nMi+rGNu5ba/i81HXF/TSlC+z3CfYAzs7FJ8Ptlyn4GBm xL09sOU6/YcdyoV8e2jPb+H4hdR7pxTXa/SFf4VfT+S9geXbOXGGutOmnPk4dcqnuGz06U/Vig7R nx0+pXsL9V9tqamPFZ9PdT4A0J634Z9GU6d8qt/ot69Dj97eaF5E/QSM22/bq3Rvob54At09ys7v qC+ewLnR1B5yeyDEN7v60uFTfrFALb2p7N1mFq9VjQt5XFIeWvXnZrmOSoMKXaAYX3YtzbLfypS3 lvzmrN1i6X6IIC82lqpr6rPa1NRUd3d3YZfiq2uMfTLmjg3V5n8USJIb0ey2M1DFAvR21zLwkh0A AGRx3tlvT3dnOuudUkIGCE4l3Sd0tUztCXd1cYYa0HmiXjqvFcOC5+fdJ2pL1dQgajOt7XZqIlmc H9freSwrHfLOjUcTJioAlCPH4fJJdZVMfQKpM0cAAOIBkDKlCFvPSUr6Vl8Nh6jTmpyKFmjjz6QG 25VGgMZ2pREAZqjo4VS7/j7a2J66nVmdK+cGlUYAAKXTvuJkje1csVe+PaaNjxfYEw8A6PY3NqaO u4sY06mcOaKN1diuHI5SM6b+NCQeAPvxTBmjsV2xX6ayikf58ypBP6l945HUxHE46bL1XIaJ0VS7 eXuz+JaLMsWFrL8wD636c/NcR2WkBL89b96CRb9Zvx8iCAK5dTVSjW2t9q4thR9NQVNfK8hXHvxx l6OLWQ6PPd7eV1cTfnR7e1NX5nHvhytjy/v6dixdebS4L1M8S3fXWQ6P5VXXDJsBAEDNjlev3Jne 1dS6FOVv1//br4ilNZ3HY1cqcveuqSNm9q7Junk1Tx5fbe5Q63naX37HbCLPngHsVHp8is+ndHfD X3xNX/hO6dkL255S151avUf76wAAgBn64Bfw2wvqKh9+zN2/Eg9pRZQMcWpiCXoMlsvUvYlMX4OO hRjZqaqaCBnvhSKrpe5N5FRxSPY8uUddhfRAxdhJTeTsXdPU7iH5EwAgfxRV8vXLSkemmkGFJqg3 dbWFZhDjRcC0PXXvU/oyrTgBdrmUndtM25cSX2K8VjMupHGN9Vv1J8DmuY5KwbC6Ztlvz5+3Fv3m rPvJ0v0QQV5siqyupZ/PhoeHp6amwKjGVnR1Td0uJhR8MZIkLx7GWx8ZjqY3ocnB+Yi7lgHo7K6S zutb4uTEeelp6WNoBbaoWHxpLZLU9roJIVYw3X7RWe+UQqIFD9AeDz0TBwBobIQmUOxNAADQrtgv Z28N0Yg/BKdd2dkIANRMgLocWUl9u2IfofRNRVR8hvaU+IUygp0qUbXyRAX8tKus23cajwBc1jdv xelPpCL6RKjTAc2emQB12a60A9GfJuNGP6Gz9r1R0cOm1UGL+sntqYCH/gRSE6Op0ePwSY++IYzU 3jS+D+MAQM0E6JN5fnvueJUSF0vjWvXnxryO4rTLZSvvFbECZctDYyz7zfL9EEEQleHh4fS/hhR1 CFVCYG+N93bEhvJOpCLJCwiGWe8cAPSK7u4pyTtePTDdAvy1s7MNYqylU44KfGR8FgCqmwcck17t iUoOhnnv3CwANDeI/eD1zjUPuCdZTVWG3n2xoVqAKMdGZrPFonuoM8sEQfKC2nJFkkEh7B1/CgDN vftGhmoZSIrctbOzANAgxlpAkLzjAFA9MH3AywDICYG/NT4LANDcXO3sbxnqJDnkq8VF2uMHe5SS IgAATnfqzKD+WBCn/KdpTe5U7MeVwXZFfTsfiQCA4uaV1y7TI6BMjKYaZ2jXyZxPPc7d1j5Hgzjt P02l9Rw/k2pvzCg5dzsFfttJCQAU3mz7EdlOoGb81EmJypGT7MmXA7hTtwfBzJ4Z2nOSigA43anD QME/mhhJ+V205FTOHYaTI7n2EP1Je1xU9puO+9z/Dbbn+U1x8sroEQVM5kXUT8agvakfSPoN4gsA EJ+hT2f8Ro9I6fgWE6/yxkWLTsG4pnlozZ8b8jpStblTtwdNM8GUGU0tAICuyrrfypa3lvz2y5oa S/dDBHmxKfIQqv7+/ryntELJoaNfF/O4JodZvmp6MrPDTIMk35AEhVDsxAHvOtuKZ4Zaggp4KDiz 4mMBssZgXBBD8MxQBMmmzGeGFtGMaYkZPpOR5BuLhMBKLCt5x5+e5TOfuiIbmPQPDVDfHlbwmWDD gHFBEARZL4r6MBQpF1hdQxDkRQWrawiSTZmra7fvlsMoBEEQBEEQZHWgmNP/vuO/sbqGIAiCIAhS NspcXXO9WQ6jEARBEARBkNWhyFMNEARBEARBkPUBH9cQBEEQBEE2NOv8uJYUOYllw/gj2DkEwywr ceJ6m7EWJAQ2JG7cn1dZ2/w0iLtV/6yHP+WEwKlnRIYEMSFyG+ZyLvI62oj2r1Ic8X6LIJuXtToz FAAAopzw59yzOCta++q3Xs2cxYkAADB1/O4fxxbr8g8/LZZCP6+vHhMqu/j8g1+ts3rzXdv8NIi7 oX9M5lsWf1oiIRxLnhjZPzjo4PmmXdsXRj5YbuM3xuVc1HW0Me23GndD1jufEeTnTpFnhhZD0WeG ghzlWIkVEvnrPZK8UIEYYtnI7PgtllUXsjkrvJgYUuWckNBl6s/bhkQ5IQqh7JfkYJhj06vhzPcu SHKyTelVtcSJYY7Tf0RXjqZX25yYANCX6UJYnWwwbQ9JDgAAQVG3hwvrh+ipq9uQIBTON8v+vPV9 lj0CFzKvFpj5uXBeJekh+NkoXub+ETQlWVUEM/8Y+bMEO637zTg/LefbynmbG3cj/5jZadWfoI/L CQlRyO0oh1lWYoUVkgQAZPE+9NsZ/c2fYeyTsZZO0y6W8hnKeB2Vx37ifYk4hFHcZS2jwsF04PT7 j9W4E+a16vmMIMhzELOC2qXI6trS47GL3//p9YajXZU5Sz6SvICa1iaep6/OMTcvtfK8g8+sX5fD Y9+cpfdMX2od5Lfd/ej+wzZ1WVnZxTt2z33zzugPr3paPhre/ZZNWWIqaiD6/vmdv7+0m+cdPN+0 68ns+9N1Xa0ARDmJhHBsvnukY3jQwfOOticLH9ysONq3owai3DF4d3L/IO/g+aa2Jw+OTVf2/V0T tzXxwY1Xxm6+UX/lxjuwZ/pSw8OP5m2nW3hDeV8dA8Bsr2wb3D3IO/g+6otDD2x8HaOtbu/feGXP WN58g+FjU/Ujl1oHeQffRp3/XeR7h6OvFQCS4rEHO/r3fza8m+d32O7ev7nDYVItIPvZaF6txNqp iR6Cn43i1dl01MQ/XQ6er996dQHeShcSyP4x9mcJdpYrP63mG6E9Me6G/jGx06o/oxxf0T+2f3jQ 0bZrYeSfl38znXVE29LChxeT8HoDv1It5+4Xj6guS/U8a/kMZbuOymU/6b5EwjjuNa1N3NbExcUK rq+OeZi4uPiKOPmG+mNKVuNuyOrnM4IgK2JSXVtYWChez/bt24uvrjH2yZg7NlSbf48gya3RIGoa arudeS9VD4wcGOqsYgCYzioGQBbnx8ev6UtG6ZB3bjyaALKcSHA+4m7pTK+qO7UDtWRx3tmfOVmL 6ax3SlrtsNltZ6CKBejtrmXgJbvehiSXp6O8Zs/97DPFARr6C+YbnEq6T+huZGpPuKv1xlXe/irJ q04tPAz7RrwrO7QQk3lZ1WPq5/x4Adk/ZAz8A2b+LMFOSxjkp1X9pPbkuJcRA3/K4jy47Wr+M4y9 vze3B9MSi7ljQ7WljxkMpyer/WmFHMv5XKbrqFz2qxjkubHx5DxhvAem+5NeVjok1U9PrlSSLCdl yGcEQdacNd279njsSkXB3ovl8FhmL4V85dHivsyaMu+/AFDz5PHV5o6bnzl4Xv/rqjSRE5EXxhYN yktL4Ue3tzd1ZW7AP1wZW97XtwPCj6agqa8V5CsP/rjL0cVoZtcQ5Eww7LpYdWZs//Cgg+d3/JDZ L2I837yZLulqAQCYuj7ewfMOjtvxl7dvjDxcoRph6GfSvEzLCgZ6zP1cGK8lkn+015fDYzlVBGI+ EP1Zip3Fz5dkj1X9pPZmcTf2D8lOUntj+/MGKgxcsTx8NPJtk0FCMnWZmeb5x1I+l/E6Kpf9Vtxl mifJu+fvS3R1M4CzrY7J0WY17oasYj4jCFIE61FdU7dTCAXbJUhyIpGkDACQFIUQK5S0PaKz3imF xMIRSXITPWfD+u6QpBwMc2w4CMB46yPDmZPg5eB8xF1K7VCOJZudtQwDAMmgGJVmVzKnu0o6r5e7 5MR56an+SpTjwkEZAIBhgIVqJ1vE8AV+LnFehfGy6ucysYI/y2Vn8flZQr4ZtSfHvUx2EmC89SBp +SDL0eHx3JeL3rvGeB1OKbPLSg6GuRV2jFnL5/JdR+Wy3yLEPEmK3LVh2Dc9eWCyH4YPFfc9UKtx X718RhBkrSnqiPeEwN4a7+2IDeWdSEWSk0gGhbB3/CkANPfuGxmqZSApctfOzgJAgxhrAUHyjgNA 9cD0Aa8cZr1zWX0bxPQWYDkh8LfGZwEAmpurnf0tQ51VZnISclTgI3p7Z/+I9tlQlry6ecAx6a2F oGZMr+junpK849UD0y3Aq5aDkbxBjNlj2tSqewccdunWWXBOT9ZOk+bLgBwM8965WQBobhD7weud ax5wT3qjnJB0RuY0OzW/WfUzYV4l6jHyc9AoXkS/NYgieHPaA/Tuiw29RMwHJp0q2f5UP961Yqe1 +ZLzkykh34zbG8edzfOn6p9aYlzy/b+iPwGCYc47NwvQ3LvPDffhRNbeNVVbZkRzkqIQPqvZ4+w/ Ye80S1Cr+WwY9xKuozLZb5jnZvYbxh2Kvu+tFHczVjmfEQRZAZNDqMLhcPF6WJY9dPTrYh7X5DDL V+lvjVmQ5AiCbCYSIncfRrIe1xAEQZDnpbyPa7b/tR/e+j/me9dq6njDTU4kOYIgm4Aox974lw8f fPjhD6/+pmXgYDm3qSIIgvzsWZdvhiII8qJhn4y5YzF3LHZgyIsfeyEIgmxkaNeb620CgiAIgiAI Qqaorxogm4WvFhfX2wQEIfLLGtw8gSDIz4Xy7l3DD0MRBEEQBEE2NPi4hiAIgiAIsqHBxzUEQRAE QZANzUZ5XEsIbHG/623cPiGwEstFrR+CmRA4/UzAnF8zJ8nXlWCYZSVOXG8zDKACHpvLRc9Y7+j3 2Fwum8tlc3lK6L46zNAul80T2LT6EctYvf8YoB7xwj63HiskRU5iWZMblMG8ymannL5JhgQxIW6c +ySCvJis6ZmhJlR28ZaOLMxrX9nF01fH4C2LvwMni3dG6f03L+3meQefOYOSKF9nmDp+949ji3Xk MxAjz56tpUEZ9vbAluvUyz3KTiu94gH6S1qZ+jzl8/0/e+cX28SV7/HfjNtFyebPhvRuEyM5mQ6+ djebosZGClIjIpMs2QfPXiW3uzeSKeqDB0VId8LV4kXsVl4/kEZou8RFKCpTlVKjRlWVqMrwkIjE wlhCaAHTCxvJ4JtOcJVg3e0NSVzubanW5z7MjP9ljv+kUAJ7PvJDcnzmd37nHP+O5nx9PD/El3nt Y6QJ8S9TEyuod8fTaX/zYq2oeIKtxzjPd5icm+WuPzow3RZBMFbOrs/1+fjYYus3Vubkz81Dp1+P yM+EZ39ywL/L67UIQvP2rff87zxsFzbNUkkgbAqeyHPX5BjHSqwnkb8fw5XnochCnohSOegJsazE aRkJ9XZ7yq4x5PGEFImLy0pfWGB3KIsRTqsvZ+wo276EJ+eqhIeVuobX5sYvqk2IhctBDqrGWTbk EdO/90ibTYi5/cIOhuYky0W0JH2F+ptpt8T9a5zWJCva56LTKk48TLvsWnmASlcPB7RyFx3ICFyU z26w2+lAnAr4aLvd4PJpl8QzkpgrQLtcdFy7ZiFAq+W+jH0MlM9u6PVTUUm7JK02Zfnvyvip64/i OR2IZ9dRTZXbr8z4lKbz6dlXVUafT2ccyrRfgp+ZeVQ7rgxF2GfIHlLMvBeY3/I+P+X6j4kjADmW UWu4ECcCQIxjJZaLiZm4yM57i7OTkcY5McJxMRlAFkMsG50bv6pK5lmKlN56ogS1WqhVUJcCbLt6 yGKIzQj/SphvQCCPcevWrmw782J566S+q+X16zYMmhnt7oxhzJMFknEVXP8JBEJplKiurSyPffTV 33627Y3uqpz9GK48D6aRq0y8c/mFsSs/N164/Dt4Zeb8toWTS4b+RkZ/t6fsGm9ffuGVsfM2r1B7 4+TthXb1XczucHnsD9Err9n8Z1u9gqXdcEcYpfq767N2n1XdgqV18e79ncpVVd2ChatMXH/tF1fO WgTBoklWuPLY26NNHyh6m9C8fXXu7ZnGbptav3Xx1u/Off2iq+3kSOsvDWiF2VJgNJitVe3eVq9g EfqpT7ruGIRGpkB/g5H9U0b/eZtXsAjt1Ogfo19ZLAXVNSpwkKo7gE4dS/E8GG7R1+sUFYce+RC9 q+hYPHppjR65hDp3AAA01YH9cOowj/he+KyPNvCqytXJo5fv0b5P4aevo+FjqT0GarUJaoHyHaQc Q6ljhxHPI/sadeo6/KYX1QJ1c4L202ji49RhHm69T31pRztqC3wmoJNHPRXUf7anpk4hnk9LTbTr IPz2XOowr9inD14C5S09f9CeCup//y3176+kbcK9S/BbH6ott19h+mAQDX2cOswj3g4fHqeXtxdR v3Tt7+iFikv0X+rR6bxxKN8+Zvz157GTh4pL0H46tc8ETZ3o5XvUjwZS7zoLzTtufsv9/JTjv7Wh AhdHSXH/nfrBXWdHWgWh3nDj9pV6S7+tvl+gZ/+wRP+q7eTZVq9g6d++vP9tRSHD2Ul49i/1+DtH vBZBsLSv3nvnypY3+usZW7Mg0LOLzJXzNkGwCFk6kN56UtUtGCtnl18b2+1mgOm2tC4mfvQfv/jg XwHfrsLDyFjOulRna25dTLS81banDgC22Nrp2QfM5BFdha8A9e2ViQf7dx9pS7tXuzhb89af6uvg YWTs1jD9ykyp66S+n8X6lc+NT+5S3SWLcwXXfwLh2aWAulZZWbm1ZACgdHWNMU/OO+fXJxXGlevR 4jQzUM0C9PU0MPBjc/Ertg2qlht6rKU0YPW7qxVPGIfZGV16hGcpZHFpXNPbWFbqci+Ox7J3hzVH /LuPO6oZAMZRXXg05JmYoNq5Hc15R6e/wamkc0AbXqZhwFlTzFO07wBMH1LUHeo9SA3tAwCIB0DS dCy73dB7iJK+0NSaEHVULadi66wJQylvBzIBmDqQCQDCVGxvqsOkvm3qSF07l9L+Qye8yAQAgBwl zK4u8QCYD6QNgqkDmaepeOb9fH9M+yAWVGU2V4CCOBXbq/hQXr/CQdj7pnohmNCbe1FxV7H20YF1 47AB+7p+4ucR7RuC6TPK3/R7MXizA6DgvOva38Dnpyz/8XFU7R6sltzKW5ER2OlPJ2VvMQ5ocQ1M gxLXWDvBpaizLZ2jnXG0zW8wqXG1mGadJAAAIABJREFU218tjSoiU2wkahxwABRfB3RwDBilUe2b hNEl50DDBrxh3MboVFKR2TgxCfJS1JledbeJZa2TemygX/oEI2kj6ktT0cpf/wkEQjY/1Nm1lcjd KWjut4F84c5/bbd0Mw8jY9lHLtbv9nIqyBfSqhiu/vJYztm19OWF7KS9wnmbpm51ebalU9Hb1FfW IZh17uEJRuwfVQ+N7RrxWgSh/uvMuRN9P0t0WCP6zTcATaiXRzyPenrguc/p01+i3h1Qu0Zdsqo6 lvrqBACAML3nE/j9aUUtgwe558/iIWrl1VyRLE5NrICeLETdnMhcq3OhHqs3qVnIEZlWb1Kf/wR1 Zk6xUaEJ6tVeVIs3e+t96qV/glkrMk9TXz4HdDPqbCq7X3kl6x3LB2tffxzKto/xEzuPAFALD96n 1npR3EetvZ76VVOx+rhpKuvzU57/1sZv8XHENPYLFkGwcFz989cu+xcUFVk/rttw8SjfG7tf1W/T XbaWxy5swZxdW7+eANRVfX0yttrfKHv+uuJq+zUDUGwdwNipf/HC9ZntzbaVmHDN+KdflyutKXx3 4+Ty9heTUy1Wq7S88Pz/0Ow/dzNQ/jqpX16sX+tYuOv/Qm8hYhozFrLsFFv/CYRnkgLq2rfffluW qZLVNeUYhGedWoUrfzLMRQUxqZwRCYoRyWrUzlIk52WlMOQe36hxh9EqhcTv3VN5PtlibWAYxZ+Y NFes2Z5qaVQ7GignRqW1Yi3QLhcdjgMAmEzQDMjcDAAAHcg8nX2ESyW+AFYzajIBABUOUNPR/Ar5 dCCzn0qfFYuHaddGfhCKxbQPYu9lDsPFwxm1DANymOFMEPbuRg4zTE+DQ1GVyuxXhwOmz2gyXpw6 M11EOnrc9vGG9OcRABRh7L1ARlorVl+X8j4/ZYONoxjHRYIyAADDAAs1VlZ7Z25pVI1rADmhxjXO jsNoHY5op7WScjDCZf9wMqquD6InxHqKHM8CqHYPwoiYkdYK+l8Ix4BRGo2J66S1ctbPhh5rcnQq 6exq6LEuSVJ1D/ak2IYos1+M22KVMqfi5GCEI78MJRAeLxRz9M/1fy2ShCrhYa+O93XOH8/LSIUr X0cwwroXAaBPdPZMSe7xmiMzbSBcHJ7bJorgdi/mVO7bOX/8xyJ3cXgOALaJ823gkdzjAFBzZGa3 W1ZN5dYHD3t1vMUqOpfcw2sA0NK30699RSsHI4J7cQ6gpW+nE64Oj9ccmdntZmIcG82+WeoTnccd AIArB5ATHuHq+BwAQEtLjXWw7bijOt01jW1igSO3AABJrWs1fUcsZunqMFhnJhtmcP1lMv5DyzZx ENzuxZYjzkm3rvHP7t+nXT4wxygpCgBgdaaGvNrtTpzyHaXVcisyH0DeDgRABVy0PwoAyCmgl6Zp P6CJcylTmLYfyvnW7MS1lHoPEKd9R6m0nQNDqQ5TxsiJaynwGQ5JAICEidQ+7K0W7bJT2Tc5zhN/ 93bk2UdWAZ3bhwAA8P7EA3TvNEycS5nitP0oTKhfzpbdr3iYPnqIigKAFZ04AIcOUVbh7+f24fzX tY9C+HEoz36h8dedx4xXXxzQRrJAfaz9cj8/Zfn/L3V1mDiCGOdJWqOLankmfmMcB4ODyREthNNx jbEDIMc8QlQrtw76zdp3o8mgJ+Iez10f8uNXWU/SN1VJkbsYG9RWgALtFrEDQY/khpwSdf1ssc6U 9nWtLIa6JOPMpJmRI6xQPTNpZjKLSYnrZEMhP3HjiSUpeiLD6nhaBwfS47yOAut/kdWSQHiqKZCE anV1tSxTXW98XsrtWmZ1yAVXTnhikJyhhM3MBnKGxjgO/E//IhP0hOYHdruzuyHHuK4l50xuIYFA eHZ4tLdrtP3VotUYzHFdXDmBQCA8AmIcG52bi3Zt0qdDl4L60A33+NqwkPMcb3lmaa7PQu7VCARC aVCvf/pnOVDky1DC0wJR1wibmQ2oawQCgfCU8ojVtUfhEoFAIBAIBALhcUHUtccCUbkI/wgQtYxA IBBwEHWNQCAQCAQC4R8IcrtGIBAIBAKBsKkht2sEAoFAIBAIm5rNfruW8LCZZ2dvFoIRdpM+WYAK uAz2R5pmANeQz04H4sXrlWv2Efof9ikJLh+Hn5uN7zduYdpuN7gCOQYfz/wWZVPGO4FAIDx5fqic oRulqltYn/Auxnm+w+T++0FgGoXWB2P3G4vk7nwS7OiFitz8mI+JTr54StBi0C4f9HbmFD1C/5s6 Ec9DxSUK9nxPV3X83Gx8r3FrQvzL1MRKTg7T0ubXWlGxgfYKxK9uvBMIBMLTyJPIGQpyjGMl1pPI 3/fiynVtBCMcK7GsxLIhj6j+XkIWQywrsWwkqGXQYzn1YZLqv7m7bVkMsWx0bvwqq5rKSlQnxzyc Zp8LFVW/gqLmDxfRkuUlRU5i2ZDHo3glcZ6Ejv8lZseL0z6XKvD4XHRavYiHaZddKw9kEvWEA1q5 Kzs5I+VTJSIq4KPtdoPLp10SpzT7BleAdrkyqTYXArRa7svYx7WL8xOHnmqlqjs+n067+mMToO12 Kiqp9fOUofL8LxPMOOuPQ2E/MX3bXPOOdTOcaTe7UxhVEuuPblwDAMgJLR4lToxwXEwuGL+68Q6Q E9ecqMRjoTglEAiEZ5ES1bWV5bGPvvrbz7a90V2Vs/XFlesQe3u06YPzrYJgEYTm7atzb880dtug ztbMVSY+ur+F629kFhIf3X9BnPy58lARptsiCMbK2Xvwy8yGu87WLAj07CJz5bxNECyC0Kg9FTwp 7r9TP7jr7EirINQbbty+Um/Bq18AAMzWqnZvq1ewCP3UJ113DEIjA1ts/cbK2duXX3hl7LzNK9Te OHl7ob3ZVgcQjOyfMvrP27yCRWinRv8Y/cpSwH70m2+owEGq7gA6dSzF82C4RV+vU9QLeuRD9O7H KZ5HPI9eWqNHLqHOHQAATXVgP5w6zCO+Fz7row28qpR08ujle7TvU/jp62j4WGqPgVptglqgfAcp x1Dq2GHE88i+Rp26Dr/pRbVA3Zyg/TSa+Dh1mIdb71Nf2hWZBNcuzk8suqrVjl6ouET/pR6dzm9X n9odiOepS/fQlOaSJguV639hqJsT+eoaZpz1xwHvJ7bFTTbvGML0wSAa+jh1mEe8HT48Ti9vV+cd p0rq+WNtqNCPa4CEZ/9Sj79zxGsRBEv76r13rmx5o7+ewcavfrwDxLj98NbkLq9gEYTm9tU7+2eq +m3V2DglEAiEzcITUdcY8+S8cz6dXLlo+TpkcWl8/KK2pZa63IvjMXVDzLh3zwwm3azUJRlnJjec 8bfaPVgtuZUmIiOw06+fBD3LpZmYoPpzO5rzzrZBtUcNPVa1KDiVdA5o3WQaBpw1xfxB+w7A9CFF 7aDeg9TQPgCAeACkjFRj6D1ESV+oKkU8RB1Vy6nYOmvCUMrbgUwApg5kAoAwFdub6tASqJs6UtfU 1OYAgE6oabmRw6wW4dvV93NDoAPr2t2YnXL8LxvMOD+qcdhc844jHIS9b2q5203ozb34ZO0F/cHG dXAp6mxL5/xmHBtMWCeLS9bBzIWMw2iV0lq+TpwSCATCM4rh/8x7K//78Z9dq1tdnm3pvHLWIgja K3N4JXlj9LZE17QAWNsbmZwt8sPIWN5uGwCWxy5s0Tn7wjT2CxZBsHBc/fPXLvsXCqprwYj9o+qh sV0jXosg1H89u7y1X9noP4yMpf8G+cLd+zubbXWZPxRWInenoLnI2bUm1Msjnkc9PfDc5/TpL1Hv Dqhdoy5ZU1OnkKKy8DziOwEAIEzv+QR+f1pRTeBB7jmkeIhaeTVXLIlTEyugJ4NRNycy16YvxLYL +n4WY71qpd9uYSMTofVnwsr3vyw/C4wzdhx0/cSzmeYdR16F1ZvULGTPu44qqWfW2vgtJq7le2P3 q/ptussHJn4B1sf7SuTuta3N3Zkbva8vjD3c2V9fh4lTAoFA2DQ8CXVNOVbiWXdiC1eug8NolUKi Ts2kyF0cgZ0zk7snB2Gkq7TfhUWTsnKtJ8R6lOMyMY6LBGUAAIYBFmqsbCED8nyyxdrAMACQDIox aa6Y+z3V0qi2rZcTo9JaMRdpl4sOxwEATCZoBmRuBgCADmSezj0yBQAA8QWwmlGTCQCocICajuZX yKcDmf2UdrqIiodpV+FjVZh2sX7+MMSoOAAAFfDR9sLHrbD+lwd+nAuOQ+l+brZ5x5lxwPQZSjUT p85Mb/QsIC6uHUbrcESL5aQcjHDZx0x14lcfxm2MjmQyo8vBpaizuJYPcoRlJZYcaCMQCM8OJSWh SnjYq+N9nfPH8zJS4coxyAmPcHV8DgCgpaXGOth23AEid3F4DgC2ifNt4JHc4wBQc2Rmt1uOsO7F nMv7ds4fbwAAgGTQE3GPrwFAS99Ov/qFSIzzJK3RRdV+phxHUmu6pu+IxSxdHQbrzOT/s3e/oW1c 2QLAz4z2YZJazlNcWv8B21NFSF3XNWsr4EBNjBM33g8Sxd52MSgNy0NjQmCvDS9qXpai1Ye4Iby+ 2A0lbGfZbSNTU4q9xcqHhNiiiiCYV0fpSzDI0XqVqtgRb0tsxykvzbK674NmJNm6M5L8J5aT80Mf kqure88cRTczR2Pfigm1eASI+kPEOT8DAPXVUh84nfP1p2zj7K9cv1pc5B0eMEU4XxgAwGJLDLiV 755inOc0L7dbqKmXulspAOd18ENhAKA2Ql+5yg8BHRtO1AR5a3/mf6X0/HSiVR6H95zmUuP0DiRa a9KDnJ9OgEfX7wMASsYSR2vU5lWPk2ltPAC2xLQbtOZVxQU9XL+Py5h3HfEXFKd6nrXykB2nhuJ7 31XEgvzpfi4MABZ6vhf6+zkL+edwnUre2PG8ZTAwP9d6AIBoxEXCSrulb8ikfDfK+vz61T/v6XHK 6k+Zx50VGR9exucUUqOlVwyEEHr6NncTqnxO16IhI9FPZN96otaOcM9Q9FzAPUMRQkjN098zVFC5 TVitHSGEEEIIbZpi39UAIYQQQug5h6drCCGEEEJFLa8fNUAIIYQQQvl7+veuIYQQQgihbYOnawgh hBBCRQ1P1xBCCCGEihqeriGEEEIIFTU8XUMIIYQQKmp4uoYQQgghVNT46VvbHQJCCCGEEFKH1TWE EEIIoaLGW3+x3SEghBBCCCF1WF1DCCGEECpqeLqGEEIIIVTU8HQNIYQQQqio4ekaQgghhFBRw9M1 hBBCCKGihqdrCCGEEEJFjXv7y/+Kepv8w03Mp/V6/VMOCKGN+2pxcbtDQEjVWwbDdoeAENpyKysr zHa9Xr+8vFzQUIff/RarawghhBBCRQ1P1xBCCCGEihqeriGEEEIIFbWndLq2Itl9RuOqh13K54Vx lzEgRfOfqND+hdrq8QEAwB/Kys8Wzut3Jd+RTRk/7kq90faQf+Pj5T/vU3hfcuO8Dp3Vyge3O468 cR4r741tdxRblLcgb7XqHN5VExXH8aY8E+tVoRjrG0IoJ93/mY7s/t/KY12VzKdLSko2ZZqS5p6q 3ZMP3hh58zO3mRCzfXf8CtT1NOd8YWkHqWtee1tuxO76R09Had79N9FWjw8AAEIlafhxZLEyIz8F zauRH9ZsHWZCqnZP3odfbvTQotLNYf7A1OUGQsykp1LY0GAFWZOf8OPHT2/uTI1dsOs6969dtHZ7 5i9Ym0gb92x3EFuUt1oqvsqNLdGuxnQb63h5hwe62jY+X/7jWHbtSv5hR6xXha0nuTHWN4SeSU+e PGG2l5SU/PTTTwUNdekv8Tyra9GI3egzuuJrr9PU2jX4Q3YJBOfBcScAQFQKGI0+ozHkT5V57JHk aMyqT1QKGI3hmdFvlCpduoTD6p+s6gVcroBc0nPFV0WiNEqu3OUlxvjJy0RXKJkEvysgT6HWnjwE ZV6jMeCS0j83km5fXZdSq375pXR/SXmBRn7U5mWS3xf5vZCLo5oXxHGX0Xf47MOZ0a9XV0/jLjn4 uLQ6DxCNKKW4gF2Ka+VTk2p1MMZ7HDqrVWe18h4Hn6qyxIK8w6q0e7lU96BXaXfw3nSdh/NYdVYr 741xXg9vteocHuUlMU4ZX+fw8g4Hn6ra3PPycrsnPT5LZlUpNdE641frrybokTuvrTbtgLxpxZNu d6wq1zGPN+blrVYu7JPnzavCx8qP+jiqediG9Up7/IzPo8seSH5+17GeMNclUF/fEEL50XX89sjS 7ZzVtaUHI5d++PvPq9/tKF11qabWzvAkNDJ79sO7H/lWXnrDnLquMjTX2XfHLy2W2HsqhXvxS4sv SuOvJX+pCLPqY2iuI4SfnBemLjcTYiYkXcJh9U9W9WZvvPj6yOVmN9lz68LsvZbksxE7KekbOTDo Nrfsuz/0H0/+beKgU7McxBhfqLTvjn9448WRqdeqrt14D16fuFx978KC7nQTYbb3VAoQ+eBi7Z+S 9SdSt2955oOJyo5mAH/o2JWqocvNbmImLdzF34d/MMtZUqt+CXtLW9wNbmImPdwXh+/qSKWglR+V edPvzto8N8zH699vOmQAgJLmFn7yR2H8lMYVdmkHMdt3x2++8ebUZ2ZCUm9xaQcxN8zfeW/40cuO pguDDb/U0SWhxAAR+zF4f/yAm5gJqWtZvntsorTnV3XsfGoW6lj5CT9+zHlPcIZe+vGZhCiC7g5/ 05CssvCDn9KPPk+IIhVF+spDfvA6bWsEAKg1gPVk4qRIxS74qpvXiXKlp02kr97nPV/CS2/Ts2cS h3Tcci3sAc5zgmsfSJw5SUWRWh9yH9+EX3fRPcDdHuOHeDr2eeKkCHf+yH1v1SpfZVaV2kT66n1u 6RfJ/oXGr9ZfVW0bFUXYdZ2DQ5kR7oy8qcYT5E/46cDniZMiFa3w6Tn+wT45D8zj3dNIRZG7fp9e UYbKVd5j50djHFYeLBW7tmO90hp/RTp2t7zvwGeDDYSU627NTpWbe5rXs54w1yWN9Q2hZ9e2VNcE 0/icbe5cxdr1Qa2drezUhG1Oql47hvPgRN+K0+g77KuaGG9qzy+iQlT3yRFWdFrkpqi0ADZTuwAA IAimvu71j15vMwmgNwJ0d1YI8IJJsz0qLYwq9Sej0XfYOT8aiQOA/8qK7biSRqHiuK0s57zRiQiR x5kN5+ysMq+G9uNVvotyH//FBdvxipwhqSs7NXTwXLteABDa9QJAVFqw9JnSp9rtVRafXKNVy2eB 6NFeuNqfrHZwf4DEwFEAgJgXfOkSiK6rn/P9Ta52xALcabmdi2SNRgYS7lZaA1DTSmsAIMhFjiRa a+Sna1oT08MJ5W/0vJvWAADQ9vVGX3j87P5bP+8W5y2YnlR+eDiNeIJ+OPIbKg9YQ39zhK4vC2rz rjfPWXnQsrXrFXN8AL2zT+9zJpeI0CDsH3JqDaGxnjDXpXWsbwih1XT17+RTXdsESv2mKfuWhZVb F2d9fFk9gKWlUjCwXrWq8cHItRKVeymy+z8JjTzYq5Rnote+W9xf12yApdB3mTfPpdrzPQqlZ2qc 6LW7f91n7hDk6Qwq7U3LDybr25L1J/nRUZodwJrwGMflD1kv6QdGDgy6zYSUP5pMHyMzPwaVebXy bCh/+drNiX11zUsRMl31n+/kvnklK2xZdnqXQt9N763rSJ/mP7o28mR/Tzmo5C3X9cCa+MOPHwPU 0i6RiiLt7ISffct/8j3taoQ9D7nrlsSVj2myBCKKVGwDAIAgf+gL+N0nyaoP/Lj6PqpYIFX0SjVx Y0vAKl9xt8fSr2W8MP/+BcWv0j8X7vbYmupakeWtNmPGjHnV4lkz4/JtbhIy88A6XuDGAln3nKnM q5ln1jjsPKTuXXva65Xa+AAAQmUPMRNittvL/2X6xtC9VPWrkPVEZV3Ktb4h9Ezajupa8jYIV9Yd B2rteYgot02sSPavB2H/xPjB8T4YPJzfzzGFV+R7qlwBoyvHbVhMgrMKfPJNctFoZHB0HWOsS3uV xReQsjLW3qn3XVRuAYzGL/oeag8TnVupt1QIAgCs+KWIb2b109n5UZk3R7DHq3wXI9JGS2sMgrMq PBhJvdVR/0LYlmeNNk+8w8EHYwAANTVQB9RUBwAArdR0NfMWK1nsHlhMtLYGALigl7uas1zZSk1D nHIXFBcL8o4N/GDjvVhyXr7ft874VfsXbIfkTSWe1na4+mdOHj7G/flq7nvgAAAiyZdwXg9vzXHb nGaeCxinMFu/XkXs9pA/CgAgCGCEMosx48m81xO1danQ9Q0hlCWvTajiLuM3o91tc+fW7Eil1p5t RbJ/fXbNKUX3/rlzLyjt1dJcE7h8zlEAKDs1cdAZDRmd81n9kycNK35XyDn6EADqu/cPJQv7fmZ/ 9fEFAH/I7pyfAajv3m+DWTiueS8Ic/zOhWRjt2TrvOJzjpadmmgCkj7SrPZqaa6pPRp3kW9GZwAA 6uvLLH1N59r1ABD1h4hzfgYA6qulPnA65+tP2caNanlIpbSs+5TZ5PvmLFgmxpNfL7LyAwDMedl5 S5+c+V0+J6xqURGxG8OZ73C3ZDvXnp23amlO+b47GnGR8OgMAJTVnzKPOytSndl5Y07Ljn9qcZF3 eMAU4XxhAACLLTHgVr6EinGe07zcbqGmXupupQCc18EPhQGA2gh95So/BHRsOFET5K39mf/v0vPT iVZ5HN5zmkuN0zuQaK1JD3J+OgEeXb8PACgZSxxV/wIsFuRP93NhAIstcQT4IV+yf6Hxq/dnWntc ALbEtFtznCLLm0o86XyChZ7vhf5+zkL+OVyndrwAwAU9XL+PyytvWnlmjcPOw1uGW9uxXmmNH7G7 VizheXl9yFw3ClpP1Ncl9vqm+ZUrQjvc5m5Clc/pWjRkJHrlVCCDWvvOE5fsszCU49bd55PfFZjT /o+hGOGeoaiYbXDPUFyvENoRnv6eoULTHPOcTK19x4goP4g+G7E14dq3WvIXcPicow/Pkkg+X1Aj hLYSrlcIPc/y+jIUoZ0Fq2uomG2wuoYQ2hGefnUNIYQQQghtG6yuIQasTqGtgFUlhNDzA6trCCGE EELPETxdQwghhBAqavz0re0OASGEEEIIqSuW6lrcZZe3nzPaQ+vZJWHd8xrz20dh50tuQWEs6uPl vA6ddQPbA2QP6LHyyu/QX93uUPaCdGzidJtl0/NQcAAqeXsGretzUZTrhj9kNPrsUj5dizL+AjDi 3wnrG0Iboev47VPaM1RLVLo5zB+YutxAiJnk3iByE5V2kHy23itOEbvrHyp7pzIIHWZCqnZPZu/B mi38+PGGo1uXxi7YtXrfyQ1qExlbdsa8/Jc8vfJ5QhSpuHlzbaJNz0OhmHnbsNRemVtq6z4XKZuy bhQWZ25CJWn4cWQxe1PmbDt63QNm/Ot6HxHaUtuxZyhEI3ajz+iKr71uUWtXGUQpoQXsUlxpjbuM vsNnH86Mfp2srmleHa5Idp/RGHC5AnJnVzz9JGN8rf6sqzHt8dMlQLsUstuTvzw2+etkA1I0LrkC mS+J+kPKr7UMuKQVAOXy1xVKJs2fs796PFEpYDSGZ0a/kUuSxnRJ0i8p49hDhW4SukqMV0pQvMfB O7xKc5B3WJV2b3qDnaBXaXdkbubIeaw6q5X3xjivh7dadY7UXoqxdInL4eUdDj5Vzbnn5eX2DWy8 GPTIQa6uEnEeq65riAv7lCm8agPsoDzI1TiPh9U/I36HHKdWf1betMdnxq96vKx/5zvpc1H4upFe l1z2QHJ904iTdbxa8af75/e9hGoVihWnis1chwsdH6to6Hmlq38nn+ra0oORSz/8/efV73aUrrpu UWtniNiPwfvjB9zETEhdy/LdYxOlPc0lAKUdxGzfHb/5xptTn5kJMWteGpY091Ttnpy98eLrI5eb 3WTPrQuz91qS11LM8fXq/ZlXYxrjx13HFjqH2gbdZkLMLcv3P5wqeben3AClHcTcMH/nveFHLzua Lgw2/FJHl4QSA0Q+uFj7p2S9kNTtW575YKKy41eV9t3xD2+8ODL1WtW1G+/B6xOXq+9dWND1VArM /s2q8Ria6wjhJ+eFqcvNhJgJSZckhb2lLe4GNzGTHu6Lw3d1JLNa+SQ0kmd1jfOe4Ay99OMzCVEE 3R3+poF2NQIAP/gp/ShZlxLpKw/5weu0rREAoNYA1pOJkyIVu+Crbl4nypWhNpG+ep/3fAkvvU3P nkkc0nHLtbAHOM8Jrn0gceYkFUVqfch9fBN+3UX3AHd7jB/i6djniZMi3Pkj9711nWWe2jYqirDr OgeHVo3QJtLOXdz/tCSufExFMXlQGnZGHhq7YNd1/r/L6Sdr+/OOE/Dvw4mTYnJ8/sR16Gqk6v3Z eVPvrxY/83gtFbuY/853yucCoOB1Y0U6dre878Bngw2ElOtuzU6Vm3uaNeJkHq96/P7QsStVQ5eb 3cRMWriLvw//YNZeQtWqUOw4VWzmOlzg+NpVtALeR4S23rZU1wTT+JxtLr3pb672LFFpwdKX3rFK aK+y+PKryTFU98kzVnRa8hmf0b/Q8cG/ELY1tSsTCO1rNuAqOzV08Fy7XgAQ2vUCQFRaGFXqhUaj 77BzfjQiXyDW20wC6I0A3Z0VArxgUuJX619o/NGJCFE2qwnn7O0PpSaVH/KFLD3aC1f7k9UU7g+Q GDgKABDzgk+pS1mtuq5+zvc3uWoSC3Cn5XYusnYaSgYS7lZaA1DTmtz6moscSbQqm2PXtCamhxPK 3+h5edts2m7KfbxbrMjyEExPKj/ShS7am9U/5gVTb2pAqGmlpqtcTL2/dioY/bXiZxzvzv9caGDG o3f26X3O5CGEBmH/kOam5hrHy4zff2XFdlxZfoWK47aynEemorA4AWBz1mGtPBe6biP0bMuzurZh S6HvpvfWdaRPcB5dG3myv6fcoDx7BeryuOUCAJ6ERh7sVe5vi177bnF/XbNBY3x2/4zR1lyNqfSP 3h9ZTJYDGbKGBcPyg8n6tmR4cqCUAAAgAElEQVS9UH50lGYeafTa3b/uM3cI8nRNKv1V4wEAeDBy rWTtvS/+kPWSfmDkwKDbTEj5o8n0a9nHK1SmZ0zPG378GKCWdolUFGlnJ/zsW/6T72lXI+x5yF23 yHUp+dEGAABB/tAX8LtPklUW+HH1fVexwP+zd36hbV15Hv9J3q63qeWM6zK1ZXB851orbTVOqaSA AwkJatRxH3Q7xLOzCJzmYZCLdx+OO9BbT7dF64cmxky3VkMxMxfKpgkryuBQfPOQYltEDQRDEmVo RqDkVr2JFyuC6Th2lELXZa19uFd/LJ1zpOvI/9LzwU/H5/7O9/zO7xzr/HR8j2n5pfXJoQXThWXA ZbZMX10oPot50Bimry6UZ9cAYOUr0xxUzavl2VF+2FfSYmm7hPorX5n+/JPc0eIJOFPsguklPXtH 8XOl3wj1ifqxZh3t/7ur5wW5PkUP1x5AdoTsgtD61PWr4buFrBVGJ2ndIOkvW3lqXkhxWSiiTpKF eqzDRD8bXbfp5QzGtrAd2TXtuIBYcTKCVF4JF7QmJ4o3havRdNJfPSdXO5ttH7xWx1g8f1oiq0bj Ak89KeK1OuSYgSMyRutrJLMqAEBWEmO8mAUANZV1Oto4DgCyUUmREwYNFjEPDJivLAAAdHZCF+Rs XQAAcDhn+6L0SJbOwl1w2HL7OgHAdOWc6Yuq6YvDOVvYlD8dZVq4Yh6o4R8htWNVo1v6D5M70Q+1 03kClD8UD8MtXDEpv8h10p4wiFH9u35eGEURhHhUBQDgOOCh2cHTdJL6S9Lv7bPIk/n0lZqZlB9u is6a2fR1eGOo8dryowzGTqamS6gyIn9tqv9oarzsRipSOQFVEVFyKgEAzc4R+3SwDQAAFIFPli6e /ZJ/3EsykZWEy2MJAOiQUi4Q5eAUADSPzB4Jclj75PpqnA8urrPdfyA1/kxt9sHpdAyHbV4OIFpm p0NKuXT5akZE1/L1mx3DrnFQtMr9kr/vkhycah6ZdQG6PJbokFIub2V9L9D0QDYqxoNTDwHA2X8g rH9xUOhyc/+I3SZfGwPH7LSNK9ep9beN4OfPHzwwD4yCTTHJSQAAh3/tVCj/Z37BNPqOWS935Gxv 5EKHcwCmcwPmcBIAcn6U+9kX5jDkLpxf67xi9rxZekw+9+H1tcO6HfPoO6aCnTdOrR3uLBr58Poa jDa8KQNADl1YO9EJ2tslZEfuwrqv2wiUtwvgX7seygGYBzym0g9R/g//L3SYYmgH+qESav2i/ZwD 5c6fyNHq38P6DWqzX9Bf6X+tv79sacHNC6/C87tiXlTO96rrhiKIWUdyUddf1EPSifWPhagfQI3G UXAxAQDODmkYgsFF54h/mvRVJrG/FJ2V1G8dxrdhdN1uI/erpNf0kWUw6k99L6Gq5eOaGueRZXbd US0AIJczdj078s7QBfPAcfgF8SMLY+fD7gxlMBg/Hur7ca2Ws2st7Sh/yGwdpHLGrmfb3rtGYWHa 9PFPcx+/tt06GBtna967xmAwGDuBbfnPUAZju+k8oX2byWAwGAzGjw32cY3BYDAYDAZjR1PTvxow GAwGg8FgMGqnvmfXzNdv1kMUg8FgMBgMBmNzYF+GMhgMBoPBYOxozJ6XtlsCg8FgMBgMBoPMFmXX spIgl98NJyiqXk69HmB3kxELHRc20M2q/smIfEza6N2rm8AW66ln/GhXdPAU/dE4z8uCVI/GqpAR 9QlSh/rV+1V/PUbZGeuAgfElxfljzvfHow7xSZ2/Wxf/DAajki26M3Q1Hlk6FHnlbGjv4kem36aO TiDzXAReDbS/HLDuKb+/78lBlW6cNx+cv9iDkB1V76MiiD+sv0Ow0V3FP00+tPUX5FXq3C49Vf1j AM5nR8i6Z4585yDXjnq+izxor+1y28ehyadPkBrfa0irX71f9ddjlHqO48YxML74ODc43+tNHeKT On8f1z5l3WAwnki25b1rqiLwMi9myvddpPJyLMHpsvtGbNMl1yGkpJi2JRVKrnVTo3FBT8XFRAn/ /xV5tN15TBQxdqJS3o4Q1y/j07aJYlwTHxVjpY8YaVd3Qn5LHROkQrsZkZePjT1MTF3WJVF3paoU 4/lkYupaPvu4bmuO9Q8xa1KiRxRi1XfDGP2KwMu8oEhFf+qZFYrOWvTk7dPGqxadZf3C+ofcrqY5 I9aWcyrGQ/V8CdFvJc1lpPXxRogfAAA1H7pCyRTDxDO1Pr5Tmsf0hJme/K4aKlj7xudLMQUlSHGh JGmHj3NMf6nxEy2KlMTiEJN0GhlfAGKcG5rvirDOghYb+iNG/UnST7RD8D9p/hq2jxVJWd/I8c9g MEqoMbu2vBT59Nu/vtDxuq9p3daLVE7k0cxH2W5Uuu9cjUdujZn3z150h9Dem2du3+3VtnfK6cl9 n2j7VNTVvZI4PdvuI+7qtN357avP7Y+U2wHu2abeUE8I2VHA9NmxOw2onePahT2ZD64+F5n/uXXm 6tuwf/Zix90z6YZAO2esXQBQhJPw3vTBELIj1NW7cufkbFPA3QjQ5EN2YU/mxqFX5s/aEbLTt6Qt 7i6EzHOL3PxFN0J2VHQRyT+krElWOnmndfjg2YkehFobbt6eb6U3jdXfHkDmuXfT5tdcZ872hJA9 0L108vQPAV8TWSdJD9a+hTJeBEj9IsYPuV0ti9PkQ/aexXsPDpS2uxqPrNcfjZ+8ZA1fdIeQHfWa Jv8j+a2d4s9Wkt9Ab+7W2+cfPT/gOjPR82pDbplrbCHGz1Lk3eT8IXf4bE8I2Xsb7qBJk5aZwMQz AKU+tl8t7q6exYzzPdfLLQDQ6O41z33HTY9QMh8k+0bnS0Y8me4LH50I2RGy967c/2C+8fVAawsl zjH9pcx3RUCNw5GDEyF7b/f98O9Wf6NfTEnQaWx8AYhxbmi+t/buyXx38siIq/Ds3sW55vd+39pi 1J9E/SQ7JP8T+mXYPh7yukGKfwbjCWBbsmucbTrlT1Ve+ksqN0aHpFto63PoRaqUnsrvU3lePhZc nFKqbrw6hivsAIA6qyDdzu3Su72dfhsHFh6gv6+Ng2dsG2pXldKO4WKakPNaHXLVXKNRMP4hYwkO W+Sg1oX4BBwIky57BgC6fqd1KGjRf8W1+ZPpDZzFofoHP14EKP3Cx09dxiV6Kesfais4YcjfXP0Z mt+aR8JHxr0WDoDzWrgq/neE83Y4r61ghxTPpPokvENWeVKP7ehk2j9U7fZrnH3D8zSaTvpd3nyH Oa8rVcyy4+Oc2F9c/KhSGvw2zT7H2Yb7i+VYnRsZ33rABa3JS1ktzSZIWVDTSX8bZ9yfJP1EOzT/ 18O+QbZk/WQwngy26OxaAWx2rXhmRZ3Rsx0tK0tzzqPaPlX/qXLoAW8HonHPp5ZTkYMTITtCrY/y 52OW4/cuQVfADerMna+77T5Of9xlsN3l+L3rz3b5iv15NBNZPZA/4lNopTaWIjONFWc7CP0q/rbi TBLXHkB2hOyC0PrU9avhu7SNPln/UmTdWaVSGVideD1k+/R+4cD3C29no+2W6y+rUMOAUvyG6aZh /xPimd4uPk5aWp+fuTHb3eVeVtB16+9/TZ9fePtG5wuo9yMPsOkTY/OXMu6lA1R1PTE+vgW1mLOA Rub7DzfPLHU/n73kdDjkpbtP/c3M/6OPM7zukfQT7RD9j++XYfs0MOsGff1kMHY525Fd0441iBW7 dVJ5HfBaHXJMemzLairrdLRxHABko5IiJ+rcLhe0JieUknM8+i55gySz+lkiMcaLNRwDwqAIQjyq AgBwHPDQ7OBptWn6E+lJKav/Ss3IDqvXuM76+ad+/YJsSgWAbFSKBaeqtOrts8iTmYITJuWH1ZVS /GZIZyKJdDvZqBTX7NDiGVe/Su+GrPKkItWSWiPZNzpPvVbHWDx/OiqrRuMC9R9Cjc5fLmgFOX/O UlUmCuNL0LmR8a0PbX2O7OSlrP9YW58jLcuWPi9NJwmifpIdg/43bJ9OxbpR5/WTwXiSqekSqozI X5vqP5oaL7uRilSOJyrKxb+O/QdS420AWUm4PJYAgA4p5QK9QvOIdtxEzYjo2lQCAMDpbHYMu8a9 pIYodgq/au4fsdvka2PgmB3OHgsuAkC/5O+7JAenmkdmXYAujyU6pJTLa6BdAABQFRElpxIA0Owc sU8Htb98isAnS/+49Ev+8Sp/P7NRMR6ceggAzv4D4fE2jtIvNc4HF9c9rbtUEcSsI7mo69ftUCHp F2B4ODsRXEyU26nUCRAl6cHap447Hmy/6PGD7Reo0TjKd8oP18am6P4s1gdnhzQMweCic8Q/TfyK meC3cv90SCmXl+j/jMhfm3I6JH86OLbez4CL52nLJKk+ZVwAQJuVsK4EB0WPoXla1l9wOh3DYZuX Mzh/p9tmKeMejQvF8b0NQ/mgIug0Nr5Efxqe76oUOyZbZ6dtnBrnkWW28KWkQX8S9ZPsYPxPixPD 9ong1g0gzlMGY/dT30uoavm4VraaFCCVM54EFEGAMBtcw+wyv0XFWGqI8il5V5ORhNsQflJ7x2Aw djh1vjO0hmoc4TgqqZyx61EEPplIJI+xt2IaYxf5TX95RHDq4RjavPffbgtK/gUTtxW/i31WYzAY TwQ1fRnKYDAYDAaDwaidOmfXrt+shygGg8FgMBgMxuZg4t75z9a/sOwag8FgbDOfP3iwqfZ/2cLe kMFgbB11zq55XqqHKAaDwWAwGAzG5lDjrQYMBoPBYDAYjO2BfVxjMBgMBoPB2NFs3ce1jMjLvLBD XhmQlQSZp77OuzaMdqpe7ZYKiEnb71PtrRCaEq2Pm3bdBVHApvqhXvYzYt45vFDHMCixvyPioSq7 RWcd0K5+4Xd0f+u+LhkFEw+7wW8MxlaydXeGNvmQeW7dtYNbhiKIP6y/q67RHbDumSu9VHFjGO1U vdotFVDtqs2toMmH9i7O/e3q3X8I+FrdAbuwJ3Pj0Cuf/GorBdTuh8p4qK99Iqp047z54PzFHoTs qG4xUMoOiYeq7BadWIzFD+ezI2TdM4e5Y7SC5PffP7Y6Go6nn8aW131dwkLxGyYejPiNwdiZbMed oaAqAi/zYqZ8n0Mqp1HMvghSFgDUaDz/WsuYKBX/jwJXrgi8zAuKJMZ0C2KVzJYqxXg+mZi6pqc0 1u8gU1LBTobabhVUSX9EKHEFxQ623WjeCC/E85fx6e8y1baY+e2m/gpW4u5TVfIpnJggFewXEmAZ zXulTdcJqx9uYzJqeD1YqONLsIPzgxZjMVEs9zM9HrAYsk8mI/LysbGHianLpYNI7hd5vNRiik6Q 4kI+uWtYZ7QYtJJIT2NQ7WD00+ob1onvL9E/mHkXjfO8LIhxbbGKVq2/ofjBzd8NsWAeHWjweBo8 HvPogHngXL74innAky8/ZypUv3IuXz5gPnelUGwa9TR4POZzC6Zzo2aPp2FgNP8IIX6AsC7hKM3G VWbWDfqNZdEYjJqoMbu2vBT59Nu/vtDxuq9p3T6HVI5nKRKBVwOmb24+evDC/shF97+6GwGU05P7 PtHyDaireyVxerbd5wZCeWsAmefeTZtfc5052xNC9kD30snTtJ1ui7sLIfPcIjd/0Y2QHaHC9nE1 Hrk1Zt4/e9EdQntvnrl9t1fbw5H0kDv1bnL+kDt8tieE7L0Nd9CkKeBrItshtQvcs029oZ4QsqOA 6bNjdxpQOwdNPmTdM7d0KHIkyAHns/csZv7+t3rWirD7VIST8N70wRCyI9TVu3Ln5GxTwN0I0ORD 9p7FW2+ff/T8gOvMRM+rDbllrrF+u9ZHM5HVf/nEeh3d7w60QvzeJegKuCl6sFDGl2gH5wctW3D7 6nP7I+v9TI4HIobsk2nyIT3pOH/WjpA9oAeV0fHKiCfTfeGjEyE7QvbelfsfzDe+HmhtMaxTEVDj cOTgRMje230//LvV39AubKXawei3UPxjUCepvyT/4Obdr9qFPZkPrj4Xmf+5debq27B/9mLH3TPp hkA7h5+nG4kf3PwtsBqP1JhdM537N1PLG7mP318bHISGW+YbLbnjLwKAeeK/ch/999rgYG5wMPez h+aJL3NHXwQA2NcCnrfW3hrMDR6Hz/vNDYO5fQAAcHQw90/3zaN/gp/+c27s/bWXG0wr+xxtT5P8 SVyXyPGgZeO0gbj34ECXu2VDfqNl0Wr0G4OxM9mW7Bpnm075U5WXhZPKSSTSiL+m9Lmm84+oUnoq n2/geflYcHFKyVDKAQCc1qGgRW+Ra/Mn0xvdynZIuoy2PodeRGuXhNMRzuvhvDZND9UOpl0AUGcV lL88J1kstgTDFnlSTy5OJK1DVe6NTjuGizeDcV6rQy7NfTaPhI+Mey0cAOe1bMIXH21D/jQqTZFW 0YMDN74bsQMdwzg/14862Dc8XtF00u/ycoX6tVwEh9GpSmnw2zQ7HGcb7q9FLN4OWb9R/+DqV+lv uX8o887pt3Fg4QH6+9o4eMaW10+Zp4b0E+avUXIn3oAv3jR7PA0ej+kPsHbqBADAwjmQZa2wweNp OP6mSf5Gz5YtxEzv6OUmpcIaOrUWOpzrBOg8nOsEuj/x65JxNnveMRg/Trbu7BoALEU+Ake/Kfl1 cyEf1rKyNOc8quUb9B9fE6U8n6IrnBVbjUeqHrlYisw0VmTg1j2ozmi7Q0q7ZOM4PS6iHXy7EI17 PrWcihycCNkRan1Ueo6kpenRGWUl0K6Kf1kecP16XVfLd5/L8XvXn+3yFes8momsHsjLKzZXf/SG OHfro1HlG/vqHegKuKvowYH3Z0sVO5W7cIKftSYw8UDHkH0iy8WkY7HE2Hip9yMPKOnJWnWWKalB P9EOQT/dPzX7k9rfStmk+Vvorzpz5+tuu4/b6DwFwMcPZf7i+4sl+f33APtyxwdzg4O5vj74uz+b //g/ueMvwt6Hpi8da5c+zmnZtcHB3OBRAAC4Yn75M/j3P669/1ZucBC++9L0k+N6dg0AFmKm5Zdy L+4t2Hc8nSH502g8k+pvbN6R/MOya4xdzXZk17TjBZXHkkjlRJyWofEjw3C7eDbCa3XIMcxRD1I5 ACTSk1JW38GrGdlhpeabAAAgqdXPSmKMF6nH0Sjtkkgkka4nG5Xiuh6DdtRU1ulo4zjNiCInSn9p CQ7DhFQ9tQYAXNCanFBKzs+lk/4acp9qnOdlvj6n2SzBYZDHHm5cD258N9gvErXHwyZjuF9eq2Ms nj/lk/1/9u4/ps37zgP4x3aYXRJDgE7hx0T85Ilrp4wcheYK6LpWtKS0wk97Y9cTVVZOat2ola6P K1186dQJoklNlMtWaKeixlsvpNVYdeNa2UhJL2CF9JZxJTMJLQrgeA+whTnXHOA6TQE34f54bGxj P8YmTnjSvF/yP3z99fcnVj758LW/gtPFreoDfYy5kBzBfgXB3dqVehOhdtK5L7FSnW+q799VvN8p zu9PwvdvSpS7dik/mSQiKi4mHS3qdURE9OCi/uPIo2lBk+Nk1C9uLiYixSfvKT5eMa2Xpt8f8eUe gYj8TlufOcnfH9m87wBuQ0ld8e61sgNdDQ97Di67kUqqPC6vlR3oKjH22LXt7EAXEVHWXvG4jOC1 8gNdw0REJSVZRkv5wRotkVS5m+PIYvG3mi8OE5U07Ghb+U+xfqfVZe76ksL1/Tbu5IFhIiqyecrJ 6jB3JTEe6UnZTFPmA5Htk8T4SbrfpSFlNew16B0DB8jYE/47hd/GnXRbTAeXwjWnizVfjBpLww7P wXwiIsFt5Ue6hokoq2SvwW7Oj1e/yOYpD8d+4rNLLaTMa43eU6fV0ao32c0kOR5J0vub1LzEdVif aH/j/D5IW037EvNiRyL/EW+whXYz1f0K16eSEqOlTV/DrGqcThcXWmQTjdKLCQaf+P0SO37p+kLq 40xqvpHrE/O+I7dYucFmqjvuMHdl7e0pJ/7kgeEim6e8JrX3KUn8/ki8fxO8T+P4aGZGuWsf6d0K xwgRkdF0/fXmxWLxyUnFvp8og+XGRf3uxeYHF4kU7+1Sto0Q0aKJX9zysbKNFv/z/evFnyjvf0UR 0fLiG2euPyheQhVnPRPurwTB6eLDvz8DB8Krmsq6Sa1PausGIE/pvYQqmXBNcLG8tif2iIxU+c3l 5jhqu9Wdwi2D/b31vDZulNoS/dsMtwTuDAX4NknznaFnBlesxkgcZ5Yqv4ncHDsyPDzyaOT3IMC3 B/b3VnKHvsBi1G0qR6wGACBjCuYnv8j7fIU/hgIAwM2G7BrAt0mas2v335eOQQEAAADAzZHURw0A AAAAIHlpzq6lY0gAAAAAcLMgXAMAAACQNYRrAAAAALK2xuGa38Y52NV/rXYU8YoFlu2zrXSX5G3I a42al9fKOljOHXei3+p1AAAAuAPd0jtD3Zw1EH1nnLqisTBz+f16q8TUGni+MLP3xu+Yix3nmttQ y0dOakMtr+yNulszLH3rsFZkuP4AAAApWYs7Q0lwc6yDtXqX52ukymMbsPWx7Mhw1wAb/GbOqIya x9YnlnMR11YKTlfoazz7rLbVXzDntIXa4VxRlwMKbisXap/rE7+XNfE4Y7g51sFybpt1afwRGa+I 9jlbxHWc8fpNUJ4gWyaEpsYlswXJr6fTxbIOzuoSN9dp7Yvamth5Jawfr18xq9pntS7f9xTXHwAA 4E6QZHZtdrrz6OUv7i16tnZDVL5GqjxGToWO55W9F5n+7gqeN/D8UjptwdX52QHl9p7uimY+e/Ct 0fFKMSfk3t+++d3uUp438Lxuq294f09BbcWK81lwdS7PKjG5GyqbS5t5A9+o+ODRMVWwa7+taSzP UtXRWsrzearB0f48Q2NFgnHGldfIK3tfm1I+Wf5WR2kzb2jcOt20X8wMubkm+qm9qpk38Lyu0jfW 1LOhsUIt1a90uVS2bLrztZH+v6to6yht5g2VqjG+XRGRkYpdh1TWkyngMr0/P313Z//3C0+c/lfa 3tNdNP7WlKqxgIk7rx/pEtSP16+YVR09fff2zuh9T3H9AQAA5GlNsmuM3u4xeWIvw5YqT02RLdhC fp0xWCTYprq6ToZSLI5HzRe73N4ETSQg9Lj50GU7I+FirdmidZjFLlyttKPNvNrhlxS+aNYGV4DJ N41MOYkE25TREr6hi6kpNDrEBJhUv6mPp8TYFuqXqdGL/UpZxXqWmPQMaVmihrp8htbrQ+1IzEuy vnS/RZaYfQcAAIAYt/Ts2nTnCXXMmaQFV2f47JpwYmJmh64ih3J8070lD/d3GHg+9EjqMFNMVsnp uv+o9vXOqtZmA8/nXYk8J8cUNPIGnjdwXF7GmdNt48FslsQ4pScVdYYsOJ0c18SZXF1tOIy9cqJz YYdYTapfyfHEm5dEv4xE/VTXc9Y1cZx0jRUknBi7sNVQy6wwL5KoXy7Zb/x9T339AQAAZGgtsmvi 8SlrTPZGqlzSiF8gIvLbrH2sNeHxqZpCo6PPdsMHlwSPv8SYzzBE5Hfa3I7hpWfcHOdyCkREDEMs ZRnZVY2TiIan2m3+4NExweswFtYQMebCkdbwOTbBOTViEjNJUv0mHE/8fkf4YL9+p80l9ispTesp Pa+09iu1/oKLZR2sdZV5VgAAgNtTUle8e63sQFfDw56Dy26kkiqX4ndaXeauL4mopGFH28F8hvw2 7uSBYSIqsnnKyeowdxFR1t6eh8wMkeC18gNdw0REJSVZRkv5wRrpjpwu1nwxqqRhh+dgPoW7yGrY a9A7Bg6QsceuZ8jNWf3GkYvB9oPjkRpnAm6OI4vF32q+OLysvuC28iNdw0SUVbLXYDfnB+vH71ei PP68yMoOdJUYbaYp84Evk6ifT5TKeoYaabCZ6o47zF1Ze3vKiT95YLjI5imviZ3XCvVj+6VE+55g /cWOlmYEAAAgU+m9hCqZcE1wsby2x65fHrVIld9Z3BxHbXf6IgAAAECk9IZrqtqXVzy7llPAx/t+ L8nyO4ibY0eGv7h89M2x3szIo2YAAABwJ1uTT4ZCfHq7x+TxmDwek33VHywFAAAASAThGgAAAICs IVwDAAAAkDWEawAAAACyhnANAAAAQNYQrgEAAADIGsI1AAAAAFlDuAYAAAAgawjXAAAAAGQN4RoA AACArCFcAwAAAJA15ZnBtR4CAAAAAEhDdg0AAABA1pT337fWQwAAAAAAaciuAQAAAMgawjUAAAAA WUO4BgAAACBrCNcAAAAAZA3hGgAAAICsIVwDAAAAkDWEawAAAACyhnANAAAAQNbkEK4JXivnYFkH y/ZZbV4b53Im+UKni2UdnO2mDg4AAABgbalKnn5sdqig6YcFcZ9Wq9U3ewRea5P/xbaq5mYDz+u2 5v617ecLlXwBk8xLmQK+9KvOmYLGips9SAAAAIDkLSwsxC1Xq9Xz8/MpNXX0Q2+S2TXBzbEO1uoV brA8tmHbKFn0TCg6Yxi93VNeE2pkKevG2bzhlzhdHOtgWQcbnYcLl7N9Vps/uhsXyzpYq5cAAAAA bjOqr/WPZf7vitm12enOo5e/uLfo2doNOZHPp1oeY/CDCUWtriJOJTfXRD+1VzXzBp7XVfrGmno2 NFaoyelqOl7Y1l3RzBv4SkV7y8hlg6Gxgojc+9s3v9tdyvMGntdt9Q3v7ymoXcq6zf71zaN+ureI r92Q3LoAAAAArFp6s2uqnAeTCddy8hp5Ax8be6VaHkM4MTGzI064Jtg+H3+i/OlQ1i2HUQzum97a mDfYPvbdF7//iFg/Z8PWK97jpGusIMH2+au20TffHBMfRx3+85uyw8FZTgHPGxCrAQAAwC2R5nCt 9uW1Pbs2PtH2J13s4bNZ18SZXF1t+AjblROdCzsa82ajw7tZ14QYruX4pntLHu7vMPB86IHgDAAA ANbGWpxdc1odLOuwxnxiM9XyWIzZYHT02UJn3ASni+NcTiLGXDjS6l46+iY4p0ZM+QxRTZ3W0R46 Eid42x1fBmvUFBodfZcBKtcAACAASURBVDapHnF2DQAAAG5XSYVr3uNdRA0PH6y5wfK48g/ay6m9 j2UdLOvgj2stbeJHDfT2NmoPfdSA9xTazVoioprytropXvxIAT9VZykaPiB+l0f+wTaDu1Ws7+C4 Pqsz4tMGK37kAQAAAECmFP/wH78Q3it3vl8e92mtVkskuFhe22PXL/9yjVTLAQAAAO4Ifr8/brlW q/X5fCk19eizZ5PJrjHlnrixV6rlAAAAAJAyOdxqAAAAAACSEK4BAAAAyBrCNQAAAABZQ7gGAAAA IGsI1wAAAABkDeEaAAAAgKwhXAMAAACQNeWZwbUeAgAAAABIQ3YNAAAAQNaU99+31kMAAAAAAGnI rgEAAADIGsI1AAAAAFlDuAYAAAAgawjXAAAAAGQN4RoAAACArCFcAwAAAJA1hGsAAAAAsoZwDQAA AEDWEK4BAAAAyBrCNQAAAABZQ7gGAAAAIGvKM4NrPQQAAAAAkJZadq21urr1QrqH0Hu1g/F1MD77 4WurbsN32N/B+E71pnFYa2NyT8w6pGN9lrkp+5hQnHml07HdCoWiujWpuu5uxaFDikOHqvunb7z+ se6o8mPdhxSHjrTGbfiCxKpLlQMAAISoal9+bHaooOmHBXGfVqvV4R+O7a6a2X28SZ/mIWzJKLNo mMzABGUYKlb5x1lNhZrJDFzKVW/ekt7B3WrZOzXLFyEd6xPlJu1jQnHmlU56z3/t+5jqWp6rXLlu 3j0t1dW7lGMfkuG57911g/X191RHFurvqd44dpYMZZWxDedWFn5a9e66FpM+uXIAALidLSwsxC1X q9Xz8/MpNXX0Q28K/4K2/uzwC089Hv5ZCJyq9wUTP3vmfERENLnHF04FhdJCHfVzRES9c6H6/lOH AykNdMlQfVSeKdid2D4ReebswR6vTiYcp5iNs++5Gqe+pGuTe/xLMzpV7x8SguVDoXJ7/dwkEVHg FOPrqL96qt7XwVyd7L1qD3UxVO/rYPxDh8P9hhpJPYsWb17JWLaP4hraD1+bPBweZ8L2rw3V+4P7 2CvOdC4yu7nUYOJ5pd7vSkoN0T9PH+s+IibGFEf6dx+RSHqtWoKs2//17z4i9tt9LOLJx/e88dnP 4iTSpMoBAABEqpKnk8yuHfv359c/9X44BTD0+rzhiPYBi6bMojHoFz99PbB557rsnRomM3DpwfXc CyraklFWen3yO5p/PKImItqi2Fh11wMtmjKLWvHbK+dUmshM2PwfF5LJHm2qosmv1Nyr68Qfs3dq ci8GcprXb8qh+T8u9O9XVDm1D7Vocgfnzo6vE1uLO04xG3f298qqD5bXlzK556vxuswn2+4qs2jK qhYnDn2jaVJvyqGh+q+oWftYi6bMojFULZ77cWDjM2rDkzR56Jv8D7IqCwPHrVTl1DLjc+Mq9d++ plH2zI0rMx765YYHWjRlzygv/Xhu/pmMbFohixa7PnHnlXj14u5j9k5NWen1fuuCL1/90C8zH3iC aFalyZFsf6j+K3pLnO86RfvXg4rvNHVrIrObYoOjM6H1lJhXqv0mNvPpvj9ta3muMjc8z+4PPjJw Z0yPtFRXtxR/3f37P3/3vnDSa/ovZ5PNrknVl8i69Z/teeXPxb/lnn7zkeqWYsUh+x/Wld0TXO3c mU+fb5/ZFTnMhOUAAHDbWqPs2oXRz4jCf64R5sZ/F/iICWZBOmquCr+7LmZHsl/I3GifF5MiQ29c 072UEXpJ4Nw/B+ufPb9if4FTS40HH1cniYjR6M4HfGKaqn7OR9fGz2dsZoKvYX6VWcwQERXXqVYc JxExr8TUl+qXAuPnM37wSKgak/EDQbudIRLmxrdptjNLLWbotgUmxIRZScZ2hrJZoh9lFDOUHV47 pe4lTXbwJarN3LXxVRy5SzivRJbtY0jOq5ncv2VkM0RMRjYj3b4wN04Zofmqil/KyEl97KvpdyWP v7N42rI1osD90WXjO/pQ+JOrf+df/smSKBhy7xbzcOFH97FVzunuN7jKrbnBfvcYL3/kDg9zW9Uf zrtjXyJVDgAAQJRCdm26/9dvXf77FlPwn7ycxUs9yic/3VBm0YQeGdnBqsqNV+bOzao3C1f/x6f+ wdNiiBM4Vb6wcf/6x9ruKrNo8q8sP2cWkz1SbQ63HNX+/ODcJb1y9pjyvm2BS+PkVar+ZqdKbCHc phAIZnekxxm/vmS/1yd+s7jxmXWaZQs0+83ogNKwcynaI9+Jhbkd6k30zegxMjyzjoTAuQuqsp2q pe4u/WaBnlBvCoU5UcOQzjIuL0+0/gkt20daNv0QqfZnQ/Namn7oR4n1TDiv5PtN2XT32a+3lX1P KkKLyZblmaqrW6Ie9+gT1Zcs7z8bdXZt+i9nT2eWmfJCz/563+WH4hxTkyoHAIDb1Bpl17YaSoki /v+fodsWsEscQct+QUNvzEWn1q7Nlqg2b1ERka937pz9ekoDjVRcp5p9OzDLZRTXqcbtgY11GQmr JxpnKjJ02+b7QqevfELgVL3vVK+Y7ZsLnz8TApHZPgnXx9+e84XOvU3YVbpHVjeeVc1r+T6m2D6j 0VFg6dDe5NuBmYgnZz3XiMjXO2d/ftULnq790j91938/GzpVdmHavfvIod23KH11+RX7/7N3x0FN 3VsewE+CTCIlQsC2oG+U20iDm8ViwKnS11pRivbBVYt1J47KTCvw+jpvL66a1U472Om2OmoVavc5 EukWdcv0KaMNTLUVgmKrTEsDS19GbKQXaVXa+pCYlgJZdP/IDUG8NxAbIO77foY/mnN/Off3+106 njn3ktRf6iQiumSvX9syeZm3CDtx4fy8mSI1mVQcAACAiEj2/JHd/CG95bBe9LBKpRr476JU2YXX bu/3PqTe376pu/boLSIinVw9Uzl/p7cR4ihxHrcrc3Z6aylHifP4tltEpF6hSIp31W6j2RbVLMZV x3QPVDtERBS6gA+b5mPKfI85zRVnUc1i+uuY7kiLahbjTc4ciHiKusvWuYhIvSWczQsRnSf5Gi+l v3lTd6Mnz+z1YbOEe6PeuFqnSKpSTiPPolaE5Sx2la1zqbeEz6fu49tuMQciIvc4ab2ya083byPS hS7Y674hK7UPPvbH1/77cOd1HJqfORDxlFA+SuXvb87sbrTdIpIzB5S0p/+pKiUREe+q+7NnUSzV bnOpt4SzebdGuK4RnNdfnUVV5vUt14mIJk/e8wRbEB9FZM/f9VHJHcMSPt6YuUQ0AZH0ePE4Ve16 tmXynqUJf/3os/NENDnhYzZzyUCL71JR6lo6eOddW19xAAC4bzmdTtG4SqVyOPz4OzoiWrS2yY9y jU7ky44vG1yvwT1oznTSXtWsYTpwoymQ19FVl+kp12A4UhuP/7EAAP7/CWy55s9HYS3Zj88b+I2a Mx2NtluNaYM+fGTsBeg6tm9ylDHdvK13PNdyH7lU9MbXezbdXZNJxQEAADz86a4BAAAAwAiMX3cN AAAAAMYcyjUAAACAoCZvaBzvKQAAAACANHTXAAAAAIJaSPq/juxbDdpOf9cVFxE5djMDAAAAuE+N y7canP5847vNG1/5zht45QOdTvhZ8d5Nv04LAAAAACM2ku8Mbfvbiv9Q7jr6+0drPtt4OWblbAUR xS1MfPnlyCu1kbvPLMybrRB9MwAAAMA/pMB214Yv1757Zd2PhqMpSURxC2N+fvPskYceXRjnPnqz 5q+9ySsfwh1SAAAAgEHGulyLWLhyWpzn5eyVA7UaoVwDAAAAEDMuz64BAAAAwPgIWLl2870Vn58O VDIAAAAAEKC7BgAAABDU7rVcO/3KBzrd2Y8uNP9B+DiPqrcvBHRiAAAAAEBEJHv+yG7+kN5yWC96 WKVSjfGEAAAAAO53TqdTNK5SqRwOh1+pFq1tws1QAAAAgKCGcg0AAAAgqMkbGsd7CgAAAAAgDd01 AAAAgKAmT5k93lMAAAAAAGnorgEAAAAENZRrAAAAAEFtLMs13m5kKzWaSo3mjNF4hjWN4al9s1g1 mkqR+YjEO4yaMyZ+5Kn9He8Hi1HYzFHK79MorivwpK4vAADA/SFEtzKjqzk257lY0cMKhSJQZ3Ka cq5FFz9dVqjluOiQtmv1FGdIDlTy34aJ5RJ/Kb8RO3Q+IvHwdC4uWT3k/XbW6DKkh4ulFh0fGEy6 luOmhNVcoyWjdIrxWVfgSV3fseZjP8clDwAAjJ6+vj7RuEKh6O3t9SvVwWMdI+yu8XZWU6kxdgzt p0jFxTmJd3/Eryotd74515tkoOvGmjqIPO0Qo9Wd3GI8o9FUssYOYbjFymo8XTqT+GcGD2Yxecaz VpNl0Nwt3vigsGRctJvFm85oNC22ii81wpS8b5Hsft29XnKaWKHp6M4zsFgf8/ebyHntrKZSw9pN 3vPa+bFa1x3dVnb4bqvYPvjKL3UdpfenwzOfStZkZVlhKwKyLl/76c+6fOTxdz8BAOD+McLuWldn +cHrP/3T1LXp4Xe0VKTiYqmS5yo/3Pq3P7769TvvdFwJi56RrFATEdnZHHrNPK+Q03Jc3FzHNznV 4YYVcWxYx9vnJpfX//OUU+f+nWZVV01t23s1xBDLkH3bvunvVSVynJbj4mY4bNuqY9N9dk2YqPC5 hYmFnJYzyD5c9E0IF8sQkcWac3JKcVVyIafl5sr2bW25rtUakqXjEt0sdXIcx8lrrjD1Vckcp+Xc yUlyvPh6k1XJhilhNRfPTZ5VXpVcyEU07r3YNld4l/j8BX3W8hF210TPG2vg5DWvXpUv1e8tSyzk tIYZnTnbXIb08NFfl9OU8010wbyyokSOiw5pvFgfrfXd/RLbB4VkfunrKKHDmHN1cfHTRYVajtPO dVx7u16x1hCtDtC6fO2nP+uSzuP3fgIAwGgal+4aE29uzWrdEcOMMC6eJGaHeX5ra1Zrq36x/TQn dB2uJhTEe//pSpuSUCn06nRZ8QypNETZi2MYeiCehPEVFac9rYXKRblXKuwdYifz4qvtnDD+Yosn aDnpzHrJM20m5qWsSb7jgeJjvURTC4SdjFmcMMz8A3le3ZSXclUDS85quXoPLTz/16XKLVBV5rov pbWI5hTnkm/S+yCS3+/raLnakqVP8yyASdO3muOZ4FuXNL/PCwAA94+xe3btjrRMyC+vfiHj0sO7 rJcbouLSveXez6fK++YYosl6+STFGZKJP/XNpRnadKbPWt4ZZYjVOzprdE/Xl2k5zvPj+yEeizXl oOqt8nlFhVqOi/65pjPKEMsQ8acu35jjbQ51eU8nHvcQ7WZ1lp9SSDxLNHS81HrVJCzQfcQ7DYn5 +5yPCOnzdpaX0xJDtCfB4GmM5rqIiIk1cFqO07JsdGjDueI2n90gyX0Qzz/cdbwLf638Rrgheeiv e0DXJbaffq5LMo+/+wkAAKNrPLpr7seVjHd1XaTiYimsGtZu8fQl+FZn9uIYImJyp7QU2QceguIt V1uyfPbq0qYkVJ4Z+SNcfKtTlxDDMETktJjslTZPmsWqyn2eNgnfsa/ypu/4MFqcPBGR02Q8ozH6 epzO3/VKzd9fvs5ru7rP5BxYcmXClLSBt43auojsLGt1/z4wDGloUoLG12h/98Hv65g2JWG71fM0 npO3WFmN1RLwdd21n/d4fUWui8/z8laNplJjHKYPDQAAwUr2/JHd/CG95bBe9LBKpSKiDqPmy4rs p1t3qO48KhUXY7FqiiibrlTYiIh02XPMO2KEQ7zdyLVU2Ihokm6z1pwbQxarJvcKEWWbshafrMyt mLS5Wk/c6e22qaZWfRrfYeS+FPLoJiUU6Hek+ZiA08Se3m4joknZm7XxlV9up4Rq930ui5XLvWIj It1UUwHl5l7Rbc4y50rENcKUvLLntApLcFqM1tyKm+51FbtvYFmkx9+9Xu8kp5pa9WSszK0gokmb q+fnMhLz95Ffish5icjOslRQ4CzKvWIbPP9RX5edNToTWry/D8XD3FIX3YeYasn8ktd3BPtDOl1C QXG8cG80YOsS20//1yWRx+d+uq/asL8hAAAQME6neJdDpVI5HA6/Ui1a2zSSco23ajiVu8S5g1Qc 7id2lqViXEQAAIBACmy5Jm9oHHYYIzx2PdI43DfsrKbFZmtZhE+RBQAACF74Eqp/aPHm1qzW1qzW Vp93CQEAAGA8yVNmj/cUAAAAAEAaumsAAAAAQQ3lGgAAAEBQQ7kGAAAAENRQrgEAAAAENZRrAAAA AEEN5RoAAABAUEO5BgAAABDUUK4BAAAABDWUawAAAABBDeUaAAAAQFBDuQYAAAAQ1OQNjeM9BQAA AACQhu4aAAAAQFCTp8we7ykAAAAAgDR01wAAAACCGso1AAAAgKAme/7Ibv6Q3nJYL3pYpVKN8YSC 0/EbN0Y1/zK1elTzAwAAwFhyOp2icZVK5XA4/Eq1aG0TumsAAAAAQQ3lGgAAAEBQQ7kGAAAAENT8 K9eKUlOLLt0ddtUxjrLMnpFkaN/kLGMcZYyjjHHW1fh18jFlqdKw9fx4z4L4elazS2O0ByzhiXzZ 0Et4Il8mk8lkd8UBAAAgOIToVmZ0NcfmPBcrelihUHhfnMifdyP/ZE783UmmF4Tc/OD29FUThjkb 33PmoGzxF6rHC5RJBYrpj/yGiY8y5lHO8Dvv4/8tPSMqRu9ZwsSJonH17wysvKYhzJAeHZgTxWdt fXFu1NDQ1q2rIz89RsuHHgIAAIB70tfXJxpXKBS9vb1+pTp4rMOP7lrRGyV5y5Z4X/OuukyxPpk3 7jBv6hn444f2TY6ytN4bNtdxd3fN243zjM/sbi/pLmMc5pJ+YTzjMJf0t5d0m91HhfH9zZ4WnTmz xx10lDjLGId7GgNvJKLmTEcZ42x2Z2AcZZndzcO2zOxGzS6NZtfd3bV2S+3qDaUpG0pTdteu3n3s kBDuOlt+LMUTP/TTwPDLhzzx1eVNZwfCttqUDaUpu5vabU2v7y5N2XDsdZtn4yxVrPvUmvdNxvdZ U6fnPX83sULcaPE590tFqTKZLDU/P1XomOWfGDiGLhoAAMD9aeTdtRP/te6BZYezPL01V90aV9xe 1fytyqSCCbJ9vzZeD0laNYGImt/q1b7v7p8ptfG3v3jLNf2ZCUQU8YwyaSm1N0z4ly/CkwqUSZ5W XHNmt3L9AxnFE5PmyS8X9fSuC2fzQoTxibfqjX2OGMX8d8Mef5aoK0SppubMX6hQlbFVmVSg1M67 /T9rXJGrJkQkK5gw1w9RiumPCG+8eGOCNln+8CqlvLqnTR46/93wx7cqk1bJf1jT07sqNMLHlkSn c6kcK685SUsGGmwtPT0/Nb386cT8l599c7k+b4b86xPX1BkzHyMiy/n35y35YLk+L0OfN09903y+ LpF5jIgoUh0Tu2l5al6G/jn5hewaeV5iJBHRQ0xeRvS1o58f+XHi82vS3lzOhMh6pierJ1qqck5q i6uyCrlUjpvmOPV5ffRsQ/JE6vq+fMtn8rdeqCpayCV+v7eoc+7gtt8QUXNfXB35qbH24ZLahsPv bH38i21vtM4XemY+u2id9aXorgEAAATKOHXXLl38msh7H7TG1cUqpjHuFyHT/hQqVBB8T9tRT/+M cZSldfNHb7WLpPPge9oodNbCECIiJmTW+tAhx9VbwtidoREMERMawRDxPW0zlbMYz2EmNG6m6/Iw DTN53J+UEZ6pTmf72+7pmbkHk/Jj+fXbS1M2lKYcstILC9YQEXUdavq20h3cUJqyoWJ9w7ffCt2y rjPVtUL8k66h2aYmv/VvC558MJIo8skHI4nIcvJ61o54z8Ki0nZsNOd6aqfspTvSooiI0rQJI5lq 3mv7l8wgIlqyLPFelgoAAADBJOTX+IywH0fQXeusL917ffnWLKGE4F3u9pVwtOt/L54g7aoJpL79 Q7V8qbt/JvwMamUNDJOKDEk75KV7/Jdy7TMhAwHHqb6eOYqH1dT7VZ+7uzbkjT980EfPKh72NKTu GCat6/vyId01oumJM/My9HkZjyyeIWva2/hdxszHSHmz7XLChlX/maHP8/w8/RAR0dny//7w4SdK /rhgU4Y+b0Zv3bcTn3N314iIHGfO98yeF+PdmISJHaeabsxISr67b9b1fbn32bXOU+W/zvHRXSOi zvrSc5NfFLqgl6pK//7E4J6ZVBcN3TUAAIAAGqfu2gxtIpH3LxQXhkaae9uFtlZ/+19cnk/9D42b 6TKXuEaallHGkUt4nozvb94z3BsZZdyFHu/zZ7yr7ULodE9Pqqu1n4gcNT3mdYPz3Gr7S4/DM9XL 5pC4hSOd3WCWY6vLL7cTEUVOIzVNjYwjIqInZ0V+snvQo2meqbRdi4pPjJhGRD9dPlTNtwyXPm3x 5O2c52k5vtNifD+QfxAKAAAA9y8/voSqKFV24bXb+wf+2IB31f25m7cRkZw5oKR13bxOkVOlJOpv 39Rde/QWEZFOrp6pnL8zNIKoOdPRaBuUekVYzk73rU9XXWY3byPShS5gqYkUbF4IkauO6R58k5M5 EPGUUGb1N2/qbjx6i4jUOkVSlXLakPnoQhewVLvNpd4SzuaFNGc6ab2ya4/n0N6waQxJsxh35Vbc Eck2bdxx88YNy7HXf4i0N3zbQkQUlfXCgkKd0C1rt9W+8p4QT5gamb9mwZMPEv3UtHr7Vy1ENPUR LkP9yXtf0R+yD6dFni0vXd8wKHvKogbDdPeXUPGmKm57i42IaLJu8xPFufEMX88u+sxGRNlLW3eQ UfNRBRHpfl9tniu+hktFqfHrzxNR3se391O+7NkSIpq3x36uwC688Mr7+Pb+JXRCIg4AAAD3LrBf QuXPd4aeyJcdXzaq/5S3lzibKMz9pwaB0pzppP9j7/yjmrq2PP6NWN6DF0Ui9GWJD4sYBPX18ZRi vPqQZetS0KQUZqRWWukjTTrTtwxFpe3MvOVlWVvbiZhgu1qBKvXHap9TGaqYqG3V8UeELLUsbS2S WGpAybQ2+COtjn2dzB+5SW6Se/MDg+D0fBZ/yL777LPP2Ru47nNOzqZRDwd7RQsNuTOUQCAQCARC +AzdnaEFmzeeWzsYnwJx1v3BHx3mB+ZG+V3t+udf/u/n88L9FF8CgUAgEAiE4UYk1bVfMKS6RiAQ CAQCIXyGrrpGIBAIBAKBQLjnkOrasGCwq3f3O6T6SCAQCIT7C1JdIxAIBAKBQPgFQV7XCAQCgUAg EIY15HWNQCAQCAQCYVgzCK9rh3Sa9BJNtcneUKVJL2lquOwSm6tLNOmsr2pT9LseVrjmgTUDw5A7 22lLjsIWcCnDgHHUKKzbbVEzN7iYWtNLNPLmAbbmyXMCgUAgEKJOzNQlC66dDePO0Ai40rXtXPzj pbPSrxj3XkpdrshIA4Cx80spdWlmfHvPnLX//L6Cmp9yV44PBW1y3a2l0rFhaqdJXeO9ACp7xujg up23h+Zj4WL+kC+MO3NrTL5wQnQMxubLE/4gjI4tFplxcVG3CaRkqNPsH9zIWJo1oObceU4gEAgE AobsztAISUp3vY1NSAr6N4ypTFTrmlwlN7mOdU/mZXN1FVOKkze3yqtcN2q6qnRNDZfNDbomdpNu U6ucKd01VTfbAXf5RNcqL9Gk68yHQurz+9Pd3JRecvzLox+7q4Oth9xuHmp226lqbbibkqHNXkNb chSWHIW1hraW6RmxtcNWpnDL9d7gH9O75bRte4dH7KhRWHIU1u02x/ZGa47CUtbocNt3uO1byvS2 Mtpudbf5Rm9l5B5lTjpsOQpLWaOtTGHJaXQc87V/rJFxklVdc1XvrDWNXPZZ4y3Te+T8/nMQLL64 3ObOnyZ5szevvHGv8gYR3PkQkjDznEAgEAiEuyHmlmRB/LdRra4l3uyt601SLxifeKVrm2DyGp9y 1K0zB9jVprgZCzLj208Yx8z/oFa2pjT5810nvpnmemqupi8sXFmuVVDqUkp6s2vDF/HPLBifiLHz S6nf2z59yfD9bwvkm6oeLRghuJYSl4i21z/K3lL7qLqUUpdmT7r52evtGfMfy5A/0LXhXOoHWx4b 1/7hS5j/aW3mN7suxCzISOPUz+L1JzErW1064jPbH9tqZepSSl3qLaWkjU6SKh5dU0qpFwj+tuJk TCm7yuI3Xj46b9++s11jTyxKeVuZrJTHxVjsp0eJiiUA7NrWhDo6WSkXKeUJE3/4TntGmC8BgAmj YnOeSl4tFynz0fJv9hi5q0IWmy8XZX37Xc2hOw/OE69XJj86AtfFMQlw1Ggc855PXfeUSCkX5fzg eLszpjQ/LgE/nz3ynU6Q3EyLV8tjz+2x92Tyl8fEwoUjHW9/FVdfmyw+c7kGyc200LrHEZMvnABM mC5SyoVxZxzI8VhwVe/sptHJ9f727WUarKJTVstFSnlCzg/2F87EFktiePyfKuaurgWLr5zGX2uX rCml1KXZ0psnl7cnLc2Kg6l1+cnJulrZmlJKPU3wTsOJq6nU0iyAOx+CxSxonhMIBALhF87wr67l Lr5YK00D0orLL6olYTTIrFRL0gBAstCzJme60Dln8Tz3gmma26abpJdXlr+ZK0oD0nJFaUB3c+fu o1s8G+Mee6Nzdw9TUJk6R5oGUTpQMkuShrEuh4Loc/vDT3e7Uc3YOdEZxmh5iH26KPbAW64qlG0z xK8VAoBV79jbxpSmchSW4rcce68w1SbrGfu/MHK7OcCa+vnUNdmxqUBqdmwqgA6HOVf8JzHzODVb fIoWpTLfCTcqhKkAIJw3PrSjmbmiVMQ+BMhyhKmInRi6hVAVYN+qd0iKPA4gNVsoMTms3iYB/vPD F9/MJ70Jk5Y7OfN4Vzdw6ORV2T9IGHmK5J/mJMGtz58PPESc5wQCgUAgDIyY+SuivnctGIHVpltn DvSIFjAVqe72jv4p2TNGA5e7PriRtDSLu6jiVXOTeLP3s4fK22hKXer+ko4FcO2rjv3IXpqF7naj 5XfU/BSmu+k8OOzq2QAAIABJREFU+rz+AEDvB+3x/nvXTK05+qTX1i7RKih1aaqj3duWZ7ycdN6+ DYiFxXKRUi5amBs3sutyvU1ULEHCD7eOjk/dv1KklLu/pscCQIft0c9i/7U6Zd1TIqU87gff/WfW M9evZfgWyWyO5puu8pUfP5894m3L0dCX6+brnyGhWALrGXv3OFG+2Kc58PPZI+zqGq/96+brHaMS 8sUetTv/deTnP+bHJXC7wbt3jS++iV91nBqdzdofaf/kwK1HFoy/5ps5nuZ8+UMgEAgEwoAY/tW1 qJA7OXPnHvdpO3u3qVVe4rPTiEP/eFMEW8ci1Xdx6ftuALA36JrSdXYA3b1Xp07ISEsBYD/UbNx7 KUKDXuxltO2YDQBSxXgIsZJxAIBsocRkZW1NY7BeuZM5XjhBDODOMb39QG8o89lCSbPNvavsjrXD VhbNA6ERk1ooNLd4N89ZOxzmXGHwKlpEpBVndn7o2uwIAN2mC51zMtKAebOS9n5kZuSXze8cv8po BM+Hy63pJZp0Xah6G4FAIBAIg8K9u4TKXF3y8W7W9yUvrXoz195QtWX9JQCZDbsXQ6d57iiApJfr yp9LAS63VW84vvsSAEydMKdypXReCmBqTX+DveSY2bB78TzXPy+bqzd87NZPynxS/iaMLuWSl1Yt PKl57mjSy3VybNiy/lJmw+7F8wL1cxHMH9gP6fY8d/QqgKl5j+uYBVPPEJJKls2WHP94PeZ8WitN 8/cTyHucf8mspb/fXtZ4R9Lr2NsLAJlS8WsK9+uLzVHzro2Rj4+VFInXZMcCd7bTVl0vgFhZsWii yaaDqJkWpXbYct5i780XbmwU/4mxY6951+62I1I9L/qT2GNEuLFRjEbLi20AYtWvpj4tBgdu47K/ TJp3yvJiW6z6VTHetep6hRv/ghff8j0TIBWfUsQGs+/1JzazWLSjUMjuwtd/vkuoWtNLgsTXkz9J U5fN3lPMTH63qVX9RueXACZkNjyJ597onLps1Z5irvzJFTH9uKIZLIIEAoFAILCJ7iVU5M7QYQG5 MzQ45M5QAoFAINxfkDtDCQQCYaiwYLYAAgF0Fv8nBhUEAszWhbZhUMEQQgMCQTR0hhmhBx6lVrrZ EHCFySvXsWYvwpm06AYy8wMbe1QYwq7vRwwqCGYj4Od7yCGvawQCgRA5u/b5S1rqw2tpQGGYmsEp gNOJgmhYukcMbOADaGVApRFaM5xOqCfxyNX3dvaiFfT7q2tCNBmMWw0IETNUtxrcLwzOrQYEwgCw Y8smFCjRchhlFRB55AbIfwPlaXy7EBXSoBYsqNmJZTSCbYQMR+e+Y2CDGkArC2p2YkVdQJOg8vC7 sLdj0/6BuDQ0Af1/mUuDiaUVO7/FCvZP9wCJ7slQ/ON/1ObIj9zgwUkgEMLmNE4P6hffT/JQj/sX hdlJwanUO5Vwas1esV7ppLROJZyU1itUwgn3l97VWuuVeDS1lFeodOnpnYBTq/Vv7oPeR862HExf z63D9oE9Ls5RMNYop1bpBJxQBkxSgDOcAw9tGRytfMak9Hfbp2uWY/5y9uz5zmSQqWCbYkfHq6YP GIuvJucoOBKAZ3R8Xeid3PHlnHbuOfHNB87QKH3d01LMt8Mq93gNhumDyzLl5Ip8pAR5s7oWITny IyNmx3EfMiAQCAQCL0VKn/XQlnosWeSjoBIAejidcDqhpVA4GxZgkhpOPQDonTihBgDdbFQCZiec Tjj1qC/0breq3MXIPc35sOggqYTeyXSnV6KQZ3NV4ascNtk+mLWolHh94BwFgxG7psDphHNzaGfM AQMPy7LTvxUbgwqF9e6O9KiUQGXwmWG2Y3xyP4JMhR+e6ARXA5ARMHa+HtkJwDm6kPjFF/xdB8kZ vtAUKVHf4mmPXUYUFQyv3AtukM8HlQCV09z+T0PlMF07jln4VPnZ0yCLoQTC3dNX0zeo9uvB/XuE pulB7ZfAwo4tm/DgMshGoPo8aBkAwAB5NzathrHGvRhqgLwbH77OrKckObCpAQWuBSn24pQBs9ZD ewiFLj0JaBpSEaPjkfs098Cy074VO2dgh4x5IpGBDlz84rPp64NIipl9eNoIWhZ6FCs3QRqwYsTr jO/Aw7XMt5ZnQXk5VppR5p66mX2o+ghlFRDxN/HKOf8dZCrYKdCOTft91BI/QaUFtCzAW8+3fC7x J0C4o/PtgiO+PF3zhok/NJKRqKnCTBoSwLId1TdAV8A8nHIPQQzy+CDQoXw/9KcYnyUy9NXg9O+G 4WIoOWpAIBAIkTNpEah6popgaAG1BOxN7SiA8wQjMaggqeQ2YukCgIxJ3E898kkZIZwpKALqIVCF djvQpqEFoLCI5YNkCuAaWqhRcHoeljMDsszGsg9GXzXJFMCIu/kw62BTEQC764xpwBcDOUvIlwAD Hl0UciZIaAqgBFoMALBvF5Pzwyr3QkYw0AfzeUDpc+ikSBl6LEPBPXxdO9FakKcpyNO8sNMe+LBt HbecU7Mgr+lv1tCaLAwqgUBAafkeaylKO/xO7RJ8MKgEAoFAIOAMlUHFLecxE0m4D+k06SWaapO9 oUqTXtLkvmnDhbnaXzIkfN9QpUnnufaDz38Lyfq7ZBKWUMyfrsCVULA+M6IQMPP+8gGoaOwBL4DT DKqe6THij5kwQiLwtmX/aQx3FJE7MxDLQQn5ghIW/FPhg2/UJFPuosfwEiA6o2PDH6YgofGsh543 unN+WOVeUIOcdH0RkbtDSMyNvPKfzfdkMTQ1o+xZKj+26zgmL3rY/6Df+DwqUMjJ+DzqgWMdyM+e lhB+35KLB2sOYCHNeWLLoJrVr9q/nBybCRctpeqvkN3r+ZLIaJouG3PwP/FERUANXCKjA4V8ZsYc fI/LBh9Xuradi3+8dFb6FePeS6nLFew7YcfOL2VfCDtUi6Fv7DmZGe9/X60bHv9F0nGmWVtG0vc8 kPc7nsVQCZIcKD8GOgvrT6N6NURAq3sx1KLDogbondhBg5b5niVkLU7Z27lWOcG/phZER4QKGjQN mkZfDao+8T24ym8Trdj5K5itqHM3d31JEO4oOOB0htUkAss8HQUez7To3ZKBLoYGmQr/rn2j1r7V fZYwwsVQvgSIYHR8XYRch+UJkz1IaFzroR+hbBzKu7FptTvBhk3uWYJEkMeHsSbshM9693A9GTpI 1TX7v+dpCvJa28LR5aq69e5sKsjTvLCu9YU8TUGepuDPHKZcOgV5moI/h9UPfj+ZU6xdW68sYlVC LQYVJWAKOSots+dTIBBQKhUlEAhUBtdzyr3t06B161MqLfu/FWxDWpW3lGFhNaAo/ppfBHYoV8d8 fgb1n2O8sGgpbwsfZS0lELx4sr6QaSHwbn7lmQdXUYzSWpjnLlOuDtxVLs93oaaCC66qG6//7GnV emc1ZJEpKd11W/yEJM/7kKtqFVBvA3594/0pPdbpPdbptven2I6NY8QzEq8em+6Wj/vJo/7UOLd8 ylXae3nDj+9P77FOt9G//pGeaLNO7zk28UfmSYrkzdpVF3evurh71Z7ixXtqpR6XLjY3pZdo0ks0 cv/rTTn8BwpWbzy3lhTY7gLXeqhuH4zT4Lcy47fCYj7PYyEDALqiHYTN+giWBQuKeJXDHMUAnLl7 y5MWgfKdOvP5uy1VBpmKQNhdd33hsxrueeRa6wwCXwKEHF34XYSJJ0whQiMBZcTyVwNW/wPshEPU cy+iCLoIXO8ervW2mJXPD8ZRg1vGrZ93Iyn/2Yzxvg9unOvwr65xVd1GP5ydH9u17XT8irrylyup SV8Yt/ekep5++XEH8rNHWHt7rietqCt/+Rm/TjjoN9V8ncVZgDFsVfymaIe3xKB9RfNsy6k6mqZp uiKr/5VX9slkT8vKxhysPpx/uOetia3SZ1BvPrXM8nrLyAqZBJAkZc2tq6ujabpi5NYMjbtcYVAt binadmpHHU3T9Nz+1uqjySsqpCJYtItfTf7r4f076mh67khT9dFk7pqfxz8eO1pqMTTG/XU0TdMV c/s1i/dlVTy9nNvP9ZtpXv+5xisVSSvKxhysPvzb+sOndtTRM02vr704t0IqgkhaQdNjDvape07t oGmaZtVmeOZBIqPpmX2KZzZ/PUG17cMddU+MFNgloknSipl9B3M0DYUiACLp3DEH/0dtXBfyN629 7T3/6hpX1Y3XfwBA23vv4YkKQZfp6xsz6g+f2rE6aKEt8WZvXW+SesH4xCtd2wST10jHuuRpUkpd mhnffgGUp8DWV9P3E51x41rfg493J27s+1X8qBuP/D1h600AN9aPE8rPJ27sS9jYJ+wZ2b9eFN9y EwDO/fTA2Z7E6r6Ejd/h2SnX4/vizwHAAy19Cf8d1786+e/Xvhtb1Z24H4Jxtxv76iVv1kzev6Hp xUZj3S5j26iMVdN+3HZAoaZvnTnwyXrB/E9rZWtKkz/fdeKbaYxXfP4DEPWbFO/0l4VfaCTAp7oG EUw1WLcfyrVwpbunuib4GpvWMZuyYUBGFQA8UuY9RsD8W4LET1DZ4q5GWP6PvfMPauLaF/g3onjx atUQ3/VVihdJINyWe3mVsclWkdE6Gi5EKjPQKiIWTO6tMw1Spe19ZVzGerWSSqDt9AL+oIBTyzwp SkzUVrwDApERylxqBbJKCaiZVwy10of1vZm8P3Y3uwm7S4KggOcz+wf57tnvj7MLnHzP2fOFlwOh 5SVIAN+ya2YthB1kUhpmPZyYDbh3GQ6ZDBZ+DVuPMZdrRaD+GlIzIHC0KDgzHLzOsAIftX88/KRO sRHDs3dga7qbEk0xbJMJvZ0wyqsG/F3BNk5mes61UnKzFrbWQLEZZAAggq8/hmuhkKEAICDhz9AH TIqLIwq+B+Al/ugETfBl10aa5rtNQjcdAMQw9DWUNjEr/SfVswcCd5DHh5cUbpeQdxMm46sGYDD+ 83Huu9ZXefzNyrveyPsqjx+6TH+4XMs+e3J7/pvb8zd80N336A5ZC5Sgsbp99EBjIuXKAqfT6TRp XAJqAxprgYa+RqkEelcak4Zsz4GJ1V5jstJCTrt8ehjzjNICK7+fAnJuu+4WKO0UnrZpl7j6geNy jhiYBnz9wFzDpYpDLug/KJUArr5/BO6W7Dpe0u/62AqtrXDzfIOzxuassTnPNgw2LG9thdbW5XfO 2ighfQw2AHWK1d55fjNro7XNg2fxa+77rq2IP7Np5G8y6UntRdqPiwa2VwIUeNwpxOjQ+66RkDtj sTem4thNDXNayR2k6M2cNN7tu8axtxYbdyF7jy7uXaMEdbJ9YO9lxRsFp0ujOcMO3HvNHt3FZ4h3 ZzLOkL3bd41zW6+R+665/zFmyVmaBaLwbd81PhP895fPNN9tEnh0qfDdH7BJ9ezxKvTSh0m875oP o7vJxO9D5ctudPWPu15peKTn8KhYsE6JWSurisilbmx5stvgh2eGQ1Xc5HQ6nU6rtTwZ4tIMlNDz RjN2J3C6yud4+RDqBz7bWbmwz0AAEIZ9kJtFJtaF+mEciYzUKDtqHuUdMn4GJavangtue+7V7wMv wl3DswAArcMze+3PBbexjptzAAAWDny1wP+z70lh4EWvilugXNgTRQqNTnA9lapit1pGxazdrXSN 9M5hjSAFKHYyb7oVO8HJ2dKl2aPAFGe9KXch6QnboieCOtk+sPey4o1CsAQWnzPswL3X7NFdfIaY elN8vrHlfD/zd4ULqY4pY0UebrZULDlLs0AUHA+AQHR8JvjvL59pvtsk8OiSeMyETqpnj1ehlz40 gq6YJ4onzCRYuzYWJMFb4z/NgAquNW2+IQ2PBPZMtyoxsgozeP1mC9HVoYyMl0kBgDAb8quaWXp2 pblWmRFmLUYt8zJgmNZMAABIpRAOSp4VdaPokWYls5cdEeaajuT4sTxePsZL0dFFrTnTYiItAQL9 IGx8T3JVvsGQX5W85/FWPlRG7CluyoV9XGvaHpGfG/4wsPk3AACtD6AbZt0cBgCAwTk3F9hZS9Mo lgf8X++DgK4HAPC/m5+9t/Y3o6lv6ercot5BLkQDcciK+DOn4teM2Vnz9WZlBHrVAIFAeM/ZKo73 oBGPgYmZDO0+tCp/w6raZk8J+yDPcsv7Ko+THw9ddjov15I/k/OhzR/kb1h1/GQv+QMjHzMj5oOs 7NlKpcZkdc3QaUzkj8oCKzmLqDEx04lKTYGpQAngmnZzmx0soGfeCpQaDSP3ZkKOWw9brlQWUDOn PH4Cv/9c8TJBaUyMViYw1wUs/3n6wXNy03PqzaQZKeOCf7KYSy7gP90BzJWcs6ujcaV22aZ8t8PQ 7XS2QuulhsHznw9TM56uyVBobYVrDYx8+OznNy3Q2gqtFpwSnv38TgM+XGMbvrS8tRVunnefPCUn SQEAYImCedXgsGLNEgAYKNlFulF70em8aCB/Hn0+lG9qGYFAIEZCzgJzzuciuBjfyVCRwfjPyhKo q+QuRTVv3jxO+bTCrBXVJE7MnBtiNMxarGtPU9bkyzuPiTZR24TqXw7LOeVOp3MM2tCDj0AgEBPH /fv3OeXz5s27d++eT6peSWufqmvXxhNVMdrP4PFD7b8RV9LMTPYiHiOEYV9HwWOehEYgEAjE2EDD NQCArKZpk9+ZMrDeKUCd/ySQoqcegUAgpgxouIZAIBAIBAIxqUFr1xAIxBipGRycUP2JC0e8S4tA IBBTBLR2DYFAIBAIBOIpAg3XEAgEAoFAICY1aLiGQCAQUxyR6El7gEAgJpbHOFxrNKpi9KoY/c4T jpEnLfu55ZwtVTFlX9p8sm3WikQizMB32oBhaC8Jb6F24BB522V1hfrQJH1Oi6M0Wx+aVFZ6a2QT izrb0jPObvpMT3WZunrkI2jNSdKHso6clifg2+OEvF88d4oLuyMPJ6IziehMW94RW6ppYt0DAADy WTLWcZ3je96I6ftbLhLBmDbeQyAQUwi/DZvT/9UK2zb9O+fp2bNnj5up4LDU7Visf/dlCP/zHwM8 TgbFYCOFnATFYLMa2iE26oX53tuW3biQdx424BkKjpNmrXJQe27b+NfiMWDawYyE6VbjR5aA43jq ggtfwasZCm/KV97uLu+YszFFGXq7qbY3eFtmWIj7+brCkz+pkpOXTIi33rMw4rffvt/ul+LhXuC6 FEyXIp9zpW/lvjc/z8TWPWk/fceiLhx+XRHoZesQBRlvF2BRy58Rbtv54MHDCv3Qwr8Ef7pZrFEH +NmHWmH+pnF75OUB3H8TApavl8+50ide7/ksAfA+b2LFsy3KYzPxafcLCZCXBzj+pJ1AIBCePHz4 kFM+e/bsX3/91SdV5V/ZJ0HNUK6sW/+JMlWMfud+484YvSpGr+KqDUq2UcXoVW94VziUpzqnYV+J JpG9Wyhh1mIiOoOkxTADAYQBE4moop9kdon1RZ0w0O0xLYaROTzCgIlEu5pL4ihFIlZxSlZ7qlon mfzTakkjpHmhcpaC7c0sd+hioKT/1BWsxkJxcekZM5JQcpSzVDLi/6vFUC/fsIL53NNiVFOprLIc Mt3VYgxN0qsLjeokfWihta6wLDRJry6kKr3WVdPts42l7NTXLWtONpUSU1cbmQTeLQstL8vJLlNX uy6Q/XXLgIEjwTYSKnOTU1hG6S9klZ3ltktm6cpKb1lL3f33NV6O9vz+9FSXhSZdvlZ/ms4OMhkp 3n7zmYdgJ/8m+a+KC66Mo6S2dntqJp11MzF/tBpMtBy3V7S7xEN5mUR0pq3CPlRxxBadSaQeGRLs TwCAG9Vc/Q/A87yp9kzH/bBRag2BeDqYoOzacNPxb3tAErs9LMj9xM8d7Z7ZNa6s2zN/jIr17y5v nfNWUfq7WZj0u6aKvmDX2Wun2yE2aoatv++e5K2i9HfTPIxwMNiSdzMC58oGmY9n/jaxkvnKbdbG 1ySWX60swnEcXz1ozKlf9FZGXFxG6oILTZKMBBnIEnD8pTtH775MaiMM8R8syr10rrIIx1fPbMmp X4RnKECsyMDxBRfu6PquVuI4jjPf6Q1YPOibzhXhOI5nrB7Ux5+NyNi6LXXBhZxLsZf6PllmVKRB ifXqFuJAzUy+1JwsQaC9TBKxuqioCMfxjJnHw/Qz8QQZiBUZqQsu5Fz6Xcmlq5VF+EstB/bdWJ2h EJNyzrg49bhwWI56m11beL+/qF+iWx+08HZ3uSh8r0eap6X9fb9wAyO0HPivqGOH1+pSMF1KlPT+ xQNXwta9Eqae1f1RR/AXx1559srJd2DdN4flP1R1+a0PCwEIeUaiyFy7NwXTrRd9+VYznR6z5uBd G95ON2RiuhRMcb/7o+/mpK0PWgiOUrwx8LXXPs9eq0sJ9utstMzHXo9gXH3fNKxeHzRi+4jhtvPs bBOZ3WlsWrDui8MJe1MWfVvV+MML5Fk+u4HrUrBI+zfvmO/+TqX+OHutaobopyUBC32Ol6t9BK8/ CyOidCkzLtr/w3I4QZeC6Vi5Q55+44yXj84HD/z+JPerqfxxd+WPJWeG7swMWCbzmw8A4DAY5xfh izRqsUY9f9kvPxra5sbKAACWzvOP3rxoj1qsiYWa9x1+6rlLAQD8Y9XiiP/+Ma/u4b+tWXxQs2jt DLi3+PnFAXz9Odx2/uuDonXfePa/0PMmHmzJ/Gww1buk8FQBpdYQiMnKlMiuiffU7zbXx3NNPfrA mox4RTAAgCJW4n5moB7X5/0Q/t4xqsGoqIp59s4nujoAWOMQc01HcrGKbinlvc6FNCs3sipOJhKJ RKK0fWAqzxJqTRiqInMZhVJVYmSVkfy+r0zOkoI0HECTqJKCjBpC0CvFGOgsGnd7AMKYn0Y13dfh ZlyTS0WmSowUcnI0PT6yIv7GYUUIQMim9Bs6z/FnT/8AAPMPtae681T9MddCsVc+7DzVRyVOnl+p CAFxKECSUhYCgS5FPVeadFT7xk6XopauzpXxa+iJyxDaBwDxjtcktR+SJs4YYGPhJrarkud7B7xe RSfP0slCAABkG5aOapdE8u7b6YdWiEMAQlaIQ3yPV6A9tz/8cPfbGFg8dy8efPWI9OqRxWtu2/5m AgCwmYZqLbZoKrtGbPpkqPY2lS2ztTn+RskdVk9d/rq/BO+N8g8GCI7yDwbh/pSXcsYr8LypIpTN 10cYncKg1BoC8dTwGNeuAQBndo1H/nNH+3cLol4mR2N93aafnmNl15pEoXLRjbshGz2zdz7jsBz9 eOBVPIH+vk0Yj96N4Pr67bAcJbNQdCs6CwWyhAwcx3E8NXX1rCbFBzdcK+QsR40SjwSZmxaWJrAc /QoyMhRAGPM65XiCjG4oS8A9SJABld3iam/WBn4WUUIm+/DV9y+4rPH5zyPn1eOKw+u1a4L8dL29 /OdwnYK6tQvv91/8fboFx3Qp9KEIJJudg6jXI6DnShPxHLZuyXDb+T7x+rCQFmO0SfL3fcmGTEyX EjzkWs90q/uLnyWvR3AtfVoS9noKpkvB1CuDZ31/svA2k10D6P+i6n8UnsvXgCvbRDsAAAA9V9oH /xC1/BlBu+xmNL7G+yJPe15/yKCuzPFcu8bXb7zxctL54AH7o9/SGQ//3gWaF/3n/zJcHxR87m2x Rk0fL/oDALTb1170/8+cJfs3izXqgF/ahhfEznWNtWxt934Km/+nuS6F8gAHX38KxCuA5WjewOpp tHwNpdYQiEnMlMiu+bJ2bSxIgrfGf5oBFVxr2nxDGh4JwPq+rUqMZEqOE4RZizHLzjq6CAAgzAYs rsR1gQHDtGYCAEAqhXBQuq2QI68gV6tpCQCQZiWzl88Q5pqO5PhxLNxIdHUoI+NlUtLP/Kpmby7i iGtMesZCSJAE4C7zeUW4/HKZ90upevoHnl8aFrIEABx11U21vSw9J87QbwU6elqMamrZlkWdbay7 BQAQsgRCQSJnD/hbBq5xrK7zBV67/O19idfn9iS9d3sAABylhWWhhQ4Q6DdfabdH444GO/XJdvth QvRcAICoubIWG2tpGtNAHjR36WIAeNhgcpzvH02/r/0pjPl6szJi2ozVUGoNgXiamKAiVNb8mNN1 IN/LzIeSEjbkWW550ImyHcUDALDmwO49YFS91wkAy7RvfLpFbNmvzzsvSa9MX1qhzzsPLvmY/AQA MGCi67nOYuZlA8KgTdtV0gwAoFQW5JZnkTOIhFmbFlfSDKDUmJIhbleJssDalCU1YNrrkR0lVHuN qZyZSnVd4S5n9CuVBblNWSowa0VxJQCgMTkTa0RxJcoCazmkyXY1a0xsx1wItd/Thcl2kTYLciOq 4nZBgbUp3kgJNSZnMVBXk/7zxUUYOPRkSWnTDDw+eo1FnTSQdSp+jUtwy5rz0elTvQAAzy+VyF9T H4Km0A87ASDpnd0bmvU76iXvFqnho2MHe+Wlp7Ab2ccO9gKAJGnLy7LLpw/Cym/I+bJblpyPLtN6 Vma9rVizBAAs6sIBeW8nJY/ZWEhNqAEA9FSX6UB9ZhP7YbLmJJ0+xfqc9M7uQyscpZRReempeCjU 76gHAMm7Rek7lvDYbTGSIdDIS10h+xZv/JqR7VeAkD/gqCs8s6N+wD1eVwju/ebpJ0DMxpFT2DQ1 g5fs0TWQAEO1/QAAcsXiykw6OWYfyvuHnZIH+csSF++N8gd4WIHbCvsBwD9hk3hZi70QxNW4OLjd Hv3JEEvz3IIji1eRRag4+lOw//khDFgalE+PwvZorIZATHrGtwgVqhkKYNaKahIfbciBeATqCvXn lLsPrRi95QRjzUnq2sAeOCJGYWrVDJ1Wv+houIZATHpQzdDxRlU8Hd/vnzqs0a3sPDkZtslt7NyC obHadIUw7Oso2IPGaggEYmqCsmsIBGKMTK3s2vQBDdcQiKkAyq4hEAjE0woaqyEQTyWPeyOPaUbN 4GDngwcTd/AV4UEgJgPygIAJPZ50fJMStHkHAjFFmBIbeSAQCARivEGpNQTiaQUN1xAIBGIqgMZq CMRTDBq/LtZIAAAgAElEQVSuIRAIBAKBQExqpupwzbK/TBWjV8XoVTFl+Y1suX7nCccjqa4r1Icm 6XNaHKXZ+tCkMnpHdRJrjqfkiUD65tv27oJxIRCISQ1KrSEQTzdT81UDm+XAV3CoJv3N7Vjqdrqu KAAABMVgIwuS+sjt7vKOORtTlKG3m2p7g7dlsmspBq5LYZcm9KiZOO7wrbYOWL5ePsezzuNoCMWF QCAmNegNAwRiqjElXjXwrBn65Rt6VUzZlyeMO8mU2BvGL23UKct+vSpGv/OEw0KedZUBtVnz3yDz Z/qd+y2u4oKW/XpV6uWbROcOShVtpNFINWZn12wW0mJ+o6tBmcu0AJJQspoNq4IkmZ3iyEvZHXk4 EZ1JRGfa8nBbqok23W5PzaTlJuamNZhoOW5nFVUcysskojNtFfahiiO26Ewi9Qhdk+eWNSebNK1X VxvV2cyOsjeqyyh5IavsqY9xIRCISQ5KrSEQTz0TlF0bbjr+bQ9IYreHkQW0X9iIzWr4pn6G/L28 5P9n726DmjzTPYBfsW5m8KCBGHYzNQ2uGIyrbrF1uvFhiYx2x0YhsHQPnO1JLfKWGZlzEF+YZd0O T8bjwT3GNjK4XVFoRmAdnClFmyXVFu2AQMq4yBTdIokvjamb2dKkKBYPX8758CQhvFmQAAn+f5MP 8OTO/TwMX/5z3feda9duRpMiulHYNJASKyGSKBlNrKv8j9fuidYX65J3JfKof+kSAdWVt287ytXP mO3LB0+UW+OVEuLGb1nQ/oX0Lw3pmp2MJsXbolsaq9nJJPJ7r9Cq4QKbQLJ9y4L2+u8jXo2Lf8HV Xv/9+tLMvHVPfPbIh44yh6hgqyTyfu9p3qoSxVLu+k8VTEGGfNHnN4nxFdh6Hj8eqta7IlOXHc+L ylOHPWdz/W2xME1GRC6DSVDGRuWphXlqwYpH3xg6wxNlRETRi/kb3ojarxbmJVLDH1zPqcOjiYj4 iWrh6n9+o7s09OPN4sN5UVsWUL94jTjMWsTefG1vpiGHKchgFA97j15ftGOrJJIGOy98cpj3q0/f SS7JiLp2tvXuWv+y3xT+LgAIciitAYSgwFbXZq+rQV2WkdjMDO/CpaPWeGZ55v54IiJqNeXfZUa0 abdb8jVXbo+YwK9hvN2Sz9LxKgWN4ag1lpJ6dMd3uzVfc+42iTJrhh/g6bhO7jlPe32dpBvcbqIu p6Z8oIeIiC9XCP87J1xKZG+0p9WP/EcpxFdzwonI3uj8fb13PPG1p8QJ3iEtp+x3k6Rvin2fSY20 mtSOpPNp4z5JW8w7ngaXl44Zb/0mM3ecVuJPbtENAMEOpTWA0BTYrgazt3ftxrkuSoxbK/D8+qC7 63qEd9vZvd7G714YsedMMPj3lqg/cfUzzytW4nu339H4GW1PkdAYD7q7RlTXiIjIcb39dBOtWEm8 GGm8dFo72wY7L4yqrhGJw9PUwjy18LVXwhb2fl3hFKbJSPBosFki/XivME/tfb3EJyLqcm5p4h8o WnboDWGeOuxR52BEIlddIyKyd/Z/Fyt4Mdx3O3mYq/fMA9FvV4996MHOC8N71+583uX+WdzLS4iW xRZkMCNeqKIBhDKU1gBCU0juXSMior7maovDs2/M1dokSoh/wgyyhJie/NpJ7sh6EketMbeSSmoy j1fFU2XVdM+NjuHSsM4WJxGRVEzLiS97noiI4sJlHXa/rWke9vtDckl4tJiIhloaXRccoweM9soq ee157245150Ok3qKB0IBIHShtAYARDRjLd6tR5TnLvkvX3KLodnx9spzl2xEK+UlbJJC6hs5bHPp Ps8KKbksh87rLvQREa0UrYiJLz4gkxDVZemNNr8PbE0xH5CNnYdbPJXUGnNP9HmmJZOquIeIVmiz Rq+W/rDxFxlvuN0uzakhmWPgIwcRkVwh5hZDiYicA7o/Oz3XJXxZqrgkjk80VM3ajzmIiJ+cJlzR 4TxGwnpWKO1ybigf8Js9/N1T4gSuxfXXlqKjVz74iohoTfQvd+9VbF7mOrmn6vBXRCQ/+UESHdPn NhOR6HdlvlVaAAh5yGoAoSywi6Fztndtfmhwu2d0/tTIyBmdHwCCF+IaQCgLbFybpa/JrcvSG219 Ro3f924AAMBEkNUAwM8sxbWMqn3m5n3m5n3m8Y5zAgAAAMBEQrUJFQDAvIXSGgCMFJpNqGZdg9vd 8/jx2Feg5k+NjJSHhY19BWp+AAgl+PIOgNAXEl/kAQAATwWlNQAYA3ENACBoIKsBwHgQ1wAAAACC WqjGNcsho0qpVyn1KqXxSKv/df10+xZcOqaPeV1f1OE6uUcf87rR21FgTnDPMLU2BsH0/AAwBSit AcAEQvOogd1S+iH9T0Pmrp2MZqe38SgREUmUzKiGoVN3v/d096KUjI0x99s++kr6Vk7sTymApwrG NdGpgrCXt8oXfT7cG3RSxnl+AAgBOGEAMI+ExFGD0T1D67L0KqWxrtaUz5XEskx1nuahZDmkVyn1 +bUuC/dulvdTduuRLK5+ps8/ZPE117Qc0qs0V27benI9U3lv0mryDPavrtkt3B2PtPoGGH23fgJR DNfNKVo0nHWcLh1r25Bj25Bj17F2TaP3Fl1OTY73euPwP6el0Xuddfo1Dx3Q5dg25NirnQPVp+wb cmyaU97eU19bi/boY17Xx7yuV9eb1Hssd7yfuVVv9Fw/NskuquM9PwAEMZTWAGBiM1RdG2x7/9od EiXujJUQEdHaFOZHLZ82L5AX69J37WY0KaIbhU0DKbESIomS0cS6yv947Z5ofbEueVcij/qXLhFQ XXn7tqNc/YzZvnzwRLk1XikhbvyWBe1fSP/SkK7ZyWhSJJ57SmM1O5lEfu8VWjVcYBNItm9Z0F7/ fcSrcfEvuNrrv19fmpm37onPHvnQUeYQFWyVRN7vPc1bVaJYStTz+PFQtd4VmbrseF5UnjrsOZvr b4uFaTIichlMgjI2Kk8tzFMLVjz6xtAZnigjIopezN/wRtR+tTAvkRr+4HpOHR5NRMRPVAtX//Mb 3aWhH28WH86L2rKA+sVrxGHWIvbma3szDTlMQQajeNh79PqiHVslkTTYeeGTw7xfffpOcklG1LWz rXfXxr28ZKrPDwDBDqU1gPklsNW1OesZ6qg1nlme6enm3mrKv8uMaLtut+RrrtweMYFfw3i7JZ+l 4+M1SHDUGktJPbqDu92arzl3m0SZNU/ZtLTB7SbqcmrKB3qIiPhyhZBr5W5vtKfVj/yHKMRXc8KJ yN7o/H29dzzxtafECd4hLafsd5Okb4p9n0mNtJrUjqTzaWNv7Tq5py3mnaTNRER06Zjx1m8yc5dN 1HJe9jR/HADMNZTWAOadwPYMnb29azfOdVFi3FqB59cH3V3XI7zbzu71Nn73wog9Z4LBv7dE/Ymr n3lesRLfu/2Oxs9oe4qExnjQ3TWiukZERI7r7aebaMVK4sVI46VPs7Ot5/FjInF4mlqYpxa+9krY wt6vK5zCNBkJHg02S6Qf7xXmqb2vl/hERF3OLU38A0XLDr0hzFOHPeocjEjkqmtERPbO/u9iBS+G ++aXh7l6zzwQ/Xb12Icb7LwwvHftzudd7p/FvbyEaFlsQQYz4oUqGkBoQlYDmI9Ccu8aERH1NVdb HJ59Y67WJlFC/BNmkCXE9OTXTnKn1pM4ao25lVRSk3m8Kp4qq5763KhLwzpbnEREUjEtJ77seSIi iguXddj9tqZ52O8PySXh0WIiGmppdF1wjB4w2iur5LXnvac4XXc6TOopHggFAACAeWqGFkOtR5Tn LvkvX3KLodnx9spzl2xEK+UlbJJC6hs5bHPpPs8KKbksh87rLvQREa0UrYiJLz4gkxDVZemNNr8P bE0xH5CNnYdbPJXUGnNP9HmmJZOquIeIVmizRq+W/pAGt9ulOTUkcwx85CAikivE3GIoEZFzQPdn p+e6hC9LFZfE8YmGqln7MQcR8ZPThCs6nMdIWM8KpV3ODeUDfjOHv3tKnECpkZFEX1uKjl754Csi ojXRv9y9V7F5mevknqrDXxGR/OQHSXRMn9tMRKLflWXmLpvS8wNAkEJpDWCeCuxi6JztXQstDW73 jM6fGhk5o/MDQJBCXAOYpwIb12bpa3LrsvRGW59R4/e9GwAAzzhkNQCYnFmKaxlV+8zN+8zN+8zj HecEAAAAgImEahMqAIDQhtIaAEza7O1dAwAAD2Q1gPkuJPeuAQAAAMDTQVwDAJhdKK0BwBQhrgEA AAAEtWc8rpm1PB6PMcza/WwGhsfjac1PeiDGYJvw7UneY7pTAMCMQWkNAKZu9nqGBiXZrYu6C/Qa mz2trxcxMFp3dvJk2qsLFdmaiIttoglHy5LZbMXUOi6MvcfzHRurFrKTeiAAmGU6HbHsXD8EAMy4 0O0Zaj2SpVcp9aosk6XWpFLqufadlkN67mdLrSmfe9c7Sd0ho0qpVyn1+VkW7qKj1qhS6o+0kv8H iaguS69SGuu4GZR6VZapzj7ph123yvsTV2zTarkSmFnL8Hg8xlsLMxu0DI/H4/F4jNbgrY/ZDAyP V9hesY3n4Vc5s5m9H+AxBq1/yeumwTfT8HCz1jt2uDTGVeM8TzRqPHmnZ7Rmg9b/g6r973YfRIEN IPigtAYAT2WGqmuDbe9fu0OixJ2xEu+luqyPBNn/VlqyRbNe1Pr+Jw/+1dO4U6JkNLGu8j9euyda X6xL3pXIo/6lSwRUl1VHBZmluxnNTmb7+sEzhdboFInk53GJ/N7rEXHxUs8HG797YfvPw9amMD9q +bR5gbxYl75rN6NJEd0obBpIGb77RNwduturfQUtWbIm4mLR5cTL98pXmBQ7qMJ69d9tpQ0Ls5Nl RDLR6k1lZWUsy2YvfD9Wz5WvhIpslo24+I+Ce1drWJZlh2taZm1SQ+rpqzVlLMuym9ymouao/8xW CMllqcwsXFBhvVpTxv6io/TgrU2eu8uSWZbVRFz8kH7tK7Bx1biiyz+puDx6vIF5K+rtyx/XlLGb Vv/1vzIf7LW27V7pubfQ3ZHznlsz3TodAAQSshrAsySw1bUZimth8TsZjV9WI7vlvc9ERf8hIyIS hK0VeWKW5917ve0rXz2eL1kiIBIsXSIgslveu7eqKHmpZ4Bg6XPXP+1eHrdWQA+6u7i4xn3QN8+N c73RBUmMpydpWMRA218feodNbPTio8tSeXXNyf0Koduk+5fUmrdkvFuVnrVL2+niHRvVOTqdTneb Tz/ZNJzMLJWmMcubZn2p+MThbZ7fhMP3cVkq/7egofAXRESyhR2V38b7P4DLUukf1zzj08aMtxn2 fLjmJDe/UKh4/h8j55Hdupjz5VqshwIEEyyDAjxLQiKujdHvaPyMtqd485tfzBrnV278F4u2K5f6 LjhauvpffHJc66LEuLUCz/gRwybPZan8kLKzFWQz6XrkbLLMZeHimlm79L3VFZc/riljWXbTwxH7 z8aLazZT5berxytveSf0jfrhuDbOeN9z0vjzWCp1fZsQ1wCCBkprAM+Y0Ny7JlUoqcezn8zuqqvs +YEJpArlrdbh/Wd2a8stuS973b3rIiJHqyW/2H+evuZqi8PzEVdrkyghfvp/iJftZvfGdUmylURk MxuOnG0f+Xb3TRsRkc2gZXhaGxGRKnVd4Q7v/jGbzaxlnnQgdMpW7k6ns57pbTbDwYqRb5u/bN+4 GlkNAABgXpihuPbt2EsZVfF2Vq9S6lVsW/QWufey9YhSryruuX2iijtVwB0jIKKMKjVVe48asN8m VCm40pwkIX55U5VKqc+t7HtTK799ooo7bUAkUiYuPcPdIqstmk2a+mlPs1ZW2N5e6AlWFdu4zfsV 23ha6+7T6d0yGY/H4+1ooNT0jd43iYiS3l53Vsbj8Xiys/S29QS3g0x1wpr+5Q7uhIBsx8HVb1tP qMhmYGSF7RXbeFozkVnL21bRXihjDDbfQQNZYXt7ocx3aGHi8bS77W3P9DuOrErPG/F32G52b0xP WkkAEBRQWgOA6ZmbnqGWWmM1qbmjBoFSl2UkNjNjqquf84LZwByk076jBmYtryH1/06o5vahAMAL cQ3g2RPCPUPruC/yUOqr78qLA5zV9EZbn1GjV2VZfnj0fOH9OhDewS/TT/uOhdoMB7vf3Y+sBhAk kNUAYNrmproGAPBMQFYDeFaFcHUNAAAAAKYKcQ0AYGagtAYAAYK4BgAAABDUENcAAGYASmsAEDiI awAAAABBDXENACDQUFoDgIBCXAMAAAAIaohrAAABhdIaAAQa4hoAQOAgqwHADEBcAwAAAAhqiGsA AAGC0hoAzAzENQAAAICghrgGABAIKK0BwIxBXAMAAAAIaohrAADThtIaAMwkxDUAgOlBVgOAGYa4 BgAAABDUENcAAKYBpTUAmHmIawAAAABBDXENAOBpobQGALMCcQ0AAAAgqCGuAQA8FZTWAGC2IK4B AEwdshoAzCLENQAAAICghrgGADBFKK0BwOxCXAMAAAAIaohrAABTgdIaAMw6xDUAAACAoIa4BgAw aSitAcBcQFwDAJgcZDUAmCOIawAAAABBDXENAGASUFoDgLmDuAYAAAAQ1HgG02c1FXSp5qVx3168 ePEsP1BwanC7Z3T+1MjIGZ0fAKYFpTUAmKKHDx+Oe33x4sX9/f1TmurVHV3/z975hzV1Znn8CyEQ KL+CuDKGJqQUCKWyoXVoiCwoiqAPBhfUUJxWaSOW6bZhoGrr2pE+7VRtkYJ2tlWslVat4w9KgUdx qvhAQSHTKsV1DEI3BMHFHSYQfyCYovvHTUKA3IQgFKzv58k/ee97zzn35Nzkzbnn3EuyawQCgUAg EAhTGrJcIxAIBIuQ1BqBQJhsyHKNQCAQ6CFrNQKBMAWwbbmWLxbnt4wc1lXztUUJfaOR0LbuZhFf W8TXFvFvVp+2SfmjiLZ4RVFyaLViwhW1FYSWFqsnXM2omWr2EAgEAoEwiTDiU1c3/oBVSb8xu9nJ yWnwzYm1Ed1rK1YFjBTCy2TcOHifl+pgRZuqr+oLu3iF23OZLGGmE++JBzDcHI0Jvf2pTI9xlgoA yr5RLUbHjMDZ2ew4K3g5n3nmuvtyHmdC9cNDlBEU7DlssDFrU39czET406p8s/aMF/nitd0vLxkZ xwTCcEhqjUAgjJW7d++aHXdycurv77dJ1Bdfd9rQGZovtrv89v1diwzvVbrq13pVlwDY8/ew8NFA VDlr6DjYy5yiP2RRv8dt67RnjpqIDnFaRc3HQNu63jNH71GDfOg8d7rxvr1ZsuUef49H1Hz9juy3 XCXpDGp+47reC0fvAWAvs8dlpqScBVVfaUy/afcmte/w+SFOwnIWF7pqfq8qhMmHTnWJOW8PGmS6 7hDmvHIXLo2nSrq7gav9e97pq2sGwBAFoD3GNScVADprez/dqGsHAIZorbMslbISDQd7S3bp2gEE MJPSXBbPoYZ1e6J768BI2u+E/f3FFQO+8S45by1nswF1W8G6M9VKAOBl8lHhmX04lANt8YofEd9z IL8bAE8yL+89OiP1dFRVb39NpQYAdlRmtPwlDwAde0tfz+8G+Bsao7CpaFspIAjbcTiUAyiot2Cv LJMk8QxC9PMH/bmhMSrcsmJ1Y8G6C9VKAGxepjDvJS7QmBV6QS0IWxnYeqCUsj8s+71QjkX5Zu2h ka8tXlFyQMmOkqC6dFT+ackXB/zhnMlA+nGTkCYQhkGWawQCYayMb2fo6LNrJz6XPbZ0vzEnoat+ Qee30y06hyXMdLD75M6FLoYw1QFA4/v9Qfuo/BkrKOC+4n0db6EDAI+FLGEi2r53kCpchZksoSEV 17budmu8S2KBszCTJYy4r879mbXKibfAie+iu+7lxHsCHgtZwln3mrodgp61B6DdffvHaaz4L12e y2T5MAYa6uyEqQ5gOwRlsuxP3QtWuEVnsoSZLGPqrjHhNja7xeWwhJmsoIj7P76g80x1CkpEW+7P Pn9xF83UVaxHRKUbv7WvlUGb8FP29Q0cz+53S3ss+4/OkjSG/aV+pSdr7iwA/YcOOGZ95ixJY0nS HGfe6DtUw3xmFgD4eNoL5M6paSyJBFUv9NunMX0AgPFMGovbeafo63seS51f+aPzbHvc4j413bmt IL014sPErLeE0gzh0zfUh/7GWrR8hjv6Lx+pO2AfseNItCzDS/lpw7Vwy2mnxs/3BG0+8pw0QyjN CHr8huLzSp4oDO5hQZFObSd6WJHLeZzWthM9v9lwODwYAMCJEUoz+MwzaiwclOweFiTNsK/vCN57 JFqaIZRmWE3vNWalQ3Y4TpYhlGYEPX3jx5xKz7gwXlyGff27rXaLorN3PyfLEMb5X8/J7Y+L8bAg 36w9NPI9gpfzmWcaLk6LeHd0/vESvZyT4/nX/5Vf/X5/Tk5OTg5JshFoIWs1AoHwAIxvdm3UtWst TReBwZ+207oeiROXT71hcH/P1N83TNXXelRXoq9O0xbF9KqO3muzJFfXepkZNV+fkAKfGaVyC+Vb 2sEjneVZ2kupqPoI83ayLM1W9bUGswYF8pl+wTq1CgAQwgzlw8MfWMbk8uFh7WebsTjNXrHxlixa K4u+UwKXV6jU2kFdXQU1qJVFazdt1NWpddQOnd/1f6of728fIS1ps6tsDsMH8JnD8AFQ1aqOjwo3 JJM40VHHDocaVjD8De9xOQDAjQg0CKiqTg4tGvLa1AagY29rdWmJcfD111TV/6P3P+clyY5Xe7aF Fr1e4bfjsLVUGR30enmvhg4uuaL9eBXqDuqNwG/ZSx76TTxe5JXWMZTiWZIPfspI/xAIBAKB8Oth 1Nk1Td1nO7v+PWeJF/VWpTOmuwCg5+emEwhKdQD7/vVT9olU/kz/MikmM04b5J764H3PVIeRa67+ H+5S2bUR6hi8VJYwkyVMZPowByryB4yJuusHdaxhtWs9Pzf9zT5oIcM4oP32bt9vnWbAYIlK92ML Q7iQMUTdCJR9fQCXOTeNJUljhS9g2Dfe/uYqa+4suN74+fyTbnl5LEma4fVvDACo7c38mvHijsfS 5SxJGqO3dsBNQmXXAKCz5u7NUMeAQUsFztfVJ7s948LM+OHykcHatY7KphvPBgV7An48aYZwyCvG A4D7jev1QYl7dw8fp45duaeh1o7NA3jhPI7nMC3DslkArp+sZA2vLaPRe/NC09+9gkR+g36uP9L3 1PIZ7rh+8gjEy2e4mzkcc/Jp7KGXT+MfS9R9Vu5NatcIliGpNQKB8GBMUnbtyaBZQLPx7XymZ2l/ G5WmwkDbf+kMdUhMv2Bd6W7dqG1g+gX3V+0eoN5oVbrqBK2xY7TnpwEA2tN9pbJBgY0JN6tPDwAA nwF/sIMZJtIGelQAoN3dW8rv1QLgs/wu9zWqDNtVutbLTJ7F7B0d/Tmy3oarAODzOGaC4UtlwuYw fStvHa8dPrtTfc/X38HncQADDQf7Fc3DJwwn2o+XX2XohdR2VFVnja0hNNqPV1FaXDVyg7Z4Rckh zNtxWJL3Kg4tGV3f5ZWeDmrfTaXJmyxdaee85Kf+c6Mh3YWOqlZ1vOH6prL16F6tfpNaXRPoN5jY Gxf5Y+BiUwsAtOSvFdutNdPrTCAQCATCVGL8Wg1kvSp994Bp64A9O5gV/SHTA2hM0F64ZCJ6mcuq D5kATFsBEGIf9geXUOraqFF+CHOeBGe26Khug8aE3p7gAZV+PnPeThfDNVloT/dWyXTdw8dpWg0o G+J1RTId+y3XaPSWbLm3SmW+D7Kku7s/Z8uA70+6umYA8I13eeUtQ7bsqm7PO7368QCGb5qzbA4D GDguu1VM9SWsdZpZ2VsM1nt7nHxqe2UbTRezzP+ochFSD6EaLKUHTxCW8mFoOI8qpceQFoGRNfjD MG1ZELB5r0bLo0Erp7U6+TXVkN0l847pq/W1ik1V2wwl/Nn6C44W9I5sBQDQmLUCKa/2HHpNpR4u x5z8Knp7aFsNbPQPWk6sfXHx7nMAItKPf7Fr0ZOWj4vw6EFSawQC4YEZ31YDW54ZemKtXcnSR7OP jjwzdMw0Zq1A9mAdHoEw1SFrNQKBMB5M3jNDF+366OK75m6TSyCYpzEr9IJaeeH10KKsvZNtC4FA IBAIDyu23CYXEL38ssjrF7FrijFZt8l92JkRZ+hIiAubbFsIhFFAUmsEAmGcmKRWAwKBQCAQCATC ZGBL7RqBQCD8ijGk1kitKoFAeHAmr3aNQCAQCAQCgfCLQ5ZrBAKBQKrWCATClIYs1wgEwiMPWasR CISpzQQs1yoLcv2Tc9crNIVZuf7J+wo7AEBVvM8/Odf4khQ0q6zJAQA0r88y7JVVXmk6bpA8qVDH aGrYrx/q8/V/IP8/in4bRFHun5wrKX4QEeMV/1PkPPolGI+4nWge7fOCQCBYwrYbeYyOa1e+uOiS KI3wv3a2TM1dJQvkA+xg4azOs44pb5RnieVSsehamfyvjz0vmmZZkqq4bL9dSl3efLlULI8LNHl4 1LRYqfBZd/o9fyGcn40TuNRf9Rpim1XqJAV3rB77BDA+evkisVwqcKlvgnjMH8HY/DZeTJb/DXAC 5XzNVzcCnw8es4jxiv8pch6NDds+RwtxOyK1Nlk37pnc84JAIIwv43sjjwnoDFUV71twwLvwWAIK cteoI0/liaivnsqC3IqINz7QPzBSU5hViuzVazhQKcrl25SXAMA7eaXkgyTqzm7N65O/OWYiNmTl G6VJejlrqgF4v7lj9RqOUdrerWrv5Cgcq+4CEBKVWCrXP8ObRj7QUbd+e80xNQDvZB6Ukasp+eao kyTXXBrUqLctZOUbpUmawqyziOzaemC43sri8vwDyksAeII3UxLWhBud02UiWVB4LCHGskM7mtdv /+aYmnKCADXeBZRLTewPWTmnNCnAgh/o9VLH4v3mjjk4Wru1umvwEMzINzL48VnHvP22+c2CnTTz zeVnaWkAACAASURBVOsFvf8txqEV/1iLn6HyeYLCFOS3J+jnW/KzGWyN/3GTY/5zpPWPGX8qyv23 KUOiBKhWXopKLETtGsvzxxLP9PGgP0AzcTtiuVbS3Q10at75VFPWDsBxiS+aw7n7FwNAW0Pnxo9v KQHAcUmSz+bFjtQ+3x3v3FV8SwnA11W+1OcFITV86x1ZZxkc5e95oVxTUHdXIPLZL/sdm23zeUEg EB42xrczdAKya+yb7TvaveVxvuxrV76wC9ps+Purqj/b8rg4Vv9F6axVnlJ4iGM5dVuOCvdS+TOp 8Mmbp7fUB8YGA5gWKxVLmFd+CP19XY5YLhUbUxHm/iVT/0prz3rGfpW3ZLN0+oXDta1PU1vp5GsK c2qnpaQUZc2XS7kMZW2dh5g+2+ErYl65vXj1m/oJ02Kl0zvqp7+d6cvGnfMnv91qF3tquF7w3b1F svmbpWJ5nN1fXj/HkOqzjHKp/enOsLq8JXKpWC61+je6eX1OU3z26nyZWC4Vi25e2f7fLi/G+bJR J8nB23krNkvFcqlQdPPcqnrv54O96PxAr3darFQ8q/PUhhP/nLFIsjNr/iJ7ux6OM418Y07gzvmT o8yu0dlvm9/o7aSbb14vn9YPluLQnF6b4gdQlK86F1SQt2SzVCx/2u6TwtouLjXfsp/NYGP8j5cc us+RNn7M+HNBoIR5ZftF7ld7F8ysP7QBsafyBK2HmxhxgXzz/qe1x8J5RBMPFGbi1lzVmrKv7+6X uRr2Us6f06enS5wZLZof3LySAgBo8ss9duRMT5d4pUs8nrj9j/zzrnMDAIDn5jg7dfo6iVf6XJRs 0jAkrjwAcJwr8Qr+v3+8U3n3X2J8tqZPn28PrU+Ij7PN5wWBQHjYmPq3yQ1P+ClPxAf4Sat/svbX UFWsPFa911jTtmCb8tjV5rEqFmTKA/gAEBBveMI3vXyvNSneZduoTaX5SCywmBrhJwmU5zRAnSQ5 V1KsQUeTMtL4MyAoHKEXgKr+rFyvt1Y51kOCokkZmRBjSAbwDb5VFSsFKaLBn6jwIEHNFUM5oBk/ WMP7zezVH4R78QF+uJc1+eNgP2Wn7X4bbiftfEt6zWAtDkfqtS1+Ks91LVkWoDeAE5AR6W3UOz5+ Bsb0uY9ajhV/mokfOn+GRIr48PIHkiMC+JhGfUFY9L9txzU+5x0cX1jqePLjttmyltmyzl3weZ9K rR2/VVZHDbbMlrUkfXyr7Notaoe285qN+nHNiK8wR/kr3M1CRy7AFTpyMZbzgkAgPNpMRO0aDUOz a5pTh69OixPOt2s/7beayp/pXybFKD2XGyogNJe0GPkv+c75k4M1H6r6hu6nhM+6g32TXj4n8Hmp WC4VSyK5zL8fKrhmMTuCOxcOtz/J7qrwmyOoaW9ltNn7RsRyaPVCUT77uPf7767Il4nlUu6tIfUo 7V/Vu4y25qbjylc3zKRbei43fO8ujB28pqP59uSd3+r/nZuzx6LeodMsy9d7Y7TZNRr7x+Q3M3bS zqfVa94PluLErF7YFj/DJBgD25qf6Rht/Ftj1HIs+dOMOjp/Gg/c8G2gV/cMrf9tjGeL8TPyeGka QpV9fYCPa5LEK13iFR/u7HClY3enV1IAPG7fqfblVmR7pUsMr2ccAaChc/5px/9cz/lTqle6xPn2 +Tuec12Na62289qeQI9/dTXKFzhrbDwvCATCw8fUz66NApXibBlvzhoOEB4kqNlXqJgwTbTy6yRZ 5ZUdAMDnwB/eAl/LggLieV2fnOta8lxAPE9ZVuMdH25ptqq9K4QXyOcA0FQWny1TD92s/qcKADSF Bfv8CzRW7D9Qauhl06gU5ZLk8koq23eozpiGUSlMs330jFrvGOWP2n46rPht9PMt6x3pB5vj0Lb4 iYnwLjtq6IbuaP6kRl93NW5+nmhs/Bxt9ufYvgdGfI42xY/Fm3dofpfT+V0nAHB94AfHgJkAAKFr gKLty4bhs9uu3RX4uvJ8ANz97rjmZLs1y231J0VHuX9yrn/BmK8/EAiEh5df6iFUw0qDQ6ISC+SG a0OmJbc8b0GK5INwL0N1/yDJG974IBxUtfIQ0VGJP8mnFWbt3aoGVXGMYTXUdPILugRqpX7c1B4L h1AjOJUn4neU+2/3PqWvC6bTa9zknbxyTkDNN1th7LrQVBaUrjGUTlvVa1KKjhBeZGa2SH8NhbbV gMYPZvUO96dJ64PZEnjz/rd4yduM/bb7jdZOej/T+Y3O/2bjhFav7fHz/+ydf1BTV9rHH2TNDAwV CWGbKTQ00sRLsTWtbiZeU8YRGWwHrg5xvLTaln0LdLd/9Dpo1bfv7hCmu4oOUuLa0W4chlYdWkez Chlbp8C8Q/kRMlvK+3a7DaCbSrFvpsWLVVwcZnb2/ePmF8m9N7kYIODzmfzBnJw85znPOVdPnpxz vjOPGlQecXlPz0g6ajCL+R8rO7zxFJs/YfGEXq6y6cC+rX31lV2Kg8cpONZUd4OwXizezBN/kDyf heYDT3/3/WOP0HLt0sQEu/v0tGZssm0MAIAwKA9VpKi4Nz2Ttac83vIsmWa7skYnA5g+Yx61cOcS SuWrnB4LyG1muWrQs/7EZJDllPdOK5/nRKikPRdBoxbxiUMQJC6I7VED1AxFEOThQzS1hpqhCII8 OKgZiiAIgiAI8hCByzUEQR4yUHIKQZDFBi7XEARBEARB4hrcu4YgyMPEHKTWcK8bgiDh4N41BEGQ WYE/gyIIsjjB5RqCIAiCIEhcg8s1BEEeDjC1hiDIoiXycm1kv0/Ij3vtd858t9r3VnUUt3LHJ057 jqmesi20G3NMp4UbqWbfXepzxuKLJ2utrs+J5lp5RBoj++dhvs2exT7ui91/BEGiJ7JmaHohTTI0 kdz/vfHdNz+sIIP0DcFtazubUOZoKGBokimKKJ7joCxT0WplzieZWkbNttzRimqGLiCxiZvawI1j dFqfD8JcxXPu5k/SuiIiOVRfct5YqOdiHtpNL6QffLLFxs+EBEdJY4idWI276/79B3MuAkQSv1jr ws5bBEHEia1maLQnQ1lrdSvsDda0GdlvunwxqKpXUUeAEBGqGWI10uDaVRw8vhEu9NR1jeflb2tl NADQabM3nvOK/BwsK67Ug0+RRmHKh4s+sZpWn35LiChQ41ix1/9wUSCnPeeIKy+fgC7XN/nbrNBT GdSuIMGiOrsI6FZYQsWRQsSjePwUjptgHERFjcLHUZCYxTMc0XgG7IDCtIs6WioXjQOvn6Lwjwtr re4F43jdudB+CdiXNA8F2wXhfvHGIcpxN2WDy1g+u+dRQrsbhkTGsZNHC0ts/vDGTbqfQv2FVab6 VYGABIuY8Y+7FPuXJiYAPGztKbaN06HKghG96uyLAACjg553Tky6AABkJaXKmhdl3Ge+uOL5wDbp AoCsFGa78hUdVzxZW+FpAxnzBznYWYtjmjAoz1bsTkuTPG8RBFloYnsyNHJ2jftjauBqSFYmvZAm qeXDXz7zpsNMMjQpnkpJy9Ux9LIOz7OOhhKGJhl61l8H0wtp8mlP+4FPbz36AvWn6oIXliXczkxK A1CvUBgqCmpokilK+OStvkRaq/Z+++zpXVnY0lBSQ2d8db7nuzW6dSsAnPbX+lZbGkpqaJJZk3DS 2jOu4rrgoMzw+4adNTTJ0DrD3b7X+hUvbVlLLR8+9rWqpWnLY/0fH4DC9gbiu/NDiWJfakf2m4e2 7i1vrCAZmjTcHT72t+RXi7LSeO3nyoX8FI6bUBx47fu/m4ePoyAxiicfmVrheDoOX9A1cflaWvfk 3Y7D/drCXLH5w+enCELjMjVw9fO6hML2kH4J2pc0DwXbVQv2iz8Owu2yVnNPelnZh9UFDK1KdPU4 UsUeSeF4SmlXv/ZV4eeCL5srPH8E4ibdT37kT8G//81rR2jcJdl33b8/faaeTdue+X5VRhWVlHiN /fIReakGANhGe+pxc0YVJa+iUlfd+6lxIGWTBgAg+xHZ+pcz3qbkVZvg0u/YRColGwBAtomS5/74 U23n9C83K+uqMgqWwc/KPGWS5HmLIMhCE9vs2mI9aqA4uLf8qF6uBlDr5dy/vO7+Xsa7wa5nppgz sccr/6zZmu0t6uwbL9nh0+TO1PzWqOD+dNtcRJkhsBTQrya6h90AAJBnNKhBngNg2qBRQ3qE77DO IZex2KcpDmp98fUGg1rUPq+fUuMgal8aMYmnCLzxdNtcF7ua/BsltxxxXfx+ZLZ+8iEwLly/rHzx F7Uf9TwUa5evUxHiEN6uvLJM0XaE+0hrI2yzCKfWRJDersTnAkBonksaR0nzJNIJA55xlz4PZa9s l109Mbq+4tr6Cs8HoDzEpdauTLY5uMJr6yuulZ6YbPvBq/g+OsC+4y1nw0zLmN+oanQyFYBKJ1PB bOYtgiBLi9ln1wAAbn87+Bnoot6iNNbSnxyTvTLu/sGJp2Y647Svv6I49O7OxgqSoVWTgf0cUwNX A3s7/B8MseDvyO1vB/+6Qhe0P4/9/OrUr4qywFfB3d977XGyMHOGWR5uDrfcCU5rBRritZ8m4CcA iMQtPA7C9jmizq7FKJ5C3BaI53N3xzqeKOfytd5XoON8cRD0UwCBcRHql7h9CfNQsF3+fqWJxYGv XQDI1L5EkwxNUkbV8r9/bPkhQsI7Ju0KjWNQ7ipkvs0izpL9DKG2FsxmfjtC/kiy7927pkwppeRV lHyrPukXwzf/7JGXaiD13lRXluqzvfIqyvd6TgYAMOgp6JD91/7MP74sr6KS7g1MrdyU4l9rjQ78 fFubujbFb59IYiXOWwRBFp5FnV27ccsNAMBaLc05FtZfzB1anHnmVBrusfG8bK06EwDYTltv240I 9TdvULRdGPGmnW6OnOz27o9RlxKujx3+dJTbOeQyzup3W/1q4lyr70wc63baKZO9c9b2BeIWTqz8 j1U8JaNfTXQ3W4VmQlgcpPopNC5CSLUvWF+83fDxFY8DDw6q2t55EwBAnQk5oCCyovhQDNqNDRHi /AB+zkitRf0cSY8Du9vs+cIDAKBSwhMg0zwGAAC6FI1z9MxgaO3RH6aJrJRsJQBMf3GFvToWybzE eYsgyJIj8lGD0CMFpgP7juoBwEGZur/hKReB7bS0Vvq2GFsY329n3C7mbGO76M9DXpz2nCPBP5UE bxluquP2We/aqOm+XAfG9gZtu7eQsF4shpl7n0O2xlcecXlPSwgcNeD6uLWvvrJLcfA4Bcea6m6I HpgI2IG8bOOevQbvbxmCRw34/eSPm2AcBI4ahNYHyN92XWxXcuziKTyI/PEM3lKdrSDKqKN6bpc3 7/zh9VN0IvGMi0j8BexLm4chR0xmzgeh54I3DoLtOijLOHHD5a0/4/kS4oHbFRnHA1DJM9/SJcdZ qp9hBC3Xwu2IPnfR2QcAgEsTE+zu09Oascm2MQAAwqA8VJGi4t70TNae8njLs2Sa7coanQxg+ox5 1MKdSyiVr3J6LCC3meWqQc/6E5NBllPeO618nhOhkjZvBTxFEGT+iO1Rg3jQDL3poN5yleA/MQiC xJT5uhcXNUMRBAlnYU6GziHu9vZjaRs/LIy/+9gQBFnM+HatzTULde8agiDxzKLeu8aHurRc9Fc5 BEEQyaDkFIIgS4g4WK4hCILEFlyrIQiytIiHvWsIgiAxBZdrCIIsNLHdu4bZNQRBlha4VkMQZMmB yzUEQRAEQZC4BpdrCIIsITC1hiDIUmROl2tOe46pnrLNZROzhLVW1+fgteAhxO94AfikL3JMzb67 3SOUIwiCIMhSYU7vXcvUMmq25Y42alHROcJBWaZmagUmrSsikiPqSy5WwvsbHfEyXvyoDSRDE8n9 oZqnQuXIQwim1hAEiRtie+9aFCdDO232xnNecaGDZcWVevAp7ShM+XDRJ+rS6rs7LUSMqHGsmF+J yAefffAqU4Hi4PGNcKGnrmvc30TAPihMu6ijpULKMAAAblvzlnPB+pXBYkG9YByvOyfsf8C+WH8F m+bz0+dPkGiMT31LsF/BYji7COhWWLxiUFxf/IEqr8wU6a+gfSnjJRoHXvEr3nHcMJRzxJWXT0CX 65v8bVboqQwaX4H54HegFfaGC2CElnvj4I2tV6tHUBQLWSrgcg1BkLhh3lUN1CsUhoqCGppkihI+ easvkdaqvdmpnt6VhS0NJTV0xlfne75bo1u3AsBpf61vtaWhpIYmmTUJJ6094ypSPFvDZx8A0gtp 8mlP+4FPbz36AvWn6oIXliXczkxKA8fhC7qmhgKGJhla9+TdjsP92kJh+2m5OoZe1uF51tFQwtAk Q/vTaVMDVz+vSyhsD/Gf375wfwXh9zMtV0ctH/7oTjJVpFX/MPzRHZW1YfNzwvUBRvabh7buLW+s IBmaNNwdPva35FeLNAWB7CAXqMGJp3TrVoj0V8C+tPESiYODMsPvG3bW0CRD6wx3+17rV7yUm8Q/ jvq1ry4fPva1qqVpy2P9Hx+AwvYG4rvzQ4lFWrXgfPCPGm8WLbQ8LVf3tGc4r6K4YAUAJK1bs6zj 3rOtv0bljKUMrtUQBIkn5l3VwN3fy5i47UE9M0WbiT1euWXN1mxvUWffeMkOnwZzpua3RsUD2AcA xcG95Uf1cjWAWi9XA7htrotdTTne+vVbjrgufj8SuQ/8ENYw/0Xt8/RXsFPCdtSl5e1l45Wm+i3d RHuDL/UlVN855DIW+7TAQa0vvi6uXy7Rn1mMF28c3DYXURZwTK1fTXQPuwMfCR1HAMgzGtQgzwEw bdCoId2fqxSdDxLYvINou+CNeecFV8kOVM5YyuBaDUGQJU3E7Nr/2NdfURx6d2djBcnQqsnAfq+p gauBvV/ufm92x/8Hx+1vBz8DnVh2zSlkf4ZZP2l3xzqeKHeYSYb2vSJv0hpr6U8O28vF77+wff76 Qoj6yX51oacNFHkAxBqteoVo/ZvDLXe4NFUIIv7w9FfIvuTxEmj39reDf12hKwz8Rsl+fnXqV0VZ aQLh8jfk7u+99jhZmOkzKzofos+uAQCsyHq0v639cd26uw7m76vrUZR2STNf8qAIgiBRMr/ZNffY eF62Vp0JAGynrbftRoT6mzco2i6MeNMqN0dOdo+L15dqH/Srie5mqzNStRBu3HIDALBWS3OOhY29 fQl2WGt1UyNsa28oby2Dxrd85xmF6utXE+dafWceWbfTTgUOtI5fvwkAbKetubJr5qfC+ytgX+p4 CaEuJVwfO/zpNLdzyGWczTEOyfNBlM07iLYLDmt4au2mPcdUn2OZdV4WiS8wtYYgyFIn8lED7zZt AIVp10ZN9+U6MLZ7t7rDjC3z/t3uM7euVx5xiW7x5rVvUDvtOUeCfwoLbJmfsfU+W0GUUUf1YqcN ANhOS2ulb2u8hdGoA43y+M9nH8TqCyHVjlC/Alv4IS/buGevgftt1B/nvPxtJXC5rsvvT3h/xeIm ZbzE48Z31IB3HH2FpgP7tvbVV3YpDh6n4Bh3eIK8HtV8AMjfdp3RhNn3lfvotNRXwoySgFf5YeXI 4gSXawiCxB+xPWqAmqHIkqbT0nx9h+iqGlnk4FoNQZC4BDVDESQyI/tN9Tmm+squ8bpjDnfk+giC IAgSt8zpNbkIsmCkF/oPVfhOPCBLD0ytIQgSr8z7RR4IgiBxCK7VEAR5aMC9aw81lyYmFtqFeWV7 GubZlhC4XEMQJI7BvWsIgjz04FoNQZCHCVyuIQiCIAiCxDW4XEMQZLGBqTUEQR4yIi/XvBci+F/7 nTPfrfa9Ve2/bV8Qt9NOWUYk36ow8kZ9fUKzI7joU3s96RCVJ5iB055jqqdsUhuWCE8rI/tNPt2C WMJaq+tzTJEDHq9MnzFfW1/h+WLBHJijcZk3+7MiBk+BtOd9NvalxS0u44wgCBJ7Il/kwV2IQCT3 f298980PK8ggXUhw29rOJpQ5GgoYmmSKIosOpWVqDcv6mGOsQdLdCuklZMb/DU6V6LL8RRot+XpW qJBmY7N9Qqflu6c+k+04PwrPkKJqmA9MppZRsy13tEGtpBfS4QKXDsoyFaZhKkJ4/aR1RURyqJ7m LHDdv/9An58tiWs3pSQNTK3clJIduXJE2N2n/1X6nCyKmkSSd87wjksMiYl9qfMkEjzzUxpSn3fp RPW8BKXW5nocEQRBZk1sL/KI9mQoa61uhb3Bt8OP7DddvhhUVVRpSgx25I3Wy38eBwDYQBg/KjY8 GVquqNq2EXpufVBuAAAYsSdcdgHABuN/9Bp86lOsg2zq7guyWrVt3wdBCzcHZeomDuw7qp+NhxwB sSZQmHZRR0vloeXZhLUMGseKuTh08mlVuW3NW84F63IGiWvxNipYn7VW94JxvO6cV2yq1aenJOQn H5cmJgA8bO0ptm0MAGQlWTCiV519EQBgdNDzzolJFwCArKRUWfOidz30xRXPB7ZJFwBkpTDbla/o uOLJ2gpPG8iYP8jBzloc04RBebYiBQDAM1l7ytM2BgBAlKaAU3bILFfB9BkzC/ppi20aAAKVReDz c/TKaKkt+IFIee+08nlBf3anpfGOCyeupTDlw8Wu0HiC007xi33xI9l+kHiXKRtcxvLWUrF5IjS+ nTZ74znvPDxYVlzpm+pC81MQXjEx6c87r5++fgWJmGUb2xsM6mifl33/sHnXanM9jgiCIA9GbE+G RntN7tTA1SEgg7/IphfSJLV8+Mtn3nSYSYaedeKqsaPv1zvLj5OkmSRfV0z9Z8dIiTYLYOSNT4a2 U+VnC0gzqfpFX3v1PxVmLruWrjWT5O5lw3+B1YEEW1LW6yS5cphl3iw/S5JmkiyZmZSY+ur8Lc0D fRF3HL6ga+LyCrTuybsdh/u1hbkATvtrfastDSU1NMmsSThp7RlXeUOhNnBZyRlxS8vVMfSyDs+z joYShiYZOkKKQrj+1MDVz+sSCtsbSmrojK/O93y3hmtFwE9+XPfvT5+pZ9O2Z75flVFFJSVeY798 RF6qAQC20Z563JxRRcmrqNRV935qHEjZpAEAyH5Etv7ljLcpedUmuPQ7NpHiMmSyTZQ898efajun f7lZWVeVUbAMflYmpsJkbf3k5t+o/viyvIqSr783+b4rkd6UlAr/+t///smSkGEzK9+mZF+3st8T qWvFFmz8fqZqUqso6Pox9TOzsoqSV1H+dB2vP3nKJN5x4bKVPb0rC1vC4kkdS97z7s7GCtLw+Ijl 1D9fj/R/vET7rNXck15W9mF1AUOrEl09jlTypVyRcRccX/UKhaGioIYmmaKE/2fv/IOaOtM9/iBr ZuBSXQ7HezOFhqaYeFjamq6UG4+p10EZtQNHbuIQrHbLVqDd/mEs7bq93dsxTFtX3UiTjju9Jei4 UsfWkVyBDOoWmA7y48C4NNPetgeCmyWCN7ONR6t4cTLT8f5xTn6Rc/ILBIvvZ/KHHM953uf9ha9P nud8P9szkMo9Ir4+RaApI7zTULFfTxr0KvXtgZcG8R35aYnvd2E/M/NV1NLRk7fSqc1K+bXRk7dk 1obiX4qOW+Q4QH09GI1JjHPC84hAIBCzY3G9JpelzzCMwmRK4T7HWxsZ73kAcI58TZBb+bgBtpUk 1s6uHcXhlln9dnbZmJae44EEvk2HmJarTgDoHvCWbfdrqGcrfqPBZ+dnQhBWXr5dscV/SBHzUxzJ i+WSi0fdhdVjhdWej0F6gAutdUy109zFscLqMe3RqfZrU9wD7mH2bf46G2FaYnhVtl8lkQHIVBIZ ADimnEXS56T8X8tU0stGTMb/lPFBdYYMACCjOGemoTj9jPnUTH+iQewVGk/QqIuzAQDk2eq96+Np NAH7AFhNJd5+iJuyNjNss0QPWYnPr2uw38Bf7wuI3ie6Pl02hqhUB/4LIS9aRfSOJiHhFcVPubaq s9JbozNt6iU6G6KFliOJr8Lgfs8jAoFAzD/JR9cAAG5+57gAqtkkhKVND42uuPxahZEk/R+lAgDY 0WPTjwWDZ9MTx0Zgd0juGjvhCIuuAQAA7RjFhXPXZk3m7Ymux6u4uAL/UWcBgGvQceMXwWGJGBDB cZs4PZieSE6S4P3TwxeDuWsBN8T8FIG5exdAmqGlsFoK21KU9rPRyUYPplXA8jvTPTmyC29gtZT/ wyWHOTwbuyS/35f9/gtYLZV2Jzz/zD38w01leJDMM2W7LdEqUiOa/vGrL4LPCjwYiZCf3FDYhlMF c9cizAZy1yLnRXg8Z0zojOkWJ177AADZyh160qAnKY1s6befWq4FAlcC8y46v0P2wg78wLsV5mrS oJdN+fMaY63Pmdz8znF5mSokP5X9/OL0s/5M0/j3e9R1yH55tq8d8AIA4kmlPGwwY+yXQGhN/P65 nUcEAoFImsUVXQNFOc6QdESURrHqKab/PF/6yZ7vZwZm3iGId4QFABij7aTJPhbz9m5LZK2rCEWr iN4T1og7i9fi7Wf9ta6Tzo96vTPvEGT8ugsAgLVaTuRZ4ihwjf9+ET/FYXcZPZc8AAAyKTwOEsWj AACgylAMuZsdM+92X/MRORm5UgDwXepgL07EMq/KUNg8zR7uB5/b4dmVZEGoiJ8cEz43AICvucld 2CS8P5JDriWgl1eId03S5p45tM1BU3X27kkAAHk25AFOhAYaI+ddZH5dE96CXKU8GwDYblt/+zh/ PdH1KdcSzKd0IJzmGhphNEmVFIiuQ9Zad9wM2zobqtoqwbwnvrrO8esugJQUttEc336JIMY8Ttrz dKY8S/Q4NAKBQCwgsUsNZqYY6/iEfZrS9X4jcD1x2PP2tucZLwAAjq/F150sVayEiFKD1tZGXHOv KusVU2tj2ONEx5ulWwEAYMxp/1UrMwAAONFBlW6NkmMPAHz2tD/TOTaTzn1HWlvGAQAKcnGikjpc hEFEKnfNIaZg55ttOfa8Q0zY4+u3XeGzntluS1uNPxXaYlDEaj3yfi6lGsJStgM51yJ+CnHuu5Hf vwAAIABJREFUxg12V5NPMTHFlwKopQf4LyjDSwRyJIpy6X6VBMDXbHRbuHx/LfbEkMcCmM2IyRye wqNTIZYDKf+hJQJA5GCvvIo9Jw0YyfigSQpNY6/TACAxvCd7UQoiiPsJvktNntdpX9h1YX/KM52C 85IVbTzDUtT7YHvUb9WHErVPUxYvMc7w8xW2HkTWifD8BpYErtu5TtHbehD4hS28PqN85SpcapD4 fhfwE0THYTLmfqn6m81UZvaPQ8LjHHUeOWvBFhEIBGL2zG2pwcOsGTpJU3uYsoc64xhphiaE01rX F14fjZgn5vS9uGgeEQjEPIA0Q+cI1yDzzfp16Fc2IhY05U/hd2ootGDmnzk6q6F5RCAQP10e5uga AkXXED8FkOQUAoH4CYKiawgE4qEBndUQCAQi/hd5IBYlRFpaQp+FEq2aK5i7dxP6BF78gVgwIl7e gUAgED8JFtmLPBAIBEIEFFpDIBAIAABAxzUEAoFAIBCIBxp0XEMgEA8kKLSGQCAQfmIf15z7/MJ/ 3CdcA8C5r87/V3X27li2XEN2yuJMQoJwtgzZ83Qmyjb/Dc8pyfeCtdaZ8nSxJ+hBxddsHCtMUg5h TnDu08X3/v2EzZry6ugF2BExuE/9TYAFOKstjt8SCARicRK71CCrRE8a9ET64FXNu6/9uZoM0RME l639k5RKumGjQU8aNscWq8nMVqqXDBiOsGq/CuE8kc12nXHD0+Rs5E0Th6Ys04log8YiW2mQs6dv KWP1IrLdtDWbifTBoJZisixUqUHq6g0ZaeH6pLOA3dX0o6DGaASBUoOsEv39kJjMKtEv6boIW+d5 O/BEWZ/3qb8JsAAVBvHuLwQCgYiHuS01iPe9a6y1ri38PeAzxaliKNsI4nzF1NqIE7XANHqJjm3w biszgBMdVZyoFGu2t73OeAFgLa55p0q9FeC83fQ8AwCwVvNyf1Z/SisDAIBr7lWpQ0SrYC2hOVmq XhnSEk3peomkZbIAIFTMB3DdTuqwFgMAl+3EplPeMNGbXE1ngxr46wEIa0tpsagdTkEI162HFr/o UJtfD2eGiJB5ojTKOLtE22Wtdf2g8R48JW4/pF8inLtxI1RUSlKWA84i2SfPAwC4HZ63j04xAACS Mq10//P8eehSh+dj2xQDADkZhnLpiyru8lR9tacdJIb3MLCzFtpHqKWfVGcAhItfaTNgSHLAiMnA 12xkochnsfFiU/zNURDy093h1tpCN1BALEvQn12ZmdA9Q8uIH0zR+QoXO2o92BP6YCQ0VQd7NV7z Kf4RTmSJn0deIY0XmBLdYkP2vENMwXoCephv1m+zQl9NjzfokpColPg6EewviNiJOg5ihIpT7SSg F7dwKnBB+2/+zea8d08h2q+1I1H6222zc4MJucRblaU1RTHmS3R/hfRXlwuMpirh328IBOKhZm7f uxbvizymhy+OABn6H+6sEj1JLR3969Ov0UbSoE8qcJVVRiz5S597Q+VrR/9pVP05NL5ctfN6/7kU VVkWmE98BpuqLmwkjSS5WzZt+syZr8r5VyW5a8noZVllvxqDLKVxBfuXlHVXK1YDgLlr4NcVVR+S pJEkd+PT/9HlLFMG1bKnvzxzXTGrgAH9h7Oq41wcUa9aebvrD4PKknzIzFdRS0dP3kqnNivl10ZP 3pJZG4p/CZCZrzLol3R5nqEbygx60qAPhLUE7XDRr77+n5ecbijbr1/x5Zm+vz+pWrMMYMj+0sAq S0PZfj1peDLlI2ufVxZtqMXbnR6++PnBlJLOGfZF+iUCc/eur9nEZpZn/6l2RS2VljrG/vURTKsA ANZsX/6hcUUthdVSy5+48715OGODAgAg9xFJ4QsrfkthtRvg3H+yqRQXIZNsoLD8f3xf3+3752Lp wdoVG5fAD9LU5TBVb5oqflX2/gtYLYUV3pn6E5Oq35C2HH786ovvLSkrbEbpbynJ123sVWL56mgH NmE/lyuW11LQ84/lF4zSWgqrpQLhOkF/CqRpIFdz0eXQ9S8+X0BTR9L3vlthribVjzkt//V/u2Oo nE2cbuyln6Ysxo379aR6yYDhbMoOdVZmvuopz2hBdenGZQCQtubJJV13nmn7tUikNltJLR098rXs 9PFNjw5++jso6Wwg/n5mJHWzUg40ZYR3Gir260mDXqW+PfDSIL4jP018nQj2F0DYDiY+DmI49xlH trxRZa4mDXpSfXv0yP+k/2pzTmaYfaivHxh+Gt+xabVwv14uNYj2F+TLcHX1xv160rA55bM9A6l6 pTzKfInuL9Zq7MuqrPxz3UaDXpbK9NHL5zk2j0Agfuosuhd54MReDFZmARCrtmKgwAEAgKXP4Ov2 BuI8mKIcZ+wsAMBKNfUU0z8GAADmPm8FqeDvZxiFyZTCfY63NjLe8yGNKA63zEoi0GVjWnqOBxL4 Nh1iWq46ub+Sa6s6K701OtOmXqKzgQ9RJGEHgNjLy3grtvgPEd0D3rLtfm3vbMVvNHjyfQDCGmE/ qj+CSF4sl1w86i6sHius9nwM0gNcaK1jqp3mLo4VVo9pj061X+MV1t3D7Nv8dTbCtMTwqmy/SiID kKkkMgBwTDmLpM/5hd5lKullI+aXcs/4gJd1zyjOmWkoTj9jPjXTn2gIzJfLxoBGXZwNACDPVu9d H0ebuRqLFuOmWF5Elo2PcCmGxduJ9rP8gHWfZcq2x4haFWjUcsDyAHRrFXLIUvj9ISrVwaNY0Sqi dzSJVLmodgTGQZShEUZTWuzfifKi0iucDn2I/ZQUuHcvaF+wX1Guuwb7DX6xqXAR+IT2F1ZTibcf 4rZGmxm2WVBoDYFALCTJR9cAAG5+57gAqtn8p3N64tgI7FblADtafx03KrPYCUd/uqosfeLY1fTd ymA0YWzUcf0xlToNANLy7/b/cVpVxtrrpp+xrs4CAEibHhpdcfm1CiNJ+j/KWF/KJELm7Ymux6u4 OCL/CSb9sF+e7WsHvACAeFIpDw7RxOnB9Bm5QeJ2pocvBnPLXIOOG79QrVkW/ANHfAMu0K6Y/aj9 ioS5exdAmqGlsFoK21KU9rPRyUYPplXA8jvTPTmyC29gtZT/wyWHOTwbuyS/35f9/gtYLZV2Jzz/ zD38w01leJDMM2W7LdEqUiOa/vGrL4LPCjwYiZCf3FDYhlMFc9cizAZy1yLXv/B4zpigGdMnxMTp sNy1ELPLcv5lsL3zMdWa27Th21WmkmhJkIF2XYP9Y4+RJdm8nczvHJeXqULyTdnPL04/yzcnuE6E +3tT1I7wOIgyOXr6Fr4jf+bbh0Pt19eD0cjbB/F+CV6XD9kLO/AD71aYq0mDXjYVzNdMfH9lK3fo SYOepDSypd9+armGomsIBCIhFl10TRBMXeHtM7P+H1nnOS9R6g+2rVSvgz46GFoDAFCU4wxJRw8M RdBtiax1FaFoFdF7wipwJ2utO26GbZ0NVW2VYN4TXk83ft3F3WM5kWdho9oRpngt3n7WX0s76fyo 1xv9ftF2xUjQHwB2l9FzyQMAIJPC4yBRPAoAAKoMxZC72THzbvc1H5GTkSsFAN+lDvbiRCzzqgyF zdPs4X7wuR2eXUkWhIr4yTHhcwMA+Jqb3IVNwvspOeRaAnr5Sk/XJG3uieOZ8V6DjeXmq9vW1p67 KhCgLd5OtJ+lrXGE1qL4w3warDx1DY0wmpByk7jXSQw78VO0ijjV5t8jrGvITuns3SH2uYLQpO27 JrwFuUp5NgCw3bb+9vEY94vvL5qqs3dPAgDIsyEPcCJ2QBeBQCDuH7FLDWaWFOj4hH2a0vV+I3A9 EZyvmFobAYDYdm/VSEors1bz8kloU/R6a7e9+bFCoNQgwBh9QuFdd6809F8x9ry97XnGCwCA42vx dSdLFaHVBgLN79O1tvDZ3HEQmiKdixOV1OEi4HLAw0oNgjnabLelrcaf2mwx+L9zSdDOjFTomkNM rKqOyHbZaH4K+CNWbXDuxg12V5NPMTHFlwKopQf4LyjDSwRyJIpy6X6VBMDXbHRbuHx/LfbEkMcC mM2IyRyewqNTIZYDKf+hJQJA5GCvvIo9Jw0YyfigSQpNY6/TACAxvCd7UQoiiPsJvktNntdpX9h1 YX/KM532vEPhX6mt33bFkBVtPMNKDfpge5Rv4fkVaNUwNaci1gkAcIn/sO1K9Pz9Id5J3e/e3DJg qunB3/qQgiPHD44T1pbSYqFSA26IBNbnkGB/xUoWoq4rMYJ2oCBXs/cN/rtjmKT3HVH/8QPTE1q/ fdF+8ZaE+kte4V3CdTvXKXpbD4Kms0HZmfD+oimLlxhneD8j5gWBQCBiMbelBvFWhi5GJmlqD1MW IxMcEcq5GzcW2oV5pTxzVi/YcFrr+sLrqROm23LiSrQD36ICvRcXgUAsIub2uPagfhk6D7gGmW/W r3tI/iFEzCM05U91d2qoZBcY/3rqmh7vwSMP4Ht05x50VkMgEAhxHuboGiJhUHQNcb9AxzUEArG4 QNE1BAKxuEBnNQQCgYgKiq490Dxs0SzE4kY0WomOawgEYtGBomsIBGIRgc5qCAQCEQt0XEMgEAgE AoF4oEHHNQQCsXCg0BoCgUDEQZLHNdZaZ8rT2bvn1pn5s58oc+yPa8hOWZxCb2c4bzeRdFQZgnnh fx3//e/Hjn0U653w847DU1g9tqtjod1YtPiajWOFychITNVXu/1aFAkw12c15z6dKa8usfeecNIm ebpwPRIEAoF4sIhLM5SmLNPh2oJpazYT6UE9vjiJtCNGcvbnirnqryiZ2Ur1kgHDEVYdFIvkUCjJ 3TlBQUXm7t25aC9hHpHm/9uScSYt/9mfL0j7Ykh9PW3TkI9p51IPdt5gdzX9KKhVukBE+pO6ekNG Wriua3xINlCxJFwBQjRYeerrwWhMrKWoZJXol3SFabDGRq4mDXoifVBAExmBQCBmwdxqhsaqDPV+ fmLTqVCdSsLaUloMAMBa6/pB4z3oF89p8+vkdNvs5lO8qMtblaU1RQAALpuYHTESsh9QysLf+rAq 7ywnMgOcWFNQZAZw3U7qsFZMYSm6n6L+JGQ/Cs7/Z+/8g5o61zz+gC0jTq6EELdQaNKACSfFtmlQ Go/UK0IUHYhCOia2Tksr4Oq9c0PRand3HOK400obKXG7662I5bZ2/LECGhh/FaFL+RFYjZm61iOx hlCsmRaPoaYXZaYz+8c5+UE4Jz8Qre19P5Nx5M05z/u8z3lfOPme583TGnWCAICF2W/2KGgbx2/f BnCZOjo+uU4CgCSVBy5RdZEMAMDl2NvRdpYEAJCkZlbkyOg7bod1r+XCWRIAeMsy5Rtl9B9eS0f9 zusgyVRr4OKRC9cHeKnbi3LkAAAuS0fHzuskAAAvcxnYk3OKVFy4aW0+DqLBCxcGAMB3MCOOvfVt Z3mpy+D6WTJ1ex4caZtg3+c/L1NTJJN7nAEASaa6Ov5iUdt1qvfmIhnruAAAgFxXSor/PLdKFjyW 5LpSkkjh6VLcRrrYFO/dUp4AAMC9o9TZAjG6f+dBK2k0j2OKxIOlHAD/4lcxWDHv4EpOUDswZHX+ 60duAgAgprA4sWoldd/DbH/o5FBxk//CpYtu0e0pvCY9T+Ap2IUVzz24kn1wDH5SJ8YUKqDFU1yL HhQLbP4AjH+mJyFr3NgUaIdlvPAVc00wxjis898ZGiit+RW5UguByC4xFXvWI10pjq55lSHELjuI jMUYdBKXF6+qg+6yzhHPkjSrKqEie4T6FTGx+BtbMS4AIOsqTYH1J5j8QSAQiLCZ3p2hodS1J2Qy nSb6nPMFc02hToPrNF55acxy5otdUcq2msIqzZyLR7sH59GfTUWz+YrS3CoNrlsedeQvvTM0EhFA vJTNDhsR2U9QarBZfd9l7ywpSwaRAn/WORCj3XQgDwDM7x2THajJ1WlwnUY298659/okSilrr+x+ svkTmf0gJEj0OL4ueqAZ0r0CG3H37k3rqf+Ole9cmVMql8+Ldn56M1YrTQQAU+/F3BXFpXK5Vi5X xt872Du4QJQIAMCdmZKEl+JyrVw640rj8Wg5pZAlieTahNH/6iacsc9ULM0pFUXDXe4fZoKl41Rf ao4hB9fK5dqke+ctN2c/I02fCW4nsecCbFIXv4XLJU7rkdEkZeJMFte5C1KjL1qcGStfKZ81uK0b NqmL/+iy9kVLF3DB1HwKFhZV4XKtXK5Munf81GCKNFEikv8x2mF7cmW1jAtckTZh9CJk7l+BBRsX AAD8csk0nhpayIktVkHnQXd0VuKuzXPeVvGKnxz702FKSYpZouJJf/hxR/v4Py1N3FU+JzcaRhNn xAG5zgBb9Mlvq3jlqrj5P5N/ssQUiznsdsja1rg9+jnlKl65Ki715x9rLZwlYmCzLxDHlaug84e4 0/rEchWvXEXLV3HiOOkPbuyVxMUcAJjxPAadf487qAmiwDH6GfP8Ek6sheyfPWefPvFtVcwlE/kd FixKcSz+APzy9Zc/GqPmNAXaYRsvCOW8chUn1uKG+f49MsYhI9FPXZsorZF1+u4ErfZvlbk6jWAG 0W2Ow9dKIV4qe9Y5kFFakDsbAGIz50Wf+/kFU9VC1eMDuy8JDh3Ie7Lv8DZQttVgg0evzlguEcHw oX1d5udURn1ulQZXRPfqjkWtVSQAmFV62F6zpkqD6zQyxZ3e1/v4a6Veb8YsZwLUNWZ/EAgEImym V127r60GWB39yVWc7/fsxN7Xo/MU4SHYTp1++7yyzfyWY1Tal7nWgW2kVT2isfNAGn28Ia+aaPzO No3+TKt9RpJk8qftbZvq64vq62stsD2Hktas3devU41F9fVFjW1nr9+2UCe4Bo930O1HXIHWJJk5 1TnCJC4AV5jEBQBHn0u0Ueh55MkVblxfpPL8tCwvR84FAJCnep+JOvZ6O6VfHXS/PJGKC0nxAKmp cuo/lJ9cudcgcIUvcu3/66LGlfO0/eJNAAAwWVyLXhCGGBcAAHCq9gcp6z6RFM4bK2Posu6JnOXD br+UrBjdPwuqZDECAIEsRgAwdNItXs3z1IAHgYwj7ncPsdsZOuluMQ/NL71GvYo/crd8718hPtB+ EF4q4Jxppc/9qtW9vCC4KsbuJ3A20GXsOUtTgnYZAs6Hk+yEGi8brHGYlLXGK9PyW6qppWSqhVVG j5S19GWs5Ri9ptqPEYUv06pYRrZCBLw0APVCsQgSfFqZMNtYzKM+ZYmy8ELH1XYAexOBaRXej4ii rHSsayBoihurPwgEAvFrEFbu2vChvlmTcs7GLGd8uVz2PuvtZ2SZswH6W+ef5L+7c01tKa7TCNwT 8r0Y7bARuf3ZfPfRntHlEruxzbWiYE0yAED8neFzT5eY9bhO43mFdiCC8U7JfhDIYWuAugbAXSCV a+VybWrqvCjntoujWmkizLx3zRFveGWlVi73vERJAACOvZ9fSV60sioH18rl8+5NzD8bHWy7GyCS jZ4n7qZIEyd/G7LbSfjO9Z3IXeDr0a/fu862QVBKE2F08MjteK2IS58+09nmjFWKfBlwNweJn5Kk 6TMBYGbKPevxe9IFox0Hxp75s5QLAOzjipixpi8hd0lsHP3jL19/6UvJGrKMuiQTxKdR26j1D3FL fDeC4//z5S8vLImNY7Hz3M9jnSmC05t55SrPyy8JbLJ92iXLDIbcNU7sHIuz88m4593kvw1wdiwO ltzG7meIATKHiMEfZjtxQccL8MvXXwaoa4xu+HLXGLLWkiVrNbhOg6uyBY9/c9j4vUfNmp3yRF9L 21OyzDtm3TfpBmUCALiuWE+DbK0U7H09157Clcne5Tl8aELuGt0ef8V6frZM6XvWSX5xZmzBhMMm 5a6x+YNAIBBh8auoa45bdgAAss7YkGYMtnHRPjySIZSIkgGAbG/qaQnYWxi2nSnZ55VpobbJJ60B AGSlY10Ndf0RdhO+n1OzHwGm5ua9DhcAAJcL8SDhUn9hhC9y7dusk7Zuum4P8rgL4rgAcNNhPW4P GWPhi9wLtVZahbvpcuxtntYNoVzZIpfF5BX5XI4+l8h7+5gkk4PF6pPWaH+YxjUVht2fnBynlSen +0wK5yX2YwUrObbjpEemgiGr25bFEQSxI+OI+4c+s0bqEmVn/LP9Q/P3+9bxSwWcM63kZ6GktRB+ TgEWfxiY2nhZYNoQalZVtrbfAAAQJUMa8DE/gXDpy1jLMXOdn7QWDEeXromk1m97k6lFmL4UQFSM EYd9O0bt/VeJ7OD5GMH8QSAQiIdOWEWoyHajqayTTrE36sTenF8qEx+MVGo//509JWXJ3rf46lcX ibtO7AIqTZjRDhtTs0+faNNueT/Lz9gN29bdJxodAAAZQj6mVb2fFXw3QETjnYJ9JmwbDCf2TWjB Tm4puHf7tqm54wbXdZbeCpC6PYd+QDlxiwBPwpVX5AiTAG5amzddoPYlZGri7TsvwBvqIhXXsbe+ 7ayf9WV56zfS90i+rQDA470hz1EJuV4jy/LWb4QOaiuAJFNdLWPcKeoxnprXnHq9qO26JFNdAR2b LpDL8tZvFDJsNfBy09q86ba8Ocd/IyLzuCKFXKeHDavHP/7ITQBgisR3qQd8Vuf8j/yf4nlT7BlT +NntAIDTveOvzpZhAAAsJUa8OrFKFhPMPox/td/5lmcrgM8OAFAJ+5B4Puj+AGD1k96jQHUHzLn/ k5nsT1A7YY0XQJF4vpTDEofV8fFsX95hVhlHMAdBr6NJvx/ajYYyWPUttb+nvzWtmgAA9bYt+b2G sk7+O3tUsJtaoQDC7LpsouzzSb9nGLcaeEz5WEz1EsIfBAKBCMX0bjVANUMfaVDN0ClDrtPDu3re 1JWnabYTgq/2Dw0WhJ2W91slyO1aCNqNDd++PHHnJgKBQDzSoJqhCEQIyHWlJDFMFt/vd+pOl50g uHeUXptfeu0t87jxr76nnL9XIr9Xs21VG9LUhrLOkV27I/v+WwQCgfgdgdS1RxqkriF+T6zm8VDJ KQQC8Q8CUtcQCMRvD3SvhkAgEFMGqWsIBOKhgKq5IxCIfySQuoZAIH5roHs1BAKBuA/Q7RoCgXjA oHs1BAKBuD/Q7RoCgUAgEAjEI80jcLvWbqQKbjbU3XjYXdv7W1VG2wP4doBTrYYoQ0MtY00BW2uU wRBlMODmSMs62DYYDFENZr+W/tY0tUHVNHVHHzBkXaUhTd3a/qvZt21lnle2rZV0mde0ygfn3gPh 4a2XaZpdv5q0FoH/bPMEgUAgHhHCqhn6YBEpcJ0Gm9U3qWYfK2aVcSzs2qPBiE+WKKJ7dbtJha96 4LQgluDcASukyxSxk95LkOhxfF30gH9t0PBIKMTn3LSOFcq89XCSyXNHh+C5R6Sa4eTrEpu5HJs1 oW7s9BLSfoJSwzCp7E0tB6O05ppcnQbX+c6NdF5N2zyMiIe3XpIlOhF56CfJfc4uhvKgD4cI/Gee JwgEAnEfhFkztKKiIj8/3/+AyS2fNjvD2Blq72/VVROXAQD46ldV7xd7KizdMKt2d112AAixOi2U VRMZr75Z2HVglwOrayxYCrat6hON3kpNAO1NrbWfE5cBQIi9oy0o868TBWRdpQk2h/7WcntTQ97n I34NVF+0PwxFZiKHtG0wndg3AgCwEMv+tEAxF+CauUHcNbIQw4AgegGAj50sKVhBHW8zb+ju2jcC APzy7EUfK+huaxsaYBF2hXqLj51UFazwK011zdzwGqh6FLzg/U5s55evWgTdtz4uUXhPMqvUXdi2 iUW3IoU5bt7LtwiOde/qHMlYvMqkYw0p+3Uh6yp7IHtkl6cokNcI67wKw0+1EIjsElNxMPvtAbXC aKhx+ch4dYupOOi8imy8rHFjmv9UcTO+ejE0dgb6zzJeCob1wri+goyLLf6+diFWp4Xa4QK/fpnw L8L2KgZdfCNVFO6GeetuxQcfGlKLPfOqvzWtmshYjEEncXnxqjroLqPis/Aqc/uU4hap/yzzJHj8 EQgEIiRh7gytqKgAgNraWsYfKfJes4ZW18zvHZMdoHQIjWzunXPv9UmUUgAwq/RgrFlTpcF186L2 1nVHF2wxFfurHQlKDf6s03r7Gfpjq2g2X1GaW6XBdcujjvyld4bGXxEZs5wJSy2Il8p0muhzzhfM NYU6Da7T+EkjethO+aORKe70vt7HXyuNSLyiqD3X+8aakj04rsfx9fyxfzlnK5Sk8FJk66IHtg7N 2qctOZiLvzjcs5MU0NpYwiypIHdPLq7HZY9ZPzFE4YUJAABma9tb3wkOq9bsycX1giiDqfcxmcR7 u0MOWwPUNcZ+AWwbjlxdrSo5mIvrccFjvW2Vf+frfeoajF08ekt8X8IAW9yoy9e27dStJ1ao/qMy d0V0lCs5lk2DZL8uY5YzX+yKUrbVFFZp5lw82j04j/KWbV6xQdbpuxO02r9V5uo0ghlEtzmO0hTZ 7LOpUAlKDa56fODCc5vMelynoYVJdv8jHS9r3JjmP7Veunu4ykOB/rON1xvVwPXCuL6CrBfm+Pe3 vt6bbqwp9K7rEUFw7da2VX81f3NJbSmu0+CKOwO7/2/Wa8tT4ul5lWLcgZPfeOZV3vOqxwd2XxIc OpD3ZN/hbaBsq8EGj16d8WaBjrF9uUQUadwi9p9tngSPPwKBQIQkTHXt9OnT1L/5+fnUvRoATFbX QuWu2ZuIxs4DdJaP2pBXTTR+Z6PaIdtTWD1ZvDGbH9Jxe1+PjrbTTYQ8OkLsTQSm9RZ6B1FWOtY1 MIWkNNJ8lCDEBgOVXhZ14MQ+YuSU583yRbRCtiLdb7jkwAcm+vid/joG8D9UKeZSkgVP/DY2ctwW eb+2q5cw3CPL8Vbg2MKJ54nfb7yvQoqh4sZ/Z3PJ+1k8EYAoizfVB5pYHV0eW5zvKeXONq/Y4ZVp +S3V1CmmWlhl9EkdDPanjf5Wr5P0yxjcTwqGuLHPf6yCwf8g42UmovXFFv/23pHCl8Vi6TG6AAAd 4UlEQVQRrOv+q0R2wVLPDBRlFXxboxB55lWqJ2vNf15lZCtEwEsDUC8UiyDB+wmGrT2iuEXsPysR xx+BQCCmRICuBpOkNYpQ6toT48Pnni6hdAj6pUgAANcV62mQeT9u+v04ZjnjyyWy93nUtf7W+Sf5 7+5cU1uK6zQCd2C+UbjqGgAADB/qmxWQi+O6Yj0/W6b03biQX5wZWxB5RlrsWP/AnPOb1uhx3POi JTFy2NozS0YpZ0AO1I89tT4lFsC24T8vSpXa04W5ehz/490B7zFm64TctQmnT1bX2Pr1dUSFabj+ Kqz3U9ful+Bx812+sGC4LmzzIf4O87wKRrJkrQbXaXBVtuDxbw4bv8eDzTdf7wzzKmD2BvM/WeLz MNBPxvEyuhFk/rP7zzxelnEFW18MfrLFP8BzlkD5cWPg0E8MMrbrikyj9N9hQM8r8Bi09/VcewpX JtPDj2dpF0UYt4j9Z4tniPgjEAhESMJU1wAgPz+f0tiA5V4tDHUNstKxroa6/sBmUTEGXZ6Kyzds e7v8daWRb28AANne1FDWSTfZh0cyhBJRMtXe0+II1W9wHLfsAABknbEhzUhS/hCHfRWg7f1Xiewp pbeLV/MJ3ByOgAIAAOStS3x+QQIPAK7ZzB8QE8Lwlsl8jQTqrdcI/upgyXQs/YrTnyV6TtFbSMlT PURvOF5Rmwe3Trpqk5m2uFFMui6ssMwrdsyqytb2G//P3vnHtlHlCfzrtqcWlaZtLgFSuykNTWgm u9roJHA6BBqvGmix23JUXnUXb5hroREesoQNZfNDIKP2Wm+JqcmefXKr3b0ER6SZI2yKL8miCEdc SOqaK7cHDLnUTXbTDhsppKWkrQqLxP0xPzxjz7M9qeOEy/sIiea98fd93/f73rw333nvDQDARj3c Azmb0zdnjZK6/hqv197+tdU3ifx4PRH2//GWnHf+/TyiX6tx/72b20+Leyovj58N7NoTeA9g4+MA kIZ2pdVumvVHkpH2hsFgMAL8LE11rsaTykeo5EuJN+Rs3rvr2P3ZALFbDaQlvdJS35KHdu+Ebuf7 /BpefnUwAOTseeKBwsFuJ5T3v1a28Wzgnl8rX3E8tPsCekk7AABcfu/100+LS4xff05895GmrQZw uTdw+lF+4pWTsyXngTZLIZz5t8LBLwDgwO4XfBDQdY8AwJbyfUNl2RExa8vm8pdyRh4dhOP7qHuH mh8dyTm+e3Nn96CwNUHYanC+urn7hKK4zT0v8LsWVMrdBHFbDbq7T+SUfyfbbRDP+Rf3dL+1obz/ tbKUBkhVu8X6JcnSe95wcX6RnL755FsWiFnTjWpX6pzZ9foXm/8yIlyfVD6Haldndu0Z/FSWvCe6 UQPRrjTUN4HdVNt/UT/SPqr1jZcv1QvRvxLUC2H/mKX6T/96hN+NgSTafqBkQ3ltXdmP9aDTwXeX 4tqVqPyeX72wfbj56fdz6lt2gYtXG9TSN598i7ygzW4a9UfaE2F/DAaDSZX0foQqXd8MPRvYlXQH GSYzcGd2/WJkZ8strWnDYG4F/BkDDAaz6Flw3ww9/+Ke5nt+PfJp+0I+r3URMR4a+fShB/BcDTNf 4LkaBoPBpJt0RdcwGAwGAPB0DYPBYAAWYHQNg8FgBPBcDYPBYOYAIbrW/a+zXZePwWAwAACwTq// nMNf3sRgMJg0s/uZ89Hp2ujo6Hzrg8FgvsdUmEwDweB8a4HBYDD/r3jnnXfej+zCL0MxGEwawHM1 DAaDmTvwdA2DwWAwGAxmQZO2l6EMTUOjx6qHkMtUHwAAIOz+Rjhi87L8H0GPNbGEkMvUlu/3WFM4 gYJj6CN8aQuHkMtUP2ZPTf85hGNom5cFsDiDdUYNv3Id8QZYACAszsY6o1AHLuQ6Uh9gAWIyOC40 NDQ4MBAoqFKUwoWYI21elo29HlksUo56udr0l1qiCDF79wiy5BLixAsl5HfEp1uc/vw2oSsokoN7 J2hlekr1jfpZBYvTCfWCCoTFAoGAuvw4EUntg/ZXha1ep0F/ZHvT1n40Eq2wtt5x64RcdL1QXXtj nWTjEEPXe1kAwu70WJPpI29vap6KGi+aiyg3g0jjgkqDTWFQmEOS2VPDeKSFRHYQVVKoE/ODOegX sXeyTPcOBXx11VVYiON+huBfhgrfDP2p5e+np6dnLyzkenZm57FHDABgIKni6XDRy50Hy7KySswU VTwdLvKl0C0NJGUuSe3zlFklOSPP9iylyAX0YRgDSaWs/xySVWKmiqdb+2FbytbhGNrmXWv1+47V UJU32u1v3Kg0l2QBcEyDvb3A6fc11VCVxSPO+tMrK80lWcAxDbajPdeXTbFTRfJSOKbB7i2oi7se XS5ajlq5mvUfbu0vcgZ9TRRFVa4Md4UL9tTMtsUYNqwMd4Wnpq7fJaliIKni6WgJVOXKcNef737c vPoTPnHbdPT/sK3mqQPKywUnPfKwWZ6eSn0BgPezUOh1q7/zWA0libEaDKT4V2edFSlfEBHNTVJo In+Zp6AwGLxFf2lsP5rhK6yxd6QBhj56teq4r6mGqizl3jjSl2PmCw+d8s7s6/Q1VY54e5aakylk IClKuLUe2xtrFo5xdVz94TM/a6qpid6GUOVmDtm4kFVirlwZHrnveOexGqHl/ieYzSWZVUhGQnuC pvFIC4nsYCDFhAejRWeVmIunW1fsE+4bpdzRdHvSQAqKCFrN67DK2+eT1Wo1XIjjfoYYHR39y+V7 0/MylGkLWMqTzMc5hjaZTLTLRZtMJpPJRLtCUl7IJaQxXOwPTCZXSLogmm/cax9rYxbIJjRRU15X RYZYW2UuF4qm064QF5UjS5ZqJ1rHFRJ+Fs2LKUBuvwlBKZkgBJcmWLCU848serKCYAeGpF8Q+QY+ 3VhuEdP0Vk8wGPRUWeJFaSKRHLVytepvrAuKj2jc0AALUhNF2DkRoQ4va3E6Lay3IxSf6YrzfCI4 hjbRjHqe3lhuAXbiUsrCNHIr8pH+8rBQYvffsr+QaPYXon/NF1aPR4iH6PVkRTTdWF4xVm8ymWxj FcnunonhmI6J8jqrUa8MO6DKzRiIcSHkohnQWz0eq3BzE0YF8QYnDQ0hJjpaMPIOJnMwzbhoOv5+ SLtoGtXJkqI6HiHk88MaI9c01fYmt0PK6K2NFdLQJ9OHlhsIZR+tIOwpFy+vLsJfvDlphhPyabWB MEZPcfhSzBMW2LifedISXQv1Na8ob5I9bg/3XP2B9HjADfdcJc0l/KzZ99HauuO+phqqeKS9jSsV LkI9VVSuDHddX7vNTBq4cNd1o9PzVLFYRta1kebur9L79D1bEE/tIdfuo2NC5KOyeHqkf2xtpbkk i2No29G1fBCBoipvtNsbeqRwh5niqbzR3iBGHcRYSaC/f9ToDPqoG+0NH+RQpI6hbd4rQgFU8XRr /wd33k+RBuCGW/sD1/knJbkgBAaSErUOuRqOfjBl5KNQM2xP15/vflz4KTfc+qfVj8vkcMMx9c0q KV0Zdh71tba2tnb1jxL24wfLUvBOnJwk5aasv6yIP3p9YeM+sYki7JyA0Kmmz7e9fODhH6wMOz/O kXTlhlv7A/2t/aMARdtqnjpAmUuyJHXEehkl9YTLu8JTkHsfdfiYqGXUAlyI+RdvOHdbys/1clsp DSn7K7H8OPsnId5fd7d2ee+7dX8h2482f6H71+zqm044puGNu585IOpiKCmtrLz//rtmPu5ub29u bp6upMjEflfeWkU+62ufgJH2Z5uaW1vD08WlpCEu+KYoN0PEjgszbI/P62tt7R/NvY8S4moGsnJl 2PfRj453PnfXsP0o1Pl927j2QT7YaFizobSmpoaiKPPSvp+fEsMqIVfDYHkj71+q9NqwT2hwHNPw xuqq48eaaiiqdOmI70+rqWTRO3V7qo5HoC6/xEytDDcPLNnW+PKxmhqKMm9gG05eSxj9UrODIjem XOCGWyfypRabdW2k+eM1FGlg6AZ4xsMH6cyl1041DG8wl2Sh7ZOY+HJR9mROntpx2FdDURRFmTdc O3lymCT56KC6v/gBrPno6c/v3Nn4clPNg0t1M4asLKSeM2yP07uE78GKeQIsrHE/k6QeXROfNVTC RAAAwE2MAaR487NUCc97xvKC5FfrrR5/1Vi9yWQbqPB7lC+zjflETJQApafW9HRhyCeA9dpMJhNN HxnMr+LXI3BDAyxAoN7GF2nzsiCGO7iQFEZQXZckvNDXWz3BOiNwQwMsYW8UX+Qbyy1A5EtusFQJ 4Yv8Akk8QyeqL8cvdCHs/tkuXAh1eFnC7vQHg36nnZACUUnKTZlZ66+MrSHtjJTPMW0BooLU88Gg gPLpzuIMOjXEGS3OoN9OxKcH6k0mk8lW7wW7U1icgdCHD85pfcBUkY9Cm78qTDZapT7J5cT7C9F+ kvYLZano/jXPcIzryESVzPgMbbLZjrQNTuTnV1U1+oPButktyuEmxtiAd6zCHwwGg569E0PK1hFX boZQGxcIuz8Y31+ICqse9PkAlnKjHgz5koShjiNC02kbk64ODY5VRFdv6Y11QaFuemtVwYDg+CNt 4Gzko1Zpu88j5AMAUbHXKoY29WTF2GCyAtTtoAmOGSioijpVbywv4MPUSPtoRb2+HDMQCNgkW9rq A4EJsaOq+kuAsDd66ox6PYCeDwMn0tPiRM0T4sf9RUQq0TX+1bYc5aPDDNvTdfVB2XOh4pGFG24X 383PsD3Rd9JxzzUqTxUA3GenfP3LCAKWbIx9ZmR7Wq/+SK4KSk+t6bNEJdpkpiqLi+8qWrFkyZVA +5td4ZWV5hJge7rCRnEFk6xg+dIdaSFUNETZ2l+0r0muoDIIJV9rodAk+oewVkm1vhxD245+kGtx Hj/8sF61gOTRNW64vet6xXMHyrIgy7DmRrjro7XyNVIoO6ccXdOqv5SnjK0h7YySz/3R6wuz4a7W 1tbWrvAURBewCapbrWpNJz6KI6Q88rCZMpdkhVymnw8Xi9HQImfQ11RZPN31ZvuKYv5HCH0U5kk5 uqYiP1G7TdFfFSbTQNCfJn8h2k/CfhHPDKp/of2SATjG1fDBD585bC2WJZaYKYoyl3LtDd43+7tG pouTr0iS3zU5hubDODNsT9d1a+fBMgAAyLrW5/1kg3SNSrkZIm5cEO/wxaQ8pDTD9vADhBhDEoeJ kGt3d34dH9yhSm9I65m44Z6rG9RbgIHkm1xlZenST+xvcJS5JPF9XtWeSm2zkskHtqdHfqFimEMY RsUOsbnI6Bo33D6y2mxefzGmGLEuCeyTiFTrm3VtJFzk6zwWZ0+UvxTKyYQj9Uw8T4gb9xcF6Vu7 ps8vAJDPdw35EH0yHhpgC/JVf5cUjqFtbeD0ezyeKmizKUMKoQlWFkxagHAMbaKHDEarta6uzuO3 C2uG9GQFAYF6cUUN//beFRKW9OQb9AAcx3QMJIsi8Mt+vB2KlW+zWqTAhVy0zQsWp98Tt+WInbjE 8dcMxu52jFeID+Tx11+aYKEgf9YP9FrKTaQ/xMfWtNqZX7YWlEAsYEsHemOd304E6lN2Izc0wPJx P+Djq2Loj2PaAhC3bkiz/JRJh78Q7SeJvziGViwyQvaveYNjXHQH7OUryzHKxTgQ6vAWOIPBoD+F mAwCvbXRDl6hxlxocIxvEYnLnXvixoUYkmjETYwRBaRBDwBcSO54Y3mB94i0Wo0LuWjBvwwtLlTU 6yEfiNmOO2iFUfLZgQ5G/JwHNzRQoGkpojbPcKEOPqqmt1bIl3FF/Y60j1YQ9TWWFwwoVsoJJaH8 hWJ2ei74cX8uSc9BHgxtmlBs7Y+exCDtIJf2I1ucwTqQ71i+FHcigsUZrDMgrxffFC2gPb1qm8Lj NmBHt9IrDqogiIIKPkfcdk8Q9oqCAW9AOo9DJl655Tx6IIJUAojFKg6VSHBGQ/yBFNIuavUDNRIc ACE/oCHpyQFoOZoO8kigv5QPMSkIOyOFS9nRwgiCYNmo9rECYvfkqx+8oTzgg5chXIneTc+FmI42 wesx1pH3Oz5DXm6M/LizRZIc5BFbhe8A2oPBtPpLvf0k9BfH0DYvKDVX71/xBd/CyS6pE+f5GM+K +YTF6Um0DEHt4BiZGcQqS/ZPVm4GkI8Lah3A4gyWD/K1Ev8pHf8kP+SGsNir8gfqo26W3fcIwl7V aDXqAYChXRMFYwHVnhEP0p7IBoqSz9A0VFVNtCntjwBhB+VdXp6e6CAPWX8h7FXRw2DU7ZOqJcSG granrIMRBFFQFdPilP5KcE6Iip7oecICHPczB3+QR5rOXQu5TIPlmbwZZLxADAajAH/GAJOExXGb ls6Ww8w1i6NBqZDWj1AZ6zK6v5Zj2sbsexefzzCYBQKeq2GSk+FxYT5gaJOXZb02E/JwHky6WPTj Pv7EOwaD0QyermEwGExmULwMfWjT6fnWB4PBfD9wvfZa3S9/Od9aYDAYzGIhOl17z/8PqlesWrUq wzphMJgFjU4H330330pgMBjMQmdmZkY1fdWqVVevXtUkalvVf6dp7RoGg8FgMBgMZm7A0zUMBpMy OLSGwWAw8wGeri0SIm6SdEe+v/IxGAwGg1m8JJuu9Y7rdOek/8jqyQU7IvdWn5Orqqv+cr41UiHi ZnW6c9W9mS95k+Un0BlI4r3Up1wRN6msBVr+HEzk3CQrk3iz1z1OxrXPSOTLXvc4SZ4j3TeVv/6y muQbCVsty0Jd7yYV7SpOmjZ6q1lRFJusGajXS3t9AQAivZMkXxEypgt/WR3TWSKTZOw1Iji0hsFg MHNGbW1tgtyl23/65P+c0z35eJ5q9vKSO21rrny4vehi33qHY+26wNjzF9buL1s2N6reEoU78xyO vKi2O1fMt0YqZJfl2tZcGcrJ3VmY+aK3nt3y6jIHuuTe6i1XqvueTKJZpNfdFskpmn57KGdrcaSt LZJTVpidSH522bqzW36XqGCN9I5vuXJH35OCfyPu0efhjqG+jQ5H3roLE8+fWcW3z+zsFYVla/ev u/nb6VXyFusmx754qehD/3qHbdWFw2O/Xyf4AnX9md/efO4i4XcIrettuIX2H5l80gfBi0SLI8/h SNIGUPXSWl8AiLjHX51e1fyrjS0teY79t2dHc266yYncE3d8NbJsv9Rfsm9fd3b0d8vyVNR75RVw OGZZdwwGg1lkfPPNN6rpy5cv//rrr2MS+blaX1/f9u3b43/S9vakppehK3YcXAefic/uESlKEfP0 L6aT473u8WhAQvX6yCQfJ6julSJ5rDvChzRYtxhF0JHjc/Ci7aZbDHWQ1SxJTiapV++kLCoTjUbw UT3SLcY8yHExaHIzGkohJ6vlAaH/nZTqpYyw3KzWndPpxlOLvkXc1aROp9PpdGQ1SZJuMblXTNaR 1XKzbTp4/ONDaDu6D5048NiOpKVu2lFrKTz/aufwiUOB84W1tTs2JZW/Qy2jt1qn0+lId6SXrwaZ aszRfejKgcfWRPWpJYZq1yS4PobaIcK3YwUAwKYVlp+kcv1GySiBztteqk36GCBrV+SkVKne6nO6 ws+Hh68Uik0isRRUvbTWFyKTr3621le7ZtOm2Jze6rHPXiJq46ZlOw6u+/hQXIANh9YwGAxmbpDH 1VAxtqXbf0Yliq4tX375zJQQUYjcdFd9vqR6Pf/Y7W746z/9gY8T5O0v/rah4cudO28HADc5lvtS UZ9/vWPrbf9x+OJXdcRQ7Qrk9dm377fp3v3N3+58Indn4dfv/uZvj/YQ/2yEsv15a9692Lkku62j sKUlz7H/tjOWi1f2r00aoIlqm4yIe/Rw7rpg38YWR97WZddefP/vHPtvT1AvKFxWvHV9S0uew5G7 7Pdssxh+KNyZ5zDefKpqamzDHW0dG1v+Uae7vCI7G3qrR//wWMGH/vUOR55j67eBF2dyf5Fblg2X z0xRz8OJ84S/Jc949q+HLshjId8GXpn6L7jtCUfymkbclsO5LwX7/C0Ox9ZlZ198P9ex///aO5vQ No4ojr/NB8jUhlglJTK0IUGqUaguJRCNUvAlB7u1gn3JoRgnRe7qaqekkNsGuSRgw26dlsZtRYpw ofhiF5yV60NJC5UdE4cQI6dktwrU4DWxI4nUVAp1uj3sStpvrVzllPfDB3l25s17MyO0ev+ZVRgA uMvjH83enWAYhmFiwcLly7ei0bDSxDHPlb459FrflKsUWD51/kL2Examn/bHwppcja19b2F56KvC gK5yIMowp6Shwcnc0Xjqh6mJ/gNUPuD1Qj2KN4egb8owPmUu8oAMSbmjb2U+a9VdEYvmbFPl0mbv aMv4tVav6/oXxbZr9bK2XOQRjJ+Yn/AxjC/WtTveWwzGWr3KOhmgFu62ra8HGManLLZ62MXVSLx3 tq7+Ti1ffXR2SLqyUD7V1R7wAgCI3NrIdsfsiAfyO8mMJrsGAN7d5aEnhYHD2vnCvBqCIEhDuMyu Ve/POI6bn58HqxxbamYTuLnbJ8/efmaDLMsCmwVYAVgByNJ8SVYQJKIWVv9yvFJOJLkKnyNsyam+ aq1AYAUgywq1pizR/SuwWbrWwBaBzao9qhRo234LNFELCcnxgmNcsiwLkqb+is6ZapjafrXjoPew 1taioXt4mqgTSQhd8Z8lYEDnqcASoh1W7QWgrS5YdcyyvCzLAk+zximxs88SsJg+nrZ2xgFBIpCz biOUWDprHE+7ERYkmuQsFpT9jLhagYJE6ILOHq1ZxoZ3h0ss47IrN/mvvH8rhSWWlQTVMd06N7Ri DSscQRAEaRCHO6tig5w8e3t/94cXHqyAc3ZN2Q02cGpnMrHToaS4vLvLCy13lTyB+tceAID8TnIG YtXMQfW7vl19pdYd6dPvgRDY905bNKAmBpaSW9Bf+36fX9pys+XLlF3zRGs9Gvr1RGM+hvExA+1d B3fCo8+ZWKu9n8X460+CX789P/Umw/i6/tLvP7NIyZTnkrvBWKs5W6QLxCGXU59ANMYwDMMMDHQd zIRH/2BiYfAWlhdO3l2fZ2roxkxJgAWZqNGx/FLy+na/udyy43A4AADeQDRsvVHNbH8peWW7y5R2 E+eST0/rcm51ye8kr+/2M+0WbbwHwsEXydFyTJu4shphkXvc+2Pb+KzP4tfnbGeknLpYfu9avayn KVMlzm09PV1ZxoZ3h0ss47IrN/mfX9q6/uyN9W8U/fRA4eafi8HDYa+615NhfMwAtfD8sCFLt5SU trustq8hCIIg7mho75ozqZnNfRTltra/51jqXOl99RDZob5QPsKZTl/6j5yDvLpNSSxziULlgk19 AJFbCySAF05kMh2QWNOcaytPj22K6g6a8tx0i4uNVQ3ARdbi6TIAgN8DnUBCHic/xfIqaekNeABA TG+OTdc9HnioL7QxWIlFFIvxiJsDoQ3sXeMikXhaBADw+6ETSKgTAAB6+kLTEc7BQM8ldnXQvMPM 3xkCEIylYpyiKKqhk6yW9tMPF0mwKZ/9fo/Bz9o8Qjk9trEYchYry1x8bQx8mclDfgCRq3s8s4JY nA61u9jZd+Tc6kYterE4u+rtNW0ac4NdXA3GC/7h4yxsqE3c+lN8uOhpznwhCIIgTeHzW784iaF8 TpVLVBGnxJLaa56u6KQkS+hCRfOpiIwkx7NaacaiflVppXm52pfShCVZlteYqieaGcQd0GtSZliS o2v+aO1bx1V1ldASz2Yr0q1RbNVISCVWY4flS7JjvOrQGWRiJ/9puqaG0hr/Ba1KqrtSHSor3dNK r+RpALCSMR0x2beQSBXLNdz3YdTphNo4axahaT0oi9YkdldNWdevReBKi5dlWTvvhEjVRixpbH3a xdVYvGoT2/dRtZVODBUkQqQGVWoEQRBER3PFUGqC/zV149+X9JuhaW4tAccz9Q/TWcBF1iB1YnhP mQnEGZGLDEIqYxjcdJya7ZMnm5DDNNhvnmHF3GNqtl2ebOR0JNII6fi92b53mzZfCIIgryQufzN0 eHiY4zhtBXPJmcH7+yj3aqhrqk8WTTz0pvZ4r3ZvZLE8Eqj/vANkD/iHM8Z7NQDomXR80Mde7Ytc YpW91MTP/p5jrFZwRJqLuJlY7WjmfCEIgiCOuHmQB/XFT7999+U/Lym7hiAIgiAI8griPrumvOA4 Tvta2+TM4P39H5z/+P7yC4eToU1wGUEQBEEQ5FXC5cnQ7u7u6uPWlBLDvRoApGY2qRs/L3/L/f1y XEUQBEEQBEH+L/8B8th3RKR7xpcAAAAASUVORK5CYII= --__15407725501702221abhmp0016.oracle.com--