From ykaul at redhat.com Mon Oct 8 17:26:25 2012 Content-Type: multipart/mixed; boundary="===============5562060049002437991==" MIME-Version: 1.0 From: Yaniv Kaul To: users at ovirt.org Subject: Re: [Users] Fwd: ovirt cli commands / script wont exit the shell Date: Mon, 08 Oct 2012 23:26:21 +0200 Message-ID: <507344FD.4030106@redhat.com> In-Reply-To: 507342D6.7040708@gmail.com --===============5562060049002437991== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable This is a multi-part message in MIME format. --------------080807000308050902020401 Content-Type: text/plain; charset=3DISO-8859-1; format=3Dflowed Content-Transfer-Encoding: 7bit On 10/08/2012 11:17 PM, Alex Leonhardt wrote: > Aha - cool - thanks! :) > > Now, I was also looking at the REST API - is there a simple shell = > based way to read / query the resulting XML ? Or would you suggest to = > write python scripts to e.g. start/stop instance, get a list of VMs / = > their IDs, etc. ? If you are already planning on Python, why not use the SDK instead of = doing REST? some examples @ http://wiki.ovirt.org/wiki/Testing/PythonApi Y. > > I'm not a great programmer so rather look for something already = > existing rather than me fiddling for a comparable looong time ;) > > Alex > > > On 10/07/2012 11:31 AM, Michael Pasternak wrote: >> Hi Alex, >> >> This is a bug [1], fix available in 3.2.0.1, latest available cli version >> is 3.2.0.5. >> >> >> [1]https://bugzilla.redhat.com/show_bug.cgi?id=3D850597 >> >>> -------- Original Message -------- >>> Subject: [Users] ovirt cli commands / script wont exit the shell >>> Date: Sat, 06 Oct 2012 20:44:44 +0100 >>> From: Alex Leonhardt >>> To:users(a)ovirt.org >>> >>> >>> >>> hi there, >>> >>> i'm playing with the Ovirt CLI and started to script a few things, but >>> it seems as if the console stays connected when I execute the commands - >>> I even included a "exit" and tried "disconnect", but nothing would do it >>> - any hints / clues ? >>> >>> the script is very simple : >>> >>> --- >>> action vm vm2 start >>> exit >>> --- >>> >>> or >>> >>> --- >>> action vm vm1 stop >>> disconnect >>> exit >>> --- >>> >>> I always end up back here : >>> >>> ### >>> >>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >>> >>> connected to oVirt manager 3.1.0.0 <<< >>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >>> >>> [oVirt shell (connected)]# action vm vm2 start >>> >>> >>> status-state: complete >>> >>> [oVirt shell (connected)]# exit >>> >>> [oVirt shell (connected)]# >>> >>> ### >>> >>> Thanks >>> Alex >>> >>> >>> > > > _______________________________________________ > Users mailing list > Users(a)ovirt.org > http://lists.ovirt.org/mailman/listinfo/users --------------080807000308050902020401 Content-Type: text/html; charset=3DISO-8859-1 Content-Transfer-Encoding: 7bit
On 10/08/2012 11:17 PM, Alex Leonhardt wrote:
Aha - cool - thanks! :)

Now, I was also looking at the REST API - is there a simple shell based way to read / query the resulting XML ? Or would you suggest to write python scripts to e.g. start/stop instance, get a list of VMs / their IDs, etc. ?

If you are already planning on Python, why not use the SDK instead of doing REST?
some examples @ http://wiki.ov= irt.org/wiki/Testing/PythonApi
Y.


I'm not a great programmer so rather look for something already existing rather than me fiddling for a comparable looong time ;)

Alex


On 10/07/2012 11:31 AM, Michael Pasternak wrote:
Hi Alex,

This is a bug [1], fix available in 3.2.0.1, latest available cli version
is 3.2.0.5.


[1] https://bugzilla.redhat.=
com/show_bug.cgi?id=3D850597

-------- Original Message --------
Subject:     [Users] ovirt cli commands / script wont exit the shell
Date:     Sat, 06 Oct 2012 20:44:44 +0100
From:     Alex Leonhardt <alex.tuxx(a)gmail.com&g=
t;
To:     users(a)ovirt.org



hi there,

i'm playing with the Ovirt CLI and started to script a few things, but
it seems as if the console stays connected when I execute the commands -
I even included a "exit" and tried "disconnect", but nothing would do it
- any hints / clues ?

the script is very simple :

---
action vm vm2 start
exit
---

or

---
action vm vm1 stop
disconnect
exit
---

I always end up back here :

