From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?UTF-8?Q?Andreas_R=C3=B6hler?= Newsgroups: gmane.emacs.tangents Subject: Re: Enhancing ELisp for AI Work Date: Sat, 4 Jan 2025 11:44:23 +0100 Message-ID: <782d0928-c1b4-483a-9092-b959214b1653@easy-emacs.de> References: <7290780.2375960.1734348492938@mail.yahoo.com> <6c53521e-4aa6-40d1-b4a5-0e00989ad201@easy-emacs.de> <112da2f7-eb5a-4112-9be0-29fa3d73045c@easy-emacs.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="25342"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla Thunderbird Cc: emacs-tangents@gnu.org To: Jean Louis Original-X-From: emacs-tangents-bounces+get-emacs-tangents=m.gmane-mx.org@gnu.org Sat Jan 04 11:45:31 2025 Return-path: Envelope-to: get-emacs-tangents@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1tU1es-0006Pa-IG for get-emacs-tangents@m.gmane-mx.org; Sat, 04 Jan 2025 11:45:30 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tU1eT-00029F-3B; Sat, 04 Jan 2025 05:45:05 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tU1eR-00027a-8b for emacs-tangents@gnu.org; Sat, 04 Jan 2025 05:45:03 -0500 Original-Received: from mout.kundenserver.de ([217.72.192.74]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tU1eO-0003DT-HI for emacs-tangents@gnu.org; Sat, 04 Jan 2025 05:45:02 -0500 Original-Received: from [192.168.178.61] ([89.247.171.236]) by mrelayeu.kundenserver.de (mreue109 [212.227.15.183]) with ESMTPSA (Nemesis) id 1MekvT-1u4Bo41Egf-00jq1X; Sat, 04 Jan 2025 11:44:25 +0100 Content-Language: de-DE In-Reply-To: X-Provags-ID: V03:K1:L87B7IMObj4Smz28fpT2ZOx8T2KJfywfSLGq7d/kuSQtQ9f18XH K5u3Vl+ek2s7JYtRRmSAJ3F1W3WDgaxUJ0YlMZ6SuWn/f8TEGR4qGCO78Wu7djXprcc77Qd we31xmDWmaORCXPEDDCS9iKLf64B2v0s6WqPF4eAtAeUqivrFcyLoTB3tVRWaZKJ4gxL40q vbo9DiPhhtGE2H3aqUVrg== UI-OutboundReport: notjunk:1;M01:P0:MTapc6/7Eng=;VymNjJjiGi9pnp++2wed7pG2V9Y DbrIMTG/pIAmCDOkTZaCYlB1sYn6zeEd++7CPW7is1uXs222XWxoKDQGvZmV4Zaa+jABf2b3M 1/YcBZZScIMMGrnkTkwByMR3zEVCJl9t719h5r03r+OKxZY07CCKFREtiPz2w+/n5jeiYCYVj rxffI+AHu3l+7T22VTSOP2QecZ4dFpKkgrNKmthbxxOQtvtP6M3PSRgoRvVotv/+Ud6ddVf+O k5WwSOos/E0UIeRr4RRZe3X18oRde45cjqrGppX82Bw3tJzkmTpfhiwIsEohYPjoIYCbp1zBe 8nbTDEDytln3FC2dgd41nGcpHebFk0l4hLShvKTZPi6T15Z1eMf8sw2Y3aCQ0EgcnpniQ94bT jWb2QcP7i/J+BjtLLlA3zL7iOyGOFa4g66HEhDA6IkH7haNkS725J+lYi/5bae62d06WrfF84 4opGBhc+B3mGIpU7fsdaFJZx7JYrPU5bb6N516UoGvFbTUgif7cYuHz4aZgdXmK8EB5e/7Plm qPhzVBRy4Kp+65lgaS8ZPkFK+VY41c13gLKiWq90iAoMscUKPqJPs+h+Q3+QWEqKQ6jh0XaH+ ZfRqwb1Od2PbeCK5vbwpZ13U+Xdd9MuqGK3GDf8pIUysNmDdYmWhz5DLFpZp+dSw9XG/PUzsK 1xwROCYUs6MNv1/wQkzSxMcqUC72qpg3WD3Db4WfQlLXWKLTQ5vP7IW4sqgQqs4hDxp1UhXfC ip9oK/9u9i3x9lp40ov9qAlIYoskEXILIWaMQtpb8b6u5AkWoyPG+7s92VpAIhSYO0vvEeYJ Received-SPF: pass client-ip=217.72.192.74; envelope-from=andreas.roehler@easy-emacs.de; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-tangents@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Emacs news and miscellaneous discussions outside the scope of other Emacs mailing lists List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-tangents-bounces+get-emacs-tangents=m.gmane-mx.org@gnu.org Original-Sender: emacs-tangents-bounces+get-emacs-tangents=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.tangents:1287 Archived-At: SGkgSmVhbiwKCnRyaWVkIHlvdXIgY29kZSBkZWxpdmVyZWQgYXQgCmh0dHBzOi8vbGlzdHMuZ251 Lm9yZy9hcmNoaXZlL2h0bWwvaGVscC1nbnUtZW1hY3MvMjAyNC0xMi9tc2cwMDM2My5odG1sCgp3 aGljaCB3b3JrcyBuaWNlbHksIHRoYW5rcyEKCk5vdGFibHkgaXQncyBtdWNoIHNtYWxsZXIgdGhh biB0aGUgc3R1ZmYgc2VlbiBzbyBmYXIuCgpJcyB0aGVyZSBhIHJlcG8gZm9yIGl0PwoKTWF5YmUg c29tZSB0d2Vha3MgYmUgb2YgaW50ZXJlc3QgZm9yIG90aGVyIHRvby4KCgpDaGVlcnMsCgpBbmRy ZWFzCgoKQW0gMjYuMTIuMjQgdW0gMDk6Mzcgc2NocmllYiBKZWFuIExvdWlzOgo+IE9rYXkgbGV0 IHVzIG1vdmUgaXQgdG8gRW1hY3MgVGFuZ2VudHMgbWFpbGluZyBsaXN0Lgo+Cj4gSW4gZ2VuZXJh bCBJIGZpbmQgeW91ciB3cml0aW5ncyBpbnRlcmVzdGluZyEKPgo+IFNhbWUgSSB3YXMgdGhpbmtp bmcgbXlzZWxmLCB0aGF0IGl0IGlzIGdyZWF0IHRoaW5nLCBnaXZpbmcgbWUgYWNjdXJhdGUKPiBy ZXN1bHRzLCB1bnRpbCB0aGUgdmVyaWZpY2F0aW9uISBNYW55IHRoaW5ncyB3ZXJlIHNpbXBseSBp bnZlbnRlZCEKPgo+IFRoZW4gYWZ0ZXIgdmVyaWZpY2F0aW9uIG9mIGhvdyBpdCB3b3JrcywgSSBj b3VsZCB1bmRlcnN0YW5kIGl0IGFuZCBJCj4gcmVhbGl6ZWQgdGhhdCBpdCBoYXMgbm8gaW50ZWxs aWdlbmNlLgo+Cj4gKiBBbmRyZWFzIFLDtmhsZXIgPGFuZHJlYXMucm9laGxlckBlYXN5LWVtYWNz LmRlPiBbMjAyNC0xMi0yNSAyMzoyMl06Cj4+IG1heWJlIGxldCdzIGZvcmdldCBDaGF0R1BUIGlu IGl0cyBjdXJyZW50IHN0YXRlLCBidXQgcmVmZXIgdG8gdGhpcyBwaHJhc2U6Cj4+Cj4+ICcnJ0Eg cHJvYmFiaWxpdCB0ZXh0IGdlbmVyYXRvciBpcyBidWxsc2hpdCBnZW5lcmF0b3IuIEl0IGNhcmVz IHplcm8gb2YKPj4gdGhlIHRydXRoLCBpdCBpcyBwcm9ncmFtLiBGYXIgZnJvbSB0aGUgcmVhbCAi aW50ZWxsaWdlbmNlIi4nJycKPj4KPj4gSU1PIHRoYXQncyB3cm9uZyBmcm9tIHRoZSBodW1hbiBh cyBmcm9tIHRoZSBtYWNoaW5lIHNpZGUuCj4gSSB0aGluayB5b3Ugd2FudGVkIHRvIHNheSB0aGF0 IGl0IGlzIHNhbWUgZm9yIGh1bWFuLCB0aGF0IGh1bWFuIGFsc28KPiBkb2Vzbid0IHRha2UgY2Fy ZSBmb3IgdHJ1dGguCj4KPiBBbmQgeWVzISBUaGF0IGlzIHRoZSBwcm9ibGVtIG1vc3Qgb2YgdGhl IHRpbWUgd2l0aCBodW1hbiwgdGhleSBtaW1pYwo+IHRoZSBleHByZXNzaW9ucyBhbmQgInRleHQi LCB0YWxrLCBjb21tdW5pY2F0aW9uIG9mIG90aGVyIGh1bWFuLCBub3QKPiBldmVyeWJvZHkgaXMg dGhpbmtpbmchIEJ1dCBhbG1vc3QgZXZlcnlib2R5IGlzIGFibGUgdG8gbWltaWMuIEFuZCBtYW55 Cj4gbWFueSBhbW9uZyB1cyBkbyBub3QgY2FyZSBvZiB0cnV0aC4KPgo+IFRob3VnaCB0aGV5IGhh dmUgdGhlIGNhcGFiaWxpdHkgdG8gY2FyZSBvZiB0aGUgdHJ1dGguIEVhY2ggb2YgdXMuCj4KPiBU aGUgY2FwYWJpbGl0eSB0byBjYXJlIG9mIHRydXRoIG9yIGRpc2NvdmVyIHRydXRoIGV2ZW4gd2l0 aG91dCBiZWluZwo+IHRyYWluZWQgbWF5YmUgaXMgb25lIG9mIG5hdHVyYWwgaW50ZWxsaWdlbmNl IHRyYWl0cy4KPgo+IERpZSBGw6RoaWdrZWl0LCBkaWUgV2FocmhlaXQgenUgZXJrZW5uZW4gb2Rl ciB6dSBlbnRkZWNrZW4sIGF1Y2ggb2huZQo+IGVudHNwcmVjaGVuZGUgQXVzYmlsZHVuZywga8O2 bm50ZSBlaW4gTWVya21hbCBkZXIgbmF0w7xybGljaGVuCj4gSW50ZWxsaWdlbnogc2Vpbi4KPgo+ PiBIdW1hbiBjb25zaWRlciB0aGVtc2VsZiBhcyBpbnRlbGxpZ2VudC4gQnV0IGhvdyB0byBwcm9v ZiB0aGF0Pwo+IE5vIG1hdHRlciB0aGUgbGV2ZWwgb2YgaW50ZWxsaWdlbmNlLCB3ZSBjYW4gb2Jz ZXJ2ZSBpbiBzbWFsbCBjaGlsZHJlbgo+IHRoYXQgdGhleSB3aWxsIHN0YXJ0IHJlc29sdmluZyBw cm9ibGVtcy4gTm9ib2R5IG5lZWRzIHRvIHRlYWNoIHRoZW0sCj4gdGhleSBzdGFydCBvYnNlcnZp bmcgYW5kIGNvbWUgdG8gc29sdXRpb25zLiBJc24ndCB0aGF0IG9uZSBvZiBtYWpvcgo+IHByb29m cz8KPgo+IEVnYWwgYXVmIHdlbGNoZW0gSW50ZWxsaWdlbnpuaXZlYXUsIHdpciBrw7ZubmVuIGJl aSBrbGVpbmVuIEtpbmRlcm4KPiBiZW9iYWNodGVuLCBkYXNzIHNpZSBhbmZhbmdlbiwgUHJvYmxl bWUgenUgbMO2c2VuLiBOaWVtYW5kIG11c3MgZXMKPiBpaG5lbiBiZWlicmluZ2VuLCBzaWUgYmVn aW5uZW4genUgYmVvYmFjaHRlbiB1bmQga29tbWVuIHp1Cj4gTMO2c3VuZ2VuLiBJc3QgZGFzIG5p Y2h0IGVpbmVyIGRlciBiZWRldXRlbmRzdGVuIEJld2Vpc2U/Cj4KPj4gSHVtYW5zIGNhbiBjb3Vu dC4gUmVhbGx5PyBJZiB5ZXMsIHdoeSB0aGUgZmlyc3QgZWxlbWVudCBvZiBhbiBpbmRleAo+PiBp biBmYW1vdXMgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIGlzIGRlc2lnbmF0ZWQgYXMgWmVybyBpbnN0 ZWFkIG9mCj4+IE9uZT8KPiBBbHJpZ2h0LCB0aG91Z2ggY291bnRpbmcgbWF5IG5vdCBiZSB0aGUg YmFzaWMgb2YgaW50ZWxsaWdlbmNlLiAgUGVyc29uCj4gZG9lc24ndCBuZWVkIHRvIGNvdW50IG9y IGtub3cgaG93IHRvIHdyaXRlIHRvIGJlIGludGVsbGlnZW50Lgo+Cj4gV2UgY2FuJ3Qgc2F5IHdl IGFyZSBhbGwgZXF1YWxseSBpbnRlbGxpZ2VudCwgbWFueSBhcmUgb24gdGhlIGxldmVsIG9mCj4g dGhlIGFuaW1hbCBhbW9uZyB0aGUgaHVtYW4gb24gdGhpcyBwbGFuZXQuCj4KPj4gT1RPSCBtYWNo aW5lcywgYXNrZWQ6ICcnJ2luIGZyZW5jaDogImludmVyc2lvbiBhY2N1c2F0b2lyZSInJycKPj4K Pj4gUmVzcG9uc2Ugd2FzOgo+Pgo+PiAnJydMYSAiaW52ZXJzaW9uIGFjY3VzYXRvaXJlIiBlbiBm cmFuw6dhaXMgZXN0IGFwcGVsw6llICJwYXNzaWYiIG91ICJpbnZlcnNpb24KPj4gZGUgc3VqZXQi IGVuIGdyYW1tYWlyZS4KPj4KPj4gRW4gT2RvbywgbCdpbnZlcnNpb24gYWNjdXNhdG9pcmUgc2Ug csOpZsOocmUgw6AgbCdvcmRyZSBkZXMgbW90cyBkYW5zIHVuZQo+PiBwaHJhc2UgcXVpIGVzdCBp bnZlcnPDqSBwYXIgcmFwcG9ydCDDoCBsYSByw6hnbGUgZ8OpbsOpcmFsZS4gRW4gZnJhbsOnYWlz LCBsYQo+PiByw6hnbGUgZ8OpbsOpcmFsZSBlc3QgcXVlIGxlIHN1amV0IGRlIGxhIHBocmFzZSBk b2l0IMOqdHJlIG1pcyBlbiBwcmVtaWVyLAo+PiBzdWl2aWUgZHUgdmVyYmUgZXQgZW5zdWl0ZSBk ZSBsJ29iamV0Lgo+Pgo+PiBFeGVtcGxlIGRlIHBocmFzZSBub3JtYWxlIDogTGUgY2xpZW50IGFj aMOodGUgdW4gcHJvZHVpdC4KPj4KPj4gSW52ZXJzaW9uIGFjY3VzYXRvaXJlIDogVW4gcHJvZHVp dCBhY2jDqHRlIGxlIGNsaWVudC4KPj4KPj4gRW4gT2RvbywgbCdpbnZlcnNpb24gYWNjdXNhdG9p cmUgZXN0IHV0aWxpc8OpZSBwb3VyIGZvcm1hdHRlciBsZXMKPj4gaW5mb3JtYXRpb25zIGRhbnMg bGVzIHJhcHBvcnRzIG91IGxlcyB2dWVzLCBwYXIgZXhlbXBsZSwgcG91ciBkw6lmaW5pcgo+PiBs J29yZHJlIGRlcyBjaGFtcHMgZGFucyB1bmUgZm9ybXVsYWlyZS4KPj4KPj4gSidlc3DDqHJlIHF1 ZSBjZWxhIHZvdXMgYSBhaWTDqSAhJycnCj4gSGVyZSBpcyB0aGUgdHJhbnNsYXRpb246Cj4KPj4g VGhlICJpbnZlcnNpb24gYWNjdXNhdG9pcmUiIGluIEZyZW5jaCBpcyBjYWxsZWQgInBhc3NpdmUi IG9yICJzdWJqZWN0IGludmVyc2lvbiIgaW4gZ3JhbW1hci4KPj4KPj4gSW4gT2RvbywgdGhlIGlu dmVyc2lvbiBhY2N1c2F0b2lyZSByZWZlcnMgdG8gdGhlIHdvcmQgb3JkZXIgaW4gYSBzZW50ZW5j ZSB0aGF0IGlzIHJldmVyc2VkIGNvbXBhcmVkIHRvIHRoZSBnZW5lcmFsIHJ1bGUuIEluIEZyZW5j aCwgdGhlIGdlbmVyYWwgcnVsZSBpcyB0aGF0IHRoZSBzdWJqZWN0IG9mIHRoZSBzZW50ZW5jZSBt dXN0IGJlIHBsYWNlZCBmaXJzdCwgZm9sbG93ZWQgYnkgdGhlIHZlcmIsIGFuZCB0aGVuIHRoZSBv YmplY3QuCj4+Cj4+IEV4YW1wbGUgb2YgYSBub3JtYWwgc2VudGVuY2U6IFRoZSBjdXN0b21lciBi dXlzIGEgcHJvZHVjdC4KPj4KPj4gQWNjdXNhdGl2ZSBpbnZlcnNpb246IEEgcHJvZHVjdCBidXlz IHRoZSBjdXN0b21lci4KPj4KPj4gSW4gT2RvbywgdGhlIGFjY3VzYXRpdmUgaW52ZXJzaW9uIGlz IHVzZWQgdG8gZm9ybWF0IGluZm9ybWF0aW9uIGluIHJlcG9ydHMgb3Igdmlld3MsIGZvciBleGFt cGxlLCB0byBkZWZpbmUgdGhlIG9yZGVyIG9mIGZpZWxkcyBpbiBhIGZvcm0uCj4gSSBrbm93IEl0 YWxpYW4gd2hlcmUgaXQgaXMgb2Z0ZW4gdXNlZCwgYXMgYSBydWxlLCBhbmQgSSB1bmRlcnN0YW5k Cj4gdGhhdCB0eXBlIG9mIGV4cHJlc3Npb25zIGluIG90aGVyIGxhbmd1YWdlcywgaXQgbWF5IGJl IHVzZWQgaW4gR2VybWFuCj4gdG9vLiBBbmQgY29tcHV0ZXIgaXMgdGhlcmUg8J2ZtfCdmbDwnZmx 8J2agfCdmbjwnZmy8J2ZsPCdmoPwnZm48J2ZvfCdmbYgcmF0aGVyIHRoYW4gYWJzdHJhY3Rpbmcu Cj4KPiBJIHVuZGVyc3RhbmQgdGhlIGlsbHVzaW9uIQo+Cj4gU29tZWhvdywgc2luY2UgSSBmaXJz dCBzdGFydGVkIHVzaW5nIGl0LCBhbmQgZ29vZCBJIHN0YXJ0ZWQgYmVmb3JlIGEKPiB5ZWFyLCBJ IGdvdCB0aGUgcmlnaHQgaW1wcmVzc2lvbiB0aGF0IGl0IGRvZXNuJ3QgcmVhc29uLCBpdCBnZW5l cmF0ZXMKPiB0ZXh0IGJ5IHN0YXRpc3RpY3MuCj4KPiBXaHkgSSBzYXkgaXQgd2FzIGltcG9ydGFu dCB0byBzdGFydCBlYXJseT8gQmVjYXVzZSBieSBzdGFydGluZyBlYXJseSBJCj4gY291bGQgZXhw ZXJpZW5jZSB3aGF0IG5vbnNlbnNlIGl0IGdpdmVzIG1lIQo+Cj4gRmFrZSBib29rcywgZmFrZSBy ZWZlcmVuY2VzIHRvIHdyaXR0ZW4gYm9va3MsIGZha2UgbmFtZXMgb2YgYWN0b3JzLAo+IHdobyBh Y3RlZCBpbiBmYWtlIG1vdmllcy4gWW91IG5hbWUgaXQhCj4KPiBUaGF0IGlzIHdoZXJlIEkgcmVh bGl6ZWQgdGhhdCB1bmRlcmx5aW5nICJyZWFzb25pbmciIGlzIG5vdCB0aGVyZSwgaXQKPiBpcyBm YWJyaWNhdGVkLgo+Cj4gRmFicmljYXRpb24gb3MgbWFraW5nIGl0IHVwLCBzaG91bGQgbm90IGJl IGNhbGxlZAo+IGhhbGx1Y2luYXRpb24uIFByb2Zlc3Npb25hbHMgYXJlIHdhcm5pbmcgdGhlIHdv cmxkIGluIHRoZWlyIHBhcGVycwo+IHRoYXQgY29tcHV0ZXJzIGRvIG5vdCBoYWxsdWNpbmF0ZS4K Pgo+IEFydGlmaWNpYWwgSGFsbHVjaW5hdGlvbnMgaW4gQ2hhdEdQVDogSW1wbGljYXRpb25zIGlu IFNjaWVudGlmaWMgV3JpdGluZyB8IEN1cmV1czoKPiBodHRwczovL3d3dy5jdXJldXMuY29tL2Fy dGljbGVzLzEzODY2Ny1hcnRpZmljaWFsLWhhbGx1Y2luYXRpb25zLWluLWNoYXRncHQtaW1wbGlj YXRpb25zLWluLXNjaWVudGlmaWMtd3JpdGluZyMhLwo+Cj4gQ2hhdEdQVCwgQmluZyBhbmQgQmFy ZCBEb27igJl0IEhhbGx1Y2luYXRlLiBUaGV5IEZhYnJpY2F0ZSAtIEJsb29tYmVyZzoKPiBodHRw czovL3d3dy5ibG9vbWJlcmcuY29tL25ld3MvbmV3c2xldHRlcnMvMjAyMy0wNC0wMy9jaGF0Z3B0 LWJpbmctYW5kLWJhcmQtZG9uLXQtaGFsbHVjaW5hdGUtdGhleS1mYWJyaWNhdGUKPgo+IENvbXB1 dGVycyBtYXliZSBjb25mYWJ1bGF0ZSwgb3IgZmFicmljYXRlLCBjb21wdXRlLCBidXQgd2UgY2Fu J3Qgc2F5Cj4gaGFsbHVjaW5hdGUgYXMgdGhhdCBpcyBha2luIG9ubHkgdG8gaHVtYW4gb3IgbGl2 aW5nIGJlaW5nLgo+Cj4gQ29tcHV0ZXJzIGluIGZhY3Qgb25seSBjb21wdXRlIHdoYXQgYXV0aG9y cyB3YW50ZWQuCj4KPiBBbnRocm9wb21vcnBoaXplKiogKHZlcmIpOiB0byBhdHRyaWJ1dGUgaHVt YW4gY2hhcmFjdGVyaXN0aWNzLAo+IHF1YWxpdGllcywgb3IgYmVoYXZpb3JzIHRvIG5vbi1odW1h biBlbnRpdGllcywgc3VjaCBhcyBhbmltYWxzLAo+IG9iamVjdHMsIG9yIGlkZWFzLiBUaGlzIG1l YW5zIGdpdmluZyBodW1hbi1saWtlIHF1YWxpdGllcywgZW1vdGlvbnMsCj4gb3IgaW50ZW50aW9u cyB0byB0aGluZ3MgdGhhdCBhcmUgbm90IGh1bWFuLgo+Cj4gQW50aHJvcG9tb3JwaGl6aW5nIHNv ZnR3YXJlIGluIGNvbXB1dGluZyBjb250ZXh0cyBjYW4gYmUgYSB3YXkgdG8KPiBleHByZXNzIGVt b3Rpb25zIGFib3V0IGhvdyB0b29scyBwZXJmb3JtLgo+Cj4gIk15IEVtYWNzIGRpc3R1cmJlZCBt ZSIgLS0gdGhvdWdoIEVtYWNzIGRvZXMgbm90aGluZyB3aXRob3V0IGh1bWFuCj4gaW5zdHJ1Y3Rp bmcgaGltLiBJdCBzaG91bGQgYmUgImFuIGV4YW1wbGUiIGluc3RlYWQgb2YgIkl0IGlzIGV4YW1w bGUiLiBUaGUgY29ycmVjdCBzZW50ZW5jZSB3b3VsZCBiZToKPgo+IEl0IGlzIGFuIGV4YW1wbGUg b2YgYW50aHJvcG9tb3JwaGl6aW5nLgo+Cj4gLSBFbWFjcyBpcyBnZXR0aW5nIHRpcmVkLCBJIHRo aW5rIEkgbmVlZCB0byByZXN0YXJ0IGl0IHRvIGZyZWUgdXAgc29tZQo+ICAgIG1lbW9yeS4KPgo+ IC0gSSB0YXVnaHQgRW1hY3MgYSBuZXcgdHJpY2sgYnkgd3JpdGluZyBhIGN1c3RvbSBlbGlzcCBm dW5jdGlvbiB0bwo+ICAgIGF1dG9tYXRlIGEgdGFzay4KPiAgICAKPiAtIFRoZSBFbWFjcyBpcyBj b21wbGFpbmluZyB0aGUgZm9ybWF0dGluZyBvZiBteSBjb2RlLgo+Cj4gLSBFbWFjcyBpcyBwbGF5 aW5nIHRyaWNrcyBvbiBtZSwgaXQga2VlcHMgYXV0by1pbmRlbnRpbmcgbXkgY29kZSBpbgo+ICAg IHdlaXJkIHdheXMuCj4KPiBJIHdhcyBhbHdheXMgYnJpbmdpbmcgdXAgdG8gYXR0ZW50aW9uIHdo ZW4gYW50aHJvcG9tb3JwaGl6aW5nIHdhcyB1c2VkCj4gaW4gdGhlIGNvbnRleHQgb2YgcmVsZWFz aW5nIHJlc3BvbnNpYmlsaXRpZXMgZnJvbSBodW1hbiBvcGVyYXRvciBvcgo+IHByb2dyYW1tZXIu Cj4KPiAtIGNhbid0IHNlbmQgbW9uZXksICJuZXR3b3JrIHByb2JsZW0iIC0tIHRoYXQgaXMgY29t bW9uIGV4Y3VzZSwgdGhvdWdoCj4gICAgSSBrbm93IHNvbWVvbmUgaXMgYWx3YXlzIHJlcG9uc2li bGUsIGl0IHdhc24ndCByYWluIGZhbGxpbmcgZG93bgo+ICAgIHVuY29udHJvbGxhYmx5LCBpdCB3 YXMgb3BlcmF0b3JzIGxhY2tpbmcgc2tpbGxzOwo+Cj4gLSBjb21wdXRlciBkaWQgaXQhIC0tIHdo ZW4gb3BlcmF0b3JzIGFuZCB0cnVseSByZXNwb25zaWJsZSBwZW9wbGUgdXNlCj4gICAgYW50aHJv cG9tb3JwaGl6aW5nIHRvIGdldCByaWQgb2YgdGhlIGNhdXNhdGl2ZSByZXNwb25zaWJpbGl0eTsK Pgo+IE9mdGVuIHBlb3BsZSBkbyBpdCB1bmNvbnNjaW91c2x5LiBJdCBpcyBpbnRlcmVzdGluZywg YnV0IGl0IGlzCj4gaW1wb3J0YW50IGZvciB1cywgd2hvIHRoaW5rLCB0byByZWNvZ25pemUgdGhl IGZhY3RzIHRoYXQgcGVvcGxlCj4gdXRpbGl6ZSBhbnRocm9wb21vcnBoaXppbmcgaW4gdGhlaXIg ZGFpbHkgbGlmZS4KPgo+IFRvIHNheSB0aGF0IExhcmdlIExhbmd1YWdlIE1vZGVsIChMTE0pICJo YWxsdWNpbmF0ZSIgaXMgeWV0IGFub3RoZXIKPiBwdWJsaWMgcmVsYXRpb25zIHN0dW50IHRoYXQg d2lzaCB0byBzYXkgY29tcHV0ZXJzIGFyZSBhbGl2ZS4KPgo+IENvdWxkIHRoZSAiT3BlbiJBaSBi ZSB0cnV0aGZ1bCB0byB0aGUgcHVibGljIGFuZCBub3QgYW50aHJvcG9tb3JwaGl6ZQo+IHRoZWly IHByb2R1Y3RzPyBZZXMsIHRoZXkgY291bGQuIEJ1dCB0aGV5IGRvIG5vdCB3YW50Lgo+Cj4gV2h5 PyBCZWNhdXNlIHRoZXkgd2FudCB0byByZWxlYXNlIHRoZW1zZWx2ZXMgb2YgcmVzcG9uc2liaWxp dGllcywgb2YKPiB0aGUgZnJ1c3RyYXRpb24gdGhleSBjYXVzZWQsIG9mIHRoZSBtaXN1bmRlcnN0 YW5kaW5ncyB0aGV5IGhhdmUKPiBnZW5lcmF0ZWQuCj4KPiBUaGV5IGNvdWxkIHNheSB0aGF0IGNv bXB1dGVyIGlzIHByb2R1Y2luZyBub25zZW5zZSBiZWNhdXNlIGl0IGRvZXNuJ3QKPiBoYXZlIGFu eSBpbnRlbGxpZ2VuY2UsIGl0IGlzIGp1c3QgbWF0aGVtYXRpY2FsIHByb2dyYW0gY29tcHV0aW5n IGFuZAo+IHNwaXR0aW5nIHRleHQgb3V0IHdpdGhvdXQgY2FyZSB0byB0aGUgdHJ1dGguCj4KPiBC dXQgaG93ICJPcGVuIkFJIGNhbiBzYXkgdGhhdD8gSXQgaXMgYWdhaW5zdCB0aGVpciBwcm9tb3Rp b25hbAo+IHN0cmF0ZWd5LCB0aGVpciBjb21wYW55IG5hbWUgY29udGFpbnMgIkFJIiBhbmQgdGhl eSBidWlsZCBwcm9kdWN0IGJ5Cj4gZGVjZWl2aW5nIHBlb3BsZSB0aGVyZSBpcyBzb21lIGtpbmQg b2YgImludGVsbGlnZW5jZSIgdGhlcmUuICBQcm9iYWJseQo+IHRoZXJlIHdhcyBuZXZlciBhbnkg aW50ZWxsaWdlbmNlIGluIGNvbXB1dGVyIHNvIGZhciwgaXQgaXMgYWxsIHRoZSB3YXkKPiBvZiBz YWxlcyBhbmQgbWFya2V0aW5nLiBIb3cgZWxzZSB0byBtYWtlIG1vbmV5Pwo+Cj4gR29vZCB0aGF0 IHNjaWVudGlzdHMgd3JpdGluZyB0aG9zZSBwYXBlcnMgYXJlIG5vdCBmaW5hbmNlZCBieSB0aG9z ZQo+IGxhcmdlIGNvcnBvcmF0aW9ucywgb3RoZXJ3aXNlIHdlIHdvdWxkIGdldCB0cnVlIGNvbmZ1 c2lvbi4KPgo+PiB0aGUgY29udGV4dCBhc3N1bWVkIGJ5IHRoZSBMTE0gd2FzIGZhbHNlLiBCdXQg bm9uZSB3YXMgZGVsaXZlcmVkLgo+Pgo+PiBJbnNpZGUgdGhlIGZhbHNlIGNvbnRleHQsIHRoZSBj b25jbHVzaW9uIGlzIHF1aXRlCj4+IGludGVyZXN0aW5nLiBCZWNhdXNlIOKAmGFjaGV0ZXJl4oCZ IC0tIGJ1eWluZyAtLSB3YXNuJ3QgbWVudGlvbmVkIGF0Cj4+IGFsbC4gSW4gYW4gYWJzdHJhY3Qg dmlldywgdGhlIHJlYXNvbmluZyBtaWdodCB3ZWxsIGhhdmUgc2Vuc2UuIFRoZXJlCj4+IGFyZSBv dGhlciByZW1hcmtzIGluIHRoaXMgcmVzcG9uc2UsIHdoaWNoIGluZGljYXRlIHRoZSBtb2RlbCB3 YXMKPj4gYWJsZSB0byBhYnN0cmFjdCBvdmVyIHRoZSBtYXR0ZXIuCj4gSSBkbyBub3QgdGhpbmsg dGhlcmUgd2FzIGFueSBjb25jbHVzaW9uLgo+Cj4gSnVzdCBieSB3cml0aW5nICJjb25jbHVzaW9u IiBkb2VzIG5vdCBtYWtlIGl0IGNvbmNsdXNpb24uIENvbXB1dGVyCj4gc29mdHdhcmUgbGlrZSBM TE0gaXMgZWFnZXIgdG8gcHJldGVuZCwgaXQgd2FzIHByb2dyYW1tZWQgdG8gd3JpdGUgd2hhdAo+ IHN0YXRpc3RpY2FsbHkgaXMgd3JpdHRlbiBieSBwZW9wbGUgYW5kIHdoYXQgdGhhdCBzb2Z0d2Fy ZSBnb3QgZmVkIGZyb20KPiBkYXRhc2V0cy4KPgo+IEJ1dCBpdCBjYW4ndCBsZWFybi4gSXQgaXMg bWFjaGluZSB0aGF0IGNhbGN1bGF0ZXMuIEl0IGNhbiBhY2NlcHQgZGF0YSwKPiBzdG9yZSwgcHJv Y2VzcyBieSBwcm9ncmFtLCBhbmQgZ2l2ZSByZXN1bHRzLiBCdXQgY2Fubm90IGxlYXJuLgo+Cj4g V2UgY2FuIG9ubHkgYW50aHJvcG9tb3JwaGl6ZSBpdCBhbmQgc2F5ICJpdCBsZWFybmVkIiwgIml0 IGdvdAo+IHRyYWluZWQiLCBhcyB3ZSBkbyBub3QgaGF2ZSBlbm91Z2ggcmlnaHQgd29yZHMuCj4K PiBDYW4gTExNIHNvZnR3YXJlIGRvIGluZmVyZW5jZT8gSSBkb24ndCB0aGluayBzbyEKPgo+IEl0 IGNhbiBjb21wdXRlIGFuZCBnaXZlIHNpbWlsYXJpdHkgdG8gaW5mZXJlbmNlLCB0aG91Z2ggbmV2 ZXIgdHJ1ZQo+IGluZmVyZW5jZS4gRmluYWxseSB3ZSBhcmUgZG9pbmcgdGhlIHNhbWUgd2l0aCBj b21wdXRlcnMgZm9yIG1hbnkKPiB5ZWFycy4KPgo+IEl0IGlzIGp1c3QgYW5vdGhlciBhbnRocm9w b21vcnBoaXplZCB0ZXJtLiBCdXQgd2UgaGF2ZSB0byB1c2UgaXQsIGl0Cj4gaXMgaW4gZGlmZmVy ZW50IGNvbnRleHQuIFRob3VnaCBpdCBpcyBub3QgYSBwZXJzb24gd2hvIGhhcyB0cnVlCj4gY2Fw YWJpbGl0eSB0byAiaW5mZXJlIi4gSXMgbm90IGNhcGFibGUgb2YgaXQuCj4KPiBDb21wdXRlciBj YW5ub3QgbWFrZSBjb25jbHVzaW9ucy4oKyAyIDIpIOKenCA0IC0tIGRvIHlvdSB0aGluayB0aGF0 Cj4gRW1hY3MgaGVyZSBtYWRlIGNvbmNsdXNpb24gdGhhdCAyIHBsdXMgMiBpcyBmb3VyPyBJdCBk aWRuJ3QuCj4KPiBXZSBhcmUgYW50aHJvcG9tb3JwaGl6aW5nIGl0IHRoYXQgY29tcHV0ZXIgbWFk ZSBjb25jbHVzaW9ucy4KPgo+IEluIGZhY3QgaXQgd2FzIGVsZWN0cm9uaWMgc3dpdGNoaW5nIG9m IGJpdHMgYW5kIGJ5dGVzLgo+Cj4gSnVzdCB0YWtlIGFuIGFiYWN1cyBmb3IgZXhhbXBsZSwgYnkg bW92aW5nIHRob3NlIGJhbGxzIG9uIHRoZSB3b29kZW4KPiBhYmFjdXMsIG9wZXJhdG9yIHdpbGwg Z2V0IHJlc3VsdHMsIGJ1dCBkaWQgQWJhY3VzIG1ha2UgY29uY2x1c2lvbnMgb2YKPiB0aGUgcmVz dWx0PyBPciB3YXMgaXQganVzdCBhIHRvb2w/Cj4KPiBCeSBwcm9ncmFtbWluZyB0aGUgQW1wZWxs aWNodCwgd2hlbiBpdCBzaG93cyBpdCBpcyBncmVlbiwgZGlkIHRoZQo+IEFtcGVsbGljaHQgbWFr ZSBjb25jbHVzaW9uIHRoYXQgaXQgc2hvdWxkIHByb3ZpZGUgZ3JlZW4gdG8gcGVvcGxlPyBJdAo+ IGlzIGEgdG9vbCwgaXQgaXMgcHJvZ3JhbW1lZCB0byBkbyB0aGF0LCBwcm9ncmFtbWVyIG1hZGUg Y29uY2x1c2lvbnMKPiB0aGF0IGl0IHNob3VsZCB3b3JrIGluIHNwZWNpZmljIG1hbm5lciwgbm90 IHRoZSBBbXBlbGxpY2h0Lgo+Cj4gQWlyIGNvbmRpdGlvbiAtLSBpdCB0dXJucyBvbiBhbmQgdHVy bnMgb2ZmLCBiYXNlZCBvbiB0ZW1wZXJhdHVyZSBpbgo+IHRoZSByb29tLiBCdXQgZGlkIGl0IG1h a2UgY29uY2x1c2lvbiB0aGF0IGl0IG11c3QgdHVybiBvbj8gVGhhdCBpdAo+IG11c3QgdHVybiBv ZmY/Cj4KPiBPZiBjb3Vyc2Ugd2UgZ2V0IGludG8gdGhlIGRlY2VwdGlvbi4KPgo+IFRob3VnaCBj b25jbHVzaW9uIGRyYXdpbmcgaXMgbm90IHRoZXJlIQo+Cj4gSSBzdHJvbmdseSBzdWdnZXN0IHRv IGV2ZXJ5Ym9keSB0byBpbnN0YWxsOgo+Cj4gZ2dlcmdhbm92L2xsYW1hLmNwcDogTExNIGluZmVy ZW5jZSBpbiBDL0MrKwo+IGh0dHBzOi8vZ2l0aHViLmNvbS9nZ2VyZ2Fub3YvbGxhbWEuY3BwCj4K PiB0aGVuIHRvIGluc3RhbGwgc29tZSBvZiB0aGUgbG93IGVuZCBtb2RlbHMsIGxpa2U6Cj4gUXdR LUxDb1QtM0ItSW5zdHJ1Y3QuUTRfS19NLmdndWYKPgo+IGl0IHdpbGwgd29yayBvbiAxNkdCIFJB TS4KPgo+IFRoZW4gc3RhcnQgaW50ZXJhY3RpbmcuIFlvdSB3aWxsIHNlZSB3aGF0IEkgbWVhbi4K Pgo+IFlvdSB3aWxsIHNlZSB0aGF0IG1vZGVsIHdpbGwgc3RhcnQgdGFsa2luZywgZm9yIGV4YW1w bGUsIGlmIHRoZXJlIHdhcwo+IGNvbnZlcnNhdGlvbiB3aXRoIGNoaWxkIChtb2RlbCBhY3Rpbmcg YXMgY2hpbGQpIChhbnRocm9wb21vcnBoaXppbmcgaXMKPiBkZWNlcHRpdmUsIG1vZGVsIGNhbm5v dCAiYWN0IikgLS0gdGhlbiBpbiB0aGF0IGNvbnZlcnNhdGlvbiB0aGUKPiBwcmV0ZW5kZWQgY2hp bGQgbWF5IHN0YXJ0IHBsYXlpbmcgaW4gdGhlIG11ZCwgdGhvdWdoIGFmdGVyIGEgd2hpbGUsCj4g b25lIGNhbiBzZWUgbXVkLCBtdWQsIG11ZCwgbXVkLCBtdWQsIG11ZCwgbXVkLCBtdWQsIG11ZCwg bXVkLCBtdWQsCj4gbXVkLCBtdWQsIG11ZCwgbXVkLCBtdWQsIG11ZCwgbXVkLCBtdWQsIG11ZCwg bXVkLCBtdWQsIG11ZCwgbXVkLCBtdWQsCj4gbXVkLCBtdWQsIG11ZCwgbXVkLCBtdWQsIG11ZCwg bXVkLCBtdWQsIG11ZCwgbXVkLCBtdWQsIG11ZCwgbXVkLCBtdWQsCj4gbXVkLCBtdWQsIG11ZCwg bXVkLCBtdWQuCj4KPiBJdCBpcyB1bnN0b3BwYWJsZS4KPgo+IFRoYXQgaXMgY2xlYXIgc2lnbiB0 aGF0IHRoZXJlIGlzIG5vIGludGVsbGlnZW5jZSwgYXMgbW9kZWwgZG9lcyBub3QKPiBjYXJlIG9m IHRoZSB0cnV0aC4gSXQgY29tcHV0ZXMgc29tZXRoaW5nLCBpdCBnaXZlcyBzb21ldGhpbmcgb3V0 Lgo+Cj4gV2hhdCBpdCBpcz8gSXQgaXMgY29tcGxldGVseSBpcnJlbGV2YW50IHRvIGVudmlyb25t ZW50IG9yIHNpdHVhdGlvbiBhdAo+IHBsYWNlLgo+Cj4gSXMgdGhlcmUgYW55IGFuaW1hbCB0aGF0 IGRvIGNvbXBsZXRlbHkgaXJyZWxldmFudCBhY3Rpdml0aWVzIHRvIHRoZQo+IHNpdHVhdGlvbiBv ZiBsaWZlIGF0IGhhbmQ/IE1heWJlIGlmIHdlIGRvbid0IHVuZGVyc3RhbmQgaXQsIGJ1dCBqdXN0 Cj4gb2JzZXJ2ZSwgZmlzaCwgZG9nLCBjYXQsIGNvdywgdGhleSBhbGwgZG8sIHdoYXRldmVyIHRo ZXkgZG8sIGZvciB0aGVpcgo+IHN1cnZpdmFsLiBUaGVpciBhY3Rpdml0aWVzIGFyZSBwcmV0dHkg bXVjaCBhbGlnbmVkIHRvIGl0Lgo+Cj4gQ29tcHV0ZXIgZG9lcyBub3QgaGF2ZSBsaWZlLCBzbyBp dCBkb2VzIG5vdGhpbmcuIEl0IGlzIHRvb2wuIFBlb3BsZSBkbwo+IHNvbWV0aGluZyB3aXRoIGNv bXB1dGVyLCBjb21wdXRlciBpdHNlbGYgZG9lcyBub3RoaW5nLiBJdCBoYXMgbm8gaW5uZXIKPiBp bnRlbnRpb24gdG8gc3Vydml2ZS4gVGhhdCBpcyB3aHkgaXQgY2Fubm90IHJlY29nbml6ZSAibXVk LCBtdWQsIG11ZCIKPiBidXQgaXQgY2FuIGdpdmUgcHJldGVuc2Ugb2YgaG93IHBlb3BsZSB0YWxr IGJhc2VkIG9uIGluZm9ybWF0aW9uCj4gbG9hZGVkIGludG8gaXQuCj4KCi0tLQp2aWEgZW1hY3Mt dGFuZ2VudHMgbWFpbGluZyBsaXN0IChodHRwczovL2xpc3RzLmdudS5vcmcvbWFpbG1hbi9saXN0 aW5mby9lbWFjcy10YW5nZW50cykK