From michal.skrivanek at redhat.com Fri Sep 16 09:13:51 2016 Content-Type: multipart/mixed; boundary="===============8879512840735290725==" MIME-Version: 1.0 From: Michal Skrivanek To: users at ovirt.org Subject: Re: [ovirt-users] oVirt 4.0.3 (Hosted Engine) - High Availability VM not restart after auto-fencing of host. Date: Fri, 16 Sep 2016 15:13:47 +0200 Message-ID: <0A4EE04A-CBAD-4E41-9763-9251AF590BA3@redhat.com> In-Reply-To: CAG2kNCxe-PpgVbTLm_20qyMwxNi2XSPTJeKXKY5BKtWGpM130Q@mail.gmail.com --===============8879512840735290725== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable --Apple-Mail=3D_3EFDE72F-C600-476D-A90A-60B2A94A261E Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=3Dutf-8 > On 16 Sep 2016, at 15:05, Gianluca Cecchi = =3D wrote: >=3D20 > On Fri, Sep 16, 2016 at 2:50 PM, Michal Skrivanek =3D > =3D wrote: >=3D20 > no, that=3DE2=3D80=3D99s not how HA works today. When you log into a gues= t =3D and issue =3DE2=3D80=3D9Cshutdown=3DE2=3D80=3D9D we do not restart the VM u= nder your =3D hands. We can argue how it should or may work, but this is the defined =3D behavior since the dawn of oVirt. >=3D20 >>=3D20 >> =3DE2=3D80=3D8BAFAIK that's correct, we need to be able =3DE2=3D80=3D8B= =3DE2=3D80=3D8Bshu=3D tdown HA VM=3DE2=3D80=3D8B=3DE2=3D80=3D8B=3DE2=3D80=3D8B without being it i= mmediately =3D restarted on different host. We want to restart HA VM only if host, =3D where HA VM is running, is non-responsive. >=3D20 > we try to restart it in all other cases other than user initiated =3D shutdown, e.g. a QEMU process crash on an otherwise-healthy host >=3D20 >=3D20 > Hi, just another question in case HA is not configured at all. by =3DE2=3D80=3D9CHA configured=3DE2=3D80=3D9D I expect you=3DE2=3D80=3D99r= e referring to =3D the =3DE2=3D80=3D9CHighly Available=3DE2=3D80=3D9D checkbox in Edit VM dial= og. > If I run the "shutdown -h now" command on an host where some VMs are =3D running, what is the expected behavior? > Clean VM shutdown (with or without timeout in case it doesn't =3D complete?) or crash of their related QEMU processes? expectation is that you won=3DE2=3D80=3D99t do that. That=3DE2=3D80=3D99s w= hy there =3D is the Maintenance host state. But if you do that regardless, with VMs running, all the processes will =3D be terminated in a regular system way, i.e. all QEMU processes get =3D SIGTERM. =3D46rom the perspective of each guest this is not a clean =3D shutdown and it would just get killed=3D20 Thanks, michal >=3D20 > Thanks, > Gianluca > _______________________________________________ > Users mailing list > Users(a)ovirt.org > http://lists.ovirt.org/mailman/listinfo/users --Apple-Mail=3D_3EFDE72F-C600-476D-A90A-60B2A94A261E Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=3Dutf-8
On 16 Sep 2016, at 15:05, Gianluca Cecchi <gianluca.cecchi(a)gmail.com> wrote:

On F= ri, =3D Sep 16, 2016 at 2:50 PM, Michal Skrivanek <michal.skrivanek(a)redhat.com> =3D wrote:

no, that=3DE2= =3D80=3D99s =3D not how HA works today. When you log into a guest and issue =3D =3DE2=3D80=3D9Cshutdown=3DE2=3D80=3D9D we do not restart the VM under your = hands. We =3D can argue how it should or may work, but this is the defined behavior =3D since the dawn of oVirt.


=3DE2=3D80=3D8BAFAIK that's correct, we need to be able =3D =3DE2=3D80=3D8B
=3DE2=3D80=3D8Bshutdown HA VM=3DE2=3D80=3D8B
=3DE2=3D80= =3D8B
=3DE2=3D80=3D8B without being it immediately restarted on diff= erent =3D host. We want to restart HA VM only if host, where HA VM is running, is =3D non-responsive.

