diff -Nru d-itg-2.8.1-r1023/debian/changelog d-itg-2.8.1-r1023/debian/changelog --- d-itg-2.8.1-r1023/debian/changelog 2013-10-24 09:44:05.000000000 +0000 +++ d-itg-2.8.1-r1023/debian/changelog 2013-12-20 23:18:16.000000000 +0000 @@ -1,3 +1,10 @@ +d-itg (2.8.1-r1023-3) unstable; urgency=medium + + * debian/control: Standards-Version: 3.9.5 + * Updated manual from upstream + + -- Roland Stigge Sat, 21 Dec 2013 00:17:45 +0100 + d-itg (2.8.1-r1023-2) unstable; urgency=low * debian/watch updated diff -Nru d-itg-2.8.1-r1023/debian/control d-itg-2.8.1-r1023/debian/control --- d-itg-2.8.1-r1023/debian/control 2013-03-15 18:55:00.000000000 +0000 +++ d-itg-2.8.1-r1023/debian/control 2013-12-20 23:21:41.000000000 +0000 @@ -2,8 +2,8 @@ Section: net Priority: extra Maintainer: Roland Stigge -Build-Depends: debhelper (>= 9), libsctp-dev, texlive -Standards-Version: 3.9.4 +Build-Depends: debhelper (>= 9), libsctp-dev, texlive, texlive-latex-extra +Standards-Version: 3.9.5 Homepage: http://www.grid.unina.it/software/ITG/ Package: d-itg diff -Nru d-itg-2.8.1-r1023/doc/d-itg-manual.tex d-itg-2.8.1-r1023/doc/d-itg-manual.tex --- d-itg-2.8.1-r1023/doc/d-itg-manual.tex 2010-09-05 09:32:22.000000000 +0000 +++ d-itg-2.8.1-r1023/doc/d-itg-manual.tex 2013-12-20 10:32:55.000000000 +0000 @@ -1,1020 +1,2130 @@ -\documentclass[english]{article} +\documentclass{article} -% ifPDF command to write conditional code -%\newif\ifPDF -%\ifx\pdfoutput\undefined\PDFfalse -%\else\ifnum\pdfoutput > 0\PDFtrue -% \else\PDFfalse -% \fi -%\fi - -%\ifPDF - \usepackage[pdftex]{graphicx,color} - \usepackage[pdftex,colorlinks,plainpages=false]{hyperref} -%\else -% \usepackage[dvips]{graphicx,color} -%\fi -\title{D-ITG V. 2.7.0-Beta2 Manual\footnote{home page: http://www.grid.unina.it/software/ITG}} -\author{Stefano Avallone, Alessio Botta,\\ -Alberto Dainotti, Walter de Donato, and Antonio Pescap\'e\\ - \textit{University of Napoli Federico II}} - -%\usepackage[T1]{fontenc} -\usepackage{babel} -\usepackage[latin1]{inputenc} -\usepackage{color} +% - Dependencies - % +\usepackage[dvips]{epsfig,graphicx} +\usepackage[dvipsnames,usenames]{color} +\usepackage[colorlinks=true,linkcolor=blue,urlcolor=blue,citecolor=blue]{hyperref} +\usepackage[affil-it]{authblk} +\usepackage[english]{babel} +\usepackage[utf8]{inputenc} \usepackage{charter} - -\makeatletter - \newenvironment{lyxcode} - {\begin{list}{}{ +\usepackage{multirow} +\usepackage{url} +\usepackage[top=2cm, bottom=2cm, left=2cm, right=2cm]{geometry} +\usepackage{fancyvrb} + +%\usepackage[pdftex]{graphicx} +%\DeclareGraphicsExtensions{.pdf,.jpeg,.png} + +% - New commands - % +\newcommand{\tr}[1]{\textcolor{Red}{#1}} +\newcommand{\tg}[1]{\textcolor{Green}{#1}} +\newcommand{\tb}[1]{\textcolor{Blue}{#1}} +\newcommand{\ver}[0]{§VERSION§} +\newcommand{\rev}[0]{§REVISION§} + + +% - New environments - % +% \makeatletter +\newenvironment{lyxcode}{ + \begin{list}{}{ \setlength{\rightmargin}{\leftmargin} - \setlength{\listparindent}{0pt}% + \setlength{\listparindent}{0pt}% \raggedright \setlength{\itemsep}{0pt} \setlength{\parsep}{0pt} \normalfont\ttfamily}% - \item[]} - {\end{list}} -\usepackage{babel} -\makeatother + \item[] + }{\end{list}} +% \makeatother + +% - Title and authors - % +\title{D-ITG \ver{} Manual} +\author{Alessio Botta, Walter de Donato, Alberto Dainotti, \hspace{10cm} + Stefano Avallone, and Antonio Pescap\'e \\ + COMICS (COMputer for Interaction and CommunicationS) Group \\ + Department of Electrical Engineering and Information Technologies \\ + University of Napoli Federico II \\ +\vspace{1cm}\url{http://traffic.comics.unina.it/software/ITG}} +% - Document Body - % \begin{document} \maketitle \newpage \tableofcontents \newpage -\section{ITGSend}\label{ITGSend} -\subsection{Synopsis} +%----------------------------------------------------------------------------- +\section{Overview}\label{sec:overview} -\paragraph{}In case of using a script file to generate multiple flows, type:\\ +D-ITG (Distributed Internet Traffic Generator) is a platform capable to produce IPv4 and IPv6 traffic by accurately replicating the workload of current Internet applications~\cite{d-itg0000, d-itg1111, d-itg3333, d-itg2222}. +At the same time D-ITG is also a network measurement tool able to measure the most common performance metrics (e.g. throughput, delay, jitter, packet loss) at packet level. -\textbf{ITGSend} $\langle$script\_file$\rangle$ $\Big[$ \textbf{--l} $\big[\langle$logfile$\rangle\big]\Big]$ $\Big[$ \textbf{--L} $\big[\langle$log\_server\_addr$\rangle\big]$ $\big[\langle$protocol\_type$\rangle\big]\Big]$ $\Big[$ \textbf{--x} $\big[\langle$receiver\_logfile$\rangle\big]\Big]$ $\Big[$ \textbf{--X} $\big[\langle$log\_server\_addr$\rangle\big]$ $\big[\langle$protocol\_type$\rangle\big]\Big]$ +D-ITG can generate traffic following \textit{stochastic models} for packet size (PS) and inter departure time (IDT) that mimic application-level protocol behavior. +By specifying the distributions of IDT and PS random variables, it is possible to choose different renewal processes for packet generation: by using characterization and modeling results from literature, D-ITG is able to replicate statistical properties of traffic of different well-known applications (e.g Telnet, VoIP - G.711, G.723, G.729, Voice Activity Detection, Compressed RTP - DNS, network games). -\paragraph{}If you want to remotely control the sender, launch it in daemon mode: \\ - -\textbf{ITGSend --Q} $\Big[$ \textbf{--l} $\big[\langle$logfile$\rangle\big]\Big]$ $\Big[$ \textbf{--L} $\big[\langle$log\_server\_addr$\rangle\big]$ $\big[\langle$protocol\_type$\rangle\big]\Big]$ $\Big[$ \textbf{--x} $\big[\langle$receiver\_logfile$\rangle\big]\Big]$ $\Big[$ \textbf{--X} $\big[\langle$log\_server\_addr$\rangle\big]$ $\big[\langle$protocol\_type$\rangle\big]\Big]$ - -\paragraph{}Otherwise if you want to generate a single flow: \\ - -\textbf{ITGSend} $\big[$ \textbf{--m} $\langle$msr\_type$\rangle\big]$ $\big[$ \textbf{--a} $\langle$destination\_address$\rangle\big]$ $\big[$ \textbf{--rp} $\langle$destination\_port$\rangle\big]$ $\big[$ \textbf{--sp} $\langle$source\_port$\rangle\big]$ $\big[$ \textbf{--i} $\langle$network\_interface$\rangle\big]$ $\big[$ \textbf{--T} $\langle$protocol\_type$\rangle\big]$ $\big[$ \textbf{--f} $\langle$TTL$\rangle\big]$ $\big[$ \textbf{--b} $\langle$DS byte$\rangle\big]$ -$\big[$ \textbf{--rk} $\langle$receiver\_serial\_iface$\rangle\big]$ $\big[$ \textbf{--sk} $\langle$sender\_serial\_iface$\rangle\big]$ $\big[$ \textbf{--D} $\big]$ $\big[$ \textbf{--P} $\big]$ -$\big[$ \textbf{--s} $\langle$seed$\rangle\big]$ $\big[$ \textbf{--t} $\langle$duration$\rangle\big]$ $\big[$ \textbf{--d} $\langle$gen\_delay$\rangle\big]$ $\big[$ \textbf{--p} $\langle$payload\_log\_type$\rangle\big]$ $\big[$ \textbf{--j} $\langle$enable\_idt\_recovery$\rangle\big]$ -$\Big[$ \textbf{--l} $\big[\langle$logfile$\rangle\big]\Big]$ $\Big[$ \textbf{--L} $\big[\langle$log\_server\_addr$\rangle\big]$ $\big[\langle$protocol\_type$\rangle\big]\Big]$ $\Big[$ \textbf{--x} $\big[\langle$receiver\_logfile$\rangle\big]\Big]$ $\Big[$ \textbf{--X} $\big[\langle$log\_server\_addr$\rangle\big]$ $\big[\langle$protocol\_type$\rangle\big]\Big]$ $\Big[\big[$ \textbf{--C} $\langle$pkts\_per\_s$\rangle$ $\big|$ \textbf{--U} $\langle$min\_pkts\_per\_s$\rangle$ $\langle$max\_pkts\_per\_s$\rangle$ $\big|$ \textbf{--E} $\langle$average\_pkts\_per\_s$\rangle$ $\big|$ \textbf{--V} $\langle$shape$\rangle\langle$scale$\rangle$ $\big|$ \textbf{--Y} $\langle$shape$\rangle\langle$scale$\rangle$ $\big|$ \textbf{--N} $\langle$mean$\rangle\langle$std\_dev$\rangle$ $\big|$ \textbf{--O} $\langle$average\_pkts\_per\_s$\rangle$ $\big|$ \textbf{--G} $\langle$shape$\rangle\langle$scale$\rangle$ $\big|$ \textbf{--B} $\langle$onDistro$\rangle$ $\langle$offDistro$\rangle$ $\big]$ $\big[$ \textbf{--c} $\langle$pkt\_size$\rangle$ $\big|$ \textbf{--u} $\langle$min\_pkt\_size$\rangle\langle$max\_pkt\_size$\rangle$ $\big|$ \textbf{--e} $\langle$average\_pkt\_size$\rangle$ $\big|$ \textbf{--v} $\langle$shape$\rangle\langle$scale$\rangle$ $\big|$ \textbf{--y} $\langle$shape$\rangle\langle$scale$\rangle$ $\big|$ \textbf{--n} $\langle$mean$\rangle\langle$std\_dev$\rangle$ $\big|$ \textbf{--o} $\langle$average\_pkt\_size$\rangle$ $\big|$ \textbf{--g} $\langle$shape$\rangle\langle$scale$\rangle\big]\Big]$ $\big|$ $\Big[$ \textbf{Telnet} $\big|$ \textbf{DNS} $\big|$ \textbf{CSa} $\big|$ \textbf{CSi} $\big|$ \textbf{Quake3} $ \big|$ \textbf{VoIP} $\big[$ \textbf{--x} $\langle$codec\_type$\rangle\big]$ $\big[$ \textbf{--h} $\langle$protocol\_type$\rangle\big]$ $\big[$ \textbf{--VAD} $\big]\Big]$ - -\paragraph{}\textbf{NOTE}: launching ITGSend in background requires to redirect stdin to /dev/null - -\subsection{Description} -Sender Component of the D-ITG Platform. \\ -The script mode enables ITGSend to simultaneously generate several flows. Each flow is managed by a single thread, with a separate thread acting as a master and coordinating the other threads. To generate $n$ flows, the script file has to contain $n$ lines, each of which is used to specify the characteristics of one flow. Each line can contain all the options illustrated in Section~\ref{sec:ITGSend_option}, but those regarding the logging process (--l, --L, --X, --x). Such options can be specified at the command line and refer to all the flows.\\ - -\subsection{Options}\label{sec:ITGSend_option} -\textbf{Flow options:} \\ -\begin{tabular}{p{.35\textwidth}p{.7\textwidth}} ---m $\langle$msr\_type$\rangle$ & Set the type of meter. Two values are allowed: owdm (one way delay meter) and rttm (round trip time meter). Default is owdm. D-ITG does not provide any sort of synchronization among senders and receivers. In order to correctly measure packet One Way Delay (OWD), the clocks of sender and receiver must be synchronized by other means. Otherwise, we suggest to use the Round Trip Time (RTT) meter; \\ ---a $\langle$destination\_address$\rangle$ & Set the destination address. Default is localhost; \\ ---rp $\langle$destination\_port$\rangle$ & Set the destination port. Default is 8999; \\ ---sp $\langle$source\_port$\rangle$ & Set the source port. If this option is not specified, the source port is set by the operating system; \\ ---i $\langle$network\_interface$\rangle$ & Set the interface ITGSend has to bind to (only Linux platforms). \\ ---T $\langle$protocol\_type$\rangle$ & Set the protocol type. Valid values are UDP, TCP, ICMP, SCTP, DCCP. Default is UDP. If you choose ICMP you must specify the type of message. Root privileges are needed under Linux; \\ ---f $\langle$TTL$\rangle$ & Set the time to live (TTL). The value is interpreted as a decimal number, or as an hexadecimal number if the prefix ``0x'' is used. The range is [0, 255]; \\ ---b $\langle$DS byte$\rangle$ & Set the DS byte for QoS tests. The value is interpreted as a decimal number, or as an hexadecimal number if the prefix ``0x'' is used. The range is [0, 255]. Default is 0 (Note: this option is disabled under Windows 2000 and XP, according to the ``Microsoft Knowledge Base Article - 248611'' \textit{http://support.microsoft.com/Default.aspx?scid=kb;EN-US;q248611}; under Linux, root privileges are needed to set the DS byte to a value greater than 160); \\ ---rk $\langle$receiver\_serial\_iface$\rangle$ & Instructs the receiver to raise a signal on the specified serial interface every time a packet is received. Typical values are COM1, COM2, etc. under Windows and ttys0, ttys1, etc. under Linux; \\ ---sk $\langle$sender\_serial\_iface$\rangle$ & Raises a signal on the specified serial interface every time a packet is sent; \\ ---s $\langle$seed$\rangle$ & Set the seed for the random number generator. By default a random value is taken; \\ ---D & Disable Nagle Algorithm; \\ ---P & Enable high thread priority (only Windows platform); \\ ---t $\langle$duration$\rangle$ & Set the generation duration. It is expressed in milliseconds. Default is 10000 ms; \\ ---d $\langle$gen\_delay$\rangle$ & Set the generation delay. It is expressed in milliseconds. Default is 0. \\ -\end{tabular} \\ -\begin{tabular}{p{.35\textwidth}p{.7\textwidth}} ---p $\langle$payload\_log\_type$\rangle$ & Set the type of information sent in the payload of each packet. Valid values are: 0 no information is sent in the payload packet; 1 only the sequence numbers are sent in the payload packet; 2 standard informations are sent in the payload packet. Default value is 2.\\ ---j $\langle$enable\_idt\_recovery$\rangle$ & Enable (1) or disable (0) the strategy used to guarantee the mean bitrate. Default value is 0. \\ -\end{tabular} \\ - -\textbf{Log options:} \\ -\begin{tabular}{p{.35\textwidth}p{.7\textwidth}} ---l $\big[\langle$logfile$\rangle\big]$ & Generate the log file. If the meter type is OWDM and this option is omitted, ITGSend does not generate the log file. If the meter type is RTTM and this option is omitted, ITGSend generates a log file with the default log file name. The default log file name is /tmp/ITGSend.log under Linux and ITGSend.log under Windows; \\ ---x $\big[\langle$receiver\_logfile$\rangle\big]$ & Generate the log file at the receiver side. The default log file name is /tmp/ITGRecv.log under Linux and ITGRecv.log under Windows; \\ ---L $\big[\langle$log\_server\_addr$\rangle\big]$ $\big[\langle$protocol\_type$\rangle\big]$ & Remote log file. The first parameter is the log server IP address (default is localhost); the second parameter is the protocol used to rule the communication between the sender and the log server. Valid values are UDP and TCP (default is UDP). The log file name is specified by the --l option; \\ ---X $\big[\langle$log\_server\_addr$\rangle\big]$ $\big[\langle$protocol\_type$\rangle\big]$ & This option enables ITGRecv to remotely configure a log server. The first parameter is the log server IP address (default is localhost); the second parameter is the protocol used to rule the communication between the receiver and the log server. Valid values are UDP and TCP (default is UDP). The log file name is specified by the --x option; -\end{tabular} \\ - -\textbf{Inter-departure time options:}\\ -\begin{tabular}{p{.35\textwidth}p{.7\textwidth}} ---C $\langle$pkts\_per\_s$\rangle$ & Constant inter-departure time (IDT) \\ ---U $\langle$min\_pkts\_per\_s$\rangle$ $\langle$max\_pkts\_per\_s$\rangle$ & Uniformly distributed IDT \\ ---E $\langle$average\_pkts\_per\_s$\rangle$ & Exponentially distributed IDT \\ ---V $\langle$shape$\rangle$ $\langle$scale$\rangle$ & Pareto distributed IDT \\ ---Y $\langle$shape$\rangle$ $\langle$scale$\rangle$ & Cauchy distributed IDT \\ ---N $\langle$mean$\rangle$ $\langle$std\_dev$\rangle$ & Normal distributed IDT \\ ---O $\langle$average\_pkts\_per\_s$\rangle$ & Poisson distributed IDT \\ ---G $\langle$shape$\rangle$ $\langle$scale$\rangle$ & Gamma distributed IDT \\ ---W $\langle$shape$\rangle$ $\langle$scale$\rangle$ & Weibull distributed IDT \\ ---B $\langle$onDistro$\rangle$ $\langle$params$\rangle$ $\langle$offDistro$\rangle$ $\langle$params$\rangle$ & Burst (aka on/off) IDT, the on and off periods can be random or constant, all the supported distributions can be used for both the on and off periods. (\textbf{NOTE: it must be the last command line option}). To enable this option D-ITG has to be compiled with "onoff" option enabled (i.e. make onoff=on).\\ -\end{tabular}\\ - -NOTE: The IDT random variable provides the inter-departure time expressed in milliseconds. For the sake of simplicity, in case of Constant, Uniform, Exponential and Poisson variables, each parameter, say it $x$, is specified as a packet rate value. It is then converted to a time interval value ($x\rightarrow \frac{1000}{x}$). If no option is specified, a constant IDT with 1000 packets per second is assumed. \\ - -\textbf{Packet size options:}\\ -\begin{tabular}{p{.35\textwidth}p{.7\textwidth}} ---c $\langle$pkts\_size$\rangle$ & Constant payload size. \\ ---u $\langle$min\_pkts\_size$\rangle$ $\langle$max\_pkts\_size$\rangle$ & Uniformly distributed payload size \\ ---e $\langle$average\_pkts\_size$\rangle$ & Exponentially distributed payload size \\ ---v $\langle$shape$\rangle$ $\langle$scale$\rangle$ & Pareto distributed payload size \\ ---y $\langle$shape$\rangle$ $\langle$scale$\rangle$ & Cauchy distributed payload size \\ ---n $\langle$mean$\rangle$ $\langle$std\_dev$\rangle$ & Normal distributed payload size \\ ---o $\langle$average\_pkts\_size$\rangle$ & Poisson distributed payload size \\ ---g $\langle$shape$\rangle$ $\langle$scale$\rangle$ & Gamma distributed payload size \\ ---w $\langle$shape$\rangle$ $\langle$scale$\rangle$ & Weibull distributed payload size \\ -\end{tabular}\\ - -NOTE: If no option is specified, a constant payload size of 512 bytes is assumed. \\ - -\textbf{Transport Layer protocols:} \\ - -\textbf{TCP} Generates traffic using Transmission Control Protocol.\\ - -\textbf{UDP} Generates traffic using User Datagram Protocol.\\ - -\textbf{DCCP} Generates traffic using the Datagram Congestion Control Protocol, a message-oriented protocol like UDP with some new features. DCCP implements not only congestion control and congestion control negotiation, but also reliable connection setup, teardown, and feature negotiation. No options are required. \\ - -\textbf{SCTP} Generates traffic using the Stream Control Transmission Protocol. At the moment no special features of this protocol have been implemented yet. Soon multi-streaming can be managed. Two options are required: the first is an identificator of the session whom it belongs to and the second is the max number of streams of the session. -NOTE: All streams belonging to the same session have to be specified with the same values for all the two options. \\ - -\textbf{Application Layer protocols:} \\ - -\textbf{DNS} Generate traffic with DNS traffic characteristics. No option is required. -NOTE: DNS traffic generation works with both UDP and TCP transport layer protocols. Different settings will be ignored.\\ - -\textbf{Telnet} Generate traffic with Telnet traffic characteristics. No option is required. -NOTE: Telnet traffic generation only works with TCP transport layer protocol. Different settings will be ignored.\\ - -\textbf{VoIP} Generate traffic with VoIP traffic characteristics. NOTE: VoIP traffic generation only works with UDP transport layer protocol. Different settings will be ignored. VoIP options are: \\ -\begin{tabular}{p{.27\textwidth}p{.67\textwidth}} ---x $\langle$codec\_type$\rangle$ & Set the Codec type. - VALUES:\begin{description} - \item[G.711.1] for G.711 codec with 1 sample per pkt (default) - \item[G.711.2] for G.711 codec with 2 samples per pkt - \item[G.723.1] for G.723.1 codec - \item[G.729.2] for G.729 codec with 2 samples per pkt - \item[G.729.3] for G.729 codec with 3 samples per pkt -\end{description} -\\ ---h $\langle$protocol\_type$\rangle$ & Set the protocol type. - VALUES: \begin{description} - \item[RTP] for Real Time Protocol (default) - \item[CRTP] for Real Time Protocol with header compression -\end{description} \\ ---VAD & Set the Voice Activity Detection (it is off by default). -\end{tabular} \\ - - -\textbf{CSa} Generate traffic with Counter Strike traffic characteristics related the active phase of the game. No option is required. -NOTE: CSa traffic generation only works with UDP Transport Layer protocol. Different settings will be ignored -\cite{1}.\\ - -\textbf{CSi} Generate traffic with Counter Strike traffic characteristics related the inactive phase of the game. No option is required. -NOTE: CSi traffic generation only works with UDP Transport Layer protocol. Different settings will be ignored -\cite{1}.\\ - -\textbf{Quake3} Generate traffic with Quake III Arena traffic characteristics. No option is required. -NOTE: Quake traffic generation only works with UDP Transport Layer protocol. Different settings will be ignored -\cite{2}.\\ +At the transport layer, D-ITG currently supports TCP (Transmission Control Protocol), UDP (User Datagram Protocol), SCTP\footnotemark[1] (Stream Control Transmission Protocol), and DCCP\footnote[1]{SCTP and DCCP are currently supported only under Linux.} (Datagram Congestion Control Protocol). It also supports ICMP (Internet Control Message Protocol). +Among the several features described below, FTP-like passive mode is also supported to conduct experiments in presence of NATs, and it is possible to set the TOS (DS) and TTL IP header fields. -NOTE: If you specify an application layer protocol then you cannot specify any inter-departure time or packet size option. The other options illustrated above are allowed. If you want to specify an application layer protocol you must indicate it after every other option. +%--------------------------------------- +\subsection{Architecture}\label{sec:architecture} -\vspace{-12pt} -\section{ITGRecv}\label{ITGRecv} +As reported in Fig.~\ref{fig:arch}, the architecture of D-ITG comprises different components. +% The main important ones are ITGSend, ITGRecv, ITGDec, and ITGLog. +% Other helpful tools, also distributed with D-ITG, are ITGManager and ITGPlot. -\vspace{-6pt} -\subsection{Synopsis} -\textbf{ITGRecv} $\Big[$ \textbf{--i} $\big[\langle$network\_interface$\rangle\big]\Big]$ $\Big[$ \textbf{--l} $\big[\langle$logfile$\rangle\big]\Big]$ $\Big[$ \textbf{--L} $\big[\langle$log\_server\_addr$\rangle\big]$ $\big[\langle$protocol\_type$\rangle\big]\Big]$ +\begin{figure}[htbp] + \label{fig:arch} + \centering + \includegraphics[width=0.5\textwidth]{fig/arch.png} + \caption{Architecture of D-ITG.} +\end{figure} -\paragraph{}\textbf{NOTE}: launching ITGRecv in background requires to redirect stdin to /dev/null +The core features of D-ITG are provided by ITGSend and ITGRecv. +ITGSend is the component responsible for generating traffic toward ITGRecv. +Exploiting a multithreaded design, ITGSend can send multiple parallel traffic flows toward multiple ITGRecv instances, and ITGRecv can receive multiple parallel traffic flows from multiple ITGSend instances. +A signaling channel is created between each couple of ITGSend and ITGRecv components to control the generation of all the traffic flows between them. -\subsection{Description} -Receiver Component of the D-ITG Platform. \\ -It can simultaneously receive flows from different senders. +ITGSend and ITGRecv can optionally produce log files containing detailed information about every sent and received packet. +Such logs can be saved locally or sent -- through the network -- to the ITGLog component (useful to collect all the measures at a single point or in the case of hosts with limited storage capabilities – e.g., sensors, embedded devices, smartphones, etc.). +The ITGDec component is in charge of analyzing the log files in order to extract performance metrics related to the traffic flows. -\subsection{Options} -\begin{tabular}{p{.35\textwidth}p{.7\textwidth}} ---i $\big[\langle$network\_inteface$\rangle\big]$ & Set the interface ITGRecv has to bind to (only Linux platforms). \\ ---l $\big[\langle$logfile$\rangle\big]$ & Generate the log file. If the --l option is specified at the receiver side and the --x option at the sender side (with different log file names), then the last option is ignored. If the --l option is not specified, each sender may specify a different log file name by means of the --x option; \\ ---L $\big[\langle$log\_server\_addr$\rangle\big]$ $\big[\langle$protocol\_type$\rangle\big]$ & The first parameter is the log server IP address (default is localhost); the second parameter is the protocol used to rule the communication between the receiver and the log server. Two values are allowed: UDP and TCP (default is UDP). If the --L option is specified at the receiver side and the --X option at the sender side, then the last option is ignored. If the --L option is not specified, each sender may specify a different log server by means of the --X option. \\ -\end{tabular} \\ +The experiments (even large-scale ones) can be controlled from a single vantage point: the ITGRecv components act as daemons and can be completely configured and controlled by the ITGSend components that want to send traffic to them. +Also the ITGSend components can act as daemons and can be remotely controlled through the D-ITG API. +The ITGManager component represents an example of how to use the D-ITG API to remotely control ITGSend. +This way, the user can completely control a large-scale distributed experiment from a single vantage point. +\subsubsection{ITGSend: Sender Component of the D-ITG Platform}\label{ITGSend} -\section{ITGLog}\label{ITGLog} +The ITGSend component is responsible for generating traffic flows and can work in three different modes: +\begin{itemize} + \item \textbf{Single-flow} - read the configuration of the single traffic flow to generate toward a single ITGRecv instance from the command line; + \item \textbf{Multi-flow} - read the configuration of multiple traffic flows to generate toward one or more ITGRecv instances from a script file. The script is made of a line for each traffic flow, which includes a set of command-line options as in the single-flow mode; + \item \textbf{Daemon} - run as a daemon listening on a UDP socket for instructions and can be remotely controlled using the D-ITG API. +\end{itemize} -\subsection{Synopsis} -\textbf{ITGLog} +Every traffic flow generated is described by two stochastic processes relating to Packet Size (PS) and Internet Departure Time (IDT), through which well defined traffic profiles can be generated, emulating application protocols such as VoIP, DNS, etc.. +PS and IDT series can also be loaded from a file for each flow. +ITGSend can log information about every sent or received packet, when running in \textit{One Way} or \textit{Round Trip} mode respectively (see below). +In the first case, timestamps (and other information) of sent packets are stored, while in the second case, timestamps (and other information) of sent and received packets are stored. +For each flow the source IP address can be specified, which is useful for multi-homed hosts. -\paragraph{}\textbf{NOTE}: launching ITGLog in background requires to redirect stdin to /dev/null +\subsubsection{ITGRecv: Receiver Component of the D-ITG Platform}\label{ITGRecv} -\subsection{Description} -Log Server of the D-ITG Platform. \\ -ITGLog receives log information from the ITGSend sender and the ITGRecv receiver. ITGLog listens on ports dynamically allocated in the range [9003--10003]. +The ITGRecv component is responsible for receiving multiple parallel traffic flows generated by one or more ITGSend instances. +It normally runs as a multi-threaded daemon listening on a TCP socket for incoming traffic reception requests. +Each time a request is received from the network, a new thread is created, which performs all the operations related to the new request (e.g. receiving the packets of the flow). +The port numbers on which ITGRecv will receive each flow and any logging activity required on the receiver side can be remotely controlled by ITGSend. A specific signaling protocol, called TSP, allows ITGRecv and ITGSend to properly setup and manage the traffic generation process. -\subsection{Options} -No option available. +\subsubsection{ITGLog: Logger Component of the D-ITG Platform}\label{ITGLog} -\section{ITGDec}\label{ITGDec} +The ITGLog component is responsible for receiving and storing log information possibly sent by ITGSend and ITGRecv. +It runs as a multi-threaded daemon listening on a TCP socket for incoming log requests. +Log information is received over TCP or UDP protocols on port numbers dynamically allocated in the range [9003--10003]. -\subsection{Synopsis} -\textbf{ITGDec} $\Big[$ $\langle$logfile$\rangle$ $\big[$ \textbf{--v} $\big|$ \textbf{--i} $\big]$ $\big[$ \textbf{--t} $\big]$ $\big[$ \textbf{--s} $\big]$ $\big[$ \textbf{--l} $\langle$text\_log\_file$\rangle\big]$ $\big[$ \textbf{--o} $\langle$octave\_log\_file$\rangle\big]$ $\big[$ \textbf{--d} $\langle$delay\_interval\_size$\rangle\big]$ $\big[$ \textbf{--j} $\langle$jitter\_interval\_size$\rangle\big]$ $\big[$ \textbf{--b} $\langle$bitrate\_interval\_size$\rangle\big]$ $\big[$ \textbf{--p} $\langle$packetloss\_interval\_size$\rangle\big]$ $\big[$ \textbf{--f} $\langle$max\_flow\_num$\rangle\big]$ $\big[$ \textbf{--P} $\big]$ $\big[$ \textbf{--I} $\big]\Big]$ $\big|$ $\big[$ \textbf{--h} $\big|$ \textbf{-- --help} $\big]$ +\subsubsection{ITGDec: Decoder Component of the D-ITG Platform}\label{ITGDec} -\subsection{Description} -The ITGDec decoder is the utility to analyze the results of the experiments conducted by using the -D-ITG generation platform. ITGDec parses the log files generated by ITGSend and ITGRecv and +The ITGDec component is responsible for decoding and analyzing the log files stored during the experiments conducted by using D-ITG. + +ITGDec parses the log files generated by ITGSend and ITGRecv and calculates the average values of bitrate, delay and jitter either on the whole duration of the -experiment or on variable-sized time intervals. You can analyze the binary log file only on the operating system used to create that file. You can use another operating system if the log file is in text format. The \textit{Total time} of the experiment is calculated as the difference between receiving time of last and first packet.\\ The displayed \textit{Jitter} is an average value. It is calculated according to Figure \ref{fig:jitter}. +experiment or on variable-sized time intervals. -\begin{figure}[htbp] - \label{fig:jitter} - \centering - \includegraphics[width=0.5\textwidth]{./fig/jitter} - \caption{Jitter formula} -\end{figure} +ITGDec analyzes the log files produced by ITGSend, ITGRecv, and ITGLog in order to produce the following results about each flow and about the whole set of flows: + +\begin{itemize} + \item Syntethic reports: + \begin{itemize} + \item Experiment duration + \item Packets transferred + \item Payload bytes transferred + \item One-way/round-trip delay (minimum, maximum, average, standard deviation) + \item Average bitrate + \item Average packet rate + \item Dropped packets + \item Duplicate packets + \item Loss events + \item Average loss-burst size + \item First/last sequence number + \end{itemize} + \item Sampled QoS metrics timeseries: + \begin{itemize} + \item Bitrate [Kbps] (i.e. goodput) + \item One-way/round-trip delay [ms] + \item Jitter [ms] (i.e. delay variation) + \item Packet loss [pps] (i.e. packets lost per second) + \end{itemize} +\end{itemize} + +%--------------------------------------- +\subsection{Features}\label{sec:features} + +D-ITG is able to generate multiple unidirectional flows from many senders toward many receivers, each of them having the following features. +\begin{itemize} + \item Customizable flow-level properties + \begin{itemize} + \item duration + \item start delay + \item total number of packets + \item total number of KBytes + \end{itemize} + \item Supported Layer-3 features + \begin{itemize} + \item protocols: IPv4, IPv6 + \item customizable header fields: + \begin{itemize} + \item source and destination IP addresses + \item source interface binding (for multi-homed devices) + \item initial TTL value + \item DS byte + \end{itemize} + \item NAT traversal: FTP-like passive mode + \end{itemize} + \item Supported Layer-4 features + \begin{itemize} + \item protocols: TCP, UDP, ICMP, DCCP, SCTP + \item customizable header fields: + \begin{itemize} + \item source and destination port numbers + \end{itemize} + \end{itemize} + \item Supported Layer-7 features + \begin{itemize} + \item Predefined stochastic PS (Packet Size) and IDT (Inter Departure Time) profiles: + \begin{itemize} + \item Telnet + \item DNS + \item Quake3 + \item CounterStrike (active and inactive) + \item VoIP (G.711, G.729, G.723) + \end{itemize} + \item Payload content: random or read from file + \item Stochastic processes supported for both PS and IDT: + \begin{itemize} + \item Supported distributions are Uniform, Constant, Exponential, Pareto, Cauchy, Normal, Poisson, Gamma, Weibull + \item Explicit random seed selection for replicating the same stochastic process + \item Loading of PS and IDT series from file + \end{itemize} + \end{itemize} + \item Packet-level QoS metrics + \begin{itemize} + \item Bitrate + \item Packet rate + \item One way delay (requires clocks synchronization) + \item Round Trip Time + \item Jitter + \item Packet loss + \end{itemize} +\end{itemize} + + +%--------------------------------------- +\section{Compiling D-ITG}\label{sec:buildingopts} + +\subsection{Requirements} + +D-ITG currently supports the following operating systems: +\begin{itemize} + \item Linux\footnotemark[1] (Ubuntu, Debian, Fedora, CentOS, OpenWRT, Snapgear, Montavista, uClinux) + \item Windows (XP, Vista, 7) + \item OSX (Leopard) + \item FreeBSD\footnotemark[1] +\end{itemize} +\footnotetext[1]{D-ITG has been tested with the latest releases available on March 2013.} +% +In order to compile D-ITG you need GNU Make and gcc. +Depending on the operating system, some limitations or additional requirements +may apply (see \ref{par:instr}). + + +\subsection{Building steps} +\label{par:instr} + +Independently on the operating system, these are the high-level steps to follow: +\begin{enumerate} + \item download and unpack the "D-ITG-\ver{}-r\rev{}-src.zip" package somewhere + on your filesystem; + \item from the command line, enter the "D-ITG-\ver{}-r\rev{}/src" directory; + \item type "make" to build the binaries. +\end{enumerate} +Once done, the binaries will be copied into the "D-ITG-\ver{}-r\rev{}/bin" directory. + +\vspace{14pt}\hspace{-0.6cm} +In order to show the list of compile-time options available for the +current operating system run: +\begin{verbatim} + $ make help +\end{verbatim} +please note that not all the options are available on all operating systems and +the previous command will only show the options available for the current target operating system. + +For instance, to enable DEBUG mode using a specific verbosity level the "debug=$<$level$>$" +option can be specified on the make command line: +\begin{verbatim} + $ make clean all debug= +\end{verbatim} +where $<$level$>$ is a positive integer value (bigger value $=>$ more verbose) and +if set to 0 enables only debugging symbols without increasing the verbosity level. + +\subsection{OS-Specific notes} + +We report in the following some guidelines specific for each operating system. + +\vspace{14pt}\hspace{-0.6cm} +\textbf{All Unix-like OSes (Linux, FreeBSD, OSX)} + +\begin{itemize} + \item +The D-ITG binaries can be installed on the system by using the root account: +\begin{verbatim} + # make install PREFIX=/usr/local +\end{verbatim} + or as normal user by using the sudo utility: +\begin{verbatim} + $ sudo make install PREFIX=/usr/local +\end{verbatim} + The same way the binaries can be removed by the system: +\begin{verbatim} + # make uninstall PREFIX=/usr/local +\end{verbatim} + or: +\begin{verbatim} + $ sudo make uninstall PREFIX=/usr/local +\end{verbatim} +If not specified, the PREFIX variable takes "/usr/local" as default value. + +\item The "multiport" and "bursty" options are enabled by default. They are still optional +since no extensive testing has been conducted on them. Both options can be disabled +at compile time respectively using the "multiport=off" and "bursty=off" options. +\end{itemize} + +\vspace{14pt}\hspace{-0.6cm} +\textbf{Linux} +\begin{itemize} + \item In order to enable the SCTP protocol (sctp=on option), libsctp should be installed first. +This feature is supported with kernel version starting from 2.5.15. + +\item The DCCP protocol (dccp=on option) is supported with kernel version starting from 2.6.14-rc1. + +\item Windows binaries can also be built under Linux using Mingw: +\begin{verbatim} + $ make T=win +\end{verbatim} + If MinGW is installed in a standard location (e.g. /usr/i686-w64-mingw32 on Ubuntu 12.10) + it will be automatically detected, otherwise it is necessary to set the MINGW variable to + point to the Mingw toolchain path: +\begin{verbatim} + $ export MINGW=/usr/local/i686-w64-mingw32 +\end{verbatim} + In order to show the options available in this case do: +\begin{verbatim} + $ make T=win help +\end{verbatim} +\end{itemize} + +\vspace{14pt}\hspace{-0.6cm} +\textbf{Windows} +\begin{itemize} + \item Since with Windows XP/2000 listening on both IPv4 and IPv6 sockets is not supported, +we provide an "ipv4only=on" option to disable IPv6 support. Which means that normally +ITGRecv under Windows XP/2000 will only be able to accept connections using IPv6. +Using more recent Windows versions this option is not necessary and ITGRecv +will be able to work with IPv4 and IPv6 simultaneously. + +\item The compilation under Windows has been tested using Dev-Cpp 4.9.9.2, which includes +the Mingw 32-bit toolchain based on GCC 3.4.2. It can be compiled both using the IDE +environment and Mingw from the command-line: + +\begin{itemize} + \item Using Dev-Cpp IDE: + \begin{enumerate} + \item Open the "src/D-ITG.dev" project + \item Uncomment the first lines of the "win-mingw.mk" file to set compile-time options, if needed + \item Verify that the DEVDIR variable points to the right path of your Dev-Cpp installation + \item Type CTRL + F11 to compile + \end{enumerate} + \item Using Mingw from the command-line: + \begin{enumerate} + \item Add the bin folder of Dev-Cpp to the execution path: + \begin{verbatim} + C:\> set PATH=\bin:%PATH% + \end{verbatim} + \item If you installed Dev-Cpp in the default path just do: + \begin{verbatim} + C:\D-ITG-VER-rREV\src> make + \end{verbatim} + otherwise you have to specify the right path setting the DEVDIR variable: + \begin{verbatim} + C:\D-ITG-VER-rREV\src> make DEVDIR= + \end{verbatim} + Compile-time options are supported also in this case. To list them do: + \begin{verbatim} + C:\D-ITG-VER-rREV\src> make help + \end{verbatim} + \end{enumerate} +\end{itemize} + +\item The "multiport" option is set to "off" by default because it currently adds a delay +of several seconds when starting ITGRecv.exe. +\end{itemize} + +\vspace{14pt}\hspace{-0.6cm} +\textbf{FreeBSD} + +\begin{itemize} + \item In order to build D-ITG you have to use the GNU version of make: +\begin{verbatim} + $ gmake +\end{verbatim} + +\item IPv6, DCCP and SCTP are currently not supported under FreeBSD. +\end{itemize} + +\vspace{14pt}\hspace{-0.6cm} +\textbf{OSX} +\begin{itemize} + \item IPv6, DCCP and SCTP are currently not supported under OSX. +\end{itemize} + +%----------------------------------------------------------------------------- +\section{Using D-ITG}\label{sec:components} + +In order to use D-ITG, you have to run at least ITGRecv instance to receive the traffic +and one ITGSend instance to send the traffic. +They simplest way to try it is to run both instances on the same host, as shown in the +quickstart example. + +%--------------------------------------------------------------------------- +\subsection{Quick start} + + +Once obtained the D-ITG binaries, following the instructions reported in section \ref{sec:buildingopts}, +you are ready to start using D-ITG. +% +Here we show a quickstart example in which all the components are executed on the same host and communicate +using the loopback interface: +\begin{itemize} +\item Open a console, enter the folder containing the D-ITG binaries, and run the ITGRecv component: +\begin{verbatim} + $ ./ITGRecv +\end{verbatim} + +\item Open a second console and, from the same folder, run the ITGSend component: +\begin{verbatim} + $ ./ITGSend -T UDP -a 127.0.0.1 -c 100 -C 10 -t 15000 \ + -l sender.log -x receiver.log +\end{verbatim} + +This way ITGSend will generate one UDP flow with constant payload size (100 bytes) and constant packet rate (10 pps) +for 15 seconds (15000 ms) and two packet-level log files will be generated both on sender (-l option) and +receiver (-x option) side. + +\item Now to analyze the logs, from the same folder, run the ITGDec component on both logs in turn: +\begin{verbatim} + $ ./ITGDec sender.log + + ... + + $ ./ITGDec receiver.log + + ... +\end{verbatim} + +The result in both cases should be similar to the following one: +{\footnotesize +\begin{verbatim} + ---------------------------------------------------------- + Flow number: 1 + From 127.0.0.1:44225 + To 127.0.0.1:8999 + ---------------------------------------------------------- + Total time = 14.944263 s + Total packets = 150 + Minimum delay = 0.000000 s + Maximum delay = 0.000000 s + Average delay = 0.000000 s + Average jitter = 0.000000 s + Delay standard deviation = 0.000000 s + Bytes received = 15000 + Average bitrate = 8.029837 Kbit/s + Average packet rate = 10.037297 pkt/s + Packets dropped = 0 (0.00 %) + Average loss-burst size = 0.000000 pkt + ---------------------------------------------------------- + + __________________________________________________________ + **************** TOTAL RESULTS ****************** + __________________________________________________________ + Number of flows = 1 + Total time = 14.944263 s + Total packets = 150 + Minimum delay = 0.000000 s + Maximum delay = 0.000000 s + Average delay = 0.000000 s + Average jitter = 0.000000 s + Delay standard deviation = 0.000000 s + Bytes received = 15000 + Average bitrate = 8.029837 Kbit/s + Average packet rate = 10.037297 pkt/s + Packets dropped = 0 (0.00 %) + Average loss-burst size = 0 pkt + Error lines = 0 + ---------------------------------------------------------- +\end{verbatim} +} +\end{itemize} + + + +%--------------------------------------- +\subsection{ITGSend}\label{qs:ITGSend} + +\subsubsection{Synopsis} +ITGSend can be launched in three different modes. + +\begin{itemize} + \item \textbf{Single-flow mode}: reads the single traffic flow to generate from the command line +\begin{verbatim} + $ ./ITGSend [log_opts] [sig_opts] [flow_opts] [misc_opts] + [ [idt_opts] [ps_opts] | [app_opts] ] +\end{verbatim} + + \item \textbf{Multi-flow mode}: reads the traffic flows to generate from a script file +\begin{verbatim} + $ ./ITGSend [log_opts] +\end{verbatim} + + \item \textbf{Daemon mode}: runs as a daemon to be remotely controlled using the ITGapi +\begin{verbatim} + $ ./ITGSend -Q [log_opts] +\end{verbatim} + +\end{itemize} + +\vspace{14pt}\hspace{-0.6cm} +\textbf{NOTE}: launching ITGSend in background requires to redirect stdin to /dev/null. + +\subsubsection{Modes} +\begin{description} + + \item[Single-flow mode] \hfill \\\\ The single-flow mode enables ITGSend to generate one traffic flow + according to the specified command-line options. The flow is managed by a dedicated thread, while a + separate thread is responsible for setting up and coordinating the generation process by communicating + with the ITGRecv component on a separate channel. + + \item[Multi-flow mode] \hfill \\\\ The multi-flow mode enables ITGSend to simultaneously generate several flows. Each + flow is managed by a single thread, with a single, separate thread acting as a master and coordinating the others. + To generate $n$ flows, the script file has to contain $n$ lines, each of them used to specify + the characteristics of one flow. Each line can contain all the options illustrated in + Section~\ref{sec:ITGSendoption}, with the exception of those regarding the logging process. + When using this mode, the logging options have to be specified on the command line and refer to all the flows. + + \item[Daemon mode] \hfill \\\\ The daemon mode allows ITGSend to be remotely controlled by using the ITGapi. + When working in this mode ITGSend acts as a daemon listening on a UDP port for traffic generation requests. + +\end{description} + +\subsubsection{Options}\label{sec:ITGSendoption} + +{\small +\begin{Verbatim}[commandchars=\\\{\}] +Log options (log_opts): + + -l [logfile] Generate sender-side log file (default: /tmp/ITGSend.log). + + Generates a log file containing timing, ordering and size information + about every packet sent by ITGSend. + Under Windows the default log file name is "ITGSend.log". + + -L [log_server_address] Generate sender-side log file on a remote ITGLog instance. + [logging_protocol] + The first parameter sets the log server IP address (default: 127.0.0.1). + The second parameter sets the transport protocol used to establish the + communication between ITGSend and ITGLog: UDP or TCP (default: UDP). + The name of the log file is specified by the -l option. + + -x [receiver_logfile] Ask ITGRecv to generate receiver-side log file (default: /tmp/ITGRecv.log). + + Generates a log file containing timing, ordering and size information + about every packet received by ITGRecv. + Under Windows the default log file name is "ITGRecv.log". + + -X [log_server_address] Ask ITGRecv to generate receiver-side log file on a remote ITGLog instance. + [logging_protocol] + The first parameter sets the log server IP address (default: 127.0.0.1). + The second parameter sets the transport protocol used to establish the + communication between ITGRecv and ITGLog: UDP or TCP (default: UDP). + The name of the log file is specified by the -x option. + + -q Number of packets to push to the log at once (default: 50). + + Sets how many packets have to be buffered before writing them to the + log file. Since the buffer is flushed (on disk or through the network + towards ITGLog) after this number of packets, using a small value has + impact on the generation performance. + This parameter has effect also when -L and -X options are specified. + + +Signaling options (sig_opts): + + -Sda Set the destination address for the signaling channel + (default: equal to -a ). + + -Sdp Set the destination port for the signaling channel + (default: 9000). + + -Ssa Set the source address for the signaling channel + (default: Set by O.S.). + + -Ssp Set the source port for the signaling channel + (default: Set by O.S.). + + -Si Set the network interface for the signaling channel + (available only on Linux). + + +Flow options (flow_opts): + + -H Enable NAT traversal: FTP-like passive mode + + As for FTP, such mode allows NAT traversal by opening every (TCP and UDP) + connection (for signaling and for traffic generation) in the opposite + direction (i.e. from ITGRecv towards ITGSend). When the option is enabled + ITGSend waits to be contacted by ITGRecv before starting the genearation. + This option is necessary when ITGRecv is behind a NAT, and it requires + the -H option also at reciver side (see ITGRecv help). + + -m Set the type of meter (default: owdm): + - owdm (one-way delay meter) + - rttm (round-trip time meter) + + D-ITG does not provide any sort of synchronization among senders and receivers. + In order to correctly measure packet One Way Delay (OWD), the clocks of sender + and receiver must be synchronized by other means. + Otherwise, we suggest to use the Round Trip Time (RTT) meter. + + -t Set the generation duration in ms (default: 10000 ms). + + When -t, -z, and/or -k are specified, the most restrictive applies. + + -z <#_of_packets> Set the number of packets to generate. + + When -t, -z, and/or -k are specified, the most restrictive applies. + + -k <#_of_KBytes> Set the number of KBytes to generate. + + When -t, -z, and/or -k are specified, the most restrictive applies. + + -d Start the generation after the specified delay in ms (default: 0 ms). + + -b Set the DS byte for QoS tests (default: 0). + + The value is interpreted as a decimal number (allowed range [0, 255]), + or as an hexadecimal number using the "0x" prefix (allowed range [0, ff]). + \underline{OS specific notes}: + - the option is disabled under Windows 2000 and XP, according to the + "Microsoft Knowledge Base Article - 248611". + - Under Linux you need root priviledges to set the DS byte to a value larger + than 160. + + -f Set the IP Time To Live (default: 64). + + The value is interpreted as a decimal number (allowed range [0, 255]), + or as an hexadecimal number using the "0x" prefix (allowed range [0, ff]). + + -a Set the destination address (default: 127.0.0.1). + + This option applies to both traffic flow and signaling channel unless + -Sda option is also specified. + + -sa Set the source address (default: Set by O.S.). + + -rp Set the destination port (default: 8999). + + This option applies only to traffic flows (i.e. not to signaling channel). + See above for signaling channel. + + -sp Set the source port (default: Set by O.S.). + + This option applies only to traffic flow. See above for signaling channel. + + -i Bind to the given interface (default: don't bind to any interface). + + -p Select the metadata sent in the payload of each packet (default: 0). + + Sets the type of information sent into the payload of each packet. + Valid values are: + - 0 standard information is sent in the packet payload; + - 1 only the sequence numbers are sent in the packet payload; + - 2 no information is sent in the packet payload. + + -T Layer 4 protocol (default: UDP): + - UDP (User Datagram Protocol) + + - TCP (Transport Control Protocol) + + Being TCP a stream-oriented protocol, the enforcement of + payload sizes is not guaranteed, especially when imposing + high packet rates. In this case the payload of subsequent + packets could be merged and then splitted again according + to the MSS value. The "-D" option may help in avoiding + this phenomenon, but many pre-compiled kernels have this + feature disabled and would just ignore it. + + - ICMP [type] (Internet Control Messaging Protocol) + + The default type is 8 (i.e. ECHO request). + \underline{Note}: To use ICMP under Linux you need root + priviledges for both ITGSend and ITGRecv. + + - SCTP + (Session Control Transport Protocol) + + SCTP protocol is currently supported only under Linux. + Not all the features of this protocol are supported yet. + Multi-streaming is partially supported but currently disabled. + The sub-option identifies the SCTP session, + while the sub-option defines how many streams + will be part of the session. + The streams part of the same SCTP session have to be specified + as separate flows with the same values for both sub-options. + To enable this option D-ITG has to be compiled with + "sctp" option enabled (i.e. make sctp=on). + + - DCCP (Datagram Congestion Control Protocol) + + DCCP protocol is currently supported only under Linux. + DCCP is a message-oriented protocol like UDP with + some new features. It implements not only congestion + control and congestion control negotiation, but also + reliable connection setup, teardown, and feature + negotiation. DCCP is supported only under Linux. + To enable this option D-ITG has to be compiled with + "dccp" option enabled (i.e. make dccp=on). + + -D Disable TCP Nagle algorithm. + + This option has effect only when using the TCP protocol and should allow to better + enforce the imposed payload size for each packet. + \underline{Note}: many pre-compiled kernels have this feature disabled and would just ignore it. + + +Inter-departure time options (idt_opts): + + -C Constant (default: 1000 pkts/s). + + -U Uniform distribution. + + + -E Exponential distribution. + + -N Normal distribution. + + -O Poisson distribution. + + -V Pareto distribution. + + -Y Cauchy distribution. + + -G Gamma distribution. -The displayed \textit{Delay} is calculated as the average of differences between receiving and sending times of packets. D-ITG does not provide any sort of synchronization among senders and receivers. -In order to correctly measure packet One Way Delay (OWD) the clocks of sender and receiver must be synchronized by other means. Depending on the requested resolution, NTP or GPS can be used. In the case of synchronization issues we suggest to use the Round Trip Time (RTT) meter.\\ -The displayed \textit{Delay standard deviation} ($\sigma$) is calculated according to equation \ref{eq:stddev}: - -\begin{equation} -\sigma=\sqrt{\frac{1}{N}\sum^{N}_{i=1}\left(d_i-\hat{d}\right)^2} -\label{eq:stddev} -\end{equation} -where $N$ is the number of packets considered, $d_i$ is the delay of packet $i$, and $\hat{d}$ is the average delay of packets. - -\subsection{Options}\label{sec:DecOpt} - -\begin{tabular}{p{.3\textwidth}p{.7\textwidth}} ---v & Print average and total results on screen in standard visualization format.\\ ---i & Print average and total results on screen in a different format in which each field is separated by ``*'' charachter.\\ ---t & The log file in input is considered to be in text format. If not specified the log file in input is considered to be in binary format.\\ ---s $\langle$personal\_string$\rangle$& The log file in input is split in $N$ files where $N$ is the number of flows detected in the log file. The names of the split files are in following format: ``sender ip address''-``receiver ip address''-``flow number''.$\langle$personal\_string$\rangle$.dat . If not provided, the Default value for $\langle$personal\_string$\rangle$ is ``log''.\\ ---l $\langle$text\_log\_file$\rangle$ & Produce an output log file in text format with name $\langle$text\_log\_file$\rangle$ .\\ ---o $\langle$octave\_log\_file$\rangle$& Generate a log file named ``octave\_log\_file'' that can be imported in Octave/Matlab.\\ ---f $\langle$flow\_info$\rangle$& If $\langle$flow\_info$\rangle$ is a number, only the flows with flow number less or equal to $\langle$flow\_info$\rangle$ will be considered. If $\langle$flow\_info$\rangle$ = $t$ all packets will be considered as belonging to the same flow.\\ ---d $\langle$delay\_interval\_size$\rangle$ & Every $\langle$delay\_interval\_size$\rangle$ milliseconds the average of transmission time of packets is calculated and printed in a file called ``delay.dat''. The structure of this file is as follows: a first column with time reference is present and is followed by different columns containing results calculated for each flow. A final column with aggregate result is also printed. In the first row ``sender ip address''-``receiver ip address''-``flow number'' is also printed in the columns related to single flows results. This is the reference for single flows information.\\ -\end{tabular} - -\begin{tabular}{p{.3\textwidth}p{.7\textwidth}} --b $\langle$bitrate\_interval\_size$\rangle$ & Every $\langle$bitrate\_interval\_size$\rangle$ milliseconds the average of instantaneous bit rate of packets is calculated and printed in a file called ``bitrate.dat''. The structure of this file is as follows: a first column with time reference is present and is followed by different columns containing results calculated for each flow. A final column with aggregate result is also printed. In the first row ``sender ip address''-``receiver ip address''-``flow number'' is also printed in the columns related to single flows results. This is the reference for single flows information.\\ --j $\langle$jitter\_interval\_size$\rangle$ & Every $\langle$jitter\_interval\_size$\rangle$ milliseconds the average of instantaneous jitter of packets is calculated and printed in a file called ``jitter.dat''. The structure of this file is as follows: a first column with time reference is present and is followed by different columns containing results calculated for each flow. A final column with aggregate result is also printed. In the first row ``sender ip address''-``receiver ip address''-``flow number'' is also printed in the columns related to single flows results. This is the reference for single flows information.\\ --p $\langle$packet\_loss\_interval\_size$\rangle$ & Every $\langle$packet\_loss\_interval\_size$\rangle$ milliseconds the average packet loss is calculated and printed in a file called ``packetloss.dat''. The structure of this file is as follows: a first column with time reference is present and is followed by different columns containing results calculated for each flow. A final column with aggregate result is also printed. In the first row ``sender ip address''-``receiver ip address''-``flow number'' is also printed in the columns related to single flows results. This is the reference for single flows information.\\ --P & Print on screen the size of each packet.\\ --I & Print on screen the inter departure time between each packet.\\ -\end{tabular} - -\subsection{Compatibility with previous versions} - -Version 2.4 of ITGDec is still capable of processing log files of D-ITG previous -versions. To have a version of ITGDec that is compatible with 2.3 version (or -previous) log files it is necessary to compile the source file (ITGDecod.cpp) -by using a pre-compiler option. This option is \texttt{V23} and it has to be -passed to the compiler with the directive \texttt{-D}.\\ Therefore, to compile -ITGDec to support this feature it is necessary to modify the \texttt{Makefile} -present in the \texttt{src} directory and to add the \texttt{-DV23} option. -Alternatively it is possible to compile ITGDec alone, using the following -syntax on the command line: ``\textbf{g++ ITGDecod.cpp -DV23 -lm -o -ITGDec}''.\\ - -\section{ITGplot}\label{ITGplot} - -\subsection{Synopsis} -\textbf{octave ITGplot} $\langle$input\_file$\rangle$ $\big[\langle$flow\_set$\rangle\big]$ - -\subsection{Description} -ITGplot is an Octave (\textit{http://www.octave.org}) script that enables to draw plots starting from the data contained in delay.dat, bitrate.dat, jitter.dat or packetloss.dat (see Section~\ref{sec:DecOpt}). The plot is saved (in the EPS format) in a file having the same name as the input file and the .eps extension. It is possible to save the plots in other formats by changing the \texttt{graphicformat} string in ITGplot. The available formats are those provided by gnuplot (run gnuplot and type `set term' to see the list of the available terminal types). It is also possible to give a title to the plot by setting the environment variable DITG\_PLOT\_TITLE. - -\subsection{Options} -\begin{tabular}{p{.3\textwidth}p{.7\textwidth}} -$\langle$input\_file$\rangle$ & The file containing the data to be plotted. It may be one of the .dat files produced by ITGDec; \\ -$\langle$flow\_set$\rangle$ & The subset of flows to be plotted, expressed in the Octave notation. Thus, 2:4 causes the second, the third and the fourth flows to be plotted, while ``[1 3 5]'' causes the first, the third and the fifth flows to be plotted (remember: double quotes are needed to enclose values containing blanks). If not specified, all the flows are plotted. \\ -\end{tabular} + -W Weibull distribution. -\subsubsection{Notes for Linux users} -It is possible to make ITGplot an executable Octave program by exploiting the `\#!' script mechanism. Follow these steps: + -Ft Read IDTs from file (in ms). + + The input file provided has to contain each value on a different line. + + -B + + Generate bursty traffic: + + Sets the duration of both ON and OFF periods according to a + supported random distribution (e.g. -B C 1000 C 1000). + Using this option the flow generates traffic in bursts, where the duration of ON + and OFF periods can be set according to all the supported distributions. + \underline{Notes}: + This option has to be the last one on the command line. + To enable this option D-ITG has to be compiled with "bursty" option enabled + (i.e. make bursty=on). + + \underline{Note}: + - The IDT random variable provides the inter-departure time expressed in milliseconds. + - For the sake of simplicity, in case of Constant, Uniform, Exponential and Poisson variables, each + parameter, say it x, is considered as a packet rate value in packets per second. It is then + internally converted to a IDT in milliseconds (y -> 1000/x). + + +Packet size options (ps_opts): + + -c Constant (default: 512 bytes). + + -u Uniform distribution. + + + -e Exponential distribution. + + -n Normal distribution. + + -o Poisson distribution. + + -v Pareto distribution. + + -y Cauchy distribution. + + -g Gamma distribution. + + -w Weibull distribution. + + -Fs Read payload sizes from file. + + The input file provided has to contain each value on a different line, + in agreement with the format of the output generated when using ITGDec + with the -P option. + + +Application layer options (app_opts): + + -Fp Read payload content from file. + + Telnet Emulate Telnet traffic. + + Generates traffic with Telnet characteristics. It works with TCP transport layer protocol. + Different settings will be ignored. + + DNS Emulate DNS traffic. + + Generates traffic with DNS characteristics. It works with both UDP and TCP transport + layer protocols. + + Quake3 Emulate Quake 3 traffic \cite{2}. + + Generates traffic with Quake III Arena characteristics. No option is required. It only + works with UDP Transport Layer protocol. Different settings will be ignored. + + CSa Emulate Counterstrike traffic - active player \cite{1}. + + Generates traffic with Counter Strike characteristics related to the active + phase of the game. No option is required. It only works with UDP Transport + Layer protocol. Different settings will be ignored. + + CSi Emulate Counterstrike traffic - idle player \cite{1}. + + Generates traffic with Counter Strike characteristics related to the inactive + phase of the game. No option is required. It only works with UDP Transport + Layer protocol. Different settings will be ignored. + + VoIP Emulate Voice-over-IP traffic. + -x VoIP sub-option: audio codec (default: G.711.1): + - G.711.<1 or 2> (samples per pkt) + - G.729.<2 or 3> (samples per pkt) + - G.723.1 + -h VoIP sub-option: audio transfer protocol (default: RTP): + - RTP: Real Time Protocol (default) + - CRTP: Real Time Protocol with header compression + -VAD VoIP sub-option: enable voice activity detection. + + Generate traffic with VoIP characteristics. It only works with UDP transport + layer protocol. Different settings will be ignored. + The emulation of the following codecs is supported: + - G.711.1: for G.711 codec with 1 sample per pkt (default) + - G.711.2: for G.711 codec with 2 samples per pkt + - G.723.1: for G.723.1 codec + - G.729.2: for G.729 codec with 2 samples per pkt + - G.729.3: for G.729 codec with 3 samples per pkt + + \underline{Note}: + - Emulation is obtained by properly replicating packet sizes and IDTs. The payload of the + application is not reproduced (i.e. bytes above transport layer have no real meaning). + - Application layer options have to be specified as the last option. + - If you specify an application layer protocol you cannot specify any inter-departure time, + or packet size option. + + +Misc options (misc_opts): + + -h | --help Display this help and exit. + + -s Set the seed used for generating distributions (default: random). + + Sets the seed for the random number generator (allowed range [0,1]). + + -poll Use busy-wait loop for IDTs shorter than 1 msec. + + This option is necessary in order to obtain better performance. + By enabling it, one or more CPU cores will run at 100\% during + the generation as long as IDTs shorter than 1 msec are required. + + -j <0|1> Guarantee the mean packet rate (default: 1): + - 0 (disable) + - 1 (enable) + + Normally, depending on the selected IDT distribution, ITGSend sleeps + some time before sending each packet. It can happen that the thread + responible for generating the packets wakes up in late, thus causing + an average packet rate smaller than the expected one. + If enabled, all the packets ITGSend was unable to send in the previous + interval are sent in late in the next one in order to guarantee the + expected mean bitrate. + + -sk Raise a signal on the serial interface when sending packets. + + Instructs ITGSend to raise a signal on the specified serial interface + every time a packet is sent. + \underline{OS specific notes}: + - Typical values under Windows are COM1, COM2, etc. + - Typicsl values under Linux are ttys0, ttys1, etc. + + -rk Ask ITGRecv to raise a signal on the serial interface when receiving packets. + + Instructs ITGRecv to raise a signal on the specified serial interface + every time a packet is received. + \underline{OS specific notes}: + - Typical values under Windows are COM1, COM2, etc. + - Typicsl values under Linux are ttys0, ttys1, etc. + + -P Enable thread high priority (available only on Windows platform). +\end{Verbatim} +} + +%--------------------------------------- +\subsection{ITGRecv}\label{qs:ITGRecv} + +\vspace{-6pt} +\subsubsection{Synopsis} + +\begin{verbatim} + ./ITGRecv [options] +\end{verbatim} + +\vspace{14pt}\hspace{-0.6cm} +\textbf{NOTE}: launching ITGRecv in background requires to redirect stdin to /dev/null + +\subsubsection{Options} +{\small +\begin{verbatim} + -h | --help Display this help and exit + + -P Enable thread high priority (available only on Windows platform). + + -a Bind data channels to a specific address. + + Sets the address ITGRecv has to bind to for receiving traffic flows. + If the -a option is not specified, each socket is bound to the + address specified by ITGSend with the -a option. + + -i Bind data channels to a specific network interface. + + Sets the interface ITGRecv has to bind to for receiving traffic flows + (only available on Linux platforms). + If the -i option is not specified, each socket is bound to the + interface owning the address specified by ITGSend with the -a option. + + -Si Bind signaling channels to a specific network interface. + + Sets the interface ITGRecv has to bind to when listening for signaling + connections (only Linux platforms). + If the -Si option is not specified, ITGRecv listens on all the interfaces. + + -Sp Signaling channel port number (default: 9000). + + Sets the TCP port number on which ITGRecv listens for signaling channels. + + -l [logfile] Enable logging to file (default filename: /tmp/ITGRecv.log). + + Generates a log file containing timing, ordering and size information about + every received packet. + Under Windows the default log file name is "ITGRecv.log". + If the -l option is specified at the ITGRecv side and the -x option is + set at the ITGSend side (with different log file names), the latter + option is ignored. + If the -l option is not specified, each ITGSend instance may specify a + different log filename by means of the -x option. + + -L [a:
] Enable remote logging to a remote ITGLog. + [p:] + [P:] The "a" sub-option sets the ITGLog server IP address (default: 127.0.0.1). + The "p" sub-option sets the ITGLog server signaling port (default: 9001). + The "P" sub-option sets the transport protocol used to establish the + communication with ITGLog: UDP or TCP (default: UDP). + The name of the log file is specified by the -l option. + If the -L option is specified at the ITGRecv side and the -X option is + set at the ITGSend side, then the latter is ignored. + If the -L option is not specified, each ITGSend instance may specify a + different log server by means of the -X option. + + -q Number of packets to push to the log at once (default: 50). + + Sets how many packets have to be buffered before writing them to the + log file. Since the buffer is flushed after every this number of packets, + using a small value has impact on the generation performance. + This parameter has effect also when the -L option is specified. + + -H Enable "Passive Mode" toward the specified ITGSend instance. + + This mode allows to receive traffic flows from an ITGSend instance when + ITGRecv is behind a NAT. + When enabled, ITGRecv does not run as a daemon. Instead it tries + to establish a signaling channel towards the specified ITGSend. + The related data flows are also initiated by ITGRecv in order to correctly + setup the NAT to receive the incoming traffic. + Note that this option allows to send and received only one set of flows. + ITGRecv exits after receiving the last flow of the set. + + -n Number of outgoing packets for UDP NAT traversal + + When in passive mode, this option sets the number of UDP packets to send + from ITGRecv towards ITGSend to instruct the NAT before receiving + the UDP traffic flow from ITGSend. This option does not apply to TCP + traffic flows, as the three-way handshake of TCP is sufficient for + instructing the NAT. +\end{verbatim} +} + + +%--------------------------------------- +\subsection{ITGLog}\label{qs:ITGLog} + +\subsubsection{Synopsis} + +\begin{verbatim} + ./ITGLog [options] +\end{verbatim} + +\vspace{14pt}\hspace{-0.6cm} +\textbf{NOTE}: launching ITGLog in background requires to redirect stdin to /dev/null + + +\subsubsection{Options} +{\small +\begin{verbatim} + -h | --help Display this help and exit + + -q Number of packets to push to the log at once (default: 50) + + Sets how many packets have to be buffered before writing them to the + log file. Since the buffer is flushed every this number of packets, + using a small value has impact on the generation performance. + This parameter has effect also when the -L option is specified. +\end{verbatim} +} + +%--------------------------------------- +\subsection{ITGDec}\label{qs:ITGDec} + +\subsubsection{Synopsis} + +\begin{verbatim} + ./ITGDec [options] +\end{verbatim} + + +\subsubsection{Options}\label{sec:DecOpt} +{\small +\begin{verbatim} + -v Print standard summary to stdout (default). + + Prints to stdout a summary comprising a set of statistics about each + flow and the whole set of flows. + + -l Print to the decoded log in text format. + + Generates the output log file in text format. + For each packet the log file contains a line with the following fields: + - Flow: the flow number + - Seq: the sequence number of the packet + - Src: the source IP address and port number (e.g. 127.0.0.1/44225) + - Dest: the destination IP address and port number (e.g. 127.0.0.1/8999) + - txTime: the transmission time (e.g. 8:23:52.874105) + - rxTime: the reception time (e.g. 8:23:52.874105) + - Size: the size of the packet payload in bytes + + -t Interpret as in text format. + + The input log file is considered to be in text format as generated by + using the -l option. If not specified the input log file is considered + to be in binary format. + + -o Print to the decoded log for Octave/Matlab import. + + Generates the output log file in a format that can be directly + imported from Octave/Matlab for further analysis. + The output log content is the same as the one generated by the -l option. + + -r Generate combined log file starting from receiver- and sender-side log files + [combined_log] (default filename: 'combined.dat'). + + Generates the binary log file starting from a receiver-side + log file, given as parameter, and the corresponding sender-side + log file. This is useful when ITGSend is launched with the "-p" + option having a value different from 2, because it does not insert into each + packet the transmission timestamp. Using this option, this timestamp is + recovered from the log file generated by ITGSend. + + -d
[filename] Print average delay to file every
milliseconds + (default filename: 'delay.dat'). + + Dumps to file the average packet transmission delay in milliseconds as + sampled every
milliseconds. + The first line of the output file represents the table header. The + following lines represent the table rows and comprise the follwing columns: + - the "Time" column contains a time reference; + - the following columns, labelled as "--", + contain the average value for each flow; + - the "Aggregate-Flow" column contains the aggregate average delay. + + -j [filename] Print average jitter to file every milliseconds + (default filename: 'jitter.dat'). + + Dumps to file the average packet jitter in milliseconds as sampled every + milliseconds. + The file format is the same as the one produced with the "-d" option. + + -b [filename] Print average bitrate to file every milliseconds + (default filename: 'bitrate.dat'). + + Dumps to file the average bitrate in Kbit/sec as sampled every + milliseconds. + The file format is the same as the one produced with the "-d" option. + + -p [filename] Print average packet loss to file every milliseconds + (default filename: 'packetloss.dat'). + + Dumps to file the average packet loss in packets/sec as sampled every + milliseconds. + The file format is the same as the one produced with the "-d" option. + + -c [filename] Print all average metrics to file every milliseconds + (default filename: 'combined_stats.dat'). + + Dumps to file all the average metrics as sampled every milliseconds. + Each line of the output file respectively contains the follwing fields: + - "Time", "Bitrate", "Delay", "Jitter", "Packet loss" + + -s [suffix] Generate a separate log file for each flow adding a suffix to its name + (default suffix: log). + + The input log file is split in N separate log files, where N is the number + of flows detected in the log file. + Each resulting log file will have the following filename format: + "--..dat". + If not provided, the default value for suffix is "log". + + -f Consider only flows with number <= . + Setting to 't' all packets are considered as part of the same flow. + + If is a number, only the flows with flow number less or equal than + will be considered. If is set to "t" all the packets will + be considered as belonging to the same flow. + + -P Print to stdout the size of each packet. + + -I Print to stdout the inter departure time between each packet pair. + + -h | --help Display this help and exit. +\end{verbatim} +} + +\subsubsection{Notes} +D-ITG log files consist of a set of records (one for each packet) including the following fields: +\begin{itemize} + \item \texttt{Flow}: the flow number + \item \texttt{Seq}: the sequence number of the packet + \item \texttt{SrcIP}: the source IP address + \item \texttt{SrcPort}: the source port number + \item \texttt{DestIP}: the destination IP address + \item \texttt{DestPort}: the destination port number + \item \texttt{txTime}: the transmission timestamp + \item \texttt{rxTime}: the reception timestamp + \item \texttt{Size}: the size of the packet payload in bytes +\end{itemize} + +\vspace{14pt}\hspace{-0.6cm} +The values reported in the standard summary are computed according to the log records as follows: +\begin{itemize} + \item the \textit{Total time} is computed as the difference between the \texttt{rxTime} of the last and the first packet. + \item the \textit{Delay} is computed as the difference between rxTime and txTime of each packet. + \item the \textit{Delay standard deviation} ($\sigma$) is computed according to equation \ref{eq:stddev}: + \begin{equation} + \sigma=\sqrt{\frac{1}{N}\sum^{N}_{i=1}\left(d_i-\hat{d}\right)^2} + \label{eq:stddev} + \end{equation} + where $N$ is the number of considered packets, $d_i$ is the delay of packet $i$, and $\hat{d}$ is the average delay of packets. + \item the \textit{Jitter} is computed according to Figure~\ref{fig:jitter}, where S$_i$ and R$_i$ respectively correspond to \texttt{txTime} and \texttt{rxTime}. + \begin{figure}[htbp] + \centering + \includegraphics[width=0.5\textwidth]{fig/jitter.png} + \caption{Jitter calculation formula.} + \label{fig:jitter} + \end{figure} +\end{itemize} + +\vspace{14pt}\hspace{-0.6cm} +The physical meaning of the metrics reported by analyzing the log files varies depending on the metric selected (One-Way or Round-Trip) when conducting the experiment and on the component that generated the log file (ITGSend or ITGRecv): +\begin{itemize} + \item A log file generated (locally or remotely) by ITGSend by using the One Way Delay Meter ("-m owdm" option) has for each packet the txTime and rxTime values both set to the transmission time. + Hence, \textit{delay} and \textit{jitter} should always have null value. + \textit{Packets dropped} should also be normally null, except for special cases or errors (e.g.~socket buffer full, lost log packets, etc.). + + \item In a log file generated (locally or remotely) by ITGSend by using the Round Trip Delay Meter ("-m rttm" option), the txTime and rxTime are both set by ITGSend, when transmitting the packet and when receiving the reply from ITGRecv respectively. + Hence, the \textit{delay} value represents the \textit{round-trip delay} and the \textit{jitter} value represents the \textit{round-trip delay variation}. + In this case, \textit{Packets dropped} refers to all the packets lost on the round-trip path (i.e.~accounts both lost packets and replies). + + \item A log file generated (locally or remotely) by ITGRecv has the txTime set by ITGSend when transmitting the packet and rxTime set by ITGRecv when receiving the packet. + Hence, the \textit{delay} value represents the \textit{one-way delay} and the \textit{jitter} value represents the \textit{one-way delay variation}. + In this case, \textit{Packets dropped} refers to packets lost only on the one-way path (i.e. from ITGSend to ITGRecv). +\end{itemize} + +\vspace{14pt}\hspace{-0.6cm} +\textbf{IMPORTANT!} D-ITG does not provide any sort of synchronization among its components. +In order to correctly measure the One Way Delay (OWD), the clocks of the host running ITGSend and ITGRecv must be synchronized by some means. Depending on the required accuracy, NTP, GPS, or other means can be used. +In the case of synchronization issues we suggest to use the Round Trip Time (RTT) meter. + +%--------------------------------------- +\subsection{ITGplot}\label{qs:ITGplot} + +ITGplot is an Octave (\textit{http://www.octave.org}) script that enables to draw plots using data contained in delay.dat, bitrate.dat, jitter.dat or packetloss.dat (see Section~\ref{sec:DecOpt}). The plot is saved (in the EPS format) in a file having the same name as the input file and the .eps extension. It is possible to save the plots in other formats by changing the \texttt{graphicformat} string in ITGplot. The available formats are those provided by gnuplot (run gnuplot and type `set term' to see the list of the available terminal types). It is also possible to give a title to the plot by setting the environment variable DITG\_PLOT\_TITLE. + +\subsubsection{Synopsis} +\begin{verbatim} + octave ITGplot [flow_set] +\end{verbatim} + +\subsubsection{Options} +{\small +\begin{verbatim} + The .dat file containing the data to be plotted. + It might be one of the .dat files produced by ITGDec. + + [flow_set] The subset of flows to be plotted, expressed in the Octave notation. + Thus, "2:4" allows to plot the second, the third and the fourth flows, + while "[1 3 5]" allows to plot the first, the third and the fifth flows + (remember: double quotes are needed to enclose values containing blanks). + If not specified, all the flows are plotted. +\end{verbatim} +} + +\subsubsection{Notes} + +\paragraph{Unix-like operating systems.} +It is possible to make ITGplot an executable Octave program by following these steps: \begin{enumerate} - \item make ITGplot an executable file (\texttt{chmod +x ITGplot}) + \item add execution permissions to ITGplot (\texttt{chmod +x ITGplot}) \item locate your Octave interpreter (\texttt{which octave}) \item write such location in the first line of ITGplot (e.g. \texttt{\#! /usr/bin/octave -qf}) \end{enumerate} -Then, you can directly execute ITGplot instead of passing it as argument to octave (e.g. \texttt{./ITGplot bitrate.dat 1:4}). -\\ If you want to set a title for the plot, you can use the \texttt{env} command: -\\ -\texttt{env DITG\_PLOT\_TITLE="A wonderful plot" ITGplot bitrate.dat "[1 4 6]"} +Then, you can directly execute ITGplot (e.g. \texttt{./ITGplot bitrate.dat 1:4}). + +\vspace{14pt}\hspace{-0.6cm} +If you want to set a title for the plot, you can use the \texttt{env} command: +\begin{verbatim} + env DITG_PLOT_TITLE="A wonderful plot" ITGplot bitrate.dat "[1 4 6]" +\end{verbatim} -\subsubsection{Notes for Windows users} +\paragraph{Windows operating system.} First, since ITGplot uses gnuplot to draw plots it is necessary to specify the path to the gnuplot executable (pgnuplot.exe), which should be ``C:$\backslash$Program Files$\backslash$GNU Octave \textit{version}$\backslash$bin''. The path Octave will search for programs to run can be specified in three different ways: \begin{enumerate} - \item using the \texttt{--exec-path} command line option: \\ \texttt{octave --exec-path "C:$\backslash$Program Files$\backslash$GNU Octave \textit{version}$\backslash$bin" ITGplot bitrate.dat} - \item setting the OCTAVE\_EXEC\_PATH environment variable: \\ \texttt{set OCTAVE\_EXEC\_PATH="C:$\backslash$Program Files$\backslash$GNU Octave \textit{version}$\backslash$bin"} - \item defining the EXEC\_PATH variable in the startup file (``C:$\backslash$Program Files$\backslash$GNU Octave \textit{version}$\backslash$opt$\backslash$octave$\backslash$share$\backslash$octave$\backslash$site$\backslash$m$\backslash$startup$\backslash$octaverc''): \\ EXEC\_PATH=``C:$\backslash\backslash$Program Files$\backslash\backslash$GNU Octave \textit{version}$\backslash\backslash$bin'' + \item using the \texttt{--exec-path} command line option: +\begin{verbatim} + octave --exec-path "C:\Program Files\GNU Octave VERSION\bin" ITGplot bitrate.dat +\end{verbatim} + \item setting the OCTAVE\_EXEC\_PATH environment variable: +\begin{verbatim} + set OCTAVE_EXEC_PATH="C:\Program Files\GNU Octave VERSION\bin" +\end{verbatim} + \item defining the EXEC\_PATH variable in the \texttt{octaverc} startup file: +\begin{verbatim} + edit "C:\Program Files\GNU Octave VERSION\opt\octave\share\octave\site\m\startup\octaverc" + + EXEC_PATH="C:\\Program Files\\GNU Octave VERSION\\bin" +\end{verbatim} \end{enumerate} % -Clearly, if the method described either in 2 or 3 is used there is no need to use the \texttt{--exec-path} command line option. -\\ If you want to set a title for the plot, you can type: - -\texttt{set DITG\_PLOT\_TITLE="A wonderful plot"} -\\before executing ITGplot. +Clearly, after applying methods 2 or 3 there is no need to use the \texttt{--exec-path} command line option. -\section{ITGapi}\label{ITGapi} +\vspace{14pt}\hspace{-0.6cm} +If you want to set a title for the plot, you can type: +\begin{verbatim} + set DITG_PLOT_TITLE="A wonderful plot" +\end{verbatim} +% +before executing ITGplot. -\subsection{Description} +%--------------------------------------- +\subsection{ITGapi}\label{qs:ITGapi} ITGapi is a C++ API that enables to remotely control traffic generation. For this purpose, after having launched ITGSend in daemon mode (ITGSend --Q) on one or more traffic source nodes, it is possible to use -the following function to remotely coordinate the traffic generation from different sender: +the following function to remotely coordinate the traffic generation for each ITGSend instance: -int DITGsend(char *sender, char *message); \\ +\begin{verbatim} + int DITGsend(char *sender, char *message); +\end{verbatim} +% +where: +\begin{itemize} + \item \texttt{sender} is the IP address of ITGSend. + \item \texttt{message} is a string containing the set of options you would pass to ITGSend on the command line. +\end{itemize} +% +The function may return one of the following values: +\begin{itemize} + \item \textbf{0} in case of success; + \item \textbf{-1} otherwise; +\end{itemize} + +\vspace{14pt}\hspace{-0.6cm} +ITGSend, when used in daemon mode, sends messages back to the application that issued the generation of the traffic flow. Two types of messages are used, one to acknowledge the start of the generation process and the other to notify its end. +The following functions allows to catch these messages: +% +\begin{verbatim} + int catchManagerMsg(char **senderIP, char **msg); +\end{verbatim} +% +where: +\begin{itemize} + \item \texttt{senderIP} is a pointer to a string containing the IP address of the sender that sent the message. + \item \texttt{msg} is a pointer to a string containing the command that the sender received. +\end{itemize} +% +The function may return one of the following values: +\begin{itemize} + \item \textbf{1} to indicate the start of the generation; + \item \textbf{2} to indicate the end of the generation; + \item \textbf{-1} in case no message has been received (the function is non blocking). +\end{itemize} + +\vspace{14pt}\hspace{-0.6cm} +The above mentioned prototypes are declared in the \texttt{ITGapi.h} header file. +D-ITG includes ITGManager.cpp, which is just a simple example of application based on ITGapi to remotely control traffic generation. -sender is the IP address of ITGSend and message is the string you would type at command line (except the name of the ITGSend executable file). Returns 0 in case of success, -1 otherwise. -ITGSend, when used in daemon mode, sends messages back to the application that issued the generation of the traffic flow. Two types of messages are used, one to acknowledge the start of the generation process and the other to signal its end. The manager application is able to catch those messages by using the function: \\ +%------------------------------------------------------------------- +\newpage +\section{Examples} +\label{Example} -int catchManagerMsg(char **senderIP, char **msg); \\ +All the usage examples reported in this section assume that the binaries are being executed from the folder containing the D-ITG binaries. -the return value is -1 in case no message arrived (the function is non blocking), 1 to indicate the start of the flow and 2 to indicate the end of the flow; senderIP is a pointer to a string containing the IP address of the sender that sent the message and msg is a pointer to a string containing the command that the sender received. +%--------------------------------------- +\subsection{Example \#1} +Single UDP flow with constant inter-departure time between packets and constant packets size: -These prototypes are declared in ITGapi.h -ITGManager.cpp is an example of application to remotely control the generation of traffic. To compile it, compile first ITGapi.cpp: \\ +\begin{enumerate} + \item start the receiver on the destination host (10.0.0.3): + \begin{verbatim} + $ ./ITGRecv + \end{verbatim} + \item start the sender on the source host (10.0.0.4): + \begin{verbatim} + $ ./ITGSend -a 10.0.0.3 -sp 9400 -rp 9500 -C 100 -c 500 -t 20000 -x recv_log_file + \end{verbatim} + \item The resulting flow from 10.0.0.4 to 10.0.0.3 has the following characteristics: + \begin{itemize} + \item the sender port is 9400 + \item the destination port is 9500 + \item 100 packets per second are sent (with constant inter-departure time between packets) + \item the size of each packet is equal to 500 bytes + \item the duration of the generation experiment is 20 seconds (20000 milliseconds) + \item at receiver side ITGRecv creates a log file named recv\_log\_file + \end{itemize} +\end{enumerate} - g++ ITGManager.cpp ITGapi.o -o ITGManager\\ +%--------------------------------------- +\subsection{Example \#2} +Single UDP flow in passive mode with constant inter-departure time between packets and constant packets size: +\begin{enumerate} + \item start the sender on the source host (192.168.0.4): + \begin{verbatim} + $ ./ITGSend -H -C 10 -c 50 -t 10000 -l send_log_file + \end{verbatim} + \item start the receiver on the destination host (10.0.0.3), potentially sitting behind a NAT: + \begin{verbatim} + $ ./ITGRecv -H 192.168.0.4 + \end{verbatim} + \item The resulting flow from 192.168.0.4 to 10.0.0.3 has the following characteristics: + \begin{itemize} + \item both source and destination ports are automatically selected + \item 10 packets per second are sent (with constant inter-departure time between packets) + \item the size of each packet is equal to 50 bytes + \item the duration of the generation experiment is 10 seconds (10000 milliseconds) + \item at sender side ITGSend creates a log file named send\_log\_file + \end{itemize} +\end{enumerate} -\section{Example} -\label{Example} +%--------------------------------------- +\subsection{Example \#3} +Single TCP flow with constant inter-departure time between packets and uniformly distributed packet size between 500 and 1000 bytes with local sender/receiver log + +\begin{enumerate} + \item start receiver on the destination host (10.0.0.3): +\begin{verbatim} + $ ./ITGRecv -l recv_log_file +\end{verbatim} + \item start the sender on the source host: +\begin{verbatim} + $ ./ITGSend -a 10.0.0.3 -rp 9501 -C 1000 -u 500 1000 -l send_log_file +\end{verbatim} + \item terminate ITGRecv by pressing Ctrl-C + \item decode the receiver log file on the destination host: +\begin{verbatim} + $ ./ITGDec recv_log_file +\end{verbatim} +{\footnotesize +\begin{verbatim} + ---------------------------------------------------------- + Flow number: 1 + From 10.0.0.4:34771 + To 10.0.0.3:9501 + ---------------------------------------------------------- + Total time = 10.001837 s + Total packets = 10000 + Minimum delay = 3633.445701 s + Maximum delay = 3633.464808 s + Average delay = 3633.449749 s + Average jitter = 0.000706 s + Delay standard deviation = 0.001364 s + Bytes received = 7498028 + Average bitrate = 5997.320692 Kbit/s + Average packet rate = 999.816334 pkt/s + Packets dropped = 0 (0.00 %) + ---------------------------------------------------------- + + **************** TOTAL RESULTS ****************** + Number of flows = 1 + Total time = 10.001837 s + Total packets = 10000 + Minimum delay = 3633.445701 s + Maximum delay = 3633.464808 s + Average delay = 3633.449749 s + Average jitter = 0.000706 s + Delay standard deviation = 0.036939 s + Bytes received = 7498028 + Average bitrate = 5997.320692 Kbit/s + Average packet rate = 999.816334 pkt/s + Packets dropped = 0 (0.00 %) + Error lines = 0 +\end{verbatim} +} +Note: see the very large delay values caused by absence of clock synchronization! + \item decode the sender log file on the source host: +\begin{verbatim} + $ ./ITGDec send_log_file +\end{verbatim} +{\footnotesize +\begin{verbatim} + ---------------------------------------------------------- + Flow number: 1 + From 10.0.0.4:34771 + To 10.0.0.3:9501 + ---------------------------------------------------------- + Total time = 9.999002 s + Total packets = 10000 + Minimum delay = 0.000000 s + Maximum delay = 0.000000 s + Average delay = 0.000000 s + Average jitter = 0.000000 s + Delay standard deviation = 0.000000 s + Bytes received = 7498028 + Average bitrate = 5999.021102 Kbit/s + Average packet rate = 1000.099810 pkt/s + Packets dropped = 0 (0.00 %) + ---------------------------------------------------------- + **************** TOTAL RESULTS ****************** + Number of flows = 1 + Total time = 9.999002 s + Total packets = 10000 + Minimum delay = 0.000000 s + Maximum delay = 0.000000 s + Average delay = 0.000000 s + Average jitter = 0.000000 s + Delay standard deviation = 0.000000 s + Bytes received = 7498028 + Average bitrate = 5999.021102 Kbit/s + Average packet rate = 1000.099810 pkt/s + Packets dropped = 0 (0.00 %) + Error lines = 0 + ---------------------------------------------------------- +\end{verbatim} +} +\end{enumerate} -\subsection{Example 1} -Single UDP flow with costant inter-departure time between packets and costant packets size +%--------------------------------------- +\subsection{Example \#4} +Single TCP flow with constant inter-departure time between packets and uniformly distributed packet size between 500 and 1000 bytes with remote sender/receiver log: -\begin{lyxcode} -1.start the receiver on the destination host (say it B):\\ -./ITGRecv\\ -2.start the sender on the source host (say it A):\\ -./ITGSend -a B -sp 9400 -rp 9500 -C 100 -c 500 -t 20000 -x recv\_log\_file\\ -The resulting flow from A to B has the following charateristic:\\ -the sender port is 9400\\ -the destination port is 9500\\ -100 packets per second are sent (with constant inter-departure time between packets)\\ -the size of each packet is equal to 500 bytes\\ -the duration of the generation experiment is 20 seconds (20000 milliseconds)\\ -at receiver side ITGRecv creates log file recv\_log\_file\\ -\end{lyxcode} - - -\subsection{Example 2} -Single TCP flow with costant inter-departure time between packets and uniformly distributed packet size between 500 and 1000 bytes with local sender/receiver log - -\begin{lyxcode} -\begin{enumerate} - \item start receiver on the destination host (10.0.0.3) - [donato@catarella tmp]\$ ./ITGRecv -l recv\_log\_file\\ - \item start the sender on the source host - [donato@otto donato]\$ ./ITGSend -a 10.0.0.3 -rp 9501 -C 1000 -u 500 1000 -l send\_log\_file\\ - \item close the ITGRecv by pressing Ctrl-C\\ - \item decode the receiver log file on the destination host: - [donato@catarella tmp]\$ ./ITGDec recv\_log\_file\\ - ----------------------------------------------------------\\ - Flow number: 1\\ - From 10.0.0.4:34771\\ - To 10.0.0.3:9501\\ - ----------------------------------------------------------\\ - Total time = 10.001837 s\\ - Total packets = 10000\\ - Minimum delay = 3633.445701 s\\ - Maximum delay = 3633.464808 s\\ - Average delay = 3633.449749 s\\ - Average jitter = 0.000706 s\\ - Delay standard deviation = 0.001364 s\\ - Bytes received = 7498028\\ - Average bitrate = 5997.320692 Kbit/s\\ - Average packet rate = 999.816334 pkt/s\\ - Packets dropped = 0 ( 0 \%)\\ - ----------------------------------------------------------\\ - - **************** TOTAL RESULTS ******************\\ - Number of flows = 1\\ - Total time = 10.001837 s\\ - Total packets = 10000\\ - Minimum delay = 3633.445701 s\\ - Maximum delay = 3633.464808 s\\ - Average delay = 3633.449749 s\\ - Average jitter = 0.000706 s\\ - Delay standard deviation = 0.036939 s\\ - Bytes received = 7498028\\ - Average bitrate = 5997.320692 Kbit/s\\ - Average packet rate = 999.816334 pkt/s\\ - Packets dropped = 0 ( 0 \%)\\ - Error lines = 0\\ - - - \item decode the sender log file on the source host: - [donato@otto donato]\$ ./ITGDec send\_log\_file\\ - ----------------------------------------------------------\\ - Flow number: 1\\ - From 10.0.0.4:34771\\ - To 10.0.0.3:9501\\ - ----------------------------------------------------------\\ - Total time = 9.999002 s\\ - Total packets = 10000\\ - Minimum delay = 0.000000 s\\ - Maximum delay = 0.000000 s\\ - Average delay = 0.000000 s\\ - Average jitter = 0.000000 s\\ - Delay standard deviation = 0.000000 s\\ - Bytes received = 7498028\\ - Average bitrate = 5999.021102 Kbit/s\\ - Average packet rate = 1000.099810 pkt/s\\ - Packets dropped = 0 ( 0 \%)\\ - ----------------------------------------------------------\\ - **************** TOTAL RESULTS ******************\\ - Number of flows = 1\\ - Total time = 9.999002 s\\ - Total packets = 10000\\ - Minimum delay = 0.000000 s\\ - Maximum delay = 0.000000 s\\ - Average delay = 0.000000 s\\ - Average jitter = 0.000000 s\\ - Delay standard deviation = 0.000000 s\\ - Bytes received = 7498028\\ - Average bitrate = 5999.021102 Kbit/s\\ - Average packet rate = 1000.099810 pkt/s\\ - Packets dropped = 0 ( 0 \%)\\ - Error lines = 0\\ - ----------------------------------------------------------\\ -\end{enumerate} -\end{lyxcode} - -\subsection{Example 3} -Single TCP flow with costant inter-departure time between packets and uniformly distributed packet size between 500 and 1000 bytes with remote sender/receiver log \\ - -\begin{lyxcode} -\begin{enumerate} - \item start the log server on the log host: [donato@catarella tmp]\$ ITGLog\\ - \item start the receiver on the destination host: [donato@catarella tmp] ITGRecv\\ - \item start the sender on the source host: [donato@otto donato]\$ ITGSend -a 10.0.0.3 -rp 9501 -C 1000 -u 500 1000 -l send\_log\_file -L 10.0.0.3 UDP -X 10.0.0.3 UDP -x recv\_log\_file\\ - \item close the receiver by pressing Ctrl-C\\ - \item close the log server by pressing Ctrl-C\\ - \item decode the receiver log file on the log host: - [donato@catarella tmp]\$ ITGDec recv\_log\_file\\ -----------------------------------------------------------\\ -Flow number: 1\\ -From 10.0.0.4:34772\\ -To 10.0.0.3:9501\\ -----------------------------------------------------------\\ -Total time = 9.993970 s\\ -Total packets = 9997\\ -Minimum delay = 3633.432089 s\\ -Maximum delay = 3633.504881 s\\ -Average delay = 3633.436616 s\\ -Average jitter = 0.000795 s\\ -Delay standard deviation = 0.004083 s\\ -Bytes received = 7495843\\ -Average bitrate = 6000.292576 Kbit/s\\ -Average packet rate = 1000.303183 pkt/s\\ -Packets dropped = 2 ( 0 \%)\\ -----------------------------------------------------------\\ - -**************** TOTAL RESULTS ******************\\ -Number of flows = 1\\ -Total time = 9.993970 s\\ -Total packets = 9997\\ -Minimum delay = 3633.432089 s\\ -Maximum delay = 3633.504881 s\\ -Average delay = 3633.436616 s\\ -Average jitter = 0.000795 s\\ -Delay standard deviation = 0.063898 s\\ -Bytes received = 7495843\\ -Average bitrate = 6000.292576 Kbit/s\\ -Average packet rate = 1000.303183 pkt/s\\ -Packets dropped = 2 ( 0 \%)\\ -Error lines = 0\\ -----------------------------------------------------------\\ - - \item decode the sender log file on the log host: -[donato@otto donato]\$ ITGDec send\_log\_file\\ -----------------------------------------------------------\\ -Flow number: 1\\ -From 10.0.0.4:34772\\ -To 10.0.0.3:9501\\ -----------------------------------------------------------\\ -Total time = 9.999001 s\\ -Total packets = 10000\\ -Minimum delay = 0.000000 s\\ -Maximum delay = 0.000000 s\\ -Average delay = 0.000000 s\\ -Average jitter = 0.000000 s\\ -Delay standard deviation = 0.000000 s\\ -Bytes received = 7498028\\ -Average bitrate = 5999.021702 Kbit/s\\ -Average packet rate = 1000.099910 pkt/s\\ -Packets dropped = 0 ( 0 \%)\\ -----------------------------------------------------------\\ -**************** TOTAL RESULTS ******************\\ -Number of flows = 1\\ -Total time = 9.999001 s\\ -Total packets = 10000\\ -Minimum delay = 0.000000 s\\ -Maximum delay = 0.000000 s\\ -Average delay = 0.000000 s\\ -Average jitter = 0.000000 s\\ -Delay standard deviation = 0.000000 s\\ -Bytes received = 7498028\\ -Average bitrate = 5999.021702 Kbit/s\\ -Average packet rate = 1000.099910 pkt/s\\ -Packets dropped = 0 ( 0\%)\\ -Error lines = 0\\ + +\begin{enumerate} + \item start the log server on the log host: +\begin{verbatim} + $ ./ITGLog +\end{verbatim} +\item start the receiver on the destination host: +\begin{verbatim} + $ ./ITGRecv +\end{verbatim} + \item start the sender on the source host: +\begin{verbatim} + $ ITGSend -a 10.0.0.3 -rp 9501 -C 1000 -u 500 1000 \ + -l send_log_file -L 10.0.0.3 UDP -X 10.0.0.3 UDP -x recv_log_file +\end{verbatim} + \item close the receiver by pressing Ctrl+C + \item close the log server by pressing Ctrl+C + \item decode the receiver log file on the log host: +\begin{verbatim} + $ ITGDec recv_log_file +\end{verbatim} +{\footnotesize +\begin{verbatim} + ---------------------------------------------------------- + Flow number: 1 + From 10.0.0.4:34772 + To 10.0.0.3:9501 + ---------------------------------------------------------- + Total time = 9.993970 s + Total packets = 9997 + Minimum delay = 3633.432089 s + Maximum delay = 3633.504881 s + Average delay = 3633.436616 s + Average jitter = 0.000795 s + Delay standard deviation = 0.004083 s + Bytes received = 7495843 + Average bitrate = 6000.292576 Kbit/s + Average packet rate = 1000.303183 pkt/s + Packets dropped = 2 (0.00 %) + ---------------------------------------------------------- + + **************** TOTAL RESULTS ****************** + Number of flows = 1 + Total time = 9.993970 s + Total packets = 9997 + Minimum delay = 3633.432089 s + Maximum delay = 3633.504881 s + Average delay = 3633.436616 s + Average jitter = 0.000795 s + Delay standard deviation = 0.063898 s + Bytes received = 7495843 + Average bitrate = 6000.292576 Kbit/s + Average packet rate = 1000.303183 pkt/s + Packets dropped = 2 (0.00 %) + Error lines = 0 + ---------------------------------------------------------- +\end{verbatim} +} + \item decode the sender log file on the log host: +\begin{verbatim} + $ ITGDec send_log_file +\end{verbatim} +{\footnotesize +\begin{verbatim} + ---------------------------------------------------------- + Flow number: 1 + From 10.0.0.4:34772 + To 10.0.0.3:9501 + ---------------------------------------------------------- + Total time = 9.999001 s + Total packets = 10000 + Minimum delay = 0.000000 s + Maximum delay = 0.000000 s + Average delay = 0.000000 s + Average jitter = 0.000000 s + Delay standard deviation = 0.000000 s + Bytes received = 7498028 + Average bitrate = 5999.021702 Kbit/s + Average packet rate = 1000.099910 pkt/s + Packets dropped = 0 (0.00 %) + ---------------------------------------------------------- + **************** TOTAL RESULTS ****************** + Number of flows = 1 + Total time = 9.999001 s + Total packets = 10000 + Minimum delay = 0.000000 s + Maximum delay = 0.000000 s + Average delay = 0.000000 s + Average jitter = 0.000000 s + Delay standard deviation = 0.000000 s + Bytes received = 7498028 + Average bitrate = 5999.021702 Kbit/s + Average packet rate = 1000.099910 pkt/s + Packets dropped = 0 (0.00 %) + Error lines = 0 +\end{verbatim} +} \end{enumerate} -\end{lyxcode} -\subsection{Example 4} +%--------------------------------------- +\subsection{Example \#5} If you want to simultaneously generate more than one flow, you have to prepare a script file like those shown in the following examples. Three UDP flows with different constant bit rate and remote log: -\begin{lyxcode} \begin{enumerate} - \item start the log server on the log host: [donato@otto tmp]\$ ITGLog\\ - \item start the receiver on the destination host: [donato@catarella tmp] ITGRecv\\ - \item create the script file: [donato@otto donato]\$ cat script\_file\\ --a 10.0.0.3 -rp 10001 -C 1000 -c 512 -T UDP\\ --a 10.0.0.3 -rp 10002 -C 2000 -c 512 -T UDP\\ --a 10.0.0.3 -rp 10003 -C 3000 -c 512 -T UDP\\ - \item start the sender: [donato@otto donato]\$ ITGSend script\_file -l send\_log\_file -L 10.0.0.4 UDP -X 10.0.0.4 UDP -x recv\_log\_file\\ - \item close the receiver by pressing Ctrl-C:\\ - \item close the log server by pressing Ctrl-C:\\ - \item decode the receiver log file on the log host: - [donato@otto donato]\$ ITGDec recv\_log\_file\\ -----------------------------------------------------------\\ -Flow number: 3\\ -From 10.0.0.4:34775\\ -To 10.0.0.3:10003\\ -----------------------------------------------------------\\ -Total time = 10.016555 s\\ -Total packets = 6098\\ -Minimum delay = 3633.409810 s\\ -Maximum delay = 3634.259565 s\\ -Average delay = 3633.507249 s\\ -Average jitter = 0.002100 s\\ -Delay standard deviation = 0.156419 s\\ -Bytes received = 3122176\\ -Average bitrate = 2493.612624 Kbit/s\\ -Average packet rate = 608.792145 pkt/s\\ -Packets dropped = 22216 ( 78 %)\\ -----------------------------------------------------------\\ -----------------------------------------------------------\\ -Flow number: 1\\ -From 10.0.0.4:34773\\ -To 10.0.0.3:10001\\ -----------------------------------------------------------\\ -Total time = 9.638360 s\\ -Total packets = 2269\\ -Minimum delay = 3633.402899 s\\ -Maximum delay = 3634.260524 s\\ -Average delay = 3633.461365 s\\ -Average jitter = 0.003114 s\\ -Delay standard deviation = 0.135945 s\\ -Bytes received = 1161728\\ -Average bitrate = 964.253670 Kbit/s\\ -Average packet rate = 235.413494 pkt/s\\ -Packets dropped = 4274 ( 65 \%)\\ -----------------------------------------------------------\\ -----------------------------------------------------------\\ -Flow number: 2\\ -From 10.0.0.4:34774\\ -To 10.0.0.3:10002\\ -----------------------------------------------------------\\ -Total time = 10.000351 s\\ -Total packets = 3136\\ -Minimum delay = 3633.407982 s\\ -Maximum delay = 3634.455203 s\\ -Average delay = 3633.514464 s\\ -Average jitter = 0.002740 s\\ -Delay standard deviation = 0.221725 s\\ -Bytes received = 1605632\\ -Average bitrate = 1284.460515 Kbit/s\\ -Average packet rate = 313.588993 pkt/s\\ -Packets dropped = 16864 ( 84 \%)\\ -----------------------------------------------------------\\ - -**************** TOTAL RESULTS ******************\\ -Number of flows = 3\\ -Total time = 10.038005 s\\ -Total packets = 11503\\ -Minimum delay = 3633.402899 s\\ -Maximum delay = 3634.455203 s\\ -Average delay = 3633.500165 s\\ -Average jitter = 0.003291 s\\ -Delay standard deviation = 0.417552 s\\ -Bytes received = 5889536\\ -Average bitrate = 4693.790051 Kbit/s\\ -Average packet rate = 1145.944837 pkt/s\\ -Packets dropped = 43354 ( 79 \%)\\ -Error lines = 0\\ - - - \item decode the sender log file on the log host: [donato@otto donato]\$ ITGDec send\_log\_file\\ -----------------------------------------------------------\\ -Flow number: 3\\ -From 10.0.0.4:34775\\ -To 10.0.0.3:10003\\ -----------------------------------------------------------\\ -Total time = 9.997255 s\\ -Total packets = 28480\\ -Minimum delay = 0.000000 s\\ -Maximum delay = 0.000000 s\\ -Average delay = 0.000000 s\\ -Average jitter = 0.000000 s\\ -Delay standard deviation = 0.000000 s\\ -Bytes received = 14581760\\ -Average bitrate = 11668.611034 Kbit/s\\ -Average packet rate = 2848.781991 pkt/s\\ -Packets dropped = 0 ( 0 \%)\\ -----------------------------------------------------------\\ -----------------------------------------------------------\\ -Flow number: 1\\ -From 10.0.0.4:34773\\ -To 10.0.0.3:10001\\ -----------------------------------------------------------\\ -Total time = 9.603001 s\\ -Total packets = 9604\\ -Minimum delay = 0.000000 s\\ -Maximum delay = 0.000000 s\\ -Average delay = 0.000000 s\\ -Average jitter = 0.000000 s\\ -Delay standard deviation = 0.000000 s\\ -Bytes received = 4917248\\ -Average bitrate = 4096.426107 Kbit/s\\ -Average packet rate = 1000.104030 pkt/s\\ -Packets dropped = 0 ( 0 \%)\\ -----------------------------------------------------------\\ -----------------------------------------------------------\\ -Flow number: 2\\ -From 10.0.0.4:34774\\ -To 10.0.0.3:10002\\ -----------------------------------------------------------\\ -Total time = 9.999501 s\\ -Total packets = 20000\\ -Minimum delay = 0.000000 s\\ -Maximum delay = 0.000000 s\\ -Average delay = 0.000000 s\\ -Average jitter = 0.000000 s\\ -Delay standard deviation = 0.000000 s\\ -Bytes received = 10240000\\ -Average bitrate = 8192.408801 Kbit/s\\ -Average packet rate = 2000.099805 pkt/s\\ -Packets dropped = 0 ( 0 \%)\\ -----------------------------------------------------------\\ -**************** TOTAL RESULTS ******************\\ -Number of flows = 3\\ -Total time = 10.013192 s\\ -Total packets = 58084\\ -Minimum delay = 0.000000 s\\ -Maximum delay = 0.000000 s\\ -Average delay = 0.000000 s\\ -Average jitter = 0.000000 s\\ -Delay standard deviation = 0.000000 s\\ -Bytes received = 29739008\\ -Average bitrate = 23759.862390 Kbit/s\\ -Average packet rate = 5800.747654 pkt/s\\ -Packets dropped = 0 ( 0 \%)\\ -Error lines = 0\\ -\end{enumerate} -\end{lyxcode} - - -\subsection{Example 5} -VoIP, Telnet and DNS flows towards two distinct destinations\\ - -\begin{lyxcode} -\begin{enumerate} -\item start the receiver on the first destination host: [donato@catarella donato]\$ ITGRecv -l recv1\_log\_file\\ -\item start the receiver on the second destination host: [donato@otto donato]\$ ITGRecv -l recv2\_log\_file\\ -\item create the script file [donato@otto donato]\$ cat script\_file\\ --a 10.0.0.3 -rp 10001 VoIP -x G.711.2 -h RTP -VAD\\ --a 10.0.0.4 -rp 10002 Telnet\\ --a 10.0.0.4 -rp 10003 DNS\\ -\item start the sender on the source host: [donato@otto donato]\$ ITGSend script\_file -l sender\_log\_file\\ -\item close the first receiver by pressing Ctrl-C\\ -\item close the second receiver by pressing Ctrl-C\\ -\item decode the sender log file: [donato@otto donato]\$ ITGDec sender\_log\_file\\ -----------------------------------------------------------\\ -Flow number: 2\\ -From 10.0.0.4:33029\\ -To 10.0.0.4:10002\\ -----------------------------------------------------------\\ -Total time = 9.998991 s\\ -Total packets = 1139\\ -Minimum delay = 0.000000 s\\ -Maximum delay = 0.000000 s\\ -Average delay = 0.000000 s\\ -Average jitter = 0.000000 s\\ -Delay standard deviation = 0.000000 s\\ -Bytes received = 2482\\ -Average bitrate = 1.985800 Kbit/s\\ -Average packet rate = 113.911494 pkt/s\\ -Packets dropped = 0 ( 0 \%)\\ -----------------------------------------------------------\\ -----------------------------------------------------------\\ -Flow number: 1\\ -From 10.0.0.4:34776\\ -To 10.0.0.3:10001\\ -----------------------------------------------------------\\ -Total time = 9.980002 s\\ -Total packets = 500\\ -Minimum delay = 0.000000 s\\ -Maximum delay = 0.000000 s\\ -Average delay = 0.000000 s\\ -Average jitter = 0.000000 s\\ -Delay standard deviation = 0.000000 s\\ -Bytes received = 56000\\ -Average bitrate = 44.889771 Kbit/s\\ -Average packet rate = 50.100190 pkt/s\\ -Packets dropped = 0 ( 0 \%)\\ -----------------------------------------------------------\\ -----------------------------------------------------------\\ -Flow number: 3\\ -From 10.0.0.4:34775\\ -To 10.0.0.4:10003\\ -----------------------------------------------------------\\ -Total time = 8.928575 s\\ -Total packets = 6\\ -Minimum delay = 0.000000 s\\ -Maximum delay = 0.000000 s\\ -Average delay = 0.000000 s\\ -Average jitter = 0.000000 s\\ -Delay standard deviation = 0.000000 s\\ -Bytes received = 1507\\ -Average bitrate = 1.350271 Kbit/s\\ -Average packet rate = 0.672000 pkt/s\\ -Packets dropped = 0 ( 0 \%)\\ -----------------------------------------------------------\\ - -**************** TOTAL RESULTS ******************\\ -Number of flows = 3\\ -Total time = 10.027982 s\\ -Total packets = 1645\\ -Minimum delay = 0.000000 s\\ -Maximum delay = 0.000000 s\\ -Average delay = 0.000000 s\\ -Average jitter = 0.000000 s\\ -Delay standard deviation = 0.000000 s\\ -Bytes received = 59989\\ -Average bitrate = 47.857286 Kbit/s\\ -Average packet rate = 164.040981 pkt/s\\ -Packets dropped = 0 ( 0 \%)\\ -Error lines = 0\\ -----------------------------------------------------------\\ + \item start the log server on the log host: +\begin{verbatim} + $ ./ITGLog +\end{verbatim} + \item start the receiver on the destination host: +\begin{verbatim} + $ ./ITGRecv +\end{verbatim} + \item create the script file: +\begin{verbatim} + $ cat > script_file < script_file <us8VhEs,6o-~> -"T/,qrVlfr"m#^`oDeafs8Vlts8;onpR(sjrr<#ls7ZKirVuols8)`_rsSi)s8)`ks7cQms8)6b -"oJ>us8VhEs,6o-~> -"T/,qrVlfr"m#^`oDeafs8Vlts8;onpR(sjrr<#ls7ZKirVuols8)`_rsSi)s8)`ks7cQms8)6b -"oJ>us8VhEs,6o-~> -s82orrql^'nb`@bp&G'fq>^H^Q2^j[rVm-#s7ZKhs8Vucrri/lqZ$Qkrr_ljrqQ$`#Pe?!lM1DP -oR[%%s*t~> -s82orrql^'nb`@bp&G'fq>^H^Q2^j[rVm-#s7ZKhs8Vucrri/lqZ$Qkrr_ljrqQ$`#Pe?!lM1DP -oR[%%s*t~> -s82orrql^'nb`@bp&G'fq>^H^Q2^j[rVm-#s7ZKhs8Vucrri/lqZ$Qkrr_ljrqQ$`#Pe?!lM1DP -oR[%%s*t~> -rquirrVlosqu-NrrVQBgrrW&soU5^ir;Z]pp?hn[kPt>WqtC$_nc'$ps8;`nn+cq_nG<1amJd1L -JcCN*J,~> -rquirrVlosqu-NrrVQBgrrW&soU5^ir;Z]pp?hn[kPt>WqtC$_nc'$ps8;`nn+cq_nG<1amJd1L -JcCN*J,~> -rquirrVlosqu-NrrVQBgrrW&soU5^ir;Z]pp?hn[kPt>WqtC$_nc'$ps8;`nn+cq_nG<1amJd1L -JcCN*J,~> -!r`,tqu6fks76$YrVm&krp9[brg<]dq=ade!:Kjd!9sL_!<2He!;HKm!WM`irr`&ls7u0a"T/5c -q>,[BMuS;~> -!r`,tqu6fks76$YrVm&krp9[brg<]dq=ade!:Kjd!9sL_!<2He!;HKm!WM`irr`&ls7u0a"T/5c -q>,[BMuS;~> -!r`,tqu6fks76$YrVm&krp9[brg<]dq=ade!:Kjd!9sL_!<2He!;HKm!WM`irr`&ls7u0a"T/5c -q>,[BMuS;~> -!<2fo!:p-h!;uir!;$0h!:uTX%K-8+q"X^^s8;o_s8VQUrrh`hs69F[rrr2frr<#qn,ECWrr3&t -s7V$DNW4M~> -!<2fo!:p-h!;uir!;$0h!:uTX%K-8+q"X^^s8;o_s8VQUrrh`hs69F[rrr2frr<#qn,ECWrr3&t -s7V$DNW4M~> -!<2fo!:p-h!;uir!;$0h!:uTX%K-8+q"X^^s8;o_s8VQUrrh`hs69F[rrr2frr<#qn,ECWrr3&t -s7V$DNW4M~> -q>Up&s7cQhs8MBYnGi@bqj7 -q>Up&s7cQhs8MBYnGi@bqj7 -q>Up&s7cQhs8MBYnGi@bqj7 -q>UWgs7Q?jmJ[%gn,N@]s7;WX"R-?q!!E3#"Tn_ns8DQYrsn]$o`+pWs7lU!!:p0gmdU5]n,MtQ -s7ZTuJcC`0J,~> -q>UWgs7Q?jmJ[%gn,N@]s7;WX"R-?q!!E3#"Tn_ns8DQYrsn]$o`+pWs7lU!!:p0gmdU5]n,MtQ -s7ZTuJcC`0J,~> -q>UWgs7Q?jmJ[%gn,N@]s7;WX"R-?q!!E3#"Tn_ns8DQYrsn]$o`+pWs7lU!!:p0gmdU5]n,MtQ -s7ZTuJcC`0J,~> -q#:?`rr;uu#6Y#;!;6Blr0[Kpr;Qfu!WWK1!s\i+r;6N_nGa!os6g9pr;Zcs!WVons8MNf"onr/ -qu6`uJcC`0J,~> -q#:?`rr;uu#6Y#;!;6Blr0[Kpr;Qfu!WWK1!s\i+r;6N_nGa!os6g9pr;Zcs!WVons8MNf"onr/ -qu6`uJcC`0J,~> -q#:?`rr;uu#6Y#;!;6Blr0[Kpr;Qfu!WWK1!s\i+r;6N_nGa!os6g9pr;Zcs!WVons8MNf"onr/ -qu6`uJcC`0J,~> -q>UWss8Vcn"o\K:!<<-"rV6EmqZ$?js763bs8Vins6fmd*W#g+rr<#toDeXcs7--`s76'emJlt] -s763gqu?B3s%`Om!!*&rs8Vlp!l&~> -q>UWss8Vcn"o\K:!<<-"rV6EmqZ$?js763bs8Vins6fmd*W#g+rr<#toDeXcs7--`s76'emJlt] -s763gqu?B3s%`Om!!*&rs8Vlp!l&~> -q>UWss8Vcn"o\K:!<<-"rV6EmqZ$?js763bs8Vins6fmd*W#g+rr<#toDeXcs7--`s76'emJlt] -s763gqu?B3s%`Om!!*&rs8Vlp!l&~> -q>UNns76-hrVm<-#6su'n*g;Vqu?6erV6Bnqu-No%f5u#o)J^hli6n\s7u]crr33#p&G$kp\)]. -"o\H$!<;rqrrr<$!rr&irr3u7s7?-fo^MnTp&G'Zs8Vlon,O+$p%\Odo)JagrVmT/qZ$6gs7ZBj -oDegiq$-p"mf3=YrVllsrr32ts763cq=agf"RlB]p@Nq9V#Pr~> -q>UNns76-hrVm<-#6su'n*g;Vqu?6erV6Bnqu-No%f5u#o)J^hli6n\s7u]crr33#p&G$kp\)]. -"o\H$!<;rqrrr<$!rr&irr3u7s7?-fo^MnTp&G'Zs8Vlon,O+$p%\Odo)JagrVmT/qZ$6gs7ZBj -oDegiq$-p"mf3=YrVllsrr32ts763cq=agf"RlB]p@Nq9V#Pr~> -q>UNns76-hrVm<-#6su'n*g;Vqu?6erV6Bnqu-No%f5u#o)J^hli6n\s7u]crr33#p&G$kp\)]. -"o\H$!<;rqrrr<$!rr&irr3u7s7?-fo^MnTp&G'Zs8Vlon,O+$p%\Odo)JagrVmT/qZ$6gs7ZBj -oDegiq$-p"mf3=YrVllsrr32ts763cq=agf"RlB]p@Nq9V#Pr~> -q>Vo@s8E*-qZ$6dmJd.dq#C -q>Vo@s8E*-qZ$6dmJd.dq#C -q>Vo@s8E*-qZ$6dmJd.dq#C -q#:Kmob%9(qu7!"s6p!T"98o3%K6;P!W_ilpAY*ms830'qud-%r:0gt$N^#%oDejg#R:Y9!rr)m -pW3@GrVlits82irp\=b$!;lfn#lXf-"pY/.q#C9m&dA=9s763m!rrK(!WrB$"onc1r;cltrW!-0 -!!!E-rs/N')[? -q#:Kmob%9(qu7!"s6p!T"98o3%K6;P!W_ilpAY*ms830'qud-%r:0gt$N^#%oDejg#R:Y9!rr)m -pW3@GrVlits82irp\=b$!;lfn#lXf-"pY/.q#C9m&dA=9s763m!rrK(!WrB$"onc1r;cltrW!-0 -!!!E-rs/N')[? -q#:Kmob%9(qu7!"s6p!T"98o3%K6;P!W_ilpAY*ms830'qud-%r:0gt$N^#%oDejg#R:Y9!rr)m -pW3@GrVlits82irp\=b$!;lfn#lXf-"pY/.q#C9m&dA=9s763m!rrK(!WrB$"onc1r;cltrW!-0 -!!!E-rs/N')[? -p\u0-rrW<&p%8:Ws8V0[pBh-*!!N?&rU^!g#6+W%)up?Cr!*3*!!Drp'*A47#6=f's5O(]!!<3$ -"Sp(;"o\H$!<;rqs$6;X!!*&d$3:/,nc&Xjs8)Kj)#O@5rWNW.jT>M_s8)csp\G$n!;?Hm!!Dln -!"/Dgs8N'!s7-a*s761$!<;Tg!"],-rr -p\u0-rrW<&p%8:Ws8V0[pBh-*!!N?&rU^!g#6+W%)up?Cr!*3*!!Drp'*A47#6=f's5O(]!!<3$ -"Sp(;"o\H$!<;rqs$6;X!!*&d$3:/,nc&Xjs8)Kj)#O@5rWNW.jT>M_s8)csp\G$n!;?Hm!!Dln -!"/Dgs8N'!s7-a*s761$!<;Tg!"],-rr -p\u0-rrW<&p%8:Ws8V0[pBh-*!!N?&rU^!g#6+W%)up?Cr!*3*!!Drp'*A47#6=f's5O(]!!<3$ -"Sp(;"o\H$!<;rqs$6;X!!*&d$3:/,nc&Xjs8)Kj)#O@5rWNW.jT>M_s8)csp\G$n!;?Hm!!Dln -!"/Dgs8N'!s7-a*s761$!<;Tg!"],-rr -q>Vf+s8Vlk!"&]1"T8,ps8N',!<<)q!"9#0rr<'!q!S+]!:0Xb'EJ.4rW)uu&-*1?s83?:!<<)k -!!*&on*nI!?N'm(!<;rrs7$'_#mUG0!!)]lr;ZWo#QO`-!!)`ds6]jNrsJhur;Qa%s8N'!qu??Z -!!`K$s6fpe!< -q>Vf+s8Vlk!"&]1"T8,ps8N',!<<)q!"9#0rr<'!q!S+]!:0Xb'EJ.4rW)uu&-*1?s83?:!<<)k -!!*&on*nI!?N'm(!<;rrs7$'_#mUG0!!)]lr;ZWo#QO`-!!)`ds6]jNrsJhur;Qa%s8N'!qu??Z -!!`K$s6fpe!< -q>Vf+s8Vlk!"&]1"T8,ps8N',!<<)q!"9#0rr<'!q!S+]!:0Xb'EJ.4rW)uu&-*1?s83?:!<<)k -!!*&on*nI!?N'm(!<;rrs7$'_#mUG0!!)]lr;ZWo#QO`-!!)`ds6]jNrsJhur;Qa%s8N'!qu??Z -!!`K$s6fpe!< -p\uf=qZ$TWrriB+#Q<]_$NU&'nc&Og!<;He"Sr)tr<*-#rr<'!p]'dl!<;uhrr3B"rr<'!s7ZKm -!!)c6rrrB$!!*&rrVnM@!s&B$!!WQ+%fcY3!:^$e!!!',qu?]prr<'!rV6F'oD]7"s7H?k)$'^: -q$-`s*YS8E!!rW)p^R<"rr -p\uf=qZ$TWrriB+#Q<]_$NU&'nc&Og!<;He"Sr)tr<*-#rr<'!p]'dl!<;uhrr3B"rr<'!s7ZKm -!!)c6rrrB$!!*&rrVnM@!s&B$!!WQ+%fcY3!:^$e!!!',qu?]prr<'!rV6F'oD]7"s7H?k)$'^: -q$-`s*YS8E!!rW)p^R<"rr -p\uf=qZ$TWrriB+#Q<]_$NU&'nc&Og!<;He"Sr)tr<*-#rr<'!p]'dl!<;uhrr3B"rr<'!s7ZKm -!!)c6rrrB$!!*&rrVnM@!s&B$!!WQ+%fcY3!:^$e!!!',qu?]prr<'!rV6F'oD]7"s7H?k)$'^: -q$-`s*YS8E!!rW)p^R<"rr -q>W#Ep&G'iqu?NmpAY*ps7ZKqs69RZp]LWmrs&W*o_\Od'DhV-"Si#grr<2trr3K%s7cNn%0-A/ -!"&]5qt8&1"o\H$!<;rqrrr?#!!*&qrW#Xr!!<35!<;uss8<3'"9AK%q#CEes8N0$s7ZL'p&G$k -!!i -q>W#Ep&G'iqu?NmpAY*ps7ZKqs69RZp]LWmrs&W*o_\Od'DhV-"Si#grr<2trr3K%s7cNn%0-A/ -!"&]5qt8&1"o\H$!<;rqrrr?#!!*&qrW#Xr!!<35!<;uss8<3'"9AK%q#CEes8N0$s7ZL'p&G$k -!!i -q>W#Ep&G'iqu?NmpAY*ps7ZKqs69RZp]LWmrs&W*o_\Od'DhV-"Si#grr<2trr3K%s7cNn%0-A/ -!"&]5qt8&1"o\H$!<;rqrrr?#!!*&qrW#Xr!!<35!<;uss8<3'"9AK%q#CEes8N0$s7ZL'p&G$k -!!i -q>UWqpB:[!oD\b7p%JUis8N'$s69RZp]LWrrr<'!s82g!!WVs$!<<#qrr -q>UWqpB:[!oD\b7p%JUis8N'$s69RZp]LWrrr<'!s82g!!WVs$!<<#qrr -q>UWqpB:[!oD\b7p%JUis8N'$s69RZp]LWrrr<'!s82g!!WVs$!<<#qrr -q#:En"9AE#-LUp6!W`5r$39r&nc&Og!;HKp!<;omrr<'!rVururqHEm!;lfmrr3)orr<&us8VZn -s7cQnpWS7nG`In!<;Kcq\&u.qZ$Wrs7lU"!<;is"TSN$!!*#t!!*#qs7cQo -q>U^#s8)6p&-2b1!!E8lp&bNsr^) -q#:En"9AE#-LUp6!W`5r$39r&nc&Og!;HKp!<;omrr<'!rVururqHEm!;lfmrr3)orr<&us8VZn -s7cQnpWS7nG`In!<;Kcq\&u.qZ$Wrs7lU"!<;is"TSN$!!*#t!!*#qs7cQo -q>U^#s8)6p&-2b1!!E8lp&bNsr^) -q#:En"9AE#-LUp6!W`5r$39r&nc&Og!;HKp!<;omrr<'!rVururqHEm!;lfmrr3)orr<&us8VZn -s7cQnpWS7nG`In!<;Kcq\&u.qZ$Wrs7lU"!<;is"TSN$!!*#t!!*#qs7cQo -q>U^#s8)6p&-2b1!!E8lp&bNsr^) -q>VN.q>(I!#64/lrr<$>rUBmr!<<)q!"9#1q#Cfbs8W&us8W*#rVmQ3"T\T&!"K#/r!j2:s763i -!!V]daT!4UrrE-%!!3-$!!)]es7ZHt!!!<*"p"Q#r;Qs"!#G\:'E787!!!<)"U4r+"U4r"s8N'' -s6KXa!>,kA!$D17!"T24rr<&js7?:)!!EH,#k\/s!!2ioq"k$kqtPaBV#Pr~> -q>VN.q>(I!#64/lrr<$>rUBmr!<<)q!"9#1q#Cfbs8W&us8W*#rVmQ3"T\T&!"K#/r!j2:s763i -!!V]daT!4UrrE-%!!3-$!!)]es7ZHt!!!<*"p"Q#r;Qs"!#G\:'E787!!!<)"U4r+"U4r"s8N'' -s6KXa!>,kA!$D17!"T24rr<&js7?:)!!EH,#k\/s!!2ioq"k$kqtPaBV#Pr~> -q>VN.q>(I!#64/lrr<$>rUBmr!<<)q!"9#1q#Cfbs8W&us8W*#rVmQ3"T\T&!"K#/r!j2:s763i -!!V]daT!4UrrE-%!!3-$!!)]es7ZHt!!!<*"p"Q#r;Qs"!#G\:'E787!!!<)"U4r+"U4r"s8N'' -s6KXa!>,kA!$D17!"T24rr<&js7?:)!!EH,#k\/s!!2ioq"k$kqtPaBV#Pr~> -pAb-m2[06i"TSl0p%SL[$3pP2"TSQ$s8NH,&-)\:!1s8Mfno)&Iq#lk#+s7QE\rr`6#(^9C.s7QF)!WN-"s8N'!s8V*Y!!)lqrser- -$i^/=!VlZp!seN.!WE$*$ip>."o%`VrriE%rr`0#!rRWLU]5i~> -pAb-m2[06i"TSl0p%SL[$3pP2"TSQ$s8NH,&-)\:!1s8Mfno)&Iq#lk#+s7QE\rr`6#(^9C.s7QF)!WN-"s8N'!s8V*Y!!)lqrser- -$i^/=!VlZp!seN.!WE$*$ip>."o%`VrriE%rr`0#!rRWLU]5i~> -pAb-m2[06i"TSl0p%SL[$3pP2"TSQ$s8NH,&-)\:!1s8Mfno)&Iq#lk#+s7QE\rr`6#(^9C.s7QF)!WN-"s8N'!s8V*Y!!)lqrser- -$i^/=!VlZp!seN.!WE$*$ip>."o%`VrriE%rr`0#!rRWLU]5i~> -q>Ucps8W#s!!!'(!<)p+pAaL_!"Ju> -!<;fgs6n)0*;]^/s7uNkpA4L]s8Vlfs8VokqtBjcp]'jbp%SCa*VTO)s7,XXs8W&rs8W&ts8Drs -rr;?bnc/Ugr9jCZrtY>/q>U$`o`+^Os8Vr`s8W&pr:p9krVcitrdk*Gs*t~> -q>Ucps8W#s!!!'(!<)p+pAaL_!"Ju> -!<;fgs6n)0*;]^/s7uNkpA4L]s8Vlfs8VokqtBjcp]'jbp%SCa*VTO)s7,XXs8W&rs8W&ts8Drs -rr;?bnc/Ugr9jCZrtY>/q>U$`o`+^Os8Vr`s8W&pr:p9krVcitrdk*Gs*t~> -q>Ucps8W#s!!!'(!<)p+pAaL_!"Ju> -!<;fgs6n)0*;]^/s7uNkpA4L]s8Vlfs8VokqtBjcp]'jbp%SCa*VTO)s7,XXs8W&rs8W&ts8Drs -rr;?bnc/Ugr9jCZrtY>/q>U$`o`+^Os8Vr`s8W&pr:p9krVcitrdk*Gs*t~> -q#:d#q#C*gs7uEhs7Z'ZrVm*$rUfjZrUKjd+o_H9pAb0`s7#OXs7lWorVu*]s7u]kp\jaZrq$-h -s8)Q4rs&?"s7cQnmf!/Iq>C9mna?GTs7ZKls8Vurs823`qt9FXp&G'ks8Vlhs8Vlhs8)0`s8MKR -s82innc/4\s6K^[p&G'frr30$qu?]no)AXmo_AIdr;-l&~> -q#:d#q#C*gs7uEhs7Z'ZrVm*$rUfjZrUKjd+o_H9pAb0`s7#OXs7lWorVu*]s7u]kp\jaZrq$-h -s8)Q4rs&?"s7cQnmf!/Iq>C9mna?GTs7ZKls8Vurs823`qt9FXp&G'ks8Vlhs8Vlhs8)0`s8MKR -s82innc/4\s6K^[p&G'frr30$qu?]no)AXmo_AIdr;-l&~> -q#:d#q#C*gs7uEhs7Z'ZrVm*$rUfjZrUKjd+o_H9pAb0`s7#OXs7lWorVu*]s7u]kp\jaZrq$-h -s8)Q4rs&?"s7cQnmf!/Iq>C9mna?GTs7ZKls8Vurs823`qt9FXp&G'ks8Vlhs8Vlhs8)0`s8MKR -s82innc/4\s6K^[p&G'frr30$qu?]no)AXmo_AIdr;-l&~> -q#^Kns8;?cs82ies8Ducp&"@\s82ibs8Mups7lEin,3+Ss82`oq>^$_rri#p -rVu`8rs\f#s6p!frr:sWs7c-artbM&oDejDs7$'Us82irqYgH`s7,a[p%SIqr:9gds82`opAb-i -q=ssh')qq*s7uZ]s8Vigs8W)uq>C9^rr3/ms7uKjnq$h:s*t~> -q#^Kns8;?cs82ies8Ducp&"@\s82ibs8Mups7lEin,3+Ss82`oq>^$_rri#p -rVu`8rs\f#s6p!frr:sWs7c-artbM&oDejDs7$'Us82irqYgH`s7,a[p%SIqr:9gds82`opAb-i -q=ssh')qq*s7uZ]s8Vigs8W)uq>C9^rr3/ms7uKjnq$h:s*t~> -q#^Kns8;?cs82ies8Ducp&"@\s82ibs8Mups7lEin,3+Ss82`oq>^$_rri#p -rVu`8rs\f#s6p!frr:sWs7c-artbM&oDejDs7$'Us82irqYgH`s7,a[p%SIqr:9gds82`opAb-i -q=ssh')qq*s7uZ]s8Vigs8W)uq>C9^rr3/ms7uKjnq$h:s*t~> -q>Vo^Knr;ZZns8MThs7lWonbrIupAameo)&ISs7lWo -nc/Xea8\$ls8Vloo`+s]s8V]js8Duns8DutnGi.\pAb-hr:p -q>Vo^Knr;ZZns8MThs7lWonbrIupAameo)&ISs7lWo -nc/Xea8\$ls8Vloo`+s]s8V]js8Duns8DutnGi.\pAb-hr:p -q>Vo^Knr;ZZns8MThs7lWonbrIupAameo)&ISs7lWo -nc/Xea8\$ls8Vloo`+s]s8V]js8Duns8DutnGi.\pAb-hr:p -nGa$oqZ$9hr;Q`ir;Zfds7H -nGa$oqZ$9hr;Q`ir;Zfds7H -nGa$oqZ$9hr;Q`ir;Zfds7H -nGa!js6fIXq>9XZs7H?ir;Zcqs8W)tr;QcrJcC<$JcG?AJ,~> -nGa!js6fIXq>9XZs7H?ir;Zcqs8W)tr;QcrJcC<$JcG?AJ,~> -nGa!js6fIXq>9XZs7H?ir;Zcqs8W)tr;QcrJcC<$JcG?AJ,~> -nc'-ts8Vinj-!\SQ0J>Bs6p!`rr)lsrIP!"s+14As*t~> -nc'-ts8Vinj-!\SQ0J>Bs6p!`rr)lsrIP!"s+14As*t~> -nc'-ts8Vinj-!\SQ0J>Bs6p!`rr)lsrIP!"s+14As*t~> -nGa'slMp0P$R722D>j2.r;Q`rrVlcqrr2Zl!<2lqs8ITLJcCH(J,~> -nGa'slMp0P$R722D>j2.r;Q`rrVlcqrr2Zl!<2lqs8ITLJcCH(J,~> -nGa'slMp0P$R722D>j2.r;Q`rrVlcqrr2Zl!<2lqs8ITLJcCH(J,~> -nc'$qs7c5t%UnJ@4tGLhqu?]qrVlotrVc`rr;?TprW2usr;QfsrIP!"s+UK'~> -nc'$qs7c5t%UnJ@4tGLhqu?]qrVlotrVc`rr;?TprW2usr;QfsrIP!"s+UK'~> -nc'$qs7c5t%UnJ@4tGLhqu?]qrVlotrVc`rr;?TprW2usr;QfsrIP!"s+UK'~> -nc'?ss8V?#"bZaQkcOCNs7lEis8MuqrqQKnrVc`rrr2itqu-NmrrE%Ls+13(s*t~> -nc'?ss8V?#"bZaQkcOCNs7lEis8MuqrqQKnrVc`rrr2itqu-NmrrE%Ls+13(s*t~> -nc'?ss8V?#"bZaQkcOCNs7lEis8MuqrqQKnrVc`rrr2itqu-NmrrE%Ls+13(s*t~> -nGa6dmf2`&%lo'ls8VZfnFQ\Zr;6Bhrr)j!qt9XZr;R!#rVZThqu)*GJcC<$!<7Q~> -nGa6dmf2`&%lo'ls8VZfnFQ\Zr;6Bhrr)j!qt9XZr;R!#rVZThqu)*GJcC<$!<7Q~> -nGa6dmf2`&%lo'ls8VZfnFQ\Zr;6Bhrr)j!qt9XZr;R!#rVZThqu)*GJcC<$!<7Q~> -nc'[+s7u]phGF7U/>;n6s7cQlr;-3`qY^ -nc'[+s7u]phGF7U/>;n6s7cQlr;-3`qY^ -nc'[+s7u]phGF7U/>;n6s7cQlr;-3`qY^ -nc's2n,MqXoC:k*)A(EkqXX[_qu$Bjrr<#ps8VOA!+_&Yq#C?is6opd$iU,$q>^Kmq>UEnrr2p! -rr)ils8N"Ks+13@s*t~> -nc's2n,MqXoC:k*)A(EkqXX[_qu$Bjrr<#ps8VOA!+_&Yq#C?is6opd$iU,$q>^Kmq>UEnrr2p! -rr)ils8N"Ks+13@s*t~> -nc's2n,MqXoC:k*)A(EkqXX[_qu$Bjrr<#ps8VOA!+_&Yq#C?is6opd$iU,$q>^Kmq>UEnrr2p! -rr)ils8N"Ks+13@s*t~> -nGa3`q>['R0TTK!bFPr;HWorr3`*rr8]9&-)kXON-\fs8)Bfq=!qOr;Q^$rr;upq"OLZ -rVlotrVZ]prdk*#s.01?~> -nGa3`q>['R0TTK!bFPr;HWorr3`*rr8]9&-)kXON-\fs8)Bfq=!qOr;Q^$rr;upq"OLZ -rVlotrVZ]prdk*#s.01?~> -nGa3`q>['R0TTK!bFPr;HWorr3`*rr8]9&-)kXON-\fs8)Bfq=!qOr;Q^$rr;upq"OLZ -rVlotrVZ]prdk*#s.01?~> -nc&U^rr3@_!0Z^KR/ilG:B8-.r"T,/rr<#ps8Vurn`Rrs8Vibq#(-es8W#m -s8W(Ls+13@s*t~> -nc&U^rr3@_!0Z^KR/ilG:B8-.r"T,/rr<#ps8Vurn`Rrs8Vibq#(-es8W#m -s8W(Ls+13@s*t~> -nc&U^rr3@_!0Z^KR/ilG:B8-.r"T,/rr<#ps8Vurn`Rrs8Vibq#(-es8W#m -s8W(Ls+13@s*t~> -nGa0ijT#*I!&5W$:B/3o.`qVerVlfortOqos7H?knG1jS>8dJM+*,Bms8;iorrW2rrr)j!rVQKj -JcC<$PQ-.~> -nGa0ijT#*I!&5W$:B/3o.`qVerVlfortOqos7H?knG1jS>8dJM+*,Bms8;iorrW2rrr)j!rVQKj -JcC<$PQ-.~> -nGa0ijT#*I!&5W$:B/3o.`qVerVlfortOqos7H?knG1jS>8dJM+*,Bms8;iorrW2rrr)j!rVQKj -JcC<$PQ-.~> -nc'0uq>]ROk]%:[C=<.Eb\XlhrVlfr"oA2ss7Q$`ruV"9mJYn84 -nc'0uq>]ROk]%:[C=<.Eb\XlhrVlfr"oA2ss7Q$`ruV"9mJYn84 -nc'0uq>]ROk]%:[C=<.Eb\XlhrVlfr"oA2ss7Q$`ruV"9mJYn84 -nGa!irr;ogr:9+Ms7cQZ8]Lc/q#:Z]s8VZin,*"^o)AXrc$M8R!$G:,YM&gLrr`2trr;usJcC<$ -QiDR~> -nGa!irr;ogr:9+Ms7cQZ8]Lc/q#:Z]s8VZin,*"^o)AXrc$M8R!$G:,YM&gLrr`2trr;usJcC<$ -QiDR~> -nGa!irr;ogr:9+Ms7cQZ8]Lc/q#:Z]s8VZin,*"^o)AXrc$M8R!$G:,YM&gLrr`2trr;usJcC<$ -QiDR~> -nc&[is7Q3f"TJ8P5eHgk!TrkMruq:>s7?9jnGiONn+Z_ShO@M$!>7G0PH`R0pA4^aq"aphrr.KK -JcD,;J,~> -nc&[is7Q3f"TJ8P5eHgk!TrkMruq:>s7?9jnGiONn+Z_ShO@M$!>7G0PH`R0pA4^aq"aphrr.KK -JcD,;J,~> -nc&[is7Q3f"TJ8P5eHgk!TrkMruq:>s7?9jnGiONn+Z_ShO@M$!>7G0PH`R0pA4^aq"aphrr.KK -JcD,;J,~> -nc'.!rVufjs8)]or:^0heOm+?rsSN"qYgHks7lBhr:g3j(&@V(s6ejSKhNd'(e]IbbjYT3rqcNk -rdk*#s-Wh:~> -nc'.!rVufjs8)]or:^0heOm+?rsSN"qYgHks7lBhr:g3j(&@V(s6ejSKhNd'(e]IbbjYT3rqcNk -rdk*#s-Wh:~> -nc'.!rVufjs8)]or:^0heOm+?rsSN"qYgHks7lBhr:g3j(&@V(s6ejSKhNd'(e]IbbjYT3rqcNk -rdk*#s-Wh:~> -kPk_bs8:m$cf"g;oBO/PIOc-6,>!jJnEp8PrVu]kr;Q^'q>^'\s8W&ps8Volrrr;ts8W&mrr<#t -JcC<$])R9~> -kPk_bs8:m$cf"g;oBO/PIOc-6,>!jJnEp8PrVu]kr;Q^'q>^'\s8W&ps8Volrrr;ts8W&mrr<#t -JcC<$])R9~> -kPk_bs8:m$cf"g;oBO/PIOc-6,>!jJnEp8PrVu]kr;Q^'q>^'\s8W&ps8Volrrr;ts8W&mrr<#t -JcC<$])R9~> -kPk__s8Vodro!ehr;ZW^qp -kPk__s8Vodro!ehr;ZW^qp -kPk__s8Vodro!ehr;ZW^qp -kPk\_rr<#si;XSjo`+U^s7Z0OmaS=f4:M`O1Om@Br;6Hm$3'f!q#CBnp\+I_rrN&srr2utrVuiq -JcC<$]DmB~> -kPk\_rr<#si;XSjo`+U^s7Z0OmaS=f4:M`O1Om@Br;6Hm$3'f!q#CBnp\+I_rrN&srr2utrVuiq -JcC<$]DmB~> -kPk\_rr<#si;XSjo`+U^s7Z0OmaS=f4:M`O1Om@Br;6Hm$3'f!q#CBnp\+I_rrN&srr2utrVuiq -JcC<$]DmB~> -jSo;Xo(h5D!rN#kq>Us%gq0pD"qDA2@]]:us7lNls7uZo!r`,jrVm3&r;?Nns8Muqrdk*#s1A;]~> -jSo;Xo(h5D!rN#kq>Us%gq0pD"qDA2@]]:us7lNls7uZo!r`,jrVm3&r;?Nns8Muqrdk*#s1A;]~> -jSo;Xo(h5D!rN#kq>Us%gq0pD"qDA2@]]:us7lNls7uZo!r`,jrVm3&r;?Nns8Muqrdk*#s1A;]~> -l2Lb\r;QfmrSdb[qXsm[s8)`p)ZKL/s8W)rs8V(g(B=UA<3+1=s7$'cs7GdZr;R'$qYL0iqtL-i -rVZ`qJcC<$]`3K~> -l2Lb\r;QfmrSdb[qXsm[s8)`p)ZKL/s8W)rs8V(g(B=UA<3+1=s7$'cs7GdZr;R'$qYL0iqtL-i -rVZ`qJcC<$]`3K~> -l2Lb\r;QfmrSdb[qXsm[s8)`p)ZKL/s8W)rs8V(g(B=UA<3+1=s7$'cs7GdZr;R'$qYL0iqtL-i -rVZ`qJcC<$]`3K~> -l2Lkas8DiDs!RgEqY^Bnqtg?[s7;X7&HE:WM;I=nqu?TRmf34NrV6'[rr;rlrr2lps8ITLJcEF` -J,~> -l2Lkas8DiDs!RgEqY^Bnqtg?[s7;X7&HE:WM;I=nqu?TRmf34NrV6'[rr;rlrr2lps8ITLJcEF` -J,~> -l2Lkas8DiDs!RgEqY^Bnqtg?[s7;X7&HE:WM;I=nqu?TRmf34NrV6'[rr;rlrr2lps8ITLJcEF` -J,~> -kPk\aq>UBki;WrQq=Xddrr3#qrr2pIrr;rsq#C*gp\=dURYCqG!!?Jno)JOcs8)Hdq=sdarr)`n -rVcZlrVc_Hs+13`s*t~> -kPk\aq>UBki;WrQq=Xddrr3#qrr2pIrr;rsq#C*gp\=dURYCqG!!?Jno)JOcs8)Hdq=sdarr)`n -rVcZlrVc_Hs+13`s*t~> -kPk\aq>UBki;WrQq=Xddrr3#qrr2pIrr;rsq#C*gp\=dURYCqG!!?Jno)JOcs8)Hdq=sdarr)`n -rVcZlrVc_Hs+13`s*t~> -l2Ltbs8W&ts8CgS&c)J+s8Dorr;Q`os8Vono)JC]ru_+;nF?9K7i24<*G3^`irArUs8DijqYU9j -rVZTlrVhBJJcEF`J,~> -l2Ltbs8W&ts8CgS&c)J+s8Dorr;Q`os8Vono)JC]ru_+;nF?9K7i24<*G3^`irArUs8DijqYU9j -rVZTlrVhBJJcEF`J,~> -l2Ltbs8W&ts8CgS&c)J+s8Dorr;Q`os8Vono)JC]ru_+;nF?9K7i24<*G3^`irArUs8DijqYU9j -rVZTlrVhBJJcEF`J,~> -WW+1>q"Xgfs7u/JA1@ff-")qemJQbVs8VK_s8Vopp&G!hr;HBi!VcEFrsJN!s8)clr;ZfmrQ,$< -rqufqrVukJs5X.Zro3s.~> -WW+1>q"Xgfs7u/JA1@ff-")qemJQbVs8VK_s8Vopp&G!hr;HBi!VcEFrsJN!s8)clr;ZfmrQ,$< -rqufqrVukJs5X.Zro3s.~> -WW+1>q"Xgfs7u/JA1@ff-")qemJQbVs8VK_s8Vopp&G!hr;HBi!VcEFrsJN!s8)clr;ZfmrQ,$< -rqufqrVukJs5X.Zro3s.~> -WW*b+p%\C^rr2lrqs;CZ5SOG9:Qi32jSSrV&F]YtpA+afs8W#jr;Zfoqu$Hn!WMoRrrW&jr;HWq -qtpBorV+G6rr2fpr;M9IjT#8Zir=N~> -WW*b+p%\C^rr2lrqs;CZ5SOG9:Qi32jSSrV&F]YtpA+afs8W#jr;Zfoqu$Hn!WMoRrrW&jr;HWq -qtpBorV+G6rr2fpr;M9IjT#8Zir=N~> -WW*b+p%\C^rr2lrqs;CZ5SOG9:Qi32jSSrV&F]YtpA+afs8W#jr;Zfoqu$Hn!WMoRrrW&jr;HWq -qtpBorV+G6rr2fpr;M9IjT#8Zir=N~> -WW*q6rVucfo_JOeq""@_lc?8D3<]C8ELj2]s8W#rrrhlkqtg6irrDurrri8rs8VoQrsnu,s8Mro -pA=a_q#16mrlP3?rqQKprr)hIs5a4[ro3s.~> -WW*q6rVucfo_JOeq""@_lc?8D3<]C8ELj2]s8W#rrrhlkqtg6irrDurrri8rs8VoQrsnu,s8Mro -pA=a_q#16mrlP3?rqQKprr)hIs5a4[ro3s.~> -WW*q6rVucfo_JOeq""@_lc?8D3<]C8ELj2]s8W#rrrhlkqtg6irrDurrri8rs8VoQrsnu,s8Mro -pA=a_q#16mrlP3?rqQKprr)hIs5a4[ro3s.~> -VZ-o"p%.qVs8;inrse8M^l;,0#6mME] -VZ-o"p%.qVs8;inrse8M^l;,0#6mME] -VZ-o"p%.qVs8;inrse8M^l;,0#6mME] -WW*"srVlfqrrMlkrr4/L?nq"3[cS:a*E%h -WW*"srVlfqrrMlkrr4/L?nq"3[cS:a*E%h -WW*"srVlfqrrMlkrr4/L?nq"3[cS:a*E%h -VuHbrrVm$!s8VokrVlomqY^@0rn"uM@OV?u1LRH`s8W)tp](9jr;Zfnhu=&_s8Vurs7lWmp\V`* -s8E0!rVc`phZ*ENNrT.Yir=N~> -VuHbrrVm$!s8VokrVlomqY^@0rn"uM@OV?u1LRH`s8W)tp](9jr;Zfnhu=&_s8Vurs7lWmp\V`* -s8E0!rVc`phZ*ENNrT.Yir=N~> -VuHbrrVm$!s8VokrVlomqY^@0rn"uM@OV?u1LRH`s8W)tp](9jr;Zfnhu=&_s8Vurs7lWmp\V`* -s8E0!rVc`phZ*ENNrT.Yir=N~> -U]1DoqsaUb"ShN^s8N#ts8*Z3rr<#jpX[*0,7t4f/:GtDr9=7]o)Ja`i;X>bs8V&i[D'8rnGiOf -s8W):s8N!&q"ajes8W)tiW&`QNrT.Yir=N~> -U]1DoqsaUb"ShN^s8N#ts8*Z3rr<#jpX[*0,7t4f/:GtDr9=7]o)Ja`i;X>bs8V&i[D'8rnGiOf -s8W):s8N!&q"ajes8W)tiW&`QNrT.Yir=N~> -U]1DoqsaUb"ShN^s8N#ts8*Z3rr<#jpX[*0,7t4f/:GtDr9=7]o)Ja`i;X>bs8V&i[D'8rnGiOf -s8W):s8N!&q"ajes8W)tiW&`QNrT.Yir=N~> -WW3"ss82lrrVlruqu$Hn+T29>r:p6js7ZQESs8M$XJ,~> -WW3"ss82lrrVlruqu$Hn+T29>r:p6js7ZQESs8M$XJ,~> -WW3"ss82lrrVlruqu$Hn+T29>r:p6js7ZQESs8M$XJ,~> -nc&akp&G'brr33$rr;Zes604W#QFZ!rVuojrVQTurVuosrVb:H#laYnpA+^fr;QTn)?&mos4qZ6 -!!p\=dgo#Lb@p@J=ar;ZNk -p](9brr;uso)B-tqZ$Tps8;fpr:^0arr3/ms7cQng[P4IpAb0`s7#XZrtYA-s7QEjr;Zflrr<#t -s8W&trVcchq>V9%s8Vrorr;rsq=":^s8)Egq>C!enc/:Hrt#,/s8Du`s8W&npAb0ks8;Zl%0$2) -rVuojrqHElqt'^bJ,~> -nc&akp&G'brr33$rr;Zes604W#QFZ!rVuojrVQTurVuosrVb:H#laYnpA+^fr;QTn)?&mos4qZ6 -!!p\=dgo#Lb@p@J=ar;ZNk -p](9brr;uso)B-tqZ$Tps8;fpr:^0arr3/ms7cQng[P4IpAb0`s7#XZrtYA-s7QEjr;Zflrr<#t -s8W&trVcchq>V9%s8Vrorr;rsq=":^s8)Egq>C!enc/:Hrt#,/s8Du`s8W&npAb0ks8;Zl%0$2) -rVuojrqHElqt'^bJ,~> -nc&akp&G'brr33$rr;Zes604W#QFZ!rVuojrVQTurVuosrVb:H#laYnpA+^fr;QTn)?&mos4qZ6 -!!p\=dgo#Lb@p@J=ar;ZNk -p](9brr;uso)B-tqZ$Tps8;fpr:^0arr3/ms7cQng[P4IpAb0`s7#XZrtYA-s7QEjr;Zflrr<#t -s8W&trVcchq>V9%s8Vrorr;rsq=":^s8)Egq>C!enc/:Hrt#,/s8Du`s8W&npAb0ks8;Zl%0$2) -rVuojrqHElqt'^bJ,~> -nc''rs8MQgq"k$jp&+jfme?_^pA4dg$iU,*rVulnqu?]os8N#Irso&+qYL-hs7lEer;?Edp\b%8 -qss!n4TGcm$t@*Gp%&%Zs8Mrrs8;Zis8W&ks8V]gs8VcdrsAOe"O6cBpAf..`W$A?s8VZZo)JLb -s8DZgrr2utqu6Zqq>UKiqu-QprXJW%q#16`s8)cqrVu`in,ERfs8VlooD\anoDejfs82cp%/^)! -s8)cqr;Z`ls8D`m!;?UBtrV6Eis8;iqJ,~> -nc''rs8MQgq"k$jp&+jfme?_^pA4dg$iU,*rVulnqu?]os8N#Irso&+qYL-hs7lEer;?Edp\b%8 -qss!n4TGcm$t@*Gp%&%Zs8Mrrs8;Zis8W&ks8V]gs8VcdrsAOe"O6cBpAf..`W$A?s8VZZo)JLb -s8DZgrr2utqu6Zqq>UKiqu-QprXJW%q#16`s8)cqrVu`in,ERfs8VlooD\anoDejfs82cp%/^)! -s8)cqr;Z`ls8D`m!;?UBtrV6Eis8;iqJ,~> -nc''rs8MQgq"k$jp&+jfme?_^pA4dg$iU,*rVulnqu?]os8N#Irso&+qYL-hs7lEer;?Edp\b%8 -qss!n4TGcm$t@*Gp%&%Zs8Mrrs8;Zis8W&ks8V]gs8VcdrsAOe"O6cBpAf..`W$A?s8VZZo)JLb -s8DZgrr2utqu6Zqq>UKiqu-QprXJW%q#16`s8)cqrVu`in,ERfs8VlooD\anoDejfs82cp%/^)! -s8)cqr;Z`ls8D`m!;?UBtrV6Eis8;iqJ,~> -nc&^er;$!ars8N%s7c$_s8Mrirs8>uqYg^K]oC_dnALS5l"\kEImJm"^q>UC$qYpNks6p!ds8;E^rt"c%qh,@BpZ9$fNrSkLp?p'&&H)S. -p\XdTKNV5\D56Y$q#:3ks8Mio(]OI7p%n^ds8)cZk3)O1QV1^l=@8#*o^Mk\rVlg6p]'0K2a^^9fs8W#jh#.3Js8)cqqY'q(p&4pjq;Lo7s7qI]<`;q+L#2k#s7b[U$h3ligR(Y^?,Q^BqXsjj -q>]s:r;Qles8W#ps*t~> -nc&^er;$!ars8N%s7c$_s8Mrirs8>uqYg^K]oC_dnALS5l"\kEImJm"^q>UC$qYpNks6p!ds8;E^rt"c%qh,@BpZ9$fNrSkLp?p'&&H)S. -p\XdTKNV5\D56Y$q#:3ks8Mio(]OI7p%n^ds8)cZk3)O1QV1^l=@8#*o^Mk\rVlg6p]'0K2a^^9fs8W#jh#.3Js8)cqqY'q(p&4pjq;Lo7s7qI]<`;q+L#2k#s7b[U$h3ligR(Y^?,Q^BqXsjj -q>]s:r;Qles8W#ps*t~> -nc&^er;$!ars8N%s7c$_s8Mrirs8>uqYg^K]oC_dnALS5l"\kEImJm"^q>UC$qYpNks6p!ds8;E^rt"c%qh,@BpZ9$fNrSkLp?p'&&H)S. -p\XdTKNV5\D56Y$q#:3ks8Mio(]OI7p%n^ds8)cZk3)O1QV1^l=@8#*o^Mk\rVlg6p]'0K2a^^9fs8W#jh#.3Js8)cqqY'q(p&4pjq;Lo7s7qI]<`;q+L#2k#s7b[U$h3ligR(Y^?,Q^BqXsjj -q>]s:r;Qles8W#ps*t~> -nG`L^rVm/.L3g<.rr<#bp&>6fs8DutpAOph!r`&qr;Qcrg&D*Orr)itrr)`os8Moq'`%D$s82Qh -rl]^P-NFW#J$nJ%nGN:c!r)9Zrr3&is8;Qi$%Dpi%M]OCec5$Ursei&qZ$TA%fd1G!#Kb;qYpTq -rV6C.rr;Nes7H?kc->)2s3WG$!"TGF!_W@ZrrDurru1_#K)cDa"VeTKqt:!hqrc,Cs7-'^s8W&t -rV?I0q>^EjrRAaSqZ$"*!#l"F$OKnss8V]ili7"a&,ZA+s5d`*!!!$7SH&Q\pA+^uqZ$!`r4LDS -qY's^s8Mros*t~> -nG`L^rVm/.L3g<.rr<#bp&>6fs8DutpAOph!r`&qr;Qcrg&D*Orr)itrr)`os8Moq'`%D$s82Qh -rl]^P-NFW#J$nJ%nGN:c!r)9Zrr3&is8;Qi$%Dpi%M]OCec5$Ursei&qZ$TA%fd1G!#Kb;qYpTq -rV6C.rr;Nes7H?kc->)2s3WG$!"TGF!_W@ZrrDurru1_#K)cDa"VeTKqt:!hqrc,Cs7-'^s8W&t -rV?I0q>^EjrRAaSqZ$"*!#l"F$OKnss8V]ili7"a&,ZA+s5d`*!!!$7SH&Q\pA+^uqZ$!`r4LDS -qY's^s8Mros*t~> -nG`L^rVm/.L3g<.rr<#bp&>6fs8DutpAOph!r`&qr;Qcrg&D*Orr)itrr)`os8Moq'`%D$s82Qh -rl]^P-NFW#J$nJ%nGN:c!r)9Zrr3&is8;Qi$%Dpi%M]OCec5$Ursei&qZ$TA%fd1G!#Kb;qYpTq -rV6C.rr;Nes7H?kc->)2s3WG$!"TGF!_W@ZrrDurru1_#K)cDa"VeTKqt:!hqrc,Cs7-'^s8W&t -rV?I0q>^EjrRAaSqZ$"*!#l"F$OKnss8V]ili7"a&,ZA+s5d`*!!!$7SH&Q\pA+^uqZ$!`r4LDS -qY's^s8Mros*t~> -nc'*qrU9FOEYTH'$B"lHrr2]m&cVb/qZ$$WqtpEnrVHHjr;?NkrrE&Gs8W&trqudCp%87`r;Zfi -q#CBkq>UEbi1+j7*XWfqKtZgJo_AIQn%A\rs7l<`rsnr(s,%UR:B42Xs5a+XmDo59qu?HerkARt -TUBjA&[_E7!WN&nrrModrVmK$s6,EiqZ$T-'hN_;MkC%Me*d89r>POW)]=I"7KFIrrVHQmrpAC# -g@P@@rr;rqr;$@/n,NF`cEuR1rVYp\)k;YMN?nbHs8Vuqm/R(a%KHD,s0s0tJZO8"8*fjBrt##, -s5O(GLr0/_s82ims8;iqJ,~> -nc'*qrU9FOEYTH'$B"lHrr2]m&cVb/qZ$$WqtpEnrVHHjr;?NkrrE&Gs8W&trqudCp%87`r;Zfi -q#CBkq>UEbi1+j7*XWfqKtZgJo_AIQn%A\rs7l<`rsnr(s,%UR:B42Xs5a+XmDo59qu?HerkARt -TUBjA&[_E7!WN&nrrModrVmK$s6,EiqZ$T-'hN_;MkC%Me*d89r>POW)]=I"7KFIrrVHQmrpAC# -g@P@@rr;rqr;$@/n,NF`cEuR1rVYp\)k;YMN?nbHs8Vuqm/R(a%KHD,s0s0tJZO8"8*fjBrt##, -s5O(GLr0/_s82ims8;iqJ,~> -nc'*qrU9FOEYTH'$B"lHrr2]m&cVb/qZ$$WqtpEnrVHHjr;?NkrrE&Gs8W&trqudCp%87`r;Zfi -q#CBkq>UEbi1+j7*XWfqKtZgJo_AIQn%A\rs7l<`rsnr(s,%UR:B42Xs5a+XmDo59qu?HerkARt -TUBjA&[_E7!WN&nrrModrVmK$s6,EiqZ$T-'hN_;MkC%Me*d89r>POW)]=I"7KFIrrVHQmrpAC# -g@P@@rr;rqr;$@/n,NF`cEuR1rVYp\)k;YMN?nbHs8Vuqm/R(a%KHD,s0s0tJZO8"8*fjBrt##, -s5O(GLr0/_s82ims8;iqJ,~> -n,E^ks5L9l!;uir#5e,js8W&sdJjOPrVc`qs8;fnrr)itq>U?m+o_<5 -s8W&qs8Vrqs763Pc@f:D&JRKZZ-V8+V_>dPqt9s_rs\[V&(9\\,M<%hs44^#rso&.s8)bi$s`N+ -s*b04mJQtcrr)cjrtkJ,s8Vrks8RM7s8VrqW![>?s7ZIG!MJl\$iKu"^]8!DmEII?ec,RWr;Zfo -NK39's7lWkrqHF,qu>N+X8i.upW*>3s7?9j@0!h3mcsfbrr)fqq>0ib)I!1@h$u'qs8V'QrsAN$ -p@nU#=6T\^rVlllrVqB~> -n,E^ks5L9l!;uir#5e,js8W&sdJjOPrVc`qs8;fnrr)itq>U?m+o_<5 -s8W&qs8Vrqs763Pc@f:D&JRKZZ-V8+V_>dPqt9s_rs\[V&(9\\,M<%hs44^#rso&.s8)bi$s`N+ -s*b04mJQtcrr)cjrtkJ,s8Vrks8RM7s8VrqW![>?s7ZIG!MJl\$iKu"^]8!DmEII?ec,RWr;Zfo -NK39's7lWkrqHF,qu>N+X8i.upW*>3s7?9j@0!h3mcsfbrr)fqq>0ib)I!1@h$u'qs8V'QrsAN$ -p@nU#=6T\^rVlllrVqB~> -n,E^ks5L9l!;uir#5e,js8W&sdJjOPrVc`qs8;fnrr)itq>U?m+o_<5 -s8W&qs8Vrqs763Pc@f:D&JRKZZ-V8+V_>dPqt9s_rs\[V&(9\\,M<%hs44^#rso&.s8)bi$s`N+ -s*b04mJQtcrr)cjrtkJ,s8Vrks8RM7s8VrqW![>?s7ZIG!MJl\$iKu"^]8!DmEII?ec,RWr;Zfo -NK39's7lWkrqHF,qu>N+X8i.upW*>3s7?9j@0!h3mcsfbrr)fqq>0ib)I!1@h$u'qs8V'QrsAN$ -p@nU#=6T\^rVlllrVqB~> -nG`sjs8T\2L]@D(HJJMqq=jmtpA4gHn,E@Yr;Zfqrr2rsrmUoGrq-3lp@\C`rsSbnq>^Efs7cKi -s82fq&$W0i3<0%4>FoI-/U#YDo_AFrp]$cjiW#tZ=7lOFAn]Z7rrE&srs1qZ$Hd -rt>,,Rq'eEp](5Y$$$"Es4BR>])M^0na-8err)fcrVuo%&Mq;hs1"uiq=Xannc/.Ys#Yi4rqQMD~> -nG`sjs8T\2L]@D(HJJMqq=jmtpA4gHn,E@Yr;Zfqrr2rsrmUoGrq-3lp@\C`rsSbnq>^Efs7cKi -s82fq&$W0i3<0%4>FoI-/U#YDo_AFrp]$cjiW#tZ=7lOFAn]Z7rrE&srs1qZ$Hd -rt>,,Rq'eEp](5Y$$$"Es4BR>])M^0na-8err)fcrVuo%&Mq;hs1"uiq=Xannc/.Ys#Yi4rqQMD~> -nG`sjs8T\2L]@D(HJJMqq=jmtpA4gHn,E@Yr;Zfqrr2rsrmUoGrq-3lp@\C`rsSbnq>^Efs7cKi -s82fq&$W0i3<0%4>FoI-/U#YDo_AFrp]$cjiW#tZ=7lOFAn]Z7rrE&srs1qZ$Hd -rt>,,Rq'eEp](5Y$$$"Es4BR>])M^0na-8err)fcrVuo%&Mq;hs1"uiq=Xannc/.Ys#Yi4rqQMD~> -nc&Ugrr3AL63D#,j8]/Cs8VfgrsJ](s7L)8Mn.3pq#:9tq==Rcrr)fHs8W$$rr<#trVc`q!<2rq% -fZA)s8W#ns7QElrr;uqrVlrrq=Xa]s8NJd_P:fq%2o?L&oH=srt#).s)8"klMjQYYj-WQ?h;D>& -,uM's7Z+Y!k/.,s.TWqn,31err)cjrtkV5nc/UgoPc,Vkl1VK@L$AX`jAYL+Qi4o)?'U2s8W#W3 -=m-_i;`i8s7,maqY1$i6Ast)rrN)tq#;*)rpX06s8)cqraZ4E`5/`U%mJkMqs+1jrr)fqrqZTK3 -<1ChfDPXJ!;ZEi$M4;err<#rJ.;MWrr2ujr;V9~> -nc&Ugrr3AL63D#,j8]/Cs8VfgrsJ](s7L)8Mn.3pq#:9tq==Rcrr)fHs8W$$rr<#trVc`q!<2rq% -fZA)s8W#ns7QElrr;uqrVlrrq=Xa]s8NJd_P:fq%2o?L&oH=srt#).s)8"klMjQYYj-WQ?h;D>& -,uM's7Z+Y!k/.,s.TWqn,31err)cjrtkV5nc/UgoPc,Vkl1VK@L$AX`jAYL+Qi4o)?'U2s8W#W3 -=m-_i;`i8s7,maqY1$i6Ast)rrN)tq#;*)rpX06s8)cqraZ4E`5/`U%mJkMqs+1jrr)fqrqZTK3 -<1ChfDPXJ!;ZEi$M4;err<#rJ.;MWrr2ujr;V9~> -nc&Ugrr3AL63D#,j8]/Cs8VfgrsJ](s7L)8Mn.3pq#:9tq==Rcrr)fHs8W$$rr<#trVc`q!<2rq% -fZA)s8W#ns7QElrr;uqrVlrrq=Xa]s8NJd_P:fq%2o?L&oH=srt#).s)8"klMjQYYj-WQ?h;D>& -,uM's7Z+Y!k/.,s.TWqn,31err)cjrtkV5nc/UgoPc,Vkl1VK@L$AX`jAYL+Qi4o)?'U2s8W#W3 -=m-_i;`i8s7,maqY1$i6Ast)rrN)tq#;*)rpX06s8)cqraZ4E`5/`U%mJkMqs+1jrr)fqrqZTK3 -<1ChfDPXJ!;ZEi$M4;err<#rJ.;MWrr2ujr;V9~> -nGbQEpA4ft/cZ,2]);U.p](9cq>^C!)MbQrt#&-qg9jCs8C+\6.!toB'dV=5ktBX -s8N<3j8K#KU_$AhrVcNis8Vfa\qaj-BkqHoGcgc?s82g87fVoQs5QiW&dTa*!$/lQs8;olrVccp -qu-Kns8GRhoDedds8T_e!!l<0p]'mQrVHKms8#nIhuE`PrVlips8Vums8W#srQ6@Ps8Vujs$6W# -&f2>b)QWo -nGbQEpA4ft/cZ,2]);U.p](9cq>^C!)MbQrt#&-qg9jCs8C+\6.!toB'dV=5ktBX -s8N<3j8K#KU_$AhrVcNis8Vfa\qaj-BkqHoGcgc?s82g87fVoQs5QiW&dTa*!$/lQs8;olrVccp -qu-Kns8GRhoDedds8T_e!!l<0p]'mQrVHKms8#nIhuE`PrVlips8Vums8W#srQ6@Ps8Vujs$6W# -&f2>b)QWo -nGbQEpA4ft/cZ,2]);U.p](9cq>^C!)MbQrt#&-qg9jCs8C+\6.!toB'dV=5ktBX -s8N<3j8K#KU_$AhrVcNis8Vfa\qaj-BkqHoGcgc?s82g87fVoQs5QiW&dTa*!$/lQs8;olrVccp -qu-Kns8GRhoDedds8T_e!!l<0p]'mQrVHKms8#nIhuE`PrVlips8Vums8W#srQ6@Ps8Vujs$6W# -&f2>b)QWo -nc''ps7lBhmc(Wo"uFBmq#:V!)q#Bm(s8;?a`6n2BR<73(s!I^@rUU")nbrIe -NsKU]rr;utkPtDYftXu,['$^AZ.AmKs7kscB`A#hpVS-^:L+2*PhYs4s8;Zjs82Heo'55qlg -nc''ps7lBhmc(Wo"uFBmq#:V!)q#Bm(s8;?a`6n2BR<73(s!I^@rUU")nbrIe -NsKU]rr;utkPtDYftXu,['$^AZ.AmKs7kscB`A#hpVS-^:L+2*PhYs4s8;Zjs82Heo'55qlg -nc''ps7lBhmc(Wo"uFBmq#:V!)q#Bm(s8;?a`6n2BR<73(s!I^@rUU")nbrIe -NsKU]rr;utkPtDYftXu,['$^AZ.AmKs7kscB`A#hpVS-^:L+2*PhYs4s8;Zjs82Heo'55qlg -nc'L$qu6>bE;BJ!`W^hkLIfG[s8Voos8W)uq>UC7rr;QQn)D<^E%1hf%KI=sEjbGmr;ZQgs8)9c -s8)]os8Dor!;l]j"TAB#rqat@!WE#srs/JNTt/#1naQ;Q#OqQhrr;iprr)iuP[*Rss"sBJqYgH= -!_<:jq#=S(WrN+ls8Vcls6fp`rVuops8Vins7--[h[4Gps8W&8)F2j:JcL2ss&Jdms7--hfN:sA -85)cO7T8=GrqPj2lMpId0+FiSs8DH`s8V!MHiV7frT^@]2,[+@6o@E!mJm-k':f!fr;YXd/E,f\ -!-A2?qZ$9]s7lWkp%SF^qu8G-NCR)G7nucJAtK&%j8\-*s7k.U$*XC/kl:\WpA"=Ws7lWgnFQG8 -p?;Wps7H?fs8DorJ,~> -nc'L$qu6>bE;BJ!`W^hkLIfG[s8Voos8W)uq>UC7rr;QQn)D<^E%1hf%KI=sEjbGmr;ZQgs8)9c -s8)]os8Dor!;l]j"TAB#rqat@!WE#srs/JNTt/#1naQ;Q#OqQhrr;iprr)iuP[*Rss"sBJqYgH= -!_<:jq#=S(WrN+ls8Vcls6fp`rVuops8Vins7--[h[4Gps8W&8)F2j:JcL2ss&Jdms7--hfN:sA -85)cO7T8=GrqPj2lMpId0+FiSs8DH`s8V!MHiV7frT^@]2,[+@6o@E!mJm-k':f!fr;YXd/E,f\ -!-A2?qZ$9]s7lWkp%SF^qu8G-NCR)G7nucJAtK&%j8\-*s7k.U$*XC/kl:\WpA"=Ws7lWgnFQG8 -p?;Wps7H?fs8DorJ,~> -nc'L$qu6>bE;BJ!`W^hkLIfG[s8Voos8W)uq>UC7rr;QQn)D<^E%1hf%KI=sEjbGmr;ZQgs8)9c -s8)]os8Dor!;l]j"TAB#rqat@!WE#srs/JNTt/#1naQ;Q#OqQhrr;iprr)iuP[*Rss"sBJqYgH= -!_<:jq#=S(WrN+ls8Vcls6fp`rVuops8Vins7--[h[4Gps8W&8)F2j:JcL2ss&Jdms7--hfN:sA -85)cO7T8=GrqPj2lMpId0+FiSs8DH`s8V!MHiV7frT^@]2,[+@6o@E!mJm-k':f!fr;YXd/E,f\ -!-A2?qZ$9]s7lWkp%SF^qu8G-NCR)G7nucJAtK&%j8\-*s7k.U$*XC/kl:\WpA"=Ws7lWgnFQG8 -p?;Wps7H?fs8DorJ,~> -mf+F.Rh21ks-XCoKe@.9h>ImeQn_9Eq$Zqu:4:PlLcXqPkl:;QqWIDDmIC2Ok32^Br3lm&rqZQjPlYRu -s#f?o0Bi63r-HT`s8VuipAa^Us8Vldqu?NXm-3m3o\Sa1mJl -mf+F.Rh21ks-XCoKe@.9h>ImeQn_9Eq$Zqu:4:PlLcXqPkl:;QqWIDDmIC2Ok32^Br3lm&rqZQjPlYRu -s#f?o0Bi63r-HT`s8VuipAa^Us8Vldqu?NXm-3m3o\Sa1mJl -mf+F.Rh21ks-XCoKe@.9h>ImeQn_9Eq$Zqu:4:PlLcXqPkl:;QqWIDDmIC2Ok32^Br3lm&rqZQjPlYRu -s#f?o0Bi63r-HT`s8VuipAa^Us8Vldqu?NXm-3m3o\Sa1mJl -nc'Qqs75^A-j<%I""2mBm-ZdYpAasfrqufos8M`jruM+=r:paQl]%P"^& -irArOr;Qcqrr3,sqt^$arVuoos82ios8CFH#QF]%rVuWfq"Oe!pAb0fs7lWorr;liqmVpY`rB`K -s&L%qo_u?f",m3Z5&'6Zs7ZKg_4ZdGMN!IFS?D;[r;Z*c:]L:bs*b9?nalcn#,;.ta`+3SlgXrS -pAY*lqtKses8;oSqg\Z@r;Xf%"2=Ts*Oc"BmHX^Z'AEKVq#C*ds82Har;S,>`se=4s8DqD!.Fn6 -oS`j#s8VC*ZN'b#rr;roZ'=8@s8W&ss8;fp,l[K9kPtR:!,TmLh[^(@s4oD>q=XU`rVuTL -nc'Qqs75^A-j<%I""2mBm-ZdYpAasfrqufos8M`jruM+=r:paQl]%P"^& -irArOr;Qcqrr3,sqt^$arVuoos82ios8CFH#QF]%rVuWfq"Oe!pAb0fs7lWorr;liqmVpY`rB`K -s&L%qo_u?f",m3Z5&'6Zs7ZKg_4ZdGMN!IFS?D;[r;Z*c:]L:bs*b9?nalcn#,;.ta`+3SlgXrS -pAY*lqtKses8;oSqg\Z@r;Xf%"2=Ts*Oc"BmHX^Z'AEKVq#C*ds82Har;S,>`se=4s8DqD!.Fn6 -oS`j#s8VC*ZN'b#rr;roZ'=8@s8W&ss8;fp,l[K9kPtR:!,TmLh[^(@s4oD>q=XU`rVuTL -nc'Qqs75^A-j<%I""2mBm-ZdYpAasfrqufos8M`jruM+=r:paQl]%P"^& -irArOr;Qcqrr3,sqt^$arVuoos82ios8CFH#QF]%rVuWfq"Oe!pAb0fs7lWorr;liqmVpY`rB`K -s&L%qo_u?f",m3Z5&'6Zs7ZKg_4ZdGMN!IFS?D;[r;Z*c:]L:bs*b9?nalcn#,;.ta`+3SlgXrS -pAY*lqtKses8;oSqg\Z@r;Xf%"2=Ts*Oc"BmHX^Z'AEKVq#C*ds82Har;S,>`se=4s8DqD!.Fn6 -oS`j#s8VC*ZN'b#rr;roZ'=8@s8W&ss8;fp,l[K9kPtR:!,TmLh[^(@s4oD>q=XU`rVuTL -m/I6i;$IFl`;]c=IRMrbrr3#tr;HX"rVullrq-0bruq"4s8)`ps6naTP#;Ve$igE!BSOUnnG)nR -o_\[ep%S:[rVuoq!r`,td/O4Ir:Tj_rrDukrs\bks7ZKioDej_q#C?6s(D'*rVnAJ,#'Ed"Bt4)Yq"=XbrpTjd0_Fo0qu$3D3.^]$rVoOkSb_pX\.L:Zi;0\X -kP4rPs82MF=7#e`rV--dr;ZfgmJHn_-iF#9_CP[?:FZ? -m/I6i;$IFl`;]c=IRMrbrr3#tr;HX"rVullrq-0bruq"4s8)`ps6naTP#;Ve$igE!BSOUnnG)nR -o_\[ep%S:[rVuoq!r`,td/O4Ir:Tj_rrDukrs\bks7ZKioDej_q#C?6s(D'*rVnAJ,#'Ed"Bt4)Yq"=XbrpTjd0_Fo0qu$3D3.^]$rVoOkSb_pX\.L:Zi;0\X -kP4rPs82MF=7#e`rV--dr;ZfgmJHn_-iF#9_CP[?:FZ? -m/I6i;$IFl`;]c=IRMrbrr3#tr;HX"rVullrq-0bruq"4s8)`ps6naTP#;Ve$igE!BSOUnnG)nR -o_\[ep%S:[rVuoq!r`,td/O4Ir:Tj_rrDukrs\bks7ZKioDej_q#C?6s(D'*rVnAJ,#'Ed"Bt4)Yq"=XbrpTjd0_Fo0qu$3D3.^]$rVoOkSb_pX\.L:Zi;0\X -kP4rPs82MF=7#e`rV--dr;ZfgmJHn_-iF#9_CP[?:FZ? -nGa9!>GnD -4bL,hjR2L8rVm*!p\4UarVk@I!<2ut$3'o%rr<#nq"t'arrDlnrsAVts8)Znp\Y!eaT!+UqYo\7 -(^:KN,DYafrou5lqZ$NopAb$bqYpQfr;ROu-h[?2h,?/4s6Tdc*=1QtY"[aOo_8=a!VuZmrtG2- -qtg3bqMRZ@!$YVGs8/H1k5PA["7]NXq"apjqt^6k(]=70nUtT=rr;pP(u##Mr6/+R`;dMAkl1Se -qZ$KnQ>6!gr;Qcrqu7&plM^YRs0OQb!C*hJ,~> -nGa9!>GnD -4bL,hjR2L8rVm*!p\4UarVk@I!<2ut$3'o%rr<#nq"t'arrDlnrsAVts8)Znp\Y!eaT!+UqYo\7 -(^:KN,DYafrou5lqZ$NopAb$bqYpQfr;ROu-h[?2h,?/4s6Tdc*=1QtY"[aOo_8=a!VuZmrtG2- -qtg3bqMRZ@!$YVGs8/H1k5PA["7]NXq"apjqt^6k(]=70nUtT=rr;pP(u##Mr6/+R`;dMAkl1Se -qZ$KnQ>6!gr;Qcrqu7&plM^YRs0OQb!C*hJ,~> -nGa9!>GnD -4bL,hjR2L8rVm*!p\4UarVk@I!<2ut$3'o%rr<#nq"t'arrDlnrsAVts8)Znp\Y!eaT!+UqYo\7 -(^:KN,DYafrou5lqZ$NopAb$bqYpQfr;ROu-h[?2h,?/4s6Tdc*=1QtY"[aOo_8=a!VuZmrtG2- -qtg3bqMRZ@!$YVGs8/H1k5PA["7]NXq"apjqt^6k(]=70nUtT=rr;pP(u##Mr6/+R`;dMAkl1Se -qZ$KnQ>6!gr;Qcrqu7&plM^YRs0OQb!C*hJ,~> -nc&dbs6o^^oD\b,q>:3,2/NHu#rkj\^2`cGHj9kOSZHs2c)As6BX_rr4>ArVuiqrqHHmrVZZ^s7-TOs8DN&\*s@sq#A%2g&%@: -q>1-ipAb*g#5nK#s8;-[rVmtk[AM1ArVZY?8,_oVrUnZ5f`1UDs8)ZnrVuosqYL3is$sk-i:$^G -_5RD6qtg'5ZetFb1B6G)lK7[*s,^m^qYp^3hnuSA!s8V!V^I?rIn+,o4 -p%RWC[.O@t#k(?hs6fgbrV?BkJ,~> -nc&dbs6o^^oD\b,q>:3,2/NHu#rkj\^2`cGHj9kOSZHs2c)As6BX_rr4>ArVuiqrqHHmrVZZ^s7-TOs8DN&\*s@sq#A%2g&%@: -q>1-ipAb*g#5nK#s8;-[rVmtk[AM1ArVZY?8,_oVrUnZ5f`1UDs8)ZnrVuosqYL3is$sk-i:$^G -_5RD6qtg'5ZetFb1B6G)lK7[*s,^m^qYp^3hnuSA!s8V!V^I?rIn+,o4 -p%RWC[.O@t#k(?hs6fgbrV?BkJ,~> -nc&dbs6o^^oD\b,q>:3,2/NHu#rkj\^2`cGHj9kOSZHs2c)As6BX_rr4>ArVuiqrqHHmrVZZ^s7-TOs8DN&\*s@sq#A%2g&%@: -q>1-ipAb*g#5nK#s8;-[rVmtk[AM1ArVZY?8,_oVrUnZ5f`1UDs8)ZnrVuosqYL3is$sk-i:$^G -_5RD6qtg'5ZetFb1B6G)lK7[*s,^m^qYp^3hnuSA!s8V!V^I?rIn+,o4 -p%RWC[.O@t#k(?hs6fgbrV?BkJ,~> -kPkncnn]%kXm>`]s8LRK(\FJVJNt/$)?;*qEe(CC`qTN)s8VopqYgErrqZTkrVllgrr3H*s8W#q -s8;Zlrq?Blr/gpZqu$Hn$2X[e1A:YBr;ZEYrsQ;fl2LPZp]'saqtU0j#k)8Cq=ajgme?8O(B+:( -s8VTg4Egc)nc.m>X7H,es8Mooqu?Zp-i^?es%6]!jMB -kPkncnn]%kXm>`]s8LRK(\FJVJNt/$)?;*qEe(CC`qTN)s8VopqYgErrqZTkrVllgrr3H*s8W#q -s8;Zlrq?Blr/gpZqu$Hn$2X[e1A:YBr;ZEYrsQ;fl2LPZp]'saqtU0j#k)8Cq=ajgme?8O(B+:( -s8VTg4Egc)nc.m>X7H,es8Mooqu?Zp-i^?es%6]!jMB -kPkncnn]%kXm>`]s8LRK(\FJVJNt/$)?;*qEe(CC`qTN)s8VopqYgErrqZTkrVllgrr3H*s8W#q -s8;Zlrq?Blr/gpZqu$Hn$2X[e1A:YBr;ZEYrsQ;fl2LPZp]'saqtU0j#k)8Cq=ajgme?8O(B+:( -s8VTg4Egc)nc.m>X7H,es8Mooqu?Zp-i^?es%6]!jMB -l2M:ns7GiN=+PbcpAY!erVl`Hs!mXUBoqu$Hpqu2]W#P\2srVuV"B`A#6qu?'Znc'3kVpXK!s82Ebs8W&ts7kbOLAq2RrV>m] -&,lM-s7u_ps8W&dgqMkFrr2our;HNmrr2rt"oJ>IVUY&5s8W':rVZTjs8N$\VZ6&5iRQQ@s,h'^ -q#C -l2M:ns7GiN=+PbcpAY!erVl`Hs!mXUBoqu$Hpqu2]W#P\2srVuV"B`A#6qu?'Znc'3kVpXK!s82Ebs8W&ts7kbOLAq2RrV>m] -&,lM-s7u_ps8W&dgqMkFrr2our;HNmrr2rt"oJ>IVUY&5s8W':rVZTjs8N$\VZ6&5iRQQ@s,h'^ -q#C -l2M:ns7GiN=+PbcpAY!erVl`Hs!mXUBoqu$Hpqu2]W#P\2srVuV"B`A#6qu?'Znc'3kVpXK!s82Ebs8W&ts7kbOLAq2RrV>m] -&,lM-s7u_ps8W&dgqMkFrr2our;HNmrr2rt"oJ>IVUY&5s8W':rVZTjs8N$\VZ6&5iRQQ@s,h'^ -q#C -l2M1js8N&uqZ$?`r;Zfqf)Hi_s8)cqq=smdq>^!/Y_lFS0EhFt2HGQsPJHnlrVZHgrri#pmJ-DQ -rs&#nqu-Nhq2YI_oDejas8$#Wq=jmdmJdFHhr"&'r:p9hrs/5Y@'BV-s8)0`%Jp,(rVu6rg\1[F -g="pVs8N#ps8W)urrr/ss4#0_p\tusdl#>Bs8;opr:ouB@d*Ocs8N&urUKn'q>]m_k>RZ:s763f -qXXF;2lliPiR?fYs*t~> -l2M1js8N&uqZ$?`r;Zfqf)Hi_s8)cqq=smdq>^!/Y_lFS0EhFt2HGQsPJHnlrVZHgrri#pmJ-DQ -rs&#nqu-Nhq2YI_oDejas8$#Wq=jmdmJdFHhr"&'r:p9hrs/5Y@'BV-s8)0`%Jp,(rVu6rg\1[F -g="pVs8N#ps8W)urrr/ss4#0_p\tusdl#>Bs8;opr:ouB@d*Ocs8N&urUKn'q>]m_k>RZ:s763f -qXXF;2lliPiR?fYs*t~> -l2M1js8N&uqZ$?`r;Zfqf)Hi_s8)cqq=smdq>^!/Y_lFS0EhFt2HGQsPJHnlrVZHgrri#pmJ-DQ -rs&#nqu-Nhq2YI_oDejas8$#Wq=jmdmJdFHhr"&'r:p9hrs/5Y@'BV-s8)0`%Jp,(rVu6rg\1[F -g="pVs8N#ps8W)urrr/ss4#0_p\tusdl#>Bs8;opr:ouB@d*Ocs8N&urUKn'q>]m_k>RZ:s763f -qXXF;2lliPiR?fYs*t~> -k5PVXqZ$KlrQkKnrqH -k5PVXqZ$KlrQkKnrqH -k5PVXqZ$KlrQkKnrqH -l2M"]p](6ms7cQlrW<&rrRh,sqtU3kqZ$Tkrr;umo_\X[s8VulqU'e#lXeoqZ$Hmrr2co'_q_.p\Fjfrr2`iq#C3jp\k-kqu-9h -rVc]o&HD1ur;Z]is8Miop](*iq#1*i!;Q6eJ,~> -l2M"]p](6ms7cQlrW<&rrRh,sqtU3kqZ$Tkrr;umo_\X[s8VulqU'e#lXeoqZ$Hmrr2co'_q_.p\Fjfrr2`iq#C3jp\k-kqu-9h -rVc]o&HD1ur;Z]is8Miop](*iq#1*i!;Q6eJ,~> -l2M"]p](6ms7cQlrW<&rrRh,sqtU3kqZ$Tkrr;umo_\X[s8VulqU'e#lXeoqZ$Hmrr2co'_q_.p\Fjfrr2`iq#C3jp\k-kqu-9h -rVc]o&HD1ur;Z]is8Miop](*iq#1*i!;Q6eJ,~> -jSoPcnGE7brr<#trn%/MrVcaBrV$9krquTds8Vurs8;lrs8N&rmcNEQNA`"4!!"\g,%.Xkj8AcR -!WDhQrsJGrs8VTgp\apgrpKe$rVuHds8W)qs8W)srVlcms8W#ss8)3a'__S,o)JLJs763ioDe[\ -qYg9cq>L^Ki&GH.u -qYU -jSoPcnGE7brr<#trn%/MrVcaBrV$9krquTds8Vurs8;lrs8N&rmcNEQNA`"4!!"\g,%.Xkj8AcR -!WDhQrsJGrs8VTgp\apgrpKe$rVuHds8W)qs8W)srVlcms8W#ss8)3a'__S,o)JLJs763ioDe[\ -qYg9cq>L^Ki&GH.u -qYU -jSoPcnGE7brr<#trn%/MrVcaBrV$9krquTds8Vurs8;lrs8N&rmcNEQNA`"4!!"\g,%.Xkj8AcR -!WDhQrsJGrs8VTgp\apgrpKe$rVuHds8W)qs8W)srVlcms8W#ss8)3a'__S,o)JLJs763ioDe[\ -qYg9cq>L^Ki&GH.u -qYU -kl1_^o_Qf3&G5nnq>^?lp%eRds82HdnFlk],6%?"k5>8Zq"XUOs810L?nrVQEj!<2ip!<2rs$i^2+ -q>UEhs8N&uq>UBqrV?3[s*t~> -kl1_^o_Qf3&G5nnq>^?lp%eRds82HdnFlk],6%?"k5>8Zq"XUOs810L?nrVQEj!<2ip!<2rs$i^2+ -q>UEhs8N&uq>UBqrV?3[s*t~> -kl1_^o_Qf3&G5nnq>^?lp%eRds82HdnFlk],6%?"k5>8Zq"XUOs810L?nrVQEj!<2ip!<2rs$i^2+ -q>UEhs8N&uq>UBqrV?3[s*t~> -l2Lb^rr3B(qZ$?iqYU^HmrVm*$rVuKhs7bp\"Sqfl -s7uZo#3YdXrq6mRq>L'fr;Q]o(]X:1 -r;ZfZo_JIcnGi=as7--dp](9lrq6;A~> -l2Lb^rr3B(qZ$?iqYU^HmrVm*$rVuKhs7bp\"Sqfl -s7uZo#3YdXrq6mRq>L'fr;Q]o(]X:1 -r;ZfZo_JIcnGi=as7--dp](9lrq6;A~> -l2Lb^rr3B(qZ$?iqYU^HmrVm*$rVuKhs7bp\"Sqfl -s7uZo#3YdXrq6mRq>L'fr;Q]o(]X:1 -r;ZfZo_JIcnGi=as7--dp](9lrq6;A~> -V#U>kr;ZTjpAZ&oe(gi_"rIIC*ZmCth;e8)m/-h\s8N&uo_\Rd"8Diqo)&Idrr -V#U>kr;ZTjpAZ&oe(gi_"rIIC*ZmCth;e8)m/-h\s8N&uo_\Rd"8Diqo)&Idrr -V#U>kr;ZTjpAZ&oe(gi_"rIIC*ZmCth;e8)m/-h\s8N&uo_\Rd"8Diqo)&Idrr -V#U>kr;ZTlq#;N2s8Vins6KFBXaFJ#!!!rDrorr3E$s8N&up%A1Ws7lHgrr3#urUKpfr;Zd'qZ$Tgs7lWopAO@Xs8;os -')hk,qZ$K]p\Y!hr;Zfrr;HZqrr!3'rVQNis8W#ps8MNf%IO)nr8mtOrVccrrqQK\rt58&oDARd -s7Gj]l2L__qu$BkrVuos#Q">ts7Q?hrqHGC~> -V#U>kr;ZTlq#;N2s8Vins6KFBXaFJ#!!!rDrorr3E$s8N&up%A1Ws7lHgrr3#urUKpfr;Zd'qZ$Tgs7lWopAO@Xs8;os -')hk,qZ$K]p\Y!hr;Zfrr;HZqrr!3'rVQNis8W#ps8MNf%IO)nr8mtOrVccrrqQK\rt58&oDARd -s7Gj]l2L__qu$BkrVuos#Q">ts7Q?hrqHGC~> -V#U>kr;ZTlq#;N2s8Vins6KFBXaFJ#!!!rDrorr3E$s8N&up%A1Ws7lHgrr3#urUKpfr;Zd'qZ$Tgs7lWopAO@Xs8;os -')hk,qZ$K]p\Y!hr;Zfrr;HZqrr!3'rVQNis8W#ps8MNf%IO)nr8mtOrVccrrqQK\rt58&oDARd -s7Gj]l2L__qu$BkrVuos#Q">ts7Q?hrqHGC~> -U]:;llMh"Zrr;ihrVmo6q#9a6dWJ&:*WQ0V%WA2D[,p?$s8SN7Xm5HVq>:3lrX\f#s2COeIu^ek -s8VZTs8'k;$2ji#s8VrarVQ0arrr)mpA"O`m/I@^s8V`as7#s_rr3&uqt9FX$i9f$r;-HmrqQNn -q#:;Yp]#a~> -U]:;llMh"Zrr;ihrVmo6q#9a6dWJ&:*WQ0V%WA2D[,p?$s8SN7Xm5HVq>:3lrX\f#s2COeIu^ek -s8VZTs8'k;$2ji#s8VrarVQ0arrr)mpA"O`m/I@^s8V`as7#s_rr3&uqt9FX$i9f$r;-HmrqQNn -q#:;Yp]#a~> -U]:;llMh"Zrr;ihrVmo6q#9a6dWJ&:*WQ0V%WA2D[,p?$s8SN7Xm5HVq>:3lrX\f#s2COeIu^ek -s8VZTs8'k;$2ji#s8VrarVQ0arrr)mpA"O`m/I@^s8V`as7#s_rr3&uqt9FX$i9f$r;-HmrqQNn -q#:;Yp]#a~> -M>mn]qu?]ms8VZ`qu$HorVlg1j/8T+2^'+?$TgOW[^mdc*d.AYq#:m(s8RWM&HiIO;VqBPs82]6 -rt5,,r:^$fs7?9ep](!fq>1$gm/IOas8W)gs8V`kqXFOboBuV]q#: -M>mn]qu?]ms8VZ`qu$HorVlg1j/8T+2^'+?$TgOW[^mdc*d.AYq#:m(s8RWM&HiIO;VqBPs82]6 -rt5,,r:^$fs7?9ep](!fq>1$gm/IOas8W)gs8V`kqXFOboBuV]q#: -M>mn]qu?]ms8VZ`qu$HorVlg1j/8T+2^'+?$TgOW[^mdc*d.AYq#:m(s8RWM&HiIO;VqBPs82]6 -rt5,,r:^$fs7?9ep](!fq>1$gm/IOas8W)gs8V`kqXFOboBuV]q#: -LAqDPqZ$TorVmi/q#C3fmf*7Xs8VK]`0,FJ+VZ^K$ig8@:#tX9rsSi+q1T*I]rc8SPl(I[!;jn< -&,cJ*s8W)uo)JF`s7u]prVQWprp]phqu?9ers/8hs8Vfms8DHe')V_)s8Vinrp9[[rr;`inbr:[ -qu?]qrVuor#6+Z&qu?]jn,ECerr38rs7,^\s8;H_mJd4bqYpNpp&P*jrrDijrsJc*p%\Rcs8UsS -rqHGC~> -LAqDPqZ$TorVmi/q#C3fmf*7Xs8VK]`0,FJ+VZ^K$ig8@:#tX9rsSi+q1T*I]rc8SPl(I[!;jn< -&,cJ*s8W)uo)JF`s7u]prVQWprp]phqu?9ers/8hs8Vfms8DHe')V_)s8Vinrp9[[rr;`inbr:[ -qu?]qrVuor#6+Z&qu?]jn,ECerr38rs7,^\s8;H_mJd4bqYpNpp&P*jrrDijrsJc*p%\Rcs8UsS -rqHGC~> -LAqDPqZ$TorVmi/q#C3fmf*7Xs8VK]`0,FJ+VZ^K$ig8@:#tX9rsSi+q1T*I]rc8SPl(I[!;jn< -&,cJ*s8W)uo)JF`s7u]prVQWprp]phqu?9ers/8hs8Vfms8DHe')V_)s8Vinrp9[[rr;`inbr:[ -qu?]qrVuor#6+Z&qu?]jn,ECerr38rs7,^\s8;H_mJd4bqYpNpp&P*jrrDijrsJc*p%\Rcs8UsS -rqHGC~> -WW3"tp&G'knc&Ufrr4;@p%SIaq"t$fs8W)urVuoqqu--bmed%Pg<6gO!#Z%F$X)*\rqZR%onaO; -s8;TkF8th'a8Z/9rVm6'p6L;MF,I-_s7Q9hs8MNf%f64_qZ$&XG]8(]F-G5Tnc'6us82irqu>2o -KR%clI&d5FqYKsd$NBqtiU-[FrVccnnc/Xc%,UmYs8A-p@sGT]s7c$_&,H8*qu?&\C0bGms8Vcl -pA+agqZm*"jk]t-rVlQkJ,~> -WW3"tp&G'knc&Ufrr4;@p%SIaq"t$fs8W)urVuoqqu--bmed%Pg<6gO!#Z%F$X)*\rqZR%onaO; -s8;TkF8th'a8Z/9rVm6'p6L;MF,I-_s7Q9hs8MNf%f64_qZ$&XG]8(]F-G5Tnc'6us82irqu>2o -KR%clI&d5FqYKsd$NBqtiU-[FrVccnnc/Xc%,UmYs8A-p@sGT]s7c$_&,H8*qu?&\C0bGms8Vcl -pA+agqZm*"jk]t-rVlQkJ,~> -WW3"tp&G'knc&Ufrr4;@p%SIaq"t$fs8W)urVuoqqu--bmed%Pg<6gO!#Z%F$X)*\rqZR%onaO; -s8;TkF8th'a8Z/9rVm6'p6L;MF,I-_s7Q9hs8MNf%f64_qZ$&XG]8(]F-G5Tnc'6us82irqu>2o -KR%clI&d5FqYKsd$NBqtiU-[FrVccnnc/Xc%,UmYs8A-p@sGT]s7c$_&,H8*qu?&\C0bGms8Vcl -pA+agqZm*"jk]t-rVlQkJ,~> -WW2tsp](6lnc&X^qu6TrrVQTo$NC)*rqZ9`s8MWbrVmB*s8Vfms7q$B!#8=[XQBH\r;R6!s8.Ke -J$$%g"I&lcq8WFDrVuorqUR"s$NL;LFn5J1!<2Bc%a3qoqYS])!!`f9"V#;@nc&sns82ins7r#f -&e=m@"=:k_qtpBm!<2lq$2s\ng!\s\s7lN]rs\kag$A,,P61jo"?3^UrrE&trrVM<(B+:98$)Uc -p\t6lrr3/X^XrMarqHGC~> -WW2tsp](6lnc&X^qu6TrrVQTo$NC)*rqZ9`s8MWbrVmB*s8Vfms7q$B!#8=[XQBH\r;R6!s8.Ke -J$$%g"I&lcq8WFDrVuorqUR"s$NL;LFn5J1!<2Bc%a3qoqYS])!!`f9"V#;@nc&sns82ins7r#f -&e=m@"=:k_qtpBm!<2lq$2s\ng!\s\s7lN]rs\kag$A,,P61jo"?3^UrrE&trrVM<(B+:98$)Uc -p\t6lrr3/X^XrMarqHGC~> -WW2tsp](6lnc&X^qu6TrrVQTo$NC)*rqZ9`s8MWbrVmB*s8Vfms7q$B!#8=[XQBH\r;R6!s8.Ke -J$$%g"I&lcq8WFDrVuorqUR"s$NL;LFn5J1!<2Bc%a3qoqYS])!!`f9"V#;@nc&sns82ins7r#f -&e=m@"=:k_qtpBm!<2lq$2s\ng!\s\s7lN]rs\kag$A,,P61jo"?3^UrrE&trrVM<(B+:98$)Uc -p\t6lrr3/X^XrMarqHGC~> -WW2tsp](6ln,Egpp&4phrVQTlrr;imrVm)us8Vrqs8N#t$MjZ#YFM'#i:6j=rr2iq$hs]"Gn:2h -)%;Z$pAY'louR.5q>L="dJu4\P%bUY_YF*.s8MHd%ZeO(s80tT,`7hHN"u]5nc'7$s8)cks7'k, -;4O&@:B4PtqtpBm"TA>tr;HWp#lOM\]Y3Y2qtom_&)`r2nc.tm!IC/2%:e2nqXORcq#::#`\J0V -U07[_s8V3Trs8T$qu>!6f_tgDs*t~> -WW2tsp](6ln,Egpp&4phrVQTlrr;imrVm)us8Vrqs8N#t$MjZ#YFM'#i:6j=rr2iq$hs]"Gn:2h -)%;Z$pAY'louR.5q>L="dJu4\P%bUY_YF*.s8MHd%ZeO(s80tT,`7hHN"u]5nc'7$s8)cks7'k, -;4O&@:B4PtqtpBm"TA>tr;HWp#lOM\]Y3Y2qtom_&)`r2nc.tm!IC/2%:e2nqXORcq#::#`\J0V -U07[_s8V3Trs8T$qu>!6f_tgDs*t~> -WW2tsp](6ln,Egpp&4phrVQTlrr;imrVm)us8Vrqs8N#t$MjZ#YFM'#i:6j=rr2iq$hs]"Gn:2h -)%;Z$pAY'louR.5q>L="dJu4\P%bUY_YF*.s8MHd%ZeO(s80tT,`7hHN"u]5nc'7$s8)cks7'k, -;4O&@:B4PtqtpBm"TA>tr;HWp#lOM\]Y3Y2qtom_&)`r2nc.tm!IC/2%:e2nqXORcq#::#`\J0V -U07[_s8V3Trs8T$qu>!6f_tgDs*t~> -nc'*os8W&to)JXfs7uKiq"OL^s8E9'rVHQorqlVPrseDrK)h'd#&No2pA4gga8ZD=s8V]aZiXe; -rsUC*q#C6ks7rQ/>k[^f!".idr:U'mpAb'@=T8=&q#CBfr;V9~> -nc'*os8W&to)JXfs7uKiq"OL^s8E9'rVHQorqlVPrseDrK)h'd#&No2pA4gga8ZD=s8V]aZiXe; -rsUC*q#C6ks7rQ/>k[^f!".idr:U'mpAb'@=T8=&q#CBfr;V9~> -nc'*os8W&to)JXfs7uKiq"OL^s8E9'rVHQorqlVPrseDrK)h'd#&No2pA4gga8ZD=s8V]aZiXe; -rsUC*q#C6ks7rQ/>k[^f!".idr:U'mpAb'@=T8=&q#CBfr;V9~> -nGa!rp\t3grr<#orVu`os7uKj&,#u&rpg$gp](3hqu6WqrfR3kq#CAC(#/=V!5S7)cnBh*aT!C^ -rVulqJI@A4p\gKkA+K3Zrr<#trr;H^s8Vops7lWmrr3W.s5uG\s7lWnJd@&/r;ZO$*jPVB,Q7Z< -rr;rqs8W&ps7uZ@4RgBf.n,MhUs8Mllrr)j1rql`jLLfcNs7$'_s8W#srVuE]rVmH) -SSd?[mf1!$0DPSG]tX:@rr3'!qu-No#5A/squ-Bgrr3AtqndMjXn;)Vrsno*qZ$TmnlCkP -r;$Bmqu$JE~> -nGa!rp\t3grr<#orVu`os7uKj&,#u&rpg$gp](3hqu6WqrfR3kq#CAC(#/=V!5S7)cnBh*aT!C^ -rVulqJI@A4p\gKkA+K3Zrr<#trr;H^s8Vops7lWmrr3W.s5uG\s7lWnJd@&/r;ZO$*jPVB,Q7Z< -rr;rqs8W&ps7uZ@4RgBf.n,MhUs8Mllrr)j1rql`jLLfcNs7$'_s8W#srVuE]rVmH) -SSd?[mf1!$0DPSG]tX:@rr3'!qu-No#5A/squ-Bgrr3AtqndMjXn;)Vrsno*qZ$TmnlCkP -r;$Bmqu$JE~> -nGa!rp\t3grr<#orVu`os7uKj&,#u&rpg$gp](3hqu6WqrfR3kq#CAC(#/=V!5S7)cnBh*aT!C^ -rVulqJI@A4p\gKkA+K3Zrr<#trr;H^s8Vops7lWmrr3W.s5uG\s7lWnJd@&/r;ZO$*jPVB,Q7Z< -rr;rqs8W&ps7uZ@4RgBf.n,MhUs8Mllrr)j1rql`jLLfcNs7$'_s8W#srVuE]rVmH) -SSd?[mf1!$0DPSG]tX:@rr3'!qu-No#5A/squ-Bgrr3AtqndMjXn;)Vrsno*qZ$TmnlCkP -r;$Bmqu$JE~> -nc'*ts8VuenFQ\Zs8Vrho_\@^$N0kfs8;6_r;-as8;Een+H\[#6+Gnr;ZfrrVmE#oDej//d3PqrV-?es8VWbrs\o,qZ$Tfs'[,OrVc`l -s*t~> -nc'*ts8VuenFQ\Zs8Vrho_\@^$N0kfs8;6_r;-as8;Een+H\[#6+Gnr;ZfrrVmE#oDej//d3PqrV-?es8VWbrs\o,qZ$Tfs'[,OrVc`l -s*t~> -nc'*ts8VuenFQ\Zs8Vrho_\@^$N0kfs8;6_r;-as8;Een+H\[#6+Gnr;ZfrrVmE#oDej//d3PqrV-?es8VWbrs\o,qZ$Tfs'[,OrVc`l -s*t~> -nc'*os8MWgs7GsGs82$Zs7c6e$N0r(qtpElr;?Nlrr/#Z%f?9E$L%K]JH0ikk51*?a8\*srr1KnR&*oDejh)bL##s8UkR!"02P!s&Cjs8W)ts#g;\s82]k -r;Q`qr;6Nfq>^H1"pYG7"pQ"cpAajas8Vihs8W)rs8W#rs7cQP)k$Kis8)]os82irp%J.Yrt39s -QMKS -nc'*os8MWgs7GsGs82$Zs7c6e$N0r(qtpElr;?Nlrr/#Z%f?9E$L%K]JH0ikk51*?a8\*srr1KnR&*oDejh)bL##s8UkR!"02P!s&Cjs8W)ts#g;\s82]k -r;Q`qr;6Nfq>^H1"pYG7"pQ"cpAajas8Vihs8W)rs8W#rs7cQP)k$Kis8)]os82irp%J.Yrt39s -QMKS -nc'*os8MWgs7GsGs82$Zs7c6e$N0r(qtpElr;?Nlrr/#Z%f?9E$L%K]JH0ikk51*?a8\*srr1KnR&*oDejh)bL##s8UkR!"02P!s&Cjs8W)ts#g;\s82]k -r;Q`qr;6Nfq>^H1"pYG7"pQ"cpAajas8Vihs8W)rs8W#rs7cQP)k$Kis8)]os82irp%J.Yrt39s -QMKS -nG`glpAb03=;u)@HNiADHt[rVHQor;Zfop@7P; -mdKZ7k5YJTp%+@I!$;1A/VO/fs7Ym[s8N#tqu?WpqaUSbq!C=Jrq6 -nG`glpAb03=;u)@HNiADHt[rVHQor;Zfop@7P; -mdKZ7k5YJTp%+@I!$;1A/VO/fs7Ym[s8N#tqu?WpqaUSbq!C=Jrq6 -nG`glpAb03=;u)@HNiADHt[rVHQor;Zfop@7P; -mdKZ7k5YJTp%+@I!$;1A/VO/fs7Ym[s8N#tqu?WpqaUSbq!C=Jrq6 -mJdLE2@(lc!*Jglme?_frr<#nrr<#nr;MTR%eTPrq>^Bcs7$'RhapboaT"g/s8W&G#X8:cs8QL- -U%/0[s8Vlor;Zfpr;Z`ps8N#ts8)`ao)iP'rV-?1'1(CQJ,kf5s6fp^rr;inrTS<9@U`kYAS-2; -rVm4D&>Sg3*'!*\s8;lr"T&/urVHEk./NuCpJ2^ss8VDLCMn*&=CtoGeG'"CRK\rUrr;N4pAP#C -*XAA8r;6El)AVWso'*s8Vfcrs\T#s7Q-fDu'2.qu?Wns*t~> -mJdLE2@(lc!*Jglme?_frr<#nrr<#nr;MTR%eTPrq>^Bcs7$'RhapboaT"g/s8W&G#X8:cs8QL- -U%/0[s8Vlor;Zfpr;Z`ps8N#ts8)`ao)iP'rV-?1'1(CQJ,kf5s6fp^rr;inrTS<9@U`kYAS-2; -rVm4D&>Sg3*'!*\s8;lr"T&/urVHEk./NuCpJ2^ss8VDLCMn*&=CtoGeG'"CRK\rUrr;N4pAP#C -*XAA8r;6El)AVWso'*s8Vfcrs\T#s7Q-fDu'2.qu?Wns*t~> -mJdLE2@(lc!*Jglme?_frr<#nrr<#nr;MTR%eTPrq>^Bcs7$'RhapboaT"g/s8W&G#X8:cs8QL- -U%/0[s8Vlor;Zfpr;Z`ps8N#ts8)`ao)iP'rV-?1'1(CQJ,kf5s6fp^rr;inrTS<9@U`kYAS-2; -rVm4D&>Sg3*'!*\s8;lr"T&/urVHEk./NuCpJ2^ss8VDLCMn*&=CtoGeG'"CRK\rUrr;N4pAP#C -*XAA8r;6El)AVWso'*s8Vfcrs\T#s7Q-fDu'2.qu?Wns*t~> -nc''ss8Vo+&U+3S?qA04rq??tq#:;qf`2!JrVlftrVhoY%fZ7ks7c*as5s@]l[2RTaT"*ps8;`n -Q3MI2qt.cL+j'QVf`2!Cs82cSf@AF"f\4[*g%>+?s5sAcs8VopV?V/;qWo%*rVq'&nGiOfs7F4? -[CEi[\[np0s8VWX.2ol!pP8g"j8T)WjT#)Ps8W&ts7lBhs8D]lpIcpps8VVnS>im&Z,3uIo)AXg -V[9Brs8,kAWW2hpN<"S0s5iJ?s7uWlh6X5gZF$j7^#f:dkCXtIs8)5)"hXg1iV!$H$i']#qu?Nh -h#MZur;Q]rrVcbH~> -nc''ss8Vo+&U+3S?qA04rq??tq#:;qf`2!JrVlftrVhoY%fZ7ks7c*as5s@]l[2RTaT"*ps8;`n -Q3MI2qt.cL+j'QVf`2!Cs82cSf@AF"f\4[*g%>+?s5sAcs8VopV?V/;qWo%*rVq'&nGiOfs7F4? -[CEi[\[np0s8VWX.2ol!pP8g"j8T)WjT#)Ps8W&ts7lBhs8D]lpIcpps8VVnS>im&Z,3uIo)AXg -V[9Brs8,kAWW2hpN<"S0s5iJ?s7uWlh6X5gZF$j7^#f:dkCXtIs8)5)"hXg1iV!$H$i']#qu?Nh -h#MZur;Q]rrVcbH~> -nc''ss8Vo+&U+3S?qA04rq??tq#:;qf`2!JrVlftrVhoY%fZ7ks7c*as5s@]l[2RTaT"*ps8;`n -Q3MI2qt.cL+j'QVf`2!Cs82cSf@AF"f\4[*g%>+?s5sAcs8VopV?V/;qWo%*rVq'&nGiOfs7F4? -[CEi[\[np0s8VWX.2ol!pP8g"j8T)WjT#)Ps8W&ts7lBhs8D]lpIcpps8VVnS>im&Z,3uIo)AXg -V[9Brs8,kAWW2hpN<"S0s5iJ?s7uWlh6X5gZF$j7^#f:dkCXtIs8)5)"hXg1iV!$H$i']#qu?Nh -h#MZur;Q]rrVcbH~> -n,Ejor6l$Xd/Ndtk5YJUqY:(#p&G%)/WnNWr;Zfqr;HVVrsn`%rVuoms8VZi_%SYf_9)^DqZ$6V -s()1rs6md2!-J26RY:M:r;ZZdd%>oFMi!4AKs^UPrVu:%Ac26$s*b$'r;Zao%[H\dfrDd\rq--g -s8;]lrrE&ts(1g%rosSAg\q&])(P.Ss1X?Is8Voprr;fSj8&`Ss8V(DB^tuks8)cqr;ZZis6fpe -q"qW1R/d$_=p83os2@SBRJm/:^$bq#p](9err;uts8MlprVuJ6!,CBbn.l#FqVnT@q>Ur\mJR"] -q>\A?U]:Ais8DlqJ,~> -n,Ejor6l$Xd/Ndtk5YJUqY:(#p&G%)/WnNWr;Zfqr;HVVrsn`%rVuoms8VZi_%SYf_9)^DqZ$6V -s()1rs6md2!-J26RY:M:r;ZZdd%>oFMi!4AKs^UPrVu:%Ac26$s*b$'r;Zao%[H\dfrDd\rq--g -s8;]lrrE&ts(1g%rosSAg\q&])(P.Ss1X?Is8Voprr;fSj8&`Ss8V(DB^tuks8)cqr;ZZis6fpe -q"qW1R/d$_=p83os2@SBRJm/:^$bq#p](9err;uts8MlprVuJ6!,CBbn.l#FqVnT@q>Ur\mJR"] -q>\A?U]:Ais8DlqJ,~> -n,Ejor6l$Xd/Ndtk5YJUqY:(#p&G%)/WnNWr;Zfqr;HVVrsn`%rVuoms8VZi_%SYf_9)^DqZ$6V -s()1rs6md2!-J26RY:M:r;ZZdd%>oFMi!4AKs^UPrVu:%Ac26$s*b$'r;Zao%[H\dfrDd\rq--g -s8;]lrrE&ts(1g%rosSAg\q&])(P.Ss1X?Is8Voprr;fSj8&`Ss8V(DB^tuks8)cqr;ZZis6fpe -q"qW1R/d$_=p83os2@SBRJm/:^$bq#p](9err;uts8MlprVuJ6!,CBbn.l#FqVnT@q>Ur\mJR"] -q>\A?U]:Ais8DlqJ,~> -mf*Oils9c<@DV+*rrDclruLe&s8W)ts7lWlTI0abN6(5Ss8Vurs8)`prosI^qYpQor;ZcqU&PAr -s8UB(E/_9IrtbJ2s8FAQ2MXdP!]81%s)a>%rVuomr;#\#kkt,Ns8VXG2#71Cj`:EirVuN#"=O6A -gm,/@s8VogrtP>0s3q$)jo>AG3rlPcs.j#ps7c!]rsdjUcN!qCs8V$mR/HaMq#;H8pAb'ea<#p4 -o_ZN7!(^l[&5D9drd29Es8Voms8W)ss!n$Hr;PjU_Bo7OAi0o\s8Cu -mf*Oils9c<@DV+*rrDclruLe&s8W)ts7lWlTI0abN6(5Ss8Vurs8)`prosI^qYpQor;ZcqU&PAr -s8UB(E/_9IrtbJ2s8FAQ2MXdP!]81%s)a>%rVuomr;#\#kkt,Ns8VXG2#71Cj`:EirVuN#"=O6A -gm,/@s8VogrtP>0s3q$)jo>AG3rlPcs.j#ps7c!]rsdjUcN!qCs8V$mR/HaMq#;H8pAb'ea<#p4 -o_ZN7!(^l[&5D9drd29Es8Voms8W)ss!n$Hr;PjU_Bo7OAi0o\s8Cu -mf*Oils9c<@DV+*rrDclruLe&s8W)ts7lWlTI0abN6(5Ss8Vurs8)`prosI^qYpQor;ZcqU&PAr -s8UB(E/_9IrtbJ2s8FAQ2MXdP!]81%s)a>%rVuomr;#\#kkt,Ns8VXG2#71Cj`:EirVuN#"=O6A -gm,/@s8VogrtP>0s3q$)jo>AG3rlPcs.j#ps7c!]rsdjUcN!qCs8V$mR/HaMq#;H8pAb'ea<#p4 -o_ZN7!(^l[&5D9drd29Es8Voms8W)ss!n$Hr;PjU_Bo7OAi0o\s8Cu -nc(9>irAuRn7ki-!-nP0qZ#jNs8W#oq"ashs8MrqjHDk7(MUhOp\O+Ps8Ds66Ko=T@p[s*t/jq";2>s7ZKmnFZb\)moG@li$ds-d2AdqYC-trr;cnrr;%g -L%tZI'::?P"9;NYkkXA6i;`iSpAFpirr)j0rr)cnqu?/B1D'Ti9>UK)mB,RNrtG;0r;YG/\bZ:* -p\fRjn,NF[s82`oJ,~> -nc(9>irAuRn7ki-!-nP0qZ#jNs8W#oq"ashs8MrqjHDk7(MUhOp\O+Ps8Ds66Ko=T@p[s*t/jq";2>s7ZKmnFZb\)moG@li$ds-d2AdqYC-trr;cnrr;%g -L%tZI'::?P"9;NYkkXA6i;`iSpAFpirr)j0rr)cnqu?/B1D'Ti9>UK)mB,RNrtG;0r;YG/\bZ:* -p\fRjn,NF[s82`oJ,~> -nc(9>irAuRn7ki-!-nP0qZ#jNs8W#oq"ashs8MrqjHDk7(MUhOp\O+Ps8Ds66Ko=T@p[s*t/jq";2>s7ZKmnFZb\)moG@li$ds-d2AdqYC-trr;cnrr;%g -L%tZI'::?P"9;NYkkXA6i;`iSpAFpirr)j0rr)cnqu?/B1D'Ti9>UK)mB,RNrtG;0r;YG/\bZ:* -p\fRjn,NF[s82`oJ,~> -n,EgfroVc2il>I-XoI_&rr3-!p&+jgrVmZ.s8ViIPX#3K6bNI!qWn1Pp&FmgrVl`p!<2lqs8J_l -!rhuhrVllrao<+Ns8DojXeV8]\]a75r;ZFDe+re3r:^.0rr<#tqu>_/])DQm`OXaurqZH1UuMEb -:>"skpAb-gs8O7sS_Wr=rq+gJci=#,ReH[Vr;Zfmq'jhkq>^KmLOAFfpA"XhrVu`nru1jCB?:,H -qZ"0oOg -n,EgfroVc2il>I-XoI_&rr3-!p&+jgrVmZ.s8ViIPX#3K6bNI!qWn1Pp&FmgrVl`p!<2lqs8J_l -!rhuhrVllrao<+Ns8DojXeV8]\]a75r;ZFDe+re3r:^.0rr<#tqu>_/])DQm`OXaurqZH1UuMEb -:>"skpAb-gs8O7sS_Wr=rq+gJci=#,ReH[Vr;Zfmq'jhkq>^KmLOAFfpA"XhrVu`nru1jCB?:,H -qZ"0oOg -n,EgfroVc2il>I-XoI_&rr3-!p&+jgrVmZ.s8ViIPX#3K6bNI!qWn1Pp&FmgrVl`p!<2lqs8J_l -!rhuhrVllrao<+Ns8DojXeV8]\]a75r;ZFDe+re3r:^.0rr<#tqu>_/])DQm`OXaurqZH1UuMEb -:>"skpAb-gs8O7sS_Wr=rq+gJci=#,ReH[Vr;Zfmq'jhkq>^KmLOAFfpA"XhrVu`nru1jCB?:,H -qZ"0oOg -nc'9ks7?9*(YA]^`!M4+4^6\s8VciP?%S] -q>U'\q>UZrs8Dips8Drs*<,a5s7u]i$-k3V[(oD'? -nc'9ks7?9*(YA]^`!M4+4^6\s8VciP?%S] -q>U'\q>UZrs8Dips8Drs*<,a5s7u]i$-k3V[(oD'? -nc'9ks7?9*(YA]^`!M4+4^6\s8VciP?%S] -q>U'\q>UZrs8Dips8Drs*<,a5s7u]i$-k3V[(oD'? -nGa'rs7!3"C=qTC(VHo\Si4j]rVlrts8Drs(&e((nGiO_o[Rjl!'?Rqrr;Q_s7lKjrrE%arrW/p -rPedQrVuirpAP$brVuTkqXsNE+TLj)qu?]kq#;?4s8W)uq#CAW\FTOXrVuoos8V6Xs6iZpo_SFW -p&>9opAOaco`+R_ru1Lrs3_J@jLr" -nGa'rs7!3"C=qTC(VHo\Si4j]rVlrts8Drs(&e((nGiO_o[Rjl!'?Rqrr;Q_s7lKjrrE%arrW/p -rPedQrVuirpAP$brVuTkqXsNE+TLj)qu?]kq#;?4s8W)uq#CAW\FTOXrVuoos8V6Xs6iZpo_SFW -p&>9opAOaco`+R_ru1Lrs3_J@jLr" -nGa'rs7!3"C=qTC(VHo\Si4j]rVlrts8Drs(&e((nGiO_o[Rjl!'?Rqrr;Q_s7lKjrrE%arrW/p -rPedQrVuirpAP$brVuTkqXsNE+TLj)qu?]kq#;?4s8W)uq#CAW\FTOXrVuoos8V6Xs6iZpo_SFW -p&>9opAOaco`+R_ru1Lrs3_J@jLr" -nGb3>s8V;5#R(h@DuKJ(J5>;*s8)TjrVufqs82?Zrr;rlr;$6ic=HtV!H[&rs6K@Srr3-#s8W)t -Rf&/4s8)cq!<2ip"RZ6hH>if_"9&9!q"F^nrqZTorVl2t^]+68lMpAJrVm/T:8S!\ -r;Q`jq>Um!s8)cqnGiOep](9drr3eB1\LeHmJm1RjSp:An,M\-d/3_0rVu3YrrN,trVmc6s4,$J -p\Y!jp\Fjes8P]QqZ$Tns8Mrrrr)j#rr)cilhLDX*r>j8qs.RRs7bjPp@[tUl9E>^lhATZrVl*W -s8Vunr;V9~> -nGb3>s8V;5#R(h@DuKJ(J5>;*s8)TjrVufqs82?Zrr;rlr;$6ic=HtV!H[&rs6K@Srr3-#s8W)t -Rf&/4s8)cq!<2ip"RZ6hH>if_"9&9!q"F^nrqZTorVl2t^]+68lMpAJrVm/T:8S!\ -r;Q`jq>Um!s8)cqnGiOep](9drr3eB1\LeHmJm1RjSp:An,M\-d/3_0rVu3YrrN,trVmc6s4,$J -p\Y!jp\Fjes8P]QqZ$Tns8Mrrrr)j#rr)cilhLDX*r>j8qs.RRs7bjPp@[tUl9E>^lhATZrVl*W -s8Vunr;V9~> -nGb3>s8V;5#R(h@DuKJ(J5>;*s8)TjrVufqs82?Zrr;rlr;$6ic=HtV!H[&rs6K@Srr3-#s8W)t -Rf&/4s8)cq!<2ip"RZ6hH>if_"9&9!q"F^nrqZTorVl2t^]+68lMpAJrVm/T:8S!\ -r;Q`jq>Um!s8)cqnGiOep](9drr3eB1\LeHmJm1RjSp:An,M\-d/3_0rVu3YrrN,trVmc6s4,$J -p\Y!jp\Fjes8P]QqZ$Tns8Mrrrr)j#rr)cilhLDX*r>j8qs.RRs7bjPp@[tUl9E>^lhATZrVl*W -s8Vunr;V9~> -nc'O&s6TX_r1n+![J'Y#`CZTrs8MN^s8W&to'u_Z'DhM!mJm4Xmf3=VGRFKUC>&XYq>UBqrVuos -rg`uho_JLd!;a_8(B4@2s8;lrs6o^^pAa8+K(&=1pA=^dq>UEo%/9ens8Vres8VTgqsaUbs7-Qt -p$1L$VZ6\mq#(-es!R^DqZ$Tcp&4peoDejgqtXTrU0I\%J]u' -rVuosp@\7[rquWlrso#-qSaqoqu6Eds8W)urr)j2rr)cps8DolqYg -nc'O&s6TX_r1n+![J'Y#`CZTrs8MN^s8W&to'u_Z'DhM!mJm4Xmf3=VGRFKUC>&XYq>UBqrVuos -rg`uho_JLd!;a_8(B4@2s8;lrs6o^^pAa8+K(&=1pA=^dq>UEo%/9ens8Vres8VTgqsaUbs7-Qt -p$1L$VZ6\mq#(-es!R^DqZ$Tcp&4peoDejgqtXTrU0I\%J]u' -rVuosp@\7[rquWlrso#-qSaqoqu6Eds8W)urr)j2rr)cps8DolqYg -nc'O&s6TX_r1n+![J'Y#`CZTrs8MN^s8W&to'u_Z'DhM!mJm4Xmf3=VGRFKUC>&XYq>UBqrVuos -rg`uho_JLd!;a_8(B4@2s8;lrs6o^^pAa8+K(&=1pA=^dq>UEo%/9ens8Vres8VTgqsaUbs7-Qt -p$1L$VZ6\mq#(-es!R^DqZ$Tcp&4peoDejgqtXTrU0I\%J]u' -rVuosp@\7[rquWlrso#-qSaqoqu6Eds8W)urr)j2rr)cps8DolqYg -mf*:Yrr3T0r;ZKiqu=erbOPW4rVlcqr;Q]sqYU6k&+oPps7lWis7NZ^"pJo8q#:9prVuosrg3Wd -r;6K8rt,)'s7ZKmqYU*gs8;olp@@DErrDihruV1>p]'pas7uQjqZ$Khs8)BfrVuiqs6B4Bs8Vop -r:p:5p](!crVuopnc/Xfs8N#koAT`As7ZKhnc/X7jo=fKrrhijs7ZEcrs&2ss7ZHlrr2p4pAb0c -s8Mujs8Vc]rVuoprVuonrVlcq*rc-9q#CBns8Mcmqu?Bis46W -mf*:Yrr3T0r;ZKiqu=erbOPW4rVlcqr;Q]sqYU6k&+oPps7lWis7NZ^"pJo8q#:9prVuosrg3Wd -r;6K8rt,)'s7ZKmqYU*gs8;olp@@DErrDihruV1>p]'pas7uQjqZ$Khs8)BfrVuiqs6B4Bs8Vop -r:p:5p](!crVuopnc/Xfs8N#koAT`As7ZKhnc/X7jo=fKrrhijs7ZEcrs&2ss7ZHlrr2p4pAb0c -s8Mujs8Vc]rVuoprVuonrVlcq*rc-9q#CBns8Mcmqu?Bis46W -mf*:Yrr3T0r;ZKiqu=erbOPW4rVlcqr;Q]sqYU6k&+oPps7lWis7NZ^"pJo8q#:9prVuosrg3Wd -r;6K8rt,)'s7ZKmqYU*gs8;olp@@DErrDihruV1>p]'pas7uQjqZ$Khs8)BfrVuiqs6B4Bs8Vop -r:p:5p](!crVuopnc/Xfs8N#koAT`As7ZKhnc/X7jo=fKrrhijs7ZEcrs&2ss7ZHlrr2p4pAb0c -s8Mujs8Vc]rVuoprVuonrVlcq*rc-9q#CBns8Mcmqu?Bis46W -mf3=drVccr%/-0W_,/kWs8Dfos829b)?'L$[8-c7@[HEXs5s@]r:purqu]n -s8VtIs-`odrfI/1~> -mf3=drVccr%/-0W_,/kWs8Dfos829b)?'L$[8-c7@[HEXs5s@]r:purqu]n -s8VtIs-`odrfI/1~> -mf3=drVccr%/-0W_,/kWs8Dfos829b)?'L$[8-c7@[HEXs5s@]r:purqu]n -s8VtIs-`odrfI/1~> -kl2.hs8SZYA9d>4s8Dips8MQgrql]p&`0oX!!#?Kh#6d:rqu`ps8)QjrrW)lqYgHorr2otrIP!: -s8N"Zs*t~> -kl2.hs8SZYA9d>4s8Dips8MQgrql]p&`0oX!!#?Kh#6d:rqu`ps8)QjrrW)lqYgHorr2otrIP!: -s8N"Zs*t~> -kl2.hs8SZYA9d>4s8Dips8MQgrql]p&`0oX!!#?Kh#6d:rqu`ps8)QjrrW)lqYgHorr2otrIP!: -s8N"Zs*t~> -l2M4hs8N&\W2f4[qu6TnrU'V.r:^$fs8N%h!krql`prVlfr!<.QL -RK* -l2M4hs8N&\W2f4[qu6TnrU'V.r:^$fs8N%h!krql`prVlfr!<.QL -RK* -l2M4hs8N&\W2f4[qu6TnrU'V.r:^$fs8N%h!krql`prVlfr!<.QL -RK* -lMhCos8W#`s8VTgs82Zms8DocrrrB$s82Qfrr39%l(s(b(aas^rr3W1p[nLcrVliqr;Q`or;Q`p -rVhBJJcDSHJ,~> -lMhCos8W#`s8VTgs82Zms8DocrrrB$s82Qfrr39%l(s(b(aas^rr3W1p[nLcrVliqr;Q`or;Q`p -rVhBJJcDSHJ,~> -lMhCos8W#`s8VTgs82Zms8DocrrrB$s82Qfrr39%l(s(b(aas^rr3W1p[nLcrVliqr;Q`or;Q`p -rVhBJJcDSHJ,~> -mJdgur;6?jq#Bp]s5s.Wq"XmhrVZ0b!;Q?hs7Zg!gNb^_6&*5Drr3K&qu?]qq>:3lrVccrr;;-G -JcDPGJ,~> -mJdgur;6?jq#Bp]s5s.Wq"XmhrVZ0b!;Q?hs7Zg!gNb^_6&*5Drr3K&qu?]qq>:3lrVccrr;;-G -JcDPGJ,~> -mJdgur;6?jq#Bp]s5s.Wq"XmhrVZ0b!;Q?hs7Zg!gNb^_6&*5Drr3K&qu?]qq>:3lrVccrr;;-G -JcDPGJ,~> -mJdIjr;6?`o)Ja]rr33$q"asirqu3a+9)37qYBpdp\4^Xs6dXa56(t#[G^iXr;6Bks8M`lrr2ou -r;D3HP5kR]Q2c@~> -mJdIjr;6?`o)Ja]rr33$q"asirqu3a+9)37qYBpdp\4^Xs6dXa56(t#[G^iXr;6Bks8M`lrr2ou -r;D3HP5kR]Q2c@~> -mJdIjr;6?`o)Ja]rr33$q"asirqu3a+9)37qYBpdp\4^Xs6dXa56(t#[G^iXr;6Bks8M`lrr2ou -r;D3HP5kR]Q2c@~> -m/R(a%f?5)s7ZKmq>U?ls8W&sn,EIgqu$Bl"9/?#li-nhr7I6&"TV<,rr3AunbiFbs82cps7uMB -s-*K^rg!M6~> -m/R(a%f?5)s7ZKmq>U?ls8W&sn,EIgqu$Bl"9/?#li-nhr7I6&"TV<,rr3AunbiFbs82cps7uMB -s-*K^rg!M6~> -m/R(a%f?5)s7ZKmq>U?ls8W&sn,EIgqu$Bl"9/?#li-nhr7I6&"TV<,rr3AunbiFbs82cps7uMB -s-*K^rg!M6~> -nc/XgqYpcrp](9lr;HWp!r`#pl2Mn(qY'sgr;ZfdrVuZ]kIY+7!*QN*s7c!Ws82Nbs8;N^JcCr6 -rr/2_J,~> -nc/XgqYpcrp](9lr;HWp!r`#pl2Mn(qY'sgr;ZfdrVuZ]kIY+7!*QN*s7c!Ws82Nbs8;N^JcCr6 -rr/2_J,~> -nc/XgqYpcrp](9lr;HWp!r`#pl2Mn(qY'sgr;ZfdrVuZ]kIY+7!*QN*s7c!Ws82Nbs8;N^JcCr6 -rr/2_J,~> -\,Qj2o`+s3EX;djQfdl;rs8T'li$b[rqu\Fs-s#tqu$KjrU9U]n,N=crql]p!W;ohs8W&srrN&h -[/YX~> -\,Qj2o`+s3EX;djQfdl;rs8T'li$b[rqu\Fs-s#tqu$KjrU9U]n,N=crql]p!W;ohs8W&srrN&h -[/YX~> -\,Qj2o`+s3EX;djQfdl;rs8T'li$b[rqu\Fs-s#tqu$KjrU9U]n,N=crql]p!W;ohs8W&srrN&h -[/YX~> -\c393qu?Kerqu?A;@EO2L].8Err)itr;$9j!ri,qJcDAB"8D9Nm/I"eoD\CVrr3#pqu-Nqrr)Wl -!rhfbZ2]=~> -\c393qu?Kerqu?A;@EO2L].8Err)itr;$9j!ri,qJcDAB"8D9Nm/I"eoD\CVrr3#pqu-Nqrr)Wl -!rhfbZ2]=~> -\c393qu?Kerqu?A;@EO2L].8Err)itr;$9j!ri,qJcDAB"8D9Nm/I"eoD\CVrr3#pqu-Nqrr)Wl -!rhfbZ2]=~> -[Jq'?p&+j[s5IfL!!%?3rV>RIq"t*dq>1'hrrE"Ks.TGppAb!Yrr38hs4mPPqZ$TjrVuoro)Adb -s7`r$J,~> -[Jq'?p&+j[s5IfL!!%?3rV>RIq"t*dq>1'hrrE"Ks.TGppAb!Yrr38hs4mPPqZ$TjrVuoro)Adb -s7`r$J,~> -[Jq'?p&+j[s5IfL!!%?3rV>RIq"t*dq>1'hrrE"Ks.TGppAb!Yrr38hs4mPPqZ$TjrVuoro)Adb -s7`r$J,~> -\Gld.p&G'kq>:0ks7Zhl*Wm11jnSlOq>($jqgnd@rso&.s7lWeVH5Z(\c;U*oDS[jrVQTgrs/Mu -s8;ojs7E`!J,~> -\Gld.p&G'kq>:0ks7Zhl*Wm11jnSlOq>($jqgnd@rso&.s7lWeVH5Z(\c;U*oDS[jrVQTgrs/Mu -s8;ojs7E`!J,~> -\Gld.p&G'kq>:0ks7Zhl*Wm11jnSlOq>($jqgnd@rso&.s7lWeVH5Z(\c;U*oDS[jrVQTgrs/Mu -s8;ojs7E`!J,~> -\c3]Ks8MojqZ$Ton+-MXs7i':%08E&o(r4\s8W#mrIP!^3fr;Qclq#:He -s6]Zgs*t~> -\c3]Ks8MojqZ$Ton+-MXs7i':%08E&o(r4\s8W#mrIP!^3fr;Qclq#:He -s6]Zgs*t~> -\c3]Ks8MojqZ$Ton+-MXs7i':%08E&o(r4\s8W#mrIP!^3fr;Qclq#:He -s6]Zgs*t~> -[f7*@p\Xm`rVu]hs8)cks.;1R(c@HQp&=slq>>gDTDoE"qu?]poMgtH1T:?RqtU-i"TJ;us8Mio -!;ucp!;*YuJ,~> -[f7*@p\Xm`rVu]hs8)cks.;1R(c@HQp&=slq>>gDTDoE"qu?]poMgtH1T:?RqtU-i"TJ;us8Mio -!;ucp!;*YuJ,~> -[f7*@p\Xm`rVu]hs8)cks.;1R(c@HQp&=slq>>gDTDoE"qu?]poMgtH1T:?RqtU-i"TJ;us8Mio -!;ucp!;*YuJ,~> -\c2d*p\FdertG/,nb3"_q>^Hos6?ja%hh:9f(o=F!WDeEs.B<)q#1*/8'_,s`W,`5s7bpYs8;Tf -p\tHis4@2Kqt%2pJ,~> -\c2d*p\FdertG/,nb3"_q>^Hos6?ja%hh:9f(o=F!WDeEs.B<)q#1*/8'_,s`W,`5s7bpYs8;Tf -p\tHis4@2Kqt%2pJ,~> -\c2d*p\FdertG/,nb3"_q>^Hos6?ja%hh:9f(o=F!WDeEs.B<)q#1*/8'_,s`W,`5s7bpYs8;Tf -p\tHis4@2Kqt%2pJ,~> -[Jp=-qYU6k&bu)"r;ZWnq>'74J/eV[Ra^eXs.00%rTa.WRki:%);P8brr:TGc1_,9!;lNj!H,UM -rrD]!s*t~> -[Jp=-qYU6k&bu)"r;ZWnq>'74J/eV[Ra^eXs.00%rTa.WRki:%);P8brr:TGc1_,9!;lNj!H,UM -rrD]!s*t~> -[Jp=-qYU6k&bu)"r;ZWnq>'74J/eV[Ra^eXs.00%rTa.WRki:%);P8brr:TGc1_,9!;lNj!H,UM -rrD]!s*t~> -fDc6Vs8N&upAOmgs82TKrtbG(q#CBlj3;U+#8M!qqZ#g[s7ZKmqYgErrV?3cJcE.X*<,p7qtg3i -rTO:,Pj?)@mf3"Rs261Es8VZip\t'i#laf%r;i#Vs8',&J,~> -fDc6Vs8N&upAOmgs82TKrtbG(q#CBlj3;U+#8M!qqZ#g[s7ZKmqYgErrV?3cJcE.X*<,p7qtg3i -rTO:,Pj?)@mf3"Rs261Es8VZip\t'i#laf%r;i#Vs8',&J,~> -fDc6Vs8N&upAOmgs82TKrtbG(q#CBlj3;U+#8M!qqZ#g[s7ZKmqYgErrV?3cJcE.X*<,p7qtg3i -rTO:,Pj?)@mf3"Rs261Es8VZip\t'i#laf%r;i#Vs8',&J,~> -g&D6GqZ$TnmeHe^pu)/hrVQNms7u -g&D6GqZ$TnmeHe^pu)/hrVQNms7u -g&D6GqZ$TnmeHe^pu)/hrVQNms7u -f`)?Ts7--ar:0[^q"+::rri>tp@eC^rs8JJMaS<`@FP/Qrs8H#s8Drss8D\Cs1/.0rr2p"rr)`k -rr44jn'ob,`89S1g]-ir-B\?+_BAme!"DZ@s8;oos8N:hs8W&)s*t~> -f`)?Ts7--ar:0[^q"+::rri>tp@eC^rs8JJMaS<`@FP/Qrs8H#s8Drss8D\Cs1/.0rr2p"rr)`k -rr44jn'ob,`89S1g]-ir-B\?+_BAme!"DZ@s8;oos8N:hs8W&)s*t~> -f`)?Ts7--ar:0[^q"+::rri>tp@eC^rs8JJMaS<`@FP/Qrs8H#s8Drss8D\Cs1/.0rr2p"rr)`k -rr44jn'ob,`89S1g]-ir-B\?+_BAme!"DZ@s8;oos8N:hs8W&)s*t~> -fDc!Hrpg$\qu6]pqr%Jqr;HTjp\Fggp\k!ds7N?l!#Je1gA(UGs7uQls7Q>As1&(/rr2pIrr)cm -lMnXb-$" -fDc!Hrpg$\qu6]pqr%Jqr;HTjp\Fggp\k!ds7N?l!#Je1gA(UGs7uQls7Q>As1&(/rr2pIrr)cm -lMnXb-$" -fDc!Hrpg$\qu6]pqr%Jqr;HTjp\Fggp\k!ds7N?l!#Je1gA(UGs7uQls7Q>As1&(/rr2pIrr)cm -lMnXb-$" -g&D*Gqu-O&qtKm`r;Zfro`+pirVuosj8Thlr;ZfkjmrHOr7W/$((ZW,qu?]orr3#unq$hOrrE&s -s!dsGrVkaTQN -g&D*Gqu-O&qtKm`r;Zfro`+pirVuosj8Thlr;ZfkjmrHOr7W/$((ZW,qu?]orr3#unq$hOrrE&s -s!dsGrVkaTQN -g&D*Gqu-O&qtKm`r;Zfro`+pirVuosj8Thlr;ZfkjmrHOr7W/$((ZW,qu?]orr3#unq$hOrrE&s -s!dsGrVkaTQN -f`)'Hs7>aXrs/)bs8VinrVlcq!WN&\s8W)trrN,srr3Q-o(N+Vs2Hi"";@0ds8VWQJcE1Ys8Mus -s8FA?s762A#eoU(q>^3cp]&2fO8o51!6P9 -f`)'Hs7>aXrs/)bs8VinrVlcq!WN&\s8W)trrN,srr3Q-o(N+Vs2Hi"";@0ds8VWQJcE1Ys8Mus -s8FA?s762A#eoU(q>^3cp]&2fO8o51!6P9 -f`)'Hs7>aXrs/)bs8VinrVlcq!WN&\s8W)trrN,srr3Q-o(N+Vs2Hi"";@0ds8VWQJcE1Ys8Mus -s8FA?s762A#eoU(q>^3cp]&2fO8o51!6P9 -g&DZ`s60DZUn@\Xs8Vins7H9frVc`srVYjYs82lqrVm#po`"mhrVm?)s6>h.#n_RJs8Vrkp4<7S -s8W)rs!RgGpAamM@N]s802'J,~> -g&DZ`s60DZUn@\Xs8Vins7H9frVc`srVYjYs82lqrVm#po`"mhrVm?)s6>h.#n_RJs8Vrkp4<7S -s8W)rs!RgGpAamM@N]s802'J,~> -g&DZ`s60DZUn@\Xs8Vins7H9frVc`srVYjYs82lqrVm#po`"mhrVm?)s6>h.#n_RJs8Vrkp4<7S -s8W)rs!RgGpAamM@N]s802'J,~> -f`)NRs6`/d!&7rrnFZb\p\FacrVlosr9=4]rqcWprVlg/rVuopo`+"Es8M/2,7>5m](CRR\,ZL- -qYpQmrr3)Y0g"1grt#"N/"?RH+> -f`)NRs6`/d!&7rrnFZb\p\FacrVlosr9=4]rqcWprVlg/rVuopo`+"Es8M/2,7>5m](CRR\,ZL- -qYpQmrr3)Y0g"1grt#"N/"?RH+> -f`)NRs6`/d!&7rrnFZb\p\FacrVlosr9=4]rqcWprVlg/rVuopo`+"Es8M/2,7>5m](CRR\,ZL- -qYpQmrr3)Y0g"1grt#"N/"?RH+> -g&DTWs8DcnM169_!#^0kchRJ;s8Vp,qu?Qnr;ZHirr2Wis8W)qroj@aq"ajerVm_sP:utN>I3o# -o(i=`s8W#ns8Vins8)Tkrr<#tJcEai-1h0:o_?fR9E4k\s7ZK?,b4[k(hE[HrVft-UAsrerVcqb -rr;l&s*t~> -g&DTWs8DcnM169_!#^0kchRJ;s8Vp,qu?Qnr;ZHirr2Wis8W)qroj@aq"ajerVm_sP:utN>I3o# -o(i=`s8W#ns8Vins8)Tkrr<#tJcEai-1h0:o_?fR9E4k\s7ZK?,b4[k(hE[HrVft-UAsrerVcqb -rr;l&s*t~> -g&DTWs8DcnM169_!#^0kchRJ;s8Vp,qu?Qnr;ZHirr2Wis8W)qroj@aq"ajerVm_sP:utN>I3o# -o(i=`s8W#ns8Vins8)Tkrr<#tJcEai-1h0:o_?fR9E4k\s7ZK?,b4[k(hE[HrVft-UAsrerVcqb -rr;l&s*t~> -g&D]as8)]oo(h%:A1&&s/UsDLpYGfJ"SD`iqt^-h"oA#krr;u^rrW,srVlfqr>5LmO=pSP8@%je -rVuZas8VKYs8Vons8Mus!<.QLa8[L_rqlNds8Rs7eGfLIs80YcS,\?IJGT0CmmI_Vs8MckrWJMc -s802'J,~> -g&D]as8)]oo(h%:A1&&s/UsDLpYGfJ"SD`iqt^-h"oA#krr;u^rrW,srVlfqr>5LmO=pSP8@%je -rVuZas8VKYs8Vons8Mus!<.QLa8[L_rqlNds8Rs7eGfLIs80YcS,\?IJGT0CmmI_Vs8MckrWJMc -s802'J,~> -g&D]as8)]oo(h%:A1&&s/UsDLpYGfJ"SD`iqt^-h"oA#krr;u^rrW,srVlfqr>5LmO=pSP8@%je -rVuZas8VKYs8Vons8Mus!<.QLa8[L_rqlNds8Rs7eGfLIs80YcS,\?IJGT0CmmI_Vs8MckrWJMc -s802'J,~> -f`)cds8DHeoDejhh61QX/d+RNDSt&uqu?Kjrrquhs7uNjrVlllk5Q"kr;?Hhs8;W_i2]rq#=kTR -rr2udrVluls8VA8s1\LGqu?Zf\@1`'s763ff/Sul@0!G/rsbn,3op=ili$ecQ2^g\[/YX~> -f`)cds8DHeoDejhh61QX/d+RNDSt&uqu?Kjrrquhs7uNjrVlllk5Q"kr;?Hhs8;W_i2]rq#=kTR -rr2udrVluls8VA8s1\LGqu?Zf\@1`'s763ff/Sul@0!G/rsbn,3op=ili$ecQ2^g\[/YX~> -f`)cds8DHeoDejhh61QX/d+RNDSt&uqu?Kjrrquhs7uNjrVlllk5Q"kr;?Hhs8;W_i2]rq#=kTR -rr2udrVluls8VA8s1\LGqu?Zf\@1`'s763ff/Sul@0!G/rsbn,3op=ili$ecQ2^g\[/YX~> -f`)3Ps8VKdi:QC8rtG+db*$3E!>7SZV"F]eo(`"[s8Dors81mW#6"Jsr;H -f`)3Ps8VKdi:QC8rtG+db*$3E!>7SZV"F]eo(`"[s8Dors81mW#6"Jsr;H -f`)3Ps8VKdi:QC8rtG+db*$3E!>7SZV"F]eo(`"[s8Dors81mW#6"Jsr;H -f`)'Prr;rpruCb*p\t3fo=_Y<+U%j,Dm&^3s7lWop@n=Tp\FdMrr`9!r;HTo!rVT^rr3f&`G$D' -*FZ_\s8Vurs7l6drVZWos8MqIs2b3drVuone[jf,qY'FYr;Xh`UXpP"D15n=!+G6ms0p\[rWJMc -s802'J,~> -f`)'Prr;rpruCb*p\t3fo=_Y<+U%j,Dm&^3s7lWop@n=Tp\FdMrr`9!r;HTo!rVT^rr3f&`G$D' -*FZ_\s8Vurs7l6drVZWos8MqIs2b3drVuone[jf,qY'FYr;Xh`UXpP"D15n=!+G6ms0p\[rWJMc -s802'J,~> -f`)'Prr;rpruCb*p\t3fo=_Y<+U%j,Dm&^3s7lWop@n=Tp\FdMrr`9!r;HTo!rVT^rr3f&`G$D' -*FZ_\s8Vurs7l6drVZWos8MqIs2b3drVuone[jf,qY'FYr;Xh`UXpP"D15n=!+G6ms0p\[rWJMc -s802'J,~> -fDkmH"TA5tr;6Hm')MV*qZ$TRh3_sq$OAOMT>gj)qu6]rpZ__XrW<&trr2ounbiCd)Z0=&n,NF( -FZL?J@*nrRjQHF?s8Dims8W)qJcEjl#3GmPs5LWLqu7P\pWFYO`u#$d&-O+dbkh(UB?gDS"I8ud -qm?BR~> -fDkmH"TA5tr;6Hm')MV*qZ$TRh3_sq$OAOMT>gj)qu6]rpZ__XrW<&trr2ounbiCd)Z0=&n,NF( -FZL?J@*nrRjQHF?s8Dims8W)qJcEjl#3GmPs5LWLqu7P\pWFYO`u#$d&-O+dbkh(UB?gDS"I8ud -qm?BR~> -fDkmH"TA5tr;6Hm')MV*qZ$TRh3_sq$OAOMT>gj)qu6]rpZ__XrW<&trr2ounbiCd)Z0=&n,NF( -FZL?J@*nrRjQHF?s8Dims8W)qJcEjl#3GmPs5LWLqu7P\pWFYO`u#$d&-O+dbkh(UB?gDS"I8ud -qm?BR~> -g&D-Nr;Q]qs8 -g&D-Nr;Q]qs8 -g&D-Nr;Q]qs8 -f`)-Ss8VZio)AXop&4per;HZmrr3W-p](3lkOjR'!!i^%XR6&ap\X4T!<2or(]OC3qu?]qp%n^\ -s7PdYs8)]249,U1Q2^dfr;$6is8MkGs2b3dk3@^`Li@HgF+@U3[K"Q,JcGcLs8)cos7u]eP`OVu -rWJMcs802'J,~> -f`)-Ss8VZio)AXop&4per;HZmrr3W-p](3lkOjR'!!i^%XR6&ap\X4T!<2or(]OC3qu?]qp%n^\ -s7PdYs8)]249,U1Q2^dfr;$6is8MkGs2b3dk3@^`Li@HgF+@U3[K"Q,JcGcLs8)cos7u]eP`OVu -rWJMcs802'J,~> -f`)-Ss8VZio)AXop&4per;HZmrr3W-p](3lkOjR'!!i^%XR6&ap\X4T!<2or(]OC3qu?]qp%n^\ -s7PdYs8)]249,U1Q2^dfr;$6is8MkGs2b3dk3@^`Li@HgF+@U3[K"Q,JcGcLs8)cos7u]eP`OVu -rWJMcs802'J,~> -aSuGCqY9j^rql^/n]\-:%L<%kXT&8!qYL3iqYpNhpAYUKor;$@=o_R!T2*=>t/5%li5M?"\ -/t;V8q>^HUrVu]gs&s^:s76GhqXLolJ,~> -aSuGCqY9j^rql^/n]\-:%L<%kXT&8!qYL3iqYpNhpAYUKor;$@=o_R!T2*=>t/5%li5M?"\ -/t;V8q>^HUrVu]gs&s^:s76GhqXLolJ,~> -aSuGCqY9j^rql^/n]\-:%L<%kXT&8!qYL3iqYpNhpAYUKor;$@=o_R!T2*=>t/5%li5M?"\ -/t;V8q>^HUrVu]gs&s^:s76GhqXLolJ,~> -aT!.Wqtg0drr;ujn+?VZs7lWIP"m)0#QT[lmf*4er:L!g#OV6br:pUBprq-0hs8MZjs8Moq -')/kI.0hAmh>[0Kr;Zfms8Vfer;QosrVuorp&>*koD/=as8'S3s8E9!s8Vuos8Vfgs8W)ss8W)u -rri?$pAb-jrsSPsp%SLcs7ZKgs7lTmqu6Zqo`"skrV$6kq#13mpAY(1nc/X)0;&4Cq#CBns8V]_ -lq_s$q"G,Uq>^5ss*t~> -aT!.Wqtg0drr;ujn+?VZs7lWIP"m)0#QT[lmf*4er:L!g#OV6br:pUBprq-0hs8MZjs8Moq -')/kI.0hAmh>[0Kr;Zfms8Vfer;QosrVuorp&>*koD/=as8'S3s8E9!s8Vuos8Vfgs8W)ss8W)u -rri?$pAb-jrsSPsp%SLcs7ZKgs7lTmqu6Zqo`"skrV$6kq#13mpAY(1nc/X)0;&4Cq#CBns8V]_ -lq_s$q"G,Uq>^5ss*t~> -aT!.Wqtg0drr;ujn+?VZs7lWIP"m)0#QT[lmf*4er:L!g#OV6br:pUBprq-0hs8MZjs8Moq -')/kI.0hAmh>[0Kr;Zfms8Vfer;QosrVuorp&>*koD/=as8'S3s8E9!s8Vuos8Vfgs8W)ss8W)u -rri?$pAb-jrsSPsp%SLcs7ZKgs7lTmqu6Zqo`"skrV$6kq#13mpAY(1nc/X)0;&4Cq#CBns8V]_ -lq_s$q"G,Uq>^5ss*t~> -aSu8>rVZ`qrr3f2q>C9kq>U!cs6ZLX*qu?Tos829Ts8)H\qY:'5.@U58p\4^d -s8VfhlAW1Oq#:>Os8Vu's*t~> -aSu8>rVZ`qrr3f2q>C9kq>U!cs6ZLX*qu?Tos829Ts8)H\qY:'5.@U58p\4^d -s8VfhlAW1Oq#:>Os8Vu's*t~> -aSu8>rVZ`qrr3f2q>C9kq>U!cs6ZLX*qu?Tos829Ts8)H\qY:'5.@U58p\4^d -s8VfhlAW1Oq#:>Os8Vu's*t~> -ao;A?qu6ctq>:0jrri5ns7lKirt4ap@35UW.s8MYp?)DTnc/7Sq#:?nrquirp&G'kr;R9'oD8Le -o'(N:#68bmo'u_Z$2sl'q#C9fs8VrhrsST$k/bip`m4M^r;"50rVd*&r;HNhr;HZpqu?ZprVuos -)#XF2rquZnrVuojs8Vlop[eCaq>C$fs8Mlp!<2uts8Mus"9/8trqHF*o)JacrVuoqeGT@Fs7u]= -.?*Zlrt"l(rr;l]rVuZm!1 -ao;A?qu6ctq>:0jrri5ns7lKirt4ap@35UW.s8MYp?)DTnc/7Sq#:?nrquirp&G'kr;R9'oD8Le -o'(N:#68bmo'u_Z$2sl'q#C9fs8VrhrsST$k/bip`m4M^r;"50rVd*&r;HNhr;HZpqu?ZprVuos -)#XF2rquZnrVuojs8Vlop[eCaq>C$fs8Mlp!<2uts8Mus"9/8trqHF*o)JacrVuoqeGT@Fs7u]= -.?*Zlrt"l(rr;l]rVuZm!1 -ao;A?qu6ctq>:0jrri5ns7lKirt4ap@35UW.s8MYp?)DTnc/7Sq#:?nrquirp&G'kr;R9'oD8Le -o'(N:#68bmo'u_Z$2sl'q#C9fs8VrhrsST$k/bip`m4M^r;"50rVd*&r;HNhr;HZpqu?ZprVuos -)#XF2rquZnrVuojs8Vlop[eCaq>C$fs8Mlp!<2uts8Mus"9/8trqHF*o)JacrVuoqeGT@Fs7u]= -.?*Zlrt"l(rr;l]rVuZm!1 -ao;A?qu?Wo!WE#pru_%,rr;]fs6Q@Y0cLB#=cUe\s8W#ss7u?as8Viiqu-'bs8N#t)"mq.q>^Hi -s7?9DMB`0.>KlI3o^r._s8;iq!VlZhs8W$*s*b%W$iq8up]'d_`r?)=rVl`pr<_`gptaH_rp]pd -rVuos!W)]lr#,D.p](3hqt^9Za4pXoj4)obs8N&urr;fkr;Qisr;6Hm$2sf"rVuosrVc`grrE&s -rsRC]c1q>2o_dO%_YF*0s8!6*rr;rss763iABOQAs7`r$J,~> -ao;A?qu?Wo!WE#pru_%,rr;]fs6Q@Y0cLB#=cUe\s8W#ss7u?as8Viiqu-'bs8N#t)"mq.q>^Hi -s7?9DMB`0.>KlI3o^r._s8;iq!VlZhs8W$*s*b%W$iq8up]'d_`r?)=rVl`pr<_`gptaH_rp]pd -rVuos!W)]lr#,D.p](3hqt^9Za4pXoj4)obs8N&urr;fkr;Qisr;6Hm$2sf"rVuosrVc`grrE&s -rsRC]c1q>2o_dO%_YF*0s8!6*rr;rss763iABOQAs7`r$J,~> -ao;A?qu?Wo!WE#pru_%,rr;]fs6Q@Y0cLB#=cUe\s8W#ss7u?as8Viiqu-'bs8N#t)"mq.q>^Hi -s7?9DMB`0.>KlI3o^r._s8;iq!VlZhs8W$*s*b%W$iq8up]'d_`r?)=rVl`pr<_`gptaH_rp]pd -rVuos!W)]lr#,D.p](3hqt^9Za4pXoj4)obs8N&urr;fkr;Qisr;6Hm$2sf"rVuosrVc`grrE&s -rsRC]c1q>2o_dO%_YF*0s8!6*rr;rss763iABOQAs7`r$J,~> -ao;A?qu6ZqrVm'"qYL*bpA=k$pAb0jo\m!"<>5WP5HV3[rVlfsr;Q]tp\FaWs8W)srrr5us8)Be -rr3`"qrEej*=?5goDejdqu$?krq66ar;$@"rr<"I#A&^I1'is?rrDK-rt,2-qtg3frVunT,TV7/ -s8N#rs8W)upDE]$q=s^Yq>^KorVZ]6(/4;Z5!H=Ns2DbPrrKXQrVm!!r;-6frrrAur;HZqrr2Wk -&H2@qs8Dipd[9q*s7u]prVHNnrqR,us8;iqrVZZls8VT_k5YGZ[Jta~> -ao;A?qu6ZqrVm'"qYL*bpA=k$pAb0jo\m!"<>5WP5HV3[rVlfsr;Q]tp\FaWs8W)srrr5us8)Be -rr3`"qrEej*=?5goDejdqu$?krq66ar;$@"rr<"I#A&^I1'is?rrDK-rt,2-qtg3frVunT,TV7/ -s8N#rs8W)upDE]$q=s^Yq>^KorVZ]6(/4;Z5!H=Ns2DbPrrKXQrVm!!r;-6frrrAur;HZqrr2Wk -&H2@qs8Dipd[9q*s7u]prVHNnrqR,us8;iqrVZZls8VT_k5YGZ[Jta~> -ao;A?qu6ZqrVm'"qYL*bpA=k$pAb0jo\m!"<>5WP5HV3[rVlfsr;Q]tp\FaWs8W)srrr5us8)Be -rr3`"qrEej*=?5goDejdqu$?krq66ar;$@"rr<"I#A&^I1'is?rrDK-rt,2-qtg3frVunT,TV7/ -s8N#rs8W)upDE]$q=s^Yq>^KorVZ]6(/4;Z5!H=Ns2DbPrrKXQrVm!!r;-6frrrAur;HZqrr2Wk -&H2@qs8Dipd[9q*s7u]prVHNnrqR,us8;iqrVZZls8VT_k5YGZ[Jta~> -aT)/:"97uerVca(rVucns8)9Yq#C0crr3K-s7Edk?mZ0o@"YfIqu-No"T&#nrVlEgs8Mus)tEt. -rVlils7H?kp&4]u=Y:@YX5s!Sc'mhqrV$7$rqQ8B-I2Jci!sMts8V9%rrE#sq\fA3s6EDf'O^Y6 -rVlfrs8N#rq>0sbqtg0bqu79-M$[Acl6SFFs1V!do_tOSWr2l*rquZlrr<#srVliqrpTjumd^:J -O7;'+rVlffs8Vrjqu-Npp\t1"q#CBinGi@Is7,fjs*t~> -aT)/:"97uerVca(rVucns8)9Yq#C0crr3K-s7Edk?mZ0o@"YfIqu-No"T&#nrVlEgs8Mus)tEt. -rVlils7H?kp&4]u=Y:@YX5s!Sc'mhqrV$7$rqQ8B-I2Jci!sMts8V9%rrE#sq\fA3s6EDf'O^Y6 -rVlfrs8N#rq>0sbqtg0bqu79-M$[Acl6SFFs1V!do_tOSWr2l*rquZlrr<#srVliqrpTjumd^:J -O7;'+rVlffs8Vrjqu-Npp\t1"q#CBinGi@Is7,fjs*t~> -aT)/:"97uerVca(rVucns8)9Yq#C0crr3K-s7Edk?mZ0o@"YfIqu-No"T&#nrVlEgs8Mus)tEt. -rVlils7H?kp&4]u=Y:@YX5s!Sc'mhqrV$7$rqQ8B-I2Jci!sMts8V9%rrE#sq\fA3s6EDf'O^Y6 -rVlfrs8N#rq>0sbqtg0bqu79-M$[Acl6SFFs1V!do_tOSWr2l*rquZlrr<#srVliqrpTjumd^:J -O7;'+rVlffs8Vrjqu-Npp\t1"q#CBinGi@Is7,fjs*t~> -aT);>s8Dusq>UWts8;lrrql`qq>UC0q>^'DhLT2;!$P'XT@!92rr)clqu$Hds8W)rrrW2sr;HX1 -p](9mli6hWYYu\Z,(B?"!0$sNrqZ;!?=Jcr;HWo -s8W)trVl]o)#jR5rr2rto32^$cs&X.5 -rr3,ps8Doorr3Q/qYL6cs7H?js8;onmJm4RZi>O~> -aT);>s8Dusq>UWts8;lrrql`qq>UC0q>^'DhLT2;!$P'XT@!92rr)clqu$Hds8W)rrrW2sr;HX1 -p](9mli6hWYYu\Z,(B?"!0$sNrqZ;!?=Jcr;HWo -s8W)trVl]o)#jR5rr2rto32^$cs&X.5 -rr3,ps8Doorr3Q/qYL6cs7H?js8;onmJm4RZi>O~> -aT);>s8Dusq>UWts8;lrrql`qq>UC0q>^'DhLT2;!$P'XT@!92rr)clqu$Hds8W)rrrW2sr;HX1 -p](9mli6hWYYu\Z,(B?"!0$sNrqZ;!?=Jcr;HWo -s8W)trVl]o)#jR5rr2rto32^$cs&X.5 -rr3,ps8Doorr3Q/qYL6cs7H?js8;onmJm4RZi>O~> -WW*P)qtp?ls6%G@H8#d2(KQsZrr38rpAb$^s8)ckqZ$Tprr<#ts8Duss8Nu9q>'pcq"4%Rm([6H -#quqk/B\"ml2U\Zrqud+p](8H%jN8V'L1OSs8Vijs8N#Es%`IkrVuBas78VuL*n23lhRB-k5YJ@ -Q^c\,P\Q*E`e_G/qZ$Qj/-b,1eX!f4KGsoA[>+c%IH1@gLh_OtrVuGFZ-%+6oC;bYqtC'iq>UBp -p\Fgg&+fhkp](3lAZbM%q>^6`q=+Cfo`+pjs7iu$J,~> -WW*P)qtp?ls6%G@H8#d2(KQsZrr38rpAb$^s8)ckqZ$Tprr<#ts8Duss8Nu9q>'pcq"4%Rm([6H -#quqk/B\"ml2U\Zrqud+p](8H%jN8V'L1OSs8Vijs8N#Es%`IkrVuBas78VuL*n23lhRB-k5YJ@ -Q^c\,P\Q*E`e_G/qZ$Qj/-b,1eX!f4KGsoA[>+c%IH1@gLh_OtrVuGFZ-%+6oC;bYqtC'iq>UBp -p\Fgg&+fhkp](3lAZbM%q>^6`q=+Cfo`+pjs7iu$J,~> -WW*P)qtp?ls6%G@H8#d2(KQsZrr38rpAb$^s8)ckqZ$Tprr<#ts8Duss8Nu9q>'pcq"4%Rm([6H -#quqk/B\"ml2U\Zrqud+p](8H%jN8V'L1OSs8Vijs8N#Es%`IkrVuBas78VuL*n23lhRB-k5YJ@ -Q^c\,P\Q*E`e_G/qZ$Qj/-b,1eX!f4KGsoA[>+c%IH1@gLh_OtrVuGFZ-%+6oC;bYqtC'iq>UBp -p\Fgg&+fhkp](3lAZbM%q>^6`q=+Cfo`+pjs7iu$J,~> -W;dV3o^)2Ls7u]llc+T=$32&2OmN,Cq>UC#rUp3_p@nUap\Fgg!<2cn#QFVsr;?Ecrr2p-i69;! -#QP-=_#OH-r;HWlrsnhpLB'Y9"(2*#s8W#sn,34brmCa?p\t3cqu?]kZj0p^582-U3i#QFc$qu-Qpr3cQT~> -W;dV3o^)2Ls7u]llc+T=$32&2OmN,Cq>UC#rUp3_p@nUap\Fgg!<2cn#QFVsr;?Ecrr2p-i69;! -#QP-=_#OH-r;HWlrsnhpLB'Y9"(2*#s8W#sn,34brmCa?p\t3cqu?]kZj0p^582-U3i#QFc$qu-Qpr3cQT~> -W;dV3o^)2Ls7u]llc+T=$32&2OmN,Cq>UC#rUp3_p@nUap\Fgg!<2cn#QFVsr;?Ecrr2p-i69;! -#QP-=_#OH-r;HWlrsnhpLB'Y9"(2*#s8W#sn,34brmCa?p\t3cqu?]kZj0p^582-U3i#QFc$qu-Qpr3cQT~> -VuIV5p%87`s8;ciqYffsP;*U]%o%Z#qt'jcrr3&os7cKl!ri)oq#:BorVZR*rVGs^nc.DF!!rW* -8^[S,rr2fp%f65*M^[H9*>m9*s4*%GqZ$Tpd/O.Aq>L=fq,[Qci(+m$o`%8YUAW_2"hrb0!1U\O -!"ZF9s7u]4!&X`U?i[(h>6%("gKsqPf_'k3Br,)8MuSh<"_tOHmHjHEs8;N`pAag^pAP!j$hs\p -s7QDq-cbrVq!J(do`+UarUKpe[Jta~> -VuIV5p%87`s8;ciqYffsP;*U]%o%Z#qt'jcrr3&os7cKl!ri)oq#:BorVZR*rVGs^nc.DF!!rW* -8^[S,rr2fp%f65*M^[H9*>m9*s4*%GqZ$Tpd/O.Aq>L=fq,[Qci(+m$o`%8YUAW_2"hrb0!1U\O -!"ZF9s7u]4!&X`U?i[(h>6%("gKsqPf_'k3Br,)8MuSh<"_tOHmHjHEs8;N`pAag^pAP!j$hs\p -s7QDq-cbrVq!J(do`+UarUKpe[Jta~> -VuIV5p%87`s8;ciqYffsP;*U]%o%Z#qt'jcrr3&os7cKl!ri)oq#:BorVZR*rVGs^nc.DF!!rW* -8^[S,rr2fp%f65*M^[H9*>m9*s4*%GqZ$Tpd/O.Aq>L=fq,[Qci(+m$o`%8YUAW_2"hrb0!1U\O -!"ZF9s7u]4!&X`U?i[(h>6%("gKsqPf_'k3Br,)8MuSh<"_tOHmHjHEs8;N`pAag^pAP!j$hs\p -s7QDq-cbrVq!J(do`+UarUKpe[Jta~> -WW)tprr<#s!W2Wgrt,.uqVAkF$31GGK?`uer;,[Wrs&Gqo(N(_rVQWprVlfrrVultqu-O$qO9#[ -2D-7LY4;Ags8EQ%s7UXJf)OM*7K:Y('.^i=s8Vt,s7u9d_uNF+rD*jEs7_$MIeIpgBDmA^H2%?< -!$^J'pA=iK$;1?c-7%(?V@S4Mqe,u,s3N5Bh>a\k;ZAZUDs@<%pA+ae`fZ=VUS+3IN3`'Oli-qa -o(E%!LZ/:0q>^Bmr;$Bgr -WW)tprr<#s!W2Wgrt,.uqVAkF$31GGK?`uer;,[Wrs&Gqo(N(_rVQWprVlfrrVultqu-O$qO9#[ -2D-7LY4;Ags8EQ%s7UXJf)OM*7K:Y('.^i=s8Vt,s7u9d_uNF+rD*jEs7_$MIeIpgBDmA^H2%?< -!$^J'pA=iK$;1?c-7%(?V@S4Mqe,u,s3N5Bh>a\k;ZAZUDs@<%pA+ae`fZ=VUS+3IN3`'Oli-qa -o(E%!LZ/:0q>^Bmr;$Bgr -WW)tprr<#s!W2Wgrt,.uqVAkF$31GGK?`uer;,[Wrs&Gqo(N(_rVQWprVlfrrVultqu-O$qO9#[ -2D-7LY4;Ags8EQ%s7UXJf)OM*7K:Y('.^i=s8Vt,s7u9d_uNF+rD*jEs7_$MIeIpgBDmA^H2%?< -!$^J'pA=iK$;1?c-7%(?V@S4Mqe,u,s3N5Bh>a\k;ZAZUDs@<%pA+ae`fZ=VUS+3IN3`'Oli-qa -o(E%!LZ/:0q>^Bmr;$Bgr -WW*,"s8Dilrr3r4qu6Wpqu$HnlMph_[nZo9!%(P-s8Vfkp[nC_rrVunrVca$rVZTlrr2lqrr30" -o]uPWnG`FiqXaO\q>^Ko&-)M#HQ1i -WW*,"s8Dilrr3r4qu6Wpqu$HnlMph_[nZo9!%(P-s8Vfkp[nC_rrVunrVca$rVZTlrr2lqrr30" -o]uPWnG`FiqXaO\q>^Ko&-)M#HQ1i -WW*,"s8Dilrr3r4qu6Wpqu$HnlMph_[nZo9!%(P-s8Vfkp[nC_rrVunrVca$rVZTlrr2lqrr30" -o]uPWnG`FiqXaO\q>^Ko&-)M#HQ1i -VuQerr;Qiro)&@b,Otg-s7cQnVI2+Y!=sS!oDARfr:]jZr;HWps8MuprVZTlrqud$q>^K\qt0d[ -rVm!!q#:9hrt,#+J,m@as3M?*o)Fb8i;W`!s%NFlqY:*j`;g>I$igG@K`D&!$"98N+!!r_s!sT89$ij8dqR$9Q~> -VuQerr;Qiro)&@b,Otg-s7cQnVI2+Y!=sS!oDARfr:]jZr;HWps8MuprVZTlrqud$q>^K\qt0d[ -rVm!!q#:9hrt,#+J,m@as3M?*o)Fb8i;W`!s%NFlqY:*j`;g>I$igG@K`D&!$"98N+!!r_s!sT89$ij8dqR$9Q~> -VuQerr;Qiro)&@b,Otg-s7cQnVI2+Y!=sS!oDARfr:]jZr;HWps8MuprVZTlrqud$q>^K\qt0d[ -rVm!!q#:9hrt,#+J,m@as3M?*o)Fb8i;W`!s%NFlqY:*j`;g>I$igG@K`D&!$"98N+!!r_s!sT89$ij8dqR$9Q~> -U]1Dmq=agf!rh`^rVmN+s8Dufs8UTQ4!+kE.9DqbnG`.])>s@.rr<#ts8Mfnq#16loD&@VqtL-j -r;HWlrrhfijfnU\rs$*BrVr$[[f69Ls$ceUs8VUc#8\X4-lN(nm.pZ"-7U%Zq#a_n`n*_>2"E_$@ESa0O4ps8'/'J,~> -U]1Dmq=agf!rh`^rVmN+s8Dufs8UTQ4!+kE.9DqbnG`.])>s@.rr<#ts8Mfnq#16loD&@VqtL-j -r;HWlrrhfijfnU\rs$*BrVr$[[f69Ls$ceUs8VUc#8\X4-lN(nm.pZ"-7U%Zq#a_n`n*_>2"E_$@ESa0O4ps8'/'J,~> -U]1Dmq=agf!rh`^rVmN+s8Dufs8UTQ4!+kE.9DqbnG`.])>s@.rr<#ts8Mfnq#16loD&@VqtL-j -r;HWlrrhfijfnU\rs$*BrVr$[[f69Ls$ceUs8VUc#8\X4-lN(nm.pZ"-7U%Zq#a_n`n*_>2"E_$@ESa0O4ps8'/'J,~> -WW)ttrr3&sq>UBn!W;iortt\2s7ZKmq>^9gqZ$Ths28&"(]Y4HS'^?nrrW)mq>UC&r;QTnn*9rF -s7lEioD\alpAFjfr;R;ts7uHhs7u]lrVu$)s*/hgrlkC/q#CBaoB$)sf`17:MZ@>Tq#:j6#>Fjk -s%ioEg4B\7]s7tgV2#%:s8Q^?M>rnU -WW)ttrr3&sq>UBn!W;iortt\2s7ZKmq>^9gqZ$Ths28&"(]Y4HS'^?nrrW)mq>UC&r;QTnn*9rF -s7lEioD\alpAFjfr;R;ts7uHhs7u]lrVu$)s*/hgrlkC/q#CBaoB$)sf`17:MZ@>Tq#:j6#>Fjk -s%ioEg4B\7]s7tgV2#%:s8Q^?M>rnU -WW)ttrr3&sq>UBn!W;iortt\2s7ZKmq>^9gqZ$Ths28&"(]Y4HS'^?nrrW)mq>UC&r;QTnn*9rF -s7lEioD\alpAFjfr;R;ts7uHhs7u]lrVu$)s*/hgrlkC/q#CBaoB$)sf`17:MZ@>Tq#:j6#>Fjk -s%ioEg4B\7]s7tgV2#%:s8Q^?M>rnU -g&DHWpAapfoDe^fr;$?irrN,trr3#uqT8aMmD+?G'a#dcKZN?JoD&@Qs7>s`rrr5ps8Vojrr39% -s82inp](9lnc&jmn,Kn!U/7 -g&DHWpAapfoDe^fr;$?irrN,trr3#uqT8aMmD+?G'a#dcKZN?JoD&@Qs7>s`rrr5ps8Vojrr39% -s82inp](9lnc&jmn,Kn!U/7 -g&DHWpAapfoDe^fr;$?irrN,trr3#uqT8aMmD+?G'a#dcKZN?JoD&@Qs7>s`rrr5ps8Vojrr39% -s82inp](9lnc&jmn,Kn!U/7 -fDc'Gm/R+Us8Mus!W2iprr`9!r;OY7(%&VZ:I>C2:M.#Us8N&un+lkUs8Vflrri9!rqlNgrrDrb -rrr5UHr>1Iao;A?rr577:J0=C6mm.UG]r:p$` -[/YX~> -fDc'Gm/R+Us8Mus!W2iprr`9!r;OY7(%&VZ:I>C2:M.#Us8N&un+lkUs8Vflrri9!rqlNgrrDrb -rrr5UHr>1Iao;A?rr577:J0=C6mm.UG]r:p$` -[/YX~> -fDc'Gm/R+Us8Mus!W2iprr`9!r;OY7(%&VZ:I>C2:M.#Us8N&un+lkUs8Vflrri9!rqlNgrrDrb -rrr5UHr>1Iao;A?rr577:J0=C6mm.UG]r:p$` -[/YX~> -g&D*EmJd+co_ndkqtKpcrrrA4lir@F,;"t"if\,EeoD8LC -g&D!hro)Q0s7G42s5j:VhVS&-leUe)s82ins8MWi!;uNi"9/?#rVc`unFutYp&>*kqu*o%J,~> -g&D*EmJd+co_ndkqtKpcrrrA4lir@F,;"t"if\,EeoD8LC -g&D!hro)Q0s7G42s5j:VhVS&-leUe)s82ins8MWi!;uNi"9/?#rVc`unFutYp&>*kqu*o%J,~> -g&D*EmJd+co_ndkqtKpcrrrA4lir@F,;"t"if\,EeoD8LC -g&D!hro)Q0s7G42s5j:VhVS&-leUe)s82ins8MWi!;uNi"9/?#rVc`unFutYp&>*kqu*o%J,~> -f`)6QqZ#p]s7c6ar;Qiqq#(-k!r`&pa8[IbqYpNpqY^65`bnE[%52ObkkY8Yq>'a^s82\nD':4@i&!6h]s8N#t!;-3h&c25$ -rVui`o`+s^s82cps8;ips8Vuts8;lr!ri/srr*'!r;-9frr2utq>V!)s8W#ps8W)trUp3jq#C$Z -rrN)t[/YX~> -f`)6QqZ#p]s7c6ar;Qiqq#(-k!r`&pa8[IbqYpNpqY^65`bnE[%52ObkkY8Yq>'a^s82\nD':4@i&!6h]s8N#t!;-3h&c25$ -rVui`o`+s^s82cps8;ips8Vuts8;lr!ri/srr*'!r;-9frr2utq>V!)s8W#ps8W)trUp3jq#C$Z -rrN)t[/YX~> -f`)6QqZ#p]s7c6ar;Qiqq#(-k!r`&pa8[IbqYpNpqY^65`bnE[%52ObkkY8Yq>'a^s82\nD':4@i&!6h]s8N#t!;-3h&c25$ -rVui`o`+s^s82cps8;ips8Vuts8;lr!ri/srr*'!r;-9frr2utq>V!)s8W#ps8W)trUp3jq#C$Z -rrN)t[/YX~> -g&DdUTss8W&rrr32hs7l9eq=j[a -!<)lr!ri/s[Jta~> -g&DdUTss8W&rrr32hs7l9eq=j[a -!<)lr!ri/s[Jta~> -g&DdUTss8W&rrr32hs7l9eq=j[a -!<)lr!ri/s[Jta~> -f`)9Prqu`kr9=%Io`"mjpBU`tp\"@\rqse9s8Dor(A[gtq#C3]lDLOe#65#aJ]IfjnalSMrr3)q -nG2qMrrVuio)AXirq+>4#6+Yqq>^KoqYqW9qu?Zqq#COc\s8N&qrVuoop&Fsis8Mus -"n_Zis8VZgrrMfaqYpcpqu?Hks8MBb!<2ip#PS2tq#CBgrqZR!rVlfrs8Muq[Jta~> -f`)9Prqu`kr9=%Io`"mjpBU`tp\"@\rqse9s8Dor(A[gtq#C3]lDLOe#65#aJ]IfjnalSMrr3)q -nG2qMrrVuio)AXirq+>4#6+Yqq>^KoqYqW9qu?Zqq#COc\s8N&qrVuoop&Fsis8Mus -"n_Zis8VZgrrMfaqYpcpqu?Hks8MBb!<2ip#PS2tq#CBgrqZR!rVlfrs8Muq[Jta~> -f`)9Prqu`kr9=%Io`"mjpBU`tp\"@\rqse9s8Dor(A[gtq#C3]lDLOe#65#aJ]IfjnalSMrr3)q -nG2qMrrVuio)AXirq+>4#6+Yqq>^KoqYqW9qu?Zqq#COc\s8N&qrVuoop&Fsis8Mus -"n_Zis8VZgrrMfaqYpcpqu?Hks8MBb!<2ip#PS2tq#CBgrqZR!rVlfrs8Muq[Jta~> -g&Dl`s7lU1#660PX2jo5rqQNiq>'marVlf^0_ -rs&K$rr2rtrjDcV~> -g&Dl`s7lU1#660PX2jo5rqQNiq>'marVlf^0_ -rs&K$rr2rtrjDcV~> -g&Dl`s7lU1#660PX2jo5rqQNiq>'marVlf^0_ -rs&K$rr2rtrjDcV~> -f`)QNs8UMD*Us%rr2cgp@@Qs.sPe0%sRaI -s8B5&J,~> -f`)QNs8UMD*Us%rr2cgp@@Qs.sPe0%sRaI -s8B5&J,~> -f`)QNs8UMD*Us%rr2cgp@@Qs.sPe0%sRaI -s8B5&J,~> -d/P;YD."Rg"p5#d?Y@.RpAY$js7H3gs8;ols8W)sp](9ls8N#t!WMuprs/Mus8W≺PRQ)Z0C+ -p\=U_rr;ib[!OA7!!#ms!&;h"s8;iprVllsU&Xrdrr0h8s83;np@\IT?OQod5Q`1mV>l&~> -d/P;YD."Rg"p5#d?Y@.RpAY$js7H3gs8;ols8W)sp](9ls8N#t!WMuprs/Mus8W≺PRQ)Z0C+ -p\=U_rr;ib[!OA7!!#ms!&;h"s8;iprVllsU&Xrdrr0h8s83;np@\IT?OQod5Q`1mV>l&~> -d/P;YD."Rg"p5#d?Y@.RpAY$js7H3gs8;ols8W)sp](9ls8N#t!WMuprs/Mus8W≺PRQ)Z0C+ -p\=U_rr;ib[!OA7!!#ms!&;h"s8;iprVllsU&Xrdrr0h8s83;np@\IT?OQod5Q`1mV>l&~> -dJjRPp](9]n]Go8-5uj`#R>.NXMO)nmdpDW$2ac&q"jU[s8Vlnr!<3"q=jjcqZ$QmrrN#miVrrW -r;QO-r;Q`rrr;]lpqUuc!!=&<362'srVlcq!L -dJjRPp](9]n]Go8-5uj`#R>.NXMO)nmdpDW$2ac&q"jU[s8Vlnr!<3"q=jjcqZ$QmrrN#miVrrW -r;QO-r;Q`rrr;]lpqUuc!!=&<362'srVlcq!L -dJjRPp](9]n]Go8-5uj`#R>.NXMO)nmdpDW$2ac&q"jU[s8Vlnr!<3"q=jjcqZ$QmrrN#miVrrW -r;QO-r;Q`rrr;]lpqUuc!!=&<362'srVlcq!L -cMo'Yn,NFWs5(,XY^dr<)#sXa6"H\:a7]K$q>^3hp&4pjp\=aorr;fjqt^!^rSISRrrVllsU&Xld_Z']9s7uZo#ga&6^Al@k+nqi5J,~> -cMo'Yn,NFWs5(,XY^dr<)#sXa6"H\:a7]K$q>^3hp&4pjp\=aorr;fjqt^!^rSISRrrVllsU&Xld_Z']9s7uZo#ga&6^Al@k+nqi5J,~> -cMo'Yn,NFWs5(,XY^dr<)#sXa6"H\:a7]K$q>^3hp&4pjp\=aorr;fjqt^!^rSISRrrVllsU&Xld_Z']9s7uZo#ga&6^Al@k+nqi5J,~> -dJj7Dr;Q^FqtC'bs8V]is6]`sP'9nN'GCHWdNS -rVuos&,Z1mq#>=J+@_9HIH(2'rr)isrdk+&rt#,,q"+Ias1/S0iq]JU48YlSJ,~> -dJj7Dr;Q^FqtC'bs8V]is6]`sP'9nN'GCHWdNS -rVuos&,Z1mq#>=J+@_9HIH(2'rr)isrdk+&rt#,,q"+Ias1/S0iq]JU48YlSJ,~> -dJj7Dr;Q^FqtC'bs8V]is6]`sP'9nN'GCHWdNS -rVuos&,Z1mq#>=J+@_9HIH(2'rr)isrdk+&rt#,,q"+Ias1/S0iq]JU48YlSJ,~> -ci56anc/Xeq#1!^r;Zfis8M`jn^#%JDH0:O!$aNY9qI]Rk48$>s8N#ts8VrrrVc`rqVM8Prr)it -rV?Hm%/]t2][H-As6oparVlcq!<.QLg&D'Mr;R&rL^7>_s-Ek"V#Pr~> -ci56anc/Xeq#1!^r;Zfis8M`jn^#%JDH0:O!$aNY9qI]Rk48$>s8N#ts8VrrrVc`rqVM8Prr)it -rV?Hm%/]t2][H-As6oparVlcq!<.QLg&D'Mr;R&rL^7>_s-Ek"V#Pr~> -ci56anc/Xeq#1!^r;Zfis8M`jn^#%JDH0:O!$aNY9qI]Rk48$>s8N#ts8VrrrVc`rqVM8Prr)it -rV?Hm%/]t2][H-As6oparVlcq!<.QLg&D'Mr;R&rL^7>_s-Ek"V#Pr~> -dJj4Aqu7lus8N#srrE&Ss8Dp# -p](9hli$b]s7Z]ms8W#qrr)isrfdB^rl>'=rr -dJj4Aqu7lus8N#srrE&Ss8Dp# -p](9hli$b]s7Z]ms8W#qrr)isrfdB^rl>'=rr -dJj4Aqu7lus8N#srrE&Ss8Dp# -p](9hli$b]s7Z]ms8W#qrr)isrfdB^rl>'=rr -d/OIPs8Vi\q>^*erqucq"TJGqpAY$js8N#t'CaZ8[@i.p0a8^'/4NrnY1`:?r;HWsqtg6FrtPJ2 -rr;lqr;Z]`qu?B[s8M`ir;HWnrrE%ls7uZls8N# -d/OIPs8Vi\q>^*erqucq"TJGqpAY$js8N#t'CaZ8[@i.p0a8^'/4NrnY1`:?r;HWsqtg6FrtPJ2 -rr;lqr;Z]`qu?B[s8M`ir;HWnrrE%ls7uZls8N# -d/OIPs8Vi\q>^*erqucq"TJGqpAY$js8N#t'CaZ8[@i.p0a8^'/4NrnY1`:?r;HWsqtg6FrtPJ2 -rr;lqr;Z]`qu?B[s8M`ir;HWnrrE%ls7uZls8N# -d/O+Dr;QcnrVn8BnbW:]s8W#oq"Oaer;Z]os7#RUs82iJ\A*Ms7iD@2+Yu94V:G=ls8W)urri&q -q"aLYrs&&oq=smdrr)isrh9AfrqufqrlP0?q>L=#qV3_G\c:S""7GfXs*t~> -d/O+Dr;QcnrVn8BnbW:]s8W#oq"Oaer;Z]os7#RUs82iJ\A*Ms7iD@2+Yu94V:G=ls8W)urri&q -q"aLYrs&&oq=smdrr)isrh9AfrqufqrlP0?q>L=#qV3_G\c:S""7GfXs*t~> -d/O+Dr;QcnrVn8BnbW:]s8W#oq"Oaer;Z]os7#RUs82iJ\A*Ms7iD@2+Yu94V:G=ls8W)urri&q -q"aLYrs&&oq=smdrr)isrh9AfrqufqrlP0?q>L=#qV3_G\c:S""7GfXs*t~> -Z2ah&r;R].f?;=.:ECGl!ZNXCJ^2'mq>UBns8;oks7uTm'DMP,r;6Klrr<#gs82iis8DutrUp0n -qu$Bjrdk*prso&.s7H*clc[BAs67MEkbS6/~> -Z2ah&r;R].f?;=.:ECGl!ZNXCJ^2'mq>UBns8;oks7uTm'DMP,r;6Klrr<#gs82iis8DutrUp0n -qu$Bjrdk*prso&.s7H*clc[BAs67MEkbS6/~> -Z2ah&r;R].f?;=.:ECGl!ZNXCJ^2'mq>UBns8;oks7uTm'DMP,r;6Klrr<#gs82iis8DutrUp0n -qu$Bjrdk*prso&.s7H*clc[BAs67MEkbS6/~> -Z2ah&qu6Zprr3i,lLsp&G'apAaOYs7$$f#k7llp[e%N -q"aacs8DusJcF!p"8Morr;Q]ro)AXlq>:3lrMBOE~> -Z2ah&qu6Zprr3i,lLsp&G'apAaOYs7$$f#k7llp[e%N -q"aacs8DusJcF!p"8Morr;Q]ro)AXlq>:3lrMBOE~> -Z2ah&qu6Zprr3i,lLsp&G'apAaOYs7$$f#k7llp[e%N -q"aacs8DusJcF!p"8Morr;Q]ro)AXlq>:3lrMBOE~> -Z2ak'qu6fsrr)Zhrr3Soq#CBYj1]dP,m+,V!ulK_cMdbCoDS\$p@/+^kkb5Ss8W)lq#C0drr%EJ -^Ae31rr2utrVlrur;?Qo!;E>iJ,~> -Z2ak'qu6fsrr)Zhrr3Soq#CBYj1]dP,m+,V!ulK_cMdbCoDS\$p@/+^kkb5Ss8W)lq#C0drr%EJ -^Ae31rr2utrVlrur;?Qo!;E>iJ,~> -Z2ak'qu6fsrr)Zhrr3Soq#CBYj1]dP,m+,V!ulK_cMdbCoDS\$p@/+^kkb5Ss8W)lq#C0drr%EJ -^Ae31rr2utrVlrur;?Qo!;E>iJ,~> -VZ/.Equ?]js82Thr;6<_s7X[MW(I$n!"K&a.:N#2pAOphs8DNgs5s7Ds5O%X#5A#pq>'dMJcEF` -$N0\qs7cKls8DZfV#Pr~> -VZ/.Equ?]js82Thr;6<_s7X[MW(I$n!"K&a.:N#2pAOphs8DNgs5s7Ds5O%X#5A#pq>'dMJcEF` -$N0\qs7cKls8DZfV#Pr~> -VZ/.Equ?]js82Thr;6<_s7X[MW(I$n!"K&a.:N#2pAOphs8DNgs5s7Ds5O%X#5A#pq>'dMJcEF` -$N0\qs7cKls8DZfV#Pr~> -WW*%pqYgBm"9/?!rqucurr;rqrr3r/[s)?i!%.aN%;Lfjg[j\0nGi"Xi;`iVs8;lprrDnHs1n[7 -rL!V8~> -WW*%pqYgBm"9/?!rqucurr;rqrr3r/[s)?i!%.aN%;Lfjg[j\0nGi"Xi;`iVs8;lprrDnHs1n[7 -rL!V8~> -WW*%pqYgBm"9/?!rqucurr;rqrr3r/[s)?i!%.aN%;Lfjg[j\0nGi"Xi;`iVs8;lprrDnHs1n[7 -rL!V8~> -X8i5!q>Uols8V`]s8VoirVufPkl1T&rVuoU\X,3+-3+0&)`P"<_;+;Cq#C*cs82Qjs8.BI^]4?4 -rVm$!s8;`krr&YmJ,~> -X8i5!q>Uols8V`]s8VoirVufPkl1T&rVuoU\X,3+-3+0&)`P"<_;+;Cq#C*cs82Qjs8.BI^]4?4 -rVm$!s8;`krr&YmJ,~> -X8i5!q>Uols8V`]s8VoirVufPkl1T&rVuoU\X,3+-3+0&)`P"<_;+;Cq#C*cs82Qjs8.BI^]4?4 -rVm$!s8;`krr&YmJ,~> -XT/;!"oS8pqY^?lrsA2ns8Vrjs8VW\rr35uqt0p^pAasfrtYCLO)R6%0a@[q?tbk6biAZroDeja -q#CBms8ITLb5VYDrr;rmrVlisrM0CC~> -XT/;!"oS8pqY^?lrsA2ns8Vrjs8VW\rr35uqt0p^pAasfrtYCLO)R6%0a@[q?tbk6biAZroDeja -q#CBms8ITLb5VYDrr;rmrVlisrM0CC~> -XT/;!"oS8pqY^?lrsA2ns8Vrjs8VW\rr35uqt0p^pAasfrtYCLO)R6%0a@[q?tbk6biAZroDeja -q#CBms8ITLb5VYDrr;rmrVlisrM0CC~> -XT/;!)>jI6rVccrqu?NmrUp3jqu$Kmo)Jaes8W#qrrMilrVmN.p?0keCgSY(#UBaFG`&6KiSF;/ -"T/,prVhBJcMn%Fs8W&qrr36%s8Mops8Vhis*t~> -XT/;!)>jI6rVccrqu?NmrUp3jqu$Kmo)Jaes8W#qrrMilrVmN.p?0keCgSY(#UBaFG`&6KiSF;/ -"T/,prVhBJcMn%Fs8W&qrr36%s8Mops8Vhis*t~> -XT/;!)>jI6rVccrqu?NmrUp3jqu$Kmo)Jaes8W#qrrMilrVmN.p?0keCgSY(#UBaFG`&6KiSF;/ -"T/,prVhBJcMn%Fs8W&qrr36%s8Mops8Vhis*t~> -nc&UbrVllgrr2ucrr2ukSc9]*e%;fFBjN@m#!+&@AYc9bs7?-fs7=9acN!q@qYpTqrIP!"s6]i:~> -nc&UbrVllgrr2ucrr2ukSc9]*e%;fFBjN@m#!+&@AYc9bs7?-fs7=9acN!q@qYpTqrIP!"s6]i:~> -nc&UbrVllgrr2ucrr2ukSc9]*e%;fFBjN@m#!+&@AYc9bs7?-fs7=9acN!q@qYpTqrIP!"s6]i:~> -nG`Oco`"jsr:f[[s7#mbs6ZN[+o20MT,Tp\k&As+145 -s*t~> -nG`Oco`"jsr:f[[s7#mbs6ZN[+o20MT,Tp\k&As+145 -s*t~> -nG`Oco`"jsr:f[[s7#mbs6ZN[+o20MT,Tp\k&As+145 -s*t~> -nc'!os8Vrhq=O^UrVuY`s!%= -nc'!os8Vrhq=O^UrVuY`s!%= -nc'!os8Vrhq=O^UrVuY`s!%= -nc&mcs8VWbs8)?arr3)to()FBs8W)urtt\+s7H?ds7>j?f[Q'TAd8;?"UfA+r;HVGs+146s*t~> -nc&mcs8VWbs8)?arr3)to()FBs8W)urtt\+s7H?ds7>j?f[Q'TAd8;?"UfA+r;HVGs+146s*t~> -nc&mcs8VWbs8)?arr3)to()FBs8W)urtt\+s7H?ds7>j?f[Q'TAd8;?"UfA+r;HVGs+146s*t~> -nc'$qs8;iqb?Gi,D;YBcT)T2oo_&.]q=jdds8Mfmrt5,-r;Z`js7GXC#QP&/$>]P -nc'$qs8;iqb?Gi,D;YBcT)T2oo_&.]q=jdds8Mfmrt5,-r;Z`js7GXC#QP&/$>]P -nc'$qs8;iqb?Gi,D;YBcT)T2oo_&.]q=jdds8Mfmrt5,-r;Z`js7GXC#QP&/$>]P -nGa!ts8UnA#8f?!;t0h[q>?c_(]F1,q>^Kio^VSCq=O^aqu-9hD?*I]Yk\5!rr%EJJcG-;J,~> -nGa!ts8UnA#8f?!;t0h[q>?c_(]F1,q>^Kio^VSCq=O^aqu-9hD?*I]Yk\5!rr%EJJcG-;J,~> -nGa!ts8UnA#8f?!;t0h[q>?c_(]F1,q>^Kio^VSCq=O^aqu-9hD?*I]Yk\5!rr%EJJcG-;J,~> -mf*[h^)21rs%OTIs8Vecs8Vp8r;Zfrrr;ors8;Tgs8W)ss8MrmmJG>Zs8VZilMgd6s+145s*t~> -mf*[h^)21rs%OTIs8Vecs8Vp8r;Zfrrr;ors8;Tgs8W)ss8MrmmJG>Zs8VZilMgd6s+145s*t~> -mf*[h^)21rs%OTIs8Vecs8Vp8r;Zfrrr;ors8;Tgs8W)ss8MrmmJG>Zs8VZilMgd6s+145s*t~> -nc'$rs8W#>"`!f0q"=[ZRf -nc'$rs8W#>"`!f0q"=[ZRf -nc'$rs8W#>"`!f0q"=[ZRf -mJdOd9EPHK`r>l8s7Z6f'E8%3rqH -mJdOd9EPHK`r>l8s7Z6f'E8%3rqH -mJdOd9EPHK`r>l8s7Z6f'E8%3rqH -nc&Xhq>UC"h.e&A"b-LNp%SInrVuoorr<#as8)ZmrsAYtrr)fps8MroJcC<$L&ZZ~> -nc&Xhq>UC"h.e&A"b-LNp%SInrVuoorr<#as8)ZmrsAYtrr)fps8MroJcC<$L&ZZ~> -nc&Xhq>UC"h.e&A"b-LNp%SInrVuoorr<#as8)ZmrsAYtrr)fps8MroJcC<$L&ZZ~> -nGa!ps7=h5s59)2#I=C,s7Q0es7ufrq"k!i!W2TgrrE&ss8N"Ks+13(s*t~> -nGa!ps7=h5s59)2#I=C,s7Q0es7ufrq"k!i!W2TgrrE&ss8N"Ks+13(s*t~> -nGa!ps7=h5s59)2#I=C,s7Q0es7ufrq"k!i!W2TgrrE&ss8N"Ks+13(s*t~> -nc'*nrr<"p362(!aT@RORH4,B!;c]p"SV`^p\b$j!W2ThrrN)tJcC<$K)^?~> -nc'*nrr<"p362(!aT@RORH4,B!;c]p"SV`^p\b$j!W2ThrrN)tJcC<$K)^?~> -nc'*nrr<"p362(!aT@RORH4,B!;c]p"SV`^p\b$j!W2ThrrN)tJcC<$K)^?~> -mJdQn!,0^)>l`"$[/]jqrsnu+rr;Wds8W#ss7ZEkrVlg#rV69is8@NKJcCH(J,~> -mJdQn!,0^)>l`"$[/]jqrsnu+rr;Wds8W#ss7ZEkrVlg#rV69is8@NKJcCH(J,~> -mJdQn!,0^)>l`"$[/]jqrsnu+rr;Wds8W#ss7ZEkrVlg#rV69is8@NKJcCH(J,~> -nGa!prVt_i%hL/nB(hg[nFcVW&,uV/mY+2oaQrm(q#CBlp&>!krr;uur.4m!s+UK'~> -nGa!prVt_i%hL/nB(hg[nFcVW&,uV/mY+2oaQrm(q#CBlp&>!krr;uur.4m!s+UK'~> -nGa!prVt_i%hL/nB(hg[nFcVW&,uV/mY+2oaQrm(q#CBlp&>!krr;uur.4m!s+UK'~> -nG`sop$_kKQ=sTjnGe>fh>%!arVuokB`JJ\04'4.hXp[Emf*7drdk*#s+:9$~> -nG`sop$_kKQ=sTjnGe>fh>%!arVuokB`JJ\04'4.hXp[Emf*7drdk*#s+:9$~> -nG`sop$_kKQ=sTjnGe>fh>%!arVuokB`JJ\04'4.hXp[Emf*7drdk*#s+:9$~> -nc'-ss8Vinp&EV.s7lVdA*!L\rtY5,leKBS,:aB,'/OgWdI$u6p\=[bJcC<$L&ZZ~> -nc'-ss8Vinp&EV.s7lVdA*!L\rtY5,leKBS,:aB,'/OgWdI$u6p\=[bJcC<$L&ZZ~> -nc'-ss8Vinp&EV.s7lVdA*!L\rtY5,leKBS,:aB,'/OgWdI$u6p\=[bJcC<$L&ZZ~> -li.7gq>L'cs+j\4pAZB:r;-9gs8Uoc\7,IB!!E[K@K66)qu?Q^s4RGPlMp>Os7uQkrs8Slp&G'd -qu-NlrrE%Ls+13Hs*t~> -li.7gq>L'cs+j\4pAZB:r;-9gs8Uoc\7,IB!!E[K@K66)qu?Q^s4RGPlMp>Os7uQkrs8Slp&G'd -qu-NlrrE%Ls+13Hs*t~> -li.7gq>L'cs+j\4pAZB:r;-9gs8Uoc\7,IB!!E[K@K66)qu?Q^s4RGPlMp>Os7uQkrs8Slp&G'd -qu-NlrrE%Ls+13Hs*t~> -li.:hq=*kMs-n)drq?@5rVQKks8N&uq"=[MDGp\rs/Gts8Vicq=O[d -rVZ`qJcC<$V>l&~> -li.:hq=*kMs-n)drq?@5rVQKks8N&uq"=[MDGp\rs/Gts8Vicq=O[d -rVZ`qJcC<$V>l&~> -li.:hq=*kMs-n)drq?@5rVQKks8N&uq"=[MDGp\rs/Gts8Vicq=O[d -rVZ`qJcC<$V>l&~> -li.7hqZ$Ejs4koqp&?$2rVccrq=jI[qt'j`qZ"(LGnCJg!!F -li.7hqZ$Ejs4koqp&?$2rVccrq=jI[qt'j`qZ"(LGnCJg!!F -li.7hqZ$Ejs4koqp&?$2rVccrq=jI[qt'j`qZ"(LGnCJg!!F -li.:jqu?Nhr;Q`rqXsjirVZZorr`9#s6ose*qT=0s7>pEJmSup'+,:gHGAhHs7cKls7Q9hs8Mib -qu?]qJcC<$V>l&~> -li.:jqu?Nhr;Q`rqXsjirVZZorr`9#s6ose*qT=0s7>pEJmSup'+,:gHGAhHs7cKls7Q9hs8Mib -qu?]qJcC<$V>l&~> -li.:jqu?Nhr;Q`rqXsjirVZZorr`9#s6ose*qT=0s7>pEJmSup'+,:gHGAhHs7cKls7Q9hs8Mib -qu?]qJcC<$V>l&~> -n,ECerr39'rV-9jrVZ]kq#:^#s8W)rqu$HgrVQTo./i?,kl:APs8VfmoCCLQ9f`q"'F[Nu\'j3h -s8VTds8N&nqYgElr;D3HJcDPGJ,~> -n,ECerr39'rV-9jrVZ]kq#:^#s8W)rqu$HgrVQTo./i?,kl:APs8VfmoCCLQ9f`q"'F[Nu\'j3h -s8VTds8N&nqYgElr;D3HJcDPGJ,~> -n,ECerr39'rV-9jrVZ]kq#:^#s8W)rqu$HgrVQTo./i?,kl:APs8VfmoCCLQ9f`q"'F[Nu\'j3h -s8VTds8N&nqYgElr;D3HJcDPGJ,~> -n,NFerr36&qu?]qs8W)nru1k8s8Mrnr;HZlr;Zfer;Zfnq>^*Xs8D]grVlg/n_9CY5:mcT,sQ%O -a2%6Fnah>3JcD;@J,~> -n,NFerr36&qu?]qs8W)nru1k8s8Mrnr;HZlr;Zfer;Zfnq>^*Xs8D]grVlg/n_9CY5:mcT,sQ%O -a2%6Fnah>3JcD;@J,~> -n,NFerr36&qu?]qs8W)nru1k8s8Mrnr;HZlr;Zfer;Zfnq>^*Xs8D]grVlg/n_9CY5:mcT,sQ%O -a2%6Fnah>3JcD;@J,~> -n,EFerr)j%rVuN_s8W&jq>UHnrr36%r;?Nks8Vrprs&)ps6BXapAY'ppA4gZn,<8#kNp6@B0-hG -":e4ZVq'hoq#CBnrdk*#s.o[F~> -n,EFerr)j%rVuN_s8W&jq>UHnrr36%r;?Nks8Vrprs&)ps6BXapAY'ppA4gZn,<8#kNp6@B0-hG -":e4ZVq'hoq#CBnrdk*#s.o[F~> -n,EFerr)j%rVuN_s8W&jq>UHnrr36%r;?Nks8Vrprs&)ps6BXapAY'ppA4gZn,<8#kNp6@B0-hG -":e4ZVq'hoq#CBnrdk*#s.o[F~> -n,NFdrVllorVllnp\t6mrVlrtrr2os/,B/Dqu?Kks8N&gs8DHes763iq>L9lo`+sbs4beYB4X=. -!%CWWQGDAHqgncus.o[F~> -n,NFdrVllorVllnp\t6mrVlrtrr2os/,B/Dqu?Kks8N&gs8DHes763iq>L9lo`+sbs4beYB4X=. -!%CWWQGDAHqgncus.o[F~> -n,NFdrVllorVllnp\t6mrVlrtrr2os/,B/Dqu?Kks8N&gs8DHes763iq>L9lo`+sbs4beYB4X=. -!%CWWQGDAHqgncus.o[F~> -Z2ZNUs8DHB\U[LB,leE*99d0)rVHQon,N7ar;$Blo)J^gs8W)us763ir;HZos8VuqqZ$Qns8ITL -JcF0uJ,~> -Z2ZNUs8DHB\U[LB,leE*99d0)rVHQon,N7ar;$Blo)J^gs8W)us763ir;HZos8VuqqZ$Qns8ITL -JcF0uJ,~> -Z2ZNUs8DHB\U[LB,leE*99d0)rVHQon,N7ar;$Blo)J^gs8W)us763ir;HZos8VuqqZ$Qns8ITL -JcF0uJ,~> -Z2ZEJqYU*es8239fs62o#n.4R2,pU6iW&r=s8Vurrr)`or;60]s8W&rr;Zfjp\4^drdk*#s3^js~> -Z2ZEJqYU*es8239fs62o#n.4R2,pU6iW&r=s8Vurrr)`or;60]s8W&rr;Zfjp\4^drdk*#s3^js~> -Z2ZEJqYU*es8239fs62o#n.4R2,pU6iW&r=s8Vurrr)`or;60]s8W&rr;Zfjp\4^drdk*#s3^js~> -Z2Z!Cs8W&ps8W&ts75RFi4b(l4TGU!,\)@toCM;Jr:0gdq>UBtq#CBnqu-Kn!:tdAJcE^hJ,~> -Z2Z!Cs8W&ps8W&ts75RFi4b(l4TGU!,\)@toCM;Jr:0gdq>UBtq#CBnqu-Kn!:tdAJcE^hJ,~> -Z2Z!Cs8W&ps8W&ts75RFi4b(l4TGU!,\)@toCM;Jr:0gdq>UBtq#CBnqu-Kn!:tdAJcE^hJ,~> -Z2Xgurr3,tp[[_Fr;R?(h!aghX]Q\i&HE_"HfFP[rr<#fs8E<$pA4ghp\+C\rVulrJcC<$bQ!(~> -Z2Xgurr3,tp[[_Fr;R?(h!aghX]Q\i&HE_"HfFP[rr<#fs8E<$pA4ghp\+C\rVulrJcC<$bQ!(~> -Z2Xgurr3,tp[[_Fr;R?(h!aghX]Q\i&HE_"HfFP[rr<#fs8E<$pA4ghp\+C\rVulrJcC<$bQ!(~> -Z2Xt)rVZKhrr33!s8W&fnFuq^#lXf&s66VO>7^]5#UNQ&lMp_\q=jjf"TJH$rqucqrr1RM!<.QL -JcGECJ,~> -Z2Xt)rVZKhrr33!s8W&fnFuq^#lXf&s66VO>7^]5#UNQ&lMp_\q=jjf"TJH$rqucqrr1RM!<.QL -JcGECJ,~> -Z2Xt)rVZKhrr33!s8W&fnFuq^#lXf&s66VO>7^]5#UNQ&lMp_\q=jjf"TJH$rqucqrr1RM!<.QL -JcGECJ,~> -YQ$'[QhMjiO%fd:P:UJI0s7ZKjnc/Xds8;ipr;Zcps8M$X -rVhBJJcGECJ,~> -YQ$'[QhMjiO%fd:P:UJI0s7ZKjnc/Xds8;ipr;Zcps8M$X -rVhBJJcGECJ,~> -YQ$'[QhMjiO%fd:P:UJI0s7ZKjnc/Xds8;ipr;Zcps8M$X -rVhBJJcGECJ,~> -WrE/!s7uWn!;ZWo#l45ps8N&uqY'pg'`Q[pF:eri!#.>/]C5^uo^DhTqYpHn#6+Jqqu$EljT#8Z -rr%EJJcGECJ,~> -WrE/!s7uWn!;ZWo#l45ps8N&uqY'pg'`Q[pF:eri!#.>/]C5^uo^DhTqYpHn#6+Jqqu$EljT#8Z -rr%EJJcGECJ,~> -WrE/!s7uWn!;ZWo#l45ps8N&uqY'pg'`Q[pF:eri!#.>/]C5^uo^DhTqYpHn#6+Jqqu$EljT#8Z -rr%EJJcGECJ,~> -YQ+Y%s8;lr'`%e*qZ$L9l#6+DmqYU6j -jT#8Zrr%EJJcGECJ,~> -YQ+Y%s8;lr'`%e*qZ$L9l#6+DmqYU6j -jT#8Zrr%EJJcGECJ,~> -YQ+Y%s8;lr'`%e*qZ$L9l#6+DmqYU6j -jT#8Zrr%EJJcGECJ,~> -O8g6trr<#klH+TV6P'JL&mDB5\aK(hs8Duns7Q9hr;6L$r;Zfpp](9hs8Vimrt=l%s75paq"k$R -o[`K^rr;orn:CUjs8;nI~> -O8g6trr<#klH+TV6P'JL&mDB5\aK(hs8Duns7Q9hr;6L$r;Zfpp](9hs8Vimrt=l%s75paq"k$R -o[`K^rr;orn:CUjs8;nI~> -O8g6trr<#klH+TV6P'JL&mDB5\aK(hs8Duns7Q9hr;6L$r;Zfpp](9hs8Vimrt=l%s75paq"k$R -o[`K^rr;orn:CUjs8;nI~> -OoIrNqtg9ks8;Qir;-H>RX%.>/-?ni@@"g>n,)kZrVuomr;QTlqtg?ds8Duoqu?Ejs7H?krqufr -qu6WiO^(7D@"uMps8VeDs+14Ks*t~> -OoIrNqtg9ks8;Qir;-H>RX%.>/-?ni@@"g>n,)kZrVuomr;QTlqtg?ds8Duoqu?Ejs7H?krqufr -qu6WiO^(7D@"uMps8VeDs+14Ks*t~> -OoIrNqtg9ks8;Qir;-H>RX%.>/-?ni@@"g>n,)kZrVuomr;QTlqtg?ds8Duoqu?Ejs7H?krqufr -qu6WiO^(7D@"uMps8VeDs+14Ks*t~> -OoPFX!<)os)#j*roDejfqr.@uHsT)L&fVruH]mFQp&"ag!;QNm!quZmrVm3!r:Ts`qu?]gr;Q^& -raZ!_81"j -OoPFX!<)os)#j*roDejfqr.@uHsT)L&fVruH]mFQp&"ag!;QNm!quZmrVm3!r:Ts`qu?]gr;Q^& -raZ!_81"j -OoPFX!<)os)#j*roDejfqr.@uHsT)L&fVruH]mFQp&"ag!;QNm!quZmrVm3!r:Ts`qu?]gr;Q^& -raZ!_81"j -NW9%XrVm*$qYpHnp%\Od)=+r!?s,T#"Yi;bSuCiNrVuWaq>^KgqZ$HlrrDoprt>8/s7u]np]">& -hrNUU'USjrrdk*#s8DtJ~> -NW9%XrVm*$qYpHnp%\Od)=+r!?s,T#"Yi;bSuCiNrVuWaq>^KgqZ$HlrrDoprt>8/s7u]np]">& -hrNUU'USjrrdk*#s8DtJ~> -NW9%XrVm*$qYpHnp%\Od)=+r!?s,T#"Yi;bSuCiNrVuWaq>^KgqZ$HlrrDoprt>8/s7u]np]">& -hrNUU'USjrrdk*#s8DtJ~> -NW2' -NW2' -NW2' -NW9%Xs8N3!s8Mrlrr`5srUp-h%bTXmYE;N[#n@/!>Emn;r;RSmN8+C1o)J7Zo)Ja[B`g_-<$+'L -r;6DCs+14Ks*t~> -NW9%Xs8N3!s8Mrlrr`5srUp-h%bTXmYE;N[#n@/!>Emn;r;RSmN8+C1o)J7Zo)Ja[B`g_-<$+'L -r;6DCs+14Ks*t~> -NW9%Xs8N3!s8Mrlrr`5srUp-h%bTXmYE;N[#n@/!>Emn;r;RSmN8+C1o)J7Zo)Ja[B`g_-<$+'L -r;6DCs+14Ks*t~> -OoGO_rVc`os$-D\rVuolrq?Bdp\Ogcs8Vupp\XU_s6]IHg!>://dq^u.pedVf_`5e?Inr:s8V]e -s8)G2!ZV=UA((DUs6kO=JcG]KJ,~> -OoGO_rVc`os$-D\rVuolrq?Bdp\Ogcs8Vupp\XU_s6]IHg!>://dq^u.pedVf_`5e?Inr:s8V]e -s8)G2!ZV=UA((DUs6kO=JcG]KJ,~> -OoGO_rVc`os$-D\rVuolrq?Bdp\Ogcs8Vupp\XU_s6]IHg!>://dq^u.pedVf_`5e?Inr:s8V]e -s8)G2!ZV=UA((DUs6kO=JcG]KJ,~> -OT,jjrVlisrVHQorVulls8W&qs"O9HqZ$Tls6'+Ho`+dfqZ$Sn_eB)N'EA\94pM&kXoJFurVuHb -s$RR[Qj7@)s8D_Ds+14Js*t~> -OT,jjrVlisrVHQorVulls8W&qs"O9HqZ$Tls6'+Ho`+dfqZ$Sn_eB)N'EA\94pM&kXoJFurVuHb -s$RR[Qj7@)s8D_Ds+14Js*t~> -OT,jjrVlisrVHQorVulls8W&qs"O9HqZ$Tls6'+Ho`+dfqZ$Sn_eB)N'EA\94pM&kXoJFurVuHb -s$RR[Qj7@)s8D_Ds+14Js*t~> -JcG9?#Q=Moq>C0cp&=t2r6fU^":,#.%KN!us82cmmJC>mrqBCmX8f=i]n-37s8DtJ~> -JcG9?#Q=Moq>C0cp&=t2r6fU^":,#.%KN!us82cmmJC>mrqBCmX8f=i]n-37s8DtJ~> -JcG9?#Q=Moq>C0cp&=t2r6fU^":,#.%KN!us82cmmJC>mrqBCmX8f=i]n-37s8DtJ~> -JcG*:')qk,r;ZTms6BXJ0*2Ri$5JWor;R+&!<;cH)_BG;^uL"GJcG]KJ,~> -JcG*:')qk,r;ZTms6BXJ0*2Ri$5JWor;R+&!<;cH)_BG;^uL"GJcG]KJ,~> -JcG*:')qk,r;ZTms6BXJ0*2Ri$5JWor;R+&!<;cH)_BG;^uL"GJcG]KJ,~> -JcG0<,lIK5q>9mcmdgDGs8P+i$6PA%e,K.>q>C7p"SVNdGlWQYGe&D*JcG]KJ,~> -JcG0<,lIK5q>9mcmdgDGs8P+i$6PA%e,K.>q>C7p"SVNdGlWQYGe&D*JcG]KJ,~> -JcG0<,lIK5q>9mcmdgDGs8P+i$6PA%e,K.>q>C7p"SVNdGlWQYGe&D*JcG]KJ,~> -JcGQGq>UEm-2dQ1oCi"Rs8)]olg4(gbNS -JcGQGq>UEm-2dQ1oCi"Rs8)]olg4(gbNS -JcGQGq>UEm-2dQ1oCi"Rs8)]olg4(gbNS -JcGQGq>UBn#Q=Glqu6Bjr;?R)o)J4SkPtJ[r;Q`ps8VTfs8V`opqe_nJcC<$rVqB~> -JcGQGq>UBn#Q=Glqu6Bjr;?R)o)J4SkPtJ[r;Q`ps8VTfs8V`opqe_nJcC<$rVqB~> -JcGQGq>UBn#Q=Glqu6Bjr;?R)o)J4SkPtJ[r;Q`ps8VTfs8V`opqe_nJcC<$rVqB~> -JcG-;%K65(s8;okrqZHas8Vuqrt>))s82Efs7H?krUp3ds8TeF[=S@/s8DtJ~> -JcG-;%K65(s8;okrqZHas8Vuqrt>))s82Efs7H?krUp3ds8TeF[=S@/s8DtJ~> -JcG-;%K65(s8;okrqZHas8Vuqrt>))s82Efs7H?krUp3ds8TeF[=S@/s8DtJ~> -JcG6>#6+T#s8W)squ7!%s8Vlin,N7arr)j)r:p -JcG6>#6+T#s8W)squ7!%s8Vlin,N7arr)j)r:p -JcG6>#6+T#s8W)squ7!%s8Vlin,N7arr)j)r:p -JcG3=!<)lr(B4@/q>^*erquQks82iro`+ggo_\[drr33%oDegL`p/-TJcG]KJ,~> -JcG3=!<)lr(B4@/q>^*erquQks82iro`+ggo_\[drr33%oDegL`p/-TJcG]KJ,~> -JcG3=!<)lr(B4@/q>^*erquQks82iro`+ggo_\[drr33%oDegL`p/-TJcG]KJ,~> -JcF-t#QFVus8W#orIP!"s8DtJ~> -JcF-t#QFVus8W#orIP!"s8DtJ~> -JcF-t#QFVus8W#orIP!"s8DtJ~> -JcF*ss82ir!rVroJcC<$rVqB~> -JcF*ss82ir!rVroJcC<$rVqB~> -JcF*ss82ir!rVroJcC<$rVqB~> -JcF*s#5e8rs8DloJcC<$rVqB~> -JcF*s#5e8rs8DloJcC<$rVqB~> -JcF*s#5e8rs8DloJcC<$rVqB~> -JcF*s#5e5ps8MurJcC<$rVqB~> -JcF*s#5e5ps8MurJcC<$rVqB~> -JcF*s#5e5ps8MurJcC<$rVqB~> -%%EndData -showpage -%%Trailer -end -%%EOF Binary files /tmp/zz7qDbRg57/d-itg-2.8.1-r1023/doc/fig/jitter.jpg and /tmp/xs8_72e9jJ/d-itg-2.8.1-r1023/doc/fig/jitter.jpg differ Binary files /tmp/zz7qDbRg57/d-itg-2.8.1-r1023/doc/fig/jitter.png and /tmp/xs8_72e9jJ/d-itg-2.8.1-r1023/doc/fig/jitter.png differ