delorie.com/archives/browse.cgi   search  
Mail Archives: geda-user/2014/04/25/14:09:03

X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f
X-Recipient: geda-user AT delorie DOT com
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20120113;
h=mime-version:in-reply-to:references:date:message-id:subject:from:to
:content-type;
bh=sNMZ8doUeBXMdSVrJpfAdnZp6V7zPrO+//4BakDQkUY=;
b=oWQHp1/BkZtUi/mWqS/Mvr8eGl7DL22tx9i2QxQwyHoQGXjvRNydA86Q805O8IActC
gOzFSZJf0DHzqsOEY/tSniEw98zK9Es2+7AkvqEhbimjFEbxHz60aCamxOOWQENk3lOV
0aBpN7FkKgJUW2ZC4YkyaMPSfLJd7BEovosZli3YbvUHW1UucaRynQ+OLIAI9gL1+60j
oJB71oytFowPiuiLz1sIcUd9kj4sTBfqdQtLQAKNGyQ8yhT2UTPI1AbB2zit3NpMtxbx
qulh27P5jIDqfkjJObaE4VIO8J2vV09E66g1FDMjMZjNSw781WS56jB2Egy7bqvkcFAA
uPhg==
MIME-Version: 1.0
X-Received: by 10.182.55.3 with SMTP id n3mr3609337obp.55.1398449294666; Fri,
25 Apr 2014 11:08:14 -0700 (PDT)
In-Reply-To: <CAG4ve9KXKuLyOdnr3B+UhxU0Dk3P37SGQ=r0pcLQLENGp0CuNg@mail.gmail.com>
References: <CAG4ve9LgHNoVZoGaGgF67tadJ_n=L6Uy1g=UPPrkM0fL6Rgufw AT mail DOT gmail DOT com>
<20140127234944 DOT 924148045B78 AT turkos DOT aspodata DOT se>
<CAG4ve9+3jhFJ1Cr6CLUyLX_y02uigJECiUCwxjUWdP=heVocqg AT mail DOT gmail DOT com>
<20140128201110 DOT DF7D78045B78 AT turkos DOT aspodata DOT se>
<20140129072550 DOT GA24560 AT localhost DOT localdomain>
<CAG4ve9+v9QxNRaPSFkmGfr6bKsv7km-Gt_gwXF7Eh4TX+AmNug AT mail DOT gmail DOT com>
<CAOP4iL2JBUdF93kZF-iQ9Rv+VTN3iXoT+6C4LoBi5qaMxof=sA AT mail DOT gmail DOT com>
<CAG4ve9+QsUf=nVXPe-f3VddGiqHn8sjZUJNkdu3QV1cOQDWiAg AT mail DOT gmail DOT com>
<86CABBE6-EE80-4347-B7AA-3F5A8DA4C658 AT noqsi DOT com>
<CAG4ve9LX0mYk2a1zpfWJJC=OP5Weq9pt3PF7_Nqx5vX4wpR=Bg AT mail DOT gmail DOT com>
<1394402434 DOT 2151 DOT 28 DOT camel AT AMD64X2 DOT fritz DOT box>
<CAG4ve9KgoDkkXivoBGL8C2nwToNWjG_Zo61+XeR=sQNeSAnPow AT mail DOT gmail DOT com>
<20140311130801 DOT 94D928020170 AT turkos DOT aspodata DOT se>
<CAG4ve9+D53V_nwT4aKs=4qPUFkGnv9AO52bJp6TZ=GwoVNmx-A AT mail DOT gmail DOT com>
<20140311211548 DOT 2A88E8020170 AT turkos DOT aspodata DOT se>
<CAC4O8c_jF7SfFMv_jYiUOTZ4goO-P3DGfzrH0-_CiGFwKHzemg AT mail DOT gmail DOT com>
<CAG4ve9L34H+JxR3GdYDWJj3ufMndvLZ_GGdinaM7J4d8QycMnQ AT mail DOT gmail DOT com>
<201403131446 DOT s2DEkjg0008539 AT envy DOT delorie DOT com>
<CAG4ve9LTGvG=OMmG-m0BWHZ1rZiYP5GwyMw4tWM9JE=g9gBF9g AT mail DOT gmail DOT com>
<F425228C-D3A9-4DDB-BF77-4DB3AC4AFD12 AT noqsi DOT com>
<CAG4ve9KXKuLyOdnr3B+UhxU0Dk3P37SGQ=r0pcLQLENGp0CuNg AT mail DOT gmail DOT com>
Date: Fri, 25 Apr 2014 22:08:14 +0400
Message-ID: <CAG4ve9JRKQkFVAu-5esTwYrS0rmjUpk142rfJq5RBeCBfHYQrQ@mail.gmail.com>
Subject: Re: [geda-user] identical symbol names
From: =?UTF-8?B?0JDQu9C10LrRgdC10Lkg0KXQsNGA0YzQutC+0LLRgdC60LjQuQ==?= <svetonomer AT gmail DOT com>
To: geda-user AT delorie DOT com
Reply-To: geda-user AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: geda-user AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

