From vfeenstr at redhat.com Fri Jun 17 06:05:23 2016 Content-Type: multipart/mixed; boundary="===============7008780658198989621==" MIME-Version: 1.0 From: Vinzenz Feenstra To: users at ovirt.org Subject: Re: [ovirt-users] migration failed with permission denied Date: Fri, 17 Jun 2016 12:05:18 +0200 Message-ID: In-Reply-To: 2244C48C-52C6-40F2-976F-5BDCD030234C@icloud.com --===============7008780658198989621== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable --Apple-Mail=3D_77237F06-3D2D-4B29-B197-1A4855DC4A06 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=3Dus-ascii Hi Fabrice, > On Jun 17, 2016, at 11:41 AM, Fabrice Bacchella =3D wrote: >=3D20 > I'm running an up to date ovirt setup. >=3D20 > I tried to put an host in maintenance mode, with one VM running on it. >=3D20 > It failed with this message in vdsm.log: >=3D20 > Thread-351083::ERROR::2016-06-17 =3D 11:30:04,732::migration::209::virt.vm::(_recover) =3D vmId=3D3D`b82209c9-42ff-457c-bb98-b6a2034833fc`::internal error: process = =3D exited while connecting to monitor: 2016-06-17T09:30:04.429323Z =3D qemu-kvm: -chardev =3D socket,id=3D3Dcharchannel0,path=3D3D/var/lib/libvirt/qemu/channels/b82209c9= -42=3D ff-457c-bb98-b6a2034833fc.com.redhat.rhevm.vdsm,server,nowait: Failed to = =3D bind socket to =3D /var/lib/libvirt/qemu/channels/b82209c9-42ff-457c-bb98-b6a2034833fc.com.re= =3D dhat.rhevm.vdsm: Permission denied > ... > Traceback (most recent call last): > File "/usr/share/vdsm/virt/migration.py", line 298, in run > self._startUnderlyingMigration(time.time()) > File "/usr/share/vdsm/virt/migration.py", line 364, in =3D _startUnderlyingMigration > self._perform_migration(duri, muri) > File "/usr/share/vdsm/virt/migration.py", line 403, in =3D _perform_migration > self._vm._dom.migrateToURI3(duri, params, flags) > File "/usr/share/vdsm/virt/virdomain.py", line 68, in f > ret =3D3D attr(*args, **kwargs) > File "/usr/lib/python2.7/site-packages/vdsm/libvirtconnection.py", =3D line 124, in wrapper > ret =3D3D f(*args, **kwargs) > File "/usr/lib/python2.7/site-packages/vdsm/utils.py", line 1313, in = =3D wrapper > return func(inst, *args, **kwargs) > File "/usr/lib64/python2.7/site-packages/libvirt.py", line 1836, in =3D migrateToURI3 > if ret =3D3D=3D3D -1: raise libvirtError ('virDomainMigrateToURI3() = =3D failed', dom=3D3Dself) > libvirtError: internal error: process exited while connecting to =3D monitor: 2016-06-17T09:30:04.429323Z qemu-kvm: -chardev =3D socket,id=3D3Dcharchannel0,path=3D3D/var/lib/libvirt/qemu/channels/b82209c9= -42=3D ff-457c-bb98-b6a2034833fc.com.redhat.rhevm.vdsm,server,nowait: Failed to = =3D bind socket to =3D /var/lib/libvirt/qemu/channels/b82209c9-42ff-457c-bb98-b6a2034833fc.com.re= =3D dhat.rhevm.vdsm: Permission denied This is pretty odd, could you please send me the out put of this: # rpm -qa | grep vdsm =3D46rom the target and destination hosts. Thanks. >=3D20 > If i check the file, I see : >=3D20 > srwxrwxr-x 1 qemu qemu 0 May 31 16:21 =3D /var/lib/libvirt/qemu/channels/b82209c9-42ff-457c-bb98-b6a2034833fc.com.re= =3D dhat.rhevm.vdsm >=3D20 > And on all my hosts, the permissions are the same: > srwxrwxr-x 1 qemu qemu /var/lib/libvirt/qemu/channels/* >=3D20 > And vdsm is running vdsm: > 4 S vdsm 3816 1 0 60 -20 - 947345 poll_s May25 ? =3D 02:21:58 /usr/bin/python /usr/share/vdsm/vdsm >=3D20 > If I check vdsm groups: > ~# id vdsm > uid=3D3D36(vdsm) gid=3D3D36(kvm) groups=3D3D36(kvm),179(sanlock),107(qemu) >=3D20 >=3D20 >=3D20 >=3D20 > _______________________________________________ > Users mailing list > Users(a)ovirt.org > http://lists.ovirt.org/mailman/listinfo/users --Apple-Mail=3D_77237F06-3D2D-4B29-B197-1A4855DC4A06 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=3Dus-ascii
Hi Fabrice,

On =3D Jun 17, 2016, at 11:41 AM, Fabrice Bacchella <fabrice.bacchella(a)icloud.com> wrote:

I'm running an = =3D up to date ovirt setup.

I tried to put an host in maintenance mode, with one VM =3D running on it.

It failed with this message in vdsm.log:

Thread-351083::ERROR::2016-06-17 =3D 11:30:04,732::migration::209::virt.vm::(_recover) =3D vmId=3D3D`b82209c9-42ff-457c-bb98-b6a2034833fc`::internal error: process = =3D exited while connecting to monitor: 2016-06-17T09:30:04.429323Z =3D qemu-kvm: -chardev =3D socket,id=3D3Dcharchannel0,path=3D3D/var/lib/libvirt/qemu/channels/b82209c9= -42=3D ff-457c-bb98-b6a2034833fc.com.redhat.rhevm.vdsm,server,nowait: Failed to = =3D bind socket to =3D /var/lib/libvirt/qemu/channels/b82209c9-42ff-457c-bb98-b6a2034833fc.com.re= =3D dhat.rhevm.vdsm: Permission denied
...
Traceback (most recent call last):
  File "/usr/share/vdsm/virt/migration.py", line 298, in = =3D run
    =3D self._startUnderlyingMigration(time.time())
  File "/usr/share/vdsm/virt/migration.py", line 364, in = =3D _startUnderlyingMigration
    =3D self._perform_migration(duri, muri)
  File =3D "/usr/share/vdsm/virt/migration.py", line 403, in =3D _perform_migration
    =3D self._vm._dom.migrateToURI3(duri, params, flags)
  File "/usr/share/vdsm/virt/virdomain.py", line 68, in = =3D f
    ret =3D3D attr(*args, =3D **kwargs)
  File =3D "/usr/lib/python2.7/site-packages/vdsm/libvirtconnection.py", line 124, =3D in wrapper
    ret =3D3D f(*args, = =3D **kwargs)
  File =3D "/usr/lib/python2.7/site-packages/vdsm/utils.py", line 1313, in =3D wrapper
    return func(inst, = =3D *args, **kwargs)
  File =3D "/usr/lib64/python2.7/site-packages/libvirt.py", line 1836, in =3D migrateToURI3
    if ret =3D3D=3D3D -= 1: =3D raise libvirtError ('virDomainMigrateToURI3() failed', =3D dom=3D3Dself)
libvirtError: internal error: =3D process exited while connecting to monitor: 2016-06-17T09:30:04.429323Z =3D qemu-kvm: -chardev =3D socket,id=3D3Dcharchannel0,path=3D3D/var/lib/libvirt/qemu/channels/b82209c9= -42=3D ff-457c-bb98-b6a2034833fc.com.redhat.rhevm.vdsm,server,nowait: Failed to = =3D bind socket to =3D /var/lib/libvirt/qemu/channels/b82209c9-42ff-457c-bb98-b6a2034833fc.com.re= =3D dhat.rhevm.vdsm: Permission =3D denied

This is pretty odd, could you please send me the = =3D out put of this:

# rpm -qa | grep =3D vdsm

=3D46rom the target and =3D destination hosts. Thanks.


If = i =3D check the file, I see :

srwxrwxr-x 1 qemu qemu 0 May 31 = =3D 16:21 =3D /var/lib/libvirt/qemu/channels/b82209c9-42ff-457c-bb98-b6a2034833fc.com.re= =3D dhat.rhevm.vdsm

