From michal.skrivanek at redhat.com Fri Oct 7 08:52:17 2016 Content-Type: multipart/mixed; boundary="===============4597088508170276830==" MIME-Version: 1.0 From: Michal Skrivanek To: users at ovirt.org Subject: Re: [ovirt-users] ovirt-ha-agent cpu usage Date: Fri, 07 Oct 2016 14:52:14 +0200 Message-ID: <1E88D630-847C-4374-9AE1-8712FD0E2BA2@redhat.com> In-Reply-To: CAMRbyysChgmmWvSB32DyemfS67Hj65DW_E3wyvhXvOYfOeEsBQ@mail.gmail.com --===============4597088508170276830== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable --Apple-Mail=3D_7EB9EF8C-BE5A-48FF-82EF-9D77E5D03B01 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=3Dutf-8 > On 7 Oct 2016, at 14:42, Nir Soffer wrote: >=3D20 > On Wed, Oct 5, 2016 at 1:33 PM, Simone Tiraboschi > wrote: >=3D20 >=3D20 > On Wed, Oct 5, 2016 at 10:34 AM, Nir Soffer > wrote: > On Wed, Oct 5, 2016 at 10:24 AM, Simone Tiraboschi =3D > wrote: >=3D20 >=3D20 > On Wed, Oct 5, 2016 at 9:17 AM, gregor > wrote: > Hi, >=3D20 > did you found a solution or cause for this high CPU usage? > I have installed the self hosted engine on another server and there is > no VM running but ovirt-ha-agent uses heavily the CPU. >=3D20 > Yes, it's due to the fact that ovirt-ha-agent periodically reconnects =3D over json rpc and this is CPU intensive since the client has to parse =3D the yaml API specification each time it connects. wasn=3DE2=3D80=3D99t it suppose to be fixed to reuse the connection? Like a= ll =3D the other clients (vdsm migration code:-)=3D20 Does schema validation matter then if there would be only one connection = =3D at the start up? >=3D20 > Simone, reusing the connection is good idea anyway, but what you =3D describe is=3D20 > a bug in the client library. The library does *not* need to load and =3D parse the > schema at all for sending requests to vdsm. >=3D20 > The schema is only needed if you want to verify request parameters, > or provide online help, these are not needed in a client library. >=3D20 > Please file an infra bug about it. >=3D20 > Done, https://bugzilla.redhat.com/show_bug.cgi?id=3D3D1381899 =3D >=3D20 > Here is a patch that should eliminate most most of the problem: > https://gerrit.ovirt.org/65230 >=3D20 > Would be nice if it can be tested on the system showing this problem. >=3D20 > Cheers, > Nir > _______________________________________________ > Users mailing list > Users(a)ovirt.org > http://lists.ovirt.org/mailman/listinfo/users --Apple-Mail=3D_7EB9EF8C-BE5A-48FF-82EF-9D77E5D03B01 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=3Dutf-8
On 7 Oct 2016, at 14:42, Nir Soffer <nsoffer(a)redhat.com> =3D wrote:

On Wed, Oct 5, 2016 at 1:33 PM, Simone Tiraboschi = =3D <stirabos(a)redhat.com> =3D wrote:


On Wed, Oct 5, 2016 at =3D 10:34 AM, Nir Soffer <nsoffer(a)redhat.com> wrote:
On Wed, Oct 5, 2016 at 10:24 AM,= =3D Simone Tiraboschi <stirabos(a)redhat.com> wrote:

On Wed, Oct 5,= =3D 2016 at 9:17 AM, gregor <gregor_forum(a)catrix.at> wrote:
Hi,

did you found a solution or cause for this high CPU usage?
I have installed the self hosted engine on another server and there =3D is
no VM running but ovirt-ha-agent uses heavily the CPU.

Y= es, =3D it's due to the fact that ovirt-ha-agent periodically reconnects over =3D json rpc and this is CPU intensive since the client has to parse the =3D yaml API specification each time it connects.

wasn=3DE2=3D80=3D99t it suppose to be fi= xed =3D to reuse the connection? Like all the other clients (vdsm migration =3D code:-) 
Does schema validation matter then if there =3D would be only one connection at the start up?


