From stockhausen at collogia.de Thu Oct 6 06:07:03 2016 Content-Type: multipart/mixed; boundary="===============4595783194590345481==" MIME-Version: 1.0 From: Markus Stockhausen To: users at ovirt.org Subject: Re: [ovirt-users] Cleanup illegal snapshot Date: Thu, 06 Oct 2016 10:06:51 +0000 Message-ID: <12EF8D94C6F8734FB2FF37B9FBEDD1739B85E7A8@EXCHANGE.collogia.de> In-Reply-To: CAPuOgO3hpNafdWsJTGZjwyYsY2WCEqNn-4W-Q2dW5Ohp8-k8Qw@mail.gmail.com --===============4595783194590345481== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable ------=3D_NextPartTM-000-d8a0717f-15bf-4a4f-8720-157eb9f11fcb Content-Type: multipart/alternative; boundary=3D"_000_12EF8D94C6F8734FB2FF37B9FBEDD1739B85E7A8EXCHANGEcollogi_" --_000_12EF8D94C6F8734FB2FF37B9FBEDD1739B85E7A8EXCHANGEcollogi_ Content-Type: text/plain; charset=3D"iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi, we are on OVirt 4.0.4. As explained the situation is as follows: - On Disk we have the base image and the delata qcow2 file - Qemu runs only on the base image - The snapshot in Qemu is tagged as illegal So you say: "Just retry a live merge and everything will cleanup." Did I get it right? Markus ----------------------------------------------- Von: Ala Hino [ahino(a)redhat.com] Gesendet: Donnerstag, 6. Oktober 2016 11:21 An: Markus Stockhausen Cc: Ovirt Users; Nir Soffer; Adam Litke Betreff: Re: [ovirt-users] Cleanup illegal snapshot Hi Markus, What's the version that you are using? In oVirt 3.6.6, illegal snapshots could be removed by retrying to live merg= =3D e them again. Assuming the previous live merge of the snapshot successfully= =3D completed but the engine failed to get the result, the second live merge s= =3D hould do the necessary cleanups at the engine side. See https://bugzilla.re= =3D dhat.com/1323629 Hope this helps, Ala On Thu, Oct 6, 2016 at 11:53 AM, Markus Stockhausen > wrote: Hi Ala, > Von: Adam Litke [alitke(a)redhat.com] > Gesendet: Freitag, 30. September 2016 15:54 > An: Markus Stockhausen > Cc: Ovirt Users; Ala Hino; Nir Soffer > Betreff: Re: [ovirt-users] Cleanup illegal snapshot > > On 30/09/16 05:47 +0000, Markus Stockhausen wrote: > >Hi, > > > >if a OVirt snapshot is illegal we might have 2 situations. > > > >1) qemu is still using it - lsof shows qemu access to the base raw and t= =3D he > >delta qcow2 file. -> E.g. a previous live merge failed. In the past we > >successfully solved that situation by setting the status of the delta im= =3D age > >in the database to OK. > > > >2) qemu is no longer using it. lsof shows qemu access only to the the ba= =3D se > >raw file -> E.g. a previous live merge succeded in qemu but Ovirt did no= =3D t > >recognize. > > > >How to clean up the 2nd situation? > > It seems that you will have to first clean up the engine database to > remove references to the snapshot that no longer exists. Then you > will need to remove the unused qcow2 volume. > > Unfortunately I cannot provide safe instructions for modifying the > database but maybe Ala Hino (added to CC:) will be able to help with > that. Do you have some tip for me? > > One you have fixed the DB you should be able to delete the volume > using a vdsm verb on the SPM host: > > # vdsClient -s 0 deleteVolume --_000_12EF8D94C6F8734FB2FF37B9FBEDD1739B85E7A8EXCHANGEcollogi_ Content-Type: text/html; charset=3D"iso-8859-1" Content-Transfer-Encoding: quoted-printable
Hi,

we are on OVirt 4.0.4. As explained the situation is as follows:

- On Disk we have the base image and the delata qcow2 file
- Qemu runs only on the base image
- The snapshot in Qemu is tagged as illegal

So you say: "Just retry a live merge and everything will cleanup.= =3D "
Did I get it right?

Markus

-----------------------------------------------

Von: Ala Hino [ahino(a)redhat.com]
Gesendet: Donnerstag, 6. Oktober 2016= 11:=3D 21
An: Markus Stockhausen
Cc: Ovirt Users; Nir Soffer; Adam Litke
Betreff: Re: [ovirt-users] Cleanup illegal snapshot

Hi Markus,

What's the version that you are using?
In oVirt 3.6.6, illegal snapshots could be removed by retrying to live= =3D merge them again. Assuming the previous live merge of the snapshot success= =3D fully completed but the engine failed to get the result, the second live me= =3D rge should do the necessary cleanups at the engine side. See https://bugzilla.redhat.com/1323629

