delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2002/06/04/02:27:32

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Date: Tue, 4 Jun 2002 10:25:57 +0400
From: egor duda <deo AT logos-m DOT ru>
Reply-To: egor duda <cygwin AT cygwin DOT com>
Organization: deo
X-Priority: 3 (Normal)
Message-ID: <51438910093.20020604102557@logos-m.ru>
To: Christopher Faylor <cygwin AT cygwin DOT com>
CC: linguist-cygwin AT rich-paul DOT net
Subject: Re: Building cygwin1.dll and mknetrel
In-Reply-To: <20020604050101.GA12031@redhat.com>
References: <20020528120346 DOT B21064 AT monster DOT rich-paul DOT net>
<4 DOT 3 DOT 1 DOT 2 DOT 20020528122339 DOT 0260f7f0 AT pop DOT ma DOT ultranet DOT com>
<20020528190238 DOT A22088 AT monster DOT rich-paul DOT net>
<20020528232930 DOT GA18281 AT redhat DOT com>
<20020529091728 DOT D22088 AT monster DOT rich-paul DOT net>
<20020529143618 DOT GA2808 AT redhat DOT com>
<20020602004747 DOT A10315 AT monster DOT rich-paul DOT net>
<20020602062824 DOT GA1808 AT redhat DOT com>
<20020602072107 DOT B10865 AT monster DOT rich-paul DOT net>
<20020603053325 DOT A13720 AT monster DOT rich-paul DOT net>
<20020604050101 DOT GA12031 AT redhat DOT com>
MIME-Version: 1.0

------------721C43615FEFFA
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Hi!

Tuesday, 04 June, 2002 Christopher Faylor cgf AT redhat DOT com wrote:

>>       *       On my production system, I had to change the '#!/bin/sh' to
>>               '#!/bin/bash' on one of the mknetrel shell scripts
>>               to get the shell to accept the usage of getopts ... but on the
>>               fresh install, I did not.  (This is the bash getopts builtin,
>>               not the standalone and singular 'getopt' discussed above)

CF> Yes, I have never run this under cygwin, actually.  It was intended as a
CF> cross-compilation environment.  I'm surprised that it works on cygwin
CF> with so few changes.

I'm running it on cygwin. All i need is to build getopt.exe and
readlink.exe from two attached source files. readlink.c is taken from
OpenBSD cvs, and getopt.c is slightly patched version of getopt.c from
linux-utils. They both can be built out-of-the-box.

Egor.            mailto:deo AT logos-m DOT ru ICQ 5165414 FidoNet 2:5020/496.19
------------721C43615FEFFA
Content-Type: application/octet-stream; name="readlink.c"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="readlink.c"

LyoKICogJE9wZW5CU0Q6IHJlYWRsaW5rLmMsdiAxLjE4IDE5OTgvMDgvMjQgMTQ6NDU6MzMga3N0
YWlsZXkgRXhwICQKICoKICogQ29weXJpZ2h0IChjKSAxOTk3CiAqCUtlbm5ldGggU3RhaWxleSAo
aGVyZWluYWZ0ZXIgcmVmZXJyZWQgdG8gYXMgdGhlIGF1dGhvcikKICoKICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwogKiBhcmUgbWV0OgogKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CiAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICogMy4gVGhlIG5hbWUgb2Yg
dGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
CiAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgogKgogKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgogKiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
CiAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuCiAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCiAqIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GCiAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAqLwoKI2luY2x1ZGUgPGxpbWl0cy5oPgojaW5jbHVkZSA8ZXJybm8u
aD4KI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmlu
Zy5oPgojaW5jbHVkZSA8dW5pc3RkLmg+CgppbnQKbWFpbihhcmdjLCBhcmd2KQoJaW50IGFyZ2M7
CgljaGFyICoqYXJndjsKewoJY2hhciBidWZbUEFUSF9NQVhdOwoJaW50IG4sIGNoLCBuZmxhZyA9
IDAsIGZmbGFnID0gMDsKCWV4dGVybiBpbnQgb3B0aW5kOwoKCXdoaWxlICgoY2ggPSBnZXRvcHQo
YXJnYywgYXJndiwgImZuIikpICE9IC0xKQoJCXN3aXRjaCAoY2gpIHsKCQljYXNlICdmJzoKCQkJ
ZmZsYWcgPSAxOwoJCQlicmVhazsKCQljYXNlICduJzoKCQkJbmZsYWcgPSAxOwoJCQlicmVhazsK
CQlkZWZhdWx0OgoJCQkodm9pZClmcHJpbnRmKHN0ZGVyciwKCQkJICAgICJ1c2FnZTogcmVhZGxp
bmsgWy1uXSBbLWZdIHN5bWxpbmtcbiIpOwoJCQlleGl0KDEpOwoJCX0KCWFyZ2MgLT0gb3B0aW5k
OwoJYXJndiArPSBvcHRpbmQ7CgoJaWYgKGFyZ2MgIT0gMSkgewoJCWZwcmludGYoc3RkZXJyLCAi
dXNhZ2U6IHJlYWRsaW5rIFstbl0gWy1mXSBzeW1saW5rXG4iKTsKCQlleGl0KDEpOwoJfQoKCW4g
PSBzdHJsZW4oYXJndlswXSk7CglpZiAobiA+IFBBVEhfTUFYIC0gMSkgewoJCWZwcmludGYoc3Rk
ZXJyLAoJCQkicmVhZGxpbms6IGZpbGVuYW1lIGxvbmdlciB0aGFuIFBBVEhfTUFYLTEgKCVkKVxu
IiwKCQkJUEFUSF9NQVggLSAxKTsKCQlleGl0KDEpOwoJfQoKCWlmIChmZmxhZykKCQlyZWFscGF0
aChhcmd2WzBdLCBidWYpOwoJZWxzZSB7CgkJaWYgKChuID0gcmVhZGxpbmsoYXJndlswXSwgYnVm
LCBzaXplb2YgYnVmLTEpKSA8IDApCgkJCWV4aXQoMSk7CgkJYnVmW25dID0gJ1wwJzsKCX0KCglw
cmludGYoIiVzIiwgYnVmKTsKCWlmICghbmZsYWcpCgkJcHV0Y2hhcignXG4nKTsKCWV4aXQoMCk7
Cn0K