Simone, reusin= g =3D the connection is good idea anyway, but what you describe =3D is 
a bug in the client library. The library = =3D does *not* need to load and parse the
schema at all = =3D for sending requests to vdsm.

The schema is only needed if you want = =3D to verify request parameters,
or provide online =3D help, these are not needed in a client library.

Please file an infra bug about =3D it.


Here is a pat= ch =3D that should eliminate most most of the problem:

Would be nice if it c= an =3D be tested on the system showing this problem.

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

=3D --Apple-Mail=3D_7EB9EF8C-BE5A-48FF-82EF-9D77E5D03B01-- --===============4597088508170276830== Content-Type: multipart/alternative MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.bin" Ci0tQXBwbGUtTWFpbD1fN0VCOUVGOEMtQkU1QS00OEZGLTgyRUYtOUQ3N0U1RDAzQjAxCkNvbnRl bnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0 L3BsYWluOwoJY2hhcnNldD11dGYtOAoKCj4gT24gNyBPY3QgMjAxNiwgYXQgMTQ6NDIsIE5pciBT b2ZmZXIgPG5zb2ZmZXJAcmVkaGF0LmNvbT4gd3JvdGU6Cj49MjAKPiBPbiBXZWQsIE9jdCA1LCAy MDE2IGF0IDE6MzMgUE0sIFNpbW9uZSBUaXJhYm9zY2hpIDxzdGlyYWJvc0ByZWRoYXQuY29tID0K PG1haWx0bzpzdGlyYWJvc0ByZWRoYXQuY29tPj4gd3JvdGU6Cj49MjAKPj0yMAo+IE9uIFdlZCwg T2N0IDUsIDIwMTYgYXQgMTA6MzQgQU0sIE5pciBTb2ZmZXIgPG5zb2ZmZXJAcmVkaGF0LmNvbSA9 CjxtYWlsdG86bnNvZmZlckByZWRoYXQuY29tPj4gd3JvdGU6Cj4gT24gV2VkLCBPY3QgNSwgMjAx NiBhdCAxMDoyNCBBTSwgU2ltb25lIFRpcmFib3NjaGkgPQo8c3RpcmFib3NAcmVkaGF0LmNvbSA8 bWFpbHRvOnN0aXJhYm9zQHJlZGhhdC5jb20+PiB3cm90ZToKPj0yMAo+PTIwCj4gT24gV2VkLCBP Y3QgNSwgMjAxNiBhdCA5OjE3IEFNLCBncmVnb3IgPGdyZWdvcl9mb3J1bUBjYXRyaXguYXQgPQo8 bWFpbHRvOmdyZWdvcl9mb3J1bUBjYXRyaXguYXQ+PiB3cm90ZToKPiBIaSwKPj0yMAo+IGRpZCB5 b3UgZm91bmQgYSBzb2x1dGlvbiBvciBjYXVzZSBmb3IgdGhpcyBoaWdoIENQVSB1c2FnZT8KPiBJ IGhhdmUgaW5zdGFsbGVkIHRoZSBzZWxmIGhvc3RlZCBlbmdpbmUgb24gYW5vdGhlciBzZXJ2ZXIg YW5kIHRoZXJlIGlzCj4gbm8gVk0gcnVubmluZyBidXQgb3ZpcnQtaGEtYWdlbnQgdXNlcyBoZWF2 aWx5IHRoZSBDUFUuCj49MjAKPiBZZXMsIGl0J3MgZHVlIHRvIHRoZSBmYWN0IHRoYXQgb3ZpcnQt aGEtYWdlbnQgcGVyaW9kaWNhbGx5IHJlY29ubmVjdHMgPQpvdmVyIGpzb24gcnBjIGFuZCB0aGlz IGlzIENQVSBpbnRlbnNpdmUgc2luY2UgdGhlIGNsaWVudCBoYXMgdG8gcGFyc2UgPQp0aGUgeWFt bCBBUEkgc3BlY2lmaWNhdGlvbiBlYWNoIHRpbWUgaXQgY29ubmVjdHMuCgp3YXNuPUUyPTgwPTk5 dCBpdCBzdXBwb3NlIHRvIGJlIGZpeGVkIHRvIHJldXNlIHRoZSBjb25uZWN0aW9uPyBMaWtlIGFs bCA9CnRoZSBvdGhlciBjbGllbnRzICh2ZHNtIG1pZ3JhdGlvbiBjb2RlOi0pPTIwCkRvZXMgc2No ZW1hIHZhbGlkYXRpb24gbWF0dGVyIHRoZW4gaWYgdGhlcmUgd291bGQgYmUgb25seSBvbmUgY29u bmVjdGlvbiA9CmF0IHRoZSBzdGFydCB1cD8KCj49MjAKPiBTaW1vbmUsIHJldXNpbmcgdGhlIGNv bm5lY3Rpb24gaXMgZ29vZCBpZGVhIGFueXdheSwgYnV0IHdoYXQgeW91ID0KZGVzY3JpYmUgaXM9 MjAKPiBhIGJ1ZyBpbiB0aGUgY2xpZW50IGxpYnJhcnkuIFRoZSBsaWJyYXJ5IGRvZXMgKm5vdCog bmVlZCB0byBsb2FkIGFuZCA9CnBhcnNlIHRoZQo+IHNjaGVtYSBhdCBhbGwgZm9yIHNlbmRpbmcg cmVxdWVzdHMgdG8gdmRzbS4KPj0yMAo+IFRoZSBzY2hlbWEgaXMgb25seSBuZWVkZWQgaWYgeW91 IHdhbnQgdG8gdmVyaWZ5IHJlcXVlc3QgcGFyYW1ldGVycywKPiBvciBwcm92aWRlIG9ubGluZSBo ZWxwLCB0aGVzZSBhcmUgbm90IG5lZWRlZCBpbiBhIGNsaWVudCBsaWJyYXJ5Lgo+PTIwCj4gUGxl YXNlIGZpbGUgYW4gaW5mcmEgYnVnIGFib3V0IGl0Lgo+PTIwCj4gRG9uZSwgaHR0cHM6Ly9idWd6 aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD0zRDEzODE4OTkgPQo8aHR0cHM6Ly9idWd6 aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD0zRDEzODE4OTk+Cj49MjAKPiBIZXJlIGlz IGEgcGF0Y2ggdGhhdCBzaG91bGQgZWxpbWluYXRlIG1vc3QgbW9zdCBvZiB0aGUgcHJvYmxlbToK PiBodHRwczovL2dlcnJpdC5vdmlydC5vcmcvNjUyMzAgPGh0dHBzOi8vZ2Vycml0Lm92aXJ0Lm9y Zy82NTIzMD4KPj0yMAo+IFdvdWxkIGJlIG5pY2UgaWYgaXQgY2FuIGJlIHRlc3RlZCBvbiB0aGUg c3lzdGVtIHNob3dpbmcgdGhpcyBwcm9ibGVtLgo+PTIwCj4gQ2hlZXJzLAo+IE5pcgo+IF9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gVXNlcnMgbWFpbGlu ZyBsaXN0Cj4gVXNlcnNAb3ZpcnQub3JnCj4gaHR0cDovL2xpc3RzLm92aXJ0Lm9yZy9tYWlsbWFu L2xpc3RpbmZvL3VzZXJzCgoKLS1BcHBsZS1NYWlsPV83RUI5RUY4Qy1CRTVBLTQ4RkYtODJFRi05 RDc3RTVEMDNCMDEKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpD b250ZW50LVR5cGU6IHRleHQvaHRtbDsKCWNoYXJzZXQ9dXRmLTgKCjxodG1sPjxoZWFkPjxtZXRh IGh0dHAtZXF1aXY9M0QiQ29udGVudC1UeXBlIiBjb250ZW50PTNEInRleHQvaHRtbCA9CmNoYXJz ZXQ9M0R1dGYtOCI+PC9oZWFkPjxib2R5IHN0eWxlPTNEIndvcmQtd3JhcDogYnJlYWstd29yZDsg PQotd2Via2l0LW5ic3AtbW9kZTogc3BhY2U7IC13ZWJraXQtbGluZS1icmVhazogYWZ0ZXItd2hp dGUtc3BhY2U7IiA9CmNsYXNzPTNEIiI+PGJyIGNsYXNzPTNEIiI+PGRpdj48YmxvY2txdW90ZSB0 eXBlPTNEImNpdGUiIGNsYXNzPTNEIiI+PGRpdiA9CmNsYXNzPTNEIiI+T24gNyBPY3QgMjAxNiwg YXQgMTQ6NDIsIE5pciBTb2ZmZXIgJmx0OzxhID0KaHJlZj0zRCJtYWlsdG86bnNvZmZlckByZWRo YXQuY29tIiBjbGFzcz0zRCIiPm5zb2ZmZXJAcmVkaGF0LmNvbTwvYT4mZ3Q7ID0Kd3JvdGU6PC9k aXY+PGJyIGNsYXNzPTNEIkFwcGxlLWludGVyY2hhbmdlLW5ld2xpbmUiPjxkaXYgY2xhc3M9M0Qi Ij48ZGl2ID0KZGlyPTNEImx0ciIgY2xhc3M9M0QiIj48ZGl2IGNsYXNzPTNEImdtYWlsX2V4dHJh Ij48ZGl2ID0KY2xhc3M9M0QiZ21haWxfcXVvdGUiPk9uIFdlZCwgT2N0IDUsIDIwMTYgYXQgMToz MyBQTSwgU2ltb25lIFRpcmFib3NjaGkgPQo8c3BhbiBkaXI9M0QibHRyIiBjbGFzcz0zRCIiPiZs dDs8YSBocmVmPTNEIm1haWx0bzpzdGlyYWJvc0ByZWRoYXQuY29tIiA9CnRhcmdldD0zRCJfYmxh bmsiIGNsYXNzPTNEIiI+c3RpcmFib3NAcmVkaGF0LmNvbTwvYT4mZ3Q7PC9zcGFuPiA9Cndyb3Rl OjxiciBjbGFzcz0zRCIiPjxibG9ja3F1b3RlIGNsYXNzPTNEImdtYWlsX3F1b3RlIiBzdHlsZT0z RCJtYXJnaW46MHB4PQogMHB4IDBweCAwLjhleDtib3JkZXItbGVmdDoxcHggc29saWQgPQpyZ2Io MjA0LDIwNCwyMDQpO3BhZGRpbmctbGVmdDoxZXgiPjxkaXYgZGlyPTNEImx0ciIgY2xhc3M9M0Qi Ij48YnIgPQpjbGFzcz0zRCIiPjxkaXYgY2xhc3M9M0QiZ21haWxfZXh0cmEiPjxiciBjbGFzcz0z RCIiPjxkaXYgPQpjbGFzcz0zRCJnbWFpbF9xdW90ZSI+PHNwYW4gY2xhc3M9M0QiZ21haWwtIj5P biBXZWQsIE9jdCA1LCAyMDE2IGF0ID0KMTA6MzQgQU0sIE5pciBTb2ZmZXIgPHNwYW4gZGlyPTNE Imx0ciIgY2xhc3M9M0QiIj4mbHQ7PGEgPQpocmVmPTNEIm1haWx0bzpuc29mZmVyQHJlZGhhdC5j b20iIHRhcmdldD0zRCJfYmxhbmsiID0KY2xhc3M9M0QiIj5uc29mZmVyQHJlZGhhdC5jb208L2E+ Jmd0Ozwvc3Bhbj4gd3JvdGU6PGJyID0KY2xhc3M9M0QiIj48YmxvY2txdW90ZSBjbGFzcz0zRCJn bWFpbF9xdW90ZSIgc3R5bGU9M0QibWFyZ2luOjBweCAwcHggMHB4ID0KMC44ZXg7Ym9yZGVyLWxl ZnQ6MXB4IHNvbGlkIHJnYigyMDQsMjA0LDIwNCk7cGFkZGluZy1sZWZ0OjFleCI+PGRpdiA9CmRp cj0zRCJsdHIiIGNsYXNzPTNEIiI+PGRpdiBjbGFzcz0zRCJnbWFpbF9leHRyYSI+PGRpdiA9CmNs YXNzPTNEImdtYWlsX3F1b3RlIj48c3BhbiBjbGFzcz0zRCIiPk9uIFdlZCwgT2N0IDUsIDIwMTYg YXQgMTA6MjQgQU0sID0KU2ltb25lIFRpcmFib3NjaGkgPHNwYW4gZGlyPTNEImx0ciIgY2xhc3M9 M0QiIj4mbHQ7PGEgPQpocmVmPTNEIm1haWx0bzpzdGlyYWJvc0ByZWRoYXQuY29tIiB0YXJnZXQ9 M0QiX2JsYW5rIiA9CmNsYXNzPTNEIiI+c3RpcmFib3NAcmVkaGF0LmNvbTwvYT4mZ3Q7PC9zcGFu PiB3cm90ZTo8YnIgPQpjbGFzcz0zRCIiPjxibG9ja3F1b3RlIGNsYXNzPTNEImdtYWlsX3F1b3Rl IiBzdHlsZT0zRCJtYXJnaW46MHB4IDBweCAwcHggPQowLjhleDtib3JkZXItbGVmdDoxcHggc29s aWQgcmdiKDIwNCwyMDQsMjA0KTtwYWRkaW5nLWxlZnQ6MWV4Ij48ZGl2ID0KZGlyPTNEImx0ciIg Y2xhc3M9M0QiIj48YnIgY2xhc3M9M0QiIj48ZGl2IGNsYXNzPTNEImdtYWlsX2V4dHJhIj48YnIg PQpjbGFzcz0zRCIiPjxkaXYgY2xhc3M9M0QiZ21haWxfcXVvdGUiPjxzcGFuIGNsYXNzPTNEIiI+ T24gV2VkLCBPY3QgNSwgPQoyMDE2IGF0IDk6MTcgQU0sIGdyZWdvciA8c3BhbiBkaXI9M0QibHRy IiBjbGFzcz0zRCIiPiZsdDs8YSA9CmhyZWY9M0QibWFpbHRvOmdyZWdvcl9mb3J1bUBjYXRyaXgu YXQiIHRhcmdldD0zRCJfYmxhbmsiID0KY2xhc3M9M0QiIj5ncmVnb3JfZm9ydW1AY2F0cml4LmF0 PC9hPiZndDs8L3NwYW4+IHdyb3RlOjxiciA9CmNsYXNzPTNEIiI+PGJsb2NrcXVvdGUgY2xhc3M9 M0QiZ21haWxfcXVvdGUiIHN0eWxlPTNEIm1hcmdpbjowcHggMHB4IDBweCA9CjAuOGV4O2JvcmRl ci1sZWZ0OjFweCBzb2xpZCByZ2IoMjA0LDIwNCwyMDQpO3BhZGRpbmctbGVmdDoxZXgiPkhpLDxi ciA9CmNsYXNzPTNEIiI+CjxiciBjbGFzcz0zRCIiPgpkaWQgeW91IGZvdW5kIGEgc29sdXRpb24g b3IgY2F1c2UgZm9yIHRoaXMgaGlnaCBDUFUgdXNhZ2U/PGJyIGNsYXNzPTNEIiI+CkkgaGF2ZSBp bnN0YWxsZWQgdGhlIHNlbGYgaG9zdGVkIGVuZ2luZSBvbiBhbm90aGVyIHNlcnZlciBhbmQgdGhl cmUgPQppczxiciBjbGFzcz0zRCIiPgpubyBWTSBydW5uaW5nIGJ1dCBvdmlydC1oYS1hZ2VudCB1 c2VzIGhlYXZpbHkgdGhlIENQVS48YnIgPQpjbGFzcz0zRCIiPjwvYmxvY2txdW90ZT48ZGl2IGNs YXNzPTNEIiI+PGJyIGNsYXNzPTNEIiI+PC9kaXY+PC9zcGFuPlllcywgPQppdCdzIGR1ZSB0byB0 aGUgZmFjdCB0aGF0IG92aXJ0LWhhLWFnZW50IHBlcmlvZGljYWxseSByZWNvbm5lY3RzIG92ZXIg PQpqc29uIHJwYyBhbmQgdGhpcyBpcyBDUFUgaW50ZW5zaXZlIHNpbmNlIHRoZSBjbGllbnQgaGFz IHRvIHBhcnNlIHRoZSA9CnlhbWwgQVBJIHNwZWNpZmljYXRpb24gZWFjaCB0aW1lIGl0IGNvbm5l Y3RzLjxiciA9CmNsYXNzPTNEIiI+PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjwvc3Bh bj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrPQpxdW90ZT48L3NwYW4+PC9kaXY+PC9kaXY+PC9k aXY+PC9ibG9ja3F1b3RlPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvYz0Ka3F1b3RlPjxk aXY+PGJyIGNsYXNzPTNEIiI+PC9kaXY+d2Fzbj1FMj04MD05OXQgaXQgc3VwcG9zZSB0byBiZSBm aXhlZCA9CnRvIHJldXNlIHRoZSBjb25uZWN0aW9uPyBMaWtlIGFsbCB0aGUgb3RoZXIgY2xpZW50 cyAodmRzbSBtaWdyYXRpb24gPQpjb2RlOi0pJm5ic3A7PC9kaXY+PGRpdj5Eb2VzIHNjaGVtYSB2 YWxpZGF0aW9uIG1hdHRlciB0aGVuIGlmIHRoZXJlID0Kd291bGQgYmUgb25seSBvbmUgY29ubmVj dGlvbiBhdCB0aGUgc3RhcnQgdXA/PC9kaXY+PGRpdj48YnIgPQpjbGFzcz0zRCIiPjxibG9ja3F1 b3RlIHR5cGU9M0QiY2l0ZSIgY2xhc3M9M0QiIj48ZGl2IGNsYXNzPTNEIiI+PGRpdiA9CmRpcj0z RCJsdHIiIGNsYXNzPTNEIiI+PGRpdiBjbGFzcz0zRCJnbWFpbF9leHRyYSI+PGRpdiA9CmNsYXNz PTNEImdtYWlsX3F1b3RlIj48YmxvY2txdW90ZSBjbGFzcz0zRCJnbWFpbF9xdW90ZSIgPQpzdHls ZT0zRCJtYXJnaW46MHB4IDBweCAwcHggMC44ZXg7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkID0Kcmdi KDIwNCwyMDQsMjA0KTtwYWRkaW5nLWxlZnQ6MWV4Ij48ZGl2IGRpcj0zRCJsdHIiIGNsYXNzPTNE IiI+PGRpdiA9CmNsYXNzPTNEImdtYWlsX2V4dHJhIj48ZGl2IGNsYXNzPTNEImdtYWlsX3F1b3Rl Ij48c3BhbiA9CmNsYXNzPTNEImdtYWlsLSI+PGJsb2NrcXVvdGUgY2xhc3M9M0QiZ21haWxfcXVv dGUiIHN0eWxlPTNEIm1hcmdpbjowcHggPQowcHggMHB4IDAuOGV4O2JvcmRlci1sZWZ0OjFweCBz b2xpZCA9CnJnYigyMDQsMjA0LDIwNCk7cGFkZGluZy1sZWZ0OjFleCI+PGRpdiBkaXI9M0QibHRy IiBjbGFzcz0zRCIiPjxkaXYgPQpjbGFzcz0zRCJnbWFpbF9leHRyYSI+PGRpdiBjbGFzcz0zRCJn bWFpbF9xdW90ZSI+PHNwYW4gY2xhc3M9M0QiIj48ZGl2ID0KY2xhc3M9M0QiIj48YnIgY2xhc3M9 M0QiIj48L2Rpdj48L3NwYW4+PGRpdiBjbGFzcz0zRCIiPlNpbW9uZSwgcmV1c2luZyA9CnRoZSBj b25uZWN0aW9uIGlzIGdvb2QgaWRlYSBhbnl3YXksIGJ1dCB3aGF0IHlvdSBkZXNjcmliZSA9Cmlz Jm5ic3A7PC9kaXY+PGRpdiBjbGFzcz0zRCIiPmEgYnVnIGluIHRoZSBjbGllbnQgbGlicmFyeS4g VGhlIGxpYnJhcnkgPQpkb2VzICpub3QqIG5lZWQgdG8gbG9hZCBhbmQgcGFyc2UgdGhlPC9kaXY+ PGRpdiBjbGFzcz0zRCIiPnNjaGVtYSBhdCBhbGwgPQpmb3Igc2VuZGluZyByZXF1ZXN0cyB0byB2 ZHNtLjwvZGl2PjxkaXYgY2xhc3M9M0QiIj48YnIgPQpjbGFzcz0zRCIiPjwvZGl2PjxkaXYgY2xh c3M9M0QiIj5UaGUgc2NoZW1hIGlzIG9ubHkgbmVlZGVkIGlmIHlvdSB3YW50ID0KdG8gdmVyaWZ5 IHJlcXVlc3QgcGFyYW1ldGVycyw8L2Rpdj48ZGl2IGNsYXNzPTNEIiI+b3IgcHJvdmlkZSBvbmxp bmUgPQpoZWxwLCB0aGVzZSBhcmUgbm90IG5lZWRlZCBpbiBhIGNsaWVudCBsaWJyYXJ5LjwvZGl2 PjxkaXYgY2xhc3M9M0QiIj48YnIgPQpjbGFzcz0zRCIiPjwvZGl2PjxkaXYgY2xhc3M9M0QiIj5Q bGVhc2UgZmlsZSBhbiBpbmZyYSBidWcgYWJvdXQgPQppdC48L2Rpdj48L2Rpdj48L2Rpdj48L2Rp dj48L2Jsb2NrcXVvdGU+PGRpdiBjbGFzcz0zRCIiPjxiciA9CmNsYXNzPTNEIiI+PC9kaXY+PC9z cGFuPjxkaXYgY2xhc3M9M0QiIj5Eb25lLCA8YSA9CmhyZWY9M0QiaHR0cHM6Ly9idWd6aWxsYS5y ZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD0zRDEzODE4OTkiID0KdGFyZ2V0PTNEIl9ibGFuayIg Y2xhc3M9M0QiIj5odHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vPHdiciA9CmNsYXNzPTNEIiI+ c2hvd19idWcuY2dpP2lkPTNEMTM4MTg5OTwvYT48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Js b2NrcXVvPQp0ZT48ZGl2IGNsYXNzPTNEIiI+PGJyIGNsYXNzPTNEIiI+PC9kaXY+PGRpdiBjbGFz cz0zRCIiPkhlcmUgaXMgYSBwYXRjaCA9CnRoYXQgc2hvdWxkIGVsaW1pbmF0ZSBtb3N0IG1vc3Qg b2YgdGhlIHByb2JsZW06PC9kaXY+PGRpdiBjbGFzcz0zRCIiPjxhID0KaHJlZj0zRCJodHRwczov L2dlcnJpdC5vdmlydC5vcmcvNjUyMzAiID0KY2xhc3M9M0QiIj5odHRwczovL2dlcnJpdC5vdmly dC5vcmcvNjUyMzA8L2E+PGJyIGNsYXNzPTNEIiI+PC9kaXY+PGRpdiA9CmNsYXNzPTNEIiI+PGJy IGNsYXNzPTNEIiI+PC9kaXY+PGRpdiBjbGFzcz0zRCIiPldvdWxkIGJlIG5pY2UgaWYgaXQgY2Fu ID0KYmUgdGVzdGVkIG9uIHRoZSBzeXN0ZW0gc2hvd2luZyB0aGlzIHByb2JsZW0uPC9kaXY+PGRp diBjbGFzcz0zRCIiPjxiciA9CmNsYXNzPTNEIiI+PC9kaXY+PGRpdiBjbGFzcz0zRCIiPkNoZWVy cyw8L2Rpdj48ZGl2ID0KY2xhc3M9M0QiIj5OaXI8L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj4KX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX188YnIgY2xhc3M9M0Qi Ij5Vc2VycyA9Cm1haWxpbmcgbGlzdDxiciBjbGFzcz0zRCIiPjxhIGhyZWY9M0QibWFpbHRvOlVz ZXJzQG92aXJ0Lm9yZyIgPQpjbGFzcz0zRCIiPlVzZXJzQG92aXJ0Lm9yZzwvYT48YnIgPQpjbGFz cz0zRCIiPmh0dHA6Ly9saXN0cy5vdmlydC5vcmcvbWFpbG1hbi9saXN0aW5mby91c2VyczxiciA9 CmNsYXNzPTNEIiI+PC9kaXY+PC9ibG9ja3F1b3RlPjwvZGl2PjxiciBjbGFzcz0zRCIiPjwvYm9k eT48L2h0bWw+PQoKLS1BcHBsZS1NYWlsPV83RUI5RUY4Qy1CRTVBLTQ4RkYtODJFRi05RDc3RTVE MDNCMDEtLQo= --===============4597088508170276830==--