Re: [ovirt-users] Users Digest, Vol 52, Issue 72 vdsm hook issues

Hi, My vdsm hook is now invoked. Up to me to debug it. Thanks a lot. J.P. -----Message d'origine----- De : users-bounces@ovirt.org [mailto:users-bounces@ovirt.org] De la part de users-request@ovirt.org Envoyé : mardi 12 janvier 2016 17:04 À : users@ovirt.org Objet : Users Digest, Vol 52, Issue 72 Send Users mailing list submissions to users@ovirt.org To subscribe or unsubscribe via the World Wide Web, visit http://lists.ovirt.org/mailman/listinfo/users or, via email, send a message with subject or body 'help' to users-request@ovirt.org You can reach the person managing the list at users-owner@ovirt.org When replying, please edit your Subject line so it is more specific than "Re: Contents of Users digest..." Today's Topics: 1. Re: vdsm hook issues (Dan Yasny) ---------------------------------------------------------------------- Message: 1 Date: Tue, 12 Jan 2016 11:03:34 -0500 From: Dan Yasny <dyasny@gmail.com> To: Jean-Pierre Ribeauville <jpribeauville@axway.com> Cc: "users@ovirt.org" <users@ovirt.org> Subject: Re: [ovirt-users] vdsm hook issues Message-ID: <CALLXwb4_hxrQ8ziqfh+mU8CDwR6eNJxBr7eGMDfw0pihAk3SwA@mail.gmail.com> Content-Type: text/plain; charset="utf-8" yup. Now add the sys.stderr.write line somewhere, with a marker you can grep for, and try, then check the vdsm.log file for the marker. I'd also add an external log dump for the development testing, and comment it out before going into production On Tue, Jan 12, 2016 at 11:02 AM, Jean-Pierre Ribeauville < jpribeauville@axway.com> wrote:
Hi,
173078 4 -rwxrwxrwx. 1 vdsm kvm 1292 Jan 12 15:51 test_hook.py
Looks fine , isn?t ?
J.P.
*De :* Dan Yasny [mailto:dyasny@gmail.com] *Envoy? :* mardi 12 janvier 2016 17:00
*? :* Jean-Pierre Ribeauville *Cc :* users@ovirt.org *Objet :* Re: [ovirt-users] vdsm hook issues
So, to make is work, you need to chown 36:36 and chmod +x for 36:36 of course.
As for logging, since the hook is run under the vdsm context, you can tap right into the logging of vdsm, or you can write your own log file, whatever you prefer to code.
See https://github.com/oVirt/vdsm/blob/master/vdsm_hooks/vmfex/before_vm_s tart.py line 197 - sys.stderr.write will actually dump into the vdsm log.
On Tue, Jan 12, 2016 at 10:55 AM, Jean-Pierre Ribeauville < jpribeauville@axway.com> wrote:
Hi,
/usr/share/vdsm/hooking.py is present on my host.
I placed my test_hook.py in /usr/libexec/vdsm/hooks/before_vm_start
As I want to have it invoked for every started VM , I don?t need custom property ; Am I right ?
Remains the point ?make it accessible to vdsm:kvm? what do you mean ?
BTW , are vdsm hooks log infos located in /var/log/vdsm/vdsm.log ?
Thx for help.
J.P.
*De :* Dan Yasny [mailto:dyasny@gmail.com] *Envoy? :* mardi 12 janvier 2016 16:48
*? :* Jean-Pierre Ribeauville *Cc :* users@ovirt.org *Objet :* Re: [ovirt-users] vdsm hook issues
OK, so the hooking module is included in the vdsm package itself. Please make sure you have /usr/share/vdsm/hooking.py on the host.
The manual run fails, because it is not running in the vdsm context, and so the modules imported are the python site-packages and not the submodules under vdsm.
To make a hook work, you need to place it on the host, make it accessible to vdsm:kvm, and maybe define a custom property, if you don't want the hook to just run on every started VM.
On Tue, Jan 12, 2016 at 10:35 AM, Jean-Pierre Ribeauville < jpribeauville@axway.com> wrote:
Hi,
1? It?s a full RHEL7 OS. 2? vdsm-python-zombiereaper-4.16.27-0.el7.centos.noarch
vdsm-python-4.16.27-0.el7.centos.noarch
vdsm-yajsonrpc-4.16.27-0.el7.centos.noarch
vdsm-xmlrpc-4.16.27-0.el7.centos.noarch
vdsm-cli-4.16.27-0.el7.centos.noarch
vdsm-jsonrpc-java-1.0.15-1.el7.noarch
vdsm-jsonrpc-4.16.27-0.el7.centos.noarch
vdsm-4.16.27-0.el7.centos.x86_64
3?
#!/usr/bin/python
1)
2) import os
3) import sys
4) import grp
5) import pwd
6) import traceback
7)
8) import hooking
9)
10) def createChannelElement(domxml):
11) '''
12) <channel type='unix'>
13) <source mode='bind' path='//var/lib/libvirt/qemu/VM_RHEL7-1_omnivision_1.agent'/>
14) <target type='virtio' name='omnivision_1.agent'/>
15) </channel>
16) '''
17)
18) channel = domxml.createElement('channel')
19) disk.setAttribute('type', 'unix')
20)
21) source = domxml.createElement('source')
22) source.setAttribute('mode', 'bind')
23)
24) # find domain name
25) domainame = domxml.getElementsByTagName('name')
26)
27) source.setAttribute('path', '//var/lib/libvirt/qemu/' + domainame + '_omnivision_1.agent')
28) disk.appendChild(source)
29)
30) target = domxml.createElement('target')
31) target.setAttribute('type', 'virtio')
32) target.setAttribute('name', 'omnivision_1.agent')
33) disk.appendChild(target)
34)
35) return channel
36)
37) try:
38) domxml = hooking.read_domxml()
39) devices = domxml.getElementsByTagName('devices')[0]
40) channeldev = createChannelElement(domxml)
41) sys.stderr.write('createChannel: adding xml: %s\n' % channeldev.toxml())
42) devices.appendChild(channeldev)
43)
44) hooking.write_domxml(domxml)
45) except:
46) sys.stderr.write('createChannel: [unexpected error]: %s\n' %
47) traceback.format_exc())
48) sys.exit(2)
Thx for help.
Regards,
J.P.
*De :* Dan Yasny [mailto:dyasny@gmail.com] *Envoy? :* mardi 12 janvier 2016 16:23 *? :* Jean-Pierre Ribeauville *Cc :* users@ovirt.org *Objet :* Re: [ovirt-users] vdsm hook issues
1. Are you using a full OS or a node?
2. rpm -qa |grep vdsm
3. if possible, post the hook code
Thanks
On Tue, Jan 12, 2016 at 10:17 AM, Jean-Pierre Ribeauville < jpribeauville@axway.com> wrote:
Hi,
1) is it enough to add a hook.py in /usr/libexec/vdsm/hooks/before_vm_start directory , and then shut down and reboot a guest to
see this hook.py invoked ?
2) when running manually my hook.py, I got following error :
ImportError: No module named hooking
Do I have to install anything to solve this issue ?
Thanks for help.
Regards,
*J.P. Ribeauville*
P: +33.(0).1.47.17.20.49
.
Puteaux 3 Etage 5 Bureau 4
*jpribeauville@axway.com <jpribeauville@axway.com>* http://www.axway.com
P Pensez ? l?environnement avant d?imprimer.
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users

