From kripper at imatronix.cl Wed Oct 14 08:31:50 2015 Content-Type: multipart/mixed; boundary="===============7349936304711377790==" MIME-Version: 1.0 From: Christopher Pereira To: devel at ovirt.org Subject: Re: [ovirt-devel] OVF_STORE volumes are not updated Date: Wed, 14 Oct 2015 09:26:48 -0300 Message-ID: <561E4A08.5000608@imatronix.cl> In-Reply-To: 18823340.54251509.1444825305017.JavaMail.zimbra@redhat.com --===============7349936304711377790== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable This is a multi-part message in MIME format. --------------050708030208070405020402 Content-Type: text/plain; charset=3Dutf-8; format=3Dflowed Content-Transfer-Encoding: 7bit Ok. I will do some tests reducing OvfUpdateIntervalInMinutes and check = if OVF_STORE is updated when a new snapshot is created. Thanks. On 14-10-2015 9:21, Maor Lipchuk wrote: > You don't have to detach the Storage Domain to refresh the OVF_STORE, but= instead move it to only to maintenance. > You can also change the interval value OvfUpdateIntervalInMinutes in the = vdc_options table which is by default executes every 60 minutes and sync th= e OVF_STORE disk with the VMs' and Templates' data. > > Regards, > Maor > > > ----- Original Message ----- >> From: "Christopher Pereira" >> To: "Allon Mureinik" >> Cc: devel(a)ovirt.org >> Sent: Wednesday, October 14, 2015 2:53:49 PM >> Subject: Re: [ovirt-devel] OVF_STORE volumes are not updated >> >> Yes. >> >> On 14-10-2015 8:48, Allon Mureinik wrote: >> >> >> >> This is what we discussed on BZ#1268842, right? >> >> On Mon, Oct 5, 2015 at 11:35 AM, Christopher Pereira < kripper(a)imatron= ix.cl > >> wrote: >> >> >> Hi, >> >> I noticed that OVF_STORE volumes are not generated periodically as expec= ted >> [1]. >> It seems like the OVF_STORE volumes are only generated when the Storage >> Domain is detached from Engine, which is not feasible if we want to keep= the >> VMs running. >> >> 1) Is there any way to force the OVF_STORE volume creation without detac= hing >> the Storage Domain? >> >> This would be very usefull for disaster recovery, since Storage Domains = can >> be backed up and VM can be reimported. >> But if the OVF_STORE volumes are not updated, critical information like = the >> ID of the VM active snapshot will get lost. >> If the VM is restored with a previous snapshot (not the last one), all >> information written after the last snapshot known by the OVF_STORE will = get >> lost. >> >> 2) On the other hand, the only way I know to re-read the OVF_STORE conte= nt >> with the VM information contained in a Storage Domain, is by detaching a= nd >> re-attaching it. >> I wonder if there is also any way to re-read the OVF_STORE? >> >> [1] : This can be verified very easily by changing a running VM properti= es >> (change its name or create a snapshot), copying the whole storage domain= and >> importing it into another Engine (POOL_UID and CHECKSUM must be removed = from >> metadata in order to be able to attach to another Datacenter). >> >> PS: I'm on 3.6 RC. 1. >> _______________________________________________ >> Devel mailing list >> Devel(a)ovirt.org >> http://lists.ovirt.org/mailman/listinfo/devel >> >> >> >> >> >> _______________________________________________ >> Devel mailing list >> Devel(a)ovirt.org >> http://lists.ovirt.org/mailman/listinfo/devel --------------050708030208070405020402 Content-Type: text/html; charset=3Dutf-8 Content-Transfer-Encoding: 7bit Ok. I will do some tests reducing OvfUpdateIntervalInMinutes and check if OVF_STORE is updated when a new snapshot is created.
Thanks.

On 14-10-2015 9:21, Maor Lipchuk wrote:<= br>
You don't have to detach the Storage Domain to refresh=
 the OVF_STORE, but instead move it to only to maintenance.