we try to restart it in all othe= r =3D cases other than user initiated shutdown, e.g. a QEMU process crash on =3D an otherwise-healthy host

Hi, just another question i= n =3D case HA is not configured at all.

by =3DE2=3D80=3D9CHA configured=3DE2=3D80=3D9D I expect = you=3DE2=3D80=3D99r=3D e referring to the =3DE2=3D80=3D9CHighly Available=3DE2=3D80=3D9D checkbox = in Edit =3D VM dialog.

If I run the "shutdown -h now" command on an host = =3D where some VMs are running, what is the expected behavior?
Clean VM shutdown (with or without timeout in case = =3D it doesn't complete?) or crash of their related QEMU =3D processes?

expectation is that you won=3DE2=3D80=3D99t do that. Tha= t=3DE2=3D80=3D =3D99s why there is the Maintenance host state.
But if you do =3D that regardless, with VMs running, all the processes will be terminated =3D in a regular system way, i.e. all QEMU processes get SIGTERM. =3D46rom the = =3D perspective of each guest this is not a clean shutdown and it would just = =3D get killed 

Thanks,
michal

Thanks,
Gianluca
_______________________________________________
Users =3D mailing list
Users(a)ovirt.org
http://lists.ovirt.org/mailman/listinfo/users

=3D --Apple-Mail=3D_3EFDE72F-C600-476D-A90A-60B2A94A261E-- --===============8879512840735290725== Content-Type: multipart/alternative MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.bin" Ci0tQXBwbGUtTWFpbD1fM0VGREU3MkYtQzYwMC00NzZELUE5MEEtNjBCMkE5NEEyNjFFCkNvbnRl bnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0 L3BsYWluOwoJY2hhcnNldD11dGYtOAoKCj4gT24gMTYgU2VwIDIwMTYsIGF0IDE1OjA1LCBHaWFu bHVjYSBDZWNjaGkgPGdpYW5sdWNhLmNlY2NoaUBnbWFpbC5jb20+ID0Kd3JvdGU6Cj49MjAKPiBP biBGcmksIFNlcCAxNiwgMjAxNiBhdCAyOjUwIFBNLCBNaWNoYWwgU2tyaXZhbmVrID0KPG1pY2hh bC5za3JpdmFuZWtAcmVkaGF0LmNvbSA8bWFpbHRvOm1pY2hhbC5za3JpdmFuZWtAcmVkaGF0LmNv bT4+ID0Kd3JvdGU6Cj49MjAKPiBubywgdGhhdD1FMj04MD05OXMgbm90IGhvdyBIQSB3b3JrcyB0 b2RheS4gV2hlbiB5b3UgbG9nIGludG8gYSBndWVzdCA9CmFuZCBpc3N1ZSA9RTI9ODA9OUNzaHV0 ZG93bj1FMj04MD05RCB3ZSBkbyBub3QgcmVzdGFydCB0aGUgVk0gdW5kZXIgeW91ciA9CmhhbmRz LiBXZSBjYW4gYXJndWUgaG93IGl0IHNob3VsZCBvciBtYXkgd29yaywgYnV0IHRoaXMgaXMgdGhl IGRlZmluZWQgPQpiZWhhdmlvciBzaW5jZSB0aGUgZGF3biBvZiBvVmlydC4KPj0yMAo+Pj0yMAo+ PiA9RTI9ODA9OEJBRkFJSyB0aGF0J3MgY29ycmVjdCwgd2UgbmVlZCB0byBiZSBhYmxlID1FMj04 MD04Qj1FMj04MD04QnNodT0KdGRvd24gSEEgVk09RTI9ODA9OEI9RTI9ODA9OEI9RTI9ODA9OEIg d2l0aG91dCBiZWluZyBpdCBpbW1lZGlhdGVseSA9CnJlc3RhcnRlZCBvbiBkaWZmZXJlbnQgaG9z dC4gV2Ugd2FudCB0byByZXN0YXJ0IEhBIFZNIG9ubHkgaWYgaG9zdCwgPQp3aGVyZSBIQSBWTSBp cyBydW5uaW5nLCBpcyBub24tcmVzcG9uc2l2ZS4KPj0yMAo+IHdlIHRyeSB0byByZXN0YXJ0IGl0 IGluIGFsbCBvdGhlciBjYXNlcyBvdGhlciB0aGFuIHVzZXIgaW5pdGlhdGVkID0Kc2h1dGRvd24s IGUuZy4gYSBRRU1VIHByb2Nlc3MgY3Jhc2ggb24gYW4gb3RoZXJ3aXNlLWhlYWx0aHkgaG9zdAo+ PTIwCj49MjAKPiBIaSwganVzdCBhbm90aGVyIHF1ZXN0aW9uIGluIGNhc2UgSEEgaXMgbm90IGNv bmZpZ3VyZWQgYXQgYWxsLgoKYnkgPUUyPTgwPTlDSEEgY29uZmlndXJlZD1FMj04MD05RCBJIGV4 cGVjdCB5b3U9RTI9ODA9OTlyZSByZWZlcnJpbmcgdG8gPQp0aGUgPUUyPTgwPTlDSGlnaGx5IEF2 YWlsYWJsZT1FMj04MD05RCBjaGVja2JveCBpbiBFZGl0IFZNIGRpYWxvZy4KCj4gSWYgSSBydW4g dGhlICJzaHV0ZG93biAtaCBub3ciIGNvbW1hbmQgb24gYW4gaG9zdCB3aGVyZSBzb21lIFZNcyBh cmUgPQpydW5uaW5nLCB3aGF0IGlzIHRoZSBleHBlY3RlZCBiZWhhdmlvcj8KPiBDbGVhbiBWTSBz aHV0ZG93biAod2l0aCBvciB3aXRob3V0IHRpbWVvdXQgaW4gY2FzZSBpdCBkb2Vzbid0ID0KY29t cGxldGU/KSBvciBjcmFzaCBvZiB0aGVpciByZWxhdGVkIFFFTVUgcHJvY2Vzc2VzPwoKZXhwZWN0 YXRpb24gaXMgdGhhdCB5b3Ugd29uPUUyPTgwPTk5dCBkbyB0aGF0LiBUaGF0PUUyPTgwPTk5cyB3 aHkgdGhlcmUgPQppcyB0aGUgTWFpbnRlbmFuY2UgaG9zdCBzdGF0ZS4KQnV0IGlmIHlvdSBkbyB0 aGF0IHJlZ2FyZGxlc3MsIHdpdGggVk1zIHJ1bm5pbmcsIGFsbCB0aGUgcHJvY2Vzc2VzIHdpbGwg PQpiZSB0ZXJtaW5hdGVkIGluIGEgcmVndWxhciBzeXN0ZW0gd2F5LCBpLmUuIGFsbCBRRU1VIHBy b2Nlc3NlcyBnZXQgPQpTSUdURVJNLiA9NDZyb20gdGhlIHBlcnNwZWN0aXZlIG9mIGVhY2ggZ3Vl c3QgdGhpcyBpcyBub3QgYSBjbGVhbiA9CnNodXRkb3duIGFuZCBpdCB3b3VsZCBqdXN0IGdldCBr aWxsZWQ9MjAKClRoYW5rcywKbWljaGFsCj49MjAKPiBUaGFua3MsCj4gR2lhbmx1Y2EKPiBfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IFVzZXJzIG1haWxp bmcgbGlzdAo+IFVzZXJzQG92aXJ0Lm9yZwo+IGh0dHA6Ly9saXN0cy5vdmlydC5vcmcvbWFpbG1h bi9saXN0aW5mby91c2VycwoKCi0tQXBwbGUtTWFpbD1fM0VGREU3MkYtQzYwMC00NzZELUE5MEEt NjBCMkE5NEEyNjFFCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUK Q29udGVudC1UeXBlOiB0ZXh0L2h0bWw7CgljaGFyc2V0PXV0Zi04Cgo8aHRtbD48aGVhZD48bWV0 YSBodHRwLWVxdWl2PTNEIkNvbnRlbnQtVHlwZSIgY29udGVudD0zRCJ0ZXh0L2h0bWwgPQpjaGFy c2V0PTNEdXRmLTgiPjwvaGVhZD48Ym9keSBzdHlsZT0zRCJ3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7 ID0KLXdlYmtpdC1uYnNwLW1vZGU6IHNwYWNlOyAtd2Via2l0LWxpbmUtYnJlYWs6IGFmdGVyLXdo aXRlLXNwYWNlOyIgPQpjbGFzcz0zRCIiPjxiciBjbGFzcz0zRCIiPjxkaXY+PGJsb2NrcXVvdGUg dHlwZT0zRCJjaXRlIiBjbGFzcz0zRCIiPjxkaXYgPQpjbGFzcz0zRCIiPk9uIDE2IFNlcCAyMDE2 LCBhdCAxNTowNSwgR2lhbmx1Y2EgQ2VjY2hpICZsdDs8YSA9CmhyZWY9M0QibWFpbHRvOmdpYW5s dWNhLmNlY2NoaUBnbWFpbC5jb20iID0KY2xhc3M9M0QiIj5naWFubHVjYS5jZWNjaGlAZ21haWwu Y29tPC9hPiZndDsgd3JvdGU6PC9kaXY+PGJyID0KY2xhc3M9M0QiQXBwbGUtaW50ZXJjaGFuZ2Ut bmV3bGluZSI+PGRpdiBjbGFzcz0zRCIiPjxkaXYgZGlyPTNEImx0ciIgPQpjbGFzcz0zRCIiPjxk aXYgY2xhc3M9M0QiZ21haWxfZXh0cmEiPjxkaXYgY2xhc3M9M0QiZ21haWxfcXVvdGUiPk9uIEZy aSwgPQpTZXAgMTYsIDIwMTYgYXQgMjo1MCBQTSwgTWljaGFsIFNrcml2YW5layA8c3BhbiBkaXI9 M0QibHRyIiA9CmNsYXNzPTNEIiI+Jmx0OzxhIGhyZWY9M0QibWFpbHRvOm1pY2hhbC5za3JpdmFu ZWtAcmVkaGF0LmNvbSIgPQp0YXJnZXQ9M0QiX2JsYW5rIiBjbGFzcz0zRCIiPm1pY2hhbC5za3Jp dmFuZWtAcmVkaGF0LmNvbTwvYT4mZ3Q7PC9zcGFuPiA9Cndyb3RlOjxiciBjbGFzcz0zRCIiPjxi bG9ja3F1b3RlIGNsYXNzPTNEImdtYWlsX3F1b3RlIiBzdHlsZT0zRCJtYXJnaW46MCA9CjAgMCAu OGV4O2JvcmRlci1sZWZ0OjFweCAjY2NjIHNvbGlkO3BhZGRpbmctbGVmdDoxZXgiPjxkaXYgPQpz dHlsZT0zRCJ3b3JkLXdyYXA6YnJlYWstd29yZCIgY2xhc3M9M0QiIj48ZGl2IGNsYXNzPTNEIiI+ PHNwYW4gPQpjbGFzcz0zRCIiPjxkaXYgY2xhc3M9M0QiIj48YnIgY2xhc3M9M0QiIj48L2Rpdj48 L3NwYW4+bm8sIHRoYXQ9RTI9ODA9OTlzID0Kbm90IGhvdyBIQSB3b3JrcyB0b2RheS4gV2hlbiB5 b3UgbG9nIGludG8gYSBndWVzdCBhbmQgaXNzdWUgPQo9RTI9ODA9OUNzaHV0ZG93bj1FMj04MD05 RCB3ZSBkbyBub3QgcmVzdGFydCB0aGUgVk0gdW5kZXIgeW91ciBoYW5kcy4gV2UgPQpjYW4gYXJn dWUgaG93IGl0IHNob3VsZCBvciBtYXkgd29yaywgYnV0IHRoaXMgaXMgdGhlIGRlZmluZWQgYmVo YXZpb3IgPQpzaW5jZSB0aGUgZGF3biBvZiBvVmlydC48L2Rpdj48ZGl2IGNsYXNzPTNEIiI+PHNw YW4gY2xhc3M9M0QiIj48YnIgPQpjbGFzcz0zRCIiPjxibG9ja3F1b3RlIHR5cGU9M0QiY2l0ZSIg Y2xhc3M9M0QiIj48ZGl2IGNsYXNzPTNEIiI+PGRpdiA9CmRpcj0zRCJsdHIiIGNsYXNzPTNEIiI+ PGRpdiBjbGFzcz0zRCJnbWFpbF9leHRyYSI+PGRpdiA9CmNsYXNzPTNEImdtYWlsX3F1b3RlIj48 ZGl2IGNsYXNzPTNEIiI+PGJyIGNsYXNzPTNEIiI+PGRpdiA9CnN0eWxlPTNEImZvbnQtZmFtaWx5 OmFyaWFsLGhlbHZldGljYSxzYW5zLXNlcmlmO2Rpc3BsYXk6aW5saW5lIiA9CmNsYXNzPTNEIiI+ PUUyPTgwPThCQUZBSUsgdGhhdCdzIGNvcnJlY3QsIHdlIG5lZWQgdG8gYmUgYWJsZSA9Cj1FMj04 MD04QjwvZGl2PjxkaXYgPQpzdHlsZT0zRCJmb250LWZhbWlseTphcmlhbCxoZWx2ZXRpY2Esc2Fu cy1zZXJpZjtkaXNwbGF5OmlubGluZSIgPQpjbGFzcz0zRCIiPj1FMj04MD04QnNodXRkb3duIEhB IFZNPUUyPTgwPThCPC9kaXY+PUUyPTgwPThCPGRpdiA9CnN0eWxlPTNEImZvbnQtZmFtaWx5OmFy aWFsLGhlbHZldGljYSxzYW5zLXNlcmlmO2Rpc3BsYXk6aW5saW5lIiA9CmNsYXNzPTNEIiI+PUUy PTgwPThCIHdpdGhvdXQgYmVpbmcgaXQgaW1tZWRpYXRlbHkgcmVzdGFydGVkIG9uIGRpZmZlcmVu dCA9Cmhvc3QuIFdlIHdhbnQgdG8gcmVzdGFydCBIQSBWTSBvbmx5IGlmIGhvc3QsIHdoZXJlIEhB IFZNIGlzIHJ1bm5pbmcsIGlzID0Kbm9uLXJlc3BvbnNpdmUuPGJyID0KY2xhc3M9M0QiIj48L2Rp dj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PGRpdiA9CmNsYXNz PTNEIiI+PGJyIGNsYXNzPTNEIiI+PC9kaXY+PC9zcGFuPndlIHRyeSB0byByZXN0YXJ0IGl0IGlu IGFsbCBvdGhlciA9CmNhc2VzIG90aGVyIHRoYW4gdXNlciBpbml0aWF0ZWQgc2h1dGRvd24sIGUu Zy4gYSBRRU1VIHByb2Nlc3MgY3Jhc2ggb24gPQphbiBvdGhlcndpc2UtaGVhbHRoeSBob3N0PC9k aXY+PGRpdiBjbGFzcz0zRCIiPjxkaXYgY2xhc3M9M0QiaDUiPjxkaXYgPQpjbGFzcz0zRCIiPjxi ciBjbGFzcz0zRCIiPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48L2Rpdj48 YnIgPQpjbGFzcz0zRCIiPjwvZGl2PjxkaXYgY2xhc3M9M0QiZ21haWxfZXh0cmEiPkhpLCBqdXN0 IGFub3RoZXIgcXVlc3Rpb24gaW4gPQpjYXNlIEhBIGlzIG5vdCBjb25maWd1cmVkIGF0IGFsbC48 L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PGRpdj48YnIgPQpjbGFzcz0zRCIiPjwvZGl2 PmJ5ID1FMj04MD05Q0hBIGNvbmZpZ3VyZWQ9RTI9ODA9OUQgSSBleHBlY3QgeW91PUUyPTgwPTk5 cj0KZSByZWZlcnJpbmcgdG8gdGhlID1FMj04MD05Q0hpZ2hseSBBdmFpbGFibGU9RTI9ODA9OUQg Y2hlY2tib3ggaW4gRWRpdCA9ClZNIGRpYWxvZy48L2Rpdj48ZGl2PjxiciBjbGFzcz0zRCIiPjxi bG9ja3F1b3RlIHR5cGU9M0QiY2l0ZSIgPQpjbGFzcz0zRCIiPjxkaXYgY2xhc3M9M0QiIj48ZGl2 IGRpcj0zRCJsdHIiIGNsYXNzPTNEIiI+PGRpdiA9CmNsYXNzPTNEImdtYWlsX2V4dHJhIj5JZiBJ IHJ1biB0aGUgInNodXRkb3duIC1oIG5vdyIgY29tbWFuZCBvbiBhbiBob3N0ID0Kd2hlcmUgc29t ZSBWTXMgYXJlIHJ1bm5pbmcsIHdoYXQgaXMgdGhlIGV4cGVjdGVkIGJlaGF2aW9yPzwvZGl2Pjxk aXYgPQpjbGFzcz0zRCJnbWFpbF9leHRyYSI+Q2xlYW4gVk0gc2h1dGRvd24gKHdpdGggb3Igd2l0 aG91dCB0aW1lb3V0IGluIGNhc2UgPQppdCBkb2Vzbid0IGNvbXBsZXRlPykgb3IgY3Jhc2ggb2Yg dGhlaXIgcmVsYXRlZCBRRU1VID0KcHJvY2Vzc2VzPzwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2tx dW90ZT48ZGl2PjxiciA9CmNsYXNzPTNEIiI+PC9kaXY+ZXhwZWN0YXRpb24gaXMgdGhhdCB5b3Ug d29uPUUyPTgwPTk5dCBkbyB0aGF0LiBUaGF0PUUyPTgwPQo9OTlzIHdoeSB0aGVyZSBpcyB0aGUg TWFpbnRlbmFuY2UgaG9zdCBzdGF0ZS48L2Rpdj48ZGl2PkJ1dCBpZiB5b3UgZG8gPQp0aGF0IHJl Z2FyZGxlc3MsIHdpdGggVk1zIHJ1bm5pbmcsIGFsbCB0aGUgcHJvY2Vzc2VzIHdpbGwgYmUgdGVy bWluYXRlZCA9CmluIGEgcmVndWxhciBzeXN0ZW0gd2F5LCBpLmUuIGFsbCBRRU1VIHByb2Nlc3Nl cyBnZXQgU0lHVEVSTS4gPTQ2cm9tIHRoZSA9CnBlcnNwZWN0aXZlIG9mIGVhY2ggZ3Vlc3QgdGhp cyBpcyBub3QgYSBjbGVhbiBzaHV0ZG93biBhbmQgaXQgd291bGQganVzdCA9CmdldCBraWxsZWQm bmJzcDs8L2Rpdj48ZGl2PjxiciA9CmNsYXNzPTNEIiI+PC9kaXY+PGRpdj5UaGFua3MsPC9kaXY+ PGRpdj5taWNoYWw8YnIgY2xhc3M9M0QiIj48YmxvY2txdW90ZSA9CnR5cGU9M0QiY2l0ZSIgY2xh c3M9M0QiIj48ZGl2IGNsYXNzPTNEIiI+PGRpdiBkaXI9M0QibHRyIiBjbGFzcz0zRCIiPjxkaXYg PQpjbGFzcz0zRCJnbWFpbF9leHRyYSI+PGJyIGNsYXNzPTNEIiI+PC9kaXY+PGRpdiA9CmNsYXNz PTNEImdtYWlsX2V4dHJhIj5UaGFua3MsPC9kaXY+PGRpdiA9CmNsYXNzPTNEImdtYWlsX2V4dHJh Ij5HaWFubHVjYTwvZGl2PjwvZGl2PgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXzxiciBjbGFzcz0zRCIiPlVzZXJzID0KbWFpbGluZyBsaXN0PGJyIGNsYXNz PTNEIiI+PGEgaHJlZj0zRCJtYWlsdG86VXNlcnNAb3ZpcnQub3JnIiA9CmNsYXNzPTNEIiI+VXNl cnNAb3ZpcnQub3JnPC9hPjxiciA9CmNsYXNzPTNEIiI+aHR0cDovL2xpc3RzLm92aXJ0Lm9yZy9t YWlsbWFuL2xpc3RpbmZvL3VzZXJzPGJyID0KY2xhc3M9M0QiIj48L2Rpdj48L2Jsb2NrcXVvdGU+ PC9kaXY+PGJyIGNsYXNzPTNEIiI+PC9ib2R5PjwvaHRtbD49CgotLUFwcGxlLU1haWw9XzNFRkRF NzJGLUM2MDAtNDc2RC1BOTBBLTYwQjJBOTRBMjYxRS0tCg== --===============8879512840735290725==--