From X2Go-ML-1@baur-itcs.de  Sun Apr 19 15:47:47 2020
Received: (at submit) by bugs.x2go.org; 19 Apr 2020 13:47:49 +0000
X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on
	ymir.das-netzwerkteam.de
X-Spam-Level: 
X-Spam-Status: No, score=-1.7 required=3.0 tests=BAYES_00,RCVD_IN_MSPIKE_H2,
	SPF_HELO_NONE,UC_GIBBERISH_OBFU,URIBL_BLOCKED autolearn=no
	autolearn_force=no version=3.4.2
Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.126.187])
	by ymir.das-netzwerkteam.de (Postfix) with ESMTPS id 4E5415DAE5
	for <submit@bugs.x2go.org>; Sun, 19 Apr 2020 15:47:47 +0200 (CEST)
Received: from [192.168.0.15] ([78.43.58.112]) by mrelayeu.kundenserver.de
 (mreue011 [212.227.15.129]) with ESMTPSA (Nemesis) id
 1MGiF0-1jV87f1VFS-00Dnhm; Sun, 19 Apr 2020 15:47:45 +0200
From: Stefan Baur <X2Go-ML-1@baur-itcs.de>
Subject: X2GoMiniSSHBroker
Autocrypt: addr=X2Go-ML-1@baur-itcs.de; prefer-encrypt=mutual; keydata=
 xsBNBFLfOiwBCACzIiDVwWVRvuMzgSAvXRFRaPaZOSB8s84PG1oGLfmqhwzF44vj1Xv4tcKD
 mvu0TsLTksOkvop8WwGYeeU8lDaxEG1zyN8SOu1WU/FPEKw2jITRox8yIrSkUsMkWYuxdjv/
 9XcAh9qaPsHP7E1jD6/wVZuYZkuX6W41Nxt06VsvDGCfrbQh4ya7w1IiSnoQeIHNNQVN9f3j
 xcHLj5S5YriSCThtbFCdr3AJXfF5iMolu8kLgAXM0bH1C7PxAjM/pQjWmdMVN/Y+uXXzcMO8
 8aQ0f0q3QeGWxCAP2xwBapUfP6LHDRPp/tV7P7ji8wKlabrSGdv0M9Qd9pn/YCYQE0ZdABEB
 AAHNJlN0ZWZhbiBCYXVyIDxwb3N0bWFzdGVyQHN0ZWZhbmJhdXIuZGU+wsCCBBMBAgAsAhsj
 BwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4ACGQEFAlwtWmgFCRK0IbcACgkQbt30GM2+URkj
 nwgAixhVoMxijCsh9jxxCUYBj7lC5HYhJmlAB+bZOfl1XI8xqMLw8YGECfu0VSe++FlaOAuc
 gArofqu79E2+wKxPaqW2lC94eKR1+kgkDOJyqckYj2Xmyi+vDfrOWjbyawIwiq5FUW2CB6zv
 nkTr68ZQ43mAVC1zz2tpAikn2Af4/OdHwUBzSAOpUt4rDbXDe93WW34XuyG2RDma6kE1Cr0u
 ilqvzKOz5SYp5ASmCyaA0wCzs7fjTy2KuMlOCSFRzwPJpzddr8rS9ZiTLdia/BZvShBEjOq4
 MZHWYv+RGK5RB4eDzw0KbPszXRJBUdXiZIcI0jqbC57Ht64ok3lXquXp987ATQRS3zosAQgA
 4KPXmGU1XE8CTRJ/4m/f8MTri3JfEvGJTerWwC2hBuXHGWrSBmmRNAdJHzNTvq5IoR9tQ6Cb
 Nrqxf6alr/v34Vr2bUg0s+jlK9TWOkVLAFoz6zytm/2BrRBIZ5So6Ymfc6efwsScsHOI++wi
 pzqELkpluqtXysb13RsBVLxBdp5TZCVPjCc9pLWjudfjEagQt2oJgtO2WndasrKvoZYkfRi6
 oSCK9B84YjNJoRF00LdK3n7K3SBvj4UPSl+ygzLVaD+3ZdIlbhX+bfn/Vp/10xdJ+/U8Fr7l
 7umrBKr17D8eO3mRYMGY9w1qc+pfNGOR76GIbPWj2tPVaBD9nmUaowARAQABwsBlBBgBAgAP
 AhsMBQJcLVqtBQkStCH9AAoJEG7d9BjNvlEZInkIAIcchwZxurIpwJJR8qMMXD+RSvj7mY55
 VIXOKUX0uAUTEoJTzFcqbdGkzcJB9y0NlUo9dv4chPT21M61y0bjJjhaDUshCLa1+YyFSSWp
 GBOKrLIsWusqC9zVwgf7TtjVmXt23jZwoDWjXoMlg9eQONMi5Z4u+lDOyPKD+lGJAcjJkQsI
 zL9hha3vuhmUclxgdALTJWzQBp+Y7u9QDub4uqf/TyuDpYASiP0winBRfTug+XjP5YZjU//P
 07H9WhiUCsHp6L9j3QzvrovVy2zz0j7JhyhW3e957vHz2skkSVv3QGtHMswcgK3XaQ9YdgWO
 ELHmBhevaIcJIxDvTBl3pYQ=