You can also change the interval value OvfUpdateIntervalInMinutes in the vd=
c_options table which is by default executes every 60 minutes and sync the =
OVF_STORE disk with the VMs' and Templates' data.

Regards,
Maor


----- Original Message -----
From: "Christopher Pereira" <kripper(a)imatronix.c=
l>
To: "Allon Mureinik" <amureini(a)redhat.com>
Cc: devel(a)ovirt.org
Sent: Wednesday, October 14, 2015 2:53:49 PM
Subject: Re: [ovirt-devel] OVF_STORE volumes are not updated

Yes.

On 14-10-2015 8:48, Allon Mureinik wrote:



This is what we discussed on BZ#1268842, right?

On Mon, Oct 5, 2015 at 11:35 AM, Christopher Pereira < kripper(a)imatr=
onix.cl >
wrote:


Hi,

I noticed that OVF_STORE volumes are not generated periodically as expected
[1].
It seems like the OVF_STORE volumes are only generated when the Storage
Domain is detached from Engine, which is not feasible if we want to keep the
VMs running.

1) Is there any way to force the OVF_STORE volume creation without detaching
the Storage Domain?

This would be very usefull for disaster recovery, since Storage Domains can
be backed up and VM can be reimported.
But if the OVF_STORE volumes are not updated, critical information like the
ID of the VM active snapshot will get lost.
If the VM is restored with a previous snapshot (not the last one), all
information written after the last snapshot known by the OVF_STORE will get
lost.

2) On the other hand, the only way I know to re-read the OVF_STORE content
with the VM information contained in a Storage Domain, is by detaching and
re-attaching it.
I wonder if there is also any way to re-read the OVF_STORE?

[1] : This can be verified very easily by changing a running VM properties
(change its name or create a snapshot), copying the whole storage domain and
importing it into another Engine (POOL_UID and CHECKSUM must be removed from
metadata in order to be able to attach to another Datacenter).

PS: I'm on 3.6 RC. 1.
_______________________________________________
Devel mailing list
Dev=
el(a)ovirt.org
http://lists.ovirt.org/mailman/listinfo/devel





_______________________________________________
Devel mailing list
Dev=
el(a)ovirt.org
http://lists.ovirt.org/mailman/listinfo/devel

    