On Tue, Jan 12, 2016 at 5:32 PM, Jean-Pierre Ribeauville < jpribeauville@axway.com> wrote:
Hi,
My vdsm hook is now invoked.
Up to me to debug it.
Thanks a lot.
J.P.
I don't understand at the end what you had to change: from your previous messages it resulted that all things requested were in place already.... Thanks, Gianluca

--_000_1051EFB4D3A1704680C38CCAAC5836D292F024FCWPTXMAIL2ptxaxw_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGksDQoNCldoYXQgSSBkaWQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoaXMgYWZmYWlyIDoNCg0K DQoxKSAgICAgIENob3duIGFuZCBjaG1vZCBvZiAgbXlob29rLnB5DQoNCg0KMikgICAgICBEb27i gJl0IHRyeSB0byBydW4gaXQgZnJvbSBzaGVsbA0KDQoNCjMpICAgICAgVXAgdG8gbm93LCAgSSBt YXkgYXZvaWQgdG8gcGxheSB3aXRoIGN1c3RvbSBwcm9wZXJ0aWVzLg0KKCBCVFcsICBkbyB5b3Ug a25vdyBob3cgLCB3aXRoaW4gbXlob29rLnB5ICwgb25lIG1heSByZXRyaWV2ZSB0aGlzIGN1c3Rv bSBwcm9wZXJ0eQ0KICAgdGhhdCB3aWxsIGluZGljYXRlIGlmIHRoZSBob29rIGhhcyB0byBiZSBn byBmdXJ0aGVyIG9yIG11c3QgZXhpc3Qgd2l0aG91dCBkb2luZyBhbnl0aGluZyA/KQ0KDQpXaGF0 4oCZcyByZW1haW5pbmcgOg0KDQoxKSBkZWJ1ZyB0aGUgLnB5DQoyKSBjaGVjayB3ZXRoZXIsIGJ5 IG1pZ3JhdGluZyB0aGUgR3Vlc3QgLCB0aGUgaG9vayBpcyBhbHNvIGNhbGxlZCBvbiB0aGUgdGFy Z2V0IGhvc3QgICggbWF5YmUgeW91IGtub3cgdGhlIGFuc3dlciA/KQ0KDQpUaGF04oCZcyBhbGwu DQoNClJlZ2FyZHMsDQoNCkouUC4NCg0KRGUgOiBHaWFubHVjYSBDZWNjaGkgW21haWx0bzpnaWFu bHVjYS5jZWNjaGlAZ21haWwuY29tXQ0KRW52b3nDqSA6IG1hcmRpIDEyIGphbnZpZXIgMjAxNiAx OTo0Mg0Kw4AgOiBKZWFuLVBpZXJyZSBSaWJlYXV2aWxsZQ0KQ2MgOiB1c2Vyc0BvdmlydC5vcmcN Ck9iamV0IDogUmU6IFtvdmlydC11c2Vyc10gVXNlcnMgRGlnZXN0LCBWb2wgNTIsIElzc3VlIDcy IHZkc20gaG9vayBpc3N1ZXMNCg0KT24gVHVlLCBKYW4gMTIsIDIwMTYgYXQgNTozMiBQTSwgSmVh bi1QaWVycmUgUmliZWF1dmlsbGUgPGpwcmliZWF1dmlsbGVAYXh3YXkuY29tPG1haWx0bzpqcHJp YmVhdXZpbGxlQGF4d2F5LmNvbT4+IHdyb3RlOg0KSGksDQoNCk15IHZkc20gaG9vayBpcyBub3cg aW52b2tlZC4NCg0KVXAgdG8gbWUgdG8gZGVidWcgaXQuDQoNClRoYW5rcyBhIGxvdC4NCg0KSi5Q Lg0KDQoNCkkgZG9uJ3QgdW5kZXJzdGFuZCBhdCB0aGUgZW5kIHdoYXQgeW91IGhhZCB0byBjaGFu Z2U6IGZyb20geW91ciBwcmV2aW91cyBtZXNzYWdlcyBpdCByZXN1bHRlZCB0aGF0IGFsbCB0aGlu Z3MgcmVxdWVzdGVkIHdlcmUgaW4gcGxhY2UgYWxyZWFkeS4uLi4NClRoYW5rcywNCkdpYW5sdWNh DQo= --_000_1051EFB4D3A1704680C38CCAAC5836D292F024FCWPTXMAIL2ptxaxw_ Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTQgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6 Q2FsaWJyaTsNCglwYW5vc2UtMToyIDE1IDUgMiAyIDIgNCAzIDIgNDt9DQpAZm9udC1mYWNlDQoJ e2ZvbnQtZmFtaWx5OlRhaG9tYTsNCglwYW5vc2UtMToyIDExIDYgNCAzIDUgNCA0IDIgNDt9DQov KiBTdHlsZSBEZWZpbml0aW9ucyAqLw0KcC5Nc29Ob3JtYWwsIGxpLk1zb05vcm1hbCwgZGl2Lk1z b05vcm1hbA0KCXttYXJnaW46MGNtOw0KCW1hcmdpbi1ib3R0b206LjAwMDFwdDsNCglmb250LXNp emU6MTIuMHB0Ow0KCWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iLCJzZXJpZiI7fQ0KYTps aW5rLCBzcGFuLk1zb0h5cGVybGluaw0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6 Ymx1ZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30NCmE6dmlzaXRlZCwgc3Bhbi5Nc29I eXBlcmxpbmtGb2xsb3dlZA0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6cHVycGxl Ow0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KcC5Nc29MaXN0UGFyYWdyYXBoLCBsaS5N c29MaXN0UGFyYWdyYXBoLCBkaXYuTXNvTGlzdFBhcmFncmFwaA0KCXttc28tc3R5bGUtcHJpb3Jp dHk6MzQ7DQoJbWFyZ2luLXRvcDowY207DQoJbWFyZ2luLXJpZ2h0OjBjbTsNCgltYXJnaW4tYm90 dG9tOjBjbTsNCgltYXJnaW4tbGVmdDozNi4wcHQ7DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0K CWZvbnQtc2l6ZToxMi4wcHQ7DQoJZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiIsInNlcmlm Ijt9DQpzcGFuLkVtYWlsU3R5bGUxNw0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbC1yZXBseTsN Cglmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMtc2VyaWYiOw0KCWNvbG9yOiMxRjQ5N0Q7fQ0K Lk1zb0NocERlZmF1bHQNCgl7bXNvLXN0eWxlLXR5cGU6ZXhwb3J0LW9ubHk7DQoJZm9udC1mYW1p bHk6IkNhbGlicmkiLCJzYW5zLXNlcmlmIjsNCgltc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUzt9 DQpAcGFnZSBXb3JkU2VjdGlvbjENCgl7c2l6ZTo2MTIuMHB0IDc5Mi4wcHQ7DQoJbWFyZ2luOjcw Ljg1cHQgNzAuODVwdCA3MC44NXB0IDcwLjg1cHQ7fQ0KZGl2LldvcmRTZWN0aW9uMQ0KCXtwYWdl OldvcmRTZWN0aW9uMTt9DQovKiBMaXN0IERlZmluaXRpb25zICovDQpAbGlzdCBsMA0KCXttc28t bGlzdC1pZDozNTgwOTE2Njc7DQoJbXNvLWxpc3QtdHlwZTpoeWJyaWQ7DQoJbXNvLWxpc3QtdGVt cGxhdGUtaWRzOjcxMDA3MjQ2MiA2Nzg5NTMxMyA2Nzg5NTMyMSA2Nzg5NTMyMyA2Nzg5NTMxMSA2 Nzg5NTMyMSA2Nzg5NTMyMyA2Nzg5NTMxMSA2Nzg5NTMyMSA2Nzg5NTMyMzt9DQpAbGlzdCBsMDps ZXZlbDENCgl7bXNvLWxldmVsLXRleHQ6IiUxXCkiOw0KCW1zby1sZXZlbC10YWItc3RvcDpub25l Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0 O30NCkBsaXN0IGwwOmxldmVsMg0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDphbHBoYS1sb3dl cjsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9u OmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDt9DQpAbGlzdCBsMDpsZXZlbDMNCgl7bXNvLWxl dmVsLW51bWJlci1mb3JtYXQ6cm9tYW4tbG93ZXI7DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7 DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpyaWdodDsNCgl0ZXh0LWluZGVudDotOS4wcHQ7 fQ0KQGxpc3QgbDA6bGV2ZWw0DQoJe21zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZl bC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0O30NCkBsaXN0IGww OmxldmVsNQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDphbHBoYS1sb3dlcjsNCgltc28tbGV2 ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4 dC1pbmRlbnQ6LTE4LjBwdDt9DQpAbGlzdCBsMDpsZXZlbDYNCgl7bXNvLWxldmVsLW51bWJlci1m b3JtYXQ6cm9tYW4tbG93ZXI7DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVs LW51bWJlci1wb3NpdGlvbjpyaWdodDsNCgl0ZXh0LWluZGVudDotOS4wcHQ7fQ0KQGxpc3QgbDA6 bGV2ZWw3DQoJe21zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9z aXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0O30NCkBsaXN0IGwwOmxldmVsOA0KCXtt c28tbGV2ZWwtbnVtYmVyLWZvcm1hdDphbHBoYS1sb3dlcjsNCgltc28tbGV2ZWwtdGFiLXN0b3A6 bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4 LjBwdDt9DQpAbGlzdCBsMDpsZXZlbDkNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6cm9tYW4t bG93ZXI7DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3Np dGlvbjpyaWdodDsNCgl0ZXh0LWluZGVudDotOS4wcHQ7fQ0Kb2wNCgl7bWFyZ2luLWJvdHRvbTow Y207fQ0KdWwNCgl7bWFyZ2luLWJvdHRvbTowY207fQ0KLS0+PC9zdHlsZT48IS0tW2lmIGd0ZSBt c28gOV0+PHhtbD4NCjxvOnNoYXBlZGVmYXVsdHMgdjpleHQ9ImVkaXQiIHNwaWRtYXg9IjEwMjYi IC8+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBl bGF5b3V0IHY6ZXh0PSJlZGl0Ij4NCjxvOmlkbWFwIHY6ZXh0PSJlZGl0IiBkYXRhPSIxIiAvPg0K PC9vOnNoYXBlbGF5b3V0PjwveG1sPjwhW2VuZGlmXS0tPg0KPC9oZWFkPg0KPGJvZHkgbGFuZz0i RlIiIGxpbms9ImJsdWUiIHZsaW5rPSJwdXJwbGUiPg0KPGRpdiBjbGFzcz0iV29yZFNlY3Rpb24x Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1z aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2Vy aWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+SGksPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xh c3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0 O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztj b2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNv Tm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMx RjQ5N0QiPldoYXQgSSBkaWQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoaXMgYWZmYWlyIDo8bzpw PjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1V UyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90 OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+ PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIiBzdHlsZT0idGV4dC1pbmRl bnQ6LTE4LjBwdDttc28tbGlzdDpsMCBsZXZlbDEgbGZvMSI+PCFbaWYgIXN1cHBvcnRMaXN0c10+ PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx dW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj48 c3BhbiBzdHlsZT0ibXNvLWxpc3Q6SWdub3JlIj4xKTxzcGFuIHN0eWxlPSJmb250OjcuMHB0ICZx dW90O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 DQo8L3NwYW4+PC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxl PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7 c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj5DaG93biBhbmQgY2htb2Qgb2YgJm5ic3A7 bXlob29rLnB5PGJyPg0KPGJyPg0KPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1z b0xpc3RQYXJhZ3JhcGgiIHN0eWxlPSJ0ZXh0LWluZGVudDotMTguMHB0O21zby1saXN0OmwwIGxl dmVsMSBsZm8xIj48IVtpZiAhc3VwcG9ydExpc3RzXT48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9 ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtz YW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxzcGFuIHN0eWxlPSJtc28tbGlzdDpJZ25v cmUiPjIpPHNwYW4gc3R5bGU9ImZvbnQ6Ny4wcHQgJnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7 Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsNCjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwh W2VuZGlmXT48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMx RjQ5N0QiPkRvbuKAmXQgdHJ5IHRvIHJ1biBpdCBmcm9tIHNoZWxsPGJyPg0KPGJyPg0KPG86cD48 L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiIHN0eWxlPSJ0ZXh0 LWluZGVudDotMTguMHB0O21zby1saXN0OmwwIGxldmVsMSBsZm8xIj48IVtpZiAhc3VwcG9ydExp c3RzXT48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5 N0QiPjxzcGFuIHN0eWxlPSJtc28tbGlzdDpJZ25vcmUiPjMpPHNwYW4gc3R5bGU9ImZvbnQ6Ny4w cHQgJnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsNCjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT48c3BhbiBsYW5nPSJFTi1VUyIg c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oywm cXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPlVwIHRvIG5vdywgJm5ic3A7SSBt YXkgYXZvaWQgdG8gcGxheSB3aXRoIGN1c3RvbSBwcm9wZXJ0aWVzLjxicj4NCiggQlRXLCAmbmJz cDtkbyB5b3Uga25vdyBob3cgLCB3aXRoaW4gbXlob29rLnB5ICwgb25lIG1heSByZXRyaWV2ZSB0 aGlzIGN1c3RvbSBwcm9wZXJ0eTxicj4NCiZuYnNwOyZuYnNwOyB0aGF0IHdpbGwgaW5kaWNhdGUg aWYgdGhlIGhvb2sgaGFzIHRvIGJlIGdvIGZ1cnRoZXIgb3IgbXVzdCBleGlzdCB3aXRob3V0IGRv aW5nIGFueXRoaW5nID8pPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h bCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5 OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdE Ij48YnI+DQpXaGF04oCZcyByZW1haW5pbmcgOjxicj4NCjxicj4NCjEpIGRlYnVnIHRoZSAucHkg PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0i RU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkm cXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4yKSBjaGVjayB3ZXRo ZXIsIGJ5IG1pZ3JhdGluZyB0aGUgR3Vlc3QgLCB0aGUgaG9vayBpcyBhbHNvIGNhbGxlZCBvbiB0 aGUgdGFyZ2V0IGhvc3QgJm5ic3A7KCBtYXliZSB5b3Uga25vdyB0aGUgYW5zd2VyJm5ic3A7Pyk8 bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJF Ti1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx dW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9v OnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIiBz dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZx dW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+VGhhdOKAmXMgYWxsLjxvOnA+PC9v OnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIiBz dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZx dW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3Nw YW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJm b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fu cy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj5SZWdhcmRzLDxvOnA+PC9vOnA+PC9zcGFuPjwv cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1z aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2Vy aWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAg Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEu MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90 Oztjb2xvcjojMUY0OTdEIj5KLlAuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1z b05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjoj MUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs Ij48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtUYWhv bWEmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+RGUmbmJzcDs6PC9zcGFuPjwvYj48c3Bh biBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtUYWhvbWEmcXVvdDss JnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+IEdpYW5sdWNhIENlY2NoaSBbbWFpbHRvOmdpYW5sdWNh LmNlY2NoaUBnbWFpbC5jb21dDQo8YnI+DQo8Yj5FbnZvecOpJm5ic3A7OjwvYj4gbWFyZGkgMTIg amFudmllciAyMDE2IDE5OjQyPGJyPg0KPGI+w4AmbmJzcDs6PC9iPiBKZWFuLVBpZXJyZSBSaWJl YXV2aWxsZTxicj4NCjxiPkNjJm5ic3A7OjwvYj4gdXNlcnNAb3ZpcnQub3JnPGJyPg0KPGI+T2Jq ZXQmbmJzcDs6PC9iPiBSZTogW292aXJ0LXVzZXJzXSBVc2VycyBEaWdlc3QsIFZvbCA1MiwgSXNz dWUgNzIgdmRzbSBob29rIGlzc3VlczxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJN c29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAg Y2xhc3M9Ik1zb05vcm1hbCI+T24gVHVlLCBKYW4gMTIsIDIwMTYgYXQgNTozMiBQTSwgSmVhbi1Q aWVycmUgUmliZWF1dmlsbGUgJmx0OzxhIGhyZWY9Im1haWx0bzpqcHJpYmVhdXZpbGxlQGF4d2F5 LmNvbSIgdGFyZ2V0PSJfYmxhbmsiPmpwcmliZWF1dmlsbGVAYXh3YXkuY29tPC9hPiZndDsgd3Jv dGU6PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWJv dHRvbToxMi4wcHQiPkhpLDxicj4NCjxicj4NCk15IHZkc20gaG9vayBpcyBub3cgaW52b2tlZC48 YnI+DQo8YnI+DQpVcCB0byBtZSB0byBkZWJ1ZyBpdC48YnI+DQo8YnI+DQpUaGFua3MgYSBsb3Qu PGJyPg0KPGJyPg0KSi5QLjxicj4NCjxicj4NCjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8cCBj bGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxw IGNsYXNzPSJNc29Ob3JtYWwiPkkgZG9uJ3QgdW5kZXJzdGFuZCBhdCB0aGUgZW5kIHdoYXQgeW91 IGhhZCB0byBjaGFuZ2U6IGZyb20geW91ciBwcmV2aW91cyBtZXNzYWdlcyBpdCByZXN1bHRlZCB0 aGF0IGFsbCB0aGluZ3MgcmVxdWVzdGVkIHdlcmUgaW4gcGxhY2UgYWxyZWFkeS4uLi48bzpwPjwv bzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRoYW5rcyw8bzpw PjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkdpYW5sdWNh PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2JvZHk+DQo8L2h0bWw+ DQo= --_000_1051EFB4D3A1704680C38CCAAC5836D292F024FCWPTXMAIL2ptxaxw_--

