From rom at twister.dyndns.org Thu Jun 4 23:24:23 2015 Content-Type: multipart/mixed; boundary="===============0091641312066743181==" MIME-Version: 1.0 From: Fred Wittekind To: epel-devel at lists.fedoraproject.org Subject: Re: clamav (again) Date: Sun, 20 Feb 2011 12:03:12 -0500 Message-ID: <4D614950.1040900@twister.dyndns.org> In-Reply-To: 20110219135349.6bf18e06@ohm.scrye.com --===============0091641312066743181== 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. --------------010908050205020508070505 Content-Type: text/plain; charset=3DISO-8859-1 Content-Transfer-Encoding: 7bit On 02/19/2011 03:53 PM, Kevin Fenzi wrote: > On Fri, 18 Feb 2011 10:36:13 -0500 > Fred Wittekind wrote: > >> I know this is not from your spec file, but, it shows what I was >> writing about >> >> # rpm -q -l -p clamav-data-0.96.5-1301el5.x86_64.rpm >> /var/lib/clamav/daily.cvd >> /var/lib/clamav/main.cvd >> >> # ls -l /var/lib/clamav/ >> total 67440 >> -rw-r--r-- 1 clamupdate clamupdate 459264 Feb 15 11:24 bytecode.cld >> -rw-r--r-- 1 clamupdate clamupdate 3071488 Feb 18 10:36 daily.cld >> -rw-r--r-- 1 clamupdate clamupdate 65422336 Nov 14 11:24 main.cld >> -rw------- 1 clamupdate clamupdate 884 Feb 18 10:36 mirrors.dat >> >> The file extensions are different, why this is, I do not know. = > Well, thats normal I think... some of the files are diffs of others, so > it only has to update a base file with daily updates. = > > So there's a base file that has the signatures from the time the > version was released, and then diff/update files that apply to that to > create the current up to date signatures. = > >> IMHO >> it's nice to have the option of not having RPM mess with the database, >> the "-empty" package is a way to do that. If you are updating clamav, >> then chances are the db on disk is newer than the one in the updated >> RPM that is being installed. The database included with the RPM is >> also most likely out-of-date by the time the RPM is released, so, >> personally, I see more value in a database installed via freshclam, >> than one installed via the package. > Sure, but what does it hurt? It's not that big, IMHO, so you can just > install the db as shipped and then update it. You will then get to use > the base db files and just need to download the diffs. = I did this experiment on my Fedora 14 workstation, but, it should demonstrate the issue. # yum --disablerepo=3Dupdates install clamav clamav-data clamav-update clamav-data-empty installs by default, so had to specify to load the one with the database files, I specified to disable the updates repo to intentionally install a older version. # ls /var/lib/clamav/ daily.cvd main.cvd # vi /etc/freshclam.conf (comment out the Example line) # freshclam # ls /var/lib/clamav/ bytecode.cvd daily.cvd main.cld mirrors.dat # yum update clamav # ls /var/lib/clamav/ bytecode.cvd daily.cvd daily.cvd.rpmsave main.cld main.cvd mirrors.dat # clamscan LibClamAV Warning: ************************************************** LibClamAV Warning: *** The virus database is older than 7 days! *** LibClamAV Warning: *** Please update it as soon as possible. *** LibClamAV Warning: ************************************************** LibClamAV Warning: Detected duplicate databases /var/lib/clamav/main.cvd and /var/lib/clamav/main.cld, please manually remove one of them The update installed a older database than what was already on disk, and also left clamav in a condition that has to be manually corrected. The -empty package doesn't have this issue. > kevin > > > _______________________________________________ > epel-devel-list mailing list > epel-devel-list(a)redhat.com > https://www.redhat.com/mailman/listinfo/epel-devel-list --------------010908050205020508070505 Content-Type: text/html; charset=3DISO-8859-1 Content-Transfer-Encoding: 7bit On 02/19/2011 03:53 PM, Kevin Fenzi wrote:
On Fri, 18 Feb 2011 10:36:13 -0500
Fred Wittekind <rom(a)twister.dyndns.org> wrote:

I know this is not from your spec file, but, it show=
s what I was
writing about

# rpm -q -l -p clamav-data-0.96.5-1301el5.x86_64.rpm
/var/lib/clamav/daily.cvd
/var/lib/clamav/main.cvd

# ls -l /var/lib/clamav/
total 67440
-rw-r--r-- 1 clamupdate clamupdate   459264 Feb 15 11:24 bytecode.cld
-rw-r--r-- 1 clamupdate clamupdate  3071488 Feb 18 10:36 daily.cld
-rw-r--r-- 1 clamupdate clamupdate 65422336 Nov 14 11:24 main.cld
-rw------- 1 clamupdate clamupdate      884 Feb 18 10:36 mirrors.dat

The file extensions are different, why this is, I do not know.  =

Well, thats normal I think... some of the files are diffs of others, so
it only has to update a base file with daily updates. =


So there's a base file that has the signatures from the time the
version was released, and then diff/update files that apply to that to
create the current up to date signatures. =


IMHO
it's nice to have the option of not having RPM mess with the database,
the "-empty" package is a way to do that.  If you are updating clamav,
then chances are the db on disk is newer than the one in the updated
RPM that is being installed. The database included with the RPM is
also most likely out-of-date by the time the RPM is released, so,
personally, I see more value in a database installed via freshclam,
than one installed via the package.
Sure, but what does it hurt? It's not that big, IMHO, so you can just
install the db as shipped and then update it. You will then get to use
the base db files and just need to download the diffs. =

I did this experiment on my Fedora 14 workstation, but, it should demonstrate the issue.

# yum --disablerepo=3Dupdates install clamav clamav-data clamav-update<= br>
clamav-data-empty installs by default, so had to specify to load the one with the database files, I specified to disable the updates repo to intentionally install a older version.

# ls /var/lib/clamav/
daily.cvd  main.cvd

# vi /etc/freshclam.conf (comment out the Example line)
# freshclam

# ls /var/lib/clamav/
bytecode.cvd  daily.cvd  main.cld  mirrors.dat

# yum update clamav

# ls /var/lib/clamav/
bytecode.cvd  daily.cvd  daily.cvd.rpmsave  main.cld&nbs= p; main.cvd  mirrors.dat

# clamscan
LibClamAV Warning: **************************************************
LibClamAV Warning: ***  The virus database is older than 7 days!&n= bsp; ***
LibClamAV Warning: ***   Please update it as soon as possible= .    ***
LibClamAV Warning: **************************************************
LibClamAV Warning: Detected duplicate databases /var/lib/clamav/main.cvd and /var/lib/clamav/main.cld, please manually remove one of them

The update installed a older database than what was already on disk, and also left clamav in a condition that has to be manually corrected.  The -empty package doesn't have this issue.
kevin
_______________________________________________ epel-devel-list mailing list epel-devel-list(a)redhat.com https://www.redhat.com/mailman/listinfo/epel-devel= -list