Hope this helps,
Ala

On Thu, Oct 6, 2016 at 11:53 AM, Markus Stockh= au=3D sen <stoc= khause=3D n(a)collogia.de> wrote:
Hi Ala,

> Von: Adam Litke [alitke(a)redhat.com]
> Gesendet: Freitag, 30. September 2016 15:54
> An: Markus Stockhausen
> Cc: Ovirt Users; Ala Hino; Nir Soffer
> Betreff: Re: [ovirt-users] Cleanup illegal snapshot
>
> On 30/09/16 05:47 +0000, Markus Stockhausen wrote:
> >Hi,
> >
> >if a OVirt snapshot is illegal we might have 2 situations.
> >
> >1) qemu is still using it - lsof shows qemu access to the base raw= =3D and the
> >delta qcow2 file. -> E.g. a previous live merge failed. In the = =3D past we
> >successfully solved that situation by setting the status of the de= =3D lta image
> >in the database to OK.
> >
> >2) qemu is no longer using it. lsof shows qemu access only to the = =3D the base
> >raw file -> E.g. a previous live merge succeded in qemu but Ovi= =3D rt did not
> >recognize.
> >
> >How to clean up the 2nd situation?
>
> It seems that you will have to first clean up the engine database to > remove references to the snapshot that no longer exists.  Then yo= =3D u
> will need to remove the unused qcow2 volume.
>
> Unfortunately I cannot provide safe instructions for modifying the
> database but maybe Ala Hino (added to CC:) will be able to help with > that.

Do you have some tip for me?

>
> One you have fixed the DB you should be able to delete the volume
> using a vdsm verb on the SPM host:
>
> # vdsClient -s 0 deleteVolume <sdUUID> <spUUID> <imgUUI= =3D D> <volUUID>