--089e015387027227e604f7e1d9d8
Content-Type: multipart/alternative; boundary=089e015387027227e004f7e1d9d6

--089e015387027227e004f7e1d9d6
Content-Type: text/plain; charset=UTF-8

Hello All.

Attached script allowing to work with library section of sch file.

It can save symbol from library section to file in current directory or
save all symbols to corresponding symbol files.
Also it may remove one symbol from library section or remove all library
section completely.

Also it allowing replacing symbol in library section with external symbol
file.

For add attached new attributes in schematic to symbol file use --with-attr
option

See lib_sec_util.py --help for more.

--089e015387027227e004f7e1d9d6
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div><div><div><div><div><div>Hello All.<br><br></div>Atta=
ched script allowing to work with library section of sch file.<br><br></div=
>It can save symbol from library section to file in current directory or sa=
ve all symbols to corresponding symbol files.<br>
</div>Also it may remove one symbol from library section or remove all libr=
ary section completely.<br><br></div>Also it allowing replacing symbol in l=
ibrary section with external symbol file.<br><br></div>For add attached new=
 attributes in schematic to symbol file use --with-attr option<br>
<br></div>See lib_sec_util.py --help for more.<br><div><div><div><div><div>=
<br></div></div></div></div></div></div>

--089e015387027227e004f7e1d9d6--
--089e015387027227e604f7e1d9d8
Content-Type: text/x-python; charset=US-ASCII; name="lib_sec_util.py"
Content-Disposition: attachment; filename="lib_sec_util.py"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_hufsefdd0