To: submit@bugs.x2go.org
Cc: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>,
 Mihai Moldovan <ionic@ionic.de>
Message-ID: <cf449724-259f-cca8-a307-98b88bfcd4fe@baur-itcs.de>
Date: Sun, 19 Apr 2020 15:47:44 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.4.1
MIME-Version: 1.0
Content-Type: multipart/mixed;
 boundary="------------EF726ACBF46EEF271AB6E070"
Content-Language: de-DE
X-Provags-ID: V03:K1:FxZTAuBdLhavpVZRdKTK9c3OkZfZ7iJaei5SVtYiyczet0avW3i
 ixfniNryzJfT299v2h1Y0Rs4c6C0Um/0FW3zdc696FFSiNeFc+wc862/x0ujBHdPqdwd+qz
 WZODSZ46fGUXTrp65KN74pbSPzaLAiARTrYuBb9Yz50kdMPvS8hlt4rX0+kB+1/B4gqQi1s
 1MQ12Gv2l3KjlfVsAa8/g==
X-UI-Out-Filterresults: notjunk:1;V03:K0:V9oxADuIoEk=:DYmx9eGh/w4cm6DpMdz2is
 IZLAi1uK39reI/d9U+RKIj0KAv6QP9n+KMBB0o2QE6P+K6NM3kMxPOsvq87GXbncPTHQdwHnw
 +ciNKptzTlOY1c/4steDU2R1NvtaoOnebOph0ir5ATzPzba3E7z5rsVvLmY9+7nXByG6O377/
 h/XUEKIMgpsIyxbyaa3zGlhnkBHtr5dTvSQLY9BKH9EiAYoMabfEREBwNjzp5jQFRQDB1WSDu
 1wyDOAjuJE5WvY9QqWDaNwKIM94CtgVDH82AlHW7EPPmUaKcXE6DPizX88GfQKLx6KzBSEnzm
 VlUfV75BchOxPrtWSvtbLy3fbwvIxIFW/HtBQtsf9YrbrCzKx2ZfVodFaes2E0o0ilE4gv9sZ
 rlju9KVWx/UWi6R34M+dp+olWxnLRWKME/pNJZz5Zq1VBGHLJqEb3p5yYIAoAqEFLhv55mRZy
 /HOaQv5DWshswPEmdRRwsPMnyusd73eOy9qmiXYUdgmxhgXydrPZV9pVGlru3VT4T5e8UOHsz
 8924bWij4aoRwqQqbltFPNJT52o4V4oBvvFSpjd9KTJNaHF9xEta1H9PWAb01j5iYAWzm/qNR
 oq9a+vx7zo8xv04+Kdt6pvB8IiiuaeARwn7ZWB3b5rezWrTWRcZfdnnl+3kmop23YAoSTPaQs
 7hM2v9OzycuUhQmRJDD0NZY/tXS9UVn4cA5jBs7yZXTDowDvwaoaF6fecRcBJMVenRtNigN0l
 Ovt8l3nzc3+swgZ4+diUBHPr7FhHlNsSqunZcmslq2ms4pImZlDfqfMb+qjdxFfUQDZxGIw08
 o3bvoGkACr5RRaQwqwN4ZykeT2bdjmoMxPlu9WAqTb1hTcgwT+OTKF4/0TYLa7BB/WTC3ln

