Received: from localhost ([::1]:34000 helo=stodi.digitalkingdom.org) by stodi.digitalkingdom.org with esmtp (Exim 4.76) (envelope-from ) id 1Ujtaw-0003fK-Ju; Tue, 04 Jun 2013 08:56:22 -0700 Received: from 173-13-139-235-sfba.hfc.comcastbusiness.net ([173.13.139.235]:37267 helo=digitalkingdom.org) by stodi.digitalkingdom.org with smtp (Exim 4.76) (envelope-from ) id 1Ujtao-0003f8-OQ for wikineurotic@lojban.org; Tue, 04 Jun 2013 08:56:21 -0700 Received: by digitalkingdom.org (sSMTP sendmail emulation); Tue, 4 Jun 2013 08:56:14 -0700 From: "Apache" Date: Tue, 4 Jun 2013 08:56:14 -0700 To: wikineurotic@lojban.org X-PHP-Originating-Script: 48:htmlMimeMail.php MIME-Version: 1.0 Message-ID: X-Spam-Score: 4.5 (++++) X-Spam_score: 4.5 X-Spam_score_int: 45 X-Spam_bar: ++++ X-Spam-Report: Spam detection software, running on the system "stodi.digitalkingdom.org", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: The page wavelessonscontinuedp2 was changed by Eimi at 10:55 CDT You can view the page by following this link: http://www.lojban.org/tiki/wavelessonscontinuedp2 [...] Content analysis details: (4.5 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [URIs: lojban.org] 1.6 RCVD_IN_BRBL_LASTEXT RBL: RCVD_IN_BRBL_LASTEXT [173.13.139.235 listed in bb.barracudacentral.org] 0.4 RDNS_DYNAMIC Delivered to internal network by host with dynamic-looking rDNS 2.5 DRUGS_MUSCLE Refers to a muscle relaxant Subject: [Wikineurotic] Wiki page wavelessonscontinuedp2 changed by Eimi X-BeenThere: wikineurotic@lojban.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: webmaster@lojban.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: wikineurotic-bounces@lojban.org VGhlIHBhZ2Ugd2F2ZWxlc3NvbnNjb250aW51ZWRwMiB3YXMgY2hhbmdlZCBieSBFaW1pIGF0IDEw OjU1IENEVAoKWW91IGNhbiB2aWV3IHRoZSBwYWdlIGJ5IGZvbGxvd2luZyB0aGlzIGxpbms6CiAK aHR0cDovL3d3dy5sb2piYW4ub3JnL3Rpa2kvd2F2ZWxlc3NvbnNjb250aW51ZWRwMgoKWW91IGNh biB2aWV3IGEgZGlmZiBiYWNrIHRvIHRoZSBwcmV2aW91cyB2ZXJzaW9uIGJ5IGZvbGxvd2luZyB0 aGlzIGxpbms6IApodHRwOi8vd3d3LmxvamJhbi5vcmcvdGlraS90aWtpLXBhZ2VoaXN0b3J5LnBo cD9wYWdlPXdhdmVsZXNzb25zY29udGludWVkcDImY29tcGFyZT0xJm9sZHZlcj0yMiZuZXd2ZXI9 MjMKCgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgpUaGUgY2hhbmdlcyBpbiB0aGlzIHZlcnNpb24gZm9sbG93IGJlbG93LCBmb2xsb3dl ZCBhZnRlciBieSB0aGUgY3VycmVudCBmdWxsIHBhZ2UgdGV4dC4KKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCgorLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKwpAQCAtTGluZXM6 IDQzLTQ4IGNoYW5nZWQgdG8gK0xpbmVzOiA0My00OCBAQAorLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKwpBbnN3ZXI6IH5+Z3JleSxncmV5 OuKAnEkgc3VnZ2VzdCAoc29tZXRoaW5nIGFib3V0KSB5b3VyIGRvZy7igJ1+fgoKLSBTbyBmYXIg eW91J3ZlIGxlYXJuZWQgaG93IHRvIGNvbnZlcnQgYnJpZGkgdG8gc2VsYnJpLCBzZWxicmkgdG8g c3VtdGksIGFuZCBzZWxicmkgaW50byBicmlkaSwgc2luY2UgYWxsIHNlbGJyaSBieSB0aGVtc2Vs dmVzIGFyZSBhbHNvIGJyaWRpLiBZb3Ugb25seSBuZWVkIG9uZSBsYXN0IGZ1bmN0aW9uOiBjb252 ZXJ0IHN1bXRpIHRvIHNlbGJyaS4gVGhpcyBpcyBkb25lIHdpdGggdGhlIHdvcmQgJydtZScnLiBJ dCBhY2NlcHRzIGEgc3VtdGkgYW5kIGNvbnZlcnRzIGl0IGludG8gYSBzZWxicmkgd2l0aCB0aGUg cGxhY2Ugc3RydWN0dXJlIHgxIGlzIHNwZWNpZmljIHRvIHtzdW10aX0gaW4gcHJvcGVydHkvYXNw ZWN0IHgyLjxiciAvPl9fJydtZScnX186IEdlbmVyaWMgY29udmVydCBzdW10aSB0byBzZWxicmku IHgxIGlzIHNwZWNpZmljIHRvIFNVTVRJIGluIHByb3BlcnR5L2FzcGVjdCB4MgorIFNvIGZhciB5 b3UndmUgbGVhcm5lZCBob3cgdG8gY29udmVydCBicmlkaSB0byBzZWxicmksIHNlbGJyaSB0byBz dW10aSwgYW5kIHNlbGJyaSBpbnRvIGJyaWRpLCBzaW5jZSBhbGwgc2VsYnJpIGJ5IHRoZW1zZWx2 ZXMgYXJlIGFsc28gYnJpZGkuIFlvdSBvbmx5IG5lZWQgb25lIGxhc3QgZnVuY3Rpb246IGNvbnZl cnQgc3VtdGkgdG8gc2VsYnJpLiBUaGlzIGlzIGRvbmUgd2l0aCB0aGUgd29yZCAnJ21lJycuIEl0 IGFjY2VwdHMgYSBzdW10aSBhbmQgY29udmVydHMgaXQgaW50byBhIHNlbGJyaS48YnIgLz5fXycn bWUnJ19fOiBHZW5lcmljIGNvbnZlcnQgc3VtdGkgdG8gc2VsYnJpLiB4MSBpcy9hcmUgYW1vbmcg dGhlIHJlZmVyZW50cyBvZiBTVU1USQoKV2hlbiBzY3Jld2luZyBhIHNlbnRlbmNlIHVwLCBrbm93 aW5nIGhvdyB0byBjb3JyZWN0IHlvdXJzZWxmIGlzIGEgZ29vZCBpZGVhLiBUaGVyZSBhcmUgdGhy ZWUgd29yZHMgaW4gTG9qYmFuIHdoaWNoIHlvdSBjYW4gdXNlIHRvIGRlbGV0ZSB5b3VyIHByZXZp b3VzIHdvcmQocykKCgoKCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqClRoZSBuZXcgcGFnZSBjb250ZW50IGZvbGxvd3MgYmVsb3cuCioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq CgohTG9qYmFuIFdhdmUgTGVzc29ucyBDb250aW51ZWQgKHBhcnQgdHdvKToKCiEhIU1hZGUgYnkg bGEga2xha3Ugd2l0aCBoZWxwIGZyb20gdmFyaW91cyBsb2piYW5pc3RzLiBCYXNlZCBvbiB0aGUg d29yayBvZiBsYSAua3JpYmFjci4gU3ByaW5nIDIwMTMuCgoKClRoaXMgaXMgdGhlIHNlY29uZCBp bnN0YWxsbWVudCBvZiB0aGUgV2F2ZSBMZXNzb25zIENvbnRpbnVlZC4gSWYgeW91IGRpZG4ndCBj YXRjaCB0aGUgZmlyc3QgcGFydCwgb3Igd2FudCB0byBnbyBiYWNrIGZvciBzb21lIHJlYXNvbiwg anVzdCBjbGljayAoKHdhdmVsZXNzb25zY29udGludWVkfG9uIHRoZXNlIGZvdXIgd29yZHMuKSku IFlvdSBjYW4gYWxzbyBnbyB0byB0aGUgdGhpcmQgcGFydCBieSBjbGlja2luZyAoKHdhdmVsZXNz b25zY29udGludWVkcDJ8dGhpcyBsaW5rKSksIGlmIHlvdSBmZWVsIGxpa2UgZG9pbmcgdGhhdC4K CgoKISFMb2piYW4gTGVzc29ucyAtIExlc3NvbiBzZXZlbnRlZW4gKGN1dGUgYXNzb3J0ZWQgd29y ZHMpCgpBbmQgd2l0aCB0aGF0LCB0aGlyZCBjaGFwdGVyLCB5b3Uga25vdyBhIGxvdCBhYm91dCBM b2piYW4gc3VtdGkuIEFmdGVyIHN1Y2ggYSBsb25nIHRpbWUgb2Ygcmlnb3JvdXMgc3lzdGVtYXRp YyBsZWFybmluZywgd2hhdCBjb3VsZCBiZSBtb3JlIGZpdHRpbmcgdGhhdCB0aGlzIGxlc3NvbiB3 aGVyZSBJIHNwZWFrIGFib3V0IHNvbWUgd29yZHMgd2hpY2ggSSBjb3VsZCBub3QsIG9yIHdhbnRl ZCBub3QgdG8gZml0IGludG8gYW55IG90aGVyIGxlc3NvbnM/IFNvIGhlcmUgYXJlIGEgZmV3IHNt YWxsIGFuZCByZWFsbHkgdXNlZnVsIHdvcmRzOgoKCgpUaGUgZm9sbG93aW5nIGNtYXZvIGFyZSBh bGwgZWxsaXB0aWNhbCB3b3Jkcy4gWW91IHNob3VsZCBhbHJlYWR5IGJlIGZhbWlsaWFyIHdpdGgg dGhlIGZpcnN0LgoKX18nJ3pvJ2UnJ19fIC0gZWxsaXB0aWNhbCBzdW10aQoKX18nJ2NvJ2UnJ19f IC0gZWxsaXB0aWNhbCBzZWxicmkKCl9fJydkbydlJydfXyAtIGVsbGlwdGljYWwgc3VtdGNpdGEK Cl9fJydqdSdhJydfXyAtIGVsbGlwdGljYWwgZXZpZGVudGlhbAoKX18nJ2RvJ2knJ19fIC0gZWxs aXB0aWNhbCB1dHRlcmFuY2UgdmFyaWFibGUKCl9fJydnZSdlJydfXyAtIGVsbGlwdGljYWwgYXR0 aXR1ZGluYWwKCgoKQWxsIG9mIHRoZXNlIGFjdCBncmFtbWF0aWNhbGx5IGFzIGEgY21hdm8gb2Yg dGhlIGtpbmQgdGhleSByZXByZXNlbnQsIGJ1dCB0aGV5IGNvbnRhaW4gbm8gaW5mb3JtYXRpb24s IGFuZCBjYW4gYmUgcXVpdGUgaGFuZHkgd2hlbiB5b3UncmUgbGF6eSBhbmQgZG9uJ3QgbmVlZCB0 byBiZSBzcGVjaWZpYyBhbnl3YXkuIFRoZXJlIGFyZSwgaG93ZXZlciwgYSBmZXcgdGhpbmdzIHdo aWNoIG5lZWQgdG8gYmUgY2xlYXJlZCB1cDoKCgoKICAgICcnem8nZScnIGhhdmUgdG8gcmVmZXIg dG8gc29tZXRoaW5nIHdoaWNoIGlzIGNsYWltZWQgdG8gaGF2ZSBhIHZhbHVlLiDigJx6ZXJvIGNh cnPigJ0gb3Ig4oCcbm90aGluZ+KAnSwgZm9yIGluc3RhbmNlLCBoYXMgbm8gdmFsdWUsIGFuZCB0 aGVyZWZvcmUgY2Fubm90IGJlIHJlZmVycmVkIHRvIGJ5ICcnem8nZScnLiBUaGlzIGlzIGJlY2F1 c2UsIGlmIGl0IGNvdWxkIG1lYW4g4oCcbm90aGluZ+KAnSBieSAnJ3pvJ2UnJywgdGhlbiBhbnkg c2VsYnJpIGNvdWxkIGJlIGlkZW50aWNhbCB0byBpdHMgbmVnYXRpb24sIGlmIG9uZSBvZiB0aGUg ZWxpZGVkIHN1bXRpIHdlcmUgZmlsbGVkIHdpdGggYSAnJ3pvJ2UnJyB3aXRoIG5vIHZhbHVlLgoK ICAgICcnZ2UnZScnIGRvZXMgbm90IG1lYW4gdGhhdCB5b3UgZmVlbCBubyBlbW90aW9uLCBqdXN0 IHRoYXQgeW91IGZlZWwgbm90aGluZyBzcGVjaWFsIG9yIHdvcnRoIHRvIG1lbnRpb24gYXQgdGhl IG1vbWVudC4gSXQncyBzaW1pbGFyIHRvIOKAnEknbSBmaW5lLuKAnS4gJydnZSdlIHBlaScnIGFz ayBhYm91dCBhbiBlbGxpcHRpY2FsIGVtb3Rpb24gYW5kIGlzIGEgZ29vZCB0cmFuc2xhdGlvbiBm b3I6IOKAnEhvdyBhcmUgeW91IGZlZWxpbmc/4oCdLgoKICAgICcnY28nZScnIGlzIGhhbmR5IHdo ZW4gbmVlZGluZyBhIHNlbGJyaSBpbiBhIGNvbnN0cnVjdCBmb3IgZ3JhbW1hdGljYWwgcmVhc29u cywgbGlrZSBpbiB0aGUgZGVmaW5pdGlvbiBvZiAnJ3R1J2EnJyBpbiB0aGUgcHJldmlvdXMgbGVz c29uLgoKICAgICcnanUnYScnIGRvZXMgbm90IGNoYW5nZSB0aGUgdHJ1dGggdmFsdWUgb3Igc3Vi amVjdGl2ZSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBicmlkaSBvciBhbnl0aGluZyBsaWtlIHRoYXQu IEluIGZhY3QsIGl0J3MgbW9zdGx5IGRvZXMgbm90aGluZy4gSG93ZXZlciwgJydqdSdhIHBlaScn LCDigJxXaGF0IGlzIHlvdXIgYmFzaXMgZm9yIHNheWluZyB0aGF0P+KAnSBpcyBoYW5keS4KCiAg ICAnJ2RvJ2knJyBpcyByZWFsbHkgdXNlZnVsLiBBIGxvdCBvZiB0aW1lcyB3aGVuIHlvdSByZWZl ciB0byB1dHRlcmFuY2VzIG9yIGNvbnZlcnNhdGlvbnMgYnkgd29yZHMgbGlrZSDigJx0aGlz4oCd IG9yIOKAnHRoYXTigJ0sIHlvdSB3YW50ICcnZG8naScnLgoKICAgIElmIHlvdSBmaWxsIGluIG1v cmUgc3VtdGkgdGhhbiBhIHNlbGJyaSBoYXMgcGxhY2VzIGZvciwgdGhlIGxhc3Qgc3VtdGkgaGF2 ZSBpbXBsaWVkICcnZG8nZScnIHN1bXRjaXRhIGluIGZyb250IG9mIHRoZW0uCgoKCkZ1cnRoZXJt b3JlLCB0aGVyZSBpcyBhIHdvcmQsICcnemknbycnLCB0aGF0IHlvdSBjYW4gZmlsbCBhIHN1bXRp IHBsYWNlIHdpdGggdG8gZGVsZXRlIGl0IGZyb20gYW55IHNlbGJyaS4gJydsbyBtZWxiaSBiZSB6 aSdvJycsIGZvciBpbnN0YW5jZSwgaXMganVzdCDigJxTb21ldGhpbmcgYmVhdXRpZnVs4oCdLCBh bmQgZG9lcyBub3QgaW5jbHVkZSB0aGUgdXN1YWwgeDIgb2YgJydtZWxiaScnLCB3aGljaCBpcyB0 aGUgb2JzZXJ2ZXIgd2hvIGp1ZGdlcyBzb21ldGhpbmcgdG8gYmUgYmVhdXRpZnVsLiBUaHVzLCBp dCBjYW4gbWVhbiBzb21ldGhpbmcgbGlrZSDigJxPYmplY3RpdmVseSBiZWF1dGlmdWwu4oCdIEl0 IGRvZXMgbm90IHN0YXRlIHRoYXQgbm90aGluZyBmaWxscyB0aGUgc3VtdGkgcGxhY2Ugd2hpY2gg aXMgYmVpbmcgZGVsZXRlZCwganVzdCB0aGF0IHRoZSBzdW10aSBwbGFjZSBpcyBub3QgYmVpbmcg Y29uc2lkZXJlZCBpbiB0aGUgc2VsYnJpLiBVc2luZyAnJ3ppJ28nJyB3aXRoIGEgc3VtdGNpdGEg Z2l2ZXMgd2VpcmQgcmVzdWx0cy4gRm9ybWFsbHksIHRoZXkgc2hvdWxkIGNhbmNlbCBlYWNoIG90 aGVyIG91dC4gUHJhY3RpY2FsbHksIGl0IHdvdWxkIHByb2JhYmx5IGJlIHVuZGVyc3Rvb2QgYXMg YW4gZXhwbGljaXQgd2F5IG9mIHNheWluZyB0aGF0IHRoZSBzdW10Y2l0YSBkb2VzIG5vdCBhcHBs eSwgYXMgaW46ICcnbWkgZGFyeGkgZG8gbXUnaSB6aSdvJycgLSDigJxJIGhpdCB5b3UsIHdpdGgg b3Igd2l0aG91dCBtb3RpdmF0aW9uLuKAnQoKCgpUaGVuIHRoZXJlIGlzIHRoZSB3b3JkICcnamFp JycuIEl0J3Mgb25lIG9mIHRob3NlIGNvb2wsIHNtYWxsIHdvcmRzIHdoaWNoIGFyZSBoYXJkIHRv IGdyYXNwLCBidXQgZWFzeSB0byB3b3JrIHdpdGggb25jZSB5b3Uga25vdyBpdC4gSXQgaGFzIHR3 byBkaXN0aW5jdCwgYnV0IHNpbWlsYXIgZnVuY3Rpb25zLiBCb3RoIGhhdmUgc29tZXRoaW5nIHRv IGRvIHdpdGggY29udmVydGluZyB0aGUgc2VsYnJpLCBsaWtlICcnc2UnJyBkb2VzLgoKX18nJ2ph aScnX18gU2VsYnJpIGNvbnZlcnNpb246IENvbnZlcnRzIHN1bXRjaXRhIG9yIHVuc3BlY2lmaWVk IGFic3RyYWN0aW9uIHRvIHgxLiBVc2Ugd2l0aCAnJ2ZhaScnCgpfXycnZmFpJydfXyBNYXJrcyBz dW10aSBwbGFjZS4gV29ya3MgbGlrZSAnJ2ZhJycuIFRvIGJlIHVzZWQgd2l0aCAnJ2phaScnLgoK VGhlIGZpcnN0IGdyYW1tYXRpY2FsIGNvbnN0cnVjdGlvbiBpdCBjYW4gbWFrZSBpcyAiJydqYWkn JyB7c3VtdGNpdGF9IHtzZWxicml9Ii4gSXQgY2hhbmdlcyB0aGUgc3VtdGkgcGxhY2VzIHN1Y2gg dGhhdCB0aGUgc3VtdGkgcGxhY2Ugb2YgdGhlIHN1bXRjaXRhIGJlY29tZXMgdGhlIHNlbGJyaSdz IHgxLCBhbmQgdGhlIHNlbGJyaSdzIG9sZCB4MSBpcyByZW1vdmVkLCBhbmQgb25seSBhY2Nlc3Np YmxlIGJ5IHVzaW5nICcnZmFpJycsIHdoaWNoIHdvcmtzIGxpa2UgJydmYScnLiBZb3UgY2FuIHNl ZSBpdCB3aXRoIHRoaXMgZXhhbXBsZToKCl9fJydnYXUnJ19fIC0gc3VtdGNpdGEgKGZyb20gJydn YXNudScnKSDigJxicmlkaSBoYXMgYmVlbiBicm91Z2h0IGFib3V0IGJ5L3dpdGggYWN0aXZlIGFn ZW50IHtzdW10aX3igJ0KCicnZG8gamFpIGdhdSBqdW5kaSB0aSBmYWkgbWknJy4gLSDigJxZb3Ug YnJpbmcgYWJvdXQgYXR0ZW50aW9uIHRvIHRoaXMgYnkgbWXigJ0uIFRoZSBuZXcgc2VsYnJpLCAn J2phaSBnYXUganVuZGknJywgaGFzIHRoZSBwbGFjZSBzdHJ1Y3R1cmUgb2Yg4oCceDEgYnJpbmdz IGFib3V0IGF0dGVudGlvbiBwYWlkIHRvIHgy4oCdLiBUaGVzZSBhcmUgdGhlbiBmaWxsZWQgYnkg JydkbycnIGFuZCAnJ3RpJycuIFRoZSAnJ2ZhaScnIHRoZW4gbWFya3MgdGhlIHBsYWNlIGZvciB0 aGUgb2xkIHgxLCB0aGUgb25lIHdobyB3YXMgcGF5aW5nIGF0dGVudGlvbiwgYW5kIGl0IGlzIGZp bGxlZCB3aXRoICcnbWknJy4gVGhpcyB3b3JkIGNhbiBiZSB2ZXJ5IGNvbnZlbmllbnQgYW5kIGhh cyB0b25zIG9mIHVzZXMuIEEgZ29vZCBleGFtcGxlIGlzIGRlc2NyaXB0aXZlLWxpa2Ugc3VtdGku IE9uZSBjYW4sIGZvciBpbnN0YW5jZSwgcmVmZXIgdG8g4oCcdGhlIG1ldGhvZCBvZiB2b2xpdGlv bmFsIGFjdGlvbuKAnSBieSAnJ2xvIGphaSB0YSdpIHp1a3RlJycuCgpfXycndGEnaScnX186IHN1 bXRjaXRhIChmcm9tICcndGFkamknJykg4oCcQnJpZGkgaXMgZG9uZSB3aXRoIHRoZSBtZXRob2Qg b2Yge3N1bXRpfeKAnQoKQ2FuIHlvdSBkZWR1Y2Ugd2hhdCB0aGUgb3JkaW5hcnkgTG9qYmFuIHBo cmFzZSAnJ2RvIGphaSBnYXUgbW8nJyBtZWFucz8KCgoKQW5zd2VyOiB+fmdyZXksZ3JleTrigJxX aGF0IGFyZSB5b3UgZG9pbmc/4oCdfn4KCgoKVGhlIG90aGVyIGZ1bmN0aW9uIG9mICcnamFpJycg aXMgZWFzaWVyIHRvIGV4cGxhaW4uIEl0IHNpbXBseSBjb252ZXJ0cyB0aGUgc2VsYnJpIHN1Y2gg dGhhdCB0aGUgc3VtdGkgaW4gdGhlIHgxIGdldHMgYSAnJ3R1J2EnJyBpbiBmcm9udCBvZiBpdCAo JydrbydhIGphaSBicm9kYScnIF9fPV9fICcndHUnYSBrbydhIGJyb2RhJycpLiBJbiBvdGhlciB3 b3JkcywgaXQgY29udmVydHMgdGhlIHNlbGJyaSBpbiBhIHdheSBzdWNoIHRoYXQgaXQgYnVpbGRz IGFuIGVsbGlwdGljYWwgYWJzdHJhY3Rpb24gZnJvbSB0aGUgc3VtdGkgaW4gdGhlIHgxLCBhbmQg dGhlbiBmaWxscyB4MSB3aXRoIHRoZSBhYnN0cmFjdGlvbiBpbnN0ZWFkIG9mIHRoZSBhY3R1YWwg c3VtdGkuIEFnYWluLCB0aGUgb3JpZ2luYWwgc3VtdGkgcGxhY2UgaXMgYWNjZXNzaWJsZSBieSAn J2ZhaScnLgoKQSB2ZXJ5IGFjdGl2ZSBMb2piYW4gSVJDLXVzZXIgb2Z0ZW4gc2F5cyAnJ2xlIGdl cmt1IHBlIGRvIGphaSBzZSBzdGlkaSBtaScnLCB0byB1c2UgYSByYW5kb20gZXhhbXBsZSBvZiBh IHN1bXRpIGluIHgxLiBXaGF0J3MgaGUgc2F5PwoKX18nJ3N0aWRpJydfXyB4MSBpbnNwaXJlcy9z dWdnZXN0cyB4MiBpbi90byB4M+KAnQoKCgpBbnN3ZXI6IH5+Z3JleSxncmV5OuKAnEkgc3VnZ2Vz dCAoc29tZXRoaW5nIGFib3V0KSB5b3VyIGRvZy7igJ1+fgoKCgpTbyBmYXIgeW91J3ZlIGxlYXJu ZWQgaG93IHRvIGNvbnZlcnQgYnJpZGkgdG8gc2VsYnJpLCBzZWxicmkgdG8gc3VtdGksIGFuZCBz ZWxicmkgaW50byBicmlkaSwgc2luY2UgYWxsIHNlbGJyaSBieSB0aGVtc2VsdmVzIGFyZSBhbHNv IGJyaWRpLiBZb3Ugb25seSBuZWVkIG9uZSBsYXN0IGZ1bmN0aW9uOiBjb252ZXJ0IHN1bXRpIHRv IHNlbGJyaS4gVGhpcyBpcyBkb25lIHdpdGggdGhlIHdvcmQgJydtZScnLiBJdCBhY2NlcHRzIGEg c3VtdGkgYW5kIGNvbnZlcnRzIGl0IGludG8gYSBzZWxicmkuCgpfXycnbWUnJ19fOiBHZW5lcmlj IGNvbnZlcnQgc3VtdGkgdG8gc2VsYnJpLiB4MSBpcy9hcmUgYW1vbmcgdGhlIHJlZmVyZW50cyBv ZiBTVU1USQoKCgpXaGVuIHNjcmV3aW5nIGEgc2VudGVuY2UgdXAsIGtub3dpbmcgaG93IHRvIGNv cnJlY3QgeW91cnNlbGYgaXMgYSBnb29kIGlkZWEuIFRoZXJlIGFyZSB0aHJlZSB3b3JkcyBpbiBM b2piYW4gd2hpY2ggeW91IGNhbiB1c2UgdG8gZGVsZXRlIHlvdXIgcHJldmlvdXMgd29yZChzKQoK X18nJ3NpJydfXyAtIGRlbGV0aW9uOiBEZWxldGVzIGxhc3Qgd29yZCBvbmx5LgoKX18nJ3NhJydf XyAtIGRlbGV0aW9uOiBEZWxldGVzIGJhY2sgdW50aWwgbmV4dCBjbWF2byBzcG9rZW4uCgpfXycn c3UnJ19fIC0gZGVsZXRpb246IERlbGV0ZXMgZW50aXJlIGRpc2NvdXJzZS4KClRoZSBmdW5jdGlv biBvZiB0aGVzZSB3b3JkcyBhcmUgb2J2aW91czogVGhleSBkZWxldGUgd29yZHMgYXMgaWYgdGhl eSBoYXZlIG5ldmVyIGJlZW4gc3Bva2VuLiBUaGV5IGRvIG5vdCB3b3JrIGluc2lkZSBjZXJ0YWlu IHF1b3RlcyAoYWxsIHF1b3RlcyBleGNlcHQgJydsdS4ubGkndScnKSwgdGhvdWdoLCBhcyB0aGF0 IHdvdWxkIGxlYXZlIGl0IGltcG9zc2libGUgdG8gcXVvdGUgdGhlc2Ugd29yZHMuIFNldmVyYWwg JydzaScnIGluIGEgcm93IGRlbGV0ZXMgc2V2ZXJhbCB3b3Jkcy4KCgoKCgohIUxvamJhbiBMZXNz b25zIC0gTGVzc29uIGVpZ2h0ZWVuIChxdW90ZXMpCgpPbmUgb2YgdGhlIGtleSBkZXNpZ24gZmVh dHVyZXMgb2YgTG9qYmFuIGlzIHRoYXQgaXQncyBzdXBwb3NlZCB0byBiZSBhdWRpby12aXN1YWwg aXNvbW9ycGhpYywgbWVhbmluZyB0aGF0IGV2ZXJ5dGhpbmcgZXhwcmVzc2VkIGluIHRleHQgc2hv dWxkIGFsc28gYmUgZXhwcmVzc2VkIGluIHNwZWVjaCBhbmQgdmljZSB2ZXJzYS4gVGhlcmVmb3Jl LCB0aGVyZSBjYW5ub3QgYmUgYW55IHB1bmN0dWF0aW9uIHdoaWNoIGlzIG5vdCBwcm9ub3VuY2Vk LiBUaGlzIG1lYW5zIHRoYXQgTG9qYmFuIGhhcyBhIHdpZGUgcmFuZ2Ugb2Ygd29yZHMgdG8gcXVv dGUgb3RoZXIgd29yZHMuIEFsbCBMb2piYW4gcXVvdGVzIHRha2Ugc29tZSBpbnB1dCBvZiB0ZXh0 IGFuZCBjb252ZXJ0cyBpdCB0byBhIHN1bXRpLiBMZXQncyBiZWdpbiB3aXRoIHRoZSBtb3N0IHNp bXBsZToKCgoKX18nJ2x1JydfXyBRdW90ZSB3b3JkOiBCZWdpbiBxdW90ZSBvZiBncmFtbWF0aWNh bCBMb2piYW4gY29udGVudAoKX18nJ2xpJ3UnJ19fIFF1b3RlIHdvcmQ6IEVuZCBxdW90ZSBvZiBn cmFtbWF0aWNhbCBMb2piYW4gY29udGVudAoKCgpUaGUgdGV4dCBpbnNpZGUgdGhpcyBjb25zdHJ1 Y3QgbXVzdCBieSBpdHNlbGYgYmUgZ3JhbW1hdGljYWwuIEl0IGNhbiBxdW90ZSBhbGwgTG9qYmFu IHdvcmRzIHdpdGggc29tZSBmZXcgZXhjZXB0aW9ucywgbW9zdCBub3RhYmx5LCBvYnZpb3VzbHks ICcnbGkndScnLgoKCgpUcnkgdG8gdHJhbnNsYXRlIHRoZSBmb2xsb3dpbmcgc2VudGVuY2UuIFRh a2UgeW91ciB0aW1lLgoKJydtaSBzdGlkaSBsbyBkcmF0YSBiZSB0dSdhIGx1IGtvIGphaSBnYXUg bW8gbGkndScnCgpfXycnZHJhdGEnJ19fIHgxIGlzIGRpZmZlcmVudCBmcm9tIHgyIGJ5IHN0YW5k YXJkCgoKCkFuc3dlcjogfn5ncmV5LGdyZXk64oCcSSBzdWdnZXN0IHNvbWV0aGluZyBkaWZmZXJl bnQgdGhhbiBzb21ldGhpbmcgYWJvdXQg4oCca28gamFpIGdhdSBtb+KAnS7igJ1+fgoKCgpUaGVz ZSBxdW90ZSB3b3JkcyBjYW5ub3QgcXVvdGUgdW5ncmFtbWF0aWNhbCB0ZXh0LiBUaGlzIGlzIHNv bWV0aW1lcyB1c2VmdWwsIHdoZW4geW91IHdhbnQgdG8gb25seSBwaWNrIG91dCBwYXJ0IG9mIGEg c2VudGVuY2UsIGFzIGluOiDigJwgaXMg4oCcZ2knZeKAnSBhIExvamJhbiBzdW10Y2l0YT/igJ0K CgoKRm9yIHRoaXMsIHlvdSBuZWVkIHRoZXNlIHR3byBjbWF2bwoKX18nJ2xvJ3UnJ19fIFF1b3Rl IHdvcmQ6IEJlZ2luIHF1b3RlIG9mIHVuZ3JhbW1hdGljYWwgYnV0IExvamJhbiBjb250ZW50Cgpf XycnbGUndScnX18gUXVvdGUgd29yZDogRW5kIHF1b3RlIG9mIHVuZ3JhbW1hdGljYWwgYnV0IExv amJhbiBjb250ZW50CgoKClRoZSB0ZXh0IGluc2lkZSBtdXN0IGJlIExvamJhbiB3b3JkcywgYnV0 IG5lZWQgbm90IGJlIGdyYW1tYXRpY2FsLiBUcnkgdG8gdHJhbnNsYXRlIHRoZSBhYm92ZSBleGFt cGxlICh0aGUgb25lIHdpdGggJydnaSdlJycpIGludG8gTG9qYmFuCgoKCkFuc3dlcjogfn5ncmV5 LGdyZXk6Jyd4dSBsbyd1IGdpJ2UgbGUndSBsb2pibyBzdW10Y2l0YScnfn4KCgoKVGhpcyBxdW90 ZSBjYW4gYmUgdXNlZCB0byBxdW90ZSBhbGwgTG9qYmFuIHdvcmRzIGV4Y2VwdCAnJ2xlJ3UnJy4g SG93ZXZlciwgdGhpcyBpcyBub3QgZW5vdWdoLiBJZiB3ZSB3YW50IHRvIHRyYW5zbGF0ZSDigJxp cyDigJ1kbyBtb+KAnSBhIGNvcnJlY3QgdHJhbnNsYXRpb24gb2Yg4oCcV2hhdCdzIHVwP+KAneKA nSwgd2UgbWlnaHQgYmUgc2xpZ2h0bHkgd3JvbmcgYWJvdXQgd2hhdCB3ZSBoZXJlIHN0YXRlLCBz aW5jZSAnJ2RvIG1vJycgYWxzbyBjYW4gbWVhbiDigJxXaGF0IGFyZSB5b3U/4oCdLCBidXQgbGV0 J3Mgcm9sbCB3aXRoIGl0IGZvciBhIHNlY29uZC4gV2hhdCB3ZSBuZWVkIGhlcmUgaXMgdGhlIHdv cmQgJyd6b2knJy4KCgoKJyd6b2knJyBOZXh0IGNtYXZvIGlzIGJlZ2luIGFsbC1wdXJwb3NlIHF1 b3RlIGFuZCBjbG9zZSBhbGwtcHVycG9zZSBxdW90ZS4KCgoKV2hlbiB1c2luZyAnJ3pvaScnLCB5 b3UgcGljayBhbnkgbW9ycGhvbG9naWNhbGx5IGNvcnJlY3QgbG9qYmFuIHdvcmQgYXQgd2lsbCAo Y2FsbGVkIHRoZSBkZWxpbWl0ZXIpLCB3aGljaCB0aGVuIG9wZW5zIGEgcXVvdGUuIFRvIGNsb3Nl IGl0LCB1c2UgdGhhdCB3b3JkIGFnYWluLiBUaGlzIHdheSwgeW91IGNhbiBxdW90ZSBhbnl0aGlu ZyBleGNlcHQgdGhlIGRlbGltaXRlciwgd2hpY2ggc2hvdWxkbid0IGJlIGEgcHJvYmxlbSBiZWNh dXNlIHlvdSBjYW4gcGljayBpdCB5b3Vyc2VsZi4gVXN1YWxseSwgdGhlIHdvcmQgcGlja2VkIGlz IGVpdGhlciAnJ3pvaScnIGl0c2VsZiwgb3IgYSBsZXR0ZXIgd2hpY2ggc3RhbmRzIGZvciB0aGUg bGFuZ3VhZ2Ugd2hpY2ggdGhlIHF1b3RlIGlzIHdyaXR0ZW4gaW4uIEV4YW1wbGU6IOKAnEkgbGlr ZWQgVGhlIFBoYW50b20gb2YgdGhlIE9wZXJh4oCdIGlzICcnbWkgcHUgbmVsY2kgbGEnZSB6b2kg em9pLiBUaGUgUGhhbnRvbSBvZiB0aGUgT3BlcmEgLnpvaScnIE5vdGljZSB0d28gdGhpbmdzOiBG aXJzdGx5LCBJIG5lZWQgYSAnJ2xhJ2UnJywgc2luY2UgSSBkaWRuJ3QgbGlrZSB0aGUgcXVvdGUs IGJ1dCByYXRoZXIgd2hhdCBpdCByZWZlcnJlZCB0by4gU2Vjb25kbHksIGJldHdlZW4gdGhlIGNo b3NlbiBkZWxpbWl0ZXIgYW5kIHRoZSBxdW90ZSwgdGhlcmUgYXJlIHBhdXNlcywgb3B0aW9uYWxs eSByZXByZXNlbnRlZCBieSBhIGZ1bGwgc3RvcCBpbiB3cml0aW5nLiBUaGlzIHBhdXNlIGlzIG5l Y2Vzc2FyeSB0byBjb3JyZWN0bHkgaWRlbnRpZnkgdGhlIGRlbGltaXRlci4KCgoKVHJ5IHRvIHRy YW5zbGF0ZSB0aGUgYWJvdmUgc2VudGVuY2UgY29uY2VybmluZyDigJxXaGF0J3MgdXA/4oCdCgoK Cl9fJydkcmFuaScnX18geDEgaXMgY29ycmVjdC9wcm9wZXIgaW4gYXNwZWN0IHgyIGluIHNpdHVh dGlvbiB4MyBieSBzdGFuZGFyZCB4NAoKCgpBbnN3ZXI6IH5+Z3JleSxncmV5OicneHUgbHUgZG8g bW8gbGkndSBkcmFuaSB4ZSBmYW52YSB6b2kgZ3kuIFdoYXQncyB1cD8gLmd5JycuIEhlcmUgdGhl IGRlbGltaXRlciAnJ2d5JycgaXMgY2hvc2VuIGJlY2F1c2UgaXQncyBzaG9ydCBmb3IgJydnbGlj bycnLCBtZWFuaW5nICJFbmdsaXNoIn5+CgoKCkNsb3NlbHkgYW5hbG9nb3VzbHksIHRoZXJlIGlz ICcnbGEnbycnLiBJdCB3b3JrcyBleGFjdGx5IGxpa2UgJyd6b2knJywgYnV0IHR1cm5zIHRoZSBy ZXN1bHRpbmcgcXVvdGUgaW50byBhIG5hbWUuIEl0IGlzIG5lZWRlZCBiZWNhdXNlIG5vcm1hbGx5 LCBvbmx5IHNlbGJyaSBhbmQgY21ldmxhIGNhbiBiZSBuYW1lcywgbm90IHF1b3Rlcy4KCl9fJyds YSdvJydfXyBOZXh0IGNtYXZvIGlzIGJlZ2luIGFsbC1wdXJwb3NlIHF1b3RlIGFuZCBjbG9zZSBh bGwtcHVycG9zZSBxdW90ZSDigJMgdXNlIGFzIG5hbWUuCgoKCkxhc3Qgb2YgdGhlIG9mZmljaWFs IHF1b3RlIHdvcmRzLCB0aGVyZSBpcyAnJ3pvJycuICcnem8nJyBhbHdheXMgcXVvdGVzIHRoZSBu ZXh0IExvamJhbiB3b3JkLCBubyBtYXR0ZXIgd2hhdCBpdCBpcy4gSXQncyBwcmV0dHkgaGFuZHku CgonJ3pvJycgUXVvdGUgbmV4dCBMb2piYW4gd29yZCwgbm8gbWF0dGVyIHdoYXQuCgpFeGFtcGxl OiAnJ3pvIHpvIHpvJ28gcGxpeGF1JycgPSDigJwg4oCcem/igJ0gaXMgdXNlZnVsLCBoZWhl4oCd CgpfXycnem8nbycnX18gYXR0aXR1ZGluYWw6IGRpc2N1cnNpdmU6IEh1bW9yb3VzbHksIOKAnGtp ZGRpbmcgeW914oCdCgpfXycncGxpeGF1JydfXyB4MSBpcyB1c2VmdWwgZm9yIHgyIHRvIGRvIHB1 cnBvc2UgeDMKCgoKTG9qYmFuIHVzZXJzIGhhdmUgZm91bmQgaXQgdXNlZnVsIHRvIHN1cHBsZW1l bnQgd2l0aCBmb3VyIGFkZGl0aW9uYWwgcXVvdGUgd29yZHMuIFRoZXkgYXJlIGFsbCBleHBlcmlt ZW50YWwsIGFuZCB0aGUgZm9ybWFsIGdyYW1tYXIgZG9lcyBub3Qgc3VwcG9ydCBpdC4gTm9uZXRo ZWxlc3MsIHRoZXkgYXJlIHVzZWQgb2Z0ZW4sIGFuZCBpdCdzIGdvb2QgdG8gYmUgYWJsZSB0byBy ZWNvZ25pemUgdGhlbS4gVGhlIG1vc3QgdXNlZCBpczoKCgoKX18nJ3pvJ29pJydfXyBRdW90ZSBu ZXh0IHdvcmQgb25seS4gTmV4dCB3b3JkIGlzIGlkZW50aWZpZWQgYnkgcGF1c2VzIGluIHNwZWVj aCBvciB3aGl0ZXNwYWNlIGluIHdyaXRpbmc6CgoKCkV4YW1wbGU6ICcncmkgcHUgY3Vza3Ugem8n b2kgRG9oISAudSdpJycg4oCcSGEgaGEsIGhlIHNhaWQg4oCcRG9oIeKAnSDigJwKCgoKSXQncyB2 ZXJ5IGVhc3kgdG8gdXNlLiBBZ2Fpbiwgbm90ZSB0aGF0IGFsbCBncmFtbWFyIGJvdHMgd2lsbCBj b25zaWRlciB0aGUgc2VudGVuY2Ugbm90IGdyYW1tYXRpY2FsLCBiZWNhdXNlIHRoZXNlIHdvcmRz IGRvIG5vdCBleGlzdCBpbiB0aGUgZm9ybWFsIGdyYW1tYXIuCgoKCkFuYWxvZ291cyB0byAnJ3pv J29pJycgYW5kICcnbGEnbycnLCB0aGVyZSBpcyBhbHNvIHRoZSB3b3JkICcnbGEnb2knJywgd2hp Y2ggd29ya3MganVzdCBsaWtlICcnem8nb2knJywgYnV0IHRyZWF0cyB0aGUgcXVvdGUgYXMgYSBu YW1lOgoKX18nJ2xhJ29pJydfXyBRdW90ZSBuZXh0IHdvcmQgb25seSwgdXNlIGFzIG5hbWUuIE5l eHQgd29yZCBpcyBpZGVudGlmaWVkIGJ5IHBhdXNlcyBpbiBzcGVlY2ggb3Igd2hpdGVzcGFjZSBp biB3cml0aW5nOgoKCgpIb3cgd291bGQgeW91IHNheTog4oCcTXkgRW5nbGlzaCBuYW1lIGlzIOKA nFNhZmnigJ3igJ0/CgpfXycnZ2xpY28nJ19fIHgxIGlzIEVuZ2xpc2gvcGVydGFpbnMgdG8gRW5n bGlzaCBjdWx0dXJlIGluIGFzcGVjdCB4MgoKX18nJ2NtZW5lJydfXyB4MSBpcyB0aGUgbmFtZSBv ZiB4MiBhcyB1c2VkIGJ5IHgzCgoKCkFuc3dlcjogfn5ncmV5LGdyZXk6JydtaSBnbGljbyBzZSBj bWVuZSBsYSdvaSBTYWZpJycuIE5vdGljZSB0aGUgbmVjZXNzYXJ5IHNlLiBXZSBkb24ndCB3aGF0 IHRvIHNheSB0aGF0IHdlJ3JlIGEgbmFtZSF+fgoKCgpUaGlyZGx5LCAnJ3JhJ29pJycgcXVvdGVz IHRoZSBuZXh0IHJhZnNpLiBTaW5jZSByYWZzaSBhcmUgbm90IHdvcmRzLCB0aGV5IHdvdWxkIHVz dWFsbHkgaGF2ZSB0byBiZSBxdW90ZWQgYnkgJyd6b2knJy4gRnVydGhlcm1vcmUsIHNldmVyYWwg cmFmc2kgYXJlIGFsc28gY21hdm8uIFRvIGF2b2lkIGNvbmZ1c2lvbiBvZiB3aGljaCBpcyBtZWFu dCwgJydyYSdvaScnIGFsd2F5cyByZWZlciB0byBhIHJhZnNpLCBhbmQgaXMgd3JvbmcgaW4gZnJv bnQgb2YgYW55IHRleHQgc3RyaW5nIHdoaWNoIGFyZSBub3QgcmFmc2kuCgoKCldoYXQgZG9lcyAn J3JhJ29pIHp1J2UgcmFmc2kgem8genVrdGUgLmlrdSdpIHpvJ29pIHp1J2Ugc3VtdGNpdGEnJyBt ZWFuPwoKX18nJ2t1J2knJ19fIGF0dGl0dWRpbmFsOiBkaXNjdXJzaXZlOiBIb3dldmVyIC8gdGhv dWdoIChjb250cmFzdHMgdG8gc29tZXRoaW5nIHByZXZpb3VzbHkgc2FpZCkKCl9fJydyYWZzaScn X18geDEgYW4gYWZmaXggZm9yIHdvcmQvY29uY2VwdCB4MiB3aXRoIHByb3BlcnRpZXMvb2YgZm9y bSB4MyBpbiBsYW5ndWFnZSB4NAoKCgpBbnN3ZXI6IH5+Z3JleSxncmV5OuKAnFRoZSByYWZzaSDi gJx6dSdl4oCdIGlzIGEgcmFmc2kgZm9yIOKAnHp1a3Rl4oCdLiBCdXQg4oCcenUnZeKAnSBpcyBh IHN1bXRjaXRh4oCdfn4KCgoKQW5kIGZpbmFsbHkgdGhlIHVzZWZ1bCB3b3JkICcnbWEnb2knJy4g JydtYSdvaScnIHF1b3RlcyBhbnkgY21hdm8sIGJ1dCB0cmVhdHMgdGhlIHF1b3RlIGFzIGEgbmFt ZSBmb3IgdGhlIHdvcmQgY2xhc3MgKHNlbG1hJ28pIHRvIHdoaWNoIHRoYXQgd29yZCBiZWxvbmdz LiBTbywgZm9yIGluc3RhbmNlLCBiYSdvIGJlbG9uZ3MgdG8gdGhlIHdvcmRjbGFzcyBjYWxsZWQg WkFoTywgc28gJydtYSdvaSBiYSdvJycgaXMgdW5vZmZpY2lhbCBMb2piYW4gZm9yIOKAnFphaE/i gJ0KCgoKVHJ5IGl0IG91dC4gU2F5IHRoYXQgJydwdScnIGFuZCAnJ2JhJycgYXJlIGluIHRoZSBz YW1lIHNlbG1hJ28hCgpfXycnY21hdm8nJ19fIHgxIGlzIGEgZ3JhbW1hdGljYWwgd29yZCBvZiBj bGFzcyB4MiBpbiBsYW5ndWFnZSB4MwoKCgooT25lIHBvc3NpYmxlKSBBbnN3ZXI6ICB+fmdyZXks Z3JleTonJ3pvIHB1IGNtYXZvIG1hJ29pIGJhJyd+fgoKCgoKCiEhTG9qYmFuIExlc3NvbnMgLSBM ZXNzb24gbmluZXRlZW4gKG51bWJlcnMpCgpXaGVuIGxlYXJuaW5nIGEgbGFuZ3VhZ2UsIG9uZSBv ZiB0aGUgdGhpbmdzIHdoaWNoIGFyZSB1c3VhbGx5IHRhdWdodCB2ZXJ5IGVhcmx5IG9uIGlzIGhv dyB0byBjb3VudC4gVGhpcyByZWFsbHkgbWFrZXMgbGl0dGxlIHNlbnNlLCBiZWNhdXNlIGl0J3Mg bm90IG5lY2Vzc2FyeSB0byBrbm93IG51bWJlcnMgaWYgeW91IGRvbid0IGtub3cgaG93IHRvIHNw ZWFrIGFib3V0IHRob3NlIHRoaW5ncyB0byB3aGljaCB0aGV5IGFwcGx5LiBUaGlzIGlzIHBhcnRs eSB0aGUgcmVhc29uIHdoeSBJIGhhdmUgbGVmdCBpdCBmb3IgbGVzc29uIG51bWJlciBuaW5ldGVl bi4gVGhlIG90aGVyIHJlYXNvbiBpcyB0aGF0IHdoaWxlIHRoZSBudW1iZXJzIHRoZW1zZWx2ZXMg YXJlIGVhc3kgdG8gbGVhcm4sIGhvdyB0aGV5IGFwcGx5IHRvIHN1bXRpIGNhbiBnZXQgdmVyeSBj b25mdXNpbmcgaW5kZWVkLiBUaGF0LCBob3dldmVyLCB3ZSB3aWxsIHNhdmUgZm9yIGEgbGF0ZXIg bGVzc29uLgoKQmVmb3JlIGxlYXJuaW5nIHRoZSB3b3JkcyB0aGVtc2VsdmVzLCB5b3Ugc2hvdWxk IGtub3cgdGhhdCBudW1iZXJzIGRvIG5vdCBoYXZlIGFueSBpbnRlcm5hbCBncmFtbWFyLiBUaGlz IG1lYW5zIHRoYXQgYW55IHJvdyBvZiBudW1iZXIgd29yZHMgKGhlbmNlZm9ydGggcmVmZXJyZWQg dG8gYXMgYSAibnVtYmVyIHN0cmluZyIpIGFyZSB0cmVhdGVkIGlkZW50aWNhbGx5IHRvIGFueSBv dGhlciBudW1iZXIgc3RyaW5nIHRvIHRoZSBMb2piYW4gZ3JhbW1hciwgZXZlbiBpZiB0aGUgc3Ry aW5nIG1ha2VzIG5vIHNlbnNlLiBUaGVyZWZvcmUsIG9uZSBjYW4gbmV2ZXIgYW5zd2VyIHVuYW1i aWd1b3VzbHkgd2hldGhlciBhIG51bWJlciBjb25zdHJ1Y3QgbWFrZXMgc2Vuc2Ugb3Igbm90LiBU aGVyZSBhcmUsIGhvd2V2ZXIsIGludGVuZGVkIHdheXMgb2YgdXNpbmcgdGhlIG51bWJlciB3b3Jk cywgYW5kIGNvbmZ1c2lvbiB3aWxsIHByb2JhYmx5IHJlc3VsdCBpZiB5b3UgZGV2aWF0ZSBmcm9t IHRoZSBzdGFuZGFyZC4KCkxlYXJuaW5nIGFsbCB0aGUgbnVtYmVyIHdvcmRzIG9mIExvamJhbiBh cmUgd2F5IGJleW9uZCB0aGUgc2NvcGUgb2YgdGhpcyBsZXNzb24sIHNvIHlvdSB3aWxsIG9ubHkg YmUgaW50cm9kdWNlZCB0byB3aGF0IGlzIG5vcm1hbGx5IHVzZWQgaW4gdGV4dC4gVGhlIHdpZGUg cmFuZ2Ugb2YgTG9qYmFuIG1hdGhlbWF0aWNhbCBjbWF2byBhcmUgY2FsbGVkICcnbWVrc28nJyAo TG9qYmFuIGZvciAibWF0aGVtYXRpY2FsIGV4cHJlc3Npb24iKSwgYW5kIGlzIHdpZGVseSBkaXNy ZWdhcmRlZCBiZWNhdXNlIG9mIGl0cyBjb21wbGV4aXR5IGFuZCBxdWVzdGlvbmFibGUgYWR2YW50 YWdlIG92ZXIgc28tY2FsbGVkIGJyaWRpIG1hdGguCgpMZXQncyBiZWdpbiB3aXRoIHRoZSBvcmRp bmFyeSBMb2piYW4gbnVtYmVycywgZnJvbSB6ZXJvIHRvIG5pbmU6Cgp8fHplcm98b25lfHR3b3x0 aHJlZXxmb3VyfGZpdmV8c2l4fHNldmVufGVpZ2h0fG5pbmUKCm5vfHBhfHJlfGNpfHZvfG11fHhh fHplfGJpfHNvfHwKCk5vdGljZSBob3cgdGhlIHZvd2VscyBhcmUgYWx0ZXJuYXRpbmcgKHdpdGgg dGhlIGV4Y2VwdGlvbiBvZiAnJ25vJycpLCBhbmQgaG93IG5vIGNvbnNvbmFudCBpcyB1c2VkIGZv ciB0d28gZGlnaXRzLgoKSW4gb3JkZXIgdG8gZXhwcmVzcyBudW1iZXJzIGhpZ2hlciB0aGFuIG5p bmUsIHRoZSBudW1iZXJzIGFyZSBqdXN0IHN0cnVuZyB0b2dldGhlcjoKCicndm8gbXUgY2knJyDi gJMgZm91ciBodW5kcmVkIGFuZCBmaWZ0eSB0aHJlZSAoNDUzKQoKJydwYSBubyBubyBubyBubycn IHRlbiB0aG91c2FuZCAoMTAgMDAwKQoKVGhlcmUgaXMgYWxzbyBhIOKAnHF1ZXN0aW9uLWRpZ2l0 4oCdLCB3aGljaCBpcyB1c2VkIGxpa2Ugb3RoZXIgZmlsbC1pbi10aGUtYmxhbmsgcXVlc3Rpb24g d29yZHMuIEl0J3MgJyd4bycnLiBUaGUgYW5zd2VyIHRvIHN1Y2ggYSBxdWVzdGlvbiBtYXkgYmUg anVzdCB0aGUgcmVsZXZhbnQgZGlnaXQocykgYnkgaXRzZWxmLCBvciB0aGV5IGNhbiBiZSBudW1l cmljYWwgY29uc3RydWN0cywgYXMgc2hvd24gbGF0ZXIuCgonJ2NpIHhvIHhvIHhvJycg4oCTICJU aHJlZSB0aG91c2FuZCBhbmQgaG93IG1hbnk/IiAoMz8/PykKCl9fJyd4bycnX18gcXVlc3Rpb24g ZGlnaXQg4oCTIHVzZSBsaWtlIGFueSBvdGhlciBkaWdpdCB0byBhc2sgZm9yIHRoZSBjb3JyZWN0 IGRpZ2l0LgoKVGhlIGV4cGVyaW1lbnRhbCB3b3JkICcneG8nZScnIGlzIHNvbWV0aW1lcyB1c2Vk IHRvIG1lYW4gYW4gdW5zcGVjaWZpZWQsIGVsbGlwdGljYWwgZGlnaXQuIEl0cyBkZWZpbml0aW9u IGlzIG5vdCBvZmZpY2lhbCwgdGhvdWdoLgoKJydjaSB4bydlIHhvJ2UgeG8nZScnIOKAkyBUaHJl ZSB0aG91c2FuZCBhbmQgc29tZXRoaW5nCgpfXycneG8nZScnX18gZWxsaXB0aWNhbCBkaWdpdC4K ClNpbmNlIGFsbCBudW1iZXIgc3RyaW5ncyBhcmUgdHJlYXRlZCBncmFtbWF0aWNhbGx5IHRoZSBz YW1lLCBvbmUgbWlnaHQgYWxzbyBhbnN3ZXIgc2V2ZXJhbCBkaWdpdHMgdG8gb25lICcneG8nZScn CgoKCkZ1cnRoZXJtb3JlLCB0aGVyZSBpcyBhbHNvIGEgc2V0IG9mIGhleGFkZWNpbWFsIGRpZ2l0 cyBBIHRocm91Z2ggRi4gQnkgZGVmYXVsdCwgTG9qYmFuIG9wZXJhdGVzIGluIGJhc2UgMTAsIGJ1 dCB3aGVuIHVzaW5nIGhleGFkZWNpbWFsIGRpZ2l0cywgaXQgY2FuIGJlIHNhZmVseSBhc3N1bWVk IHRoYXQgeW91IHVzZSBiYXNlIHNpeHRlZW46Cgp8fGRhdXxmZWl8Z2FpfGphdXxyZWl8eGVpIHx2 YWl8CgoxMChBKXwxMShCKXwxMihDKXwxMyhEKXwxNChFKXwxNChFKXwxNShGKXx8CgpZZXMsIEkg a25vdyB0aGVyZSBhcmUgdHdvIHdvcmRzIGZvciBFLiBUaGUgb2ZmaWNpYWwgb25lIGlzICcncmVp JycgKGFsbCB0aHJlZS1sZXR0ZXIgY21hdm8gYmVnaW5uaW5nIHdpdGggeCBpcyBleHBlcmltZW50 YWwpLiAnJ3hlaScnIHdhcyBpbnZlbnRlZCB0byBhdm9pZCBjb25mdXNpb24gd2l0aCAnJ3JlJycu CgpUaGUgYmFzZSBjYW4gYmUgZXhwbGljaXRseSBzdGF0ZWQgdXNpbmcgJydqdSd1Jyc6IEFueSBu dW1iZXIgYmVmb3JlICcnanUndScnIHRoZSBudW1iZXIgYmVpbmcgc3Bva2VuIG9mLCBhbnkgbnVt YmVyIGFmdGVyIGlzIHRoZSBiYXNlIG9mIHRoZSBudW1iZXI6CgonJ2RhdSBzbyBmZWkgbm8ganUn dSBwYSByZScnIOKAkyBBOUIwIGluIGJhc2UgMTIgKG5vdGljZSBoZXJlIHRoYXQgYmFzZSAxMiBp cyBhbHdheXMgaW4gZGVjaW1hbC4gSXQgaXMgcG9zc2libGUgdG8gcGVybWFuZW50bHkgY2hhbmdl IHRoZSBiYXNlIHlvdSBzcGVhayBpbiwgYnV0IHNpbmNlIGl0IGhhcyBuZXZlciBiZWVuIHVzZWQg aW4gcHJhY3RpY2UsIGl0IGhhcyBub3QgYmVlbiBzdGFuZGFyZGl6ZWQgaG93IG9uZSBzaG91bGQg ZG8gaXQpCgpGcmFjdGlvbnMgYXJlIGFsc28gdXNlZnVsIHRvIGxlYXJuIGhvdyB0byBleHByZXNz LiBUaGV5IGFyZSB1c3VhbGx5IGV4cHJlc3NlZCB2aWEgYSBkZWNpbWFsIHBvaW50LCAnJ3BpJycu CgpfXycncGknJ19fIERlY2ltYWwgcG9pbnQgKG9yIHBvaW50IGluIHdoaWNoZXZlciBiYXNlIHlv dSBhcmUgdGFsa2luZyBpbikKCicncGEgcmUgcGkgcmUgbXUnJyDigJMgdHdlbHZlIHBvaW50IHR3 byBmaXZlICgxMi4yNSkuIAoKTGlrZSBpbiBtYXRoZW1hdGljcywgd2hlbiBubyBudW1iZXIgc3Ry aW5nIGlzIHBsYWNlZCBiZWZvcmUgb3IgYWZ0ZXIgJydwaScnLCB6ZXJvIGlzIGFzc3VtZWQuIAoK UmVsYXRlZCB0byB0aGlzLCB0aGUgbnVtYmVyIHNlcGFyYXRvciAnJ3BpJ2UnJyBpcyB1c2VkIHRv IHNlcGFyYXRlIG51bWJlcnMsIGVpdGhlciB0byBzZXBhcmF0ZSBkaWdpdHMgd2hlbiBzcGVha2lu ZyBpbiBhIGJhc2UgbGFyZ2VyIHRoYW4gc2l4dGVlbiwgb3Igd2hlbiBhIGRlY2ltYWwgcG9pbnQg aXMgbm90IGFwcGxpY2FibGUsIGZvciBpbnN0YW5jZSwgd2hlbiB0YWxraW5nIGFib3V0IHRpbWUg aW4gaG91cnMsIG1pbnV0ZXMsIHNlY29uZHM6CgonJ3BhIHNvIHBpJ2UgcmUgbXUgcGknZSBubyBq dSd1IHJlIHplJycg4oCTIE5pbmV0ZWVuLCB0d2VudHktZml2ZSwgemVybyBpbiBiYXNlIDI3IChK UDAgYmFzZSAyNykKCicncmUgcmUgcGknZSB2byBiaScnIOKAkyB0d2VudHktdHdvLCBmb3VydHkg ZWlnaHQgKDIyOjQ4KQoKCgpUaGVyZSBpcyBhbHNvIGEgcmFuZ2Ugb2YgbnVtYmVyIHdvcmRzIHdo aWNoIGFyZSBub3QgbWF0aGVtYXRpY2FsbHkgZXhhY3QgYnV0IHJhdGhlciBzdWJqZWN0aXZlIG9y IHJlbGF0aXZlLiBUaGUgYmVoYXZpb3JzIG9mIHRoZXNlIHdvcmRzIGFyZSBhbG1vc3QgZXhhY3Rs eSBsaWtlIHRoZSBiZWhhdmlvciBvZiBkaWdpdHMsIGV4Y2VwdCB0aGV5IGNhbm5vdCBiZSBjb21i aW5lZCB0byBtYWtlIGJpZ2dlciBudW1iZXJzIHRoZSB3YXkgZGlnaXRzIGNhbjoKCnx8IHJvfHNv J2F8c28nZXxzbydpfHNvJ298c28ndXwKCmFsbHxhbG1vc3QgYWxsfG1vc3R8bWFueXxzb21lfGZl d3x8CgpXaGVuIGNvbWJpbmVkIHdpdGggYW55IG9mIHRoZSBkaWdpdHMsIHRoZXNlIHdvcmRzIGFy ZSBhc3N1bWVkIHRvIGdpdmUgYSBzZWNvbmQgdmVyZGljdCBhYm91dCB0aGUgc2l6ZSBvZiB0aGUg bnVtYmVyOgoKJydtdSBiaSBzbydpIHNhaScnIOKAk0ZpZnR5IGVpZ2h0LCB3aGljaCBpcyByZWFs bHkgbWFueS4KClRoZXkgc2hvdWxkIHRoZXJlZm9yZSBub3QgYmUgcGxhY2VkIGluIHRoZSBtaWRk bGUgb2YgYSBudW1iZXIgc3RyaW5nLiBXaGVuIHBsYWNlZCBhZnRlciAnJ3BpJycsIHRoZXkgYXJl IGFzc3VtZWQgdG8gY29udmV5IHRoZSBzaXplIG9mIGEgZnJhY3Rpb246CgonJ3BpIHNvJ3UnJyDi gJMgYSBzbWFsbCBwYXJ0IG9mIGl0CgonJ3BpIHNvJ28nJyDigJMgc29tZSBvZiBpdCAKCicncGkg c28naScnIOKAkyBhIGxhcmdlIHBhcnQgb2YgaXQgCgonJ3BpIHNvJ2UnJyDigJMgbW9zdCBvZiBp dAoKJydwaSBzbydhJycg4oCTIGFsbW9zdCBhbGwgb2YgaXQKCgoKVGhlc2UgYXJlIHNvbWUgaGln aHRseSBzdWJqZWN0aXZlIG51bWJlcnMgLSB0aGV5IHdvcmsganVzdCBsaWtlIHRoZSBwcmV2aW91 cyBvbmVzLgoKfHxkdSdlfG1vJ2F8cmF1Cgp0b28gbWFueXx0b28gZmV3fGVub3VnaHx8CgpUaGUg Zm9sbG93aW5nIGZpdmUgYXJlIGNvbnRleHQtYmFzZWQgbnVtYmVycyDigJMgdGhlc2Ugd29yayBs aWtlIHRoZSBwcmV2aW91cyBvbmVzLCB3aXRoIHRoZSBleGNlcHRpb24gdGhhdCB0aGV5IHRha2Ug dGhlIG5leHQgbnVtYmVyIGluIG9yZGVyIHRvIGFzc2lnbiB0aGVtIG1lYW5pbmc6Cgp8fGRhJ2F8 c3UnZXxzdSdvfHphJ3V8bWUnaQoKYWxsIGV4Y2VwdCBuIHxBdCBtb3N0IG58QXQgbGVhc3Qgbnxt b3JlIHRoYW4gbnxsZXNzIHRoYW4gbnx8CgpJZiBubyBudW1iZXIgc3RyaW5nIGZvbGxvdyB0aGVt LCDigJxvbmXigJ0gaXMgYXNzdW1lZC4KCicnc28naSBwYSByZSBkYSdhIG11Jycg4oCTIE1hbnks IHdoaWNoIGlzIHR3ZWx2ZSwgd2hpY2ggaXMgYWxsIGJ1dCBmaXZlLgoKVGhlIHR3byBsYXN0IG51 bWJlciB3b3JkcyB5b3Ugc2hvdWxkIGtub3cgaGF2ZSBzbGlnaHRseSBtb3JlIGNvbXBsaWNhdGVk IGdyYW1tYXI6CgpfXycnamknaScnX18gLSBudW1iZXIgcm91bmRpbmcgb3IgbnVtYmVyIGFwcHJv eGltYXRpb24KCldoZW4gJydqaSdpJycgaXMgcGxhY2VkIGJlZm9yZSBhIG51bWJlciwgdGhlIGVu dGlyZSBudW1iZXIgaXMgYXBwcm94aW1hdGVkOgoKJydqaSdpIHplIHphJ3UgcmF1IGp1J28nJyDi gJMgIkFib3V0IHNldmVudHksIHdoaWNoIGlzIG1vcmUgdGhhbiBlbm91Z2gsIGNlcnRhaW5seeKA nQoKUGxhY2VkIGluIHRoZSBtaWRkbGUgb2YgdGhlIG51bWJlciwgb25seSB0aGUgZm9sbG93aW5n IGRpZ2l0cyBhcmUgbm9uLWV4YWN0LiBBdCB0aGUgZW5kIG9mIGEgbnVtYmVyLCBpdCBzaWduaWZp ZXMgdGhhdCB0aGUgbnVtYmVyIGhhcyBiZWVuIHJvdW5kZWQgb2ZmLiAKCl9fJydraSdvJydfXyBO dW1iZXIgY29tbWEgIC0gc2VwYXJhdGVzIGRpZ2l0cyB3aXRoaW4gb25lIHN0cmluZzsgVGhvdXNh bmRzLgoKSXQgaXMgbm90IGluY2lkZW50aWFsIHRoYXQgJydraSdvJycgc291bmRzIGxpa2Ug4oCc a2lsb+KAnS4gQXQgaXRzIHNpbXBsZXN0LCAnJ2tpJ28nJyBpcyB1c2VkIHRvIHNlcGFyYXRlIHRo cmVlIGRpZ2l0cyBhdCBhIHRpbWUgaW4gbGFyZ2UgbnVtYmVycywgbXVjaCBsaWtlIGNvbW1hcyBh cmUgdXNlZCBpbiBFbmdsaXNoOgoKJydwYSBraSdvIHNvIHNvIHNvIGtpJ28gYmkgeGEgemUnJyDi gJMgMSw5OTksODY3CgpJZiBsZXNzIHRoYW4gdGhyZWUgZGlnaXRzIGFyZSBwdXQgYmVmb3JlIGEg JydraSdvJycsIHRoZSBkaWdpdHMgYXJlIGFzc3VtZWQgdG8gYmUgdGhlIGxlYXN0IHNpZ25pZmlj YW50IG9uZXMsIGFuZCB6ZXJvcyBhcmUgYXNzdW1lZCB0byBmaWxsIGluIHRoZSByZXN0OgoKJyd2 byBraSdvIGNpIGJpIGtpJ28gcGEga2knbyBraSdvJycg4oCTIDQsMDM4LDAwMSwwMDAsMDAwCgon J2tpJ28nJyBpcyB1c2VkIHNpbWlsYXJseSBhZnRlciBhIGRlY2ltYWwgcG9pbnQuCgoKClRoYXQg Y29uY2x1ZGVzIHRoZSBjb21tb24gTG9qYmFuIG51bWJlcnMgdGhlbXNlbHZlcy4gSG93IHRoZXkg YXBwbHkgdG8gc3VtdGkgaXMgYSBzY2llbmNlIGluIGl0c2VsZiwgYW5kIHdlIGxlYXZlIHRoYXQg Zm9yIGxlc3NvbiB0d2VudHktdHdvLiBOb3cgd2UgZm9jdXMgb24gaG93IHRoZXNlIG51bWJlcnMg Y2FuIGJlIHVzZWQgaW4gYSBicmlkaS4KCkEgc3RyaW5nIG9mIG51bWJlciB3b3JkcyBieSB0aGVt c2VsdmVzIGFyZSBncmFtbWF0aWNhbCwgc2luY2UgdGhleSBjYW4gYWN0IGFzIGFuIGFuc3dlciB0 byBhICcneG8nJy10eXBlIG9mIHF1ZXN0aW9uLiBJbiB0aGlzIGNhc2UsIGhvd2V2ZXIsIHRoZXkg Y2Fubm90IGJlIGNvbnNpZGVyZWQgcGFydCBvZiBhbnkgYnJpZGkuIEluIGdlbmVyYWwsIGlmIG51 bWJlcnMgZmlsbCBwYXJ0IG9mIGEgYnJpZGksIHRoZXkgZG8gc28gaW4gb25lIG9mIHR3byBmb3Jt czogUHVyZSBudW1iZXJzIGFuZCBxdWFudGlmaWVycy4gV2Ugd2lsbCByZXR1cm4gdG8gcXVhbnRp ZmllcnMgaW4gYSBsYXRlciBsZXNzb24uIEZvciBub3csIHdlIHdpbGwgbG9vayBhdCBwdXJlIG51 bWJlcnMuCgpBIHB1cmUgbnVtYmVyIGlzIGFueSByb3cgb2YgbnVtYmVyIHdvcmRzIHByZWZpeGVk IHdpdGggJydsaScnLiBUaGlzIG1ha2VzIGEgc3VtdGkgZGlyZWN0bHkgZnJvbSB0aGUgbnVtYmVy LCBhbmQgcmVmZXJzIHRvIHRoZSBtYXRoZW1hdGljYWwgY29uY2VwdCBvZiwgZm9yIGluc3RhbmNl LCDigJx0aGUgbnVtYmVyIHNpeOKAnS4gSXRzIGZhJ29ybWEnbyBpcyAnJ2xvJ28nJwoKX18nJ2xp JydfXyBjb252ZXJ0IG51bWJlci9tZWtzby1leHByZXNzaW9uIHRvIHN1bXRpLgoKX18nJ2xvJ28n J19fIGZhJ29ybWEnbzogZW5kIGNvbnZlcnQgbnVtYmVyL21la3NvLWV4cHJlc3Npb24gdG8gc3Vt dGkuCgpUaGVzZSBwdXJlIHN1bXRpIGFyZSB1c3VhbGx5IHdoYXQgZmlsbHMgdGhlIHgyIG9mIGJy aXZsYSBzdWNoIGFzICcnbWl0cmUnJyBvciAnJ2NhY3JhJycKCl9fJydtaXRyZScnX18geDEgaXMg eDIgbWV0cmVzIGluIGRpbWVuc2lvbiB4MyBieSBzdGFuZGFyZCB4NAoKX18nJ2NhY3JhJydfXyB4 MSBpcyB4MiBob3VycyBpbiBkdXJhdGlvbiAoZGVmYXVsdCAxKSBieSBzdGFuZGFyZCB4MwoKCgpU cnkgdG8gdHJhbnNsYXRlIHRoZSBmb2xsb3dpbmc6CgonJ2xlIHRhIG51IGNpbmppa2NhIGN1IGNh Y3JhIGxpIGNpIGppJ2kgdSdpIG5haScnCgpBbnN3ZXI6IH5+Z3JleSxncmV5OiDigJ0qc2lnaCog VGhhdCBmbGlydGluZyBoYXMgYmVlbiBnb2luZyBvbiBmb3IgYXJvdW5kIHRocmVlIGhvdXJzLuKA nSB+fgoKSG93IGRvIHlvdSBjb3VudCB0byB0aHJlZSBpbiBMb2piYW4/CgpBbnN3ZXI6IH5+Z3Jl eSxncmV5OiAnJ2xpIHBhIGxpIHJlIGxpIGNpJycgfn4KCgoKVGhlIGxhc3QgdGhpbmcgd2UnbGwg Z28gdGhyb3VnaCBpbiB0aGlzIGxlc3NvbiBpcyB0aGUgd29yZHMgb2YgdGhlIHNlbG1hJ28gTUFJ IGFuZCB0aG9zZSBvZiBNT0kuCgpNQUkgb25seSBjb250YWlucyB0d28gd29yZHMsICcnbWFpJycg YW5kICcnbW8nbycnLiBCb3RoIG9mIHRoZXNlIGNvbnZlcnQgYW55IG51bWJlciBzdHJpbmcgdG8g YW4gb3JkaW5hbCwgd2hpY2ggaGFzIHRoZSBncmFtbWFyIG9mIGF0dGl0dWRpbmFscy4gT3JkaW5h bHMgYXJlIHVzZWQgdG8gZGl2aWRlIGEgdGV4dCBpbnRvIG51bWJlcmVkIHNlZ21lbnRzLCBsaWtl IGNoYXB0ZXJzIG9yIHBhcnRzLiBUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gJydtYWknJyBh bmQgJydtbydvJycgaXMgdGhhdCAnJ21vJ28nJyBxdWFudGlmaWVzIGxhcmdlciBzdWJkaXZpc2lv bnMgb2YgdGV4dCwgYWxsb3dpbmcgeW91IHRvIGRpdmlkZSBhIHRleHQgb24gdHdvIGRpZmZlcmVu dCBsZXZlbHMsIGZvciBleGFtcGxlIGVudW1lcmF0aW5nIGNoYXB0ZXJzIHdpdGggJydtbydvJycg YW5kIHNlY3Rpb25zIHdpdGggJydtYWknJy4gTm90aWNlIHRoYXQgdGhlc2UgYXMgd2VsbCBhcyB0 aGUgTU9JIHRha2UgYW55IG51bWJlciBzdHJpbmcgZGlyZWN0bHksIHdpdGhvdXQgYW55IG5lZWQg Zm9yICcnbGknJy4KCl9fJydtYWknJ19fOiBMb3dlci1vcmRlciBvcmRpbmFsIG1hcmtlcjogQ29u dmVydCBudW1iZXIgdG8gb3JkaW5hbAoKX18nJ21vJ28nJ19fOiBIaWdoZXIgb3JkZXIgb3JkaW5h bCBtYXJrZXI6IENvbnZlcnQgbnVtYmVyIHRvIG9yZGluYWwuCgoKClRoZXJlIGFyZSBmaXZlIE1P SSwgYW5kIHRoZXkgYWxsIGNvbnZlcnQgYW55IG51bWJlciBzdHJpbmcgdG8gc2VsYnJpLiBXZSds bCB0YWtlIHRoZW0gb25lIGF0IGEgdGltZToKCl9fJydtb2knJ19fIC0gQ29udmVydCBudW1iZXIg biB0byBzZWxicmk6IHgxIGlzIHRoZSBuJ3RoIG1lbWJlciBvZiBzZXQgeDIgYnkgb3JkZXIgeDMK CkV4YW1wbGU6ICcnbGEgbHV0Y2ltaW4gY2kgbW9pIGxvJ2kgbmlubXUgcGVuZG8gYmUgbWkgbGUg c3UndSBsbyBjbGFuaSB6bWFkdSBjdSBsaWRuZSBsbyBjbGFuaSBtbGVjYScnIOKAkyDigJxMdWkt Q2hpIE1pbiBpcyB0aGlyZCBhbW9uZyBteSBmZW1hbGUgZnJpZW5kcyBieSB0aGUgb3JkZXI6IFRo ZSBtb3JlIHRhbGwgb25lcyBwcmVjZWRlcyB0aGUgbGVzcyB0YWxsIG9uZXPigJ0uCgooV2hlbiBz cGVjaWZ5aW5nIGEgc2VxdWVuY2UsIGl0IGlzIHdpZGVseSB1bmRlcnN0b29kIHRoYXQgaWYgYSAn J2thJyctYWJzdHJhY3Rpb24gKGxlc3NvbiB0d2VudHktbmluZSkgaXMgdXNlZCBhcyBhIHN1bXRp LCB0aGUgbWVtYmVycyBvZiB0aGUgc2V0IGFyZSBvcmRlcmVkIGZyb20gdGhlIG9uZSB3aXRoIG1v c3Qgb2YgdGhlIHByb3BlcnR5IHRvIHRoZSBvbmUgd2l0aCBsZXNzIG9mIHRoZSBwcm9wZXJ0eSwg c28gdGhlIHgzIG9mIHRoZSBmb2xsb3dpbmcgc2VudGVuY2UgY291bGQgaGF2ZSBiZWVuIHNob3J0 ZW5lZCB0byAnJ2xvIGthIGNsYW5pJycpCgpfXycnbGlkbmUnJ19fIHgxIGlzIGJlZm9yZSB4MiBp biBzZXF1ZW5jZSB4MwoKX18nJ2NsYW5pJydfXyB4MSBpcyBsb25nIGluIGRpbWVuc2lvbiB4MiBi eSBzdGFuZGFyZCB4MwoKX18nJ3ptYWR1JydfXyB4MSBleGNlZWRzIHgyIGluIHByb3BlcnR5L2Fz cGVjdCB4MyBieSBhbW91bnQgeDQKCl9fJydtbGVjYScnX18geDEgaXMgbGVzcyB0aGFuL2lzIGxl c3MgY2hhcmFjdGVyaXplZCB0aGFuIHgyIGJ5IHByb3BlcnR5L2FzcGVjdCB4MyBieSBhbW91bnQg eDQKCgoKX18nJ21laScnX18gLSBDb252ZXJ0IG51bWJlciBuIHRvIHNlbGJyaTogeDEgaXMgdGhl IG1hc3MgZm9ybWVkIGZyb20gdGhlIHNldCB4Miwgd2hpY2ggaGFzIHRoZSBuIG1lbWJlcnMgb2Yg eDMKCk5vdGljZSBoZXJlIHRoYXQgeDMgYXJlIHN1cHBvc2VkIHRvIGJlIGluZGl2aWR1YWxzLCB4 MiBhIHNldCBhbmQgeDEgYSBtYXNzLgoKV2hhdCB3b3VsZCAnJ21pIGNpIG1laScnIG1lYW4/IAoK QW53ZXI6IH5+Z3JleSxncmV5OuKAnFdlIGFyZSBncm91cCBvZiB0aHJlZS7igJ1+fgoKCgpfXycn c2knZScnX18gLSBDb252ZXJ0IG51bWJlciBuIHRvIHNlbGJyaTogeDEgaXMgbiB0aW1lcyB4MgoK RXhhbXBsZTogJydsZSB2aSBwbGlzZSBjdSBtZSdpIHBpIHBhIHNpJ2UgbGVpIG1pIGNpZGphIGJl IHplJ2EgbG8gZGplZGknJyDigJMg4oCcVGhpcyBhcHBsZSBoZXJlIGlzIGxlc3MgdGhhbiBvbmUg dGVudGggb2YgbXkgZm9vZCBmb3Igb25lIGRheeKAnQoKUGxlYXNlIG5vdGUgdGhhdCB0aGUgZGVm aW5pdGlvbiBvZiAnJ3NpJ2UnJyB3aGVuIGxvb2tlZCB1cCB3aWxsIHRlbGwgeW91IHRoYXQgaXQn cyAieDEgaXMgYW4gbnRoIG9mIHgyIiwgaW5zdGVhZCBvZiAieDEgaXMgbiB0aW1lcyB4MiIuIEJ1 dCBwZW9wbGUgb25seSB1c2UgaXQgYXMgSSBoYXZlIGRlZmluZWQgaXQsIHNvIHRoZSBkZWZpbml0 aW9uIGluIHRoZSBkaWN0aW9uYXJpZXMgd2lsbCBwcm9iYWJseSBjaGFuZ2UuCgoKCl9fJydjdSdv JydfXyAtIENvbnZlcnQgbnVtYmVyIG4gdG8gc2VsYnJpOiB4MSBoYXMgbiBwcm9iYWJpbGl0eSBv ZiBvY2N1cnJpbmcgdW5kZXIgY29uZGl0aW9ucyB4MgoKRXhhbXBsZTogJydsbyBudSBtaSBtcm9i aSdvIGN1IHBhIGN1J28gbG8gbnUgbWkgZGVucGEgcmknJyDigJMg4oCdQW4gZXZlbnQgb2YgbWUg ZHlpbmcgaGFzIHByb2JhYmlsaXR5IDEgdW5kZXIgdGhlIGNvbmRpdGlvbnM6IEkgd2FpdCBmb3Ig aXTigJ0gPSDigJ1NZSBkeWluZyBpcyBjb21wbGV0ZWx5IGNlcnRhaW4gaWYgSSB3YWl0IGxvbmcg ZW5vdWdoLuKAnQoKX18nJ2RlbnBhJydfXyB4MSB3YWl0cyBmb3IgeDIsIGJlaW5nIGluIHN0YXRl IHgzIHVudGlsIHJlc3VtaW5nL2RvaW5nIHg0CgpfXycndmEnZScnX18gLSBDb252ZXJ0IG51bWJl ciBuIHRvIHNlbGJyaTogeDEgaXMgYXQgdGhlIG4ndGggcG9zaXRpb24gb24gdGhlIHNjYWxlIHgy CgpFeGFtcGxlOiAnJ2xpIHBhIG5vIGN1IHJvIHZhJ2UgbGEgdG9yaW5vbicnIOKAkyDigJwxMCBp cyB0aGUgaGlnaGVzdCB2YWx1ZSBvbiB0aGUgVG9yaW5vLXNjYWxl4oCdCgoKCgoKISFMb2piYW4g TGVzc29ucyAtIExlc3NvbiB0d2VudHkgKGJvLCBrZSwgY28gYW5kIG1vcmUgY3V0ZW5lc3MpCgpT YXkgeW91J3JlIGFuIGltcG9ydGFudCBBbWVyaWNhbiBidXllciBvZiBjb21wdXRlcnMuIEhvdyBk byB5b3UgZXhwcmVzcyB0aGlzPyBGb3IgY29uc3RydWN0cyBsaWtlIHRoZXNlLCB0YW5ydSBhcmUg aWRlYWw6ICcnbWkgdmFqbmkgbWVya28gc2thbWkgdGUgdmVjbnUnJy4gTm8gd2FpdCwgdGhhdCdz IG5vdCByaWdodC4gVGFucnUgYXJlIGdyb3VwZWQgZnJvbSBsZWZ0IHRvIHJpZ2h0LCBzbyB0aGlz IHRhbnJ1IGlzIHVuZGVyc3Rvb2Q6ICgoJyd2YWpuaSBtZXJrbycnKSAnJ3NrYW1pJycpICcndGUg dmVjbnUnJywgYSBidXllciBvZiBjb21wdXRlcnMgZm9yIGltcG9ydGFudCBBbWVyaWNhbnMuIFlv dSBjYW4ndCBjaGFuZ2UgdGhlIG9yZGVyIG9mIHRoZSBzZWxicmkgdG8gZ2V0IGEgdXNlZnVsIHRh bnJ1LiBOZWl0aGVyIGNhbiB0aGlzIGJlIHNvbHZlZCB3aXRoIGxvZ2ljYWwgY29ubmVjdGl2ZXMs IHdoaWNoIHlvdSB3aWxsIGZpcnN0IGxlYXJuIGFib3V0IGxhdGVyIGFueXdheS4gVGhlIG9ubHkg d2F5IHRvIG1ha2UgYSBmaXR0aW5nIHRhbnJ1IGlzIHRvIGZvcmNlIHRoZSBzZWxicmkgdG8gZ3Jv dXAgZGlmZmVyZW50bHkuCgoKClRvIGJpbmQgdHdvIHNlbGJyaSBjbG9zZSB0b2dldGhlciBpbiBh IHRhbnJ1LCB0aGUgd29yZCAnJ2JvJycgY2FuIGJlIHBsYWNlZCBiZXR3ZWVuIHRoZW06ICcnbWkg dmFqbmkgYm8gbWVya28gc2thbWkgYm8gdGUgdmVjbnUnJyBpcyByZWFkICcnbWknJyAoJyd2YWpu aSBibyBtZXJrbycnKSAoJydza2FtaSBibyB0ZSB2ZWNudScnKSwgd2hpY2ggaXMgdXNlZnVsIGlu IHRoaXMgY29udGV4dC4gSWYgYm8gaXMgcGxhY2VkIGJldHdlZW4gc2V2ZXJhbCBzZWxicmkgaW4g YSByb3csIHRoZXkgYXJlIGdyb3VwZWQgZnJvbSByaWdodCB0byBsZWZ0IGluc3RlYWQgb2YgdGhl IHVzdWFsIGxlZnQgdG8gcmlnaHQ6ICcnbWkgdmFqbmkgbWVya28gYm8gc2thbWkgYm8gdGUgdmVj bnUnJyBpcyByZWFkICcndmFqbmknJyAoJydtZXJrbyBibycnICgnJ3NrYW1pIGJvIHRlIHZlY251 JycpKSBhbiDigJxpbXBvcnRhbnQgKEFtZXJpY2FuIGNvbXB1dGVyLWJ1eWVyKeKAnSwgd2hpY2gg aXMgZXZlbiBtb3JlIGFwcHJvcHJpYXRlIGluIHRoZSBzaXR1YXRpb24uCgpfXycnYm8nJ19fIEJp bmRzIHR3byBzZWxicmkgdG9nZXRoZXIgc3Ryb25nbHkuCgoKCkhvdyB3b3VsZCB5b3Ugc2F5IOKA nFRoYXQncyBhIHRhc3R5IHllbGxvdyBhcHBsZeKAnT8KCl9fJydrdWt0ZScnX18geDEgaXMgdGFz dHkgZm9yIHgyCgoKCkFuc3dlcjogfn5ncmV5LGdyZXk6Jyd0aSBrdWt0ZSBwZWx4dSBibyBwbGlz ZScnfn4KCgoKV2hhdCBhYm91dCDigJ1UaGF0J3MgYSBiaWcsIHRhc3R5IHllbGxvdyBhcHBsZeKA nQoKCgpBbnN3ZXI6IH5+Z3JleSxncmV5OicndGkgYmFyZGEga3VrdGUgYm8gcGVseHUgYm8gcGxp c2UnJ35+CgoKCkFub3RoZXIgYXBwcm9hY2ggdG8gdGhpcyBpcyB0byB1c2UgdGhlIHdvcmRzICcn a2XigKZrZSdlJycuIFRoZXNlIGNhbiBiZSBjb25zaWRlcmVkIGFzIGVxdWl2YWxlbnQgdG8gdGhl IHBhcmVudGhlc2lzZXMgdXNlZCBpbiB0aGUgcGFyYWdyYXBoIGFib3ZlLiAnJ2tlJycgYmVnaW5z IHN0cm9uZyBzZWxicmkgZ3JvdXBpbmcsICcna2UnZScnIGVuZHMgaXQuCgpfXycna2UnJ19fIOKA kyBiZWdpbiBzdHJvbmcgc2VsYnJpIGdyb3VwaW5nLgoKX18nJ2tlJ2UnJ19fIOKAkyBlbmQgc3Ry b25nIHNlbGJyaSBncm91cGluZy4KClRoZSBzdHJlbmd0aCBvZiB0aGUgYmluZGluZyBpcyB0aGUg c2FtZSBhcyB0aGF0IG9mICcnYm8nJy4gVGhlcmVmb3JlLCAnJ21pIHZham5pIG1lcmtvIGJvIHNr YW1pIGJvIHRlIHZlY251JycgY2FuIGJlIHdyaXR0ZW4gJydtaSB2YWpuaSBrZSBtZXJrbyBrZSBz a2FtaSB0ZSB2ZWNudSB7a2UnZX0ge2tlJ2V9JycuCgpIb3cgY291bGQgeW91IHNheSDigJxJJ20g YSBHZXJtYW4gc2VsbGVyIG9mIHllbGxvdyBob21lcz/igJ0KCgoKQW5zd2VyOiB+fmdyZXksZ3Jl eTonJ21pIGRvdGNvIGtlIHBlbHh1IHpkYW5pIHZlY251Jyd+fgoKCgpXaGlsZSB3ZSdyZSBhdCBt ZXNzaW5nIHdpdGggdGhlIG9yZGluYXJ5IHRhbnJ1IHN0cnVjdHVyZSwgdGhlcmUgaXMgYW5vdGhl ciB3b3JkIHdvcnRoIHBheWluZyBhdHRlbnRpb24gdG8uIElmIEkgd2FudCB0byBzYXkgdGhhdCBJ J20gYSBwcm9mZXNzaW9uYWwgdHJhbnNsYXRvciwgSSBjb3VsZCBzYXkgJydtaSBmYW52YSBzZSBq aWJyaScnLgoKX18nJ2ppYnJpJydfXyB4MSBpcyBhIGpvYiBvZiB4MgoKX18nJ2RvdHliYXUnJ19f IHgxIGlzIEdlcm1hbiB1c2VkIGJ5IHgyIHRvIHNheSB4MwoKX18nJ2dsaWJhdScnX18geDEgaXMg RW5nbGlzaCB1c2VkIGJ5IHgyIHRvIHNheSB4MwoKSWYgSSB3YW50ZWQgdG8gc2F5IHRoYXQgSSdt IGEgcHJvZmVzc2lvbmFsIHRyYW5zbGF0ZXIgZnJvbSBFbmdsaXNoIHRvIEdlcm1hbiwgSSdkIGhh dmUgdG8gbWVzcyBhcm91bmQgd2l0aCAnJ2JlJycgYW5kICcnYmVpJyc6ICcnbWkgZmFudmEgYmUg bGUgZG90eWJhdSBiZWkgbGUgZ2xpYmF1IGJlJ28gc2UgamlicmknJywgYW5kIHRoZSBmYWN0IHRo YXQgaXQgd2FzIGEgdGFucnUgY291bGQgcXVpY2tseSBiZSBsb3N0IGluIHNwZWVjaCBkdWUgdG8g dGhlIGNvbXBsaWNhdGVkIHN0cnVjdHVyZSBvZiB0aGUgc2VudGVuY2UuIEhlcmUsIHdlIGNhbiB1 c2UgdGhlIHdvcmQgJydjbycnLiBpdCBpbnZlcnRzIHRoZSB0YW5ydSwgbWFraW5nIHRoZSByaWdo dG1vc3Qgc2VsYnJpIG1vZGlmeSB0aGUgbGVmdG1vc3QgaW5zdGVhZCBvZiB0aGUgb3RoZXIgd2F5 IGFyb3VuZDoKCicnbWkgc2UgamlicmkgY28gZmFudmEgbGUgZG90eWJhdSBsZSBnbGliYXUnJyBp cyB0aGUgc2FtZSBicmlkaSBhcyB0aGUgcHJldmlvdXMgTG9qYmFuIG9uZSwgYnV0IG11Y2ggbW9y ZSBlYXN5IHRvIHVuZGVyc3RhbmQuIE5vdGljZSB0aGF0IGFueSBzdW10aSBiZWZvcmUgdGhlIHRh bnJ1IGZpbGxzICcnc2UgamlicmknJywgd2hpbGUgYW55IGZvbGxvd2luZyBpdCBvbmx5IGZpbGxz IHRoZSBtb2RpZnlpbmcgc2VsYnJpOiAnJ2ZhbnZhJycuCgpfXycnY28nJ19fIEludmVydCB0YW5y dS4gQW55IHByZXZpb3VzIHN1bXRpIGZpbGwgdGhlIG1vZGlmaWVkLCBhbnkgZm9sbG93aW5nIGZp bGwgdGhlIG1vZGlmaWVyLgoKCgpUaGUgc3RyZW5ndGggYnkgd2hpY2ggdHdvIHNlbGJyaSBhcmUg Ym91bmQgdG9nZXRoZXIgd2l0aCBjbyBpcyB2ZXJ5IHdlYWsg4oCTIGV2ZW4gd2Vha2VyIHRoYW4g bm9ybWFsIHRhbnJ1IGdyb3VwaW5nIHdpdGhvdXQgYW55IGdyb3VwaW5nIHdvcmRzLiBUaGlzIG1h a2VzIHN1cmUgdGhhdCwgaW4gYSBjby1jb25zdHJ1Y3QsIHRoZSBsZWZ0bW9zdCBzZWxicmkgaXMg YWx3YXlzIHRoZSBzZWxicmkgYmVpbmcgbW9kaWZpZWQsIGFuZCB0aGUgcmlnaHRtb3N0IGFsd2F5 cyBtb2RpZmllcywgZXZlbiBpZiBhbnkgb2YgdGhvc2UgcGFydHMgYXJlIHRhbnJ1LiBUaGlzIG1h a2VzIGEgY28tY29uc3RydWN0IGVhc3kgdG8gcGFyc2U6CgonJ3RpIHBlbHh1IHBsaXNlIGNvIGt1 a3RlJycgaXMgcmVhZCAnJ3RpJycgKCcncGVseHUgcGxpc2UnJykgJydjbyBrdWt0ZScnLCB3aGlj aCBpcyB0aGUgc2FtZSBhcyAnJ3RpIGt1a3RlIHBlbHh1IGJvIHBsaXNlJycuIFRoaXMgYWxzbyBt ZWFucyB0aGF0IGEgJydrZeKApmtlJ2UnJyBjYW5ub3QgZW5jb21wYXNzIGEgJydjbycnLgoKVGhl IGNtYXZvIG9mIHRoZSBzZWxtYSdvIEdJaEEsIHRoZSBicmlkaS10YWlsIGFmdGVydGhvdWdodCBs b2dpY2FsIGNvbm5lY3RpdmVzLCBob3dldmVyLCBiaW5kcyBldmVuIGxvb3NlciB0aGFuICcnY28n Jy4gVGhpcyBpcyBpbiBvcmRlciB0byB0b3RhbGx5IGF2b2lkIGNvbmZ1c2lvbiBhYm91dCB3aGlj aCBzZWxicmkgYmluZHMgdG8gd2hpY2ggaW4gYSBHSWhBLWNvbnN0cnVjdC4gVGhlIGFuc3dlciBp cyBzaW1wbGU6IFRoZSBHSWhBIG5ldmVyIGVtY29tcGFzc2VzIGFueSBzZWxicmktZ3JvdXBzLgoK CgpIb3cgY2FuIHlvdSBleHByZXNzIOKAnUkgYW0gYW4gaW1wb3J0YW50IEFtZXJpY2FuIGJ1eWVy IG9mIGNvbXB1dGVyc+KAnSB1c2luZyBhICcnY28nJz8KCgoKQW5zd2VyOiB+fmdyZXksZ3JleTon J21pIHNrYW1pIHRlIHZlY251IGNvIHZham5pIG1lcmtvJyd+fgoKCgpJZiBpdCdzIG9mIGFueSB1 c2UsIHRoaXMgaXMgdGhlIGxpc3Qgb2YgZGlmZmVyZW50IGtpbmQgb2Ygc2VsYnJpIGdyb3VwZXJz IHJhbmtlZCBieSBzdHJlbmd0aDoKCgoKMS4gICAgJydibycnIGFuZCAnJ2tlLi5rZSdlJycKCgoK Mi4gICAgbG9naWNhbCBjb25uZWN0aXZlcyBvdGhlciB0aGFuIGJyaWRpLXRhaWwgYWZ0ZXJ0aG91 Z2h0IGxvZ2ljYWwgY29ubmVjdGl2ZXMgKGV4cGxhaW5lZCBpbiBsZXNzb24gdHdlbnR5LWZpdmUp CgoKCjMuICAgIG5vIGdyb3VwaW5nIHdvcmRzCgoKCjQuICAgICcnY28nJwoKCgo1LiAgICBicmlk aS10YWlsIGFmdGVydGhvdWdodCBsb2dpY2FsIGNvbm5lY3RpdmVzIChhbHNvIGluIGxlc3NvbiB0 d2VudHktZml2ZSkKCgoKVGhlIHJlc3Qgb2YgdGhpcyBsZXNzb24gd2lsbCBub3QgYmUgb24gc2Vs YnJpIGdyb3VwaW5nLCBidXQgbXVjaCBsaWtlIGxlc3NvbiBzZXZlbnRlZW4gbWVudGlvbiBhc3Nv cnRlZCB3b3Jkcywgd2hpY2ggY2FuIGJlIG9mIHVzZS4KCgoKJydibycnIGhhcyBhbm90aGVyIHVz ZSwgd2hpY2ggc2VlbXMgc2VwYXJhdGUgZnJvbSBzZWxicmkgZ3JvdXBpbmc6IEl0IGNhbiBhbHNv IGJpbmQgYSBzdW10Y2l0YSB0byBhbiBlbnRpcmUgYnJpZGksIHNvIHRoYXQgdGhlIGNvbnRlbnQg b2YgdGhlIHN1bXRjaXRhIGlzIG5vdCBhIHN1bXRpLCBidXQgdGhlIGZvbGxvd2luZyBicmlkaS4g VGhpcyBpcyBiZXN0IGV4cGxhaW5lZCB3aXRoIGFuIGV4YW1wbGUuCgpfXycneGVibmknJ19fIHgx IGhhdGVzIHgyCgonJ21pIGRhcnhpIGRvIC5pIG11J2kgYm8gbWkgZG8geGVibmknJyDigJMg4oCc SSBoaXQgeW91LCB3aXRoIG1vdGl2YXRpb24gdGhhdCBJIGhhdGUgeW91LuKAnSBIZXJlIHRoZSAn J2JvJycgYmluZHMgJydtdSdpJycgdG8gdGhlIGZvbGxvd2luZyBicmlkaS4KClRoaXMgaXMgd2hl cmUgdGhlIHRlY2huaWNhbCBkaWZmZXJlbmNlIGJldHdlZW4gdGVuc2Ugc3VtdGNpdGEgYW5kIG90 aGVyIHN1bXRjaXRhIGlzIHJlbGV2YW50LiBZb3Ugc2VlLCB3aGVuIGJpbmRpbmcgYSBub3JtYWwg c3VtdGNpdGEgdG8gYSBicmlkaSB3aXRoICcnYm8nJywgaXQgbWVhbnMgdGhhdCB0aGUgZm9sbG93 aW5nIGJyaWRpIHNvbWVob3cgZml0cyBpbnRvIHRoZSBzdW10aSBwbGFjZSBvZiB0aGUgc3VtdGNp dGEuIEZvciB0aGUgcmVhc29uIG9mIEdvZCBLbm93cyBXaHksIGJpbmRpbmcgb25lIG9mIHRoZSB3 b3JkcyAnJ2JhJycgb3IgJydwdScnIHRvIGEgYnJpZGkgaGFzIHRoZSBleGFjdCBvcHBvc2l0ZSBl ZmZlY3QuIEZvciBleGFtcGxlLCBpbiB0aGUgYnJpZGkgJydtaSBkYXJ4aSBkbyAuaSBiYSBibyBk byBjaW5qaWtjYScnLCBvbmUgd291bGQgYXNzdW1lIHRoYXQgdGhlIHNlY29uZCBicmlkaSBpcyBz b21laG93IGZpbGxlZCBpbnRvIHRoZSBzdW10aSBwbGFjZSBvZiAnJ2JhJycsIG1lYW5pbmcgdGhh dCB0aGUgYnJpZGkgZmlyc3QgdXR0ZXJlZCB0b29rIHBsYWNlIGluIHRoZSBmdXR1cmUgb2YgdGhl IHNlY29uZCBicmlkaS4gVGhhdCdzIG5vdCB0aGUgY2FzZSwgaG93ZXZlciwgYW5kIHRoZSBjb3Jy ZWN0IHRyYW5zbGF0aW9uIG9mIHRoYXQgdXR0ZXJhbmNlIHdvdWxkIGJlICJJIGhpdCB5b3UuIEFm dGVyd2FyZHMsIHlvdSBmbGlydCIuIFRoaXMgd2VpcmQgcnVsZSBpcyBhY3R1YWxseSBvbmUgb2Yg dGhlIG1haW4gb2JzdGFjbGVzIHRvIGEgdW5pZmljYXRpb24gb2YgYWxsIHN1bXRjaXRhIGludG8g b25lIHNpbmdsZSB3b3JkIGNsYXNzLiBBbm90aGVyIGRpZmZlcmVuY2UgaXMgdGhhdCB0ZW5zZS1z dW10Y2l0YSBjYW4gYmUgZWxpZGVkLCBldmVuIHRob3VnaCB0aGV5IGFwcGx5LiBUaGlzIHJ1bGUg bWFrZXMgbW9yZSBzZW5zZSwgc2luY2Ugd2Ugb2Z0ZW4gY2FuIGFzc3VtZSBicmlkaSBpcyBwbGFj ZWQgaW4gYSB0aW1lIGFuZCBzcGFjZSwgYnV0IHdlIGNhbid0IGFzc3VtZSB0aGF0IHRoZSBzdW10 Y2l0YSBvZiBCQUkgYXBwbGllcy4KCgoKVGhlIHVub2ZmaWNpYWwgd29yZCAnJ21lJ29pJycgaXMg ZXF1aXZhbGVudCB0byBtZSBsYSdlICcnem8nb2knJywgd2hpY2ggbWVhbnMgdGhhdCBpdCBjb252 ZXJ0cyB0aGUgY29udGVudCBvZiB0aGUgbmV4dCB3b3JkIGludG8gYSBzZWxicmkuIEl0IGlzIHVz ZWQgdG8gaW52ZW50IGJyaXZsYSBvbiB0aGUgZmx5OiAnJ21pIGNhIHpnYW5hIGxhIG1lJ29pIFgt ZmlsZXMnJyBmb3Ig4oCcSSBub3cgd2F0Y2ggWC1maWxlc+KAnS4gTGlrZSBhbGwgcXVvdGUgbmV4 dCB3b3JkLWNtYXZvLCBpdCBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBvZmZpY2lhbCBncmFtbWFy LCBidXQgdG8gdGhlIGxhenkgTG9qYmFuaXN0LCBpdCdzIGludmFsdWFibGUuCgoKClRoZSB3b3Jk ICcnZ2knJyBpcyBzdHJhZ2Uga2luZCBvZiBicmlkaSBzZXBhcmF0b3IsIGFuYWxvZ291cyB0byAn Jy5pJycsIGJ1dCB0byBteSBrbm93bGVkZ2UsIGl0IGlzIHVzZWQgaW4gb25seSB0d28gZGlmZmVy ZW50IGtpbmRzIG9mIGNvbnN0cnVjdHM6IE1vc3Qgb2Z0ZW4gd2l0aCBsb2dpY2FsIGNvbm5lY3Rp dmVzLCBleHBsYWluZWQgaW4gbGVzc29uIHR3ZW50eS1maXZlLCBidXQgYWxzbyB3aXRoIHN1bXRj aXRhLiBXaXRoIHN1bXRjaXRhIGl0IGNyZWF0ZXMgYSB1c2VmdWwsIGJ1dCBoYXJkbHkgc2Vlbiwg Y29uc3RydWN0OgoKJydtdSdpIGdpIEJSSURJLTEgZ2kgQlJJREktMicnLCB3aGljaCBpcyBlcXVp dmFsZW50IHRvICcnQlJJREktMiAuaSBtdSdpIGJvIEJSSURJLTEnJy4gVGhlcmVmb3JlLCB0aGUg ZXhhbXBsZSBhYm92ZSwgd2hpY2ggZXhwbGFpbmVkIHdoeSBJIGhpdCB5b3UsIGNhbiBiZSB3cml0 dGVuICcnbXUnaSBnaSBtaSB4ZWJuaSBkbyBnaSBtaSBkYXJ4aSBkbycnLCBvciB0byBwcmVzZXJ2 ZSB0aGUgc2FtZSBvcmRlciBhcyB0aGUgb3JpZ2luYWwgc2VudGVuY2UsIHdlIGNhbiBjb252ZXJ0 ICcnbXUnaScnIHdpdGggJydzZScnOiAnJ3NlIG11J2kgZ2kgbWkgZGFyeGkgZG8gZ2kgbWkgeGVi bmkgZG8nJy4KCkl0IGlzIGluIGV4YW1wbGVzIGxpa2UgdGhpcyB0aGF0ICcnZ2knJyByZWFsbHkg Y2FuIHNob3cgaXRzIHZlcnNhdGlsaXR5LiBJdCBkb2VzIG5vdCBqdXN0IHNlcGFyYXRlIHR3byBi cmlkaSBsaWtlICcnLmknJyBkb2VzLCBidXQgY2FuIGFsc28gc2VwYXJhdGUgdHdvIGNvbnN0cnVj dHMgd2l0aGluIGEgYnJpZGksIG1ha2luZyBhbGwgY29uc3RydWN0cyBvdXRzaWRlIHRoZSBzY29w ZSBvZiAnJ2dpJycgYXBwbHkgdG8gYm90aCBicmlkaSwgYXMgdGhpcyBleGFtcGxlIGRlbW9uc3Ry YXRlczoKCl9fJydjaW5iYScnX18geDEga2lzc2VzIHgyIGF0IGxvY3VzIHgzCgoKCicnbWkgZ2kg cHJhbWkgZG8gZ2kgY2luYmEgZG8nJyBsZWF2ZXMgbWkgb3V0c2lkZSB0aGUgY29uc3RydWN0LCBt YWtpbmcgaXQgYXBwbHkgdG8gYm90aCBicmlkaS4gVGhpcyBjYW4gYWxzbyBiZSBkb25lIHdpdGgg JydkbycnLCB3aGljaCBpcyBhbHNvIHByZXNlbnQgaW4gYnJvdGggYnJpZGk6ICcnbWkgZ2kgcHJh bWkgZ2kgY2luYmEgdmF1IGRvJycuIE5vdGUgdGhhdCAnJ3ZhdScnIGlzIG5lZWRlZCB0byBtYWtl IGRvIGFwcGVhciBvdXRzaWRlIHRoZSBzZWNvbmQgYnJpZGkuCgoKClRodXMsIHdlIGNhbiB3cml0 ZSB0aGUgb3JpZ2luYWwgc2VudGVuY2Ugc2hvcnRlcjogJydtaSBtdSdpIGdpIHhlYm5pIGdpIGRh cnhpIHZhdSBkbycnLCBvciwgdG8gb21pdCBldmVuIHRoZSAnJ3ZhdScnLCB3ZSBjYW4gd3JpdGUg aXQgZXZlbiBzaG9ydGVyIGFuZCBtb3JlIGVsZWdhbnRseTogJydtaSBkbyBtdSdpIGdpIHhlYm5p IGdpIGRhcnhpJycKCgoKCgohIUxvamJhbiBMZXNzb25zIC0gTGVzc29uIHR3ZW50eS1vbmUgKENP SSkKCkluIHRoaXMgbGVzc29uLCB5b3Ugd2lsbCBmYW1pbGlhcml6ZSB5b3Vyc2VsZiB3aXRoIHZv Y2F0aXZlcywgb3IgJydtYSdvaSBjb2knJy4gVGhleSBnZXQgdGhlaXIgb3duIGxlc3Nvbiwgbm90 IGJlY2F1c2UgdW5kZXJzdGFuZGluZyB0aGVzZSBwcm92aWRlcyBhIGJhc2lzIGZvciB1bmRlcnN0 YW5kaW5nIExvamJhbiBncmFtbWFyIGluIGdlbmVyYWwsIG9yIGJlY2F1c2UgdGhleSBhcmUgaGFy ZCB0byB1bmRlcnN0YW5kLCBidXQgcmF0aGVyIGJlY2F1c2UgdGhleSBhcmUgdmVyeSBvZnRlbiB1 c2VkIGluIGNhc3VhbCBzcGVlY2gsIGFuZCB0aGVyZSBhcmUgYSBsb3Qgb2YgdGhlbS4KCkEgdm9j YXRpdmUgaXMgdXNlZCBwYXJ0bHkgdG8gZGVmaW5lIHdobyAnJ2RvJycgcmVmZXJzIHRvLiBJZiB0 aGUgdm9jYXRpdmUgaXMgZm9sbG93ZWQgYnkgYSBjbWV2bGEsIHRoZSBjbWV2bGEgZ2V0cyBhbiBp bXBsaWVkIGxhIGluIGZyb250IG9mIGl0LiBJZiBhIHNlbGJyaSBmb2xsb3dzLCBhICcnbGUnJyBp cyB1c2VkIGFzIGEgZ2FkcmkgaW5zdGVhZC4KCkluIHRoZXNlIGV4YW1wbGVzLCBJIHdpbGwgdXNl IHRoZSB2b2NhdGl2ZSAnJ2NvaScnLCB3aXRoIG1lYW5zIOKAnEhp4oCdIG9yIOKAnEhlbGxv4oCd LgoKSWYgYSBwZXJzb24gaXMgY2FsbGVkICcnbGEgKyBTRUxCUkknJywgdXNpbmcgYSB2b2NhdGl2 ZSB3aXRoIG9ubHkgdGhlIHNlbGJyaSB0byBhZGRyZXNzIHRoYXQgcGVyc29uIHdpbGwgbWVhbiB5 b3UgcmVmZXIgdG8gaGVyIGFzIGFjdHVhbGx5IGJlaW5nIHRoZSB4MSBvZiB0aGF0IHNlbGJyaSwg d2hpY2ggaXMgb2Z0ZW4gd3JvbmcuIElmLCBmb3IgaW5zdGFuY2UsIGEgcGVyc29uIGlzIGNhbGxl ZCAnJ2xhIHRzYW5pJycsIOKAnFNreeKAnSwgc2F5aW5nICcnY29pIHRzYW5pJycgcmVmZXJzIHRv IGhlciBhcyBhICcnbGUgdHNhbmknJywgbWVhbmluZyDigJxIaSwgeW91IHNreeKAnSwgd2hpbGUg Jydjb2kgbGEgdHNhbmkgY29ycmVjdGx5JycgcmVmZXJzIHRvIGhlciBhcyBzb21lb25lIGNhbGxl ZCAiU2t5IiwgbWVhbmluZyDigJxIaSBTa3nigJ0uIFRoaXMgaXMgYSBmcmVxdWVudCBtaXN0YWtl LCBlc3BlY2lhbGx5IGFtb25nIG5ldyBMb2piYW5pc3RzLgoKQWxsIHZvY2F0aXZlcyBoYXZlIGEg ZmEnb3JtYSdvIHdoaWNoIGlzIHNvbWV0aW1lcyByZXF1aXJlZC4gVGhpcyBpcyAnJ2RvJ3UnJy4g SXQncyBtb3N0bHkgdXNlZCBpZiBib3RoIHRoZSBmaXJzdCB3b3JkIGFmdGVyIHRoZSB2b2NhdGl2 ZSBwaHJhc2UgYW5kIHRoZSBsYXN0IHdvcmQgb2YgdGhlIHBocmFzZSBpcyBhIHNlbGJyaSwgc28g dGhhdCBpdCBwcmV2ZW50cyBmb3JtaW5nIGEgdGFucnU6CgoKCl9fJydkbyd1JydfXyBFbmQgdm9j YXRpdmUgcGhyYXNlLiBVc3VhbGx5IGVsaWRhYmxlLgoKX18nJ2tsYWt1JydfXyB4MSBjcmllcyB4 MiAodGVhcnMpIGZvciByZWFzb24geDMKCicnY29pIGxhIGdsZWtpIGRvJ3Uga2xha3UgZmkgbWEn JyDigJ1IZWxsbyBIYXBweS4gV2h5IGNyeT/igJ0KCgoKVGhlIGdlbmVyaWMgdm9jYXRpdmUsICcn ZG9pJycsIGRvZXMgbm90aGluZyBleGNlcHQgZGVmaW5pbmcgd2hvIGlzIGJlaW5nIHJlZmVycmVk IHRvIGJ5ICcnZG8nJzoKCicnZG9pIC5lcm5zdC4geHUgZG8gZG90Y28gbWVya28nJyDigJxFcm5z dDogQXJlIHlvdSBhIEdlcm1hbi1BbWVyaWNhbj/igJ0KCgoKQWxsIHRoZSBvdGhlciB2b2NhdGl2 ZXMgaGF2ZSBzb21lIGNvbnRlbnQgYmVzaWRlIGRlZmluaW5nICcnZG8nJy4gJydjb2knJywgd2hp Y2ggeW91IGtub3csIGFsc28gbWVhbnMg4oCcSGVsbG/igJ0sIGZvciBleGFtcGxlLiBNYW55IG9m IHRoZSB2b2NhdGl2ZXMgaGF2ZSB0d28gb3IgdGhyZWUgZGVmaW5pdGlvbnMgbGlrZSB0aGUgYXR0 aXR1ZGluYWxzLiBMaWtlIGF0dGl0dWRpbmFscywgdGhpcyBpcyBiZWNhdXNlIHRoZXkgY2FuIGJl IG1vZGlmaWVkIHdpdGggJydjdSdpJycgYW5kICcnbmFpJycsIHRob3VnaCBvbmx5IG9uZSB2b2Nh dGl2ZSBoYXMgdGhlICcnY3UnaScnLWZvcm0gZGVmaW5lZC4KClNvbWUgaW1wb3J0YW50IHZvY2F0 aXZlcyBhcmUgbGlzdGVkIGluIHRoZSB0YWJsZSBiZWxvdy4gVGhlcmUgYXJlIG90aGVycywgYnV0 IHRob3NlIGFyZSBub3QgdXNlZCBtdWNoLgoKfHx2b2NhdGl2ZXxXaXRob3V0IHN1ZmZpeHwtY3Un aXwtbmFpCgpjb2l8SGVsbG98LXwtCgpjbydvfEdvb2RieWUJfC18LQoKamUnZXxVbmRlcnN0b29k IC8gT0t8LXxOb3QgdW5kZXJzdG9vZAoKZmknaXxXZWxjb21lfC18Tm90IHdlbGNvbWUgaGVyZQoK cGUndXxQbGVhc2V8LXwtCgpraSdlfFRoYW5rc3wtfERpc2FwcHJlY2lhdGlvbgoKcmUnaXxSZWFk eSB0byByZWNpZXZlfC18Tm90IHJlYWR5CgpqdSdpfEhleSF8QXQgZWFzZXxJZ25vcmUgbWUKCnRh J2F8SW50ZXJydXB0aW9ufC18LQoKdmknb3xXaWxsIGRvfC18V2lsbCBub3QgZG8KCmtlJ298UGxl YXNlIHJlcGVhdHwtfE5vIHJlcGVhdCBuZWVkZWQKCmtpJ2FpfHdlbGwtd2lzaHwtfGN1cnNlfHwK Ck5vdGljZSB0aGF0ICcna2knYWknJyBpcyBleHBlcmltZW50YWwKCgoKCgpXaGF0IHdvdWxkICcn Y29pIGNvJ28nJyBtZWFuPwoKCgpBbnN3ZXI6IH5+Z3JleSxncmV5OuKAnEdyZWV0aW5ncyBpbiBw YXNzaW5n4oCdIG9yIOKAnEhlbGxvIGFuZCBHb29kYnll4oCdfn4KCgoKJydqZSdlJycgaXMgdXNl ZCBhcyDigJxPS+KAnSwgYnV0IGFsc28gdGhlIGFwcHJvcHJpYXRlIHJlc3BvbnNlIHdoZW4gcmVj ZWl2aW5nIHByYWlzZSBvciB0aGFua3MgKGF0IGxlYXN0LCBpZiB5b3Ugd2FudCB0byBiZSBtb2Rl c3QpLCBhcyBpdCBpbmRpY2F0ZXMgdGhhdCB0aGUgcHJhaXNlIG9yIHRoYW5rcyB3YXMgc3VjY2Vz c2Z1bGx5IHVuZGVyc3Rvb2QuCgoKClRyYW5zbGF0ZSAnJ2tpJ2Ugc2lkanUgYmUgbWkgYmVpIGxv IHZham5pIC5pIGplJ2UgLmplbmlmeW4uJycKCl9fJydzaWRqdScnX18geDEgaGVscHMgeDIgZG8g eDMKCgoKQW5zd2VyOiB+fmdyZXksZ3JleTrigJxUaGFua3MsIHlvdSBoZWxwZXIgb2YgbWUgdG8g ZG8gc29tZXRoaW5nIGltcG9ydGFudC7igJ0g4oCcTm8gcHJvYmxlbSwgSmVubmlmZXLigJ1+fgoK CgpBbmQgJydmaSdpIHRlIHZlY251IC5pIHBlJ3Uga28gY2l0a2EnJwoKCgpBbnN3ZXI6IH5+Z3Jl eSxncmV5OuKAnVdlbGNvbWUsIGJ1eWVyLiBQbGVhc2UgZWF0IeKAnX5+CgoKCicncmUnaScnIGlz IHVzZWQgdG8gc2lnbmFsIHRoYXQgeW91IGFyZSByZWFkeSB0byBiZSBzcG9rZW4gdG8uIEl0IGNh biBiZSB1c2VkIGFzIHRoZSBMb2piYW4gZXF1aXZhbGVudCBvZiDigJxXaGF0IGNhbiBJIGRvIGZv ciB5b3U/4oCdIG9yIHBlcmhhcHMgcmVwbGFjZSDigJxIZWxsb+KAnSwgd2hlbiBzcGVha2luZyBv biBhIHBob25lLiAnJ3JlJ2kgbmFpJycgY2FuIG1lYW4g4oCcQUZL4oCdIG9yIOKAnEJlIHRoZXJl IGlzIGEgc2Vjb25kLuKAnQoKCgpUcmFuc2xhdGU6IOKAnEhlbGxvLCB3aGF0IGNhbiBJIGRvIGZv ciB5b3UsIEludGVycHJldGVyL1RyYW5zbGF0ZXI/4oCdCgoKCkFuc3dlcjogfn5ncmV5LGdyZXk6 Jydjb2kgcmUnaSBsYSBmYW52YScnfn4KCgoKJyd0YSdhJycgaXMgdXNlZCB3aGVuIGF0dGVtcHRp bmcgdG8gcG9saXRlbHkgaW50ZXJydXB0IHNvbWVvbmUgZWxzZS4gV2hhdCB3b3VsZCBiZSBnb29k IHJlc3BvbnNlcyB0byB0aGlzPwoKCgpUcmFuc2xhdGU6ICcndGEnYSBybyBkbyBtaSBjbydhIGNs aXZhJycKCl9fJydjbGl2YScnX18geDEgbGVhdmVzIHgyIHZpYSByb3V0ZSB4MwoKCgpBbnN3ZXI6 IH5+Z3JleSxncmV5OuKAnEV4Y3VzZSBtZSBmb3IgaW50ZXJydXB0aW5nLCBldmVyeW9uZS4gSSBi ZWdpbiB0byBsZWF2ZSBub3figJ0gTm90aWNlIHRoYXQgbm8gZmEnb3JtYSdvIG9yICcnLmknJyBp cyBuZWVkZWQufn4KCgoKJydrZSdvJycgaXMgdXNlZCBhIGxvdCB3aGVuIGluZXhwZXJpZW5jZWQg TG9qYmFuaXN0cyBzcGVhayB0b2dldGhlciB2b2NhbGx5LiBJdCdzIHF1aXRlIGEgaGFuZHkgd29y ZAoKX18nJ3N1dHJhJydfXyB4MSBpcyBxdWljayBhdCBkb2luZyB4MgoKCgpUcmFuc2xhdGU6ICcn Lnkga2UnbyBzdXRyYSB0YXZsYScnCgoKCkFuc3dlcjogfn5ncmV5LGdyZXk64oCcVWgsIFBsZWFz ZSByZXBlYXQsIHlvdSBxdWljayBzcGVha2VyLuKAnX5+CgoKCkFuZCDigJxPa2F5IG9rYXksIEkg Z290IGl0IGFscmVhZHkhIEknbGwgZG8gaXQh4oCdCgoKCkFuIGFuc3dlcjogfn5ncmV5LGdyZXk6 JydrZSdvIG5haSAudWkgbmFpIHZpJ28nJ35+CgoKCiEhTG9qYmFuIExlc3NvbnMgLSBMZXNzb24g dHdlbnR5LXR3byAocXVhbnRpZnlpbmcgc3VtdGkpCgpNb3N0IG90aGVyIGxlYXJuaW5nIG1hdGVy aWFscyBzdWNoIGFzIFRoZSBDb21wbGV0ZSBMb2piYW4gTGFuZ3VhZ2UgYW5kIExvamJhbiBmb3Ig QmVnaW5uZXJzIHdlcmUgd3JpdHRlbiBiZWZvcmUgdGhlIG9mZmljaWFsIGFkb3B0YXRpb24gInhv cmxvIiwgYSBjaGFuZ2UgaW4gdGhlIHJ1bGVzIGFib3V0IGdhZHJpIGRlZmluaXRpb24gYW5kIGdh ZHJpIHF1YW50aWZpY2F0aW9uLiBUaGUgb2Jzb2xldGVuZXNzIG9mIHNvbWUgb2YgdGhlIHRleHQg aW4gdGhlIG9sZGVyIGxlYXJuaW5nIG1hdGVyaWFscyB3YXMgYSBtYWpvciBjYXVzZSBmb3IgdGhl IG1vdGl2YXRpb24gdG8gd3JpdGUgdGhlc2UgbGVzc29ucy4gVW5mb3J0dW5hdGVseSBmb3IgbWUs IHF1YW50aWZpY2F0aW9uIG9mIHN1bXRpIGNhbiBiZWNvbWUgYSB2ZXJ5IGNvbXBsZXggdG9waWMg d2hlbiB0aGUgaW1wbGljYXRpb25zIG9mIGNlcnRhaW4gcnVsZXMgYXJlIGRpc2N1c3NlZCBpbiBk ZXRhaWwuIEluIG9yZGVyIHRvIGZ1bGZpbGwgdGhlIGdvYWwgb2YgdGhpcyB0ZXh0IGJlaW5nIGFj Y3VyYXRlIGVub3VnaCB0byByZXByZXNlbnQgdGhlIG9mZmljaWFsICJnb2xkIHN0YW5kYXJkIiBC UEZLIHJ1bGVzLCB0aGlzIGNoYXB0ZXIgd2FzIGFtb25nIHRoZSBsYXN0IG9uZXMgZmluaXNoZWQg YW5kIHRoZSBvbmVzIG1vc3QgZnJlcXVlbnR5IHJld3JpdHRlbi4gSSBzdHJvbmdseSBlbmNvdXJh Z2UgYW55b25lIHdobyBmaW5kcyBtaXN0YWtlcyBpbiB0aGlzIHRleHQgdG8gY29udGFjdCBtZSBp biBvcmRlciBmb3IgdGhlbSB0byBiZSBjb3JyZWN0ZWQuCgpIYXZpbmcgc2FpZCB0aGF0IGRpc2Ns YWltZXIsIGxldCdzIGdldCBzdGFydGVkOgoKVGhlIGZpcnN0IGNvbmNlcHQgeW91IHNob3VsZCBr bm93IGFib3V0IGlzICJkaXN0cmlidXRpdml0eSIuIEluIGxlc3NvbiBmb3VydGVlbiBpIHVzZWQg dGhlIHdvcmQgImluZGl2aWR1YWxzIiBhYm91dCBhIGdyb3VwIG9mIG9iamVjdHMgY29uc2lkZXJl ZCBkaXN0cmlidXRpdmVseS4gQSBkaXN0cmlidXRpdmUgZ3JvdXAgJydrbydhJycgaXMgZm9yIGFu eSBzZWxicmkgJydicm9kYScnIGEgZ3JvdXAgc3VjaCB0aGF0LCBpZiAnJ2tvJ2EgYnJvZGEnJyBp cyB0cnVlLCBpdCBtZWFucyB0aGF0IGV2ZXJ5IG1lbWJlciBvZiB0aGUgZ3JvdXAgYWxzbyBpcyBj aGFyYWN0ZXJpemVkIGJ5ICcnYnJvZGEnJy4gVGhpcyBzdGFuZHMgaW4gY29udHJhc3QgdG8gbm9u LWRpc3RyaWJ1dGl2aXR5ICh3aGljaCBtYXNzZXMgaGF2ZSksIGluIHdoaWNoIHRoZSBncm91cCBo YXMgb3RoZXIgcHJvcGVydGllcyB0aGFuIGVhY2ggb2YgdGhlIGluZGl2aWR1YWxzIGRvLiBUaGUg ZGlzdGluY3Rpb24gYmV0d2VlbiBkaXN0cmlidXRpdml0eSAoaW5kaXZpZHVhbC1saWtlKSBhbmQg bm9uLWRpc3RyaWJ1dGl2aXR5IChtYXNzLWxpa2UpIGlzIG9mIHJlbGV2YW5jZSB3aGVuIHF1YW50 aWZ5aW5nIHN1bXRpLgoKTGV0IHVzIGZpcnN0IGNvbnNpZGVyIGhvdyBvbmUgY2FuIHF1YW50aWZ5 IGRlY3JpcHRpb24gc3VtdGksIHdoaWNoIGFyZSBzdW10aSBvZiB0aGUgZm9ybSBHQURSSSBCUklW TEEuIFRoZSBudW1iZXIgc3RyaW5nIHdoaWNoIGRvZXMgdGhlIHF1YW50aWZpY2F0aW9uIGNhbiBi ZSBwbGFjZWQgYmVmb3JlIHRoZSBnYWRyaSwgaW4gd2hpY2ggY2FzZSBpdCBpcyByZWZlcnJlZCB0 byBhcyBhbiBfX291dGVyIHF1YW50aWZpZXJfXywgYW5kIGl0IGNhbiBiZSBwbGFjZWQgYmV0d2Vl biB0aGUgZ2FkcmkgYW5kIHRoZSBicml2bGEsIGluIHdoaWNoIGNhc2UgaXQncyBhbiBfX2lubmVy IHF1YW50aWZpZXJfXy4gQW55IGtpbmQgb2YgbnVtYmVyIHN0cmluZyBjYW4gYWN0IGFzIGEgcXVh bnRpZmllci4KClRoZSBydWxlcyBmb3IgaG93IGlubmVyIGFuZCBvdXRlciBxdWFudGlmaWVycyBh ZmZlY3RzIHN1bXRpIGRlcGVuZCBvbiB0aGUga2luZCBvZiBnYWRyaSB3aGljaCBpcyB1c2VkOgoK CgotIC0nJ2xvJycgYW5kICcnbGUnJy0gLSBBbiBpbm5lciBxdWFudGlmaWVyIHRlbGxzIHVzIGhv dyBtYW55IG9iamVjdHMgYXJlIGJlaW5nIHNwb2tlbiBvZiAtIGhvdyBtYW55IG9iamVjdHMgYXJl IGluIHRoZSBkaXNjb3Vyc2UgdG90YWwuIElmIGFuIG91dGVyIHF1YW50aWZpZXIgaXMgcHJlc2Vu dCwgdGhlIHN1bXRpIGlzIGRpc3RyaWJ1dGVkIG92ZXIgdGhhdCBhbW91bnQgb2Ygb2JqZWN0cy4g QXMgc3RhdGVkIGVhcmxpZXIsIGlmIG5vIG91dGVyIHF1YW50aWZpZXIgaXMgcHJlc2VudCwgaXQn cyB2YWd1ZSBob3cgbWFueSBvYmplY3RzIHRoZSBzZWxicmkgYXBwbGllcyB0byAodGhvdWdoIG5v dCBub25lKSwgYW5kIHdoZXRoZXIgaXQgZG9lcyBzbyBkaXN0cmlidXRpdmVseSBvciBub24tZGlz dHJpYnV0aXZlbHkuIEV4YW1wbGVzIGFyZSBhbHdheXMgYSBnb29kIGlkZWEsIHNvIGhlcmUgdGhl eSBhcmU6CgonJ211IGxvIG11IGJha25pIGN1IHNlIGppcm5hJycgLSBUaGUgaW5uZXIgcXVhbnRp ZmllciBvZiBmaXZlIHRlbGxzIHVzIHRoYXQgd2Ugc3BlYWsgYWJvdXQgZml2ZSBwaWVjZXMgb2Yg Y2F0dGxlLCBhbmQgdGhlIG91dGVyIHF1YW50aWZpZXIgb2YgZml2ZSB0ZWxscyB1cyB0aGF0IHRo ZSBzZWxicmkgaXMgdHJ1ZSBmb3IgZWFjaCBvZiB0aGUgZml2ZS4gVGhlcmVmb3JlLCBpdCBtZWFu cyAiQWxsIHRoZSBmaXZlIGNvd3MgaGFkIGhvcm5zIi4gCgpfXycnYmFrbmknJ19fIHgxIGlzIGEg Y293L294L2NhdHRsZS9jYWxmIGV0YyBvZiBicmVlZCB4MgoKX18nJ2ppcm5hJydfXyB4MSBpcyB0 aGUgaG9ybiBvZiB4MiAobWV0YXBob3I6IGFueSBwb2ludGVkIGV4dHJlbWl0eSkKCgoKV2hhdCBk b2VzIHRoZSBmb2xsb3dpbmcgYnJpZGkgbWVhbj8KCicnbG8gcnUndXJndWJ1cHUgYmUgbGkgcmUg cGkgemUgbXUgY3UgamRpbWEgbG8gcGEgcmUgc292ZGEnJwoKX18nJ3J1J3VyZ3VidXB1JydfXyB4 MSBpcyBtZWFzdXJlcyB0byBiZSB4MiBCcml0aXNoIHBvdW5kcyAoR0JQKQoKX18nJ2pkaW1hJydf XyB4MSBpcyB0aGUgcHJpY2Ugb2YgeDIgdG8gYnV5ZXIgeDMgc2V0IGJ5IHZlbmRvciB4NAoKX18n J3NvdmRhJydfXyB4MSBpcyBhIGdhbWV0ZSAoZWdnL3NwZXJtKSBvZiB4MgoKQW5zd2VyOiB+fmdy ZXksZ3JleTogIlR3ZWx2ZSBlZ2dzIGNvc3QgMi43NSBCcml0aXNoIHBvdW5kcyIgd2hpY2gsIGFz IHRoZSBFbmdsaXNoIHRyYW5zbGF0aW9uLCBjb3VsZCBtZWFuIGJvdGggdGhhdCB0aGV5IGNvc3Qg Mi43NSBlYWNoIChkaXN0cmlidXRpdmVseSkgb3IgdGhhdCBhbGwgdHdlbHZlIHRvZ2V0aGVyIGNv c3QgMi43NSAobm9uLWRpc3RyaWJ1dGl2ZWx5KX5+CgoKCicnc28gbGUgdGEgcGEgcGEgY2knZXJr ZWkgY3UgY2xhbWF1IG1pJycgKG5vdGljZSB0aGF0IHRoZSAnJ3RhJycgZ29lcyBiZWZvcmUgdGhl IGlubmVyIHF1YW50aWZpZXIpCgpfXycnY2knZXJrZWknJ19fIHgxIHBsYXlzIGdhbWUgeDIgZ292 ZW5lcmQgYnkgcnVsZXMgeDMgaW50ZXJyZWxhdGluZyBnYW1lIHBhcnRzIHg0IHt0aGlzIGlzIHVz ZWQgdG8gdHJhbnNsYXRlICJwbGF5IiBpbiB0aGUgc2Vuc2UgInBsYXkgYSBnYW1lIiByYXRoZXIg dGhhbiwgZm9yIGluc3RhbmNlICJwbGF5aW5nIHByZXRlbmQiIG9yICJwbGF5aW5nIEhvdXNlIn0K Cl9fJydjbGFtYXUnJ19fIHgxIGlzIHRhbGxlci9sb25nZXIgdGhhbiB4MiBpbiBkaXJlY3Rpb24g eDMgbXkgbWFyaWdpbiB4NAoKQW5zd2VyOiB+fmdyZXksZ3JleTpUaGUgaW5uZXIgc3RhdGVzIHRo ZXJlIGFyZSAxMSBwbGF5ZXJzIGluIHRoZSBkaXNjb3Vyc2UsIGFuZCB0aGUgb3V0ZXIgc3RhdGVz IHRoYXQgdGhlIHNlbGJyaSBhcHBsaWVzIHRvIG5pbmUgb2YgdGhlbSBkaXN0cmlidXRpdmVseS4g VGh1cyBpdCBtZWFucyAiTmluZSBvZiB0aGUgZWxldmVuIHBsYXllcnMgYXJlIHRhbGxlciB0aGFu IG1lIn5+CgoKClRoZXJlIGFyZSBhIGZldyBwb2ludHMgdGhhdCBuZWVkcyB0byBiZSByYWlzZWQg cmVnYXJkaW5nIHF1YW50aWZpY2F0aW9uIG9mICcnbG8nJy8nJ2xlJyc6CgpGaXJzdGx5LCAnJ2xv JycgaXMgdW5pcXVlIGluIHRoYXQgIntudW1iZXJ9IHtzZWxicml9IiBpcyBkZWZpbmVkIGFzICJ7 bnVtYmVyfSAnJ2xvJycge3NlbGJyaX0iLiBUaGVyZWZvcmUsICcnY2kgZ2Vya3UgY3UgYmF0Y2kg cmUgbmFubXUnJyBpcyBkZWZpbmVkIHRvIGJlICcnY2kgbG8gZ2Vya3UgY3UgYmF0Y2kgcmUgbG8g bmFubXUnJywgd2hpY2ggY29uc2lkZXJzIGJvdGggdGhlIGdyb3VwIG9mIGRvZ3MgYW5kIHRoZSBn cm91cCBvZiBtZW4gZGlzdHJpYnV0aXZlbHkuIFRoZXJlZm9yZSwgZWFjaCBvZiB0aGUgdGhyZWUg ZG9ncyBiaXQgZWFjaCBvZiB0aGUgdHdvIG1lbiwgd2l0aCBzaXggYml0aW5nIGV2ZW50cyBpbiB0 b3RhbC4KCl9fJydiYXRjaScnX18geDEgYml0ZXMvcGluY2hlcyB4MiBhdCBsb2N1cyB4MyB1c2lu ZyB4NCBhcyBwaW5jaGluZyB0b29sLgoKU2Vjb25kbHk6IFdoYXQgaWYgdGhlcmUgaXMgbm8gb3V0 ZXIgcXVhbnRpZmllcj8gRG9lcyB0aGlzIG1lYW4gdGhhdCBpdCBfX2lzX18gdGhlcmUsIGJ1dCBp dCdzIGVsaWRlZD8gTm9wZS4gSWYgdGhlcmUgaXMgYW55IGtpbmQgb2Ygb3V0ZXIgcXVhbnRpZmll ciwgZWxpZGVkIG9yIG5vdCwgaXQgd291bGQgZm9yY2UgdGhlIHN1bXRpIHRvIGJlIGRpc3RyaWJ1 dGl2ZSwgd2hpY2ggd291bGQgbWVhbiB0aGF0IG5laXRoZXIgJydsbycnIG5vciAnJ2xlJycgY291 bGQgYmUgdXNlZCB0byBkZXNjcmliZSBtYXNzZXMuIFRoZXJlZm9yZSwgaWYgbm8gb3V0ZXIgcXVh bnRpZmllciBpcyBwcmVzZW50LCBpdCdzIG5vdCBvbmx5IGVsaWRlZCAtIGl0J3Mgc2ltcGx5IG5v dCB0aGVyZS4gU3VtdGkgd2l0aG91dCBhbiBvdXRlciBxdWFudGlmaWVyIGNhbiBiZSByZWZlcnJl ZCB0byBhcyAiY29uc3RhbnRzIiwgZXZlbiB0aG91Z2ggSSB3b24ndC4KClRoaXJkbHksIGl0IG1h a2VzIG5vIHNlbnNlIHRvIGhhdmUgYW4gb3V0ZXIgcXVhbnRpZmllciB3aGljaCBpcyBsYXJnZXIg dGhhbiB0aGUgaW5uZXIgb25lLiBJdCBtZWFucyB0aGF0IHRoZSBzZWxicmkgaG9sZHMgdHJ1ZSBm b3IgbW9yZSBzdW10aSB0aGFuIGFyZSBwcmVzZW50IGluIHRoZSBkaXNjb3Vyc2UgLSBidXQgc2lu Y2UgdGhleSBhcHBlYXIgaW4gYSBicmlkaSwgdGhleSBfX2FyZV9fIHBhcnQgb2YgdGhlIGRpc2Nv dXJzZS4gSXQncyBncmFtbWF0aWNhbCB0byBkbyBpdCwgdGhvdWdoLgoKTGFzdGx5LCBwbGFjaW5n IGEgJydsbycnIG9yIGEgJydsZScnIGluIGZyb250IG9mIGEgc3VtdGkgaXMgZ3JhbW1hdGljYWws IGlmIHRoZXJlIGlzIGFuIGlubmVyIHF1YW50aWZpZXIgcHJlc2VudC4gIicnbG8nJy8nJ2xlJycg e251bWJlcn0ge3N1bXRpfSIgaXMgZGVmaW5lZCBhcyAiJydsbycnLycnbGUnJyB7bnVtYmVyfSAn J21lJycge3N1bXRpfSIuCgpTbyB3aGF0IHdvdWxkIHRoaXMgbWVhbj8gJydtaSBuZWxjaSBsb2kg bWkgYnJpanUga2Fuc2EgLmkga3UnaSBjaSBsbyByZSBtdSBqaSdpIHJpIGN1IGxhem5pJycKCl9f JydicmlqdScnJ19fIHgxIGlzIGFuIG9mZmljZSBmb3Igd29ya2VyIHgyIGF0IGxvY2F0aW9uIHgz CgpfXycna2Fuc2EnJ19fIHgxIGFjY29tcGFuaWVzIHgyIGluIGFjdGlvbi9zdGF0ZS9lbnRlcnBy aXNlIHgzCgpfXycnbGF6bmknJ19fIHgxIGlzIGxhenksIGF2b2lkaW5nIHdvcmsgY29uY2Vybmlu ZyB4MgoKQW5zd2VyOiB+fmdyZXksZ3JleToiSSBsaWtlIG15IGNvLXdvcmtlcnMsIGJ1dCB0aHJl ZSBvdXQgb2YgYWJvdXQgdHdlbnR5IGZpdmUgb2YgdGhlbSBhcmUgbGF6eSJ+fgoKCgotIC0nJ2xh JyctIC0gQW4gaW5uZXIgcXVhbnRpZmllciBpcyBncmFtbWF0aWNhbCBpZiB0aGUgbmFtZSBpcyBh IHNlbGJyaSAtIGluIHRoaXMgY2FzZSwgaXQncyBjb25zaWRlcmVkIHBhcnQgb2YgdGhlIG5hbWUu IEFuIG91dGVyIHF1YW50aWZpZXIgaXMgdXNlZCB0byBxdWFudGlmeSBkaXN0cmlidXRpdmVseSBv dmVyIHN1Y2ggaW5kaXZpZHVhbHMgKG11Y2ggbGlrZSAnJ2xvJycvJydsZScnKSBJdCdzIGdyYW1t YXRpY2FsIHdoZW4gcGxhY2VkIGluIGZyb250IG9mIHtudW1iZXJ9IHtzdW10aX0sIGluIHdoaWNo IGNhc2UsIHRoZSBib3RoIHRoZSBudW1iZXIgYW5kIHRoZSBzdW10aSBpcyBjb25zaWRlcmVkIHRo ZSBuYW1lLgoKCgpUcmFuc2xhdGUgdGhpczogJydyZSBsYSBjaSBiYXJndSBjdSBqaWJuaSBsZSBt aSB6ZGFuaScnCgpBbnN3ZXI6IH5+Z3JleSxncmV5OiBUd28gIlRoZSBUaHJlZSBBcmNoZXMiIGFy ZSBsb2NhdGVkIGNsb3NlIHRvIG15IGhvdXNlIiAoUGVyaGFwcyBUaGUgVGhyZWUgQXJjaGVzIGFy ZSBhIGtpbmQgb2YgcmVzdGF1cmFudD8pfn4KCgoKLSAtJydsb2knJyBhbmQgJydsZWknJy0gLSBB biBpbm5lciBxdWFudGlmaWVyIHRlbGxzIHVzIGhvdyBtYW55IG1lbWJlcnMgdGhlcmUgYXJlIGlu IHRoZSBtYXNzL21hc3NlcyBpbiBxdWVzdGlvbi4gQW4gb3V0ZXIgcXVhbnRpZmllciBxdWFudGlm aWVzIGRpc3RyaWJ1dGl2ZWx5IHshfSBvdmVyIHRoZXNlIG1hc3NlcwoKTm90aWNlIGhlcmUgdGhh dCB3aGlsZSBtYXNzZXMgY29uc2lzdCBvZiBhIG51bWJlciBvZiBvYmplY3RzIGNvbnNpZGVyZWQg bm9uLWRpc3RyaWJ1dGl2ZWx5LCBhbiBvdXRlciBxdWFudGlmaWVyIGFsd2F5cyB0cmVhdHMgZWFj aCBvZiB0aGVzZSBtYXNzZXMgYXMgYW4gaW5kaXZpZHVhbC4KCldoZW4gcGxhY2VkIGJlZm9yZSBh IG51bWJlciBzdHJpbmcsIHRoZW4gYSBzdW10aSwgJydsb2knJy8nJ2xlaScnIGlzIGRlZmluZWQg YXMgIicnbG8gZ3VubWEgYmUgbG8nJy8nJ2xlJycge251bWJlcn0ge3N1bXRpfSIgLSAiVGhlIG1h c3MgY29uc2lzdGluZyBvZiB0aGUge251bWJlcn0gb2Yge3N1bXRpfSIuCgoKCkF0dGVtcHQgdG8g dHJhbnNsYXRlIHRoaXM6ICcncmUgZGVpIGd1bm1hIHJlIGxvaSB6ZSB2YWxzaSAuaSBjYSdlIHBh IGRlaSBqYWkgZ2F1IGpldG51JycKCl9fJydndW5tYScnX18geDEgaXMgYSBtYXNzIG9mIHRoZSBp bmRpdmlkdWFscyB4MgoKX18nJ3ZhbHNpJydfXyB4MSBpcyBhIHdvcmQsIG1lYW5pbmcgeDIgaW4g bGFuZ3VhZ2UgeDMKCl9fJydjYSdlJydfXyBBdHRpdHVkaW5hbDogRXZpZGVudGlhbDogSSBkZWZp bmUKCl9fJydqZXRudScnX18geDEgaXMgdHJ1ZSBhY2NvcmRpbmcgdG8gbWV0YXBoeXNpY3MvZXBp c3RlbW9sb2d5IHgyCgpBbnN3ZXI6IH5+Z3JleSxncmV5OiAiVGhlc2UgdHdvIHV0dGVyYW5jZXMg YXJlIGEgbWFzcywgY29uc2lzdGluZyBvZiB0d28gaW5kaXZpZHVhbCBtYXNzZXMgZWFjaCBvZiBz ZXZlbiB3b3Jkcy4gSSBkZWZpbmU6IFRoaXMgb25lIHV0dGVyYW5jZSBjYXVzZXMge2l0fSB0byBi ZSB0cnVlLiJ+fgoKCgotIC0nJ2xhaScnLSAtIE11Y2ggbGlrZSAnJ2xhJycsIGFuIGlubmVyIHF1 YW50aWZpZXIgKHdoZW4gbmFtZSBpcyBhIHNlbGJyaSkgaXMgcGFydCBvZiB0aGUgbmFtZS4gQW4g b3V0ZXIgb25lIHF1YW50aWZpZXMgZGlzdHJpYnV0aXZlbHkuIEJlZm9yZSBhIG51bWJlcitzdW10 aSwgYm90aCB0aGUgc3VtdGkgYW5kIHRoZSBudW1iZXIgbWFrZSB1cCB0aGUgbmFtZS4KCldoZW4g YSBmcmFjdGlvbiBpcyB1c2VkIGFzIGFuIG91dGVyIHF1YW50aWZpZXIgdG8gcXVhbnRpZnkgJyds b2knJywgJydsZWknJyBvciAnJ2xhaScnLCBvbmUgc3BlYWtzIGFib3V0IG9ubHkgcGFydCBvZiB0 aGUgbWFzcyAoZm9yIGluc3RhbmNlLCAiaGFsZiBvZiB0aGUgSm9obnNvbnMiIC0gJydwaSBtdSBs YWkgLmRqYW5zeW4uJycpLgoKCgotIC0nJ2xvJ2knJyBhbmQgJydsZSdpJyctIC0gQW4gaW5uZXIg cXVhbnRpZmllciBkZXNjcmliZXMgdGhlIGFtb3VudCBvZiBtZW1iZXJzIG9mIHRoZSBzZXQuIEFu IG91dGVyIHF1YW50aWZpZXMgZGlzdHJpYnV0aXZlbHkgb3ZlciBzZXZlcmFsIG9mIHN1Y2ggc2V0 cy4gV2hlbiBwbGFjZWQgYmVmb3JlIGEgbnVtYmVyIGFuZCBhIHN1bXRpLCBpdCdzIGRlZmluZWQg YXMgIicnbG8gc2VsY21pIGJlICcnbG8nJy8nJ2xlJycge251bWJlcn0ge3N1bXRpfSIgLSAiVGhl IHNldCBvZiB7bnVtYmVyfSB7c3VtdGl9Ii4KCgoKVHJhbnNsYXRlICcnbG8naSBybyBzZSBjaW5r aSBjdSBicmFtYXUgbGEnYSBwYSBubyBubyBsbydpIHJvIHNlIGJvZ3lrYW1qdSBqdXRzaScnCgpf XycnY2lua2knJ19fIHgxIGlzIGFuIGluc2VjdCBvZiBzcGVjaWVzIHgyCgpfXycnbGEnYScnX18g QXR0aXR1ZGluYWw6IERpc2N1cnNpdmU6IFByb2JhYmx5CgpfXycnYnJhbWF1JydfXyB4MSBpcyBi aWdnZXIgdGhhbiB4MiBpbiBkaW1lbnNpb24geDMgYnkgbWFyaWdpbiB4NAoKX18nJ2JvZ3lrYW1q dScnX18geDEgaXMgdGhlIHNwaW5lIG9mIHgyCgpfXycnanV0c2knJ19fIHgxIGlzIHRoZSBzcGVj aWVzIG9mIGdlbnVzIHgyLCBmYW1pbHkgeDMgLi4uIChvcGVuIGVuZGVkIGNsYXNzaWZpY2F0aW9u KQoKQW5zd2VyOiB+fmdyZXksZ3JleTogIlRoZSBzZXQgb2YgYWxsIHRoZSBzcGVjaWVzIG9mIGlu c2VjdHMgaXMgcHJvYmFibHkgYmlnZ2VyIHRoYW4gb25lIGh1bmRyZWQgc2V0cyBvZiBhbGwgc3Bl Y2llcyBvZiB2ZXJ0ZWJyYXRlcyJ+fgoKCgotIC0nJ2xhJ2knJy0gLSBBcyB3aXRoICcnbGFpJycK Ckxpa2Ugd2l0aCB0aGUgbWFzcyBnYWRyaSwgYW4gb3V0ZXIgcXVhbnRpZmllciBiZWZvcmUgYSBz ZXQgZ2FkcmkgZW5hYmxlcyBvbmUgdG8gc3BlYWsgYWJvdXQgYSBmcmFjdGlvbiBvZiBhIHNldC4g SW4gZnJvbnQgb2YgYSBudW1iZXIgYW5kIGEgc3VtdGksIGl0J3MgZGVmaW5lZCBhcyAiJydsbyBz ZWxjbWkgYmUgbGEnJyB7bnVtYmVyfSB7c3VtdGl9IiAtICJUaGUgc2V0IGNvbnNpc3Rpbmcgb2Yg VGhlIHtOdW1iZXJ9IHtTdW10aX0iIChjb25zaWRlcmVkIGEgbmFtZSkKCgoKLSAtJydsbydlJycg YW5kICcnbGUnZScnLSAtIEFyZSBmb3Igc29tZSByZWFzb24gbm90IGluY2x1ZGVkIGluIHRoZSBj dXJyZW50bHkgYWNjZXB0ZWQgZ2FkcmkgcHJvcG9zYWwuIElmIG9uZSB3ZXJlIHRvIGV4dGVuZCB0 aGUgcnVsZXMgb2YgYW5vdGhlciBnYWRyaSwgJydsbycnLycnbGUnJyB3b3VsZCBwcm9iYWJseSBi ZSB0aGUgYmVzdCBjaG9pY2UgKHNpbmNlIGJvdGggb3BlcmF0ZXMgd2l0aCBpbmRpdmlkdWFscyBy YXRoZXIgdGhhbiBncm91cHMpLCBhbmQgc28gb25lIHdvdWxkIGV4cGVjdCB0aGUgb3V0ZXIgcXVh bnRpZmllciB0byBmb3JjZSBkaXN0cmlidXRpdml0eSBvdmVyIHRoZSBhbW91bnQgb2YgdHlwaWNh bC9zdGVyZW90eXBpY2FsIHRoaW5ncyBnaXZlbiBieSB0aGUgaW5uZXIgcXVhbnRpZmllci4KCgoK V2hlbiBxdWFudGlmeWluZyBzdW1rYSdpIHJlcHJlc2VudGluZyBzZXZlcmFsIG9iamVjdHMsIGl0 IGlzIHVzZWZ1bCB0byByZW1lbWJlciB0aGF0IHRoZXkgYXJlIHVzdWFsbHkgbWFzc2VzLiBCeSBk ZWZpbml0aW9uLCAie251bWJlcn0ge3N1bXRpfSIgaXMgZGVmaW5lZCBhcyAie251bWJlcn0gJydk YSBwb2kga2UnYSBtZScnIHtzdW10aX0iLiBZb3Ugd2lsbCBub3QgYmUgZmFtaWxpYXIgd2l0aCAn J2RhJycgdW50aWwgYSBmZXcgbGVzc29ucyBsYXRlciwgc28gdGFrZSBpdCBvbiBmYWl0aCB0aGF0 IGl0IG1lYW5zICJzb21ldGhpbmciIGluIHRoaXMgY29udGV4dC4gVGhlcmVmb3JlLCAnJ2NpIG1p JycgbWVhbnMgIlR3byBvZiB0aG9zZSB3aG8gYmVsb25nIHRvICJ1cyIiLiBXaGVuIHF1YW50aWZ5 aW5nIHN1Y2ggbWFzc2VzLCBpdCBjYW4gc2FmZWx5IGJlIGFzc3VtZWQgdGhhdCB0aGUgcmVsYXRp b24gaW1wbGllZCBieSAnJ21lJycgaXMgbWVtYmVyc2hpcCBvZiB0aGUgbWFzcywgYW5kIHRoZXJl Zm9yZSAnJ2NpIG1pJycgaXMgIlRocmVlIG9mIHVzIi4KCgoKU29tZSBpbXBvcnRhbnQgdXNlcyBv ZiBxdWFudGlmaWNhdGlvbiByZXF1aXJlcyB5b3UgdG8gYmUgcXVhbnRpZnkgc2VsYnJpIG9yIG9i amVjdHMgd2hvc2UgaWRlbnRpdHkgaXMgdW5rbm93bi4gVGhpcyBpcyBkb25lIGJ5ICJsb2dpY2Fs bHkgcXVhbnRpZmllZCB2YXJpYWJsZXMiLiBUaGVzZSwgYXMgd2VsbCBhcyBob3cgdG8gcXVhbnRp ZnkgdGhlbSB3aWxsIGJlIGNvdmVyZWQgaW4gbGVzc29ucyB0d2VudHktc2V2ZW4uCgoKCkxhc3Rs eSwgaG93IGNhbiB5b3UgcXVhbnRpZnkgdW5jb3VudGFibGUgc3Vic3RhbmNlcyBsaWtlIHN1Z2Fy IG9yIHdhdGVyPyBPbmUgc29sdXRpb24gaXMgdG8gcXVhbnRpZnkgaXQgdXNpbmcgaW5leGFjdCBu dW1iZXJzLiBUaGlzIHVzZSBpcyB2YWd1ZSwgbm90IG9ubHkgYmVjYXVzZSB0aGUgdmFsdWUgb2Yg dGhlIG51bWJlciBpcyB2YWd1ZSwgYnV0IGFsc28gYmVjYXVzZSBpdCdzIG5vdCBzcGVjaWZpZWQg b24gd2hhdCBzY2FsZSB5b3UncmUgY291bnRpbmc6IFRoZSBzdWdhciBjb3VsZCBiZSBjb25zaWRl cmVkIGEgZ3JvdXAgb2YgbWFueSBjcnlzdGFscywgY291bnRlZCBvbmUgYXQgYSB0aW1lLCBhbmQg dGhlIHdhdGVyIGNvdWxkIGJlIHF1YW50aWZpZWQgYnkgdGhlIGFtb3VudHMgb2YgcmFpbmRyb3Bz IGl0IHRvb2sgdG8gbWFrZSB0aGUgYm9keSBvZiB3YXRlciBpbiBxdWVzdGlvbi4gV2hpbGUgdGhp cyB3YXkgb2YgY291bnRpbmcgaXMgbGVnaXRpbWF0ZSwgaXQncyBub3QgdmVyeSBleGFjdCBhbmQg Y2FuIGVhc2lseSBjb25mdXNlIG9yIG1pc2xlYWQuCgpBIHdheSB0byBiZSBleHBsaWNpdCBhYm91 dCBub24tY291bnRhYmlsaXR5IGlzIHRvIHVzZSB0aGUgbnVsbCBvcGVyYW5kICcndHUnbycnIGFz IGFuIGlubmVyIHF1YW50aWZpZXIuCgpfXycndHUnbycnX18gTnVsbCBvcGVyYW5kICggw5ggKS4g VXNlZCBpbiB1bmFyeSBtZWtzby4KClRoaXMgc29sdXRpb24gaXMgZWxlZ2FudCBhbmQgaW50dWl0 aXZlLCBhbmQgYWxzbyBnaXZlcyBtZSBhbiBleGN1c2UgdG8gcXVvdGUgdGhpcyBob3JyaWZ5aW5n LCB5ZXQgY29taWNhbCBleGFtcGxlIGZyb20gdGhlIG9yaWdpbmFsICcneG9ybG8nJy1wcm9wb3Nh bDoKCicnbGUgbmFubXUgY3Ugc2Ugc251dGkgLmkgamEnZSBibyBsbyB0dSdvIGdlcmt1IGN1IGt1 c3BlIGxlIGtsYWppJycKCl9fJydzbnV0aScnX18geDEgaXMgYW4gYWNjaWRlbnQgb24gdGhlIHBh cnQgb2YgeDIKCl9fJydqYSdlJydfXyBzdW10Y2l0YTogQkFJOiAoZnJvbSAnJ2phbGdlJycpOiBC cmlkaSByZXN1bHRzIGluIHtzdW10aX0gCgpfXycna3VzcGUnJ19fIHgxIHNwYW5zL2V4dGVuZHMg b3ZlciB4MgoKX18nJ2tsYWppJydfXyB4MSBpcyBhIHJvYWQvYXZlbnVlL3N0cmVldCBhdCB4MiBh Y2Nlc3NpbmcgeDMKCgoKV2hhdCBkb2VzIGl0IG1lYW4/CgpBbnN3ZXI6IH5+Z3JleSxncmV5OiAi VGhlIG1hbiBoYWQgYW4gYWNjaWRlbnQgYW5kIHNvIHRoZXJlIHdhcyBkb2cgYWxsIG92ZXIgdGhl IHJvYWQifn4KCgoKQSBzZWNvbmQgbWV0aG9kIG9mIHF1YW50aWZ5aW5nIHN1YnN0YW5jZXMgaXMg dG8gdXNlIHRoZSB0ZW5zZXMgJyd2ZSdpJycsICcndmUnYScnIGFuZCAnJ3ZlJ3UnJyBhcyBtZW50 aW9uZWQgaW4gbGVzc29uIHRlbjoKCicndGkgdmUnaSBkamFjdScnIC0gVGhpcyBpcyBhIHNtYWxs IGFtb3VudCBvZiB3YXRlcgoKX18nJ2RqYWN1JydfXyB4MSBpcyBhbiBleHBhbnNlIG9mIHdhdGVy L2lzIG1hZGUgb2Ygd2F0ZXIvY29udGFpbnMgd2F0ZXIKCgoKVGhpcmRseSwgb2YgY291cnNlLCB5 b3UgY291bGQgdXNlIGEgYnJpdmxhIHRvIGdpdmUgYW4gZXhhY3QgbWVhc3VyZW1lbnQ6CgonJ2xl IHRhIGRqYWN1IGN1IGtpJ29ncmEgYmUgbGkgcmUgcGkga2knbyBraSdvJycgLSAiVGhhdCB3YXRl ciBoYXMgYSBtYXNzIG9mIDIuMDAwIDAwMCBraWxvZ3JhbXMiCgpfXycna2knb2dyYScnX18geDEg bWVhc3VyZXMgaW4gbWFzcyB4MiBraWxvZ3JhbXMgYnkgc3RhbmRhcmQgeDMKCgoKISFMb2piYW4g TGVzc29ucyAtIExlc3NvbiB0d2VudHktdGhyZWUgKG5lZ2F0aW9uKQoKU29tZXRpbWVzLCBqdXN0 IHNheWluZyB3aGF0J3MgdGhlIHRydXRoIGlzIG5vdCBlbm91Z2guIE9mdGVuLCB3ZSB3YW50IHRv IHNwZWNpZnkgd2hhdCdzIG5vdCB0aGUgdHJ1dGgsIGFuZCB3ZSBkbyB0aGlzIGJ5IHVzaW5nIG5l Z2F0aW9uLgoKTmVnYXRpb24gaW4gRW5nbGlzaCBtb3N0bHkgaW52b2x2ZXMg4oCcbm904oCdLCBh bmQgaXMgY29tcGxldGVseSBhcmJpdHJhcnkgYW5kIGFtYmlndW91cy4gV2UsIGFzIExvamJhbmlz dHMsIGNhbid0IGhhdmUgdGhhdCwgb2YgY291cnNlLCBzbyBMb2piYW4gY29udGFpbnMgYW4gZWxl Z2FudCBhbmQgdW5hbWJpZ2lvdXMgc3lzdGVtIGZvciBuZWdhdGluZy4gV2hhdCB3aWxsIGJlIHBy ZXNlbnRlZCBoZXJlIGFyZSB0aGUgb2ZmaWNpYWwgZ29sZC1zdGFuZGFyZCBydWxlcy4gRGlzYXBw cm92YWwgb2YgdGhlc2UgImdvbGRlbiBydWxlcyIgY29uY2VybmluZyAnJ25hJycgaXMgZ3Jvd2lu ZywgYW5kIHRoZXJlIGlzIGRpc2FncmVlbWVudCBhYm91dCB3aGF0IHJ1bGUgc2V0IHNob3VsZCBy ZXBsYWNlIGl0LiBGb3Igbm93LCBJIHdpbGwgc3RpY2sgd2l0aCB0aGUgb2ZmaWNpYWwgcnVsZXMs IGFuZCB0aGVyZWZvcmUsIHNvIHdpbGwgeW91LCBkZWFyIHJlYWRlci4KClRoZSBmaXJzdCB5b3Ug bmVlZCB0byBrbm93IGFib3V0IGlzIGJyaWRpIG5lZ2F0aW9uLCBzbyBjYWxsZWQgYmVjYXVzZSBp dCBuZWdhdGVzIHRoZSBicmlkaSBpdCdzIGluLCBzYXlpbmcgaXQncyBub3QgdHJ1ZS4gVGhlIHdh eSB0byBuZWdhdGUgYSBicmlkaSBpcyB0byBwbGFjZSAnJ25hJycgZmlyc3QgaW4gdGhlIHNlbnRl bmNlIHdpdGggYSAnJ2t1JycgYWZ0ZXIgaXQsIG9yIGp1c3QgYmVmb3JlIHRoZSBzZWxicmkuIAoK X18nJ3NwZW5pJydfXyB4MSBpcyBtYXJyaWVkIHRvIHgyIHVuZGVyIGNvbnZlbnRpb24geDMKClRo dXM6ICcnbmEga3UgbGUgbWkgc3BlbmkgY3UgbmlubXUnJyBzdGF0ZXMgdGhhdCDigJxNeSBzcG91 c2UgaXMgbm90IGEgd29tYW7igJ0uIEl0IHN0YXRlcyBub3RoaW5nIGFib3V0IHdoYXQgbXkgd2lm ZSBpcywgb3IgaWYgSSBldmVuIGhhdmUgYSB3aWZlLiBJdCBvbmx5IHN0YXRlcyB0aGF0IEkgZG8g bm90IGhhdmUgYSB3aWZlIHdobyBpcyBhbHNvIGEgd29tYW4uIFRoaXMgaGFzIGFuIGltcG9ydGFu dCBpbXBsaWNhdGlvbjogSWYgdGhlIG5lZ2F0aW9uIG9mIGEgYnJpZGkgaXMgZmFsc2UsIHRoZSBi cmlkaSBtdXN0IGJlIHRydWU6ICcnbmEga3UgbGUgbWkgc3BlbmkgY3UgbmEgbmlubXUnJyBtdXN0 IG1lYW4gdGhhdCBJIGhhdmUgYm90aCBhIHNwb3VzZSwgYW5kIHRoYXQgc2hlIGlzIGEgc2hlLgoK SXQgaXMgcG9zc2libGUgdG8gdXNlIGJyaWRpIG5lZ2F0aW9ucyBpbiBhbGwgYnJpZGksIGV2ZW4g dGhlIGltcGxpY2l0IGJyaWRpIG9mIGRlc2NyaXB0aXZlIHN1bXRpLiAnJ2xvIG5hIHByZW51Jycg Y2FuIHJlZmVyIHRvIGFueXRoaW5nIG5vbi1odW1hbiwgd2hldGhlciBpdCBiZSBhIHNwaGlueCwg YSBiYXNlYmFsbCBvciB0aGUgcHJvcGVydHkgb2YgYXBwcm9wcmlhdGVuZXNzLgoKCgpfXycnYmF1 JydfXyBzdW10Y2l0YSwgZnJvbSBiYW5ndTogdXNpbmcgdGhlIGxhbmd1YWdlIG9mIHtzdW10aX0K Cl9fJydzZSBqYSdlJydfXyBzdW10Y2l0YSwgZnJvbSBzZSBqYWxnZTogYmVjYXVzZSBvZiB7c3Vt dGl9CgoKCk9mdGVuIHdoZW4gdXNpbmcgJyduYScnLCBpdCdzIGEgcHJvYmxlbSB0aGF0IGl0IG5l Z2F0ZXMgdGhlIGVudGlyZSBicmlkaS4gSWYgSSBzYXkgJydtaSBuYSBzdXRyYSB0YXZsYSBiYXUg bGUgZ2xpYmF1IHNlIGphJ2UgbGUgbnUgbWkgZG90Y28nJywgSSBlbmQgdXAgbmVnYXRpbmcgdG9v IG11Y2gsIGFuZCBpdCBpcyBub3QgY2xlYXIgdGhhdCBJIHdhbnRlZCB0byBvbmx5IG5lZ2F0ZSB0 aGF0IEkgc3BlYWsgZmFzdC4gVGhlIHNlbnRlbmNlIGNvdWxkIHN1Z2dlc3QgdGhhdCBJIGluIGZh Y3Qgc3BlYWsgZmFzdCBiZWNhdXNlIG9mIHNvbWUgb3RoZXIgcmVhc29uLCBmb3IgaW5zdGFuY2Ug dGhhdCBJIHNwZWFrIGZhc3QgaW4gRnJlbmNoIGJlY2F1c2UgSSdtIEdlcm1hbi4gVG8gZXhwcmVz cyB0aGUgc2VudGVuY2UgbW9yZSBwcmVjaXNlbHksIEkgbmVlZCB0byBvbmx5IG5lZ2F0ZSB0aGF0 IEkgc3BlYWsgZmFzdCwgYW5kIG5vdCB0aGUgb3RoZXIgdGhpbmdzLgoKVG8gb25seSBuZWdhdGUg cGFydCBvZiBhIGJyaWRpLCAnJ25hIGt1JycgY2FuIGJlIG1vdmVkIGFyb3VuZCB0aGUgYnJpZGkg YW5kIHBsYWNlZCBhbnl3aGVyZSBhIHN1bXRpIGNhbiBnby4gSXQgdGhlbiBuZWdhdGVzIGFueSBz dW10aSwgc2VsYnJpIGFuZCBzdW10Y2l0YSBwbGFjZWQgYWZ0ZXIgaXQuIFdoZW4gcGxhY2VkIGlt bWVkaWF0ZWx5IGJlZm9yZSB0aGUgc2VsYnJpLCB0aGUgJydrdScnIGNhbiBiZSBlbGlkZWQuCgpN b3ZpbmcgJyduYSBrdScnIGZyb20gdGhlIGxlZnQgZW5kIG9mIHRoZSBicmlkaSBhbmQgcmlnaHR3 YXJkcyBlZmZlY3RzIGFueSBxdWFudGlmaWVycyBpbiBhIGNlcnRhaW4gd2F5LCBhcyBjYW4gYmUg c2VlbiBieSB0aGlzIGV4YW1wbGU6CgoKClRoZXJlIGFyZSBmb3JjZXMgd2l0aGluIHRoZSBMb2pi YW4gY29tbXVuaXR5IHdobywgcGVyaGFwcyByaWdodGx5LCB0aGluayB0aGF0IHRoZXJlIGlzIG5v IGdvb2QgcmVhc29uIHRoYXQgYSAnJ25hJycgcGxhY2VkIGJlZm9yZSBhIHNlbGJyaSBuZWdhdGVz IHRoZSBlbnRpcmUgYnJpZGksIHdoZXJlYXMgYSAnJ25hIGt1JycgYW55IG90aGVyIHBsYWNlIG5l Z2F0ZXMgb25seSB3aGF0IGlzIHRyYWlsaW5nIGJlaGluZCBpdC4gSG93ZXZlciwgaW4gdGhlc2Ug bGVzc29ucyB5b3Ugd2lsbCBiZSB0YXVnaHQgd2hhdCBpcyBzdGlsbCB0aGUgb2ZmaWNpYWwgc3Rh bmNlLCBuYW1lbHkgdGhhdCAnJ25hJycgYmVmb3JlIHRoZSBzZWxicmkgbmVnYXRlcyB0aGUgYnJp ZGkuCgoKClRoZSB1c2Ugb2YgJyduYSBrdScnIGlzIGV4ZW1wbGlmaWVkIHdpdGggdGhlIGZvbGxv d2luZyBleGFtcGxlcy4KCicnbmEga3Ugcm8gcmVtbmEgY3UgdmVyYmEnJyDigJxJdCdzIG5vdCB0 cnVlIHRoYXQ6IEFsbCBodW1hbnMgYXJlIGNoaWxkcmVu4oCdCgonJ3N1J28gcmVtbmEgbmEga3Ug Y3UgdmVyYmEnJyDigJxGb3IgYXQgbGVhc3Qgb25lIGh1bWFuIGl0J3Mgbm90IHRydWUgdGhhdDog SXQncyBhIGNoaWxk4oCdLiBTZWUgdGhhdCB0aGUgJyduYSBrdScnIGlzIHBsYWNlZCBiZWZvcmUg JydjdScnLCBzaW5jZSBhIHN1bXRpIGNhbiBnbyBvbmx5IGJlZm9yZSwgbm90IGFmdGVyIHRoZSAn J2N1JycuIEhhZCBJIG9ubHkgdXNlZCAnJ25hJycsIGl0IHdvdWxkIGhhdmUgdG8gZ28gYWZ0ZXIg JydjdScnIC0gYnV0IHRoYXQgd291bGQgaGF2ZSBuZWdhdGVkIHRoZSBlbnRpcmUgYnJpZGksIG1l YW5pbmcgIkl0J3Mgbm90IHRydWUgdGhhdDogQXQgbGVhc3Qgb25lIGh1bWFuIGlzIGEgY2hpbGQi LgoKCgpXaGVuIHRoZSAnJ25hIGt1JycgaXMgbW92ZWQgcmlnaHR3YXJkcywgYW55IHF1YW50aWZp ZXIgaXMgaW52ZXJ0ZWQgLSB0aGF0IGlzOiAnJ3JvJycgaXMgdHVybmVkIGludG8gJydzdSdvJycu IFRoaXMgaXMsIG9mIGNvdXJzZSwgb25seSBpZiB0aGUgbWVhbmluZyBvZiB0aGUgYnJpZGkgaGFz IHRvIGJlIHByZXNlcnZlZC4gVGhpcyBtZWFucyB0aGF0IHdoZW4gdGhlICcnbmEga3UnJyBpcyBw bGFjZWQgYXQgdGhlIGVuZCBvZiB0aGUgYnJpZGksIG9ubHkgdGhlIHNlbGJyaSBpcyBuZWdhdGVk IGJ1dCBhbGwgdGhlIHN1bXRpIGFuZCBzdW10Y2l0YSBhcmUgcHJlc2VydmVkLCBhcyBjYW4gYmUg c2VlbiBieSB0aGVzZSB0aHJlZSBpZGVudGljYWwgYnJpZGk6CgpfXycnY2t1bGUnJ19fIHgxIGlz IGEgc2Nob29sIGF0IGxvY2F0aW9uIHgyIHRlYWNoaW5nIHgzIHRvIHN0dWRlbnRzIHg0IGFuZCBv cGVyYXRlZCBieSB4NQoKCgonJ25hIGt1IHJvIHZlcmJhIGN1IHZlIGNrdWxlIGZvIHN1J28gY2t1 bGUnJyDigJMg4oCcSXQncyBub3QgdHJ1ZSB0aGF0IGFsbCBjaGlsZHJlbiBhcmUgc3R1ZGVudHMg aW4gYSBzY2hvb2wu4oCdCgonJ3N1J28gdmVyYmEgY3UgdmUgY2t1bGUgbmEga3UgZm8gc3UnbyBj a3VsZScnIOKAkyDigJxTb21lIGNoaWxkcmVuIGFyZSBzdHVkZW50cyBpbiBub3QgYSBzaW5nbGUg c2Nob29sLuKAnQoKJydzdSdvIHZlcmJhIGN1IHZlIGNrdWxlIGZvIHJvIGNrdWxlIG5hIGt1Jycg 4oCTIOKAnFNvbWUgY2hpbGRyZW4gYXJlIGZvciBhbGwgc2Nob29scyBub3Qgc3R1ZGVudHMgaW4g dGhlbS7igJ0KCgoKVGhlIG9wcG9zaXRlIG9mICcnbmEnJyBpcyAnJ2phJ2EnJy4gVGhpcyBpcyBi YXJlbHkgZXZlciB1c2VkLCBzaW5jZSBpdCBpcyBkZWZhdWx0IGluIG1vc3QgYnJpZGkuIE9uZSBl eGNlcHRpb24gaXMgcmVwZWF0ZWQgYnJpZGkgKG5leHQgbGVzc29uKS4gU29tZXRpbWVzIGl0J3Mg dXNlZCB0byBwdXQgbW9yZSB3ZWlnaHQgb24gdGhlIHRydXRoIG9mIHRoZSBicmlkaSwgYXMgaW4g JydsYSAuYmFiLiBqYSdhIG1lbGJpJycgPSAiQm9iIGlzIGluZGVlZCBiZWF1dGlmdWwiLgoKCgpX aGlsZSB0aGUgbWVjaGFuaXNtIG9mICcnbmEga3UnJyByZXNlbWJsZXMgbmF0dXJhbCBsYW5ndWFn ZSBuZWdhdGlvbiwgaXQgY2FuIGJlIGRpZmZpY3VsdCB0byBrZWVwIHRyYWNrIG9mIGV4YWN0bHkg d2hhdCBpcyBuZWdhdGVkIGFuZCBob3cgdGhhdCBhZmZlY3RzIHRoZSBicmlkaS4gRm9yIHRoYXQg cmVhc29uLCB0aGUgY29uc3RydWN0ICcnbmEga3UnJyBpcyByYXJlbHkgc2VlbiBhbnl3aGVyZSBv dGhlciB0aGFuIHRoZSBiZWdpbm5pbmcgb2YgYSBicmlkaS4gSW4gbW9zdCBjYXNlcyB3aGVyZSBt b3JlIHNwZWNpZmljIG5lZ2F0aW9uIGlzIG5lZWRlZCBwZW9wbGUgcmVzb3J0IHRvIGEgZGlmZmVy ZW50IG1ldGhvZC4gVGhpcyBtZXRob2QsIGNhbGxlZCBzY2FsYXIgbmVnYXRpb24sIGlzIGFuIGVs ZWdhbnQgYW5kIGludHVpdGl2ZSB0b29sLiBVc2luZyBpdCwgeW91IGVmZmVjdCBvbmx5IHRoZSBz ZWxicmksIHNpbmNlIHRoZSB3b3JkcyB1c2VkIGluIHNjYWxhciBuZWdhdGlvbiBiaW5kcyB0byB0 aGUgc2VsYnJpIG11Y2ggbGlrZSB0aGUgd29yZCAnJ3NlJycuCgpUaGUgbmFtZSDigJxzY2FsYXIg bmVnYXRpb27igJ0gaXMgZGVyaXZlZCBmcm9tIHRoZSBmYWN0IHRoYXQgdGhlIHdvcmRzIHdoaWNo IGJpbmQgdG8gdGhlIHNlbGJyaSBjYW4gYmUgcGxhY2VkIGFsb25nIGEgc2NhbGUgZnJvbSBhZmZp cm1hdGlvbiBvdmVyIG5lZ2F0aW9uIGFuZCB0byBzdGF0aW5nIHRoYXQgdGhlIG9wcG9zaXRlIGNh c2UgaXMgdHJ1ZToKCnx8V29yZHxNZWFuaW5nCgpqZSdhfOKAnEluZGVlZOKAnTsgc2NhbGFyIGFm ZmlybWVyCgpubydlfOKAnE5vdCByZWFsbHnigJ0sIHNjYWxhciBtaWRwb2ludAoKbmEnZXzigJxO b24t4oCcLCBzY2FsYXIgbmVnYXRvcgoKdG8nZXzigJxJbOKAnSwg4oCcRGlzLeKAnCwg4oCcTWlz 4oCdIGVjdDsgc2NhbGFyIG9wcG9zZXJ8fAoKCgpUaGVzZSB3b3JkcyBhcmUgbm90IG5lZ2F0b3Jz IGluIHRoZSBzYW1lIHNlbnNlIGFzICcnbmEnJy4gVGhleSBkbyBub3Qgc3RhdGUgdGhhdCBhIGJy aWRpIGlzIGZhbHNlLCBidXQgbWFrZXMgYSBwb3NpdGl2ZSBzdGF0ZW1lbnQgdGhhdCBhIGJyaWRp IGlzIHRydWUg4oCTIHRoZSBzYW1lIGJyaWRpLCBidXQgd2l0aCBhIGRpZmZlcmVudCBzZWxicmku IFRoaXMgZGlzdGluY3Rpb24gaXMgbW9zdGx5IGFjYWRlbWljLCB0aG91Z2guIElmLCBmb3IgZXhh bXBsZSwgSSBzdGF0ZSB0aGF0ICcnbWkgbmEnZSBzZSBuZWxjaScnICJJIGFtIG5vbi1saWtlZCIs IEkgYWN0dWFsbHkgc3RhdGUgdGhhdCBzb21lIHNlbGJyaSBhcHBsaWVzIHRvIG1lLCB3aGljaCBp cyBhbHNvIG9uIGEgcmVsZXZhbnQgc2NhbGUgd2l0aCB0aGUgc2VsYnJpICcnbmVsY2knJy4gTW9z dCBvZiB0aGUgdGltZSwgd2UgYXNzdW1lIGEgc2NhbGUgd2hlcmUgdGhlIHBvc2l0aW9ucyBhcmUg bXV0dWFsbHkgZXhjbHVzaXZlIChsaWtlIGxvdmUtbGlrZS1kaXNsaWtlLWhhdGUpLCBzbyAnJ21p IG5hJ2Ugc2UgbmVsY2knJyBpbXBsaWVzICcnbWkgbmEgc2UgbmVsY2knJwoKVGhlcmVmb3JlLCB0 aGUgd29yZHMgJydubydlJycgYW5kICcndG8nZScnIHNob3VsZCBvbmx5IGJlIHVzZWQgd2hlbiB0 aGUgc2VsYnJpIGlzIHBsYWNlZCBvbiBzb21lIG9idmlvdXMgc2NhbGU6CgonJ2xlIG1pIHNwZW5p IGN1IHRvJ2UgbWVsYmknJyDigJMg4oCdTXkgc3BvdXNlIGlzIHVnbHnigJ0gbWFrZXMgc2Vuc2Us IHNpbmNlIHdlIGltbWVkaWF0ZWx5IGtub3cgd2hhdCB0aGUgb3Bwb3NpdGUgb2YgYmVhdXRpZnVs IGlzLCB3aGlsZQoKJydtaSBrbGFtYSBsZSBtaSB0bydlIHpkYW5pJycg4oCTIOKAnUkgZ28gdG8g bXkgb3Bwb3NpdGUgdGhpbmcgb2YgaG9tZeKAnSwgd2hpbGUgZ3JhbW1hdGljYWwsIGxlYXZlcyB0 aGUgbGlzdGVuZXIgZ3Vlc3Npbmcgd2hhdCB0aGUgc3BlYWtlcidzIOKAnG9wcG9zaXRlLWhvbWXi gJ0gaXMgYW5kIHNob3VsZCBiZSBhdm9pZGVkLgoKCgpTbyBob3cgY2FuIHlvdSBuZWdhdGUgb25s eSB0aGUgc2VsYnJpIHdpdGhvdXQgYWxzbyBpbXBseWluZyB0aGF0IHRoZSBzZWxicmkgaXMgY29y cmVjdCBhdCBzb21lIG90aGVyIHBvc2l0aW9uIG9uIGEgdHJ1dGgtc2NhbGU/IFNpbXBsZTogTW92 aW5nIHRoZSAnJ25hIGt1JycgdG8gdGhlIHJpZ2h0bW9zdCBlbmQgb2YgdGhlIGJyaWRpLCBhcyBk ZW1vbnN0cmF0ZWQgYSBmZXcgbGluZXMgYWJvdmUuIFRoaXMgZmVhdHVyZSBpcyB2ZXJ5IHVzZWZ1 bC4gU29tZSBsb2piYW5pc3RzIHByZWZlciB0byBwcmVmaXggdGhlIHJhZnNpICcnbmFyJycgKHRo ZSByYWZzaSBvZiAnJ25hJycpIGluIGZyb250IG9mIHRoZSBzZWxicmkgLSB0aGlzIGhhcyB0aGUg c2FtZSBlZmZlY3QsIGJ1dCBJIGFkdmlzZSBhZ2FpbnN0IGl0LCBiZWNhdXNlIGl0IG1ha2VzIGZh bWlsaWFyIGJyaXZsYSBzZWVtIGFsaWVuLCBhbmQgaXQncyBoYXJkZXIgdG8gdW5kZXJzdGFuZCB3 aGVuIHNwb2tlbiBjYXN1YWxseS4KCklmIGEgc2l0dWF0aW9uIGFyaXNlcyB3aGVyZSB5b3UgbmVl ZCB0byBuZWdhdGUgb25seSB0aGUgc2VsYnJpLCBidXQgd2FudCBpdCB0byBiZSBjbGVhciBiZWZv cmUgdGhlIGVuZCBvZiB0aGUgYnJpZGksIHRoZSBleHBlcmltZW50YWwgY21hdm8gJyduYSdlaScn LCB3aGljaCBncmFtbWF0aWNhbGx5IHdvcmtzIGxpa2UgJyduYSdlJycsIGNhbiBiZSB1c2VkCgpf XycnbmEnZWknJ19fOiBOZWdhdGVzIHRoZSBmb2xsb3dpbmcgc2VsYnJpIG9ubHkKCgoKVHJ5IHRv IHRyYW5zbGF0ZSB0aGVzZSBzZW50ZW5jZXM6CgrigJxNeSBzcG91c2UgaXMgbm90IGEgd29tYW7i gJ0gKG1lYW5pbmcgdGhhdCBoZSBpcyBhIG1hbGUpCgoKCkFuc3dlcjogfn5ncmV5LGdyZXk6Jyds ZSBtaSBzcGVuaSBjdSBuYSdlIC8gdG8nZSBuaW5tdScnLiBVc2luZyBzY2FsYXIgbmVnYXRpb24g aGVyZSBpbXBsaWVzIHRoYXQgaGUgZXhpc3RzLCB3aGljaCBuYSBkaWQgbm90Ln5+CgoKCuKAnE15 IHNwb3VzZSBpcyBub3QgcmVhbGx5IGEgd29tYW7igJ0KCgoKQW5zd2VyOiB+fmdyZXksZ3JleTon J2xlIG1pIHNwZW5pIGN1IG5vJ2UgbmlubXUnJy4gVGhlIHNjYWxlIGhlcmUgaXMgcHJlc3VtZWQg dG8gYmUgZnJvbSB3b21hbiB0byBtYW4ufn4KCgoK4oCcSSBkb24ndCBzcGVhayBmYXN0IGluIEVu Z2xpc2ggYmVjYXVzZSBJJ20gR2VybWFu4oCdCgoKCkFuc3dlcjogfn5ncmV5LGdyZXk6JydtaSBu YSdlIHN1dHJhIHRhdmxhIGJhdSBsZSBnbGliYXUgc2UgamEnZSBsZSBudSBtaSBkb3Rjbycnfn4K CgoKQWxzbywgbm90ZSB0aGF0IHdoZW5ldmVyIHRoZXNlIHdvcmRzIGFyZSB1c2VkIHRvZ2V0aGVy IHdpdGggYSB0YW5ydSwgdGhleSBvbmx5IGFmZmVjdCB0aGUgbGVmdG1vc3Qgc2VsYnJpLiBJbiBv cmRlciB0byBtYWtlIGl0IGJpbmQgdG8gdGhlIHdob2xlIHRhbnJ1IG9yIHBhcnRzIG9mIHRoZSB0 YW5ydSwgdGhlIHVzdWFsIHRhbnJ1LWdyb3VwaW5nIHdvcmRzIGNhbiBiZSB1c2VkLgoKCgpUcnkg dG8gc2F5IOKAnEkgc2VsbCBzb21ldGhpbmcgd2hpY2ggaXMgbm90IHllbGxvdyBob21lc+KAnSB1 c2luZyB0aGUgdGFucnUgJydwZWx4dSB6ZGFuaSB2ZWNudScnCgoKCkFuc3dlcjogfn5ncmV5LGdy ZXk6JydtaSBuYSdlIGtlIHBlbHh1IHpkYW5pIGtlJ2UgdmVjbnUgb3IgbWkgbmEnZSBwZWx4dSBi byB6ZGFuaSB2ZWNudScnfn4KCgoKV2hlbiBhdHRlbXB0aW5nIHRvIGFuc3dlcjog4oCcSXMgdGhl IGtpbmcgb2YgdGhlIFVTQSBmYXQ/4oCdLCBhbGwgb2YgdGhlc2UgbmVnYXRpb25zIGZhaWwuIFdo aWxlIGl0J3MgdGVjaG5pY2FsbHkgY29ycmVjdCB0byBuZWdhdGUgaXQgd2l0aCAnJ25hJycsIHNp bmNlIGl0IG1ha2VzIG5vIGFzc3VtcHRpb25zIG9mIHRoYXQgaXMgdHJ1ZSwgaXQncyBtaWxkbHkg bWlzbGVhZGluZyBzaW5jZSBpdCBjb3VsZCBsZWFkIHRoZSBsaXN0ZW5lciB0byBiZWxpZXZlIHRo ZXJlIGlzIGEga2luZyBvZiB0aGUgVVNBLiBGb3IgdGhlc2Ugc2NlbmFyaW9zLCB0aGVyZSBpcyBh IG1ldGFsaW5ndWlzdGljIG5lZ2F0b3IsICcnbmEnaScnLgoKJyduYSdpJycgTWV0YWxpbmd1aXN0 aWMgbmVnYXRvci4gU29tZXRoaW5nIGlzIHdyb25nIHdpdGggYXNzaWduaW5nIGEgdHJ1dGggdmFs dWUgdG8gdGhlIGJyaWRpLgoKQmVjYXVzZSAnJ25hJ2knJyBjYW4gYmUgbmVlZGVkIGFueXdoZXJl IGl0IGhhcyBiZWVuIGdpdmVuIHRoZSBncmFtbWFyIG9mIHRoZSBhdHRpdHVkaW5hbHMsIHdoaWNo IG1lYW5zIGl0IGNhbiBhcHBlYXIgYW55d2hlcmUsIGFuZCBpdCBhdHRhY2hlcyB0byB0aGUgcHJl dmlvdXMgd29yZCBvciBjb25zdHJ1Y3QuCgoKCl9fJydwYWxjaScnX18geDEgaXMgZXZpbCBieSBz dGFuZGFyZCB4MgoKJydsZSBuYSdpIHB1IHRlIHp1a3RlIGJlIGxlIHNrYW1pIGN1IHBhbGNpJycg 4oCTIOKAnVRoZSBzb3VnaHQgZ29hbCB7bWlzdGFrZSF9IG9mIHRoZSBjb21wdXRlciB3YXMgZXZp bOKAnSwgcHJvYmFibHkgcHJvdGVzdHMgdGhhdCBjb21wdXRlcnMgY2FuIHNlZWsgYSBnb2FsIHZv bGl0aW9uYWxseS4KCgoKU2luY2UgdGhpcyBpcyBhIGxlc3NvbiBvbiBuZWdhdGlvbiwgSSBiZWxp ZXZlIHRoZSB3b3JkICcnbmFpJycgZGVzZXJ2ZXMgYSBzaG9ydCBtZW50aW9uLiBJdCBpcyB1c2Vk IHRvIG5lZ2F0ZSBtaW5vciBncmFtbWF0aWNhbCBjb25zdHJ1Y3RzLCBhbmQgY2FuIGJlIHVzZWQg aW4gY29tYmluYXRpb24gd2l0aCBhdHRpdHVkaW5hbHMsIGFsbCBzdW10Y2l0YSBpbmNsdWRpbmcg dGVuc2VzLCB2b2NhdGl2ZXMgYW5kIGxvZ2ljYWwgY29ubmVjdGl2ZXMuIFRoZSBydWxlcyBmb3Ig bmVnYXRpbmcgdXNpbmcgJyduYWknJyBkZXBlbmQgb24gdGhlIGNvbnN0cnVjdCwgYW5kIHNvIHRo ZSBlZmZlY3Qgb2YgJyduYWknJyBoYXMgYmVlbiBkaXNjdXNzZWQgd2hlbiBtZW50aW9uaW5nIHRo ZSBjb25zdHJ1Y3QgdGhlbXNlbHZlcy4gVGhlIGV4Y2VwdGlvbiBpcyBzdW10Y2l0YSwgd2hlcmUg dGhlIHJ1bGVzIGZvciBuZWdhdGlvbiBhcmUgbW9yZSBjb21wbGV4LCBhbmQgd2lsbCBub3QgYmUg ZGlzY3Vzc2VkIGhlcmUuCgpfX05vdGU6X18gQXQgdGhlIHRpbWUgb2Ygd3JpdGluZywgaXQgaGFz IGJlZW4gcHJvcG9zZWQgdG8gbW92ZSAnJ25haScnIHRvIHRoZSBzZWxtYSdvIENBSSwgd2hpY2gg bWVhbnMgdGhlIHNlbWFudGljcyBvZiAnJ25haScnIGRlcGVuZCBvbiB3aGljaCBzZWxtYSdvIGl0 IGZvbGxvd3MuIAoKCgoKCiEhTG9qYmFuIExlc3NvbnMgLSBMZXNzb24gdHdlbnR5LWZvdXIgKGJy aWthJ2kvcHJvLWJyaWRpIGFuZCBrbydhKQoKSWYgSSBzYXkgdGhhdCBJJ20gY2FsbGVkIE1pa2hh aWwsICcnbGEgLm1pa2FpbC4gY21lbmUgbWknJywgYW5kIHlvdSBoYXZlIHRvIHNheSB0aGUgZXhh Y3Qgc2FtZSBicmlkaSwgd2hhdCB3b3VsZCB0aGF0IGJlPyBPbmUgb2YgdGhlIG1hbnkgYW5zd2Vy cyBpcyAnJ2RvIHNlIGNtZW5lIGxhIC5taWthaWwuJycuIEZvciB0aGUgYnJpZGkgdG8gYmUgdGhl IHNhbWUsIHlvdSBoYXZlIHRvIHJlcGxhY2UgJydtaScnIHdpdGggJydkbycnLCBhbmQgaXQgZG9l c24ndCBtYXR0ZXIgd2hpY2ggaWYgeW91IHNheSB0aGUgYnJpZGkgd2l0aCB0aGUgJydzZScnLWNv bnZlcnRlZCBzZWxicmkgb3Igbm90LiBUaGlzIGlzIGJlY2F1c2UgYSBicmlkaSBpcyBub3QgdGhl IHdvcmRzIHdoaWNoIGV4cHJlc3MgaXQg4oCTIGEgYnJpZGkgaXMgYW4gaWRlYSwgYW4gYWJzdHJh Y3QgcHJvcG9zaXRpb24uIFRoZSB3b3JkICcnbWknJyB3aGVuIEkgc2F5IGl0IGFuZCB0aGUgd29y ZCAnJ2RvJycgd2hlbiB5b3UgZG8gcmVmZXJzIHRvIHRoZSBzYW1lIHN1bXRpLCBzbyB0aGUgdHdv IGJyaWRpIGFyZSBpZGVudGljYWwuCgpUaGlzIGxlc3NvbiBpcyBvbiAnJ2JyaWthJ2knJywgdGhl IGJyaWRpIGVxdWl2YWxlbnQgb2Ygc3Vta2EnaS4gVGhleSBhcmUgd29yZCB3aGljaCByZXByZXNl bnQgZW50aXJlIGJyaWRpLiBIZXJlIGl0IGlzIGltcG9ydGFudCB0byByZW1lbWJlciB0aGF0IGEg YnJpZGkgY29uc2lzdHMgb25seSBvZiBzdW10aSBhbmQgdGhlIHRoaW5ncyB3aGljaCBjb250YWlu IHRoZSBzdW10aSwgc2VsYnJpIGFuZCBzdW10Y2l0YS4gTmVpdGhlciBhdHRpdHVkaW5hbHMsIG5v ciB0aGUgc2VtYW50aWMgbGF5ZXIgb2YgJydrbycnIG9yICcnbWEnJyBhcmUgcGFydCBvZiB0aGUg YnJpZGkgcHJvcGVyLCBhbmQgc28gdGhlc2UgYXJlIG5vdCByZXByZXNlbnRlZCBieSBhICcnYnJp a2EnaScnLgoKCgpUaGVyZSBhcmUgbXVjaCBmZXdlciAnJ2JyaWthJ2knJyB0aGFuIHRoZXJlIGFy ZSBzdW1rYSdpLiBXZSB3aWxsIGJlZ2luIGJ5IGdvaW5nIHRocm91Z2ggc29tZSBvZiB0aGUgd29y ZHMgaW4gdGhlIG1vc3QgdXNlZCBzZXJpZXMsIGNhbGxlZCBHT2hBOgoKV29yZDoJRGVmaW5pdGlv bjoKCl9fJydnbyd1JydfXwlSZXBlYXRzIHJlbW90ZSBwYXN0IGJyaWRpCgpfXycnZ28nYScnX18J UmVwZWF0cyBwYXN0IGJyaWRpCgpfXycnZ28nZScnX18JUmVwZWF0cyBuZXh0LXRvLWxhc3QgYnJp ZGkKCl9fJydnbydpJydfXwlSZXBlYXRzIGxhc3QgbWVudGlvbmVkIGJyaWRpCgpfXycnZ28nbycn X18JUmVwZWF0cyBmdXR1cmUgYnJpZGkKCl9fJyduZWknJ19fCVJlcGVhdHMgY3VycmVudCBicmlk aQoKX18nJ25vJ2EnJ19fCVJlcGVhdHMgb3V0ZXIgYnJpZGkKCgoKU29tZSBvZiB0aGUgR09oQS0n J2JyaWthJ2knJy4gTm90aWNlIHRoZSBmYW1pbGlhciBpLCBhLCB1LXBhdHRlcm4gZm9yIGNsb3Nl IGluIHBhc3QsIG1lZGl1bSBpbiBwYXN0IGFuZCBkaXN0YW50IGluIHBhc3QuCgoKClRoZXNlIGFy ZSB2ZXJ5IG11Y2ggbGlrZSB0aGUgc3Vta2EnaSAnJ3JpJycsICcncmEnJyBhbmQgJydydScnLiBU aGV5IGNhbiBvbmx5IHJlZmVyIHRvIG1haW4gYnJpZGkgb2YganVmcmEsIGFuZCBub3QgdGhvc2Ug Y29udGFpbmVkIGluIHJlbGF0aXZlIHBocmFzZXMgb3IgZGVzY3JpcHRpb24gc3VtdGkuIFRoZSBt YWluIGJyaWRpIGNhbiBjb250YWluIGEgcmVsYXRpdmUgcGhyYXNlLCBvZiBjb3Vyc2UsIGJ1dCBh ICcnYnJpa2EnaScnIGNhbiBuZXZlciBiZSB1c2VkIHRvIHJlZmVyIHRvIG9ubHkgdGhlIHJlbGF0 aXZlIHBocmFzZS4KCkEgR09oQSBhY3RzIGdyYW1tYXRpY2FsbHkgbXVjaCBsaWtlIGEgc2VsYnJp LCBhbnkgY29uc3RydWN0IHdoaWNoIGNhbiBhcHBseSB0byBzZWxicmkgY2FuIGFsc28gYXBwbHkg dG8gdGhlc2UuIFRoZSBwbGFjZSBzdHJ1Y3R1cmUgb2YgYSBHT2hBIGlzIHRoZSBzYW1lIGFzIHRo YXQgb2YgdGhlIGJyaWRpIGl0IHJlcHJlc2VudHMsIGFuZCB0aGUgc3VtdGkgYXJlIGJ5IGRlZmF1 bHQgdGhlIHNhbWUgYXMgaW4gdGhlIGJyaWRpIGl0IHJlcHJlc2VudHMuIEZpbGxpbmcgdGhlIHN1 bXRpIHBsYWNlcyBvZiBhIEdPaEEgZXhwbGljaXRseSBvdmVyd3JpdGVzIHRoZSBzdW10aSBvZiB0 aGUgYnJpZGkgaXQgcmVwcmVzZW50cy4gQ29udHJhc3Q6CgpBOiAnJ21pIGNpdGthIGxvIHBsaXNl JycgQjogJydnbydpJycg4oCTIOKAnEkgZWF0IGFuIGFwcGxlLuKAnSDigJxZb3UgZG8u4oCdIHdp dGgKCkE6ICcnbWkgY2l0a2EgbG8gcGxpc2UnJyBCOiAnJ21pIGdvJ2knJyDigJMg4oCcSSBlYXQg YW4gYXBwbGUu4oCdIOKAnEkgZG8sIHRvby7igJ0KCgoKVGhlc2UgJydicmlrYSdpJycgYXJlIHZl cnkgdXNlZnVsIHdoZW4gYW5zd2VyaW5nIGEgcXVlc3Rpb24gd2l0aCAnJ3h1Jyc6CgpBOiAnJ3h1 IGRvIG5lbGNpIGxlIG1pIHNwZW5pJycgQjogJydnbydpIC8gbmEgZ28naScnIOKAkyDigJxEbyB5 b3UgbGlrZSBteSB3aWZlP+KAnSDigJxZZXMuL05vLuKAnS4gVGhlICcneHUnJywgYmVpbmcgYW4g YXR0aXR1ZGluYWwsIGlzIG5vdCBjb3BpZWQuCgpXaGVuIHJlcGVhdGluZyBicmlkaSBuZWdhdGVk IGJ5ICcnbmEnJywgdGhhdCBpczogQnJpZGkgd2hlcmUgJyduYScnIGlzIHBsYWNlZCBpbiB0aGUg cHJlbmV4IChsZXNzb24gdHdlbnR5LXNldmVuKSwgaW4gdGhlIGJlZ2lubmluZyBvZiB0aGUgYnJp ZGkgb3IgcmlnaHQgYmVmb3JlIHRoZSBzZWxicmksIHRoZSBydWxlcyBmb3IgY29weWluZyBvdmVy ICcnbmEnJyBhcmUgZGlmZmVyZW50IGZyb20gd2hhdCBvbmUgbWlnaHQgZXhwZWN0LiBBbnkgJydu YScnIGlzIGNvcGllZCBvdmVyLCBidXQgYW55IGFkZGl0aW9uYWwgJyduYScnIGluIHRoZSBicmlr YSdpIHJlcGxhY2VzIHRoZSBmaXJzdCBuYS4gTGV0IG1lIHNob3cgeW91IHdpdGggYW4gZXhhbXBs ZToKCkE6ICcnbWkgbmEgY2l0a2EgbG8gcGxpc2UnJwoKQjogJydtaSBnbydpJycgPSAnJ21pIG5h IGNpdGthIGxvIHBsaXNlJycKCkM6ICcnbWkgbmEgZ28naScnID0gJydtaSBuYSBjaXRrYSBsbyBw bGlzZScnCgpEOiAnJ21pIG5hIG5hIGdvJ2knJyA9ICcnbWkgY2l0a2EgbG8gcGxpc2UnJyA9ICcn bWkgamEnYSBnbydpJycKCgoKJyduZWknJyBhbmQgJydubydhJycgYXJlIG5vdCB1c2VkIG11Y2gs IGV4Y2VwdCBmb3Ig4oCcbWluZC1icmVha2luZyBwdXJwb3Nlc+KAnSwgd2hpY2ggaXMgbWFraW5n IHVwIGJyaWRpIHdoaWNoIGFyZSBoYXJkIHRvIHBhcnNlLCBsaWtlICcnZGVpIG5hIHNlIGR1J3Ug bGUgbm8nYSBsYSdlIGxlIG5laScnLiBTaW5jZSAnJ25laScnIHJlcGVhdHMgdGhlIGN1cnJlbnQg b3V0ZXIgYnJpZGksIGhvd2V2ZXIsICcnbGUgbmVpJycgY2FuIGJlIHVzZWQgdG8gcmVmZXIgdG8g dGhlIHgxIG9mIHRoZSBjdXJyZW50IG91dGVyIGJyaWRpLCAnJ2xlIHNlIG5laScnIHRoZSB4MiBh bmQgc28gb24uCgoKCldoZW4gdXNpbmcgJydicmlrYSdpJycsIG9uZSBtdXN0IGFsd2F5cyBiZSB3 YXJ5IG9mIGNvcHlpbmcgc2VudGVuY2VzIHdpdGggdGhlIHBlcnNvbmFsIHN1bWthJ2kgbGlrZSAn J21pJycsICcnZG8nJywgJydtYSdhJycgZWN0LCBhbmQgYmUgY2FyZWZ1bCBub3QgdG8gcmVwZWF0 IHRoZW0gd2hlbiB0aGV5IGFyZSBpbiB0aGUgd3JvbmcgY29udGVjdCwgYXMgc2hvd24gaW4gdGhl IHR3byBleGFtcGxlcyB3aXRoIGFwcGxlIGVhdGluZyBhYm92ZS4gSW5zdGVhZCBvZiByZXBsYWNp bmcgdGhlbSBvbmUgYnkgb25lLCB0aG91Z2gsIHRoZSB3b3JkICcncmEnbycnIGFueXdoZXJlIGlu IHRoZSBicmlkaSB1cGRhdGVzIHRoZSBwZXJzb25hbCBzdW1rYSdpIHNvIHRoYXQgdGhleSBhcHBs eSBmb3IgdGhlIHNwZWFrZXIncyBwZXJzcGVjdGl2ZToKCkE6ICcnbWkgZG8gcHJhbWknJyBCOiAn J21pIGRvIGdvJ2knJyBpcyBlcXVpdmFsZW50IHRvIEE6ICcnbWkgZG8gcHJhbWknJyBCOiAnJ2dv J2kgcmEnbycnCgpfXycncmEnbycnX18gVXBkYXRlIGFsbCBwZXJzb25hbCBzdW1rYSdpIHNvIHRo YXQgdGhleSBub3cgZml0IHRoZSBzcGVha2VyJ3MgcG9pbnQgb2Ygdmlldy4KCgoKVGhlIG9ubHkg b3RoZXIgc2VyaWVzIG9mIGJyaWthJ2kgYXJlIHZlcnkgZWFzeSB0byByZW1lbWJlcjoKCl9fJydi cm9kYScnX18JQnJpZGkgdmFyaWFibGUgMQoKX18nJ2Jyb2RlJydfXwlCcmlkaSB2YXJpYWJsZSAy CgpfXycnYnJvZGknJ19fCUJyaWRpIHZhcmlhYmxlIDMKCl9fJydicm9kbycnX18JQnJpZGkgdmFy aWFibGUgNAoKX18nJ2Jyb2R1JydfXwlCcmlkaSB2YXJpYWJsZSA1CgpfXycnY2VpJydfXwlEZWZp bmUgYnJpZGkgdmFyaWFibGUgKG5vdCBhIGJyaWthJ2kgYW5kIG5vdCBpbiBCUk9EQSkKCgoKCgpU aGUgZmlyc3QgZml2ZSBhcmUganVzdCBmaXZlIGluc3RhbmNlcyBvZiB0aGUgc2FtZSB3b3JkLiBU aGV5IGNhbiBiZSB1c2VkIGFzIHNob3J0Y3V0cyB0byBicmlkaS4gQWZ0ZXIgc2F5aW5nIGEgYnJp ZGksIHNheWluZyAnJ2NlaSBicm9kYScnIGRlZmluZXMgdGhhdCBicmlkaSBhcyAnJ2Jyb2RhJycs IGFuZCAnJ2Jyb2RhJycgY2FuIHRoZW4gYmUgdXNlZCBhcyAnJ2JyaWthJ2knJyBmb3IgdGhhdCBi cmlkaSBpbiB0aGUgZm9sbG93aW5nIGNvbnZlcnNhdGlvbi4KCldoaWxlIHdlJ3JlIGF0IGl0LCB0 aGVyZSBpcyBhbiBhbmFsb2dvdXMgc2VyaWVzIG9mIHN1bWthJ2ksIHdoaWNoIHByb2JhYmx5IGRv ZXMgbm90IGJlbG9uZyBpbiB0aGlzIGxlc3NvbiwgYnV0IGhlcmUgdGhleSBhcmUgYW55d2F5OgoK X18nJ2tvJ2EnJ19fCVN1bXRpIHZhcmlhYmxlIDEJX18nJ2ZvJ2EnJ19fCVN1bXRpIHZhcmlhYmxl IDYKCl9fJydrbydlJydfXwlTdW10aSB2YXJpYWJsZSAyCV9fJydmbydlJydfXwlTdW10aSB2YXJp YWJsZSA3CgpfXycna28naScnX18JU3VtdGkgdmFyaWFibGUgMwlfXycnZm8naScnX18JU3VtdGkg dmFyaWFibGUgOAoKX18nJ2tvJ28nJ19fCVN1bXRpIHZhcmlhYmxlIDQJX18nJ2ZvJ28nJ19fCVN1 bXRpIHZhcmlhYmxlIDkKCl9fJydrbyd1JydfXwlTdW10aSB2YXJpYWJsZSA1CV9fJydmbyd1Jydf XwlTdW10aSB2YXJpYWJsZSAxMAoKCgphcyB3ZWxsIGFzIHRoZSAnJ2NlaScnLWVxdWl2YWxlbnQg Zm9yIHRoaXMgc2VyaWVzOgoKX18nJ2dvaScnX18gRGVmaW5lIHN1bXRpIHZhcmlhYmxlCgoKCgoK VGhlc2UgYXJlIHVzZWQgbGlrZSB0aGUgJydicmlrYSdpJyctc2VyaWVzLiBKdXN0IHBsYWNlLCBm b3IgaW5zdGFuY2UsICcnZ29pIGtvJ3UnJyBhZnRlciBhIHN1bXRpLCBhbmQgdGhhdCBzdW10aSBj YW4gYmUgcmVmZXJyZWQgdG8gYnkgJydrbyd1JycuCgoKClN0cmFuZ2VseSwgdGhlc2Ugc2VyaWVz IGFyZSByYXJlbHkgdXNlZCBmb3IgdGhlaXIgaW50ZW5kZWQgcHVycG9zZS4gVGhleSBhcmUsIGhv d2V2ZXIsIHVzZWQgYXMgYXJiaXRyYXJ5IHNlbGJyaSBhbmQgc3VtdGkgaW4gZXhhbXBsZSB0ZXh0 czoKCuKAnFNvLCBpcyBpdCB0cnVlIHRoYXQgdGhlIHRydXRoIGNvbmRpdGlvbnMgb2YgJydrbydh IGtvJ2UgYnJvZGEgbmEga3UnJyBhcmUgYWx3YXlzIHRoZSBzYW1lIGFzICcnbmEga3Uga28nYSBr bydlIGJyb2RhJyc/4oCdIOKAnE5vcGUsIGl0IGlzbid0LuKAnQoKCgoKCiEhTG9qYmFuIExlc3Nv bnMgLSBMZXNzb24gdHdlbnR5LWZpdmUgKGxvZ2ljYWwgY29ubmVjdGl2ZXMpCgrigJxJZiB5b3Ug YXNrIGEgTG9qYmFuaXN0OiDigJxEbyB5b3Ugd2FudCBtaWxrIG9yIHN1Z2FyIGluIHlvdXIgY29m ZmVlP+KAnSBzaGUnbGwgYW5zd2VyOiDigJxDb3JyZWN0LuKAneKAnQoKCgpXaXR0eSBhcyB0aGlz IGpva2UgbWlnaHQgYmUsIGl0IGlsbHVzdHJhdGVzIGEgd2VpcmQgcHJvcGVydHkgb2YgdGhlIEVu Z2xpc2ggd2F5IG9mIGFza2luZyB0aGlzIHF1ZXN0aW9uLiBJdCBpcyBwaHJhc2VkIGFzIGEgdHJ1 ZS9mYWxzZSBxdWVzdGlvbiwgYnV0IGl0IHJlYWxseSBpc24ndC4gSW4gTG9qYmFuLCB3ZSBjYW4n dCBoYXZlIHRoaXMga2luZCBvZiBpbmNvbnNpc3RlbmN5LCBhbmQgc28gd2UgbXVzdCBmaW5kIGFu b3RoZXIgd2F5IG9mIGFza2luZyB0aGlzIGtpbmQgb2YgcXVlc3Rpb24uIElmIHlvdSB0aGluayBh Ym91dCBpdCwgaXQncyBwcmV0dHkgaGFyZCB0byBmaW5kIGEgZ29vZCBhbmQgZWFzeSB3YXksIGFu ZCBpdCBzZWVtcyBMb2piYW4gaGF2ZSBwaWNrZWQgYSBnb29kIHdheSBpbnN0ZWFkIG9mIGFuIGVh c3kgd2F5LgoKCgpUbyBleHBsYWluIGl0LCBsZXQgdXMgdGFrZSB0d28gc2VwYXJhdGUgYnJpZGk6 IEJyaWRpIDE6IOKAnEkgbGlrZSBtaWxrIGluIG15IGNvZmZlZeKAnSBhbmQgYnJpZGkgMjog4oCc SSBsaWtlIHN1Z2FyIGluIG15IGNvZmZlZeKAnS4gQm90aCBvZiB0aGVzZSBicmlkaSBjYW4gaGF2 ZSB0aGUgc3RhdGUgdHJ1ZSBvciBmYWxzZS4gVGhpcyB5aWVsZHMgZm91ciBjb21iaW5hdGlvbnMg b2Ygd2hpY2ggYnJpZGkgaXMvYXJlIHRydWU6CgpBICkgMSBhbmQgMglCICkgMSBidXQgbm90IDIK CkMgKSAyIGJ1dCBub3QgMQlEICluZWl0aGVyIDEgbm9yIDIKCgoKSSwgaW4gYWN0dWFsaXR5LCBs aWtlIG1pbGsgaW4gbXkgY29mZmVlLCBhbmQgSSdtIGluZGlmZmVyZW50IGFzIHRvIHdoZXRoZXIg dGhlcmUgaXMgc3VnYXIgaW4gaXQgb3Igbm90LiBUaGVyZWZvcmUsIG15IHByZWZlcmVuY2UgY2Fu IGJlIHdyaXR0ZW4gQSApIHRydWUgQiApIHRydWUgQyApIGZhbHNlIEQgKSBmYWxzZSwgc2luY2Ug Ym90aCBBIGFuZCBCIHlpZWxkcyB0cnVlIGZvciBtZSwgYnV0IG5laXRoZXIgQyBub3IgRCBkb2Vz LiBBIG1vcmUgY29tcGFjdCB3YXkgb2Ygd3JpdGluZyBteSBjb2ZmZWUgcHJlZmVyZW5jZXMgd291 bGQgYmUgVFRGRiBmb3IgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLiBTaW1pbGFybHksIGEgcGVy c29uIGxpa2luZyBoaXMgY29mZmVlIGJsYWNrIGFuZCB1bnN3ZWV0ZW5lZCB3b3VsZCBoYXZlIGEg Y29mZmVlIHByZWZlcmVuY2Ugb2YgRkZGVC4gVGhpcyBjb21iaXRhdGlvbiBvZiAidHJ1ZSIgYW5k ICJmYWxzZSIgaXMgY2FsbGVkIGEg4oCcdHJ1dGggZnVuY3Rpb27igJ0sIGluIHRoaXMgY2FzZSBm b3IgdGhlIHR3byBzdGF0ZW1lbnRzIOKAnEkgbGlrZSBtaWxrIGluIG15IGNvZmZlZeKAnSBhbmQg 4oCcSSBsaWtlIHN1Z2FyIGluIG15IGNvZmZlZeKAnS4gTm90ZSB0aGF0IHRoZSBvcmRlciBvZiB0 aGUgc3RhdGVtZW50cyBtYXR0ZXJzLgoKSW4gTG9qYmFuLCB3ZSBvcGVyYXRlIHdpdGggNCB0cnV0 aCBmdW5jdGlvbnMsIHdoaWNoIHdlIGNvbnNpZGVyIGZ1bmRhbWVudGFsOgoKQTogVFRURiAoYW5k L29yKQoKTzogVEZGVCAoaWYgYW5kIG9ubHkgaWZmKQoKVTogVFRGRiAod2hldGhlciBvciBub3Qp CgpFOiBURkZGIChhbmQpCgoKCkluIHRoaXMgZXhhbXBsZSwgdGhleSB3b3VsZCB0cmFuc2xhdGUg dG8gc29tZXRoaW5nIGxpa2U6IEE64oCdSnVzdCBub3QgYmxhY2sgY29mZmVl4oCdLCBPOiDigJxF aXRoZXIgYm90aCBtaWxrIG9yIHN1Z2FyLCBvciBub3RoaW5nIGZvciBtZSwgcGxlYXNl4oCdLCBV OiDigJxNaWxrLCBhbmQgSSBkb24ndCBjYXJlIGFib3V0IGlmIHRoZXJlJ3Mgc3VnYXIgb3Igbm90 4oCdIGFuZCBFOiDigJxNaWxrIGFuZCBzdWdhciwgcGxlYXNlLuKAnS4KCgoKSW4gTG9qYmFuLCB5 b3UgcGxhY2UgdGhlIHdvcmQgZm9yIHRoZSB0cnV0aCBmdW5jdGlvbiBiZXR3ZWVuIHRoZSB0d28g YnJpZGksIHNlbGJyaSBvciBzdW10aSBpbiBxdWVzdGlvbi4gVGhhdCB3b3JkIGlzIGNhbGxlZCBh IGxvZ2ljYWwgY29ubmVjdGl2ZS4gVGhlIHdvcmRzIGZvciB0cnV0aCBmdW5jdGlvbnMgYmV0d2Vl biBzdW10aSAoYW5kIGp1c3QgZm9yIHN1bXRpISkgYXJlICAnJy5hJycgJycubycnICcnLnUnJyBh bmQgJycuZScnLiBIb3cgbmljZS4gRm9yIGluc3RhbmNlOiDigJxJIGFtIGZyaWVuZHMgd2l0aCBh biBBbWVyaWNhbiBhbmQgYSBHZXJtYW7igJ0gd291bGQgYmUgJydsbyBtZXJrbyAuZSBsbyBkb3Rj byBjdSBwZW5kbyBtaScnLgoKSG93IHdvdWxkIHlvdSBzYXk6IOKAnEkgc3BlYWsgdG8geW91IGFu ZCBubyBvbmUgZWxzZT/igJ0KCgoKQW5zd2VyOiB+fmdyZXksZ3JleTonJ21pIHRhdmxhIGRvIC5l IG5vIGRyYXRhJycgTm90ZSB0aGF0IHRoaXMgYWN0dWFsbHkgc3RhdGVzIHRoYXQgaXQncyB0cnVl IHRoYXQgIkkgc3BlYWsgdG8geW91Ii5+fgoKCgpPbmUgbW9yZTog4oCcSSBsaWtlIGNoZWVzZSB3 aGV0aGVyIG9yIG5vdCBJIGxpa2UgY29mZmVl4oCdCgpfXycnY2thZmknJ19fIHgxIGlzIGEgcXVh bnRpdHkvY29udGFpbnMgY29mZmVlIGZyb20gc291cmNlL29mIGdyYWluIHgyCgoKCkFuc3dlcjog fn5ncmV5LGdyZXk6JydtaSBuZWxjaSBsbydlIGNpcmxhIC51IGxvJ2UgY2thZmknJ35+CgoKCllv dSBjYW4gcGVyaGFwcyBkZWR1Y2UgdGhhdCB0aGVyZSBhcmUgc2l4dGVlbiBwb3NzaWJsZSB0cnV0 aCBmdW5jdGlvbnMsIHNvIHdlIG5lZWQgdG8gbGVhcm4gdHdlbHZlIG1vcmUgaW4gb3JkZXIgdG8g a25vdyB0aGVtIGFsbC4gRWlnaHQgbW9yZSBjYW4gYmUgb2J0YWluZWQgYnkgbmVnYXRpbmcgZWl0 aGVyIHRoZSBmaXJzdCBzZW50ZW5jZSBvciB0aGUgc2Vjb25kLiBUaGUgZmlyc3QgaXMgbmVnYXRl ZCBieSBwcmVmaXhpbmcgdGhlIHRydXRoIGZ1bmN0aW9uIHdvcmQgd2l0aCAnJ25hJycsIHRoZSBz ZWNvbmQgaXMgbmVnYXRlZCBieSBwbGFjaW5nICcnbmFpJycgYWZ0ZXIgdGhlIHdvcmQuIEZvciBl eGFtcGxlLCBzaW5jZSAnJy5lJycgcmVwcmVzZW50cyBURkZGLCAnJy5lIG5haScnIG11c3QgYmUg 4oCcYm90aCAxIGlzIHRydWUgYW5kIDIgaXMgZmFsc2XigJ0sIHdoaWNoIGlzIEZURkYuIFNpbWls YXJseSwgJyduYSAuYScnIGlzIOKAnEp1c3Qgbm90OiAxIGlzIHRydWUgYW5kIDIgaXMgZmFsc2Xi gJ0sIHdoaWNoIGlzIFRURlQuIERvaW5nIHRoaXMgdHlwZSBvZiBjb252ZXJzaW9uIGluIHRoZSBo ZWFkIHJlYWwtdGltZSBpcyB2ZXJ5LCB2ZXJ5IGhhcmQsIHNvIHBlcmhhcHMgb25lIHNob3VsZCBm b2N1cyBvbiBsZWFybmluZyBob3cgbG9naWNhbCBjb25uZWN0aXZlcyB3b3JrIGluIGdlbmVyYWws IGFuZCB0aGVuIGxlYXJuIHRoZSBsb2dpY2FsIGNvbm5lY3RpdmVzIHRoZW1zZWx2ZXMgYnkgaGVh cnQuCgoKCkZvdXIgZnVuY3Rpb25zIGNhbm5vdCBiZSBtYWRlIHRoaXMgd2F5OiBUVFRULCBURlRG LCBGVEZUIGFuZCBGRkZGLiBUaGUgZmlyc3QgYW5kIHRoZSBsYXN0IGNhbm5vdCBiZSBtYWRlIHVz aW5nIGxvZ2ljYWwgY29ubmVjdGl2ZXMgYXQgYWxsLCBidXQgdGhleSBhcmUga2luZCBvZiB1c2Vs ZXNzIGFueXdheS4gVXNpbmcgYSBoeXBvdGhldGljYWwgbG9naWNhbCBjb25uZWN0aXZlIGluIHRo ZSBzZW50ZW5jZSDigJxJIGxpa2UgbWlsayBGRkZGIHN1Z2FyIGluIG15IGNvZmZlZeKAnSBpcyBl cXVpdmFsZW50IHRvIHNheWluZyDigJxJIGRvbid0IGxpa2UgY29mZmVl4oCdLCBqdXN0IG1vcmUg Y29tcGxpY2F0ZWQuIFRoZSBsYXN0IHR3bywgVEZURiBhbmQgRlRGVCwgY2FuIGJlIG1hZGUgYnkg cHJlZml4aW5nICcnLnUnJyB3aXRoIGdvb2Qgb2wnICcnc2UnJywgd2hpY2gganVzdCByZXZlcnRz IHRoZSB0d28gc3RhdGVtZW50cy4gJydzZSAudScnICwgZm9yIGluc3RhbmNlIGlzIOKAnEIgd2hl dGhlciBvciBub3QgQeKAnSwgd2hpY2ggaXMgVEZURi4gVGhlIGZpbmFsIGxpc3Qgb2YgYWxsIGxv Z2ljYWwgY29ubmVjdGl2ZXMgY2FuIGJlIHNlZW4gYmVsb3cuCgoKClRUVFQ6IENhbm5vdCBiZSBt YWRlCgpUVFRGOiAnJy5hJycKClRURlQ6ICcnLmEgbmFpJycKClRURkY6ICcnLnUnJyBPUiAnJy51 IG5haScnCgpURlRUOiAnJ25hIC5hJycKClRGVEY6ICcnc2UgLnUnJwoKVEZGVDogJycubycnIE9S ICcnbmEgLm8gbmFpJycKClRGRkY6ICcnLmUnJwoKRlRUVDogJyduYSAuYSBuYWknJwoKRlRURjog JyduYSAubycnIE9SICcnLm8gbmFpJycKCkZURlQ6ICcnc2UgLnUgbmFpJycKCkZURkY6ICcnLmUg bmFpJycKCkZGVFQ6ICcnbmEgLnUnJyBPUiAnJ25hIC51IG5haScnCgpGRlRGOiAnJ25hIC5lJycK CkZGRlQ6ICcnbmEgLmUgbmFpJycKCkZGRkY6IENhbm5vdCBiZSBtYWRlCgoKCkxvZ2ljYWxseSwg c2F5aW5nIGEgc2VudGVuY2Ugd2l0aCBhIGxvZ2ljYWwgY29ubmVjdGl2ZSwgbGlrZSBmb3IgaW5z dGFuY2UgJydtaSBuZWxjaSBsbydlIGNpcmxhIC5lIG5haSBsbydlIGNrYWZpJycgaXMgZXF1aXZh bGVudCB0byBzYXlpbmcgdHdvIGJyaWRpLCB3aGljaCBhcmUgY29ubmVjdGVkIHdpdGggdGhlIHNh bWUgbG9naWNhbCBjb25uZWN0aXZlOiAnJ21pIG5lbGNpIGxvJ2UgY2lybGEgLmkge0UgTkFJfSBt aSBuZWxjaSBsbydlIGNrYWZpJycuIFRoaXMgaXMgaG93IHRoZSBmdW5jdGlvbiBvZiBsb2dpY2Fs IGNvbm5lY3RpdmVzIGlzIGRlZmluZWQuIFdlIHdpbGwgZ2V0IHRvIGhvdyB0byBhcHBseSBsb2dp Y2FsIGNvbm5lY3RpdmVzIHRvIGJyaWRpIGluIGEgbW9tZW50LgoKCgpCeSBwdXR0aW5nIGEg4oCc auKAnSBpbiBmcm9udCBvZiB0aGUgY29yZSB3b3JkIG9mIGEgbG9naWNhbCBjb25uZWN0aXZlLCBp dCBjb25uZWN0cyB0d28gc2VsYnJpLiBBbiBleGFtcGxlIGlzICcnbWkgbmlubXUgbmEgam8gbmFu bXUnJyDigJxJIGFtIGEgbWFuIG9yIGEgd29tYW4sIGJ1dCBub3QgYm90aOKAnQoKX18nJ25pbm11 JydfXyB4MSBpcyBhIHdvbWFuCgoKClRoaXMgaXMg4oCcdGFucnUtaW50ZXJuYWzigJ0sIG1lYW5p bmcgdGhhdCBpdCBsb29zZWx5IGJpbmRzIHNlbGJyaSB0b2dldGhlciwgZXZlbiB3aGVuIHRoZXkg Zm9ybSBhIHRhbnJ1OiAnJ2xvIGRvdGNvIGphIG1lcmtvIHByZW51JycgbWVhbnMg4oCcYSBHZXJt YW4gb3IgQW1lcmljYW4gbWFu4oCdLCBhbmQgaXMgcGFyc2VkICcnbG8nJyAoJydkb3RjbyBqYSBt ZXJrbycnKSAnJ3ByZW51JycuIFRoaXMgYmluZGluZyBpcyBzbGlnaHRseSBzdHJvbmdlciB0aGF0 IG5vcm1hbCB0YW5ydS1ncm91cGluZyAoc3RpbGwgd2Vha2VyIHRoYW4gc3BlY2lmaWMgZ3JvdXBp bmctd29yZHMpLCBhbmQgYXMgc3VjaCwgJydsbyBkb3RjbyBqYSBtZXJrbyBuaW5tdSBqYSBuYW5t dScnIGlzIHBhcnNlZCAnJ2xvJycgKCcnZG90Y28gamEgbWVya28nJykgKCcnbmlubXUgamEgbmFu bXUnJykuIFRoZSBzZWxicmkgbG9naWNhbCBjb25uZWN0aXZlcyBjYW4gYWxzbyBiZSBhdHRhY2hl ZCB0byAnJy5pJycgaW4gb3JkZXIgdG8gY29ubmVjdCB0d28gc2VudGVuY2VzIHRvZ2V0aGVyOiAn J2xhIC5raW0uIGNtZW5lIG1pIC5pIGp1IG1pIG5hbm11Jycg4oCcSSdtIGNhbGxlZCBLaW0sIHdo ZXRoZXIgb3Igbm90IEknbSBhIG1hbuKAnS4gVGhlIGNvbWJpbmF0aW9uICcnLmkgamUnJyBzdGF0 ZXMgdGhhdCBib3RoIHNlbnRlbmNlcyBhcmUgdHJ1ZSwgbXVjaCBsaWtlIHdlIHdvdWxkIGFzc3Vt ZSBoYWQgbm8gbG9naWNhbCBjb25uZWN0aXZlIGJlZW4gcHJlc2VudC4KCgoKVW5mYWlybHkgaGFy ZCBxdWVzdGlvbjogVXNpbmcgbG9naWNhbCBjb25uZWN0aXZlcywgaG93IHdvdWxkIHlvdSB0cmFu c2xhdGUg4oCcSWYgeW91J3JlIGNhbGxlZCBCb2IsIHlvdSdyZSBhIG1hbi7igJ0/CgoKCkFuc3dl cjogfn5ncmV5LGdyZXk6JydsYSAuYmFiLiBjbWVuZSBkbyAuaSBuYSBqYSBkbyBuYW5tdScnIG9y IOKAnEVpdGhlciB5b3UncmUgbm90IG5hbWVkIEJvYiBhbmQgYSBtYW4sIG9yIHlvdSdyZSBub3Qg bmFtZWQgQm9iIGFuZCBub3QgYSBtYW4sIG9yIHlvdSdyZSBuYW1lZCBCb2IgYW5kIGEgbWFuLiBC dXQgeW91IGNhbid0IGJlIG5hbWVkIEJvYiBhbmQgbm90IGJlIGEgbWFuLuKAnSBUaGUgb25seSBj b21iaW5hdGlvbiBub3QgcGVybWl0dGVkIGlzOiDigJxZb3UncmUgY2FsbGVkIEJvYiwgYnV0IG5v dCBhIG1hbi7igJ0gVGhpcyBtdXN0IG1lYW4gdGhhdCwgaWYgaXQncyB0cnVlIHRoYXQgeW91J3Jl IGNhbGxlZCBCb2IsIHlvdSBtdXN0IGJlIGEgbWFuLn5+CgoKCklmIHdlIHRyeSB0byB0cmFuc2xh dGUgdGhlIHNhZCwgc2FkIGV2ZW50IG9mIOKAnEkgY3JpZWQgYW5kIGdhdmUgYXdheSBteSBkb2fi gJ0sIHdlIHJ1biBpbnRvIGEgcHJvYmxlbS4KCkF0dGVtcHRpbmcgdG8gc2F5IHRoZSBzZW50ZW5j ZSB3aXRoIGEgJydqZScnIGJldHdlZW4gdGhlIHNlbGJyaSDigJxnYXZl4oCdIGFuZCDigJxjcmll ZOKAnSwgd291bGQgbWVhbiB0aGUgc2FtZSB3b3JkIGZvciB3b3JkLCBidXQgdW5mb3J0dW5hdGVs eSBtZWFuIHRoYXQg4oCcSSBjcmllZCB0aGUgZG9nIGFuZCBnYXZlIGF3YXkgdGhlIGRvZ+KAnSwg Y2YuIHRoZSBkZWZpbml0aW9uIG9mIGxvZ2ljYWwgY29ubmVjdGl2ZXMuIE9uZSBjYW4gY3J5IHRl YXJzIG9yIGV2ZW4gYmxvb2QsIGJ1dCBjcnlpbmcgZG9ncyBpcyBqdXN0IHNpbGx5LgoKSG93ZXZl ciwgd2UgY2FuIGdldCBhcm91bmQgYnkgdXNpbmcgYnJpZGktdGFpbCBsb2dpY2FsIGNvbm5lY3Rp dmVzLiBXaGF0IHRoZXkgZG8gaXMgdGhhdCBhbnkgcHJldmlvdXMgc3VtdGNpdGEgYW5kIHN1bXRp IGF0dGFjaGVzIHRvIGJvdGggc2VsYnJpIGJvdW5kIGJ5IHRoZSBicmlkaS10YWlsIGxvZ2ljYWwg Y29ubmVjdGl2ZSwgYnV0IGFueSBmb2xsb3dpbmcgc3VtdGkgb3Igc3VtdGNpdGEgb25seSBhcHBs aWVzIHRvIHRoZSBsYXN0IG1lbnRpb25lZDogVGhlIGJyaWRpIHNwbGl0cyB1cCBmcm9tIG9uZSBo ZWFkIHRvIHR3byB0YWlscywgdG8gc3BlYWsgbWV0YXBob3JpY2FsbHkuCgpUaGUgZm9ybSBvZiBh IGJyaWRpLXRhaWwgbG9naWNhbCBjb25uZWN0aXZlIGlzIGdpJ1YsIHdpdGggdGhlIFYgZm9yIHRo ZSB2b3dlbCBvZiB0aGUgdHJ1dGggZnVuY3Rpb24uCgpIb3cgY291bGQgeW91IGNvcnJlY3RseSB0 cmFuc2xhdGUgdGhlIEVuZ2xpc2ggc2VudGVuY2UgdG8gTG9qYmFuPwoKCgpBbnN3ZXI6IH5+Z3Jl eSxncmV5OicnbWkgcHUga2xha3UgZ2knZSBkdW5kYSBsZSBtaSBnZXJrdScnfn4KCgoKV2hhdCBk b2VzICcncm8gcmVtbmEgY3UgcGFsY2kgZ2knbyB6dWt0ZSBsbyBwYWxjaScnIG1lYW4/CgpfXycn cGFsY2knJ19fIHgxIGlzIGV2aWwgYnkgc3RhbmRhcmQgeDIKCgoKQW5zd2VyOiB+fmdyZXksZ3Jl eTrigJxQZW9wbGUgYXJlIGV2aWwgaWYgYW5kIG9ubHkgaWYgdGhleSBkbyBldmlsIHRoaW5ncy7i gJ1+fgoKCgpGdXJ0aGVybW9yZSwgdGhlcmUgaXMgYSBmb3JldGhvdWdodCBhbGwtYnV0IHRhbnJ1 IGludGVybmFsIGdyb3VwIG9mIGNvbm5lY3RlcnMgbWFkZSBieSBwcmVmaXhpbmcg4oCcZ+KAnSBp biBmcm9udCBvZiB0aGUgdHJ1dGggZnVuY3Rpb24gdm93ZWwuIOKAnEZvcmV0aG91Z2h04oCdIGlu IHRoaXMgY29udGV4dCBtZWFucyB0aGF0IHRoZXkgbmVlZCB0byBnbyBpbiBmcm9udCBvZiB0aGUg dGhpbmdzIHRoZXkgY29ubmVjdCwgYW5kIHRodXMgeW91IG5lZWQgdG8gdGhpbmsgYWJvdXQgdGhl IGdyYW1tYXRpY2FsIHN0cnVjdHVyZSBvZiB0aGUgc2VudGVuY2UgYmVmb3JlIHNheWluZyBpdC4g QWxsLWJ1dCB0YW5ydSBpbnRlcm5hbCBtZWFucyB0aGF0IGl0IHNlcnZlcyBib3RoIGFzIGEgY29u bmVjdGl2ZSBiZXR3ZWVuIHN1bXRpLCBicmlkaSwgc2VsYnJpIGFuZCBicmlkaS10YWlscywgYnV0 IG5vdCBiZXR3ZWVuIHR3byBzZWxicmkgb2Ygb25lIHRhbnJ1LiBMZXQgbWUgc2hvdyB5b3UgaG93 IGl0IHdvcmtzLCByZXdyaXRpbmcgdGhlIExvamJhbiBzZW50ZW5jZSBhYm92ZToKCicnZ28gbG8g cmVtbmEgY3UgcGFsY2kgZ2kgbG8gcmVtbmEgY3UgenVrdGUgbG8gcGFsY2knJwoKVGhlIGZpcnN0 IGxvZ2ljYWwgY29ubmVjdGl2ZSBpbiB0aGVzZSBraW5kcyBvZiBjb25zdHJ1Y3RzIGFyZSB3aGF0 IGNhcnJpZXMgdGhlIHZvd2VsIHdoaWNoIHNpZ25hbCB3aGF0IHRydXRoIGZ1bmN0aW9uIGlzIGJl aW5nIHVzZWQuIFRoZSBzZWNvbmQgbG9naWNhbCBjb25uZWN0aXZlIGlzIGFsd2F5cyAnJ2dpJycs IGFuZCBsaWtlICcnLmknJywgaXQgaGFzIG5vIHRydXRoIGZ1bmN0aW9uLiBJdCBzaW1wbHkgc2Vy dmVzIHRvIHNlcGFyYXRlIHRoZSB0d28gdGVybXMgYmVpbmcgY29ubmVjdGVkLiBJZiB5b3Ugd2Fu dCB0byBuZWdhdGUgdGhlIGZpcnN0IG9yIHNlY29uZCBzZW50ZW5jZSwgYSAnJ25haScnIGlzIHN1 ZmZpeGVkIHRvIGVpdGhlciB0aGUgZmlyc3QgKGZvciB0aGUgZmlyc3Qgc2VudGVuY2UpIG9yIHNl Y29uZCAoZm9yIHRoZSBzZWNvbmQgc2VudGVuY2UpIGxvZ2ljYWwgY29ubmVjdGl2ZS4KClByb3Zp ZGVkIHRoYXQgdGhlIGNvbnN0cnVjdHMgYXJlIHRlcm1pbmF0ZWQgcHJvcGVybHksIGl0IGhhcyBy ZW1hcmthYmxlIGZsZXhpYmlsaXR5LCBhcyB0aGUgZm9sbG93aW5nIGZldyBleGFtcGxlcyBkZW1v bnN0cmF0ZToKCicnbWkgZ28ga2xhbWEgZ2kgY2FkenUgdmF1IGxlIG1pIHpkYW5pJycg4oCcSSBn bywgaWYgYW5kIG9ubHkgaWYgd2FsaywgdG8gbXkgaG9tZeKAnSBvciDigJxJIGNhbiBvbmx5IGdv IHRvIG15IGhvbWUgYnkgd2Fsa2luZy7igJ0gTm90aWNlIHRoYXQgdGhlICcndmF1JycgaXMgbmVl ZGVkIHRvIG1ha2UgbGUgbWkgemRhbmkgYXBwbHkgdG8gYm90aCAnJ2NhZHp1JycgYW5kICcna2xh bWEnJy4KCicnc2UgZ3UgZG8gZ2kgbmFpIG1pIGJhanJhIGxlIGRvIGNrdWxlJycg4oCcV2hldGhl ciBvciBub3QgeW91LCB0aGVuIG5vdCBJLCBydW4gdG8geW91ciBzY2hvb2zigJ0gb3Ig4oCcSSB3 b24ndCBydW4gdG8geW91ciBzY2hvb2wgbm8gbWF0dGVyIGlmIHlvdSBkbyBvciBub3TigJ0KCgoK VGhlIHRhbnJ1LWludGVybmFsIGVxdWl2YWxlbnQgb2YgZ1YgaXMgZ3UnVi4gVGhlc2UgYXJlIGV4 YWN0bHkgdGhlIHNhbWUsIGV4Y2VwdCB0aGF0IHRoZXkgYXJlIGV4Y2x1c2l2ZWx5IHRhbnJ1LWlu dGVybmFsLCBhbmQgdGhhdCB0aGV5IGJpbmQgYSBzZWxicmkgdG8gdGhlICcnZ2knJyB0aWdodGVy IHRoYW4gbm9ybWFsIHRhbnJ1LWdyb3VwaW5nLCBidXQgd2Vha2VyIHRoYW4gZXhwbGljaXQgYmlu ZGluZy1zdW10aToKCicnbGEgeGFuei5rcnQuIGd1J2UgbWVya28gZ2kgZG90Y28gbmFubXUnJyBp cyBlcXVpdmFsZW50IHRvCgonJ2xhIHhhbnoua3J0LiBtZXJrbyBqZSBkb3RjbyBuYW5tdScnCgoK CkFuZCBzbyB5b3UndmUgcmVhZCBwYWdlIHVwIGFuZCBwYWdlIGRvd24ganVzdCB0byBnZXQgdGhl IG5lY2Vzc2FyeSBrbm93bGVkZ2UgaW4gb3JkZXIgdG8gYmUgYWJsZSB0byBsZWFybiBob3cgdG8g YXNrIOKAnFdvdWxkIHlvdSBsaWtlIG1pbGsgb3Igc3VnYXIgaW4geW91ciBjb2ZmZWU/4oCdIGlu IExvamJhbi4gU2ltcGx5IHBsYWNlIGEgcXVlc3Rpb24gbG9naWNhbCBjb25uZWN0aXZlIGluc3Rl YWQgb2YgYW5vdGhlciBsb2dpY2FsIGNvbm5lY3RpdmUsIGFuZCBsaWtlICcnbWEnJywgaXQgYXNr cyB0aGUgbGlzdGVuZXIgdG8gZmlsbCBpbiBhIGNvcnJlY3QgcmVzcG9uc2UuIFVuZm9ydHVuYXRl bHksIHRoZXNlIHF1ZXN0aW9uLWxvZ2ljYWwgY29ubmVjdGl2ZXMgZG9uJ3QgYWx3YXlzIG1hdGNo IHRoZSBtb3JwaG9sb2dpY2FsIHBhdHRlcm4gb2YgdGhlIGxvZ2ljYWwgY29ubmVjdGl2ZXMgdGhl eSBhc2sgZm9yOgoKX18nJ2ppJydfXyBMb2dpY2FsIGNvbm5lY3RpdmUgcXVlc3Rpb246IEFza3Mg Zm9yIGEgc3VtdGkgbG9naWNhbCBjb25uZWN0aXZlIChBKQoKX18nJ2plJ2knJ19fIExvZ2ljYWwg Y29ubmVjdGl2ZSBxdWVzdGlvbjogQXNrcyBmb3IgYSB0YW5ydS1pbnRlcm5hbCBzZWxicmkgbG9n aWNhbCBjb25uZWN0aXZlIChKQSkKCl9fJydnaSdpJydfXyBMb2dpY2FsIGNvbm5lY3RpdmUgcXVl c3Rpb246IEFza3MgZm9yIGEgYnJpZGktdGFpbCBsb2dpY2FsIGNvbm5lY3RpdmUgKEdJaEEpCgpf XycnZ2UnaScnX18gTG9naWNhbCBjb25uZWN0aXZlIHF1ZXN0aW9uOiBBc2tzIGZvciBhIGZvcmV0 aG91Z2h0IGFsbC1idXQgdGFucnUgaW50ZXJuYWwgbG9naWNhbCBjb25uZWN0aXZlIChHQSkKCl9f JydndSdpJydfXyBMb2dpY2FsIGNvbm5lY3RpdmUgcXVlc3Rpb246IEFza3MgZm9yIGEgZm9yZXRo b3VnaHQgb25seSB0YW5ydSBpbnRlcm5hbCBsb2dpY2FsIGNvbm5lY3RpdmUgKEdVaEEpCgoKClNv Li4uIGhvdyB3b3VsZCB5b3UgYXNrIGlmIHRoZSBwZXJzb25zIHdhbnRzIG1pbGsgb3Igc3VnYXIg aW4gaGVyIGNvZmZlZT8KCl9fJydsYWRydScnX18geDEgaXMvY29udGFpbnMgbWlsayBmcm9tIHNv dXJjZSB4MgoKX18nJ3Nha3RhJydfXyB4MSBpcy9jb250YWlucyBzdWdhciBmcm9tIHNvdXJjZSB4 MiBvZiBjb21wb3NpdGlvbiB4MwoKCgpQb3NzaWJsZSBhbnN3ZXI6IH5+Z3JleSxncmV5Oicnc2Fr dGEgamUnaSBsYWRydSBsZSBkbyBja2FmaScnIHRob3VnaCBJIGd1ZXNzIHNvbWV0aGluZyBtb3Jl IEVuZ2xpc2ggYW5kIGxlc3MgZWxlZ2FudCBjb3VsZCBhbHNvIHN1ZmZpY2UgbGlrZSAnJ2RvIGRq aWNhIGxlbnUgbG8gc2FrdGEgamkgbG8gbGFkcnUgY3UgbmVucmkgbGUgZG8gY2thZmknJ35+CgoK CiEhTG9qYmFuIExlc3NvbnMgLSBMZXNzb24gdHdlbnR5LXNpeCAobm9uLWxvZ2ljYWwgY29ubmVj dGl2ZXMpCgpUaGUgd29yZCAibG9naWNhbCIgaW4gImxvZ2ljYWwgY29ubmVjdGl2ZSIgcmVmZXJz IHRvIHRoZSBhc3NvY2lhdGlvbiBhIGxvZ2ljYWwgY29ubmVjdGl2ZSBoYXMgd2l0aCBhIHRydXRo IGZ1bmN0aW9uLiBOb3QgYWxsIHVzZWZ1bCBjb25uZWN0aXZlcyBjYW4gYmUgZGVmaW5lZCB0aHJv dWdoIGEgdHJ1dGggZnVuY3Rpb24sIGhvd2V2ZXIsIGFuZCBzbyB0aGVyZSBhcmUgb3RoZXIgY29u bmVjdGl2ZXMgYmVzaWRlIHRoZSBsb2dpY2FsIG9uZXMuCgpUaGUgbWVhbmluZyBvZiBhIGxvZ2lj YWwgY29ubmVjdGl2ZSBpcyBkZWZpbmVkIHRoZSBzYW1lIGFzIHR3byBkaWZmZXJlbnQgYnJpZGkg Y29ubmVjdGVkIHdpdGggdGhhdCBsb2dpY2FsIGNvbm5lY3RpdmUuIEZvciBpbnN0YW5jZSwgJydt aSBuaXRjdSBkbyAuYSBsYSAuZGphbi4nJyBpcyBkZWZpbmVkIHRvIGJlIGVxdWl2YWxlbnQgdG8g JydtaSBuaXRjdSBkbyAuaSBqYSBtaSBuaXRjdSBsYSAuZGphbi4nJy4gVGhpcyBkZWZpbml0aW9u IGlzIHVzZWZ1bCB0byBiZWFyIGluIG1pbmQsIGJlY2F1c2UgaXQgaW1wbGllcyB0aGF0IHNvbWV0 aW1lcywgc3VtdGkgY2Fubm90IGJlIGNvbm5lY3RlZCB3aXRoIGxvZ2ljYWwgY29ubmVjdGl2ZXMg d2l0aG91dCBjaGFuaW5nIHRoZSBtZWFuaW5nLiBDb25zaWRlciB0aGUgc2VudGVuY2U6ICJKYWNr IGFuZCBKb2Ugd3JvdGUgdGhpcyBwbGF5LiIgT25lIGF0dGVtcHQgYXQgYSB0cmFuc2xhdGlvbiB3 b3VsZCBiZTogJyd0aSBkcmFjaSBmaSBsYSAuZGphay4gZSBsYSAuZGpvdXMuJycKCl9fJydkcmFj aScnX18geDEgaXMgYSBkcmFtYS9wbGF5IGFib3V0IHgyIGJ5IHdyaXRlci9kcmFtYXRpc3QgeDMg Zm9yIGF1ZGllbmNlIHg0IHdpdGggYWN0b3JzIHg1CgoKClRoZSBwcm9ibGVtIHdpdGggdGhpcyB0 cmFuc2xhdGlvbiBpcyB0aGF0IGl0IG1lYW5zICcndGkgZHJhY2kgbGEgLmRqYWsuIGlqZSB0aSBk cmFjaSBsYSAuZGpvdXMuJycsIHdoaWNoIGlzIG5vdCByZWFsbHkgdHJ1ZS4gTmVpdGhlciBKYWNr IG5vciBKb2Ugd3JvdGUgaXQsIHRoZXkgZGlkIHNvIHRvZ2V0aGVyLiBXaGF0IHdlIHdhbnQgaGVy ZSBpcyBvZiBjb3Vyc2UgYSBtYXNzLCBhbmQgc29tZSB3YXkgdG8gam9pbiBKYWNrIGFuZCBKb2Ug aW4gb25lIG1hc3MuIFRoaXMgaGFzIGxpdHRsZSB0byBkbyB3aXRoIGEgdHJ1dGggZnVuY3Rpb24g c28gd2UgbXVzdCB1c2UgYSBub24tbG9naWNhbCBjb25uZWN0aXZlLCB3aGljaCBhcmUgb2Ygc2Vs bWEnbyBKT0kuIFdlJ2xsIHJldHVybiB0byB0aGlzIEphY2sgYW5kIEpvZS1wcm9ibGVtIGluIGEg bGl0dGxlIC0gZmlyc3Q6IEZvdXIgb2YgdGhlIGtub3duIEpPSToKCgoKfHxUaGUgTG9qYmFuIGNv bm5lY3RpdmU6fCcnY2UnJ3wnJ2NlJ28nJ3wnJ2pvaScnfCcnam8ndScnCgpKb2lucyBzdW10aSBh bmQgZm9ybXMgYTp8c2V0fHNlcXVlbmNlfG1hc3N8Z3JvdXAgb2YgaW5kaXZpZHVhbHN8fAoKVGhl IGZ1bmN0aW9ucyBvZiB0aGVzZSB3b3JkcyBhcmUgc2ltcGxlOiAnJ2xvJ2kgcmVtbmEgam8ndSBs bydpIGdlcmt1JycgY29uc2lkZXJzIGJvdGggdGhlIHNldCBvZiBodW1hbnMgYW5kIHRoZSBzZXQg b2YgZG9ncyBkaXN0cmlidXRpdmVseSAoYXMgaW5kaXZpZHVhbHMpLiBSZW1lbWJlciBmcm9tIGxl c3NvbiB0d2VudHktdHdvIChxdWFudGlmaWVycykgdGhhdCAiZGlzdHJpYnV0aXZpdHkiIG1lYW5z IHRoYXQgd2hhdCBpcyB0cnVlIGZvciB0aGUgZ3JvdXAgaXMgYWxzbyB0cnVlIGZvciBlYWNoIG9m IHRoZSBpbmRpdmlkdWFscyBhbG9uZS4gU2ltaWxhcmx5ICcnbG9pIHJvIGdpc211IGNlJ28gbG9p IHJvIGx1anZvIGNlJ28gbG9pIHJvIGZ1J2l2bGEnJyBpcyBhIHNlcXVlbmNlIGNvbnNpc3Rpbmcg b2YgdGhlIG1hc3Mgb2YgYWxsIGdpc211LCBmb2xsb3dlZCBieSB0aGUgbWFzcyBvZiBhbGwgbHVq dm8sIGZvbGxvd2VkIGJ5IHRoZSBtYXNzIG9mIGFsbCBmdSdpdmxhLgoKQXMgd2l0aCBhbGwgb2Yg dGhlIEpPSSB3aGljaCBoYXMgYW4gaW5oZXJlbnQgb3JkZXIsICcnc2UnJyBtYXkgYmUgcHV0IGJl Zm9yZSAnJ2NlJ28nJyB0byBpbnZlcnNlIHRoZSBvcmRlcjogIkEgJydjZSdvJycgQiIgaXMgdGhl IHNhbWUgYXMgIkIgc2UgJydjZSdvJycgQSIuCgoKCkhvdyBjYW4geW91IGNvcnJlY3RseSB0cmFu c2xhdGUgIkphY2sgYW5kIEpvZSB3cm90ZSB0aGlzIHBsYXkiPwoKQW5zd2VyOiB+fmdyZXksZ3Jl eTogJyd0aSBkcmFjaSBmaSBsYSAuZGphay4gam9pIGxhIC5kam91cy4nJ35+IAoKCgpUaGUgY21h dm8gb2YgSk9JIGFyZSB2ZXJ5IGZsZXhpYmxlOiBUaGV5IGNhbiBhY3QgYm90aCBhcyBzdW10aSBj b25uZWN0aXZlcyBhbmQgdGFucnUtaW50ZXJuYWwgY29ubmVjdGl2ZXMsIHNvIHRoZXkgY2FuIGJl IHVzZWQgdG8gY29ubmVjdCBzdW10aSwgc2VsYnJpIGFuZCBicmlkaS4gVGhpcyBmbGV4aWJpbGl0 eSBtZWFucyB0aGF0IG9uZSBtdXN0IGJlIGNhcmVmdWwgdG8gdXNlIGZhJ29ybWEnbyBjb3JyZWN0 bHkgd2hlbiB1c2luZyBhIEpPSS4gCgpXaGF0IGlzIHdyb25nIHdpdGggdGhlIGJyaWRpICcnbG8g ZG90Y28gam8ndSBtaSBjdSBrbGFtYSBsYSBkb3RjbyBndWdkZScnPwoKQW5zd2VyOiB+fmdyZXks Z3JleTogJydqbyd1JycgaXMgcHV0IGFmdGVyIGEgc2VsYnJpLCBzbyBpdCBleHBlY3RzIGEgc2Vs YnJpIGFmdGVyIGl0IHRvIGNvbm5lY3QgdG8sIGJ1dCBub25lIGlzIGZvdW5kLiBIYWQgIGEgJydr dScnIGJlZW4gcHJlc2VudCBiZWZvcmUgdGhlIGNvbm5lY3RpdmUsIGl0IHdvdWxkIGhhdmUgYmVl biBncmFtbWF0aWNhbH5+CgoKCklmIHNldmVyYWwgSk9JIGFyZSB1c2VkLCAnJ2JvJycgYW5kL29y ICcna2UnJyBtYXkgYmUgdXNlZCB0byBvdmVycmlkZSB0aGUgdXN1YWwgbGVmdC1ncm91cGluZzog JydtaSBqb2kgZG8gY2UnbyBsYSAuZGphay4gam9pIGJvIGxhIC5kam91cy4gY3UgcHUnbyBjaSdl cmtlaSBkYW1iYSBsZWkgeHVucmUnJyAiTWUgYW5kIHlvdSwgYW5kIHRoZW4gSmFjayBhbmQgSm9l IGFyZSBhYm91dCB0aGUgcGxheSBhZ2FpbnN0IHRoZSByZWRzIi4gQ29udHJhc3Qgd2l0aCAnJ21p IGpvaSBkbyBjZSdvIGxhIC5kamFrLiBqb2kgbGEgLmRqb3VzLiBjdSBwdSdvIGNpJ2Vya2VpIGRh bWJhIGxlaSB4dW5yZScnIC0gIkZpcnN0IG1lIGFuZCB5b3UsIHRoZW4gSmFjayB3aWxsIHRvZ2V0 aGVyIHdpdGggSm9lIHBsYXkgYWdhaW5zdCB0aGUgcmVkcyIuIAoKQ29ubmVjdGluZyBicmlkaSB3 aXRoIEpPSSBjYW4gbWFrZSBzb21lIGludGVyZXN0aW5nIGltcGxpY2F0aW9ucyBvZiB0aGUgcmVs YXRpb25zaGlwIGJldHdlZW4gdGhlIGJyaWRpOiAnJ2xhIC5kamFrLiBtb3JzaSByaSdhIGxvIG51 IHJpIGR6dXNvaSAuaSBqb2kgbGUgamVtamEnYSBwbyByaSBjdSBiZWJuYScnIC0gIkphY2sgaXMg ZGVhZCBiZWNhdXNlIGhlIHdhcyBhIGluZmFudHJ5IHNvbGRpZXIgYW5kIGhpcyBnZW5lcmFsIHdh cyBhbiBpZGlvdCIsIGltcGx5aW5nIHRoYXQgdGhlc2UgdHdvIGJyaWRpIG1hc3NlZCB0b2dldGhl ciB3YXMgdGhlIHBoeXNpY2FsIGNhdXNlIG9mIGhpcyBkZWF0aDogSGFkIGhlIG9ubHkgYmVlbiBp biBhbiBhcm1vcmVkIHZlaGljbGUgb3Igd2l0aCBhIGNvbXBldGVudCBjb21tYW5kZXIsIGhlIG1p Z2h0IGhhZCBzdXJ2aXZlZC4KCl9fJydkenVzb2knJ19fIHgxIGlzIGFuIGluZmFudHJ5IHNvbGRp ZXIgb2YgYXJteSB4MgoKX18nJ2plbWphJ2EnJ19fIHgxIGlzIGEgZ2VuZXJhbCBvZiBhcm15IHgy IGluIGZ1bmN0aW9uIHgzCgpfXycnYmVibmEnJ19fIHgxIGlzIGZvb2xpc2gvaWRpb3RpYyBpbiBw cm9wZXJ0eS9hc3BlY3QgeDIKCgoKTm9uLWxvZ2ljYWwgY29ubmVjdGl2ZXMgbWF5IGFsc28gYmUg bmVnYXRlZCB3aXRoICcnbmFpJycsIGluZGljYXRpbmcgdGhhdCBzb21lIG90aGVyIGNvbm5lY3Rp dmUgaXMgYXBwcm9wcmlhdGU6ICcnbG8gZGphY3UgY2UnbyBuYWkgLmUnbyBsbyBsYWRydSBjdSBj YXZ5ZmxlIGZpIGxlIG1pIHRjYXRpJycgLSAiUGxlYXNlIGRvbid0IHBvdXIgZmlyc3Qgd2F0ZXIg dGhlbiBtaWxrIGluIG15IHRlYSIuIFRoaXMsIG9mIGNvdXJzZSwgc2F5cyBub3RoaW5nIGFib3V0 IHdoaWNoIGNvbm5lY3RpdmUgaXMgYXBwcm9wcmlhdGUgLSBvbmUgbWlnaHQgZ3Vlc3MgJydzZSBj ZSdvJycgKGZpcnN0IG1pbGssIHRoZW4gd2F0ZXIpLCBvbmx5IHRvIGZpbmQgb3V0IHRoYXQgJycu ZSBuYWknJyAob25seSB3YXRlciwgbm8gbWlsayBhdCBhbGwpIHdhcyB0aGUgY29ycmVjdCBvbmUu CgpfXycnY2F2eWZsZScnX18geDEsIGNvbnNpc3Rpbmcgb2YgeDIsIGZsb3dzIGludG8geDMgZnJv bSB4NAoKSnVzdCBsaWtlIGEgbG9naWNhbCBjb25uZWN0aXZlIGlzIGEgcGxhdXNpYmxlIG5lZ2F0 aW9uIG9mIGEgbm9uLWxvZ2ljYWwgY29ubmVjdGl2ZSwgYW5zd2VycyB0byBxdWVzdGlvbnMgb2Yg dGhlIHR5cGUgJydqaScnIG9yICcnamUnaScnIGNhbiBiZSBib3RoIGxvZ2ljYWwgYW5kIG5vbi1s b2dpY2FsOiBBOiAnJ2xhZHJ1IGplJ2kgc2FrdGEgbGUgZG8gY2thZmknJyBCOiAnJ3NlIGNlJ28n JyAoIk1pbGsgb3Igc3VnYXIgaW4geW91IGNvZmZlZT8iICJGaXJzdCB0aGUgbGF0dGVyLCB0aGVu IHRoZSBmb3JtZXIiKS4gSW4gdGhpcyBjYXNlICcnY2UnJyB3b3VsZCBtYWtlIG5vIHNlbnNlIGF0 IGFsbCwgc2luY2Ugc2V0cyBjYW4ndCBiZSBjb250YWluZWQgaW4gY29mZmVlLCBhbmQgJydqb2kn JyAoYm90aCBtaXhlZCB0b2dldGhlcikgd291bGQgbWVhbiB0aGUgc2FtZSBhcyAnJ2pvJ3UnJyAo Ym90aCBvZiB0aGVtKSwgdW5sZXNzIHRoZSByZXNwb25kYW50IHByZWZlcnJlZCB1bm1peGVkIHN1 Z2FyIGluIGhpcyBjb2ZmZWUuCgoKClRoZSBmaWZ0aCBKT0kgSSBwcmVzZW50IGhlcmUgaXMgYSBi aXQgb2YgYW4gb2RkYmFsbDoKCl9fJydmYSd1JydfXyBOb24tbG9naWNhbCBjb25uZWN0aXZlOiBV bm1peGVkIG9yZGVyZWQgZGlzdHJpYnV0aW9uIChBIGFuZCBCLCByZXNwZWN0aXZlbHkpCgpXaGVu IG9ubHkgb25lICcnZmEndScnIGlzIHBsYWNlZCB3aXRoaW4gYSBicmlkaSAob3Igc2V2ZXJhbCBi cmlkaSBjb25uZWN0ZWQgdG9nZXRoZXIgd2l0aCBjb25uZWN0b3JzKSwgJydmYSd1JycgbWF5IGJl IGFzc3VtZWQgdG8gYmUgaWRlbnRpY2FsIHRvICcnam8ndScnLiBXaGVuIHNldmVyYWwgJydmYSd1 JycgaXMgdXNlZCB3aXRoaW4gb25lIGJyaWRpLCBob3dldmVyLCB0aGUgY29uc3RydWN0cyBiZWZv cmUgJydmYSd1JycgZWFjaCBhcHBseSB0byBlYWNoIG90aGVyLCBhbmQgdGhlIGNvbnN0cnVjdHMg YWZ0ZXIgJydmYSd1JycgZWFjaCBhcHBseSB0byBlYWNoIG90aGVyLiBMZXQncyBoYXZlIGFuIGV4 YW1wbGU6CgonJ21pIGZhJ3UgZG8gcnVza28gZmEndSBrYWRubycnIC0gIllvdSBhbmQgSSBhcmUg UnVzc2lhbiBhbmQgQ2FuYWRpYW4iLCBpbXBseWluZyB0aGF0ICcnbWknJyBnb2VzIHdpdGggJydy dXNrbycnIGFuZCAnJ2RvJycgZ29lcyB3aXRoICcna2Fkbm8nJywgYW5kIGltcGx5aW5nIG5vdGhp bmcgYWJvdXQgYW55IG90aGVyIGNvbWJpbmF0aW9uLiBPZiBjb3Vyc2UsIGluIHRoaXMgZXhhbXBs ZSwgaXQgd291bGQgYmUgbXVjaCBlYXNpZXIgdG8gc2F5ICcnbWkgcnVza28gLmkgZG8ga2Fkbm8n Jy4KCgoKVGhlc2UgbGFzdCB0aHJlZSBKT0kgY29ubmVjdHMgdHdvIHNldHMgdG8gbWFrZSBuZXcg c2V0czoKCl9fJydqbydlJydfXwlBIHVuaW9uIEIKCl9fJydrdSdhJydfXwlBIGludGVyc2VjdGlv biBCCgpfXycncGkndSAnJ19fCUNyb3NzIHByb2R1Y3Qgb2YgQSBhbmQgQgoKCgpUaGVzZSBhcmUg cHJvYmFibHkgbm90IHZlcnkgdXNlZnVsIGZvciB0aGUgYXZlcmFnZSBMb2piYW5pc3QsIGJ1dCBJ IG1pZ2h0IGFzIHdlbGwgaW5jbHVkZSB0aGVtIGhlcmUuCgpUaGUgZmlyc3Qgb25lLCAnJ2pvJ2Un JywgbWFrZXMgYSBuZXcgc2V0IGZyb20gdHdvIHNldHMuIFRoaXMgbmV3IHNldCBjb250YWlucyBv bmx5IHRob3NlIG1lbWJlcnMgd2hpY2ggYXJlIGluIGJvdGggc2V0cy4KCkEgc2V0IG1hZGUgd2l0 aCAnJ2t1J2EnJyBjb250YWlucyBhbGwgdGhlIG1lbWJlcnMgb2Ygc2V0IEEgYW5kIHRob3NlIG9m IHNldCBCLiBJZiBhbnl0aGluZyBpcyBhIG1lbWJlciBvZiBib3RoIHNldHMsIHRoZXkgYXJlIG5v dCBjb3VudGVkIHR3aWNlLgoKJydwaSd1JycgaXMgYSBsaXR0bGUgbW9yZSBjb21wbGljYXRlZC4g QSBzZXQgIkEgJydwaSd1JycgQiIgY29udGFpbnMgYWxsIHRoZSBwb3NzaWJsZSBjb21iaW5hdGlv bnMgb2YgImEgJydjZSdvJycgYiIsIHdoZXJlIGEgaXMgYSBtZW1iZXIgb2YgQSBhbmQgYiBpcyBh IG1lbWJlciBvZiBCLiBJdCBpcyB0aHVzIGEgc2V0IG9mIHNlcXVlbmNlcyBvZiBtZW1iZXJzLiBJ ZiwgZm9yIGluc3RhbmNlLCBzZXQgQSBjb250YWluZWQgdGhlIG1lbWJlcnMgcCBhbmQgcSwgYW5k IHNldCBCIGNvbnRhaW5lZCBtZW1iZXJzIGYgYW5kIGcsIHRoZW4gQSAnJ3BpJ3UnJyBCIHdvdWxk IGJlIGEgc2V0IGNvbnNpc3Rpbmcgb2YgdGhlIGZvdXIgbWVtYmVycyBwICcnY2UnbycnIGYsIHAg JydjZSdvJycgZywgcSAnJ2NlJ28nJyBmIGFuZCBxICcnY2UnbycnIGcuCgoKCiEhIUVuZCBvZiBw YXJ0IHR3bwoKKCh3YXZlbGVzc29uc2NvbnRpbnVlZHxSZXR1cm4gdG8gdGhlIHdhdmVsZXNzb25z IHBhcnQgb25lKSkKClRoaXMgcGFydCBjb25jbHVkZXMgdGhlIHR1dG9yaWFsIHRvIG9yZGluYXJ5 IExvamJhbi4gSW4gdGhlIHRoaXJkIHBhcnQsIEkgd2lsbCBmb2N1cyBvbiBhZHZhbmNlZCBMb2pi YW4gLSB0aGUgcGFydHMgeW91IGRvbid0IGFjdHVhbGx5IG5lZWQgdG8ga25vdyB0byBzcGVhayB0 aGUgbGFuZ3VhZ2UuIEkgZGlzY291cmFnZSB5b3UgdG8gYmVnaW4gcmVhZGluZyB0aGUgdGhpcmQg cGFydCB1bnRpbCB5b3UgZmVlbCBjb21mb3J0YWJsZSBlbm91Z2ggd2l0aCB0aGUgaW5mb3JtYXRp b24gaW4gdGhlIGZpcnN0IHR3byBwYXJ0cyB0byBob2xkIGFuIHdyaXR0ZW4gY29udmVyc2F0aW9u IGluIHRoZSBsYW5ndWFnZS4gSWYgeW91IF9fZG9fXyB3aXNoIHRvIGNvbnRpbnVlLCB5b3UgY2Fu IHByZXNzICgod2F2ZWxlc3NvbnNjb250aW51ZWRwM3x0aGlzIGxpbmspKSB0byBnbyB0aGVyZS4K CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpXaWtpbmV1 cm90aWMgbWFpbGluZyBsaXN0Cldpa2luZXVyb3RpY0Bsb2piYW4ub3JnCmh0dHA6Ly9tYWlsLmxv amJhbi5vcmcvbWFpbG1hbi9saXN0aW5mby93aWtpbmV1cm90aWMK