From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: martin rudalics Newsgroups: gmane.emacs.devel Subject: Documenting buffer display Date: Sat, 20 Oct 2018 14:20:18 +0200 Message-ID: <5BCB1D82.3020108@gmx.at> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------030509080103070106060804" X-Trace: blaine.gmane.org 1540037932 14516 195.159.176.226 (20 Oct 2018 12:18:52 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sat, 20 Oct 2018 12:18:52 +0000 (UTC) To: emacs-devel Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Oct 20 14:18:48 2018 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gDqDN-0003ez-MT for ged-emacs-devel@m.gmane.org; Sat, 20 Oct 2018 14:18:46 +0200 Original-Received: from localhost ([::1]:54993 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gDqFU-0007eW-3P for ged-emacs-devel@m.gmane.org; Sat, 20 Oct 2018 08:20:56 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:50592) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gDqFB-0007bj-Nu for emacs-devel@gnu.org; Sat, 20 Oct 2018 08:20:44 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gDqF3-0007rg-5F for emacs-devel@gnu.org; Sat, 20 Oct 2018 08:20:36 -0400 Original-Received: from mout.gmx.net ([212.227.17.21]:34639) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gDqEz-0007mW-8D for emacs-devel@gnu.org; Sat, 20 Oct 2018 08:20:27 -0400 Original-Received: from [192.168.1.101] ([213.162.73.23]) by mail.gmx.com (mrgmx103 [212.227.17.168]) with ESMTPSA (Nemesis) id 0M0yaB-1fLJXw3jHL-00vAwb for ; Sat, 20 Oct 2018 14:20:20 +0200 Original-Received: from [192.168.1.101] ([213.162.73.23]) by mail.gmx.com (mrgmx103 [212.227.17.168]) with ESMTPSA (Nemesis) id 0M0yaB-1fLJXw3jHL-00vAwb for ; Sat, 20 Oct 2018 14:20:20 +0200 X-Provags-ID: V03:K1:8aTAM9+ATuY+AGsuoPuxmKpgZUEH0pK8f4b7F29qwhPLyMPsC5e jrbyBVp9gWzYnedFuJRbrJP2iF/fRdUj48lt3V1PicKNJNyPCe4MBeGJB2fMLpUp2of3hz0 lGsWrdPJPk3cwIqbQxuJmsyjL1vilx13LRwbFDgTvp+mXpFZ1qFFE91lmVrAvef5nDAuZwM Obh7nUDj3ETVVuNsNEmrA== X-UI-Out-Filterresults: notjunk:1;V01:K0:5xen1SreyYk=:uIqZkn9wYasDwIKBTlWXOl YqoorLHzNbpvZM7vfNnX0Rge0VcSVxRCOVkY3ezsDIDnW1qVxohly9oakRhFHaZr2m78vsECC Gu1BDTyyAs9bnSNUESOle/uqe9m5ipNaESO7aLnXPjig80vwwmqNjJ0uTRw0BopWyVJqN30p+ N/TS9WlXBHfJlARLtEClmeuZXOpb1LCj5fxgEcBdf+I5XiA7G1I9VOq3r2mb4tvxWeNUvRgkT QY3A+ULEimopgLgYsIst9n/dwkH0o+t9ywQ8v9CTyNah7JiqFQ5eLHUxliM3ERSDEHjNL1EzW 4Kte/V0j9858D166R21f0fH1uK0Lip7KgkiCak9L8AevjgW2OwqGYKyvxn5thnegf0yf7bw0a gHiZO8XKpJ+8YEBW7HLll5WRB6ldX7UXBBcWDOgWTbxxYutQXPMQaHpH7hNpt+48W87c6NapP GQv0J9vLHIO6zUF12EP4ZroCKo566C11qJ61OQXPBuOrLuv4AwE/vpkfVW/PRmEBEnYP4mbVH bNWLkv8MvUkQo0PiPORuy3JQx+s1ZjHtUAdFRYc9JfckCrRLh6oQAzSTA60lHTirFBY5DfhWY qeJ9U1x1OCc4WKtGe2lxqggPcEATHCVExQz5G6PC+1kQQXiVyAPSsKOQspgBKnFfWIo/8XhJO +en0UHMEkfrDo4GectveUw+QF6GqV0C1DfXQyz7oC2YsdxTbyDrxA9mKypLVr90XpeX70yb9j s83ktHJGlT3jqYv4MdGF14HXoe3M29+aR8aG/WwKesKkaHOdpmWfpyVyzHfFnB18b6Ilui4z X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.17.21 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:230522 Archived-At: This is a multi-part message in MIME format. --------------030509080103070106060804 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Attached find a rewrite of the documentation of buffer display functions to be applied against the release branch. Work in progress. Proofreading and suggestions welcome. Thanks for the attention, martin --------------030509080103070106060804 Content-Type: text/plain; charset=windows-1252; name="display-buffer.texi" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="display-buffer.texi" ZGlmZiAtLWdpdCBhL2RvYy9lbWFjcy93aW5kb3dzLnRleGkgYi9kb2MvZW1hY3Mvd2luZG93 cy50ZXhpCmluZGV4IDdkYmQ2ODAuLjdhZDlhNzcgMTAwNjQ0Ci0tLSBhL2RvYy9lbWFjcy93 aW5kb3dzLnRleGkKKysrIGIvZG9jL2VtYWNzL3dpbmRvd3MudGV4aQpAQCAtNDgsOCArNDgs OCBAQCBCYXNpYyBXaW5kb3cKIEBrYmR7Qy14IDQgYn0gdGhhdCBzZWxlY3QgYSBkaWZmZXJl bnQgd2luZG93IGFuZCBzd2l0Y2ggYnVmZmVycyBpbiBpdC4KIEFsc28sIGFsbCBjb21tYW5k cyB0aGF0IGRpc3BsYXkgaW5mb3JtYXRpb24gaW4gYSB3aW5kb3csIGluY2x1ZGluZwogKGZv ciBleGFtcGxlKSBAa2Jke0MtaCBmfSAoQGNvZGV7ZGVzY3JpYmUtZnVuY3Rpb259KSBhbmQg QGtiZHtDLXggQy1ifQotKEBjb2Rle2xpc3QtYnVmZmVyc30pLCB3b3JrIGJ5IHN3aXRjaGlu ZyBidWZmZXJzIGluIGEgbm9uc2VsZWN0ZWQKLXdpbmRvdyB3aXRob3V0IGFmZmVjdGluZyB0 aGUgc2VsZWN0ZWQgd2luZG93LgorKEBjb2Rle2xpc3QtYnVmZmVyc30pLCB1c3VhbGx5IHdv cmsgYnkgZGlzcGxheWluZyBidWZmZXJzIGluIGEKK25vbnNlbGVjdGVkIHdpbmRvdyB3aXRo b3V0IGFmZmVjdGluZyB0aGUgc2VsZWN0ZWQgd2luZG93LgoKICAgV2hlbiBtdWx0aXBsZSB3 aW5kb3dzIHNob3cgdGhlIHNhbWUgYnVmZmVyLCB0aGV5IGNhbiBoYXZlIGRpZmZlcmVudAog cmVnaW9ucywgYmVjYXVzZSB0aGV5IGNhbiBoYXZlIGRpZmZlcmVudCB2YWx1ZXMgb2YgcG9p bnQuICBIb3dldmVyLApAQCAtMzQwLDExICszNDAsOSBAQCBEaXNwbGF5aW5nIEJ1ZmZlcnMK IGluIHJlc3BvbnNlIHRvIGEgdXNlciBjb21tYW5kLiAgVGhlcmUgYXJlIHNldmVyYWwgZGlm ZmVyZW50IHdheXMgaW4KIHdoaWNoIGNvbW1hbmRzIGRvIHRoaXMuCgotICBNYW55IGNvbW1h bmRzLCBsaWtlIEBrYmR7Qy14IEMtZn0gKEBjb2Rle2ZpbmQtZmlsZX0pLCBkaXNwbGF5IHRo ZQotYnVmZmVyIGJ5IGBgdGFraW5nIG92ZXInJyB0aGUgc2VsZWN0ZWQgd2luZG93LCBleHBl Y3RpbmcgdGhhdCB0aGUKLXVzZXIncyBhdHRlbnRpb24gd2lsbCBiZSBkaXZlcnRlZCB0byB0 aGF0IGJ1ZmZlci4gIFRoZXNlIGNvbW1hbmRzCi11c3VhbGx5IHdvcmsgYnkgY2FsbGluZyBA Y29kZXtzd2l0Y2gtdG8tYnVmZmVyfSBpbnRlcm5hbGx5Ci0oQHB4cmVme1NlbGVjdCBCdWZm ZXJ9KS4KKyAgTWFueSBjb21tYW5kcywgbGlrZSBAa2Jke0MteCBDLWZ9IChAY29kZXtmaW5k LWZpbGV9KSwgYnkgZGVmYXVsdAorZGlzcGxheSB0aGUgYnVmZmVyIGJ5IGBgdGFraW5nIG92 ZXInJyB0aGUgc2VsZWN0ZWQgd2luZG93LCBleHBlY3RpbmcKK3RoYXQgdGhlIHVzZXIncyBh dHRlbnRpb24gd2lsbCBiZSBkaXZlcnRlZCB0byB0aGF0IGJ1ZmZlci4KCiAgIFNvbWUgY29t bWFuZHMgdHJ5IHRvIGRpc3BsYXkgaW50ZWxsaWdlbnRseSwgdHJ5aW5nIG5vdCB0byB0YWtl CiBvdmVyIHRoZSBzZWxlY3RlZCB3aW5kb3csIGUuZy4sIGJ5IHNwbGl0dGluZyBvZmYgYSBu ZXcgd2luZG93IGFuZApAQCAtMzY3LDEwICszNjUsOSBAQCBEaXNwbGF5aW5nIEJ1ZmZlcnMK CiAgIENvbW1hbmRzIHdpdGggbmFtZXMgZW5kaW5nIGluIEBjb2Rley1vdGhlci1mcmFtZX0g YmVoYXZlIGxpa2UKIEBjb2Rle2Rpc3BsYXktYnVmZmVyfSwgZXhjZXB0IHRoYXQgdGhleSAo aSkgbmV2ZXIgZGlzcGxheSBpbiB0aGUKLXNlbGVjdGVkIHdpbmRvdyBhbmQgKGlpKSBwcmVm ZXIgdG8gY3JlYXRlIGEgbmV3IGZyYW1lIHRvIGRpc3BsYXkgdGhlCi1kZXNpcmVkIGJ1ZmZl ciBpbnN0ZWFkIG9mIHNwbGl0dGluZyBhIHdpbmRvdy0tLWFzIHRob3VnaCB0aGUgdmFyaWFi bGUKLUBjb2Rle3BvcC11cC1mcmFtZXN9IGlzIHNldCB0byBAY29kZXt0fSAoQHB4cmVme1dp bmRvdyBDaG9pY2V9KS4KLVNldmVyYWwgb2YgdGhlc2UgY29tbWFuZHMgYXJlIGJvdW5kIGlu IHRoZSBAa2Jke0MteCA1fSBwcmVmaXgga2V5Lgorc2VsZWN0ZWQgd2luZG93IGFuZCAoaWkp IHByZWZlciB0byBlaXRoZXIgY3JlYXRlIGEgbmV3IGZyYW1lIG9yIHVzZSBhCit3aW5kb3cg b24gc29tZSBvdGhlciBmcmFtZSB0byBkaXNwbGF5IHRoZSBkZXNpcmVkIGJ1ZmZlci4gIFNl dmVyYWwgb2YKK3RoZXNlIGNvbW1hbmRzIGFyZSBib3VuZCBpbiB0aGUgQGtiZHtDLXggNX0g cHJlZml4IGtleS4KCiBAbWVudQogKiBXaW5kb3cgQ2hvaWNlOjogICBIb3cgQGNvZGV7ZGlz cGxheS1idWZmZXJ9IHdvcmtzLgpAQCAtMzg4LDI4ICszODUsNTYgQEAgV2luZG93IENob2lj ZQogc2VxdWVuY2Ugb2Ygc3RlcHMuCgogQGl0ZW1pemUKLUB2aW5kZXggc2FtZS13aW5kb3ct YnVmZmVyLW5hbWVzCi1AdmluZGV4IHNhbWUtd2luZG93LXJlZ2V4cHMKIEBpdGVtCiBGaXJz dCwgY2hlY2sgaWYgdGhlIGJ1ZmZlciBzaG91bGQgYmUgZGlzcGxheWVkIGluIHRoZSBzZWxl Y3RlZCB3aW5kb3cKIHJlZ2FyZGxlc3Mgb2Ygb3RoZXIgY29uc2lkZXJhdGlvbnMuICBZb3Ug Y2FuIHRlbGwgRW1hY3MgdG8gZG8gdGhpcyBieQotYWRkaW5nIHRoZSBkZXNpcmVkIGJ1ZmZl cidzIG5hbWUgdG8gdGhlIGxpc3QKLUBjb2Rle3NhbWUtd2luZG93LWJ1ZmZlci1uYW1lc30s IG9yIGFkZGluZyBhIG1hdGNoaW5nIHJlZ3VsYXIKLWV4cHJlc3Npb24gdG8gdGhlIGxpc3Qg QGNvZGV7c2FtZS13aW5kb3ctcmVnZXhwc30uICBCeSBkZWZhdWx0LCB0aGVzZQotdmFyaWFi bGVzIGFyZSBAY29kZXtuaWx9LCBzbyB0aGlzIHN0ZXAgaXMgc2tpcHBlZC4KK2FkZGluZyBh IHJlZ3VsYXIgZXhwcmVzc2lvbiBtYXRjaGluZyB0aGUgYnVmZmVyJ3MgbmFtZSB0b2dldGhl ciB3aXRoIGEKK3JlZmVyZW5jZSB0byB0aGUgQGNvZGV7ZGlzcGxheS1idWZmZXItc2FtZS13 aW5kb3d9IGFjdGlvbiBmdW5jdGlvbgorKEBweHJlZntBY3Rpb24gRnVuY3Rpb25zLCxBY3Rp b24gRnVuY3Rpb25zIGZvciBCdWZmZXIgRGlzcGxheSwgZWxpc3AsCitUaGUgRW1hY3MgTGlz cCBSZWZlcmVuY2UgTWFudWFsfSkgdG8gdGhlIG9wdGlvbgorQGNvZGV7ZGlzcGxheS1idWZm ZXItYWxpc3R9IChAcHhyZWZ7Q2hvb3NpbmcgV2luZG93LCxDaG9vc2luZyBhIFdpbmRvdwor Zm9yIERpc3BsYXksIGVsaXNwLCBUaGUgRW1hY3MgTGlzcCBSZWZlcmVuY2UgTWFudWFsfSku ICBGb3IgZXhhbXBsZSwKK3RvIGRpc3BsYXkgdGhlIGJ1ZmZlciBAZmlsZXsqc2NyYXRjaCp9 IHByZWZlcmFibHkgaW4gdGhlIHNlbGVjdGVkCit3aW5kb3cgd3JpdGU6CisKK0BleGFtcGxl CitAZ3JvdXAKKyhjdXN0b21pemUtc2V0LXZhcmlhYmxlCisgJ2Rpc3BsYXktYnVmZmVyLWFs aXN0CisgJygiXFwqc2NyYXRjaFxcKiIgKGRpc3BsYXktYnVmZmVyLXNhbWUtd2luZG93KSkp CitAZW5kIGdyb3VwCitAZW5kIGV4YW1wbGUKKworQnkgZGVmYXVsdCwgQGNvZGV7ZGlzcGxh eS1idWZmZXItYWxpc3R9IGlzIEBjb2Rle25pbH0sIHNvIHRoaXMgc3RlcCBpcworc2tpcHBl ZC4KCiBAaXRlbQogT3RoZXJ3aXNlLCBpZiB0aGUgYnVmZmVyIGlzIGFscmVhZHkgZGlzcGxh eWVkIGluIGFuIGV4aXN0aW5nIHdpbmRvdywKLXJldXNlIHRoYXQgd2luZG93LiAgTm9ybWFs bHksIG9ubHkgd2luZG93cyBvbiB0aGUgc2VsZWN0ZWQgZnJhbWUKLWFyZSBjb25zaWRlcmVk LCBidXQgd2luZG93cyBvbiBvdGhlciBmcmFtZXMgYXJlIGFsc28gcmV1c2FibGUgaWYgeW91 Ci1jaGFuZ2UgQGNvZGV7cG9wLXVwLWZyYW1lc30gKHNlZSBiZWxvdykgdG8gQGNvZGV7dH0u CityZXVzZSB0aGF0IHdpbmRvdy4gIE5vcm1hbGx5LCBvbmx5IHdpbmRvd3Mgb24gdGhlIHNl bGVjdGVkIGZyYW1lIGFyZQorY29uc2lkZXJlZCwgYnV0IHdpbmRvd3Mgb24gb3RoZXIgZnJh bWVzIGFyZSBhbHNvIHJldXNhYmxlIGlmIGEKK2NvcnJlc3BvbmRpbmcgQGNvZGV7cmV1c2Fi bGUtZnJhbWVzfSBhY3Rpb24gYWxpc3QgZW50cnkgKEBweHJlZntBY3Rpb24KK0FsaXN0cyws QWN0aW9uIEFsaXN0cyBmb3IgQnVmZmVyIERpc3BsYXksIGVsaXNwLCBUaGUgRW1hY3MgTGlz cAorUmVmZXJlbmNlIE1hbnVhbH0pIGlzIHVzZWQgKHNlZSB0aGUgbmV4dCBzdGVwIGZvciBh biBleGFtcGxlIG9mIGhvdyB0bworZG8gdGhhdCkuCgotQHZpbmRleCBwb3AtdXAtZnJhbWVz CiBAaXRlbQogT3RoZXJ3aXNlLCBvcHRpb25hbGx5IGNyZWF0ZSBhIG5ldyBmcmFtZSBhbmQg ZGlzcGxheSB0aGUgYnVmZmVyIHRoZXJlLgotQnkgZGVmYXVsdCwgdGhpcyBzdGVwIGlzIHNr aXBwZWQuICBUbyBlbmFibGUgaXQsIGNoYW5nZSB0aGUgdmFyaWFibGUKLUBjb2Rle3BvcC11 cC1mcmFtZXN9IHRvIGEgbm9uLUBjb2Rle25pbH0gdmFsdWUuICBUaGUgc3BlY2lhbCB2YWx1 ZQotQGNvZGV7Z3JhcGhpYy1vbmx5fSBtZWFucyB0byBkbyB0aGlzIG9ubHkgb24gZ3JhcGhp Y2FsIGRpc3BsYXlzLgorQnkgZGVmYXVsdCwgdGhpcyBzdGVwIGlzIHNraXBwZWQuICBUbyBl bmFibGUgaXQsIGNoYW5nZSB0aGUgdmFsdWUgb2YKK3RoZSBvcHRpb24gQGNvZGV7ZGlzcGxh eS1idWZmZXItYmFzZS1hY3Rpb259IChAcHhyZWZ7Q2hvb3NpbmcKK1dpbmRvdywsQ2hvb3Np bmcgYSBXaW5kb3cgZm9yIERpc3BsYXksIGVsaXNwLCBUaGUgRW1hY3MgTGlzcCBSZWZlcmVu Y2UKK01hbnVhbH0pIGFzIGZvbGxvd3M6CisKK0BleGFtcGxlCitAZ3JvdXAKKyhjdXN0b21p emUtc2V0LXZhcmlhYmxlCisgJ2Rpc3BsYXktYnVmZmVyLWJhc2UtYWN0aW9uCisgJygoZGlz cGxheS1idWZmZXItcmV1c2Utd2luZG93IGRpc3BsYXktYnVmZmVyLXBvcC11cC1mcmFtZSkK KyAgIChyZXVzYWJsZS1mcmFtZXMgLiAwKSkpCitAZW5kIGdyb3VwCitAZW5kIGV4YW1wbGUK KworVGhpcyBjdXN0b21pemF0aW9uIHdpbGwgYWxzbyB0cnkgdG8gbWFrZSB0aGUgcHJlY2Vk aW5nIHN0ZXAgc2VhcmNoIGZvcgorYSByZXVzYWJsZSB3aW5kb3cgb24gYWxsIHZpc2libGUg b2YgaWNvbmlmaWVkIGZyYW1lcwoKIEBpdGVtCiBPdGhlcndpc2UsIHRyeSB0byBjcmVhdGUg YSBuZXcgd2luZG93IGJ5IHNwbGl0dGluZyBhIHdpbmRvdyBvbiB0aGUKQEAgLTQyOSw5ICs0 NTQsOSBAQCBXaW5kb3cgQ2hvaWNlCgogQGl0ZW0KIE90aGVyd2lzZSwgZGlzcGxheSB0aGUg YnVmZmVyIGluIGEgd2luZG93IHByZXZpb3VzbHkgc2hvd2luZyBpdC4KLU5vcm1hbGx5LCBv bmx5IHdpbmRvd3Mgb24gdGhlIHNlbGVjdGVkIGZyYW1lIGFyZSBjb25zaWRlcmVkLCBidXQg aWYKLUBjb2Rle3BvcC11cC1mcmFtZXN9IGlzIG5vbi1AY29kZXtuaWx9IHRoZSB3aW5kb3cg bWF5IGJlIGFsc28gb24gYW5vdGhlcgotZnJhbWUuCitOb3JtYWxseSwgb25seSB3aW5kb3dz IG9uIHRoZSBzZWxlY3RlZCBmcmFtZSBhcmUgY29uc2lkZXJlZCwgYnV0IHdpdGgKK2Egc3Vp dGFibGUgQGNvZGV7cmV1c2FibGUtZnJhbWVzfSBhY3Rpb24gYWxpc3QgZW50cnkgKHNlZSBh Ym92ZSkgdGhlCit3aW5kb3cgbWF5IGJlIGFsc28gb24gYW5vdGhlciBmcmFtZS4KCiBAaXRl bQogT3RoZXJ3aXNlLCBkaXNwbGF5IHRoZSBidWZmZXIgaW4gYW4gZXhpc3Rpbmcgd2luZG93 IG9uIHRoZSBzZWxlY3RlZApAQCAtNDQyLDE0ICs0NjcsOSBAQCBXaW5kb3cgQ2hvaWNlCiBh bmQgZGlzcGxheSB0aGUgYnVmZmVyIHRoZXJlLgogQGVuZCBpdGVtaXplCgotQSBtb3JlIGFk dmFuY2VkIGFuZCBmbGV4aWJsZSB3YXkgdG8gY3VzdG9taXplIHRoZSBiZWhhdmlvciBvZgot QGNvZGV7ZGlzcGxheS1idWZmZXJ9IGlzIGJ5IHVzaW5nIHRoZSBvcHRpb24gQGNvZGV7ZGlz cGxheS1idWZmZXItYWxpc3R9Ci1tZW50aW9uZWQgaW4gdGhlIG5leHQgc2VjdGlvbi4KLQoK IEBub2RlIFRlbXBvcmFyeSBEaXNwbGF5cwogQHN1YnNlY3Rpb24gRGlzcGxheWluZyBub24t ZWRpdGFibGUgYnVmZmVycy4KLUBjaW5kZXggcG9wLXVwIHdpbmRvd3MKIEBjaW5kZXggdGVt cG9yYXJ5IHdpbmRvd3MKCiBTb21lIGJ1ZmZlcnMgYXJlIHNob3duIGluIHdpbmRvd3MgZm9y IHBlcnVzYWwgcmF0aGVyIHRoYW4gZm9yIGVkaXRpbmcuCkBAIC00NTksMjQgKzQ3OSwyMyBA QCBUZW1wb3JhcnkgRGlzcGxheXMKIGRpc3BsYXllZCBvbmx5IGZvciBhIHNob3J0IHBlcmlv ZCBvZiB0aW1lLgoKICAgTm9ybWFsbHksIEVtYWNzIGNob29zZXMgdGhlIHdpbmRvdyBmb3Ig c3VjaCB0ZW1wb3JhcnkgZGlzcGxheXMgdmlhCi1AY29kZXtkaXNwbGF5LWJ1ZmZlcn0gYXMg ZGVzY3JpYmVkIGFib3ZlLiAgVGhlIEBmaWxleypDb21wbGV0aW9ucyp9Ci1idWZmZXIsIG9u IHRoZSBvdGhlciBoYW5kLCBpcyBub3JtYWxseSBkaXNwbGF5ZWQgaW4gYSB3aW5kb3cgYXQg dGhlCi1ib3R0b20gb2YgdGhlIHNlbGVjdGVkIGZyYW1lLCByZWdhcmRsZXNzIG9mIHRoZSBu dW1iZXIgb2Ygd2luZG93cwotYWxyZWFkeSBzaG93biBvbiB0aGF0IGZyYW1lLgorQGNvZGV7 ZGlzcGxheS1idWZmZXJ9IGFzIGRlc2NyaWJlZCBpbiB0aGUgcHJldmlvdXMgc3Vic2VjdGlv bi4gIFRoZQorQGZpbGV7KkNvbXBsZXRpb25zKn0gYnVmZmVyLCBvbiB0aGUgb3RoZXIgaGFu ZCwgaXMgbm9ybWFsbHkgZGlzcGxheWVkCitpbiBhIHdpbmRvdyBhdCB0aGUgYm90dG9tIG9m IHRoZSBzZWxlY3RlZCBmcmFtZSwgcmVnYXJkbGVzcyBvZiB0aGUKK251bWJlciBvZiB3aW5k b3dzIGFscmVhZHkgc2hvd24gb24gdGhhdCBmcmFtZS4KCiAgIElmIHlvdSBwcmVmZXIgRW1h Y3MgdG8gZGlzcGxheSBhIHRlbXBvcmFyeSBidWZmZXIgaW4gYSBkaWZmZXJlbnQKIGZhc2hp b24sIHdlIHJlY29tbWVuZCBjdXN0b21pemluZyB0aGUgdmFyaWFibGUKIEBjb2Rle2Rpc3Bs YXktYnVmZmVyLWFsaXN0fSAoQHB4cmVme0Nob29zaW5nIFdpbmRvdywsQ2hvb3NpbmcgYSBX aW5kb3cKIGZvciBEaXNwbGF5LCBlbGlzcCwgVGhlIEVtYWNzIExpc3AgUmVmZXJlbmNlIE1h bnVhbH0pLiAgRm9yIGV4YW1wbGUsCi10byBkaXNwbGF5IEBmaWxleypDb21wbGV0aW9ucyp9 IGJ5IHNwbGl0dGluZyBhIHdpbmRvdyBhcyBkZXNjcmliZWQgaW4KLXRoZSBwcmV2aW91cyBz ZWN0aW9uLCB1c2UgdGhlIGZvbGxvd2luZyBmb3JtIGluIHlvdXIgaW5pdGlhbGl6YXRpb24K LWZpbGUgKEBweHJlZntJbml0IEZpbGV9KToKK3RvIGRpc3BsYXkgQGZpbGV7KkNvbXBsZXRp b25zKn0gYWx3YXlzIGJlbG93IHRoZSBzZWxlY3RlZCB3aW5kb3csIHVzZQordGhlIGZvbGxv d2luZyBmb3JtIGluIHlvdXIgaW5pdGlhbGl6YXRpb24gZmlsZSAoQHB4cmVme0luaXQgRmls ZX0pOgoKIEBleGFtcGxlCiBAZ3JvdXAKIChjdXN0b21pemUtc2V0LXZhcmlhYmxlCiAgJ2Rp c3BsYXktYnVmZmVyLWFsaXN0Ci0gJygoIlxcKkNvbXBsZXRpb25zXFwqIiBkaXNwbGF5LWJ1 ZmZlci1wb3AtdXAtd2luZG93KSkpCisgJygoIlxcKkNvbXBsZXRpb25zXFwqIiBkaXNwbGF5 LWJ1ZmZlci1iZWxvdy1zZWxlY3RlZCkpKQogQGVuZCBncm91cAogQGVuZCBleGFtcGxlCgpk aWZmIC0tZ2l0IGEvZG9jL2xpc3ByZWYvZWxpc3AudGV4aSBiL2RvYy9saXNwcmVmL2VsaXNw LnRleGkKaW5kZXggNmMzMTgyYi4uZTA5MzllNSAxMDA2NDQKLS0tIGEvZG9jL2xpc3ByZWYv ZWxpc3AudGV4aQorKysgYi9kb2MvbGlzcHJlZi9lbGlzcC50ZXhpCkBAIC0xMDQzLDkgKzEw NDMsNyBAQCBUb3AKICogQ3ljbGljIFdpbmRvdyBPcmRlcmluZzo6ICBNb3ZpbmcgYXJvdW5k IHRoZSBleGlzdGluZyB3aW5kb3dzLgogKiBCdWZmZXJzIGFuZCBXaW5kb3dzOjogICAgIEVh Y2ggd2luZG93IGRpc3BsYXlzIHRoZSBjb250ZW50cyBvZiBhIGJ1ZmZlci4KICogU3dpdGNo aW5nIEJ1ZmZlcnM6OiAgICAgICBIaWdoZXItbGV2ZWwgZnVuY3Rpb25zIGZvciBzd2l0Y2hp bmcgdG8gYSBidWZmZXIuCi0qIENob29zaW5nIFdpbmRvdzo6ICAgICAgICAgSG93IHRvIGNo b29zZSBhIHdpbmRvdyBmb3IgZGlzcGxheWluZyBhIGJ1ZmZlci4KLSogRGlzcGxheSBBY3Rp b24gRnVuY3Rpb25zOjogU3Vicm91dGluZXMgZm9yIEBjb2Rle2Rpc3BsYXktYnVmZmVyfS4K LSogQ2hvb3NpbmcgV2luZG93IE9wdGlvbnM6OiBFeHRyYSBvcHRpb25zIGFmZmVjdGluZyBo b3cgYnVmZmVycyBhcmUgZGlzcGxheWVkLgorKiBEaXNwbGF5aW5nIEJ1ZmZlcnM6OiAgICAg IERpc3BsYXlpbmcgYSBidWZmZXIgaW4gYSBzdWl0YWJsZSB3aW5kb3cuCiAqIFdpbmRvdyBI aXN0b3J5OjogICAgICAgICAgRWFjaCB3aW5kb3cgcmVtZW1iZXJzIHRoZSBidWZmZXJzIGRp c3BsYXllZCBpbiBpdC4KICogRGVkaWNhdGVkIFdpbmRvd3M6OiAgICAgICBIb3cgdG8gYXZv aWQgZGlzcGxheWluZyBhbm90aGVyIGJ1ZmZlciBpbgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYSBzcGVjaWZpYyB3aW5kb3cuCkBAIC0xMDY3LDYgKzEwNjUsMTggQEAgVG9w CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWRpc3BsYXkgZ29pbmcgcGFzdCBh IGNlcnRhaW4gcG9pbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvciB3aW5k b3cgY29uZmlndXJhdGlvbiBjaGFuZ2VzLgoKK0Rpc3BsYXlpbmcgQnVmZmVycworCisqIENo b29zaW5nIFdpbmRvdzo6ICAgICAgICAgSG93IHRvIGNob29zZSBhIHdpbmRvdyBmb3IgZGlz cGxheWluZyBhIGJ1ZmZlci4KKyogQWN0aW9uIEZ1bmN0aW9uczo6ICAgICAgICBTdXBwb3J0 IGZ1bmN0aW9ucyBmb3IgYnVmZmVyIGRpc3BsYXkuCisqIEFjdGlvbiBBbGlzdHM6OiAgICAg ICAgICAgQWxpc3RzIGZvciBmaW5lLXR1bmluZyBidWZmZXIgZGlzcGxheQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYWN0aW9uIGZ1bmN0aW9ucy4KKyogQ2hvb3NpbmcgV2lu ZG93IE9wdGlvbnM6OiBFeHRyYSBvcHRpb25zIGFmZmVjdGluZyBob3cgYnVmZmVycyBhcmUg ZGlzcGxheWVkLgorKiBQcmVjZWRlbmNlIG9mIEFjdGlvbiBGdW5jdGlvbnM6OiBBIHR1dG9y aWFsIGV4cGxhaW5pbmcgdGhlIHByZWNlZGVuY2Ugb2YKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJ1ZmZlciBkaXNwbGF5IGFjdGlvbiBmdW5jdGlvbnMuCisqIFRoZSBaZW4g b2YgQnVmZmVyIERpc3BsYXk6OiBIb3cgdG8gYXZvaWQgdGhhdCBidWZmZXJzIGdldCBsb3N0 IGluIGJldHdlZW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd3MuCisK IFNpZGUgV2luZG93cwoKICogRGlzcGxheWluZyBCdWZmZXJzIGluIFNpZGUgV2luZG93czo6 IEFuIGFjdGlvbiBmdW5jdGlvbiBmb3IgZGlzcGxheWluZwpkaWZmIC0tZ2l0IGEvZG9jL2xp c3ByZWYvZnJhbWVzLnRleGkgYi9kb2MvbGlzcHJlZi9mcmFtZXMudGV4aQppbmRleCAxZTAw OGRhLi4zMWZiN2NlIDEwMDY0NAotLS0gYS9kb2MvbGlzcHJlZi9mcmFtZXMudGV4aQorKysg Yi9kb2MvbGlzcHJlZi9mcmFtZXMudGV4aQpAQCAtMzE5OCwxMSArMzE5OCwxMCBAQCBDaGls ZCBGcmFtZXMKIEBjb2Rle2RyYWctd2l0aC1tb2RlLWxpbmV9IHBhcmFtZXRlci4KCiAgIFdo ZW4gYSBjaGlsZCBmcmFtZSBpcyB1c2VkIGZvciBkaXNwbGF5aW5nIGEgYnVmZmVyIHZpYQot QGNvZGV7ZGlzcGxheS1idWZmZXItaW4tY2hpbGQtZnJhbWV9IChAcHhyZWZ7RGlzcGxheSBB Y3Rpb24gRnVuY3Rpb25zfSksCi10aGUgZnJhbWUncyBAY29kZXthdXRvLWhpZGUtZnVuY3Rp b259IHBhcmFtZXRlciAoQHB4cmVme0ZyYW1lCi1JbnRlcmFjdGlvbiBQYXJhbWV0ZXJzfSkg Y2FuIGJlIHNldCB0byBhIGZ1bmN0aW9uLCBpbiBvcmRlciB0bwotYXBwcm9wcmlhdGVseSBk ZWFsIHdpdGggdGhlIGZyYW1lIHdoZW4gdGhlIHdpbmRvdyBkaXNwbGF5aW5nIHRoZSBidWZm ZXIKLXNoYWxsIGJlIHF1aXQuCitAY29kZXtkaXNwbGF5LWJ1ZmZlci1pbi1jaGlsZC1mcmFt ZX0gKEBweHJlZntBY3Rpb24gRnVuY3Rpb25zfSksIHRoZQorZnJhbWUncyBAY29kZXthdXRv LWhpZGUtZnVuY3Rpb259IHBhcmFtZXRlciAoQHB4cmVme0ZyYW1lIEludGVyYWN0aW9uCitQ YXJhbWV0ZXJzfSkgY2FuIGJlIHNldCB0byBhIGZ1bmN0aW9uLCBpbiBvcmRlciB0byBhcHBy b3ByaWF0ZWx5IGRlYWwKK3dpdGggdGhlIGZyYW1lIHdoZW4gdGhlIHdpbmRvdyBkaXNwbGF5 aW5nIHRoZSBidWZmZXIgc2hhbGwgYmUgcXVpdC4KCiAgIFdoZW4gYSBjaGlsZCBmcmFtZSBp cyB1c2VkIGR1cmluZyBtaW5pYnVmZmVyIGludGVyYWN0aW9uLCBmb3IgZXhhbXBsZSwKIHRv IGRpc3BsYXkgY29tcGxldGlvbnMgaW4gYSBzZXBhcmF0ZSB3aW5kb3csIHRoZSBAY29kZXtt aW5pYnVmZmVyLWV4aXR9CmRpZmYgLS1naXQgYS9kb2MvbGlzcHJlZi93aW5kb3dzLnRleGkg Yi9kb2MvbGlzcHJlZi93aW5kb3dzLnRleGkKaW5kZXggMjY1MDY3MS4uYzE0YzQ0MSAxMDA2 NDQKLS0tIGEvZG9jL2xpc3ByZWYvd2luZG93cy50ZXhpCisrKyBiL2RvYy9saXNwcmVmL3dp bmRvd3MudGV4aQpAQCAtMjUsOSArMjUsNyBAQCBXaW5kb3dzCiAqIEN5Y2xpYyBXaW5kb3cg T3JkZXJpbmc6OiAgTW92aW5nIGFyb3VuZCB0aGUgZXhpc3Rpbmcgd2luZG93cy4KICogQnVm ZmVycyBhbmQgV2luZG93czo6ICAgICBFYWNoIHdpbmRvdyBkaXNwbGF5cyB0aGUgY29udGVu dHMgb2YgYSBidWZmZXIuCiAqIFN3aXRjaGluZyBCdWZmZXJzOjogICAgICAgSGlnaGVyLWxl dmVsIGZ1bmN0aW9ucyBmb3Igc3dpdGNoaW5nIHRvIGEgYnVmZmVyLgotKiBDaG9vc2luZyBX aW5kb3c6OiAgICAgICAgIEhvdyB0byBjaG9vc2UgYSB3aW5kb3cgZm9yIGRpc3BsYXlpbmcg YSBidWZmZXIuCi0qIERpc3BsYXkgQWN0aW9uIEZ1bmN0aW9uczo6IFN1YnJvdXRpbmVzIGZv ciBAY29kZXtkaXNwbGF5LWJ1ZmZlcn0uCi0qIENob29zaW5nIFdpbmRvdyBPcHRpb25zOjog RXh0cmEgb3B0aW9ucyBhZmZlY3RpbmcgaG93IGJ1ZmZlcnMgYXJlIGRpc3BsYXllZC4KKyog RGlzcGxheWluZyBCdWZmZXJzOjogICAgICBEaXNwbGF5aW5nIGEgYnVmZmVyIGluIGEgc3Vp dGFibGUgd2luZG93LgogKiBXaW5kb3cgSGlzdG9yeTo6ICAgICAgICAgIEVhY2ggd2luZG93 IHJlbWVtYmVycyB0aGUgYnVmZmVycyBkaXNwbGF5ZWQgaW4gaXQuCiAqIERlZGljYXRlZCBX aW5kb3dzOjogICAgICAgSG93IHRvIGF2b2lkIGRpc3BsYXlpbmcgYW5vdGhlciBidWZmZXIg aW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgc3BlY2lmaWMgd2luZG93LgpA QCAtMTYyLDYgKzE2MCw3IEBAIEJhc2ljIFdpbmRvd3MKIGluIHRoZSBncm91cCkuCiBAZW5k IGRlZnVuCgorCiBAbm9kZSBXaW5kb3dzIGFuZCBGcmFtZXMKIEBzZWN0aW9uIFdpbmRvd3Mg YW5kIEZyYW1lcwoKQEAgLTE1NDIsMTEgKzE1NDEsMTEgQEAgUmVjb21iaW5pbmcgV2luZG93 cwogd2luZG93IGlzIGNyZWF0ZWQgYW55d2F5KS4KCiBAaXRlbSB3aW5kb3ctc2l6ZQotVGhp cyBtZWFucyB0aGF0IEBjb2Rle2Rpc3BsYXktYnVmZmVyfSBtYWtlcyBhIG5ldyBwYXJlbnQg d2luZG93IHdoZW4gaXQKLXNwbGl0cyBhIHdpbmRvdyBhbmQgaXMgcGFzc2VkIGEgQGNvZGV7 d2luZG93LWhlaWdodH0gb3IKLUBjb2Rle3dpbmRvdy13aWR0aH0gZW50cnkgaW4gdGhlIEB2 YXJ7YWxpc3R9IGFyZ3VtZW50IChAcHhyZWZ7RGlzcGxheQotQWN0aW9uIEZ1bmN0aW9uc30p LiAgT3RoZXJ3aXNlLCB3aW5kb3cgc3BsaXR0aW5nIGJlaGF2ZXMgYXMgZm9yIGEgdmFsdWUK LW9mIEBjb2Rle25pbH0uCitUaGlzIG1lYW5zIHRoYXQgQGNvZGV7ZGlzcGxheS1idWZmZXJ9 IG1ha2VzIGEgbmV3IHBhcmVudCB3aW5kb3cgd2hlbgoraXQgc3BsaXRzIGEgd2luZG93IGFu ZCBpcyBwYXNzZWQgYSBAY29kZXt3aW5kb3ctaGVpZ2h0fSBvcgorQGNvZGV7d2luZG93LXdp ZHRofSBlbnRyeSBpbiB0aGUgQHZhcnthbGlzdH0gYXJndW1lbnQgKEBweHJlZntBY3Rpb24K K0Z1bmN0aW9uc30pLiAgT3RoZXJ3aXNlLCB3aW5kb3cgc3BsaXR0aW5nIGJlaGF2ZXMgYXMg Zm9yIGEgdmFsdWUgb2YKK0Bjb2Rle25pbH0uCgogQGl0ZW0gdGVtcC1idWZmZXItcmVzaXpl CiBJbiB0aGlzIGNhc2UgQGNvZGV7d2l0aC10ZW1wLWJ1ZmZlci13aW5kb3d9IG1ha2VzIGEg bmV3IHBhcmVudCB3aW5kb3cKQEAgLTE4NzksNyArMTg3OCw3IEBAIEN5Y2xpYyBXaW5kb3cg T3JkZXJpbmcKIEBjaW5kZXggb3JkZXJpbmcgb2Ygd2luZG93cywgY3ljbGljCiBAY2luZGV4 IHdpbmRvdyBvcmRlcmluZywgY3ljbGljCgotICBXaGVuIHlvdSB1c2UgdGhlIGNvbW1hbmQg QGtiZHtDLXggb30gKEBjb2Rle290aGVyLXdpbmRvd30pIHRvIHNlbGVjdAorICBXaGVuIHlv dSB1c2UgdGhlIGNvbW1hbmQgQHd7QGtiZHtDLXggb319IChAY29kZXtvdGhlci13aW5kb3d9 KSB0byBzZWxlY3QKIHNvbWUgb3RoZXIgd2luZG93LCBpdCBtb3ZlcyB0aHJvdWdoIGxpdmUg d2luZG93cyBpbiBhIHNwZWNpZmljIG9yZGVyLgogRm9yIGFueSBnaXZlbiBjb25maWd1cmF0 aW9uIG9mIHdpbmRvd3MsIHRoaXMgb3JkZXIgbmV2ZXIgdmFyaWVzLiAgSXQKIGlzIGNhbGxl ZCB0aGUgQGRmbntjeWNsaWMgb3JkZXJpbmcgb2Ygd2luZG93c30uCkBAIC0xODk5LDcgKzE4 OTgsNyBAQCBDeWNsaWMgV2luZG93IE9yZGVyaW5nCiBUaGUgb3B0aW9uYWwgYXJndW1lbnQg QHZhcnttaW5pYnVmfSBzcGVjaWZpZXMgd2hldGhlciBtaW5pYnVmZmVyIHdpbmRvd3MKIHNo b3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgY3ljbGljIG9yZGVyaW5nLiAgTm9ybWFsbHksIHdo ZW4gQHZhcnttaW5pYnVmfQogaXMgQGNvZGV7bmlsfSwgYSBtaW5pYnVmZmVyIHdpbmRvdyBp cyBpbmNsdWRlZCBvbmx5IGlmIGl0IGlzIGN1cnJlbnRseQotYWN0aXZlOyB0aGlzIG1hdGNo ZXMgdGhlIGJlaGF2aW9yIG9mIEBrYmR7Qy14IG99LiAgKE5vdGUgdGhhdCBhCithY3RpdmU7 IHRoaXMgbWF0Y2hlcyB0aGUgYmVoYXZpb3Igb2YgQHd7QGtiZHtDLXggb319LiAgKE5vdGUg dGhhdCBhCiBtaW5pYnVmZmVyIHdpbmRvdyBpcyBhY3RpdmUgYXMgbG9uZyBhcyBpdHMgbWlu aWJ1ZmZlciBpcyBpbiB1c2U7IHNlZQogQHJlZntNaW5pYnVmZmVyc30pLgoKQEAgLTIzMjcs MTAgKzIzMjYsMzkgQEAgU3dpdGNoaW5nIEJ1ZmZlcnMKIEBlbmQgZGVmZm4KCgorQG5vZGUg RGlzcGxheWluZyBCdWZmZXJzCitAc2VjdGlvbiBEaXNwbGF5aW5nIGEgQnVmZmVyIGluIGEg U3VpdGFibGUgV2luZG93CisKK0luIHRoaXMgc2VjdGlvbiB3ZSBkZXNjcmliZSBob3cgRW1h Y3MgZmluZHMgb3IgY3JlYXRlcyBhIHdpbmRvdworc3VpdGFibGUgZm9yIGRpc3BsYXlpbmcg YSBidWZmZXIuICBXZSBmaXJzdCBpbnRyb2R1Y2UgdGhlIGZ1bmN0aW9uCitAY29kZXtkaXNw bGF5LWJ1ZmZlcn0tLS10aGUgd29ya2hvcnNlIGZvciBjaG9vc2luZyBzdWNoIGEgd2luZG93 LgorTmV4dCwgYWN0aW9uIGZ1bmN0aW9ucy0tLWF1eGlsaWFyeSBmdW5jdGlvbnMgY2FsbGVk IGJ5CitAY29kZXtkaXNwbGF5LWJ1ZmZlcn0gdG8gZmluZCBvciBjcmVhdGUgYSBzdWl0YWJs ZSB3aW5kb3ctLS1hcmUKK3ByZXNlbnRlZC4gIFRoZW4gd2UgZGVzY3JpYmUgYWN0aW9uIGFs aXN0cy0tLXNwZWNpYWwgYXNzb2NpYXRpb24gbGlzdHMKK3VzZWQgdG8gZmluZS10dW5lIHRo ZSBiZWhhdmlvciBvZiBhY3Rpb24gZnVuY3Rpb25zLgorCisgICBXZSBjb250aW51ZSB3aXRo IHRoZSBkZXNjcmlwdGlvbiBvZiBhZGRpdGlvbmFsIG9wdGlvbnMgdG8gY3VzdG9taXplCit0 aGUgYmVoYXZpb3Igb2YgQGNvZGV7ZGlzcGxheS1idWZmZXJ9LiAgVGhlbiBhIHNlcmllcyBv ZiBleGFtcGxlcyB3aWxsCit0cnkgdG8gZXhwbGFpbiB0aGUgcHJlY2VkZW5jZSBhbW9uZyBh Y3Rpb24gZnVuY3Rpb25zIGluIGEgc2luZ2xlIGNhbGwKK29mIEBjb2Rle2Rpc3BsYXktYnVm ZmVyfS4gIFdlIGNvbmNsdWRlIHRoaXMgc2VjdGlvbiB3aXRoIHNvbWUKK2d1aWRlbGluZXMg Zm9yIG1hbmFnaW5nIHRoZSBjb21wbGV4aXR5IG9mIGJ1ZmZlciBkaXNwbGF5LgorCitAbWVu dQorKiBDaG9vc2luZyBXaW5kb3c6OiAgICAgICAgIEhvdyB0byBjaG9vc2UgYSB3aW5kb3cg Zm9yIGRpc3BsYXlpbmcgYSBidWZmZXIuCisqIEFjdGlvbiBGdW5jdGlvbnM6OiAgICAgICAg U3VwcG9ydCBmdW5jdGlvbnMgZm9yIGJ1ZmZlciBkaXNwbGF5LgorKiBBY3Rpb24gQWxpc3Rz OjogICAgICAgICAgIEFsaXN0cyBmb3IgZmluZS10dW5pbmcgYnVmZmVyIGRpc3BsYXkuCisq IENob29zaW5nIFdpbmRvdyBPcHRpb25zOjogRXh0cmEgb3B0aW9ucyBhZmZlY3RpbmcgaG93 IGJ1ZmZlcnMgYXJlIGRpc3BsYXllZC4KKyogUHJlY2VkZW5jZSBvZiBBY3Rpb24gRnVuY3Rp b25zOjogRXhhbXBsZXMgdG8gZXhwbGFpbiB0aGUgcHJlY2VkZW5jZSBvZgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYWN0aW9uIGZ1bmN0aW9ucy4KKyogVGhlIFplbiBvZiBC dWZmZXIgRGlzcGxheTo6IEhvdyB0byBhdm9pZCB0aGF0IGJ1ZmZlcnMgZ2V0IGxvc3QgaW4g YmV0d2VlbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93cy4KK0BlbmQg bWVudQorCisKIEBub2RlIENob29zaW5nIFdpbmRvdwotQHNlY3Rpb24gQ2hvb3NpbmcgYSBX aW5kb3cgZm9yIERpc3BsYXkKK0BzdWJzZWN0aW9uIENob29zaW5nIGEgV2luZG93IGZvciBE aXNwbGF5aW5nIGEgQnVmZmVyCgotICBUaGUgY29tbWFuZCBAY29kZXtkaXNwbGF5LWJ1ZmZl cn0gZmxleGlibHkgY2hvb3NlcyBhIHdpbmRvdyBmb3IKK1RoZSBjb21tYW5kIEBjb2Rle2Rp c3BsYXktYnVmZmVyfSBmbGV4aWJseSBjaG9vc2VzIGEgd2luZG93IGZvcgogZGlzcGxheSwg YW5kIGRpc3BsYXlzIGEgc3BlY2lmaWVkIGJ1ZmZlciBpbiB0aGF0IHdpbmRvdy4gIEl0IGNh biBiZQogY2FsbGVkIGludGVyYWN0aXZlbHksIHZpYSB0aGUga2V5IGJpbmRpbmcgQGtiZHtD LXggNCBDLW99LiAgSXQgaXMgYWxzbwogdXNlZCBhcyBhIHN1YnJvdXRpbmUgYnkgbWFueSBm dW5jdGlvbnMgYW5kIGNvbW1hbmRzLCBpbmNsdWRpbmcKQEAgLTIzNTEsOCArMjM3OSw5IEBA IENob29zaW5nIFdpbmRvdwogYW4gYWN0aW9uIGFsaXN0LiAgSXQgYXR0ZW1wdHMgdG8gZGlz cGxheSB0aGUgYnVmZmVyIGluIHNvbWUgd2luZG93LAogcGlja2luZyBvciBjcmVhdGluZyBh IHdpbmRvdyBhY2NvcmRpbmcgdG8gaXRzIG93biBjcml0ZXJpYS4gIElmCiBzdWNjZXNzZnVs LCBpdCByZXR1cm5zIHRoZSB3aW5kb3c7IG90aGVyd2lzZSwgaXQgcmV0dXJucyBAY29kZXtu aWx9LgotQHhyZWZ7RGlzcGxheSBBY3Rpb24gRnVuY3Rpb25zfSwgZm9yIGEgbGlzdCBvZiBw cmVkZWZpbmVkIGFjdGlvbgotZnVuY3Rpb25zLgorQHhyZWZ7QWN0aW9uIEZ1bmN0aW9uc30s IGZvciBhIGxpc3Qgb2YgcHJlZGVmaW5lZCBhY3Rpb24gZnVuY3Rpb25zLgorQHhyZWZ7QWN0 aW9uIEFsaXN0c30sIGZvciBhIGxpc3Qgb2YgYWN0aW9uIGFsaXN0IGVudHJpZXMgcmVjb2du aXplZCBieQordGhlc2UgZnVuY3Rpb25zLgoKICAgQGNvZGV7ZGlzcGxheS1idWZmZXJ9IHdv cmtzIGJ5IGNvbWJpbmluZyBkaXNwbGF5IGFjdGlvbnMgZnJvbQogc2V2ZXJhbCBzb3VyY2Vz LCBhbmQgY2FsbGluZyB0aGUgYWN0aW9uIGZ1bmN0aW9ucyBpbiB0dXJuLCB1bnRpbCBvbmUK QEAgLTIzNjQsMTEgKzIzOTMsMTMgQEAgQ2hvb3NpbmcgV2luZG93CiBzZWxlY3RpbmcgdGhl IHdpbmRvdyBvciBtYWtpbmcgdGhlIGJ1ZmZlciBjdXJyZW50LiAgVGhlIGFyZ3VtZW50CiBA dmFye2J1ZmZlci1vci1uYW1lfSBtdXN0IGJlIGEgYnVmZmVyIG9yIHRoZSBuYW1lIG9mIGFu IGV4aXN0aW5nCiBidWZmZXIuICBUaGUgcmV0dXJuIHZhbHVlIGlzIHRoZSB3aW5kb3cgY2hv c2VuIHRvIGRpc3BsYXkgdGhlIGJ1ZmZlci4KK0l0IGlzIEBjb2Rle25pbH0gaWYgbm8gc3Vp dGFibGUgd2luZG93IHdhcyBmb3VuZC4KCiBUaGUgb3B0aW9uYWwgYXJndW1lbnQgQHZhcnth Y3Rpb259LCBpZiBub24tQGNvZGV7bmlsfSwgc2hvdWxkIG5vcm1hbGx5CiBiZSBhIGRpc3Bs YXkgYWN0aW9uIChkZXNjcmliZWQgYWJvdmUpLiAgQGNvZGV7ZGlzcGxheS1idWZmZXJ9IGJ1 aWxkcyBhCiBsaXN0IG9mIGFjdGlvbiBmdW5jdGlvbnMgYW5kIGFuIGFjdGlvbiBhbGlzdCwg YnkgY29uc29saWRhdGluZyBkaXNwbGF5Ci1hY3Rpb25zIGZyb20gdGhlIGZvbGxvd2luZyBz b3VyY2VzIChpbiBvcmRlcik6CithY3Rpb25zIGZyb20gdGhlIGZvbGxvd2luZyBzb3VyY2Vz IChpbiBvcmRlciBvZiB0aGVpciBwcmVjZWRlbmNlLAoraGlnaGVzdCByYW5raW5nIGZpcnN0 KToKCiBAaXRlbWl6ZQogQGl0ZW0KQEAgLTIzODgsMTIgKzI0MTksMzUgQEAgQ2hvb3Npbmcg V2luZG93CiBAZW5kIGl0ZW1pemUKCiBAbm9pbmRlbnQKLUVhY2ggYWN0aW9uIGZ1bmN0aW9u IGlzIGNhbGxlZCBpbiB0dXJuLCBwYXNzaW5nIHRoZSBidWZmZXIgYXMgdGhlCi1maXJzdCBh cmd1bWVudCBhbmQgdGhlIGNvbWJpbmVkIGFjdGlvbiBhbGlzdCBhcyB0aGUgc2Vjb25kIGFy Z3VtZW50LAotdW50aWwgb25lIG9mIHRoZSBmdW5jdGlvbnMgcmV0dXJucyBub24tQGNvZGV7 bmlsfS4gIFRoZSBjYWxsZXIgY2FuCi1wYXNzIEBjb2RleyhhbGxvdy1uby13aW5kb3cgLiB0 KX0gYXMgYW4gZWxlbWVudCBvZiB0aGUgYWN0aW9uIGFsaXN0IHRvCi1pbmRpY2F0ZSBpdHMg cmVhZGluZXNzIHRvIGhhbmRsZSB0aGUgY2FzZSBvZiBub3QgZGlzcGxheWluZyB0aGUKLWJ1 ZmZlciBpbiBhIHdpbmRvdy4KK0luIHByYWN0aWNlIHRoaXMgbWVhbnMgdGhhdCBAY29kZXtk aXNwbGF5LWJ1ZmZlcn0gYnVpbGRzIGEgbGlzdCBvZiBhbGwKK2FjdGlvbiBmdW5jdGlvbnMg c3BlY2lmaWVkIGJ5IHRoZXNlIGRpc3BsYXkgYWN0aW9ucy4gIFRoZSBmaXJzdAorZWxlbWVu dCBvZiB0aGlzIGxpc3QgaXMgdGhlIGZpcnN0IGFjdGlvbiBmdW5jdGlvbiBzcGVjaWZpZWQg YnkKK0Bjb2Rle2Rpc3BsYXktYnVmZmVyLW92ZXJyaWRpbmctYWN0aW9ufSwgaWYgYW55LiAg VGhlIGxhc3QgZWxlbWVudCBvZgordGhpcyBsaXN0IGlzIEBjb2Rle2Rpc3BsYXktYnVmZmVy LXBvcC11cC1mcmFtZX0tLS10aGUgbGFzdCBhY3Rpb24KK2Z1bmN0aW9uIHNwZWNpZmllZCBi eSBAY29kZXtkaXNwbGF5LWJ1ZmZlci1mYWxsYmFjay1hY3Rpb259LgorRHVwbGljYXRlcyBh cmUgbm90IHJlbW92ZWQgZnJvbSB0aGlzIGxpc3QtLS1oZW5jZSB0aGUgc2FtZSBhY3Rpb24K K2Z1bmN0aW9uIG1heSBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMgZHVyaW5nIG9uZSBjYWxs IG9mCitAY29kZXtkaXNwbGF5LWJ1ZmZlcn0uCisKK0Bjb2Rle2Rpc3BsYXktYnVmZmVyfSBj YWxscyB0aGUgYWN0aW9uIGZ1bmN0aW9ucyBzcGVjaWZpZWQgYnkgdGhpcworbGlzdCBpbiB0 dXJuLCBwYXNzaW5nIHRoZSBidWZmZXIgYXMgdGhlIGZpcnN0IGFyZ3VtZW50IGFuZCB0aGUK K2NvbWJpbmVkIGFjdGlvbiBhbGlzdCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50LCB1bnRpbCBv bmUgb2YgdGhlCitmdW5jdGlvbnMgcmV0dXJucyBub24tQGNvZGV7bmlsfS4KKworTm90ZSB0 aGF0IHRoZSBzZWNvbmQgYXJndW1lbnQgaXMgYWx3YXlzIHRoZSBsaXN0IG9mIEBlbXBoe2Fs bH0gYWN0aW9uCithbGlzdCBlbnRyaWVzIHNwZWNpZmllZCBieSB0aGUgc291cmNlcyBuYW1l ZCBhYm92ZS4gIEhlbmNlLCB0aGUgZmlyc3QKK2VsZW1lbnQgb2YgdGhpcyBsaXN0IGlzIHRo ZSBmaXJzdCBhY3Rpb24gYWxpc3QgZW50cnkgc3BlY2lmaWVkIGJ5CitAY29kZXtkaXNwbGF5 LWJ1ZmZlci1vdmVycmlkaW5nLWFjdGlvbn0sIGlmIGFueS4gIFRoZSBsYXN0IGVsZW1lbnQg b2YKK3RoaXMgbGlzdCBpcyB0aGUgbGFzdCBhbGlzdCBlbnRyeSBzcGVjaWZpZWQgYnkKK0Bj b2Rle2Rpc3BsYXktYnVmZmVyLWJhc2UtYWN0aW9ufSwgaWYgYW55ICh0aGUgYWN0aW9uIGFs aXN0IHNwZWNpZmllZAorYnkgQGNvZGV7ZGlzcGxheS1idWZmZXItZmFsbGJhY2stYWN0aW9u fSBpcyBlbXB0eSkuCisKK05vdGUgYWxzbywgdGhhdCB0aGUgY29tYmluZWQgYWN0aW9uIGFs aXN0IG1heSBjb250YWluIGR1cGxpY2F0ZQorZW50cmllcyBhbmQgZW50cmllcyBmb3IgdGhl IHNhbWUga2V5IHdpdGggZGlmZmVyZW50IHZhbHVlcy4gIEFzIGEKK3J1bGUsIGFjdGlvbiBm dW5jdGlvbnMgYWx3YXlzIHVzZSB0aGUgZmlyc3QgYXNzb2NpYXRpb24gZm9yIGVhY2gga2V5 CitzbyB1c2VycyBtYXkgbm90IGV4cGVjdCB0aGF0IHRoZSBhc3NvY2lhdGlvbiBmb3VuZCBi eSB0aGUgYWN0aW9uCitmdW5jdGlvbiBpcyB0aGUgb25lIHByb3ZpZGVkIGJ5IHRoZSBzYW1l IGRpc3BsYXkgYWN0aW9uLAorc2VlIEByZWZ7UHJlY2VkZW5jZSBvZiBBY3Rpb24gRnVuY3Rp b25zfSBmb3IgYW4gZXhhbXBsZS4KCiBUaGUgYXJndW1lbnQgQHZhcnthY3Rpb259IGNhbiBh bHNvIGhhdmUgYSBub24tQGNvZGV7bmlsfSwgbm9uLWxpc3QKIHZhbHVlLiAgVGhpcyBoYXMg dGhlIHNwZWNpYWwgbWVhbmluZyB0aGF0IHRoZSBidWZmZXIgc2hvdWxkIGJlCkBAIC0yNDA0 LDggKzI0NTgsOCBAQCBDaG9vc2luZyBXaW5kb3cKIFRoZSBvcHRpb25hbCBhcmd1bWVudCBA dmFye2ZyYW1lfSwgaWYgbm9uLUBjb2Rle25pbH0sIHNwZWNpZmllcyB3aGljaAogZnJhbWVz IHRvIGNoZWNrIHdoZW4gZGVjaWRpbmcgd2hldGhlciB0aGUgYnVmZmVyIGlzIGFscmVhZHkg ZGlzcGxheWVkLgogSXQgaXMgZXF1aXZhbGVudCB0byBhZGRpbmcgYW4gZWxlbWVudCBAY29k ZXsocmV1c2FibGUtZnJhbWVzCi0uIEB2YXJ7ZnJhbWV9KX0gdG8gdGhlIGFjdGlvbiBhbGlz dCBvZiBAdmFye2FjdGlvbn0uICBAeHJlZntEaXNwbGF5Ci1BY3Rpb24gRnVuY3Rpb25zfS4K Ky4gQHZhcntmcmFtZX0pfSB0byB0aGUgYWN0aW9uIGFsaXN0IG9mIEB2YXJ7YWN0aW9ufSAo QHB4cmVme0FjdGlvbgorQWxpc3RzfSkuCiBAZW5kIGRlZmZuCgogQGRlZnZhciBkaXNwbGF5 LWJ1ZmZlci1vdmVycmlkaW5nLWFjdGlvbgpAQCAtMjQzNywxMyArMjQ5MSwxNiBAQCBDaG9v c2luZyBXaW5kb3cKIEBlbmQgZGVmdnIKCgotQG5vZGUgRGlzcGxheSBBY3Rpb24gRnVuY3Rp b25zCi1Ac2VjdGlvbiBBY3Rpb24gRnVuY3Rpb25zIGZvciBAY29kZXtkaXNwbGF5LWJ1ZmZl cn0KK0Bub2RlIEFjdGlvbiBGdW5jdGlvbnMKK0BzdWJzZWN0aW9uIEFjdGlvbiBGdW5jdGlv bnMgZm9yIEJ1ZmZlciBEaXNwbGF5CgogVGhlIGZvbGxvd2luZyBiYXNpYyBhY3Rpb24gZnVu Y3Rpb25zIGFyZSBkZWZpbmVkIGluIEVtYWNzLiAgRWFjaCBvZgogdGhlc2UgZnVuY3Rpb25z IHRha2VzIHR3byBhcmd1bWVudHM6IEB2YXJ7YnVmZmVyfSwgdGhlIGJ1ZmZlciB0bwotZGlz cGxheSwgYW5kIEB2YXJ7YWxpc3R9LCBhbiBhY3Rpb24gYWxpc3QuICBFYWNoIGFjdGlvbiBm dW5jdGlvbgotcmV0dXJucyB0aGUgd2luZG93IGlmIGl0IHN1Y2NlZWRzLCBhbmQgQGNvZGV7 bmlsfSBpZiBpdCBmYWlscy4KK2Rpc3BsYXksIGFuZCBAdmFye2FsaXN0fSwgYW4gYWN0aW9u IGFsaXN0LiAgQXMgYSBydWxlLCBlYWNoIGFjdGlvbgorZnVuY3Rpb24gaXMgc3VwcG9zZWQg dG8gcmV0dXJuIGEgd2luZG93IGRpc3BsYXlpbmcgQHZhcntidWZmZXJ9IGlmIGl0CitzdWNj ZWVkcyBhbmQgQGNvZGV7bmlsfSBpZiBpdCBmYWlscyAoZm9yIHRoZSBzb2xlIGV4Y2VwdGlv biB0byB0aGlzCitydWxlIHNlZSB0aGUgbGFzdCBmdW5jdGlvbiBsaXN0ZWQKK2JlbG93LS0t QGNvZGV7ZGlzcGxheS1idWZmZXItbm8td2luZG93fSkuCgogQGRlZnVuIGRpc3BsYXktYnVm ZmVyLXNhbWUtd2luZG93IGJ1ZmZlciBhbGlzdAogVGhpcyBmdW5jdGlvbiB0cmllcyB0byBk aXNwbGF5IEB2YXJ7YnVmZmVyfSBpbiB0aGUgc2VsZWN0ZWQgd2luZG93LgpAQCAtMjQ1Myw1 NyArMjUxMCwxMDMgQEAgRGlzcGxheSBBY3Rpb24gRnVuY3Rpb25zCiBAZW5kIGRlZnVuCgog QGRlZnVuIGRpc3BsYXktYnVmZmVyLXJldXNlLXdpbmRvdyBidWZmZXIgYWxpc3QKLVRoaXMg ZnVuY3Rpb24gdHJpZXMgdG8gZGlzcGxheSBAdmFye2J1ZmZlcn0gYnkgZmluZGluZyBhIHdp bmRvdwotdGhhdCBpcyBhbHJlYWR5IGRpc3BsYXlpbmcgaXQuCitUaGlzIGZ1bmN0aW9uIHRy aWVzIHRvIGRpc3BsYXkgQHZhcntidWZmZXJ9IGJ5IGZpbmRpbmcgYSB3aW5kb3cgdGhhdAor aXMgYWxyZWFkeSBkaXNwbGF5aW5nIGl0LgoKIElmIEB2YXJ7YWxpc3R9IGhhcyBhIG5vbi1A Y29kZXtuaWx9IEBjb2Rle2luaGliaXQtc2FtZS13aW5kb3d9IGVudHJ5LAotdGhlIHNlbGVj dGVkIHdpbmRvdyBpcyBub3QgZWxpZ2libGUgZm9yIHJldXNlLiAgSWYgQHZhcnthbGlzdH0K LWNvbnRhaW5zIGEgQGNvZGV7cmV1c2FibGUtZnJhbWVzfSBlbnRyeSwgaXRzIHZhbHVlIGRl dGVybWluZXMgd2hpY2gKLWZyYW1lcyB0byBzZWFyY2ggZm9yIGEgcmV1c2FibGUgd2luZG93 OgotCi1AaXRlbWl6ZSBAYnVsbGV0Ci1AaXRlbQotQGNvZGV7bmlsfSBtZWFucyBjb25zaWRl ciB3aW5kb3dzIG9uIHRoZSBzZWxlY3RlZCBmcmFtZS4KLShBY3R1YWxseSwgdGhlIGxhc3Qg bm9uLW1pbmlidWZmZXIgZnJhbWUuKQotQGl0ZW0KLUBjb2Rle3R9IG1lYW5zIGNvbnNpZGVy IHdpbmRvd3Mgb24gYWxsIGZyYW1lcy4KLUBpdGVtCi1AY29kZXt2aXNpYmxlfSBtZWFucyBj b25zaWRlciB3aW5kb3dzIG9uIGFsbCB2aXNpYmxlIGZyYW1lcy4KLUBpdGVtCi0wIG1lYW5z IGNvbnNpZGVyIHdpbmRvd3Mgb24gYWxsIHZpc2libGUgb3IgaWNvbmlmaWVkIGZyYW1lcy4K LUBpdGVtCi1BIGZyYW1lIG1lYW5zIGNvbnNpZGVyIHdpbmRvd3Mgb24gdGhhdCBmcmFtZSBv bmx5LgotQGVuZCBpdGVtaXplCi0KLU5vdGUgdGhhdCB0aGVzZSBtZWFuaW5ncyBkaWZmZXIg c2xpZ2h0bHkgZnJvbSB0aG9zZSBvZiB0aGUKLUB2YXJ7YWxsLWZyYW1lc30gYXJndW1lbnQg dG8gQGNvZGV7bmV4dC13aW5kb3d9IChAcHhyZWZ7Q3ljbGljIFdpbmRvdwotT3JkZXJpbmd9 KS4KLQotSWYgQHZhcnthbGlzdH0gY29udGFpbnMgbm8gQGNvZGV7cmV1c2FibGUtZnJhbWVz fSBlbnRyeSwgdGhpcyBmdW5jdGlvbgotbm9ybWFsbHkgc2VhcmNoZXMganVzdCB0aGUgc2Vs ZWN0ZWQgZnJhbWU7IGhvd2V2ZXIsIGlmIHRoZSB2YXJpYWJsZQotQGNvZGV7cG9wLXVwLWZy YW1lc30gaXMgbm9uLUBjb2Rle25pbH0sIGl0IHNlYXJjaGVzIGFsbCBmcmFtZXMgb24gdGhl Ci1jdXJyZW50IHRlcm1pbmFsLiAgQHhyZWZ7Q2hvb3NpbmcgV2luZG93IE9wdGlvbnN9Lgor dGhlIHNlbGVjdGVkIHdpbmRvdyBpcyBub3QgZWxpZ2libGUgZm9yIHJldXNlLiAgVGhlIHNl dCBvZiBmcmFtZXMgdG8KK3NlYXJjaCBmb3IgYSB3aW5kb3cgYWxyZWFkeSBkaXNwbGF5aW5n IEB2YXJ7YnVmZmVyfSBjYW4gYmUgc3BlY2lmaWVkCit3aXRoIHRoZSBoZWxwIG9mIGEgQGNv ZGV7cmV1c2FibGUtZnJhbWVzfSBhY3Rpb24gYWxpc3QgZW50cnkKKyhAcHhyZWZ7QWN0aW9u IEFsaXN0c30pLiAgSWYgQHZhcnthbGlzdH0gY29udGFpbnMgbm8KK0Bjb2Rle3JldXNhYmxl LWZyYW1lc30gZW50cnksIHRoaXMgZnVuY3Rpb24gc2VhcmNoZXMganVzdCB0aGUgc2VsZWN0 ZWQKK2ZyYW1lLgoKLUlmIHRoaXMgZnVuY3Rpb24gY2hvb3NlcyBhIHdpbmRvdyBvbiBhbm90 aGVyIGZyYW1lLCBpdCBtYWtlcyB0aGF0IGZyYW1lCi12aXNpYmxlIGFuZCwgdW5sZXNzIEB2 YXJ7YWxpc3R9IGNvbnRhaW5zIGFuIEBjb2Rle2luaGliaXQtc3dpdGNoLWZyYW1lfQotZW50 cnkgKEBweHJlZntDaG9vc2luZyBXaW5kb3cgT3B0aW9uc30pLCByYWlzZXMgdGhhdCBmcmFt ZSBpZiBuZWNlc3NhcnkuCitJZiB0aGlzIGZ1bmN0aW9uIGNob29zZXMgYSB3aW5kb3cgb24g YW5vdGhlciBmcmFtZSwgaXQgbWFrZXMgdGhhdAorZnJhbWUgdmlzaWJsZSBhbmQsIHVubGVz cyBAdmFye2FsaXN0fSBjb250YWlucyBhbgorQGNvZGV7aW5oaWJpdC1zd2l0Y2gtZnJhbWV9 IGVudHJ5IChAcHhyZWZ7QWN0aW9uIEFsaXN0c30pLCByYWlzZXMgdGhhdAorZnJhbWUgaWYg bmVjZXNzYXJ5LgogQGVuZCBkZWZ1bgoKIEBkZWZ1biBkaXNwbGF5LWJ1ZmZlci1yZXVzZS1t b2RlLXdpbmRvdyBidWZmZXIgYWxpc3QKIFRoaXMgZnVuY3Rpb24gdHJpZXMgdG8gZGlzcGxh eSBAdmFye2J1ZmZlcn0gYnkgZmluZGluZyBhIHdpbmRvdwogdGhhdCBpcyBkaXNwbGF5aW5n IGEgYnVmZmVyIGluIGEgZ2l2ZW4gbW9kZS4KCi1JZiBAdmFye2FsaXN0fSBjb250YWlucyBh IEBjb2Rle21vZGV9IGVudHJ5LCBpdHMgdmFsdWUgaXMgYSBtYWpvciBtb2RlCi0oYSBzeW1i b2wpIG9yIGEgbGlzdCBvZiBtYWpvciBtb2Rlcy4gIElmIEB2YXJ7YWxpc3R9IGNvbnRhaW5z IG5vCi1AY29kZXttb2RlfSBlbnRyeSwgdGhlIGN1cnJlbnQgbWFqb3IgbW9kZSBvZiBAdmFy e2J1ZmZlcn0gaXMgdXNlZC4gIEEKLXdpbmRvdyBpcyBhIGNhbmRpZGF0ZSBpZiBpdCBkaXNw bGF5cyBhIGJ1ZmZlciB0aGF0IGRlcml2ZXMgZnJvbSBvbmUgb2YKLXRoZSBnaXZlbiBtb2Rl cy4KK0lmIEB2YXJ7YWxpc3R9IGNvbnRhaW5zIGEgQGNvZGV7bW9kZX0gZW50cnksIGl0cyB2 YWx1ZSBzcGVjaWZlcyBhCittYWpvciBtb2RlIChhIHN5bWJvbCkgb3IgYSBsaXN0IG9mIG1h am9yIG1vZGVzLiAgSWYgQHZhcnthbGlzdH0KK2NvbnRhaW5zIG5vIEBjb2Rle21vZGV9IGVu dHJ5LCB0aGUgY3VycmVudCBtYWpvciBtb2RlIG9mIEB2YXJ7YnVmZmVyfQoraXMgdXNlZCBp bnN0ZWFkLiAgQSB3aW5kb3cgaXMgYSBjYW5kaWRhdGUgaWYgaXQgZGlzcGxheXMgYSBidWZm ZXIKK3dob3NlIG1vZGUgZGVyaXZlcyBmcm9tIG9uZSBvZiB0aGUgbW9kZXMgc3BlY2lmaWVk IHRodXNseS4KCi1UaGUgYmVoYXZpb3IgaXMgYWxzbyBjb250cm9sbGVkIGJ5IGVudHJpZXMg Zm9yCitUaGUgYmVoYXZpb3IgaXMgYWxzbyBjb250cm9sbGVkIGJ5IGFsaXN0IGVudHJpZXMg Zm9yCiBAY29kZXtpbmhpYml0LXNhbWUtd2luZG93fSwgQGNvZGV7cmV1c2FibGUtZnJhbWVz fSBhbmQKLUBjb2Rle2luaGliaXQtc3dpdGNoLWZyYW1lfSBhcyBpcyBkb25lIGluIHRoZSBm dW5jdGlvbgotQGNvZGV7ZGlzcGxheS1idWZmZXItcmV1c2Utd2luZG93fS4KK0Bjb2Rle2lu aGliaXQtc3dpdGNoLWZyYW1lfSAoQHB4cmVme0FjdGlvbiBBbGlzdHN9KSBhcyBpcyBkb25l IGluIHRoZQorZnVuY3Rpb24gQGNvZGV7ZGlzcGxheS1idWZmZXItcmV1c2Utd2luZG93fS4K K0BlbmQgZGVmdW4KCitAZGVmdW4gZGlzcGxheS1idWZmZXItcG9wLXVwLXdpbmRvdyBidWZm ZXIgYWxpc3QKK1RoaXMgZnVuY3Rpb24gdHJpZXMgdG8gZGlzcGxheSBAdmFye2J1ZmZlcn0g Ynkgc3BsaXR0aW5nIHRoZSBsYXJnZXN0CitvciBsZWFzdCByZWNlbnRseS11c2VkIHdpbmRv dyAodHlwaWNhbGx5IG9uZSBvbiB0aGUgc2VsZWN0ZWQgZnJhbWUpLgorSXQgYWN0dWFsbHkg cGVyZm9ybXMgdGhlIHNwbGl0IGJ5IGNhbGxpbmcgdGhlIGZ1bmN0aW9uIHNwZWNpZmllZCBi eQorQGNvZGV7c3BsaXQtd2luZG93LXByZWZlcnJlZC1mdW5jdGlvbn0gKEBweHJlZntDaG9v c2luZyBXaW5kb3cKK09wdGlvbnN9KS4KKworVGhlIHNpemUgb2YgdGhlIG5ldyB3aW5kb3cg Y2FuIGJlIGFkanVzdGVkIGJ5IHN1cHBseWluZworQGNvZGV7d2luZG93LWhlaWdodH0gYW5k IEBjb2Rle3dpbmRvdy13aWR0aH0gZW50cmllcyBpbiBAdmFye2FsaXN0fQorKEBweHJlZntB Y3Rpb24gQWxpc3RzfSkuICBJZiBAdmFye2FsaXN0fSBjb250YWlucyBhCitAY29kZXtwcmVz ZXJ2ZS1zaXplfSBlbnRyeSAoQHB4cmVme0FjdGlvbiBBbGlzdHN9KSwgRW1hY3Mgd2lsbCB0 cnkgdG8KK3ByZXNlcnZlIHRoZSBzaXplIG9mIHRoZSBuZXcgd2luZG93IGR1cmluZyBmdXR1 cmUgcmVzaXplIG9wZXJhdGlvbnMKKyhAcHhyZWZ7UHJlc2VydmluZyBXaW5kb3cgU2l6ZXN9 KS4KKworVGhpcyBmdW5jdGlvbiBmYWlscyBpZiBubyB3aW5kb3cgY2FuIGJlIHNwbGl0LiAg TW9yZSBvZnRlbiB0aGFuIG5vdAordGhpcyBoYXBwZW5zIGJlY2F1c2Ugbm8gd2luZG93IGlz IGxhcmdlIGVub3VnaCB0byBhbGxvdyBzcGxpdHRpbmcuCitTZXR0aW5nIEBjb2Rle3NwbGl0 LWhlaWdodC10aHJlc2hvbGR9IG9yIEBjb2Rle3NwbGl0LXdpZHRoLXRocmVzaG9sZH0KKyhA cHhyZWZ7Q2hvb3NpbmcgV2luZG93IE9wdGlvbnN9KSB0byBhIGxvd2VyIHZhbHVlIG1heSBo ZWxwIGluIHRoaXMKK3JlZ2FyZC4gIEl0IGFsc28gaGFwcGVucyB3aGVuIHRoZSBzZWxlY3Rl ZCBmcmFtZSBoYXMgYW4KK0Bjb2Rle3Vuc3BsaXR0YWJsZX0gZnJhbWUgcGFyYW1ldGVyOyBA cHhyZWZ7QnVmZmVyIFBhcmFtZXRlcnN9LgorQGVuZCBkZWZ1bgorCitAZGVmdW4gZGlzcGxh eS1idWZmZXItaW4tcHJldmlvdXMtd2luZG93IGJ1ZmZlciBhbGlzdAorVGhpcyBmdW5jdGlv biB0cmllcyB0byBkaXNwbGF5IEB2YXJ7YnVmZmVyfSBpbiBhIHdpbmRvdyBwcmV2aW91c2x5 CitzaG93aW5nIGl0LiAgSWYgQHZhcnthbGlzdH0gaGFzIGEgbm9uLUBjb2Rle25pbH0KK0Bj b2Rle2luaGliaXQtc2FtZS13aW5kb3d9IGVudHJ5LCB0aGUgc2VsZWN0ZWQgd2luZG93IGlz IG5vdCBlbGlnaWJsZQorZm9yIHJldXNlLiAgSWYgQHZhcnthbGlzdH0gY29udGFpbnMgYSBA Y29kZXtyZXVzYWJsZS1mcmFtZXN9IGVudHJ5LAoraXRzIHZhbHVlIGRldGVybWluZXMgd2hp Y2ggZnJhbWVzIHRvIHNlYXJjaCBmb3IgYSBzdWl0YWJsZSB3aW5kb3cKKyhAcHhyZWZ7QWN0 aW9uIEFsaXN0c30pLgorCitJZiBAdmFye2FsaXN0fSBoYXMgYSBAY29kZXtwcmV2aW91cy13 aW5kb3d9IGVudHJ5IGFuZCB0aGUgd2luZG93CitzcGVjaWZpZWQgYnkgdGhhdCBlbnRyeSBp cyBsaXZlIGFuZCBub3QgZGVkaWNhdGVkIHRvIGFub3RoZXIgYnVmZmVyLAordGhhdCB3aW5k b3cgd2lsbCBiZSBwcmVmZXJyZWQsIGV2ZW4gaWYgaXQgbmV2ZXIgc2hvd2VkIEB2YXJ7YnVm ZmVyfQorYmVmb3JlLgorQGVuZCBkZWZ1bgorCitAZGVmdW4gZGlzcGxheS1idWZmZXItdXNl LXNvbWUtd2luZG93IGJ1ZmZlciBhbGlzdAorVGhpcyBmdW5jdGlvbiB0cmllcyB0byBkaXNw bGF5IEB2YXJ7YnVmZmVyfSBieSBjaG9vc2luZyBhbiBleGlzdGluZword2luZG93IGFuZCBk aXNwbGF5aW5nIHRoZSBidWZmZXIgaW4gdGhhdCB3aW5kb3cuICBJdCBjYW4gZmFpbCBpZiBh bGwKK3dpbmRvd3MgYXJlIGRlZGljYXRlZCB0byBhbm90aGVyIGJ1ZmZlciAoQHB4cmVme0Rl ZGljYXRlZCBXaW5kb3dzfSkuCitAZW5kIGRlZnVuCisKK0BkZWZ1biBkaXNwbGF5LWJ1ZmZl ci1iZWxvdy1zZWxlY3RlZCBidWZmZXIgYWxpc3QKK1RoaXMgZnVuY3Rpb24gdHJpZXMgdG8g ZGlzcGxheSBAdmFye2J1ZmZlcn0gaW4gYSB3aW5kb3cgYmVsb3cgdGhlCitzZWxlY3RlZCB3 aW5kb3cuICBJZiB0aGVyZSBpcyBhIHdpbmRvdyBiZWxvdyB0aGUgc2VsZWN0ZWQgb25lIGFu ZCB0aGF0Cit3aW5kb3cgYWxyZWFkeSBkaXNwbGF5cyBAdmFye2J1ZmZlcn0sIGl0IHJldXNl cyB0aGF0IHdpbmRvdy4KKworSWYgdGhlcmUgaXMgbm8gc3VjaCB3aW5kb3csIHRoaXMgZnVu Y3Rpb24gdHJpZXMgdG8gY3JlYXRlIGEgbmV3IHdpbmRvdworYnkgc3BsaXR0aW5nIHRoZSBz ZWxlY3RlZCBvbmUgYW5kIGRpc3BsYXkgQHZhcntidWZmZXJ9IHRoZXJlLiAgSXQgd2lsbAor YWxzbyBhZGp1c3QgdGhhdCB3aW5kb3cncyBzaXplIHByb3ZpZGVkIEB2YXJ7YWxpc3R9IGNv bnRhaW5zIGEgc3VpdGFibGUKK0Bjb2Rle3dpbmRvdy1oZWlnaHR9IG9yIEBjb2Rle3dpbmRv dy13aWR0aH0gZW50cnksIHNlZSBhYm92ZS4KKworSWYgc3BsaXR0aW5nIHRoZSBzZWxlY3Rl ZCB3aW5kb3cgZmFpbHMgYW5kIHRoZXJlIGlzIGEgbm9uLWRlZGljYXRlZAord2luZG93IGJl bG93IHRoZSBzZWxlY3RlZCBvbmUgc2hvd2luZyBzb21lIG90aGVyIGJ1ZmZlciwgaXQgdXNl cyB0aGF0Cit3aW5kb3cgZm9yIHNob3dpbmcgQHZhcntidWZmZXJ9LgorQGVuZCBkZWZ1bgor CitAZGVmdW4gZGlzcGxheS1idWZmZXItYXQtYm90dG9tIGJ1ZmZlciBhbGlzdAorVGhpcyBm dW5jdGlvbiB0cmllcyB0byBkaXNwbGF5IEB2YXJ7YnVmZmVyfSBpbiBhIHdpbmRvdyBhdCB0 aGUgYm90dG9tCitvZiB0aGUgc2VsZWN0ZWQgZnJhbWUuCisKK1RoaXMgZWl0aGVyIHNwbGl0 cyB0aGUgd2luZG93IGF0IHRoZSBib3R0b20gb2YgdGhlIGZyYW1lIG9yIHRoZQorZnJhbWUn cyByb290IHdpbmRvdywgb3IgcmV1c2VzIGFuIGV4aXN0aW5nIHdpbmRvdyBhdCB0aGUgYm90 dG9tIG9mIHRoZQorc2VsZWN0ZWQgZnJhbWUuCiBAZW5kIGRlZnVuCgogQGRlZnVuIGRpc3Bs YXktYnVmZmVyLXBvcC11cC1mcmFtZSBidWZmZXIgYWxpc3QKQEAgLTI1MzcsMTEgKzI2NDAs MTIgQEAgRGlzcGxheSBBY3Rpb24gRnVuY3Rpb25zCiBAZGVmdW4gZGlzcGxheS1idWZmZXIt dXNlLXNvbWUtZnJhbWUgYnVmZmVyIGFsaXN0CiBUaGlzIGZ1bmN0aW9uIHRyaWVzIHRvIGRp c3BsYXkgQHZhcntidWZmZXJ9IGJ5IHRyeWluZyB0byBmaW5kIGEKIGZyYW1lIHRoYXQgbWVl dHMgYSBwcmVkaWNhdGUgKGJ5IGRlZmF1bHQgYW55IGZyYW1lIG90aGVyIHRoYW4gdGhlCi1j dXJyZW50IGZyYW1lKS4KK3NlbGVjdGVkIGZyYW1lKS4KCi1JZiB0aGlzIGZ1bmN0aW9uIGNo b29zZXMgYSB3aW5kb3cgb24gYW5vdGhlciBmcmFtZSwgaXQgbWFrZXMgdGhhdCBmcmFtZQot dmlzaWJsZSBhbmQsIHVubGVzcyBAdmFye2FsaXN0fSBjb250YWlucyBhbiBAY29kZXtpbmhp Yml0LXN3aXRjaC1mcmFtZX0KLWVudHJ5IChAcHhyZWZ7Q2hvb3NpbmcgV2luZG93IE9wdGlv bnN9KSwgcmFpc2VzIHRoYXQgZnJhbWUgaWYgbmVjZXNzYXJ5LgorSWYgdGhpcyBmdW5jdGlv biBjaG9vc2VzIGEgd2luZG93IG9uIGFub3RoZXIgZnJhbWUsIGl0IG1ha2VzIHRoYXQKK2Zy YW1lIHZpc2libGUgYW5kLCB1bmxlc3MgQHZhcnthbGlzdH0gY29udGFpbnMgYW4KK0Bjb2Rl e2luaGliaXQtc3dpdGNoLWZyYW1lfSBlbnRyeSAoQHB4cmVme0FjdGlvbiBBbGlzdHN9KSwg cmFpc2VzIHRoYXQKK2ZyYW1lIGlmIG5lY2Vzc2FyeS4KCiBJZiBAdmFye2FsaXN0fSBoYXMg YSBub24tQGNvZGV7bmlsfSBAY29kZXtmcmFtZS1wcmVkaWNhdGV9IGVudHJ5LCBpdHMKIHZh bHVlIGlzIGEgZnVuY3Rpb24gdGFraW5nIG9uZSBhcmd1bWVudCAoYSBmcmFtZSksIHJldHVy bmluZwpAQCAtMjU0OSwyMDcgKzI2NTMsMjIwIEBAIERpc3BsYXkgQWN0aW9uIEZ1bmN0aW9u cwogZGVmYXVsdCBwcmVkaWNhdGUuCgogSWYgQHZhcnthbGlzdH0gaGFzIGEgbm9uLUBjb2Rl e25pbH0gQGNvZGV7aW5oaWJpdC1zYW1lLXdpbmRvd30gZW50cnksCi10aGUgc2VsZWN0ZWQg d2luZG93IGlzIHVzZWQ7IHRodXMgaWYgdGhlIHNlbGVjdGVkIGZyYW1lIGhhcyBhIHNpbmds ZQotd2luZG93LCBpdCBpcyBub3QgdXNlZC4KK3RoZSBzZWxlY3RlZCB3aW5kb3cgaXMgbm90 IHVzZWQ7IHRodXMgaWYgdGhlIHNlbGVjdGVkIGZyYW1lIGhhcyBhCitzaW5nbGUgd2luZG93 LCBpdCBpcyBub3QgdXNlZC4KIEBlbmQgZGVmdW4KCi1AZGVmdW4gZGlzcGxheS1idWZmZXIt cG9wLXVwLXdpbmRvdyBidWZmZXIgYWxpc3QKLVRoaXMgZnVuY3Rpb24gdHJpZXMgdG8gZGlz cGxheSBAdmFye2J1ZmZlcn0gYnkgc3BsaXR0aW5nIHRoZSBsYXJnZXN0Ci1vciBsZWFzdCBy ZWNlbnRseS11c2VkIHdpbmRvdyAodHlwaWNhbGx5IG9uZSBvbiB0aGUgc2VsZWN0ZWQgZnJh bWUpLgotSXQgYWN0dWFsbHkgcGVyZm9ybXMgdGhlIHNwbGl0IGJ5IGNhbGxpbmcgdGhlIGZ1 bmN0aW9uIHNwZWNpZmllZCBpbgotQGNvZGV7c3BsaXQtd2luZG93LXByZWZlcnJlZC1mdW5j dGlvbn0gKEBweHJlZntDaG9vc2luZyBXaW5kb3cKLU9wdGlvbnN9KS4KK0BkZWZ1biBkaXNw bGF5LWJ1ZmZlci1uby13aW5kb3cgYnVmZmVyIGFsaXN0CitJZiBAdmFye2FsaXN0fSBoYXMg YSBub24tQGNvZGV7bmlsfSBAY29kZXthbGxvdy1uby13aW5kb3d9IGVudHJ5LCB0aGVuCit0 aGlzIGZ1bmN0aW9uIGRvZXMgbm90IGRpc3BsYXkgQGNvZGV7YnVmZmVyfSBhbmQgcmV0dXJu cyB0aGUgc3ltYm9sCitAY29kZXtmYWlsfS4gIFRoaXMgd2lsbCBza2lwIHRoZSBleGN1dGlv biBvZiBhbnkgZnVydGhlciBkaXNwbGF5CithY3Rpb25zIGFuZCBjYXVzZSBAY29kZXtkaXNw bGF5LWJ1ZmZlcn0gdG8gcmV0dXJuIEBjb2Rle25pbH0uCgotVGhlIHNpemUgb2YgdGhlIG5l dyB3aW5kb3cgY2FuIGJlIGFkanVzdGVkIGJ5IHN1cHBseWluZwotQGNvZGV7d2luZG93LWhl aWdodH0gYW5kIEBjb2Rle3dpbmRvdy13aWR0aH0gZW50cmllcyBpbiBAdmFye2FsaXN0fS4g IFRvCi1hZGp1c3QgdGhlIHdpbmRvdydzIGhlaWdodCwgdXNlIGFuIGVudHJ5IHdob3NlIEBz Y3tjYXJ9IGlzCi1AY29kZXt3aW5kb3ctaGVpZ2h0fSBhbmQgd2hvc2UgQHNje2Nkcn0gaXMg b25lIG9mOgorICAgSXQgaXMgYXNzdW1lZCB0aGF0IHdoZW4gYSBjYWxsIG9mIEBjb2Rle2Rp c3BsYXktYnVmZmVyfSBzcGVjaWZpZXMgYQorbm9uLUBjb2Rle25pbH0gQGNvZGV7YWxsb3ct bm8td2luZG93fSBlbnRyeSwgdGhlIGNhbGxlciBjYW4gaGFuZGxlIGEKK0Bjb2Rle25pbH0g cmV0dXJuIHZhbHVlLgorQGVuZCBkZWZ1bgorCitJZiB0aGUgQHZhcnthbGlzdH0gYXJndW1l bnQgb2YgYW55IG9mIHRoZXNlIGZ1bmN0aW9ucyBjb250YWlucyBhCitAY29kZXt3aW5kb3ct cGFyYW1ldGVyc30gZW50cnksIEBjb2Rle2Rpc3BsYXktYnVmZmVyfSBhc3NpZ25zIHRoZQor ZWxlbWVudHMgb2YgdGhlIGFzc29jaWF0ZWQgdmFsdWUgYXMgd2luZG93IHBhcmFtZXRlcnMg b2YgdGhlIGNob3Nlbgord2luZG93LgorCisKK0Bub2RlIEFjdGlvbiBBbGlzdHMKK0BzdWJz ZWN0aW9uIEFjdGlvbiBBbGlzdHMgZm9yIEJ1ZmZlciBEaXNwbGF5CisKK0FuIGFjdGlvbiBh bGlzdCAoQHB4cmVme0Nob29zaW5nIFdpbmRvd30pIGlzIGFuIGFzc29jaWF0aW9uIGxpc3QK K21hcHBpbmcgcHJlZGVmaW5lZCBzeW1ib2xzIHJlY29nbml6ZWQgYnkgYWN0aW9uIGZ1bmN0 aW9ucyB0byB2YWx1ZXMKK3RoZXNlIGZ1bmN0aW9ucyBhcmUgc3VwcG9zZWQgdG8gaW50ZXJw cmV0IGFjY29yZGluZ2x5LiAgSW4gZWFjaCBjYWxsLAorQGNvZGV7ZGlzcGxheS1idWZmZXJ9 IGJ1aWxkcyBhIG5ldywgcG9zc2libHkgZW1wdHksIGFjdGlvbiBhbGlzdCBhbmQKK3Bhc3Nl cyB0aGF0IGVudGlyZSBsaXN0IG9uIHRvIHRoZSBhY3Rpb24gZnVuY3Rpb25zIGl0IGNhbGxz LgorCisgICBCeSBkZXNpZ24sIGFjdGlvbiBmdW5jdGlvbnMgYXJlIGZyZWUgaW4gdGhlaXIg aW50ZXJwcmV0YXRpb24gb2YKK2FjdGlvbiBhbGlzdCBlbnRyaWVzLiAgSW4gZmFjdCwgc29t ZSBlbnRyaWVzIGxpa2UKK0Bjb2Rle2FsbG93LW5vLXdpbmRvd30gb3IgQGNvZGV7cHJldmlv dXMtd2luZG93fSBoYXZlIGEgbWVhbmluZyBvbmx5Citmb3Igb25lIG9yIGEgZmV3IGFjdGlv biBmdW5jdGlvbnMgYW5kIGFyZSBpZ25vcmVkIGJ5IHRoZSByZXN0LiAgT3RoZXIKK2VudHJp ZXMsIGxpa2UgQGNvZGV7aW5oaWJpdC1zYW1lLXdpbmRvd30gb3IgQGNvZGV7d2luZG93LXBh cmFtZXRlcnN9LAorYXJlIHN1cHBvc2VkIHRvIGJlIHJlc3BlY3RlZCBieSBtb3N0IGFjdGlv biBmdW5jdGlvbnMgaW5jbHVkaW5nIHRob3NlCitwcm92aWRlZCBieSBhcHBsaWNhdGlvbiBw cm9ncmFtcyBhbmQgZXh0ZXJuYWwgcGFja2FnZXMuCisKKyAgIEluIHRoZSBwcmV2aW91cyBz dWJzZWN0aW9uIHdlIGhhdmUgZGVzY3JpYmVkIGluIGRldGFpbCBob3cKK2luZGl2aWR1YWwg YWN0aW9uIGZ1bmN0aW9ucyBpbnRlcnByZXQgdGhlIGFjdGlvbiBhbGlzdCBlbnRyaWVzIHRo ZXkKK2NhcmUgYWJvdXQuICBIZXJlIHdlIGdpdmUgYSByZWZlcmVuY2UgbGlzdCBvZiBhbGwg a25vd24gYWN0aW9uIGFsaXN0CitlbnRyaWVzIGFjY29yZGluZyB0byB0aGVpciBzeW1ib2xz LCB0b2dldGhlciB3aXRoIHRoZWlyIHZhbHVlcyBhbmQKK2FjdGlvbiBmdW5jdGlvbnMgdGhh dCByZWNvZ25pemUgdGhlbS4gIFRocm91Z2hvdXQgdGhpcyBsaXN0LCB0aGUgdGVybXMKK2Bg YnVmZmVyJycgd2lsbCByZWZlciB0byB0aGUgYnVmZmVyIEBjb2Rle2Rpc3BsYXktYnVmZmVy fSBpcyBzdXBwb3NlZAordG8gZGlzcGxheSBhbmQgYGB2YWx1ZScnIHRvIHRoZSBlbnRyeSdz IHZhbHVlLgorCitAdGFibGUgQGNvZGUKK0BpdGVtIGFsbG93LW5vLXdpbmRvdworSWYgdGhl IHZhbHVlIGlzIG5vbi1AY29kZXtuaWx9LCBAY29kZXtkaXNwbGF5LWJ1ZmZlcn0gZG9lcyBu b3QKK25lY2Vzc2FyaWx5IGhhdmUgdG8gZGlzcGxheSB0aGUgYnVmZmVyIGFuZCB0aGUgY2Fs bGVyIGlzIHByZXBhcmVkIHRvCithY2NlcHQgdGhhdC4gIFRoaXMgZW50cnkgaXMgbm90IGlu dGVuZGVkIGZvciB1c2VyIGN1c3RvbWl6YXRpb25zIHNpbmNlCit0aGVyZSBpcyBubyBndWFy YW50ZWUgdGhhdCBhbiBhcmJpdHJhcnkgY2FsbGVyIG9mCitAY29kZXtkaXNwbGF5LWJ1ZmZl cn0gd2lsbCBiZSBhYmxlIHRvIGhhbmRsZSB0aGUgY2FzZSB0aGF0IG5vIHdpbmRvdword2ls bCBkaXNwbGF5IHRoZSBidWZmZXIuICBAY29kZXtkaXNwbGF5LWJ1ZmZlci1uby13aW5kb3d9 IGlzIHRoZSBvbmx5CithY3Rpb24gZnVuY3Rpb24gdGhhdCBjYXJlcyBhYm91dCB0aGlzIGVu dHJ5LgorCitAaXRlbSBpbmhpYml0LXNhbWUtd2luZG93CitJZiB0aGUgdmFsdWUgaXMgbm9u LUBjb2Rle25pbH0sIHRoaXMgc2lnbmFscyB0aGF0IHRoZSBzZWxlY3RlZCB3aW5kb3cKK211 c3Qgbm90IGJlIHVzZWQgZm9yIGRpc3BsYXlpbmcgdGhlIGJ1ZmZlci4gIEFsbCBhY3Rpb24g ZnVuY3Rpb25zIHRoYXQKKyhyZS0pdXNlIGFuIGV4aXN0aW5nIHdpbmRvdyByZXNwZWN0IHRo aXMgZW50cnkuCisKK0BpdGVtIHByZXZpb3VzLXdpbmRvdworVGhlIHZhbHVlIG11c3Qgc3Bl Y2lmeSBhIHdpbmRvdyB0aGF0IG1heSBoYXZlIGRpc3BsYXllZCB0aGUgYnVmZmVyCitwcmV2 aW91c2x5LiAgQGNvZGV7ZGlzcGxheS1idWZmZXItaW4tcHJldmlvdXMtd2luZG93fSB3aWxs IGdpdmUKK3ByZWZlcmVuY2UgdG8gc3VjaCBhIHdpbmRvdyBwcm92aWRlZCBpdCBpcyBzdGls bCBsaXZlIGFuZCBub3QKK2RlZGljYXRlZCB0byBhbm90aGVyIGJ1ZmZlci4KKworQGl0ZW0g bW9kZQorVGhlIHZhbHVlIGlzIGVpdGhlciBhIG1ham9yIG1vZGUgb3IgYSBsaXN0IG9mIG1h am9yIG1vZGVzLgorQGNvZGV7ZGlzcGxheS1idWZmZXItcmV1c2UtbW9kZS13aW5kb3d9IG1h eSByZXVzZSBhIHdpbmRvdyB3aGVuZXZlcgordGhlIHZhbHVlIHNwZWNpZmllZCBieSB0aGlz IGVudHJ5IG1hdGNoZXMgdGhlIG1ham9yIG1vZGUgb2YgdGhhdAord2luZG93J3MgYnVmZmVy LiAgT3RoZXIgYWN0aW9uIGZ1bmN0aW9ucyBpZ25vcmUgc3VjaCBlbnRyaWVzLgorCitAaXRl bSBmcmFtZS1wcmVkaWNhdGUKK1RoZSB2YWx1ZSBtdXN0IGJlIGEgZnVuY3Rpb24gdGFraW5n IG9uZSBhcmd1bWVudCAoYSBmcmFtZSksIHN1cHBvc2VkCit0byByZXR1cm4gbm9uLUBjb2Rl e25pbH0gaWYgdGhhdCBmcmFtZSBpcyBhIGNhbmRpZGF0ZSBmb3IgZGlzcGxheWluZwordGhl IGJ1ZmZlci4gIFRoaXMgZW50cnkgaXMgdXNlZCBieQorQGNvZGV7ZGlzcGxheS1idWZmZXIt dXNlLXNvbWUtZnJhbWV9LgorCitAaXRlbSBwb3AtdXAtZnJhbWUtcGFyYW1ldGVycworVGhl IHZhbHVlIHNwZWNpZmllcyBhbiBhbGlzdCBvZiBmcmFtZSBwYXJhbWV0ZXJzIHRvIGdpdmUg YSBuZXcgZnJhbWUsCitpZiBvbmUgaXMgY3JlYXRlZC4gIEBjb2Rle2Rpc3BsYXktYnVmZmVy LXBvcC11cC1mcmFtZX0gaXMgaXRzIG9uZSBhbmQKK29ubHkgb25lIGFkZHJlc3NlZS4KKwor QGl0ZW0gcmV1c2FibGUtZnJhbWVzCitUaGUgdmFsdWUgc3BlY2lmaWVzIHRoZSBmcmFtZShz KSB0byBzZWFyY2ggZm9yIGEgd2luZG93IHRoYXQgY2FuIGJlCityZXVzZWQgYmVjYXVzZSBp dCBhbHJlYWR5IGRpc3BsYXlzIHRoZSBidWZmZXIuICBJdCBjYW4gYmUgc2V0IGFzCitmb2xs b3dzOgorCitAaXRlbWl6ZSBAYnVsbGV0CitAaXRlbQorQGNvZGV7bmlsfSBtZWFucyBjb25z aWRlciBvbmx5IHdpbmRvd3Mgb24gdGhlIHNlbGVjdGVkIGZyYW1lLgorKEFjdHVhbGx5LCB0 aGUgbGFzdCBmcmFtZSB1c2VkIHRoYXQgaXMgbm90IGEgbWluaWJ1ZmZlci1vbmx5IGZyYW1l LikKK0BpdGVtCitAY29kZXt0fSBtZWFucyBjb25zaWRlciB3aW5kb3dzIG9uIGFsbCBmcmFt ZXMuCitAaXRlbQorQGNvZGV7dmlzaWJsZX0gbWVhbnMgY29uc2lkZXIgd2luZG93cyBvbiBh bGwgdmlzaWJsZSBmcmFtZXMuCitAaXRlbQorMCBtZWFucyBjb25zaWRlciB3aW5kb3dzIG9u IGFsbCB2aXNpYmxlIG9yIGljb25pZmllZCBmcmFtZXMuCitAaXRlbQorQSBmcmFtZSBtZWFu cyBjb25zaWRlciB3aW5kb3dzIG9uIHRoYXQgZnJhbWUgb25seS4KK0BlbmQgaXRlbWl6ZQor CitOb3RlIHRoYXQgdGhlIG1lYW5pbmcgb2YgQGNvZGV7bmlsfSBkaWZmZXJzIHNsaWdodGx5 IGZyb20gdGhhdCBvZiB0aGUKK0B2YXJ7YWxsLWZyYW1lc30gYXJndW1lbnQgdG8gQGNvZGV7 bmV4dC13aW5kb3d9IChAcHhyZWZ7Q3ljbGljIFdpbmRvdworT3JkZXJpbmd9KS4KKworQSBt YWpvciBjbGllbnQgb2YgdGhpcyBpcyBAY29kZXtkaXNwbGF5LWJ1ZmZlci1yZXVzZS13aW5k b3d9IGJ1dCBhbGwKK290aGVyIGFjdGlvbiBmdW5jdGlvbnMgdGhhdCB0cnkgdG8gcmV1c2Ug YSB3aW5kb3cgYXJlIGFmZmVjdGVkIGFzCit3ZWxsLgorCitAaXRlbSBpbmhpYml0LXN3aXRj aC1mcmFtZQorQSBub24tQGNvZGV7bmlsfSB2YWx1ZSBwcmV2ZW50cyBhbm90aGVyIGZyYW1l IGZyb20gYmVpbmcgcmFpc2VkIG9yCitzZWxlY3RlZCwgaWYgdGhlIHdpbmRvdyBjaG9zZW4g YnkgQGNvZGV7ZGlzcGxheS1idWZmZXJ9IGlzIGRpc3BsYXllZAordGhlcmUuICBQcmltYXJp bHkgYWZmZWN0ZWQgYnkgdGhpcyBhcmUKK0Bjb2Rle2Rpc3BsYXktYnVmZmVyLXVzZS1zb21l LWZyYW1lfSBhbmQKK0Bjb2Rle2Rpc3BsYXktYnVmZmVyLXJldXNlLXdpbmRvd30uCitAY29k ZXtkaXNwbGF5LWJ1ZmZlci1wb3AtdXAtZnJhbWV9IHNob3VsZCBiZSBhZmZlY3RlZCBhcyB3 ZWxsIGJ1dAordGhlcmUgaXMgbm8gZ3VhcmFudGVlIHRoYXQgdGhlIHdpbmRvdyBtYW5hZ2Vy IHdpbGwgbm90IG92ZXJyaWRlIGl0LgorCitAaXRlbSB3aW5kb3ctcGFyYW1ldGVycworVGhl IHZhbHVlIHNwZWNpZmllcyBhbiBhbGlzdCBvZiB3aW5kb3cgcGFyYW1ldGVycyB0byBnaXZl IHRoZSBjaG9zZW4KK3dpbmRvdy4gIEFsbCBhY3Rpb24gZnVuY3Rpb25zIHRoYXQgY2hvb3Nl IGEgd2luZG93IHNob3VsZCBwcm9jZXNzIHRoaXMKK2VudHJ5LgorCitAaXRlbSB3aW5kb3ct aGVpZ2h0CitUaGUgdmFsdWUgc3BlY2lmaWVzIHdoZXRoZXIgYW5kIGhvdyB0byBhZGp1c3Qg dGhlIGhlaWdodCBvZiB0aGUgY2hvc2VuCit3aW5kb3cgYW5kIGNhbiBiZSBwcm92aWRlZCBh cyBmb2xsb3dzOgoKIEBpdGVtaXplIEBidWxsZXQKIEBpdGVtCi1AY29kZXtuaWx9IG1lYW5z IHRvIGxlYXZlIHRoZSBoZWlnaHQgb2YgdGhlIG5ldyB3aW5kb3cgYWxvbmUuCitAY29kZXtu aWx9IG1lYW5zIHRvIGxlYXZlIHRoZSBoZWlnaHQgb2YgdGhlIGNob3NlbiB3aW5kb3cgYWxv bmUuCgogQGl0ZW0KLUEgbnVtYmVyIHNwZWNpZmllcyB0aGUgZGVzaXJlZCBoZWlnaHQgb2Yg dGhlIG5ldyB3aW5kb3cuICBBbiBpbnRlZ2VyCi1zcGVjaWZpZXMgdGhlIG51bWJlciBvZiBs aW5lcyBvZiB0aGUgd2luZG93LiAgQSBmbG9hdGluZy1wb2ludAorQSBudW1iZXIgc3BlY2lm aWVzIHRoZSBkZXNpcmVkIGhlaWdodCBvZiB0aGUgY2hvc2VuIHdpbmRvdy4gIEFuCitpbnRl Z2VyIHNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIGxpbmVzIG9mIHRoZSB3aW5kb3cuICBBIGZs b2F0aW5nLXBvaW50CiBudW1iZXIgZ2l2ZXMgdGhlIGZyYWN0aW9uIG9mIHRoZSB3aW5kb3cn cyBoZWlnaHQgd2l0aCByZXNwZWN0IHRvIHRoZQogaGVpZ2h0IG9mIHRoZSBmcmFtZSdzIHJv b3Qgd2luZG93LgoKIEBpdGVtCi1JZiB0aGUgQHNje2Nkcn0gc3BlY2lmaWVzIGEgZnVuY3Rp b24sIHRoYXQgZnVuY3Rpb24gaXMgY2FsbGVkIHdpdGggb25lCi1hcmd1bWVudDogdGhlIG5l dyB3aW5kb3cuICBUaGUgZnVuY3Rpb24gaXMgc3VwcG9zZWQgdG8gYWRqdXN0IHRoZQorSWYg dGhlIHZhbHVlIHNwZWNpZmllcyBhIGZ1bmN0aW9uLCB0aGF0IGZ1bmN0aW9uIGlzIGNhbGxl ZCB3aXRoIG9uZQorYXJndW1lbnQtLS10aGUgY2hvc2VuIHdpbmRvdy4gIFRoZSBmdW5jdGlv biBpcyBzdXBwb3NlZCB0byBhZGp1c3QgdGhlCiBoZWlnaHQgb2YgdGhlIHdpbmRvdzsgaXRz IHJldHVybiB2YWx1ZSBpcyBpZ25vcmVkLiAgU3VpdGFibGUgZnVuY3Rpb25zCiBhcmUgQGNv ZGV7c2hyaW5rLXdpbmRvdy1pZi1sYXJnZXItdGhhbi1idWZmZXJ9IGFuZAogQGNvZGV7Zml0 LXdpbmRvdy10by1idWZmZXJ9LCBzZWUgQHJlZntSZXNpemluZyBXaW5kb3dzfS4KIEBlbmQg aXRlbWl6ZQoKLVRvIGFkanVzdCB0aGUgd2luZG93J3Mgd2lkdGgsIHVzZSBhbiBlbnRyeSB3 aG9zZSBAc2N7Y2FyfSBpcwotQGNvZGV7d2luZG93LXdpZHRofSBhbmQgd2hvc2UgQHNje2Nk cn0gaXMgb25lIG9mOgorQWxsIGFjdGlvbiBmdW5jdGlvbnMgdGhhdCBjaG9vc2UgYSB3aW5k b3cgc2hvdWxkIHByb2Nlc3MgdGhpcyBlbnRyeS4KKworQGl0ZW0gd2luZG93LXdpZHRoCitU aGlzIGVudHJ5IGlzIHNpbWlsYXIgdG8gdGhlIEBjb2Rle3dpbmRvdy1oZWlnaHR9IGVudHJ5 IGRlc2NyaWJlZAorYmVmb3JlIGJ1dCBjYW4gYmUgdXNlZCB0byBhZGp1c3QgdGhlIGNob3Nl biB3aW5kb3cncyB3aWR0aCBpbnN0ZWFkLgorVGhlIHZhbHVlIGNhbiBiZSBvbmUgb2YgdGhl IGZvbGxvd2luZzoKCiBAaXRlbWl6ZSBAYnVsbGV0CiBAaXRlbQotQGNvZGV7bmlsfSBtZWFu cyB0byBsZWF2ZSB0aGUgd2lkdGggb2YgdGhlIG5ldyB3aW5kb3cgYWxvbmUuCitAY29kZXtu aWx9IG1lYW5zIHRvIGxlYXZlIHRoZSB3aWR0aCBvZiB0aGUgY2hvc2VuIHdpbmRvdyBhbG9u ZS4KCiBAaXRlbQotQSBudW1iZXIgc3BlY2lmaWVzIHRoZSBkZXNpcmVkIHdpZHRoIG9mIHRo ZSBuZXcgd2luZG93LiAgQW4gaW50ZWdlcgorQSBudW1iZXIgc3BlY2lmaWVzIHRoZSBkZXNp cmVkIHdpZHRoIG9mIHRoZSBjaG9zZW4gd2luZG93LiAgQW4gaW50ZWdlcgogc3BlY2lmaWVz IHRoZSBudW1iZXIgb2YgY29sdW1ucyBvZiB0aGUgd2luZG93LiAgQSBmbG9hdGluZy1wb2lu dAogbnVtYmVyIGdpdmVzIHRoZSBmcmFjdGlvbiBvZiB0aGUgd2luZG93J3Mgd2lkdGggd2l0 aCByZXNwZWN0IHRvIHRoZQogd2lkdGggb2YgdGhlIGZyYW1lJ3Mgcm9vdCB3aW5kb3cuCgog QGl0ZW0KLUlmIHRoZSBAc2N7Y2RyfSBzcGVjaWZpZXMgYSBmdW5jdGlvbiwgdGhhdCBmdW5j dGlvbiBpcyBjYWxsZWQgd2l0aCBvbmUKLWFyZ3VtZW50OiB0aGUgbmV3IHdpbmRvdy4gIFRo ZSBmdW5jdGlvbiBpcyBzdXBwb3NlZCB0byBhZGp1c3QgdGhlIHdpZHRoCi1vZiB0aGUgd2lu ZG93OyBpdHMgcmV0dXJuIHZhbHVlIGlzIGlnbm9yZWQuCitJZiB0aGUgdmFsdWUgc3BlY2lm aWVzIGEgZnVuY3Rpb24sIHRoYXQgZnVuY3Rpb24gaXMgY2FsbGVkIHdpdGggb25lCithcmd1 bWVudC0tLXRoZSBjaG9zZW4gd2luZG93LiAgVGhlIGZ1bmN0aW9uIGlzIHN1cHBvc2VkIHRv IGFkanVzdCB0aGUKK3dpZHRoIG9mIHRoZSB3aW5kb3c7IGl0cyByZXR1cm4gdmFsdWUgaXMg aWdub3JlZC4KIEBlbmQgaXRlbWl6ZQoKLUlmIEB2YXJ7YWxpc3R9IGNvbnRhaW5zIGEgQGNv ZGV7cHJlc2VydmUtc2l6ZX0gZW50cnksIEVtYWNzIHdpbGwgdHJ5IHRvCi1wcmVzZXJ2ZSB0 aGUgc2l6ZSBvZiB0aGUgbmV3IHdpbmRvdyBkdXJpbmcgZnV0dXJlIHJlc2l6ZSBvcGVyYXRp b25zCi0oQHB4cmVme1ByZXNlcnZpbmcgV2luZG93IFNpemVzfSkuICBUaGUgQHNje2Nkcn0g b2YgdGhhdCBlbnRyeSBtdXN0IGJlIGEKLWNvbnMgY2VsbCB3aG9zZSBAc2N7Y2FyfSwgaWYg bm9uLUBjb2Rle25pbH0sIG1lYW5zIHRvIHByZXNlcnZlIHRoZSB3aWR0aAotb2YgdGhlIHdp bmRvdyBhbmQgd2hvc2UgQHNje2Nkcn0sIGlmIG5vbi1AY29kZXtuaWx9LCBtZWFucyB0byBw cmVzZXJ2ZQotdGhlIGhlaWdodCBvZiB0aGUgd2luZG93LgotCi1UaGlzIGZ1bmN0aW9uIGNh biBmYWlsIGlmIG5vIHdpbmRvdyBzcGxpdHRpbmcgY2FuIGJlIHBlcmZvcm1lZCBmb3Igc29t ZQotcmVhc29uIChlLmcuLCBpZiB0aGUgc2VsZWN0ZWQgZnJhbWUgaGFzIGFuIEBjb2Rle3Vu c3BsaXR0YWJsZX0gZnJhbWUKLXBhcmFtZXRlcjsgQHB4cmVme0J1ZmZlciBQYXJhbWV0ZXJz fSkuCi1AZW5kIGRlZnVuCi0KLUBkZWZ1biBkaXNwbGF5LWJ1ZmZlci1iZWxvdy1zZWxlY3Rl ZCBidWZmZXIgYWxpc3QKLVRoaXMgZnVuY3Rpb24gdHJpZXMgdG8gZGlzcGxheSBAdmFye2J1 ZmZlcn0gaW4gYSB3aW5kb3cgYmVsb3cgdGhlCi1zZWxlY3RlZCB3aW5kb3cuICBJZiB0aGVy ZSBpcyBhIHdpbmRvdyBiZWxvdyB0aGUgc2VsZWN0ZWQgb25lIGFuZCB0aGF0Ci13aW5kb3cg YWxyZWFkeSBkaXNwbGF5cyBAdmFye2J1ZmZlcn0sIGl0IHJldXNlcyB0aGF0IHdpbmRvdy4K LQotSWYgdGhlcmUgaXMgbm8gc3VjaCB3aW5kb3csIHRoaXMgZnVuY3Rpb24gdHJpZXMgdG8g Y3JlYXRlIGEgbmV3IHdpbmRvdwotYnkgc3BsaXR0aW5nIHRoZSBzZWxlY3RlZCBvbmUgYW5k IGRpc3BsYXkgQHZhcntidWZmZXJ9IHRoZXJlLiAgSXQgd2lsbAotYWxzbyBhZGp1c3QgdGhh dCB3aW5kb3cncyBzaXplIHByb3ZpZGVkIEB2YXJ7YWxpc3R9IGNvbnRhaW5zIGEgc3VpdGFi bGUKLUBjb2Rle3dpbmRvdy1oZWlnaHR9IG9yIEBjb2Rle3dpbmRvdy13aWR0aH0gZW50cnks IHNlZSBhYm92ZS4KLQotSWYgc3BsaXR0aW5nIHRoZSBzZWxlY3RlZCB3aW5kb3cgZmFpbHMg YW5kIHRoZXJlIGlzIGEgbm9uLWRlZGljYXRlZAotd2luZG93IGJlbG93IHRoZSBzZWxlY3Rl ZCBvbmUgc2hvd2luZyBzb21lIG90aGVyIGJ1ZmZlciwgaXQgdXNlcyB0aGF0Ci13aW5kb3cg Zm9yIHNob3dpbmcgQHZhcntidWZmZXJ9LgotQGVuZCBkZWZ1bgorQWxsIGFjdGlvbiBmdW5j dGlvbnMgdGhhdCBjaG9vc2UgYSB3aW5kb3cgc2hvdWxkIHByb2Nlc3MgdGhpcyBlbnRyeS4K Ci1AZGVmdW4gZGlzcGxheS1idWZmZXItaW4tcHJldmlvdXMtd2luZG93IGJ1ZmZlciBhbGlz dAotVGhpcyBmdW5jdGlvbiB0cmllcyB0byBkaXNwbGF5IEB2YXJ7YnVmZmVyfSBpbiBhIHdp bmRvdyBwcmV2aW91c2x5Ci1zaG93aW5nIGl0LiAgSWYgQHZhcnthbGlzdH0gaGFzIGEgbm9u LUBjb2Rle25pbH0KLUBjb2Rle2luaGliaXQtc2FtZS13aW5kb3d9IGVudHJ5LCB0aGUgc2Vs ZWN0ZWQgd2luZG93IGlzIG5vdCBlbGlnaWJsZQotZm9yIHJldXNlLiAgSWYgQHZhcnthbGlz dH0gY29udGFpbnMgYSBAY29kZXtyZXVzYWJsZS1mcmFtZXN9IGVudHJ5LCBpdHMKLXZhbHVl IGRldGVybWluZXMgd2hpY2ggZnJhbWVzIHRvIHNlYXJjaCBmb3IgYSBzdWl0YWJsZSB3aW5k b3cgYXMgd2l0aAotQGNvZGV7ZGlzcGxheS1idWZmZXItcmV1c2Utd2luZG93fS4KK0BpdGVt IHByZXNlcnZlLXNpemUKK0lmIG5vbi1AY29kZXtuaWx9IHN1Y2ggYW4gZW50cnkgdGVsbHMg RW1hY3MgdG8gcHJlc2VydmUgdGhlIHNpemUgb2YKK3RoZSB3aW5kb3cgY2hvc2VuIChAcHhy ZWZ7UHJlc2VydmluZyBXaW5kb3cgU2l6ZXN9KS4gIFRoZSB2YWx1ZSBzaG91bGQKK2JlIGVp dGhlciBAY29kZXsodCAuIG5pbCl9IHRvIHByZXNlcnZlIHRoZSB3aWR0aCBvZiB0aGUgd2lu ZG93LAorQGNvZGV7KG5pbCAuIHQpfSB0byBwcmVzZXJ2ZSBpdHMgaGVpZ2h0IG9yIEBjb2Rl eyh0IC4gdCl9IHRvIHByZXNlcnZlCitib3RoLCBpdHMgd2lkdGggYW5kIGl0cyBoZWlnaHQu ICBBbGwgYWN0aW9uIGZ1bmN0aW9ucyB0aGF0IGNob29zZSBhCit3aW5kb3cgc2hvdWxkIHBy b2Nlc3MgdGhpcyBlbnRyeS4KCi1JZiBAdmFye2FsaXN0fSBoYXMgYSBAY29kZXtwcmV2aW91 cy13aW5kb3d9IGVudHJ5LCB0aGUgd2luZG93Ci1zcGVjaWZpZWQgYnkgdGhhdCBlbnRyeSB3 aWxsIG92ZXJyaWRlIGFueSBvdGhlciB3aW5kb3cgZm91bmQgYnkgdGhlCi1tZXRob2RzIGFi b3ZlLCBldmVuIGlmIHRoYXQgd2luZG93IG5ldmVyIHNob3dlZCBAdmFye2J1ZmZlcn0gYmVm b3JlLgotQGVuZCBkZWZ1bgorQGl0ZW0gY2hpbGQtZnJhbWUtcGFyYW1ldGVycworVGhlIHZh bHVlIHNwZWNpZmllcyBhbiBhbGlzdCBvZiBmcmFtZSBwYXJhbWV0ZXJzIHVzZWQgd2hlbiB0 aGUgYnVmZmVyCitpcyBkaXNwbGF5ZWQgb24gYSBjaGlsZCBmcmFtZS4gIFRoaXMgZW50cnkg aXMgdXNlZCBieQorQGNvZGV7ZGlzcGxheS1idWZmZXItaW4tY2hpbGQtZnJhbWV9IG9ubHku CgotQGRlZnVuIGRpc3BsYXktYnVmZmVyLWF0LWJvdHRvbSBidWZmZXIgYWxpc3QKLVRoaXMg ZnVuY3Rpb24gdHJpZXMgdG8gZGlzcGxheSBAdmFye2J1ZmZlcn0gaW4gYSB3aW5kb3cgYXQg dGhlIGJvdHRvbQotb2YgdGhlIHNlbGVjdGVkIGZyYW1lLgotCi1UaGlzIGVpdGhlciBzcGxp dHMgdGhlIHdpbmRvdyBhdCB0aGUgYm90dG9tIG9mIHRoZSBmcmFtZSBvciB0aGUKLWZyYW1l J3Mgcm9vdCB3aW5kb3csIG9yIHJldXNlcyBhbiBleGlzdGluZyB3aW5kb3cgYXQgdGhlIGJv dHRvbSBvZiB0aGUKLXNlbGVjdGVkIGZyYW1lLgotQGVuZCBkZWZ1bgotCi1AZGVmdW4gZGlz cGxheS1idWZmZXItdXNlLXNvbWUtd2luZG93IGJ1ZmZlciBhbGlzdAotVGhpcyBmdW5jdGlv biB0cmllcyB0byBkaXNwbGF5IEB2YXJ7YnVmZmVyfSBieSBjaG9vc2luZyBhbiBleGlzdGlu Zwotd2luZG93IGFuZCBkaXNwbGF5aW5nIHRoZSBidWZmZXIgaW4gdGhhdCB3aW5kb3cuICBJ dCBjYW4gZmFpbCBpZiBhbGwKLXdpbmRvd3MgYXJlIGRlZGljYXRlZCB0byBhbm90aGVyIGJ1 ZmZlciAoQHB4cmVme0RlZGljYXRlZCBXaW5kb3dzfSkuCi1AZW5kIGRlZnVuCi0KLUBkZWZ1 biBkaXNwbGF5LWJ1ZmZlci1uby13aW5kb3cgYnVmZmVyIGFsaXN0Ci1JZiBAdmFye2FsaXN0 fSBoYXMgYSBub24tQGNvZGV7bmlsfSBAY29kZXthbGxvdy1uby13aW5kb3d9IGVudHJ5LCB0 aGVuCi10aGlzIGZ1bmN0aW9uIGRvZXMgbm90IGRpc3BsYXkgQGNvZGV7YnVmZmVyfS4gIFRo aXMgYWxsb3dzIHlvdSB0bwotb3ZlcnJpZGUgdGhlIGRlZmF1bHQgYWN0aW9uIGFuZCBhdm9p ZCBkaXNwbGF5aW5nIHRoZSBidWZmZXIuICBJdCBpcwotYXNzdW1lZCB0aGF0IHdoZW4gdGhl IGNhbGxlciBzcGVjaWZpZXMgYSBub24tQGNvZGV7bmlsfQotQGNvZGV7YWxsb3ctbm8td2lu ZG93fSB2YWx1ZSBpdCBjYW4gaGFuZGxlIGEgQGNvZGV7bmlsfSB2YWx1ZSByZXR1cm5lZAot ZnJvbSBAY29kZXtkaXNwbGF5LWJ1ZmZlcn0gaW4gdGhpcyBjYXNlLgotQGVuZCBkZWZ1bgot Ci1JZiB0aGUgQHZhcnthbGlzdH0gYXJndW1lbnQgb2YgYW55IG9mIHRoZXNlIGZ1bmN0aW9u cyBjb250YWlucyBhCi1AY29kZXt3aW5kb3ctcGFyYW1ldGVyc30gZW50cnksIEBjb2Rle2Rp c3BsYXktYnVmZmVyfSBhc3NpZ25zIHRoZQotZWxlbWVudHMgb2YgdGhlIGFzc29jaWF0ZWQg dmFsdWUgYXMgd2luZG93IHBhcmFtZXRlcnMgb2YgdGhlIGNob3Nlbgotd2luZG93LgotCi0g ICBUbyBpbGx1c3RyYXRlIHRoZSB1c2Ugb2YgYWN0aW9uIGZ1bmN0aW9ucywgY29uc2lkZXIg dGhlIGZvbGxvd2luZwotZXhhbXBsZS4KLQotQGV4YW1wbGUKLUBncm91cAotKGRpc3BsYXkt YnVmZmVyCi0gKGdldC1idWZmZXItY3JlYXRlICIqZm9vKiIpCi0gJygoZGlzcGxheS1idWZm ZXItcmV1c2Utd2luZG93Ci0gICAgZGlzcGxheS1idWZmZXItcG9wLXVwLXdpbmRvdwotICAg IGRpc3BsYXktYnVmZmVyLXBvcC11cC1mcmFtZSkKLSAgIChyZXVzYWJsZS1mcmFtZXMgLiAw KQotICAgKHdpbmRvdy1oZWlnaHQgLiAxMCkgKHdpbmRvdy13aWR0aCAuIDQwKSkpCi1AZW5k IGdyb3VwCi1AZW5kIGV4YW1wbGUKLQotQG5vaW5kZW50Ci1FdmFsdWF0aW5nIHRoZSBmb3Jt IGFib3ZlIHdpbGwgY2F1c2UgQGNvZGV7ZGlzcGxheS1idWZmZXJ9IHRvIHByb2NlZWQgYXMK LWZvbGxvd3M6IElmIGEgYnVmZmVyIGNhbGxlZCAqZm9vKiBhbHJlYWR5IGFwcGVhcnMgb24g YSB2aXNpYmxlIG9yCi1pY29uaWZpZWQgZnJhbWUsIGl0IHdpbGwgcmV1c2UgaXRzIHdpbmRv dy4gIE90aGVyd2lzZSwgaXQgd2lsbCB0cnkgdG8KLXBvcCB1cCBhIG5ldyB3aW5kb3cgb3Is IGlmIHRoYXQgaXMgaW1wb3NzaWJsZSwgYSBuZXcgZnJhbWUgYW5kIHNob3cgdGhlCi1idWZm ZXIgdGhlcmUuICBJZiBhbGwgdGhlc2Ugc3RlcHMgZmFpbCwgaXQgd2lsbCBwcm9jZWVkIHVz aW5nIHdoYXRldmVyCi1AY29kZXtkaXNwbGF5LWJ1ZmZlci1iYXNlLWFjdGlvbn0gYW5kCi1A Y29kZXtkaXNwbGF5LWJ1ZmZlci1mYWxsYmFjay1hY3Rpb259IHByZXNjcmliZS4KLQotICAg RnVydGhlcm1vcmUsIEBjb2Rle2Rpc3BsYXktYnVmZmVyfSB3aWxsIHRyeSB0byBhZGp1c3Qg YSByZXVzZWQgd2luZG93Ci0ocHJvdmlkZWQgKmZvbyogd2FzIHB1dCBieSBAY29kZXtkaXNw bGF5LWJ1ZmZlcn0gdGhlcmUgYmVmb3JlKSBvciBhCi1wb3BwZWQtdXAgd2luZG93IGFzIGZv bGxvd3M6IElmIHRoZSB3aW5kb3cgaXMgcGFydCBvZiBhIHZlcnRpY2FsCi1jb21iaW5hdGlv biwgaXQgd2lsbCBzZXQgaXRzIGhlaWdodCB0byB0ZW4gbGluZXMuICBOb3RlIHRoYXQgaWYs IGluc3RlYWQKLW9mIHRoZSBudW1iZXIgMTAsIHdlIHNwZWNpZmllZCB0aGUgZnVuY3Rpb24K LUBjb2Rle2ZpdC13aW5kb3ctdG8tYnVmZmVyfSwgQGNvZGV7ZGlzcGxheS1idWZmZXJ9IHdv dWxkIGNvbWUgdXAgd2l0aCBhCi1vbmUtbGluZSB3aW5kb3cgdG8gZml0IHRoZSBlbXB0eSBi dWZmZXIuICBJZiB0aGUgd2luZG93IGlzIHBhcnQgb2YgYQotaG9yaXpvbnRhbCBjb21iaW5h dGlvbiwgaXQgc2V0cyBpdHMgd2lkdGggdG8gNDAgY29sdW1ucy4gIFdoZXRoZXIgYSBuZXcK LXdpbmRvdyBpcyB2ZXJ0aWNhbGx5IG9yIGhvcml6b250YWxseSBjb21iaW5lZCBkZXBlbmRz IG9uIHRoZSBzaGFwZSBvZgotdGhlIHdpbmRvdyBzcGxpdCBhbmQgdGhlIHZhbHVlcyBvZgot QGNvZGV7c3BsaXQtd2luZG93LXByZWZlcnJlZC1mdW5jdGlvbn0sIEBjb2Rle3NwbGl0LWhl aWdodC10aHJlc2hvbGR9Ci1hbmQgQGNvZGV7c3BsaXQtd2lkdGgtdGhyZXNob2xkfSAoQHB4 cmVme0Nob29zaW5nIFdpbmRvdyBPcHRpb25zfSkuCi0KLSAgIE5vdyBzdXBwb3NlIHdlIGNv bWJpbmUgdGhpcyBjYWxsIHdpdGggYSBwcmVleGlzdGluZyBzZXR1cCBmb3IKLUBjb2Rle2Rp c3BsYXktYnVmZmVyLWFsaXN0fSBhcyBmb2xsb3dzLgotCi1AZXhhbXBsZQotQGdyb3VwCi0o bGV0ICgoZGlzcGxheS1idWZmZXItYWxpc3QKLSAgICAgICAoY29ucwotICAgICAgICAnKCJc XCpmb29cXCoiCi0gICAgICAgICAgKGRpc3BsYXktYnVmZmVyLXJldXNlLXdpbmRvdyBkaXNw bGF5LWJ1ZmZlci1iZWxvdy1zZWxlY3RlZCkKLSAgICAgICAgICAocmV1c2FibGUtZnJhbWVz KQotICAgICAgICAgICh3aW5kb3ctaGVpZ2h0IC4gNSkpCi0gICAgICAgIGRpc3BsYXktYnVm ZmVyLWFsaXN0KSkpCi0gIChkaXNwbGF5LWJ1ZmZlcgotICAgKGdldC1idWZmZXItY3JlYXRl ICIqZm9vKiIpCi0gICAnKChkaXNwbGF5LWJ1ZmZlci1yZXVzZS13aW5kb3cKLSAgICAgIGRp c3BsYXktYnVmZmVyLXBvcC11cC13aW5kb3cKLSAgICAgIGRpc3BsYXktYnVmZmVyLXBvcC11 cC1mcmFtZSkKLSAgICAgKHJldXNhYmxlLWZyYW1lcyAuIDApCi0gICAgICh3aW5kb3ctaGVp Z2h0IC4gMTApICh3aW5kb3ctd2lkdGggLiA0MCkpKSkKLUBlbmQgZ3JvdXAKLUBlbmQgZXhh bXBsZQorQGl0ZW0gc2lkZQorVGhlIHZhbHVlIGRlbm90ZXMgdGhlIHNpZGUgb2YgdGhlIGZy YW1lIG9yIHdpbmRvdyB3aGVyZSBhIG5ldyB3aW5kb3cKK2Rpc3BsYXlpbmcgdGhlIGJ1ZmZl ciBzaGFsbCBiZSBjcmVhdGVkLiAgVGhpcyBlbnRyeSBpcyB1c2VkIGJ5CitAY29kZXtkaXNw bGF5LWJ1ZmZlci1pbi1zaWRlLXdpbmRvd30gdG8gaW5kaWNhdGUgdGhlIHNpZGUgb2YgdGhl IGZyYW1lCit3aGVyZSBhIG5ldyBzaWRlIHdpbmRvdyBzaGFsbCBiZSBwbGFjZWQgKEBweHJl ZntEaXNwbGF5aW5nIEJ1ZmZlcnMgaW4KK1NpZGUgV2luZG93c30pLiAgSXQgaXMgYWxzbyB1 c2VkIGJ5CitAY29kZXtkaXNwbGF5LWJ1ZmZlci1pbi1hdG9tLXdpbmRvd30gdG8gaW5kaWNh dGUgdGhlIHNpZGUgb2YgYW4KK2V4aXN0aW5nIHdpbmRvdyB3aGVyZSB0aGUgbmV3IHdpbmRv dyBzaGFsbCBiZSBsb2NhdGVkIChAcHhyZWZ7QXRvbWljCitXaW5kb3dzfSkuCgotQG5vaW5k ZW50Ci1UaGlzIGZvcm0gd2lsbCBoYXZlIEBjb2Rle2Rpc3BsYXktYnVmZmVyfSBmaXJzdCB0 cnkgcmV1c2luZyBhIHdpbmRvdwotdGhhdCBzaG93cyAqZm9vKiBvbiB0aGUgc2VsZWN0ZWQg ZnJhbWUuICBJZiB0aGVyZSdzIG5vIHN1Y2ggd2luZG93LCBpdAotd2lsbCB0cnkgdG8gc3Bs aXQgdGhlIHNlbGVjdGVkIHdpbmRvdyBvciwgaWYgdGhhdCBpcyBpbXBvc3NpYmxlLCB1c2Ug dGhlCi13aW5kb3cgYmVsb3cgdGhlIHNlbGVjdGVkIHdpbmRvdy4KK0BpdGVtIHNsb3QKK0lm IG5vbi1AY29kZXtuaWx9LCB0aGUgdmFsdWUgc3BlY2lmaWVzIHRoZSBzbG90IG9mIHRoZSBz aWRlIHdpbmRvdworc3VwcG9zZWQgdG8gZGlzcGxheSB0aGUgYnVmZmVyLiAgVGhpcyBlbnRy eSBpcyB1c2VkIGJ5CitAY29kZXtkaXNwbGF5LWJ1ZmZlci1pbi1zaWRlLXdpbmRvd30gb25s eSAoQHB4cmVme0Rpc3BsYXlpbmcgQnVmZmVycworaW4gU2lkZSBXaW5kb3dzfSkuCgotICAg SWYgdGhlcmUncyBubyB3aW5kb3cgYmVsb3cgdGhlIHNlbGVjdGVkIG9uZSwgb3IgdGhlIHdp bmRvdyBiZWxvdyB0aGUKLXNlbGVjdGVkIG9uZSBpcyBkZWRpY2F0ZWQgdG8gaXRzIGJ1ZmZl ciwgQGNvZGV7ZGlzcGxheS1idWZmZXJ9IHdpbGwKLXByb2NlZWQgYXMgZGVzY3JpYmVkIGlu IHRoZSBwcmV2aW91cyBleGFtcGxlLiAgTm90ZSwgaG93ZXZlciwgdGhhdCB3aGVuCi1pdCB0 cmllcyB0byBhZGp1c3QgdGhlIGhlaWdodCBvZiBhbnkgcmV1c2VkIG9yIHBvcHBlZC11cCB3 aW5kb3csIGl0IHdpbGwKLWluIGFueSBjYXNlIHRyeSB0byBzZXQgaXRzIG51bWJlciBvZiBs aW5lcyB0byA1IHNpbmNlIHRoYXQgdmFsdWUKLW92ZXJyaWRlcyB0aGUgY29ycmVzcG9uZGlu ZyBzcGVjaWZpY2F0aW9uIGluIHRoZSBAdmFye2FjdGlvbn0gYXJndW1lbnQKLW9mIEBjb2Rl e2Rpc3BsYXktYnVmZmVyfS4KK0BpdGVtIHdpbmRvdworVGhlIHZhbHVlIHNwZWNpZmllcyBh IHdpbmRvdyB0aGF0IGlzIGluIHNvbWUgd2F5IHJlbGF0ZWQgdG8gdGhlIHdpbmRvdworY2hv c2VuIGJ5IEBjb2Rle2Rpc3BsYXktYnVmZmVyfS4gIFRoaXMgZW50cnkgaXMgY3VycmVudGx5 IHVzZWQgYnkKK0Bjb2Rle2Rpc3BsYXktYnVmZmVyLWluLWF0b20td2luZG93fSB0byBpbmRp Y2F0ZSB0aGUgd2luZG93IG9uIHdob3NlCitzaWRlIHRoZSBuZXcgd2luZG93IHNoYWxsIGJl IGNyZWF0ZWQgKEBweHJlZntBdG9taWMgV2luZG93c30pLgorQGVuZCB0YWJsZQoKCiBAbm9k ZSBDaG9vc2luZyBXaW5kb3cgT3B0aW9ucwotQHNlY3Rpb24gQWRkaXRpb25hbCBPcHRpb25z IGZvciBEaXNwbGF5aW5nIEJ1ZmZlcnMKK0BzdWJzZWN0aW9uIEFkZGl0aW9uYWwgT3B0aW9u cyBmb3IgRGlzcGxheWluZyBCdWZmZXJzCgotVGhlIGJlaGF2aW9yIG9mIHRoZSBzdGFuZGFy ZCBkaXNwbGF5IGFjdGlvbnMgb2YgQGNvZGV7ZGlzcGxheS1idWZmZXJ9Ci0oQHB4cmVme0No b29zaW5nIFdpbmRvd30pIGNhbiBiZSBtb2RpZmllZCBieSBhIHZhcmlldHkgb2YgdXNlcgor VGhlIGJlaGF2aW9yIG9mIHRoZSBkaXNwbGF5IGFjdGlvbnMgb2YgQGNvZGV7ZGlzcGxheS1i dWZmZXJ9CisoQHB4cmVme0Nob29zaW5nIFdpbmRvd30pIGNhbiBiZSBtb2RpZmllZCBieSB0 aGUgZm9sbG93aW5nIHVzZXIKIG9wdGlvbnMuCgogQGRlZm9wdCBwb3AtdXAtd2luZG93cwpA QCAtMjc1NywxMCArMjg3NCwxMCBAQCBDaG9vc2luZyBXaW5kb3cgT3B0aW9ucwogaXMgYWxs b3dlZCB0byBzcGxpdCBhbiBleGlzdGluZyB3aW5kb3cgdG8gbWFrZSBhIG5ldyB3aW5kb3cg Zm9yCiBkaXNwbGF5aW5nIGluLiAgVGhpcyBpcyB0aGUgZGVmYXVsdC4KCi1UaGlzIHZhcmlh YmxlIGlzIHByb3ZpZGVkIG1haW5seSBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4gIEl0 IGlzCitUaGlzIHZhcmlhYmxlIGlzIHByb3ZpZGVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmls aXR5IG9ubHkuICBJdCBpcwogb2JleWVkIGJ5IEBjb2Rle2Rpc3BsYXktYnVmZmVyfSB2aWEg YSBzcGVjaWFsIG1lY2hhbmlzbSBpbgogQGNvZGV7ZGlzcGxheS1idWZmZXItZmFsbGJhY2st YWN0aW9ufSwgd2hpY2ggb25seSBjYWxscyB0aGUgYWN0aW9uCi1mdW5jdGlvbiBAY29kZXtk aXNwbGF5LWJ1ZmZlci1wb3AtdXAtd2luZG93fSAoQHB4cmVme0Rpc3BsYXkgQWN0aW9uCitm dW5jdGlvbiBAY29kZXtkaXNwbGF5LWJ1ZmZlci1wb3AtdXAtd2luZG93fSAoQHB4cmVme0Fj dGlvbgogRnVuY3Rpb25zfSkgd2hlbiB0aGUgdmFsdWUgaXMgQGNvZGV7bmlsfS4gIEl0IGlz IG5vdCBjb25zdWx0ZWQgYnkKIEBjb2Rle2Rpc3BsYXktYnVmZmVyLXBvcC11cC13aW5kb3d9 IGl0c2VsZiwgd2hpY2ggdGhlIHVzZXIgbWF5IHNwZWNpZnkKIGRpcmVjdGx5IGluIEBjb2Rl e2Rpc3BsYXktYnVmZmVyLWFsaXN0fSBldGMuCkBAIC0yNzcwLDcgKzI4ODcsNyBAQCBDaG9v c2luZyBXaW5kb3cgT3B0aW9ucwogVGhpcyB2YXJpYWJsZSBzcGVjaWZpZXMgYSBmdW5jdGlv biBmb3Igc3BsaXR0aW5nIGEgd2luZG93LCBpbiBvcmRlciB0bwogbWFrZSBhIG5ldyB3aW5k b3cgZm9yIGRpc3BsYXlpbmcgYSBidWZmZXIuICBJdCBpcyB1c2VkIGJ5IHRoZQogQGNvZGV7 ZGlzcGxheS1idWZmZXItcG9wLXVwLXdpbmRvd30gYWN0aW9uIGZ1bmN0aW9uIHRvIGFjdHVh bGx5IHNwbGl0Ci10aGUgd2luZG93IChAcHhyZWZ7RGlzcGxheSBBY3Rpb24gRnVuY3Rpb25z fSkuCit0aGUgd2luZG93IChAcHhyZWZ7QWN0aW9uIEZ1bmN0aW9uc30pLgoKIFRoZSBkZWZh dWx0IHZhbHVlIGlzIEBjb2Rle3NwbGl0LXdpbmRvdy1zZW5zaWJseX0sIHdoaWNoIGlzIGRv Y3VtZW50ZWQKIGJlbG93LiAgVGhlIHZhbHVlIG11c3QgYmUgYSBmdW5jdGlvbiB0aGF0IHRh a2VzIG9uZSBhcmd1bWVudCwgYSB3aW5kb3csCkBAIC0yNzk3LDE5ICsyOTE0LDE5IEBAIENo b29zaW5nIFdpbmRvdyBPcHRpb25zCiBAZW5kIGRlZnVuCgogQGRlZm9wdCBzcGxpdC1oZWln aHQtdGhyZXNob2xkCi1UaGlzIHZhcmlhYmxlLCB1c2VkIGJ5IEBjb2Rle3NwbGl0LXdpbmRv dy1zZW5zaWJseX0sIHNwZWNpZmllcyB3aGV0aGVyCi10byBzcGxpdCB0aGUgd2luZG93IHBs YWNpbmcgdGhlIG5ldyB3aW5kb3cgYmVsb3cuICBJZiBpdCBpcyBhbgorVGhpcyB2YXJpYWJs ZSBzcGVjaWZpZXMgd2hldGhlciBAY29kZXtzcGxpdC13aW5kb3ctc2Vuc2libHl9IGlzCith bGxvd2VkIHRvIHNwbGl0IHRoZSB3aW5kb3cgcGxhY2luZyB0aGUgbmV3IHdpbmRvdyBiZWxv dy4gIElmIGl0IGlzIGFuCiBpbnRlZ2VyLCB0aGF0IG1lYW5zIHRvIHNwbGl0IG9ubHkgaWYg dGhlIG9yaWdpbmFsIHdpbmRvdyBoYXMgYXQgbGVhc3QKIHRoYXQgbWFueSBsaW5lcy4gIElm IGl0IGlzIEBjb2Rle25pbH0sIHRoYXQgbWVhbnMgbm90IHRvIHNwbGl0IHRoaXMKIHdheS4K IEBlbmQgZGVmb3B0CgogQGRlZm9wdCBzcGxpdC13aWR0aC10aHJlc2hvbGQKLVRoaXMgdmFy aWFibGUsIHVzZWQgYnkgQGNvZGV7c3BsaXQtd2luZG93LXNlbnNpYmx5fSwgc3BlY2lmaWVz IHdoZXRoZXIKLXRvIHNwbGl0IHRoZSB3aW5kb3cgcGxhY2luZyB0aGUgbmV3IHdpbmRvdyB0 byB0aGUgcmlnaHQuICBJZiB0aGUgdmFsdWUKLWlzIGFuIGludGVnZXIsIHRoYXQgbWVhbnMg dG8gc3BsaXQgb25seSBpZiB0aGUgb3JpZ2luYWwgd2luZG93IGhhcyBhdAotbGVhc3QgdGhh dCBtYW55IGNvbHVtbnMuICBJZiB0aGUgdmFsdWUgaXMgQGNvZGV7bmlsfSwgdGhhdCBtZWFu cyBub3QKLXRvIHNwbGl0IHRoaXMgd2F5LgorVGhpcyB2YXJpYWJsZSBzcGVjaWZpZXMgd2hl dGhlciBAY29kZXtzcGxpdC13aW5kb3ctc2Vuc2libHl9IGlzCithbGxvd2VkIHRvIHNwbGl0 IHRoZSB3aW5kb3cgcGxhY2luZyB0aGUgbmV3IHdpbmRvdyB0byB0aGUgcmlnaHQuICBJZgor dGhlIHZhbHVlIGlzIGFuIGludGVnZXIsIHRoYXQgbWVhbnMgdG8gc3BsaXQgb25seSBpZiB0 aGUgb3JpZ2luYWwKK3dpbmRvdyBoYXMgYXQgbGVhc3QgdGhhdCBtYW55IGNvbHVtbnMuICBJ ZiB0aGUgdmFsdWUgaXMgQGNvZGV7bmlsfSwKK3RoYXQgbWVhbnMgbm90IHRvIHNwbGl0IHRo aXMgd2F5LgogQGVuZCBkZWZvcHQKCiBAZGVmb3B0IGV2ZW4td2luZG93LXNpemVzCkBAIC0y ODI3LDMwICsyOTQ0LDExIEBAIENob29zaW5nIFdpbmRvdyBPcHRpb25zCiBvZiB0aGVpciBj b21iaW5hdGlvbi4KIEBlbmQgZGVmb3B0CgotQGRlZm9wdCBwb3AtdXAtZnJhbWVzCi1JZiB0 aGUgdmFsdWUgb2YgdGhpcyB2YXJpYWJsZSBpcyBub24tQGNvZGV7bmlsfSwgdGhhdCBtZWFu cwotQGNvZGV7ZGlzcGxheS1idWZmZXJ9IG1heSBkaXNwbGF5IGJ1ZmZlcnMgYnkgbWFraW5n IG5ldyBmcmFtZXMuICBUaGUKLWRlZmF1bHQgaXMgQGNvZGV7bmlsfS4KLQotQSBub24tQGNv ZGV7bmlsfSB2YWx1ZSBhbHNvIG1lYW5zIHRoYXQgd2hlbiBAY29kZXtkaXNwbGF5LWJ1ZmZl cn0gaXMKLWxvb2tpbmcgZm9yIGEgd2luZG93IGFscmVhZHkgZGlzcGxheWluZyBAdmFye2J1 ZmZlci1vci1uYW1lfSwgaXQgY2FuCi1zZWFyY2ggYW55IHZpc2libGUgb3IgaWNvbmlmaWVk IGZyYW1lLCBub3QganVzdCB0aGUgc2VsZWN0ZWQgZnJhbWUuCi0KLVRoaXMgdmFyaWFibGUg aXMgcHJvdmlkZWQgbWFpbmx5IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LiAgSXQgaXMK LW9iZXllZCBieSBAY29kZXtkaXNwbGF5LWJ1ZmZlcn0gdmlhIGEgc3BlY2lhbCBtZWNoYW5p c20gaW4KLUBjb2Rle2Rpc3BsYXktYnVmZmVyLWZhbGxiYWNrLWFjdGlvbn0sIHdoaWNoIGNh bGxzIHRoZSBhY3Rpb24gZnVuY3Rpb24KLUBjb2Rle2Rpc3BsYXktYnVmZmVyLXBvcC11cC1m cmFtZX0gKEBweHJlZntEaXNwbGF5IEFjdGlvbiBGdW5jdGlvbnN9KQotaWYgdGhlIHZhbHVl IGlzIG5vbi1AY29kZXtuaWx9LiAgKFRoaXMgaXMgZG9uZSBiZWZvcmUgYXR0ZW1wdGluZyB0 bwotc3BsaXQgYSB3aW5kb3cuKSAgVGhpcyB2YXJpYWJsZSBpcyBub3QgY29uc3VsdGVkIGJ5 Ci1AY29kZXtkaXNwbGF5LWJ1ZmZlci1wb3AtdXAtZnJhbWV9IGl0c2VsZiwgd2hpY2ggdGhl IHVzZXIgbWF5IHNwZWNpZnkKLWRpcmVjdGx5IGluIEBjb2Rle2Rpc3BsYXktYnVmZmVyLWFs aXN0fSBldGMuCi1AZW5kIGRlZm9wdAotCiBAZGVmb3B0IHBvcC11cC1mcmFtZS1mdW5jdGlv bgogVGhpcyB2YXJpYWJsZSBzcGVjaWZpZXMgYSBmdW5jdGlvbiBmb3IgY3JlYXRpbmcgYSBu ZXcgZnJhbWUsIGluIG9yZGVyCiB0byBtYWtlIGEgbmV3IHdpbmRvdyBmb3IgZGlzcGxheWlu ZyBhIGJ1ZmZlci4gIEl0IGlzIHVzZWQgYnkgdGhlCi1AY29kZXtkaXNwbGF5LWJ1ZmZlci1w b3AtdXAtZnJhbWV9IGFjdGlvbiBmdW5jdGlvbiAoQHB4cmVme0Rpc3BsYXkKLUFjdGlvbiBG dW5jdGlvbnN9KS4KK0Bjb2Rle2Rpc3BsYXktYnVmZmVyLXBvcC11cC1mcmFtZX0gYWN0aW9u IGZ1bmN0aW9uIChAcHhyZWZ7QWN0aW9uCitGdW5jdGlvbnN9KS4KCiBUaGUgdmFsdWUgc2hv dWxkIGJlIGEgZnVuY3Rpb24gdGhhdCB0YWtlcyBubyBhcmd1bWVudHMgYW5kIHJldHVybnMg YQogZnJhbWUsIG9yIEBjb2Rle25pbH0gaWYgbm8gZnJhbWUgY291bGQgYmUgY3JlYXRlZC4g IFRoZSBkZWZhdWx0IHZhbHVlCkBAIC0yODYwLDMwICsyOTU4LDYzMiBAQCBDaG9vc2luZyBX aW5kb3cgT3B0aW9ucwoKIEBkZWZvcHQgcG9wLXVwLWZyYW1lLWFsaXN0CiBUaGlzIHZhcmlh YmxlIGhvbGRzIGFuIGFsaXN0IG9mIGZyYW1lIHBhcmFtZXRlcnMgKEBweHJlZntGcmFtZQot UGFyYW1ldGVyc30pLCB3aGljaCBpcyB1c2VkIGJ5IHRoZSBkZWZhdWx0IGZ1bmN0aW9uIGlu CitQYXJhbWV0ZXJzfSksIHdoaWNoIGlzIHVzZWQgYnkgdGhlIGZ1bmN0aW9uIHNwZWNpZmll ZCBieQogQGNvZGV7cG9wLXVwLWZyYW1lLWZ1bmN0aW9ufSB0byBtYWtlIGEgbmV3IGZyYW1l LiAgVGhlIGRlZmF1bHQgaXMKIEBjb2Rle25pbH0uCi1AZW5kIGRlZm9wdAoKLUBkZWZvcHQg c2FtZS13aW5kb3ctYnVmZmVyLW5hbWVzCi1BIGxpc3Qgb2YgYnVmZmVyIG5hbWVzIGZvciBi dWZmZXJzIHRoYXQgc2hvdWxkIGJlIGRpc3BsYXllZCBpbiB0aGUKLXNlbGVjdGVkIHdpbmRv dy4gIElmIGEgYnVmZmVyJ3MgbmFtZSBpcyBpbiB0aGlzIGxpc3QsCi1AY29kZXtkaXNwbGF5 LWJ1ZmZlcn0gaGFuZGxlcyB0aGUgYnVmZmVyIGJ5IHNob3dpbmcgaXQgaW4gdGhlIHNlbGVj dGVkCi13aW5kb3cuCitUaGlzIG9wdGlvbiBpcyBwcm92aWRlZCBmb3IgYmFja3dhcmQgY29t cGF0aWJpbGl0eSBvbmx5LiAgTm90ZSwKK2hvd2V2ZXIgdGhhdCB3aGVuIEBjb2Rle2Rpc3Bs YXktYnVmZmVyLXBvcC11cC1mcmFtZX0gY2FsbHMgdGhlCitmdW5jdGlvbiBzcGVjaWZpZWQg YnkgQGNvZGV7cG9wLXVwLWZyYW1lLWZ1bmN0aW9ufSwgaXQgcHJlcGVuZHMgdGhlCit2YWx1 ZSBvZiBhbGwgQGNvZGV7cG9wLXVwLWZyYW1lLXBhcmFtZXRlcnN9IGFjdGlvbiBhbGlzdCBl bnRyaWVzIHRvCitAY29kZXtwb3AtdXAtZnJhbWUtYWxpc3R9IHNvIHRoYXQgdGhlIHZhbHVl cyBzcGVjaWZpZWQgYnkgdGhlIGFjdGlvbgorYWxpc3QgZW50cnkgZWZmZWN0aXZlbHkgb3Zl cnJpZGUgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWVzIG9mCitAY29kZXtwb3AtdXAtZnJhbWUt YWxpc3R9LgorCitIZW5jZSwgdXNlcnMgc2hvdWxkIHNldCB1cCBhIEBjb2Rle3BvcC11cC1m cmFtZS1wYXJhbWV0ZXJzfSBhY3Rpb24KK2FsaXN0IGVudHJ5IGluIEBjb2Rle2Rpc3BsYXkt YnVmZmVyLWFsaXN0fSBpbnN0ZWFkIG9mIGN1c3RvbWl6aW5nCitAY29kZXtwb3AtdXAtZnJh bWUtYWxpc3R9LiAgT25seSB0aGlzIHdpbGwgZ3VhcmFudGVlIHRoYXQgdGhlIHZhbHVlIG9m CithIHBhcmFtZXRlciBzcGVjaWZpZWQgYnkgdGhlIHVzZXIgb3ZlcnJpZGVzIHRoZSB2YWx1 ZSBvZiB0aGF0CitwYXJhbWV0ZXIgc3BlY2lmaWVkIGJ5IHRoZSBjYWxsZXIgb2YgQGNvZGV7 ZGlzcGxheS1idWZmZXJ9LgogQGVuZCBkZWZvcHQKCi1AZGVmb3B0IHNhbWUtd2luZG93LXJl Z2V4cHMKLUEgbGlzdCBvZiByZWd1bGFyIGV4cHJlc3Npb25zIHRoYXQgc3BlY2lmeSBidWZm ZXJzIHRoYXQgc2hvdWxkIGJlCi1kaXNwbGF5ZWQgaW4gdGhlIHNlbGVjdGVkIHdpbmRvdy4g IElmIHRoZSBidWZmZXIncyBuYW1lIG1hdGNoZXMgYW55IG9mCi10aGUgcmVndWxhciBleHBy ZXNzaW9ucyBpbiB0aGlzIGxpc3QsIEBjb2Rle2Rpc3BsYXktYnVmZmVyfSBoYW5kbGVzIHRo ZQotYnVmZmVyIGJ5IHNob3dpbmcgaXQgaW4gdGhlIHNlbGVjdGVkIHdpbmRvdy4KLUBlbmQg ZGVmb3B0CisgICBNYW55IGVmZm9ydHMgaW4gdGhlIGRlc2lnbiBvZiBAY29kZXtkaXNwbGF5 LWJ1ZmZlcn0gaGF2ZSBiZWVuIGdpdmVuCit0byBtYWludGFpbiBjb21wYXRpYmlsaXR5IHdp dGggY29kZSB0aGF0IHVzZXMgb2xkZXIgb3B0aW9ucyBsaWtlCitAY29kZXtwb3AtdXAtd2lu ZG93c30sIEBjb2Rle3BvcC11cC1mcmFtZXN9LAorQGNvZGV7cG9wLXVwLWZyYW1lLWFsaXN0 fSwgQGNvZGV7c2FtZS13aW5kb3ctYnVmZmVyLW5hbWVzfSBhbmQKK0Bjb2Rle3NhbWUtd2lu ZG93LXJlZ2V4cHN9LiAgQXBwbGljYXRpb25zIGFuZCB1c2VycyBzaG91bGQgcmVmcmFpbgor ZnJvbSB1c2luZyB0aGVzZSBvcHRpb25zIGluIGZ1dHVyZSBjb2RlLiAgQWJvdmUgd2UgYWxy ZWFkeSB3YXJuZWQKK2FnYWluc3QgY3VzdG9taXppbmcgQGNvZGV7cG9wLXVwLWZyYW1lLWFs aXN0fS4gIEhlcmUgd2UgZGVzY3JpYmUgaG93Cit0byBjb252ZXJ0IHRoZSByZW1haW5pbmcg b3B0aW9ucyB0byB1c2UgZGlzcGxheSBhY3Rpb25zIGluc3RlYWQuCisKK0B0YWJsZSBAY29k ZQorQGl0ZW0gcG9wLXVwLXdpbmRvd3MKK1RoaXMgdmFyaWFibGUgaXMgQGNvZGV7bmlsfSBi eSBkZWZhdWx0LiAgSW5zdGVhZCBvZiBjdXN0b21pemluZyBpdCB0bworQGNvZGV7bmlsfSBh bmQgdGh1cyB0ZWxsaW5nIEBjb2Rle2Rpc3BsYXktYnVmZmVyfSB3aGF0IG5vdCB0byBkbywg aXQncworbXVjaCBiZXR0ZXIgdG8gbGlzdCBpbiBAY29kZXtkaXNwbGF5LWJ1ZmZlci1iYXNl LWFjdGlvbn0gdGhlIGFjdGlvbnMKK0Bjb2Rle2Rpc3BsYXktYnVmZmVyfSBzaG91bGQgZG8g aW5zdGVhZCBhcywgZm9yIGV4YW1wbGU6CisKK0BleGFtcGxlCitAZ3JvdXAKKyhjdXN0b21p emUtc2V0LXZhcmlhYmxlCisgJ2Rpc3BsYXktYnVmZmVyLWJhc2UtYWN0aW9uCisgJygoZGlz cGxheS1idWZmZXItcmV1c2Utd2luZG93IGRpc3BsYXktYnVmZmVyLXBvcC11cC1mcmFtZQor ICAgIGRpc3BsYXktYnVmZmVyLWluLXByZXZpb3VzLXdpbmRvdyBkaXNwbGF5LWJ1ZmZlci11 c2Utc29tZS13aW5kb3cpKSkKK0BlbmQgZ3JvdXAKK0BlbmQgZXhhbXBsZQorCitAaXRlbSBw b3AtdXAtZnJhbWVzCitJbnN0ZWFkIG9mIGN1c3RvbWl6aW5nIHRoaXMgdmFyaWFibGUgdG8g QGNvZGV7dH0sIGN1c3RvbWl6ZQorQGNvZGV7ZGlzcGxheS1idWZmZXItYmFzZS1hY3Rpb259 LCBmb3IgZXhhbXBsZSwgYXMgZm9sbG93czoKKworQGV4YW1wbGUKK0Bncm91cAorKGN1c3Rv bWl6ZS1zZXQtdmFyaWFibGUKKyAnZGlzcGxheS1idWZmZXItYmFzZS1hY3Rpb24KKyAnKChk aXNwbGF5LWJ1ZmZlci1yZXVzZS13aW5kb3cgZGlzcGxheS1idWZmZXItcG9wLXVwLWZyYW1l KQorICAgKHJldXNhYmxlLWZyYW1lcyAuIDApKSkKK0BlbmQgZ3JvdXAKK0BlbmQgZXhhbXBs ZQorCitAaXRlbSBzYW1lLXdpbmRvdy1idWZmZXItbmFtZXMKK0BpdGVteCBzYW1lLXdpbmRv dy1yZWdleHBzCitJbnN0ZWFkIG9mIGFkZGluZyBhIGJ1ZmZlciBuYW1lIG9yIGEgcmVndWxh ciBleHByZXNzaW9uIHRvIG9uZSBvZgordGhlc2Ugb3B0aW9ucyB1c2UgYSBAY29kZXtkaXNw bGF5LWJ1ZmZlci1hbGlzdH0gZW50cnkgZm9yIHRoYXQgYnVmZmVyCitzcGVjaWZ5aW5nIHRo ZSBhY3Rpb24gZnVuY3Rpb24gQGNvZGV7ZGlzcGxheS1idWZmZXItc2FtZS13aW5kb3d9Lgor QGV4YW1wbGUKK0Bncm91cAorKGN1c3RvbWl6ZS1zZXQtdmFyaWFibGUKKyAnZGlzcGxheS1i dWZmZXItYWxpc3QKKyAoY29ucyAnKCJcXCpmb29cXCoiIChkaXNwbGF5LWJ1ZmZlci1zYW1l LXdpbmRvdykpIGRpc3BsYXktYnVmZmVyLWFsaXN0KSkKK0BlbmQgZ3JvdXAKK0BlbmQgZXhh bXBsZQorQGVuZCB0YWJsZQorCisKK0Bub2RlIFByZWNlZGVuY2Ugb2YgQWN0aW9uIEZ1bmN0 aW9ucworQHN1YnNlY3Rpb24gUHJlY2VkZW5jZSBvZiBBY3Rpb24gRnVuY3Rpb25zCisKK0Zy b20gdGhlIHBhc3Qgc3Vic2VjdGlvbnMgd2UgYWxyZWFkeSBrbm93IHRoYXQgQGNvZGV7ZGlz cGxheS1idWZmZXJ9CittdXN0IGJlIHN1cHBsaWVkIHdpdGggYSBudW1iZXIgb2YgZGlzcGxh eSBhY3Rpb25zIChAcHhyZWZ7Q2hvb3NpbmcKK1dpbmRvd30pIGluIG9yZGVyIHRvIGRpc3Bs YXkgYSBidWZmZXIuICBJbiBhIGNvbXBsZXRlbHkgdW5jdXN0b21pemVkCitFbWFjcywgdGhl c2UgYWN0aW9ucyBhcmUgc3BlY2lmaWVkIGJ5CitAY29kZXtkaXNwbGF5LWJ1ZmZlci1mYWxs YmFjay1hY3Rpb259IGluIHRoZSBmb2xsb3dpbmcgb3JkZXIgb2YKK3ByZWNlZGVuY2U6IFJl dXNlIGEgd2luZG93LCBwb3AgdXAgYSBuZXcgd2luZG93IG9uIHRoZSBzYW1lIGZyYW1lLCB1 c2UKK2Egd2luZG93IHByZXZpb3VzbHkgc2hvd2luZyB0aGUgYnVmZmVyLCB1c2Ugc29tZSB3 aW5kb3cgYW5kIHBvcCB1cCBhCituZXcgZnJhbWUuICAoVGhlIHJlbWFpbmluZyBhY3Rpb25z IGluIHRoZSBkZWZhdWx0IHZhbHVlIG9mCitAY29kZXtkaXNwbGF5LWJ1ZmZlci1mYWxsYmFj ay1hY3Rpb259IGFyZSB2b2lkIGluIGFuIHVuY3VzdG9taXplZAorRW1hY3MpLgorCitMZXQn cyBub3cgY29uc2lkZXIgdGhlIGZvbGxvd2luZyBmb3JtOgorCitAZXhhbXBsZQorKGRpc3Bs YXktYnVmZmVyIChnZXQtYnVmZmVyLWNyZWF0ZSAiKmZvbyoiKSkKK0BlbmQgZXhhbXBsZQor CitAbm9pbmRlbnQKK1B1dCB0aGlzIGZvcm0gaW50byB0aGUgYnVmZmVyIEBmaWxleypzY3Jh dGNoKn0gb2YgYW4gdW5jdXN0b21pemVkCitFbWFjcyBzZXNzaW9uIHlvdSBqdXN0IHN0YXJ0 ZWQgYW5kIGV2YWx1YXRlIGl0OiBAY29kZXtkaXNwbGF5LWJ1ZmZlcn0KK3dpbGwgZmFpbCB0 byByZXVzZSBhIHdpbmRvdyBzaG93aW5nIEBmaWxleypmb28qfSBidXQgc3VjY2VlZCBpbgor cG9wcGluZyB1cCBhIG5ldyB3aW5kb3cuICBJZiB5b3UgZXZhbHVhdGUgdGhlIGZvcm0gYWdh aW4sIG5vdGhpbmcgd2lsbAorY2hhbmdlLS0tQGNvZGV7ZGlzcGxheS1idWZmZXJ9IHJldXNl ZCB0aGUgd2luZG93IGFscmVhZHkgc2hvd2luZworQGZpbGV7KmZvbyp9IGJlY2F1c2UgdGhh dCBhY3Rpb24gd2FzIGFwcGxpY2FibGUgYW5kIGhhZCB0aGUgaGlnaGVzdAorcHJlY2VkZW5j ZSBhbW9uZyBhbGwgYXBwbGljYWJsZSBhY3Rpb25zLgorCisgICBQb3BwaW5nIHVwIGEgbmV3 IHdpbmRvdyB3aWxsIGZhaWwgaWYgdGhlcmUgaXMgbm90IGVub3VnaCBzcGFjZSBvbgordGhl IHNlbGVjdGVkIGZyYW1lLiAgSW4gYW4gdW5jdXN0b21pemVkIEVtYWNzIGl0IHR5cGljYWxs eSBmYWlscyB3aGVuCit0aGVyZSBhcmUgYWxyZWFkeSB0d28gd2luZG93cyBvbiBhIGZyYW1l LiAgRm9yIGV4YW1wbGUsIGlmIHlvdSBub3cKK3R5cGUgQHd7QGtiZHtDLXggMX19IGZvbGxv d2VkIGJ5IEB3e0BrYmR7Qy14IDJ9fSBhbmQgZXZhbHVhdGUgdGhlIGZvcm0KK29uY2UgbW9y ZSwgQGZpbGV7KmZvbyp9IHNob3VsZCBzaG93IHVwIGluIHRoZSBsb3dlcgord2luZG93LS0t QGNvZGV7ZGlzcGxheS1idWZmZXJ9IGp1c3QgdXNlZCBgYHNvbWUnJyB3aW5kb3cuICBJZiwg YmVmb3JlCit0eXBpbmcgQHd7QGtiZHtDLXggMn19IHlvdSBoYWQgdHlwZWQgQHd7QGtiZHtD LXggb319LCBAZmlsZXsqZm9vKn0KK3dvdWxkIGhhdmUgYmVlbiBzaG93biBpbiB0aGUgdXBw ZXIgd2luZG93IGJlY2F1c2UgYGBzb21lJycgd2luZG93CitzdGFuZHMgZm9yIHRoZSBgYGxl YXN0IHJlY2VudGx5IHVzZWQnJyB3aW5kb3cgYW5kIHRoZSBzZWxlY3RlZCB3aW5kb3cKK2hh cyBiZWVuIGxlYXN0IHJlY2VudGx5IHVzZWQgaWYgYW5kIG9ubHkgaWYgaXQgaXMgYWxvbmUg b24gaXRzIGZyYW1lLgorCisgICBMZXQncyBhc3N1bWUgeW91IGRpZCBub3QgdHlwZSBAd3tA a2Jke0MteCBvfX0gYW5kIEBmaWxleypmb28qfSBpcworc2hvd24gaW4gdGhlIGxvd2VyIHdp bmRvdy4gIFR5cGUgQHd7QGtiZHtDLXggb319IHRvIGdldCB0aGVyZSBmb2xsb3dlZAorYnkg QHd7QGtiZHtDLXggbGVmdH19IGFuZCBldmFsdWF0ZSB0aGUgZm9ybSBhZ2Fpbi4gIFRoaXMg c2hvdWxkCitkaXNwbGF5IEBmaWxleypmb28qfSBpbiB0aGUgc2FtZSwgbG93ZXIgd2luZG93 IGJlY2F1c2UgdGhhdCB3aW5kb3cgaGFkCithbHJlYWR5IHNob3duIEBmaWxleypmb28qfSBw cmV2aW91c2x5IGFuZCB3YXMgdGhlcmVmb3JlIGNob3NlbiBpbnN0ZWFkCitvZiBzb21lIG90 aGVyIHdpbmRvdyAocmVtZW1iZXIgdGhlIHByZWNlZGVuY2Ugb3JkZXIgcHJlc2NyaWJlZCBi eQorQGNvZGV7ZGlzcGxheS1idWZmZXItZmFsbGJhY2stYWN0aW9ufSB3ZSBza2V0Y2hlZCBh Ym92ZSkuCisKKyAgU28gZmFyIHdlIGhhdmUgb25seSBvYnNlcnZlZCBkZWZhdWx0IGJlaGF2 aW9ycyBpbiBhbiB1bmN1c3RvbWl6ZWQKK0VtYWNzIHNlc3Npb24uICBOZXh0IGxldCdzIHNl ZSBob3cgdGhlc2UgYmVoYXZpb3JzIGNhbiBiZSBjdXN0b21pemVkLgorVGhlIGZpcnN0IG9w dGlvbiB3ZSBjb25zaWRlciBpcyBAY29kZXtkaXNwbGF5LWJ1ZmZlci1iYXNlLWFjdGlvbn0u ICBJdAorcHJvdmlkZXMgYSB2ZXJ5IGNvYXJzZSBjdXN0b21pemF0aW9uIHdoaWNoIGNvbmNl cHR1YWxseSBhZmZlY3RzIHRoZQorZGlzcGxheSBvZiBAZW1waHthbnl9IGJ1ZmZlci4gIEl0 IGNhbiBiZSB1c2VkIHRvIHN1cHBsZW1lbnQgdGhlCithY3Rpb25zIHN1cHBsaWVkIGJ5IEBj b2Rle2Rpc3BsYXktYnVmZmVyLWZhbGxiYWNrLWFjdGlvbn0gYnkKK3Jlb3JkZXJpbmcgdGhl bSBvciBieSBhZGRpbmcgYWN0aW9ucyB0aGF0IGFyZSBub3QgcHJlc2VudCB0aGVyZSBidXQK K2ZpdCBtb3JlIGNsb3NlbHkgdGhlIHVzZXIncyBlZGl0aW5nIHByYWN0aWNlLiAgSXQgY2Fu IGJlLCBob3dldmVyLAorYWxzbyB1c2VkIHRvIGNoYW5nZSB0aGUgZGVmYXVsdCBiZWhhdmlv ciBpbiBhIG1vcmUgcHJvZm91bmQgd2F5LgorCisgICBMZXQncyBjb25zaWRlciBhIHVzZXIg d2hvLCBhcyBhIHJ1bGUsIHByZWZlcnMgdG8gZGlzcGxheSBidWZmZXJzIG9uCithbm90aGVy IGZyYW1lLiAgU3VjaCBhIHVzZXIgbWlnaHQgcHJvdmlkZSB0aGUgZm9sbG93aW5nIGN1c3Rv bWl6YXRpb246CisKK0BleGFtcGxlCitAZ3JvdXAKKyhjdXN0b21pemUtc2V0LXZhcmlhYmxl CisgJ2Rpc3BsYXktYnVmZmVyLWJhc2UtYWN0aW9uCisgJygoZGlzcGxheS1idWZmZXItcmV1 c2Utd2luZG93IGRpc3BsYXktYnVmZmVyLXBvcC11cC1mcmFtZSkKKyAgIChyZXVzYWJsZS1m cmFtZXMgLiAwKSkpCitAZW5kIGdyb3VwCitAZW5kIGV4YW1wbGUKKworQG5vaW5kZW50CitU aGlzIHNldHRpbmcgd2lsbCBjYXVzZUBjb2Rle2Rpc3BsYXktYnVmZmVyfSB0byBmaXJzdCB0 cnkgdG8gZmluZCBhCit3aW5kb3cgc2hvd2luZyB0aGUgYnVmZmVyIG9uIGEgdmlzaWJsZSBv ciBpY29uaWZpZWQgZnJhbWUgYW5kLCBpZiBubworc3VjaCBmcmFtZSBleGlzdHMsIHBvcCB1 cCBhIG5ldyBmcmFtZS4gIFlvdSBjYW4gb2JzZXJ2ZSB0aGlzIGJlaGF2aW9yCitvbiBhIGdy YXBoaWNhbCBzeXN0ZW0gYnkgdHlwaW5nIEB3e0BrYmR7Qy14IDF9fSBpbiB0aGUgd2luZG93 IHNob3dpbmcKK0BmaWxleypzY3JhdGNoKn0gYW5kIGV2YWx1YXRpbmcgdGhlIGNhbm9uaWNh bCBAY29kZXtkaXNwbGF5LWJ1ZmZlcn0KK2Zvcm0uICBUaGlzIHdpbGwgdXN1YWxseSBjcmVh dGUgKGFuZCBnaXZlIGZvY3VzIHRvKSBhIG5ldyBmcmFtZSB3aG9zZQorcm9vdCB3aW5kb3cg c2hvd3MgQGZpbGV7KmZvbyp9LiAgSWNvbmlmeSB0aGF0IGZyYW1lIGFuZCBldmFsdWF0ZSB0 aGUKK2Nhbm9uaWNhbCBmb3JtIGFnYWluOiBAY29kZXtkaXNwbGF5LWJ1ZmZlcn0gd2lsbCBy ZXVzZSB0aGUgd2luZG93IG9uCit0aGUgbmV3IGZyYW1lICh1c3VhbGx5IHJhaXNpbmcgdGhl IGZyYW1lIGFuZCBnaXZpbmcgaXQgZm9jdXMgdG9vKS4KKworICAgT25seSBpZiBjcmVhdGlu ZyBhIG5ldyBmcmFtZSBmYWlscywgQGNvZGV7ZGlzcGxheS1idWZmZXJ9IHdpbGwKK2FwcGx5 IHRoZSBhY3Rpb25zIHN1cHBsaWVkIGJ5IEBjb2Rle2Rpc3BsYXktYnVmZmVyLWZhbGxiYWNr LWFjdGlvbn0KK3doaWNoIG1lYW5zIHRvIGFnYWluIHRyeSB0byByZXVzZSBhIHdpbmRvdywg cG9wIHVwIGEgbmV3IHdpbmRvdyBhbmQgc28KK29uLiAgQSB0cml2aWFsIHdheSB0byBtYWtl IGZyYW1lIGNyZWF0aW9uIGZhaWwgaXMgc3VwcGxpZWQgYnkgdGhlCitmb2xsb3dpbmcgZm9y bToKKworQGV4YW1wbGUKK0Bncm91cAorKGxldCAoKHBvcC11cC1mcmFtZS1mdW5jdGlvbiAn aWdub3JlKSkKKyAgKGRpc3BsYXktYnVmZmVyIChnZXQtYnVmZmVyLWNyZWF0ZSAiKmZvbyoi KSkpCitAZW5kIGdyb3VwCitAZW5kIGV4YW1wbGUKKworQG5vaW5kZW50CitXZSB3aWxsIGZv cmdldCBhYm91dCB0aGF0IGZvcm0gaW1tZWRpYXRlbHkgYWZ0ZXIgb2JzZXJ2aW5nIHRoYXQg aXQKK2ZhaWxzIHRvIGNyZWF0ZSBhIG5ldyBmcmFtZSBhbmQgdXNlcyBhIGZhbGxiYWNrIGFj dGlvbiBpbnN0ZWFkLgorCisgICBOb3RlIHRoYXQgQGNvZGV7ZGlzcGxheS1idWZmZXItcmV1 c2Utd2luZG93fSBhcHBlYXJzIHJlZHVuZGFudCBpbgordGhlIGN1c3RvbWl6YXRpb24gb2Yg QGNvZGV7ZGlzcGxheS1idWZmZXItYmFzZS1hY3Rpb259IGJlY2F1c2UgaXQgaXMKK2FscmVh ZHkgcGFydCBvZiBAY29kZXtkaXNwbGF5LWJ1ZmZlci1mYWxsYmFjay1hY3Rpb259IGFuZCBz aG91bGQgYmUKK3RyaWVkIHRoZXJlIGFueXdheS4gIEhvd2V2ZXIsIHRoYXQgd291bGQgZmFp bCBiZWNhdXNlIGR1ZSB0byB0aGUKK3ByZWNlZGVuY2Ugb2YgQGNvZGV7ZGlzcGxheS1idWZm ZXItYmFzZS1hY3Rpb259IG92ZXIKK0Bjb2Rle2Rpc3BsYXktYnVmZmVyLWZhbGxiYWNrLWFj dGlvbn0sIGF0IHRoYXQgdGltZQorQGNvZGV7ZGlzcGxheS1idWZmZXItcG9wLXVwLWZyYW1l fSB3b3VsZCBoYXZlIGFscmVhZHkgd29uIHRoZSByYWNlLgorSW4gZmFjdAorCitAZXhhbXBs ZQorQGdyb3VwCisoY3VzdG9taXplLXNldC12YXJpYWJsZQorICdkaXNwbGF5LWJ1ZmZlci1i YXNlLWFjdGlvbgorICcoZGlzcGxheS1idWZmZXItcG9wLXVwLWZyYW1lIChyZXVzYWJsZS1m cmFtZXMgLiAwKSkpCitAZW5kIGdyb3VwCitAZW5kIGV4YW1wbGUKKworQG5vaW5kZW50Cit3 b3VsZCBjYXVzZSBAY29kZXtkaXNwbGF5LWJ1ZmZlcn0gdG8gQGVtcGh7YWx3YXlzfSBwb3Ag dXAgYSBuZXcgZnJhbWUKK3doaWNoIGlzIHByb2JhYmx5IG5vdCB3aGF0IG91ciB1c2VyIHdh bnRzLgorCisgICBTbyBmYXIsIHdlIGhhdmUgb25seSBzaG93biBob3cgQGVtcGh7dXNlcnN9 IGNhbiBjdXN0b21pemUgdGhlCitkZWZhdWx0IGJlaGF2aW9yIG9mIEBjb2Rle2Rpc3BsYXkt YnVmZmVyfS4gIExldCB1cyBub3cgc2VlIGhvdworQGVtcGh7YXBwbGljYXRpb25zfSBjYW4g Y2hhbmdlIHRoZSBjb3Vyc2Ugb2YgQGNvZGV7ZGlzcGxheS1idWZmZXJ9LgorVGhlIGNhbm9u aWNhbCB3YXkgdG8gZG8gdGhhdCBpcyB0byB1c2UgdGhlIEB2YXJ7YWN0aW9ufSBhcmd1bWVu dCBvZgorQGNvZGV7ZGlzcGxheS1idWZmZXJ9IG9yIHRoZSBmdW5jdGlvbiB0aGF0IGV2ZW50 dWFsbHkgZW5kcyB1cCBjYWxsaW5nCitpdC4KKworICAgU3VwcG9zZSBhbiBhcHBsaWNhdGlv biB3YW50cyB0byBkaXNwbGF5IEBmaWxleypmb28qfSBwcmVmZXJhYmx5CitiZWxvdyB0aGUg c2VsZWN0ZWQgd2luZG93ICh0byBpbW1lZGlhdGVseSBhdHRyYWN0IHRoZSBhdHRlbnRpb24g b2YgdGhlCit1c2VyIHRvIHRoZSBuZXcgd2luZG93KSBvciwgaWYgdGhhdCBmYWlscywgaW4g YSB3aW5kb3cgYXQgdGhlIGJvdHRvbQorb2YgdGhlIGZyYW1lLiAgSXQgY291bGQgZG8gdGhh dCB3aXRoIGEgY2FsbCBsaWtlCisKK0BleGFtcGxlCitAZ3JvdXAKKyhkaXNwbGF5LWJ1ZmZl cgorIChnZXQtYnVmZmVyLWNyZWF0ZSAiKmZvbyoiKQorICcoKGRpc3BsYXktYnVmZmVyLWJl bG93LXNlbGVjdGVkIGRpc3BsYXktYnVmZmVyLWF0LWJvdHRvbSkpKQorQGVuZCBncm91cAor QGVuZCBleGFtcGxlCisKK0Bub2luZGVudAorSW4gb3JkZXIgdG8gc2VlIGhvdyB0aGlzIG5l dywgbW9kaWZpZWQgZm9ybSB3b3JrcywgZGVsZXRlIGFueSBmcmFtZQorc2hvd2luZyBAZmls ZXsqZm9vKn0sIHR5cGUgQHd7QGtiZHtDLXggMX19IGZvbGxvd2VkIGJ5IEB3e0BrYmR7Qy14 IDJ9fSBpbiB0aGUKK3dpbmRvdyBzaG93aW5nIEBmaWxleypzY3JhdGNoKn0gYW5kIHN1YnNl cXVlbnRseSBldmFsdWF0ZSB0aGF0IGZvcm0uCitAY29kZXtkaXNwbGF5LWJ1ZmZlcn0gc2hv dWxkIHNwbGl0IHRoZSB1cHBlciB3aW5kb3cgYW5kIHNob3cKK0BmaWxleypmb28qfSBpbiB0 aGUgbmV3IHdpbmRvdy4gIEFsdGVybmF0aXZlbHksIGlmIGFmdGVyIEB3e0BrYmR7Qy14IDJ9 fQoreW91IGhhZCB0eXBlZCBAd3tAa2Jke0MteCBvfX0sIEBjb2Rle2Rpc3BsYXktYnVmZmVy fSB3b3VsZCBoYXZlIHNwbGl0IHRoZQord2luZG93IGF0IHRoZSBib3R0b20gaW5zdGVhZC4K KworICAgU3VwcG9zZSBub3cgdGhhdCwgYmVmb3JlIGV2YWx1YXRpbmcgdGhlIG5ldyBmb3Jt LCB5b3UgaGF2ZSBtYWRlIHRoZQorc2VsZWN0ZWQgd2luZG93IGFzIHNtYWxsIGFzIHBvc3Np YmxlLCBmb3IgZXhhbXBsZSwgYnkgZXZhbHVhdGluZyB0aGUKK2Zvcm0gQGNvZGV7KGZpdC13 aW5kb3ctdG8tYnVmZmVyKX0gaW4gdGhhdCB3aW5kb3cuICBJbiB0aGF0IGNhc2UsCitAY29k ZXtkaXNwbGF5LWJ1ZmZlcn0gd291bGQgaGF2ZSBmYWlsZWQgdG8gc3BsaXQgdGhlIHNlbGVj dGVkIHdpbmRvdworYW5kIHdvdWxkIGhhdmUgc3BsaXQgdGhlIGZyYW1lJ3Mgcm9vdCB3aW5k b3cgaW5zdGVhZCwgZWZmZWN0aXZlbHkKK2Rpc3BsYXlpbmcgQGZpbGV7KmZvbyp9IGF0IHRo ZSBib3R0b20gb2YgdGhlIGZyYW1lLgorCisgICBJbiBlaXRoZXIgY2FzZSwgZXZhbHVhdGlu ZyB0aGUgbmV3IGZvcm0gYSBzZWNvbmQgdGltZSBub3cgc2hvdWxkCityZXVzZSB0aGUgd2lu ZG93IGFscmVhZHkgc2hvd2luZyBAZmlsZXsqZm9vKn0gc2luY2UgYm90aCBmdW5jdGlvbnMK K3N1cHBsaWVkIGJ5IHRoZSBAdmFye2FjdGlvbn0gYXJndW1lbnQgdHJ5IHRvIHJldXNlIHN1 Y2ggYSB3aW5kb3cKK2ZpcnN0LgorCisgICBCeSBzZXR0aW5nIHRoZSBAdmFye2FjdGlvbn0g YXJndW1lbnQsIGFuIGFwcGxpY2F0aW9uIGVmZmVjdGl2ZWx5CitvdmVycnVsZXMgYW55IGN1 c3RvbWl6YXRpb24gb2YgQGNvZGV7ZGlzcGxheS1idWZmZXItYmFzZS1hY3Rpb259LiAgT3Vy Cit1c2VyIGNhbiBub3cgZWl0aGVyIGFjY2VwdCB0aGUgY2hvaWNlIG9mIHRoZSBhcHBsaWNh dGlvbiBvciByZWRvdWJsZQorYnkgY3VzdG9taXppbmcgdGhlIG9wdGlvbiBAY29kZXtkaXNw bGF5LWJ1ZmZlci1hbGlzdH0gYXMgZm9sbG93czoKKworQGV4YW1wbGUKK0Bncm91cAorKGN1 c3RvbWl6ZS1zZXQtdmFyaWFibGUKKyAnZGlzcGxheS1idWZmZXItYWxpc3QKKyAnKCgiXFwq Zm9vXFwqIgorICAgIChkaXNwbGF5LWJ1ZmZlci1yZXVzZS13aW5kb3cgZGlzcGxheS1idWZm ZXItcG9wLXVwLWZyYW1lKSkpKQorQGVuZCBncm91cAorQGVuZCBleGFtcGxlCisKK0Bub2lu ZGVudAorVHJ5aW5nIHRoaXMgd2l0aCB0aGUgbmV3LCBtb2RpZmllZCBmb3JtIGFib3ZlIGlu IGEgY29uZmlndXJhdGlvbiB0aGF0Citkb2VzIG5vdCBzaG93IEBmaWxleypmb28qfSBhbnl3 aGVyZSwgd2lsbCBkaXNwbGF5IEBmaWxleypmb28qfSBvbiBhCitzZXBhcmF0ZSBmcmFtZSwg Y29tcGxldGVseSBpZ25vcmluZyB0aGUgQHZhcnthY3Rpb259IGFyZ3VtZW50IG9mCitAY29k ZXtkaXNwbGF5LWJ1ZmZlcn0uCisKKyAgIE5vdGUgdGhhdCB3ZSBkaWRuJ3QgY2FyZSB0byBz cGVjaWZ5IGEgQGNvZGV7cmV1c2FibGUtZnJhbWVzfSBhY3Rpb24KK2FsaXN0IGVudHJ5IGlu IG91ciBzcGVjaWZpY2F0aW9uIG9mIEBjb2Rle2Rpc3BsYXktYnVmZmVyLWFsaXN0fS4KK0Bj b2Rle2Rpc3BsYXktYnVmZmVyfSBhbHdheXMgdGFrZXMgdGhlIGZpcnN0IG9uZSBpdCBmaW5k cy0tLWluIG91cgorY2FzZSB0aGUgb25lIHNwZWNpZmllZCBieSBAY29kZXtkaXNwbGF5LWJ1 ZmZlci1iYXNlLWFjdGlvbn0uICBJZiB3ZQord2FudGVkIHRvIHVzZSBhIGRpZmZlcmVudCBz cGVjaWZpY2F0aW9uLCBmb3IgZXhhbXBsZSwgdG8gZXhjbHVkZQoraWNvbmlmaWVkIGZyYW1l cyBzaG93aW5nIEBmaWxleypmb28qfSBmcm9tIHRoZSBsaXN0IG9mIHJldXNhYmxlIG9uZXMs Cit3ZSB3b3VsZCBoYXZlIHRvIHNwZWNpZnkgdGhhdCBzZXBhcmF0ZWx5LCBob3dldmVyOgor CitAZXhhbXBsZQorQGdyb3VwCisoY3VzdG9taXplLXNldC12YXJpYWJsZQorICdkaXNwbGF5 LWJ1ZmZlci1hbGlzdAorICcoKCJcXCpmb29cXCoiCisgICAgKGRpc3BsYXktYnVmZmVyLXJl dXNlLXdpbmRvdyBkaXNwbGF5LWJ1ZmZlci1wb3AtdXAtZnJhbWUpCisgICAgKHJldXNhYmxl LWZyYW1lcyAuIHZpc2libGUpKSkpCitAZW5kIGdyb3VwCitAZW5kIGV4YW1wbGUKKworQG5v aW5kZW50CitJZiB5b3UgdHJ5IHRoaXMsIHlvdSB3aWxsIG5vdGljZSB0aGF0IHJlcGVhdGVk IGF0dGVtcHRzIHRvIGRpc3BsYXkKK0BmaWxleypmb28qfSB3aWxsIHN1Y2NlZWQgdG8gcmV1 c2UgYSBmcmFtZSBvbmx5IGlmIHRoYXQgZnJhbWUgaXMKK3Zpc2libGUuCisKKyAgIFRoZSBh Ym92ZSBleGFtcGxlIHdvdWxkIGFsbG93IHRoZSBjb25jbHVzaW9uIHRoYXQgdXNlcnMgY3Vz dG9taXplCitAY29kZXtkaXNwbGF5LWJ1ZmZlci1hbGlzdH0gZm9yIHRoZSBzb2xlIHB1cnBv c2UgdG8gb3ZlcnJ1bGUgdGhlCitAdmFye2FjdGlvbn0gYXJndW1lbnQgY2hvc2VuIGJ5IGFw cGxpY2F0aW9ucy4gIFN1Y2ggYSBjb25jbHVzaW9uIHdvdWxkCitiZSBpbmNvcnJlY3QuICBA Y29kZXtkaXNwbGF5LWJ1ZmZlci1hbGlzdH0gaXMgdGhlIHN0YW5kYXJkIG9wdGlvbiBmb3IK K3VzZXJzIHRvIGRpcmVjdCB0aGUgY291cnNlIG9mIGRpc3BsYXkgb2Ygc3BlY2lmaWMgYnVm ZmVycyBpbiBhCitwcmVmZXJyZWQgd2F5IHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgZGlz cGxheSBpcyBhbHNvIGd1aWRlZCBieSBhbgorQHZhcnthY3Rpb259IGFyZ3VtZW50LgorCisg ICBXZSBjYW4sIGhvd2V2ZXIsIHJlYXNvbmFibHkgY29uY2x1ZGUgdGhhdCBjdXN0b21pemlu ZworQGNvZGV7ZGlzcGxheS1idWZmZXItYWxpc3R9IGRpZmZlcnMgZnJvbSBjdXN0b21pemlu ZworQGNvZGV7ZGlzcGxheS1idWZmZXItYmFzZS1hY3Rpb259IGluIHR3byBtYWpvciBhc3Bl Y3RzOiBJdCBpcyBzdHJvbmdlcgorYmVjYXVzZSBpdCBvdmVycmlkZXMgdGhlIEB2YXJ7YWN0 aW9ufSBhcmd1bWVudCBvZgorQGNvZGV7ZGlzcGxheS1idWZmZXJ9LiAgQW5kIGl0IGFsbG93 cyB0byBleHBsaWNpdGx5IHNwZWNpZnkgYWxsCithZmZlY3RlZCBidWZmZXJzLiAgSW4gZmFj dCBkaXNwbGF5aW5nIG90aGVyIGJ1ZmZlcnMgaXMgbm90IGFmZmVjdGVkIGluCithbnkgd2F5 IGJ5IGEgY3VzdG9taXphdGlvbiBmb3IgQGZpbGV7KmZvbyp9LiAgRm9yIGV4YW1wbGUsCisK K0BleGFtcGxlCisoZGlzcGxheS1idWZmZXIgKGdldC1idWZmZXItY3JlYXRlICIqYmFyKiIp KQorQGVuZCBleGFtcGxlCisKK0Bub2luZGVudAorY29udGludWVzIGJlaW5nIGdvdmVybmVk IGJ5IHRoZSBzZXR0aW5ncyBvZgorQGNvZGV7ZGlzcGxheS1idWZmZXItYmFzZS1hY3Rpb259 IGFuZAorQGNvZGV7ZGlzcGxheS1idWZmZXItZmFsbGJhY2stYWN0aW9ufSBvbmx5LgorCisg ICBXZSBjb3VsZCBzdG9wIHdpdGggb3VyIGV4YW1wbGVzIGhlcmUgYnV0IGFwcGxpY2F0aW9u cyBzdGlsbCBoYXZlIGFuCithY2UgdXAgdGhlaXIgc2xlZXZlcyB3aGljaCB0aGV5IGNhbiB1 c2UgdG8gb3ZlcnJ1bGUgYW55IGN1c3RvbWl6YXRpb24KK29mIEBjb2Rle2Rpc3BsYXktYnVm ZmVyLWFsaXN0fS4gIEl0J3MgdGhlIHZhcmlhYmxlCitAY29kZXtkaXNwbGF5LWJ1ZmZlci1v dmVycmlkaW5nLWFjdGlvbn0gd2hpY2ggdGhleSBjYW4gYmluZCBhcm91bmQKK0Bjb2Rle2Rp c3BsYXktYnVmZmVyfSBjYWxscyBhcyBmb2xsb3dzOgorCitAZXhhbXBsZQorQGdyb3VwCiso bGV0ICgoZGlzcGxheS1idWZmZXItb3ZlcnJpZGluZy1hY3Rpb24gJygoZGlzcGxheS1idWZm ZXItc2FtZS13aW5kb3cpKSkpCisgIChkaXNwbGF5LWJ1ZmZlcgorICAgKGdldC1idWZmZXIt Y3JlYXRlICIqZm9vKiIpCisgICAnKChkaXNwbGF5LWJ1ZmZlci1iZWxvdy1zZWxlY3RlZCBk aXNwbGF5LWJ1ZmZlci1hdC1ib3R0b20pKSkpCitAZW5kIGdyb3VwCitAZW5kIGV4YW1wbGUK KworQG5vaW5kZW50CitFdmFsdWF0aW5nIHRoaXMgZm9ybSB3aWxsIHVzdWFsbHkgZGlzcGxh eSBAZmlsZXsqZm9vKn0gaW4gdGhlIHNlbGVjdGVkCit3aW5kb3cgcmVnYXJkbGVzcyBvZiB0 aGUgQHZhcnthY3Rpb259IGFyZ3VtZW50IGFuZCBhbnkgdXNlcgorY3VzdG9taXphdGlvbnMu ICBJdCBtaWdodCBiZSBpbGx1c3RyYXRpdmUgdG8gbG9vayBhdCB0aGUgbGlzdCBvZgorYWN0 aW9uIGZ1bmN0aW9ucyBAY29kZXtkaXNwbGF5LWJ1ZmZlcn0gd291bGQgaGF2ZSB0cmllZCB0 byBkaXNwbGF5CitAZmlsZXsqZm9vKn0gd2l0aCB0aGUgY3VzdG9taXphdGlvbnMgd2UgcHJv dmlkZWQgZWFybGllci4gIFRoZSBsaXN0CisoaW5jbHVkaW5nIGNvbW1lbnRzIGV4cGxhaW5p bmcgd2hvIGFkZGVkIHRoaXMgYW5kIHRoZSBzdWJzZXF1ZW50CitlbGVtZW50cykgaXM6CisK K0BleGFtcGxlCitAZ3JvdXAKKyhkaXNwbGF5LWJ1ZmZlci1zYW1lLXdpbmRvdyAgOzsgYGRp c3BsYXktYnVmZmVyLW92ZXJyaWRpbmctYWN0aW9uJworIGRpc3BsYXktYnVmZmVyLXJldXNl LXdpbmRvdyA7OyBgZGlzcGxheS1idWZmZXItYWxpc3QnCisgZGlzcGxheS1idWZmZXItcG9w LXVwLWZyYW1lCisgZGlzcGxheS1idWZmZXItYmVsb3ctc2VsZWN0ZWQgOzsgQUNUSU9OIGFy Z3VtZW50CisgZGlzcGxheS1idWZmZXItYXQtYm90dG9tCisgZGlzcGxheS1idWZmZXItcmV1 c2Utd2luZG93IDs7IGBkaXNwbGF5LWJ1ZmZlci1iYXNlLWFjdGlvbicKKyBkaXNwbGF5LWJ1 ZmZlci1wb3AtdXAtZnJhbWUKKyBkaXNwbGF5LWJ1ZmZlci0tbWF5YmUtc2FtZS13aW5kb3cg OzsgYGRpc3BsYXktYnVmZmVyLWZhbGxiYWNrLWFjdGlvbicKKyBkaXNwbGF5LWJ1ZmZlci1y ZXVzZS13aW5kb3cKKyBkaXNwbGF5LWJ1ZmZlci0tbWF5YmUtcG9wLXVwLWZyYW1lLW9yLXdp bmRvdworIGRpc3BsYXktYnVmZmVyLWluLXByZXZpb3VzLXdpbmRvdworIGRpc3BsYXktYnVm ZmVyLXVzZS1zb21lLXdpbmRvdworIGRpc3BsYXktYnVmZmVyLXBvcC11cC1mcmFtZSkKK0Bl bmQgZ3JvdXAKK0BlbmQgZXhhbXBsZQorCitAbm9pbmRlbnQKK0Ftb25nIHRoZSBpbnRlcm5h bCBmdW5jdGlvbnMgbGlzdGVkIGhlcmUKK0Bjb2Rle2Rpc3BsYXktYnVmZmVyLS1tYXliZS1z YW1lLXdpbmRvd30gaXMgZWZmZWN0aXZlbHkgaWdub3JlZCB3aGlsZQorQGNvZGV7ZGlzcGxh eS1idWZmZXItLW1heWJlLXBvcC11cC1mcmFtZS1vci13aW5kb3d9IGFjdHVhbGx5IHJ1bnMK K0Bjb2Rle2Rpc3BsYXktYnVmZmVyLXBvcC11cC13aW5kb3d9LgorCitUaGUgYWN0aW9uIGFs aXN0IHBhc3NlZCBpbiBlYWNoIGZ1bmN0aW9uIGNhbGwgaXM6CisKK0BleGFtcGxlCitAZ3Jv dXAKKygocmV1c2FibGUtZnJhbWVzIC4gdmlzaWJsZSkKKyAocmV1c2FibGUtZnJhbWVzIC4g MCkpCitAZW5kIGdyb3VwCitAZW5kIGV4YW1wbGUKKworQG5vaW5kZW50Cit3aGljaCBzaG93 cyB0aGF0IHdlIGhhdmUgdXNlZCB0aGUgc2Vjb25kIHNwZWNpZmljYXRpb24gb2YKK0Bjb2Rl e2Rpc3BsYXktYnVmZmVyLWFsaXN0fSBhYm92ZS4gIFN1cHBvc2Ugb3VyIHVzZXIgaGFkIHdy aXR0ZW4gdGhhdAorYXMKKworQGV4YW1wbGUKK0Bncm91cAorKGN1c3RvbWl6ZS1zZXQtdmFy aWFibGUKKyAnZGlzcGxheS1idWZmZXItYWxpc3QKKyAnKCgiXFwqZm9vXFwqIgorICAgIChk aXNwbGF5LWJ1ZmZlci1yZXVzZS13aW5kb3cgZGlzcGxheS1idWZmZXItcG9wLXVwLWZyYW1l KQorICAgIChpbmhpYml0LXNhbWUtd2luZG93IC4gdCkKKyAgICAocmV1c2FibGUtZnJhbWVz IC4gdmlzaWJsZSkpKSkKK0BlbmQgZ3JvdXAKK0BlbmQgZXhhbXBsZQorCitAbm9pbmRlbnQK K0luIHRoaXMgY2FzZSB0aGUgQGNvZGV7aW5oaWJpdC1zYW1lLXdpbmRvd30gYWxpc3QgZW50 cnkgd2lsbAorc3VjY2Vzc2Z1bGx5IGludmFsaWRhdGUgdGhlIEBjb2Rle2Rpc3BsYXktYnVm ZmVyLXNhbWUtd2luZG93fQorc3BlY2lmaWNhdGlvbiBmcm9tIEBjb2Rle2Rpc3BsYXktYnVm ZmVyLW92ZXJyaWRpbmctYWN0aW9ufSBhbmQKK0Bjb2Rle2Rpc3BsYXktYnVmZmVyfSB3aWxs IHNob3cgQGZpbGV7KmZvbyp9IG9uIGFub3RoZXIgZnJhbWUuCisKKyAgIFRoaXMgbGFzdCBl eGFtcGxlIHNob3dzIHRoYXQgd2hpbGUgdGhlIHByZWNlZGVuY2Ugb3JkZXIgb2YgYWN0aW9u CitmdW5jdGlvbnMgaXMgZml4ZWQgYXMgZGVzY3JpYmVkIGluIEByZWZ7Q2hvb3NpbmcgV2lu ZG93fSwgYW4gYWN0aW9uCithbGlzdCBlbnRyeSBzcGVjaWZpZWQgYnkgYSBkaXNwbGF5IGFj dGlvbiByYW5rZWQgbG93ZXIgaW4gdGhhdCBvcmRlcgorY2FuIGFmZmVjdCB0aGUgZXhlY3V0 aW9uIG9mIGFuIGhpZ2hlciByYW5rZWQgZGlzcGxheSBhY3Rpb24uCisKKworQG5vZGUgVGhl IFplbiBvZiBCdWZmZXIgRGlzcGxheQorQHN1YnNlY3Rpb24gVGhlIFplbiBvZiBCdWZmZXIg RGlzcGxheQorCitJbiBpdHMgbW9zdCBzaW1wbGlzdGljIGZvcm0sIGEgZnJhbWUgYWNjb21t b2RhdGVzIGFsd2F5cyBvbmUgc2luZ2xlCit3aW5kb3cgdGhhdCBjYW4gYmUgdXNlZCBmb3Ig ZGlzcGxheWluZyBhIGJ1ZmZlci4gIEFzIGEgY29uc2VxdWVuY2UsIGl0CitpcyBhbHdheXMg dGhlIGxhdGVzdCBjYWxsIG9mIEBjb2Rle2Rpc3BsYXktYnVmZmVyfSB0aGF0IHdpbGwgaGF2 ZQorc3VjY2VlZGVkIGluIHBsYWNpbmcgaXRzIGJ1ZmZlciB0aGVyZS4KKworICAgU2luY2Ug d29ya2luZyB3aXRoIHN1Y2ggYSBmcmFtZSBpcyBub3QgdmVyeSBwcmFjdGljYWwsIEVtYWNz IGJ5CitkZWZhdWx0IGFsbG93cyBmb3IgbW9yZSBjb21wbGV4IGZyYW1lIGxheW91dHMgY29u dHJvbGxlZCBieSB0aGUKK2RlZmF1bHQgdmFsdWVzIG9mIHRoZSBmcmFtZSBzaXplIGFuZCB0 aGUgQGNvZGV7c3BsaXQtaGVpZ2h0LXRocmVzaG9sZH0KK2FuZCBAY29kZXtzcGxpdC13aWR0 aC10aHJlc2hvbGR9IG9wdGlvbnMuICBEaXNwbGF5aW5nIGEgYnVmZmVyIG5vdCB5ZXQKK3No b3duIG9uIGEgZnJhbWUgdGhlbiBlaXRoZXIgc3BsaXRzIHRoZSBzaW5nbGUgd2luZG93IG9u IHRoYXQgZnJhbWUgb3IKKyhyZS0pdXNlcyBvbmUgb2YgaXRzIHR3byB3aW5kb3dzLgorCisg ICBUaGUgZGVmYXVsdCBiZWhhdmlvciBpcyBhYmFuZG9uZWQgYXMgc29vbiBhcyB0aGUgdXNl ciBjdXN0b21pemVzCitvbmUgb2YgdGhlc2UgdGhyZXNob2xkcyBvciBtYW51YWxseSBjaGFu Z2VzIHRoZSBmcmFtZSdzIGxheW91dC4gIFRoZQorZGVmYXVsdCBiZWhhdmlvciBpcyBhbHNv IGFiYW5kb25lZCB3aGVuIGNhbGxpbmcgQGNvZGV7ZGlzcGxheS1idWZmZXJ9Cit3aXRoIGEg bm9uLUBjb2Rle25pbH0gQHZhcnthY3Rpb259IGFyZ3VtZW50IG9yIHRoZSB1c2VyIGN1c3Rv bWl6ZXMgb25lCitvZiB0aGUgb3B0aW9ucyBtZW50aW9uZWQgaW4gdGhlIHByZXZpb3VzIHN1 YnNlY3Rpb25zLiAgTWFzdGVyaW5nCitAY29kZXtkaXNwbGF5LWJ1ZmZlcn0gc29vbiBtYXkg YmVjb21lIGEgZnJ1c3RyYXRpbmcgZXhwZXJpZW5jZSBkdWUgdG8KK3RoZSBwbGV0aG9yYSBv ZiBhcHBsaWNhYmxlIGRpc3BsYXkgYWN0aW9ucyBhbmQgdGhlIHJlc3VsdGluZyBmcmFtZQor bGF5b3V0cy4KKworICAgSG93ZXZlciwgcmVmcmFpbmluZyBmcm9tIHVzaW5nIGJ1ZmZlciBk aXNwbGF5IGZ1bmN0aW9ucyBhbmQgZmFsbGluZworYmFjayBvbiBhIHNwbGl0ICYgZGVsZXRl IHdpbmRvd3MgbWV0YXBob3IgaXMgbm90IGEgZ29vZCBpZGVhIGVpdGhlci4KK0J1ZmZlciBk aXNwbGF5IGZ1bmN0aW9ucyBnaXZlIGFwcGxpY2F0aW9ucyBhbmQgdXNlcnMgYSBmcmFtZXdv cmsgdG8KK3JlY29uY2lsZSB0aGVpciBkaWZmZXJlbnQgbmVlZHM7IG5vIGNvbXBhcmFibGUg ZnJhbWV3b3JrIGV4aXN0cyBmb3IKK3NwbGl0dGluZyBhbmQgZGVsZXRpbmcgd2luZG93cy4g IFRoZXkgYWxzbyBhbGxvdyB0byBhdCBsZWFzdCBwYXJ0aWFsbHkKK3Jlc3RvcmUgdGhlIGxh eW91dCBvZiBhIGZyYW1lIHdoZW4gcmVtb3ZpbmcgYSBidWZmZXIgZnJvbSBpdCBsYXRlcgor KEBweHJlZntRdWl0dGluZyBXaW5kb3dzfSkuCisKKyAgIEJlbG93IHdlIHdpbGwgZ2l2ZSBh IG51bWJlciBvZiBndWlkZWxpbmVzIHRvIHJlZGVlbSB0aGUgZnJ1c3RyYXRpb24KK21lbnRp b25lZCBhYm92ZSBhbmQgdGh1cyB0byBhdm9pZCB0aGF0IGJ1ZmZlcnMgbGl0ZXJhbGx5IGdl dCBsb3N0IGluCitiZXR3ZWVuIHRoZSB3aW5kb3dzIG9mIGEgZnJhbWUuCisKK0B0YWJsZSBA YXNpcworQGl0ZW0gV3JpdGUgZGlzcGxheSBhY3Rpb25zIHdpdGhvdXQgc3RyZXNzCitXcml0 aW5nIGRpc3BsYXkgYWN0aW9ucyBjYW4gYmUgYSBwYWluIGJlY2F1c2Ugb25lIGhhcyB0byBs dW1wIHRvZ2V0aGVyCithY3Rpb24gZnVuY3Rpb25zIGFuZCBhY3Rpb24gYWxpc3RzIGluIG9u ZSBodWdlIGxpc3QuICAoSGlzdG9yaWNhbAorcmVhc29ucyBwcmV2ZW50ZWQgdXMgZnJvbSBo YXZpbmcgQGNvZGV7ZGlzcGxheS1idWZmZXJ9IHN1cHBvcnQKK3NlcGFyYXRlIGFyZ3VtZW50 cyBmb3IgdGhlc2UuKSAgSXQgbWlnaHQgaGVscCB0byBtZW1vcml6ZSBzb21lIGJhc2ljCitm b3JtcyBsaWtlIHRoZSBvbmVzIGxpc3RlZCBiZWxvdzoKKworQGV4YW1wbGUKKycobmlsIChp bmhpYml0LXNhbWUtd2luZG93IC4gdCkpCitAZW5kIGV4YW1wbGUKKworQG5vaW5kZW50Citz cGVjaWZpZXMgYW4gYWN0aW9uIGFsaXN0IGVudHJ5IG9ubHkgYW5kIG5vIGFjdGlvbiBmdW5j dGlvbi4gIEl0cyBzb2xlCitwdXJwb3NlIGlzIHRvIGluaGliaXQgYSBAY29kZXtkaXNwbGF5 LWJ1ZmZlci1zYW1lLXdpbmRvd30gZnVuY3Rpb24KK3NwZWNpZmllZCBlbHNld2hlcmUgZnJv bSBzaG93aW5nIHRoZSBidWZmZXIgaW4gdGhlIHNhbWUgd2luZG93LCBzZWUKK2Fsc28gdGhl IGxhc3QgZXhhbXBsZSBvZiB0aGUgcHJlY2VkaW5nIHN1YnNlY3Rpb24uCisKK0BleGFtcGxl CisnKGRpc3BsYXktYnVmZmVyLWJlbG93LXNlbGVjdGVkKQorQGVuZCBleGFtcGxlCisKK29u IHRoZSBvdGhlciBoYW5kIHNwZWNpZmllcyBvbmUgYWN0aW9uIGZ1bmN0aW9uIGFuZCBhbiBl bXB0eSBhY3Rpb24KK2FsaXN0LiAgVG8gY29tYmluZSB0aGUgZWZmZWN0cyBvZiB0aGUgYWJv dmUgdHdvIHNwZWNpZmljYXRpb25zIG9uZQord291bGQgd3JpdGUgdGhlIGZvcm0KKworQGV4 YW1wbGUKKycoZGlzcGxheS1idWZmZXItYmVsb3ctc2VsZWN0ZWQgKGluaGliaXQtc2FtZS13 aW5kb3cgLiB0KSkKK0BlbmQgZXhhbXBsZQorCit0byBhZGQgYW5vdGhlciBhY3Rpb24gZnVu Y3Rpb24gb25lIHdvdWxkIHdyaXRlCisKK0BleGFtcGxlCitAZ3JvdXAKKycoKGRpc3BsYXkt YnVmZmVyLWJlbG93LXNlbGVjdGVkIGRpc3BsYXktYnVmZmVyLWF0LWJvdHRvbSkKKyAgKGlu aGliaXQtc2FtZS13aW5kb3cgLiB0KSkKK0BlbmQgZ3JvdXAKK0BlbmQgZXhhbXBsZQorCith bmQgdG8gYWRkIGFub3RoZXIgYWxpc3QgZW50cnkgb25lIHdvdWxkIHdyaXRlCisKK0BleGFt cGxlCitAZ3JvdXAKKycoKGRpc3BsYXktYnVmZmVyLWJlbG93LXNlbGVjdGVkIGRpc3BsYXkt YnVmZmVyLWF0LWJvdHRvbSkKKyAgKGluaGliaXQtc2FtZS13aW5kb3cgLiB0KSAod2luZG93 LWhlaWdodCAuIGZpdC13aW5kb3ctdG8tYnVmZmVyKSkKK0BlbmQgZ3JvdXAKK0BlbmQgZXhh bXBsZQorCitUaGF0IGxhc3QgZm9ybSBjYW4gYmUgdXNlZCBhcyBAdmFye2FjdGlvbn0gYXJn dW1lbnQgb2YKK0Bjb2Rle2Rpc3BsYXktYnVmZmVyfSBpbiB0aGUgZm9sbG93aW5nIHdheToK KworQGV4YW1wbGUKK0Bncm91cAorKGRpc3BsYXktYnVmZmVyCisgKGdldC1idWZmZXItY3Jl YXRlICIqZm9vKiIpCisgJygoZGlzcGxheS1idWZmZXItYmVsb3ctc2VsZWN0ZWQgZGlzcGxh eS1idWZmZXItYXQtYm90dG9tKQorICAgKGluaGliaXQtc2FtZS13aW5kb3cgLiB0KSAod2lu ZG93LWhlaWdodCAuIGZpdC13aW5kb3ctdG8tYnVmZmVyKSkpCitAZW5kIGdyb3VwCitAZW5k IGV4YW1wbGUKKworSW4gYSBjdXN0b21pemF0aW9uIG9mIEBjb2Rle2Rpc3BsYXktYnVmZmVy LWFsaXN0fSBpdCB3b3VsZCBiZSB1c2VkIGFzCitmb2xsb3dzOgorCitAZXhhbXBsZQorQGdy b3VwCisoY3VzdG9taXplLXNldC12YXJpYWJsZQorICdkaXNwbGF5LWJ1ZmZlci1hbGlzdAor ICcoKCJcXCpmb29cXCoiCisgICAgKGRpc3BsYXktYnVmZmVyLWJlbG93LXNlbGVjdGVkIGRp c3BsYXktYnVmZmVyLWF0LWJvdHRvbSkKKyAgICAoaW5oaWJpdC1zYW1lLXdpbmRvdyAuIHQp ICh3aW5kb3ctaGVpZ2h0IC4gZml0LXdpbmRvdy10by1idWZmZXIpKSkpCitAZW5kIGdyb3Vw CitAZW5kIGV4YW1wbGUKKworVG8gYWRkIGEgY3VzdG9taXphdGlvbiBmb3IgYSBzZWNvbmQg YnVmZmVyIG9uZSB3b3VsZCB0aGVuIHdyaXRlOgorCitAZXhhbXBsZQorQGdyb3VwCisoY3Vz dG9taXplLXNldC12YXJpYWJsZQorICdkaXNwbGF5LWJ1ZmZlci1hbGlzdAorICcoKCJcXCpm b29cXCoiCisgICAgKGRpc3BsYXktYnVmZmVyLWJlbG93LXNlbGVjdGVkIGRpc3BsYXktYnVm ZmVyLWF0LWJvdHRvbSkKKyAgICAoaW5oaWJpdC1zYW1lLXdpbmRvdyAuIHQpICh3aW5kb3ct aGVpZ2h0IC4gZml0LXdpbmRvdy10by1idWZmZXIpKQorICAgKCJcXCpiYXJcXCoiCisgICAg KGRpc3BsYXktYnVmZmVyLXJldXNlLXdpbmRvdyBkaXNwbGF5LWJ1ZmZlci1wb3AtdXAtZnJh bWUpCisgICAgKHJldXNhYmxlLWZyYW1lcyAuIHZpc2libGUpKSkpCitAZW5kIGdyb3VwCitA ZW5kIGV4YW1wbGUKKworQGl0ZW0gVHJlYXQgZWFjaCBvdGhlciB3aXRoIHJlc3BlY3QKK0Bj b2Rle2Rpc3BsYXktYnVmZmVyLWFsaXN0fSBhbmQgQGNvZGV7ZGlzcGxheS1idWZmZXItYmFz ZS1hY3Rpb259IGFyZQordXNlciBvcHRpb25zLS0tYXBwbGljYXRpb25zIG11c3QgbmV2ZXIg c2V0IG9yIHJlYmluZCB0aGVtLgorQGNvZGV7ZGlzcGxheS1idWZmZXItb3ZlcnJpZGluZy1h Y3Rpb259LCBvbiB0aGUgb3RoZXIgaGFuZCwgaXMKK3Jlc2VydmVkIGZvciBhcHBsaWNhdGlv bnMtLS13aG8gc2VsZG9tIHVzZSB0aGF0IG9wdGlvbiBhbmQgaWYgdGhleSB1c2UKK2l0LCB0 aGVuIHdpdGggdXRtb3N0IGNhcmUuCisKKyAgIE9sZGVyIGltcGxlbWVudGF0aW9ucyBvZiBA Y29kZXtkaXNwbGF5LWJ1ZmZlcn0gZnJlcXVlbnRseSBjYXVzZWQKK3VzZXJzIGFuZCBhcHBs aWNhdGlvbnMgdG8gZmlnaHQgb3ZlciB0aGUgc2V0dGluZ3Mgb2YgdXNlciBvcHRpb25zIGxp a2UKK0Bjb2Rle3BvcC11cC1mcmFtZXN9IGFuZCBAY29kZXtwb3AtdXAtd2luZG93c30gKEBw eHJlZntDaG9vc2luZyBXaW5kb3cKK09wdGlvbnN9KS4gIFRoaXMgd2FzIG9uZSBtYWpvciBy ZWFzb24gZm9yIHJlZGVzaWduaW5nCitAY29kZXtkaXNwbGF5LWJ1ZmZlcn0tLS10byBwcm92 aWRlIGEgY2xlYXIgcnVsZSBkaXZpZGluZyB3aGF0IHVzZXJzCithbmQgYXBwbGljYXRpb25z IHNob3VsZCBiZSBhbGxvd2VkIHRvIGRvLgorCisgICBBcHBsaWNhdGlvbnMgbXVzdCBiZSBw cmVwYXJlZCB0aGF0IGEgdXNlcidzIGN1c3RvbWl6YXRpb25zIG1heQorY2F1c2UgYnVmZmVy cyB0byBnZXQgZGlzcGxheWVkIGluIGFuIHVuZXhwZWN0ZWQgd2F5LiAgVGhleSBzaG91bGQK K25ldmVyIGFzc3VtZSBpbiB0aGVpciBzdWJzZXF1ZW50IGJlaGF2aW9yLCB0aGF0IHRoZSBi dWZmZXIgaGFzIGJlZW4KK3Nob3duIHByZWNpc2VseSB0aGUgd2F5IHRoZXkgYXNrZWQgZm9y IGluIHRoZSBAdmFye2FjdGlvbn0gYXJndW1lbnQgb2YKK0Bjb2Rle2Rpc3BsYXktYnVmZmVy fS4KKworICAgVXNlcnMgc2hvdWxkIG5vdCBwb3NlIHRvbyBtYW55IGFuZCB0b28gc2V2ZXJl IHJlc3RyaWN0aW9ucyBvbiBob3cKK2FyYml0cmFyeSBidWZmZXJzIGdldHMgZGlzcGxheWVk LiAgT3RoZXJ3aXNlLCB0aGV5IHdpbGwgcmlzayB0byBsb3NlCit0aGUgY2hhcmFjdGVyaXN0 aWNzIG9mIHNob3dpbmcgYSBidWZmZXIgZm9yIGEgY2VydGFpbiBwdXJwb3NlLgorU3VwcG9z ZSBhbiBhcHBsaWNhdGlvbiBoYXMgYmVlbiB3cml0dGVuIHRvIGNvbXBhcmUgZGlmZmVyZW50 IHZlcnNpb25zCitvZiBhIGJ1ZmZlciBpbiB0d28gd2luZG93cyBzaWRlLWJ5LXNpZGUuICBJ ZiB0aGUgY3VzdG9taXphdGlvbiBvZgorQGNvZGV7ZGlzcGxheS1idWZmZXItYWxpc3R9IHBy ZXNjcmliZXMgdGhhdCBhbnkgc3VjaCBidWZmZXIgc2hvdWxkIGJlCithbHdheXMgc2hvd24g aW4gb3IgYmVsb3cgdGhlIHNlbGVjdGVkIHdpbmRvdywgdGhlIGFwcGxpY2F0aW9uIHdpbGwK K2hhdmUgYSBoYXJkIHRpbWUgdG8gc2V0IHVwIHRoZSBkZXNpcmVkIHdpbmRvdyBjb25maWd1 cmF0aW9uIHZpYQorQGNvZGV7ZGlzcGxheS1idWZmZXJ9LgorCisgICBUbyBzcGVjaWZ5IGEg cHJlZmVyZW5jZSBmb3Igc2hvd2luZyBhbiBhcmJpdHJhcnkgYnVmZmVyLCB1c2Vycworc2hv dWxkIGN1c3RvbWl6ZSBAY29kZXtkaXNwbGF5LWJ1ZmZlci1iYXNlLWFjdGlvbn0uICBBbiBl eGFtcGxlIG9mIGhvdwordXNlcnMgd2hvIHByZWZlciB3b3JraW5nIHdpdGggbXVsdGlwbGUg ZnJhbWVzIHdvdWxkIGRvIHRoYXQgd2FzIGdpdmVuCitpbiB0aGUgcHJldmlvdXMgc3Vic2Vj dGlvbi4gIEBjb2Rle2Rpc3BsYXktYnVmZmVyLWFsaXN0fSBzaG91bGQgYmUKK3Jlc2VydmVk IGZvciBkaXNwbGF5aW5nIHNwZWNpZmljIGJ1ZmZlcnMgaW4gYSBzcGVjaWZpYyB3YXkuCisK K0BpdGVtIENvbnNpZGVyIHJldXNpbmcgYSB3aW5kb3cgdGhhdCBhbHJlYWR5IHNob3dzIHRo ZSBidWZmZXIKK0dlbmVyYWxseSwgaXQncyBhbHdheXMgYSBnb29kIGlkZWEgZm9yIHVzZXJz IGFuZCBhcHBsaWNhdGlvbgorcHJvZ3JhbW1lcnMgdG8gYmUgcHJlcGFyZWQgZm9yIHRoZSBj YXNlIHRoYXQgYSB3aW5kb3cgYWxyZWFkeSBzaG93cwordGhlIGJ1ZmZlciBpbiBxdWVzdGlv biBhbmQgdG8gcmV1c2UgdGhhdCB3aW5kb3cuICBJbiB0aGUgcHJlY2VkaW5nCitzdWJzZWN0 aW9uIHdlIGhhdmUgc2hvd24gdGhhdCBmYWlsaW5nIHRvIGRvIHNvIHByb3Blcmx5IG1heSBj YXVzZQorQGNvZGV7ZGlzcGxheS1idWZmZXJ9IHRvIGNvbnRpbnVvdXNseSBwb3AgdXAgYSBu ZXcgZnJhbWUgYWx0aG91Z2ggYQorZnJhbWUgc2hvd2luZyB0aGF0IGJ1ZmZlciBleGlzdGVk IGFscmVhZHkuICBPbmx5IHNvbWV0aW1lcywgaXQgbWlnaHQKK2JlIHVuZGVzaXJhYmxlIHRv IHJldXNlIGEgd2luZG93LCBmb3IgZXhhbXBsZSwgd2hlbiBhIGRpZmZlcmVudAorcG9ydGlv biBvZiB0aGUgYnVmZmVyIHNob3VsZCBiZSBzaG93biBpbiB0aGF0IHdpbmRvdy4KKworICAg SGVuY2UsIEBjb2Rle2Rpc3BsYXktYnVmZmVyLXJldXNlLXdpbmRvd30gaXMgb25lIGFjdGlv biBmdW5jdGlvbgordGhhdCBzaG91bGQgYmUgdXNlZCBhcyBvZnRlbiBhcyBwb3NzaWJsZSwg Ym90aCBpbiBAdmFye2FjdGlvbn0KK2FyZ3VtZW50cyBhbmQgY3VzdG9taXphdGlvbnMuICBB biBAY29kZXtpbmhpYml0LXNhbWUtd2luZG93fSBlbnRyeSBpbgordGhlIEB2YXJ7YWN0aW9u fSBhcmd1bWVudCB1c3VhbGx5IHRha2VzIGNhcmUgb2YgdGhlIG1vc3QgY29tbW9uIGNhc2UK K3doZXJlIHJldXNpbmcgYSB3aW5kb3cgc2hvd2luZyB0aGUgYnVmZmVyIHNob3VsZCBiZSBh dm9pZGVkLS0tdGhhdAord2hlcmUgdGhlIHdpbmRvdyBpbiBxdWVzdGlvbiBpcyB0aGUgc2Vs ZWN0ZWQgb25lLgorCitAaXRlbSBBdHRyYWN0IGZvY3VzIHRvIHRoZSB3aW5kb3cgY2hvc2Vu CitUaGlzIGlzIGEgbm8tYnJhaW5lciBmb3IgcGVvcGxlIHdvcmtpbmcgd2l0aCBtdWx0aXBs ZSBmcmFtZXMtLS10aGUKK2ZyYW1lIHNob3dpbmcgdGhlIGJ1ZmZlciB3aWxsIGF1dG9tYXRp Y2FsbHkgcmFpc2UgYW5kIGdldCBmb2N1cyB1bmxlc3MKK2FuIEBjb2Rle2luaGliaXQtc3dp dGNoLWZyYW1lfSBlbnRyeSBmb3JiaWRzIGl0LiAgRm9yIHNpbmdsZSBmcmFtZQordXNlcnMg dGhpcyB0YXNrIGNhbiBiZSBjb25zaWRlcmFibHkgbW9yZSBkaWZmaWN1bHQuICBJbiBwYXJ0 aWN1bGFyLAorQGNvZGV7ZGlzcGxheS1idWZmZXItcG9wLXVwLXdpbmRvd30gYW5kCitAY29k ZXtkaXNwbGF5LWJ1ZmZlci11c2Utc29tZS13aW5kb3d9IGNhbiBiZWNvbWUgb2J0cnVzaXZl IGluIHRoaXMKK3JlZ2FyZC4gIFRoZXkgc3BsaXQgb3IgdXNlIGEgc2VlbWluZ2x5IGFyYml0 cmFyeSAob2Z0ZW4gdGhlIGxhcmdlc3Qgb3IKK2xlYXN0IHJlY2VudGx5IHVzZWQpIHdpbmRv dywgZGlzdHJhY3RpbmcgdGhlIHVzZXIncyBhdHRlbnRpb24uCisKK1NvbWUgYXBwbGljYXRp b25zIHRoZXJlZm9yZSB0cnkgdG8gY2hvb3NlIGEgd2luZG93IGF0IHRoZSBib3R0b20gb2YK K3RoZSBmcmFtZSwgZm9yIGV4YW1wbGUsIGluIG9yZGVyIHRvIGRpc3BsYXkgdGhlIGJ1ZmZl ciBpbiB2aWNpbml0eSBvZgordGhlIG1pbmlidWZmZXIgd2luZG93IHdoZXJlIHRoZSB1c2Vy IGlzIGV4cGVjdGVkIHRvIGFuc3dlciBhIHF1ZXN0aW9uCityZWxhdGVkIHRvIHRoZSBuZXcg d2luZG93LiAgRm9yIG5vbi1pbnB1dCByZWxhdGVkIGFjdGlvbnMKK0Bjb2Rle2Rpc3BsYXkt YnVmZmVyLWJlbG93LXNlbGVjdGVkfSBtaWdodCBiZSBwcmVmZXJhYmxlIGJlY2F1c2UgdGhl CitzZWxlY3RlZCB3aW5kb3cgdXN1YWxseSBhbHJlYWR5IGhhcyB0aGUgdXNlcidzIGF0dGVu dGlvbi4KKworQGl0ZW0gSGFuZGxlIHN1YnNlcXVlbnQgaW52b2NhdGlvbnMgb2YgQGNvZGV7 ZGlzcGxheS1idWZmZXJ9CitAY29kZXtkaXNwbGF5LWJ1ZmZlcn0gaXMgbm90IG92ZXJseSB3 ZWxsIHN1aXRlZCBmb3IgZGlzcGxheWluZyBzZXZlcmFsCitidWZmZXJzIGluIHNlcXVlbmNl IGFuZCBtYWtpbmcgc3VyZSB0aGF0IGFsbCB0aGVzZSBidWZmZXJzIGFyZSBzaG93bgorb3Jk ZXJseSBpbiB0aGUgcmVzdWx0aW5nIHdpbmRvdyBjb25maWd1cmF0aW9uLiAgQWdhaW4sIHRo ZSBzdGFuZGFyZAorYWN0aW9uIGZ1bmN0aW9ucyBAY29kZXtkaXNwbGF5LWJ1ZmZlci1wb3At dXAtd2luZG93fSBhbmQKK0Bjb2Rle2Rpc3BsYXktYnVmZmVyLXVzZS1zb21lLXdpbmRvd30g YXJlIG5vdCB2ZXJ5IHN1aXRlZCBmb3IgdGhpcworcHVycG9zZSBkdWUgdG8gdGhlaXIgc29t ZXdoYXQgY2hhb3RpYyBuYXR1cmUgaW4gbW9yZSBjb21wbGV4Citjb25maWd1cmF0aW9ucy4K KworICAgVG8gcHJvZHVjZSBhIHdpbmRvdyBjb25maWd1cmF0aW9uIGRpc3BsYXlpbmcgbXVs dGlwbGUgYnVmZmVycyAob3IKK2RpZmZlcmVudCB2aWV3cyBvZiBvbmUgYW5kIHRoZSBzYW1l IGJ1ZmZlcikgaW4gb25lIGFuZCB0aGUgc2FtZQorZGlzcGxheSBjeWNsZSwgYXBwbGljYXRp b24gcHJvZ3JhbW1lcnMgd2lsbCB1bmF2b2lkYWJseSBoYXZlIHRvIHdyaXRlCit0aGVpciBv d24gYWN0aW9uIGZ1bmN0aW9ucy4gIEEgZmV3IHRyaWNrcyBsaXN0ZWQgYmVsb3cgbWlnaHQg aGVscCBpbgordGhpcyByZWdhcmQuCisKK0BpdGVtaXplIEBidWxsZXQKK0BpdGVtCitNYWtp bmcgd2luZG93cyBhdG9taWMgKEBweHJlZntBdG9taWMgV2luZG93c30pIGF2b2lkcyB0aGF0 IGFuCitleGlzdGluZyB3aW5kb3cgY29tcG9zaXRpb24gZ2V0cyBicm9rZW4gd2hlbiBwb3Bw aW5nIHVwIGEgbmV3IHdpbmRvdy4KK1RoZSBuZXcgd2luZG93IHdpbGwgcG9wIHVwIG91dHNp ZGUgdGhlIGNvbXBvc2l0aW9uIGluc3RlYWQuCisKK0BpdGVtCitUZW1wb3JhcmlseSBkZWRp Y2F0aW5nIHdpbmRvd3MgdG8gdGhlaXIgYnVmZmVycyAoQHB4cmVme0RlZGljYXRlZAorV2lu ZG93c30pIGF2b2lkcyB0aGF0IGEgd2luZG93IGdldHMgdXNlZCBmb3IgZGlzcGxheWluZyBh IGRpZmZlcmVudAorYnVmZmVyLiAgQSBub24tZGVkaWNhdGVkIHdpbmRvdyB3aWxsIGJlIHVz ZWQgaW5zdGVhZC4KKworQGl0ZW0KK0NhbGxpbmcgQGNvZGV7d2luZG93LXByZXNlcnZlLXNp emV9IChAcHhyZWZ7UHJlc2VydmluZyBXaW5kb3cgU2l6ZXN9KQord2lsbCB0cnkgdG8ga2Vl cCB0aGUgc2l6ZSBvZiB0aGUgYXJndW1lbnQgd2luZG93IHVuY2hhbmdlZCB3aGVuCitwb3Bw aW5nIHVwIGEgbmV3IHdpbmRvdy4gIFlvdSBoYXZlIHRvIG1ha2Ugc3VyZSB0aGF0IGFub3Ro ZXIgd2luZG93IGluCit0aGUgc2FtZSBjb21iaW5hdGlvbiBjYW4gYmUgc2hydW5rIGluc3Rl YWQsIHRob3VnaC4KKworQGl0ZW0KK1NpZGUgd2luZG93cyAoQHB4cmVme1NpZGUgV2luZG93 c30pIGNhbiBiZSB1c2VkIGZvciBkaXNwbGF5aW5nCitzcGVjaWZpYyBidWZmZXJzIGFsd2F5 cyBpbiBhIHdpbmRvdyBhdCB0aGUgc2FtZSBwb3NpdGlvbiBvZiBhIGZyYW1lLgorVGhpcyBw ZXJtaXRzIHRvIGdyb3VwIGJ1ZmZlcnMgdGhhdCBkbyBub3QgY29tcGV0ZSBmb3IgYmVpbmcg c2hvd24gYXQKK3RoZSBzYW1lIHRpbWUgb24gYSBmcmFtZSBhbmQgc2hvdyBhbnkgc3VjaCBi dWZmZXIgaW4gdGhlIHNhbWUgd2luZG93Cit3aXRob3V0IGRpc3J1cHRpbmcgdGhlIGRpc3Bs YXkgb2Ygb3RoZXIgYnVmZmVycy4KKworQGl0ZW0KK0NoaWxkIGZyYW1lcyAoQHB4cmVme0No aWxkIEZyYW1lc30pIGNhbiBiZSB1c2VkIHRvIGRpc3BsYXkgYSBidWZmZXIKK3dpdGhpbiB0 aGUgc2NyZWVuIGVzdGF0ZSBvZiB0aGUgc2VsZWN0ZWQgZnJhbWUgd2l0aG91dCBkaXNydXB0 aW5nIHRoYXQKK2ZyYW1lJ3Mgd2luZG93IGNvbmZpZ3VyYXRpb24gYW5kIHdpdGhvdXQgdGhl IG92ZXJoZWFkIGFzc29jaWF0ZWQgd2l0aAorZnVsbC1mbGVkZ2VkIGZyYW1lcyBhcyBpbmZs aWN0ZWQgYnkgQGNvZGV7ZGlzcGxheS1idWZmZXItcG9wLXVwLWZyYW1lfS4KK0BlbmQgaXRl bWl6ZQorQGVuZCB0YWJsZQoKLUBkZWZ1biBzYW1lLXdpbmRvdy1wIGJ1ZmZlci1uYW1lCi1U aGlzIGZ1bmN0aW9uIHJldHVybnMgQGNvZGV7dH0gaWYgZGlzcGxheWluZyBhIGJ1ZmZlcgot bmFtZWQgQHZhcntidWZmZXItbmFtZX0gd2l0aCBAY29kZXtkaXNwbGF5LWJ1ZmZlcn0gd291 bGQKLXB1dCBpdCBpbiB0aGUgc2VsZWN0ZWQgd2luZG93LgotQGVuZCBkZWZ1bgoKIEBub2Rl IFdpbmRvdyBIaXN0b3J5CiBAc2VjdGlvbiBXaW5kb3cgSGlzdG9yeQpAQCAtMzIwNCw3ICsz OTA0LDcgQEAgU2lkZSBXaW5kb3dzCiAgICBJbiB0aGVpciBtb3N0IHNpbXBsZSBmb3JtIG9m IHVzZSwgc2lkZSB3aW5kb3dzIGFsbG93IHRvIGRpc3BsYXkKIHNwZWNpZmljIGJ1ZmZlcnMg YWx3YXlzIGluIHRoZSBzYW1lIGFyZWEgb2YgYSBmcmFtZS4gIEhlbmNlIHRoZXkgY2FuIGJl CiByZWdhcmRlZCBhcyBhIGdlbmVyYWxpemF0aW9uIG9mIHRoZSBjb25jZXB0IHByb3ZpZGVk IGJ5Ci1AY29kZXtkaXNwbGF5LWJ1ZmZlci1hdC1ib3R0b219IChAcHhyZWZ7RGlzcGxheSBB Y3Rpb24gRnVuY3Rpb25zfSkgdG8KK0Bjb2Rle2Rpc3BsYXktYnVmZmVyLWF0LWJvdHRvbX0g KEBweHJlZntBY3Rpb24gRnVuY3Rpb25zfSkgdG8KIHRoZSByZW1haW5pbmcgc2lkZXMgb2Yg YSBmcmFtZS4gIFdpdGggc3VpdGFibGUgY3VzdG9taXphdGlvbnMsIGhvd2V2ZXIsCiBzaWRl IHdpbmRvd3MgY2FuIGJlIGFsc28gdXNlZCB0byBwcm92aWRlIGZyYW1lIGxheW91dHMgc2lt aWxhciB0byB0aG9zZQogZm91bmQgaW4gc28tY2FsbGVkIGludGVncmF0ZWQgZGV2ZWxvcG1l bnQgZW52aXJvbm1lbnRzIChJREVzKS4KQEAgLTMyMjEsOCArMzkyMSw4IEBAIFNpZGUgV2lu ZG93cwogQG5vZGUgRGlzcGxheWluZyBCdWZmZXJzIGluIFNpZGUgV2luZG93cwogQHN1YnNl Y3Rpb24gRGlzcGxheWluZyBCdWZmZXJzIGluIFNpZGUgV2luZG93cwoKLVRoZSBmb2xsb3dp bmcgYWN0aW9uIGZ1bmN0aW9uIGZvciBAY29kZXtkaXNwbGF5LWJ1ZmZlcn0gKEBweHJlZntE aXNwbGF5Ci1BY3Rpb24gRnVuY3Rpb25zfSkgY3JlYXRlcyBvciByZXVzZXMgYSBzaWRlIHdp bmRvdyBmb3IgZGlzcGxheWluZyB0aGUKK1RoZSBmb2xsb3dpbmcgYWN0aW9uIGZ1bmN0aW9u IGZvciBAY29kZXtkaXNwbGF5LWJ1ZmZlcn0gKEBweHJlZntBY3Rpb24KK0Z1bmN0aW9uc30p IGNyZWF0ZXMgb3IgcmV1c2VzIGEgc2lkZSB3aW5kb3cgZm9yIGRpc3BsYXlpbmcgdGhlCiBz cGVjaWZpZWQgYnVmZmVyLgoKIEBkZWZ1biBkaXNwbGF5LWJ1ZmZlci1pbi1zaWRlLXdpbmRv dyBidWZmZXIgYWxpc3QKQEAgLTMyNjQsNyArMzk2NCw3IEBAIERpc3BsYXlpbmcgQnVmZmVy cyBpbiBTaWRlIFdpbmRvd3MKCiBCeSBkZWZhdWx0LCBzaWRlIHdpbmRvd3MgY2Fubm90IGJl IHNwbGl0IHZpYSBAY29kZXtzcGxpdC13aW5kb3d9CiAoQHB4cmVme1NwbGl0dGluZyBXaW5k b3dzfSkuICBBbHNvLCBhIHNpZGUgd2luZG93IGlzIG5vdCByZXVzZWQgb3Igc3BsaXQKLWJ5 IGFueSBidWZmZXIgZGlzcGxheSBhY3Rpb24gKEBweHJlZntEaXNwbGF5IEFjdGlvbiBGdW5j dGlvbnN9KSB1bmxlc3MKK2J5IGFueSBidWZmZXIgZGlzcGxheSBhY3Rpb24gKEBweHJlZntB Y3Rpb24gRnVuY3Rpb25zfSkgdW5sZXNzCiBpdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCBh cyB0YXJnZXQgb2YgdGhhdCBhY3Rpb24uICBOb3RlIGFsc28gdGhhdAogQGNvZGV7ZGVsZXRl LW90aGVyLXdpbmRvd3N9IGNhbm5vdCBtYWtlIGEgc2lkZSB3aW5kb3cgdGhlIG9ubHkgd2lu ZG93IG9uCiBpdHMgZnJhbWUgKEBweHJlZntEZWxldGluZyBXaW5kb3dzfSkuCkBAIC0zNDUz LDkgKzQxNTMsOSBAQCBGcmFtZSBMYXlvdXRzIHdpdGggU2lkZSBXaW5kb3dzCiBAeHJlZntS ZXNpemluZyBXaW5kb3dzfS4KCiAgICBUaGUgbGFzdCBmb3JtIGFsc28gbWFrZXMgc3VyZSB0 aGF0IG5vbmUgb2YgdGhlIGNyZWF0ZWQgc2lkZSB3aW5kb3dzCi1hcmUgYWNjZXNzaWJsZSB2 aWEgQGtiZHtDLXggb30gYnkgaW5zdGFsbGluZyB0aGUgQGNvZGV7bm8tb3RoZXItd2luZG93 fQorYXJlIGFjY2Vzc2libGUgdmlhIEB3e0BrYmR7Qy14IG99fSBieSBpbnN0YWxsaW5nIHRo ZSBAY29kZXtuby1vdGhlci13aW5kb3d9CiBwYXJhbWV0ZXIgZm9yIGVhY2ggb2YgdGhlc2Ug d2luZG93cy4gIEluIGFkZGl0aW9uLCBpdCBtYWtlcyBzdXJlIHRoYXQKLXNpZGUgd2luZG93 cyBhcmUgbm90IGRlbGV0ZWQgdmlhIEBrYmR7Qy14IDF9IGJ5IGluc3RhbGxpbmcgdGhlCitz aWRlIHdpbmRvd3MgYXJlIG5vdCBkZWxldGVkIHZpYSBAd3tAa2Jke0MteCAxfX0gYnkgaW5z dGFsbGluZyB0aGUKIEBjb2Rle25vLWRlbGV0ZS1vdGhlci13aW5kb3dzfSBwYXJhbWV0ZXIg Zm9yIGVhY2ggb2YgdGhlc2Ugd2luZG93cy4KCiAgICBTaW5jZSBAY29kZXtkaXJlZH0gYnVm ZmVycyBoYXZlIG5vIGZpeGVkIG5hbWVzLCB3ZSB1c2UgYSBzcGVjaWFsCkBAIC0zNTQ3LDcg KzQyNDcsNyBAQCBBdG9taWMgV2luZG93cwoKIFRvIGNyZWF0ZSBhIG5ldyBhdG9taWMgd2lu ZG93IGZyb20gYW4gZXhpc3RpbmcgbGl2ZSB3aW5kb3cgb3IgdG8gYWRkIGEKIG5ldyB3aW5k b3cgdG8gYW4gZXhpc3RpbmcgYXRvbWljIHdpbmRvdywgdGhlIGZvbGxvd2luZyBidWZmZXIg ZGlzcGxheQotYWN0aW9uIGZ1bmN0aW9uIChAcHhyZWZ7RGlzcGxheSBBY3Rpb24gRnVuY3Rp b25zfSkgY2FuIGJlIHVzZWQ6CithY3Rpb24gZnVuY3Rpb24gKEBweHJlZntBY3Rpb24gRnVu Y3Rpb25zfSkgY2FuIGJlIHVzZWQ6CgogQGRlZnVuIGRpc3BsYXktYnVmZmVyLWluLWF0b20t d2luZG93IGJ1ZmZlciBhbGlzdAogVGhpcyBmdW5jdGlvbiB0cmllcyB0byBkaXNwbGF5IEB2 YXJ7YnVmZmVyfSBpbiBhIG5ldyB3aW5kb3cgdGhhdCB3aWxsIGJlCkBAIC0zNjc5LDYgKzQz NzksNyBAQCBXaW5kb3cgUG9pbnQKIHNvIEBjb2Rle3dpbmRvdy1wb2ludH0gd2lsbCBzdGF5 IGJlaGluZCB0ZXh0IGluc2VydGVkIHRoZXJlLgogQGVuZCBkZWZ2YXIKCisKIEBub2RlIFdp bmRvdyBTdGFydCBhbmQgRW5kCiBAc2VjdGlvbiBUaGUgV2luZG93IFN0YXJ0IGFuZCBFbmQg UG9zaXRpb25zCiBAY2luZGV4IHdpbmRvdyBzdGFydCBwb3NpdGlvbgpAQCAtMzkyNSw2ICs0 NjI2LDcgQEAgV2luZG93IFN0YXJ0IGFuZCBFbmQKIHRleHQgbGluZSwgQHZhcnt5cG9zfSBp cyBuZWdhdGl2ZS4KIEBlbmQgZGVmdW4KCisKIEBub2RlIFRleHR1YWwgU2Nyb2xsaW5nCiBA c2VjdGlvbiBUZXh0dWFsIFNjcm9sbGluZwogQGNpbmRleCB0ZXh0dWFsIHNjcm9sbGluZwpA QCAtNDI2NCw2ICs0OTY2LDcgQEAgVmVydGljYWwgU2Nyb2xsaW5nCiBwcmVzZW5jZSBvZiBs YXJnZSBpbWFnZXMuCiBAZW5kIGRlZnZhcgoKKwogQG5vZGUgSG9yaXpvbnRhbCBTY3JvbGxp bmcKIEBzZWN0aW9uIEhvcml6b250YWwgU2Nyb2xsaW5nCiBAY2luZGV4IGhvcml6b250YWwg c2Nyb2xsaW5nCkBAIC01MTQ1LDYgKzU4NDgsNyBAQCBXaW5kb3cgUGFyYW1ldGVycwogdmVy c2lvbnMgb2YgRW1hY3MuCiBAZW5kIHRhYmxlCgorCiBAbm9kZSBXaW5kb3cgSG9va3MKIEBz ZWN0aW9uIEhvb2tzIGZvciBXaW5kb3cgU2Nyb2xsaW5nIGFuZCBDaGFuZ2VzCiBAY2luZGV4 IGhvb2tzIGZvciB3aW5kb3cgb3BlcmF0aW9ucwo= --------------030509080103070106060804--