This is a multi-part message in MIME format.
--------------EF726ACBF46EEF271AB6E070
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

package: x2gobroker
priority: wishlist

Hi everyone,

A while ago, I wrote a small broker demo in bash.

I would like to get this added to X2Go's official repository, in the
x2gobroker.git tree, as a separate binpkg (maybe called
x2gobroker-ssh-mini).


Limitations:

1) This script is not suitable for a multi-server setup.
   It needs to run on the only X2GoServer there is.
   (There's an idea in the comments how to overcome this limitation,
   though.)
   This is, however, also its advantage: You don't need to mess with
   LDAP, postgres and NFS just to be able to use a central configuration
   for your X2GoClients.

2) It does not offer all the ACL options of the "big" broker
   implementations.


Problems:

1) There's currently no manpage for it.  All documentation is in the
   comments in the bash script.

2) IIRC, Alex made some changes to X2GoClient and/or X2GoServer that
   will cause this script to break - however, these changes are not part
   of our stable release yet.  So it should be possible to release this
   package right now, but it needs to be kept in mind that it will have
   to be adapted once Alex' changes make it to stable.
   This was related to more "chatter" about "Access granted" and similar
   status messages being exchanged between server/broker/client.

Script attached.

Kind Regards,
Stefan Baur

-- 
BAUR-ITCS UG (haftungsbeschränkt)
Geschäftsführer: Stefan Baur
Eichenäckerweg 10, 89081 Ulm | Registergericht Ulm, HRB 724364
Fon/Fax 0731 40 34 66-36/-35 | USt-IdNr.: DE268653243

--------------EF726ACBF46EEF271AB6E070
Content-Type: text/plain; charset=UTF-8;
 name="x2go-mini-sshbroker"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="x2go-mini-sshbroker"

