build+ci: upgrade waf to version 2.0.19, switch to python3
Refs: #5095 Change-Id: I75429ca3617ca61769e1964f556ac5b779bf01ba
This commit is contained in:
1 parent
f291881aac
commit
5b9c85a7e9
8 files changed
+116
-97
No files matched your search
@@ -1,10 +1,32 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
source .jenkins.d/util.sh
|
||||
|
||||
DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
|
||||
export CACHE_DIR=${CACHE_DIR:-/tmp}
|
||||
export WAF_JOBS=${WAF_JOBS:-1}
|
||||
[[ $JOB_NAME == *"code-coverage" ]] && export DISABLE_ASAN=yes
|
||||
|
||||
for file in "$DIR"/.jenkins.d/*; do
|
||||
nanos() {
|
||||
# Cannot use date(1) because macOS does not support %N format specifier
|
||||
python3 -c 'import time; print(int(time.time() * 1e9))'
|
||||
}
|
||||
|
||||
for file in .jenkins.d/*; do
|
||||
[[ -f $file && -x $file ]] || continue
|
||||
echo "Run: $file"
|
||||
|
||||
if [[ -n $TRAVIS ]]; then
|
||||
label=$(basename "$file" | sed -E 's/[[:digit:]]+-(.*)\..*/\1/')
|
||||
echo -ne "travis_fold:start:${label}\r"
|
||||
echo -ne "travis_time:start:${label}\r"
|
||||
start=$(nanos)
|
||||
fi
|
||||
|
||||
echo "\$ $file"
|
||||
"$file"
|
||||
|
||||
if [[ -n $TRAVIS ]]; then
|
||||
finish=$(nanos)
|
||||
echo -ne "travis_time:end:${label}:start=${start},finish=${finish},duration=$((finish-start)),event=${label}\r"
|
||||
echo -ne "travis_fold:end:${label}\r"
|
||||
fi
|
||||
done
|
||||
+22
-21
@@ -1,29 +1,30 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
JDIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
|
||||
source "$JDIR"/util.sh
|
||||
|
||||
set -x
|
||||
set -ex
|
||||
|
||||
if has OSX $NODE_LABELS; then
|
||||
FORMULAE=(boost openssl pkg-config)
|
||||
brew update
|
||||
if [[ -n $TRAVIS ]]; then
|
||||
# travis images come with a large number of brew packages
|
||||
# pre-installed, don't waste time upgrading all of them
|
||||
for FORMULA in "${FORMULAE[@]}"; do
|
||||
brew outdated $FORMULA || brew upgrade $FORMULA
|
||||
done
|
||||
else
|
||||
brew upgrade
|
||||
if has OSX-10.13 $NODE_LABELS || has OSX-10.14 $NODE_LABELS; then
|
||||
FORMULAE+=(python)
|
||||
fi
|
||||
brew install "${FORMULAE[@]}"
|
||||
brew cleanup
|
||||
fi
|
||||
|
||||
if has Ubuntu $NODE_LABELS; then
|
||||
if [[ -n $TRAVIS ]]; then
|
||||
# Travis images come with a large number of pre-installed
|
||||
# brew packages, don't waste time upgrading all of them
|
||||
brew list --versions "${FORMULAE[@]}" || brew update
|
||||
for FORMULA in "${FORMULAE[@]}"; do
|
||||
brew list --versions "$FORMULA" || brew install "$FORMULA"
|
||||
done
|
||||
# Ensure /usr/local/opt/openssl exists
|
||||
brew reinstall openssl
|
||||
else
|
||||
brew update
|
||||
brew upgrade
|
||||
brew install "${FORMULAE[@]}"
|
||||
brew cleanup
|
||||
fi
|
||||
|
||||
elif has Ubuntu $NODE_LABELS; then
|
||||
sudo apt-get -qq update
|
||||
sudo apt-get -qy install build-essential pkg-config libboost-all-dev \
|
||||
libsqlite3-dev libssl-dev
|
||||
sudo apt-get -qy install g++ pkg-config python3-minimal \
|
||||
libboost-all-dev libssl-dev libsqlite3-dev
|
||||
fi
|
||||
+19
-20
@@ -1,12 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
set -ex
|
||||
|
||||
JDIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
|
||||
source "$JDIR"/util.sh
|
||||
|
||||
set -x
|
||||
|
||||
pushd "${CACHE_DIR:-/tmp}" >/dev/null
|
||||
pushd "$CACHE_DIR" >/dev/null
|
||||
|
||||
INSTALLED_VERSION=
|
||||
if has OSX $NODE_LABELS; then
|
||||
@@ -22,35 +17,39 @@ if [[ -z $INSTALLED_VERSION ]]; then
|
||||
INSTALLED_VERSION=$(git -C ndn-cxx rev-parse HEAD 2>/dev/null || echo NONE)
|
||||
fi
|
||||
|
||||
sudo rm -Rf ndn-cxx-latest
|
||||
|
||||
git clone --depth 1 git://github.com/named-data/ndn-cxx ndn-cxx-latest
|
||||
|
||||
sudo rm -rf ndn-cxx-latest
|
||||
git clone --depth 1 https://github.com/named-data/ndn-cxx.git ndn-cxx-latest
|
||||
LATEST_VERSION=$(git -C ndn-cxx-latest rev-parse HEAD 2>/dev/null || echo UNKNOWN)
|
||||
|
||||
if [[ $INSTALLED_VERSION != $LATEST_VERSION ]]; then
|
||||
sudo rm -Rf ndn-cxx
|
||||
sudo rm -rf ndn-cxx
|
||||
mv ndn-cxx-latest ndn-cxx
|
||||
else
|
||||
sudo rm -Rf ndn-cxx-latest
|
||||
sudo rm -rf ndn-cxx-latest
|
||||
fi
|
||||
|
||||
sudo rm -f /usr/local/bin/ndnsec*
|
||||
sudo rm -fr /usr/local/include/ndn-cxx
|
||||
sudo rm -f /usr/local/lib/libndn-cxx*
|
||||
sudo rm -f /usr/local/lib/pkgconfig/libndn-cxx.pc
|
||||
sudo rm -f /usr/local/lib{,64}/libndn-cxx*
|
||||
sudo rm -f /usr/local/lib{,64}/pkgconfig/libndn-cxx.pc
|
||||
|
||||
pushd ndn-cxx >/dev/null
|
||||
|
||||
./waf configure --color=yes --enable-shared --disable-static --without-osx-keychain
|
||||
./waf build --color=yes -j${WAF_JOBS:-1}
|
||||
sudo_preserve_env PATH -- ./waf install --color=yes
|
||||
if has CentOS-8 $NODE_LABELS; then
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1721553
|
||||
PCH="--without-pch"
|
||||
fi
|
||||
|
||||
./waf --color=yes configure --disable-static --enable-shared --without-osx-keychain $PCH
|
||||
./waf --color=yes build -j$WAF_JOBS
|
||||
sudo_preserve_env PATH -- ./waf --color=yes install
|
||||
|
||||
popd >/dev/null
|
||||
popd >/dev/null
|
||||
|
||||
if has CentOS-8 $NODE_LABELS; then
|
||||
sudo tee /etc/ld.so.conf.d/ndn.conf >/dev/null <<< /usr/local/lib64
|
||||
fi
|
||||
if has Linux $NODE_LABELS; then
|
||||
sudo ldconfig
|
||||
elif has FreeBSD10 $NODE_LABELS; then
|
||||
sudo ldconfig -m
|
||||
fi
|
||||
+11
-6
@@ -1,14 +1,19 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
set -ex
|
||||
|
||||
JDIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
|
||||
source "$JDIR"/util.sh
|
||||
git submodule sync
|
||||
git submodule update --init
|
||||
|
||||
set -x
|
||||
# Build in debug mode
|
||||
./waf --color=yes configure --debug
|
||||
./waf --color=yes build -j$WAF_JOBS
|
||||
|
||||
sudo_preserve_env PATH -- ./waf --color=yes distclean
|
||||
# Cleanup
|
||||
./waf --color=yes distclean
|
||||
|
||||
# Build in release mode
|
||||
./waf --color=yes configure
|
||||
./waf --color=yes build -j${WAF_JOBS:-1}
|
||||
./waf --color=yes build -j$WAF_JOBS
|
||||
|
||||
# Install
|
||||
sudo_preserve_env PATH -- ./waf --color=yes install
|
||||
+14
-22
@@ -1,34 +1,26 @@
|
||||
CONTINUOUS INTEGRATION SCRIPTS
|
||||
==============================
|
||||
# CONTINUOUS INTEGRATION SCRIPTS
|
||||
|
||||
Environment Variables Used in Build Scripts
|
||||
-------------------------------------------
|
||||
## Environment Variables Used in Build Scripts
|
||||
|
||||
- `NODE_LABELS`: the variable defines a list of OS properties. The set values are used by the
|
||||
build scripts to select proper behavior for different OS.
|
||||
- `NODE_LABELS`: space-separated list of platform properties. The included values are used by
|
||||
the build scripts to select the proper behavior for different operating systems and versions.
|
||||
|
||||
The list should include at least `[OS_TYPE]`, `[DISTRO_TYPE]`, and `[DISTRO_VERSION]`.
|
||||
The list should normally contain `[OS_TYPE]`, `[DISTRO_TYPE]`, and `[DISTRO_VERSION]`.
|
||||
|
||||
Possible values for Linux:
|
||||
Example values:
|
||||
|
||||
* `[OS_TYPE]`: `Linux`
|
||||
* `[DISTRO_TYPE]`: `Ubuntu`
|
||||
* `[DISTRO_VERSION]`: `Ubuntu-16.04`, `Ubuntu-18.04`
|
||||
- `[OS_TYPE]`: `Linux`, `OSX`
|
||||
- `[DISTRO_TYPE]`: `Ubuntu`, `CentOS`
|
||||
- `[DISTRO_VERSION]`: `Ubuntu-16.04`, `Ubuntu-18.04`, `CentOS-8`, `OSX-10.14`, `OSX-10.15`
|
||||
|
||||
Possible values for OS X / macOS:
|
||||
|
||||
* `[OS_TYPE]`: `OSX`
|
||||
* `[DISTRO_TYPE]`: `OSX` (can be absent)
|
||||
* `[DISTRO_VERSION]`: `OSX-10.11`, `OSX-10.12`, `OSX-10.13`
|
||||
|
||||
- `JOB_NAME`: optional variable to define type of the job. Depending on the defined job type,
|
||||
- `JOB_NAME`: optional variable that defines the type of build job. Depending on the job type,
|
||||
the build scripts can perform different tasks.
|
||||
|
||||
Possible values:
|
||||
|
||||
* empty: default build process
|
||||
- empty: default build task
|
||||
|
||||
- `CACHE_DIR`: the variable defines a path to folder containing cached files from previous builds,
|
||||
e.g., a compiled version of ndn-cxx library. If not set, `/tmp` is used.
|
||||
- `CACHE_DIR`: directory containing cached files from previous builds, e.g., a compiled version
|
||||
of ndn-cxx. If not set, `/tmp` is used.
|
||||
|
||||
- `WAF_JOBS`: number of parallel build jobs used by waf, defaults to 1.
|
||||
- `WAF_JOBS`: number of parallel build threads used by waf, defaults to 1.
|
||||
@@ -16,6 +16,7 @@ has() {
|
||||
set ${saved_xtrace}
|
||||
return ${ret}
|
||||
}
|
||||
export -f has
|
||||
|
||||
sudo_preserve_env() {
|
||||
local saved_xtrace
|
||||
@@ -35,3 +36,4 @@ sudo_preserve_env() {
|
||||
set ${saved_xtrace}
|
||||
sudo env "${vars[@]}" "$@"
|
||||
}
|
||||
export -f sudo_preserve_env
|
||||
@@ -1,5 +1,6 @@
|
||||
# ndn-traffic-generator: Traffic Generator for NDN
|
||||
# NDN Traffic Generator
|
||||
|
||||

|
||||
[](https://travis-ci.org/named-data/ndn-traffic-generator)
|
||||
|
||||
This tool is designed to generate Interest and Data traffic in an NDN network.
|
||||
@@ -8,25 +9,20 @@ used to specify the pattern of NDN traffic that is required to be generated.
|
||||
Sample configuration files are provided which include instructions on how
|
||||
to configure various parameters.
|
||||
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Compiling and running ndn-traffic-generator requires the following dependencies:
|
||||
|
||||
1. ndn-cxx library <https://github.com/named-data/ndn-cxx>
|
||||
|
||||
For detailed installation instructions, please see
|
||||
[`INSTALL.rst`](https://github.com/named-data/ndn-cxx/blob/master/docs/INSTALL.rst)
|
||||
|
||||
2. NDN forwarding daemon <https://github.com/named-data/NFD>
|
||||
|
||||
1. [ndn-cxx and its dependencies](https://named-data.net/doc/ndn-cxx/current/INSTALL.html)
|
||||
2. [NDN Forwarding Daemon (NFD)](https://named-data.net/doc/NFD/current/INSTALL.html)
|
||||
|
||||
## Compilation & Installation
|
||||
|
||||
./waf configure
|
||||
./waf
|
||||
sudo ./waf install
|
||||
|
||||
```
|
||||
./waf configure
|
||||
./waf
|
||||
sudo ./waf install
|
||||
```
|
||||
|
||||
## Command Line Options
|
||||
|
||||
@@ -58,10 +54,9 @@ Compiling and running ndn-traffic-generator requires the following dependencies:
|
||||
* Please refer to the sample configuration files provided for details on how to create your own.
|
||||
* Use the command line options shown above to adjust traffic configuration.
|
||||
|
||||
## Example
|
||||
|
||||
### Sample Run Instructions
|
||||
|
||||
##### ON MACHINE #1
|
||||
#### ON MACHINE #1
|
||||
|
||||
(NFD must be running)
|
||||
|
||||
@@ -69,7 +64,7 @@ Start the traffic server:
|
||||
|
||||
ndn-traffic-server ndn-traffic-server.conf
|
||||
|
||||
##### ON MACHINE #2
|
||||
#### ON MACHINE #2
|
||||
|
||||
(NFD must be running)
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env python
|
||||
#!/usr/bin/env python3
|
||||
# encoding: latin-1
|
||||
# Thomas Nagy, 2005-2018
|
||||
#
|
||||
@@ -32,12 +32,12 @@ POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import os, sys, inspect
|
||||
|
||||
VERSION="2.0.14"
|
||||
REVISION="e67604cd8962dbdaf7c93e0d7470ef5b"
|
||||
GIT="353ffefa21e6f8795469d118d8059aa16ef49109"
|
||||
VERSION="2.0.19"
|
||||
REVISION="1f3c580272b15a03d2566843c5fe872a"
|
||||
GIT="61ee22b598cf80e260beb64e475966f58b304d0d"
|
||||
INSTALL=''
|
||||
C1='#('
|
||||
C2='#&'
|
||||
C1='#6'
|
||||
C2='#.'
|
||||
C3='#%'
|
||||
cwd = os.getcwd()
|
||||
join = os.path.join
|
||||
@@ -140,6 +140,9 @@ def find_lib():
|
||||
if name.endswith('waf-light'):
|
||||
w = test(base)
|
||||
if w: return w
|
||||
for dir in sys.path:
|
||||
if test(dir):
|
||||
return dir
|
||||
err('waf-light requires waflib -> export WAFDIR=/folder')
|
||||
|
||||
dirname = '%s-%s-%s' % (WAF, VERSION, REVISION)
|
||||
@@ -165,6 +168,6 @@ if __name__ == '__main__':
|
||||
Scripting.waf_entry_point(cwd, VERSION, wafdir)
|
||||
|
||||
#==>
|
||||
#BZh91AY&SYCU ÂT>ÿÿÿ´Ðÿÿÿÿÿÿÿÿÿÿÿ5 ‚Ä£ 0�™E€(b|s×¾÷ˆ#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%[yõË™JÕ…¬Ã»ì#&´ûnÚv¾ÝÓkh3cÎ5We©‰#&[r}à³O4Ù+±ºwaÚ5<óë¾ûp9—[uÌ=Û{JQ¶Ý—»×…½¹ëݯ@ËÒlvÎuo;ÁëÝ�ß{»®;jTn[÷lwªÜ2{€K)Ùëç½Þøô·Åö¶ÕïznS‘¾·Þ÷½÷Ž#%#%#%P#(;ììhÓ€'ÞÊ#%÷Š:eïo0Ù뽤#&›v=]¨Ãc[4¦€-€§¬ímßJ=:#%tô��»d*Š#(P£#%P‘D©R(îàäQ$#%#()è�E”¡ÞÃׂõƒß|ÏyÖ“±ÚŸkT®Ç¹ïW·›¬Ô´ëŠ•Nlºd•Ûw77ÓÔí¥íÝlú#&uÞ>ûªïîïví•yëog®»Ïqõ®½>ìyï}íÙ¾ÝßuöOm±ÖJg¾ç¼M÷;ëÝ·º»Ùï¾ô{îßEç êÛ¬µ…Ö@¤$!ì^ÁÌÝ#(wg¶w™ïvǽ½ïyc£$¡Û]ÇGaä\ÚbR‘ÛΦ h#(’‚H¢)G»ô:oniÑJ]ë�Q!{·z¤}ÀíïióÝï7olQè#&#%úÒÓµµ®îSï4Y`;ìí�€ßužx§s{ØÜÝßa�w:·§ß=ñéã§Ï=Ü{³ÐÙŸ{‡¾ŽŽ85ͳl¾u¼÷>{‹«íÝbÇv�ɺscu¹Îòîj{77.7rÝÝ{{¯oxnGu}}ÊÛÓl4ÕfŸw¾ûï¾ÏwØeð�<šÜXQO+km«ÜålùêR[^ì«Ý8ùöoO»ÛWwu«jößOZÝÄÇÞÓª_{ºõ³íµÈ{²=ÝãÛ3O¸çK£ÎÌ#%;®o/wœkîîîöó©kp(¥#%¨•Tª*ŠA¬ƒ;2#(µ¶ª.í÷»Ôë±ÓÐ7Y¹›µN‡½µî�ÇFª»“SÛǼԪï^ÛÚ†„Ø÷3®æx#%{�v #%kÞêå¹›¼Nû}Ï”•×w6Ù·3FWagÝçwe¬ï»xîwPØúÒ킟{¹ë}™:3j¹ÑwÛŽ¦ñ{c;úŒçs5Ï%Z±î²ÃÖ%ÚÌÃ{{ÉæªOD»Îºsho1Ï—žÇÏ·pmvêÛ¬Ú]ܽ«ÅÍ‹ßoîÍëÖî¹ñiïnã¹N7kœç …j[b¢÷p(ݺ2–}áß·; Õ°lªsäܯZµ³qÍëzÞûjsçØ€öz8 æÚSÝÞÆF™£¦ó®>Ï=0«Þ™w�¬îî×¼v/s’êÚ×ݬ�½Þû�Óêµ–©l�ºgÐh[µƒ;±Ž)mNçX7í@!Ý£s¬½½Þ]çßk°ÛÈ=Éf=½wö#%(r8y5íº^û¬÷¹ÀØ•#(hMëÛ½ݶ#%›½Ú¼måvÎîêàc0ÞµÚ¹«\íe»Ûº¤”.]»i'YM;¶5œ¹˜êfÞ]í’^7gœ½¾Z¯�{ÛÕñ{çÛofÁ—£à„(ž”ɼû¼BöóvŠ×½·³"v²Î××»rï·ÒûÖÖÙ¨îï·½½Ÿw=7“Àã_¸i¢#%€ #% ÈÐÐ&FƒBi¢m)éª='© Ä#%h6 õ7ª~”š „Ð 44&I„Ȧ`$õ#&2yMÔê#%#%#&#%#%#% ˆ ¢24#%Š~“%?)i“D~¥Qê6Qê§©§© Ð#%#%Ð#%#%'ªRD#S ¦OTõG¦�ª{T~¨0€=@d#%2††€#%#%#%#%#%D‘#%hÐ&&@ F™=™#&'•?MM&€4€4#%#%I¨ˆ #%�4M4š§å6…OÅO£ÍSj~©ú5OÔ‡¨ôÚ§© #%#%4#%#%åÿòOôêw?׋mN¿‡U¥Ñ &LWÆ«]º$ ¶Å¦ÖO}UµÊ«TUVû¶I?Iú�Ý?_ííeý²¹«½Íl¸–“M×·¾4á5�ñ#™8—tÍÜã�8|,çû£ûOøé|@²Á@ÌAÎ"Ð Ö¹¦&ɪck(Gã¨Ji:÷ubá‘¶ôÛ# ]ºøÙUƒ"ÂruN¨‡�Þ°ªpäÅ]¥2ëSMRÝ1mgº„!_·�rý"WA„ƒ–Ó6Êåv«MkY6Õ“R�ˆªH*HȈ#&À#% Q$P�Ã�”-"©™Iˆ„T `"T ƒb#(„"{n›kÍZÚ[jjî‹b±W´Ú«mµðÚÖÖ©™2J35#&3M‘&0H¤ØÚˆ™š„K#%š”£J)¶“a‰š$ÐJ2Zš�± ÂÚ3IdÓH�Ñ•¤MJPH´jXИ²¦Ñ¢)6KFÔE K-)¦´@Ä,´†ÍÁ”ff1©#Q¨ÚŒ“A¥6C¡-1¤ L4ie¤c)KF¦›"[JÚËmhfÄ–32fBhвm¥¶šmjJ6Rjkc-M¶fÌ´™&b(6#f´ÄÑd¢‚™l‰„H¨³HÚ)0*$°lRTÂ3Jˆ‚¥16!PH‰,@´2#$�©!Xˆ!¶f†DLS Ì‚–VX31"’ÈÄRɬ›5…H±–R4ZSLbJLŠ2‰4dÐÑ“#(’�"QI²#(lh’,E2–�E3ØÖHfÄIŠhflµ%€Iea°"II±¨"MIE$IQ "Q ŠEƒ0Èc$¦„Ê)%&¢ÌØÑ¬&É©"IˆD%¥6@�‰"Él@I‹,Ê)2J&ÌÈØ‰›")FlŒÁ2©¦$„YJ#&š‹dƒM461©Y,‘±D© ‘M$ÄR%M2�’jIeA�F“4�¢€‚)¦Š&µÀbe”K#!²RdMÓ)£Fa3iB“Á™H$$Rf0"HÆ‚%’a1A$Ê™•f(Û)lJ"fCR)ˆR#6,¡YM$QF¤’M’1±Œ›4�LÑbÄe$)33²2³i„¬D`ˆ¢JM52i™!Œ¢)4EMŠ,Ô©JJh¤6FLdȦÒY#£)!HŠ,U’bI4¦Ñ¤Ôi(ib1 ™Q¦™h4lf²I”b,i!fD›%)ŠQ…šd%¬Ù±µ’Àd�ÒY1�ÕAh$MaH“!�ŒÄƒÊ#&IcQe‘(š0Z”Ò�E©†„™”˜¦dÙ”Á"–hÓ,!¨(M&R"CDÛjVÖŒ(MLÑ”ÈÄÒŠI™ Ô¥°)f‹1I¤e e•6h‹S-¶Q‰Sb!J#4Œ#HJm~ók¢¦©aˆÍ¢ŒlVÆÖ*6L¦i¨¥I4hiiQ°�’j6²##&CIŒ£$YL©"Ùf&f™l–Ñ™)lmE!hɦ,Mf,hXÔ‚”´Ó&L©5ÆÊ´�6PŠÙ2ȪU+0¦ÍŒÆf‹DkdÓ+"TË)µ’¬¶R”Ó#[#@d¤mEŠk,Ii”µ¨*£j5hÉPQU’²QµFÑQR%Ñ4DÉbÄZ1bµhÚÆÀZL˜X* 4ÀJ)±£L“JÓX‹cFÓ±‹d‹i Úªšµ–* ”ÍKY4IR1!M¤Qd�J³lb”ÚU,¥L²ÃjšDF¶•K"e5MM¶„”Êk,hl²[+,…lÓ ¨ÒD…Š"Å�4`b$H†ÐhLb¶�P”JŠ-EdšhÙ2i(² ›,R)²�4lˆ¬² ÆS1(RQ³LÐ1‹L�ˆÍ¦ÒbˆÆØÙ#(a¦@Ć1£%bHÌÔ#!4LÔQ¢JdR�–P5BTÀhÒcL%*e’QhÈ@Q™µJ6e$”d#&#(CSXˆ¦I¢1©6KÐY"ËQ’ÑCAb�ÌI£E™M™IK)Y†JÆY¢ÉƤZ�Q³Z3DT4T¦“a¦*X¬Ê-F�#!&@˜È4ÄØ’¤©2†6SLl’™l”¦¢°m˜lÒY63I£FÌD¡¥-3ZÈ�4*fˆKHˆA³f†4mšFÅ k4›%14”��Z-ÂTj5b±‹Ff°Òa¤“B…“#c¢Ø£`KAY¦Éd3(ƒb£!²RÊJ™m@F±ª5Dš(L²¨ ±Aš“Tl0Ä,#¥(jÆÐiM2ÈQF‰"©’Z �Qb,FR¶È©EQ¬i0DY4E3(Z”R’‰*lJ"fÚ¢5`ÑS*,•FÅšQl™+Ö“•”Û"[&ÆÐÑ6ILƒ)QaA±±²Q²h’#¶H�ÔRL‚#&Y“‚SflLE5�QS+&³#HSI5EM6¤¬[)%�“�¤Á’V¤F‹K-C-D–‹TUŒ¥I‘*�±©(±H¦„ȦFdf4ÔˆÄjfÉ3Z#b©,[F¤©eY5¢fÔ-�DlldЍ¦U4«Fѱ¶Æ-©3J!,ÖV%¨ÅbÍ*6¢6•*)MiFb¡HFÊ�’£I¶5‹2¤‹RVÅ“l¤ËQ¢±#&"ÑI�FÚÛ-«‰•#(‰‰(ŒT0’Æ�Ši&ÔÃ%XÛØ´Í[F5¬´•42ÖÊY6ÔÔÛ!mFš±4eDhÈÚIEÃY©5&fË*"�#&D˜’L¤™‘ˆÈE²[R,b¬dÿ— ÿ’?ðˆvCýaþ?ÝR_*tÓ#þXt¸ÿ²Ž9hË’�÷‚áÊ�- �MŸ Ï;oô|ìoNoèC¯Kze5#q’ö/‹U6»ø#mz 3¿ûÓŒJ04P`¸tq�Ká‚’AÉÙ0U#wÃcDãû•HÿǬ3ÿ¿õZÑÿÂI(R×+ˆRÒXHÄ_G=šÅ·8=EZM‡¼íõb8ßwpu-,žë£’fêe»¨ÕrpáòC65%"†É8¡·'%ŒGøëvÍš“…Z�FFcHí.Ùf2cD«Dvrhë²w�Ò×.ôô«Ô¼k–s¹eþƒ¯>ÇYœÕÈ$Øu¨S «Åš&U;1¥Ì R¥!H‘a"F(MîÛ©Š•Ò2Ö‰M^<ëµ¾-Ë#+ÓsI Ñ`ÄÅâÃ Š k{—¯ýË,?ÐÀ7p‡Ó(°R;´)L7acƸ¾ÿW)-ˆÆ)?oú=ì¯Âú˜Díz6"Ša…6…"ÉßË%cü\È›3såÌm46'š©3Æ�Û¹rýQ‡jXœ�ж(D0šV+Ä÷«=››No¹Ê.U!Ù6ý»ÃÀÛâÄÕªÈņ{w�×”cœº.â™\Û¥�ÔUͺyÜhبŸŽëå5¼Z4E‹}ÝÕô¯Ò¯æ[‘L¯‹‘m�ÎCú-Ö¯¹¸|~ž¤BXxxf{Úy2ÄFm˜ôÓ²!�·ÎêŽ\º Œ‚ƨ¤`Úï9ÜxIoRŒ¬#[aDMuÊï;±¹GJåÌ”e×t’9Ì…ö5·—�µ�w—Áu5JŠAТ¤E†)¡�Ûc.™8ŒµbÁ_U£è†Ÿ±Æ˜ÚŸ“Óx ‰_ô¨¤Ù‡=0Z¬@Gö!€dž%lþ„Õ€¸IK��õöbÐ1Ñøha»$ïè(BI‰ŠÊ‹|Ù{+âdu²ïæñÅËG³^ýzÞÜC³Uá�Û^?¦Ë<ÏÃ#(q«ƒ-ÑÄe''Vv¦ŒœÙ%ó¯U×e™•‹ÛÏ[Â}|H<j¢”øtú_£žWÐÁíNÍÚÝ95õT)",m S!ÈY©Ú›¦tj#(M4+É1e)Õ–Ód|(*ô¡ã¡e³,YL#(N�*}±ÆyÞ>�Ë:«”‹×Z6LT >¼]Á¤¤Rm<‘_ƒ(Wá#&^�adMŽCRßó°ôõÛÓçLžëÉŠ_>ºü½tdc¡ð ±#&ó[bV¯DFÆ ‚¥#(¢hÓ£/8‹B«rÐ"cÊ¥^ÚV6V¾Õ0ºR…A@Pe$FËd#(d‡ýo²¬A`÷´d2…xPPÅcôðþ+¹¢) ”È ¬Uç·ö>mzm"c”ÔR|;·+½Ú€J†’R)Ýt‰¢rºÊREÂà”\×5±yßnõêò e*ÉP÷»–5ûÒÝ{»o\clP›éëßáëx§¿wG\ÆÅ£dÛè}öñ�A¤·åtÐ'Ã=.Æ^O~ù¦KæÈ²"4£�~$–�ßPåÌ Â#™lÕŸrI„C>×gÙÖÝ”25“b¾¾ê¾/��I\÷²ðÑ$ZA`°Õ¶K ¤i(bÒC‹i¶¤ZÓ¡—CÕGƒ�ÒŠe¤º«JEvï«YøÕ©á¥.þ”äå—§u–XEFœ#((SfˆZjÒAS¬¾wPJ»*”Ó#(dÛKMZûÒ—ucg¤"üØNýèV›lV'Tžlµˆ�$#&.Ž”Tä…O7ØÇ«ƒ¦ìãˆúÇ0m‹Ña6¹wLine truncated
|
||||
#BZh91AY&SY9 ½´\¥ÿÿÿ³DPÿÿÿÿÿÿÿÿÿÿÿm (¬#%0�0e€(b÷/mЀ#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%öÞúzómmkîÖZžÞæ—²U#.´[iÚ¾î�õ¹±µ–ú:¥'kd‹î7{ÛïoºµÛ¶ÖµK“¹]Øvµ'ÛßO¾ö¸gv÷s½÷¶N)#.Q+Ù½íp·µÞ�]/{mš»<{guÒ‹@Ýó{§«�vo;¾ø;ŸvÎiîáÉî44lºï{ß|ûëËßÚU9íõÝŸÝšî·¯y½÷½x#%#%@(}ìh#%` ï²€=â�wfí˜:4§[aÓ¹½ y©³A¦€‡¸ê»´ö4=¦öìd+Ö¨ª)ífš0#6 *”¢”{ƒ’�Q$#%#6#%YJ�zÚV½ƒ%çÍíîæ}»�j½êºa’ïjÚØá3TTf˦Iv×]s}6óu7¾÷z:#.ÎxûÝW_=³ÛzÖåZ;Û»ÍÝÛ}Þsy¾¯³»ß{¸ûížÖîiÉÔ÷Ëzõ¶§rç>^æû}ñ¾íóÛa zúz{x¹-ì�z̀ݳֲ4÷³¼ÛÞ÷fÞÏs¬ô`u¡ÒãF°Û"’EE7w¼#%(J*’OCÀ#%lîè•=÷n{Ywº¹½»ÐdÜöï>}Ü[vÇGÐ`>†ÛEmk®¥ÑMã�W`×LæyÛãÚ^u½#%}�÷aŽît;o¶û}|{mçO—vpòǼ΀Šo·*WµíƘܶ2>öí®®òÏŸwÖõ»]´î;ºjîí9QÚt×·Zt“ž>÷»Ü®¨ÜÙu÷‡ß|}í«×ܬ‰&ÞíN«îq\îû½:¾Ã.ñŽ^ÙéyaC§¶Ó¶Û›—³®÷Ð¥&nCzî¤|öilöͶíÝîвë[¸˜÷»³Ûºû5ÖkoX«èqØ—nöÐlîõÞÞ/`{´žó½wÌ>ï†Ðê¥PJªPTT´jB¹7uÐv�&i¶vÜèº]vú‰Ý›:kÛkÔØëUUܘ{x÷š)º¼»HЃºÚɯfw€#%7ZI#%#%;Ü^êåÉÎó²û3ÊF-Ÿm½ÜözÔíÝ™Üì_U.us[›¶õv]]ó¸|˜Hû†,ÍqÑ»ÝÁæñ{c;úŒçvåJº{+¹éÔ²õ§l÷+ªWg¡»`úùÛÙ;{n#î²Ç]÷}çww»{»»xîvÛ#.¾Øú½mÝEfù‡"sž¼ï¯¼ùÚÀ°ËlÐú$/g¬íÑ”x<ïÜë°VØ6EÇ‘µÞ®ÚGxO{×>öø½ïwÞ´#%À*×Û;Fªµíí7¶;g�<�ÂÀëu´oSk´ÝëÓmï 9.ó’®Ú×ݬ»Ý¾çwÅówwtåvë¥Þç:#.[.ëwc Ó‚àéÕhÁ”gu“½Þ^ïŸnØu¼�ÓÐŒ…/=ÝÚ4#%•c�¹éî½Mö{ÜàìJ…U )½{xW»´×`ï{®ñÝÊäÅÖÃV¶•U[}÷IzovƒuÇH*Ší·u$ëIÒÖªîúãÞncÚ[ÓµŽÛ× &Æ»»}öøø‡½óí·³acÜ| ìÁ“G»îñÌͼÜ&:·»}½í6µî�Ðíç;ï¹ßvÛRÀîï·Ÿw}-âò�ó[ãnh€ &€#%&€ £CBa0š#.#%‰ä™PÏTz†Ðš#%õ§’{SÔõA) B @†@©©á$zzI☠é4#%#%#%#%#%#%#%‚D! M5TÿMŠoU<ÔôzTý(òÔõ)é¨mG¨#%#%Ñ£@#%#%'ªRD!4dÐODõ$ÙOFž¡£õM#.€ò@#.Sj#%#%#%#%#%#%$!#%&@bh&M#%M#.4SÓiˆŒ4 ¢ #%h#%#%#%I¨ˆ L˜#Až€&Œ¦�=&”õmêˆ{SIé” h#%d4#%È#%—ÿÓ?£Uirê\ÕQWwk¹úµZvhʃ>5Zu!LA³ ,L•Q*"€)æ°Pcõ§óü Zü“•5OùÓ¦¸ üæJt¦î£Ä‘8•WoT"¢]^SÌÆ´_3ý†os2ìÀlDs‚4;m»qE6›®ñ‘ÎÊ´ÚMí˜ÖØ`Vd…â]jíâ—˜•5o‚# åñ÷UŒI7wD¼áÌKUå¦/žÝ~«oÔB�äE"ªSº»U¦ÖÖ5k3khÈ‹ €7#%H*-E Õ:¥”$HŠ&� ˆ" HåP° !ß#%hŠ–‚¡#%ª$@dPÉ@mªfL…’ŒÍCLÓd@M$Rj6Ñ35–25)F”Sm&‰š$ÐJ2Zš�Q°h[Fi,ši¢Z!#.F)iM€F¥�#.1eM£DRl–�¨Š–ZSMh�ˆYi#.š ƒ(ÌÌcRF£Qµ&ƒJl†BjcI@˜hÒËHÆR›F¦›"[M¶³U´i˜’ÆfLÈM&²m¦ÛM6�5%)-5±–¦Û3fZL“1‘f´ÄÑd¢‚™l‰B!Qf‘´R`4TH!`ؤ©„f•Jb0lB ‘X�hdFIR&B4±ClÍ’&)BF�RÊËf$@ÒYŠY5“ccE�#6‘d†K) -)¦ ±%&EDš2hhɉIF‘(�$@VAM�Eˆ¢fRÒ¦`›É؉1MÍ‚ab6¤Ø–V‹$”›‚$´”PRD•’%¤Q0Ea�ÆIL# ”&RJME™±£XHÒjH’b iM�$"H²[bË2ŠFÌ’‰²™3bdE(Í‘˜&U4Ä�‹)A³Q`,�i¦†Æ"5+%’6(”R"šIˆ&¤a³L�cI¡ &¤–Q”Ôi3HÚ("šh¢kP,&YA¤²2‹%&DÐM2‘*4f6”)1¨6ÄÊA! "“1�F4,�Ë ŠÙ&TÌÕ˜£l¥±(‰™#.H¦!HŒØÐ¡YM$QF¤É&ÉØÆJšF¦h±b2’™˜²2³i„¬D`ˆ¢JM52i™!Œ¢)#.š1Sb‹5*R’š)#.‘“2)´…HÅ(ÊHR"‹E$˜’M)´i5DŠFÀ˜Œh&Ti¦DÚ#.ƒ,„Òe‹DÈY‘¦ÉJb”D!f™ k6lmd°$4–Ld5EPZ XR$Ècc1 Â2ƒRXÔY¤J&ŒE©M(Z˜hI™IŠ$2ɲ#)‚E,Ñ¥1„5„²e"$4M¶¦¶´`™BjfŒ¦F&”RLȈ¥6À¥š,Å&‘”%–TÙ¢-L¬-”bC؈RˆšD#HJm~Ãk¢¦©aˆÍ¢ŒlVƶ*6L¥4ÔR¤š44´…¨ØFÉ5Y†¡¦c(ÉS*H¶D‰™¦[%´Q‰IKQµ…£&˜D±5˜±acR#6e¥™2eI´*Ò4TÙB+dË"©TÒT›63š¶,Y“L¬‰S,¦ÖJ²ÙJSL�l�’‘µ)¬±%¤2RÔZ ªŒ!¨Õ£%AEVMd£jŠÅEH”kDÑ$m‹hÅŠÔl2ѵ�€´™0°U@i€”R £F2™&•¦±Æ�¦&±‹d‹i Õª–µ–* ”ÍKY4IR1!M¤lY"¶¥Y¶1Jm*–R¦YaZšDF¶•K"e5MM¶„”Êk,Xl²k+,…lÓ ¨ÒD…�bÃ4˜‰!´…-£T%¢†KQY&š6LšJ,ˆ&ËŠl¤#."+,‚E1”ÌJ”lÓ4AE¢Ó$&Fm6“F6ÆÈS¦™cE%bHÌÔ#!4LÔQ¢JdR�–P5BTÀ4˜Ó J™²Bj-#636£)F̤’Œ�£!HbÊkÃi4F5&Éa$YP…-4)Äš4Y”©””²•˜d¬aš,‘±jE¨Õ5£4ECF¥)6b¥�fQj4 2ÆA¦&Ä•%I”1Ršcd�¤Ía)ME`Û0Ù¤²lf“E�˜‰CJ2Zfµ‘hTÍ2–H’l£0D2hªih�¬Òl”Ä,LDÒRBAh´[ Q¨ÔQŠÆ-–ÃI†’M#6L�ŒRˆ#b��-f›C2ˆ6*2%,¤©‘Ñ´k£TI¢„Ë5EŠ$Ôš£PdðŒj”¡kA¥4Ë!E$ЦIh‚5Eˆ±JÛ"¥F±¤ÁdÑÌ¡jQHfJ$©±(‰•j#V#.2,Y*6Œ)‹4¢Ù2V-&)+)¶D¶M�¡¢T’™R¢Âƒccd£dÑ&#¶H�ÔRLÁ¬ÉƒA#6�)³6&"𯍩•“Y‘¤)¤šŠ¢Š&›RV-”’ÆÉˆ£F‚4˜2JÔˆÑie£he¨’Ñjб”£i5² …Q¶5%)ЙÈ̌ƚ‘�LÙ&kDlU%‹hÔ•,«&´LÚ�1lj £cc$UE2©¥XÚ6��¶1mI˜ÊQ f²±-F+iQµ´©QJV”f*šB(4X"J�&ØÖ,Ê’+I[M²“+F�bbÑI�E[l¶¬R&T*&$¢1PÀ"CF�Ši&ÔÃ%XÛØ´Í[F5¬´•42ÖÊY6ÔÔÛ!mI¦¬ME26’QA°ÖjMI™²Êˆ B¢LI&RLˆÈÄd"Ù-¢Ñ‚±“þn··ýÔ¥C)þB51jÄÿTqôe+(a(Æh”‡÷!þ§ ûbåÕ LÿL$hÒlùNzí¿Îó±½9¿‹øºô·¦SUIPª?ë[ŒlÈŸÎÿ·ÖYLâsÈ †ßùë;�L(0\:8À¥‰pÁI äˆd˜*ƒ‰Ãß±¢rý*¤çÿœ3ÿ³ôZÑÿÊI(R×+ˆ½”g™,$b/Í0ÿ-‹npz%ZM‡¼íõâ8ßwB¹ÁŒ¨d~ËÕ‹NØœ“ÆZþ,3cRR(l“ŠrrXˆþúݳf¤áV…cÈÌ`I¥Û"lÆLhƒcôzç““G]“¼î�˜Þ¹w§¥^¥ã\³�Ë/âuçåu™Í\‚LŠëP¦"W‹4LªvcK™@¥JAF&Ä“M‚ê×bÈ‹Ò3ˆ(êñç]¨eñnY½74h6m`Ù—(c2@sªªzoþÝ(‘ 7p‡Êc#6Gv…)†ì,`¼rÂü®R[ŒR}ßÒëdzçgsÅéšÐN×VÄQL0¦Ð¤Y;ùd«Ïô8$ÚÍÏ£˜ØÐØžj¤Ï(%?·râƒþ°Ãµ“ºÀ¡…†JÅxžß÷k¶Œ¶cÂx-›2KËw%€•¬C°UyáyÜ–íÞw^QŽr車esn–CQW6éçqllO²ëå5¼Z4EA¯»ºŸ?_ÆW‹ò-ȦWÅȶÆåÈIºÕø¼u‘¨Û?Go*„Èyùæ|m<™b#4L9cuPEX°ž«©#.¹t@#6A�!´ä#ñÆ#.¯)ÎãÂHˆÃz”^+›Ý\Ѩ8šë•ÞwcrŽ•Ë™(Ë®é$s™5öø‘ZA„�ÿhÿŒJrÈ.YÚlCÙ’,0!MðÛtÉÈe«#6ýR�‹ÁÃ79ô,ýפ�¾ìÉþ˜FtÃÏxV¬@Gô¡€dž%lþ «p’—<kìÄ9 c£ðÐÃ|¶Ç™“#tE]HP0îT[æÈ؃Ù_#¨½—zírH ȦwâÔŠŽÍW†7mxþVYê?)Ärvj³oQžwE¦m„e#.¿ÂdÔ‚™ç™×¶b²àþN!ïe §&¢”øuû/ÑÏKà`ö§nínœšùT)"*�¤#6d9#c*w&é�ƒbÛ†ÉðfR6zš®:'ï�.àûì¥k,YL#6N�*}±ÆyÞ>ÇãŠ�UË"õÖ�“UO«pi)8ª—â”+ñ §Ó¬,‰±Èj[þv¼‹lQôÇôa™1Kèë¯Ç×FÌ÷¿SªÄ7Ím‰Z½”*‰£NŒ¼Pâ-#6¬AË@‰�*•{iX<ÙZøW÷»(Éðâ»EEE¼nY5ÆÕ͵þ—ìw’�>ÇS6½•ß‹«¦öøÿM‡fhŠF¨%2+zmýW!†�ŒbSQIðîÜ®÷uVé(i%"�÷@Xš'+¬¥&D§)J²‹šå¢¶/]öï^¯"R¬•k¹bÑ_·-×»±öõÆ*Š|ý{ü=o÷îèë˜ØÔl›|ÏÀÞ1¨4–üŽ�‹>õÝŒ>¬žýóL—ÖȲ"4£�~"U�ä¨ræPaŒLÖ¶jϹ$Â![ÙùzÛ²†F²lWßî«âøùÑÊW=ì¼4D‰Áa«l—AHÒPŤ'Ò'mBµ§…C×Gƒ¶éE2„R]U¥"»wÕ¬�ü*ÔðХ߲œœ²ôî²Á‹¨ÀS�E#6lÃQMZH"JuœëJ»*”Ó#6I¢L²íãe—¥Â„S²ŠŸ$+�bLine truncated
|
||||
#<==
|
||||
#-----BEGIN PGP SIGNATURE-----\n\niQIzBAABCgAdFiEEivIt5aBoIuNHTzxwSbTGfAUneqoFAlwfbtMACgkQSbTGfAUn\neqqeSg/9E/RgAhaR7IretWLnTPFE7FvtcwQ3XjAZxyom09Tpu/uWPY9EwmHd2e5c\nduXjen4E1XtJq3FBRSGom41XSKVbpsLxxK3nGdYkYt7nVIR7RcmuYRCu+P3rTyBg\n/2cALYfEDSsGFxkoV0GdSlKbxjKzyMahG07b1fC0cewpFKFdEZJW4iDhekFaIl76\nNGz0uHKF3hfmbB+vUbvwVQZjj2vVAXRZybFqcKNX6lhQZ1tdsgt5PKorPWKdzZzH\nkGsw32M/deiRkq9dBNtJOLhjTMfulZwtMvTNsN6jDWNL9ltcHjAxUJh4TsDuOxH0\nyTxzBSqNa3KmNNURCdET+bdKuq33NceEZEwKf+El4rzfVbEPhvUBq+vObNVvkwWB\nHMTEiJ59zb0qjNKtVS/uFU77OUFLgi65DqLfWwD7KFrcY5tJMvbdSor6YJeVlyW4\nqWWccfl+nvssUL9SlK9dQP0QN6oRa3AEaoEHyPklT1nc7n/Rf0oBg9qx/1tcsEC9\n8GuEV9jWw/SBPtsFq7Pv5gYYC5pt5b1ZzKF+RpbWYTHXiuugQ5/1fV0lVsLQn5+3\nOYkqiEib5ynLW7J73Tj/dfNR6fW3LFf/Rhbcjyj2guSITbtf950y+cF95qEwvmCw\ndS2DOqX2CAU6OnOwMRqsFSEVIZhYySYCdVfRet0hawlRcImLMYw=\n=AByx\n-----END PGP SIGNATURE-----\n
|
||||
#-----BEGIN PGP SIGNATURE-----\n\niQIzBAABCgAdFiEEivIt5aBoIuNHTzxwSbTGfAUneqoFAl3aW3cACgkQSbTGfAUn\neqruqA//Y9oJ46ZR8W7YB/e45bfrYxGbN7NnkvkwSPNziObYur+n1QpQEOaPTn/U\n5kFtPWHXRJzaG/A9poKn7pl1Xd7Edcu1aalfoEazZbuD37VOxIp9lnrefCAeICqj\nGv0SD96Zac91CbA+b20Q4xnqxKMi3LSI4NPjfFGy62FkSk3MS4p6Rdp0/WAKwwNj\nw7WEjQCNmLb37z+FGSzXg28aljYeteBZEthsVmGJ5QqVwMBwgj2+y5FOTzFfxmqB\nrWgjFYS0l85kgYRZv9yzdNmFs5SScwafwpT8Xmdr49tFn/+0LxXyRxX+rdODgrpV\nY4EOiQz0fd6mMMnaTDXlLSXls3JyVYmbTjeNL/9gcHmnStzJ851CJQfyQg7A+JoC\nc7nz0HbiFyTgB+PUZr1OhGj3A7287o8XQ0tqR3oa7jXIOX0OynrGplMQKr++0jE1\nBgKzjLoE9CTbjkQfICLG+aUy3S1ZyDk/BcO+5+Ytbru+qXuDsIgAdVosMfNSv9jJ\nXvOINsbRMekdejYMZv8fIkn5OEjCFHVhNpobEsCb768bjB3p7alQGECBvjHCm6dy\nXZPzl9cBMWIXcBjPTS+GZj+PIXGcu76pbsx6HBHWf+uJ+4xgOsUCVu//0AV09jvA\n0MjtLWwQ8mdRH6Wt4hsp4HKtSvQrhmljf2OnuYBgaFmcdJkN1zI=\n=C0oT\n-----END PGP SIGNATURE-----\n
|
||||
Reference in new issue
Block a user