--------------010908050205020508070505-- --===============0091641312066743181== Content-Type: multipart/alternative MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.bin" VGhpcyBpcyBhIG11bHRpLXBhcnQgbWVzc2FnZSBpbiBNSU1FIGZvcm1hdC4KLS0tLS0tLS0tLS0t LS0wMTA5MDgwNTAyMDUwMjA1MDgwNzA1MDUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFy c2V0PUlTTy04ODU5LTEKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdAoKT24gMDIvMTkv MjAxMSAwMzo1MyBQTSwgS2V2aW4gRmVuemkgd3JvdGU6Cj4gT24gRnJpLCAxOCBGZWIgMjAxMSAx MDozNjoxMyAtMDUwMAo+IEZyZWQgV2l0dGVraW5kIDxyb21AdHdpc3Rlci5keW5kbnMub3JnPiB3 cm90ZToKPgo+PiBJIGtub3cgdGhpcyBpcyBub3QgZnJvbSB5b3VyIHNwZWMgZmlsZSwgYnV0LCBp dCBzaG93cyB3aGF0IEkgd2FzCj4+IHdyaXRpbmcgYWJvdXQKPj4KPj4gIyBycG0gLXEgLWwgLXAg Y2xhbWF2LWRhdGEtMC45Ni41LTEzMDFlbDUueDg2XzY0LnJwbQo+PiAvdmFyL2xpYi9jbGFtYXYv ZGFpbHkuY3ZkCj4+IC92YXIvbGliL2NsYW1hdi9tYWluLmN2ZAo+Pgo+PiAjIGxzIC1sIC92YXIv bGliL2NsYW1hdi8KPj4gdG90YWwgNjc0NDAKPj4gLXJ3LXItLXItLSAxIGNsYW11cGRhdGUgY2xh bXVwZGF0ZSAgIDQ1OTI2NCBGZWIgMTUgMTE6MjQgYnl0ZWNvZGUuY2xkCj4+IC1ydy1yLS1yLS0g MSBjbGFtdXBkYXRlIGNsYW11cGRhdGUgIDMwNzE0ODggRmViIDE4IDEwOjM2IGRhaWx5LmNsZAo+ PiAtcnctci0tci0tIDEgY2xhbXVwZGF0ZSBjbGFtdXBkYXRlIDY1NDIyMzM2IE5vdiAxNCAxMToy NCBtYWluLmNsZAo+PiAtcnctLS0tLS0tIDEgY2xhbXVwZGF0ZSBjbGFtdXBkYXRlICAgICAgODg0 IEZlYiAxOCAxMDozNiBtaXJyb3JzLmRhdAo+Pgo+PiBUaGUgZmlsZSBleHRlbnNpb25zIGFyZSBk aWZmZXJlbnQsIHdoeSB0aGlzIGlzLCBJIGRvIG5vdCBrbm93LiAgCj4gV2VsbCwgdGhhdHMgbm9y bWFsIEkgdGhpbmsuLi4gc29tZSBvZiB0aGUgZmlsZXMgYXJlIGRpZmZzIG9mIG90aGVycywgc28K PiBpdCBvbmx5IGhhcyB0byB1cGRhdGUgYSBiYXNlIGZpbGUgd2l0aCBkYWlseSB1cGRhdGVzLiAK Pgo+IFNvIHRoZXJlJ3MgYSBiYXNlIGZpbGUgdGhhdCBoYXMgdGhlIHNpZ25hdHVyZXMgZnJvbSB0 aGUgdGltZSB0aGUKPiB2ZXJzaW9uIHdhcyByZWxlYXNlZCwgYW5kIHRoZW4gZGlmZi91cGRhdGUg ZmlsZXMgdGhhdCBhcHBseSB0byB0aGF0IHRvCj4gY3JlYXRlIHRoZSBjdXJyZW50IHVwIHRvIGRh dGUgc2lnbmF0dXJlcy4gCj4KPj4gSU1ITwo+PiBpdCdzIG5pY2UgdG8gaGF2ZSB0aGUgb3B0aW9u IG9mIG5vdCBoYXZpbmcgUlBNIG1lc3Mgd2l0aCB0aGUgZGF0YWJhc2UsCj4+IHRoZSAiLWVtcHR5 IiBwYWNrYWdlIGlzIGEgd2F5IHRvIGRvIHRoYXQuICBJZiB5b3UgYXJlIHVwZGF0aW5nIGNsYW1h diwKPj4gdGhlbiBjaGFuY2VzIGFyZSB0aGUgZGIgb24gZGlzayBpcyBuZXdlciB0aGFuIHRoZSBv bmUgaW4gdGhlIHVwZGF0ZWQKPj4gUlBNIHRoYXQgaXMgYmVpbmcgaW5zdGFsbGVkLiBUaGUgZGF0 YWJhc2UgaW5jbHVkZWQgd2l0aCB0aGUgUlBNIGlzCj4+IGFsc28gbW9zdCBsaWtlbHkgb3V0LW9m LWRhdGUgYnkgdGhlIHRpbWUgdGhlIFJQTSBpcyByZWxlYXNlZCwgc28sCj4+IHBlcnNvbmFsbHks IEkgc2VlIG1vcmUgdmFsdWUgaW4gYSBkYXRhYmFzZSBpbnN0YWxsZWQgdmlhIGZyZXNoY2xhbSwK Pj4gdGhhbiBvbmUgaW5zdGFsbGVkIHZpYSB0aGUgcGFja2FnZS4KPiBTdXJlLCBidXQgd2hhdCBk b2VzIGl0IGh1cnQ/IEl0J3Mgbm90IHRoYXQgYmlnLCBJTUhPLCBzbyB5b3UgY2FuIGp1c3QKPiBp bnN0YWxsIHRoZSBkYiBhcyBzaGlwcGVkIGFuZCB0aGVuIHVwZGF0ZSBpdC4gWW91IHdpbGwgdGhl biBnZXQgdG8gdXNlCj4gdGhlIGJhc2UgZGIgZmlsZXMgYW5kIGp1c3QgbmVlZCB0byBkb3dubG9h ZCB0aGUgZGlmZnMuIApJIGRpZCB0aGlzIGV4cGVyaW1lbnQgb24gbXkgRmVkb3JhIDE0IHdvcmtz dGF0aW9uLCBidXQsIGl0IHNob3VsZApkZW1vbnN0cmF0ZSB0aGUgaXNzdWUuCgojIHl1bSAtLWRp c2FibGVyZXBvPXVwZGF0ZXMgaW5zdGFsbCBjbGFtYXYgY2xhbWF2LWRhdGEgY2xhbWF2LXVwZGF0 ZQoKY2xhbWF2LWRhdGEtZW1wdHkgaW5zdGFsbHMgYnkgZGVmYXVsdCwgc28gaGFkIHRvIHNwZWNp ZnkgdG8gbG9hZCB0aGUgb25lCndpdGggdGhlIGRhdGFiYXNlIGZpbGVzLCBJIHNwZWNpZmllZCB0 byBkaXNhYmxlIHRoZSB1cGRhdGVzIHJlcG8gdG8KaW50ZW50aW9uYWxseSBpbnN0YWxsIGEgb2xk ZXIgdmVyc2lvbi4KCiMgbHMgL3Zhci9saWIvY2xhbWF2LwpkYWlseS5jdmQgIG1haW4uY3ZkCgoj IHZpIC9ldGMvZnJlc2hjbGFtLmNvbmYgKGNvbW1lbnQgb3V0IHRoZSBFeGFtcGxlIGxpbmUpCiMg ZnJlc2hjbGFtCgojIGxzIC92YXIvbGliL2NsYW1hdi8KYnl0ZWNvZGUuY3ZkICBkYWlseS5jdmQg IG1haW4uY2xkICBtaXJyb3JzLmRhdAoKIyB5dW0gdXBkYXRlIGNsYW1hdgoKIyBscyAvdmFyL2xp Yi9jbGFtYXYvCmJ5dGVjb2RlLmN2ZCAgZGFpbHkuY3ZkICBkYWlseS5jdmQucnBtc2F2ZSAgbWFp bi5jbGQgIG1haW4uY3ZkICBtaXJyb3JzLmRhdAoKIyBjbGFtc2NhbgpMaWJDbGFtQVYgV2Fybmlu ZzogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKTGli Q2xhbUFWIFdhcm5pbmc6ICoqKiAgVGhlIHZpcnVzIGRhdGFiYXNlIGlzIG9sZGVyIHRoYW4gNyBk YXlzISAgKioqCkxpYkNsYW1BViBXYXJuaW5nOiAqKiogICBQbGVhc2UgdXBkYXRlIGl0IGFzIHNv b24gYXMgcG9zc2libGUuICAgICoqKgpMaWJDbGFtQVYgV2FybmluZzogKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKTGliQ2xhbUFWIFdhcm5pbmc6IERl dGVjdGVkIGR1cGxpY2F0ZSBkYXRhYmFzZXMgL3Zhci9saWIvY2xhbWF2L21haW4uY3ZkCmFuZCAv dmFyL2xpYi9jbGFtYXYvbWFpbi5jbGQsIHBsZWFzZSBtYW51YWxseSByZW1vdmUgb25lIG9mIHRo ZW0KClRoZSB1cGRhdGUgaW5zdGFsbGVkIGEgb2xkZXIgZGF0YWJhc2UgdGhhbiB3aGF0IHdhcyBh bHJlYWR5IG9uIGRpc2ssIGFuZAphbHNvIGxlZnQgY2xhbWF2IGluIGEgY29uZGl0aW9uIHRoYXQg aGFzIHRvIGJlIG1hbnVhbGx5IGNvcnJlY3RlZC4gIFRoZQotZW1wdHkgcGFja2FnZSBkb2Vzbid0 IGhhdmUgdGhpcyBpc3N1ZS4KPiBrZXZpbgo+Cj4KPiBfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwo+IGVwZWwtZGV2ZWwtbGlzdCBtYWlsaW5nIGxpc3QKPiBl cGVsLWRldmVsLWxpc3RAcmVkaGF0LmNvbQo+IGh0dHBzOi8vd3d3LnJlZGhhdC5jb20vbWFpbG1h bi9saXN0aW5mby9lcGVsLWRldmVsLWxpc3QKCgotLS0tLS0tLS0tLS0tLTAxMDkwODA1MDIwNTAy MDUwODA3MDUwNQpDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xCkNv bnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKCjwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8v VzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iPgo8aHRtbD4KICA8aGVhZD4KICAg IDxtZXRhIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIgogICAgICBodHRw LWVxdWl2PSJDb250ZW50LVR5cGUiPgogIDwvaGVhZD4KICA8Ym9keSB0ZXh0PSIjMDAwMDAwIiBi Z2NvbG9yPSIjZmZmZmZmIj4KICAgIE9uIDAyLzE5LzIwMTEgMDM6NTMgUE0sIEtldmluIEZlbnpp IHdyb3RlOgogICAgPGJsb2NrcXVvdGUgY2l0ZT0ibWlkOjIwMTEwMjE5MTM1MzQ5LjZiZjE4ZTA2 QG9obS5zY3J5ZS5jb20iCiAgICAgIHR5cGU9ImNpdGUiPgogICAgICA8cHJlIHdyYXA9IiI+T24g RnJpLCAxOCBGZWIgMjAxMSAxMDozNjoxMyAtMDUwMApGcmVkIFdpdHRla2luZCA8YSBjbGFzcz0i bW96LXR4dC1saW5rLXJmYzIzOTZFIiBocmVmPSJtYWlsdG86cm9tQHR3aXN0ZXIuZHluZG5zLm9y ZyI+Jmx0O3JvbUB0d2lzdGVyLmR5bmRucy5vcmcmZ3Q7PC9hPiB3cm90ZToKCjwvcHJlPgogICAg ICA8YmxvY2txdW90ZSB0eXBlPSJjaXRlIj4KICAgICAgICA8cHJlIHdyYXA9IiI+SSBrbm93IHRo aXMgaXMgbm90IGZyb20geW91ciBzcGVjIGZpbGUsIGJ1dCwgaXQgc2hvd3Mgd2hhdCBJIHdhcwp3 cml0aW5nIGFib3V0CgojIHJwbSAtcSAtbCAtcCBjbGFtYXYtZGF0YS0wLjk2LjUtMTMwMWVsNS54 ODZfNjQucnBtCi92YXIvbGliL2NsYW1hdi9kYWlseS5jdmQKL3Zhci9saWIvY2xhbWF2L21haW4u Y3ZkCgojIGxzIC1sIC92YXIvbGliL2NsYW1hdi8KdG90YWwgNjc0NDAKLXJ3LXItLXItLSAxIGNs YW11cGRhdGUgY2xhbXVwZGF0ZSAgIDQ1OTI2NCBGZWIgMTUgMTE6MjQgYnl0ZWNvZGUuY2xkCi1y dy1yLS1yLS0gMSBjbGFtdXBkYXRlIGNsYW11cGRhdGUgIDMwNzE0ODggRmViIDE4IDEwOjM2IGRh aWx5LmNsZAotcnctci0tci0tIDEgY2xhbXVwZGF0ZSBjbGFtdXBkYXRlIDY1NDIyMzM2IE5vdiAx NCAxMToyNCBtYWluLmNsZAotcnctLS0tLS0tIDEgY2xhbXVwZGF0ZSBjbGFtdXBkYXRlICAgICAg ODg0IEZlYiAxOCAxMDozNiBtaXJyb3JzLmRhdAoKVGhlIGZpbGUgZXh0ZW5zaW9ucyBhcmUgZGlm ZmVyZW50LCB3aHkgdGhpcyBpcywgSSBkbyBub3Qga25vdy4gIAo8L3ByZT4KICAgICAgPC9ibG9j a3F1b3RlPgogICAgICA8cHJlIHdyYXA9IiI+CldlbGwsIHRoYXRzIG5vcm1hbCBJIHRoaW5rLi4u IHNvbWUgb2YgdGhlIGZpbGVzIGFyZSBkaWZmcyBvZiBvdGhlcnMsIHNvCml0IG9ubHkgaGFzIHRv IHVwZGF0ZSBhIGJhc2UgZmlsZSB3aXRoIGRhaWx5IHVwZGF0ZXMuIAoKU28gdGhlcmUncyBhIGJh c2UgZmlsZSB0aGF0IGhhcyB0aGUgc2lnbmF0dXJlcyBmcm9tIHRoZSB0aW1lIHRoZQp2ZXJzaW9u IHdhcyByZWxlYXNlZCwgYW5kIHRoZW4gZGlmZi91cGRhdGUgZmlsZXMgdGhhdCBhcHBseSB0byB0 aGF0IHRvCmNyZWF0ZSB0aGUgY3VycmVudCB1cCB0byBkYXRlIHNpZ25hdHVyZXMuIAoKPC9wcmU+ CiAgICAgIDxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPgogICAgICAgIDxwcmUgd3JhcD0iIj5JTUhP Cml0J3MgbmljZSB0byBoYXZlIHRoZSBvcHRpb24gb2Ygbm90IGhhdmluZyBSUE0gbWVzcyB3aXRo IHRoZSBkYXRhYmFzZSwKdGhlICItZW1wdHkiIHBhY2thZ2UgaXMgYSB3YXkgdG8gZG8gdGhhdC4g IElmIHlvdSBhcmUgdXBkYXRpbmcgY2xhbWF2LAp0aGVuIGNoYW5jZXMgYXJlIHRoZSBkYiBvbiBk aXNrIGlzIG5ld2VyIHRoYW4gdGhlIG9uZSBpbiB0aGUgdXBkYXRlZApSUE0gdGhhdCBpcyBiZWlu ZyBpbnN0YWxsZWQuIFRoZSBkYXRhYmFzZSBpbmNsdWRlZCB3aXRoIHRoZSBSUE0gaXMKYWxzbyBt b3N0IGxpa2VseSBvdXQtb2YtZGF0ZSBieSB0aGUgdGltZSB0aGUgUlBNIGlzIHJlbGVhc2VkLCBz bywKcGVyc29uYWxseSwgSSBzZWUgbW9yZSB2YWx1ZSBpbiBhIGRhdGFiYXNlIGluc3RhbGxlZCB2 aWEgZnJlc2hjbGFtLAp0aGFuIG9uZSBpbnN0YWxsZWQgdmlhIHRoZSBwYWNrYWdlLgo8L3ByZT4K ICAgICAgPC9ibG9ja3F1b3RlPgogICAgICA8cHJlIHdyYXA9IiI+ClN1cmUsIGJ1dCB3aGF0IGRv ZXMgaXQgaHVydD8gSXQncyBub3QgdGhhdCBiaWcsIElNSE8sIHNvIHlvdSBjYW4ganVzdAppbnN0 YWxsIHRoZSBkYiBhcyBzaGlwcGVkIGFuZCB0aGVuIHVwZGF0ZSBpdC4gWW91IHdpbGwgdGhlbiBn ZXQgdG8gdXNlCnRoZSBiYXNlIGRiIGZpbGVzIGFuZCBqdXN0IG5lZWQgdG8gZG93bmxvYWQgdGhl IGRpZmZzLiAKPC9wcmU+CiAgICA8L2Jsb2NrcXVvdGU+CiAgICBJIGRpZCB0aGlzIGV4cGVyaW1l bnQgb24gbXkgRmVkb3JhIDE0IHdvcmtzdGF0aW9uLCBidXQsIGl0IHNob3VsZAogICAgZGVtb25z dHJhdGUgdGhlIGlzc3VlLjxicj4KICAgIDxicj4KICAgICMgeXVtIC0tZGlzYWJsZXJlcG89dXBk YXRlcyBpbnN0YWxsIGNsYW1hdiBjbGFtYXYtZGF0YSBjbGFtYXYtdXBkYXRlPGJyPgogICAgPGJy PgogICAgY2xhbWF2LWRhdGEtZW1wdHkgaW5zdGFsbHMgYnkgZGVmYXVsdCwgc28gaGFkIHRvIHNw ZWNpZnkgdG8gbG9hZCB0aGUKICAgIG9uZSB3aXRoIHRoZSBkYXRhYmFzZSBmaWxlcywgSSBzcGVj aWZpZWQgdG8gZGlzYWJsZSB0aGUgdXBkYXRlcyByZXBvCiAgICB0byBpbnRlbnRpb25hbGx5IGlu c3RhbGwgYSBvbGRlciB2ZXJzaW9uLjxicj4KICAgIDxicj4KICAgICMgbHMgL3Zhci9saWIvY2xh bWF2Lzxicj4KICAgIGRhaWx5LmN2ZCZuYnNwOyBtYWluLmN2ZDxicj4KICAgIDxicj4KICAgICMg dmkgL2V0Yy9mcmVzaGNsYW0uY29uZiAoY29tbWVudCBvdXQgdGhlIEV4YW1wbGUgbGluZSk8YnI+ CiAgICAjIGZyZXNoY2xhbTxicj4KICAgIDxicj4KICAgICMgbHMgL3Zhci9saWIvY2xhbWF2Lzxi cj4KICAgIGJ5dGVjb2RlLmN2ZCZuYnNwOyBkYWlseS5jdmQmbmJzcDsgbWFpbi5jbGQmbmJzcDsg bWlycm9ycy5kYXQ8YnI+CiAgICA8YnI+CiAgICAjIHl1bSB1cGRhdGUgY2xhbWF2PGJyPgogICAg PGJyPgogICAgIyBscyAvdmFyL2xpYi9jbGFtYXYvPGJyPgogICAgYnl0ZWNvZGUuY3ZkJm5ic3A7 IGRhaWx5LmN2ZCZuYnNwOyBkYWlseS5jdmQucnBtc2F2ZSZuYnNwOyBtYWluLmNsZCZuYnNwOyBt YWluLmN2ZCZuYnNwOwogICAgbWlycm9ycy5kYXQ8YnI+CiAgICA8YnI+CiAgICAjIGNsYW1zY2Fu PGJyPgogICAgTGliQ2xhbUFWIFdhcm5pbmc6CiAgICAqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKjxicj4KICAgIExpYkNsYW1BViBXYXJuaW5nOiAqKiom bmJzcDsgVGhlIHZpcnVzIGRhdGFiYXNlIGlzIG9sZGVyIHRoYW4gNyBkYXlzISZuYnNwOwogICAg KioqPGJyPgogICAgTGliQ2xhbUFWIFdhcm5pbmc6ICoqKiZuYnNwOyZuYnNwOyBQbGVhc2UgdXBk YXRlIGl0IGFzIHNvb24gYXMgcG9zc2libGUuJm5ic3A7Jm5ic3A7Jm5ic3A7CiAgICAqKio8YnI+ CiAgICBMaWJDbGFtQVYgV2FybmluZzoKICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqPGJyPgogICAgTGliQ2xhbUFWIFdhcm5pbmc6IERldGVjdGVk IGR1cGxpY2F0ZSBkYXRhYmFzZXMKICAgIC92YXIvbGliL2NsYW1hdi9tYWluLmN2ZCBhbmQgL3Zh ci9saWIvY2xhbWF2L21haW4uY2xkLCBwbGVhc2UKICAgIG1hbnVhbGx5IHJlbW92ZSBvbmUgb2Yg dGhlbTxicj4KICAgIDxicj4KICAgIFRoZSB1cGRhdGUgaW5zdGFsbGVkIGEgb2xkZXIgZGF0YWJh c2UgdGhhbiB3aGF0IHdhcyBhbHJlYWR5IG9uIGRpc2ssCiAgICBhbmQgYWxzbyBsZWZ0IGNsYW1h diBpbiBhIGNvbmRpdGlvbiB0aGF0IGhhcyB0byBiZSBtYW51YWxseQogICAgY29ycmVjdGVkLiZu YnNwOyBUaGUgLWVtcHR5IHBhY2thZ2UgZG9lc24ndCBoYXZlIHRoaXMgaXNzdWUuPGJyPgogICAg PGJsb2NrcXVvdGUgY2l0ZT0ibWlkOjIwMTEwMjE5MTM1MzQ5LjZiZjE4ZTA2QG9obS5zY3J5ZS5j b20iCiAgICAgIHR5cGU9ImNpdGUiPgogICAgICA8cHJlIHdyYXA9IiI+CmtldmluCjwvcHJlPgog ICAgICA8cHJlIHdyYXA9IiI+CjxmaWVsZHNldCBjbGFzcz0ibWltZUF0dGFjaG1lbnRIZWFkZXIi PjwvZmllbGRzZXQ+Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmVwZWwtZGV2ZWwtbGlzdCBtYWlsaW5nIGxpc3QKPGEgY2xhc3M9Im1vei10eHQtbGluay1h YmJyZXZpYXRlZCIgaHJlZj0ibWFpbHRvOmVwZWwtZGV2ZWwtbGlzdEByZWRoYXQuY29tIj5lcGVs LWRldmVsLWxpc3RAcmVkaGF0LmNvbTwvYT4KPGEgY2xhc3M9Im1vei10eHQtbGluay1mcmVldGV4 dCIgaHJlZj0iaHR0cHM6Ly93d3cucmVkaGF0LmNvbS9tYWlsbWFuL2xpc3RpbmZvL2VwZWwtZGV2 ZWwtbGlzdCI+aHR0cHM6Ly93d3cucmVkaGF0LmNvbS9tYWlsbWFuL2xpc3RpbmZvL2VwZWwtZGV2 ZWwtbGlzdDwvYT4KPC9wcmU+CiAgICA8L2Jsb2NrcXVvdGU+CiAgICA8YnI+CiAgPC9ib2R5Pgo8 L2h0bWw+CgotLS0tLS0tLS0tLS0tLTAxMDkwODA1MDIwNTAyMDUwODA3MDUwNS0tCgo= --===============0091641312066743181==--