And=3D on all my hosts, the permissions are the same:
srwxrwxr-x 1 qemu =3D qemu /var/lib/libvirt/qemu/channels/*

And vdsm is running =3D vdsm:
4 S vdsm      3816     1  =3D 0  60 -20 - 947345 poll_s May25 ?       02:21:58 =3D /usr/bin/python /usr/share/vdsm/vdsm

If I check vdsm groups:
~# id vdsm
uid=3D3D36(vdsm) gid=3D3D36(kvm) =3D groups=3D3D36(kvm),179(sanlock),107(qemu)



____________________________________________= _=3D __
Users mailing list
Users(a)ovirt.org
http://lists.ovirt.org/mailman/listinfo/users

=3D --Apple-Mail=3D_77237F06-3D2D-4B29-B197-1A4855DC4A06-- --===============7008780658198989621== Content-Type: multipart/alternative MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.bin" Ci0tQXBwbGUtTWFpbD1fNzcyMzdGMDYtM0QyRC00QjI5LUIxOTctMUE0ODU1REM0QTA2CkNvbnRl bnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0 L3BsYWluOwoJY2hhcnNldD11cy1hc2NpaQoKSGkgRmFicmljZSwKCj4gT24gSnVuIDE3LCAyMDE2 LCBhdCAxMTo0MSBBTSwgRmFicmljZSBCYWNjaGVsbGEgPQo8ZmFicmljZS5iYWNjaGVsbGFAaWNs b3VkLmNvbT4gd3JvdGU6Cj49MjAKPiBJJ20gcnVubmluZyBhbiB1cCB0byBkYXRlIG92aXJ0IHNl dHVwLgo+PTIwCj4gSSB0cmllZCB0byBwdXQgYW4gaG9zdCBpbiBtYWludGVuYW5jZSBtb2RlLCB3 aXRoIG9uZSBWTSBydW5uaW5nIG9uIGl0Lgo+PTIwCj4gSXQgZmFpbGVkIHdpdGggdGhpcyBtZXNz YWdlIGluIHZkc20ubG9nOgo+PTIwCj4gVGhyZWFkLTM1MTA4Mzo6RVJST1I6OjIwMTYtMDYtMTcg PQoxMTozMDowNCw3MzI6Om1pZ3JhdGlvbjo6MjA5Ojp2aXJ0LnZtOjooX3JlY292ZXIpID0Kdm1J ZD0zRGBiODIyMDljOS00MmZmLTQ1N2MtYmI5OC1iNmEyMDM0ODMzZmNgOjppbnRlcm5hbCBlcnJv cjogcHJvY2VzcyA9CmV4aXRlZCB3aGlsZSBjb25uZWN0aW5nIHRvIG1vbml0b3I6IDIwMTYtMDYt MTdUMDk6MzA6MDQuNDI5MzIzWiA9CnFlbXUta3ZtOiAtY2hhcmRldiA9CnNvY2tldCxpZD0zRGNo YXJjaGFubmVsMCxwYXRoPTNEL3Zhci9saWIvbGlidmlydC9xZW11L2NoYW5uZWxzL2I4MjIwOWM5 LTQyPQpmZi00NTdjLWJiOTgtYjZhMjAzNDgzM2ZjLmNvbS5yZWRoYXQucmhldm0udmRzbSxzZXJ2 ZXIsbm93YWl0OiBGYWlsZWQgdG8gPQpiaW5kIHNvY2tldCB0byA9Ci92YXIvbGliL2xpYnZpcnQv cWVtdS9jaGFubmVscy9iODIyMDljOS00MmZmLTQ1N2MtYmI5OC1iNmEyMDM0ODMzZmMuY29tLnJl PQpkaGF0LnJoZXZtLnZkc206IFBlcm1pc3Npb24gZGVuaWVkCj4gLi4uCj4gVHJhY2ViYWNrICht b3N0IHJlY2VudCBjYWxsIGxhc3QpOgo+ICAgRmlsZSAiL3Vzci9zaGFyZS92ZHNtL3ZpcnQvbWln cmF0aW9uLnB5IiwgbGluZSAyOTgsIGluIHJ1bgo+ICAgICBzZWxmLl9zdGFydFVuZGVybHlpbmdN aWdyYXRpb24odGltZS50aW1lKCkpCj4gICBGaWxlICIvdXNyL3NoYXJlL3Zkc20vdmlydC9taWdy YXRpb24ucHkiLCBsaW5lIDM2NCwgaW4gPQpfc3RhcnRVbmRlcmx5aW5nTWlncmF0aW9uCj4gICAg IHNlbGYuX3BlcmZvcm1fbWlncmF0aW9uKGR1cmksIG11cmkpCj4gICBGaWxlICIvdXNyL3NoYXJl L3Zkc20vdmlydC9taWdyYXRpb24ucHkiLCBsaW5lIDQwMywgaW4gPQpfcGVyZm9ybV9taWdyYXRp b24KPiAgICAgc2VsZi5fdm0uX2RvbS5taWdyYXRlVG9VUkkzKGR1cmksIHBhcmFtcywgZmxhZ3Mp Cj4gICBGaWxlICIvdXNyL3NoYXJlL3Zkc20vdmlydC92aXJkb21haW4ucHkiLCBsaW5lIDY4LCBp biBmCj4gICAgIHJldCA9M0QgYXR0cigqYXJncywgKiprd2FyZ3MpCj4gICBGaWxlICIvdXNyL2xp Yi9weXRob24yLjcvc2l0ZS1wYWNrYWdlcy92ZHNtL2xpYnZpcnRjb25uZWN0aW9uLnB5IiwgPQps aW5lIDEyNCwgaW4gd3JhcHBlcgo+ICAgICByZXQgPTNEIGYoKmFyZ3MsICoqa3dhcmdzKQo+ICAg RmlsZSAiL3Vzci9saWIvcHl0aG9uMi43L3NpdGUtcGFja2FnZXMvdmRzbS91dGlscy5weSIsIGxp bmUgMTMxMywgaW4gPQp3cmFwcGVyCj4gICAgIHJldHVybiBmdW5jKGluc3QsICphcmdzLCAqKmt3 YXJncykKPiAgIEZpbGUgIi91c3IvbGliNjQvcHl0aG9uMi43L3NpdGUtcGFja2FnZXMvbGlidmly dC5weSIsIGxpbmUgMTgzNiwgaW4gPQptaWdyYXRlVG9VUkkzCj4gICAgIGlmIHJldCA9M0Q9M0Qg LTE6IHJhaXNlIGxpYnZpcnRFcnJvciAoJ3ZpckRvbWFpbk1pZ3JhdGVUb1VSSTMoKSA9CmZhaWxl ZCcsIGRvbT0zRHNlbGYpCj4gbGlidmlydEVycm9yOiBpbnRlcm5hbCBlcnJvcjogcHJvY2VzcyBl eGl0ZWQgd2hpbGUgY29ubmVjdGluZyB0byA9Cm1vbml0b3I6IDIwMTYtMDYtMTdUMDk6MzA6MDQu NDI5MzIzWiBxZW11LWt2bTogLWNoYXJkZXYgPQpzb2NrZXQsaWQ9M0RjaGFyY2hhbm5lbDAscGF0 aD0zRC92YXIvbGliL2xpYnZpcnQvcWVtdS9jaGFubmVscy9iODIyMDljOS00Mj0KZmYtNDU3Yy1i Yjk4LWI2YTIwMzQ4MzNmYy5jb20ucmVkaGF0LnJoZXZtLnZkc20sc2VydmVyLG5vd2FpdDogRmFp bGVkIHRvID0KYmluZCBzb2NrZXQgdG8gPQovdmFyL2xpYi9saWJ2aXJ0L3FlbXUvY2hhbm5lbHMv YjgyMjA5YzktNDJmZi00NTdjLWJiOTgtYjZhMjAzNDgzM2ZjLmNvbS5yZT0KZGhhdC5yaGV2bS52 ZHNtOiBQZXJtaXNzaW9uIGRlbmllZAoKVGhpcyBpcyBwcmV0dHkgb2RkLCBjb3VsZCB5b3UgcGxl YXNlIHNlbmQgbWUgdGhlIG91dCBwdXQgb2YgdGhpczoKCiMgcnBtIC1xYSB8IGdyZXAgdmRzbQoK PTQ2cm9tIHRoZSB0YXJnZXQgYW5kIGRlc3RpbmF0aW9uIGhvc3RzLiBUaGFua3MuCgo+PTIwCj4g SWYgaSBjaGVjayB0aGUgZmlsZSwgSSBzZWUgOgo+PTIwCj4gc3J3eHJ3eHIteCAxIHFlbXUgcWVt dSAwIE1heSAzMSAxNjoyMSA9Ci92YXIvbGliL2xpYnZpcnQvcWVtdS9jaGFubmVscy9iODIyMDlj OS00MmZmLTQ1N2MtYmI5OC1iNmEyMDM0ODMzZmMuY29tLnJlPQpkaGF0LnJoZXZtLnZkc20KPj0y MAo+IEFuZCBvbiBhbGwgbXkgaG9zdHMsIHRoZSBwZXJtaXNzaW9ucyBhcmUgdGhlIHNhbWU6Cj4g c3J3eHJ3eHIteCAxIHFlbXUgcWVtdSAvdmFyL2xpYi9saWJ2aXJ0L3FlbXUvY2hhbm5lbHMvKgo+ PTIwCj4gQW5kIHZkc20gaXMgcnVubmluZyB2ZHNtOgo+IDQgUyB2ZHNtICAgICAgMzgxNiAgICAg MSAgMCAgNjAgLTIwIC0gOTQ3MzQ1IHBvbGxfcyBNYXkyNSA/ICAgICAgID0KMDI6MjE6NTggL3Vz ci9iaW4vcHl0aG9uIC91c3Ivc2hhcmUvdmRzbS92ZHNtCj49MjAKPiBJZiBJIGNoZWNrIHZkc20g Z3JvdXBzOgo+IH4jIGlkIHZkc20KPiB1aWQ9M0QzNih2ZHNtKSBnaWQ9M0QzNihrdm0pIGdyb3Vw cz0zRDM2KGt2bSksMTc5KHNhbmxvY2spLDEwNyhxZW11KQo+PTIwCj49MjAKPj0yMAo+PTIwCj4g X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBVc2VycyBt YWlsaW5nIGxpc3QKPiBVc2Vyc0BvdmlydC5vcmcKPiBodHRwOi8vbGlzdHMub3ZpcnQub3JnL21h aWxtYW4vbGlzdGluZm8vdXNlcnMKCgotLUFwcGxlLU1haWw9Xzc3MjM3RjA2LTNEMkQtNEIyOS1C MTk3LTFBNDg1NURDNEEwNgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRh YmxlCkNvbnRlbnQtVHlwZTogdGV4dC9odG1sOwoJY2hhcnNldD11cy1hc2NpaQoKPGh0bWw+PGhl YWQ+PG1ldGEgaHR0cC1lcXVpdj0zRCJDb250ZW50LVR5cGUiIGNvbnRlbnQ9M0QidGV4dC9odG1s ID0KY2hhcnNldD0zRHVzLWFzY2lpIj48L2hlYWQ+PGJvZHkgc3R5bGU9M0Qid29yZC13cmFwOiBi cmVhay13b3JkOyA9Ci13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJyZWFr OiBhZnRlci13aGl0ZS1zcGFjZTsiID0KY2xhc3M9M0QiIj48ZGl2IGNsYXNzPTNEIiI+SGkgRmFi cmljZSw8L2Rpdj48YnIgPQpjbGFzcz0zRCIiPjxkaXY+PGJsb2NrcXVvdGUgdHlwZT0zRCJjaXRl IiBjbGFzcz0zRCIiPjxkaXYgY2xhc3M9M0QiIj5PbiA9Ckp1biAxNywgMjAxNiwgYXQgMTE6NDEg QU0sIEZhYnJpY2UgQmFjY2hlbGxhICZsdDs8YSA9CmhyZWY9M0QibWFpbHRvOmZhYnJpY2UuYmFj Y2hlbGxhQGljbG91ZC5jb20iID0KY2xhc3M9M0QiIj5mYWJyaWNlLmJhY2NoZWxsYUBpY2xvdWQu Y29tPC9hPiZndDsgd3JvdGU6PC9kaXY+PGJyID0KY2xhc3M9M0QiQXBwbGUtaW50ZXJjaGFuZ2Ut bmV3bGluZSI+PGRpdiBjbGFzcz0zRCIiPjxtZXRhID0KaHR0cC1lcXVpdj0zRCJDb250ZW50LVR5 cGUiIGNvbnRlbnQ9M0QidGV4dC9odG1sIGNoYXJzZXQ9M0R1cy1hc2NpaSIgPQpjbGFzcz0zRCIi PjxkaXYgc3R5bGU9M0Qid29yZC13cmFwOiBicmVhay13b3JkOyAtd2Via2l0LW5ic3AtbW9kZTog PQpzcGFjZTsgLXdlYmtpdC1saW5lLWJyZWFrOiBhZnRlci13aGl0ZS1zcGFjZTsiIGNsYXNzPTNE IiI+SSdtIHJ1bm5pbmcgYW4gPQp1cCB0byBkYXRlIG92aXJ0IHNldHVwLjxkaXYgY2xhc3M9M0Qi Ij48YnIgY2xhc3M9M0QiIj48L2Rpdj48ZGl2ID0KY2xhc3M9M0QiIj5JIHRyaWVkIHRvIHB1dCBh biBob3N0IGluIG1haW50ZW5hbmNlIG1vZGUsIHdpdGggb25lIFZNID0KcnVubmluZyBvbiBpdC48 L2Rpdj48ZGl2IGNsYXNzPTNEIiI+PGJyIGNsYXNzPTNEIiI+PC9kaXY+PGRpdiA9CmNsYXNzPTNE IiI+SXQgZmFpbGVkIHdpdGggdGhpcyBtZXNzYWdlIGluIHZkc20ubG9nOjwvZGl2PjxkaXYgPQpj bGFzcz0zRCIiPjxiciBjbGFzcz0zRCIiPjwvZGl2PjxkaXYgY2xhc3M9M0QiIj48ZGl2IGNsYXNz PTNEIiI+PGZvbnQgPQpmYWNlPTNEIk1lbmxvIiBzdHlsZT0zRCJmb250LXNpemU6IDExcHg7IiA9 CmNsYXNzPTNEIiI+VGhyZWFkLTM1MTA4Mzo6RVJST1I6OjIwMTYtMDYtMTcgPQoxMTozMDowNCw3 MzI6Om1pZ3JhdGlvbjo6MjA5Ojp2aXJ0LnZtOjooX3JlY292ZXIpID0Kdm1JZD0zRGBiODIyMDlj OS00MmZmLTQ1N2MtYmI5OC1iNmEyMDM0ODMzZmNgOjppbnRlcm5hbCBlcnJvcjogcHJvY2VzcyA9 CmV4aXRlZCB3aGlsZSBjb25uZWN0aW5nIHRvIG1vbml0b3I6IDIwMTYtMDYtMTdUMDk6MzA6MDQu NDI5MzIzWiA9CnFlbXUta3ZtOiAtY2hhcmRldiA9CnNvY2tldCxpZD0zRGNoYXJjaGFubmVsMCxw YXRoPTNEL3Zhci9saWIvbGlidmlydC9xZW11L2NoYW5uZWxzL2I4MjIwOWM5LTQyPQpmZi00NTdj LWJiOTgtYjZhMjAzNDgzM2ZjLmNvbS5yZWRoYXQucmhldm0udmRzbSxzZXJ2ZXIsbm93YWl0OiBG YWlsZWQgdG8gPQpiaW5kIHNvY2tldCB0byA9Ci92YXIvbGliL2xpYnZpcnQvcWVtdS9jaGFubmVs cy9iODIyMDljOS00MmZmLTQ1N2MtYmI5OC1iNmEyMDM0ODMzZmMuY29tLnJlPQpkaGF0LnJoZXZt LnZkc206IFBlcm1pc3Npb24gZGVuaWVkPC9mb250PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9M0Qi Ij48Zm9udD0KIGZhY2U9M0QiTWVubG8iIHN0eWxlPTNEImZvbnQtc2l6ZTogMTFweDsiIGNsYXNz PTNEIiI+Li4uPC9mb250PjwvZGl2PjxkaXY9CiBjbGFzcz0zRCIiPjxkaXYgY2xhc3M9M0QiIj48 Zm9udCBmYWNlPTNEIk1lbmxvIiBzdHlsZT0zRCJmb250LXNpemU6ID0KMTFweDsiIGNsYXNzPTNE IiI+VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOjwvZm9udD48L2Rpdj48ZGl2ID0K Y2xhc3M9M0QiIj48Zm9udCBmYWNlPTNEIk1lbmxvIiBzdHlsZT0zRCJmb250LXNpemU6IDExcHg7 IiA9CmNsYXNzPTNEIiI+Jm5ic3A7IEZpbGUgIi91c3Ivc2hhcmUvdmRzbS92aXJ0L21pZ3JhdGlv bi5weSIsIGxpbmUgMjk4LCBpbiA9CnJ1bjwvZm9udD48L2Rpdj48ZGl2IGNsYXNzPTNEIiI+PGZv bnQgZmFjZT0zRCJNZW5sbyIgc3R5bGU9M0QiZm9udC1zaXplOiA9CjExcHg7IiBjbGFzcz0zRCIi PiZuYnNwOyAmbmJzcDsgPQpzZWxmLl9zdGFydFVuZGVybHlpbmdNaWdyYXRpb24odGltZS50aW1l KCkpPC9mb250PjwvZGl2PjxkaXYgPQpjbGFzcz0zRCIiPjxmb250IGZhY2U9M0QiTWVubG8iIHN0 eWxlPTNEImZvbnQtc2l6ZTogMTFweDsiID0KY2xhc3M9M0QiIj4mbmJzcDsgRmlsZSAiL3Vzci9z aGFyZS92ZHNtL3ZpcnQvbWlncmF0aW9uLnB5IiwgbGluZSAzNjQsIGluID0KX3N0YXJ0VW5kZXJs eWluZ01pZ3JhdGlvbjwvZm9udD48L2Rpdj48ZGl2IGNsYXNzPTNEIiI+PGZvbnQgZmFjZT0zRCJN ZW5sbyI9CiBzdHlsZT0zRCJmb250LXNpemU6IDExcHg7IiBjbGFzcz0zRCIiPiZuYnNwOyAmbmJz cDsgPQpzZWxmLl9wZXJmb3JtX21pZ3JhdGlvbihkdXJpLCBtdXJpKTwvZm9udD48L2Rpdj48ZGl2 IGNsYXNzPTNEIiI+PGZvbnQgPQpmYWNlPTNEIk1lbmxvIiBzdHlsZT0zRCJmb250LXNpemU6IDEx cHg7IiBjbGFzcz0zRCIiPiZuYnNwOyBGaWxlID0KIi91c3Ivc2hhcmUvdmRzbS92aXJ0L21pZ3Jh dGlvbi5weSIsIGxpbmUgNDAzLCBpbiA9Cl9wZXJmb3JtX21pZ3JhdGlvbjwvZm9udD48L2Rpdj48 ZGl2IGNsYXNzPTNEIiI+PGZvbnQgZmFjZT0zRCJNZW5sbyIgPQpzdHlsZT0zRCJmb250LXNpemU6 IDExcHg7IiBjbGFzcz0zRCIiPiZuYnNwOyAmbmJzcDsgPQpzZWxmLl92bS5fZG9tLm1pZ3JhdGVU b1VSSTMoZHVyaSwgcGFyYW1zLCBmbGFncyk8L2ZvbnQ+PC9kaXY+PGRpdiA9CmNsYXNzPTNEIiI+ PGZvbnQgZmFjZT0zRCJNZW5sbyIgc3R5bGU9M0QiZm9udC1zaXplOiAxMXB4OyIgPQpjbGFzcz0z RCIiPiZuYnNwOyBGaWxlICIvdXNyL3NoYXJlL3Zkc20vdmlydC92aXJkb21haW4ucHkiLCBsaW5l IDY4LCBpbiA9CmY8L2ZvbnQ+PC9kaXY+PGRpdiBjbGFzcz0zRCIiPjxmb250IGZhY2U9M0QiTWVu bG8iIHN0eWxlPTNEImZvbnQtc2l6ZTogPQoxMXB4OyIgY2xhc3M9M0QiIj4mbmJzcDsgJm5ic3A7 IHJldCA9M0QgYXR0cigqYXJncywgPQoqKmt3YXJncyk8L2ZvbnQ+PC9kaXY+PGRpdiBjbGFzcz0z RCIiPjxmb250IGZhY2U9M0QiTWVubG8iID0Kc3R5bGU9M0QiZm9udC1zaXplOiAxMXB4OyIgY2xh c3M9M0QiIj4mbmJzcDsgRmlsZSA9CiIvdXNyL2xpYi9weXRob24yLjcvc2l0ZS1wYWNrYWdlcy92 ZHNtL2xpYnZpcnRjb25uZWN0aW9uLnB5IiwgbGluZSAxMjQsID0KaW4gd3JhcHBlcjwvZm9udD48 L2Rpdj48ZGl2IGNsYXNzPTNEIiI+PGZvbnQgZmFjZT0zRCJNZW5sbyIgPQpzdHlsZT0zRCJmb250 LXNpemU6IDExcHg7IiBjbGFzcz0zRCIiPiZuYnNwOyAmbmJzcDsgcmV0ID0zRCBmKCphcmdzLCA9 Cioqa3dhcmdzKTwvZm9udD48L2Rpdj48ZGl2IGNsYXNzPTNEIiI+PGZvbnQgZmFjZT0zRCJNZW5s byIgPQpzdHlsZT0zRCJmb250LXNpemU6IDExcHg7IiBjbGFzcz0zRCIiPiZuYnNwOyBGaWxlID0K Ii91c3IvbGliL3B5dGhvbjIuNy9zaXRlLXBhY2thZ2VzL3Zkc20vdXRpbHMucHkiLCBsaW5lIDEz MTMsIGluID0Kd3JhcHBlcjwvZm9udD48L2Rpdj48ZGl2IGNsYXNzPTNEIiI+PGZvbnQgZmFjZT0z RCJNZW5sbyIgPQpzdHlsZT0zRCJmb250LXNpemU6IDExcHg7IiBjbGFzcz0zRCIiPiZuYnNwOyAm bmJzcDsgcmV0dXJuIGZ1bmMoaW5zdCwgPQoqYXJncywgKiprd2FyZ3MpPC9mb250PjwvZGl2Pjxk aXYgY2xhc3M9M0QiIj48Zm9udCBmYWNlPTNEIk1lbmxvIiA9CnN0eWxlPTNEImZvbnQtc2l6ZTog MTFweDsiIGNsYXNzPTNEIiI+Jm5ic3A7IEZpbGUgPQoiL3Vzci9saWI2NC9weXRob24yLjcvc2l0 ZS1wYWNrYWdlcy9saWJ2aXJ0LnB5IiwgbGluZSAxODM2LCBpbiA9Cm1pZ3JhdGVUb1VSSTM8L2Zv bnQ+PC9kaXY+PGRpdiBjbGFzcz0zRCIiPjxmb250IGZhY2U9M0QiTWVubG8iID0Kc3R5bGU9M0Qi Zm9udC1zaXplOiAxMXB4OyIgY2xhc3M9M0QiIj4mbmJzcDsgJm5ic3A7IGlmIHJldCA9M0Q9M0Qg LTE6ID0KcmFpc2UgbGlidmlydEVycm9yICgndmlyRG9tYWluTWlncmF0ZVRvVVJJMygpIGZhaWxl ZCcsID0KZG9tPTNEc2VsZik8L2ZvbnQ+PC9kaXY+PGRpdiBjbGFzcz0zRCIiPjxmb250IGZhY2U9 M0QiTWVubG8iID0Kc3R5bGU9M0QiZm9udC1zaXplOiAxMXB4OyIgY2xhc3M9M0QiIj5saWJ2aXJ0 RXJyb3I6IGludGVybmFsIGVycm9yOiA9CnByb2Nlc3MgZXhpdGVkIHdoaWxlIGNvbm5lY3Rpbmcg dG8gbW9uaXRvcjogMjAxNi0wNi0xN1QwOTozMDowNC40MjkzMjNaID0KcWVtdS1rdm06IC1jaGFy ZGV2ID0Kc29ja2V0LGlkPTNEY2hhcmNoYW5uZWwwLHBhdGg9M0QvdmFyL2xpYi9saWJ2aXJ0L3Fl bXUvY2hhbm5lbHMvYjgyMjA5YzktNDI9CmZmLTQ1N2MtYmI5OC1iNmEyMDM0ODMzZmMuY29tLnJl ZGhhdC5yaGV2bS52ZHNtLHNlcnZlcixub3dhaXQ6IEZhaWxlZCB0byA9CmJpbmQgc29ja2V0IHRv ID0KL3Zhci9saWIvbGlidmlydC9xZW11L2NoYW5uZWxzL2I4MjIwOWM5LTQyZmYtNDU3Yy1iYjk4 LWI2YTIwMzQ4MzNmYy5jb20ucmU9CmRoYXQucmhldm0udmRzbTogUGVybWlzc2lvbiA9CmRlbmll ZDwvZm9udD48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PGRpdj48YnIgPQpj bGFzcz0zRCIiPjwvZGl2PjxkaXY+VGhpcyBpcyBwcmV0dHkgb2RkLCBjb3VsZCB5b3UgcGxlYXNl IHNlbmQgbWUgdGhlID0Kb3V0IHB1dCBvZiB0aGlzOjwvZGl2PjxkaXY+PGJyIGNsYXNzPTNEIiI+ PC9kaXY+PGRpdj4jIHJwbSAtcWEgfCBncmVwID0KdmRzbTwvZGl2PjxkaXY+PGJyIGNsYXNzPTNE IiI+PC9kaXY+PGRpdj49NDZyb20gdGhlIHRhcmdldCBhbmQgPQpkZXN0aW5hdGlvbiBob3N0cy4g VGhhbmtzLjwvZGl2PjxiciBjbGFzcz0zRCIiPjxibG9ja3F1b3RlIHR5cGU9M0QiY2l0ZSIgPQpj bGFzcz0zRCIiPjxkaXYgY2xhc3M9M0QiIj48ZGl2IHN0eWxlPTNEIndvcmQtd3JhcDogYnJlYWst d29yZDsgPQotd2Via2l0LW5ic3AtbW9kZTogc3BhY2U7IC13ZWJraXQtbGluZS1icmVhazogYWZ0 ZXItd2hpdGUtc3BhY2U7IiA9CmNsYXNzPTNEIiI+PGRpdiBjbGFzcz0zRCIiPjxiciBjbGFzcz0z RCIiPjwvZGl2PjxkaXYgY2xhc3M9M0QiIj5JZiBpID0KY2hlY2sgdGhlIGZpbGUsIEkgc2VlIDo8 L2Rpdj48ZGl2IGNsYXNzPTNEIiI+PGJyIGNsYXNzPTNEIiI+PC9kaXY+PGRpdiA9CmNsYXNzPTNE IiI+PGRpdiBzdHlsZT0zRCJtYXJnaW46IDBweDsiIGNsYXNzPTNEIiI+PGZvbnQgZmFjZT0zRCJN ZW5sbyIgPQpzdHlsZT0zRCJmb250LXNpemU6IDExcHg7IiBjbGFzcz0zRCIiPnNyd3hyd3hyLXgg MSBxZW11IHFlbXUgMCBNYXkgMzEgPQoxNjoyMSA9Ci92YXIvbGliL2xpYnZpcnQvcWVtdS9jaGFu bmVscy9iODIyMDljOS00MmZmLTQ1N2MtYmI5OC1iNmEyMDM0ODMzZmMuY29tLnJlPQpkaGF0LnJo ZXZtLnZkc208L2ZvbnQ+PC9kaXY+PC9kaXY+PGRpdiBzdHlsZT0zRCJtYXJnaW46IDBweDsiID0K Y2xhc3M9M0QiIj48YnIgY2xhc3M9M0QiIj48L2Rpdj48ZGl2IHN0eWxlPTNEIm1hcmdpbjogMHB4 OyIgY2xhc3M9M0QiIj5BbmQ9CiBvbiBhbGwgbXkgaG9zdHMsIHRoZSBwZXJtaXNzaW9ucyBhcmUg dGhlIHNhbWU6PC9kaXY+PGRpdiBzdHlsZT0zRCJtYXJnaW46PQogMHB4OyIgY2xhc3M9M0QiIj48 Zm9udCBmYWNlPTNEIk1lbmxvIiBzdHlsZT0zRCJmb250LXNpemU6IDExcHg7IiA9CmNsYXNzPTNE IiI+PGZvbnQgY2xhc3M9M0QiIj5zcnd4cnd4ci14IDEgcWVtdSA9CnFlbXUmbmJzcDs8L2ZvbnQ+ L3Zhci9saWIvbGlidmlydC9xZW11L2NoYW5uZWxzLyo8L2ZvbnQ+PC9kaXY+PGRpdiA9CnN0eWxl PTNEIm1hcmdpbjogMHB4OyIgY2xhc3M9M0QiIj48YnIgY2xhc3M9M0QiIj48L2Rpdj48ZGl2ID0K c3R5bGU9M0QibWFyZ2luOiAwcHg7IiBjbGFzcz0zRCIiPkFuZCZuYnNwO3Zkc20mbmJzcDtpcyBy dW5uaW5nID0KdmRzbTo8L2Rpdj48ZGl2IHN0eWxlPTNEIm1hcmdpbjogMHB4OyIgY2xhc3M9M0Qi Ij48ZGl2IHN0eWxlPTNEIm1hcmdpbjogPQowcHg7IiBjbGFzcz0zRCIiPjxmb250IGZhY2U9M0Qi TWVubG8iIHN0eWxlPTNEImZvbnQtc2l6ZTogMTFweDsiID0KY2xhc3M9M0QiIj40IFMgdmRzbSZu YnNwOyAmbmJzcDsgJm5ic3A7IDM4MTYgJm5ic3A7ICZuYnNwOyAxJm5ic3A7ID0KMCZuYnNwOyA2 MCAtMjAgLSA5NDczNDUgcG9sbF9zIE1heTI1ID8gJm5ic3A7ICZuYnNwOyAmbmJzcDsgMDI6MjE6 NTggPQovdXNyL2Jpbi9weXRob24gL3Vzci9zaGFyZS92ZHNtL3Zkc208L2ZvbnQ+PC9kaXY+PGRp diBzdHlsZT0zRCJtYXJnaW46ID0KMHB4OyIgY2xhc3M9M0QiIj48YnIgY2xhc3M9M0QiIj48L2Rp dj48ZGl2IHN0eWxlPTNEIm1hcmdpbjogMHB4OyIgPQpjbGFzcz0zRCIiPklmIEkgY2hlY2sgdmRz bSBncm91cHM6PC9kaXY+PGRpdiBzdHlsZT0zRCJtYXJnaW46IDBweDsiID0KY2xhc3M9M0QiIj48 ZGl2IHN0eWxlPTNEIm1hcmdpbjogMHB4OyIgY2xhc3M9M0QiIj48Zm9udCBmYWNlPTNEIk1lbmxv IiA9CnN0eWxlPTNEImZvbnQtc2l6ZTogMTFweDsiIGNsYXNzPTNEIiI+fiMgaWQgdmRzbTwvZm9u dD48L2Rpdj48ZGl2ID0Kc3R5bGU9M0QibWFyZ2luOiAwcHg7IiBjbGFzcz0zRCIiPjxmb250IGZh Y2U9M0QiTWVubG8iIHN0eWxlPTNEImZvbnQtc2l6ZTo9CiAxMXB4OyIgY2xhc3M9M0QiIj51aWQ9 M0QzNih2ZHNtKSBnaWQ9M0QzNihrdm0pID0KZ3JvdXBzPTNEMzYoa3ZtKSwxNzkoc2FubG9jayks MTA3KHFlbXUpPC9mb250PjwvZGl2PjxkaXYgY2xhc3M9M0QiIj48YnIgPQpjbGFzcz0zRCIiPjwv ZGl2PjxkaXYgY2xhc3M9M0QiIj48YnIgY2xhc3M9M0QiIj48L2Rpdj48L2Rpdj48ZGl2ID0KY2xh c3M9M0QiIj48YnIgY2xhc3M9M0QiIj48L2Rpdj48ZGl2IGNsYXNzPTNEIiI+PGJyID0KY2xhc3M9 M0QiIj48L2Rpdj48L2Rpdj48L2Rpdj5fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX189Cl9fPGJyIGNsYXNzPTNEIiI+VXNlcnMgbWFpbGluZyBsaXN0PGJyIGNsYXNz PTNEIiI+PGEgPQpocmVmPTNEIm1haWx0bzpVc2Vyc0BvdmlydC5vcmciIGNsYXNzPTNEIiI+VXNl cnNAb3ZpcnQub3JnPC9hPjxiciA9CmNsYXNzPTNEIiI+aHR0cDovL2xpc3RzLm92aXJ0Lm9yZy9t YWlsbWFuL2xpc3RpbmZvL3VzZXJzPGJyID0KY2xhc3M9M0QiIj48L2Rpdj48L2Jsb2NrcXVvdGU+ PC9kaXY+PGJyIGNsYXNzPTNEIiI+PC9ib2R5PjwvaHRtbD49CgotLUFwcGxlLU1haWw9Xzc3MjM3 RjA2LTNEMkQtNEIyOS1CMTk3LTFBNDg1NURDNEEwNi0tCg== --===============7008780658198989621==--