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=5bBlD9pLU8RiPVDbvK6uk+A+UZ0fCWGi0G8SsITxANQ=; b=WJhObsZcgfDZw+ghPgYIUKtoYgNXLF1W+Aa0ByMJP4v5EpqsYPl8ZFLos2rPJF7Ewr 0alspFtojScFmyRaYxa2/A37ooiRyPK3rZ+47aiLmD3pecINjazhOnh+fJdzwrbZy+FU GSlzu0AcPX2VDNr3344wu4FAD066sO9sbl7a29qqRYpgZZqa89EIHUxnBFrpYZDTq3Y5 Q4hbuewZi7lm0m6aMbmvwdesE/0QuVKqEXXcgBBbD0A1eWVHWvlE3D0UFpoCe3OWbwIr QZUhQYqsbiUqQl19+K4MEvHM4CE60TkqsUu1KjQGvoit7uYpu75Eq33QuTHqcD3FArrX 23lA== MIME-Version: 1.0 X-Received: by 10.182.126.137 with SMTP id my9mr3851557obb.61.1398460657284; Fri, 25 Apr 2014 14:17:37 -0700 (PDT) In-Reply-To: References: <20140127234944 DOT 924148045B78 AT turkos DOT aspodata DOT se> <20140128201110 DOT DF7D78045B78 AT turkos DOT aspodata DOT se> <20140129072550 DOT GA24560 AT localhost DOT localdomain> <86CABBE6-EE80-4347-B7AA-3F5A8DA4C658 AT noqsi DOT com> <1394402434 DOT 2151 DOT 28 DOT camel AT AMD64X2 DOT fritz DOT box> <20140311130801 DOT 94D928020170 AT turkos DOT aspodata DOT se> <20140311211548 DOT 2A88E8020170 AT turkos DOT aspodata DOT se> <201403131446 DOT s2DEkjg0008539 AT envy DOT delorie DOT com> Date: Sat, 26 Apr 2014 01:17:37 +0400 Message-ID: Subject: Re: [geda-user] identical symbol names From: =?UTF-8?B?0JDQu9C10LrRgdC10Lkg0KXQsNGA0YzQutC+0LLRgdC60LjQuQ==?= To: geda-user AT delorie DOT com Content-Type: multipart/mixed; boundary=001a11c1c6fcb7310604f7e47ec5 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 Precedence: bulk --001a11c1c6fcb7310604f7e47ec5 Content-Type: multipart/alternative; boundary=001a11c1c6fcb7310204f7e47ec3 --001a11c1c6fcb7310204f7e47ec3 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable > =D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B9 =D0=A5=D0=B0=D1=80=D1=8C=D0=BA= =D0=BE=D0=B2=D1=81=D0=BA=D0=B8=D0=B9 wrote: > > > Attached script allowing to work with library section of sch file. > > I did not know there is a library section. > http://comments.gmane.org/gmane.comp.cad.geda.user/42830 > sounds interesting. > :)) > > See lib_sec_util.py --help for more. > > Unfortunately, the script fails immediately if I call it on my > debian/jessie desktop: > Sorry. This is first casual bug. New script is attached :) --001a11c1c6fcb7310204f7e47ec3 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable

=
=D0=90=D0= =BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B9 =D0=A5=D0=B0=D1=80=D1=8C=D0=BA=D0=BE=D0= =B2=D1=81=D0=BA=D0=B8=D0=B9 wrote:

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

I did not know there is a library section.
=C2= =A0
sounds interesting.

:))
=C2=A0
> See lib_sec_util.py --help for more.

Unfortunately, the script fails immediately if I call it on my
debian/jessie desktop:

Sorry.

This is first casual bug.

