From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "David De La Harpe Golden" Newsgroups: gmane.emacs.devel Subject: Re: Improving X selection? Date: Fri, 1 Feb 2008 19:15:50 +0000 Message-ID: <8e24944a0802011115h77423fd1p2eae15a1e46bca1a@mail.gmail.com> References: <8e24944a0710161629r1ec1afadj60352dc92c264217@mail.gmail.com> <8e24944a0801281152w733c977akda93089a52701219@mail.gmail.com> <8e24944a0801281659sa5a9115rf4533184413a8b20@mail.gmail.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_32218_18345012.1201893350897" X-Trace: ger.gmane.org 1201893374 13734 80.91.229.12 (1 Feb 2008 19:16:14 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 1 Feb 2008 19:16:14 +0000 (UTC) To: rms@gnu.org, emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Feb 01 20:16:34 2008 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1JL1NG-0001JP-Gt for ged-emacs-devel@m.gmane.org; Fri, 01 Feb 2008 20:16:31 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JL1Mo-00053w-Id for ged-emacs-devel@m.gmane.org; Fri, 01 Feb 2008 14:16:02 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1JL1Mi-00053T-PA for emacs-devel@gnu.org; Fri, 01 Feb 2008 14:15:56 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1JL1Mh-00052h-0i for emacs-devel@gnu.org; Fri, 01 Feb 2008 14:15:55 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JL1Mg-00052c-BS for emacs-devel@gnu.org; Fri, 01 Feb 2008 14:15:54 -0500 Original-Received: from wr-out-0506.google.com ([64.233.184.235]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1JL1Mf-0005n2-Mb for emacs-devel@gnu.org; Fri, 01 Feb 2008 14:15:54 -0500 Original-Received: by wr-out-0506.google.com with SMTP id 58so1203422wri.10 for ; Fri, 01 Feb 2008 11:15:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; bh=msdLbMhdyb8oRa4Hm+0SssqyXx0V5w9EfHSptWLRX4E=; b=WQ3m5LuHntV6VpJW8HcOCEgD7ynHJlEBOr3BkWmlbztU3a6Jy3MSvAFg7rUiTrUnnIUfZGHkA8eb6JZZTkFuWT5IkzrhC5NeErlXjl33bOB4Ek1SNzW285zRqB06uQWcUWTx1EhT4BEzFDH6zXDL2WIrNbtMjes+V+On8Ae+kwE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; b=eGw1Khe9uWolq649fy5MzgJaeF7fNUmCMb+7gUlN011Y6UdmABlKybX+qu7MK69ejewD5Hz9p/BiItNlq5G9Ou+pn1DDPGb1PYtMQsrr0EMsQQJ3PKIDTVd7dNLuljGq+maoWi1g8cd30NX46HWd1PAaAneRxOuvNE6dRm6S62A= Original-Received: by 10.142.140.14 with SMTP id n14mr2434137wfd.192.1201893350907; Fri, 01 Feb 2008 11:15:50 -0800 (PST) Original-Received: by 10.142.111.4 with HTTP; Fri, 1 Feb 2008 11:15:50 -0800 (PST) In-Reply-To: <8e24944a0801281659sa5a9115rf4533184413a8b20@mail.gmail.com> X-detected-kernel: by monty-python.gnu.org: Linux 2.4-2.6 (Google crawlbot) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:87951 Archived-At: ------=_Part_32218_18345012.1201893350897 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Attached patch introduces an interprogram-highlight-function and extends values of x-select-enable-clipboard / x-select-enable-primary in an (I think) useful manner*. The descriptions of the customizations may be overly verbose. Another mail to follow about making select-active-regions work. [This is all still separate to but not incompatible with the idea of having interprogram-paste-function be capable of returning more than one value.] * Note that since switching to trunk following unicode2 merge, w32-vars.el is now being loaded on my linux system, not clear on why (multi-tty?) - and it also contained an alternate x-select-enable-clipboard definition , which strikes me as even stranger, but I don't know about w32 (don't even have microsoft windows) - the patch just comments it out, not clear on what the right thing to do is, or why w32 is having anything to do with x x-select-* in the first place (surely it has its own w32-select-* for its interprogram-cut/paste functions?) ------=_Part_32218_18345012.1201893350897 Content-Type: text/x-diff; name=enhanced-x-selections.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_fc546n7z Content-Disposition: attachment; filename=enhanced-x-selections.diff SW5kZXg6IGxpc3Avc2ltcGxlLmVsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9zb3VyY2VzL2VtYWNz L2VtYWNzL2xpc3Avc2ltcGxlLmVsLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjg5OQpkaWZmIC1V IDggLXIxLjg5OSBzaW1wbGUuZWwKLS0tIGxpc3Avc2ltcGxlLmVsCTEgRmViIDIwMDggMTY6MDE6 MDUgLTAwMDAJMS44OTkKKysrIGxpc3Avc2ltcGxlLmVsCTEgRmViIDIwMDggMTk6MDk6MjAgLTAw MDAKQEAgLTI1NjIsMTYgKzI1NjIsMzQgQEAKIHByb2dyYW1zLgogCiBUaGUgZnVuY3Rpb24gdGFr ZXMgb25lIG9yIHR3byBhcmd1bWVudHMuCiBUaGUgZmlyc3QgYXJndW1lbnQsIFRFWFQsIGlzIGEg c3RyaW5nIGNvbnRhaW5pbmcKIHRoZSB0ZXh0IHdoaWNoIHNob3VsZCBiZSBtYWRlIGF2YWlsYWJs ZS4KIFRoZSBzZWNvbmQsIG9wdGlvbmFsLCBhcmd1bWVudCBQVVNILCBoYXMgdGhlIHNhbWUgbWVh bmluZyBhcyB0aGUKIHNpbWlsYXIgYXJndW1lbnQgdG8gYHgtc2V0LWN1dC1idWZmZXInLCB3aGlj aCBzZWUuIikKIAorKGRlZnZhciBpbnRlcnByb2dyYW0taGlnaGxpZ2h0LWZ1bmN0aW9uIG5pbAor ICAiRnVuY3Rpb24gdG8gY2FsbCB0byBtYWtlIGFuIGFjdGl2ZSByZWdpb24gYXZhaWxhYmxlIHRv IG90aGVyIHByb2dhbXMuCisKK0luIGFkZGl0aW9uIHRvIGNsaWJwb2FyZCBjdXR0aW5nIGFuZCBw YXN0aW5nIChzZWUgYGludGVycHJvZ3JhbS1jdXQtZnVuY3Rpb24nCithbmQgYGludGVycHJvZ3Jh bS1wYXN0ZS1mdW5jdGlvbicpLCBzb21lIHdpbmRvdyBzeXN0ZW1zIChva2F5LCBvbmUKK3dpbmRv dyBzeXN0ZW0sIFgxMSkgcHJvdmlkZSBhIG1lY2hhbmlzbSB3aGVyZWJ5IHRleHQgbWVyZWx5IGhp Z2hsaWdodGVkCitpbiBvbmUgYXBwbGljYXRpb24gbWF5IGJlIGltbWVkaWF0ZWx5IGluc2VydGVk IGludG8gYW5vdGhlci4gCitUaGlzIHZhcmlhYmxlIGhvbGRzIGEgZnVuY3Rpb24gdGhhdCBFbWFj cyBjYWxscyB3aGVuZXZlcgordGV4dCBpcyBub3Rpb25hbGx5IGhpZ2hsaWdodGVkIGluIGVtYWNz IC0gaS5lLiB0aGVyZSBpcyBhbiBhY3RpdmUKK3JlZ2lvbiAoc2VlIGB0cmFuc2llbnQtbWFyay1t b2RlJykuICBUaGUgZnVuY3Rpb24gd2lsbCBvbmx5IGJlIAorY2FsbGVkIHdoZW4gYHNlbGVjdC1h Y3RpdmUtcmVnaW9ucycgaXMgYWxzbyBzZXQuCisKK1RoZSBmdW5jdGlvbiB0YWtlcyBvbmUgb3Ig dHdvIGFyZ3VtZW50cywKK1RoZSBmaXJzdCBhcmd1bWVudCwgVEVYVCwgaXMgYSBzdHJpbmcgY29u dGFpbmluZwordGhlIHRleHQgdGhhdCBzaG91bGQgYmUgbWFkZSBhdmFpbGFibGUuIAorVGhlIHNl Y29uZCwgb3B0aW9uYWwsIGFyZ3VtZW50IFBVU0gsIGhhcyB0aGUgc2FtZSBtZWFuaW5nIGFzIHRo ZQorc2ltaWxhciBhcmd1bWVudCB0byBgeC1zZXQtY3V0LWJ1ZmZlcicsIHdoaWNoIHNlZS4iKQor CiAoZGVmdmFyIGludGVycHJvZ3JhbS1wYXN0ZS1mdW5jdGlvbiBuaWwKICAgIkZ1bmN0aW9uIHRv IGNhbGwgdG8gZ2V0IHRleHQgY3V0IGZyb20gb3RoZXIgcHJvZ3JhbXMuCiAKIE1vc3Qgd2luZG93 IHN5c3RlbXMgcHJvdmlkZSBzb21lIHNvcnQgb2YgZmFjaWxpdHkgZm9yIGN1dHRpbmcgYW5kCiBw YXN0aW5nIHRleHQgYmV0d2VlbiB0aGUgd2luZG93cyBvZiBkaWZmZXJlbnQgcHJvZ3JhbXMuCiBU aGlzIHZhcmlhYmxlIGhvbGRzIGEgZnVuY3Rpb24gdGhhdCBFbWFjcyBjYWxscyB0byBvYnRhaW4K IHRleHQgdGhhdCBvdGhlciBwcm9ncmFtcyBoYXZlIHByb3ZpZGVkIGZvciBwYXN0aW5nLgogCkBA IC0zMzQ2LDE4ICszMzY0LDE5IEBACiAKICAgIChsZXQgKChiZWcgKHBvaW50KSkpIChmb3J3YXJk LWxpbmUgMSkgKGRlbGV0ZS1yZWdpb24gYmVnIChwb2ludCkpKS4iCiAKICAgKGlmIHBvcwogICAg ICAgKHByb2duCiAJKHNldHEgbWFyay1hY3RpdmUgdCkKIAkocnVuLWhvb2tzICdhY3RpdmF0ZS1t YXJrLWhvb2spCiAJKGFuZCBzZWxlY3QtYWN0aXZlLXJlZ2lvbnMKLQkgICAgICh4LXNldC1zZWxl Y3Rpb24KLQkgICAgICBuaWwgKGJ1ZmZlci1zdWJzdHJpbmcgKHJlZ2lvbi1iZWdpbm5pbmcpIChy ZWdpb24tZW5kKSkpKQorCSAgICAgaW50ZXJwcm9ncmFtLWhpZ2hsaWdodC1mdW5jdGlvbgorCSAg ICAgKGZ1bmNhbGwgaW50ZXJwcm9ncmFtLWhpZ2hsaWdodC1mdW5jdGlvbgorCQkgICAgICAoYnVm ZmVyLXN1YnN0cmluZyAocmVnaW9uLWJlZ2lubmluZykgKHJlZ2lvbi1lbmQpKSkpCiAJKHNldC1t YXJrZXIgKG1hcmstbWFya2VyKSBwb3MgKGN1cnJlbnQtYnVmZmVyKSkpCiAgICAgOzsgTm9ybWFs bHkgd2UgbmV2ZXIgY2xlYXIgbWFyay1hY3RpdmUgZXhjZXB0IGluIFRyYW5zaWVudCBNYXJrIG1v ZGUuCiAgICAgOzsgQnV0IHdoZW4gd2UgYWN0dWFsbHkgY2xlYXIgb3V0IHRoZSBtYXJrIHZhbHVl IHRvbywKICAgICA7OyB3ZSBtdXN0IGNsZWFyIG1hcmstYWN0aXZlIGluIGFueSBtb2RlLgogICAg IChzZXRxIG1hcmstYWN0aXZlIG5pbCkKICAgICAocnVuLWhvb2tzICdkZWFjdGl2YXRlLW1hcmst aG9vaykKICAgICAoc2V0LW1hcmtlciAobWFyay1tYXJrZXIpIG5pbCkpKQogCkluZGV4OiBsaXNw L3czMi12YXJzLmVsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9zb3VyY2VzL2VtYWNzL2VtYWNzL2xp c3AvdzMyLXZhcnMuZWwsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTkKZGlmZiAtVSA4IC1yMS4x OSB3MzItdmFycy5lbAotLS0gbGlzcC93MzItdmFycy5lbAk4IEphbiAyMDA4IDIwOjQ0OjQ4IC0w MDAwCTEuMTkKKysrIGxpc3AvdzMyLXZhcnMuZWwJMSBGZWIgMjAwOCAxOTowOToyMSAtMDAwMApA QCAtMTQ0LDE4ICsxNDQsMjEgQEAKIAkgICAgICAocmVwZWF0IDppbmxpbmUgdAogCSAgICAgICAo Y2hvaWNlIDp0YWcgIiIKIAkJKGNvbnN0IDp0YWcgIlNlcGFyYXRvciIgKCIiKSkKIAkJKGxpc3Qg OnRhZyAiRm9udCBFbnRyeSIKIAkJICAgICAgKHN0cmluZyA6dGFnICJNZW51IHRleHQiKQogCQkg ICAgICAoc3RyaW5nIDp0YWcgIkZvbnQiKSkpKSkpKQogICAgIDpncm91cCAndzMyKQogCi0oZGVm Y3VzdG9tIHgtc2VsZWN0LWVuYWJsZS1jbGlwYm9hcmQgdAotICAiKk5vbi1uaWwgbWVhbnMgY3V0 dGluZyBhbmQgcGFzdGluZyB1c2VzIHRoZSBjbGlwYm9hcmQuCi1UaGlzIGlzIGluIGFkZGl0aW9u IHRvIHRoZSBwcmltYXJ5IHNlbGVjdGlvbi4iCi0gIDp0eXBlICdib29sZWFuCi0gIDpncm91cCAn a2lsbGluZykKKzs7IFVoLiAgRG9lcyB0aGlzIGJlbG9uZyBoZXJlPyBJdCdzIGFsc28gaW4gCis7 OyB0ZXJtL3gtd2luLmVsIGFuZCBub3cgaGFzIGFuIGV4dGVuZGVkIGRlZmluaXRpb24gdGhlcmUK Kzs7Cis7OyAoZGVmY3VzdG9tIHgtc2VsZWN0LWVuYWJsZS1jbGlwYm9hcmQgdAorOzsgICAiKk5v bi1uaWwgbWVhbnMgY3V0dGluZyBhbmQgcGFzdGluZyB1c2VzIHRoZSBjbGlwYm9hcmQuCis7OyBU aGlzIGlzIGluIGFkZGl0aW9uIHRvIHRoZSBwcmltYXJ5IHNlbGVjdGlvbi4iCis7OyAgIDp0eXBl ICdib29sZWFuCis7OyAgOmdyb3VwICdraWxsaW5nKQogCiAocHJvdmlkZSAndzMyLXZhcnMpCiAK IDs7OyBhcmNoLXRhZzogZWUyMzk0ZmItOWRiNy00YzE1LWE4ZjAtNjZiNDdmNGEyYmIxCiA7Ozsg dzMyLXZhcnMuZWwgZW5kcyBoZXJlCkluZGV4OiBsaXNwL3Rlcm0veC13aW4uZWwKPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQpSQ1MgZmlsZTogL3NvdXJjZXMvZW1hY3MvZW1hY3MvbGlzcC90ZXJtL3gtd2luLmVsLHYKcmV0 cmlldmluZyByZXZpc2lvbiAxLjIyMgpkaWZmIC1VIDggLXIxLjIyMiB4LXdpbi5lbAotLS0gbGlz cC90ZXJtL3gtd2luLmVsCTEgRmViIDIwMDggMTY6MDE6MjUgLTAwMDAJMS4yMjIKKysrIGxpc3Av dGVybS94LXdpbi5lbAkxIEZlYiAyMDA4IDE5OjA5OjI0IC0wMDAwCkBAIC0yMTQwLDU1ICsyMTQw LDE3OSBAQAogVGhpcyBpcyB0aGUgYWN0dWFsIHRleHQgc3RvcmVkIGluIHRoZSBYIGN1dCBidWZm ZXIuIikKIChkZWZ2YXIgeC1sYXN0LWN1dC1idWZmZXItY29kaW5nICdpc28tbGF0aW4tMQogICAi VGhlIGNvZGluZyB3ZSBsYXN0IHVzZWQgdG8gZW5jb2RlL2RlY29kZSB0aGUgdGV4dCBmcm9tIHRo ZSBYIGN1dCBidWZmZXIiKQogCiAoZGVmdmFyIHgtY3V0LWJ1ZmZlci1tYXggMjAwMDAgOyBOb3Rl IHRoaXMgdmFsdWUgaXMgb3ZlcnJpZGRlbiBiZWxvdy4KICAgIk1heCBudW1iZXIgb2YgY2hhcmFj dGVycyB0byBwdXQgaW4gdGhlIGN1dCBidWZmZXIuCiBJdCBpcyBzYWlkIHRoYXQgb3Zlcmxhcmdl IHN0cmluZ3MgYXJlIHNsb3cgdG8gcHV0IGludG8gdGhlIGN1dCBidWZmZXIuIikKIAotKGRlZmN1 c3RvbSB4LXNlbGVjdC1lbmFibGUtY2xpcGJvYXJkIG5pbAotICAiTm9uLW5pbCBtZWFucyBjdXR0 aW5nIGFuZCBwYXN0aW5nIHVzZXMgdGhlIGNsaXBib2FyZC4KLVRoaXMgaXMgaW4gYWRkaXRpb24g dG8sIGJ1dCBpbiBwcmVmZXJlbmNlIHRvLCB0aGUgcHJpbWFyeSBzZWxlY3Rpb24uIgotICA6dHlw ZSAnYm9vbGVhbgotICA6Z3JvdXAgJ2tpbGxpbmcpCi0KLShkZWZjdXN0b20geC1zZWxlY3QtZW5h YmxlLXByaW1hcnkgdAotICAiTm9uLW5pbCBtZWFucyBjdXR0aW5nIGFuZCBwYXN0aW5nIHVzZXMg dGhlIHByaW1hcnkgc2VsZWN0aW9uLiIKLSAgOnR5cGUgJ2Jvb2xlYW4KLSAgOmdyb3VwICdraWxs aW5nKQorKGRlZmN1c3RvbSB4LXNlbGVjdC1lbmFibGUtY2xpcGJvYXJkICcoOmN1dCA6cGFzdGUp CisiV2hhdCBjdXQvY29weS9wYXN0ZS9oaWdobGlnaHQgb3BzIHNob3VsZCBpbnZvbHZlIENMSVBC T0FSRC4KKworSW4gWDExLCBDTElQQk9BUkQgaXMgbm9ybWFsbHkgYXNzb2NpYXRlZCB3aXRoICdj bGlwYm9hcmQgY3V0L2NvcHkvcGFzdGUnCitzdHlsZSBkYXRhIGludGVyY2hhbmdlLgorCitDdXQv Q29weTogU2V0IGlmIEtpbGxpbmcgKGUuZy4gQy13L00tdykgaW4gRW1hY3Mgc2hvdWxkIHBsYWNl IHRleHQgaW4gdGhlIAorQ0xJUEJPQVJEIFgxMSBzZWxlY3Rpb24sIGkuZS4gaWYgeW91IHdhbnQg dG8gcGFzdGUga2lsbGVkIHRleHQgaW50byBvdGhlcgorcHJvZ3JhbXMgb24geW91ciBkZXNrdG9w IHdpdGggdGhlIG90aGVyIHByb2dyYW1zJyBjbGlwYm9hcmQgcGFzdGUgCitmdW5jdGlvbiAodHlw aWNhbGx5IHNvbWV0aGluZyBsaWtlIEMtdiBpbiB0aG9zZSBwcm9ncmFtcykKKworUGFzdGU6IFNl dCBpZiBZYW5raW5nIChlLmcuIEMteSkgaW4gRW1hY3Mgc2hvdWxkIGNoZWNrIHRoZSBjbGlwYm9h cmQgCitmb3IgdGV4dCBwbGFjZWQgdGhlcmUgd2l0aCBvdGhlciBwcm9ncmFtcycgY2xpcGJvYXJk IGN1dCBvciBjb3B5IAorZnVuY3Rpb25zICh0eXBpY2FsbHkgc29tZXRoaW5nIGxpa2UgQy14IG9y IEMtYyBpbiB0aG9zZSBwcm9ncmFtcykKKworSGlnaGxpZ2h0OiAgU2V0IGlmIG1lcmVseSBoaWdo bGlnaHRpbmcgdGV4dCAoc2V0dGluZyB0aGUgYWN0aXZlIHJlZ2lvbikgCitpbiBFbWFjcyBzaG91 bGQgaW1tZWRpYXRlbHkgcHV0IGl0IGluIHRoZSBjbGlwYm9hcmQsIGlmIAorYHNlbGVjdC1hY3Rp dmUtcmVnaW9ucycgaXMgYWxzbyBzZXQuICBUaGlzIGlzIHVudXN1YWwgZm9yIHJlY2VudCBYMTEg CithcHBsaWNhdGlvbnMsIHR5cGljYWxseSBoaWdobGlnaHRlZCB0ZXh0IGlzIHBsYWNlZCBpbiB0 aGUgUFJJTUFSWSBYMTEgCitzZWxlY3Rpb24sIGZvciAnaGlnaGxpZ2h0L21pZGRsZWJ1dHRvbicg c3R5bGUgWDExIHRyYW5zZmVyLiAKK1NlZSBgeC1zZWxlY3QtZW5hYmxlLXByaW1hcnknLgorCitJ dCBpcyByZWNvbW1lbmRlZCB0byB1bnNldCBgbW91c2UtZHJhZy1jb3B5LXJlZ2lvbicgYW5kCitz ZXQgYHRyYW5zaWVudC1tYXJrLW1vZGUnIGlmIEhpZ2hsaWdodCBpcyBzZXQgaGVyZS4iCisKKzp0 eXBlICcoY2hvaWNlIChjb25zdCA6dGFnICJOb25lIiBuaWwpCisJICAgICAgIChjb25zdCA6dGFn ICJBbGwiIHQpCisJICAgICAgIChzZXQgOnRhZyAiQ2hvb3NlIiAoY29uc3QgOnRhZyAiQ3V0L0Nv cHkiIDpjdXQpCisJCSAgICAoY29uc3QgOnRhZyAiUGFzdGUiIDpwYXN0ZSkKKwkJICAgIChjb25z dCA6dGFnICJIaWdobGlnaHQiIDpoaWdobGlnaHQpKSkKKzpncm91cCAna2lsbGluZykKKworKGRl ZmN1c3RvbSB4LXNlbGVjdC1lbmFibGUtcHJpbWFyeSAnKDpoaWdobGlnaHQpCisiV2hhdCBjdXQv Y29weS9wYXN0ZS9oaWdobGlnaHQgb3BzIHNob3VsZCBpbnZvbHZlIFBSSU1BUlkuCisKK0luIFgx MSwgUFJJTUFSWSBpcyBhc3NvY2lhdGVkIHdpdGggJ2hpZ2hsaWdodC9taWRkbGVidXR0b24taW5z ZXJ0JyBzdHlsZQorZGF0YSBpbnRlcmNoYW5nZS4KKworQ3V0L0NvcHk6IFNldCBpZiBLaWxsaW5n IChlLmcuIEMtdy9NLXcpIGluIGVtYWNzIHNob3VsZCBwbGFjZSB0ZXh0IGluIHRoZQorUFJJTUFS WSBYMTEgc2VsZWN0aW9uLiBpLmUuIGlmIHlvdSB3YW50IHRvIHBhc3RlIGtpbGxlZCB0ZXh0IGlu dG8gb3RoZXIgCitwcm9ncmFtcyBvbiB5b3VyIGRlc2t0b3Agd2l0aCB0aGUgb3RoZXIgcHJvZ3Jh bXMnIHByaW1hcnkgaW5zZXJ0aW9uIAorZnVuY3Rpb24gKHR5cGljYWxseSBhIG1pZGRsZS1idXR0 b24tY2xpY2spLiAgVGhpcyBpcyBub3QgdXN1YWwgZm9yIFgxMSAKK2FwcGxpY2F0aW9ucywgdHlw aWNhbGx5IEN1dC9Db3BpZWQgdGV4dCBpcyBwbGFjZWQgaW4gdGhlIENMSVBCT0FSRCBYMTEgCitz ZWxlY3Rpb24sIGZvciBjbGlwYm9hcmQtc3R5bGUgWDExIHRyYW5zZmVyLiAKK1NlZSBgeC1zZWxl Y3QtZW5hYmxlLWNsaXBib2FyZCcKKworUGFzdGU6IFNldCBpZiBZYW5raW5nIChlLmcuIEMteSkg aW4gZW1hY3Mgc2hvdWxkIGNoZWNrIHRoZSBwcmltYXJ5IHNlbGVjdGlvbgorZm9yIHRleHQgcGxh Y2VkIHRoZXJlIHdpdGggb3RoZXIgcHJvZ3JhbXMnIHByaW1hcnkgc2VsZWN0aW9uIAorZnVuY3Rp b25zICh0eXBpY2FsbHkgaGlnaGxpZ2h0aW5nIHRoZSB0ZXh0IGluIG90aGVyIFgxMSBwcm9ncmFt cyBtYWtlcyBpdCAKK2F2YWlsYWJsZSBhcyB0aGUgcHJpbWFyeSBzZWxlY3Rpb24pLiAgSXQgaXMg bm90IHVzdWFsIGluIFgxMSB0byBkbyBzbywgaG93ZXZlciAKK2l0ICBtYXkgYmUgY29udmVuaWVu dCB0byBkbyBzbyBpbiBlbWFjcywgYXMgaXQgcmVkdWNlcyBtb3VzaW5nLCBhbGxvd2luZyBlYXN5 IAora2V5Ym9hcmQgaW5zZXJ0aW9uIG9mIHRoZSBwcmltYXJ5IHNlbGVjdGlvbi4gIE5vdGUgdGhh dCBpZiBib3RoIAorYHgtc2VsZWN0LWVuYWJsZS1jbGlwYm9hcmQnIGFuZCB0aGlzIGhhdmUgUGFz dGUgc2V0LCAgdGhlIGNsaXBib2FyZCAKK2N1cnJlbnRseSB0YWtlcyBwcmVjZW5kZW5jZSB3aGVu IHlhbmtpbmcuCisKK0hpZ2hsaWdodDogIFNldCBpZiBtZXJlbHkgaGlnaGxpZ2h0aW5nIHRleHQg KGFuIGFjdGl2ZSByZWdpb24pIGluIGVtYWNzIHNob3VsZCAKK2ltbWVkaWF0ZWx5IHB1dCBpdCBp biB0aGUgcHJpbWFyeSBzZWxlY3Rpb24sIGlmIGBzZWxlY3QtYWN0aXZlLXJlZ2lvbnMnIGlzCitz ZXQuIFRoaXMgaXMgdXN1YWwgZm9yIHJlY2VudCBYMTEgcHJvZ3JhbXMsIGFuZCBhbGxvd3MgeW91 IHRvIGluc2VydCB0aGUgdGV4dCAKK2ludG8gdGhlIG90aGVyIHByb2dyYW0gd2l0aCB0aGVpciBw cmltYXJ5IGluc2VydGlvbiBmdW5jdGlvbiAodHlwaWNhbGx5CittaWRkbGUtYnV0dG9uLWNsaWNr KS4KKworSXQgaXMgcmVjb21tZW5kZWQgdG8gdW5zZXQgYG1vdXNlLWRyYWctY29weS1yZWdpb24n IGFuZAorc2V0IGB0cmFuc2llbnQtbWFyay1tb2RlJyBpZiBIaWdobGlnaHQgaXMgc2V0IGhlcmUu IgorCis6dHlwZSAnKGNob2ljZSAoY29uc3QgOnRhZyAiTm9uZSIgbmlsKQorCSAgICAgICAoY29u c3QgOnRhZyAiQWxsIiB0KQorCSAgICAgICAoc2V0IDp0YWcgIkNob29zZSIgKGNvbnN0IDp0YWcg IkN1dC9Db3B5IiA6Y3V0KQorCQkgICAgKGNvbnN0IDp0YWcgIlBhc3RlIiA6cGFzdGUpCisJCSAg ICAoY29uc3QgOnRhZyAiSGlnaGxpZ2h0IiA6aGlnaGxpZ2h0KSkpCis6Z3JvdXAgJ2tpbGxpbmcp CisKKworKGRlZmN1c3RvbSB4LXNlbGVjdC1lbmFibGUtY3V0YnVmZmVyIG5pbAorICAiV2hhdCBj dXQvY29weS9wYXN0ZS9oaWdobGlnaHQgb3BzIHNob2xkIGludm9sdmUgbGVnYWN5IEN1dCBCdWZm ZXIgMC4gICAKKworSW4gWCwgY3V0IGJ1ZmZlcnMgaGF2ZSBsb25nIGJlZW4gc3VwZXJzZWRlZCBi eSBjbGlwYm9hcmQgYW5kIHByaW1hcnkKK3NlbGVjdGlvbnMuICBIb3dldmVyLCBzb21lIG9sZCBY IHByb2dyYW1zIHVzZSB0aGVtLiAgSWYgeW91CituZWVkIHRvIGV4Y2hhbmdlIGRhdGEgYmV0d2Vl biBlbWFjcyBhbmQgc3VjaCBwcm9ncmFtcyB2aWEKK1ggY3V0IGJ1ZmZlcnMsIHlvdSBtYXkgd2Fu dCB0byBzZXQgdGhpcyB0byBhIG5vbi1uaWwgdmFsdWUuCisKK0N1dC9Db3B5OiAgU2V0IGlmIEtp bGxpbmcgKGUuZy4gQy13L00tdykgaW4gZW1hY3Mgc2hvdWxkCitwbGFjZSB0ZXh0IGludG8gWCBD dXQgQnVmZmVyIDAKKworUGFzdGU6IFNldCBpZiBZYW5raW5nIChlLmcuIEMteSkgaW4gRW1hY3Mg c2hvdWxkIGNoZWNrCitYIEN1dCBCdWZmZXIgMCBmb3IgdGV4dC4KKworSGlnaGxpZ2h0OiBTZXQg aWYgbWVyZWx5IGhpZ2hsaWdodGluZyB0ZXh0IChhbiBhY3RpdmUgcmVnaW9uKSAKK2luIGVtYWNz IHNob3VsZCBpbW1lZGlhdGVseSBwdXQgaXQgaW4gWCBDdXQgQnVmZmVyIDAsIGlmIAorYHNlbGVj dC1hY3RpdmUtcmVnaW9ucycgaXMgYWxzbyBzZXQuCisKK0l0IGlzIHJlY29tbWVuZGVkIHRvIHVu c2V0IGBtb3VzZS1kcmFnLWNvcHktcmVnaW9uJyBhbmQKK3NldCBgdHJhbnNpZW50LW1hcmstbW9k ZScgaWYgSGlnaGxpZ2h0IGlzIHNldCBoZXJlLiIKKworOnR5cGUgJyhjaG9pY2UgKGNvbnN0IDp0 YWcgIk5vbmUiIG5pbCkKKwkgICAgICAgKGNvbnN0IDp0YWcgIkFsbCIgdCkKKwkgICAgICAgKHNl dCA6dGFnICJDaG9vc2UiIChjb25zdCA6dGFnICJDdXQvQ29weSIgOmN1dCkKKwkJICAgIChjb25z dCA6dGFnICJQYXN0ZSIgOnBhc3RlKQorCQkgICAgKGNvbnN0IDp0YWcgIkhpZ2hsaWdodCIgOmhp Z2hsaWdodCkpKQorOmdyb3VwICdraWxsaW5nKQorIAorCisoZGVmdW4geC1zZWxlY3QtdGV4dC1m b3Itb3AgKG9wIHRleHQgJm9wdGlvbmFsIHB1c2gpCisgICJNYWtlIFRFWFQsIGEgc3RyaW5nLCB0 aGUgcHJpbWFyeSBhbmQvb3IgY2xpcGJvYXJkIFggc2VsZWN0aW9uLgorCitUaGlzIGZ1bmN0aW9u IG1hdGNoZXMgT1AgYWdhaW5zdCBgeC1zZWxlY3QtZW5hYmxlLXByaW1hcnknCithbmQgYHgtc2Vs ZWN0LWVuYWJsZS1jbGlwYm9hcmQnLiAgT1AgbXVzdCBiZSBvbmUgb2YgOmN1dAorb3IgOmhpZ2hs aWdodCwgY29ycmVzcG9uZGluZyB0byB1c2UgYXMgYW4gYGludGVycHJvZ3JhbS1jdXQtZnVuY3Rp b24nCitvciBgaW50ZXJwcm9ncmFtLWhpZ2hsaWdodC1mdW5jdGlvbicKKworQWxzbyBtYXkgc2V0 IHRoZSB2YWx1ZSBvZiBYIGN1dCBidWZmZXIgMCwgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkK K3dpdGggb2xkZXIgWCBhcHBsaWNhdGlvbnMsIG1hdGNoaW5nIE9QIGFnYWluc3QgYHgtc2VsZWN0 LWVuYWJsZS1jdXRidWZmZXInCiAKLShkZWZ1biB4LXNlbGVjdC10ZXh0ICh0ZXh0ICZvcHRpb25h bCBwdXNoKQotICAiTWFrZSBURVhULCBhIHN0cmluZywgdGhlIHByaW1hcnkgWCBzZWxlY3Rpb24u Ci1BbHNvLCBzZXQgdGhlIHZhbHVlIG9mIFggY3V0IGJ1ZmZlciAwLCBmb3IgYmFja3dhcmQgY29t cGF0aWJpbGl0eQotd2l0aCBvbGRlciBYIGFwcGxpY2F0aW9ucy4KIGdpbGRlYUBzdG9wLm1haWwt YWJ1c2Uub3JnIHNheXMgaXQncyBub3QgZGVzaXJhYmxlIHRvIHB1dCBraWxscwogaW4gdGhlIGNs aXBib2FyZC4iCiAgIDs7IFdpdGggbXVsdGktdHR5LCB0aGlzIGZ1bmN0aW9uIG1heSBiZSBjYWxs ZWQgZnJvbSBhIHR0eSBmcmFtZS4KICAgKHdoZW4gKGVxIChmcmFtZXAgKHNlbGVjdGVkLWZyYW1l KSkgJ3gpCi0gICAgOzsgRG9uJ3Qgc2VuZCB0aGUgY3V0IGJ1ZmZlciB0b28gbXVjaCB0ZXh0Lgot ICAgIDs7IEl0IGJlY29tZXMgc2xvdywgYW5kIGlmIHJlYWxseSBiaWcgaXQgY2F1c2VzIGVycm9y cy4KLSAgICAoY29uZCAoKD49IChsZW5ndGggdGV4dCkgeC1jdXQtYnVmZmVyLW1heCkKLSAgICAg ICAgICAgKHgtc2V0LWN1dC1idWZmZXIgIiIgcHVzaCkKLSAgICAgICAgICAgKHNldHEgeC1sYXN0 LXNlbGVjdGVkLXRleHQtY3V0ICIiCi0gICAgICAgICAgICAgICAgIHgtbGFzdC1zZWxlY3RlZC10 ZXh0LWN1dC1lbmNvZGVkICIiKSkKLSAgICAgICAgICAodAotICAgICAgICAgICAoc2V0cSB4LWxh c3Qtc2VsZWN0ZWQtdGV4dC1jdXQgdGV4dAotICAgICAgICAgICAgICAgICB4LWxhc3QtY3V0LWJ1 ZmZlci1jb2RpbmcgJ2lzby1sYXRpbi0xCi0gICAgICAgICAgICAgICAgIHgtbGFzdC1zZWxlY3Rl ZC10ZXh0LWN1dC1lbmNvZGVkCi0gICAgICAgICAgICAgICAgIDs7IElDQ0NNIHNheXMgY3V0IGJ1 ZmZlciBhbHdheXMgY29udGFpbiBJU08tTGF0aW4tMQotICAgICAgICAgICAgICAgICAoZW5jb2Rl LWNvZGluZy1zdHJpbmcgdGV4dCAnaXNvLWxhdGluLTEpKQotICAgICAgICAgICAoeC1zZXQtY3V0 LWJ1ZmZlciB4LWxhc3Qtc2VsZWN0ZWQtdGV4dC1jdXQtZW5jb2RlZCBwdXNoKSkpCi0gICAgKHdo ZW4geC1zZWxlY3QtZW5hYmxlLXByaW1hcnkKKyAgICAod2hlbiAob3IgKGVxIHgtc2VsZWN0LWVu YWJsZS1jdXRidWZmZXIgdCkKKwkgICAgICAobWVtYmVyIG9wIHgtc2VsZWN0LWVuYWJsZS1jdXRi dWZmZXIpKQorICAgICAgOzsgRG9uJ3Qgc2VuZCB0aGUgY3V0IGJ1ZmZlciB0b28gbXVjaCB0ZXh0 LgorICAgICAgOzsgSXQgYmVjb21lcyBzbG93LCBhbmQgaWYgcmVhbGx5IGJpZyBpdCBjYXVzZXMg ZXJyb3JzLgorICAgICAgKGNvbmQgKCg+PSAobGVuZ3RoIHRleHQpIHgtY3V0LWJ1ZmZlci1tYXgp CisJICAgICAoeC1zZXQtY3V0LWJ1ZmZlciAiIiBwdXNoKQorCSAgICAgKHNldHEgeC1sYXN0LXNl bGVjdGVkLXRleHQtY3V0ICIiCisJCSAgIHgtbGFzdC1zZWxlY3RlZC10ZXh0LWN1dC1lbmNvZGVk ICIiKSkKKwkgICAgKHQKKwkgICAgIChzZXRxIHgtbGFzdC1zZWxlY3RlZC10ZXh0LWN1dCB0ZXh0 CisJCSAgIHgtbGFzdC1jdXQtYnVmZmVyLWNvZGluZyAnaXNvLWxhdGluLTEKKwkJICAgeC1sYXN0 LXNlbGVjdGVkLXRleHQtY3V0LWVuY29kZWQKKwkJICAgOzsgSUNDQ00gc2F5cyBjdXQgYnVmZmVy IGFsd2F5cyBjb250YWluIElTTy1MYXRpbi0xCisJCSAgIChlbmNvZGUtY29kaW5nLXN0cmluZyB0 ZXh0ICdpc28tbGF0aW4tMSkpCisJICAgICAoeC1zZXQtY3V0LWJ1ZmZlciB4LWxhc3Qtc2VsZWN0 ZWQtdGV4dC1jdXQtZW5jb2RlZCBwdXNoKSkpKQorICAgICh3aGVuIChvciAoZXEgeC1zZWxlY3Qt ZW5hYmxlLXByaW1hcnkgdCkKKwkgICAgICAobWVtYmVyIG9wIHgtc2VsZWN0LWVuYWJsZS1wcmlt YXJ5KSkKICAgICAgICh4LXNldC1zZWxlY3Rpb24gJ1BSSU1BUlkgdGV4dCkKICAgICAgIChzZXRx IHgtbGFzdC1zZWxlY3RlZC10ZXh0LXByaW1hcnkgdGV4dCkpCi0gICAgKHdoZW4geC1zZWxlY3Qt ZW5hYmxlLWNsaXBib2FyZAorICAgICh3aGVuIChvciAoZXEgeC1zZWxlY3QtZW5hYmxlLWNsaXBi b2FyZCB0KQorCSAgICAgIChtZW1iZXIgb3AgeC1zZWxlY3QtZW5hYmxlLWNsaXBib2FyZCkpIAog ICAgICAgKHgtc2V0LXNlbGVjdGlvbiAnQ0xJUEJPQVJEIHRleHQpCiAgICAgICAoc2V0cSB4LWxh c3Qtc2VsZWN0ZWQtdGV4dC1jbGlwYm9hcmQgdGV4dCkpKSkKIAorCisoZGVmdW4geC1zZWxlY3Qt dGV4dCAodGV4dCAmb3B0aW9uYWwgcHVzaCkKKyAgIk1ha2UgVEVYVCwgYSBzdHJpbmcsIHRoZSBw cmltYXJ5IGFuZC9vciBjbGlwYm9hcmQgWCBzZWxlY3Rpb24gKGZvciBjdXQpLgorCitBbHNvIG1h eSBzZXQgdGhlIHZhbHVlIG9mIFggY3V0IGJ1ZmZlciAwLCBmb3IgYmFja3dhcmQgY29tcGF0aWJp bGl0eQord2l0aCBvbGRlciBYIGFwcGxpY2F0aW9ucy4KKworVGhpcyBmdW5jdGlvbiBpcyBzdWl0 YWJsZSBhcyBhbiBgaW50ZXJwcm9ncmFtLWN1dC1mdW5jdGlvbicuICAKK1RoaXMgZnVuY3Rpb24g anVzdCBjYWxscyAgYHgtc2VsZWN0LXRleHQtZm9yLW9wJyB3aXRoIE9QIDpjdXQiCisgICh4LXNl bGVjdC10ZXh0LWZvci1vcCA6Y3V0IHRleHQgcHVzaCkpCisKKworKGRlZnVuIHgtc2VsZWN0LXRl eHQtZm9yLWhpZ2hsaWdodCAodGV4dCAmb3B0aW9uYWwgcHVzaCkKKyAgIk1ha2UgVEVYVCwgYSBz dHJpbmcsIHRoZSBwcmltYXJ5IGFuZC9vciBjbGlwYm9hcmQgWCBzZWxlY3Rpb24gKGZvciBoaWdo bGlnaHQpLgorCitBbHNvIG1heSBzZXQgdGhlIHZhbHVlIG9mIFggY3V0IGJ1ZmZlciAwLCBmb3Ig YmFja3dhcmQgY29tcGF0aWJpbGl0eQord2l0aCBvbGRlciBYIGFwcGxpY2F0aW9ucy4KKworVGhp cyBmdW5jdGlvbiBpcyBzdWl0YWJsZSBhcyBhbiBgaW50ZXJwcm9ncmFtLWhpZ2hsaWdodC1mdW5j dGlvbicuICAKK1RoaXMgZnVuY3Rpb24gaXMgY2FsbHMgYHgtc2VsZWN0LXRleHQtZm9yLW9wJyB3 aXRoIE9QIGA6aGlnaGxpZ2h0JyIKKyAgKHgtc2VsZWN0LXRleHQtZm9yLW9wIDpoaWdobGlnaHQg dGV4dCBwdXNoKSkKKworCiAoZGVmdmFyIHgtc2VsZWN0LXJlcXVlc3QtdHlwZSBuaWwKICAgIipE YXRhIHR5cGUgcmVxdWVzdCBmb3IgWCBzZWxlY3Rpb24uCiBUaGUgdmFsdWUgaXMgb25lIG9mIHRo ZSBmb2xsb3dpbmcgZGF0YSB0eXBlcywgYSBsaXN0IG9mIHRoZW0sIG9yIG5pbDoKICAgYENPTVBP VU5EX1RFWFQnLCBgVVRGOF9TVFJJTkcnLCBgU1RSSU5HJywgYFRFWFQnCiAKIElmIHRoZSB2YWx1 ZSBpcyBvbmUgb2YgdGhlIGFib3ZlIHN5bWJvbHMsIHRyeSBvbmx5IHRoZSBzcGVjaWZpZWQKIHR5 cGUuCiAKQEAgLTIyMjYsMTcgKzIzNTAsMTggQEAKIDs7IGFzIGlmIHRoZXkgd2VyZSB1bnNldC4K IDs7IElmIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHR3aWNlIGFuZCBmaW5kcyB0aGUgc2FtZSB0 ZXh0LAogOzsgaXQgcmV0dXJucyBuaWwgdGhlIHNlY29uZCB0aW1lLiAgVGhpcyBpcyBzbyB0aGF0 IGEgc2luZ2xlCiA7OyBzZWxlY3Rpb24gd29uJ3QgYmUgYWRkZWQgdG8gdGhlIGtpbGwgcmluZyBv dmVyIGFuZCBvdmVyLgogKGRlZnVuIHgtY3V0LWJ1ZmZlci1vci1zZWxlY3Rpb24tdmFsdWUgKCkK ICAgOzsgV2l0aCBtdWx0aS10dHksIHRoaXMgZnVuY3Rpb24gbWF5IGJlIGNhbGxlZCBmcm9tIGEg dHR5IGZyYW1lLgogICAod2hlbiAoZXEgKGZyYW1lcCAoc2VsZWN0ZWQtZnJhbWUpKSAneCkKICAg ICAobGV0IChjbGlwLXRleHQgcHJpbWFyeS10ZXh0IGN1dC10ZXh0KQotICAgICAgKHdoZW4geC1z ZWxlY3QtZW5hYmxlLWNsaXBib2FyZAorICAgICAgKHdoZW4gKG9yIChlcSB4LXNlbGVjdC1lbmFi bGUtY2xpcGJvYXJkIHQpCisJCShtZW1iZXIgOnBhc3RlIHgtc2VsZWN0LWVuYWJsZS1jbGlwYm9h cmQpKQogICAgICAgICAoc2V0cSBjbGlwLXRleHQgKHgtc2VsZWN0aW9uLXZhbHVlICdDTElQQk9B UkQpKQogICAgICAgICAoaWYgKHN0cmluZz0gY2xpcC10ZXh0ICIiKSAoc2V0cSBjbGlwLXRleHQg bmlsKSkKIAogICAgICAgICA7OyBDaGVjayB0aGUgQ0xJUEJPQVJEIHNlbGVjdGlvbiBmb3IgJ25l d25lc3MnLCBpcyBpdCBkaWZmZXJlbnQKICAgICAgICAgOzsgZnJvbSB3aGF0IHdlIHJlbWViZXJl ZCB0aGVtIHRvIGJlIGxhc3QgdGltZSB3ZSBkaWQgYQogICAgICAgICA7OyBjdXQvcGFzdGUgb3Bl cmF0aW9uLgogICAgICAgICAoc2V0cSBjbGlwLXRleHQKICAgICAgICAgICAgICAgKGNvbmQgOzsg Y2hlY2sgY2xpcGJvYXJkCkBAIC0yMjQ1LDE3ICsyMzcwLDE4IEBACiAgICAgICAgICAgICAgICAo KGVxICAgICAgY2xpcC10ZXh0IHgtbGFzdC1zZWxlY3RlZC10ZXh0LWNsaXBib2FyZCkgbmlsKQog ICAgICAgICAgICAgICAgKChzdHJpbmc9IGNsaXAtdGV4dCB4LWxhc3Qtc2VsZWN0ZWQtdGV4dC1j bGlwYm9hcmQpCiAgICAgICAgICAgICAgICAgOzsgUmVjb3JkIHRoZSBuZXdlciBzdHJpbmcsCiAg ICAgICAgICAgICAgICAgOzsgc28gc3Vic2VxdWVudCBjYWxscyBjYW4gdXNlIHRoZSBgZXEnIHRl c3QuCiAgICAgICAgICAgICAgICAgKHNldHEgeC1sYXN0LXNlbGVjdGVkLXRleHQtY2xpcGJvYXJk IGNsaXAtdGV4dCkKICAgICAgICAgICAgICAgICBuaWwpCiAgICAgICAgICAgICAgICAodCAoc2V0 cSB4LWxhc3Qtc2VsZWN0ZWQtdGV4dC1jbGlwYm9hcmQgY2xpcC10ZXh0KSkpKSkKIAotICAgICAg KHdoZW4geC1zZWxlY3QtZW5hYmxlLXByaW1hcnkKKyAgICAgICh3aGVuIChvciAoZXEgeC1zZWxl Y3QtZW5hYmxlLXByaW1hcnkgdCkKKwkJKG1lbWJlciA6cGFzdGUgeC1zZWxlY3QtZW5hYmxlLXBy aW1hcnkpKQogCShzZXRxIHByaW1hcnktdGV4dCAoeC1zZWxlY3Rpb24tdmFsdWUgJ1BSSU1BUlkp KQogCTs7IENoZWNrIHRoZSBQUklNQVJZIHNlbGVjdGlvbiBmb3IgJ25ld25lc3MnLCBpcyBpdCBk aWZmZXJlbnQKIAk7OyBmcm9tIHdoYXQgd2UgcmVtZWJlcmVkIHRoZW0gdG8gYmUgbGFzdCB0aW1l IHdlIGRpZCBhCiAJOzsgY3V0L3Bhc3RlIG9wZXJhdGlvbi4KIAkoc2V0cSBwcmltYXJ5LXRleHQK IAkgICAgICAoY29uZCA7OyBjaGVjayBwcmltYXJ5IHNlbGVjdGlvbgogCSAgICAgICAoKG9yIChu b3QgcHJpbWFyeS10ZXh0KSAoc3RyaW5nPSBwcmltYXJ5LXRleHQgIiIpKQogCQkoc2V0cSB4LWxh c3Qtc2VsZWN0ZWQtdGV4dC1wcmltYXJ5IG5pbCkpCkBAIC0yMjYzLDQ3ICsyMzg5LDQ5IEBACiAJ ICAgICAgICgoc3RyaW5nPSBwcmltYXJ5LXRleHQgeC1sYXN0LXNlbGVjdGVkLXRleHQtcHJpbWFy eSkKIAkJOzsgUmVjb3JkIHRoZSBuZXdlciBzdHJpbmcsCiAJCTs7IHNvIHN1YnNlcXVlbnQgY2Fs bHMgY2FuIHVzZSB0aGUgYGVxJyB0ZXN0LgogCQkoc2V0cSB4LWxhc3Qtc2VsZWN0ZWQtdGV4dC1w cmltYXJ5IHByaW1hcnktdGV4dCkKIAkJbmlsKQogCSAgICAgICAodAogCQkoc2V0cSB4LWxhc3Qt c2VsZWN0ZWQtdGV4dC1wcmltYXJ5IHByaW1hcnktdGV4dCkpKSkpCiAKLSAgICAgIChzZXRxIGN1 dC10ZXh0ICh4LWdldC1jdXQtYnVmZmVyIDApKQotCi0gICAgICA7OyBDaGVjayB0aGUgeCBjdXQg YnVmZmVyIGZvciAnbmV3bmVzcycsIGlzIGl0IGRpZmZlcmVudAotICAgICAgOzsgZnJvbSB3aGF0 IHdlIHJlbWViZXJlZCB0aGVtIHRvIGJlIGxhc3QgdGltZSB3ZSBkaWQgYQotICAgICAgOzsgY3V0 L3Bhc3RlIG9wZXJhdGlvbi4KLSAgICAgIChzZXRxIGN1dC10ZXh0Ci0gICAgICAgICAgICAobGV0 ICgobmV4dC1jb2RpbmcgKG9yIG5leHQtc2VsZWN0aW9uLWNvZGluZy1zeXN0ZW0gJ2lzby1sYXRp bi0xKSkpCi0gICAgICAgICAgICAgIChjb25kIDs7IGNoZWNrIGN1dCBidWZmZXIKLSAgICAgICAg ICAgICAgICgob3IgKG5vdCBjdXQtdGV4dCkgKHN0cmluZz0gY3V0LXRleHQgIiIpKQotICAgICAg ICAgICAgICAgIChzZXRxIHgtbGFzdC1zZWxlY3RlZC10ZXh0LWN1dCBuaWwpKQotICAgICAgICAg ICAgICAgOzsgVGhpcyBzaG9ydCBjdXQgZG9lc24ndCB3b3JrIGJlY2F1c2UgeC1nZXQtY3V0LWJ1 ZmZlcgotICAgICAgICAgICAgICAgOzsgYWx3YXlzIHJldHVybnMgYSBuZXdseSBjcmVhdGVkIHN0 cmluZy4KLSAgICAgICAgICAgICAgIDs7ICgoZXEgICAgICBjdXQtdGV4dCB4LWxhc3Qtc2VsZWN0 ZWQtdGV4dC1jdXQpIG5pbCkKLSAgICAgICAgICAgICAgICgoYW5kIChzdHJpbmc9IGN1dC10ZXh0 IHgtbGFzdC1zZWxlY3RlZC10ZXh0LWN1dC1lbmNvZGVkKQotICAgICAgICAgICAgICAgICAgICAg KGVxIHgtbGFzdC1jdXQtYnVmZmVyLWNvZGluZyBuZXh0LWNvZGluZykpCi0gICAgICAgICAgICAg ICAgOzsgU2VlIHRoZSBjb21tZW50IGFib3ZlLiAgTm8gbmVlZCBvZiB0aGlzIHJlY29yZGluZy4K LSAgICAgICAgICAgICAgICA7OyBSZWNvcmQgdGhlIG5ld2VyIHN0cmluZywKLSAgICAgICAgICAg ICAgICA7OyBzbyBzdWJzZXF1ZW50IGNhbGxzIGNhbiB1c2UgdGhlIGBlcScgdGVzdC4KLSAgICAg ICAgICAgICAgICA7OyAoc2V0cSB4LWxhc3Qtc2VsZWN0ZWQtdGV4dC1jdXQgY3V0LXRleHQpCi0g ICAgICAgICAgICAgICAgbmlsKQotICAgICAgICAgICAgICAgKHQKLSAgICAgICAgICAgICAgICAo c2V0cSB4LWxhc3Qtc2VsZWN0ZWQtdGV4dC1jdXQtZW5jb2RlZCBjdXQtdGV4dAotICAgICAgICAg ICAgICAgICAgICAgIHgtbGFzdC1jdXQtYnVmZmVyLWNvZGluZyBuZXh0LWNvZGluZwotICAgICAg ICAgICAgICAgICAgICAgIHgtbGFzdC1zZWxlY3RlZC10ZXh0LWN1dAotICAgICAgICAgICAgICAg ICAgICAgIDs7IElDQ0NNIHNheXMgY3V0IGJ1ZmZlciBhbHdheXMgY29udGFpbiBJU08tTGF0aW4t MSwgYnV0Ci0gICAgICAgICAgICAgICAgICAgICAgOzsgdXNlIG5leHQtc2VsZWN0aW9uLWNvZGlu Zy1zeXN0ZW0gaWYgbm90IG5pbC4KLSAgICAgICAgICAgICAgICAgICAgICAoZGVjb2RlLWNvZGlu Zy1zdHJpbmcKLSAgICAgICAgICAgICAgICAgICAgICAgY3V0LXRleHQgbmV4dC1jb2RpbmcpKSkp KSkKKyAgICAgICh3aGVuIChvciAoZXEgeC1zZWxlY3QtZW5hYmxlLWN1dGJ1ZmZlciB0KQorCQko bWVtYmVyIDpwYXN0ZSB4LXNlbGVjdC1lbmFibGUtY3V0YnVmZmVyKSkKKwkoc2V0cSBjdXQtdGV4 dCAoeC1nZXQtY3V0LWJ1ZmZlciAwKSkKKwkKKwk7OyBDaGVjayB0aGUgeCBjdXQgYnVmZmVyIGZv ciAnbmV3bmVzcycsIGlzIGl0IGRpZmZlcmVudAorCTs7IGZyb20gd2hhdCB3ZSByZW1lYmVyZWQg dGhlbSB0byBiZSBsYXN0IHRpbWUgd2UgZGlkIGEKKwk7OyBjdXQvcGFzdGUgb3BlcmF0aW9uLgor CShzZXRxIGN1dC10ZXh0CisJICAgICAgKGxldCAoKG5leHQtY29kaW5nIChvciBuZXh0LXNlbGVj dGlvbi1jb2Rpbmctc3lzdGVtICdpc28tbGF0aW4tMSkpKQorCQkoY29uZCA7OyBjaGVjayBjdXQg YnVmZmVyCisJCSAoKG9yIChub3QgY3V0LXRleHQpIChzdHJpbmc9IGN1dC10ZXh0ICIiKSkKKwkJ ICAoc2V0cSB4LWxhc3Qtc2VsZWN0ZWQtdGV4dC1jdXQgbmlsKSkKKwkJIDs7IFRoaXMgc2hvcnQg Y3V0IGRvZXNuJ3Qgd29yayBiZWNhdXNlIHgtZ2V0LWN1dC1idWZmZXIKKwkJIDs7IGFsd2F5cyBy ZXR1cm5zIGEgbmV3bHkgY3JlYXRlZCBzdHJpbmcuCisJCSA7OyAoKGVxICAgICAgY3V0LXRleHQg eC1sYXN0LXNlbGVjdGVkLXRleHQtY3V0KSBuaWwpCisJCSAoKGFuZCAoc3RyaW5nPSBjdXQtdGV4 dCB4LWxhc3Qtc2VsZWN0ZWQtdGV4dC1jdXQtZW5jb2RlZCkKKwkJICAgICAgIChlcSB4LWxhc3Qt Y3V0LWJ1ZmZlci1jb2RpbmcgbmV4dC1jb2RpbmcpKQorCQkgIDs7IFNlZSB0aGUgY29tbWVudCBh Ym92ZS4gIE5vIG5lZWQgb2YgdGhpcyByZWNvcmRpbmcuCisJCSAgOzsgUmVjb3JkIHRoZSBuZXdl ciBzdHJpbmcsCisJCSAgOzsgc28gc3Vic2VxdWVudCBjYWxscyBjYW4gdXNlIHRoZSBgZXEnIHRl c3QuCisJCSAgOzsgKHNldHEgeC1sYXN0LXNlbGVjdGVkLXRleHQtY3V0IGN1dC10ZXh0KQorCQkg IG5pbCkKKwkJICh0CisJCSAgKHNldHEgeC1sYXN0LXNlbGVjdGVkLXRleHQtY3V0LWVuY29kZWQg Y3V0LXRleHQKKwkJCXgtbGFzdC1jdXQtYnVmZmVyLWNvZGluZyBuZXh0LWNvZGluZworCQkJeC1s YXN0LXNlbGVjdGVkLXRleHQtY3V0CisJCQk7OyBJQ0NDTSBzYXlzIGN1dCBidWZmZXIgYWx3YXlz IGNvbnRhaW4gSVNPLUxhdGluLTEsIGJ1dAorCQkJOzsgdXNlIG5leHQtc2VsZWN0aW9uLWNvZGlu Zy1zeXN0ZW0gaWYgbm90IG5pbC4KKwkJCShkZWNvZGUtY29kaW5nLXN0cmluZworCQkJIGN1dC10 ZXh0IG5leHQtY29kaW5nKSkpKSkpCiAKLSAgICAgIDs7IEFzIHdlIGhhdmUgZG9uZSBvbmUgc2Vs ZWN0aW9uLCBjbGVhciB0aGlzIG5vdy4KLSAgICAgIChzZXRxIG5leHQtc2VsZWN0aW9uLWNvZGlu Zy1zeXN0ZW0gbmlsKQorCTs7IEFzIHdlIGhhdmUgZG9uZSBvbmUgc2VsZWN0aW9uLCBjbGVhciB0 aGlzIG5vdy4KKwkoc2V0cSBuZXh0LXNlbGVjdGlvbi1jb2Rpbmctc3lzdGVtIG5pbCkpCiAKICAg ICAgIDs7IEF0IHRoaXMgcG9pbnQgd2UgaGF2ZSByZWNvcmRlZCB0aGUgY3VycmVudCB2YWx1ZXMg Zm9yIHRoZQogICAgICAgOzsgc2VsZWN0aW9uIGZyb20gY2xpcGJvYXJkIChpZiB3ZSBhcmUgc3Vw cG9zZWQgdG8pIHByaW1hcnksCiAgICAgICA7OyBhbmQgY3V0IGJ1ZmZlci4gIFNvIHJldHVybiB0 aGUgZmlyc3Qgb25lIHRoYXQgaGFzIGNoYW5nZWQKICAgICAgIDs7ICh3aGljaCBpcyB0aGUgZmly c3Qgbm9uLW51bGwgb25lKS4KICAgICAgIDs7CiAgICAgICA7OyBOT1RFOiBUaGVyZSB3aWxsIGJl IGNhc2VzIHdoZXJlIG1vcmUgdGhhbiBvbmUgb2YgdGhlc2UgaGFzCiAgICAgICA7OyBjaGFuZ2Vk IGFuZCB0aGUgbmV3IHZhbHVlcyBkaWZmZXIuICBUaGlzIGluZGljYXRlcyB0aGF0CkBAIC0yMzIx LDE2ICsyNDQ5LDE3IEBACiAgICAgICA7OyBwcmltYXJ5IGhhZCBiZWVuIHNldCB0aGUgY3V0IGJ1 ZmZlciB3b3VsZCBlc3NlbnRpYWxseSBuZXZlciBiZQogICAgICAgOzsgY2hlY2tlZCBhZ2Fpbiku CiAgICAgICAob3IgY2xpcC10ZXh0IHByaW1hcnktdGV4dCBjdXQtdGV4dCkKICAgICAgICkpKQog CiA7OyBBcnJhbmdlIGZvciB0aGUga2lsbCBhbmQgeWFuayBmdW5jdGlvbnMgdG8gc2V0IGFuZCBj aGVjayB0aGUgY2xpcGJvYXJkLgogKHNldHEgaW50ZXJwcm9ncmFtLWN1dC1mdW5jdGlvbiAneC1z ZWxlY3QtdGV4dCkKIChzZXRxIGludGVycHJvZ3JhbS1wYXN0ZS1mdW5jdGlvbiAneC1jdXQtYnVm ZmVyLW9yLXNlbGVjdGlvbi12YWx1ZSkKKyhzZXRxIGludGVycHJvZ3JhbS1oaWdobGlnaHQtZnVu Y3Rpb24gJ3gtc2VsZWN0LXRleHQtZm9yLWhpZ2hsaWdodCkKIAogKGRlZnVuIHgtY2xpcGJvYXJk LXlhbmsgKCkKICAgIkluc2VydCB0aGUgY2xpcGJvYXJkIGNvbnRlbnRzLCBvciB0aGUgbGFzdCBz dHJldGNoIG9mIGtpbGxlZCB0ZXh0LiIKICAgKGludGVyYWN0aXZlICIqIikKICAgKGxldCAoKGNs aXBib2FyZC10ZXh0ICh4LXNlbGVjdGlvbi12YWx1ZSAnQ0xJUEJPQVJEKSkKIAkoeC1zZWxlY3Qt ZW5hYmxlLWNsaXBib2FyZCB0KSkKICAgICAoaWYgKGFuZCBjbGlwYm9hcmQtdGV4dCAoPiAobGVu Z3RoIGNsaXBib2FyZC10ZXh0KSAwKSkKIAkoa2lsbC1uZXcgY2xpcGJvYXJkLXRleHQpKQo= ------=_Part_32218_18345012.1201893350897--