From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Eric Abrahamsen Newsgroups: gmane.emacs.bugs Subject: bug#33653: 27.0.50; Change Gnus obarrays-as-hash-tables into real hash tables Date: Sun, 31 Mar 2019 16:27:46 -0700 Message-ID: <871s2m39ql.fsf@ericabrahamsen.net> References: <8736raz3ec.fsf@ericabrahamsen.net> <87y392xoht.fsf@ericabrahamsen.net> <87imxzxa4s.fsf@ericabrahamsen.net> <87a7hn3h3w.fsf@ericabrahamsen.net> <87mulmkeo9.fsf@ericabrahamsen.net> <87pnqik7ld.fsf@ericabrahamsen.net> <87y3536h47.fsf@bzg.fr> <871s2vlu2z.fsf@ericabrahamsen.net> <877ecg8sye.fsf@aia00054aia.gr> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="109588"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) Cc: Bastien , 33653@debbugs.gnu.org To: Deus Max Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Apr 01 01:30:31 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hAjuJ-000SNe-84 for geb-bug-gnu-emacs@m.gmane.org; Mon, 01 Apr 2019 01:30:31 +0200 Original-Received: from localhost ([127.0.0.1]:51438 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hAjuI-0002dG-8W for geb-bug-gnu-emacs@m.gmane.org; Sun, 31 Mar 2019 19:30:30 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:39982) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hAjtu-0002QH-CI for bug-gnu-emacs@gnu.org; Sun, 31 Mar 2019 19:30:07 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hAjtt-00082M-HO for bug-gnu-emacs@gnu.org; Sun, 31 Mar 2019 19:30:06 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:53326) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hAjtt-00082B-Ck for bug-gnu-emacs@gnu.org; Sun, 31 Mar 2019 19:30:05 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hAjtq-00086X-Oi for bug-gnu-emacs@gnu.org; Sun, 31 Mar 2019 19:30:05 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eric Abrahamsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 31 Mar 2019 23:30:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 33653 X-GNU-PR-Package: emacs Original-Received: via spool by 33653-submit@debbugs.gnu.org id=B33653.155407496331074 (code B ref 33653); Sun, 31 Mar 2019 23:30:02 +0000 Original-Received: (at 33653) by debbugs.gnu.org; 31 Mar 2019 23:29:23 +0000 Original-Received: from localhost ([127.0.0.1]:38636 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hAjtC-000858-TY for submit@debbugs.gnu.org; Sun, 31 Mar 2019 19:29:23 -0400 Original-Received: from ericabrahamsen.net ([52.70.2.18]:55786 helo=mail.ericabrahamsen.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hAjt9-00084g-Ev for 33653@debbugs.gnu.org; Sun, 31 Mar 2019 19:29:19 -0400 Original-Received: from localhost (unknown [172.58.41.175]) (Authenticated sender: eric@ericabrahamsen.net) by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 841B6FA180; Sun, 31 Mar 2019 23:29:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ericabrahamsen.net; s=mail; t=1554074954; bh=oGoTzRoWDAGZrEcpW9vTHs0hcaDe1qXZonEmqVapxpE=; h=From:To:Cc:Subject:In-Reply-To:Date:References:From; b=UeBt3ypy7UFciAlfEKWIgvy5J9zBZ2IR0ZzRn6b5692MdKNiEXcztTV+XQ1o6dy3l 10fYXWUtKnMfoj5SAtrCwn4trCOmzB+55Mn+57oicOYMporTginfWcn0h1zr2ooehk W65bZy18HxU5JG7GPgk7QmMcQGWsuk8cnsmZG9Q0= In-Reply-To: <877ecg8sye.fsf@aia00054aia.gr> (Deus Max's message of "Sat, 30 Mar 2019 14:09:13 +0200") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:157000 Archived-At: --=-=-= Content-Type: text/plain On 03/30/19 14:09 PM, Deus Max wrote: > Hi Eric, > > It seems you are implementing some pretty drastic upgrades to Gnus. > > Is there a write-up on the planned changes, benefits, what is going to be > affected and what to expect ? > > I'm interested and would like to read it. There is a writeup! Sort of -- I called it a roadmap. Originally I stuck it in a branch called scratch/gnus-roadmap but soon realized it didn't make any sense to keep track of something like this in a git branch. I've attached the current version. Obviously, this is _not_ meant as a list of "changes I will unilaterally implement in Gnus", but as a document for record-keeping and discussion. I didn't get much discussion, but I know that's to be expected! Eric --=-=-= Content-Type: application/vnd.lotus-organizer Content-Disposition: attachment; filename=roadmap.org Content-Transfer-Encoding: base64 IytUSVRMRTogR251cyBSb2FkbWFwCiMrU1VCVElUTEU6IFBvdGVudGlhbCBmaXh1cHMgYW5kIHJl ZmFjdG9yaW5nIGZvciBHbnVzCiMrREFURTogPDIwMTctMTAtMTcgVHVlPgojK0FVVEhPUjogRXJp YyBBYnJhaGFtc2VuCiMrRU1BSUw6IGVyaWNAZXJpY2FicmFoYW1zZW4ubmV0CiMrTEFOR1VBR0U6 IGVuCgojIFRoZSAidXNlciIgdGFnIGluZGljYXRlcyBhIG5vbi1iYWNrd2FyZHMtY29tcGF0aWJs ZSBjaGFuZ2UgdGhhdCB0aGUKIyB1c2VyIHdvdWxkIGhhdmUgdG8gYmUgbWFkZSBhd2FyZSBvZi4K KiBFYXN5IGZpeGVzIGFuZCB1cGRhdGVzCioqIFRPRE8gT2Jzb2xldGUgfmdudXMtZGVmYXVsdC1u bnRwLXNlcnZlcn4KQWxvbmcgd2l0aCB+Z251cy1ubnRwLXNlcnZlcn4sIGFuZCBqdXN0IHJlbW92 ZSB0aGF0IHdob2xlICJzZWxlY3QgYW4Kbm50cCBzZXJ2ZXIiIG1lY2hhbmlzbSBjb21wbGV0ZWx5 LiB+Z251cy1ubnRwLXNlcnZlcn4gd2FzIG9ic29sZXRlZCBpbgoyNC4xLCBtaWdodCBsZXQgaXQg c2l0IGZvciBhIGJpdCBsb25nZXIuCioqIERPTkUgUmVwbGFjZSB+Z251cy1jb3B5LXNlcXVlbmNl fiB3aXRoIH5jb3B5LXRyZWV+CjpMT0dCT09LOgotIFN0YXRlICJET05FIiAgICAgICBmcm9tICJU T0RPIiAgICAgICBbMjAxNy0wNS0wOSBUdWVdCjpFTkQ6Ckl0IGRvZXMgdGhlIHNhbWUgdGhpbmcu CioqIERPTkUgUmVwbGFjZSB+Z251cy1sYXN0LWVsZW1lbnR+IHdpdGggfihjYXIgKGxhc3QgTElT VCkpfgo6TE9HQk9PSzoKLSBTdGF0ZSAiRE9ORSIgICAgICAgZnJvbSAiVE9ETyIgICAgICAgWzIw MTctMDUtMDkgVHVlXQo6RU5EOgpVc2luZyB+bGFzdH4gaXMgbW9yZSBlZmZpY2llbnQuCioqIFRP RE8gUmVtb3ZlIH5nbnVzLXJlcGxhY2UtaW4tc3RyaW5nfgpMb29rcyBsaWtlIHRoaXMgaXMgb25s eSBoZXJlIGZvciBvdGhlciBFbWFjc2VuLgoqKiBUT0RPIElzIH5nbnVzLWV2YWwtaW4tYnVmZmVy LXdpbmRvd34gcmVkdW5kYW50PwpJcyBpdCB0aGUgc2FtZSBhcyB+c2F2ZS13aW5kb3ctZXhjdXJz aW9ufiBwbHVzIH53aXRoLWN1cnJlbnQtYnVmZmVyfj8KKiogVE9ETyBSZXBsYWNlIH5nbnVzLXN0 cmluZz5+IHdpdGggfnN0cmluZz5+CioqIENBTkNFTExFRCBSZW1vdmUgfmdudXMteS1vci1uLXB+ IGFuZCB+Z251cy15ZXMtb3Itbm8tcH4KOkxPR0JPT0s6Ci0gU3RhdGUgIkNBTkNFTExFRCIgIGZy b20gIlRPRE8iICAgICAgIFsyMDE5LTAzLTMxIFN1biAxNTo0NF0gXFwKICBUaGUgY2FsbCB0byBt ZXNzYWdlIGNsZWFycyB0aGUgbWluaWJ1ZmZlci4KOkVORDoKV2h5IHRoZSBjYWxsIHRvIH5tZXNz YWdlfj8KKiogVE9ETyBVc2UgZG9saXN0IHdoZXJlIHBvc3NpYmxlClRoZXJlJ3MgYSB3aG9sZSBs b3Qgb2YgY29kZSB0aGF0IHVzZXMgfih3aGlsZSAoc2V0cSB0aGluZyAoY2FyCmxpc3QpKS4uLil+ IGFuZCB0aGUgbGlrZSwgYW5kIGl0IG1ha2VzIGFscmVhZHktY29udm9sdXRlZCBmdW5jdGlvbnMK dGhhdCBtdWNoIG1vcmUgZGlmZmljdWx0IHRvIHBhcnNlLiBUaGVyZSBhcmUgY2xlYW5lciBjb252 ZW50aW9ucyB0aGF0CmNvdWxkIGJlIHVzZWQgbm93LgoqKiBUT0RPIFVzZSB+cHJvY2Vzcy1saXZl LXB+Ckluc3RlYWQgb2YgfihtZW1xIChwcm9jZXNzLXN0YXR1cyBwcm9jZXNzKSAnKG9wZW4gcnVu KSl+LiBFeGNlcHQgdGhhdAp0aGUgY3VycmVudCBjb2RlIGNoZWNrcyB+JyhvcGVuIHJ1bil+LCBh bmQgfnByb2Nlc3MtbGl2ZS1wfiBjaGVja3MKficocnVuIG9wZW4gbGlzdGVuIGNvbm5lY3Qgc3Rv cCl+LiBQcm9iYWJseSB3b24ndCBiZWhhdmUgdGhlIHNhbWUuCioqIENBTkNFTExFRCBSZXBsYWNl IH5nbnVzLXN0cmluZzx+IHdpdGggfnN0cmluZzx+CjpMT0dCT09LOgotIFN0YXRlICJDQU5DRUxM RUQiICBmcm9tICJUT0RPIiAgICAgICBbMjAxNy0xMC0wNiBGcmkgMDk6MDJdIFxcCiAgTm9wZSwg bG9va3MgbGlrZSB0aGlzIG9uZSBkb2VzIGJlaGF2ZSBkaWZmZXJlbnRseSwgd2l0aCByZXNwZWN0 IHRvCiAgfmNhc2UtZm9sZC1zZWFyY2h+IGFuZCBvZiBjb3Vyc2UgdGhlIHN5bWJvbHMuCjpFTkQ6 CiogTWVkaXVtLWxldmVsIHJlZmFjdG9yaW5nCioqIFRPRE8gQ29tYmluZSBnbnVzLWV4cGVydC11 c2VyIGFuZCBnbnVzLW5vdmljZS11c2VyICAgICAgICAgICAgICAgICA6dXNlcjoKV2h5IHdvdWxk IHdlIG5lZWQgYm90aD8gVGhlIGRvY3N0cmluZ3MgbWFrZSB0aGVtIHNvdW5kIHNpbWlsYXIuIElm CiJub3ZpY2UiIGdvdmVybnMgdmVyYm9zaXR5IC9hbmQvIGNvbmZpcm1hdGlvbnMsIGFuZCAiZXhw ZXJ0IiBqdXN0CmdvdmVybnMgY29uZmlybWF0aW9ucywgdGhlbiB3ZSBjb3VsZCBtb3ZlIGFsbCB2 ZXJib3NpdHkgYmVoYXZpb3IgdW5kZXIKfmdudXMtdmVyYm9zZX4gYW5kIG9ubHkga2VlcCBvbmUg ImV4cGVydCIgc2V0dGluZyB0aGF0IG9ubHkgZ292ZXJuZWQKY29uZmlybWF0aW9ucy4gSXQgYWxz byBzZWVtcyBsaWtlIH5nbnVzLWludGVyYWN0aXZlLWNhdGNodXB+IHNob3VsZCBiZQpwYXJ0IG9m IHRoZSAiZXhwZXJ0IiBzZXR0aW5nLCB0aG91Z2ggcGVyaGFwcyB+Z251cy1pbnRlcmFjdGl2ZS1l eGl0fgpzaG91bGQgcmVtYWluIGl0cyBvd24gdGhpbmcuCioqIFRPRE8gQ29uc29saWRhdGUgc2Vy dmVyIGxpc3RzClZhcnMgdGhhdCBsaXN0IHRoZSBjdXJyZW50bHktZGVmaW5lZCBzZXJ2ZXJzOgoK MS4gfmdudXMtc2VydmVyLWFsaXN0fjogQ29udGFpbnMgc2VydmVycyBlaXRoZXIgZGVmaW5lZCBi eSBHbnVzLCBvcgogICBhZGRlZCBieSB0aGUgdXNlciB0aHJvdWdoIHRoZSBTZXJ2ZXIgYnVmZmVy IGludGVyZmFjZS4KMi4gfmdudXMtb3BlbmVkLXNlcnZlcnN+OiBIb2xkcyBhbGwgdGhlIHNlcnZl cnMgKGJvdGggb3BlbmVkIGFuZCBpbgogICBvdGhlciBzdGF0dXNlcyksIHRoZWlyIHBhcmFtZXRl cnMsIGFuZCBhIHN0YXR1cyBzeW1ib2wuCjMuIH5ubm9vLXN0YXRlLWFsaXN0fjogSG9sZHMgYWxs IHRoZSBzZXJ2ZXJzLCBzb21lIG90aGVyIHNlcnZlcnMgKD8pLAogICBhbmQgYWxsIHRoZSBncm91 cHMgYW5kIG1hcmtzLgo1LiB+Z251cy1zZXJ2ZXItbWV0aG9kLWNhY2hlfjogQSBzaW1wbGVyIGFs aXN0IG9mIHNlcnZlciBuYW1lcyBhbmQKICAgc2VydmVyIHZhcmlhYmxlcy4KCkhvdyByZWR1bmRh bnQgYXJlIHRoZXNlPwoKVmFycyB0aGF0IGxpc3Qgc2VydmVycyB0aGF0IG1pZ2h0IGJlOgoKMS4g fmdudXMtdmFsaWQtc2VsZWN0LW1ldGhvZHN+OiBGYWlybHkgbGlnaHR3ZWlnaHQgbGlzdCBvZiBk ZWZpbmVkCiAgIHNlcnZlciB0eXBlcyBhbmQgdGhlaXIgY2F0ZWdvcnkga2V5cy4gU2V0IGJ5CiAg IH5nbnVzLWRlY2xhcmUtYmFja2VuZH4uCjIuIH5ubm9vLWRlZmluaXRpb24tYWxpc3R+OiBIZWF2 eXdlaWdodCBsaXN0IG9mIGRlZmluZWQgc2VydmVyIHR5cGVzCiAgIHdpdGggYWxsIHRoZWlyIHBv c3NpYmxlIHNlcnZlciBwYXJhbWV0ZXJzIGFuZCBmdW5jdGlvbnMuCjMuIH5nbnVzLXByZWRlZmlu ZWQtc2VydmVyLWFsaXN0fjogVGhpcyBvbmUgbm90IHNvIG11Y2gsIGl0IGp1c3QKICAgaW5kaWNh dGVzIHdoYXQgd2Ugc2hvdWxkIHN0YXJ0IG91dCB3aXRoLgoqKiBUT0RPIFVzZSBXaXNlbnQgcGFy c2VyIGZvciBzZXJ2ZXIgb3V0cHV0Ck9uY2UgQ0VERVQgaXMgZnVsbHkgbWVyZ2VkIGludG8gRW1h Y3MsIHdyaXRlIGEgcHJvcGVyIHBhcnNlciBmb3IgTk5UUAphbmQgSU1BUCBzZXJ2ZXIgb3V0cHV0 LgoqKiBUT0RPIFVzZSByZWFsIGhhc2h0YWJsZXMKOlBST1BFUlRJRVM6CjpJRDogICAgICAgYTc3 YzNjM2YtZWU5MC00ZmRkLTk5ZDctZmQ0YzYzNmMxNGJiCjpFTkQ6ClRoZXNlIHZhcmlhYmxlcyBh cmUgY3VycmVudGx5IGNhbGxlZCBoYXNodGFibGVzLCBidXQgYWN0dWFsbHkgdXNlCm9iYXJyYXlz LiBBcmUgYW55IG9mIHRoZW0gd29ydGggdHVybmluZyBpbnRvIHJlYWwgaGFzaCB0YWJsZXM/Cgot IGdudXMtZHVwLWhhc2h0YgotIGdudXMtYXN5bmMtaGFzaHRiCi0gZ251cy1raWxsZWQtaGFzaHRi Ci0gZ251cy1hY3RpdmUtaGFzaHRiCi0gZ251cy1uZXdzcmMtaGFzaHRiCi0gZ251cy1iYWNrbG9n LWhhc2h0YgotIGdudXMtbW9kZXJhdGVkLWhhc2h0YgotIGdudXMtYWdlbnQtc3BhbS1oYXNodGIK LSBnbnVzLWRlc2NyaXB0aW9uLWhhc2h0YgotIGdudXMtY2FjaGUtYWN0aXZlLWhhc2h0YgotIGdu dXMtY2FjaGUtdG90YWwtZmV0Y2hlZC1oYXNodGIKLSBnbnVzLWFnZW50LXRvdGFsLWZldGNoZWQt aGFzaHRiCioqIFRPRE8gUmVmYWN0b3IgZ3JvdXAgcmVhZGluZy9zZWxlY3Rpb24KVGhpcyB3b3Vs ZG4ndCBoYXZlIHRvIGJlIGFzIGhhcmQgYXMgaXQgc291bmRzLgoKUmlnaHQgbm93IHdlIGRvIChp biBtYWtlLWJlbGlldmUgY29kZSk6CgojK0JFR0lOX1NSQyBlbWFjcy1saXNwCiAgKGdudXMtZ3Jv dXAtcmVhZC1ncm91cAogICAoZ251cy1zdW1tYXJ5LXJlYWQtZ3JvdXAKICAgIChnbnVzLXN1bW1h cnktcmVhZC1ncm91cC0xCiAgICAgKGdudXMtc2VsZWN0LW5ld3Nncm91cAogICAgICAoZ251cy1y ZXF1ZXN0LWdyb3VwKQogICAgICAoZ251cy1yZXRyaWV2ZS1oZWFkZXJzKSkpKSkKIytFTkRfU1JD CgpBbG1vc3QgYWxsIHRob3NlIGZ1bmN0aW9ucywgYXBhcnQgZnJvbSB0aGUgdHdvIGlubmVybW9z dCBvbmVzLCBhcmUKaW52b2x2ZWQgaW4gbW9zdCBhc3BlY3RzIG9mIHN1bW1hcnkgYnVmZmVyIGNy ZWF0aW9uOiBjaG9vc2luZyBhcnRpY2xlcwp0byByZWFkLCBtYW5pcHVsYXRpbmcgbWFya3MsIGRv aW5nIGVuY29kaW5nLCBoYW5kbGluZyBwZXJpcGhlcmFsIHN0dWZmCmxpa2UgY2FjaGluZywgaGFu ZGxpbmcgZXJyb3JzLCBhbmQgZG9pbmcgdGhlIHZpc3VhbCBzZXR1cCBvZiB0aGUKXHN0YXJ7fVN1 bW1hcnlcc3RhciBidWZmZXIuCgpUcnkgdG8gdW5waWNrIHRoZXNlIGZ1bmN0aW9ucyBhIGJpdDoK Ci0gfmdudXMtZ3JvdXAtcmVhZC1ncm91cH4gOjogQW5kIG90aGVyIHNpbWlsYXIgZnVuY3Rpb25z IHNob3VsZCBiZQogICAgIHRoaW4gaW50ZXJhY3RpdmUgd3JhcHBlcnMgdGhhdCBoYW5kbGUgdXNl ciBwcm9tcHRzLgotIH5nbnVzLXN1bW1hcnktcmVhZC1ncm91cH4gOjogQ2FsbHMgfmdudXMtc2Vs ZWN0LW5ld3Nncm91cH4gdG8gZ2V0CiAgICAgdGhlIGRlc2lyZWQgYXJ0aWNsZSBoZWFkZXJzLCBj b25zdWx0cyB0aGUgZGlzcGxheS0vc2VsZWN0LXJlbGF0ZWQKICAgICBhcmd1bWVudHMsIGFuZCBo YW5kbGVzIGVpdGhlciBzZXR0aW5nIHVwIHRoZSBzdW1tYXJ5IGJ1ZmZlciwgb3IKICAgICBxdWl0 dGluZy4gVGhpcyBmdW5jdGlvbiBkb2Vzbid0IGZvb2wgd2l0aCB0aGUgc2VsZWN0aW9uIG9mCiAg ICAgYXJ0aWNsZXMgYXQgYWxsLgotIH5nbnVzLXNlbGVjdC1uZXdzZ3JvdXB+IDo6IElzIHBhc3Nl ZCBhcmd1bWVudHMgc2F5aW5nIGhvdyBtYW55L3doaWNoCiAgICAgYXJ0aWNsZXMgdG8gZmV0Y2gu IEV4YW1pbmVzIHRoZSBncm91cCBpbmZvLCBjYWxscwogICAgIH5nbnVzLXJlcXVlc3QtZ3JvdXB+ IGFuZCB+Z251cy1yZXRyaWV2ZS1oZWFkZXJzfiwgYW5kIHBhc3NlcyB0aGUKICAgICBoZWFkZXJz IGJhY2sgdXAuIFRoaXMgZnVuY3Rpb24gaGFzIG5vdGhpbmcgdG8gZG8gd2l0aCB0aGUgdmlzdWFs CiAgICAgcHJlc2VudGF0aW9uIG9mIHRoZSBzdW1tYXJ5IGJ1ZmZlci4KClRoYXQgd291bGQgZ2V0 IHVzIGEgc3RlcCBjbG9zZXIgdG8gYmVpbmcgYWJsZSB0byB3cml0ZSB0ZXN0cy4KCkFsc28sIHRo ZSB2YXJpb3VzIGFyZ3VtZW50cyBsaWtlIH5zaG93LWFsbH4sIH5uby1kaXNwbGF5fiwKfm5vLWFy dGljbGV+LCB+c2VsZWN0LWFydGljbGVzfiwgZXRjLCBhcmUgZWl0aGVyIHN0ZXBwaW5nIG9uIGVh Y2gKb3RoZXJzJyB0b2VzLCBvciBzaG91bGQgYmUgZG9jdW1lbnRlZCBhIGxpdHRsZSBiZXR0ZXIg c28gdGhlaXIKcmVsYXRpb25zaGlwIGlzIGNsZWFyZXIuCioqIFRPRE8gVXBkYXRlIHRvIHVzZSB+ ZGVjb2RlLWNvZGluZy1zdHJpbmd+CkdldCByaWQgb2YgdGhlIGxhc3QgdXNlcyBvZiB+c3RyaW5n LSh0b3xmcm9tKS0odW5pfG11bHRpKWJ5dGV+LgpGaW5hbGx5IGNsZWFyIHVwIHRob3NlIGNvbXBp bGVyIHdhcm5pbmdzLgoqKiBUT0RPIENvbnNvbGlkYXRlIGRpcmVjdG9yeSB2YXJpYWJsZXMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgOnVzZXI6CklzIHRoZXJlIHJlYWxseSBhIG5lZWQg Zm9yIHNlcGFyYXRlIHZhcmlhYmxlcyBmb3IgfmdudXMtZGlyZWN0b3J5fiwKfmdudXMtaG9tZS1k aXJlY3Rvcnl+LCBhbmQgfmdudXMtZGVmYXVsdC1kaXJlY3Rvcnl+PwoqKiBUT0RPIENvbnNpZGVy IHVzaW5nIHNpZGUgd2luZG93cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOnVz ZXI6Ckluc3RlYWQgb2YgR251cycgd2luZG93IGNvbmZpZz8KKiBIYXJkIHJlZmFjdG9yaW5nCioq IFRPRE8gV3JpdGUgbWFyay1zZXR0aW5nIG1hY3JvcwpUaGUgZ29hbCB3b3VsZCBiZSB0byBnZXQg YWxsIG9wYXF1ZSB3cml0ZS1vbmx5IGNvZGUgb3V0IG9mIHRoZQoiZ251cy1zdW0iIGFuZCAiZ251 cy1ncm91cCIgZmlsZXMsIGFuZCBtb3ZlZCBpbnRvIChwcm9iYWJseSkKImdudXMtcmFuZ2UiLiBX aGVuIGhhY2tlcnMgYW5kIGJ1Zy1yZXBvcnRlcnMgbG9vayBhdCB0aGVzZSBmaWxlcywgdGhleQpz aG91bGRuJ3QgaGF2ZSB0byBpbnRlcnByZXQgY29kZSBiaXRzIGxpa2UgfihzZXRjZHIgbGlzdCAo Y2RkcgpsaXN0KSl+LiBDcmVhdGUgYSBoYW5kZnVsIG9mIG1hY3JvcyB3aXRoIHNlbnNpYmxlIG5h bWVzIHRvIGhhbmRsZQp0aGUgY29tbW9uIHRyYW5zYWN0aW9ucy4KClN0YXJ0IHdpdGggfmdudXMt cmFuZ2Utc3RhcnR+IGFuZCB+Z251cy1yYW5nZS1lbmR+LCBkZWZpbmVkIHVzaW5nCn5kZWZpbmUt aW5saW5lfiBzbyB0aGF0IHRoZXkgY2FuIGJvdGggYmUgdXNlZCB0byByZXR1cm4gdGhlIHN0YXJ0 IGFuZAplbmQgb2YgYSByYW5nZSwgYnV0IGFsc28gc2V0IHRoZSBzdGFydC9lbmQsIHRydW5jYXRp bmcgdGhlIHJhbmdlCmFwcHJvcHJpYXRlbHkuCioqIFRPRE8gSW4tcGxhY2UgU3VtbWFyeSBidWZm ZXIgdXBkYXRpbmcKOlBST1BFUlRJRVM6CjpJRDogICAgICAgNTdjYjEzOTYtMjI0Ni00ZDk2LTkx MjUtNWU2ZDRkMmRhZGE0CjpFTkQ6ClJpZ2h0IG5vdyBpdCdzIHBvc3NpYmxlIHRvIHVwZGF0ZSBh IFN1bW1hcnkgYnVmZmVyIHdoaWxlIGl0J3Mgb3BlbiwKYnV0IHdoYXQgYWN0dWFsbHkgaGFwcGVu cyBpcyB0aGF0IGl0IGlzIGNsb3NlZCAod2hpY2ggc2VuZHMgYW55CnVwZGF0ZXMgdG8gdGhlIHNl cnZlcikgYW5kIHRoZW4gcmUtb3BlbmVkLiBDb25zaWRlciBtZXJnaW5nIGxvY2FsCmNoYW5nZXMg YW5kIHJlbW90ZSBjaGFuZ2VzIGFuZCBvbmx5IHVwZGF0aW5nIHRoZSBTdW1tYXJ5IGJ1ZmZlciB3 aXRoCnRoZSBkZWx0YS4KCklmIHRoaXMgd2VyZSBzdWZmaWNpZW50bHkgZmFzdCwgaXQgd291bGQg bWVhbiB0aGF0IFtbaWQ6YmE2ZDczZGMtYzVmMS00OGQwLWIzZTMtYWVlYzBlNzMxNTAzXVt0aHJl YWRpbmddXSBpbgpjb21iaW5hdGlvbiB3aXRoIFtbaWQ6Y2MzM2FiODEtOTIxOS00YTk4LWJkNmQt Zjc5YjA4ZGExYTVkXVtwZXJzaXN0ZW50IFN1bW1hcnkgYnVmZmVyc11dIHdvdWxkIGxldCB1cyBs YXVuY2ggYSAiZyIKdXBkYXRlLCBvcGVuIGEgZ3JvdXAgdG8gc3RhcnQgcmVhZGluZywgdGhlbiAo d2l0aCBhIHNob3J0IGhpY2N1cCkgaGF2ZQpzdW1tYXJpZXMgdXBkYXRlZCB3aGlsZSB0aGV5J3Jl IG9wZW4uCioqIFRPRE8gUGVyc2lzdGVudCBTdW1tYXJ5IGJ1ZmZlcnMKOlBST1BFUlRJRVM6CjpJ RDogICAgICAgY2MzM2FiODEtOTIxOS00YTk4LWJkNmQtZjc5YjA4ZGExYTVkCjpFTkQ6Ck9uZSBv ZiB0aGUgbWFpbiByZWFzb25zIHRoYXQgR251cyAvZmVlbHMvIHNsb3cgaXMgdGhhdCBTdW1tYXJ5 IGJ1ZmZlcnMKYXJlIHNsb3cgdG8gZ2VuZXJhdGUuIEFkZGl0aW9uYWxseSwgYXMgR251cyBpcyB1 c2VkIG1vcmUgYW5kIG1vcmUgYXMgYQptYWlsIGNsaWVudCAoYXMgb3Bwb3NlZCB0byBhIG5ld3Ny ZWFkZXIpLCBpdCBzZWVtcyBsaWtlbHkgdGhhdCB1c2VyCmJlaGF2aW9yIHdpbGwgdGVuZCBtb3Jl IHRvd2FyZHMgcmVvcGVuaW5nIHRoZSBzYW1lIGdyb3VwcyBtdWx0aXBsZQp0aW1lcy4gSWYgU3Vt bWFyeSBidWZmZXJzIHdlcmUgc2ltcGx5IGxlZnQgb3BlbiwgaXQgd291bGQgY3JlYXRlIHRoZQpp bXByZXNzaW9uIHRoYXQgR251cyB3YXMgb3BlcmF0aW5nIG11Y2ggZmFzdGVyLiBJZiBbW2lkOjU3 Y2IxMzk2LTIyNDYtNGQ5Ni05MTI1LTVlNmQ0ZDJkYWRhNF1baW4tcGxhY2UgU3VtbWFyeQpidWZm ZXIgdXBkYXRpbmddXSB3b3JrZWQsIHRoZW4gaGl0dGluZyAiZyIgbWlnaHQgYmUgYWJsZSB0byB1 cGRhdGUgYWxsCnRoZSBvcGVuIFN1bW1hcnkgYnVmZmVycyB3aXRob3V0IGNhdXNpbmcgdG9vIG11 Y2ggb2YgYSBkZWxheS4KQ3VzdG9taXphdGlvbiBvcHRpb24gdG8gc2F5IHdoaWNoL2hvdyBtYW55 IGdyb3VwcyBzaG91bGQgaGF2ZQpwZXJzaXN0ZW50IHN1bW1hcmllcy4KKiBBbWJpdGlvdXMgc3R1 ZmYKKiogVE9ETyBVc2UgRUlFSU8gY2xhc3NlcyBmb3IgZ3JvdXBzCldlIGNvdWxkIGdldCB+Z251 cy1kZWZpbmUtZ3JvdXAtcGFyYW1ldGVyfiBhbmQgdGhlIGN1c3RvbWl6YXRpb24gZWRpdAppbnRl cmZhY2UgZm9yIGZyZWUuICBTdWJjbGFzc2luZyBncm91cHMgY291bGQgYWxsb3cgcHJldHR5IGRp ZmZlcmVudApncm91cCBiZWhhdmlvciBmb3IgZGlmZmVyZW50IHNlcnZlcnMuIFdvdWxkIGRvIGF3 YXkgd2l0aCBkaXN0aW5jdGlvbgpiZXR3ZWVuICJncm91cCIgYW5kICJpbmZvIi4KKiogVE9ETyBV c2UgRUlFSU8gY2xhc3NlcyBmb3Igc2VydmVycyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDp1c2VyOgpDb3VsZCBkbyBhd2F5IHdpdGggYWxsIG9mIG5ub28uZWwuIFdvdWxkIGRvIGF3 YXkgd2l0aCB0aGUgInNlbGVjdAptZXRob2QiIHZzICJjb21tYW5kIG1ldGhvZCIgdnMgInNlcnZl ciIgdnMgImJhY2tlbmQiIGRpc3RpbmN0aW9uLCBhbmQKd2UgY291bGQgZHJvcCB2ZXJ5IG11Y2gg Y29kZSB1c2VkIGZvciBib3VuY2luZyBiYWNrIGFuZCBmb3J0aCBiZXR3ZWVuCnNlcnZlcnMgYW5k IG1ldGhvZHMuIFdvdWxkIGFsbG93IHVzIHRvIHVzZSBzbG90cyBhbmQgZ2VuZXJpYyBtZXRob2Rz Cmluc3RlYWQgb2YgfmRlZnZvb34gYW5kIH5kZWZmb29+LgoKQWdlbnQgYW5kIGNhY2hpbmcgY291 bGQgYmUgOmFyb3VuZCBtZXRob2RzLgoKbm5tYWlsIHdvdWxkIGJlY29tZSBhIGJhc2UgY2xhc3Mg aW5oZXJpdGVkIGJ5IG5ubWFpbGRpciwgbm5tbCwgZXRjLgoqKiogUmVzaHVmZmxpbmcgb2YgR251 cycgc3RhdGUgZmlsZXMKVGhpcyB3b3VsZCBhbGxvdyB1cyB0byByZXNodWZmbGUgR251cycgY29u ZmlndXJhdGlvbiBhbmQgZGF0YSBzdG9yYWdlLgpDdXJyZW50bHkgd2UndmUgZ290OgoKLSBnbnVz LmVsIDo6IEhvbGRzIH5nbnVzLXNlbGVjdC1tZXRob2R+IGFuZAogICAgIH5nbnVzLXNlY29uZGFy eS1zZWxlY3QtbWV0aG9kc34sIGFzIHdlbGwgYXMgYWxsIGdudXMtcmVsYXRlZAogICAgIHZhcmlh YmxlL2N1c3RvbWl6YXRpb24gc2V0dGluZ3MuCi0gbmV3c3JjLmVsZCA6OiBIb2xkcyBtYXJrcywg YXMgd2VsbCBhcyBhbGwgc3RhdGUgc2V0IGJ5IHRoZSB1c2VyLAogICAgIHN1Y2ggYXMgdG9waWMg dG9wb2xvZ3ksIGdyb3VwIHNvcnRpbmcsIGdyb3VwIHNldHRpbmdzLCBldGMuCgpUaGlzIGNoYW5n ZSB3b3VsZCBhbGxvdyB0aHJlZSBkaWZmZXJlbnQgZmlsZXM6CgotIGdudXMuZWwgOjogT25seSBo b2xkcyB2YXJpYWJsZS9jdXN0b21pemF0aW9uIHNldHRpbmdzLCBjdXN0b20KICAgICBmdW5jdGlv bnMsIGV0Yy4KLSBnbnVzLXNlcnZlcnMuZWwgOjogSG9sZHMgYWxsIHNlcnZlciBkZWZpbml0aW9u cywgZ3JvdXAgcGFyYW1ldGVyCiAgICAgY3VzdG9taXphdGlvbnMsIGFuZCBhbGwgdXNlci1lZGl0 YWJsZSBzdGF0ZSBzZXQgdGhyb3VnaCBHbnVzJwogICAgIGludGVyZmFjZXMgKHN1Y2ggYXMgdG9w aWMgdG9wb2xvZ3kpLgotIGdudXMtbWFya3MuZWwgOjogVGhpcyB3b3VsZCBjb250YWluIG5vdGhp bmcgYnV0IGdyb3VwLXRvLW1hcmtzCiAgICAgY29ycmVzcG9uZGVuY2VzLiBEaWZmZXJlbnQgc2Vy dmVyIG9yIGdyb3VwIGNsYXNzZXMgY291bGQgc3RvcmUKICAgICB0aGVpciBtYXJrcyBkaWZmZXJl bnRseTogaWUsIG9uIGEgcmVtb3RlIHNlcnZlciwgb3IgaW4gYQogICAgIGRhdGFiYXNlLiBCdXQg YnkgZGVmYXVsdCwgdGhleSdkIGFsbCBiZSBzdHVjayBpbiB0aGlzIGZpbGUuCgpJbXBsaWNhdGlv bnM6CgoxLiBFdmVyeXRoaW5nIGluIGdudXMuZWwgaXMgdGhlb3JldGljYWxseSBlZGl0YWJsZSB2 aWEgdGhlCiAgIGN1c3RvbWl6YXRpb24gaW50ZXJmYWNlLCBwbHVzIGN1c3RvbSBmdW5jdGlvbnMu CjIuIEV2ZXJ5dGhpbmcgaW4gZ251cy1zZXJ2ZXJzLmVsIGlzIG1lYW50IHRvIGJlIGVkaXRlZCB0 aHJvdWdoIEdudXMnCiAgIG93biBpbnRlcmZhY2VzLiBUbyBkZWZpbmUgc2VydmVycywgeW91IGdv IHRvIHRoZSBTZXJ2ZXIgYnVmZmVyIGFuZAogICBydW4gaW5zZXJ0L2RlbGV0ZS9lZGl0IGNvbW1h bmRzIHRoZXJlLiBJdCB3b3VsZCBiZSBwb3NzaWJsZSB0byBlZGl0CiAgIHRoZSBmaWxlIGJ5IGhh bmQsIGJ1dCBpdCdzIC9tZWFudC8gdG8gYmUgZWRpdGVkIHdpdGhpbiBHbnVzLgozLiBnbnVzLW1h cmtzLmVsIHNob3VsZCBvbmx5IGJlIGVkaXRlZCBieSBHbnVzLiBJZiB5b3Ugd2FudCB0bwogICBz aGFyZS9wcm9wYWdhdGUgbWFya3MgYmV0d2VlbiBtYWNoaW5lcywgR251cyB3aWxsIHByb3ZpZGUg c2VwYXJhdGUKICAgbWVjaGFuaXNtcyBmb3IgZG9pbmcgdGhhdC4KNC4gRmlsZXMgb25lIGFuZCB0 d28gY2FuIG5vdyBiZSBzYWZlbHkga2VwdCB3aXRoaW4gdmVyc2lvbiBjb250cm9sLgogICBUaGV5 IHJlcHJlc2VudCBvcHRpb25zIGFuZCBzdGF0ZSB0aGF0IGhhdmUgYmVlbiBleHBsaWNpdGx5IHNl dCBieQogICB0aGUgdXNlciwgYW5kIHdoaWNoIGNhbiByZWFzb25hYmx5IGJlIGV4cGVjdGVkIG5v dCB0byBjaGFuZ2Ugb24gYQogICBkYXktdG8tZGF5IGJhc2lzLgoqKiBUT0RPIFJlbW92ZSB+Z251 cy1zZWNvbmRhcnktc2VsZWN0LW1ldGhvZHN+ICAgICAgICAgICAgICAgICAgICAgICAgOnVzZXI6 Ckluc3RlYWQganVzdCBoYXZlIGEgc2luZ2xlIH5nbnVzLXNlbGVjdC1tZXRob2RzfiBvcHRpb24u IFNvbWUgcGVvcGxlCndpbGwgbG92ZSB0aGlzIGlkZWEsIHNvbWUgd2lsbCBoYXRlIGl0LgoqKiBU T0RPIFJldGhpbmsgfm5udHAtc2VydmVyLWJ1ZmZlcn4gYmVoYXZpb3IgLS0gdGhyZWFkaW5nPwo6 UFJPUEVSVElFUzoKOklEOiAgICAgICBiYTZkNzNkYy1jNWYxLTQ4ZDAtYjNlMy1hZWVjMGU3MzE1 MDMKOkVORDoKfm5uaGVhZGVyLWluaXQtc2VydmVyLWJ1ZmZlcn4gY3JlYXRlcyBhIGJ1ZmZlciBu YW1lZCB+PCAqbm50cGQqPn4sCndoZXJlIGFsbCBzZXJ2ZXJzIHdyaXRlIHRoZWlyIHJlc3BvbnNl cyAtLSBzbyBmYXIgc28gZ29vZC4gVGhlIGJ1ZmZlcgpkb2VzIG5vdCBhY3R1YWxseSBoYXZlIGEg cHJvY2VzcyBhc3NvY2lhdGVkIHdpdGggaXQuIFNlcnZlcnMgd2l0aApsb25nLXJ1bm5pbmcgcHJv Y2Vzc2VzLCBsaWtlIG5udHAgYW5kIGltYXAsIG1haW50YWluIHByb2Nlc3MtYnVmZmVyCmxpc3Rz IGluIHZhcmlhYmxlcyBsaWtlIH5ubnRwLWNvbm5lY3Rpb24tYWxpc3R+IGFuZAp+bm5pbWFwLWNv bm5lY3Rpb24tYWxpc3R+LiBIb3dldmVyLCB0aGVzZSB2YXJpYWJsZXMgb25seSBldmVyIGhvbGQg YQpzaW5nbGUgZWxlbWVudCAoZXZlbiB3aGVuIHRoZXJlIGFyZSBtdWx0aXBsZSBJTUFQIHNlcnZl cnMgY29uZmlndXJlZCwKZm9yIGV4YW1wbGUpLCBhbmQgdGhlIGVsZW1lbnQgaXMgc3dhcHBlZCBv dXQgYXMgZGlmZmVyZW50IHNlcnZlcnMgYXJlCm9wZW5lZC4gVGhlIGVsZW1lbnQgaXMgYSBsaXN0 IG9mIHRoZSB+bm50cC1zZXJ2ZXItYnVmZmVyfiwgYW5kIHRoZQpzZXJ2ZXIncyBwcm9jZXNzIGJ1 ZmZlci4gSG93IGlzIHRoZSBlbGVtZW50IHN3YXBwZWQgb3V0PyBXaHk/IFdoYXQncwp0aGUgcG9p bnQgb2YgZG9pbmcgfihjYWRyIChhc3NvYyBubnRwLXNlcnZlci1idWZmZXIKbm5pbWFwLWNvbm5l Y3Rpb24tYWxpc3QpKX4gdG8gZ2V0IHRoZSBpbWFwIHNlcnZlciBidWZmZXI/IFdoeSBhcmUgYWxs CnRoZSBwcm9jZXNzIGJ1ZmZlcnMgdGhlbiBrZXB0IGluIH5ubmltYXAtcHJvY2Vzcy1idWZmZXJz fj8KCklmIGVhY2ggc2VydmVyIHdyb3RlIHRvIGl0cyBvd24gb3V0cHV0IGJ1ZmZlciAoYW5kIHNl cnZlcnMgd2l0aApsb25nLXJ1bm5pbmcgcHJvY2Vzc2VzIGNvdWxkIGF0dGFjaCB0aGVpciBwcm9j ZXNzIHRvIHRoaXMgYnVmZmVyKSwgd2UKY291bGQgc2VwYXJhdGUgY29uY2VybnMgY29tcGxldGVs eS4gRWFjaCBzZXJ2ZXIgd291bGQgcmVhZCBpdHMgb3V0cHV0CmluZGVwZW5kZW50bHksIGFuZCB3 ZSBjb3VsZCB1c2UgdGhyZWFkaW5nIGZvciBwcm9jZXNzIGNvbmN1cnJlbmN5LAppbnN0ZWFkIG9m IHRoZSBwcmVzZW50IH5yZXRyaWV2ZS1ncm91cC1kYXRhLWVhcmx5fiBzeXN0ZW0uCioqIFRPRE8g SW5jb3Jwb3JhdGUgc29tZXRoaW5nIGxpa2UgImdudXMtcGVycyIgYnkgZGVmYXVsdCAgICAgICAg ICAgICA6dXNlcjoKVGhlIHNlcGFyYXRpb24gb2YgcmVhZGluZyBhbmQgc2VuZGluZyBpcyBjb3Jy ZWN0LCBhbmQgYWRtaXJhYmxlLCBidXQKc29tZXRpbWVzIGluY29udmVuaWVudC4gQXQgdGhlIHZl cnkgbGVhc3QsIGlmIGEgImZyb20iIGFkZHJlc3MgY291bGQKYmUgYXNzb2NpYXRlZCB3aXRoIGEg c2VydmVyLCB0aGF0IHdvdWxkIGdpdmUgdXMgYSBsb3Qgb2YgbGVld2F5LgoqKiBUT0RPIEFsbG93 IGJhY2tlbmRzIHRvIGhhbmRsZSBkcmFmdHMgYW5kIGFyY2hpdmVzICAgICAgICAgICAgICAgICAg OnVzZXI6ClRoZSBpZGVhIGlzIHRoYXQgbWFpbC1saWtlIGJhY2tlbmRzIHNob3VsZCBiZSBnaXZl biBhIHNob3QgdG8gaGFuZGxlCmRyYWZ0IHNhdmluZyBhbmQgbWVzc2FnZSBhcmNoaXZpbmcuIElt YXAgc2VydmVycywgZm9yIGluc3RhbmNlLCBjb3VsZAphZHZlcnRpc2UgdGhlbXNlbHZlcyBoYXMg YmVpbmcgYWJsZSB0byBkbyB0aGlzLiBDcmVhdGUgbmV3IGZ1bmN0aW9ucwp+cmVxdWVzdC1zYXZl LWRyYWZ0fiBhbmQgfnJlcXVlc3QtYXJjaGl2ZS1tZXNzYWdlfiwgYW5kIG9ubHkgaWYgdGhlCnNl cnZlciBpbiBxdWVzdGlvbiBkb2Vzbid0IGhhdmUgdGhvc2UgZnVuY3Rpb25zIChvciB3ZSdyZSB1 bnBsdWdnZWQpCmRvZXMgdGhlIGFnZW50IGhhbmRsZSBpdCBsb2NhbGx5LiBUaGlzIHdvdWxkIGJl IG11Y2ggZWFzaWVyIHRvCmltcGxlbWVudCBpZiB3ZSdyZSB1c2luZyBwcm9wZXIgZ2VuZXJpYyBm dW5jdGlvbnMuCioqIFRPRE8gQXN5bmNocm9ub3VzIG1lc3NhZ2Ugc2VuZGluZyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA6dXNlcjoKQW5vdGhlciBiaWcgZW5jaGlsYWRhLiBJdCB3 b3VsZCByZXF1aXJlIHRoZSBhYmlsaXR5IHRvIHVwZGF0ZSBtYXJrcwphbmQgbWFrZSBzZXJ2ZXIg cmVxdWVzdHMgb3V0IG9mIGJhbmQsIHdoaWNoIHdvdWxkbid0IGJlIHBvc3NpYmxlIHVudGlsCndl IHdlcmUgdXNpbmcgb2JqZWN0cyBhbmQgaGFkIGRvbmUgYXdheSB3aXRoIG5ub28ncyBjb25jZXB0 IG9mIHRoZQoiY3VycmVudCBzZXJ2ZXIiLiBCZXlvbmQgdGhhdCwgaXQgd291bGQgcmVxdWlyZSB2 ZXJ5IGNhcmVmdWwgZXJyb3IKaGFuZGxpbmcsIG9idmlvdXNseS4K --=-=-=--