On Tue, Jan 12, 2016 at 2:35 PM, Jean-Pierre Ribeauville < jpribeauville@axway.com> wrote:
Hi,
What I did from the beginning of this affair :
1) Chown and chmod of myhook.py
2) Don’t try to run it from shell
3) Up to now, I may avoid to play with custom properties. ( BTW, do you know how , within myhook.py , one may retrieve this custom property that will indicate if the hook has to be go further or must exist without doing anything ?)
This is documented on the hooks wiki page and in github. The basic idea is to add a custom property to a VM with specific text, and check for it in the hook. If you detect it, apply hook to VM, if not - pass
What’s remaining :
1) debug the .py
2) check wether, by migrating the Guest , the hook is also called on the target host ( maybe you know the answer ?)
before_vm_migrate_source and before_vm_migrate_destination - also documented in the wiki. Generally, just follow an existing hook, it should have everything
That’s all.
Regards,
J.P.
*De :* Gianluca Cecchi [mailto:gianluca.cecchi@gmail.com] *Envoyé :* mardi 12 janvier 2016 19:42 *À :* Jean-Pierre Ribeauville *Cc :* users@ovirt.org *Objet :* Re: [ovirt-users] Users Digest, Vol 52, Issue 72 vdsm hook issues
On Tue, Jan 12, 2016 at 5:32 PM, Jean-Pierre Ribeauville < jpribeauville@axway.com> wrote:
Hi,
My vdsm hook is now invoked.
Up to me to debug it.
Thanks a lot.
J.P.
I don't understand at the end what you had to change: from your previous messages it resulted that all things requested were in place already....
Thanks,
Gianluca
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users