New script is attached :)
--001a11c1c6fcb7310204f7e47ec3-- --001a11c1c6fcb7310604f7e47ec5 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_hufzd1ne0 IyEvdXNyL2Jpbi9lbnYgcHl0aG9uMgoKZGVmIGF0dHJfZ2VuKGNvbXBfc3RyKToKICAgIGF0dHJz ID0gcmUuc2VhcmNoKCdDIChcZCspIChcZCspIC4qXHtcbiguKilcblx9JywgY29tcF9zdHIsIHJl LkRPVEFMTCkgIyBDb21wb25lbnQgY29vcmRpbmF0ZXMgYW5kIGNvbnRlbnQgcGFyc2UKICAgIHgg PSBpbnQoYXR0cnMuZ3JvdXAoMSkpICMgeC1jb29yZCBvZiBjb21wb25lbnQKICAgIHkgPSBpbnQo YXR0cnMuZ3JvdXAoMikpICMgeS1jb29yZCBvZiBjb21wb25lbnQKICAgIGF0dHJzID0gYXR0cnMu Z3JvdXAoMykgICMgY29udGVudCBvZiBjb21wb25lbnQKICAgIGF0dHJzPXJlLnNwbGl0KCdcbj9U IChcZCspIChcZCspICguKj9cbikoXFMrKT0nLCBhdHRycywgcmUuRE9UQUxMKVsxOl0gIyBMaXN0 IG9mIGNvbXBvbmVudCBhdHRyaWJ1dGVzIFsgeCwgeSwgcGxhY2VtZW50IHBhcmFtcywgbmFtZSwg dmFsdWUsIHgseSwuLi4uLi5dCiAgICBsaXN0X2F0dHJzID0ge30gI05ldyBkaWN0CiAgICBmb3Ig aSBpbiByYW5nZShsZW4oYXR0cnMpLzUpOiAjIDUgLT4gbGVuIG9mIGxpc3QgZWxlbWVudHMgZm9y IE9ORSB0ZXh0IGF0dHJpYnV0ZQogICAgICAgIGxpc3RfYXR0cnNbYXR0cnNbaSo1KzNdXSA9IFtp bnQoYXR0cnNbaSo1XSkteCxpbnQoYXR0cnNbaSo1KzFdKS15LGF0dHJzW2kqNSsyXSwgYXR0cnNb aSo1KzRdXSAgICMgS2V5IG9mIGRpY3QgaXMgQVRUUiBuYW1lCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBWYWx1ZSAtPiBvdGhlciA0IGVsZW1lbnRzIG9m IGxpc3Q6IFJlbGFpdGl2ZSBhdHRyaWJ1dGVzICh4LHkpIG90cmhlciB0ZXh0IHBhcmFtcyBhbmQg VmFsdWUgb2YgQXR0cmlidXRlLgogICAgcmV0dXJuIGxpc3RfYXR0cnMgIyBEaWN0IHJldHVybgoK CmhlbHBfbWVzID0gIiIiClVzYWdlOiBsaWJfc2VjX3V0aWxzIFstLXdpdGgtYXR0cnNdIGNvbW1h bmQgc3ltYm9sIFNDSEZJTEUKRXhhbXBsZXM6CgogICAgbGliX3NlY191dGlscyBzYXZlIHtSRUZE RVMgfCBTeW1OYW1lfSBTQ0hGSUxFICAgICAgICAgICAgICAgICMgVGhpcyBjb21tYW5kIHNhdmVz IGxpYnJhcnkgc2ltYm9sIGZyb20gbGliIHNlY3Rpb24gb2YgLnNjaCBmaWxlIHRvIGZpbGUgaW4g Y3VycmVudCBkaXJlY3RvcnkuIEZpbGUgbmFtZWQgc2ltaWxhciBzeW1ib2wgbmFtZS4KCiAgICBs aWJfc2VjX3V0aWxzIHNhdmVhbGwgU0NIRklMRSAgICAgICAgICAgICAgICAjIFRoaXMgY29tbWFu ZCBzYXZlcyBhbGwgbGlicmFyeSBzaW1ib2xzIGZyb20gbGliIHNlY3Rpb24gb2YgLnNjaCBmaWxl IHRvIGZpbGUgaW4gY3VycmVudCBkaXJlY3RvcnkuIEZpbGVzIG5hbWVkIHNpbWlsYXIgc3ltYm9s IG5hbWUuCgogICAgbGliX3NlY191dGlscyAtLXdpdGgtYXR0cnMgc2F2ZSB7UkVGREVTIHwgU3lt TmFtZX0gU0NIRklMRSAgICAgIyBUaGlzIGNvbW1hbmQgYXMgcHJldmlvdXMsIGJ1dCBzYXZlcyB0 byBmaWxlIGxvY2FsbHkgYXR0YWNoZWQgYXR0cmlidXRlcyAoZXhjZXB0aW9uIGN1cnJlbnRseSBl eGlzdGVkKS4KICAgIAogICAgbGliX3NlY191dGlscyByZW1vdmUge1JFRkRFUyB8IFN5bU5hbWV9 IFNDSEZJTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFRoaXMgY29tbWFu ZCByZW1vdmVzIGxpYnJhcnkgc3ltYm9sIHdpdGggc2VsZWN0IFJFRkRFUyBvciBzeW1ib2wgbmFt ZSBmcm9tIGxpYnJhcnkgc2VjdGlvbgogICAgCiAgICBsaWJfc2VjX3V0aWxzIHJlbW92YWxsIFND SEZJTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUaGlzIGNvbW1hbmQgcmVt b3ZlcyB3aG9sZSBsaWJyYXJ5IHNlY3Rpb24gZnJvbSBmaWxlLgogICAgCiAgICBsaWJfc2VjX3V0 aWxzIHJlcGxhY2Uge1JFRkRFUyB8IFN5bU5hbWV9IFtwYXRoL3RvL3N5bWZpbGVdIFNDSEZJTEUg ICMgVGhpcyBjb21tYW5kIHJlcGxhY2VkIHN5bWJvbCBvZiBSRUZERVMgb3IgU3ltTmFtZSBpbiBs aWJyYXJ5IHNlY3Rpb24gb2YgZmlsZSB3aXRoIHN5bWJvbCBmcm9tIHBhdGgvdG8vc3ltZmlsZSBm aWxlIG9yIGZpbGUgZnJvbSBjdXJyZW50IGRpciB3aXRoIG5hbWUgYXMgUkVGREVTIHN5bWJvbCAo ZGVmYXVsdCkuCiAgICAKICAgIGxpYl9zZWNfdXRpbHMgLS13aXRoLWF0dHJzIHJlcGxhY2Uge1JF RkRFUyB8IFN5bU5hbWV9IFtwYXRoL3RvL3N5bWZpbGVdIFNDSEZJTEUgICAgICAgICMgUmVwbGFj ZWQgdGhlIGZpbGUgYW5kIHJlbW92ZSBleGlzdGVkIGF0dHJpYnV0ZXMgaW4gbmV3IHN5bWJvbCBm cm9tIENvbXBvbmVudCAoZXhjZXB0aW9uIFJFRkRFUykKCiIiIgoKdmVyc2lvbj0nbGliX3NlY191 dGlsLnB5IHYxLjAgYnkgS2hhcmtvdnNreSBBbGV4ZXkgOiknCgppbXBvcnQgc3lzLG9zCmltcG9y dCByZQoKaWYgKGxlbihzeXMuYXJndikgPT0gMSkgb3IgKCctLWhlbHAnIGluIHN5cy5hcmd2KToK CXByaW50IGhlbHBfbWVzCglleGl0KDApCgppZiAnLS12ZXJzaW9uJyBpbiBzeXMuYXJndjoKCXBy aW50IHZlcnNpb24KCWV4aXQoMCkKCmlmICctLXdpdGgtYXR0cnMnIGluIHN5cy5hcmd2OgoJd2l0 aF9hdHRycyA9IFRydWUKCXN5cy5hcmd2LnJlbW92ZSgnLS13aXRoLWF0dHJzJykKZWxzZToKCXdp dGhfYXR0cnMgPSBGYWxzZQoKY29tbWFuZCA9IHN5cy5hcmd2WzFdICAgICAgICMgY29tbWFuZCA6 KQpzeXMuYXJndi5yZW1vdmUoY29tbWFuZCkgICAgIyAKCnNjaF9maWxlbmFtZSA9IHN5cy5hcmd2 W34wXSAjIHNjaC9zeW0gZmlsZW5hbWUgKGxhc3QgZWxlbWVudCBvZiBhcmd1bWVudCBsaXN0KQpz eXMuYXJndi5yZW1vdmUoc2NoX2ZpbGVuYW1lKQoKaWYgY29tbWFuZCA9PSAncmVtb3ZhbGwnOgog ICAgc2NoX2ZpbGUgPSBvcGVuKHNjaF9maWxlbmFtZSwncnQnKQogICAgY29udGVudCA9IHNjaF9m aWxlLnJlYWQoKS5zcGxpdCgnLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1saWJyYXJ5IHNlY3Rp b24tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLScsIDEpWzBdCiAgICBzY2hfZmlsZS5jbG9zZSgp CiAgICBzY2hfZmlsZSA9IG9wZW4oc2NoX2ZpbGVuYW1lLCd3dCcpCiAgICBzY2hfZmlsZS53cml0 ZShjb250ZW50KQogICAgc2NoX2ZpbGUuY2xvc2UoKQogICAgc3lzLmV4aXQoMCkKCmVsaWYgY29t bWFuZCA9PSAnc2F2ZWFsbCc6CiAgICBzY2hfZmlsZSA9IG9wZW4oc2NoX2ZpbGVuYW1lLCdydCcp CiAgICBjb250ZW50ID0gc2NoX2ZpbGUucmVhZCgpLnNwbGl0KCctLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLWxpYnJhcnkgc2VjdGlvbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4nLCAxKVsx XQogICAgc2NoX2ZpbGUuY2xvc2UoKQogICAgd2hpbGUgKHJlLnNlYXJjaCgnXFMrJyxjb250ZW50 KSk6CiAgICAgICAgI3N5bW5hbWUgPSByZS5zcGxpdCgnXG4oXFMrPylcblx7XG4nICUoc3ltbmFt ZSkgLGNvbnRlbnQsIDEpICMgU2VhcmNoIHNpbWJvbCBpbiBsaWJyYXJ5IHNlY3Rpb24KICAgICAg ICBzeW1uYW1lLGNvbnRlbnQgPSBjb250ZW50LnNwbGl0KCdcbntcbicsMSkKICAgICAgICBpPTEK ICAgICAgICBlbmQ9MAogICAgICAgIHdoaWxlIGk+MDogICNzZWFyY2ggZW5kIG9mIHN5bWJvbAog ICAgICAgICAgICBiZWdfYmxvY2sgPSBjb250ZW50W2VuZDpdLmZpbmQoJ3snKQogICAgICAgICAg ICBlbmRfYmxvY2sgPSBjb250ZW50W2VuZDpdLmZpbmQoJ30nKQogICAgICAgICAgICBpZiBiZWdf YmxvY2sgPT0gLTEgYW5kIGVuZF9ibG9jayE9LTE6CiAgICAgICAgICAgICAgICBiZWdfYmxvY2s9 bGVuKGNvbnRlbnQpCiAgICAgICAgICAgIGlmIGVuZF9ibG9jaz09LTE6CiAgICAgICAgICAgICAg ICBwcmludCAnbGFja3MgYSBjbG9zaW5nIHBhcmVudGhlc2lzXG4nCiAgICAgICAgICAgICAgICBz eXMuZXhpdCgxKQoKICAgICAgICAgICAgaWYgYmVnX2Jsb2NrIDwgZW5kX2Jsb2NrOgogICAgICAg ICAgICAgICAgaSs9MQogICAgICAgICAgICAgICAgZW5kKz1jb250ZW50W2VuZDpdLmZpbmQoJ3sn KSsxCiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICBpLT0xCiAgICAgICAgICAgICAg ICBlbmQrPWNvbnRlbnRbZW5kOl0uZmluZCgnfScpKzEKICAgICAgICBzeW1fZmlsZSA9IG9wZW4o c3ltbmFtZSwnd3QnKQogICAgICAgIHN5bV9maWxlLndyaXRlKGNvbnRlbnRbOmVuZC0xXSkKICAg ICAgICBzeW1fZmlsZS5jbG9zZSgpCiAgICAgICAgY29udGVudCA9IGNvbnRlbnRbZW5kKzE6XSAj RnVsbCBzeW1ib2wgY29udGVudAogICAgc3lzLmV4aXQoMCkKCgpyZWZkZXMgPSBzeXMuYXJndlsx XSAgICAgICAgI3JlZmRlcyBOYW1lIG9yIHN5bWJvbCBOYW1lCnN5cy5hcmd2LnJlbW92ZShyZWZk ZXMpICAgICAjcmVtb3ZlIHJlZmRlcyBmcm9tIGxpc3QgCgppZiBsZW4oc3lzLmFyZ3YpID4yIDoK ICAgIHByaW50ICJnYXJiYWRlIGluIHN0cmluZyBvciBSZWFkIHRoZSBoZWxwIHBsZWFzZSA6KSIK ICAgIHN5cy5leGl0KDEpCmVsaWYgbGVuKHN5cy5hcmd2KSA9PTI6CiAgICBzeW1fZmlsZW5hbWUg PSBzeXMuYXJndlsxXQplbHNlOiBzeW1fZmlsZW5hbWUgPSAnJwoKdHJ5OgogICAgc2NoX2ZpbGUg PSBvcGVuKHNjaF9maWxlbmFtZSwncnQnKSAgICAgICAgICAKZXhjZXB0IEV4Y2VwdGlvbiBhcyBl cnI6CiAgICBwcmludCAnUmVhZCBmaWxlIGVycm9yOiBcIiVzXCInICUoZXJyKQpjb250ZW50ID0g c2NoX2ZpbGUucmVhZCgpCnNjaF9maWxlLmNsb3NlKCkKCmNvbXAgPSByZS5zZWFyY2goJ0MgXGQr IFxkKyBcZCsgXGQrIFxkKyAoXFMrKVxuXHtbXnt9XSpyZWZkZXM9JXMnICUocmVmZGVzKSAsY29u dGVudCkgIyBzZWFyY2ggY29tcG9uZW50IHdpdGggcmVmZGVzCmlmIGNvbXA6ICMgSWYgY29tcCB3 YXMgZmluZGVkIC0gcmVmZGVzIGlzIFRydWUKICAgIHN5bW5hbWUgPSBjb21wLmdyb3VwKDEpICMg c3ltbmFtZSBvZiBjb21wb25lbnQKICAgIGlmIHdpdGhfYXR0cnM6ICMgU2VhcmNoIGNvbXBvbmVu dCBhdHRyaWJ1dGVzCiAgICAgICAgYXR0cnMgPSBhdHRyX2dlbihyZS5zZWFyY2goJ0MgXGQrIFxk KyBcZCsgXGQrIFxkKyAlc1xuXHsuKj9cfScgJShzeW1uYW1lKSAsIGNvbnRlbnQsIHJlLkRPVEFM TCkuZ3JvdXAoMCkpCmVsc2U6ICAgICMgSWYgY29tcCB3YXNuJ3QgZmluZGVkLCBuZWVkIHRvIHNl YXJjaCBzeW1ib2wgbmFtZQogICAgc3ltbmFtZSA9IHJlZmRlcwoKY29udGVudCA9IHJlLnNwbGl0 KCdcbiVzXG5ce1xuJyAlKHN5bW5hbWUpICxjb250ZW50LCAxKSAjIFNlYXJjaCBzaW1ib2wgaW4g bGlicmFyeSBzZWN0aW9uCmlmIGxlbihjb250ZW50KTwyOiAgCiAgICBwcmludCAnTm8gY29tcG9u ZW50IHdhcyBmaW5kZWQgJXNcbicgJShyZWZkZXMpCiAgICBzeXMuZXhpdCgxKQpjb250ZW50ID0g Y29udGVudFsxXQppPTEKZW5kPTAKd2hpbGUgaT4wOiAgI3NlYXJjaCBlbmQgb2Ygc3ltYm9sCiAg ICBiZWdfYmxvY2sgPSBjb250ZW50W2VuZDpdLmZpbmQoJ3snKQogICAgZW5kX2Jsb2NrID0gY29u dGVudFtlbmQ6XS5maW5kKCd9JykKICAgIGlmIGJlZ19ibG9jayA9PSAtMSBhbmQgZW5kX2Jsb2Nr IT0tMToKICAgICAgICBiZWdfYmxvY2s9bGVuKGNvbnRlbnQpCiAgICBpZiBlbmRfYmxvY2s9PS0x OgogICAgICAgIHByaW50ICdsYWNrcyBhIGNsb3NpbmcgcGFyZW50aGVzaXNcbicKICAgICAgICBz eXMuZXhpdCgxKQoKICAgIGlmIGJlZ19ibG9jayA8IGVuZF9ibG9jazoKICAgICAgICBpKz0xCiAg ICAgICAgZW5kKz1jb250ZW50W2VuZDpdLmZpbmQoJ3snKSsxCiAgICBlbHNlOgogICAgICAgIGkt PTEKICAgICAgICBlbmQrPWNvbnRlbnRbZW5kOl0uZmluZCgnfScpKzEKY29udGVudCA9IGNvbnRl bnRbOmVuZC0xXSAjRnVsbCBzeW1ib2wgY29udGVudAoKaWYgY29tbWFuZCA9PSAnc2F2ZSc6ICMg U2F2ZSBmaW5kZWQgc3ltYm9sIHRvIGZpbGUKICAgIGlmIHdpdGhfYXR0cnM6ICMgQWRkIGxvY2Fs bHkgYXR0YWNoZWQgYXR0cmlidXRlcyB0byBzeW1ib2wgCiAgICAgICAgaWYgbm90IGNvbXA6CiAg ICAgICAgICAgIHByaW50ICdGb3Igc2VhcmNoIGxvY2FsbHkgYXR0YWNoZWQgYXR0cmlicyBuZWVk IHVzZSBSRUZERVMgaW5zdGVhZCBTeW1OYW1lJwogICAgICAgICAgICAjc3lzLmV4aXQoMSkKICAg ICAgICBlbHNlOgogICAgICAgICAgICBmb3IgaSBpbiBhdHRycy5rZXlzKCk6ICMgU2VhcmNoIGxv Y2FsbHkgYXR0cmlicyBpbiBzeW1ib2wKICAgICAgICAgICAgICAgIGlmIGkgIT0gJ3JlZmRlcyc6 CiAgICAgICAgICAgICAgICAgICAgYXR0ciA9IHJlLnNlYXJjaCgnKFQgXGQrIFxkKyBcZCsgXGQr IFxkKyBcZCsgXGQrIFxkKyBcZCtcbiVzPSguKj8pKShcbkx8XG5IfFxuQnxcbkd8XG5WfFxuVXxc bkN8XG5UfFxuUHxcbkF8XG5YKScgJShpKSwgY29udGVudCwgcmUuRE9UQUxMKQogICAgICAgICAg ICAgICAgICAgIGlmIGF0dHIgPT0gTm9uZTogIyBJZiBhdHRyIG5vdCBmaW5kZWQgKG5ldyBhZGRl ZCksIGFkZCB0byBmaWxlCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQgKz0gJ1QgJWQg JWQgJXMlcz0lcycgJShhdHRyc1tpXVswXSxhdHRyc1tpXVsxXSxhdHRyc1tpXVsyXSxpLGF0dHJz W2ldWzNdKQogICAgICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgICAg IGNvbnRlbnQgPSBjb250ZW50LnJlcGxhY2UoYXR0ci5ncm91cCgxKSwgJ1QgJWQgJWQgJXMlcz0l cycgJShhdHRyc1tpXVswXSxhdHRyc1tpXVsxXSxhdHRyc1tpXVsyXSxpLGF0dHJzW2ldWzNdKSkg IyBBdHRyIHdhcyBmaW5kZWQsIHJlcGxhY2UgdmFsdWUgYW5kIGNvb3JkaW5hdGVzIAoKICAgIHN5 bV9maWxlID0gb3BlbihzeW1uYW1lIGlmIHN5bV9maWxlbmFtZT09JycgZWxzZSBzeW1fZmlsZW5h bWUsJ3d0JykKICAgIHN5bV9maWxlLndyaXRlKGNvbnRlbnQpCiAgICBzeW1fZmlsZS5jbG9zZSgp CgplbGlmIGNvbW1hbmQgPT0gJ3JlbW92ZSc6CiAgICBzY2hfZmlsZSA9IG9wZW4oc2NoX2ZpbGVu YW1lLCdyJykKICAgIGNvbnRlbnQgPSBzY2hfZmlsZS5yZWFkKCkucmVwbGFjZSgnJXNcbntcbiVz fVxuJyAlKHN5bW5hbWUsY29udGVudCksJycpCiAgICBzY2hfZmlsZS5jbG9zZSgpCiAgICBzY2hf ZmlsZSA9IG9wZW4oc2NoX2ZpbGVuYW1lLCd3dCcpCiAgICBzY2hfZmlsZS53cml0ZShjb250ZW50 KQogICAgc2NoX2ZpbGUuY2xvc2UoKQoKZWxpZiBjb21tYW5kID09ICdyZXBsYWNlJzoKICAgIHN5 bV9maWxlID0gb3BlbihzeW1uYW1lIGlmIHN5bV9maWxlbmFtZT09JycgZWxzZSBzeW1fZmlsZW5h bWUsJ3J0JykKICAgIHNjaF9maWxlID0gb3BlbihzY2hfZmlsZW5hbWUsJ3J0JykKICAgIGNvbnRl bnQgPSBzY2hfZmlsZS5yZWFkKCkucmVwbGFjZShjb250ZW50LHN5bV9maWxlLnJlYWQoKSkKICAg IHNjaF9maWxlLmNsb3NlKCkKIyAgICBpZiB3aXRoX2F0dHJzOiAjIEFkZCBsb2NhbGx5IGF0dGFj aGVkIGF0dHJpYnV0ZXMgdG8gc3ltYm9sIAojICAgICAgICBpZiBub3QgY29tcDoKIyAgICAgICAg ICAgIHByaW50ICdGb3Igc2VhcmNoIGxvY2FsbHkgYXR0YWNoZWQgYXR0cmlicyBuZWVkIHVzZSBS RUZERVMgaW5zdGVhZCBTeW1OYW1lJwojICAgICAgICAgICAgI3N5cy5leGl0KDEpCiMgICAgICAg IGVsc2U6CiMgICAgICAgICAgICBmb3IgaSBpbiBhdHRycy5rZXlzKCk6ICMgU2VhcmNoIGxvY2Fs bHkgYXR0cmlicyBpbiBzeW1ib2wKIyAgICAgICAgICAgICAgICBpZiBpICE9ICdyZWZkZXMnOgoj ICAgICAgICAgICAgICAgICAgICBhdHRyID0gcmUuc2VhcmNoKCcoVCBcZCsgXGQrIFxkKyBcZCsg XGQrIFxkKyBcZCsgXGQrIFxkK1xuJXM9KC4qPykpKFxuTHxcbkh8XG5CfFxuR3xcblZ8XG5VfFxu Q3xcblR8XG5QfFxuQXxcblgpJyAlKGkpLCBjb250ZW50LCByZS5ET1RBTEwpCiMgICAgICAgICAg ICAgICAgICAgIGlmIGF0dHIgPT0gTm9uZTogIyBJZiBhdHRyIG5vdCBmaW5kZWQgKG5ldyBhZGRl ZCksIGFkZCB0byBmaWxlCiMgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50ICs9ICdUICVk ICVkICVzJXM9JXMnICUoYXR0cnNbaV1bMF0sYXR0cnNbaV1bMV0sYXR0cnNbaV1bMl0saSxhdHRy c1tpXVszXSkKIyAgICAgICAgICAgICAgICAgICAgZWxzZToKIyAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnRlbnQgPSBjb250ZW50LnJlcGxhY2UoYXR0ci5ncm91cCgxKSwgJ1QgJWQgJWQgJXMl cz0lcycgJShhdHRyc1tpXVswXSxhdHRyc1tpXVsxXSxhdHRyc1tpXVsyXSxpLGF0dHJzW2ldWzNd KSkgIyBBdHRyIHdhcyBmaW5kZWQsIHJlcGxhY2UgdmFsdWUgYW5kIGNvb3JkaW5hdGVzIAogICAg c3ltX2ZpbGUuY2xvc2UoKQogICAgc2NoX2ZpbGUgPSBvcGVuKHNjaF9maWxlbmFtZSwnd3QnKQog ICAgc2NoX2ZpbGUud3JpdGUoY29udGVudCkKICAgIHNjaF9maWxlLmNsb3NlKCkKICAgIAplbHNl OgogICAgcHJpbnQgJ1Vua25vd24gY29tbWFuZDogVXNlIC0taGVscCBvcHRpb24gZm9yIHJlY2ll dmUgY29tbWFuZCBsaXN0JwoK --001a11c1c6fcb7310604f7e47ec5--