--------------050708030208070405020402-- --===============7349936304711377790== Content-Type: multipart/alternative MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.bin" VGhpcyBpcyBhIG11bHRpLXBhcnQgbWVzc2FnZSBpbiBNSU1FIGZvcm1hdC4KLS0tLS0tLS0tLS0t LS0wNTA3MDgwMzAyMDgwNzA0MDUwMjA0MDIKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFy c2V0PXV0Zi04OyBmb3JtYXQ9Zmxvd2VkCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQK Ck9rLiBJIHdpbGwgZG8gc29tZSB0ZXN0cyByZWR1Y2luZyBPdmZVcGRhdGVJbnRlcnZhbEluTWlu dXRlcyBhbmQgY2hlY2sgCmlmIE9WRl9TVE9SRSBpcyB1cGRhdGVkIHdoZW4gYSBuZXcgc25hcHNo b3QgaXMgY3JlYXRlZC4KVGhhbmtzLgoKT24gMTQtMTAtMjAxNSA5OjIxLCBNYW9yIExpcGNodWsg d3JvdGU6Cj4gWW91IGRvbid0IGhhdmUgdG8gZGV0YWNoIHRoZSBTdG9yYWdlIERvbWFpbiB0byBy ZWZyZXNoIHRoZSBPVkZfU1RPUkUsIGJ1dCBpbnN0ZWFkIG1vdmUgaXQgdG8gb25seSB0byBtYWlu dGVuYW5jZS4KPiBZb3UgY2FuIGFsc28gY2hhbmdlIHRoZSBpbnRlcnZhbCB2YWx1ZSBPdmZVcGRh dGVJbnRlcnZhbEluTWludXRlcyBpbiB0aGUgdmRjX29wdGlvbnMgdGFibGUgd2hpY2ggaXMgYnkg ZGVmYXVsdCBleGVjdXRlcyBldmVyeSA2MCBtaW51dGVzIGFuZCBzeW5jIHRoZSBPVkZfU1RPUkUg ZGlzayB3aXRoIHRoZSBWTXMnIGFuZCBUZW1wbGF0ZXMnIGRhdGEuCj4KPiBSZWdhcmRzLAo+IE1h b3IKPgo+Cj4gLS0tLS0gT3JpZ2luYWwgTWVzc2FnZSAtLS0tLQo+PiBGcm9tOiAiQ2hyaXN0b3Bo ZXIgUGVyZWlyYSIgPGtyaXBwZXJAaW1hdHJvbml4LmNsPgo+PiBUbzogIkFsbG9uIE11cmVpbmlr IiA8YW11cmVpbmlAcmVkaGF0LmNvbT4KPj4gQ2M6IGRldmVsQG92aXJ0Lm9yZwo+PiBTZW50OiBX ZWRuZXNkYXksIE9jdG9iZXIgMTQsIDIwMTUgMjo1Mzo0OSBQTQo+PiBTdWJqZWN0OiBSZTogW292 aXJ0LWRldmVsXSBPVkZfU1RPUkUgdm9sdW1lcyBhcmUgbm90IHVwZGF0ZWQKPj4KPj4gWWVzLgo+ Pgo+PiBPbiAxNC0xMC0yMDE1IDg6NDgsIEFsbG9uIE11cmVpbmlrIHdyb3RlOgo+Pgo+Pgo+Pgo+ PiBUaGlzIGlzIHdoYXQgd2UgZGlzY3Vzc2VkIG9uIEJaIzEyNjg4NDIsIHJpZ2h0Pwo+Pgo+PiBP biBNb24sIE9jdCA1LCAyMDE1IGF0IDExOjM1IEFNLCBDaHJpc3RvcGhlciBQZXJlaXJhIDwga3Jp cHBlckBpbWF0cm9uaXguY2wgPgo+PiB3cm90ZToKPj4KPj4KPj4gSGksCj4+Cj4+IEkgbm90aWNl ZCB0aGF0IE9WRl9TVE9SRSB2b2x1bWVzIGFyZSBub3QgZ2VuZXJhdGVkIHBlcmlvZGljYWxseSBh cyBleHBlY3RlZAo+PiBbMV0uCj4+IEl0IHNlZW1zIGxpa2UgdGhlIE9WRl9TVE9SRSB2b2x1bWVz IGFyZSBvbmx5IGdlbmVyYXRlZCB3aGVuIHRoZSBTdG9yYWdlCj4+IERvbWFpbiBpcyBkZXRhY2hl ZCBmcm9tIEVuZ2luZSwgd2hpY2ggaXMgbm90IGZlYXNpYmxlIGlmIHdlIHdhbnQgdG8ga2VlcCB0 aGUKPj4gVk1zIHJ1bm5pbmcuCj4+Cj4+IDEpIElzIHRoZXJlIGFueSB3YXkgdG8gZm9yY2UgdGhl IE9WRl9TVE9SRSB2b2x1bWUgY3JlYXRpb24gd2l0aG91dCBkZXRhY2hpbmcKPj4gdGhlIFN0b3Jh Z2UgRG9tYWluPwo+Pgo+PiBUaGlzIHdvdWxkIGJlIHZlcnkgdXNlZnVsbCBmb3IgZGlzYXN0ZXIg cmVjb3ZlcnksIHNpbmNlIFN0b3JhZ2UgRG9tYWlucyBjYW4KPj4gYmUgYmFja2VkIHVwIGFuZCBW TSBjYW4gYmUgcmVpbXBvcnRlZC4KPj4gQnV0IGlmIHRoZSBPVkZfU1RPUkUgdm9sdW1lcyBhcmUg bm90IHVwZGF0ZWQsIGNyaXRpY2FsIGluZm9ybWF0aW9uIGxpa2UgdGhlCj4+IElEIG9mIHRoZSBW TSBhY3RpdmUgc25hcHNob3Qgd2lsbCBnZXQgbG9zdC4KPj4gSWYgdGhlIFZNIGlzIHJlc3RvcmVk IHdpdGggYSBwcmV2aW91cyBzbmFwc2hvdCAobm90IHRoZSBsYXN0IG9uZSksIGFsbAo+PiBpbmZv cm1hdGlvbiB3cml0dGVuIGFmdGVyIHRoZSBsYXN0IHNuYXBzaG90IGtub3duIGJ5IHRoZSBPVkZf U1RPUkUgd2lsbCBnZXQKPj4gbG9zdC4KPj4KPj4gMikgT24gdGhlIG90aGVyIGhhbmQsIHRoZSBv bmx5IHdheSBJIGtub3cgdG8gcmUtcmVhZCB0aGUgT1ZGX1NUT1JFIGNvbnRlbnQKPj4gd2l0aCB0 aGUgVk0gaW5mb3JtYXRpb24gY29udGFpbmVkIGluIGEgU3RvcmFnZSBEb21haW4sIGlzIGJ5IGRl dGFjaGluZyBhbmQKPj4gcmUtYXR0YWNoaW5nIGl0Lgo+PiBJIHdvbmRlciBpZiB0aGVyZSBpcyBh bHNvIGFueSB3YXkgdG8gcmUtcmVhZCB0aGUgT1ZGX1NUT1JFPwo+Pgo+PiBbMV0gOiBUaGlzIGNh biBiZSB2ZXJpZmllZCB2ZXJ5IGVhc2lseSBieSBjaGFuZ2luZyBhIHJ1bm5pbmcgVk0gcHJvcGVy dGllcwo+PiAoY2hhbmdlIGl0cyBuYW1lIG9yIGNyZWF0ZSBhIHNuYXBzaG90KSwgY29weWluZyB0 aGUgd2hvbGUgc3RvcmFnZSBkb21haW4gYW5kCj4+IGltcG9ydGluZyBpdCBpbnRvIGFub3RoZXIg RW5naW5lIChQT09MX1VJRCBhbmQgQ0hFQ0tTVU0gbXVzdCBiZSByZW1vdmVkIGZyb20KPj4gbWV0 YWRhdGEgaW4gb3JkZXIgdG8gYmUgYWJsZSB0byBhdHRhY2ggdG8gYW5vdGhlciBEYXRhY2VudGVy KS4KPj4KPj4gUFM6IEknbSBvbiAzLjYgUkMuIDEuCj4+IF9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCj4+IERldmVsIG1haWxpbmcgbGlzdAo+PiBEZXZlbEBv dmlydC5vcmcKPj4gaHR0cDovL2xpc3RzLm92aXJ0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RldmVs Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCj4+IERldmVsIG1haWxpbmcgbGlzdAo+PiBEZXZlbEBvdmlydC5vcmcKPj4gaHR0 cDovL2xpc3RzLm92aXJ0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RldmVsCgoKLS0tLS0tLS0tLS0t LS0wNTA3MDgwMzAyMDgwNzA0MDUwMjA0MDIKQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJz ZXQ9dXRmLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdAoKPGh0bWw+CiAgPGhlYWQ+ CiAgICA8bWV0YSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIGh0dHAtZXF1aXY9 IkNvbnRlbnQtVHlwZSI+CiAgPC9oZWFkPgogIDxib2R5IGJnY29sb3I9IiNGRkZGRkYiIHRleHQ9 IiMwMDAwMDAiPgogICAgT2suIEkgd2lsbCBkbyBzb21lIHRlc3RzIHJlZHVjaW5nIE92ZlVwZGF0 ZUludGVydmFsSW5NaW51dGVzIGFuZAogICAgY2hlY2sgaWYgT1ZGX1NUT1JFIGlzIHVwZGF0ZWQg d2hlbiBhIG5ldyBzbmFwc2hvdCBpcyBjcmVhdGVkLjxicj4KICAgIFRoYW5rcy48YnI+CiAgICA8 ZGl2IGNsYXNzPSJtb3otc2lnbmF0dXJlIj4KICAgICAgPHN0eWxlPgouc2lnbmF0dXJlLCAuc21h bGwtc2lnbmF0dXJlIHsKCWZvbnQtZmFtaWx5OiJDYWxpYnJpIiwic2Fucy1zZXJpZiI7bXNvLWZh cmVhc3QtZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiI7Cgljb2xvcjojN0Y3RjdGOwp9Cgou c2lnbmF0dXJlIHsKCWZvbnQtc2l6ZToxMHB0Owp9Cgouc21hbGwtc2lnbmF0dXJlIHsKCWZvbnQt c2l6ZTo4cHQ7Cn08L3N0eWxlPjxicj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0ibW96LWNp dGUtcHJlZml4Ij5PbiAxNC0xMC0yMDE1IDk6MjEsIE1hb3IgTGlwY2h1ayB3cm90ZTo8YnI+CiAg ICA8L2Rpdj4KICAgIDxibG9ja3F1b3RlCiAgICAgIGNpdGU9Im1pZDoxODgyMzM0MC41NDI1MTUw OS4xNDQ0ODI1MzA1MDE3LkphdmFNYWlsLnppbWJyYUByZWRoYXQuY29tIgogICAgICB0eXBlPSJj aXRlIj4KICAgICAgPHByZSB3cmFwPSIiPllvdSBkb24ndCBoYXZlIHRvIGRldGFjaCB0aGUgU3Rv cmFnZSBEb21haW4gdG8gcmVmcmVzaCB0aGUgT1ZGX1NUT1JFLCBidXQgaW5zdGVhZCBtb3ZlIGl0 IHRvIG9ubHkgdG8gbWFpbnRlbmFuY2UuCllvdSBjYW4gYWxzbyBjaGFuZ2UgdGhlIGludGVydmFs IHZhbHVlIE92ZlVwZGF0ZUludGVydmFsSW5NaW51dGVzIGluIHRoZSB2ZGNfb3B0aW9ucyB0YWJs ZSB3aGljaCBpcyBieSBkZWZhdWx0IGV4ZWN1dGVzIGV2ZXJ5IDYwIG1pbnV0ZXMgYW5kIHN5bmMg dGhlIE9WRl9TVE9SRSBkaXNrIHdpdGggdGhlIFZNcycgYW5kIFRlbXBsYXRlcycgZGF0YS4KClJl Z2FyZHMsCk1hb3IKCgotLS0tLSBPcmlnaW5hbCBNZXNzYWdlIC0tLS0tCjwvcHJlPgogICAgICA8 YmxvY2txdW90ZSB0eXBlPSJjaXRlIj4KICAgICAgICA8cHJlIHdyYXA9IiI+RnJvbTogIkNocmlz dG9waGVyIFBlcmVpcmEiIDxhIGNsYXNzPSJtb3otdHh0LWxpbmstcmZjMjM5NkUiIGhyZWY9Im1h aWx0bzprcmlwcGVyQGltYXRyb25peC5jbCI+Jmx0O2tyaXBwZXJAaW1hdHJvbml4LmNsJmd0Ozwv YT4KVG86ICJBbGxvbiBNdXJlaW5payIgPGEgY2xhc3M9Im1vei10eHQtbGluay1yZmMyMzk2RSIg aHJlZj0ibWFpbHRvOmFtdXJlaW5pQHJlZGhhdC5jb20iPiZsdDthbXVyZWluaUByZWRoYXQuY29t Jmd0OzwvYT4KQ2M6IDxhIGNsYXNzPSJtb3otdHh0LWxpbmstYWJicmV2aWF0ZWQiIGhyZWY9Im1h aWx0bzpkZXZlbEBvdmlydC5vcmciPmRldmVsQG92aXJ0Lm9yZzwvYT4KU2VudDogV2VkbmVzZGF5 LCBPY3RvYmVyIDE0LCAyMDE1IDI6NTM6NDkgUE0KU3ViamVjdDogUmU6IFtvdmlydC1kZXZlbF0g T1ZGX1NUT1JFIHZvbHVtZXMgYXJlIG5vdCB1cGRhdGVkCgpZZXMuCgpPbiAxNC0xMC0yMDE1IDg6 NDgsIEFsbG9uIE11cmVpbmlrIHdyb3RlOgoKCgpUaGlzIGlzIHdoYXQgd2UgZGlzY3Vzc2VkIG9u IEJaIzEyNjg4NDIsIHJpZ2h0PwoKT24gTW9uLCBPY3QgNSwgMjAxNSBhdCAxMTozNSBBTSwgQ2hy aXN0b3BoZXIgUGVyZWlyYSAmbHQ7IDxhIGNsYXNzPSJtb3otdHh0LWxpbmstYWJicmV2aWF0ZWQi IGhyZWY9Im1haWx0bzprcmlwcGVyQGltYXRyb25peC5jbCI+a3JpcHBlckBpbWF0cm9uaXguY2w8 L2E+ICZndDsKd3JvdGU6CgoKSGksCgpJIG5vdGljZWQgdGhhdCBPVkZfU1RPUkUgdm9sdW1lcyBh cmUgbm90IGdlbmVyYXRlZCBwZXJpb2RpY2FsbHkgYXMgZXhwZWN0ZWQKWzFdLgpJdCBzZWVtcyBs aWtlIHRoZSBPVkZfU1RPUkUgdm9sdW1lcyBhcmUgb25seSBnZW5lcmF0ZWQgd2hlbiB0aGUgU3Rv cmFnZQpEb21haW4gaXMgZGV0YWNoZWQgZnJvbSBFbmdpbmUsIHdoaWNoIGlzIG5vdCBmZWFzaWJs ZSBpZiB3ZSB3YW50IHRvIGtlZXAgdGhlClZNcyBydW5uaW5nLgoKMSkgSXMgdGhlcmUgYW55IHdh eSB0byBmb3JjZSB0aGUgT1ZGX1NUT1JFIHZvbHVtZSBjcmVhdGlvbiB3aXRob3V0IGRldGFjaGlu Zwp0aGUgU3RvcmFnZSBEb21haW4/CgpUaGlzIHdvdWxkIGJlIHZlcnkgdXNlZnVsbCBmb3IgZGlz YXN0ZXIgcmVjb3ZlcnksIHNpbmNlIFN0b3JhZ2UgRG9tYWlucyBjYW4KYmUgYmFja2VkIHVwIGFu ZCBWTSBjYW4gYmUgcmVpbXBvcnRlZC4KQnV0IGlmIHRoZSBPVkZfU1RPUkUgdm9sdW1lcyBhcmUg bm90IHVwZGF0ZWQsIGNyaXRpY2FsIGluZm9ybWF0aW9uIGxpa2UgdGhlCklEIG9mIHRoZSBWTSBh Y3RpdmUgc25hcHNob3Qgd2lsbCBnZXQgbG9zdC4KSWYgdGhlIFZNIGlzIHJlc3RvcmVkIHdpdGgg YSBwcmV2aW91cyBzbmFwc2hvdCAobm90IHRoZSBsYXN0IG9uZSksIGFsbAppbmZvcm1hdGlvbiB3 cml0dGVuIGFmdGVyIHRoZSBsYXN0IHNuYXBzaG90IGtub3duIGJ5IHRoZSBPVkZfU1RPUkUgd2ls bCBnZXQKbG9zdC4KCjIpIE9uIHRoZSBvdGhlciBoYW5kLCB0aGUgb25seSB3YXkgSSBrbm93IHRv IHJlLXJlYWQgdGhlIE9WRl9TVE9SRSBjb250ZW50CndpdGggdGhlIFZNIGluZm9ybWF0aW9uIGNv bnRhaW5lZCBpbiBhIFN0b3JhZ2UgRG9tYWluLCBpcyBieSBkZXRhY2hpbmcgYW5kCnJlLWF0dGFj aGluZyBpdC4KSSB3b25kZXIgaWYgdGhlcmUgaXMgYWxzbyBhbnkgd2F5IHRvIHJlLXJlYWQgdGhl IE9WRl9TVE9SRT8KClsxXSA6IFRoaXMgY2FuIGJlIHZlcmlmaWVkIHZlcnkgZWFzaWx5IGJ5IGNo YW5naW5nIGEgcnVubmluZyBWTSBwcm9wZXJ0aWVzCihjaGFuZ2UgaXRzIG5hbWUgb3IgY3JlYXRl IGEgc25hcHNob3QpLCBjb3B5aW5nIHRoZSB3aG9sZSBzdG9yYWdlIGRvbWFpbiBhbmQKaW1wb3J0 aW5nIGl0IGludG8gYW5vdGhlciBFbmdpbmUgKFBPT0xfVUlEIGFuZCBDSEVDS1NVTSBtdXN0IGJl IHJlbW92ZWQgZnJvbQptZXRhZGF0YSBpbiBvcmRlciB0byBiZSBhYmxlIHRvIGF0dGFjaCB0byBh bm90aGVyIERhdGFjZW50ZXIpLgoKUFM6IEknbSBvbiAzLjYgUkMuIDEuCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRldmVsIG1haWxpbmcgbGlzdAo8YSBj bGFzcz0ibW96LXR4dC1saW5rLWFiYnJldmlhdGVkIiBocmVmPSJtYWlsdG86RGV2ZWxAb3ZpcnQu b3JnIj5EZXZlbEBvdmlydC5vcmc8L2E+CjxhIGNsYXNzPSJtb3otdHh0LWxpbmstZnJlZXRleHQi IGhyZWY9Imh0dHA6Ly9saXN0cy5vdmlydC5vcmcvbWFpbG1hbi9saXN0aW5mby9kZXZlbCI+aHR0 cDovL2xpc3RzLm92aXJ0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RldmVsPC9hPgoKCgoKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRldmVsIG1haWxpbmcg bGlzdAo8YSBjbGFzcz0ibW96LXR4dC1saW5rLWFiYnJldmlhdGVkIiBocmVmPSJtYWlsdG86RGV2 ZWxAb3ZpcnQub3JnIj5EZXZlbEBvdmlydC5vcmc8L2E+CjxhIGNsYXNzPSJtb3otdHh0LWxpbmst ZnJlZXRleHQiIGhyZWY9Imh0dHA6Ly9saXN0cy5vdmlydC5vcmcvbWFpbG1hbi9saXN0aW5mby9k ZXZlbCI+aHR0cDovL2xpc3RzLm92aXJ0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RldmVsPC9hPgo8 L3ByZT4KICAgICAgPC9ibG9ja3F1b3RlPgogICAgICA8cHJlIHdyYXA9IiI+CjwvcHJlPgogICAg PC9ibG9ja3F1b3RlPgogICAgPGJyPgogIDwvYm9keT4KPC9odG1sPgoKLS0tLS0tLS0tLS0tLS0w NTA3MDgwMzAyMDgwNzA0MDUwMjA0MDItLQo= --===============7349936304711377790==--