--_000_12EF8D94C6F8734FB2FF37B9FBEDD1739B85E7A8EXCHANGEcollogi_-- ------=3D_NextPartTM-000-d8a0717f-15bf-4a4f-8720-157eb9f11fcb Content-Type: text/plain; name=3D"InterScan_Disclaimer.txt" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=3D"InterScan_Disclaimer.txt" **************************************************************************** Diese E-Mail enth=C3=A4lt vertrauliche und/oder rechtlich gesch=C3=BCtzte Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrt=C3=BCmlich erhalten haben, informieren Sie bitte sofort den Absender u= nd vernichten Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser Mail ist nicht gestattet. =C3=9Cber das Internet versandte E-Mails k=C3=B6nnen unter fremden Namen er= stellt oder manipuliert werden. Deshalb ist diese als E-Mail verschickte Nachricht keine rechtsverbindliche Willenserkl=C3=A4rung. Collogia Unternehmensberatung AG Ubierring 11 D-50678 K=C3=B6ln Vorstand: Kadir Akin Dr. Michael H=C3=B6hnerbach Vorsitzender des Aufsichtsrates: Hans Kristian Langva Registergericht: Amtsgericht K=C3=B6ln Registernummer: HRB 52 497 This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorized copying, disclosure or distribution of the material in this e-mail is strictly forbidden. e-mails sent over the internet may have been written under a wrong name or been manipulated. That is why this message sent as an e-mail is not a legally binding declaration of intention. Collogia Unternehmensberatung AG Ubierring 11 D-50678 K=C3=B6ln executive board: Kadir Akin Dr. Michael H=C3=B6hnerbach President of the supervisory board: Hans Kristian Langva Registry office: district court Cologne Register number: HRB 52 497 **************************************************************************** ------=3D_NextPartTM-000-d8a0717f-15bf-4a4f-8720-157eb9f11fcb-- --===============4595783194590345481== Content-Type: multipart/mixed MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.bin" Ci0tLS0tLT1fTmV4dFBhcnRUTS0wMDAtZDhhMDcxN2YtMTViZi00YTRmLTg3MjAtMTU3ZWI5ZjEx ZmNiCkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOwoJYm91bmRhcnk9Il8wMDBf MTJFRjhEOTRDNkY4NzM0RkIyRkYzN0I5RkJFREQxNzM5Qjg1RTdBOEVYQ0hBTkdFY29sbG9naV8i CgotLV8wMDBfMTJFRjhEOTRDNkY4NzM0RkIyRkYzN0I5RkJFREQxNzM5Qjg1RTdBOEVYQ0hBTkdF Y29sbG9naV8KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgpD b250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpIaSwKCndlIGFyZSBv biBPVmlydCA0LjAuNC4gQXMgZXhwbGFpbmVkIHRoZSBzaXR1YXRpb24gaXMgYXMgZm9sbG93czoK Ci0gT24gRGlzayB3ZSBoYXZlIHRoZSBiYXNlIGltYWdlIGFuZCB0aGUgZGVsYXRhIHFjb3cyIGZp bGUKLSBRZW11IHJ1bnMgb25seSBvbiB0aGUgYmFzZSBpbWFnZQotIFRoZSBzbmFwc2hvdCBpbiBR ZW11IGlzIHRhZ2dlZCBhcyBpbGxlZ2FsCgpTbyB5b3Ugc2F5OiAiSnVzdCByZXRyeSBhIGxpdmUg bWVyZ2UgYW5kIGV2ZXJ5dGhpbmcgd2lsbCBjbGVhbnVwLiIKRGlkIEkgZ2V0IGl0IHJpZ2h0PwoK TWFya3VzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoK Vm9uOiBBbGEgSGlubyBbYWhpbm9AcmVkaGF0LmNvbV0KR2VzZW5kZXQ6IERvbm5lcnN0YWcsIDYu IE9rdG9iZXIgMjAxNiAxMToyMQpBbjogTWFya3VzIFN0b2NraGF1c2VuCkNjOiBPdmlydCBVc2Vy czsgTmlyIFNvZmZlcjsgQWRhbSBMaXRrZQpCZXRyZWZmOiBSZTogW292aXJ0LXVzZXJzXSBDbGVh bnVwIGlsbGVnYWwgc25hcHNob3QKCkhpIE1hcmt1cywKCldoYXQncyB0aGUgdmVyc2lvbiB0aGF0 IHlvdSBhcmUgdXNpbmc/CkluIG9WaXJ0IDMuNi42LCBpbGxlZ2FsIHNuYXBzaG90cyBjb3VsZCBi ZSByZW1vdmVkIGJ5IHJldHJ5aW5nIHRvIGxpdmUgbWVyZz0KZSB0aGVtIGFnYWluLiBBc3N1bWlu ZyB0aGUgcHJldmlvdXMgbGl2ZSBtZXJnZSBvZiB0aGUgc25hcHNob3Qgc3VjY2Vzc2Z1bGx5PQog Y29tcGxldGVkIGJ1dCB0aGUgZW5naW5lIGZhaWxlZCB0byBnZXQgdGhlIHJlc3VsdCwgdGhlIHNl Y29uZCBsaXZlIG1lcmdlIHM9CmhvdWxkIGRvIHRoZSBuZWNlc3NhcnkgY2xlYW51cHMgYXQgdGhl IGVuZ2luZSBzaWRlLiBTZWUgaHR0cHM6Ly9idWd6aWxsYS5yZT0KZGhhdC5jb20vMTMyMzYyOQoK SG9wZSB0aGlzIGhlbHBzLApBbGEKCk9uIFRodSwgT2N0IDYsIDIwMTYgYXQgMTE6NTMgQU0sIE1h cmt1cyBTdG9ja2hhdXNlbiA8c3RvY2toYXVzZW5AY29sbG9naWEuZD0KZTxtYWlsdG86c3RvY2to YXVzZW5AY29sbG9naWEuZGU+PiB3cm90ZToKSGkgQWxhLAoKPiBWb246IEFkYW0gTGl0a2UgW2Fs aXRrZUByZWRoYXQuY29tPG1haWx0bzphbGl0a2VAcmVkaGF0LmNvbT5dCj4gR2VzZW5kZXQ6IEZy ZWl0YWcsIDMwLiBTZXB0ZW1iZXIgMjAxNiAxNTo1NAo+IEFuOiBNYXJrdXMgU3RvY2toYXVzZW4K PiBDYzogT3ZpcnQgVXNlcnM7IEFsYSBIaW5vOyBOaXIgU29mZmVyCj4gQmV0cmVmZjogUmU6IFtv dmlydC11c2Vyc10gQ2xlYW51cCBpbGxlZ2FsIHNuYXBzaG90Cj4KPiBPbiAzMC8wOS8xNiAwNTo0 NyArMDAwMCwgTWFya3VzIFN0b2NraGF1c2VuIHdyb3RlOgo+ID5IaSwKPiA+Cj4gPmlmIGEgT1Zp cnQgc25hcHNob3QgaXMgaWxsZWdhbCB3ZSBtaWdodCBoYXZlIDIgc2l0dWF0aW9ucy4KPiA+Cj4g PjEpIHFlbXUgaXMgc3RpbGwgdXNpbmcgaXQgLSBsc29mIHNob3dzIHFlbXUgYWNjZXNzIHRvIHRo ZSBiYXNlIHJhdyBhbmQgdD0KaGUKPiA+ZGVsdGEgcWNvdzIgZmlsZS4gLT4gRS5nLiBhIHByZXZp b3VzIGxpdmUgbWVyZ2UgZmFpbGVkLiBJbiB0aGUgcGFzdCB3ZQo+ID5zdWNjZXNzZnVsbHkgc29s dmVkIHRoYXQgc2l0dWF0aW9uIGJ5IHNldHRpbmcgdGhlIHN0YXR1cyBvZiB0aGUgZGVsdGEgaW09 CmFnZQo+ID5pbiB0aGUgZGF0YWJhc2UgdG8gT0suCj4gPgo+ID4yKSBxZW11IGlzIG5vIGxvbmdl ciB1c2luZyBpdC4gbHNvZiBzaG93cyBxZW11IGFjY2VzcyBvbmx5IHRvIHRoZSB0aGUgYmE9CnNl Cj4gPnJhdyBmaWxlIC0+IEUuZy4gYSBwcmV2aW91cyBsaXZlIG1lcmdlIHN1Y2NlZGVkIGluIHFl bXUgYnV0IE92aXJ0IGRpZCBubz0KdAo+ID5yZWNvZ25pemUuCj4gPgo+ID5Ib3cgdG8gY2xlYW4g dXAgdGhlIDJuZCBzaXR1YXRpb24/Cj4KPiBJdCBzZWVtcyB0aGF0IHlvdSB3aWxsIGhhdmUgdG8g Zmlyc3QgY2xlYW4gdXAgdGhlIGVuZ2luZSBkYXRhYmFzZSB0bwo+IHJlbW92ZSByZWZlcmVuY2Vz IHRvIHRoZSBzbmFwc2hvdCB0aGF0IG5vIGxvbmdlciBleGlzdHMuICBUaGVuIHlvdQo+IHdpbGwg bmVlZCB0byByZW1vdmUgdGhlIHVudXNlZCBxY293MiB2b2x1bWUuCj4KPiBVbmZvcnR1bmF0ZWx5 IEkgY2Fubm90IHByb3ZpZGUgc2FmZSBpbnN0cnVjdGlvbnMgZm9yIG1vZGlmeWluZyB0aGUKPiBk YXRhYmFzZSBidXQgbWF5YmUgQWxhIEhpbm8gKGFkZGVkIHRvIENDOikgd2lsbCBiZSBhYmxlIHRv IGhlbHAgd2l0aAo+IHRoYXQuCgpEbyB5b3UgaGF2ZSBzb21lIHRpcCBmb3IgbWU/Cgo+Cj4gT25l IHlvdSBoYXZlIGZpeGVkIHRoZSBEQiB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gZGVsZXRlIHRoZSB2 b2x1bWUKPiB1c2luZyBhIHZkc20gdmVyYiBvbiB0aGUgU1BNIGhvc3Q6Cj4KPiAjIHZkc0NsaWVu dCAtcyAwIGRlbGV0ZVZvbHVtZSA8c2RVVUlEPiA8c3BVVUlEPiA8aW1nVVVJRD4gPHZvbFVVSUQ+ CgoKLS1fMDAwXzEyRUY4RDk0QzZGODczNEZCMkZGMzdCOUZCRUREMTczOUI4NUU3QThFWENIQU5H RWNvbGxvZ2lfCkNvbnRlbnQtVHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PSJpc28tODg1OS0xIgpD b250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgo8aHRtbCBkaXI9M0Qi bHRyIj4KPGhlYWQ+CjxtZXRhIGh0dHAtZXF1aXY9M0QiQ29udGVudC1UeXBlIiBjb250ZW50PTNE InRleHQvaHRtbDsgY2hhcnNldD0zRGlzby04ODU5LT0KMSI+CjxzdHlsZSB0eXBlPTNEInRleHQv Y3NzIiBpZD0zRCJvd2FQYXJhU3R5bGUiPjwvc3R5bGU+CjwvaGVhZD4KPGJvZHkgZnBzdHlsZT0z RCIxIiBvY3NpPTNEIjAiPgo8ZGl2IHN0eWxlPTNEImRpcmVjdGlvbjogbHRyO2ZvbnQtZmFtaWx5 OiBBcmlhbDtjb2xvcjogIzAwMDAwMDtmb250LXNpemU6IDE9CjBwdDsiPkhpLAo8ZGl2Pjxicj4K PC9kaXY+CjxkaXY+d2UgYXJlIG9uIE9WaXJ0IDQuMC40LiBBcyBleHBsYWluZWQgdGhlIHNpdHVh dGlvbiBpcyBhcyBmb2xsb3dzOjwvZGl2Pgo8ZGl2Pjxicj4KPC9kaXY+CjxkaXY+LSBPbiBEaXNr IHdlIGhhdmUgdGhlIGJhc2UgaW1hZ2UgYW5kIHRoZSBkZWxhdGEgcWNvdzIgZmlsZTwvZGl2Pgo8 ZGl2Pi0gUWVtdSBydW5zIG9ubHkgb24gdGhlIGJhc2UgaW1hZ2U8L2Rpdj4KPGRpdj4tIFRoZSBz bmFwc2hvdCBpbiBRZW11IGlzIHRhZ2dlZCBhcyBpbGxlZ2FsPC9kaXY+CjxkaXY+PGJyPgo8L2Rp dj4KPGRpdj5TbyB5b3Ugc2F5OiAmcXVvdDtKdXN0IHJldHJ5IGEgbGl2ZSBtZXJnZSBhbmQgZXZl cnl0aGluZyB3aWxsIGNsZWFudXAuPQomcXVvdDs8L2Rpdj4KPGRpdj5EaWQgSSBnZXQgaXQgcmln aHQ/PC9kaXY+CjxkaXY+PGJyPgo8L2Rpdj4KPGRpdj5NYXJrdXM8L2Rpdj4KPGRpdj48YnI+Cjwv ZGl2Pgo8ZGl2Pi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t PGJyPgo8ZGl2Pjxicj4KPGRpdiBzdHlsZT0zRCJmb250LWZhbWlseTpUYWhvbWE7IGZvbnQtc2l6 ZToxM3B4Ij4KPGRpdiBzdHlsZT0zRCJmb250LWZhbWlseTpUYWhvbWE7IGZvbnQtc2l6ZToxM3B4 Ij4KPGRpdiBzdHlsZT0zRCJmb250LWZhbWlseTpUYWhvbWE7IGZvbnQtc2l6ZToxM3B4Ij4KPGRp diBzdHlsZT0zRCJmb250LWZhbWlseTpUYWhvbWE7IGZvbnQtc2l6ZToxM3B4Ij4KPGRpdiBzdHls ZT0zRCJmb250LWZhbWlseTpUYWhvbWE7IGZvbnQtc2l6ZToxM3B4Ij4KPGRpdj4KPGRpdj4KPGRp dj48YiBzdHlsZT0zRCJmb250LXNpemU6IHNtYWxsOyI+Vm9uOjwvYj48c3BhbiBzdHlsZT0zRCJm b250LXNpemU6IHNtYWxsPQo7Ij4gQWxhIEhpbm8gW2FoaW5vQHJlZGhhdC5jb21dPC9zcGFuPjwv ZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9k aXY+CjxkaXYgc3R5bGU9M0QiZm9udC1mYW1pbHk6IFRpbWVzIE5ldyBSb21hbjsgY29sb3I6ICMw MDAwMDA7IGZvbnQtc2l6ZTogMTZweD0KIj4KPGRpdiBpZD0zRCJkaXZScEY0Mjk5MzAiIHN0eWxl PTNEImRpcmVjdGlvbjogbHRyOyI+PGZvbnQgZmFjZT0zRCJUYWhvbWEiIHNpPQp6ZT0zRCIyIiBj b2xvcj0zRCIjMDAwMDAwIj48Yj5HZXNlbmRldDo8L2I+IERvbm5lcnN0YWcsIDYuIE9rdG9iZXIg MjAxNiAxMTo9CjIxPGJyPgo8Yj5Bbjo8L2I+IE1hcmt1cyBTdG9ja2hhdXNlbjxicj4KPGI+Q2M6 PC9iPiBPdmlydCBVc2VyczsgTmlyIFNvZmZlcjsgQWRhbSBMaXRrZTxicj4KPGI+QmV0cmVmZjo8 L2I+IFJlOiBbb3ZpcnQtdXNlcnNdIENsZWFudXAgaWxsZWdhbCBzbmFwc2hvdDxicj4KPC9mb250 Pjxicj4KPC9kaXY+CjxkaXY+PC9kaXY+CjxkaXY+CjxkaXYgZGlyPTNEImx0ciI+SGkgTWFya3Vz LAo8ZGl2Pjxicj4KPC9kaXY+CjxkaXY+V2hhdCdzIHRoZSB2ZXJzaW9uIHRoYXQgeW91IGFyZSB1 c2luZz88L2Rpdj4KPGRpdj5JbiBvVmlydCAzLjYuNiwgaWxsZWdhbCBzbmFwc2hvdHMgY291bGQg YmUgcmVtb3ZlZCBieSByZXRyeWluZyB0byBsaXZlPQogbWVyZ2UgdGhlbSBhZ2Fpbi4gQXNzdW1p bmcgdGhlIHByZXZpb3VzIGxpdmUgbWVyZ2Ugb2YgdGhlIHNuYXBzaG90IHN1Y2Nlc3M9CmZ1bGx5 IGNvbXBsZXRlZCBidXQgdGhlIGVuZ2luZSBmYWlsZWQgdG8gZ2V0IHRoZSByZXN1bHQsIHRoZSBz ZWNvbmQgbGl2ZSBtZT0KcmdlIHNob3VsZCBkbyB0aGUgbmVjZXNzYXJ5IGNsZWFudXBzCiBhdCB0 aGUgZW5naW5lIHNpZGUuIFNlZSZuYnNwOzxhIGhyZWY9M0QiaHR0cHM6Ly9idWd6aWxsYS5yZWRo YXQuY29tLzEzMjM2Mj0KOSIgdGFyZ2V0PTNEIl9ibGFuayI+aHR0cHM6Ly9idWd6aWxsYS5yZWRo YXQuY29tLzEzMjM2Mjk8L2E+PC9kaXY+CjxkaXY+PGJyPgo8L2Rpdj4KPGRpdj5Ib3BlIHRoaXMg aGVscHMsPC9kaXY+CjxkaXY+QWxhPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPTNEImdtYWlsX2V4 dHJhIj48YnI+CjxkaXYgY2xhc3M9M0QiZ21haWxfcXVvdGUiPk9uIFRodSwgT2N0IDYsIDIwMTYg YXQgMTE6NTMgQU0sIE1hcmt1cyBTdG9ja2hhdT0Kc2VuIDxzcGFuIGRpcj0zRCJsdHIiPgombHQ7 PGEgaHJlZj0zRCJtYWlsdG86c3RvY2toYXVzZW5AY29sbG9naWEuZGUiIHRhcmdldD0zRCJfYmxh bmsiPnN0b2NraGF1c2U9Cm5AY29sbG9naWEuZGU8L2E+Jmd0Ozwvc3Bhbj4gd3JvdGU6PGJyPgo8 YmxvY2txdW90ZSBjbGFzcz0zRCJnbWFpbF9xdW90ZSIgc3R5bGU9M0QibWFyZ2luOjAgMCAwIC44 ZXg7IGJvcmRlci1sZWZ0OjE9CnB4ICNjY2Mgc29saWQ7IHBhZGRpbmctbGVmdDoxZXgiPgpIaSBB bGEsPGJyPgo8YnI+CiZndDsgVm9uOiBBZGFtIExpdGtlIFs8YSBocmVmPTNEIm1haWx0bzphbGl0 a2VAcmVkaGF0LmNvbSIgdGFyZ2V0PTNEIl9ibGFuaz0KIj5hbGl0a2VAcmVkaGF0LmNvbTwvYT5d PGJyPgomZ3Q7IEdlc2VuZGV0OiBGcmVpdGFnLCAzMC4gU2VwdGVtYmVyIDIwMTYgMTU6NTQ8YnI+ CiZndDsgQW46IE1hcmt1cyBTdG9ja2hhdXNlbjxicj4KJmd0OyBDYzogT3ZpcnQgVXNlcnM7IEFs YSBIaW5vOyBOaXIgU29mZmVyPGJyPgomZ3Q7IEJldHJlZmY6IFJlOiBbb3ZpcnQtdXNlcnNdIENs ZWFudXAgaWxsZWdhbCBzbmFwc2hvdDxicj4KPHNwYW4gY2xhc3M9M0QiIj4mZ3Q7PGJyPgomZ3Q7 IE9uIDMwLzA5LzE2IDA1OjQ3ICYjNDM7MDAwMCwgTWFya3VzIFN0b2NraGF1c2VuIHdyb3RlOjxi cj4KJmd0OyAmZ3Q7SGksPGJyPgomZ3Q7ICZndDs8YnI+CiZndDsgJmd0O2lmIGEgT1ZpcnQgc25h cHNob3QgaXMgaWxsZWdhbCB3ZSBtaWdodCBoYXZlIDIgc2l0dWF0aW9ucy48YnI+CiZndDsgJmd0 Ozxicj4KJmd0OyAmZ3Q7MSkgcWVtdSBpcyBzdGlsbCB1c2luZyBpdCAtIGxzb2Ygc2hvd3MgcWVt dSBhY2Nlc3MgdG8gdGhlIGJhc2UgcmF3PQogYW5kIHRoZTxicj4KJmd0OyAmZ3Q7ZGVsdGEgcWNv dzIgZmlsZS4gLSZndDsgRS5nLiBhIHByZXZpb3VzIGxpdmUgbWVyZ2UgZmFpbGVkLiBJbiB0aGUg PQpwYXN0IHdlPGJyPgomZ3Q7ICZndDtzdWNjZXNzZnVsbHkgc29sdmVkIHRoYXQgc2l0dWF0aW9u IGJ5IHNldHRpbmcgdGhlIHN0YXR1cyBvZiB0aGUgZGU9Cmx0YSBpbWFnZTxicj4KJmd0OyAmZ3Q7 aW4gdGhlIGRhdGFiYXNlIHRvIE9LLjxicj4KJmd0OyAmZ3Q7PGJyPgomZ3Q7ICZndDsyKSBxZW11 IGlzIG5vIGxvbmdlciB1c2luZyBpdC4gbHNvZiBzaG93cyBxZW11IGFjY2VzcyBvbmx5IHRvIHRo ZSA9CnRoZSBiYXNlPGJyPgomZ3Q7ICZndDtyYXcgZmlsZSAtJmd0OyBFLmcuIGEgcHJldmlvdXMg bGl2ZSBtZXJnZSBzdWNjZWRlZCBpbiBxZW11IGJ1dCBPdmk9CnJ0IGRpZCBub3Q8YnI+CiZndDsg Jmd0O3JlY29nbml6ZS48YnI+CiZndDsgJmd0Ozxicj4KJmd0OyAmZ3Q7SG93IHRvIGNsZWFuIHVw IHRoZSAybmQgc2l0dWF0aW9uPzxicj4KJmd0Ozxicj4KJmd0OyBJdCBzZWVtcyB0aGF0IHlvdSB3 aWxsIGhhdmUgdG8gZmlyc3QgY2xlYW4gdXAgdGhlIGVuZ2luZSBkYXRhYmFzZSB0bzxiPQpyPgom Z3Q7IHJlbW92ZSByZWZlcmVuY2VzIHRvIHRoZSBzbmFwc2hvdCB0aGF0IG5vIGxvbmdlciBleGlz dHMuJm5ic3A7IFRoZW4geW89CnU8YnI+CiZndDsgd2lsbCBuZWVkIHRvIHJlbW92ZSB0aGUgdW51 c2VkIHFjb3cyIHZvbHVtZS48YnI+CiZndDs8YnI+CiZndDsgVW5mb3J0dW5hdGVseSBJIGNhbm5v dCBwcm92aWRlIHNhZmUgaW5zdHJ1Y3Rpb25zIGZvciBtb2RpZnlpbmcgdGhlPGJyPgomZ3Q7IGRh dGFiYXNlIGJ1dCBtYXliZSBBbGEgSGlubyAoYWRkZWQgdG8gQ0M6KSB3aWxsIGJlIGFibGUgdG8g aGVscCB3aXRoPGI9CnI+CiZndDsgdGhhdC48YnI+Cjxicj4KPC9zcGFuPkRvIHlvdSBoYXZlIHNv bWUgdGlwIGZvciBtZT88YnI+CjxkaXYgY2xhc3M9M0QiSE9FblpiIj4KPGRpdiBjbGFzcz0zRCJo NSI+PGJyPgomZ3Q7PGJyPgomZ3Q7IE9uZSB5b3UgaGF2ZSBmaXhlZCB0aGUgREIgeW91IHNob3Vs ZCBiZSBhYmxlIHRvIGRlbGV0ZSB0aGUgdm9sdW1lPGJyPgomZ3Q7IHVzaW5nIGEgdmRzbSB2ZXJi IG9uIHRoZSBTUE0gaG9zdDo8YnI+CiZndDs8YnI+CiZndDsgIyB2ZHNDbGllbnQgLXMgMCBkZWxl dGVWb2x1bWUgJmx0O3NkVVVJRCZndDsgJmx0O3NwVVVJRCZndDsgJmx0O2ltZ1VVST0KRCZndDsg Jmx0O3ZvbFVVSUQmZ3Q7PGJyPgo8L2Rpdj4KPC9kaXY+CjwvYmxvY2txdW90ZT4KPC9kaXY+Cjxi cj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBpZD0zRCJvZm1lZXQtZXh0ZW5zaW9uLWluc3Rh bGxlZCIgc3R5bGU9M0QiZGlzcGxheTogbm9uZTsiPjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvYm9k eT4KPC9odG1sPgoKLS1fMDAwXzEyRUY4RDk0QzZGODczNEZCMkZGMzdCOUZCRUREMTczOUI4NUU3 QThFWENIQU5HRWNvbGxvZ2lfLS0KCi0tLS0tLT1fTmV4dFBhcnRUTS0wMDAtZDhhMDcxN2YtMTVi Zi00YTRmLTg3MjAtMTU3ZWI5ZjExZmNiCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsKCW5hbWU9 IkludGVyU2Nhbl9EaXNjbGFpbWVyLnR4dCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2Jp dApDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OwoJZmlsZW5hbWU9IkludGVyU2Nhbl9E aXNjbGFpbWVyLnR4dCIKCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKRGllc2UgRS1NYWlsIGVudGjDpGx0 IHZlcnRyYXVsaWNoZSB1bmQvb2RlciByZWNodGxpY2ggZ2VzY2jDvHR6dGUKSW5mb3JtYXRpb25l bi4gV2VubiBTaWUgbmljaHQgZGVyIHJpY2h0aWdlIEFkcmVzc2F0IHNpbmQgb2RlciBkaWVzZSBF LU1haWwKaXJydMO8bWxpY2ggZXJoYWx0ZW4gaGFiZW4sIGluZm9ybWllcmVuIFNpZSBiaXR0ZSBz b2ZvcnQgZGVuIEFic2VuZGVyIHVuZAp2ZXJuaWNodGVuIFNpZSBkaWVzZSBNYWlsLiBEYXMgdW5l cmxhdWJ0ZSBLb3BpZXJlbiBzb3dpZSBkaWUgdW5iZWZ1Z3RlCldlaXRlcmdhYmUgZGllc2VyIE1h aWwgaXN0IG5pY2h0IGdlc3RhdHRldC4KCsOcYmVyIGRhcyBJbnRlcm5ldCB2ZXJzYW5kdGUgRS1N YWlscyBrw7ZubmVuIHVudGVyIGZyZW1kZW4gTmFtZW4gZXJzdGVsbHQgb2RlcgptYW5pcHVsaWVy dCB3ZXJkZW4uIERlc2hhbGIgaXN0IGRpZXNlIGFscyBFLU1haWwgdmVyc2NoaWNrdGUgTmFjaHJp Y2h0IGtlaW5lCnJlY2h0c3ZlcmJpbmRsaWNoZSBXaWxsZW5zZXJrbMOkcnVuZy4KCkNvbGxvZ2lh ClVudGVybmVobWVuc2JlcmF0dW5nIEFHClViaWVycmluZyAxMQpELTUwNjc4IEvDtmxuCgpWb3Jz dGFuZDoKS2FkaXIgQWtpbgpEci4gTWljaGFlbCBIw7ZobmVyYmFjaAoKVm9yc2l0emVuZGVyIGRl cyBBdWZzaWNodHNyYXRlczoKSGFucyBLcmlzdGlhbiBMYW5ndmEKClJlZ2lzdGVyZ2VyaWNodDog QW10c2dlcmljaHQgS8O2bG4KUmVnaXN0ZXJudW1tZXI6IEhSQiA1MiA0OTcKClRoaXMgZS1tYWls IG1heSBjb250YWluIGNvbmZpZGVudGlhbCBhbmQvb3IgcHJpdmlsZWdlZCBpbmZvcm1hdGlvbi4g SWYgeW91CmFyZSBub3QgdGhlIGludGVuZGVkIHJlY2lwaWVudCAob3IgaGF2ZSByZWNlaXZlZCB0 aGlzIGUtbWFpbCBpbiBlcnJvcikKcGxlYXNlIG5vdGlmeSB0aGUgc2VuZGVyIGltbWVkaWF0ZWx5 IGFuZCBkZXN0cm95IHRoaXMgZS1tYWlsLiBBbnkKdW5hdXRob3JpemVkIGNvcHlpbmcsIGRpc2Ns b3N1cmUgb3IgZGlzdHJpYnV0aW9uIG9mIHRoZSBtYXRlcmlhbCBpbiB0aGlzCmUtbWFpbCBpcyBz dHJpY3RseSBmb3JiaWRkZW4uCgplLW1haWxzIHNlbnQgb3ZlciB0aGUgaW50ZXJuZXQgbWF5IGhh dmUgYmVlbiB3cml0dGVuIHVuZGVyIGEgd3JvbmcgbmFtZSBvcgpiZWVuIG1hbmlwdWxhdGVkLiBU aGF0IGlzIHdoeSB0aGlzIG1lc3NhZ2Ugc2VudCBhcyBhbiBlLW1haWwgaXMgbm90IGEKbGVnYWxs eSBiaW5kaW5nIGRlY2xhcmF0aW9uIG9mIGludGVudGlvbi4KCkNvbGxvZ2lhClVudGVybmVobWVu c2JlcmF0dW5nIEFHClViaWVycmluZyAxMQpELTUwNjc4IEvDtmxuCgpleGVjdXRpdmUgYm9hcmQ6 CkthZGlyIEFraW4KRHIuIE1pY2hhZWwgSMO2aG5lcmJhY2gKClByZXNpZGVudCBvZiB0aGUgc3Vw ZXJ2aXNvcnkgYm9hcmQ6CkhhbnMgS3Jpc3RpYW4gTGFuZ3ZhCgpSZWdpc3RyeSBvZmZpY2U6IGRp c3RyaWN0IGNvdXJ0IENvbG9nbmUKUmVnaXN0ZXIgbnVtYmVyOiBIUkIgNTIgNDk3CgoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqCgotLS0tLS09X05leHRQYXJ0VE0tMDAwLWQ4YTA3MTdmLTE1YmYtNGE0Zi04 NzIwLTE1N2ViOWYxMWZjYi0tCgo= --===============4595783194590345481==--