IyEvdXNyL2Jpbi9lbnYgcHl0aG9uMgoKZGVmIGF0dHJfZ2VuKGNvbXBfc3RyKToKICAgIGF0dHJz
ID0gcmUuc2VhcmNoKCdDIChcZCspIChcZCspIC4qXHtcbiguKilcblx9JywgY29tcF9zdHIsIHJl
LkRPVEFMTCkgIyBDb21wb25lbnQgY29vcmRpbmF0ZXMgYW5kIGNvbnRlbnQgcGFyc2UKICAgIHgg
PSBpbnQoYXR0cnMuZ3JvdXAoMSkpICMgeC1jb29yZCBvZiBjb21wb25lbnQKICAgIHkgPSBpbnQo
YXR0cnMuZ3JvdXAoMikpICMgeS1jb29yZCBvZiBjb21wb25lbnQKICAgIGF0dHJzID0gYXR0cnMu
Z3JvdXAoMykgICMgY29udGVudCBvZiBjb21wb25lbnQKICAgIGF0dHJzPXJlLnNwbGl0KCdcbj9U
IChcZCspIChcZCspICguKj9cbikoXFMrKT0nLCBhdHRycywgcmUuRE9UQUxMKVsxOl0gIyBMaXN0
IG9mIGNvbXBvbmVudCBhdHRyaWJ1dGVzIFsgeCwgeSwgcGxhY2VtZW50IHBhcmFtcywgbmFtZSwg
dmFsdWUsIHgseSwuLi4uLi5dCiAgICBsaXN0X2F0dHJzID0ge30gI05ldyBkaWN0CiAgICBmb3Ig
aSBpbiByYW5nZShsZW4oYXR0cnMpLzUpOiAjIDUgLT4gbGVuIG9mIGxpc3QgZWxlbWVudHMgZm9y
IE9ORSB0ZXh0IGF0dHJpYnV0ZQogICAgICAgIGxpc3RfYXR0cnNbYXR0cnNbaSo1KzNdXSA9IFtp
bnQoYXR0cnNbaSo1XSkteCxpbnQoYXR0cnNbaSo1KzFdKS15LGF0dHJzW2kqNSsyXSwgYXR0cnNb
aSo1KzRdXSAgICMgS2V5IG9mIGRpY3QgaXMgQVRUUiBuYW1lCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBWYWx1ZSAtPiBvdGhlciA0IGVsZW1lbnRzIG9m
IGxpc3Q6IFJlbGFpdGl2ZSBhdHRyaWJ1dGVzICh4LHkpIG90cmhlciB0ZXh0IHBhcmFtcyBhbmQg
VmFsdWUgb2YgQXR0cmlidXRlLgogICAgcmV0dXJuIGxpc3RfYXR0cnMgIyBEaWN0IHJldHVybgoK
CmhlbHAgPSAiIiIKVXNhZ2U6IGxpYl9zZWNfdXRpbHMgWy0td2l0aC1hdHRyc10gY29tbWFuZCBz
eW1ib2wgU0NIRklMRQpFeGFtcGxlczoKCiAgICBsaWJfc2VjX3V0aWxzIHNhdmUge1JFRkRFUyB8
IFN5bU5hbWV9IFNDSEZJTEUgICAgICAgICAgICAgICAgIyBUaGlzIGNvbW1hbmQgc2F2ZXMgbGli
cmFyeSBzaW1ib2wgZnJvbSBsaWIgc2VjdGlvbiBvZiAuc2NoIGZpbGUgdG8gZmlsZSBpbiBjdXJy
ZW50IGRpcmVjdG9yeS4gRmlsZSBuYW1lZCBzaW1pbGFyIHN5bWJvbCBuYW1lLgoKICAgIGxpYl9z
ZWNfdXRpbHMgc2F2ZWFsbCBTQ0hGSUxFICAgICAgICAgICAgICAgICMgVGhpcyBjb21tYW5kIHNh
dmVzIGFsbCBsaWJyYXJ5IHNpbWJvbHMgZnJvbSBsaWIgc2VjdGlvbiBvZiAuc2NoIGZpbGUgdG8g
ZmlsZSBpbiBjdXJyZW50IGRpcmVjdG9yeS4gRmlsZXMgbmFtZWQgc2ltaWxhciBzeW1ib2wgbmFt
ZS4KCiAgICBsaWJfc2VjX3V0aWxzIC0td2l0aC1hdHRycyBzYXZlIHtSRUZERVMgfCBTeW1OYW1l
fSBTQ0hGSUxFICAgICAjIFRoaXMgY29tbWFuZCBhcyBwcmV2aW91cywgYnV0IHNhdmVzIHRvIGZp
bGUgbG9jYWxseSBhdHRhY2hlZCBhdHRyaWJ1dGVzIChleGNlcHRpb24gY3VycmVudGx5IGV4aXN0
ZWQpLgogICAgCiAgICBsaWJfc2VjX3V0aWxzIHJlbW92ZSB7UkVGREVTIHwgU3ltTmFtZX0gU0NI
RklMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVGhpcyBjb21tYW5kIHJl
bW92ZXMgbGlicmFyeSBzeW1ib2wgd2l0aCBzZWxlY3QgUkVGREVTIG9yIHN5bWJvbCBuYW1lIGZy
b20gbGlicmFyeSBzZWN0aW9uCiAgICAKICAgIGxpYl9zZWNfdXRpbHMgcmVtb3ZhbGwgU0NIRklM
RSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFRoaXMgY29tbWFuZCByZW1vdmVz
IHdob2xlIGxpYnJhcnkgc2VjdGlvbiBmcm9tIGZpbGUuCiAgICAKICAgIGxpYl9zZWNfdXRpbHMg
cmVwbGFjZSB7UkVGREVTIHwgU3ltTmFtZX0gW3BhdGgvdG8vc3ltZmlsZV0gU0NIRklMRSAgIyBU
aGlzIGNvbW1hbmQgcmVwbGFjZWQgc3ltYm9sIG9mIFJFRkRFUyBvciBTeW1OYW1lIGluIGxpYnJh
cnkgc2VjdGlvbiBvZiBmaWxlIHdpdGggc3ltYm9sIGZyb20gcGF0aC90by9zeW1maWxlIGZpbGUg
b3IgZmlsZSBmcm9tIGN1cnJlbnQgZGlyIHdpdGggbmFtZSBhcyBSRUZERVMgc3ltYm9sIChkZWZh
dWx0KS4KICAgIAogICAgbGliX3NlY191dGlscyAtLXdpdGgtYXR0cnMgcmVwbGFjZSB7UkVGREVT
IHwgU3ltTmFtZX0gW3BhdGgvdG8vc3ltZmlsZV0gU0NIRklMRSAgICAgICAgIyBSZXBsYWNlZCB0
aGUgZmlsZSBhbmQgcmVtb3ZlIGV4aXN0ZWQgYXR0cmlidXRlcyBpbiBuZXcgc3ltYm9sIGZyb20g
Q29tcG9uZW50IChleGNlcHRpb24gUkVGREVTKQoKIiIiCgp2ZXJzaW9uPSdsaWJfc2VjX3V0aWwu
cHkgdjEuMCBieSBLaGFya292c2t5IEFsZXhleSA6KScKCmltcG9ydCBzeXMsb3MKaW1wb3J0IHJl
CgppZiAobGVuKHN5cy5hcmd2KSA9PSAxKSBvciAoJy0taGVscCcgaW4gc3lzLmFyZ3YpOgoJcHJp
bnQgaGVscAoJZXhpdCgwKQoKaWYgJy0tdmVyc2lvbicgaW4gc3lzLmFyZ3Y6CglwcmludCB2ZXJz
aW9uCglleGl0KDApCgppZiAnLS13aXRoLWF0dHJzJyBpbiBzeXMuYXJndjoKCXdpdGhfYXR0cnMg
PSBUcnVlCglzeXMuYXJndi5yZW1vdmUoJy0td2l0aC1hdHRycycpCmVsc2U6Cgl3aXRoX2F0dHJz
ID0gRmFsc2UKCmNvbW1hbmQgPSBzeXMuYXJndlsxXSAgICAgICAjIGNvbW1hbmQgOikKc3lzLmFy
Z3YucmVtb3ZlKGNvbW1hbmQpICAgICMgCgpzY2hfZmlsZW5hbWUgPSBzeXMuYXJndlt+MF0gIyBz
Y2gvc3ltIGZpbGVuYW1lIChsYXN0IGVsZW1lbnQgb2YgYXJndW1lbnQgbGlzdCkKc3lzLmFyZ3Yu
cmVtb3ZlKHNjaF9maWxlbmFtZSkKCmlmIGNvbW1hbmQgPT0gJ3JlbW92YWxsJzoKICAgIHNjaF9m
aWxlID0gb3BlbihzY2hfZmlsZW5hbWUsJ3J0JykKICAgIGNvbnRlbnQgPSBzY2hfZmlsZS5yZWFk
KCkuc3BsaXQoJy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tbGlicmFyeSBzZWN0aW9uLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0nLCAxKVswXQogICAgc2NoX2ZpbGUuY2xvc2UoKQogICAgc2No
X2ZpbGUgPSBvcGVuKHNjaF9maWxlbmFtZSwnd3QnKQogICAgc2NoX2ZpbGUud3JpdGUoY29udGVu
dCkKICAgIHNjaF9maWxlLmNsb3NlKCkKICAgIHN5cy5leGl0KDApCgplbGlmIGNvbW1hbmQgPT0g
J3NhdmVhbGwnOgogICAgc2NoX2ZpbGUgPSBvcGVuKHNjaF9maWxlbmFtZSwncnQnKQogICAgY29u
dGVudCA9IHNjaF9maWxlLnJlYWQoKS5zcGxpdCgnLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1s
aWJyYXJ5IHNlY3Rpb24tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJywgMSlbMV0KICAgIHNj
aF9maWxlLmNsb3NlKCkKICAgIHdoaWxlIChyZS5zZWFyY2goJ1xTKycsY29udGVudCkpOgogICAg
ICAgICNzeW1uYW1lID0gcmUuc3BsaXQoJ1xuKFxTKz8pXG5ce1xuJyAlKHN5bW5hbWUpICxjb250
ZW50LCAxKSAjIFNlYXJjaCBzaW1ib2wgaW4gbGlicmFyeSBzZWN0aW9uCiAgICAgICAgc3ltbmFt
ZSxjb250ZW50ID0gY29udGVudC5zcGxpdCgnXG57XG4nLDEpCiAgICAgICAgaT0xCiAgICAgICAg
ZW5kPTAKICAgICAgICB3aGlsZSBpPjA6ICAjc2VhcmNoIGVuZCBvZiBzeW1ib2wKICAgICAgICAg
ICAgYmVnX2Jsb2NrID0gY29udGVudFtlbmQ6XS5maW5kKCd7JykKICAgICAgICAgICAgZW5kX2Js
b2NrID0gY29udGVudFtlbmQ6XS5maW5kKCd9JykKICAgICAgICAgICAgaWYgYmVnX2Jsb2NrID09
IC0xIGFuZCBlbmRfYmxvY2shPS0xOgogICAgICAgICAgICAgICAgYmVnX2Jsb2NrPWxlbihjb250
ZW50KQogICAgICAgICAgICBpZiBlbmRfYmxvY2s9PS0xOgogICAgICAgICAgICAgICAgcHJpbnQg
J2xhY2tzIGEgY2xvc2luZyBwYXJlbnRoZXNpc1xuJwogICAgICAgICAgICAgICAgc3lzLmV4aXQo
MSkKCiAgICAgICAgICAgIGlmIGJlZ19ibG9jayA8IGVuZF9ibG9jazoKICAgICAgICAgICAgICAg
IGkrPTEKICAgICAgICAgICAgICAgIGVuZCs9Y29udGVudFtlbmQ6XS5maW5kKCd7JykrMQogICAg
ICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgaS09MQogICAgICAgICAgICAgICAgZW5kKz1j
b250ZW50W2VuZDpdLmZpbmQoJ30nKSsxCiAgICAgICAgc3ltX2ZpbGUgPSBvcGVuKHN5bW5hbWUs
J3d0JykKICAgICAgICBzeW1fZmlsZS53cml0ZShjb250ZW50WzplbmQtMV0pCiAgICAgICAgc3lt
X2ZpbGUuY2xvc2UoKQogICAgICAgIGNvbnRlbnQgPSBjb250ZW50W2VuZCsxOl0gI0Z1bGwgc3lt
Ym9sIGNvbnRlbnQKICAgIHN5cy5leGl0KDApCgoKcmVmZGVzID0gc3lzLmFyZ3ZbMV0gICAgICAg
ICNyZWZkZXMgTmFtZSBvciBzeW1ib2wgTmFtZQpzeXMuYXJndi5yZW1vdmUocmVmZGVzKSAgICAg
I3JlbW92ZSByZWZkZXMgZnJvbSBsaXN0IAoKaWYgbGVuKHN5cy5hcmd2KSA+MiA6CiAgICBwcmlu
dCAiZ2FyYmFkZSBpbiBzdHJpbmcgb3IgUmVhZCB0aGUgaGVscCBwbGVhc2UgOikiCiAgICBzeXMu
ZXhpdCgxKQplbGlmIGxlbihzeXMuYXJndikgPT0yOgogICAgc3ltX2ZpbGVuYW1lID0gc3lzLmFy
Z3ZbMV0KZWxzZTogc3ltX2ZpbGVuYW1lID0gJycKCnRyeToKICAgIHNjaF9maWxlID0gb3Blbihz
Y2hfZmlsZW5hbWUsJ3J0JykgICAgICAgICAgCmV4Y2VwdCBFeGNlcHRpb24gYXMgZXJyOgogICAg
cHJpbnQgJ1JlYWQgZmlsZSBlcnJvcjogXCIlc1wiJyAlKGVycikKY29udGVudCA9IHNjaF9maWxl
LnJlYWQoKQpzY2hfZmlsZS5jbG9zZSgpCgpjb21wID0gcmUuc2VhcmNoKCdDIFxkKyBcZCsgXGQr
IFxkKyBcZCsgKFxTKylcblx7W157fV0qcmVmZGVzPSVzJyAlKHJlZmRlcykgLGNvbnRlbnQpICMg
c2VhcmNoIGNvbXBvbmVudCB3aXRoIHJlZmRlcwppZiBjb21wOiAjIElmIGNvbXAgd2FzIGZpbmRl
ZCAtIHJlZmRlcyBpcyBUcnVlCiAgICBzeW1uYW1lID0gY29tcC5ncm91cCgxKSAjIHN5bW5hbWUg
b2YgY29tcG9uZW50CiAgICBpZiB3aXRoX2F0dHJzOiAjIFNlYXJjaCBjb21wb25lbnQgYXR0cmli
dXRlcwogICAgICAgIGF0dHJzID0gYXR0cl9nZW4ocmUuc2VhcmNoKCdDIFxkKyBcZCsgXGQrIFxk
KyBcZCsgJXNcblx7Lio/XH0nICUoc3ltbmFtZSkgLCBjb250ZW50LCByZS5ET1RBTEwpLmdyb3Vw
KDApKQplbHNlOiAgICAjIElmIGNvbXAgd2Fzbid0IGZpbmRlZCwgbmVlZCB0byBzZWFyY2ggc3lt
Ym9sIG5hbWUKICAgIHN5bW5hbWUgPSByZWZkZXMKCmNvbnRlbnQgPSByZS5zcGxpdCgnXG4lc1xu
XHtcbicgJShzeW1uYW1lKSAsY29udGVudCwgMSkgIyBTZWFyY2ggc2ltYm9sIGluIGxpYnJhcnkg
c2VjdGlvbgppZiBsZW4oY29udGVudCk8MjogIAogICAgcHJpbnQgJ05vIGNvbXBvbmVudCB3YXMg
ZmluZGVkICVzXG4nICUocmVmZGVzKQogICAgc3lzLmV4aXQoMSkKY29udGVudCA9IGNvbnRlbnRb
MV0KaT0xCmVuZD0wCndoaWxlIGk+MDogICNzZWFyY2ggZW5kIG9mIHN5bWJvbAogICAgYmVnX2Js
b2NrID0gY29udGVudFtlbmQ6XS5maW5kKCd7JykKICAgIGVuZF9ibG9jayA9IGNvbnRlbnRbZW5k
Ol0uZmluZCgnfScpCiAgICBpZiBiZWdfYmxvY2sgPT0gLTEgYW5kIGVuZF9ibG9jayE9LTE6CiAg
ICAgICAgYmVnX2Jsb2NrPWxlbihjb250ZW50KQogICAgaWYgZW5kX2Jsb2NrPT0tMToKICAgICAg
ICBwcmludCAnbGFja3MgYSBjbG9zaW5nIHBhcmVudGhlc2lzXG4nCiAgICAgICAgc3lzLmV4aXQo
MSkKCiAgICBpZiBiZWdfYmxvY2sgPCBlbmRfYmxvY2s6CiAgICAgICAgaSs9MQogICAgICAgIGVu
ZCs9Y29udGVudFtlbmQ6XS5maW5kKCd7JykrMQogICAgZWxzZToKICAgICAgICBpLT0xCiAgICAg
ICAgZW5kKz1jb250ZW50W2VuZDpdLmZpbmQoJ30nKSsxCmNvbnRlbnQgPSBjb250ZW50WzplbmQt
MV0gI0Z1bGwgc3ltYm9sIGNvbnRlbnQKCmlmIGNvbW1hbmQgPT0gJ3NhdmUnOiAjIFNhdmUgZmlu
ZGVkIHN5bWJvbCB0byBmaWxlCiAgICBpZiB3aXRoX2F0dHJzOiAjIEFkZCBsb2NhbGx5IGF0dGFj
aGVkIGF0dHJpYnV0ZXMgdG8gc3ltYm9sIAogICAgICAgIGlmIG5vdCBjb21wOgogICAgICAgICAg
ICBwcmludCAnRm9yIHNlYXJjaCBsb2NhbGx5IGF0dGFjaGVkIGF0dHJpYnMgbmVlZCB1c2UgUkVG
REVTIGluc3RlYWQgU3ltTmFtZScKICAgICAgICAgICAgI3N5cy5leGl0KDEpCiAgICAgICAgZWxz
ZToKICAgICAgICAgICAgZm9yIGkgaW4gYXR0cnMua2V5cygpOiAjIFNlYXJjaCBsb2NhbGx5IGF0
dHJpYnMgaW4gc3ltYm9sCiAgICAgICAgICAgICAgICBpZiBpICE9ICdyZWZkZXMnOgogICAgICAg
ICAgICAgICAgICAgIGF0dHIgPSByZS5zZWFyY2goJyhUIFxkKyBcZCsgXGQrIFxkKyBcZCsgXGQr
IFxkKyBcZCsgXGQrXG4lcz0oLio/KSkoXG5MfFxuSHxcbkJ8XG5HfFxuVnxcblV8XG5DfFxuVHxc
blB8XG5BfFxuWCknICUoaSksIGNvbnRlbnQsIHJlLkRPVEFMTCkKICAgICAgICAgICAgICAgICAg
ICBpZiBhdHRyID09IE5vbmU6ICMgSWYgYXR0ciBub3QgZmluZGVkIChuZXcgYWRkZWQpLCBhZGQg
dG8gZmlsZQogICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50ICs9ICdUICVkICVkICVzJXM9
JXMnICUoYXR0cnNbaV1bMF0sYXR0cnNbaV1bMV0sYXR0cnNbaV1bMl0saSxhdHRyc1tpXVszXSkK
ICAgICAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50
ID0gY29udGVudC5yZXBsYWNlKGF0dHIuZ3JvdXAoMSksICdUICVkICVkICVzJXM9JXMnICUoYXR0
cnNbaV1bMF0sYXR0cnNbaV1bMV0sYXR0cnNbaV1bMl0saSxhdHRyc1tpXVszXSkpICMgQXR0ciB3
YXMgZmluZGVkLCByZXBsYWNlIHZhbHVlIGFuZCBjb29yZGluYXRlcyAKCiAgICBzeW1fZmlsZSA9
IG9wZW4oc3ltbmFtZSBpZiBzeW1fZmlsZW5hbWU9PScnIGVsc2Ugc3ltX2ZpbGVuYW1lLCd3dCcp
CiAgICBzeW1fZmlsZS53cml0ZShjb250ZW50KQogICAgc3ltX2ZpbGUuY2xvc2UoKQoKZWxpZiBj
b21tYW5kID09ICdyZW1vdmUnOgogICAgc2NoX2ZpbGUgPSBvcGVuKHNjaF9maWxlbmFtZSwncicp
CiAgICBjb250ZW50ID0gc2NoX2ZpbGUucmVhZCgpLnJlcGxhY2UoJyVzXG57XG4lc31cbicgJShz
eW1uYW1lLGNvbnRlbnQpLCcnKQogICAgc2NoX2ZpbGUuY2xvc2UoKQogICAgc2NoX2ZpbGUgPSBv
cGVuKHNjaF9maWxlbmFtZSwnd3QnKQogICAgc2NoX2ZpbGUud3JpdGUoY29udGVudCkKICAgIHNj
aF9maWxlLmNsb3NlKCkKCmVsaWYgY29tbWFuZCA9PSAncmVwbGFjZSc6CiAgICBzeW1fZmlsZSA9
IG9wZW4oc3ltbmFtZSBpZiBzeW1fZmlsZW5hbWU9PScnIGVsc2Ugc3ltX2ZpbGVuYW1lLCdydCcp
CiAgICBzY2hfZmlsZSA9IG9wZW4oc2NoX2ZpbGVuYW1lLCdydCcpCiAgICBjb250ZW50ID0gc2No
X2ZpbGUucmVhZCgpLnJlcGxhY2UoY29udGVudCxzeW1fZmlsZS5yZWFkKCkpCiAgICBzY2hfZmls
ZS5jbG9zZSgpCiAgICBpZiB3aXRoX2F0dHJzOiAjIEFkZCBsb2NhbGx5IGF0dGFjaGVkIGF0dHJp
YnV0ZXMgdG8gc3ltYm9sIAojICAgICAgICBpZiBub3QgY29tcDoKIyAgICAgICAgICAgIHByaW50
ICdGb3Igc2VhcmNoIGxvY2FsbHkgYXR0YWNoZWQgYXR0cmlicyBuZWVkIHVzZSBSRUZERVMgaW5z
dGVhZCBTeW1OYW1lJwojICAgICAgICAgICAgI3N5cy5leGl0KDEpCiMgICAgICAgIGVsc2U6CiMg
ICAgICAgICAgICBmb3IgaSBpbiBhdHRycy5rZXlzKCk6ICMgU2VhcmNoIGxvY2FsbHkgYXR0cmli
cyBpbiBzeW1ib2wKIyAgICAgICAgICAgICAgICBpZiBpICE9ICdyZWZkZXMnOgojICAgICAgICAg
ICAgICAgICAgICBhdHRyID0gcmUuc2VhcmNoKCcoVCBcZCsgXGQrIFxkKyBcZCsgXGQrIFxkKyBc
ZCsgXGQrIFxkK1xuJXM9KC4qPykpKFxuTHxcbkh8XG5CfFxuR3xcblZ8XG5VfFxuQ3xcblR8XG5Q
fFxuQXxcblgpJyAlKGkpLCBjb250ZW50LCByZS5ET1RBTEwpCiMgICAgICAgICAgICAgICAgICAg
IGlmIGF0dHIgPT0gTm9uZTogIyBJZiBhdHRyIG5vdCBmaW5kZWQgKG5ldyBhZGRlZCksIGFkZCB0
byBmaWxlCiMgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50ICs9ICdUICVkICVkICVzJXM9
JXMnICUoYXR0cnNbaV1bMF0sYXR0cnNbaV1bMV0sYXR0cnNbaV1bMl0saSxhdHRyc1tpXVszXSkK
IyAgICAgICAgICAgICAgICAgICAgZWxzZToKIyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRl
bnQgPSBjb250ZW50LnJlcGxhY2UoYXR0ci5ncm91cCgxKSwgJ1QgJWQgJWQgJXMlcz0lcycgJShh
dHRyc1tpXVswXSxhdHRyc1tpXVsxXSxhdHRyc1tpXVsyXSxpLGF0dHJzW2ldWzNdKSkgIyBBdHRy
IHdhcyBmaW5kZWQsIHJlcGxhY2UgdmFsdWUgYW5kIGNvb3JkaW5hdGVzIAogICAgc3ltX2ZpbGUu
Y2xvc2UoKQogICAgc2NoX2ZpbGUgPSBvcGVuKHNjaF9maWxlbmFtZSwnd3QnKQogICAgc2NoX2Zp
bGUud3JpdGUoY29udGVudCkKICAgIHNjaF9maWxlLmNsb3NlKCkKICAgIAplbHNlOgogICAgcHJp
bnQgJ1Vua25vd24gY29tbWFuZDogVXNlIC0taGVscCBvcHRpb24gZm9yIHJlY2lldmUgY29tbWFu
ZCBsaXN0JwoK
--089e015387027227e604f7e1d9d8--

- Raw text -


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