--_000_1051EFB4D3A1704680C38CCAAC5836D292F02536WPTXMAIL2ptxaxw_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 UGVyZmVjdC4NCg0KVGhhbmtzLg0KDQpEZSA6IERhbiBZYXNueSBbbWFpbHRvOmR5YXNueUBnbWFp bC5jb21dDQpFbnZvecOpIDogbWFyZGkgMTIgamFudmllciAyMDE2IDIwOjUxDQrDgCA6IEplYW4t UGllcnJlIFJpYmVhdXZpbGxlDQpDYyA6IEdpYW5sdWNhIENlY2NoaTsgdXNlcnNAb3ZpcnQub3Jn DQpPYmpldCA6IFJlOiBbb3ZpcnQtdXNlcnNdIFVzZXJzIERpZ2VzdCwgVm9sIDUyLCBJc3N1ZSA3 MiB2ZHNtIGhvb2sgaXNzdWVzDQoNCg0KDQpPbiBUdWUsIEphbiAxMiwgMjAxNiBhdCAyOjM1IFBN LCBKZWFuLVBpZXJyZSBSaWJlYXV2aWxsZSA8anByaWJlYXV2aWxsZUBheHdheS5jb208bWFpbHRv OmpwcmliZWF1dmlsbGVAYXh3YXkuY29tPj4gd3JvdGU6DQpIaSwNCg0KV2hhdCBJIGRpZCBmcm9t IHRoZSBiZWdpbm5pbmcgb2YgdGhpcyBhZmZhaXIgOg0KDQoNCjEpICAgICAgQ2hvd24gYW5kIGNo bW9kIG9mICBteWhvb2sucHkNCg0KMikgICAgICBEb27igJl0IHRyeSB0byBydW4gaXQgZnJvbSBz aGVsbA0KDQozKSAgICAgIFVwIHRvIG5vdywgIEkgbWF5IGF2b2lkIHRvIHBsYXkgd2l0aCBjdXN0 b20gcHJvcGVydGllcy4NCiggQlRXLCAgZG8geW91IGtub3cgaG93ICwgd2l0aGluIG15aG9vay5w eSAsIG9uZSBtYXkgcmV0cmlldmUgdGhpcyBjdXN0b20gcHJvcGVydHkNCiAgIHRoYXQgd2lsbCBp bmRpY2F0ZSBpZiB0aGUgaG9vayBoYXMgdG8gYmUgZ28gZnVydGhlciBvciBtdXN0IGV4aXN0IHdp dGhvdXQgZG9pbmcgYW55dGhpbmcgPykNCg0KDQpUaGlzIGlzIGRvY3VtZW50ZWQgb24gdGhlIGhv b2tzIHdpa2kgcGFnZSBhbmQgaW4gZ2l0aHViLiBUaGUgYmFzaWMgaWRlYSBpcyB0byBhZGQgYSBj dXN0b20gcHJvcGVydHkgdG8gYSBWTSB3aXRoIHNwZWNpZmljIHRleHQsIGFuZCBjaGVjayBmb3Ig aXQgaW4gdGhlIGhvb2suIElmIHlvdSBkZXRlY3QgaXQsIGFwcGx5IGhvb2sgdG8gVk0sIGlmIG5v dCAtIHBhc3MNCg0KV2hhdOKAmXMgcmVtYWluaW5nIDoNCg0KMSkgZGVidWcgdGhlIC5weQ0KMikg Y2hlY2sgd2V0aGVyLCBieSBtaWdyYXRpbmcgdGhlIEd1ZXN0ICwgdGhlIGhvb2sgaXMgYWxzbyBj YWxsZWQgb24gdGhlIHRhcmdldCBob3N0ICAoIG1heWJlIHlvdSBrbm93IHRoZSBhbnN3ZXIgPykN Cg0KYmVmb3JlX3ZtX21pZ3JhdGVfc291cmNlIGFuZCBiZWZvcmVfdm1fbWlncmF0ZV9kZXN0aW5h dGlvbiAtIGFsc28gZG9jdW1lbnRlZCBpbiB0aGUgd2lraS4NCg0KR2VuZXJhbGx5LCBqdXN0IGZv bGxvdyBhbiBleGlzdGluZyBob29rLCBpdCBzaG91bGQgaGF2ZSBldmVyeXRoaW5nDQoNCg0KVGhh dOKAmXMgYWxsLg0KDQpSZWdhcmRzLA0KDQpKLlAuDQoNCkRlIDogR2lhbmx1Y2EgQ2VjY2hpIFtt YWlsdG86Z2lhbmx1Y2EuY2VjY2hpQGdtYWlsLmNvbTxtYWlsdG86Z2lhbmx1Y2EuY2VjY2hpQGdt YWlsLmNvbT5dDQpFbnZvecOpIDogbWFyZGkgMTIgamFudmllciAyMDE2IDE5OjQyDQrDgCA6IEpl YW4tUGllcnJlIFJpYmVhdXZpbGxlDQpDYyA6IHVzZXJzQG92aXJ0Lm9yZzxtYWlsdG86dXNlcnNA b3ZpcnQub3JnPg0KT2JqZXQgOiBSZTogW292aXJ0LXVzZXJzXSBVc2VycyBEaWdlc3QsIFZvbCA1 MiwgSXNzdWUgNzIgdmRzbSBob29rIGlzc3Vlcw0KDQpPbiBUdWUsIEphbiAxMiwgMjAxNiBhdCA1 OjMyIFBNLCBKZWFuLVBpZXJyZSBSaWJlYXV2aWxsZSA8anByaWJlYXV2aWxsZUBheHdheS5jb208 bWFpbHRvOmpwcmliZWF1dmlsbGVAYXh3YXkuY29tPj4gd3JvdGU6DQpIaSwNCg0KTXkgdmRzbSBo b29rIGlzIG5vdyBpbnZva2VkLg0KDQpVcCB0byBtZSB0byBkZWJ1ZyBpdC4NCg0KVGhhbmtzIGEg bG90Lg0KDQpKLlAuDQoNCkkgZG9uJ3QgdW5kZXJzdGFuZCBhdCB0aGUgZW5kIHdoYXQgeW91IGhh ZCB0byBjaGFuZ2U6IGZyb20geW91ciBwcmV2aW91cyBtZXNzYWdlcyBpdCByZXN1bHRlZCB0aGF0 IGFsbCB0aGluZ3MgcmVxdWVzdGVkIHdlcmUgaW4gcGxhY2UgYWxyZWFkeS4uLi4NClRoYW5rcywN CkdpYW5sdWNhDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fDQpVc2VycyBtYWlsaW5nIGxpc3QNClVzZXJzQG92aXJ0Lm9yZzxtYWlsdG86VXNlcnNAb3Zp cnQub3JnPg0KaHR0cDovL2xpc3RzLm92aXJ0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3VzZXJzDQoN Cg== --_000_1051EFB4D3A1704680C38CCAAC5836D292F02536WPTXMAIL2ptxaxw_ Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTQgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6 Q2FsaWJyaTsNCglwYW5vc2UtMToyIDE1IDUgMiAyIDIgNCAzIDIgNDt9DQpAZm9udC1mYWNlDQoJ e2ZvbnQtZmFtaWx5OlRhaG9tYTsNCglwYW5vc2UtMToyIDExIDYgNCAzIDUgNCA0IDIgNDt9DQov KiBTdHlsZSBEZWZpbml0aW9ucyAqLw0KcC5Nc29Ob3JtYWwsIGxpLk1zb05vcm1hbCwgZGl2Lk1z b05vcm1hbA0KCXttYXJnaW46MGNtOw0KCW1hcmdpbi1ib3R0b206LjAwMDFwdDsNCglmb250LXNp emU6MTIuMHB0Ow0KCWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iLCJzZXJpZiI7fQ0KYTps aW5rLCBzcGFuLk1zb0h5cGVybGluaw0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6 Ymx1ZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30NCmE6dmlzaXRlZCwgc3Bhbi5Nc29I eXBlcmxpbmtGb2xsb3dlZA0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6cHVycGxl Ow0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KcA0KCXttc28tc3R5bGUtcHJpb3JpdHk6 OTk7DQoJbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87DQoJbWFyZ2luLXJpZ2h0OjBjbTsNCgltc28t bWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsNCgltYXJnaW4tbGVmdDowY207DQoJZm9udC1zaXplOjEy LjBwdDsNCglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIiwic2VyaWYiO30NCnAuTXNvQWNl dGF0ZSwgbGkuTXNvQWNldGF0ZSwgZGl2Lk1zb0FjZXRhdGUNCgl7bXNvLXN0eWxlLXByaW9yaXR5 Ojk5Ow0KCW1zby1zdHlsZS1saW5rOiJUZXh0ZSBkZSBidWxsZXMgQ2FyIjsNCgltYXJnaW46MGNt Ow0KCW1hcmdpbi1ib3R0b206LjAwMDFwdDsNCglmb250LXNpemU6OC4wcHQ7DQoJZm9udC1mYW1p bHk6IlRhaG9tYSIsInNhbnMtc2VyaWYiO30NCnNwYW4uVGV4dGVkZWJ1bGxlc0Nhcg0KCXttc28t c3R5bGUtbmFtZToiVGV4dGUgZGUgYnVsbGVzIENhciI7DQoJbXNvLXN0eWxlLXByaW9yaXR5Ojk5 Ow0KCW1zby1zdHlsZS1saW5rOiJUZXh0ZSBkZSBidWxsZXMiOw0KCWZvbnQtZmFtaWx5OiJUYWhv bWEiLCJzYW5zLXNlcmlmIjsNCgltc28tZmFyZWFzdC1sYW5ndWFnZTpGUjt9DQpzcGFuLkVtYWls U3R5bGUyMA0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbC1yZXBseTsNCglmb250LWZhbWlseToi Q2FsaWJyaSIsInNhbnMtc2VyaWYiOw0KCWNvbG9yOiMxRjQ5N0Q7fQ0KLk1zb0NocERlZmF1bHQN Cgl7bXNvLXN0eWxlLXR5cGU6ZXhwb3J0LW9ubHk7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLCJz YW5zLXNlcmlmIjsNCgltc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUzt9DQpAcGFnZSBXb3JkU2Vj dGlvbjENCgl7c2l6ZTo2MTIuMHB0IDc5Mi4wcHQ7DQoJbWFyZ2luOjcwLjg1cHQgNzAuODVwdCA3 MC44NXB0IDcwLjg1cHQ7fQ0KZGl2LldvcmRTZWN0aW9uMQ0KCXtwYWdlOldvcmRTZWN0aW9uMTt9 DQotLT48L3N0eWxlPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86c2hhcGVkZWZhdWx0cyB2 OmV4dD0iZWRpdCIgc3BpZG1heD0iMTAyNiIgLz4NCjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYg Z3RlIG1zbyA5XT48eG1sPg0KPG86c2hhcGVsYXlvdXQgdjpleHQ9ImVkaXQiPg0KPG86aWRtYXAg djpleHQ9ImVkaXQiIGRhdGE9IjEiIC8+DQo8L286c2hhcGVsYXlvdXQ+PC94bWw+PCFbZW5kaWZd LS0+DQo8L2hlYWQ+DQo8Ym9keSBsYW5nPSJGUiIgbGluaz0iYmx1ZSIgdmxpbms9InB1cnBsZSI+ DQo8ZGl2IGNsYXNzPSJXb3JkU2VjdGlvbjEiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oywm cXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPlBlcmZlY3QuPG86cD48L286cD48 L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1 b3Q7O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNz PSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx dW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj5U aGFua3MuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oywm cXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9z cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6 MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O1RhaG9tYSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1 b3Q7Ij5EZSZuYnNwOzo8L3NwYW4+PC9iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2Zv bnQtZmFtaWx5OiZxdW90O1RhaG9tYSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij4gRGFu IFlhc255IFttYWlsdG86ZHlhc255QGdtYWlsLmNvbV0NCjxicj4NCjxiPkVudm95w6kmbmJzcDs6 PC9iPiBtYXJkaSAxMiBqYW52aWVyIDIwMTYgMjA6NTE8YnI+DQo8Yj7DgCZuYnNwOzo8L2I+IEpl YW4tUGllcnJlIFJpYmVhdXZpbGxlPGJyPg0KPGI+Q2MmbmJzcDs6PC9iPiBHaWFubHVjYSBDZWNj aGk7IHVzZXJzQG92aXJ0Lm9yZzxicj4NCjxiPk9iamV0Jm5ic3A7OjwvYj4gUmU6IFtvdmlydC11 c2Vyc10gVXNlcnMgRGlnZXN0LCBWb2wgNTIsIElzc3VlIDcyIHZkc20gaG9vayBpc3N1ZXM8bzpw PjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpw PjwvcD4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4N CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxkaXY+ DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5PbiBUdWUsIEphbiAxMiwgMjAxNiBhdCAyOjM1IFBNLCBK ZWFuLVBpZXJyZSBSaWJlYXV2aWxsZSAmbHQ7PGEgaHJlZj0ibWFpbHRvOmpwcmliZWF1dmlsbGVA YXh3YXkuY29tIiB0YXJnZXQ9Il9ibGFuayI+anByaWJlYXV2aWxsZUBheHdheS5jb208L2E+Jmd0 OyB3cm90ZTo8bzpwPjwvbzpwPjwvcD4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h bCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDph dXRvIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5 N0QiPkhpLDwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxl PSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNw YW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90 O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4mbmJz cDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNv LW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxh bmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp YnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+V2hhdCBJIGRp ZCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhpcyBhZmZhaXIgOjwvc3Bhbj48bzpwPjwvbzpwPjwv cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bztt c28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250 LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1z ZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8 cCBzdHlsZT0ibWFyZ2luLWJvdHRvbToxMi4wcHQiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0i Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3Nh bnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+MSk8L3NwYW4+PHNwYW4gbGFuZz0iRU4tVVMi IHN0eWxlPSJmb250LXNpemU6Ny4wcHQ7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6 MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZx dW90Oztjb2xvcjojMUY0OTdEIj5DaG93biBhbmQgY2htb2Qgb2YgJm5ic3A7bXlob29rLnB5PC9z cGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgc3R5bGU9Im1hcmdpbi1ib3R0b206MTIuMHB0Ij48c3Bh biBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7 Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjIpPC9z cGFuPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjcuMHB0O2NvbG9yOiMxRjQ5 N0QiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOw0KPC9zcGFuPjxzcGFuIGxhbmc9IkVO LVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1 b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+RG9u4oCZdCB0cnkgdG8g cnVuIGl0IGZyb20gc2hlbGw8L3NwYW4+PG86cD48L286cD48L3A+DQo8cD48c3BhbiBsYW5nPSJF Ti1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx dW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjMpPC9zcGFuPjxzcGFu IGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjcuMHB0O2NvbG9yOiMxRjQ5N0QiPiZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOw0KPC9zcGFuPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHls ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90 O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+VXAgdG8gbm93LCAmbmJzcDtJIG1heSBh dm9pZCB0byBwbGF5IHdpdGggY3VzdG9tIHByb3BlcnRpZXMuPGJyPg0KKCBCVFcsICZuYnNwO2Rv IHlvdSBrbm93IGhvdyAsIHdpdGhpbiBteWhvb2sucHkgLCBvbmUgbWF5IHJldHJpZXZlIHRoaXMg Y3VzdG9tIHByb3BlcnR5PGJyPg0KJm5ic3A7Jm5ic3A7IHRoYXQgd2lsbCBpbmRpY2F0ZSBpZiB0 aGUgaG9vayBoYXMgdG8gYmUgZ28gZnVydGhlciBvciBtdXN0IGV4aXN0IHdpdGhvdXQgZG9pbmcg YW55dGhpbmcgPyk8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBz dHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8i PjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i TXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNz PSJNc29Ob3JtYWwiPlRoaXMgaXMgZG9jdW1lbnRlZCBvbiB0aGUgaG9va3Mgd2lraSBwYWdlIGFu ZCBpbiBnaXRodWIuIFRoZSBiYXNpYyBpZGVhIGlzIHRvIGFkZCBhIGN1c3RvbSBwcm9wZXJ0eSB0 byBhIFZNIHdpdGggc3BlY2lmaWMgdGV4dCwgYW5kIGNoZWNrIGZvciBpdCBpbiB0aGUgaG9vay4g SWYgeW91IGRldGVjdCBpdCwgYXBwbHkgaG9vayB0byBWTSwgaWYgbm90IC0gcGFzczxvOnA+PC9v OnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48 L286cD48L3A+DQo8L2Rpdj4NCjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXIt bGVmdDpzb2xpZCAjQ0NDQ0NDIDEuMHB0O3BhZGRpbmc6MGNtIDBjbSAwY20gNi4wcHQ7bWFyZ2lu LWxlZnQ6NC44cHQ7bWFyZ2luLXJpZ2h0OjBjbSI+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJN c29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRv bS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xv cjojMUY0OTdEIj5XaGF04oCZcyByZW1haW5pbmcgOjxicj4NCjxicj4NCjEpIGRlYnVnIHRoZSAu cHkgPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1z by1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBs YW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs aWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjIpIGNoZWNr IHdldGhlciwgYnkgbWlncmF0aW5nIHRoZSBHdWVzdCAsIHRoZSBob29rIGlzIGFsc28gY2FsbGVk IG9uIHRoZSB0YXJnZXQgaG9zdA0KICZuYnNwOyggbWF5YmUgeW91IGtub3cgdGhlIGFuc3dlciZu YnNwOz8pPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90 ZT4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwv ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPmJlZm9yZV92bV9taWdyYXRlX3NvdXJj ZSBhbmQgYmVmb3JlX3ZtX21pZ3JhdGVfZGVzdGluYXRpb24gLSBhbHNvIGRvY3VtZW50ZWQgaW4g dGhlIHdpa2kuJm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i TXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNz PSJNc29Ob3JtYWwiPkdlbmVyYWxseSwganVzdCBmb2xsb3cgYW4gZXhpc3RpbmcgaG9vaywgaXQg c2hvdWxkIGhhdmUgZXZlcnl0aGluZzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAg Y2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxibG9ja3F1 b3RlIHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCAjQ0NDQ0NDIDEuMHB0O3Bh ZGRpbmc6MGNtIDBjbSAwY20gNi4wcHQ7bWFyZ2luLWxlZnQ6NC44cHQ7bWFyZ2luLXJpZ2h0OjBj bSI+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2lu LXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4t VVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv dDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86 cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3At YWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLVVTIiBz dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZx dW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+VGhhdOKAmXMgYWxsLjwvc3Bhbj48 bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRv cC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tVVMi IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss JnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48 L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0 OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHls ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90 O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+UmVnYXJkcyw8L3NwYW4+PG86cD48L286 cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1 dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0i Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3Nh bnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9w Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21z by1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQt c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNl cmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPkouUC48L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBj bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdp bi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjEx LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVv dDs7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9 Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90 dG9tLWFsdDphdXRvIj48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWls eTomcXVvdDtUYWhvbWEmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+RGUmbmJzcDs6PC9z cGFuPjwvYj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtU YWhvbWEmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+IEdpYW5sdWNhIENlY2NoaSBbbWFp bHRvOjxhIGhyZWY9Im1haWx0bzpnaWFubHVjYS5jZWNjaGlAZ21haWwuY29tIiB0YXJnZXQ9Il9i bGFuayI+Z2lhbmx1Y2EuY2VjY2hpQGdtYWlsLmNvbTwvYT5dDQo8YnI+DQo8Yj5FbnZvecOpJm5i c3A7OjwvYj4gbWFyZGkgMTIgamFudmllciAyMDE2IDE5OjQyPGJyPg0KPGI+w4AmbmJzcDs6PC9i PiBKZWFuLVBpZXJyZSBSaWJlYXV2aWxsZTxicj4NCjxiPkNjJm5ic3A7OjwvYj4gPGEgaHJlZj0i bWFpbHRvOnVzZXJzQG92aXJ0Lm9yZyIgdGFyZ2V0PSJfYmxhbmsiPnVzZXJzQG92aXJ0Lm9yZzwv YT48YnI+DQo8Yj5PYmpldCZuYnNwOzo8L2I+IFJlOiBbb3ZpcnQtdXNlcnNdIFVzZXJzIERpZ2Vz dCwgVm9sIDUyLCBJc3N1ZSA3MiB2ZHNtIGhvb2sgaXNzdWVzPC9zcGFuPjxvOnA+PC9vOnA+PC9w Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21z by1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxkaXY+DQo8 ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1h bHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+T24gVHVlLCBKYW4gMTIsIDIwMTYg YXQgNTozMiBQTSwgSmVhbi1QaWVycmUgUmliZWF1dmlsbGUgJmx0OzxhIGhyZWY9Im1haWx0bzpq cHJpYmVhdXZpbGxlQGF4d2F5LmNvbSIgdGFyZ2V0PSJfYmxhbmsiPmpwcmliZWF1dmlsbGVAYXh3 YXkuY29tPC9hPiZndDsgd3JvdGU6PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs IiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bWFyZ2luLWJvdHRvbToxMi4wcHQiPkhp LDxicj4NCjxicj4NCk15IHZkc20gaG9vayBpcyBub3cgaW52b2tlZC48YnI+DQo8YnI+DQpVcCB0 byBtZSB0byBkZWJ1ZyBpdC48YnI+DQo8YnI+DQpUaGFua3MgYSBsb3QuPGJyPg0KPGJyPg0KSi5Q LjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNv LW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPiZuYnNwOzxv OnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9 Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj5JIGRv bid0IHVuZGVyc3RhbmQgYXQgdGhlIGVuZCB3aGF0IHlvdSBoYWQgdG8gY2hhbmdlOiBmcm9tIHlv dXIgcHJldmlvdXMgbWVzc2FnZXMgaXQgcmVzdWx0ZWQgdGhhdCBhbGwgdGhpbmdzIHJlcXVlc3Rl ZCB3ZXJlIGluIHBsYWNlIGFscmVhZHkuLi4uPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+ DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNv LW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPlRoYW5rcyw8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0 bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+R2lhbmx1Y2E8bzpwPjwvbzpwPjwvcD4NCjwv ZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9 Im1hcmdpbi1ib3R0b206MTIuMHB0Ij48YnI+DQpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXzxicj4NClVzZXJzIG1haWxpbmcgbGlzdDxicj4NCjxhIGhyZWY9 Im1haWx0bzpVc2Vyc0BvdmlydC5vcmciPlVzZXJzQG92aXJ0Lm9yZzwvYT48YnI+DQo8YSBocmVm PSJodHRwOi8vbGlzdHMub3ZpcnQub3JnL21haWxtYW4vbGlzdGluZm8vdXNlcnMiIHRhcmdldD0i X2JsYW5rIj5odHRwOi8vbGlzdHMub3ZpcnQub3JnL21haWxtYW4vbGlzdGluZm8vdXNlcnM8L2E+ PG86cD48L286cD48L3A+DQo8L2Jsb2NrcXVvdGU+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt YWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ib2R5 Pg0KPC9odG1sPg0K --_000_1051EFB4D3A1704680C38CCAAC5836D292F02536WPTXMAIL2ptxaxw_--
participants (3)
-
Dan Yasny
-
Gianluca Cecchi
-
Jean-Pierre Ribeauville