------------721C43615FEFFA
Content-Type: application/octet-stream; name="getopt.c"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="getopt.c"

LyoKICAgIGdldG9wdC5jIC0gRW5oYW5jZWQgaW1wbGVtZW50YXRpb24gb2YgQlNEIGdldG9wdCgx
KQogICAgQ29weXJpZ2h0IChjKSAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwICBGcm9kbyBMb29pamFh
cmQgPGZyb2RvbEBkZHMubmw+CgogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICAgIGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiAgICB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvcgogICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KCiAgICBUaGlz
IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCiAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlCiAgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgoKICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiAgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsg
aWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogICAgRm91bmRhdGlvbiwgSW5jLiwg
Njc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuCiovCgovKiAKICogVmVyc2lv
biAxLjAtYjQ6IFR1ZSBTZXAgMjMgMTk5Ny4gRmlyc3QgcHVibGljIHJlbGVhc2UuCiAqIFZlcnNp
b24gMS4wOiBXZWQgTm92IDE5IDE5OTcuIAogKiAgIEJ1bXBlZCB1cCB0aGUgdmVyc2lvbiBudW1i
ZXIgdG8gMS4wCiAqICAgRml4ZWQgbWlub3IgdHlwbyAoQ1NIIGluc3RlYWQgb2YgVENTSCkKICog
VmVyc2lvbiAxLjAuMTogVHVlIEp1biAzIDE5OTgKICogICBGaXhlZCBzaXplb2YgaW5zdGVhZCBv
ZiBzdHJsZW4gYnVnCiAqICAgQnVtcGVkIHVwIHRoZSB2ZXJzaW9uIG51bWJlciB0byAxLjAuMQog
KiBWZXJzaW9uIDEuMC4yOiBUaHUgSnVuIDExIDE5OTggKG5vdCBwcmVzZW50KQogKiAgIEZpeGVk
IGdjYy0yLjguMSB3YXJuaW5ncwogKiAgIEZpeGVkIC0tdmVyc2lvbi8tViBvcHRpb24gKG5vdCBw
cmVzZW50KQogKiBWZXJzaW9uIDEuMC41OiBUdWUgSnVuIDIyIDE5OTkKICogICBNYWtlIC11IG9w
dGlvbiB3b3JrIChub3QgcHJlc2VudCkKICogVmVyc2lvbiAxLjAuNjogVHVlIEp1biAyNyAyMDAw
CiAqICAgTm8gaW1wb3J0YW50IGNoYW5nZXMKICovCgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1
ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RyaW5nLmg+CiNpbmNsdWRlIDx1bmlzdGQuaD4KI2lu
Y2x1ZGUgPGN0eXBlLmg+CgojaWYgTElCQ0dFVE9QVAojaW5jbHVkZSA8Z2V0b3B0Lmg+CiNlbHNl
CiNpbmNsdWRlICJnZXRvcHQuaCIKI2VuZGlmCgojZGVmaW5lIF8oeCkgeAoKLyogTk9OX09QVCBp
cyB0aGUgY29kZSB0aGF0IGlzIHJldHVybmVkIHdoZW4gYSBub24tb3B0aW9uIGlzIGZvdW5kIGlu
ICcrJyAKICAgbW9kZSAqLwojZGVmaW5lIE5PTl9PUFQgMQovKiBMT05HX09QVCBpcyB0aGUgY29k
ZSB0aGF0IGlzIHJldHVybmVkIHdoZW4gYSBsb25nIG9wdGlvbiBpcyBmb3VuZC4gKi8KI2RlZmlu
ZSBMT05HX09QVCAyCgovKiBUaGUgc2hlbGxzIHJlY29nbml6ZWQuICovCnR5cGVkZWYgZW51bSB7
QkFTSCxUQ1NIfSBzaGVsbF90OwoKCi8qIFNvbWUgZ2xvYmFsIHZhcmlhYmxlcyB0aGF0IHRlbGxz
IHVzIGhvdyB0byBwYXJzZS4gKi8Kc2hlbGxfdCBzaGVsbD1CQVNIOyAvKiBUaGUgc2hlbGwgd2Ug
Z2VuZXJhdGUgb3V0cHV0IGZvci4gKi8KaW50IHF1aWV0X2Vycm9ycz0wOyAvKiAwIGlzIG5vdCBx
dWlldC4gKi8KaW50IHF1aWV0X291dHB1dD0wOyAvKiAwIGlzIG5vdCBxdWlldC4gKi8KaW50IHF1
b3RlPTE7IC8qIDEgaXMgZG8gcXVvdGUuICovCiNpZmRlZiBIQVZFX0dFVE9QVF9MT05HX09OTFkK
aW50IGFsdGVybmF0aXZlPTA7IC8qIDAgaXMgZ2V0b3B0X2xvbmcsIDEgaXMgZ2V0b3B0X2xvbmdf
b25seSAqLwojZW5kaWYKCi8qIEZ1bmN0aW9uIHByb3RvdHlwZXMgKi8Kdm9pZCAqb3VyX21hbGxv
YyhzaXplX3Qgc2l6ZSk7CnZvaWQgKm91cl9yZWFsbG9jKHZvaWQgKnB0ciwgc2l6ZV90IHNpemUp
Owpjb25zdCBjaGFyICpub3JtYWxpemUoY29uc3QgY2hhciAqYXJnKTsKaW50IGdlbmVyYXRlX291
dHB1dChjaGFyICogYXJndltdLGludCBhcmdjLGNvbnN0IGNoYXIgKm9wdHN0ciwKICAgICAgICAg
ICAgICAgICAgICBjb25zdCBzdHJ1Y3Qgb3B0aW9uICpsb25nb3B0cyk7CmludCBtYWluKGludCBh
cmdjLCBjaGFyICphcmd2W10pOwp2b2lkIHBhcnNlX2Vycm9yKGNvbnN0IGNoYXIgKm1lc3NhZ2Up
Owp2b2lkIGFkZF9sb25nX29wdGlvbnMoY2hhciAqb3B0aW9ucyk7CnZvaWQgYWRkX2xvbmdvcHQo
Y29uc3QgY2hhciAqbmFtZSxpbnQgaGFzX2FyZyk7CnZvaWQgcHJpbnRfaGVscCh2b2lkKTsKdm9p
ZCBzZXRfc2hlbGwoY29uc3QgY2hhciAqbmV3X3NoZWxsKTsKdm9pZCBzZXRfaW5pdGlhbF9zaGVs
bCh2b2lkKTsKCnZvaWQgKm91cl9tYWxsb2Moc2l6ZV90IHNpemUpCnsKCXZvaWQgKnJldD1tYWxs
b2Moc2l6ZSk7CglpZiAoISByZXQpIHsKCQlmcHJpbnRmKHN0ZGVycixfKCIlczogT3V0IG9mIG1l
bW9yeSFcbiIpLCJnZXRvcHQiKTsKCQlleGl0KDMpOwoJfQoJcmV0dXJuKHJldCk7Cn0KCnZvaWQg
Km91cl9yZWFsbG9jKHZvaWQgKnB0ciwgc2l6ZV90IHNpemUpCnsKCXZvaWQgKnJldD1yZWFsbG9j
KHB0cixzaXplKTsKCWlmICghIHJldCAmJiBzaXplKSB7CgkJZnByaW50ZihzdGRlcnIsXygiJXM6
IE91dCBvZiBtZW1vcnkhXG4iKSwiZ2V0b3B0Iik7CgkJZXhpdCgzKTsKCX0KCXJldHVybihyZXQp
Owp9CgovKgogKiBUaGlzIGZ1bmN0aW9uICdub3JtYWxpemVzJyBhIHNpbmdsZSBhcmd1bWVudDog
aXQgcHV0cyBzaW5nbGUgcXVvdGVzIGFyb3VuZAogKiBpdCBhbmQgZXNjYXBlcyBvdGhlciBzcGVj
aWFsIGNoYXJhY3RlcnMuIElmIHF1b3RlIGlzIGZhbHNlLCBpdCBqdXN0CiAqIHJldHVybnMgaXRz
IGFyZ3VtZW50LgogKiBCYXNoIG9ubHkgbmVlZHMgc3BlY2lhbCB0cmVhdG1lbnQgZm9yIHNpbmds
ZSBxdW90ZXM7IHRjc2ggYWxzbyByZWNvZ25pemVzCiAqIGV4Y2xhbWF0aW9uIG1hcmtzIHdpdGhp
biBzaW5nbGUgcXVvdGVzLCBhbmQgbnVrZXMgd2hpdGVzcGFjZS4KICogVGhpcyBmdW5jdGlvbiBy
ZXR1cm5zIGEgcG9pbnRlciB0byBhIGJ1ZmZlciB0aGF0IGlzIG92ZXJ3cml0dGVuIGJ5IAogKiBl
YWNoIGNhbGwuCiAqLwpjb25zdCBjaGFyICpub3JtYWxpemUoY29uc3QgY2hhciAqYXJnKQp7Cglz
dGF0aWMgY2hhciAqQlVGRkVSPU5VTEw7Cgljb25zdCBjaGFyICphcmdwdHI9YXJnOwoJY2hhciAq
YnVmcHRyOwoKCWlmIChCVUZGRVIgIT0gTlVMTCkKCQlmcmVlKEJVRkZFUik7CgoJaWYgKCFxdW90
ZSkgeyAvKiBKdXN0IGNvcHkgYXJnICovCgkJQlVGRkVSPW91cl9tYWxsb2Moc3RybGVuKGFyZykr
MSk7CgkJCQoJCXN0cmNweShCVUZGRVIsYXJnKTsKCQlyZXR1cm4gQlVGRkVSOwoJfQoKCS8qIEVh
Y2ggY2hhcmFjdGVyIGluIGFyZyBtYXkgdGFrZSB1cHRvIGZvdXIgY2hhcmFjdGVycyBpbiB0aGUg
cmVzdWx0OgoJICAgRm9yIGEgcXVvdGUgd2UgbmVlZCBhIGNsb3NpbmcgcXVvdGUsIGEgYmFja3Ns
YXNoLCBhIHF1b3RlIGFuZCBhbgoJICAgb3BlbmluZyBxdW90ZSEgV2UgbmVlZCBhbHNvIHRoZSBn
bG9iYWwgb3BlbmluZyBhbmQgY2xvc2luZyBxdW90ZSwKCSAgIGFuZCBvbmUgZXh0cmEgY2hhcmFj
dGVyIGZvciAnXDAnLiAqLwoJQlVGRkVSPW91cl9tYWxsb2Moc3RybGVuKGFyZykqNCszKTsKCgli
dWZwdHI9QlVGRkVSOwoJKmJ1ZnB0cisrPSdcJyc7CgoJd2hpbGUgKCphcmdwdHIpIHsKCQlpZiAo
KmFyZ3B0ciA9PSAnXCcnKSB7CgkJCS8qIFF1b3RlOiByZXBsYWNlIGl0IHdpdGg6ICdcJycgKi8K
CQkJKmJ1ZnB0cisrPSdcJyc7CgkJCSpidWZwdHIrKz0nXFwnOwoJCQkqYnVmcHRyKys9J1wnJzsK
CQkJKmJ1ZnB0cisrPSdcJyc7CgkJfSBlbHNlIGlmIChzaGVsbD09VENTSCAmJiAqYXJncHRyPT0n
IScpIHsKCQkJLyogRXhjbGFtYXRpb24gbWFyazogcmVwbGFjZSBpdCB3aXRoOiBcISAqLwoJCQkq
YnVmcHRyKys9J1wnJzsKCQkJKmJ1ZnB0cisrPSdcXCc7CgkJCSpidWZwdHIrKz0nISc7CgkJCSpi
dWZwdHIrKz0nXCcnOwoJCX0gZWxzZSBpZiAoc2hlbGw9PVRDU0ggJiYgKmFyZ3B0cj09J1xuJykg
ewoJCQkvKiBOZXdsaW5lOiByZXBsYWNlIGl0IHdpdGg6IFxuICovCgkJCSpidWZwdHIrKz0nXFwn
OwoJCQkqYnVmcHRyKys9J24nOwoJCX0gZWxzZSBpZiAoc2hlbGw9PVRDU0ggJiYgaXNzcGFjZSgq
YXJncHRyKSkgewoJCQkvKiBOb24tbmV3bGluZSB3aGl0ZXNwYWNlOiByZXBsYWNlIGl0IHdpdGgg
XDx3cz4gKi8KCQkJKmJ1ZnB0cisrPSdcJyc7CgkJCSpidWZwdHIrKz0nXFwnOwoJCQkqYnVmcHRy
Kys9KmFyZ3B0cjsKCQkJKmJ1ZnB0cisrPSdcJyc7CgkJfSBlbHNlCgkJCS8qIEp1c3QgY29weSAq
LwoJCQkqYnVmcHRyKys9KmFyZ3B0cjsKCQlhcmdwdHIrKzsKCX0KCSpidWZwdHIrKz0nXCcnOwoJ
KmJ1ZnB0cisrPSdcMCc7CglyZXR1cm4gQlVGRkVSOwp9CgovKiAKICogR2VuZXJhdGUgdGhlIG91
dHB1dC4gYXJndlswXSBpcyB0aGUgcHJvZ3JhbSBuYW1lICh1c2VkIGZvciByZXBvcnRpbmcgZXJy
b3JzKS4KICogYXJndlsxLi5dIGNvbnRhaW5zIHRoZSBvcHRpb25zIHRvIGJlIHBhcnNlZC4gYXJn
YyBtdXN0IGJlIHRoZSBudW1iZXIgb2YKICogZWxlbWVudHMgaW4gYXJndiAoaWUuIDEgaWYgdGhl
cmUgYXJlIG5vIG9wdGlvbnMsIG9ubHkgdGhlIHByb2dyYW0gbmFtZSksCiAqIG9wdHN0ciBtdXN0
IGNvbnRhaW4gdGhlIHNob3J0IG9wdGlvbnMsIGFuZCBsb25nb3B0cyB0aGUgbG9uZyBvcHRpb25z
LgogKiBPdGhlciBzZXR0aW5ncyBhcmUgZm91bmQgaW4gZ2xvYmFsIHZhcmlhYmxlcy4KICovCmlu
dCBnZW5lcmF0ZV9vdXRwdXQoY2hhciAqIGFyZ3ZbXSxpbnQgYXJnYyxjb25zdCBjaGFyICpvcHRz
dHIsCiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IG9wdGlvbiAqbG9uZ29wdHMpCnsK
CWludCBleGl0X2NvZGUgPSAwOyAvKiBXZSBhc3N1bWUgZXZlcnl0aGluZyB3aWxsIGJlIE9LICov
CglpbnQgb3B0OwoJaW50IGxvbmdpbmRleDsKCWNvbnN0IGNoYXIgKmNoYXJwdHI7CgoJaWYgKHF1
aWV0X2Vycm9ycykgLyogTm8gZXJyb3IgcmVwb3J0aW5nIGZyb20gZ2V0b3B0KDMpICovCgkJb3B0
ZXJyPTA7CglvcHRpbmQ9MDsgLyogUmVzZXQgZ2V0b3B0KDMpICovCgojaWZkZWYgSEFWRV9HRVRP
UFRfTE9OR19PTkxZCgl3aGlsZSAoKG9wdCA9IChhbHRlcm5hdGl2ZT8KCSAgICAgICAgICAgICAg
Z2V0b3B0X2xvbmdfb25seShhcmdjLGFyZ3Ysb3B0c3RyLGxvbmdvcHRzLCZsb25naW5kZXgpOgoj
ZWxzZQoJd2hpbGUgKChvcHQgPSAoCiNlbmRpZgogICAgICAgICAgICAgICAgICAgICAgZ2V0b3B0
X2xvbmcoYXJnYyxhcmd2LG9wdHN0cixsb25nb3B0cywmbG9uZ2luZGV4KSkpIAogICAgICAgICAg
ICAgICAhPSBFT0YpIAoJCWlmIChvcHQgPT0gJz8nIHx8IG9wdCA9PSAnOicgKQoJCQlleGl0X2Nv
ZGUgPSAxOwoJCWVsc2UgaWYgKCFxdWlldF9vdXRwdXQpIAoJCXsKCQkJaWYgKG9wdCA9PSBMT05H
X09QVCkgewoJCQkJcHJpbnRmKCIgLS0lcyIsbG9uZ29wdHNbbG9uZ2luZGV4XS5uYW1lKTsKCQkJ
CWlmIChsb25nb3B0c1tsb25naW5kZXhdLmhhc19hcmcpIAoJCQkJCXByaW50ZigiICVzIiwKCQkJ
CQkgICAgICAgbm9ybWFsaXplKG9wdGFyZz9vcHRhcmc6IiIpKTsKCQkJfSBlbHNlIGlmIChvcHQg
PT0gTk9OX09QVCkgCgkJCQlwcmludGYoIiAlcyIsbm9ybWFsaXplKG9wdGFyZykpOyAKCQkJZWxz
ZSB7CgkJCQlwcmludGYoIiAtJWMiLG9wdCk7CgkJCQljaGFycHRyID0gc3RyY2hyKG9wdHN0cixv
cHQpOwoJCQkJaWYgKGNoYXJwdHIgIT0gTlVMTCAmJiAqKytjaGFycHRyID09ICc6JykKCQkJCQlw
cmludGYoIiAlcyIsCgkJCQkJICAgICAgIG5vcm1hbGl6ZShvcHRhcmc/b3B0YXJnOiIiKSk7CgkJ
CX0KCQl9CgkKCWlmICghIHF1aWV0X291dHB1dCkgewoJCXByaW50ZigiIC0tIik7CgkJd2hpbGUg
KG9wdGluZCA8IGFyZ2MpIAoJCQlwcmludGYoIiAlcyIsbm9ybWFsaXplKGFyZ3Zbb3B0aW5kKytd
KSk7CgkJcHJpbnRmKCJcbiIpOwoJfQoJcmV0dXJuIGV4aXRfY29kZTsKfQoKLyoKICogUmVwb3J0
IGFuIGVycm9yIHdoZW4gcGFyc2luZyBnZXRvcHQncyBvd24gYXJndW1lbnRzLgogKiBJZiBtZXNz
YWdlIGlzIE5VTEwsIHdlIGFscmVhZHkgc2VudCBhIG1lc3NhZ2UsIHdlIGp1c3QgZXhpdCB3aXRo
IGEgaGVscGZ1bAogKiBoaW50LgogKi8Kdm9pZCBwYXJzZV9lcnJvcihjb25zdCBjaGFyICptZXNz
YWdlKQp7CglpZiAobWVzc2FnZSkKCQlmcHJpbnRmKHN0ZGVyciwiZ2V0b3B0OiAlc1xuIixtZXNz
YWdlKTsKCWZwdXRzKF8oIlRyeSBgZ2V0b3B0IC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24u
XG4iKSxzdGRlcnIpOwoJZXhpdCgyKTsKfQoKc3RhdGljIHN0cnVjdCBvcHRpb24gKmxvbmdfb3B0
aW9ucz1OVUxMOwpzdGF0aWMgaW50IGxvbmdfb3B0aW9uc19sZW5ndGg9MDsgLyogTGVuZ3RoIG9m
IGFycmF5ICovCnN0YXRpYyBpbnQgbG9uZ19vcHRpb25zX25yPTA7IC8qIE5yIG9mIHVzZWQgZWxl
bWVudHMgaW4gYXJyYXkgKi8KI2RlZmluZSBMT05HX09QVElPTlNfSU5DUiAxMAojZGVmaW5lIGlu
aXRfbG9uZ29wdCgpIGFkZF9sb25nb3B0KE5VTEwsMCkKCi8qIFJlZ2lzdGVyIGEgbG9uZyBvcHRp
b24uIFRoZSBjb250ZW50cyBvZiBuYW1lIGlzIGNvcGllZC4gKi8Kdm9pZCBhZGRfbG9uZ29wdChj
b25zdCBjaGFyICpuYW1lLGludCBoYXNfYXJnKQp7CgljaGFyICp0bXA7CglpZiAoIW5hbWUpIHsg
LyogaW5pdCAqLwoJCWZyZWUobG9uZ19vcHRpb25zKTsKCQlsb25nX29wdGlvbnM9TlVMTDsKCQls
b25nX29wdGlvbnNfbGVuZ3RoPTA7CgkJbG9uZ19vcHRpb25zX25yPTA7Cgl9CgoJaWYgKGxvbmdf
b3B0aW9uc19uciA9PSBsb25nX29wdGlvbnNfbGVuZ3RoKSB7CgkJbG9uZ19vcHRpb25zX2xlbmd0
aCArPSBMT05HX09QVElPTlNfSU5DUjsKCQlsb25nX29wdGlvbnM9b3VyX3JlYWxsb2MobG9uZ19v
cHRpb25zLAoJCSAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yoc3RydWN0IG9wdGlvbikg
KiAKCQkgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nX29wdGlvbnNfbGVuZ3RoKTsKCX0K
Cglsb25nX29wdGlvbnNbbG9uZ19vcHRpb25zX25yXS5uYW1lPU5VTEw7Cglsb25nX29wdGlvbnNb
bG9uZ19vcHRpb25zX25yXS5oYXNfYXJnPTA7Cglsb25nX29wdGlvbnNbbG9uZ19vcHRpb25zX25y
XS5mbGFnPU5VTEw7Cglsb25nX29wdGlvbnNbbG9uZ19vcHRpb25zX25yXS52YWw9MDsKCglpZiAo
bG9uZ19vcHRpb25zX25yKSB7IC8qIE5vdCBmb3IgaW5pdCEgKi8KCQlsb25nX29wdGlvbnNbbG9u
Z19vcHRpb25zX25yLTFdLmhhc19hcmc9aGFzX2FyZzsKCQlsb25nX29wdGlvbnNbbG9uZ19vcHRp
b25zX25yLTFdLmZsYWc9TlVMTDsKCQlsb25nX29wdGlvbnNbbG9uZ19vcHRpb25zX25yLTFdLnZh
bD1MT05HX09QVDsKCQl0bXAgPSBvdXJfbWFsbG9jKHN0cmxlbihuYW1lKSsxKTsKCQlzdHJjcHko
dG1wLG5hbWUpOwoJCWxvbmdfb3B0aW9uc1tsb25nX29wdGlvbnNfbnItMV0ubmFtZT10bXA7Cgl9
Cglsb25nX29wdGlvbnNfbnIrKzsKfQoJCgovKiAKICogUmVnaXN0ZXIgc2V2ZXJhbCBsb25nIG9w
dGlvbnMuIG9wdGlvbnMgaXMgYSBzdHJpbmcgb2YgbG9uZyBvcHRpb25zLCAKICogc2VwYXJhdGVk
IGJ5IGNvbW1hcyBvciB3aGl0ZXNwYWNlLiAKICogVGhpcyBudWtlcyBvcHRpb25zISAKICovCnZv
aWQgYWRkX2xvbmdfb3B0aW9ucyhjaGFyICpvcHRpb25zKQp7CglpbnQgYXJnX29wdDsKCWNoYXIg
KnRva3B0cj1zdHJ0b2sob3B0aW9ucywiLCBcdFxuIik7Cgl3aGlsZSAodG9rcHRyKSB7CgkJYXJn
X29wdD1ub19hcmd1bWVudDsKCQlpZiAoc3RybGVuKHRva3B0cikgPiAwKSB7CgkJCWlmICh0b2tw
dHJbc3RybGVuKHRva3B0ciktMV0gPT0gJzonKSB7CgkJCQlpZiAodG9rcHRyW3N0cmxlbih0b2tw
dHIpLTJdID09ICc6JykgewoJCQkJCXRva3B0cltzdHJsZW4odG9rcHRyKS0yXT0nXDAnOwoJCQkJ
CWFyZ19vcHQ9b3B0aW9uYWxfYXJndW1lbnQ7CgkJCQl9IGVsc2UgewoJCQkJCXRva3B0cltzdHJs
ZW4odG9rcHRyKS0xXT0nXDAnOwoJCQkJCWFyZ19vcHQ9cmVxdWlyZWRfYXJndW1lbnQ7CgkJCQl9
CgkJCQlpZiAoc3RybGVuKHRva3B0cikgPT0gMCkKCQkJCQlwYXJzZV9lcnJvcihfKCJlbXB0eSBs
b25nIG9wdGlvbiBhZnRlciAiCgkJCQkJICAgICAgICAgICAgICAiLWwgb3IgLS1sb25nIGFyZ3Vt
ZW50IikpOwoJCQl9CgkJCWFkZF9sb25nb3B0KHRva3B0cixhcmdfb3B0KTsKCQl9CgkJdG9rcHRy
PXN0cnRvayhOVUxMLCIsIFx0XG4iKTsKCX0KfQoKdm9pZCBzZXRfc2hlbGwoY29uc3QgY2hhciAq
bmV3X3NoZWxsKQp7CglpZiAoIXN0cmNtcChuZXdfc2hlbGwsImJhc2giKSkKCQlzaGVsbD1CQVNI
OwoJZWxzZSBpZiAoIXN0cmNtcChuZXdfc2hlbGwsInRjc2giKSkKCQlzaGVsbD1UQ1NIOwoJZWxz
ZSBpZiAoIXN0cmNtcChuZXdfc2hlbGwsInNoIikpCgkJc2hlbGw9QkFTSDsKCWVsc2UgaWYgKCFz
dHJjbXAobmV3X3NoZWxsLCJjc2giKSkKCQlzaGVsbD1UQ1NIOwoJZWxzZQoJCXBhcnNlX2Vycm9y
KF8oInVua25vd24gc2hlbGwgYWZ0ZXIgLXMgb3IgLS1zaGVsbCBhcmd1bWVudCIpKTsKfQoKdm9p
ZCBwcmludF9oZWxwKHZvaWQpCnsKCWZwdXRzKF8oIlVzYWdlOiBnZXRvcHQgb3B0c3RyaW5nIHBh
cmFtZXRlcnNcbiIpLHN0ZGVycik7CglmcHV0cyhfKCIgICAgICAgZ2V0b3B0IFtvcHRpb25zXSBb
LS1dIG9wdHN0cmluZyBwYXJhbWV0ZXJzXG4iKSxzdGRlcnIpOwoJZnB1dHMoXygiICAgICAgIGdl
dG9wdCBbb3B0aW9uc10gLW98LS1vcHRpb25zIG9wdHN0cmluZyBbb3B0aW9uc10gWy0tXVxuIiks
c3RkZXJyKTsKCWZwdXRzKF8oIiAgICAgICAgICAgICAgcGFyYW1ldGVyc1xuIiksc3RkZXJyKTsK
I2lmZGVmIEhBVkVfR0VUT1BUX0xPTkdfT05MWQoJZnB1dHMoXygiICAtYSwgLS1hbHRlcm5hdGl2
ZSAgICAgICAgICAgIEFsbG93IGxvbmcgb3B0aW9ucyBzdGFydGluZyB3aXRoIHNpbmdsZSAtXG4i
KSxzdGRlcnIpOwojZW5kaWYKCWZwdXRzKF8oIiAgLWgsIC0taGVscCAgICAgICAgICAgICAgICAg
ICBUaGlzIHNtYWxsIHVzYWdlIGd1aWRlXG4iKSxzdGRlcnIpOwoJZnB1dHMoXygiICAtbCwgLS1s
b25nb3B0aW9ucz1sb25nb3B0cyAgIExvbmcgb3B0aW9ucyB0byBiZSByZWNvZ25pemVkXG4iKSxz
dGRlcnIpOwoJZnB1dHMoXygiICAtbiwgLS1uYW1lPXByb2duYW1lICAgICAgICAgIFRoZSBuYW1l
IHVuZGVyIHdoaWNoIGVycm9ycyBhcmUgcmVwb3J0ZWRcbiIpLHN0ZGVycik7CglmcHV0cyhfKCIg
IC1vLCAtLW9wdGlvbnM9b3B0c3RyaW5nICAgICAgU2hvcnQgb3B0aW9ucyB0byBiZSByZWNvZ25p
emVkXG4iKSxzdGRlcnIpOwoJZnB1dHMoXygiICAtcSwgLS1xdWlldCAgICAgICAgICAgICAgICAg
IERpc2FibGUgZXJyb3IgcmVwb3J0aW5nIGJ5IGdldG9wdCgzKVxuIiksc3RkZXJyKTsKCWZwdXRz
KF8oIiAgLVEsIC0tcXVpZXQtb3V0cHV0ICAgICAgICAgICBObyBub3JtYWwgb3V0cHV0XG4iKSxz
dGRlcnIpOwoJZnB1dHMoXygiICAtcywgLS1zaGVsbD1zaGVsbCAgICAgICAgICAgIFNldCBzaGVs
bCBxdW90aW5nIGNvbnZlbnRpb25zXG4iKSxzdGRlcnIpOwkKCWZwdXRzKF8oIiAgLVQsIC0tdGVz
dCAgICAgICAgICAgICAgICAgICBUZXN0IGZvciBnZXRvcHQoMSkgdmVyc2lvblxuIiksc3RkZXJy
KTsKCWZwdXRzKF8oIiAgLXUsIC0tdW5xb3RlICAgICAgICAgICAgICAgICBEbyBub3QgcXVvdGUg
dGhlIG91dHB1dFxuIiksc3RkZXJyKTsKCWZwdXRzKF8oIiAgLVYsIC0tdmVyc2lvbiAgICAgICAg
ICAgICAgICBPdXRwdXQgdmVyc2lvbiBpbmZvcm1hdGlvblxuIiksc3RkZXJyKTsKCWV4aXQoMik7
Cn0KCQovKiBFeGl0IGNvZGVzOgogKiAgIDApIE5vIGVycm9ycywgc3VjY2VzZnVsIG9wZXJhdGlv
bi4KICogICAxKSBnZXRvcHQoMykgcmV0dXJuZWQgYW4gZXJyb3IuCiAqICAgMikgQSBwcm9ibGVt
IHdpdGggcGFyYW1ldGVyIHBhcnNpbmcgZm9yIGdldG9wdCgxKS4KICogICAzKSBJbnRlcm5hbCBl
cnJvciwgb3V0IG9mIG1lbW9yeQogKiAgIDQpIFJldHVybmVkIGZvciAtVAogKi8KCnN0YXRpYyBz
dHJ1Y3Qgb3B0aW9uIGxvbmdvcHRzW109eyB7Im9wdGlvbnMiLHJlcXVpcmVkX2FyZ3VtZW50LE5V
TEwsJ28nfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsibG9uZ29wdGlvbnMi
LHJlcXVpcmVkX2FyZ3VtZW50LE5VTEwsJ2wnfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsicXVpZXQiLG5vX2FyZ3VtZW50LE5VTEwsJ3EnfSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsicXVpZXQtb3V0cHV0Iixub19hcmd1bWVudCxOVUxMLCdRJ30sCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7InNoZWxsIixyZXF1aXJlZF9hcmd1bWVu
dCxOVUxMLCdzJ30sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7InRlc3QiLG5v
X2FyZ3VtZW50LE5VTEwsJ1QnfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsi
dW5xdW90ZWQiLG5vX2FyZ3VtZW50LE5VTEwsJ3UnfSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHsiaGVscCIsbm9fYXJndW1lbnQsTlVMTCwnaCd9LAojaWZkZWYgSEFWRV9HRVRP
UFRfTE9OR19PTkxZCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ImFsdGVybmF0
aXZlIixub19hcmd1bWVudCxOVUxMLCdhJ30sCiNlbmRpZgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgeyJuYW1lIixyZXF1aXJlZF9hcmd1bWVudCxOVUxMLCduJ30sCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7InZlcnNpb24iLG5vX2FyZ3VtZW50LE5VTEwsJ1Yn
fSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtOVUxMLDAsTlVMTCwwfQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CgovKiBTdG9wIHNjYW5uaW5nIGFzIHNvb24g
YXMgYSBub24tb3B0aW9uIGFyZ3VtZW50IGlzIGZvdW5kISAqLwpzdGF0aWMgY29uc3QgY2hhciAq
c2hvcnRvcHRzPSIrYW86bDpuOnFRczpUdWhWIjsKCmludCBtYWluKGludCBhcmdjLCBjaGFyICph
cmd2W10pCnsKCWNoYXIgKm9wdHN0cj1OVUxMOwoJY2hhciAqbmFtZT1OVUxMOwoJaW50IG9wdDsK
CWludCBjb21wYXRpYmxlPTA7CgoJaW5pdF9sb25nb3B0KCk7CgoJaWYgKGdldGVudigiR0VUT1BU
X0NPTVBBVElCTEUiKSkgCgkJY29tcGF0aWJsZT0xOwoKCWlmIChhcmdjID09IDEpIAoJewoJCWlm
IChjb21wYXRpYmxlKSB7CgkJCS8qIEZvciBzb21lIHJlYXNvbiwgdGhlIG9yaWdpbmFsIGdldG9w
dCBnYXZlIG5vIGVycm9yCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoZW4gdGhlcmUgd2Vy
ZSBubyBhcmd1bWVudHMuICovCgkJCXByaW50ZigiIC0tXG4iKTsKCQkJZXhpdCgwKTsKCQl9CgkJ
ZWxzZQoJCQlwYXJzZV9lcnJvcihfKCJtaXNzaW5nIG9wdHN0cmluZyBhcmd1bWVudCIpKTsKCX0K
CQoJaWYgKGFyZ3ZbMV1bMF0gIT0gJy0nIHx8IGNvbXBhdGlibGUpIHsKCQlxdW90ZT0wOwoJCW9w
dHN0cj1vdXJfbWFsbG9jKHN0cmxlbihhcmd2WzFdKSsxKTsKCQlzdHJjcHkob3B0c3RyLGFyZ3Zb
MV0rc3Ryc3BuKGFyZ3ZbMV0sIi0rIikpOwoJCWFyZ3ZbMV09YXJndlswXTsKCQlleGl0KGdlbmVy
YXRlX291dHB1dChhcmd2KzEsYXJnYy0xLG9wdHN0cixsb25nX29wdGlvbnMpKTsKCX0KCQoJd2hp
bGUgKChvcHQ9Z2V0b3B0X2xvbmcoYXJnYyxhcmd2LHNob3J0b3B0cyxsb25nb3B0cyxOVUxMKSkg
IT0gRU9GKSAKCQlzd2l0Y2ggKG9wdCkgewojaWZkZWYgSEFWRV9HRVRPUFRfTE9OR19PTkxZCgkJ
Y2FzZSAnYSc6CgkJCWFsdGVybmF0aXZlPTE7CgkJCWJyZWFrOwojZW5kaWYKCQljYXNlICdoJzoK
CQkJcHJpbnRfaGVscCgpOwoJCQlleGl0KDApOwoJCWNhc2UgJ28nOgoJCQlpZiAob3B0c3RyKQoJ
CQkJZnJlZShvcHRzdHIpOwoJCQlvcHRzdHI9b3VyX21hbGxvYyhzdHJsZW4ob3B0YXJnKSsxKTsK
CQkJc3RyY3B5KG9wdHN0cixvcHRhcmcpOwoJCQlicmVhazsKCQljYXNlICdsJzoKCQkJYWRkX2xv
bmdfb3B0aW9ucyhvcHRhcmcpOwoJCQlicmVhazsKCQljYXNlICduJzoKCQkJaWYgKG5hbWUpCgkJ
CQlmcmVlKG5hbWUpOwoJCQluYW1lPW91cl9tYWxsb2Moc3RybGVuKG9wdGFyZykrMSk7CgkJCXN0
cmNweShuYW1lLG9wdGFyZyk7CgkJCWJyZWFrOwoJCWNhc2UgJ3EnOgoJCQlxdWlldF9lcnJvcnM9
MTsKCQkJYnJlYWs7CgkJY2FzZSAnUSc6CgkJCXF1aWV0X291dHB1dD0xOwoJCQlicmVhazsKCQlj
YXNlICdzJzoKCQkJc2V0X3NoZWxsKG9wdGFyZyk7CgkJCWJyZWFrOwoJCWNhc2UgJ1QnOgoJCQll
eGl0KDQpOwoJCWNhc2UgJ3UnOgoJCQlxdW90ZT0wOwoJCQlicmVhazsKCQljYXNlICdWJzoKCQkJ
cHJpbnRmKF8oImdldG9wdCAoZW5oYW5jZWQpIDEuMS4yXG4iKSk7CgkJCWV4aXQoMCk7CgkJY2Fz
ZSAnPyc6CgkJY2FzZSAnOic6CgkJCXBhcnNlX2Vycm9yKE5VTEwpOwoJCWRlZmF1bHQ6CgkJCXBh
cnNlX2Vycm9yKF8oImludGVybmFsIGVycm9yLCBjb250YWN0IHRoZSBhdXRob3IuIikpOwoJCX0K
CQoJaWYgKCFvcHRzdHIpIAoJewoJCWlmIChvcHRpbmQgPj0gYXJnYykKCQkJcGFyc2VfZXJyb3Io
XygibWlzc2luZyBvcHRzdHJpbmcgYXJndW1lbnQiKSk7CgkJZWxzZSB7CgkJCW9wdHN0cj1vdXJf
bWFsbG9jKHN0cmxlbihhcmd2W29wdGluZF0pKzEpOwoJCQlzdHJjcHkob3B0c3RyLGFyZ3Zbb3B0
aW5kXSk7CgkJCW9wdGluZCsrOwoJCX0KCX0KCWlmIChuYW1lKQoJCWFyZ3Zbb3B0aW5kLTFdPW5h
bWU7CgllbHNlCgkJYXJndltvcHRpbmQtMV09YXJndlswXTsKCWV4aXQoZ2VuZXJhdGVfb3V0cHV0
KGFyZ3Yrb3B0aW5kLTEsYXJnYy1vcHRpbmQrMSxvcHRzdHIsbG9uZ19vcHRpb25zKSk7Cn0K


------------721C43615FEFFA
Content-Type: text/plain; charset=us-ascii

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/
------------721C43615FEFFA--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019