IyEvYmluL2Jhc2gKCiMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlICBYMkdvIFByb2plY3Qg
LSBodHRwOi8vd3d3LngyZ28ub3JnCiMgQ29weXJpZ2h0IChDKSAyMDE4IGJ5IFN0ZWZhbiBC
YXVyIDxYMkdvLU1MLTFAYmF1ci1pdGNzLmRlPgojCiMgWDJHbyBNaW5pIFNTSCBTZXNzaW9u
IEJyb2tlciBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgWDJHbyBNaW5pIFNTSCBTZXNz
aW9uIEJyb2tlciBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojCiMgWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMg
YWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlCiMgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLAojIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9v
ciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCgojIEZlYXR1cmVzIGFuZCBMaW1pdGF0
aW9ucwojIFlvdSBjYW4gYWRkIHNlc3Npb25zIGFzIGZvci1ldmVyeW9uZSAoZGVmYXVsdHNl
c3Npb25zKSwgcGVyLWdyb3VwLCBhbmQgcGVyLXVzZXIKIyBZb3UgY2Fubm90IGFkZCBzZXNz
aW9ucyBiYXNlZCBvbiBJUCByYW5nZQojIFlvdSBjYW5ub3QgZGVueSBzZXNzaW9ucyBiYXNl
ZCBvbiBncm91cCwgdXNlciwgb3IgSVAgcmFuZ2UKIyBDaGVja2luZyBmb3Igc3VzcGVuZGVk
IHNlc3Npb25zIGFuZCByZXN1bWluZyB0aGVtIG9ubHkgd29ya3MgaWYgeW91IGFyZSBsb2dn
ZWQgaW4gCiMgICB0byB0aGUgYnJva2VyIHdpdGggdGhlIHNhbWUgY3JlZGVudGlhbHMgdGhh
dCB5b3Ugd2FudCB0byB1c2UgdG8gc3RhcnQvcmVzdW1lCiMgICB0aGUgc2Vzc2lvbiBBTkQg
CiMgICBpZiBicm9rZXIgYW5kIFgyR28gc2VydmVyIGFyZSBvbmUgYW5kIHRoZSBzYW1lIG1h
Y2hpbmUKIyAgIChUaGlzIGNvdWxkIGJlIGV4cGFuZGVkIHNvIGl0IHdvcmtzIHdpdGggc2Vw
YXJhdGUgbWFjaGluZXMsIGFzIGxvbmcgYXMgc3NoCiMgICBwdWJsaWMvcHJpdmF0ZSBrZXkg
YXV0aGVudGljYXRpb24gYW5kIGF1dG9sb2dpbiBpcyB1c2VkLikKCiMgQ29uZmlnIGdvZXMg
aGVyZSAtIGFsd2F5cyBvbmx5IG9uZSBzZXNzaW9uIHBlciBmaWxlIQojIC9ldGMveDJnby94
MmdvLW1pbmktc3NoYnJva2VyL2RlZmF1bHRzZXNzaW9ucy8qLnNlc3Npb24KIyAvZXRjL3gy
Z28veDJnby1taW5pLXNzaGJyb2tlci8ke1VTRVJ9Lyouc2Vzc2lvbgojIC9ldGMveDJnby94
MmdvLW1pbmktc3NoYnJva2VyL2dyb3Vwcy8ke0dST1VQfS8qLnNlc3Npb24KCiMjIyBpbml0
ICMjIwojIG1ha2UgYSBsaXN0IG9mIHRoZSBwYXJhbWV0ZXJzIHdlIHJlY2VpdmVkIG9uIHRo
ZSBjb21tYW5kIGxpbmUKUEFSQU1MSVNUPSQoZWNobyAtZSAiJEAiIHwgc2VkIC1lICdzLyAt
LS9cbi0tL2cnKQoKIyBtYWtlIHN1cmUgd2UgaGF2ZSBhIGRpcmVjdG9yeSB0byB3cml0ZSBv
dXIgY29uZmlnIGZpbGUgdG8KbWtkaXIgLXAgfi8ueDJnbwoKIyMjIG1haW4gIyMjCgojIGNo
ZWNrIGlmIHdlIHdlcmUgYXNrZWQgdG8gbGlzdCBzZXNzaW9ucwppZiAoZWNobyAtZSAiJFBB
UkFNTElTVCIgfCBncmVwIC1xIC0tICctLXRhc2sgbGlzdHNlc3Npb25zJyk7IHRoZW4KCgkj
IHRoaXMgaXMgc28gd2UgY2FuIHJlcXVlc3QgZGF0YSBmb3IgYSB1c2VybmFtZSB0aGF0IGlz
IGRpZmZlcmVudCBmcm9tIHRoZSBvbmUgd2UgdXNlZAoJIyB0byBsb2cgaW4gYW5kIHJ1biB0
aGlzIHNjcmlwdCB3aXRoCglSRVFVRVNURURVU0VSPSQoZWNobyAtZSAiJFBBUkFNTElTVCIg
fCBhd2sgJyQxID09ICItLXVzZXIiIHsgcHJpbnQgJDJ9JykKCWlmIFsgLW4gIiRSRVFVRVNU
RURVU0VSIiBdOyB0aGVuCgkJVVNFUj0kUkVRVUVTVEVEVVNFUgoJZmkKCgkjIGZldGNoIGRl
ZmF1bHQgc2Vzc2lvbnMKCWlmIFsgLWQgL2V0Yy94MmdvL3gyZ28tbWluaS1zc2hicm9rZXIv
ZGVmYXVsdHNlc3Npb25zIF07IHRoZW4KCQlmb3IgU0lOR0xFU0VTU0lPTkZJTEUgaW4gL2V0
Yy94MmdvL3gyZ28tbWluaS1zc2hicm9rZXIvZGVmYXVsdHNlc3Npb25zLyouc2Vzc2lvbiA7
IGRvCgkJCSMgYWRkIHNlc3Npb24gZmlsZSBuYW1lIHRvIHRoZSBsaXN0IG9mIHNlc3Npb25m
aWxlcwoJCQlTRVNTSU9ORklMRVMrPSIkU0lOR0xFU0VTU0lPTkZJTEVcbiIKCQkJIyBmaWd1
cmUgb3V0IHdoYXQgdGhlIG5hbWUgb2YgdGhlIHNlc3Npb24gc2hvdWxkIGJlLCBiYXNlZCBv
biB0aGUgZmlsZW5hbWUKCQkJU0lOR0xFU0VTU0lPTk5BTUU9JChiYXNlbmFtZSAkU0lOR0xF
U0VTU0lPTkZJTEUgfCBzZWQgLWUgJ3MvXC5zZXNzaW9uJC8vJykKCQkJIyBjaGVjayBpZiB0
aGUgc2Vzc2lvbiBmaWxlIGFscmVhZHkgY29udGFpbnMgYSBwcm9wZXIgaGVhZGVyIGJsb2Nr
CgkJCWlmIChncmVwIC1xICJeXFskU0lOR0xFU0VTU0lPTk5BTUVcXSIgJFNJTkdMRVNFU1NJ
T05GSUxFKTsgdGhlbgoJCQkJIyBpZiBpdCBkb2VzLCBhbGwgd2UgZG8gaXMgcmVwbGFjZSB0
aGUgdXNlciBuYW1lCgkJCQlTRVNTSU9OTElTVCs9IlxuJChncmVwIC12ICdedXNlcj0nICRT
SU5HTEVTRVNTSU9ORklMRSlcbnVzZXI9JFVTRVJcbiIKCQkJZWxzZQoJCQkJIyBpZiBpdCBk
b2VzIG5vdCwgd2UgYWRkIGEgaGVhZGVyIGJhc2VkIG9uIHRoZSBmaWxlIG5hbWUsIGFuZCBy
ZXBsYWNlIHRoZSB1c2VyIG5hbWUKCQkJCVNFU1NJT05MSVNUKz0iXG5bJFNJTkdMRVNFU1NJ
T05OQU1FXVxuJChncmVwIC12ICdeXFsnICRTSU5HTEVTRVNTSU9ORklMRSB8IGdyZXAgLXYg
J151c2VyPScpXG51c2VyPSRVU0VSXG4iCgkJCWZpCgkJZG9uZQoJZmkKCgkjIGZldGNoIHVz
ZXItc3BlY2lmaWMgc2Vzc2lvbnMKCWlmIFsgLWQgL2V0Yy94MmdvL3gyZ28tbWluaS1zc2hi
cm9rZXIvJFVTRVIgXTsgdGhlbgoJCWZvciBTSU5HTEVTRVNTSU9ORklMRSBpbiAvZXRjL3gy
Z28veDJnby1taW5pLXNzaGJyb2tlci8kVVNFUi8qLnNlc3Npb24gOyBkbwoJCQkjIGFkZCBz
ZXNzaW9uIGZpbGUgbmFtZSB0byB0aGUgbGlzdCBvZiBzZXNzaW9uZmlsZXMKCQkJU0VTU0lP
TkZJTEVTKz0iJFNJTkdMRVNFU1NJT05GSUxFXG4iCgkJCSMgZmlndXJlIG91dCB3aGF0IHRo
ZSBuYW1lIG9mIHRoZSBzZXNzaW9uIHNob3VsZCBiZSwgYmFzZWQgb24gdGhlIGZpbGVuYW1l
CgkJCVNJTkdMRVNFU1NJT05OQU1FPSQoYmFzZW5hbWUgJFNJTkdMRVNFU1NJT05GSUxFIHwg
c2VkIC1lICdzL1wuc2Vzc2lvbiQvLycpCgkJCSMgY2hlY2sgaWYgdGhlIHNlc3Npb24gZmls
ZSBhbHJlYWR5IGNvbnRhaW5zIGEgcHJvcGVyIGhlYWRlciBibG9jawoJCQlpZiAoZ3JlcCAt
cSAiXlxbJFNJTkdMRVNFU1NJT05OQU1FXF0iICRTSU5HTEVTRVNTSU9ORklMRSk7IHRoZW4K
CQkJCSMgaWYgaXQgZG9lcywgYWxsIHdlIGRvIGlzIHJlcGxhY2UgdGhlIHVzZXIgbmFtZQoJ
CQkJU0VTU0lPTkxJU1QrPSJcbiQoZ3JlcCAtdiAnXnVzZXI9JyAkU0lOR0xFU0VTU0lPTkZJ
TEUpXG51c2VyPSRVU0VSXG4iCgkJCWVsc2UKCQkJCSMgaWYgaXQgZG9lcyBub3QsIHdlIGFk
ZCBhIGhlYWRlciBiYXNlZCBvbiB0aGUgZmlsZSBuYW1lLCBhbmQgcmVwbGFjZSB0aGUgdXNl
ciBuYW1lCgkJCQlTRVNTSU9OTElTVCs9IlxuWyRTSU5HTEVTRVNTSU9OTkFNRV1cbiQoZ3Jl
cCAtdiAnXlxbJyAkU0lOR0xFU0VTU0lPTkZJTEUgfCBncmVwIC12ICdedXNlcj0nKVxudXNl
cj0kVVNFUlxuIgoJCQlmaQoJCWRvbmUKCWZpCgoJIyBmZXRjaCBncm91cC1zcGVjaWZpYyBz
ZXNzaW9ucwoJaWYgWyAtZCAvZXRjL3gyZ28veDJnby1taW5pLXNzaGJyb2tlci9ncm91cHMg
XTsgdGhlbgoJCSMgZGV0ZXJtaW5lIGdyb3VwcyBmb3IgdGhpcyB1c2VyIGFuZCB3b3JrIHRo
cm91Z2ggdGhlIGxpc3QKCQlmb3IgU0lOR0xFR1JPVVAgaW4gJChpZCAtR24gJFVTRVIpIDsg
ZG8KCQkJaWYgWyAtZCAvZXRjL3gyZ28veDJnby1taW5pLXNzaGJyb2tlci9ncm91cHMvJFNJ
TkdMRUdST1VQIF07IHRoZW4KCQkJCWZvciBTSU5HTEVTRVNTSU9ORklMRSBpbiAvZXRjL3gy
Z28veDJnby1taW5pLXNzaGJyb2tlci9ncm91cHMvJFNJTkdMRUdST1VQLyouc2Vzc2lvbiA7
IGRvCgkJCQkJIyBhZGQgc2Vzc2lvbiBmaWxlIG5hbWUgdG8gdGhlIGxpc3Qgb2Ygc2Vzc2lv
bmZpbGVzCgkJCQkJU0VTU0lPTkZJTEVTKz0iJFNJTkdMRVNFU1NJT05GSUxFXG4iCgkJCQkJ
IyBmaWd1cmUgb3V0IHdoYXQgdGhlIG5hbWUgb2YgdGhlIHNlc3Npb24gc2hvdWxkIGJlLCBi
YXNlZCBvbiB0aGUgZmlsZW5hbWUKCQkJCQlTSU5HTEVTRVNTSU9OTkFNRT0kKGJhc2VuYW1l
ICRTSU5HTEVTRVNTSU9ORklMRSB8IHNlZCAtZSAncy9cLnNlc3Npb24kLy8nKQoJCQkJCSMg
Y2hlY2sgaWYgdGhlIHNlc3Npb24gZmlsZSBhbHJlYWR5IGNvbnRhaW5zIGEgcHJvcGVyIGhl
YWRlciBibG9jawoJCQkJCWlmIChncmVwIC1xICJeXFskU0lOR0xFU0VTU0lPTk5BTUVcXSIg
JFNJTkdMRVNFU1NJT05GSUxFKTsgdGhlbgoJCQkJCQkjIGlmIGl0IGRvZXMsIGFsbCB3ZSBk
byBpcyByZXBsYWNlIHRoZSB1c2VyIG5hbWUKCQkJCQkJU0VTU0lPTkxJU1QrPSJcbiQoZ3Jl
cCAtdiAnXnVzZXI9JyAkU0lOR0xFU0VTU0lPTkZJTEUpXG51c2VyPSRVU0VSXG4iCgkJCQkJ
ZWxzZQoJCQkJCQkjIGlmIGl0IGRvZXMgbm90LCB3ZSBhZGQgYSBoZWFkZXIgYmFzZWQgb24g
dGhlIGZpbGUgbmFtZSwgYW5kIHJlcGxhY2UgdGhlIHVzZXIgbmFtZQoJCQkJCQlTRVNTSU9O
TElTVCs9IlxuWyRTSU5HTEVTRVNTSU9OTkFNRV1cbiQoZ3JlcCAtdiAnXlxbJyAkU0lOR0xF
U0VTU0lPTkZJTEUgfCBncmVwIC12ICdedXNlcj0nKVxudXNlcj0kVVNFUlxuIgoJCQkJCWZp
CgkJCQlkb25lCgkJCWZpCgkJZG9uZQoJZmkKCgkjIHN0b3JlIGxpc3Qgb2Ygc2Vzc2lvbiBm
aWxlcwoJVEVNUEJST0tFUlNFU1NJT05GSUxFPSQobWt0ZW1wIC1wIH4vLngyZ28pCgllY2hv
IC1lICIkU0VTU0lPTkZJTEVTIj4kVEVNUEJST0tFUlNFU1NJT05GSUxFCgkjIGF0b21pYyB0
cmFuc2FjdGlvbiwgc28gaXQgaXMgYWx3YXlzIGNvbXBsZXRlIHdoZW4gYWNjZXNzZWQsIGV2
ZW4gd2hlbiBtdWx0aXBsZSBpbnN0YW5jZXMgYXJlIHJ1biBpbiBwYXJhbGxlbAoJbXYgJFRF
TVBCUk9LRVJTRVNTSU9ORklMRSB+Ly54MmdvL2Jyb2tlcnNlc3Npb25maWxlLSR7VVNFUn0g
IyBuZWVkcyB1c2VyIG5hbWUsIGluIGNhc2Ugd2Ugc3NoJ2VkIGludG8gdGhlIGJyb2tlciB1
c2luZyBkaWZmZXJlbnQgY3JlZGVudGlhbHMKCgkjIG91dHB1dCBhbGwgc2Vzc2lvbiBkYXRh
CgllY2hvIC1lICJBY2Nlc3MgZ3JhbnRlZCIKCWVjaG8gLWUgIlNUQVJUX1VTRVJfU0VTU0lP
TlMiCgllY2hvIC1lICIkU0VTU0lPTkxJU1QiCgllY2hvIC1lICJFTkRfVVNFUl9TRVNTSU9O
UyIKCiMgY2hlY2sgaWYgd2Ugd2VyZSBhc2tlZCB0byBwcm92aWRlIGEgc2VydmVyIG5hbWUv
SVAgYW5kIHBvcnQgZm9yIGEgc3BlY2lmaWMgc2Vzc2lvbgplbGlmIChlY2hvIC1lICIkUEFS
QU1MSVNUIiB8IGdyZXAgLXEgLS0gJy0tdGFzayBzZWxlY3RzZXNzaW9uJyk7IHRoZW4KCQlT
RVNTSU9OSUQ9JChlY2hvIC1lICIkUEFSQU1MSVNUIiB8IGF3ayAnJDEgPT0gIi0tc2lkIiB7
IHByaW50ICQyIH0nKQoJCSMgc2VhcmNoIGZvciB0aGUgbGluZSB3aXRoIHRoZSBjb3JyZXNw
b25kaW5nIHNlc3Npb24gZmlsZSBpbiBvdXIgc3RvcmVkIGxpc3Qgb2YgZmlsZXMKCQlTRVNT
SU9ORklMRT0kKGdyZXAgIiRTRVNTSU9OSUQiIH4vLngyZ28vYnJva2Vyc2Vzc2lvbmZpbGUt
JHtVU0VSfSkKCQkjIGRldGVybWluZSBzZXJ2ZXIgbmFtZS9JUCBhbmQgcG9ydCBmcm9tIHRo
aXMgZmlsZQoJCVNFUlZFUj0kKGF3ayAtRiAnPScgJyQxID09ICJob3N0IiB7IHByaW50ICQy
IH0nICRTRVNTSU9ORklMRSkKCQlQT1JUPSQoYXdrIC1GICc9JyAnJDEgPT0gInNzaHBvcnQi
IHsgcHJpbnQgJDIgfScgJFNFU1NJT05GSUxFKQoJCSMgaWYgdGhpcyBmYWlsZWQsIHNldCBk
ZWZhdWx0IHZhbHVlcwoJCWlmIFsgLXogIiRTRVJWRVIiIF0gJiYgWyAtZiAvZXRjL3gyZ28v
eDJnby1taW5pLXNzaGJyb2tlci9kZWZhdWx0aG9zdCBdOyB0aGVuCgkJCSMgZGV0ZXJtaW5l
IGRlZmF1bHQgaG9zdG5hbWUvSVAKCQkJcmVhZCBERUZBVUxUSE9TVCA8L2V0Yy94MmdvL3gy
Z28tbWluaS1zc2hicm9rZXIvZGVmYXVsdGhvc3QKCQkJU0VSVkVSPSRERUZBVUxUSE9TVAoJ
CWZpCgoJCWlmIFsgLXogIlBPUlQiIF07IHRoZW4KCQkJUE9SVD0yMgoJCWZpCgoJCSMgb3V0
cHV0IGFsbCBkYXRhCgkJZWNobyAtZSAiQWNjZXNzIGdyYW50ZWQiCgkJZWNobyAtZSAiU0VS
VkVSOiRTRVJWRVI6JFBPUlQiCgkJIyBjaGVjayBmb3Igc3VzcGVuZGVkIHNlc3Npb25zCgkJ
U0VTU0lPTkxJU1Q9JCh4MmdvbGlzdHNlc3Npb25zKQoJCSMgTk9URTogYXQgcHJlc2VudCwg
dGhpcyBvbmx5IGNoZWNrcyBmb3IgbG9jYWwgc2Vzc2lvbnMgKFgyR29Ccm9rZXI9PVgyR29T
ZXJ2ZXIpCgkJIyB0byBtYWtlIHRoaXMgd29yayB3aXRoIGEgc2VwYXJhdGUgWDJHb1NlcnZl
ciwgd2Ugd291bGQgbmVlZCBzb21ldGhpbmcgbGlrZQoJCSNpZiBbIC16ICIkU0VTU0lPTkxJ
U1QiIF0gJiYgWyAtbiAiJFNTSF9BVVRIX1NPQ0siIF07IHRoZW4KCQkjCSMgdmVyeSBoYWNr
aXNoIGFuZCBub3Qgc2FmZSEgVHJ5IHRvIGFkZCBob3N0cyB0byBhIHNoYXJlZCBrbm93bl9o
b3N0cyBmaWxlIGluIGFkdmFuY2UsIGFuZCBwbGFjZSBpdCBpbiAvZXRjL3gyZ28veDJnby1t
aW5pLXNzaGJyb2tlci8KCQkjCSMgdGhlbiBwb2ludCBVc2VyS25vd25Ib3N0c0ZpbGUgYXQg
dGhhdCBhbmQgZ2V0IHJpZCBvZiB0aGUgU3RyaWN0SG9zdEtleUNoZWNraW5nPWZhbHNlCgkJ
IwlTRVNTSU9OTElTVD0kKHNzaCAtb1N0cmljdEhvc3RLZXlDaGVja2luZz1mYWxzZSAtb1Vz
ZXJLbm93bkhvc3RzRmlsZT0vZGV2L251bGwgLXAgJFBPUlQgLUEgJFVTRVJAJFNFUlZFUiB4
MmdvbGlzdHNlc3Npb25zIDI+L2Rldi9udWxsKQoJCSNmaQoJCSMgYnV0IHRoZSBwcm9ibGVt
IGlzLCB0aGF0IGl0IHNlZW1zIFNTSF9BVVRIX1NPQ0sgaXMgbm90IHNldCBieSB0aGUgYnJv
a2VyIHdoZW4gbG9nZ2luZyBpbgoJCSMgb25lIHdheSBhcm91bmQgdGhpcyBtaWdodCBiZSBh
biBzc2ggcHJpdmF0ZSBrZXkgc3RvcmVkIGluIC9ldGMveDJnby94MmdvLW1pbmktc3NoYnJv
a2VyLywgdGhhdCBpcyBhZGRlZCBhcyBhIGxpbWl0ZWQga2V5IHdpdGgKCQkjICJmb3JjZWQt
Y29tbWFuZD14MmdvbGlzdHNlc3Npb25zX3Jvb3QiIHRvIC9yb290Ly5zc2gvYXV0aG9yaXpl
ZF9rZXlzIHRvIGFsbCBzZXJ2ZXJzIC0gdGhlIG91dHB1dCB3b3VsZCB0aGVuIGhhdmUgdG8g
YmUgZmlsdGVyZWQgZm9yIHRoZQoJCSMgdXNlcm5hbWUgaW4gcXVlc3Rpb24sIGFzIF9yb290
IHNob3dzIHRoZSBkYXRhIG9mIGFsbCB1c2VycyBvbiB0aGF0IHBhcnRpY3VsYXIgaG9zdAoJ
CWlmIFsgLW4gIiRTRVNTSU9OTElTVCIgXTsgdGhlbgoJCQllY2hvICJTRVNTSU9OX0lORk86
JFNFU1NJT05MSVNUIgoJCWZpCmZpCiMgREVCVUcgZWNobyAiJEAiID4+L3RtcC94MmdvLW1p
bmktc3NoYnJva2VyLWNvbW1hbmRzCg==
--------------EF726ACBF46EEF271AB6E070--