###

  =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
  >>> connected to oVirt manager 3.1.0.0 <<<
  =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

[oVirt shell (connected)]# action vm vm2 start


status-state: complete

[oVirt shell (connected)]# exit

[oVirt shell (connected)]#

###

Thanks
Alex




      


_______________________________________________
Users mailing list
Use=
rs(a)ovirt.org
http://lists.ovirt.org/mailman/listinfo/users

--------------080807000308050902020401-- --===============5562060049002437991== Content-Type: multipart/alternative MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.bin" VGhpcyBpcyBhIG11bHRpLXBhcnQgbWVzc2FnZSBpbiBNSU1FIGZvcm1hdC4KLS0tLS0tLS0tLS0t LS0wODA4MDcwMDAzMDgwNTA5MDIwMjA0MDEKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFy c2V0PUlTTy04ODU5LTE7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzog N2JpdAoKT24gMTAvMDgvMjAxMiAxMToxNyBQTSwgQWxleCBMZW9uaGFyZHQgd3JvdGU6Cj4gQWhh IC0gY29vbCAtIHRoYW5rcyEgOikKPgo+IE5vdywgSSB3YXMgYWxzbyBsb29raW5nIGF0IHRoZSBS RVNUIEFQSSAtIGlzIHRoZXJlIGEgc2ltcGxlIHNoZWxsIAo+IGJhc2VkIHdheSB0byByZWFkIC8g cXVlcnkgdGhlIHJlc3VsdGluZyBYTUwgPyBPciB3b3VsZCB5b3Ugc3VnZ2VzdCB0byAKPiB3cml0 ZSBweXRob24gc2NyaXB0cyB0byBlLmcuIHN0YXJ0L3N0b3AgaW5zdGFuY2UsIGdldCBhIGxpc3Qg b2YgVk1zIC8gCj4gdGhlaXIgSURzLCBldGMuID8KCklmIHlvdSBhcmUgYWxyZWFkeSBwbGFubmlu ZyBvbiBQeXRob24sIHdoeSBub3QgdXNlIHRoZSBTREsgaW5zdGVhZCBvZiAKZG9pbmcgUkVTVD8K c29tZSBleGFtcGxlcyBAIGh0dHA6Ly93aWtpLm92aXJ0Lm9yZy93aWtpL1Rlc3RpbmcvUHl0aG9u QXBpClkuCgo+Cj4gSSdtIG5vdCBhIGdyZWF0IHByb2dyYW1tZXIgc28gcmF0aGVyIGxvb2sgZm9y IHNvbWV0aGluZyBhbHJlYWR5IAo+IGV4aXN0aW5nIHJhdGhlciB0aGFuIG1lIGZpZGRsaW5nIGZv ciBhIGNvbXBhcmFibGUgbG9vb25nIHRpbWUgOykKPgo+IEFsZXgKPgo+Cj4gT24gMTAvMDcvMjAx MiAxMTozMSBBTSwgTWljaGFlbCBQYXN0ZXJuYWsgd3JvdGU6Cj4+IEhpIEFsZXgsCj4+Cj4+IFRo aXMgaXMgYSBidWcgWzFdLCBmaXggYXZhaWxhYmxlIGluIDMuMi4wLjEsIGxhdGVzdCBhdmFpbGFi bGUgY2xpIHZlcnNpb24KPj4gaXMgMy4yLjAuNS4KPj4KPj4KPj4gWzFdaHR0cHM6Ly9idWd6aWxs YS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD04NTA1OTcKPj4KPj4+IC0tLS0tLS0tIE9yaWdp bmFsIE1lc3NhZ2UgLS0tLS0tLS0KPj4+IFN1YmplY3Q6ICAgICBbVXNlcnNdIG92aXJ0IGNsaSBj b21tYW5kcyAvIHNjcmlwdCB3b250IGV4aXQgdGhlIHNoZWxsCj4+PiBEYXRlOiAgICAgU2F0LCAw NiBPY3QgMjAxMiAyMDo0NDo0NCArMDEwMAo+Pj4gRnJvbTogICAgIEFsZXggTGVvbmhhcmR0PGFs ZXgudHV4eEBnbWFpbC5jb20+Cj4+PiBUbzp1c2Vyc0BvdmlydC5vcmcKPj4+Cj4+Pgo+Pj4KPj4+ IGhpIHRoZXJlLAo+Pj4KPj4+IGknbSBwbGF5aW5nIHdpdGggdGhlIE92aXJ0IENMSSBhbmQgc3Rh cnRlZCB0byBzY3JpcHQgYSBmZXcgdGhpbmdzLCBidXQKPj4+IGl0IHNlZW1zIGFzIGlmIHRoZSBj b25zb2xlIHN0YXlzIGNvbm5lY3RlZCB3aGVuIEkgZXhlY3V0ZSB0aGUgY29tbWFuZHMgLQo+Pj4g SSBldmVuIGluY2x1ZGVkIGEgImV4aXQiIGFuZCB0cmllZCAiZGlzY29ubmVjdCIsIGJ1dCBub3Ro aW5nIHdvdWxkIGRvIGl0Cj4+PiAtIGFueSBoaW50cyAvIGNsdWVzID8KPj4+Cj4+PiB0aGUgc2Ny aXB0IGlzIHZlcnkgc2ltcGxlIDoKPj4+Cj4+PiAtLS0KPj4+IGFjdGlvbiB2bSB2bTIgc3RhcnQK Pj4+IGV4aXQKPj4+IC0tLQo+Pj4KPj4+IG9yCj4+Pgo+Pj4gLS0tCj4+PiBhY3Rpb24gdm0gdm0x IHN0b3AKPj4+IGRpc2Nvbm5lY3QKPj4+IGV4aXQKPj4+IC0tLQo+Pj4KPj4+IEkgYWx3YXlzIGVu ZCB1cCBiYWNrIGhlcmUgOgo+Pj4KPj4+ICMjIwo+Pj4KPj4+ICAgID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQo+Pj4gICAgPj4+IGNvbm5lY3RlZCB0byBvVmlydCBt YW5hZ2VyIDMuMS4wLjAgPDw8Cj4+PiAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KPj4+Cj4+PiBbb1ZpcnQgc2hlbGwgKGNvbm5lY3RlZCldIyBhY3Rpb24gdm0g dm0yIHN0YXJ0Cj4+Pgo+Pj4KPj4+IHN0YXR1cy1zdGF0ZTogY29tcGxldGUKPj4+Cj4+PiBbb1Zp cnQgc2hlbGwgKGNvbm5lY3RlZCldIyBleGl0Cj4+Pgo+Pj4gW29WaXJ0IHNoZWxsIChjb25uZWN0 ZWQpXSMKPj4+Cj4+PiAjIyMKPj4+Cj4+PiBUaGFua3MKPj4+IEFsZXgKPj4+Cj4+Pgo+Pj4KPgo+ Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBVc2Vy cyBtYWlsaW5nIGxpc3QKPiBVc2Vyc0BvdmlydC5vcmcKPiBodHRwOi8vbGlzdHMub3ZpcnQub3Jn L21haWxtYW4vbGlzdGluZm8vdXNlcnMKCgotLS0tLS0tLS0tLS0tLTA4MDgwNzAwMDMwODA1MDkw MjAyMDQwMQpDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xCkNvbnRl bnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKCjxodG1sPgogIDxoZWFkPgogICAgPG1ldGEgY29u dGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiCiAgICAgIGh0dHAtZXF1aXY9IkNv bnRlbnQtVHlwZSI+CiAgPC9oZWFkPgogIDxib2R5IGJnY29sb3I9IiNGRkZGRkYiIHRleHQ9IiMw MDAwMDAiPgogICAgPGRpdiBjbGFzcz0ibW96LWNpdGUtcHJlZml4Ij5PbiAxMC8wOC8yMDEyIDEx OjE3IFBNLCBBbGV4IExlb25oYXJkdAogICAgICB3cm90ZTo8YnI+CiAgICA8L2Rpdj4KICAgIDxi bG9ja3F1b3RlIGNpdGU9Im1pZDo1MDczNDJENi43MDQwNzA4QGdtYWlsLmNvbSIgdHlwZT0iY2l0 ZSI+CiAgICAgIDxtZXRhIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIgog ICAgICAgIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSI+CiAgICAgIDxmb250IHNpemU9Ii0xIj48 Zm9udCBmYWNlPSJUYWhvbWEiPkFoYSAtIGNvb2wgLSB0aGFua3MhIDopIDxicj4KICAgICAgICAg IDxicj4KICAgICAgICAgIE5vdywgSSB3YXMgYWxzbyBsb29raW5nIGF0IHRoZSBSRVNUIEFQSSAt IGlzIHRoZXJlIGEgc2ltcGxlCiAgICAgICAgICBzaGVsbCBiYXNlZCB3YXkgdG8gcmVhZCAvIHF1 ZXJ5IHRoZSByZXN1bHRpbmcgWE1MID8gT3Igd291bGQKICAgICAgICAgIHlvdSBzdWdnZXN0IHRv IHdyaXRlIHB5dGhvbiBzY3JpcHRzIHRvIGUuZy4gc3RhcnQvc3RvcAogICAgICAgICAgaW5zdGFu Y2UsIGdldCBhIGxpc3Qgb2YgVk1zIC8gdGhlaXIgSURzLCBldGMuID8gPGJyPgogICAgICAgIDwv Zm9udD48L2ZvbnQ+PC9ibG9ja3F1b3RlPgogICAgPGJyPgogICAgSWYgeW91IGFyZSBhbHJlYWR5 IHBsYW5uaW5nIG9uIFB5dGhvbiwgd2h5IG5vdCB1c2UgdGhlIFNESyBpbnN0ZWFkCiAgICBvZiBk b2luZyBSRVNUPzxicj4KICAgIHNvbWUgZXhhbXBsZXMgQAogICAgPG1ldGEgaHR0cC1lcXVpdj0i Y29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7CiAgICAgIGNoYXJzZXQ9SVNPLTg4NTkt MSI+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LXR5cGUiIGNvbnRlbnQ9InRleHQvaHRt bDsKICAgICAgY2hhcnNldD1JU08tODg1OS0xIj4KICAgIDxhIGhyZWY9Imh0dHA6Ly93aWtpLm92 aXJ0Lm9yZy93aWtpL1Rlc3RpbmcvUHl0aG9uQXBpIj5odHRwOi8vd2lraS5vdmlydC5vcmcvd2lr aS9UZXN0aW5nL1B5dGhvbkFwaTwvYT48YnI+CiAgICBZLjxicj4KICAgIDxicj4KICAgIDxibG9j a3F1b3RlIGNpdGU9Im1pZDo1MDczNDJENi43MDQwNzA4QGdtYWlsLmNvbSIgdHlwZT0iY2l0ZSI+ PGZvbnQKICAgICAgICBzaXplPSItMSI+PGZvbnQgZmFjZT0iVGFob21hIj4gPGJyPgogICAgICAg ICAgSSdtIG5vdCBhIGdyZWF0IHByb2dyYW1tZXIgc28gcmF0aGVyIGxvb2sgZm9yIHNvbWV0aGlu ZwogICAgICAgICAgYWxyZWFkeSBleGlzdGluZyByYXRoZXIgdGhhbiBtZSBmaWRkbGluZyBmb3Ig YSBjb21wYXJhYmxlCiAgICAgICAgICBsb29vbmcgdGltZSA7KSA8YnI+CiAgICAgICAgICA8YnI+ CiAgICAgICAgICBBbGV4PGJyPgogICAgICAgICAgPGJyPgogICAgICAgIDwvZm9udD48L2ZvbnQ+ PGJyPgogICAgICBPbiAxMC8wNy8yMDEyIDExOjMxIEFNLCBNaWNoYWVsIFBhc3Rlcm5hayB3cm90 ZToKICAgICAgPGJsb2NrcXVvdGUgY2l0ZT0ibWlkOjUwNzE1OUVGLjcwNzAzMDBAcmVkaGF0LmNv bSIgdHlwZT0iY2l0ZSI+CiAgICAgICAgPHByZSB3cmFwPSIiPkhpIEFsZXgsCgpUaGlzIGlzIGEg YnVnIFsxXSwgZml4IGF2YWlsYWJsZSBpbiAzLjIuMC4xLCBsYXRlc3QgYXZhaWxhYmxlIGNsaSB2 ZXJzaW9uCmlzIDMuMi4wLjUuCgoKWzFdIDxhIG1vei1kby1ub3Qtc2VuZD0idHJ1ZSIgY2xhc3M9 Im1vei10eHQtbGluay1mcmVldGV4dCIgaHJlZj0iaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29t L3Nob3dfYnVnLmNnaT9pZD04NTA1OTciPmh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93 X2J1Zy5jZ2k/aWQ9ODUwNTk3PC9hPgoKPC9wcmU+CiAgICAgICAgPGJsb2NrcXVvdGUgdHlwZT0i Y2l0ZSI+CiAgICAgICAgICA8cHJlIHdyYXA9IiI+LS0tLS0tLS0gT3JpZ2luYWwgTWVzc2FnZSAt LS0tLS0tLQpTdWJqZWN0OiAgICAgW1VzZXJzXSBvdmlydCBjbGkgY29tbWFuZHMgLyBzY3JpcHQg d29udCBleGl0IHRoZSBzaGVsbApEYXRlOiAgICAgU2F0LCAwNiBPY3QgMjAxMiAyMDo0NDo0NCAr MDEwMApGcm9tOiAgICAgQWxleCBMZW9uaGFyZHQgPGEgbW96LWRvLW5vdC1zZW5kPSJ0cnVlIiBj bGFzcz0ibW96LXR4dC1saW5rLXJmYzIzOTZFIiBocmVmPSJtYWlsdG86YWxleC50dXh4QGdtYWls LmNvbSI+Jmx0O2FsZXgudHV4eEBnbWFpbC5jb20mZ3Q7PC9hPgpUbzogICAgIDxhIG1vei1kby1u b3Qtc2VuZD0idHJ1ZSIgY2xhc3M9Im1vei10eHQtbGluay1hYmJyZXZpYXRlZCIgaHJlZj0ibWFp bHRvOnVzZXJzQG92aXJ0Lm9yZyI+dXNlcnNAb3ZpcnQub3JnPC9hPgoKCgpoaSB0aGVyZSwKCmkn bSBwbGF5aW5nIHdpdGggdGhlIE92aXJ0IENMSSBhbmQgc3RhcnRlZCB0byBzY3JpcHQgYSBmZXcg dGhpbmdzLCBidXQKaXQgc2VlbXMgYXMgaWYgdGhlIGNvbnNvbGUgc3RheXMgY29ubmVjdGVkIHdo ZW4gSSBleGVjdXRlIHRoZSBjb21tYW5kcyAtCkkgZXZlbiBpbmNsdWRlZCBhICJleGl0IiBhbmQg dHJpZWQgImRpc2Nvbm5lY3QiLCBidXQgbm90aGluZyB3b3VsZCBkbyBpdAotIGFueSBoaW50cyAv IGNsdWVzID8KCnRoZSBzY3JpcHQgaXMgdmVyeSBzaW1wbGUgOgoKLS0tCmFjdGlvbiB2bSB2bTIg c3RhcnQKZXhpdAotLS0KCm9yCgotLS0KYWN0aW9uIHZtIHZtMSBzdG9wCmRpc2Nvbm5lY3QKZXhp dAotLS0KCkkgYWx3YXlzIGVuZCB1cCBiYWNrIGhlcmUgOgoKIyMjCgogID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICZndDsmZ3Q7Jmd0OyBjb25uZWN0ZWQgdG8g b1ZpcnQgbWFuYWdlciAzLjEuMC4wICZsdDsmbHQ7Jmx0OwogID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQoKW29WaXJ0IHNoZWxsIChjb25uZWN0ZWQpXSMgYWN0aW9u IHZtIHZtMiBzdGFydAoKCnN0YXR1cy1zdGF0ZTogY29tcGxldGUKCltvVmlydCBzaGVsbCAoY29u bmVjdGVkKV0jIGV4aXQKCltvVmlydCBzaGVsbCAoY29ubmVjdGVkKV0jCgojIyMKClRoYW5rcwpB bGV4CgoKCjwvcHJlPgogICAgICAgIDwvYmxvY2txdW90ZT4KICAgICAgICA8cHJlIHdyYXA9IiI+ CjwvcHJlPgogICAgICA8L2Jsb2NrcXVvdGU+CiAgICAgIDxicj4KICAgICAgPGZpZWxkc2V0IGNs YXNzPSJtaW1lQXR0YWNobWVudEhlYWRlciI+PC9maWVsZHNldD4KICAgICAgPGJyPgogICAgICA8 cHJlIHdyYXA9IiI+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KVXNlcnMgbWFpbGluZyBsaXN0CjxhIGNsYXNzPSJtb3otdHh0LWxpbmstYWJicmV2aWF0ZWQi IGhyZWY9Im1haWx0bzpVc2Vyc0BvdmlydC5vcmciPlVzZXJzQG92aXJ0Lm9yZzwvYT4KPGEgY2xh c3M9Im1vei10eHQtbGluay1mcmVldGV4dCIgaHJlZj0iaHR0cDovL2xpc3RzLm92aXJ0Lm9yZy9t YWlsbWFuL2xpc3RpbmZvL3VzZXJzIj5odHRwOi8vbGlzdHMub3ZpcnQub3JnL21haWxtYW4vbGlz dGluZm8vdXNlcnM8L2E+CjwvcHJlPgogICAgPC9ibG9ja3F1b3RlPgogICAgPGJyPgogIDwvYm9k eT4KPC9odG1sPgoKLS0tLS0tLS0tLS0tLS0wODA4MDcwMDAzMDgwNTA5MDIwMjA0MDEtLQo= --===============5562060049002437991==--