Your message dated Tue, 05 Apr 2016 18:49:25 +0000 with message-id <[email protected]> and subject line Bug#600262: fixed in apt 1.2.10 has caused the Debian Bug report #600262, regarding apt: random_sleep should not be executed if anacron has started the cron.daily script to be marked as done.
This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact [email protected] immediately.) -- 600262: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=600262 Debian Bug Tracking System Contact [email protected] with problems
--- Begin Message ---Package: apt Version: 0.8.6 Severity: wishlist Tags: patch Hi, Currently a 'random_sleep' function is implemented in /etc/cron.daily/apt to avoid a DoS on the mirrors. However, on desktop and workstation systems the script is not executed at 6:xx in the morning but later at random times after boot by anacron. The reason is simple, these systems are not up all the time. Please apply this patch to avoid 'random_sleep' if the script was started by anacron. --- apt_0.8x 2010-09-17 23:17:26.000000000 +0300 +++ /etc/cron.daily/apt 2010-10-15 11:24:38.287104775 +0300 @@ -415,7 +415,7 @@ # sleep random amount of time to avoid hitting the # mirrors at the same time -random_sleep +pidof -n anacron >/dev/null || random_sleep # update package lists UPDATED=0 Thanks -- Package-specific info: -- (no /etc/apt/preferences present) -- -- (/etc/apt/sources.list present, but not submitted) -- -- System Information: Debian Release: squeeze/sid APT prefers testing APT policy: (500, 'testing'), (200, 'unstable'), (100, 'experimental') Architecture: i386 (i686) Kernel: Linux 2.6.32-5-686 (SMP w/2 CPU cores) Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages apt depends on: ii debian-archive-keyring 2010.08.28 GnuPG archive keys of the Debian a ii gnupg 1.4.10-4 GNU privacy guard - a free PGP rep ii libc6 2.11.2-6 Embedded GNU C Library: Shared lib ii libgcc1 1:4.4.5-2 GCC support library ii libstdc++6 4.4.5-2 The GNU Standard C++ Library v3 ii zlib1g 1:1.2.3.4.dfsg-3 compression library - runtime apt recommends no packages. Versions of packages apt suggests: pn apt-doc <none> (no description available) ii aptitude 0.6.3-3.1 terminal-based package manager (te ii bzip2 1.0.5-6 high-quality block-sorting file co ii dpkg-dev 1.15.8.5 Debian package development tools ii lzma 4.43-14 Compression method of 7z format in ii python-apt 0.7.98.1 Python interface to libapt-pkg ii synaptic 0.70~pre1+b1 Graphical package manager -- Configuration Files: /etc/cron.daily/apt changed: check_stamp() { stamp="$1" interval="$2" if [ $interval -eq 0 ]; then debug_echo "check_stamp: interval=0" # treat as no time has passed return 1 fi if [ ! -f $stamp ]; then debug_echo "check_stamp: missing time stamp file: $stamp." # treat as enough time has passed return 0 fi # compare midnight today to midnight the day the stamp was updated stamp_file="$stamp" stamp=$(date --date=$(date -r $stamp_file --iso-8601) +%s 2>/dev/null) if [ "$?" != "0" ]; then # Due to some timezones returning 'invalid date' for midnight on # certain dates (eg America/Sao_Paulo), if date returns with error # remove the stamp file and return 0. See coreutils bug: # http://lists.gnu.org/archive/html/bug-coreutils/2007-09/msg00176.html rm -f "$stamp_file" return 0 fi now=$(date --date=$(date --iso-8601) +%s 2>/dev/null) if [ "$?" != "0" ]; then # As above, due to some timezones returning 'invalid date' for midnight # on certain dates (eg America/Sao_Paulo), if date returns with error # return 0. return 0 fi delta=$(($now-$stamp)) # intervall is in days, convert to sec. interval=$(($interval*60*60*24)) debug_echo "check_stamp: interval=$interval, now=$now, stamp=$stamp, delta=$delta (sec)" # remove timestamps a day (or more) in the future and force re-check if [ $stamp -gt $(($now+86400)) ]; then echo "WARNING: file $stamp_file has a timestamp in the future: $stamp" rm -f "$stamp_file" return 0 fi if [ $delta -ge $interval ]; then return 0 fi return 1 } update_stamp() { stamp="$1" touch $stamp } check_size_constraints() { MaxAge=0 eval $(apt-config shell MaxAge APT::Archives::MaxAge) eval $(apt-config shell MaxAge APT::Periodic::MaxAge) MinAge=2 eval $(apt-config shell MinAge APT::Archives::MinAge) eval $(apt-config shell MinAge APT::Periodic::MinAge) MaxSize=0 eval $(apt-config shell MaxSize APT::Archives::MaxSize) eval $(apt-config shell MaxSize APT::Periodic::MaxSize) Cache="/var/cache/apt/archives/" eval $(apt-config shell Cache Dir::Cache::archives/d) # sanity check if [ -z "$Cache" ]; then echo "empty Dir::Cache::archives, exiting" exit fi # check age if [ ! $MaxAge -eq 0 ] && [ ! $MinAge -eq 0 ]; then debug_echo "aged: ctime <$MaxAge and mtime <$MaxAge and ctime>$MinAge and mtime>$MinAge" find $Cache -name "*.deb" \( -mtime +$MaxAge -and -ctime +$MaxAge \) -and -not \( -mtime -$MinAge -or -ctime -$MinAge \) -print0 | xargs -r -0 rm -f elif [ ! $MaxAge -eq 0 ]; then debug_echo "aged: ctime <$MaxAge and mtime <$MaxAge only" find $Cache -name "*.deb" -ctime +$MaxAge -and -mtime +$MaxAge -print0 | xargs -r -0 rm -f else debug_echo "skip aging since MaxAge is 0" fi # check size if [ ! $MaxSize -eq 0 ]; then # maxSize is in MB MaxSize=$(($MaxSize*1024)) #get current time now=$(date --date=$(date --iso-8601) +%s) MinAge=$(($MinAge*24*60*60)) # reverse-sort by mtime for file in $(ls -rt $Cache/*.deb 2>/dev/null); do du=$(du -s $Cache) size=${du%%/*} # check if the cache is small enough if [ $size -lt $MaxSize ]; then debug_echo "end remove by archive size: size=$size < $MaxSize" break fi # check for MinAge of the file if [ $MinAge -ne 0 ]; then # check both ctime and mtime mtime=$(stat -c %Y $file) ctime=$(stat -c %Z $file) if [ $mtime -gt $ctime ]; then delta=$(($now-$mtime)) else delta=$(($now-$ctime)) fi if [ $delta -le $MinAge ]; then debug_echo "skip remove by archive size: $file, delta=$delta < $MinAgeSec" break else # delete oldest file debug_echo "remove by archive size: $file, delta=$delta >= $MinAgeSec (sec), size=$size >= $MaxSize" rm -f $file fi fi done fi } do_cache_backup() { BackupArchiveInterval="$1" if [ $BackupArchiveInterval -eq 0 ]; then return fi # Set default values and normalize CacheDir="/var/cache/apt" eval $(apt-config shell CacheDir Dir::Cache/d) CacheDir=${CacheDir%/} if [ -z "$CacheDir" ]; then debug_echo "practically empty Dir::Cache, exiting" return 0 fi Cache="${CacheDir}/archives/" eval $(apt-config shell Cache Dir::Cache::Archives/d) if [ -z "$Cache" ]; then debug_echo "practically empty Dir::Cache::archives, exiting" return 0 fi BackupLevel=3 eval $(apt-config shell BackupLevel APT::Periodic::BackupLevel) if [ $BackupLevel -le 1 ]; then BackupLevel=2 ; fi Back="${CacheDir}/backup/" eval $(apt-config shell Back Dir::Cache::Backup/d) if [ -z "$Back" ]; then echo "practically empty Dir::Cache::Backup, exiting" 1>&2 return fi CacheArchive="$(basename "${Cache}")" test -n "${CacheArchive}" || CacheArchive="archives" BackX="${Back}${CacheArchive}/" for x in $(seq 0 1 $((${BackupLevel}-1))); do eval "Back${x}=${Back}${x}/" done # backup after n-days if archive contents changed. # (This uses hardlink to save disk space) BACKUP_ARCHIVE_STAMP=/var/lib/apt/periodic/backup-archive-stamp if check_stamp $BACKUP_ARCHIVE_STAMP $BackupArchiveInterval; then if [ $({(cd $Cache 2>/dev/null; find . -name "*.deb"); (cd $Back0 2>/dev/null;find . -name "*.deb") ;}| sort|uniq -u|wc -l) -ne 0 ]; then mkdir -p $Back rm -rf $Back$((${BackupLevel}-1)) for y in $(seq $((${BackupLevel}-1)) -1 1); do eval BackY=${Back}$y eval BackZ=${Back}$(($y-1)) if [ -e $BackZ ]; then mv -f $BackZ $BackY ; fi done cp -la $Cache $Back ; mv -f $BackX $Back0 update_stamp $BACKUP_ARCHIVE_STAMP debug_echo "backup with hardlinks. (success)" else debug_echo "skip backup since same content." fi else debug_echo "skip backup since too new." fi } random_sleep() { RandomSleep=1800 eval $(apt-config shell RandomSleep APT::Periodic::RandomSleep) if [ $RandomSleep -eq 0 ]; then return fi if [ -z "$RANDOM" ] ; then # A fix for shells that do not have this bash feature. RANDOM=$(dd if=/dev/urandom count=1 2> /dev/null | cksum | cut -c"1-5") fi TIME=$(($RANDOM % $RandomSleep)) debug_echo "sleeping for $TIME seconds" sleep $TIME } debug_echo() { # Display message if $VERBOSE >= 1 if [ "$VERBOSE" -ge 1 ]; then echo $1 1>&2 fi } if cd /var/backups ; then if ! cmp -s apt.extended_states.0 /var/lib/apt/extended_states; then cp -p /var/lib/apt/extended_states apt.extended_states savelog -c 7 apt.extended_states >/dev/null fi fi if ! which apt-config >/dev/null ; then exit 0 fi AutoAptEnable=1 # default is yes eval $(apt-config shell AutoAptEnable APT::Periodic::Enable) if [ $AutoAptEnable -eq 0 ]; then exit 0 fi VERBOSE=0 eval $(apt-config shell VERBOSE APT::Periodic::Verbose) debug_echo "verbose level $VERBOSE" if [ "$VERBOSE" -le 2 ]; then # quiet for 0,1,2 XSTDOUT=">/dev/null" XSTDERR="2>/dev/null" XAPTOPT="-qq" XUUPOPT="" else XSTDOUT="" XSTDERR="" XAPTOPT="" XUUPOPT="-d" fi if [ "$VERBOSE" -ge 3 ]; then # trace output set -x fi if which on_ac_power >/dev/null; then on_ac_power POWER=$? if [ $POWER -eq 1 ]; then debug_echo "exit: system NOT on main power" exit 0 elif [ $POWER -ne 0 ]; then debug_echo "power status ($POWER) undetermined, continuing" fi debug_echo "system is on main power." fi if which apt-get >/dev/null && ! eval apt-get check -f $XAPTOPT $XSTDERR ; then debug_echo "error encountered in cron job with \"apt-get check\"." exit 0 fi now=$(date +%s) UpdateInterval=0 eval $(apt-config shell UpdateInterval APT::Periodic::Update-Package-Lists) DownloadUpgradeableInterval=0 eval $(apt-config shell DownloadUpgradeableInterval APT::Periodic::Download-Upgradeable-Packages) UnattendedUpgradeInterval=0 eval $(apt-config shell UnattendedUpgradeInterval APT::Periodic::Unattended-Upgrade) AutocleanInterval=0 eval $(apt-config shell AutocleanInterval APT::Periodic::AutocleanInterval) BackupArchiveInterval=0 eval $(apt-config shell BackupArchiveInterval APT::Periodic::BackupArchiveInterval) Debdelta=1 eval $(apt-config shell Debdelta APT::Periodic::Download-Upgradeable-Packages-Debdelta) if [ $UpdateInterval -eq 0 ] && [ $DownloadUpgradeableInterval -eq 0 ] && [ $UnattendedUpgradeInterval -eq 0 ] && [ $BackupArchiveInterval -eq 0 ] && [ $AutocleanInterval -eq 0 ]; then # check cache size check_size_constraints exit 0 fi do_cache_backup $BackupArchiveInterval pidof -n anacron || random_sleep UPDATED=0 UPDATE_STAMP=/var/lib/apt/periodic/update-stamp if check_stamp $UPDATE_STAMP $UpdateInterval; then if eval apt-get $XAPTOPT -y update $XSTDERR; then debug_echo "download updated metadata (success)." if which dbus-send >/dev/null && pidof dbus-daemon >/dev/null; then if dbus-send --system / app.apt.dbus.updated boolean:true ; then debug_echo "send dbus signal (success)" else debug_echo "send dbus signal (error)" fi else debug_echo "dbus signal not send (command not available)" fi update_stamp $UPDATE_STAMP UPDATED=1 else debug_echo "download updated metadata (error)" fi else debug_echo "download updated metadata (not run)." fi DOWNLOAD_UPGRADEABLE_STAMP=/var/lib/apt/periodic/download-upgradeable-stamp if [ $UPDATED -eq 1 ] && check_stamp $DOWNLOAD_UPGRADEABLE_STAMP $DownloadUpgradeableInterval; then if [ $Debdelta -eq 1 ]; then debdelta-upgrade >/dev/null 2>&1 || true fi if eval apt-get $XAPTOPT -y -d dist-upgrade $XSTDERR; then update_stamp $DOWNLOAD_UPGRADEABLE_STAMP debug_echo "download upgradable (success)" else debug_echo "download upgradable (error)" fi else debug_echo "download upgradable (not run)" fi UPGRADE_STAMP=/var/lib/apt/periodic/upgrade-stamp if [ $UPDATED -eq 1 ] && which unattended-upgrade >/dev/null && check_stamp $UPGRADE_STAMP $UnattendedUpgradeInterval; then if unattended-upgrade $XUUPOPT; then update_stamp $UPGRADE_STAMP debug_echo "unattended-upgrade (success)" else debug_echo "unattended-upgrade (error)" fi else debug_echo "unattended-upgrade (not run)" fi AUTOCLEAN_STAMP=/var/lib/apt/periodic/autoclean-stamp if check_stamp $AUTOCLEAN_STAMP $AutocleanInterval; then if eval apt-get $XAPTOPT -y autoclean $XSTDERR; then debug_echo "autoclean (success)." update_stamp $AUTOCLEAN_STAMP else debug_echo "autoclean (error)" fi else debug_echo "autoclean (not run)" fi check_size_constraints -- no debconf information
--- End Message ---
--- Begin Message ---Source: apt Source-Version: 1.2.10 We believe that the bug you reported is fixed in the latest version of apt, which is due to be installed in the Debian FTP archive. A summary of the changes between this version and the previous one is attached. Thank you for reporting the bug, which will now be closed. If you have further comments please address them to [email protected], and the maintainer will reopen the bug report if appropriate. Debian distribution maintenance software pp. Michael Vogt <[email protected]> (supplier of updated apt package) (This message was generated automatically at their request; if you believe that there is a problem with it please contact the archive administrators by mailing [email protected]) -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Format: 1.8 Date: Tue, 05 Apr 2016 20:23:47 +0200 Source: apt Binary: apt libapt-pkg5.0 libapt-inst2.0 apt-doc libapt-pkg-dev libapt-pkg-doc apt-utils apt-transport-https Architecture: source amd64 all Version: 1.2.10 Distribution: unstable Urgency: medium Maintainer: APT Development Team <[email protected]> Changed-By: Michael Vogt <[email protected]> Description: apt - commandline package manager apt-doc - documentation for APT apt-transport-https - https download transport for APT apt-utils - package management related utility programs libapt-inst2.0 - deb package format runtime library libapt-pkg-dev - development files for APT's libapt-pkg and libapt-inst libapt-pkg-doc - documentation for APT development libapt-pkg5.0 - package management runtime library Closes: 600262 663290 709675 819938 Changes: apt (1.2.10) unstable; urgency=medium . [ Zhou Mo ] * zh_CN.po: update simplified Chinese translation. (100%) . [ Julian Andres Klode ] * test-apt-download-progress: Use a larger file for testing * Allow lowering trust level of a hash via config . [ Michael Vogt ] * Use systemd.timer instead of a cron job (Closes: #600262, #709675, #663290) (LP: #246381, #727685) . [ David Kalnischkies ] * use buffered writing for InRelease splitting . [ Takuma Yamada ] * Japanese program translation update (Closes: 819938) Checksums-Sha1: 00d3245d3e355f7dff276d620542738ef321e2de 2357 apt_1.2.10.dsc 700952f0cdb3729cd645961346cf62fdc02c168a 2036516 apt_1.2.10.tar.xz 24c77bec740b70283f528a096e2dd02cc81496f5 3788170 apt-dbgsym_1.2.10_amd64.deb 77ff2475406b4edf54d1ce70ce6806a8a619affe 343162 apt-doc_1.2.10_all.deb 415114d7c3ffbebec31daf8776556d6918ccdf80 215744 apt-transport-https-dbgsym_1.2.10_amd64.deb d1262bcd010f2ddf14788c5faf96c3158d5be23b 150856 apt-transport-https_1.2.10_amd64.deb 12444c404da0668965801fca1d0edee53f1a8108 1119000 apt-utils-dbgsym_1.2.10_amd64.deb 87210f3e7228017fd44760fb3b35aaefc6c4d100 386072 apt-utils_1.2.10_amd64.deb e0b38c2aa9d81bdd5f9c0ca18ea8dd163cab1fcb 1156980 apt_1.2.10_amd64.deb e0e37b8429b62ede2350386c985b407fa45a3d8a 204504 libapt-inst2.0-dbgsym_1.2.10_amd64.deb 232cf2392e4cb3c754374e31bea1fcd45beeee3e 180932 libapt-inst2.0_1.2.10_amd64.deb 940730adc6ceae0939cd4f9e0b180a543801f2d2 221860 libapt-pkg-dev_1.2.10_amd64.deb 6b79ad3bc9d1ab300e1c7656b055b9c3f73cccc5 1025498 libapt-pkg-doc_1.2.10_all.deb 5b2cb2490e51a80e68af8fc61c6d552e7e6fab00 5012454 libapt-pkg5.0-dbgsym_1.2.10_amd64.deb 76d3e3942c2dc75dcecc113326844c4946588caa 817992 libapt-pkg5.0_1.2.10_amd64.deb Checksums-Sha256: e52d95b138ec100d1a2dc1e645022fadf6c4e1e4396409122270ba3c6d53b35f 2357 apt_1.2.10.dsc 5c08901d487ee386bbbd0c119808ddfe39a8ec90e33b3cf6763063c35418817a 2036516 apt_1.2.10.tar.xz f8c854a375e1590692b57d7bb9d5c4fba1614db37639afda86ce1f2949bee018 3788170 apt-dbgsym_1.2.10_amd64.deb da093f39f30d651a698843e2203ab49836922b31e4ba6e50d6a3ed839c52dfda 343162 apt-doc_1.2.10_all.deb 9e682762dade181b7a1321b7fe3c1e29d753f611ce3724c0bf9674ff753b5469 215744 apt-transport-https-dbgsym_1.2.10_amd64.deb f169fa8cc3bdfb4bd6ef1f226039eaec4c0351189872491c17c835e85e3a5f0a 150856 apt-transport-https_1.2.10_amd64.deb 2a9b40a875fa8fcc8df460f1b9406b8174b558b19c47b7bfe0e3804e8b7fa9c3 1119000 apt-utils-dbgsym_1.2.10_amd64.deb cd9e7dcc2ecc0128adf80b1f1648d18e1e612f6d0870d9f0442ee5e82c96b3b3 386072 apt-utils_1.2.10_amd64.deb c96781303016d6317abebd236d0b6539eedd19a30326be708357199c1bee1db5 1156980 apt_1.2.10_amd64.deb 7594c81cf7fe7714c6a06d7712c5e833190796355f7eac2ecf9713dd396a5599 204504 libapt-inst2.0-dbgsym_1.2.10_amd64.deb ddf505fcaeaa4e242af3b5ccec8fc3683a6ea532618b0b5c1d156e78e8605d04 180932 libapt-inst2.0_1.2.10_amd64.deb df0a5a809add0364ae85c6bec8081ef8e210667b0075613be517d15be6718f21 221860 libapt-pkg-dev_1.2.10_amd64.deb b0a780569d86a4be7ac899fb608db8bd91449c2879aa1ec0b56565379057aa98 1025498 libapt-pkg-doc_1.2.10_all.deb b878c2f082cc037ceab7ee6d1ac4c8bae9e2dc71e23a8c05b426de86437b39a3 5012454 libapt-pkg5.0-dbgsym_1.2.10_amd64.deb bae326fa189a98db9d3b911bb397c65d8ca87658934d2b51c9b9f65bbf44d460 817992 libapt-pkg5.0_1.2.10_amd64.deb Files: 7f2b6becfb67bd5ade3aa00d108b9f1c 2357 admin important apt_1.2.10.dsc 89b118c95a1c28fafa7bfcfb5960f776 2036516 admin important apt_1.2.10.tar.xz 3437d18bddfa217ab8861cf41905db6a 3788170 debug extra apt-dbgsym_1.2.10_amd64.deb 50aedcfecde5c7a7b93de9afe683546d 343162 doc optional apt-doc_1.2.10_all.deb 54873da1c42eba0518a0f52d06337bd6 215744 debug extra apt-transport-https-dbgsym_1.2.10_amd64.deb e988b4e6fbfb7026b35ea366ab840640 150856 admin optional apt-transport-https_1.2.10_amd64.deb 1494bd0acc557621a011d955b33bcff8 1119000 debug extra apt-utils-dbgsym_1.2.10_amd64.deb 999b261dbb37a4a4500564d3dd76f7c7 386072 admin important apt-utils_1.2.10_amd64.deb 0f39ab36fbb9129c18343426604044c9 1156980 admin important apt_1.2.10_amd64.deb 53cc874095454aa54aa2ad16ea2e2193 204504 debug extra libapt-inst2.0-dbgsym_1.2.10_amd64.deb f46e8d140cb557f52d95a0125baa8282 180932 libs important libapt-inst2.0_1.2.10_amd64.deb f8cd6f01207cd307f0b771f9f85ade91 221860 libdevel optional libapt-pkg-dev_1.2.10_amd64.deb 9a96df6372b20ca5afb13a83a4396be7 1025498 doc optional libapt-pkg-doc_1.2.10_all.deb e4b6bc958ad944b13bc7f00e1a6898b7 5012454 debug extra libapt-pkg5.0-dbgsym_1.2.10_amd64.deb 2130e09fab49e33a034b2f74333d9c89 817992 libs important libapt-pkg5.0_1.2.10_amd64.deb -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBCAAGBQJXBAR5AAoJEJjKuzq9TKWe6S4P/08w9KGRNnLh1X4gfCi/P7Br idKLVH3e7e9y005fQO0ETc5vh0p0X0UBDQ/8/j92qMGgaYvtcKw9ijDaK9XSDwUI LC7PIfLkEXZ0XEuXyHfj4JS4NOzQA5pGef9SZpgtOy/ZolnVwp6Gvs0oMAK4S9oj GtQdInI8yLu984I+Etayriv4NvIYN0W2MwJhxaGwHtDqqcasWxr4ot59L9Zf0C+q yONGNCF58AqkLrNpSyhxAynFyMEw70VaxXsKYwZLfYpwkX4rDrgnNmoNVRJHo/bJ CrniPTqfhX3Aw1/mH32gNueq/Vkp0iBu4PocW6ophmBt4EaLvdM+wOHwR5P5vEyH h5W6IFsq16m0F+1ZKoLfPk/cz0y8YsYSP2/E2DlXP6n9gaoVyyUjaWF1zCEiPt42 dA7FTP7fSYISKpnh0PP1VQpDJhCe1XfxMn1Q861TatL5pjOyijeXVPiMFHdlNYjb jrQEFxux2yDNQWtLiGTPdgOGBrYLDm03F8ec5DAS8VgCsYWnTIaQZAGwwXZJ/Dm8 ujcbbqZl5uphBldab3VhILqWaxayuHHhznT3iFS6UDqtIh+1qZjC0YRi96TnMjzU C5kopIcDOS1MUW3rsTVq7PY3p35UGlScfyg0lj5Pg3+ib3g6mQEGNARO8XDzar49 ntNljJFKI9pcTeRsRAUG =lneH -----END PGP SIGNATURE-----
--- End Message ---

