diff --git a/bn.ilg b/bn.ilg new file mode 100644 index 0000000..d2b5862 --- /dev/null +++ b/bn.ilg @@ -0,0 +1,6 @@ +This is makeindex, version 2.14 [02-Oct-2002] (kpathsea + Thai support). +Scanning input file bn.idx....done (53 entries accepted, 0 rejected). +Sorting entries....done (317 comparisons). +Generating output file bn.ind....done (56 lines written, 0 warnings). +Output written in bn.ind. +Transcript written in bn.ilg. diff --git a/bn.ind b/bn.ind new file mode 100644 index 0000000..da10a3d --- /dev/null +++ b/bn.ind @@ -0,0 +1,56 @@ +\begin{theindex} + + \item mp\_add, \hyperpage{23} + \item mp\_and, \hyperpage{23} + \item mp\_clear, \hyperpage{7} + \item mp\_clear\_multi, \hyperpage{8} + \item mp\_cmp, \hyperpage{18} + \item mp\_cmp\_d, \hyperpage{20} + \item mp\_cmp\_mag, \hyperpage{17} + \item mp\_div, \hyperpage{29} + \item mp\_div\_2, \hyperpage{21} + \item mp\_div\_2d, \hyperpage{22} + \item MP\_EQ, \hyperpage{17} + \item mp\_error\_to\_string, \hyperpage{6} + \item mp\_expt\_d, \hyperpage{31} + \item mp\_exptmod, \hyperpage{31} + \item mp\_gcd, \hyperpage{39} + \item mp\_grow, \hyperpage{12} + \item MP\_GT, \hyperpage{17} + \item mp\_init, \hyperpage{7} + \item mp\_init\_copy, \hyperpage{9} + \item mp\_init\_multi, \hyperpage{8} + \item mp\_init\_size, \hyperpage{10} + \item mp\_int, \hyperpage{6} + \item mp\_invmod, \hyperpage{40} + \item mp\_jacobi, \hyperpage{39} + \item mp\_lcm, \hyperpage{39} + \item mp\_lshd, \hyperpage{23} + \item MP\_LT, \hyperpage{17} + \item MP\_MEM, \hyperpage{5} + \item mp\_mul, \hyperpage{25} + \item mp\_mul\_2, \hyperpage{21} + \item mp\_mul\_2d, \hyperpage{22} + \item mp\_n\_root, \hyperpage{31} + \item mp\_neg, \hyperpage{24} + \item MP\_NO, \hyperpage{5} + \item MP\_OKAY, \hyperpage{5} + \item mp\_or, \hyperpage{23} + \item mp\_prime\_fermat, \hyperpage{33} + \item mp\_prime\_is\_divisible, \hyperpage{33} + \item mp\_prime\_is\_prime, \hyperpage{34} + \item mp\_prime\_miller\_rabin, \hyperpage{33} + \item mp\_prime\_next\_prime, \hyperpage{34} + \item mp\_prime\_rabin\_miller\_trials, \hyperpage{34} + \item mp\_prime\_random, \hyperpage{35} + \item mp\_rshd, \hyperpage{23} + \item mp\_set, \hyperpage{15} + \item mp\_set\_int, \hyperpage{16} + \item mp\_shrink, \hyperpage{11} + \item mp\_sqr, \hyperpage{25} + \item mp\_sub, \hyperpage{23} + \item MP\_VAL, \hyperpage{5} + \item mp\_xor, \hyperpage{23} + \item MP\_YES, \hyperpage{5} + +\end{theindex} diff --git a/bn.pdf b/bn.pdf index 0fe6beb..aab035b 100644 Binary files a/bn.pdf and b/bn.pdf differ diff --git a/bn.tex b/bn.tex index 2fc284d..0c1f6a3 100644 --- a/bn.tex +++ b/bn.tex @@ -1,1063 +1,1219 @@ -\documentclass[]{article} +\documentclass[b5paper]{book} +\usepackage{hyperref} +\usepackage{makeidx} +\usepackage{amssymb} +\usepackage{color} +\usepackage{alltt} +\usepackage{graphicx} +\usepackage{layout} +\def\union{\cup} +\def\intersect{\cap} +\def\getsrandom{\stackrel{\rm R}{\gets}} +\def\cross{\times} +\def\cat{\hspace{0.5em} \| \hspace{0.5em}} +\def\catn{$\|$} +\def\divides{\hspace{0.3em} | \hspace{0.3em}} +\def\nequiv{\not\equiv} +\def\approx{\raisebox{0.2ex}{\mbox{\small $\sim$}}} +\def\lcm{{\rm lcm}} +\def\gcd{{\rm gcd}} +\def\log{{\rm log}} +\def\ord{{\rm ord}} +\def\abs{{\mathit abs}} +\def\rep{{\mathit rep}} +\def\mod{{\mathit\ mod\ }} +\renewcommand{\pmod}[1]{\ ({\rm mod\ }{#1})} +\newcommand{\floor}[1]{\left\lfloor{#1}\right\rfloor} +\newcommand{\ceil}[1]{\left\lceil{#1}\right\rceil} +\def\Or{{\rm\ or\ }} +\def\And{{\rm\ and\ }} +\def\iff{\hspace{1em}\Longleftrightarrow\hspace{1em}} +\def\implies{\Rightarrow} +\def\undefined{{\rm ``undefined"}} +\def\Proof{\vspace{1ex}\noindent {\bf Proof:}\hspace{1em}} +\let\oldphi\phi +\def\phi{\varphi} +\def\Pr{{\rm Pr}} +\newcommand{\str}[1]{{\mathbf{#1}}} +\def\F{{\mathbb F}} +\def\N{{\mathbb N}} +\def\Z{{\mathbb Z}} +\def\R{{\mathbb R}} +\def\C{{\mathbb C}} +\def\Q{{\mathbb Q}} +\definecolor{DGray}{gray}{0.5} +\newcommand{\emailaddr}[1]{\mbox{$<${#1}$>$}} +\def\twiddle{\raisebox{0.3ex}{\mbox{\tiny $\sim$}}} +\def\gap{\vspace{0.5ex}} +\makeindex \begin{document} - -\title{LibTomMath v0.27 \\ A Free Multiple Precision Integer Library \\ http://math.libtomcrypt.org } +\frontmatter +\pagestyle{empty} +\title{LibTomMath User Manual \\ v0.28} \author{Tom St Denis \\ tomstdenis@iahu.ca} \maketitle -\newpage +This text, the library and the accompanying textbook are all hereby placed in the public domain. This book has been +formatted for B5 [176x250] paper using the \LaTeX{} {\em book} macro package. -\section{Introduction} -``LibTomMath'' is a free and open source library that provides multiple-precision integer functions required to form a -basis of a public key cryptosystem. LibTomMath is written entire in portable ISO C source code and designed to have an -application interface much like that of MPI from Michael Fromberger. +\vspace{10cm} -LibTomMath was written from scratch by Tom St Denis but designed to be drop in replacement for the MPI package. The -algorithms within the library are derived from descriptions as provided in the Handbook of Applied Cryptography and Knuth's -``The Art of Computer Programming''. The library has been extensively optimized and should provide quite comparable -timings as compared to many free and commercial libraries. +\begin{flushright}Open Source. Open Academia. Open Minds. -LibTomMath was designed with the following goals in mind: -\begin{enumerate} -\item Be a drop in replacement for MPI. -\item Be much faster than MPI. -\item Be written entirely in portable C. -\end{enumerate} +\mbox{ } -All three goals have been achieved to one extent or another (actual figures depend on what platform you are using). +Tom St Denis, -Being compatible with MPI means that applications that already use it can be ported fairly quickly. Currently there are -a few differences but there are many similarities. In fact the average MPI based application can be ported in under 15 -minutes. +Ontario, Canada +\end{flushright} -Thanks goes to Michael Fromberger for answering a couple questions and Colin Percival for having the patience and courtesy to -help debug and suggest optimizations. They were both of great help! +\tableofcontents +\listoffigures +\mainmatter +\pagestyle{headings} +\chapter{Introduction} +\section{What is LibTomMath?} +LibTomMath is a library of source code which provides a series of efficient and carefully written functions for manipulating +large integer numbers. It was written in portable ISO C source code so that it will build on any platform with a conforming +C compiler. -\section{Building Against LibTomMath} +In a nutshell the library was written from scratch with verbose comments to help instruct computer science students how +to implement ``bignum'' math. However, the resulting code has proven to be very useful. It has been used by numerous +universities, commercial and open source software developers. It has been used on a variety of platforms ranging from +Linux and Windows based x86 to ARM based Gameboys and PPC based MacOS machines. -As of v0.12 LibTomMath is not a simple single source file project like MPI. LibTomMath retains the exact same API as MPI -but is implemented differently. To build LibTomMath you will need a copy of GNU cc and GNU make. Both are free so if you -don't have a copy don't whine to me about it. +\section{License} +As of the v0.25 the library source code has been placed in the public domain with every new release. As of the v0.28 +release the textbook ``Implementing Multiple Precision Arithmetic'' has been placed in the public domain with every new +release as well. This textbook is meant to compliment the project by providing a more solid walkthrough of the development +algorithms used in the library. -To build the library type +Since both\footnote{Note that the MPI files under mtest/ are copyrighted by Michael Fromberger.} are in the +public domain everyone is entitled to do with them as they see fit. -\begin{verbatim} +\section{Building LibTomMath} + +LibTomMath is meant to be very ``GCC friendly'' as it comes with a makefile well suited for GCC. However, the library will +also build in MSVC, Borland C out of the box. For any other ISO C compiler a makefile will have to be made by the end +developer. + +To build the library for GCC simply issue the + +\begin{alltt} make -\end{verbatim} +\end{alltt} -This will build the library file libtommath.a. If you want to build the library and also install it (in /usr/bin and /usr/include) then -type +command. This will build the library and archive the object files in ``libtommath.a''. Now you simply link against that +and include ``tommath.h'' within your programs. -\begin{verbatim} -make install -\end{verbatim} +Alternatively to build with MSVC type -Now within your application include ``tommath.h'' and link against libtommath.a to get MPI-like functionality. - -\subsection{Microsoft Visual C++} -A makefile is also provided for MSVC (\textit{tested against MSVC 6.00 with SP5}) which allows the library to be used -with that compiler as well. To build the library type - -\begin{verbatim} +\begin{alltt} nmake -f makefile.msvc -\end{verbatim} +\end{alltt} -Which will build ``tommath.lib''. +This will build the library and archive the object files in ``tommath.lib''. This has been tested with MSVC version 6.00 +with service pack 5. -\section{Programming with LibTomMath} +Tbere is limited support for making a ``DLL'' in windows via the ``makefile.cygwin\_dll'' makefile. It requires Cygwin +to work with since it requires the auto-export/import functionality. The resulting DLL and imprt library ``libtomcrypt.dll.a'' +can be used to link LibTomMath dynamically to any Windows program using Cygwin. -\subsection{The mp\_int Structure} -All multiple precision integers are stored in a structure called \textbf{mp\_int}. A multiple precision integer is -essentially an array of \textbf{mp\_digit}. mp\_digit is defined at the top of ``tommath.h''. The type can be changed -to suit a particular platform. +\subsection{Testing} +To build the library and the test harness type -For example, when \textbf{MP\_8BIT} is defined a mp\_digit is a unsigned char and holds seven bits. Similarly -when \textbf{MP\_16BIT} is defined a mp\_digit is a unsigned short and holds 15 bits. By default a mp\_digit is a -unsigned long and holds 28 bits which is optimal for most 32 and 64 bit processors. +\begin{alltt} +make test +\end{alltt} -The choice of digit is particular to the platform at hand and what available multipliers are provided. For -MP\_8BIT either a $8 \times 8 \Rightarrow 16$ or $16 \times 16 \Rightarrow 16$ multiplier is optimal. When -MP\_16BIT is defined either a $16 \times 16 \Rightarrow 32$ or $32 \times 32 \Rightarrow 32$ multiplier is optimal. By -default a $32 \times 32 \Rightarrow 64$ or $64 \times 64 \Rightarrow 64$ multiplier is optimal. +This will build the library, ``test'' and ``mtest/mtest''. The ``test'' program will accept test vectors and verify the +results. ``mtest/mtest'' will generate test vectors using the MPI library by Michael Fromberger\footnote{A copy of MPI +is included in the package}. Simply pipe mtest into test using -This gives the library some flexibility. For example, a i8051 has a $8 \times 8 \Rightarrow 16$ multiplier. The -16-bit x86 instruction set has a $16 \times 16 \Rightarrow 32$ multiplier. In practice this library is not particularly -designed for small devices like an i8051 due to the size. It is possible to strip out functions which are not required -to drop the code size. More realistically the library is well suited to 32 and 64-bit processors that have decent -integer multipliers. The AMD Athlon XP and Intel Pentium 4 processors are examples of well suited processors. +\begin{alltt} +mtest/mtest | test +\end{alltt} -Throughout the discussions there will be references to a \textbf{used} and \textbf{alloc} members of an integer. The -used member refers to how many digits are actually used in the representation of the integer. The alloc member refers -to how many digits have been allocated off the heap. There is also the $\beta$ quantity which is equal to $2^W$ where -$W$ is the number of bits in a digit (default is 28). +If you do not have a ``/dev/urandom'' style RNG source you will have to write your own PRNG and simply pipe that into +mtest. For example, if your PRNG program is called ``myprng'' simply invoke -\subsection{Calling Functions} -Most functions expect pointers to mp\_int's as parameters. To save on memory usage it is possible to have source -variables as destinations. The arguements are read left to right so to compute $x + y = z$ you would pass the arguments -in the order $x, y, z$. For example: -\begin{verbatim} - mp_add(&x, &y, &x); /* x = x + y */ - mp_mul(&y, &x, &z); /* z = y * x */ - mp_div_2(&x, &y); /* y = x / 2 */ -\end{verbatim} +\begin{alltt} +myprng | mtest/mtest | test +\end{alltt} -\subsection{Various Optimizations} -Various routines come in several ``flavours'' which are optimized for particular cases of inputs. For instance -the multiplicative inverse function ``mp\_invmod()'' has a routine for odd and even moduli. Similarly the -``mp\_exptmod()'' function has several variants depending on the modulus as well. Several lower level -functions such as multiplication, squaring and reductions come in ``comba'' and ``baseline'' variants. +This will output a row of numbers that are increasing. Each column is a different test (such as addition, multiplication, etc) +that is being performed. The numbers represent how many times the test was invoked. If an error is detected the program +will exit with a dump of the relevent numbers it was working with. -The design of LibTomMath is such that the end user does not have to concern themselves too much with these -details. This is why the functions provided will determine \textit{automatically} when an appropriate -optimal function can be used. For example, when you call ``mp\_mul()'' the routines will first determine -if the Karatsuba multiplier should be used. If not it will determine if the ``comba'' method can be used -and finally call the standard catch-all ``baseline'' method. +\section{Purpose of LibTomMath} +Unlike GNU MP (GMP) Library, LIP, OpenSSL or various other commercial kits (Miracl), LibTomMath was not written with +bleeding edge performance in mind. First and foremost LibTomMath was written to be entirely open. Not only is the +source code public domain (unlike various other GPL/etc licensed code), not only is the code freely downloadable but the +source code is also accessible for computer science students attempting to learn ``BigNum'' or multiple precision +arithmetic techniques. -Throughout the rest of this manual several variants for various functions will be referenced to as -the ``comba'', ``baseline'', etc... method. Keep in mind you call one function to use any of the optimal -variants. +LibTomMath was written to be an instructive collection of source code. This is why there are many comments, only one +function per source file and often I use a ``middle-road'' approach where I don't cut corners for an extra 2\% speed +increase. -\subsection{Return Values} -All functions that return errors will return \textbf{MP\_OKAY} if the function was succesful. It will return -\textbf{MP\_MEM} if it ran out of heap memory or \textbf{MP\_VAL} if one of the arguements is out of range. +Source code alone cannot really teach how the algorithms work which is why I also wrote a textbook that accompanies +the library (beat that!). -\subsection{Basic Functionality} -Before an mp\_int can be used it must be initialized with +So you may be thinking ``should I use LibTomMath?'' and the answer is a definite maybe. Let me tabulate what I think +are the pros and cons of LibTomMath by comparing it to the math routines from GnuPG\footnote{GnuPG v1.2.3 versus LibTomMath v0.28}. -\begin{verbatim} -int mp_init(mp_int *a); -\end{verbatim} +\newpage\begin{figure}[here] +\begin{small} +\begin{center} +\begin{tabular}{|l|c|c|l|} +\hline \textbf{Criteria} & \textbf{Pro} & \textbf{Con} & \textbf{Notes} \\ +\hline Few lines of code per file & X & & GnuPG $ = 300.9$, LibTomMath $ = 76.04$ \\ +\hline Commented function prototypes & X && GnuPG function names are cryptic. \\ +\hline Speed && X & LibTomMath is slower. \\ +\hline Totally free & X & & GPL has unfavourable restrictions.\\ +\hline Large function base & X & & GnuPG is barebones. \\ +\hline Four modular reduction algorithms & X & & Faster modular exponentiation. \\ +\hline Portable & X & & GnuPG requires configuration to build. \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{LibTomMath Valuation} +\end{figure} -For example, consider the following. +It may seem odd to compare LibTomMath to GnuPG since the math in GnuPG is only a small portion of the entire application. +However, LibTomMath was written with cryptography in mind. It provides essentially all of the functions a cryptosystem +would require when working with large integers. -\begin{verbatim} -#include "tommath.h" +So it may feel tempting to just rip the math code out of GnuPG (or GnuMP where it was taken from originally) in your +own application but I think there are reasons not to. While LibTomMath is slower than libraries such as GnuMP it is +not normally significantly slower. On x86 machines the difference is normally a factor of two when performing modular +exponentiations. + +Essentially the only time you wouldn't use LibTomMath is when blazing speed is the primary concern. + +\chapter{Getting Started with LibTomMath} +\section{Building Programs} +In order to use LibTomMath you must include ``tommath.h'' and link against the appropriate library file (typically +libtommath.a). There is no library initialization required and the entire library is thread safe. + +\section{Return Codes} +There are three possible return codes a function may return. + +\index{MP\_OKAY}\index{MP\_YES}\index{MP\_NO}\index{MP\_VAL}\index{MP\_MEM} +\begin{figure}[here!] +\begin{center} +\begin{small} +\begin{tabular}{|l|l|} +\hline \textbf{Code} & \textbf{Meaning} \\ +\hline MP\_OKAY & The function succeeded. \\ +\hline MP\_VAL & The function input was invalid. \\ +\hline MP\_MEM & Heap memory exhausted. \\ +\hline &\\ +\hline MP\_YES & Response is yes. \\ +\hline MP\_NO & Response is no. \\ +\hline +\end{tabular} +\end{small} +\end{center} +\caption{Return Codes} +\end{figure} + +The last two codes listed are not actually ``return'ed'' by a function. They are placed in an integer (the caller must +provide the address of an integer it can store to) which the caller can access. To convert one of the three return codes +to a string use the following function. + +\index{mp\_error\_to\_string} +\begin{alltt} +char *mp_error_to_string(int code); +\end{alltt} + +This will return a pointer to a string which describes the given error code. It will not work for the return codes +MP\_YES and MP\_NO. + +\section{Data Types} +The basic ``multiple precision integer'' type is known as the ``mp\_int'' within LibTomMath. This data type is used to +organize all of the data required to manipulate the integer it represents. Within LibTomMath it has been prototyped +as the following. + +\index{mp\_int} +\begin{alltt} +typedef struct \{ + int used, alloc, sign; + mp_digit *dp; +\} mp_int; +\end{alltt} + +Where ``mp\_digit'' is a data type that represents individual digits of the integer. By default, an mp\_digit is the +ISO C ``unsigned long'' data type and each digit is $28-$bits long. The mp\_digit type can be configured to suit other +platforms by defining the appropriate macros. + +All LTM functions that use the mp\_int type will expect a pointer to mp\_int structure. You must allocate memory to +hold the structure itself by yourself (whether off stack or heap it doesn't matter). The very first thing that must be +done to use an mp\_int is that it must be initialized. + +\section{Function Organization} + +The arithmetic functions of the library are all organized to have the same style prototype. That is source operands +are passed on the left and the destination is on the right. For instance, + +\begin{alltt} +mp_add(&a, &b, &c); /* c = a + b */ +mp_mul(&a, &a, &c); /* c = a * a */ +mp_div(&a, &b, &c, &d); /* c = [a/b], d = a mod b */ +\end{alltt} + +Another feature of the way the functions have been implemented is that source operands can be destination operands as well. +For instance, + +\begin{alltt} +mp_add(&a, &b, &b); /* b = a + b */ +mp_div(&a, &b, &a, &c); /* a = [a/b], c = a mod b */ +\end{alltt} + +This allows operands to be re-used which can make programming simpler. + +\section{Initialization} +\subsection{Single Initialization} +A single mp\_int can be initialized with the ``mp\_init'' function. + +\index{mp\_init} +\begin{alltt} +int mp_init (mp_int * a); +\end{alltt} + +This function expects a pointer to an mp\_int structure and will initialize the members of the structure so the mp\_int +represents the default integer which is zero. If the functions returns MP\_OKAY then the mp\_int is ready to be used +by the other LibTomMath functions. + +\begin{small} \begin{alltt} int main(void) -{ - mp_int num; - if (mp_init(&num) != MP_OKAY) { - printf("Error initializing a mp_int.\n"); - } - return 0; -} -\end{verbatim} - -A mp\_int can be freed from memory with - -\begin{verbatim} -void mp_clear(mp_int *a); -\end{verbatim} - -This will zero the memory and free the allocated data. There are a set of trivial functions to manipulate the -value of an mp\_int. - -\begin{verbatim} -/* set to zero */ -void mp_zero(mp_int *a); - -/* set to a digit */ -void mp_set(mp_int *a, mp_digit b); - -/* set a 32-bit const */ -int mp_set_int(mp_int *a, unsigned long b); - -/* init to a given number of digits */ -int mp_init_size(mp_int *a, int size); - -/* copy, b = a */ -int mp_copy(mp_int *a, mp_int *b); - -/* inits and copies, a = b */ -int mp_init_copy(mp_int *a, mp_int *b); -\end{verbatim} - -The \textbf{mp\_zero} function will clear the contents of a mp\_int and set it to positive. The \textbf{mp\_set} function -will zero the integer and set the first digit to a value specified. The \textbf{mp\_set\_int} function will zero the -integer and set the first 32-bits to a given value. It is important to note that using mp\_set can have unintended -side effects when either the MP\_8BIT or MP\_16BIT defines are enabled. By default the library will accept the -ranges of values MPI will (and more). - -The \textbf{mp\_init\_size} function will initialize the integer and set the allocated size to a given value. The -allocated digits are zero'ed by default but not marked as used. The \textbf{mp\_copy} function will copy the digits -(and sign) of the first parameter into the integer specified by the second parameter. The \textbf{mp\_init\_copy} will -initialize the first integer specified and copy the second one into it. Note that the order is reversed from that of -mp\_copy. This odd ``bug'' was kept to maintain compatibility with MPI. - -\subsection{Digit Manipulations} - -There are a class of functions that provide simple digit manipulations such as shifting and modulo reduction of powers -of two. - -\begin{verbatim} -/* right shift by "b" digits */ -void mp_rshd(mp_int *a, int b); - -/* left shift by "b" digits */ -int mp_lshd(mp_int *a, int b); - -/* c = a / 2^b */ -int mp_div_2d(mp_int *a, int b, mp_int *c); - -/* b = a/2 */ -int mp_div_2(mp_int *a, mp_int *b); - -/* c = a * 2^b */ -int mp_mul_2d(mp_int *a, int b, mp_int *c); - -/* b = a*2 */ -int mp_mul_2(mp_int *a, mp_int *b); - -/* c = a mod 2^d */ -int mp_mod_2d(mp_int *a, int b, mp_int *c); - -/* computes a = 2^b */ -int mp_2expt(mp_int *a, int b); - -/* makes a pseudo-random int of a given size */ -int mp_rand(mp_int *a, int digits); - -\end{verbatim} - -\subsection{Binary Operations} - -\begin{verbatim} - -/* c = a XOR b */ -int mp_xor(mp_int *a, mp_int *b, mp_int *c); - -/* c = a OR b */ -int mp_or(mp_int *a, mp_int *b, mp_int *c); - -/* c = a AND b */ -int mp_and(mp_int *a, mp_int *b, mp_int *c); - -\end{verbatim} - -\subsection{Basic Arithmetic} - -Next are the class of functions which provide basic arithmetic. - -\begin{verbatim} -/* b = -a */ -int mp_neg(mp_int *a, mp_int *b); - -/* b = |a| */ -int mp_abs(mp_int *a, mp_int *b); - -/* compare a to b */ -int mp_cmp(mp_int *a, mp_int *b); - -/* compare |a| to |b| */ -int mp_cmp_mag(mp_int *a, mp_int *b); - -/* c = a + b */ -int mp_add(mp_int *a, mp_int *b, mp_int *c); - -/* c = a - b */ -int mp_sub(mp_int *a, mp_int *b, mp_int *c); - -/* c = a * b */ -int mp_mul(mp_int *a, mp_int *b, mp_int *c); - -/* b = a^2 */ -int mp_sqr(mp_int *a, mp_int *b); - -/* a/b => cb + d == a */ -int mp_div(mp_int *a, mp_int *b, mp_int *c, mp_int *d); - -/* c = a mod b, 0 <= c < b */ -int mp_mod(mp_int *a, mp_int *b, mp_int *c); -\end{verbatim} - -\subsection{Single Digit Functions} - -\begin{verbatim} -/* compare against a single digit */ -int mp_cmp_d(mp_int *a, mp_digit b); - -/* c = a + b */ -int mp_add_d(mp_int *a, mp_digit b, mp_int *c); - -/* c = a - b */ -int mp_sub_d(mp_int *a, mp_digit b, mp_int *c); - -/* c = a * b */ -int mp_mul_d(mp_int *a, mp_digit b, mp_int *c); - -/* a/b => cb + d == a */ -int mp_div_d(mp_int *a, mp_digit b, mp_int *c, mp_digit *d); - -/* c = a^b */ -int mp_expt_d(mp_int *a, mp_digit b, mp_int *c); - -/* c = a mod b, 0 <= c < b */ -int mp_mod_d(mp_int *a, mp_digit b, mp_digit *c); -\end{verbatim} - -Note that care should be taken for the value of the digit passed. By default, any 28-bit integer is a valid digit that can -be passed into the function. However, if MP\_8BIT or MP\_16BIT is defined only 7 or 15-bit (respectively) integers -can be passed into it. - -\subsection{Modular Arithmetic} - -There are some trivial modular arithmetic functions. - -\begin{verbatim} -/* d = a + b (mod c) */ -int mp_addmod(mp_int *a, mp_int *b, mp_int *c, mp_int *d); - -/* d = a - b (mod c) */ -int mp_submod(mp_int *a, mp_int *b, mp_int *c, mp_int *d); - -/* d = a * b (mod c) */ -int mp_mulmod(mp_int *a, mp_int *b, mp_int *c, mp_int *d); - -/* c = a * a (mod b) */ -int mp_sqrmod(mp_int *a, mp_int *b, mp_int *c); - -/* c = 1/a (mod b) */ -int mp_invmod(mp_int *a, mp_int *b, mp_int *c); - -/* c = (a, b) */ -int mp_gcd(mp_int *a, mp_int *b, mp_int *c); - -/* c = [a, b] or (a*b)/(a, b) */ -int mp_lcm(mp_int *a, mp_int *b, mp_int *c); - -/* find the b'th root of a */ -int mp_n_root(mp_int *a, mp_digit b, mp_int *c); - -/* computes the jacobi c = (a | n) (or Legendre if b is prime) */ -int mp_jacobi(mp_int *a, mp_int *n, int *c); - -/* used to setup the Barrett reduction for a given modulus b */ -int mp_reduce_setup(mp_int *a, mp_int *b); - -/* Barrett Reduction, computes a (mod b) with a precomputed value c - * - * Assumes that 0 < a <= b^2, note if 0 > a > -(b^2) then you can merely - * compute the reduction as -1 * mp_reduce(mp_abs(a)) [pseudo code]. - */ -int mp_reduce(mp_int *a, mp_int *b, mp_int *c); - -/* setups the montgomery reduction */ -int mp_montgomery_setup(mp_int *a, mp_digit *mp); - -/* computes xR^-1 == x (mod N) via Montgomery Reduction */ -int mp_montgomery_reduce(mp_int *a, mp_int *m, mp_digit mp); - -/* returns 1 if a is a valid DR modulus */ -int mp_dr_is_modulus(mp_int *a); - -/* sets the value of "d" required for mp_dr_reduce */ -void mp_dr_setup(mp_int *a, mp_digit *d); - -/* reduces a modulo b using the Diminished Radix method */ -int mp_dr_reduce(mp_int *a, mp_int *b, mp_digit mp); - -/* d = a^b (mod c) */ -int mp_exptmod(mp_int *a, mp_int *b, mp_int *c, mp_int *d); -\end{verbatim} - -\subsection{Primality Routines} -\begin{verbatim} -/* ---> Primes <--- */ -/* table of first 256 primes */ -extern const mp_digit __prime_tab[]; - -/* result=1 if a is divisible by one of the first 256 primes */ -int mp_prime_is_divisible(mp_int *a, int *result); - -/* performs one Fermat test of "a" using base "b". - * Sets result to 0 if composite or 1 if probable prime - */ -int mp_prime_fermat(mp_int *a, mp_int *b, int *result); - -/* performs one Miller-Rabin test of "a" using base "b". - * Sets result to 0 if composite or 1 if probable prime - */ -int mp_prime_miller_rabin(mp_int *a, mp_int *b, int *result); - -/* performs t rounds of Miller-Rabin on "a" using the first - * t prime bases. Also performs an initial sieve of trial - * division. Determines if "a" is prime with probability - * of error no more than (1/4)^t. - * - * Sets result to 1 if probably prime, 0 otherwise - */ -int mp_prime_is_prime(mp_int *a, int t, int *result); - -/* finds the next prime after the number "a" using "t" trials - * of Miller-Rabin. - */ -int mp_prime_next_prime(mp_int *a, int t, int bbs_style); -\end{verbatim} - -\subsection{Radix Conversions} -To read or store integers in other formats there are the following functions. - -\begin{verbatim} -int mp_unsigned_bin_size(mp_int *a); -int mp_read_unsigned_bin(mp_int *a, unsigned char *b, int c); -int mp_to_unsigned_bin(mp_int *a, unsigned char *b); - -int mp_signed_bin_size(mp_int *a); -int mp_read_signed_bin(mp_int *a, unsigned char *b, int c); -int mp_to_signed_bin(mp_int *a, unsigned char *b); - -int mp_read_radix(mp_int *a, unsigned char *str, int radix); -int mp_toradix(mp_int *a, unsigned char *str, int radix); -int mp_radix_size(mp_int *a, int radix); -\end{verbatim} - -The integers are stored in big endian format as most libraries (and MPI) expect. The \textbf{mp\_read\_radix} and -\textbf{mp\_toradix} functions read and write (respectively) null terminated ASCII strings in a given radix. Valid values -for the radix are between 2 and 64 (inclusively). - -\section{Function Analysis} - -Throughout the function analysis the variable $N$ will denote the average size of an input to a function as measured -by the number of digits it has. The variable $W$ will denote the number of bits per word and $c$ will denote a small -constant amount of work. The big-oh notation will be abused slightly to consider numbers that do not grow to infinity. -That is we shall consider $O(N/2) \ne O(N)$ which is an abuse of the notation. - -\subsection{Digit Manipulation Functions} -The class of digit manipulation functions such as \textbf{mp\_rshd}, \textbf{mp\_lshd} and \textbf{mp\_mul\_2} are all -very simple functions to analyze. - -\subsubsection{mp\_rshd(mp\_int *a, int b)} -Shifts $a$ by given number of digits to the right and is equivalent to dividing by $\beta^b$. The work is performed -in-place which means the input and output are the same. If the shift count $b$ is less than or equal to zero -the function returns without doing any work. If the the shift count is larger than the number of digits in $a$ -then $a$ is simply zeroed without shifting digits. - -This function requires no additional memory and $O(N)$ time. - -\subsubsection{mp\_lshd(mp\_int *a, int b)} -Shifts $a$ by a given number of digits to the left and is equivalent to multiplying by $\beta^b$. The work -is performed in-place which means the input and output are the same. If the shift count $b$ is less than or equal -to zero the function returns success without doing any work. - -This function requires $O(b)$ additional digits of memory and $O(N)$ time. - -\subsubsection{mp\_div\_2d(mp\_int *a, int b, mp\_int *c, mp\_int *d)} -Shifts $a$ by a given number of \textbf{bits} to the right and is equivalent to dividing by $2^b$. The shifted number is stored -in the $c$ parameter. The remainder of $a/2^b$ is optionally stored in $d$ (if it is not passed as NULL). -If the shift count $b$ is less than or equal to zero the function places $a$ in $c$ and returns success. - -This function requires $O(2 \cdot N)$ additional digits of memory and $O(2 \cdot N)$ time. - -\subsubsection{mp\_mul\_2d(mp\_int *a, int b, mp\_int *c)} -Shifts $a$ by a given number of bits to the left and is equivalent to multiplying by $2^b$. The shifted number -is placed in the $c$ parameter. If the shift count $b$ is less than or equal to zero the function places $a$ -in $c$ and returns success. - -This function requires $O(N)$ additional digits of memory and $O(2 \cdot N)$ time. - -\subsubsection{mp\_mul\_2(mp\_int *a, mp\_int *b)} -Multiplies $a$ by two and stores in $b$. This function is hard coded todo a shift by one place so it is faster -than calling mp\_mul\_2d with a count of one. - -This function requires $O(N)$ additional digits of memory and $O(N)$ time. - -\subsubsection{mp\_div\_2(mp\_int *a, mp\_int *b)} -Divides $a$ by two and stores in $b$. This function is hard coded todo a shift by one place so it is faster -than calling mp\_div\_2d with a count of one. - -This function requires $O(N)$ additional digits of memory and $O(N)$ time. - -\subsubsection{mp\_mod\_2d(mp\_int *a, int b, mp\_int *c)} -Performs the action of reducing $a$ modulo $2^b$ and stores the result in $c$. If the shift count $b$ is less than -or equal to zero the function places $a$ in $c$ and returns success. - -This function requires $O(N)$ additional digits of memory and $O(2 \cdot N)$ time. - -\subsubsection{mp\_2expt(mp\_int *a, int b)} -Computes $a = 2^b$ by first setting $a$ to zero then OR'ing the correct bit to get the right value. - -\subsubsection{mp\_rand(mp\_int *a, int digits)} -Computes a pseudo-random (\textit{via rand()}) integer that is always ``$digits$'' digits in length. Not for -cryptographic use. - -\subsection{Binary Arithmetic} -\subsubsection{mp\_xor(mp\_int *a, mp\_int *b, mp\_int *c)} -Computes $c = a \oplus b$, pseudo-extends with zeroes whichever of $a$ or $b$ is shorter such that the length -of $c$ is the maximum length of the two inputs. - -\subsubsection{mp\_or(mp\_int *a, mp\_int *b, mp\_int *c)} -Computes $c = a \lor b$, pseudo-extends with zeroes whichever of $a$ or $b$ is shorter such that the length -of $c$ is the maximum length of the two inputs. - -\subsubsection{mp\_and(mp\_int *a, mp\_int *b, mp\_int *c)} -Computes $c = a \land b$, pseudo-extends with zeroes whichever of $a$ or $b$ is shorter such that the length -of $c$ is the maximum length of the two inputs. - -\subsection{Basic Arithmetic} - -\subsubsection{mp\_cmp(mp\_int *a, mp\_int *b)} -Performs a \textbf{signed} comparison between $a$ and $b$ returning \textbf{MP\_GT} if $a$ is larger than $b$. - -This function requires no additional memory and $O(N)$ time. - -\subsubsection{mp\_cmp\_mag(mp\_int *a, mp\_int *b)} -Performs a \textbf{unsigned} comparison between $a$ and $b$ returning \textbf{MP\_GT} is $a$ is larger than $b$. Note -that this comparison is unsigned which means it will report, for example, $-5 > 3$. By comparison mp\_cmp will -report $-5 < 3$. - -This function requires no additional memory and $O(N)$ time. - -\subsubsection{mp\_add(mp\_int *a, mp\_int *b, mp\_int *c)} -Computes $c = a + b$ using signed arithmetic. Handles the sign of the numbers which means it will subtract as -required, e.g. $a + -b$ turns into $a - b$. - -This function requires no additional memory and $O(N)$ time. - -\subsubsection{mp\_sub(mp\_int *a, mp\_int *b, mp\_int *c)} -Computes $c = a - b$ using signed arithmetic. Handles the sign of the numbers which means it will add as -required, e.g. $a - -b$ turns into $a + b$. - -This function requires no additional memory and $O(N)$ time. - -\subsubsection{mp\_mul(mp\_int *a, mp\_int *b, mp\_int *c)} -Computes $c = a \cdot b$ using signed arithmetic. Handles the sign of the numbers correctly which means it will -correct the sign of the product as required, e.g. $a \cdot -b$ turns into $-ab$. - -This function requires $O(N^2)$ time for small inputs and $O(N^{1.584})$ time for relatively large -inputs (\textit{above the }KARATSUBA\_MUL\_CUTOFF \textit{value defined in bncore.c.}). There is -considerable overhead in the Karatsuba method which only pays off when the digit count is fairly high -(\textit{typically around 80}). For small inputs the function requires $O(2N)$ memory, otherwise it -requires $O(6 \cdot \mbox{lg}(N) \cdot N)$ memory. - - -\subsubsection{mp\_sqr(mp\_int *a, mp\_int *b)} -Computes $b = a^2$ and fixes the sign of $b$ to be positive. - -This function has a running time and memory requirement profile very similar to that of the -mp\_mul function. It is always faster and uses less memory for the larger inputs. - -\subsubsection{mp\_div(mp\_int *a, mp\_int *b, mp\_int *c, mp\_int *d)} -Computes $c = \lfloor a/b \rfloor$ and $d \equiv a \mbox{ (mod }b\mbox{)}$. The division is signed which means the sign -of the output is not always positive. The sign of the remainder equals the sign of $a$ while the sign of the -quotient equals the product of the ratios $(a/\vert a \vert) \cdot (b/\vert b \vert)$. Both $c$ and $d$ can be -optionally passed as NULL if the value is not desired. For example, if you want only the quotient of $x/y$ then -mp\_div(\&x, \&y, \&z, NULL) is acceptable. - -This function requires $O(4 \cdot N)$ memory and $O(3 \cdot N^2)$ time. - -\subsubsection{mp\_mod(mp\_int *a, mp\_int *b, mp\_int *c)} -Computes $c \equiv a \mbox{ (mod }b\mbox{)}$ but with the added condition that $0 \le c < b$. That is a normal -division is performed and if the remainder is negative $b$ is added to it. Since adding $b$ modulo $b$ is equivalent -to adding zero ($0 \equiv b \mbox{ (mod }b\mbox{)}$) the result is accurate. The results are undefined -when $b \le 0$, in theory the routine will still give a properly congruent answer but it will not always be positive. - -This function requires $O(4 \cdot N)$ memory and $O(3 \cdot N^2)$ time. - -\subsection{Number Theoretic Functions} - -\subsubsection{mp\_addmod, mp\_submod, mp\_mulmod, mp\_sqrmod} -These functions take the time of their host function plus the time it takes to perform a division. For example, -mp\_addmod takes $O(N + 3 \cdot N^2)$ time. Note that if you are performing many modular operations in a row with -the same modulus you should consider Barrett reductions. - -Also note that these functions use mp\_mod which means the result are guaranteed to be positive. - -\subsubsection{mp\_invmod(mp\_int *a, mp\_int *b, mp\_int *c)} -This function will find $c = 1/a \mbox{ (mod }b\mbox{)}$ for any value of $a$ such that $(a, b) = 1$ and $b > 0$. When -$b$ is odd a ``fast'' variant is used which finds the inverse twice as fast. If no inverse is found (e.g. $(a, b) \ne 1$) then -the function returns \textbf{MP\_VAL} and the result in $c$ is undefined. - -\subsubsection{mp\_gcd(mp\_int *a, mp\_int *b, mp\_int *c)} -Finds the greatest common divisor of both $a$ and $b$ and places the result in $c$. Will work with either positive -or negative inputs. - -Functions requires no additional memory and approximately $O(N \cdot log(N))$ time. - -\subsubsection{mp\_lcm(mp\_int *a, mp\_int *b, mp\_int *c)} -Finds the least common multiple of both $a$ and $b$ and places the result in $c$. Will work with either positive -or negative inputs. This is calculated by dividing the product of $a$ and $b$ by the greatest common divisor of -both. - -Functions requires no additional memory and approximately $O(4 \cdot N^2)$ time. - -\subsubsection{mp\_n\_root(mp\_int *a, mp\_digit b, mp\_int *c)} -Finds the $b$'th root of $a$ and stores it in $b$. The roots are found such that $\vert c \vert^b \le \vert a \vert$. -Uses the Newton approximation approach which means it converges in $O(log \beta^N)$ time to a final result. Each iteration -requires $b$ multiplications and one division for a total work of $O(6N^2 \cdot log \beta^N) = O(6N^3 \cdot log \beta)$. - -If the input $a$ is negative and $b$ is even the function returns \textbf{MP\_VAL}. Otherwise the function will -return a root that has a sign that agrees with the sign of $a$. - -\subsubsection{mp\_jacobi(mp\_int *a, mp\_int *n, int *c)} -Computes $c = \left ( {a \over n} \right )$ or the Jacobi function of $(a, n)$ and stores the result in an integer addressed -by $c$. Since the result of the Jacobi function $\left ( {a \over n} \right ) \in \lbrace -1, 0, 1 \rbrace$ it seemed -natural to store the result in a simple C style \textbf{int}. If $n$ is prime then the Jacobi function produces -the same results as the Legendre function\footnote{Source: Handbook of Applied Cryptography, pp. 73}. This means if -$n$ is prime then $\left ( {a \over n} \right )$ is equal to $1$ if $a$ is a quadratic residue modulo $n$ or $-1$ if -it is not. - -\subsubsection{mp\_exptmod(mp\_int *a, mp\_int *b, mp\_int *c, mp\_int *d)} -Computes $d \equiv a^b \mbox{ (mod }c\mbox{)}$ using a sliding window $k$-ary exponentiation algorithm. For an $\alpha$-bit -exponent it performs $\alpha$ squarings and at most $\lfloor \alpha/k \rfloor + 2^{k-1}$ multiplications. The value of $k$ is -chosen to minimize the number of multiplications required for a given value of $\alpha$. Barrett, Montgomery or -Dimminished-Radix reductions are used to reduce the squared or multiplied temporary results modulo $c$. - -\subsection{Fast Modular Reductions} - -A modular reduction of $a \mbox{ (mod }b\mbox{)}$ means to divide $a$ by $b$ and obtain the remainder. -Typically modular reductions are popular in public key cryptography algorithms such as RSA, -Diffie-Hellman and Elliptic Curve. Modular reductions are also a large portion of modular exponentiation -(e.g. $a^b \mbox{ (mod }c\mbox{)}$). - -In a simplistic sense a normal integer division could be used to compute reduction. Division is by far -the most complicated of routines in terms of the work required. As a result it is desirable to avoid -division as much as possible. This is evident in quite a few fields in computing. For example, often in -signal analysis uses multiplication by the reciprocal to approximate divisions. Number theory is no -different. - -In most cases for the reduction of $a$ modulo $b$ the integer $a$ will be limited to the range -$0 \le a \le b^2$ which led to the invention of specialized algorithms to do the work. - -The first algorithm is the most generic and is called the Barrett reduction. When the input is of the -limited form (e.g. $0 \le a \le b^2$) Barrett reduction is numerically equivalent to a full integer -division with remainder. For a $n$-digit value $b$ the Barrett reduction requires approximately $2n^2$ -multiplications. - -The second algorithm is the Montgomery reduction. It is slightly different since the result is not -numerically equivalent to a standard integer division with remainder. Also this algorithm only works for -odd moduli. The final result can be converted easily back to the desired for which makes the reduction -technique useful for algorithms where only the final output is desired. For a $n$-digit value $b$ the -Montgomery reduction requires approximately $n^2 + n$ multiplications, about half as many as the -Barrett algorithm. - -The third algorithm is the Diminished Radix ``DR'' reduction. It is a highly optimized reduction algorithm -suitable only for a limited set of moduli. For the specific moduli it is numerically equivalent to -integer division with remainder. For a $n$-digit value $b$ the DR reduction rquires exactly $n$ -multiplications which is considerably faster than either of the two previous algorithms. - -All three algorithms are automatically used in the modular exponentiation function mp\_exptmod() when -appropriate moduli are detected. - +\{ + mp_int number; + int result; + + if ((result = mp_init(&number)) != MP_OKAY) \{ + printf("Error initializing the number. \%s", + mp_error_to_string(result)); + return EXIT_FAILURE; + \} + + /* use the number */ + + return EXIT_SUCCESS; +\} +\end{alltt} \end{small} + +\subsection{Single Free} +When you are finished with an mp\_int it is ideal to return the heap it used back to the system. The following function +provides this functionality. + +\index{mp\_clear} +\begin{alltt} +void mp_clear (mp_int * a); +\end{alltt} + +The function expects a pointer to a previously initialized mp\_int structure and frees the heap it uses. It sets the +pointer\footnote{The ``dp'' member.} within the mp\_int to \textbf{NULL} which is used to prevent double free situations. +Is is legal to call mp\_clear() twice on the same mp\_int in a row. + +\begin{small} \begin{alltt} +int main(void) +\{ + mp_int number; + int result; + + if ((result = mp_init(&number)) != MP_OKAY) \{ + printf("Error initializing the number. \%s", + mp_error_to_string(result)); + return EXIT_FAILURE; + \} + + /* use the number */ + + /* We're done with it. */ + mp_clear(&number); + + return EXIT_SUCCESS; +\} +\end{alltt} \end{small} + +\subsection{Multiple Initializations} +Certain algorithms require more than one large integer. In these instances it is ideal to initialize all of the mp\_int +variables in an ``all or nothing'' fashion. That is, they are either all initialized successfully or they are all +not initialized. + +The mp\_init\_multi() function provides this functionality. + +\index{mp\_init\_multi} \index{mp\_clear\_multi} +\begin{alltt} +int mp_init_multi(mp_int *mp, ...); +\end{alltt} + +It accepts a \textbf{NULL} terminated list of pointers to mp\_int structures. It will attempt to initialize them all +at once. If the function returns MP\_OKAY then all of the mp\_int variables are ready to use, otherwise none of them +are available for use. A complementary mp\_clear\_multi() function allows multiple mp\_int variables to be free'd +from the heap at the same time. + +\begin{small} \begin{alltt} +int main(void) +\{ + mp_int num1, num2, num3; + int result; + + if ((result = mp_init_multi(&num1, + &num2, + &num3, NULL)) != MP\_OKAY) \{ + printf("Error initializing the numbers. \%s", + mp_error_to_string(result)); + return EXIT_FAILURE; + \} + + /* use the numbers */ + + /* We're done with them. */ + mp_clear_multi(&num1, &num2, &num3, NULL); + + return EXIT_SUCCESS; +\} +\end{alltt} \end{small} + +\subsection{Other Initializers} +To initialized and make a copy of an mp\_int the mp\_init\_copy() function has been provided. + +\index{mp\_init\_copy} +\begin{alltt} +int mp_init_copy (mp_int * a, mp_int * b); +\end{alltt} + +This function will initialize ``a'' and make it a copy of ``b'' if all goes well. + +\begin{small} \begin{alltt} +int main(void) +\{ + mp_int num1, num2; + int result; + + /* initialize and do work on num1 ... */ + + /* We want a copy of num1 in num2 now */ + if ((result = mp_init_copy(&num2, &num1)) != MP_OKAY) \{ + printf("Error initializing the copy. \%s", + mp_error_to_string(result)); + return EXIT_FAILURE; + \} + + /* now num2 is ready and contains a copy of num1 */ + + /* We're done with them. */ + mp_clear_multi(&num1, &num2, NULL); + + return EXIT_SUCCESS; +\} +\end{alltt} \end{small} + +Another less common initializer is mp\_init\_size() which allows the user to initialize an mp\_int with a given +default number of digits. By default, all initializers allocate \textbf{MP\_PREC} digits. This function lets +you override this behaviour. + +\index{mp\_init\_size} +\begin{alltt} +int mp_init_size (mp_int * a, int size); +\end{alltt} + +The ``size'' parameter must be greater than zero. If the function succeeds the mp\_int ``a'' will be initialized +to have ``size'' digits (which are all initially zero). + +\begin{small} \begin{alltt} +int main(void) +\{ + mp_int number; + int result; + + /* we need a 60-digit number */ + if ((result = mp_init_size(&number, 60)) != MP_OKAY) \{ + printf("Error initializing the number. \%s", + mp_error_to_string(result)); + return EXIT_FAILURE; + \} + + /* use the number */ + + return EXIT_SUCCESS; +\} +\end{alltt} \end{small} + +\section{Maintenance Functions} + +\subsection{Reducing Memory Usage} +When an mp\_int is in a state where it won't be changed again\footnote{A Diffie-Hellman modulus for instance.} excess +digits can be removed to return memory to the heap with the mp\_shrink() function. + +\index{mp\_shrink} +\begin{alltt} +int mp_shrink (mp_int * a); +\end{alltt} + +This will remove excess digits of the mp\_int ``a''. If the operation fails the mp\_int should be intact without the +excess digits being removed. Note that you can use a shrunk mp\_int in further computations, however, such operations +will require heap operations which can be slow. It is not ideal to shrink mp\_int variables that you will further +modify in the system (unless you are seriously low on memory). + +\begin{small} \begin{alltt} +int main(void) +\{ + mp_int number; + int result; + + if ((result = mp_init(&number)) != MP_OKAY) \{ + printf("Error initializing the number. \%s", + mp_error_to_string(result)); + return EXIT_FAILURE; + \} + + /* use the number [e.g. pre-computation] */ + + /* We're done with it for now. */ + if ((result = mp_shrink(&number)) != MP_OKAY) \{ + printf("Error shrinking the number. \%s", + mp_error_to_string(result)); + return EXIT_FAILURE; + \} + + /* use it .... */ + + + /* we're done with it. */ + mp_clear(&number); + + return EXIT_SUCCESS; +\} +\end{alltt} \end{small} + +\subsection{Adding additional digits} + +Within the mp\_int structure are two parameters which control the limitations of the array of digits that represent +the integer the mp\_int is meant to equal. The \textit{used} parameter dictates how many digits are significant, that is, +contribute to the value of the mp\_int. The \textit{alloc} parameter dictates how many digits are currently available in +the array. If you need to perform an operation that requires more digits you will have to mp\_grow() the mp\_int to +your desired size. + +\index{mp\_grow} +\begin{alltt} +int mp_grow (mp_int * a, int size); +\end{alltt} + +This will grow the array of digits of ``a'' to ``size''. If the \textit{alloc} parameter is already bigger than +``size'' the function will not do anything. + +\begin{small} \begin{alltt} +int main(void) +\{ + mp_int number; + int result; + + if ((result = mp_init(&number)) != MP_OKAY) \{ + printf("Error initializing the number. \%s", + mp_error_to_string(result)); + return EXIT_FAILURE; + \} + + /* use the number */ + + /* We need to add 20 digits to the number */ + if ((result = mp_grow(&number, number.alloc + 20)) != MP_OKAY) \{ + printf("Error growing the number. \%s", + mp_error_to_string(result)); + return EXIT_FAILURE; + \} + + + /* use the number */ + + /* we're done with it. */ + mp_clear(&number); + + return EXIT_SUCCESS; +\} +\end{alltt} \end{small} + +\chapter{Basic Operations} +\section{Small Constants} +Setting mp\_ints to small constants is a relatively common operation. To accomodate these instances there are two +small constant assignment functions. The first function is used to set a single digit constant while the second sets +an ISO C style ``unsigned long'' constant. The reason for both functions is efficiency. Setting a single digit is quick but the +domain of a digit can change (it's always at least $0 \ldots 127$). + +\subsection{Single Digit} + +Setting a single digit can be accomplished with the following function. + +\index{mp\_set} +\begin{alltt} +void mp_set (mp_int * a, mp_digit b); +\end{alltt} + +This will zero the contents of ``a'' and make it represent an integer equal to the value of ``b''. Note that this +function has a return type of \textbf{void}. It cannot cause an error so it is safe to assume the function +succeeded. + +\begin{small} \begin{alltt} +int main(void) +\{ + mp_int number; + int result; + + if ((result = mp_init(&number)) != MP_OKAY) \{ + printf("Error initializing the number. \%s", + mp_error_to_string(result)); + return EXIT_FAILURE; + \} + + /* set the number to 5 */ + mp_set(&number, 5); + + /* we're done with it. */ + mp_clear(&number); + + return EXIT_SUCCESS; +\} +\end{alltt} \end{small} + +\subsection{Long Constant} + +When you want to set a constant that is the size of an ISO C ``unsigned long'' and larger than a single +digit the following function is provided. + +\index{mp\_set\_int} +\begin{alltt} +int mp_set_int (mp_int * a, unsigned long b); +\end{alltt} + +This will assign the value of the 32-bit variable ``b'' to the mp\_int ``a''. Unlike mp\_set() this function will always +accept a 32-bit input regardless of the size of a single digit. However, since the value may span several digits +this function can fail if it runs out of heap memory. + +\begin{small} \begin{alltt} +int main(void) +\{ + mp_int number; + int result; + + if ((result = mp_init(&number)) != MP_OKAY) \{ + printf("Error initializing the number. \%s", + mp_error_to_string(result)); + return EXIT_FAILURE; + \} + + /* set the number to 654321 (note this is bigger than 127) */ + if ((result = mp_set_int(&number, 654321)) != MP_OKAY) \{ + printf("Error setting the value of the number. \%s", + mp_error_to_string(result)); + return EXIT_FAILURE; + \} + /* we're done with it. */ + mp_clear(&number); + + return EXIT_SUCCESS; +\} +\end{alltt} \end{small} + +\section{Comparisons} + +Comparisons in LibTomMath are always performed in a ``left to right'' fashion. There are three possible return codes +for any comparison. + +\index{MP\_GT} \index{MP\_EQ} \index{MP\_LT} \begin{figure}[here] -\begin{small} \begin{center} -\begin{tabular}{|c|c|l|} -\hline \textbf{Algorithm} & \textbf{Multiplications} & \textbf{Limitations} \\ - Barrett Reduction & $2n^2$ & Any modulus. \\ - Montgomery Reduction & $n^2 + n$ & Any odd modulus. \\ - DR Reduction & $n$ & Moduli of the form $p = \beta^k - p'$.\\ -\hline -\end{tabular} -\caption{Summary of reduction techniques.} -\end{center} -\end{small} -\end{figure} - -\subsubsection{mp\_reduce(mp\_int *a, mp\_int *b, mp\_int *c)} -Computes a Barrett reduction in-place of $a$ modulo $b$ with respect to $c$. In essence it computes -$a \mbox{ (mod }b\mbox{)}$ provided $0 \le a \le b^2$. The value of $c$ is precomputed with the -function mp\_reduce\_setup(). The modulus $b$ must be larger than zero. - -This reduction function is much faster than simply calling mp\_mod() (\textit{Which simply uses mp\_div() anyways}) and is -desirable where ever an appropriate reduction is desired. - -The Barrett reduction function has been optimized to use partial multipliers which means compared to MPI it performs -have the number of single precision multipliers (\textit{provided they have the same size digits}). The partial -multipliers (\textit{one of which is shared with mp\_mul}) both have baseline and comba variants. Barrett reduction -can reduce a number modulo a $n-$digit modulus with approximately $2n^2$ single precision multiplications. - -Consider the following snippet (from a BBS generator) using the more traditional approach: - -\begin{small} -\begin{verbatim} - mp_int modulus, n; - unsigned char buf[128]; - int ix, err; - - /* ... init code ..., e.g. init modulus and n */ - /* now output 128 bytes */ - for (ix = 0; ix < 128; ix++) { - if ((err = mp_sqrmod(&n, &modulus, &n)) != MP_OKAY) { - printf("Err: %d\n", err); - exit(EXIT_FAILURE); - } - buf[ix] = n->dp[0] & 255; - } -\end{verbatim} -\end{small} - -And now consider the same function using Barrett reductions: - -\begin{small} -\begin{verbatim} - mp_int modulus, n, mp; - unsigned char buf[128]; - int ix, err; - - /* ... init code ... e.g. modulus and n */ - - /* now setup mp which is the Barrett param */ - if ((err = mp_reduce_setup(&mp, &modulus)) != MP_OKAY) { - printf("Err: %d\n", err); - exit(EXIT_FAILURE); - } - /* now output 128 bytes */ - for (ix = 0; ix < 128; ix++) { - /* square n */ - if ((err = mp_sqr(&n, &n)) != MP_OKAY) { - printf("Err: %d\n", err); - exit(EXIT_FAILURE); - } - /* now reduce the square modulo modulus */ - if ((err = mp_reduce(&n, &modulus, &mp)) != MP_OKAY) { - printf("Err: %d\n", err); - exit(EXIT_FAILURE); - } - buf[ix] = n->dp[0] & 255; - } -\end{verbatim} -\end{small} - -Both routines will produce the same output provided the same initial values of $modulus$ and $n$. The Barrett -method seems like more work but the optimization stems from the use of the Barrett reduction instead of the normal -integer division. - -\subsubsection{mp\_montgomery\_reduce(mp\_int *a, mp\_int *m, mp\_digit mp)} -Computes a Montgomery reduction in-place of $a$ modulo $b$ with respect to $mp$. If $b$ is some $n-$digit modulus then -$R = \beta^{n+1}$. The result of this function is $aR^{-1} \mbox{ (mod }b\mbox{)}$ provided that $0 \le a \le b^2$. -The value of $mp$ is precomputed with the function mp\_montgomery\_setup(). The modulus $b$ must be odd and larger -than zero. - -The Montgomery reduction comes in two variants. A standard baseline and a fast comba method. The baseline routine -is in fact slower than the Barrett reductions, however, the comba routine is much faster. Montomgery reduction can -reduce a number modulo a $n-$digit modulus with approximately $n^2 + n$ single precision multiplications. Compared -to Barrett reductions the montgomery reduction requires half as many multiplications as $n \rightarrow \infty$. - -Note that the final result of a Montgomery reduction is not just the value reduced modulo $b$. You have to multiply -by $R$ modulo $b$ to get the real result. At first that may not seem like such a worthwhile routine, however, the -exptmod function can be made to take advantage of this such that only one normalization at the end is required. - -This stems from the fact that if $a \rightarrow aR^{-1}$ through Montgomery reduction and if $a = vR$ and $b = uR$ then -$a^2 \rightarrow v^2R^2R^{-1} \equiv v^2R$ and $ab \rightarrow uvRRR^{-1} \equiv uvR$. The next useful observation is -that through the reduction $a \rightarrow vRR^{-1} \equiv v$ which means given a final result it can be normalized with -a single reduction. Now a series of complicated modular operations can be optimized if all the variables are initially -multiplied by $R$ then the final result normalized by performing an extra reduction. - -If many variables are to be normalized the simplest method to setup the variables is to first compute $\hat x \equiv R^2 \mbox{ mod }m$. -Now all the variables in the system can be multiplied by $\hat x$ and reduced with Montgomery reduction. This means that -two long divisions would be required to setup $\hat x$ and a multiplication followed by reduction for each variable. - -A very useful observation is that multiplying by $R = \beta^n$ amounts to performing a left shift by $n$ positions which -requires no single precision multiplications. - -\subsubsection{mp\_dr\_reduce(mp\_int *a, mp\_int *b, mp\_digit mp)} -Computes the Diminished-Radix reduction of $a$ in place modulo $b$ with respect to $mp$. $a$ must be in the range -$0 \le a \le b^2$ and $mp$ must be precomputed with the function mp\_dr\_setup(). - -This reduction technique performs the reduction with $n$ multiplications and is much faster than either of the previous -reduction methods. Essentially it is very much like the Montgomery reduction except it is particularly optimized for -specific types of moduli. The moduli must be of the form $p = \beta^k - p'$ where $0 \le p' < \beta$ for $k \ge 2$. -This algorithm is suitable for several applications such as Diffie-Hellman public key cryptsystems where the prime $p$ is -of this form. - -In appendix A several ``safe'' primes of various sizes are provided. These primes are DR moduli and of the form -$p = 2q + 1$ where both $p$ and $q$ are prime. A trivial observation is that $g = 4$ will be a generator for all of them -since the order of the multiplicative sub-group is at most $2q$. Since $2^2 \ne 1$ that means $4^q \equiv 2^{2q} \equiv 1$ -and that $g = 4$ is a generator of order $q$. - -These moduli can be used to construct a Diffie-Hellman public key cryptosystem. Since the moduli are of the -DR form the modular exponentiation steps will be efficient. - -\subsection{Primality Testing and Generation} - -\subsubsection{mp\_prime\_is\_divisible(mp\_int *a, int *result)} -Determines if $a$ is divisible by any of the first 256 primes. Sets $result$ to $1$ if true or $0$ -otherwise. Also will set $result$ to $1$ if $a$ is equal to one of the first 256 primes. - -\subsubsection{mp\_prime\_fermat(mp\_int *a, mp\_int *b, int *result)} -Determines if $b$ is a witness to the compositeness of $a$ using the Fermat test. Essentially this -computes $b^a \mbox{ (mod }a\mbox{)}$ and compares it to $b$. If they match $result$ is set -to $1$ otherwise it is set to $0$. If $a$ is prime and $1 < b < a$ then this function will set -$result$ to $1$ with a probability of one. If $a$ is composite then this function will set -$result$ to $1$ with a probability of no more than $1 \over 2$. - -If this function is repeated $t$ times with different bases $b$ then the probability of a false positive -is no more than $2^{-t}$. - -\subsubsection{mp\_prime\_miller\_rabin(mp\_int *a, mp\_int *b, int *result)} -Determines if $b$ is a witness to the compositeness of $a$ using the Miller-Rabin test. This test -works much (\textit{on an abstract level}) the same as the Fermat test except is more robust. The -set of pseudo-primes to any given base for the Miller-Rabin test is a proper subset of the pseudo-primes -for the Fermat test. - -If $a$ is prime and $1 < b < a$ then this function will always set $result$ to $1$. If $a$ is composite -the trivial bound of error is $1 \over 4$. However, according to HAC\footnote{Handbook of Applied -Cryptography, Chapter 4, Section 4, pp. 147, Fact 4.48.} the following bounds are -known. For a test of $t$ trials on a $k$-bit number the probability $P_{k,t}$ of error is given as -follows. - -\begin{enumerate} -\item $P_{k,1} < k^24^{2 - \sqrt{k}}$ for $k \ge 2$ -\item $P_{k,t} < k^{3/2}2^tt^{-1/2}4^{2-\sqrt{tk}}$ for $(t = 2, k \ge 88)$ or $(3 \le t \le k/9, k \ge 21)$. -\item $P_{k,t} < {7 \over 20}k2^{-5t} + {1 \over 7}k^{15/4}2^{-k/2-2t} + 12k2^{-k/4-3t}$ for $k/9 \le t \le k/4, k \ge 21$. -\item $P_{k,t} < {1 \over 7}k^{15/4}2^{-k/2 - 2t}$ for $t \ge k/4, k \ge 21$. -\end{enumerate} - -For instance, $P_{1024,1}$ which indicates the probability of failure of one test with a 1024-bit candidate -is no more than $2^{-40}$. However, ideally at least a couple of trials should be used. In LibTomCrypt -for instance eight tests are used. In this case $P_{1024,8}$ falls under the second rule which leads -to a probability of failure of no more than $2^{-155.52}$. - -\begin{figure}[here] -\begin{small} -\begin{center} -\begin{tabular}{|c|c|c|c|c|c|c|} -\hline \textbf{Size (k)} & \textbf{$t = 3$} & \textbf{$t = 4$} & \textbf{$t = 5$} & \textbf{$t = 6$} & \textbf{$t = 7$} & \textbf{$t = 8$}\\ -\hline 512 & -58 & -70 & -79 & -88 & -96 & -104 \\ -\hline 768 & -75 & -89 & -101 & -112 & -122 & -131\\ -\hline 1024 & -89 & -106 & -120 & -133 & -144 & -155 \\ -\hline 1280 & -102 & -120 & -136 & -151 & -164 & -176 \\ -\hline 1536 & -113 & -133 & -151 & -167 & -181 & -195 \\ -\hline 1792 & -124 & -146 & -165 & -182 & -198 & -212 \\ -\hline 2048 & -134 & -157 & -178 & -196 & -213 & -228\\ +\begin{tabular}{|c|c|} +\hline \textbf{Result Code} & \textbf{Meaning} \\ +\hline MP\_GT & $a > b$ \\ +\hline MP\_EQ & $a = b$ \\ +\hline MP\_LT & $a < b$ \\ \hline \end{tabular} \end{center} -\end{small} -\caption{Probability of error for a given random candidate of $k$ bits with $t$ trials. Denoted as -log$_2(P_{k,t})$. } +\caption{Comparison Codes for $a, b$} +\label{fig:CMP} \end{figure} -\subsubsection{mp\_prime\_is\_prime(mp\_int *a, int t, int *result)} -This function determines if $a$ is probably prime by first performing trial division by the first 256 -primes and then $t$ rounds of Miller-Rabin using the first $t$ primes as bases. If $a$ is prime this -function will always set $result$ to $1$. If $a$ is composite then it will almost always set $result$ -to $0$. The probability of error is given in figure two. +In figure \ref{fig:CMP} two integers $a$ and $b$ are being compared. In this case $a$ is said to be ``to the left'' of +$b$. -\subsubsection{mp\_prime\_next\_prime(mp\_int *a, int t, int bbs\_style)} -This function will find the next prime \textbf{after} $a$ by using trial division and $t$ trials of -Miller-Rabin. If $bbs\_style$ is set to one than $a$ will be the next prime such that $a \equiv 3 \mbox{ (mod }4\mbox{)}$ -which is useful for certain algorithms. Otherwise, $a$ will be the next prime greater than the initial input -value and may be $\lbrace 1, 3 \rbrace \equiv a \mbox{ (mod }4\mbox{)}$. +\subsection{Unsigned comparison} -\section{Timing Analysis} +An unsigned comparison considers only the digits themselves and not the associated \textit{sign} flag of the +mp\_int structures. This is analogous to an absolute comparison. The function mp\_cmp\_mag() will compare two +mp\_int variables based on their digits only. -\subsection{Digit Size} -The first major constribution to the time savings is the fact that 28 bits are stored per digit instead of the MPI -defualt of 16. This means in many of the algorithms the savings can be considerable. Consider a baseline multiplier -with a 1024-bit input. With MPI the input would be 64 16-bit digits whereas in LibTomMath it would be 37 28-bit digits. -A savings of $64^2 - 37^2 = 2727$ single precision multiplications. +\index{mp\_cmp\_mag} +\begin{alltt} +int mp_cmp(mp_int * a, mp_int * b); +\end{alltt} +This will compare ``a'' to ``b'' placing ``a'' to the left of ``b''. This function cannot fail and will return one of the +three compare codes listed in figure \ref{fig:CMP}. -\subsection{Multiplication Algorithms} -For most inputs a typical baseline $O(n^2)$ multiplier is used which is similar to that of MPI. There are two variants -of the baseline multiplier. The normal and the fast comba variant. The normal baseline multiplier is the exact same as -the algorithm from MPI. The fast comba baseline multiplier is optimized for cases where the number of input digits $N$ -is less than or equal to $2^{w}/\beta^2$. Where $w$ is the number of bits in a \textbf{mp\_word} or simply $lg(\beta)$. -By default a mp\_word is 64-bits which means $N \le 256$ is allowed which represents numbers upto $7,168$ bits. However, -since the Karatsuba multiplier (discussed below) will kick in before that size the slower baseline algorithm (that MPI -uses) should never really be used in a default configuration. +\begin{small} \begin{alltt} +int main(void) +\{ + mp_int number1, number2; + int result; -The fast comba baseline multiplier is optimized by removing the carry operations from the inner loop. This is often -referred to as the ``comba'' method since it computes the products a columns first then figures out the carries. To -accomodate this the result of the inner multiplications must be stored in words large enough not to lose the carry bits. -This is why there is a limit of $2^{w}/\beta^2$ digits in the input. This optimization has the effect of making a -very simple and efficient inner loop. + if ((result = mp_init_multi(&number1, &number2, NULL)) != MP_OKAY) \{ + printf("Error initializing the numbers. \%s", + mp_error_to_string(result)); + return EXIT_FAILURE; + \} + + /* set the number1 to 5 */ + mp_set(&number1, 5); + + /* set the number2 to -6 */ + mp_set(&number2, 6); + if ((result = mp_neg(&number2, &number2)) != MP_OKAY) \{ + printf("Error negating number2. \%s", + mp_error_to_string(result)); + return EXIT_FAILURE; + \} -\subsubsection{Karatsuba Multiplier} -For large inputs, typically 80 digits\footnote{By default that is 2240-bits or more.} or more the Karatsuba multiplication -method is used. This method has significant overhead but an asymptotic running time of $O(n^{1.584})$ which means for -fairly large inputs this method is faster than the baseline (or comba) algorithm. The Karatsuba implementation is -recursive which means for extremely large inputs they will benefit from the algorithm. + switch(mp_cmp_mag(&number1, &number2)) \{ + case MP_GT: printf("|number1| > |number2|"); break; + case MP_EQ: printf("|number1| = |number2|"); break; + case MP_LT: printf("|number1| < |number2|"); break; + \} -The algorithm is based on the observation that if + /* we're done with it. */ + mp_clear_multi(&number1, &number2, NULL); -\begin{eqnarray} -x = x_0 + x_1\beta \nonumber \\ -y = y_0 + y_1\beta -\end{eqnarray} + return EXIT_SUCCESS; +\} +\end{alltt} \end{small} -Where $x_0, x_1, y_0, y_1$ are half the size of their respective summand than +If this program\footnote{This function uses the mp\_neg() function which is discussed in section \ref{sec:NEG}.} completes +successfully it should print the following. -\begin{equation} -x \cdot y = x_1y_1\beta^2 + ((x_1 - y_1)(x_0 - y_0) + x_0y_0 + x_1y_1)\beta + x_0y_0 -\end{equation} +\begin{alltt} +|number1| < |number2| +\end{alltt} -It is trivial that from this only three products have to be produced: $x_0y_0, x_1y_1, (x_1-y_1)(x_0-y_0)$ which -are all of half size numbers. A multiplication of two half size numbers requires only $1 \over 4$ of the -original work which means with no recursion the Karatsuba algorithm achieves a running time of ${3n^2}\over 4$. -The routine provided does recursion which is where the $O(n^{1.584})$ work factor comes from. +This is because $\vert -6 \vert = 6$ and obviously $5 < 6$. -The multiplication by $\beta$ and $\beta^2$ amount to digit shift operations. -The extra overhead in the Karatsuba method comes from extracting the half size numbers $x_0, x_1, y_0, y_1$ and -performing the various smaller calculations. +\subsection{Signed comparison} -The library has been fairly optimized to extract the digits using hard-coded routines instead of the hire -level functions however there is still significant overhead to optimize away. +To compare two mp\_int variables based on their signed value the mp\_cmp() function is provided. -MPI only implements the slower baseline multiplier where carries are dealt with in the inner loop. As a result even at -smaller numbers (below the Karatsuba cutoff) the LibTomMath multipliers are faster. +\index{mp\_cmp} +\begin{alltt} +int mp_cmp(mp_int * a, mp_int * b); +\end{alltt} -\subsection{Squaring Algorithms} +This will compare ``a'' to the left of ``b''. It will first compare the signs of the two mp\_int variables. If they +differ it will return immediately based on their signs. If the signs are equal then it will compare the digits +individually. This function will return one of the compare conditions codes listed in figure \ref{fig:CMP}. -Similar to the multiplication algorithms there are two baseline squaring algorithms. Both have an asymptotic -running time of $O((t^2 + t)/2)$. The normal baseline squaring is the same from MPI and the fast method is -a ``comba'' squaring algorithm. The comba method is used if the number of digits $N$ is less than -$2^{w-1}/\beta^2$ which by default covers numbers upto $3,584$ bits. +\begin{small} \begin{alltt} +int main(void) +\{ + mp_int number1, number2; + int result; -There is also a Karatsuba squaring method which achieves a running time of $O(n^{1.584})$ after considerably large -inputs. + if ((result = mp_init_multi(&number1, &number2, NULL)) != MP_OKAY) \{ + printf("Error initializing the numbers. \%s", + mp_error_to_string(result)); + return EXIT_FAILURE; + \} + + /* set the number1 to 5 */ + mp_set(&number1, 5); + + /* set the number2 to -6 */ + mp_set(&number2, 6); + if ((result = mp_neg(&number2, &number2)) != MP_OKAY) \{ + printf("Error negating number2. \%s", + mp_error_to_string(result)); + return EXIT_FAILURE; + \} -MPI only implements the slower baseline squaring algorithm. As a result LibTomMath is considerably faster at squaring -than MPI is. + switch(mp_cmp(&number1, &number2)) \{ + case MP_GT: printf("number1 > number2"); break; + case MP_EQ: printf("number1 = number2"); break; + case MP_LT: printf("number1 < number2"); break; + \} -\subsection{Exponentiation Algorithms} + /* we're done with it. */ + mp_clear_multi(&number1, &number2, NULL); -LibTomMath implements a sliding window $k$-ary left to right exponentiation algorithm. For a given exponent size $L$ an -appropriate window size $k$ is chosen. There are always at most $L$ modular squarings and $\lfloor L/k \rfloor$ modular -multiplications. The $k$-ary method works by precomputing values $g(x) = b^x$ for $2^{k-1} \le x < 2^k$ and a given base -$b$. Then the multiplications are grouped in windows of $k$ bits. The sliding window technique has the benefit -that it can skip multiplications if there are zero bits following or preceding a window. Consider the exponent -$e = 11110001_2$ if $k = 2$ then there will be a two squarings, a multiplication of $g(3)$, two squarings, a multiplication -of $g(3)$, four squarings and and a multiplication by $g(1)$. In total there are 8 squarings and 3 multiplications. + return EXIT_SUCCESS; +\} +\end{alltt} \end{small} -MPI uses a binary square-multiply method for exponentiation. For the same exponent $e = 11110001_2$ it would have had to -perform 8 squarings and 5 multiplications. There is a precomputation phase for the method LibTomMath uses but it -generally cuts down considerably on the number of multiplications. Consider a 512-bit exponent. The worst case for the -LibTomMath method results in 512 squarings and 124 multiplications. The MPI method would have 512 squarings -and 512 multiplications. +If this program\footnote{This function uses the mp\_neg() function which is discussed in section \ref{sec:NEG}.} completes +successfully it should print the following. -Randomly the most probable event is that every $2k^2$ bits another multiplication is saved via the -sliding-window technique on top of the savings the $k$-ary method provides. This stems from the fact that each window -has a probability of $2^{-1}$ of being delayed by one bit. In reality the savings can be much more when the exponent -has an abundance of zero bits. +\begin{alltt} +number1 > number2 +\end{alltt} -Both LibTomMath and MPI use Barrett reduction instead of division to reduce the numbers modulo the modulus given. -However, LibTomMath can take advantage of the fact that the multiplications required within the Barrett reduction -do not have to give full precision. As a result the reduction step is much faster and just as accurate. The LibTomMath -code will automatically determine at run-time (e.g. when its called) whether the faster multiplier can be used. The -faster multipliers have also been optimized into the two variants (baseline and comba baseline). +\subsection{Single Digit} -LibTomMath also has a variant of the exptmod function that uses Montgomery or Diminished-Radix reductions instead of -Barrett reductions which are faster. The code will automatically detect when the Montgomery version can be used -(\textit{Requires the modulus to be odd and below the MONTGOMERY\_EXPT\_CUTOFF size}). The Montgomery routine is -essentially a copy of the Barrett exponentiation routine except it uses Montgomery reduction. +To compare a single digit against an mp\_int the following function has been provided. -As a result of all these changes exponentiation in LibTomMath is much faster than compared to MPI. On most ALU-strong -processors (AMD Athlon for instance) exponentiation in LibTomMath is often more then ten times faster than MPI. +\index{mp\_cmp\_d} +\begin{alltt} +int mp_cmp_d(mp_int * a, mp_digit b); +\end{alltt} -\newpage -\section*{Appendix A -- DR Safe Prime Moduli} -These are safe primes suitable for the DR reduction techniques. +This will compare ``a'' to the left of ``b'' using a signed comparison. Note that it will always treat ``b'' as +positive. This function is rather handy when you have to compare against small values such as $1$ (which often +comes up in cryptography). The function cannot fail and will return one of the tree compare condition codes +listed in figure \ref{fig:CMP}. + +\begin{small} \begin{alltt} +int main(void) +\{ + mp_int number; + int result; + + if ((result = mp_init(&number)) != MP_OKAY) \{ + printf("Error initializing the number. \%s", + mp_error_to_string(result)); + return EXIT_FAILURE; + \} + + /* set the number to 5 */ + mp_set(&number, 5); + + switch(mp_cmp_d(&number, 7)) \{ + case MP_GT: printf("number > 7"); break; + case MP_EQ: printf("number = 7"); break; + case MP_LT: printf("number < 7"); break; + \} + + /* we're done with it. */ + mp_clear(&number); + + return EXIT_SUCCESS; +\} +\end{alltt} \end{small} + +If this program functions properly it will print out the following. + +\begin{alltt} +number < 7 +\end{alltt} + +\section{Logical Operations} + +Logical operations are operations that can be performed either with simple shifts or boolean operators such as +AND, XOR and OR directly. These operations are very quick. + +\subsection{Multiplication by two} + +Multiplications and divisions by any power of two can be performed with quick logical shifts either left or +right depending on the operation. + +When multiplying or dividing by two a special case routine can be used which are as follows. +\index{mp\_mul\_2} \index{mp\_div\_2} +\begin{alltt} +int mp_mul_2(mp_int * a, mp_int * b); +int mp_div_2(mp_int * a, mp_int * b); +\end{alltt} + +The former will assign twice ``a'' to ``b'' while the latter will assign half ``a'' to ``b''. These functions are fast +since the shift counts and maskes are hardcoded into the routines. + +\begin{small} \begin{alltt} +int main(void) +\{ + mp_int number; + int result; + + if ((result = mp_init(&number)) != MP_OKAY) \{ + printf("Error initializing the number. \%s", + mp_error_to_string(result)); + return EXIT_FAILURE; + \} + + /* set the number to 5 */ + mp_set(&number, 5); + + /* multiply by two */ + if ((result = mp\_mul\_2(&number, &number)) != MP_OKAY) \{ + printf("Error multiplying the number. \%s", + mp_error_to_string(result)); + return EXIT_FAILURE; + \} + switch(mp_cmp_d(&number, 7)) \{ + case MP_GT: printf("2*number > 7"); break; + case MP_EQ: printf("2*number = 7"); break; + case MP_LT: printf("2*number < 7"); break; + \} + + /* now divide by two */ + if ((result = mp\_div\_2(&number, &number)) != MP_OKAY) \{ + printf("Error dividing the number. \%s", + mp_error_to_string(result)); + return EXIT_FAILURE; + \} + switch(mp_cmp_d(&number, 7)) \{ + case MP_GT: printf("2*number/2 > 7"); break; + case MP_EQ: printf("2*number/2 = 7"); break; + case MP_LT: printf("2*number/2 < 7"); break; + \} + + /* we're done with it. */ + mp_clear(&number); + + return EXIT_SUCCESS; +\} +\end{alltt} \end{small} + +If this program is successful it will print out the following text. + +\begin{alltt} +2*number > 7 +2*number/2 < 7 +\end{alltt} + +Since $10 > 7$ and $5 < 7$. To multiply by a power of two the following function can be used. + +\index{mp\_mul\_2d} +\begin{alltt} +int mp_mul_2d(mp_int * a, int b, mp_int * c); +\end{alltt} + +This will multiply ``a'' by $2^b$ and store the result in ``c''. If the value of $b$ is less than or equal to +zero the function will copy ``a'' to ``c'' without performing any further actions. + +To divide by a power of two use the following. + +\index{mp\_div\_2d} +\begin{alltt} +int mp_div_2d (mp_int * a, int b, mp_int * c, mp_int * d); +\end{alltt} +Which will divide ``a'' by $2^b$, store the quotient in ``c'' and the remainder in ``d'. If $b \le 0$ then the +function simply copies ``a'' over to ``c'' and zeroes ``d''. The variable ``d'' may be passed as a \textbf{NULL} +value to signal that the remainder is not desired. + +\subsection{Polynomial Basis Operations} + +Strictly speaking the organization of the integers within the mp\_int structures is what is known as a +``polynomial basis''. This simply means a field element is stored by divisions of a radix. For example, if +$f(x) = \sum_{i=0}^{k} y_ix^k$ for any vector $\vec y$ then the array of digits in $\vec y$ are said to be +the polynomial basis representation of $z$ if $f(\beta) = z$ for a given radix $\beta$. + +To multiply by the polynomial $g(x) = x$ all you have todo is shift the digits of the basis left one place. The +following function provides this operation. + +\index{mp\_lshd} +\begin{alltt} +int mp_lshd (mp_int * a, int b); +\end{alltt} + +This will multiply ``a'' in place by $x^b$ which is equivalent to shifting the digits left $b$ places and inserting zeroes +in the least significant digits. Similarly to divide by a power of $x$ the following function is provided. + +\index{mp\_rshd} +\begin{alltt} +void mp_rshd (mp_int * a, int b) +\end{alltt} +This will divide ``a'' in place by $x^b$ and discard the remainder. This function cannot fail as it performs the operations +in place and no new digits are required to complete it. + +\subsection{AND, OR and XOR Operations} + +While AND, OR and XOR operations are not typical ``bignum functions'' they can be useful in several instances. The +three functions are prototyped as follows. + +\index{mp\_or} \index{mp\_and} \index{mp\_xor} +\begin{alltt} +int mp_or (mp_int * a, mp_int * b, mp_int * c); +int mp_and (mp_int * a, mp_int * b, mp_int * c); +int mp_xor (mp_int * a, mp_int * b, mp_int * c); +\end{alltt} + +Which compute $c = a \odot b$ where $\odot$ is one of OR, AND or XOR. + +\section{Addition and Subtraction} + +To compute an addition or subtraction the following two functions can be used. + +\index{mp\_add} \index{mp\_sub} +\begin{alltt} +int mp_add (mp_int * a, mp_int * b, mp_int * c); +int mp_sub (mp_int * a, mp_int * b, mp_int * c) +\end{alltt} + +Which perform $c = a \odot b$ where $\odot$ is one of signed addition or subtraction. The operations are fully sign +aware. + + +\section{Sign Manipulation} +\subsection{Negation} +\label{sec:NEG} +Simple integer negation can be performed with the following. + +\index{mp\_neg} +\begin{alltt} +int mp_neg (mp_int * a, mp_int * b); +\end{alltt} + +Which assigns $-b$ to $a$. + +\subsection{Absolute} +Simple integer absolutes can be performed with the following. + +\index{mp\_neg} +\begin{alltt} +int mp_abs (mp_int * a, mp_int * b); +\end{alltt} + +Which assigns $\vert b \vert$ to $a$. + +\chapter{Multiplication and Squaring} +\section{Multiplication} +A full signed integer multiplication can be performed with the following. +\index{mp\_mul} +\begin{alltt} +int mp_mul (mp_int * a, mp_int * b, mp_int * c); +\end{alltt} +Which assigns the full signed product $ab$ to $c$. This function actually breaks into one of four cases which are +specific multiplication routines optimized for given parameters. First there are the Toom-Cook multiplications which +should only be used with very large inputs. This is followed by the Karatsuba multiplications which are for moderate +sized inputs. Then followed by the Comba and baseline multipliers. + +Fortunately for the developer you don't really need to know this unless you really want to fine tune the system. mp\_mul() +will determine on its own\footnote{Some tweaking may be required.} what routine to use automatically when it is called. + +\section{Squaring} +Since squaring can be performed faster than multiplication it is performed it's own function instead of just using +mp\_mul(). + +\index{mp\_sqr} +\begin{alltt} +int mp_sqr (mp_int * a, mp_int * b); +\end{alltt} + +Will square ``a'' and store it in ``b''. Like the case of multiplication there are four different squaring +algorithms all which can be called from mp\_sqr(). + +\section{Tuning Polynomial Basis Routines} + +Both Toom-Cook and Karatsuba multiplication algorithms are faster than the traditional $O(n^2)$ approach that +the Comba and baseline algorithms use. At $O(n^{1.46})$ and $O(n^{1.58})$ running times respectfully they require +considerably less work. For example, a 10000-digit multiplication would take roughly 692,000 single precision +multiplications with Toom-Cook or 100,000,000 single precision multiplications with the standard Comba (a factor +of 144). + +So why not always use Karatsuba or Toom-Cook? The simple answer is that they have so much overhead that they're not +actually faster than Comba until you hit distinct ``cutoff'' points. For Karatsuba with the default configuration, +GCC 3.3.1 and an Athlon XP processor the cutoff point is roughly 110 digits (about 70 for the Intel P4). That is, at +110 digits Karatsuba and Comba multiplications just about break even and for 110+ digits Karatsuba is faster. + +Toom-Cook has incredible overhead and is probably only useful for very large inputs. So far no known cutoff points +exist and for the most part I just set the cutoff points very high to make sure they're not called. + +A demo program in the ``etc/'' directory of the project called ``tune.c'' can be used to find the cutoff points. This +can be built with GCC as follows + +\begin{alltt} +make XXX +\end{alltt} +Where ``XXX'' is one of the following entries from the table \ref{fig:tuning}. + +\begin{figure}[here] +\begin{center} \begin{small} -\begin{verbatim} -224-bit prime: -p == 26959946667150639794667015087019630673637144422540572481103341844143 - -532-bit prime: -p == 14059105607947488696282932836518693308967803494693489478439861164411 - 99243959839959474700214407465892859350284572975279726002583142341968 - 6528151609940203368691747 - -784-bit prime: -p == 10174582569701926077392351975587856746131528201775982910760891436407 - 52752352543956225804474009941755789631639189671820136396606697711084 - 75957692810857098847138903161308502419410142185759152435680068435915 - 159402496058513611411688900243039 - -1036-bit prime: -p == 73633510803960459580592340614718453088992337057476877219196961242207 - 30400993319449915739231125812675425079864519532271929704028930638504 - 85730703075899286013451337291468249027691733891486704001513279827771 - 74018362916106519487472796251714810077522836342108369176406547759082 - 3919364012917984605619526140821798437127 - -1540-bit prime: -p == 38564998830736521417281865696453025806593491967131023221754800625044 - 11826546885121070536038571753679461518026049420807660579867166071933 - 31995138078062523944232834134301060035963325132466829039948295286901 - 98205120921557533726473585751382193953592127439965050261476810842071 - 57368450587885458870662348457392592590350574754547108886771218500413 - 52012892734056144158994382765356263460989042410208779740029161680999 - 51885406379295536200413493190419727789712076165162175783 - -2072-bit prime: -p == 54218939133169617266167044061918053674999416641599333415160174539219 - 34845902966009796023786766248081296137779934662422030250545736925626 - 89251250471628358318743978285860720148446448885701001277560572526947 - 61939255157449083928645845499448866574499182283776991809511712954641 - 41244487770339412235658314203908468644295047744779491537946899487476 - 80362212954278693335653935890352619041936727463717926744868338358149 - 56836864340303776864961677852601361049369618605589931826833943267154 - 13281957242613296066998310166663594408748431030206661065682224010477 - 20269951530296879490444224546654729111504346660859907296364097126834 - 834235287147 -\end{verbatim} -\newpage -\begin{verbatim} -3080-bit prime: -p == 14872591348147092640920326485259710388958656451489011805853404549855 - 24155135260217788758027400478312256339496385275012465661575576202252 - 06314569873207988029466422057976484876770407676185319721656326266004 - 66027039730507982182461708359620055985616697068444694474354610925422 - 65792444947706769615695252256130901271870341005768912974433684521436 - 21126335809752272646208391793909176002665892575707673348417320292714 - 14414925737999142402226287954056239531091315945236233530448983394814 - 94120112723445689647986475279242446083151413667587008191682564376412 - 34796414611389856588668313940700594138366932599747507691048808666325 - 63356891811579575714450674901879395531659037735542902605310091218790 - 44170766615232300936675369451260747671432073394867530820527479172464 - 10644245072764022650374658634027981631882139521072626829153564850619 - 07146160831634031899433344310568760382865303657571873671474460048559 - 12033137386225053275419626102417236133948503 - -4116-bit prime: -p == 10951211157166778028568112903923951285881685924091094949001780089679 - 55253005183831872715423151551999734857184538199864469605657805519106 - 71752965504405483319768745978263629725521974299473675154181526972794 - 07518606702687749033402960400061140139713092570283328496790968248002 - 50742691718610670812374272414086863715763724622797509437062518082383 - 05605014462496277630214789052124947706021514827516368830127584715531 - 60422794055576326393660668474428614221648326558746558242215778499288 - 63023018366835675399949740429332468186340518172487073360822220449055 - 34058256846156864525995487330361695377639385317484513208112197632746 - 27403549307444874296172025850155107442985301015477068215901887335158 - 80733527449780963163909830077616357506845523215289297624086914545378 - 51108253422962011656326016849452390656670941816601111275452976618355 - 45793212249409511773940884655967126200762400673705890369240247283750 - 76210477267488679008016579588696191194060127319035195370137160936882 - 40224439969917201783514453748848639690614421772002899286394128821718 - 53539149915834004216827510006035966557909908155251261543943446413363 - 97793791497068253936771017031980867706707490224041075826337383538651 - 82549367950377193483609465580277633166426163174014828176348776585274 - 6577808019633679 -\end{verbatim} +\begin{tabular}{|l|l|} +\hline \textbf{Value of XXX} & \textbf{Meaning} \\ +\hline tune & Builds portable tuning application \\ +\hline tune86 & Builds x86 (pentium and up) program for COFF \\ +\hline tune86c & Builds x86 program for Cygwin \\ +\hline tune86l & Builds x86 program for Linux (ELF format) \\ +\hline +\end{tabular} \end{small} +\end{center} +\caption{Build Names for Tuning Programs} +\label{fig:tuning} +\end{figure} -%\newpage -%\section*{Appendix B - Function Quick Sheet} +When the program is running it will output a series of measurements for different cutoff points. It will first find +good Karatsuba squaring and multiplication points. Then it proceeds to find Toom-Cook points. Note that the Toom-Cook +tuning takes a very long time as the cutoff points are likely to be very high. -%The following table gives a quick summary of the functions provided within LibTomMath. +\chapter{Modular Reduction} +\section{Integer Division and Remainder} +To perform a complete and general integer division with remainder use the following function. -%\begin{flushleft} -%\begin{tiny} -%\begin{tabular}{|l|l|l|} -%\hline \textbf{Function Name} & \textbf{Purpose} & \textbf{Notes} \\ -%\hline mp\_init(mp\_int *a) & Initializes a mp\_int & Allocates runtime memory required for an integer \\ -%\hline mp\_clear(mp\_int *a) & Frees the ram used by an mp\_int & \\ -%\hline mp\_exch(mp\_int *a, mp\_int *b) & Swaps two mp\_int structures contents & \\ -%\hline mp\_shrink(mp\_int *a) & Frees unused memory & The mp\_int is still valid and not cleared. \\ -%\hline mp\_grow(mp\_int *a, int size) & Ensures that a has at least $size$ digits allocated & \\ -%\hline mp\_init\_size(mp\_int a, int size) & Inits and ensures it has at least $size$ digits & \\ -%\hline &&\\ -%\hline mp\_zero(mp\_int *a) & $a \leftarrow 0$ & \\ -%\hline mp\_set(mp\_int *a, mp\_digit b) & $a \leftarrow b$ & \\ -%\hline mp\_set\_int(mp\_int *a, unsigned long b) & $a \leftarrow b$ & Only reads upto 32 bits from $b$ \\ -%\hline &&\\ -%\hline mp\_rshd(mp\_int *a, int b) & $a \leftarrow a/\beta^b$ & \\ -%\hline mp\_lshd(mp\_int *a, int b) & $a \leftarrow a \cdot \beta^b$ &\\ -%\hline mp\_div\_2d(mp\_int *a, int b, mp\_int *c, mp\_int *d) & &\\ -%\hline -%\end{tabular} -%\end{tiny} -%\end{flushleft} +\index{mp\_div} +\begin{alltt} +int mp_div (mp_int * a, mp_int * b, mp_int * c, mp_int * d); +\end{alltt} + +This divides ``a'' by ``b'' and stores the quotient in ``c'' and ``d''. The signed quotient is computed such that +$bc + d = a$. Note that either of ``c'' or ``d'' can be set to \textbf{NULL} if their value is not required. + +\section{Barrett Reduction} +\section{Montgomery Reduction} +\section{Restricted Dimminished Radix} +\section{Unrestricted Dimminshed Radix} + +\chapter{Exponentiation} +\section{Single Digit Exponentiation} +\index{mp\_expt\_d} +\begin{alltt} +int mp_expt_d (mp_int * a, mp_digit b, mp_int * c) +\end{alltt} +This computes $c = a^b$ using a simple binary left-to-write algorithm. It is faster than repeated multiplications for +all values of $b$ greater than three. + +\section{Modular Exponentiation} +\index{mp\_exptmod} +\begin{alltt} +int mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y) +\end{alltt} +This computes $Y \equiv G^X \mbox{ (mod }P\mbox{)}$ using a variable width sliding window algorithm. This function +will automatically detect the fastest modular reduction technique to use during the operation. For negative values of +$X$ the operation is performed as $Y \equiv (G^{-1} \mbox{ mod }P)^{\vert X \vert} \mbox{ (mod }P\mbox{)}$ provided that +$gcd(G, P) = 1$. + +\section{Root Finding} +\index{mp\_n\_root} +\begin{alltt} +int mp_n_root (mp_int * a, mp_digit b, mp_int * c) +\end{alltt} +This computes $c = a^{1/b}$ such that $c^b \le a$ and $(c+1)^b > a$. The implementation of this function is not +ideal for values of $b$ greater than three. It will work but become very slow. So unless you are working with very small +numbers (less than 1000 bits) I'd avoid $b > 3$ situations. Will return a positive root only for even roots and return +a root with the sign of the input for odd roots. For example, performing $4^{1/2}$ will return $2$ whereas $(-8)^{1/3}$ +will return $-2$. + +\chapter{Prime Numbers} +\section{Trial Division} +\index{mp\_prime\_is\_divisible} +\begin{alltt} +int mp_prime_is_divisible (mp_int * a, int *result) +\end{alltt} +This will attempt to evenly divide $a$ by a list of primes\footnote{Default is the first 256 primes.} and store the +outcome in ``result''. That is if $result = 0$ then $a$ is not divisible by the primes, otherwise it is. Note that +if the function does not return \textbf{MP\_OKAY} the value in ``result'' should be considered undefined\footnote{Currently +the default is to set it to zero first.}. + +\section{Fermat Test} +\index{mp\_prime\_fermat} +\begin{alltt} +int mp_prime_fermat (mp_int * a, mp_int * b, int *result) +\end{alltt} +Performs a Fermat primality test to the base $b$. That is it computes $b^a \mbox{ mod }a$ and tests whether the value is +equal to $b$ or not. If the values are equal then $a$ is probably prime and $result$ is set to one. Otherwise $result$ +is set to zero. + +\section{Miller-Rabin Test} +\index{mp\_prime\_miller\_rabin} +\begin{alltt} +int mp_prime_miller_rabin (mp_int * a, mp_int * b, int *result) +\end{alltt} +Performs a Miller-Rabin test to the base $b$ of $a$. This test is much stronger than the Fermat test and is very hard to +fool (besides with Carmichael numbers). If $a$ passes the test (therefore is probably prime) $result$ is set to one. +Otherwise $result$ is set to zero. + +Note that is suggested that you use the Miller-Rabin test instead of the Fermat test since all of the failures of +Miller-Rabin are a subset of the failures of the Fermat test. + +\subsection{Required Number of Tests} +Generally to ensure a number is very likely to be prime you have to perform the Miller-Rabin with at least a half-dozen +or so unique bases. However, it has been proven that the probability of failure goes down as the size of the input goes up. +This is why a simple function has been provided to help out. + +\index{mp\_prime\_rabin\_miller\_trials} +\begin{alltt} +int mp_prime_rabin_miller_trials(int size) +\end{alltt} +This returns the number of trials required for a $2^{-96}$ (or lower) probability of failure for a given ``size'' expressed +in bits. This comes in handy specially since larger numbers are slower to test. For example, a 512-bit number would +require ten tests whereas a 1024-bit number would only require four tests. + +You should always still perform a trial division before a Miller-Rabin test though. + +\section{Primality Testing} +\index{mp\_prime\_is\_prime} +\begin{alltt} +int mp_prime_is_prime (mp_int * a, int t, int *result) +\end{alltt} +This will perform a trial division followed by $t$ rounds of Miller-Rabin tests on $a$ and store the result in $result$. +If $a$ passes all of the tests $result$ is set to one, otherwise it is set to zero. Note that $t$ is bounded by +$1 \le t < PRIME\_SIZE$ where $PRIME\_SIZE$ is the number of primes in the prime number table (by default this is $256$). + +\section{Next Prime} +\index{mp\_prime\_next\_prime} +\begin{alltt} +int mp_prime_next_prime(mp_int *a, int t, int bbs_style) +\end{alltt} +This finds the next prime after $a$ that passes mp\_prime\_is\_prime() with $t$ tests. Set $bbs\_style$ to one if you +want only the next prime congruent to $3 \mbox{ mod } 4$, otherwise set it to zero to find any next prime. + +\section{Random Primes} +\index{mp\_prime\_random} +\begin{alltt} +int mp_prime_random(mp_int *a, int t, int size, int bbs, + ltm_prime_callback cb, void *dat) +\end{alltt} +This will find a prime greater than $256^{size}$ which can be ``bbs\_style'' or not depending on $bbs$ and must pass +$t$ rounds of tests. The ``ltm\_prime\_callback'' is a typedef for + +\begin{alltt} +typedef int ltm_prime_callback(unsigned char *dst, int len, void *dat); +\end{alltt} + +Which is a function that must read $len$ bytes (and return the amount stored) into $dst$. The $dat$ variable is simply +copied from the original input. It can be used to pass RNG context data to the callback. + +The function mp\_prime\_random() is more suitable for generating primes which must be secret (as in the case of RSA) since +there is no skew on the least significant bits. + +\chapter{Input and Output} +\section{ASCII Conversions} +\section{Binary Conversions} +\section{Stream Functions} + +\chapter{Algebraic Functions} +\section{Greatest Common Divisor} +\index{mp\_gcd} +\begin{alltt} +int mp_gcd (mp_int * a, mp_int * b, mp_int * c) +\end{alltt} +This will compute the greatest common divisor of $a$ and $b$ and store it in $c$. + +\section{Least Common Multiple} +\index{mp\_lcm} +\begin{alltt} +int mp_lcm (mp_int * a, mp_int * b, mp_int * c) +\end{alltt} +This will compute the least common multiple of $a$ and $b$ and store it in $c$. + +\section{Jacobi Symbol} +\index{mp\_jacobi} +\begin{alltt} +int mp_jacobi (mp_int * a, mp_int * p, int *c) +\end{alltt} +This will compute the Jacobi symbol for $a$ with respect to $p$. If $p$ is prime this essentially computes the Legendre +symbol. The result is stored in $c$ and can take on one of three values $\lbrace -1, 0, 1 \rbrace$. If $p$ is prime +then the result will be $-1$ when $a$ is not a quadratic residue modulo $p$. The result will be $0$ if $a$ divides $p$ +and the result will be $1$ if $a$ is a quadratic residue modulo $p$. + +\section{Modular Inverse} +\index{mp\_invmod} +\begin{alltt} +int mp_invmod (mp_int * a, mp_int * b, mp_int * c) +\end{alltt} +Computes the multiplicative inverse of $a$ modulo $b$ and stores the result in $c$ such that $ac \equiv 1 \mbox{ (mod }b\mbox{)}$. + + + +\section{Single Digit Functions} + +\input{bn.ind} \end{document} diff --git a/bn_fast_mp_invmod.c b/bn_fast_mp_invmod.c index 2b86ce4..c9a9459 100644 --- a/bn_fast_mp_invmod.c +++ b/bn_fast_mp_invmod.c @@ -26,11 +26,8 @@ fast_mp_invmod (mp_int * a, mp_int * b, mp_int * c) mp_int x, y, u, v, B, D; int res, neg; - /* 2. [modified] if a,b are both even then return an error! - * - * That is if gcd(a,b) = 2**k * q then obviously there is no inverse. - */ - if (mp_iseven (a) == 1 && mp_iseven (b) == 1) { + /* 2. [modified] b must be odd */ + if (mp_iseven (b) == 1) { return MP_VAL; } diff --git a/bn_fast_mp_montgomery_reduce.c b/bn_fast_mp_montgomery_reduce.c index 8fef486..c7a3413 100644 --- a/bn_fast_mp_montgomery_reduce.c +++ b/bn_fast_mp_montgomery_reduce.c @@ -14,11 +14,11 @@ */ #include -/* computes xR**-1 == x (mod N) via Montgomery Reduction - * - * This is an optimized implementation of mp_montgomery_reduce +/* computes xR**-1 == x (mod N) via Montgomery Reduction + * + * This is an optimized implementation of mp_montgomery_reduce * which uses the comba method to quickly calculate the columns of the - * reduction. + * reduction. * * Based on Algorithm 14.32 on pp.601 of HAC. */ @@ -69,11 +69,11 @@ fast_mp_montgomery_reduce (mp_int * x, mp_int * n, mp_digit rho) /* mu = ai * m' mod b * * We avoid a double precision multiplication (which isn't required) - * by casting the value down to a mp_digit. Note this requires + * by casting the value down to a mp_digit. Note this requires * that W[ix-1] have the carry cleared (see after the inner loop) */ register mp_digit mu; - mu = ((W[ix] & MP_MASK) * rho) & MP_MASK; + mu = (mp_digit) (((W[ix] & MP_MASK) * rho) & MP_MASK); /* a = a + mu * m * b**i * @@ -81,12 +81,12 @@ fast_mp_montgomery_reduce (mp_int * x, mp_int * n, mp_digit rho) * by b**i is handled by offseting which columns the results * are added to. * - * Note the comba method normally doesn't handle carries in the - * inner loop In this case we fix the carry from the previous - * column since the Montgomery reduction requires digits of the + * Note the comba method normally doesn't handle carries in the + * inner loop In this case we fix the carry from the previous + * column since the Montgomery reduction requires digits of the * result (so far) [see above] to work. This is - * handled by fixing up one carry after the inner loop. The - * carry fixups are done in order so after these loops the + * handled by fixing up one carry after the inner loop. The + * carry fixups are done in order so after these loops the * first m->used words of W[] have the carries fixed */ { @@ -132,8 +132,8 @@ fast_mp_montgomery_reduce (mp_int * x, mp_int * n, mp_digit rho) /* copy out, A = A/b**n * - * The result is A/b**n but instead of converting from an - * array of mp_word to mp_digit than calling mp_rshd + * The result is A/b**n but instead of converting from an + * array of mp_word to mp_digit than calling mp_rshd * we just copy them in the right order */ diff --git a/bn_fast_s_mp_sqr.c b/bn_fast_s_mp_sqr.c index 0a68d42..d5b9787 100644 --- a/bn_fast_s_mp_sqr.c +++ b/bn_fast_s_mp_sqr.c @@ -16,16 +16,16 @@ /* fast squaring * - * This is the comba method where the columns of the product - * are computed first then the carries are computed. This - * has the effect of making a very simple inner loop that + * This is the comba method where the columns of the product + * are computed first then the carries are computed. This + * has the effect of making a very simple inner loop that * is executed the most * * W2 represents the outer products and W the inner. * - * A further optimizations is made because the inner - * products are of the form "A * B * 2". The *2 part does - * not need to be computed until the end which is good + * A further optimizations is made because the inner + * products are of the form "A * B * 2". The *2 part does + * not need to be computed until the end which is good * because 64-bit shifts are slow! * * Based on Algorithm 14.16 on pp.597 of HAC. @@ -105,8 +105,8 @@ fast_s_mp_sqr (mp_int * a, mp_int * b) { register mp_digit *tmpb; - /* double first value, since the inner products are - * half of what they should be + /* double first value, since the inner products are + * half of what they should be */ W[0] += W[0] + W2[0]; diff --git a/bn_mp_add.c b/bn_mp_add.c index b144a8e..f625195 100644 --- a/bn_mp_add.c +++ b/bn_mp_add.c @@ -15,8 +15,7 @@ #include /* high level addition (handles signs) */ -int -mp_add (mp_int * a, mp_int * b, mp_int * c) +int mp_add (mp_int * a, mp_int * b, mp_int * c) { int sa, sb, res; diff --git a/bn_mp_clear.c b/bn_mp_clear.c index be2562e..afe9b26 100644 --- a/bn_mp_clear.c +++ b/bn_mp_clear.c @@ -24,7 +24,7 @@ mp_clear (mp_int * a) memset (a->dp, 0, sizeof (mp_digit) * a->used); /* free ram */ - free (a->dp); + XFREE(a->dp); /* reset members to make debugging easier */ a->dp = NULL; diff --git a/bn_mp_cmp_d.c b/bn_mp_cmp_d.c index 600438f..6baa172 100644 --- a/bn_mp_cmp_d.c +++ b/bn_mp_cmp_d.c @@ -15,8 +15,7 @@ #include /* compare a digit */ -int -mp_cmp_d (mp_int * a, mp_digit b) +int mp_cmp_d(mp_int * a, mp_digit b) { /* compare based on sign */ if (a->sign == MP_NEG) { diff --git a/bn_mp_cmp_mag.c b/bn_mp_cmp_mag.c index be38b87..b50f769 100644 --- a/bn_mp_cmp_mag.c +++ b/bn_mp_cmp_mag.c @@ -15,8 +15,7 @@ #include /* compare maginitude of two ints (unsigned) */ -int -mp_cmp_mag (mp_int * a, mp_int * b) +int mp_cmp_mag (mp_int * a, mp_int * b) { int n; mp_digit *tmpa, *tmpb; diff --git a/bn_mp_div.c b/bn_mp_div.c index 07e1dee..652a094 100644 --- a/bn_mp_div.c +++ b/bn_mp_div.c @@ -27,8 +27,7 @@ * The overall algorithm is as described as * 14.20 from HAC but fixed to treat these cases. */ -int -mp_div (mp_int * a, mp_int * b, mp_int * c, mp_int * d) +int mp_div (mp_int * a, mp_int * b, mp_int * c, mp_int * d) { mp_int q, x, y, t1, t2; int res, n, t, i, norm, neg; diff --git a/bn_mp_div_2.c b/bn_mp_div_2.c index 1c545f1..ebad7ae 100644 --- a/bn_mp_div_2.c +++ b/bn_mp_div_2.c @@ -15,8 +15,7 @@ #include /* b = a/2 */ -int -mp_div_2 (mp_int * a, mp_int * b) +int mp_div_2(mp_int * a, mp_int * b) { int x, res, oldused; diff --git a/bn_mp_div_2d.c b/bn_mp_div_2d.c index 66db765..75f090c 100644 --- a/bn_mp_div_2d.c +++ b/bn_mp_div_2d.c @@ -15,8 +15,7 @@ #include /* shift right by a certain bit count (store quotient in c, optional remainder in d) */ -int -mp_div_2d (mp_int * a, int b, mp_int * c, mp_int * d) +int mp_div_2d (mp_int * a, int b, mp_int * c, mp_int * d) { mp_digit D, r, rr; int x, res; diff --git a/bn_mp_div_d.c b/bn_mp_div_d.c index 2502341..244b8da 100644 --- a/bn_mp_div_d.c +++ b/bn_mp_div_d.c @@ -81,7 +81,7 @@ mp_div_d (mp_int * a, mp_digit b, mp_int * c, mp_digit * d) if (w >= b) { t = (mp_digit)(w / b); - w = w % b; + w -= ((mp_word)t) * ((mp_word)b); } else { t = 0; } diff --git a/bn_mp_exch.c b/bn_mp_exch.c index 71f6e04..b0f1cd0 100644 --- a/bn_mp_exch.c +++ b/bn_mp_exch.c @@ -15,7 +15,7 @@ #include /* swap the elements of two integers, for cases where you can't simply swap the - * mp_int pointers around + * mp_int pointers around */ void mp_exch (mp_int * a, mp_int * b) diff --git a/bn_mp_expt_d.c b/bn_mp_expt_d.c index 49594f8..6ec12a4 100644 --- a/bn_mp_expt_d.c +++ b/bn_mp_expt_d.c @@ -15,8 +15,7 @@ #include /* calculate c = a**b using a square-multiply algorithm */ -int -mp_expt_d (mp_int * a, mp_digit b, mp_int * c) +int mp_expt_d (mp_int * a, mp_digit b, mp_int * c) { int res, x; mp_int g; diff --git a/bn_mp_exptmod.c b/bn_mp_exptmod.c index 2da394b..21d0cc5 100644 --- a/bn_mp_exptmod.c +++ b/bn_mp_exptmod.c @@ -20,8 +20,7 @@ * embedded in the normal function but that wasted alot of stack space * for nothing (since 99% of the time the Montgomery code would be called) */ -int -mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y) +int mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y) { int dr; diff --git a/bn_mp_fwrite.c b/bn_mp_fwrite.c index a1fe564..eabfc8c 100644 --- a/bn_mp_fwrite.c +++ b/bn_mp_fwrite.c @@ -24,24 +24,24 @@ int mp_fwrite(mp_int *a, int radix, FILE *stream) return MP_VAL; } - buf = malloc(len); + buf = XMALLOC (len); if (buf == NULL) { return MP_MEM; } if ((err = mp_toradix(a, buf, radix)) != MP_OKAY) { - free(buf); + XFREE (buf); return err; } for (x = 0; x < len; x++) { if (fputc(buf[x], stream) == EOF) { - free(buf); + XFREE (buf); return MP_VAL; } } - free(buf); + XFREE (buf); return MP_OKAY; } diff --git a/bn_mp_gcd.c b/bn_mp_gcd.c index d46d468..78ddda2 100644 --- a/bn_mp_gcd.c +++ b/bn_mp_gcd.c @@ -15,8 +15,7 @@ #include /* Greatest Common Divisor using the binary method */ -int -mp_gcd (mp_int * a, mp_int * b, mp_int * c) +int mp_gcd (mp_int * a, mp_int * b, mp_int * c) { mp_int u, v; int k, u_lsb, v_lsb, res; diff --git a/bn_mp_grow.c b/bn_mp_grow.c index c2c47a5..157ac3f 100644 --- a/bn_mp_grow.c +++ b/bn_mp_grow.c @@ -15,13 +15,11 @@ #include /* grow as required */ -int -mp_grow (mp_int * a, int size) +int mp_grow (mp_int * a, int size) { int i; mp_digit *tmp; - /* if the alloc size is smaller alloc more ram */ if (a->alloc < size) { /* ensure there are always at least MP_PREC digits extra on top */ @@ -33,7 +31,7 @@ mp_grow (mp_int * a, int size) * in case the operation failed we don't want * to overwrite the dp member of a. */ - tmp = OPT_CAST realloc (a->dp, sizeof (mp_digit) * size); + tmp = OPT_CAST XREALLOC (a->dp, sizeof (mp_digit) * size); if (tmp == NULL) { /* reallocation failed but "a" is still valid [can be freed] */ return MP_MEM; diff --git a/bn_mp_init.c b/bn_mp_init.c index f39b5cd..993ce64 100644 --- a/bn_mp_init.c +++ b/bn_mp_init.c @@ -15,11 +15,10 @@ #include /* init a new bigint */ -int -mp_init (mp_int * a) +int mp_init (mp_int * a) { /* allocate memory required and clear it */ - a->dp = OPT_CAST calloc (sizeof (mp_digit), MP_PREC); + a->dp = OPT_CAST XCALLOC (sizeof (mp_digit), MP_PREC); if (a->dp == NULL) { return MP_MEM; } diff --git a/bn_mp_init_copy.c b/bn_mp_init_copy.c index f0f3590..1c5da4d 100644 --- a/bn_mp_init_copy.c +++ b/bn_mp_init_copy.c @@ -15,8 +15,7 @@ #include /* creates "a" then copies b into it */ -int -mp_init_copy (mp_int * a, mp_int * b) +int mp_init_copy (mp_int * a, mp_int * b) { int res; diff --git a/bn_mp_init_size.c b/bn_mp_init_size.c index 6e15ec0..be27d07 100644 --- a/bn_mp_init_size.c +++ b/bn_mp_init_size.c @@ -15,14 +15,13 @@ #include /* init an mp_init for a given size */ -int -mp_init_size (mp_int * a, int size) +int mp_init_size (mp_int * a, int size) { /* pad size so there are always extra digits */ size += (MP_PREC * 2) - (size % MP_PREC); /* alloc mem */ - a->dp = OPT_CAST calloc (sizeof (mp_digit), size); + a->dp = OPT_CAST XCALLOC (sizeof (mp_digit), size); if (a->dp == NULL) { return MP_MEM; } diff --git a/bn_mp_invmod.c b/bn_mp_invmod.c index ecfc167..4ac5b2f 100644 --- a/bn_mp_invmod.c +++ b/bn_mp_invmod.c @@ -15,8 +15,7 @@ #include /* hac 14.61, pp608 */ -int -mp_invmod (mp_int * a, mp_int * b, mp_int * c) +int mp_invmod (mp_int * a, mp_int * b, mp_int * c) { mp_int x, y, u, v, A, B, C, D; int res; diff --git a/bn_mp_jacobi.c b/bn_mp_jacobi.c index 4c49eb5..634370f 100644 --- a/bn_mp_jacobi.c +++ b/bn_mp_jacobi.c @@ -17,8 +17,7 @@ /* computes the jacobi c = (a | n) (or Legendre if n is prime) * HAC pp. 73 Algorithm 2.149 */ -int -mp_jacobi (mp_int * a, mp_int * p, int *c) +int mp_jacobi (mp_int * a, mp_int * p, int *c) { mp_int a1, p1; int k, s, r, res; diff --git a/bn_mp_lcm.c b/bn_mp_lcm.c index 8a3ccfd..4aa5749 100644 --- a/bn_mp_lcm.c +++ b/bn_mp_lcm.c @@ -15,8 +15,7 @@ #include /* computes least common multiple as |a*b|/(a, b) */ -int -mp_lcm (mp_int * a, mp_int * b, mp_int * c) +int mp_lcm (mp_int * a, mp_int * b, mp_int * c) { int res; mp_int t1, t2; diff --git a/bn_mp_lshd.c b/bn_mp_lshd.c index 15fca0e..f170237 100644 --- a/bn_mp_lshd.c +++ b/bn_mp_lshd.c @@ -15,8 +15,7 @@ #include /* shift left a certain amount of digits */ -int -mp_lshd (mp_int * a, int b) +int mp_lshd (mp_int * a, int b) { int x, res; diff --git a/bn_mp_montgomery_reduce.c b/bn_mp_montgomery_reduce.c index 61bb770..52b98cd 100644 --- a/bn_mp_montgomery_reduce.c +++ b/bn_mp_montgomery_reduce.c @@ -28,8 +28,8 @@ mp_montgomery_reduce (mp_int * x, mp_int * n, mp_digit rho) * are fixed up in the inner loop. */ digs = n->used * 2 + 1; - if ((digs < MP_WARRAY) && - n->used < + if ((digs < MP_WARRAY) && + n->used < (1 << ((CHAR_BIT * sizeof (mp_word)) - (2 * DIGIT_BIT)))) { return fast_mp_montgomery_reduce (x, n, rho); } @@ -51,7 +51,7 @@ mp_montgomery_reduce (mp_int * x, mp_int * n, mp_digit rho) * following inner loop to reduce the * input one digit at a time */ - mu = ((mp_word)x->dp[ix]) * ((mp_word)rho) & MP_MASK; + mu = (mp_digit) (((mp_word)x->dp[ix]) * ((mp_word)rho) & MP_MASK); /* a = a + mu * m * b**i */ { @@ -67,7 +67,7 @@ mp_montgomery_reduce (mp_int * x, mp_int * n, mp_digit rho) /* set the carry to zero */ u = 0; - + /* Multiply and add in place */ for (iy = 0; iy < n->used; iy++) { /* compute product and sum */ diff --git a/bn_mp_mul.c b/bn_mp_mul.c index 8153169..859cccf 100644 --- a/bn_mp_mul.c +++ b/bn_mp_mul.c @@ -15,8 +15,7 @@ #include /* high level multiplication (handles sign) */ -int -mp_mul (mp_int * a, mp_int * b, mp_int * c) +int mp_mul (mp_int * a, mp_int * b, mp_int * c) { int res, neg; neg = (a->sign == b->sign) ? MP_ZPOS : MP_NEG; diff --git a/bn_mp_mul_2.c b/bn_mp_mul_2.c index 6a5b4a7..f947d75 100644 --- a/bn_mp_mul_2.c +++ b/bn_mp_mul_2.c @@ -15,8 +15,7 @@ #include /* b = a*2 */ -int -mp_mul_2 (mp_int * a, mp_int * b) +int mp_mul_2(mp_int * a, mp_int * b) { int x, res, oldused; diff --git a/bn_mp_mul_2d.c b/bn_mp_mul_2d.c index 072ba33..f5fa1d0 100644 --- a/bn_mp_mul_2d.c +++ b/bn_mp_mul_2d.c @@ -15,8 +15,7 @@ #include /* shift left by a certain bit count */ -int -mp_mul_2d (mp_int * a, int b, mp_int * c) +int mp_mul_2d (mp_int * a, int b, mp_int * c) { mp_digit d; int res; diff --git a/bn_mp_mulmod.c b/bn_mp_mulmod.c index 4b14b24..77f8459 100644 --- a/bn_mp_mulmod.c +++ b/bn_mp_mulmod.c @@ -21,7 +21,6 @@ mp_mulmod (mp_int * a, mp_int * b, mp_int * c, mp_int * d) int res; mp_int t; - if ((res = mp_init (&t)) != MP_OKAY) { return res; } diff --git a/bn_mp_n_root.c b/bn_mp_n_root.c index d91f469..755468b 100644 --- a/bn_mp_n_root.c +++ b/bn_mp_n_root.c @@ -24,8 +24,7 @@ * each step involves a fair bit. This is not meant to * find huge roots [square and cube, etc]. */ -int -mp_n_root (mp_int * a, mp_digit b, mp_int * c) +int mp_n_root (mp_int * a, mp_digit b, mp_int * c) { mp_int t1, t2, t3; int res, neg; diff --git a/bn_mp_neg.c b/bn_mp_neg.c index cd40059..debdbd8 100644 --- a/bn_mp_neg.c +++ b/bn_mp_neg.c @@ -15,8 +15,7 @@ #include /* b = -a */ -int -mp_neg (mp_int * a, mp_int * b) +int mp_neg (mp_int * a, mp_int * b) { int res; if ((res = mp_copy (a, b)) != MP_OKAY) { diff --git a/bn_mp_or.c b/bn_mp_or.c index 786a9e5..793e8e9 100644 --- a/bn_mp_or.c +++ b/bn_mp_or.c @@ -15,8 +15,7 @@ #include /* OR two ints together */ -int -mp_or (mp_int * a, mp_int * b, mp_int * c) +int mp_or (mp_int * a, mp_int * b, mp_int * c) { int res, ix, px; mp_int t, *x; diff --git a/bn_mp_prime_fermat.c b/bn_mp_prime_fermat.c index de19676..7d58785 100644 --- a/bn_mp_prime_fermat.c +++ b/bn_mp_prime_fermat.c @@ -22,14 +22,13 @@ * * Sets result to 1 if the congruence holds, or zero otherwise. */ -int -mp_prime_fermat (mp_int * a, mp_int * b, int *result) +int mp_prime_fermat (mp_int * a, mp_int * b, int *result) { mp_int t; int err; /* default to composite */ - *result = 0; + *result = MP_NO; /* ensure b > 1 */ if (mp_cmp_d(b, 1) != MP_GT) { @@ -48,7 +47,7 @@ mp_prime_fermat (mp_int * a, mp_int * b, int *result) /* is it equal to b? */ if (mp_cmp (&t, b) == MP_EQ) { - *result = 1; + *result = MP_YES; } err = MP_OKAY; diff --git a/bn_mp_prime_is_divisible.c b/bn_mp_prime_is_divisible.c index cea3d98..86392d1 100644 --- a/bn_mp_prime_is_divisible.c +++ b/bn_mp_prime_is_divisible.c @@ -19,14 +19,13 @@ * * sets result to 0 if not, 1 if yes */ -int -mp_prime_is_divisible (mp_int * a, int *result) +int mp_prime_is_divisible (mp_int * a, int *result) { int err, ix; mp_digit res; /* default to not */ - *result = 0; + *result = MP_NO; for (ix = 0; ix < PRIME_SIZE; ix++) { /* what is a mod __prime_tab[ix] */ @@ -36,7 +35,7 @@ mp_prime_is_divisible (mp_int * a, int *result) /* is the residue zero? */ if (res == 0) { - *result = 1; + *result = MP_YES; return MP_OKAY; } } diff --git a/bn_mp_prime_is_prime.c b/bn_mp_prime_is_prime.c index 21c8619..88a777b 100644 --- a/bn_mp_prime_is_prime.c +++ b/bn_mp_prime_is_prime.c @@ -21,14 +21,13 @@ * * Sets result to 1 if probably prime, 0 otherwise */ -int -mp_prime_is_prime (mp_int * a, int t, int *result) +int mp_prime_is_prime (mp_int * a, int t, int *result) { mp_int b; int ix, err, res; /* default to no */ - *result = 0; + *result = MP_NO; /* valid value of t? */ if (t <= 0 || t > PRIME_SIZE) { @@ -49,7 +48,7 @@ mp_prime_is_prime (mp_int * a, int t, int *result) } /* return if it was trivially divisible */ - if (res == 1) { + if (res == MP_YES) { return MP_OKAY; } @@ -66,13 +65,13 @@ mp_prime_is_prime (mp_int * a, int t, int *result) goto __B; } - if (res == 0) { + if (res == MP_NO) { goto __B; } } /* passed the test */ - *result = 1; + *result = MP_YES; __B:mp_clear (&b); return err; } diff --git a/bn_mp_prime_miller_rabin.c b/bn_mp_prime_miller_rabin.c index ef89125..0c55d9c 100644 --- a/bn_mp_prime_miller_rabin.c +++ b/bn_mp_prime_miller_rabin.c @@ -21,14 +21,13 @@ * Randomly the chance of error is no more than 1/4 and often * very much lower. */ -int -mp_prime_miller_rabin (mp_int * a, mp_int * b, int *result) +int mp_prime_miller_rabin (mp_int * a, mp_int * b, int *result) { mp_int n1, y, r; int s, j, err; /* default */ - *result = 0; + *result = MP_NO; /* ensure b > 1 */ if (mp_cmp_d(b, 1) != MP_GT) { @@ -90,7 +89,7 @@ mp_prime_miller_rabin (mp_int * a, mp_int * b, int *result) } /* probably prime now */ - *result = 1; + *result = MP_YES; __Y:mp_clear (&y); __R:mp_clear (&r); __N1:mp_clear (&n1); diff --git a/bn_mp_prime_next_prime.c b/bn_mp_prime_next_prime.c index 7dc0e51..f45af81 100644 --- a/bn_mp_prime_next_prime.c +++ b/bn_mp_prime_next_prime.c @@ -146,12 +146,12 @@ int mp_prime_next_prime(mp_int *a, int t, int bbs_style) if ((err = mp_prime_miller_rabin(a, &b, &res)) != MP_OKAY) { goto __ERR; } - if (res == 0) { + if (res == MP_NO) { break; } } - if (res == 1) { + if (res == MP_YES) { break; } } diff --git a/bn_mp_prime_random.c b/bn_mp_prime_random.c new file mode 100644 index 0000000..c28859b --- /dev/null +++ b/bn_mp_prime_random.c @@ -0,0 +1,74 @@ +/* LibTomMath, multiple-precision integer library -- Tom St Denis + * + * LibTomMath is a library that provides multiple-precision + * integer arithmetic as well as number theoretic functionality. + * + * The library was designed directly after the MPI library by + * Michael Fromberger but has been written from scratch with + * additional optimizations in place. + * + * The library is free for all purposes without any express + * guarantee it works. + * + * Tom St Denis, tomstdenis@iahu.ca, http://math.libtomcrypt.org + */ +#include + +/* makes a truly random prime of a given size (bytes), + * call with bbs = 1 if you want it to be congruent to 3 mod 4 + * + * You have to supply a callback which fills in a buffer with random bytes. "dat" is a parameter you can + * have passed to the callback (e.g. a state or something). This function doesn't use "dat" itself + * so it can be NULL + * + * The prime generated will be larger than 2^(8*size). + */ + +/* this sole function may hold the key to enslaving all mankind! */ +int mp_prime_random(mp_int *a, int t, int size, int bbs, ltm_prime_callback cb, void *dat) +{ + unsigned char *tmp; + int res, err; + + /* sanity check the input */ + if (size <= 0) { + return MP_VAL; + } + + /* we need a buffer of size+1 bytes */ + tmp = XMALLOC(size+1); + if (tmp == NULL) { + return MP_MEM; + } + + /* fix MSB */ + tmp[0] = 1; + + do { + /* read the bytes */ + if (cb(tmp+1, size, dat) != size) { + err = MP_VAL; + goto error; + } + + /* fix the LSB */ + tmp[size] |= (bbs ? 3 : 1); + + /* read it in */ + if ((err = mp_read_unsigned_bin(a, tmp, size+1)) != MP_OKAY) { + goto error; + } + + /* is it prime? */ + if ((err = mp_prime_is_prime(a, t, &res)) != MP_OKAY) { + goto error; + } + } while (res == MP_NO); + + err = MP_OKAY; +error: + XFREE(tmp); + return err; +} + + diff --git a/bn_mp_radix_size.c b/bn_mp_radix_size.c index 5755d80..9f888dd 100644 --- a/bn_mp_radix_size.c +++ b/bn_mp_radix_size.c @@ -27,28 +27,36 @@ mp_radix_size (mp_int * a, int radix) return mp_count_bits (a) + (a->sign == MP_NEG ? 1 : 0) + 1; } + /* make sure the radix is in range */ if (radix < 2 || radix > 64) { return 0; } + /* init a copy of the input */ if ((res = mp_init_copy (&t, a)) != MP_OKAY) { return 0; } + /* digs is the digit count */ digs = 0; + + /* if it's negative add one for the sign */ if (t.sign == MP_NEG) { ++digs; t.sign = MP_ZPOS; } + /* fetch out all of the digits */ while (mp_iszero (&t) == 0) { if ((res = mp_div_d (&t, (mp_digit) radix, &t, &d)) != MP_OKAY) { mp_clear (&t); - return 0; + return res; } ++digs; } mp_clear (&t); + + /* return digs + 1, the 1 is for the NULL byte that would be required. */ return digs + 1; } diff --git a/bn_mp_reduce_is_2k.c b/bn_mp_reduce_is_2k.c index 117a8fa..d43b9ff 100644 --- a/bn_mp_reduce_is_2k.c +++ b/bn_mp_reduce_is_2k.c @@ -15,10 +15,9 @@ #include /* determines if mp_reduce_2k can be used */ -int -mp_reduce_is_2k(mp_int *a) +int mp_reduce_is_2k(mp_int *a) { - int ix, iy; + int ix, iy, iz, iw; if (a->used == 0) { return 0; @@ -26,11 +25,19 @@ mp_reduce_is_2k(mp_int *a) return 1; } else if (a->used > 1) { iy = mp_count_bits(a); + iz = 1; + iw = 1; + + /* Test every bit from the second digit up, must be 1 */ for (ix = DIGIT_BIT; ix < iy; ix++) { - if ((a->dp[ix/DIGIT_BIT] & - ((mp_digit)1 << (mp_digit)(ix % DIGIT_BIT))) == 0) { + if ((a->dp[iw] & iz) == 0) { return 0; } + iz <<= 1; + if (iz > (int)MP_MASK) { + ++iw; + iz = 1; + } } } return 1; diff --git a/bn_mp_rshd.c b/bn_mp_rshd.c index f246a93..87d6e3b 100644 --- a/bn_mp_rshd.c +++ b/bn_mp_rshd.c @@ -15,8 +15,7 @@ #include /* shift right a certain amount of digits */ -void -mp_rshd (mp_int * a, int b) +void mp_rshd (mp_int * a, int b) { int x; diff --git a/bn_mp_set.c b/bn_mp_set.c index dab437f..25ccf64 100644 --- a/bn_mp_set.c +++ b/bn_mp_set.c @@ -15,8 +15,7 @@ #include /* set to a digit */ -void -mp_set (mp_int * a, mp_digit b) +void mp_set (mp_int * a, mp_digit b) { mp_zero (a); a->dp[0] = b & MP_MASK; diff --git a/bn_mp_set_int.c b/bn_mp_set_int.c index da3778b..64f1aed 100644 --- a/bn_mp_set_int.c +++ b/bn_mp_set_int.c @@ -15,8 +15,7 @@ #include /* set a 32-bit const */ -int -mp_set_int (mp_int * a, unsigned int b) +int mp_set_int (mp_int * a, unsigned long b) { int x, res; diff --git a/bn_mp_shrink.c b/bn_mp_shrink.c index ef83aee..f7cb53e 100644 --- a/bn_mp_shrink.c +++ b/bn_mp_shrink.c @@ -15,13 +15,14 @@ #include /* shrink a bignum */ -int -mp_shrink (mp_int * a) +int mp_shrink (mp_int * a) { + mp_digit *tmp; if (a->alloc != a->used) { - if ((a->dp = OPT_CAST realloc (a->dp, sizeof (mp_digit) * a->used)) == NULL) { + if ((tmp = OPT_CAST XREALLOC (a->dp, sizeof (mp_digit) * a->used)) == NULL) { return MP_MEM; } + a->dp = tmp; a->alloc = a->used; } return MP_OKAY; diff --git a/bn_mp_toradix.c b/bn_mp_toradix.c index 2c52dd6..359d5f2 100644 --- a/bn_mp_toradix.c +++ b/bn_mp_toradix.c @@ -23,17 +23,18 @@ mp_toradix (mp_int * a, char *str, int radix) mp_digit d; char *_s = str; + /* check range of the radix */ if (radix < 2 || radix > 64) { return MP_VAL; } - + /* quick out if its zero */ if (mp_iszero(a) == 1) { *str++ = '0'; *str = '\0'; return MP_OKAY; } - + if ((res = mp_init_copy (&t, a)) != MP_OKAY) { return res; } @@ -59,11 +60,10 @@ mp_toradix (mp_int * a, char *str, int radix) * to the first digit [exluding the sign] of the number] */ bn_reverse ((unsigned char *)_s, digs); - + /* append a NULL so the string is properly terminated */ - *str++ = '\0'; - - + *str = '\0'; + mp_clear (&t); return MP_OKAY; } diff --git a/bn_prime_sizes_tab.c b/bn_prime_sizes_tab.c new file mode 100644 index 0000000..05904f1 --- /dev/null +++ b/bn_prime_sizes_tab.c @@ -0,0 +1,69 @@ +/* LibTomMath, multiple-precision integer library -- Tom St Denis + * + * LibTomMath is a library that provides multiple-precision + * integer arithmetic as well as number theoretic functionality. + * + * The library was designed directly after the MPI library by + * Michael Fromberger but has been written from scratch with + * additional optimizations in place. + * + * The library is free for all purposes without any express + * guarantee it works. + * + * Tom St Denis, tomstdenis@iahu.ca, http://math.libtomcrypt.org + */ +#include + +/* this table gives the # of rabin miller trials for a prob of failure lower than 2^-96 */ +static const struct { + int k, t; +} sizes[] = { +{ 128, 28 }, +{ 256, 16 }, +{ 384, 10 }, +{ 512, 7 }, +{ 640, 6 }, +{ 768, 5 }, +{ 896, 4 }, +{ 1024, 4 }, +{ 1152, 3 }, +{ 1280, 3 }, +{ 1408, 3 }, +{ 1536, 3 }, +{ 1664, 3 }, +{ 1792, 2 }, +{ 1920, 2 }, +{ 2048, 2 }, +{ 2176, 2 }, +{ 2304, 2 }, +{ 2432, 2 }, +{ 2560, 2 }, +{ 2688, 2 }, +{ 2816, 2 }, +{ 2944, 2 }, +{ 3072, 2 }, +{ 3200, 2 }, +{ 3328, 2 }, +{ 3456, 2 }, +{ 3584, 2 }, +{ 3712, 2 }, +{ 3840, 1 }, +{ 3968, 1 }, +{ 4096, 1 } }; + +/* returns # of RM trials required for a given bit size */ +int mp_prime_rabin_miller_trials(int size) +{ + int x; + + for (x = 0; x < (int)(sizeof(sizes)/(sizeof(sizes[0]))); x++) { + if (sizes[x].k == size) { + return sizes[x].t; + } else if (sizes[x].k > size) { + return (x == 0) ? sizes[0].t : sizes[x - 1].t; + } + } + return 1; +} + + diff --git a/bn_s_mp_sqr.c b/bn_s_mp_sqr.c index 3b68152..b282470 100644 --- a/bn_s_mp_sqr.c +++ b/bn_s_mp_sqr.c @@ -26,7 +26,9 @@ s_mp_sqr (mp_int * a, mp_int * b) pa = a->used; if ((res = mp_init_size (&t, 2*pa + 1)) != MP_OKAY) { return res; - } + } + + /* default used is maximum possible size */ t.used = 2*pa + 1; for (ix = 0; ix < pa; ix++) { @@ -36,20 +38,20 @@ s_mp_sqr (mp_int * a, mp_int * b) ((mp_word)a->dp[ix])*((mp_word)a->dp[ix]); /* store lower part in result */ - t.dp[2*ix] = (mp_digit) (r & ((mp_word) MP_MASK)); + t.dp[ix+ix] = (mp_digit) (r & ((mp_word) MP_MASK)); /* get the carry */ - u = (mp_digit)(r >> ((mp_word) DIGIT_BIT)); + u = (mp_digit)(r >> ((mp_word) DIGIT_BIT)); /* left hand side of A[ix] * A[iy] */ - tmpx = a->dp[ix]; + tmpx = a->dp[ix]; /* alias for where to store the results */ - tmpt = t.dp + (2*ix + 1); + tmpt = t.dp + (2*ix + 1); for (iy = ix + 1; iy < pa; iy++) { /* first calculate the product */ - r = ((mp_word)tmpx) * ((mp_word)a->dp[iy]); + r = ((mp_word)tmpx) * ((mp_word)a->dp[iy]); /* now calculate the double precision result, note we use * addition instead of *2 since it's easier to optimize diff --git a/changes.txt b/changes.txt index b6c6fad..87b3906 100644 --- a/changes.txt +++ b/changes.txt @@ -1,3 +1,24 @@ +Dec 24th, 2003 +v0.28 -- Henrik suggested I add casts to the montomgery code [stores into mu...] so compilers wouldn't + spew [erroneous] diagnostics... fixed. + -- Henrik also spotted two typos. One in mp_radix_size() and another in mp_toradix(). + -- Added fix to mp_shrink() to avoid a memory leak. + -- Added mp_prime_random() which requires a callback to make truly random primes of a given nature + (idea from chat with Niels Ferguson at Crypto'03) + -- Picked up a second wind. I'm filled with Gooo. Mission Gooo! + -- Removed divisions from mp_reduce_is_2k() + -- Sped up mp_div_d() [general case] to use only one division per digit instead of two. + -- Added the heap macros from LTC to LTM. Now you can easily [by editing four lines of tommath.h] + change the name of the heap functions used in LTM [also compatible with LTC via MPI mode] + -- Added bn_prime_rabin_miller_trials() which gives the number of Rabin-Miller trials to achieve + a failure rate of less than 2^-96 + -- fixed bug in fast_mp_invmod(). The initial testing logic was wrong. An invalid input is not when + "a" and "b" are even it's when "b" is even [the algo is for odd moduli only]. + -- Started a new manual [finally]. It is incomplete and will be finished as time goes on. I had to stop + adding full demos around half way in chapter three so I could at least get a good portion of the + manual done. If you really need help using the library you can always email me! + -- My Textbook is now included as part of the package [all Public Domain] + Sept 19th, 2003 v0.27 -- Removed changes.txt~ which was made by accident since "kate" decided it was a good time to re-enable backups... [kde is fun!] diff --git a/demo/demo.c b/demo/demo.c index 3b7997d..7d78456 100644 --- a/demo/demo.c +++ b/demo/demo.c @@ -111,10 +111,10 @@ int main(void) /* test mp_reduce_2k */ #if 0 - for (cnt = 3; cnt <= 256; ++cnt) { + for (cnt = 3; cnt <= 384; ++cnt) { mp_digit tmp; mp_2expt(&a, cnt); - mp_sub_d(&a, 1, &a); /* a = 2**cnt - 1 */ + mp_sub_d(&a, 2, &a); /* a = 2**cnt - 2 */ printf("\nTesting %4d bits", cnt); @@ -138,11 +138,11 @@ int main(void) /* test mp_div_3 */ #if 0 - for (cnt = 0; cnt < 10000; ) { + for (cnt = 0; cnt < 1000000; ) { mp_digit r1, r2; if (!(++cnt & 127)) printf("%9d\r", cnt); - mp_rand(&a, abs(rand()) % 32 + 1); + mp_rand(&a, abs(rand()) % 128 + 1); mp_div_d(&a, 3, &b, &r1); mp_div_3(&a, &c, &r2); @@ -155,7 +155,7 @@ int main(void) /* test the DR reduction */ #if 0 - for (cnt = 2; cnt < 32; cnt++) { + for (cnt = 2; cnt < 128; cnt++) { printf("%d digit modulus\n", cnt); mp_grow(&a, cnt); mp_zero(&a); @@ -181,7 +181,7 @@ int main(void) printf("Failed on trial %lu\n", rr); exit(-1); } - } while (++rr < 10000); + } while (++rr < 100000); printf("Passed DR test for %d digits\n", cnt); } #endif @@ -203,8 +203,8 @@ int main(void) rr += 16; } while (rdtsc() < (CLOCKS_PER_SEC * 2)); tt = rdtsc(); - printf("Adding\t\t%4d-bit => %9llu/sec, %9llu ticks\n", mp_count_bits(&a), (((unsigned long long)rr)*CLOCKS_PER_SEC)/tt, tt); - fprintf(log, "%d %9llu\n", cnt*DIGIT_BIT, (((unsigned long long)rr)*CLOCKS_PER_SEC)/tt); + printf("Adding\t\t%4d-bit => %9llu/sec, %9llu ticks\n", mp_count_bits(&a), (((ulong64)rr)*CLOCKS_PER_SEC)/tt, tt); + fprintf(log, "%d %9llu\n", cnt*DIGIT_BIT, (((ulong64)rr)*CLOCKS_PER_SEC)/tt); } fclose(log); @@ -220,12 +220,13 @@ int main(void) rr += 16; } while (rdtsc() < (CLOCKS_PER_SEC * 2)); tt = rdtsc(); - printf("Subtracting\t\t%4d-bit => %9llu/sec, %9llu ticks\n", mp_count_bits(&a), (((unsigned long long)rr)*CLOCKS_PER_SEC)/tt, tt); - fprintf(log, "%d %9llu\n", cnt*DIGIT_BIT, (((unsigned long long)rr)*CLOCKS_PER_SEC)/tt); + printf("Subtracting\t\t%4d-bit => %9llu/sec, %9llu ticks\n", mp_count_bits(&a), (((ulong64)rr)*CLOCKS_PER_SEC)/tt, tt); + fprintf(log, "%d %9llu\n", cnt*DIGIT_BIT, (((ulong64)rr)*CLOCKS_PER_SEC)/tt); } fclose(log); /* do mult/square twice, first without karatsuba and second with */ +mult_test: old_kara_m = KARATSUBA_MUL_CUTOFF; old_kara_s = KARATSUBA_SQR_CUTOFF; for (ix = 0; ix < 2; ix++) { @@ -246,8 +247,8 @@ int main(void) rr += 16; } while (rdtsc() < (CLOCKS_PER_SEC * 2)); tt = rdtsc(); - printf("Multiplying\t%4d-bit => %9llu/sec, %9llu ticks\n", mp_count_bits(&a), (((unsigned long long)rr)*CLOCKS_PER_SEC)/tt, tt); - fprintf(log, "%d %9llu\n", cnt*DIGIT_BIT, (((unsigned long long)rr)*CLOCKS_PER_SEC)/tt); + printf("Multiplying\t%4d-bit => %9llu/sec, %9llu ticks\n", mp_count_bits(&a), (((ulong64)rr)*CLOCKS_PER_SEC)/tt, tt); + fprintf(log, "%d %9llu\n", mp_count_bits(&a), (((ulong64)rr)*CLOCKS_PER_SEC)/tt); } fclose(log); @@ -262,8 +263,8 @@ int main(void) rr += 16; } while (rdtsc() < (CLOCKS_PER_SEC * 2)); tt = rdtsc(); - printf("Squaring\t%4d-bit => %9llu/sec, %9llu ticks\n", mp_count_bits(&a), (((unsigned long long)rr)*CLOCKS_PER_SEC)/tt, tt); - fprintf(log, "%d %9llu\n", cnt*DIGIT_BIT, (((unsigned long long)rr)*CLOCKS_PER_SEC)/tt); + printf("Squaring\t%4d-bit => %9llu/sec, %9llu ticks\n", mp_count_bits(&a), (((ulong64)rr)*CLOCKS_PER_SEC)/tt, tt); + fprintf(log, "%d %9llu\n", mp_count_bits(&a), (((ulong64)rr)*CLOCKS_PER_SEC)/tt); } fclose(log); @@ -297,12 +298,14 @@ int main(void) "1214855636816562637502584060163403830270705000634713483015101384881871978446801224798536155406895823305035467591632531067547890948695117172076954220727075688048751022421198712032848890056357845974246560748347918630050853933697792254955890439720297560693579400297062396904306270145886830719309296352765295712183040773146419022875165382778007040109957609739589875590885701126197906063620133954893216612678838507540777138437797705602453719559017633986486649523611975865005712371194067612263330335590526176087004421363598470302731349138773205901447704682181517904064735636518462452242791676541725292378925568296858010151852326316777511935037531017413910506921922450666933202278489024521263798482237150056835746454842662048692127173834433089016107854491097456725016327709663199738238442164843147132789153725513257167915555162094970853584447993125488607696008169807374736711297007473812256272245489405898470297178738029484459690836250560495461579533254473316340608217876781986188705928270735695752830825527963838355419762516246028680280988020401914551825487349990306976304093109384451438813251211051597392127491464898797406789175453067960072008590614886532333015881171367104445044718144312416815712216611576221546455968770801413440778423979", NULL }; +expt_test: log = fopen("logs/expt.log", "w"); logb = fopen("logs/expt_dr.log", "w"); logc = fopen("logs/expt_2k.log", "w"); for (n = 0; primes[n]; n++) { SLEEP; mp_read_radix(&a, primes[n], 10); + printf("Different (%d)!!!\n", mp_count_bits(&a)); mp_zero(&b); for (rr = 0; rr < mp_count_bits(&a); rr++) { mp_mul_2(&b, &b); @@ -328,8 +331,8 @@ int main(void) draw(&d); exit(0); } - printf("Exponentiating\t%4d-bit => %9llu/sec, %9llu ticks\n", mp_count_bits(&a), (((unsigned long long)rr)*CLOCKS_PER_SEC)/tt, tt); - fprintf((n < 6) ? logc : (n < 13) ? logb : log, "%d %9llu\n", mp_count_bits(&a), (((unsigned long long)rr)*CLOCKS_PER_SEC)/tt); + printf("Exponentiating\t%4d-bit => %9llu/sec, %9llu ticks\n", mp_count_bits(&a), (((ulong64)rr)*CLOCKS_PER_SEC)/tt, tt); + fprintf((n < 6) ? logc : (n < 13) ? logb : log, "%d %9llu\n", mp_count_bits(&a), (((ulong64)rr)*CLOCKS_PER_SEC)/tt); } } fclose(log); @@ -359,8 +362,8 @@ int main(void) printf("Failed to invert\n"); return 0; } - printf("Inverting mod\t%4d-bit => %9llu/sec, %9llu ticks\n", mp_count_bits(&a), (((unsigned long long)rr)*CLOCKS_PER_SEC)/tt, tt); - fprintf(log, "%d %9llu\n", cnt*DIGIT_BIT, (((unsigned long long)rr)*CLOCKS_PER_SEC)/tt); + printf("Inverting mod\t%4d-bit => %9llu/sec, %9llu ticks\n", mp_count_bits(&a), (((ulong64)rr)*CLOCKS_PER_SEC)/tt, tt); + fprintf(log, "%d %9llu\n", cnt*DIGIT_BIT, (((ulong64)rr)*CLOCKS_PER_SEC)/tt); } fclose(log); diff --git a/etc/2kprime.1 b/etc/2kprime.1 index e69de29..c41ded1 100644 --- a/etc/2kprime.1 +++ b/etc/2kprime.1 @@ -0,0 +1,2 @@ +256-bits (k = 36113) = 115792089237316195423570985008687907853269984665640564039457584007913129603823 +512-bits (k = 38117) = 13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006045979 diff --git a/etc/drprimes.txt b/etc/drprimes.txt index 5022e80..2c887ea 100644 --- a/etc/drprimes.txt +++ b/etc/drprimes.txt @@ -1,3 +1,6 @@ -280-bit prime: -p == 1942668892225729070919461906823518906642406839052139521251812409738904285204940164839 - +280-bit prime: +p == 1942668892225729070919461906823518906642406839052139521251812409738904285204940164839 + +532-bit prime: +p == 14059105607947488696282932836518693308967803494693489478439861164411992439598399594747002144074658928593502845729752797260025831423419686528151609940203368691747 + diff --git a/etc/makefile b/etc/makefile index 84d1aa3..98ddb1c 100644 --- a/etc/makefile +++ b/etc/makefile @@ -19,6 +19,11 @@ tune86: tune.c nasm -f coff timer.asm $(CC) -DX86_TIMER $(CFLAGS) tune.c timer.o $(LIBNAME) -o tune86 +# for cygwin +tune86c: tune.c + nasm -f gnuwin32 timer.asm + $(CC) -DX86_TIMER $(CFLAGS) tune.c timer.o $(LIBNAME) -o tune86 + #make tune86 for linux or any ELF format tune86l: tune.c nasm -f elf -DUSE_ELF timer.asm diff --git a/logs/add.log b/logs/add.log index 0cbbbfd..4921585 100644 --- a/logs/add.log +++ b/logs/add.log @@ -1,16 +1,16 @@ -224 12849536 -448 9956080 -672 8372000 -896 7065464 -1120 5824864 -1344 5141728 -1568 4511808 -1792 4170480 -2016 3802536 -2240 3500936 -2464 3193352 -2688 2991976 -2912 2818672 -3136 2661448 -3360 2506560 -3584 2343304 +224 8622881 +448 7241417 +672 5844712 +896 4938016 +1120 4256543 +1344 3728000 +1568 3328263 +1792 3012161 +2016 2743688 +2240 2512095 +2464 2234464 +2688 1960139 +2912 2013395 +3136 1879636 +3360 1756301 +3584 1680982 diff --git a/logs/expt.log b/logs/expt.log index 1c256bb..e69de29 100644 --- a/logs/expt.log +++ b/logs/expt.log @@ -1,7 +0,0 @@ -513 600 -769 221 -1025 103 -2049 15 -2561 8 -3073 4 -4097 2 diff --git a/logs/expt_2k.log b/logs/expt_2k.log index f6d1ddd..e69de29 100644 --- a/logs/expt_2k.log +++ b/logs/expt_2k.log @@ -1,6 +0,0 @@ -521 728 -607 549 -1279 100 -2203 29 -3217 11 -4253 5 diff --git a/logs/expt_dr.log b/logs/expt_dr.log index 7f72a1a..e69de29 100644 --- a/logs/expt_dr.log +++ b/logs/expt_dr.log @@ -1,7 +0,0 @@ -532 1032 -784 424 -1036 214 -1540 81 -2072 38 -3080 13 -4116 5 diff --git a/logs/mult.log b/logs/mult.log index ac8bbe4..0501747 100644 --- a/logs/mult.log +++ b/logs/mult.log @@ -1,17 +1,17 @@ -896 301008 -1344 141872 -1792 84424 -2240 55864 -2688 39784 -3136 29624 -3584 22952 -4032 18304 -4480 14944 -4928 12432 -5376 10496 -5824 8976 -6272 7776 -6720 6792 -7168 1656 -7616 1472 -8064 1312 +896 348504 +1344 165040 +1792 98696 +2240 65400 +2688 46672 +3136 34968 +3584 27144 +4032 21648 +4480 17672 +4928 14768 +5376 12416 +5824 10696 +6272 9184 +6720 8064 +7168 1896 +7616 1680 +8064 1504 diff --git a/logs/sqr.log b/logs/sqr.log index 14f7178..ae1a929 100644 --- a/logs/sqr.log +++ b/logs/sqr.log @@ -1,17 +1,17 @@ -896 371856 -1344 196352 -1792 122312 -2240 83144 -2688 60304 -3136 45832 -3584 12760 -4032 10160 -4480 8352 -4928 6944 -5376 5824 -5824 5008 -6272 4336 -6720 3768 -7168 3280 -7616 2952 -8064 2640 +911 167013 +1359 83796 +1807 50308 +2254 33637 +2703 24067 +3151 17997 +3599 5751 +4047 4561 +4490 3714 +4943 3067 +5391 2597 +5839 2204 +6286 1909 +6735 1637 +7183 1461 +7631 1302 +8078 1158 diff --git a/logs/sqr.old b/logs/sqr.old new file mode 100644 index 0000000..3c85882 --- /dev/null +++ b/logs/sqr.old @@ -0,0 +1,17 @@ +896 382617 +1344 207161 +1792 131522 +2240 90775 +2688 66652 +3136 50955 +3584 11678 +4032 9342 +4480 7684 +4928 6382 +5376 5399 +5824 4545 +6272 3994 +6720 3490 +7168 3075 +7616 2733 +8064 2428 diff --git a/logs/sqr_kara.log b/logs/sqr_kara.log index 336f4f7..3c85942 100644 --- a/logs/sqr_kara.log +++ b/logs/sqr_kara.log @@ -1,17 +1,17 @@ -896 372256 -1344 196368 -1792 122272 -2240 82976 -2688 60480 -3136 45808 -3584 33296 -4032 27888 -4480 23608 -4928 20296 -5376 17576 -5824 15416 -6272 13600 -6720 12104 -7168 10080 -7616 9232 -8064 8008 +910 165312 +1358 84355 +1806 50316 +2255 33661 +2702 24027 +3151 18068 +3599 14721 +4046 12101 +4493 10112 +4942 8591 +5390 7364 +5839 6398 +6285 5607 +6735 4952 +7182 4625 +7631 4193 +8079 3810 diff --git a/logs/sub.log b/logs/sub.log index ce6ee3f..bf1d36f 100644 --- a/logs/sub.log +++ b/logs/sub.log @@ -1,16 +1,16 @@ -224 9325944 -448 8075808 -672 7054912 -896 5757992 -1120 5081768 -1344 4669384 -1568 4422384 -1792 3900416 -2016 3548872 -2240 3428912 -2464 3216968 -2688 2905280 -2912 2782664 -3136 2591440 -3360 2475728 -3584 2282216 +224 10295756 +448 7577910 +672 6279588 +896 5345182 +1120 4646989 +1344 4101759 +1568 3685447 +1792 3337497 +2016 3051095 +2240 2811900 +2464 2605371 +2688 2420561 +2912 2273174 +3136 2134662 +3360 2014354 +3584 1901723 diff --git a/makefile b/makefile index e40b637..e2a7f5e 100644 --- a/makefile +++ b/makefile @@ -4,9 +4,9 @@ CFLAGS += -I./ -Wall -W -Wshadow -O3 -funroll-loops #x86 optimizations [should be valid for any GCC install though] -CFLAGS += -fomit-frame-pointer +CFLAGS += -fomit-frame-pointer -VERSION=0.27 +VERSION=0.28 default: libtommath.a @@ -44,7 +44,7 @@ bn_mp_toom_mul.o bn_mp_toom_sqr.o bn_mp_div_3.o bn_s_mp_exptmod.o \ bn_mp_reduce_2k.o bn_mp_reduce_is_2k.o bn_mp_reduce_2k_setup.o \ bn_mp_radix_smap.o bn_mp_read_radix.o bn_mp_toradix.o bn_mp_radix_size.o \ bn_mp_fread.o bn_mp_fwrite.o bn_mp_cnt_lsb.o bn_error.o \ -bn_mp_init_multi.o bn_mp_clear_multi.o +bn_mp_init_multi.o bn_mp_clear_multi.o bn_mp_prime_random.o bn_prime_sizes_tab.o libtommath.a: $(OBJECTS) $(AR) $(ARFLAGS) libtommath.a $(OBJECTS) @@ -81,29 +81,35 @@ poster: poster.tex docs: cd pics ; make pdfes echo "hello" > tommath.ind - perl booker.pl PDF + perl booker.pl PDF latex tommath > /dev/null makeindex tommath latex tommath > /dev/null pdflatex tommath rm -f tommath.log tommath.aux tommath.dvi tommath.idx tommath.toc tommath.lof tommath.ind tommath.ilg + cd pics ; make clean -#the old manual being phased out -manual: - latex bn - pdflatex bn - rm -f bn.aux bn.dvi bn.log +#LTM user manual +mandvi: bn.tex + echo "hello" > bn.ind + latex bn > /dev/null + makeindex bn + latex bn > /dev/null + +#LTM user manual [pdf] +manual: mandvi + pdflatex bn >/dev/null + rm -f bn.aux bn.dvi bn.log bn.idx bn.lof bn.out bn.toc clean: - rm -f *.bat *.pdf *.o *.a *.obj *.lib *.exe etclib/*.o demo/demo.o test ltmtest mpitest mtest/mtest mtest/mtest.exe \ - tommath.idx tommath.toc tommath.log tommath.aux tommath.dvi tommath.lof tommath.ind tommath.ilg *.ps *.pdf *.log *.s mpi.c \ - poster.aux poster.dvi poster.log + rm -f *.bat *.pdf *.o *.a *.obj *.lib *.exe *.dll etclib/*.o demo/demo.o test ltmtest mpitest mtest/mtest mtest/mtest.exe \ + *.idx *.toc *.log *.aux *.dvi *.lof *.ind *.ilg *.ps *.log *.s mpi.c cd etc ; make clean cd pics ; make clean -zipup: clean manual poster +zipup: clean manual poster docs perl gen.pl ; mv mpi.c pre_gen/ ; \ cd .. ; rm -rf ltm* libtommath-$(VERSION) ; mkdir libtommath-$(VERSION) ; \ - cp -R ./libtommath/* ./libtommath-$(VERSION)/ ; cd ./libtommath-$(VERSION) ; rm -f tommath.src tommath.tex tommath.out ; cd pics ; rm -f *.tif *.ps *.pdf ; cd .. ; cd .. ; ls ; \ - tar -c libtommath-$(VERSION)/* > ltm-$(VERSION).tar ; \ - bzip2 -9vv ltm-$(VERSION).tar ; zip -9 -r ltm-$(VERSION).zip libtommath-$(VERSION)/* + cp -R ./libtommath/* ./libtommath-$(VERSION)/ ; \ + tar -c libtommath-$(VERSION)/* | bzip2 -9vvc > ltm-$(VERSION).tar.bz2 ; \ + zip -9 -r ltm-$(VERSION).zip libtommath-$(VERSION)/* diff --git a/makefile.bcc b/makefile.bcc index 2a6b0b5..4906612 100644 --- a/makefile.bcc +++ b/makefile.bcc @@ -29,7 +29,7 @@ bn_mp_toom_mul.obj bn_mp_toom_sqr.obj bn_mp_div_3.obj bn_s_mp_exptmod.obj \ bn_mp_reduce_2k.obj bn_mp_reduce_is_2k.obj bn_mp_reduce_2k_setup.obj \ bn_mp_radix_smap.obj bn_mp_read_radix.obj bn_mp_toradix.obj bn_mp_radix_size.obj \ bn_mp_fread.obj bn_mp_fwrite.obj bn_mp_cnt_lsb.obj bn_error.obj \ -bn_mp_init_multi.obj bn_mp_clear_multi.obj +bn_mp_init_multi.obj bn_mp_clear_multi.obj bn_mp_prime_random.obj bn_prime_sizes_tab.obj TARGET = libtommath.lib diff --git a/makefile.cygwin_dll b/makefile.cygwin_dll new file mode 100644 index 0000000..cf73161 --- /dev/null +++ b/makefile.cygwin_dll @@ -0,0 +1,47 @@ +#Makefile for Cygwin-GCC +# +#This makefile will build a Windows DLL [doesn't require cygwin to run] in the file +#libtommath.dll. The import library is in libtommath.dll.a. Remember to add +#"-Wl,--enable-auto-import" to your client build to avoid the auto-import warnings +# +#Tom St Denis +CFLAGS += -I./ -Wall -W -Wshadow -O3 -funroll-loops -mno-cygwin + +#x86 optimizations [should be valid for any GCC install though] +CFLAGS += -fomit-frame-pointer + +default: windll + +OBJECTS=bncore.o bn_mp_init.o bn_mp_clear.o bn_mp_exch.o bn_mp_grow.o bn_mp_shrink.o \ +bn_mp_clamp.o bn_mp_zero.o bn_mp_set.o bn_mp_set_int.o bn_mp_init_size.o bn_mp_copy.o \ +bn_mp_init_copy.o bn_mp_abs.o bn_mp_neg.o bn_mp_cmp_mag.o bn_mp_cmp.o bn_mp_cmp_d.o \ +bn_mp_rshd.o bn_mp_lshd.o bn_mp_mod_2d.o bn_mp_div_2d.o bn_mp_mul_2d.o bn_mp_div_2.o \ +bn_mp_mul_2.o bn_s_mp_add.o bn_s_mp_sub.o bn_fast_s_mp_mul_digs.o bn_s_mp_mul_digs.o \ +bn_fast_s_mp_mul_high_digs.o bn_s_mp_mul_high_digs.o bn_fast_s_mp_sqr.o bn_s_mp_sqr.o \ +bn_mp_add.o bn_mp_sub.o bn_mp_karatsuba_mul.o bn_mp_mul.o bn_mp_karatsuba_sqr.o \ +bn_mp_sqr.o bn_mp_div.o bn_mp_mod.o bn_mp_add_d.o bn_mp_sub_d.o bn_mp_mul_d.o \ +bn_mp_div_d.o bn_mp_mod_d.o bn_mp_expt_d.o bn_mp_addmod.o bn_mp_submod.o \ +bn_mp_mulmod.o bn_mp_sqrmod.o bn_mp_gcd.o bn_mp_lcm.o bn_fast_mp_invmod.o bn_mp_invmod.o \ +bn_mp_reduce.o bn_mp_montgomery_setup.o bn_fast_mp_montgomery_reduce.o bn_mp_montgomery_reduce.o \ +bn_mp_exptmod_fast.o bn_mp_exptmod.o bn_mp_2expt.o bn_mp_n_root.o bn_mp_jacobi.o bn_reverse.o \ +bn_mp_count_bits.o bn_mp_read_unsigned_bin.o bn_mp_read_signed_bin.o bn_mp_to_unsigned_bin.o \ +bn_mp_to_signed_bin.o bn_mp_unsigned_bin_size.o bn_mp_signed_bin_size.o \ +bn_mp_xor.o bn_mp_and.o bn_mp_or.o bn_mp_rand.o bn_mp_montgomery_calc_normalization.o \ +bn_mp_prime_is_divisible.o bn_prime_tab.o bn_mp_prime_fermat.o bn_mp_prime_miller_rabin.o \ +bn_mp_prime_is_prime.o bn_mp_prime_next_prime.o bn_mp_dr_reduce.o \ +bn_mp_dr_is_modulus.o bn_mp_dr_setup.o bn_mp_reduce_setup.o \ +bn_mp_toom_mul.o bn_mp_toom_sqr.o bn_mp_div_3.o bn_s_mp_exptmod.o \ +bn_mp_reduce_2k.o bn_mp_reduce_is_2k.o bn_mp_reduce_2k_setup.o \ +bn_mp_radix_smap.o bn_mp_read_radix.o bn_mp_toradix.o bn_mp_radix_size.o \ +bn_mp_fread.o bn_mp_fwrite.o bn_mp_cnt_lsb.o bn_error.o \ +bn_mp_init_multi.o bn_mp_clear_multi.o bn_mp_prime_random.o bn_prime_sizes_tab.o + +# make a Windows DLL via Cygwin +windll: $(OBJECTS) + gcc -mno-cygwin -mdll -o libtommath.dll -Wl,--out-implib=libtommath.dll.a -Wl,--export-all-symbols *.o + ranlib libtommath.dll.a + +# build the test program using the windows DLL +test: $(OBJECTS) windll + gcc $(CFLAGS) demo/demo.c libtommath.dll.a -Wl,--enable-auto-import -o test -s + cd mtest ; $(CC) -O3 -fomit-frame-pointer -funroll-loops mtest.c -o mtest -s diff --git a/makefile.msvc b/makefile.msvc index df655dd..eb4b2f1 100644 --- a/makefile.msvc +++ b/makefile.msvc @@ -2,7 +2,7 @@ # #Tom St Denis -CFLAGS = /I. /Ox /DWIN32 /W3 +CFLAGS = /I. /Ox /DWIN32 /W4 default: library @@ -28,7 +28,7 @@ bn_mp_toom_mul.obj bn_mp_toom_sqr.obj bn_mp_div_3.obj bn_s_mp_exptmod.obj \ bn_mp_reduce_2k.obj bn_mp_reduce_is_2k.obj bn_mp_reduce_2k_setup.obj \ bn_mp_radix_smap.obj bn_mp_read_radix.obj bn_mp_toradix.obj bn_mp_radix_size.obj \ bn_mp_fread.obj bn_mp_fwrite.obj bn_mp_cnt_lsb.obj bn_error.obj \ -bn_mp_init_multi.obj bn_mp_clear_multi.obj +bn_mp_init_multi.obj bn_mp_clear_multi.obj bn_mp_prime_random.obj bn_prime_sizes_tab.obj library: $(OBJECTS) lib /out:tommath.lib $(OBJECTS) diff --git a/mtest/test.c~ b/mtest/test.c~ deleted file mode 100644 index efdaa58..0000000 --- a/mtest/test.c~ +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include "mpi.c" - -int main(void) -{ - mp_int a, b; - int ix; - char buf[1024]; - - mp_init(&a); - mp_init(&b); - - mp_set(&a, 0x1B); - mp_neg(&a, &a); - ix = 0; - mp_add_d(&a, ix, &b); - - mp_toradix(&b, buf, 64); - printf("b == %s\n", buf); - return 0; -} - - diff --git a/pics/design_process.tif b/pics/design_process.tif new file mode 100644 index 0000000..4a0c012 Binary files /dev/null and b/pics/design_process.tif differ diff --git a/pics/expt_state.tif b/pics/expt_state.tif new file mode 100644 index 0000000..cb06e8e Binary files /dev/null and b/pics/expt_state.tif differ diff --git a/pics/primality.tif b/pics/primality.tif new file mode 100644 index 0000000..76d6be3 Binary files /dev/null and b/pics/primality.tif differ diff --git a/pics/radix.sxd b/pics/radix.sxd new file mode 100644 index 0000000..b9eb9a0 Binary files /dev/null and b/pics/radix.sxd differ diff --git a/pics/sliding_window.tif b/pics/sliding_window.tif new file mode 100644 index 0000000..bb4cb96 Binary files /dev/null and b/pics/sliding_window.tif differ diff --git a/poster.pdf b/poster.pdf index 237e88e..be6cd01 100644 Binary files a/poster.pdf and b/poster.pdf differ diff --git a/poster.tex b/poster.tex index 64af993..e7388f4 100644 --- a/poster.tex +++ b/poster.tex @@ -2,7 +2,6 @@ \usepackage{amsmath, amssymb} \usepackage{hyperref} \begin{document} - \hspace*{-3in} \begin{tabular}{llllll} $c = a + b$ & {\tt mp\_add(\&a, \&b, \&c)} & $b = 2a$ & {\tt mp\_mul\_2(\&a, \&b)} & \\ diff --git a/pre_gen/mpi.c b/pre_gen/mpi.c index e146f4c..88ada33 100644 --- a/pre_gen/mpi.c +++ b/pre_gen/mpi.c @@ -72,11 +72,8 @@ fast_mp_invmod (mp_int * a, mp_int * b, mp_int * c) mp_int x, y, u, v, B, D; int res, neg; - /* 2. [modified] if a,b are both even then return an error! - * - * That is if gcd(a,b) = 2**k * q then obviously there is no inverse. - */ - if (mp_iseven (a) == 1 && mp_iseven (b) == 1) { + /* 2. [modified] b must be odd */ + if (mp_iseven (b) == 1) { return MP_VAL; } @@ -210,11 +207,11 @@ __ERR:mp_clear_multi (&x, &y, &u, &v, &B, &D, NULL); */ #include -/* computes xR**-1 == x (mod N) via Montgomery Reduction - * - * This is an optimized implementation of mp_montgomery_reduce +/* computes xR**-1 == x (mod N) via Montgomery Reduction + * + * This is an optimized implementation of mp_montgomery_reduce * which uses the comba method to quickly calculate the columns of the - * reduction. + * reduction. * * Based on Algorithm 14.32 on pp.601 of HAC. */ @@ -265,11 +262,11 @@ fast_mp_montgomery_reduce (mp_int * x, mp_int * n, mp_digit rho) /* mu = ai * m' mod b * * We avoid a double precision multiplication (which isn't required) - * by casting the value down to a mp_digit. Note this requires + * by casting the value down to a mp_digit. Note this requires * that W[ix-1] have the carry cleared (see after the inner loop) */ register mp_digit mu; - mu = ((W[ix] & MP_MASK) * rho) & MP_MASK; + mu = (mp_digit) (((W[ix] & MP_MASK) * rho) & MP_MASK); /* a = a + mu * m * b**i * @@ -277,12 +274,12 @@ fast_mp_montgomery_reduce (mp_int * x, mp_int * n, mp_digit rho) * by b**i is handled by offseting which columns the results * are added to. * - * Note the comba method normally doesn't handle carries in the - * inner loop In this case we fix the carry from the previous - * column since the Montgomery reduction requires digits of the + * Note the comba method normally doesn't handle carries in the + * inner loop In this case we fix the carry from the previous + * column since the Montgomery reduction requires digits of the * result (so far) [see above] to work. This is - * handled by fixing up one carry after the inner loop. The - * carry fixups are done in order so after these loops the + * handled by fixing up one carry after the inner loop. The + * carry fixups are done in order so after these loops the * first m->used words of W[] have the carries fixed */ { @@ -328,8 +325,8 @@ fast_mp_montgomery_reduce (mp_int * x, mp_int * n, mp_digit rho) /* copy out, A = A/b**n * - * The result is A/b**n but instead of converting from an - * array of mp_word to mp_digit than calling mp_rshd + * The result is A/b**n but instead of converting from an + * array of mp_word to mp_digit than calling mp_rshd * we just copy them in the right order */ @@ -619,16 +616,16 @@ fast_s_mp_mul_high_digs (mp_int * a, mp_int * b, mp_int * c, int digs) /* fast squaring * - * This is the comba method where the columns of the product - * are computed first then the carries are computed. This - * has the effect of making a very simple inner loop that + * This is the comba method where the columns of the product + * are computed first then the carries are computed. This + * has the effect of making a very simple inner loop that * is executed the most * * W2 represents the outer products and W the inner. * - * A further optimizations is made because the inner - * products are of the form "A * B * 2". The *2 part does - * not need to be computed until the end which is good + * A further optimizations is made because the inner + * products are of the form "A * B * 2". The *2 part does + * not need to be computed until the end which is good * because 64-bit shifts are slow! * * Based on Algorithm 14.16 on pp.597 of HAC. @@ -708,8 +705,8 @@ fast_s_mp_sqr (mp_int * a, mp_int * b) { register mp_digit *tmpb; - /* double first value, since the inner products are - * half of what they should be + /* double first value, since the inner products are + * half of what they should be */ W[0] += W[0] + W2[0]; @@ -849,8 +846,7 @@ mp_abs (mp_int * a, mp_int * b) #include /* high level addition (handles signs) */ -int -mp_add (mp_int * a, mp_int * b, mp_int * c) +int mp_add (mp_int * a, mp_int * b, mp_int * c) { int sa, sb, res; @@ -1153,7 +1149,7 @@ mp_clear (mp_int * a) memset (a->dp, 0, sizeof (mp_digit) * a->used); /* free ram */ - free (a->dp); + XFREE(a->dp); /* reset members to make debugging easier */ a->dp = NULL; @@ -1255,8 +1251,7 @@ mp_cmp (mp_int * a, mp_int * b) #include /* compare a digit */ -int -mp_cmp_d (mp_int * a, mp_digit b) +int mp_cmp_d(mp_int * a, mp_digit b) { /* compare based on sign */ if (a->sign == MP_NEG) { @@ -1298,8 +1293,7 @@ mp_cmp_d (mp_int * a, mp_digit b) #include /* compare maginitude of two ints (unsigned) */ -int -mp_cmp_mag (mp_int * a, mp_int * b) +int mp_cmp_mag (mp_int * a, mp_int * b) { int n; mp_digit *tmpa, *tmpb; @@ -1518,8 +1512,7 @@ mp_count_bits (mp_int * a) * The overall algorithm is as described as * 14.20 from HAC but fixed to treat these cases. */ -int -mp_div (mp_int * a, mp_int * b, mp_int * c, mp_int * d) +int mp_div (mp_int * a, mp_int * b, mp_int * c, mp_int * d) { mp_int q, x, y, t1, t2; int res, n, t, i, norm, neg; @@ -1722,8 +1715,7 @@ __Q:mp_clear (&q); #include /* b = a/2 */ -int -mp_div_2 (mp_int * a, mp_int * b) +int mp_div_2(mp_int * a, mp_int * b) { int x, res, oldused; @@ -1789,8 +1781,7 @@ mp_div_2 (mp_int * a, mp_int * b) #include /* shift right by a certain bit count (store quotient in c, optional remainder in d) */ -int -mp_div_2d (mp_int * a, int b, mp_int * c, mp_int * d) +int mp_div_2d (mp_int * a, int b, mp_int * c, mp_int * d) { mp_digit D, r, rr; int x, res; @@ -2028,7 +2019,7 @@ mp_div_d (mp_int * a, mp_digit b, mp_int * c, mp_digit * d) if (w >= b) { t = (mp_digit)(w / b); - w = w % b; + w -= ((mp_word)t) * ((mp_word)b); } else { t = 0; } @@ -2232,7 +2223,7 @@ void mp_dr_setup(mp_int *a, mp_digit *d) #include /* swap the elements of two integers, for cases where you can't simply swap the - * mp_int pointers around + * mp_int pointers around */ void mp_exch (mp_int * a, mp_int * b) @@ -2264,8 +2255,7 @@ mp_exch (mp_int * a, mp_int * b) #include /* calculate c = a**b using a square-multiply algorithm */ -int -mp_expt_d (mp_int * a, mp_digit b, mp_int * c) +int mp_expt_d (mp_int * a, mp_digit b, mp_int * c) { int res, x; mp_int g; @@ -2325,8 +2315,7 @@ mp_expt_d (mp_int * a, mp_digit b, mp_int * c) * embedded in the normal function but that wasted alot of stack space * for nothing (since 99% of the time the Montgomery code would be called) */ -int -mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y) +int mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y) { int dr; @@ -2768,24 +2757,24 @@ int mp_fwrite(mp_int *a, int radix, FILE *stream) return MP_VAL; } - buf = malloc(len); + buf = XMALLOC (len); if (buf == NULL) { return MP_MEM; } if ((err = mp_toradix(a, buf, radix)) != MP_OKAY) { - free(buf); + XFREE (buf); return err; } for (x = 0; x < len; x++) { if (fputc(buf[x], stream) == EOF) { - free(buf); + XFREE (buf); return MP_VAL; } } - free(buf); + XFREE (buf); return MP_OKAY; } @@ -2810,8 +2799,7 @@ int mp_fwrite(mp_int *a, int radix, FILE *stream) #include /* Greatest Common Divisor using the binary method */ -int -mp_gcd (mp_int * a, mp_int * b, mp_int * c) +int mp_gcd (mp_int * a, mp_int * b, mp_int * c) { mp_int u, v; int k, u_lsb, v_lsb, res; @@ -2922,13 +2910,11 @@ __U:mp_clear (&v); #include /* grow as required */ -int -mp_grow (mp_int * a, int size) +int mp_grow (mp_int * a, int size) { int i; mp_digit *tmp; - /* if the alloc size is smaller alloc more ram */ if (a->alloc < size) { /* ensure there are always at least MP_PREC digits extra on top */ @@ -2940,7 +2926,7 @@ mp_grow (mp_int * a, int size) * in case the operation failed we don't want * to overwrite the dp member of a. */ - tmp = OPT_CAST realloc (a->dp, sizeof (mp_digit) * size); + tmp = OPT_CAST XREALLOC (a->dp, sizeof (mp_digit) * size); if (tmp == NULL) { /* reallocation failed but "a" is still valid [can be freed] */ return MP_MEM; @@ -2979,11 +2965,10 @@ mp_grow (mp_int * a, int size) #include /* init a new bigint */ -int -mp_init (mp_int * a) +int mp_init (mp_int * a) { /* allocate memory required and clear it */ - a->dp = OPT_CAST calloc (sizeof (mp_digit), MP_PREC); + a->dp = OPT_CAST XCALLOC (sizeof (mp_digit), MP_PREC); if (a->dp == NULL) { return MP_MEM; } @@ -3017,8 +3002,7 @@ mp_init (mp_int * a) #include /* creates "a" then copies b into it */ -int -mp_init_copy (mp_int * a, mp_int * b) +int mp_init_copy (mp_int * a, mp_int * b) { int res; @@ -3105,14 +3089,13 @@ int mp_init_multi(mp_int *mp, ...) #include /* init an mp_init for a given size */ -int -mp_init_size (mp_int * a, int size) +int mp_init_size (mp_int * a, int size) { /* pad size so there are always extra digits */ size += (MP_PREC * 2) - (size % MP_PREC); /* alloc mem */ - a->dp = OPT_CAST calloc (sizeof (mp_digit), size); + a->dp = OPT_CAST XCALLOC (sizeof (mp_digit), size); if (a->dp == NULL) { return MP_MEM; } @@ -3143,8 +3126,7 @@ mp_init_size (mp_int * a, int size) #include /* hac 14.61, pp608 */ -int -mp_invmod (mp_int * a, mp_int * b, mp_int * c) +int mp_invmod (mp_int * a, mp_int * b, mp_int * c) { mp_int x, y, u, v, A, B, C, D; int res; @@ -3324,8 +3306,7 @@ __ERR:mp_clear_multi (&x, &y, &u, &v, &A, &B, &C, &D, NULL); /* computes the jacobi c = (a | n) (or Legendre if n is prime) * HAC pp. 73 Algorithm 2.149 */ -int -mp_jacobi (mp_int * a, mp_int * p, int *c) +int mp_jacobi (mp_int * a, mp_int * p, int *c) { mp_int a1, p1; int k, s, r, res; @@ -3715,8 +3696,7 @@ ERR: #include /* computes least common multiple as |a*b|/(a, b) */ -int -mp_lcm (mp_int * a, mp_int * b, mp_int * c) +int mp_lcm (mp_int * a, mp_int * b, mp_int * c) { int res; mp_int t1, t2; @@ -3774,8 +3754,7 @@ __T: #include /* shift left a certain amount of digits */ -int -mp_lshd (mp_int * a, int b) +int mp_lshd (mp_int * a, int b) { int x, res; @@ -4035,8 +4014,8 @@ mp_montgomery_reduce (mp_int * x, mp_int * n, mp_digit rho) * are fixed up in the inner loop. */ digs = n->used * 2 + 1; - if ((digs < MP_WARRAY) && - n->used < + if ((digs < MP_WARRAY) && + n->used < (1 << ((CHAR_BIT * sizeof (mp_word)) - (2 * DIGIT_BIT)))) { return fast_mp_montgomery_reduce (x, n, rho); } @@ -4058,7 +4037,7 @@ mp_montgomery_reduce (mp_int * x, mp_int * n, mp_digit rho) * following inner loop to reduce the * input one digit at a time */ - mu = ((mp_word)x->dp[ix]) * ((mp_word)rho) & MP_MASK; + mu = (mp_digit) (((mp_word)x->dp[ix]) * ((mp_word)rho) & MP_MASK); /* a = a + mu * m * b**i */ { @@ -4074,7 +4053,7 @@ mp_montgomery_reduce (mp_int * x, mp_int * n, mp_digit rho) /* set the carry to zero */ u = 0; - + /* Multiply and add in place */ for (iy = 0; iy < n->used; iy++) { /* compute product and sum */ @@ -4195,8 +4174,7 @@ mp_montgomery_setup (mp_int * n, mp_digit * rho) #include /* high level multiplication (handles sign) */ -int -mp_mul (mp_int * a, mp_int * b, mp_int * c) +int mp_mul (mp_int * a, mp_int * b, mp_int * c) { int res, neg; neg = (a->sign == b->sign) ? MP_ZPOS : MP_NEG; @@ -4249,8 +4227,7 @@ mp_mul (mp_int * a, mp_int * b, mp_int * c) #include /* b = a*2 */ -int -mp_mul_2 (mp_int * a, mp_int * b) +int mp_mul_2(mp_int * a, mp_int * b) { int x, res, oldused; @@ -4330,8 +4307,7 @@ mp_mul_2 (mp_int * a, mp_int * b) #include /* shift left by a certain bit count */ -int -mp_mul_2d (mp_int * a, int b, mp_int * c) +int mp_mul_2d (mp_int * a, int b, mp_int * c) { mp_digit d; int res; @@ -4496,7 +4472,6 @@ mp_mulmod (mp_int * a, mp_int * b, mp_int * c, mp_int * d) int res; mp_int t; - if ((res = mp_init (&t)) != MP_OKAY) { return res; } @@ -4539,8 +4514,7 @@ mp_mulmod (mp_int * a, mp_int * b, mp_int * c, mp_int * d) * each step involves a fair bit. This is not meant to * find huge roots [square and cube, etc]. */ -int -mp_n_root (mp_int * a, mp_digit b, mp_int * c) +int mp_n_root (mp_int * a, mp_digit b, mp_int * c) { mp_int t1, t2, t3; int res, neg; @@ -4661,8 +4635,7 @@ __T1:mp_clear (&t1); #include /* b = -a */ -int -mp_neg (mp_int * a, mp_int * b) +int mp_neg (mp_int * a, mp_int * b) { int res; if ((res = mp_copy (a, b)) != MP_OKAY) { @@ -4694,8 +4667,7 @@ mp_neg (mp_int * a, mp_int * b) #include /* OR two ints together */ -int -mp_or (mp_int * a, mp_int * b, mp_int * c) +int mp_or (mp_int * a, mp_int * b, mp_int * c) { int res, ix, px; mp_int t, *x; @@ -4750,14 +4722,13 @@ mp_or (mp_int * a, mp_int * b, mp_int * c) * * Sets result to 1 if the congruence holds, or zero otherwise. */ -int -mp_prime_fermat (mp_int * a, mp_int * b, int *result) +int mp_prime_fermat (mp_int * a, mp_int * b, int *result) { mp_int t; int err; /* default to composite */ - *result = 0; + *result = MP_NO; /* ensure b > 1 */ if (mp_cmp_d(b, 1) != MP_GT) { @@ -4776,7 +4747,7 @@ mp_prime_fermat (mp_int * a, mp_int * b, int *result) /* is it equal to b? */ if (mp_cmp (&t, b) == MP_EQ) { - *result = 1; + *result = MP_YES; } err = MP_OKAY; @@ -4808,14 +4779,13 @@ __T:mp_clear (&t); * * sets result to 0 if not, 1 if yes */ -int -mp_prime_is_divisible (mp_int * a, int *result) +int mp_prime_is_divisible (mp_int * a, int *result) { int err, ix; mp_digit res; /* default to not */ - *result = 0; + *result = MP_NO; for (ix = 0; ix < PRIME_SIZE; ix++) { /* what is a mod __prime_tab[ix] */ @@ -4825,7 +4795,7 @@ mp_prime_is_divisible (mp_int * a, int *result) /* is the residue zero? */ if (res == 0) { - *result = 1; + *result = MP_YES; return MP_OKAY; } } @@ -4859,14 +4829,13 @@ mp_prime_is_divisible (mp_int * a, int *result) * * Sets result to 1 if probably prime, 0 otherwise */ -int -mp_prime_is_prime (mp_int * a, int t, int *result) +int mp_prime_is_prime (mp_int * a, int t, int *result) { mp_int b; int ix, err, res; /* default to no */ - *result = 0; + *result = MP_NO; /* valid value of t? */ if (t <= 0 || t > PRIME_SIZE) { @@ -4887,7 +4856,7 @@ mp_prime_is_prime (mp_int * a, int t, int *result) } /* return if it was trivially divisible */ - if (res == 1) { + if (res == MP_YES) { return MP_OKAY; } @@ -4904,13 +4873,13 @@ mp_prime_is_prime (mp_int * a, int t, int *result) goto __B; } - if (res == 0) { + if (res == MP_NO) { goto __B; } } /* passed the test */ - *result = 1; + *result = MP_YES; __B:mp_clear (&b); return err; } @@ -4941,14 +4910,13 @@ __B:mp_clear (&b); * Randomly the chance of error is no more than 1/4 and often * very much lower. */ -int -mp_prime_miller_rabin (mp_int * a, mp_int * b, int *result) +int mp_prime_miller_rabin (mp_int * a, mp_int * b, int *result) { mp_int n1, y, r; int s, j, err; /* default */ - *result = 0; + *result = MP_NO; /* ensure b > 1 */ if (mp_cmp_d(b, 1) != MP_GT) { @@ -5010,7 +4978,7 @@ mp_prime_miller_rabin (mp_int * a, mp_int * b, int *result) } /* probably prime now */ - *result = 1; + *result = MP_YES; __Y:mp_clear (&y); __R:mp_clear (&r); __N1:mp_clear (&n1); @@ -5168,12 +5136,12 @@ int mp_prime_next_prime(mp_int *a, int t, int bbs_style) if ((err = mp_prime_miller_rabin(a, &b, &res)) != MP_OKAY) { goto __ERR; } - if (res == 0) { + if (res == MP_NO) { break; } } - if (res == 1) { + if (res == MP_YES) { break; } } @@ -5187,6 +5155,84 @@ __ERR: /* End: bn_mp_prime_next_prime.c */ +/* Start: bn_mp_prime_random.c */ +/* LibTomMath, multiple-precision integer library -- Tom St Denis + * + * LibTomMath is a library that provides multiple-precision + * integer arithmetic as well as number theoretic functionality. + * + * The library was designed directly after the MPI library by + * Michael Fromberger but has been written from scratch with + * additional optimizations in place. + * + * The library is free for all purposes without any express + * guarantee it works. + * + * Tom St Denis, tomstdenis@iahu.ca, http://math.libtomcrypt.org + */ +#include + +/* makes a truly random prime of a given size (bytes), + * call with bbs = 1 if you want it to be congruent to 3 mod 4 + * + * You have to supply a callback which fills in a buffer with random bytes. "dat" is a parameter you can + * have passed to the callback (e.g. a state or something). This function doesn't use "dat" itself + * so it can be NULL + * + * The prime generated will be larger than 2^(8*size). + */ + +/* this sole function may hold the key to enslaving all mankind! */ +int mp_prime_random(mp_int *a, int t, int size, int bbs, ltm_prime_callback cb, void *dat) +{ + unsigned char *tmp; + int res, err; + + /* sanity check the input */ + if (size <= 0) { + return MP_VAL; + } + + /* we need a buffer of size+1 bytes */ + tmp = XMALLOC(size+1); + if (tmp == NULL) { + return MP_MEM; + } + + /* fix MSB */ + tmp[0] = 1; + + do { + /* read the bytes */ + if (cb(tmp+1, size, dat) != size) { + err = MP_VAL; + goto error; + } + + /* fix the LSB */ + tmp[size] |= (bbs ? 3 : 1); + + /* read it in */ + if ((err = mp_read_unsigned_bin(a, tmp, size+1)) != MP_OKAY) { + goto error; + } + + /* is it prime? */ + if ((err = mp_prime_is_prime(a, t, &res)) != MP_OKAY) { + goto error; + } + } while (res == MP_NO); + + err = MP_OKAY; +error: + XFREE(tmp); + return err; +} + + + +/* End: bn_mp_prime_random.c */ + /* Start: bn_mp_radix_size.c */ /* LibTomMath, multiple-precision integer library -- Tom St Denis * @@ -5217,28 +5263,36 @@ mp_radix_size (mp_int * a, int radix) return mp_count_bits (a) + (a->sign == MP_NEG ? 1 : 0) + 1; } + /* make sure the radix is in range */ if (radix < 2 || radix > 64) { return 0; } + /* init a copy of the input */ if ((res = mp_init_copy (&t, a)) != MP_OKAY) { return 0; } + /* digs is the digit count */ digs = 0; + + /* if it's negative add one for the sign */ if (t.sign == MP_NEG) { ++digs; t.sign = MP_ZPOS; } + /* fetch out all of the digits */ while (mp_iszero (&t) == 0) { if ((res = mp_div_d (&t, (mp_digit) radix, &t, &d)) != MP_OKAY) { mp_clear (&t); - return 0; + return res; } ++digs; } mp_clear (&t); + + /* return digs + 1, the 1 is for the NULL byte that would be required. */ return digs + 1; } @@ -5707,10 +5761,9 @@ mp_reduce_2k_setup(mp_int *a, mp_digit *d) #include /* determines if mp_reduce_2k can be used */ -int -mp_reduce_is_2k(mp_int *a) +int mp_reduce_is_2k(mp_int *a) { - int ix, iy; + int ix, iy, iz, iw; if (a->used == 0) { return 0; @@ -5718,11 +5771,19 @@ mp_reduce_is_2k(mp_int *a) return 1; } else if (a->used > 1) { iy = mp_count_bits(a); + iz = 1; + iw = 1; + + /* Test every bit from the second digit up, must be 1 */ for (ix = DIGIT_BIT; ix < iy; ix++) { - if ((a->dp[ix/DIGIT_BIT] & - ((mp_digit)1 << (mp_digit)(ix % DIGIT_BIT))) == 0) { + if ((a->dp[iw] & iz) == 0) { return 0; } + iz <<= 1; + if (iz > (int)MP_MASK) { + ++iw; + iz = 1; + } } } return 1; @@ -5782,8 +5843,7 @@ mp_reduce_setup (mp_int * a, mp_int * b) #include /* shift right a certain amount of digits */ -void -mp_rshd (mp_int * a, int b) +void mp_rshd (mp_int * a, int b) { int x; @@ -5853,8 +5913,7 @@ mp_rshd (mp_int * a, int b) #include /* set to a digit */ -void -mp_set (mp_int * a, mp_digit b) +void mp_set (mp_int * a, mp_digit b) { mp_zero (a); a->dp[0] = b & MP_MASK; @@ -5881,8 +5940,7 @@ mp_set (mp_int * a, mp_digit b) #include /* set a 32-bit const */ -int -mp_set_int (mp_int * a, unsigned int b) +int mp_set_int (mp_int * a, unsigned long b) { int x, res; @@ -5928,13 +5986,14 @@ mp_set_int (mp_int * a, unsigned int b) #include /* shrink a bignum */ -int -mp_shrink (mp_int * a) +int mp_shrink (mp_int * a) { + mp_digit *tmp; if (a->alloc != a->used) { - if ((a->dp = OPT_CAST realloc (a->dp, sizeof (mp_digit) * a->used)) == NULL) { + if ((tmp = OPT_CAST XREALLOC (a->dp, sizeof (mp_digit) * a->used)) == NULL) { return MP_MEM; } + a->dp = tmp; a->alloc = a->used; } return MP_OKAY; @@ -6841,17 +6900,18 @@ mp_toradix (mp_int * a, char *str, int radix) mp_digit d; char *_s = str; + /* check range of the radix */ if (radix < 2 || radix > 64) { return MP_VAL; } - + /* quick out if its zero */ if (mp_iszero(a) == 1) { *str++ = '0'; *str = '\0'; return MP_OKAY; } - + if ((res = mp_init_copy (&t, a)) != MP_OKAY) { return res; } @@ -6877,11 +6937,10 @@ mp_toradix (mp_int * a, char *str, int radix) * to the first digit [exluding the sign] of the number] */ bn_reverse ((unsigned char *)_s, digs); - + /* append a NULL so the string is properly terminated */ - *str++ = '\0'; - - + *str = '\0'; + mp_clear (&t); return MP_OKAY; } @@ -6993,6 +7052,79 @@ mp_zero (mp_int * a) /* End: bn_mp_zero.c */ +/* Start: bn_prime_sizes_tab.c */ +/* LibTomMath, multiple-precision integer library -- Tom St Denis + * + * LibTomMath is a library that provides multiple-precision + * integer arithmetic as well as number theoretic functionality. + * + * The library was designed directly after the MPI library by + * Michael Fromberger but has been written from scratch with + * additional optimizations in place. + * + * The library is free for all purposes without any express + * guarantee it works. + * + * Tom St Denis, tomstdenis@iahu.ca, http://math.libtomcrypt.org + */ +#include + +/* this table gives the # of rabin miller trials for a prob of failure lower than 2^-96 */ +static const struct { + int k, t; +} sizes[] = { +{ 128, 28 }, +{ 256, 16 }, +{ 384, 10 }, +{ 512, 7 }, +{ 640, 6 }, +{ 768, 5 }, +{ 896, 4 }, +{ 1024, 4 }, +{ 1152, 3 }, +{ 1280, 3 }, +{ 1408, 3 }, +{ 1536, 3 }, +{ 1664, 3 }, +{ 1792, 2 }, +{ 1920, 2 }, +{ 2048, 2 }, +{ 2176, 2 }, +{ 2304, 2 }, +{ 2432, 2 }, +{ 2560, 2 }, +{ 2688, 2 }, +{ 2816, 2 }, +{ 2944, 2 }, +{ 3072, 2 }, +{ 3200, 2 }, +{ 3328, 2 }, +{ 3456, 2 }, +{ 3584, 2 }, +{ 3712, 2 }, +{ 3840, 1 }, +{ 3968, 1 }, +{ 4096, 1 } }; + +/* returns # of RM trials required for a given bit size */ +int mp_prime_rabin_miller_trials(int size) +{ + int x; + + for (x = 0; x < (int)(sizeof(sizes)/(sizeof(sizes[0]))); x++) { + if (sizes[x].k == size) { + return sizes[x].t; + } else if (sizes[x].k > size) { + return (x == 0) ? sizes[0].t : sizes[x - 1].t; + } + } + return 1; +} + + + +/* End: bn_prime_sizes_tab.c */ + /* Start: bn_prime_tab.c */ /* LibTomMath, multiple-precision integer library -- Tom St Denis * @@ -7630,7 +7762,9 @@ s_mp_sqr (mp_int * a, mp_int * b) pa = a->used; if ((res = mp_init_size (&t, 2*pa + 1)) != MP_OKAY) { return res; - } + } + + /* default used is maximum possible size */ t.used = 2*pa + 1; for (ix = 0; ix < pa; ix++) { @@ -7640,20 +7774,20 @@ s_mp_sqr (mp_int * a, mp_int * b) ((mp_word)a->dp[ix])*((mp_word)a->dp[ix]); /* store lower part in result */ - t.dp[2*ix] = (mp_digit) (r & ((mp_word) MP_MASK)); + t.dp[ix+ix] = (mp_digit) (r & ((mp_word) MP_MASK)); /* get the carry */ - u = (mp_digit)(r >> ((mp_word) DIGIT_BIT)); + u = (mp_digit)(r >> ((mp_word) DIGIT_BIT)); /* left hand side of A[ix] * A[iy] */ - tmpx = a->dp[ix]; + tmpx = a->dp[ix]; /* alias for where to store the results */ - tmpt = t.dp + (2*ix + 1); + tmpt = t.dp + (2*ix + 1); for (iy = ix + 1; iy < pa; iy++) { /* first calculate the product */ - r = ((mp_word)tmpx) * ((mp_word)a->dp[iy]); + r = ((mp_word)tmpx) * ((mp_word)a->dp[iy]); /* now calculate the double precision result, note we use * addition instead of *2 since it's easier to optimize diff --git a/tommath.h b/tommath.h index f5c2ad1..1af3396 100644 --- a/tommath.h +++ b/tommath.h @@ -91,6 +91,24 @@ extern "C" { #endif #endif +/* define heap macros */ +#ifndef CRYPT + /* default to libc stuff */ + #ifndef XMALLOC + #define XMALLOC malloc + #define XFREE free + #define XREALLOC realloc + #define XCALLOC calloc + #endif + + /* prototypes for our heap functions */ + extern void *XMALLOC(size_t n); + extern void *REALLOC(void *p, size_t n); + extern void *XCALLOC(size_t n, size_t s); + extern void XFREE(void *p); +#endif + + /* otherwise the bits per digit is calculated automatically from the size of a mp_digit */ #ifndef DIGIT_BIT #define DIGIT_BIT ((int)((CHAR_BIT * sizeof(mp_digit) - 1))) /* bits per digit */ @@ -113,6 +131,9 @@ extern "C" { #define MP_VAL -3 /* invalid input */ #define MP_RANGE MP_VAL +#define MP_YES 1 /* yes response */ +#define MP_NO 0 /* no response */ + typedef int mp_err; /* you'll have to tune these... */ @@ -130,11 +151,16 @@ extern int KARATSUBA_MUL_CUTOFF, /* size of comba arrays, should be at least 2 * 2**(BITS_PER_WORD - BITS_PER_DIGIT*2) */ #define MP_WARRAY (1 << (sizeof(mp_word) * CHAR_BIT - 2 * DIGIT_BIT + 1)) +/* the infamous mp_int structure */ typedef struct { int used, alloc, sign; mp_digit *dp; } mp_int; +/* callback for mp_prime_random, should fill dst with random bytes and return how many read [upto len] */ +typedef int ltm_prime_callback(unsigned char *dst, int len, void *dat); + + #define USED(m) ((m)->used) #define DIGIT(m,k) ((m)->dp[(k)]) #define SIGN(m) ((m)->sign) @@ -168,9 +194,9 @@ int mp_grow(mp_int *a, int size); int mp_init_size(mp_int *a, int size); /* ---> Basic Manipulations <--- */ -#define mp_iszero(a) (((a)->used == 0) ? 1 : 0) -#define mp_iseven(a) (((a)->used > 0 && (((a)->dp[0] & 1) == 0)) ? 1 : 0) -#define mp_isodd(a) (((a)->used > 0 && (((a)->dp[0] & 1) == 1)) ? 1 : 0) +#define mp_iszero(a) (((a)->used == 0) ? MP_YES : MP_NO) +#define mp_iseven(a) (((a)->used > 0 && (((a)->dp[0] & 1) == 0)) ? MP_YES : MP_NO) +#define mp_isodd(a) (((a)->used > 0 && (((a)->dp[0] & 1) == 1)) ? MP_YES : MP_NO) /* set to zero */ void mp_zero(mp_int *a); @@ -179,7 +205,7 @@ void mp_zero(mp_int *a); void mp_set(mp_int *a, mp_digit b); /* set a 32-bit const */ -int mp_set_int(mp_int *a, unsigned int b); +int mp_set_int(mp_int *a, unsigned long b); /* copy, b = a */ int mp_copy(mp_int *a, mp_int *b); @@ -219,6 +245,8 @@ int mp_2expt(mp_int *a, int b); /* Counts the number of lsbs which are zero before the first zero bit */ int mp_cnt_lsb(mp_int *a); +/* I Love Earth! */ + /* makes a pseudo-random int of a given size */ int mp_rand(mp_int *a, int digits); @@ -392,6 +420,11 @@ int mp_prime_fermat(mp_int *a, mp_int *b, int *result); */ int mp_prime_miller_rabin(mp_int *a, mp_int *b, int *result); +/* This gives [for a given bit size] the number of trials required + * such that Miller-Rabin gives a prob of failure lower than 2^-96 + */ +int mp_prime_rabin_miller_trials(int size); + /* performs t rounds of Miller-Rabin on "a" using the first * t prime bases. Also performs an initial sieve of trial * division. Determines if "a" is prime with probability @@ -408,6 +441,18 @@ int mp_prime_is_prime(mp_int *a, int t, int *result); */ int mp_prime_next_prime(mp_int *a, int t, int bbs_style); +/* makes a truly random prime of a given size (bytes), + * call with bbs = 1 if you want it to be congruent to 3 mod 4 + * + * You have to supply a callback which fills in a buffer with random bytes. "dat" is a parameter you can + * have passed to the callback (e.g. a state or something). This function doesn't use "dat" itself + * so it can be NULL + * + * The prime generated will be larger than 2^(8*size). + */ +int mp_prime_random(mp_int *a, int t, int size, int bbs, ltm_prime_callback cb, void *dat); + + /* ---> radix conversion <--- */ int mp_count_bits(mp_int *a); diff --git a/tommath.out b/tommath.out new file mode 100644 index 0000000..7341304 --- /dev/null +++ b/tommath.out @@ -0,0 +1,139 @@ +\BOOKMARK [0][-]{chapter.1}{Introduction}{} +\BOOKMARK [1][-]{section.1.1}{Multiple Precision Arithmetic}{chapter.1} +\BOOKMARK [2][-]{subsection.1.1.1}{The Need for Multiple Precision Arithmetic}{section.1.1} +\BOOKMARK [2][-]{subsection.1.1.2}{What is Multiple Precision Arithmetic?}{section.1.1} +\BOOKMARK [2][-]{subsection.1.1.3}{Benefits of Multiple Precision Arithmetic}{section.1.1} +\BOOKMARK [1][-]{section.1.2}{Purpose of This Text}{chapter.1} +\BOOKMARK [1][-]{section.1.3}{Discussion and Notation}{chapter.1} +\BOOKMARK [2][-]{subsection.1.3.1}{Notation}{section.1.3} +\BOOKMARK [2][-]{subsection.1.3.2}{Precision Notation}{section.1.3} +\BOOKMARK [2][-]{subsection.1.3.3}{Algorithm Inputs and Outputs}{section.1.3} +\BOOKMARK [2][-]{subsection.1.3.4}{Mathematical Expressions}{section.1.3} +\BOOKMARK [2][-]{subsection.1.3.5}{Work Effort}{section.1.3} +\BOOKMARK [1][-]{section.1.4}{Exercises}{chapter.1} +\BOOKMARK [0][-]{chapter.2}{Introduction to LibTomMath}{} +\BOOKMARK [1][-]{section.2.1}{What is LibTomMath?}{chapter.2} +\BOOKMARK [1][-]{section.2.2}{Goals of LibTomMath}{chapter.2} +\BOOKMARK [1][-]{section.2.3}{Choice of LibTomMath}{chapter.2} +\BOOKMARK [2][-]{subsection.2.3.1}{Code Base}{section.2.3} +\BOOKMARK [2][-]{subsection.2.3.2}{API Simplicity}{section.2.3} +\BOOKMARK [2][-]{subsection.2.3.3}{Optimizations}{section.2.3} +\BOOKMARK [2][-]{subsection.2.3.4}{Portability and Stability}{section.2.3} +\BOOKMARK [2][-]{subsection.2.3.5}{Choice}{section.2.3} +\BOOKMARK [0][-]{chapter.3}{Getting Started}{} +\BOOKMARK [1][-]{section.3.1}{Library Basics}{chapter.3} +\BOOKMARK [1][-]{section.3.2}{What is a Multiple Precision Integer?}{chapter.3} +\BOOKMARK [2][-]{subsection.3.2.1}{The mp\137int Structure}{section.3.2} +\BOOKMARK [1][-]{section.3.3}{Argument Passing}{chapter.3} +\BOOKMARK [1][-]{section.3.4}{Return Values}{chapter.3} +\BOOKMARK [1][-]{section.3.5}{Initialization and Clearing}{chapter.3} +\BOOKMARK [2][-]{subsection.3.5.1}{Initializing an mp\137int}{section.3.5} +\BOOKMARK [2][-]{subsection.3.5.2}{Clearing an mp\137int}{section.3.5} +\BOOKMARK [1][-]{section.3.6}{Maintenance Algorithms}{chapter.3} +\BOOKMARK [2][-]{subsection.3.6.1}{Augmenting an mp\137int's Precision}{section.3.6} +\BOOKMARK [2][-]{subsection.3.6.2}{Initializing Variable Precision mp\137ints}{section.3.6} +\BOOKMARK [2][-]{subsection.3.6.3}{Multiple Integer Initializations and Clearings}{section.3.6} +\BOOKMARK [2][-]{subsection.3.6.4}{Clamping Excess Digits}{section.3.6} +\BOOKMARK [0][-]{chapter.4}{Basic Operations}{} +\BOOKMARK [1][-]{section.4.1}{Introduction}{chapter.4} +\BOOKMARK [1][-]{section.4.2}{Assigning Values to mp\137int Structures}{chapter.4} +\BOOKMARK [2][-]{subsection.4.2.1}{Copying an mp\137int}{section.4.2} +\BOOKMARK [2][-]{subsection.4.2.2}{Creating a Clone}{section.4.2} +\BOOKMARK [1][-]{section.4.3}{Zeroing an Integer}{chapter.4} +\BOOKMARK [1][-]{section.4.4}{Sign Manipulation}{chapter.4} +\BOOKMARK [2][-]{subsection.4.4.1}{Absolute Value}{section.4.4} +\BOOKMARK [2][-]{subsection.4.4.2}{Integer Negation}{section.4.4} +\BOOKMARK [1][-]{section.4.5}{Small Constants}{chapter.4} +\BOOKMARK [2][-]{subsection.4.5.1}{Setting Small Constants}{section.4.5} +\BOOKMARK [2][-]{subsection.4.5.2}{Setting Large Constants}{section.4.5} +\BOOKMARK [1][-]{section.4.6}{Comparisons}{chapter.4} +\BOOKMARK [2][-]{subsection.4.6.1}{Unsigned Comparisions}{section.4.6} +\BOOKMARK [2][-]{subsection.4.6.2}{Signed Comparisons}{section.4.6} +\BOOKMARK [0][-]{chapter.5}{Basic Arithmetic}{} +\BOOKMARK [1][-]{section.5.1}{Introduction}{chapter.5} +\BOOKMARK [1][-]{section.5.2}{Addition and Subtraction}{chapter.5} +\BOOKMARK [2][-]{subsection.5.2.1}{Low Level Addition}{section.5.2} +\BOOKMARK [2][-]{subsection.5.2.2}{Low Level Subtraction}{section.5.2} +\BOOKMARK [2][-]{subsection.5.2.3}{High Level Addition}{section.5.2} +\BOOKMARK [2][-]{subsection.5.2.4}{High Level Subtraction}{section.5.2} +\BOOKMARK [1][-]{section.5.3}{Bit and Digit Shifting}{chapter.5} +\BOOKMARK [2][-]{subsection.5.3.1}{Multiplication by Two}{section.5.3} +\BOOKMARK [2][-]{subsection.5.3.2}{Division by Two}{section.5.3} +\BOOKMARK [1][-]{section.5.4}{Polynomial Basis Operations}{chapter.5} +\BOOKMARK [2][-]{subsection.5.4.1}{Multiplication by x}{section.5.4} +\BOOKMARK [2][-]{subsection.5.4.2}{Division by x}{section.5.4} +\BOOKMARK [1][-]{section.5.5}{Powers of Two}{chapter.5} +\BOOKMARK [2][-]{subsection.5.5.1}{Multiplication by Power of Two}{section.5.5} +\BOOKMARK [2][-]{subsection.5.5.2}{Division by Power of Two}{section.5.5} +\BOOKMARK [2][-]{subsection.5.5.3}{Remainder of Division by Power of Two}{section.5.5} +\BOOKMARK [0][-]{chapter.6}{Multiplication and Squaring}{} +\BOOKMARK [1][-]{section.6.1}{The Multipliers}{chapter.6} +\BOOKMARK [1][-]{section.6.2}{Multiplication}{chapter.6} +\BOOKMARK [2][-]{subsection.6.2.1}{The Baseline Multiplication}{section.6.2} +\BOOKMARK [2][-]{subsection.6.2.2}{Faster Multiplication by the ``Comba'' Method}{section.6.2} +\BOOKMARK [2][-]{subsection.6.2.3}{Polynomial Basis Multiplication}{section.6.2} +\BOOKMARK [2][-]{subsection.6.2.4}{Karatsuba Multiplication}{section.6.2} +\BOOKMARK [2][-]{subsection.6.2.5}{Toom-Cook 3-Way Multiplication}{section.6.2} +\BOOKMARK [2][-]{subsection.6.2.6}{Signed Multiplication}{section.6.2} +\BOOKMARK [1][-]{section.6.3}{Squaring}{chapter.6} +\BOOKMARK [2][-]{subsection.6.3.1}{The Baseline Squaring Algorithm}{section.6.3} +\BOOKMARK [2][-]{subsection.6.3.2}{Faster Squaring by the ``Comba'' Method}{section.6.3} +\BOOKMARK [2][-]{subsection.6.3.3}{Polynomial Basis Squaring}{section.6.3} +\BOOKMARK [2][-]{subsection.6.3.4}{Karatsuba Squaring}{section.6.3} +\BOOKMARK [2][-]{subsection.6.3.5}{Toom-Cook Squaring}{section.6.3} +\BOOKMARK [2][-]{subsection.6.3.6}{High Level Squaring}{section.6.3} +\BOOKMARK [0][-]{chapter.7}{Modular Reduction}{} +\BOOKMARK [1][-]{section.7.1}{Basics of Modular Reduction}{chapter.7} +\BOOKMARK [1][-]{section.7.2}{The Barrett Reduction}{chapter.7} +\BOOKMARK [2][-]{subsection.7.2.1}{Fixed Point Arithmetic}{section.7.2} +\BOOKMARK [2][-]{subsection.7.2.2}{Choosing a Radix Point}{section.7.2} +\BOOKMARK [2][-]{subsection.7.2.3}{Trimming the Quotient}{section.7.2} +\BOOKMARK [2][-]{subsection.7.2.4}{Trimming the Residue}{section.7.2} +\BOOKMARK [2][-]{subsection.7.2.5}{The Barrett Algorithm}{section.7.2} +\BOOKMARK [2][-]{subsection.7.2.6}{The Barrett Setup Algorithm}{section.7.2} +\BOOKMARK [1][-]{section.7.3}{The Montgomery Reduction}{chapter.7} +\BOOKMARK [2][-]{subsection.7.3.1}{Digit Based Montgomery Reduction}{section.7.3} +\BOOKMARK [2][-]{subsection.7.3.2}{Baseline Montgomery Reduction}{section.7.3} +\BOOKMARK [2][-]{subsection.7.3.3}{Faster ``Comba'' Montgomery Reduction}{section.7.3} +\BOOKMARK [2][-]{subsection.7.3.4}{Montgomery Setup}{section.7.3} +\BOOKMARK [1][-]{section.7.4}{The Diminished Radix Algorithm}{chapter.7} +\BOOKMARK [2][-]{subsection.7.4.1}{Choice of Moduli}{section.7.4} +\BOOKMARK [2][-]{subsection.7.4.2}{Choice of k}{section.7.4} +\BOOKMARK [2][-]{subsection.7.4.3}{Restricted Diminished Radix Reduction}{section.7.4} +\BOOKMARK [2][-]{subsection.7.4.4}{Unrestricted Diminished Radix Reduction}{section.7.4} +\BOOKMARK [1][-]{section.7.5}{Algorithm Comparison}{chapter.7} +\BOOKMARK [0][-]{chapter.8}{Exponentiation}{} +\BOOKMARK [1][-]{section.8.1}{Exponentiation Basics}{chapter.8} +\BOOKMARK [2][-]{subsection.8.1.1}{Single Digit Exponentiation}{section.8.1} +\BOOKMARK [1][-]{section.8.2}{k-ary Exponentiation}{chapter.8} +\BOOKMARK [2][-]{subsection.8.2.1}{Optimal Values of k}{section.8.2} +\BOOKMARK [2][-]{subsection.8.2.2}{Sliding-Window Exponentiation}{section.8.2} +\BOOKMARK [1][-]{section.8.3}{Modular Exponentiation}{chapter.8} +\BOOKMARK [2][-]{subsection.8.3.1}{Barrett Modular Exponentiation}{section.8.3} +\BOOKMARK [1][-]{section.8.4}{Quick Power of Two}{chapter.8} +\BOOKMARK [0][-]{chapter.9}{Higher Level Algorithms}{} +\BOOKMARK [1][-]{section.9.1}{Integer Division with Remainder}{chapter.9} +\BOOKMARK [2][-]{subsection.9.1.1}{Quotient Estimation}{section.9.1} +\BOOKMARK [2][-]{subsection.9.1.2}{Normalized Integers}{section.9.1} +\BOOKMARK [2][-]{subsection.9.1.3}{Radix- Division with Remainder}{section.9.1} +\BOOKMARK [1][-]{section.9.2}{Single Digit Helpers}{chapter.9} +\BOOKMARK [2][-]{subsection.9.2.1}{Single Digit Addition and Subtraction}{section.9.2} +\BOOKMARK [2][-]{subsection.9.2.2}{Single Digit Multiplication}{section.9.2} +\BOOKMARK [2][-]{subsection.9.2.3}{Single Digit Division}{section.9.2} +\BOOKMARK [2][-]{subsection.9.2.4}{Single Digit Root Extraction}{section.9.2} +\BOOKMARK [1][-]{section.9.3}{Random Number Generation}{chapter.9} +\BOOKMARK [1][-]{section.9.4}{Formatted Representations}{chapter.9} +\BOOKMARK [2][-]{subsection.9.4.1}{Reading Radix-n Input}{section.9.4} +\BOOKMARK [2][-]{subsection.9.4.2}{Generating Radix-n Output}{section.9.4} +\BOOKMARK [0][-]{chapter.10}{Number Theoretic Algorithms}{} +\BOOKMARK [1][-]{section.10.1}{Greatest Common Divisor}{chapter.10} +\BOOKMARK [2][-]{subsection.10.1.1}{Complete Greatest Common Divisor}{section.10.1} +\BOOKMARK [1][-]{section.10.2}{Least Common Multiple}{chapter.10} +\BOOKMARK [1][-]{section.10.3}{Jacobi Symbol Computation}{chapter.10} +\BOOKMARK [2][-]{subsection.10.3.1}{Jacobi Symbol}{section.10.3} +\BOOKMARK [1][-]{section.10.4}{Modular Inverse}{chapter.10} +\BOOKMARK [2][-]{subsection.10.4.1}{General Case}{section.10.4} +\BOOKMARK [1][-]{section.10.5}{Primality Tests}{chapter.10} +\BOOKMARK [2][-]{subsection.10.5.1}{Trial Division}{section.10.5} +\BOOKMARK [2][-]{subsection.10.5.2}{The Fermat Test}{section.10.5} +\BOOKMARK [2][-]{subsection.10.5.3}{The Miller-Rabin Test}{section.10.5} diff --git a/tommath.pdf b/tommath.pdf new file mode 100644 index 0000000..33b19ea --- /dev/null +++ b/tommath.pdf @@ -0,0 +1,21175 @@ +%PDF-1.4 +5 0 obj +<< /S /GoTo /D (chapter.1) >> +endobj +8 0 obj +(Introduction) +endobj +9 0 obj +<< /S /GoTo /D (section.1.1) >> +endobj +12 0 obj +(Multiple Precision Arithmetic) +endobj +13 0 obj +<< /S /GoTo /D (subsection.1.1.1) >> +endobj +16 0 obj +(The Need for Multiple Precision Arithmetic) +endobj +17 0 obj +<< /S /GoTo /D (subsection.1.1.2) >> +endobj +20 0 obj +(What is Multiple Precision Arithmetic?) +endobj +21 0 obj +<< /S /GoTo /D (subsection.1.1.3) >> +endobj +24 0 obj +(Benefits of Multiple Precision Arithmetic) +endobj +25 0 obj +<< /S /GoTo /D (section.1.2) >> +endobj +28 0 obj +(Purpose of This Text) +endobj +29 0 obj +<< /S /GoTo /D (section.1.3) >> +endobj +32 0 obj +(Discussion and Notation) +endobj +33 0 obj +<< /S /GoTo /D (subsection.1.3.1) >> +endobj +36 0 obj +(Notation) +endobj +37 0 obj +<< /S /GoTo /D (subsection.1.3.2) >> +endobj +40 0 obj +(Precision Notation) +endobj +41 0 obj +<< /S /GoTo /D (subsection.1.3.3) >> +endobj +44 0 obj +(Algorithm Inputs and Outputs) +endobj +45 0 obj +<< /S /GoTo /D (subsection.1.3.4) >> +endobj +48 0 obj +(Mathematical Expressions) +endobj +49 0 obj +<< /S /GoTo /D (subsection.1.3.5) >> +endobj +52 0 obj +(Work Effort) +endobj +53 0 obj +<< /S /GoTo /D (section.1.4) >> +endobj +56 0 obj +(Exercises) +endobj +57 0 obj +<< /S /GoTo /D (chapter.2) >> +endobj +60 0 obj +(Introduction to LibTomMath) +endobj +61 0 obj +<< /S /GoTo /D (section.2.1) >> +endobj +64 0 obj +(What is LibTomMath?) +endobj +65 0 obj +<< /S /GoTo /D (section.2.2) >> +endobj +68 0 obj +(Goals of LibTomMath) +endobj +69 0 obj +<< /S /GoTo /D (section.2.3) >> +endobj +72 0 obj +(Choice of LibTomMath) +endobj +73 0 obj +<< /S /GoTo /D (subsection.2.3.1) >> +endobj +76 0 obj +(Code Base) +endobj +77 0 obj +<< /S /GoTo /D (subsection.2.3.2) >> +endobj +80 0 obj +(API Simplicity) +endobj +81 0 obj +<< /S /GoTo /D (subsection.2.3.3) >> +endobj +84 0 obj +(Optimizations) +endobj +85 0 obj +<< /S /GoTo /D (subsection.2.3.4) >> +endobj +88 0 obj +(Portability and Stability) +endobj +89 0 obj +<< /S /GoTo /D (subsection.2.3.5) >> +endobj +92 0 obj +(Choice) +endobj +93 0 obj +<< /S /GoTo /D (chapter.3) >> +endobj +96 0 obj +(Getting Started) +endobj +97 0 obj +<< /S /GoTo /D (section.3.1) >> +endobj +100 0 obj +(Library Basics) +endobj +101 0 obj +<< /S /GoTo /D (section.3.2) >> +endobj +104 0 obj +(What is a Multiple Precision Integer?) +endobj +105 0 obj +<< /S /GoTo /D (subsection.3.2.1) >> +endobj +108 0 obj +(The mp\137int Structure) +endobj +109 0 obj +<< /S /GoTo /D (section.3.3) >> +endobj +112 0 obj +(Argument Passing) +endobj +113 0 obj +<< /S /GoTo /D (section.3.4) >> +endobj +116 0 obj +(Return Values) +endobj +117 0 obj +<< /S /GoTo /D (section.3.5) >> +endobj +120 0 obj +(Initialization and Clearing) +endobj +121 0 obj +<< /S /GoTo /D (subsection.3.5.1) >> +endobj +124 0 obj +(Initializing an mp\137int) +endobj +125 0 obj +<< /S /GoTo /D (subsection.3.5.2) >> +endobj +128 0 obj +(Clearing an mp\137int) +endobj +129 0 obj +<< /S /GoTo /D (section.3.6) >> +endobj +132 0 obj +(Maintenance Algorithms) +endobj +133 0 obj +<< /S /GoTo /D (subsection.3.6.1) >> +endobj +136 0 obj +(Augmenting an mp\137int's Precision) +endobj +137 0 obj +<< /S /GoTo /D (subsection.3.6.2) >> +endobj +140 0 obj +(Initializing Variable Precision mp\137ints) +endobj +141 0 obj +<< /S /GoTo /D (subsection.3.6.3) >> +endobj +144 0 obj +(Multiple Integer Initializations and Clearings) +endobj +145 0 obj +<< /S /GoTo /D (subsection.3.6.4) >> +endobj +148 0 obj +(Clamping Excess Digits) +endobj +149 0 obj +<< /S /GoTo /D (chapter.4) >> +endobj +152 0 obj +(Basic Operations) +endobj +153 0 obj +<< /S /GoTo /D (section.4.1) >> +endobj +156 0 obj +(Introduction) +endobj +157 0 obj +<< /S /GoTo /D (section.4.2) >> +endobj +160 0 obj +(Assigning Values to mp\137int Structures) +endobj +161 0 obj +<< /S /GoTo /D (subsection.4.2.1) >> +endobj +164 0 obj +(Copying an mp\137int) +endobj +165 0 obj +<< /S /GoTo /D (subsection.4.2.2) >> +endobj +168 0 obj +(Creating a Clone) +endobj +169 0 obj +<< /S /GoTo /D (section.4.3) >> +endobj +172 0 obj +(Zeroing an Integer) +endobj +173 0 obj +<< /S /GoTo /D (section.4.4) >> +endobj +176 0 obj +(Sign Manipulation) +endobj +177 0 obj +<< /S /GoTo /D (subsection.4.4.1) >> +endobj +180 0 obj +(Absolute Value) +endobj +181 0 obj +<< /S /GoTo /D (subsection.4.4.2) >> +endobj +184 0 obj +(Integer Negation) +endobj +185 0 obj +<< /S /GoTo /D (section.4.5) >> +endobj +188 0 obj +(Small Constants) +endobj +189 0 obj +<< /S /GoTo /D (subsection.4.5.1) >> +endobj +192 0 obj +(Setting Small Constants) +endobj +193 0 obj +<< /S /GoTo /D (subsection.4.5.2) >> +endobj +196 0 obj +(Setting Large Constants) +endobj +197 0 obj +<< /S /GoTo /D (section.4.6) >> +endobj +200 0 obj +(Comparisons) +endobj +201 0 obj +<< /S /GoTo /D (subsection.4.6.1) >> +endobj +204 0 obj +(Unsigned Comparisions) +endobj +205 0 obj +<< /S /GoTo /D (subsection.4.6.2) >> +endobj +208 0 obj +(Signed Comparisons) +endobj +209 0 obj +<< /S /GoTo /D (chapter.5) >> +endobj +212 0 obj +(Basic Arithmetic) +endobj +213 0 obj +<< /S /GoTo /D (section.5.1) >> +endobj +216 0 obj +(Introduction) +endobj +217 0 obj +<< /S /GoTo /D (section.5.2) >> +endobj +220 0 obj +(Addition and Subtraction) +endobj +221 0 obj +<< /S /GoTo /D (subsection.5.2.1) >> +endobj +224 0 obj +(Low Level Addition) +endobj +225 0 obj +<< /S /GoTo /D (subsection.5.2.2) >> +endobj +228 0 obj +(Low Level Subtraction) +endobj +229 0 obj +<< /S /GoTo /D (subsection.5.2.3) >> +endobj +232 0 obj +(High Level Addition) +endobj +233 0 obj +<< /S /GoTo /D (subsection.5.2.4) >> +endobj +236 0 obj +(High Level Subtraction) +endobj +237 0 obj +<< /S /GoTo /D (section.5.3) >> +endobj +240 0 obj +(Bit and Digit Shifting) +endobj +241 0 obj +<< /S /GoTo /D (subsection.5.3.1) >> +endobj +244 0 obj +(Multiplication by Two) +endobj +245 0 obj +<< /S /GoTo /D (subsection.5.3.2) >> +endobj +248 0 obj +(Division by Two) +endobj +249 0 obj +<< /S /GoTo /D (section.5.4) >> +endobj +252 0 obj +(Polynomial Basis Operations) +endobj +253 0 obj +<< /S /GoTo /D (subsection.5.4.1) >> +endobj +256 0 obj +(Multiplication by x) +endobj +257 0 obj +<< /S /GoTo /D (subsection.5.4.2) >> +endobj +260 0 obj +(Division by x) +endobj +261 0 obj +<< /S /GoTo /D (section.5.5) >> +endobj +264 0 obj +(Powers of Two) +endobj +265 0 obj +<< /S /GoTo /D (subsection.5.5.1) >> +endobj +268 0 obj +(Multiplication by Power of Two) +endobj +269 0 obj +<< /S /GoTo /D (subsection.5.5.2) >> +endobj +272 0 obj +(Division by Power of Two) +endobj +273 0 obj +<< /S /GoTo /D (subsection.5.5.3) >> +endobj +276 0 obj +(Remainder of Division by Power of Two) +endobj +277 0 obj +<< /S /GoTo /D (chapter.6) >> +endobj +280 0 obj +(Multiplication and Squaring) +endobj +281 0 obj +<< /S /GoTo /D (section.6.1) >> +endobj +284 0 obj +(The Multipliers) +endobj +285 0 obj +<< /S /GoTo /D (section.6.2) >> +endobj +288 0 obj +(Multiplication) +endobj +289 0 obj +<< /S /GoTo /D (subsection.6.2.1) >> +endobj +292 0 obj +(The Baseline Multiplication) +endobj +293 0 obj +<< /S /GoTo /D (subsection.6.2.2) >> +endobj +296 0 obj +(Faster Multiplication by the ``Comba'' Method) +endobj +297 0 obj +<< /S /GoTo /D (subsection.6.2.3) >> +endobj +300 0 obj +(Polynomial Basis Multiplication) +endobj +301 0 obj +<< /S /GoTo /D (subsection.6.2.4) >> +endobj +304 0 obj +(Karatsuba Multiplication) +endobj +305 0 obj +<< /S /GoTo /D (subsection.6.2.5) >> +endobj +308 0 obj +(Toom-Cook 3-Way Multiplication) +endobj +309 0 obj +<< /S /GoTo /D (subsection.6.2.6) >> +endobj +312 0 obj +(Signed Multiplication) +endobj +313 0 obj +<< /S /GoTo /D (section.6.3) >> +endobj +316 0 obj +(Squaring) +endobj +317 0 obj +<< /S /GoTo /D (subsection.6.3.1) >> +endobj +320 0 obj +(The Baseline Squaring Algorithm) +endobj +321 0 obj +<< /S /GoTo /D (subsection.6.3.2) >> +endobj +324 0 obj +(Faster Squaring by the ``Comba'' Method) +endobj +325 0 obj +<< /S /GoTo /D (subsection.6.3.3) >> +endobj +328 0 obj +(Polynomial Basis Squaring) +endobj +329 0 obj +<< /S /GoTo /D (subsection.6.3.4) >> +endobj +332 0 obj +(Karatsuba Squaring) +endobj +333 0 obj +<< /S /GoTo /D (subsection.6.3.5) >> +endobj +336 0 obj +(Toom-Cook Squaring) +endobj +337 0 obj +<< /S /GoTo /D (subsection.6.3.6) >> +endobj +340 0 obj +(High Level Squaring) +endobj +341 0 obj +<< /S /GoTo /D (chapter.7) >> +endobj +344 0 obj +(Modular Reduction) +endobj +345 0 obj +<< /S /GoTo /D (section.7.1) >> +endobj +348 0 obj +(Basics of Modular Reduction) +endobj +349 0 obj +<< /S /GoTo /D (section.7.2) >> +endobj +352 0 obj +(The Barrett Reduction) +endobj +353 0 obj +<< /S /GoTo /D (subsection.7.2.1) >> +endobj +356 0 obj +(Fixed Point Arithmetic) +endobj +357 0 obj +<< /S /GoTo /D (subsection.7.2.2) >> +endobj +360 0 obj +(Choosing a Radix Point) +endobj +361 0 obj +<< /S /GoTo /D (subsection.7.2.3) >> +endobj +364 0 obj +(Trimming the Quotient) +endobj +365 0 obj +<< /S /GoTo /D (subsection.7.2.4) >> +endobj +368 0 obj +(Trimming the Residue) +endobj +369 0 obj +<< /S /GoTo /D (subsection.7.2.5) >> +endobj +372 0 obj +(The Barrett Algorithm) +endobj +373 0 obj +<< /S /GoTo /D (subsection.7.2.6) >> +endobj +376 0 obj +(The Barrett Setup Algorithm) +endobj +377 0 obj +<< /S /GoTo /D (section.7.3) >> +endobj +380 0 obj +(The Montgomery Reduction) +endobj +381 0 obj +<< /S /GoTo /D (subsection.7.3.1) >> +endobj +384 0 obj +(Digit Based Montgomery Reduction) +endobj +385 0 obj +<< /S /GoTo /D (subsection.7.3.2) >> +endobj +388 0 obj +(Baseline Montgomery Reduction) +endobj +389 0 obj +<< /S /GoTo /D (subsection.7.3.3) >> +endobj +392 0 obj +(Faster ``Comba'' Montgomery Reduction) +endobj +393 0 obj +<< /S /GoTo /D (subsection.7.3.4) >> +endobj +396 0 obj +(Montgomery Setup) +endobj +397 0 obj +<< /S /GoTo /D (section.7.4) >> +endobj +400 0 obj +(The Diminished Radix Algorithm) +endobj +401 0 obj +<< /S /GoTo /D (subsection.7.4.1) >> +endobj +404 0 obj +(Choice of Moduli) +endobj +405 0 obj +<< /S /GoTo /D (subsection.7.4.2) >> +endobj +408 0 obj +(Choice of k) +endobj +409 0 obj +<< /S /GoTo /D (subsection.7.4.3) >> +endobj +412 0 obj +(Restricted Diminished Radix Reduction) +endobj +413 0 obj +<< /S /GoTo /D (subsection.7.4.4) >> +endobj +416 0 obj +(Unrestricted Diminished Radix Reduction) +endobj +417 0 obj +<< /S /GoTo /D (section.7.5) >> +endobj +420 0 obj +(Algorithm Comparison) +endobj +421 0 obj +<< /S /GoTo /D (chapter.8) >> +endobj +424 0 obj +(Exponentiation) +endobj +425 0 obj +<< /S /GoTo /D (section.8.1) >> +endobj +428 0 obj +(Exponentiation Basics) +endobj +429 0 obj +<< /S /GoTo /D (subsection.8.1.1) >> +endobj +432 0 obj +(Single Digit Exponentiation) +endobj +433 0 obj +<< /S /GoTo /D (section.8.2) >> +endobj +436 0 obj +(k-ary Exponentiation) +endobj +437 0 obj +<< /S /GoTo /D (subsection.8.2.1) >> +endobj +440 0 obj +(Optimal Values of k) +endobj +441 0 obj +<< /S /GoTo /D (subsection.8.2.2) >> +endobj +444 0 obj +(Sliding-Window Exponentiation) +endobj +445 0 obj +<< /S /GoTo /D (section.8.3) >> +endobj +448 0 obj +(Modular Exponentiation) +endobj +449 0 obj +<< /S /GoTo /D (subsection.8.3.1) >> +endobj +452 0 obj +(Barrett Modular Exponentiation) +endobj +453 0 obj +<< /S /GoTo /D (section.8.4) >> +endobj +456 0 obj +(Quick Power of Two) +endobj +457 0 obj +<< /S /GoTo /D (chapter.9) >> +endobj +460 0 obj +(Higher Level Algorithms) +endobj +461 0 obj +<< /S /GoTo /D (section.9.1) >> +endobj +464 0 obj +(Integer Division with Remainder) +endobj +465 0 obj +<< /S /GoTo /D (subsection.9.1.1) >> +endobj +468 0 obj +(Quotient Estimation) +endobj +469 0 obj +<< /S /GoTo /D (subsection.9.1.2) >> +endobj +472 0 obj +(Normalized Integers) +endobj +473 0 obj +<< /S /GoTo /D (subsection.9.1.3) >> +endobj +476 0 obj +(Radix- Division with Remainder) +endobj +477 0 obj +<< /S /GoTo /D (section.9.2) >> +endobj +480 0 obj +(Single Digit Helpers) +endobj +481 0 obj +<< /S /GoTo /D (subsection.9.2.1) >> +endobj +484 0 obj +(Single Digit Addition and Subtraction) +endobj +485 0 obj +<< /S /GoTo /D (subsection.9.2.2) >> +endobj +488 0 obj +(Single Digit Multiplication) +endobj +489 0 obj +<< /S /GoTo /D (subsection.9.2.3) >> +endobj +492 0 obj +(Single Digit Division) +endobj +493 0 obj +<< /S /GoTo /D (subsection.9.2.4) >> +endobj +496 0 obj +(Single Digit Root Extraction) +endobj +497 0 obj +<< /S /GoTo /D (section.9.3) >> +endobj +500 0 obj +(Random Number Generation) +endobj +501 0 obj +<< /S /GoTo /D (section.9.4) >> +endobj +504 0 obj +(Formatted Representations) +endobj +505 0 obj +<< /S /GoTo /D (subsection.9.4.1) >> +endobj +508 0 obj +(Reading Radix-n Input) +endobj +509 0 obj +<< /S /GoTo /D (subsection.9.4.2) >> +endobj +512 0 obj +(Generating Radix-n Output) +endobj +513 0 obj +<< /S /GoTo /D (chapter.10) >> +endobj +516 0 obj +(Number Theoretic Algorithms) +endobj +517 0 obj +<< /S /GoTo /D (section.10.1) >> +endobj +520 0 obj +(Greatest Common Divisor) +endobj +521 0 obj +<< /S /GoTo /D (subsection.10.1.1) >> +endobj +524 0 obj +(Complete Greatest Common Divisor) +endobj +525 0 obj +<< /S /GoTo /D (section.10.2) >> +endobj +528 0 obj +(Least Common Multiple) +endobj +529 0 obj +<< /S /GoTo /D (section.10.3) >> +endobj +532 0 obj +(Jacobi Symbol Computation) +endobj +533 0 obj +<< /S /GoTo /D (subsection.10.3.1) >> +endobj +536 0 obj +(Jacobi Symbol) +endobj +537 0 obj +<< /S /GoTo /D (section.10.4) >> +endobj +540 0 obj +(Modular Inverse) +endobj +541 0 obj +<< /S /GoTo /D (subsection.10.4.1) >> +endobj +544 0 obj +(General Case) +endobj +545 0 obj +<< /S /GoTo /D (section.10.5) >> +endobj +548 0 obj +(Primality Tests) +endobj +549 0 obj +<< /S /GoTo /D (subsection.10.5.1) >> +endobj +552 0 obj +(Trial Division) +endobj +553 0 obj +<< /S /GoTo /D (subsection.10.5.2) >> +endobj +556 0 obj +(The Fermat Test) +endobj +557 0 obj +<< /S /GoTo /D (subsection.10.5.3) >> +endobj +560 0 obj +(The Miller-Rabin Test) +endobj +561 0 obj +<< /S /GoTo /D [562 0 R /Fit ] >> +endobj +564 0 obj << +/Length 443 +/Filter /FlateDecode +>> +stream +xÚRËnÔ0ÝÏWxKäâgì,§R@ŒZ ¬‹4ãKIfˆ“ϵ¢X lâëóò±9aøqRI`R‘Š 0Ö’nÜ1ÒãÎíŽo©$WÿØ,¥¨Á(IJ®Tº~ú l 0&H©4.öªÙ½~à áפy$–CmyÂ4§¯Å»ñ2P^8ZòbtU±ø©§¥d¼8®Ãâq÷2¸8Åýq®óÁŸ§ŒÙÇÉì—ï£[|G¿5ï fÌ` VVÉæíyˆB§6üÌÌÃÜ>âlÉÒ7QçAKÔF o ÇÈ:…W T…ªšƒ19|C-/ÎHQC˜âsÔBƒƒ›|HQJäëûájek?ô‘3ýXý”ñ×Ñ;ΆÁõ.ñîÖ) ØZ'Ú±=… ÿÔ†‘¢Ý‚›²4 •zasw¡H/ÜŸcæN¾k\âaÖÞu+I…ņ¢ªVØŸ|âvvý"j…t[ ›záã—ýD%ë;ü9³Ó~ ËÜÆóú6‘‘Sa§¥° „I܃ë\Jú1gª@–z•#† &£Âî¦ùý·w_k¢þïgÿ |aÁ'endstream +endobj +562 0 obj << +/Type /Page +/Contents 564 0 R +/Resources 563 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 573 0 R +>> endobj +565 0 obj << +/D [562 0 R /XYZ 63.034 602.788 null] +>> endobj +566 0 obj << +/D [562 0 R /XYZ 63.034 584.788 null] +>> endobj +563 0 obj << +/Font << /F17 569 0 R /F18 572 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +576 0 obj << +/Length 675 +/Filter /FlateDecode +>> +stream +xÚTMoÔ0½ï¯È1‘ˆ‰?ãp‚–‚E­ $ÄÁ›¸ÝÐ|¬v]Zúë™±6«]$´ÒÆ~ó<3žyšð£IEIÅd¢ +FJ­“fXÉ-X>®hdpÁIIqw˜ .‰â*ÉÎêÕë:©H¥xRß$´PD«*‘¥ š©¤n¤õ¦Ûg9¯ŠÔÙ,§écFS‡M7°4û°^g9Ó©µcàn{ÓxzöP£Éml8²ì~ }פ…Í4˜n$Y®¨Lkô€QºÅÙG¼4hšv`ÛÙ=®·@™N#ú˜ÙSö³þ”äTJøB ¥ô·rèóà"ý]¦qÉÁWowg0Ý„oH—ݺÎ4†/Æe˜‡·˜É”åR¥¿lã^]ÔÏå×ʧ E)ðeƒŽ©ù‚ëû½{nTÃLñ}šÏdúÍ…ï{;BÙ°ÅÁÕ)¥pfƱoÃæk{‚zåœy0¯ãjtf×M´ ‘Ïì2Pè9?áåÜŒ¦5³qRQ_o¦Ñ¾‰'¡ß<×\圪ℓ EÉnö®Åë½íÌæž@éïÿPÌ±ë œP½Ô2c³X” 7Ón0ÎÙ6À @œ…Âx1È<¼lùh¢Óhúpî -2¬·&ˆ2²=æÅ…Gžf•A¯20ÒR ~èÚ왳ÆÀþ)h&‹azv¦ïƒ*ï³E@ìô¡”CÉÊW +/+M„Ð #…`Þ뻣ª +Â5 ‘JíS’Dr‰0±_ øýüÁn1sHYqè6Ú×™Äg„wG¡¡‘J²ÈL3÷` +×Æq Ôû.ƒghnãó6cÆÐòî×XM»ëOäÃýq>vw”/ŒÕÈÝbp½NÓ£1ßm% gÕÏð¿ílendstream +endobj +575 0 obj << +/Type /Page +/Contents 576 0 R +/Resources 574 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 573 0 R +>> endobj +577 0 obj << +/D [575 0 R /XYZ 91.925 602.788 null] +>> endobj +574 0 obj << +/Font << /F8 580 0 R /F36 583 0 R /F7 586 0 R /F45 589 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +592 0 obj << +/Length 1553 +/Filter /FlateDecode +>> +stream +xÚÝš]oÛ6†ïó+|)]ˆã—DñªH»®Èдj`Û.ÇM„9±a+@»_¿Ão:õa»¢Iê"@,KÇ|Í÷áy(³…?6ë¡BÎ:ʉêûÙâæ„ήàÊ«æ#„D1óîÀÅFÒŽ(ÙΚ¬…çó“_~“jÆ%œQ³ù‡ "µ$Zv³ùåŸÕ‹šUëÛZ°j‚£eÝ° +ÞñjÚÕχÏ÷3Mt'ÌÇ)4Ï ãÊ~’Õæmuæ·ëº×Ë;he1™fFh¶áí%„Ú¶²¦˜ùrÖ0hÏ7G AF9¯ÎM«i„ÿ›|#!dõÞl— Û.ÑÓí8]ÃÙsv9&{Z‘ºiiþ"µþüäƒ_ƒ®Ÿ¼œGT’2¢ÀÉ)é¤Fhº˜& ²43ï·ã|&æ†EYÌ‚£”ôšC{=áyðÜ@c²­æ×–”¨ÞØ1´¼tï>¬·îàbïVðo7+7Ò,×mu‹qç +ÔD^ßØ+f`¦ßÙו²ý1u?35¿¤¼G•‚õBwD°Üzî­ÿÃŒýarÖ;g¬óû[’Èy>.žÕRíƒߟ¢ÿ)ó?s…cþ•¼ÿ¸Rô¿—„ÉÜáýîïš~ ÿE™4£×ƒXÈÀŽåÿæ `ë®_e1åÜ(‡’Rà€*)E´êgB1xõ¸Ÿ1ÌÀ¾Ûn`ºQÕz·Ü7~~í»99¯{Q-?šdéÔ7íjñn”áÅ^ò‡WR +ðP¥¯Õ$̳ûuÜ-îvû÷¢áÖOoÖÓ`SÆ\iÅq2².# +!(¡hœDdL&Þã¤"挔OïÄèÖŠeê ì}V΀2¬ƒÒJ6â¸JJª‰–ø…¼ù\Ÿæ•½|ê¤<.8®³e81…“,kQ8%¥UŠp¸ \çpŠátuµ6ó~,[ÌÔtv»1Ó˜[7ˆt|kÊ¡)^S¢{@ש2„ƒBHÖt(„’R€€*E Vk<‡ =„óÁ.±–¶jB‘‡+çûK8óq—g~Š²·@8”Bÿx âúZfcP6É1œMI)°A•®{¢ÛœMJšº‡ÜöO–ÔÂ& ¬Ûd+~šéÆP–b0`™(°¢’†+ùåï!2¬ß¤_¿Ù4±²uUJV\.ÍJ»šÍ÷fêL*31(ÓdµB™–”Ó}¥|7ÏoòN’–J_BÅ–ž€ +j2— E_›»¦¹r1¯uW­oΘҦ:Å*ý»~<îúÜÅx=^ÀY[´ù¶Yõ .¹}‰c!-'й/ ‘„Žb|Ôè )Š…Q‚‹…Ô—”°Î’Xw¿Z«T[‡‚ûshâý1ó/KA(°ÌDXQ,ÃÅ0¯~Và±Ø~q½Ã]zo›„j™MD“Æ”écâe6ñTÏcßYbš,è¾…÷Û±EÔ0\-®†XKz‰åÕ÷ ¸ÝB]¦mÃçÃÎ3„;üÏR…Gß½e~)å—9ZàWPKüpµÈ +Òµ{üB1~jªñ3Gî½™2o6«˜‡ãTÛO¦²kšï~Z +B¡e62ô™JI-AÃÕ4¦a%ÛïA EúÛ}Zu3þ;Lfáãæ9ÊŽ?¿B§‹¨² UnŽª¤QÔ"*¥‰`{¨dÜì‚ râpak“jo+彋0˜"$WOå»\•‚PP™u }NVRK pµªS¨ä B]oý!™zºÅãdš·¢ 0¡3K j à=µ%!“’ôö„lIøj9¹ +ðöÊU€ï§a;™§ü\ôP1ñÅžˆÅž+¶ƒIÙOqE3.ì~S?ÙÖ@¤(8é´þÂhHAèhð!v4 OìJji4àj¾`œ’ÖïÕŠXù¬Öÿ¤Ûÿ~ÇÌŸ‡~zGœÝš{püáÑÕr Ž–êI!ùþ–!¥ RæCÕü/¾ <'‡÷Z}¾6º%âð·á‚%à„‹0_fGìÛ¤v‚Ô,ºÐtendstream +endobj +591 0 obj << +/Type /Page +/Contents 592 0 R +/Resources 590 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 573 0 R +/Annots [ 598 0 R 602 0 R 603 0 R 604 0 R 605 0 R 606 0 R 607 0 R 608 0 R 609 0 R 610 0 R 611 0 R 612 0 R 613 0 R 614 0 R 615 0 R 616 0 R 617 0 R 618 0 R 619 0 R 620 0 R 621 0 R 622 0 R 623 0 R 624 0 R 625 0 R ] +>> endobj +598 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [62.037 431.823 142.139 440.734] +/Subtype /Link +/A << /S /GoTo /D (chapter.1) >> +>> endobj +602 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 417.716 232.205 428.564] +/Subtype /Link +/A << /S /GoTo /D (section.1.1) >> +>> endobj +603 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 405.546 324.996 416.394] +/Subtype /Link +/A << /S /GoTo /D (subsection.1.1.1) >> +>> endobj +604 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 393.376 306.759 404.224] +/Subtype /Link +/A << /S /GoTo /D (subsection.1.1.2) >> +>> endobj +605 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 381.206 313.539 392.054] +/Subtype /Link +/A << /S /GoTo /D (subsection.1.1.3) >> +>> endobj +606 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 369.036 194.596 379.884] +/Subtype /Link +/A << /S /GoTo /D (section.1.2) >> +>> endobj +607 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 358.804 208.461 367.715] +/Subtype /Link +/A << /S /GoTo /D (section.1.3) >> +>> endobj +608 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 346.634 172.235 355.434] +/Subtype /Link +/A << /S /GoTo /D (subsection.1.3.1) >> +>> endobj +609 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 334.464 215.075 343.264] +/Subtype /Link +/A << /S /GoTo /D (subsection.1.3.2) >> +>> endobj +610 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 320.357 268.403 331.205] +/Subtype /Link +/A << /S /GoTo /D (subsection.1.3.3) >> +>> endobj +611 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 308.187 248.118 319.035] +/Subtype /Link +/A << /S /GoTo /D (subsection.1.3.4) >> +>> endobj +612 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 297.954 185.989 306.865] +/Subtype /Link +/A << /S /GoTo /D (subsection.1.3.5) >> +>> endobj +613 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 285.784 141.739 294.584] +/Subtype /Link +/A << /S /GoTo /D (section.1.4) >> +>> endobj +614 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [62.037 263.508 225.957 272.419] +/Subtype /Link +/A << /S /GoTo /D (chapter.2) >> +>> endobj +615 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 251.338 202.262 260.249] +/Subtype /Link +/A << /S /GoTo /D (section.2.1) >> +>> endobj +616 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 239.168 198.733 248.079] +/Subtype /Link +/A << /S /GoTo /D (section.2.2) >> +>> endobj +617 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 226.998 203.59 235.909] +/Subtype /Link +/A << /S /GoTo /D (section.2.3) >> +>> endobj +618 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 214.828 179.901 223.739] +/Subtype /Link +/A << /S /GoTo /D (subsection.2.3.1) >> +>> endobj +619 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 200.721 198.664 211.569] +/Subtype /Link +/A << /S /GoTo /D (subsection.2.3.2) >> +>> endobj +620 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 188.551 195.26 199.289] +/Subtype /Link +/A << /S /GoTo /D (subsection.2.3.3) >> +>> endobj +621 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 176.381 240.48 187.23] +/Subtype /Link +/A << /S /GoTo /D (subsection.2.3.4) >> +>> endobj +622 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 166.149 163.103 175.06] +/Subtype /Link +/A << /S /GoTo /D (subsection.2.3.5) >> +>> endobj +623 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [62.037 141.936 158.419 152.784] +/Subtype /Link +/A << /S /GoTo /D (chapter.3) >> +>> endobj +624 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 129.766 164.874 140.614] +/Subtype /Link +/A << /S /GoTo /D (section.3.1) >> +>> endobj +625 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 117.596 266.299 128.444] +/Subtype /Link +/A << /S /GoTo /D (section.3.2) >> +>> endobj +593 0 obj << +/D [591 0 R /XYZ 63.034 602.788 null] +>> endobj +597 0 obj << +/D [591 0 R /XYZ 63.034 455.095 null] +>> endobj +590 0 obj << +/Font << /F47 596 0 R /F48 601 0 R /F8 580 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +628 0 obj << +/Length 2346 +/Filter /FlateDecode +>> +stream +xÚí›[s·Çßù)øÖåÜvxô%I“±Û´RúÐLÖÒ†Þ^T’Žë~úX༜#·JlÒ“ÉL,Qþ‹ó;7+1åî?1µ‚YYO.YkÌôn5áÓ…ûÉ·G(­X+üwg~8תfj¦ób†ç·“¯¾1SËl£¦·¿L…´îGjZ·šÙLo望LÌæBh]ݾígs¥TµrT³Ÿo¿Ÿ|} Â6¬n[øu§ð¯ÉO?óé½{œï'œ)k¦ïÝל k§«‰dÖØøÝrr3ù[~Ü4×¼˜ìäq­euÓ<î°žISíÇǼ™‰j¿}çþçxï¿Úº%X!+6›×œÿhkO?üÝvdB-¥V—&<%ÇP¦9žÇ›FÔ'jÑ'Hµä7Þ0ÓØiÝ8×jtôålÎ¥¬žmÞð«Þ3(ñüà¿îv»a½˜ÍÕŸÆïC/Ú¦—¡ô +{Š¥G©=\ èÕœµ\Fz:Òû{¿·]{`²úÇ̨ª[zšæÎ},ÚÏ<Ÿ„e´ +Í2BYÖ%XRjÀW–Ê0Ä:¢ün=ø„8tËá?Ý~ØDªÝú~ŒÇ˾ۺ**º­¯‹Ó¸bŒA)e» ƒB"¤€*EVú +g#(²%¥C)í0¸Î×^©9ã.;§YŸR{Ó\ób²ãUH×lpQ¬Â×^ë“»à\\JÀÜ%/ð|ýÇó±¨ÇPjà2¸øŒÐ¬ øŒŒ>s¹á,n:#4L÷$g‰sÍ‹ÉNœEIføáãC£¦[~™óœ¼NÂspcÏã!ê9”x®ÁuýºN¡‰áuçsÍH¢_wëÔ)÷£=[zÚl‡ý[ßÀÅ’¯{•…i®y1ÙñZ•Liy°ÖT=ÂÓ¶Úþf)óŽüx„wàk8ž'xGƒz¥Þ«w4Î#\òOÞ¡¢w¼öÉc¹ +'ønŒÈ„‹~;Âwnäm\ìÆM_è0îÇã…ÿeÚv[?~½ðXÎ…0‘ï1ÓÇEЦσPÓÆèŒTÓãj`úZ3É[0½†N­[=„¢Sõ×ÿ¾ëwi3íìúÒÿp1ì½›ÏßEcPâòh(y +¥0“DÛgR  ©éB.žjׇ +1FŸâ>ªžw»Áe>eTõ×÷¯¬úmðtg׶¶M¥B?„¬™ÕnB2ÞŒ[z*ó¸Ë©ÉÇÁÆÍaªû|9K‰•›Ï~òøIŠªt;IýXìæA¨›Ä!!šð¢J©›àj©WÖ¼u«\e:ÆÜ…q±.ßõ1‚÷¬rJ¥˜žÔxŹæÅd§û®&„D¹ 8 ÷©GÚO⋘ßä5~ƒ/üxžGü†R¿ÁÕRÎW¶i&ú ôê/6ÞæÊ´ß¡í•ßP;¸0ÛS7ç~®y1ٹ͹”òàéá$§>ðƒ‹HT¤ãëć0Æñ<´ãjÉq5p£\âÑà8p¬³í»ýÁ±N:¨ ˜k¸j#.å&ë© iÁ4¦<ÅTN¡=©˜pµTT+˜á©Þ§ë­öÛÍéÑ›:m¨·´×]Ø“)h€y +°0©BÜI5ˆ«ÀÚÅ[ +³tÁåk /êÚëp6<„ ’ïÃñØÜñå @“ƒ1(¸lJ…öí”`C¥ ;êÖIš„-½I‡›p%¹ïú±Ù¼áõ¥¬ÿ'KÆ…Ó¨ò ”Ua@¥´p5ÀåÇÆsm+IÇÌ‹·ãáÁ_Æô˜#­ö*QÅEÓ¨ò Ui<ôR€TT¸äC©X]§„X 1wËeì7ÒÁ ²n,kîÛ´_Ú~5„Ƙ¡KÃJ#¥q5ˆ8!˜¶©/É7É7éPn¿/·7«ì.5h­õÅX\#M&BÉ”¶ÂÉPj@WKd¤µL+#i0¯ºí"Ö°óWKs©|âJIiZ¦šÔU¤ Ñ›ÕC·…[DÁª/ü-§d š_„,­ªQ‚” ÄÕ ¼Úš)žZ|9ú#ÏxZb­¼®p”gþ®"\6º¦±Xq4™<%SÚ +'C©\ È4ŠI]™2ó9&}zãlo¨Œã¨k/.ê0Fqµ4£<eTZ =ΠՀёڙÛ©ñP½>¹ y6véþJØ¡·«~¾º ÷"VUÚ~̽HýǽÈ9‡qaÂ;ß.¡‡‡Awv¤8 ®%S´ŒÇCÑ:ß‹Ü;z÷CèdÒKðJ©÷woÂ-Cw7¾rÚÖòºXÅUÓ¬ò ”Ui=Ž²¢Ô€® ˜ëñ£‘”ÆW…ïÇ.óUÿ«ÿ®_Æ×½F’áÅOÊŽÛ+È¿q±4¢<ET GD©"\-!V2Ë ’èL<éÆ\8ž´PO1Ãs`0ôYHµ„‡P<†3£,àI/ÏüyX¼ûµ’«˜÷>~†‘Jc®ää*-“†“¡pJs¡¥ˆT8¸Ài kÛàèÇàÜE5òb‰ÄµÑDò ”Ha£=ê Õ€®–šQ7¬©9H—cχýQGð2ìÒÇ7þÅâá—ýøÒ˜¿#3WÜÖ%Ðäò ”\aËOt”ÃÕ –´Û¡ÅÃJGZ…ƒ·‡;ø‹!U½ñRƯo}ÿÞ‡ÚÆPµ—žîâbiDyŠ¨0ˆRD¸ R’ÕV¢Ô*¼~õ‘³K¯î€ rpZÇuW+ií4±<%VØ°A¯šI5 †«A:”œÕ©ýNWÍá^7þ]ÙëÍjèbmr»îâÝkßæùW´>íÁ‹wo-W—žÇ¥Ó¼` Š+°E/©ô×ðs7Ÿ<ßžýƒùÿ´Ï{endstream +endobj +627 0 obj << +/Type /Page +/Contents 628 0 R +/Resources 626 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 573 0 R +/Annots [ 630 0 R 631 0 R 632 0 R 633 0 R 634 0 R 635 0 R 636 0 R 637 0 R 638 0 R 639 0 R 640 0 R 641 0 R 642 0 R 643 0 R 644 0 R 645 0 R 646 0 R 647 0 R 648 0 R 649 0 R 650 0 R 651 0 R 652 0 R 653 0 R 654 0 R 655 0 R 656 0 R 657 0 R 658 0 R 659 0 R 660 0 R 661 0 R 662 0 R 663 0 R 664 0 R 665 0 R 666 0 R ] +>> endobj +630 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 571.892 256.796 582.741] +/Subtype /Link +/A << /S /GoTo /D (subsection.3.2.1) >> +>> endobj +631 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 559.83 210.481 570.568] +/Subtype /Link +/A << /S /GoTo /D (section.3.3) >> +>> endobj +632 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 549.706 192.991 558.617] +/Subtype /Link +/A << /S /GoTo /D (section.3.4) >> +>> endobj +633 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 535.707 245.655 546.555] +/Subtype /Link +/A << /S /GoTo /D (section.3.5) >> +>> endobj +634 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 523.645 255.911 534.493] +/Subtype /Link +/A << /S /GoTo /D (subsection.3.5.1) >> +>> endobj +635 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 511.583 245.699 522.431] +/Subtype /Link +/A << /S /GoTo /D (subsection.3.5.2) >> +>> endobj +636 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 499.521 237.961 510.369] +/Subtype /Link +/A << /S /GoTo /D (section.3.6) >> +>> endobj +637 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 487.459 311.812 498.307] +/Subtype /Link +/A << /S /GoTo /D (subsection.3.6.1) >> +>> endobj +638 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 475.397 328.168 486.245] +/Subtype /Link +/A << /S /GoTo /D (subsection.3.6.2) >> +>> endobj +639 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 463.335 359.312 474.183] +/Subtype /Link +/A << /S /GoTo /D (subsection.3.6.3) >> +>> endobj +640 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 451.273 266.05 462.122] +/Subtype /Link +/A << /S /GoTo /D (subsection.3.6.4) >> +>> endobj +641 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [90.929 429.178 193.277 440.026] +/Subtype /Link +/A << /S /GoTo /D (chapter.4) >> +>> endobj +642 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 419.053 185.325 427.964] +/Subtype /Link +/A << /S /GoTo /D (section.4.1) >> +>> endobj +643 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 405.054 297.366 415.902] +/Subtype /Link +/A << /S /GoTo /D (section.4.2) >> +>> endobj +644 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 392.992 245.118 403.729] +/Subtype /Link +/A << /S /GoTo /D (subsection.4.2.1) >> +>> endobj +645 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 380.93 236.854 391.778] +/Subtype /Link +/A << /S /GoTo /D (subsection.4.2.2) >> +>> endobj +646 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 368.868 211.09 379.606] +/Subtype /Link +/A << /S /GoTo /D (section.4.3) >> +>> endobj +647 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 356.806 211.311 367.654] +/Subtype /Link +/A << /S /GoTo /D (section.4.4) >> +>> endobj +648 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 346.682 228.856 355.593] +/Subtype /Link +/A << /S /GoTo /D (subsection.4.4.1) >> +>> endobj +649 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 332.682 235.471 343.42] +/Subtype /Link +/A << /S /GoTo /D (subsection.4.4.2) >> +>> endobj +650 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 322.558 202.013 331.469] +/Subtype /Link +/A << /S /GoTo /D (section.4.5) >> +>> endobj +651 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 308.559 268.209 319.407] +/Subtype /Link +/A << /S /GoTo /D (subsection.4.5.1) >> +>> endobj +652 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 296.497 268.375 307.234] +/Subtype /Link +/A << /S /GoTo /D (subsection.4.5.2) >> +>> endobj +653 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 284.435 186.82 295.172] +/Subtype /Link +/A << /S /GoTo /D (section.4.6) >> +>> endobj +654 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 272.373 264.971 283.221] +/Subtype /Link +/A << /S /GoTo /D (subsection.4.6.1) >> +>> endobj +655 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 260.311 250.802 271.159] +/Subtype /Link +/A << /S /GoTo /D (subsection.4.6.2) >> +>> endobj +656 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [90.929 240.153 193.109 249.064] +/Subtype /Link +/A << /S /GoTo /D (chapter.5) >> +>> endobj +657 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 228.091 185.325 237.002] +/Subtype /Link +/A << /S /GoTo /D (section.5.1) >> +>> endobj +658 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 216.029 242.887 224.94] +/Subtype /Link +/A << /S /GoTo /D (section.5.2) >> +>> endobj +659 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 203.967 248.726 212.878] +/Subtype /Link +/A << /S /GoTo /D (subsection.5.2.1) >> +>> endobj +660 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 191.905 261.207 200.816] +/Subtype /Link +/A << /S /GoTo /D (subsection.5.2.2) >> +>> endobj +661 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 177.906 251.355 188.754] +/Subtype /Link +/A << /S /GoTo /D (subsection.5.2.3) >> +>> endobj +662 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 165.844 263.836 176.692] +/Subtype /Link +/A << /S /GoTo /D (subsection.5.2.4) >> +>> endobj +663 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 153.782 226.532 164.63] +/Subtype /Link +/A << /S /GoTo /D (section.5.3) >> +>> endobj +664 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 141.72 260.626 152.568] +/Subtype /Link +/A << /S /GoTo /D (subsection.5.3.1) >> +>> endobj +665 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 129.658 234.53 140.506] +/Subtype /Link +/A << /S /GoTo /D (subsection.5.3.2) >> +>> endobj +666 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 117.596 256.89 128.445] +/Subtype /Link +/A << /S /GoTo /D (section.5.4) >> +>> endobj +629 0 obj << +/D [627 0 R /XYZ 91.925 602.788 null] +>> endobj +626 0 obj << +/Font << /F8 580 0 R /F48 601 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +669 0 obj << +/Length 2156 +/Filter /FlateDecode +>> +stream +xÚÝ›Ko7ÇïþBN«ƒ˜å›{Ì£nÑ6@k è¡íA±Y¨‰,§É·/É>$kÆ6ÛJa@’wûç·ÃrV|Ðú?>0’µR L+˜unp±ç;[CÑ)Q ý|ÑOëX¾ÞÄ5l³þ§‡#G“IU­æ%¬}ž@ÁÑLŠʤrçx r… .—˜ÈN3_¥×L 09yz¶š^Rîî”<–b “FH‚©Œ00µ§8ï00”\CÈA]ìWCÌÁÖ‡aêâ€$-‘ÂòHùì[®OY& ð M´¡D+sîÚSr…(.—CÍÙ´V•«“ýÊ8d­Í|åßfý±W‹Ùz3ßúWËp/¨ç‰/M£¡4*÷p!P„\¡Ëeºó¶5 ª<>ÿä êÀÛÛ9Ú^ù3ûµ±õ&žÙ ¨ëz ÞÛöÙ-Êö1˜ôƒ£‘d”Hq‚k¨VÆ¡,3°}<\9'HqçojfsDiH3)F(”ÊQ\â“!W°àr™‹ÔÌÀö!p¹³ÞÏRÎg®#éÞÁK3*F(£Êi#B®0Âå2#!™Ö;sÙ½ëêý˜}‹âˆŠŒ šfUŒPV•ó¸D·;)¹Â +—ˬ8gªÛ)R½ýÓ|vÕ7~yâsìA,ç¶ß '0Í©¡œ*ÇQœ¹ÂiOî@#C¸ŽÉè€F†ɛ˛ØĘlú–ÅÙôòæÚ!†|qÕª†+~Ÿ¦…ÍM‹*Ÿ]„; }ÕcÅàÃu1²$ˆ'û¸[w,´8òޯљ}OTFØ=‘Lâ=¡Ðy–’Ë÷!K2a4°•hs«b¯tIo3ÝnO8Œ`GõP[þ»Yy%ÐàŠ +®r%Wh­OÉp¸\št…–LÀæ£ÝíPœ†¨ùçÛË>ÐúrÓϳþ 0¾Šéq{µœnç>Ö:®Žu¶M#¥#På1 +!WárâŒÃF¤ÝmV¼žÂºŸ«å蘭 Ï&aNœ©[ø^èÃŒ™FUŒPT•ï¸BJ£ä +*\.£kaÒî¶8b±«þårVîýØ:&«u)Î:.– ™&UŒPR•ë¼¿PR„\!…ËeRܲ6,ínä^¤Î¦×󘺦áI—c¯3ÓhiHÅ…Ty+t׃’+p¹ ©Uý¡IÞÜ­,v÷þ„;ö]ø4NO1BñTþ¢ðr.—ððN°®Ý©Ì}ðœO·7©[VØ÷ó°ô¡œôä@ÒÈH •¤ö×h¿Š’Ë@9¨Á¹ó\d*ä­ç½Ö}:™­—ÓÍ×´Fê‹;Ÿv W­þ>Êí4ZšQ1BU^ã]'Qr….—ƒÆ8fm*vññËÙ|{»Ûq™–¹÷!hx*0A1BT>á­Ò(¹‚—Ë´·åºF +jØg˜.bÒŸ–æDåùô£‚¯©¨¶BÕ˜îy&.M¤¡D*qVc”\!‚Ëe"*üàFÕD$Ñp"šH÷ŠÙ?ñ8`(4b„¨\ ž:¹B—ˤ`º5T¿ë·îÛÿ> endobj +671 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 571.892 218.333 582.741] +/Subtype /Link +/A << /S /GoTo /D (subsection.5.4.1) >> +>> endobj +675 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 559.83 192.237 570.679] +/Subtype /Link +/A << /S /GoTo /D (subsection.5.4.2) >> +>> endobj +676 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 549.706 166.036 558.617] +/Subtype /Link +/A << /S /GoTo /D (section.5.5) >> +>> endobj +677 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 535.707 272.858 546.555] +/Subtype /Link +/A << /S /GoTo /D (subsection.5.5.1) >> +>> endobj +678 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 523.645 246.762 534.493] +/Subtype /Link +/A << /S /GoTo /D (subsection.5.5.2) >> +>> endobj +679 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 511.583 308.641 522.431] +/Subtype /Link +/A << /S /GoTo /D (subsection.5.5.3) >> +>> endobj +680 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [62.037 489.487 220.436 500.335] +/Subtype /Link +/A << /S /GoTo /D (chapter.6) >> +>> endobj +681 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 477.425 169.772 488.273] +/Subtype /Link +/A << /S /GoTo /D (section.6.1) >> +>> endobj +682 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 465.363 163.601 476.212] +/Subtype /Link +/A << /S /GoTo /D (section.6.2) >> +>> endobj +683 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 453.301 255.175 464.15] +/Subtype /Link +/A << /S /GoTo /D (subsection.6.2.1) >> +>> endobj +684 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 441.24 337.671 452.088] +/Subtype /Link +/A << /S /GoTo /D (subsection.6.2.2) >> +>> endobj +685 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 429.178 273.633 440.026] +/Subtype /Link +/A << /S /GoTo /D (subsection.6.2.3) >> +>> endobj +686 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 417.116 244.271 427.964] +/Subtype /Link +/A << /S /GoTo /D (subsection.6.2.4) >> +>> endobj +687 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 405.054 280.718 415.902] +/Subtype /Link +/A << /S /GoTo /D (subsection.6.2.5) >> +>> endobj +688 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 392.992 227.584 403.84] +/Subtype /Link +/A << /S /GoTo /D (subsection.6.2.6) >> +>> endobj +689 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 380.93 140.383 391.668] +/Subtype /Link +/A << /S /GoTo /D (section.6.3) >> +>> endobj +690 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 368.868 279.86 379.716] +/Subtype /Link +/A << /S /GoTo /D (subsection.6.3.1) >> +>> endobj +691 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 356.806 314.452 367.654] +/Subtype /Link +/A << /S /GoTo /D (subsection.6.3.2) >> +>> endobj +692 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 344.744 250.415 355.593] +/Subtype /Link +/A << /S /GoTo /D (subsection.6.3.3) >> +>> endobj +693 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 332.682 221.052 343.531] +/Subtype /Link +/A << /S /GoTo /D (subsection.6.3.4) >> +>> endobj +694 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 320.621 226.504 331.469] +/Subtype /Link +/A << /S /GoTo /D (subsection.6.3.5) >> +>> endobj +695 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 308.559 222.491 319.407] +/Subtype /Link +/A << /S /GoTo /D (subsection.6.3.6) >> +>> endobj +696 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [62.037 288.4 177.313 297.311] +/Subtype /Link +/A << /S /GoTo /D (chapter.7) >> +>> endobj +697 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 276.338 228.497 285.249] +/Subtype /Link +/A << /S /GoTo /D (section.7.1) >> +>> endobj +698 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 264.276 202.123 273.187] +/Subtype /Link +/A << /S /GoTo /D (section.7.2) >> +>> endobj +699 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 252.214 235.637 261.125] +/Subtype /Link +/A << /S /GoTo /D (subsection.7.2.1) >> +>> endobj +700 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 238.215 238.155 249.064] +/Subtype /Link +/A << /S /GoTo /D (subsection.7.2.2) >> +>> endobj +701 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 226.153 235.637 237.002] +/Subtype /Link +/A << /S /GoTo /D (subsection.7.2.3) >> +>> endobj +702 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 214.092 231.126 224.94] +/Subtype /Link +/A << /S /GoTo /D (subsection.7.2.4) >> +>> endobj +703 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 202.03 234.17 212.878] +/Subtype /Link +/A << /S /GoTo /D (subsection.7.2.5) >> +>> endobj +704 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 189.968 262.397 200.816] +/Subtype /Link +/A << /S /GoTo /D (subsection.7.2.6) >> +>> endobj +705 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 177.906 225.204 188.754] +/Subtype /Link +/A << /S /GoTo /D (section.7.3) >> +>> endobj +706 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 165.844 291.178 176.692] +/Subtype /Link +/A << /S /GoTo /D (subsection.7.3.1) >> +>> endobj +707 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 153.782 275.819 164.63] +/Subtype /Link +/A << /S /GoTo /D (subsection.7.3.2) >> +>> endobj +708 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 141.72 310.716 152.568] +/Subtype /Link +/A << /S /GoTo /D (subsection.7.3.3) >> +>> endobj +709 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 129.658 217.095 140.396] +/Subtype /Link +/A << /S /GoTo /D (subsection.7.3.4) >> +>> endobj +710 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 117.596 248.644 128.445] +/Subtype /Link +/A << /S /GoTo /D (section.7.4) >> +>> endobj +670 0 obj << +/D [668 0 R /XYZ 63.034 602.788 null] +>> endobj +667 0 obj << +/Font << /F8 580 0 R /F11 674 0 R /F48 601 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +713 0 obj << +/Length 2267 +/Filter /FlateDecode +>> +stream +xÚÕ›Ks7Çïþ<’"ƒ× pŒíXI*N²Zíîa7‡±4¡¦Â‡ŠÉN>}ðl`)vÛ¥*ÛT¹Ê’†ÍùýC7º1 Ÿ5îŸYά㶬3fv½yÑÌVî•‹Ä r9ÜÜç9ãï1ek>cÌ¥!Ñ$ŠJ¢r E‚’¸†©®$I•Hük뜶ž?Ô8†Ç¼å‡é×S”í>ƒ÷Ó0hï#Ôû•;xסާäÀû¸oZfZ;Ó¢eR猧Ÿ!æß®W»àòévùj\}ç.öûñÜÈ›sÉMOÉ[ià4¯b„òªÈ -”ð:’S•^ª[tãʈ.§Y,Ý¥ùw>çÜ9Lb¾ÛÛ…û9V?…é.¤6ûlòñ‚¤˜Uj¶t ç]¼g(RüÈ·uÕÈn›sàv!¬»{º³/X^¥Ãx}ðÙÍ>㡬`ÖôŒ¨Œ°‘MâŒØŒ åòŒ ärþT»$M¦Eæ?}ünWë!§ËÕ8Å_l'Œ#ºËžêY’yt4”b„B©¼ÄF¡Pr—ËiUµ«5S˜º2òQ©(³\¡¥¢fºáéÕe¿ÿ3û°ð)˜ I—Î+Úž‰É{4ôb„B¯(pƒ®¥¤@Çå µve§ÎÐ!ñ«æ4núuÄøï…‘ó~}Ÿ âåS…{?ãÐ3œh)$®¥9Ç–c›œD³-F(ÛÊÙÜ”-%lq9`«$ÓÆ[QeÙõêþíjùŸPŠÞì|J}Ÿcö8Ó.ÊÊÜʯš[Ó˜hÅEQù†´I'å.¹UrWÕæÜ*S¹6Nºy(÷×ýþ“¦jŸg±’œ@³+F(»Ê™Ü6(;JØárFܺ +7§H )òe¿ßSªOå:tÇqTq4±©K(;.¿N¥AÑ,ŠÊ¢r·xáHÉ \â¨é˜€ÂQ¥8úÇ}lµ«ÿˆžÿÕû9¥4÷_ðý–¬Ð\ùkï£Ý²“ö̶®ž_É94Ób„2­œ,œ)%LäN´‡Òh×/ð gc{øý¸º47>9Ú¸kýåºðì^1BáUÞ¤àQr—ËeŠ¹f=ÁiqÂwþÖ±²¬#Ì6üù×0Ù4Àb„¬<*8ž!)9ˆËAô¹êBæ¦ÚFÁ~ë ˆ›qªC©ß¦ êßvÿÎïÀìûë¸Æµ‚öÌ—Aû¾¡¾¯œAùž’ßãràû¦q%¦ß‹úþmh¸ƒëïÖãuª"xÃå-CiT4Œb„¨¼#Ú,“r—Ë0„1U™-`Âa„g¢¹ÚÖ.í=‹*!“ÄSaxj öZ¤\ÆCÈž®eMSò”ú(žËx¸gW?‡)YÉ(y0Ò¨hÅ…QyG4q‘r—Ë«¾h%3P²åMÁË>ô–»M<’ñó}82àÖúwqÅOMêEÚOâ¥HyÌÈs_äóÀi^ÅåU9PHô96)¼p9à¥9ë JË›OoFÍ}#4Á1Ë!Ÿ;ØÇ£9©s€b±æÐ>‹‚,šfUŒPV•ó„Ä%¬p9HtÒ²VgTP]®òVéÀSïcmü°ÜæÖÕS»Ÿ|ëbÏví‰c£‰€ +¤xˆâAhT hˆŽi(ÑÊÅ‹a;ìãSüíª>ÅçËSkU~°¸=Ñ­æsŒ¿ø¤9Ý…ÿ3¥8ŸçÄÙ4½b„â«\*$¾VQrðHîÄ&­h4“*†/o*ݸ¥iãwfß…c3jëÚ¡ø§ìÚòƇ±¯/öyÙë§á0ÅP~µÛlr#õz|cžõÛÄþMòYuÁÜJWhÓs¤Ø`S$Y„¢ÐÕ‘ÒÊ×ÊÎ w $€ò¨Z¨Ü­‡)@¾€ã‘=Q=¤ÊòU€…3l›æ å×<ÚýÅõå¡ +€’¸\.Oxk˜µmF b¬ü4ôñt0œ‰ Á—½ü6ÚO$ï|õ¯[û·òØidÅEVùP(ôX)Èp9@¦ÝO“‰ÉHìÇþz÷n,AVÕÿnýèhëýÔÃ)añÄSÂ_žW8 lPZÅ}®$DaZÀ +Õ‚§”«9!ÁÉœà>FËtêëoe<=¦QÓ ŠJªòžÐEEÉ+\âJúJR¡Šuò¸M|XõN ìéË2Öª³þ^ËS".¹„&YŒP’•k…FëNRHârvNVCÔ©u±qÈÉ°? ð5•³ˆ©§Ç[. lPFÅiB£¯­üuB×i3qz§ëä7ÿZ…•-endstream +endobj +712 0 obj << +/Type /Page +/Contents 713 0 R +/Resources 711 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 573 0 R +/Annots [ 715 0 R 716 0 R 717 0 R 718 0 R 719 0 R 720 0 R 721 0 R 722 0 R 723 0 R 724 0 R 725 0 R 726 0 R 727 0 R 728 0 R 729 0 R 730 0 R 731 0 R 732 0 R 733 0 R 734 0 R 735 0 R 736 0 R 737 0 R 738 0 R 739 0 R 740 0 R 741 0 R 742 0 R 743 0 R 744 0 R 745 0 R 746 0 R 747 0 R 748 0 R 749 0 R 750 0 R ] +>> endobj +715 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 573.83 237.657 582.741] +/Subtype /Link +/A << /S /GoTo /D (subsection.7.4.1) >> +>> endobj +716 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 561.713 212.162 570.624] +/Subtype /Link +/A << /S /GoTo /D (subsection.7.4.2) >> +>> endobj +717 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 549.596 336.591 558.507] +/Subtype /Link +/A << /S /GoTo /D (subsection.7.4.3) >> +>> endobj +718 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 537.479 346.167 546.39] +/Subtype /Link +/A << /S /GoTo /D (subsection.7.4.4) >> +>> endobj +719 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 523.426 230.794 534.274] +/Subtype /Link +/A << /S /GoTo /D (section.7.5) >> +>> endobj +720 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [90.929 501.238 184.453 512.087] +/Subtype /Link +/A << /S /GoTo /D (chapter.8) >> +>> endobj +721 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 489.122 228.026 499.859] +/Subtype /Link +/A << /S /GoTo /D (section.8.1) >> +>> endobj +722 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 477.005 284.149 487.853] +/Subtype /Link +/A << /S /GoTo /D (subsection.8.1.1) >> +>> endobj +723 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 464.888 223.896 475.736] +/Subtype /Link +/A << /S /GoTo /D (section.8.2) >> +>> endobj +724 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 452.772 250.408 463.62] +/Subtype /Link +/A << /S /GoTo /D (subsection.8.2.1) >> +>> endobj +725 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 440.655 301.999 451.503] +/Subtype /Link +/A << /S /GoTo /D (subsection.8.2.2) >> +>> endobj +726 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 428.538 238.044 439.386] +/Subtype /Link +/A << /S /GoTo /D (section.8.3) >> +>> endobj +727 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 416.421 305.265 427.27] +/Subtype /Link +/A << /S /GoTo /D (subsection.8.3.1) >> +>> endobj +728 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 404.305 219.779 415.153] +/Subtype /Link +/A << /S /GoTo /D (section.8.4) >> +>> endobj +729 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [90.929 382.118 232.109 392.966] +/Subtype /Link +/A << /S /GoTo /D (chapter.9) >> +>> endobj +730 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 370.001 273.412 380.849] +/Subtype /Link +/A << /S /GoTo /D (section.9.1) >> +>> endobj +731 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 357.884 252.241 368.622] +/Subtype /Link +/A << /S /GoTo /D (subsection.9.1.1) >> +>> endobj +732 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 345.767 249.944 356.616] +/Subtype /Link +/A << /S /GoTo /D (subsection.9.1.2) >> +>> endobj +733 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 333.651 310.18 344.499] +/Subtype /Link +/A << /S /GoTo /D (subsection.9.1.3) >> +>> endobj +734 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 321.534 218.174 332.382] +/Subtype /Link +/A << /S /GoTo /D (section.9.2) >> +>> endobj +735 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 309.417 329.424 320.266] +/Subtype /Link +/A << /S /GoTo /D (subsection.9.2.1) >> +>> endobj +736 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 297.301 279.03 308.149] +/Subtype /Link +/A << /S /GoTo /D (subsection.9.2.2) >> +>> endobj +737 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 285.184 252.933 296.032] +/Subtype /Link +/A << /S /GoTo /D (subsection.9.2.3) >> +>> endobj +738 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 273.067 288.466 283.915] +/Subtype /Link +/A << /S /GoTo /D (subsection.9.2.4) >> +>> endobj +739 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 262.888 257.513 271.799] +/Subtype /Link +/A << /S /GoTo /D (section.9.3) >> +>> endobj +740 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 248.834 248.837 259.682] +/Subtype /Link +/A << /S /GoTo /D (section.9.4) >> +>> endobj +741 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 236.717 263.67 247.565] +/Subtype /Link +/A << /S /GoTo /D (subsection.9.4.1) >> +>> endobj +742 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 224.6 284.83 235.448] +/Subtype /Link +/A << /S /GoTo /D (subsection.9.4.2) >> +>> endobj +743 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [90.929 202.413 260.82 213.261] +/Subtype /Link +/A << /S /GoTo /D (chapter.10) >> +>> endobj +744 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 192.234 245.17 201.034] +/Subtype /Link +/A << /S /GoTo /D (section.10.1) >> +>> endobj +745 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 178.18 321.883 189.028] +/Subtype /Link +/A << /S /GoTo /D (subsection.10.1.1) >> +>> endobj +746 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 166.063 236.965 176.911] +/Subtype /Link +/A << /S /GoTo /D (section.10.2) >> +>> endobj +747 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 153.946 255.175 164.795] +/Subtype /Link +/A << /S /GoTo /D (section.10.3) >> +>> endobj +748 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 141.83 226.172 152.678] +/Subtype /Link +/A << /S /GoTo /D (subsection.10.3.1) >> +>> endobj +749 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 131.65 201.736 140.561] +/Subtype /Link +/A << /S /GoTo /D (section.10.4) >> +>> endobj +750 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [128.787 119.533 220.374 128.444] +/Subtype /Link +/A << /S /GoTo /D (subsection.10.4.1) >> +>> endobj +714 0 obj << +/D [712 0 R /XYZ 91.925 602.788 null] +>> endobj +711 0 obj << +/Font << /F8 580 0 R /F11 674 0 R /F48 601 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +753 0 obj << +/Length 385 +/Filter /FlateDecode +>> +stream +xÚÕ•KKÄ0…÷ýY¦‹Äܼ³ADºUG-´#ÌÁo2í´: ¨(]4“r¾Þó -(iÆ©±=4CÏ~æ"ƒ^!¤ BïÀ$‘LS#"“N‹ìda‘£N T> endobj +755 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 571.892 168.859 582.741] +/Subtype /Link +/A << /S /GoTo /D (section.10.5) >> +>> endobj +756 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 561.874 193.489 570.785] +/Subtype /Link +/A << /S /GoTo /D (subsection.10.5.1) >> +>> endobj +757 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 549.919 207.326 558.83] +/Subtype /Link +/A << /S /GoTo /D (subsection.10.5.2) >> +>> endobj +758 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [99.895 537.964 231.402 546.875] +/Subtype /Link +/A << /S /GoTo /D (subsection.10.5.3) >> +>> endobj +754 0 obj << +/D [752 0 R /XYZ 63.034 602.788 null] +>> endobj +751 0 obj << +/Font << /F8 580 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +762 0 obj << +/Length 65 +/Filter /FlateDecode +>> +stream +xÚ3T0BCKC=K#S3#=s …ä\.…t Œ;—!T…±‰±ž¹!ˆ‡ER&«kj`®gbjI´ !¼?endstream +endobj +761 0 obj << +/Type /Page +/Contents 762 0 R +/Resources 760 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 759 0 R +>> endobj +763 0 obj << +/D [761 0 R /XYZ 91.925 602.788 null] +>> endobj +760 0 obj << +/ProcSet [ /PDF ] +>> endobj +766 0 obj << +/Length 1882 +/Filter /FlateDecode +>> +stream +xÚÝ›KsÛ6…÷ú\R ¢Ä‹–­Sg&“NÑ.“…,9Šf$ËÕcÒæצ|o& ÓD/,™ô9ç~$Hˆ¢EmhÑpRsQ45#Jëb±ÔÅÊny9¡a.8QÔ½{fc%ê†(!‹*Søe6ùéV¨‚ ûUÌÞGa1œ³åÛòõzJËÃqZq%Ë}ý¾}y»^Ù7§ý´¢åýaúnöê§[]bU¢¨$³ŠÊ+QBíÎ5cålÊtùï£S^¸ÿŸo¬&çå‹ùqÞ¾ +{L+¦Ê{·ËÁý]XsZîöí>Ç÷í‹›vÛvÛ~·ÚÏ·Ûõƒ}½jÿüzîßœæ+»»Ô¦$ÓJÿKÖõù¯v›Ïä×Y—Ÿ¨)QvdB0¢"n÷©²|ÄY,}ŸË¹YÛ+Ü,ô1SŠ¥ Áj»kã½x׃¶i6W׃ÕC›ãífçbÿؾ۽ïÅ|»Þ{ÜË©æåýÇ6àß]îë•Ïß»³¹¾”²`”¨ú:.*Θ[‡âQÒ‚Pç1 ¥ 1 +JI D)+yµ3“ôzHJ! $ÁIõuƒ2â–P†Ý"ÊTeâ¤Jk;Æ/G9hŒ‚rÒQÎJŽ(ÛÎðë¹:K ÁAõu|oâ–@‚ÝHÔpÒˆv±LâËù‡3Ž$'Üv?j|HA«ÊÄÎH’ á”=©ùº•{ OSUÐB«RÜÞQÉ'UÍ—Ëi¥„þg¹‘ÏŽÙÀa¨‘tú:ž3ðsë FÜ"ԚѰ5uÐê$BÕŒ@=FUÔHUꬪÃénZi)®ê4pj8¾Žç |sKPÃnêƦšõ°Ï¢ÆS~¦MùyÉí)‘É«™î³ñ#Á!õu\H ¸BŒ¹%ˆ`·‘Tö?N÷ÝÇ KËÎr}tw¬ñfõåÉQµL_¨ ¥#l¾?º™M^ÂIj\Èo\Ú l\–eOiˆ[jì'ìkÍCã†-íGQŽþ¤ýYÉíÜÁ¯ç ÝlüDpH}¸Z…¹%ˆ`·gDÑ8…Ä¥ý7î[[wG÷yûœü0õž:®n>øƒŸ©Ë<êÃØñ†¥À†e" CÜRÃ`·Ø0VúaKçAb”c¾“ùTïvÊTéÚœ/XqB]F#T¤°ÒtC(çyiö† ¡Í寘§A#DƒÁôT<Ïð5,b¾eZ1{«U?¿H¾EZ{áúü5Œ×DÛK—°‡ÿx㨚$þ˼é³endstream +endobj +765 0 obj << +/Type /Page +/Contents 766 0 R +/Resources 764 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 759 0 R +/Annots [ 769 0 R 770 0 R 771 0 R 772 0 R 773 0 R 774 0 R 775 0 R 776 0 R 777 0 R 778 0 R 779 0 R 780 0 R 781 0 R 782 0 R 783 0 R 784 0 R 785 0 R 786 0 R 787 0 R 788 0 R 789 0 R 790 0 R 791 0 R 792 0 R 793 0 R ] +>> endobj +769 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 439.961 339.608 450.81] +/Subtype /Link +/A << /S /GoTo /D (figure.1.1) >> +>> endobj +770 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 417.812 377.189 428.66] +/Subtype /Link +/A << /S /GoTo /D (figure.3.1) >> +>> endobj +771 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 405.626 182.159 416.474] +/Subtype /Link +/A << /S /GoTo /D (figure.3.2) >> +>> endobj +772 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 393.439 187.722 404.287] +/Subtype /Link +/A << /S /GoTo /D (figure.3.3) >> +>> endobj +773 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 381.252 187.999 392.101] +/Subtype /Link +/A << /S /GoTo /D (figure.3.4) >> +>> endobj +774 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 369.066 201.299 379.914] +/Subtype /Link +/A << /S /GoTo /D (figure.3.5) >> +>> endobj +775 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 356.879 208.715 367.728] +/Subtype /Link +/A << /S /GoTo /D (figure.3.6) >> +>> endobj +776 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 344.693 193.229 355.541] +/Subtype /Link +/A << /S /GoTo /D (figure.3.7) >> +>> endobj +777 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 322.544 187.141 333.392] +/Subtype /Link +/A << /S /GoTo /D (figure.4.1) >> +>> endobj +778 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 310.357 205.671 321.205] +/Subtype /Link +/A << /S /GoTo /D (figure.4.2) >> +>> endobj +779 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 298.17 184.954 309.019] +/Subtype /Link +/A << /S /GoTo /D (figure.4.3) >> +>> endobj +780 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 285.984 181.661 296.832] +/Subtype /Link +/A << /S /GoTo /D (figure.4.4) >> +>> endobj +781 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 273.797 182.159 284.646] +/Subtype /Link +/A << /S /GoTo /D (figure.4.5) >> +>> endobj +782 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 261.611 179.447 272.459] +/Subtype /Link +/A << /S /GoTo /D (figure.4.6) >> +>> endobj +783 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 249.424 194.934 260.272] +/Subtype /Link +/A << /S /GoTo /D (figure.4.7) >> +>> endobj +784 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 237.238 217.593 248.086] +/Subtype /Link +/A << /S /GoTo /D (figure.4.8) >> +>> endobj +785 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 225.051 207.332 235.899] +/Subtype /Link +/A << /S /GoTo /D (figure.4.9) >> +>> endobj +786 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 212.865 185.48 223.713] +/Subtype /Link +/A << /S /GoTo /D (figure.4.10) >> +>> endobj +787 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 190.715 190.783 201.564] +/Subtype /Link +/A << /S /GoTo /D (figure.5.1) >> +>> endobj +788 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 178.529 189.731 189.377] +/Subtype /Link +/A << /S /GoTo /D (figure.5.2) >> +>> endobj +789 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 166.342 183.266 177.191] +/Subtype /Link +/A << /S /GoTo /D (figure.5.3) >> +>> endobj +790 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 156.093 198.567 165.004] +/Subtype /Link +/A << /S /GoTo /D (figure.5.4) >> +>> endobj +791 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 141.969 182.215 152.817] +/Subtype /Link +/A << /S /GoTo /D (figure.5.5) >> +>> endobj +792 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 131.72 211.048 140.631] +/Subtype /Link +/A << /S /GoTo /D (figure.5.6) >> +>> endobj +793 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 117.596 192.111 128.444] +/Subtype /Link +/A << /S /GoTo /D (figure.5.7) >> +>> endobj +767 0 obj << +/D [765 0 R /XYZ 63.034 602.788 null] +>> endobj +768 0 obj << +/D [765 0 R /XYZ 63.034 450.262 null] +>> endobj +764 0 obj << +/Font << /F47 596 0 R /F8 580 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +821 0 obj << +/Length 2796 +/Filter /FlateDecode +>> +stream +xÚÝ\]s·}ׯà#ù@tñ <6uÒ&SO[G3}HòÀŠ²Ì©(É"•ØùõvqìR÷F¢áŠöxƤ´Ð¹÷|ƒä³.üã3Ï™zf:Á¬s³‹íY7» +OþzÆS ©$³<þôÈÃ¥’šifË +á›ó³?}çfžy#gçog¼3Ì?ÓV1'Ìì|ýÓ\3·XòNˆùŸ¯¯nï|¾Ù¿Û.–RÊùönñËùgßžç0Ü Æ…È!Èû³Ÿ~éfëÀ至ŽIïf¿…÷ãÞ϶g‚yçÓO×g?žý«0¬evÀØkÆCkÆëM ùë”™è<UÝ>…`QÌLh7b&KçÕœ-–Êûø¢»îðåÑgÏþƒ&Ï&9T"xȪ:‡‡>Ke¨ÜLqbnŒ?ˆ–KFWSW›`|0µ?ÆÔ@Og,ÔÒ…îõîÝ:(£åKâó8(WŸ0š¢ JL‘¨}ˆPÙ=¸`Ý1ãUrïB5ƒ{~ ιÞôÎÍÕ`ŸonÂOëÛ…póßâ¯ÔüuøEÿó¯ñ¿Ëà¼ùöò&¾ß/–Þº/D²”Z³R­Ê¤•¨jT´,-ë&3Ân|ÐíY­>!´iö m÷ãû¾á+é¿ž†_@¸ÏÒ§w‘F]DEË."4 ÃB.G¸(!´qQC]T1Þ.„?Ä®ê`R&)]ÌSv€E±\³.Ìbkv"8ÜÉSë}†yºT˜ð4ž•)Nïi‡zšŠ–=M8<ÍSæC\áé„ÐÆÓ õtÅø&ù ˜•I>Î,Oò+fÑÏòH?ŸÖ,¿Ô›°5žœ)NLŽã¨­©hÙÖ„IÀÖay«$[«#lÚغ€¡¶®ooË0/\vÔayÓ©&Ü‹â&¸eÖ‹·hlmNtºñ´ŽºT˜p4ž•)Nïh…:šŠ–Mø#9Z¹Ž©n ãèÂuw`hz'®3À':a-+°ÂN3ÑÉáÇš™UwmX%,Š•6ÂŽY3"Ï´MØÉN¦±ëǶ«]X÷r£õK¤}UõÄÛ‘Œ)Nß¾Ð}!2´/ʮоŒcR¦](&Rûúûm\Ç_-ãjýo«~M?4³×½oö›»~í±ÚoBÉþÉ«¨Ûêê~¤§³è‚Òº”B¨.U¦|‡êBE˺àѲ.:¨a“,2Éò—Û¾íþ'fºì®<\‡ÿ‚$ñes%[íãÛ¢L%þIP&,õNuqœjL˔ˠ*•¼ytp¢BeÐPY"¥B¯“F +šUû.>ÿðpw7Ä—¸‘U§Å*…PµªrQѲ^x´,˜ óRé“`ìíj·?¸U˜¯ªŒñi÷€µ¬ÀçÇ–ñ8¨8ïW|fÿbèˆß<ĹÍMjq5üê|³½Þݾ¯bþÏxXq{ý1 +]y_û©ÎõÐY|Ó¸»Í®ûñ÷î:EŠr|ÛÈ#’wôE¦ÿxÒ‡2˪ÐaÒÇ81 !hÖ©p9ëx¸œõᮃ9‹=⌚l>T`ØæCÍø¿ mæ«ûÕ~÷0ŒÔt\Ê&‹â;Ž:'©[sqº·´Êœìj(y¯ÔŒð0^ý)Îàaô¬ƒ —=L8"yXgxÅ“‡¹üM<\a®ï‡ ´ÐIŒÉÁpB7!X9!‚y¹‘«Æäà~*û¿O;ëÌXÕ75‘–)NojŽî +“áÀÔ”EÀÔN2ga¡rÌå@hcꆚºbüǦn@®˜'—M]‘«MSøs§»‹Ûázæ‰û[ëð&<Ž‡ð-úþÿf.5%ÌŒ§cŠ3˜eá²™ k€™-g®ƒEÜEy–™B30ÔÌãÚ/Æ»¯àfC2AIa&TÍqF¼<õƒùd¿R9ÂÆx¦8½%>FPá² S€9g*Ï~ô.Ú˜8c¡.t{{ðNȯgy“«O8MÑeðzÅ•Š•íƒË‘Ü#œgJ[L–¸7…Ûšø§à T3¾¿\?ÀÙÉeèj¬ÿò=T¥7‘§)No#…Ž¦d8ð% ÉZ&]úœQ¾ ô,#%„6F*`¨‘*Æc#M‡ÒÐ {£š,Š †y-GwýÞà>’¼‹[BüÄ®Ncf.µ$ÌŒ§bŠÓ›Y£û=d¸lfÂ`f£™LŸ1È·ª½ü:íàÆSááÄ÷òþãðèMe¨|¨k:¡~f¨#­L.ƒ +S2Å5ºÕCÅʲ ±²*Z2¡Ó‡âòEªoCr?¬úì÷· '§ò Q¨6Ú.Ê.]Ü“ÿ~Øy—F¾¨4©¢´6¥*N•0J*\–—õ‰K—>nFÜ›zn³qú¢ñ”ÇÎ×›Ÿ»°bËG&½ÔßÇ÷ƒ€F‹Ï§Nª&­N)„ªS¥‹kt@†Ëêàá²:Â÷Cã Žù,­§×¦’Ájñ2 (Õ•–¨B%ªrFID…Ëáá²DܲNÃʾD +°©GVOÒ'U”Ö§Bõ©Æ5z1” —õÁÃe}:żOò¸–-H¸SZ Õ¤ÅÉePmJ²¸F/äP±²2h,&Nûã¿ Êssš,>*0lñQ3ÞV‰Æˆœ?,BTÀ°¶ QÀ¢ˆ +3":YnBÓÙª*¸k‰úNqߢWPÉp`\Êà\×1§¡OÁ¯)P'<€Ñ䄧ÃNxjΦp¦¥k +°(Vñ“šZØ1«'µ(ã—6é,’¨aÝ)FD'-J¾ìUŸŠ<цðNqú6dÐ{kd¸Ü†?B2ŽY/¡ ñõ%€Ð¦÷/`hï_1~^ï߀héýq¢¹÷¯ˆŽ· —'·uZUˆð/^ë)Îà_|  ÂeÿnÿjÃlú0š%.°¼ÚlûO ÄÏðù»ÉäýÍj½ùðØ"`Øyz!ERÕhEJ!T‘*Eÿ42\V—QŠ“OEÒ½ d¦ÿ*J’?ïq³Ù½»LŸ‚ ’ôŸàÃfýFºm.©–´8¥*N•-nÑÍY2\—Å‘‚i“ýcÎí¡Mw_ÀÐî¾b¼¾?¼¿‚C7aX+ÑÅÓ|5b5™‡„ùÔI_ö ]*MÏÌg04ºoJ†Ë†&ì†aµÈk€#Žð¡¡ jèŠ1a謊¡qVÙЫñd…wB}‘†.•& gfŠ3ÝŒ¡ÂÁç.…fâÉ߬û?ùoÓRendstream +endobj +820 0 obj << +/Type /Page +/Contents 821 0 R +/Resources 819 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 759 0 R +/Annots [ 823 0 R 824 0 R 825 0 R 826 0 R 827 0 R 828 0 R 829 0 R 830 0 R 831 0 R 832 0 R 833 0 R 834 0 R 835 0 R 836 0 R 837 0 R 838 0 R 839 0 R 840 0 R 841 0 R 842 0 R 843 0 R 844 0 R 845 0 R 846 0 R 847 0 R 848 0 R 849 0 R 850 0 R 851 0 R 852 0 R 853 0 R 854 0 R 855 0 R 856 0 R 857 0 R 858 0 R 859 0 R ] +>> endobj +823 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 571.892 218.235 582.741] +/Subtype /Link +/A << /S /GoTo /D (figure.5.8) >> +>> endobj +824 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 559.827 213.874 570.675] +/Subtype /Link +/A << /S /GoTo /D (figure.5.9) >> +>> endobj +825 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 547.761 248.394 558.609] +/Subtype /Link +/A << /S /GoTo /D (figure.5.10) >> +>> endobj +826 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 535.695 215.008 546.543] +/Subtype /Link +/A << /S /GoTo /D (figure.5.11) >> +>> endobj +827 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 523.629 226.537 534.477] +/Subtype /Link +/A << /S /GoTo /D (figure.5.12) >> +>> endobj +828 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 511.563 223.77 522.411] +/Subtype /Link +/A << /S /GoTo /D (figure.5.13) >> +>> endobj +829 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 499.497 229.305 510.345] +/Subtype /Link +/A << /S /GoTo /D (figure.5.14) >> +>> endobj +830 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 477.469 240.751 488.317] +/Subtype /Link +/A << /S /GoTo /D (figure.6.1) >> +>> endobj +831 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 465.403 285.229 476.251] +/Subtype /Link +/A << /S /GoTo /D (figure.6.2) >> +>> endobj +832 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 453.337 267.379 464.185] +/Subtype /Link +/A << /S /GoTo /D (figure.6.3) >> +>> endobj +833 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 441.271 238.321 452.119] +/Subtype /Link +/A << /S /GoTo /D (figure.6.4) >> +>> endobj +834 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 429.205 260.167 440.053] +/Subtype /Link +/A << /S /GoTo /D (figure.6.5) >> +>> endobj +835 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 417.139 402.29 427.988] +/Subtype /Link +/A << /S /GoTo /D (figure.6.6) >> +>> endobj +836 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 405.073 258.446 415.922] +/Subtype /Link +/A << /S /GoTo /D (figure.6.7) >> +>> endobj +837 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 393.008 238.437 403.856] +/Subtype /Link +/A << /S /GoTo /D (figure.6.8) >> +>> endobj +838 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 380.388 291.572 392.343] +/Subtype /Link +/A << /S /GoTo /D (figure.6.9) >> +>> endobj +839 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 368.876 212.435 379.724] +/Subtype /Link +/A << /S /GoTo /D (figure.6.10) >> +>> endobj +840 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 356.81 271.004 367.547] +/Subtype /Link +/A << /S /GoTo /D (figure.6.11) >> +>> endobj +841 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 344.744 216.713 355.592] +/Subtype /Link +/A << /S /GoTo /D (figure.6.12) >> +>> endobj +842 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 332.678 236.129 343.526] +/Subtype /Link +/A << /S /GoTo /D (figure.6.13) >> +>> endobj +843 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 320.612 255.208 331.461] +/Subtype /Link +/A << /S /GoTo /D (figure.6.14) >> +>> endobj +844 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 308.547 209.197 319.395] +/Subtype /Link +/A << /S /GoTo /D (figure.6.15) >> +>> endobj +845 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 286.518 224.362 297.366] +/Subtype /Link +/A << /S /GoTo /D (figure.7.1) >> +>> endobj +846 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 274.452 251.25 285.3] +/Subtype /Link +/A << /S /GoTo /D (figure.7.2) >> +>> endobj +847 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 262.386 281.52 273.234] +/Subtype /Link +/A << /S /GoTo /D (figure.7.3) >> +>> endobj +848 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 249.767 301.003 261.722] +/Subtype /Link +/A << /S /GoTo /D (figure.7.4) >> +>> endobj +849 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 237.701 336.868 249.656] +/Subtype /Link +/A << /S /GoTo /D (figure.7.5) >> +>> endobj +850 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 225.635 304.877 237.59] +/Subtype /Link +/A << /S /GoTo /D (figure.7.6) >> +>> endobj +851 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 213.569 340.743 225.524] +/Subtype /Link +/A << /S /GoTo /D (figure.7.7) >> +>> endobj +852 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 202.057 286.336 212.905] +/Subtype /Link +/A << /S /GoTo /D (figure.7.8) >> +>> endobj +853 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 189.991 282.218 200.839] +/Subtype /Link +/A << /S /GoTo /D (figure.7.9) >> +>> endobj +854 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 177.925 301.634 188.773] +/Subtype /Link +/A << /S /GoTo /D (figure.7.10) >> +>> endobj +855 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 165.859 277.264 176.708] +/Subtype /Link +/A << /S /GoTo /D (figure.7.11) >> +>> endobj +856 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 153.793 304.794 164.642] +/Subtype /Link +/A << /S /GoTo /D (figure.7.12) >> +>> endobj +857 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 141.728 298.263 152.576] +/Subtype /Link +/A << /S /GoTo /D (figure.7.13) >> +>> endobj +858 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 129.662 237.386 140.51] +/Subtype /Link +/A << /S /GoTo /D (figure.7.14) >> +>> endobj +859 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 117.596 232.432 128.444] +/Subtype /Link +/A << /S /GoTo /D (figure.7.15) >> +>> endobj +822 0 obj << +/D [820 0 R /XYZ 91.925 602.788 null] +>> endobj +819 0 obj << +/Font << /F8 580 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +899 0 obj << +/Length 2722 +/Filter /FlateDecode +>> +stream +xÚÝ\Ms7½ëWð(ˆà{€c6vRNekk×æäÀ˜”ÌD4Š‰µÿ>À=‡êŽDAír•,q¦^?ô{i$Å„‡bbãJO,—¬snòn}Æ'—áÊ7g"ß¡´bˆÝqq¦¹e6“Y…ð¯·g_|í&žy«&o/&]Ç|ç&¦ÓÌI;y»øé¼cÂNgFÊó/¯.7Û©8_íÞ‡ŸëéL)}¾¾žþòöÛ³×o‡@"•jÀQþ8ûé>YJßžq¦¼›| ¿s&¼Ÿ¬Ï$óÎç¿®Î~8ûo¡œ¡fÖ˜±°–Iá÷(/¶œºp—ÑmHe,’Uç™ÔjÕê怕³Ì¨® «ŒE²rž™p©fµÞLgÒ/þ ’^Å7Ó™·æœÍ9¯þÓÞßóÅ–×FS^0ÇE±ŸÃ=T&Æ81A×q8(*ÜPVD8(+ +Šª;ª¨z„&%HhA d·ËÞï¦3q¾< æ ãlÁ,#Ô¼cÜŠŠšü=øEÛ'6æãÀ0 Ã( c‰ØÇHæíPó¢Šu±@`\ÃY°7X×eÝŒÑļ µoEù~nÁo°0AL\ 6±’Ü1ç]V€E±’"8Êu{¬n–1a»˜ºëéÌ÷â…•RQLøàÇ8© q×Ô¬Í*c# + OÀ§/,ÇÑÂ"•ÂÂÃAa ¤ñ}4ÇD0(…õÝòb«Iï6éÿïW—李÷Í/¿¾M]xeóaMœýa*ýùn5ß­Âk³ÎºèÔUä±ÓŠ•›PŪ +§QňpE1<(Æu˜‚TVLfÅ^nçëë«eš7ñÿ¨dTæ"\Ý¥ »ðë&ýš4õp¥‡ˆšvAÓå‡^íUx-ëé¥xfyò@iyÊM¨uc©¤ PnB PI"ºâ¢ÂàáÀÆ°º ûüú÷@?ÄÖÕ">8£~—é¹ùcÿ÷¢odB³òñþbï­%2k§dÐ +÷ –”Rú᱊|h,PO+f¹ÎòuY¾œÎØÔ}¸LYû±Oìb»½‡ª…外­kÎIý¢àœZÍr*g•cáÑ…®Š‡E•`ºƒ¾Ò×WfŒ&}eÁBûÊŠrì+áø$8@ÙìÚŽ”—1ÎÁ3ÆIΨsˆpÅ9x8pŽðaI Í›§œsxêfSÑ9ãQÎÉX³ +ìÀ:&,ãR£â|‡;ßµa•±HV +Ó­Ùc52´=ÑÕæä2XÂÉxFÆ8ÉÉèÖ®8Næ“šRÁ‰]`ÜÉ£“ êäŠ3áä¬'¬ÀÉ«}'ÇgøÏÜpخޔ þ·?—‹pYLg¾/êà2HÂÁx&Æ8ÉÁèî®8—¬BC%À¿"ù÷»²Ô +ïæ»eúõÕj~¹£ÛÐ}ŸèÞj()Îp &MI–ðè‰-h ¢¸PU4ËBs¸-Z« + k­jʲ߳›YïNeïë¶)C'ŒƒçgŒÓ燣Ï%*\± d9sÎôÑüpˆr§¾Ÿ÷…~;»k…Ì6Ñ~¿,¸<ÓÉoÒļ¼ìWXyÁü*ÆûkuÓ¯³D€xÎ]1LÓœZÓrªi•eÉÑ-O*\Ñšê°n·:~8fyà¤1šL + *ʽËþŠOi{bã˜J +#áyã$#¡1T¸b$<IYf•ÎF:î@0š©`¡Fª(ƒ‘ /šÂ¸¡“:BØå‰;r©7Tüä½T²@x OÕ§÷’@7¨pÅKx8ð’ÔÌäSŸð,8ÎK£‰— +ꥊò|±8<[”ÌY׆UÆ"i9Ãœéöh…UqîÓ?iª†MxÏÍ'y=i¢ÂOãáÀÓB2•ÏµüpÒô@OgŒ&ž.X¨§+ÊëxÑ¿!üÐÚŠ‰˜§ä2ÉÎY&”Úc­mOô)ÿw-VÃ&¬çfŒÓ[[¢;¯T¸bm<X;tô2ŸØùáíÖÎM¬]°PkW”ó£ÿÀÖ!v×µ!–±HfÁúÊÚ}fñás˜±Ë° [ã¹ã$[ãË]"\±5.ÛZ:&šìêî(Wgˆ¦.P˜§+¾7`e¿éÜ‚P†¢u†)-jFÛMzÇ]|ž'mâ{ÍÔeð¸£ñP’ŸÑ„ˆ5Ønî,ãÖgǬF?,ÔÐåí¼ß*N?—•~•ÂEx¢Æ8½”D}D„+FÂÓ‚‚®ƒÕ´~—wñÃz§î˸íÿU|áM?¼I +þ{?>¢ý§0ÜOÊœZÊr*e•\©ÐG®H‰‡)`E yÒˆO +£É¤P°ÐI¡¢¼]Îw½‹×ÚF´2É+L¼6>Yk^óþ½\·Ó™×ê“zßn5PÂÆx6Æ8ÉÆèq#®Ø6VaÙ!aŽ´qÆhbã‚…Ú¸¢¼ÛÃt†Ê´2pÂ>xvÆ8É>xcD„+öÁÃ}ddžS­|,Š}Ф7Õ*~ºä=ê() óÚgÜG}¢,#ͨÃi:æU=†â¦ –•æ¼‚¹Axç>Fòz¤*®À'¸aZäcyΨ)å›-œ ÌwË›þó±©÷ùj³^çc„Þ;¯â‘%¼ç72¼IÇÚš—éYòiEÊM¨&U®¤ÆÛO"\Ñ—•>L²ù|4(#ŸF™þ}BYgÔó +C$…©n„©SEC…„!Â0N0aAõ”ºÔêh«ŸY4NZœáT›’-©* «(ƒÆa¬ï¿&(+£i£E{TaaíQMùò]¿Ú}6Ëþjü„ƒð$q’‡Ð&› +WL„‡Ë<|Ǭ#\”1š¸¨`¡.ª(_½ ä:'?•ñ.“4ÆI.B{**\q\¤5ëàã}œõ5b€ÑÄE uQEù·ù»Í¯‘hà­äg`¢2|ÂDxŽÆ8½‰ ºmE…+&ÂÉ”dÖ ­ÆQ_›MLT°PU”¯{–ë;¾!%ntˆ6Ô2É͇Dë=jw}AŠ Ó„`Q¤â€Ë}Vé„vu³úõ*5ŽÒ¿ü—n`U†FT>þ1N_Q¸áJEáá ¢dx¢+(¨£¾Ì+C4©§ +-§Â÷«©¯¡˜pb¹– +¯‹åv=ß-tÂ{¿ep„qÑŒP’mÑ;*VþÆÒ™4Lrqï/5ý-„M¢endstream +endobj +898 0 obj << +/Type /Page +/Contents 899 0 R +/Resources 897 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 759 0 R +/Annots [ 901 0 R 902 0 R 903 0 R 904 0 R 905 0 R 906 0 R 907 0 R 908 0 R 909 0 R 910 0 R 911 0 R 912 0 R 913 0 R 914 0 R 915 0 R 916 0 R 917 0 R 918 0 R 919 0 R 920 0 R 921 0 R 922 0 R 923 0 R 924 0 R 925 0 R 926 0 R 927 0 R 928 0 R 929 0 R 930 0 R 931 0 R 932 0 R 933 0 R 934 0 R 935 0 R 936 0 R ] +>> endobj +901 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 571.892 227.384 582.741] +/Subtype /Link +/A << /S /GoTo /D (figure.7.16) >> +>> endobj +902 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 559.766 209.297 570.615] +/Subtype /Link +/A << /S /GoTo /D (figure.7.17) >> +>> endobj +903 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 547.64 236.185 558.489] +/Subtype /Link +/A << /S /GoTo /D (figure.7.18) >> +>> endobj +904 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 535.515 219.58 546.363] +/Subtype /Link +/A << /S /GoTo /D (figure.7.19) >> +>> endobj +905 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 513.426 229.327 524.274] +/Subtype /Link +/A << /S /GoTo /D (figure.8.1) >> +>> endobj +906 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 501.3 282.046 512.148] +/Subtype /Link +/A << /S /GoTo /D (figure.8.2) >> +>> endobj +907 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 489.174 195.432 500.022] +/Subtype /Link +/A << /S /GoTo /D (figure.8.3) >> +>> endobj +908 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 477.048 195.004 487.896] +/Subtype /Link +/A << /S /GoTo /D (figure.8.4) >> +>> endobj +909 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 464.922 301.321 475.77] +/Subtype /Link +/A << /S /GoTo /D (figure.8.5) >> +>> endobj +910 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 452.796 347.544 463.644] +/Subtype /Link +/A << /S /GoTo /D (figure.8.6) >> +>> endobj +911 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 440.67 267.51 451.518] +/Subtype /Link +/A << /S /GoTo /D (figure.8.7) >> +>> endobj +912 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 428.544 205.406 439.393] +/Subtype /Link +/A << /S /GoTo /D (figure.8.8) >> +>> endobj +913 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 416.418 212.922 427.267] +/Subtype /Link +/A << /S /GoTo /D (figure.8.9) >> +>> endobj +914 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 403.739 266.056 415.694] +/Subtype /Link +/A << /S /GoTo /D (figure.8.10) >> +>> endobj +915 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 392.167 237.934 403.015] +/Subtype /Link +/A << /S /GoTo /D (figure.8.11) >> +>> endobj +916 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 380.041 191.292 390.889] +/Subtype /Link +/A << /S /GoTo /D (figure.8.12) >> +>> endobj +917 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 357.952 257.876 368.8] +/Subtype /Link +/A << /S /GoTo /D (figure.9.1) >> +>> endobj +918 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 345.826 180.776 356.674] +/Subtype /Link +/A << /S /GoTo /D (figure.9.2) >> +>> endobj +919 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 333.147 233.91 345.102] +/Subtype /Link +/A << /S /GoTo /D (figure.9.3) >> +>> endobj +920 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 321.574 192.388 332.422] +/Subtype /Link +/A << /S /GoTo /D (figure.9.4) >> +>> endobj +921 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 309.448 192.664 320.296] +/Subtype /Link +/A << /S /GoTo /D (figure.9.5) >> +>> endobj +922 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 297.322 189.897 308.17] +/Subtype /Link +/A << /S /GoTo /D (figure.9.6) >> +>> endobj +923 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 285.196 194.353 296.045] +/Subtype /Link +/A << /S /GoTo /D (figure.9.7) >> +>> endobj +924 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 273.07 187.168 283.919] +/Subtype /Link +/A << /S /GoTo /D (figure.9.8) >> +>> endobj +925 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 260.944 182.032 271.682] +/Subtype /Link +/A << /S /GoTo /D (figure.9.9) >> +>> endobj +926 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 248.818 212.092 259.667] +/Subtype /Link +/A << /S /GoTo /D (figure.9.10) >> +>> endobj +927 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 236.693 198.515 247.541] +/Subtype /Link +/A << /S /GoTo /D (figure.9.11) >> +>> endobj +928 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 224.567 254.001 235.415] +/Subtype /Link +/A << /S /GoTo /D (figure.9.12) >> +>> endobj +929 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 201.925 278.85 213.88] +/Subtype /Link +/A << /S /GoTo /D (figure.10.1) >> +>> endobj +930 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 189.799 282.724 201.754] +/Subtype /Link +/A << /S /GoTo /D (figure.10.2) >> +>> endobj +931 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 177.673 286.598 189.628] +/Subtype /Link +/A << /S /GoTo /D (figure.10.3) >> +>> endobj +932 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 166.1 182.159 176.948] +/Subtype /Link +/A << /S /GoTo /D (figure.10.4) >> +>> endobj +933 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 153.974 182.713 164.822] +/Subtype /Link +/A << /S /GoTo /D (figure.10.5) >> +>> endobj +934 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 141.848 192.952 152.696] +/Subtype /Link +/A << /S /GoTo /D (figure.10.6) >> +>> endobj +935 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 129.722 241.775 140.571] +/Subtype /Link +/A << /S /GoTo /D (figure.10.7) >> +>> endobj +936 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [76.981 117.596 224.268 128.445] +/Subtype /Link +/A << /S /GoTo /D (figure.10.8) >> +>> endobj +900 0 obj << +/D [898 0 R /XYZ 63.034 602.788 null] +>> endobj +897 0 obj << +/Font << /F8 580 0 R /F11 674 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +975 0 obj << +/Length 296 +/Filter /FlateDecode +>> +stream +xÚµ“MOÃ0 †ïù>¶‡šØùô$@Ú ÑÛ´°1&µ0*$þ>)jG?PÅa(‡Ärôúñ›˜@§E „¼f 1ÂS­4ìSæVQwÃXƒÚè—daCo<…«R]ÜDo |Ò£pÁbdåv‘FÉ Çœ]Vû·&§ìðñRç…1&«ù¦\©ëòT†„‘˜O +©È»Zo4lÑJi4á35’ÔŠQ¢tQ¥îÕÝq¯U ÄfÄâRÏCâã7d½›²1kôÖœ…­×Zbc6Éq±Õ‡ªÚ532+HÞž‡¬ÓZ$sÉYgFdÍÃckÛkzkǦMëùfEþ77qƶ>Ëè?Ívwg©ã©NÛ1=+× ÉR¹~Ì +­„?â¸@Äxendstream +endobj +974 0 obj << +/Type /Page +/Contents 975 0 R +/Resources 973 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 759 0 R +/Annots [ 977 0 R ] +>> endobj +977 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.873 571.892 275.869 582.741] +/Subtype /Link +/A << /S /GoTo /D (figure.10.9) >> +>> endobj +976 0 obj << +/D [974 0 R /XYZ 91.925 602.788 null] +>> endobj +973 0 obj << +/Font << /F8 580 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +981 0 obj << +/Length 2227 +/Filter /FlateDecode +>> +stream +xÚuX[“Û¶~ϯð[ä™ØÕÕ—§N²MZw’ž3ÍÎôáœ>pmÙb#‹.%wwÿ}ñ ­];³3+€?Î&)ýe“E1O‹r²HóùrµšloÒÉV~~“)GQóe†ÙÅY™.æ˲šÌF;|¸óçr9ÉK¢,'÷û ¥\óu¾žÜïþ—ü××{³­ûé¬XVÉàð-“¡©…ðË4K\KÿìÎL‹,yžþyÿ+©œåëùŠÔ`‹Ÿüt–%fO\ƒH}ÜÙ2ŽþuøáÓj²ž¯¬ éŠ I3–ÞH‘&=ö€ñC½ÚÐX"À4Ò<ÔOƒmGß|¼?y¬·BÍÓ´P1'ß-¶tÇ̯1>ÖÝ4_%ºÍqš/ÉÆF÷ÓUA_ÌЈ†Ö>Ýÿ<]•É|:+Ë"¹oÌN!Ëæëªb?lÿŽÖ×¹¨z"¹Sk`j¹H“Çݘgl"è–¬«ˆ¦ÌÇÁþÜ‘ä6œu]/lðÞáÀ@å‰H~¶p§$w ü;4äÁ*_|"×>œ¡Ó,³%y#_64[±ÿÁ¿ZˆFy¢ÇÃÃtFË$CGë¾é2΋G†m~–ÉÝÌ2,í…ø5xkÃEÿká8àîrdDgç³ErîÕÂǦînÝÕ‹ 5t݃…¶‰rðØûˆÃ!f;™¡þÜ–ïºâÉ×[Û1§¬Æ[ÞO” vK7±,òäSU¥'ijQ¡Ð¡FŽŽ_–èZÆ^-Ø«=ž[Û†8Ë×k•íeòÿ4«‚O}]Õyi[¿!aw_ö€;Pny&ªa#ka¦%kt&+oàÇ´nƒ‚ïQ#ƒÅk’¿¾4£beVŽ.‡o¼€£qž¨ß„Ãé‚d.𤱖 ¿Áh× ƒ¯ÉÚ:lwY#+­ —2«@BÜuxÁ9X¹`ºÝÅj‘Üñ«ás‚ _†C趷ük^¼/ÀUDÅ…óV:d +—¼&‚ñ$ßG+v9WŒ9*¡þ(qïe7G~±÷€ ŒÞ·×ýM¼gAÛ½×6¾™ƒ®ë!…ˆ».V|Ã~EAÑz–w…ÉQá¬éeΦjÞŠ€ú«‹Áé~’²0¸ÀÑœÍÈÊùº,É–bžU’tîÅ(y©£ø„|;§#>! y£h•;EÿN°~¯Do CŒ>,êü¢Ž­ÇàäY|V-’¿ÂqoÕžÄCå½`:âÛy5E¯ÞÏ¢û—«è%s"Πʽ¡:é…/r~É%$lßÔpsa.—V}Vn¨…bäó`Ä [Œ‚f!—³U¬Æ÷ƒî®yŠ 8ºÔ’Á‰[3øu¨ÕOæÈÏ:•x©}-³è†Ô{XRÁ\úüÅÏäÄÙ¬Ö%«ªùz°YëBº Õ,"'LÌòmB˜c²ã'þÜ–Eôr¾ŽÏ³„Ûìq×Þ±Úi´ÌyJÔgεLÝ^¾ñ]‰¿8Ôx­#é!Bi‰²‰NŒáæDúQÔ,Ä}8)UÑpöã»ôãC¤Næ L¼D~]+¢on¤¯¿á»eíßÔÁœê1¶d'cDž•¢çêìÌI«z5† +Àíj¡=ò›_åŠý—„ +Ú ‚¾º¬¥[ƶ—¦äɯµY2ÃèóY +ðÝ1z…"ˆAàúù¡ÛÎ%RêÉr!^®õ5 çÞ¢\ò«£9צ^‡f´ AÉQ3‰rGõ+%êÁ½å¹”´‹¾ê1!0þKpÇWk®ÇÜÅ"s+Ùšìuú*5Íð Q<ì„&&‘ÅÞ â–‰‘Ôž›1Å}6†½V¨o†K Ó:Õ’8¬9Ô“ ¦ã‚ „=ãŸX.A(P®] eGQ”£DÔjŠ2½¦¤£>Isšââí’,ÛÏ9ë²_èoŠðYj_¯…¾0øzT¾Hòún¦û-¶éZÁPÑÅ××è»J~ªE£ª&Å-ôVŒYYòáYH8ꆻL8Žð“+@lz²±a `Êâfx!¤õQÿVêzfU%¹£¢2­6ý ¤Q¶A˜b=D\½8ìB>¢å ^aÆ×T…n)-I€ùwwöì–„_û,|ù˜£(Ú¯j¤a»ï™œlÆN¾\$›·±÷JÓdǸ†Ñ‰:fœ2·n©äa¶söèm|º'†ô5ȇÅ.p¿ÓÖMbGZ:pÄM÷(N®•ºj`H•¼†Ì_®³ä÷”®äÁÞþ^[®®Ÿ…°«·­íÆ¡[®:©Ã„ íètöKª4‰·þtÉ H¿ß1h„úÇÅö~-Piëçq®€PrõÏñ깄SŠœò(gµhvžÒîÒ­yá~l8™²q®Ãí€J  Æ +bM˜'9êÈíCMš%¿¸µ£ÀB!Sä…Vš~[R“%#8Ûi}ÚæÆmŽûðqORJ²æZq{VØŽ8Cl±O‹Ýçá9ö.Ú`v ú&t$Å(<1X]N³MxIX—ˆÛ2ÔŽ÷0!‰Bo¶ßï¾â­—øí$üZƒH8Êw£k„,¡ƒù‚Y˜P&û‘Þ&Åùf~ŽµZ~éR®Ör§ˆFAk„µu*#5lH þ›Pc#¥¾¸~øn²ØƧüÙ…FÛÅÎz¥‘»”ŽEÕcÎà_{¢zžIÁå—w£-ÌÇi“•äï|9Ša=šr©áµÂe^­} ±Ýyü‹ óŒ²o>ÞÇß‚õGÞu5§~üæÅÊ1»°ðOÅ£Ÿhó|5ÏÒuØgùda¥}­-üð|­î_¿Ú™#endstream +endobj +980 0 obj << +/Type /Page +/Contents 981 0 R +/Resources 979 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 984 0 R +>> endobj +982 0 obj << +/D [980 0 R /XYZ 63.034 602.788 null] +>> endobj +983 0 obj << +/D [980 0 R /XYZ 63.034 424.191 null] +>> endobj +979 0 obj << +/Font << /F47 596 0 R /F8 580 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +987 0 obj << +/Length 3101 +/Filter /FlateDecode +>> +stream +xÚZK“Û¸¾ûWLùbªj¥ˆ/Q:¥ÇÙTœ=xªöç€! ŠÔ’PäɯOw šÑl¥\e5Ð  ôãCsÒ»%ýKï6éb“•w«e¶¨Öë»íñÝònOœŸß¥*‘ù¢J¹uƒ9/òr±ÊWwóÉ yx÷§¿­ï6‹Í*¿{Ø…5ʪX¬³ÕÝCý¯äh¼ÍÓ¤Ÿ¥‰3ÍlžgËä`¾Ãïãlž­‹FãZ[ƒ¼8 *Ý$½Ì²£Y,È–È-VæJÃ=:îÛ2-ögj÷ÌM“ÅŒôß$!Ù£ó »æ÷‹ÏKð˜^•¥£kLõ­Hìߧә§´ï²”ýöv~‰ûõÞ¶4 ª’]ßAd«kg­Ê}kÙV×Ñ5X§èD}ûbñ0D{†„i'fp¶G»·¦¦)‰üí0#ežÑotæû«máëÎÑÌíž$–YbšÖÁ h\ft&ký„Ž]×+!Z±ZËœN:œ0kýg¾™"ùꎧ&ô/Ð÷…ÚϘàÄc\Ó QtnÚ•óäw➷蕃`uLœˆhTþ[š¿žpwíËûÚÉùmƒ%F‡Âó¼\'·¦¶GgX‚ŒaœQ¸_œâðž››ärpb©$q€À¢wÆ2þ`¨«c†ŽuòlTžÊH I8˨zï1 +¢ëbqäŒ%VR]ÙU¦keÿDE…¶ª7G?bòŽç7¶|}•Åª`øG"g:OΰЮëæ&™!Go<WVf41$¬B– +†š­Ö8h~2dYrßBL^sÌ´rÖŒgׄFVùrKL8DLCÂC­­u×DºçeýÀgL *>bYà3C—¯Má1\ÝñUCH‘F,_wÂðgå°É$fÐŒs7žùU®!WyžÝ nÌ?hÍ Ò´@fn`’Âèúòñ‰(1£ãžè¨Y-íBCÌ“®Cð5lðÓà©Ýh¯ØCðgIù2t +_¹-{l³Û)ÈÆ™EÅnð7ìs¥qXDŽü;`-nqâ+ò>_^ 5xˆüYò©æà付̴ €ÿÁœfš.òä{4((a»6w î쀬$fK&t3‡P>ž9Ëó’äÑ£¦å +Þꋵ( ¬ ÇVwlÀàRŠŽ@CAuyà +ïj Üeô·"A—·cn¨;/7j,qæmì(:ràoÕ|/YL^ØZ(óø®–áŽÖº1z÷`ykÆ×y†”G¢]Ú~ +÷¥ ¯Oe&&,£w*ú*Tn!ÐÛ“hl”rî^’?|8Þº±sßOà^Nó,ÙfôœüÈN°ïZ$¿ÌO”?íÞBâºÁlqJáHnܨÁ¯ +fæÈcŸØ‘=jqŠ4 _PB`µ¤B¬b{+ö´æ£·5 %Awâ! ª5¿‡²@£é’6np²{ UÝä–Ŷ»~Zò`yû<‚ö½„þV"íþFX[é3\*d…@U&YŠ¦Ô ¡Õ @«Š#NY¬rÑÝY šäôÓš`q}(Ö~C×ØMjMÐ7-lS¿ŸƒÒPä‰V™b+h%Sü¹VsÛæîÏbt$)ûëf‰BIF¯5$—'4wRÑ_°5º¯³ñ¡V`ö`‡ekÁZ6©ªd/ +´Ø˜ÜdÎÕ×h¢ÖN€¦úL>v£ Oj,ÄEÅ7Óú?#/5Ü3¹ÔÂ/_¥˜~9ÖÇ£äˆÂ§uÉÒ;-C0}ÔA(„.%ìvºŽ–ðTã€;b& X? +öu ¢ñ2>>e±Î?€‹¨2ÓgŒg//æð²ù½gTUÈq~òý.ÔTƒÝ0}é¨f^Üøbê±*8¹Ò²ewŒiðÎ6M ù?ãõ›£æëÝ]½Rrº†‡/âwO–²ïù+©æE©ïí­IET‡jdD…Ú—«jW¿’+Fl¦úÕxP!±è¸ªÅ£ëô²ùR ªÊZdéÑ ¤H¾¡Â˜ÖEÀÓèçMß7¦u•¤|´X¢_~òa÷ìawµ|-­ÈTó(ß´FÓPoäß­ñ¾¥\dÞ»­”ˆgû¾ë߀M® H}¬X°iáû65>Kcp„ö«o*܉"ËhÓõþ«H¨5 ÂL¾ZS ßÍ0ó9üv/—P-ƒ¥±PÃ.É7)çÝç‡ø× ú‡ ›rAòÿþÛˆÿ‘yMlendstream +endobj +986 0 obj << +/Type /Page +/Contents 987 0 R +/Resources 985 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 984 0 R +>> endobj +988 0 obj << +/D [986 0 R /XYZ 91.925 602.788 null] +>> endobj +985 0 obj << +/Font << /F8 580 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +991 0 obj << +/Length 969 +/Filter /FlateDecode +>> +stream +xÚVKÛ6¾ï¯POKµ*‰”) +äÕnŠžb4‡ F¢-a%Ò äuüï;Ã!míƇ€IÎ ¿yX$9üŠd˳œ‹d›—™¬ë¤òäœ?Š ÁÏd§;ÌÈ·™U²Y!¼Û=üö©Nš¬Ùòd·O¤ÌY'•Y]n“]÷}íÓ‚©%Ý.ØbiÕ?Žé¦”L§›‚µiôå÷t#Å–}MkAÌqD&gK?Ì$×yˆ)˜¢Å&{:ôt£Ã£Ú/A>=¾¤e (jÍÜ zÕE%@Ôé¿»ÏɦY#¬EÖT•w¥MÁdïŽi'çä¬' ¢K5ë¼»­hÙ{XðæLç-éÕÈ‹§£©3nÀØmU²?-JœQŸŽf“Ô¯€Pækoïû-˜Úé —e0pá %×ÈM¡Ê`<¿>äσ˔½Uš,š;–ƒbå÷ó¢ÜUq +2NÑ+Mô ý¹H6í”ép¢[Ñõ:âGÓ ð7<¦ôMË›Ð,@N¸’5Bt…(Ùß—Wž†äžœ‹zLZ6 Ík 0Ú¨eˆÑFŠƒ2tÈGÞP-ð&@ -C€°&«¹¥~‰ºÜêiq"-.K8çk%èç™H>‹ÏÆ-@ÿ ö…Ø(wÏ]ᣊ©%{BCd’À§™Žƒ™•Ñ´ÿÒ'/¶Ê#ìÇU¥:"µ>=¨ÚÍáöh±Å©‚ªÖŽc Á!Hͽ¿5Ñ£ïgD~Á`vAJMÇñÚ¦¯Z†IƒKU%Ù;FeÎÞ»‹o5û˜ ¤¾Ôd±Ê¤Äp>аí:uÍ9P-¥¯U€ŒÃ…ÈvOÔ¥⡺eÈŽÃÜëpWE§Uw/7¾`õ +3ÚÑÁúès~å*ÌL¯‰R}!ê݆©sÜÃý€é€n«çè*ÎW˜˜hÓø «Ý¨q¼à|ÆQ$ÁŽƒòäp|zÄa*‡ˆ*DEƒWšŸÏtš‚å¸?ªuÿÕÞ0õ0»ÿ¹~œ!pCÜüÍT|Yhýpƒ)èk8‚­»3ÚiΆ—8 9ôþ§Ï}êtH´+¹&ö ¹BqAöÞú¡d}Bº@lãàµP+sP@° ½îÂɬڴöäÔAO¯gÜ<÷Ú„ïƒ#ÊÓrŠ]íÿ»×Edt¤`Ú}DwTvÏÞ­_ïáãnõF(2Ùˆqx+¬^ +?½¢ìf%üöÅÀ¼*duÅCƒwi õ>‘]_BÙX§ôQáiÓDÙüï—Í=0‡endstream +endobj +990 0 obj << +/Type /Page +/Contents 991 0 R +/Resources 989 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 984 0 R +>> endobj +992 0 obj << +/D [990 0 R /XYZ 63.034 602.788 null] +>> endobj +989 0 obj << +/Font << /F8 580 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +995 0 obj << +/Length 1577 +/Filter /FlateDecode +>> +stream +xÚËŽÛFì¾_!ôRˆU^–ÐCÑ ¯dCÑô0+ÍZj$¡GœÍ¡ß^¾F’wm´X`E‘ߤ¬¼ü)/WA&^º ƒ}–yE{·óŽ@ùõN GGÁ^áÛâ6Ž’ Ro»’ðúp÷Ý/™—yy‡GOíÒ Ks/ÙÇA¦Þ¡üÓ³Ù†Yì?n”o§þ—Œ¬ Ãöt`ïÛ#qÕã&Ìü'áµøŒüóÆ1}b¹+&6ð϶ŒÖ'`a‘pƒòuS¢;®TéùØ€dóï"N”­æC˜¶^2üÎŽ›¿¿{[yÃüš$dªí8:Ç»Ì/ð¤Ñ”ŒyÃ@õV—¦ã÷V EØ"|BE–Ö_IúuˆÁ¦”:2“n‹PîÀ§G:Ä,†)èja2% +íHü§Ó²m'VquQãíà½(Zâ†ð‰LAƒÑ"ÂðÈÏJ£BŸï…‘dRWÊ1„"ja!+PË£ý°D±gz«® Œ +5Ú‡¹èì:ÄdÝ•Àª¢}&×Qºùöâö¾£AŠÅ”bÊÿVPêZÕddF»‘«ÒÒIsŒ>²±Ò3òÑZ%*i>š~ö"ÆJ$s6Û$õÿv>)n'èE¢ƒ‰{ö ‰.¨!YDñ0c}ÿHñï\ Åhˈ¢1ºg°­ç2Ï(­âÔfäê +*iÍ™ë,(ùÈX Ï +‰&¹Mà„nì.RX +sB¶«'熔¸ä‡„YêÏYÕH÷JÉÌs3JfmB2`£ËÅ5骱l¾Œ|Š‚J-kÃ)àn|©†–K‡«})õ±pêaÎq +áàÒü¥ñZr|À%è2ê®ÑlÚâèZ¢‡p£»#Þ¡r`¾Ð”7« û\”“q–z_”a– ®Õøj6„+ͱ7ØŽâg"Ÿ ûú' Åhdÿ©r­èˆÂjD”*| ÙÁ~ë‡yˆ 3ÞÓ$ºì{Ý•’áî÷“éZÝr•)®‘ú¾ˆÖ£nÎøÆ^˜QŠˆî¢¢O¡Ô/ò½7â•r&s™»V ð©×…ëu¨É ZŒÒ[¨éÂáÂÙô„~Û^IˆžÆ£ø2òf “þ=wÿÜ'ó,øCŠ#‡’ºðä®LW(•ã$Àˆ&¬®Qw…à°õOÝAdžñ¶g±,MBʽ^RÖ̽SÎ8MîÿÙ$»¯íÍNøŽÂD#¾ÂC;ÿu¯¿Ö ¾p“ÀÇe“@Œ‹fǯt#ÆÒN< Íí1¢T ¤¸,çµ¢aŠ\¸ò-KæR M˜‡È§=YŸø2Χy)jêÔp|š›äíUSÒ÷9¦Ä*§•ãCWB=\K·KVã"‘ËJC¢™ÞÔc=G–¹–õ+æV²ZÔL)cî¥5Ó ËW]3ð!XkŠzg¶cnÙ +:@ËÀÀìµk@!ø4Â~ÙpŸÖvQÔöX—nd§/Ý%ÚœEÂ¥ÁH£ø³S¼örÑâ)UÂn†…¥R•ì‘Hí9Ý%°º Ý:N4ˆøع2lyN•¼ aA©„ø¥áT¬×#L}•ÏñÁóæ‹n“g†ÕSØöjæi +#JšÙ‰qz oÿ±ˆ…iä&'@3ç À«”±'Ù#O®d%He½§áÄ×Á™ë­+—Aèp‘á:6"?îTÜ;G‰bè + mn$m=Ú¾¦ªh‡›íg˜æjÎ*¼(ßûïïD ]Bð<®á¹DŸÓÓ0‚×G _Jƒ“cZžÜ g¹‹y¬”ÿQEñô5 ·i†Z¹›ô¨EX-Sò4OWR`=dwŽQ&‚Ÿ}ußïçŒ~4óÉ|ÏïîûOs°yµÄ÷’ƒ ¬5øE,Œ¹ÒÊμމé}S«Õæ¢ü¾A³ï~>,ÐI¨0÷¢hÒÉú3úÅç´ãÝ®˜ŸNG© +à{Üq [ßêһدÒnÙ%e1Y¦áEH–©H6¯G c¶,¤w$#BUÔ…ž’Ï-—ò$€éô¿[ø¶v+endstream +endobj +994 0 obj << +/Type /Page +/Contents 995 0 R +/Resources 993 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 984 0 R +>> endobj +996 0 obj << +/D [994 0 R /XYZ 91.925 602.788 null] +>> endobj +993 0 obj << +/Font << /F8 580 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +999 0 obj << +/Length 1737 +/Filter /FlateDecode +>> +stream +xÚX[oëD~?¿"⥎Ô_cû $8êA€Ä œàÁIœÄÔñ¯Ý¨ÿžùff·M%T©»;·Ý¹.ú ëØâd±"?ËóÅîü!X óéC¨qûYˆÓ ä* Ö~–¤‹ÕLÂ÷›ßþ˜/ +¿XÇ‹Ía‘e~‘å‹4Kü–áíåtrÙШéã4cŸÈÅP¨e(©ß2K/ÓÉIÓÅ[sÁߞÛâqè·ÃGÁía3'c¨äq{»r«ÏÀióÇý -¹ˆÄ±ä*VÓî*Ÿ odæG iê’Xö|'vÈ ¬¨]5Âéèj§"‚- ¼‡»'MYàíPã1QªÎÃFò^oÜÀ{°_ÔËú3tß[9ÐuÂ&¦lWîxËÙ“Ó…D­w¾W}¶×:WA\®u¤i /“Jù¬…Þèå‘ױߎ}e`ëÏÀF«­pÿ„I?«µ€ÙŽ³ÙJQ&PÀE¨ÉàÈ5 öôy1ÏÝ ¿Kµ•Ê¤<³7Jбçôî`›H* e«d”YµàIkp´Î¼£ØC»R»†r»â»­@¸Ì^ØB×zß ¸z2gÀí²Y ãq ìÇŽø—Îc-¤!¯p¾ f.ËIa髃éÏÐ'+åNšD/IÁÕ? ®e#»ö ¾‰ì[CƒqànBhæÃÊ €À—ж٫d–§©#õ/^ÖIÇîkiœ´×GNÜîZ™8ñ¯ˆ‘öîšrŠ'x•2ášb |Ûq¼&·v½«UVg/˜‹ 1 +<œ¸c¶¢¡Í¨0J‹ˆì!…ëô±j%ùî…BŠÉ)í`Fî3îªí{ÝÄ•Œ(ͽ®7üüý(ÑRÇo„›R‘Ó¼ð~]"g™‰JõdŽ?êSÁv9K}MÈùÐr¹šM:ÜÄKB'3âà¦*H…hõjN5w +½Ùª€©t’ãÅÿ’7¸îî–ËOå<œP§ÝµØ³Ͷ©Îì j‹µøŒn˜óÙU-`Ë)~ÊëÈônÍÿ:™ SdÜ‹Ü Ló‘‹:œÞÊ•M¥ÇÙ(ÅÓ +œ#žµUÅ«iêN¹¶ƒ#Ò +¡¤× hêÊU°Èx¾¿Qóu¨&ºõlªÂa&›Nݵ¡ÛRÊÏ1©DNÏ~¨­Úƒs0Rï‹dy¼ÝE{'lWïg³4¤qe!)@ wðŒF•H:›¾ÊO‹×ÙfMSÐå­xjªr2PêŒÄÉÄ;ÌeI¤C“ì¥2EÈ6Éè$ÑŒ&~WÏäKÁ +åÅ5¦šßLë ŽÓ¶”rPW#}i,Øœª¾º³3ž¡ž½¤”¥1.¤“i:z§Š°M£€[WLõáee‹d õAQŠ¨÷*õ¢àm‹u)8q©3ݬÞöB&_Ú_cUä¡ŸlÏ®³³ÓÊÉÑ»i\@è“Ê}Æàt»ÒW¦×ÛùàÌîK(.ÝœœÔXø¢º}FIf†ëmØÏm-H•qÔUkväÎIÎ*´•Ý4=ÉÍ<Ñ>Z•¡×Ö¿¡Ù/Õ¼³òw˜›<î¥îÕü™,ÕŽG1i!c~êܱéå›2‡öwg­¯.]*Åp@ų¯]\T·S ˜æ:g®&y®*#‰X«?l¦ß¢(ðó0[P§ô³0ÿdðæ§G»š¿þé ŠR?+òIÌöiêôGyÑofjŒ8~Á¶Ÿ¾î§ŠB¨£ú²J}Ýg4)AüF'ý‰¤Hý8*þ÷/$ÿÙÏ;}endstream +endobj +998 0 obj << +/Type /Page +/Contents 999 0 R +/Resources 997 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 984 0 R +>> endobj +1000 0 obj << +/D [998 0 R /XYZ 63.034 602.788 null] +>> endobj +997 0 obj << +/Font << /F8 580 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1003 0 obj << +/Length 65 +/Filter /FlateDecode +>> +stream +xÚ3T0BCKC=K#S3#=s …ä\.…t Œ;—!T…±‰±ž¹!ˆ‡ER&«kj`®gbjI´ !¼?endstream +endobj +1002 0 obj << +/Type /Page +/Contents 1003 0 R +/Resources 1001 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 984 0 R +>> endobj +1004 0 obj << +/D [1002 0 R /XYZ 91.925 602.788 null] +>> endobj +1001 0 obj << +/ProcSet [ /PDF ] +>> endobj +1007 0 obj << +/Length 1707 +/Filter /FlateDecode +>> +stream +xÚÍXÛŽÛ6}÷W}’˜åb^‚4iš½¤É¾%û µµ¶ùYÎÖßeɶœ Xó2ž9<‘ ‡?‘XŸ҉咹,K¦ËOæÐóÛHD ¥skÍ-sÚ$“ž‡_nF?¿Ò.‘œY«’›ûví3¦¹HnfÓ‹|ÓŒ'"-êñD9›ŠñíÍ[§Á“Ãq<™ÁŒÈÂ7«±i3i×0Ž§³Ý´)¡i½:Œš)mÛñžé̇ñ̘€¡Bšô]Õ0tSÁ¤ïêbZn£·Ðò¼ ›ÅþXEå´›Q0oLœQZæ3ÛŸ±7íÍ"ÎõgͨvsÖTdÁ}«è°g ÿZ€§èBDY–xæi0‰ÀPhçÒåzKá@ͦ›ºïëØØ4¯ŠÕXfmïê€k÷ K4È&Ñï!Ó€m["›hš×hŸC(=Ã2Ët,4¡/¨‹û¢>€Š37kŒ#ji‡ˆrˆCkŸ~Jßá,ó}·ü Û3@ òf1³!Ä2Žx(›EI„bQv \.7U;ù2â’`’7øÌáw³ûŠÈÃÉgœ¾Ø“£i½GFšõ¼Î±°ÀÎýPÕ|ñ¦å–Á`îÓç؉̆†EÛ…¹¤oÐèØùþÃsjø(ÄmìZͨð²üÄ… ¡L^UµÌW­­¼¥áº¿@aWÆ*ö”¤†bº±c;2¢„J·%,DêiÞ + {–ù|U6VPK³¦ßºØ’d¢åçÕÇ=¬¨ÚÒ˜£ã¼Ú7(ìÈ›&T| Àr§\újœ)ÚX`Uü“÷ô 65Í@ A'›„±Œ%ŠLP/Êê2y5§Î<Ú š=n‰ršWÔ Kš!ÕnK8bšfÔrV®…‘7Ô8¯ ’rGÝ•¯¨"8%—@.r€’3 +Ò9³‚‚T‡û³T!$ÓB&“Î’Š&Js浊LQ†{M „Ø‹¯Aò5kÍ!È¢FP¶H òGË°K\D$Íø´ ++:ßås€²<Ýî¦èmAý(mü}óá/òõ"¦Þli°•°’ˆëÙ³ó¸à³à]ì;=½ÍqÊwçN5|Ô„ú>×+×>’% ÖÉ*ä×@Ø×r¦1±mSbÝUƒ¼µ2Pö›ÀgH µ‡¬´Ü™ÁõÂ’,e 4Íë‚×EyŒÖ¬Úlj–yUQ1¬È,–ëì”N{è|ÛtßiÈúA7£_oÇ…xʱ̸¡…”ŒÃac¢3 ܞũ¥†¯,ÈY1á Ú}}¼åÉ ìÞŽ8¬J–<@™3á}²ÉÌ3'm¬W££¿»C 5¶‘\òŒ8ø¢R´>qÓdÒÁÇ–ßpÕ‡z¢ñ–q,HÏ8L^æ æ ÈU7c%SÈr ¢¸OŸ0&ìÉžóÇ#m}ª4°ªõ}¾šŸSÎ3cÔu€áRä†]oií•–V€æ´?ðÕOJ0iá+àT¬(CÆÍ'p]ZÏÎã5ÖóŸÐ½õÔ‚i¯Ž~✟%6§ú,æ5!3ê‡Ù…j™å&Z<…=o-ý8ø9K“ŠÉLܹ‹ú¹ÿ›~®•8gÎÛAýHk©Ãw%“®íb]7•Óùº†rN)¤+ÔCvQ8>®´’ÎH.HƺÇH^Ï5¸8ÿñÄ#2¸Bky)ùÚð³%eëjM§¬ òéy»‚|N±ɇC¾êÜwõ#…†,¤¬‘D„Gˆèàõ¢’®BËþŽ!½›>]܇' |XgŽ”'3Vá‰ä²¬:××Õ Ð¾¬„°çÅÒïÊÊK©”“\ÙÌhçLÆô‡4Åícôuîþ²Ð®AÔ5…Ö®~ðÊôà{Ÿ 8L`Á~H<Ñ" !¯Â{Ì.\<”JOñYDÃa/É›pE —dèGa¥½á¼%áÑ:Ûgl|AMïÂíj^·÷K|Ó™S×ïphÅ›u>|tÕp/î:‹YÁYoy _ ÞZ&ñb´æ…âÅ9¸Š/’Ãjùî>ipÿ­çEû‡ x; D`¥ ¯E›ö5@:—R4u|V)ŠY´\Óï]¸*FçG·ÎÖò²öqT #\¯±ð¢?ò”Ñá;7 ÿMr:“Sn¤’ás-èéôdžö¥ù|¢õ|/endstream +endobj +1006 0 obj << +/Type /Page +/Contents 1007 0 R +/Resources 1005 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1013 0 R +/Annots [ 1008 0 R 1009 0 R ] +>> endobj +1008 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [223.658 313.939 235.613 322.352] +/Subtype /Link +/A << /S /GoTo /D (cite.RSAREF) >> +>> endobj +1009 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [324.693 313.939 336.648 322.352] +/Subtype /Link +/A << /S /GoTo /D (cite.DHREF) >> +>> endobj +6 0 obj << +/D [1006 0 R /XYZ 63.034 584.788 null] +>> endobj +10 0 obj << +/D [1006 0 R /XYZ 63.034 407.032 null] +>> endobj +14 0 obj << +/D [1006 0 R /XYZ 63.034 373.271 null] +>> endobj +794 0 obj << +/D [1006 0 R /XYZ 141.711 159.805 null] +>> endobj +1005 0 obj << +/Font << /F47 596 0 R /F8 580 0 R /F7 586 0 R /F48 601 0 R /F14 1012 0 R /F11 674 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1018 0 obj << +/Length 3269 +/Filter /FlateDecode +>> +stream +xÚÙŽÛFò}¾BØ—¥‹a¼°X,&Ž½vÛÙxûä¡GâHL(Q!)Û“¯O]ݤ†œxa`Ô¬.VW×]E«UÿÔªTq©ÓU–è8/ŠÕöx“¬ö°óï%AÙLp¾½»ùæu±*ã23«»‡§Tîv?EzýËÝ÷ß¼N툥J›ÄUDxùæö‡»Wký¸Þc#¯7yžGoßß­7ÕEôá»ÿÂK|¾{ûá=’¼yuX³&3“ý%÷çÿ`?Ím\茸kÜ NÞ_ܾâ‹ä«,.s‹è¦ˆU¹2q¦RÂUŒ1!XÄ:‡#G”-Û˜BG-’mù¡«Î<Ã=vn¨ü‰²8ºý©ÔN ]õ;>Ö]µcÀŠ¡£«$r¶Àv’‚BTÔµ÷WãÁ6rÿ"¦;íà/)Kóè¯Ç{?~¼Å…‰§E„˜$vé©}à_âàÃe7¾ ~¦±É +Òöú·YÊúg¤m{ivÌÍ=1Rñ±jºþT»†Í–õšåqaÌ•^ÜvhIt¹FS½¤L–Œzú´fÚ 4”Ì^övÁ ~Ú3ÓØ’TŽ(àËPu/ªPK§]ÕÕd$|†#xä—Î];°Îùõ†qîñ0ö°e§Jhö-]~8 Nu:±Àjëí°«0j±¼Ã§f¨‘݆,*cÛ`ܺ¯Û“!Q횎>öŒÛ »*ˆ¡„R +otLfÉð4Þ”„1¿Oõe2òË »„ÉmÔqÈ“'4<Ü^ŒQèp ÑûFkŽ[´½¯ºž¡Ÿ‰{sñÒ#9îØק½\Ï ®š‘ÐùN̸¯[¸Ñ@W=“¶™½˜°”Kk¯Pßµ=8¤.ç‰#ëiË‚›Þž‘0Þáï™ nÓÛ50*>Ñ4"Îù¦³Ä~ÖŠ]¼ê-ïÍQut¢·ò@ZÁÅÉco‘÷]]½÷,¤M®„чGpO\‰°0‚Bôœ&ÜÛvx±¡Ýwb6ÈÞêc=Ô%™“ݽ^C.pý ¾-'Nbš Ä yÅ ÒZð>âÚh0Û3¡¼)±¾vyîOݵg̘$¶¨­ƒàѦ¾u]0ç5ðwÙxâ–ntjÀ„áþpæIS8Gª^$91—•ëDM××!ƒ²¥ñÛb„GØÖGÃÇ3JO8“ã àÓ$úeD÷äšùÊ2®'ðmŒ‡þ>ƒæÉÌ¥b – +lR*¢w)<ðú»m„(oîô¦jš#•5J‹qe¢Š ‹\AÔ…b ®T²Ñ­w +ë9D–IfpuPX¤Ñ¯hÝø 9ýì( ²é1tv1:Ù¤‹áâã$f×9Ö……ãç{òø+ú£µ– ÒZ½ZûØ…ˆ6ðÖá*Åá[˜w.u#ûÞ|Å­õQœ‹”ËVðšú„5 ¤aÍXrÀ;µ'8´0i÷2à »êÜPöx µ“3¦€¿ÏE¬Ñ±8k®L ›YÐå¨ô†k=ÔŠh—’x~eò!ÖðÌâ9×|ø{j^„:"W“ +6¤"%F±€1Y)™ ,žk¥Ç 'ôˆ²]À—‚çT 1Áyè@÷óˆëËL(&Ó‹)Ád&³æV’?b×!yú\Éð®½êHñT,¦FE· €ÃÄ»ÓáY_ê±¼ôr*Ýý¯¸¢’ä9—~š{!ÃÕ>8ê&Á/…ªý±çBA®)’ëô©^äÄÝÖÁsG:rŒp•ß½Xl©£;ªXã>¤»šS +ß¾B}ÅRæ—…‹öå®C›ƒ,¶ì=T¥©Dô¶ö¡ûIÉ –$;·ˆïÓ€©ƒj ~®Cð˜¨àG±G<©îéFŽ«v¥Æ²]çE\&¹ôÏ¿ÏÊzè^“TvÑÓ2¦ã¾„<Õ†ªBn7; °Lœ«ëæ­Zht•Ör$GL"ü³?êªÎÊllR+Tú…keþÎd&z9¢ïÇÒ¯kt¾3…õ¾æ¨#§³ì‰³Á·xÇ9KÊfq’úcO3žÊ8Q~÷Ÿ ¯'q^äiÚßÉ‚32 ¦u•ZhäÀiz#÷¸jÇó4X0Ï;è¬ß'¦“î»’]“ tMÇÉ1è(–,¥— ´Bðw ½0å3]LË _üБh\N’~¯­viã“Ö¾Ô÷`a\Í&€¨Üé/c?F­á ƒå»ƒ\ ¹3—Þηwøêµ ¹€â;$CºÕé…Ã}ÅP-õävéVt|So¹•åª + +lÊk—^Êí#hºÿð1ËøX‡‹v N k÷ËÀs2)ỎîŒ-‰@@ž{^m]³…Æ\zžž€_æ+Ïèr a×*Ãy!Lú£!ú¿—ÔVjv½»4¨çúÆ:YôÚÌg€†Í¯äâ +t¼ŽE‰q¯«zhÿb¡ ãŠ ´<ƒ–5Gó2•CZÎfC=C½ƒàËÛðÑÄ„˜`ë.ôÖÂa®_â8‡#Ï°z6#?¸cgÖ8Òµ8ç÷Z  /Û;M¿$⎓ÝXôQtk…Ï"í™k(·O^ïH„õ— 4ZëM‘Ñ­lPð«±ÓÝ,D)MŠQÏvu0½îsiemK­NU¯¦R¿ç%×Ó䧉žˆôI»˜qbŸï6¡c*|q,c®Ëê{_I&ã÷âé|À2­è˜Õ¸´ÔD*Œ1$j¸‰;I@Ry'º¼ŽÕd­<„‚râ3ÚVK_/w ÕÏéG4„C, +BšQAÊ¡fìG3%ŸŒŸ~÷—ïõÊ@›–KŸý“•Žyç÷›Ÿ~IV;Àøþ&*¢X}†u«²\o(Ü¢lé¹¹ùxóŸù|P¦Œµ-ÃÿÐ ´çe^p§oh  4ÐI~Õ>—ÐÍB ¯R (RIÝÒ7=êMBʱ­eÃín½ýø/ùgVÔúÑЊ?(CÀyÃ.V¢øK´–> endobj +1022 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [129.119 571.892 135.581 583.932] +/Subtype /Link +/A << /S /GoTo /D (Hfootnote.1) >> +>> endobj +1023 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [385.598 571.892 400.321 583.932] +/Subtype /Link +/A << /S /GoTo /D (figure.1.1) >> +>> endobj +1024 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [421.91 382.547 433.865 390.96] +/Subtype /Link +/A << /S /GoTo /D (cite.IEEE) >> +>> endobj +18 0 obj << +/D [1017 0 R /XYZ 91.925 272.499 null] +>> endobj +1031 0 obj << +/D [1017 0 R /XYZ 107.168 139.458 null] +>> endobj +1016 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F7 586 0 R /F11 674 0 R /F14 1012 0 R /F10 1027 0 R /F45 589 0 R /F47 596 0 R /F20 1030 0 R /F19 1034 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1038 0 obj << +/Length 2854 +/Filter /FlateDecode +>> +stream +xÚÙnãFòÝ_¡·¥€Ã>x=N‚™Í2»ãHò@‹m‰’Ûûõ[Wó0å 0`²«‹ÕUÕuKí"øS»Ä„‘±»$Òaše»csíN°óÏ;%A9,p~¼¿ûáclwy˜'fwÿøšÌ}ù{ BîišŸÿóïÏ{üöåÃþ`Œ~ûˆOÜï*øùÓ†Òêàý÷~ÿçý/?|ÌfòÆdaªsà)Ü¿ûp?±h£$Lmü—Rxœ‹cÒ4ÌÓl§6ÌtBg}j÷«UàdopíÑ!@Ç®AȾŽ®g¬X„éJ†4{×z„êR;^zX:D;VCÕÉB«ñܸ±:2¨ø°ïHÅõ/KšGüfÈx&‚ –ÝAÙ0·p]J…y“CA¼:¸8Ñ$“Iu@Ànqe‚c1K/…$½“DE#«¢>užUA~:WŽRäi³ˆ`êƪ%4Žø‹%T{ç–—Y™ˆ;t‘ÈÅ—Ó=‚ø*Á»¸\g¤óð.T<ˆ<%/‰k$Ä\«”‘ä`vx™µ+d´‹‡ZvKüôH’«;P©ðF¯^eø~e0Hp +žÙb%_ÐRiÉàŽÎƒGxí+‡l”5Á² /JTûó;F¡ãŠ‘÷*:Ìït œ˜p /Ötx…|ásºp<.¸á…fwTÑ.÷°è(:ŽÂ<Å„‰â«øºñÙ,T©Ùf”§3èMh©Oƒk'âÙ·¨¤©’]”‘ÄC³y/Õ±¨A;d÷:OB“é•^'™Œ &KúŸ×;X?r4*²±%Ük +±m Ð:†õîÄJ½3÷Ì}:ëI¥UNzbŽôFBÚ$g=1JÈ(6ÝyIA¨4ˆZ fhµá ‡ô­Ré8øѳÒ:°U;îÅc¾åÔ¿âîµÞ‹RHÂýϽÃX„Vß2äýžÄgÓxÒÊŽ1Р³0×)±F^eòœøŠcž<d i2qÏM¤D †×~)M– „÷ؾ[üx,F`Êô1†ï>f;@fNþ”®ç'2öì¹,}«·ÞÛ»iQÑL®•+Бø:»®ÊA£CÁT´ƒnˆ­2±ÿ(ÀÛëÄôý‰ “¤Q9±ã&>2¾èöÄ›³—GÁÌ4„g熈²C»Ì÷Ù“ ÌlAð) —Ìþ7LÕ|îÁçÏG^ÊúµŽ1O)|Üg–ïèÑösÑ jjçƒd³I"Otl”×)Õëü¤èñ„îÜmƒÑ:¿´+Ã<“htx¨(öÆhL¨fwr=Ý +ÿ ¯È<Àa:΋A^õöteL¨Aãѧç¡ÖVv)eŒBžcx,Jºš"_ €9$³3âbecô¬}úIfÓØ:™+C_hd¡ó•¼G“/s +¬ÇÊ_˜‰=µãœÓñ…¸´¹dhôÿsÃèOx`GÆY2áâzj„pµ/ +`ž2¥—8Z rXˆhnú3© RAq$N»F,Šì¢¼È,ñ-?‚¯Ÿ2;&Ò{•ˆÚ“ßÙ„„ø2ŒSEÑhI­%ç ±¿RE5±µð¬7ª 2 ÆBbjóÅ'â¦Dég'gÕn¥5ƒ:IËk8æ±Lµ¨µe&>h„\Új( 9 p8ª‡š;È!aN…víš…!òî«j?\W£ˆ4û#cà)E’UÅáš$c&*@‘¿^hâ­ +ûÆ&\)SGÖB¼Û Å6ñ BØíØ–FÁä–5¹õ&"åÚ/Ëg„øˆüBˆÝ©/.gë…Yù#Š#©+âeí¥Âxª¾>üôÓ&äh å‰ ¢˜¥"8¶{¤R‰½è`" mà:"TÍ¥öºiÉqʱ&eo…çÐýx,úR2¥É dQ­GÛ”ž§dfRq~ÀÚ “}ôhÞW³×± ì bMA‡nx×(p‘ÉPùJRSZo—wp\JwQ£Äwæ®Åõ·2ý+J¢efÇ¥œ›.09kPR$B,¯tH°óz'Ù…òä5Þ=K¦L0VU˘êkÊQp¦† ßÈÊŠÑw.[Á€mnê¸m‹U +.†V†å-©ð+¶±.ö!šL-Š}ówŠ}hÉ£àçnªJV&‘ Ót…È€/ “c5çÁtÞ§›¾¾jÆ©zCÑ„×ÉÑ,Öa¯êž¦ð^—sÑü¼CãÔ“™ãŽÔ’ç©¢æ S¢ê„›‚>9‡Ê§?àÙÒuäÒo÷ µs˜G&QâØ=Oé»wÈUŸäs¼Ündu!›ÝoÔé×É«2Q2_·0ÈW±Åµ<Þ‚ñDç9'õÓ‡>¸l¸ÍoÉiðˆR(p•ß2‡€–SµPÚ¹u$¤b.Ø9˜]¸æ(o¤SK2ýº©²Ì:­+¢ÕôfÊI¼s.–ýB¤¸‚"an7`µè«ú³+JR©¥E†Ü«{ÎÇL£®Ã› •SŬ %&éÜX«æy‹Õ‹wµœäÀêB‡ÛO¶b E7k#o÷ ý:ùäeA¬ãg!Ç’ TSíÛ0øiî¡oF¥Þ=^1;@=p© $Ѳ/½C›°4»bCÉ_w´XÿÔ‚X1gˆGÅU>à!Œƒ %"X ×j\tºz$ä÷ùÂiÅuW'ó)úž¶‹~BËIŒq“@9²Hxžp©ùëÐgu¾j&üȪ[³å¯ç|ˆXvüìV#<†ùx†ï³Ð¸Âƒ‚¨SQ&c':¥ºÙ7¸ž¢™4dÙ¢MÈ’7âÄÙÇV€‘ ð jRû3u’€\ ÀòLœ>xB o¯t€ õd Ül}üfVt”¾Ops[<#”|–<é­‹XS¨ÀÅtH1tmñ ñÌFZòÆ1ù*.=që®·âýrúWº‰óSëú ܹpåMÁ³:R?@6R@LýD¥ô¸˜ÌÙÐØD&²z6Oä´ ãð7kÏ1ã`™ßà–ã¸î“2ajƒû}ì<·kP„h´çÁDBÊL½ïžHdáI–Ä5:,*¼IÖEHÇORçMäQFO½‡xèzöî%ùTwä,.»!öV§¶ [CËÌÛã‹æ~š¬š©Œfø2NC"~ ¯ áéà ’éZ¬0ðÍ=sÍXù¹¦ ^M +n ׇ½Ÿí¯}’ß¾”MBWvãǧh§Ã8W¸õíî÷?£] (¿ÜE!øïî Þ£Påù®¹S&SÒ²®ï¾Üýkû;Ö™il§°t„c©4£_°l¨t¼€Å(µœ8«|‡¿nqªb eŸâA2dÕK]ž‘FRã$´ R÷27¥*“„†Í±0Iµ%<Ÿ³„_¿» © ‘EÎÁ C·˜”k=ñ¤â8Lòxý;À‚ç4Œ2?y;v<Ä.å@¢íø8 +îšßy#sш+ Çïkè$#.Éûé+-ʘN¨«¯{Mm×,iF êC%=×b3#± Ëa›]\8A”k¸NW/Û„¿C@Þ=óozp5x-Øñq±m"òú¥p=ýú„@h­ékl¯ýíÄ8xò7ÃS£Nȳb^ðð72^>ðýËÇvè‰á<¬cл>|ËIT +bßö +s‰ºµi¬ S…«Åæÿ~Iendstream +endobj +1037 0 obj << +/Type /Page +/Contents 1038 0 R +/Resources 1036 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1013 0 R +/Annots [ 1039 0 R 1040 0 R ] +>> endobj +1039 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [233.257 524.072 239.719 536.111] +/Subtype /Link +/A << /S /GoTo /D (Hfootnote.2) >> +>> endobj +1040 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [210.419 331.97 216.881 344.01] +/Subtype /Link +/A << /S /GoTo /D (Hfootnote.3) >> +>> endobj +22 0 obj << +/D [1037 0 R /XYZ 63.034 509.882 null] +>> endobj +26 0 obj << +/D [1037 0 R /XYZ 63.034 208.823 null] +>> endobj +1041 0 obj << +/D [1037 0 R /XYZ 78.277 148.963 null] +>> endobj +1045 0 obj << +/D [1037 0 R /XYZ 78.277 129.994 null] +>> endobj +1036 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F10 1027 0 R /F11 674 0 R /F7 586 0 R /F47 596 0 R /F45 589 0 R /F20 1030 0 R /F19 1034 0 R /F22 1044 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1048 0 obj << +/Length 3028 +/Filter /FlateDecode +>> +stream +xÚ­YKsܸ¾ëW¨œCFU˜xðåª=hµëX›¬½‰•“×hHÍ0&‡³$Dzþ}ú€qäÚCÊUØh4€~~‘— ü“—¥¥J/³D‰¼(.7ÝEr¹…™¿_HDZv,ëˆçÇ»‹×o‹ËR”™¾¼{x.å®ú´2WŸï~yý653—,µÐ‰©Èpóîú·»Ÿ¯äêßWk­ÍJŠ«užç«Û÷wWk¤ªbõá§ÿà ~ßÝ~x"/~¾ G3:™Î¾{zÏó'ŽŸæF*£ÓõpªL¯&ØWóxƒçè Á¬¦õ‰Ùî¯Ö*g2Î7û +é*pãJÛniICÄyG·ú„‰Ç¶{wŒhí׫4[Ù¡Jt«~—Úìz\:¢,wà/¨C:H}@öýöª³–på4¥«Ö-±tõÙ' tÉ;Ú ? +Ø­fêÞ_xÛúÑf¢?2äpyñäVIH?Œü:¥¿Ó®x8Õßü†ýž%L;·×ˆ×eÂmÿ;o^b¤Z}¬¿†Ë¡"m˯P÷m{rO6éPÁã÷Èñ.‚ç.óp²X}‚)ù7«Ï<½müvHÝôû±©¼Úþ¾}bÎ@ž,ª¼7©¿d÷v"ëíÝŽ¤<„³2Ò@ ýPOÍƶglfÇ°ÁÈ''¶». ûm¡bëh +¼‰æ€ÖÐÁöLáË OÌØÒº ŽŸ êꤑ£ZÜ®é÷<;°8¬ˆ{ËsÁka|ìæ¥Û4Ý!¸SçÎ¥ÀAM´Öî¹÷òrA¢¤¥1 OAð–$ï–ÎVðqû£©(W;Ö>Ðàs|¿­[dñ( ¼š8Ù¸E$àÐ-™w_Wn5~T,a×£:Øfb¢—Z8Ú¶uéºCð“5Ýh®4«(¨¥ k{¯ÒIÊÁ©“ &h[ø¯gBdVà«šß©ëÁÅ9³€+oêÃ4bXétõö +L¦¦õ7 †©!´”—¸äEWœæzrÃþ ¯ ׺SÚYZûfxÂÙ©ß;—2Ly,I.&ósV +HÏ\6Þ]_©J1E9\i!µ¯- #%.2­É¡Ö‘ó4ú—ÉÕê`·5Ï¥¥¥i=9 Iã?CÝ‚oòlëŽ>¢×lÀR ðù“ì$()…¢ÜÈãȹ‡Óhã¼Í\nxl)y(ÏO)#ü8-ŽSÜ`ý¿è…ÂÖ+ç{FkeŒH³üüˆ…¨Ç>Ñ-±aT±ßâpâ4“›ÈJHãl‰ÐeÏhû‰ SÓmu‚,œ,ý?P™Í—v…xƒBw/ +â„ñÿMß¡ãÜ£¼b2A>“¨Õ?(Òì4ï-Sˆs”W¬‡Ñ¯rác,RvdéÖ­IM°º¢åvà ®8N'Q>ÇRÉê‘z!*;^àÊÎ231¼® +¡úFØ‘œ·t`e}Å\Î)bçñ‘Ç„iîB—6:sbDPÏÀò ªRˆŽÉ³¹Ä†,&¼Kã…û G«]¡[Þ-TvŒ‚K sßöpt÷ªCøã„ÎP‹MA"Ù¯§3¥u‹QÚÆÎÐi,Á²¦ÝâÞÜ­oç6[@— t’°úû¹ yìÀòÀú›ãÈÓÜÙ`no-y +U1îx˜p _ 3|Ë\쌮ö0ϳ½šîûP:î5¸”†žE"‡?… *Ç/n8}!ºñh ¸g´Å“ˆ¾âêØ·5:¤I¨öG[ñõF·Á8QN}⯠^cŒÿ³A °Íº—àد––½âœ™_f¢Ì ¥×j ¹Ô"“iüH¥Õ\¨kf9XJAþ +p£VÞ/ $­1$,¸–+¤†ŠÒ†ãÂ)¨fŠ9ª!s@zôIƒ²µ‰KOËâ b/;D‡ÙNîªpñ<¾lº¸,D tFöR‘æÄÞ=ŒÎ êÎ9)÷”õž?ðȶâ|3Õ|ÝÚ}s†ƒÐá ¾_<±¼Š£ëµ:|ßíÜî`~°½q¶ÿ•Nºã)jÚïIŃÖ¼f‚^©yÑ)º"Ým ¨ÌG¹Î’7‘'íÖ¹û^Q&fš[Ù¶<8Îm7’©Kö©+‰'ÀS{ªn¬–¢Þ¾InÏUNýàßTH»ÜÑj|áØÏ9DaÜ;|áîkŒÓµòëÌ3ƒ]^L²´B¹JÃ.N^¯R׵ФZT™ëê¸(8mWÌõØb>"Ò1]k +‚¥MèšÚ¡ÁŒß¨!£ô{w@L2Ö75,ýËytù¾ª_98Êìfh¸Â2zWPõÈûЊQlÀ„.ÄñÄ]ˆvO$L¼á?¤zß6ŽkãHáw&¼Â>εMcÄw¶-Š°„_ +íÕÊ¥§,(>'ú jàÉ ¿#ɹKÄ(K.K‰«T|Æ.2µãڹţíü£n!—ø€G~zæ6ýüD=xTu|;Ø® p¾%Ä·=B~w®nÝßðü ã9WÏdòåüZ—'áð}Ž¡M†N§s‘†N'±ÏÒ°V‚çýDé +£Ý¿èÜ%O¼gH>#šYº».IW©0±püOº^ˆDrwt¹Åœ{u1çpPÙ ­áué9h+)£ŽQg"7¾c\ž%…JæÛØuÕlß´¤éjÜQ/ѲtW“ø£ª¹y þ†5žÙ^B¥¾Õú¶Ø¾Ehg@¢¢žíD¹6§rd2âTd%&aJ_š·Àcè÷ßË%É¢šgB©Ü1ÈåŒ0Yy9oñæÍ›+鉑Z”eæ¼°<’µ”‚7Ò±d¡½g2è=`¡Me³Is¤Bëœâºð¯‰„) ð õÊDü8¼6Yô–ÉØ)=>=ã •©|fÅø·»„ºjo"å¯q(‘) Ò䊸~[Þ¥@p­ØKÿ_!Úõ$Su9›Œl–PXÒG×ç½Úd +ØÊ¢üÓžÝ,åh¡å©'xÇ’2!3AÕfùÜAr"\ŽÏhjnnÑÐ7. +L"x¡×9ª²ˆ£†Á†.õyjÒ")Í‹¹̨BnÂNùÙï²î÷TÌpYYžûY6ͦ4óÇŧÏÉe¿\$BƒÁaœ » ÕÂÊ}·/þµüaZ"Š/ÊðË®J(y|T¸ +Z@ƒÅMw=`ðœ]N‚ó¯Ñ)Ø-¯ — ¯†äjëò/Ûé¼<žwôž8޼ƿ¯;Ëï‹zrø{?1vß rÅçrÑSHnYh|ôu*E†?\ƒUÜÁ|ïà·®a[ }M¸ýøëÆM(^ˆ§àƒ7À0ÙÒ%÷€¸„‰—¬ )#{Á¸k¥„>3©¹Ä¯hòRø¯endstream +endobj +1047 0 obj << +/Type /Page +/Contents 1048 0 R +/Resources 1046 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1013 0 R +/Annots [ 1049 0 R 1050 0 R 1051 0 R 1052 0 R 1060 0 R ] +>> endobj +1049 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [167.509 549.919 174.482 558.332] +/Subtype /Link +/A << /S /GoTo /D (cite.TAOCPV2) >> +>> endobj +1050 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [178.221 549.919 185.195 558.332] +/Subtype /Link +/A << /S /GoTo /D (cite.HAC) >> +>> endobj +1051 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [119.433 330.167 125.895 342.206] +/Subtype /Link +/A << /S /GoTo /D (Hfootnote.4) >> +>> endobj +1052 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [430.171 330.167 436.633 342.206] +/Subtype /Link +/A << /S /GoTo /D (Hfootnote.5) >> +>> endobj +1060 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 1] +/Rect [153.681 126.198 269.996 137.695] +/Subtype/Link/A<> +>> endobj +30 0 obj << +/D [1047 0 R /XYZ 91.925 227.826 null] +>> endobj +34 0 obj << +/D [1047 0 R /XYZ 91.925 200.338 null] +>> endobj +1059 0 obj << +/D [1047 0 R /XYZ 107.168 139.498 null] +>> endobj +1064 0 obj << +/D [1047 0 R /XYZ 107.168 129.994 null] +>> endobj +1046 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F45 589 0 R /F7 586 0 R /F47 596 0 R /F11 674 0 R /F10 1027 0 R /F13 1055 0 R /F14 1012 0 R /F1 1058 0 R /F20 1030 0 R /F19 1034 0 R /F55 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1069 0 obj << +/Length 3577 +/Filter /FlateDecode +>> +stream +xÚ½ZYãÆ~Ÿ_!ø%²¢Ù'ÉØyplo°~X'Ø ÄvŽ¨ÑБD-IíÌþûÔÕª««ëøªZj•À?µò&NŒ]ùDÇi–­¶Ç›dµ‡ž¿ß(±‘!›Ñ˜¿ÝÞ|ùÚÙUçÞ¬nï¯ÉÜ–?G*6ñz“¦iôÝ›wßþëÝZEïÞüøv½1ÆDß¼ýŽ_Þþx»Îà{Ùèv½Qùõö‡/_guc²8Õ9°ƒ„öß|Ûsh§Ö½¸‰0f¶‹l¶ —Ú8ÓžÖj‹ªF]u5?ïÖE;øðIÔÁ¦ä½÷¢¬ž˜{¥ºyÛÜ÷¿$ÊÎ6˜oZ”ÚW]Ëdë{Yÿše©ê´:n€Á»$í´Ž^£,ë†g잊ãù°{5gH9ídÁ§;YœåVzÿ +Ä´¶]¢(åq–xúÕŒ­N¥WÏgÛ8Ïô‹“3é5°¾,Ÿ®|œ§Vøtp¤ +ÄëXç’¥ãDëÕ0æeW_%]mŒJ‰ÜF©8w<¤Ù› Ü–þ‚ÀáXe;:qc#<(>‰ÝžF5< Èid*Ib£²^‚,³©0” ûí•Ç™Ø+7çX}cŸØP?äÏ ª z4VîäFýnnÌÿ›¹¤±6é˜Pk ®IipR¤*s±Ò¨M:VIJƒné¤SÜñ-‰~QÆñ¬Ï×^HY[«VÎ%qê-:˜÷7?ÿš¬JðF?ÜÀùçÙêÞ“Xåùêx£aS¹|nÞÝüsðVÖfDìÚ[)ëbkúåßÁ/|Á|·ÅáÀŒ7»û]ïäÊ ·àÏ-n§>žQ"QÝâjv'{§†íá²í.bØñøPmq½‡1™žƒ¢:µ"<ö\$åLƒüÄØJè­ØßiÇþNÛÁßa[ume8 êøùœ±߯`Œ÷Q!ÄÉöiÌaÿ©1th{ª°§h>2ñ²èŠ°Ìû Š¥¡é¥0YóóXœª3Jˆ&w¼ÙD¶É‘¤÷ßÖ UNÛ‚|@ˈWêÔC(tȸ•tnw\ÃÝÑAíš–‰͈0Î$bÛKËDKžÜáHð^ 7TéÉBÛ҂Р"ƒ s¯10CDoÈM6dmQtÍXƒpK؃Çig%Ýî©ãæ‚تàl.”La‹ûÏÍn[õ*‰ bëµ>¾#EV +iL´gÖj|«Ì¯œ‚`ŸgŸe­ÖfDìÚZM +2o†ÌÌ•ØoK1 †¥‚e} g«ÑÀj~öÐD³ýxZ›üx¬/-ª¶ÑO[N<°ÏþÆõ«îáÈ-(x‚‚œ™ð6œb˜éâ ¶ÛíŽý¢Â@IMByAú¹‚Ð Ò0–ƒû,é ­ÍˆØLú9HÐ_2–>KÛ¥&âþ°và9šª¸C_ +™ò:6ѬÊð]œÛË1¸ììMÇ[ÁÈ$ò4‡Šš?r[Iž£à¦F!ÖNŠ¦7¼%q7â?dCÄBÑr?{¼Ã!^°àoÐÞ xî[Û²€fBžðì=—ñ@Ué,€ðÖfP7Q†§â¸‹+Örg3äib«$¬¾¢Ü˜±ÀLÑñ[%Ïö¡FqJÙ ÛáRt#¶k ò9$>_ôcýøÄÃHgÓ—ÆOô)U·;b˜µK +žcR¢=ÈqwØ¡åeYïNixЮkŠÆ@z·Õi?&ŸB„®(<Û®÷}íB´9tPh· éãƒÄ>l)øÑ•,øŽ†;ppZ{Êo¾à6÷ð%¶Œ„/+‘{ÈÑà;ééeaYŠýÙïܨ VÌ »½rZ°#öæ@9n#¨ÖnCb×þ¢åîcÝìøm/[VQx€©‹ÂLEû<ÒKⶩě•Ü^P¿™Ækv5 ‡l“¨9â&Ò(‚¹4tÓ5‡`(‹õ‚Äȉ& 8™eØÀ®öEŽŸôN3â˜ÉcEö΄qøµÀƒ-©Ô §“O'7ÕJ?ì6açÍjeÖ²äR$1x@ +a;F"b¯Å4Ù+Ý~2ã,«}tAÜmú¼ŒÐòˆBžõy‚¬KníxÛøºœj­b¯³• ª?/ ¤6­kˆ¥µ…ä: «„ʼnn3ì¦ +*DâÄžrØÉ©élëÓ¶ûIvܛđs±­V ß+pÌfñ4§>ì•2\`Qþ—æ÷v@f€cjA8M!i!aõ‰æ{¤QõŸås_ÆQ2e£À§`ºšRËT  –€i(—»vÞ(U?|\Ø`oza¥DÔšŸ3ÿÆ ÔØ$­twø% ½Á-¤=‹Øµ+ÔÈÑJTʈQ ÞÛšâ´—×d^ŸÌá-ê÷Ú.À³$vÊ÷uª-~͈ë=Á³Å²¿1q’‡Â'ÛÏAØ(øQâ1_‚(°e^ÁÖ«lƒ¹¢Òvü5˜ ’’‚˜ pŸNËUT#4/Jè…ZLË3IÎé™#5òw{ùZµr jÁ‹²V±JQcÝëk~\‹zT"†ü^;E5bÿLýÜÆSÃa^ªxÍ×RAYR3Sèƒ>ñ—ï{²4 x¡~Iâ{SÒ™ŽÖN<J!“„ž?FFj2ß×YÇΊoØ8ðÇ^Z¯¬JÈôÌ´¦¶ƒö+¼¸•„ zï)”碜ô{ çjã,q£Òÿy![KÒIéÿžË™×ùU„µè+`Þ§ÞÕu…ö~z«eõøp½%ŒÏÑǯEnN°ð7 A@'rañbrׂ¿‚læ›JñM÷ÛšKÜ”ôÞC¢êÅ8)…Š’VèØá„ÆSÉ£Û ÚA‡™z• ×ÆÙ»8§‰›ÂûF0{&y&U½!¼VKŽ€ß]CùÚ–q5QxòfÏ,ß=û4ŠEJEïȶŸq]‡à Åg*]’h„ô¶>Wwé(` ñžâûõ‚Wyµsä’’³PD AE¬Ùie_ûÛÒ¥ÓR:h]ÊtLT†yÅëÝ×r Yì5ÊŸø!s‡„×,Öï¥PZ8½ià'*b<ƒw£ª+Q bÇæ-Ÿu9\aST Rt?Rä; ìi˜¸ì{YÂê¼axÙ=öt™`9âóˆ¢ñnÂ'ÝëJ²>Æ€ð¹áuÃg‚•BGê£7¡e¥rºªWMEi'&')¹…c¦Æ…?$¡ŠMï>òÁ2mžFßÖ\.¸«©©RPxÇô3žÃ9³ø¬¦¿JÉ=J LË}Š½oÁ†'õ8‰GÂTìÌñΆƒ, +EhAè™{ü)D·Iþ¼AØ$]rN&€Ñg±qŸ÷»!µhÍ~6à(¬« ¿ˆiJ¼ô~tIü’Ú$»Š!aĺ㥡•´PÂ8ÇXŒS3ýÙÑÌ9Ê‹é÷<œÿ¶„YüjÀö‹Ëïhõz`}ÆÖqb¯§w@¿-$¾çôOXC‚Ü`¡m*WÛžï°ás·ñsnxØÊ%\ÎP‹„aaø? 2Ëlœ|®È2€y3™ù¼—™ü&›e–z¢É!+Ée dyý‚™&ÿÔ/Ç_‰´ÕþDU¨L~ ˆ­üœnŸS's¸;݈ +#\|£R>ÜåÁwàë´°n²þ4cD‹/ãtÏäŸXSr×@¾‘ËŽsSk¼qYøý +í8nZ²¥•r.ê^äŽ[zü•óE¡cŒz 5V> endobj +1070 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [363.252 525.857 385.724 534.768] +/Subtype /Link +/A << /S /GoTo /D (subsection.3.2.1) >> +>> endobj +38 0 obj << +/D [1068 0 R /XYZ 63.034 330.843 null] +>> endobj +1067 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F11 674 0 R /F7 586 0 R /F14 1012 0 R /F45 589 0 R /F47 596 0 R /F10 1027 0 R /F42 1073 0 R /F48 601 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1076 0 obj << +/Length 3034 +/Filter /FlateDecode +>> +stream +xÚ­ZYãÆ~Ÿ_¡G +XÑ}²ÙAòà8»‰Ä›Äìƒí‰ÒÐÖ1!©Ÿ:º›”HÍ8@°ÀŠì£Ø¬ã«¯Š#þÉ…—¹WvQ•»²\¬wb±ƒ™?ßÉ°b–¬Fkþx÷Õ‡rás_èÅýöZÊýæǬXþ|ÿÝW¬VI¯s-4HÅßüåë¿ß¿_ÊìŸË•Ö&“ùråœË¾ýþ~¹ÂQUfÿô/Xð Þßûñ{y÷þ>Íh›ºxõôqÍo8¾u&/UA§ëšãn_/W¦ðÙS ‡¨ñë¦kNGý¼´EVµ ÌUqiÕâ…Y{ÎGøo«¾ÞðŠþÄ¿? i`¶ç»g\„¢údžä—p5÷ø¸.žâ´ æ:6-UV^ÍZz¥ékh­³ ž¿¯Ø=*ýFž–+¸ªs#MîY*×`O”õaYšìÔÂ*çYæ—êð÷tó·û¬Ù²H9èºp¹òÁH´bdŒlQ†À”™Á‚ºE‘{gp¡¹q~¡óBò ª‰,x––T|â¤F62=µõ•zqtCªÁ+V êÅá «Rd‡ŠÕEóm :zû#÷<v³³ìÏlÜ fF݂ʼô*XŠ¯ ë\‘µÕq.ƒ +ä(¤¬È½°IÊL.Ene–|AI.ûýDSp +ï\X%§Êæ…¨H>¢žH098 ëš—¸ìù± ~ïPñzÝéü0š˜z§r6éßNô[YÉvÞ6>ó¤{ñ®/b¤¡¨p|Z—¨~X¿ w3(t^–þM x9²@iç,às™ÿ7XÀ¾m@TcËì¯u?=”²¹RÑ-ª™(”b…pd¥Y ¤‘ÍT¢t×Ñ…fbQJ)Ñø ä¡£%Ãuu4ÎÕŸñ¿\E.M<‡ã +@ýʸ±+ö;*ØÏîÉÞ hï}¸ÁLòÕùáæñ½ç ‰Á[í÷<òÀ@ÊÒž)[ô}ðPZPu3¶)$(+ª=u:—;_&Ÿ3bÆçtnŒ¿4ï•„b äTøGZñ0ã"9+D8çzI ²¤úÜÖM°9¡ÊÒr9«a‘‘?œHwçuÏã× +¤`…MŒ™öh¯³Ï(É»¼0ö5=)poêYõªž•yKÏ)fb +Ì¢¯Z›}tÔë>bÊ"…U-Þ7ä¨ã}Õò̺"¥ÕïØ* +ùPi/¬2£š•ÈU +×õL0[7‚ v’˜¥•C¥››aá}´|U¬»«¾·Ž1ZhÆýS×ó]B„ݱ ¤Š)àˆ§À„ó 5»&lAÒ„¿1Ïâ +òÃàqÖa'ƒÏyOïC»Ž§ ŸÖ³V Ÿë²˜I%:«øg`fÄ´n± +xAÆRÆá V–Û…1¾mÏÈôspìW(ùš« í]L #FÀíýl,iÆzƵ”ÉiÖ¸ETø›RˆŸCØÈ…`BI 3MÿÁ»Ie³¯ñõvh©¶!ÿ? “cL<ñ¾ãÛê¸á‹4 +sÝÌ+­0åjEúÄâ˜|›H¾AÒ~wBS5ä+döÂÉjÝ6U=X°‹ö,â*ÛÐò°¤Â»d3òi®L¨ì€møÐŽ½}¨jƒ¤Óv†ç×pÖƒ¿,&éøØ)L]R0œ™ñɲ`?ƒYJŒ›f¥ Dd!0"ƒC£Øãþ…7Ô_Ö$$*†Gñè—! ®Úó´RaÞB+LÁUÑc< +2ö†^qù#qÁÏËp‹ +ooŽ„ø8ºáQ:§k¸!˜€ßë@ÁPë\Õ¢Š¹´ja„ͦ2ó?w?þ,¨I¿»¹†Œý ×"—Þ/w*÷Èén÷ÃÝ?†š5ÊZ„]׬@µridz^€¢NDkL©Á@Q•›¦ë›ã@W@d˜jº ¤"yb~íSÛW‰R{üNYµ|Ê 7ÂkP!<-ê_y•»¨w¼«Æ{ÚÄåArt·¦ŽKöáä¨ö>ÃQNìõx¹>ù°uÛ͸2& Ì߆ëCÅ9µ"®a²÷Tè.‰´`¸v׊·ÁEÒî™].”¯N ‹°|Š›¬kRJZ/Á ¿’—÷h]ëÉL €–:ýÖ£ãFÀb@ Ó[àj-bÏq –èÄ‚£(‚V鎖¶<Ž6¡tkwé)¤¶ñ2Ï*0s]@Ýng ^̪oœº@,fÚoÙÓ­–CCB*6$"¬Žû3H $^«W˜IV²3EDqÌk¿›lV#–í¦Ïož#C…³c2Td6¼íè–‡†ÃŽÌoÝÏyY Hù熬žu²2>êeNœ “œŒÑÂù¼¸$÷è,êëÄĵ¨;¶¡œg FuXÒ0}£Ý; l$ê…¡zëxOt/D©Ûb⪒W¦g'ïÉ-è³”ƒ÷Ì$Ó/ÕȇfüÇÈÜ9™4<ç>îu÷Q¯ºOêÉÌ»OÜ\ÏÕÛÞŽûh.+0-ÈۜКD•÷¨ t#ð­çÇúÈWƒC]ð<ŧN‚§…a +— >às¢·`„—>™“ìiσM mZê"âDƬ."幡ÜGG÷î2y:†änM–2¸$ÜžÚO0Ê™˜?kò7ÜITáspŠnÕòÍ¢0*ÜŽ0°7º¡ðŽÑrÆTYä¢ð7U;† R¤&\€Žõõ¼ÁcQ/sqYé=7T7—~Ûžì\ªQ 7PB÷i&5'Æ€)°“óÿÀËù7Té ÿG¼,!£«^BÞQü[æ¼ÁÛ5›Ðë;¡Í¼È>±ã—\€Á6`– ÷9(‡©«[ôÇèš› "¬¬‚{£3¥¹HzÛ´ÈÇbÏ™*ÅX?¦jïº!è4v½ÒƒºÇœT&/l¹P˜posR…X6ÇI£¬ÕHqÒщÒó 6åž| S%œÚè"¶ä¹~%–¥õµÚµ‰a8ÔÉ 3 f%\ÚåK®.¡"/r€¼ðÑÂ&làD²ŽÅÔ `ãU¦zÇ°¥gðŠôdS>ht.]ÌÕ¿ü2×)²Ú¤6òô[äãëíã\¹Ò©cÇ0GµÏÆܧ6C¦/s›|—U‰ö¹@izôýB3Ts…«Üð8¢†*¨c‡¦ãmÍ‘‡Ç¢n=´êÃ÷‚AÚx[sE\¹:RAZ‡X*€ô\†¿$3šE»ÄL+•žLþ€vÓ4e®ÇÈ…Ÿ¼ô|“¤¢&oT/6T/Ÿ–Xx-IÃ85BÞÿ$¤†*î6È=©«¨2;ÔU‚¢¶æ1"WxQƒ¼‚[õqýƒ¤}ï†U]øŽ˜"[fõ†')ÄwØÈ¡ÖJ“£à/6 ‡}Üj½½¡zo¢¶ß +G>òÄ*‚é”Ì|‹KžÁÞ@BmU8G\Ù½t±^¦x˜Ž¾çõ ÃWñ\I– jiÙsËPlpo¼¦Ýq’ålê–ˆ‘Lià÷ªå!’çO_¾c"ëSx±ë¬b/åè£jñÚg&›>3•àµêSGRñÏu +†ÆêR'¢Ú +¥QŒÜÖ¤^Û¾Y‡€§-Ôé£ǘlâL¾C˜úU¥2ÓxÃúŠÔ +ë«_£Jñ.²PÞ¥:Ä™&]…ë¢H_ÓVÀ)âÇOÜ4áwLÌøø ˆ{Íx²ö«ñ_ø«¡Ã³Ι=ÿ짖ôPÚ4ÛXèøñScÓ(}Oª¨”zקc×€Sr'.P©+ +þ´»ø²ÓÌ_h(sðóè›äDjÔAÍÓ“øG*Ryªe#;QàÙ»’™«Î…@UüÑfäÞÒC½å¹·Ä¿Py)™V½ÿë¤ú©gFÿL­&¶ðn¨4÷ ƒaÏMƒí.l gÉÛj‘ø…i^++‘XȹI TÁMþÅŠ™ùendstream +endobj +1075 0 obj << +/Type /Page +/Contents 1076 0 R +/Resources 1074 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1013 0 R +/Annots [ 1077 0 R ] +>> endobj +1077 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [133.239 160.671 139.701 172.71] +/Subtype /Link +/A << /S /GoTo /D (Hfootnote.6) >> +>> endobj +42 0 obj << +/D [1075 0 R /XYZ 91.925 461.19 null] +>> endobj +46 0 obj << +/D [1075 0 R /XYZ 91.925 376.188 null] +>> endobj +50 0 obj << +/D [1075 0 R /XYZ 91.925 218.502 null] +>> endobj +1078 0 obj << +/D [1075 0 R /XYZ 107.168 129.994 null] +>> endobj +1074 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F11 674 0 R /F7 586 0 R /F14 1012 0 R /F47 596 0 R /F20 1030 0 R /F19 1034 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1081 0 obj << +/Length 2940 +/Filter /FlateDecode +>> +stream +xÚÍZKÜƾï¯ä4‹xhöƒ¯£cH‰}1b-à²Üî ³3äˆäjµúõ©¯ªšä<Öv1hšÕÅîªêz|]\³ˆéŸY¤.Š_¤±²<_¬7ñbK3¿1ʱR–ÕŒçow7ß¾Mü¢ˆŠÔ-îΗ¹Û¼_šÈG·«,Ë–oþõæÖ,¾µÙòûÞÑðÍ»Ûw?~û6Ÿp.2[ÐŽx7ÃüÍ›»Q§Qæ“ß”3ð\:Û&Ë¢"ËIæ£Ü¦¼j·+³¬nWÎ$ËrO”mÛÕÃŽ‡^¨»òÖæËOøOùú}½ÝáyÀ³_–bÿt›Ð +4hx¦ÜVX¹Ž&%:¥ðÌÓÝ*_²|ÞÕkpí„©É ¾±?‘yÝ6+Øl±2>*<–1Q‘$¬a?”" ­c½[>ãÅš¶Ûï…ÐÀƒŒïé‡UÄCWf2o„X³v< Ò[ïu‘r¨[Œèè=Iùö6w˶‡5?—‡#¶æ‡oh"É^"FÛJ速pC}ÄY„^( iè“–äw™c-»êã&»ªï2fæ^äIªÞõÓ…÷eQž…Ù_ã$¾²q$ÊÑÈt¶HÉ™[¬&ÚÅ@yK§Aš¶Ý#ž Ž^­ƒ¹R~úO%Ü£n¶Â]Áשw]ˆk\Y +ÿRáx®Rœ‘F…usSR¤ÈhTØ„8â8ë<³ +ÙŒDXM,½Ü&ŒIçvG½¥0µÖ/’ÄFq^  ?Þ¼ÿ/6ý?ÞÄ‘+òÅ3ãÈÅâpcŠ(§´$û›w7ÿœÒCXl5[ÓÃLb›ÛȤé"ñiäRûÊY’Ó™8'õ¼K_;L‰k–?4rdB$ˆ²Ûá¸]á’еÎFö4t› Aµr©§ˆ#÷Ö¸OÝïi¿‘YoÆIe|Ìk_ÖÊ5´BnžN—=”¿RÊ€ìW”4 +NnÄKï\8™õqäû£ÊÿVTå¿TiqUd÷ÄË´0ͳækÒ.e—YŠ¤ÑœjûÔÒ*öÄø”T9mVŸa/Ûú¥µñŽV¤gof|HR;ÎÚô~›v>« HRëõ© +iZÅøPn‘Oëáiˆ*ï?1rZ>âÝñ¹¦%Ôo¸Š§œŠôºGYIŠ¹ËÄ\’JR¶“Çž²óæµnù]/´râ”\$9;¼0­/2éXdÇr=´®¦¥ÃQ5?£µØãQÕ¯±qm7œh'‡ÆJÓ)Q )CµvT¡¶÷rb´x'Î~¯ \°qÅ…¡jÖ:Áã(#ïà2YR6dMì/·¹§Ð‡\c%ö‘ÉX¶»thŸ¶;þAŵ‰x“µ©l΢­ŸúžB¾ºˆÙÕü’Ò~5ÎÏ*-³¯>ξïÿ"ld 1>ÆxçÍê`lÆên²âœÄTžaÄ&‡WÁÅ$pȉ +“v£ГT¬,Ü …³‘I§° ñº=÷ÕçzO">xÖ(Üâ“€³ñI\Ãù7cÅŽ¢7ŸÑ0ß4¡°Rl5Ô‡êŠ7M BЖâ(eû·8l ¤A7ˆ˜ƒl +¯úæJi¶¨œ8iä´kË‘‹“¯‹hfïsî_¿*%ÿäÿšû/’{n—Q„ò{Ed›DÎæ_WæSÌt"ôã¡‹Ø^Â@¸O‰Èp™»ˆvÐă[öæ¾Ö„%u+¡cðö•´Eq–„6ìÊAF’.1šÐ@,DÊ×ëñvÒ­nÂ"š¯ðŠÒeØï7¼½§Ò,:[¶ÕìÂuAWaŒr…­~&"ò€^»´„ŸTâ#šûž4 |Z͈°Ÿ”½òHà ¹rPÉ%v1 ¹ÿEHì1–ÒŸ¥»€XâN{Ú3`Æùe„ÓF¤)uëmÖ.kµh|råXù"]v%ß°q¯Ä#£ù"€Âƒ²ÛVƒp ”eR4ØånûÀq$ ×_Ê€ ¥†ÂÍÚ˜¯Ð +@‰$¼žÁ—_Ë„ ·`ðYZ”9îñ¿¶䈰ž‰Iüß>Õ˜†¦Ù„60-¯Ãù:}صÇr;ö˜üÀäƒ< áõºiæ=œC«~᧺ýYîKP¢€›ªd§Õáµìš¥Q_7»¾Ž=TÀ)ÑrîmÌ"²zd Häë“ƈ÷SÆ! txUj¯œ²øõ,“F©ËOΓï¼f­0ñ²!â"Ÿ'³#Ê~ÖDÂADŠgçSð$à]WÞGi!¡my”]ýeTÏ…#sîÌ„Ñù×:ýc³ÈþÚ'úxa£¤0à;!\ŸÛëòÂß#[DÁéðÏÆü6ç+…¾MIG Ùα¶)øÁÚ½åÆiaãôâµï£$UŒ‹Å~Í©×}O‡oÝNÿ4ź¤ò‚tK]QCÇášíLFˆþºéVÖF.5×&wQfð4›ü½ºDìendstream +endobj +1080 0 obj << +/Type /Page +/Contents 1081 0 R +/Resources 1079 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1089 0 R +/Annots [ 1085 0 R 1086 0 R 1087 0 R ] +>> endobj +1085 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [95.523 365.045 101.985 375.147] +/Subtype /Link +/A << /S /GoTo /D (Hfootnote.7) >> +>> endobj +1086 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [201.789 182.38 208.763 190.793] +/Subtype /Link +/A << /S /GoTo /D (cite.TAOCPV2) >> +>> endobj +1087 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [338.742 170.425 345.716 178.837] +/Subtype /Link +/A << /S /GoTo /D (cite.TAOCPV2) >> +>> endobj +54 0 obj << +/D [1080 0 R /XYZ 63.034 341.492 null] +>> endobj +1088 0 obj << +/D [1080 0 R /XYZ 78.277 129.994 null] +>> endobj +1079 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F11 674 0 R /F7 586 0 R /F10 1027 0 R /F6 1084 0 R /F14 1012 0 R /F47 596 0 R /F20 1030 0 R /F19 1034 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1092 0 obj << +/Length 2050 +/Filter /FlateDecode +>> +stream +xÚµYÉ’Û6½û+täTE´¸SÇ,vâbW"Ÿœ0"%1æ"ƒÔ(ó÷é HQãT%©©biÝýz¬6𬶿 “Uº ý,ÏWûæÕfu„™_B±’µCóÝîÕë·ùjëoÓhµ;ÌwÙŸ¼üáÝϯß&ñHl#?ÚD°+|ÿÓ·voïׇuÅ^à?¬³,óÞý²{Xãh˜{ïøßc÷îý/¸å«7;ËZ%~¥/roh^b?B?³U’¥~wŸ‚?àÔ`»õ¾m‘¿È+‘ Õ?sבּî±.æ~8A_ <Ù#)t—ºÀ¡ÐëÚZVê3ŠVJïTò¸Q˜–fÅŸFµíl¦; FVaèLj +IBì7U‹‡\`Á@+z9®ãÓú®~".@éq{‰e$Wµa´Ú0óÜåm'òö´EWê'+Rì5° +·ÚcãÄ ö]s¾ 3þ‡ +(IÍDæU´99%ð|¢_ÉÃÈßþ à&bñi=“Yô±jIM±ß¡¸´v°È±qþ Ó—¡Ô÷àªF”‡‘Àêø6ÖZ¾àx¥gl²G­ŒØåæ£;W l"-[*¨ý k/ŽÒ¤=*t Æ$²˜ˆ‰ iåžcéˆ5„‹.Dèèîþ×DÔç1À}Em‡˜­]=U/‚wƒOJ8¯dú³EæÀê篙π ÂáædËoÏÖ©gî¢_¾(G»Çús#x…[¶·ØD‚)hmyµA¦ÓÂãàjp½]#tÆöCõäÄ-£%ñd@%%«ñ¾!Äÿ·!T¤•»{¨Ø®]ÏQMw…Þñѹ  $À“ÉJ Ž÷Í$ÄÛ@FA¹êZ7"ö§jfתæ¬z²cÚg0ªrqgk£?UÇÓ,à6ª¬žŸ§HNÙD&!T$‰÷g¹§óÌ-ô}€“ÀKèÕVœ€ž“}ˆÒµÊóÐÏ7PZ„(ªß7Aº¿Ô2q@ØmB½qÛ‘ÿVö„—“æo–ÂdlñuöÎgcµ#ÐÛxšº„ûA“ °ÑÞºµ“SêÒ²„R©o`]ü(.,¦×_,ÂÖes?Ž·„hœdtÜ›¾7á&§DRI +R'ö£DAƉ¾öTh±îeÂbϜԲLä\(›MáÒ)L¹ :½Qž£ ž¡À†ƒØkÈ:Ú ÉÄþ6Ž§9زœ‚3«¢Dk o¯Zn(ë{Wk™Bóó{µÇáϬ›Ü—Nì.÷Ùøä¶ÄrC…ÄQ6çƒûIx€q²Ù Æ$PõU+Ô¶¼.ÕMÖë1è籇…õvãíF‹Œ'¡Ô%Ž,°ýÅÅÝaÔ«#2øíKYQð›s4Á¥¦0‹Ã•¬»P~+Á,8ŒiÀ_èƒkfq‘™á׈Šm–mŒ‡ œ›=iˆ‚mS÷·l„í«£U®ì0µ>ì”ìoÏLòH ñ ‡mÕ¥©Fä¸Ѧ•Z4ƨúØi¶ ¯ÔpUsÓ¡$ಘF.…XëI7Ó^@ææ-A~â)éYÎpdù‡iWùc¸ÔÍQÈ2A(›ÑÙi!ˉÍQãxˆƒm…´é̈G|“¼jiëÎyÊùªã§`mÅLΟd¯8~Pi4ùvŠÂs¢èÐï…ÄØmƒB}Ã䳩Ü1èî—)¨©L€ ô}ºuB¡¹¢¥Ø2Œ†¸)ïù~wÄ/ + ¤DÁû™ó ('ÍSˆ n!Û0åTXˆ1 1kh©ÚÝ®œ!RœÂƒŸeͽ["žSŒ‰€ÕÌÁµE;òçÅ@G>BæpšyøX§S%3 +ãeúé!I¥J™B,+Z¸äÎë&’gšÏXTQ*ù0M˸¹ åpâYã5w¹ˆÆ<¦’ +á;†è8 µ••ÙcRáæ=ÇFÅGšàÌ=¹{ÝÏ·h‰¦ÎÉóiœ{'´³MŽ¹ÇÌß¾q䙩usôéÞ”›0^WüXBŽ³ü‘cF +¤\»òÀ`N˜¸0žˆbb©X¦=¬ébÂü³Ñö‡-BÔqŽ%6 š(ÿx*;VS˜YÛ$&ú:w­äçTU÷<ŒÖ79àNµ4rQ©„'ŠƲ½‡¼S¶·Kùh®'êL•ü:|&††l¸a˜?aJUÜAl'êi‡$¦rÀõNPÇ)Jó¡c¶4hö>ÑÊ¢4Èãþ73ê²V"Åï=…øT"϶þ…ð0sì`©,ÑÚo–ºZ³{øœ×?X€:[†Âò«}ä>¥&%{ï;mCú~à»nx›ƒyØÑý­Ä³ÔºxKî˘õärú²Å¯dÿÉõЭ0äÔv¬íâËûƒ}¨Dýl²eÀP%PlÜË •<0‡ÞĹÔà=Eårߥ—0­ŽpÎýçØI|]0”j—o;ž_¸ËûIÄïÏÓ7‘B+áŸÊË$¦óv_Ú×°;~àÏB_.¶‰…Û¥¢8ò³{ÎäߪBOTendstream +endobj +1091 0 obj << +/Type /Page +/Contents 1092 0 R +/Resources 1090 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1089 0 R +>> endobj +1090 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1095 0 obj << +/Length 1618 +/Filter /FlateDecode +>> +stream +xÚuÉrÛ6ô®¯à‘š‰X\qê$šÖM&nÚZ™’ ‰–0& •¤"»_ß·‘’mex ððv¼ *ˆáSAžDq’y¬£¢,ƒM3‹ƒœÜÌ”`$i +wWiœGEš‹ ïV³_~O‹@ÇQž'Áê~”’•E¬¶_ÃåÞ†ùB…U7_$Eêù÷Õ¦KStq°Èâ(NS"yßÎsvHè.·ÇÍàä[d“ѱGVH¬Aè„Äi½š›$ô ,oí°Ÿ$ª4JÒ|”XF±JˆHb¤@˜ÒYøeoç(žÄ ·ž—²MÏle¾e`"Ãö£*:Ò™h²ÄÕ¼DMHEZÄ¡ëñ¯BËÛ{4³"1À¶[^øÃ|¡‹ÎZõþØþæ½™αFݳ?t¼l×;/ jÒ©³xøĈ§m†JP\;zU©Èdl «â»Á"} |“¬ßß}ÂE.#þ¿CyO¼¾Nâ>E/à¾!m;×e(Gà(€ |N¡}¡<‚¶ &>=sh½°"GyaL]Ëp–÷tÅÐ sÛV¬ÃÞŽ@QPBs8¢ÃH`LJ‡Ú"ÿ{ß5L·­ž]žÀd"{¡óþêN®¯˜÷Íó£»TØØÁmDÏÿ#Ç#û9]»­Ñ¼E’$áÎýÀ^/nQh ªÂ¢‰ˆÒÂ@î-”ŽTÉ,V{ä!†”[#²íˆcîmÏgk¶qŒP<ëŽNR²Çè>Öµ ÆÈÜ2mj·#°c ™€' /–£ÜËÌèÈó®Ý‰|Ž@qÒP5=Y¸˜LD/qerí˜Jhãq‹i€l4ŸÏ­{äì.‚<2E*ÕM™ ‰rÅ Ô«üO#(2‹3Æà–éð½G’>ÝÁò ËøâZ_0ôDê +:•0¶ÿq>AÿB€­`Aä– +ךŠ"ÂúÁO[û–ý‰§{Û!ð„•ÂrY ŸäÔíg·‡HX© d V*A‹±š"¼±œ®|ï^‚ OÞnÌ)¯6”“@R‹€Á˪Nxo«ÞíÚjËPŒrüOykÂ’UK1°Û_‰ø{Š!èd·­¡Ì°r:5Äÿë1jtevL3ÜŒSrÊÔh·˜5‡Úc¥õLNn+Ñm„,P¤9’Lb’zœ’äÊ›pÃ…ý\=¦e™Ý>½µ !§øãn±uÂóU¥×r¤Af8§9áµEÒÝÜ4tPhIÈDKžÀWK©uÜ@¹‹ÚÂ×4+àE´°Ä8¢Á@bj}n•ìÃd+n=ÿ=¥˜kÜÂfš)`mëgÃöÔk^›æšq¬R2­H]’bƒÁÇáÉQ,SÒQÍ”è‹qè° ã \^žÆáÝEÛ8Êtª/(‘\hÌY]Xod Æå å†l¸ÂÈ°}·¤˜f#÷) + ß=¹)¹QTXh‡®¡Õ¨ˆÖ7~fà’÷K‹Ü4¸t|ö-Îb©Ù9»UžAß1 Š¾YÕòU ÐI”*-8ÀG1Gjtð—4jöXæ¼ áoÿ¹åÏTä— J,ºtZQe›ý¶šÞ:òˆQº€vŸ^{ ÅŽ2£ðèßÙ×ïq°”³8'XÇ@i‚f¦’"JK-ûzv7ûûü¤90uxeÓ‹JÇA#G‰n( ¾êtI èêË©&‘°xêPðÓQ)Ï™·Tͳ#¦R\'!=ÂöÍšÌbÝÊÙ=ô C¯É_O… =óz×1¸«ú=Ì*|—QÁ ãvnGØ”(4ò˜%JôÔr ô?u¿‚éÄ\÷>v‡$WWª£WM%ÚLN}Zš.J0Ðaæ¥ãs÷Ìeô?®¼endstream +endobj +1094 0 obj << +/Type /Page +/Contents 1095 0 R +/Resources 1093 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1089 0 R +/Annots [ 1096 0 R ] +>> endobj +1096 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [125.228 276.742 131.69 288.781] +/Subtype /Link +/A << /S /GoTo /D (Hfootnote.8) >> +>> endobj +58 0 obj << +/D [1094 0 R /XYZ 63.034 584.788 null] +>> endobj +62 0 obj << +/D [1094 0 R /XYZ 63.034 380.094 null] +>> endobj +66 0 obj << +/D [1094 0 R /XYZ 63.034 225.868 null] +>> endobj +1097 0 obj << +/D [1094 0 R /XYZ 78.277 129.994 null] +>> endobj +1093 0 obj << +/Font << /F47 596 0 R /F8 580 0 R /F7 586 0 R /F45 589 0 R /F20 1030 0 R /F19 1034 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1100 0 obj << +/Length 2682 +/Filter /FlateDecode +>> +stream +xÚYK“Û6¾Ï¯˜ÚK¨ªC|mÇI&;“™µµÛˆ¢$n(Rá#òä×o¿RÙÚr•¢F£»¿nLxÀ¿ð>ý\Å÷I ü4Ëî‹Ã]p¿ÊOw¡p,…e9ãy¿ºûþÇì>÷óD߯¶—RV›Ï^,¾®~ùþÇ8šØ ðu˜Xäøðó»—ÕÇEèý¶XjyÊ_,Ó4õ~]-–8«2ïù‡}X=<ÿŠÚ[=óïãÃ{äX=?Áê§w‹ H?ãvwWNïHÇ~¢“ÿy4Ëóœ-N#?S iþï=ì[¢ +ü‰Ú–Ýb©´òŽð“ymßWëºü;|ÄÊÛW;\U¿2 -ú„IQÑ°Y¨Ü¦=Sã®íªWz¤‹0[,TêíY–éyÝ? :3ôãÚ0å€ZõPáXW´˜¡j› +›%–!œ1Žél}]m±Ù­ãÄ;UȹiQÒ‰§Êor@¤” R†Še=ö ­`Þ§–O¶kl°WæéÊÍhÕ!õxqâá‘ Ž-Ê“kØ/e›•²É±#•þĵ›rsv¾¥¡eo9Бíw+œmØ—L­«5YC’®Wö–ù¬>mF~E°£ö¥hǬ3j¨b°Üñ­¯)M‡N€óíq§?À…ÍhtÓG>·SÂÔÕ_¤ˆ0™ÜæÅSÒ³(š0³í ™Ê_]˜ªfIçZºƒM¦,êqcm[GQâÎE™÷îxå_r£Q”z/hßv‡zR‘‡%jöA¾~'<¦¦è†Q ø+É]›¾¬mðè\_Ü#þq¸z-9ƒâäåÚ‘\Šà8˜]S #ƒJ»å_‡:Uƒ7=¯@tj6–g’T´ zünd`wz‰œØgX–EÞ ˜Ò¤ë“AcUˆðqz´Š-{x2ZqСã@1 rô Öó2K·Ilä’rTÂ&oeYmƒ÷£]KÈ&Ó[Ë7¥Ü3@bsßÐaíH)$$Þl’,¯!Ñ)ïaSN9I¥3TN'ËMä~ߢÙëÍb ¹+dªh]"‹²f@Š­ß—7ê”v˜•“PÛdÖ¤GÚßÈ$%šõ¤bœqâß³ãr9¨ãô,û£Å9dk^ Å ŒÌ0t¦ª©ÊÊ=„àVv³ye¡ÍZ.ùÊ®g:W°f̺aŽ€þFtP^ÍàBŒE" Hƒ'¬˜…‚qMÖeH>¡:FD@ŠØð´1üùn&Ä-à·‘œßâÂ¥'Òa¢B– <Ó[<\S`aÛû7Ne5ŽÀ_z8<'Á¶wP/áÙ AIzÉ׬ +ÌZc òËó¸…á š{î2¯fñ{Ø›G˜GÑ¡j,ÕÙEÀ¨Xr©ÝÌ<ÌMšžKóGrËy$R½Ù¼†…3»=Ï\/…éhæR=ó=½<0ÅȧQ”¤çòÆ(¡“yuñãÀ‚:MN÷‹ÚkÌÁÖUHwå8ŽÑwãá¬YCÂÑHæ³=SJi{*¸¥?¢fɶrŽ )Ì4ÝßH {:1dy[­Jò?ÙÞ³;·í¤ +C$è Ëa—HhþÊ<+ »àÓÀ ?”Me}³ÏY‘‡1e»n–o¹CZDáŽ<¦î[±ñŒµN -3›ùJcWòO Sc éƒ@~ÍŸt·8臩Kqõ 59´úîòIj»ãÊí­žg‘¶aQY.…£¦åß’óÙëOÑ.·-z_m›f,¾„:Âجv¤Úhûµ¿± "¹Hþæncèyú:éãla8µqÓ)”6¢½èÌE³y³.ž¡Ù8ೆ_é¥ +`ûJÕ‹±”Åh{ªwØî=OîÝ«AÆWR,0Ú˜¸5ýÀ#tÀÚA½f”fØØÀÙ‡ê8›?ºw˜¢rÑx³N3’ y)Ùálч)+ %&8·T” ”ç½áoi`ÔU) öÏpp§ê²åÔ)8U5åHàøc¤˜9†'·öl'þ&}ÛÃáÒÏo–kJuÞŒP¼o ûœ$-«-.¥©Î£È—>&Åœ £ëØPg~†´¡òWo¨bï%| +2:PÌ5k:%þ\S#Š¹y¯š ®´ŸÙ[5_„Ï,y¡Âr(ÅM8Úy,Ù=Z+F@/_’;^™èᆲŽ8œ¤ðGŠZSn¯eí9’[ùoB-wÏ{®IRÚYAÏÊRàiú2ÑraÛ3o%¿­ô6TÛˆ¯*Ûl#Ãë¼7³líþÄÐv ÇuB‹Òè–~e¾ŽHO¥ð™X W\ŸqžÜ*‡°a:uæôedö'|Õ}Áqâ}£¯˜PYr@s1Í©À{|p|éW±ÓÃàY^šO ïÓ#Ëþ ã0ùÊ×oaj»Bz™›=ü\Tó„SñKá=fíÊŽ[cŸJÊ_yÜâH¢Ïq”» “K»î%7äjQhsóUîLÍdÆÂ(œ*näÊo"YJüëJ£³e +¿‘Ú7D[rØG¦YIÂ.: ¤Ž&Ù§j®[Õ „œÕOÀè^¹×KãY ÎùGn‚óöãXÏòþÎ’æséÅ!ù¼Ç˜¿•i_§ÉTߨìf…ª²È%xÛ5Äô¶À#îrb~įy,é´ÃH7ëZ8Ð/ŸYâžêÛ‘PÇE(¾2PŠEG£¥id'ÊpMo?J„®K+;hZþ•2yKŽØ¥‘óªÙÓ[3Cw^ E.ˆ”¶ô†J‘Pîæ…rÏb)û‡—ÖC +µ¶ÃpþŠbt~öÜíoöÎô 8+íp<‡dÛšFQî­\åD¥eÃk\Ùcn ê4êJ™3ôÄMª˜© –ªælÿä²{E²”¾(XöžÝÚüáOþڔǾVù­¿YéHûiˆ_3☣á”endstream +endobj +1099 0 obj << +/Type /Page +/Contents 1100 0 R +/Resources 1098 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1089 0 R +/Annots [ 1101 0 R 1102 0 R 1103 0 R 1104 0 R ] +>> endobj +1101 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [193.088 221.284 205.044 229.696] +/Subtype /Link +/A << /S /GoTo /D (cite.GMP) >> +>> endobj +1102 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [237.207 221.284 249.162 229.696] +/Subtype /Link +/A << /S /GoTo /D (cite.MPI) >> +>> endobj +1103 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [278.419 221.284 290.374 229.696] +/Subtype /Link +/A << /S /GoTo /D (cite.LIP) >> +>> endobj +1104 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [360.252 221.284 372.207 229.696] +/Subtype /Link +/A << /S /GoTo /D (cite.OPENSSL) >> +>> endobj +70 0 obj << +/D [1099 0 R /XYZ 91.925 287.062 null] +>> endobj +74 0 obj << +/D [1099 0 R /XYZ 91.925 177.894 null] +>> endobj +1098 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F45 589 0 R /F48 601 0 R /F47 596 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1111 0 obj << +/Length 2695 +/Filter /FlateDecode +>> +stream +xÚ•Y[oÛÈ~ϯ0öIb­FÝpžÚ¢í¦hN³gìÃî>Lì±%DW’›º¿þð6’Ûê¹p(’C~$'jÀ?µH"?ˆô" B?Ͳź¾ ;Øùx£„b%$«ÍÛÇ›_?Äz‘ûy-·¯Ùf@Ö õ6öÛ2Ì<[µûå +¯¯Múí,:k6e:åhÙ¯Q-Ûiâ …PÝÈh’ye³ so°HÊC&j·ü+‚ìJD>Ûýz(ÛfNžx=®·È¿[[´Xa¥”ŸÇ1éµnIå»xAò¨‡‚áÇ# ?pþ¢)oÇ„CË;Ï$…ÝËjgÖË0…Uš’QÈ\ 8lÞ C´ÈnS"oÛT²uE JöŸ`;%cÁ׬÷ö}RNi?×Z4ä›{D3‡y.eîÎÞð±ÈJ²€B‡yæ}.Ÿ—(Qß2s){&3xµ½c /¨¸E1qÖv;ƒú•?f®4(ðM”yÂn‹Vnäâˆ?³ÅO”ni 5Ôou¢ _a‹ì^ðÞ³€%²{Ó‘µQ¥ ζœ¯–°´>5¬ü(]MÓ—¢tr"_SUüž·‡b"EO§@:ò øEnt¿rœ)w¨;.û7mnañÐ8Å.ø*ìŽl¯‡’Ž »UGD 1ðŸGE 7^ï‘ceQ”#s<ùÃwïx¼m;>6ê‹ß³„Ȥc£­Iø¾gzuB?‹Û²“5´jùD7Ÿë….¥U‚FÒ*öjF Ë‹Yz Ó$àéÚàˆþÈBðêßA(•0`*5!™ +C?É” æÎUû:LžfáøÜ;V˜“]P°7ÿ»ÿ¦y¸GmÄ$nÏ¡Ðõ Š‚‹Hr@ôBœ¹”ͺB_ßXçÉaê« ;±„|£cäÔ±DƒO…V‰Ã+.CÔ·0Cã—åþ€ý·R¼žeƒ½-iS3ë  hÛt%]qMgv;¢EoGŠoË8A2ÂÌþÂ7øaܬÑ_G C5WQ’“……Ü1àG£ô,(JBËž÷úÚpÖÈj-!Ÿ©Œ0¶ß÷ô±¶±$ÃPR mnñTöZtâÔYbr5%%V» Æ©{ÆcãBÂð“Y·O%ûãLïvDzòt¼˜ÃऺãlÁ·à arr +¤î 6“л¸»åјlJ†‚W ´žßÚ—™ÑÞ ƒ…ˆ®Û4<9w(åá· œ™ Cs ¢_JrÃ(±BG›M-£y>\òm÷L?‹±5Š¹/ÇpGÇ·:Ìy̨0ÌÝ:bT€¥XŸãB)?UÑOqÁÕYq”ðW"Äq-±žÆ÷WØa”øJ«S #ZSFI¹èylø§3Î<Y‚Ž¼³¼»n«ÊžÆ;.S‘”óLÊžœAº*%u#唳°Û +”Á1o0e!Æ@Œ«9ˆ¿šsà/缡è**Gàò8ðoó8¸M²Œwä²l0hï¿í`g‘è¥`¯âÙTC^s#’g§X’ž‹}f­0Ï¡:È) Þ?ðÒ#ýRÄ Ù ­¬ÐuÍÌÈO|[IÒVÖ±1uú<»œçšE²;Ö¸¸G‰Ÿ*Â` æ:óx†ÖÝãoh‰ÍÑUeƒEPÒX²œ×´šÐdâ| u-®¢ƒº,“}æU³™‡&‰ˆ@FÜFµ°dEâkÈ}Æžâe¯ìêÂÕ§=–áÎa\á'Ÿ:ÃyÜÂç ÖéÂñØ"CȲ® Ã4Âÿ Ï+BcÌÞ!æÇÞȯÞS­²&M—P¹ÏeÌü(ˉç· uHM¨#Jöh]ãÂzÃf;ÌW¨Â3à‡Ê»ãqEì;,›øX#çû±£è,}KK +åso„Á”éY,•ö~§Úq¸ÔµÛ±¸BüËpå°£ú­xÅuŸGçtøù4ñîÅ®¸÷RRKÆê7n‹ì£KfdTª=Èw8ëS’Ý‘„¨Üã#ûÅÏÞrn3*a%e¯Û®³· +0EƒAẪãi£7÷=ó +…‘¬°rÀ5ÆhǶ«QD ®VÕm/nl\/ÇýaäxŸÇö9¦'ùÉÝKõTÈ€3*–0\Àt˜Ê¬ÌÛ›~ ×fÇgù ¤¦©_‰cåŒK´1£˜kÆnyPåŠWü~y¥Ü20YWe3]\…빸RŒvƒ)^âb=»á3óÞ ¦Ô²ÂÊY +k¡s'dÜ3lr=H¥ºy¢ì‹’‹9rà5¾ß *Î=¥wŽr؈mùÆç…âfVõ£ ó§$­Jÿ«¥!uø‘¼Ïw<8í¸h‰Œ¿døµß £Uâ‹9•"Èa†<¸°APƒ SòžméÐ3ìR~&ïÙÈ™özɈ'Ûî™»§î@¨± +AOäøÀ­äbJ¨é¥ÄC „ŒBR¿ézÌv;PfÇNREªÚýè 0vó ïSS‰<ÉØ]ùT]Áž¾h;¹m®¦ÝˆF¼ÃäuZÍ@¶Ùpµë  Ui3úÂt“[‘¥C0.*)Þ׃…¦š¨‘ #Ɇøþ¸§6¤Æÿ~¸–¤¿–9þ9Öia^|5 +%!†Ð½Øn0„ˆ¸Ó´\’àî˜Â`¼K¦©¬øH5smœcï*8œK +kxöÄ65CÿZÂKEǽq¯#c¥*¯TÙ`âVjsWyìäè¯Øp5ZÊë!ìϯ5c7eè]ÒÎz€D^2‡Ó/´Tá•5=¢0Øzr4Ö3®N° ÷|ƒ©}æ>$’öYOí3·Ï°ÙMÈ +Ë.Ý2dÐÆwô:ÙŽEŽ ¸…9=A]0·%~åÚ¸äœÏ@Q’Ü×w¹”i0t 5Z§Z¹Óa,@j`Yõ-/mídnœèØ%y»'©kv?øš\ÐAH.›!dDZÔÁÓ 9µû91{b­ÊÆ äùiåÒ=IÌF‚ˆe]þ0SMÀ°8çbÉ*~e}ÆËÍ9WL®÷"̶üË ̆ + aN{æMç¯+ù«‡¶Ò…*ÆyoùÚœîi½pïâ'u ß\¼;]¡@RºHü<ÕôЗf~ +ÃÈOT"w¡©OòÅj"ñ_ÿEþð¡ OâüÒßO‚EèóÎ×›¿þ  øtf‹¾ÊóE}£¢Ô×Y(óêæ›ßÏÿŒ¤¢Üwÿ‹ÊPØTû*L@”ÐÏ‚t®‘Ê)P±F*~@¢""y³Œ> endobj +1112 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [240.812 144.609 247.274 156.649] +/Subtype /Link +/A << /S /GoTo /D (Hfootnote.9) >> +>> endobj +78 0 obj << +/D [1110 0 R /XYZ 63.034 379.629 null] +>> endobj +82 0 obj << +/D [1110 0 R /XYZ 63.034 239.656 null] +>> endobj +1113 0 obj << +/D [1110 0 R /XYZ 78.277 139.458 null] +>> endobj +1109 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F11 674 0 R /F47 596 0 R /F7 586 0 R /F20 1030 0 R /F19 1034 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1116 0 obj << +/Length 1664 +/Filter /FlateDecode +>> +stream +xÚ•WKsÛF ¾çWhrZÍD K‘<&nâ¸ÇžFé¥é¢(‰ Eª|ÄN}ñ EÛrf2ž1X,Ï+oæÒŸ7K<'ñÃÙÒõ(ŽgÙá…;ÛÑÎå O%*²˜È¼]½xý>ž%N² f«íc-«Í_Æóç¯~ý>´'1ÏuÀ‹I-$.>¼¹]½›{æù"¬ñù"Š"sõi5_€ëÇææ·/««›OÌêF¾¯ÞBbusM§¯ßÌcÚú€ë^¼[vÛ t–Áò§® 2?óÍs—N¼LfadØ_²é‹5ݼÂÅõá:íödW¼41[,#“–‡ºí„–wsŸXpèÇD¤’íº!Þ&o”ÚÊ÷î*â]¿¡O.G¶´L[øÞ Ó3zŒLðFLè„èö +Á™-<ë$ÖÒ—Ò†ìIÉž4)løèú&í$ÊY}8öÄîÒ®¨aKZ–*’ßç ò&¯Úâ;Üʅ߉qßZ!™€Š þïU½n°Y³xØ—¸¡QýØã;"ÃW3£ÂMp¼,¢Š±Öš«ŠýsÕ3ÉÑÏ7»&…øÅ_ÍQµâÈ{®ùêv]PôýÄô‡—rfŒS1keƒJêÀR€‰hK9ÐV¡"Û´í8½´îöœ$º¦ÛçÂ⺢ˆ„k—?ðè|®b +fŸb +_ÛSzNzÐ5|½cíl© ±§&kÍ‘·:aM/+F‡ãsI¥(ê†K4äí`›†œÖ7’˼úL¼ÏÏ8·–îàÊãÜ–J¤‚íþ1g›f]Ý8‚/6š Z¶PéGN¬D€â™ÿ,Ùìù¡¹SqÕsîé¡t]”ÜfØÁQ¨A¥Åç3|éàEìÉs¸àÇ¡¹CÑÀzkÄ®(7 ,[Ýw²… +“ó²Òô=z©b•|ÓJc†3Ç2íus]ÎÙ¿è¬âHÿ§ëÕwXòÁÌT>mÊÅ™,å JÇFZ¯M‹>dw}Ƕ³±¹üôE˜B_¢p(F䢽¯nèj*à ê.­ãÅVGÅåºx{?p¬ç« éñQ¹ÚsëÑŠ›2O«v0ŽÁVwÊ¡=BBZíòVá2Žœ0Y>Ààž§A +"Ÿt¢PJ!&iæ­Óu ³ºúêz–X»¾IÓ8«´E〿-©ë°j'¼þ(ß”ÁI¯ý>C#}š®Çè¶ÀFßÒ¬¼Ï õOsJýê™+„•ÊMF˜z²ÔX¦ $Õá$ÕR©1*56÷/EŒ1Á.|D/©"UÑþôa—+º?äMÝ·ÂùV ˆÅR¯•Z-;ö1JÌ5FíSǪZúHâ'‰Âëš´—l4BrÛÑþõí•0ö:fWà˜šå2—H¨íꡯÈü0Ù׺ù6$ÕW¢^Š’qr „t=e{šTr5k¥U[TY.Ð8Aï¼’]LÔ‚‘š*Íf‹8ºù†¡svæ5pɯ +*imò{jð3Å'|®|!!—6Œ9°ºZNÁß^ÅØa,ƦçZO­ùöRŸøx±U¥R|Ͻk!' +%ðÈ?4CbÇÙ„õ9ІˆfÞOBÊ5÷ØG‘Ȇ)2>‚ ¼*F˜e} G‚€¥™Œên:L·òEBN3‚•üÊ u„‰÷5¢å¿< ­›pYZ~ö0)åÅ¿NȳôBÊäMÃiâ¿ž%†ŸÒŒ&8½‘Y•õCˆuÀyFÅQ%ÅnÏ*I¾>r#†Ñ÷7ÍFî{!õ!Út#¾ú„Aàßæn_d°a/$G8—f+'êJ_h øEÝõüÜ+…µUPÂz4´æ:K[¥äýxÞèÍ `ôíöú Ä:exß¡ú=kþÄ;•^°uÏROýl뾨ØcÙ³eÞ +±m +¬³°–§/gwxö‚|5”šJÿäÚ"¼qju"FÐAXVöcß ô+FgfQ ÉèÍ&äðè©õtJ@­vÔ+¼°…`Lõ–n¦¿ÜHÞé.~Ídu?<¿Ål¾ð݈~Îa›û¼P5‡12Ú‡®>Üɉnœ–^õü©ö'o{êd™µ +þcI‚èxVòr˜Dr„cÉ«1*˜ˆ5{LP&Ç?¢õ‡}:Ÿœû ØÀ‰> endobj +86 0 obj << +/D [1115 0 R /XYZ 91.925 511.127 null] +>> endobj +90 0 obj << +/D [1115 0 R /XYZ 91.925 369.208 null] +>> endobj +1114 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F47 596 0 R /F45 589 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1119 0 obj << +/Length 1886 +/Filter /FlateDecode +>> +stream +xÚ}XK“›F¾ëWpDU 8Ʃص)çòæäø0#ÍCyóëÓ_÷  ])åò2Ìô»{¾ny!ý‹¼ +B•x»0Ò,óÍ*ôNtòqY +•¨ ðvçp“„» M¶Þf!áýóê§IêÅa°Û)ïùè´$y$ùÖ{.¾ø¿”ú<®7‘oúõF¥;_­¿>ÿ&| IJÁz›m$±°|4 ×ô¿¢?í Œ[ÿ3vt?šb’%JvNB(«Te‘”(ÞúŸè¥Ú÷º‡Ô‘õ¢†ê0ˆ¨Ì˃\\ AdWå,è¹$[TD–ôrXÇ©ÿ;¡?vò¼B,ŸŽUK“0èv笎^.´?pŽXÖÂY“UìÒ‹¼wGy2eÂþ`Õxk½!õ…ݪk™µc†ª.äM/EÕ8±GÜP¼÷ð8Š‚|»cǪkA™‘Ì’“‡qæwýwyë.#ÞyS÷…x¦b’ gºF^ª1Xo•ûªÞ9?¾ÃYĶÉv{ăÞˆ|]wœq(®ÆÒm‚¬³ŠS_;6ºú‚Ú€åK‡¤Îzt#Eez2%!#†’x%$cϱ5rV¦…*.¿¿Â(1–ŠC" į~ù—¥"änîü§VƲ·!ïLU+峑Z¨QŒ ;h) ¡#o§5×ÒæŽ?ìzUWœTNK ÐS³†C× T2¿Ð£T™¢ð’ƒ¬|¬Î.z´Ïi0ÌX¹LI @¾ +s2®Ða¬ìÓY= ëöµìPN),Û<ò?¬éÊÇÒôM×›ww›3’ñ”6ϵTß k$TÌ“„Ôª`»KYíÏGf‘ R¦2¾„Y~öêÓ¡¤§}ƒÚÇzNsn#Ðh.Ò‚-¡]Æ/âž(s`B4Ñt+‹){x)ÌàJðÔ +Ä“ΓEY¥Ü7à:Ï bf$öJ’Ç AIYô¤ž´—Ó½Dp~ÔC)…ÇWZQ@à¨b Å’Dp—7›sm]\®°=–FÔâ.tPňilù¾­ŒÚVÎkÊÂ]£³‹t â-ÕÃnÌøÔ/î#,C7-Ð³É ä¶ü\âFÖMw#e?pÛT±›ÜÀÚ׊…þ˜ðlp-;èÐ…OHñ?͈!Šaâj€ +m®™j‘S^.И[•‹Rt¨âÌü8ó.[èC©¦ +· åÔõk#ÒºÖZ a³ýámDÊ'„[(Àl!¦¥™¦5ˆ/5ß!é7Ÿ¬YĤkØÄ8ÉЙ…4ª¸±%›{<úÃIöî÷cb<277Fíõ`îääØÁŽ ¬ðí5t!{|Ç—H<Í<±` +ùzéº6µl¸»}²‚3–g»º;½Èî$©Û®*¤ÁPdvþ7]'†0•ù|—O%@Z©tÎJ: *v›ùï„<ˆï …-›êŒÉYTé¤BËc`½v-PÑ$6/î0Â3µoâä ’@Ý.6'O·þ·ÇnêanÔ¨¿Œ¼;r ÄRŠS»›ŠIaBñx®ÂáR/.]=žäf£0”<5ÛQCH‡Æb§€í…±œûy€SA&ªÎ‹ÄƒFã$Š=wCÐåEúÏ:è{·ñD«zØþþ.TŽk–‘Pl¯%"„Õ“<†#/µ<^7öñ†éZÕèJæ‚îSÕÊûÕæWN“•CéÄé ß{a”×mg;))0V$íš{=qNª ŠµYŠÌFÊ“=â‹Ñ~Ÿ7Ó|¶»®eBPž€#­]HŒÝ +'Ú.øâÒgÏ6ijèƒ#esååa´Ýzê?¯{b[Ì#Rú‚]ôËEpùó„!î¦qaÐÚ†Wé•åœa(Âßf]˜6âîÒ85¾’þd?{´®[Ѥþž›{=}&¢ž"k²›Rí8<ÈÙá£4€c¶¬þ'fñ¦¥Çî¢Æ©›on|‰³¥/hT ‰}.¤o'ñž?]díÒ£=¸L¨Q¹Ïeö˜¿{7߈»Ž,ÜÇô”Nû(ž é½ùûÂn¹“üåÒõ"ŒÕý@É.òŒ¯Úh‹ú¹ó5½èi2eöÍ5ÒO< ?³–æwͼ´ýd[ðgíð@4;Jßì’|Â<µP;éò&ã7éoÎ0wõëóüŠ‚p—xQÛ8Ç/<¯¾| ½bz¿­Â@å™w¥uDyî5«8ȳܾիϫ?柋œ¬ÍBÿ\´ø¥…>‚p«&}ܵ1p-qÝÄäë<Ûb?c¿|ú˜×ÎØ_¢òm Dû›_´,Åf&ym`Ó2̜ة׊Üco5ý>ÒUendstream +endobj +1118 0 obj << +/Type /Page +/Contents 1119 0 R +/Resources 1117 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1120 0 R +>> endobj +94 0 obj << +/D [1118 0 R /XYZ 63.034 584.788 null] +>> endobj +98 0 obj << +/D [1118 0 R /XYZ 63.034 402.4 null] +>> endobj +1117 0 obj << +/Font << /F47 596 0 R /F8 580 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1124 0 obj << +/Length 1915 +/Filter /FlateDecode +>> +stream +xÚ­XYÛF~ׯà# DmöÁ+/ Ç×N6Y'¶€}püÀ9c^&©ÕxýÖÑMR#e Á`†ÍêêꪯNŽôBø‘^&E¦"/•HÒÔÛ7›Ð;Àλ´[˲]ñü°Û¼x›z™ÈbíížJÙŸ|i‚Ï»_¼ÌÂ&“X„ab‘ãÕ?_þ²{HÿC°ÕÚøZÛ$Iüwov»»¿C¢ö?î‚Ôø/?©öwo^£Ì͛ݬœÑ‘ˆuü¬þŽçO%F¤*&õî‚­‚K«¦¯Ë¦ ¶Òo•úSYðFÓ?UF&R(8í¤À=_7Ÿ>‡^Jý¸ …ÎRï ëPÈ,óšYšÙ·zóqó뢴“µ] {ª´„-%/µn•ø'µþ-ŒBø•¬mÞÍjNÆü)[¦<Àæi˜àﱘt¿|è –øbþæ˜å_#£S-2#ÿdœ¬çÑi,2}LùØOMGF ¯CG ªÞVeD&¹„@ˆ":ñrî,CèèY>æ`8ÛªÃÐÏíþ„R³Ô?#Ç@eþ7»qæÊråˆûÕ¡uÜ I7|±Ûèžn²’Éùd¥Wxý¯|ÈñD¡—ïóYG†Ö”1li× ã–l ­q Ç+Ëðn”†MêŸÐ¸©"+rèÀwi²¾åP2ÿÙíVÓAD™n¢Uhjð`¤l¦ç„1­œ¤Œ0™å ¨J¾©páÔƒŠ ÄhQÚ0£«)VÑÜ=ò U×Z+®/ND*/ŠB‘Aªü¥À³²¶+aW—„"Îä|ß3‘ç€2DGa’Š$Ž/¢ð<Ä4ªdCI,PX…”ˆJ4`Xò¢-ϸ0Ϋ„Q_W³|Â%Üy}èØ“ÇfdRQ¸P~ÛMLʯnÕ`¯Øc™AŸåí¡ù6ȃuœE—Ž ã[Si¡tâE*¡ôûKÓÊÚ®„]ULCUæûžwOùhu»Ÿ8ÄB(ä‰úßó¶àEÝ!ØgIJ¤àãkë§nÊkæ%/tãÄL݃}’€¶ÆcÕ3#*s\*ME¤S›:c‡R9ø!…”Hawí…±"Tþä_®Q “¸®lmϹ¦è4c³Unrû¨»Td–vì´àPDaeve±4þîXÙú’r:v”ðEWw‡o|>¯-®#‹Ayœ*¬óÚȧ¬)$iŠ¸çJb‰\‰©‘ãfÕ2€9oï;lo“eÆj3äÜì\Éæcg¸‡Wƒ '$cÃçËœ.+ÅÓз‡n–„Ù­Á)V¸ã}õbÈYò„ð⮑ÞëÂ[rÂDÀ +®’ÉÍÙH†¡0P…±qˆ$S7“Æò8Äú-zîp¢rh!¿¶Æÿ51R›Ã·8ŠØÔ @(’´^Rh$m`¯¸cÐÃ,èDxOÁs¨ZÊ! ü„ï÷;œ »æçœ}¡ð ö—¤¯p7úRjoeð*&F™b +Áqs¨”q,Ò±Åz¯Y®¤©ªz†'pu”ÞÆäÅ€1ð­ ã÷˜5$‚‘±m¡´tÈ™øMŽÝÀÿë94 +ÄÙ@œŸr?iÜFÞ;Û •.œ‘ˆ©adä÷u¾·$ê:˾ãG"÷,GÎÔºm[“6s1~PæÏ·åÃÜOª=:XePY{¬-C—Û= j;kÁæ‰ô Úƒ¥µ3u=Ñ©,áâ´°9'ž§ ÔÎÓ°§uy?÷R Š”Ñ’#ËòóX~w£Ñu-šŸH;GÀû?š5-GÄ +*‡L˜½M÷ùYŒŽ£¥& Ù¤´NëÇEf±Ü¸â䡪«¿ÑÄÙT7ÒïQíÑA6Þ°pÝ íÊÓó…™÷nâ™ s1Lãôdvf籆Ëä?”:L>2NøÁ‡/Í<â[€w˜Aæz†·j¾Ñíù]þ#ÃEOR”OÕžjI>0õY?á=¿¿âÇ'‹Þz,L#ø±cáµA‘0Òn~¶7wmÍÑT~ì,d?²¥ÉEø-”æqõï­$[ÌU#Þ +«å¨R6G.e)§)’é‹Yùˆò—ˆ©ØyH´S6sòç#éÀþ2*ÂËi\+Fe ¨ÃòŠ¡>^Ž¿ +#7Š8> endobj +1121 0 obj << +/Type /XObject +/Subtype /Form +/FormType 1 +/PTEX.FileName (./pics/design_process.pdf) +/PTEX.PageNumber 1 +/PTEX.InfoDict 1125 0 R +/Matrix [1 0 0 1 0 0] +/BBox [0 0 383 162] +/Resources << +/ProcSet [ /PDF /ImageC ] +/ExtGState << +/R7 1126 0 R +>>/XObject << +/R8 1127 0 R +>>>> +/Length 1128 0 R +/Filter /FlateDecode +>> +stream +xœ+T0Ð3T0A(œËUÈ¥d®^ÌU¨`ladªg–0434‡0õ @ÀÒܤX?ÈBÁ%Ÿ+ Œendstream +endobj +1125 0 obj +<< +/Producer (GNU Ghostscript 7.05) +/Creator (tiff2ps) +/Title (design_process.tif) +/CreationDate (Wed Dec 24 14:59:10 2003) +>> +endobj +1126 0 obj +<< +/Type /ExtGState +/Name /R7 +/TR /Identity +/OPM 1 +/SM 0.02 +>> +endobj +1127 0 obj +<< +/Subtype /Image +/ColorSpace /DeviceRGB +/Width 1594 +/Height 674 +/BitsPerComponent 8 +/Filter /DCTDecode +/Length 57331 +>> +stream +ÿØÿîAdobedÿÛC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YÿÛC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYÿÀ¢:"ÿÄ + ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ×ØÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ + ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ +$4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ×ØÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?ôš(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ ++‘×nµY|Oo¦é×kn¯rHÏJöO‰ÿè5ýðh«¢¹OìŸÿÐj/ûàÑý“âú Eÿ|êè®Sû'Äÿô‹þø4døŸþƒQ߀:º+”þÉñ?ý¢ÿ¾ Ù>'ÿ Ô_÷Á ®Šå?²|OÿA¨¿ïƒGöO‰ÿè5ýðh«¢¹OìŸÿÐj/ûàÑý“âú Eÿ|êè®Sû'Äÿô‹þø4døŸþƒQ߀:º+”þÉñ?ý¢ÿ¾ Ù>'ÿ Ô_÷Á ®Šå?²|OÿA¨¿ïƒGöO‰ÿè5ýðh«¢¹OìŸÿÐj/ûàÑý“âú Eÿ|êè®Sû'Äÿô‹þø4døŸþƒQ߀:º+”þÉñ?ý¢ÿ¾ Ù>'ÿ Ô_÷Á ®Šå?²|OÿA¨¿ïƒGöO‰ÿè5ýðh«¢¹OìŸÿÐj/ûàÑý“âú Eÿ|êè®Sû'Äÿô‹þø4døŸþƒQ߀:º+”þÉñ?ý¢ÿ¾ G>›âx`’C¬ÄB)ll=…uôV'„on5 )îß|ň-ëŠÛ Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( NïþJ%Ÿý{7ô®²¹;¿ù(–õìßÒºÊ(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š*½÷üx\ÿ×&þF¬U{ïøð¹ÿ®MübxþE¨ßoç]sžÿ‘j÷Ûù×G@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@ßü”K?úöoé]erwòQ,ÿëÙ¿¥u”QEQHH$€=MGçÃÿ=cÿ¾…KE1¤EûΣêhYccòȧèhôSYÑ>ó*ýM"Ë,ˆ~Œ(ôQQ™âTýá@QLóc+»zã×4‚h‰À‘üP”Ru¥ Š( ©¦§f÷FÙnÎ6w«NèŸ}•~§ƒm ÚG­E.·JÍ»`"€: +)¬êƒ.ÁG©8¦‰¢'T$ö (J),jpÒ ú‘J®÷Y[ès@ª7º½…„ÉÝÊE#ýÕnõt£,@¹¯,ø”èþ!Óʲ° +9=Åzš°e § ŒƒKUlç‹ì53±xÜ=*Í-Q@W¾ÿ ŸúäßÈÕŠ¯}ÿ?õÉ¿‘  Oȵûíü룮sÀŸò-Cþû:è袊(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(“»ÿ’‰gÿ^Íý+¬®NïþJ%Ÿý{7ô®²€ +(¢€!º·K«i ’ §¼§ÇZ\zÕ¢YMpƒ't„÷¯\¯2ø©ÿúwû§ùÐö›¥K­iñ>¡#€±Šž•Íë±ÜøGP†ky] vÀÅzF–¡tËlÏ%þUÃ|Xÿ[÷Ïò  =:ÚÛ ï–">P„©Åaø†Æo \Eui4†ÀîZ» ¨_Xã¼B¹ïŠ?òˆÿÓQ@>‰}ý£¥Ctå Íqþ8Ðm¬t›F nrãþZœsí[þÿ‘RËýÚ­ñþEIÿß_ë@çƒ ½Õ´Ño,­ö`IÎNïεµo +›W¹Ó¦›ÍAœ<„Õ†Ê?áFォ¬‘C¡Vèh˜ð~¾úŒOorGŸÛéÒºªòÏ;/ŽncssשÐEPn±£[ë"\´ªäynV¼ß@Vµø‡öDšV†9 +€ÎOW­W“é_òT%ÿ®§úP¤êÚ\µ°‚á¤T?#m5åŒré>4[[)¦+¡ÜšöjòmTñ>0zy£ùìÃK©AçÞK(™†~G W1cwáß $/à Ç=kÓÀÀÀ¯*ñ§=µÇý3 N½µKëI-å,A‚TàבøßF·Òµ›8-ÚVIN÷,zŠö1ÐW—|Lÿ‘‹Oÿt1@Mƒ´äKyÄ—[«­8Î+§E¡GAQÚÇœõÍ•M@Q@W¾ÿ ŸúäßÈÕŠ¯}ÿ?õÉ¿‘  Oȵûíü룮sÀŸò-Cþû:è袊(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(“»ÿ’‰gÿ^Íý+¬®NïþJ%Ÿý{7ô®²€ +(¢€ – ÜטüQ–9/´ó«áNvœ÷¯J¹.­ä‚Lì`àà×8þÑ$ÆøælzÉšÚÒ扴ë`²¡"%È 8â¸oŠ²Ç%­ˆŽD|9ÎÒjë4ÿ iÚtŽöâ`] +ÒÁªrxE”þñ&nüÈM_ðÔÑň[Ên®wâ|Ñ>…¤ˆÄKÐ05»§øSMÓ®ka0ud$~U^ohó»4©;%ˆ2f€Íð½’y‰¿oÝÜ3Q|Eÿ‘R÷×úÕ«iv1Ïn³+Ær ÈqùU_ˆ¿ò*OþúÿZÄøwª¬ÞlªdØã5ÕkºÝµŽŸ#¬Ÿ9¬é¶Ú‡„£IÔ‘æ7*pkf?éQÈ$¬G÷¤È  ir5ìÚœªT³gÐ×QÃAHÔ*Ž8©(¢Š("F‘ÕþñÅyF—"‰²9u 柛Eo*„Pª0juQ@W¾ÿ ŸúäßÈÕŠ¯}ÿ?õÉ¿‘  Oȵûíü룮sÀŸò-Cþû:è袊(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(“»ÿ’‰gÿ^Íý+¬®NïþJ%Ÿý{7ô®²€ +(¢€ +(¢€ +(¢€ +(¢€ +á|VÚæ¯e>ŸÂ2ଠõ»ª(ƒð¡×tk8¬$ÒÇ¿-!=®òŠ(®JÆÅFæ=k˜}oÄØ.‚Hƒ»­u4P)ý¹âúûêíÏÿÐÿßUÕÑ@ôÉînl’[»³ÌzÇž•rŠ(¢Š(¢Š(¢Š(¢Š(¢Š(ª÷ßñásÿ\›ù±Uï¿ãÂçþ¹7ò4‰àOù¡ÿ}¿tuÎxþE¨ßoç]QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQErwòQ,ÿëÙ¿¥u•Îk~“SÔ㾂þ[IcM€ *¯ü"ºŸý 7ÿ +ëh®Kþ]Oþ†¿È…ðŠêô0ÝþCü(­¢¹/øEu?únÿ!þÂ+©ÿÐÃwù𠶊ä¿áÔÿèa»ü‡øQÿ®§ÿC ßä?€:Ú+’ÿ„WSÿ¡†ïòáGü"ºŸý 7ÿ +ëh®Kþ]Oþ†¿È…ðŠêô0ÝþCü(­¢¹/øEu?únÿ!þÂ+©ÿÐÃwù𠶊ä¿áÔÿèa»ü‡øQÿ®§ÿC ßä?€:Ú+δ7UÔ5-Bյˤ´0ÇÍúVÇü"ºŸý 7ÿ +ëh®Kþ]Oþ†¿È…ðŠêô0ÝþCü(­¢¹/øEu?únÿ!þÂ+©ÿÐÃwù𠶊ä¿áÔÿèa»ü‡øQÿ®§ÿC ßä?€:Ú+’ÿ„WSÿ¡†ïòáGü"ºŸý 7ÿ +ëh®Kþ]Oþ†¿È…ðŠêô0ÝþCü(­¢¹/øEu?únÿ!þÂ+©ÿÐÃwù𠶫ßÇ…Ïýroäkšÿ„WSÿ¡†ïòáMo ê.¥[ÄeHÁþ”sÀŸò-Cþû:èë7BÒƦGf²Bwõ¥@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@—…¿äb׿ë°þBºÚä¼-ÿ#½ÿ]‡òÖÐEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP%áoùµïúì?®¶¹/ Èů×aü…u´QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQP^ÝÅci%Ì䈣bjÁ7ÑÈÈk‚q –Šæ¿á6Ò=n?ïÉ£þm#Öãþüšéh®kþm#Öãþüš?á6Ò=n?ïÉ –Šæ¿á6Ò=n?ïÉ£þm#Öãþüšéh®kþm#Öãþüš?á6Ò=n?ïÉ –Šæ¿á6Ò=n?ïÉ£þm#Öãþüšéh®kþm#Öãþüš?á6Ò=n?ïÉ –Šæ¿á6Ò=n?ïÉ£þm#Öãþüšéh®kþm#Öãþüš?á6Ò=n?ïÉ –Šæ¿á6Ò=n?ïÉ£þm#Öãþüšéh®kþm#Öãþüš?á6Ò=n?ïÉ –Šæ¿á6Ò=n?ïÉ£þm#Öãþüšéh®kþm#Öãþüš?á6Ò=n?ïÉ –Šæ¿á6Ò=n?ïÉ£þm#Öãþüšéh®kþm#Öãþüš?á6Ò=n?ïÉ –Šæ¿á6Ò=n?ïÉ£þm#Öãþüšéh®kþm#Öãþüš?á6Ò=n?ïÉ –Šæ¿á6Ò=n?ïÉ£þm#Öãþüšéh®kþm#Öãþüš?á6Ò=n?ïÉ –Šæ¿á6Ò=n?ïÉ£þm#Öãþüšéh®kþ}ÖãþýEñÎŒã*ó°öˆšé¨®kþm#Öãþüš?á6Ò=n?ïÉ –Šæ¿á6Ò=n?ïÉ£þm#Öãþüšéh®kþm#Öãþüš?á6Ò=n?ïÉ –Šæ¿á6Ò=n?ïÉ£þm#Öãþüšéh®kþm#Öãþüš?á6Ò=n?ïÉ –Šæ¿á6Ò=n?ïÉ£þm#Öãþüšéh®kþm#Öãþüš?á6Ò=n?ïÉ –Šæ¿á6Ò=n?ïÉ£þm#Öãþüšéh®kþm#Öãþüš?á6Ò=n?ïÉ –Šæ¿á6Ò=n?ïÉ£þm#Öãþüš¯áoùµïúì?®¶¼ëAñ–±«\N'ÜH2"<ŒWAÿ ¶‘ëqÿ~Mt´W5ÿ ¶‘ëqÿ~Mð›i·÷äÐKEs_ð›i·÷äÑÿ ¶‘ëqÿ~Mt´W5ÿ ¶‘ëqÿ~Mð›i·÷äÐKEs_ð›i·÷äÑÿ ¶‘ëqÿ~Mt´W5ÿ ¶‘ëqÿ~Mð›i·÷äÐKEs_ð›i·÷äÑÿ ¶‘ëqÿ~Mt´W5ÿ ¶‘ëqÿ~Mð›i·÷äÐKEs_ð›i·÷äÑÿ ¶‘ëqÿ~Mt´W5ÿ ¶‘ëqÿ~M!ñÆŽ –k€s šŠæ‡ôv pAî"4Âm¤zÜß“@-ÍÂm¤zÜß“Gü&ÚG­Çýù4ÒÑ\×ü&ÚG­Çýù4Âm¤zÜß“@-ÍÂm¤zÜß“Gü&ÚG­Çýù4ÒÑ\×ü&ÚG­Çýù4Âm¤zÜß“@-ÍÂm¤zÜß“Gü&ÚG­Çýù4ÒÑ\×ü&ÚG­Çýù4Âm¤zÜß“@-ÍÂm¤zÜß“Gü&ÚG­Çýù4ÒÑ\×ü&ÚG­Çýù4Âm¤zÜß“@-ÍÂm¤zÜß“Gü&ÚG­Çýù4ÒÑ\×ü&ÚG­Çýù4Âm¤zÜß“@-ÍÂm¤zÜß“Gü&ÚG­Çýù4ÒÑ\×ü&ÚG­Çýù4Âm¤zÜß“@-ÍÂm¤zÜß“Gü&ÚG­Çýù4ÒÑ\×ü&ÚG­Çýù4Âm¤zÜß“@-ÍÂm¤zÜß“Gü&ÚG­Çýù4ÒÑ\×ü&ÚG­Çýù4Âm¤zÜß“@-ÍÂm¤zÜß“Gü&ÚG­Çýù4ÒÑ\×ü&ÚG­Çýù4Âm¤zÜß“@-ÍÂm¤zÜß“Añ¾Œ1–œ™1@-ȤYbIî¸ >†Ÿ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Þ-ÿ‘cPÿ®t¾¶´+"aŒ“ä ¤ñoü‹‡ýs©ü;ÿ úä(çÙmÿç„_÷À£ì¶ÿóÂ/ûàTÔP?e·ÿžß²ÛÿÏ¿ïSQ@ý–ßþxEÿ| +>Ëoÿ<"ÿ¾MECö[ùáýð(û-¿üð‹þø5Ùmÿç„_÷À£ì¶ÿóÂ/ûàTÔP?e·ÿžß²ÛÿÏ¿ïSQ@ý–ßþxEÿ| +>Ëoÿ<"ÿ¾MECö[ùáýð(û-¿üð‹þø5Ùmÿç„_÷À£ì¶ÿóÂ/ûàTÔP?e·ÿžß²ÛÿÏ¿ïSQ@ý–ßþxEÿ| +>Ëoÿ<"ÿ¾MECö[ùáýð(û-¿üð‹þø5Ùmÿç„_÷À£ì¶ÿóÂ/ûàTÔP?e·ÿžß²ÛÿÏ¿ïSQ@ý–ßþxEÿ| +>Ëoÿ<"ÿ¾MECö[ùáýð(û-¿üð‹þø5Ùmÿç„_÷À£ì¶ÿóÂ/ûàTÔP?e·ÿžß²ÛÿÏ¿ïSQ@ý–ßþxEÿ| +>Ëoÿ<"ÿ¾MEVšÖßÉ“÷}ÓüÒ¹¯Á é7âÚd¨?Äkª›ýDŸîŸå\Ï€?äqÿ_2èF€:O²ÛÿÏ¿ïGÙmÿç„_÷À©¨ ~Ëoÿ<"ÿ¾e·ÿžß¦¢€!û-¿üð‹þø}–ßþxEÿ| +šŠ‡ì¶ÿóÂ/ûàQö[ùáýð*j(²ÛÿÏ¿ïGÙmÿç„_÷À©¨ ~Ëoÿ<"ÿ¾e·ÿžß¦¢€!û-¿üð‹þø}–ßþxEÿ| +šŠ‡ì¶ÿóÂ/ûàQö[ùáýð*j(²ÛÿÏ¿ïGÙmÿç„_÷À©¨ ~Ëoÿ<"ÿ¾e·ÿžß¦¢€!û-¿üð‹þø}–ßþxEÿ| +šŠ‡ì¶ÿóÂ/ûàQö[ùáýð*j(²ÛÿÏ¿ïGÙmÿç„_÷À©¨ ~Ëoÿ<"ÿ¾e·ÿžß¦¢€!û-¿üð‹þø}–ßþxEÿ| +šŠ‡ì¶ÿóÂ/ûàQö[ùáýð*j(²ÛÿÏ¿ïGÙmÿç„_÷À©¨ ~Ëoÿ<"ÿ¾e·ÿžß¦¢€!û-¿üð‹þø}–ßþxEÿ| +šŠ‡ì¶ÿóÂ/ûàVOŠm _ ß•†0DG(õ­ÊÈñWü‹:‡ýr?΀áÛh@±- d˜‡%iý–ßþxEÿ| +£á¿ùìë­J‡ì¶ÿóÂ/ûàQö[ùáýð*j(²ÛÿÏ¿ïGÙmÿç„_÷À©¨ ~Ëoÿ<"ÿ¾e·ÿžß¦¢€!û-¿üð‹þø}–ßþxEÿ| +šŠ‡ì¶ÿóÂ/ûàQö[ùáýð*j(²ÛÿÏ¿ïGÙmÿç„_÷À©¨ ~Ëoÿ<"ÿ¾e·ÿžß¦¢€!û-¿üð‹þø}–ßþxEÿ| +šŠ‡ì¶ÿóÂ/ûàQö[ùáýð*j(²ÛÿÏ¿ïGÙmÿç„_÷À©¨ ~Ëoÿ<"ÿ¾e·ÿžß¦¢€!û-¿üð‹þø}–ßþxEÿ| +šŠ‡ì¶ÿóÂ/ûàQö[ùáýð*j(²ÛÿÏ¿ïGÙmÿç„_÷À©¨ ~Ëoÿ<"ÿ¾e·ÿžß¦¢€!û-¿üð‹þø}–ßþxEÿ| +šŠ‡ì¶ÿóÂ/ûàQö[ùáýð*j(²ÛÿÏ¿ïGÙmÿç„_÷À©¨ ~Ëoÿ<"ÿ¾sÞ8·…<5;$Q©Ü¼…ºzç+»¶ _ª\DÌcàšŸÃ÷–Ë¡Y+\Bˆd³EWûm§üýAÿm´ÿŸ¨?ïà  U¶ÚÏÔ÷ðQöÛOùúƒþþ +±EWûm§üýAÿm´ÿŸ¨?ïà  U¶ÚÏÔ÷ðQöÛOùúƒþþ +±EWûm§üýAÿm´ÿŸ¨?ïà  U¶ÚÏÔ÷ðQöÛOùúƒþþ +±EWûm§üýAÿm´ÿŸ¨?ïà  U¶ÚÏÔ÷ðQöÛOùúƒþþ +±EW¶¤à\ßúè*qÈÈ ¢Š(¢‘˜*–bI5Ûm?çêûø(Å_í¶Ÿóõýü}¶Óþ~ ÿ¿‚€,QUþÛiÿ?PßÁGÛm?çêûø(Å_í¶Ÿóõýü}¶Óþ~ ÿ¿‚€,QUþÛiÿ?PßÁGÛm?çêûø(Å_í¶Ÿóõýü}¶Óþ~ ÿ¿‚€,QUþÛiÿ?PßÁGÛm?çêûø(Å_í¶Ÿóõýü}¶Óþ~ ÿ¿‚€,QUþÛiÿ?PßÁGÛm?çêûø(I¿ÔIþéþUÌøþAõó'þ„k~kÛ_&Oô˜~éÿ–ƒÒ¹¿Ý[Ç¤Ü '‰Úd8gøuôU¶ÚÏÔ÷ðQöÛOùúƒþþ +±EWûm§üýAÿm´ÿŸ¨?ïà  U¶ÚÏÔ÷ðQöÛOùúƒþþ +±EWûm§üýAÿm´ÿŸ¨?ïà  U¶ÚÏÔ÷ðQöÛOùúƒþþ +±EWûm§üýAÿm´ÿŸ¨?ïà  U¶ÚÏÔ÷ðQöÛOùúƒþþ +±EWûm§üýAÿm´ÿŸ¨?ïà  U¶ÚÏÔ÷ðT‘OÙò¥I1×k@QEQE2I#‰wHê‹êÇ€EWûm§üýAÿm´ÿŸ¨?ïà  U¶ÚÏÔ÷ðQöÛOùúƒþþ +±EWûm§üýAÿm´ÿŸ¨?ïà  U¶ÚÏÔ÷ðQöÛOùúƒþþ +±EWûm§üýAÿm´ÿŸ¨?ïà  U¶ÚÏÔ÷ðQöÛOùúƒþþ +±EWûm§üýAÿm´ÿŸ¨?ïà  U¶ÚÏÔ÷ðQöÛOùúƒþþ +±Y*ÿ‘gPÿ®GùÕÿ¶ÚÏÔ÷ðVOŠ.íŸÃwê·³ŽpI  ^ÿ‘~Çþ¹ +Ô¬_Þ[.b­q"!\V—Ûm?çêûø(Å_í¶Ÿóõýü}¶Óþ~ ÿ¿‚€,QUþÛiÿ?PßÁGÛm?çêûø(Å_í¶Ÿóõýü}¶Óþ~ ÿ¿‚€,QUþÛiÿ?PßÁGÛm?çêûø(Å_í¶Ÿóõýü}¶Óþ~ ÿ¿‚€,QUþÛiÿ?PßÁGÛm?çêûø(Å_í¶Ÿóõýü}¶Óþ~ ÿ¿‚€,QUþÛiÿ?PßÁGÛm?çêûø(ÅÈäIWtn®¾ªr)ôQEG$Ñ–D@{³@QUþÛiÿ?PßÁGÛm?çêûø(Å_í¶Ÿóõýü}¶Óþ~ ÿ¿‚€,QUþÛiÿ?PßÁGÛm?çêûø(Å_í¶Ÿóõýü}¶Óþ~ ÿ¿‚€,QUþÛiÿ?PßÁGÛm?çêûø(Å_í¶Ÿóõýü}¶Óþ~ ÿ¿‚€,QUþÛiÿ?PßÁGÛm?çêûø(Å_í¶Ÿóõýü}¶Óþ~ ÿ¿‚€,W9ã¯ùgÿykoí¶ŸóõýüÏxÞêÞO ΩÂöÔiöÀ܉å ô«m´ÿŸ¨?ïà  U¶ÚÏÔ÷ðQöÛOùúƒþþ +±EWûm§üýAÿm´ÿŸ¨?ïà  U¶ÚÏÔ÷ðQöÛOùúƒþþ +±EWûm§üýAÿm´ÿŸ¨?ïà  U¶ÚÏÔ÷ðQöÛOùúƒþþ +±EWûm§üýAÿm´ÿŸ¨?ïà  U¶ÚÏÔ÷ðQöÛOùúƒþþ +±EWûm§üýAÿm´ÿŸ¨?ïà  SQÖE ŒOBE:€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€9?ˆ+¿H·BH pŠpqÁ"§Áz1I†L?ŒÔ>?ÿ]§ý}Gÿ¡ +ê"ÿTŸîŠçÿá +Ñ猟÷Ù£þ­þxÉÿ}šèè sþ­þxÉÿ}š?á +Ñ猟÷Ù®ŽŠç?á +Ñ猟÷Ù£þ­þxÉÿ}šèè sþ­þxÉÿ}š?á +Ñ猟÷Ù®ŽŠç?á +Ñ猟÷Ù£þ­þxÉÿ}šèè sþ­þxÉÿ}š?á +Ñ猟÷Ù®ŽŠç?á +Ñ猟÷Ù£þ­þxÉÿ}šèè sþ­þxÉÿ}š?á +Ñ猟÷Ù®ŽŠæÏ‚tB0`r?ß x'Eýúé( sþ­þxÉÿ}š?á +Ñ猟÷Ù®ŽŠç?á +Ñ猟÷Ù£þ­þxÉÿ}šèè sþ­þxÉÿ}š?á +Ñ猟÷Ù®ŽŠç?á +Ñ猟÷Ù£þ­þxÉÿ}šèè sþ­þxÉÿ}š?á +Ñ猟÷Ù®ŽŠç?á +Ñ猟÷Ù£þ­þxÉÿ}šèè sþ­þxÉÿ}š?á +Ñ猟÷Ù®ŽŠç?á +Ñ猟÷Ù£þ­þxÉÿ}šèè Å~Ó´½-.mÒQ2 ï>µÜÛǬ?îå\ïä¿õÞ?ç]¯üzÃþâÿ*–Š(  Ï’ ÑÁÈÿ~ºJ(› Ñ@ÀÀÿ~—þ­þxÉÿ}šèè sþ­þxÉÿ}š?á +Ñ猟÷Ù®ŽŠç?á +Ñ猟÷Ù£þ­þxÉÿ}šèè sþ­þxÉÿ}š?á +Ñ猟÷Ù®ŽŠç?á +Ñ猟÷Ù£þ­þxÉÿ}šèè sþ­þxÉÿ}š?á +Ñ猟÷Ù®ŽŠç?á +Ñ猟÷Ù£þ­þxÉÿ}šèè sþ­þxÉÿ}š?á +Ñ猟÷Ù®ŽŠç?á +Ñ猟÷Ù¨çðfŒ–ò2Ã&UI9ô®ž¢ºÿY¿Üoå@ï€Ftoúùþ”cþ­þxÉÿ}š?á +Ñ猟÷Ù®ŽŠç?á +Ñ猟÷Ù£þ­þxÉÿ}šèè sþ­þxÉÿ}š?á +Ñ猟÷Ù®ŽŠç?á +Ñ猟÷Ù£þ­þxÉÿ}šèè sþ­þxÉÿ}š?á +Ñ猟÷Ù®ŽŠç?á +Ñ猟÷Ù£þ­þxÉÿ}šèè sþ­þxÉÿ}š?á +Ñ猟÷Ù®ŽŠç?á +Ñ猟÷Ù£þ­þxÉÿ}šèè sþ­þxÉÿ}šCà† G»×IEsŸð…h¿óÂOûìÑÿV‹ÿ´é7¾%Óld)<‘ýÕÍK¦ëÖ›mµ”“èF(Ó´˜ ³T–1#ã’Ã5çž OìÛý˜•YpHÏ‘@¥q:[[¼Ò’NkžoèŠ@i¤Rze1]x’Ü £ ×™üR†8®¬Q¢eNv¨è¹ºñhˆòHÄ8 6®x4Û/i—҈ᕷï.*Ÿ…ôX Ób’aæ;(#媷Ú5­Í‹@b^F3ŸÎ¸_ÝI‰n,7—À'Ò€;íWW´Ò"I.Ù¹ÀÚ¹¬;^ðýöª©jÛðJ`æº9"ŽP‘£ýášò-BüO‘TS€° LÔõ;m*ÛϺ,#Î>UÍy6£ªÚÍãÈõfû8•çò¯c’4•vÈŠãцkÉõX£"Œ"„óGÊûPeâ­2úå`å27L¡¶Fj%¶rAŸP€TÔQEQEÌx÷þ@+ÿ]ãþuÑZÿǬ?î/ò®wÇ¿ò_úïó®Š×þ=aÿq•KEP_‰?ä_¾ÿ®F™á_ùtÿúä??ÄŸò/ß×#Lð¯ü‹:ýr΀5袊çîüa¤YÏ$3Ë"´g òqVmüG§\Ø}²)KC’3Žsô¬ÏÁ +ø^åÄQ‡Èù‚Œþu‡ðãMyž\˜÷·©ŠÔ—Q¶†Ø\4ƒË#ŠjȧÔf@U{ëie,ç¤kšeî£mb›§(öëYÆZ@m¾d¹ÿ®f¹}9_‘1Œí ¬u«ò¼¹'±â®\ÿÇ´¿îå\æ…&Ÿâë íD¦%ù€'{×ysÿÒÿ¸•yÃù/þüÍz‘8ë^[ðßþF‹ÿ£3]gµ–Ҵ±œK"¦€4o¼C§X>Ùå9ÿdf«ÁâÝ*áÂ$²¼˜¬¯hhÖ¿m¼Ì’Èw Ç#¶õ}ÖöÎE„p>RƒÐ¬R¤¨6 §Ò›<ñÛÆd•‚¨ï\/ƒu)muYô›‡-±¶&Mt~+Ó&Õ´Å·‚Q+3Žæ€7‹´˜[kK!>ÉššÏÄÚeì!•·ï.* >ßGÓ­–šÝ˜u.A?­sþ4‡LþÎ{»;˜ÄñôXßüwà†ƒkPñV™¦Ý=½Ì’,‰× ‘ùÕê2jZ’S’³ò«>*‚áëù Q—òÍ´gó  ,|G¦ê²\[ÌZ8Î#ªKãM"Idÿb¸¯‡Zq½óK“ä«|Àµß꺵öžð,H­·å8hþŸ}£gÕ³ŠA•$UšÊðæ.•¢ÛÙÌÁž1‚GJÕ ¹OÈÕ¯×A]]ržÿ‘«^ÿ®‚€:º(¢€ +å|ÿ ‹oúùÿBÕW+ãÿù[×Ìú šõÿº?•IQÃþ¢?÷Gò©(’ȱDÒ7ÝPI®uüq¢FpóH¿TÅt„0FA¯8ø© QZؘãD%Îv¨¨³›Ä|6±Ü4Œc‘w)Qž* _éWrˆ¢™·žÌ¸ª>Ò‘tˆ%œo, €ÜŠÄø‹§Çcoõ¸òßx/€;kíZÒÁ7Ï!Çû#5BßźMÄÂ$™Ãï.+/ÁVFóNŽúì™A‘Uþ épÁ¦èTG$lËÅw +ÁÔ2œƒXwÞ,Ò´û™ ¸’ExÎ ÇçQøñï|=²¶â¿•' ‡þ‹ù<¤ß³ïmüèÕ¯‰´Ë»7º†bÑ!ÁãœÔ ã !¤Ø%tÅqßt¥¼ç±[sÅwz®‹kwc$b%VÛÁP  y㸉d‰ƒ)äTµç^ Ô%±ÖçÒerÀ>ÕÉÍz-QE'JÉ¿ñ§ÈRyNáÙFiž)ÔŽ—¤< à¶TW7à})oa:Þdi9ŽEtÖ~$Ó¯Xˆdn~eÅR>8ÑŒ‚y ) €™«:î Í„žRˆÜ +qü«øs +7‰n£•«˜g¹ K]ZÕ´¿íÍö}»³·œ}+'þz¡šEf8¦+¢ò£ù{g÷qÇå^Wñ.]²X‘S)ü#Åzî¿abªf‘°ÀµsU¬¼[¤ß^Gk®fáALS|?¤GŒr\2FQ÷¹¨n¼2ˆ¬õPˆ‘6éLý(¡žâ+xËÊÁTV$¾/Òb}­$™öL×-¬ßM¯x4蜬K÷°qÐ×qe£ÙÛ[¬bn9,4–ÝŽ qo)'ц*]OS¶Òí~ÑtÌ#Î2£5ÇxÏKþÌQ©Ø–£å€<~UÑh±ëz(i_§pÏ8  +ÉãG³ÈXöÙ]$ð,Ñ“±†FkÊ®b]Æê†5ò]Àäq^™yy¶š×1Æ(õý>Kód²“8Æ*Ýõü® < ׎»]Xkéu!;dsìM{sÃqd&`­3ÈÍb¯ôVp‚YwŒyuÑ#‰]z0W!áÛH¯u[Ë—†=±KµFÑŒW`JZŠëþ=fÿq¿•KQ]Ǭßî7ò wÀ_òoúï'󮞹ȿ뼟κz+”ñ§ü|èßõóý+«®SÆŸñó£×Ïô ®©jz•¾•mö‹¢Â<ãå«´É#IWlˆ®=f€0-üg£\]%ºNþkœËŠ³{âm6ÆB“ÈùÝ\×›ø’Ü?Ä& 3¨xÇZôë=*Þ;5I#Wb9,3@ §kÖ‘"Ú\‘ýáŠeÿˆôë +O#äus^oâHGñRAhÌ‹623ë^‘¥i0Ád¢d9—þtºwˆtýIö[JKz0ÅiM*à ÊÿuN=+˼YмKk-±(%ä€xë^Ÿl|ËH‹ î@N~”Ï·ŽtDûóH¿TÅ_ŸÄzu¼1Êò±Ipڹ⸿ŠÅXùq¢dœíP+ ð†z\SN<Æunäb€4-ðVÈäŠõIæKxi3±N+oè‰÷æ‘~©Šèb"[t,  ~•æß!Š'±òãDÈ9Ú Pssâ >Ö–Ic¨aµsÅCgâ.öa36óÙ—[ÂúTqép¼ãÌfPFîx®câ%Ši¦ÞöÔynï—@Ýþ±g§¨k‰÷Fj•¯Šô«©„QÌÁÏf\Uiþ~å×ïPnäVWÄM:+;8ïà_-ÕÔ|¼w @0ƒX~0Òlç’ä‘^3†ù8©<t÷¾·šC–9ª>>‚á{§F#æ +3ùÐŒ&Ó.,~×Å¢ÎÞœçéPÇâý&I dú¦+“øs¤­Õ¡¹”’ˆÛž3ô®ÇZÐíol$E‰Qöü¥F(Z’xÄ‘°e<ŒU]gþ@÷ŸõÉ¿•qžÔä‡QŸJ•‹mr'< +ìõŸùÞ×&þT›àù,Ü®‚¹ÿÿÈ©cþåtQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEÊxÿþAvŸõõþ„+¨‹ýRº+—ñÿü‚í?ëê?ýWQú¤ÿtP袊(¢Š+Êeÿ’©ÿmëÑõ]VßIfºó61ÀØ»y[ê1jæû/›»>YÎ(ØëÉüQÿ%÷’»äñ5ƒéÒ_7’Œþìç?JómsQŠ÷ÆQj0Ç1·R¤“ÏìUåŸäl±ú/óÜÛøŸO¹³žê17—ßÌdÀWœøÇR‹V×ín­#¢nâc#¡ë°Ǽîå^oñWþ?4ï÷Oó®ÏD׬õ_ÜÛ wƃvô+\_ÅoøûÓÿÝ?΀=I`Ú]®?çšÿ*§âÇUðíèn¦3ŠÄÑõytk£ÔQ¶2R€·â¨kº¥ÇˆÊYéÑ?”Ç ]Jñ@|-FM:ì·Bã•wµ•áý)t­68@ùð7}kV€ +(¢€(ë_ò¼ÿ®Mü«ƒøO÷¯þ‚ºoø‚ÎÎ ›DÆwŒãldŽ}ë‰ð­†nþÝëæcnØÉ T»ÿIÿë›*ó/†Ÿò1êîŸæk´Õ¼KainQ6gˆ²mŒž¢¼ûÁZœ:>³wqyë …"2{šõóÒ¼«Áò?]ÛJîîüMakkò‰¶N2˜Œ“øלxoQ‹Oñd÷÷Ì }ø"2O4ìUäúoü•?ë±þB»é|MaŸë ¼™Xªâ3œý+ÍlµáñËêoße2Ë9Å{%y>­ÿ%>/úê¿Ö½+JÕ-õkc=¶ý€ãç]¦¸ióYx¶-T¡h|ÀNÑž”é”Wšê:÷ˆu{eÓžhcQ†à®y¯FYmãV9` Š( Š( cÇ¿ò_úïó®Š×þ=aÿq•s¾=ÿ +ÿ×xÿtV¿ñëû‹ü¨Z(¢€2üIÿ"ý÷ýr4Ï +ÿȳ§ÿ×!üéþ$ÿ‘~ûþ¹g…äYÓÿëþt¯EP3ñþEKŸ¨ª ¿äYÿ¶­U|o¯Ú]i7Zt+;\YÇçU|®ÚéºRY\¤ë3Êpgšë<]ÿ"Åÿýs®sáWü‚nÿë¨þUwÅúý˜Ó¯´Ð³†M ÉúÖ€5»mÆx/u’I\FMz·ÿ kÏúäÕÂ|'ëøWIâ?Y[ÚOfâc4‘evÆHäq\_€5x4?µýº9×ÌÆݱ“@©wÿsÿ×6þUæ? ˜/ˆ¯óÜækÒ¤™n4Ù%Líx‰=+È|".†¹u%¨Ï–K8ÏlšöŠò¿þûÅöb>HÛœ}EuSxÆÚ8Šùrý£ÓË8Ídh:=Ö©¬Ný6Æ3´*ïaÿSû£ùT”€`;RÐY~%RÞ¾Uêc8­JŽh–hš7V4Á|.!-¯Qþÿ˜?•z yÿö}ç†õ‡º7ÚHÅ›Ûð­KÚJÃÆ|t1œf€:ÊŠçþ=¥ÿpÿ*âü9i«_j¨^K$p’c Çå[úæ½g¥ƒÈ”¼ˆvìB€8o†ÿò4_ýùš¿ñR7h­~êç5…àÍJ-'\»º»ŽuŠ@v‘=Íz&¥goâmta¶Ê¿!a‚(Hѵ¹tØ q‘ +/J¹ý…âú·ýóT´­JëÃÈÖºŒDħåeŽ*Õߌ –KæiHÀÝ€#Ò¼qe®.§=ÿŸ&íÌ1÷ª¯5Ë‹K¸tûg1´¥~aîjÇ…ì5Y¯žÿP™Õ·,a²*?hßMý²î’,p}¨Þ›àë¶GÔ"[‰Xd’*‡Œ<3¤XxvæâÖÑ#•q†ªÆ—ãà·Xµ¥IW–2k7ÅúµÖ«¤Ê,áck˜Aü¨Ká‡ü‹ÿ]Mnø«þE­Cþ¹ã¼®ÚézX³ºIÖg—€#8æ¶üYâ 5Óïtí³†Éf|)ÿuïýtʽ¼·ÀÕ¶kq êN¯+‚¸ŒšõÜIºô`Í:Š( ¹OÈÕ¯×A]]ržÿ‘«^ÿ®‚€:º(¢€ +å|ÿ ‹oúùÿBÕW+ãÿù[×Ìú šõÿº?•IQÃþ¢?÷Gò©(¯;ø±ÿ¶ïŸå^ƒ,‚(žFÎÕœW–øÿX·ÖáµK(çf‰‰lÆEz†¿ä^±ÿ®B¹ÏŠ_ò‡þºÕÏ x†ÊKK&¤x9ŒÇ½sþ=×-um5mmv–9yÌd(ªð/üŠ–_îÕoˆ¿ò*MþúÕ?kÖ‘ivZc¬Ës¸1œgëU¼s¯Z^é| ;\yg{ЗÃù£ÿ®W¼mÿ"¥ÿû•Îø^´°Ò!°¸YÖvàygû×Eãoù/ÿÜ  ?…Œ?±§^þew.@ROA^Uà9®¬­$»EÝl¯†õÏÒºmKÅÑMlðYG+NÃ4d +æôÅ2|K‘Óî z­qžÐf·–MBõq4§pï]QEqß‘ŸÃÊ´€Õ¯2Ÿ [(êÍlêö ¨ØÉŽ ãë\>wuáYÞÚö&6ý¨-@tÁm¤'¦Óü«Ì>sâËï£3]=öºÚ½«Á¦£äŽK©Z徆'» ÷‚¶~¹4êõå¿ÿäcÓÿÝÌW¥Þ]Gek%ÄÛ¼¸ÆNÑ“^Mã]NcX´¸³ŽvŽ ÅzÕ§üyÁÿ\×ùTÕ‰¡köz˜[{q(’8Æíè@é[tå^ÎeàøÍz é\G‰|?q š–œ¿¼^£8Ï­\·ñ¼P„½ŽU˜ ±’(oº ])ûÅxªŸ cxôÞLŠÎÕ÷Åw ”´1<+µÒìSO²ŽÆ0~´Å|H±(¶÷°œ>Ié5OíYØ#~úTüë©ñ-½Ñ®`‡oÖ¸/i— «ù“«í·m¸aÅkøÛI@·–%ýêmÎ=€¦i:Öÿ4;³q°ëšìõ[eºÓ¦†~Cʼ£ÃúuÚø‚;fW£üÙ Mðå¯Ùô¨œŒ<ª¾µ¯Lqª/Eú*+¯øõ›ýÆþU-Euÿ³¸ßÊ€9ßȿ뼟κzæ<ÿ ÿ®ò:éè®SÆŸñó£×Ïô®®¹OÇÎÿ_?Ò€:º(ªZ¦§o¥Zý¢ç~Ìãä\šóMkþJt_õÑ­z½x楨Gqãxõ8ã˜ÛŸ,æ½&éóØMx‚o*f3ŸÊ€8_ÿÈñgÿlÿ˜¯SO¸¿JñÿjQj~'·½¶ŽclÉ1x¯G±ñ-…ݬòÄ&ÛnŸtd{Pñ?þCzwû¿Ö½&ËþÖ8bêWŠé¼3£#MŽ"?yš€6¨¢Š+˾!#ÂQg'ðe?˜¯Q®wÅzö½¨hÇïІé@–¬­o^›EM\^—âÒmE¶«‡N襪ž³®^ëxµÒD ÕÈ*Ezy×Åø÷°ÿ|ÿ*ì4{y4Í'ý*W•”obÜšóïëúÜV©eìbb[1‘@ƒ 6ß Ù·¤9®»¯xŠ[S1[xº§Ppk¤ðνguak¦¨˜\¶Ñ?:æäÓï|1¯Éy [à“©êy4Ö§ƒ4]£Ì³GoZà¼o¥ÙéZýŒVPˆ‘°H¹ÛÇã;)#¤þo¡Œâ¸K}u­[Ü\ÀÁF +íü¹ì¿ñéû‹ü«Î¾,}û¡®³Jñ-…ݹX„Ù‚ Ϻ2:ÕÂxûVƒ\kCcí僻tdP¦hßò´ÿ®Kü«ø­ÿ »?úè•løwÄVW6°Z ˜K9mÑ8×)ãýjÛY³‚ 4ž) lÆEvþÿ‘gOÿ®U‹ñ?þE¡ÿ]V¥ðˆ,Îc¦í˜\*m Æ@ÏÖ±¼{®ÚêzSYZ¤í2J2 gè¼ÿ"¥¯ãIãÿù.¿ +ÊðF¿im¤Úi²¬ëp[òÎ?:ÕñÿüŠ—_…Pø`ÃþÒ½üÆ®ÍÈT$ôåþ¹¹ÓôÓu³u®â99úVö«âĺµ{}>9ZgùŠç¼4¬ß§‘~æöþ•èúÏüï?ë“*çü Éd²^]ŒO+në Öäyÿ\›ùPoÿäT±ÿrº +çüÿ"¥û•ÐPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP)ãÿùÚ×Ôú®¢/õIþè®_Çÿò ´ÿ¯¨ÿô!]D_ê“ýÑ@¢Š(¢Š(¯H0è¬=f£û5¿üð‹þø5‘B¢$Ú{m¦ýšßþxEÿ| +šŠŒAR¢$õG4ß³[ÿÏ¿ïSQ@ H£Œå#E'ûªy·Å_øüÓ¿Ý?νê7šÚHâÄì0®?„רxóSdkÝbIŠ}ÒËÒ€:Ý:(ßLµÞŠßº^£=ªÊìh§Ù@¬ME¿ÓgSqªIs +®ÑoÐESÔí§»²xm®ÚSÒEê+Ÿÿ„s[ÿ¡‚oÊ€:Ê+“ÿ„s[ÿ¡‚oÊ•|;­ëó#h§xbs—‰ú•›ökùáýð*HÔ¬j¬w'Ö@´>7DŽ™PqMû5¿üð‹þø5‚&4H@è +Ž)¿f·ÿžß¦¢€#0DT)‰ +ŽƒhÅ7ìÖÿóÂ/ûàTÔPQ1„UQè)4¾ŠßQš}ìh§Ù@©(¢€ +(¢€ +(¢€9ÿÈë¼κ+_øõ‡ýÅþUÎø÷þ@+ÿ]ãþuÑZÿǬ?î/ò  h¢ŠËñ'ü‹÷ßõÈÓ<+ÿ"Οÿ\‡ó§ø“þEûïúäižÿ‘gOÿ®CùнQ@xX’ÐÆIîTP- "ÁÿtT´PM.Ùh£cêTO³Aÿ<"ÿ¾MEFÐBç-1õ* 7ìÖÿóÂ/ûàTÔP@ )€6à}+Ìþ|C¨‚26Ÿæk·Öô‹ýF`mu9-#Ûµ‘GZçì<w§NóZjï÷™W­væÞra?îŠzª¨Â€°¨la–ÞÎ(§˜Ï"Œ4‡«UŠ(®TѵK»×šÛX–Ú#Ò5 +§ÿæ·ÿCß•u”W'ÿæ·ÿCß•jhºeõƒÈo5¼ 0¡‡Ý  fEa†P~¢™öh3þ¦?ûäT´PUUF=…5áŽC—ÿ´ Ô”P?f·ÿžß¤UUP°ê(o÷‘[ê3MðÆ?à"¥¢€{P@#=éh ¼ó gþ)|˜¶íòÓ›EIED- "ÁÿpPÐBç-l}JƒRÑ@ýšùáýð*QÀÀ¥¢€ +(¢€ +å<9ÿ#V½ÿ]uuÊxsþF­{þº +ê袊+•ñÿü‚-¿ëæ?ýWU\¯ÿämÿ_1ÿèB€:hÔGþèþU%GúˆÿÝʤ ##‘Q}šùáýð*j(5‚9X£Sê +i¶€œ˜cÿ¾MED¶ð©aŒÜ( ÛÀNL1’{•-·€ˆcw ++Æßò*_ÿ¹[õËk^¿ÕdN­"ZËÿ,qÀ”ð¹U´+€Àæ÷Ú‹xAȆ<ÿº+Òü}¥(KMfHâÜ”/ZìЊ ÉúЀÀ´‡¥søX’gtצEbHP: +ê(®OþÍoþ† ¿*?áÖÿè`›ò ¢âQ¼’°ÈE,GÒ³4ZÇ[·F‹“ü."¥Ó4û‹}=íïnÚñŸ9vjÆo¼3i·­f² +ÕÖn­tí>Y0ä>X8¾¸¿*BÈXÌÖ¹ðÍÃí Iî +él¬á±·XmÐ"€,2†0Æ¢û5¿üð‹þø5Cg))õU¤¢ŠB#5·„žaŒÿÀEKE1cDûˆ«ô§ÑE!Œ‘MXÑ (Š¹ô§Ñ@ MFpz…ú(¢Š(¨®¿ãÖo÷ùTµ×üzÍþã*ç|ÿ ÿ®ò:éë˜ðü€[þ»Éü맠¹OÇÎÿ_?Òººå /ÍrVÜPÀyg¸úÓÿ³¼YÿA[oûöÆ€:Ú+’þÎñgým¿ïÙÿ?³¼YÿA[oûöÆ€:Ú+’þÎñgým¿ïÙÿ?³¼YÿA[oûöÆ€:Ú+’þÎñgým¿ïÙÿ?³¼YÿA[oûöÆ€:Ú+’þÎñgým¿ïÙÿ?³¼YÿA[oûöÆ€:Ú+’þÎñgým¿ïÙÿ?³¼YÿA[oûöÆ€:Ú+’þÎñgým¿ïÙÿ?³¼YÿA[oûöÆ€:Ú+’þÎñgým¿ïÙÿ?³¼YÿA[oûöÆ€:Ú£¬ÿÈóþ¹7ò¬ìïÐVÛþýŸñ¨çÒQ@袊(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢°üC¯6%¬PÚ=Ô× B¢ŸJÜ¢¹/øIõoú®1þ4ÂO«нsùñ ¶Šä¿á'Õ¿è^¹üÇøÑÿ >­ÿBõÏæ?Æ€:Ú+’ÿ„ŸVÿ¡zçóãGü$ú·ý ×?˜ÿëh®Kþ}[þ…ëŸÌð“êßô/\þcüh­¢¹/øIõoú®1þ4ÂO«нsùñ ¶Šä¿á'Õ¿è^¹üÇøÑÿ >­ÿBõÏæ?Æ€:Ú+’ÿ„ŸVÿ¡zçóãGü$ú·ý ×?˜ÿëh®Kþ}[þ…ëŸÌð“êßô/\þcüh­¢¹/øIõoú®1þ4ÂO«нsùñ ¶Šä¿á'Õ¿è^¹üÇøÑÿ >­ÿBõÏæ?Æ€:ÚÈñWü‹:‡ýr?βá'Õ¿è^¹üÇøÕ=[ZÕõ.âÐh7fM»²8ýh¥ðßü‹ö?õÈV¥qf¹«ØéÐZåŒH9þµkþ}[þ…ëŸÌu´W%ÿ >­ÿBõÏæ?ÆøIõoú®1þ4ÖÑ\—ü$ú·ý ×?˜ÿ?á'Õ¿è^¹üÇøÐ[Er_ð“êßô/\þcühÿ„ŸVÿ¡zçóã@mÉÂO«нsùñ£þ}[þ…ëŸÌu´W%ÿ >­ÿBõÏæ?ÆøIõoú®1þ4ÖÑ\—ü$ú·ý ×?˜ÿ?á'Õ¿è^¹üÇøÐ[Er_ð“êßô/\þcühÿ„ŸVÿ¡zçóã@mÉÂO«нsùñ£þ}[þ…ëŸÌu´W%ÿ >­ÿBõÏæ?ÆøIõoú®1þ4ÖÑ\—ü$ú·ý ×?˜ÿ?á'Õ¿è^¹üÇøÐ[Er_ð“êßô/\þcühÿ„ŸVÿ¡zçóã@mÉÂO«нsùñ­kÍ­}¥dµki-Ûk+s@”QEQEQEQEQEQEÎxëþE™ÿÞZèëÆVÓÝøzx­¢ie$«ÔЮŸÿ ëoúä¿ÈUšã­üE«Ãm_ð܈9à}jOøIõoú®1þ4ÖÑ\—ü$ú·ý ×?˜ÿ?á'Õ¿è^¹üÇøÐ[Er_ð“êßô/\þcühÿ„ŸVÿ¡zçóã@mÉÂO«нsùñ£þ}[þ…ëŸÌu´W%ÿ >­ÿBõÏæ?ÆøIõoú®1þ4ÖÑ\—ü$ú·ý ×?˜ÿ?á'Õ¿è^¹üÇøÐ[Er_ð“êßô/\þcühÿ„ŸVÿ¡zçóã@mÉÂO«нsùñ£þ}[þ…ëŸÌu´W%ÿ >­ÿBõÏæ?ÆøIõoú®1þ4ÖÑ\—ü$ú·ý ×?˜ÿ?á'Õ¿è^¹üÇøÐ[Er_ð“êßô/\þcühÿ„ŸVÿ¡zçóã@mÉÂO«нsùñ£þ}[þ…ëŸÌu´W%ÿ >­ÿBõÏæ?ÆøIõoú®1þ4ÖÑ\—ü$ú·ý ×?˜ÿ?á'Õ¿è^¹üÇøÐ[Er_ð“êßô/\þcühÿ„ŸVÿ¡zçóã@mÉÂO«нsùñ£þ}[þ…ëŸÌu´W%ÿ >­ÿBõÏæ?Æ¢ŸÆÖª¯u¢O e‚ïb03øÐeE2'ó"GÆ7(4ú(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢ŠÆñoü‹‡ýs©ü;ÿ úä*ÿȱ¨×:ŸÃ¿ò±ÿ®B€4¨¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š+”ñüZû溺兀§G<3ª•ýÖÍKEC%Õ¼GOF`)b¸†oõR£ÿºÀдR3RÌ@©5[ûBËþ~àÿ¿‚€-QP½Ôy£Py°æ’;»y#ž&>  袊(¢Šk¸ØáTdÕ-?V³Ô]ÖÖ]å>÷µMu=°G†yãzà†` ghZ^Ÿ§Ë3XÎ%g6v(jŠ†k˜ M4q“Ð3IÝ´¤ˆç‰Èä…`hz*»_Z©Ã\¡qR¤‰ Ìn¬=AÍ>³ÿ¶l¿´>Åæÿ¤g}êä³E†šDŒìqX‘ézTšÐ¿ŽéZä¶à¢@r~”¿Y7>"Ómu%°š}·,@ ZÓ–XáMòº¢ú±À¯&ññ?ÄHdY£ÜŸ0û…ÎW•«^KàéâÇW2<ˆ¨wá‰À¯TŠêÞcˆ§Ï¢°45Q@Q@bø»þE‹ÿúç[U‹âïù/ÿëXð÷ü€lë­*Íð÷ü€lë­*(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢ŠÇñZ–ðÕò¨%Œxu<ÒhWvÑh–qËq:ÆVpü)|TÁ<9|ÅUÀLín‡ž†²t¯ +h÷ºeµÌ¶¸yP1 +ÇÒý¾Ïþ~àÿ¿‚·ÙÿÏÜ÷ðV7ü!Z'üû7ýõGü!Z'üû7ýõ@?o³ÿŸ¸?ïà£íöó÷ýüÿV‰ÿ>Íÿ}QÿV‰ÿ>Íÿ}PÏÛìÿçîûø(û}ŸüýÁÿc¢ϳßT¢ϳßT³öû?ùûƒþþ +>ßgÿ?pßÁXßð…hŸóìß÷Õð…hŸóìß÷Õlý¾Ïþ~àÿ¿‚·ÙÿÏÜ÷ðV7ü!Z'üû7ýõGü!Z'üû7ýõ@?o³ÿŸ¸?ïà£íöó÷ýüÿV‰ÿ>Íÿ}QÿV‰ÿ>Íÿ}PÏÛìÿçîûø(û}ŸüýÁÿc¢ϳßT¢ϳßT³öû?ùûƒþþ +>ßgÿ?pßÁXßð…hŸóìß÷Õð…hŸóìß÷Õlý¾Ïþ~àÿ¿‚·ÙÿÏÜ÷ðV7ü!Z'üû7ýõGü!Z'üû7ýõ@?o³ÿŸ¸?ïà£íöó÷ýüÿV‰ÿ>Íÿ}QÿV‰ÿ>Íÿ}PÏÛìÿçîûø(û}ŸüýÁÿc¢ϳßT¢ϳßT³öû?ùûƒþþ +>ßgÿ?pßÁXßð…hŸóìß÷Õð…hŸóìß÷Õlý¾Ïþ~àÿ¿‚·ÙÿÏÜ÷ðV7ü!Z'üû7ýõGü!Z'üû7ýõ@?o³ÿŸ¸?ïà£íöó÷ýüÿV‰ÿ>Íÿ}QÿV‰ÿ>Íÿ}PÏÛìÿçîûø(û}ŸüýÁÿc¢ϳßT¢ϳßT³öû?ùûƒþþ +>ßgÿ?pßÁXßð…hŸóìß÷Õð…hŸóìß÷Õlý¾Ïþ~àÿ¿‚¹£"Kñ‰Õ×ìÍÊœŠ¹ÿV‰ÿ>Íÿ}V]žm¥øî kHöEövlg9&€;j(¢€)êZe®©n »Mñƒœg×’j¶£NñÂÛiû£ã`Îq^Ï^O« üOŒùê?­vcÃ6×öâ[å2NÃ9Î1\MÅÕç†5ÿ±A!+ @íšõ 00+ʼn?⻵õ΀:ûÅ©[ µ0e™†zãÉ^<Þñ1E!ò%ä/â+Ô€Jòÿ‰œx‡OÿwúŠô½‹ufA”•áõå¿ôk=ìŸaC™ß7Zõ;?øóƒþ¹¯ò¯<ø±ÿ.iøD}WM‰õ62 PzqU¼A¡6‡ÞéLc +rË×Šë´ ‹iùä*?* +ówhÎ( ëWÓ#‘Že óýkn¼óáS1·¼ Њô:(¢ŠÂñƒ§ßÃ=ÝÌE¦HŽ8è+øVOÛµI (ê}ëе/ùÝ×&þUçŸ +ÿãÿQÿt:íõÃTmäEÞ4;NqŠòï ­Çü$WÚ¹Q–SßåɯcŸýDŸîŸå^]ðôâëìÿ·üÍu—þ²šÕØ/úF8|÷¬/j·kré2¹eV8ü+ÑkÊ<5ÿ%"÷ŸúP¥jzU¦« +ÅyôS3ŽkÌl­£±ø”–ÖùXRl*æ½r¼¤ÉUÿ¶ôézŽŸo©Û{´ß9Æq^K®iV–Þ8ŠÆ(ñnÌ ®}kÙkÉüIÿ%&÷“úÐyiáM&Îág‚ܬ‹Ðî­°0©h Š( {Æz¬šNŒfˆÌvñï\÷…´‹MvÈ]j ånJä‚+°×4¨õ{·”àuZó©¼5¯h²ÓÝÌ#ý¬dPA¬øzãLgÑ7¤e$×_~uŠG8ÎøÀqøs^ucãký>eƒP·z$סi×Ðê6«< ¹Oó 3ø‡£Yhéhlc1™ Ýóu¯BÒo [É0Jã~,ª°úší¼?ÿ +/úä(˜ðï„m.,MRÕÅÁ•þñÇâ¯h^Ò,^i-þ`2«¿“]uíÜvvÏ4¬¨ÍyeÜ×^0×1û(ldzPÐ_WÕ ÁY-U²2x•éÚ΢šF–Ò±åW îEK¤é°é–IJÎ;šå¾(3®‘m³<ÈsùP]ÎëÅ=Õü‡ìùÊ¡î+bïÁÖqÀÏb<™”dsY½ñ5°³Òà’Ÿ+— ‘Z§SñQþȃþþ©á]váo¤Ó5&HúÞ»zók}^ŸÅêSÚ$(Xo +Ü^“@Q@rž:ÿ};þ¾—ùŠêë”ñ×ü{éßõô¿ÌPT: +ZAÐRÐEPŸñå?ýsoåX^ÿ‘që«ÿ:ݼÿ)ÿë›*Âðü‹‹ÿ]_ùÐIEPW0GunðJ7Fã =«Éü¤Úè÷–i`† ë“ÏSšõÚó/ŠòÓ¿Ýþ´ÐiZ/ö®êy“äGN1Ås&¶“Âwð\Y9X¸Zô­4¦Ûcþy/ò®âÇü{X¾•ki6â E¸ÔÉta•^œVŠ4ÏøFfŠòÁŒq®k¹ðØÃö8ï®oâ—ü€aÿ®´ÓhÇQÒ-ƒ5ÉøóAÓí4Yï ˆ­ÃH2Û½kwÀßò*Xÿ¹U¾#È©7ûë@ç‚4ûOMO!6€’úÖÖ±á(-í}4§A‘Îj_†àÂ/ォ«„7Jå<®É|itÙž6ÛÏ ®º¼³Á…‡ŽnT}̽zQEeëúªi:t“1ù°vS\®‡§Üø“}Þ£!0”CéKñItë@¹ÁsŸÊºO +*¯‡lŠõ1ŒÐuçƒlVk5ò¥ ç5OÀÓ_.£cy)q£Óšíj­`†gš8•d“ï0êhŽñF¿q&¡™§±?ÞaÚ¯Zø:ÎHï‡+ “’+“ÒI“â<‚_º±ŸÂ½Tt ?×,î¼0éwa!û89d•×hÚ„z¶š²Žw.}j—UO†oKu Åd|0gmã~xb€2~!hv:^ Åœf9$î;ºÕÏ iRêºL?nröÊ¿"ûTÿ?ä mÿ]ksÁ` Ø㯗Íbk¾]6ØÝéDÄèrFsZÕW^Ò^Þëæ|qž¢·õ­a8nž[*óφLßÚ÷Ê~è~f€)øßAƒGž -Q„,2Àî¼+eaŸÖi´•¹Ï=é¾2Ó…þ‡0Q™ùk áÖ£‹ylelº3}Oã.Â[Ûv1srû ®‹@Ñíô‹0!W~\穬hTê¾)˜·1[aÐû×]@Q@rpÉE¹ÿ¯e®²¹8?ä¢ÜÿײÐYEPEP\§?ãïEÿ¯Ÿé]]rž4ÿ½þ¾¥utQEQEQEdkZ†¨ ×qxÐí9Æ+Ì<"·Ä0Û9UÉSßåɯb¸ÿyÜ?ʼ»áÐÅWÙôoæh¬¿ð}œÖÎʸ¹ÇžõÇèz¶¢šŒºDRœ‡#>½b¼£Âàˆ·ÿy豸ð•Å³<‹›‚3¿=ëœð¶£q§x•ô‰$,›öŠôšò¨?äªúï@—¨éÖÚ·ÙîÓ|yÎ3Šò-~Ìi¾2[m?taJ”Î {Ey7ˆqÿ *ôÞ¿Ö€;o A}n³jCÍ™ÆIÎ1\ö«Ï„õåµý•ˆ~¦½ `Ž•ÅüMûX}ï5h«ÓîÒöÎ9Óî°«UÎø™¼/j[¯5ÑPEP—ßj²ë*:|óyVÈJœô5Ôÿ¦ù LJGžõ“âOKqvך{°˜ò@ãšÄŽÿÄz ÿJF•WûÍšì<+¥i{}ozY &#ƒô©¼Y®ÿdYýó`(yªÞñ|ZÃfQ瀣ֹ¯‰ Ö¬ÕFÑÇ©È  }Ãï«Û‹Í]Ì…Ï ÐŠ›WðºØڽƒ|™Pd¹¥´Ô•#ê>)u*t{rý447„5ÖÔ xnïã;N{âh}Åíü“p#ÈlÖG„4=^Ç^’êöŠ7†Î ®³Äò/ß×#@wðïC±Õà»kØŒ…ç«Ò4Ý&ÓKˆÇgÅ'8Îk‰øOÿ×ÿïå^‹@Q@r^0Ð4÷Ó/õûPMÁóÞºÚÆñwü‹‡ýs sáY'I»É'÷£¯Ò¶¼K i÷–×W³ÄZáb8lúV'ŸùÝÿ×Qü«¯Ö¿ä yÿ\›ùP—x;›©ç†9‰ð5×ë>´O5²”¸Q»vká8¯‰íŠô[¾lçÿ®mü¨Šø}¬ÏvóXÌ弜œþ5Ôêº%Ž­°ÞÄd1—œb¼ÿá§üŒZ‡û§ùšõÐÐŽx_I´½ñ}ÅÄ{ ]ø\úW§i¾Ó´ÉZKHJ3 œ×Ÿø/þGë¯ûi^­@Q@Q@bø»þE‹ÿúç[U‹âïù/ÿëXð÷ü€lë­*Íð÷ü€lë­*(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢ŠÆñoü‹‡ýs©ü;ÿ úä*ÿȱ¨×:ŸÃ¿ò±ÿ®B€4¨¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š+”—þJ,õìk«®R_ù(°×± ®Š( §ž+tß4‹ôË +ò}Nâø“Ë*¼ÐwƒÇzõKMµÕ-Ä‘ c8>µ•ÿ^ƒÿ>)@ hÑ4«qx,`W—xÊæ¼ok,r£Æ6eȯC‹Ãz\6RÙ¥ªˆ% ºúš«ÿ^ƒÿ>)@ñ_ÚI:\Dʃ,C+̾#\Áq¯X<2¤Š«ÉSœr+Ð-¼7¥ÚÛÏ6ª±Î6È=EUÿ„/AÿŸ  M6òÚ{hRã‘Äk­’8®âÇü¸~5Úéš›¥LÒÙ[¬NÃJâ¾,ˇã@¾ÖQtÈ¢»>Q +6–àb«ø»]Ž[?±Ù9åùNÎkZÏG±Ôtk/µÀ$ýÒõ©ìü7¥ÙH$·µTaÞ€(ø+H:^”¥ÆP +éi)h¢Š(;W¼¶†Ææ9gÄØVl•çß ® ¶½Ô ó$a”cqÆy®÷Rðö™ª\ ï-–YÆO¥Sÿ„/AÿŸ  [«ëXíÉ’â%„®Xs^cà˜`ñUì’ʈ‡~ŽäסÝøoK½Ž¸µWXWjAUá ÐçÅ(aïí5‘®"TºÅ† y_‡n!âÓ<¨±˜ž;W£Oá½*âÒimU¡‡î/¥Uÿ„/AÿŸ  ƒh!›ˆ„dà6áŒ×–‹˜ágyþjy^vwçŠôFðÞ–ö dÖªmÑ·ô5Wþ½þ|R€7 ¸†åKA*H£‚Tæ¼ËÅp<9‚ñÔˆ·/ÍÚ½MÒí4¨Z+(„HÇ$Z/ô»=I]Â$Që@¦¿â»´¼¶‡G)&ÿ¿Æêì­䵉åÿXÊ }k:ËÃzU„Â[kUG k-Q@^*Ôîô«§³Mìd†Üü½ê[zÊòÙ^Y2G+!µ&…&B’.å=«"o +hó¶é,Õs~8¸°»°0Ú"ÉpÄm1€•mø&Ò];Ãê—'qn{ +»iá½*ÍÃÁj¨Ã½iÉK Dë”a´jóoŠ7v÷1Øù$˜';[8®ÏÃ÷Ö­£ZF³ÆÒ,@• Ïð^‚zØ¥X²ðÆ“a?mj±É‚¹†€8Ox…µKõÓíä lÎ?Zê¼/m¥èÖ* Õ¹™‡ÌwŠ´þ ÐË5Šc’i?á пçÅh¾#ñ +YX$–É3J«ŒƒÁ<ÔÞ"Ó?¶tP§ý`MÃêE1|¡£«-’åNEoª…P£ ÅxSV:|?Ù×Êј~PÄ`WEu®ØÁ q }j‚xCDFܶJ déþ­«jì°ÆÉq˧$}k´¨-­aµŒG +QØTôQEW)ã¯ø÷Ó¿ë阮®¹OǾÿ_KüÅuC ¥¤-QEAyÿSÿ×6þU…à?ùþº¿ó­ÛÏøòŸþ¹·ò¬/ÿȸ¿õÕÿt”QE5ÝcBîÁTrIí^]ñ2ê BÀÁ2Hy*sŽkÓ® ŽêÝà™wFã =Eaÿ ÿÏŠP†•}k%ºGq2Ĥ€Ý8®âݽͽ‚d«œílãŠí,|5¥X;½µªÆÎ¥ŽàÕSàÍœ›  ¼5{jÚ-”KP‡5™àK{ïÅÌa×Ìn mCáM‘Ú(aÞ€0< ¤H³Í©N¥]Ø‹Q…N Š(  iÚÚ[ t¯Ö²<%«‹;sa| MʸÚÖmö‰§ê7P,‡Þ€(k^&¶²µ&ÙÖiO +çšO +_êš…³O¨ªª°ù\ž +èöî+EVæ¶Q*Œ@yâ=.}+]U¶BËÉ`O5ÖØköWÊÏ*ÄØä9ÁÍjËJ…eOjƛš4î^K5,{Ð?âíUµ4u‚´žgÊÌEt^Ò†•¥¤XÃ0¾µjÇF±ÓÿãÖÒ´(…ø©ÿ [oúëKà}\C¤Ã ÎQḟ?ä mÿ]kGÃz]¦£áKºˆH}è¾'ñØ46®&•øùzÔ^ÑžÆÑ®¥]²KœƒZöÞÒmdChªÃ½l: +lˆ +°È"¼†íäð׉f*ï•€ïúëØk„ñf£â+xÔ2…oÀ@^µhô´žaûé>ñ®†£‚5ŠET”QEW'ü”[ŸúöZë+“ƒþJ-Ïý{-u”QEQEÊxÓþ>ô_úùþ•Õ×)ãOøûÑëçúPWEPEPEPKëË{x]fž8Ùà3cœÖÍ×…ô‹¹Œ³Ú+99&¯ØéöÚ|^]¬B4ôjŠ( ¹ïÞ[ßÂgŒKåãfîk¡¬kß é÷/qsh²Jÿyzå>^[[é—K4ñÆÍ ÀfÆk®×omcÒî£{ˆÕÚ#…-É⪯ƒt$`Ëb€ƒ‘V/¼3¥j n­VG +è(‡ø]uolo¼ù’<ãŽ3^…}k¬‚KˆÔ¼d®XsÅf ÿÏŠU«Ï éWÞWÚmUü¥Ø™ì(Ͼ\Áoâ ÷šTYN ɯUIXÃÆÁ”Ž<Áÿ„/AÿŸ­»KX¬í’ÞÝ6Dƒ +¾”åúüJ|oq5×îÑ·[ŠÝ'Ôn¼L-l‚5#'nxú×K iº‹ï»·YÔÓôýÃM$Ú@±“é@4QEQE‹âïù/ÿëmV/‹¿äX¿ÿ®tcÃßò±ÿ®B´«7Ãßò±ÿ®B´¨¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(Å¿ò,jõΧðïü€,ë¨<[ÿ"Æ¡ÿ\êÿÈÇþ¹ +Ò¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(®R_ù(°×±®®¹Iä¢Áÿ^Æ€:º(¢€ +(¢€ +(¢€ +(¢€"¸2­¼† (_”„לø“Gñ7ˆ|Ÿ´Y[ÇåtÛ'_Ò½.Šæ|:ÚüM ®¡gv±¦Ýêù<~ÓQETÔžî;)Æ5–à‘Xàç>ÝâÿúÚßÃþ×Q@Û¼_ÿ@ÛOûø”_x»#:m¦?ë¡ÿ +ëh B\†@•€ìiôQ@Q@Q@Q@Q@zW-=ïŠÖwéÖ­c´™9#ò®ªŠä~ÝâÿúÚßÃþ}»Åÿô ´ÿ¿‡ü+®¢€3ôiu­ jÇ û¾ê6F+BŠ(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(®SÇ_ñï§×Òÿ1]]rž:ÿ};þ¾—ùŠê‡AKH: +Z(¢Š‚óþ<§ÿ®mü« Àò./ýuç[·Ÿñå?ýsoåX^ÿ‘që«ÿ:é(¢Š(¢Š(¢Š(¢Š+…ñ5¯‰u‹i¬E•¸·/•q'$»ª(„ðͯ‰tkhl•¹·–s' »º( ÈXFÅ[ú×*÷Þ-ÛtÛB¹ã÷‡ü+¬¢€9·x¿þ¶Ÿ÷ðÿ…nñým?ïáÿ +먠 +z\—’Ù#j$Wï*W(¢€ +(¢€ +(¢€ +k–ÅF[zuçž%Ó¼M¯À¶òÙ[¤q¹e+''ô­O Çâ´±¹³m#Z@ùl~U×Ñ@Q@KÁâ‹Mbò[X£žÞGÊ $ÆåZš&“r/ þ¢¹ ®Ðr®ŠŠ(¢Š(¢Š+“ƒþJ-Ïý{-u•ÉÁÿ%çþ½–€:Ê(¢€ +(¢€ +å« q&Þ)ÜŸœHØÀ¬o·x¿þ¶Ÿ÷ðÿ…uÔP#öïÿÐ6Óþþð«7ž'{È–îÂÚ8 ùÙdÉò®šŠ(¢Š(¢Š(¢Š(¢Š+?X—P†Ð6— sO»î»`b´( GíÞ/ÿ m§ýü?áGÛ¼_ÿ@ÛOûøºê(•‚÷Åm2 tëUŒ°ÜDå]HéÍ-QEQEQEQEQEQEV/‹¿äX¿ÿ®uµX¾.ÿ‘bÿþ¹ÐÈÇþ¹ +Ò¬ßÈÇþ¹ +Ò Š( Š( Š( Š( Š( Š( Š( Š( Š(  oÿȱ¨×:ŸÃ¿ò±ÿ®B ñoü‹‡ýs©ü;ÿ úä(JŠ( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( ¸­WPµÓ<{ ÷’ˆ¢û9­vµZâÂÒéÃÏoŒ8Ë.h'þþ‚Ñÿ ŽƒÿAëGûNÿŸ(?ïGö>ÿ>P߀3¿á1Ðè!ð˜è?ôŽ´±ôïùòƒþøcéßóåýð(;þþ‚Ñÿ ŽƒÿAëGûNÿŸ(?ïGö>ÿ>P߀3¿á1Ðè!ð˜è?ôŽ´±ôïùòƒþøcéßóåýð(;þþ‚Ñÿ ŽƒÿAëGûNÿŸ(?ïGö>ÿ>P߀3¿á1Ðè!ð˜è?ôŽ´±ôïùòƒþøcéßóåýð(;þþ‚Ñÿ ŽƒÿAëGûNÿŸ(?ïGö>ÿ>P߀3¿á1Ðè!ð˜è?ôŽ´±ôïùòƒþøcéßóåýð(;þþ‚Ñÿ ŽƒÿAëGûNÿŸ(?ïGö>ÿ>P߀3¿á1Ðè!ð˜è?ôŽ´±ôïùòƒþøcéßóåýð(;þþ‚Ñÿ ŽƒÿAëGûNÿŸ(?ïGö>ÿ>P߀3¿á1Ðè!ð˜è?ôŽ´±ôïùòƒþøcéßóåýð(;þþ‚Ñÿ ŽƒÿAëGûNÿŸ(?ïGö>ÿ>P߀3¿á1Ðè!ð˜è?ôŽ´±ôïùòƒþøcéßóåýð(;þþ‚Ñÿ ŽƒÿAëGûNÿŸ(?ïGö>ÿ>P߀3¿á1Ðè!ð˜è?ôŽ´±ôïùòƒþøcéßóåýð(;þþ‚Ñÿ ŽƒÿAëGûNÿŸ(?ïGö>ÿ>P߀3¿á1Ðè!ð˜è?ôŽ´±ôïùòƒþøcéßóåýð(;þþ‚Ñÿ ŽƒÿAëGûNÿŸ(?ïGö>ÿ>P߀3¿á1Ðè!ð˜è?ôŽ´±ôïùòƒþøcéßóåýð(;þþ‚Ñÿ ŽƒÿAëGûNÿŸ(?ïGö>ÿ>P߀3¿á1Ðè!ð˜è?ôŽ´±ôïùòƒþøcéßóåýð(;þþ‚Ñÿ ŽƒÿAëGûNÿŸ(?ïGö>ÿ>P߀3¿á1Ðè!`x§_ÓuEÓᲺId*H™Øcéßóåýð)WIÓу-œ!‡ …  ƒ ¥¢Š(¢Š‚óþ<§ÿ®mü«‹ð—‰4­?F÷wi«+’§ë]Ñ‚È=j‘Ò4ârláÉÿ`Pwü&:ý#£þþ‚Öö>ÿ>Pßì};þ| ÿ¾gÂc ÿÐB:?á1Ðè!hÿcéßóåýð(þÇÓ¿çÊûàPwü&:ý#£þþ‚Öö>ÿ>Pßì};þ| ÿ¾gÂc ÿÐB:?á1Ðè!hÿcéßóåýð(þÇÓ¿çÊûàPwü&:ý#£þþ‚Öö>ÿ>Pßì};þ| ÿ¾gÂc ÿÐB:?á1Ðè!hÿcéßóåýð(þÇÓ¿çÊûàPwü&:ý#£þþ‚Öö>ÿ>Pßì};þ| ÿ¾gÂc ÿÐB:?á1Ðè!hÿcéßóåýð(þÇÓ¿çÊûàPwü&:ý#£þþ‚Öö>ÿ>Pß¹o +iÖsjšÒÉmª\aA^ƒ±ÿ ŽƒÿAèÿ„ÇAÿ „u£ý§Ï”÷À£ûNÿŸ(?ï@ßð˜è?ôŽøLtúGZ?ØúwüùAÿ| +?±ôïùòƒþøÿ ŽƒÿAèÿ„ÇAÿ „u£ý§Ï”÷À£ûNÿŸ(?ï@ßð˜è?ôŽøLtúGZ?ØúwüùAÿ| +?±ôïùòƒþøÿ ŽƒÿAèÿ„ÇAÿ „u£ý§Ï”÷À£ûNÿŸ(?ï@ßð˜è?ôŽøLtúGZ?ØúwüùAÿ| +?±ôïùòƒþøÿ ŽƒÿAèÿ„ÇAÿ „u£ý§Ï”÷À£ûNÿŸ(?ï@ßð˜è?ôŽøLtúGZ?ØúwüùAÿ| +?±ôïùòƒþøÿ ŽƒÿAë#HÔ-u/ÜOg(–/³¸WQý§Ï”÷À©mì--\¼ñÆÇŒªâ€,ÑEQEW!ã¹£·“HšV \e‰ì1]}CqkÒ…¸‰%gÿ ŽƒÿAèÿ„ÇAÿ „u£ý§Ï”÷À£ûNÿŸ(?ï@ßð˜è?ôŽøLtúGZ?ØúwüùAÿ| +?±ôïùòƒþøÿ ŽƒÿAèÿ„ÇAÿ „u£ý§Ï”÷À£ûNÿŸ(?ï@ßð˜è?ôŽøLtúGZ?ØúwüùAÿ| +?±ôïùòƒþøÿ ŽƒÿAèÿ„ÇAÿ „u£ý§Ï”÷À£ûNÿŸ(?ï@ßð˜è?ôŽøLtúGZ?ØúwüùAÿ| +?±ôïùòƒþøÿ ŽƒÿAèÿ„ÇAÿ „u£ý§Ï”÷À£ûNÿŸ(?ï@ßð˜è?ôŽøLtúGZ?ØúwüùAÿ| +?±ôïùòƒþøÿ ŽƒÿAèÿ„ÇAÿ „u£ý§Ï”÷À£ûNÿŸ(?ï@ßð˜è?ôŽøLtúGZ?ØúwüùAÿ| +?±ôïùòƒþøÿ ŽƒÿAèÿ„ÇAÿ „u£ý§Ï”÷À£ûNÿŸ(?ï@ßð˜è?ôŽøLtúGZ?ØúwüùAÿ| +?±ôïùòƒþøÿ ŽƒÿAèÿ„ÇAÿ „u£ý§Ï”÷À£ûNÿŸ(?ï@ßð˜è?ôŽøLtúGZ?ØúwüùAÿ| +?±ôïùòƒþøÿ ŽƒÿAèÿ„ÇAÿ „u£ý§Ï”÷À£ûNÿŸ(?ï@ßð˜è?ôŽøLtúGZ?ØúwüùAÿ| +?±ôïùòƒþøÿ ŽƒÿAèÿ„ÇAÿ „u£ý§Ï”÷À£ûNÿŸ(?ï@ßð˜è?ôŽøLtúGZ?ØúwüùAÿ| +?±ôïùòƒþøÿ ŽƒÿAèÿ„ÇAÿ „u£ý§Ï”÷À£ûNÿŸ(?ï@ßð˜è?ôŽøLtúGZ?ØúwüùAÿ| +?±ôïùòƒþøÿ ŽƒÿAèÿ„ÇAÿ „u£ý§Ï”÷À£ûNÿŸ(?ï@ßð˜è?ôŽøLtúGZ?ØúwüùAÿ| +?±ôïùòƒþøÿ ŽƒÿAèÿ„ÇAÿ „u£ý§Ï”÷À£ûNÿŸ(?ï@ßð˜è?ôŽ²üIâï@¼‚ ØÞWL*Žæº_ì};þ| ÿ¾ØúwüùAÿ| +Ãßò±ÿ®B´©¨‹E +£€juQEQEQEQEQEQEQEQEQEcx·þECþ¹Ôþÿýr‹äXÔ?ëOáßùXÿ×!@TQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEÉx?þBÚïý|A]mr^ÿ¶»ÿ_ÐP[EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP7‹äXÔ?ëOáßùXÿ×!Px·þECþ¹Ôþÿýr¥EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP\—ƒÿä-®ÿ×ÇôÖ×%àÿù k¿õñýu´QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEfxŠÖ[Ý +òÞÝ,‰…¦¹ë ßYXÃlºarAã8  ê*¶Ÿ3ÜØÃ4‹µÝrG¥cxÏ\¸ÐtÈîm‘Ùöᨢ¢²¼7¨Ëªè–÷“*¬’Œ½+V€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +¯ÿ ûŸúäßÈÕŠ¯ÿ ûŸúäßÈÐ'äY‡ýæþuÑ×9à_ùaÿy¿ttQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEW5ãÏùOývOç]-s^<ÿ‘tÿ×dþt¿iÿp×5þU5Ciÿp×5þU55ÛdlÀ€Nzãï¼t,9ºÒ®c\ˆÁ®Ê¸?Š¿ò´ÿ®§ùPÚø¢tønmíä˜È¹òÐò*¤~5„\,7VS[zÈE?ÀÚ|pèvó•¤@sYß-"]]*(u¨£¼×­àŒܹþÏ5”Üä’®@Íkx«þE­Cþ¹ÌÓ2+³¯'ñü”˜ÞOë@¨Ýµ•”— ÎP}Äêk”›â6×1Ás§\@î@ùÈïÞ»Zòˆë¿Åv‹ýà£õÛÞx•`æÞÎk¥ÆsE¦ø¾Öúè[É ÛIœbCZºEŒvv1¢¨Î95ç¿a];Z³ž±¤É$}hÓ¥“d "‚ø]ÀõÇ_xê;=¿lÒn#áKãšëlµ…»¦5?¥p_?ãÖÃýóü¨»±»[½:+¨ÐªÈ›‚לøû[—PÓ–ÝôùíÕ%ÿXý wžÿ‘~Çþ¹ +ç>)Èúë@ü/âI¬´ [tÒn§¸Þ˜Á®îÎàÝ[¬­DXgkuàoù,Ý®†€ +(¢€ +ÏÔµk]533®îËžM]™¶C#ÿuI¯2ÓY¼K⹌Çt0à„=:šé‹ß9Iº‘¼1ŠšÓÅö“ΰÏ[9à oÇQF4 +£°®KÅž7“[ÜØÀ «*ǦFh°.¡7’ã9¬ ß[[Ìb·‰®œpDfªøÛT}/EESµå]™ôâ›à&(ô伕Í8¸õ  Åøaçé·/÷Ÿ­ûè/á[È®¡¤¾²†òÙã–5`TžÕçÚ Üš/ŠäÓ7°U_Jìµ­nM*TTÓçº ¹-AYZ_Žìµ ‰!0< €Ÿœõ>•ÕÏÿòº•yƒìÿÅ) ÈFfýMwRø¹£9UË'÷Æ1ZšF»kª©°YT'šÐû<^W•å1^eªÿÅ;âèZ‘&É {‘@†·âvÒ.Z6Ó®&F|ÕûµKLñºê“·Ón{°#·õöèFKÇÇâ+ÏürÚOˆ&Ód<»…Á @Ôõ°ÓþÒ¶²NxýÚu¬;ÛÄ·M.åI8$ãå÷5¿ª]-¥Œ’1ÆAQõ5•áV[s(ýôŒA'Ò€:*¯ÿ ûŸúäßÈÕŠ¯ÿ ûŸúäßÈÐ'äY‡ýæþuÑ×9à_ùaÿy¿ttQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEW5ãÏùOývOç]-s^<ÿ‘tÿ×dþt¿iÿp×5þU5Ciÿp×5þU5ÁüUÿE§ýu?Ê»©¬lÀn Þ¼×Æ7:ž¿k¼Z=Ì~S“¸àæ€;/ȯaÿ\ë#âoü‹?öÕhð¦§} µž™>“qEÚel`VgŒou-fÅì"ÑîWl™qƒŠÝø}ÿ"¥·ÔÓü}ÿ"¥ßáXþÔu :ÆÛM›H¹v ¼`fâíGP¿²»Ó!Ò.(Æ MðÃþEÆÿ®¦·|Uÿ"Ö¡ÿ\r¼Ô´K²—G¹}òd¸Æk®ñIφoÏOÝP)ðªU[;¸ÉùšAøW »BÇ ¯'ð½Ø¶¸½µ$˜œšé¯uÝ^ê·‡J¹‰˜m2b€9øÐÝ|I3GÊ, ’+Õ+”ðŸ‡[OÝuvCÜIÉãk« Š( ¼ŸÄòRaÿy?­zV­}.Ÿfg†ÖK§-:טjqê·Þ(V]&åQJ‡â€=v¼«âüö?ðæ+µ¶×îæ°¸¸}&â7‹îÆq—úW âDÕu­j äÒ.cX¶ü§àЫÃþ¦?÷Gò¯6ø§ÿ!;ýßë]f›®ÝÜ[LdÒn!0F +†ÇÎ}q>.:¯ˆnm¥G¹ˆB0C`çšôí;þAÖ¿õÉ•p?ãÖÃýóü« Ðõ«É¢óiWy0ýæÆÒ¹/ͪxŠ8=æ/%‰ÉÁÍwÞÿ‘~Çþ¹ +ç>)ÈúëVü/ªÞùvºtúUÄ +‰´ÊØÇwÅúCkW’Ÿyáï@ø%Ö?Ù3°U É'VüSE0&)@;©Íy¤gX@þÆ]>à »<ÎÕ×øCH}#L1Êļ„1Ïjè(¢Š†èn´˜¥~•æ¾bñ5ôrð̼gêkÓÈÈ ÷®C[ð䩨KOm²äP9 PaQ5ÌáhÕbÀåˆõTË:=Ë?MãªZf}©ê£PÔÙ”/ÝŒðG¥Iñ:ÝçÓ-™!“¥nøBt—ÃÖŠ¤‘€kCP°ŠþÉí¤†\WiiªxfiÞ7º·cˆ: +î‚¡cÐ ×–2ψÞt\¢H "º+kWÔ"0C¦\[à»`Š»áf¸¸a%ă– Šø÷“ýÓü«Êþʱx®÷q;‡êkÕ'ÿy?Ý?ʼsÂÖ“]xŽïìïµã,ß^M{=yoŽÿÓ•×ÚÄ°Û¢(ÀWŸ|<²šâàÞ\d˜sÏjôz*½ÿüƒîë“#V*½ÿüƒîë“#@žÿ‘f÷›ù×G\çäY‡ýæþuÑÐEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP\×?ä]?õÙ?tµÍxóþEÓÿ]“ùÐý§üyÁÿ\×ùTÕ §üyÁÿ\×ùTÔQEQEQEV7Š‡5ܹò­šçµOÙj—rO<× ÉÕVBò áSªéטÞ§Ú½¹8|¥Ûbšé9ÎR3]\h#Pd… Щ†XÁÁuëO®fçÁ–77L÷7œä…™€þtÑù±ÿÏDÿ¾…lóÑ?ï¡\¿ü Öóõ{ÿÛühÿ„Ãþ~¯ïûu*ÊÃ*AúughúL:E»C’Ȭs™±ýkF€ +(¢€ +(¢€ +(¢€ +(¢€ +k:)ù™GÔÓ«Yðí¶±:K<ײ …Gé@þlóÑ?ï¡G›üôOûèW/ÿ5‡üý^ÿßöÿ?á°ÿŸ«ßûþßã@JÈŒp®¤ûuai^´Ò¯Ì3Ü»€F$”°ünÐEPEPEP7.«˜”õ>ÕæWÅwŘóu>æ»ÍgÃÖÚÌ©$òÎ…ŽB þU“Ãí&&-·(Ç©YH4×È jZ«§Ù&Ÿe´Lì‘Œç'ó«TKPÔítÕ‰®¤Ø%m«îk7ÄÚŒI£J"`òH¿"Žõo[Ñ-µËxáº.p(psT¬<%ac2ʲO!^‚G,?Zµá»!g¦®Ó.zפP¥ «ßÿÈ>çþ¹7ò5b«ßÿÈ>çþ¹7ò4‰à_ùaÿy¿tuÎxþE˜Þoç]QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEÍxóþEÓÿ]“ù×KX~.°¹ÔtF‚ÍͽXqÒ€5­?ãÎúæ¿Ê¦®>+ßÇ Ó-HUýaíøSÿ´<[ÿ@»_ûø€:Ú+’þÐñoýíïáÿ +?´<[ÿ@»_ûø€:Ú+’þÐñoýíïáÿ +?´<[ÿ@»_ûø€:Ú+’þÐñoýíïáÿ +?´<[ÿ@»_ûø€:Ú+’þÐñoýíïáÿ +?´<[ÿ@»_ûø€:Ú+’þÐñoýíïáÿ +?´<[ÿ@»_ûø€:Ú+’þÐñoýíïáÿ +?´<[ÿ@»_ûø€:Ú+’þÐñoýíïáÿ +?´<[ÿ@»_ûø€:Ú+’þÐñoýíïáÿ +?´<[ÿ@»_ûø€:Ú+’þÐñoýíïáÿ +?´<[ÿ@»_ûø€:Ú+’þÐñoýíïáÿ +?´<[ÿ@»_ûø€:Ú+’þÐñoýíïáÿ +?´<[ÿ@»_ûø€:Ú+’þÐñoýíïáÿ +?´<[ÿ@»_ûø€:Ú+’þÐñoýíïáÿ +?´<[ÿ@»_ûø€:Ú+’þÐñoýíïáÿ +?´<[ÿ@»_ûø€:Ú+’þÐñoýíïáÿ +?´<[ÿ@»_ûø€:Ú+’þÐñoýíïáÿ +?´<[ÿ@»_ûø€:Ú+’þÐñoýíïáÿ +?´<[ÿ@»_ûø€:Ú+’þÐñoýíïáÿ +?´<[ÿ@»_ûø€:Ú+’þÐñoýíïáÿ +?´<[ÿ@»_ûø€:Ú+’þÐñoýíïáÿ +?´<[ÿ@»_ûø€:Ú+’þÐñoýíïáÿ +?´<[ÿ@»_ûø€:Ú+’þÐñoýíïáÿ +?´<[ÿ@»_ûø€:Ú¯ÿ ûŸúäßÈ×5ý¡âßúÚÿßÃþɯ<[42DtËPJ“æãé@| ÿ"Ì?ï7󮎱|'cq§hPÛݨY”’@9­ª(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢ŠÿÙendstream +endobj +1128 0 obj +63 +endobj +795 0 obj << +/D [1123 0 R /XYZ 151.812 311.747 null] +>> endobj +102 0 obj << +/D [1123 0 R /XYZ 91.925 170.301 null] +>> endobj +1122 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F45 589 0 R /F47 596 0 R /F48 601 0 R >> +/XObject << /Im1 1121 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1131 0 obj << +/Length 2947 +/Filter /FlateDecode +>> +stream +xÚµYYãÆ~Ÿ_¡G*±höÁ Fl»>°Þu¼ +ü`AÄ‘˜¥Ø +Iíì >u5IãuŒú¨®®ª®®úº¨ ü©EfâÄØE–è8/ŠÅæp—,v0óõŠ•¬f4Yß}ù:µ‹2.3³X?\²YoŽL¬ãå*Ïóè§o^, ­—+cLôí{þ}Á?ßÿí M~ûÃREo^ñà?¾‚ÞËåJ!9ü{÷VãÐ[Yc‰¾Æ?bïÏË_×ß}ùº˜¤‚qn PR)ܽZªÙ$ƒùô7µ4WêWÚ§¹ Ñfë@®]…‚u {™DÃF\‹ ÐÞWµL»jS÷H[øoyô1 4 /r vüR<öÍTʶ@æ“OÐîŽË•Î#O\eÂ?0ãr85ò>6a.ª6aO–&ˆB;ïü +-vY)—iJšvH=ì°À*Õô #žû§À«âñ_e?U[îÌ÷ìi3Ý¢'|– Å + +úQ%Û0{m:2±C*žr­p?€±1™£qaZ”Çõ±!«Í•âã;vlNØ@Cï«Û¥.i<Ú®çÑÇ`þzƒ²îq·!±`¯'&몉iOÿ™ÎÚèã2ÍÀʧ‘‚ {7pË¡¢Øøˆ<ůT`bRDÙ¸´p]•Ž•\ÅÈ-/Aúy9?ñàh¶ìZ­P£õ\ãwOËÂF_°#ÐQnlïÙÁd½èVh¶tªÄ¥¹`p§Ý>h }¤õ¸è‘ ñDqüÁ£^î´tXÔÊ{ÚqÔ½'}W£Â“O^Ü>ghÉ–[äm…dÉ'„p ÓH¶­ñÿŽI¾“ECëOÂYÈ©³ÅÛ°«‡î¦ÕYôm¶—µÛɱp«h¬"³aêÀÃÃþÊ;¯ÕëÉ?ʨ¯Û]eh!¸wîZÆ&tGq¦D!3}#!U?w¯/xÁýèÇpоݸa4‘‚xç…ƒž×¡Fžåe$š‚]¶»¡ÝgÎüÂÀÕæ°=‘àÌù5#^,,ôM3½­Y;_=Æ(¤O”ùÿ’¤ 'H +cÐ63HˆœiÈ•KˇŽ¦z@«\%(kâ,W² +8+ÞRzW‹À’œ]eltzf°Q] gão‚w»ä¨s …àN Â$QÃÙ§Ns˜*ðwrnèl|Ãç"6"Ï£5)$¨{pém/âÜ<ÌŽç”6—b¥lr¦Í¶â€CIæž3ÀöF¼vx:™¡ B®ñ‘.9z%œ·ãIÅ=´þäu"fËÁ+8Œ°EÅ-^†¬Œ4¡D#'a3Þàv¶û#-°y0CaÃ\JTq÷Uãf°˜õ3½+Ú$„%l¡ù¢ +:7à6°MTô'üIÀä€jÜT–Ĺ6£ &êÊIÓØæB‰ëç‹,.s‹³L~¬ø$ôÕú‘ëÕ›z˜ñrrì6S›IWûÓo‚9,báaà„0ÝôZc'ûb’Ç&øZ-ɃgÿÜx +ÐøñÚG8ØãäÅ#=ݦÑk|Äz‘¯úäFj*H6-ŸGs º,à±j¯Š-ãÔBðR±-íYÔ™Åeb»˜(ÈhœwÈôž7©‡Ñ‹jÀtt·K8SºXÃÁ-8‰8N7Ôœ•AõÒäÑk4S× gjÊé„Ëë;OÜk9jˆ`%©3™bþf¥UOpÙ'…¼ˆlnÃéØ<ö„v_ïð¤=!†ABš­…ÏÄuÌèŒùqØM,g‘Oã|«çEDB'Tþ8¾X}O¯]”ÃßB»ÕÎ5Ëè={Ÿ'ŠÞc„[­ç"NVÕ𥭵Àš®ò §Õ-S×aà¹0 2yx¹JâMW-­XåF oÆnɱ„“kÓR öÇsX?„Hž›YŒ AÃWÞD~^æèY ‚ê–k,‘4)!àÅ5llH>ŽÝ];±ÒvSc\XÝ‚œt<«£;Sà[¯&Ñ97õŸð\ SI<í¶¼ˆÎÁ˾ÝhLžk™ +/f*þ`ëÕü’Iìq¬ÔÃW³åŠE¦B@¾qrtï),×»§ðÅ)‡ž4Úö„d·¡:QM…‘óÜþl-bMkt*û@ÎÝYµúT«Òéty¹Sw²=ôž±ÌÈ}5`ð9çÛÞð€8VT‡-Žݞ‡û£ÛTÏ'§6Ü:¹£?tܧBü>2⪑|²ee0“XÎ$š3É‘S$™ú7ó­¬æ²'_h©F±ÿ=qØñÏX9øžÝp#rR„SVk(ŒÎ+7…Ô4¹ÝÕ»}À1°Ø‡jÿ sÖå„žŽ[f.o•Bª'&x¬© +c{ñVŽ¾Tbâ;Žd£#º~¶ •DP º»7.õÁÏyZãM|ô‚‡3*L½¯5›² Å1[f‚ /Á;¼]³ó1+ „ öœøƒ“×%ö v6ŒÔ‰_ÈšÞaIgÒߪ¬p¶‡ãC™SïvyRvSø­ÚþB<ï˜b…¡YœÁ.%Y„T-÷oæ'˜çsÃãIh0bÜTÒŸmã®ã®¿. +íƒÃú=àùyÃI ‹o5zBR̲¤IÊgrÁœ>¸ÁË`ééÈ;>rnIrŽ0óaV@…a'ËÏ~¦ðœþþÂ3zù=/¿k¨ÌÆZg ªØ˜?Yüóîç_“Åö.Y|w—Ħ,ÐNbU–‹Ã 1x3p¯¹{÷×éûG൚1»üþ¡²<Ö*÷ ¨v|Æpe‚Û}(—ûnˆ¥’–/‚ `ÇÄB¶€­u+Íf1˜R4þS°F%Ôº¡>ˆ‘ÀÓ[k béÏ«oãú7Õ^«3RÿLf•¦qRæãŽb£9þAÀ kJhƒÍSǾx‰ÞW¥†íðY_Ä…6SÆÔ6¿¡i™ÇIa:1±üoÎYX­f¼®Ž9Iâ$7ãv³Ç ‘ +Ô;I Gðfào€qÚüEï¶3üćÓSqƒFàý}¨$¿ á«ÒReˆLÄÁç`¬lïÄ€|9ªÀ¹À±—gá.fÀ> endobj +106 0 obj << +/D [1130 0 R /XYZ 63.034 234.455 null] +>> endobj +1129 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F45 589 0 R /F14 1012 0 R /F7 586 0 R /F47 596 0 R /F36 583 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1134 0 obj << +/Length 3074 +/Filter /FlateDecode +>> +stream +xÚ­kã¶ñûþ +”ÑXáK¢” ÒôrM€¦iÎh&A¡µµ^¡²åÚr. ÿ½ó )Ú’u\pÀY‡3Ãá¼gåBÀ?¹(eZªl‘ •Ú¢Xlöb±ƒ•·ÒA¬È*‚ùÓúáÓ¯ŠE™–¹^¬Ÿn±¬·?$2_þ´þæÓ¯23€I›§BX@‹_þå‹ïÖo–2ù~¹ÒÚ$:]®¬µÉÛ7ëõ×ß¾Å:y·^&ùâûe¡“õ›?#·7ëÀœÑYšë|–3:|»=AfMZ¨œøûßr•©,ÙÿÝúÏù4Ñ™¥IKc+¥RQÒ†õsÍ'Ùoù”Fi½È2`è ÿ}øá'±Ø¿ß<ˆT—Åâ=<‹T–åbÿ Ò²(Ý[ûðîáïÃy<®U„ìöB¤1©µ*ÐCöšÃR•IÏ,žûÓD¿Y®$|’ÉåT³ÀéKuà—ÇåJÙÄêÀNÝ–ªHj·¾íðí½{«Î ø€]ÛòÚñ¥·òðâÖ"ÍU»ftJaR)T@Cz7¢%¥L‹LÎó0³Ôdžúš^9)†‰á©pJ~9ƒ0j”Áv¤A*KµÒðX²Úl_Ÿ@ò òÛúÐõõ_LòŒr%¡òû® Þ^hË»¦wÀÝÆËE½ÄoDâTñ¦ÛJ”©Éãg{k|–f™çwÓñ¾µŠ Á&° ­P¬i™eŒo`O‹"Aå#Õ¨·øÁ&}Ç¿§úxò";ÓÿAma[Å@»æç †ðÚ0+~Û®>+³OÖøúLß'n L]g¯»§,WáÜGHïñùrvì ö/GzéÎMï¸u²QhíöJ8?ŠLt'¶¢_‰ ”AŸ%›Ü4rF{wôêÁ´ëoÒµ; +- 7s#S¤yî%Pµ-îÁkP€d$„¸6·B¸gئÈÁFfíz¹gÖ ª»V=C)õ )gÓ©I“†;+LùjIÙ`FÞ¬éRȬµƒYk Wãm_›&8ØÛ8£ÅÊY=/A¹~^fyR¡eµÕc[ó&4HüíŸëh[dö ›æR_© ÚŸ)èrt™ùÀOh®‡Mßt‡³_%MêKø­éù ®rpmsØœêŠ-ÞA#J^¤Ï +>XnQdÉ?Ÿk·ØOÞG ê(Ì+ŒwåAù°ùȈA@è+µUä]àgð?—v)HÁ¡5£ Ú-o»gr°Ôßs:øõÉ~ï·"[Ì»ô· ‡hwt) ñ@Šwv'h`Ý¿,ÈäÚUôm¨úÆ«B´¨"ç;‹/?º³Ò3ß$¼ÿ‹"»¬Nd(Ó·ÚñoEd7ÌȾÃàBvPõôŽ§zÓ¢’ðxâê\D½ ßîôTÓºÌû>L©UjÞ‰ 0w½˜A^ô}76Clðc3Ô¼#‹¨Q>j 4Iˆ[êø¡‘jf6-D>ýmš™­pls÷ÌdØÖ5šþl_^µo6 ¬/n©m)‰A~6t£d2¦P¨Up9š® ?oÁÿ¡ ÷Xõ¬Æ(ðÊñmϤC$¤ç8‡óã@Þ’â[sDÇYo¼~±¢u´Cú¬£Þ…€Y‡1É׎šÛBˆ*Tá-%;-ÎAOù'Ü[‘AŠogÜ„4Wù‰Ê½OùQˆ „+ 2àýbYÍæ<*ÍFÌB”.!59uüYjV5\¸Š5ôÅIAÁÍÕ ð‹¢Pº h…¿C·Î·ôü5˜öîÐü(¤ ^ÉßjÌ ¿uÈÀS@—nÁAâSW’‘–êL9Mvšâ°7-¯…¬ á*yòkUÛí^ø%øÄ{%\mÅî´#Œ.Ò9ÄçËaŸ#LUÏb´'’Â3‡€±—ÛwAl…ó|­N5?0 Iȳ ŠÜÁÃçü ¶å›f¨˜|RmÓ:xGá_ÝM¯ì芅3¯º +ã8gP®ûG \› †]6=kÚDÔ¸Ôѵ ± à»àËBìšÁÐ~­zWÍk:ûåĸÙIò¡D‹Æ\SJ•äõBÈAõÇ*ãZEÈÆJU@n!=§UØûC§êǨD[ßå êæ6ÈdP”êwáÛãšã[çèV&ù±f±èûXs¸fY+¥Ã1k›îHÅ£—齆¡RJ`šÁÜK³<Èü4sŽXH³æ¨¹4+¦ÆlaÜ\¡½¸×îi²]h²âÕl"â0¾Ì<¾> endobj +1138 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [402.312 367.968 408.774 380.007] +/Subtype /Link +/A << /S /GoTo /D (Hfootnote.10) >> +>> endobj +1135 0 obj << +/D [1133 0 R /XYZ 91.925 544.736 null] +>> endobj +1136 0 obj << +/D [1133 0 R /XYZ 91.925 500.175 null] +>> endobj +1137 0 obj << +/D [1133 0 R /XYZ 91.925 434.748 null] +>> endobj +1139 0 obj << +/D [1133 0 R /XYZ 91.925 340.983 null] +>> endobj +1140 0 obj << +/D [1133 0 R /XYZ 91.925 280.407 null] +>> endobj +1141 0 obj << +/D [1133 0 R /XYZ 91.925 237.882 null] +>> endobj +1142 0 obj << +/D [1133 0 R /XYZ 91.925 206.384 null] +>> endobj +1143 0 obj << +/D [1133 0 R /XYZ 91.925 174.332 null] +>> endobj +1144 0 obj << +/D [1133 0 R /XYZ 107.168 129.994 null] +>> endobj +1132 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F36 583 0 R /F48 601 0 R /F14 1012 0 R /F7 586 0 R /F11 674 0 R /F20 1030 0 R /F19 1034 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1147 0 obj << +/Length 2747 +/Filter /FlateDecode +>> +stream +xÚ¥YÝÛÆ¿¿BèC@µÍåîòEœ4vØ©_ûÐ$Vu"B‘ +Iåìþõ¯¥H‘w P .w‡3»³3¿ù8µŠàO­FÚ¬’(Ó,[íNwÑêVÞÜ)¡ØÉfDóåýÝË×Ö¬ò0OôêþpËæ~ÿC C®7iš¯¾_Çiðf­‚½ÿ~¿»_o´6Á‡uf‚W?ÂÔÛïÞ¬ºÿöåëìÊSk¦&ƒM ;•"ÁÝ×÷ÃÆL”Àº}vïZeaÙÕ&Nm¼H“ÁϦ&Ìâd8Þh'y*“®<nçÇÈF~Ôí®TDé•xI¢§yN¦Šò0³ÙDèߡ”Õw ?¥ƒ²ÆgôÇ‚•gFßÛ44J‹òöç™v• 3cdݵ-ðuë8 >3o×3oWïe°]ƒƒi~ß‚ …«H…y*Ì/ð.ö³Ä6L”ßAÕû,ع¾läX'”réz–ÃâEèá©ÜsÞ^€˜¢µ6Ló¬EhnÕŸÚ0VÜ¡™IÊâ0·ù³’„ä9Il~cI÷ RP†=Û$pÕE^›ÃÂ5ƒ$ÞGºò¡ž«9mî á„žx½u¨ÀùF¤Z¼Ïs†±|øþÃíéãX‡YžŒÿëÝ?E«=¨áÛ»(Ôy¶z„qª<_îtht*oÕÝÇ»^ÕäyÍôd&ICÀ„‰ªþóáçÀ‡€ ²ñrAiy¨33±NÔÆ¢…Æ°YaÔñ-Œlï¯0“ç Fýr[œ[ϱ£ßzç䳸,îGôJÒ À\ÅZ¾óMâP§ve ((Ê_É`oY¾¬dÏk3b6GjЭ'¡ƒ×èˆè†Z&ÉGD«¤•[Ÿ•§+eBmä¼1 ]"ƒ9¦|\ ´¡†¯TlƒWkü8<Ààr*êµ&Õ) + Ôu~õÃìš"ЦTÄõ*Z»¦¾BŸ€%ÎbÚ2Ò8”ù@Âø„8yF$$÷èJF°ÛtB1@ñØ7øE/&Dä…k«Ï"ªf²RD÷GÖ\ ¡oïí„7Y£Nø ¡¥DÁ­e—¬ñ¥*·x‡Êÿ¼ix“, ÞãQ~¡S Ú —Vv * ½àûcZeQ§]ÙõÞªIeøÝcYU<:Õ™GEUžJãúbá§á.ÿX¸½ÛáıÀà'Ü`É+ çhvý¥½Î8¡¦£á Âól)šµÂü¡¥ õèIž¦+FÀ„ß#evn°óJ7RŸJÖˆ¨ÖHXê…C½£{¸G²æôÞÁÖA¬cV½KÂ]ö%3Çù˜µ]IÙÉ…DÞõŠñ-š$-Ô;4玙:únWœ{~'n݉¾ê‹VÈt½§…WÅ?ÍY;&Oɡ£¿d˜AUã“Í¢)Ö§§ÕŒÎ*,æhG:L4dnFQLúÐÌóÚŒ˜Ý¢al<ˆ›€¶óÐ^vý…n€¬î8d»?:9û©pµŸìÑÏ{ãÄ11kˆËN0^ŠÚ,™¨Gò‹33¥cA£##û­÷¢V›NlÇd6nçÇ “½ØÑ~€¬òèrXâ:esøÁ˜p€¡®‡eû2ÜlséQâeØêLÜØž8Qm©ÅzÈaLðbǾh9X ^ j>4UEV§ˆ'"ÚÔ'çAÑ» ]ÐeÙ,Œl¼Ò9$Sñ$ÍŸ¥dBºÑ’Ýèd”ýeaÛÇæŸO— +ò…{±ÞXÀˆ/¶~°CÝ@6  [^þ™gwüø??dm+o/— ñü³ÛïŸä–$¹%IùC’º_ÛI"@'#ÛgŽâÆ&î·‰ >ƒ*Gå¯]3[£r80"Àç àÀLƒSd1øVvütü88´ +³øÊvK‘ÁU<õˆ¬Ñdƒ¤òt®ŠÓ(5“ø½ð•P\²t3Ѥ;Šä¬z~Vçyp°äGn$PÇí™Ø‘#\ö»A^è’¸Ú ¨¡N~÷öÐn?óóÝÚb¶Öõ-Oš–f¨-Dó‘ÎëpH]#í‹ ÆXܦéùzÞä4´{Ûjå>ÓÀqã1À%hHÅé©'^™?Gš†Ä=Þ~sÆK'Èèv8ee0nÚýURI€¼:¬H§®†_Ÿ8Ý‘,»,ÌÒêT/r(;¿:Ììù«u»Y0ÜÚQnÅyw>`ðà +Žóˆë9xzÊ!3‡9†'œ/ƒ +‰Fɯ0 »[ªYHwá£öTŒLŒOÜñmÍKœ’І^,±”ÞL)} _ÞNÉ­°_Ãk'×÷t—=ø¼¨‡ëÅÉ`( +ÜÜÅ[ž…•\pݹNFžç$õÅO¨öÀ ˜;Tb.ø-åId¾4T\‹ÌOì3Wòýqîðþ6y|›úp©>`PAQ…ÕMц†÷‚¼ª©$:RŠŒlùãÛÐI) +ž¥¨æ©d?Žn©©_à…ƒcsiò[I‘nÏ´&âš'Þáòv\V ]ƒ˜d<¡ï\§Úgæ8tUÅ%‘¼Ši+OZè$¥…NØ <:];s18ž[Î)ÙÁqG„’àÚœæ!Ñ(ÍC·ÏôÓ&‡8P+*-Ö¯ÆI¢‰ÍS€ž„™úaóŽ‹ÕaªÓU¬M˜þ‘¦VÊ^î·§ÍÀŠ[ZvÜ„MÂ*¦ Nì~Þ†RI¨#;‰x<‡JÞwL®Ô¤ÿum[¹»<4™ïÍÂmÎ>Wp¦Ô··³Ï³Ð ­]çÕßõ Á9ç<“8Œýä–l'ž'þÓ@Y€¸M¼ýÒ³•§«Y$¤qäÔ ‡÷QÇdÈ<áZ&R¸¡Ä£¢¼á'fƒÞXo“Bqn +ã;)ÔK©¦°ìön$õuï‹ü¬Ù?Há}“Q#Þ@Äxx¹rÝ3Ïšß|'`Á$ÞQ—|-…í$¹¤4àÀOnܵ¥Û^Ë(ÃRR‹Yo˜'1y! ‚])nŒ5Ý7\³$^±¼ex¢¼±óîÚtêÁR64¾ª!ý“´y)äï¸Ä9T]Ž>ƒÑQy8¦äv„UðòPúîàˆÆÓäyØH>Êz`ìóŠüÖy‰A™†uÓ3S:=ÿcï;N×Æ3‘Œîî0äºW©ós·Æ |©IÖ\û°Fú°ßx¤KëÃ~jƒ¯awTš\Šî÷»¯˜5<ÖPI\„ɧ\mèdh°Ð3™H¹óDŒºáu¶GÎiHÐÐŽA˜’á€z+­tª8@ ŸîH1­q}ëÎ"¸[ˆ2×.¥·—Á JÜ¿Ñöjñmã»`0ëä)Õ 0²­ä;ÌR <‘oÁ•kͯXŸ1A„ö[m XŠÒ¤Á—ÈT¶êÚ¡/’q‹|áb¹ uœ/ý£JˆU +ßF‹ÿ¨Ú<¹endstream +endobj +1146 0 obj << +/Type /Page +/Contents 1147 0 R +/Resources 1145 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1120 0 R +>> endobj +1148 0 obj << +/D [1146 0 R /XYZ 63.034 584.788 null] +>> endobj +1149 0 obj << +/D [1146 0 R /XYZ 63.034 568.782 null] +>> endobj +110 0 obj << +/D [1146 0 R /XYZ 63.034 527.23 null] +>> endobj +114 0 obj << +/D [1146 0 R /XYZ 63.034 170.301 null] +>> endobj +1145 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F48 601 0 R /F47 596 0 R /F36 583 0 R /F45 589 0 R /F11 674 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1152 0 obj << +/Length 2841 +/Filter /FlateDecode +>> +stream +xÚÍZmÛ¸þ¾¿Â= ˆt¢H½µè‡mºÉí5¹¤9÷ÚC,´–lë*[>IÎ^Rô¿w^H‰²åMѸ@q¸ˆ&‡Ã™á3ÃápÅ̇ÿÄ,^„³È¼8IfËí•?[ÃÈó+¡)\MâZ4\\}ó,™¥^ÉÙbuÌe‘¿uD2¿øî›g¡ÈDy¾[¤xúíõëÅÍ\8o殔ʑÞÜãØy~³XÜ~ÿ;¥óÃbž(çúÍ<‘ÎâæOÈóêfÑ §dèE2zT~Có(ÆÊK‚ˆÄk Ún$NWn‹¹«’Èpèoê¦å®Œ?t–÷8”5¹k™í°:÷s¸hëÑd̹(rîîj¦Ý7Ň9SÓê©Ó1Áaóòâ/¶h<øÇܳAæ8ÿCYãB‡;¸4 CÒìÛ)æ8‰kž'¡`-`Œd +»1,:H„jÖ{Ö§áá%ö£ªø£íʪâæ6ÛekÍ µhQ°[z4ãÁʲþæI‰³l²v؈dìǨ;Å’æÑRàH +ém)D,r[ àöظD¯wZSm÷ÇQ9}O(§p£ãí/Woßû³‚ówW¾^={€6P¥él{xi’ê_ÕÕW‚·a弎cwJOHeVCÃ’ Æñ (xÍrg;³K‚=ó°[v¼…@U¶<0 +½…n?”è÷•ÆT$¼ÀOGa©ì¦pJ]ãàR0ÎÜq86ä±àB¸Iê\ïŒ#Ø=~ÐY `A¾•õ"˜@­&#±âH ŸæÀ'{R¥A4ÑÌ)Ôš¢;4tnRlÉô×̇沦Ó#×.ŒA§Õßg ÊÚ[!b/“úf[e™MCZj¢<ëè$žl¶½9 ±ë¡¤ÈŒêî¢(…œMD4Ôè^<ÍzO&ž¶Þ1öfq™Iä'&’`D^ +°ÿ¼(àÉÔ¤—p§Ùˆs¼ˆÈ^ÜÒÔG¬„ò=Ý® +Í‘ê=n´- L$A…ò%Þùçiˆ–)N‚Ÿz*Q3‹ß/aö¨t€-ˆFÒ½,²]ɇ§-„Q/x]F60Š–Ãiÿ—;*/o¨‚³=Ùf¯O°†ªÏª(=8k¦4¼\‹Ù©Xl74m±^ýù¡öÓYœõZ^fc“MÌmÁñCNÇcèÀ€bâÞƒ¡[ô»]Ì2 ÔK(gã4¹ N£KábbÈÜÎUb^ ?TMu ÌÎÕëǹ€SçúÅY j^©GF›‚ª%Ü«Ýpóñ'‡Lú¬Dwúäü×d:e=øÄ­ê¬/bŠÿ®/áÒøòq\C.C2ü\kªËàz`v׶XX³yyÕƒ’—@õ‘ɦPm‰öÙܘŒ´Æ|¿ÓmÿM÷_jY7êsˆ½ˆš—ÌfQH6“3«)› ?ò’(ÉTA$àÊß6C¥Á1t-'»¸ïDÊ÷¼èhpÙQù +z(©¦: +³à^:ËúK2èøÛšZU}¨rî”›K OÎú ŒŽJÌèÜ5þøZ\äXÜÂtÕX‘’ntOÁœzLìÃ*JºOCÜú”±üH…HQpíë +]k¢\“é[9’œÞ†áåI4zÀ¾‰/º^®Åìx“ex2Œûõì ±ØdÙPî¾ÞÔQÝpÇŠB(';Ä0Œ ÝòMŽö6Ð׸ 4FÑŶ{*ÇáUàžú€²uU<‘nÚð¥{9ŒTF.dêÚ#Žô¥*h·[áVsÑbtÖ-— Ñ•–n'8ÂÈpjAçæ˜*¢Ø‡ã×ÇÇÞX䤲rnÂ˯]î•r¸UóÝñXòfõ™¢® 9ÇÇöõkè¼ÕGî0i••©¦U[ZåÑ“[+D5ô#˜ç ?vku5©kÑedǙ؋DÔóc‚µC0pÑ4¿Ÿ0p¹âaL,ð,ÿQÇø³ÝßeyŽ#_gO¸ëkD—i/1 áLÿFO{ùún ? ÿäZ&© °o@Ä.ðÕ Ö+~Çô¿mß ©v_=1bÀšwTиë껶ƒYk-¯‘`J½âײC²›¿ß.îž]ß¾øë››ÖÉÃù_'u8'bƒ7J N†Où‘ó²h„Î[¡ÞsWEÞ7D'è:´\¶à_OñƒE{‚VUèúKhmd˜xI ui¥-×\ÛÁÀHH;–PÂÑ“˜r ½iøX"a¶æ¶UÔÅ¥6\6Ø0F0R´…®_0ZóõÈÕáñf9hIÕãì^Ç)Bg¨oQÙ3q¾çÒ¦ÄSjTe†Ÿ\-\ʺLSõ¥X}Æa§•÷ºS‡û¨B†Uê¯ÁõíX&mbN¡L­(;̹±¬Š¬1²ãTr×4íOiì›È†0qN"¸Y$^œ~Ùã€áåZÌN²!¸qد7z@q!‚÷EÎ} <Ý”r–ÂTÈÉVúéòŠÀkx”®kÞÚͶ5Eg~'ЯoîàWCˆšz›³’Ž-$Õp“þ™¼Ú¼Œî/65ÅÕõ¦ÐnX¼ŸkóÕZ³BÚíPÍ>}ç{Nï[Ö³´+!<÷Ù˜­‚â ûÙ’;O7ÒQO¥VPžR_´÷†•;ð:¹íÀ-G%YÍì<=©£|fç»}P)Óª=êHÐðý±4UÔ–\·í˜ßéóãäJ¢Ï|?ðBHÔϽåªXÿ]|7u¥suì¤Cy¹.uR¯b}`ÚãæmiÝÇg@u+ç4õuÉ:ý5|öi·úl!´ ¤¸]Á¤ÙÄS|{í£þÍÚü)RéLZe J¥d¨ã›K,:î£}:Mïû?7P:ëÅ/½¹‚ö-Ók|ïx°ÛÐ_?¬7ægÁRŸ!¤X_¡BûhîG¯[6võŸˆ¤àîA:õ‡&RI/øËü7eí9> endobj +1153 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [157.621 261.622 169.577 270.035] +/Subtype /Link +/A << /S /GoTo /D (cite.GMP) >> +>> endobj +118 0 obj << +/D [1151 0 R /XYZ 91.925 219.841 null] +>> endobj +1150 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F48 601 0 R /F36 583 0 R /F45 589 0 R /F47 596 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1156 0 obj << +/Length 3066 +/Filter /FlateDecode +>> +stream +xÚ­ZKsÜ6¾ëWLíi¦j‰/ÌM›8)ec;›è²‰sk(‰µó°ça¯óë÷k4@‚CÊòfRªÒD³Ñèn|ýå¬ÄŸœUZ”Ú̪R çýìnsUÎ0òý•ŒE$)2šÜ^}õ5³ZÔ•žÝÞŸ³¹]ý6׊E᜛߼º¹]r~sýãÍ¯× oæ|ûúÕ¢ÐZϯ_}Ëßüøâúç›Wß/~¿ýá«ï|σÂyˆ³¬‰àêÅm'£)+ŒÛÏ.#ÑŒÖáG˰ίª0Ù¾y·_ÈyCÂÿíBÕó#$®üüzÐìwX©5~~sOÝ|·]â«%Óˆ®ŸíúáG+º}h#£ åy’8›®êùr½ÆÍnQ`ìŽÆ–Ç$ÊŠÙ¿?—c¢g^÷‰ècœüôO‚ÍûSÜÒŒGf³o +R)UH)jkÃÒ'¦§Ùv[°Ò–Ø+,•®Wü$ÒÞö‘ⱟ ÞÂAc`µÛ²TÚªù2­ב$éâ~Gÿ7Aú4MäFÚxŒoå†%5Ý»aÍ°©ýü¶“…çÊ×˦nAntP#ý‰n¹jvoJ©ñÈ”ó·,Ú‘æ «oÒâŒöóÇ?oo–AšO|·Js“m–'Òë1ŽD7ˆswQ†õz&‹ŠoâcÒÙŠ¯ƒq@21£ÿ&5™èú¸[ÃNo×ItÚÍÐãë·4ˇv‡ç§ù¹)¢¼à +Ž$äCd¸åñæ¿w¼…x'|ˆî^ ¶ ~”|’ïîùwÕ>?L,'ÌÔÛ% ¶Päc‹EòigyÛC›ù¦á™h‘v¹]ñE´lÐÉn_"A­Ë‡zhD@QÀ¡T¢ªë FØöAòè¸f‡ÝìöŸøž ¿ÛGºèŠZ±g´lz\Æ‹·ý.h¶üèpº ò5¬Dâx +öŒSä6[%›Šw 8“€ûæpä+hšVt+ë·D'©/ÓŠQ8Øoà2•võ€úpÜ“ú‚ÀGºÚwlðê)ÌíË~™t30gûGºàyÖëù/aßEb^fm·Á?è­p”sLP™ËgûÐæÝy4qN˜ÊÏL] +][Šï¯~û½œ­T~¸¢‡~ö×¥p€Í•µ¯ãÝúê—«õA'²*2^ç1Ç—ÂX×ÍÝ:b³2•è—A+;ï¢Ñ» ÔCôþ…Þ»lŸ"«H<4û¿Ó@5xe„<+~yà¨67#£Cð ‹tdº#ãM¦C߈õ(=0ÇícÃáßd:RБKáÿtèƒày¢ ,·Œ„w»S§lqŽÞñ&h¿™‚"Œ&¯­°¶Ž<íÃv<«RV‰âlšñbœp*ñ{ùÓ¹÷)g…Ôj† ìÆg½O £Ý´÷%VEÏ+xßP/lU§éH¦_zýËxµð¥R‹¸*7K–»ÇlÆ +ʵ…6¯¥J‘ð›¸Y) ò.笈6¨ Ñ‚~7 rïsÅ”5·šS‰ªÔÏkÆ ™³Oh&ò*2f¬š|IJ"íÔ²›1îMØ8ÒO!m –µpŽùšÖSú Œ©‘#5ª‚Ãú‹0&²*2^çSWÂÂ4‰"a §±/`L è\¶+~’¶-öM”Û–†¶>ã¹›·÷qœ3›ÓnC€.ì; .yìÃÂVpzkEX$u„µû”z|búUs¿ ™æ1’Ž”Aq`‚@I‘ÿ‚[7Ä‚pEÙ.\ô›6]wáÍå±7f‘ÊúøRŇÞà@CâžîºG”)‹¢ënõáÕ¿‰eÛèÿ«î É×eçÊZeàŹö^x  @ÜöN_äC‰W‘1;w"]cc—²›/KÀ¢”®rg çCÈ·Úããæ<='ú‘$(–³6#csüí² +® Ĺ^b§½ƒÓ»ÉZºñ3”y9Á9!"€Ì ¨<ÄÚKÑgJÕP¿ ±¤žÜ¥Neª™;ÆÏë\{£@bœ¨K!yì˜a)±»$ŽDNEÏjF¤‘@!— OyYpýs¨DÔ—¾: %9”z„-5ô£›í»Ó˜B©¯{N@sØ ?™RHT«žé +0(/Kì¯"cvnOiBªïæËS»°è´'¶Bu™ËrJ)g•dç¯OÇ)­hD+©Ï´2®'Ÿ+‰B`nc¨&´Ël 6¼ +§¶Âb›ñhJ¸–üóŸ-ËÑX)¬ž²¶FÈÒ…_½_v‘W‘1u¢„k%’aZ®cücïr\À;óWAFÏí)ÈÐ%rTÉݱÿÛâÔaù›,áÒ=™¦ÊÚcÜwS_„/‘W‘1'ª¥Ð _ëO?ÓZ^`)ߌw €Äòw]–Tx HXÊÿ²Ý¤¢âB5O¹{(0ÉeóÞÆ.zlhä´ë&zì¾á `û¦´eÔ¦B·æé¤_+ì$5Ó{æKjNÄ8ûTny3Ö¦ÍKTJ0o¢ b½x9FØJ ûˆrcm2êùB(l3ˆÖQ;åP¡¨ÒKåø‚ª….ø݇ +qÃîZ먜¥¡ü>i~€trì¥Ø ¦|”ÀDsâGVEÏ+huˆ®B¡Z§é‚‹.(VÌᨎZ #Œ®*MÞ߆$½–ËrBAu´’u²ÚE[h.(‡¶p]ÁiÎBŒ,g•¨.dž¯hK`™&·S.)è 'ySš±°˜„-YH@˜3j £"*!]RÄòkJ¾[ª í”,(IëZuZK‚œñsÏúò¨ + £òø"‰¬Šž×ØG¨NT:M +îEádò”×jÆ8õ’J9ÌŠì©ðÏ.º†ÉÀõJ(Ñ”øŒ5-2ÏaÍU}‘(Ô£Såœÿïî&Ä‘¡˜½Ü¦5rL7CSü lʬŠž×„Mi¥Ušî³û~`R€¯!Aôç¦oœR•3V¨/aŸn%Id‚™¯ÌEQ%ñ*2f£¨BYq¥T7aHRÿy½pnþïq€–B¹óÐ2‘L)Š®¾,™’ÈŒÑÔÞL…²ªEé€Q +¹x©'ÓÂD“HHôïÚ‡®¿ XÖB}20To¡]ò£Ù8¯ (øÍæüÓžšx}n +µ%ù²"~r—Àl$—·‘ÎbOE:ƒ?Qk§ãcj¦ÉRMæv€¶Úù™ôu +›×ëСæê7lÒ¡QSBTRS|ý¢L4²*z^ãR×jáµÍ¥M¥®˜jHw!ê©Ö¶·úéÄã%Òœ¿`m‰ÕçÖ¦”¦.p¶´gRìZ¥Õm—áØÌÉé#sn)RKЩP‚ðn·E•WÄ®ÏF$õQ‘J¡–ùùD})+D¡žäthV©e„òã…P‚V–O2îRóŽ+£*;©,7y_ðAdžŸ÷ »k\ ài8_ªÌøŽ8MnùpÐ(*o/ÞòīȘMmù(H†¥lÕ Mœ›[D°›U³Œ§Œ^Ï©ûêt×æÅC›¿ËØT +"Q·(ÓüºY²S‘æý‰ºxkÅÔjÆ¥V±¸nù˜Os5 Å&Ù"‹wr¹ƒ¸ã§Cd÷ŒÊ7ÛušHg‡TÅ»ôÉAx‡»‹*•ÒyôÃcê.æg¾ÜÛz™Nv­ìOvé‹þAfýj¾*>…ÎÌüI¹-³Ónþª!~j1y(g)-†q8ƯBñé?¨xòÐâØ—íuOæi×ôQ@ŒébØÌ¥'Ývˆ™J|£ÝlºÃÛÒ†¯ðü#GÃÄ6}‡1Æ ×5!‘Š+‰ˆB-ÇÒÙ‹01ñ*2f#PÔe4Mvr­ á_N|¨DL Y³ß“_` W,¸j`*o,™jºs-‘£Èz2I)g +åút[¨(4HE§K1$KTP. U¢¤@L!Ù©R0†6*`YÏ(\‡üSHK($¼äJæÛ&x$í!vQKèB62w]ÒÌß@éGþÖbÃFÅãßxœi—«~‹˜àëáã)0%GÂÈcbþcûövá=©[ìeb÷”‚%°žÖ/ðKèJN jÇ”t— þ@4î€endstream +endobj +1155 0 obj << +/Type /Page +/Contents 1156 0 R +/Resources 1154 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1160 0 R +/Annots [ 1158 0 R ] +>> endobj +1158 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [378.156 186.707 384.618 198.746] +/Subtype /Link +/A << /S /GoTo /D (Hfootnote.11) >> +>> endobj +1157 0 obj << +/D [1155 0 R /XYZ 63.034 602.788 null] +>> endobj +122 0 obj << +/D [1155 0 R /XYZ 63.034 459.358 null] +>> endobj +796 0 obj << +/D [1155 0 R /XYZ 220.435 226.994 null] +>> endobj +1159 0 obj << +/D [1155 0 R /XYZ 78.277 129.994 null] +>> endobj +1154 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F48 601 0 R /F47 596 0 R /F11 674 0 R /F45 589 0 R /F14 1012 0 R /F10 1027 0 R /F7 586 0 R /F20 1030 0 R /F19 1034 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1163 0 obj << +/Length 2606 +/Filter /FlateDecode +>> +stream +xÚ­koÛÈñ»…pŸ¤ Úì‹\²EpR'Í5¹¸‰ +´½Z¢l"’¨©$ί¬aâêñ£Îö¤6ï$,rg„–Cƒ*³àlŸð Æ.o£Õ€.Rk§OQ¿èvÙ„§òâÀ¹DMïΓ/6·õœánˇ’¬èà Šù'Ƹ†öÁ»ÙVǨ ¢ÔFã©öï·=‹]J¦"rèõC¡Ë“š÷hF.%salëG.2 ¥zÀV—»83'œ †÷-T|ÕXßsm³Î5I‚Kz×4ë#…´%›³‚!2!%4'bL +@ +þù4K0¼ äŠwÈ1yy(÷`lÁV3R''Û¥:ïÄšÈ&M.O_e>FÕbÄÉÎ#æ[Ÿäв>Š3™Y'4`H]«)Óéų[rN52 üùàè íèeÇ8]f„x†¯«ºáp‡¤Es߃+Z¦KÁ€h£A*g?aøM<³Þ7Y2© + +†¾d–5¥ãm½CTcj»ÐR@€Ïàa¼ +î§Ódú^ ëúð¿üH ÜÆŸú°zŒVäÉëp*¾W¹íÅ’"ÚuG‡GMû£Úú§wìÎtS +Èr§¢)çÙt¿)–t< fÝRB KaPü :8—è—_Ší~‚æcÔ„%ÖAD義Öºo:g&´ YdM6´!b Œ„4r3âàÚà‚çñ +­<Àr ÝW^ü€€35L´\^::E?EkÕiF.ŸöÈÍxBb´òËÞ§ /\2$å4Ô˜5éruÏ{Th¦ÙÃ*ãƒX¢ ™ú°ÇÆ€G< °Pè°äç–wDNÇ„ +:‘Q'^¨ª×8¤Bë ”÷RÊs +¹HÓtjm ÞV[LËFAÅÚ@ePâa¨ÄDó3ÊN yJ»Ï›Қț¶#&#E¢Òoš $ Š|$Ÿ¾Ü1?e±Dïºã'Š1ýðU{°UȔ㋛M9Âiû€Y˜­> g‰mEµ}¨†¹ŠÏ 4ÓÃ8¹fOɘ!4ìÊÏ>Ìœ¤ ò¶«MUú8DUûrsl|˜¦xz©6 ,fÞóëæ9tæ!ï„ŠÊ!!Õ÷+OO_®Gˆ¤"u]Ð dÓŸ9Ø”¦Ø`…Ä·Ë®Î÷á:{U?wy•8P…Ô•p–9n¨‡1Ô>Ô-÷3§¦Uú€@Vy› ÙÏ'è¢éa®ù%÷½ŽøŠûTO XéýIÖcìN±a±Ð t]—ñí‹¡â“ÃÔë‘PÒŸï K^l¢è1„s uŠ!óRÂ-fßaqõÄ=æ1_ì@ó“öRÔ¤(* ãI5ñòe\ÂU˜‚eþ Œ<÷fwV+k0Ñúý "Mn¿§XviòbÙÓš÷ˆQµ<àÊH!a#ÀP¶šL ”5ÂÊìÿÙ§õ0g6Ð@ 8ó´ :û„Á,¥R:^a­7:yÐy–Ϻãý(€àéR¥Ñø$_îwXKö“GàCëÚªåUÁ?qqSÝV;ÿîÑ“±ÌË<±·Ýèb¢§@ÄŸC¹{Œ·ÜbÞÝ ë“X¡ûðÕ¿ùÜ i‰É_w—Ä)ÏIˆÉr[îy}(¡vÁÒ‚¢Áîüb¹)![±ÆÅŽSþ¸bþójÏáŸ7׋Ï.ß-øé_Ï._½zƒÇ=ë$Ô@s…%OOb8ÃiQJyûõõ‡ë·WÏpçÏ£ hÏ@Õ£ÓgÆsóë?_½ +ŠÝOæî9ˆáÁâ¤c‹MzàöõÕëqFíùÑƉ4 9åväd0$”Œ’OOôÞ”^qgqaÛ«ËEüýZj’sÍÄCš!t$D“¼'ê²¢ +wŒ+‡¥ +tâN ŒæQêûº–ûSÉìŒ;Î:kãÛ(Ðv089.÷¼Ã¡KŒÔ›×(¦‘&óÛ? 0ÿsýæÝ8樛`ª'óæï—ÿ'cþGP¸=«RæÊ‘AB±ÂyîÍ.$n¨ò¶Ü¯®ªPOàní;Ìð\¨ú"Ö¥ÔÄ&žÎÍ‚iXÂH|ª¢]œ:ϸ{áY§'ÑÍތư\Åš)NkW·#³Q®)H˜3ßýÆÂvOåh]ÅÚ`P×ÖØ‘IXž e³‰JRH—ÉÂ<­yØé,LK%”qñ¼“)~:6ÅumÛŸ8h–šã6N¬òÞÄ…g~ìë%xCé%rWôM–+¥°Üe½ò°põŸ_sÅ¡+?ÿ…Ò >SÏ‹ØAÐÿz¢µë¹[ Íá‰=šw´Î¤%½F©3Dzζ˜Œ g!YÂÎý¾ +oãäÑØÔ‡×-öTWËèZ'…ÔGòl=WCÛ2”1õHLÿÞ oð;b¼‰Ü +ÈÙìm—IÍ{´ÎƸ)„ˆÏ¤÷­3±ÿHŒ’çÃ/Çm\Åa]ÿ>½¯Bð˃wdñïtHq@½è;Ô" ÔËx"!¶3Üw|Üq¯´ãÇØy`|ã¿[qgv¢ _šæ‰0Ð9Ž|¥¯wÔ©ö^þy+Bendstream +endobj +1162 0 obj << +/Type /Page +/Contents 1163 0 R +/Resources 1161 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1160 0 R +>> endobj +1164 0 obj << +/D [1162 0 R /XYZ 91.925 602.788 null] +>> endobj +1161 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F48 601 0 R /F11 674 0 R /F14 1012 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1179 0 obj << +/Length 2931 +/Filter /FlateDecode +>> +stream +xÚ­Z[“Û¶~ß_¡·RM„àJyÊƵ3›¤¶kïL§‰ó@KÔ®¦’¸%»ë_ßsHP¤<;ÝŽÇË ¾s¥ÔLÂ?5ËÆÎr©…/ŠÙrw%gw0òÓ• +‹@²Hh~¼½ú³R”¹™Ý®ÏÙÜ®~ÏŒpb¾ðÞg7¯onç •Ý\ÿzóÛõ¼°?¾y=_c²ë×㛿¾¼~wóú§ù·?÷ªèÙàð¶y³VHpõò¶“ÑÊÆÝW·iFûHÖñ^”¾˜9oE¡sZìÇe]ÏUÖàVÛ<«ös]düЬñê²ã}màîÀ·;š»CêðÆgô|hÓ™9Ìæ4Ùgíñ§åñÔ-o6{Ù7Õv7_S½¬ÓàÜ ÖúÐÌqiPÔl¡¬(-œ R¢tŽ¶5–x€ûb»DFÕo›=Žº,*$ƒ6Û´aÚF¶ ¬WdËêH4+&ù¼þtGjA6Ì9òA: ÿ¯O0´_7¼®ÍpxK›bþ á^;fôr´U6ÉgwK‹Kµ8§W¿DýãµS…4÷$Q—8”üÈÓH pÝV¨ö»À Þ7¸‘»ûÀ»á+.ÑlW l› NÛBèÒdÿýí9²‘Âk3sNŠR9íŸW¿ÿ!g+@øÏWR˜²˜}†{)TYÎvWFXãÃÓöêýÕ?z ˆ¼ 3²;05+T®ºQ¬·ïpï/a/Ʀé„6QþÝÃHþˆ¨§Ë¯EY”ä¼Fò§â¹(T9…'·9²1 ¾¤pkø4G<6ÕG<þšàÎËš<`HiT[GÀR$V’\Äim¨7!"¨ÀõÔö€*Á Ûc]LøY®Ç$À?•ÞÍŒÈãØŒ´î@|ÑS–a…Ù«™°ÝtâÕüfµ¹C9-oQZÍaò'tY LzÓJ +g†z뼚±*ãÍñf±ªðý—úÐðË5x(@a¼¾X½•l0pý •Å!Žãžg’ôÍáÒò¸}Ĉ‚§•;8-›™3Ëm€é›··#œê v¦½ò™vx-fc;Ó%€¹[Åzqýþvl_VäyûØü›&èŠ`×*[*aÉí*RØ!œ†6ÙªFÕ†XBZ×:û̆wK\àžI?oñt‡§y:â …¿càWñeYµG¾ƒÈ³ã;BQ³Yñ´¿VaÞ„«€­Bä9å„|¦§¬=¯‘£0hC&®6ð$`wqôÀ÷/¾ù&Ø$N—U/ŠK7ÛúÐ""­Ín¢Q@~C×}^ê?Ñ6Œäø"X,ņû.aŠëwñTkZýÝÇ+L>ò`cÚƒO¨wl4!;€Wdè-ß$‡VÓÔ=OmOKöm“ŸÓvûȃC1ru¶^g›»ŠΊÒ! „‡(CƒÂqT]\LTÒĉ}”² +‹à}ŸáõKçb½æaržé‚¯Ç{²‹k 6ÑWâXiâäÍ©X®ÞÙw>DZÅI¨ºê´=2³öêŠÁÅy]“% 2—$=C¸XU„¥š`wøÎwráxµ½£Ã…¤kÇ£÷UË7´Ø)zýeÍY#ŽVt<áþò„6ȱäØ·ª™4Š×÷çö‘;ª0uœžaD¥Ã¹C°ÛóŠ;jöˆW4ûÑä8ÒÜ£,ø0ˆ'Ú–Ù¡Ž¼Ð!F±¡,…SùÅ L•Q€£±V #ógE†Èk‘0E-'T‘†"Ö/×óÒeÿ‡(jŒ£ëB-„ ©\ªuôÔðµ¢#nOó˜Ò†áûp3á˜-,çüÓ5ð5Ïx40H)* ?*í ¯”:x:‰Ò”E_g *:óuê6t­‡æaèeÐ×áà†òQÍ…CÕ>ÜloÖ4¾á&'3jc¶Ï¡*Š†@‹~ßOfŽm2Gáö™õØ–Øa€;ùÂd"ÝÏ"Õ§@!­!pqV ~Èá ë*í è`ö yð-Ò[täóƘ@$+k ßÆrá ˜°Bb™pÉ*×"aÆV‘ +f¡ 8DF³ h¡ º+tZBÞgˆøŸ+§DFòîtˆAãÂT¥,X˜¥4ÏB}äµH˜£^A]¢`(’ PbÐ4Hß𕪑ý¡H«Þ §)…ÆøÎÍ +¤éJ]åÔƒ0×Õ†‡úÔÖ#KF¡ fÿO–p»daÈèIt«ÞõXZ eÊ'i€êÜjLØõ'òÕ§v•ÝyÿXCƒŸßGE…’ëÀ—làÍåÞ«V"‡H7ø›G_è 1¯EŒޥ=!+rW 4Š™?T”™?œ +ë;à ì({8×Ø:Ë$25žp´ùýhBˆ +£¤ljïòePw3fiÁ¶twÔßcX¦¢£¦z“É“¯GF +k]·)'„À&P¼î*ô%!s¥ Ó@Ú„CçáÔJö}Wð9vÏ„-mª‹TÒÎvÖS|v,+ÈÓJ²ŒN +oÕ@DŽä&ë=†;_ô.£<*m¥ù6!6!‚ÇfÊ$¥ŹN’­°J’¸‚ 5è@ùÁ^¬˜Ð6œAÏs2Ô)”eÑAà‰ju²‡i÷$Q ëdü·YNˆ£„KùDqraˆ“?Iœvƒõ–›œÆÌM9ã×;1б,³qÂ6PµA6៧™Ó¢gEnl „VvÂ$(×oó…W feö†àû~\µy/d-ö\>˜É»´Ã4ç/cnsòŸ[9¶1_)û,‡y-f#‡ŽI†¨iØ¡ƒøàÓóK>=?÷éSQ^ù¼vù¬(Ÿ;È€S‚€ôé—F0^ü%™”€­Âž¨Â][TÍ–¾l¾â[•0mù‰CRUd½5¿Ô×Ö‡æ–ÇÚ>tð—Õ®kÁb°ßsËŒºÕÜΧ±N ]Ž¾{AýŸeýÐ}›Ä†t•> endobj +1181 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [265.013 535.473 271.475 548.066] +/Subtype /Link +/A << /S /GoTo /D (Hfootnote.12) >> +>> endobj +1180 0 obj << +/D [1178 0 R /XYZ 63.034 602.788 null] +>> endobj +126 0 obj << +/D [1178 0 R /XYZ 63.034 397.183 null] +>> endobj +797 0 obj << +/D [1178 0 R /XYZ 217.654 163.544 null] +>> endobj +1182 0 obj << +/D [1178 0 R /XYZ 78.277 139.458 null] +>> endobj +1177 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F48 601 0 R /F7 586 0 R /F47 596 0 R /F11 674 0 R /F45 589 0 R /F14 1012 0 R /F10 1027 0 R /F20 1030 0 R /F19 1034 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1185 0 obj << +/Length 2808 +/Filter /FlateDecode +>> +stream +xÚ­Zmoä6þž_1÷é{öï£ÐWøJ +þtåDžZoP'Áõõʧh‹í,AXa! ÆGÁrÃ&—bäBZâôáSAý"•mIeÔÆ,·Ë[¢ØË ¡Ý{E}»#¢êš¦öïܵK„ÄD ÐæYXÅG^§¨]&$¦¢˜øßQGÔݽË*aì¬Õ•ó’cÍÏÛíïC[" ¤×ƒƒ–ÁYœPCT²·ÔU±õ¹FH¹6Ñ[´`n¢ª§ß ‡ŠÎ×q™„L _ŠSý:œh0Ò–¤Â¡£þ(™@cCå¿Ùh‘}¹­Š¾¬˜+Ï=4ô‹Në™Âº”øåT—  ¦´Ì á‰í¶üý®â¸VÞ{0‚É~DN÷UWžc&KH!?»æc:_8xrdY6K¢Û¶ñÁLr~馠XõÓ‡í¥½+ä‚{€Xšò¬Ž>€!0 y”Ž[¤LˆAàÓ·‰ŸªI=!oû¸NP¿jKSº,îO½®Æq‡_É 0Víª>œÀÿš~ijÏCÌJ+­W6Ç€·ÏŠ±À+1; 2+S@ Pœµ`¡–ƒÁ¨D$Y2q Ž“JlðÈmè÷sÙ6`g¥(sr{Úp*bgW)C²ájðЬkÆ4`ø-M ǵõ8=X½£OUHJfvÝ–#Ÿž‡JìsòæT9£¶»—ÛÎ2·†|]qØ.pÉ ©ë@Q{œˆ&Ó Ìœ±L»iîhGБ’Ôo‰o±šþ†ºÃn`'`!h~öÑÖropy$ºYÕDT8mR•ñú]µ;Ì%Ô€ÍäÔ<ÓfÎ3¸ üþÝ©Óà §Ó•uNØÄ> ¸^ñˆÙ ¸[i`·ì° Šõ¿w?¾Ÿ« hU5ù,6‘µ'~ã}ÍJ@¤*:æÁó?yç…¾Ï Ô¼öNlòeŒã gp’‰„±…õŸu3¯xÄl~ ++‘$zXo +AÄ.‹1$ÞWX”ÔÔÙ¼ao[^!ù®:숙 «ÊP¥8ÞÊ‘¡½Ål2 +{'nip:°ëæö©"‹38¨/}îÁ UwŽg¥"ô3°} ¾— +=u‘‰üˆ¦ >eòŠ +êì†Õ€^%âb¤YÈ÷B \ÓZ-ûÌ|ϼâ³Y¾×P‚Bì’°y@ÈÆ(‘€ž`k_j"ö)wÝ0'DçÓ:|òƒ8s …ã! „§€³ÔÔ:ð¹¹Bù>VÈw³¥Þ–m0ÛÊ殫ƒÌ”øæ¨ávº}Á\3 ÷@¥_ëC>ù.„¨2`[Lùæ™8™yÅ#f³UN$fXî$B/Ô’dCY5žsj\VüÐø]‘zdb gÉaÃþƓÝÁh©…Ö dØDäò™º3¯xÄl¦;|ÒÊëM•1º@ÑC1ÀÐî–¼­R·h—Õ3p2'€^B½Àë)õŒ† -³ÇÕ[Ø[’?D4±@Úº9ìBnÕ|&3“0÷ð9!øœ˜ø¼ 9Õû°E‚áÒÚ…Ï!ÔiŽ £e–³úȆú€L@Ïð¥üD•ä Ëåt`æ¡õ;£ ˻՞È|aàÄΞ—\™W6ÕvB¤È™`ûÛh)\FªCO}¦ð .¬£%{h~TN{ˆvÑkþ>2JÌSF vú¨s@üŠ­mÃB{c…=¬uíðœÇîMÑþÊB_yp„-4Ö–š·m‰à» \—í¦5‹AìÉ EüÕö–ºù’~øÏwß›LµÇp‘yú„úbº°Á»þÑþ_WmÇú|ö÷ØòØÂÛ¤ÚÑcb÷¤6–™îË}Wö'S_ò/¤TŸ¦šë‰+àJ=ùÛØ!â¯îºr‹ã_\9Yu§Jú›,lµÅþIMRžùß×?]\ *<¾~¶äô:?Y¿-³€‰®Ê–ÍÙ³½÷ZäC0:Ç»Ýà%UùOHm$¯Ç¤•”ÑȃE7ê8 ¯ 7DÿåÄð“1‰B.óÒG^þŒrÏûþÝox_´<ÓÌ]Û¤Â%ál·àÙL0edÿ CìNs0'Mà¹-¼ÆËÔýâÖH@6Ó˧Gøeræxm¤å +Ê”4#di<ôPF‹L¦ã÷.¨y'§ôÞ¥ðHøoteûöýt¥û ßø†ë^hŸ°¨£ë|zo?§'pzö®k¬dèV§B¤ ÛãE#]AC½r_møæk ü¥'htÅž[{z.¯¯|Ùèšñ©7ÇGhßx‰ÀÅø.û¡Ȇ÷‡Šoõø5Ì %ÖQp…ZTÞÃMÖNâ±ý$ãÙÞofZúhàÐOöFÿ£<ñlendstream +endobj +1184 0 obj << +/Type /Page +/Contents 1185 0 R +/Resources 1183 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1160 0 R +/Annots [ 1187 0 R ] +>> endobj +1187 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [251.771 536.027 258.232 548.066] +/Subtype /Link +/A << /S /GoTo /D (Hfootnote.13) >> +>> endobj +1186 0 obj << +/D [1184 0 R /XYZ 91.925 602.788 null] +>> endobj +1188 0 obj << +/D [1184 0 R /XYZ 107.168 139.458 null] +>> endobj +1183 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F48 601 0 R /F7 586 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R /F59 1176 0 R /F20 1030 0 R /F19 1034 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1191 0 obj << +/Length 2665 +/Filter /FlateDecode +>> +stream +xÚ­YYÛF~Ÿ_!ìK( ì°/Nà\°½›‚}HòÀ¡(‰°(*$å‰ýë·.^âØû0‹†}TWwUW}U]Ò›þô&¶*²nGF%iº)ê‡hs„™´P„BÎh¾Ý=|ó½w›Le±Ýì÷lvûß«bµ “$ Þ¾úéÝîõ»Wï¾{½ ­µÁ«7?luðÏÿ´ûñí¯Û?w?ó}:ñ +•¸6G6Æ"ÁÃëÝx Å0ï¿xæfuèÙ>I¢²$ÝøÄ©ÔÄ´ÙîTnCëàm]uÀãÿà‘®Ï{˜ÔA]^¶& z!Œ|taª‹¬4†4·¯0Ñ–œ–ÊB`†ó&èOÐ.¹MÍüÊ ¸°©¹ó`P]`ðÈCrkZ¤ºÁ¿k_îy¢Úâbjæü¹ñvÀ¼EEnBíTæà:µV™÷$ö¾¢Ûã™O£ƒðÐÍÖZm‚üÂßúzÚÅp÷zãc£ÒD£¦ÿzøýÏh³‡kùù!R6K7OÐŽ”βMý`T–fÒ;?üúðËtm¯pÆìþÚ´ËT¤³q? 5 &çlìðì¨ÒJÎ?|Q™ ‹Vä·®ÄQ4¨ÛB:í¸¤ƒºi? +Ö&’Ñ•Äi#z¶ÐWÚ§ÁƒeNËTpº‡Ôƒ¼Ü›_Gt=;Iß°g¸™ì&Q‰ÉÄ3Þýöö{³ö°çÔ +Ù'žíÓZØíSñ\¢â8]ظ?5h7x’,™ä‚v±±N%}ÞÃð× o·hÈH÷aÊiyäd­EµlŠ/+Gs;d"ÉÏgQ/¬'ͯŒÍF^9pVoS÷E¶6° +'^÷¦f£T9í†ÝP=Å™DÈ[>w¢¨qr“jå“dq=ÚÌÐÍÅÁ¥é¥1Ä ÑúžÔúhØp +Ú¸¤ïËúÚwÜCDnmy(ÛòRú‚¶PuCd'Å(F^¹SÕÜöUÞç§.`/Š¡‰2#B6‚íÉ]‡ø—±1¡vÜÍ[Y2…5¥ÃÃ৲mxDò›CÓÑ#¾Ïypè.ÞÂÂelã8¶AÊ¡Çw<<mlîK`.ß×3 ÄîHÌŸÐéÚ7Grþ+¥Îû «ó¾j./y:•$lä§`‘oŒÑÿX +ûÉ•ZÜÛϸ„ŽÁ}ã‹e î¿È%„W8c¶r ÍÔû-]Î>¦…œÙ²‰2A'BTÇ -¾áaW¿P5øÀ~Ìpè+—Í÷c¶|• ’–œçØŠ¶ì•bé kD´ Çk1Œ^¼ÍT­F[¿ä4Jâ—øàZö‘\Í©îV€ +› ï=ó +‚nÊô«F<×ñš Ÿ­&F÷ïFS«f`#Täº㬄ü’$UŸü\}’äT*„ y‚‚éÂßçð6V`ËE‘òQòB¼e^áŒÙo3ÈFâq¿¥qý\ª¡„öÖ,ú6µ¤då¢<‡»^‹DÕ–­ “Õ†“ó²%–´€ÿ¼ç•]Ø X¯í ܘۗÃÝpÕ”µ=°£ïg²W9.Ê66M•÷æ…*g^áŒÙZå ±H–Ùjh­ò1¨_ÅËg"âmw+pý T€Á “/šôžU`þÑ"±Qã[¢ +/ä\ƒâå©Œ‰ôð†ö¾ä;+/ó'CFOnŠ@GºÍªG¥¡q‹N"‘¸’0Oˆ ˜àœeΧîBÝc=ƒ40Ë8šÚ׋ªCh´9`ÏØ×à»ö59†‹ì4ªb÷²‹x…3f÷o¢Xêq¿¥¯ÑQ÷Ü  —S ý4ä Õ3Rd1dLîÿ#…ðú¢Y¦â™Ö)2Ž6±†—á4˜Ò?"mGϤ,§3qHÂhl¬|œ-L hÈ⪠´$CÏMûÇÍ[΋Ž9Ð^êÈ=¾ë!œË^È9öv–y#–déÝÑ M?M}¢ã4û†eËqv%¶V;üÂtë¦rÌJOÁ‰ ÷6*©ÏÍ3*¼-ç‚å±6D©ˆ}ÍÔO XA:É ¹ŒøIÊót‰2ÍÞùeui¼U¾ºL~ÞÈX=ø»ëš.Œˆzþrxê¤7º®oËp,kr2¸gªœžRmCÝeňæû-›ðÏkæÑ‹ÜŽhNÒÊÁP$];ÄnPÎg²@~©$N_–}0«pÆk}D`âq;<౟æÖ.²¾Æ§ŠÊd<}eâ¨Ô½Ü3Ó­A=ûvb\,àŒ¼çK4P÷Zß\3¯,—sîµÎªDco6ù_£ð¨endstream +endobj +1190 0 obj << +/Type /Page +/Contents 1191 0 R +/Resources 1189 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1160 0 R +>> endobj +1192 0 obj << +/D [1190 0 R /XYZ 63.034 602.788 null] +>> endobj +130 0 obj << +/D [1190 0 R /XYZ 63.034 438.324 null] +>> endobj +134 0 obj << +/D [1190 0 R /XYZ 63.034 300.943 null] +>> endobj +1189 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F48 601 0 R /F47 596 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1195 0 obj << +/Length 2828 +/Filter /FlateDecode +>> +stream +xÚ­ZYܸ~Ÿ_Ñ/Ô»-^"µ9Ç;ÞÀYÇî—`waÈ=êaû²Ô=ãñ¯OY”¨–æÀöÂÀˆ’JÅb_m>ËàŸœBÏòL0cíl¹¹Èf×ðæÍ'Š”H҈拋¯í¬`E.g‹Õ)—ÅÕωPó_?¾x­UOÆMβÌ[¤xõ¯—ï—sž|˜§RªD²yjŒIÞ\.oÿóÊäãbnUòòÃÜÊdqùOäyq¹è„SR³\æÊ/•d†Ã‚O¾× {‘ÏR›1S˜˜â”R±ÂòÐÉ¢@º/?ÿšÍ®€îÇ |hgw°Î‡×› ! +f´¡ûõÅÇ‹ÿö2qeY‘‰Yª­‚/§tʵbp":Üiìåúz×€ÂêÃÍÆkWE(,)w³?U•à“Vv Ÿ<€dJ> ~à•FÌœü±[ïLJ`u JÉËòüV(P +ñJ#f§F|”HPÈz;6¡“€ŸFÀ„àt”rtRË´ ±Tn¯ðˆþ¨Ä´º®š1ãe–Û±Y ku†Yr¦B¸~"ãM8à¦6Ý.ï‚ÅŠxÊfP=)0‹Î$¸¿8ÏfÄ+˜m&ÁkÒÍ£6`’YzoÍ&Ôêƒp$-ðâ2nl_EÀùÁáQúr½Æ0‰Ë ˜5|f¹¡EÙ4%fÕ{»[ù+¦˜³Ã„©Çeö¼X‹›cÂù†‹‰Ìܱ¼8¨TÃRIÓAß®Näl“ey¨w[_C¬Êz]…´ú0|Ãâø|ó\CÉÄo µÊÖ¹ê9øx¥³~K ©"?Ð8±.ß+H€»(¸ ?ð!@¡<8/ÝrÒë +Êr§RÒ +3ÛnC:feäXXÀ©'RªÌ+•ñQØa„ˆçäš;7D-i>5à„P«ë“’“gJ…Q.'ä¢ + Ô•£ÙN%&^ÌzŠí4f^F Õ³âÍSøû» +š§0y"¦4 ²ÊfØñT-£ ÖöáZÝ*èfáp9?¯”ñ¬Òˆ×¸’\‡MR ñ• ”1æ¡2ÆœäË©X ëLsV Šâ^Âbª‡†e +O˜k9]$M AÑ_××ÎH„|ÐÝþ@Ý!vÕ5ÂÙÍÆÇç¸O”™ïÌgÑž¿;S^@‚§9<6Ï€Ôwc PÛX¶‘Ò„‚êƵl¬æÑ1œ$ 8F-=Ïrf¡s”Æ8<ñC L¸Xpj´ÐnãÝH•ÜXfÁúÇ9sˆÀ+˜…¶êW5ºDðЕ=‘È{üÛ5ÔÔbf¾ªsâ®sߥÅ[´QE-½Ï˜UzšfyBÜ¢D¡ ÄQÕÛkbêï›4T¨­|VNëNϘ°N¾•_ö¹ûÞ?(IJÅ1SA“|ðÏ›ê˱¦Øp µâÈÚè+oJ÷b·­|VLsË“ÅMíƒLëÖ3<¶Õê¸öä¨"|¶oª¡nðá8Ò¤ Þ,¡|àö¼š4ðJ#f§‘¦xÝœéö‹'2x.§z‰pd‡5Õ +•Lwínæ`®»5Ktjûºt—¶­ýùñf=ç¡Œ¬©fXRÿUQ€xT">ó•m°ÆîèṏÓܬ¥I×dèI@j Ç–ÐZ q^x¥³Š—h-ºýb Etq¹và ¬N•}­ùkÍÊ{£stÍ»¡Œ¿[v*éÜ ž:FndtŒð-RïýÒ9)\·ÕWútƒÆDŠõ¡ÆÏ×$Ón5žˆA¯ÊL7e™(u …úBº¾VœyW1Až‚bRñn?×f}À“ã¸}ܧ˜n”Õ+ìÑG-:¥ucEasRbM (8Ò…õ‰æ!UpL3T5€äæ<ô'^iÄlŒþP +HÝí÷”* ‹ÍlTídí°Ïêâà³0üÙ‘rÐë®pm<æ6•û†Pê¢d÷øª&&4£–÷­ÿ¸ƒHßo‰ý_¸p.Ý“{JÐIk>D¤Cƒ!q[‡äÔTåIG‹ïw[Ê=NÔ€0wèî.~ÖÔùEF}ÌÃStÈ°zRP0“ù™sâ•FÌFSt«]{HbÌv"~ŽÚtÒ¦¾­¿¨l½Fפ©Û¹ß^ƒQZfu–åb® à¹/àZ:Xj×2Ã^¯á!›íá)ÉÙöþnålѸzÛ=XÙÜ»IëùÆ{¬{£!ÅÄð´ožì †–†'ÃpJ˜?õ°-ÆɈÊúàhÂk84íb[ÒuWçxMà•FÌFMôÿBäÝ~¯Aqë.{”Ë–7Ú•7-½mé Hq\âßÿ¦ü s8tç>Í·„»'EŒg$K4ÛÌ5RA’)=2@Oœ€Ã¸ô6² ƒE4®\â[ú +²rE¥·AE™ +œ“mÚƒÿ¥l0#à¡»¬ëÏè|esïï=Ø5¿AX@› “®ÆYúùPøñ†Ö]…r·¦ï1ÎxB°÷ü8E?Cs,J*Fݺuvºð‰¢€â-wdÀPU=6Ón¿d\áƒ0Ý +q_Å*f?ò£ÐÂÊëSŸ?Í}4­«q7 ’o]½¶£îzëÆ`¹ R-Žb +¦Ð”®5õ†'Í{RÀ·îìVAÚÏÛQAqŠóy¡3–ûœ82ùÓƒÀ+˜¹8H%á<4î÷æùT«§ Ò2ûÇHF¼— ÇPÅ’¹‚³ÀHÄ^B)–b°PÊý€‘™Gÿ@J¤iDëe°½ ÔG7áâyç«øjAO ȤN^|¡.4ŠzçW˜Tðê:³Ýï¾{1`c‰%6õöàé6ûO=+÷ÛÎþS÷’ö*ÿŒ×¼ÿ¨­¿UÝÏ!§’ä›ENaï€è}¤‡”ŒD ÕoëW™ÚQpz ¢_Õ®ÌwÂ6ûiz1ùT— ázå¯nîÔyÙ+€¨Z¯›v¯!‡žRnv Q6åfÒ4a¹êQ¦xýu¬ý¡ž1µéî7ô)EŠáÖ°(œ«Ú¶Ç 6?,ËnárÎ]yO®W’Ê×UÙÒòÝûOï?\¾ò7W„׎÷×CSú%f ·Ånÿ¨fr¯×ú÷ëu4؉ |1„†I{Êþû? „DâiO1§@‹‚(¦fcáeñËÿÞêk€endstream +endobj +1194 0 obj << +/Type /Page +/Contents 1195 0 R +/Resources 1193 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1160 0 R +>> endobj +1196 0 obj << +/D [1194 0 R /XYZ 91.925 602.788 null] +>> endobj +798 0 obj << +/D [1194 0 R /XYZ 246.407 412.291 null] +>> endobj +1193 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F48 601 0 R /F11 674 0 R /F14 1012 0 R /F45 589 0 R /F10 1027 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1199 0 obj << +/Length 1846 +/Filter /FlateDecode +>> +stream +xÚ­]oÛFìÝ¿ÂèËä®Ru:IëZ +²­]’v«‡mèŠâbˉPÙò$9YöëGy²l«Å?èŽäñ›<žÅ4†Ÿ˜ÅJOM,£4˦‹õ$žÞ應`ŠIÂÍwóÉÓï=ͣܨé|uÌf¾|¨ÈD³0MÓàòìÕÕüüêìêåù,TJg?ÌDðæ—Wó/ßÍ>Ì_?ý>ÛóŠ(ÕG62A‚Éù¼WHÇðÉuö4§JgÓ ™ÒIª£L'-–¨hÒ$xúx&2 šÂVU½°]Aûî–¶iì/ÃY(‚Ë-ª + +„"Žò$gŽù,Ô2ŽƒÇcX÷XÇê7æÞvus,±)º]³¡ué¾&°LS¬·ucVèÎ6¥½®ŠQ‰âPbɶ=Xo‹ÆveÍ+´Ò–U±¤ý=“-ëÍWƒì¦*…v5K¸+šû¦Þ"ðÙ¨: «SXíUcÝ®~½¸p|]™ÀÙ>}…L£8O¹NVL0ÈïÐSØŒÅpR*G2|èA¯Ñö‡÷‘}ÄIÓú4-«Êç\Uò™÷ Ëœ®9ž«¦(–Ø7ãÁIY­a–_¾ýxy~9î½ìÔ#ÌM;äfÄ!LpÈ(c¯ãÏõÞKín±«ÈQ&h9¥Û¢ó]á…Oãq“µ`JŽ:¤Á¨ÕZŽBÕ‘²ÿ kSü½(Z–ËÑö‹ù +)¹ž÷¦8ëÇuJöf8ªK°qjÃÇVu³Ïÿgœ_ôùöX “ ®Né¨æس•É |B7p¯·Ø1:‚µØÙE°u¡v]C™Üu‡- +`D‚û™LfgŽÏ8Bð¸ãˆU‡Ï +$ÐQ ˜S"XwK$Mbaø:F¡–u¤sS(t”kx„g%ÎHLͪ–›Ï›@jLÁË$ ^­˜  ÄQ«p +9@œDqˆ]ÏàÄ®í諃d‹]C°î–¬Dj¬Ù™s'îõnƒÇù0úÁ[ôÑÒu"ï¶3™“/-ºaÉd]M_ǾÚ+h&?ÛÆû÷Å^˜Rq°¶n÷@»®AµîJ[Ñþs6cÄ• ÿ Dÿ!½4ÞZWÅß,Ä›ŽgFXºm%³=úœ0´‹Âg1oÀ;Z콫… zs]šaÑh¡Ý”=3CøP¡)tÑ# j‚_Jú¹¸#KbU2K˲iœ!µq^úB1¬$—㼃PÔÛ®™£«F!“2 ·Y?)ãèp\°RD:L0Lb—èJêH©üÀUÊÆ$’j[ÇjÌQ±$ãë†Õ%Ãg ud1šƒC*¢œ&Ü ,Ÿ®W§VJ¥#“6Â~C¡Dž'ÖÊA÷ÂlG1[Êg<¶ÁâèX;Ÿ °v9Fé¶dÿÈÄD¹<ôÏ +m¨×x& ªº-1D7´í`Ic[¡x]+‚ b *pÚâ[…|AKÊõ–Ùì5L?W:¦‰Í·^ŒQÁäSsÄî'ë´H®÷ÅT`¯Jµoå`°‹/‚ÊÍi„à!¥’ô¿®“0¡s I(,s÷ºR!ĵ±³®bš^O ÃæYnPŽ#šÂùª²%]x¨o°°¾-ì–(ë†zí†Êýr ƒ‘ò KîÚbIïS@p"ñ.P.pØÆâlµÁ­ø•Åü¨Z"ê©Whéf±§»w¶r±óÑÀëݹVø6‰T_&—oŸÍØ,R¸ë$µÊ|ÿ5yÿ!ž.áùüz0›ÞÃ:Ž\ñ뉊´JyWMÞM~Þ?¯=¯pÀÌ=¯‡ +)xƒ‹ÜôZç þåé“_FJ›‘6å|¢RlIðöRBõ E`r¥¦I”ÄÙA>ß—­#{‚¾ÉÅîù»YïæjÇ9±®“‚ò}N¶Ö8Š¥o6î&Æ¢u Úßl\ÉÀ€áRg•Û½È“v¢€ˆó(“É«ª,ïûãÆKåf„ÒV˜4>«¹¨I0õH +îäN /î> endobj +1200 0 obj << +/D [1198 0 R /XYZ 63.034 602.788 null] +>> endobj +1197 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R /F11 674 0 R /F48 601 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1204 0 obj << +/Length 3243 +/Filter /FlateDecode +>> +stream +xÚ­ksÛÆñ»~¿tL‚3î}p§\×Iœ6µkk:Ó&™ ,RÆ$AóaÙþõÝÇ< ­Fð°ØÛ÷îíBN +ø''¥¥²W(áC˜\-/ŠÉ <ùáBFˆ<‚ä Ì_//ž|&¥(ž\^c¹œý’)7ýíò§'ß[s“Þ‰¢ð€!žÿøìõå‹©ÌÞLs­M¦Å4÷Þg?¼¸¼|ùÏpQgo/§ÁdÏÞLƒÎ._ü q^¼¸ìˆ3Ú +§ÝYú[˜ÆO$nm‚õFåˆ@ Hfÿ¨i.¥²ÙËU ¿vø§ZÀŸú Þ®n€Vo³OK“U›ºz‡Ïæ¼øz72»BÀmÝ 8?X®™ÑZ ++]GÐùáâ—ßŠÉ ˜ú颺 “;¸/„,ËÉòˆBÛøkqñöâ_¦[\y‚lÈ´ÑX+{\GS lnYƒ‰žse´p˜ËÔü««+d°æV$—Åg`иlw‹"0°©íáÙrª|önšÃ_ʆ›k¾Îêï–_cÁ}€•}½aÊlÆ wõbÁwˆ.dq§÷HAƒÛÝ!ðŠAêx­fðôãÔÚ¬B8";¾Ø’Pu¯Ô9rÂÌ[q¯»:ª8Þám³úRÙ»jÛR¨,`lׯ› ¯Ì?UËõbNˤÃ,)²-¾W‰¿„¯Wkä}Ç¿–34e…´åÄ#L_7%ÊPž0™ˆ+O;ºVAHºýÈ`H¿(Œ-’ZÒmüT|¹©?NUÉ\1?Õâ¦Ùºo—‚D+í„Rº'ñK2"2’šÁšÞlã:iÎ{öGDI‚]òá)1 ÓJØûøص¸òÙ±ÀÕÛíêÞ H3RhõH¤E\gIjÙ'm˦=g™Ö[ã¶^Ö‹jË»†¯cñ ÊGa ÅuŽ­½Ð£’%ÉÚ>uŽ¾ŽËdÕŽ9#ä[)ðcMÑXAºgŠÙŠ]ïvsÆ&9ºüF{€ñ/æS«ÐÐAp»ã¨ +AX«î-Î{[vw +•´_ýk!MµŠu‰cÜðÛäpÅ€Au·ǺjÓ]áEáÌXÞ4J8c&9¤†Â«b j”™Áë{(ÝaœW»Ô%$$Ðzá„s¶Óºu“ârTE€n¬ +SÂRiHjÏ:ï‡ëí2–þðÚza¢ŒGÂBaüïp~• -dÐ'|/âÊdÌDB* †>t†AAtÍãÐŨΓ…ñBpJÖäK´öž"œðPb°LÅPæyY²Ëœˆ«…—+2ì=þÝ QB´ Rv(sc]öŒr²†˜>’Š„dB bè1Ç;{JqŒ+O ¬O¥PRwJ&J‚Ä‘+Rk÷);çpìA4­]V+*oT[:i¨> ¤öóín>ã¥fRtú’œ¾d§‡X[^óí¡’¡ÇÕônH#)Ï(Ui„p=­¾Â*Õ:¢Roè!L G·î~ò©¹Æ@ÉW ¸µõXZ*ÎQp½mq…‚1¼G•yµM̯'0i(ƒN ¢¥jÍ„LÙf\c3¡H~œˆx@v: ZÆM´I1ÆœPp˜ø}ä­Ly Ýã_ SŒbðþžÒùµ°Å2‚%èe€La‚úgPH²×Ã𹶈¬=È»#ªü€‹$Ù£‰ÂŸL%ù(»3ªÏ^Lá8•= [Aø.ïç’« Ó=GQ_ÓËÇ1½@ñ ½Xˆå-uß‚>@!j¸„Øëê+äp##\ñU•I(l‚‡Œ«¡’ÓYÄ•'ÈF”¬ê6<¯µ„a]À{öÀðˆd1Ö»#—I ö@·íéX·y‹êɆ +³«®\ì‰Ó 'í‘æ]ß#ËÑh’…˜émlâÆxâºXge«á^A8Ý*ÿzÓ,9l5ùD7¤¨ÔiË…jØ å›îšÊWò–³† +òTë=¡ePfr4Çãû9Š0{ØlCP“¼ 7Hùïy™C/ë@žÖ µèi-ÁŠZt¾§ û57¯žR;GvŒåA²ÿG0>íŒàÞOtYÒ{sFÆ•'ȆÎÔÕmˆÄý¼P¶.ùŠòÁÛ_òRHÙ·h÷U9‚Ÿî·óÙˆÁ¢­ˆp MÛצ•Â9´¿—6¡É¥Ëøos5BP)¤V÷×éH@È­²oj!:ý›ùn¿YaÖhMâ§p*èj¬Ÿ‡FRháÁQµƒîS°ˆ N~Wž c#1i í„—ia¨„üû³)œÂÿ3š\CW¶Éu¤Ü‚ð&LñÀ(< +xê £Çâ\l}lQ@ÙåôXg¢…iAòïëìbWæZا 9c O$Wê„´V +%ŠÒM’=ÿxk%â:Ç€†3lú œh[iUPKøQH‹¸Î’¦4eÍ”´®m5èHϹÒ6Ч‚ø­ &Qjvz#òº^zªr°iÌÖZ‚tuh»9µ%Pptä@ «Ñæ™ôòARíû÷8é wüÌqå ²!ÁB˜v=‚áTÕŒzÄA4‡üò8ÄE\g‰S`£Öô‰%ÏÅ y†uM—û/o±e©Œäö2Ùklã" ð‰Ã\ˆ&]cYpÏŠØ¢6ŘzˆJFÞ_çl=âÈ!µõ€–Wéˆ; D"d‘ÑýÕnÏS’”éÔ¦,DQ˜~7s IŠ¡M‹úý4ŽU”N…¹ä•1û…§0RÁ^áaa Å•'Ȇ!ÎV‡íúÝ_ ð5Owí¤E+“Í?]͹³Šc¼f!0öV»!øÙÉ•RÜgUØoÁöcM“+x­:®ü©3ÁUm)thûÊ\]¡½éøŒM憚=»M³X$#-ÀîÏüu‹ð†¬a~Õ¬fü›²ÞsªÍ sƒpiÇ*5%Á0»"÷ÝÀN°tèçä®Ô<¥IvŒÛmÉ¥tK\YÓ n6ÒPË••=Ãܯ‘ç;x…F7CJ·(OXDÓ5®Wü“4„Ì-v5jw1çÇ "nÓ§¶ƒ)ÄèÓ‘6ª¼ƒrK=(ܵ¸òÙ0Üip¾n;:À¾Aátüùp^`Dס[£aì[Q`àR8èœq\‹Ù¡ÀÁB¡N +@C-^À¹û1Ðâ:+í°ê‰ s¾x2Ö’«Êþ‘fYÆ‘çGùÐÜÞج}´ßzˆ6öm¶îfÏ)$¶á—FÜ?Æïx‚L®}ŸEø¸YÅM®±äãµK#ÊU³l³Óåhdlí4¤v‹ùj~…–þ~d:MsnD0(%;â·;^àÑPÛbÖæxpJ1„%)q^ÐÏÿ8ä]ç=–2©ö YVSø‡å…ˆ+O òkÚ©n¿$1|Ç4FÎLjÅÏJ(ðƒØ×9b•q¢„ZöˆØh`Çò;~ÛѵÂuRÄp+¼³aÌMT_fóëŠC$ÿÞîb[ +DkAÙ}ŸÙ̦¿£{Äý¦Œ‚´‘ ? æ†Æ°øe¾iðlZð>¤lËëëjC{r¢†&Ë€¯ê„q|<óz¿`¨ú:^w&JÂJp + ‘?ÿXõüƒmu;¯ð댲ào,J¬–óxwoªõš\Ñ|ª—”¾q}Ûºg;!ÇÅOû5G©Ø…ùÓ ääüòšw=½•"BY­Œ3kr®øýÐnÄáW ;ü5}A‚k'Àœâ—Íæ3ÿÞÌs +FýÊ„Ä6‚ÍqÌùöÃKÜõ©o6ïã/®·ŽÂÏH à(VbÓB¸yà+Wž –ÐAØÐm×ÿ`et¾UB +¢~^)LwvçŠbØAò¢«#žr#æÝjœ0K …†:’iµ¸òÙp ¤¡(†…†fÞcÓSi°e‡²ˆëm|æDw<¢.8ÊÒã·æÜ×yÍXÞ;$}pî0´ Ô”®sùC»¯\Ñz›=ùfš[eyJwXþáu¹þý°HŸŸÑS¼8üká¸<Ç»ožŒnâVõj×ÃüûáMóáêŽÑG¢ªïZâv‡½ºÁØñ>åh÷V™¶éKøT`yè!R6§²ÁãÆ«xŒÀ+ÄâM\ÂüC‹~,îªÏ[¾ŸÚm*¾Õ|¼;--%ã懽¾ýËAH?¿þýõ›Ï#¾(’Ýæ,>„<¼ÿ'¾ÄWøÏ'¾ã)Ñnʱæ•·ôôIEòðĸê:endstream +endobj +1203 0 obj << +/Type /Page +/Contents 1204 0 R +/Resources 1202 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1201 0 R +>> endobj +1205 0 obj << +/D [1203 0 R /XYZ 91.925 602.788 null] +>> endobj +138 0 obj << +/D [1203 0 R /XYZ 91.925 584.788 null] +>> endobj +799 0 obj << +/D [1203 0 R /XYZ 239.757 347.518 null] +>> endobj +1202 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F47 596 0 R /F45 589 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F23 1211 0 R /F64 1214 0 R /F48 601 0 R /F11 674 0 R /F58 1173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1217 0 obj << +/Length 2150 +/Filter /FlateDecode +>> +stream +xÚ­Xëoã6ÿž¿ÂåbÅåS¤PôÐ4H{i“MÚõw}`¡XŠ#œ_•äæ6ýÍpHYŠ¼[ )‚X9œþæI‰‡?1ËãJÏ2.™un¶ÜœñÙ +V¾;" $é€æ›ÅÙÛožå,ÏÔlñð’Í¢ü%Q,cóÔZ›Üœ_½[\¾;wq9O•RÉùõws‘ÜþtµøçÍûùo‹ïß~뎼€‚Yí@8²‘ Î.½Bšg°n>«s¤™*ífe¥ÕÌÉÌKãR¢8`’ +Îr“‡Y5Oe&Mòö‹yjàY¬×»% 7Õ†_¼=¹U‡­EúrO”_Ñãönñáâüý‚Þþ}q~}}{A/¿rÃÛzžŠä¹Ú=ç6ûe½ª;‹74ÝÖϾ~yRº Òë“¡&A•wÿº¾F&d Ø݃$¤e<·Á`€b)Æ‚30ufMÒTÝ¡Ù’”›»7—7§µSÑʲÌD?XÆŒÜïC[•€!9BÎO Ï{–ýêðx98Wü¸­­WÛ±(8ìÏw·ïO +Tâä¬ ü^`vûÃùN³QSФcR«1hƒàJ…b2Ïá SÒxªÅcÆÒ&ÙÎ¥Kš›¹´É=hc“ +°Áu '"] $è…-±âÈ?7>îHüýD¼eVDåšêw”å´”$§nIξ@IeUÒ+úîEoƒ¾RxŸõã{Ôý#íÿ• Ý´-(dµAö•?`WÃÄvE«uçM…pLs‰À—’A·CdÒ=’šÒ*€(hü?t´îÑB)ë®Þ㣢ù]ˆ= Ï™SY@àæîenN2™™™–’)ˆ)H[¿ŸýòŸ•ã¾?ã0éfO0æL€7gŠieÃÛúìýÙÇy¥f>õ çŽ4¨ÖÝOxÀK8ÉÅ49k–«hßb[âIEàJEé}d»š"`!ëJóI8(7öoA òú,JdLçú¯!pÊEšÞ©è­#“Î<Œ"ï +Js×o×÷ëb3„æ‰è|t’2BŽ{@š‰LÛêmW`ºQ3íþh®àÀ2‡q¾"šhåªU…)ÑèäÙ[«ÙA«c@¯[·yªÛê –?>Ú2)üïÂæ%Ù¦¬¦QNÅŒ•Ÿ8 ƒi÷Ê>é€Ñ4< ¬)× óê`dÜL#C2Çó òS ~èM °$AÖš ¯-Ji*wèà>ÑCè½ÏÒBf˜è)ÄŸÖ#nTÀ27(LØ|$Eæ !|œ3ãt,2`»” —p¦‰J†œû”JÑáR5eÈKNØq¥éÛå Vp*_Ñ?¤³I‰îž…o.ÈÉ“ðJuÐõÖžHA‰¬o'Ç,Ëbgý‹)VÄò'¢3ŒykÄsŸLÒÁM(ƒ0æ {U®¬Ò¯Iº9nµ½g„ŽÂï_¯?Ü#œ£=êú”âØLÓ³¥§ç¶kz¹Ë°ŽæV +ŽÓö‚}¦Tx€"ÅL©õDÓn@5R+_šìuÝJà•˜Mº-˜²—éóªÙvM"aô¯ j? Xôů hö’fZÊYX£Âîß/!¡a¡[72HSmŠzÛ§®†ª©¿µ)ªTSß%n{EQ¹Ý¶¥µXî`ø„nºkþK\| C£dgQîÞJ¥eÎÑ­T!U†? +Ø ¼ÂRC†röx7RÖ$WÛ¹¢czUW8@}mKu$/|ð\ t„½¾.i|±Ž,Š¯ˆóËTƒ·f轃~·KêZŒ ±ö½²¢^2¢Æ+êdü(ÜXë¦"Ò°£í+[í#—9î8Ñb;Ë8w3™‘ýÊi¯tÀlâ´†#ÉÈiQûÒ÷Bá(¿Eï7ÿ6Ìïè<ƒË‡N6EœQBD ¼¡3ÈŠr½.îã½Øiòð:~f œ^l«Ý¡SÀ:¶+°×wuHÙ7ˆ{/}׆yY:0Üzµk¼Ï«Zè5†ª ?a¨¾s:”fxQ !ù\+p&óV‡TªCZó!Qܯc‡j¼ ÿe…1’¾>¨ÀGšñvU§¬( ápW—Z³L¼.x"¯tÀlR¾!x¸S½¼QùFOdü–NZoÃñèµ¥å:à0NòXþˆ«ïÔErÕ&YE…2~¿*Ÿ +Ä×+`Îö›0kïšnyèh’Š¯:ùÕ +Ó¾¿wÕ1ýbîÝ…N!dÿ¡AÂ'ôÜ0ŽpâK¼ÒÊ7>|¸ø$+±endstream +endobj +1216 0 obj << +/Type /Page +/Contents 1217 0 R +/Resources 1215 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1201 0 R +>> endobj +1218 0 obj << +/D [1216 0 R /XYZ 63.034 602.788 null] +>> endobj +142 0 obj << +/D [1216 0 R /XYZ 63.034 300.86 null] +>> endobj +1215 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R /F11 674 0 R /F48 601 0 R /F47 596 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1221 0 obj << +/Length 2396 +/Filter /FlateDecode +>> +stream +xÚ­YmsÛÆþ®_Á´_@Op¾÷;4mg”ÖvÄ/uØÌdâŒ!‘1 * h5ùõݽ¼è@Z4ž1N¸ÅÞÞ³ÏîíÙŒÂ?6+)¸šiʉ±vv¹=£³k˜yqÆ‚DDòÌ׋³§Ïí¬ …³ÅÕ]-‹åO·óŸß<}®d/ÆŒ&”P‹ÿø×ùÛų9ËÞÍs!d&È<7Æd/ž-/_¿À—"û~1·2;7·"[<û'ê<{¶èŒ“B-ôIû…Ä0°Éy¦5±FÂx0™(‰R9#¢(úëÙO?ÓÙD¿9£ðÒÎnaL +ŠÙöLÈ‚P©Âß›³ïÏþ"ª¬ˆÚD )¨˜)£QÄë|s½k®u»Úzlåà‰Èíöæ.PLs"ú¨ðó R˜ió£®| ÌÙ?´‡iE¬”£¬ëõvûbUysGîu†¯ÃFÖµ ùu‰;YÿŽ[©–^d¸ÄCÚU©JxoâûÔ‚+ÂÀ×J1´}£®| ì®·0Å»õ‚³·@À)mN3š{F«Œæ³^"BÚDN”K¼ÛönŠÜ-äly–‰ÇÊÿ²céP°T;ëYàÌ)Z†H‰Z'HDИ®pû»­‡‚v›OTJ ©±ÇæÒlLˆï)¥‹âÀ 0¿ÎÒ­3Ë-Ìq;Š FØàËcOÏxo-„o7ž8⊒z1SL«ØƒhuåeIb‚šƒA6ˆ"CZ§Zï— Õ'Zb Söï© + Ïú` ÅÌtÀ–ZþAÎUGXu% Íá + +3¨KÆ 9'Œ +­;J)æÉ‚å‰1[xdKHôyò! wµ¸*qÕ‹n—@9ð©ªGÄ´DQÒýB,ŸÊ®0v&âO—xLî¿$;ƒh.äCâïtHÇ°*P„§@±At=ÇJ£Ë€÷ +,΀è–C‰i!bv^D]ù@YX@fX·Þçë^Ç„<êÅŠAáó‡âJÃ÷RߢSqt%âJKàê£K ·âY‰ŽmÒ²“ÁjÓè‚òŠ);EHÿ®jȘzO¦bؾz›¦ehrt1“Ú@ú d¢ª¼×•Ã +¨Ô¹ŒË9›ž½šªç¹2)\cÆhÄLóÎEL{ÀJ “Í4Ê«íÑl‡ 5³~Å?žì‚ªÖC'ÂŒ¬'YRµ3HjÌ>†]QÕ)» ©ڵŠ|Øøæxdœ~¶ßÔ¹¢O®À)„9yÍ$!Q‰AU<êÛ)ÔÃÖÇÊ„k Ëp5â"}Ë¡)œ(±]ƒl¿ÐECЕ”M\4@”Àù44øè-°/Ÿ ë¤qXÀB42nt BÒì±Ôåz×½B‹••.¬°ÚrÐs‘ݺZkã§×“=Š¹OÂxÜãwØÃã3õ£ä`¹æ÷‡êD0D] TÃË5èrÐwìÆ®"™ašSg|/&Ê®îÄæÓÒlW‡R Æ®a7žØøhž­ƒŽe¹/nÍÖD¹mPP5/HÝôªÜûÁÀÍ„¯ö¯–±âk«KÿXú‰éSŒlÙc}¹o«H ”ber¯`ÙðÄð›B÷ãÀw÷˜uDRžv…§’Ù ú¿ú´ÞölÊ•cŽ«á9¿w…;¼Ÿ€V…K”  j¡²©–ˆ#ážE HåÆÜe<ËÚ?ß3!]ïæ¨ðDwíÚº¦¾þ“Û m¡o<:v—Γ±ñ¸]­‡÷4€Ëÿ¼ ·Wу0÷ë?t·7ý›Æ»Ë}ñ ÿ«špa1ê#¬Júç¡n×?¼ivŸ0ç»évU5·ë}~òtjSœ[: ê‘ °@ x}Ø~¨‚ÍxB A€÷'WãýÎaÁ òòÐ\€ƒGëno¾šT ‚‚OåÅf½&ÃÇûiq9ùVõJömÙ´HÔñe\)—œöȻè[ÎðÖØaVý·ŸÿD,¯ÌÐn÷#lw°±Á*¬‚c|††Ðù"Àóú?ßaŽÿ.ruÌJÌTÚ´Œc\ (7È…«~ù7½%®ÜöçüТÀ×iƒ8õ¼;?&ã$HŒ ‚(6 Š>x³» Èçþá³s÷_ø¿¿./?æmÿwÔË.ü]Màÿºu?–¸Q@ºÜ4U¹üm’.Å> endobj +1222 0 obj << +/D [1220 0 R /XYZ 91.925 602.788 null] +>> endobj +800 0 obj << +/D [1220 0 R /XYZ 236.049 435.205 null] +>> endobj +1219 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F48 601 0 R /F11 674 0 R /F10 1027 0 R /F14 1012 0 R /F45 589 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1225 0 obj << +/Length 2528 +/Filter /FlateDecode +>> +stream +xÚ­YY“Û6~Ÿ_¡Êe¯` xTj¼^;qÊã=2[û§\‰’¸¦H-IÍØùõÛÀcÈQ²å*}÷× Ž\…ðO®b-B­âP‰$MWÛÓM¸:À›n¤£Ø8’͈æ/w7¯Þ™h•‰,Ö«»ýS6w»_-b±Þ$Iܾ~ÿñîíÇ×ß¼]o´ÖÁë?¬e𷾿ûñöçõ¯w?½z—¼€B$Q +‘Êàæí]¯PÆðÞ\ÕÙÓÌ•NW)ŠGJ›$©ŠIZ¨cÐ9MLðêÅzc” ªú‘mg›Ž—Û2·Õz#ƒ¢:ðÎåÌϯP[Ða#C‘™Ì1MÓí¥ùlwæÏü8¿_<“º3ö3‰þš3´ò à•\f’9&Ǣ̙ùT› ža×qïI¡¤÷ýÞŒ|¶ñ9Q¸ÞdY‚º|FREE›Ã³ +FÒ\ò X>œlìþ\TÝ‹çy«¹}i$-y‡óÁ”‘B‘W»©2äGPrªBêNFîd“·Ónÿþùöíí²Úƹorûe™$ž[‘…êŠeŽ`ÊÓ$ «zùrYRêž‹ǦJüûQÉæºG‰}EwG0ad çt<‰ŠÇ¢` Ñ7ywi*6âòý‚ʾà_·íå”ïøGýÅ%[±çgÞ4uÃË}iOhïë‡\\³Ž**ºf¸#˜2Ò3È”‘È"€h™Bö"»;€±u‘Ì‚ýÖÕ¶+ê +7R®µÊ‚®°eñ[N`Âû–éÖ&lƒì=n–ð‹h+Xº#Ÿ(‹¶ãU½çç iÎOQ["ë žq€œ! ÿ÷æ—_ÃÕÐû§›^¦«GX‡BfÙêt£Ddü«¼ùùæº{^›3B÷q 3¡Ó^ºN§mÛ5è”-*Ûáªqf’«$¨‡Èà†=)AݨäG1ø[BXØß?ÖÈüq gó\æ ¤Ž†Š(*¼Ëí÷"ò>èa¤~ ªîš ;²«5¡ÜSO*Œ¶ŽWÚ$"…þõG<éymFÌžzRÉDdÊôò&®D#\Ù²ò@OØŠ)í@cKÞzÔ}Ü+¾ñ‹î˜»•…ÐߥNqù½-Nç#püù’§[ŠÛ·cÚŠ€1É8@qscxÝ›®fÞñ¸·‡åÅÕ F~“«¡ªbRUˆ}ÈØ~¡è;š‹}ΨHI'О@>I ¿C4Q 5ªÜûÛdÌïÛšl€Mû•·)§àÙgO’wa댖ׇƞHE´'|UÚê@ñ80|©àIF<Ê¢Ï_>R´NP_WÛ"Ž­â(=ˆ8ûY~| +eTq˜E£„3Z€*~ü× û0Ÿ!Rè#TÃG–]…Ò0%°¢!"ÕΡV† ‰ Óxч#vužh×vCî˜6ž¤l˜Q¤Ñ=B ž£ê\âA]Œðñ;g»#9 ®Ò÷ñ;‡zŽSïœq’t”…ÉŒÏ^^΀LZ:tk:Àõµ¤ZÃ#î¦Fn‡ãhË×]bµ—ÁK' TlH;Ǫ8z¢§ÀÁk~·­/î<™*åÈVc„tbc«™/R‡~VÅìG™duG[nn$¿D˜@‚Ú‚š,~£˜íX™9ÚêÈæ¬T–ŠÐ¤¬m1«Íˆ×¬kE©H“AÜk{ó:¬¹ËÆÝÖ5¦$àµg)¬Ö(M‚“-ú8Á-ŽÒ˜®%y$gº(á‘×íe‹GŽLÚmÇ+œ†ði™lO,˾‹ÂÖZÍuçÇ Ø­)û82¤¼›®zÜ[ꦠâ9ñÎÖV ro)ÈÀï ùÃòÚÕ}µãÅžt¢*Œd„õ¹÷ÝfC}iËo|ä™ôÀWÏt:`7q£+E¨Ä foà2ŠÑ½ÂU~²òíÑ<•ˆXk¾>c¡ÄøÜ!¤'½ÁF£OçÀaœ}ûu›·-¯ÿZH÷µËˆIn…4j7 ýû8Œs(2Œ¥Ò‰ÃµÞH”TWüÊöùSl=àŸð[÷šä.Á²ã­Ç±¦ä÷”ùBµ§‰Pqv¥ÚµöÕ¾CÙ‡¢s¢ 'Èu*¥Sž ¼‰ ›H¸„š¶½Š'×›q›Ò£ð,]IÉÌÊ$“ÔãúÃSQB­âÁ?}Žáúž +€“~‡àÅŒSOè&ƒ=ǹ"sÎv?5â ,¹KãSƒd¸ÄÇ€[}Â~x鬋«X¨«wëæSð˜†a˜¼÷«ËMõÆœæZEHN¨G» ÷ÅÖº®è.He—Ð=‰ïtÅ,ܱˆ¥|næEiÈÁSC>q˜Q潟"—å¦R„™O¤ÿÌäÂkÔ¢\ž¢(¦;‚¾ÔI=Þ»`êuÃmA¥r2å±[`$u¬OµëÖ3máêeÙ³^2BoËËùéLÀ÷ª©O +›sïb®¢´ +7ƒ=púb¸4ñì]ÜSšð)ÊAofÀä© N°vn +Cót€·¦wî§0 gìÇçåȈúr8Rÿ¢ëPÁ…0ZyU–UÍÏÑÌ‹3ôµ¦aâ/wá¬ùW°.-^±q5v3Fë Ãì3÷ÏÐ@2ú!ØÍç2vÎ ñŒD 3]P—&zž2áü´–da3¾-AþõlÑê7ÑZå|ðÍ¢Ñ0÷P`9¸ý®>%`£HL¶’1´óû#Lñ˜@K#™gµxÑH6ɳP¤4Ž„>Õ4k9ð8K%iló EßœÀdï,¾ÿnkS× ÎÓné•”7i|-å³P_KùT%×S~øèôßJ·–ÃL‰CwzxGÍ«éŽC¯eÔûº™~#™¦B¨Ø/ð´[מº"{¼]êP˜ò­‘´äsXAß°_QDp;#¤7X5Á°“5$jÈ·P?L#YÞœ +@ÚþÆ@·âlø„ç}@j|á¤ØÁå(’s{æ5Ã<%–—´Œ·ø 5鿲pƒf¼­yªé§‘ÉŸæ„ì±Áÿi ÍîOj03k•-ýeNGZ$4×^þÔ³äŒendstream +endobj +1224 0 obj << +/Type /Page +/Contents 1225 0 R +/Resources 1223 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1201 0 R +>> endobj +1226 0 obj << +/D [1224 0 R /XYZ 63.034 602.788 null] +>> endobj +146 0 obj << +/D [1224 0 R /XYZ 63.034 257.972 null] +>> endobj +1223 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R /F48 601 0 R /F45 589 0 R /F11 674 0 R /F47 596 0 R /F14 1012 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1229 0 obj << +/Length 2798 +/Filter /FlateDecode +>> +stream +xÚ½Y[oÛ8~ϯ0æIŒXÞ$‘vînÛé³íNó´ÓyPl'Ö¶2–Ü6ýõ{.¤LYJÚÙ "^y¾s±ZHøS ¯„×Å¢”ZTÎ-V» ¹¸™×*Pä$Ohþvyñì•[xáK³¸¼>çr¹þ53rùÛåOÏ^öD¦ªRHY[¤øû/Þ]¾\ªì—enŒÍŒXæUUe¯_^^¾ùçk4ÙûË¥³Ù‹_–Îd—/ÿ-µË6é?R~€eFg _3‡š·›ÀmÓ·=¶5.­²:l³¢¶çö +¹ÝnV8ÿâ¼æýíæѾíq ËÖL×{^±ù¼B©6]‡ª…ä +ŽZtÄ[òæ–5ÝÖñ¤ù: ß47M/ˆ—²Â[ µ°Äî^U ‹µÖÌè3,¨wغƒÖ–Æ@?ÚÚ¬;âÐtàÝ4…mœ>´4ûW=3n¯ùÛ£X ¼³Ç~OûÜ §éxAT7=K¥N—¯µÊáY~rQ +_Y$€÷ãñ ÂzVÜži’üâDð¼ —}…1ätOå…©ôßR™¥7Ë,>Hv©N¥Ðð˜™@Me°ÂV‰Ìÿ)ôW¥xþüùREY.ÊïËT9¹`U¦·êWÓCáª"eôA*;áUÀýØ„¿ùÜØR”ÎÌ蟬Q<ðzÝ !ßpÿ ™>bìEëáÞ§MwË}K£6#cmùãûo®ðé÷8õqC²z䫦k`1A a26£ÊŠ!ü„(—½ ô×õªÿaŒ€´þÐ!¬Á¥(MG‡"0$† ¬Ïz½ö.bãFÝ£P´§ Ú +¤ +ÃþRîµ&M +Év[Üs»f‚zEºÂ¡NÒ\ÝÆ ©)Ü ú°.Ï 3p¸ +š…ù®ùZ¤Mš:­nÎÜl<9–G4¦ÝDoé6›¾ao·àÊìEÇ45Ò‹‚fÏ£ÁÁì£(´ÜË#‡¼¾˜ Ï`Î2ËÃ=n æÉ¡QŸ5aÐcÝÓ¢KçS×x/nàhXì®99CdzÏóج7›|Ù­|¶»;÷ñÊ@¿°^ +@ðÞ¿_üú›\¬ÁÕÿt!…ñnñ Ú Ø/vZx0Pîm/Þ_üë +DVù‰×y$ ÀÀµrq7”mµ­A*.i{ÓÒñŽå¥0¾äª}Í«ÐnñÛµÛ¨\Ò“ÿ ë“‚•† îí9N²x0(ßô¼dË TX¡½?ƒCdÏwKȃÿóÁ×øt­V©—ï˜ü +EA ´²Uœ&º]xƒÕ|*Ÿ6Õ£Ç`ËÜ?v'•œ#­.ÉË0áª=F{DÖÇÁ>FK¬ù³'hÉO ‹ƒ»–î gÅhp³ Ç‘f:¸Ÿ† Ì¢Ž›i˜ƒgjB/¿×dk{¼_ÁÐóba° ¤$%5éiðRu÷Ç"; z¼OB\(Wí¾kàJ0Ð#6d@ìÔü‰1SC: ïf +t²¯R`έThçŠ_‡›8 +M$umiøDuÏÓÍ5C 6½u[ ]ºÑ­ÏÞx!Ë™—:*wâÑÕ ¼=Š†¥f³’:}Á|+Ïà…Slx­{~ª2¢ªìÈÏ þ#<µ~xu›d†}ËøÜeÑEŒ‚~~7° +Ô„µ€w€?_Å0#¬©À°À+O˜ˆîÁIQ=lˆbýûÝÛ÷Ó«ðÂÉ(¸8—;¤EÀA®˜Ë® ·ª*Ô¢ÎU)Å9% ¾S  ³œ‚}ÄK -ý€ +Œ† U‚)WÎâ¸q¢„&€˜pŠsÒˆÞä‚owÓ;„§ë¥ ª˜º!-Pe90|ÊF^yÂlr‡Z0Êñ V[2O–îü"«¢J/rÌ-÷Àl5zøoöwÇ~Ê©Οž¼3HÀƒ·ŸS‹…µH'\©Ÿäž#¯eöJ÷]²7©üM­«°jßîsjnu¦ƒû»f–zÏÝäk±u À,0ì.°ÐÛ…^7¬#!±Ôx=L=pz=Þ½> "ów×63*^SÐo}¦2ç a¸8)̉T +{Éä¶Ý§endstream +endobj +1228 0 obj << +/Type /Page +/Contents 1229 0 R +/Resources 1227 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1201 0 R +>> endobj +1230 0 obj << +/D [1228 0 R /XYZ 91.925 602.788 null] +>> endobj +801 0 obj << +/D [1228 0 R /XYZ 243.792 304.908 null] +>> endobj +1227 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F11 674 0 R /F10 1027 0 R /F13 1055 0 R /F7 586 0 R /F48 601 0 R /F14 1012 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1233 0 obj << +/Length 1732 +/Filter /FlateDecode +>> +stream +xÚ­XYoÛF~ׯú`P¸Þ“K¢H +7uÒµãÆ +Ô Z¢$¢”¨”ä×wf’’;mærwvŽoNŠ)ü±q$rQNtgë/áäåˆ9ŠÐ‘„=š_§£ÓJŽ’Db<]²™ÎoA"2 µÖÁÅÙ«ËéùåÙåóóI(„Îþx9aÁ›·¯¦¿_\OÞO_Ÿ¾ˆ;^@A´ŒA¸aÃ`t>m’4‚sõ ÎžæXéxƒ ¨§´Ò’Ä<2Ò(“3Jƒ'§(¸…Œ’D%îXNB¦´ +îÊ|>H ÁzûaV¤ëí$T\諸°“oûþÄ>RØgƒl" ¼·êò˜p), wÞ3'tûŒ4بS'ržÍª,­3û¶«³¹]ݯòÂm6+·Xƒ-AY;ë|¹Éù,õFÌóeî–y=hE þfŠzs¿dUI O8ˆº Îˆž’ˆh>ë xfÔ>NNÂá³ùöíØ#탽·Ï§OÝeïä,){zGaÕŽÚ ¬Š °§-ŠøyÐJ~,Yh)Ÿ +ËÁŽ`Ÿ‘d/"¡Êê¬9ð8úØ®Eºt¾]øXA=‚-d. ‡§œLÏãÈk Ï8'"N@ÞSìËò «3ɉº¸úð÷Õ›ëaèåƒø‘^Õ½ ´¶¸2T—ežáq”|FA‘o vºM“Ýð\ÁV9áqpoß›Ÿ:h2ã³Æ¾-ªr'àq£€ìi–DNCð·Ä‚ù‘®\ySfånƒÂ¨æiªG:ï´µ& ìn¯ÈîZ¹8>…,F'"ÔHˆ-4%”V®­‚\I›²‚†£T¼AB3ÖBóà¹}ß"]¹¬ÒµÑ-‡·ÍÒéf¹C.KwÅ«aÖ­uívJû<½»LaY¹ ÙÝDAð°µKŒu#mõAׂ¼$•A•/Wž Œ’B­ƒÚÊÀ³æ,µ{·ÆdãÜ ,¼{Ò%ªW%êØ„¸9Ëq=Ã%Ú•7–Ñ04ûl_fåfnhòÒ±ÂPIó¢@#¥ƒ)²A@з¨Bç—ØãP#;u‘Ð7Ó¶Ö:ßÌj_à’Ç¡Lˆ¦úÛÂP&¾.£nÈò‹)SUé8?‚Ü.ðÄ„c’¸( ë€ØŸßãºÜ!Ìs»³ÈšÙ°²oÝYá3ÏÛciU¥âX£„¹§…1µ…Z–Ä{Ñ`¬HDPÞâí;ļÜÕÅgÜåÁÎ8ÊšaœÞ:‰woi"ƒ-U™uÆÊX·Ì7–][LðvYÜôD»Ú¡nvMÄÃî:ý™fö­öñU¹ 'ìÈ¥û!o}:èϘ³ã²‚C£Q ž0Àøl4ú­ÍÿÉœVa K7“vËÒð‘]@„ÉäSnåd•¥~Ç„L"Î=f’éû¼Q0œ$ÒÆõù'¼‡ ‡9aq>2L‘DkSÙ¹0·npô`å7—VÀaW×Ç:VYå$ƒfn K%*ú5°™Œˆ:H GÀ¶(®ÖŒYF>düÁL.  Ë$s)·?ŽnÞÓñfó×#J„ù=¬)|2^?lëæ­]þìfwÏ+ì13³{ÿ3?–­<“9ýh©›jçë_cÔNžàˆH ½„ ’0ö½¥Òúø#Öö̸ĔÂÎ/<Ø”N‹]mlé£ û¡©´¦íÁý*ÛØÕA7[”Õº» Ñ\¶ìÏRS¥™M½vš6ÆX[¸·å©š|6NùÔÉÊçmë(ìŽ °b×ꆅØD(îÂæâê0¸`DÃ4Ä…/0ùx$"…ŽÏ+ì13‘ÐWˆ ,¢ªˆj]½EãÐþçÇŸ—Š(ésãñ—£°æÒ´Ö[×OñÚÛë37¢hÈm•ì•9ê3zÝ6ÖÖáF%½V'èJ{ÞQ&´†!’û1ø)ªª÷¹ Çiç7H=†/ofàñ#)1ÉZ— àKXô?Óâñ"e°Xš1!oVk{j±£rÂ5ΗjÌø4×Éw•Ï+ì1;,'XF„’­<Ó~àëÝ*ÇLÿ–2øk•:·ÏÍÀmê¤CÃĶmLw¦OÚ¢ô‹«=4VòµÚƒ?Šäw¾»öò5û”®·E£‡¶‹Þ#±=rÌ …À4×ñ÷ìx…=fG ÇŠÐNœ+Ù&•» ¥DAùšy^i&¨€š°¯Ú ¾/ì„Ü"ˆ˜v"ìºNék½ñ:ÖÍ]AMr¿5%‹<úÉ +‚h†o½Ã*"šÉendstream +endobj +1232 0 obj << +/Type /Page +/Contents 1233 0 R +/Resources 1231 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1236 0 R +>> endobj +1234 0 obj << +/D [1232 0 R /XYZ 63.034 602.788 null] +>> endobj +1235 0 obj << +/D [1232 0 R /XYZ 63.034 287.93 null] +>> endobj +1231 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R /F48 601 0 R /F47 596 0 R /F11 674 0 R /F7 586 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1239 0 obj << +/Length 166 +/Filter /FlateDecode +>> +stream +xÚ}α! à§`„ +W 0žÊ:sv3N|ÿU.9õbŒéÒôÿò§NÚ:Nf¹ 2Ú(%yy+ï5é…›„™ˆ™™%‹E—d†Qòí»…¯'…>ónÑÿaŽ"XKµv«M{ࢴAô +A"R}aÞîûñˆêÈ:yÕ:¡â²;Eá÷sDŒÿG@®.Áø¡—±óð n;¶endstream +endobj +1238 0 obj << +/Type /Page +/Contents 1239 0 R +/Resources 1237 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1236 0 R +>> endobj +1240 0 obj << +/D [1238 0 R /XYZ 91.925 602.788 null] +>> endobj +1237 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1243 0 obj << +/Length 1764 +/Filter /FlateDecode +>> +stream +xÚ­XKÛ6¾ûW=I@ÅŠ¤^<&A[$—¢È¢=¤90¶ÖV²\IÞíö×w$-?vS Á+r8Î|óàÐ2ÊàOF¥™Î£2S¢ªëhݯ²h +¿®¤ãй•ÄÙÅ4ÏJQåE”.$¼½[ýôK^E*e©£»{J‘eBfet·ù¿ÛÙÃœ¤2nÆ$ÕUçÉ综/IîËà#j©iË[;%2n×È_Ä¿àËÛelg\àß~ +rd.t^:9EBYNlBÂ6©Šø=îI@Ð<$ps\Ï-‡= ª## ›b”µ’$æý>IsYÅó¸×ña䱌IÆqbú:Qu m¦å‘÷ZþLŽ6ÐhbòpÏßnÀíO,ªkqÖt<µ°©ÛcKjôDUMÃûYæl¿tx„³×sƒ,%‚½h£”Âì¥Mc;ðR^©ø O Q»G1sk;´ñ_”‚ƒý—ulqyì½fÐv¶¼ ÿ9¶þ€ç­~¾ Á¤ŠBTY颕ÖJ¯>}΢ Ä݇U&´©£'Cõ+%Lmܬ[}\ý~ŠK/+]£¸\¸SÁRiŠpìÔeí§y„`8‚ÎcC¨‰$­KßíŽhÇ¡FÄ3#aå1é:5•¦€\Û‚± ÎX'øj#É›ûaÞÁܨML\ÍŒ<E~9hš¾ÝoѯÏL݈qj»--Aå-å ,ZŒrÞ®Ÿ˜ô´k98Ý´•éÌûaì™æÔYF[âRëb—8Ń-é6"…ôÖyȭ˸a¸[‚ØÉiYçñ9©sD<ÏëøÏ¡éXæ»ÃM-šJGôòƦ³sët{v*Œ(î"ø†U-zßv0~!RSØMÈÍ6,ÍòÍ9¶ÇÈ7€§ÇŠ^ŒÕi×<33å& {`ÂßÜ®xà*$-¬ÙÏ›<Æ%ÝÚm8ÅÌtËU—žÀÕˆ)N´×'ÇÉ—œ¼=†if’˸ŸÚµíYZ¡ïÉÉy|¦t.XZ,ơ̇̄î“ Ý¡r›> endobj +1244 0 obj << +/D [1242 0 R /XYZ 63.034 602.788 null] +>> endobj +150 0 obj << +/D [1242 0 R /XYZ 63.034 584.788 null] +>> endobj +154 0 obj << +/D [1242 0 R /XYZ 63.034 405.623 null] +>> endobj +158 0 obj << +/D [1242 0 R /XYZ 63.034 258.097 null] +>> endobj +162 0 obj << +/D [1242 0 R /XYZ 63.034 229.446 null] +>> endobj +1241 0 obj << +/Font << /F47 596 0 R /F8 580 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1247 0 obj << +/Length 3113 +/Filter /FlateDecode +>> +stream +xÚ½ZYãÆ~Ÿ_¡GÊ0{û>ÉÃÚðÆ› ±ã—À6®Ä%¯'¿>U]Ý)Rš‰g,°¤ØÅêºë«æˆ‡b ÒÌ,—Ìy?[¬oøìVþr#E™HÊÍW·7oÞûY`ÁªÙíÝ9—Ûå…ÒóŸoÿúæ½Ñ'2á³ð€GŠ¯¿}÷ýí7sQü0/•Ò…fóÒ9W|5/Eñî#,|øšV¾û~|óû¹×Å-®~øüã#îpóÍm'ªV†Ye¯j£´bNÀ˜\—–q§g¥Ó̋Ч8§Ô,x1:-ÒýzóãÏ|¶º¿Þp¦‚Ÿ}†{ÎD³õô‚Y.Ò7ÿ<É$¤f³Òx /NXHÏ‚ñ3ã@>Øí÷îá~»;4‡Õšl­{ohÇϦ^ïÎM%‚bÚŠŽá“ +¹rÄO¼Ê³¨@_,óðn_ƒÅv7W²x$é{Äh¡’ðl¬\8óH¥€À3&’}Ø쎇1'»šŽS©µ.Þm0¬Ô¤UÐí`«·ön¿…KV!^eÙÈ­ÄëvC›Í\†"éoŸH “2éQÔôÌx—W7ˉ×S.¿ÿiô¾fÒÙ+öÂ2ÜÀàßSW–Y!‡ÿxˆ‘ZS:Wdþf2D€ôñÉön,8„‹PÏSl7ÖÒNª«z›¾Þƒh ´4Ú3!íkåø‰ÛÅ$Ç å2 +%’?L˜8 +(I··Xøa^JúŸ[ø 6–΋+ª·Ç¶†§Ë‘œ3e+Vä+Q¤D¹GçmçÒŸÇRhË\p-ì˜éVÛ ]èUoa£#î|AN%˜1YÎe4÷Í¡62ÅOÜð»¦÷ŠŽ½éR!TŽC¼ÚÎèÏ(„`ÒÇ™WÙcF…°/6A'^°ðçqù°[v1è'bVJk˜ƒtL‘r©6m*a3ÚŠÆm\½£î·kJUN0å8 EK†«Ž½Þ¯8ušp>!D°Ùµ‚ö]nI_Qb!3†úŠ‰h‚æbÄ0ŸY ©wù^ +¦ƒéÛ¢/)äg€äïH~âšOÆ­SòÔߪ5TôñFý¢j ãk*˜†ª¿z-Æ„]OðP̘?”ls·K},.Ž—éó]t¼ºàxÌ^1t¼úÿ;ÞOû“:0gD’‘©Ù•î’µ M8÷µžŒ¼§|ý 8DJæiáÚXZÁvÊPàRÎåÿ&dÛ ;3™ + êÐÇ6%¾>1–7Óµ°¼”9ÿþý¨{Ï4ÀàÄÁ¼¨¶g^eÙ¨¶Cü0£e·a„IùßÍ-þ5•a'Ü•ËûÑdR/3 Çë  y@ßÑ“³‘†ip[©Á}2ˆiÈJ4™%ßܱkÔ”¼ ûÛ„´qDi°¶J e¢ó¡gf½=ÿ0æμ®) 0ÔíPE†¡ç²)É8lÖc72šDßXÌ0`Bº6Ak¨ôÊèéùˆÃ|dÃLyÜ\ð0±Ó‡·8蕚˩ÉÅANªîõs‰Uyâ5–ÖC0Aäö¤í†¹`óá‡uMç’q»ÂòÒb=àEÕca<È©©ÓjÆ¢x?;šüò\­¯…Nbu®u_ ]Ý÷uÆiÍ_˜Ö”óW¦§sKl DÖ+Ôx­ªY3j¸ÝÛMB}€aðvœ£Ð^"b·#Dö`¹ˆàѲk¼A‹oªCÌâ2ÌZD¶ªñF€æ1Øšhò5=ìV§òV@À*À³Ðz…yaÞ¯²Çld}ó4À‘Lr}Z†!Ô‡‹CIˆó6­~n’Åöõn_·ið‰~Z¨­¢%ëä åa9hû9Òøt_ïÑ—ª¨ZºFVx3‘À†?°˜ÂÃ^vôx•=f£:î@lèg™ä©Ã%ìÅp&°{šø‚Ïš¢!FÚJØÐþkh›y]Ó…øð\Û‹É+®M´6äJÖ®*Œ(@ˆ¹š´®èBGàl˜ÉcD¤ÐPЫMl‘n‰õ/fð!æéâÐ?‚tJ¢ó) zš2ƒrЕKk.X^Àొhƒ\¿,ί²Çl|¨} ¬™Iž²¼QâJÙôÝYÂ:Ú³j6¨šh\*ŸV§TC3L_ˆøk˜ óºf©qz ¯f‚ÜWÕ†t=…껿bHýÄ…®—DÔÅÜ7¢Åð¥S#ü…Ûd¾ +^U±Ú-(n)䜉Øi2äÝý67ɱîÎóèø`•\IèkíƒHJ¿°ô%^eÙ($=‡þë»ýžò‡”âùˆ€öô~LKÄ™t4}7y0)ºƒéOS~–ÙÏKô¨£–EBWlÐOŒ½ªPîßæämà²Ù"t¸_%ÝE±¦'x¸ߥÆOºƒ4â€g긑ƒ)ôeP Ïójs Îkìئ_Ž{B~¢¸¨ +¢P“5€•4ÙÝ>÷×EÓF<#](ªãýº&'Ƶ%=þ ¹U¨ÿ Kâý…¶“m€Náqlû¢Êx•=f㶠”îö£³À-jñ™ä¡2;¬´Ôa‘$f:yO°Âog¯Tnºi}Ÿø" Ï–NÖÜö}…à2áRlD~º*x ¯û8¶ôsJ@ã ä•l]6tu XU°<Òú÷¥H›·í¢úÒ¶æEîÝÕ}]ß.ȨM~X<‹×ÿÄZ¹ßI<­Èq^ï)¹29½ƒjhe•¦g`§©àeÏÎnÐë£Ï3R/ïØž|6:MÆê-Ï? ç:æº7ms¿™ú4©½µl¶íㆾ.‘ªö‘Öâvˆ¿ðG«xdJÀßÏz–Œ¡§½Oík{q—Ô0ïbZ¾ Ñ%^eÙÑOT2ÉàL/Ês"" mƇE.Š hÛÖ> endobj +1248 0 obj << +/D [1246 0 R /XYZ 91.925 602.788 null] +>> endobj +802 0 obj << +/D [1246 0 R /XYZ 246.836 424.246 null] +>> endobj +1245 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F48 601 0 R /F11 674 0 R /F45 589 0 R /F14 1012 0 R /F10 1027 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1251 0 obj << +/Length 905 +/Filter /FlateDecode +>> +stream +xÚ­VÛNÛ0¾ÏSdw %Æg;bLbC°1&MB)MK¤6éÒ0´=ýœÚ!up³] ªŠÿáó÷läCõC>'êsˆÒ¿[zП«S‰ÈˆD[2oïà=£~ bNüdÖ7“L¿`FBˆàx<QpvzqvqF„àkˆ +Ž?^Ÿ¨±^KŸõø“Z¾ o’sï$y‚1’[Xzßo ?U˜Ï=H,ýG5†Å±¿ô0ˆelf oì}éÎÔÚ<ÆHF¬S]$ D4GJ®B,‚ëwÉõÕɸ{ð^vꈫ!V6Š„õÏC!‚²Aî[™ç8¥/•#¾E>HÌ7Þ †‹;9,¦Äà™™ý-;‘ˆ±RÔ†PaŽYµUÙz?Œ˜‡eÑVÁÎUbÔö´r>ÓßéºÖƒ£#ý]Wwf§4nÊú>/æÍ„{Në´…i¬þ€ ¦¶Ý‰ZCÏi‰)@ŠâÝ´ÛSiÀECFýPÚÁ§ËÛÏŽ¿¹IáÏ=¸ò¤=Ïž€mHXæ¥Y•=vçUùhXÌZ‚wP;¨›DoÒÅ¢4x­?iôæaMÝ4"'CéÕJXÞ #Š!´¼7•e&|ú³\ÝvgÚ@ÜoQ5ã ÙÝfãÕ‘7l¬ª‡C9TF†Ýø½ø+ÈÎØüÜ/CªžB¯÷m3ä…RˆP'JÖK¡?Ye +pb˜.¦zpW®~ëQ}ŸéÁ*­Òeˆ¬Î*¹òWV eùWMÌþ÷@â©çùºn½ª”™æó¼Íþz¹JMÎì5HÕ|rè*&"hcã¤ågUªžØúJyºnSÖ}\ +«¨gv]>TwÙ !lTšYE¢*tºræ %ÎUÚsÞ4‹¼Hë¼,°ÁÄB0Ù€;WEA—[ªõ’lM7Ç&tTs³²êZEaA„‡æZq5·n£ÑŽV'ÕE£¡Vg$죪¢Âdâd4²@m²s4r2Ç—9 +2PøFÀ6„œæq?‹,5ìÝçóûrßÚ!.îdOl²wÍ)lènn%l t€h覘½Å/uÏ3ç=Ïú÷|W. ¡íÚCQ÷Zö:ŸC(Ö¾LhúmE‡Ë¡Èa§Ø:ÙVlÖÜŠèé=é~Bm?–Í7f€¨'µã©L(5³­Í¿‘$öëendstream +endobj +1250 0 obj << +/Type /Page +/Contents 1251 0 R +/Resources 1249 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1236 0 R +>> endobj +1252 0 obj << +/D [1250 0 R /XYZ 63.034 602.788 null] +>> endobj +1249 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1255 0 obj << +/Length 2762 +/Filter /FlateDecode +>> +stream +xÚÍ]ÛÆñý~…'*¶ÖÜ/’›´œÀnœ‡:µïÍ1 +žDID$Q¡¨œÏ¿¾ó±K.EݵÀµ@q8q¹;;;;ß3”³þäÌIá”e©yQÌ–û›t¶•¿ÝH±ð ‹æÇÛ›Wo‹™.Ó³Ûõ%–ÛÕ§DgóÏ·¿¼zkÍ&s-2˜H ⧟_ÿzûf.“ó…Ö&1b¾Èó<ùq¾Éë°ðî'^yÿ+¼¼ùðz^˜äWß½‡‰¿ÄnÞÜö¤mE¦³'o`&ױŬB³è>67¢PQ›fÊ_È pªÊ„ûlx=bËBj¡á×6„y¿\"ýå©np…r·{˜/\±Ä‡MVÕERáê +~aÜñR¹Û4-ÌÖÝ~÷8™%û!bÙû7ÀxàÙýñ’MZ+QÀ¬5Â¥9ðÇͧÏélìúå&Ú³{§B:7Ûß(á +çßv7oþ1°3àZDÈ.µCË {AFÔÃÕLR!O~K¥®ˆ;]ýç\9ž üñðëN¸XíÖx·ÙB ,vÀjœeÎ˹ʓ-¨uÀqxf2¹ßSa”&ÄÆŠgkŽðsîx±$þó¸9wñÒ”Ÿ*3"sùÌ`”±ÏâgÀµˆ]òSe¹ÈŠ¬?oÄO$ñÔµg xÙÛÊßoPž˜kþ^ÈLº+?Ö¸å°ìP3™emÅÜ•¹y&=wù¼æ¬3Òôœ2RKýä©ÜÓI`ÑYa“·óB' ¼¹}b@o ~[Ýùg°Iƒ„wõ¾ÜñR¯ Û +î‡43ÞšŽÜW«ºìX²¬=¸vÏF’¤¥£«³©ñ&ö8+4´ ©™ÖtÓ¦;Z¯x]˜’‚°IÐjp1ÊÛmŧÊ"y^Ìlš‹´x–®T‹×¥ªHc@ty8-ÖrVRF°V(™ygv7qf¹°NùÕ=ZÖ™¥$Ië´J¶ä‹þÄ{’Á¿Ù2Ð +e;0–tž%)²Ù7äþVA„ÈëÞPî|"œ«€lƒè²fí‘òÒ]PÝÌŽdsE$i& "g…TÏ3_jᚈ$uB×÷´LŒÐ½LʉL@bYXlïÖW%ëlÝÝwhK*Mø·AG1A¬S¡ÒØjà/xØdWü¨Û‚ÙOŽ1Uˆý}& +ë4'ŸsåˆÌè cDN®FØîyæJSBJñ_‘YÀõ”Ð(̵±Ð6mƒR»g½ÏÂá ¤Ê(ŽYð,Ï›}5ȃV +üR#åìù™Î± nlYS¾³¤äÆg…ÈRù„å¦À ^eO†^#£#&:á©5»¶…Rß…S[ÊGÚ1(YÍÙ‡˜]½†ß¶­xPá*„A%;¶óæ 1æâ2MX³„Hpà5åÒë “™ë„ =Ë{\‹ÙÄk'Ò\÷çÅ>øªh€­yö”â¸üßI¥PjTiÀN›ô‚ ù0â*%5`¶˜ZÁ d'b­éM­£i­ãŒQÀŠ%b,Ú;¡ > Áâ@*SÐo§/2§Þðë;‡a&8i,aäø5ŸÆ‘:T“äy*lš=a©¦p×B)ÉN«T˜±4VWÆ[:±©·¶ÌDE&‰êÐx¹úBæCI—Îì…µà̵\@橤O¥ñ…s1{ð(v' áɯUëGŽf¬¾¸–õIƒÕ–8 ¨;Ž"yjGÁû7©ÍšrŠo`¿É£|€/gŠd_þJ  œ +§)¢˜lÐV˜»´)ÞRÉ‘K4lf´½>ðæ +즺€· +ÛëÒïBR§j©`ñ„SÏE®U”A#".wñÞm]yƒ×©™4Sƒo}ÕUp¬²4ÁTÊÌKnÙU‚5ÏÜoø-Ê´´ôƒ}Ë]U¶¸@á˜W'~ï­“Aí Ö CýbsDE¬÷õWºŨæp¥¼îc +nTvœ²=•' ¦N]hiá,‰IQ{ n@\°íËqØÔV›úÄ‚‡7’)%1;¦â6ƒ»ãÛœU½oUÁþP¿^$ž´]ˆlpyvŒ¯ÞšQ±=ñ’óžDþ{Øpàìû:‹ºÈè¾²öï¨óF_Ós\ zÎ΂çjÿÄ& î¬÷Ç]p×û, ”ÜîAžæ> á ]xóÀz +ɳƒÛÆ·›Dg(sUEïä®ÎËÊ—B(Með.)Õ¸éDÕ†ÿÒ㺯w;Ýq:Ä/q}%}¹pdÔ«!,Qœy`°ÚÐ Á´å•õù@Í2 Á‡»tä¬n±{Uq3!ë%µm!{‰TiêÝÚ¼²=(#²j9ußø­öÏ+ÅÓ#*=À¶i;žÙ†PAËl42(ÊŠ'BòÃÉ…´±åÝœ*Á:)ÀyëÞ Ú+ÖÜm¤zq+#~Ó`=™!‡ûbÒ†›cª—I€×ZNkê¶òþšÜ<Ëå2è¹wêv‹JtQPWöFm,cþ‚˜W/±¹ÉMOØŠ¤6×î»M­¼ã Ž ò&Ÿ¦WÌ¿]u™vùȘE‘»øKÄä‹„]D°”TB¡wù%€ …”Vqšÿ…‡åGú=?ýì_ø!Ó~þ\û%"Öâo4Úṙ0@L +p œV–üâ‡ÃyÿÉ|^ü°:~úòù’œÉ1 5m~L? ªHÞIÖ¾Ýdžj²[ñLï%0…m«Å}P­ºëªCè Æ}ÞKßIs§Ç„ å·Ôú?æû¨0=7%ÿÉÕ41ì[,þ¿¿KG|1ýøÿ•Š|[¾xñ¿S lTõý‰Ú7‚†¯ TÜ¢ À¨­ì¸c‡³—å+ã÷Ͳ%Ÿ…QÁ·H¸×1*bðõ>ø½n[ +<±ÓjÕÀýsˆ²ÒfP˜>¯¯p-"d—Õ*ÔC¦fýyÍhü¾'E!Ç5 ~^ZvhxT?„B¾­¨]{©MÞu¼Ú¤ÔPè2§ÁoÒRßøÃ¥’ç 5EY+ÂùŽ+¢Ú÷ªŒ¾8xœ-íÿ{ÑC[ å ¥8úÔÄ(?nöÇze +˜)£}êúŽƒ¯>i£Ôñ¸ÏyežDTQ×˾ý8¯3r–-gl>ì NÝ~¾õÜ+j1ÔI—Ä OhçŒ3®©gô)/L¬š=¹ËBŠ}ì0Ô> endobj +1256 0 obj << +/D [1254 0 R /XYZ 91.925 602.788 null] +>> endobj +1253 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R /F11 674 0 R /F48 601 0 R /F36 583 0 R /F14 1012 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1259 0 obj << +/Length 2610 +/Filter /FlateDecode +>> +stream +xÚ­YYܸ~Ÿ_ÑÈ“z–E‘º°É“=ëEì$;mçÁöGÒt3VK½’zdz¿>u”úðnÅbU±Ž¯4bÁ?±HeIµH£8Ìò|QÅvn¯„¥XY’ÕŒæoë«—¯µ(Â"•‹õÃ)›uõ1Pa.WY–×wwK¼¹}÷æÝír%¥ >,…Áõßß¿‚;^[/W"øßÂò?—Ÿ×¿\½Z{AâX†yz$ëoW?G‹ +dþå* +e‘/a…¢(»«8,òÂΚ«»«M:9^Ï*Çi˜'òH«7ïÖ(¢ +P¥õ¯Ë8 Þ߬ßÿúêÅ}ù:ŸŽ‹†1@evªŠÒ0Sɳ¶w4grÎîɲ°ÈòE’©0Sºl½­AÊ$ +>EBõ é€Æy ç5Îõе¼d˜D&@´…±¶¤»n~°ìv{Ó¸ÓýtæÑ4 ŒT´¥­áf‰du9šß—qÔÍou{89šùƒöyq¿\);Ó"éX÷h¬ÅJ¨°PðJB„E’jºGaÇí®fÉD`J¯©8 ^/st=rKƒú«Þí›úÏ0Ë3¶A‡çbpÊI +=š®øÄNã‹>ñäeéú/<{zǘŒd½õ" EØ`LûÁ Ý>‘Õ„éæŠнȂ’Û£bµ-m|Š’Ùß}@In`*p#t «qHV‡±“Çhrß¾{Ïox~Óíð4iêÙm·7tKÈd×ÍÐñh@»ÍUàÇ8~JM¯A¶”iB¶ÌÑ–2UhË EÁ^x 9aWò@·¼F0~kuyzmy‡—·¼j,±±»¦ò.ÞðÎØñ/Æì¹›ôJ¶ÍŽb#J‚Mßܘ²Ü0ÐxY„.Ó:=aõÒ[rœ©;‚Ξ5 澩Ñqeé—ð˜>Óàš&·ªíùn?â"ɉH‘wÍKzÑ­Ò©È +ں܀lªº×÷ßOLrOꇖz:&¼çãø4СšƒWЀ²€£ºxsÜÚÛ9JЮ}é¹É÷¸5þ‰aÊá®YÞså¼X™íÝ PLÊ#g÷‹Ómpf9¤žj&º§¤Ä‰fœë‰ H8Ý––„üüŒi7<ð¯O’è>«Å¡rJر´†©ËÝ ç'É—l²Žå,Yãºõªc p!=“º‡±¶ÌJm;ýÅ>iÝÑ ­„k4˜R¿Ÿ)Òòb&8#8y +ÿæ¢Óñÿ„Eä´FÞû$¤z AþÄ ?ä˜ælühø^EžNC! d»ýi-–" cU,T–C; [8^«³Óš-EÆ2÷÷q€î)‘`¶©~nÇÕco&/lYq°6=DœÀÑñK´!ô΃3yÍ^yî+3×ÖÓÞeÂS[%y%ñB)Š4™Ã–3øbIW3Z²„L'Sä’$v$(ùË–«Š9Xä‰G(ƒà 238VÁ//¤JÔH‰ölyøWþ‰~ä_»ú{Çê§è .é¶_¼ w `'fÀP€µ aÝïÏU‚¸HC….0“ç~õSµÿØ~>’DÛÅÏ/Y‰(T©8‚ ›3¹Jüeà2”Š!ê¿·ÎIÆí,i©žyk“‡Ê"Ÿ™Wf›”Xz +N•&:b:瑯²û)Oº,ŠûÃØS¬oùáÆ‹Qó‚!rÀ‡àoú¨n ™…•ÿ¹CO% a‹LÈN +[ÿ£ÂÃX¿7ömcÓÉTÜ€–¢jëfKTÝØuTë`äj9–rSjŽ‚9—r™˜£ µãðÀ%Ž'¿/“᫾'lp©Œ=âgZÄyUܵrìjVŽ)M;Œô.8q¥è?‡9òG~Ö€ù!{’š¹ˆgaV(å] ‘a.ƒ».¥" +—Ê8‡3?D= +vÖãš!Ü–*¼3”àOýhè¼à08ƒâl¬K|YÔ¸5ôz5ŸEcÄÎipaè½Këv‰÷a$wò….õƒC¦R‰òÔý¨c£Ä.àè «Ü:9;HòüÔ8˜®v~Â=‰H¡¸#0E"÷;¥ãŠ9“,°±§°£bE—!a£{&zt5ü‚¨Äç“' ‹gS¹Ctªã_ò´Í¶áv¦çacÐu{„F¹²ƒkù¾ ‰¦¾K‰˜À,bÏ¢óÛš“†£á «-LÙ•qF*ƒ7îRxˆµÑa4õ î¤Ç_]·”r{zÞQ4<í}ûF¶¢,£«à®Ã²2Ž9ûÚÎ*L*²î§(„Å=ùØà £¸¾6Gýw<ƒÐÈ”cÙ>^ÏÍ­ó`$ÐýDLîmFÃ-ƒþ +S`Œ©$y'Ö¡:Tò°kmç^ê¦<4ÚÊŠ»qß_ÚO-¥f×ÀŸ1%!{S[¦œþ†Ü=õˆz¤B“À»½q&±aiìAö›oô/¾ç†´£¯jj†Áe×\?dë¾çŠ…®{ð ûSK±%„ƒçùû.ŽÜþƒèðIa\õ}Þ=ôŠÏk ÇEâ‡ÚFßÜY¸ÕSt?]Pî¬6pBM'Üy„àqÇ7÷0ÞuÃø|cQØÖ¾‚PoB‘Ù8×ìxÀ=½#ÎFwö¤[SBž‚XÑö¨’°G8m¬ÜÌS°ÖIæ‚¡1I¨Þ;À¥þ—TÍFÌÖ>nÏgµ¶ìÊÀ`Á +…gÂ\ǧ&´=š =Ïë°{©ÎæpÚ?b 3fä ?ÜÃö5U8ÓƒÒçÎPu,°ÿ'NB‰1Ùs>§”ÂiËä¬÷æj<³|rd 'Â"ÌrnRG…1ÿ2„½a„´w.™±E3Ønèòú@ +Kí„`žùgsH‹>Úñf<‚vÀß©“Å™æÛ0–øAˆˆÊ³W{b~ÎMÀ´OLŒ&ÃÝÚÎûÇB„9Ôì  4}_ÿhy­fÌÎúÇB…¹Jü}hB[ú9r¤&Bœ|:ÝPš´@=f+@ $™ÖKz¿Ù¥Bƒ;àÉKÎÜ@d?ªœB4"à?JAô]vp¬V¯S3Äp„ÎËRÌ­@2ú:–%\!iämGÓõI¸V5£É ë}áÅ3|òÿPÔ±zFQ¨0ŽÕ7õ™€]«§ùTÁ©1©ãEYª18(€[ßxæ4”GÆ¡Ê¿Ï߯Ռ٩þL”ˆØßwdÓcc¬äJdSÍÆÉ—–{Ç–§\ª Ò¡—m5L)SþM×N9q•ŠÿØqÅðˆ.éìÚ£¶Ç×èr> endobj +1260 0 obj << +/D [1258 0 R /XYZ 63.034 602.788 null] +>> endobj +1261 0 obj << +/D [1258 0 R /XYZ 63.034 325.504 null] +>> endobj +166 0 obj << +/D [1258 0 R /XYZ 63.034 187.818 null] +>> endobj +1257 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F36 583 0 R /F14 1012 0 R /F48 601 0 R /F47 596 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1265 0 obj << +/Length 2466 +/Filter /FlateDecode +>> +stream +xÚ­YÛrÛÈ}×W0ûncÌ3IåAë²m*k¯­—d³å‚HJb-/ + Ùeýžž 8 @®*R¹,ƒFOwO_N7ø¤Â?>qœ9¡'¦¬¶v2[_T“;<ùûe$)3š®/^½µÇœ‘“ëÛc.×ó_ +i§¿^ÿøê­V2^Kf°PyŠ×ÿ¸|ýfÊ‹ÓRJU(6-ëº.~˜–¼¸üˆW¯Ã“wïqóæÃåԪ⚞^½ÃÂOi‡‹7רJjf¤9«M¢y‚:ºVÌ +ã…]o§¥°Å|‰o¿âº®Šö7 ºæÅv‡ëåÝrƒŸfžÏHÔíÃT¸âëÔÊú)!‹ëûEx¾¦çÇJY³JÕÝîï¿üZMæPæÇ‹ŠIg'_p]1îÜd}!˜³.Þ­.>^ü|P6ñ*3fÇÊ +U± +ɵõj,ÛhZ3]¿h‘×YÑ´eÚôE›‘Am YÝË·÷ë°rßìÃÅ ýÐñàŒ6ai΋ûåÝf1§ˆÅm8Äûô|53)¹1Ì(ÌáZ{¬ióÛínMŽ*áäûàµm³ÿ›0¹–‚’¼óPÚOK8ªbNòœâ˜ÓR>á,ªŠ)%ÇOƒÉ´v8 ¦¹; nðHâôg<â27¿w•½ jæªíëGWpÎÄîå—Laónî9•V^ö\ŠUÛ\øåfI'8êåR¿ˆ\ÓY¹àâ”…2¹ÈÃ¥€‡{ƒæ´'žìɆö†‹ +ÆîùêÕæá±²ª™uºcgSÅå&8ñØIA7ÑÂAKýÌŒäY•¯AÔKËd}Ø.&$dѨç™Sj&DÔ£¨‰ôaëôt3yÝa«ôþÍ “V¢þïÛ1›J.ýãÉ÷ª¡y’¨Ë}8 x(e§e³Z~óÙfNë¢h·!Ãt)ŽnšðÎ!?ÒÝövDgŒ—ë)‡-µÉÕÈ]!% +Í%ƒ{¿XÚ9°;•v”>!’X<ºìÕf9â’CƒÓN1¦ïúÿ­t_g;sVw&UÌ9Õ ö„LQAÅax•³+tHsºgÊa¼ú"ÂÂuJB;Š™ÅY ²rgѯ“ß Íi!ñIo©™vÉoá—#ÞÆxm^æ0êÓg¡kf¬™(hèj󼳈¼ÊŒÙð,LÅjÀ‚Dã÷TÞ&ndW׃ÓàЉÛ~n‘Ñ|¼·8Ý]ÌË” +îc°ïÛÆ?‹PañÇ"fziÃ.vM»ÜÂ;ÝÊh ŸÝ(WFÁÙ¨Ö¨Q,έa¢²ÊCr ÿH“HÈHoÉéïwQY$¬¿ÄFxÄGÄý:¨=â*¼+7Éöüÿ«YäuN‰>ú¾'ðµäÖ|É"«³‚ Δp=ÁfYèIx"uO´Ái +@GâW›åùV’š0 ŸQDÄ+Ã,Ò®â8W¡"Î$ŽXÓ†‡ûÎœ/¯-«¸íÞ€K¼ÊŒÙP` ;"|sOaKìÁ¤x!á"¯³Â êrM_¸`:“pJþqM)ù:54Âð¼ÙÂßuXü²¤f‰:^S%¿&À‚‹o¾÷ +OšMøž—´¨jŽ?Ý$ç¼>ò˜$w{‹žØ9} µ+>Oµ.¯gsCª-B¶N¡÷Á5aJ +± u)iIYd_$ã]¸ ,¾ø¼ÜÆ” ¦_Ã{±~÷ 6/d.h'Q-ÎT÷¼Ìy•³‡¥$9v$ɸ¦20Ug'¿¹w­¯3e­mq¹§5WìgDr(|Yâ %FF9éÙ¸×âS¾‡Ë­ÂÕéFœ6ø2ÅÃmÂG¤¾v0;ÒlbAñGÔ.bpèèœàl‚rè 9™"#¥bœ¤æ@ÊkR%ÄÕ'Øêf3H¨Ž+ëŠYÍŸr¦Îã !ò*3fþL{RiVXH4OMGæP\!÷ P^D²Èë¼dÊ*ÊžddÛÍ°Pr / lñ"²E^çe0’¼/Û¬íix8æ:’ÈÅ¡K#˜¬Ô¹INIËŒ6È`2Äâ™HH„Š7ÔÕ.®Öp`]ëâÕ÷StÚº˜íM»Ø‡›ïšïÂÔ&>ß>,Ã`,Üß„Ÿå†ÂØ_µá÷ûW£ûÙ¸^të‡OÔ¼~šö+„êýª§0E”¬ùsöBÚ$ +Ñ!åãí\ 6w0Ž°L¨4‰Mon¼2ô‰ŠŠ’ˆrû«Ýbÿ×Þž6’ŽJ"Dbp{Ð’þï’±ÿֳǨ!异ÞŠtÿzÿéÝ?/ÿ4?Ò±øüœ’‘¢/¤DV35éÖ>îâ‰ôLÄj¸/0ŸÑ©¼Ù6ôé΢‡]a†¾GÜÄã÷æÈüÁaß LɬÔ]øÙw„1„a€wp7¸B¿ßÃùº;«ô¹¡ ïz[b6Œ×ÍoT€qr.§iBC·Ÿý£Ý JP„QXì7l´B=½å{:O² •u~öÙ@jQ^w‚ {vƒÒŸÿÚ¶~øí«°äšYꀳ2ì1_ÓŽlÆ™vüŒ‰l7õ:îû†tøDÚ²M½,Uí/ié³Òz»‹ó¬fµ +bfÈgóðÂQgôÚ}|Ëã¨f“ñ'E—4¡®OÚÉ1Ói¶nhƒ(F6xCò\-šÝbQ"u 6¡ÄÐT5·mú°°K}zX éfM2J7¡Ìe?yÖm'âÁ¼½ÁàjýÐ!ðÖxgkÓ¹FåÅ!”ù}“E1Ô9EÅ 9„sêHðwVŠ™Í8×ÊÃ{‰sµ™J‚Nw…%F|Ãe¬ÌÃœc¿h+-+=6†æ†£€C\ ~æ:ñ*3fÃÉ£baHzøÝp˜Ãê4vÁ‚ÿÀtÛ<®üPÎ/Ѥ&>õc]Ò0ÜζëàÜQá}»ýÝ2™¡Ù¤y.½zÜ‚Áv,x^M ½?LºNã¢[ +tÙÒáèÍ žeÊȪ<ðXM¥E«)H¶oÃìj>¶Ç]:Ÿað¸–Ç`wë©×£åñ»£oôÝE÷§¦ã ©ä‰„fäˆ)eõ³ī̘$,º”D̽ێôú(¤Vz}_Sláë!MÒºF‹¾)Z®©—]} K»î{j˜V¦×é§>ñy[j”q÷tcœëö«-zßdpfµë™âÐíCHò’¹û–ë9…0©Ù¦œN-“êåôÖ#3ÔÓÑÈJáƦ`ðVsºËþúˆŠ³endstream +endobj +1264 0 obj << +/Type /Page +/Contents 1265 0 R +/Resources 1263 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1262 0 R +>> endobj +1266 0 obj << +/D [1264 0 R /XYZ 91.925 602.788 null] +>> endobj +803 0 obj << +/D [1264 0 R /XYZ 237.571 449.151 null] +>> endobj +170 0 obj << +/D [1264 0 R /XYZ 91.925 196.149 null] +>> endobj +1263 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F48 601 0 R /F11 674 0 R /F45 589 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R /F59 1176 0 R /F47 596 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1269 0 obj << +/Length 1674 +/Filter /FlateDecode +>> +stream +xÚ­XÛnÛF}×Wð‘ +ÂõÞ/)Àš A¸°Û¹  %Y Q®%%€¿¾g/”–"íu`ÀZ‘³gÏœ™+(þX¡¡Bšrb¬-&«-æxózÄ’E•LªÌæ·ËÑÉ+% GœÅåõ1Ìåôc)‰$ãÊS^¼yýn\ !ʳ1+Oß½W¬<Çð¯?NÇV”—oÞ¿¾|{òÊaNŒ´ àÁ„ó£ß/÷´$Õx¯e.$0lð½£D ^TŠG]nql)‰³¼€ìþ}üL‹)ìÞŽ(Îß0¦„9W¬FLq"­Hß—£‹ÑŸNLY¢áW¥¬Ä̽š™ëLK¢¹*”Ñ„r8]Î×wl±½YE­d6Cx “V«Ûc­8w„q·ü®‚Ha†ù·XUÈùpÁ‰ÒºãÁýìnÝÛeN‰q‰7éûUYKŒðª1â” +fošÛݶdˆuzTI)ËÓ&FÝ€ ‚il¡ 4Ïï +ÂîAV•ï(G0Kmöëy’‹fÌm™ý|,­½<²ÜÞ`<‹ãÉ:²šÅM|º¾î³t†Ãs–¹Àm”+i-ú§åÌîÁ¤ñ‘@y ÅÈ€ºœ0cZÞ/àúÎë±™a4MæYaÃæ:×V¡OTÒžÆ4­Äá-h*¤£êlÿ!*›ÅŠ«²éAÚ9Ç%"·m8;ïǼ& +…R!¾¬4OŒùˆUe`ý˜wDÁ½Öijúpþ^^D• ªªâ•DŠÑkÔºž\ØX‰ Žþ5=÷´ÍšëÞ«½4Víº)‘I"߀z9®8-ãÿõäx`ûm t€‡D—ž®£ÇÌoÕG.³È@ÙTG%€ÑBg¤ +¡= ‘NåräL‘) z0ù±àJbiMØ©'%±ÃAÊ>;åàaÍ´!îURc>ãÃImZOûÕb¾ÃÎÝÍ¢Ö8T_¤òïÌÅïnR$ –at‘­ùÿ“"a=æ÷‡¾V|DO ¹aTæôzºù<£Æƒ7pûÉŒ<4pAâüq8…CGr‹"¢“° ´œÅ˜Qú`ˈ¢N/¶ÒåUsÌÝY"÷x? «,ƒº *CŠäsB”Ôÿûþ^3&Ñ¿éŸÂ©Åzœ„BPthù.ˆ@×É1;ì EŽI̱š=ÖŒVÉ´ÊlãÚ¶³Ÿ~Ï[“ßL‡2DAUL¹ôÔ ü”Qåɳq¥¸ÂQ¸TÌð:·0zvÒA° Á&„¯ëÅtp — V·_`Ÿ¨¢x°hÒriùÏÙ +Oå ß÷nzee[ÀR—’ËP%ƒ.Ê2×~©ê%NÜ&®ûkü8;ÿ‚Sêâ—Aü0q·™M;é𑦬f«½°Þs@LoŸ§©és³¸Ÿ¡×ÊÔñ•áËt1_lƒ*ª—õr¹žøÃKËïè5ï•? íÃ#ÏÓk„ë6Õ¨Jð¬a‹k_{›Év±nâËÅ&¾˜¬W·ËÙv6}î¿kœ¬ËhàŸjÍYÝø¯·»eíCË×Í6íìµÏÈoÑ:exøÇè)¾\mÖ~/vÛ²F—u¹›õñiWmLÃB`ßø¶Þ†ðƒ•ßÃþ …ë°Õ÷uăfOêFZ¬*ëµSÞqÅöëå×Ò@ó®ÍŸÛÐaÅÈ‹uJyebFúnâg‚˜Ígw>]5®•~b½œì–¾ÇÞ.šy«GT¹²†ÈË]ª5þA̯pDÝÄäD+d™éäæ6ü2òuQ/Óýá2»Ò> µ@g¬ ß‘?IéUeX=¡…$Rºýr¡­¿J¥}jˆ’U|òÍSÝ×2>ú¡ îå9º¶‡Rv'“Ï[ –a¯BÅzè·j ðϦÅzL¶ÙPÝѦ B AN/56NÁÝP»ÛþèGó—ÿv¦¶endstream +endobj +1268 0 obj << +/Type /Page +/Contents 1269 0 R +/Resources 1267 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1262 0 R +>> endobj +1270 0 obj << +/D [1268 0 R /XYZ 63.034 602.788 null] +>> endobj +804 0 obj << +/D [1268 0 R /XYZ 219.037 472.067 null] +>> endobj +174 0 obj << +/D [1268 0 R /XYZ 63.034 281.359 null] +>> endobj +178 0 obj << +/D [1268 0 R /XYZ 63.034 252.709 null] +>> endobj +1267 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F48 601 0 R /F11 674 0 R /F14 1012 0 R /F10 1027 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R /F59 1176 0 R /F47 596 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1273 0 obj << +/Length 2067 +/Filter /FlateDecode +>> +stream +xÚ­YY“ÛD~÷¯0o2Mæ> BÕ’J Pa—¬_¸ŠÒzí]ƒ/l™@?žî9¤‘%;)–J%–4­žî¯¿>Fac +ØØ1â¸kʉ±v<[èøV¾±(QF‘2“ùr:zþÚŽqZŒ§‹S-ÓûŸ +I'¿L¿yþZÉVŒA4< ^âå×W7ÓWV¼›”BÈB’IiŒ)¾œ”¬¸º……7/ÃÊõ ܼzw5±²˜âê›kxðÝ-î0z5mL•B-ôEo„Ä0¸`ƒëF¾*Ju¹À© $β1È)PrŒ~ú…ŽïAî›%ÂÙñ{¸¦„97^˜•DKïW£ÛÑ÷­IÌ0"•†]AJ¸!€™1D +9VFÊ™Çïjõ°ÝËúq°–ÙÒ€ êõî*.!dÂ6 +?è€ýÍ°ýIW™)óäöp©ˆ0ªãAuw†çžjÀBD»I߯Òc$5ØB…bo6»cÝÓÄ ±N5šJ)eqµAF‰A@áÖŒ•–„jýa@8À$è*3e§åRnt³¹ÜL¸-¢'@«E8gÑ•j +—9(×Çz¡‰f¢‹ÊËí³jd:ÖóC% w:¾t×Ói•Iå‹øvžö˜$éíßúÚ!Yµí:—¿¾ëÎÛyØRî(i ãúËÄVÝÙTD~QîÍb ;Œàß}ès]3–( KX­·ñç¶=‹?DÇœýgªb–*ÓÃ5çk‚V`‡h<ûˆš@lÃ)u•™²P2s¸¶P¯]ÊÙD±b»û»_àÊ$€{ %ñŒ0Ë:Ôç„7‹íõã<\Ìæ#1ò­eœ¯–«ù}ØÏë#<ÙoÎàÇ)Ä>qõíÍ)‚‚IpÖJó$“®2SÖCP0•Á5z³^½í×B(6Êdà‘ˆž†j¬x=A>DÀÏKé ÓŦŸ°Ü +ÑL›¥IàDŸIã-…º¢&‡æ* öX…œ?­"G]e¦ÌƒÙ©C +šœnöCÛ~„‘„i%®¸ž”Ü·=pKßÒtD)ønŽ”‹¤‚†y½@+w–V\¢³j,qÎO£UÒUfÊú‰ L¶ûùvò-X51ºø¡ßS˜oeÝÔªÒÒÂT¢øÓª4pÙ—K,rpÆcÎM®”0>XÆ£LAÓ_{Z÷±ZH"?‹cŽZ¸ˆ£–¯ýê)0úÙžÿ™®I×%°>8Úu T³  ™iêáÅ´4Ž3•Ÿã.¤²¾* xŒjb5l% xTÇ!ùUŸ +ˆ ”C#3ÎÏ~éý§Ì¤IW™)ël9dzÇ^D¥¹3/ p²`©ÇN‘ `‚ÕEÕå†U±Ë¬›qÊ‹Õp;¯Ü¶+, u|°]„7+OáDZÓã tö4>–tõðÉÇ +G%8ÇGTFT )$¾e©{4`ºwJ r"dÕþP£kN+øË›V ´ð%r`êt8WÚ³Ct“jæÇ®?ñ¯l?0d‚©Ü]¡t;B¡ÝSŒØòÍŽ¿!BD5˜Eø»Û /þœÅi2êùà2‹8,7ug=¢Çy\_ï~ÅYË"¸ÇWü}ô·z~ýRÈü|ù®ùpjƒˆçÚHr˜öeúºˆëY¤Ë(ÐU$ÁW̓3áj??|>¸§|ªãk‰3ü²œëBérT“ìX´€EŸ¼8A£ë·“’ç‚ßQ »ÐDÚÙÿîy^4‘i=ŠF±âYf‘·ªcèÛ›_¯¿½úaØ\.Z]ŠS”èì¼nê¿ßì#›Ï…JÐþ¾Š“&͇]ÃzWÍ€ùpŽjÏñCz¢@'%´RœPg±õMñLênÕ~º>Éæ ‰éwå­Ò6b?Þ\߃9È{¡›tiã?¬Æ| eN+},ÍØÀÝБ5ýGÍÿÏ)­endstream +endobj +1272 0 obj << +/Type /Page +/Contents 1273 0 R +/Resources 1271 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1262 0 R +>> endobj +1274 0 obj << +/D [1272 0 R /XYZ 91.925 602.788 null] +>> endobj +805 0 obj << +/D [1272 0 R /XYZ 249.576 472.067 null] +>> endobj +1271 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F48 601 0 R /F11 674 0 R /F14 1012 0 R /F45 589 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1277 0 obj << +/Length 2356 +/Filter /FlateDecode +>> +stream +xÚÍYYoÉ~ׯ`Þ†‹v߇ƒM ¶W»‘äÄ +‚½° $Z&ÀC!Gkx}¾êîöp†²é!0¬9º¦ºê«êº(&ÿÄÄ*Æ•žX.™ó~r³:á“;¬¼9™¢Î$uAó—«“¯ž¬š\½?dsuûS¥™fÓÚ9W½;{s1­•RÕùTT§gÓZToqûÏ¿N½ª®Î./¦¿\}÷âµßs9sÚC„ÈLÁÉ««N,Í-ÖÍ£’·4ѵ›Á‚1…ìÆiæ¥MÛA8ÿHÈ*¤©ÎÖS%«f~7ßBgª‹ùݬÅbƒ?ëø|R ÏœMüþµQóa +‰8®ót³"îR0üÄ˸%‘ÿ}òÓ/|r ý¾;áLaí#î9!LV'’òÓòäÝÉß÷ú·¬ê=¯¨~!§šYïÚÝHØÅz*}Õ$·|žäÕv¾£Ûy"˜5‹Í`„PmÞ'êÙ:]3 Bëk¼®º™-o–ø„к;bMXFfñã]f¶Œ»m ˜ª²Ý hCÂ-~[Ì–p4­uuõ!I«”>®Lۉњ nžnbU¼à*ºíHhèšÎÂly·Ù&¿X¥7Idz³\¦7QÿÕýQe½šBÇukœ»ìo„z^#“ÄmÖéº`¡ŒbZªg£åõ +.¦…ì¡Ñù‰}#)Ë…m© Ìó0vÚm`+u<Æ%Á!¡†b2-Åç•ôê˜ 80Ah$±´u `8”ÆQäZF¥OÉòäºdù8tñ…v,pãÞÐj’Óºí~Vì¯Ü¸ü-¯º`–âc!ĉSZõ4 '>Œx¬•› õª½aÒ›Þ >ƒ¹›'阦ãöéQ7–<0 ~WŽHö7nyÕ³C‹J!™„¢-IéÆQ! +P ³ÌšÌÆ0шº2c’ÂïåC3Š²Ì +Ù寛UšÄæÁöF3\þèzÀÓÁ *¯~“¿.’ºàÌ›×æœ7pȯ¡Ô¯lÓñÐA1¡í3µ‚۱æD PQ*ÑauO6ú4ÔAyì×·QÁÓ3ã[›Íˆ…%î8Ä0€;p培ÉH¢4ÙóÁérÇO=’1¢Óì N=‡;yæUÌÒ©/Ä‘H]¡¡„òfjŽî? >î:  žH)[@'áEÏ»eá,§§Xìsl`£˜ÁÞíg‹åü6lç ¥†íú~’§@·9;@Ð „/m9óÖ= ÁÌ«.˜ ôðS¾–&Šõê|í,BN ËèYTdFöâ¥Ú£7pD GT¿¤˜@î渻†ÎBÝÙ¯%êtÞ¯0¨¬Å äéŠÝ‡-•ã€£+Áßàlª‰Öž!ŸˆâUÌFð÷Lßmcë÷§S(úÃs:fgœ¯gý_a· zÏŒ´¨B8 ¿âHø=‡ x¨†°Jƒø&ù!˜'f¿Ì«.˜EXû"\Â[îGôyÔÑ!H‡êÎä«w# ˜·õÁ)xhWéCOœds€¹ˆHëq×/wT?ØvlÎå“ÁFFm¦q{؉W]0;0iiH¸‹$Ü«im|õf¨(Ê_#Ë2,bÊô%¢&{q4Â’5¶v)ì­ôGBö>ü¿2‡já¹L±gvÜ™fÔï݈ßSÇ24ˆ- ’2£ÍùGŠ¶)׶"<ÚrÄ-–Ê$û´h›yÕ³a´¥C+|·aŠ¶4î™:{,àÚƒ’a¬xTˆõÂ<­QÃfewM… tÜ‘ŽmŒoå2MKB’¿^ÜECå"F3ó2÷+±»§œ™º{=VÔyÉBb±çÿîÙ×c +PÚt¶¯@îäzsΙCéWpà%aKxÁ•{tl¨ŒaÊéÑÞÒ¡ÿtpÍ‚ËÍqh¤9žPwl¢cHZÙñxJ?Üòª f™š*Êñ¥Ð@‘v¾KxWh¬¥‚ËsŸÎ3‚¯nÚ¸ø²›óà~?#q²CŒòó‚¢D16¡¨B¸†^Ø~M!y»K• +W]-òµ­¼÷Xi3NíÝB«ä†:¬v…ÝFë#Û >Û-yåUYÊÛ/éÃl—´\oèj*ÂiÅ»M ·1W-š]ZïU&´Þ¾ ÅY9¹‰«‡µñ.[€Úu«{~±Zå}Á`ÖÌ—Ÿhø 5­Eö@#´ý¸ØʼnhH¶á‘Q˜Å}ÊÎô>L••ë= uJwia¶ž&Õˆ¨ÙtóÛŽAÖ÷yœKˆ,›¼ï~˜Ýk‘i.¢ì—ÚÍ:^]lšyÂB …„.ú£[cFs¿0FLŒý¨…E×2}˜Qƒxœ†nÇq²)=ö«M.št]M‘²Úâ'¿¼Ž‰|ž>½Õìf·hÝt¯¯Û>5o™Ãô›Áz‡±›5!!lõm+à®É“ôø…ÚÎ3HU…p=Œ:9âÄ=æ—ÍjÑ4mC _X·wû™pßEÓXl6ÑÊm+ÝJÜVñíïùÐ&‰Õ.-¤ð“ÔÏa裫¢_7Þ#”jO’x|k–óLj÷¤ˆKZµ±„2¥±Õõú0¤4nˆž&zÍ$EgT.‘Q]pJ¿[•¡šv¿ÛøôEKÒç©åõ¸XJzÑ‹rÌÍ¡dÆǤAŸóM½ëLZ´i_¿ß7çì–„¶åÂF¥´8|3ä·Îbœ©^|…FDòVº|“.õ,]¿z1ú±Ï/ÖM¢[Ýÿ¡{*xñÜ­å f_w¤yɶK×ÝÌép£}0ìuDÿ*»©gŽ<%u&è1’‡ÑÊ,q¼CôüãØžR´¤ï÷úÐÿn Œ È MÓ:¢VèNT)>þŽeþæüí¯—ßŸþÐê{ ™DQ­åcªeŠ¾À’5gâ„‚Ó.{ƒTÃ}©ìz‘»‘m3AW=Ùv÷û|»¡‡ë‚¬¾W\h´(ÞRôE0ˆ@’#â×Jù´°N4HïýÞdß^¾Û øçníâÕ›tÿ²{E¤ã®bŸ L×9åÞ„ÙWÆwöŸ9wG~€ (æåèïoJ+æ=‹ÿL[:?endstream +endobj +1276 0 obj << +/Type /Page +/Contents 1277 0 R +/Resources 1275 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1262 0 R +>> endobj +1278 0 obj << +/D [1276 0 R /XYZ 63.034 602.788 null] +>> endobj +182 0 obj << +/D [1276 0 R /XYZ 63.034 584.788 null] +>> endobj +806 0 obj << +/D [1276 0 R /XYZ 220.435 369.266 null] +>> endobj +1275 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F47 596 0 R /F48 601 0 R /F11 674 0 R /F14 1012 0 R /F45 589 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1281 0 obj << +/Length 2797 +/Filter /FlateDecode +>> +stream +xÚ­ZYsܸ~ׯ˜¼¤8[!Œ SÞ”Ö±6Þ¬ô¯ËEÍPÒÄshç°ãýõéF$8¤dmär•ÈšîF_ÿĤ¬’fb¹dÎûÉluÂ'×0ó㉈e$)3š.NžœùIÅ*«&WÇ\.æï +-§ï/~zrftG&œbx xþÓ·/¦¢øeZ*¥ ͦ¥s®øaZŠâô&^>§™7oáÇ‹_N§^8ûò ¼>ÇN^\´¢je˜Uö^mÍ@í&B3¥m¦qšyiI!kX]HSœ¯àG½„?KÑ™â9¼nÖ»=¯§Jø¶# gàg ræ“R*æ…Θâ‘87øå~Ö×Ä;.VÒÅó Níö¸Œ,öql3`á™òUXáͲkÐjk` ª¢†‡äÅêöØ|BKÐ_MŒ’ÌJ…–ùíäÝ{>™ƒ:áLU~òÞ9U5YHVÁ*ôkyr~ò¯Î̉W™1;ö¡ SJ¶ë¡¸‹õTz0^t5•®8C–" ^NK hH‰]“Íì74܇azYs~šÒw¸g¢ø¬p ÝIù45i…à ¿»‰¬wôôØlie ®«5/ÎÐCà Lâ>Þ4AôM¶`š;0NôÐwVÁŽ<}CBã{ld“<3 +\Srf­ä&¯2c6Ø$#˜‘º]…˜êzƒ¦^ìoV4²ˆÊ´;×\áë’ë’¢Œ{&\5®Þ²Êi³JäÇ„´OâÌñu›S1ÏÅVñŸ^à¢2ĨQ<|oüDWÓB£œæv ¸Ï¾ÐŽU¤P&ÀSEë‰ >:&!çu$¿rÍGrªF>ça*›íÑjàÄ|ÈGZ&;u…°²øDf2‡Ã âãŠLª¾jŽ§àot¼ÆÔ|¨º‚Ü›Ïõ>VÒ5¸ITJ7Q‚t°YPˆ +a'ç¼X\X˜=lËLoËÄØ–É÷C‰xSÞqÀØe¼²=—âß^N·˜ÏÀ) áwæ*Liù¸\uDCÞ-±0j1Ú¬ÀG œ¨T°®áb4™I¢@éÏ0G_¶ ¥dÍìÓXn¢àd„jz$ )YÊ[¶äÿ]x¯ûäWÂ2.zò'xy,™ôLj™K60˜„Ò§†«`Gïkg•‡aõ(:Ü2ÉNYŒ;ñJ1^¨íh'å*èhÚσæ"«2ã5×c%p=q̱!÷•©]Ü P×Tá±àm¡ýXÑ !÷}"¡ÇxO-Àó? ï½>C¼ +ç>#:M¦/µ +QŠ‰`&õnºçðº@Hv½lèç-’f+\¶öx‘*:gÕ)*qª#‘åÆ(#1¢C#.ÃIK2B—±é„¬qí¿Ž-.Eü¦.¿Ÿß¾ãïé£gQfzü™¯Þ~xuzþó8Ùñ9ìaìá‰O¡·ÀŸž‘8¥ú=⯧ôàã«©¯˜ìzzJ€JØD9&qùg¨T V_Û"A!ÛÑëêpAÝD +Œ„ÇA·Ä«Ì˜ ûh` Ú%jCéÂ3j´*™ÅEߤØ@XoqÔB=l¢V£C:ÍŒôßD³Äë>Í@èJ\O³` ˜¡æ àÛX’ãx«G(¸‡¯±Ö‚«À~Æ9)2SlnO6;!ÂhPe¯·gÂÞçµ~…‚j¢—Ç™ÎÀ»=M‘@×èS ,®³º­n0» »CÕûÅÉ@nËmñz³L#wÕ¯¾Žc›+ªé±n>ÓølCWÝš>º¢èÎ _½x2öWz ½Ûãà3q*;VCô M³ƒBI‚DG†§jz¿üTÍ:ºÂý PÚéHÒÌa—Ž„ +O:P›áEÇG@alÛŒ4£›ƒð1p$fíŽf×Í–ÆCØÐÞ‰¯Ð©¹õXñxGiNÅ/óÈó Ælä,”¾ohVy:U!dkɇàÙaX[\…>kEè5žcÞ5õú<@!Ì +Ú±#§q»¼–â +sRÄÔ´Ax$ EÆ!œÜחˈÎ18³>Aȱµ¬N†]ìiÝ!ä@ÀÀ~Ö1»Å¢ëD_åšd» E Þ~¡/N_ÿ=å ÏüQžøŒíÛpG$T”$Û+¬{U1Œ7¥ ÏAÀYÏ”y\ሬʎWˆ¸Þá—"G‹$™d§çPW}ñóØ‘¶×éŒçY,ŠC·À3wÝä{•Ÿ¥x‰ža¢£r>²¥¾=B±HMcŒmݪ£¡`{qŒãVc-8Ã_kºuüBÄË0¿ ppÝçö­ø»ñT-;/í_`¶Ô‘»Å½ e¼½sX¢¶—õ&h±É±ÂÛ–®3£ö³ÔþYê¸Ã3°Ý=G®[#Á|¡ÁˆÎA):ŽÀOñÆú°n-·WëQ”TVÃm82^~ÆÜY‡xŽE4j•a•n?·¬]Ͻ¥^î6è¾Ù-ö º1¦DEâ8 ¾Y§Â,ƒL«Î6›m(ÕWw±‚ìÒ©CT9Ñb©¥6¤ú,Tà0lâE:0À‘È’|#pZG?ŠÐhC/€Br‹ ½§ˆ'ATu¨å÷X{p¥ ,xdëc[ ÏõfO`Öÿo3‡CU&úT¸[„ÿ΀‹l0*¶³l‰°!ud å.MµæÑÏÿ"r½Ù„ù—Ì•0zǬð|@à¯lòÖàóendstream +endobj +1280 0 obj << +/Type /Page +/Contents 1281 0 R +/Resources 1279 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1262 0 R +>> endobj +1282 0 obj << +/D [1280 0 R /XYZ 91.925 602.788 null] +>> endobj +186 0 obj << +/D [1280 0 R /XYZ 91.925 584.788 null] +>> endobj +190 0 obj << +/D [1280 0 R /XYZ 91.925 564.96 null] +>> endobj +807 0 obj << +/D [1280 0 R /XYZ 250.683 395.457 null] +>> endobj +1279 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F47 596 0 R /F48 601 0 R /F11 674 0 R /F45 589 0 R /F7 586 0 R /F14 1012 0 R /F1 1058 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R /F59 1176 0 R /F10 1027 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1285 0 obj << +/Length 2864 +/Filter /FlateDecode +>> +stream +xÚ­ÙnÜFò]_1Ø'N²l÷}د/81ÒÓÆA@Íe"s(3”eçëSÕÕÍcÈ‘…•`ÀCv«ë¾ZbÆ៘YŸÒ3Ë%sÞÏ»+>ÛÀήD‚(HÙƒù÷ÍÕ«·FÏ VÍnÖçhn–¿š6/sÅõÏsQ¼~ÿ~^*¥‹7~¹†÷›¹WÅë_n®ç¿Ýüôê­ïp)¥˜Óh\ýxÓ¤¹…}ó(ÍfD´Ñlœf^ÚxXSý1—¾XÍKmyÑ|:«†^êý\†¢9Ð[µXÌKQîbŸ4À«—ªø°ßÂÒׄàÏõçºÂµmZ<íªí–‡ý©©èûSZ‚×R›PÜÎËŽ’Ó +Okhçþ´ˆb“‰¬áå„BÖK!X0&2³ŽÄ-šú€àŒä¬Ý,ƒ¬^zæ¹#I#”Áÿ$œ&¤)®W ¼6xÀŽSÎï«ãfEo¸~B Z!}‰˜‘(Ïœñ¨v¢t~€ÃÏQàÇÅa‡,®h'J>>‡eWïê¦JŒœÒÇësP_Dwçö"¥ƒ¢…aÊ(4…?¯~ýÏ–`7?]q¦‚Ÿ=À3g"„ÙîJ²àCzÛ^]_ý·³«Œ«ì!;·+©8óBµç!Û­‘Ìh›Ã±Ž´ï2™‰J +Ÿ|2®ÇPR3ÇÅ$ç¤)ÇŒ/CZÂõ(iš3#”Õä?(<¢E¹¢Ñ~Jr­É5p—ioR/Év©\X+[¼\Šƒš¢‹/VdT"º¨â¡¨hû£P¿:ì7ÿ •eÕ¤½Iúz‡ þˆ-}}÷]3³_ÒÃCÃDZÝ> Žj¾’Õã×1¢Åéóºéã÷™:%K„ºEçi&‚C +gÕfudçŠMÁQƒÔ$×S1ÖZ¦´‚ás@ *pϬ—O0.eOšˆôî!¾; qËN™ˆQÊÌ4œ¨…¶×hQ`{_hÇðHùfì~À?ó*´¿É‚Š`Óñ#á*{È"}z$÷L:;àà´jÆqM1á_ˆ®„ëqº¤eVé;R’âÂP +Ôm’LÙXæe€G7tÇwû»û1&Œ¸Á¶˜J­uñzµ„šT–FüL î.Ÿì®²‡lìy`¹ö¼~DŠœ@Þë„b˜”"±R8õÌx—wcTÑVT5Eà=²ÚD>ŽO ¨— ßí„ +„Gc”|¸o¦” @óÒJø9K£“ÁK9ùSø\ýy_žK8²’ã92 õÖ» L‡Ðç«o9DhÌúåN‡îbÀ‘œIAůH2ú_R(nRL>¸'‰é#7L9D-³ ö£SS<;Ü:ªaGþÄ[ûŠ¿ŽV—YQ±0–Rž"&|Ú‚ÔÎ|Zè¾1f65ŸÀŠºŒË–ö{.F,Rz%a‰isŽ ã/Û‹„P&ÕLÈìü™ö’p•=dc{Q QçÛ#YXmår* H£Gö"øe@ƒ‘“TÒ“ü†žî§ô¤èë)V·ˆúR¼ýׄÉI“Ý6Ñáf’î´ÉQPÇ©£ª F¸t’ê`Áô¸±î³íðÄ‚‘Ú¡õk}#‹lÈ5FÞѳñã ‘îù)ßbgº$K¶ç»aTaƒ7?ÍezTC’´ˆ¢¼Ž |Ê)$ È“=ë çôGPÄèÞ1ßOdYxC³êçX¨£E8—‰þ–L~'¸G«€¶KË ½qBxzXéb–{àÓ:›Ê÷ `)‹¤ÕÍ» TŠÈo¶„‘h1Ï}Y¬NtHŒ¦÷Ô·Ä#†×zS7iÿB”Ow-oaÊ! ¥!´ŠçE©„ªìpƒ”7Œ·§EÁJ¥B¾vó4nF*P¥÷gn7U¢( u8è³JÈSJ:ìo™ŸìÓJae¬ÅK%°ž5“5L‚É HúÛzƒVs\‘ò4s?¤ê;6Ù8íù”²é„– AS zgþÿuxÂõÒAªwC.Ì,$Æ’›—!-áz”´`àS= ­×" Æ)Ü1ÞR§D«‰q+PŸvq`«„fRûÉ^úú©W@ÞMMrP£%Õë¦Ú,¡óV´ß?§÷̸ʲ½Â(&Ãà‰žX@k*Å Ñ•p=N—ÌB~ìÓ•{Ⲻö­A@ÚÉuÌ ý”Ôgs+\¹£ùïq%éq‡!SšbUo>åö€âm‹'¤'ÚÁñhDL?§zW¦‚ *3ïr<§¤—z/¨€Šm·;|åÅçÕ1íÄ10­Òj”|¢•ºY«8)>$˜uŽéå¶N4D„,±Ç—FÒ §Ã=ò±H“`ü°Ê§W˜<–˜Ip9ÎáÏÓßñ|kl²8ÿ³`@¹–×'Te×¹Ó{H¨Pfˆ¾ÏÇA£µ¼¸nµ‡Âæ:6ð`p¸¥¥cMÜÔwù òØ[s[,¢ÔŽ¹yñ¢`Ž”ékZºƒIB7ë/-«=Áìª?Ú ÄBõÞFÕx™d2'쿆ýÚúÓ|e€þCšXJcÒ4òD;püª4ø†…m[<àÛ©Þìë\èlÕ¼ MWÄE¼¦ãÇÂDøâ]Â7›Õ½a_?mï €¦};|¡‘,î·¦‹/¢s96¸N!fdÇ l²cxèÎ:V <Ú4W4ò‰¶Z¶ê´ížëÁiS%’e^€õAªüy¶žq•=d£ •?Nc3ÈØÚ-nÖ]Ï&°Ð'´%Óý©cz¢¶22GÏ%ª}S7$’Åá¾Kª´M,ÞCo ŽÞQ$[W»döqŽ†5ª·4˜vÐ6hòó¢¡Í´ð™Sb2 ÄÜ\`TÅ|POãTµ AÇ)’x~õ˜@Ü«Ó]r9Á"‰ç3z(š@£= Q¬Q¦¡ »É/èÆ [ÛØvh¥Pï7Ò+ôñõ!]ªR•¿zs±„4í\¸Ãóž-ÑHŸkÑ„«ì!×l‚è3Èࢠ…ñ€q9ê`»$Âãeqw£Iòñ¹±P*LªZÚ¬MV‘û¥4V½A­Ý¬Ì¬MøÖ/|ió.~9¤9n·7T° 7öÕ2V-Pã±­Ò’$ü8Ç&/šTŽÕ:xò詯xx­’áss¬w»6–þžšöŠ-}Fy¿ßÏ[pEKmƒ¥ÞMxðQP­Ž´¹XIÛ”¬2GÝW½›¡Ó¥fFHŒðë!¾™ð,ë˸ʲQ7†5Z{Z,gÚ2@¶¶A¢™¾Á8ãÜ Qœp=Jq°ÌÙÉ‹mµËzMe0D¾°tû  ¢Ç«0˜U6µœÈbŠ›à-4–*GClC!¡ÜîϹžih4äˆ']E;{a0•=Lô/}‚ %‡ýö´éšS€Åa_„¦Œëq²@PÒ‹YÚ`42aäËЖp=N›·ë £w ÍbµtF ÒéƒÎOÓUï¥æ2–=X:Þwǧ®8ƒÄŸ°m%Ç!$„´ê@`Æ™âÕwóÒ@×…f|¨èGÉò¶NKñoxèñ»W“Ø|ÂVïÜîîwÀø{û§ªwÝ{:µú'ýBYƒ¡Â3†x\Ù0ÑâÓm;}=?5$' +ðJCçÚc}áÆÊ&E½î¹”•VñÏxxóoP¶™zendstream +endobj +1284 0 obj << +/Type /Page +/Contents 1285 0 R +/Resources 1283 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1287 0 R +>> endobj +1286 0 obj << +/D [1284 0 R /XYZ 63.034 602.788 null] +>> endobj +194 0 obj << +/D [1284 0 R /XYZ 63.034 548.185 null] +>> endobj +808 0 obj << +/D [1284 0 R /XYZ 214.048 328.14 null] +>> endobj +1283 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F47 596 0 R /F48 601 0 R /F11 674 0 R /F45 589 0 R /F14 1012 0 R /F7 586 0 R /F13 1055 0 R /F10 1027 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1290 0 obj << +/Length 1896 +/Filter /FlateDecode +>> +stream +xÚÅkÛÆñ»~…ú% âÞ_°cÀ¾Ú©$vlAáO¢$¢”¨ˆTïôÇw^+Q}¾6F‹Ãqwgggç=³Òczœë(7ñ8Q&J³l<[Ôx ;ß´`„‚öpžMG_dã<Ê;ž.ΩLçïç&ï§ß?|»#šNm”@ÆÕßž¾ž>ŸèàÍ$´Ö.š„išÏ&¡ž¾…—W¼óê5,ž¿y:É\0ÅÝ—¯ðÓ[¼aô|z`ÕÙ8Jlr§4çBœ8gÀhÒ“'N]”™„¸UFMB“˜8¨6Ìn¿™„1Œ»²}„¼À ¡VQçrDB_o?üQî¦ñ›ŠU=LÉBPzø5iËŽ'‹f¿ãÙuÕµ<+d¯à¡CEVë’W_?¼ – ÍîÈæ-O¿åA=âQ yÈ<ôÁJ|!?ªXÇ +ìà}a!=„㔣\"I{"¯ª…Ö­D˜Í~}] +Ã{sûi­|BðT®©G¹ñL}"=Øp½¯?˜9.¶¢x…“‘¬JJ å_ää¯?¼úáé߇µcbéü.íx f;¶³IèRòÈn¿Û|Æ;óË{]©ÔʵËká„UCä­>³Ô«7€¤”³pçàF¹w#X¯Q`ô¤”= H“ÛÁˆ©cÂ~ªÐWbóàW¤QÕB…¶yº.âG>Iù'ìéåšqškÄù'Rhö-cí!B"ÇN5VBÔ)ÑBÉÕx5kö$L‡ìÓ6û;†Üá´"U7‚¾„þ ¶nxUÞRh–圌¹¬?2¼†E±[Ê…þ*ŒkE]xrVìQF¼ÕÆ|’š/¥Â# +SŽÜÈ*‹nT2„z‹–Çd”n¡8\¿CªÀ q_ ·µì4ŸžVØ#vþÄ0 Ä0ð(¨ÌÜÜÞiß é mˆ“Ð)ŒRÏP*í/Ðg73ŒF¯¥ª®9ZtG:ñ©*9»&†µy;+[ O|¬Ô>\ +ôœj³D°%7’Ú‰X7äø3Œ–#üƒÌSná]0Œ.¼bÇlP„‰}{ˆÓóA쨑äät ™Ø:ªIŠŠ¤T-x†éºl­¡º]¡«¯á³-vUÛ ²Ú#ñE"`âÈ9Û£€-d~¡ƒg¬ôÊþR[]ŠàížÙ‘²Š”fÞ®šƒ½ážXbÞͱJá@úAEÕîn1± |{È¡³ª¥Ì‹Pð øv_R¸ÎA—V¡‘ŠÖøZ#óˆuS¡9ãÓ€Ø3.Ï m ¬›H­¨Ã ^6$G·ZKcx0alÜ¡=$Š *‹å Ö‘ó|i^ÎøIÌmÙ`Röé.^L2ðÛΉØ i/˜Ô|ŠKiä%£õÑ€Pî3#ÕòÑ…y]äL*»»hç2N×0P7MUz'¹Ì“K<9‰$çò~Làu°8®{2¯Ãj(uÂ¥hàjÇ`vˆ¦­¨z“Ÿ*Ó,ƒ6 K2¨„8×~ž‹æØÂXGñYt0­MÌAðÞO'&2ãÛÆߔҲc²JA+ÞNÇI”§Ž~Ò <%š/´’(K 98¢<qÌ%7²ÅÁn_‚sonìËMz77¦Ç¾77îÜdR7}nÔ ºÙn¨L'zÈq48Žu_?ï8_R9÷wœäÀÍÿßqìg'ís#‰Ž²4 МŧýÎIÁ¥ž[á>›%Öœ÷’*.éi‚#ø\©ˆŠ ·]±ë|ñFS“%‡Tm ¡Rƒ´\•­[ËMÕa9› !ŸŽ©êÉ›ªÎUù-7#kò¡Ÿ„­³QªqÕÛü7Džr¹endstream +endobj +1289 0 obj << +/Type /Page +/Contents 1290 0 R +/Resources 1288 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1287 0 R +>> endobj +1291 0 obj << +/D [1289 0 R /XYZ 91.925 602.788 null] +>> endobj +198 0 obj << +/D [1289 0 R /XYZ 91.925 230.683 null] +>> endobj +202 0 obj << +/D [1289 0 R /XYZ 91.925 200.402 null] +>> endobj +1288 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R /F48 601 0 R /F47 596 0 R /F11 674 0 R /F14 1012 0 R /F7 586 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1294 0 obj << +/Length 2902 +/Filter /FlateDecode +>> +stream +xÚÍkoÛFò»…pŸ(à¸å¾ÈÝ w@4EŠëå’ø>5ý [²LT‰Š‘ûõ7]>DR6jÝ!0`‘û˜÷Î GÎ2ø“³\‹L›Yž)Q87»Ý^e³5Ìü|%Ê4,I;k~¼¾úî53/|®g×w§`®—¿%FäbžE‘¼~÷ë¿æÎ$?|xûñÝ\&ÿü8ÿýú—ïÞ¸v¿ÖZÆÁ´Õâ‚«Ÿ®$L–ü=‹g\3@Ô ð´…NåtØÛ»yª¥L»¹òÉW~Ù¬ËPÝ­ù} Ï庬ù­¢-YRíVƒŠøu˜– sñ_ÅÛ‡SãÓ^ +gó™ÕØ‘B»ú|õÛïÙl FøËU&´w³Gx΄ô~¶½q;Þ6W¯Þ·Fa¥`§Fª=X'r\‚ìFì×€HøÏfüensdι±Y!•¾H›ª‘#x#£Uò¶Æ)Tâ<<±¬+’—š€›I hˆ˜…Sd*<Ûg Š¢ˆŽõ!œõ•¢‘:XðÏ)Ù-[/¡À2E0ÇÃ*1eÚ‚jnàT6Wx"7b€Î›CµÁ5j±ñ§æT…uä`ß~õùX՞'Ë;~g“€dDØHZÏ´Ç»®Âð« +Êàbh˜,®ÝmÌ”·˜;Íìµ ÚÅⶱš²^Ô+žyD,*¤æ±Z‡á²&®›(Qð$+â±’ ÁC€ßÆV|>Æ=„Ó[WðFHqع›ö‡zÁj|`g¹Àg”¸_-Å©†[ËäR€†Œ]~®<•ƒE¨¬±·ät) åÔLåƒu>iÊRy¡”7æL¨†¾)H´/HüVŸ’E&²¢€;Ü8âZô +¦ãd‘ ðX3c•°šúšlk«Où¦€Æ³Ô?cvGqL®z8þºZìJˆ#Nqó^èL]7”RRJqÛ7(U ëÇ…êð>pÀ€T°+‡hñ”Yh>ð3®z’@-Œ.ÆÉ‹°Ò°¡3_½ì¡õóõ¤~5ô]B½úÌS®.R&8Øë{°‡)u»ªßº¶)#”Î'Ô Rƒ  ¸í”žT7%2ð¢qÕËÔa¥`#êfÁ]ØZ?`ßOj\Kã%Tî„cc:w‚Ùçãb´ïè)}»¢=…sßžÂÁ¼szBáà¾}“V˜ÜOê›b4«^¦o +íÑ·BYwÑúÇ—i×Òx …;áؘÂuQã°-DM×!žÒ¸K`zQ'á†WŠb3gFKÒJ¡‹T; ¾[t5)¬‰K1oÊõ‘¢O6EH›^AâaLòšÂÖmHU½?¬8o‡x†^W”wR²|d~€º«ï 5ÀrF¡!ÝK‘z48…4ÃÍltRƒºJ7Ks%\nž +\!V ψTn…„q\"à”xà·5Âd£Y¨Ì`†æ}³çûa³¦<2‹-×°ºVe ]ÍL¨a ÓhY‰Ò6_båVÚ60«·#xù‚"Ћà`Å #0íúœÝ.Öƒ¢ Ê¨ ÀüC~ƒ×Â#:9ÖÛÝñ‚Óó-(²‘kÎCekÈ—1÷@C³Â½¨êa¥`}SF6çu«èûˆ$ÐÇvƒàM‹ÉNXWÄYL“–£ tAÜ @ÀÕ aæþƒYëþ¿;Öc€°3—º/€Êl N½{5.nÂÜÃqƒeŽp|Êl6B–F«ŸÅš:(;àaCÇ`µ!Ô7¹²Ú?Á:p.ùYÆEmå £,`{1wÖ‚›rg +,ÔI¾>dÄÛ +•H>²ð^ÄþiÜe.ù;ÿܼ:VËÀCeöÄâ +×µ»ò¤ºéµ •%}Ëiü0E9:Á1¶hÉz†óÊìÄ=a¥`ì¼lדXˆOò93ì³;¬VBQŒÜ`Ìرõ2)|ÿ-IÁYÈæý…¤Ð›–BXÃlؾ$àŽ0#‚À*@ßué ˆ»*$ÒKè öÕvÄ xá´œ’/ï|$ÓD¿­[Ȳ®üÀ dðKÁ?eìð–Tu%¼…>¥ ì*Çt <ˆ;qŠ2›AdV¢F¨5SÏÐvCà^ dnVD0&(¼ÖsèSíŠÿzˆæ! U9°Ê¼P=¬´l¨ž“~ÙxÎIÈ¡nÂ…V÷óÄ‘¬yR²¼âûgIÖ<)Yó’,üz¯/$ÙØ´dÚ'Oã»»Ò…Ü[úžÝšày><‹'6çÖOòDàÚ +™´zÜ‹xa¥`žÈKEs ÕˆÞùa)Héóc,(R[ý² ;‰UÞsIw.ŒCyg'I=žtóš¸$$Ý”@7I·I7e‡%}#ܲ·fªd!øìœù§³ŠëªÐT+îp>& +( Ú °A-À:‹š·"S®‡ZHû5ð}`iH#5̯ÎÕ š.¬©‰ªÉ+d^˜­é̆ŒŸ:8ë'ã$Ùz9–1HtÜÿ¢D:ÀJ;À† ¾Åh2ï!<–àC°$sw¼¬óxNä0×Å $+†i¹£²»„±ÙÄdÉaIï×ø)‡>ImFÂ/ðMæL’—Û^Žçãí r¼»š‡&’;çÏÊŠÿÂðÊ-âã·«ð­—_cÏ +]*ÇN¥~Ð4ú Ú=¸zgMÓ­bã·mmuü¤Ýém¹­yy]dƨVÅtÑ€#žý+‚ñnD!œ¨ŒpÎôueZ$EŠ3¤Ø0Û‘,&â‹‘ð$GÈjR&àä›sË€ëc¹ -?¯×Ç=µU ËÊB÷¿ÔoU§„Qž.í_fCTÚ50!Ìk@ã’‰RI¸0USäYb×IÎ…“rKä/ö8V…Á§¶’:ŽP_Œæ2SÅxmD‡4\÷ù¤”½(lìäûÛÈvEe®)I‚Ùv(/[)H¤²ÔX‰«±Ù@•wŠ1Ø‘hsîBCf`Ú¾ÓφcÝÆ6WìÌÔI+Ç*šèOv}£Eð6tÐโãÿß´–ºçIì@1€Õ²\—¡¶…›>;ìêÂuØ@ƒënHnc%L‰Õñ8%Ÿf0úïçÕS'óû:Cë`Õ Ž +ø5à~9BšÜ`&¬í^ìRC§T¤®›Ø7£œçnIŽ\ĵmŽ4Wr‰—ú}–¼¬a?Ncû–p;•;jÇùÊ#ÿ!Æï+~‹’á]¡=“ $üõó­ö¬=Ø° ¹1f&Hif‚àO+?þEr>Œê»“ÿ@”ìÎendstream +endobj +1293 0 obj << +/Type /Page +/Contents 1294 0 R +/Resources 1292 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1287 0 R +>> endobj +1295 0 obj << +/D [1293 0 R /XYZ 63.034 602.788 null] +>> endobj +809 0 obj << +/D [1293 0 R /XYZ 202.718 395.599 null] +>> endobj +810 0 obj << +/D [1293 0 R /XYZ 207.849 218.168 null] +>> endobj +1292 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F48 601 0 R /F11 674 0 R /F45 589 0 R /F14 1012 0 R /F10 1027 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1298 0 obj << +/Length 1395 +/Filter /FlateDecode +>> +stream +xÚµXmoÓHþž_é>œ]ðÖûî® –GKó rÞ#%vIœCǯ¿™Ýqb'nÊIEº;;;ó̳óâÂû)üá}Ç™ºoRÁl–õG«^ÚŸÁÉ›'„T’†Î«Aïü*ë;æŒì¦‡VãO‘2ñ—Á»ó+­öjÜJf@z×¾¼\Æ<ú'RªH±8±ÖF¯â„G/oáàíëpòá6—_Æ™Šxúöþ¾E½ËÁª’šiNFSëüD8Ú*– ãÁ–Ó8QBGcp¼˜-*ø±A‰‰ª9¬ó"ûÍ$ä£j‹GKº¹˜áݪ¾›ùd…Ñl&øïÿÄ"‹ün.­ba£mpÆáU4Œ“ †#<(Wwèií¯ŽƒÖ¦Ê×Õ¢ù,hæU #pŒ$bÕÚǸœäãú‚”/`W1¯ËsJÁÁ¼!^xõ/"ÉÜä.ì¼ýe$péC’E€·HnÂDáz4oÀ³FXj^˜OcÂí¢ªô‘'»Ð÷\yvQKExa]®ÂÆûö¬Í'ëPœï3 2JpI?CÂkƒÏ1©7 +F8¦ 'õÏiš•FªfÌÙŒx€PvøåŽiQû>Ûn:½eLÙ‡œ¹¶³óeÖ£rëŸÃóéSâæ{«’~Îk~UôÃçȺü½šÓdŠa¦fÑÛ)ño3¢ýù´ +†üSK.¡Ð–¸PþÍQàÓµÙMض %TQÞZ.J_›TWã§(µQQ’E,åÏ)—!‚I1"K ò1E.€º·ƒ’/gð>Øæ«Ž\Oª-›@¾j°/S¢~Ÿ÷ׇÍ+Í,¼Ÿ†lÕZ`_ûÖûô%í¡ ¾ë¥Lº¬ÿÖ)ãÎõW=É”´´[ön{7û&YÛJÆ|“lâáÊ1ž©C„uys”4Ü0.ëžÏh(XÌ%cð<±‚¹æ Ç+Ü«]áƒ-'¤löÊÜèº žA–h ‹#*„eÂÁHL£ï¡‚l% cžŠ,™²µ¢[Ř=G¬§Ùã #[§‘) ßʲQ74ÃY<²`ê40c˜Ìt›²ë”¡eÆ÷_• Kc¬wRMºÁu¶wMã½VAÏ)7»jL¡I-Ô·¶::?‹Ó&­³¸Yå³E±¨¶cÚcßÑ8Ú¿—A°(°åàêsªÓm±YÌŠÉÖi˜æâTñ‘FÛ1ôreÅÏö!%Ž=+ËR+O)´ ÉNóê4 /~ º›†{z2Eƒ}¤f¦êR:àò¦;€‡>f‡_pôÉå4“Âuý¿Œ„YËq×8ü?P=endstream +endobj +1297 0 obj << +/Type /Page +/Contents 1298 0 R +/Resources 1296 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1287 0 R +>> endobj +1299 0 obj << +/D [1297 0 R /XYZ 91.925 602.788 null] +>> endobj +1296 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F11 674 0 R /F14 1012 0 R /F48 601 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1302 0 obj << +/Length 2746 +/Filter /FlateDecode +>> +stream +xÚÍZmoÜ6þî_±µE–á;©àî€6h‚MÓk pmqwe[ž¸+m|ý÷7Ã!µÔJëøj.0`Iäp8|83ά˜qø3«Wzf¹dÎûÙrsÁg7ÐóöBDŠE$Yd4ß\^¼|cô¬d¥U³ËëS6—«Ÿ Í,›/œsÅëïœ{]|ýÓ»æ¢øáãü×Ëï^¾ñÇñJ)æ´‡ ÃP‡ß^öBhn¡ß<(g¢ šÍã+Ÿ§™—6Lvy[ÏÊ»¢›K_ÜÏ¥+vØ`‹æš:Ú®êêÍ|!Šz‹4]Kí»-Ñ­›-¬ªF‚Ø#5=«íŠH¤§†å.ð¹újŸæ½¥ÑÊûø—ÅaƒB\Íð¿Þǹ®‰Ñª¹i€œDð¾o¬ÙBhVjØ&!XiLXZÏÙØ~u>¬ÂPäе°QFp„¢ ËD +s4ÈðrG²!íþXìö›zE](¶/jjsWkøZSX2¿¼V(ÈMV„´û£ÌC´Va<®6¯m¶K Ö èðéºZjª¨å®ƒ„…¾?¨q‰ëº­«;úìhå‘G·£g¾Nz½Ãÿ›È7}•˜4 †A€r•å©Öë8m[á¼I¢~ìnKR‹ þªÞWWë€C¾ä¸©Í¦†ýÒJ’êÊörƒ­ƒ ›8oÕ5¨ ²4€.M?›–FUëvGoÛ]G]Ÿæa»š}Þ7A…v‡ØÝÝîÚ8e‡ëHú„ c+adæBío¸”«W)†äá?Ìß˱wà¬et›€ À©„NF‚¦hÃì¤lqÏQXCµKSJðZ‰oõ +mŒÖ°I!=“JDêÈÚØqçaã¶7ùtÉt@+[%÷ð ‚±i„û€Ê‡Ô÷Íz=±°}]­¢‘Á„/(^£R‚¥Œ–'’÷j´ÇLébï]•ÔÅV*Z'¼±£¦ãw0ß@ÍTi°M” ß–Œ +Þ mGUÐn–¿žÁÒ˜€ÐÆ%9~ gÿI˜WHS| Þs¦xMKŸ~"ZK»Û¶£Õ¡¢y8ÈM¼Þm`@ðx°IÚ—¤ÙðæÁ…Ül©m Œš~¯ÂšÐ†Zêm⓬ßÐÇUÍ>˜60Z¦QM×,A iÔ6Îx’îSçžl+ÈU·¶þ 7<"g2s`Þé¸s«æSÀ غ*I¨]Rþfûwð¦ޥ  ò%ëÕ&xÀ©ýMÐì–÷tØ9¼>•v,¢º ÖÐ"’ØH>nCŽ¼i{^ÔÛ…ùÔ,AÉK:><Ép“ꨂƒS!2ƒæj}³#ôoÉI£jöŽY»ŒG‘ßw <5; 8b@£Q7…™Š7Ð’y«s‚SB8—½œ¶é~¿øùW>[ÝwœÁÍîá3Q–³Í…«P^ÄïõÅÇ‹¿g¡XZ|‘n2Â1L8 ‚s&5Eb_‘‰^Bg4„D<©lÑ B•ÌúžßçågZ¹ié#«EÆ+HŸK#4l>¬,—IR ±`¼—šWµðÂ!3P¢wÛ;8ÈFœó¥é9-´ÖÅeõ€¦L`˜!9 ¥ú<(T <JäµÈ˜î©00”Û~>”´¡C6áÈó Гlº[<3>¹þÆL±PNOÀBÂé9´Ò‡n +aeAYÕáܯƯ§mú' +ªñ]‡LúèââB>nÉÝîä£h=gן_£Œ‡}:œj&ÁìŽ^täPÈtÄʨgò·3~ö×2ˆ%"öÍÄêÀž„Bàr1 +/¶c‹·2íç_'ö‚3#ïZ^?ŽlÈX&¤ê|’ E^‹ŒYÀc •Р!GäŒ2xñ-žxÅÛ©ˆOô'-Þå>c%¯Ú Õ›†sùDؤ5°QúY`K¼„MZô9rÛ?á^/@6ôèŇpªN]é3ðR¸ˆ±d°°}úîи÷脦ƒƒ‰¤lïGx('5ñx<à\Ç x +Äk„Ç ørš;4¬ïçΗ#„be½H>Ã^Å”Æðò‹4MËwú™LóÈì¼iFš?§c_ˆ:Nú à%^‚'"ÍÀûoüÚÿÞ4‹Ä£Ló‰IÓÌx;a– ‘VN˜¥ë²˜¥ú"ÍRc$ò\'æ‘Ùy³Œ4OÑ,Ê^pÅ,7ƒ Xpëa@{ØGMÄÛ˜d‰”pW<·Áxµoc"íl'Àe;¡̈ØG;“‡cÌó7wsöªêÄ, §j¨zšÁD^‹ŒÙØ`'Q¢É.[¹0Qó,rE^Ë¥ š†;Q.צº[²g®¿-Y:G…€Ì’5©Å‡£Nîï›–ò«°o'ýÿRÊÏÝÕuQ›ºvàÍÑú§];JÚ"_æõd FXÍJ‰'—çLËÉL¢I$(öðœq¼üüyÞ»Û˜Òë§ôèVô,›ôϹ‘×C+Þ‚§Pƒ,ãýudÒšyãsÑF I-˜—¨€.ºKpÒy¦K1™9‰¥- ž %~P¨˜ü ŠŒ 8\¦¥Åì²Ä­‰<ž”쉼³q¶ÇhfM9z‘OåÁPöÐZ…tú>Ë\k-‡E+$j»ú®¥×A2òè34ãH‡éëÀ+õåLé$ÃܺP§ª€w‡X˜ép0ì2ÃTMô‘(ÄРڑ°ÅßÆ|BpïÍèjâØÖòL|28’tzÿ6qË`κap0X/œêöühËÊ>´øËx4 }L}fò«ñð<åùÛø* Fë‡þ4!ÊtušãObÕ +ûCë?î›øû-ÜÀ6ñ›|´¤c­ND+ +u[o‡L‘j–UŠ>NtZbE¿mB©îøs‚xNÛ]Â>`Ý‘i×£ocªG©=’ +§gÊXc¸clqµ==“KФ3Yÿ¨d‚³g"ïÀh‘q¢ñäqŒÍ³) .«Ï!Sâõ°X”„4kjšly*œñpõW@dÂíCU¹E$]d´4µ?Nã®D‚3sa{GÅA¯ÊØêæ¨p¦xùxvi¢žÖôÑÝïè¥Ù¢Å7¼ RU/._½œdê#S6Ù_ÆþÍÝ¿ðÞÖ3†o¾£<Õ zNt]ÑO&j´|ˆûeCOATZÁ忲ÎÿïË«endstream +endobj +1301 0 obj << +/Type /Page +/Contents 1302 0 R +/Resources 1300 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1287 0 R +>> endobj +1303 0 obj << +/D [1301 0 R /XYZ 63.034 602.788 null] +>> endobj +206 0 obj << +/D [1301 0 R /XYZ 63.034 498.254 null] +>> endobj +811 0 obj << +/D [1301 0 R /XYZ 221.265 292.383 null] +>> endobj +1300 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F11 674 0 R /F47 596 0 R /F45 589 0 R /F48 601 0 R /F14 1012 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1306 0 obj << +/Length 1678 +/Filter /FlateDecode +>> +stream +xÚ­XmÛ6 þž_‘}³‹Y§WËÆÐ×âv»b}Y/ßÚ¢p'1–ÄiâÜmÿ~¤(9v’Ë¡hQ4¶$Š|H>¤äCÿÄ0,—f˜rÉl– '«Îaåv ¼DâE’ŽÌ«Ñàêl˜³­æU³»Df%ž#sNOQI¨âô•¼D߸ô\àˆu9/šê¡ìº„LöõfS益ur[Nšª¾X´*”M7ù«Í× ü_sôzü+ΦQ>ž¥„ÒߟK$³þ12[ÎŒ8Bbžu§ðv'}Âì9jµeŸé×^QçK„b +~s×ýQf´(‘Š6jb™EøSÓD'Ð _Óh‡,hŠ&v\Ѫ¤v-óyŽÒÈ]Vë µ£jÜ6*paêçÍmàaIz‹æjü]y@„,ª5BiªbÙAã +E¦@SUaÖ­Õh‰¹ØC°ÜOpàrù¼R‚“|i:ÌJˆÈ•2¾à\ÝÐ;º¿ðóå·=Â!5Áá5M<.ï$Ï4S>`\½›n÷ÞX”R4°Æª°§©)à®ÊïXâîí¼Ü+´²Ñ5njZÎ|9¶Æø>ǦÆÇ`§t„aK]wèî…ƒŠU›Cµ*–ÙPËK—!A[=®l%àÎ"öäDžEï æö‘ü,1÷ÆøàIä"ÞÈ’nˆ›0»'¯a¢©é‰I¡˜·Ì ¹ @vÄ_Ôµö: +zÌ0 +[×jŠí”ÊTA™JÕKñ=>Š\–U´÷€CͶ$Tòljc¢„òÙUúɶº¦ÌçÁÂñÊ”v]’¥$ôJÖÍ¿´sêÚVwœ8wÝ$gàîú$¿€¤Èóèmíâä˜1û˹Q¹t­æjs|ÿ—€É¨l(MÊR€WûoƒO_øp +ßoœ©<>Â;g`i¸ê,÷£åà~ð÷á;!èJ:ÊŽ?{¤°ÌHÛÚCG¨è›h +¬ +4¯ë"4GTK”¦ë€.¤Ž±Ú‰#E¹ñó…'µ> endobj +1307 0 obj << +/D [1305 0 R /XYZ 91.925 602.788 null] +>> endobj +1308 0 obj << +/D [1305 0 R /XYZ 91.925 266.012 null] +>> endobj +1304 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R /F45 589 0 R /F47 596 0 R /F11 674 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1311 0 obj << +/Length 2030 +/Filter /FlateDecode +>> +stream +xڥɎã6öÞ_áK02sD‘”ÄA:@gm.}©Û$Y–m¡eÉ#É]]ùú¼…¤%K]Ó €2É÷øö’›þä&U"Vz“ƉÈò|S^ÞÄ›@~~#†ÒJdw+ÀŽS‘i³ÙM(üðôæŸ?él“Ä"MÕæéè¹hkD,7O‡ÿFÿ>×q»“QÕow*K#³ýýé?|M¡ ¯Å›ÑÂòŠa+£ºDt½ƒu÷kXŒç ü¯p;2Ž§%µP:u´ÒDä™%bЄ„ 21ѯ°i· +.÷P—ÑáVŽH·k™P¾±Â²&@FI¡â”ȼÛ&9°+Ä ^p#£ëv—dQW·„¢9u½ס‘IÏ`ÀÑǺhçT¦pR| 2‹Ê¦*zB;¹“?Hç¾C´Ö–ݹ¾<^®E';T ÕRXcH ¦É~(Ú/†`ϱnp¸MÃË¡]Ë*3^ÁÚˆEg<Áƒø¯âÃ=Ù…(W-ªø~±ü¦ÎÕAlw&K¢'Žì(Ç¥AW@œŒ¼ Ö V4y:³ÝP8áÇØJÒèR|p†ÇÝÍ;Ê]óÐïè Œ8M‡žÝ-Ê/Di,óYŽA[÷•gàdšþFù A>Ó‰³iOÀ† å"2±`Z ð0/Q‚|ìs'±qÐÏ/[ˆ0¤ÔŒõ•bª,Ø#ˆù`_2‰@_Æѯ#£ÔbuûwêÝáR»1Üm422Æÿ¹½8dÏÿ ?’§¯xAÕãtn]n£î:Ž¡Pj ¨ï©bÍTg4gvä ãåßP;mÀB—9(ò¡Î%™Ò¦  +þ~Q3(¥ú[lâ%Æa,ë¨Jq¸/½wN˜]³è';"TØ$™ã†é.“‰^ø ,Z^„’£¤‚Ó¦© 8¢+º (OHÏ(ËÐÇÓ‡ÐÇëÏgî; Ö=BªŠ¡nœ,dä‚ r(^*Çâfa¾yäüUè¹²M +v×Î9 ¤’$ ZèÔB· (ì&¥¥þNLÓ.ùëDÄVýÍúbÔ×(ð¼¥|àƒfêeWpw™fˆÌDlnøØþ´Ì¹~JëüÈëÇ’GÏ5­Ã¦0q0-Ð%¯#NAx6)Ú°» n±Æ-´>Ü쩪ðz ŽÇ‘•€ Èj= ¦îzïÂh*XTª¶1Cp³§9bé› ©}n÷ÝÂò}›8¸ë + "2:ñîýþû׉©ÒCÃeGy@i^ÁEï2˜.<  X…n‘ž–°‰Ôp¥ÎR•azü ¦ÿË6WÔ! ß9“˜¥šÙyùþO,M>ëñ|B­Å@¤´\è\SNÒ˜8w <ëúà'<=Ö·¾0+;7¹%dÚDçÓNÆ è«k_ñxçæSk“ÆOÛ\󪡪}*.צÂé'„#@úŠbV$Ãí‚”÷l[wy%Å%<.¤ñEâ_‹ €7Eš;¨UÚ0!?hk(Aÿ»±Ï ÌMæmÀ¢ÉNK¸·Â7†œ!¼Î7sPm¾a‚Ïçš3Ó¥<†ã#ù±=¸FeŒÈ”zhT”GC:ššœïÃ&ý¬‡3ÿV˜Ì:Fu-…CØÝî–{ž*¼Uz/µ þ]ßÄÒÛˆ5¾øñ‰€EUÐIWJAš‚ÿt(ãR/ê4 ¤¯6š\˜<™Öé·(©Šd¼ •H‘'æëÛ–+èJ×:ñÍ»æTí© +b­ Ž Š?¿4‡ý oï¯ cCAáþB<¢É! ÏšÓ4#"è¦ÀÂò³àc=ЄŠpj® º5ôþ"GÔåôM¸6?»0ÆVð« Øix®wkþú¸¬qZßÓ=4xLyžaóíZC‹I|ìÈ1î¿8¬?:HiaRßøß®¥¦02 Ô®§sƒÎC¼År%l.‚ ßCˆÁl´+ñ˜$Š#ˆQž©¡®NÉ©€Ÿk­ì5Í̓æú3šïW*h˜^õâí²aÆ" ¦ùrͧJœLU/×ò+áÓ*ŽE.µ”økÍ{÷ZW9>5N-ZËCY„\È øk8SU_µ¥Ã| ç¯Qþ^Ày“ÙéËß>tZÂroQ\û‚ˆô)Ö Ÿ(™½¿ûK¬¶c<|n€ò©O÷Iûž¤Rÿð!ˆ‡þÍïN9ÿÎvÈN¸Ô?òúî4C2 O:ÿ|¯}ú^sx3Œ3—núÉ%H‡âöôÖIehÛ¸&oܶîÙìì_T.Ýà™Â8 lòøI=Tî‚”>U'å\J+\„¶³z>ú\ÄŽw”µQÑRÜqPJfx›ŠA߯rùàlö5Ì»Åݨ¹¼é¸áž{kŒ|%;’KÖ­ A¡ŸèY9–ruà¡hú’¹ci/Ìà„Í¥_mw WÕéB¡¯>N>ð°ïèE¾¥ÎÈ=Í`ófØ?|ô* `øÖ80Y@r­—Ç «I¿VÀxóãSøí¾,[#´ µ/ÔcwG¡ïÓù|ø±qî‰ÐÌgùÝKNŤeendstream +endobj +1310 0 obj << +/Type /Page +/Contents 1311 0 R +/Resources 1309 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1313 0 R +>> endobj +1312 0 obj << +/D [1310 0 R /XYZ 63.034 602.788 null] +>> endobj +210 0 obj << +/D [1310 0 R /XYZ 63.034 584.788 null] +>> endobj +214 0 obj << +/D [1310 0 R /XYZ 63.034 400.25 null] +>> endobj +1309 0 obj << +/Font << /F47 596 0 R /F8 580 0 R /F11 674 0 R /F7 586 0 R /F45 589 0 R /F14 1012 0 R /F10 1027 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1316 0 obj << +/Length 1841 +/Filter /FlateDecode +>> +stream +xÚ¥XKoÛ8¾ûW{’±kVI=ŽiÑnR´@·õ­í±E¨ly%9iþýÎK²üÈnÐ…‰š!‡óü†´ž‡ðÓóL«,ró8ŒT’¦óõfÎKàü9Ó2c)S–“9¯W³WïÒy¦²ØÌWw§RVù×À…‹ï«÷¯Þ9{˜¦£œŽA,Îxs}õiõv¡ƒÏ‹¥16pj±L’$x½Xêàê 0nÞ0çêóÍêú#N]Ý ó Šž½]:ZãTlâ5c˜sf‡MæÚ*cã‰%.±*b¶DÁÆì«#\Á8Ï«^U-h˜¸Àos|Ùßö­_Oøä…‰¯Âù2Ò \“ð`C¬› Z¶iä»_Diðˆ¦CŠfì@h]аØ"¿çßBm¯@NÎ4œÛk¤T]5ˆö-*×ßÓÅôÕš·ØâúÒ÷Õ +."Œ÷49J‚ÛÅžE+J‘¬mD»48Ï9²«ðm[ÿ \§ É®ìè ¢³ 461Š‡ÍžxLpcð(<=ÙÑW0DKPâÚ‡nÁ2¨Àqn5S +Pƒ}¹ål¼[¤6hZ^Qüô›]]ü‘‹ƒGt ml¢%nuKnº`[%~[JôEYëC˜Mªtd%Õ½ð'µ*FÂþ†á¹BšÅr{–G‰rY< +páh3”Œ|¥ùÉ@NdÛ<ÐHä fÓÁj+’Z~wbîˆ Æ×eCU ©OZfˆG^s!ZŒQärÂã#Òp§TóŽ +¡¡gåû¢–¼}¦¬W÷TJæ`8¤„T<Œ~¨™ä1.hŸÔ¨-ØPü\bãFÄL “ ’zE)m!@{™1‚FIH!¡Bž«ìñœ•šÁW)—ž/ Û3°Ô÷LÆ4i„%ÿÄ#1x>Ïy@Ú§ú™Ìea®ßørKqÜç=(¥hÖV-Fü)Gxî.$±´òC¹L"r,_d1敦Ù䦀-×…Í€ÍØSlðA2(EÍ×…óëą낆“’ìp…îÖY°Q‘‘‘ÍDáI‡á¹äàIÓ Þ®G}7\¦"i10'^¤$²…ÒIø4ØÞ¡!“.¬³¡ Èã ;<:ž£&)éŽÁäjÝi9 1>Fvœ…ÈŽŒ±8€–ëŠ@Í/¸¸€O7ýñä$/,¤ä}F(ÛD ]ë«šU^°ˆ¢QV=6#È_•vliH#q@-¼ÙyèÏO2ÇCà’Ÿ˜Aá£òmŸXÐ~7b«oóa;´lÅ«55y‰a$E#CÏ’NÀŠHB§˜ÇºB¯œ:l­xËñ slúHx¤bÍp;žM€èùõMÛÞû# »¸@Z¼Ðÿ=ûú=œçpû? •ÉÒù#ŒC¥³l¾™E*ƒ:â¯zöeö×áßAÒruúGd #Ù +ÍüãÓÐÐ+Ã4¸®$¾ˆnxZ¬ŸOPv9¼ño§¦·ai`6è¸â6 ±í3wÔªî(]ÀÖBâàã'üë„ÇuuKùÙrGÒã}ÑÊÌË>…‹b £ßÿ§WEÖr"ì̯ƪ†Ãq-ê×õ|á¯]Ö„Á¶ Œöü,¸#\\Ëœ½BÄtÎb±9Užˆ¶:^¤´Izô3þ5öçÒ¶ëãkäÜT vÒE¦þ–œ2§L”]úçÊX£_æ?#5Æœendstream +endobj +1315 0 obj << +/Type /Page +/Contents 1316 0 R +/Resources 1314 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1313 0 R +>> endobj +1317 0 obj << +/D [1315 0 R /XYZ 91.925 602.788 null] +>> endobj +218 0 obj << +/D [1315 0 R /XYZ 91.925 584.788 null] +>> endobj +222 0 obj << +/D [1315 0 R /XYZ 91.925 393.665 null] +>> endobj +1314 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F47 596 0 R /F11 674 0 R /F14 1012 0 R /F7 586 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1320 0 obj << +/Length 2536 +/Filter /FlateDecode +>> +stream +xÚÍZ[oã6~ϯ𣌮YÞ/ƒÝéLg7-zÏ»Hó XŽí…m¥¾lÒ¿ç”,™ô%3ÓÁ"@,‰ÔáÇï\IŠ (ü±„ +9Дcí`¼¼¢ƒ)´üýŠÅ£ØeÔéóõíÕ—ï•8â´Ü>Š¹­î +E8ŽŒ1Åõ»w7·7?þ0 !ŠëÞá…,~²âŸ_ßG¬øåzÈmñÖwº¿ýöË÷v/Þ!FZÀâ¥2ìpõÍm‹OR íêä„ .X¶]a4@y·ÇaOIœeì(¨ÄŽ¿_ÝÝÓA¿½¢D8;x†kJ˜sƒå•àš8gâýâê׫Ÿ÷  ƒþƒ‘²[VõÀÂÔ5NÝ"´(3dÎÏÿz¬Mëõ| ¿³e`K™ý;Rzh­Í!Y I'[‘çg@˜yü¬QGX˜BãŽhczsX>%°¤"T}TAÔiPÒ.DTY¡!V‘ÐŽ¨PšH(I YC,ã02%Na7+ö´ÃÿÛT$WðkEŽ¤Ò…÷ƒç!wE=D{-– à Q‚8ÎJ+bôy¢À µ:FT5ÚËJ IM´ÕÍpw¾BŒÛM˜•¦ÎÈl,¯Lgm€ž¶yUe8ÐFèñaš1N*·Cõ»mà:Ã3DGu†çÙ9æÅnµÁÛ9úÔjRâ˪ÂÛy½Ê`¤”H*¢Ìq:¦&J6sø[lvûfG obÙRñœ(}À`çeI¬åý—»CK¢ic¨_ä†æL_4ôCú20ÙN+34¼¬\×GºFRŒ0¦>QÐÜ ;5'Ò*‰EåÏ3u>54¤³âÍnƒ¦À­*¾Â]<„G©®Á;ZƒÝÎ&Þ^#®{V +XÁ2ƒƒJÛà²D³[¥ÜBá„¿QI3r1¢úŽÀ7S&R`ü0¤å%Æ)d\y9°ò È9†Í€_eHg°e`A²â¨rh0иmh²ØL¼ž-Qhº|>-Ÿ$3U4ÿœŠ>n©–ùçÑòÃeZQË7™H,HÓ #ýåÒ‡.ð¿¼Í !ø€ñ×ðƒ)¼|IVX~¸6R8dT2’"> M×5fÚ燆Èhg C¨n²Ä¶bgõ¢ +Wå6ü.&åf›‘-! ðœ9èÜð,þj>õÉs&ñUbd'Q)ˆ›M²I«AqU¥,˜˜ñUŽåGÊÁFÖ¨#ÌgŒ.¡Ñ÷t; š®‡Š{>gjBG¤ØûjX”À``qRõ J’¬arÝØnl¨BoÆbdï8®WÉu¹±{ã<Ö5|¥‰€¥RÀÙ,×ÎàÌÉì†ðG}AˆhÕ~Ä7ò¶ò*#Ôô«?}õ.8¬NGO½].iÔ- JYopcÅc½Î UH3Ì*ÃÝZÐãº^÷¡ÁmpqW§2%„aÎÏåK¬qíühf~X 6ÓcaĪÓt¸|Ô‡Ó<ŸÕb7TÄKFpãt„ž*4˜ß¾ËåÙº;P(‹3#õ‚"C¬m—/ÒaºõñCv:Ò]0Š¾|”]Æ5KŠGsIê¾ØЋUØq¨Â¯bÍrâ4ãàa:¡3ƒJÕ)6˜Ì$P¢u~‘º6ªu¨ÿ/¶ûŠz‘‚ÖHÑ¥#ˆ™u40,Úá5Zhgý’Ö^ºrBDóse­N‘ÐþZ¹ï*†›s¥{§»K°^8ÓŒhÎgÄš¨—ܶ³ásIäN% Ò].N÷k×n$lë3yìDe¾O—Ç£½îF{ÞÒÃ` EM†’ øœÃªâ´-ÛK¼Æ½Îk^Ò‘ápûI#~.k(¥¹Ì±ÃÏ°s$óËë£Wð{ŽÝkÃ1uJ<¶@ŸR½*3Ò'ŽÐ'/ ”æ¼m™‹È6;R6$›W„d÷2 +ú±ýzÀ-ÕÏÓw,ž00SÊ_GbÎup%u°ÓDO¤’^ÊJWD½Ý¸£«jG”ËìÆ)"Y +åt€õ–Rêt8›ì-uÂ6@ÍKLàhzÑ]8ÂÚX˜Î°RwRæÈË& Ù–ÿIUU²@ÓýkuµÙ÷}»(ÃqŠ×øäɧ.îUTó)Ö0ÍÖE'm÷àR8ð“ì9ä7Aç~(Ýá –üÀ¸²P/óÚid:Â’M0´kôÓC+ó›â`’:¨uiÈÒ¥¿ šÍÓ_&ÛÝzudW¨»ƒðýOéÑÎMÀ¨|óãv…Y£Ž°„< £àMÚôÝõÐØâß2`Ù­Äé)¡V›;qx` à!VËìy7ÓÏëF¨SÊM;½Î±zìÒô@ÔïçÓ¨z= õŠ°7CÜ7+®gvŸ,sm}ÄìŒxN;˜fóæe‚ÏN%EƉlˆ=ŸU”u® @»]TeU%œTeõ`%*ä’ŒgÄ sòà «Yº?é–@ÆxÌÌq(šFþ Œuþ|u*¡8L?0*›·/8•—âȱ]#j´—•`e’C”b]°™/®ÎØ'ÁEıLô }’ä#pVcï¿aîÀ4¢EQ."מg¡y1-‹X0Ú¢ÞøD´ø#txÀzÁLû#ixRã²V³ lïˆÐª71ìÆp-£Â¹gý½(-þq=ä¦x‹7¬¸Ãݤ¿àµ…ŒYc3ú»“÷¡Àcu|u†HÂC„:ñ+l¸¼l'«ªÉ¡Uèì(â\ÔøEÏs¸ÝÎB?AyH«O~€(¸yiVâ+ÿÅ“ðÄŸÃCµ,<kÚü¡0Ý粜®<-»j²Áé0[¼­ç+<‘™Wñ=÷À1Wþœ/DÑNa3^ÏŸšsßÙÃߎ +1†÷®CÛ<öýαƒþ9fÀ1×nÏ1ø×ú>ƒ3+ד ªAdxá- \Æ»j‚ˆñ|²ÿž”‡/ôM Ÿ°ÀÓ&PAiÖ¼åGÃs¯u”[ïâÅ*Ð)” &è‡^ÏM8¾èFœ"‚»ìWxñ#=Úmü9Šendstream +endobj +1319 0 obj << +/Type /Page +/Contents 1320 0 R +/Resources 1318 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1313 0 R +/Annots [ 1322 0 R 1323 0 R 1324 0 R 1325 0 R ] +>> endobj +1322 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [100.688 179.309 107.662 187.722] +/Subtype /Link +/A << /S /GoTo /D (cite.HAC) >> +>> endobj +1323 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [359.617 167.354 366.591 175.767] +/Subtype /Link +/A << /S /GoTo /D (cite.TAOCPV2) >> +>> endobj +1324 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [289.064 155.399 296.037 163.812] +/Subtype /Link +/A << /S /GoTo /D (cite.HAC) >> +>> endobj +1325 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [223.068 143.444 230.042 151.856] +/Subtype /Link +/A << /S /GoTo /D (cite.TAOCPV2) >> +>> endobj +1321 0 obj << +/D [1319 0 R /XYZ 63.034 602.788 null] +>> endobj +812 0 obj << +/D [1319 0 R /XYZ 216.123 227.982 null] +>> endobj +1318 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F64 1214 0 R /F23 1211 0 R /F48 601 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1328 0 obj << +/Length 2620 +/Filter /FlateDecode +>> +stream +xÚ­YYÛF~Ÿ_!øI¬h6›Ý$wã#^;À.v½ÅAÀ‘8‰THÊcùñ[W“Íc”,°ú¨®®ó«jŽZ…ðO­2d‘YÙ0 +’4]íÎwáê;ÿ¼SB±’Góíöîõ»t•™Õ«íÓ”ËvÿÓÚD÷?o¿ýÎÄ™Jt`”¶HñöýößÝ«õ÷­ãµ î7I’¬¿½ß¨õðñá-ï<üðaûþ_Hºý€›o‘õÝwÛ^ÆX›Àj{S Gó'ô0I¤‘%)Ë +®½\á¿®½ßD©Z—òÛ œ`3oE‹²u EÙõ'GØ¢|¿‡IÙ•u… áúTÃüPîxû¹æhÅýIäÈÄ_äÒ®¬LÕË û¥Ä”°j¯;¼ãèóŽ1@©!Å"›¡MÎä8¦òò0Š‚ÐI^íç\ŒâÈ1É?Ï8lta8¶Ï±>q¼j£=L´&·(2LÈ.«¯$¨CÚÁrÔè 6 kÔ.07q–€g†Ë>Ý»¦ì*óGHÓ¹‰©ŒÖ¢Ý\·,P™lŠó@èG +C+¯øPd‚”:KÚ╉À `cÁ_ï~ú9\í1¿¿ ¥«g‡pI¶:ßEA–f2;Ýýx÷ßQ¯ÇlŠ¨q©Òý}©hV–;?•yK½Ña¤Ì¾Ëž úº8Ä ÀO èTì!Z,ÀZ°snãÒÃÅI¥IhgêÇ™ÒÀÈåS/æ¾=ž£¢ŸîÙ1q<ÄN/O~–°I¶¾ž‘V\)*@Ø‘uTfÁ9ÉÈ:û’jH×Ré ×O‹<Í#?Mqš7²ÞÖMWìçô ¨º¤àX£DýÝ‚q;ãÈҦ& ªDYîáþWô`Ù°HXLXóHg±f¤y¾cGž~1óNŒBß´@žgÞ˜gpÔCc2ÉàΕ+ÊàT°™4 ”YR:öKC¾D˜®-Þ³ŸÃ›…\èMW_‡|Pâî±­AÆ/š²PEž©QÊ]})Y÷.½LB8ûeÁÊK$ÉÑùE,•¤Êq{fšk+¼iÆJd7jÓƒÓ,M±F’ +'¿äóBà.†ñ´wÐÐ\ 1,L +1¬2ÂèP{·6„뇣ðÎ9¹à ¯º=’Û2ª„„‚Y š’ðÔùhÎe8 k0MF™¨Ó9FP¸%&ápC’]Þ4_ø°¨Üß-TEÄÖÎadg±¢á­öóî`Wv| 5ƒ°ø›tdX\¨‡œ(÷c°Ü9IO5ëz $m1Þ¢1œ¨Úþ¬‰å, Æþ‹¦†¿•Ž}w«õ+>Òv7hD6`Ú·:Hw¶C…Ü&¡$ð@ÿsº5ó½4¬Õþº“Ã5g¼‹v` ac5cu` íõÌÝ95Yàfi÷®ä öÇ=šÕ¸óô©©ÏK.‡ì7.ûóNSõ”µÉ‹5¸gýùFTá÷Â4 ^ +—°Ü®‚Úù©††Qà;"`âÛê¹ÄŒ€‚?¤z˜I¬ÏD´ðË’[Qxê‚ñZ[Ák¸€êõ ˜G¸B®qW ÁÝC8áVÉ‘Ž}'ß5ù®ëAˆÜëÇ-¼| +—KåRA/a³[JdA˜øM/ðbô«øA÷EÌ OzȱäP{a¨µ÷º(xÐŒV39¡É°ÖŽK +ÁÀYS?h…® â,&šj©òƒxE)L¸æZ¹7QÞ õIdìjþjÈÔ™…"–ÿeA§AÜ:˜7^ˆôÐûøð¨æóH¡Vžn_#8°—æP ¦L’>*Ùy ôFráßÜn‰áç½NäY ½`ì&˜ +à±õåBç• dì¿Ù`WJPÒ— \$í®&È:×2?ŽŠÕÀœÜXT/–Äâó1¿ö5¼ØKŽ~Xèu¬_ üç¡ïî(„.Ë™vžI¡ì¼ùƒ Xz8ÂÓ3í{­Ö–R:‚b›½øJƒ4Èü¦LɳL¹7-Ñû×êªàr¼ +%cÕôI‰+üaGä=Y=÷õÂ9 +°Í^|1ÄÚ@[0cñkÇåTÊgÆ1+0ß÷<Ø@r‘—. ¦Œžvd(Úè½ÍÌ ÷”@)ŸB¼Š[bÌ+j¾`W׊á)Fq °uÎËŠÂáp£ö +ÔôÈì#ߤxkz’Ÿ“^úÜ‚>±â4÷l£›p…;­éG2yƒ.W ¯Ý?ô_À«ˆñÊH8ß«…@„dI‡:*.x­ûì!Âå‚^ŽÏ¤JȼøVþÄPÆ\j^jø7Él \ÖøE3„‹¶Å'“†¢güF„Ÿ4ðWBéZë–\u¡Ú²C¤;º7 Ä|Ñ®<¹ w›|ÆN ¡3¨Œ/Pj°­Í ÿ#ºõ]éuä IO +U?v`öwìíú±š~“QQB ’†ŠÙ?óI&Á&é“ŒcµxÑ™‘L`´„Ekg"aÏáþWˆ$¬n‹„_‡R_¤ù§+e°4ü%"1§›¨ÈøA\Ô¼LäJ-! <¯•ÿ·‡Ùß „tãÑòÍép³ü ‘àÍ¡²=æAå3™¬&ߊðë¯à5!8?Ë øTœxRS(ÿ§9Ãëøûþá-.—Àd±?œu]Ù™§ ¾z½(O*ò”U·¸ŸÉ~ûËùò ¦1ûšæxˆ™‹à"lQ‡3Ù~¶§[;ਖˆ¤s„yoî(¥èä•~ÄwÇFÆŒà‹Þþù‹—FBK„4ªOûk[ˆMÑ:UJ*Šn–¿ÀOVSY…·‹…§²û¶åoýÏ… úw*U¿óäë7²ø( ÏÇrwqŠ»KŸÉ1ÿ$#,¤tUÝ,z>2Ø¢˜Ðy°ö ˆϯ_}~%lé‹ !~ â/>wBhC–Äïsr¨;NvÏu+›{.nKY'Ðb$G‰óÙÓ£ùæ›kŸ8ßHòš ¸qhaÿ•EöFl9Šñå)>¡ŒÉÎ7£Ë–£"s‡ &û‡ò‡t(‡&G–‰4ضƵ(‡¹‚´(îI[œÚb!ýt`ô-%Ø°O$‰^0ÐM]õ ò­êúàpfeKQÖ±…3oó'Æ…›endstream +endobj +1327 0 obj << +/Type /Page +/Contents 1328 0 R +/Resources 1326 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1313 0 R +>> endobj +1329 0 obj << +/D [1327 0 R /XYZ 91.925 602.788 null] +>> endobj +1326 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F11 674 0 R /F48 601 0 R /F10 1027 0 R /F14 1012 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1332 0 obj << +/Length 869 +/Filter /FlateDecode +>> +stream +xÚ­Vmo›0þž_Á¾LР‹_@Û"%ÍZeUÛi¥¦®ª!Z/êº_?ç‡NÚEØçóÝsw϶“ý,…8†é …˜¶A]W ·SY³•Ë:¨è-©?]`¤x†GÅ_uÍø˶¡é”Ru2›Íýùí¦;Ž£NnfÕ©wš¥ÞO}M·Ô¯ÍvÕóZéÑÿ<ºp¦Ùƒ"—a©­:•Âà“¿Ç‡LÂÖqo\ç8Wq™#ÒŠSd¸6©½±9ÃJ(Vi:¶±ú±ù,ÞW(˜mÝ2 { Œðl¾7êPƒ`~ ë-§:(ˆ†ˆÔ<Õt›0EœÄE3Ê¢¼ÜÀøl$ÝìÂæxÕ¨}7±êã`³IÃFò¡ùlˆuØ|,¦ifaÓ Ž‘­$‘q ‡ mã¨þ,!ÅÛÝÓ:KŸ[`ß øˆ€¯ÆXOßÀþë/O·W“orð6fCÓêÏ5ðÈÔtDë|e–ìs/e’øEÔ0©ÓÃPh ¹`ÈþO´BŽ'êÐj“ÒͲ”y£e¼æœ Ó2)šJ ,ç|kAåÒ$ê£%Âàœùb^0vVŽåÉ%°”Dêt,7A¥R÷•d¯þ6ÙœèY´Žó"Êö´nå°NŸÛ]P5ÂÖ|чҰ)u'`=–ï²) Û`‹³ ØÄœÈUšU—27•GKÍû +Œ¥œÃ¨ãmg9GìÊÞV†1ln’Ö*| —;yÐÒŽŠiF…)çòë8ÜŽ…x=œÆáɤÄìàXFy'A§Ib„ݳÓE…&¶Ô’ÓAð;ÊÒfTü€cYöÒ ‡Wµ°˜ÒL^Å=»ª&ww6¥/¨8áòáðÄåD<»ïr þγpžn ¢N"òr |ã2©ÎAÔ:$pvý‡øQˆh²@ošv÷½¦ðì¨âu [uVØDy)¯ˆ+•zœÜ‹D;bÁ{Cº£''¢¡ü:-"ØÆcñ‘À»gsÝ[êl~9÷Ÿ¦s¿Hƒ¢ÒnGíNPEðÊ</§C[U^³tÛ-ï‰v¹xqÞ^(ד»+9lô¯nwßËðÌõ°áØžìµì öඪYkñozѦendstream +endobj +1331 0 obj << +/Type /Page +/Contents 1332 0 R +/Resources 1330 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1313 0 R +>> endobj +1333 0 obj << +/D [1331 0 R /XYZ 63.034 602.788 null] +>> endobj +1330 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1336 0 obj << +/Length 2012 +/Filter /FlateDecode +>> +stream +xÚ­XmÛFþî_á~)äìz¢yÓHè5Àn®/Û^îÚÆîÖÖÚBmË'ËÙî¿/ÉáÈ’¥,zÈai†Ã!‡R–Óþä4“"SvšÄJ¸4.w“xº†•ï&’%æ,2ïÈÜ.&/¿M§™È=]<\jY¬ÞEÖÌÞ/~xù­5g1é´°2µ(ñúû›ŸßÌdôËl®µ‰¬˜ÍsÑíl.£›·°p÷Ú¯Üür·øþ Š.îpñ5ªž|³hm4ÚŠD'Ϻd~Øtš‚…IÇëŒHUBfÆ.+g£—/fs«l´¯ýò:<ù§M¹Þµ~¬ÐÆzuô¯åƒóýÓµj6yÃkAfïÇ›«[t žËXd6c ÜlnTG/ú*oüPñÁ·lKÎZwU]àS­ÊuÙðl¾Z3ªcÑž?vlŽ}9ºœñ½s~‹m¼ ®|ñ5‘ÿó’Á¯Z*%tÆXxàõN(æ,Ð;3Á$j‚ÓxèWì…þÖ毮0"Ÿ0ÃZ¡|Ζè"A·ë€bñ®|ïŸØñ·W>¿ú·ñËLë{ÑìËž¢?æ¯VV–xe6:}5ªE÷fSž5¶þÚÓ¿Ìëša|_6þ”êáÒ«O˜mYõ©§²ãÄ«Wç8@‹„HŒÈßï¾»[|¸½[à˸SÉ謻pªÉg4çùÓÙ5<®ï §®vÑÁ´—+¾ý/ÙÏ7?}xL'ü8nz6œM„öñx[àzŠ²x¨È8;ýŒ"è+’cvfê‚âZ’è€cü‚2Í[{ôõ(J™Ud/lXn‹œ“¼Ç_÷ÕG¦µj»:‹Õ³æòîFÙO€ù+T3Â"áˆ3‘Œ“ˆ’êEú ‰‰¾qŽÙlìîâQDeéÿ #ÐÔN$6{F tÉ8±SÆÀ*A>|XnsÌúpùËOeºŒoª‹æTïÛû×7ÿß Gb‘ +eL߉N«2—ZÀU(#dìµüJ–Œ +Ìb€˜Òi¤œ›ÊÚâè"pB¥QQ?€|UïXhãw+E¤©lJøŸoýòõödÔÐêÚO#ÁÒn˜Úþ¹ÜàíÔ°9Š¯üó*XØõ.Ø‹'ò~òRʳ›®)‰"whÑ~xZYa­‚K¾ÇZ’Í÷«¡:™ ¥Cã•u  +juš)ø8³I”×e~Çn ºhî ØûϪ˵Š}48(‹…m“ŠÔ€bó„Šr?`p\TÁå(¸º,Èx-3 +#Ž,X¼haVèÄN•/œÄÎð¿“wïãé +ÚÈ&°˜¥ÓGxŽ…̲én¢D–fü¶¼ü|n3ƒ®yGÙe»¬`ã BÞx»Ù¥#ÝY¹n‘¹ê»Òlø·9BkíÑK÷ 'k)ŒÊ8ªIP/£Ã axŒ˜RÏ©“Ø«ÿ-–ºXÀpAìWé’EwÓ[D>e #ÈQ*ß–ùQ`¾¦Nˆµ‚÷iç7’á0åÇb<ÕÞ9£$ÊùìQ¸ÐÿèÓ'oÊjÏ&Î0a+œ¼®«ØñˆbZû“aÌÉâeµóö¯ò†O  T{°â=m?…™Jz‚ ÖFÊò + d4"Ò!rñV¼EóvET†•L9o ”ôðP’Ì…‹=ZßäÄ"è+J]À8Ä®JŒ0‰šª>o>ºAÕü¬ë¹*qÂØpú ß@hïSpËG^Lô€×¸_úˆáêɯ,Ñr'<ß#|°¤£ü’CUx\Kl…_¢lEQÙ2, ’R‚d uœ ͬãÇd¬µÅÄA¶’”qÑEµõfÖ¿¡æ®#­áêóV+œ¾=gÌZ{Íß¼)oa®Ç¹DŽ€º.u› +ô?ð…2çŒB‰È—GüWùÅNêý ]š21ÜìÑç¡ÂS*ømFHÌ5F[1öy6ð×LÐK¤&ùŸŒ b•¤ž‰žÚ`âÒHïˆJŠù¼Ö‹UÍϺWêDju8 ­^a0ÖØï Í±Êå ÌÞ0ì3+2úz;Þ:_È,ºê „2|"øÙeÕw Wl†ËmÙ´åÒF%õïå>”CÞXîÐ th>o»¹Á_-ZÁ}I_&‡ßíXGÊNï`}e„ÎøÐ#؄٥ʹuÉ´ª—-Ü ƒ/‰õ£¯¹`oKÆ«Á6ªvþÅì ]áOºå®ô-+Ô ZmÂ%p_ûnkE¥|Ä)}éTOü .L«lì‡`m´pß:‹úÀn¸endstream +endobj +1335 0 obj << +/Type /Page +/Contents 1336 0 R +/Resources 1334 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1313 0 R +>> endobj +1337 0 obj << +/D [1335 0 R /XYZ 91.925 602.788 null] +>> endobj +1334 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R /F11 674 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1340 0 obj << +/Length 2238 +/Filter /FlateDecode +>> +stream +xÚ­XYÛF~Ÿ_!øe)$ê°/v3HpâuÖY¯ƒ'Oq8G¢C‘ +EYv~}êè&)Q6p0À¨êª®ë«jÊE +r‘i‘j³ÈR%œ÷‹õþ.]laç‡;(Vd5¡ùîþî«çÖ,r‘gzqÿxÍæ~ókb…Ë•s.yúìÙ‹û?½Z®´ÖÉÓWÏp`’×K™üòÝýr%“ŸŸ.•O¾'¢ßîüê¹YÃጇ»W‹wÿºîgÒ öí'Uˆ43üLëŒð*#aË•rI‰7ÜVpÛæ7ÏuÒ6ø«’šK^ô)/͆% d2;ÒÀb8’§`¡L©ä~W†Ãïʆ×mÀ%PŒÂ«ÙÎqàR"Lú'\ËΛ4Mo@I +°ãÉÃ,|½H³¸;¨íƒ[ÚæÂ÷3附„Óo粡˜ß¸Þ”€ ’è#ïlªÖý`ì^byËæ§i1lB²ä­ŠKH*¸“…1mœ(ãCêøJd7è*>†¦†m6#ú¨øP ò‚i?òÔÍR‘¥uû:¤Ïzê^« ³ÙS7ÓÂËHr uø¹ÆÐ1öâuŸ B]?d•¸pgµÇÚRWåqþÍ90‰ˆ“B÷—;3"ŽIöÊ«ŽÞ¡’Ù?áümŒ’™È†T“¡ª/šjÒ2ŒµÚé¤|_ìuù%€Âw6åcA/ôžçñ‰Žã—hɇ{ÊŸý ü¢@ÃmªÎð;¾õy^0~j:Ñoò] 7jjb¶O‚@–¦&lnVé#™²âï²ÕÇpŒ ®Ã,%e{þÂ@-5æÙÞ:äÜÊy¯EªÔ§kR–Gw‹¯ÍqA¡2KÆ®WþÆãËÉQ–Å9üú"4Ö/^ÿăïùÒEXg'Þx Ó› A'âpSôEhæɇi+¿Ç +†Ý»ÒÆ›Ë$;(#êÀ„J+´©xå€t\`ùF?MUúïj(Üez»ËìV“ìÖjÎA«TNs›Ÿ|Ô&á+œt Lª&.Ƨ<a]‡šs¥‰üsæSe<ïò1„Z4}žºN§ðµ>‡Wù­oþÚháèkàdó/'÷Tendstream +endobj +1339 0 obj << +/Type /Page +/Contents 1340 0 R +/Resources 1338 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1342 0 R +>> endobj +1341 0 obj << +/D [1339 0 R /XYZ 63.034 602.788 null] +>> endobj +226 0 obj << +/D [1339 0 R /XYZ 63.034 523.082 null] +>> endobj +1338 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F11 674 0 R /F47 596 0 R /F14 1012 0 R /F45 589 0 R /F10 1027 0 R /F7 586 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1345 0 obj << +/Length 3200 +/Filter /FlateDecode +>> +stream +xÚÍZYsÛÈ~ׯà#Y gç>\‰«´®Ý¬wk+HÙ~€(ZB–‡B€–ýïÓ=0 †¤liS)U‰À`ÐÝÓÇ×==` +lâq\M4åÄX;Y¬/èäžüí‚Åó8ežÍùþêâ»íħÅäêã!•«›wS¥g®~þîG%ûiÌ¢˜²8ãÕO—¿]ý0cÓ7³¹rªÈlnŒ™~?›³éå[xðúUxrùæõÕO¿âÔ«×øð’¾ø᪓Q +E´Ð'—!¤ †Á+>g†H«dB!u>åpª$ΠB'=­ÿ\¼û@'70ñç J„³“¸¦„97Y_pg‰.Þ¯.Þ^ü£—Š1`§áBY¸pr•žXP›öjã@ž)£aÎ+ïrÚ¸Ýîê~ïÖQצI9*£ª›C…1íˆÔª#yv‚0+Ž,!ÒšgÄÂ2q˜áDƒ¶ò5¬ïGbYK(gÏ#V¤uZ,ð\jÊÅjö×Q¹ q&©“ŒÕ=·ÚyÎ(q*z½Ag½ßãÿvL’+bëHÎ¥ÒÓ+œû0ãnº¡ÇN×`Þ‚š€™ã¥1ú³Ô1-RóžÖØÿ¬#§ ¸5ˆµ™q;m›°0Ms[ƒ.“®ªñ h¨{¼¹)p¥aÆu‰6<~O3\?pÆ&ÿ3àDéù²—%±–w/ϹUÀ…+¼Ò%jÔˆ;ÆI7fà½0°Vð-¦@$mÎõ÷}¼«àYˆLT<ën‰^ŧûMƒ·hÅÛÍ/oÂ?¼¿FPÙU‹'l7…3t)9,Æh¢º%ÿu¬G ·'Í£ÜãínøžRŠW®hM„Ïa2ŠÄßJ1˜z¶dГ;ž 'Ò*/#%Þ™hv´tæ@Â>”$-Ò1&9Óõ‹}³¼ëh.A>„?~V¨ +„ú< +hºè}„PÕ  sL.A,ç¹DŒˆ× žG‰4)”H·ZAHè)þ7Ê ¼ÝãÀ_ÂâsõyÌX¹l¡íÝrâëv·EÔ|sAhŽG`žN†j·ÚÝvã¶jCºÀª`Y5YÆÉyh ®ÜiÿˆäLä’Ãßxˆ¨Û&ê¬G[-³âPk$ÙÇY]XÅAŒ="_Y~$«'Z󌘑½ îrƒ‰Vh–3×1æåtNø¸Î}1R,ù¹BŒ³YÕ9YK4ó0„4®¿" á<K‡1¨ÏɶËc Š‘83æâÐ`CL)07Ñ™?nwPÁ‰ÍfÌÃÂF#yÊÇÝvâ†ðü¹-Ä6çYÜÕ%(†Ä`z …õ¦°´<8ÞlÃ2–ûúp™lÊ +z†ü)Íi Ü°Àµ1Z@r äô@ [hÌÐݔǠô˜SHäç816ãD œrÍ\—$ݳ1Ò>šûºq€];ð3vx´¿ÕïWX2§qhÉ—/ q…{5*¸s2yÁýž2UZŽ`çÝ;é–õ( Œ–©Tü߸v™S‘ÑIØÐß]{ü˜C[Øq9Ð “…ªƒh=Nc°v° + Ý!°.Ô@ M·/hõ¨’j§nÛ—Jž¡4#šØ„òÓÊ` W=€qŽÅc`&[ÞaòwTô¥Õ7­Üðo…o<Ô~í‚sNh§é“ÎgÎ{¹y7çqÕ<ÀK¸ª5Ñ–—ôÃÏèçBÖgVùt`ý +¿ëaÁAáÝÁÂ@¥â).÷Ç«} ²²¯†Vû ÐÊ(l©p;’)Ñ=[ì<Ⱦ }§c55ìäD‡6c¬5Š(ã¥úcíÙÍåY¬+¨´“‚Ý¢°ß ¼PïûæõHUOÞoˆ‚s;͉”×Á×^­ªÐ)ö‹[~Fm-°àÕÖÄ5×·˜Ûx»-ù'3;s¼ áW8h,–[ îhK€Ã~ûB(¹|RK ÑšgÄF-®`{@šæøå¡{M1‚€®* µ6‹x=ì Å°-æ +Êx³l“³î6eÍÈ|[ýëoãÞ>”»øs­ž¤™Dkži†Yp_«;†¾¹üËåÌØé¿ +Z5*y¨•RKT@E„ ô¤–(n§ JžsHÙ²x¬Ç`çË úÙ91Ù Zv<™æ¤)(û>ö;ìˆ 1¯x&”rz¹ÊŽÕüñãèôŒ;Ï'Ës6¤UöÞHë”ü‚‚«i6¿Ðfc +ëg‘*Ñ:)³¾—KÏÎba« Œ—Q‘KF¤Â„Eœ0'O¡¹ ݤ$ÌíL¡žÒnnL4•é tîOJú|_Í*©+ŠâÁ•ê^Äé£æØ¡h 5ψå5eÈ[:RÙ¬'‰i tÍìPÍôw»vÙ\HŸª+h®îjÌ-JM«UÔ¸×6Ž@jâ&ä#|%È:Îmý©\ì7M}»IY ;ÛJÆ)dÞâ{ÕÂÛ°?˜Â.}²„Mr0ÈmsÖ†n;7þ< +ê†Ha£Ñòia“hÍ3b#0’¸OV?œÎRƒˆŸfHª]]]Ã"WKÔ’q ,—»¸.¯3Þ-›vW/Úz»IOPKmxêoú™I•«ÈiŠÁx`௱òL/«m›º­?¡ˆË˜¥%ØPË4~u‡L%@)ú€Ø|ðe)ŽÜWMwÞ¸¹ c°Jpï#Õõª+U‚ƒGeúⱎóoO ïs7}·=§Gf´KT×ÝJÃxWÛz’uò8/{‹k L²¯[l¨$çˆ! ï›á2ò×!iÝŸjJ™N1)•Èñ°±Î•ÓƒlnôPšlÍŠÓëÉ Ú°ð뫱nü75ÁØ¡h]/“ÃHîwþ"8%T–U÷q +js{ãñ‹†˜v7á ­dO (|·KÞ°hW_fVúJÓð/žA/=ƒôpµõ¼m< åKx€ñÎÆ–ñØ,Bxòvq=…Šî]¸yÇÿŒb +n }ÀQå?hð^˜ßÔëzUí W Ž5ƒoÃO8ª ¼p#’Ø!¿ÈŽkó!Š\f!hÂW¤°®Ë&ì)=Vñ&ù;î9Q9á B(å{«âÀP/82.Œ„# œ”SU©}ZaiÍ3b‡XÊznÇ·J¨ç‘)Ò:)“D‚F.Uu“vö*×Ôì+MÄu¼Û-?.wËÍbÙ“¬ ßaO‘Jím´Ø7MÝ%@¨5”Âñb DR²ÝÔo¼à7]zÙFàDZûƒÔê¯ðä ’N[Õ«8³Ù{îÂ]GîRÈnÂ;[ÁÃzƒž»oã\¿ˆ÷”‰(žŸ_Ç÷ÖÕí¦n÷>Õ†Øs»T‚(mcªñÙ‰Oý²šQRabó>Ú¦ã´P °”4ã{÷ÈÅï…q$þB.ýäSÒª›_ªÇA¨¦0ÒÔ¨í1D[M´ÑGSìª'Ú·(Uµ›GìÅì¡a«P*,S$©õ¨‚í]…Ï>E(ÀŸ“áwå§WM¼õšð5pµŽ!wþºº Z FR«`°8ªû$nœU1ÿdß iX~ÓÙzIîƒïIF±!ã% ©Û_ó(\Ê2AdïQãò€:"hé;—LÄ^¢°îh²\)À¿ëõ¼v¤©—j¢µåÓâzVõïÉLD­ÃE€ïA¾n“ŒOw>Áo»É)¤b:ÄA_ZÁïíÞWN#_:Þà·+ãpþ&KûbðëÕVT»¦Hì¿Cû/0KÜ…Ñî½…ÐM…˪Laû*øæ)˜À¼zXuÂôEµ ©Ìð/b&øà¶i ¦°Òž¶ í<²ût%0«#ÓUT𸽠£U¿ø€-äC?ÙÞ§*¸Û—hÚ5/s #\±SBº¢ þT%Åo·æ +L…ÁÑ• +š…Rgñ»=¸®nnâùŠ ¤¨†Í +@γîè Í©î|¥é÷X# 5¡.éx±Ýw ]BHÒ}CwQ(3µ=ÄPƒMõ}A¹ØÞ×¾(]ý¶¨V«/a$a^w €7^G"F^ûìU™š{«ÐÅ ‹qáUéËP_¸ +‘9°kgÕ +5 Ê5¹b7Â)"x±¥‘¾6§ùÃÿ¥ +ãWendstream +endobj +1344 0 obj << +/Type /Page +/Contents 1345 0 R +/Resources 1343 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1342 0 R +/Annots [ 1347 0 R 1348 0 R ] +>> endobj +1347 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [159.99 216.787 166.964 225.2] +/Subtype /Link +/A << /S /GoTo /D (cite.HAC) >> +>> endobj +1348 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [352.63 216.787 359.604 225.2] +/Subtype /Link +/A << /S /GoTo /D (cite.TAOCPV2) >> +>> endobj +1346 0 obj << +/D [1344 0 R /XYZ 91.925 602.788 null] +>> endobj +813 0 obj << +/D [1344 0 R /XYZ 245.541 304.694 null] +>> endobj +1343 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F64 1214 0 R /F23 1211 0 R /F48 601 0 R /F11 674 0 R /F14 1012 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1351 0 obj << +/Length 2839 +/Filter /FlateDecode +>> +stream +xÚ­YëÛÆÿ~…ú)¼À¢¹/>ÚØÀ%®S§¨ÓÆE<‰’ØH¤JR>Ûðßy-ïÒ †áã>fgfw~óØ•ZDðO-bFÆ.âH‡Iš.V‡«h±…™o¯”P,…d9¢ùúöêéKgY˜Åfq»9gs»þ)p¡¯—I’7/^¼º}õýëë¥1&¸yý6xs­‚¿¾½^ªà‡›kßÑ/·ß=}™¬aM˜Øt!® \ýù¶×ÏF1Ì»G·ài.ö0’“$a–¤ —Ø0Õ1 »Ý×K«ã E%O ï]×Àß|…ý®„f]1ž¾^Âê#v]ÐíòŽ'î`< ŠmYµ<àW´]\dI(Þá1ÐpÅÃ%-‚õ-THЕùDï?0£n¢e~^ÞâI-–ʆ™ó)fÎѾº,2“¤A¾†öºì7cÀ`£Í˜4Þðp¾ßÖ¸ý²Ûx¤=7†ŽðôÔÂÅ:L…çüŸ«Ÿ~‰k0ÊwWQh²tqí(TY¶8\é0K3éí¯Þ\ýc0šçµ1;7šŽ’0ÄáæÇ ¥´5Xÿ³(%¼UJöÁÆZñ1ó©‘ßCŸ`T;9̲ÚîáÙDR¶¥7M{ºƒñ®ÉWŒÅ¶4ÈÓbhð©-Pf +4à-_ƒGÆ‘ ^×>“&  ÔÜ ƒ§±Ÿ$TjØ ràE‘—ü9RîÂk³ÐÅžàݵ86eŽªï½àšeïi3^ Ì®ò‘ö‡Ž\Äàä- 0D™ ù¾ŽàèÁ¯U}Ï.D§¢3šx‚p àyq8©ôƒH§X|¾‡»1ýv‚U. H +úM·++ê GL]zi*'ž|lÁN%ÁÕš ÆÞ"À"oûÈsà`aÇ3#JŒ3HÚad¸Ç?õ‚Q{¼óUÝóÙ‡QH&Š 3[²‘šBš¤ KWdPÚú”Ç—+^&´Ø<ùe„C%T¶Ü¹/÷{|Z­ˆoxT§ý^óJT2‚%˜d¼»uÑ– I‚<ƒúpÚ $Ê™0øg!¢D4HÈÇ}ñG{f]õ›Fç-„rlW:.ŽT¤9É"†Tb £1Ø@¡ØÐf,U_À+ ÁßÅ¡†¶Ñ[ È'Ëþ®÷»¢™ñeBø‹så4´I&Ͼi`Q7À€÷‚¡Áñˆ¡a˜étÊPÃŽÙNKÑÓÚ©ÃÞ²£mÞvÜlËmU ¤9 9 döŽò·f©6”¿8ìò\ÎÌ`ˆ9†{ì}*oÖ-sÜÒ>vFcÙ¬yx"wW’4pøÏ’&cÜr˜–A*ñ'èX’†ß¤r#½ý£óAƒè$h æVÓfj~uøÍͣ˸öh>ð lãá/Êø½a{—·~K…b(Z̤ZÊýywÅzÆcÊNp«]þ|Ta_ …ºd†Q2k­æ¤Ö'§(R3n ´ ù—}п²Ô- +Ad†#kŽÖ¯žpxþ'% +Üfâ±]6R¸l¡MYØ=X L…4üûT¤¸ë&Â/å¬ÏCkÛG!ã¬ÏkœPmL¡elǦhOûNÊ‘kB 6åL'6¤žÏ«š97ÜÅì¥KtðªâÕÝÎç”kƒ1 :Ëú´ÝyÊb̊Ƽñàh؃9l’§C"9ÒAómNEŒäÄÏ‘{ô³=èƒÌÔ +j +\FN‚šú<~q&6¦®8+³"©Ü7.B1”i±sãP¼´¾ºŠV¡J­ +ŽT4Ê7$µ0a¬ÜÃyÂ…J **6oÂÔq\*ä’V¹à£úvPnø›ó„7Œ¬koµ~ßOV+ã†)ÿ}j¥C³‰}ÅÙcxzJË,…2}špàXu™ý2uA¶ +Áh&ý/ûXö‹C«Q-ùE‡Ðµ#ß·V¾}ꂪÅjü냹Ÿí# +´§X´‚Å ‘óp„ѾÀy0Ñ95Ô‚ãÜîyïËáìø²' E…2“GL^G™… +*ìñÆ[™Úð·WÚR³ž]ë0f’Ð:ó]ë<¯åˆÙùµNá ÊzyTqÒ®ÈZ^ç\:y#Ú#Ük<æDÇñVý¥Wq,ÆÃÍ÷<„„²—ˆÀâ;\ÅáùÌ!L¤©›À¸w:K,pê‹ ªuTÀ±Ÿ¹î%wCƒÜø™~ƒØA¯F¾=u±ÆÚ›¦$•GF—[ý(Uˆ"WÎQÂì‚Ü•"‹¯¢®8«ï£ó‚±y?î?òÎ2ºåÀ ªUoK ¨BFpÝtÜkJ®8ª†í3×â¦N.jéiqbLòÕéˆbùG~Žiý+MËzøœ˜¨@jŒíU9\쀅øöO|bàÀ96éü \3¥6ÆøÓçfez¸£Ú·eºá"¸ãøL…„<¹!¤»þÒ/7YH }¸r².(Ì™fïõ•8“aÔ8uÜæ, ”ÇbÞÖÕ .6µd H±eŸj©‚å+ß¡h9_çGŠµM1ÎÊ÷\Â3‰·Æƒ”¿H™ÓU¸ºRØ‘·}¢=¶Rn©‡¯¨¯6—0ËB›zÝÍÔ|JûôBEºN ü:ðòý~ôä€ã‡b?ÅœuÁ ØÑ«Œ›(t™ŸÏ$H,¢ ˆèb@òû'Oìeüé_Q(ȤÞáW½&Òž„hGÍÈ-wd1¤“(Ô±š$ |Íôe=â +üP†¼EIŽÅ;*vÍPa"±Ö0·'ˆl)‘Ñ#Û‘AyyËVq[ûà±epl~¶Äal¼d…ýåfuÁÆBÚõÆ—§¾7}]d%UÄ_+o¬ÚS3$oí@¤È‹x@™ ]£âHß³»¾å5¤Çû–³º¡»Ì%”” µÕn&¨ägs¹Ôbiãɽ^0¶.„mÉÊCþþ2Æfay sý…u>‹À(ë½7§0ÞÑ4e¥ÁÔyŸ¾t >lÄ1•”*uà¥[Cs©ð²ä×O&Žbå„ñVû#d\ nÕyµEª]˜,Ùÿ¥ÔIb7_ê£åˆÿ˜3V(‚ë@(K Ûi)SFPÛéXó.¹Uïק¶¥š¢õê••oåT¾ýiV1=MeÔooøMY­ÅÜåGoÓy;h+k¥âî–Ïñ‡¥y5œ_qw¼(lÑ,hur¦{Y•]8ôÜôˆò©?ÞÍÕò9?õŠG¾ò‡úÞ{jVeT˜Fö»zŠ©ä ïfÉT2þoüq?ëa·m¼’z½™ß£Q+þ± ÿ «þö÷·ßÿõæ_ó*k…Q¢ƒ¢PLT6^ìé\»SSõg*Öïendstream +endobj +1350 0 obj << +/Type /Page +/Contents 1351 0 R +/Resources 1349 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1342 0 R +>> endobj +1352 0 obj << +/D [1350 0 R /XYZ 63.034 602.788 null] +>> endobj +1349 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F11 674 0 R /F45 589 0 R /F7 586 0 R /F14 1012 0 R /F10 1027 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1355 0 obj << +/Length 997 +/Filter /FlateDecode +>> +stream +xÚ½WQoÛ6~ϯðÓ ;•,J")¡[;k×lHQ$ÊSV²,ËlÓäxé¯)-Qf´† |¼ûxwü¾£F¾øC£yI€GÄ<Ç£|{áJ±òÇ\ÜžÏ<½˜~ŒG‰—p”®†(éòÑÁñøkúçô#Ž:7DC#"`¥Çõ§Ù—ôÃ9wc7 #{c—RêÌÇ.rf÷báæZ­ÌînÒO·Ò5½‘‹×úâCzÊ1 +±GBòfÚç¬b‘!é‚iäÅiÓôÃpì$Àß,u1v±xÿM=r÷J˜–ïeBbù^‚ˆ‹ œŒÀmö=[­š™t©†Ô#â³êå +Ö{¥¸à`QÑQB±S%«›¢‚löOKV²F}:¼“OâLší>{§lò}Ñ{ÏíÙÇVx¶dfJlÖȬéDg–ÕêuŹ—õžKjˆ­Š +¼&S7\¸²:ãL2÷j¹·f]̈Y¼v1ù4¯ÅDV+t¢. æ<«ªõÚpõüVTŽoj#v0ròíùhºœþ·}6ŒTg«¿£Øî½Jƒ]^Š tN`D/ƒáuk3'Á±ˆ]7ÒGöÕÈhv2¸ê1l©a¬$Ñ›$°ÉäìôZU\^X‰/¹1°¬]ž—¢Ef]&iº£^hÊó•jqÛÛFAëç;€ø™70¾š5‘ÔÙsQ+˜}Q‰s'W‚vÐÏÏ¿Ã~Â#k{ÍvyaÝ74÷e+<+eÉõæ<Ïz\@yG¶Ù€¶+¾ÏÊLgŸi{³Ë1È@®Ø2‹ÌÌnïçâÖAâHœYm$YõaÓ«a5—Ø´^³•l\ìø¡\›©”Z­§lUléaž••˜EgŒŽ^]u2•ÿr°·ÜcRªPÚĽ{÷4¿IOÔUu}+øª Ö7B+Ý>¥À ;µ©Õ:”ìõ¦Èª32¬*¾íú ybCžZt¿@?n¿<ÝÎîÿ²&HüóAQϧz•–9†\ ²ÂƒQ½ãG¨“ï¡Ì5+×úf<¶—Vµ¬BÙ½À][x¥g®ÍEß…[^½Ë°Ö\Óê¿í$¡mÂÛGºüʢ쯎ô‹ïOä­‘fÑwô‡Þെ¿k‚Û'5!V+ý¹Iý±Iü# +g² ÿ“‰õËõÿ+…ƒ¼(úQ…Óàg®B+|4PxÞUÚ`¶àÏ…ªµûò/û®nM¥þB+ëEO‹F«ûÖÊŠw½+©éÁwG§šØÿI¿dì…AbûAF¡G‘üÔ[üJRÄendstream +endobj +1354 0 obj << +/Type /Page +/Contents 1355 0 R +/Resources 1353 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1342 0 R +>> endobj +1356 0 obj << +/D [1354 0 R /XYZ 91.925 602.788 null] +>> endobj +1353 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1359 0 obj << +/Length 2705 +/Filter /FlateDecode +>> +stream +xÚ¥Yëã¶ÿî¿Âè—ʽXER¢¶À¦×¤—¦—6Ù~(’ ÐZZ[ˆdù$ûö6}çE=,ïE±ÀŠá3œÇohµŽàO­FÚ¬“(SçÖ»f­÷0óõJ ÅVH¶š/ïWŸeÍ: ³D¯ï¯ÙÜ?6ŒÃÍ6MÓàîíÛw÷ï¾{¿Ùj­ƒ»÷o±a‚6*ø÷—÷›­ +¾¿ÛÄ.ø ý|ÿÍç_¹‘5¬ Sãà,Ä5C‚Õ_ï‡ó™(yûªžf)ƒ[;Ø(™È`áë’”v‹R gMR<¶ÝfkcüÙ¨âæŸø³ÛþùÒ—ÅÜ“¹?ò§­‹ +Ø—~úÍà XJ›»ÇJ….öb> +Áäx[O±UQ˜ÁR>`²ÙšÿáÜœvoÞÌN}l€å|IºÜݤa”jÙ|cs!˜3rKF: ë^a$sFÙ­sºh³£9ý²«óæ4^ÀuxS8§dQWž/Ý‘—ü㟿|÷÷»ÿÌ8Y߸ Ææ5mÁ|g½0]eÂÌ€çÄQh#CdßVG0û™FAlð°Y nÄ–¿'œG*t@Æ×ðÄù K+>Vgø_å5Ïò®€þWµÄ (…oOcÈêLûï™Iû(\ah`Œó§ ’öà¿&ÖÁ»#“ue^Öà©Ï¤É­— 3³–ä;H<Ò„RU$¡ÎRQiC§_¨ Ô”ªLhP'K..LTì¹äŸ–,â0Nü676 ò®Ê`»º%ÄÖÁ€\´[¶~ÆN€pÐËIW12ÿÒBT¯JÔgËÍÇó_Qi¥LF6}{éü••¬Ó4 ³ÌÎtºC^n®CGAÉG¬ÊŽûç–¿r<ØÍc/Ù»}7 +×(¶ƒ„l]-Œ׳g3Šo4ÿDÆÒT¿åçª=2IÅ‚âüLfœ{"c<Œ›1±÷8”&á‹­÷d‰ÕùР3:ñÄÜ` ¯>“v̉Ã߶湙T¿•<êUŒmÎûRØb_UlTh¼Õ-,ÊN ê³åâ$Œœw‹Åih³äUƒÎBzƒÞÝXŸh?Û•¤o d2gÿ£ØÙ£3pñdGq‡¶Úª8T†ƒÝ=Y@C U¦ó7xæ±þ‚nrîò\x ÙòÀ¨Ë=Úz‡Ðõ òÙ="S“ð—n¤k/ûS&Ú§ŠJÿr]ÈŠCQÛ=óº‡1n_Œ9djÇâúî“…H8_shD‘´¶Þ¤‘ºütèÓ̦d‚>oØ;©—÷ü¥]ò3w7\Ç O\dçó½AaÉô]p7w+WÝäÇ ô.£Å¯ñÊjö{ƒ#v%7«ž)?J¿9QÈÃUMÉ~îýØÄAÇìúVȽؾôÕqï7{Î?)mräóôëÓ&–`XüîÆábNk%n‡HQ²Á/MîEÒ‘‰âq?hïX`Üå™G0ﳃ›¤XªÔŠôåÆŠ)EhҲɳŒ ‡ `®#1™xžw΋Š¢`{Ä‹‡I8‚‡$Ý'o§™“hÈ™©¸®®cßÝ cï õÝ¢£Õî€Ó÷q°÷.T=ž=™ÏÑWÑ&µaù€„°!òðf¢À6©U-ù@TŽ¡dÁ" U¢&ÚåcØúûŠâV{ìYŽ!®IÝî«]^“:_+8=¨YFñ,§Ô’1”%†5‚{ìOR,ì„© ‰lð@¾ ÷î´›‡!˜¤±A¾Jç.;ïA‰2a’Œi÷4.ÕÐ-˜rÁv9Ô ÌDäiòŠdŒt2²º[!gn-Þ¯û@µA ¥Ì ×f!9ý¿ÜÛïáXÀ¤¨Î¼ÁSU£=rçÃFBF¶ ßö('Ì1ÆÖÀáœ?s''zÎ04á3 .¤ôÑLvÂÙ‡™C‘MIöK°fœg‰ûƒ¿4MÍ€×_…$‹Âä‡ ®é†ŒfÐz0’gò@WÖ`|õ3¯Üaˆ<”ù‰»íÔ‚0Wy^¢üDËàhêóËÇ3K†‡rÌq¬Ò”æ«17ÃŽcžÀt=Æ; +'‹gžêÇHb|„á¦íÏBPW Ð.çÜÂ3ìQ²°•|>„öè¥Ká^à%#×í'{âßÜÔ ‘K]ƒíÝA[à V´îˆÍ(óqÚÔQŠ—èäq¶ä%a€¶,vզ̅›âh©ðX‹ÉC¦a[ê~í¹ëi¼·ËÌ®m"ðY§šœ-Ž„ŸBiä¨XîzÀÍœ?t'䟥ŒÓHiN¤ÍöxÅÓýo†ÚF òÚˆ;ß=ÞÈEQ+û"ìv¡Ó¾<겇 Ôy·çH⤾ÚÉHÐ0Š’i¡ol Å»ÊÌ[˜Ý™±å]¦H¸Ö¼E=¸¡I »Q\ + ?¹†(Ú)â(¥ç^¢ù{¦dÔm,X"fÆ󽵉gv•ÆË'Zmæ©W3@D:&+ÔUÕ•ROùë`=-Iòâ4ŪÁ‡´z¤¨KÉ7ܸ„” ñZª”µ“r¼ç¡C>ÅþDÐ!Ë‘-8ÄœémåVÌ««þ0B:ÒìMð-!ÈkB cÈÐLd¸žÛ˜˜‹˜A\šÀ»Ò³ž•Z80ŠÿfìA QŒXf¸¶fiðäeAÑÝ ¨a)àxJ• Be8Qõ竦ÉÑÛáTã‘T:ÁS*™à)è<‘=`ë*¿/YõÌkÒ@Q̤FÒ ÷ +èR(¨Tÿú€°x‰”³ãÓʼ¾ ÌRRàä×–;–ìPQLÖuLÁ-Ñd§aÈ8µcl'üCÅ3kÓ©0{jóÆ B]ÊO[Α†áÓDÕ€&a˜\¨K<¦P'y¦<¾fèàä¡P_å9y§°J+w¡1?ç&ÏÏC’‚¬}’5 ®¡)½5–ÈÈÞ*‚;229–`Ö©÷ɯ€_@¹·~LÔjK“Éÿ‘[!½endstream +endobj +1358 0 obj << +/Type /Page +/Contents 1359 0 R +/Resources 1357 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1342 0 R +>> endobj +1360 0 obj << +/D [1358 0 R /XYZ 63.034 602.788 null] +>> endobj +230 0 obj << +/D [1358 0 R /XYZ 63.034 234.807 null] +>> endobj +1357 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R /F11 674 0 R /F45 589 0 R /F47 596 0 R /F48 601 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1363 0 obj << +/Length 3043 +/Filter /FlateDecode +>> +stream +xÚ½ZKs#·¾ëWðHU<0Þ­ä°vyíµË±cë’¬}‘”42‡ÜµóëÓf0œ!µ±—F£ÑøúIŠ‡?1 ‚if–K漟-6W|v+_^‰DQ%’ª ùìæêÓ7~X°jvswÊåfùnnùõÏ7_úÆèžL8ÅŒ°À)>ÿêõ÷7_\‹ùוRznØu圛v]‰ùëaáíç´òú‡·7_}‹¤7oqñsd}õÅM'£V†Ye/^CiÅœ€˜\w’y­ +ÀÁÈ’â”R³àå èÜ è~½z÷3Ÿ-îë+ÎTð³0æL„0Û\ ï™À;ÇÏ뫯þÑË$l`NªYe¼†SªÎ073Î2.EÔÛëõýnºhÒ±.èµcë¤âÍ㩦¤æLÂzfø¤üŠi妥ϼª‚Y¿”G‚Ú­ƒÔË% ^ÞÓ3 GÜl|¯Ê[&á,P3&R½Ý>#FÒ1lǨÒZÏo>\K7ß!šÔ¤RÈ(gÆjÆ­}Z) Î)…xU³Ó7•†\»ãPÐf{-ýüÏÚÒ©½nF¤+Õ£{f¼Ë«Ûåä~åd¢¸Ð­’ñ¡r¿;¦´«,³Bh÷aEvÚ6÷[¸Á +mtIÊ®—0±lðbÍn;-8¦­Oü£ãã.ƒâoã…?©'vëÌú/GÃàD)¥1él Ç0Ùnã–öż@ÏîŒ@ps…IûÍÝøjR0ųÞêWˆªæÄÌ·c{QP©ãÛWmÜ—æe?D{xÈXØ +;ÜÆ ÞÖ†à‡ƒÓè¿xÕ"Œ‡ =8«üà?qÍ'øwW§ðjNe”OÉ8«Äp”ª’ÎÏ™`d˜nˆæ’‘aÒæ‡øe°–†h×ÓhŸ8ôÒ™áíx7Zƒ9{4(À÷74IïÚnƒy—ƒR;r¿à÷Ë,ȉIQ6é~¯ª`F1©FZi‚ë<*½/í^F¬Äë²XØ bM†J Öm{} ²)! R X™œD4ÃuŒ.U4Jt×½=B9qÿ¬1mç^JC3Lx}LÿŽË݆•±ö×ñî?zâð3H¶‘ì/û¯¨ºi”C>¤/ä^Šsæ‡-D[} 2¯ª`6” ˆÖ™&:¨ ¹ ú+m_F®Äë²\ ÍÅ@®M}?•:®Æ@7Þ Å#¼ÚŒ×©ø!Á’þ?Ñã‰HXY€±=5ÆÉøQÊøRÑãIàWRJàÇ9¦ø¹X.ýÁhTÒù`ΆÏz¦ 0r♾—xU³IßËûóÎD„€µÅËE¬.Ê„6`¢ª=ŽSUaCɱ™(0Àë‚’|ÙD@w>È?׺žÊÍ&­KþYÖõ¤5|¤uÉ?špUS:Qx@•BýñiGP૱3¡ +ê8“oþí÷#¤+ϬÍ¡,7Ï„zâUÌÆö§(ÄvÆô›××ÎÍÿ9.BÁ:WþláÆ<¯@ƒ¢ËB¶Xañ¥'{KËXŒ~Î2-ÍdG$™%ÓÜÇWJÖg˜zEO;<±f~ØP¾1´áé ¨8ò÷,2¯Kò+ð2‚/@ÅýH2‡˜d#…!&¤D³8¾ÔvTNCï'›K‚ÛXG*@×!µÇÿ©EM•¨¥šoðÓH‘’ 6”y<§#–yU³±ÐPüZ¨¸K¡!ÍgãjÚ‚ûÏNåæ¡iѹúy]öÿâÌ#º-ré¸p—ãmÓ–CìÐÀ;4«eâ3lÍĹÝþwóv£RÓŒ‚ItXè0%¾‡U¢·úY˜L¬ª‚×Ȥx€\3tÇ•}4¬rþþÚØy½oê[¸ãzCxIÏ%ö¬Ðî´ +§¥ÿ[Jïq¸Ï™ÿ]ìûZ@@ ¡˜‰¤ÅkÒqòø †÷5é2Né©PÝ(àîÜ¥M‘=æ”ðZû¤uð'MÏwâg ‡À©ñÿ;™&Úf»@¡¸*J—ßií–Ž…yÚ‹·X§µÇ(¾õ{¼ÇrEÓÇíI;/nLPÛׇ&2É:µFP©êÿBšÜØ„Ç-osWãÊE‘·ÊS7÷ñ%ñvû8®÷K"»E·yÀqñ0íaß,«%Mƒ2Š‡Š3GDÁa_/¢è‘Q\¯Ó‡N)HýˆbÁ+±øˆÇÅ*ÏãÔ®m(ø{k5¸ã= å\ÚhÚ˜¦©0Ï9 šã b®i¼n²r-ÍÔ˜­­iÍT…îq®ƒORQdyÛ¼z»Nôøaû˜4‰¤QF ¿Ú+Þ8 +°]a“&ÚÝ>ê;J’ýD¾dÿÆíÃ.Y@'r¹¶¨oÅéýjED-‰½Zd©âB/’˜5¥¬-}ìJ’øh{øÿ–XЇ‡é–ëÕ³$rÏ:ôøÉS¤_ôOŸèHå>«|üäÇÎâ#$7Û›Lö"¥V­"UY{X=Ò’›OpbÁ”’æIÿV¤L—æ"v`@>?zìGË||TÇ€RuÎû‰flš äÕù‘>á¿<è9™$Wûè=öCUº_0`ˆ›GDnƒO vQ< +:+¨Y?Íc4­‘€"ê=ô. ç†þg;ðVKpK·dÃãë$ôÊŒ ²-ʼâ…Ök‚iKWZ•äÅnXÊ!0œÄáŠâMÝGQüÒcAÌÁÔk¼üïÄ“¼X: Ž*}hVäD–N"ß×Âá(BVô¡?ô¨æ>0/s¦ýù(ÉÀs!‚–ìÚUÒŽ6ÅŽ.îö«Á™q< +¸ñ4ÁÀ9ÄM<¡óÆUî^BÆ.†Õ*9jm|ŠÑr“kØ“,›t vÉ¡ü!§z;ï¢#ßÐÞ,2Ž—žÁçì×t¸™€Cò&-ZÊA½lôLrÃBÏKįª`6JĽ`F«î¼3½Æ«Î¿ŒT‰×E©‚‡¡H…½kRã6× Ø¸„šk¥2BœJ r0 +j&͸zÞ÷±‰UUðýz!0 &)Τ¶VöEdʼ. Å(”6f  8l p¤°asfï¦$ã‡pñ2'^%Ž?‰¼X×›G’íðØåd½‹‡¥- þÀÜvßÃýèž½³Áq—‡' +q@MuSýÖå€mW ¹è-šû&çePjðX¨–¤üÍ„^¡.sÞÆ:Žûç™VæUÌFzEÏèLw^©X9*1&4èü8mÊ”4P€wmÞé¡·¹1G©Â)&¤>ÛKRTbýÇëëByô¥­ +0/>TØ¿¾ÿîÇq nÖý.âÃÃj›5LµŠ?× òcÛG»‘ÆLñmê2¦ƒÍ!¹?Ð&=x‘iíŽÛ.e‡âsUs¯–æÿs¿;›(¼¹ö:%fiçoˆÌUðÃ'XŠ™”æ’UHœhÓIlm¶÷ß¿lÌè®ûÆ'Z¹Ž9.ü,ÛÙßeàw¿ÛïLt»?`Õ%ÕQÌ +S®‚œ +‹Î1+\ÂìžÙ5K¼ª‚Ù8XsfŠ‰$‡EÊ•…§»ýNw(J xÏNÜ°P’ŒOV$É2'²¨ä.yuEzøû÷XÎÁ†.é‹´Svð§"ö‚¡ ¦8F­! >ÓΉUÕóš0sÍf D‚2ýý‹/ÇÆèÁàz#o(í¦[Æ„|w\/I±â‡qì{ô€y;ÌYjØâeÑ~8®Qu^àcŒÛùžy#G6ã‡&“AÏƇùW±+…LUB.’>¡²'µ|Pz\/ɇGAâÃâL¼Œ•4¦Äí!ï+¿åö¢Ç—eM;üeÐåì>á0ê P>üZ6öÖ?“´Ç¥XÆaNÞõhHÞ_½`H¢8æõí=m‹ézà½8Xœú¾RPÀœœžç¯ª`6rŠÇoC3IàTJV^YlÈɶ{šS_rrEÇvÎó]y¹ø_c©ÿ´endstream +endobj +1362 0 obj << +/Type /Page +/Contents 1363 0 R +/Resources 1361 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1342 0 R +/Annots [ 1365 0 R 1366 0 R 1367 0 R ] +>> endobj +1365 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [93.696 316.143 100.67 324.555] +/Subtype /Link +/A << /S /GoTo /D (cite.TAOCPV2) >> +>> endobj +1366 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [121.113 316.143 128.087 324.555] +/Subtype /Link +/A << /S /GoTo /D (cite.HAC) >> +>> endobj +1367 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [137.372 276.564 152.095 287.413] +/Subtype /Link +/A << /S /GoTo /D (figure.5.4) >> +>> endobj +1364 0 obj << +/D [1362 0 R /XYZ 91.925 602.788 null] +>> endobj +814 0 obj << +/D [1362 0 R /XYZ 248.773 388.381 null] +>> endobj +1361 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F48 601 0 R /F11 674 0 R /F14 1012 0 R /F45 589 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1370 0 obj << +/Length 2176 +/Filter /FlateDecode +>> +stream +xÚí[]Û6}Ÿ_áG¹­~´H´Ù-vÓnã>,Ú"°g4/<ö¬åi°ÿ¾W)ÑE>ØED//Ͻ÷Rh2Ãð‡Ì$C˜ñ™Ä)­g·7x¶†–ïnˆµ(­IéÙ|³¸yõNð™AF²Ùâ>t³¸ûµˆ¢y©”*Þ¼}ûýâûßÏKÆXñæýÛæ‚æ¤øå›Å¼$ÅÏoæT߶F¿/~xõN®¡R\–Æ«$ÁÍß=>Ž%´‹ä.H¼#h(%GKß 4 œq$pëè?7¿þŽgw`÷à FÌèÙ'¸Æˆ3{¼aœ"†ÝýöæÃÍ?‡!»‡%ÁÈ3é«5Âà«»²Ö+ _29+…bˆ32HÍ4°(Û¤ › dÓRùa³ÞA$Œ(ö‰ûŽx‰‡>L )©%~òNˆD„‰™7ê_Ÿ‚s–œ¡1BÿÂ$ˆÄj4 ©Â$Ó$¬³ñ$Œ7 hÓJŸLâßcØ a|êO½p¤µ‹L¤·@ĵ~=îl¢jº3 -}¾N;3d¸ñ;ûtRBnÓ,ÎY2'(Qàâ„Í_võf É°k”¥ºë²ãǧFtŠê°$éõÁcär}ÈóÚ7 Tƒr’¤>0‚¨6çõap•CÀz}8‡ÌéCd½>„Èb[Ybë× ®¨4x¸®Rr02HC‚‘^¬Ô1²~)Hðå¾&úÈÎ|MÌnXpÑõÀ—瓉~28¿L~5ÈBÊ°$Hq_ |R.þjæ•¿Cra*¹U[ÂÅù­âà*‡D„Àb[EÙôV1 ¬^R°œ>x°ÎéCpƒ>à¢úà»V}ÈAÊ  Rz}ðH¹\²Ą̀°çÅP%UHs=9J$FZj`…‘6W+Þ VgãLRÞmÖÏÀÈ¡êÅÂþëËyÉ9/ÞÜÝÁóM{J­múnŸ7Íê;7ûíÃòwÇQ´áÝÝ™d„¶ÉY­@¥€#¦’§}95Hj›5ᘀ²°v:£z„ò’ô6gÃ@‘Ñ&.ÒÖUéù +)Œ„8ôø"ÒÍá]‘‘u•B¤2Š@ZÞ5g->µgû „Ûmâû}ÐÛö¼bWâÄ?[M5b¤þô¡|œÆàÎåqßý»š—TUë{ÿh3#«4ÞÄÒpx§iRÃÀ»³IÚ€¬Æ¢FT{а±I\!‹Õ¨®F|Æ4¤£º„n%EœîÖO98¯ ˲+B`ËZ™s•ÄQ¨$jã aAgLQ$4O?/­iéÙv#koÍèÊÓ™´IAd3(øp{î©‚´J¯>›—‚Šâa³~讶ÕÕ¶»ØVŽš»ß°ÀËݤ¤TÝ=¬7ë] -¤»ýìUt4mGÛìŽÝãÓǶ(œ_¸ïÛ,¢å½©m’®i5jê{ݶXbÌx¥QîVY{‚Üç³´£N¾1…:£’ÚÉ´WµÃZ;d‡ªþ*†‚F±Qj¹h¬«ã@owµ¿·sßm 6»§çcÝÏžQî)ëAv¦¯-½å×ó8Jîú¬Nú¬R}Dô© f樹>~ÚÛ -몶Ìíövê÷ûçfR‡TbQåbq?äR?Ñ×.(.'‚·c̆óî±è[ƒÓu³“ñ +gˆÇÓ¾†jùÃNnÛ»Séëå`31) ÑWÊñ¡ÚX·Ëõns|¾ëyëtþ鿽e˜@Á`6›¶ƒÝv±=‰w½Œ†šÛ²üÔþcX×®0\]´åwJ#¿8PH +÷ûŸõ8B1â–Çj[W‘ +‡²TŒ›ý6`¿«NCüEÀ2ĸ:tµ» ÂŒÔÏ«ãay{ ݺq?m\›0»öõ¡Z«0#lùöI "À0ÕINß²­êº®â†DpÑ.Îò`Ð`ŬN"‘SHÆꥦ¥$hSƒ’8”Åá‹ $ô-ü‘¤Ö=§5ÿh°üôñï‹ É1Í»oRs¬Å)2®èD‘®âõdlŸh‘B óqŹô‹´™ÈW£½}·Á0±îû~¸Mq?·Ã~ãŸn°íendstream +endobj +1369 0 obj << +/Type /Page +/Contents 1370 0 R +/Resources 1368 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1372 0 R +>> endobj +1371 0 obj << +/D [1369 0 R /XYZ 63.034 602.788 null] +>> endobj +815 0 obj << +/D [1369 0 R /XYZ 212.231 443.574 null] +>> endobj +1368 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F56 1170 0 R /F14 1012 0 R /F58 1173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1375 0 obj << +/Length 1191 +/Filter /FlateDecode +>> +stream +xÚ•V[›F~÷¯à¤0a˜†QÕJ›UÒMš¨é®ûP%Q„1ö¢`Ø^7ÿ¾ç2¬±½TY2Ì9ßœû$ð““Â¥&È’TØ<ÊÝ" ¶Àùu!="öx†yµ\¼|“N¸LË͹”åúS˜¥Ñ—å»—oŒ>¤UÂÈ Ä"âúæêãòu$ÃÛ(VJ‡FD±µ6|Å2¼ºÆÛkæ\ݾ]Þ|@èò-2¯QôâõòÉF­ŒÈTöC7&Ì…&r°0›9b¬yš‘™‰N¼'îˆÓV$VyG¶ž?—#”4ž]5Cu)!…P(ë!›K ±uv™ÙÅÚ¦&,ã_†zÛF±ÃÏüŠŸP ˆ<½“ú;}5œâ¿î¾ûŸ>'&)^à{®^0­¢|^¨úÿ1‰=àT¾¤¬Èàüß‚<àT‰â4#7Ç}ï#.?o~öLBr‘jý­p*È2pÖ R G0Ζ÷²NáÛ÷PÅ%±'•؇kÜ»kš.Úa`Ú8]/šm‡÷ëñþwþFQ#­ùŽG/»é äð ŒïQ®Bh-¹£!»nù­E…c±jªã™î(pñ“;ІÝA/JÀèÄÎÍ×Ië5ÙWw-êŸä^Ø@ùÅ–5!±ÛQO)gÍ¥ÐS§ô¤*ù"ì¹éT4u‹ñ'W¶UÏò#6öu±Âˆyå‡ûšr’Úð~nôÌÖjííë|Pœƹ“¨<^SŠMÒífd9¨|*‘°o'Ù¨|Û’>€ƒ6¬ú‚bH #ê¢? [E1Æa©UøgÛ €oȨŠç–¥QxrÅõã‹Z\›|BL=rtçWÿ< _u9…r$QÀ)1$÷åõÅdëE¬«h×3¥ëÿ¶œb£„¥ñ{ ÉÍ4‡ÑصÃXø2#õÌe“ õ4Á>|<_W2ƒf¬­D¨Œ6Ñß‹O_’` kë݈.𞨴`·PBã® S³¸[üq\k“¬x&ŒÖÚÜi¥Ò>)D³~ÿí*r&üë"_J‘Çl¼@w5|éVCÕsmp“#±æ:ŸPŒj8+9¦L5 †}É‘*ò}Ð3¦B}ÛI%$ŒN +¯ç®å!+™‡õŸÖOL øAQKyÒTsÔ3 S7XSmyl:%]ˆ}Ö1ŸZµÃ1ª\x;U©/B€Îºgõ=ÉÇñC›IäaG½½ö¶Õ^Ë€ª?'2CHYW\TÂW• ¦ +Ü`‡¦Väþ ¾—d˜âŸ†›ÖÝ ÆÇ*Ì1eMø¾zŒ”dáx·_¡M=Mß_ëŽfÅyà$È…ÊÝ|{A3Õ[¬-̃G?p07ÄÄÏlZzßãÐû‚ãIWhwÕ¨ô~Ç(ò_»§åàý®‹fJ¨Î§Õçã_ìü©ðW§ŽÄwšâ`à|”q‰œ[ ƒ‘>ž|¬™T`¶×5‡¥õ´ãÂ݉ó.öߊ΋ç™ON¥a†H<͘ÿêÃendstream +endobj +1374 0 obj << +/Type /Page +/Contents 1375 0 R +/Resources 1373 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1372 0 R +>> endobj +1376 0 obj << +/D [1374 0 R /XYZ 91.925 602.788 null] +>> endobj +234 0 obj << +/D [1374 0 R /XYZ 91.925 402.534 null] +>> endobj +1373 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R /F11 674 0 R /F48 601 0 R /F47 596 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1379 0 obj << +/Length 3041 +/Filter /FlateDecode +>> +stream +xÚí\ÝoÛ8Ï_áG…¸üþ(pÝv[tÛî5Ù‡½nœÄM\$NÖvPÜ3$%Q-ûÖlÏ8 +Š<þ8œùÍp$›M(üc-r¢)'ÆÚÉÕýÜÀ'oÎX”¨¢H•ÈüxqöÃk%'Ž8-&Ÿûj.®?NádVc¦/^½z{ñöý»Y%„˜¾x÷ +/äô|Ʀ¿ýx1«ØôË·Ó—^èÓÅÏ?¼¶­jCŒ´€µjg?]4ø$Õð¹]‚ ƒÁË~.¡œO*g‰á.•èKJâ,›€œ åþ<ûø‰N®Aîç3J„³“¯pM snrÆ #†ªø÷ÝÙùÙ?ZLÎÉ̤RVÂÀƪÉÊU„29QF>æ×ÿâîæa †[nod2B⨌¦º웊iG˜ V¸w‚H€˜…_ëªe~)f8qJuV°yø—ƒmf†pé"t2\ZeÀ€y™×ˆRoWOÛ"nˆuºQTI)§_gÜL‚fìðœÒ¥%¡Z°±àn‡]¢®*Q6ØX—R6ó!Òå +C` ¶Ù„%»¶aŠÅ5ÍK¶DYSººÎŽ†G‰ËŒqç'µîû§mμBÍDϼ·‹Ò›åÍ +V°À˜¾ÖÞ<]Âíz~µ]>¬2Ð%VÔ>{5˜Ïjj·ø[f8/Ô]Ë0™o¨ãJéPA¸èX& (ÂN2u›ÁJZ¸.E­¶|€.N¹Åâ,?—Æ´¶Ýü9ºÖòvEMWCCq¸rµ!ôÀôÀ-¸|¾YÂD8®§±YøWÝÞÖ¾² +¾r ?àˆvN¬î†;#,39KWÏ7HÉ{k¤¢u™qIDŒ˜, ÛÀúù>Œ9m]Ü£ª¸±Ó/EŠHgv;;¤\]ü%ã˘»Â§Ï†ƒñ‚wwœ‰m»q’ŽÆ@Q;§Øv…*Ú’vK+Äšš6~vÀ“ø™‚˜ã‡ä-ªvÄY­«J”…¼¥R¾4„QÖL˜O§<ß)VV­kg€ê¬ùõõ0—j|ÝÚ›…˜b ¥Ë#ø0¼óÙ§òA‰tÞÆ#d˜^zà>hæI rµ•ãδÇu3ÚGÔ+¼2Ù¸°ˆ{œS:§§$o¼ãJJäHÉÅl7¤^‰)ßé#QW•(ú”Ëœ›fBÏ9\Š°qXAÕ8*%¡WT÷ó›¡çBNÅÐsa +E]p@];`.!pÿN:Њ(Ý®lBH1~ãt†ç¡òW9}öˆÃñv/Ç«]ˆä$(2ìh2õD—(Ë© ΰµÌŽø…Z‹SYVÔ5 ‚œ+×…5ô R$Ñ‚#β\¶ë…„pœÛ•4`iì0Èl+û~T‚3 +-‰4Ù>E‰ˆûõòÆoQÌ9P)=ûçû™Kl{ÝÞ‡2;“ƒ-÷lÒÎø×c:ªAÏ­ò´” ù·Ã–NÈÓÀR\€×ƒÁˆf´±.4' +’n®ƒjЛ,p%,ʘØF—m`ïýh:EÙôÿv7Áe ØjG5}ƒª*Ñ5ìùB©¯à³rèù’\¯ÖÕ9îâ6òÌ>c•â=éñojX¦ÒÅú3žÉÖ÷›pw‹ÍG¼Àæãâ¯U O?éÍ4¿òv VAúás$W`y©»Ó[±_ñ?<úY3]®aèÓv¬£©šž/gÑÚxq7_±­×€>…ŽŸäw†s8¨sØ]@åÙQW•(¸6 +‚™f¾ºàAwªµÓå&à_Åc0\®ŸëÅꪖX…á Xï"Úá#H³OáÜ4ØY×Ù®?òO 陜‚[opÎ?3ü1ð¼=/× ¿×~›—WÛ¦õÌ$.ØÁ¡[2‹Á‚w†'|nf(З>–g‚®*Q6$ëTµHþ"ð±+*ªÃ$¨‚ZËv0ûáA-û‹Û0_oƒA:\Ü5EËvî`\úç’­»Ý£Åòæ6<ïðù#\Åß,/ïfM j‰ž÷ˆ‘ìõÂ|Àï<„á‹õÜ?b®÷׋?qàr½¸äÌȽ`_ZäèY|¼üî¨ÙÿLäµ°+Xƒ`v‡ÂÍÊ÷ÝN]^ˆ‚®p¥{ª`Z€rÅZû|Q8ê9|èGv¬DÅ„CÉ¢âfŸã¨]„;›Æc‰¦íÓR®“k˜†c‹š$³þõ%ÔÊF×€O®ãG,â2WÊ +-"*.Â%‹0رE|†2¡©bcj‘ÄZžTåVÕmSàçŒ:¨Ê%íUù©>A\óDöËð¤9Ä;O#ÕÊFwš^æ:6úm…‡b߬Ƹ{þþÿ¡ƒ>Ÿ‚SI(KŠà®•âà¡ZuÃìÃbót‡äçð=ˆÊ7QBÏðùoáËPœBi]½B¦i‡u)HfI%GßƨVÝbª +XBóL+KF­ždÔG•Æ±°¾’OaÕ³ SYÃ0#öbpðÑÏRd¿Ï°nÛìŒìàÚÈîë𚯆±)¸Ø¾H×[.{¯¤Z1¼× ïŽnZdÏrƒyû {'g”°HË#_Eên×Xaðt=KE`¦äàNŸÒr”$dDÅ÷C«§9ôQåÈ!5JE5ä0b/f1Ît½{ØÉ %pµ¼ÐÕå…×IòB ‹´¼0b‘†‹Î E`žzÑ€ÏϨÉF`Í BÛ®Ù¬©¡UU‚úÀt†dÏvòBX /ŒÁª‹†Ö¾¢¡¸–zà²ä€;Ir(a‘–F,ÒCb‘ÃÉ¡ÌoU4ØBä€o +©QnÀçyÂìç†FS jèÁÊ1C‚k73”Õèº^H@Ô PµŒÐE•%„ÕIB{´|°Û $ö8œJ€<Í#œŽ¤—:J –RúH%RøÖåqJð­p©å‘Z¬‹ïÿO‡ÌÆ94‚"ùžCc¢§ý¡ªùVäì2°ê0 ++V†)¬=•apMèƒË%‚\™Dಉ ýbÉœ Š¥IcF©³Aj”ƒ³A˜'ÞQbVcFOŽÌZBõþ“c¢ª?Œkøa²š"Š k(¢,G ²}Q\K=pYŠHÀ*E”0JK#Fi("1ÊáQæiÖÿ¯¿OÅx‚¦9Ä‚­µ"Bí)[5%¨&!Œ¡ª“ATM2C; ªÝ ƒ"°Ú4Ѓ•M-¬ã²@æ- +Eœ3§ùÎ4PÂ(mÙ+ßÞS©Më—á-ÿ¾z%E|‹²»i`x»žCóG‘õz‰©¨õz¬ÄT™co‰Ùª*Á(#ÀFÙ‡¬f•"ÈVé#˱J‚l„VJàji¥‡+K+ ®“å•Viyed·j^IŒò]ˆ¥È ¦ðà×™F¾c¡$ÑÜ„Ÿåù7uk™Z$û- ¿eqÞýÿúì›'4Þu|‡öå-t½º‰ò?=’ ~ÑêcÆâW²?°CQˆðìoïÄŸæ¡é‡ÿŠZ¼endstream +endobj +1378 0 obj << +/Type /Page +/Contents 1379 0 R +/Resources 1377 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1372 0 R +/Annots [ 1381 0 R 1382 0 R 1383 0 R ] +>> endobj +1381 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [385.262 320.026 392.235 328.439] +/Subtype /Link +/A << /S /GoTo /D (cite.TAOCPV2) >> +>> endobj +1382 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [64.805 308.07 71.779 316.483] +/Subtype /Link +/A << /S /GoTo /D (cite.HAC) >> +>> endobj +1383 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [355.532 305.58 370.254 317.535] +/Subtype /Link +/A << /S /GoTo /D (figure.5.6) >> +>> endobj +1380 0 obj << +/D [1378 0 R /XYZ 63.034 602.788 null] +>> endobj +816 0 obj << +/D [1378 0 R /XYZ 220.407 376.425 null] +>> endobj +817 0 obj << +/D [1378 0 R /XYZ 205.991 134.422 null] +>> endobj +1377 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F48 601 0 R /F11 674 0 R /F14 1012 0 R /F45 589 0 R /F1 1058 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F56 1170 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1386 0 obj << +/Length 1425 +/Filter /FlateDecode +>> +stream +xÚ­XYoÛ8~÷¯Ð¾ÉAÅð–Ø"»HÓ¦M±Ýf?m[²MX[v%9EÿýEÒ–dYuÐEð˜áœß )“à AŠŠ@bŠâ$ &ëæ@y3 Ž#r,Qçåhpy› +)ɂѬ-e4ýJ>ü2zwy+øÄ "A¬á¸y{}?z=$áÇaÄFq‡/‡ ¯€pwc)×ïFoßÖÑ!Þуף½œ $™ìuÃóôùA°D‰Tˆ9J¨¬Ì|X‚ÞµQk&«4› KXlÜt¡íd’†Ï­633’0]Í7¹9[.Ö–²Þ¶ ’!ÅØ^1Øömðé ¦àÈ»FL%Áw˜cD” +ÖŠT¢Üj5xü}pÔËŠjÂÚŽR)!c´áh:ZƒËÅÐ8Q¥×1˜a³W,ç™e©‹eˆ9ú²°¾Ú„¤´’?cÂó¢´”ñ0¢qX‘g&˜¹öẲpÓ,2zÀ/H QDhbo…³Ág°˜§U —›ÌìArK+vc“°<SŽŒj£,--—±ÙŒåÆŽ[sD?ibÍ̆T…Ž·Jz¥Ö¤—UzÍŽñ&߸Å6·@SãÍÄ#)›Ûð‘Z`çœMÈgŒ±ã!žÅ\¹ §Ç"bÄ}Šªó¥ô„$¢iŠª%3A˜qG½:VDp­– +’nK±©dVa+:µË\Wcâ²*‘k1hVR ‘HP, ¦1’Â6–Ûª ³cErݯF×ÉMÒ¤2³C=uÕë} i‚(÷:sôZ #ÇÐDªÆhý´³ÂÛ[xË ,_4¬HÜaÚiÛ ²Ç¯\¢ßMè_tžáþ̸qfÜwFtîJïÐìoÉoWÞ3Øf †‰$=1ôM€L&kÈô tŽÛ!Óó´\>ºÙ™U·Be»)–À¢]Ü?|ìƒ(MÎÑêDöiu†iÔ«Mµ´ÝevÔpÑéÜá5-¼íׯŒÊWvKDzNçÙ²ÜMuñ¬OÃ-uPÁv²+ô^è¡ ílcMòlY=1*Owë±Î{ýdÄ)žXè5àX¤uÀ¨;“ûãù¿BQWï(D_[¶´¤­ðNx3vŒOõç¯Ðù1<bD8²^º£I|™ìxl®ñ–%ü @ÓÖ¯_ƒ6O(¨SÏ‚5“-M·-ÎÈ2ý·µ©i+€1ëlâöƺü®uvõÛÍâ¨"@D†²nâk¿ÞåkøyxóžÜ7Á÷÷_ÿèƒ +Þj8î냎£iôÓƒk7›í“Å + 3¡\Ÿ.×nß9vZΩP†´,u¨[¤E@+c^šÏ}wÛ¸QÛ¥«Vî: víS§¼³=4^ûtÕÏj€n¯:ZŽÙ/·ˆ¾ÜÇÊþÐ0…Ÿ +08½[µ# ßt‡ éb³­ºƒ¾è€Èº +¢¥õ'MÿT9qÙ©úâêP;Æî?<^’ìi½~cçÏ÷[†µ;‰ñ©Èz²ñ·^›Òüî°Çe?½šälúg_zÕÓA9†† Ÿ~áEŽ¡)È¿is]îòìÄÖ3ÓŸ¼¤çí¯÷Á¢bTuý´ÄàcË~H׈ÿyŽéendstream +endobj +1385 0 obj << +/Type /Page +/Contents 1386 0 R +/Resources 1384 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1372 0 R +>> endobj +1387 0 obj << +/D [1385 0 R /XYZ 91.925 602.788 null] +>> endobj +1384 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F48 601 0 R /F14 1012 0 R /F11 674 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1390 0 obj << +/Length 1837 +/Filter /FlateDecode +>> +stream +xÚ¥XÉnÛF¾ë)„œ( šp6.‡¸IÝÖiÚè–ä@[”4E*$Ûoß™!)SpE€Pœù÷õ£å2†r™hk³Lb%Ò,[Þñr7ÒS¬=ÉzBón³xýÞše.òD/7»çb6Û/‘Z¬ÖišFïVk]oVk­uôöãÿ¸ºþÀg&ú¼’Ño×ï7×?¬¾m~ý>%©HM¦ ÐÄ"Áâ×Í`ž‰¸·/zhæ.dË %ljD¦Ò[=³G‘ˆ†„e‰ìæì¿[©4:€?**÷}¥²¨Dïâ¨?Àµÿ펧ª<–z”}Ñ»¦f®fÇÏ¢Ú7­ëépd®ãé¹×*ÓB¦zi-˜KtèÇâË·x¹ï_ÄBçÙò~ÇBæùò¸P"ÏrÿV->/þ£d­'Â(:¯U–™¨Aº]l·lðÔÁŸ+›DEëŠ[8«JŸ”£¤T‹,Î}:ÛÕãÔÍ£œ +XOå:–aî0tå–k Éб‚dH‘[ÎY߀Ì<ƒ|aÑO2ƒ§ÁT•çQ[ö÷í +12 sm=fä9Qwn_ƒt‰a‘ƒ<Ž²š–Ÿd-rÜö¨© ½ƒŸM  OEK4kYÐÏ„ÜÇ÷þPòAY{ +*¯é͸ïk +Ðh´lË诚‰+Wû܃μŽï,¾Jm¤ñúËènQk^qjÍ´£¡s¨7Nîͧ絭³\¨1«cÕúŸ¥­…ÑéåÒ¢Ö£,ªì3sr%2uhÓŸ«<‰6³¢Äb‡âµgù(O-‡Š“òÒ‹CŽKל•.]PžàI|Gœ÷®/™¡àk ï¾-éXb»/ƿ𧨓ìWüã®9"Û É[×av9)Ž1mhîÅèÌ4n ´B—T·äÂJÁ ª£ÔFWn?ÛèóÝÝaŸ¹z? Wæ)OŒkÏDQI“ˆjÅ‘ËðÖ’¹; B™ _‘Ç®þÎTÉð,øá£G Ó•9Ð綼 ùàÄ°d’¥/÷CTQš7ÊK=Ñ$hª'ªîcD1Fêùh;oÔÇY0¬HrãËþnN%…%Å°Ìdê\ĹôLO3‘™HaWñí›97˜£tP¹»`Pfì×ØÆ´‹,5…43 ¸ä(Br0Z‡ÐÜsىȆÿ?m{9ÖÞ0!šD(6×ËT˜Tñ'O/qJ¢‰…• T²0ÈD!ùz$2‚ÂØœŽ‰PCªä\ –Ž´0ªR˜BŒ ÜLL*vç› 1®6°¥yÙÓŽž+²BàYKa @5ç±ÕfÄ@òxI X‹DÚ©”ì¹õH»ÐU´9øŽÄš¯›¾"µ *¦LðÀHÈùkÚµÔÍkÆ2O¡CÒ³Ö»»ï& ¯3ž:nF]û†1XûÄ÷<Ü€à +Mš½vÝ¡ô7ÿ¤úÑ¿;žÜßõƒ!&†úgô¨:¿ùƒvvÑÀ ¸°ãÏ'š» Q«`©Ž:˜÷-MEøoOƒ}Ħ#º>c‘lË–âê1&vÅ«hÓzÁ£†§džÀ“#DBw^Ò8›£+*N¥æ¢ˆÍkIÁ^µâ›w*t—æ@á•|$-s~úhÒ9?º²ue°kÇ… ,”¤ÌÎÙÞF”*i•nÑƽë_ñ!mŠÀáØñÑ¡@mA%žÐ¦†çmV +!+b&ÌåmÅU"±¾‘Pßa¦+®Õ©”îàwù[ÆbŠ+Éažº*a£Îë‚`e¢h¢ºý–Ÿ`Üðy^y*aÅx3*Æ7ªš­û‰ñØĆ·xÒ“4Íø7ñfâíÄL|%3Y?ÃÕ™uÓâ'µžÒB°—¢ß¼Ž/8PL‰2`Š,žÔ‰h Ë°!SÛõ •6%{ŠÇ Jh=ð +ÖT,ë ­ŒHôKkPg¦> endobj +1391 0 obj << +/D [1389 0 R /XYZ 63.034 602.788 null] +>> endobj +238 0 obj << +/D [1389 0 R /XYZ 63.034 502.085 null] +>> endobj +242 0 obj << +/D [1389 0 R /XYZ 63.034 364.704 null] +>> endobj +1388 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F11 674 0 R /F48 601 0 R /F47 596 0 R /F1 1058 0 R /F10 1027 0 R /F13 1055 0 R /F7 586 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1394 0 obj << +/Length 3223 +/Filter /FlateDecode +>> +stream +xÚ­ZÝsÛ6÷_¡·£æF(¾ fzq;í5½é¥—úå&É-É6[It)*n],@‚"e)'3!E,‹ýü-`1ãðOÌ +Á +if–K–;7[n¯øìFþy%Å",šoo®¾úÁÍ +VX5»¹;ær³z—Y;ÿpóÓW?Ý“‰\1#,°EŠï~¼þåæû¹ÈÞÎJéÌ°ù"ÏóìÛùBd׿ÂÀëïhäúíë›FÒ›×8ø²¾úþ¦“Q+ì²ÏnCiÅr/br\p&¬„Q!™–’cRÍ +€+¤ûãêÝ>[ÝOWœ©ÂÍžàøÅl{¥„†&üÞ\ýzõŸ^(ÁsÆ­›-ŒÓ0³Ó­±3Z³^kÀ€k;3¹… ^w×PÆ}ÝT-<¶AÕy?I;®ƒ¦·Ç +9(JªŽçù]0áÔ‰=^‹„m"‘Gä†|¸‰í\©ì€ÝŒä++”|ù¯çå+r&„È'ƒZ[Ъ Zec­/\ÁT®Ñ®¬0Äåõwøè÷ÙŽ9JÜ˅66{ƒ´»õ}´³ÇösL¡ý¬a¹=¯°=å‚Õ¢ç5vA'‡¸ +$(jbíæÒÅ=YžkÆó"ì©œR“dBŠšÞZÒÓ„Ž”ò¾3P{ºžeÖD«ÜŽ§[fx”æó…t6šöHh¥Ì‘Ð Íœ“© {„86Fx7z©¬Ð³;$,g¼\"8Ðë»ñþ$g:Ï£–^•s ;°¾ÿßfõ5c²¯IAå+?ì׫ uZ°nôØ¿¹,2¾*³öa½#¯½oê9|š0lÙ6ì\FæmMlêÍjÌH –ëh‘gä•Ž m&å]U÷èÇíÞë-ÏÞsÃÃB:±|ÁäÉLªœc6w.E'OdªÈk‘0óvO¥QPl »ß7s#³¶ò4Þ¿(˜VQ¥°C$³…„Œçœ¡œ.!˜„òMÓkr–*õWx1×.ÞsÍ'yæy±¯¦í ‰Fªs˜%2Éj”¾\¨güia8$A9KŸ“«‹dY‘%†x"'³)θ.nBÔßÕÍDØCÉê¤Ø×ëœã®©·œ¢ÑE=æ©A²‹< 9¥ô4òÞs>±E-)-ºªi§‚ZÌG[™˜LÞNç®!…Miô‰u¹Ð8ÖY°•ë«À$*lªÒ”GåêMGòÍ7¦µÌ½jÌ„(°{ Gaw?•.­8Ϧw3¡§@µÇùa¨8D×òr;öIF WvlCyƆ·cÕÐÅ„êSAUA\×Ú ¹Á×_Ÿp=ÐÔ'ej¬HãÊi¦Û+ÀŽÓ¶T Ê àÉh†uš5ÀÉDöRtF*;^Œ$?>]ö‚°y’ÊE©Î'¯ç?OMòÔ!-ï0ÙDC³ª ãq‘Â'T n–«ce_Ï/T—Oà#…<yÞTÌ£r_Ž“ýr)2¾åœIW|nåóÍü±#ÜCyŽÄqÎtÑ'综è9 Ò‹sJwL*ÛƒõÏÅŽð6!«ü¬îlª;ÙÇÂbèÑÇúb¡'% )óå5Ç]VsìËYuXÝy€»Ç–åvm§¤‘–åÅgâÜ}5d7øú•!/Bô¼]·‡fw¢gRL˜hÄŸŸ_О”…ryéKº¦Èk‘0uM"׌C}Œ4þÈá_×óÜeÿtlgTRüN6üÊj¦¿´áwào  ‡æ˜:»…d¶BJYÀÄfê 6ÒDý0,D[ƒGIJA¡Î_é´Î®7Éá¡?cèl¹e’X²æ9˜ó&;ÛÀë¹ (^øî7ÝÀv.sÈ'„ +Ýrý2Ò^ÏJ' f +5NŽ„RBl)­XL*‚æž;qGvVõ'î:57hÔSXÙ¡‚†Sá…?…Uþ¼­«Ÿ<.`žìæ_pª1+OG ñZ$ÌÆ;hÌPàí\Éì0²­„®AB¸¿„l‘׳²IŽhw Z< +IwÆíªêÍCµ‡ÈÉuVvgñð²¥O¨~LÔ› }ø±Zâ‰éï›OøM%ÞÝVøø8ÆáÅÄÑ/T f¸»\9Ï8~ä5RN²k a©4¦Ê©vx¸×’´·¸§OátBä¡g6T[­úv$ÏßšÀ×Õ*â +!ú%MÁx!FÝIzáÄ„Œ% í ‡ZóÜ}›P‡E]¶F-64VßѳíFk¬eÿ½&ó¥ÔïÄzÙáÉZC«¼C°ûÞWqÂ~IÓÀä·0”ãW$Øãg4ð·ÿ@ÜÊ]xnB¤¶txÀy\CÊ£³Zï«vM4Jˆïwå²¥7‚I¯eƒ?üªë=}ªïZD”Òi´šÖЭ4aÂÐwýLÔhææa=I ìi­öà/)ü—-ªõàýÁo‹6´©~VQ”‘Ù&º„w‡7^»ý„ }hÍÙÒ”o¬É2·Ð2»/ŠÈk‘0;Ž©¢Cùˆ$ÓÅRÀµÅËHx=+•v¹¥R•+¹ƒÚ0Cí¼s.D4HÕ†çžìr‡vi¢êƒ *ºøYÓ#P–»ž÷£G>ê=…H€çúk®.±þãP}œ ôžæ©ÃÍ’G-þŸÁû­Ôåë¦D SÕ»qÐÂtåí(ƒ|ÓªëåivzUÍ“›êßÆÜñBÍ Ï‡ÒééÑì4¥ú äØ«Ž&Ó˳KçuéTnMŒÂKK¼•£œýk-ŠV9vYRAŽÝ­èEÒã¾éã>¡…¥Ájçý  S÷ôlÐܘO×Ú×,½#ÖÛÚÛ]µô™ïˆ­/‹åŸ•OF¡€n‰Ì—¥ƒÏ@·ÁAÂAåZ¼®½ÿ£àÝ´Ìau°«Ñú L"DI«ûÊ‚Õáf^UHoð­é*Å}¼…k”\§í|"¯ÊÍ„\ +:ÞÎ]/lYº@iª à~ÝÒKlÙSï²–©£[µãf=EÅ¥Ž:¬ã3K»~¤_šÅ‹ :¥ë-ðf1Dwu7Œru†áî%WŒ€ÆCPr¹¡ß˲i›§j³0ëÒ⊻D—d'u ÜÑ‹ÑìÍ:J~;ÄêÛ’OkšC- eÌ3¡¦Eféá+¬–àwýèÝc[ý¯l1áÑö±Ë™Û˜9!\y´èÁò\yŸ"òUßPØÕAŠ˜ø‘ÜG_”gÿTŽ*˜by2Ì–%Aôx§Èã½£äE(2<ÛW»åš^»$ï)pDúP$]0]€\ÕîžÈ¨ÊazÁ_m}¿Ž&ñ¸Ç“4ëíËm¬„8ˆÃª1–Ùy¹L¶‹Ñš†J<ƒªš;Y|k`SðITͺ\íé5ÜÀå=ÖÃi‚ÉM—¹EA`ÞV7]Ð9Ïð¬(H%dÄ1þ:ÁIÙ@PÒ£G÷›u¸P–P3å¾>v‰oYí½K*B÷Wݵô…Fd—çñ}ÁsÓ¬û4&ºKû‰’o _6GZ<é5àQ*44&=Ît\泞›¤©oqͲ +[xz l'!ãÄ.~tèßo¦ÛIÈO–ê_pbPa†~µþ™sH|mq|§¢!_x£Á e’^–åfyØ@±Dq3H}ý@rï²õnÂIŠ˜ÿ,€•ê•íc.Á¯´3X¹ EÍ÷°ô© B@P£køo#7財´Šû‡êŽVÓJNú¹2É1ê [²°>iaükµžÂgP¨~ÍvøÞKýuPG2'4Rø‹€:ÞÒÎ<<Ö +lìAÑ–ˆ)û-)ã¨ÁP×]hÈÔq|õxÉS&xf+“-Æ«ÇÁq!sEr†Ž²öyn¡ðbF]ŒÓ%¦Ò 4a {Òâ/l&´x”æ’ͼç\Œ+dÄGÒw°6»Þ‘`DT!±û‚˜¤~‰­M,ˆsÊE8žÄP¬4‚jÿ@7CR† AxûÌ^6žŸÏ¤Ð\3‰'-‰>Ó†Æ'»'"™¾í §·!+ Vê6$ˆï +ï \Çõ9ýS[RŽÎl:óšP/ø,=„øÿ"Jh\¡þF߇Ÿa4ýøw@•mØ0­ó0‘¤‚®¶ë«x9÷Ås„Àð‚I¤9 7²ò Ø©öbÛ¸^Úr‡sÔÂ0%‹©“Öø7Á<ü? +b=endstream +endobj +1393 0 obj << +/Type /Page +/Contents 1394 0 R +/Resources 1392 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1372 0 R +/Annots [ 1396 0 R 1397 0 R ] +>> endobj +1396 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [277.183 299.372 284.157 307.785] +/Subtype /Link +/A << /S /GoTo /D (cite.TAOCPV2) >> +>> endobj +1397 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [308.046 299.372 315.02 307.785] +/Subtype /Link +/A << /S /GoTo /D (cite.HAC) >> +>> endobj +1395 0 obj << +/D [1393 0 R /XYZ 91.925 602.788 null] +>> endobj +818 0 obj << +/D [1393 0 R /XYZ 244.351 348.53 null] +>> endobj +1392 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F64 1214 0 R /F59 1176 0 R /F23 1211 0 R /F20 1030 0 R /F48 601 0 R /F11 674 0 R /F14 1012 0 R /F10 1027 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1400 0 obj << +/Length 1350 +/Filter /FlateDecode +>> +stream +xÚ­X[oÛ6~÷¯Ð^9©ñ&R[ A—,-Òmˆ_†®dKvÈ–'KKìÇ—CË’¯EQˆ"ÏùÎwnrp«8H(Š) ’˜ !e°XOâ`¥Nn&$"‰d®f“‹k΂¥ f˱šYþ%䈢i$„¯¦ogÓˆR¾ÿüÁ.>ÜÞØ=ÞOqøëíõìöóÍôëìãŵì5+Q$˜TP´ÒDhÉ/³=<'ꜟôÀɹ <à‚!Ic¬)v]ÕN#ÆÓ°­áù¨°jÄá"kõöbO²M®2̺պÐ.o¦D](7+¸ªd ë ;°Œ%A˜¥àa·Óò#ˆ@±` ´¨;¥\†®^ZqŒ{y†Ù+©cˆˆNU˜$Áá}[l­>i‹Ê¸‘i'wÖå̘}ÑꂈpfBaŒRήªÈòRÉk§u”ór¥_Û´© HRù*Rxê–«u‘í +«°líNÝXC›¬ªlLô©V–[‰Ì>ª¬Y]¯³Õ¦ÔaéòÂî´ÊÃ#„s„";‚ÈIz2Í)Tlj>Žh#*RETŠ˜¾¢ä®5Ú +Ò'½4ˆQ Ú~Ò‘HÂùfœö©D*YE,6éü÷äË×8ÈUîœ(c© žÔ:F8MƒõDe}Âá­šÜOþèkÃ(Š4ÙÚ>cå}oMãZoÇ€0fˆãä»`rºNÃRD‰‡°tÅuÕ6JPJÅ÷ÁºNc£‰xˆ ðÅ—(æ$à4QwÝ먋ht k ËÞ°ëb ¢íÆ81å+챪Óv…ªm.xxq68áªòÌã}dgÄ.Î.¼·%Ü.7­•[oÖ]õ@þŠy¬Öû}О½Ù‹é"Æáðx®®a¯¡*$í$Rµ6 + å„ŠH…wW~ ¼Øµ'á¤=œù83^Ãbï.Áѽ/§l3ââ80ûº ï]Óãy|Ó<Ÿ}¯?Ãáùù+OªyâS$ ü Ã\3Ù7üBñô˜¹U©>B-Ý5íc S<·ÇTÎ]‚/›zÝ_ñÙOÌqì&çÝýÌ®åÀ”Rß5MáÆ°ú(W é:òéN§?¢ÒõÏaHÏúd¿¼‡¾jqm>6?ø®ô>-¦€??Rß.G1ظ¹³{,—àq·u|”;ÇÁJã)[7˜rh~åfL]™/ȘŶ)þ)ën÷õTè¹f@š–t~> Îñd(tgoßö‡@ÜžHÍÐh`þ ­°ßùq?AïÞßòʉw—Ž]ÔÛ—×9iûL×8ë®Ê‡éîá z¨§1s6Ìèƒv¯¾Õê‘]?phZÑdmYý>‚á”#JRߨú4X¿þ/#ùwendstream +endobj +1399 0 obj << +/Type /Page +/Contents 1400 0 R +/Resources 1398 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1402 0 R +>> endobj +1401 0 obj << +/D [1399 0 R /XYZ 63.034 602.788 null] +>> endobj +1398 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F48 601 0 R /F11 674 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1405 0 obj << +/Length 1186 +/Filter /FlateDecode +>> +stream +xÚ­Vmo›Hþî_Á}:HaYvõ^”äÚkZEí5þrj«6Øá„Á\7ýõ7³38`“|¹Ê’÷ež}vÞvaùðV"¼$P–ö/Šck¹™ùÖ$Î#\†¸ÌÕ|vñ*¶/ÑÒš¯ŽYæÙG[ÇÎçù›‹W*|„‰HzJh EÄõëË÷ó—Ž°?8®”¡­<ǢȾr\a_Þàæš$—næ¯o:¿Aá5RÏ^Î:†RyZêgÍè1'v¨ØŠAC=0DE¡Ú¨é+å¸*P¾}v÷›+|/Q ‹µã†Q ìÆÀì_ihš“èˆÝ’<^FžIöÊšå¥\Œ‰âIú<¦#e_œ‘U¾§I™§YQ­i‘ë¢ûçú «´ÏDÅŠŽ|ò•ÏþÄ&ú°'NÍ>DY ¶g5aOß(ؽêi–ñ„†Û»+šìï‹å=)_´ )÷éÏou4v÷=h[o>atÀ*œu›íbN1ŽfÌ$8?Gÿ,Üßvmž¡[&ƒ¯Ã|­&éõqðkþ÷¼©Ù+ÕMòo˼mÉ‹&ØIuÕ»-ç\ÉÛ®¨Ò®ÉÔ¥¸ ðáuôçzÇï{‚"«~î÷š¢ÃÌ¢®ž¤Œ{Êé(õ9~$ð¶¥éùa#‚WNF$êÓ|U7yþí˜9^Њe¿çê2ÊLL<‰@hOIýÌ“ècíÄ0ÏÏGjùÓÿ7Å8µ#yJ$#OÃúi"Œ5 +7ÐäǶXW##RÚ›6EñÁ&ïv Ÿ»}ÿÏ»·—OО½ Ç*—+¤‡†'¦ì#fnÊE "»ØlË|“cîTNؽ’A/2°Ø6€¶íq±Ý¬HËò ©9©²íŠMñÝà2Úß@'—Ô+Ûãv'“ă^jÉ ô"b'û2ûøÙ·2h{of¾'“ØÚÃÜ÷D’X›Yà%q«rv7ûë±-ö\î€ì¸½‡Ð1…÷¡Ÿ6Û“&Œ)œD?D«žëY­ j*V#­°g`fÀ9HE|NÐÐ5róÄeˆ%Ê1H†Ú^¢óÓ–WèqDdõ ‹²¨`X“ ãˆ2³·Ey,a %È1ଫ´@tÝ™ï1Æu×C6±8Ãdùä i ‘sjÉ…a˜“8Uß ´î_ZKy|@Â÷SY¯‹eZâBbÚ’¶ÐÙÁBÔP6ƒÈΛ´3^f!Ž%æzÅLPÜÌ&n3ò±^wpñ†)á[ò`ÉÇ·°hrcXÑý èƒz·€v¸Gï4Œ¬Þ Z!ùë¾…-ñZ¶Pþ@5¿‚Ÿ€ºFêú‘ +˜Ï÷¸¨OŠ:.†ì4Ì—ˆÅ–ø™Œ³Ùè +û ŒáÍ;œCPá¥ÒÆ2eÔ¿;ªä_ØH1~ðm›§ÄØ'ˆatSEPž.—õ[ãö{¢ö”¨hxŒ),1å 1ÅúžªÊiv} ìJS²¶&Òô ºƒÍŸƒÍø‘Í°A6§ò²º}"È'S°cq¾¢uTSø{> endobj +1406 0 obj << +/D [1404 0 R /XYZ 91.925 602.788 null] +>> endobj +246 0 obj << +/D [1404 0 R /XYZ 91.925 284.975 null] +>> endobj +1403 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R /F47 596 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1409 0 obj << +/Length 2864 +/Filter /FlateDecode +>> +stream +xÚ­ZësÛÆÿ®¿‚Á48Ýûá:™qÛUÚ$m£~è$ER&¡’”eÿ÷ݽx ŽWÏ'`±÷»}ï‚lDáiA¨#M91ÖŽ¦÷t´€'ï/X¤¨#IÑ|w}qùNÉ‘#N‹Ñõí>›ëÙ¯•"‚ŒkcLõݸfÕÕõ¸BTo~ú>,¾¿zîÉê—1«þzõîúê§÷ã߯¸|gwœ”i +2Õ .Þ^wð$Õð\=ÀƒÁ‚Ÿs à9<VNöHöI%q–P)¤ûïů¿ÓÑ è~¸ D8;z‚5%̹Ñý·Œh+âßË‹_.þ¹å$¡°Y­¬„wRÕ# g×xvF)¡\”32ç%ðf ÂZ´ëf ×»û /ev/I`GU”×ýþ¼˜rÄPÞñK…øg(Œîÿ‰]AšBŸcO€o|–Þ)GyXu’}á(¯{Ûp¡wuo9ç%‡ +î@ݵ‘0'e§sÙí2Ã2s¯ª ò"…dÁ9¤OuV5Ç‚¨íHÎOÞ¡ö³š=]Øl°m]À©u ‡jÛžQué¬[,±ìù¿ÜõpºèAAMb%= =¾·Éù'¼;o6Ñ”›n°¶¯czFw¸Ã +ŠèMTêàyÂl84`Ð9,›ÜóÊtÏ©ÎX ‹tlúáýDƒ¦Kß™€8¸A©N­FU¨öí[ +,ƒþu¤o‘& M´-~’¥FÂ8(;ž%È©Þ±H‡4RC$ñ“¿½[ý§Z¬ûMKab! T´&ž5±0cq^ +e«•Å+‚Ç‘†‰*!»fsÝH’(ø;ß±?b7ŠbEì+Й”Õ›e6ðôã‚©‚œ Ge[žRCÏ/käu ?lj–é១Û›ÜACÆíË‹¼ŽsŽˆ=d|0×€Â]Ô@‰\†HZCã æا!QÎtpd†g±Œªû8îýg ~JŠz•”çÕ ±{ÿŒ¹°Ä|XžW^uÆl€—)(8¡LÊ—æÕÂ<øà‹àŠ¼Žã2T&{¸8|/a2ZŠa×wh’>‘¸jâ½h¥-¤­žšå2¬‚é6³0äñÔ«ð¤0ƒšA[uþÉtâ58yï FÂþÁ›8ˆöoÆP–ë혛ê ¶áÆã¦Y-âLÌÀfhÏ`Ð*ŒÖ–­ÏµÓ8ÿ‚”®«Ú­Ï¿ð§ŸPâÕOË`±nw¸ã2Š‚ýw$ÿ·ô¦œ S D‡ÅÓÏ‹‘W1Äœ +«‰Ägw”Ì£H ²<~ÃP/ƒ.ò:Šú%Éd²m¶áú̬qd: ÷ïÃxí´ÁF » ¼¿ôí™W}ø{þÑ+$ªt2óolq JƒS²ž)L[Ÿx4˜þ&\·wÑ`}ƒE›GÔø§ë2váÂüÔ'*|ï­CÑêß+y³³W²-¡bó¡ÛèçyTdUg¼ò×’¡BM$Ñ:ÀW†¦a¡ëT/„,ò: +ÍbM!zÐøžœ“F5@ z÷£éušZG†8°þ#º?”‹–ºžÒo1µµÈô-ªnÜ=ñ–³òå>†·VÊchà ,Ö“Æ«{ŸA0ˆÇ»|8öVéÍ%Üœ¶KoÒ ,®N&ÃѬáxžzë[Þ°;ž‹öÔÙ—I·þ3M¬™J\¬Ã8? „Ù©ðq›è#X¡ÀŸ&>E”߸Ûy_€Œe®Ö_ŸuÂò éZ‡f»·'Hþ1ùl˜@l¶íCá˜í*bs@rçåˆüÝ®]‚ÙY•ÒPÁŸQ³ìÇ ‚’là”:ê<Ç‚Ý+›uÔ°o’È&üéñÃõ5I¤Ë[ðl½gc±«Ä·&›HÓ):_¡Ä¡Ç¥ HXOÖk/ÄÏI˜‡X¨xD”Þ•© ÿa IÆ‹~V|›¢ïÆ˘âd¹þš7&®ºFÞ á>x ¿½ÙúWã]nbèô} V ߯Ã#”›¿z«ˆÌð¼Èæ>°Ô²ŒXC˜VÜyßè×#‘W1Ô#´¦Ûïxr82þ2è"¯£è|”c=t<ˆqþÉ×9ó‡í@‡‹f:Y¦/‡•µé„ÜÛ8’”C’ W0Y_µ{Fx£}c 4ˆM³w½u¯ç~ó-ª½]…“•ŸiõyLÁ’?‡{MÜí¯Ép½ ž³‰6Íb•Š‚é$y>¹ñQ³C¾ÝîÇ:è-ÛMøå†ïBËŒñÉj…ß„PhlQ~På N|g‹¦1/̹LöõöU˜PܬÍ»%rÄ ÷Ó üçüòÃ3ª3N…0Âôn·?"‚ ¡ r{ L‰×qX (y«Ün3ˆÞ˜—y‡&a’÷ q⛊=hʪ€Ðj8‹8ö3³:’ÖmØØfÿÐ|'?)eº3ôÝì‹23Æ¡˜ª.¿‚:„+¬-ðòM¸L.yX|uY|ÛÆ·›Õ6ÐÝ?|€Žø÷F>t÷#÷É×Y³Š®”=¾é&uû¹Â€Ö.Ód+¦ö\u$è1âBæ±_}Š˜ÖóM\µËÎéÿ\B‹ø8Ì’§íÃç\r¹²£vœ"‚»Òð$ý(‘æÿ~)O‹endstream +endobj +1408 0 obj << +/Type /Page +/Contents 1409 0 R +/Resources 1407 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1402 0 R +>> endobj +1410 0 obj << +/D [1408 0 R /XYZ 63.034 602.788 null] +>> endobj +860 0 obj << +/D [1408 0 R /XYZ 216.843 359.489 null] +>> endobj +1407 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F64 1214 0 R /F59 1176 0 R /F23 1211 0 R /F48 601 0 R /F11 674 0 R /F14 1012 0 R /F58 1173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1413 0 obj << +/Length 862 +/Filter /FlateDecode +>> +stream +xÚ­VÛnÛ0 }ÏWd/C.“kY7ë´]/ÙP¬èü2lCá&Nj ‰ÙA»a?٢ꛚuE¶)Š<‡¤(⾫~¸`'ðXŸ»ž#|¿?[÷ÜþR­œ÷0h PA5ã°wpæ÷'à¤.ÚVÂù÷p‡?ÃOgŒVjX‡a®Ì'GWá鮇ˆ:`Î !ÇC„G_ÕÂôD¯]OËËB5œ‹'…éÞiøˆ‘æpÂ÷Ò0:Ìïû +!¯a‚:¾ÇK˜®G†Èã$‹!bêùÃeî-šD«U:Ó’CýˆÐd—ÅsµŽ|P™ÆÌUþ)_€BÍ72»N ¶jïTÅ€‹¦÷â/ãL >èÇz{³”é} bªwd%ºRøv^^Ý|ù|ôÍÛcêÕÅ{`&l6DT(ã2Îwr£)Èï ÊXS™wýRḂ€Û¥Å-(4 ‰®!"®¾Ÿ6 +MC¾g•®æE8ñ¿Õ!¶$.l¥ÆÆȶчø„Ï$D<(#/“,åcÑÌ“e’C~ ZdQ9æc”¯·QíýÖÎX¥¦xFÚ@–îä,Þ«$‚Xw3Ø] h‡l¾Õ¯ãFô‹>@Z†íH¹U*ZHçq–?§_á¼m×ÄËq6)u[8g‘”¿¬è „(6™o@s­N©)“E*«Nò`+týQQ(æ¤rR>z¢»`¬­¿¯»€F&îb¢°Œ!Yù]܉ páÕâ&~ýD…(OÒ;SjšY3†£ª0ßîK%eV)o‘Èî’E‡ÆNÊx“küåQ5}H6ÂÑÖ²<•ñ^f0”'¡½"õ%E#Ÿ}aL«{äO¥ñ9<¬D§çÓðæx6 Æ\Eö€YÛ/ ZS‰½ä¼Ã?Ou¼þ3ÍÌ5in„AJkk¶•ó‹.-æYÁÖAÿËT¿Å³8ƒŽT–D¦é>ÁŠ¾ ;á5/Œ=»=˜“_¸¹7ÍÚxüTWà#|oWÐMt¼^Ìãñ3ú¯•Dÿ•&T£B–,7í{¯Y©p3c¨;}¶ŠÖÛÚ$Ø=hPÄæú˜ó Ý‹gI—ïx”ÖyÖgs©æ/°Mæ„Gà⫶ø›Píendstream +endobj +1412 0 obj << +/Type /Page +/Contents 1413 0 R +/Resources 1411 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1402 0 R +>> endobj +1414 0 obj << +/D [1412 0 R /XYZ 91.925 602.788 null] +>> endobj +1411 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1417 0 obj << +/Length 1962 +/Filter /FlateDecode +>> +stream +xÚ½YYÛ6~ϯð#D¬xˆGŠ<$E¤Í…f_Š6Z¯Ö*[®åmÖÿ¾3ê°%;»E[,`Iäp8ç7C®˜¥ð'fFñTé™I%·ÎÍë'él 3ožˆH‘D’d@óêêÉw¯3=óÜ5»º=esuó˸æóÄZË>}|7wšýúáãû¹`oç‰`/ßÍ¥{õòóÛÏôúæ>ý?¿\qhqâÃçù—«Ÿ¾{íú-a ·ÚŒ¸›HðäÇ«Nn˜Ï.ªÖÒŒtÓv&4WÚ ”ˬæNRdâ¤2cŸæJ²FªÃë~ò +Ô²š½Êülð+c·ð¬@½vùgêM3Ò-%RÀf"löK±@ú¼B–™`·°jW¯ñC²&ðZìËzC³Wô²_¡{"Ë7séØfJøðlV.‹ Ò‘Éõ<‘Åĵ»y”x‹‡·¦üöÅ ÑçM܆Û°¼{ ‚ë2¯ºƒªBé*÷Yt½Ù^Àèä弯Š ­#Áaby&}œ}1±Z‚o[ö·£Õ'O³t¼^qg{ +¡G Fô,æ„ðì3æn6\Í A”ÓãÄÖ ¾F[·áB„e×UMMoc#éW\ètð ÎîW½œøIÛxÅékˆ×`eL +n ‡îùM=2¡Ùå]ŒN™v_âÛ,ÿB + $ïXPànŽá»®h£Ä{@µêÍ`ܱ5’âšj_â6U¹Õ;zÞ„½Ê¦›¸¦¹HzË…k4`Æ´ñ“¯ë;²vÈÙ` á´v üß׸§eÍ +mw»/Q—%}]Õy±sYîšÌã:ZPô¹­òEð:ÚQðáûªebÙ¦³˜lÞ°[2™2®aõ¶Í]„˜DÓµ»ï"ç8D)y’…*äÈF†ÔèªUœ;YÝVEü¬ +ZqM^-k é2¬ ÁÖà àVý.Ž¾Êw»b¿ƒ›|IÙûš|²¬×Åî@“»â†4OPÃÏ&4C”š¤ïBÂN +PüçP¹¹»Æ„ÀÁèØ]ì¸ÅGI@ ËÞP+<`ÐpãHæhÃ>@T:Àoøˆ "‚âaSpÝFê[zicÁ‚zðìòf7-Æ9%p iŸ½[p 6åz[µ…¸ÓZ¡Ð ý„FMyƒÌ„ 0É„™w”|Ös%Ý1:‹Aã Rxó>J1JOÀwm̓A8§i Àë­& —Æ€&\{RDŽ9h®AŠžä{PȘ f^™‰IföñJGÊŸÊ…$n˜öŒPÿ#F“•L­­0 QîìŠÎ"ôäaèÆÞ”Ü9q¶Ö9³-¶#OZø•äÓÈ$À!à, z«#g Ô… ·Ü{j3ËQtB¤“%_Bc'¹w~2Ã-F1SNEv6eô!'ªÿŠqÄÈòIzHFo©E(×m/PÚj$x*ÕQfîŠÉy@¦bBÒŒ›Ë] +0S¦M²¯ˆÖã2ªyfÝÙ*Š¾oS0Ä•”¡ˆ¤Š÷Û.Ìš¦í:€‘‘ +©Êø}¡IA²€Ï“&"˜H‘^ãÁ $² »Ý#qoÇâÙX·ÄIˆ»ãÿ›A}ÖBYH÷¾DÈÍ Mà¡™›0x’ÿ;îhÙ=s9Ï<ð‚jZC(]ÔòÁËT©@ÂX*B¨wOAýclƒbï… Bç/.nuÌ’^wy(T÷qï"–ÆDCnŽ»È«U8–Q'¼¡,XJ>´')SÂIó>sGãOéáiú;ω7¢uBAC"j dëÜð´?"ùÞÇŽ~¶þ.úîÏy×x$Œ -tÏ^h`+ÔY¯&-A"W„OoB»ÒÕpÜ"õ¡?Ô@SŒâº6ÆqÍÄiËc=‚ʺÖò¡C£¶·›8z)Í¥òÿÎáé!ùBÎ:ô÷™=®ÿ§`n Ìu ™° ä€jOr?ÅÆxÜ ¹ $9¬"$71/Ç€-üeYÍ”¬ª§ÖLö†MÓQ4\vGæKýÉEUõXÕS!ô·„°ÇB‹%âíƒMõüùó©’“f²ƒÀÉõî!m¡>Ó}Yžen`©ÑÁô²lI@'=ij·GHwîL +­Wþ‘T7}$MT‹p€'?oµ§ œkÏð‚: Duß„ï2Þ'D^¨ÞJAû_o⺛b¹+ +<XÃÞnh60.㪕߉f •gݽÜ +£#t\Y^HÅT²§Ù4Jž¿0‚²yäæÇ$òãAGÚÇÍ(Ž‡hðtâø$éò¢g1‘)˜IBþ¨d/¢R<ê<ÖGkœ}Œ²gp%ëšás Ô£åÊž‰sLDc©µ¥‹M÷ðhâÝ06j;tÇ Ä°Œ8c)]/hl,ú+ Œn<¡ÇÃ5çà,p:ЙýæU.œ=¢Nt7¡Yñç]fpD®ŠNBhé¦CO +ÔÞ¦èV&Z8þÍ« á 7©}èå-?ýCü·€Ï £òSÿ^ÐäVà×`òoä6&endstream +endobj +1416 0 obj << +/Type /Page +/Contents 1417 0 R +/Resources 1415 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1402 0 R +/Annots [ 1419 0 R ] +>> endobj +1419 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [64.805 528.098 71.779 536.511] +/Subtype /Link +/A << /S /GoTo /D (cite.ROSE) >> +>> endobj +1418 0 obj << +/D [1416 0 R /XYZ 63.034 602.788 null] +>> endobj +250 0 obj << +/D [1416 0 R /XYZ 63.034 584.788 null] +>> endobj +254 0 obj << +/D [1416 0 R /XYZ 63.034 417.022 null] +>> endobj +1415 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F47 596 0 R /F11 674 0 R /F14 1012 0 R /F7 586 0 R /F10 1027 0 R /F1 1058 0 R /F21 1422 0 R /F13 1055 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1426 0 obj << +/Length 3184 +/Filter /FlateDecode +>> +stream +xÚµÛnÛFöÝ_¡·•°àtî—`±@4Û´ÒMý²húÀX²­B]‰ª7ûõ{Îœr(R²Ó¤0` ÉÃ3ç~Š‡?1 ‚if–K漟Ýl¯øìžüëJ$ˆ*TÌ·×Wß¼ö³À‚U³ëÛS,×Ë_æN.~½þá›×F÷`Â)f„´ñêû—?]·ó÷‹J)=7lQ9çæß.*1ù3[ÜWœ©àg°æL„0Û^)é™w&]o®~¾úw!ÙÀ€ªYe¼†;Á;ó 2EÆ SRÌŒ³@}ˆ‚{¹IÜ5ûu ¿÷Û$g׿¤×IÌÛ‡Si <çÓL0áÕ4 WU #& +z„õ€aÈÄæ€Ä£6—‰’kXI‘`c+/@ϸ=gÁÂ7;DöpÄÿí¥4Ì‹e¥¿CØÝj¶1ß=cQ9Î ŠÊ‚¾Ÿ¡n0?{FÙUÕãkDY™·CR×»… ™!Ë X͸ ‰¡zÌ°Éd¨wKb²&w´LˆWw«ý¹LrŸÞþ8¡aÂKXÀ¯&—wlIâWŠn‡lȬ1'Ì„’­ezük>!°wƒeAu¸#ÐÌvàB„T3Âó1ÆŠ™bž‡\l¹‹G‡îa>pÃW¿×,Œ›×›UÒfÔºo“nѯÛõþ¬oà_Ý®$)ì#Â|šà\a™l ÿ¢[ÂåEº!4:yB·`§Þâ•1œyùÕ‚_í|ôSPCˆä¼onÇ¢œiçNÌv`†‡NÇR˜“ïÕt¿JJدÚã~‡ZM»ëþ]ã˜òýÛŸN¥'Ác5ÄÑÌÌ3‚‰—gÂnÆUÈ¢ôJz¤‚ÀéJé½ûñåÂùù&$èÊô.’Ô®A?Êb­|®êhÆ vNÿ››E%½™ÿ,Ęù`5‘ ¬c¼Kfï˜æDåƒ0È»LÒvj¼ƒÍöÍBúùãD$PÚÌó"kX‚«ÒïfU&‚5ddî»h ›¿8¦˜%m¾ +³KŒwëöt5m³`Š›³¥‚ +´ž aê£/±ÙŒ«*lVAfa™a¬»ýÂHˆ”"+k"nbl¶ +ÌÕA-ÍVõfKž}¿"­íWh¨—͆‚2„Ú›=MáWÎoë5>[QÉ’^; „ +À­8 ,aÙ}Òù/‹ WU G«ÛÊ0‘¬ï›·v¨cÁ6Px°—RªšMfcد …½‡½[ã>'±ÿU®SùÀ¸rfžâl=æ +7¡žfÈža(œ0¤ûš…Oe+ÙµS‚4d¡rÀ†}Šß¦2eo¼ÏÑËE÷z9φ)Ù8¥Å;BðYº…fØ-¸ +n›‰êzÕ g7ÆFÛ…œÛ}³À€Â pŠÂq¬XiõÌìÐ$‡Ø•¨SÙˆ¹˜ì8¼vüXÖ™ð;@”Ši÷PÈw Ï/æ/îôÛ„Ò5T=PÑWiü“O0öç}Ú\ ¹ü< [6Ù•}Ïz‚ƒ/wçI J†Ïå*bsâxþ«:^LÃü¢W@ùMî\OFÜçz`vH‡ZêS¿Ž÷ì¦Ú`‹Þ„÷ J¢R•<Ù¼jÝ€Ð4ñþB¥°èòó¸ˆPSè 4çÌúðEELÆUÈFEŒ€ô¦  Ï0¦¥™èhUÀ&C}YG 8$t—•t èÉ$4aЩcŸm~§F©&ƒ é¯×wGlX°ZU +Ê’ðT§õüå¦ÆQéD õô+ÅžOé(`;YÂ'\—PÚ'”iÁÀæp¿Ñ¥È<”t&¡ˆÆ¾©‚ªS]žN+è%,2Eº”)‡øga+ qd›†¨Uœ¢bg†(BcÍÔÀÔƒµYÙ½ÿŒ)“§Í<᪠+dc‚=ÔßrQ‚©Œ+e-™Óyhu}ß,#Hì¹ÓŒø[¼‰?ÒÍÑ’6íúÖ« ¾Ã_>e>ˆpêù¼_2Ÿ„kÄ{É’õP™Êó8ªô85C?âú1D£ 䙉(wó‹=4P‘ Ê¿€¨a{4Êĉf€F>@#è ©À¿GÜvµ‡}­Ÿ7·ã=1TJ5œÂ{fƒîÇÏ^‡ù5šªgZ°!ýzê1GEáÜЦ¹!IãÌIÅÐð +´NÈÊqaI§pž­F“NÁqFê4%{'V˜³"ä< 3È)O+¢¢Þ$ëìnÆÑì¬xµ? Ýg»ØB·ønÌó\§vM{Ÿ;ñ=ÞQ´ b/>ÐÃÀHt«%AÆ{ ÜâpjOë:½¶n U +G˜fOHM68¢‚¬ƒÈ(fˆ$Ù‘ ô³ú&)ȼd.j+ÒÓ®j O‹D^K"Û¡&…î6ÅubŠœ˜n­wôjM—‡HÐCd­nÓk›&²sS·H£@mYo!d¤çÛ¦M¦"¾$Uv‰¼6Ř137hŒ¨–zw‡H¥"s–z¾Äö'Ý‹¶+Óèø^}:>É·G¤ö†Ît’€{ÔXóá‹ë TÇùMÂt<¤aMä× ]œœ%k¤x)“ÜMänJ´‰’Q{îºà]•b“¢‹«±ûâl[ñ@ˆ°ÅP!8–ˆ × F‘6Ià}òsÜb“0tò¥À¿_-±>Wvl´½%'?7˜ùI!- ØS.…Ë>HGÿ¥¸v gëmt‰U¬-jòµlHøx¢b“º‹pR&Šâ{h +‹B)bqñ= OD®w7‰Á¶`¶“Õ¡%8ª!Ñ¢p¾)R+ª¦-õ|¨ ìïbˆÞ|¢›I[ë%]>Þ÷!z\öI<Ô³àÖ~þÏ1G®8Kæyê/á98EIâëøS«” }më%é¦%㊙eDQPÌõ_(Œ(ññ°(MÔ„ö.Ùíè²N·÷xžd:œ1T%G 2–fK%Ð2›‡²¼W¬{7-• FÊX"¥I)ˆFËA-pÓSuIEìAh^•<+ Z¦»~áXe`žÝÔî·Ñû8ÑéÄgœ÷5O%C ÀÝ[¨`iU2~Kcr:Ä–±öŒîˆØR9 h›Ç1ŽéîP=ªçØ*¥ê<’qŸ¨[B¸iÉl“m”ÃFÉ^° +ÙÍ£š[ºéÍ%õsC¤X»CÆ6w—ûB¬!ÏvñÊ0n¬Ò•÷´s®±ðF´ö Êi™{0¼ÝKo™›ãíhÎð[·Sí™-´¾žÐz1КH¯Šy§ûónˆºÀIÈ€å“f5dgÒŽLª1'EJc¢.9nñ8ô,À„Òæ¬éB¸ÛŽôú8Ï)ù‰mØ>2S™*ÜD†Ý·_%OöÒƒ1 ”÷†ºÐxøX¼ƒU:“»³ºrôâIÌÊæ¤+*G—Êf”m|‡ÆÔøZc“ôâª!¸6ƒV–â®Ã¦†a¿rS*¹W}ƒFuwB4³¶«ÔS‡ $5€xŒ¦Ù[¢ +)­@9yâ¸KzuÙ‡[¸jv Qæå‘ó:o°©crÃUC““ºÌ¤ÚÔœÆ+?ÑFRøjS¶ëR +¬é`¾›Ä£#ó’Y~ò!¼ .Ýi¯†²èÿ:6ãq1 ƒ‰‡!ãÈü‘)/þT»ÿáendstream +endobj +1425 0 obj << +/Type /Page +/Contents 1426 0 R +/Resources 1424 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1402 0 R +>> endobj +1427 0 obj << +/D [1425 0 R /XYZ 91.925 602.788 null] +>> endobj +861 0 obj << +/D [1425 0 R /XYZ 247.915 381.118 null] +>> endobj +1424 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F23 1211 0 R /F64 1214 0 R /F48 601 0 R /F11 674 0 R /F10 1027 0 R /F45 589 0 R /F14 1012 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1431 0 obj << +/Length 987 +/Filter /FlateDecode +>> +stream +xÚ­VmoÛ6þ®_¡}“²Šæ;©u)bM‘®iÒÙÀPtEáز#À–\[ž·ýúÅ“d9Š·EëÄ;Þ=÷ð!)Røc¡„ +jʉ±6œ­.Áó6`‘`HrózŒ®• S’jN§i&óÏ‘"’ĉ1&º¿{[}úpw³è&NXtõ>N„Ñë«ñÍØ›wà»?¿ÕnƤŽuŽãøËäÝèÚv%a1ÒFWͼ™´¸%ÕàWg[r00Ø Ÿ‚C(’¦©ó†ßÂÎAÝÈ·àd`t³æá/eð1?¶>+‰5:L8#ép„I¾0‘\C,k)>jCš×óuÌ,÷Ų̂£?ʼn”2¯œkž.Àyeô;˜y1‡ß2æ6:øÑÛúåO÷“­3Çváìê”Là­NÃ#€OšàÊ+tCRa†B˜v³AJœÞ‹xšŒCçÔ%°|ZËNu&´À‰FÕ)à „HÙq²Ê¼Z”îb™!R0T‹£Iéè¡8í3µD¶ùêþü…†sÀ÷. D¤6<€M I¬–Vø¶ +ÆA·æI(9ÊäÁ¢Œ0-{è×›S@ŒI¢˜þ.˜š\çaQÜöI]§;'ŽÇ9sv +ž* +͈æêìºbhrë!ØÞ²ºÃ¤ q(Ó®h½#)IUŠ£P)£¢ÑEœ(®¢Ýc¾¨¼¹Êkê³l[MaKø±u¹/j¿ŽÊ…›ç˼ÚyûbÔ«g±žÅzy¹×›¯«ÝãÜ¿üA…Ö‰ ¦/ü³p\B0ì)Eñ¦#Ü.Šwþ#Æ è%â4N¸nêÖÖ_ˆd›í^Õ惈8Çé Ë9Ö²µÊvhUSdøŸl[6Õ*×ð~[ rÛT ÜEÇæƒ7¾ôOÚÖ§'•„ÁIÿ<=Я'áÔ¦†×B»½ÿz÷ëÕ§arÔÓÊ­š;h9Pú‰µÌÍ ËËmy@R‘ÈE^5,gÞ(²Ã‘vËgõËíÇÓäÕtµ*gH5j6yµße¨ëQ¶Ãì3©ùú›ˆ~¿)ÂœÒ÷âô—í먨¿h0º†ŸÁYc­_¸ì­ípÜr¸ÌÙ-æ#zMZç¦==·»Ä@]ÅàãäŒ~¼¿Ÿ†' +1ˆRþGúÅÿM¯Ú ¶ÌwU¶m—ÅZë´*7¸œõ±XVU¹¦opÛƒUÚé˜má[¦8Ý*LþFW}¥eOnŽîn¨§ãªÎÊ ÎÛoÓí|wî0Qõ÷*ñáåé ŠW^ªˆàéЧSó¥JÿY4¦endstream +endobj +1430 0 obj << +/Type /Page +/Contents 1431 0 R +/Resources 1429 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1433 0 R +>> endobj +1428 0 obj << +/Type /XObject +/Subtype /Form +/FormType 1 +/PTEX.FileName (./pics/sliding_window.pdf) +/PTEX.PageNumber 1 +/PTEX.InfoDict 1434 0 R +/Matrix [1 0 0 1 0 0] +/BBox [0 0 397 136] +/Resources << +/ProcSet [ /PDF /ImageC ] +/ExtGState << +/R7 1435 0 R +>>/XObject << +/R8 1436 0 R +>>>> +/Length 1437 0 R +/Filter /FlateDecode +>> +stream +xœ+T0Ð3T0A(œËUÈ¥d®^ÌU¨`lif®g–04653u ô €ÀÈÒĤZ?ÈBÁ%Ÿ+ ¿"endstream +endobj +1434 0 obj +<< +/Producer (GNU Ghostscript 7.05) +/Creator (tiff2ps) +/Title (sliding_window.tif) +/CreationDate (Wed Dec 24 14:59:04 2003) +>> +endobj +1435 0 obj +<< +/Type /ExtGState +/Name /R7 +/TR /Identity +/OPM 1 +/SM 0.02 +>> +endobj +1436 0 obj +<< +/Subtype /Image +/ColorSpace /DeviceRGB +/Width 1653 +/Height 563 +/BitsPerComponent 8 +/Filter /DCTDecode +/Length 35075 +>> +stream +ÿØÿîAdobedÿÛC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YÿÛC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYÿÀ3u"ÿÄ + ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ×ØÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ + ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ +$4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ×ØÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?ôš(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€³nuÝ:Úò+Y.WÏ•‚*/'>þ•>¥f×öÎðg«'ZñË{f³ñä6Í#Jbº ½ŽIæ€=¾Š( Š( Š( œ šZÎÖtæÔí +s%¸ç%:šC®éßÚ1Ø •k™WšÑ''¥x·„£1xòÞ6bå%uÜzœ^Ðë½}F(*iW‰±Šä€qŒpOÖµëÓ¼%§ˆVù®”ÁïUÝœ÷®ú€ +(¢€ +(¢€#šT‚&–V +Š2IíYú^¿¦êÒ¼vWGN£«­Ô´Û‹Fb¢UÛ‘Ú¹ x2] R{¹îC‚ª=­v”QQÍ*AK+E$ö  (¨àš;˜h[tr ÊÞ¢¤ Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( ¼fãþJWý¾ç^Í^'©4«ñSn¡¦ = Í{ î£g`®î#…Ov4ÛVÃPÏØÝ5Ì¿‚SÝq¬]Í-Ëó„l*ûW¯è—ÞÔ#¸µ™Ì%²Ž?‘ g¢±¼/¬ kFŠäàI÷\{ŠÙ Š+?[Õ"ÑôÉnæè£å¦€,Ý^[ÙÆd¹™"QÝŽ*­¦·¦_Èc´½†WôV®+ÃÚTþ,õ]bFk}ÄGp?ýU·«øFÄZ´údBÒê¹>2G­pžÿ’‰ý|IýkÙ«ÄüæZ™Ždów×5ì½ÍÍ£Eiqöyñãørîþ0F,ÞSä“@¾N5çÿ¼Ov¦YÈI8”©û£Ò»‹ûA}höí,‘êÑœ5y4+]P¶ŽÕ¥a2c#dç4ê^–1áý<!ˆzV®@ϵÂèÞÓn´«;§šì<‘«$ã5?ÄNM'F‚ÒÙÙLçfîøh ›Ä:Dy2ßÀ²tµY›‚ÜFLÇ ƒ÷`hžÑ›I…ä·ŽåäPÆWääÖ ¾/ŽtÆ·.me|¨';N:P¤QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQ\†“q3üAÕài]¢H”ªàtè+¯ Š( Š( Š( Š( Š( ¼fãþJWý¾ç^Í^3qÿ%+þßGó f®gÇöÉ?…®€& ~uÓW/ñé ð½Äly›¿Î€1>JÍk}û¨ÊGãšô:â¾éík¢½Ë¦vàAÒ»Z+Î~+^:GehÈùsøq^^oñ^Ù˜Y\Œí@Pþ4×xF%‹Ã6F7Dýkdô5ÌøPKß@†øÂ>•Ó†€9ÓaŠâT‰¼½È¬@?7¥z5QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEqz?ü”gþ¸¯ô®Ò¸½þJF³ÿ\WúWi@Q@RóR²±éW1Dq€${W%¨üHÓmö‹8¤ºÈ9?woç@Å `z~•ãu«Ý¢9…°RÕ õ®ÃátÒM¤^<®ÎÆ|’Ç=¨¸¢Š(¢Š(¯-ñ7†u[=}õ‹óÔË怣%OÒ½J“­q6? ò„wö—ÜŽ +¢g&«Ía¨øÊþ9nâkM6#•FêõÝùç>Rg×h§€À¼Û@Ä¡cAµ@ì*Z( ³5í&-kL’Ò^ å[ÐÖâ°®·àÝI™c/8â*ý)ÅA  q6~:[kuM^ÎâÔ`íLäÖ]ô^8ÖmäŽÕే5Æ7 ×£´11ËF‡ê¢œª¨0ªzŠe´ mo1Œ$j +–Š(¢Š(¦³*ýâÔÓ«€ø«#ǧØvSæ·CŽÔßu¥¯Ó|m­içþ><ô ´$¼]†—ñ*ÎR‰¨@ð¿4‹È'ØP}EgéúÖ©$fÖê7g‚nù±ô­ +(¢Šó/ÿÈÿ¥ÿÛ?ý +½6¼ËÆ¿ò?éöÏÿB¯M Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( /Gÿ’‘¬ÿ×þ•×Ouol3<ÑÇÆFæ5ÂÃmsuñYŽÖìÚ±‰rÁ0+^ðgˆ3æ4ͨ*¶ÔÉ`=ph¬Ô~!hö›|‚÷Dç;6þuÆjßuKøŒPµCJu`k–º³¹´•ã¸…ãt8`á¨(I®&œƒ4¯! ±8¨è¢€ +õ…÷Vðh×K4ñFLÙؼººÿx>?XÍp÷oŽM˜UÎxÍzÏö—üþ[ÿßÁGö—üþ[ÿßÁ\7ü*ø?è%/ýð(ÿ…_ý¥ÿ¾w?Ú6_óùoÿÚ6_óùoÿpßð«àÿ ”¿÷À£þ|ô—þøÜÿhÙÏå¿ýühÙÏå¿ýüïƒþ‚RÿßøUðÐJ_ûàPsý£eÿ?–ÿ÷ðQý£eÿ?–ÿ÷ðW ÿ +¾ú Kÿ| +?áWÁÿA)ï@Ïö—üþ[ÿßÁGö—üþ[ÿßÁ\7ü*ø?è%/ýð(ÿ…_ý¥ÿ¾w?Ú6_óùoÿÚ6_óùoÿpßð«àÿ ”¿÷À£þ|ô—þøÜÿhÙÏå¿ýühÙÏå¿ýüïƒþ‚RÿßøUðÐJ_ûàPsý£eÿ?–ÿ÷ðQý£eÿ?–ÿ÷ðW ÿ +¾ú Kÿ| +?áWÁÿA)ï@Ïö—üþ[ÿßÁGö—üþ[ÿßÁ\7ü*ø?è%/ýð(ÿ…_ý¥ÿ¾;Ä~Ó¯îšóNÔmíîä0`ŸZňx§NýÝ­ür(ã>rækcþ|ô—þø¯ƒþ‚Rÿ߀*Û_a.µ‹{t=réý+§Ð´í/IÌÏÅÛ}é^POáX_ð«àÿ ”¿÷À£þ|ô—þøÜÿhÙÏå¿ýühÙÏå¿ýüïƒþ‚RÿßøUðÐJ_ûàPsý£eÿ?–ÿ÷ðQý£eÿ?–ÿ÷ðW ÿ +¾ú Kÿ| +?áWÁÿA)ï@Ïö—üþ[ÿßÁGö—üþ[ÿßÁ\7ü*ø?è%/ýð(ÿ…_ý¥ÿ¾w?Ú6_óùoÿÚ6_óùoÿpßð«àÿ ”¿÷À£þ|ô—þøÜÿhÙÏå¿ýühÙÏå¿ýüïƒþ‚RÿßøUðÐJ_ûàPsý£eÿ?–ÿ÷ðQý£eÿ?–ÿ÷ðW ÿ +¾ú Kÿ| +?áWÁÿA)ï@Ïö—üþ[ÿßÁ\Å+«yì,D3G!6B08âŸÿ +¾ú Kÿ| +ç)dÃÄíŽêpk©Ó|¬Y&uºM¡BÈ1ʹ:(×4ψÚeÉ x¯jÁr\ò¤ú WWg¨ÙßFmq×p¹ÇÒ¾|Šf E9'(ÍuZ7ƒ|Bò4‘n±eãs±RAôÅkø×þGý/þÙÿèUéµäzå•ÆŸâý"Þæí®|¿‡?{§½zåQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEqz?ü”gþ¸¯ô®Ò¸½þJF³ÿ\WúWi@®ì-o¢1][Ç*’sÍrÚ¯ÃÍ.óÍ{RÖ³9c”_»*(Ç5_‡Ú­—šöán¡AWï7á\½Õ•Íœ¦+˜$†@2U×¾‹ª×v6·‘v¯WøSÿ K¿úïýYÕ>iWež×u«íª}ÜúšÑð‡äðí„Öò̳$Þ +ŒcŒPCEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP^}ñcþAöõÕ¿•z s~1ðä¾#¶·Š)Ò–%†sÅxI¼×¬pÆÒ;œ*¨É&½WJøqamåI}+\H¤îQÂ7õ®²ÇJ±ÓâX­-£‰ä`t?Zò-/ÀšÅøWxE¼{¶·™ÃëŠìtφú}¸ÍìÏrá²6ü£„WsES²Òìl–ÒÖ(C«Ö®QEy—äÒÿíŸþ…^›^eã_ùô¿ûgÿ¡W¦ÐEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP£ÿÉHÖëŠÿJí+‹Ñÿä¤k?õÅ¥v”QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEæ^5ÿ‘ÿKÿ¶úzmy—äÒÿíŸþ…^›@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@^ÿ%#Yÿ®+ý+´®/Gÿ’‘¬ÿ×þ•ÚPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP™x×þGý/þÙÿèUéµæ^5ÿ‘ÿKÿ¶úzmQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEqz?ü”gþ¸¯ô®Ò¸½þJF³ÿ\WúWi@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@eã_ùô¿ûgÿ¡W¦×™x×þGý/þÙÿèUé´QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEÅèÿòR5Ÿúâ¿Ò»Jâôù)Ïýq_é]¥QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEy—äÒÿíŸþ…^›^eã_ùô¿ûgÿ¡W¦ÐEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP£ÿÉHÖëŠÿJí+‹Ñÿä¤k?õÅ¥v”QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEæ^5ÿ‘ÿKÿ¶úzmy—äÒÿíŸþ…^›@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@^ÿ%#Yÿ®+ý+´¬ {o_ê¯"nP*¨ê1Ž¿•oÐEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP™x×þGý/þÙÿèUéµÈxƒÂ÷Z§‰¬õ(¥‰bƒfåläàæºú(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š+½ñü–Þ k!j º>Æ<îϵwÕ/†ô¹µ}%°7ç9ã?J×S¹Aõ¥¤éK@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@eÂE¥Gì?j_´gúõ©^~|1ñÛ~Ò¿gó<ÌgæÎs@ƒE àRÐEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEVëP³³e[«¨afÜ Ðª+Õ> é6A–ܽԪÛJ¨Àúƒ\v«ñT»ó#µ kl£/ßë@³uymg Ks2Eõf8ÅcCâý&ãWN‚V–YeOµâ×w÷wÓ<·3É+¿Þ,zÖ§‚¿älÓ¿ë§ô4î´QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQERëQ³³ÇÚnb‹qÀÜÝj®µg}w[;ϳ§;G$׉]µÈÕÚ+™^I]¤±î }FGJZd_ê“ýÑO Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Šæ¼EâIô¨¥6öÊ#ë!Qþ5Éøsź¦±â«H¦—dNcN‡Šõ(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +)+—×tŸÜÛ4v:ªaÛȨö#šÝ½Ôì¬#wº¹Ž0ƒ, s¥rš§Äm:غY#ܶܫŽ>‡½yþµ¢ë–²<ÚŒ3¸Ý³Îc¸5bTAv4Ôê~=Ö/‰H¶±²ídŒg>ù5ÌÍ<Óf•ä#¡v'QEVï‚¿älÓ¿ë§ô5…W´kk›ÍVÞÞÊO*áÛùÆÖ€>„¢¼ËþÐXßöÿ +?áñwý‡ýÿoð M¢¼ËþÐXßöÿ +?áñwý‡ýÿoð M¢¼ËþÐXßöÿ +?áñwý‡ýÿoð M¢¼ËþÐXßöÿ +?áñwý‡ýÿoð M¢¼ËþÐXßöÿ +?áñwý‡ýÿoð M¢¼ËþÐXßöÿ +?áñwý‡ýÿoð M¢¼ËþÐXßöÿ +?áñwý‡ýÿoð M¢¼ËþÐXßöÿ +?áñwý‡ýÿoð M¢¼ËþÐXßöÿ +?áñwý‡ýÿoð M¢¼ËþÐXßöÿ +?áñwý‡ýÿoð M¢¼ËþÐXßöÿ +?áñwý‡ýÿoð M¢¼ËþÐXßöÿ +?áñwý‡ýÿoð M¢¼ËþÐXßöÿ +?áñwý‡ýÿoð M¢¼ËþÐXßöÿ +?áñwý‡ýÿoð M¢¼ËþÐXßöÿ +?áñwý‡ýÿoð M¢¼ËþÐXßöÿ +?áñwý‡ýÿoð M¢¼ËþÐXßöÿ +Qá/†Õ†?ë»…ze*Éjç,ª>§%QEQEQE%x±ÿ#=×ý|Ÿý +½ò¼Xÿ‘žëþ¾Oþ…@õú¤ÿtS鑪O÷E>€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€3|@Šú ða‘ä±ý+È|ÿ#uÔÿ#^Á®ÿÈ +ÿþ¸?ò¯ðüÖ?Sü{…Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@T0ÃG½aê~Ñõ5:ÕRGmÍ$|1?ZÝ¢€<ÏUøfëæɦ܆çäŠOO­rŸ†õ]-¤ûE¤›#Áie:÷ºkªº•u §¨#"€>o Ž£W»jžÒ5O1¦µE™×ošœúv®?TødêYôÛ¼¨\ˆå3¯JóšÝðWüšwýtþ† Ô|5«i®æÎNWvPn}EOà¯ù4ïúéý {­Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@ ^¬ÈÏuÿ_'ÿB¯|¯Ö?ägºÿ¯“ÿ¡P½Eþ©?Ýúd_ê“ýÑO Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š(  ýwþ@WÿõÁÿ•xÿ€ÿän±úŸäkÖ¼Ks¶zÒ¸PÑ2Œž¤ŠòÏ¿Šl¤•‚ b ?J÷J)  ÒÐEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP2†R¬`ƒÞ³[AÓ ô‹iOÜdqø +Ó¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¯9ñOŒõm+[{h"D‚3üKã×4èµá²Ú›ÏKŒ—ºaƽJñÖŸ}`Ï3y*¿êÏñj£àïÊÚ¤úÝôe ŽZ$aÏ'­wh0Š=:Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(ÿÃZn£+½ÚK!s’ ­·òÍSЂ,È#¸‘«¥¢€)iúm¾šŒ¶þfß!oçWh¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +§{¦YjvÑÌ÷…\¢€3-t *Í÷ÛØÃz…­ 00)h Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( ’–¢¸ÿyÜ?Ê€$R¤{ŠZÉðÇ>°Ïüò­@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@6pAÇ©kA?é:·ý}·òµ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Eqÿòÿ¸•KQ\Ǽ¿îå@Þÿ‘oOÿ®Bµ«'Âÿò-éÿõÈVµQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEbèñó«×Û![U‹ Çέÿ_mü…mPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPQ\Ǽ¿îåRÔWñï/û‡ùPw…ÿä[Óÿë­jÉð¿ü‹zýr­@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@ºü|êßõößÈVÕbèñó«×Û![TQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQERR×%ã½*æçNkÛ næÊDä^üPY‘QÜôyÜ?ʾ:®¢ öäÛÌ4‡UÔÁ½¸Çýt4î?ñMéÿõÈV®E|òšôh/'U^8jº“íÉ'€†€>„¥®gÀÖ7vš ’úYžyÎò²œí±]5QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE”µ•â-1µ=2Hã–X¦@Z6‰°sé@™dWÏ÷Ú­¬ï ÷wI"2*/ímGþ®?ïá lÐúN­ÿ_mü…läWÏ ©_!b—s©c“‰&ý­¨ÿÏõÇýü4ô.ikÉþÁ©êzÂÜÍstmmþbK’¬Þœ×¬PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPIÖ–Šñ¯øwû#RûEº»[\e‰#…oL×%_Aë:dZ¾™5”ĪÈ>ðê x>©a.™¨Mi(;£b#‡­T®³À~“UÕ£º’3öKvÜÍœe‡@+™³µ’öî+h@2JÁW>¦½ÛÃZ:hšDV ) ÈÊ1¹¨V–Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(Î>$øwrÿkÛ+³ð%P21ë^i_GËËÆã*àƒ^âí´-Y¡RÍüѹ¦h­iÖRêÑ[BŒÍ#òŒàzÕZõ¯‡^_ÚSîÜ.0ÆÕ ŸCÒ¡Ñ´¸¬à$ªrIîOZÑ¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢šÿêÛèh)¯-­Ø,÷FÄgàûNÃþmÿïà¯'ÐtFñf­|——³)ƒî±ùŽ79®‡þ}·ýfÿ¾vÿÚvóûoÿÚvóûoÿqð«í¿è#7ýð(ÿ…_mÿA¿ï@¿ö‡üþÛÿßÁGö‡üþÛÿßÁ\Gü*ûoúÍÿ| +?áWÛÐFoûàPoý§aÿ?¶ÿ÷ðQý§aÿ?¶ÿ÷ðWÿ +¾Ûþ‚3ßøUößô›þøÛÿiØÏí¿ýüiØÏí¿ýüį¶ÿ Œß÷À£þ}·ýfÿ¾vÿÚvóûoÿÚvóûoÿqð«í¿è#7ýð(ÿ…_mÿA¿ï@¿ö‡üþÛÿßÁGö‡üþÛÿßÁ\Gü*ûoúÍÿ| +?áWÛÐFoûàPoý§aÿ?¶ÿ÷ðQý§aÿ?¶ÿ÷ðWÿ +¾Ûþ‚3ß¹ßxF/ÚA4WO1•ÊÊ8 YþÓ°ÿŸÛûø(þÓ°ÿŸÛûø+Ìü5àX5½+é/d‰¤$m +8­_øUößô›þøÛÿiØÏí¿ýüiØÏí¿ýüį¶ÿ Œß÷À£þ}·ýfÿ¾vÿÚvóûoÿÚvóûoÿqð«í¿è#7ýð(ÿ…_mÿA¿ï@¿ö‡üþÛÿßÁGö‡üþÛÿßÁ\Gü*ûoúÍÿ| +?áWÛÐFoûàPoý§aÿ?¶ÿ÷ðQý§aÿ?¶ÿ÷ðWÿ +¾Ûþ‚3ßøUößô›þøÛÿiØÏí¿ýüiØÏí¿ýüį¶ÿ Œß÷À£þ}·ýfÿ¾vÿÚvóûoÿÚvóûoÿqð«í¿è#7ýð(ÿ…_mÿA¿ï@¿ö‡üþÛÿßÁGö‡üþÛÿßÁ\Gü*ûoúÍÿ| +â|G£&®=&iTùÈÁæ€=·ûNÃþmÿïà£ûNÃþmÿïà®>[2+hÍÈÏÜ¿ð«í¿è#7ýð(·þÓ°ÿŸÛûø(þÓ°ÿŸÛûø+ˆÿ…_mÿA¿ïGü*ûoúÍÿ| +íÿ´ì?çößþþ +?´ì?çößþþ +â?áWÛÐFoûàQÿ +¾Ûþ‚3߀;í;ùý·ÿ¿‚í;ùý·ÿ¿‚¸øUößô›þø¯¶ÿ Œß÷À ßûNÃþmÿïà£ûNÃþmÿïà®#þ}·ýfÿ¾ð«í¿è#7ýð(·þÓ°ÿŸÛûø(þÓ°ÿŸÛûø+ˆÿ…_mÿA¿ïGü*ûoúÍÿ| +íÿ´ì?çößþþ +?´ì?çößþþ +â?áWÛÐFoûàQÿ +¾Ûþ‚3߀;í;ùý·ÿ¿‚í;ùý·ÿ¿‚¸gøcl±³hÍÀ'î +æ|'áxüAwy —/·Æ +Œç’(×ÿ´ì?çößþþ +?´ì?çößþþ +â?áWÛÐFoûàQÿ +¾Ûþ‚3߀;í;ùý·ÿ¿‚í;ùý·ÿ¿‚¸øUößô›þø¯¶ÿ Œß÷À ßûNÃþmÿïà£ûNÃþmÿïà®#þ}·ýfÿ¾ð«í¿è#7ýð(·þÓ°ÿŸÛûø(þÓ°ÿŸÛûø+ˆÿ…_mÿA¿ïGü*ûoúÍÿ| +íÿ´ì?çößþþ +?´ì?çößþþ +â?áWÛÐFoûàQÿ +¾Ûþ‚3߀;í;ùý·ÿ¿‚í;ùý·ÿ¿‚¸øUößô›þø¯¶ÿ Œß÷À ßûNÃþmÿïà£ûNÃþmÿïà®#þ}·ýfÿ¾ð«í¿è#7ýð(·þÓ°ÿŸÛûø(þÓ°ÿŸÛûø+É|cá8¼9mo,WO1•ÊÊ0+vÏᵵ͔BU2ƯƒŒŒÐ{ý§aÿ?¶ÿ÷ðQý§aÿ?¶ÿ÷ðWÿ +¾Ûþ‚3ßøUößô›þøÛÿiØÏí¿ýüiØÏí¿ýüį¶ÿ Œß÷À£þ}·ýfÿ¾vÿÚvóûoÿÚvóûoÿqð«í¿è#7ýð(ÿ…_mÿA¿ï@¿ö‡üþÛÿßÁ\_Ä+ JÃíÐ^ÛùöÊr¡Á.?Æ™ÿ +¾Ûþ‚3ßøUößô›þø›ðãN²I«ww +2’‰°ëÍzOö‡üþÛÿßÁ\Gü*û_úÍÿ| +?áWÛÐFoûàPoý§aÿ?¶ÿ÷ðQý§aÿ?¶ÿ÷ðWÿ +¾Ûþ‚3ßøUößô›þøÛÿiØÏí¿ýüiØÏí¿ýüį¶ÿ Œß÷À¨o>Û[YÍ0Ô%cÆÁÎw¿ÚvóûoÿÚvóûoÿx·„´ñ§%¬“´!#/¹F{×eÿ +¾Ûþ‚3߀;í;ùý·ÿ¿‚í;ùý·ÿ¿‚¸øUößô›þø¯¶ÿ Œß÷À ßûNÃþmÿïà£ûNÃþmÿïà®#þ}·ýfÿ¾ð«í¿è#7ýð(·þÓ°ÿŸÛûø(þÓ°ÿŸÛûø+ˆÿ…_mÿA¿ïGü*ûoúÍÿ| +íÿ´ì?çößþþ +?´ì?çößþþ +â?áWÛÐFoûàQÿ +¾Ûþ‚3߀;í;ùý·ÿ¿‚í;ùý·ÿ¿‚¸øUößô›þø¯¶ÿ Œß÷À ßûNÃþmÿïà£ûNÃþmÿïà®#þ}·ýfÿ¾ð«í¿è#7ýð(·þÓ°ÿŸÛûø(þÓ°ÿŸÛûø+ˆÿ…_mÿA¿ï\¿‹|/‡îlâŽåæÉaŒr(×ÿ´ì?çößþþ +?´ì?çößþþ +á£øclñ«hÍÈî +wü*ûoúÍÿ| +íÿ´ì?çößþþ +?´ì?çößþþ +â?áWÛÐFoûàQÿ +¾Ûþ‚3߀;í;ùý·ÿ¿‚í;ùý·ÿ¿‚¸øUößô›þø¯¶ÿ Œß÷À ßûNÃþmÿïà£ûNÃþmÿïà®#þ}·ýfÿ¾ð«í¿è#7ýð(·þÓ°ÿŸÛûø(þÓ°ÿŸÛûø+ˆÿ…_mÿA¿ïGü*ûoúÍÿ| +íÿ´ì?çößþþ +?´ì?çößþþ +â?áWÛÐFoûàQÿ +¾Ûþ‚3߀;í;ùý·ÿ¿‚í;ùý·ÿ¿‚¸øUößô›þø¯¶ÿ Œß÷À ßûNÃþmÿïà£ûNÃþmÿïà®þ[*1þÑ›Ÿ¸+˜ð§†#×ï/ ’åáý +ŒçœP¯ÿiØÏí¿ýüiØÏí¿ýüį¶ÿ Œß÷À£þ}·ýfÿ¾vÿÚvóûoÿÚvóûoÿqð«í¿è#7ýð(ÿ…_mÿA¿ï@¿ö‡üþÛÿßÁGö‡üþÛÿßÁ\Gü*ûoúÍÿ| +?áWÛÐFoûàPoý§aÿ?¶ÿ÷ðQý§aÿ?¶ÿ÷ðWÿ +¾Ûþ‚3ßøUößô›þøÛÿiØÏí¿ýü‹â›}7]Ò^Üß[$‹ó#o^¬/øUößô›þø¯¶ÿ Œß÷À SÁÚMµî´Zîê(¢µ`Çqy¶kØF¥§¨^[: ®'þ}¯ýfÿ¾ð«í¿è#7ýð(·þÓ°ÿŸÛûø(þÓ°ÿŸÛûø+ˆÿ…_mÿA¿ïGü*ûoúÍÿ| +îR±f +·<$ÕªñÏøQ<3­ÄrJòHG#p3šõ}%™ô›6bYŒ*I=ø  ”QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQERRÐEPEPEPE`YjzœÞ#¸³šÏe’’\u­ [QþͶóE¼³±è±ŒÐú+ð·‹'×µ«‹gaŠ4,ûÙÎ9®Â€ ++×SÔåñ,öRÙí²AòÍŽµ¿@Q@Q@Q@Q@Q@Ìø›Å-¢+„²–\qæc + ]ð®«.³¢E{:ª»³ /N lÑY~!½¼°ÒÞ{ >p@ ŒÕ.yîtè&¹‹Ê™×,ž†€-ÑEQEQXjzšø¡,VÏ6%rfÅoÐE%-Ù?Õ·ÐÓ©²«o¡ 6øeÿ!½_éÿ³ôºóO†_òÕþŸû1¯K Š( Š( Š( Š( Š( Š( ¸Šÿò ²ÿ®§ùW\ÅùÙ×Sü¨_áçüŠ6¿ï7󮢹‡Ÿò(Úÿ¼ßκŠ(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š+Æþ ÈêßHëÙ+Æþ ÈêßHèØbÿTŸîŠ}2/õIþè§ÐEPEPEPEPEPEPs©“ýÓü«Î~ÿÈSVü?ô#^7ú™?Ý?ʼçáü…5oÃÿB4éTQEQEQEQEQEQEQEy÷ÅùØ×VþUÚéò²ÿ® ÿ Šâ¾,È>Ãþº·ò®×HÿE—ýpOýPÊ(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +§«È&óþ¸·ò«•OVÿMçýqoå@að·þF)ÿë‰þb½n¼“áoüŒSÿ×üÅzÝQEQEQEQEQEQEæß¿ä!¤þ?ÌW¤×›|Rÿ†“øÿ1@‹úˆÿÝʤ¨àÿQû£ùT”QEQEQEQEQEQEÉÕ?û¦¼ãá‡ü…µoóüF½_õOþé¯8øaÿ!m[üÿ J¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(Ïþ,È:Ãþº·ò®ÏGÿ=—ýqOå\gÅùX×VþUÙèÿò²ÿ®)ü¨íQ@Q@ @ ô ×3ãµA¦Ü\Ù^ˆ"†2Å@äúóTþM$ú ÃÊìîn,sØPgEPEPEPEPH=5“â }F{6þϺåT’qÉ®OáÌ÷W›ÜÊÒ¾W–?Zô*¡£¹ˆÏm,JÅ ©PõeøoG›F´’®šä»îö  š(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +B@êqK^}ñ û^ÎÌÜ­öÛf}žZ u @##š ©±ü$Åü/§3Iˆdš”è4V/…5s­h±\¾<Áò¾=jojñhºd—RrG +¾¦€5(®cJÓîu{½Ôn§VœnD…ʧNµÌëúdžuˆí’ùšÒb6¼ƒqñ M¢³´¸oPy—WßiGPTyaqùVU]Jú6Ê[©Î~µ‰§Cy®À//f’$æ8bb¤s@À>¼8é·ùŠá×üŠVßï7ó¬_Ø^iš,™'³”€ë)ÜWŸZÚøuÿ"•·ûÍüè©¢¸__ëº}«O ‘Åh_`Ù÷¹é]„f’ãÃ62Ìí$Y˜äžhjŠË×õx´]2K¹y#…_SYšM…α`—º•ÔêÓè¹@ªztë@=æzÍþ±áb;d¾f´œ¯ ÜT~5ÚAª–¯ ½K§t0Ñ„ ïÅkÐH$àWš[jºÏü'Ö¶…Ç +ü¢p¤`‘^‰{h—¶í­"£u(ÛOç@°×VûǶÖVòn†ßv±]y&‘¥@¿g°F–8P¸†éë^Ÿa§Ç`Œ±É4Ž{!oç@)²«o¡§SdÿVßC@mðËþCz¿Óÿf5éuæŸ ¿ä7«ý?öc^—@Q@Q@Q@Q@Q@Q@pÿäeÿ]Oò®þ¸Šÿò ²ÿ®§ùP¿ÃÏùmÞoç]Erÿ?äQµÿy¿uQEQEQEQEQEQEWü@ÿ‘Õ¾‘ײWü@ÿ‘Õ¾‘аÅþ©?Ýúd_ê“ýÑO Š( Š( Š( Š( Š( Š( æÿS'û§ùWœü/ÿ¦­øèF½oõ2º•yÏÂÿù +j߇þ„hÒ¨¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Šóï‹ò°ÿ®­ü«µÒ?äeÿ\ÿAÅ|Xÿ}‡ýuoå]®‘ÿ ‹/úàŸú  ”QEQEQEQEQEQEOVÿMçýqoåW*ž­ÿ ›ÏúâßÊ€<ÃáoüŒSÿ×üÅzÝy'Âßù§ÿ®'ùŠõº(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š+;)ÈCIü˜¯I¯6ø¥ÿ! 'ñþb€=õÿº?•IQÁþ¢?÷Gò©(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(’ÿª÷MyÇÃù jßçøz<¿êŸýÓ^qðÃþBÚ·ùþ#@•EPEPEPEPEPEPEPŸüXÿu‡ýuoå]žÿ {/úâŸÊ¸Ï‹ò°ÿ®­ü«³Ñÿäeÿ\SùPÚ(¢€ +(¢€2üW=áHŽ±æk7ÃÌyˆAè‹ì(Qµý:â9aIñ!FÀu+ž=ëøUþ»Tú¯õ®ËÄT–›2º"©*ýÔ×ð bMLzþ´ès\Cn…æ‘#QÝŽ* ?S³Ô„¦Îa(‰¶±eø³G¶Ô4»™¦/¾(‰\7 ô¬…ò ¾ÿ®ÃùPqquªžTG?1ÅWµÕ¬o-^æ „hŠ—<EaxãG¶¹Ño/d2yÑG¹~cjÅø}¥&¡¡º‘žÝf8‡± ÒÉ"D…ä`Š:’p*ž‰ÿ [úàŸÊ¹ê2]xžÃDÜVÝÝL 4ÓIâm*#óÜ?¼#b?²*ô[þA7ŸõÅÿ‘¯>Ñü][ϬŸÊ½VÿMçýqähŠøOÿ:‡ýu_å]WŠ¿äYÔë‹W+ðŸþ‘$Ó “Ȩˆ×9áû=9lVægìrÏóº$Š'¶ EñíKJ±ƒæ˜¹ÈÇ5Þ[¡ŠÚ(ÏU@§ð‰§Á¢ÚÝ} ÅÓqæ< µo‚Èäó;¿ù+ÿ¼¿úzmy•Ùÿ‹¹ûËÿ W¦Ð™i?òV.¾²è5éµæ:q|W¹2¡™ñžüW¥‰c2éqÉ\ò(ôÙ?Õ·ÐÓ©²«o¡ 6øeÿ!½_éÿ³ôºóO†_òÕþŸû1¯K Š( Š( Š( Š( Š( Š( ¸Šÿò ²ÿ®§ùW\ÅùÙ×Sü¨_áçüŠ6¿ï7󮢹‡Ÿò(Úÿ¼ßκŠ(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š+Æþ ÈêßHëÙ+Æþ ÈêßHèØbÿTŸîŠ}2/õIþè§ÐEPEPEPEPEPEPs©“ýÓü«Î~ÿÈSVü?ô#^7ú™?Ý?ʼçáü…5oÃÿB4éTQEQEQEQEQEQEQEy÷ÅùØ×VþUÚéò²ÿ® ÿ Šâ¾,È>Ãþº·ò®×HÿE—ýpOýPÊ(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +§«È&óþ¸·ò«•OVÿMçýqoå@að·þF)ÿë‰þb½n¼“áoüŒSÿ×üÅzÝQEQEQEQEQEQEæß¿ä!¤þ?ÌW¤×›|Rÿ†“øÿ1@‹úˆÿÝʤ¨àÿQû£ùT”QEQEQEQEQEQEÉÕ?û¦¼ãá‡ü…µoóüF½_õOþé¯8øaÿ!m[üÿ J¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(Ïþ,È:Ãþº·ò®ÏGÿ=—ýqOå\gÅùX×VþUÙèÿò²ÿ®)ü¨íQ@Q@)ÿ‘gRÿ® \ÿÂÏù§ÿ¯ƒü…kxÇPµ·Ð/ –tY¤ˆª¦~cŸjçþjéZË:$ÆbB±ÆrJÌÖ.~Åñ9g›ýXu=9\W¨â`D û +â~ xjmDGb»§ˆa”u#Ö±t_ÝéP-¦§k$¦>ôoÇ4éÒˆ!ŒÉ y$Iqs µ«ÜJábUÜOµq°ê—þ.š8!´{[Á¥wêÃÐVç‹,e»ðÅ͵¨;ÂŒè(žŸ¨Þøˆ»ØâÎÁ[L|Ò}=+”øaÆ›±ÝÉÜîrÍÈ«ž +ñM®™¦2ý$ŠX‰Ú['Ò¨üAº¹½’Âåí^e'an§§_Jê¼tξ ss„•7€%Y<)hªrS þub) ñ&‡$ ˆ^0¡Ýqób¸P¾ðUü¶—ð;Y3gp}A OºÿI¿Üoå^}ð«ýv©õ_ë[Òx²ÛQ¶x´¤’âWCœ¡ +¼w5È|>¿¸°»ºU±šqpGÌ£c=èÒuÏù_×þUÈ|(ÿ]÷ývʺOj6¶º-ÒO2G$°[žG¥r? õ [{K¸'#‘ä ¡Ž3ÅuÞ0ÿ‘WQÿ®&±¾ȲßõÝ¿¥_ñ®¡k‡¯­ÞtI3Ï>ÕðËPµDkY'DŸÎ$#œc­ñþEϪÿ1IðóþE_÷›ùÕˆZ…ªøræ×ÏC;0rzç¥7áÞ¡j|;oiç Y¾BpNMSñΕ<:…¾»h¡š7Žüt®†ÓÄúlÖI+ÎM¹1·ÞÏÒ¹_ë7vZÕ¬o5Œd9¤>”ƒâ&–1ÿ†ÈïòЗ‡´¹o¼Mu¯\ÄÑ#B¬0}3]­q:oÄM:îé ’ÞKec€ÌA¥vªÁ”2Aä@ ^gãÙ¦µt­* .‘³É!ûÒHrÍøÖ…SdÿVßCN¦Éþ­¾†€<Ûá—ü†õ§þÌkÒëÍ>ÈoWúìƽ.€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +à>+ÿÈ.ËþºŸå]ýpÿäeÿ]Oò  ‡Ÿò(Úÿ¼ßκŠåþÈ£kþó:ê(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¯øÿ#«}#¯d¯øÿ#«}# a‹ýRº)ôÈ¿Õ'û¢Ÿ@Q@Q@Q@Q@Q@Q@Íþ¦O÷Oò¯9ø_ÿ!M[ðÿÐz4ßêdÿtÿ*óŸ…ÿòÕ¿ýÐ¥QEQEQEQEQEQEQEçß?äaÿ][ùWk¤È"Ëþ¸'þ‚+Šø±ÿ ûúêßÊ»]#þA_õÁ?ô@(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š*ž­ÿ ›ÏúâßÊ®U=[þA7ŸõÅ¿•y‡Âßù§ÿ®'ùŠõºòO…¿ò1Oÿ\OóëtQEQEQEQEQEQEW›|Rÿ†“øÿ1^“^mñKþBOãüÅz,ê#ÿt*’£ƒýDîåRPEPEPEPEPEPEP%ÿTÿîšó†òÕ¿ÏñôyÕ?û¦¼ãá‡ü…µoóüF€=*Š( Š( Š( Š( Š( Š( Š( ?ø±ÿ ëúêßÊ»=þ@ö_õÅ?•qŸ?äaÿ][ùWg£ÿÈËþ¸§ò  ´QEQEVžÂÒâMóÛC+ôÜè ¦&—`Œ,­ÕÈ"1‘W( ªÒiÖR¾ù- võdÕª(‘Æ‘ XÑQGeêZ(·Ø-<ß7ì°ùwlüêIí ¸P³Ä’¨èA©h ¢,h*Ž€ LžÚ …Ûg«¸®;_ðX½¾:†pm®ó“Ž„úÐIý“§Ï·ýú­hšT–oµ†6Æ¢…;»t¬‹k?Aˆþ×hÑânMnéú]ÀuŸS¹ûLâ…_€,YY#i¶÷q$¦8Ôã¡l¬°  È88ÿ +ÇMÿŸËŸÒøV:oüþ\þ”Ôÿoi?ô¶ÿ¿‚íí'þ‚6ß÷ðW-ÿ +ÇMÿŸËŸÒøV:oüþ\þ”Ôÿoi?ô¶ÿ¿‚íí'þ‚6ß÷ðW-ÿ +ÇMÿŸËŸÒøV:oüþ\þ”Ôÿoi?ô¶ÿ¿‚íí'þ‚6ß÷ðW-ÿ +ÇMÿŸËŸÒøV:oüþ\þ”Ôÿoi?ô¶ÿ¿‚íí'þ‚6ß÷ðW” [ÿbyÒyÆþ7}Ü×]ÿ +ÇMÿŸËŸÒ€:Ÿíí'þ‚6ß÷ðQý½¤ÿÐFÛþþ +å¿áXé¿óùsúQÿ +ÇMÿŸËŸÒ€:Ÿíí'þ‚6ß÷ðQý½¤ÿÐFÛþþ +å¿áXé¿óùsúQÿ +ÇMÿŸËŸÒ€:Ÿíí'þ‚6ß÷ðU]O\ÒßLºTÔ-™š& > endobj +862 0 obj << +/D [1430 0 R /XYZ 204.254 438.826 null] +>> endobj +1429 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R /F59 1176 0 R >> +/XObject << /Im2 1428 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1440 0 obj << +/Length 1417 +/Filter /FlateDecode +>> +stream +xÚ­WÛŽÛ6}߯ð[å,ÄI‘’&Àf“4Û"hú¥h‹ÀÙ&*K†$¯7ùúÎCE’µÛ>,^F3gÎ\HñY?>Ë8Ë„šéH°$MgëÃU4ÛÁÎOWœ$B {2oW7ïÓYÆ2-g‹íXËbóGÄó¿?ß¼Wñw1žH¦¸µ(q÷áöÓâÝœŸç¡”q ØxÝ‚ÙUy3Ú®`TŸ—_É~]Ê ¤7TÜUǯŒm |OQ’Atšû!j«Á¦ÆÜòVšÜ¿P~!êØšlV5QZÕ$dÊmÅ&qdÇdæ(_Î?aíqœA§‹\yé“äëW]ÒØçc‚N$û^Ÿ‚s(Ì”:È–zz‰!LÈÍ8Áü†Âpï…c4 'V‰Kq¢D†Ý*’“êãQæËëjñ¢:çDîÆì –^ÛS,ë8_]ž¼7s¥¡Ašå +ô5™ÙÕ9À®½MX–nòÍ‚«a…ú~Ê”J€8ÃÕw¬í8íƒc)çdþÔ8¿y°¹@)ãÊã\C 'â„Ö¡}–ëŽÇnc£ÃξNPÅpûHž¤FC ³n7‰C·EO±[ 8&h¼†·–¬ÕšÌ°î…VVÄqgº(2lçˆç(¦žG$Wšé”‘îÔYL“ ôŒYWSMØÜã#Rh5› ZhM…âËÂíú`ãÒªÈÝ¢¡Wlóúœ2Õó†€g8k»àZ$š‰ÈG»á˜m©ïKb $xi³‰‘ gbc6#c>Z ˜¹±°\ÜŽu …¥mi™Á ®ÙÉδnvÞW—y£$ã]b¸KÀØ)ÁÝóÆE%!°7=€g\>àð)ü<,:üÒŽë¥qw”-©fq¢”ä›]ŽñŠU/¼Æƒ¸ˆ6n‚ Ñ>dpFz¬rd¥šCòŸÝNµuÏüq¹¶ ²4U]öÿLßQ™çgƒ†€xÂSa=àŸë7’ÂSbžZF½$™y_±õf™ý¦Je)}ûÀ— bü–CÃ‹Æ 6ƒ™œã}{.¹o‚÷ÔÂKL&êãDÇ'àŸIwr¼5TÔŽD—ΑïD0æÁÑvëëéÍëÆmTÛK2¡‰GR=‰!eqêÒš|Ù™/È$ ¬Ù¼¶éï8Þ\bk¬Ì¶¥ì²k>ûpÜ NmÝïö¾'§ölÀ6nCSFc.ª!¥jŸŸ"¤ªíŒ;ÊBèà¢qÑw'd¥) +Ê>ÈK;À³ðHrÕ([jÓêgnÛ+„Þáõ¬Û}ßØøÛ–>I!†‰/[¨L–Ø­·ùáÊ4endstream +endobj +1439 0 obj << +/Type /Page +/Contents 1440 0 R +/Resources 1438 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1433 0 R +>> endobj +1441 0 obj << +/D [1439 0 R /XYZ 91.925 602.788 null] +>> endobj +258 0 obj << +/D [1439 0 R /XYZ 91.925 250.106 null] +>> endobj +1438 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R /F11 674 0 R /F48 601 0 R /F47 596 0 R /F21 1422 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1444 0 obj << +/Length 2710 +/Filter /FlateDecode +>> +stream +xÚµZ[“Û¶~ß_¡·JiHãJžéƒ3;Î$qjoÚ8ÓÑêJ[×µç×÷€EjwÛuÇ3+Îå;šOüã“BæLªIÁDn¬,öWl²•¿]ñ°# [²dÏw×W/^k5q¹+ääz}NæzùëTç*ŸeƘé/oœY5ýçÏošñé›YƧ¯~œeRÊéw¯Þ¿yO÷°öË÷ðç߀o\û½¸ðóûÙo×?¼xm»#áÜ( <âiFㆫï¯[¾+`]?(šT@ƒÃ€®“[’sÆó‚«tËùV•;+&¸Qð7~¾úõ76YÂÆ®X.ÜØåܹÉþŠ›séÂóîêýÕß;®¸Ò9Ë´Uðb§ïbbAø…çšçÆ™‰6 $w^¯v ¨MU— ün÷¤0mº—c:(l{®0Áy®Œji>*„̹•ã"DZYBŒ„Hø\å…î Q·ËÀy"®€Ã5œçCÉ2+Aï¨:–;M”Þ<·'üÛŒóŽd¦tHƒ½‡Õ q1݃Gtdr†:*tnž`g€^¡/©ˆHe­™w¹„-Èj lfÂF™ +– BEdše6 —K”SÀ€äí¯6«zH¼h3Þ¾±bR nÁöBQx{jÈ +#ÿu¬èµw €CŸ ãRa”aùSlDà#¦¥ðïãŠö 9ѹ3–œ)Þ'œÝõ¤+Rf¬[u{>0ÍþŠ:»Cq° À¹™ 7ý2d¼ºpQÞ߇lè\Àãƒ\@´2⌠žŸƒ4Ä­ü|µ`ÔQ»¤„S|êÍz¨ pgeΡäRekæZÓ +5T„ˈ¡ŸŽ›í* ¹^5§úàÕºÂØ¢z‘A<•µùK0ëé¸ZYÖ‡®sSRÈã¹=gd"ÆŸŽ÷eElk“K€ÅÛ|ÊiÛ¿Vu5Ô© ¾ƒáŠ²X½0öñ#óÑX# .a!Fð¢= +Ï£Uë4Z1:Pf´è®;üã˜?YÅŸ*GÀš HDZRNt€ÐºÉ^eËÒaHÜGF–Öuµ'fd 4À¼êàͧ//ú&D­V^ÆÆ|Sp}9ALvf@ €:¼ïºœƒÕ¬:×úîXƶÊô=6Í ä±rÅÐB­´[ž’ ŸpÒÇ(ˆï ¢R(£`âÁ.øƒ|:$Ë!3.YßgG)B¾Éµ4Aÿ¶cS>Âæó=çãXá …eSÙ\€®S˜_Õ¥†W÷¤äö¿8Ð¥äV=±þ{Nžê‰ +Ó…yó×¥–ÅÉ–`$ä`šÁç¶ÄÊçSg>!‡ÞÞ5­c/á€E‘Ë@jéKâ ÷ÃÝ€ÁSöŒr¨@l—`8¨&<¨§G¡Í.<"nêÕ"žGW*«£60q غgØ…™„µ]˜=T ›ûCš“7ÝîK஽ká|Îûœ +I…ZÕuUS„]Ð1ÁK0¬ÎôëÕ„;æ³jhz‡–;ºÉA†wØÃáŒE-Â5J'ÉÍ”è»Ù0Ȥ]ÇæÊEÇBe!½ÝêT‚OàOÜ·Ûð¡:´}åâÌgLÌåò •‡ìÖé-uÖ’¿Æl¶U!N“§”ñiFè1ØXì»ôÑSïÉŠ9¥h‚ÞÉ=oŸÐGᮆÊÃ/U5½@Ée.Ytì†ÈX_¤\LŦآ:…Ö¦§Üz¾™îÚÀ&Z]âFBÓ¯±ù.0GØ$>W4ð&Á×ËupU˜ô õjK›«½xáœø—ì€s[tO§A9ØV&€–áHç}‰Ríhžp‹S_hêœÂ>"ö‘Â}÷ïCâ’ƾï… ñÚ…¯¼Ä1â(¡%KS—w¨Ô>/æž%0>VkúM<įh¯É9êì.D3œ¼!ÐEÉñ¤-±ºÐA58öGí|•ÂMß— +.>Ëx„‰PÝù:u»˜r‹‘K²éOiüNÐ11ò +T€+óc˜F‰qvÞ~VA†÷´8RÎ)ÜN„„šUÏ+ç­,!6(ç0}1Óž‡âï°œ#¦éç¸ëR">ß{í.£B½ôXºÌZ/#¸÷.ãÞ$…?lS6ÁB?_è"˜ˆx¼EŽÐþ<ÿ{Š)Á!4÷yÉ-ocYƒ+Ûðn{š›é?P´]ÙZ¶ŒYIø N]Çg‰He­¡´¯ÿÂŽÄDšâw”åÜ.Ú›ÎSòõž¿Ó^uª°cÙ¬‚OX`J™žSølr}ƒãÊ÷š¹ÏŽ¡õôêõ¼ôš Žè窸)¤^ˆÿ»ÕÜS>„=ÑhÐþk¤·éà]ôòÿJy Ÿ êŽì¢º-cÌô_¨ØtËÔÏ8« ZšR?‘g ˜ͧ{šš +‚t_8 žýèbì|{˜<"1¡ƒÆ`Ð&Þ­ NáÊ¡KE(> endobj +1445 0 obj << +/D [1443 0 R /XYZ 63.034 602.788 null] +>> endobj +863 0 obj << +/D [1443 0 R /XYZ 220.947 370.159 null] +>> endobj +1442 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F23 1211 0 R /F64 1214 0 R /F48 601 0 R /F11 674 0 R /F10 1027 0 R /F58 1173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1448 0 obj << +/Length 885 +/Filter /FlateDecode +>> +stream +xÚ­VKOÛ@¾çWäèîfßk Š +•*U47@UBìÄRGŽ´êïnvüÌbzhrØ×Ì|ß½Ñà~„8Ä#¤µ.Gˆ?ÌÁÝ•;¹¸¿›Þ~³¢Ó;{xeM®§GÁ%V\õºQÊù!Ãahª†#R 2u IhžDµ 1Ià¼a¢GFñ`ˆ‘bŠÉ Ý0{;µºÆN[zw(MNFHZ3‰çn8ûìFâ†boAn¹Ír·Ö…O&^^²óD’.„Ù£ÇQ‰¦BõDÚxÂ$Yiäqñ’oý‘Ç`\ceÖlé¶!Õ2®îì¹^öñ¢Û}ºÙÙЮ¹õï8ÏÚQžmAÉù×úÐú:¯ËÌý  Œaõ$Ú¨$`³ûYÓ?@[oB8ù8iœþ§¤qæ5Ï?0Ÿü«ùº—龈sEº¬îÊ<+lž‹ló vŠlç÷[zw ”5¶_¥IQ•“›÷0Ï,Þ«¿` p¹öB…(ÃÝðî«<^Ö@SjÍàÂï© Þ]Ú7r“‡,Iö18mš`Vzm=µž?õq ìVöšÝt ûérï®èÒ]¥‚jÜìÖñ&Þîª`3Hå:]¤Û¥[¼¦ÛEö +óUœÇ^P9B‚œt* ©]ÂÏ‘© ¢ª6ÖY‰Vu—fé$¹I¡U½ƒZE4K<|,tÉi–ÃÁs¶K«v˜u´ Š<+tEÁG0lŒñ{å"ß®$ =GÌéÿ)HÛkÒ^6OU0o+cŒÛÒójI¥)d~ç^:Æ,5¤H0y¤¶ÉD‘VVSIzÔ <¥Ä¶`£…ÜϦ5~“­ð2’Þ»$Ë¢O²¼î÷o­kENÝ»gOÒáA€_¥Rk<ö£UXò¾WB)ÑfloŒ†NlŠk> endobj +1449 0 obj << +/D [1447 0 R /XYZ 91.925 602.788 null] +>> endobj +1446 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1452 0 obj << +/Length 1075 +/Filter /FlateDecode +>> +stream +xÚ…VKoãF ¾çW=I‹j¢yK(ÚCMÑm­º{ã±-¬®$Ç öÏ—Žù‘,‚˜Ôü†C~C‰GüñÈH–I™L0›çÑcs“E°üvÃG\ҙϯ‹›Û;­¢‚FF‹õ9Ìbõo¬™fIj­?Ý'"üûŸ$•RÆ÷w$hºO¾,þ¸½Ë_ñÀƬÊ!„²n>.ŽI©Ì€]¿›÷äs™xå°‘™%®­b¹0~·ÌpÊG¯~ʲÌÊÏ&Øg8ipHyÆ +$ q $-3:(8œIt„ ÓU•¤Âß~HR ²wM÷äHwÏnH_U›j ú‡Û«P:@•é/ûÁ­È7ý™äò§«1æòt"gB•iÖÖ”K&Š$, í½[G\èÚú…´¨Ò°Ìãò£ëÇm"Š8˜½¡v—-:ŒaMr„øm5àƒŠ{ÛˆÖÑêÁ:N»×åc"lüõ©$Ñ»q1};áÞ/;(™¥dر>êCçúF¾U]“†³*ÇI k%´ØÉMõ„»„ìªq–ɽcl‘ä*îꂲWL*"¨…‚;-H¢½$4à:þ)‘"îðç€?” –ÌjXæñšÔµÈûž÷ª!8\*îÑÿê0¹„Š^Ž¤•õ¦ÃÃTÐ`77eÝõ¤4>ò©BRlhi@?Z¨--=Á=¤—–˜CTIðÿÔ¸ÅSP0ô3Ø|Ðs ©â~]z¥Õ=úŽÛÜ•,(u%s:OHé·!»§§#ý3— +NâÝ—Ð9Hy¤Ja]û¹ù ‡±l]¨®–Je¯”ø)Q1ç°áñçCO±î¹lvµûžŒFÖ]‹Âµ€j½`~Ð\@S=V»ÙúÒÓu‡ÁdzȰÂ*äCÁLÙH2à þëe,³Z).¾’ˆW¶N¨|þ¢`ævöbΤæÁz ’Á, |÷Sƒ'jábIb½¤¹zàÊõÁûœ¾"ÄëöõÊ—®ZÆòLžTv燒'F`©Ry ƒÓYƒm_cÏì÷öHCW®ÐÏúá„þá¦÷kŸCSy~ýìz ë°­~QA·Tð7+ˆJ0ŽUãÂÃ)…’†&¾ró£”$æ•£‹“ +É·¡4yvµçY9VN²B©„úD%ùJ%ÃYÆ=“às–™KÂ&ÞeF®ˆj„QÒnþÊâe}¦ÑÆ‹€ùà4 inmªñ|R•¨¯È¾ó×u¬Êšž¿] T3kàÛÂœ0ÈùD=;*Ö4íèÂg~¡ylY>}Ñ´‡FþŸžòþ=¹«ñ‚§miÖ/qÌ¿>½ÂðÇë ­9y3ÐÚ·…Ï­B3)Šk_mRÁ‡ǧ™ñÀU,endstream +endobj +1451 0 obj << +/Type /Page +/Contents 1452 0 R +/Resources 1450 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1433 0 R +>> endobj +1453 0 obj << +/D [1451 0 R /XYZ 63.034 602.788 null] +>> endobj +262 0 obj << +/D [1451 0 R /XYZ 63.034 471.201 null] +>> endobj +266 0 obj << +/D [1451 0 R /XYZ 63.034 357.73 null] +>> endobj +1450 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R /F47 596 0 R /F10 1027 0 R /F11 674 0 R /F13 1055 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1456 0 obj << +/Length 3600 +/Filter /FlateDecode +>> +stream +xÚ½[YoãF~÷¯ö‰B–¾ à3›É"H6ñË"É-ɶ0:IŽgö×oUdSݲåx `Id±ººŽ¯Žæ° …lâq\M4åÄX;™­/èäîüë‚EŠ6’´Í7WŸ¿µGœ“«›c.Wó_c§¿_}ÿù[%2fQL[¤øö»ËŸ®ÞLYóó´B6ŠL[cLóÍ´eÍå/pãÝ·áÎåÏ﮾ûI¯ÞáÍo‘õÅ›«^F)ÑB?¹ !1 ¾°ê}¡‰°îrAœÕ9É1©6ABÖúãâ×ßéd„ß_P"œ<ÂwJ˜s“õ×Ô?~¯.~¹øÏ ‚p7i••ð`¯[¥'´¦½Ö„#\Û‰26à¼î.W ŒÛíny€Ï»uTµ’ÀŽÊ¨éõý±Â˜J©zžÏnBfʼn-D^mÆ,l"“‡ƒeob=¢y@ƒ®Žåã–Râ“È—x=-XS€åòñyÔkn FxÔ*)µÞ:åMÕ20¹ +\Þmp‡÷~Ÿ‡’!WÄ2Ö³l¥ÒÍH»YLÑgAKðt¡*‰BûiEŒ>ÃJPOdÕ¼ +äÔ€;¹´ŠºÜL¹KÒ4Ó$Ô¸¸¡®Ü°Í$Çì6ó°É6¹ _#ãÅíbW2× ~jãÓ×0–Ãø”Š~|8TÔáç¨[t´ ÑJÅÛ³ø¸Ëo+™öú•´¢FŒÑGêqp¢g@Y)¡$ššHÁÃmAœ±é¶b©)%ß#HhH…”¢Ärý© màvÓÀ‚ ÅHU{\‹O®ÿ‘z­åãðûªÄHfŒ(áÂ=¨Fö;:#$-?‰¨W›1ó*ÉãQp/Wálªx³½‡`úX.K¤ä½²”÷µIk,¬5B,õðî¦T'`©4Ég_ÀJÝ +‚K7ø×4[¸0›¶ÜêæËð1ƒ+_<ì,0á,iô³Ò¸à"Lc=pÆ%Ã^Ö¿­l[f²mW|ù„L–L ¼ÐìHuca‘‡¨Ë-“Š·pNhï;ôšîA³ÂÚ§õq¾8lA¤ØàlJØ°è@òõ×Õta:»ø{«ªBo*ó”Áã÷cÔy­§”:nÏ© Y°Œ1@l/”,ÚH¦ aLÖˆ?ã@çÛ}Œ‘c»ŸÝÏ›¬.Š}©~›ßŠm8#ÚŒlÃ!z>;ÙF¾(­zQŽt/öKæ`+^3«xÎDã“ãš1²äBºbÎꥒ}™WSÁÐ%gÁdS‡ +CYŸzt.’«à€·5žÌ“þÎ@B±þ¡ò@ È@x¬Öô§Y< )„6XOIfˆùl°¯d3}"›ÅIrIŠ#ó1Ò˜XlýüDÅ.!•)s²`g.D”x¾#_9À ¼ÚŒYY²Sê˳DãGÕÿ¾œÛü·¢K¬ÇE{eˆ ­'|¼ò\JAû)±ó Aøâ4ù 6Í®TÕCÁH’(Pî·K<¶zÀÑ’š Æ¿ÃIÙ\®ð4 îîÖáЯìFÔ(’ Ï°BwÕB‰×SÔIùhë) ÒCq^%¸&‚›O#Zäõ¤hJ{(rÑÂqÕH*œ· žKUûrGq Èbž<8è¾,É#scƒ>­và¦Ð€sž)[J‰#Cüåmk]m|”DJÏŸqà'AÜzôE^mƬØBr×SÁ+Æű©eü“È–x=)„ãr¬L>x¾‡|œzu‡á³ÇàqM·Šj?ÜÁßu¸˜| ±¼Ç¥vì_PØÀñØÑ©I¶0ö2ý ¹~ÄLjЙ>œ:X@=á+ç¬ÝϸA·‹¹| Ç‚ÀoØîqK~'‹8ÈãQ<³Ä!Œ +yBL)¬Y°ppx”XlMØlÀ:+dÁ:)?ÆBÜÑ ×tèî¯<¥Å>'IH†W*s5‹Ç~ÚOm p~\$^mÆì.Б—ýzý`Í«©ÛLýÈËK.Í»åŸSH¨Ý·ò'Ú8ª`{“(qú‰Ú.'€&Î S v ܽ?â¯Ú}dÕf¼Š<0.0š"I„q\¥ Зƒë~á"¯'¥ãÎ7Þ¹t<¤ÇÃ6dÂ?°RZÎÐïWýðŸuˆé4ÝÀ—û6¦™?„ã8ðÅt çü[. 5sò.¹0„0"E|— ‹ËÕ*FHñNr¿úXAH/Š»'ÄY5F’ +Âûq؇x_ ‹« LŽBp³/ž®¿ +¯œ´}‹o2¸‚µ²³ÀTGŽy1Vžf< q3ºèðs‰s³ +Z“Ãáã]0þ]Ðù ýÅfÿ°lu¸Ã˜<¤\BñÈÝ1\®»%àlœxcCÄUŒ‹˜"0<–³Æ\7)½Å*`í>Ü€u+@Ë8?/•mT¦3¬•¼y;µ²ÙîßŇ®wòÕâŸxÑz)nÊÕ ¾˜âÆå‘J©ÙÔjlaÂ*ý +ŽÐ.Pîž|—Û1S^:”"Ò™Ì;9nÉ–¹œØ¿=SÕ:¾OÔ«œcÈ@é*^fË™­7=òZJ”6#è½¼9ŒâOF‡@œûNiy؇ŸwAÅ1 ã•k?Yø©üÜß-o0jóð»CucÀ¿È« Îá  u‡ðÛ}öbZî\æCSð#N^Žb€g™=\æ ™zÊ(ËÞUPλÂÊ#w4NfƒíL!QÝ.a¡SPꢙ°1±!åBýsïóçbwãߥX:iF›_©!Щ@6ëV³‡U×[q.÷ ¾o|†ô¹8^¾ÉâÀ Ë)ü xŒ–Ú܆+Þ0>¾o‘ñ.-J‚Ýp^Éš(c}.ò .q{PÍy¤P¦Ùl1VÛÿùº‹¼ØšõÖ{Ö|镈½½ï1n"·U ÜÞ™q|ê@mõ%º÷G¼Ú+ ¾ƒüK'^ =žÀ ôæ] ·>‹a5Þæ›ý>&ÐùUº•wxª‡e(¤¯8*²Ó!·Ñ ¸r9¡‚ ýúk)þXÓ—L̨ +vš¼`ò*s nˆÿf æ•%fâÕfÌŠa DRѯ7.€y³¯öËÛ·–ƒOÔ]ç‹…U +#裤±#õw›Ø +B=ÛÇþ’P®>L{»ø+ËðÆ'’zÐÃk;¿ÌmüU… ³CmÅe%uÎ2Óg.l‹ü»hê§@ÌÕ³(&_‚bXÐpÍã¢ÂŒ²ÖºÛîߗ2úöoº†Vl·ì®ƒ ‚÷A}û¢^™Ûð¹øpØu³C²– ÍÈZ}@@º~ðÙ"d”]¥ +{|Ü4Jªƒöz™0¸†þ%—Æ!„-ëѠÛ»X ËøòohgdB$ýË[ÜçЇb(*XzÏ _.õgCª½º U’©Flÿðuz§«8ÙX/º~¼°[ÄñD—XV¼Ðäo$ýX­ñ³ò’|Õø<ÙŽr¢ñÚÛ£Ï!3 x„$¡²‹nÅ÷Ä]r¨ü´ãôqƒÎÌ{ÛIî_Ó¯Tû;ËÊIkÒ×ÜOÊßΗ·Éo5ô‰mü> endobj +1457 0 obj << +/D [1455 0 R /XYZ 91.925 602.788 null] +>> endobj +864 0 obj << +/D [1455 0 R /XYZ 244.074 325.413 null] +>> endobj +1454 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F23 1211 0 R /F64 1214 0 R /F26 1460 0 R /F20 1030 0 R /F48 601 0 R /F11 674 0 R /F10 1027 0 R /F13 1055 0 R /F7 586 0 R /F14 1012 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1463 0 obj << +/Length 1129 +/Filter /FlateDecode +>> +stream +xÚ­WmoÛ6þî_¡} gÍwŠ[R`Åš"†t«bèŠ@±ü"LŽ3ÙF–?Ò<½Pfä ‡Òñx÷ÜÝCE"lþH$ÂŒGS¤Ò4š­G8Zš™÷# ¨$·ÓÑäJðH#-Y4]ôÍLó/±@¥TüñfLÓøó˜Äïþø4NcñÍ•§ŸíÔÍøëôÃä*mí™9¤xjXSJ[…Ñ»iŠciæÅ îZçxz„[(ŽR*βr¹© Öb·Z;ÛqBâÒŠ–+ wW>¹‰•‘eUnþÏ­J夻F¾)Ë]òˆ\ˆBE©ñ-­oŒxª¢„hÄ-ãúª0KÊ9¨ÊV•(Älü8N¸ñÝ}?):E&!3öL°ÿŒ¾|ÅQn2óa„Óiôhž1"ZGë‘ɉðVŽ>~o3w0”t,¹zwa‚ˆl½Y\ë‡> B8D¾ +¦ÚÖ0,“(šÖ˜êx_aci¦^ØÆÆRØÇFsd*>ëc)‚F‚+¤©ê’ûˆä šttç´õ\“T¬cL¤ujl$#-4H•á±P"žœAE¼]‹{,çõÓÝ“37ÌæÕ.+îa®8(Éx¶Ù߃þÙ$è+_E­·~¸]ïË[š»×¿°ÀFÔL¤ìÜ 7á¼YÞ×$è\Ã&ÓmšhŠ(g°É0ßIc +ž!ŠÇ •Î{^, ðŸÿòJ (p2"p\Í·aU”20P×g¶yxJ2åµÇE›T¨Ûw—½$ùéÐsz>ŸPpþRð'ÌáD1öüÙŸ‰Ó .›bµØ Î»hÌiêÆ.Ðß>ÞÞüúóŸa¸”ÙmŇÊ~‚äÁ¶-Än_‰Ÿ-Š:ö+ˆé-àuðêæ}3鱦Cv@Á7¤C(Ô|–¼ÉL/š9ÉE;a¨h +:ûí/,5½3#ÌA^÷ÚÜ+7\cdoËØáç÷Þ¹d¹šûY‡ýÇE€è¹O <ÐÐ婆.{AI`u5_Ûݼj8ܹíœíÖŽÄÒe·¾‘eۿᱪÇ*L&tÓÜçþ ¯JƒR ¶ê‚›âZ$îe±Û³¬ªŠzk†+*0Xj—_ú{»_ÜÎF½¸p É[Q½&Lø¢*h/˜{›PÖÛ»á8é,¾ vÃdèú*xˆ‘Bôfe‘ypºŸ6ð-¢ÍùIuè³qóåOì[gò?+Ñendstream +endobj +1462 0 obj << +/Type /Page +/Contents 1463 0 R +/Resources 1461 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1465 0 R +>> endobj +1464 0 obj << +/D [1462 0 R /XYZ 63.034 602.788 null] +>> endobj +1461 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1468 0 obj << +/Length 798 +/Filter /FlateDecode +>> +stream +xÚ­VmOÛ0þÞ_‘}™’Vqíø5C* C ù21„J“´ÑhS¹é:´ýøÙ±û’Ô°}@‘bûüÜùžËÝ9ȃêA^Œ@QÁp!¼Ñ´½±ÚùÜAZH¸ƒ9J:ýSáÅ fØKò¶•$½ó î“/ýSJ¶0Ä1 ˆ)³q|6¸NNäß!Æħ 9çþQ"p«6ÎÍÎàæ<9»ÔÐä\okÓ“dã#Á0Ì^¥±Æìñ ÂÊC¶C„rDÄj7!eÊ Æ©_Mç£ ¤õ?ša¦óÚuDˆ ˆilu¸S*¬¥~×Jùl¦Ý¾S#¶2#áúdè<•A‹ÎKipß!…¿>+Íz´Òƒ “åB‡6K×û½žRFö#ÆÛ!!@Gö#æ°Ãphú†‚ðhË}œUfRM23™ãIfÔÎÕ¬ʼ-¥ÌfÖÀª”ékAd‘=ZÊF(tpºÛzxhÆŤÈõéUÍ¿½7Ãt¸øá5bm¨°—J¤¨GÜO‡U–ª[œâÿ6jI °_N‹„{H]°”' ˆ ¥„0dÕ/2/•è©È|*ÔBù¦ÞEo¸¾0òŸÍü:À‘_ê×JKõ ‚9ó5:7ˆde ­¿{ÙÇà(vý3`‚Gzµ³ù& Ëendstream +endobj +1467 0 obj << +/Type /Page +/Contents 1468 0 R +/Resources 1466 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1465 0 R +>> endobj +1469 0 obj << +/D [1467 0 R /XYZ 91.925 602.788 null] +>> endobj +270 0 obj << +/D [1467 0 R /XYZ 91.925 286.968 null] +>> endobj +1466 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R /F47 596 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1472 0 obj << +/Length 2741 +/Filter /FlateDecode +>> +stream +xÚÕZ[oÛF~÷¯Ð#Õ 's¿¤MìnS´‹Eº©bÑ…-É6Kr$¹iö×ï9s!‡âP’×zY0)ÎðÌwÎœûM(ü±‰„ +9Ñ”cíd¶¼ “[ùþ‚ÅuœRgsþzyñò­’Gœ“Ë›}2—ó_+E™ÖƘê§wSn«_¦¬úîýÏÓZQ½{®—¿àлéo—?¾|k;z0FŒ´IY†.¾»lAIªa\Ä-$Ð`pÊãZf`KÂËgìÏ”ÄY>aÈ ?]üúÌaâ”g'ŸážæÜdyÁ)#’šøûþâç‹u ˜€å¬žÔÊJx³¦žX`^#óL« e€Iæ¼Þ܃øn×›f×»e˜2ÝKÈQ¶|Ø@!V²–æQ.À#ºº-©¢fji9:~ ¬(¢u/üŒ$Rœ·?e“Î’œ”ÿÎ^wðÁ’ZË‚Å8àXVn}ÓDçúµ¯}ã$šDäq˜¬ðØ0s"’ÈýøÒ‡›“˜•²q' +ÉxÏ™6G3"9îÀ\4TZ®ÊÈg›Òª3bÓƒøŠ¦ç ¬ÍönÚ¹ýw5ªˆ„‚0&z¨Ž¹ÿ%÷¯ùéÞÿº$~ÊÙˆ÷ºécï V,Z±|’÷I«úÙ>Õs  qè5µ¯0s'{Á\ŸâM–Xo °@ÒŽ=!Ë)–sGò±„@aRnIŒÎpKË7%/èŒ|JZî'@ ºØÛÍ6W½Y ˜|´HVÃu,Ñ­{¼Ù¬— +ˆ$éñìæÁ˜o… "%WQZ*B9Ký„oÖ¨1IO¬´Å»¤ )œÚêÀ5°$wª°æ¸Øëàô㉳àô¨/ôF…Ê0vµSNó¶¨çºÇ£Pj˜ŸPÈXQPüˆ žÂ_ßÀÏœ¿£*|Ü·=KNbË·ß÷S’Ô3ms.¤;ôä/xq#±Bo ôJ0Y}óM6ømOfö™YÝÓâÁpUfõ™öSÐÎL?–– ºq˜VPŒ—œG­¶è'ÅéæÚ·ûžï6¡ÀÊP™ÿ†Þ óÂ+4чàŠâÓÙb»±«¹Åö.þ\‚§7C·—ÞõJ²»Æ#þ/ásÞMØ>æU‚3Ï€ÿíÍá6<üœa}¿OR~mÓxsãó:ÎR³¥ð&ʺ˜ù%¶Í:MJoÇFdJÖ˜tZö°I*öL\R0â´t|pu¿]‡É%ûÀçÉ>ð>S$´ 4 ;…«ç&L ¡¯i…„øqB²y|éq›dz£)éuëŘVS…ŸDqI‰QÏT@ªÎh 4‡BÁ Y}šÏ‚äö‘aj1ú,Ð"­ƒØõ_8åØ8îGéC ß sÎÄ´ ucQì•vué«D_¯ö¹…|â2‡¥5{Ö7?žPQ~Îi)ÓÝj#1I–çÀ”h†‚‚l°+DÓ¡¿ƒÕ9´Hë04Ùä=h˜/°P=æØ°rB¥õŸUü°ŽSëlnXÙfeuH Óßbdºµõ®F¦Ì€}+£ª—_Atå +\ø»p»inïâíõ—p½ +—Ùb³¿Çšè¨ýÈúqo±ØÛîÖXQàÏO>ÎÇÁôòìE¸®vàµÀ+…•£ÛCÀø½ŠìŸ ,6}"óÐëÁÛ¯^v_¹ì½E™¼6 ÅòáwÈ+Ç(”ãv8ŠäêEZÎ?;|Ѿ¾?w6>4o+åý=p…FkÀû¶qÜæ'æ9·éÄ×m×ÿ{Ä´I×Í×%œÅ·=p÷gzc±-¿Â»ý[àÌiµ+ÏûJµÔ)*[(pÒg¹4ü/Éâ¢endstream +endobj +1471 0 obj << +/Type /Page +/Contents 1472 0 R +/Resources 1470 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1465 0 R +>> endobj +1473 0 obj << +/D [1471 0 R /XYZ 63.034 602.788 null] +>> endobj +865 0 obj << +/D [1471 0 R /XYZ 216.566 325.124 null] +>> endobj +1470 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F23 1211 0 R /F64 1214 0 R /F26 1460 0 R /F20 1030 0 R /F48 601 0 R /F11 674 0 R /F10 1027 0 R /F58 1173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1476 0 obj << +/Length 860 +/Filter /FlateDecode +>> +stream +xÚ­WÛnÓ@}ÏW„P\ÕŽ÷n‹)½Z¨Šy@€¢Ükµq*ÇU_ÏnvÖ·l¬€¢ªÚw¼s朙Ù5jûòµCä…˜µ¹=íɲå·r媅À·dsµº—A;ôBNÚѼ¾K4ýÑ °ó+úؽd´0C‚x q¹­²8»îßEêÜ;.!´Ã<ÇBtNuú_åÂàL¯ôïÑõ­2jñLmݺˆrŒ”0Þ†±ÙŠƒí@"ä¥@˜ ^€ù¦©r'7q‘ï…,„§Ìq1ǬÓ=r\&Çx®Çìa¦'ë‡xžéédõ’À4V¬õ¼w¢G?3ѳWØbºÒcãë*}Ô³£®PÌOŸùãš3ù 6a)rê!j¤™Ãz‰ ªþ„ˆ ÖIg8Y>'«ç߈Ñ10¡¼¿·b`¯2ö©ž¾m?»¹±ÃGHx< øEÕiè¸ThÀféªäy'Pâo»§Âó…ñ¾°xƒêF(g/{IAzÉdÕkÆxÛ+‘Éß»½‚AÕ+±E-™£þ-ÊÆIœFï2ÅÔFùŒçZÝÞ ¿|ê·Ë…’4Èe,ª(Ù>Œc~(Æ„uû Ö³¬ÖÒÙr'ÓYÚT³$´0¿Þû‡y‘Æ¢â”ú–bÛ!÷r5âia¦˜)ç1ŒÕ$`{&“S5%XT±£¢f'O³QZÏEkýP oí“:”¨Ä)=PRfÅÉk9X4]{²Q±™ïhàJþÿ#Ó¦m,ª€Í©°ŸØæ­ðú󤑻žx ×4*Ý Æ@ðÈ_Žx2››B+qRë-ãxûnaל‘Ý—‚'Å£8Ùz>¸DÃÓA´£á0æÚT´Æ¢ +‚:¦ë‡R;™˜V¢‡®4 +Å ±KÇ%·n/vK—+e¢§ÂœÊFyÌ9r^)@EäJåAV”ZIº·QŠ¦\2;Q¶Cæ¼Z¾‡¼r?/ÀE¼ÎÌ h>²å³‚n2`9Z?—ˆ¶F­EÆ1ø3J©½šXçÄäcnxRíˆuJWœ^¸/„qõ`gŸ[¿ 8«a.e×|Œ=­Çå0Ê=ð­Êjá퓇Pâ ¤~•ÿ‰9ªendstream +endobj +1475 0 obj << +/Type /Page +/Contents 1476 0 R +/Resources 1474 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1465 0 R +>> endobj +1477 0 obj << +/D [1475 0 R /XYZ 91.925 602.788 null] +>> endobj +1474 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1480 0 obj << +/Length 1866 +/Filter /FlateDecode +>> +stream +xÚ­XmÓFþž_‘~AÅ>ï‹íµ +HE¼J …T¨„|‰“Xµã`;w‡Úß™ÝÙøõÒJœN:¯wggçå™Ù'fsþØ<ž/ä<ô¹)5_3¾…•3F.‰¸™'ËÙÅó@Îc/Å|¹ªY®?:x 7Š"çí›W·sž½{¿p…Λçæ¹ü€KoŸ—¯.ž«V¬y‘T`ªRfÏ–'£¤ÂzpÖn+36\Ív "é)êÓü0ãÂ(pê]¶inÀç‘y<}ùâåòË“—KóêÒìOhœê2ß‹ƒ˜ÔD“³Š”_Ü7›“ù³Ç:]w,  lÒÊÈŸœe+WIU};geÄiGÕ3ÑŸ>Tð¦¬ZÃo†Î ÜpA?Iòñ#ão§]ý4h‚³NYæŒAz-œ6$Ðk%Œ™ŠÌ” WF¼Â6%84»Ô òò:˜ï\f %²„8†D3š½.+r'ÛSîI$-gcU?¸÷[DÜ3"©ÿšŽx89 ì þäâêXUé¾9ù€¾‘ÉžEvÓ÷¬ÝݧϦ*‹Ü¡J¯²òXk3¹ò¸=[ÛàQŒÜ !?RäÐýQ± Â:³SíjÄèá?­ úH±~ø°šÛË(¦ƒ]Ϙ”Q“¥¦Ø0#ubØ”½µp:¾åæ?rH¡Ü”G›Áä²¼JÏPq Â^X«ªï+•ŽiÙý*”‘•OE¸(Bè+ÇŠDä…:£ˆúŠ ˆxˆX=|Y剭8Ý1oM« +iS¶iÅ)b?P~ûãõëé¶Ã|€hi;V¢hDÝ,MoV»öä{Íó²¾ÝbuWñŠ»ñJ“ªkÆ­ÇÇ>íªÒæXQ3øõí—7¿üüçô†©vm*»go‡¸Lx<Ž±i{1\ð(µD¤Ë€;YqÈÓ"ÅÞ#·h€v$MVîÍ2V† `*ß–UkÍ®0+ˆÉà8ŒÎ!ApNŒüáëìãg¾²ñjæ{"VókûsŠ÷bÓ[>{?û½%#V—ÛQ¦ÉHÇ/.•'cy:ýZ£W#ËB ãwcé:kYx¡d=ËøšÖ8NgÛ zþͬk>ùL`JRèBF@¯5;Ìξó’RoÊúXâÀð22ÉLÊ"‰Ç2ê˜GŽNø*ƒs¤Öo5ÐO*g‰/F7ìBd8“ ]û5ÜÞ_Œµî2`… +a¸Ì®ÉŽÿf º´¶à9åAñ–Óz¶Å÷²BZƒ"— ›½p¢¤ö¨ÎPŠp/{ÀÀ0_QX ò¡ý€ôë1…–^Û"BÅB_&86+3“d1‚K}Áèç.5ƒÂyˆ@³Â‘@ Õ÷!t¹e#ú‘§¢ÓqèSf‘„V^-‚ÐItE'—y +©—’™® N Ä5‚¼1µo#¿ÜAïÄ/«ëœ_"𽈩ÿíج÷$bòÜŒ›¥`=Ìd¡›Ø¾aÕêìGº\ÊÜΟ@9Õ©ºŽyc–±¥Úí»¡X‘h0¯ ¼@¸S®UÛšµ1 Û²³||p +D…9:¯òj=€Ú*qÏu=ŽŒßóy\Æ +zZ` d¿žè±0f%&öGÜ^îºl$8žÚÙ[(ÖÉ”ª Œë¤ Ñ-ƸÇáÁ!}ü; ̨r;ºFõŽӊôqŽ]g:å‘Þ‹R×&%Û|Ãÿûí8‚q 7Úù†´zÙccš$ÅÌ‚Æ_#e“ÙKÄÜ!Cñ1À…pÊËÆpŽÂMLÂ=&a \3¶aÙ” ý»C3º˜C;ŠæL /PßG,H•ÛÑ5D]x"+¡ïSÌì1ÚÅ0S‚݉aV×9ËÔCÈ{–ñµî>RSà¿MŸc_¾Á±4ÅmwHªd«Üagf#3̸nа…˜H¨=ºñ!ü”2hßÐÞ¼Q0O‚AúËÂXÿCNÅàz{”ÍÞ`5‚>»Ð ‹§Ù•æhøO÷ZM<pˆ; %oq\.C×øoBƒfPz±•06Ù)ïÐpü.rb3HõànüI¥û½^lì¶út1d¦…šuÍÚáIwxŽýf_P> endobj +1481 0 obj << +/D [1479 0 R /XYZ 63.034 602.788 null] +>> endobj +274 0 obj << +/D [1479 0 R /XYZ 63.034 164.258 null] +>> endobj +1478 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R /F11 674 0 R /F48 601 0 R /F47 596 0 R /F10 1027 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1484 0 obj << +/Length 2746 +/Filter /FlateDecode +>> +stream +xÚµZYoG~ׯàãÐð´û>œÍŠ×Þ( ¯³Ž^I`ŒÈM˜‡BRvâ_¿U} {8MŠY) 9º¦ººŽ¯ª«ÉFþØÈ1â¸iʉ±v4Y^ÐÑ FþyÁ"EIêŒæ»ë‹oìȧÅèúöËõôçÊÊñ¯×?¼x£äžŒAÓÀ)^}ùãõë1«Þk!d¥È¸6ÆTßkV]þW¯ÂÈåû«ëïß"éõ¾BÖ¯¯;¥PD }r‰æŒu(#‰åÚK¹ûÓ¶(‡«nᶙ ;|a`°‰wóU|3æ¶ú2æ¦Zoñ­&ë%~qß.Z¼[¶+$Ú…áfs?‹§kwóIÐc™æœ&Ö¸¨¹&d‚[¢¬‰£¿PE—ëq sLqQñÈŽ4qFâ‚nøHÍ”ÿêfÀSJAo{`Ì‚Ðsvt²×ÅW  e|j¶Ãuª7'–¡‹£—ÿþŽƒœ¦Ì¨f`D)¬Hg b™ÿiÂa°·"JB„› #‡®–\D:b+yš¥„:âRX¬r9É!)ÊÌFHŽ t¿]üü+Mî‡ J„³£/pO sn´¼ðá£U|^\ütñŸ½{3š€j”LÀüɽ•µ:­½YêÒ =ˆÆYÐó 8[oæ;¸~\ƨ5û¤$‚ʨåÝ¡B¸äD+Ññ|p‚0+Ê‹H¼êŒYXD&—ŠXÑ_ú;8út œ†¸¡îi„‹¼N §Á}@û¹p|•š[‚ù)‚RÉPéµ³ÁY§wžìjåä>Ѐ%µ0Ö±¬¥ÒÕ;¤]a@Jø‚040L„æ”ÍÖ€ç1L¼êŒÙÀ¹b„2ÛMˆÒ"žDPôËÒ4ÓàÐ!òåü è'…k³š†¥6ž¡¿dæSí¬Ý ™k€Ajã×730–[îÁ–çéÞÝï‚! +F‚8ªûvíMþ­âpÄy°n6ÜþB%-hÜʨÓÚy"E`.p>Hž“ƒÅ +¬·| ÙNxïΑ¯ ¦å‰“Á)¾Èí“AÚžÝQH“ΛPÛ{ÿÕíPœiÌÅû ®S —CUðóÄ€óÐÙF‡›®CÞµr„‹,‚A0V±¢[iNº…t¿8À“½_D©Ðþq.Ù£äúœ[bF¤…l)Ü9x`¹8ŽȫΘyæò (!» Q¬¯«JTëÂ:!€ŒÝ;8 ºO1‚u̓&Þ‡…yCÝoVeÍH`’óöÇb”$ÅEÎqíSz‰¬ê=¯‚Z4aT¤é<îüërllõßô[bó°‘J¬0r½ðóƒ\XWDÔ—÷Ûv:ôN,,ëf§—Dw0»CèjVÂ.¬ËöØ5d`aEGÁ +Á 5¾f¹{xÐÛ ‚Ó0Ï@1Oœí¡kâÂOǬ³€àWâ¼~2f‘W1+Ƭƒ&š Å«5nsþ(„­%RòaØ>˜¡ŽDmÄÚm0êÆmï»ð¼¾ W¿ Ùµw1ß‘ °G‚26ŸL¢­xWþÿr1Óö‘û˜ôkÜFñE%Â*n›9–ém,o6íî(ŠaÌó.Ž +8æi€cìV?ÎY"¯:c6pûm +Àšh¼X¯ÑHo H&¡g$“™¦ŸMUÔÚíºPÙA5,:;®†å[ÍÛÍz9´4GC¦Àž–0ºTéÝ|‹¨fJ¨‹ö ¬É?kism b˜N¶[qûôýä%œ®vZÌ6ܤ•'@eÜ€•ù¡ÎFÔ¼ …Ú‚©‘3=û¹^²€Ç=ÉYe‘—Ó¼é~>àì|$¸)Ù„rv¤Vú3$YöD)ôÏùZ®­²½½9Ba‘›€¦×©é{€ì¢c‹¥Årº'b|ä0²z[b³j1­6g"“•K›³(æHþûµœá eØsTÂ;•`7ñ/T‰qêÄè¤ïØ”õ”ònD? yK¢Œ(nDA2 IâÂ:RÚ >¶¿ãÛI»ÝÆêp>ÃVÄ.>® %2£ˆûÇ×LÙkÂËÓ~»s¬¦Ø÷ppÕŠHú¸š.ñª3fÃ4 ‰Ê1ÙMè×·ð]ìMßs5µÃ½S¬ {VpQïO.á±Í{´n‘Ø2#¡À?¥xd‘xÕ³a‘ ûÊt7á[0qX¸”š#BQb`¡jŽ8ˆs@bHº€æ¥ãÛi!5¶Ï9ØÕ”Ž;M"AÑßÌg÷`ïMŽaò%ØNÊêr‘u‰ý¹LÁk©Û»Q6éCFòáRôÚÈëÔ +µ¾™˜¯ ;û8” ”…݈'‘-ò:)› D;ד¥’X®ë\ª-¹„2ãvóÂœ<¤Pd»}GAæÖ¦šXí`UU©ù_ûî?Bù}Ú¶jU<´ø°ƒX3úé$>ÒÞ ¼êŒÙPh alyOhßìç…f?8ŒâöI„K¼N +Ç)†¿ê ǧdp¢; .6\œcz±²júeUõÅïòáá7,Âçl‹Zü>ñ‡ ù;ŒÔE³kÃÝQÜÚ6‹û6eF¬ÙEï -e·Þ9#%#£M»íL’dŽslc£È).õª°>.¤ûc ÄXpaÝ3«÷.&«Ù&-dƒïP^\i¸‹¾”þäåÞ@ƒ Øö3áÃø•o¬ÀõÆŸTGöóUÁ{4Ô|BŸpŸ®àIó‡c`>ß…ëv¾¼óÞ÷“õݼ-œ";¨„:5MW‚¥½nOLPÖaùÚs¹gî”@”N™;ŸWáœU±òä°^ËhˆÐãx·_#~ýeî?hŸü»(Çթƪܕáï»msl +á«ÒR±Ô°ú¨Él#ÿ¸h·fŠÌW³ÀÜ?̼õñ±Áúo6-`¸Ïgüç¿óÒð 9¼ñýºHÚÌWþ¨/2]´Í4>”bÜ÷¼swö3ï"DV;Ÿ°–iBÚ­ãµûA‚„ú>û¹Fràpxß<Î`±]…ÝIÐk£ð#Ža›ÁdûÕ—¡Ô½Y ’' Î +f䣎Z¯:c6<ƒ1 +/Ož¥C`ì®IjŸF²Èë´d»bb YÖþèɧñˆá‰ä‹¼N˧ lFúòafg/rÙ †vX›0}êÇu¤¬÷¤a^›-†2.Rø¦Ó>8ho?E™ÿUFU/žkÅU5i“pׄËgŸýýír= 7üÙ³¼ÓÕ³E®6r¯vÅqÇ—w€éùúZàî~埣LÍóp¯bâÃM|Y Ÿt›Èƒy9-´g¡¢‘©““g®Ê:ô1D9î~ò@þþ¦87/¾ñó¤¨OÂòâã6\ÿöm¸Òp Qx÷5$†u÷>©*©¤h .“ü·{ÍßLUn; [9}B_‘ ?Ÿ´ÔÁà_Û$-NêmõÍ‘_G9Ew¥Št0þW*Ùàÿ ( ãendstream +endobj +1483 0 obj << +/Type /Page +/Contents 1484 0 R +/Resources 1482 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1465 0 R +>> endobj +1485 0 obj << +/D [1483 0 R /XYZ 91.925 602.788 null] +>> endobj +866 0 obj << +/D [1483 0 R /XYZ 242.69 334.872 null] +>> endobj +1482 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F11 674 0 R /F10 1027 0 R /F14 1012 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F23 1211 0 R /F64 1214 0 R /F26 1460 0 R /F20 1030 0 R /F48 601 0 R /F58 1173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1488 0 obj << +/Length 778 +/Filter /FlateDecode +>> +stream +xÚ­VmoÓ0þÞ_>€’mvýš8°mbB Ò„Æ4eKZ*¥M•¦Ó€?];ÍKÝŠÁTU>ûÎçÇwÏ9‡$Øñ)D”9>"0Ây˜õ3‘š‹6À˜€†ÍYÔë9sBúÔ‰Æ]7QrãrÈ¡‚ p¯FÝó/_=@)uGC=F×J5òn£ý¡¨ýI ˜”+Á•Aï<Ú€bÈ—z¾we³ \8Bä7€ó€AAüõiˆøœp·HËU1÷'Üý|u7útúíB"ýŒ`ÈC³!Ðóc@ŸW˜}ã`` ÚŽ„Õ}èâK ýe:Öcù#ÕÂ,OVÙji´fÌâb’Jö¥e<ïìyŒ³UZ­UÚæú600ˆïˆ£{-žÔ+Óy)\/ÄàdµLãZ./<€ÝËèîì2Ræë-[¡$ËäT±[bYY´‘âMMD&Z‹»‡|ñ³íHËê|k†)±PBúµÓÿ¥ƒ0Ž˜Õ=ïС¾ÌŽ”ù–”©ÿóSçó•ÊÚ U;2G0$ŒìËœ±hžmñBÅGC›{†:Ñþ•¹–’édZšÆ÷ùcÚ©°,^ª@• k-æ{ëמD† Žq^Ô zjå¯QŠýM…ÕÕ¥—k[…®±çõÎ=sÒÃûÖì­°.žµl`öèÒ¯t‡ëë!óN[w<´“3ˆÉ>1©Ï;᪠+Vž,nžn[Bm&™rcô…˜ÄX·B³4.:9oðA¾¿eûíž«ÔäeUß³E––if*3_•Ëi’ö§s5ü•ªDÇfcLÄÞ ¬.ªO¤¢|6Ö—i?øÍÿ¶6Ü3ÓããíÛ›îkÑÆÕZ ÚÞŒ§]¼kªüh‚‹5b Ÿz.³x¶¨ÛýaÂlúÛž‚…–çT£i‘±Ñ4L! C9 +)ak³ßºÑ:M-H2ÍTìÓ¹ê¼Ôó¥V³¸LÕj!›´#Óšy‚ºù v[/Ó1…\Ú/Êdï†Õ¬¡üóóq>endstream +endobj +1487 0 obj << +/Type /Page +/Contents 1488 0 R +/Resources 1486 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1490 0 R +>> endobj +1489 0 obj << +/D [1487 0 R /XYZ 63.034 602.788 null] +>> endobj +1486 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1493 0 obj << +/Length 1670 +/Filter /FlateDecode +>> +stream +xÚµXKÛ6¾ûWè(£#¾É=lÒ¤Iô‘¸§$­-ÛBd˵åÝæßwø’(KvR`‹Å´I g¾™ùfF8Éá'#Mx"r‚¤RÉr7Ë“ ìü2ÃþDædÑ™‹Ùó×*ÑH š,Ö—R«©óÏ‹_Ÿ¿æ¬?†%E kN¼|s÷ÇâÕ§ïç¥,åhžI)Óó §w`ãíK·s÷þíâÍ;stñÖl¾4¢g¯ŽŒr$¨¸iF83²ƒÉ3D™ˆ,á’!E„ÕóÕ?¥¹ô¸¬N ]Ÿœmi©’ kD‰}ê#ý '±ÖéÏö‘‡jnžË¬JiZìýg½iŽf³Ý-|Ù­Û>Ì3"Ý­Ç5l4Ç¿ãY„ÄÙˆ —ˆ)¿û)ÏñH†´ +ÿxž°Š…m’P$0·GîG$N’¬?²nŽÎ‚M¹¸Y;—Îʇ9`ü¹<¹ïÍzl–ÎQ΃Zã;3"4Ê! h¤¹sWµŸ€#A¨—óû„îJŠžP8Áý‰ý”ó{p9vf·ÕÎÚŒÌñ$ã +²ˆP¤ñ‹»û ì\Vv¹Ÿ¶µ¢†‡Lµ[X„j܃»9„Î~¯[#ûPu¿ßωJýú´+êÚ-ëÆüþèdqÅÎ\·«Œÿ6Ö Bƒ0sx;??š‡¬^ÕfiüÛ猻ϬÏ6 @¹­·ÔoÒgž +:pºrk ìÀƒll˽ý¤•Ïg¯×6Áà2‚§+dS\r>˜$ôÐ æz¬l6z}bh,6ÖýÆí>ƒJ ‚J½fuyŠlo·Á¥Vè±,}pXmpøè !:ÞJ јU­¿Is&,=ÄËrå}õíØØFõUÝË™HÈÑ]ž†±@PÎø-æÀ–9\z~™â&lr¸? •’Ì-\–á8lX‚µ±ÇƒÊâOgÜ_Ö-=X4mö!;,!°lÿìúpY|e('¶)ÁLYù{öñsž¬ ý:Ërx„uŽàæd7#€ˆößêهٟ}ò¢²HÖe©%T¢<×ÝuÆ®>ÏGºq0žò§QÎ˺©Ç6ÐŽ<óè‘SBD=v^ÖMíG Ëv+“Â#Í´F\>n^Ö-Í(ô$\\àHpu ? +!.äÓ„^uSK&‘x e±òd¼´>PQÑÞŠ“ˆ(9`Ü(Óv1“+—¡å›­«P°éB +[¶õ×nÊ£ç„jïÔ:6çÍÖIUu’cè/Èw÷d,B!ÅÅ°1=ùÙÆ o‰ÈDÛÅ„Ž»¦Ëþ¡'Ý£B„Ò!Œ{WÏÇmh‡õ­¶E†Ýì>SKŠƒ}ëKîoMp¦eÄ¢ÚÔ°Qªô½K(&<Œƒ«ÆW>ßäXmöÖ²rÕÝg/CR«¹Ë¢^†&¢.¬äŽó§ +)¤og‡ §£ít|Ùè,TÛ’5çÓ÷ÕÓÈ®[°Å©9~‰[…Þ·Ný]c+S;¬¡Ür(·4ŽØ¸a†’'M»›såã‰äSŽgÚbŽ‘Qè^vüQ_Uw +¥;åPÙi,„å¬;òÑ-"ú¢Ž]ül—ˆ+§É8˜Z¸ê‡ \Ìb—HhD ‘ÉàƒŠký V7gy-„orjÐäS¨Ð²S6V0‰É„ +Š(\òMÆÆfVeÓ”íee‘0ËرºZ!ʹ¡kˆý£<30Ó,€ƒÍÿdˆ=Bð rÖɧ‹‘öà’Ì&RÕ•‚¥É„mS-Ëë†Ì•J Cjºa óät·)ot|¸€»°Ë”oPã4·$ÒœÚë„5M+íùµá-¶¹8¶ÃúÓ‹†›ÆŽŒbî;´âÜÑÍÍñkiãíX@ÿ$ĪÇ @hÎø¨|¨šsOÉÖcÍ}]ºBŒ!bz—ˆ×®]¨‘Á®—…$DªÛýɼÑP©€›Ø$Íaý€ +á>$|Œâ‘BOÑ 9aÃBrjK×±wö/ æ=«`,‡–hzòú¦¢´©O3%D²®M áˆmîOßì(‰R6gžDM/릞@O\➧ó½So5(Ã}r1÷b  ÉÜñ{ábû’03Ûßã +K ÊÊ›Eäð.[ºžàt6yÙÆñDB¶ŸÙsþîe³;Ç΀žUbØý[GÍ%zêí%e@‹Ø|‹6ÿˆà{endstream +endobj +1492 0 obj << +/Type /Page +/Contents 1493 0 R +/Resources 1491 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1490 0 R +>> endobj +1494 0 obj << +/D [1492 0 R /XYZ 91.925 602.788 null] +>> endobj +1495 0 obj << +/D [1492 0 R /XYZ 91.925 564.96 null] +>> endobj +1491 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F47 596 0 R /F11 674 0 R /F14 1012 0 R /F10 1027 0 R /F7 586 0 R /F1 1058 0 R /F13 1055 0 R /F6 1084 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1498 0 obj << +/Length 2059 +/Filter /FlateDecode +>> +stream +xÚÛŽã¶õÝ_! kV)JDßzIEÐfÞ²ye¥®ey$y'û÷=7ʲ­IŠ<yxîWê(?9£c#—¤*/Š¨ê6It„“l´@kT®ñkåpg§r›E»†¿¼lþôƒÍ£4QΙèå5P±Þ+m]ôrø%þkS^¦íNÇõ°Ý™ÜÅnûëË|Ϧï%Ñ.KTžºò¯ëiÚ긽œð·*áwjá§?—ÅåùÀ‹Ÿß®å€¸ñô|œk« ’gÄ0Έ€) tšÅ/M eäjB82®"òʳh€)5Ê%9aúa[ظÐÔÛ¸Ãý8ñ×y›ñµÃß=ì$8LMÝõÔVø™Å 6ô{ø=ÕÓ¤}’¥:]È Ew«!ÔDÙžyïr…Ï=눯~A¢õ7þ¨†opt™úãP"­W(Ê¢µòYF²”§c˜Û©éÆO¬“© ÔËãÏÚX'¯'²DÐÓˆ,}‡0.~% _˜¹Ùõ31LÛ]€³Ô6•¤$Ù'’e¬àý+ÿ'öwdñÂÑŠ„„7I3¿¨[à—TŒûš•^Wä3cKРÑÔÇQ?’ŸÂ楬É—m<kµÝYcÁkD1‰fÆë‰?ˆ]¦ æ¿ó(6.tÍú",xx@óÀ^"ë×+R>±j½@µt9AÄL(šŽÁ˜¶Èãñ 5QDâÈW(†l–‰ó’£"M²q)x‡úp \͈ïM=Ô¼le«fu5Œµ»âGàt¨,™?6ÄÇÀšú³©ì³aƒ´tÚ +*Ô~#xPª¾›³ÄÍõ¾gd qž ¨–'¯ˆbèꃺ“„Ü ÖÈq#:^&Nx6~oO'^QHUð÷1˜ŽZf«>ÎÞ’›ß®”¨®¯GÊ„œ0Èî¦ÈÈ‘]‰¸¿ó#ülõ<&Ÿàö³‘îìØû3²k Å;-æD±ñÈoèOõ¬o€¾Wk’µ·è¦ÊëLTZ³çÞ§ áDÎÈÅ +ÇÙ7žµEñ'%j³È]ÔùÏæuÉf°‰w/¤_ù@CíWJ·g’b7‹qSß^’Õö†TgñkYM¼¢ÝR>s<^ñ/ÁF¼É‰Ÿó9]åÄ×…ÜCÒD˜ròXrJÎ]†î…ÚÿçõoÂÕYlÛ–’>qY¦èC©LVpHf>®8Ñ0×iY¯¡å˜‹¬ÎRe}‘ÐAì  P&œ~NR½‚!Q:)å<‰œò¹ÅóL¥ÎEPÈu°Ñc¡Ï•IM´»|N²¤ ò‰`êTê…^õ„ j©fpôÀbd¥Ô¬"ò°}‹êÊáƒÌ!Ó·•Àqù»gc—¢z}ŸdŸøañ™ŸOÏX@–,³_&ͳ߽ì>TD®rW³œWô¨½Êoù;Æuhc)†ôö·kÈx;c!Èù_·¬e1Ð rhÌnÒ¢d&À²ª•tBˆ8sî šýWJÇ3±–ß\*…Ì¥Aó7Ñ+âû4_:µ @e®T°¾ {œå¸:ô°m•»O/SÛIâ (ä`©]ËÌ{‘VTJk ö¡èO·¾Rtyì/B"mÑü0™Ï­2Ö*(z6_½(‚Çú\剋e¹Al6†0¡Úµì°–Ü„€Ir¸ê·kKŸTË’)œ„¨ SƒJøöì–ÆçxÞO+†-rw ðd@„„t~ržLùbá9éJÐYçÒ‘fŸ0ƫ¸»n„ È!ÀºIuØ Bf~ÇuL<ÛzöÀÊa“eg> endobj +1500 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [328.751 242.578 335.213 254.618] +/Subtype /Link +/A << /S /GoTo /D (Hfootnote.14) >> +>> endobj +1499 0 obj << +/D [1497 0 R /XYZ 63.034 602.788 null] +>> endobj +278 0 obj << +/D [1497 0 R /XYZ 63.034 584.788 null] +>> endobj +282 0 obj << +/D [1497 0 R /XYZ 63.034 403.703 null] +>> endobj +1501 0 obj << +/D [1497 0 R /XYZ 78.277 148.923 null] +>> endobj +1496 0 obj << +/Font << /F47 596 0 R /F8 580 0 R /F11 674 0 R /F14 1012 0 R /F10 1027 0 R /F7 586 0 R /F20 1030 0 R /F19 1034 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1504 0 obj << +/Length 2707 +/Filter /FlateDecode +>> +stream +xÚ¥YY“Û6~ׯP剪`âàõ°»ådã¬S±8JíCœJ¢$V‰¢LJ3™üúí!‘3Ù-×T q4F_CrßœR*™§±YžÏ7Í,žïaæû™´KK² h¾YÍ^½Éç…(R=_í¶¿Ey¾ø}õë7‰Èd,E–!c¤øö߯Z}·ÑÇÅRk¥b±Ì²,z÷ë‹\G«·?ÁÜo¿],eôz‘›h…­·`ô=¯xýþ_ØÐÑ/0öó¯¯?¾}ÿ=î:ûnåÅ7:©N_<¡£ùŽ˜dFä*¥4 •EWØúx©Ïøyi +]*q²å !­X/–ð¿ÂÃt0Ö#M=Ö—SoÚS_o«®\ÃýÉp¸^zš‡Þ ðùêx»yË’÷‡ï¡âƶîYXÔÓÃòæT|_UÊ4²ˆÚ~óèL7ÑŸPì¶qJ+L¶.{”›åqߢøpIú'1›¸IO¥HÓšø¾]$(QBbÂÝA»ÚUðUQuÚP÷ŸÌ'°¶4°e.°“׈Q¡ æû÷W6¤ÏW§0³"ºí!ß Ë´W’¶Cu,•*D*ÍÍ]¯ÐÙ:âÜïÚ®a‚³{mC·o¸7˜öðÙ\¡MŠbƒ¾µÉYßàÐ2R@+U½»‰Âÿ£²…z>V(⣴ȥøà?i™­èÒ³$úÄ$n';ðE›Ø +µÐ"ÝHÕh#¹ÐyÁA‰ÍíõJ‹N{Pg{;7Ïv``h[$Ü\˜†ì +imÈ1à’û—j:>ͧ™´`¥Är9äH–]ZJ@pyéý¥®|ˆØ2åµ÷ò—qéP°‡š > +Õq»kÀSfœ^›Ñá¥Z9å¡kŽC ¸œ–Ï^[!’ıߢx{°¦>Ù>¾±XhÏÒÊ$CÐ*…ÔÚ[,'X™˜—„rÎB¶4¾…llPÔ0q + °­+ýJs›ÏñfñÚÁãñJâ p nŽM§a#Ù=ñ`Óö¨&0 4‹£®.Ñ÷AÒÿšÉH«è]õñÈ-Ÿ“pºì{Dz)Æ$òÑ‘;–š’£s(!2‚qœÐÆu3¤éÒåŠk‚°6!;n:¿à B™Âë“Ca U¨è“ÔfMxãdG¬Û…HƒÝŽ5öSÝ…h¡ ß­»þ¾ÞŸ(@’€--#^,i…ö(Û(X†O2Kpï¬]„Ç`…R|v‘qr ¸¨ÏãwÍΫØ{<ÉŠÖ8LlWö€™4Î1UËh¦7å‰@ö…»„Ž·4²ØLfX²ø%% m‚<¼Í;˲xx”ªb.‡<"'5—.BJWÙ ±!2žJ „ÉÕ<|rvq`ul—£ŒmG +íýZ üLøâý¹ò^«á-àêý«N*d*ÿ¿.ÿûÇðë þîs)­eŽŸNb¾h'E:‘ŠŒv¹æïøP`¦Ô*S¡!ŸMêU‡U8€Râ‰#+u¯Ó` ' øaí'8¤ÅÄ£â )ÍKz7·ï’râá`Y¨vû`‘'/‡þai¸š¦ü£nJ»rø!Ž2ö!XÃéP"/’ÛÊõ “ TÍÉBú*Æ9fD"Ù3¿7I<½BNXèŸz`5å÷„ò»ƒ÷0•r©ˆ¿ª(îð9ˆâ^}ÚQ(h¸ByWxA©àÄ}L³?èGÅÔ°ÚhªØ &ÿ (Îo³endstream +endobj +1503 0 obj << +/Type /Page +/Contents 1504 0 R +/Resources 1502 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1490 0 R +>> endobj +1505 0 obj << +/D [1503 0 R /XYZ 91.925 602.788 null] +>> endobj +286 0 obj << +/D [1503 0 R /XYZ 91.925 523.947 null] +>> endobj +290 0 obj << +/D [1503 0 R /XYZ 91.925 493.359 null] +>> endobj +1502 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F45 589 0 R /F47 596 0 R /F11 674 0 R /F7 586 0 R /F14 1012 0 R /F48 601 0 R /F10 1027 0 R /F13 1055 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1508 0 obj << +/Length 3040 +/Filter /FlateDecode +>> +stream +xÚÍioÇõ»~?.‘p2÷á&\#)œÄuš¨( +ÛVäJÚ„"rYÙýõ}oŽÝYîRk¡(hyûæÝ×Í(ü±™„ +9Ó”cílywAg7°ò§ !d‘Áüñòâ«ï”œ9â´˜]^£¹\½«4ád¾0ÆToþúãÜÊêr¾`ÕëŸæ¬úñõ+¼éß¾ÆÛ·ðöÏó—ßõ° +!ˆ‘È@„Ö!ÀÅ·—=i’jXWg©p0¸aÅuN §V•&’Ž@ŽA%q–Í2„ûýâÝ:[Ü÷”ggpO snvwÁ B¨ø¼¾øåâ/QÖÎ᪬„‰ê™Þ5òî¤ÿP`‘9/€—kÒÍv×vp½½ âRføF6*£¸öÇÒb ÁUòQaV”H¸²ÀBF“š(iÎÃÝý„,͈Á> Y×y²´"TË1Ys!ªZâzBŸÛ¶îy苸ÎÓgÁu Ñ·joöQß:‡ãQßdj Æ(X5¨ ®NT¯7Èæ½g¶›âäŠXÆzœ ©tIi’‚€jA–F?ÁJ2¥€j1àš8“èàœšøé +i¸¯tµ/Ù–a'|"CÄ{è‚iÌ +"¹ƒ8;2ÕÑÎD+——ñs—/÷«ï©¤ó·ªúµ(tGÚweíÿ +X@Àï)eᮄcÔ‘¨3|À•t=¾ ׊èÞ?ßSEï@¢[ØÌU«é^hg¶‡f2€phœ±Ÿf°©¥}XéG%!ä¿`äØÒc&RŠËõs¥µÛɼ&8\ƒ­³f^_E)µ”×TH™$Z¿ÀþYýÌÎPÐXŸ‡7ûîV("””ÂJÆÈdJ£_£­iÔ‡.Ùà ²»m¢­¶ŠQ×H4yô^YÅØ«z½Dj×u×L‰:mÈ–Ó½Á%zÓûfj™ÎG‘eŽŒô2øÿr“+ OŸP@²òuN…µ½Ã•«z°‘¦»MÎäC\f12è(‰lBñ +1jSÕk_KA!å5`$ª gK”a™½ \®!= 1Õ.þŒ†$ :ÞEÓè?¼ÚùµýaÝ…çíu¸îý'Í}xb„…Ý€¨ìœÇìP ®Q¶Z¢Å0¿ŠqHÛá¥^ãÿEAÖ°k íá·Û]½û…:I„Øu’$¸¶ø¼D˜P-\“àÀ•„‚ž¥íƉ0Êi +–ÏGrç)‚Ç[‡;ž¬³+y’pÉ:»mÏ•7¬(²‘n¢,§þ +> ÏäÎlÃ……í؈q÷ÑD°'^]×-j¼‰úÝ5UÙä…¤ÌÇo~šhËB#gLX‚(Ÿ VËO”´ ×"CæõšÄ™ Ü™~COÖ·(Í7… +2„-8öêž\j’ƒ‡þ1êó&ˆiDâ†0*ò’â|P{D¡ð˜dÑ?ÿVB,Q—"Ùý.8íê°Œ6MG<©h ×ÛB…å¹è™k?R 'k¾Þmï‚õÐH„/@&X%Ö¨}Z˜SR³Yf„Œ@§û;°¼”YXØ{H‡èiǼb:,ÕqV&g:L 1Äê©öŽä0h„$Òª)üî ) ð3¡žNÂdå¢ú8';W/²’æ¸ÀËs4[]äxs]”l‚¬9®„@:Š¡§bÁ† B•jWªÙ ._3}]ðm( 5ÏÍCÄ,óãÍ6Eà!꤄8.¦tÉVömÒcû©¨$jÕçøKÑ:(Ñ\ü·Žâx˜L%h]õ£ð Kæ°+uPÎȧǻnÚ|àÄÚt )ÖíIœœ@ÐÇõŽùE©QîŒA:"0ò÷;|qÞ¦ëé¡r͉üXªÇÛøÚvªd¢ûúûª$¬i â8R2âx*C‡Bja Ú‘RÔ’„?bÿC%Ž¤kI·±ÿK£`Ï@¢ìK˜]iÈ!­úZk7i­zÍ&±ÐAÏ‹ž(NÈ^OZ|2Å( p@ã?Ÿ,,&¾É¸r£4¦­8ÝD. »q¢`\jè"JáË9y® + +û’û£Ò…¿¬°û?YiAäµ}7–:î!r(hê lÆaè넯À©MŒ8ûŠúI¾r"O0ÃgÃOÍ¥ £â£Ô¨cù*Lµ¡ D‰)µùˆo—Í~'í ªºÛ÷ Ï” +9Þ´²R^Ê̈,Éú固ú¾0â™õÓ‡eq¼Ù{êôïÅbða§IÅ#--ƃ{,®¦Þi|¸„9ä˜]Äüó™Ž Z¦ÌɆ)‚ÔPÍ„>ãs¶„k‘!›4lL)¡VO0~¼ûÃ˹±Õß U%V‰ãŽ­0fä`§R©Ï3B ùè‡x*‹g~LAn„úlÁ¡HÖLõ,fg‹ & éßµ7Ð<Žf„Àº“½ÕIY½\gÇn°&§§k\Yˆ&z–mù˜ŠÔx'F%×9ú¹† AÕˆþÂü"4 ÏBT@u–&c!ì»1Msn*”êä`;œÄ>q×Yêœõ#ñœºÐÖO”)Ä 5RæÄÈ8ø‘B#ƒ–_˜³'ç\BEe†“s™QeŒOœAJLs½…?æÅ<è‡ÞæŒ)œè + êøñ&%Z +Ó¢G5!€ïRJ çf`¸ª‡ù,‚"¦s¸\rwsÁ«CáG"ò9ˆŠ˜Îe¥?¨Â£[2ùi/Ñ—x—·-&^ÞϤS ÁÑn6FbÕ>¼„¤æJpØÌÙ0™¼Ùø! ºßÅŠØV«Eš Q~d ’S*VP„15xQ˜Cs‡ð¡ÏÑÛ°Ðâ>÷‡P%xvËÌ‚¥æã¾,c×ú2g8’œ|#uÔmeßC¬îë<µ¥´òCí»ÄwçųŠ´G’ñÌŸ·žê@{XñÂñŸ,Û}»Mp×Â0ôÙ£yL®P•§M Ûn©_°êo¨ÐvÝDIÎãÉ;UCK ýÒ]RÇ‘<#ç¦ñÆf÷‡ÓÀtî=ðÃo¡šÚ­ÂË0¶ð·^B(T]Ãûˆx0!QákoFÁ> ‚áRŠÀCëëÃDU þa½™Ê «eSðv"+HÜù܉N1€Hßo²‰# _TƒÏB Ç‚ÀxÁ\¤vxö™@|GçI_õ®ä™õQö>ú‡ð¿#ûG‡ÖÁ¼Ñ97H •ÃÞãñÂÂqÓ쓋ª?3€öî¾Æ-º¶^‡ç!v­—_Ûìâ'í:Õ»vwi7ñUxÜ®’»7¿/ñ—Ї¹ÏÃxy`èòÖ›!¦ŸÝO—ˆð–¶ûfý)¼Á}ë°±w3Y·‘£,´8×åáéÚG¢¸ôŽ{ÿDî£(§>D¢6óèƲ§¥n½·/ +|­k섵 Þohös©Ä¼|`|”ƒÇÒéÒ€üÊ;ö%rôa¸CúÀA¸¶"µð4®Í´ÄSGn!!âyµüÌÚ&àZdÈŽkˆÐQ›~¿rz8PüY¨J¸ÎRÅ žˆ:YBUMôÏB\Äu–8¡l'§.•ƒ^©«ö=eÂ{'>&+Žq6ÀŸ:ä‘â¶-Me,§Ù t×\7»f³ÄpPÁ¼ûð¿mc²B4>a,ÙÅ@~8®Ãú?ç +c†´új=ï—·‡­ùÐ%4Ͳíj»IdùºÓ¾Z÷¬ì ®æc›C4„†hšQ¢9*$, Àœ–VxµY¤‚ú‰Ýnß…‡îÖŸ¤ÜäO@; +D¸¼Ds»müå· +üzöñÃmÓÝ6ñ}.~€?<°á‡ðÊ?Ö>IÞû¤ y$ìWoŽí:6Ø pWjÒ/Ti¾øo.á'endstream +endobj +1507 0 obj << +/Type /Page +/Contents 1508 0 R +/Resources 1506 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1490 0 R +/Annots [ 1510 0 R 1511 0 R 1512 0 R ] +>> endobj +1510 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [356.207 516.953 370.432 529.904] +/Subtype /Link +/A << /S /GoTo /D (figure.6.5) >> +>> endobj +1511 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [306.498 170.383 313.472 178.796] +/Subtype /Link +/A << /S /GoTo /D (cite.HAC) >> +>> endobj +1512 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [191.123 158.428 198.097 166.841] +/Subtype /Link +/A << /S /GoTo /D (cite.TAOCPV2) >> +>> endobj +1509 0 obj << +/D [1507 0 R /XYZ 63.034 602.788 null] +>> endobj +867 0 obj << +/D [1507 0 R /XYZ 205.585 260.57 null] +>> endobj +1506 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F23 1211 0 R /F64 1214 0 R /F20 1030 0 R /F48 601 0 R /F11 674 0 R /F7 586 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1515 0 obj << +/Length 3545 +/Filter /FlateDecode +>> +stream +xÚí[[oë6~ϯðÛ*hÍò.i}ÈözŠÞ›>µ]@‰GXÛr-§iö×ï ‡¤(KÖ9Ûx¢(N$S#r8—Có³Xpø'¥`¥4 Ë%Ë‹bq¿½â‹5<ùôJx‰¥Y&2ÿ¼½úà“bQ²ÒªÅíÃi/·«³’_ÿ|ûùŸÝ‹ .XžcÇ(ñág7ßÜ~|-²ï®—Jé̲ëežçÙ—?|q]¨ìöÍ7ðì‹7^/Evs]èìïÞ| ­_Ñ7_}„7*ûÚ¾ýáæ»7_}Š£^}|Õ×Ê0«ìì ƒÌ;LÑäšÒº Ü]/ežÕ ‚4ÙSW£z+ü¤³fuØp„÷¤ZÁLQk™½y ±ã#=Ŷ(ÔÀç]³½–Eö´¥v|­Y7Gzã¾}ÚáSÿ±õÕáåãc}*ìáó“l:êmS;­ü'Tî±Ú‘§„èg«„bFXï©Ÿ¸°$“ìÀx»³q:0_,•(˜’`aÖ3ÆÉ!Y˜ì暃!Á<Ô²­­³ë +4™¥Â)¿PC´:Š?3×^|ÎðÐÇÍÃ탒szøaOuA#¢ø » ýû‡-êr|ßMœûÛÁŒUi²»Šâdã<í«Íº…‡ÆIn½d˜§ÈÖý¬`šoHæXo÷8zÖ¢JÕ᛽òûÓLPÜ°œË…1œ•Â`ÿrõãÏ|±‚ŒøüŠ3U‹g¸çL”åb{%YY”þÓæêû«oûŒ }-“ÎN3Fñ‚ÙRÄñÐM ^Pó×kcAé¦B»oêq¹–û;Ž"0gF–þ©‹ïò$ pcK×Çv³¢ ”yÁ„”“A‰Iá<ãÔtÆ?K\cÕ±¦Œ:P&ရA6*LBjØãË­óÐ +ïC`:„h84¥§†HØ´8ôs¢Öí|ëµtMPHPH¡H4ÕûÖ‡‚CMø¹?ø8ï•ìbŸ“”v¢uÓgùaì2PZ–â«‘Ï +Æ•òOÿ1ñ:O`ç~ÂãVIÿ´]2Aénâu®/3ø3Y¡uð +VqNûÿĘy7ÍÑ¥ïš$É£`Yfä…ŽQdŠB3+5ÜHÐ$w#Ýl6 o|påÁ­ÞS«¡‹‹“,(Æ>TÛö©›²x¢“ýzb²EÞÿáKHSû$_XVæÚ¥.`ˆXA('–mK’(£š„ÃbÊ+4Ò~ÓÜWǦÝÑü7”Oí>1‡CÓõ£KÚÍ‹ïÅçz0íMäR’ìm “jíq»°ÚåHÌŒûšQ±=eÖÐ …‚^Bä¯ô·ÍºÑÄ¥d\Q o\¶Yïc«üZ²w*Œ2Ù-yv4j™3Ãr?Žy¥’”7ur_ü枇wý‹›¸´µ{ŒÑÜBŒúg^!_‡¹÷ž1©Cç:jÏ•JÍîß ré ’0jàH´ƒ€µñÃ}Gb]ºÇMê^‚÷ÄõPmD·MzRêèy>Æ´’£{ÇãHTÊG .©\C»ë°PX®:Òœ›‹i‘cŒ»ªaﱟGê§^ù2žp 6%0edh»\&¾V”6»ú°m{Ϥ©1Ȇ².悧(/-†(HiJÌߦÒÁh³Hd:ÒÆ›1®Ùo¢‹V¤U…¡^5»î8¡–dE1³Ê—(|È‹¶*;„â¥{ÚxB0äj•ÔôØÒ¯|0ƒ¤N(añJ+ÚìHÜEš\†Ȳ=”‚<¾wE:Û¯ÓyÖ=6ãⶰ,צ_…/&Q2Pöl™ €UkùB£ÔnžÖŸà»Å½cɳú·j»ßÔ‰š#òïºfÕ}KU”ƒEróâ +š5uh@bw!ã¡°Rdw0¨>âA„Jwô—§†¨MWxN<…ëÒǼf¥ÖcÓz‹­\g‚ +€ÕŒ‡u½ÅçJ >À˜¹Cê"{/åÔ8¦phÑw"¦ÆÉO‡Ñ¯F¾Ó0r4 æÆó#xöÑ#FG†ºÊ~mÂŒf¯6ÍúÌQ„^~ê€Q€|ˆQ-¦½ßñį?B¡\ÝÅ-6;ÝËúoc\õ§¾Ô‘ÂåDdO%N%! +ˆ‚åF¿Ã¦¸äLš3Ûbj S<×—âÐÝyéaWÓ9ǵäU@˜({‰NòWvWbVÁî»´Sßx"¹O*iB%sêxQàëàùØÍ+tò}ÍéT&´蔟ê[N¨±åEt +}Íè$µy^t²#`›Q¨â:‰ÂÀVO½60qÀ»Kzë’gKWñ4¸µÌòÞÞž£sØá¾ù"Óý£%ó2n°ó„µš V­lLð6Ÿå™ +ÇØC°öý¼B+ßÙ¬VV0 þLµR#­ öàwH W:åSä…#=pQ¼$2çÊ1ð½öäýSR4UDùÄÛ„RO ¡¹‹,¼‡ãÙž7õÃñìÉãô9qÊÚ†£RÐm褬0ÙÝ ]+ºìÝ1ñ³S>: Á•ôpÜSƒ”V<)›8k×tŠ585¶ª?…µÒ÷ÕžøMî¯ç5B³³:ÒQ=ÝÇñT8¯µþ¸Üz½sÂHOÃú,Ý·ç©Å¦ˆj‹@À ÈHmÜDú=Iy`<ðê¸>Bžçדc~héŽÕÁ¥’;{D‘c}‚q%¡"æ6œÿO;¢dPœy‰¿IÅU³v Nš Í0QüP?mŽþ€^ª’in'ôßGF³›2Ï Ó ÌEÂYMøjn¾ „#ÙûH7Ý‹£_Ü‘ 7Ôáº䲕AP³5sÚ;yø×Dp¦uà‘&‹<ò|ЂŠŽzÚÄÓhÐïPï!Á=A 'Û‘dE—•cdFj´€¸§ `…!øëwßtáÐÙa¨0§¹ÀÎ áHF6’zP¿ Ru®Ä±?Ò‡î(|DBU8I1.…§øŠ„ +N®må8‚áˆ<{ŽÆ˜U…4UɪÈ4ë Î7xæIÊnX0ˆ[MPhÄï$LÏŸ3PÖq–´¶0W‡íRÔwG8»™êÄèÝi¹r+¤•j9ÄF\ké:ÁóxGÏO¢Ä£×¡v¢^+”…ܬÃX€—Z¹”qUê爚í~91¯c³Mx6Ï$# ϤqH猸 #SUÞ‡ DÌq…¾[N$ÛæéaOùD‚áÁý¤õrLöí@fÂMZˆ¿6䜘 ¶LyË9bH|¡LGWâËï«uE 14¹±.Ø×ISM¼®]ôR|cCþ'V¢Ñôc›“×pfžç O\ÄVSq·k I4+hýs^ÞÖ+\>ñDSžS‹±CÝ~@ ùãî—YÝc¬v¤ž¿÷¿O21iâH•×†°¾ÃÈlz ic[ ‡dô;2Ƹþ<ý%TªØe{ð|[¨–Ý:f> endobj +1516 0 obj << +/D [1514 0 R /XYZ 91.925 602.788 null] +>> endobj +868 0 obj << +/D [1514 0 R /XYZ 212.238 302.104 null] +>> endobj +1513 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F11 674 0 R /F7 586 0 R /F14 1012 0 R /F10 1027 0 R /F45 589 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1519 0 obj << +/Length 1512 +/Filter /FlateDecode +>> +stream +xÚ­XYÛ6~÷¯p_)‰¸â¡«IZlÓ&qš«©‹¢H‚…lÉ^!–¥èÈîùñŠCë0×íÃ"<ä|~œ‹ÔÒ¹ ÿèÜçÄåba8_ç3w¾ÍóE„ƒg€ùe9;{æ‰yD"ŸÏ—›©™eòÁò #¶õú¯Wv(¬¥íPkñΦ֫ÅS)Ÿw³ )¾…Ù7ö§å˳gao•sN i0¢0ûmy &\ôÞIösD?“ÎÚ¥õ{( ˆàõ£íÏ·VûiAD!4œ·Kô/³ŸÜyUñræ…ó+]B£hžÏ |G»ÙŸ³?úªé 9Kªâ‡„\J¨ßï&yÕS>Ôõ÷ØPÒ¶þƒUH( F¬rpiyÄŒQpzt7ÌÐÖifLÆù„=dÙ”‡ÜïˆÚ:ÍM0â{ãX&]Ùv-Ž€´ž’ôBâÊÈr¬ŒZïQ F¨3À* +aOA·`„H.õ»^àÊØCˆp6N^àYg÷¡[2ÏÊÛ]“•»,­Õø{ü] ¨ÿ¾Âq¼O” KÊìFÖE^¶^Ý–²K)ɶõAÊ”‹ú­Rè‘`=º®ÞÿÅùS%”%Q‚y•t¾ÛUÖ\æjH¡’³eº»Öë"É6YŠ´k$vS´È<Þë#웪ةÁeqe¤iåñþæöãmNA¿U)nÓ]Ci¬»Ùt æê-ÎŒjŠ‘ËöFÇ1†úú"// ¬}>‚;`R®Æ6F?‚ª»j&êU¯žªÖ¨:Ì˽`jdƱ#G}Ʋ0Á±#ã}<Ìhʦ4à!À¨ sóȸ©‡ØØItH»Ô'/õ³k-ܘÍùýÖ‰zÍtùn=øª¨0+364nòR3ºr3o!™f¹‹Öu¹’þ +³²­Qè®p)lâºô™²?T?#cvrªÝ½éSNÿ?$G§y¬~^¿»øûüýûózͽ{FÓØ"+ozÛ±óPOÐ/+5nb²ÄmÇÑ€>ó}úâüýÅ/‹å(Ý»Fž}K‹Í¨ždlå–ý¶N¯g# ¿.ž/–Ò®ÆÖ•!á<:Q1*.ä+1iÞ´Õ¾åÅQCð•ŽË\×´Ž–1͸g Àý§ß½[_2^O<¸%*}Ã<ô¤ ÎQé‘÷Tø‡3ô‘ùáÉ!íÞþŽIwÜ•à"õÝðT[BĘuhp=06{0º# +]Û ‘¹?r<¿qwaìЂMÛ„ºÕ'ÁtÕ¡Ò‡w|‘´ëÃuP¥ëF¿Ì-CpÜ´ŒGܱ²Çô1É…¾6EÕ‡=»péž>j8e|˜ðÀêË v"þ1>‰‡ñ×î«Ófâ:üúêæð!¢¾m±GPËì#-·ÓšÀq6œÛe¹¾eŠ¶ªÓÝW][šYîÚþ~ûÞrÃÇÎ-‘Ž|1jè«QCï·tTze×·ö$Ï5ÎÒã ´¥~ æ—x—ŵ>¿™½Ç&†ÖEyc,ô¶ÞªÈõøpÓb‘^Á›5ÛO–îSù‹!*Šò$%Ž”ä3aZ> endobj +1520 0 obj << +/D [1518 0 R /XYZ 63.034 602.788 null] +>> endobj +1517 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F11 674 0 R /F14 1012 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1524 0 obj << +/Length 1967 +/Filter /FlateDecode +>> +stream +xÚ­XësÛ6ÿ®¿BŸzd\!HD™qÜ6ç6¯&êÜtÚ^†–h›RTIªŠï¯¿]ì‚¢V{ñx‹ÅîoŸœFð'§V +«Ò©Ž”0Y6]Ô“hz;/&’)fL2Ñ<ŸOž~—M­°:žÎo¹Ì—¿V…¿Í¿ú]šìÈd$…1È)®þ~ùvþm(ƒwá,Ž“@‹pfŒ ^ýô2Ìâ`~ýö^^_…3\†YÌqvýV_Ó‰Ë×ßà$ÞÃÚ?]¾»~ýo|;ÄOâTèXŸÕÐÓ©˜fÓ „×#S“ˆLi§A”¦p¿6iðôI8KUä+«2ïhzÛ´4éï š,Q¢ëËUÞ— ŸèîËÛ¾XÒGù‰Æu•/ +æóä)ªÏd$ljYÍôõº'¯ù:±\ÓìÂ3ýò$sr5û¯5+ïÊž)š[oΪ`w*<ì©p3{¶\ŸZG'WåЋ¦^oúâ@ÊESmêŠz æ@Ñlz8çg£¬ÛfßåÇìò¶}8§ V,ÖدQ•ûºF_²•xù+¾ôÆ­kX¿¸€c’£ÊîSšLdÆpTÝ2ÁÈsgž‚¤ÊXª8œ%Fý°ªÚÛŸ1Ëi¨×¶M»<«~µ Ã×;ð`!qI>AOvš²óžb qg­y”°ø´cñää}þ.ë™ÛôùÛè觧õd„éìÿòU±ÝwTç#(«f[°K­ó¶ěۢÛTýYY–Åq±ç™¬ñãz_eÜáë?{cÚxõöëË÷?à£8™“AmäNwEÿxnÑ;ämÛÔÿ1Fñ…›cýSž=û ¾¹~q=ÿðüz~ +NÇyb¬s˜ßs&ØW&9H‰GoZÉSòVÙQÎq凡¼)ÀÙ8Ë—wgk’ñUÑóuéîÓ~1ÚOsÈò‘ì–H¡¤=—ݘb_=öè=Þœv>óÿB<;f¡S{†ì3²§äÌ¢p¦4eÞE•×ëÄŸõ†V&w§ŠO‹ûñ¡ÏÙ?¬N¹h)òö¯ ’ð©¶è7íjHo~¸üùôôN• •$ûpŽºÑ™ŒÅÇŽæe¹‚±àšØ,ˆ1«Xô §ô½,zGÖ}]® +ÚEGvÔ÷Ä×® µ(­ÄZˆ+µ;éh€«Ê°ÂS ìprãVùü&tÂ?&û5’Ië{h†ml‚9݈À€£ jÏ$t¢iê[4«e ®$ådQ€=’Èî®A²Õ-ö0Ç„ˆó=`¥m6Ž%c†ó–çxø>ïiV;´8Ù@ÊTl…R¾×Ï¿B×GtÌ\é„ÆFjÜ|±é‚C#¦VdÖ‡Ì.5Œ¯0@‘2ÅW(QŒê#V*:ñ„ØÎ94c1§÷ÐôæU™ V¡ðšÌ›­ÅA»òª2ìu‡Vw¼Œ­#êÚÓgÉÛUѱ÷á@ˆÖ I“‘¨2×…—ÉúêíákFÙ…•Èy*¿O~ù-š.áUóý$±Í¦[˜GBzõ$Ilø«š¼Ÿü¸{õx^³3÷ê ¤l&"› ¢Xÿ%àqùzwÚ4øùØ|ô"=aáÞo±Å5:87îzˆ`Û“uT +Ñž6Ý‹Çbà/ÈiI_=…[,dãX ³6o£Ÿã„Â*_ ÅGÏ(¿+è(x2ŒjGîž Ù?§¥ƒ¸k‚bIœÏˆ`é70s×fàréG +E¼Ž4àuÈAG¾í9æI·Î„TÞSnœdô^ kL9ø¾kP(|/·^>t³PŒU°õ¶q‹|¸.j‡ž{ %g`•óe9 ëu]njál¨E&³=5ÞÜ¢ÂõªàNR”¼ÂêKJRîε“»iÑ+d°(È:äÒ[I²®UÈ3âEj¼¨¹õô>‹$)©…‘ŠA„åc¨D™õO«‹cV¤CoR:”Ž­¤/U9œ\NØÅvý=ŠèE® èt:&ÙOQ:r4øJ¢,pø,i®ñ'­mðºé ZºoЃ·L[U4A\pê$ó?ÂTCž/s¬.]ájÞ2#Bºëù`ãðv×<¬ÙÛŽòš²ZÈØ#MËá¯4^´N¦2ÕÂÒÿ)¯y^³³£¼2 ÉáBkB 8g?.G*Fû|ö9W$:*ÈÛûÒe˜{´’v‹c^u Í1œ`Õ}ÉÕ©+PTFpôÖÀDrSᦑÁ?P¦±P™ïQÛ#¹Al£viب˜Z +WÂÏ¢8-VÝÆ—{Å='_ºHáaûEÙaÔQŸ¹;<Ƹ4Þ5¸·rAÚ40ßåvô¾r5ôCþ¢œ·È…í¸·©˜Ö߶Xø ¢pý†‡A˜Ò¥wÈÓH¶®JŸF8ƒ¸kxt›+>¦Ó¡SÝU§:ÿ’©ÌCk³kñèÛõÚýv‚Ÿ[~;Àí½¸ºâ3kWsêò_ŒãÀ- ´0ü¹´q6¤TðfEdÎÙW†ªƒKe8L«†²íG–»*½*øµKžãˆåŸCm*beOýª'1äVümþ’EZ$endstream +endobj +1523 0 obj << +/Type /Page +/Contents 1524 0 R +/Resources 1522 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1521 0 R +>> endobj +1525 0 obj << +/D [1523 0 R /XYZ 91.925 602.788 null] +>> endobj +1522 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R /F11 674 0 R /F48 601 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1528 0 obj << +/Length 2628 +/Filter /FlateDecode +>> +stream +xÚ¥YÝÛ¸Ï_aäIFkžø¡¯î!·¸¤{¸4Ü-äAkɶ.²åHrv·ýÛ;_”eK»Åá°ÀŠä ‡ÃáÌo†´^„ð§±U¡u‹84*IÓÅzÿ*\lòî•Ž•°¬F±2j¹J’$xÿÏ_–© î–+ÜþºÔÁ/·7Ø~C£·Øü£ÿX~¾ûù»·éYªµV%.5P`f‘áÕOwƒj.Œ½¨½ç™¨ŸN´§RÓbëfzA¯ª.ÛåʤIðPÕ5¶â`—/M|Ã%Ž¤Aœ ³:˹_ étÿk! Ø¶\ã +UW5º_˜Œl}…uµÎûÚ‹ôcëW + +d&)%Óú4Ú²Ãa†fc¬´VYÑöÚò+Òª¶,ðâ8øe»åʹ0Èø…¥Ž 2 ÊVtAÚn¼9Õwï™;¦Ãœ•¬îë'f ejÒ&>ˆ`Y`ß¹gÖÑöxgQîxÐLƒQÇ»âC+)ßâäl*tÒiø‹'’d,™˜qÃ5ØÀ™8ø»¨‡›á³mÿ +²0xwsüÀŽÜ#G=”‡M¸ÝÉŠ~!;¯«ÿ”^­¼g% +⿯…ðP¡Ÿ”3‡E|ýñÄk9mÙžô[œŽCd·Ç×âRNq)´<¸~ª²íxÙ ¾{2¸ˆÿE¯ˆS¼ÅÛÓxù˜ïu &qÖÒw2£:t};8#RPƒéN>ië ^ÃjpÔäÙ.¯Ox„‰iÌm +ñÚÖà4gËäIÐ<‰P:YòShÍ +C°ê¹ûmÅA^Ÿ¼Õ:ß"ÏFò1KìV8(‚çâ¬;Õ½bdsÉ“6Èg•z°Êð?˜o"°|悼C["üØ$Þƒ(\ˆrÓ©6èH@ «ƒ'nûÓÁ6ZýùöÈpŸ¿æá÷e¿ƒÝÙcéq©²)÷áÀFr!sƒ_AØ¡‰Éñe 8Çš%'LùÒ]O÷"3R8;:ˆšüº|ÍòzK¡_õ»½È¨äK20˜ˆ¯?ëE›Ñz”Gt¢b›Hù0Ù-œC õS…3€Ã ÇÉÉ"V 5RY +,±f2“œrq¶XY`Mî²²6S©/¼¦.}fAÔ„hÓçh³|Ÿàõ‰)C (Š‡< 2ò7{ˆ˜mÞ få@;ræ,§£À!˜·-ü +˜/lÜyxÅöùRXºrºÓp8”Ý°‚uYP7¤'¦ìžw-û³ - |…Sy@†¾Êkæ§=`ƒ<¡•b=NÄ-(„ëkþjO1D’÷ô$gh<œX˜‹lÒæõÀJy"³¼÷ò|»ièDÈ£èE?ºÏÜàµÈ<‚+øßHVqZN™¥,xF¾®eÞºê{ѧ|9ŒÒ*A2½JŸÁ và©Vü˜¶©ÖÚ§#Ø,‚n—¤×# +ÚUŒx²Ã·òp‚³½öj •q£ÀѬó¯ä1„ÉâãÆd¹úÚÒf™+TâîB6 +®`Ö-ê!é©`’°ÎÇ cà[âIW—lVñ 4Ú–Ù6²,pRq²tákPµfεNÏÖ¸QuÅýÃdz܃5>û¢w¶O<ò)ÔOuWÊunñÐ)®—Þt,3 2V¼§r ll˃ùP"¢DÕ3…ã‰Í!’\ò¹ü5>Ê•ù‘±‡M©âŽŠ ªÑQuÌžó§«öU·ÌÞ—\f¢Uª¯’€‘ ÈõD€Î¨ €Ö1÷…(÷?Sò™Û´tß—>@ +Ús©Ï5z„ˆâñ%çrrºá8u°¡B¶¤ä½ÀÈqî‚õ ™h8ä3ê`çíã«Cd@§¼f¹>‘Ä.[ã¿9ŒŠ$`“ͲŒó1ŽÕĵ¥²„œ19(“’™v{ÞÓjfS?=kQuí¸ÎäæPS[ABWÂVÎÔ®®¶;oä&Tª:/§ãï±Î×ÐnDðnb(q(_€FÚ4T©í²6ÛÆë$|\kq;o'Í°3®éÐÄkIG”×\lƒ[ÿð¬^_z´¢O16›72Få +£Noyg÷È€õØrò;—–½pˆòÔžr•ÅŒÛöƒÓaAŸ€Œ‚B!1áê¡ÙžñÒçäÄt‰ßMÓîÏÜTk@£ˆ²RÍ\-ã_)Àd)TÑ·²fï'q5GÊÖ•/-.HâýRÏeÒ58¶Á Ÿ„ÚEá7Pp)ÞÃÎ`éV +óMÏM”¹¿Ï"Öåçþ†"ó™¤pÛÛ—i¢x@— WÏpo†" î ™Ÿ²W<*‚ã4W <2q%dÃÜë @"%¾+¹>(pp-çêñmëA¦v)\~àÜóà ‰j¨ý8ž!»‹ æDÁù\¥#ÀŠ,ý¹jƒ¿Øѯ¸ݶ‡7ôÊþ}…'øä%17ängô×k‡—_³HY“͹»…4˜hìˆÿŽ)óendstream +endobj +1527 0 obj << +/Type /Page +/Contents 1528 0 R +/Resources 1526 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1521 0 R +/Annots [ 1530 0 R 1531 0 R ] +>> endobj +1530 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [108.306 431.91 115.28 440.323] +/Subtype /Link +/A << /S /GoTo /D (cite.COMBA) >> +>> endobj +1531 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [321.766 396.045 328.74 404.458] +/Subtype /Link +/A << /S /GoTo /D (cite.BARRETT) >> +>> endobj +1529 0 obj << +/D [1527 0 R /XYZ 63.034 602.788 null] +>> endobj +294 0 obj << +/D [1527 0 R /XYZ 63.034 501.109 null] +>> endobj +1532 0 obj << +/D [1527 0 R /XYZ 149.342 253.579 null] +>> endobj +1526 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F47 596 0 R /F11 674 0 R /F7 586 0 R /F45 589 0 R /F10 1027 0 R /F1 1058 0 R /F14 1012 0 R /F13 1055 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1537 0 obj << +/Length 3353 +/Filter /FlateDecode +>> +stream +xÚí[ݓ㶠ß¿Âò¤fø%Rl'Ó¹^rée’KrÙ4I´¶v퉿"Û½»>äo/@µ’•mNÞC'3Y‰A~ Ÿ˜qøOÌœ`Næ3Ã%³E1[înøìf>¿bH Íßno>~QÌsFÍnïs¹]ý˜9=ÿùö‹_äº%\0k‘1R<ÿû³on?›‹ìõ|¡”Î ›/¬µÙWß9/Tvûò˜ûòåóùBdÏæ…Înñéå×0úŠV<{õ)>¨ì;ûöûg¯_¾úw½ùì¶_«œeF5TZ1+àA Î cXa5<'“=&‘j!˜rI½ùñg>[é7‹ÙxæL87ÛÝ(£™’"¼oo¾»ù¶eFƒ Á™ËÝU^žˆ/z +Ô]VÚÁ.ŽdÿÃLŒc·ïÉd!a¸0r¶È­dp.'åfV€ô gaŒ˜å6gVJï)ùãC•"7K½‡XÙ¨XJ&Œîˆe‹¥t +N$Vd6.8€ÈKÅ2=±gùTR¯Q¡4„¹ÐEG¨Ñú„|†˜Õ2{¹?^νhÍ ãÚN$+D˜€ý¸Ì}0‰€j¥Á¸µ­ ]kC!ãÜÌr”ÉäÞ†?q.Lhà‘ƒ´¼>˜(¬ÞP”'êÉ«Q>nI”ˆÕDy"–¾åSˆÕFù˜X1ʱĵ(ŸDªåcB9챡¾«–‡ýª‰oŒö‘ŸDÒ4Æ‹ÿߺcñBY9ŽÒ±¼³¨XÄ<`‘«`Y Oä–i¨¿rnâÚëí}Ü£æ’÷â<àO"Ø`6¢¦`R­¦U#]ÙGøÇ‘Ò†”Î3¥®‚Û$J7è6¦tå'†þï+ýt7¥mWiqí¦Pº…»¥›Ä(Qú*@M"UD¨1¡œcS¡ÒÄÀ ¡ê:@M"è„Õ,ÒBF2 Ìp»:TZ¹6ŸŸY¿Zû´bM #J +m™TrR-»Àø™*­ôU8BéNG”–'å&Uº ,€Ÿ©Òúz®8‰Ò œŽ(­x–©Ò#€7…X-à‰¯ë*ÞM"TÄ»™°ÝãrÊt»ÞÔOE»IÄü0«À8…aZwË„óaíY‹UÔ-Áº–ÓX7&—ÌoØŠ5‚FSˆÕ¢ÑˆXdW¹íÈ5“ÈÕƈ\ `¤öºŽSÈÕ"Ƙ\1¹®BÆ$REÈÊÔþK„òUܾÜl¼®N—íõÖÑ$‚Nضb +ÁL~cØÍ™-tQ0ÉÍÐG4¢ˆI.uE_¹ Sž/´Ö™ÿ&vØÍá +½+iò« ÐnÏ›#þÙ,Ëóæ°Ç™}º)êr×;s(-D["QOhiÀÔÅoZNÙѯƒêiÜ bÜx?Õ`@n¬WíÊŽÕ:×Ùy 2oNôr„Àf‡Í¾!P@PÑä?q°ZúJÿPSŠ!DºSδŒIÆ["H$)˜6ñóã'ayçû$Ï +óëÞjåϘ'ÝÝd˜ÿKoµN$SzxµzÒj‚»?¼·xŸ½Mßj®¯hÔMo±a.Î’ãZW>; ߥ¡Ã}<ô–ì'.t} +§sulHa;¼8$À º)f";q¹tEöCÅfw0RâˆÍü{1UÍ ´ Z^ÐÇÞÐÂ3L­+Zâ½î°ÅE»ý‰æ}^P0¤¸ó®öD‘ômµŠ“@úŽžqÇú€ÿ/ P÷å4sîìVÖHøÎ+ɃvÔh¿ç7¿A-<Ñê„Ïó2¯ +õ(в åéÎ4ô(z`Ìfo6Û-Í®½ud$£ÁÃ>}x¤Ûc1ÝÞxˆX¢¾kÙОø3:oÅúB» L?€ö| ¿%ʼŠöÆ¥<·U¹òB=Ðû¿CU‡e~êasf!4`Ÿ€kÖ Á£R,/À15”G6ûý€öI ÐÉ‘O"Í]$áVÏñ' C ¬Pœi§aW¡˜)®ô•ñ½@ àÌaòõ<Ôïö»PÁÙ$Ó‡ G|~ÀH˜CÈø+ÈåÙ <£·àš½ÒÏ(&š¦ë3†dÛ2-d“u#ÝË=žÂñB}ÝO W“ ÏäÙ?æP>úã_Γ+Âð´E‡Ë~›çœÇ{"e…Œ˜æI7ØUûzyoNw-ùeHE JwTüÀë8 ¸Žãæé—ÿ'ú.KŒ•5%^çuyŽO)Ž{•u½A¬Æ÷u„ — +D>x©öôzpdC«U/j¢{*H«5%S8{Â+ƒ?@¢ B›ÞYœK57â~È~FEûÝ×p½x‹qRÃçÐ穹ÿ5D×C’Š…qm…÷wuLŠ& Ny +°,W¦ã\  ˆ_R9­Z9:"Õ,gÎÞŸ™ÒscçljÉ[ìèD+|4ð ®e… Ÿ¸æ f´û¯ Ô©µ™-\"ÐG}¡S#ß ÄìõQóI;pÁ8xyKò‰Ïúä>©¦ý–}…à¼5P¨þÁË ÞtÜ¿ãª&'3š)ÏÕ\7aEg¿œï|”!î¬ân*Q4ÁÔ˜Ö¤'`šZø Š#¸ÒUѽ‡dŠ×ÕùRïqëØV€íâ÷P—Tm·¼€?R¨÷ƒÆê5^“Ú{ÄŒ“)«‹·@IëRêÒg[L÷×;J°žw«ÔÌ!)EèöE“JÍAúÅ(Lñ‚ŠÑñŸªJ—w~6PŒJK;¢>?PÆ" +K9¿¿…ÉÊ®B0]bö¸(=ÁÛµî¢{§ò”Mv€mn[àç ¿Å~€›‚3K¾ÓEÿí0tÒ¥ -Ö¤¤A¬œàùþ°Ýú@‘˜ëÇÌ&Ò, jŽi5<1ÿ…e+Ì©=a5 )8‘`9v¡’þ·¹.ì@ýíÀYíHý &tÅhý­›ë¯' eÐO*‡‹'-.þg‹Åû,¾R¸Ë«…{jm@@#¥ÏÈ•“IÃÆAvH þŠÞ¤ýÀCdÿÛP²c³Wn í7Ø„]ï1 ]Æ_yÀ€PE! …° âa¨ÎöNü]`ËC½0€5Zvra¢ôIö*“øàû*{éÛ&ÂŒ¦¶Pø±²)bafútÔòD¾Š·±— 4¤8ýÿiÄw€VÕ1† 5¶V!^À— (›¼Å¯8y*Ÿ .AªÃÝb ©u:tm}ÅìÈÑsî÷¼§¡Po»nﯥ†¿ÛÃéü'\¨Èð1ñ†Ài2Â/ôv|Ì +£w­–÷H"¯ÐòÄç²iE\ƒAß' Ò—š†&í—Ȭåå3ÔÆ}K |Âô› M¤¡…•Í^à¿òY PWoËÝq[¡êVÒ…`âQjâ°çÍqKB4!êB +›ÐW6­cÙ!H·ö—‚ß}Ớ›¡¾¤wr+iSûÕ„dIˆ l›šn$| ½cL}¡Ú8¿”2º!òhî|i¶ÑIç܇ÓeG‘Q«Fˆ¶‡mKÝñÓÔÆz¤e¯3¿%´öÅ£kPµr¥]·”RFGò§ ­m @X^©•¡Ék}'†˜Fç¦Ñ>gšŠçs¢W@µ­èŸn½ÈÈ£€¯WýäÊ#ÈƲÕ©%ÃÛl=ÝÅ$·DÛÜé.æó"Ö£« ð%ÁØ]¤y‘Þ=ýñ²—¸iΛ¦—e 'VG+zh>±äÂÇ0¼½£õêïý ¾£H þæg雃LAYø:…~Å{­ÓeÖ¢CöðOø:ÿFïß)÷Œ^endstream +endobj +1536 0 obj << +/Type /Page +/Contents 1537 0 R +/Resources 1535 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1521 0 R +>> endobj +1538 0 obj << +/D [1536 0 R /XYZ 91.925 602.788 null] +>> endobj +869 0 obj << +/D [1536 0 R /XYZ 221.163 500.161 null] +>> endobj +870 0 obj << +/D [1536 0 R /XYZ 235.692 309.328 null] +>> endobj +1539 0 obj << +/D [1536 0 R /XYZ 91.925 202.393 null] +>> endobj +1535 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F56 1170 0 R /F59 1176 0 R /F11 674 0 R /F14 1012 0 R /F57 1167 0 R /F60 1208 0 R /F23 1211 0 R /F20 1030 0 R /F48 601 0 R /F7 586 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1542 0 obj << +/Length 2006 +/Filter /FlateDecode +>> +stream +xڽˎÛ6ðî¯0z’‘š")´=4A7H±éÓEIZ[¶…µ¥]YÎfÿ¾3CR’-Ùi ´X`-’Ùá¼gø4†?>Õ’ÅRMu,˜±vºÜOâéNÞL¸‡˜{yæÕbòò&QÓ”¥ZNës4‹ÕûH3ÁfscLôîÛ™UÑb6çÑÛ_f<º}û¿¿§Ý·øù3ìþ4û¸øñåí°J)™QØ@„i‚“-k*Öpž\å>À طšˆÝ oU=›K‘DY9iôìøã¼Ç f‰ðìíìsÎRËý1ààÑjˆ‚§LXåÊ8åÒŸ® +@±)dJEEùËcsp<6[Xåî{Ÿ}.ö3a£ãÞm<á"GAŠ-.=šj}úFZ,«Ý÷x£ôä`íIí¢òCœÄÃ' %™¶ëý7®õÈÛàéÕÑñË#FX¹b©R§Sñb‹âŠí™¸`£¤ ÞÍæð?¯ÝÉ+6Q“×ûƒÛ*J·•Ñ½g·y.B8W3ê«+@nÁ.@“ËÆ£óhïÑb*DùÔC’ùS¯o’ØÉãœÀ>p©…=^é?áKò"¨žG_á>ò¼r‡¦v"R I67DþSk=(éòàn>ms»!A"²ZWUÄÜÞmÆ̃zYº“ãâã!R$JE¿ÑÆ2ÛíèañÉ“ÖH½B¬VGyVï +Ò‰EÛÏ÷•¹SDYïÐ.r·óP;÷ìÅ¡¨J‘öÐ2€[ðТc`ÃØÖT¹sÌD îP”䙀‘ÔÄêœìÑÙEÓòàCŸýCQnvzLÈYŒøh1xš8ócg}¥s#Aæaã<4X¹Gt&ç‹ é¡È=¹ñÛ9ü¡ñ +¶±=‘qYáe + +˜®«]Öän´õßk4¶ÝÎy*hn$ÆË„ Ø…d) ö{ÖK¢†ÞI4扪^>¹¬”d ”>Ëd"ŽG2Nªƒó•_ÞÐg + +'BhÂâ8%(1äÀÁšé¼ƒùvÌa®=¡€"Ç*Æû¾×õ p&´ž*©²èX`æ= óàO0ì ŒÕ×ȶuDzÆPTQšSì@ª¢×ýD׺†Kôés_SØZl™2òßÙ?·5Ëbsf*ü(AÉö ‚ÉõÌÅÅN‘bȦzaÞWöË”gÃ/yÇH@ê›þ ˆ{BDÃwû\Ú8³o‰%q õ›·zŠÁ¼; ‹æíA:ó–WÍû +Ùμ/“ æ užòaà6oFL,ÖvÉFŠÍ¥m=ùÝÎ’VõÿoFK äõHí>Cù¶ۂ< %¥œ¶ÂjŠ) ¦¦—S_S¦®V„ŸC[ro¨¢- º »íq寭  Àì‰TK½zviÎ&Aý*xÕH˜uLõ£Î<«ñ;+7ùþôXm¯} +o…t˜?³†Òe9)â”Å©Ÿ‚2 +º°ûÇÉûñtNòã$f ½é|ÇŒ§ét?1°¥_î&¿O~í¼( ›÷°{QKºSÙù®¸–±½ô@H †í4[Á¤ÃòÅá‚Å´CÙ…Ð'ƒO¿Ö:PóX“²ÇBVˆpÒrÆÕ +Ð¥H@ºH©®EÊkdÛHy…¬”2PÙëN…J)í“ãa™wóÕ Ö!ŠfÍiïœ>ÝÎ};ÓxvK°ð¢¦Ú>ø.¼ÃB +”ò¤hËv›ª&³Ûî}¥Ôl4þ(Ú%;ÏY~Ø&LŠt,cI%¡9ÄUïð/b2 bendstream +endobj +1541 0 obj << +/Type /Page +/Contents 1542 0 R +/Resources 1540 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1521 0 R +>> endobj +1543 0 obj << +/D [1541 0 R /XYZ 63.034 602.788 null] +>> endobj +1544 0 obj << +/D [1541 0 R /XYZ 198.802 491.14 null] +>> endobj +1545 0 obj << +/D [1541 0 R /XYZ 186.451 449.297 null] +>> endobj +1546 0 obj << +/D [1541 0 R /XYZ 189.118 393.099 null] +>> endobj +1540 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F11 674 0 R /F14 1012 0 R /F7 586 0 R /F10 1027 0 R /F1 1058 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1549 0 obj << +/Length 2647 +/Filter /FlateDecode +>> +stream +xÚÍZés·ÿ®¿‚—ã.‚ûpÓΨ®*ÅQ&Ó&é -Q]RTyÔñ߇k ÀCÓÉxÆZ’؇wþÞ†d`2T $¦Hi=¸žŸáÁ~ùꌄmXÒ&kþruöÅ=0ÈH6¸ºÝ¦ruóScä𗫯¿x#x¿Œ`‚”²„íŠW;¿¼z=$ÍûaËo$¶J©æíß 5k®..á·o.^ [Òœ5o®ìÓÅ·ðí;ÿÆù»¿ÚÖ|ß}÷Ãùû‹w_Ù]Ï^_uìs&dr¯„Œ3¤<êïDJ¤‡çäÇ‚H\ÕÄ ·KÿsöÓ/xpK¿>Ãð¥|‚gŒˆ1ƒùãiAÂçÙÙ÷gß•:šEjNçB4hS:¥+d0%¢Ô©ô|Š˜,–Ó5ü½› ¨þÎÃ<àv´Zo«‹ƒ„ÕÃb ¢Y]ˆH«Mˆy)Žˆ»0‰±*¸’ +(™ÓphíçJa¤8͸š?li‰9‘²­ýliƒ¨É•5Bllh̶ù£X!FùIø‹´öòG F«Œ¿›édQ¦’ ÆhpDT:jKFⶒFxL¹¸·b>8a×%M +EHG³åBÖŒfƒx’#%TðO)v-ÐjbEœ.ײÛÐr7½Re8]Œ°2A†Q)#GZGµýÀÓª_rÄ9ˆÖ~µ‚w·D)õA)?”R*„i4äèþÆË9º·YBx</Kâ’ pÖðö]=e³ªy™"Èú¼Â½}»Y{'«8c€¸2wÚlg$îüÏ×áu“þ,xúgÌñ°¥Z4«êaLl9©;ÁG ºøcâŸjôlÚ•[êNèXcK±m%ßÏA¥ ØÌ47å^x'½”„û%2Jz’À¦›ˆ™d® Î Cw‹‚¶>¤KP/ü:Qêíˆí̼QLy·¹œ®Ç¹ŸŽ–Ë‘òÏþãâ¶ô?EA®h˜·—ek$¹ê6z^~ñ´Ú„X™_@x öã0Úœ¿>4¦ùGÅ;(„‹á¶Ø|°5ÈØËü°_OWÓÅ½× Ú†ãzå½YO;'@oiØ€"jé­•ÎÕR$¡†kûE?V|†!,b³ÆpQàjµ][ÃüÛºó% ¨A HH>ÝxW#!‡\ÜVÜ#®"È\¿ê£“ý_Ax@ *›/ýŸøf·Ÿ ð¨.B×wã °ÉraîS¹?$-¬ÉTƘ]/ª@¡(ß ’2cÓ-XAÖ« ‹:O…B™¹+óÃ`"Wƒ8€ÅùIÓ~iµ 1ç×?Þk,[“åPPg¨O2.éu˜G‚—P…8U™—ÐÞK‚wüñF¼MgÞÏÝ·Ëñz³¼¯ëÍ6H”ˆ€@ ¦ÀAÌ=Go‘TÛÓ*ÔF ¸&q;ÇÓk4o+^ät¢°W¶B¢v +5†/ þ9¯öAy s='0iËÑòó6|:xÐ9 ê<@7ª³ÂÓ¦ >Ä2³²`ÖÛE¥Ä¬b]ôÜ—{è$cÞ.s/%‘»RrgDš¬x6]ðCæÇ5){?"~ß›…—Ö@AG¨+z”&QXÒx“ ÆžÕ1zV©žÓ,ö° hÔÈLO&E) û%®**ƒÑ–/Qì…ãŽÈÖÄgªW‹¹­Úºä³Žxmƒ|¶±Éæ~Õc>ÎìͶ÷ô×*‹¼+¡ždñ¬y¹YoJ-Q –4·LÍM;s,²>Šwæ.êNÍcR{¨Š &a"-a÷kîjõëpîÄ<êôƒý6wâ¢L+_ …z©Š”nªŠš© ñì2mìðItí¦éÕD½ «5O’,¨+¤ûZÕ’æÁèë‘PœLë…7ZŸú¡®éï…:fd«‹‘íÖX–ãb¡ (Er|<[3äÑH`¾½ôpR Kƒ©ãÛÐ3rèòeîžæ`f<Þ1·a=ƱÔ1P«íXÙnGí°ùÿà4uÖ÷SŸñ¯×ãURhùlçFŠi‰å_ƒÇ=•HÚ˜²2øÒ°Ä"lS­—$Kh¬‹ +A0o -K$¦Õz…Àè&ÐÇŒ‡JɬûšÇgŽz«H)`~r…í§ÚB… 3T‰v*¡k¤Ç„›Ú7FÒ‡‹ˆ +$H…°ÈKQÇþ¯fî|â!z­U×u×$¬¦ÿµ­Á8÷áaçÕ‹Ûš%ìU¾;…‚¬ÚäØ»Ũ+pËù:倠†ˆݪçÍ×#­6!VŠ9tàqÏzšky‹q±íö‹Œ¢@¹9â|ýýž¹9O”Ê9š´Õµ†ÊÙ^Kx–:"©¶§UhƒHÿq7w¨ü÷ó¡ÒµÓ3ˆ-øöܼr¶I4ÔKì™÷Š´šZ£*È°Õ«PÖ6K´D@Y˜Ü’=õ»›û[[·ö°¬¼yDµAdl{ÈF.Tª.ë(í“€ºa“É$(.QëÌDž†¥@k?Sk°È˜ªœÙ»ü$LRûxböÈFNÊÓ*H•ûFÌ^'b.ÐÚË“n†œr瑸0&³KDfÌÂ÷©„"Ë^uˆcûïBKEjÆÓðÀPÂC£D 3 jâżÖÝ̳“w}ÉF×P@8”\ æüøvƒ>2:âøŸÛ²¸~üïiµ ±’s@,N3ÆË«xÆNyÕi˜ +´ö3eì˜g\URž>'«žÃV¤µ—-w~ŠIÎÖÑfS^óõ §á-ÐÚϳ綹!í5¼Ðìd˜ES¬‰®î¦P¼pŠ›Ñ,¸êúÎæoû¥+„ ðÇË[÷Ó> endobj +1550 0 obj << +/D [1548 0 R /XYZ 91.925 602.788 null] +>> endobj +871 0 obj << +/D [1548 0 R /XYZ 224.769 166.149 null] +>> endobj +1547 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F23 1211 0 R /F64 1214 0 R /F20 1030 0 R /F26 1460 0 R /F48 601 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1553 0 obj << +/Length 2895 +/Filter /FlateDecode +>> +stream +xÚ­ZY“ã¶~Ÿ_¡7SNÄÅAðÈÛîV6Y—c'•IùÁvª8%1æ¡%©Ýšüúô@¼FŽËS[5‚€Fãë»­Üø'7±…Ž6±Pa’¦›}ý 6'Xù˃´;K²Ѽ{|xóÁD›,Ìb½y<ÎÙ<~ âP…Û]’$Áßþõí6‚ÇíNÿ¾•Á·ßãø-Í~Äá÷0ûÝöçÇoÞ|Ho\µÖa¥f <üùÑC‹D ëæ.zG³€Ÿ.Л$ +SÓaõV¥ÁµJv©Ê}>”m³ÝE±Ú#•òÆ!IÂT* 4_’…©IÜjsXîW"Œ#i)žûÓ0Ýþ+ êQge£b’Áp†qc¼o üSÎKu1œÛíN%Á'*”©&0 +X´¡]B“qŠÄØÓ%œ¨c@0ǨT˜¥©'ClåÐ󑬲ÍN‹$TàJR†™1Dyé¹ öe:Ÿ‰¢$x´im‚¼:µa=×81}OZ(v(ó +ªg^¿¼Du„鶫{f5œ ¦ ½ymOØçÕþZådm43Räýèt˜/IÇ5 "¬ì+ýÜ/Ac&–cD˜Iƒ÷éáÇŸÅæîù̓u–n¾ÀX„2Ë6õj.³ßª‡>üc|Ìj7â5÷ÞD„ KG@Î{™#J#8¼ +"Ëê¢4 ³DO!mÁ èºÕšupÌk`s¼î“àƒ)8ê»+ùÄÑê:øL\û]“Áÿžyù˜÷CÑ…ìÕ +xˉS?’›äºNŽ;Ÿ‰8‚TmThdF”ÿ^Ü?Ñ‹`“Q±dƒ­ìù°š>‡€È‚§  éóÉ~!ÇE€æ€’ì8‘ïÑR¿ðì—³ NÚ¢|žÑ##ÓípX®½Í+2€ˆ6B»ˆ&%q(Óx¢²¾ü/…3MLôIñŠP¤Õ"}E¾˜ÔÒ èñ# švà%ÂgåÍÉnþr.ñðki· ÑE^aÊ•}×/d¤‘ÖÁ@~¯¢7HQþ‚Lýž—Ó„¹Ÿ&¤ Å+e Ïê…$Áë÷sÄï‡ãSÄ‹p\†áùõñûÝòËÈ|z¸AóÙ!Š¢ aÏ‹"ˆŸ‚ª(›¶ËÑüϼ´Ô®i˜èW±¶cuG +~—¨±%×I„§(fGAú s]éëðiz×!4û‚E÷M†ßÙ“ÁžrL÷”…0@hD$ùP8ôe”†ñ,ö1šË® ò¡b-bÞ¥ÓiäêTd”7Ó»y3æ¼™¾”7E˜dÚæM›¾#h2Zäïe#„£Øîý~ÁÜ&q«? #– 4PD–¢áådC D¸jÀà@Û’¤Da”@ å)à‰¹G•Ï†í…g0Å«TÞÒzá<&-Ú¤cJN† +rdÑÛF«/M‘ókM6Ï;ðC¡¾æ„ ½gM/q[ˆq¬ŠN¶ í¯¶ D^L[šâ'!#º Â&Ò˜1Âñ=Öó%•º¼óQ@þs ³ŒœêaŒ€d£zb'©t®Æ¶8Dã¼´W-d=<—rÜ•š=Ê$–¥c§Œ9ã4;,Û]'cGÇ´Qð +>]KŠ²Qïœ@Œ~$vöúŠ”œüzË lì²7>I×{,KgÊšÜ.µÎš gàÇôáãÙ®¹0Æñʵ @cYÖJ‡Bg¶Ø]VDD"ýƒÈ9 (’±€cÌS†ÎõZ@:Ï®8Ç9u +ZŸ¹*ýi |>å&b¬ªñ%HeBø šÈoÅ.–ÌÌx ¢–.äs\;üënþ‚Díµ:à×µFl¥ýPÐ?¨iÿ!Ç*5:Þ¤ XÛ±ÒB˜zˆѯõ)—•>G)§Á?,7óà%Cû-Ì­I’¯Ó$ÉI“gø׸&IÈ¢l¬´Ý`»š›©\]lSŠ–¸^aË¿Öƒš(ŒaWgq<ûujŠÃ‰Sç¿”ÍiƦ)¸Tà¸jÛ ƒ·ñ|øÝôõ¹=Üè)ê®SþVÏ“ûsq¸Vù“[i­Ò(®®—¢Ûõû¼Ê;oŠ}Ñ÷-öíã#S{dtÏ[•yÉ[½~Ÿ +g´º=”ÇrîBº4 ;8A¬è…ÒÉÐ\맢óê_ƒÏ¶äßôÇk¯¨ÞjÞ_ÚµžÃ&Æ[ÇóÉ9¯Ž»‰Ç:!éÖÒÙŸ æx’)žçöjµÍWƒãü¹¸P¨ç ×ËÅ)Ý’Ey,òáÚ«PÒ)›7¶Ý<Ÿ¼ƒH*û…rJÂC·„I.\=#»ç'z–MÞå½;ÞyçÛŠŸ­ù«„ÆP)âàr Mf¦ýëÛ÷«p´¼ Çô›Õem³}Ù,š[32j•­ý/¿ÑHü6Züך¾|endstream +endobj +1552 0 obj << +/Type /Page +/Contents 1553 0 R +/Resources 1551 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1555 0 R +>> endobj +1554 0 obj << +/D [1552 0 R /XYZ 63.034 602.788 null] +>> endobj +1551 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F11 674 0 R /F7 586 0 R /F1 1058 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1558 0 obj << +/Length 1207 +/Filter /FlateDecode +>> +stream +xÚ•WmoÛ6þž_áõ“œTŠ^I Ý +x]ÛemÓ,uY`Èm“DU/µ½_?R:êŦA š<Þ=w÷ÜdMLþgMËlo‚LÛÀ¾?‰Ò s²æ'ï/,ÐADÈü>¿¸~çO#@Îd¾:Ô2µÀŸ>Íÿº~ç¹½˜eZÆB±xóçìnþvji÷SÝq\ Sc¬}úúqê;Úü掟}¼y3Õ-m6õ]m.V7Ÿùîm{cvû‡X8Ú¾÷÷×ÙýÍí{aõâí¼ƒï:žtÖC)sä¢çO| |ô°kø6j<0—Cò°§­Â²Z”‹4_¤u²ˆéºœêžíiÿ˜žÉ7i& WíÞeû_¶Ïæx|´<}ÁQ·/lq+–ð›{£[¦xÀó Aï†í¶ëB +Vp>pS±"4Õm$Í6+–ÄuIMAJXå¡ðT‚ܽR ƒû·eEÜ +?<~º[<ÌîïgßžÔ×|ånÊ®!Bë‚mÛUµ!#RV4 +Ê2±´°”¸¿×´ €àòZeÀ5¥ï«>§‘þ:Lµ;¿§btËA†gÙg¢.%Ʀ-No„ǦÅ?w»ñ[G”Þíß V­Ùù®ñ€þ0û¦ÆÌIÀ‹58Çh1û€Ùžê.nb[ÕEÖñC™R×9¶ëbÃĘ]+Ì‚ÀX‘{¬ÈÁò‚3Š@`¬ÈSâD$‹À2’æP¶õ MùšT°¤N³²ÏÀ ªu…AÒ’T½²H¥ Ï’þGØjØb„‘¦˜6ÆéW'@YSîaMEaÕIX‘ƒÂŠZ¿Ú¢RûäÉòa@ÙPÍûG¬D%ÞÏpì@õ 踎-ñkpø?dzendstream +endobj +1557 0 obj << +/Type /Page +/Contents 1558 0 R +/Resources 1556 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1555 0 R +>> endobj +1559 0 obj << +/D [1557 0 R /XYZ 91.925 602.788 null] +>> endobj +1556 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1562 0 obj << +/Length 1274 +/Filter /FlateDecode +>> +stream +xÚ­WMoã6½çWèE¶kEÔ·&Àn»»p±ëöà"‡4h‰¶‰•D•’츿¾¤9”%™I{(‚À5œy>¾¡‰#þÐ$ôlÇó'¡ãÚQOÒâÆ™ìÄ›/7,`²èÙ|\ßÜ~üIb'¡7YoÇnÖÙ“Ú®=]DQd}ûãë4ö­õt¬åïSd}]þ,ÇγK9üMÌ®¦Ïë_o?ǯžçÙ‘ Òa’Hƒ›Oëšï„â}ð.zms ?žÄ"P؃D¾»á9š…2œp²@Ž ÌFÓ…¹u;›.ñÛ쉔m±!\ÙVýftG›ZŽC‹Öj.§mH¦6§Î …µUŽSR²ÙCNàXŸìm„OÅÙ8ŽuøÀ(ø-Ú¼¡U~¢åNE¿ ‘Áp£FGšçjDJXÙVàlÃd´ÅºÝ™à$§J'¢â$¥5e¥zäòÌÉ_-©e& ÎbçlèX³[ãk§Pm”Ã{õóm¹Rƒ?Eâ6‹‡¶&ÙÝQÀA,Ô}FèÎèÞ5ÎztËø% += 8wংýozóÈšÏelÅwá¾ã!ŠcÛM~ =¢.´…B2_8¢Àš½<Îç*Ðüþ‚QþÕË‘ñLÆmŠJ‚8ï_ÍÞ´ ã“‚kNUp½‹ ´ý8‚Mì ›ƒ¡£ðÚ‘ÙNä½ã †Ž"#ÎøÚ½Ùa¿ã †Ž“ûDðÕ {²P“FߤL°Òl$s‚`-Ë3AØRÅacêÖÑ`¡¤»y•7˜%þ¿¤gûÓ“Ó… +*r²£âvÃMŒ:ËäA*5£3ŠnSÝV&­ª£%L>>=CòXÙ`ÉtZÖ#%«Ûb¤P§{½,o‹R«ïš©Ùi.>L…û®¿™öÂ…æÁNj!È ¹DK´¢Eh5øûXiÉkÃ1”ˆNL·œf° Ù¥QKEÝ"Ãœ_ÊxÌر4,FŽÓ-6½EC×+Ö«³§9Îä¹dõÕnS–ic6Ê Ô4ª9%Ød‚ä!Õø@ôéÓB?-ÓqÊÓ3UºÔTœUx‡›®fi蜢2fã#1Ó9ÞN¯¬–ªú©¦€±Ê^CzBkÇ„%ÛmÇ&MYN²6… +ß3ÒýÝpÇ‘ã¡\°¯fRõWóÕ,•B¿šÍ\(# +P:»LéƒɉT9á:«Ã何¥`|yêÑ^/7wO·Ø´ºŸ¢s„ã9}ruuW£z²zÌ>ý[çì(ØdmZ”Ÿª†í8®ög­I5Åþ&Z5„-–"i1Dï^½‘Þ,Ë+Iļ¡i›c}_Š*?÷]²¹ì[ Ò–h6öîç”ôåÇ„d¤/²§º›—_+UA°–aÁ¤OG’‚^Ð7:¬†W7]³ºÇú±ÒÈ'ä !åXŸV¯ +i§¬:tâvk|íBQ’Ål\´³êθƃ5Ãòu°éVñuÐBªŠÞ½ù¿›H„üÑ—ÀxÄÜD‰SG‰£Yˆ^ÿ@Y«o)ªwº„ûøD_Ÿ¯{W9­ž oG`ôðp1’0F«zùËòËrýòq¹–So5±…ÆÙñ§^ÉŽ½z•6¦}K$ÝÞ{d{Ú\/æò¹Ÿþ×-|”&í¹‰éÛÖóÅç1’O½—ÿ¡´è;endstream +endobj +1561 0 obj << +/Type /Page +/Contents 1562 0 R +/Resources 1560 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1555 0 R +>> endobj +1563 0 obj << +/D [1561 0 R /XYZ 63.034 602.788 null] +>> endobj +1560 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1566 0 obj << +/Length 2841 +/Filter /FlateDecode +>> +stream +xÚÅY[“ÛD~Ÿ_á§- ÁõEj©X†@H !†¢¶B–RlÙ#-G’™~ýž[KòeBØÝJeÔ×ÓçúÓm=‹áŸžåZå&™¥±Q>Ëf‹ÍE<[ÃÌ×ZVÌeÉ|²æ‹ë‹ÇO³Y®òÔήWÇT®—o"Ç—o¯¿yü4qã:kå=RÆ%Ož]½¾þêRG?\έuQª.çÞûèåO/.3]? s/ž?¹œëèê2sÑ5¶ž¿‚ÑïxÇÕw_bÃF?ÂØ÷?]ýðü»¯ñÔ‹¯®þMTjÓŠ֜Șd³ ˜O'B&ީ̤,¤Î.çΛ$ú¤ßì]Îè|Ο_â$Þì~]VëªGΡ¯Ç™ŸßTwÜ›óG¿åï?Æ5Bá¶i—ãæ—¯}yõã·8€ÿ?CAŒ¹ŽUžäÂW.ÊÏGþW±·¢ûµÌOä›Ë‚B&§>‰§¯Ê~qÃÍþ¦äF]t=·@V”´’î'Ï1g´Ðü+¥™SQ vÿ5•svÔÉ¿¨Ë¢åæ~»ïÊå 8Y|Óߢ„ò®êú°®Ú鮩efÑìîeh%#o?¨E'œ­švÿ39F\ëŸÃ!Àj˜C6ï="õœx‰NsåÒà&«3nVr“| âC… @˜ôïòQJÈz•BÿaB²àD³Iap E]lv£^ûM.›Ú²ß·ÛÁá^}{õ¯³l|ʮɔqîÝ ¾ÎµU ´‰(ŸÖ\£ÿ¸ØF´fI»²Ç15[üš¨®¶²Êyž!ïí¸Ýf2>¡£mÕ㧨‰i%JgnfT¢Ù`ÿf¶´žðeT§ø ‹~>á]\êùEÛâ—&‹îG.nþY¢í8@\±:B—-Œ¯kabk§ˆå¹ÑFŽ :IèÄÕïx,¶ÎBØÁVi­šN3>º¥U-O½C&i¾¬é4Ù²Á•{è×}µÃOµ(ú +Õm‰ªÍ®æµ:Ú”[$ØO¦ þ0Ù¶*;¦‰ÑNÓuUt¥@N Û±6]2ªÓ«²$„HM*R$˜›ÊŸúOAO:|ŒúÊ¢b»Ä†|rb«Ô‚þR¡Íði3V+¹Áx‡­¾áo‡B#«{™Î2¶ß6¨¤=õíŒÊl"¾:áÇ«ÌO؉O)€À>ÄÍ–§ý,U9 Âl¢ò –¤šuaNpÊyÐÛ°b”¹ÁØ øTIô|;‘¯êXÀY [ÏÂÞŠGB`ÇPð°E¸h CW)ZC¸É€ˆ2vP€¼¿xó6ž-¡Zùæ"V$¹…6@@žÏ6yY.½úâÇ‹ïÇj&КOˆWl„Uìr8/WYl?à xþP€[•ç^lpƒacBõ•¤ TˆZ‚v–äA°à–¹Àˆºáù¶\•­l'ÿ‚1Ê“8€{›=f-#»6({Que°aMAºÙ +±æ—X[Ž»>pGt*¯‹•ÑéAA.=Ù(ç‚Șұ-‹Aèíé` hiN•Žn­a@ÛøXÍž—çq—Ãájp®Ž·eöSžÊPhÓ@ÂßJVÞÞ”­œ5Ä'ðX \­›¶¢Á¬­êšw÷;¶c ,ÛɹÙsHZS]m ’4ú dΣ+üš1ë`»Ú”ˆN°ãÏ:ð'ü;âB ë,ü’«á¬¸ÙwËsÄzRíD‚¥œÙðŠ>0Á»Qê3£`¼íà#”ÁÇ.ïú¶`e½+Öëb]žO«Ôx‚žôaè\>—Ð8ç¢W[&}—¥ÜØIFnl~’®ÁᎠÉQb)AeѾ¦DθLñPÐ@#ŽZ #-Åe–Xe©\±iöœ¾Äg6xš¨8? ,rmœŽní?$ár.¿çA(<:Y ÑèÂìWr´&çh÷‹ 7qú@Ô.'LäìÉf(A´é(<²o‘k¹$IÃD³Ô¦Ik”¿ïOÃ=uÊfEà‹¬–`° 1ð3Ugþ`°íÕ/aÏŽ{m0,CECøsAŸ¬?wd¤ÙðBÒT}0QN<¯:îÎlOswX?$yô¹™p‘)‚zåà/.~-Kâ èÅ*Ñô¨Œ¿2 ‘‡¶ó*Ïù¹: F£2n4ŸÇgIkÆïf+LN”IñJ.7=æP¸—Ü#ƒÚkŠê òhc¦eÖ•¶øúŒÒ‡wõ¿ÙfÓ—IùÙSÛÖçç~>ñG‚ü¯Ÿ,µ»gæü£eø•YÃ]ÒdùðfibôMŸ±gXƒk Æv~ +º`zpÏ «LWàì>Ï \ Wâ„ +¶±ƒÅ\5!‚1“DžhqU'9qÊÆ\N@…˜i^þ×ÓS¯^~) :ö¦&ŒƒoŠð¾GŒ¶ådSyW’{¤/ôc^/0õó øXL€^‹·úEƒ‡^;þÒ²B(¬š}«òíAàóE®²©>7i$arÔÉäFÊmendstream +endobj +1565 0 obj << +/Type /Page +/Contents 1566 0 R +/Resources 1564 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1555 0 R +/Annots [ 1568 0 R 1569 0 R ] +>> endobj +1568 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [151.555 336.449 158.017 348.488] +/Subtype /Link +/A << /S /GoTo /D (Hfootnote.15) >> +>> endobj +1569 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [221.329 216.816 227.791 228.855] +/Subtype /Link +/A << /S /GoTo /D (Hfootnote.16) >> +>> endobj +1567 0 obj << +/D [1565 0 R /XYZ 91.925 602.788 null] +>> endobj +298 0 obj << +/D [1565 0 R /XYZ 91.925 203.522 null] +>> endobj +1570 0 obj << +/D [1565 0 R /XYZ 107.168 139.498 null] +>> endobj +1571 0 obj << +/D [1565 0 R /XYZ 107.168 129.994 null] +>> endobj +1564 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R /F11 674 0 R /F45 589 0 R /F7 586 0 R /F47 596 0 R /F1 1058 0 R /F10 1027 0 R /F20 1030 0 R /F19 1034 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1574 0 obj << +/Length 4279 +/Filter /FlateDecode +>> +stream +xÚÍ\[o#¹•~÷¯0ö%2vÄðV,‹~È;Ù²IÛÁ>$yeÙ.Œ¤ê–äéñ¿ßs!Y,%˱»7h UÅâ­Ïå;—²º–ðO];#¤±×NjÑz½Ü\Éëxò»+{Ìc—yÑçß?]ýúÇÆ^œ¹þt<ͧ»¿ÎœÐâfÞ¶íì¿þò‡ogŸnæjöñÏ7jö‡¿ÅëßPëG¼ü´þñæïŸ~ÿëý0«Ñ^´®…mà„J*ìqõŸòÞ¬t¢µÍÙí§>“ý«Éö¯…¼ý?ón”¼v"´{))å®çZX¶Ø –™·"Äqk‡aZxâ;|qÚbq‹Âþ´>P§ÛéÒVèVV†¦\¦œÇ£Úë¡Ë/Óiá‚…ŽNf)Hî„”íõ|è²[íñ€>ßÌu;[-ñúÐÁiý|£ýl…·ëg<Ç ƒ×³nÕl]èé—'¸êv«;`«Íìã:¸0;>ü5Í}·zØÓ¬oÊOK5ÚÓ'Xkn•›}ÞõÄ“wÈ`Ì—ÓM4D6Â">/ô–¹W™È¬`Žf1±Çmm«óx][÷ù¿=Çže²”I_#1x4(ÙVµ ã¬ðšH¿~Fiê7Ýb=]Ë¡šDÎÿ,ú· æÝwû!NSª”¹n…mui Ús¶@OÕ­ UJ*Vlz»½p…½ø:]¹Êèïa/x’Â^€šwÁ˜ò +g⣠;ê³ìIÅ“¨ÿM*·ìèr{£Á.ì+2(…KlqþeíI³æMs=ôøÚ­× sŠÌST dͨý¹[­ïø2j8¸¶Ô6»ï²‰‹Ý>ÃýŽß {=-Üþõqµ­™2 —ƒì+;Ùt.©H”(œ‹,%*¼Ûý¡;àÅaØ‚žÝ÷»éJhn…& + jô¼pÀ!6ÞÃ!ò+0ìc:A _Óº~Ë ‡>?Hð‡Þ£Äïb—bJ]¡J«…iüI«áAêÔ`¾4œˆâ‰_à)ZpJ*¼¦$ȦLçò§ÉZàfw±ÚN¤›ìŠ‹+µF±€X¢\¡©ˆxݦ*çÆÖ:â2Ê_"ôø–ëØÒmù—¸t±:"15²-WÀîÖŽ6üŸÅZÌ/;B‘ ŸÚÓ††ã¡uÄv`2`«A¶p¥f ‹´q{ýîo =ÙÞ £Ytù9±"´ÒM¿¥)ù¦Â˜Ú€àÍ9\åÛ1ÁW™)žŒvÒº` +µGƒØZEµZº™ºmUÈ·[ÊóàÓOÇØ/v« ë¹áÐóoVé•iÄðúç›æZ?ÎहŠ®5ÀŸË"¸­è@:‰–O¢%½¹ý ÿcÆÛòzͱÅç‡ýÀ½smà`ì1ÌgZ?cf%Œ-·8 ZXšô{bÇíCMíh!íEµ¬9¨ £þ\Ñڻ¦¨²º›ï²ž+¬£ HLª pO ~¢à²˜3ßzWj|,œ‰Žg³ C^ç*<…þ¾‚3[a|8ùéI¶U0 InŸTå)Ø|Òg=‚;µ-Àc'Ý·à1Ô5Mà· m7ƒâw’mô9yðè+26yepó»ÅÓ~ߥQìò#ƒ|/(Ðo/hÃx  +Ìx¬ócÓ¶û‚€(.•:ßGºâÔ,‡KÞä<:x#?»=à KP |âlÖïÓÅša°¡çßÅžG’à +‚P‰›šÎ¤Û‚ +û|ìÖ¯£`cC`'h´xðpù¸M¦nz†`Ã[;9ÄrÍòw7€àV÷`vaÞÕvI?¸á fŸ×´´,ö+!n¢^K +ØFgÞ dì¶dêáµ»ä„HÐÍد€£ ùÞÙH…–xE?‹V*÷3Çh˜2„ÿ°÷-l.Roû8¸¦Ä­*cúš·Y@Q‰³Ôãd…Ùd çñê90óè7.FCK”ÚÁ˜qD«i˜) ±f‚ÁúÂ5cíÚ£·ƒa™|[~²ê@Æw5œeÆÉQx±ÍŠ°7TF­Ç©bøܘ ¬sÁnµghXÏRˆÅ +{=û å â3üÁOkd¥Ù0#‚‹†™: ù„jŒF¹ ¼>çJ¶E`@·˜ûâ…¿g<»?zÃ…[›L>^oðœ(àvèH$ŸOCŠÖ‹ÆŽñÚÿ“†³ß·1hH!9$ñDŠÇãI +òÐÂyXíâ˜ãeJMfÉñý0®™$gcš4aÇ¡ÃÝQfó1ùuÈìà¯LâràQ|"Îáâã`UçÚxRÙ öOD‘‡ÔLNUŽB#»®øû°8<î-õØ6ùáiÌã‘#Œ¼Ã‹5á¸1o‘'‹½ú[>'Øiÿ{}/²l¦±]N„Á‚°Ò³-û¡ +,üInò"d¬ú}Y5«%Æœ°:A†«ÖuZBñî¥oGJ¿Í±\UQ›x‘ó$dÿS-ÿ­áJNzí $+/nl[% «òÖ)Š{v§@ˆC|>ÈZ6ª‚ÊÍ+b2ôêÐŽÐ…qž®§éÌK¯«œ= AA3ºq6kQI³hç*‹•Ý‚'ŠÕN´¹Êã¶r†¹0çÔKqBgèAUQ'˜Æh!ux‰i|¹ ªPÑ·aÂ4ÖNÌÛÂÂõç]–γ¥0Ÿ}ElCEHŽ7ˆ¬mBiGŠ76€óÛi®ý +¯üké‹ZüˆN¥ÀK6Â÷V®­¿p ®ûVïûªÂó…fçÞ×½oÁÓƒu»»÷N¨06G¶dªLœJOMSÕŸÍ Q€Û2BZL;7öE ­ ³ŸÙÐáãÛ§è!Áõnlx±‰tn @!žè (ñ ‚‚õ‚ì:¹c6ºcб–ûPÃÛp³ªP&¼µž©_‘žç5_ÌK¤´„uÀ<‘–hÜw Әƥ.^;·.©˜”=^ðe˜ªòfàŽ€¡<÷bäB(_lXµ%sbD¾R†Wðï±Ã¾Ó0EÝã³¢môE>˜÷z´ ‚WÃV€‚NKʼnÂЩOz¡zÞp1—‰£! ÷ž3™Tù¢U®|YEîªfa³Y9ÔNÀçšÇ”DH•KÙã9¸!”Ñ®2vÓív©Òs,¤õ/ÜXd ð6g Lµ2–ËQ(Q,âÍ &Ó2ÀiøØÌ^ÄdöLæ€Ð/2<ÏýML¦/a2w†É¼Q“qÊ”åApÀq™J× TÈ ú\P¢ÀjíÁzøù…³>JÎúÏ)ÕÜVÜt¿Ø?¦Ê¼_ÔР›¬Ü«"#zBŠ^æ4`²_Â$!‡øZ;û¿q¢lÚß(¶5®>Ã΋ψVð [{‚ M#<,eNpJàA„ßïŽ)çš“EJ{™Öít`ªmés/sœú¶£¯œ‹"&©*|Hû£ö< ]Vô"=†.üûP0Îu–‚i½Ë(xljl!¾\oþ³ÙZ˾}­‹tZ„€Il¸\{þ³Yƒ‹(ø.Ô$Ô¥¬w…£PVûÞTÿDê3/: Æñ> endobj +1575 0 obj << +/D [1573 0 R /XYZ 63.034 602.788 null] +>> endobj +1582 0 obj << +/D [1573 0 R /XYZ 139.638 161.391 null] +>> endobj +1572 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F1 1058 0 R /F10 1027 0 R /F7 586 0 R /F11 674 0 R /F14 1012 0 R /F45 589 0 R /F13 1055 0 R /F12 1578 0 R /F9 1581 0 R /F6 1084 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1585 0 obj << +/Length 3236 +/Filter /FlateDecode +>> +stream +xÚå[moÜ6þî_±ßN‹«Y¾ŠTqw@šKÚôÒ4m]܇¶[¶…ì®IkÇ÷ëo†Cêe%m{ð®(Säh8>|f†ÚŠ‡ÿÄ*,“f•rɬs«Ëí_ÝÀÈWg"Hœ‘óÌ—gŸ¿t«Œe©Z]\j¹¸ú9\®½øæó—F÷r‚ f-jF‘ç_?{{ñb-’ÖçJé$eëskmòíO¯×N%¯ÞÂØëWÏ×ç"y¶v:¹ÀÖ«ï ÷ ½ñìÍ?±¡’¡ïûŸžýðêÍW8ëÙ‹‹Î~­ KUzt‰J+f4Äì¸bJd«sã˜tb(p(¨YæäÊXæœB¹g?ÿÊWW ÷Íg*s«hs&²lµ=SÒ2˜”7g?ž}ß[Ä™kÀ­Æ,*òïqPD­ } HpθLÁz+ø¢Û>í†û’2ÉXž‚°ð»óãݦD·àaØ ßÞ­Á×-¶*Ú\0¿Sb8‡½ÝÑøp’ŒYo/¿]+™äuÛî,„ ãVkŸ°ö ìèÚ%·ÌØñÚ_|<ÝÁÂeRíŠÛZ*SÅÒLŸÆҨ쨥J XŽYú¦j‹‰5KÙÓ˜¦dÊ2á!©@èSCu + :”‡¤$´eŠ‹•AߦÄJro½žSàmÙ*É S°'C«Äô0!“Džü‚†‡J˜Mm5Ng©4\,ôKëzdi7“ÙÑÒ.nK8J Ñuþþ ºò:o›ý;lQç·ÐÜoZGæÉ%òLÞ–ÕØ"ÆO±ºÆÝ©0žž +ãd+íQŒ1J{—«EŒ÷zNñe«:Œ¬zÆuª3«Œä‹?ÅÒzŒYZš1gÇŸÅø¦0Õú\Ú¤Ú"’ÏŸã“Kª÷”²|»‡—ïwø§¼üm Ÿb‰ ÐOFæª)«]9è"P,â¼Ws +œ/Õá¼7êi0ç*µV§ËT~‚• Ð¥µ‚öÿsZ 4Ž ìO¹¥ºˆ¤NÍ)€´hS‡£MO’JR¹lHO_Ø£O/ô +(jÒtHšÁv¡™4*Ô¼‹@êõœIËVuPšõ(Ië¬Qé‘ôòKû¤±t*NÒ™ƒ”AÍcIú+Èâ™M¦E4 4MGìêÐ4´ë)h:Ó2…x¹„¦S,íOá´30žÍ¢IAŽ*³•v3:hZ†S¯êpZ6,ÂidØ“àĹ´™Äß lihS\·ÔòK½E?]£ý#×*‘¼Ä/%UMr|̽Ÿ7þá3ð —ɾ\ÐþäÀHpŠøŒ®òkqÌê8úw¼â°‰$sÛ Ûwtù±yÄ%Ðnì×dB—2éLÐx=™9< þÂMü°$ø +NTÃÞ"TgS/öa¢C3€o/z:´öÖe£C[äaKÏ0_Û\Ø1”äÍĆœZc„/16Fè!é™îóå/!û94W¥‘Y±E‹æ/z#g§ ñMwÑôÅ—üh p®§/Ðç“Ë|wåå¼·2°Œ»‘³¼{rM`Þg¿ÇŠ²Q@®æH0èȹ…XÝ Ê,¹.Hß? TÞ”mCím¾Ã–%\aW¹ÃåîÛƇ2Ißû»ˆ(k cÀt¾aW=ÈbÔÌ/á#NÐ\]“'ŒdÒ·‰'<-@XÌñxøpK°³Œž< ø¥Cïwa|ø¹Û¨¼îózÈŒ‰Ü •uRïg¢ ƒê{à$§°N/—…ÜÄRÈ)SL³^ì&¼©™s骗Xˆ?–qwp(¡ hÁ<æð ¦C-»-ÆÙ‘k,3N!G› ø4b€Pj®¹†œf)К8ÙûlêîÌ^á6Þ +).( w½~´`©.+.7o|cKÉ)1â#µnóû¢ëÃR!œ°mAÀ“ÂÁêòvûí»µ‘IQ÷Ç÷ +NIÇucŸpfeŸ NÌ(ÍæG#’”ÚÍ~»Íëò?þ ú•¦ÁB,>†(· , «}ã~mR ͲÚÒ—¨o³ôº«ë‚O5“z™à!¯‹|É"¯§!–Ѧ?óf¡?qƒ„®›ðP†¿þ{úz¤ŽÆUàÑ• +¨ó} !Ë©ó&|ˆók¿ +ú®ŠœZ”è©„9Š¾ž¡G,Bõ‘E:¿˜A²ìè2†¬-w—Ͷ)m§ß àô»>Y`µR*de&‰«æ:É‘HïjÊ2\ò±ÜB +|Ù„2j®Rv’qžý¾« ]FC‚<`*î”ï+ -EŸ]€YÕ Î©Û"¿"{|:›jsÉŸ=±1Ô$‘2¨·Sµ ‹Ÿƒâ¹ÓÌÚtä¬Ï…p›©A©1U¤oãfœAtÚ…JqUÆ“‡ݾ¡_óu›û˜…¥rõöy§Ÿ«ºý¦?ÒÛMŽž¾§ +¹¡¾9™˜ `qJ†7WÔSÁaRžwàKÈ*´ó͆ zç¹1 31N¶>Ò:Š+Ú*¿à®M^ß„jßSÊ~‹ÿ¾óG6ªaÓŸ†q8ùŠ(ú^ñœ¦F›ÑLúý™ÿÅXUö¿Åùã…s©ä1ì[Ïè®ûýÏN†×Òú,Ê-þ$dHŽÑ¸Ûmx);‹Zk(ËÀÃ8vO-¥B5IuÓîn6ÑÌ®¨¸,»aº«ð+ëÝ>—éõù$Úiêãjë¼¼¹%îðÏ+¯)üüÆ‹öŒ‘w¥Æ9wÆëÏг}–Ýy½#)Êv—õÌ‚|è8CAw—¹#3ààBh†èîb4ÄTV îcÛ”¢í žün&ÓpÀ ¿÷Ð c}º3´r%ªHWïÉb_Ý›i ‹×„ÙˆL¤IÓ;µ ÊB°Õáèú»¬ƒ@Þ|lˆ,·ôŒ„‹î¥70ób W¡„5š «F%lw¤•%Êö{Ué¹1YŸ¹ûÄ°Íßw´º:Ú +upWDÕ6ÈL* +Ï@úCÂ_Õ½Ö˪i=1álT9csßÔxˆŠÁ”)4Ê-6á~ÑÙ®>Y¨½_íL’š1Íãþo§Ar{ñW=4îLíz%‚š˜â(Äz‹§³À:A“½Ôž«7CùèÇçŸÔêBuƒJ(*À"înãðŠm@¶qBÄy‰ò0©¿±]6¹j:>4ù6´(uÆ_^â;tq“vyþ4{T@&;ÌŸÄ‹î® Tš]F|ÜÆô—û³!²”}Bv°çœ3©";=Îd…RFß5ûˆâP‡°«¸ò¿1ºÍßÆL Î0ÙÜ–’Ì¿ÑÅìtj‰›…;7îÈ…- C°Èô6!¼œ×½¢måý‚”yÐ)Äg;Ïùðàƒ 7ÿŒ¢ÅüÚ€O  uap²·Êä´K³§û!ãSŸÐ·¦±Kå\ª[^µxÖÙß܆[yîÓ/ +-àžøëyT.½¢öÑ«wár°• +öðôgj¶RL¤ÙÝ8û8¾ã¬Ó Äp9Àa:“{¿Øø5lbøïïspŒ®vƒ‡ð¡æŽpxÊéJ“‡Éo ÃÇ“Ì0(¬gÿð?pðáàÆlcendstream +endobj +1584 0 obj << +/Type /Page +/Contents 1585 0 R +/Resources 1583 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1555 0 R +/Annots [ 1587 0 R ] +>> endobj +1587 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [203.798 323.996 218.521 335.951] +/Subtype /Link +/A << /S /GoTo /D (figure.6.6) >> +>> endobj +1586 0 obj << +/D [1584 0 R /XYZ 91.925 602.788 null] +>> endobj +872 0 obj << +/D [1584 0 R /XYZ 153.707 457.322 null] +>> endobj +1588 0 obj << +/D [1584 0 R /XYZ 91.925 241.663 null] +>> endobj +1583 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F48 601 0 R /F11 674 0 R /F10 1027 0 R /F7 586 0 R /F14 1012 0 R /F1 1058 0 R /F9 1581 0 R /F13 1055 0 R /F45 589 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1591 0 obj << +/Length 2906 +/Filter /FlateDecode +>> +stream +xÚ½]ÛÆñÝ¿â)$b¸\’ZÀMëàš¸ñÃ}HüÀ“¨aJ¼”ï.¿¾óµKêH))j†Mjvvgv¾ghu“ÀuãLœ{ãgy~³9¼In`å»7J0Ö‚²žàüýîÍ7ïR{SÄ…37w»×ÇÜmŽ\¬ãÕ:˲èýO?¬rÝ­Ö*ºý°RÑ·ßâû[‚Þâëý÷êãÝ¿¾y—§Ǚˀ ¯€"­w°^6 ÿ /ÌGÙm´¯‡J8VÑ©cô”1ÑËAÈé"ˆ^†× ÄaOHÀòÍZ©ã"M‰ßM{À­xøPu°Ç˜è.‡]‹ f£úÈk¿"fÕG5¼·ÇøµÅ|Rú+œàÌ´˜ÆZ…CÈdf”r )®R”k”r°{F‰ÌŪ4êÐ0øŠÏ·ÔÎ'‘Þ6 ÊÅ*íP0¯‘¨j4…‡¦âe”vÇZE2ˆUä æsp3ÔˆØÔÞ:ñ46ž®?õÂÕ°­¡vÑ+|_½6¨V›æQ;1Í®\¡ÛcÏkÄRÝ ù=KY,·[X©‰ } À¼àh\õŽ áø •·Vº D\Ñ;Œ­0Nxx$a WG~N 593Ñ·ïÿ¦g3ˆ0ZÐò&É&xÏIW(wþ%‚¥…/ö°o^x“ÊÐ5Tô~(†>íkïY"p{$ª†—>X~Öƒ<{~êâüøxáN4°&ÖÈóàg §•·=£v>¡]•È™A{êx™|]£«ôÔ ìkòášT r9ÎI€)ÃŽ'TyàV=soCûK¢ Éú[R9Éc.Ïïº/Sxá€ùT7 G–ûÑ:/…›©XgÙÕ2ÁY)©ëK!å%R®Pâ2¥Ä!ì".Øþ3X ïa¬@|zÝ ^C1ƒÄQv¼Ü¿pÜ­Œâ·U¿ž¦î +¿$iÂb‡\¸Ò:ÓÔgàG(HÄØÑf•¢ÿÀ?èÛ¡ ×Õ3Še+›izíœÆžÿÌ®’8+¼ÆGÞ¦'™8Ϭ`<ÏHcWØq¿Â¿`.©hŒ—É¢ïª 6L– ÇFì'ѯüÄ‹W0ÌáÓK_§†sé‰êž ý‘Pæ$Ô?6xÆ {:q¥5±s~œfOBÅ{Þži3›åfÄÆ©3Çñgb\ÑÅ¢ïû¡d׫ý sC÷·:ºÝVeC‘·´ÍgSü|ß1 \<ðš8"úö‘÷çwB°i|݂ȯ3Â<Âõ§{ %]¹‘ä•Ú¨| !¡WîJ†i£PЦ©ò>n„å©4î;ºº]ÈãäpØÖÜ5p‘²F“ÐÕã<7\}aðMV‘5‚žP÷r¨Õnz(Y"‘`ªÇÒ;ìm •ÎÝœ:–ñ´¯£œY,UÚdqnôÅm.‹;àä]{³#O¡èÕ'ÊAB²Ó±†œ6+£3¬%gÇzÉ-ÉÙÙ™Hp3§b¡–â¬gl¶8xá–n@£6éX>ã’”Ï_£W`å3ÏÅÁZŽØd[þÕP¹ ÈOW ÝêZ‡ˆ9¬•9WP’#ƒ—¼Èf‹…ƒ3¹½æˆ>ñTóA†4?ÓÚØhŽ'J¢¿ñcnFA+ì»vJLál)÷¿m9ý—|‹C5ìYz‚ëëýÞ÷;(6¨w’â¬&Ú•>LA—©ÚdÑ»š-€zCtj3‰Iöܹpî=C$±ÜÔäB<º@ê³ðýÊ(MûúaÏ€®‚Bá4v ÈHÍ­¿âÆ Lhn'Ò æ림—J²"ÔŸÙG¦Æ@±r2SÂÜ©ñ褔Oü~ÅÅ.éWa Qr"xjV2pàºkšš×ŠEîrÑø^ÂÎX<ቹŠ~†÷ô#¿û¾irü«¾ D~9Â]ý@AY +-QÕÐJkÔW[ÞRËAUAJXoâòÂÀC.öÀ`¶ 1AÉ{E?¸,E`Ù•R´ "FußÇ``tùŠ›rà}\`”¦›ÌŽBö"ÄôÅ­RŽõS[ŸWje;É£.Ã)² ©$ÊfÒS0«€1´¼ƒý—3‚̹üV¹2s¾ ÊÎ]RUØW +ŠÏ».o!¾=Ÿ‚œ%½^ºB¸q<×ršClM! Z°ºôOòaÞ?ý¼'y0µPIAöµÙ¢S©?ݧ ™Rþ°I:QÐ$gÐ%KæBBq±ƒ^f=¢|µ&Þ—ù™òÎZΘÈ/Yôf§/†7 ,»óaÖÂÀƒõ¡k³¤ÄT§¿Ë„¹RÒs-€L–b5˜KªF-Ì"›Š³B]lûíRwæÔÜ\ÿ°5eq‘äÿ õéøÄä.ÖDÎZ +³8?ñ8ë ÒëÊës¼k€éù;-}è¼F6|è¼BV>tªÔŦàpòS_Ó°ÏÚI/Íö}(:®Õ%^Z‚üB–ÄJÛ+ª7βI5?›ouYûó`äí©Ù2KáSþè(¦®Oá‚Ô}§C— ÑY¶íËfÇo}ý›Ì}¤ØKbkÏ+‡W@¨ù°R3V’±g›^ I٣Ϣu71YÉŸ-1á ê´©Æ’ˆÓ1>âœ|2pé ¶½}$öðÖ>í†#ja•2çÒ ú®<õÑ)Òéúzü(ÍBÍ }ç³ypÐl†äÐ}’)ÊŠf\Â#}M¨G>,WKElb¡rû[Œô¼ÅPÉÅê çÓØ$u€sÙ„ŒA~ÇtþùÂnÞ”àuŸö5ùø§Ÿ0- ë© hü¼ß7ÏʇÉ°!ÌT±ûNqðHãÀt2¶tÉD¸²+7CÛ-ù1dœ¿¼—Z:w¹¥s‹ÏMć> endobj +1596 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [114.067 258.948 121.041 267.361] +/Subtype /Link +/A << /S /GoTo /D (cite.KARA) >> +>> endobj +1597 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [291.766 223.083 298.74 231.495] +/Subtype /Link +/A << /S /GoTo /D (cite.KARAP) >> +>> endobj +1592 0 obj << +/D [1590 0 R /XYZ 63.034 602.788 null] +>> endobj +1593 0 obj << +/D [1590 0 R /XYZ 63.034 554.473 null] +>> endobj +1594 0 obj << +/D [1590 0 R /XYZ 63.034 485.762 null] +>> endobj +1595 0 obj << +/D [1590 0 R /XYZ 63.034 417.051 null] +>> endobj +302 0 obj << +/D [1590 0 R /XYZ 63.034 292.972 null] +>> endobj +1598 0 obj << +/D [1590 0 R /XYZ 121.039 187.248 null] +>> endobj +1589 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F11 674 0 R /F45 589 0 R /F47 596 0 R /F7 586 0 R /F14 1012 0 R /F10 1027 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1604 0 obj << +/Length 1566 +/Filter /FlateDecode +>> +stream +xڵɒ›Fô®¯àˆ*¡M/Ðô!‡ñ>Žíx‘+Û4#ÊHŒyJŸ·4Ú<ãJR®²¯_¿}ë‘A ÿdà¤p* ÒX ›eA±œÄÁ œ¼˜HOy’hDóx6yô< œp©fׇ\fåçPÆfúuöêÑóÄìèd,…µÈIž¼¼x7{6•á‡i¤µ S1¬µá›O¯§™g—ïàìõå“i$ËifÂB—ö-߸xû~ÜûO.ß¾@©“g³­þF'"ÕéOMh`cbÈTJü™· 7ï;Ôk àU>L*ÃàªdxpÓ3ümÕLUÞñWÓòoîOëyÞy°äÛq¸®Þ›õüWWÝ‚QwÈ+ïðC…ýbºãÔ/*øò'UÇHÒñK_½Ag " Æ% u;” ›zCŠ/‡Ky ž–iˆ*ä̪cÌÕX×€ï«[ü© +<]lVH” ÉÌô$D¿˜óu/¯Z!p%%”;Ç«8Ÿ4_b3 Rá¬A#t’Â86“ŒÂg„±ÁŽà÷c9‰p@r(Eê}1n,F‰G&Y2”¯JÏh\NH—neÅñ±6VX“ýš6;F#פB©Á*yÊ+©i htRÉ5­UW•óv1L—HeRh哆+¡ok îs¥ {.ÑnÓõs<[r¥6×üK¸ï˜ÔyyѬ:qXºÒ*‘BÿH¤ økTºG%<ÐF#b*á±S¥ƒ³Ì‰r@,ÿUBÉT5ŽôÇA”RGvÿÝ‘+¤Ö'ÄŒs%’I"²š“Œ!Z÷¤ŒûR&=›2gíÞÏo›{óÛýÔ1j¬¨º_ßNø¬Ç¤È¦Š9mIÒ¿h9´Á@KhyO}zš3aR±ÐP;’马0‰~ˆ{Ì™ €Î©ˆ3Ôp–¨o £»4Ìq +–XÛ«ÄøžG_bißâ¸Ãl’Ôù€âþ°¦¡FS„4#À{^{d $©B—)TÏðý¼]žŒÌ³7×sÈ„¶Ù(EŽ#Ñ)˜¤ÐIQ}ü¨¨65ÙK&•|ãàºf€ìoçtW‡E3p’èÙ´¨ä.Ü1M×Ô?¦‘gwm·…–Ÿ*Î^žíK?É«omøˆz7‰¯:2‰”{N‚†úùµrtIe yÌŽ1‹¼c’e^ÎúIZبhÕɉzæU[oøš_niØ䨿C/W|JÄ´€ôŒà8›bIÒŒØß^xV?Ò=Eá˜Á¤sô’d×õ°²R)@¸³^=_©¼ˆ;д~ÁD ï݃+Q y*÷} 9»ÿŽ²â iBÃK~i•'‚ŽOˆEѬk +Q:ê +Ú†\ìQZž×=‡Òúâ=1¯b «}ðìýÿ…ƒë4I¨NÑNê!dIÁÏ o2¿ ØÎ_Ëx‰2Åßn}_R‡‡•†õ•že~Y•)¼@…ñ¶ +nÅ\hób×j±´háeT^Ž×Uh½eÉ#gK=ÔÚ0‹hÙ%CŠfåi¼b6¼;ÚmýsRêÂåN½Jã@ >ù>ùü5J x5Á±žwÇð†pÁr"5ŒñLùïzòqòþøñ.µʸíV¬b|ïÀ`¢”Ñ"–+­DÛq£‚æei®c8%lÌ@¢ É߽堖^WW³)´Z~-¾É> endobj +1606 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [166.848 445.478 173.31 457.517] +/Subtype /Link +/A << /S /GoTo /D (Hfootnote.17) >> +>> endobj +1605 0 obj << +/D [1603 0 R /XYZ 91.925 602.788 null] +>> endobj +1607 0 obj << +/D [1603 0 R /XYZ 107.168 139.458 null] +>> endobj +1602 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F11 674 0 R /F7 586 0 R /F13 1055 0 R /F14 1012 0 R /F20 1030 0 R /F19 1034 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1610 0 obj << +/Length 2581 +/Filter /FlateDecode +>> +stream +xÚÝÙ’·ñ}¿‚3eŒûPJ+••ZËŠxýà’ôÀ]r—´xlxèøûtÃÉ IEIJUâì Ñèû4ëQøÇzZ*dOSNŒµ½ûéí=ÂÊ_¯X„¨"H•À¼¸½úá•’=Gœ½Û‡]4·ƒ·…&œ”•1¦xóûÏ¥•ÅmY±âæ×’?ß¼Äçkÿö·+ßßþôÃ+»Å*¸%F 2ªâêÇÛ m’jb¤:H¾‚,»Î9TÀª±pl +± )‰³¼‡pJsüçÕÛ÷´7ÀŸ®(Îö>Á3%̹ÞôŠ[G˜dñïÉÕoWßåž¹^¥¬„[‘êR¡‘y‚”%p=1=ÎãüŽ¦A^Êl÷HÀFU”×ôiW\L)âŒØà<ʃ ÌŠ<5®*AxHèa +d šL|(µ.ú‹þ +õ¾FÖøp×ß%–SIŒº ±5®ƒÄrjˆMb§¥ÀI”v¢!fˆ°.J›´µQ1îå fF‰SãÍ ±=yœ«6N®ˆelƒ³’Jç)9aLõ”Và l Ô=FTÕWËØxW„@ÊÆ ·YÉmÍ‚¦)4¡¦K¿Í"HT—gƒ= Bi±é¬×é%ØŒ¨±É)¨IžÆç]Ný —` õÿ²^ýgt/qT7í)=P­jç¾Û]º¼Y}G%-+nUñg–n!ÔŽ~<¨k—ÿ,Àý;JYxÊácĵ#‡p%ÝߎŠc TŠy+¼PTÝbÛV'ÒªX¢ŸÝÌ °‚5òb5³|˜cÈÌKîŠOãÙcXÎ8¤D€òk´ç™jÀU%ÈÚ. |0Î|ŒgHfdác©0Ì¢÷ï&Ã島⠂ƒWÅ|n›£"œ×~J¿Ïè.»mg{¶‹Ú.¾´÷ƒjväøcû»ŸsFÕÇ‘ý¹§íÝ’hj;Ñ~”õ=‡×´±üᦛà™C@ %”53¯Ýæ!øÊr5| +O<˜àCŒÞ3Œ!œjžÃÕz1{GU-™ð§5so~m•%€*Έ⒂åûÊ‚ˆ«JyOK âBCš·›=Y?b“Iß² ÛDaUËiI8VKÀ†/\þíi‚Þ¹r|Êü¥;Ä“Ö}™Œ`!¶êƒ©VÊ:”?oowÄðŽ€åòVzÃ*=bhï(“pbéhÃlMKƒM½hSa‰0XÆo`¾Ë1™êæ4*DjB!ƒ‹ ÙäÆu-„m!@¯bÓ¤Û.Óì8õÊM ?= žä¦.¸gëåpðP¿¡VÁ +žÕÅòrOƒ Ÿ +‡N¬¯} +¼•M‹húþ6.ñ()¦ˆ¢èúT¡0À%yLR]”Ф!L›–$[u†îVW¢ˆ±¤œCÕâjQ¥ÈÀQ±T8Ó6!2ÀŽÄ6½Ð½?ï‰niäΕÐ0@Ÿ*ì¢Î +n5®*AÖn”°‡ÄS5/•"kÄ]°O Žx Òj\‡Iƒx«]“6ž1z©ànÇè}E<7ÑlCÄUÇÌöXr²Ùî–Ç ³¥œýçÍ–·ÌÖ‹ÍXßӦήÏtvÖAj¾W¹Ëœ£¼¡DŸ¢É3 pLå¸vœõ>§Œ”°œ§4ãÀ–‚?‰žT¡‹:Ë#®*AÖòèiAßzs ’µXŽòùAˆ4²í*ò†” W1gºÊÅ”~÷|Æ¡ ‚èv¶Æ+U~„pãX(^ö'÷k,]û«áNu¶-†ññinj‹Áú~µ umÈö2YòľáìÛ­«9½"|œÜp;HŽr§á>©·”Zõ¸£„*yvo‰¸ªY¶·äÖlD²&ËQ®±ÔDJÉÀ‚Ha_˜>3ž_¶mÌ^,ˆžyÝr4ùw·PºßByÛˆ³û™;í’¡`3ËiøÕ±–2ÿ#AõÔºSBëw 'Tðf)j‰/Ç/Ýâ99[^0gkK¨ÕÍœíâ ØËÉ°¿ ©ïoãC>šÇkG? UBØÄ$5_ô_»¥2xÞ¿ó—‘þþ$W qÏûÇÛIiÀüåÞËI?ïÄñ’R¾Íy!:âªdí­!‘C›[Ãø“××¥±Å™ÛIKlzEš¡Ì8ŒÅÎÇP@’/£ ^1äFó˜TDÌB(c“À¦AÒ_á5ÚãzZ¢ÐÄ<ÕIY\Op:/UGS\“™4ÊA®<$9ó˜ŽNye/2"®C p¨¹¨n2ð! gôWØϲ¢5û&(È3ïh¬q¢QPÛI}ã¦X—qò­A—DR™R×R-Ãô™Ÿ8qx¬¯ ”²dB—1>?1ÈŒÈõ=ÔŒm—¢CUK#³óŽ"Ív‡B,Wö¸cÀU%ÈZô20S‚?”Z]ãõmnΤ‚¸‘5®ƒDrªAª¬Aä´¼XO¬Áî.Nán.-oGã%È›qÆQ Aðæ~>õÃmÈèjÁ|7ëY‰Ÿ0~œ…¹P%BrÔèDºœ +}ˆ¢î7Ûý +ž…óAŸ ǃ•Oøß<,„© ð2¼YoNåǸ‰ÁÕ×èv‰ú—SD¸ž¬pGθG}ÿb> (<Ûq3ÅÍ*,ãÑ$Êsüpò%é–jý©a}¢âÇßÕ(¤)Œ^ƒ¡¹÷1íi50¼xX̧úµŸN\ûÞ¼e߇”Æ ‘; ¥¾zqÎŽK>qê,¹oVá>RpW,·+~Ð,&^ÿœè_Ä)„^Æ7a:mžnÇ3Ï'/¶¡º—ùGÄõ'áÏ¥ç¢Òpïrí•CnÁr¥J›¹NØ‹Rà1¶'pGÙ¨m æãÙªíÒu]¹lâã2ŒòV’ãm–çÿÐ`<ð<š/‡3„ç |'®,ú(åñç°)–,ɬi½Ýúíˆ@ƒ….#Dã´uÀ‡yé5¸›£àúþ¢/ìÄ¢“òWꙨ]ÓÓtñ_mÝ#endstream +endobj +1609 0 obj << +/Type /Page +/Contents 1610 0 R +/Resources 1608 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1599 0 R +/Annots [ 1612 0 R ] +>> endobj +1612 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [229.355 146.548 236.329 154.961] +/Subtype /Link +/A << /S /GoTo /D (cite.TAOCPV2) >> +>> endobj +1611 0 obj << +/D [1609 0 R /XYZ 63.034 602.788 null] +>> endobj +873 0 obj << +/D [1609 0 R /XYZ 196.738 215.466 null] +>> endobj +1608 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F64 1214 0 R /F23 1211 0 R /F20 1030 0 R /F48 601 0 R /F45 589 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1615 0 obj << +/Length 2299 +/Filter /FlateDecode +>> +stream +xÚ­YkoÛFýî_!`±XÊkÑŸ ìvÛ¤nS÷õS#id¡H…¤ìxìoßû˜áKŒ«ÅÌáÌå½gÎ}Í(bæÁ?1K…›úá,ò|7N’ÙzáÍ`åõ…0 #²èÉÜ./®_%³ÔM#9[nÇZ–›wŽð¢ùûåwׯ “žpã5£ÈWßÞü´üf.œ_æ )'rç‹8Ž~}3O¤³¼û ÖÞÜ}5_çfžÎGw?Âì=qsÿ5¤óæ~þõæ—»û×hõâ›e‹?¡ÉèÅ-Z™3öÆ›øm +Àìášpx‰³×Qá|V<à\ì4;Õð(3ÏýÜOœcÝð7«ùÂÍ/õžä  ']•Q;Ðk4›ý…ö*ÏyJ8VmÅþàvè¼môHY#Ž] ö§¬uÔ! [ CÚ¢5H€¢`¼É>á›çv ø)À#_ Ññ â‰]}Ëë=:…ïÊÀ¬ªšUîT¾…è+·<Ó7_ã.5í·áÕÞYÐ7 …ëIkÇÚò³9âGàóЮËc´ i1†ØÝk]Øšfó•Ú Ÿ?m ?Öß°ÇÒã(AÐ2J tÍCà?þkÒŽ¾’η(j6gÄUeæëz;³ +Ù%¿å%ÚzÂ?mü€ZUlxpD•r¹6k@û#É·°ï0ôl°Àr`¬[ áD˜¬KŠ[†«9'‰'ÌR[âVUÅË'Vƒ  L;ï­ðòØ2]›i˜T¸ÛGt‹‘]1á­£e2clXü‰ÿJ›7GºÚëM¦˜ç”³F8 ÂýÛÈ*bÍn¡;<®1¸‚ÈëÕ$|kk¾ »W%¾4®:°HÐÄR~Ø=Ú°@Ñ6¥q\eÉÀ$ɪ’ oú¸©O+‹6b3ûÓI>C-OmiñÌç½&”@Yfù7ϧB¨\FàyB»ø}í3t§Ë±Èĉ^‘º‰œ…[œâŽÝ þ·¥g˜å±é¨6¦cìLäèQ Iàú2ž…žt½4ÄîøñâÝ{o¶VúÝ…çÊ4™=ÁØsEšÎö>TÂÔ¼åo/~îZ­Õµè)·Z‘Ä®½ÃŠ˜^K5ô”T -”gmÒVà8¡ú@5@còŵ"”Qüh´a„êx¥0©žyéq‚x…ÊÔ*7ü©~·8… +g‡8ÿOô×›0à¹~(þ.¨ZÕ&Œ}Ï ¥Äñª« W<.¼XÂ(tn‰– c”Gì#<cÀm¾fVÕ†AàŸÊ€RêÅMV¢Y¬'8Ëßì;÷=ó¼õZÑ9ë +fáxi*×J_º¢-–ÜÍUþPVde·ïõ ‚MÅ}8Ke]·âÕ!@§ÀÒû’0¡@žs¹^«N¨´æ°ž_ìUKl!´¼ŠCVe|%'ÀBC}¨y($Ër{)Ñg;ž ?Çí ?³¥Çß#Í«>®¨áѤ!:F³åëú—:5v™=jؽ¬Ò|Òƒí†Èçð$"èøoµ-aå»™øÎ Cò%ó3¯1ÝAn,1ôˆ4Š0=È9(VP¹ŒOþ*ã³9‹F(Æu{Þü6´ÈY'µÔ‡Ú–òµ$¼8£–ÆQø…Zjt-zʨ–`IÏõ`ÂÊ ºý|ªÊÒ ¼äÏAft½Œ,ˆ\}³ìÃ<Œm\©Ó>R™øS]/#L ±ûñˆ;8Ös—N(#€IDq€_dœö¯š'WN#ºèɲù¤3o®œV„J¢ˆÚã·ÉdgáP,Â8t®/!ýÓÿäÇgõ™fõóʼkÊ~¯¨kæiê‡cÞd‡<³©ûb +_xžµÑìèÜŠC¾×áˆÏ§8Ú“n4iõדZÓVëĪï m¾Ñ nùQéC¥k]4’1^Ñ^é*‹¯ï´ûàòп¼üúîõÝò÷Û»å{ž2G¹Ûbh;·¶‹IÛ%ÚÞŽÇý +oF$`7XäjgÅ$̹e7+~óBO]­à!&?•“Ä&f5*VƒpRbM·——fÏ7ëÞ¤Åp¨s5йú«iÑ‹á-B,®Aùפl)àJ¬Ä)HˆI'âàÐÐpRિ€»"ÿ Ƀ­&Àl'u9ðþ7SÐ_Ì9Êžû²Ñ6ŽTÓïÒÀÃ6 éG . Ú4OÙZ>*‹üÙDºnåJC‚žD7ʯ5FÝê[kHYááOe›#ÄvS6x<£¡Gºù¿´é7g”j”œ[öƒRY·[nºÚ–xk¿êüu5Eð”a94Ìáµà˜ oaÂh"‘eðb„gDÀxƒt,kû-VmêׯJÖýœò[–+½ÎêÙ„Kà›ò¥z*G£IjÛ´ö cp?»rÛ@$á_‡øZðØ2Ï9jÔXÛ¨ªÕ#]¿( :שœ7õœØBé ÛìÛ~vÕÀÒ6o“£jýa\:—Ö`fß‹u.YË ]l:´Épe뢔հ=´›W«òQ6‡Ù^ïÊ|ãNA ¼q7°íóCQ>œª¶1ü˜mêòs±.‹Gmq˵ÚÔCV[L[µ/“~ FîGLæûËËüÒ¤·ò`…ðˆ¸$èDžÊêƒí²õn¸5U?ïMyÈ0L%ÎË'»•ÿoa +ã—u»WÕfˆÊïÐ4t-;‰¿•ªužúʹ=fîu³+-ÐF¦½7*ƒ¯u··v/ ®’ctÒzÔÕN«Í85-1lÜ8»Ôuñ7ù ží7“ !‘ŽE“僒¹ÖU£lB ›»ç×ÿð#鲶hªõNs4÷¯æ^†®ôÓ©ÿÐ’pýŠ¾õÿ ¸S¹•endstream +endobj +1614 0 obj << +/Type /Page +/Contents 1615 0 R +/Resources 1613 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1599 0 R +>> endobj +1616 0 obj << +/D [1614 0 R /XYZ 91.925 602.788 null] +>> endobj +1613 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F11 674 0 R /F48 601 0 R /F14 1012 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1619 0 obj << +/Length 781 +/Filter /FlateDecode +>> +stream +xÚ­–moÚ0Çßó)2Mš’ª v?DS'•©ØJ[U™´j›”@£ñP‘°’}ú9ÉBr°2U¼°}¶ï~wùÛ†Dý¨Á=‡x¾Á‰ë)‡Y‹5ó©Ea… KìÊšNØj_2ßœ€{F8®» GßMe !ÌÞ×+KúfhÙÔìÞZÔ¼ê~Ìûç…µ›wo”õÚú~n_Ê­WÏ•ŽàBaä)ùŠÖE¸aó w„Ïâë5M~iH‰Wø™ðéò"ñ™e»”ó¤ÇUÞlJœ€0Í8ÌŒç):/`~öÔÿ5XÒd5ôg«©e3—™?#j&ß\ŒOÊfpš·ÜD¦†§e‹L=(o…eQÕx“«*ªë{PÔ1ÌWjaÂ]G*¯D§Šß\`ZSèdÚ’iKJ!¥5ɶË3úãeÂ1Š^öDË%¾Mœ¹°½ %EãÁj +eK£²³ŒÒÕrE\ŒÀš§g.àƒÌ7áK(ú®$Dô ¢ZY®;+›Þm¿wÑÃÙ}ÔÊjì³ Þ–Íb 9Å“8MP(íŠë*î"u¯·*ØVI4‚2ËQ.(Y VYCž/ž5ãïX×U§‘>/B(4ŒÚeã¢tœ VZ£‹çqª?úSz:­‰#fOÉæœQ…åZhñ¸v°ã´ŸÄ¢­õÝæ¸tŠóZtßœ•§C©äæËù}ã ƒº¸R—ÇÕm2Y¤P¼‹»;¼þDú”"È“ŒF¥ÁÞCÊö’êð¬Aúà üå Ù”N‡M \Û\D«æu*4@ïñÊ Tæb¿Ì«RFe,ŽqªSïì> endobj +1620 0 obj << +/D [1618 0 R /XYZ 63.034 602.788 null] +>> endobj +1617 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1623 0 obj << +/Length 974 +/Filter /FlateDecode +>> +stream +xÚµWmoÛ6þž_á~¤x’yz#….œ®í²¶iÖ¹ÀŠ®(dëÅÂdIµ¤Fú÷%KR–l*É‚þÀÓñ^Ÿ;òh˜!úƒ™¦o¹3Y&&d¶Ù¡YBw^ž0„ˆ1¹\-^™oúž=[ÅÇVVáG Ñ?­þX¼pƒ 01f–™È³ß—7«ç:hïtöÍ3uc¬½yÿZ'¶¶ºº¡{¯¯žéhK8ÚŠQWo)÷šk,¯c„­ýEy¾_¾»º~ɼž=_õñ;¶kz¶wgŠRæ$G—Ì Þ$ébÇ$–÷=D°HÒ?ÈÙØôè7Ï1û;†0™>]¹!Bñ°«í£$­êh¯®åji^s¢}Ê Q£c-_©µ+?‡i’ +ÕózÇp+ƒŸûïr= ÛÝ)ÝøHÉá|qÎ ÜF|ÝeÇ©z+XßéíQzmꬓÒ¸ƒ1_›*ÍNnÓd+óÊ¢¯QÆɸÉ7uZä•22K7 !MF­m¢qŒAVœÊ£(äÕ‚SmÓ¸V' rfKg å¶#P¢èÜÖ…Áø5,Çx¡ãtÖ#õ©Žôã)¹ø`©Yj‘9e‰tº‘N7­#1.D­þA.{DO…g¾ü—Kɳ&S58=Rà!9äŽ3%%†QB´4X¶ù|> +‡ñ‚ù\•½¦ŠBq=¥hï`a[Äž(bcC¶Ò¼3YN0ÕÍȽ¿4—ÊÒÐmªˆ•%ì‹4U BLË·î*çã=¶@øGáL”æýÉ#G=çõÿŽ3<¶ŸáGõ3Ø÷ ÊäaƒÀQ59Ð&·<ë0‹Š\y¿»ýý¾É‚])ïw»¸ã³âVNšÛbV'Ãc-L†Qœæ)?‡)¡v· n?†š²TØoaјÛMųg|•ÃŠ/ÿæÅ­ð˜7»µ´%‡æäˆÀ2…r›ðè»a€ kߟZÄQÝþ´Z7­f!%Ž +HsÕ +²ÍÑ0.÷EØlä{¢E8å¡ÄTBªÎزŽ¼qÿxª·©¬Œ0+¿sÑ?+R‘'Rc}iè›&ï¨x‰8ëH‚ò±EµõéÉQÙ"ª4>@IÁÝ5Ù¨"ÂYR-‹qÐ9ë‰8Üon>¿}µü o“—r $…<Ãà×ð !î_ç’s”‹8–û \ ÏF¹Ðúý÷\¼‡åÒ÷F?:Ïïé¬ä’û;¶£=îMæ 4c ßð‹øŸá»¦mùª¿+¶c›Ø×`óáv?ëendstream +endobj +1622 0 obj << +/Type /Page +/Contents 1623 0 R +/Resources 1621 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1599 0 R +>> endobj +1624 0 obj << +/D [1622 0 R /XYZ 91.925 602.788 null] +>> endobj +1621 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1627 0 obj << +/Length 1108 +/Filter /FlateDecode +>> +stream +xÚ­W[oÛ6~ϯð^ +É«^DJjÒ‡xh‹l½¡ð€ÛP¨²l “­@’ëøßئ5Ï ‚„äá¹}Ï¡B:"ðCG’»„{#I˜ëÁ(^]‘ÑvÞ]Q­áh§§3™^]¿Þ(tCÉGÓù¡›éìOKºÌµß÷­¿¿·ÏšÚµî?ÛÔzÿ Îïjé=N?ô£ý÷ô×ë·A畳Àõ¥i CJBÔ¸z3msóˆt}O ¦ßè猈${ù ßs&U8Ú“LXéÜvŒAV_ËÍ·ný≾T«O¤™U¶¨Zü„ð^«ù‡Ï_?ýv÷PoÈÏ¡Ä E¨rb;\úÂZäU®,þ ô¦žëz¬dUíY6NŸt G/‰Ç×ÆôL»ÓŽtè.ÃÄÎÃÄö0íö1í†1q3¦Õ&ëaªžñœ¼KÎ ³8:«.þ¸Ó:BßÓ23 ŒR©yiŠf³&î Fmé›m¨Ê'½ê ]Í™ìõ=»¬¶äY|@Tô©ý¿>$àöVç0ž Ý +žoL!ø¿w…©£ä¹·„>K7Uƒ="È9˜z_”îTã‹ÎMžÕ™W¡`F)?¸ +î²E^¤Õr¥o†M'É,ÑT”‰¾&*„»LÔ¢HªM±Ö”ä3-m°i6sótIQì•­¶½1¿ƒš„ +_Qú +Ž1Î’¨8hJ<™SÕ ¿±&ÄhMÔ%aÎ(ÐÖSc䊞¶ µ¥9çÝiKIKc¾ÙJÚ2eæé´%kY2stÚ’kË7_¾¼2*4•Ð¯)¨ +³7¡°nÿ·‡Gó¸~D,Žå. ÑøÒZiŠeìqa­“­šÄP¹,°fé* %K²K~•¬mت”`ô¬j Ši©„E¾©p¹Nà–ð$±Ö¹V/“Ú‡6jŒ‹ä{šoÀäÈA‰êÚKZ+ õÜЃ7¥À…¨AÔ€wN¤µ)£…žæs››geU{HJWE­i@›8¯7¾ã­“æÈD”)[4WéÀd“|¥L‘1ýeTÅF}Œ¿Ò<°â·'Û¡)—5Ü:ŠþWc~Q›\žÂ½Ù ¨çfs +¨ÖŒ  +Ø)¢,Û¡¬Ø(¾jzy jÛ½nmŒ¥Ðã~¡,¶Kà¢ö¸·G­’–éz‘é3ð¥5‡é£Æ5fL 8ì#UïÎrþCPŒ°BbÍ#ä6ÃO ‡c¯”týÓ†-•EÙB«‰M”ÉFƒe„;³L‹ñf„…Z ú8ïκ‡u¶ðP®"5ÔQTO4^ÓÖ‘–@Å<Ûõk;.g¡éÑÎ=îúW½Í.à endstream +endobj +1626 0 obj << +/Type /Page +/Contents 1627 0 R +/Resources 1625 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1629 0 R +>> endobj +1628 0 obj << +/D [1626 0 R /XYZ 63.034 602.788 null] +>> endobj +1625 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1632 0 obj << +/Length 3295 +/Filter /FlateDecode +>> +stream +xÚíZYÛF~Ÿ_!ì…µ:ìƒlòa±˜ds8‡sM`,œ ÂÏàå¯#§Ç•Rà5ÖŽ ¶. :üŽƒ×`´”êx3^;2Úª— &P¦9îð¿Í­¤dWÊP×¥3ð„+”®ñ=‘ò­‚*×Þ2R¸7ÀÆ2‚thš¶ã‡¢¾./›·´ÆÕ'æabÎÉ8·ó`Ñ¡!ÇÙîx„Sžr9 O¤®:¿Ê§8xÍyÝ„(Rß`2íÚ`„ÒóUÓoep´@pT&ÉÁ×êÞÏ)dÊD_9˜ªñ:að VåŠã«Ó±÷ú ¤=§1å †Løä2ìIÉ™„ Š¶ïç=­{%M-ÜŽO±i·NÿdÈ 'Å[4õ¦Xû`aS›Q¬Œô9'\b{¸ýB!&à¤þuÙÓb  ¡+ ª›l”ÔéL*^aYgR³Îp˜Ý²åQ'|ã$ ʘç®{0JwTzTIKà‡o\Dixh¼Å)î2F€qÚj9Â2ŸÞr”b\Ÿ¦“¡‘÷óÇÇØbE¸$-™ àÔ“æ|C…gѵžèeÁ„vèVÄ¥«(*WeÃo¶¿am1lœƒÔÕõ–ÀO½tÅ‘,Øà1„¿`Ó=*–}ÑM ††…ÊAõ„…péÞ_y¼Ù§ ZÍ;*Ò 3¿¡Ò¯Á9íéåvèº@J/ê›àt21|C2ÅäèúAåƵ@;iÊò!þ¤Á¯â³M}êÜÝô{{Æ»õÑ›gÌÃì\|e:}{NS¿JmʦÁ£Ã +Çl +CÇöoÜsy½L’¡aá©”Q±¦wT/è´™x„ÉøŒU¹ž×]ß<šä9 w½ƒ÷öZ-â8Yè$©Ì\ ª¶wÀVGk#Àʃ¸É@$ðsP¬ï¿9_æIôïÉ–u&tÜ'éƒoc~¿=xqQìÜSžÉ”ÁJWê)‘)=Òæ–#[Ÿd\1VRîиLJ©sm.’ªÇf\8âäIskÙ÷@Æý­IúÌ@5'9a³Nåvá·r…yHåpí+0Qá?È0jÀf¹!l†^ã«Ïðj¼ßqf1)5¨Ã[§žap+Ñîýê%Ò.–š·d“è»cMà£Eiì£à‰NH—Cq¶ž¥ Ç=Äœ»#IñîwL¾6Ò+<Ÿ—è²Ô ¸åáWS?€’*³Þ”þ9“žŒÿ`ðÓ˜Æpß·c4ÓÃÖ6ì)£ú¨5ŠSû¸¯œÎë[Tåaç Øw©—E[9ªX^¯ØXsÈÙ/…·²}¿`XŒ6ñm•éqgÂþ”²HáEGå[nHÝtüÜwŽ‘›ßÞ»ýT}7};ï][äk}©‚ƒÌmÿËZÄ ”y^?¿Æ*žìÅ‚ÝdAlDÞ®usë¨ø$‡cç[•P*ê“jŽR§J]Ç /ÙœM8¨/Ú±a Ëøù®FjyB `*šUÁ”ãºt ó«²)Ÿ¡ü¶z8Õ}ÁãÏñø''§c)Rm''g)¤CFU;·êN1âb˜@‚¤‘L¿ðÓ[*ÀŒzv±œI$©ž%?©˜\1Is +¥¤C‹§ßÚjÚ,¡Üe!·Ms–Î}ÎJ9géÜ=œ¤,OjТ”ÈÓ³K!„ÄSÕL‰3‹2‡þgÚ¥+mâ)†¸K'y¨9§ØN¨” ¿|"}'Õ«™¡­ +Ø WL Ü%SJýN;¸¨xíŠß}5WÑñÆ}ÜÛº,•ˆŽCô ² ‹ð\NcÎôŸ¹³^èè âø¹î*‘Þéº*G$ÁÝ)˜¤` +*Ÿë MÎ +Ùè—Ó‰…͇sMâ9oʬyTù륯¦”Hl2è•«Ý1÷ +?=e|Ý”uÈŒÿhL¨Le÷%ìŒK= ´Æ²¦ïø˜DŽ¸’jWôôUÊæB-û³Ÿé`p8år7uÚéË67$6â4Ð ôÁïbÒæðcøQòqßÏ]“)’Œ¿×h(’ $4#âD?)(C¨5* ÜR¸´qÍX  Á4õYàÍ„X¡V!7ó0·¿7u7#Ò,y<7ýQ¹©ÍM?æ›9á†z“O×ÛÔJ tõò…˧sy[ ií½yÛÌB°wÉÛøµ2Ϲ +2Óò¶'µ +hæíž]f¡p–w)&LÜväFORGò°%#SSO1ìäa7s3Oç¦Ï-{Š%»Ñ˜[oÞOPÜŒã¯TNÓ ªz\è¾Wöð¤þ;6'?ªÍÉjsò£ÙÜ{ÒÛý&‡ÑûLN=ÎäÞ—»˜ þqNýoØ\.’XÃÝ%]v?ÖÁÔäé F•ÿǨIŒŒJ¿z†Ú ì%Ï8·žs‹¬kª×ÜNåç¡^?B J?âyîS0ÿ¸Áõ×ø›UGíô·<„|løƒ¯‰¤ +Ó7<š_P›Ð×ϸ;:úå3¸£GŒæ]?\ºtjñ/”áÒîøwØYß­íËÜ¸—æ> endobj +1633 0 obj << +/D [1631 0 R /XYZ 91.925 602.788 null] +>> endobj +306 0 obj << +/D [1631 0 R /XYZ 91.925 329.694 null] +>> endobj +1630 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F11 674 0 R /F48 601 0 R /F47 596 0 R /F18 572 0 R /F7 586 0 R /F14 1012 0 R /F6 1084 0 R /F13 1055 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1636 0 obj << +/Length 2295 +/Filter /FlateDecode +>> +stream +xÚí[[sÛ6~ׯÐ#5[¢¸_²“‡l¦ÞM·Y·Sõ©éƒ,3¶¦º8²Ütÿýž€(RwZr¶™ÌÄ$œËw>€ëRøǺZ*dWSNŒµÝá¤C»wðäŸ{ä±KžôùG¿óí•’]GœÝþÇu1ýÛ_3M8éåƘìý/?ô¬Ìú½œeï~ì±ì‡woñúo}‡—×ÐúŸÞoý�²+©‚[b´5P c {t¾ë/u“T#ÕVõË>5ýmM}e$±\ûÑnzÜfÿíåÜÙlq?ý +T´À— ¦Ðp®gÓÞ²}Òã&{CÃbôÿGÃÁb=¼œ•L2áñ¼ðBÁORðìÍx%~,Ç-‡}Œò™ ŸnòÙ\›ðõ Aß^.(Í–*‚‹§Q¸ÿWrƈSÊÛ9.ý(W†Ópóé onçoÎU¶€›ÑÄ»âˆg“b0áÀw¥ŒÁ"^Aã}®ã»Ù|ä[&¡eˆBÂX\“ƒob߃ÇE1oÐhþÜ ‹¼bKˆÙxC!¹ÆPØe(ðÏ( è ˜M›œfÿ‚»ís/ŒÏ²?üÕ¬“ÒÀø^žÊîæÅòýèsß>œMÆÅŸ`Z.¶a%GåG¡%˜Ê ùØâux õÀ”ÁÔWa4³”‰ÐÂ?›9À)´} Š†4’ ¼ÖîCõ¯¯ß¯çƒ”»®ÞÁ ùÔùõ7Ú½…tú¾C‰p¶û®)aÎu'A¤0ñnÜù¹óÓ*ÝJQùJ–϶Tf ‘Z—áVïA^X׋SI &æéz•¢¶éÅ©%Ì°T¯·¨WÿúêªFNÒjEt*øalöù¾˜Ç¨õ{V¸|”|Æäogæ³ßCß›UŠŠ˜‡øêd6Éš3'çd€í_SD_ˆH> ï/îC#¢htwé„·œÐ0-oPS!³#çƒÐ +^…ÆáB½4$€ƒ1Éz°Je‚0&š¸X'5˜"5L§=Ö{Jâ,ÀR*â˜Ù#îÌ $Ðy¤ÓðW1à&Wó—îb˜5ÓRâàŸ*B¥ð^~ƒù™p–¿2«w¤$‚Ê€ÉC-§$%¬,eî^†xjLª(+O„}˜ĸª‹†@ȲIMAmÁÛŽ‚QÖv #Ò±Š‚“¨÷„`Gëô"¬‹&õ䌀ŽñSÎ÷{7Ei^æ¢.“+b[ÊÌ¥ÒMÁãP4(Û•ØÌÊݾhiµÁ7QVž«qGäyÙµ+™ÝÛ iiBMé—AÝFpŠ*9˜B™"$²x¥f§å¾âiÅÎ(k»V¨ØéÉóØvSoš À FU\sy 4Ä_⨮b*P 4ãë.}¼|úJÚ 0#ƨµØT¸Õ¤AY]€$ššÔà4^‘ˤq0Ó¹–ˆ1‘¶‰¥¦O¯ÓÏc_ÇÔ5çœP&÷‡eÝwЃ­»"€ò2uW AŠ“‹t¬¦ê£²F. è˜êß…z˜½!öŽÍÅ6¤äññë†×‰á¦ú6§]˜ÂŒ µ&rph¬-xSð™ —]`ò•uIŠhˆ› –ºT¨¾ì"Æ¥%¿×-”ƒ'󕈿5™Ã™:Àv9b³9'è«Зևɹ€Ržç±ÌC³Hc’s½î^—E/êiª>Õ„h³‘){"C¦«¾2"\É4Yöê鱸ý; ÙP¬#¡—yq­ˆkÓÚXJ¡tZ°ÖFDYYx*!¥&Q·Û5êLË82¾–Åõˆ‡î.ïÉ +ÍVEÞÞd½±0.¿Z„5hÖÀ^êAf—½Dº$ÊÈée¤€¯ aÂVÜ'ÚpÛÓ})ˆ+¦ ¼5[ýê滪ù"5Øä"êJSWœ,Ø3˜¿zö©‚0Ž3N2Ò¥Q#°XŽ03þ©< f&¥šýl…øèuóìXƒÙžÓã(TÛQÈŸÁ;§ °:R# +͹Q(6 P2_¸¦d§v¡ð¦n=TûÒýç + I¬*îÓm¸¯Ý¹b-‰/;W´iþvô2ÒÉs…{Î,ŠÈ5˜™6`ÆŸf/z®hÓ;§£‹#7Ø`}áX@á•ßˆ[_aŸ[r?úñC>(>ù+å7¡ÇÐúq6or%”—Tò¹î;X¢b&Ôfšmëa¿~cMÒ`4sàâ: +Ãuà+üo³pΉ4]e“ëâIt¶æ„òÒý6»+åp×ÊðÆ‘p,i¯­¹=kt «pçXºÁàÚðž<›÷ø¹¼Ç÷òÀpý/ÂöþZ~iBÍñËÀÊz°$†FïèdÏx“gìi;WëÙº£ÖÙìñb–Æë¨Ú±Ey I‡ûŽŸOj;žôÞx:PÛçpË>ÚQúd£ö•>‚+ûÈΆ'DÅZ"*þ2€uäø›Ò³ð»ðVÆó€îr{‚ +‚Ÿ5º3Gne¨‹M¹æ »×œa[š3$ž—#Ž‡_ü¿ÅÓ,Iyò?©¿ ßÔñp«ÿÈ{âõ´ø3¿ñ=wÙp’sé£uÒIK‰døýßpì¤v˜áŸ ~µv†0.š—}Ê.ágwø³j¢Oˆ j’Wx,Tfo*ÇYñt\ý׎@H’!w­qxÚ©ñôbµM}n8¡ºªþ"ž7¬ýâNùÓ‹­èemUÎYÏ©rËãŠãuí¬Ieª[-ž\1"4þ<8ašºPàDLãCGåü)°äáÿ > endobj +1637 0 obj << +/D [1635 0 R /XYZ 63.034 602.788 null] +>> endobj +874 0 obj << +/D [1635 0 R /XYZ 206.742 209.079 null] +>> endobj +1634 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F48 601 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F20 1030 0 R /F23 1211 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1640 0 obj << +/Length 3513 +/Filter /FlateDecode +>> +stream +xÚíÙrÛFò]_ÁG²bN0÷Œ·öAë³Îá$Žò°•ä"!‰e’P2Žþ>Ýsbxè°vãJ¹Jƒîž¾§§i:(àXJ,“U0¢L—gÅàÞ|yFÃŒq˜2Næüëâìó×f`‰U|pqµ åböóR6úõâ«Ï_KÑΣ%Z#dœòê?çß_|1¢Ãw£1çb¨Èh¬µ~ûÓ7#Ço¾‡wß¼y5ÓáùȈáÞ½ùFßú/ÎßþoøðGûá§ówoÞ~‰XϾ¸hè\ÅÕÁ%rÁ‰¦pC³ïYATÁám¡ ã:²;Uk¬SÃ-Nüíìç_‹Á &~uVnÍàÜ„Z;Xž1ˈ, éìXøÇdœ<ŠéTÆÝQÑgܘ‚7( ÿ‡Œ ùkŸSñÆÌÈèÖî‹0§]GÒU‹æ4§õ5¬O2¾Ö;¾°óua£ê>£Î=†g9Õ{Ïôaž™ý<£Cµ;™ +ä?O°ölÎŽ=—³+žÅÙ±gsv친8ÍÙ1ú׊²ô¹ýe¦xìDÅcÇoã·)]tTÁn€?X÷:‰mÊB“ƒ¢’LÿX¢þÀäDú„q¿˜ÙÓf½Ó§ÓÔI}duG\<²„=­:ñgS'þ¿U§1ÓŠ®:^Šļì~*ÅŸC¥Ø³¨Ô'˜§Ò¿óÔ‡¥ <—.°0Æ;†(>bžzûÔsEÆGf[§©O™¦ÊgÔ»'«k<¾ÄOªu´µ ŒÆTÓ©´ ú/^òá)ù0µÆà+•©¡o/kwJ…g=›-ÖÐËÌÉPÚ„{Ò?ð“ÍjÁ®pb +_VzŸ;RÒιªÖÙC—ˆé> C˜•Í¬âW!†õ ’åÛèp¾ºÎ0ÆN˜N7Myé“ÕM7Œ°—°€—øg?p¦€¨€‡¼±nœ@#¬&TªSTá2+N©ÑôUN(mvµ®Â‰ me*+ü‹Yå áØ­Á£ „iè 9VQK„Üu²ü@ÜXõMôOڇŠ~À¬³˜(ž)§qãH†|šQ­2V5Ö†Å)ˆVúXèÈŸ. +{úñâ«»!õ³ÇÇÓÇ'ÀçÆ4·Ò‚GÇýÙÿCUðá«TZå#sòOP–¹ +9£ ²nh‚W~Wn¶ëv§Ü"a³}ß~ßoR„XnB@‚yBîö4yXã˜;´Oé¡ÆÊeƒÐõD|}>ÒføßL#Œ!F¶= ’îi:༛Uk:8{;@Ê­È6—Q ìÄö1.Ë5ÐÅ9q +’þz~½…ȵ.}‹›"ö%ˆ“óEÒÝåúà2-0š 9Hp“‘5vOL€uhL Ç€tØÃÅÌ°ê7pAº N= qÖ!âx U‡¸åˆé!òwáÙëú´0×Kzµ|£–Ë^áÅ nrêÄ•…묦§LC‚ÄQOˆ°»,±ÑÒv"Õl+TvÀ©q¥½Ðí7ví~˜¢º\•B°"×ü¥Ñ«èæûçú¨¬áXãXŸ`à A‚]gËiEVΞ„¸ê mè¥ÔÚ–# lë8²ŽŠ΢_¹¸™Ã‡+9œ4í–7®YÑ 6š´t[p³Ý”áƒë'‚^{AÝÚN7~Üõ)i.¼ù€BvK6ÀI—ÞâuOÿ&h ¬‡ÃEú(ã + Æ ¬žçVsÐé8%v¿a1ü}Ñf²žO.ÑØœ%Õž·°/nÀHã66³´Á<µNÿzß³‚Hú}uÉ÷šï¶ú@dH^Þ\`Ï1JC£n•ãWÁ½÷°¿ëöí¬šLÑ{ܸæÍ1dÒÃWU#èɺœù•£¦G^~/K°_/?¯r_Oâdã6Ìèk.'€UòÄAmæw1ŸN°½ n_À e.ê Ît"ÜHÛ¤ö÷ࢠ+ú¤‡å:|ç°Þ¥zº©6ó©ÿ Û"¾UdŽº½°›^z  ®±ß­UËÉmÐn@ùÇ<"˜lÊÅ]_xJ’‚ÅmËw=áiØd¤í´}°iR­°wÒØ™¨…Oå@ã9Q´“ÛÓ¢Á“ÍèËÞ÷ l â +×!z4‚3Îã4h\¨mÃK”âïA‰6~l²ò×ê9ô;ò´ÚÖ~Ì;:|áûeýd?×w'wQÈåd†“®?g95pš_Ïbôª§k§F¨B/‚:”ÈÂtäV»ÉÇz‚±Q`Ë#Ç—¥·ìÚﺒ¥4áà¥3!7f»ï§Ñ:œq!7V³ræß¹p€8z€êÛÉ´ô®x,”—[ú©Á½”mGuÍaŽ“MF/“.}ÖTÇÒN³:üë;wk?e³/÷êÈÌ)xó™qåBÈÃåÕÆûþu>\#y×7ÁâÈĉ×}U{gè1­bé æ\Ï[)ãÒ *ybË[_q¹k¼6ê‘Б1Ú nÀYï­+Ãe<¯Ím|cÎó +yÌó2Áx^¡šï×DWš& Žãs}»˜o|Ö„[ù§ÍÍ:ò¼ì£ÆØ#xÄý¾‡¼mx7žÍ¯çÞ +Gœ@èër]g½µ¦Ë˜ŽWaàÆCÚ›T&R‚=hg`ñM© ,K”),š…¡ã!ÀX1 Q½Á– vBуÒ¢+Ü• àcă>,ã7IÇxð0X,—@ÎÞÎX—uë£ÊiS¾n "—èŒ4à|÷®.) ]âuŠ8R/'‹†Y|hòP^—ÑúëðéMøbê³lÃŘé¼u¶ø³B!ŠèÁœ—°j;.8ÙÅÝ*ø%Þ¹rÈ-/'uð•0².o«ʘhd¬‚ +§2fZW›³òh¬Ýj|çsTÞdïîsl$&§L4N¿Îqrâp21]xÿ~哪•ÏØýoRTá“0ÚDDH#\FW‡ý¤ÏòCrÏ +‰4ëý¤_º*IðZ—‹VJaä7>‡üóp`†;Èë¨ +˜iŒš@f 8Éãpñ5£ ÖÞT°>ôlDÃyÆ7t;fRÜ'fØ¡á¶÷dLâ8¦uàCd)s¦Ó‡\P`„±6eEÆ'riï»î=‹Ö=D”w1™ŒÇLÓR +Qªëån½›Éz¸n€+.£ÔN[¼nâO½$ïèfP@çÚúv¥`Ã%N—Øéñ® h’꘳ÇZë1†Cà¤ætšùQ4ÓjÝ +U´eé3w6-íŽÖ~DOjú;ZÆ–í6KuvÔþÀhG”û…* Ùþ˜ô™¶2趘q%l¬âH!2•nc%AùŠ ·áa§AX¾ÌÛÒÓ Ó†HJ²»¬ÂøÈ„ýsP‹¬)<óäšqšÑÓ£˜NO8¼ ÚÂýt½9g"zó˜spY„Í +Ü\…=–Ú6¯ýà¢rù°S ?¼½âAC1#o6‘XؽyõÃÍjCU?JK±~¢”á.ó9f²(ÌÈf³ °‚=2_¸/%næSäÖM8¢E•ìêùõj6EÓIàmØ F‡ÝÔ C¸G±ÞƼ ìRÓ:P&ã«fãù)/lû#G¸G*š]8> endobj +1641 0 obj << +/D [1639 0 R /XYZ 91.925 602.788 null] +>> endobj +875 0 obj << +/D [1639 0 R /XYZ 209.066 358.358 null] +>> endobj +1638 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F20 1030 0 R /F23 1211 0 R /F64 1214 0 R /F48 601 0 R /F11 674 0 R /F7 586 0 R /F10 1027 0 R /F13 1055 0 R /F14 1012 0 R /F6 1084 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1644 0 obj << +/Length 1670 +/Filter /FlateDecode +>> +stream +xÚ½XYoÛF~ׯP_Ê5×Ü‹\6H(œ:GSE‘uØ&"Š*IÅö¿ïÌ~Æ+x +¼!sÔøÆ¡q<ÎFð¥mFŒ~ož +Úß²dÞ9m@64ÞtÝ¢Tè£û˜œ­ã° Q *Õ†U™›.ïCt\ª‡AgmG'(nt“†-\ó–,JE¸…b„F¼ý¨ë=ßÒ5îUãÞ>îœ +zÇæãZi­4¶«'IïìnÒËö›*ÝmÒ¥}áھěDõáÄÁ<7/.ÿiž1KÜ¿MîÍ0Ù\çEZÝdfzr6è[Yßé¶êÈ••ÇVží.«<Ï.6(˜âc99µ¸ëÅÐ;YôAs©›ÓfÛÌë Â3œ w\Y¹jj£Ð5¤{_Ôõ{X0·Ô ˜p7§y•íœ ^âL$N˜8щN´`ƒd[ ¬X—vËlx\ÖŽ#LºM­ÁjíÊcgÒa¸2jXMü-ÖvßãVÝÒêR“&H¶:““:•“:—“:™Ìæw|}…*Uûb[üÑÐ9cq߯ˆH9þ_¸µ +¯<ʧŒ™ãwóA>óC>'¿ ³`-ô“»ð³;‘]¹Áá„ÁÑHà4dùê’­tlìÏô?^žÏ/gçó.†šÍÁ¿!<ظRÇg5ºÁ„–p×9vatóüýûá:DE75ÄfZ—ùî¾T¸ +Lº¨÷ƒic’Šc ÃjtBÁw§MÐJ›`M—*Êͪæœa|Ãx³¯ác³óÙyŸa‹ôÛ–Åàªü/…dÿs!¿Ÿÿâ¡ø/ÔP!]Ù°o'<>|€Úc ¡±x蟊Øf"Š³–ð‹écendstream +endobj +1643 0 obj << +/Type /Page +/Contents 1644 0 R +/Resources 1642 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1629 0 R +>> endobj +1645 0 obj << +/D [1643 0 R /XYZ 63.034 602.788 null] +>> endobj +1642 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F11 674 0 R /F1 1058 0 R /F7 586 0 R /F10 1027 0 R /F14 1012 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1648 0 obj << +/Length 756 +/Filter /FlateDecode +>> +stream +xÚÅWÛnÓ@}ÏW˜—Êx³³÷â!é Co÷Q% -HD©Ú Š¿g×^;ÙÔ1nbE‘íÙ¹œ33kC€Í HLT*¸župpk$Çp±S‰Wti§w¤´ Az³n%~ Xô-ýÐ;âl©”Ö²UÙß¿H#‡QL) Šb)exzy)¦É…‘$ûQ a?R,Lí]rnVÏòý³{CÃÏfíÓe˜œ[¯Ã´ŒŸQŽµ):Orä*P&x±’$— )"² 0ÇÆ¿<ìu£˜NòË;÷Dò«º]·ðÚÉÁ^E)÷…ØmîÙ”L 1`¤¹vžÁyþy“«]™`ìÿþûƒÃìn4›OGdz•E áäM.8HŽ“t4HR?F'Ý›Xkp•9² ¯œ½Ó‹ÑùÇþ—L¬—Qàˆ*í¾q ++ Æ…†ŸL oç‹yîæp8|[™7}ê•I„%uNo+œ:ß«4Ï›Ãz=¿ûcE9 Â@[@FLíQÁk +4ü@EsÈä®)gH9pLò÷?²Š2I»ŠØüªÐË}ËZ\ît•˜u÷¦j„Ö®\…]ˆ$/G¤h^û¢­Ú¬ŠHRÙ%›Áæ•«bm >bã1îÖO3!Ÿ1Í~ÿÊâã’.\”Éã6C‹Š®Z…†× B5'N·Dœ¬¬u ëð3~ÿ*O¥J*$Ù‚ +²ìœ’ +öT1ÓÆTHÖ• Ÿtx Y¸ÆþKÉÖÀ_³³p\s6œ*vMÖv­ŸÙ~^³Hα ©l´Åìn«ÃŽ›[ uü: ¯ÕdóV“mµšÂÍQOójP±(çÚÞvÅKĨªÃËiø±Cc¼i /ºMU-,^›]q +Qµs#×ðcfÍqâmá$Z¨+òŸêJþ/ײJµ…—®¢Cãmªm²>ÃÈ Ì°"âÍ=¹ú¹ê¾2µyS$ºêc•2Š$اá_Û]•Zendstream +endobj +1647 0 obj << +/Type /Page +/Contents 1648 0 R +/Resources 1646 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1629 0 R +>> endobj +1649 0 obj << +/D [1647 0 R /XYZ 91.925 602.788 null] +>> endobj +1646 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1652 0 obj << +/Length 610 +/Filter /FlateDecode +>> +stream +xÚÅ—ßoÓ0ÇßûW„—)Ľ;ÿŒm¨°±i*P•RZ!Qm‚¡ýûıÒ,êBbµŠ¢$öùòÕÇwg#(.ŒgÀE¤€˜6&ú¶@´)zÞNÐ[¤Þ$­Ù¼žO¦gRDËæ붛ùês¬±$ÕZÇÏ#ây’b<»J0>Ÿ½±ï'eë̾^­’¯ówÓ3óà•“aZéB†uˆ(­ÅätþO›Å´;åW6õ›ÈR5ýR fH•¿ƒŒœ ™=Ø Í@s/hãûk~Ro"°¬èñ$åJËøÇ:I%Éø H°÷¯ï¿]Ã+÷ØÞ.òÕÊöÝmoé…k=²€–X}ÙžÂííšžùáW‹Ë÷'ŸÊŽGÊɼb¹î^Y4µ‹Ò7Ä››»÷›Óëë—vxáªi*CñRýymÿü\P“˜ÎHÆQîbä-šzuF&£,@LÑžcÊèË ÃðB N÷ü¿"­¢ˆuŠuª÷¸·ÌDý)ÊPU§{í)NŽ{Þ€g±ånÎãçîQ¦lŽÍ¶œ9Œ=EXvŒZ¶F-[‘{<íÔh†Ô”¼^QÍ­,^wÍ­·hªÍžž[ŸLæqPEÁŠP^_¡ö˜H½óy(Vbà +UF÷XNƒV)»{êÍI…â¤GÆ(¦LVÙXV>‘ ºÜ‰´åèаºEýs‘Bå"‰;¡‚ÐvÖHýó‘Bå#é¡;ëVݾ»VOÖ-ÕÒÜ?)T.rSp˜˜âØ›tºEÎÛ§r˜Î$ã”uɹàL£ýªuþ›™Ìaendstream +endobj +1651 0 obj << +/Type /Page +/Contents 1652 0 R +/Resources 1650 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1654 0 R +>> endobj +1653 0 obj << +/D [1651 0 R /XYZ 63.034 602.788 null] +>> endobj +1650 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1657 0 obj << +/Length 802 +/Filter /FlateDecode +>> +stream +xÚ½W[OÛ0~ï¯È^P–Ôw;šöÐ1`ݸ­ Ó6¡”Ò©7µîçÏ®OJSL ¡BUeÇþÎÅß9>¶±‡ô{1ŽbÂ=H$•ò®G ä ôÌq"H¸†ùœ4šGÊ‹£XP/éojIz¿}ŒEð7ùÖ<â쇎¤4š äàkë"9 °ß BJ™/¢ ”Rú§—'¢~Ò¾Ðs'íƒ Ä~+PÌOL¯}®GϬDëì‹éPÿ§ûqÙê´ÏŽÕÆa²òŸQ *¶.±À> endobj +1658 0 obj << +/D [1656 0 R /XYZ 91.925 602.788 null] +>> endobj +1655 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1661 0 obj << +/Length 642 +/Filter /FlateDecode +>> +stream +xÚÍ—ÛnÓ@†ïó榲«z³3{⢠ZZUæŠ!Q%¢V=Ð×g×»Il'2[ÛYÙÃxfüéŸõjHF(㉤H”ÖÉ÷åˆ& »óvÁ"&yÅæu1Ÿ +žb$KŠyÓM1ûœJ‚$Ë•RéùdzLó´ÈrH'—¤g“7n|\®NÜð®~ȾïƧzã•¡&J*›†s œÅè¤XçÆ©$Š‹ÖôW6ÛùëDÛH²’¿Pœh”>œ’YΑÒt|˜åEzcô£Ã±ËÄúÏ#L¸A…®çÞì Ô]w?îýÂ+ÿ·¼Î®MÑí<Á‘[•©Ù…òòf/‚ùùåôâýñ§r£Dd®3GÁ ̓AåÑò•E=Wm}+%ÒÅÍÃsruõrçc™í¨,Ês±#¦ß¯¹Ñ´‰“µãÔÐ '[ãdûé1§fýpêà†7q˜y˜Òú”·¢ñ¨ï¿yÐxäמ\Óõ »`—š0m؃E=o] £bÝ›ÿ'¤L4)C!e`ëø¬+²µø và 5Îê°?Άý™s¨`Çá,¶ÎÕçp–8³Y‡¹¢n¶GÎ*^ÏzΦ]ÏzuâîmoŒ½|ü9Å™gMã@xÍýayÛIÓ gªu°¨§±¬‘⬑²>Õïˆ9Býê_)¢ZûoP-i¤<ž”†”l¯~ÝúâGªº©’ÿªÔñ¬é`hß³²¦Jö×U¹Ê;¾~a˜úÖP%kv§^€íi¨*àÏé¬ÚuÉ>÷Øo!ˆxæræªOgZ¾ÉahRÕoõð‰mahv}©3Έ7«lþ=ÛÄendstream +endobj +1660 0 obj << +/Type /Page +/Contents 1661 0 R +/Resources 1659 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1654 0 R +>> endobj +1662 0 obj << +/D [1660 0 R /XYZ 63.034 602.788 null] +>> endobj +1659 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1665 0 obj << +/Length 682 +/Filter /FlateDecode +>> +stream +xÚ½—ëoÚ0À¿óWd_ª-ÆöÙ±­i £¥ŒMSW¡¶Œ‡4*lhÿýblš¹Q„¢Èßå|þÙçñpòO¤(÷"L‘Ò{š”°7L4×%b-BkîÙÔâRåJz +©¼xpè%îßù„Èà>þT¹âlgG0ABhÏÚäòcµ×âw‚€ù +B!„Ómü¸ÑNtÍÆe¿HæÇZjÜ&µ-óGµõA àMê¾t«FëZ·ZªÇÛøpA”ÙÅÍQ¹ôd|´×I.’4Z÷€& ¹ÜΖ³D¤Ü¯w:ït ‰ç`¤¸²¦ÊòP;—<Á!-¡Uïµ}Ê ÅAÈ(Æþx`Úû9ÖïóÏ…©xoŠÉ¼·øý¨5+;5õ+ØJ4QýšŠ7ö×›vïösõûZq3$Ù¨'¢ÞX¤ã&Τ(-†XR•²iïÙv3´ŸÔ”åÊÉ XÎDƒÞÑÝJ䌜ùÿ9KkÃYr†×p–98à œáŒœ•ó|\g Gó¹Yhº£íÿô` W£]‘ÝÔµR«Ûlæ¡+)b ³èZ‹tèàN—C—ÍâèÚì(7]8ZŠÏLW¸Ó•ÅÐU§œ3|ÀüaiÊåhlÎgã©­\Œ4iâÛÏowÓ{#=þ5e­<ÍJFÜì×bÔßm› åZžAb +1)²ÉZ¤Ã¥ÎƒÄ Ab,/ Í +LÏ +È}§cÅìtLä´És8+ ÷Ã)+æpÊq^@ÌbçÄÝϤ¼˜3)‡“Î_‘x}K §Î@›%ê)=žˆ˜dѳé¨Ýó“\äàdÖ¦hÿÞ³œÌsÈ…@²0ƒtÌîIÈ]’pÿjko¤Š# êÔÅ AôמòbE¢ãendstream +endobj +1664 0 obj << +/Type /Page +/Contents 1665 0 R +/Resources 1663 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1654 0 R +>> endobj +1666 0 obj << +/D [1664 0 R /XYZ 91.925 602.788 null] +>> endobj +1663 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1669 0 obj << +/Length 906 +/Filter /FlateDecode +>> +stream +xÚ­VmoÓHþÞ_a¾Tk /Þ7¯Íé>Th ‚ð§Ê‰Ø’_‚ãU÷çofwí8©8tªâìÎ<ûÌÌ3³n˜Âó"AC!½(äTDZ·ª/Bož·Ì! &˜—‹‹go”ôšDÂ[¬Ò,²¿HD9õ­5¹ùríÇ’,ü€‘«>#×W¯pýÂX¯pù¬·þß‹wÏÞÄGVÁcª# i !c ".^/ÆÜdQ-Õ£é˜óüc/†HÑ$¥%ydÂñ(ôÉÔk?P\‘o¡ +ñÓå;køÓ~ÕÛ»4ËÐsyO­í²Ç²ê-÷°ˆùXÓwüæã݇÷/¾‡Q@%ÇÄx¬)“ÒI°v€IæÁ€XH8jsÇZ+²iûÖ†yýéÓx¨N¡ü<ªb ”‹¹™‰iý§4â¿«ÕúDdåtZýŽF +–!{L#‡8ÍXþºFêÿÑ(š%×0*J›èÏO±ÄNZnUåiwW﫾´v¤¼<ðÑ&Æ æ\ìbó‚_¦#S:2¥#Órô.Ù,“G¦%Ÿ=ÞƒÉ~ðÝ~¹¾ÆvÎê­™«¸Ëû}×Ø0Hó`>wm(—â‘î8À)‘8{1Is·À•ýãBòª­Í ϟǤߡU$ô.ý€k’[#Œ;¼Þr„ghá$Ûw`)›EçYÙO÷ÛvéäÔæ$µÇ¤ªLöCZ\Ó8¶ÙGp„r|DpŽ^ŸKØmšcB[n`f0ȶÂç*…gˆ¶9«Ž©pÌ·-Vx i+AÒjÓv&ï¢Æê¥"¸i-®HØdUn·5RàЂq[ás…Õ¥}Ù"ngQíÚ~ç?nCî­uo É—•µfHfZ‘7» ›"FD$rlÃè8¡²±Kx':ãbW휰ÀÖÁÈJ L-¤KûbèggM»²Þb©¸þ2‰Y”&×bè+ºúvo*‡ …µ Èp¶ïàÝ—ÝqX ›ð/”qòÙ*+¹€÷”åâ¦Ue¨œ‰`3;/õAVVù@°Ä6Ó4‡”¨ õ  1> öÍКrÓLG|¿Ðy =å +…ÝVÉ´ǼÌÉê~¦ÌÔ^ ›ËqüÁTcfnúr‹_G „fT¸5øée¶yôéÒpìŠ<£•¸‰¢‚'s¿IàúPÍp7qþ +ŒAÔendstream +endobj +1668 0 obj << +/Type /Page +/Contents 1669 0 R +/Resources 1667 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1654 0 R +>> endobj +1670 0 obj << +/D [1668 0 R /XYZ 63.034 602.788 null] +>> endobj +310 0 obj << +/D [1668 0 R /XYZ 63.034 396.557 null] +>> endobj +1667 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R /F47 596 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1673 0 obj << +/Length 2766 +/Filter /FlateDecode +>> +stream +xÚåZ[oÇ~ׯà#™zÇs¿(Mŵ\%–äØòC%Q2a^‘ŒÑþú~gfv¹Ë]R*Ä. +âr÷ð̹~眙=Ž?Ñ ‚iz–Kæ¼ï]MxïO^ˆLQd’¢FóãÅÁócß ,XÕ»¸Ùärqý[_H>øýâ§çÇF¯éÌ9âL$/þ~ôæâå@ôß +¥tß²AáœëŸ¾=ðªqòÏ^Ÿ¼¢4ðºAW'ç¸{–~qtö7ºPýw¸÷Ëû£·'g¯hÕƒ—•üZf•Ý©¢ÒŠ9 Ñù\xf”ÇSÂÕI6I5 ?¡ÿ8øíwÞ»áOœ©à{_pÍ™¡7=Á2ëTþ>9xwðËZ*! ÓZ÷ +ã5~YÞØž‡Em´¨LKÙ3ÎB´íz45nç÷ã%>?M³ÜúGì¸Î^˜ÞmZLxÁ8Ä)y>¨…bÂoÓ!ó*jÌ’5yô“¾©Ät·®Èᓬ@]kÇ”YÖV°ðœIUgÁ$†'3bvY.Û,¥a^ˆŠe¡í2u`,zÆæì#ü *³Å2™U±æÕö®ãŒsS.G¢gJ,¯ÑjÆ]i“a[AK”>ήô°2L²©¤” +ñö¡dÉj—’RZH®JB,èéÔó²Ã÷éê”h8ÿ|µLÞïð¼R,pÛ ¦ú‚ÈPcòã«üóP\=ýÀ5ï˜0Ïl8¦Á ¨ŠmšYîê +7"2ƒ„1‚ázo³f·s”dÚ›÷9eNnÚòKδ+·‹ñ-âÏÂÇíùW4ÙM¸|”bB7‚BÆ@+±ûvÖŽ›g¾öR”1.½©è5ŒøÖÌZuÀ6­šÐ;˜~8¨0ÀbùvrUþ²ªüǺ£s!À£Œ³8Çï±Ô jÖNÁJ+-Ƴ2þêdëí³(A«ÝöŒcô—Î0ÎõÓð0ó*jÌZxH/Ç`Z(I¶Ì'Á0#÷#TbµS¦@M{hÊ´£5•I¥÷"\Ék—t¦F]—®ì‡RL¢m¡]‹zL&À úx5 ïÓåxÙñÞGåi¿ˆq'rM©Úõ +Rušp˜ÒïrÖª ´¥R)eÛ“Ž™3¯¢Æ¬ýj†‚è¸QÒlm²F8ig/’e^»%ÓhNÐ5%+Û5vµ) Ç¸†þKB!Ñ|+¯Uá3iQ£MËûÚnWêJZ=ïyEì^ïjráÆ™þóo…‘¦ÿi|û)]MFŽ&érJuEîj_,¢ +ïÓdøi8»žÒ ‚Ö4­Ñ·ož7– yIŸ—Ï–™ýÝÇéj²f‰ïÕ³,ÖðY&/6µ_>«8m>º*· [r„Ž1Àcv/Çò¼Ë[7l‘ Œ$GaeV(^¡0d‰f£Ûo»V—"“‚ Q~·6À°ø>©t??¸¤›±O«™ø‡ôqúæã¯oÎߥ/‡Õ½³—¯º—wU©Œ…iÒÅÅ|>-^ÌçŸØåX©K;ܬU9=9kèEÛ¿Ï*…ÒîÞ÷¥“°ÀÅ.eŠ¦ †7gRý®Ù᳄ªQÜRPòY-œºj·™ïçòx¨a¾zþç„EÁR2t5öå;»¼þðßµ•îRendstream +endobj +1672 0 obj << +/Type /Page +/Contents 1673 0 R +/Resources 1671 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1654 0 R +>> endobj +1674 0 obj << +/D [1672 0 R /XYZ 91.925 602.788 null] +>> endobj +876 0 obj << +/D [1672 0 R /XYZ 251.125 347.952 null] +>> endobj +1671 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F23 1211 0 R /F48 601 0 R /F58 1173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1677 0 obj << +/Length 2153 +/Filter /FlateDecode +>> +stream +xÚµYmsÛ6þ®_¡¹-ÕšÞsI:NZ§n›´u”¹é4-S2'©TÝܯ¿]`)‘%»ÓÜdb‚ÀâÙ÷Å‚cÿÄØ(Æ•.™ãñl5â㬼 ¢‰$ìм˜Žž\Dzœ°Ä¨ñt¾3½ý=0L±Ih­ Þþún"‚ó«I(‚Ë7¯&Lxrï6+3k,pÃ}B +¤}7ÝŠ ¹aVG'¥liÅŒÇ1p21#«Y,cÇ¥õEÉŽNYf`ŸhA뜄)Ñr¶¬³IÉ(ÈçþùžGüõå›ÝK>ßÔÙ홟¹ño° üÄógø4ÁçWçÓ·ï^œ_¿~÷ÓõËwÓŸ/.Õ|ÒÄ ! 懆 “q2g lõªÆ“PUV{ÖÏücµ¾þViSonÒëÕfÙýÌËvCÂÏP #C`ÞO>ƒ5U,R§µœE|OOÅIÏ'_‘Ôiá÷äªMë³æŽó´nȨ¿š|½Ì³ê›!]xNK΃¯WåvÕNy~O@°óNÀÛ~Tm%-7ÍzC8÷ùr9(‚ê‹p—þI»—Y]·€­U^ÿrýŸó««sTû7?u›/ò†ÓâvO„b³ºiE/çƒè¾]¼û²ø’äOçólÖ´6¨P€ê“]Wå:]¤M^=11ˆZOù +¼xi¼ý¨§´ô/_Sr¢óÃ1¯ìàl›fÝ‚€ÿw<íþ·]1øâ‹AÈV-@B]y°¢˜àé³!Í ˆÝÓ§}_~~uýârêgÉyuþ_4KVvô’q_VŽçNøp·.{ß^¾ºœ"nK¿ÝwX3 etª¶E_9LI+k&Ýu} òBÒ]·.0êíªÛÙ6Z룅NËC¡µeܪÿo¡ƒóRê=QÔ¥[}÷ yGUôèqõß×1$‚^šêhÞüý³"$‚>¥äž…Ïë|QôŒPd‹aåbÚTeͦ¢=`Áaâc ú©÷,ÑégB¡˜LàL’è´£rg€Ò2ÈWkh†–š•/r°,‚¼öd¥Po+?]#9mÍë&Ÿy*W™»Û + (?Fâ´Z-?yÚ¢l²{ä[VÍ>?Mb0§|(4K4F™DNôŸrDud‰Qø”«õ– >\tç®zqÑø†eCGº]6N9g€Ú‰ÖøY„òaP,üÞíž÷Béoþ5 cÁƒr Œƒ :–²òtsØS•«½M/·Eu|÷Fîå¢JW«¹(.ƒeZ,}ºÈ gÕJ£Òè0®¬šH³¯±óº;·‹8bZ·Yþž sÚNZßÔά ÏáL‚ãyŠ'âv6¥qÈ18[†XÉ%tÛ¸JèŒmBd.R.û¸I}ë½¢`оõœÞ”@¦T@µNð±a‰ÕNOËä¡bFx‹r„ âГïH˜'Ñv ¦´Oh)‡´ +´ª–.  0ƒRòíGxÛø®€bbŸw(FùdÝnzçZ»¨²H‚ÔÏÔ=Öà,#¸ÙYêb/óo²JØ`5Jô8¶k.ùfm²Âê=î¸kƒ™¢9Ý8%øï( +dîN°ÎVð :}ÉB÷ÜU Œ}Žñ¥1ækzÏñiࢤ>­Ý„WË×OºD›|@’ÌO`¡!†>‹²³3þK—iÑÊDåºAÈUë(×- ÐiÏIôçr2Í—é •@\¹Ùøำ9u|šž(6Ln ®Ö y 9yZt‹É­+£Fø€ƒ~…Uç}ÃÈ}¨ @46H-ˆÛ%ò(~g‡F^ÇÖ-]à/•¦ÎðÓámEifEkób ª'­CüZH]! º*ìï]àRén’{ c\ùÖ*ÁkXx‘MHµˆ^c‹aÀ™ÕqW"CJ{íetœ +Ga{qŒ÷œ–äëC>†‰í—úbÈÂø%k'FûQ¬ûû‡[ g‚„(øËÆÇÑïðñíˆqh/âñ=Œ9I2^¤e†+z]ŽÞŽ~ÝýNBXaÌýLÒÑJB\$ÊŒ!žè®îÉ~Ó`­|1ð™ï Bß,[ÏDîÌu-îÇ ù +.¿‹ïogmãë;`¬ò {lÃßpß:ô£¸]A6 ü6¤4d»À·Îâÿ“c{endstream +endobj +1676 0 obj << +/Type /Page +/Contents 1677 0 R +/Resources 1675 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1679 0 R +>> endobj +1678 0 obj << +/D [1676 0 R /XYZ 63.034 602.788 null] +>> endobj +314 0 obj << +/D [1676 0 R /XYZ 63.034 259.714 null] +>> endobj +1675 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R /F11 674 0 R /F10 1027 0 R /F47 596 0 R /F14 1012 0 R /F6 1084 0 R /F7 586 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1682 0 obj << +/Length 2261 +/Filter /FlateDecode +>> +stream +xÚµYK“Ûƾï¯`åb°bŽç U9¬eÉY—-Û}²|€Hì IP¨Õêק3 @‚*§².U‰óìéwU3 ÿÔ,W"×næ¥i–ÍV»9{€ïoT8±Gƒ3ß.o¾y•Ír‘{3[ÞŸSY®O”Öó?–?|óÊÙÓ9%•HS¤ŒG^üëö—å˹JÞÌÆØÄ‹ù"MÓä§ß~œg&YÞý{?Þ½˜/Tr;Ïl²ÄÑÝÏ°úšoܾþ&y k¿þvûæîõ÷øêÍËeÏ¿5Nxã¿(b<ó'dt©™ö$Àa ÏV+äªèpXïÛùBk—40+qý ŽU?]ã¶MVõgX.š2,v5ßí6tš”§Ô@yÎGåíù@:ó"O-î;‘g3#¼rt ¨ ©OGšòÃÙîY¸¯ìæ:KŽÛ®‚íöZÈc°•Y²Ü”Ìë=¬ÕÛmÇ+<ñ€ÏÎÊ;i +P›ãçÖH­xhŠ[ïçñ*é¦eS{þ¥µOÅ•´-ùF}Ï{AE¼vVR>ŽzŽ¬¶¼2â; £8whR›¯“žÆ6¤0Z¸ñ‰ RÞ êÙÂ)/ì”i«„³øžp”ïVk0ÿšs ó*Ÿ9“ +© ’ýpóûr¶~¸‘€ÑáWå9\Ø…QÐúöæíͯ'#±Å€1©†1šÁ]\êLø`¹wR^º“ËQ +ù?Ê¡>ûÿäPÖ ãÁ•ñZ~•ÖŒiìnT:æçÄR%´3 m…÷ù¤å ?X—ÎдF²éLˆÐêR ï‚F@eêBeBt 2¥¥œ¢Œ(£ÿ,!ý\„®MAVTö¹œïDí\ÏFèp¨ç7œ\8šeÈ.bN²‹~&{è粇þëì!¥H]þ\ö8Q»j‰yÐ_ÚC{@@:oGöPÏdõ\öP™=l–‰L>W| ¨]³‡Í5Оˆ}Î"Öa›û™õJÈÔM¢Ÿxf18tþò9|ùUõp¤ÊÊEÙ ¥þøÀÚä-ኢ ˆ€¶>š àS}æ* :ù®bLp®\¯¡R¸/r®SÐ(ºT¬/ƒW ÕJ™tR4éEyßBQTàÄ(ÚÛŽøï¢:7„un8ùÜãš +<‰0*×€Í=†z?'(þþt„ àÞªÞ£Zl¡Çˆtx¬©6s'O (myßñ¨à ÆRÍ/¶]ĹG(ÁWbÃ'‡¢ëÊf7djgx¬~O|$¬{l ‚_!6'䘻(˜'p{lœÕíˆÈ}<ŠtÂâºjWǶ%ï¨Û²»„Á°!L–†˜üt±€ZlØlÊC¼™ƒ=«‘4b ©I=†¨XZgøìÉŠ¨YÜÐQ=ÚªPBLG”¹Hóœ!2ž~'•mæáTÇ7ê÷mï?çÎõío£Nðj·)Â…*ì4!Ø'´‚E5&×ÿ\hEÉ°5”POÐ1¢Oˆ—T ˇ½¯€kѨ¸8Ô"úô.Àø)È~ H"®ÑKV¯ã‘"àö‚¯½“NN´BJ–tc½Ï)/ØÜ]‘âAêÙ鼤.z*#2z”ù•¦*…„ 5´?QÚ +w–¢êDˆB“Ï { +øyHIídw×¼ 1¼§lÀY¾iÕ(5áé‚|9j}‘äÓØSóº ”s +ïtýѧ×eί«³JB;Õv8DNœÆ@&È]ûŠŒ¢rSîWè–@—2:±bGHkÊØ ohÐñÈ!VD™YqÒSÉß@nŸ^‘ož”„nÜq .)—à™Š‡$e±¹ Ž¾6HóUSnŸxTu)ãºF{sAÁ9­Ò!ïXäAA„íÈeáÆŠÐÝe ‚¬mL·ŠYÑÈ×ú2+ ÏnèóÍšgfá++æÉbËó©DI Sz¶ƒÌÈ)QâúÜ…»×˪4ðøÕ¬‘ ü¬0*¬øJà¬é­o÷(LJck2ÎIZCù9ÓV•¯Á• 9ÒG.˜x b…Õhk@Ë'ñD¬©¾_…ÕbÛ# +¢§°|Óø«$½@È#§Ïr8‡-úꜞö‚ú"+䶫ÕÅ'ªcWõcŒ`ýT¶60JýU½cÕVù;¼g ½ÃÌš5„Fuá#"å­øÁu[~{9P|SHýÈsÅ?œÖìjSËòcE‰£åµvÔëÚgÉ‹èÅh´¾/06¥ª3å§ú2|LÁ8ˆ)+–—étK{pNy>0CÅaï…{êhpÔô}$L>sÕ¡Z½ßæÂ*«Ç|Ty™œøMDCcˆ7‘š8ËsQÓH¢w7eÈkUáeŸÕn·!Qç(œF„ô—Æ–œ€€ÈÂ_1¼€“ÿÃÏJ»—R—|[´å–0^X€¦++—)ì pñ=îÕÒTÄùnº,Tíü íh9ˆü>ÌZ¢M}@h¨3ˆá‡šzÊn³ãVF–pËVPJšH©g$²±µ3†¬­Šn…G7‹‚à¿wÖÀßö½ JŒ:`br%ímo\|ìéz{@Ž\[}>ýyÀøÐê÷EáÍÉ›'Ü `ÈÊ„õ°çد)1\ûvœ:Ÿú¾`¬¶ gƒÍÿdÉjpendstream +endobj +1681 0 obj << +/Type /Page +/Contents 1682 0 R +/Resources 1680 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1679 0 R +>> endobj +1683 0 obj << +/D [1681 0 R /XYZ 91.925 602.788 null] +>> endobj +877 0 obj << +/D [1681 0 R /XYZ 221.841 473.03 null] +>> endobj +318 0 obj << +/D [1681 0 R /XYZ 91.925 265.869 null] +>> endobj +1680 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F11 674 0 R /F7 586 0 R /F14 1012 0 R /F10 1027 0 R /F45 589 0 R /F47 596 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1686 0 obj << +/Length 2898 +/Filter /FlateDecode +>> +stream +xÚíZYo#Ç~ׯà#‰xÚ} $ÀfáuÖ†“Ø« 6`DQaŠ# Éx•_Ÿª>fz8MRŠ âÝÕu~U]=lBáM´ Tȉ¦œk'óû :¹…7ß^°8¢ŠCªlÌï//¾~¯äħÅäòfŸÌåõ§©&‚Ì*cÌôã™±éÛŸf›~ø㷳ϗß}ýÞö“·Äh«á<ÆŽ¸øæ²cARMŒTG¹RÃà‚ß3A‡—ŠJu>b¤$ÎÂxE‰¦žÔãŧÏtr ¿» D8;ù®)aÎMî/5DQïW/~왲Œ0¡&•²&öšÓ ÂkÞ˜˜("2ç5ðvêºmÚå~ï”éçH FeÔ×f_[LhÂaµDò´„YQ Ѫ2bA„Œ&‘œd¸±¥$1N‡­Hë8[Êg쀭Í#¨´ͬÀ$ašE’±Æ+«åV¦Ä©@ëÃúa‡ÿ·c’\Ëz’•Tº¤Á‰ ;­ N+@«C¶ +¤ªžÖÈÛÀ‰v:-‡¬-×3î’štø¯ *Ñœhà\%ÚmƒN +ú‚8ˆ¼Šóå4ÑJÅ×WqºË_+êâë¿SI ü2bŒ2ÌéDy'À¨!Öò‰ –fù¾-b´*ÀÆÔ¹B¿§v0öÁpÒª€~ÑS>¬!úÔ8H‚Ø6E,X€ÿT`¬¸nŸÂ›‚SYîl:¯òªH«ÊˆÝ +ðÍ{q&ɘײÓ(GsØ­ãýjQoâ%/˜œOuæ¦llnéñ9Y›Mßì6‹ëBZÂdÂÊ߀ú@,,{½¼E&·¯së¨äV2[ǧ5í³Ž`/Ñ´å@-Ñi:çFHȼM£¯ì3¦!*9c‘ÖqÆ °CØ,ÿ…N[@[E¸æu•·î<›Á7@žâ!zÏf»xWш7õÓ%˜Þ?mÛ]».[’QF8K^õß÷uÆ© Ê ÅQ\¿Jg‰V•éŒC]Ã!G¤1ž­oA(82¤(ËFJcà5Ü •&H9 u˜¾Íƒ%‹:€DÅe¶ËQ¶¸Œ?#p߀펮Ú\/³uDÉ¡È2úÉû™ÕÓ¦¯ +¢—p`ù¥(˜”)ÃÜ´Í}ð/ÚÃoS…ÃùrPÔRP,À Ké1ºBíL-xý®^Íwèýõvflï1Nqî®nÞ€n…Rž´Åü"ÖMÿQÌüV¦z¼-ÙØùü\¼çbÁ¸¢sO‚pÊÆh%ŽÌA€ATI…¯d‡®mI{Òê¿è½)¬g® á +[f»ÑLŽéA%«ÇxhA +ýì0¹nvW>}„Û‡62´›û V,7ÛEÛÃ@baÃÃEmoNqÂœ»±) ±z€À·ª+ˆsk@îèôyÚ@fúÛL‘nÀ’¶iÍyÁ[¤È[{x˦2(â æ +F„IF\>1—Z•cîØIì1Ø1y¹¾ÛX ³šqJˆ2n«“¸­rÜF¯Š˜ +ЖGƒ/ç¬ôRð}iŠÖ/¨­Ÿ–9 ËSžE穨_Üøe0?Z*7Á¶„~{™ØÍaT+újcDCåØà¦á£öùŒî +ÆÐÛ¹*9 ?á)¯‘[—{?€‰Ãðçå v©ô9‡û‡Ó ‹+©^œPý Šk¸Cßú¸ØŽóÚ +ëØMèjy×mû4þ‡y.Ó‘ +3ÿzöb@A¿î³ˆ¡§¿+hÃôîF‡Xª(±L–&ì„yJ~ TÔKJØbò¢„v~4Ü (é“RY~fÜ?Ytÿ +xðr ÔG0ÐHâ$+éNüE´¹êåÿУb¼Šƒwx~“€º=¦Å|:_lâN ë†Û榄T’®Q]jƒƒGšá©À¡néêÚqã‘#TÂ@Á…oB½ªWiU±q¯ŠM뺽ŠW¨LÁQÊZ;nX)¨ ÷v:jÂ÷¾¾Ìñ@â®^߉â™[]•…òäØõº «c'ìcóSŠØÊ"’Ù÷šE]Úÿ(`–^Kƒ•\Õc'½„CN[b”šʈ£¯kò&ZUFläLZÈ›¶[°w‚ÅLÁF¹t²æ`da›[C=;~²œhÀÌŠ +Ëây9Óì #ÞvâeÇòqD€L¿_Þîðè E! j6“rúv•WÃK9>–æ†û&w¿à)Û8ëV$u„yn m³÷µ0^º³°IcÉáù¬ÍYÚ<¶£ƒªÂlÆÓÈt\!‡ +ôÌÑo6¸ÂÊ¡Gt™ñcÂñ8P [“¾<¨ü§`È¥ßsÚÒW¿¨H³Ÿqš/…9tpíIU­³ vØ1͹-}c`=>œ…«Hë8[ØSäl…o Èè3Ž§¬)þ/ï–a—ÅšÖÝw˜Kñ¡„ú›ÿ÷qÛE™öi8 ôg¾ËZ˜8Y¹,^‡ßåzäýÝnSÅ,Ì€¹ð§N¥sDdìMiìRVlñ®¹J{ÃEûÏ€u½]6ëðÌ¿_‡é›Gd»nIvÀ‹Û0hÙ¿ª7þä¦ÜÔø¼]=Å[œ +Á_ß¼M/Òõ*úiTZÊ‘äñu]%­üá-žH¿ ?ñ¯‡jTä ]§+N9ón=ßlúqy¿\Õm °mÂäýå½òÇ ™ZæOú´1¯ƒ˜H«Êˆ1_»n½§Ö>sȳp•hãJ`“Ö‰!W3n¦è$«w´$³çá.Ò:ÊÄ®„<šsw¾xëý«à©u0ûvqï¿p;3mZyOñøZCak†!5Ö=nA´…²Hú“Ã×IU­}Ù,ˆ–F¤ï}üGòöqE"­âŽÒà©·—8Ä;< A7oVé¡!x‘z·Š4}¬åc6¡z0` +°[½ A®~ ½xÿØÇU¤p½ý(ÿMIí:Ó'”n‚õy”ÞÓ:¤ô8b t¬›P£ø{åhê¥$n¨Ð÷ñ®ÞÄiwéuã«°y¨»ý»è”ûè# üƒúïr'ZÇç’ °/¹›nãVŠi(¹ñÃ=Àflx„Tè…ÐÓfÎÙàrÕ„{ˆon¯OFËM¸ñì·ã¡HÑ^¡vº¸]¦Œ$LHBņæ" Ÿ ð’à~GG“tÝO\³‰¿wÞ…ä:ŽîRÃÓËä¤Ä²7’CÉ8 ’Ù ÜzãržëÕÏ]†g×>$SX¬Ã„ÎO`@ÞFž%Îú^.\?øÀÛ.!Æüì6ˆæqw»Ahã"÷Ò­â´|ÏÑÚ†‡½n'Á8åΛ艰F(ZtïÚx=oV»ûh¼÷`¡Å`LÎ4¾¦\Ðb ÁGoC|ìÑð÷ùpÁý)‰2¬Æ\$DZDDw2lzӠІÂæ~ŽÙê.ÜE­£ò, ‹ããM0óC¸ÃSѽ‡dQ9mƒÿëÛp"mX n¸ÍöáÔ N(3:å¦y#1BT]ãøþp`ã¡ílwŠ™'õÙ¸…p° æ®´ÉH_\Óüå¿Êp•endstream +endobj +1685 0 obj << +/Type /Page +/Contents 1686 0 R +/Resources 1684 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1679 0 R +/Annots [ 1688 0 R ] +>> endobj +1688 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [126.169 205.68 133.143 214.093] +/Subtype /Link +/A << /S /GoTo /D (cite.HAC) >> +>> endobj +1687 0 obj << +/D [1685 0 R /XYZ 63.034 602.788 null] +>> endobj +878 0 obj << +/D [1685 0 R /XYZ 220.095 271.375 null] +>> endobj +1684 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F20 1030 0 R /F64 1214 0 R /F23 1211 0 R /F48 601 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1691 0 obj << +/Length 2042 +/Filter /FlateDecode +>> +stream +xÚ­X[oÛÆ~ׯP_ +Ê®6Ü+ɦ à¦Mê¶IÓF}(ÒÀ -J"@]LR±}~ý™ÙI‘–ƒ6íe8óÍì73»áãþðqÂY"ôØ„‚Eq<¾YÂñv^8ILIdÚ’ùa6zö*',1r<[k™Í?\¨ÉÇÙ/Ï^iÕÈñ³(BÍ(òòç‹w³Ÿ&<øs2•R†M¦QoþúmË`vùö~»|9™òàb«`†£Ëßaõ­ûââí8Á{Xû㯋?/ß¾F«£ŸfüJjf¤9颗9å# ‹M2Ö‘b±0ÖƒÙ*›LçA™ÝîB^fkĘm&"j·WÃÆ*¥IŠ?a`¥vÇP… 7ê`PÜŽ>| Çs€üË(d2‰Çw0±$¯G‚%qB³bô~ôGã’×5m);vIHɸ–—îù¶œ;œ×“)LÉÉôºWìDõÖI”ٮ̪#§Ã >D&ÝÀGKú*tœàmND"ĉBÏÎ[2œÅ¡"‘{Pšà;'Örg*…atOA>ÑÚJ‹¾6Qkìq² K"…"ÇÇ’ÞÑÑ23­.HZæঋCå<_ÀB¹]·HW.8Ÿ&.¨°ÿàVRØ.–Û2¯W0ZC"˜H7ôÚYUö,æ0ÜßÔ}¯ð“G†üJI l¼ÒLÀÌ™Jæü¾¯%b±ÔãFæ³ô<ôâ`ÕÒs—…sµÈ=‰ _6x–I‹-°—n€- 8¬5K0-íy:~0ƒ?ÅÉ£zpI>­!þ<Ò˜ñT;¸a(k ) +Ã~ìB&bOöGèË{H:ä4u'p¤Ñ*àP&cÜ­0ø7+\¨ÜÎö9ù kØv_n·p™M2–›Îýà((Ÿ‘üÑé ÐZÁYÛ ±å#ß, ÚRÝ­ Þ8jÏ% #ŽŒPÜ)kô‹tQç˜OEžÍ]ó°®?¸qcW¿q+V=üÞúd +Ú2×…\vîü’cqA +±>:Â:û/”I`¼6 u:×½æ !ÈIµŒ!dÿ©7xUÓF×qk*f1°ˆ$ÚQŒ•`¡ÀäŒ nEÞãØÞ†ƒ"-Á™HÙ^¿)ö¦Ê¹Åª×CÅ´‚.Õ<–É낤kÚRÖë‚aÄ´”{–,ýÞ,€J&þ2¨H×ITBÙš×Au p‚ Mí‹ #]'Ñ)¸1@º¶ÑÍñÌ—¶``êÀ}-ÅXgÄ‚¬Õö`ýÁ­îÒ +Ë t»í{¦#ÌÊ¥ .çX6^ 2È5Â펬ØÖJƒkpL™NâϳªÎ7imk毒®ì)å’z‹pÊÌŽë‚ Á¦K×Ú}a9¬ZÐP÷÷De˜oN6Å^‡·p€hÇ»ÍÕyJ2t{r•ÉÃJ‹›ÃbZÛB¢Vpk= ;..¬N¸5hÁÝ-QZ'u‚´µƒ†î5ç@v|?Á{†½îmªÜËණ|6HnÅWVÏÙãBN`˜;ÉЪ +ÂVÕÛ2;ô½¬ô4)ëOžšWÏI½F~{ásÖö¡º‰“-lnøõ¡†Bõæâý¯¾Š º¯Äàª*Ò±§3<áZË©/žðêÇË×—³«.g§ýl/ê8ŠlAŽ­ÒÍܬ9ù¸]¸6qñáp>ô¬<|<é½O lˆp/aØêe qŸßïèB–h&E2ô¿þð¢bÇYkóÿÌÓчendstream +endobj +1690 0 obj << +/Type /Page +/Contents 1691 0 R +/Resources 1689 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1679 0 R +>> endobj +1692 0 obj << +/D [1690 0 R /XYZ 91.925 602.788 null] +>> endobj +1689 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F14 1012 0 R /F11 674 0 R /F7 586 0 R /F10 1027 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1695 0 obj << +/Length 1323 +/Filter /FlateDecode +>> +stream +xÚÅWYÛ6~ß_ᾤònÌ‘ÒØ M°MÓ+îC‘bÉ^²¥Hr½›_ß’lËNQ ƒÔp83ßäNBøщä$äb"CFTOë‹p²‚•—ÔqÌËlÀó|~qý"“„$’OæËC1óìm 'Ó™R*xóÇ_SÜü9Ñàö×—Ó÷óŸ¯_ÄýfÎb¢¤m¸²9.~šw&ˆP%¢³Vzžc3ãI šäÀÌH 3iÔ…"Fu dFC’D‰£&Ó—* +®/§³ˆEAZè´±ÓeYÛÉî.¯s;mK;6-.ÒÀ“ïܤΛmÑ:—×c*£Ð©l×U; †ÁS'†d•]Ùáp³K}_Ò)Pé“QÑt”ʜŠÕvîT[boÉŽë;TékŠ~¸ºzçôï“Þ÷ â"(wQ^:†ApfžcßH®P¬ÄR×Mk§‹´Xl‹´=tv…¨Ël»hÏ:\8ѵóÃÓÞ ø_Wve!É= +5Ьȓ¼éìYV½ÕïO‡#ڣƎ*nÊÝyœY¹E£>w/t£ËÍ0ç{a~ûÎÛ&5N™åÐ#L³L·L½iÚ<ÍìG¹ì|Aæ +@oNn¿w Ÿ§ÎëýJ)«V¯õçqboÃxà’ÿ8g`»F«¶'¹|®Ï|·=YŽRéAdñ”pN*Ê÷L•ÖgóU2'æOˆ««½:u†fz¥(‘ZÛÊ|ôP¯ÿðúæÍ+$œ†ÇG©âÞ*ï +´®ÎBŠÜÖíq$‡h:Qð #ùì `~¼}y;ÿðüv>ÇUœ”ÇÇ”P$Tþ”ZœRŽa†:¸-ªº¬ÒUW±Ûj—ÖÙÙÓ_ÆNÄîNûzFh[;ýî8ÅBÚ©;£ŽpQ“X©3ǯçØ7ëë•Úÿ('~ëŒWô›$¨×ξR‚*~,ˆ+"aãiAŽa_µʘI€8Eº®zôÚ“å§d¿+¿_Ü 7¹[ëãiר¡Ê<­Ï«ô»b·«ÎÛm½éòà·W7oHF:™˜0qA;;£œ°$N:ÒÈ0ÝnMMWÈ…»Àq÷7 𠦾„€ë Tp9Z„c@kÛiHb"9¸Å#+YÆAòôÆ}pqdä#·Óf£1¶y›šO[pfo«³ŽkKб)Á%„€½If`£`€X3€ÒÈxvFem70l=ó‹Þx]<ÂŽFå=º¦Nmc‰Îi<0Z‰x·pÁ‚e]®=S/­A¾Oh^Z;R›×k‚̓›BãŠaÊ +ìƒÇ(í]Æ ŒÈù,u áD’D dˆ°(ˆ‰0<Ð2ú³hÒ³¤›ìXMˆèžAí±"N¢D)R=Ä—{WÇ"$¡TºeháGÌ ÚYÛþlÆyH8&õ v&tЦ&ë>Ob„±Í ^ŠáàaeWÐfbž=0Ö–«2ùoæ‹Vÿ3eqÓX8.ƒ9.ù0ƒÀÌÑG›ù++K;ea˜/ßµ·pÛtÜ-*ÙM±ìº# G™báb C¹AÁ1;Q—P]QwÅvu)BêªA„,ˆ’㢌 < ö‹2¦¾“Fu¨»µTí,@Я¿´(ìò²KêÛJ$™šH7NèF–ÖÄeõ> ¿J§!u#ªV#76’ˆHÎœ‹ìz™zcZrøvwOnØÅY2ör‡Â#Šâ×`ñ_ˆ>ü endstream +endobj +1694 0 obj << +/Type /Page +/Contents 1695 0 R +/Resources 1693 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1679 0 R +>> endobj +1696 0 obj << +/D [1694 0 R /XYZ 63.034 602.788 null] +>> endobj +1693 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R /F45 589 0 R /F11 674 0 R /F10 1027 0 R /F7 586 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1699 0 obj << +/Length 1797 +/Filter /FlateDecode +>> +stream +xÚµÉrÛ6ô®¯ÐôM#†X¸zpÝ8Ëd2=$9@¢l±¡D…¤ìº_ß·$-1n&IÇ32ððv¼ ”Óþä4“A¦¢iª IÓéj; §Wpòx"ÆÜ¡Ì8¿/&/Òid±ž..¹,òBªxöiñìáEdz<Ê I3¢œ?9{½x4“âíl®µq0›'I"^¼>KµX<} gÏŸžÏæRœÍR#¸zú + /™âìå¸ÐâÀÞ¼?{ûôåc”:y´èô7: +bßk¢Ç9±Ñ$S ¶EÑÀÊ(1Aªb2T–BãݤŠÄÅ,3Â6-€Ö5(—ÄâÝ—ƒ­‹ÝîŒXδ·¸ŽbmÖŒõQjsûj;ÓJ,í/ŒòbÝn*X†"gÜNç2 tFªœÍæ*NÅÖÎæQ$þªjÜ'"¯§©DÜ,qµÂåg>k+¦i7¨-¯—¶Y£›K;ܲ*%ˆ²€ÓÆ;¤š™Hñ倴õzK»Ý ÈZ&»ôZ5àŽ²ºïhWEƒÿµCƒÉHw`e³).á¬-vð{…Ô± 5“åžgì"ŸIÙ;-É™¸|uâÒ$H“Ø~ £ð”^†q;>N¦qN£ K%–êD€ LœMç= +H‘¨q$vk2¢]ç¼/ÙåÕ Ô0JQœc4Ñå\1ÚÆ6l±Ý1À¢òƒ«¨v¶d¨„TÜ ”£`ˆØ_¶%ŸÏ1Q5ê9p=0¤\Û"Cãvy…·½,×¼¥hÀ]©‹ÄX‘ix¦@õ¦È;¾2LgºÈ¥ œôæZ‰H7(¾ Ñc ¸S Žª*Z¶Lû²ðJؼ›#á5Ôæ2ÜCŽbH»&‡!ήø¿‡ºB×£È%¨œx–x¡dkÅÿY{Thëƒ}g[GÅ5é²g¦5fØÝÊlì?¶Î½”€ì‘&ÈŒ¹cÔ‚24’jÒÔxq¸©–èžkÊ´FP¤DS•Ê®jÇHEÃÿ©RDN_ûÙ]B¬Ã´uWhn€Kü2Íþ¸,k•:ÒÓ(L) â~™|øNs(ÏÏ&!”µtzë0Y6ÝNdVævåäÝäM_¾=¯ù€Ùq‹ÒXÕÉCÇP(UuÙ+„lܶ(K^á…Weî (åˆÒi` ” ]M6+Ýv\Sбc·»ã5LáN| UÆKR˜¹¯„T€|][J ŠD·ø|Ú ô%\a4Ò]Üò 'âÞ^ÙÖUU&ÜûP•T¹}V4w²‚ýtYs_šë4vžÆÃlMOŠ4Rñ¤âjãóõšVõ Ȳ¾÷±Š²¨}»$[µ Ø5-y e/ ×ñÊ) 1kK’š”p™@»ÿÑ&ýì&@Q¥u¤únTµÅvíRF•˜Z‡ç}…ápàœÕZ®‰l±"Ê*bM—íÊb»wnòˆ¶+Ó¡»!ë6êÔ J+Hï({b%øüÀ§¿ßDq‘è ?.G˜„a2dbþ“ÉjäBÃ$s§¿aܧB_¬Ì¨{Mêµ9¡Î“~£%÷Ñ®FFKÙG¤ |°€eGmzÁWf2*Þ +p×Ô`M÷~à΃{¬ˆk)—`áC¢a‡íi~:A^àš&@t–ö»Èµ—¾%Ïä·‘¯F¤+hæ(Fœ¦KÚ¯ù êó›Öx>f´1cP›è;2òÇneD“,ˆ’ô4³T +ejÛ0ðº~m³ïe‘ +»gR×î-5´ªEÝ“ÆBþ·|2È,¤õטˆâýãÝN8¼¥V  g`½nÜ<:Ú½›,&ˆÊµTLcç!À{n®5Ãëª{AP’)׌q[5¾y(÷¤sí¤XQ-P©oXý‰@*À€Æcœ¿è•rí|J'ãÊøLiÀ<¬“F¹ú‡FJÏjÞó:ž( 8U{YÃqÒÕf('ð€¿3HÝ’»±d¤â½µÓDÐã®&Ü2ÆC7ð¥É`õ³Bá¾-’Qmk#¼ÏcÄʇN}tÔé4”WòÙ†f‹œÁÝL k·þ‰}T¢OÊrÛ™kñgJà ãžK•ß‚*¬„4.Ó÷ z,]1Ì[ˆ´œv~ðÅSnSøK³/E[‡¸*àDPPU}ìåcÍÇ=áìÈ8¦›2~Ò—…= •áà“ªÁ9FvæÁ¤]2¨:´ÇßGèù•ï#2Œ Ñ¤ÿçp ^ÂÑ7úútœðp™[®¯û×pœþîû\P3ƾói£ƒ„æ¨Áá¿Æ¬’endstream +endobj +1698 0 obj << +/Type /Page +/Contents 1699 0 R +/Resources 1697 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1679 0 R +>> endobj +1700 0 obj << +/D [1698 0 R /XYZ 91.925 602.788 null] +>> endobj +322 0 obj << +/D [1698 0 R /XYZ 91.925 584.788 null] +>> endobj +1697 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F47 596 0 R /F11 674 0 R /F7 586 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1703 0 obj << +/Length 3009 +/Filter /FlateDecode +>> +stream +xÚÍ[Yo#Ç~ׯà# cÚ}wá¹Â›oÏDZѤ%M±æ¯oÎ>ÿÆèIËZ«&o.wɼ¹øuj™b³Æ97ýùÇÍÄôÕO³FL_ÿãÛÙïo¾ûüßÿXIÏœuØ~'¤£g_¿éXÐÜ2§ÍA.•VÌ |Õ÷œ^ +6$°»P³ÖË ­Óø‹…÷g¿þÎ'XøÝgªõ“wøÌ™hÛÉÍ™R’Y°¿¯Î~>û±Ðœgr5Ækü°WœxÈnIv§™Ñzb$mPÀ«´uµÞ,ñ÷ú&ªË¸þ7Ô¸I꺜?<îêK( vlGõ¸LxU—!Ój +bQŠ‚#¡Z¦\;ãaÄø–\<W‰Öa®´cÊ•{s7bË©ð³ga+Ñ:Ì–5¬rõpSo’¥m)V$K³±'4‚8¶£¬5‘Øë[ +´»-ýû8¦) ó¢§ÙhckZ‘áiÀ¬³Ç•¹íž(ȤšžÖ( „„V¥ÏÛkK¨äv&}–Áò^8Ü-Ê0¯èv°´e¡–n£^*:QŠµÜõ\îg™5ùõÛôó¶|m¸O¯ãšWÌ9;dXò ÁùÒ@%9QÌóȬܵG‚€Â<.õÔö“A“ÄÔ«ùùb¤•° ón&Û隨é|³™Óפã‡øl}9¶ p•ël¹ï¹S [vÛ>)­¦ 6Æ…C9™ %‘¯~z5kÛéÆîb$:[s;RK&…<]ˆÁ“i…(ChØ:7âYh½¹H¶¸ß žÄëÄx楚€²±öß±Ç6ðïèO^ôKŸöÊn}©#ÜQ%.EIüßâèµ¼¾r„œ¸ˆŸççäsÏ…¨Eøv+‡€(ʽ¾sfµs]hƒÐØa¾Â';ÿ®Ïgôfúe7\ØŒ÷1;¤®™åùõœocxdKì˜Ñír^ÿ ›B6‘âíz‘pµY“Ìï* ò; U4ã2Ãþã:’­°,œðüð‘Ì^,¯¼‚Þ ÑdHÔ…nZ&÷†RX'~`Çõ)!D] ¡L«)ˆ…*¹Q­l·!±uµ™ €YÛïl™V¢} ir@d!‡©Gö˜wq?%]Η«èáéfñ¸ÝÜÖÕ&¸ ˜ýÚr¨bbxJæ§(.‘j +Z#½‰V!Ïôû¦¾&/ÿ¾â3(g|Egµ»D>/u¦’Î.×›JÔšPQDBË÷UìÐ]š¹Ü¬o¢žy")oÕ‚Ä;LÃÊ/€®À:É[9Ò ¥žäXGï…C~ŠHéNaWÂ0ŒÖUhŸ8vòZ;TIQ¤´Ì£êì×ô…ÊŽâœËÞÅ£Pˆ²Œ¤Y +mýq)2Þ»ïK)³â¥@Ò¶J|L¿¸ ð"åïj÷ÀëoœW„l qÓÞñ,5œ¥¬_­o¨ôÈ$þº,zOѺo1y2tÖPá­ÙΟ×÷ØÙ ”[Ä–ye»àÑ@×ÓîšfÇKÔ¤ßá/)ж¤×;e»Ú-Û+¢ ¯RzÀŒcãNèj­(«‰’Pã°Z %wGÌz±Þ¾]õÏïP6 7M/¶ç”—³¡±@×ãŸt.f–ªêäÞ”ñ0¦ë@H¡“uL}\WYÆ®¯ž/¦$^š +F±Hn„Â/ˆæ»ñaN‹µøpT CQˆÿ3I”Kª.?TGmx·ËgcvKûŽç!£%>žíét*ì6…©láRé$ë «žÈ.­cOrÑùzÍÑ•bÊ?ÈKÞî©pƒ,âý&ì1»jO^sp==âm/,ïiªü§6(!”=ÀnÐŽZÝß.]³UÍtÎq{áÝÝüjþ¸÷¥çó͆\t‘~ó@*¡7Ô¹mW”÷oôt½}X}˜y;­ä^Ÿ¡Çn8¡Y÷•f½ °" +]_íždÑúI‰Ó–BPÈVâ‰ÂILÚ’IjVú%ŸE= ˆûÔú„¨Ox-ëpBW†Uþ%ŠIñœ KË„ÍÓWŠh¹¤5_mQ>Á®ÿ‡¥÷>ó©!²Ã¥p M¼¯eåÅn¦‰hŸ·B¶{=¦ñ:œX:;ozËÉ?¯åú‚â¥x:f¤]¶¥°ûÌ€†^=“[Õë[ïxúâ´&Ã\w !jyQ˜RÞ¿üÆ…Ë w‘6#Íy­,’)ii?8–ª^Äxí†,%G„äõ¬eO­yžb%s”W·Ãë ”Ôÿ¼~áÅÁE%uh¦DÛmÙ™´¼`Ö–Çj Ú˜uzííñò­Ò™¢»K™NÖìlû{€}G(ÜPúõt^¢ë—Á÷¸¨Þ› +¸iÉþ)–óŸb9)ízx‰ÁS}±¼Ü{vO-º´O(wƒÊÿ¬/©¶á4œZW¶ øTÙEÓ‘F¿¿Àè+ åGBŠ\ôT )´6Ƙc…”R5m‘xîI7G%ÆíZ]WËwŽÐiÈÐõZR/ÄDUÛ,†bwBwy¼j‘KõŽ5óÅÛW«pû˜î<ïIçñl +*I]ÒÅò +–¹Ñª ‚»»B¨¤ì(å`¸aß= +ëúÐÊ.ZCjº4‡1í“nQ©¦ 5ºE‘¨áóššÉuB=Ù]¥pïÇÈáàHnçú3_?ýtàZI»x½ïVI940-EßxÒµR¢ÕÄÆ÷J¤‰Vv† Ž¿¿š9_»GÌùÇ»‹¥Êü„ŠÔ +OšŸð†iGÇŨN£ ûhÊ>-Šù^Äbê-/I+ˆóo–W[¢s¥¦èsÕ0ÖÓW«b /õô’®©ºŸóRsŠÄÓï}ÌV­o÷8o"u@éà:è 9F£_Ò#S#¡=G‰Ô!Ž` ï+8ªDxÛ"÷?’©,)Nî4TÒýftë-Lhéz:#Ç’F沆®ÍkŠ–¨õ#ºà6£´ U>6aîP8ø¹šæ®Ö_«¸š;I4:a^Gƒí:.$ZMAlĸ0& –œ' -ÐO=S‘Ôaž,ÐÛºO•‰:Jö™T•hfË£’æ;ªº'ó²Ñ®TaR2è›ë%%aÃi&¢^‡ãËðð<\B@Ô4‹´2ž™âÃÃýv¾I÷NF„zñ2 `;]ÞâY“oþ/&ö(­‰‡‘0ê,KÙòö*~ ;Ї¯âþ4ßôvžÞ-ÎgÒM¯‰òò~›K Ê{’O_'b$•´rz±xX^ÝÒ°Eøí:>}‹?nºˆ_ÝÍâŽfÞnˆØ" #†T›†óUŠ˜¤¡þ7‹3òNëŠhÖ2-ý“'‘j +Z»Èãhò¹Û¬îšž†žÍ³p”HâÈö¨Kä–о˜¾»Î¶»¥ɯèMÐþ6¢»l¬ô«õe\¼¼í|ߺ1¤¸h™þ®ºª“¾=^Ã-C4”¡#éþÜê½å +Ð*O×ØXδF*+RÂ1š©TÚ/3•¼"i¨¢É•Qñ;BK'‹½ ™Õâ!Þ“†T˹KNkS»FåEÒŒà “éTw¢¾F•-UnkíÈ\¨hrÜY}ŠrZš8«ºS$Õ´‚n\ÏQ·:såÊF¿Ô´ç&dÓÏø’ÊÑúPÛ 2øÍ«ôjºY‡»õ%]Ö„ïÙ;Æ,7‹´.ÃúpàÃ8,)ž|Hk‚“zYÕ,N\Ù>­ ”š‚Ô¨6B¡Ïñó¼dgT4 +#²=&âË%ƒy@ÿ€…¦2éoŒRŸG2ÝôYB_…¥í‚`,RP¢¨Èèn“ÿ^¾ü¨ý]¸endstream +endobj +1702 0 obj << +/Type /Page +/Contents 1703 0 R +/Resources 1701 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1705 0 R +>> endobj +1704 0 obj << +/D [1702 0 R /XYZ 63.034 602.788 null] +>> endobj +879 0 obj << +/D [1702 0 R /XYZ 210.387 209.626 null] +>> endobj +1701 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F20 1030 0 R /F64 1214 0 R /F23 1211 0 R /F26 1460 0 R /F48 601 0 R /F10 1027 0 R /F7 586 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1708 0 obj << +/Length 2280 +/Filter /FlateDecode +>> +stream +xÚ­Ym“ÓFþ¾¿Â—O2YšWI÷’*Ã…„TàlŠKGimy­:ÙòJrøõ×=ÝcK¶²p)ŠªÝyiõ<ÝýtOÏ"'1ü““LŠLÙ‰‹•HÒt²Ø\Ä“ØùáB²ÄŒEf=™GWŸ¤“LdNO®V§Z®–o"©Ò黫Ÿ>±æ('c)’5£Èãç/®¾ŸÊèåt¦µ‰œ˜Î’$‰žýúó4ÕÑÕÓ°÷óÓÇÓ™ŒæÓÔDW8zú/X}N_ÌŸÿ:zk¿ü:ùôùxêÅ÷WüF[á´»×Ä ó6ÚĈT9oÀÛXšNnWHRå¸ÐäS•FÊÄÆÂdr¢„•ä™ÿ_¤<êž)‘Å¡×$Ô;_a³àº»²ªè¼5WWKšt8+p¬¢%nì¯ágÅ+;DVOg 7÷‹®¥| ÓƒŠ‚Þ¨b?ëÞþ™}JkaŒù¬©MúþûÜ@Ñú ijf:¶àP$!ÖzÑ`´‰ôí~Š8 ?N9c‰:^Õþf²1YU}¤IÞ‘‚MÝv ?ž8‘%ÆC³©ÐY:Ñ@å}úâ4zqÊ6å¬0rbI¦‘G·oÞÅ“%Øk¹ƒq,d–M6ø4ãYuñêâ—#)YÕ¬§Ës²L9–Î#ê̤…Ü€¬²‘ÿ1ÿí &°R+ ßY!ú“ð+Ô†Æ|òæ±`’ +¬ð–A¥É ¡û9v…UAe.ªYÕ;š¢ *³QÛy¨;šiÚ„ÆÓiòÉ üBTvx<š:Ë£jY†·¼sø(I1#]T i½]7ÃMS}Àâ—7è‰í ÅrÄäƒI¾†g£W]B ŠŒ€U‰c-êͽLâ- P…ݶWŒp f®Ô±©Ë|àóº+H|]““¼<ó×)¤@XúHKD²¶¼Ùz"£yñh½ÔÖMáG^íÊÊ-žä‰Eí@ )T>—|…”ƒÍäqæ$of¡¤*5Úœ5K‚T‘§8õI¿YhGŒš¢1(rßù8Ø ð5YqrgZ¸$ø͇ÎÄGÿ9~¥aô+ë²¥oú azί· WÛ:Ĭ³£À®¡,\¢¿¡;Ö±BÒã ÈèØu8¯b}X$çy|šâCIàb‚¢5”e®+˜ï'©äÚRåPÖFÊÕÅùª þE|I¯SIÔXRz™£ÓdtyÒàÀg»PLÒSG$¡%«›p쒖ݾgŒÒ8Ïçìަ̟³?nÊLz– zÜ_]ÿÌk+}J7–áŒî÷Æ{)²“Ú°ÒÓ9 ­¯‰7ùñôÌ3Â×Ö¼Y†‹ ["™FO1²™ì] DÅ,ÜÛ–OôÕ “ž–Ȩº[ÓŽ¿ÀÈ&ïÊš +Ëù Æκ6ß„ËHj Ó¦ðµÊ@°Xš¨ø@uŸ+[MA”J ÅAüÿ;ë~-IŒ¹±4^¦üÀBƒ·‹€×Áä(ô66ñXK|3I ïI¾¤û³ ûoáLá·ì'l#ÿ\{Þ +eÍg€“2+{΋/†yÍñn÷ø'Õqg'”1<¼†YqV:ª[‡÷ŒÖÇÌÑfPh +n©Jß„AU9µ[‚Ÿ­ œ9‡VÁ .ÅFBà¨Ç~RÒ»ŠDÝQT&лrüÿ +L†ëõz{Ú}K•o9£4øÝ}É+!qv¼ùºf=e¾ù Ò±ˆa!È ºUN/0c!È_ 뺘IE,‡ÀÚ3T=Ö_뺕…+Ì¥T›Ý,|{©¯ƒŠTÝ*‘"NíÐU·þJþö;—: é„Qý¿zœýõƒ%gGQ:<=Îü` <¢v(ç˜ô¯&øúLlôð´sÊÍüZa¸ß¹ã>ý,…,–ð0º›v½&ê«p~ûº¨7×9 7ÞNP –4¿[Mq&^í7[V‚Eh° }ÖZº1H*BÊ›#€ÝÞ7«Þú² æ{­þ98Dm°¿ÆGµü3ƒÉâ1rcŸ:¤X­ŠE74nüÒc¹ácé×ïEó‘C…O +VPn·ø`ÅaUã=Oêóq·¨!žŸâC±8zå.üµå &e5ú>:(3<äµ¢ßM±ƒ²^l»SÔû.ôž½°ŸoÕ듯¼áb€½ž›3ö ¨fõZòuKÔwõݵɗ âºXäû¶ƒ6zv2<ûÄÔ@¯3¦¯jïŸ Í¾aȬäÑ`¦¾9’’¿~ÀØå 3mYã|M‡ø¶5°-䨃åƒTà–Wö[ÿìÒ|{Èòr±z󦮗£`NÊÊÀ×ÎÌ®ËP¹ÖåŠ|èŽ>l«úî/cju|;ôIÆ>ÊÛ`y͵a^ÝÔMÙ­9ðÆ@ã¡Þ¤v;üKè0ž?ÎV«{!²íáX2jÃ%½ÜŽæ¼¶¼¥þ}û~³{ßÞ2ÏßO`Ž_ö9”£A—ÌõóíkøLŽå¸ãÊŽW“‚¾n/j¹V¼ß»ºf,0T„yâÙD£ºZBð/ïö>.˜PYxT~¸ tÿÛ(È”5‚ewuª‹zóìÅû×ó—/翽»$.½î-«ÊÆVMÌ„;v‘W‹}åß}T½?ä94Êþ"܇›àPôòªª‡/ÃíÑ·û² ¼<¡E@!ÅŽ¯°ŽÙwèºQ{Œâoþí}ô|;:•ã +uˆãêH¸ëÙwÞ,Zùû ¢YCI ;= Q¿•âî'³Ð¤ecÿ¤‰ÄYoóv9|×endstream +endobj +1707 0 obj << +/Type /Page +/Contents 1708 0 R +/Resources 1706 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1705 0 R +>> endobj +1709 0 obj << +/D [1707 0 R /XYZ 91.925 602.788 null] +>> endobj +1706 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F11 674 0 R /F10 1027 0 R /F7 586 0 R /F14 1012 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1712 0 obj << +/Length 1162 +/Filter /FlateDecode +>> +stream +xÚµWÛnã6}ÏW¸Oµ“HÖ•”°m-Ð]l‹¦—uÛ `,Ê&`‰^]âx¿¾¤9¤D™Îö¥ŒÐäpæÌÌ™:œâ/œ¡Øâd†‚ÈÇY6[WWÁl#NÞ_… áˆ7’ùquµ|—&³ÜÏQ<[•S5«âÓù±¿ð0Æóüµçoÿ\xáüÃÝûÅÃêçå»l¸G™Öä½0Ê¥ÄÕO+! “ôU”Zæf6Ë„%4‚™âÄÏ"t2$É‹Nç¬\xi”Îÿ Ò@~ÚªïÕ¿jÿ¸iøazºU뚤k}K ±Ê:ønþúûão¿¼ýûtpr>ÍLQ*–AÞ— 0íi / ü\\U°Ó…—`¡¼¡]ßÔÊ€üF*Êlatn7Á~€c0»q˜[>Wc‰‹—€­(sâÌ^„„#ËkåÐÚpµêhµW«§¾,i3¤aÍw}U·2:ÂS½i r¦ÁÔÞñŽ‚Ú-éôŠ6°Iô¢;€õ§S‚¥ÝV: +çY½±ösOVot>÷L’Ç$´õ÷öˆÔ…Z°ºÖ{û†ýú„ ðk’€d$²¬yµï;ãq¨3†  Þ?íŒ8ë†tm|G:öLwGõ¾ìiÝŠ gXb ‡Twþ=mJÞTPn×׳JÕ(2Å{ä=€äõ·€jKžu>ùPœ®ðI]ð’ ¼!]¡vBN'jÒ ¸˜d­»1™ ©V[ªäè„’ÚP¾J‚5ÃOTEª™Ó¨úÖäPãƒÄ¶ZmÛQÒ¼tBB6¤S~\rXË-ÇÔ~E«–Žu Á †~+{­úF[öåm>jâ¢axcz²³3¦ù%«Xû?¬¢À¹NºßÀÅ'=œI—@Tâ ™¸FYíw¬<^¾|gJjÇEí9úŠ.ð®êwê×¢Ú¹¦ÚÑjŸ¢:[S”ºÅ–¢„¤)Z»<ŒÞ»ï Vü*›P±}cÈ {±&zðŒÃöwJböonÜC;D¹Ÿ è•¡­%lT)¼5–VÛ¥ߧýE¦VÔ³ËMQ{IÈ´¸N±9½8öè3mŽçf6A(l":Û$Êls&ôzš¦cë~G­KnÅ^ëAÁÍX=lÙz ,£¤nGÐ]ÖsÛúhžkð5×¥¬ë¸ãaÔÝQÇž®YkXMŠ‚8î0ŽÛ8«õè2I½>=è)Ñ£“Ô8Ôj–®"ÄÐGèÒœ½ÑT}°¨­±£nD<™ÔŠ½¸û0ÌÁëW.Œ„} ÇÎÝä+¯Íò?¾6ñðÆÝ°ÖS@,ØF¿9ºjÿr«’w-ÖG7PtI“tñxヒw™áì‚Iç ç lèû£™®ªåѲӻò¸›\€2+ý&uNhYèbWM ‘#í¤”¶ÙNСKèâÝñEßqs†­ËÓ3Kœ»é¾©¼¡Ï /ʶãæ‘/ËBËŠç²höLRîÂïÈ<õã(wý“ØÇ¡ü6:ü´ÖÌendstream +endobj +1711 0 obj << +/Type /Page +/Contents 1712 0 R +/Resources 1710 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1705 0 R +>> endobj +1713 0 obj << +/D [1711 0 R /XYZ 63.034 602.788 null] +>> endobj +1710 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1716 0 obj << +/Length 1095 +/Filter /FlateDecode +>> +stream +xÚ­Wms›8þž_áOwŒxgrÍŒû–óµÉåZ:ùËx°636P¶Û_’Ya²óåÆãA¬VvŸ]í +42褦3r S÷|´Ü^£¹»B ¡ŠÖÑy^M>ù£@\k&}”0~Ve¨/á_“OŽ}ÒCÒ=!3•÷NÃ*R¾ªšeÙŠ««šçyÊý÷/ªo)áì‘Î}™½W5¤LUßVB6šýM¥ÍŠéÃ6°”oTöÏ÷é×ÙÃÛõêcØÚo[ŽîZîE¹ÎÀGÇùÔx·ã¤ãÙºoºG ßU5Û3eþ¤j}¾mð6nÿŽ‘‘ðê*ˆª f:5HC†8ìàI¥>ì;¹¼,ä$ëeU6o׌³‰#Œ$'; +Žô̦66b† +šÀ¶Ÿû93w üÁ‰A!JáO@¡C±Æ5CCÕ\Ÿù2ƒ!ã·'“Ù[Ì÷̦œÄlïj[Ž6púº wMÁ\)ûÄ ÇÕmŸ;±’8 +"9²=Ýð¬ @  YC ËÓ]ú~ €l©ÃŽª™n'±J\ÕE3ŒqY¡Ò„ +\X›oâºÄ4”lžH í–Êb9Ë,%!3¼?¿Ð—JƒžY¾oË|[ÔwÒUJOÉ4á,Dm¿–΢v¶9뀷Žv0ªrØ!¯.[ãæ¨O*]oË7Í0Šc~ªO‹e–˜¢%9õíè‚’Ñ*â<,#BR å"ÊbNU¶Ã¤’nk‰ÛrwË4[qw ‚—i™æ™. @o0lŽ0‘n༒ãÉk9ÎhFZ®ç(¯Ò²%‡€cð!™i `¬,n¤¶xR©À<ź¡NRÂÊ.ÚÔøMxJÏRL† e;"òˆ³šm-õëh“@ìá¹_GU» Tè’¹·Îë Äv!ÅFÇ–!pùéÙx‹pG“J¤t"S*µ›†b!œ~ZââF–CȆ5bû:ËÛ~uz«)Œ“c]…³M‹^ ld_jZ !ºäô:t“!“ölgøŠ™)|”ÓÏoOÏéaÀÿIÔàz8iR£þ¥¢ +Ȩ¤éµûˆÄ°Ï É·½ì¦E`—æuÙ©·/} †>žu‘E›J™!\ bz··gÛ~3ñav7 çïf!» ÓJQ«²ÊIÿt/kBpV5Ç¿SqÚ~Tuë€ä´Ì~—`Ó<*´U Ã8¦]S¦iqÍ‰ì ™6xÁjà‚ß­:W+^)9i.§]Nùo¯0~ÿ8¿Ÿ~û|™oçÿ¹)!ÓíÕhz•é‘½‰„B­¯,ôë"ç)wZpš\ +Tóü…I.uÉ«vµæ+ø“àuJøͧ> endobj +1717 0 obj << +/D [1715 0 R /XYZ 91.925 602.788 null] +>> endobj +1714 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1720 0 obj << +/Length 2415 +/Filter /FlateDecode +>> +stream +xÚµi“Û¶õ»…>u(Û‚‰ƒÙ4í8&“:iÒz3™ŒíÉp%îŠSŠ”IÉ»Ûþù¾<$AZ{ìŽÇ xxxÞ%9‹áŸœY-bmf6VÂ¥él¹yÏnaç»'ÒC,<ÈbóÍÕ“ß&f–‰ÌêÙÕÍ1š«Õ›È +-æ ç\ôúŸ¿Ìeôò_󅌾ÿÇwówWñm:Ö*Î:¸ ÏI-âÉß®Ll…3ÉE*{˜S2ÓY +7Ù ™‰3"U–¯Sé|aTGOç‹D%Q¹óã ×<4my[ÖyU=ð÷:_áÄF9È«}ÁÓÜc¸^üyµ}£žæbß«wÈк±È’Ì_žõ—¿mëx¾ÐÖ%ÑÓÝf{ýìãýš‡·qo¶¿¯€®Ìå¸úëü[£¼‹;¼{Ü^ð ßñø‡ñGw×´ðþýÇ—¯_áþÿ*H¤ ®*Oú /×eUä­—]y»æßy OnùïÖEë{7Ìòú!¬–3rÔž˜›¦9þÊ+úžÇ?yŒÕ +D6ì={FÒ ›tƒ)I› c•7Ú0±µEqH‰…;Öh–orz»q"vÚ_~¸Ü0¢Ô#²§ˆ´öÏ#ò‡¹ ð”6ÀŠ–U¾ÙŽ’¾>o<™?Ô»}[V÷Ó«—¿˜ø” ðÊIcâ_R •e0Â’Võ_0­£_ç©ŽZðNå®ÀuͦÀ‡³[ãj}Ëp+ø åbË y½âI ;u‡­Òhw_ûŠw*ðþTûœ—®ðºf#˜DãfRg iDfÀÍ*'˜U §…æ? )A.?ϵŠX©j6xyŽ×iƒóW:^xý~Ÿ·ÈÁ±¸­{ELI³VØ´;õ mN$®ß…,DÚ8’ŒkƒÖ¾¯È›o+üKÏ$§…¦î +*ö6– Yñ'dk)kÀZž¼»‘qŸ†´E5\†3΢cÙážæH ":/G™»9æmÁ!ø(x‚ƒP>èo NÇÁm|„~EaÅ… +Þ_çc0ž#©>°<–(vAs5ƒÖ>óùߎÛÌ9K|5ÙÄÝ姈 ßJ† ò,p>:íÆuÀg½-lÛ>‹ê +~8*#gœ9NÒ +ž_Ê5`û4×€EÄ^ hS +È}²‘Y~|•xM7ïéy\{+bƒKáÔ§DÆ–A)‡‰’…ËapC?p~y*‹žíu@9Î|´GüÝš=" î BpÑÉ`Oÿwc ÆLgÇÙÙx“bXAÎŒ1r0œ膗Pᨶ);Œ¦‚Ⱥ7e^y=ú|,@%ì¡ç~•³_¢kðtÆÅ>ÁÀBM }¯³—õcFë Gmˆ†Z.ú[Jlˆ¬ ö» ðéï!‹Íup–´yWŒ¤çÕaXA6«ÏÜùÒá(-Þï{ç,Nuž*È^ þ+-2õ9–ü)^J¹4襜Ci›ŸØg¨ Dx3µ­)õ;×sÀ‚Ôœ`™Ð‹aXO‘ôqáI +»ç*ŽCÄ$@ïb€úhŽŽh1!ZŽˆ9òÍnšÆ*’š¹ÀðÈOzÌóÇšA~z&·6½á4È #Éã¹î)§Ç斞؞Œ@c!š¹‰Þî©X»óÑ2ÀÇc +™6O¡h!»PJÁ{È‚ÍÓf1¢æé´K{„§Wœ®—_¨g{éÚ¡g{áZÒqéLÅÀ¨äFÖ/>ÔS”6ѲjºÞµA- 9b7I—}8‡”u=„þýØ4Øk@G ÌZØCÈ–ƒß2¦I´Ì«å¾š7Ô–¹™€¶Å¸¯3ñ¡kL«›ÅŽüghW¨1×åÛÿp²VÄ©|ı]*Ò¼_Až’¡ÒÇÜÀåB4;‚PÇÌ@`9›m¨XžîP Hwñ½CV™dÙÅo{ðæ1¹¹)K˜h½ìXqeÍãù)ûÇ•¾¤Â +&PR=÷í j9ú"F:),8–ƒ"ûrԬľœ2é˜3àÇå•É¢|KåB÷5 †µÜ·}Ÿ ‰ø€Ò¾„l<ÖÞð)•œ[|8;Þ$¥â䮬*¿´DTë²èQ5YÞ=l¶»fÇ"˜fìB[Ä]×ÓÖëØUôÚæ&`­ü‡WîOøšhû©ñµ>íá@Ê›’0±À°í›;‚ø—¹IdÃîí´ùu`±6CçmsAÒó„ 6 ›Þ}‘Ë;¿Q{yϪMß“ÆO’ÿ7Op±A9·ì6ÑFnÐã˜~t¡.5…éØÉ­ õ¶äå]¹ñT#ÁÈ•/ýœRP\ìÆT·õU/cåŽÁ9ÿxÔèû¿Æ¦Ü:µˆº"ç:˜HbÝá|YÿÃÔÍΗz~}ßÇ9p|ôVñïÁ[å““—HÖyš'ÓS!âvE¾ú ˜ +Ž¡E,S–Ü͹–„eÇ9=ŽØ&nქÇMm¿tÓbKRÇþ€Þg…‚æE_Á¼Eê€ð|Ò_Á&±—þž²<Ó3 +RÚõ?×)EÅ}ÙaùƒóðWûž0üò„ѽD(PA=Š?4àþݺdgŸƒ'|l€8<÷l[ £ݳ‡óœAÿÚp5”'+þwá,ZSm´pÔ œlþvóendstream +endobj +1719 0 obj << +/Type /Page +/Contents 1720 0 R +/Resources 1718 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1705 0 R +>> endobj +1721 0 obj << +/D [1719 0 R /XYZ 63.034 602.788 null] +>> endobj +326 0 obj << +/D [1719 0 R /XYZ 63.034 407.5 null] +>> endobj +330 0 obj << +/D [1719 0 R /XYZ 63.034 313.385 null] +>> endobj +1722 0 obj << +/D [1719 0 R /XYZ 145.529 234.115 null] +>> endobj +1718 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R /F47 596 0 R /F11 674 0 R /F10 1027 0 R /F7 586 0 R /F1 1058 0 R /F14 1012 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1725 0 obj << +/Length 955 +/Filter /FlateDecode +>> +stream +xÚUÉnÛ0½û+t¤€ˆEj;ôà:KÝ4iš*@¶ÙVl²•h©Û¿ï,”—8( +&5ó8œy|*LJŸrR%Ó t"?q’8óõÈw–à¹)‹ð,Ä;À¼ÏFçW‰“Ê4ÒNöô:J¶ø.”ÜŸÙÇó«ÐìqÊW2Ž12B&Æ÷Ù¥«ÄƒëimD$]/ŽcqûøÉM´È¦÷àû4¸žc71"ÃÙô3XïxÅøî'Z|Û—ÇñÃôîw]f»üe¤£–8`þ£Æ062 "*`–·ÅÂõŒ EûÒC +ySn`X²-ǹõç8q“7yÖ+Á³œý3\MVŽhòæ¢Â°Y²}M ÿ1q–Š ««í¶•µÕnˆ_øG+rå $ (ð†TU°*šbƒèø |4Ò8„Ä9ÕÒö”9[8µnHV/ÎЈnX3êîê¾Òl|&lMEîÙâ¨ÄnPbÆÕö¬º\I,ÍW(ºaWñ;_?WÅÙQa|Z5Ö`RH÷¡éøõcWsqÃñíž1Ï`m¸œ9q׶´¸¶%ÔJ"Wê@ä±–:I­È¡LØC-I"cÀ;ˆåaoKìD2 Å eÆŽ–‘â‚ä$P"ýî1Hx¨AÁYžr2ç1p„§D8‰p$¨©{+]üTALlzÁí Ô² £(»VF™s„˜Ô›¶\p:(ûjÁoçþ8Á7¼c…uÚ›³œʱªw:ßÝjðé ½i˜ŸGœR6¹êJ¾Tsà¦ÞT_=Øö¡MC©ƒô­çZ-c…_οÝûTendstream +endobj +1724 0 obj << +/Type /Page +/Contents 1725 0 R +/Resources 1723 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1705 0 R +>> endobj +1726 0 obj << +/D [1724 0 R /XYZ 91.925 602.788 null] +>> endobj +1723 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F11 674 0 R /F7 586 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1729 0 obj << +/Length 2780 +/Filter /FlateDecode +>> +stream +xÚÍZYs7~ׯàã°Öƒà>\å;§’Tv7±öa+Îؤ¤Yó9ddç×o7Ž!†3<,ʉKUG£ÑøúÀFþØH B…iʉ±v4Y\ÑÑ-´|Åb2v)³>¯®¯¾y­äȧÅèúfŸÌõô·BAÆ¥1¦xóËƬxùë¸dÅÿü~üûõß¼¶»Á‚[b´Ùp{\}wݲ ©&Fª£\ +)ˆaP`ƒí†Pc QibyÞa¿£$:`?É}ÇW¿ýNGSèøã%ÂÙÑ”)aÎW‚9¢œˆ¿çWo®~Ùñd¡ÐV*+aàNpzdaí×n06RÈœ_ÿË9ëvµ®7ð½[i)³"UQZ‹û}a1IAX¶¥yz „Ù H´ÊŒXXBÆÉ;Á:‹x?Öº¨ÖÕ÷¼…l±ð®ê1kA|Ü< ³‘Öqf@¨Ëkóø[G9ë|]„iåLúûP2®ˆ¥ +”8ˆý°Ä…Þûånú4qÛÑ,¥ÒC[È¥Ö”V §…KÒê€P"©rG«‡AÆѠͱ ²VƒH–cnÓ4íÈ…×P ÈEs¢A³s±ük» r‰øPÝ•s>ŸæRó»8ÜåÍŠÚØü–J:À0#Æè.ÃœŽqÆz… ñ‘€½ Ìòýýˆz¬#Œ©§2 +;j‡¬‚àDZ¬bËKoê +­Dýçl †›;_ÅÍ +ëç«1wÅJÜoämhÄ3¬\@á~\BŸÕºBðÂ2Öï-žGÚ¸¹‰V™ë-žK°½Fu–_/qE›æyw9#Ü%|ìÃKÎel¦ÏÐA îøx‘|Óñ‰þº ¸·ÃÛéOŒç²? ’hz®ðÖªåt`Þž)ÄGqÑŽöü=¥€’Ž‘áIGnÞ+šOáÇ*VFUá)ÔMÒ$øWm°fµlâˆeø6›Ù}(±0ò¦ªçI•¦¡j=Ûl×Ë·T%Ë  +œV2ú?ÿ{_ÁØ'ÁÀ¼’?ËÜ[~À¸$ZeFÌ+XÎ@Ï&T;¡gë;\ÍÏ úZÖÚW•äÏ•Ük(pÂ$óÍoîç^¦{FÉÛ 0ýq{¼Ü9ÆÞ‚30{¾%ãÆ)3/ú£1üiPø–2=…Øy +ŽežâUK„ÁhûücˆMÀÄg¨, \8XyD{ˆ¯ôt\'}}Õ÷•r·žÛûÊ’[•œj‡Ä)& ºzŽ\3›¾0O Ò4#ïϘËtÒ^°ñÁ8GÁnòÔÂγr9"¹3bu xNÉPt•+ïB‡¬!Dèìb$A#2$¡öÕ64W0U‚nÇGҠ檋ìL¢UfÄzv†Yݘl'ôl­ÆJ™u‚ *ˆ†.OÁ[¢u”7)¥Lä¼ñé@S‹Ìú%uTÞÒØã§.„-;¶ç©+@óÅ0êЩԹ#¨› )CÎ×QVF"$š™‘ÔšPv#­2#ÖG¢¶h>SäjÞÜ m7 Bªþ~¤,H®éX°¿ßVóÉvîÆý(|s·žÅ"$—àí¶>ÊÆÒ¬ þ“v"ý4&ï‘!Õåó¼ º9²·—sí£Œ÷ìߨÉÃPSΧ#Ràɹ j‘V™€†l;a8a:^€™¤ìAÍïÐÝ3ó4–å±÷—F{: †<%aS‚JÚS‚:_™/½Tyx<ÝØJ-vR4q(<@I3ÊáèSú~îB£h•±M1°ÁªÐkÊöÝ€¦€ŠS>`”1Þ馀îoGÀ©#€Ç]2Ÿìr ;‚MùvµÀÓ4Ÿ†fy­ð‡8õt:ÏšfëE×ëuâ‰PâÔyÄ_ä8í× 9µC Xg‘çéì>æÜÑçjdÓ×!·‚(J€žHqa”i•±xgªÛ Ø 1}"¶"­ãl9°€¼ËV5³b(~Sþª¯ƒ3vKÁØ…àÿ⦂?ÖYèÏ°ux­©¨í†¶{¶“‰e5Qîý:æ½Û vÙ–]*¡ÍW.ÛJýèœÝúÕå1«õé$bD˜ õH«Ìˆ xbp/¨ø±ÏgçG ÆƲ.ù{íî ‚ÌùEEP}Æé#=Œ?Þ‡(p%öÎÿ:Çm’Õ š™üú•õ?þ„9²?®ô +ž;uJ~.-ÝW& vÑíPò&,Éž§Õñàÿ×#—$Ò„[Ãw$øÆÀ‚๠Ë.Lã#­2#Ö7‰ØvB‰ýÓ˱±Å.I@­”Ø¿$¸BæðÕ‚]v…¬‘xÎ é“| ä| ¼o±:Ö®0{t“ú¤.Èùëúv‹Uèö…(4aò9l”ÅËyö"å€Û‚P¬¿e“žÚ#gÝ3ÜHëØ +¸AEò¼«ðîIVôÞ›ê`:ó$<&ZÇx +å2ÉNƒ:lAbdz¥ m*לpÜwˆÓ„9úR‹KP{µ‹¦eÆ‘1ÞWpf‰‰×v/çx2 Œ™£¸‚›,ŒM¡ú4þŒ;¸=›ZeF¬Ç/S§ÃïÇZ†]Æ‹©þ«"¼0‚? “‰ÖQ&9Eç:Lâ6³ôž%ï‹l’­¸¾ÃËѤ-hQy%'ùCŒ=ÁÝÀ`+g±›Ïô±µÁV|¼´­Ö±ju°Ö… +§BDW-±lñòÇDŸÂØŽ5 `Õ{e2ο1 ­Û¦^â.’Ä“ï,H.ŠŸPï2 f“17ÅŽ©?lÓí9>¤¥Ð„~(´@µ§¸•©ñ|äÇ¡d?…ʦ^Ôój–¶Y…å°4*‚_}¸àN,rks+¬ÑÅ»ªI×ùøsÌ"—óMšדjSãƒlíî·¦x@~}›ß¬òä>B'¿‡³ûø¶ 4zfðq\ø1Ëjñæ`—Q¥½»Ã „ùMÙ¤7=zªÑ£\üUpë_3n›`Æa,´'áá€w0_äp¶ Ö3?² +ÜNCeX–ZÖüxÏý07"¢rëE0Ò„­ÆUA°éü=6(5WQp uÅÚ'õõÇðëÞó¸ªã+4_wƒ"\‡róPýýë&¨@”ø†ÄÔ¿8C¹}J$¡\MÚwP5ûXM6©=óÑ -Þx›öÈ£J< ƒdøà;#_Pá3ií` —ÓÞ (ðß*t¾«æðMø½žµ¶²^çow`^4e·}cˆÉ°lßÙ¾êYC|iãÚM|•$$éZÝÖî(ãÍV5E„sS2„šP* Má®»Ïa“¢ä¡NáJM»R¤’ô`^ÚúºzÛ6³ûX¥ÃÇ é˜ø{= °†w³u¶®ér0P›Ð1؃E/ØŽqS#¹¡H)=§yãÿ¾¦¶endstream +endobj +1728 0 obj << +/Type /Page +/Contents 1729 0 R +/Resources 1727 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1731 0 R +>> endobj +1730 0 obj << +/D [1728 0 R /XYZ 63.034 602.788 null] +>> endobj +880 0 obj << +/D [1728 0 R /XYZ 200.847 259.746 null] +>> endobj +1727 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F20 1030 0 R /F64 1214 0 R /F23 1211 0 R /F48 601 0 R /F11 674 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1734 0 obj << +/Length 2967 +/Filter /FlateDecode +>> +stream +xÚ­ksÛ6ò»…æ>Qmˆ‚DÚ|pÚ¤M¯IÓÖ¹™¦“¡%:âDe’Nœûõ·€"-Jqrψ °Ø]ì.öEËYræ¤p*ÙD‰,Ïg‹ÍY2{ +?I{xóäâìá³|愳zvquËÅòïHj3ÿçâ—‡ÏR³‡“‰Y†˜䇟Ï_]<Ëèy¬µ‰¬˜ÇY–E/þúužëèâù+XûõùóXFçóÜD8zþ̾äç/ÄŽþ„¹ßÿ:ÿãùËŸêÙÓ‹ž£Saµ=yÄsêŒ2±"·n–fFäÊÒ ž|òy•ÈØ-ð°+¶ð»¬ð÷-¯½NÒ„%!å›Í…ɬÄ-¯ˆ;ÎøUéwä˜ éR¿ü:I&ðóà>è`ГÈfV¸Ì D.òÔ\’8‚R8Œ0 xò`›DFݪç¸^Œp¹œiaez„—\h º)¶ËC&$Œdv?¡| &º²Ù´h.ƒ€gÂÃ(ynS-—ð¶.ÙN–U[ìvóXeQY4ý,VI&²Y,á~¥)b(:Ø#mTµ‡§ÔR¨ô´¨õIQ«“§´pJ9<å·SÆgå×óÐø8Ø߀|’‡é¨Ež™/½€à +Œþļ¯ NÜ¿SŠÈ„BµyŒ¶“OILfB§nÏ®ëp/ØpYZ:¢3–{ó[W¤â˜6 bR‚k5h¾JHËœþZvÚÏ…Mƒ]î¦.T¸OM¹kÕ–~AÿmÁHCy ÒhQ·àÀSãmÁ×–³öp|%Í¢"šñ]ôsSÑ]A—ö†y=ž6ÄJì!EÏ¢ñ, oª9¸Yp/CýönľÀ¢jƒNj¯f¾‚¨3«EÑUõÈê iR¦Wº·Hoì-Ï"g´Zmʃp¡øàl¹Ó©„-Æ 6 ° Ù$UXð⃽cŽ‰7ŠC— µPIHg'2ŸLsàÙT8×$½wÀÞH€œÎM\lnøüöxââ¬ºß 1{Xh(ȼŒÒ3ÈëE +™ Ô×gÿ“Ì–Ppür–€»Ïg`œ€¼ÝlsfP(ο®Ïþ<û}_‘dñÛÝŠD'R©fÆfÂŒóôatV™HÀò-E/f^™ %€Ì~BÅÙqew ¦j'”4²<]Kiö쎪5™’¥¨²Ä ÉjÍÃÄ »²¹‹'˜HaJw¡¼[­À^á\eÃá|WÉq(úD‰Ù‘<áÌmŸ>>Ô–‡ +wÊ)½Ïƒ‡RÓ|ÙO«Ñ·|Òà23eïU¼ÇE²°ÓS3Py•êɼ?¦A[Ç+A¶~4P8Úë…k¹3 Ÿ‰plpX‰ŒBCź­ÊßîVT­}^0/ïDqšnW”&­}–°"KqW+2¥ƒ Ø¢ËG¶|`Ó6ß•»JaѦ•Qt‘É@=0ùΑoìq@Ö›šO› +Ô?ÎqW<@vȳR+rVeGm«¸½­| —J©8rŽœ<ý_ÁGƒÏ=IA|N’èû yçäÐ÷×óPèÎôi÷•¹¡&Þ´ÌÕI‘;¬²Oˆ<ƒº6?¹ý‘gî®ÌÁ “ <^J·Òºlo¬#ÁH+Ð<MqŸ@}ÂoTñ×`zjÀ­ÒG£©ña´ý[å¹²/¦#Á|Ñ×ÿýa>™Ð2—šöýÁ¸¾‚ƒm—` õü|ËŠ-P“*ç"ŒÜÌ>8~ª€%°dtïû2 ©ŽÀãŠÈDS)8+vÍ*q“N™ ¯×÷ÞšIŒU~êúSØÄç„øÖbÄãꃣ÷ü4ö1M¨‚ƒ×ÅMWs¥‹“;ª”k®d0qa qÕ7ÔŸ`9KDoˆY'¢c—D +‚q®,Õ÷„Ÿ©s‡´Û}ì«Ré3%nXÐ0àXÄÞ@PÏœu':ŽÅkjöc“!4Œº²á©®æ'ó°Áb念¾®Š°r]ùñ¦¢j–[¾r\èlßVÑk©Íºî{6Û5ØhÂ|à_l͇A‹cº_q¼LUN‘„”Ó|`êÒ´]Áê­ +Êa>z€ÌPÏç0™LÁ1erà±íävÃ(Ùw´ˆfW(q|©w¡‡ÂcŽI/à-ÀjÈÇŠÏPøYßK žX½þûT†­ký¥HEBõ>ä‘»šgwéÚî¡%”]¡£ðì(µÑåA–P~)熂NßÃO(‘Ù#A8 Š÷¸ÈMŒxÒ‰H°sÌ ¬_É©ÿˆ-N]ÅW`Ë£:É–± }=dëÝ<snŠ®½¹,sØ”Œâk°çQdÒà r–{í5™– ßq‡»ÜRÑä9Ó“ ¶°L=ßS÷_O5Ù¥ío*øÇÔùÙ ˜‚ô&zøÍ–×oë¦êV/ß›ÎóW6%l¢¨Æ»›-ö}iXósW6p +’ZÒäÓ«÷wÅ,& è@àáä²ñ6TmÇÉýzê×YÄ^¼íµ—*6Q`7û §(ôzñKiXº —N|€÷þ.¨\¨>7ó_M†w%öcDp-”P'…ß&ž§[é]?P˜ûÛdu+¿›d3÷Ø 5žø=eÓLoqS³:ñÛaÛè¾xõæÅÓßÝu3Þ/È ªÉ\Hf +[4ŸtRC¨Ê¤Ÿáÿ;0B+¹ÿß•P‘•s¦xàÿÃŽzâ6VZØÃ…uP‘È%‡Îß0?JA/Å¿ ¬*JÇ0ÁI 'KkL[\DËïüüÇÅšSO¡‡ŒÄžÔN Óˆ“l`ždñû›«­ÁÞš£Þ§ˆ lJÒ'%xüÐ÷â¨Áv~Œà×KâŸøíæ:Áü^Ëéàœ“TøyÇ;霞 +9-.x‰ß;ú’È}g„Á±£§£Ïz©±¬ø¡£ŸR{2vÂXÓ À¨ðMFéè9©)×üúÊð“úŠÈ&Ë¿¥®¥Ò^p”,Ã[Ãa˜’ÀäifS¼Ã"²VÞ`—;ÎÓQjKÞR¾G©”ÛXÝxF/‰Ÿ’0–Pjþd[¬Á­ÛÌAÅÒ+<.GÏšÀ)_G{ª 冄 ÆXÞ.ÊK0L‘²S30x9ÿbÿ‹÷†Aö¢±„/†õEÃöÍS«"´ÿRR(>šÂSäWÂpÅcù(Ç®>¤˜ÖMß|¨n¡j”S‹2²LâÛ`ñSÏÃendstream +endobj +1733 0 obj << +/Type /Page +/Contents 1734 0 R +/Resources 1732 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1731 0 R +/Annots [ 1736 0 R 1738 0 R ] +>> endobj +1736 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [317.801 499.951 324.263 511.991] +/Subtype /Link +/A << /S /GoTo /D (Hfootnote.18) >> +>> endobj +1738 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [249.1 348.11 255.562 360.149] +/Subtype /Link +/A << /S /GoTo /D (Hfootnote.19) >> +>> endobj +1735 0 obj << +/D [1733 0 R /XYZ 91.925 602.788 null] +>> endobj +1737 0 obj << +/D [1733 0 R /XYZ 202.077 486.199 null] +>> endobj +1739 0 obj << +/D [1733 0 R /XYZ 107.168 158.427 null] +>> endobj +1740 0 obj << +/D [1733 0 R /XYZ 107.168 148.923 null] +>> endobj +1732 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F11 674 0 R /F14 1012 0 R /F7 586 0 R /F10 1027 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R /F59 1176 0 R /F20 1030 0 R /F19 1034 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1743 0 obj << +/Length 730 +/Filter /FlateDecode +>> +stream +xÚ­VmkÛ0þž_á1vR+’õf³h¡-ÛØ[çÁÆ6J‰ÔÐ4!v×l¿~rtNlçœ4¥øƒ,étzî¹G:1‡š9ŠÊ…£h@t:£i:3sÞc`჉_³9‰{Ã3)œˆDŠ;ñ¸í&N~ºŠpâùZk÷ë—os/<Ÿ¹o?ž{¿ãwóp³˜!ÑJ›ÝÊuŒËÒ¢w¯!ªˆr'ÊÊffè„f'Uƒ)µ a VÛQÎÊ팟QÉFÏT Ýaßó¥i§Ù­ýyn›ÙضI6ÉŠÜþ÷‡¨+®N¬ÕkÛ\ùoîò4y‰.è¨laºÝW þdIjÿ+œÅýl'*…¢‚ÞÐ6ŽN££a ]v›öo4›ÿ… onÝ5À-Òé¼¢¯Hl¾#ð뿨¤Óùe¹ÅežýK7£/–ôB1]fŸ­¢Sî‡Ï—ŸÞÿXM !êù\iéNfwzqr ؈ØQ-åeibü¤r/Ò` éwŠåè¨èLV=!¨r„|xèEgè°opxèj;t†‡®<=Ðp hÜ +òÉ{#ð@õ€r[î1~âåAj_ë½ì_ù%™««®KófXb§ ãHôHa«‘鯋×D™ÌØj4†ùZñÁ éH”E:Éò"]TÇ +NÕ¥ÐU†ÙUYz’¼Bû+e.F¸3ôZ–• +óŨ]’9*GaŽT¥–­ê“_gã¢u­ï/‹Š?^Ø’’6°jI•ïñl±Qز±Údßz±Í+P[5:Tbj&)J̉ݑõÊ¢‰ÈÔv¡!IƒAIß0>à ²šPÍÀMGu¯º¨eÔêýÔž Ô®ß1Õs;ICDlÉ`ÑÄF2ÈXEOD²¦{.‰É/ Þbºzjáo®É ç­Ç0¼a#IxaOa.8ѬìÕ&ÿMÄ¿©endstream +endobj +1742 0 obj << +/Type /Page +/Contents 1743 0 R +/Resources 1741 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1731 0 R +>> endobj +1744 0 obj << +/D [1742 0 R /XYZ 63.034 602.788 null] +>> endobj +1741 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1747 0 obj << +/Length 794 +/Filter /FlateDecode +>> +stream +xÚ­—mOÛ0€¿÷Wd_¦$[RŸÛ1”I-Ö·uAbÚ&TÚ“€²6háßÏÁNÚfN0UUì‹ï|ÏùÎvÀAòŽ€P`ê0„CÇÎ覅œKùf¯zD ‡KczI«½;"Œ8ÉEÕJ2þáaÞ¯äs{—F‹q€ ä<·œÙþÔ=NvzKUÏ\üüœëž>… ÓQOì7¡B†R•·A3pýþ ×Uv]+Z@øU*(…FRbÔ®Ü4Óùó‰¢W%²ÛúQ£´¨ÜÉl¶2fØ4*q£TP®`6o¿“á¬Ru÷_@¢ÐF§È¨êoÏHk'ؤ«¤MS6šFŸÓz—¼fÚzMR²šIë5#­¹3lT¿™ô§Ž !ÁÂôÅD"rÈ{K/ÿÛ@@Zendstream +endobj +1746 0 obj << +/Type /Page +/Contents 1747 0 R +/Resources 1745 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1731 0 R +>> endobj +1748 0 obj << +/D [1746 0 R /XYZ 91.925 602.788 null] +>> endobj +1745 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1751 0 obj << +/Length 2315 +/Filter /FlateDecode +>> +stream +xÚ­YK“Ûƾï¯`nÀóP9ɪȑíXv´9¤l°$–D $(Ôj“?Ÿ~ +f]ÚڪŌŒÎlîQ7Gh45«C˜æÁP8ÙÐuÏߦì`t[!a­G¾ƒfÙÓê ðB ;˜ªþäní=/.›m‹ûÕÃnO*‰”‰ ¡(†µ¸?^ÞY–ÅÆå+«(wxŸn~û#Ymàê~¸Ib]ä«h'±åìoR +¤×Ü|¸ùõ|µÂ*šð¢›(9Obc³q7éch]PvåПH3—ªTÇ&+^DBÏ뚈*u3ÚÂ4 Nxà*&-‚wcžÓ_eÏîâF_ò•q¯>àbúïçqvÀû|lüh -~³`³í1„­™¾»<Ö …V×vÐÔöì +Ø&“(o些d=“LØlÉàæ­Ê‚×þ¢À-«E§BoYZ&Nr÷l5Kôèåm层s>WyÈÆŸÿ3iSox¼ú„§®eT¼ …—ó{dHµŽ]Z< Z·=‡!R©“âǤّª'hÁÃ%}á~ïù»Œ>ªHc`er+÷à.¼¢ ³¸6NS5íú݆å‹þŠ¬©U1ä/!ª°º&ij œ¦˜Iêap!Y¦ãB§/#šðº*¸xq¡ÅTôFH.mäîžzAô5ÎP +to=³½ï0Mrn ™hk‡- ’ƒ‰á1„šÂ£q–ã*’Õ÷OµbºÝÁŒDM€@<ͼ¦­=l##FnÿH¹]É1í®üzÒ…“Ä›´í<.{óÈ|ËaÆfJŒØUX(þ›–ò*Îúh¤ÿt"½ÖtáP78ƒ÷Ör³¡äw[uܵ†s>¶a¿'6‘(n'lÀ¬Gk•æ@ YÐWâÁ·5\ì%öçÚW?ÀWQÙdƒ÷Þª¯ ÍÇ/0‡bnàÇŽÏ´kFK’˜’wªt0ZÕ™íp0%4ÅI´Ô]Åíw¬Úªa’_ ëA¾²¤\'‚èæ‘'Ä3½Ä ¾W#”¶í=ã§Õª•G­–táÔb ëBf§ªØÔÛš“0<ú"…Ò”€ONŒŠ81éŒÏX§!Ìt-Ù·ÏAydòì ¢årO½T¼¬Ç‘¡+¯á„wC|·L1Mâ…yËø¡¡°H ´J!·ß„ÒžW4av‰Ò€/1(mÜï9Å–ÎÒ8ÉôËÈ(¼®Ê˜Ù™NPÆþS'øöº÷–œÒüÉÅýïÏ)JÛ„ ¡CÓŸ®.兀–äg(oÂÕ`jBgÈžþã³]CnÌöÐ3eÙ÷ì*ªF:Ɉ*YU}'âøÝQôÀY +Çdr¬ CÞîÜN·gœ ÞÝóØÈÚHŠ uMƒ{&`kÝ2´~$¨ÉÉ[©|øB¸ þÕèÄXòŠ»„.ðeÀ~œV΋¦yTøÇ/—V—ÃåCª!­°®øÿF‡µlö´Ñ «h‹ln*Nn¡"rãv(Óû_‡… þ½|óÊ€Æ3³ü-î2ŸµdmöùG¹–Ï +¯ÅY¦ù¬K Ÿ5³³¬ÙÌË.<'â@‡ò +ÒJÎq ¸³ë%ˆ¹æülî¨ÚÔÌñû§ÐbÝ>pEq¤^Gÿ·ð0<îxª?­?ÒDY"¨"Øël"@õÌ«’à¿LfàÉ{‘"[ù=ïÏ Öµþ S"ÿ,pT©…õ…AÀÖÛp¼è Ç\ì„„íŸð±Ä•˜X> ¢Ýæpec(6*à‰ß-é-z#½H\d1˜(áÓs·gOT’¸nwÔߘà ¯hÂl‘Ã;@gOB˜:žêR8—C÷2 ¯«Âe ggÂAX`mrRƒ¹J‰‘÷s=¾­ªÅÛj"Ϥ’ óeD’›% ˆQ3ƒžÝD ¯x¹rT›éÄÅ:WßæåÂ+š0[x¹*ÀËóq¿«w¥ úiú2 ¯«Â(©µš 'ëðƒµÎ‘Åž‹ +~½;žß´‰³ÇYEÐóÇmàp‘ë®9%«Jkïù²¼T‘Íîú+e™8@Q¼pþŒjK&’qÿÚý®jü£|ÌA-xA“å†ây!? À·:¬ÛSWn«Í|C¤}¢³VƒÑ—Ž¸îê#¥¹Tå™L3©D"dåOs³ßˆh i¸²{”F+[ù¢ã—$yð1ôÌ] O_Bp) +·@äuø—G›%=ÂLdŒŸ‰@qýN ÿï¸v‹iãüOÕç‹ØÆÃþ© I!SØŸ:üøTØ2è§~ÃÒP f +{“ÉÿÒ¹qendstream +endobj +1750 0 obj << +/Type /Page +/Contents 1751 0 R +/Resources 1749 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1731 0 R +>> endobj +1752 0 obj << +/D [1750 0 R /XYZ 63.034 602.788 null] +>> endobj +334 0 obj << +/D [1750 0 R /XYZ 63.034 348.736 null] +>> endobj +338 0 obj << +/D [1750 0 R /XYZ 63.034 254.638 null] +>> endobj +1749 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R /F48 601 0 R /F11 674 0 R /F45 589 0 R /F47 596 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1755 0 obj << +/Length 2545 +/Filter /FlateDecode +>> +stream +xÚåZ[sÛÆ~ׯà#èë½_Ü6Yʼne[ôCgs·¥ÿ›.K ËŠËRÛ£4³\ Œ5ÌÙ/0,¨Ì=fͬʯ®Yƒc +—™„ MC*,oé„»÷èÄJf­léär»¹#}l{¢ 𺖎›ûYfAž–¯ó㡹lx…æ×¼0eÓ,ùÀ°à|tOæ½(ø~+;ÆÈaŒ@˜™£…ÙŽÝýq¦$ÓÞ¤ü–½åâ¶+£äL;WË(ŠgÛõ䦫-é¡MW«Kš.«Àœ¬((ýiY\KøBúÿS'|U`ÒÖH㪙UÙà5Ó’êî–f®†ˆøâuÌëû謊zx™×a|BÞ¶ð¡ž8Q¼…2¹oëôœ¾(|tÂÀ¹Êï7' "÷Í$¼¹]p QˆÞHõÚýÇC§-‡cR*Ô»šf»ž.> †Bã• €ß lÄ;s|ép +#3òqÉ0³*¼:±'Qþœ1õ~ÑK˜ËËù>6Å-ãZ\Åë :…ç¹k¡Cù*sý‚cX/Õ-‘9uLfë )ZÓž$¢;k?ƒ)Ž’D^Àû%Ú©Øu¹â4@ +ÚÏ/€¦cyÏ ™²ëiúÄ«l0ëF/úJ…¦ ¢y »(!An‚¯âuŸ†qß‚÷o'×I.’+ÃîyÎÿCnÑ! IòGÉ- ^÷æ–Š†@½ƫñf½½wTèÿª x;^o:®ƒ@78ŽhC5A>Îw2¯²Á¬§‘hòC½aÌ0}m•†™ªâõ*ļ”-T½CÁîÆéã ˼#“†)åÛúJ™U~ë7¢ë·*囇Ҳúqïu_ûH®8óèö‘x• fÝòŽöQZYoØ?ðR\3 ÝVÅë ,ÅQÓ]hÁÚs!ß@qmú†f½6Å)¸®Œë]¡Zô¤jT‡?à"÷7a£ä.éÃ#Ï™WÙ`Ö-o‚.u½!ûGì²_¥Ž:µ×W]-võíH4¹9z3ÙlW‹ä©¨9)4W“õv¶I7—·é^£æõíbMfŠj^ Æ›ÉtÛqôþ +‰Š¨“Õ-­-iœ9ŸÜ°ûFY§HùÈI–Áa! Ù£òºwÈ-2/|Ôs¦Eß?äuRÖùôÖ°OÒÆ2Ï >­‹ÓYcÄGñ=OGj°Ûð!G >ÜwK¬€WpŽ„Ü€¿þ¼ê`Rý”l`ê¨)Ž½µÔ,(wðˆB÷­ªáè¦2Qç< +«B¡°®žÍ—q8?$'*«dBßÌÙÆÑòWÏÁ ^nÿ3ó*̺€½dç‘&`Ò ¨ÆÀ Z©úàj,ùqº&¯·¹Ô^¡]ñër~G.´™¸ëtsR;lÇ•‹ákŠ: Åàf¾7]PåßnÒ +q‹QXVݽJ\A±aªiyN„ªX.2'º&în-·+ú"ÐÞ£+U“t¨Š¤ã4mÄY(4#ƒ%èÜ×ki°ALIà´5ƒ…c:ø=Ý¥W4ãÕ‡üИÞ¤•ãuÞ53˜E<¹SlŒ·d]^v†Á‚ÚsŠ x½³ô¡Ì«l0ëúBsŽæ ¢‰›×A0–ÎG•XFepË&ª3èüíèòü¼ãÛûãéäÛËUWïPº¨|ÿÅ)™çÍé0˜btõLŸwÇfÁ ·:Ž¸¯ƒòRã¯Ð©=` ß5GÁUñ:ˆ‹†\ȶHg÷Û!´ÎàÓ ÀIUz HÅ WL¦9 -¥m…ÆŽ!¯¹¨oh.‹½j®æÉåY¾ú”—=¼¯(cmb. P¿'¢+zmÙèè^»-¦;”ˆMǨ/(­ö1¡Å¢B›ž›¤QO;Ú)“iivÀ¤=2èìwb°œOdzDs=^ÇM%%èêåp•Îèn„ñ1æÄYJEñ±È.óŽ§ÿ¼#èñj2m+vÎÙrNI/jKË>1m2›V]ÄÞ1MGÌ Xié«óšÕÜ{™2ž±çÄe6éy‹ìà Ù­ž¥fðzÑÍœ4|@ì:Ä›zÜ(¹âU6˜u_1*@ÇŠæÞ/:^†~ñ8È2¯ÃÈ4ú>49MdõqE¿îô–­qÜ@?Ì¡_K”™´lЦí}c|”z­Š„vÏC¤èK»Îž PHBÅÓ'¨Ðp¹Ø|l&ëôí:}ü%}ŒŸŒÓÅ“§½¼|æ5]lz×C^Ÿß½§&)²zÇ Çwz$±Î[}>ãRúBsù‰ÖiÎË%ï·ÉzTš—Mm•™ VŠ!©8 “®pÒùSŸ\Rf‚J‡[zEE£eLËO=¤7©ª­nw:—ߤüA7¾É ~å=U%(äýY,Å•"öÍ8êË È\Q´‘hj \µey˜aYÈl\´ŽMfè׉ÙÓÉ‹êõÀaUØ®,Ê1kªšö¡+ +êvÝZ¤·ƒæKtùâôÍ)ºç§¤P(“tz@¡Á1Çí!'ÒšY¿'Ž»_ŸŸ*…¼¯^Nìð~Ýðò~õú#è©(èGÔ!]ü-WIÈ"Ö ­y¼øm² qd@·ãu#¤‘q®s^™og›éÝl:Yµ¼¤™)sjCK§dè;hV?KãÍÅÂMÎàendstream +endobj +1754 0 obj << +/Type /Page +/Contents 1755 0 R +/Resources 1753 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1731 0 R +>> endobj +1756 0 obj << +/D [1754 0 R /XYZ 91.925 602.788 null] +>> endobj +881 0 obj << +/D [1754 0 R /XYZ 252.744 392.366 null] +>> endobj +1753 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F20 1030 0 R /F48 601 0 R /F58 1173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1759 0 obj << +/Length 1440 +/Filter /FlateDecode +>> +stream +xÚ­WmoÛ6þî_¡O…ÜM,ER¤¸uÒ·,-º¦‰‡½¤] Ø²#T¶IN›ýúÝ‘Ô‹%'è€"ˆE‘Ç»ç^øðzþBOrB¹ð$eDű7_O¨·‚•ãIè$'ôdžÏ&O^GÂÓDKîÍ–C5³Å…/ 'Ó@)åŸø}úGgÓ ôO~;ž~š½yò:î6s%XÃ}!×(1y5k!*‰у(™1ÌØ‹Á’ìÁŒ” 1“Æåtp©"?[NƒˆEþGQüO‚g»*]ØÉÇöÁìãûA,´Ã§öñî¼üãèììè/;õèº ƒigöIN©¿gåéAQæDTcîi‡µÊþM‹%ŽÖÛË/E¹@2‡üůGg—ÏOfö-pî<~yr|2ÍÇš›/@Ó†‘3M¢ÐåkéÖ{aœÀ¾|ÊË´²V~±eRÕ—Õ%€¯nÊέäGKÿ +1ü|00b M(BwÐVchšð0rËi^¥c Œ“ˆËœSP¸L  D÷8wŸ_ÑC~ÉÿïWàö©¹SDÂÆû9«(vŠâiÀ$‚žUÙj³çâ»ÓË¿OߟvE»eZïJ·btPXÐÙˆ ¿…òBA¸°xÔÑžéW_ÓÁ<Þð±ND´R@ÆC³í‚Q'í%ì3ÛnÁ+çÂOà}ƒCn>ÒPÎq5[6S¦ýÚIç0»*ʬ¾†ÁÚN.aX”V‡U§FEöbiŸõuje²@_íÛâûEf6À¨vÒ…µæ’Í~sÜHnwð[›XxŒ¨X@ˆL ʤî©@Õ·øã´à37¸Ë´oÛŒwÆO¦ü+¨lDÊ}U¶ÊjYƒÍùü6) Ôt•Ø…µQ×h}›ã¯ XÛÀ 1Gp‚õ0£'ÆswáÆD8Óp[ â½Læ.½°¸¬Û”wvj^ä»õ mxu³3>e›•ÈªÆ#Ä¿˜¶……înïKL?tÅÖ-ŒËÂ.î测)fßxÜäs]TndªÌíG€¨¢©’ªW—uR§ ¸Ã…þ©µ3(™ÌY¬PÞøåÊb˜'Îõ 6Ì‹ »ð_&ÙMæ ô,)M »8&9+¬æëµ¹Nòe?V§ (t‘ôÜI–Ðþ±l†ŒÄH{П#ÊáQÓ§ÜN#é¨Ä¦£ {éÊgS¸‚ÙYZôê”jèP«¡aÜh;Ko³ªá˜‘oxE›¢0¦ÏáLƒ™~çfrñ‰z hŽÞL(á:ö¾À˜’Pko=~Œµ{Ë'ç“]óÔè +zÊLóÔw>Vº¹Ö¢®F 4„ˆFß”Óõ (¦ù¨õvˆÊœ}ŸP5ºBÅ PT8ÕMÙ§hWÙx~Ê 9ìsG?X$*†rü†ŠUßP±M3“”¥åtåßMcÑ–#ÜœˆÆòæ88ønœ… ™g —.›Ûí-š+Ï e%-ã˜iãõŠ4°•5~ƒñ†ß¢æ’îß÷1G x3Gym_Ðk¨c"EÓ$¾wݺ6ýa í–øH)+$‚&h¥6N„zXP¸J’ÈÐr|]~Óá¨NJ©ÊÁö‘·Ýý´RRK°,Ü­ÈÂQE(C˜;`u¶N›B‚Pªö.P6j‰ê´\›ÜµÙH{Wš‰t¶†ÆÇ5-ö–µ¢®'¨1—_° S×1YJGŠ4 FÝ–R‚†m L†¡Àk/ÏæI'9Ïí-8Gåî0™kþnŽä<ºXm§ˆÅ€¥[¦‹AíÚ…ž9N²†QÜœ®ŸF¡f½¯ZµßŸµÝ‘‰ VãÎf¡O[îk(¾§}ôrÁgð­·øÖd¹1endstream +endobj +1758 0 obj << +/Type /Page +/Contents 1759 0 R +/Resources 1757 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1762 0 R +>> endobj +1760 0 obj << +/D [1758 0 R /XYZ 63.034 602.788 null] +>> endobj +1761 0 obj << +/D [1758 0 R /XYZ 63.034 422.425 null] +>> endobj +1757 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R /F47 596 0 R /F11 674 0 R /F1 1058 0 R /F10 1027 0 R /F7 586 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1765 0 obj << +/Length 187 +/Filter /FlateDecode +>> +stream +xÚ}¹Â0D{…K»°ñf}–!@0‚ÀTˆ +ÿßb‹p!´ÍhæíTå@†ÊP«*鼧§Qôš“–À@ˆÌ8‘ÑÌÓ ƒEš.ßSÒùÀ@+~L‹ÑÌè7 +¤serAšyݧ)¶åQ3+¹pαÕ~É=²ûœ-cðš{ÍRQqÝîÑQw“"í²·Ù×Ûصe+™¦×ý´hÿ¾ˆ¥ƒ,ŒrR›ð z2ê3¼V¡C#endstream +endobj +1764 0 obj << +/Type /Page +/Contents 1765 0 R +/Resources 1763 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1762 0 R +>> endobj +1766 0 obj << +/D [1764 0 R /XYZ 91.925 602.788 null] +>> endobj +1763 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1769 0 obj << +/Length 2250 +/Filter /FlateDecode +>> +stream +xÚYIs㶾ûW¨æª^„+‰C“ý¥*‡$¾er %Úb…e‘²ãŸ^9®©©‘ Ð{Ý ËUÿäÊi‘k³r¹EY®¶‡»|õ_~¾“a‡6Zß>nLîDaìj3¡ðÝýÝ7?™b¥ráœ^Ý?F.Æ{á¬[ÝïþʾßW§a½‘Y}^otá²bý÷ý¯|Î¥Ïå«Í…B"pä·vÊlwi×2«Â±?êÝe;4°Òi„6.R(…æH¡€mBW©löRéñä¶GZ6ëñ×d¿¡\È,GfÌÉ'\Fnp¤éà¿À°\yáYQ`§èè“Àª€#°—Ș¢ÈÎ5½o‘X”›>4=þ–YEï.ëNpºûTWÛ†}5ðPAz+œ}†•K3Ô¼¡{êpêµö¸;¼žpߊÕlùä?käõ†¡R +o-i±=¿áö¡{:Wø°Ço`°a…®xêÎLý$¡/GXØñóËÚº mw ßHåB‡ÀDd(Ò­­LFi¡;ǧ…e¶O´:eû5~rÈ^fl` ¸gbU`úXm7 Lìø$Ö§=û­é»ß—Y’‚–!äÐ!øa"ÌùxϺÖü<ìÓn:ïøÔ¶­ú°›Â.BW„â§`¹èŸ¤62eKQrj›úÜù]ζ¨Ðʨ<ûÈ‹lx:seu +eÈóËRiŠäœU³X/DéÂG ]åÀ U³c.CÇ¿‘g¦O[-t©ÂùóÚ¢zVaÄD÷ñÚû–³¶"wE8{΢$ \«c7ÆÏ9éí'zcb-è p¦m$ý0ãìD9~¤4@—l´ÖBz{í™\ÊtËñ ühmŠj ‘êP5´‘в&D,‰—¦o"Ä]‰ìŒ*z¢úv.4 ¡U:l€`°¹Ï~Z—šìܶ̃¤D•†ú)å!±k^ep)Âî'@¡çš°" +»ÑêdY”Âe$ƒ‚P³CT¡Ô¦7þ˜b·&ó Aà'ï@,Ã_/à¸ÄTõÆ7% 2-ƒ°ö&pÌbÃBÁoý|!k¯m@7Ò†-Ã;þQHo³¾k_9øÓãšàjæ#•B•2Eû­‡ÀF>Æ©åuÄ Úµ-±Tã)IFˆ+„˜³Þ( ¯Ô•ª ¤Žò}»”ÂI#ÿybR€ŸÂ÷ÿ-žÏsõŽþÒFî¯{pñ‚ K€›2ìy^£Q|ó9ñçÄ0ª¸Í +ÓÚθãùrL0ãTvOîƒbr®SIj‡9kkE‘²wÙ2j‚²H±çt£4(CÂøjü‚e:ŒŽâå|©SÃW8²€öà"c>‹ö˜Ænrç1§)®cîaÁjªˆNù€!íÀù ¡tCŠq^BûÐö]ØÝɘ´ +ü\# Aáìµi§N-…-¢ÂŸr%—Hkõ;6±©|Êmí²½N(ÿÙª‚†p#ImˆÌþd…;TwOÕÞ +¢_«mŠ¬j±˜)‘Û÷b«f[@ýŸ#CM™½ÎÌ XâÁŸ×`ž*š+¹™ÆÁ­Ãž·oh…|ö_÷Í´Mƒ•¶®v=?RT’°ëùRaeÁVx›HRI¢n¬þÀÊP =ø- †3åJS棤r)¹À+›qKuĤrhr¶70z¤æ.µ¶Ûê` 'EQWæ¸Ö´ÿòª¤|¾4`cåej(ñù8 +Dª}ãÓ—>´§ôF ünÏu5„“uÃjázlOšøñ ©v¬ÅdÙ¯qÚ^®8AŽ.–õ¨Ñu¿S·»xûŒa0„ ‡®xhch:¨øÂû%žªžj^ •”žOÓ6U¢C4]•°G8çF \˜ÙæÑ‹çÛ6ž=‹#=λì&ȹ@Î1¿±÷¦D/6 €µMšŒÂ] +d!˪† @„Â4Ô逷€+FäE,»%Ô.ô;e]Âh\\ã›ÌÇ$²0{»I +=,Ô]½Å¸å pP¾SGµ” dcDôѪ²¸®*ÅT™óŒ¿-…Sß<¤Í]0wü]J± ±ÙGž]PNÓ‰V¼ÊPÌÏüù1°Ž³.<ÿ€ä!çæ"B glàB}hç§ñÁäoÇ ;¦¦Õ9!m¨ÿ­§¶ ½,çÓ+n 3"†QsjC¿Mq‡Cù10Bø3> ŽÏºf‰'KÒ‡«zC¬¸ž§Ü& KÀ…—¹#Ñ/þXJñ Y®:L›l‚5Ú±tËMøý‘Æšz©,àÚ÷±"ž#àê6bÇÛ ¯1Å)t,ÑÂ5†XpËGÒ@CNÀ‹/jl¼ðËŽ†¥T—9 +c ™<ÜÀÀ©X7ñPjz?R«†ÛByD„n>Š2=2ö4‘S8ôH7[“…›+ +ä9Ž*·×=éO7DCš]Ý~ã­ˆ³_~©t¾Rë¶ïϘì¾Bu_¦œ¸ø'à?§Œ‹0óëUB…³¯MR²—”%›P¹Ãî©Þ@ó±FÁ“ŸÒ Ñ +(é7Ý´ÇtÂi•äùœE.d»0ɳu¼ÐAFP²†ž Ìð0bôá.á&€{^MaŠDÑ¡ç‰ ·á色œHWakº™èAˆ~z?0½ÄMî~¼OWÁáŽW"H{³tYœ¯”°`uøô|÷×ßùj[~½Ë…öåêžÁÐ]âå½·wÞý>Þ8>ÐLyQ”6]8«Ê•/Jr +_‰à –6jÚýIó:7J”’ï—¡“•¿ +*SqmûndÐBЙަÓ>ÁH·ðÂ:uʦÏ(¤M“ó¥ðúæÖmªÌš`®Qj5SŒË÷D1ªÉ¸!+w3–JbpZ°^ÁOç“Ïø'.¿ìz¼×N.þ!ºÔ[è&|òè$KD•‘Å*ì ‡y+FücÄH'²ú´mendstream +endobj +1768 0 obj << +/Type /Page +/Contents 1769 0 R +/Resources 1767 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1762 0 R +/Annots [ 1771 0 R 1772 0 R ] +>> endobj +1771 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [178.351 305.791 193.074 316.639] +/Subtype /Link +/A << /S /GoTo /D (section.9.1) >> +>> endobj +1772 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [315.686 257.52 322.148 269.56] +/Subtype /Link +/A << /S /GoTo /D (Hfootnote.20) >> +>> endobj +1770 0 obj << +/D [1768 0 R /XYZ 63.034 602.788 null] +>> endobj +342 0 obj << +/D [1768 0 R /XYZ 63.034 584.788 null] +>> endobj +346 0 obj << +/D [1768 0 R /XYZ 63.034 409.542 null] +>> endobj +1773 0 obj << +/D [1768 0 R /XYZ 78.277 129.994 null] +>> endobj +1767 0 obj << +/Font << /F47 596 0 R /F8 580 0 R /F11 674 0 R /F45 589 0 R /F14 1012 0 R /F7 586 0 R /F10 1027 0 R /F20 1030 0 R /F19 1034 0 R /F22 1044 0 R /F25 1776 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1779 0 obj << +/Length 2941 +/Filter /FlateDecode +>> +stream +xÚ½YIsÜƾóWLåLÅ£7ŠZcÙN¬HôÉöœ8(ÍF#’þõy[c€Œ}I©JÓËC÷Ûß÷šj‘À?µð*öÚ-ÒDÇYž/Öû«dq ;ÿ¼RB±’Õ€æÕõÕ·ïò…}jן/O¹Þü)«—¿]ÿí;g{:å\ì­s‘äõw/?\¿]ªèãreŒ²x¹Ê²,ú×Oo~þñ%-šèãÛ7@ñóëåJE×ïú7zõöºcϧ&}V‚@óDp™suq€«oËåÊ*%,ŽˆcÒØ;-Òüšh+$j ±ŠóD Éœ”¤Ñ?ð'‹ÖL-à”Ì"±vqî²…‰SåèQá€Íj]où=‚xá¼ÀsÂuÆ[ø²9òv''|uà¥ó2p¸á…VhA’¢-yÌB¡Îhì ™|ÝÝ«E³%ý|áo@Dp‹c üÂ`ß`‰ˆÄ®ó9â7÷À6YT4üûú#®¾n¾©Žk”ħMº˜tQ—4nѸÇÃp—Ý”t\Ξ0¼ë#ëc³útD–{:€NKÁÞ¦jŽ» S<±àUð  ©«²Å½Ç‘Œl6tŒP².²°GÄ5ïµÛ†ÃYÑè<ÕšÃý„bovÁÐ{’%f—·ÙBÙØØî…PsGx/¤ ‘¬h~‚†Ì\ôªM¢´m‹ V„ßœ×tçq‰.Mp°6q’rÊ¢³¬Kø,á +³ÖƒAð¨ +µ‡ÓÏ’äôÝ/Ùo<¸G• pR‚#¢ÄUîˆë7o<þŒÞÝ°†èüMõ‰i)ø>ë{]FXãý[TsŠVóìÈ“N;ôjãðîœ<Z 5V·#ZrL2g”ó2Ùl|>G,nðã¯UªŠ‘g½¢ÏÑÚ5X§á›Ð 7 § öµÎ×ñ” Áih»EË>Ôón£ÎdMµ9Óx’3»ÜK6^OÜ!ƒ*Šx÷\2Gd‚b.7ç™ìîYsÄÈî8= +*R ½™áÃùpMÕ°tåÝyŒ@©lrä +BÄxðhøõêI“,(àÅŒ„IìÔ…„Ê—Å6ïê]’LàÁH°á÷)|ïû(IëŽptŽMañbæ$ÈN›¡)G¨@¹X¹|auçpã,*šÕ€è\žÃ|»$‹ü¨§Àȳ×0ò̵*Iã<õ ›ä±ÎØï?axÖ”î4çŸ +cq‹y—&¥ÀdœTpsäEÍ›-'ÊØÇC©Ö +ÎwHJñx<ï6<íÊ-ž}nªÃ-¯·[YkŠ}É å­e¨3R¦µñóV‘¼I¥CÃrAý4 $Jd§*Tm í³èÍ'Xù0AXÊÚ8…tÿÄ7C„Uu +9W}=†;:Á)Ùg#®J(XHS8>”-а˜¨O¬@*و朎ŸT×)^{O€ëò„e¡ {gÒžËcëõe4 ý dö¾ [® ÈlÁŒkH¯ìVê*…zFœu{XëŠë=”b‡µÙwG<ú¾3.›¹&ëº`E:†ÔK–8ã\“Ô”AOáÕ¨FPµL-Tg¬Á©‹øY½¯v;Ž­,‘)ë/<+ä+ðfBMZ ]ܨÂBjŽ×²¾»)ë‚pÎ#“±ê[It Fq!̉æ¦eýÔÕ·5W Ï £ôLË­û}XšÃ1 q‡n 梆†WO$±bØÏk›¢-x$qÅÞ&Àl•§&z/¤#w%úîÂü" } Ö3²¬Šî¹Úƒ'²è¾ú½‹œ*ìj'r¿}Pêïb™K0Af#L)<0¦T±…ÌÔcJüO °|‡wR ü°Ùô°ð®’˜§Œy +-ëX.h‰ØØã~ÂxX"SR„¸:ê ¢{Ü+?ò¢è™g­Õ¼Nµ¦ yxKvA²“žŒ J(2øUk6+RʶÃöǶ¬ÿ2#çmyÀ‹tÎ9o ºáiuàßà†ªò¾Âb˜ëHyŸ4¼v¿-…ršˆpõÒ pšqÊÞtÂ2t8£^©ª%Ÿ"5‰´ë:naï3s‚9~Æ=ý{>~T„‹úf”ž!”©×Qµ) ‰]·Rîimè‡8"uÇËEhÛØwÈqðìfø>1L¤ôoR:­÷€o¦½„ÖqؘË÷—IÞq±“½ÕM%Ï0À§VcXÖ (FŽU”?ŽIÞç—„<§|R—À=ͪV~»cgšå€àð@všá=QfÈ=yÊå:0„EWÆ3] ôy.z7¹ÒÆyâ&W¢×Õ…¼à‰"Uv±'"ãù¸k¶î·“õâˆÅÈÇÊêŒ9Í`S­Cßø·ùîK?)´•™þƒ½ß¬u™ØûÄìHøfiÐtœjö£÷¥>U O~S“¤ÜbáÀå9ó@YöùõfrJq±òV¼`Š€“Øwr˜éܱÛC P=Í šÐ±Û=ò"îºl†ÝÒŒ6ó8 R^L!w2°•4!*é;èš ,ú.dÎOí°M!@Dï°9¢÷DÐnùPìO»ò1UžÄ™÷÷˜‘&Ìk›®Ñ¿›QWÚ5ù/d‘Å,Õã~›Ð»&ô.—ÌûSFñàX~|‹Éøša©Å.…mÄ$Ta±.Ó[-(¾OÅcFùùiwîWôŒ=ó4N»ðùû„[HÁiˆL ˆ…²Ä*971±«ŸžL D·Ôóí¸+Ê"€XaBšÛðÚV¡µ‹%ëÁa¾Ð¡çêÒ<²:O˜«J¹9tü„^éO%F꿧OvO`&hC¦6€ìº÷ y¼Ã˜£±QÓ¾ +V¿wšðƒçLŸ2bÀ&.³Ü0¨öÜÁöߧ„:¥µÚÓ¬ýO$xSÐ3+bv€ŒÔñ¡DàU§ø’ ª–›m×5áT¬îâü zq«‹^ú[Ç‘ + %Ú=ª&ËAär +ÕŽa=ó>Ü{‰žz g…ïsz¤AÚ[ÆŽÛ$8ì‘ø®¦åÙà)ƒ–ðÐ÷.u/âh'þŸ¹Y”%¤õý5âðÉ4Þ½¤œIÉF¥±QùŸLÊPs£Ëv®äkÈÇjœæ^•µZ0±‘G¸1à¶pqögø£GÌ•±\ÒºôPÙã.û Èd˜Lž9u­J#A:P›sÿÔžAN]ÿ4cž{%7I:VŒû*æâíWþ€¬t+oçž~(ø2[wW¿ü–,6@òýUC¹ZÜÃ8/ýb¥ ¾³k™ï®>]ýgúçx¥]æ®{>Ö @#Ÿå .@u °¢B®GÃâÀ¡Hd@ßÌq›€ÚÐYnHv´(Ž”ÇÚ-o(»bÿ¶â°qôú²’?ÉÀìUAàŸzþ*眊Ú‡ÿ*ó¿nd…ü ¾~ƒËŸ>€ÂŽÒä|8„ÖeÓ0CñSúW€îý¼úWÐ(™TÍmBk ±ˆ³Áæ>Áýhendstream +endobj +1778 0 obj << +/Type /Page +/Contents 1779 0 R +/Resources 1777 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1762 0 R +/Annots [ 1781 0 R 1783 0 R ] +>> endobj +1781 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [243.872 478.394 250.846 486.807] +/Subtype /Link +/A << /S /GoTo /D (cite.BARRETT) >> +>> endobj +1783 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [235.597 393.387 242.059 405.427] +/Subtype /Link +/A << /S /GoTo /D (Hfootnote.21) >> +>> endobj +1780 0 obj << +/D [1778 0 R /XYZ 91.925 602.788 null] +>> endobj +350 0 obj << +/D [1778 0 R /XYZ 91.925 519.125 null] +>> endobj +1782 0 obj << +/D [1778 0 R /XYZ 228.837 440.845 null] +>> endobj +354 0 obj << +/D [1778 0 R /XYZ 91.925 329.737 null] +>> endobj +1784 0 obj << +/D [1778 0 R /XYZ 107.168 129.994 null] +>> endobj +1777 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F14 1012 0 R /F11 674 0 R /F7 586 0 R /F47 596 0 R /F45 589 0 R /F10 1027 0 R /F20 1030 0 R /F19 1034 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1787 0 obj << +/Length 3452 +/Filter /FlateDecode +>> +stream +xÚíZKs䶾ï¯Ð‘ªŠ`âE€‡²Î:ÞT*qmÉ•ƒí5CI¬Ì ¥Žµ›_Ÿ~ 8äŒv½‰O)UiHÐnP^•ð'¯*-Jm®ªR çýÕjû¦¼z€'y#C›Ðå&ëóööÍ7ßYsU‹ºÒW·÷§ÃÜ®*œPâúÆ9WÜ~ÿîúFk]¼½¾‘ÅŸ>|xw-‹Û[l3Ňw†»¿ÅG·ïÿñ÷ë_nÿúÍw~Z+/\å`-8ª4{¼yw›hÊJ8c/ÊûÌ„ð3¬3«Šfam-,´6ÅÏ¥4Û5ÞèâéúFù¢ïàñî®î³çîžËbßð²åÍÐõÔ›:ö÷<ŽUÊ·az±§Ñ×py\ ¬)Ç…*Y WË ‘æn¦2©…+~ÞxäöùØlxÖ¡ç_c.m©ø}wU‰ÚÒD-dY]iQIKc„.²ûh¸ˆKxž­À0˜ñ}˜Fò*^P£ÝêZ¹âß‚^²NÃI)jËý_̮ۛGn›M÷oRìš›ï®U]|b B=u¿âV¬»üà汋^Z¿4^”ÞdBÎ¥p©\Œ'\KØœ#\®hIžo¢Ì|¦ª•¯/N´ .ÁÚQ¥µ©ƒvØ*oQX˜ÖhW mP&ØV÷|dÄw°NWÀSXb³ OÔØ£•7ÍmAfJª£ÎÔµ*þ @£l¸i´úö4°çö-¶7ðtèž6¼Ïø5ô»0,γfá¤ÙÌdç7ýCBæê@R’÷~à;\N÷ð½ZšàvÚ©Ñc¡½ßmpÿ] ®ˆã=£Ô]òÑ5?ëY',H3àèýîÀ#£8Yä]p)Q'8cÃ]Î $ˉ¨„²)àÍÜDœMJBx‹ÁFÆÙû.! ¼D×GšôŽ ²Ýïñ‡äa°0R™`k‡¾1p‡fÚ·$ÞVþ|l£whq +ÜÜEÅh©Š¶9t ñ¹¤ ÚÛÀLþ±Kæ4в¬BWõäªpô8`·' -óaÞ-í³Õ°»´¦.L‚+ +ö±¥,ÞßóK Ω”཯À€mæž„¨0oKîÖýzmÁ¬7mÚ\^Ï]úݸLZr³ ~­­P'¶¿°ƒŽ˜ sâÊG½Fs™ b„Mº]ñs[ƒÆëª +Áâl)¼õ!ëra”R 7c¿»¥hž–‚œ`¾X-<ø÷ÄòIÌ‘Þ/9)¥æ©…)£œÁÿ% } ;ÆKj«…²nªµQÝ(ª\ÕF/^xñí‹E0ùº®s!V§ùö•P°ÇÆä¸KùAìs“u:ÍNÇ‰Û 8E_JK.M›Ò’ Ó:?àcFר˜¢ƒS=%¨[ÅñQ¼xˆÝ¦1ž°Rq¶|O1·ßj"²ôá¡0ŒáÂ"¬‘jÓdsìFÊ›Ày‰îú2Ú’£Š÷(DZw€Xa\z¿€oÀeJ¡þس8çÕ$úYW™@K5÷û6’ç”Òt}âîMx-¾>²H5áŽÀ‘FÜf‰QmldÐ +ßÍæ뚡븷7«~“Êã0”˜Eû]8„¾Š{öÒmÀFT…6¡»ªˆ ãÏÄÞ°š>HÑožo½G«Ûo#¥Àþ¬Eš€ûNYa· +z¢œPäóOSìD{M©çý €VMb×Ûž6‚SÂøi¾?kö!¼­ ‰¨ÀØín2Nª¡Y‡vÏM‘ÿÑ͘—${â¨Ø‡öø»íùe¾ËÏsÒSJCèŠeZȧ¾=Y#@ŽZʘ±YÖü‰^S–ÅmT f‡¥Ù÷#ö Ü7<ÈàC8Cl%½0òRð?_H÷å±c*Ê·›¶YXI¤4eáj±|FíXz»çK´ò0&¨xZ¨ê¤’w®ÛX¨(5Ðöê$ÐD/©ëKµ°¦º˜W‚˜ú³êK¦tVS«Jß÷©^xyDÈز‰ŸŸdÊ•,qÑN}•Ûi]žxHnïÐ&»ŒRY”°d“µ^û¯±É/Œ\æ‹Tð`dØA)š£ +Ž<‹CŠ¯$È3PÐîÖ”ƒßØÊïC/zýçRê ¹0åó÷VXW_¨oԵϹ¸Kõ¥pIí + þ°Ù2—žd¨Ò´»ù:ð,ÇœÊRE¬;<öä4b•Zœ`¡Páì˜ó*Ñj¡$èX¬IÌ9u ô³à¯zÕOªà'´ZÕl6L$z¥dñºPº’Ž]cM\³J®ƒAkVÕkRàÄ=?AÍõû… é=l‚žxÒÆhD”^y3À°áøðjD1ädÕ‡5mùIÌq#X¦Ì–+pý$F麢ºL † ‰xO’N¶n5¯lÏ“<õh ÜDZ 6‹2ˆîÐŽ¼ýÄj¤CÆj×S*]=…ßÉ¥°²úÜúRyÞjB¼_aê|!Ìþ…0IU$ýj!LE!Ì¿Z3__Ó¡`ìq¶ ¦<–»\Ë:+ƒÅ.cL_*ƒ]š6•Á.LÊ`ªÂ_7)׫*«Qá‰å»vEÀ±ï·|ó“ûeþ +—µ€BK*kåœËU$üÙì›!ð:7­Òheã !K¶oÇÊÒ!;÷IG:ôB8zõ´€S$Sc ¬f«ÁãáÊéÁáñæ8=Ñ{99ò1Ò‚“S #|§Åik‘>a2·ïš;ÜÜ–Gn6\=á»t¬‚˜ÿtàÆ}{“Öç½ñhœ—.2Ö•-ºÂÓøåW“Î +ŽÙ(\ÖFX­ORÌtƒÕ¦¬Ø®c¹hÇ„„ÐÍñös9Æ@pñÞþ?È,™¯±yÑàJý•à¯¾<~ýðW6‚#^ÿ±ÓYð]Fð7Áÿ´#øŸŸ6‚‰5 žõ®ôà™Äè…hÿ½\Ð×KÚ¬`ÔÒ_N?¸ÖzúEŽ²KÉŠ:›ìÔÀã¢YŒL¶.ùå8)µn¹à1Š×=«Eôg ÿ<{:KŸÝÃQúð™ŽÞÂ\| £j& Ü~lrVNE°ûh€»¥ŽUÎÑOX‰‰ ;\œ|ßæÆ/_LHþMÉ?U Ô)pH®f,”a :I}¶+We§ÑÞŽ5AÚ.˜±ÙLàÚ¸åO +c裏>v7uà•vº©ÛfHÔðAP«×ÌÊnf„ÀÂýüSÝ Ó8íØÓ¦ /YÕr¾ûXÇ‹’›Ì+º’”¸R:Ô…ßs±Šú<^§kX”–åGÞ4Uƒ8É“¯œæþ¶^NUø›RM¿ë%…P࡯‘V'DzJmL¾îLGÂÀJã×rp>Þ$èW2‹i*˜ Ç[ +~%øf(¢s‰J¥²ýäà + zéç"z°V0 áäIæÖ¥ÓéÌ8&'òékèfŸ êùØ¥ˆM Jø> endobj +1791 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [188.018 266.98 194.992 275.393] +/Subtype /Link +/A << /S /GoTo /D (cite.BARRETT) >> +>> endobj +1788 0 obj << +/D [1786 0 R /XYZ 63.034 602.788 null] +>> endobj +1789 0 obj << +/D [1786 0 R /XYZ 180.834 467.229 null] +>> endobj +1790 0 obj << +/D [1786 0 R /XYZ 176.174 295.872 null] +>> endobj +1792 0 obj << +/D [1786 0 R /XYZ 186.919 232.111 null] +>> endobj +1785 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F11 674 0 R /F7 586 0 R /F10 1027 0 R /F14 1012 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1795 0 obj << +/Length 4088 +/Filter /FlateDecode +>> +stream +xÚµ]Û6ò}…q/'£µ*~J.¤i{mÑk{Íæ©íƒÖöf…Ú–#ÛÙ¤¿þ惔(‹v6éÄI ‡ÃùžY1+àŸ˜9‘;if¶yYU³åö¦˜½†™Ý¿bá—,¢5_ÞÞ|ñM5s¹³jv{åvõk&´žÿ~ûýß=¬ÆäN+€‹K^|ûüçÛ¯ç"ûe¾PJge>_”e™ýû§¯^ýðœUöË×_ÁŠW/æ ‘Ý~÷ÓôæëÛ=­Ln•½z‚°æÚDaóʺ™)u^IK~3¯tÖvó…&[¿«·ûÍúó9‚Ëš{>ˆRäZ9¸;žv¨råJ?û aªLˆÒÙ²ä êÝ* ³0•ÿêM¦“g0µ`p¿¦`1³¹+5~¡ðxr¦r+L 4޴ʲ kþÉ ý™Êš°¹Ð6‚&'(ê\—1,ÀKx"àj×x³;Ü@ÃÀš‘ïÖËfßÁl;_È*[âšz3ÅÔ*í ð[!íd{`¢2/‹j¶À¤†qhˆ@Å{¿mNœFŽ­ß$âZ#yuñ^á€2ÜP‚à0×é b +=»›âàriÂE/Sl TÄFf¢²º¨Š”©²íîЬµ‘£U D^–ÍF_OqZä¦ß²žléò²ç[ªª¬´Z—LÍ-_n|Ú´ÓMØÑi7ö]^Xã·:¨žÁã½Ð•èùŸë;Ú²Ãoñ??Ž‡…UËcÓ"³UE|ù4(2 àŸÝâDò ~ØÏ©ÒeGžø 2»õ#?Ü·ÈÌÛ¹,é£ ÑT+ìŒ3'w/ +à¥òIü‡B?%³Ê«ÒŒo2†_åB¸@!¦@}JqMÊl^jÀA¤qÐ=¿LÏ€BrU†XgÙ‘ é„ Ù‹2RºXF€=…‘N(04_¾ÇÁ";œîà†Ž] ¬®†ymBNŒÌ wYëhOm;"unÄQ3 cy¶ç.@‰´bÛuA¬—GïXäOë”àÙ"¯jÌ{IÖ(T¤^Å7àM#r`Ê”¶l·‘{ñŸ2”˵sWXZ–6f'‰Zý„{¤â ïf•ó§`aÂ9àl•Ì:,²Ì]!¸"“ôFH“½€çÀO¡ARíà¢U© +ðc²_êUóŽG~žûEÀJ‚ðŸ£[ѺkÚëÃ’V²=“©!4xGײâÉ=ü”Y @FGëÖûáö"}Ê–Ô q¤ZῺãñþsšYß± “­Å…w´½Ço^uµ]{4IÁÍI±¡Ò*F<£RÖÌõò°›x àVWý…´‘ŒÍ!’sç’Öf–ÍÁŸÎDªõØìñ§Y­N„\K‘}wÏËIŒê#C|$3ÑyøAÂðùn ËᾬýÓ²=mˆF:c›³æñz‰¸<4M¶B+ÖøÀ'E©ÏÄnŽavOØoø/¯yËç;§ H.|9ÐG%tŽFþ–l›×žËz}àßGDtöì«\5˜6dœ6…_›5Gÿñ~S/מ´œ¹Û‡5Oüá­®ÈÞóÀ±åß/æØl›?YØpŠ‰M¤±àÅ”fä £ÀŽH¼nU•ÄˆGUÑxË£ñò5…ÛÄ•¸=8–ŸÙr3D›µ÷üK"K[ ï4Ç=Cœ¸Èaþ3d |BQ'Ýta0Þ­`@ª Ü.ð‡”´î‡õ1avÀhKsÑdTËcwI§zVøóZäk§ƒzfèxŽˆ¿x–†ùGŠáón}„¥K aÙ_<ÚSàBbɳIú_^v¸Kp%ä‡G,¥ + Å<Õs„±c%êYÇÇÜo ³°1AïhØÇ+8ž8=Ÿ±p—î¯EܶíÔ®Ê\VæÃ7ˆ¸$’7èý}Ä–nÖ‘ryÍ‚ ¯Í.áçrÏ1Ã^·Ó¨aµÃ˜YQÌŒ–šQå°G´:oñøž!¤B,ØøÁUs 1¥{ˆä@²Îâe é.­iÑá´¥K,Æ…™8A„;m‘R^iw1¶~MÆîÀÄ'yè rÁ´4îŠ4J¼(<¢Í'S!WŠô"K€«C4ð6ÈcCúŽåQ¢zöà_{6ƒQ¯7›÷¼èØÖ¼¬¹÷#H²ƒ‰(M(9y×[ú1ü+,I ÁÔ)ŽÃ5鼄äâH—ví ë÷›f½"5â­ªu8Žñ¿jÞ"G­.¸ºÈu/€©;3rðêaç÷)Â@,¯è)£DtíJFö ê­ªý¬7û«ùRâpÍ?)–&/Õ5-2Äe+$ˆ=kæ^å‰Æ¯I¤ gõûNóQà¿Tæ“6dvó7'+4dúìæ‚.”îÕMË< +cìXOqÓyåô·Q-òB ‘rQ¤¢™"ܧøûmœñ9`ë6‘ù3"Žk¼dûKò:K{7¥Ý‹Ø5wž@¸Mí·Û¶ö~蛚ßÎAo×îVô+<}¼S4 +( A¦‰®ø |S‘˜.ëÓ!Eiˆ÷{ME6q²Û\Ø8íõGJn­‹ÝÔàÆUB’ÐkîäûÖ³j½‹xµH¤Dn¢WŸ8|ý#ÿJ[>Â6™¼©ÔU¦sÑAVTfÏw-kŠŽOGV¯ŽŽK ÞÒ;öjÉüõ:&h›Æ[1´æ¦Rgy6††!K·^ €ÇŽ]Þ Ó@\Ñ'[넺s"PSÞ®””È…öuçE{ˆÉð9!Tˆóí„Š#IØ!J +%8Àä}˜aÍøx‡ISP•Q‚írZCÚ\že5Æi,t&l¶)“a«1˜ý@RÖìw&¼å\ +÷d*Rµqñ®ÏžF£˜Ô ïJNØ|\U@9ÿØë¬âÛшьëbKtÑÐA(Ñï—Ž”“9ü¯@6T‰5¡77¿þ^ÌV7Åìû›"‡0xöÏEâ3ÛÞhÐñ¿mn^Þüg(01¤EŠÊK£º ,h¶Sy%F¢Ç¡ ÆöZ™s~`—Bž ÖHŸH%^Cl˜ã2&g”G )K–|–Ôâ“K¿¶I1)Ï¡GàìÓ©,e®´I“9»JhP)À©e‚Уª`À×Ö1Á›^¢¾z`§Œ•¨ËÖd$Á›„À°ÞD–2ªEûƒªE/㉗ñzL6á +*”*n \óA²A4‰•¢Z€µˆ€M¨&²°§p¹­äådvqçgIÖÄzåÇ~r|)0…[>ýød]¥`]=¾?³ø×ÚÙ¨èüd¬Uö2¸ë>ñ4­}¨\ôUïOR}àoY«¾Àœì«µ§”`¦¤ß!Ÿë6œ 8ø%u*Š-ʼtæZ<ÓÇyCã’õ1vîó,¥_4…g=âJOWj=à9aÌ-ÞcÂK+FùQŠq${Ö€“„¢Q}õ×DσZ °¦’gê`Uaˆ½bË F`ɼg½¯|µ#||UÁ`’ª|/)ô[R ] énxŽC²rÉH§„'éþš·¥‰YyåËü€ÀŽ‰w_úШCtïOŽMNôYŠY¿‰3 mδw}–¯cå~ôév´ +Œ‡ž4 `xâ+ô„ÐÞóË6$ûT;Ž’#\:_cÀÐ#œP{©?û„HK±Í¾m{·yý¶Ï¦ãŠÏù”¶)K__€CÖŠ@þ&”Žrþ">ÉCðÈTÙŸLöo‰„õànQ¢ü‘qNFJí3:.-ÀÂ]ë§#DÙÁÎ?RurÂ|¢µëƒ_˜¤Šé\‘ý°æ‰©;¬LÞ·-¼™8=|HÌåÚ™ Zæ\‹aųdP7ˆÚ]²¡cHVBq6Y Å ®I$ø›T 15U?Ñ‘1U11Ó¼ kÚÑç†F’©“8š®)wÙ&È:¯°î#Ñv‰‹·5” >!D+!|¿¡ñCq)8†­F}" )e²_G‹ö£è«"Z²ˆêK½/Mφ%鶕¸«äѶrAxwè`À%Æ‚\&åø3‘V'h¤Ëi*p‰á¾é6G¿f-:os<‡. |»@€TwåÕmCwå•mCw¥„”f?äÇ–r¢Œª5"`á¡í@ì¨pÁ”‡}Û(ÿï‰F!¸èDwã™?jn| ›%l_sØñ+èÃPâFe Ìy+ĹôA¥>*'šdëÎ8¥ÔH¥?z*BFßÓpÐqp&82¶TDªnɳD¬ѳê Ë©†SÕ’\yÃå ø™È©,Y%ÝHë¢Rú!EH8ŽËfeõdE2|$àHñAÀ±$ ù|CÇoqö:=¶}gÎ µâŠ2­ÔYHEµ^ÁÃ**Mž­ Ä«0÷\KQ²¸Ä- «Õ`¬Úp~W›ÁaÅçz‹]O´ïTuÃSអS/¹=./Fn9ŠÈ&¸õ!´D6÷ǦUµáóú͉ì£ÿ*U°ÇÚöˆ^¯%b;&0öìèp3žížÚA¶ ù«½]¥uµïµ‘"+íFYoöDM9Hàahï ÂÔ_Öm{É7Etµb¬†à˦Äø~õ蜉kâï î;_ ßEœT¤&MåàÒA-ïÐì¦X÷õàþD¾,$A•ócŠ×IIêlÕò/†õÊÃw<ÿþo9w¿ê»!¨Ñ‡:»=*ðœjÑÅñ„£4ùöÍ©=6CÖ7†ÈžÊ_ýÅŽYý” ⊇"ÝS<W¨þŸŠš>`x&.Š½ÞaKiYYé3KƒbiÅ pÚʬD£´uí–_أLJÎ7ñåüÒ9b ˜^÷XÖÙÚ‘oNp†©“³înD¥ã°#xøÕy»&Â=k×ЛSCÍM8W#9öû®Å+x×léý¸ÞøÖ){踷1Aký4Ù¨Ûåð‡*ðYú¿lYúˆ)>eg¿´G_~ø„\KÃPCŠì5º(ø¾ï††Òðç(ŽšJuœì)_‚ ¾É„JÑž2w˨²ñ¦¾ôÝ|YÁoN¾e+øFÑÁ• ¿¾ý©Gt*@[E-W¥Ì^’[s“—£Êªà.•ãé#ÔÖ~`Eßë†NvÈ/ñ3:+Øy¥›Œ ”GUà[4ù_èÃ{endstream +endobj +1794 0 obj << +/Type /Page +/Contents 1795 0 R +/Resources 1793 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1762 0 R +/Annots [ 1797 0 R 1800 0 R ] +>> endobj +1797 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [151.478 453.866 157.94 465.905] +/Subtype /Link +/A << /S /GoTo /D (Hfootnote.22) >> +>> endobj +1800 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [147.289 116.694 160.102 127.06] +/Subtype /Link +/A << /S /GoTo /D (section.9.1) >> +>> endobj +1796 0 obj << +/D [1794 0 R /XYZ 91.925 602.788 null] +>> endobj +358 0 obj << +/D [1794 0 R /XYZ 91.925 510.563 null] +>> endobj +1798 0 obj << +/D [1794 0 R /XYZ 206.768 237.246 null] +>> endobj +1799 0 obj << +/D [1794 0 R /XYZ 107.168 139.458 null] +>> endobj +1793 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F11 674 0 R /F10 1027 0 R /F7 586 0 R /F14 1012 0 R /F47 596 0 R /F13 1055 0 R /F12 1578 0 R /F20 1030 0 R /F19 1034 0 R /F22 1044 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1803 0 obj << +/Length 3471 +/Filter /FlateDecode +>> +stream +xÚÅZK“㶾ϯ˜[¨Z‹&Þ@•÷`'»±]©¤l+ÛÄ™aEµg×›_Ÿ~$(RšI|ÈnÕˆ$€f£_?@q[ÁqkUY)}k+Y:ïo×»›êöFþz#âŒeœ²Ìæ|swóå{£oC¬º½{8's·ù¥p¥,Kç\q÷í»ÅR)U|³XŠâë|·ÅÝ>ÓÅïþw?ÿ‡î¾ûÇß¿Ý}ÿå{?VÒ—Î:à© +mpÆÍ»»žA]ÙÒisuiÎd~²ãt饥·}xÞÚ®©÷ é‹n±”Òkduµç›{øqE7¶h­„JÏaÁg¾^xx·€©HqOù )Ú}$òke*ðÛ3'¬,Q +‡ãÂc ¶©ñz‹M(º§š/`‚,V›æw¼õÅæ7ûŽGq݉/×Oí©Þó¬ÓsÓ­î·0øy¢á@¡ÎD€ISnA‡¡ôÊÞ.…(ƒ14 +Â!ŽTUû%ñ‰oº'Xué¦æ‹mœj”í¸ ÀäñXoëýcÐA(âÚMóˆ{èNx+ +"‹Ól|U×ÉîØìvô`$&šÆ‡ƒ¦ajÒ4Ûe+‰jWNôjW®¢…ølµAi4ümÚýjË£”²~®y^ûÀ#d øà¡=FJ|ßµ]ZÍs£,á~‡œ¶§.NìåÙ‚ .øU®œ$íÓ‚\l›:>FŸ€`¾AÖg´G‘9¼/+m{c:ΙÁT¥‡<ƒ˜†m3¨âÒÃß>0hˆ<q}>ÅýÓð¼× +c@ɳwSê“ Þ ¤›B WÍ““ª4Â^¤Yˆö¹k.µ×ÅÛ:Œ×éd®‡t9'KLÎi¼s9Ly3‹Î_fV¨RUÉû@”Û¨–ñ^7½žÁúØh-µ“#£Ý¡zž·¤ÄöY¯¢±¢9H1ÄxY V$1xGŸšÞŠàñ'ŠO<Ÿ"#þžGÆ©,%ÀH¯ÃÿM˜Ö„\˜$±CÏ0ÈwHœÅÍ£/6üi–QR +Ò  F’bÑœ¾ W]÷í1"ÐRys ®€¬æ)Çš¦9ÖàdK+ªâ»=@ð'¤à;9g¾¾Ô½ÎçEå_˜õËv§”¼lw²´òÌì_Ì4ÀòÈîHÊÑìAˆy2uÅì@îÅêXóJª!ª}:†Øò ÅE€ô8Ú§ rÎ>…Ux¡ìã›Ò/1X€Ç›´)¥l™f>¬N]}äkÎt÷3ÉT¹í‘óXÎ +žW]Wff©õ^ß/£7‚­|Âd©bçÓôyºkÀ‰Ü57AVû(g /å¼d4¤}=ܯf2ܪ\‘ÈEïõ ØŠ>¸´O&ø‰ÇÚûòõ‘M¾ã„@¥ “ú&„(€uŸû P¹1~ÏÚu4ÆL¸˜tð!™¼,}ÀÆFZ‡³gPòo/ÂÕºÕÏÔ­#GQÀç0cÎ ¤+û:X]ªH!½¬ü´"j¶$Ú.·$)û.à”M`Æ™Šu¼Ya2T€Ì€PìăRï–‘’$«`®ˆ±"5ÐpZ^ÜM¸ZÊJ–ÂËÁ¹rW¿¢C¡ÿP‡a¸x¹CìoP˜ÿ[ƒb¤n«Õ n#ª[¡¶!~BížÛPÒ š4çl媗rÁ6>`¸mw3qË”•¼űßeú ŸŠa/zÃkNG}æ»îøyž×rSqòö%–ÁŸõjg{{jбsŒ•2$‚“W´Ü”GÍàævîjÇgÔ]&’—š_¾{O»€9 ûüⲈA’M‰Ô‘Ù€ƒPÌî»ÛõñÓéˆïÎ?óã‡UƒÏ·é6Ú¤àã0ävw€ú{ßFI Ó‹ ¨a²å›†Ãeýˆ1>Ø ê?&Áˆ¹ír¦F>R½ø´CÙ€,¾MD®È΃×/bWó©>ŽÚ•*Êélcm}dhB§ÁÛ‡ÔŒôr±öþÒ¥*¥³Î°VY[.êœF›I3 äÄf›§¸ôBçò« åkÒsùÏG‡)—ÒƒªÏëòƒ(¨¸±q%‰OH_ð{zjù¦^ºÑ¥j”O“i<>¥óXãðÌ-¤ËQ"b³úk7W#öQî ”Þ¡À$`ú}Üœ«Oü +b +Oùêæl…è)¸‚4DêÞÒ&>§t×öÍ'¸Þf†|äµO«í_µñ7_p £uEHÐ'„/¾‹Ž‰+ø¨ïyÅAÐks–r¦cjp§=×ëK~ š^Ë¿£YÜÚŠ7iƱ޵ù9+!¿í)£—5|pB«hvì à5fÚ &2935ŸªÑ¡O:8j»ÁÄuj«F},¹Ü{ÓUˆJ£¸Ôï›+µ*ö7àwhpè«Æ­Ì!úíyþ´oÌgÈ©Ë‹=WßEò\ÂÅ3žÌ#g$)2ÑìÚÐt§ã~ñ9ÍÈð|õêñIpÉCÈM¥æDGA*½å&R|œµ;Ï:RÅkG i®O‰ù˜¿jÃ{¨—mf’T=Sû¶ã‹>¬QíÖô·žÏ/UÄ#X0 “'öå6q3Ž¹ìmÇa¾"‡¨46K¯0ª/¹{ï8][õ¬»¬á«3T˜¦#JßpvÖ3*†D)í´v'ìÒ&MKæ ÿ„˜øÔÄ] xh#›«s'œ0:9F„Sȶ|FÌÒ´®ôJ\l‡_Ô5uÆão +çý”"—§_6¼Hš¯ãŒ.ΈÞa©–Ú<êÍLä·Ã¡¦2áü£ “¶v$}©”¹%¡ê¿ÉˆÒjFóž>­¹v"™Ô¾Lêdb³xBoa©M^åe eïÝ`ðã/B|Ö_xi_æðˆ<4KE±‰e»´7óÇ»D¿“²øù4ŸcÝ 1„³ºw©BÈ°&ø™´Ä.@ã'QÆ^Û‡êý÷a-Ÿ?/DqñZH÷*…ÇäÊ»¹#h¨ª^Q$Ù‹'B¸¼ö»püµ*ÉNSä­.GШƒ¼PL(€é3†á«À²%U¥Þ«C£ +óY²2;0Ü‘„ÁHh ŠK6@Ý[ +VZ¬èc"‚ÆéL|-Ž=6³ø–H{Æ|ÁLŽ²*5´'bÇ0¯Ê +óåh Ô Á@ôG¸âOvÆçú챉’…Npub}úÆp™E”Yö±ÇE¢z–@áÐaè]¥jÐøÊdôö®v%~Òƒç AŽbã÷E©“«FÆž¹­y4ö4åÍì1ÆøÓüTåõ`-~™ãœÅoK?Üüò[u»¹©n¿¿a?ù× x@¡Ý„²[“t»½ùéæ‡áKÕDl™Q£/UsŽ¬ ºáâÑ‘ô¥ÆäÅ—FN¾}Hñv¬ ˆŠ/7,Îö?œ ¦T2Ì}~ õ]éÞeƒÿh2©¬endstream +endobj +1802 0 obj << +/Type /Page +/Contents 1803 0 R +/Resources 1801 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1805 0 R +>> endobj +1804 0 obj << +/D [1802 0 R /XYZ 63.034 602.788 null] +>> endobj +362 0 obj << +/D [1802 0 R /XYZ 63.034 346.619 null] +>> endobj +1801 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F45 589 0 R /F14 1012 0 R /F11 674 0 R /F7 586 0 R /F10 1027 0 R /F13 1055 0 R /F47 596 0 R /F6 1084 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1808 0 obj << +/Length 1975 +/Filter /FlateDecode +>> +stream +xÚ¥XKsÛ6¾ëWèHM+„x3éÁMÒ6¶iezH{ %ÊæŒ$*$e7ýõÝŃMÚIÛñŒ‹Å.°û} Ðeti)±L.UΈ6f¹=.òå Œ|¿ AbD։̷›Å³ïÌÒ«ør³¨e³ûQ¡Vn~|öƒ•’XÁA/Š¼øáê×Í«ÍÞ®Öœ‹L“ÕZkýüæåûŸ®\'ÏÞ¾z ï_¬Ö4Û¼~ó *]¼Úôæ .‰âêI¢ÌÄ¡—L—2qBjA SÎB°ˆf ÿ XŸ2™mVVd SAïñÿªÓ ˜ªEÖÝ–ØÙÛZÛ]J¿ ÉnåË55„[·ÄÕ¾97ÔrÕÀZ/0RwUyZ1“u¾óúŠÖ·¯Wk(Ýä“Ÿ¼-[üÄ©‡¢+w¾» +³«0‡[”ó2C#jßlÊ;5Á’îvÚÊù}:ÿKç%Í®‚ÒsSÞUkt×¹6|¬/íáÈH–jo“äƒR)²â훺©\çÑ 8cáæøFùW± Íâ´ó +«Ð±-N¾›¢½^žÕä”û%®WÌfŸÂlÿÓÑG·öÁ÷W0×í]W¡‡¨g?ãÖà@žkw;ÜÔwi¿N¼,ÐHa½Gð›û˜ ijä9áJ‡Ôø#g"ÈÐT†hÍ‚H1Õ¡‰4¬×ç³r%ƒÈõTƒ"ÒÒA§8‹‚iÂI‡•äÌJœ-‚ÄG?¬A½…ND@î­)V8‘|ÎmÔrqöLÖ‘$7|Ø551U‘<$}ÚÔo `âÎ烽pêp‹EýÙ'.iØY´|EçN0hбš¢‰ˆ§ó|âÉèøùt² ÖÐñÙšt”iF1qmž½ÞÏDˆ†EUƒÑ>ˆå¹ð¢:špœ:ÀcÑÉMÕ…”ðyrJ>p.!™-ì½e^S¶=ÈajqŠ +¿ @4 ©KÅmWÕ'/P~¼®é;˜²Ö7 ÿs·’ +ààRúO¯2d/w°³Ûnê7£ÀkT<îxÔbbp@RQ›Q¯tWÝ !]°dH&„áì,a"×¹YI°ã§íJlï& rKø‘ÇØ«{Žxi²!îS»QZ?HaPo¸Iu<#î}ªNx¬žÐìã<Ðôâ©Ï¥›¹2.ã­|GVÑ ÊÀ ^€úÅG» tÓ”¾­®¶UçL÷];Þkjâ}¥°ÊŽ\Ý 'šìcí/Ôíûj¤®:V>ö„Õ°^Õnëåö¨õѸªÂȲ}Ù|òS÷@y®–ëìõ)*éÊbç‡1Fñw[»èô¼ì(úfºµkðÅ +œQ“€‘|LÒÌ’ÀGÿ•ÌgHPU| p!þ? È/ æH@=Nús =¨”S a6šziût2Æ¡üììfv“~ÞÌ@·éñÿó§5uÍf˜Äy6Ã00qÎí´³ùˆ1}9¸È„Œ‹åeÈèß*@L„îöè{jôÞ•ŽÆ å–±ÙÁ•«€ ÷.Y|õ<ï +ê}(TÒìAg +Ô­t žˆDª@RPå9F&`t`¾5µÃ²Ýeª¼Ûº –¡X¬®¡™”§9fíùÒ¥Œå˜™eï@E½(ÑMKy +†ê瀢VŠq­8Š2-b4`éìqA·ãú`/ìÊr MOŽ¡vÁYO 2 +Éöñ7—_ŠPö[c¥ lYZbõÖÓlgÐjdÄæ ~Ïý¬&܈'j#ÙW¢U ó¾L¹ÆSn +õÉ»­»¿­¶,·aŽ#%Ù—m(àº(¨™¿|Xž®‚'VéS âÉÝAòÝ-3ÅàææG'›PmyáèÀâ  xc h®O.R£|° "$ŸLRgΞ()á} cv*šÑ!^á¾ ûÂwù¤¬äbˆXw™®š²‰;IŒÃuËxj„ +uÄuX$a_™yÆ`äE‘¯ø ÀíËè¥ Ÿe¡°Ñi‚0ØÇ*µK^Á É¥Å7Ž‹æËÝ"_þ¸€Û¥5Ë{hCníò¸9«ûÏÃâÝâ·áÅ$*['ÚÜ‹Ib Õ°=ÜÀ‚Œ@Ü>B +L%‘7÷ ”vsxrîg[µñQÅ×çüñ¨ EP(Ð,'š1ë÷ +S ÒI(  îܧ„úÌ%†«–bæ¢luòBçCà†])°1f''ÝFïE/å—RßMSv]¨&ÓLÆržbÕˆ)U·åRÓH–½ÆzRçIcºUýçìí R…Û'\'øÊf!L§ø ù1%G‹aÒè'ÊtJLÿÒ0[¦C6¥†:Š°¾æÁÁ pˆSnctx WXƒ|¨+\Éíî!FZ?|®¶Þb0¹0áæŠA %éè4¶0·Ú•Mq¹"q_´]ÙÄkLqŠ­€s3m×ÕÍ->1u{&iƒï¼øÌ5Œá›1ÿëÀ´¥é]p8Ó”&áF™¾v©À:Lá°Ë>xï”ñ½3¾ib»ûK×ù×Î+ÿd·¢Ãs(fÆT +ªV:öŸyœåò—âW2ø˜aendstream +endobj +1807 0 obj << +/Type /Page +/Contents 1808 0 R +/Resources 1806 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1805 0 R +>> endobj +1809 0 obj << +/D [1807 0 R /XYZ 91.925 602.788 null] +>> endobj +366 0 obj << +/D [1807 0 R /XYZ 91.925 584.788 null] +>> endobj +370 0 obj << +/D [1807 0 R /XYZ 91.925 384.024 null] +>> endobj +1806 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F47 596 0 R /F14 1012 0 R /F11 674 0 R /F7 586 0 R /F10 1027 0 R /F45 589 0 R /F6 1084 0 R /F13 1055 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1812 0 obj << +/Length 3183 +/Filter /FlateDecode +>> +stream +xÚÝ[Û’·}߯àã°ìq¿$QªdGŽeÇ—È›J¥=pIî’erI ‡RéïÓËÃɵ¹zI¹ÊK΀îF÷éÓÄFþc#-r¤)'ÆÚÑt}CGðæï7,Ž¨ã:óõíÍWß*9rÄi1º½?s;{[Âɸ6ÆT·ß½×Bˆêëqͪ—oÞ¼³êöŸÉêÍ«¿Á·}ƒ¯n_ÿüÓøÝí÷_}k¢·Ähº T& Ž¸yuÛ)(©&Fª³6)ˆaðß Â†—J®e>âx¤$ÎòSŠX­qàû›·ïèh¿¿¡D8;úŸ)aÎÖ7‚ƒã÷Õͯ7ÿ<(eŒje%üðàW=²`¼Fã xѺ‘2`"sÞ/WேM³láïbü¥Ìá7¤QýµÞ»‹ íG&™—m ÌŠ²IV 6dú0 ¿•}#šù |?Gý3›%†ýÉÐ¾Ú "ƒÙ)q*È{ýˆâ¶{ü;Éa¹ëDÖRé’g8˜JíHiwÙ1núÄÒ&QõAÖ`mjeDšU[Â’>Ž¹M6hš»‘P“Ü2Ú(‰…È ¯¿„Ü’¼d"$ªeæYLŒ¢Îš¨5Q Un"Øç.Úw7´ÏÊÓNg†¸.nþK¹Ê°„±ä£ñµ;¼vÄpÓ× Ÿ”Hò™ #8)âŒÅŠhhbiK‡ˆÃA´)9‡s€•òé âÅÝPOK”JŠLÏëùgÈÃÒL½µ‘Äõ4gÌÎO²‚Itõ04ÐË BË{në‡.ŽÏG):œQ@(‰Óñ!ˆ“‡ÕWlh +qÄü’Û +J櫯(N€d;D N’{u2®¹UÕ_ðN&åáÄÄ«ÆS_k¦X0qÅï‚Ô¿ÀÒ\¤,`™«rŒ… +BT‘dÞ·e +ÀýT÷A;WSCØ«Óà©«dæÜ5á,p¥ÐãPà˜û}‘ƒ`¬»J¡{Õsñƒ´“U\p"­òzýcž•ªŠb2Ùˆ^ÚÂ4ɸf¾mæ;4UÃÃ~»˜‡þá~€ëáò“6áåæÿŠj†EçÁ³‰]x=TK@<8ó4§ûõÇ +v÷CˆÅâûãä·qÐ'œ¦›->ü‚~Ct„2bÄÓÂk„´k7MtÈ2z¨d¡¦°8ÉÀ÷¥ü—²Ï 2˜’=à¤_\ZŸÞ +’[ñ'•`ËOЯ$«Î„ùàËõᘖ²nÂP„—í@1¨Õhô³(eWL;@|ÓSl:V™[ˆÅO…з°ü(±a2ô8ï…/ $×âh}3ð6`I0(CÊÖɨ…®^dL «|X]iÝ1•ÁÎn dº°Ý¬© ôù„é +}¡  °ZJ ¦m†¬Ã€ÍËb‰1jÂÐ2p¯‚Õº&,’¬:6 P Dwz Û- $f…€ŒïHÌ!$uDCƒØNúÑ_šXP°éðÀà¨øùý~Ó.ç›ø¢½ˆ ¢ 7r.ª’cô9 H‚a¥ò¯©¹Ày5—O€ÇM;ÿÀ›4|D^çáX›jÛøÔ+¨cìÜð+:O[ÿ`ù€ƒ±–´»ðt‚ŸÃÇÍ8”øô΋ú0/å….À•¿>ÅbÚ ’&7ØÎÔ1½Pà™½5•Ï±¦g‘‚]´ _°"Y—— †&Œõsâ×ý]ÛL¦q¡ŽRÂó†ý +-·¸é0ï +s|ßq´=¾ÞGúpßlÖ=""B_ ¼±”YêÒ*L +XÝ+'3ë³Îò"w~O]C}f }ìzGþ!¦Á¬"Z7·J]‡ÜQV "·5Ä‚ iŒW+"Æ1Ù Ò§Çsè–dÕSC´“=Ýx© `s4¬':;ѧ²úZŽq>f¯®¶Pþ/‚~7ŒyÜÁ…˜G°wúʘ²êLX!æÄ:ÖMx‚ôSààöyÔJ²Îª…9ûÝ=µö°Ü«j*®SÏ£Z”u^5x‡õ'Wm¶|Ørü¯ +äN£d/Íç+"ú´ Ü ¸H»‡3}º§4Ðë³kȹÄ¥z$AS'®$çQV †;ð3 6§1> ÷¨a 8)¤”•¢ÇA^ÎJàƒ-»>ü2ø˜3àÃÀLäè³¼Ø3 ¼eŠlµiüŽ„ôPi«étßÌgq‹C*@#Ñ Ew^ßÍ’f°ýWêjXE;*õt:'rÅœ倸Ž„Á–ûº0 ’ꃨB‡~åi6OG *Á[Œ…çÐ)Š:«”å0:WªPþ!¨x©äD:{¼Ì¬bÅc +Íïm +vø4€[tpçÐÊäÚ.Â(»‚¬:6ô±Äv¦›Ð£Ã¼-šè +è`ÀÍÀ_næÏåæçg[ös¤!Fý¡BaÐã Šhªw]¶Yu&l +—Ý„þ˜h·˜«¼”ºsŠSq!>K»á”Âõ‹r•W§«|­,±~ÕûiƒÝõǸCÚðö¨k>Õ`§"Õ læ»ålŸõÚq`*Ö&|C“æa~@”9y€g¾^™°º|íºã„ž”Ýz‚‚V~¥XÕïèƒm.VÀ/–aÛ`x”øÐí¦_\0®ÎŸ£]ètf›³ý„&¢;V,mZH<¨e@h½vû3Ȫ3a…Äa¾¥1Yõ*X±VYݧ$î)µjZ‚@%ݵ Y\$Èêô:Ö–³þñõÍj>i +°Œ$ëì9Ž8:¨’­¡„¥“ª7óvß<–c³¿áñã/Ãú aÀäˆ[ÐH\Y~ƒ¨ú «P}¹çäqˆ?±ýáåØØê?…C`E%.’r¼´#åu‡¤Ž@åq¨x? )£„N)iQÙ˜]KcÒÔüÛåvµþ|Ohn^W¹Ê®Hù‹f…®lÃóõlÎK ä¬;ÑúFYç à@=¤tn´hÀÔâ+ùO49™Ìç8^÷âÈMañÏ_àã2ÜÖJªÉL7c@ãÀOz‡+ ‘V⨨Ϧù-ÔbX'qoOƒSãQdÒÒ) +Ö¨(²9PäAâXlÞ¸bŽ|Ù½IšÇ°Øí×>2tàÀø·óТ +±Ù-Ûå‡t›ì/ž€šÍ|ÒvWn¼Þ“Çðió0U+ˆÔ×÷q†s‡ÞÏÉ3Çöà!. Ap_¾>øpnù!Ý´‚‚›Ã?þ=ú #ÊÙ„¿>X¢¿Zá§ÌïòÁ0lS:èa£LàšâM£tV8²îÃ_ëþ†•öÌ +¡3‡ððYfXM7ëíj™Âs^áä›vÑ)'ÕݯÚ}èN>…óǬé1ütï!`à™d­”­nÃÙëqvÕ-'î\¨^'@9Öáû(ÁD¼šg"Ô‚Z"ýE»ÎyÜÆû\I@™fâ Žß"eý+øJ /öÊ%ŠélûÑû(bÌ ƒŒÝÈ°OtTá}U¦óˇ½Ô‰‡7iHR܃ÙÌ/&|»ß4C{°ÝÄhé·›øgûàC÷u¹•ÝGÀþam#ÿƒpYîØ!u‡V5íÀöÏÿºÛ“c©’ÃüsÅ)ÿ!Í_þçž!xendstream +endobj +1811 0 obj << +/Type /Page +/Contents 1812 0 R +/Resources 1810 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1805 0 R +/Annots [ 1814 0 R 1815 0 R ] +>> endobj +1814 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [102.576 194.334 109.55 202.747] +/Subtype /Link +/A << /S /GoTo /D (cite.HAC) >> +>> endobj +1815 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [371.783 194.334 378.757 202.747] +/Subtype /Link +/A << /S /GoTo /D (cite.BARRETT) >> +>> endobj +1813 0 obj << +/D [1811 0 R /XYZ 63.034 602.788 null] +>> endobj +882 0 obj << +/D [1811 0 R /XYZ 213.779 260.859 null] +>> endobj +1810 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F20 1030 0 R /F23 1211 0 R /F64 1214 0 R /F26 1460 0 R /F48 601 0 R /F11 674 0 R /F14 1012 0 R /F7 586 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1818 0 obj << +/Length 2882 +/Filter /FlateDecode +>> +stream +xÚ­kÛÆñûý +µZžcñ¸Üå.·m +\;NÚÔ©{AQ$Á“t:Â’(‹”íë¯ï¼–‘§ÈÁ°¹ÙÙÙyÏÈj–À5ó*öi6³I»<Ÿ-¶Él ;__(˜ ȼó·›‹«WùÌÇÞêÙÍÝ)–›å‘2ùåÏ7ß^½ÊL§²,öF^yñúúû›——*z{9×ÚD.¾œ;ç¢ïÞ|õÃ?®iQGo_~?¼¸œ«èæ›7ÿD¤/oZòŒÎb«íÙ˜_ñ„Ì™8O-ÑWÖ—ó47Qs¿âÁ(9T8Ž–0<.^¯îðv>á?/ìp|Ðíeê¢[XtÑ +_r€5žÁ!Ý‚‰·+†(6xïªX>0l)!B†°¥£­P‡wn*€RÝ+Ó</ü¿åýLœ:+»Ï“7L^àħr³á‹vUƒ§g0±±¶À[ Ì2A,Õ‰ +üä»ÛM } Â6ÚF7—€mµ@þÜÃÞ®\›ÍžqÌx<\lÖÕ¡„íæ~Ë+L ŽêF†¹ç¢ +Ùóž÷Ê» ˜•WÐSÒV‡°Ø³ø;‡ FEF%cˆÔÓƒ¶¼ÈêèX·†Ó»”jàU`ÇÎÓ«Þš +MDžˆtKÞhÓ Ÿö›2<¤ P:pöC±Óí%R¸.”v +¼FUHS4uúÌç +ß÷Q<(ÂÉãG* ¾Þ$¹(ävÊ8ãZ…N’ ûu&xQõÇ-% ë¯Ë¦¬Ð²Ð¬À+]ï„JÔQdd4’ˆbm[•q±ñ!RÖ§QOgiœùY†¼‚¨ñìÃÅ?'³%¿o/’Xû|ö ÆI¬¼Ÿm/ÒØç^f›‹_ü« Ž‚jÞÃE±±O†¸¹î>âÛ~D”…fŸ„*Áuž,—rÐî“uÜŒèy+“> ]‚ë<]ÞÄJ«]÷åÔ>ÿzšÀËž„8Au–6£@yõP”K¢Í²š }®Ó,Ε¸ÑO÷å­ Ô^{ ¾•Çlì¹áqÏó­v ·?¬êàCròRÁÿãn)HZ—±’ òÅ°Q,È[UÛýF¿ +´¡áš¢~–gÓ,º!†g;Óãð ÄG“è¶hC’Î=z«‘]B°ƒê1³TY€-IÔofÀ5ï!Iƒ¯±¦½pÚ0•uÔª§!Kp'Ë% 5CªÆv©r™ƒ{²×y² µz÷ðDD35! +»DµpY2¾Iǹ ´|˜¨×ŒÉUpI¦hñà‹;¢g ò3ç*!'‰îHUçIý²·J:z§ ]õ¸=ÉAu H¾Pã×`›gýt1Q´©<à¨v¨®¢Ua°©¤ßvv¿ÄZðSv˜eçCég_°l«a°Ðš•Y'M¬–rTJ©¼oç­{Uìº`®§°±€‚Šm9ϯd' •#tø9ì¥ ­ (.ÙA*¶œ-—>à¾JrN°ü“ÒF*’wŒˆM÷{¦åŽ*Ÿí dŸë{få‰ì@Æúh pRˆá´õ%E¿Â?9ef°æb¯"ï¦r¶_ž]ß ‡È=+BGT\×mÈÃïåbDƒÞ÷ƒG&2{½²$v¸N®®>çí%kT?·xסX48ó–…ãÚ.‹ýiwg Õ¦u9mð Ê vœ³ã®&â–Þ±â åç~ö +kxrÏÃ2臗W Êàr¦æ¥¾\Pú]¡ ê)ƒå¨îÖè|P—;wf¹[R’Y˜b¤cvCúN…ƒ:û¸O±þÄ©ôí"8yEËCm†‘¼@Xž¶[Ú–C°Å¥ôžBϤ’FFh†qô–æžMËï½íb]”\#3.Ø(\&ä)Ûh&aeÃ\íyJi|ëf%+¾w¯¡& B›ºmP4Å‚» ãè0%}¼#›CøáàÈÍ—R®hÕ7×SÎ —IÏð¤SuÍ«§©ÿ¥îpÖæóÌ«èIJu +†YJ_=[ú²©0sL|÷þø]uØ’f€^sÉwè2ΆºG°Ó܇¼% .ɶúxA ÜzÛ¶öŠöÒð—¼wE*š9éß—‹º}‹==äç„ŸÂ ;ÍÉß:q¦‡bMíú”“Y®¨±ê¢×œRÜÇA‡ŸšìédŸZ¥,Xw¾O­kŸÚöL~ªOºIÕ¡‡– sa ü´Ñ‹Ø_\ñoìÊëFÜTÉIðŸÙRsGP9¬$ò« Ý’ð¾%ꀦ—UãFuÜ´ÍÒ«W™.ykñ-PMçè?=¤>Ž0½"š¥?JÛ‚*¾6d”‚¦ÜîFåk +ìñà3µ­KMùêlöHù*¸æ=dT¾ÈÒIœÀB€a‹ç”2£©Áù$” ®ó”“ÓÊ«åq±Š§Äå–Ú»è1°‰Úû½nô»€Î{°|uÞ]-¿ÛJß•mm6¡2ˆW(Iæ²èê8¯4 +kž|æ϶ZÊà9‹º>òo˜ðç/ƒc2Û>{–ʹ푿e=IKº®’$Rö‡%¦ôs.|, Á³G?'Ð/}ïêUsÜÇ“ýã«&˜8z}ýB.ÙÇ61<¾æLæò“.)È0Ò)ÔiP_Mn+ák¹k&÷SÙç§Ð–x–j°„§h.„ Ü#u£ím»=Þ:†’jD‚#÷â€Â¤&„Vñ¿}Åš À°/µ½ë<"úðçÉK3%@A˜òÂô/…ôù_ÒõâÊפF§Nðþ0@*ºùˆÔò@Ý]'ü{ŠþeÑeónQípÅä>ÈC>#ωï4ýœúîûwoþ~ý߮ưÞxpÆîïbH2&[Ö!›ãaŒ¸žä¾NÆ÷jÛ,ä7ë‰k`ˆhR£tzÊz5Åû+þÜ>{†L{?N‘ÖÓ©Ÿúo"S8ëmþ>Œ‰endstream +endobj +1817 0 obj << +/Type /Page +/Contents 1818 0 R +/Resources 1816 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1805 0 R +>> endobj +1819 0 obj << +/D [1817 0 R /XYZ 91.925 602.788 null] +>> endobj +1816 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F11 674 0 R /F14 1012 0 R /F7 586 0 R /F10 1027 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1822 0 obj << +/Length 947 +/Filter /FlateDecode +>> +stream +xÚ­X]oÓ0}߯(/vÄãψ´A…ñ¡){@€ªmi³ˆ¦¥¤…ý|ìÚnâÔ M7MSûøúÜ{î½v ;øƒŠ@€p‡!`œwnó£ “Š™·GP#| ñ+˜³ø¨Np'ExR7'ß<BÐõc^ünÐõBÞYׇÞéåå  ½8–cØ»¼oW¯åT<üü©û#~ß?ç¥irÀ(\¤Uˆ#‰8Ä‚8 €aÒèƒÁl;Á;\ìD+N†éz»Ñ®ÒxÙ¤ëñüÀü¯fE–ÎƉš™Îg©…êm•—Ÿ_•K¥›fyþk”di¶”@X¢ONJø›áÛa<:ÆjÈW5Øü«€‘¨ôC„„ÐDl¢G}ƒða"±T¹Ê„"”m»ú{\¨—ê!xç«i‰yºx®'VëÔ{ºØ°[O<Ñ+?~}þpúÕM;$À5Ð6›6ïú˜ ãé|9WÛ¼¾œ~ºúòBšælx´½3f `fãÔ±±X†pàˆ<T,Üi(==žcG ˆ6Ä€€Q +ÜS¹b¤´ÝeéÝ(‘ɘ¥Ån%‰·Yåîl!0 5å¥FØÞ…­Æè¡sm·Ø×›qò4¥ßSN-¥Õ"TϾzÜôzR¡ŸÇ•¨÷úNÃLZÿ.FÌ㊘î`rçhT£~o1×oùÑ2Ê–Ï +“øšùM–ªXÔR_3Åö÷.›ŽëÙ¿ÚÜM™(ñŽÜçâæÏ›z’AØn“6Wg;Í+Çß!7›Gó¦ï,a3§íÒ‡ís­¯þ. ¿ÎG¢“‡‘ëW„`P¾U&ÿÜnêˆendstream +endobj +1821 0 obj << +/Type /Page +/Contents 1822 0 R +/Resources 1820 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1805 0 R +>> endobj +1823 0 obj << +/D [1821 0 R /XYZ 63.034 602.788 null] +>> endobj +1820 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1826 0 obj << +/Length 2790 +/Filter /FlateDecode +>> +stream +xÚ­ZmÛ¸þ¾¿ÂȇB.*F|§R\Ü]ÒËõî’æ6ŠË¡ÐÚÚ]£^Ë‘í¤é¯ïÌ”)Sël›Å^½ ‡ç}HñY|VsV =3•`Ö¹ÙâÝÀ›¿^ð@Q’2¡ùöòâéK7«Ymäìòú”Ëåò·‚ëjþûåO_ju¤ãZ³ZIà‹$ßýðüÍå‹9/ÞÎK)UaÙ¼´Ö?¿þþÝOÏé¡,Þ¾ø(Þ}7/yqùêõ/ÈôâÅåOIÍŒ4gWi²%h7s€Í$kÐV1' ¬¬ k¨tÒ2÷~ 7á}§ %¯X ÿ=£ aÐè©«`UÚê⻟^<ÿåÝ›g“D|^ +#tq·ýçbÝ6ý¼Ôp÷¾ÒÕ>À/ÿóä(1ùT^}»?ôÏ©owÓ,T¾xá˜Pj¼øÄJ.™„_âÖDsyÛ‚¼\"ûÝÞßßÍ…-ðd½_Áïv½Z4ûU·Á·¦Øß³&.áºEýïÛþnµ‰w;ÿ–HÃ$ÝîVô~3uX,šÀø +à"ùn¬gÖðëïð¶]Fr þLÒ)¹ÛUð EûÕu›5ŒøŒBEnÀ¦#–ËÂpÞø7"^/qµ7«ýÎß^Ó ;/IÎW‘’ ]%$¾T3#¢¾¯ª*S*!¼'2E³Yú‹boSB€†Q€ã»#lpíûUƒ:Zöo›õG|Üîò•ý$"¸Jeëå§9SVŒxrÅ΋kMŠ‘^”í¯vÁ(ò… PâûÕÿ­ˆ¢!•w›§êÛ‡Udéªk^üÐáøO®õ‹èÿCj«hýØn»_Ý­þ3"Nïuˆoýyð“ãvÍ5Ž®t±ºÎÕˆcù &®25ÕŒ×Q4pœc·øP릿i{Oàýc“Ü ^ $©`êaI¸$öG˜'xt4ÅG?ìÐ\¤.^M {éo¿h½²!*;’Ó"pÄ1:x8­WÛ"X ^‚jàm³>4{rB­ Ò<\#Ù¦ „ÒFs‹—JùÿŸnÛ>LÓ¬oºÇíoïü“Ýi‘J3¥ÜL)Á ·˜>\üö{5[B&ùñ¢b²v³Op]‘¦î.«]îÖ¿^üý˜i"¯2avš,¥rLI;ÌGþ½ÍPÁxË£  +¼Î¢2š9ÃǨ†¡s˜HÍã  ¼Î¢sšY«Gè(nÝÜfA¥aþ(Ð"¯sÐTåw#dÞÇF¶í‚&À¼[øã°#3‡J¬vã¯Vûðç £bà*;\.—»Žù°.=îÔ€R„Ó4P[ñBภçö}f†âãÛ¦ï)àïqZ«Š_}²E¯ßz’çn:tpŠÉÁŸNCYE©_úú…S%Õ%…!¸ÛwþÿÁ{|ÈÜêÔOáIîBH‰` ŠXÖ×(6°*^§zBÓÈH‚kêÛ¥ÊGàÇòC1tŸt)ÁYæÀýcJf"%¸!µ>è '•V0Ê#iÖùjœð–‚;$¯fYzê»q ã1o¤sŒñZ¯–mC)_Ê4PK;¬°õ·;|×ÖKO:ä||·è(`*?xD@ÑÑDøºÁ„ž’!ì»$iÓc¬ºÞ“_ü郑E&ÝD‚>Ö’2Q\“áÇÒ2¸Ù!.˜ï<¡—29§Hääà½`ð`?ª;fCáºn| :a§Vú©,Ó•šê_jÈ´¦8P˜”â”*T¿œñêKWL{¯5zr‰¸x¥-“IºŠ3iÜLÊ2š"i‡PÑb„¶ÇAJ1¨C¢uçNn8«”x~q¢¯¼Ç˯2aæ‘àF1!Æ‹èÑ^ÁÖ|53‚bQ0ߣÀ ¼ÎÃí¸Láí {Ûɦêõƒ6¼dY.ù’cÔƒë´ÍÃ0 ^zð!?ç UçOfJih$Â%”»Êꇄfkô=R ¼Ê„Yny +‚¥æÄT<‡†Ö`ª#14nЀ‡54ù-°RC<Žû)É´Sð]ü%çø‰óplÍ'tP£ËŒw^ö[2· ùCXƒ÷tš"3Ìùi.I[v¨N¸(Tåá_Mˆ T=Ѫˆj¦Ym’hÊ„’¹Ê#DI$:éZÓI,«p#æÈâ›&‡ –¶“äÀC>V˜ÝãD­˜¶3ŸP$1ôÛÔDnAœªÜj$ÜDþP‰TnBþfZþï«ŠçÂ¥»¾É'U¹ÌÆœug E±”ÏaŽY| æÝ„¨@¡ ‹Ä’×UÓ®;¸ôç`kQ»\NÜί2aFæ”Âàÿh©9‰ößX%ME_°‡Úž‹¨ñH6ùÀè Ì7W97ˆ´¼yîi¤åÆæ‘öá겫-h ¬\|²<§òÈ*W•…`UË8›oì>NX"$3‘+ ¬Ai1Ò‘ ô-í¾N @AÁ0DôŸßdÐ5HH8ñÐ&è~^eÂ,—‚LA5i(aýíùܺâë˜Ks)¿'z CR(œßP2CPÁ6×MVÎ@¯`9PU€ßI=ÕèEšH‚Ð_®nh;+”ù–‰g :¥ ¼ÅÚ‘ÛÐLX)ø¸y$sþÿjàunKôxãNõt÷FH¯ÓGy(…–fÐ7N{™ï}AugBÂ2Ó¬Ðr%6°ZÚ³WBâëñÔG¥Ê¯ ( lÉÙØÁ”ÔÂ`H ý–„)BC{jҌ޹ÈâîþÝcОUyä•#v‚IXV‚8*;ïV¸a•Ö-²:Mp¨Üj‘B£V…e;*™áp8 }¼§½„-®p?üĉ°0ôñ‹Õ¶ŸÇÝëE³ž8X±ÐuÕîÜþ ²d«‹d£Ïõ†JÖÃö^Ÿn%à³ÑÄaAg +´Åb ‡ƒ'a98!¹Êk+ UYm•/Ï8Õà†›´äÕ‘z†!Uç»t¸&,Ž,pwß¿›„o›@%2H@•”˜ä4¦cÁ—¢³ŠpAÏGk7µÉê‡ñÒ9WçħÀ2MVšŽ‘r.¿ˆÔüòýDÏrP†é¦pÒÓn´e…GXa«-‘?ó[ÊtŽ‡~sp¯ðH;2Êf÷oýñžqnüE×ñ4vü‰L¦ýd´µŒüÑŒó–0¸ßÒ? Ç¢4tßü+žuâ+–† |;NðÜ*ߘ#êö«vX¤ÚaÇ49êÔD‹¨Õ«Ük Û#‡æE¬Nùèë(‡ÇÅ©3±g6O¨`¤ž‘)AUzH;¹ d´ög¾è»Úd‰êÈïàô‚Êù¯Ù5‰¼Ê„YÖËrYA 7ÄÞ~§RšÂ¤îYàu™‚°Ùà~v¿¶ ¤eB{߇)‘„¾Íàfê‹ nÃ÷$Oÿè?íØöm IpqÀ0î‘âÅG<¨ðÛçþ+<6GÇ;ü‚.0±ÑÁ§Y†<65¹ƒœË«ªs¿Œ,ÿïfõ± _œÜuËÃú°ó7O®Å³ +3h¼›= xX?ižL‚«#¸§÷ì¿c_"ê©:R‚[ÚM^þaÜmðendstream +endobj +1825 0 obj << +/Type /Page +/Contents 1826 0 R +/Resources 1824 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1805 0 R +>> endobj +1827 0 obj << +/D [1825 0 R /XYZ 91.925 602.788 null] +>> endobj +374 0 obj << +/D [1825 0 R /XYZ 91.925 416.998 null] +>> endobj +883 0 obj << +/D [1825 0 R /XYZ 229.227 253.09 null] +>> endobj +1824 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R /F11 674 0 R /F14 1012 0 R /F47 596 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F20 1030 0 R /F23 1211 0 R /F26 1460 0 R /F64 1214 0 R /F48 601 0 R /F7 586 0 R /F10 1027 0 R /F13 1055 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1830 0 obj << +/Length 2837 +/Filter /FlateDecode +>> +stream +xÚ¥Y[“Û¶~ß_¡¾Q !’'MgÖíl¯GyHm‡+qµ‹¢BRÞU}ÏàeI¯Ýéx¼ðàà\¾ó’‹þÉE¢E¨£E*a¬]lÊ‹p±ƒ‘WÒÍX¹)«Áœçë‹ï^ÆÑ"i¢ëÛÇbÖÛwZ,WƘ`ýÓ‹åJk¼~s½~õf)ƒ×/àÏÛ¥ÕÁ<òv¹’vþøû?ÖWo®—Ö?÷Òö he…I h„²e,qÆÅ‹u§f&ÂDñ“;ñs¦[± +%ƒ­Ä&V%´\¨BÐ/6qPZ\Ä­d(Ò8uãÒ—Çu¾=mòMÞžŽËU¬âà}‡0€ßÒû_ù‘=ãg‰{ŸßÀgrv1ÅÖ÷Ni°ŽŠ´³Î­ljå&ŒéåJ%ŠwÅ­:o¾Ÿ]3ší½€Û~§øÄpÇn‹Ç*8¶ý,¿ù›ÕßO¸ÿ&ߎv¯Fo?^½ºZ|~µF›]¨û/Nüë}|óÏË?¼ÁƦÑ*±|Â4nÂxg ÄebÐ í©>ð2_4Ž™YÕˆVáUws«òd Û¹¡_l·->ÏXîÙ8Œ®ÿå´$Za^Íô+q³›dÝJj¡ÒžÐå’a}W@ž‚UMQ÷ðšók ÍêÔߥƒ ê”áj ±ÏÚÜ}ßÞõ3ëœfGèª+è³Á>$¤ì•’©a”8¥ß£¯ëmE¤¼ËëüO\´¨1Âp›¥Jƒ3·Ÿg5Ø£?R0×ßÂäÓ¦-*Ü„ C®”ŒD$1F$Ø3&¹×U óµÑÝ&°M"ཥÊØâÂÚ¨àÔd;7­ºå®l¿«j´g{WòHy|Œl*(Uñ"Š"¡eŒ õçÅ»áb ÷óE(tj÷Ð…_•J¤6uoû‹ß.~íÐËZ „Œ§b)£n=ÜìuüÌÞ»íJrwg×ø¼Œ“ £=e7û|ðI±Y*ÜñÆï—àÞê´ß²¥5BÙ‘}!hˆ}˜JÎSIЂ \ +Ûì¯2+ØÊ5÷ú脵0’²†á…] Ý1uá0fŒà®K×u_`¤îYÒ < E'<0, +’µ95#q°ð¡‚C<%f)Üü2CÉg|Ѽ5°Ö{œðc¬lè&²XÉ’6c³Û):(kÊûŽ3 !záú%ܦÎ3^Ë߇2!Œö Èp$¢ÑÔõ“•Ýs^„”-œŠN*]çÜÅ!îd´__÷²2ämVâIÉ~€©%a䆡 íYlg&bE9£q‡÷ƒ€DíJfM”ħ£/JÉîÿDŒ[ÛCž·„Ï¥ëôqnå((QtŽ‘f#*š8—R­„JcGWFðe[4ók:ª#Í]UclíÏ× Ñœ1דë©n§6U`Ó¸£ÙS£¦pfô6-1n;%Z²ýl& §•™©·è- !pœ–Qê´¤0²ã¡d¬£UBF^Ňe’ŒÜ®#,3ÇÞêŽI"\ñ²í@À´÷‹Ö AˆÙ1`2ÿ‚Þ¡VèÁt"‡©ðì“r¥Ï©Ðp¤‰CkýÖáTá¡\¥†"Œžž¼Aû9Q…š¢š8ô 0£t_øóAjÇp‹ƒ¨ >þ-}ºi;n–&ÝÊ¡óK4¤¹VØdpŒˆfr6„“aÒù¢ÚÇ ¦e_ÈÄfPöÕÄÙpŠHÒaÙǘÒ*XãUˆSµK°wá™Ê- lhG>$Q[6†˜÷ÑUpÍÞ+Ý,¨ÈÈ(fN%þuiP;ÊÖ|òÆ™?%¼‡“;§I¥,g8ß0,Í]¾õôn~S|~¹÷A G¥S[¢oü…Ðå–ø9¯‰u,àTýJøü„x™‚“zòDYv£¨Då eÅF²ª'%‰#æ Qd: Z5€=5›ŠÖ9‘v·q=xè@yXñ4…÷€ÅâgFÀ媀„*åq oþ¤îê€"†™sãñùb’B6F{ÓÝL-á®zä“Á‡© ™€u½o6sÓ‰Àd#Õå¡b ©YM¢:™C>Ú€ÛHþ@wЮf¼ «ž@ ÞžT´uâ©?7îZǾº »Ó`ž4+c!döÏ|yAýþêŒdvÇŒŠ; +~jHz=pþ{Fí~S^í·ŽãÒR3a„E¸_4*ˆ3%”îc;”3ñ¦ÃÔMp[꾪ƒ;­¤¢žxá¤ô'B©î·‰É +FWô½ˆ8ì¨ú”Ó‚°ô[²3™xª‚ËÑQ×êêðÅ?³׎ ÏÇ}±ÉM€>b‹£b¤ƒ[³ºCH7GÄ5à5O„h&C_ƒœ¼?òøàXx D'e_?B :’½ÒÒö7$Ò|>O3R(¿ð§ÙèHìØùÃð…ÚÞÅÆ\£žá#p/¤Q§rå:æÒĄæ›p '0é>i$“nœAï´§{Fª‡_ÉóUØÁËœ7ßJ¨ ñÏ>M³$ñ€øþ_9⮿RE€Ò™o+!T¬ëG¨ GØï°†÷‘|Ü¢‡o–ñmô[ñaÈŽfz™I§è½»ÀínA‡¼›ïüýµ~³¡Ì|Ìœ·yÍ·î>K¶þ‰á¯îçJ©ŒÀCg~ö JÄ©üúïRHb5ÿËÿX*¤Ëý*DsF'‘€lC¢©!ÌWŸ2§†U"¯QÂBñM ßBkÆîJ êóu‘ïn‚¯€ÎÕ;ºGh(h¡÷–)Ýbã‡tG…Å¡)v|ìÕ!惤¹'&Y4¹aFé + èrˆ*ž mÍ_g€šÍ®£îò‹®FÀ)oÖ+¥„NäÜ Ž´0ăÿaGSendstream +endobj +1829 0 obj << +/Type /Page +/Contents 1830 0 R +/Resources 1828 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1836 0 R +/Annots [ 1832 0 R 1833 0 R 1834 0 R ] +>> endobj +1832 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [341.137 429.427 355.86 440.275] +/Subtype /Link +/A << /S /GoTo /D (section.9.1) >> +>> endobj +1833 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [161.896 350.196 168.358 362.789] +/Subtype /Link +/A << /S /GoTo /D (Hfootnote.23) >> +>> endobj +1834 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [172.906 352.687 179.88 361.1] +/Subtype /Link +/A << /S /GoTo /D (cite.MONT) >> +>> endobj +1831 0 obj << +/D [1829 0 R /XYZ 63.034 602.788 null] +>> endobj +378 0 obj << +/D [1829 0 R /XYZ 63.034 391.499 null] +>> endobj +1835 0 obj << +/D [1829 0 R /XYZ 78.277 129.994 null] +>> endobj +1828 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R /F11 674 0 R /F47 596 0 R /F7 586 0 R /F14 1012 0 R /F48 601 0 R /F45 589 0 R /F42 1073 0 R /F13 1055 0 R /F20 1030 0 R /F19 1034 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1840 0 obj << +/Length 3075 +/Filter /FlateDecode +>> +stream +xÚÍÙŽÇñ}¿‚³pØîû¢Š,'2¤(‘ÖË\’K ÄC&‡:þ>U}Ìôpz¨•BkË™žî꺫º«Ä&þgLjãj¢)'ÆÚÉ|sE'+øò÷+gLã”i6ço7W?þl'Ž8-&7w§Pn¿ULñëßo~ùñg%»yL)⤸8åÉ?ÿëæé5«^]O…•!×ScLõâåO¿>ìEõêéO0ã×'×SVÝ<{ùOzõô¦EO +E´Ðg)RÃà¿[N8Õ“©‚_×›q:SgÙDµ8ë«ß~§“ÌúåŠK?Â3%̹ÉæŠiG„0ñ}}õúêßFÌ8‡=­„•-O•žX`–ö̲ŠP7QFòÎsìñx±Úíë~ßn"ƒM·F4*#_ì`ÖöZðªYáãy¸ÜÆ:Y½Z.Žó¦Þm#”|gF‰^0d¸Í”)I,üa¦S¹g[„ÿþˆ›!P®ˆe¬…9•Jãn+$f‰«VË}X§i·Nâ€Saݧ!\E8Oõ§árÔŽ´º@ª…Ï ©Ùv1\ÏpûÄŠw%VPF7ðÀ—Aù_›À‹„ ´­Ç‡h*\ºÎØ ÂÁh±4°÷ ¥4NÝ4EŒÒ}ìrì%QF€´P>•XÀŠ ÞPE7 ŽÝõ”»ªÀ +Ê8ÊOE”r0vj®Iñ•¢ @úbfÔµ#Á„Î)òýnWP8PT¡“F¨I2°»ýlJH^1ü^“w)Pb8?Ñ¡žX«£ ¿~25€-=¬YÚéÙ]Q6T³qKÉ]´­‹ÿ·Þ· š£x  +ûsB™<Ùßuß 8hÙꆤccÄ5N!Ü$.w„3=®›S­‰ÒrH /`þMšó´ˆ¯ åÑGl+uØ ÈHÖCGU}µlŽûmA·8ÑRÝÏ=’1k”…´‘ÿ¯5j"€)Sn€wÅ@Ì4ÈÝ)êe)—HsÒDüçzu9í—!'0Dü¸"%Ä,ú$âš`+«ÝÆëò†>ÇlÂ,` ‹}9C„¹ 1ÉðÁÁ4µ@ qÀŠs)“Ä0éL‘L +;h âÕ!lÜ íq¥ªYç߆¸ƒ{Øð6÷QüÆü÷¸¨Þ¾Gº|“Àƒex¸­ãÈ,ýÆ¥õ&.D¨„Zc¾° +³š„Kƒ¼üˆva`¾Û®¥Çåv^"^sÁ^œ”>:¥<5‡fÖDvO%uÕû}Šóà¡ÞëÏ×Vb ݃\àP/ ÉXëŠ$£Õ:x©Ýû ÞEd¥çiûFŸ±¥m“ƒ©„ öYVϯ¹©ÞÄÐâ6ÑÂçEœ[Î >3?¾\„©™£ïa.˜Ÿx|^ÔÞZÛCBq<ŠÏ¡h(`™¯qÍd8T? é`›º5¨Í¤½Qô‘͇㦳VI3ð¥F>Ô â +2Œn¹à™’M‰*zLÔ‘ {LB‘϶C20éhE¶-Pa]J1[µÍl±Øy}q˜Û°ª`eÂT›ÿ±Mõ°æ1¦ì‘ö[¤¶IÛÆÝ5ª| K(ß ZEåËÐúÊ<ÇØQ©_„Œ/u¥}Á÷¬Ô•#2v}èQ©w€.!õ´ŠRÏÐúÊ4G¸Q©_„Œh$Pk¾åHK¨é„•zèR?A«(õ ­ïh„Ó…8Ãñž—S anÜå\„›Þå@–ÌœW>¡‰¡á®ÐŽ*_èÊw‚VQù2´¾NênÜã\„ŠKzG4ÐhÃ2QîPÜ×*a_I4WŦ‚8'M ½XŽ:v½2öN<ý4Û`ÇÀ:^Çb…gœë mƒ©ªÕ\·ÕYá¯ßžoÐ v¡ÉI†÷°§Âb h=‡ã;ÛSáÙ>Ò:{*˜îG•y²ëú +˜/) aérš»j‰lXwï5Òï€t]'ðÁÀ3‘@¡® ?'ÃRÓ¾¿g¬žg‰lû·…:‚ÿðÓ"ò®XÙj¼ÂÂ榞+“jV–pÅzƒo—¥ê¬&º­½¼+…ÐÝ&ÌÑbmR˜ÐÞVQuUÅPSr&(ü6iÎi L¡óƒÚ2s_ VSÛG‚ßÄW2`sµ}?ÁW6œm›Qðùõ†c|ÝÝÅ +·SD÷««©¬$úe%ž••º¦Î¬’§ 牅vXwR{U<†5NH¤¨DÑH[Eò# h´Xab®úOV,çpÏQ†"dÞ^È•ízÖMí}ME#ü’zð™X`q@sG£-lG¥ÈÙèòÛí"dÐoÿÛ™’Ì÷Ñ®ÁX›0>¬Q Kè{úœ(•Ðû…]%²Â.+»*'S6H"Õ×OûÌØçmÏZjñŒ©o©Ï—…Š?ƒ¼¬×»‚}pÝÙÇ°Äšã8RbMÎd¬Î[ûÅ2»ºw™}€d^¥Ÿ–K-Û¼*‰Ý³ÜȓΆ؄î¿=1XUƒÁãÿÞzY`U ? §Âß[ßÂq/õ¶ì ,U÷­ïrYݤ¨âqPÕüØéirK¸ÛlÝÿ7˜Qa=›÷º¾º:-"©Uër)‚BŸ´gV¨ˆò&¨Gû (0í¦êPFæ:ªñÒ›[}ðY×±¸ì'¶¢5³úàE…ŒgÕÈï‚`ÞEûy¼tXõ8© ¬õ¼÷N^öØçX.^CP€Ô¡”Ϥ“Bóÿ¦×l=endstream +endobj +1839 0 obj << +/Type /Page +/Contents 1840 0 R +/Resources 1838 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1836 0 R +/Annots [ 1842 0 R ] +>> endobj +1842 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [242.709 177.372 257.432 188.22] +/Subtype /Link +/A << /S /GoTo /D (figure.7.4) >> +>> endobj +1841 0 obj << +/D [1839 0 R /XYZ 91.925 602.788 null] +>> endobj +884 0 obj << +/D [1839 0 R /XYZ 214.092 468.789 null] +>> endobj +885 0 obj << +/D [1839 0 R /XYZ 204.351 216.58 null] +>> endobj +1838 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F26 1460 0 R /F23 1211 0 R /F59 1176 0 R /F11 674 0 R /F42 1073 0 R /F14 1012 0 R /F7 586 0 R /F10 1027 0 R /F13 1055 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1845 0 obj << +/Length 3089 +/Filter /FlateDecode +>> +stream +xÚÍ[mÛ6þ¾¿Âß΋žY¾“ºC?4wI/’àÒ=m?8kí®P¿lmo“´þf†¤D[”²MU``M‰Ôp8óÌph?3ÿÅÌ*Æ•žY.™ó~v½¹à³[èùæBÄ‹8d‘yvuñå £g«¬š]Ýœ‹¹Z}?wL±Ë…sn~õ¯ç— ¥ÔüÕ›×Wß¼¹óWÏáÏÛK¯æÿ =o/bŽ7ÿùŸ\½|óúòÇ«o¿|á» ”ôÌY¡laŽ¸x~Õª©¹eN›Ñ•¤1½¥øÞJŒÓÌKK³ï@±µr¾\ßîö \ï6xGÌ›CèÙ츈c¸{]ãÅ.›í>?†´Þ]J?â8꣉–Ûpñl¹ß×Ç(n_¯ ïšfÀéwqÔr» +-ÞŒ£íäûæü]Dk B°ÊZÕá¾A™kð’Özþݱ#PØ2HIª+ Kó»z_‡«úCs8B›t7.qt7ûvyl~‰‹Äî}}¿¯Ô½ÅÛÇ%ovñéÝMølí’ÑÞpÙ€½Ù¹Ï“¯tÅ`%—Ë,·ày þ=q>R³ÊÃ_ËŒµ8îç‹ï䳌ûö‚3UùÙ{hs&ªj¶¹’3£l¼^_|wñïfBjf%4P1®m1væA‹8 +$À³F ¦œ&—|æC|‘¥7!ŒëÒš)®c¼Ú¡‰/•œo±¹A»Ö{tV¥ço1×dÛ %ŸZ(˜:Jù¾Aì\.d5_!¶~àB×+­æ/¡_°¾& aó¤ÁRÉz¹EîBô敆y!⼈:cñBp8,¾Þ‡ç,ïžSŽUBÆç>ôå&¥ŠÝí?n˜Uéé‚5™ë§’)¸`BzŠ.©{óp ¶(ØA)V(Oì Ã0È8†UÎ71 9I1Ï«è*Îã0Õ 3Ì{ª]®½fÆ©Ù¢“ò¡dY™2úܪ5Ç¶ä “ƒKœmŠ# ÓrSÅZ'n0Öte™7"l!Ñð7»â©Ê&H>ì·´Ifu»‚¯J`òmÒ+è1Å]¦úO} ˜Wt®: +tm_}0Ð=Ór,ÔªRÅòN@y' lZ Úö å]“† æ/š[,„ö±JqÌü-”D_¯³Í˜Ê‘W¡ôÂ-ëv·i ±Š¥+¸·^ºKÓ©§®¦Ý^UÜ^Ï ©‡YafÙ2zkUlén!™®ÄhÝ®%Ä!ˆ+XÃ9ò¸æ& +eûÕ] +EnB=G6¸ T¡à…OZìϸX(òŒËu7sèV¡Ðm¶©j­ÃCl‚C­°ì—Å´ð³°è,R Vèêf@ÁE7fÛ;"@­ÕîªIÇeøØ ^kôds¿ŽÕ%¬/e­|& þçgûÛÀ,¡øæYÅ +sµµ½›§bæD<øÔ»Ó I|ȯ‡•D链¤¾€TÙÊÿPP¿j«…%"^ƒ²¿¶@Þ…ïp Cûp¬ïC ³Žƒe]ÝÅçÈÝ„ ¸ý îÚóŒ†6ô$‚`p»ŽÝïS¹wÝ”Ä %üÝàÉ/ï–‡4jG–*b@Õñ0A&‚Ì/µ:±P~nJ1wƒ±¾‹- ‚‚QŸmÕ®ƒ+Ô7\d`•=ÃSåP=îŠnÎM2:k¼Êçø¢?Eh ÍË´¼'›_£ï‚šx°£#Æ:¦·eø —m–ëuº¹'ƒ¢o~iO´›˜ †ÎlÊqÚE ‰ ²žP`@ð$ÇOŸÙ,l3F>b{q‚iܸKÛK¸™*Œ!Y4ˆƒ¬ÐŠ£ÏDUžà·PBuivfÜÀ"1Õfy¨H¿£›ª ìÔœNRl½CccB¡NÜRú»>d.Ý–ÞÇþA%¯ãŠ•¹‡ÔY™âŸo…$lÜ • Ò 7ÃÛú€™š±åuÂyЪóúÌžõÈ:áT0?Í:“°ÑuJ@;‡ªóO^'a£¡o¨ù¬Ù.)ì• –f"@`a,/ÂcO/5léfàk8˜IôŒáÌëð5ÌoƒÑ š"0ÆÔJ‘©eàß ”§Ð¬ƒòˆfPâ0Ç\3Áá¿ÜÁ_Ž­!´M¢åSG›²4jmp4ÖÞƳüÚ:AS íL­“oB[¦Öï;÷ò³s¯Î¼ô¥”0âç^‡–´[}…ÅžÃGFÀÖê"`ĉmäNDä§áë›bL¢eÕŒ8ø{-Æ#ÎñBV]y[Œ€NÐ0¦VŠ€L­Q´M¡Y‡¶ÍZ´eš=m“hùÔó-$íõ8Ú„eÎI2žD['h +´©UÌ·™ZÓå[9Y¾µ^óÁ˜ÂZ]Œ8±€ÌZ„û‚DÀ$Z>õ|Ë%¤†OÔ·pàÔ"”kz0:ASDÀ™ZÅÈÔš.Ôdà}e#` +ku0âDü²¿É­…¨ÁÖXL¢æßdÅ™³ãE·¬4ã&ü€b†B 4AŒªC Wk n“hÖÂmL³·\³GÃm5Ÿ:Ü”þBŽÃÍKf«lì Ü:ASÀmL­·L­Q¸M¡Y·ÍZ¸eš=n“¨ùÄ7xi=âx‰‹:)ª#7·NÐp;S«´ÁçjM·ÁÛÉ6xi”Öƒ10…¹ºñ¢¬ 3Jœ˜‹ 5n ‘ ˜Dϧžs‘ËW¹ñ @ª¿ˆùÁ èMcj¥ ÈÔܪu€Q­\¦ÚïÜ$zþY7pd«Žöƒ€ÓíÀӞ)åÇ6È}¾VàÎÔ*fÝL­Ï¤ÿøqúƒ-û„VóiU b{+ {ÇüÙüÙrJäIÅ8rïÆxIN`€ÿ…–ISyIqLRä%ÙÈKzþa¹ii,ø+}$NGFp‘Á-‡™09Aé%Ñ)Êt$ 3‹NµÒ!˜ñæ1t$ »¹³~„Ž$*Éd¢f!qäL`š|¾ª‰í¼Û^FF=.h¿<ÖÈ[0²#ä˜È‹Þ9eEä«Ä>YYÅ<’œ@À¾„l®@`és,$q—Ä ÝÆ3gDWq(îÂÏx4q®1ñ <èDj¨=aµôYIa;3L¤­ƒÆ!\,2fÇØ›ÀrîM #O{äy=ÿ/ZŒf Ë!gDk_‘H¬9º>Íö6¢VëŽé:É·w‘@†B—±'ùŸ©‘q…M¤E9Ë4—'Öi}¯ „È+3§òñᆿ‰wöõÏè‡fØï™;$æ Qx>Q³EÌCÔt¸¬—QV‰¬…»/÷ÕI§j©ëôÖI¶“S¥H þC³ª# +‹BdFL£%ñÔy»{ô¦Pó×»#õ ›L/Uj·Ow»g›–°¿§7E • +'§˜²ö”r“òÆdÐm +t,È:•OBþÞ¢¡ I5½é?(By؆e§OK õ#]¿o¼ Äƾ&ßR̸ŠBÀNgů%&+制|æ»À¯ÖœGrÖ’ÒP‹Dðœdák8†<ÞBªÃæXïÉ;Žš‹äÆ‚™M–ÉúÎÂWF\KGšXUÍß5ÇÐ(_V9§¯œXÁúŒ­‰êþÞ`Ù…+Zì*[ZV°ÄH#áîž‚ßTŠ@¤JŸ2õÞ‘»¢ºF@}eyŸybÓ­vÕñ$¦×¯R»NŒCÍ-¥üŒœÅ0j‰\¹Ùí¯ã€AO9OÄG{*L\h-缋3µé-0’¢>Á¤ª7“L6åŒ.:DïƒÓ…’ÅRA@G8Ë:ÿ¬ÕD›endstream +endobj +1844 0 obj << +/Type /Page +/Contents 1845 0 R +/Resources 1843 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1836 0 R +/Annots [ 1847 0 R ] +>> endobj +1847 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [108.593 189.327 123.316 200.175] +/Subtype /Link +/A << /S /GoTo /D (figure.7.6) >> +>> endobj +1846 0 obj << +/D [1844 0 R /XYZ 63.034 602.788 null] +>> endobj +886 0 obj << +/D [1844 0 R /XYZ 157.526 443.561 null] +>> endobj +887 0 obj << +/D [1844 0 R /XYZ 173.522 228.214 null] +>> endobj +1843 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F26 1460 0 R /F23 1211 0 R /F59 1176 0 R /F10 1027 0 R /F11 674 0 R /F7 586 0 R /F20 1030 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1850 0 obj << +/Length 2342 +/Filter /FlateDecode +>> +stream +xÚµYKsÜ6¾ëWÌm9•Áû±U>8±½«”½N¼Ê)ÉÒPÒ”GCg–œ_¿Ýh€‡”¼)Ç¥*‘Ý~~Àˆ‡?±‚i–Kæ¼_\ÝñÅ ÌüëL$Š:‘ÔÍ÷gß½ò‹À‚U‹‹ëS.«_+aôò÷‹¿{eô@'ŒaA+à‹$?üûùO/—¢z·¬•Ò•cËÚ9W½yûâ—×Ïã ªÞ½|¿ü°¬Euqþö?ÈôìåE¯žV†YeŸÜA¦™lA»…Õ)6aœf^Ú¨!h$*…ÿÈÒT/Öðqƒÿ Ÿ3Õ÷Í>ZToE#o:Ø.ÜÀ[w‡ó;$øDïÚÕñê€<º-Ù¨0%_ÔÂ3¢üóíþÐ6ÀWëPu×ô¼ŽÀì¬?F.Ûš8ܶô²#À>}EÏP5ð0¼º„%ëC}¹”¾úTÓ\6ûõžˆòòOCÍŠ= Øf³ùDówÈåx…ÿoq/QÿdRØÀu€½k©âÊŽ^#§îŽ¶ÐÒX”(%i ÏÕšÌ\#-(@Y²2(|“©£Ê7BV1F`yÔXDÕW½ð[ò¾Øe}ŒN8îi¼ÙÜt»hŽÛ»™½ìÚúÉ¡ÝR€:zæ=Qé–":KÅ÷7äo0Ôᦻk3§O4»‚l’œ‡l£ƒ“¤Ûä \°mïéåÆš¸a¶Žûg§Y’cBË*=—$¢^@ŠhÁ´7%Å)¥fÁÃÁ¸·H÷ÇÙ¯¿óÅ +è~<ã¹~qwgRj&„Oß›³ÿžý<$¦0‚9)5*&•éÓØ…‡Œ°T4³°ÖÎŒÕÑÏ7˜†ÝnAEÞ‚EnX¤5SܤB“3R¢éá5æO»CÓ Õ>V8”ìNÌJ „bƇÄí7nøÅ2å +}òY(­ªó8|T"{b¬ZòAà ‡àÊ™súH)6Ñ@ðŽL +0ÌG‹K0˜ràÜ@¨Çu–ë”cAˆ´îaÊ×0ðOšþvºËf^=c_L7ÛÕt½@ñÙnïçLÁÒÇ<“š:ÇÛãl1c¥XභÃD eÖØÞO"µ ¨æÐwœO[²b¡˜ç!Qqž¨TIåz>ï§b43N-êËÃœqd0ó!3eI¢zCmçüdLâ4¿s"i¯™uâïJË‚Ý£i©­e\ jú)4¯»™X„V6ÛŒo-(™÷x½Ã&§´¬8e5©#xTt`a˜wLðÁnÙÓ¥ÔÀ¤Èn$k-jÏc )ÓT˜:TOã<éá¼îõÐ|†˜Ü™Ç3Õ1ér®}3]ŽÛ_ÚmýE\ Rdþ3~¨e Æ![‘L&ǾkÇÝvÆ’YÝkÿìá†éP +?>É,öh¨ƒï…ö_êPÃ8”b‰˜KÍ¢GE×CkÉÆÌàL“IPóWk„Ç]KÝBàŸˆ™44¯¢s}ž±¦`Añ‰ú¤¨ùÔƒNÌ‹b3“+€ÉÊQ-ÁaâÉCæyVÏÚ„[æ!Ž”‡Ø T .¢J€Æ—MÍæØR@ê×AëÎÍDzàP&‚Ó‘¿ÿk'+LË… +&†Q= ¼Eñ =½º +Ûæ°F0ºIÚ!ÔÆgÆo CaëãæØDu!àµïÓSp=ÁçYrsƒpm>ÊØhô±ŽO^Ýg0»ÙÐĶK3W¨þmdqÓRÍ’ØH­×…Æ£a㸳:ðêü'ýˆ0ÚÂpOˆ$Îпº~UK/àS>œglã!à¸ü[üŠ´#¿¶À™d?Ò'TÛ5hØõGL°~{CöÄèf4–ÀFLàÄHaÅI_½T`^¹ä:JFk)K.ž1 cܸ;‚€BY£Ù€Ÿ€—!ìIþÎ aÂÕ@Ñ;iKå±=6n> +’tÚ0ÉŒÀ·YE¿çÊcªû5F"Nõ§–ýq“ŽÄ0ºÞ¦…ôø³Ýuô–õÍDB1Xïi"žÈºËMKç.¬. +úAÄ—½¬æýp +‚V ¼?9ŠÅ˜íP£ë˜ÓÓžšºÍ†–Çü‹g¸n{³;†ÕÕ§¥W3MÈKÆÁˆ +ƒ•Û§ŽKu¦­ âX+G±ãÐÕ”â1¤ +‡•¹è5 .?^ó°;ßL£_F‰H$®ÈA0¼W¥ YDy›c™†0Ð/1ÑJ¢ãûð™Þ5QOò¯¦Ý˜Gí=43JÁÏoUÿ[ÕÃVk!9/på(ŸÓFSïÔ“#©sUÎË0’ù”Õ XÉð…F €ž¼åmÆp°3~¡¯c‹QP0Ã}aŒg3žœnÅŒ' # +(òUm +MX*c±3n,ÎSjêÚø%¡ª¶»&WV™š„ÊM"¾oH»îC"I|ö‡–n㨠Á†énH;r™kÎN3Bõ¸%c¦€ü˨c[Ü„E©ñ-¶×æЮX²Ž´?F( =ïaa‚]^ +ч·ÈEã³nÖ¡?ÕM!&(×A }Å8ŠÖH×}h†Þàñ¥ Ô¡ð2_w¼Á‹YœÇ&Œ> endobj +1851 0 obj << +/D [1849 0 R /XYZ 91.925 602.788 null] +>> endobj +382 0 obj << +/D [1849 0 R /XYZ 91.925 584.788 null] +>> endobj +888 0 obj << +/D [1849 0 R /XYZ 184.481 423.71 null] +>> endobj +1848 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F47 596 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F26 1460 0 R /F23 1211 0 R /F59 1176 0 R /F11 674 0 R /F10 1027 0 R /F7 586 0 R /F14 1012 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1854 0 obj << +/Length 1643 +/Filter /FlateDecode +>> +stream +xÚÍXÛŽÛ6}÷WèQBk†÷K¾¤ÝÜ€MÐÄ-P$yðÚÊ®QÛÚÊÚÝlûó!)‰¶e£IT XÀK‘cjæ̙áYFáeZ*d¦)'ÆÚl±™ÐìVžOX´˜F“ibót6yòLȨ́E6ût¸Ílù>7DbjŒÉg/.Š©"¿|ózöüMÁòË øx[X‘ÿVÞS–ãäÏ¿þ4{ùæuñqöêÉ3Û¿@pKŒ6àîÍ”B‹ÉŬsSRMŒTg#RÃ`À×µ#VÀ*×I--%q–e\çÚý9yÿ‘fK°{5¡ðe›=À˜Ë› s’P«âózònòKïS˜œ2FœR'÷òFö +£h}°†hi²©2œH¡ºLÉHX.3e4¡œy8ß5å-äÒñ*°˜zð©‡-`ß„õtOA¸–av˜f-¼Ä¯oˆ2nv6JNç4Èß +§òùú® ‘VŸŽã”W)b Ÿ£àÚ?ø8Q´›Â(B©ûª0x—®#‚#ÄHùp@(kÉâÿY šÂ Y‡pZ ™­2ú¥uЭ¿O²·ßg öžöŠs@”™=¯„8IÇ1ÜêéxÆ-g@ïØy°:jVJ-;"µôXÔ’†nÎRK1"˜ôhÑ“Ôê÷ƒZ§½âv8ð +¨5åœçß+ ç„ —* Ë·Gg3“Ĩhô#ìel®ÀždìÑöŒ=mËØ$Zv’±£äà¿bìhb(Fže¬°05 VGØ~›1{Æ)HÁ™œ8Ê9¾ÊCºBgù2yD[N‰ëºÏ[“;zšµc„ܳötÈk“O’v”<Œy‚k"™ö=´•ƒM8×!¡SE ˆ‹Lz0i-g+Èåõ]]†ûìþC1•RæŸç›[X[û‰ Q¸kÀ\µ-¸Í›ëjS" j˜z VoËå<-pºÁªÚC ì”.Kü<Š4%3\…9{{RT\v(\ù66“~3íì–&H<_ã3Íërw·n¹ê«]0nnÊm˜Y"Z÷«%|úÈ—aú +áx<.fáº/œ¶XÍàŠôÂa@!šJþqTOŽ( rÕ›4Uxím]auå=äeëpÑñ­[xL"EKüJ0ÁwêžÆ¶SÆ1¡¨ß§Þ5᡺ڕõ}¡t>o0Å~±Ùá0:0Æ.-S"J"U ŒIaèlB&·†X(Sýåˆn )9V/Mx{ØŸ²Šìß±¼Ï7«&õ&†¶¹]#›}Òwa®i‘9@ÔÛGøªéí=ÌÌjú²së¼ßd^C^ ˜ê–f;Ï8¼šÀ­bðjb¡péi¬JÊZöÞU ÜJáÂOå¿Á ‡&Q!Tøáݽ÷£ú{pW¹>ŠÅ|½uôe 7à˜Ä*C BÌóEsçI¼~Œ JJuû â{¡Œ‘ˆ·ëU‰Õ)ùÉêâ¸6ÅPmªhEéPsÞB?T½‚ÚP½a“Õ6¸…òèC—‹T¸ªW™ Âàãaù¬° ½ÁêºlâWÃ÷`PßÅJ‡å?˜Y&ÓÀ8”¬¿äâ×0ãy» z푵p7æªkèÑå+/3Hw'QN¤P8`»!°á¦­¨ýF%„û7å©HšËü%*C\|á^ ç»r0ëæ«9Õ/ 5‘:Ò+XZuÌS´ýi-œŸ^ªÐ»¨Ýõ‚oäèÄ;ß.[Ê +‹¯.ãqìç%«–˜N@,ˆ?\ŽñM j@¹áÌv½êR6”#Ëú˜¥ŸCƒÕ·’lH«kë‰éµ“ÿeˆ‘øC›iÛ60™ZhZMì¯ÚZ$"ðƒ~Œ«üiáIåI¿EüŒÎ/+ß øÕ~ƒÐÖ8¶DFù–há«¥:vâq@œïýa -øR¶ð‡Î6N^&mWýæê~Ë/Ì××>ù (›0ó°BùŶuu &hí¿ W +ïÑž?žMaïm§¨>€^(v«¿b"4zŽ›4P¨ +Øþ²‰+»ð o¹Þ¢PãP…á•÷.î3ÿóf‚…^N}}#<ëhãM4ThÞ» &g:WU°˜î…êÀ÷8Q%Éa?QM&wC­jûë8MÿymT5endstream +endobj +1853 0 obj << +/Type /Page +/Contents 1854 0 R +/Resources 1852 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1836 0 R +>> endobj +1855 0 obj << +/D [1853 0 R /XYZ 63.034 602.788 null] +>> endobj +889 0 obj << +/D [1853 0 R /XYZ 182.793 519.09 null] +>> endobj +386 0 obj << +/D [1853 0 R /XYZ 63.034 399.103 null] +>> endobj +1852 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F48 601 0 R /F11 674 0 R /F10 1027 0 R /F14 1012 0 R /F13 1055 0 R /F47 596 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1858 0 obj << +/Length 2807 +/Filter /FlateDecode +>> +stream +xÚÕZm¹þ¾¿b>öˆkŸß_¸pÒ怗.Ü¢èDZvf—;3{ó–Ÿ*ÛívO{^&‘"$h¦Ý媧ž*WÙf# +ØÈ1â¸iʉ±vt5;££xó—3GÔqHùóÅÙ÷ÏíȧÅèâz[ÊÅämÅ”¿¿øåûçJvã˜RÄIrqÈO?Ÿÿzñl̪×ãZY2®1ÕËWOßüíÜÿ(ª×Ϟˆ7?kV]¼xõwzöì"©'…"Zè½)ˆaðÀŠï%%TKxk,1ÊåCC‰³|„…f8ð³·ïéh9£D8;ú Ï”0çF³3®Ñ<þ÷öì·³tJ1¡‰3𠬄¬J,à¥=^’^v¤ŒœGíüð¸Y,›5üûqA6ÝGÄQ1žÝmÆ(Íu’yÐA˜eZYu&,‘éé"–ºž³Å| Î]£WoÀŽÅlºü2ÐTK¢™:¦QÖ~Mµ!Æõá^N'¨äæj‘ÎÜ#(È´i2ôD|—ÚÂ%N/æ(ïnƒ¯‡29€Åx’YK¥ Nd¨ªÍHiÿAD¥vð0Šª;YCB€+ÁÛéPµ¼6sÛÚ iN[B‹6ÜmT„ó6 |a.y‰§Üö&¶¢ö™È' +Øó5&·&ZHJñíå|‚6Šê2˜:inPrA¨4„Q?{Gr]7Ä@l›4‚³qÍ­†'J‡:0M¬k+LG4mÙû$ÚÀ)xÇë¿0ad Üu‘Â$&ø2 yGaDƒf®š gåžØäQÊ% óqRƒ™jÆ—6ÍE‡ÞFu0r9TÂÃM"(`¨ª?( 8p¾ ŸÄð^‚’)\hÒ˜ ¼ ÒÇËþ±ç°dJ~œs~~ôK®E†ÐY¶0GuÞQ& ù«ð÷âªA…´™¯ ŽpêòHòJ¢K— ôîçBž°6«ý´q¿^ìÈêbwV×=SiR/ mÖ«ÖiêxÙƒMZD<\¾![! &Ã…2¼sv°lI4Fe@­8pÑDfÿų[üdæùx¹Ž´X~ðê`w;`?]熚‡ѯ.úàcÕª†~ìsç¡ÊS‘gÏÇ@•Ea>Ž}rkks_\U¥lñº^.b6¥ó P·§eôS©÷a´+YJð–u Ÿk²fZPÙªm3Y©¼…ÞÎʬÉÒCUÐÔ¤A‡ûR=ȹÌ{«£Ëí–õš+z UȺÆ^“f™ûªÊ±Ü1„’·_<úB# óoJ®¶)ì©ÛZ|i—2K> +;é,)w6_Š“ÑÔxœ’Îö uNgžè XÓaÔ‚©ZWý«àXÈ)<–C…°F—Ç“#c>$6Œa¸×š1ûKÑ44>yTêÑ;ëw(PÞºkbSµù¨$#õ@'PrSÈôŒjà/9ŠðÐÿÐf×ßéeœbðq(ÇÚP`h(,ËR>’yÿ€ £å# i)qúc2’/§>wݺMŠ]ØtQbª'™U®—$µmÈU\EÁ@òÒ??6·¾¨¦&ˆcn“±¾$,ìQA+–¸BûùGAåÍÚ2ËfSvÛé@Š2âøÔSÌÑxŠSn¬ %"ÈoŒAóߎAsšc¿žê›ò£ËÝ‘Õžüè á‚—\sêía§ˆ5_Q›=º6%aQÿ¥¸ó©³T»+ @}®Ýž,`!¹)A(ÿ¿V˜“”ϧc·ß{øÑÆ×Tθ?J!!CÒ‚ +Áô´ùw3‰íßlü + ’¼×‡”và·w§?•Vce{7&X¡Èû𸹠ªà~Xرøß‹"·—~ߤÝ6Á3O#$~ÖÄX xááù¤éiÕÄÓÁŒóç-óé2¼ñ1Õâ\«¤ ®ÅËi8#\&ƒ£äU4¸ý®âÙ?Ä)€…"cˆw¡ª.—AgIuuÞoð‡ÀUMüÿ$›…oж˻uû+(«•ƒeÙx–é_Åzˆe7p9fæ¬eh/GåžÂbŽòîvÔ]xn(œicÑt.ƒbAæ]¦ó;ýÈqu7äC@yƒá9Y£"éú¹&¼Yl'Þ¸9åϨ ‹T{á—æ/ÿUC+endstream +endobj +1857 0 obj << +/Type /Page +/Contents 1858 0 R +/Resources 1856 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1836 0 R +/Annots [ 1860 0 R ] +>> endobj +1860 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [266.028 143.444 273.002 151.856] +/Subtype /Link +/A << /S /GoTo /D (cite.HAC) >> +>> endobj +1859 0 obj << +/D [1857 0 R /XYZ 91.925 602.788 null] +>> endobj +890 0 obj << +/D [1857 0 R /XYZ 213.743 215.868 null] +>> endobj +1856 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F20 1030 0 R /F23 1211 0 R /F26 1460 0 R /F64 1214 0 R /F48 601 0 R /F11 674 0 R /F10 1027 0 R /F14 1012 0 R /F7 586 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1863 0 obj << +/Length 2476 +/Filter /FlateDecode +>> +stream +xÚ­YëoÛFÿî¿BŸzTzböÁ壗æ¤IêI®®ŠC‘-QRtH*¶û×ßÌÎ,"퇢ˆ¹ÙÙß¼gU¹ðŸ\„Ú:X„BùQ/6å™X\ÃÎÛ3É+&Y h^®Ïž¾1Á"ñ“P/Ö»S6ëíG/òµ¿\EQä­~½\i­½wÞ¯ß~XJïÝkøs±Œµ÷í\,WÒÃÅŸ~µ>ÿð~ùyýËÓ7qV±… BÞÒDHqözÝÁ DèGyTG3%žHb¢ÀUho;,Uì\¹T‘wµ\Áß ×°Ö€Aìåü†^»Ïh¡IKÕéè®y–Ú‘·«j´{ØåÍ—i]gmKiq]á y»/A“Az/¶0ßæ-®V‡´(`pOÔùŽt&å@i2ñ…XiˆPHïùD·@)ãT‹Û 0 +è[%‹•”~bŒÝ²rl§×Àù0Hº[NÙ'¾‰ÜnŽÒ‡Ò«@‰±·ÝâL ÒjÔ@¨¼Ûî¹,•Uò +ÛਥՔ>%ó€íc‘Ö´ˆ§­¹¾áŸ¡‘Ûy,ü0Q î“Ðj‚ÞøÒ©ÆŸ2ˆ}¡’ÇŽƒ;ÕX÷9:8,MçN(ý&-6G4jÚZì¬ë\(ùvEÖQZúq³uÈK¿-M&ÚÀÁ@)¯Úá®Ù£òpý X×¹õ¸ùc€ŠÄ{cÕîtïÎKJ3[ë‡éU±œU£‚%f1¿Ìx@$ÔÀÍ'!àvçäÄ{ÙÁ--Ý4–µ¶­À²‰w_ÐÉJIí=rÛÃÇ&ÛN@ABI‚`hZ8iN*?¸úÜJ†¸;…ò}¶Ù&ßf(ˆÐÞí>Cÿ¥”>»´iÙùìü0ª¬_¶×UÙ¹å=Â@·A½/‰ç4a·:ïÀU,é·´”[obìVž¡äWiçûèIZ!øöƵWHP•ˆî*åm qƒK{´IþõÈÄe–r›Ïhn¥í`ÒI—QjOëþª"/ó¶9…›Mþ'…)mïFHQD1΢¸AÇh1;·Æã{NZ XZõ‹´©!6çZVG )IS¸Á·9^ÁÞŠö¬BÚœP+[Ý4yM§xtœ€§uŠÇÒåü$t7|If”©½ (êl{tüaZPv«ø¼Õº;xZí­;› +ŽÚâÈ+p š©*|¾îò— +gB·‹kÞj =«èôÇiI‹ØWQ42S©Ìê5‹o,¼µ‚nI[Céj³:åšÆ+6Ûaï© Ìõ­;fUŠP~còÇÄàÐQ.]űú($Ã8Ù63 +J?îòÿÝD;‘ŸhÉ»ßOà Ú=ؤGdbúIPò%8öCI©<ŸÞ¨G!èÖ@=•ß 6g‡\\Pœ6¿AãÜs˜NP…±ëhkÚ„¾êHÒÖ®H·Xl]ô*"wÄA5Ί–÷ª™z Ù9Šƒõ ƒÀ¹[³‡–Æ¥"FÀOø Á/Ú~ÊnÖŽõI®!aý¶/+ð2{ +D6¾VãB’r÷•S6‡³rDÔ÷‚õŸoR +gÜMk›Ã“Îów6zËN8;§ÇaW€á4’œqg/(Ù.7“ƒÆDzÉKfÒ·n'Y””U}¿ŒìŒëž–¡gü€·¹íÍ`´'–œŒð¬Í<)*åsµmAÐ]²ÝÛÚ»‚]n¹±bfŽŠ#ÆùáÐ{rHÇ¿7ùášCJŸ¯GĶA›}áŒqpu€Md¡´]J¢>ʲ°åU´/i¥¶p¾bvÊk‡n.¦PtÊÚåD\¸lÙñÜä Šg®k!³¨xdfòEîX0¬ªšÆ½§^e‹iÆ;Ziú`ó¯#?4áX¦¨Onrà µÍuÈA qÖ“XÑ{T([MÖ`é±1z0ܬñ\NC!õبq2Ê—rüÔqa†žhƒBxç\‚Ú]a©§ž&VBÿµ"ÌŠ€ü.Iæá‚"â‡Z×Ã`è?$¨J¸´¬Ö»]òBQRbCÛ·]?eeO«›ª¼I^nù£K¥HdÓu¤:½²eˆ”œ?’ãtŠ¹ Û¬þÑ‹Ýb;•ÚÀû2Ñÿ¿bC?tæ4»RJ9Ê‘7ƒG_%ƒ¡Šet¥Sˆ¹ +ªî)Mm¤U»­šÑcŸvi§k-'•ÜY…ߟ&IÚ¶@ +@¢óâÍÔØç\Áï4ÍŽZF~Ðõ+?`×%õpúKJ¹Ð´†Æ_H¾ž}ü,Û3±øå Š"(ûÆ4‘,Ê3åG¡áYqöÛÙ¯ýÏ-–ÑjÀ‰~6Ò—a›­H7§€$XÅ@rø;09^ÃE)ƬÁ‡eVßO€Bk%´ü{€2¯ÇB—%fÔ>$2s +Î?£:”~¨Ìð÷±ÉïdLºÐÒÕq5ÿNæHðf!îÀTh^À½Md¼§O–+£ŒÍ ÐÆ74»»xòd%iüã¼FŸOˆ²ÚÒä= ¬0é·<¥Á»ê`Õ`;¿èR8}òt„)fL1cÊí,æ„÷˛˲»à’t;ws‰ è"ü„ÞÝ?i:Ù2Þ¡ßÚæÐ~Ò¬ÞWVªŠó Ì;½+xb.ò›nh—ŒÒ˜ÉŠË#Zw¨æ_³8#/óÔzv5`¤l!ûˆÀþjâ0løqC?Q\¥Ÿùæ¬Ý;¿¸âÓøëÈ¿goÆÇ·4Ì0·v»äfU›9\)Ã9Šü ¯æ‡Îˆåa4¿¯Žÿ¨™¦IwYÁî˜Eu›1Ö'EÖ4ó0¢1Œv?QOú-Í‹ôªÈ\ÇòÀ5ØjIC£ìá¬E³]z,ZÖôÎy7Ps± ŸC‘¤Nª]~çä8ÞŒ•ÑaÌéÑPT®#?‰=•¸ žÎݯ; +º#§ŽŸÕsûKÞ0¦}¾§œuHÝyÿ®]ü×ßðŒsÉ.ÿûâââÅ}žùî»Y–øK`tŠéÙ,©fR¼‘™>{6òêç—/Ï×#ÑšüϬBûîF 綪·¯‡¸ê÷ÕˆÃOçoÏ×È×Ñwç&iE«êâ#i… Æ¢á«0Œ0^Ûc}è£ørœ6m³}’:]úqI‘Óà¼Í `|v¸ýõ`"3š-P::IM×uu;ql(YKRðŠ¬Ý ~¦Ö8öñŒûÝ­žcfØŒÜýqÞ<ÞtFŽì3¬í\Œベæþ×—4ôß8lþ¸"„endstream +endobj +1862 0 obj << +/Type /Page +/Contents 1863 0 R +/Resources 1861 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1865 0 R +>> endobj +1864 0 obj << +/D [1862 0 R /XYZ 63.034 602.788 null] +>> endobj +1861 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F11 674 0 R /F10 1027 0 R /F7 586 0 R /F14 1012 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1868 0 obj << +/Length 1066 +/Filter /FlateDecode +>> +stream +xÚW[s›8~ϯð¾ìà¤` ‚É63i“v³Ýl:]ú°“Íxˆf¸Pc÷×W‚#@Dv3™ pôé;÷#Ïÿó[Mf²-êû³Uv‚f[¾òñˆ9¼ OüY`ž3 7S–p}o`âÏ¿ˆ;à0!Và:œW@Þÿyù9¼žcãËÜt× Öܤ”·wW_ÿ¾l…ŽñåúŠ#¾¾Ÿ›Øoîþ¤'×aožëËs¼£HÌ ˆ?ó¹mÞÈB]Ë·½Ö@äÜ#ÙÌMbãDø¯âº¼íY¹ÜVÅóÚ {ßtßëd[sÿä7Øvûyy÷éò¿v¡ V0d»®EiÁÚ`d±)&FVÀ·¶6»hnº”“Wqê¼SÄí=œLkôºÔBTæh«Q •È~IäPË#Á"¨DÎÜ´=nòμ`u¼VÂ,"©÷ÃÕJ pmŠjHM²S8Ñy÷”â?ºGÞªY\÷€³3}¦p`[Ap,S¡šçAu-N¡Š˜bY”tOX­ž +€•GÅiX)Ï¿ߦ ‰ß¯¶áSܽ|R¯Åfª‰8Ô hXYÅ«(]±4jdš¾'‘Vi *}Ì—¼a²"o¶EWûe膕Ð_Ð&5[=uoÍSÔè˜ R™°1þÆ¢ZÔÄ‹)‘óxä€6P”¦Ås-¥±VVum +±'É· :Ïc¨²´(„?%в×lWaOÜÉKyÜ÷€ô2j:o" M2=«#YÚeÊpR~"v›L˜ÞG²2#¿³rïLKë¡C´"aPÀúX+µ¯OJšDµlœjTÊuWÃrè4r ñ^e)«µ¹JPÂÝË•¤ç¢õæjO +¼ÂÜÞ4n·ˆ/Ø> L8Aî{`Û¿G]ðÔs©í&¥v“ݹ®"=ª%ö'Õq3qcUÕ~<£<ãG\GÍ•ÕǦg¨L‘VŠ'†Ý²´IÊ,‰r¨¶h ³:Ô–i$ǧÞ8*kN=î÷úã~?9îEFÛG8tÜÛó+¢ìbÕ<^­„ŽæÔªÈxyô§)¯÷•è25ËŽzìe#ð­nÞ¶—áJÆ^3™Å°ÈÁw(?jÞ1£ÃÊ`ÚŒiiT,pð ž®(Dv+k}Tâ"èÃVö2‚0SÛ« ÜßÖÅÅ/œ¹ºùx.ßÝ„òâ¯w'ÐI}4qg#ï¦ã¿˜þ‚0±;Ðýr\Ç¢X|é7VSendstream +endobj +1867 0 obj << +/Type /Page +/Contents 1868 0 R +/Resources 1866 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1865 0 R +>> endobj +1869 0 obj << +/D [1867 0 R /XYZ 91.925 602.788 null] +>> endobj +1866 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1872 0 obj << +/Length 1399 +/Filter /FlateDecode +>> +stream +xÚ­W[oÛ6~ϯð^Z9‘ECô¾¬M3tÞC±bɶë2]w¿~爔-Ùt·‡"px;<—ï|<¤è,€?:‹8 x8‹F¤R³e~ÌÖ°òî‚Z ߊø#™—‹‹«·"œi¢#>[¬ŽÕ,’?.ÞÝÍ©wûþ}š+î}6+Ÿæ>õpòõï¯7wç.~¹z«8SDFŠˆ„jcm×G1øV`ªˆÏýP‚Õ«KcýEkÚv“5¦W•Y±ŸLM'Û=Åä´3ìÃ4ÝreÚišMÙmÓ°›ÿIëÒô.¯œÁ…ÎYᜎü¯ê²Š×qkm-ãºÎRIW=¢×q؉ضuúW—ÕirÆim¡¤{'ýNTÔN‡’’C‘˜*⧊¸$l<¯È +L9‰¨ÅÜgшrñÿ:2éš4™›m7­Ó°šSxÖB“­‹l•-ãAkà牋ÑBmÆÛíè̹,É©% øÒz—§qaM<îOS1ëlÕšrfͶå!^—5µSgëåáë ÓøÐ&õ·z{´>RŸ6YÒ Åj8þÅrë4!i *®œËÔ9ËŽ¸°›Ü»«‡ËËq\gts«î‚å6Î+¬.»sÅŸáA¼n6É¡"í~´Pú×hó¼ᜎ‚ɦ̺¶QûTΠMã„£sKkq°d/Ä%üòxíìpMþp¨MÈ‹3ÕX)Â4ýV9¶Sϯ‘D&µ]=°þüjº‡_¶u$MY…úû%J’”Z$Çþ4wï_|vR€:ª-<§XxTmGÏ-ŸrJCÑ èÊ^j±ÉàÖ qéº-t±ò±(òâ&Ýf…¡PŽ« ƒ×) HLymÜfeR¦¨a ¥’z©Ñy ÝÒH®Ë¼ßYÃÔW£·6‚X)¨×-ªâíº¬Ñj»ÉÍÉ÷iHt¯WJóœûƒ‚ öx`Z ¥´SÂ´É Ú¦u>lä,èƒ[¶!ØUæs&½˜ŠÍ bb˧ªw¾ìÚ½*XöO•Â¬å`¿]é&[û=q&†Òæ‡\ï£qŠ>ÎP™Çu¯¾Ì«Á硹¬põ﹈¸.5ó¥=7”Ø”#jÏÞ/‹N£ gápòÊÚ¨îqÁ+UŒ‘·Ù²ÛÆv½ÏÔ>¹–¸€”èXJôŽu#é~uk²$)«!ÛðÂgŽ H$™å-l +áÑ”#Ÿº-z•U[4n€o3ö“¸• ’ÉQØP“hhå‚YD´ Má!8ÆID òÙî „ÂKp$Ô·ª!áDϼJ¸Ö˜÷¾- Icp¨¦ËZ(‘=+j3Ú–½ „ÉBÞCbð‧ÚÄ=4ð^>Áƒ1BÕåþéy%DÚJÔé*­±HÀ7`[ÚÖ•Õ"$B sÀ§ Ýgâ)>ª˜Œú³i>GPµ‹¹¡"€ŒÝwªU‘P ÷E\$Fë¾NÀ„D(u¢8ê¦ÿˆ¾Ÿ'Èðmç°ç3Á“*vjS=‚äøóØ~ÕjçT»>Žyȉ¤8-þ œÝnendstream +endobj +1871 0 obj << +/Type /Page +/Contents 1872 0 R +/Resources 1870 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1865 0 R +>> endobj +1873 0 obj << +/D [1871 0 R /XYZ 63.034 602.788 null] +>> endobj +1870 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R /F11 674 0 R /F10 1027 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1876 0 obj << +/Length 1497 +/Filter /FlateDecode +>> +stream +xÚ•WYÛ6~ß_aô¥Z)"©ó1Ù$=Ð4Aà Ý>жÖf#Y®D'Ùß9HY>¶@±ÀšçøæàH.Rø“‹Z&µÊEª’²ªëî.]láä§;é9bÏÏx^-ï^¼­uRz±|¼”²Üü)d‘F-}ñ6ÏN|2Ï“:Ó Yî~ùaù&’âck‰2‰â²,Å»÷¯?ýö’ˆZ||ó8>ÝG±Ë_ÞÿŽBïÞ,'ó2'….þÓƒÀsåBV.$˜žç3'ò2K*U…`‘šþ~©rñ6ª3aF¤f ËBÀðÂÀcJ uâx1…> ƒÅŒ¶;´ ¦H!ŇÙô Å#½Âß2Ì~þD!¥µŸú°»›¸ËÖü˜l¼5ûh6Šmü]ND¶n]·ûy£VJüKlæÑ‘&X†ÚǵÝïCF|ëB¾0ÀñÙžzt.Ò‡žúÝ»QïR‡ÚütÁs&9ØêlV· +Oœ0Ú>idAË·Þ¥àÖèS3L:YšäPws˜þ°„^Àg/„¦y?ÆàËN¥¢§~)XÜò›pÓ/.F ¢Ýž&à`6¼ùäA½ÆŸ®û&¨œ*uˆ½;|/egÔ”…`QE!¾qcøçbvÊȶ!Â8ê#鹡Oó³'¶4ª¡všþ +?/£|!Ø´4t‚ +Û:ÔygFš[‹òùz<02þó€¾1hêÖ!øÚÆØäòÃÐÎÕ9< õ­ÏBi˜Jp7;ü[¶õendstream +endobj +1875 0 obj << +/Type /Page +/Contents 1876 0 R +/Resources 1874 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1865 0 R +>> endobj +1877 0 obj << +/D [1875 0 R /XYZ 91.925 602.788 null] +>> endobj +390 0 obj << +/D [1875 0 R /XYZ 91.925 584.788 null] +>> endobj +1874 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F47 596 0 R /F11 674 0 R /F14 1012 0 R /F10 1027 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1880 0 obj << +/Length 3075 +/Filter /FlateDecode +>> +stream +xÚÍ[Yo[Ç~ׯà#‰ôNf_’&€“Ú©S8vA›¤#R‘T¸ÄÖ¿ï9³Ü;Ã;\dÑI!@¢.‡gÎòu†l@ᇠ´ TȦœkWó :¸w¾¹`qE—4Ùš¯./>}¡äÀ§Åàòz—ÌåäÇ¡!‚ŒcÌðòïÏGbøêõw—ß¼±á«çðëíÈŠá¿Ã;oG âÿýëëË—¯¿ý|ùí§/l·à–m€#¤Í4ÃÏ/[6%ÕÄHuP!1 ^°êû‚X®ñMC´,Vì®”ÄY6À…\áºß.~ü™&°îÛ J„³ƒwðšæÜ`~!¸&ÔéøÿÝÅ÷ÿìx2ŒX ••ðÁN¹z`Av²C,se@Bø‹ +xvººY®fø{;êR¦ûŒjTFu]×›]}1áˆ4¬¥z\ +¬¨Ëh5± EÆ“œhÀL.Æü¾Ç–²„‚ÎÂV¤u˜-Íg%WËÅ0¹ALÞ€~—óéêa—QÎ)¡L…ÑDë £œ ™sºšNÉíÕ4" C Dò€ÒGHÃŒ"6Œ§Á— ¤w¿Åß›>M®‰¬¥ÙH¥k6NµNµŸ=®pX­ö˜0’j:Z=÷`à^’ò´²6[Œ¸KhšƒP“”ò¾/ "œ'¯ù „&ÉkòiI´=|‘ÔAù´!R‰ÇË·èËgA›É~ãÅ%Ãqt2C°Ï*T¥!Œ¦ýD„]£ ܘvg£†[ ¯(í3Á4±N¥P^ÙŽè–ÖQNÁ6ÎXÿyP%¤‚`ë‚>*›@hæèniÉOTÑ9:3p憓þ®"&ä…½ªSD)×J¨˜w)ð]È7vjÄiÛ½h_GÀ·Q¼S’ì3áˆá¦…'èP ÿTYÑøÕÓ ÞËkºd°eÓ­ù\Û0 ç‰YñqFœd‡­“Ôôyÿã2¤ºV}‚@®KzŽìüD™¬EIT¦óÀôA#Þ ŽÊþ=Ò`¥Vw h†Z~íÐ ‘«îËÂ;ŒÂ;9£•pk9‘Î@y½Ý„x[‰µBGu¿sö4dÓN7­Œº“Q­Y&cç¹& ¨¨´Í¯5s+Shá}-ªðÂægõ³Ýè &5‡2ö\ÕWGmoùà‚Tãùzs7†”ë£æxƒèj5Æ üþ]^÷!`8(1™ìÕ›~Z±DAµ›6zRéi5±~éÒ© É~1Á‡ÏÞ¾}6rªó¾y8a2»Ÿ¹€À+åéBHŽ‰V_ˆ<\I¨hižw#n‡ËÕ$Xè÷T)ãÕ @9þëæ)úÜ:Øé +ŸÞµO=^ÖA'²®ÁÿöaÜ@5k þI‹~¨ÄˆÐ¹ƒ²–)¾dŸ†×ëÍø +Qó+nž2ŠæDSÔe,[³ëJ·X–âõûϼ<@MÃïåU™F>Û®§“>§KåÄé'°˜bA›ÛiäüfµDfßU‚(ßî/«0@$ào– $ê´û>¡´œWY„ÒÍ»YG2§aÇ” tjø‰¯—÷‹‡¾ÚO—®[äˆJÚ09ÒZàV iRànŒ@.¡ñ›@æ”™}(k°µR¢ €y1£/W•0lˆq) Ï*"ê¤L"_¯–ó íôW1$8£imäÁ¸ Îþ5éWD`R™åÍZ±è ;ëjÅ`¯e´2uPòÂÊ 7 •„7PŠü@ýæÒíEVn¶êr9ŸÖ•õ¦¤U £K•É«ÖÚV¹½¡¯uÚEœŽp¿L|s÷i óî°qs…”Ê:§÷è©T¨P;Ù6~¾ïöøþã"@ÁB@U <>ÜïŠ9(f(;æè€BƒJxçÊÝüùF›¹Ïm›eb¸áû­!M+0Ȉ²ò+cÖ¿áí îp3k¬U„Z]°"#¯«ðƒJ¾ ð'Ú,:@îE;Š #ˆg¡Æ@¯e +ÉA½ÜʬÖ}f@µ¬CsÕþ’HÍÿ¸à%,/‚=Ò—gS€¢é¶Ì=ªp½¦ì°ƒ){{aJ³>ÁŃeo pMªRfUR«žÂ¿TÉÌöѵ¸_ªD+G‹}4Zúsè +þ÷HÄ'‘Þï=ŸÔæ:<dÔB‚!Ytd첨²Ô*b–…¢  Vï9€ÞâHüAS©s+’J>a•itA8tüó€r*Ó;iÛº>JèÒÌ/•N (|ÔÀ_θX¼[óE‡ËÉ%oÛŸ«° Øs´ìY߬–÷㛶,ñöj5›Æ6k{ßV'ãÕdÝ5À4R #2uæ²âpU»·÷„¨ÕN=Ž³OècSÀ‡€®¹*¾ú# ÖtTsš£þYL×Õ<ÙQ?’à¿#«ÒX šðeUp®ÿ{½§ç¨{ºƒ’Y±ÂÑõ)}Å£f;Õ—<-©ž1 A]×8øª>©ú +úöð¨ê[ùíºÝwñ˜„qhUÙŒÿgºZìLß_M×Ù”¹mŸÓ+&·ÂMßûCüûÚ¸l®Õáój‘Ÿ!gº˜òXß³}SxJxxv é¨æ¾Ùq¼H(¹ËK-OÝ“qÞeŽy²=šæí“ݶ6¼†åLÙsÏÝì ­T9´Ò°+ímÉ‘€“”ˆWWè±Q«ú Z,Œ¸(Df[Ô¢.ºÑ×)?1¸Ü'ŸÇ§à÷ÞñÑá÷“·2ŒÚ˜P;f`xâ­ôi÷S2W¥»ÃËÀèËëjZì†ïk¨±¢kUUý’‚=|Ç$UÊèþžKÉ{³K䲞è‘êdÚ¾J›þ,p·a×ûel´$”–°féîít³]-²Ë²¸Jc´Ü å…–P%C‰¯O:=µ|ßp$Õt´üáiÎ “PSÁ˸Ä_Iødz‘±µ“_ô%woÀTŽæ9\äÓŽæ¥óÅYyÖÊêmN!;¼X¡ ²0»5—¤Èø‹ÙÍ`·š†‹§x³é30›”ÃgwÙ…JxS¯ÑÅ×í]¸âœ[2ØD ²ÍYÊù~£vÎi’„K @“…(•Ów…³(w®"­ƒ\ù£j[rµ ‡Ÿ7˹?R_ù:~‡QÁÂÑþ9M´1* Hrè8rF±¡Þ®|5ÙcPbš¶9ƒ=Bi +7&N˜ƒw§™•ÀºiY“oÆøTÌ”©UºÞÛøû½x!ÏãÏCÒ0€dã1Y$tƵ„N¸?"í=Wg­&#Öcœ)¢dÎy嶤ÁDŸ‡­Hë0[Fùû’[x¥—{PzsWAÉÄ:q&Z9åݧT`JÒ»/ó[½—·³XOp9ßù»ÊÁnñHŠá»T‹ÜÝ…WA÷X`m¦ñ Cò¡ uJÅÌ®Ä`íùj®›¶íïPPCñÊ ^@ÞÌÂõÚÖ5ÐSt& ZV&äL*i eôv¶€\/û´4yÆ”©¹ Õñl׳–]ÈKç¢,”o Øå—q|oz5âfˆB/f¿¡DSLæÚ_nŠÙ:ü]Æ‚†ó;¥Í—1Y@ÉQÕx±/Þ,Z…‡¨ø»ñæÚ›j¾Æ‡b¸žÝ,f¾ûŒ†·WHîÂç²T4¤¼‰ðúþ3öÉk#>‰vÞkB€r‚C|SO ¼‘V“ë^•Uí~§gÇýw +ÎÂh¤uQ§ðh$ç³— Pdx›ëhuïQÐ hÉðêUü^FrBµÏþûàʾ~çîI&ZMF¬W IåÒ’¾„žÙ®l•ªp:Ý쾯V#X:Ý oTøyøÈmRÔYöýoRIVT‘tbÙ4©0æ½óàÉmÄ>¾Þ¤eëñÜ¿>GÍ®ŠcöËŠ “Þ7~â‚hþæÿwíendstream +endobj +1879 0 obj << +/Type /Page +/Contents 1880 0 R +/Resources 1878 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1865 0 R +>> endobj +1881 0 obj << +/D [1879 0 R /XYZ 63.034 602.788 null] +>> endobj +891 0 obj << +/D [1879 0 R /XYZ 177.634 198.089 null] +>> endobj +1878 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F20 1030 0 R /F23 1211 0 R /F26 1460 0 R /F64 1214 0 R /F48 601 0 R /F11 674 0 R /F45 589 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1884 0 obj << +/Length 2811 +/Filter /FlateDecode +>> +stream +xÚµYmsœFþ®_±ßùn13ÄçTÉŽ8u~‰¬”+åø\hAZÊ,l€µ¬üúôÛ°°‹t¾+_¹,`¦§çéž~U‹þ©EªüTG h?N’Åjs,®aæÇ%K!YŽhž\œ<|ž,R?µfqquÈå"ï)«O?\üüðyîéTùih€/’<ýéìÍųSåŸ. ½Ø?]Æqì½|ýïÿ:£Aã?û(~}zºTÞŋׯéɳ‹^h"ß{¯Žæ+DˆâÐO´%|]ß–«¾ljÐxð¾4Qâõk+ð=õÊz »žg2¡ìal-—YW þ +ÆÊZ[æ ¼Wó>Ì¡ºnÚûõ4iå¹)¤ÍËg›:«Ì©N¼›S{ jd^*&ŠHŠ¶èpÄ3'Ñ^& LÀ6H¶=]"ŸNÁŒ Ï~]Ž–¢0”TAklb½‹µp¬׎fç%q&¾­ð½âg^^“¸ŒRûSÑià'`Al0Ÿ˜`|j¾NÝl9ÀtBi÷ŽZYš ðU˜ˆrøˆ7  J¼QV;’îƒIý0d“úBâ[å,zCw` +ÚF*º¡÷Ðû\6UÖ;0Ó b0J¥„ÅKPPzoí\å'±YDQà§*Bþãäý‡`‘ƒ½ÿ|ø&M7ðB¦ébs¢ý4Iå«:y{òËÞ¯åˆùÃDõ<ÁªaC÷À™ÔCßL<úsözxßéÅjßZ¤ÒÇR‡€OÝy°Ö7&‘Ù¿ÃF¡§X‘YÏ@MÂáˆÀÐïŸüø=Pöˆ»ýÀ:ö`¶!øØ»uQÏpŽˆJàÎœª«Ç¼§HƒiràJl… O'GŒ ÜE¾Žá|€:‚'Ò‘—SâIdà‘U†Fo-yWBV£lÈàhEγ}ÃmA–¾"ºd°~ @èÎB•ñc2»s10f·¦Yïè$ÀШ™Ñaú‘SÑ£#¹C?E–™^¢ØÐsS?’IX#o‡üP¹0ŠÞvݯ}Z¢ÀºÂp²à¬CqbZˆO&ð½é×E˯O‰V +õ€#Ni$$G^žÀã ¨ºÝ”7LÊ¥ÌdOCL1:^h?Rœ.ÿ}¬¶%xp`ñáˆÞéNEEÎɲ¶%Ôÿw³Þͺ\aHZóæ]ß`6 B€òOTä`‡¡ˆÛйoêŽÇðäÃ0˜Ðm[6EW.Ù`2{xÑ3¤z­É†Ë¬ªn™!9Dà + nP§²WÁ/ ˆrJ¿?süê˜Ð›‚ŽbQЗcý~8ýѦlp ŒIg•c¢À+¾¬hÿ®ãoôHb½8 Œü)‰Îé¦È1̤J²c˜f%‰FªºÙâHÂŽÜ>ŸêTìé–gÈåJgvøRe-³€â{ãÆd€ìšcCUÖCr &Y±¡€ºŒÝDPÎdmb¢ ·‰±’õ*òmU:#ÈgÁÅîÙõ…ÔÈ:ôóŠšG÷Á 8ëëJ†¶m±*‡ñý¨ÀÛÃU«™Œ;­²Ëc»ÐûÌö£`†Ç%Š…ä¾a}eÕž•á˜Â†z ÐjÎL#eGpf,2ºË€ÙL’Šç÷ˆ¢ýPÙÿF–y,±‡N%Ǻý(µÿ,h™*ôÞ¢Il0ì†f0MôO6ÍÁ/;¦èvC„ 5¹>ɇ8¯Ouéͱ-(¸”ÚÀXþ¬cAËÚ•T}‘å\y ‰dÕ Aã%NƒÑ]Ò‘4Ž´Ü¡k§àµ/º»©:TTšzu#ª‡Ö†`¨Æ™!!!è¡Ò8ú‹ ì«Xh„°:¥vˆ´2›P¥{ª¦¨zhë Åû,¶#ìR𲂠++—4ñ®È6#Ñf¸ÒÐÿE.L;4ãÈ +pìÐ>þÁ\»0£þ†>†Û““ þç6[Jéclš6’×YOÅv ½ÝVúqè×Û\Ž80\±Â<œü +FÙ–yfß`Ãy5<‰QÓ~:w!÷RF†¥ÐÞ #£ô +_¡«ŒÐ”UÅ£ˆ©^/­‚0kèeÕÏø@3>7jâulî<Cû玦þn×ù‘î¡ µ.+•}Ñ:Ä ‡ä0£-xlײó¨J¹ˆ‚æÐDÿ‰†..t=>[Al¤ û½9”z%•± ª‚8CãüÄÈÙhŒ–æn¦¤„¥à%š2§`ÔRÀ˜愲͜ÙUÓNŒo`lä½â¬\7lŽ²Ë~b‡f½Ýy`y‰-MR°rZ!ÎtÙ¦˜±1Ó¼c—ÉZ Kîß®¼ÜÒOšÍfþ!Çm=@ÖmÀS‡ +ÄY‚ñEÔ*Ûuãð¹Ïø©ËÅh»B–²áäÀ‡ó²ƒÐ•³]aAøZM ‚nÝ´ýPŸºÆ˜$å´C‰A²B-M9ÐñA5åTîÌoûQæÇ–<â‡k]<Ã|öÄ÷`tO°ÉÊ:ß#£eÜøGR,Ðíuœåüh.ú±aB±õšÐ$Shåžbt]7‘Œƒ,z5£&Hœ…%Ôb&•óØä^oÎœtìC~Ÿ9Ab0CgM…³&àt+ƒ¡».JqªUY]4»®º´„:•káÛ‰)7æ„O˜U`¬Þ3À<òýÕnY«—©°6ñmrwùv¸CõåÎ>Æk-k©2ˆ¡µHñ ýã + {^rmÊÄvO¬°vNø¶ŠÖ»¬ï2Iû©¢‹!øÿ5w™±æï2¯åˆÝeN`èóaÀÑ º«¬ë€…ߘðºX˜øšÛPX>Df•olòm ¯û‘YèÍÁ&Èš!úÐÍצ€ríðžZá]¬þ&@¯{j°9Æ x·²*üÕ!¸ÄRLÑiݲÿVtô›‘.G´¼u²ßZ~3r$¸³Ü6Sr„²;Je4GâÈ{øщ¨WƒR¦ã¯/ç,¿?~,cü œ|Óä<ðŠîèõs™ñË˦†¡ã ïs”Ÿ.–æ°$¤­³³é0K¬ … +H÷Ä[|6[èdÊ? ÁUJh@7EÝg|«EdWüÜl?n˜ù„æè` +ï0×ü +ÉZ0P +=^Š¸%î×NQX@ãó]¹úT‰fVYµÚU”ôøHjCÆÙ9„jŠ°uÚög©õ¬º™5S^O²Î)Ô)ð¬âŸÙ6ü >‚=¥Ún}¨)þŸÎžÎC +Å<œŽdº¬ûÙy+óB?Ξ+loùÞlû¹ñË?ƒ8œª÷S9µ¯¬ßuãîÍŽ Ä’ƒÒQ@H|º„&wÂc¯] +Á”:…Õ,³¼9 mÑÉ[Så;þiôÑ,šT–þ¨…yÑ»÷/ß||wv~~öÛ‡Ùe&˜UÂÌ…Œë¢P þ;óÝT©¼ÙsE“!ŽN +7r(Ëï‘ۣÈ)!"œÑéÜë&4òëåhò/töÄPendstream +endobj +1883 0 obj << +/Type /Page +/Contents 1884 0 R +/Resources 1882 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1865 0 R +>> endobj +1885 0 obj << +/D [1883 0 R /XYZ 91.925 602.788 null] +>> endobj +1882 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F11 674 0 R /F7 586 0 R /F14 1012 0 R /F10 1027 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1888 0 obj << +/Length 1067 +/Filter /FlateDecode +>> +stream +xÚ­Wmo£8þÞ_‘û´Ðcƒz·Ò½t÷^Ôö´Ê)ZõªŠH,%ÀòÒdïןÁc'[ªU×ÄŒgž™g<3à‰+þá õ‘ë“ u=ÄÂp’l/ÜÉJ¼ùxAÂç@æçùÅìC@&Š¨?™gc5óå½Ål‡1fÍ»¶ß÷­›»ÛùÇ;[7×â¿Ovè[Ÿå›O¶ƒ­nó׿™ÿ~wk?Ìÿ˜}_ ø^ˆeQ§S¿“¸¸ž0‰K#ÁYO”̱+á$–è+#(ôhoÎõ{sB‰ƒ]ìÛñ¨X³KÛ ÄºªŠ|Ša©åZ¥_Z^¥KùërfÔ€6žI±ÜÀÝ;ïãͦHäÎrÉ÷m­”Må‚…4–Q +g0¡„-o%¡c¡‚Êt,Ý_•‚G?Êe[>¾8Ýþ~ÀØQjÆÙcí~znþz¼ûó§Ïf'<ÆóÏøº Ìvëcß´U®x¨¯Œ±­†ÜÁêÊ`tEѱ"Ÿ!*žVš"âj8CØÅ£ŒËxU7òq—Êu?ÃSS@Z¦ Ò¬û7ÔZòo€É"Ó^ +Îó²mÔ£ÐaˆñD~àÀµF ñ«*þª«]íÓ4—UšðºË ^À‰]Q-Èâ!ô`4ç+sÆ›CÈ7‚ž½6è¤}•®xݤÕäL¸¼ c +zêll8Ül˽ù83Tño¸ª)YQˆ[Ü?Œh §"ÞÇ…`#`Ã}6û“±»Ã¯7N9,Î[{3¼ÀÍ]¸´z#êá²4c4–而0&EùõÈê7Ï»dU÷hqï"Ëâëà‡sÅ=§Ss|Ù•È 4ªFDý›Vň¨5_­ª†dŒ +r€„¶òáÒ;KuM™)Ñ:.ôúµðpð$]‹â\IRÚ-£ø$]®‘(ê½QrÆzƒ^F‰g0êe¹š#vC»(’TE]]—¼èI›$i]ógý.›ÌQ½eeU±å×&U3­ù*çOâÎF›m¹‹»¼3igg; Á×ÿQòW–y(Š¢s£HèÐÆoÛj¨b®eýö¬ðòdò—‰»E<· ¶¡q0<¼•uâ?|©ÕßñðÐõ0> endobj +1889 0 obj << +/D [1887 0 R /XYZ 63.034 602.788 null] +>> endobj +1886 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1893 0 obj << +/Length 1196 +/Filter /FlateDecode +>> +stream +xÚ…W[oÛ6~ϯðÓfÇ“"êBIÈ mÒ.ÛÒ ?dF X´ML5]g¿~¤È#‹2ã"$‘‡ç|ç;7Mþ‡&1²c7˜`ǵÃ(š¬ó3g²å;ŸÎ’°”ˆ5y¿8»øMb;ÆÞd±kY¤S„ýÙjñûÅÇÀ?È¡ °cßãz…ȇ߮¿.nghúmfyž? 홆áôþËÍ÷?¯»Eoúíö†K|ÿ0³Ðtq÷å³Pzv»èáù^`cŸôdŽ\¢IıáAèÛ‘‹;€Np8 ¦ÙÒº!ÕÌ +Ü`š—)ÝÒF}µ—7e!ÇŽƒXÅêlÞJ¹wòñ·8 €¿£Ã*ü/„³t¿’[?ÉÇý×Çûë¿þ89—jÇkDzfl¡q5Rˆ/”êD®¾æെ"×¾ž„ççÔh%žY¾ë8\Ö°9ýn§i±£µ|ƒçšåeÛT­ +K…|/³dMÖBí3µ×ìÔÎ&{åi†8Í\7_²†–]' åL°ëéU=…“¼7It¸c›MMZlåçËŽ®wàMÖæE=Y‘šCªH\IRËi +¤4ÌÖŽFê¨w’y_Wü™5d‹Sÿ¤² '`~ǔɂUy’eÊß”‘ºø¹2¢4$UE Dt @D‹ +0c¬”ow½ÌMÔÊØ „œîÇŽp +ê¦bùh·¬È3e­™~¬ƒ’ñ“ï5-ÖcÊîK¬h¶,'`²"i»î2M}þÛÒ +HéúB isš PÇ"³æÐOj¦\LªC‡x¨"IóÄžÉ +²FÑƪ%2(?„H‡0ÈþC‘pþUêãi[B]‡"Ùô¶çoôaéšàÄ£è âL÷mYj&•Ñ!z>²*›@¡ L ªO†(µ³ ­jÖU[UœóË(ðˇðúL 9Ü—÷Ž«2è×…qÛUC:> B?´fôFí¥¥´Þ‹ÞºãII å-}5¢Ø7Óì¹`¦Éˬ"xK…$µÓð(T,Íç±q5TZûY˜ÑÈfã,M»1d.\‰†¥mÖªÝ7B)‹ÂSmðÖUZš±Ç†Uä8#ìק°¯™À>˜B5iôúMŠáÓ=„Öjô 9H!y\j-µ«Ý_»†!†oäœq,¼²­gA´Iúªas.!cåóWÁ’,Ù^`>ïúêQ¹ñ;dt¢„@B‡Ç3G]º.犛ù;ý~Ø¥µ€R¥ÂvÞÝ5I)u.RJ‚53}°íGàÂÖà‚Ð…?h'ÛµPqÆ£ jÁ^F#~Øñ!È]èȾ Ø_ ¿Òý­Nå r”M!«¥-œƒ µtu%§!RàæîÓÝâñýÝâ͘ C^y¡ù÷ÛT*]‘±Œ/#»*áÖ49 îE¬L¶‚̤99ÄíÛä/?ý0¬wtÓŒôšà&Ä^Š—δñ~ÃyÖa’ð‘j2ŒÌÑmA7ü’_4ÇW-é5žþG*FÒ•mTˆAáÅøW¨úñ¶çƦߠžïÙ!_ƒÍÿ¢³Íendstream +endobj +1892 0 obj << +/Type /Page +/Contents 1893 0 R +/Resources 1891 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1890 0 R +>> endobj +1894 0 obj << +/D [1892 0 R /XYZ 91.925 602.788 null] +>> endobj +1891 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1897 0 obj << +/Length 996 +/Filter /FlateDecode +>> +stream +xÚ­WmoÛ6þž_áO›lO²(¾Iè ]Ó,Ò †b؆@±d™ƒ,’ܤûõ#Í£^lÆõ‡"pD‘Ç»çŽÏ=’ÐÄ—h°çc2a~àñ0œ,7þ$—+·,\0q6oã‹Å{J&‘1<‰W‡nâô/‡{Ø›ºœs'þùfêbŒû‡ñíÃ9÷7òßÇiˆ?õÊÇ©‹5ùîŸâ»‡Óâ_ïÃ>B3.)߈Qeqqw0‰Ï hë?.¸È÷"¹Q; +e¾ŒS§ÎrÑ´Y=ui@Íö1¹hõݬÝl_Þ(Òûx{ôÚöçªNa÷㧺Ruµº +|ë,‚‹™öQV/z°0¨³pV+}]&u-²FÝ0g¶°ú ¬³ø ZRˆ¤x$·ÜÕuVBH“æ«qxܧ®v\êË'}™ë‹8(o»©Õ';e™½ Â<¯Uù³:Ó·í:ë öEó*W¯$Ä»„Nä3Ÿ ;a‚Ð:khÔÁÿÛ§þS}ý"•îÕ®É ¹ô%DgêvÎçÒ:î•1bz¢YŒÅ'ö§.ášÉs“êeOn3wuÕg¡~²TáÕIìñìßÝÝÞÅoïb5e-¶ 'Üó9à¹8ŒYÙŽÙ¾¬¶À‚j×e®G§|½xšÍJ«3Itø¾< ‘1íV÷~bÃ<Ù¼»ˆ*šQýøi§ +g J)1IzÐìUù9«[QæÐuµ¶°ec(’úÉ—±Ë‘|µU7©  d±]'¥éŸ¢èHúY§ÖØ|ûªðïÎHX²97&m3³ï^(œÈ×FöêT +¯-\hÂY[G¶Y⟡.©Ô\Q&­¨Û³‚ÖK¾51Z®'#Z½¸WéÖÚÄÊ\rŽN7k±jN¤Õî©”o[gKÑtð‡4|<9G÷@›¬bN¬bN˜Múĸ>GRx¤„Ì 8Cûä$8¥}`1Êö©ã3JwÙc6ï *ªºŸ©J!ÇX~w$‰c9¼ÿíñþú÷_a·]Iø‘X©O©ÿ_VC÷WEÚ?töi6 b¥ëß=LE¹Ý•hÃÍ"©sóŽ´W4Öˆ>ä92’ñ}Qèá:ùœ 5Š9Ë"Kêƒg»kœ”ŠÏy(ËóUê!y„¢ž±#!'¨ç[›ÒoÄʾò¦Ÿù¦M¹µÈR¢ô”k²öà7 Ôº'`RÂ`Y$ÕdÛ¡t ¿Bàã!¢"Û7&ØãHÝ ÿí‡3 endstream +endobj +1896 0 obj << +/Type /Page +/Contents 1897 0 R +/Resources 1895 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1890 0 R +>> endobj +1898 0 obj << +/D [1896 0 R /XYZ 63.034 602.788 null] +>> endobj +1895 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1901 0 obj << +/Length 2914 +/Filter /FlateDecode +>> +stream +xÚµZisäDýî_ÑûiÕ€jê. "Ì1,00³ƒÙ X¢ín{ôaú`ìýõû²©Ô’ía=U¥*eåù2³zÄ„ã?1©«¥™X.™«ªÉÅê„O®°ò剈;ʸ¥Ìö|zvòäY5©YmÕäìò˜ÊÙü§BX;ýåìë'ÏŒîö cX­èÒ–Ïþqúòì‹©(^MK¥táØ´tÎß¾øü‡ç§þ¥*^}ñ9vüðÙ´ÅÙW/¾#¢'_œµìie˜Uö^ Òž¦šTàÍf2§Y%mÁÔÓRZiŠ›ò“Ãn1Ÿ–“§á±Îß½â#⧖‚³ÚÔQ<’Y]ÿz±œ­®Ã柹á7øsÇGbô­Œ¤ž¼ˆ4—áyŸDæVá±½X÷ÖŸf3[”½Íï==QÅÓIÄ6 ‚ÿW³«L”¢^H¤0üY-ùíË_ŸŸù¥àu§zQULÖ2ºÅeÜÙ¦L;úœi¸ˆu¦Ø.ö‡m”s÷+øÚÎGø"fâøµ›!Ê1‹y`ïj„½¸¡OÈF½åÜA /¾9ý±r +7áLÕÕä Æœ‰ºž¬N »ªŽ³åÉ÷'ÿìò{¤Tv¤Ž isø0îÈCæ6‚ÃUƒþLq¹Ù^,¢.CâeˆÕuÓÆØ6Óx×Û¥õb{ NÀPº";øÑØvÝZë¢Ù5„ôvE~zXF6×B‚n÷t|Ú¯ö†í“ùÃGzpô]»³Û0¹Ø¬/"ÿÀÄ´ã<  ±¯–›_ ÐèÏ „_\$<À°Y·ñß–çÍ:FK]Bp„Dqã•‹·möë·I¶õcbìè¸Û³ßø5ŒWò¯dÂu{œÛìü¾òÈ™Vw$‚‡”µfÚ‰‘!“½‘{r{aêíŠy›Þi"xÞñ7×d>ïV2s+,oC:܇™w é¢kàEæuMøawMò†þ̶ó˜–Ù­‘«×1¸SÆë<¤=œÇä´¡ð=¬Ö;JýÊDy¹‰òb° )×Ë‹©——^·RéпÝ.懔í<ÇÜöÏÜ,qXäóUD{ŸG E5LiïÇzÉU‹õsˆ•.g^†bÎëDqÁŒªG•"ŠÕÈdU¢ÿÛØémì¡pÖÉî€\ûðlu€±gl¶Š³}³òGÎ;õO_ú"ê8'U0©Ò¥-²ù#³R¤UfÄy©Fæ’Σ’ÿ‘…ºiCrv±?Ì–¤­Û l›.ÛJ.*Ðç/gbL^R•O(é’õÿYÙô‹ìu/Mìö³íÞ{úUÀUoPTž÷O²–™¶ôXè;ðã“Ð5Õ:•Š¥¶l»Žâ¾§)ªÕ‰žª ¶¢²¬O­2#6¬P\á è%97ïÁ÷Y&]ÐOƒ©QøÉw”CDÎ å8+K%R1[U)— IY&D§¡ +ÞP'š'Ï´›$ü!Ž5ôo¡ 4ñÛƒõýÑàKPg¾¡ô2UÂ;ÆÍV‹-1}äû-®,P‰P±JeœM+UÄöèŽî¤çà~º‰m3ëóåˆ×£€bNꦕ°ÂÖ¥+”YjÏp\*Âe¬[vo®cK§{¯6ÛƳ´ +/ß4ÀÿŹOOqo $¿“4M¯×`Ç1¯Ô¤“ =r3WA*Ô,%ªsN;Ûq¼PŠ +ßJæ„y8NÔ,ŽE£pÎ{¤Ìš—IÙ•ÜCjê€h§­š9b&3®ûFk¦x²ÑH¿£SZ%’ +P^”Hªìh 2n$²Ž‘= V¨-¨{'ƒ]QÝ¿=f©|l&R÷±©x 19›»Å>…Yn °é‚€ Õr¬FXõnÕ¾ò·~ׇÐÆi¢ø¢¥Yjj¾†–nh¸“4ŠqùVU³wx_¢UfÄÞ'Uì(â_…£‹«“ –g®ªwI/ë¡Œ³J´Èaø@´Ò-.¦ødHG8€\BbA7KÈÖšó0§ qE•piýÑlL¹Z†«cbà)=Pøf7Æ=[+”™¶wãúâ°¶±³R>iõ|'çÒfLtèšßÄ¢ãáÝ•ˆ½Ÿ9ç#š²¬ªM«©ÁišYž2ÞÓh1É'Æ¡}ØYB¶:\ëŽ☔wi‹¿–Ÿ†ëº˜Xð$ªA¥ŸÓ4À¼ÌUÄq $蔪b¨ßwäîbQ3§ãï2#Dº„DÞχö£²±»]Ô|”‚s¦G¹U 3tÇO·w¥T† ªŽbZ&ŸŽ°òÕåˆI8’¶;bºgcxZºòL7ĺX¤KÌdìq}q²]gA¨3»bÔBÄ·/‡]ñ=]x»Ê½ ¾Uò®Ôi•1oÔœYU̶[ÿš +4•§ÏG‰2„>rKºDñj­ÃõgÜŒE¶kûÏÎ3z gØ BÇ¡Î!jï1¦ñ¡šê\J ïÈŠ§ßÁ€Ÿ$Õèåô |« Ï?~w"–ÂSÞQ +²Ñw3 €5(ªm/™êèÊtu1ôeäz{ÔÇ÷ÓPiù’nμØ0G|롺8]fM®oúG:¢J0Ž%;ô÷¤Ö}Ð]*WUOêféW®«ÍªýAkØÍ¢´¤›ÉwÁh¢u£Š|°›3º ©{ He‘ÔëK§ŸtV«ÑàÄ©›drl É•9ßáf‹ÿ(U®¿endstream +endobj +1900 0 obj << +/Type /Page +/Contents 1901 0 R +/Resources 1899 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1890 0 R +>> endobj +1902 0 obj << +/D [1900 0 R /XYZ 91.925 602.788 null] +>> endobj +394 0 obj << +/D [1900 0 R /XYZ 91.925 317.157 null] +>> endobj +892 0 obj << +/D [1900 0 R /XYZ 218.711 134.422 null] +>> endobj +1899 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R /F11 674 0 R /F10 1027 0 R /F7 586 0 R /F47 596 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F20 1030 0 R /F64 1214 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1905 0 obj << +/Length 1438 +/Filter /FlateDecode +>> +stream +xÚ½XÙnÛF}×W°(PPj9ž}†u@i6'uÜ&já Y¢,"Ú"Q± äã{g¡¸šiÃ0l gÎÜsîJÁ$ÀðCÉf<˜"¥u0Yöpp '/zÄ#"‰J˜'£ÞÑsÁƒÅ’£YÝÌhú!Tˆ¡~¤” +G/Ÿõ#ÆXxvþfôâ¼O³gðçm_³ð½;yÛHh6ŸþõÛèôüMÿÓèÕÑs]0ª‘’ +ÛD*ƒè=dr,‘â¢Ó“Óp…—˜”B±ÒPi*-Ýpaä]¯· 05Ël¾ìG‚èpiž6u-DÄ9Øš/½Ÿp0M¯z±X7°ÆˆÄq°ì1Ä™òO‹Þ»ÞŸ…æÜVT2ÖÐLǪ¢—ëUŸÑ0»^[‘‰ÿO])%QHÜ}(Ímu*¥” ©HEé.ÉöÔL¹FXQŸñÑ<ý»~Ä Ç‹¾MGšÍa±4›$¼I ³ÂáÄøk1vµ‡Åbœ%f¯$† bC=àÅBX¢¯}!áòÞ¢"†q¸ž9i„B›Dk¯í#f´¡^#„l“/Æ^ºM¦ýˆÆ1hͬ?+÷˜Í=ÕìAÚ¨¶iKŒz—6 ÛÚ)lì'Yºö—Á€0AãqèªÓÌAö;{sçHÆnó«¡)Q؈pŽg> .;)艤3•Á6КîåafcÒ§*üìú9[»ÏÉxQËÁ“f@ #C*\ÀNV¡ ÍÈ-Ôôâ1· ܈¹B* +ÀÍÔˆóûp²ö-”B,¥1 }*5ô +FR¸9ùÜÂ"ñhY ‰‚^ËuüjªW†W«zÇAû2Œ(0}·}aìIÑÞ¾ÖPT²ä†|Y&ˆÈ‚ÍN™æð#PCDÞ‹¦ÜV·,…„Ud•É,—ɶ1ûˆ„ÃÈýõ¶º…* **B]gf¦§7hR—(Àª  >˯´Æ«Í#£êèuAïßÑa;ˆHÛö€ö±ßU I( à-G…Ð;·¶³Ê,àýb‡Ö>ÃpÛÛ^w£ÉÞËö³™[ŽZ™´gJWYëyìÏ—›Ë‚ïÒêqv?báÐÜw<æC†«_¼ÈÍå4½Nˇ t¾†k¤ú¡χ¸Á7 +3Ñõ¡”ãy@ÕI! +n½®«ã +»ö—h«&VKÇl¼óæÒÕ×d»;Ä{¹žº >·šâ ŠÀ;`Ðz*§ÖÊ“ñ.ñs†CögãI–o[sGe'—ªr] Ýç‰û ¥ì–œZÙ¼!xËŸ<ö º0¨©¾èbh@h®ý'ÃtugEèB¨¡+ÓÁ…ÙÌ"ï ìuÖ6Ëq‡e#ÐxŽD…tïž-°. +†sŠÖöc¹«ŠÚUôxºù€?µÖ(k­QƼ¥tV¨4¿ÞòO^dá͉'Ãyà«MG(ELÇ]—#ª: À™Tfeû­/Ú³?.ÿþ~ܪ[4©™²ïfÇ|ÝÂìUC­“”)–ÛJ€óà”ô³/Å"@>d¼Øyô¨EíÊTʱ[çSbžl}¯ÞÆ''¤9"x×hfº*}àµÓJ1^Uë-HPZÉÿ¡AwjÈÇÿyYý0Mfé*™šÈAZõ“ÓÑ]Ëñƒ8¯Ð8É=HVÓtÖÖPœÖ¬ú(yî¤=üöÍGÂÒd¾-"pÕ"‘tgè؃„ŽÑÎÐñ»C—CD: +ßí6d­äƒ8&;;‹«ï;¦[wc¯þ¨ø"S™+9ZÖÔ\u)y‹ ê–Ê*ÿS”Um€öŸ!uðÓÓ§£ËrÅ•c}Ûx¿³á»×­ãº½\õnÔ†þùëáûãúWjÿ-8ˆÑ¸í¿DŒ3¤ˆy*þ z“T^endstream +endobj +1904 0 obj << +/Type /Page +/Contents 1905 0 R +/Resources 1903 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1890 0 R +>> endobj +1906 0 obj << +/D [1904 0 R /XYZ 63.034 602.788 null] +>> endobj +1903 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F48 601 0 R /F11 674 0 R /F7 586 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1909 0 obj << +/Length 2682 +/Filter /FlateDecode +>> +stream +xÚÅYÝÛ¸Ï_aôIFjH‘4É%iS4wE°÷”äA¶åµ°²µ‘åÛÝÿ¾óAêÃ’µ{WÅkŠÍÃùøÍH,"ø‹T„©Ô É0±v±9¼Š·°ò÷WÂQ¬ɪGóîæÕOí" S/nv—\n¶_aìòûÍ?ú¨UG'´S_$ùùoÿ}óa)‚/ËU« —«$I‚Ï¿¾ÿí_oi2¾|x¿ý¼\‰àæÓ¯¿ ÓWnÚí©X‡&6³'ð4£#h»°°7Ó;ƒNTh¥¡ F:vgH;:iC©”;Â-¯÷T±qÃÿ4”2&š›}q‚³(œðÕÎSorœJ‚ M-W2 ¶~ª:àä=ø—ãӉך=Oàø÷¥6AVžsf^íx/Bôôè0ñêþÅr´]šÈÔùÜ[Qç[fÙTü{û³A^ï`µª,þ3>—°ÐÜVÚd SO(Ï +H€Zµvü·ÈŸŽŒ+ª#ܸið© : ðtÙ‰ÇkšùñPÑóßû å³ÅeK[E² 7ô;þ«Š¥[Mé  Â-’zqõxË/£ÇM~rš&yÈã\6Hw_›¬í.Ûå‡=ll¤ïhp^Úæ¥ÂÓPYéNv†|«†í½Ùç<Øæ» ÕUºiW¸½5* 9…ÌX% ¡B¸#2=潊ÁÈSÞ¸”¼'¤CDÖ‰Þ{H ° ì½6‘àK¶Å•G~z[Âø¶B³õ/6ûÃèdpx)Àw„³z¦eð¾8Ç‚5'‚}ïÞp$áù‰ÍˆŒÜ_7̓mózgç2«y²îXÂô†î‰¾ÂsúǤjƒ}Ðã.+ðµò‰7%1 »ÉÛ&ß,Áhö+2èáÍÒy~ çI‹¶PlðÍ=?n²#Öluð?`ëµ#'Q`fSÐ|( ^köü²³É¢iõUó4™R¾ÃÉ Qç{»ªù÷ªkÒ*™Nœ§ÎÖ©U&DÀ^ãˆ}7¯›Œ ‡çœS9jº* ¯ +©ÑÕãÄÙxý¢ñxræ@WëìD†•Õ†?¿­²¬ð˜r¹å…Sq¸/‰n|¸Mu¼­Ï^§Grr§……h©,˜q¦B8ÖÑØÏãÐ&>MÁqà–O 'ÝÁp¢ .±¦à’9 âÒræÞ+¦p–‚KÔêª3Û0É«oðHià X²0a +±„ÀqŽ‡F0úŒÅˆœ.«\uDÙq"´øŒíU›üj‡{=øc6ph”ñÏ#,ZÃãFî3Ù¦ X[@Ö¤{°EÈžA÷\°$U;¬{& vÕ8ìc#W oðQöˆ;ÔH Ùqé Š Î'ÏÈ_Œ¿‰XöxÿÛ¿0Yqô×ÝÔ}˜K„rQœOל-[¬ˆ ³‰\²%$¿.½¯î[$²)NÄü3¨‹Û½Ëð*†`f»k°ÖÑQpÓE¸L<Ø]0“"ÿÛôÈ2FÇU‹vÝ<#xçÃøú9.8hóij”"]Òê#á¢SÏòj|ùDöH¡˜2/Š÷Åѹ‘¿m0",pêJØ8 øC8–fAÚ 5?NX¶2¢5í±[Dà`~¿?@˜™pU!Ã4õ¾úz>ŸÔ×RE E¢0j>Uôˆ®¥ +OÒ¥Šd.UÌŠõ©bFl›*@S‰æ:þX|ePÛ]$ãÜ +ì“î¯ÍÛÜÕ7>ÓŸ].¸žï…P6šÿ6áÇs ¿—î'ÌleâPcE–Ö7´á6:K»†ÆÆv7elZ·»×–+.»5ö¹ÆZ}ùÕÀϬL_XÁÞ<_w bïî“  /€D3ìˆMé723),£8ùßVžh"î7¶”(kÚ ®¬æT0@0Ù'¨üòÊJžpíN¼ã©2œ‰³€¨6ÛŒB¾ýër¥%>lÓd!ü v+qYóoÊ3µ™°áÇhÞC}5D\T#(pèn}W•%Qpì:‡È(+o«Ú7ÄhÆ÷ô|÷¦*~ö® †ëÕú4¨¸°A‚'˜(d\ÙJ'Ž4Œâ, ³7WòÃ(=íGbZ’3¤#ua@×bMlBÑFŠÉT¢ås¡FÚôj¨€"Fô +Nˆ½.ß<>×GÖI )û +8ÛÖ¼àNu*‚O;¦¦Âøvjº|®¦Ü’Žû7óˆ±+ þ6Ú»D÷ró|iR{iš<§¾d>ÒZ£z“7€¥$fêã@šj®6™¤kG¢³kÕ9»ÖèãØ&®¹iyàÉÖ>‘Úõª{~ÌÊCujüøkJjß?±—àëຎ;v Y"õûü´+Ù÷Aw¾ Ókfn(ºd'ö³¬¤¶/µ.ZƒÉ]-Xø+NƒK°*j~&®±Xø`U4¼W^"w®#Nm9*_j9ù¥Fj&é\O1nû ¨µB¸ûL*È]…½nwÕî sÐfоùBhcßž +m-Œo¿F•máFrË'únq(²Ò….°z#l:O8Ô0*uµt~Da ¸5#+–pé: .D|ÅŒÁ¹-ømGòúE¨¶'QËHBÿP#ËÚi!r +…ô°ÛÝ5Ü,ãÙçÚ=¢k¸Ù“t¸9Ãͳb=nžëq³ÐLY÷¾EܨÉ="é>üQs…Â>Lù¼ ¤em˜Ø?cR#ä/IžÚ3åSêÄá׺«íújº1ƒa P~b2®ÛÐBô›‹ë‰ûNØ’¬QÙ ëºC) í}æ?0åîs4Ndü³óôßæÏ\t§y}àÏ”`XOEòÕ¸pâ¢# +p3SRƒjÍõêVÙÂï]Ók-S,kŽ„'éÛ=064¹ÞÊXvµÿqvwñåi¢‘`L(µt¬° ÔE,ëß>àiåüõ¿8„LZW"þpu?Õuù +ûÓ WRÃ8…œ„ (eÓqŒiV=¢qòé☈fÙŒÜXÅô k%u(§(> endobj +1911 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [328.7 476.081 335.673 484.494] +/Subtype /Link +/A << /S /GoTo /D (cite.DRMET) >> +>> endobj +1913 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [279.359 398.899 291.314 407.312] +/Subtype /Link +/A << /S /GoTo /D (cite.MMB) >> +>> endobj +1910 0 obj << +/D [1908 0 R /XYZ 91.925 602.788 null] +>> endobj +398 0 obj << +/D [1908 0 R /XYZ 91.925 514.894 null] +>> endobj +1912 0 obj << +/D [1908 0 R /XYZ 177.673 429.256 null] +>> endobj +1914 0 obj << +/D [1908 0 R /XYZ 240.426 340.12 null] +>> endobj +1915 0 obj << +/D [1908 0 R /XYZ 208.22 298.803 null] +>> endobj +1916 0 obj << +/D [1908 0 R /XYZ 214.543 185.756 null] +>> endobj +1917 0 obj << +/D [1908 0 R /XYZ 223.864 132.485 null] +>> endobj +1907 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R /F11 674 0 R /F47 596 0 R /F14 1012 0 R /F7 586 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1922 0 obj << +/Length 2669 +/Filter /FlateDecode +>> +stream +xÚÅZ[o7~÷¯Ðã»by¿Û‡tÓ´.š›ØM&ÒÈ"KŽ.±½¿~ÏááÌp4”œ6Å.x8äážûw¨ˆ ‡bbãJO,—Ìy?™Ý]ðÉ ¬|!Å4‘L3šo¯/¾zeô$°`ÕäzqÌæzþ[å˜f—Sç\uýÃw—S¥TõòêõÕÏWoáUT/iêÍ‹—W¿âPW/~úæysuýÃëË߯üê•ï? ¤gÎ:8ò6 ÅÅw×Ý15·ÌisV¥s¢¸î8ã.€ ž™ sŠcJÍ‚— A#ÝÇ‹ß~ç“9ÐýxÁ™ +~òcËarw!‚bƇô¾ºx{ñ¯þLByƃ™L×°³×®xÞ¢ðBk8™œ2ŠUðbʺÙl—{xÞÞ‘ÂŒë7ÁÅMRØË%PÝ-×—SQápw‹£fšºzSÏãÂcz½¤%QfûåfxçR¬s6þøT¸G¯œCG¾ŠŸ¿?àßý˜©4Ì Ùñœjcq‹ôŠØà®›fKû,ï÷)Ç‚iß㘯aRê´ü÷ñvìjw¯K» çw·gþPЃ7QQ¹~9ìI(Å·C½æŸ³Ì{ZTÏdhM~JÛ\Ne¨ÐÊZUï¸ácŽÜÂa(è׳¼ »wœ8&…9RÁ@ÜŠŽÇÛ€1‚ `ôW…SÏît<)É´7”R +Ú‚IÛºÎDZn, !t¢iÚö¦z_`®í:ý,SÐ4©–Ûl¬Ç©ÌÈaDÉ¿âÐ%Î[tà‚÷¸sЙÓ|,‰_0CQÔs¢<–â¼ú|Qž Œ/U´ž«I@‡ÌdÕÿY“þ­ÆöœÍÔ“a&3m–^”Å™vþså‘füÅÀœt™m +™ò€þ_¦.È£²Úß6k2­`ıJDUˆ¡™×î¼:ô7o(›·—v¨ÐÞ§ª¾T¡ö¼BG F™0Ö¢¤²… p³ßÐËnßÜÓHÀ4#×ø0™Øä˜ošýa».ä'ɬè²T‘´‘Œ{û¥É35f*x@– +®O FjÛ•¬ þ&’–ýjy*8lÒ”å× µ ½B\‹{À…Z¿„—%À¿åî6b>Þ€ùä÷¯p¦‡|¹J”l 8&;âH é4˜éXPîl+¡¥ŒÉ¤ ©4yCά Iߢ,ëYCv¨×KDWbèo+ OJÈÎŒ¨ÆËQ[á˜QƒŽd¹…pÈz¹¾¡ážjœJ;˜¡(ÎÏPe *@Ó-¬ž7Ûú=ó'"‰ wõjÕØmÏò¶^ÎìŽB0;/€jÝ–˜ý-p©÷‰cbŸ££>,ñ£+Z­Wˆ£ëK8ý8'F‘¯WàŽG¤ùÿt\7QVÚêú¶¡&áÓ%ÄW½:d8³YŒåñ°ÂQÚˆc»tQ/ö¹–‚"íQÀÛ¢¯DÁ“ξ9¬£ÚS#ƒ¶ËOh +Púm¬ÓŽ”®DÖ¶ +kY_þ¥.D0ÓÕ| ç«Ðcl ž×Õð¨0S}‹B<åµRÞ“ÞçÌñVïä…‹M mŠÍhç†9r8D+ŽjÀ9¤?©kˆ+î‡å?ßMƒAùÏ6C§+[CE À¹Ð,€Á9o…š·k¡ž¢€¹ÌFŠÈ¡` ¨ÚŸ·KØ“'„ÜÓÙéñÑu˜ñ˜¤êàÆ#ç£Èëa Ýb*¥¬D[莤ñÐìaÉ\tµp\jýP ¶ñ”cþxCñ\bÔÐ éƒüF‡Y´ZOsò­ZGò€i¡ô)˜8QûZšiFt\Žù´Ö’'Je{tî»-͹ﶥHîÑä¹ÿ¦² +u–kH§ñc²™m âû=fŸ8¹+ø!{9Kqæ»ëÈà+âØ•ÍMµJ- +„Þ.†湞j´ã1ŽKyá ™H„6ÈîàS­dL„Áü êrÐç+¯g:ؼòóTlÌý8’©DÀm~)nÑ"«260^žL‡>ëHÓ2pød[6ñ2\C/«Né¨ðvyP‚hˆAIÓ"*üL×%+xkŽË‹¡I Ô!ŽbbÅ« táŽÆlhqïɤoac–+ü¾nÏmãªåŸ6–|¿]Þ`Á"¯´UÔÎjùá’4‰pé^ÒBV݈õšxô@ß4-¶áaIÞGØY“ü~ìV2aõ¹œký¸ƒ:²Œ6'³¿é°Ö~«ã…'3¶`=k±à"/z¬µh’ŽºŒ˜FÈESC½#SíèW¢J5vï©À™mù|<,#¿9MÄî +öÃÄ¡S#-E,µÝêU²)N6ŸâI·TàùÀ?–hï{d³'ÈÁ{‹dR³²­×7iXˆÈ‘R›?"_XÏ?» ŸŠ¸F<[Ç» +Úc…,™BMݪ®çRÍ L{ŠÔ ¹!†¯>uø³Aì¥Ø5*uã®oiöÛ¨MŠv$kÃUBúßöE¦ëa;á¡;vîL>Ö]'÷ %;!•ÎÆ:èëw±åŠi7z*ää±A µìîÖ%`#Œ:kR(ûRœŒrϤõùA]%JX> endobj +1925 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [107.398 254.029 127.102 264.877] +/Subtype /Link +/A << /S /GoTo /D (figure.7.13) >> +>> endobj +1923 0 obj << +/D [1921 0 R /XYZ 63.034 602.788 null] +>> endobj +893 0 obj << +/D [1921 0 R /XYZ 176.054 436.201 null] +>> endobj +1924 0 obj << +/D [1921 0 R /XYZ 167.441 351.139 null] +>> endobj +402 0 obj << +/D [1921 0 R /XYZ 63.034 191.315 null] +>> endobj +1920 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F11 674 0 R /F7 586 0 R /F14 1012 0 R /F47 596 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1929 0 obj << +/Length 2677 +/Filter /FlateDecode +>> +stream +xÚí[Y“ÛÆ~ß_ÁÒKÀJ8žûHÊŠ%År%qb¯Ÿ,?@\.‰‰Õ®òëÓ=0 ©,§ŠëJéL£§»¿>›QøÇfŽÇÕLSNŒµ³åîŠÎÖ°ó·+)‘d‘Ñüõúê«WvæˆÓbv}{Îåúæç‚:ÿåú»¯^)ÙÒ1¥ˆ“ø"É7ß>ÿ×õË9+~˜/„…!ó…1¦øÇ÷/~úûsS?¼|?}3_°âúõ÷ÿD¦W/¯ñ¤PD =©‚ 6¸Ï(%Ò9ДG]NrN*‰³`4J°º÷W?ÿBg7@÷Ý%ÂÙÙ¬)aÀnwÅȤX¼Þ^ýxõïV¨psÁàLåFyy" +¼Â*RŸ±bÎNõl¡Œ R°"Mgl¯Ñöœ +"¬˜)£ÁÎ#ð!Ò-™+&€¾ž/¸ÕãB*AëÂ9_Å@2Ÿø ÀdX±ïóeœp&»Œ¹Ò}~\…6Ëù½àÇ@ Ýå'ÎCpp=ef™]¾ÀÊ€¦R‘ÃÇ.}Í 5r}­ˆÐÌ[í}´ªkÉ4qþDÜ~C%E»ªâm%¦ˆ5 ¥Ç¯ç-æ®C$·eBM´R]¥å]mÉVÇ/C‘ùÍ‘ÀÔ´ù•$’òÏ6ßîàö&mƒ´¦á@EŸZ=ÅÍ»¡ø×ü,ü¥Ô0Qn”Vó‹Eè7 +”)e'#ºáŒø  äTK¸KÛ»Zµ¸H|”‘ÈöC\sg ”BÒê}q€ˆX1&!“¥Uÿ;H@–&}ý±ÿ¸ƒb¥Ï¢LÇéY”X: +I«÷ÅAÂÀE…†„3¢¸þ!qÃ@ê¢}³ç¨¼¡jà è¬< ¡ÎššÞçÀ«ñì¨Õ­ŒŠ…ú˜¹€âfÿÖÈ¿ç&„jbí'ZPàÁ´½Ô&z¤ñ nÕ»´ –†+Î'-c»§Õh7ŽG¦ôÅáa¥Ÿ{'ñ°{‚­Ot™â‡‰‘„ÒéI vü)õ†šq4Z•/ -•Ó“Ôš!ž|Û¡?Ùvè_ÛvhËå(ú­‰ÇM‡„TÛéþUÂè팺ԦC«Q[å..€aÊ4ÜMÛ]BþaæiµnVå‹CD4Ósµ”}Šý†ÏqÞ‡Œ|–MC’sB{Bí†0£o3…/ jˆUŸÀ–Lþ¿×ï5¸…¾µï…tR%ìlÁA09øaAiµÚÌàÒD39ôm3Ñ$´Ë«j uÿþ¸ +ß( aâÏs¨†²xùXîî`o» +ß4_T»j×Õi³º‰_4Ë›ê1.W7÷°¹Ä›u«Ã¾g^£ À³LžÜ +L€ Fœ˜þ†+`¶ÑFê‰o6´<±<4Ü/ª^v”/Š·Nûµ_ªb½ÂMTÑ/Ž°(·‘ê~Ë@ùaÅ !úöVwàY¦h¸4g%r¤:ÜùJ²:–u.Fë°Ì¸ ÷ÛÃqGæ -Xq½IL¢þX$|\ ±ÁlÐJ ¿`$Ä¥'@ ëÊŸ¦£:ðû°YÅ;µg ‹›!;5h#¹óë` ¸> ’sý¶·‰w”h½QƒÓdÇdsó¸ò‡ƒdÀ°ÎÌ„÷'Ov·ˆ×˜F]õȼÖµWÙyÆŠ+=î¨à¼8U»»tï9Æg"Šûeµ 7ÊýMÜ)#€ÇðÔ®Lú3\WËÄ9 ¹„rUlUqeŠrw¸–8…5º‰°ÅiƒßÖ>&×qÏ£(¬7?qYí¼Ãæݶ\ÆíÀôÈÀ½cµÞ ™jp6©Lñ#ZrWmËã6ú8<ÞQ5ž}ˆ¡#¼WØDS7ŽpЫ­0Ê5 qÚ4±hbö~XOáE +ZÔxú!0É¢² ãÝt/™(¢¼’ɇÇx•hRÒz—À½·Þªe Åò°»ÃìV7Q9Æ°Eš×ÁK|ÈZQ¼®Ãî}¸GSÞ„P5P¦œîئu”ã*°Al¨,‚ׯváj‹†_W>Õzp©ˆÂïí¾ RቧU°42mzª ëÞüO`¥iŠðŠü“§Àù·xþ1 +Ã#Ší•‘¾ìj("}!ɽîúXÁœ‚µª!yðÞ¥÷'&‹aXQÈ6D?f"•umdèwÚ4õn nT›õ5L×IÈÐðçÑ…õ„‡³âY ©öISß±Â0R¥Ö3²ëúÕó^ôhZE§ƒÉÓÖm¹Œùêm\¥ŒF(­å©AÉ>>\6‘ͽ%þÝ°ûD‡à «ed{XÇê‡\Ã;£¦Þ tPJBçi'‡ˆ¦œ¤®ãTöm“ØÎC Ѷ®ò·ŠCÙÓ®Mç´XIc{¯—;e,{©Ðf›G>ë¼&ço,ã»F§ˆànèmdúï4ßü/Téendstream +endobj +1928 0 obj << +/Type /Page +/Contents 1929 0 R +/Resources 1927 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1926 0 R +>> endobj +1930 0 obj << +/D [1928 0 R /XYZ 91.925 602.788 null] +>> endobj +894 0 obj << +/D [1928 0 R /XYZ 208.211 391.569 null] +>> endobj +1927 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F60 1208 0 R /F56 1170 0 R /F59 1176 0 R /F45 589 0 R /F11 674 0 R /F10 1027 0 R /F14 1012 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1933 0 obj << +/Length 1544 +/Filter /FlateDecode +>> +stream +xÚ…WIoÛF¾ûWèHÕd6’C =$uu +¸:hz %ZDŠŠíþú¾e†"-9…‹|óæ-ß[©fþÔ,7B;Ë¥…s³es%gk8ùx¥Ç<°ÌG<ïWo>dvVŠ27³ÅÃK1‹ÕßI!¬HçEQ$‹OïÓ¹1&¹¾¹½ù|ó'¼ªäšIwo¯oþÂG›¼ýý#Ðÿ¸»Y|ºMÿYüöæƒ;)0Ú‰"/À"”­ +…WV械Ù=‰ ”mÍ'+¿ö=3ƒô9ªïªYÛÝYúMàmÐDtuÛ{’á—U@®ß£íÏì²R'ŸµÕ"°_‹y)ŒÊé²È^ŠêÕLôd{RšMÆöÐD2@"WDê§ý ÈÝ.ÒF;…j­I>¤ ¡íó#Þ¬z²…Çg¼ øbÚ×ü¼D‰PËð `‚…Ì„uæU,œp2¦¹ ÖíÚžúºëü=âþÌ„íQß3$ŠÊ‚Ì·h¾Eó‰·ÚnFÊ +íì#€]CmˆÀžq2J‡zR2ÙS’3˜-XJ ¦øõ†oÓkuàßGL›ôÓÛÖ$œiCzîÖ”—@¼DàÑ=sSXð¦î˜0dˆûžf9xz ¼—" 'Ž_Œ€žF ´ä‡”½¢Xij Ž«íš²Å÷›†O=¹ O£j¡ÿŒ›ìœõp®|ÑdMh²wõ¡§FÐZöõŠ›íµoPïŽÚá&Rï±Z!ñ)P '.C’Ÿ¹.¹ëõ„¸v ®fɳeÛ‹vÕHÜœrNƒz¼öÄ¢*,ÀÈj ¡nªŸ~ÚÑS}Å'åã¼>.k¾oPÊ`':öLhZªdbÞ¶”ðÓ€CÂé2MK!¡!±=ð€Š–ba# £ÞvÍy.•N }mw!“ +'Ý/ç—•™*†Qƒ„Yä,eaiò +hŒFäŠmߎў‘‰KùÄóEJyÁP¡ôëC7Ñ *6 ¡÷Ž +±™¬Œ+ÕdÂÖLŠG>†åÜï\S4XãÓز2ÚúÈzýŽ[Ì XEŠI@OåŸ%]E-„Þl"/À¥D~‚\ÛW¢’ÆA‚ÉÏøãb„‹S|´3Ü(Bç¿oÜ8@ǃÇQ²fÛõre¸ZƲET÷ÛàǾ:Œº­ååCÙ‰ç£ÎÃqBâ*ÖN£¼‡ávª%‚³´¡: ™ó×f†ò‘—\h2 ÒNæ,É~´O4aSÁ)s¡Å(•ƒy`bÅy…uÖ0eS…£›^m÷½í6$ír}ƒzší­§HrZù`Qµej;0’̎꽊Wð7“¥¯¸ÏÂÁcl½à +sâŠËè!,Cò˃Îÿ·ìeU>®ûQVY‘ËŒ³ŠY~Â}T6#õú²6%\5ô»×l†…ÁäöGû›uᔶ — )BgÈ<¿4™J½ÞJ‘A²ò)î$çf–•q…ÿv3'G}.—&,`Nq­XŸhûË…Ä0ðð‘¨{f1”IÓ|éã*UÒ2gÁdÜJ! 3Až:ªÉJ¨"JÁ¬¤Ôòã`Ûý¡¯¸¾<¥qæ ÷qÍù—OÒ½c©ïª®«ûž_*ô9h¾å8áýuÛ Õņ̃ӯªa‘xQ†úd½'Nd¶ +KSÜÉÛ]ý}rà&Õ¶ªÑúŽÔÅõJ¼üÞ _©e&Œ./}íkD¡ðmtø˜çßendstream +endobj +1932 0 obj << +/Type /Page +/Contents 1933 0 R +/Resources 1931 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1926 0 R +/Annots [ 1935 0 R 1936 0 R ] +>> endobj +1935 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [311.885 552.95 332.209 564.905] +/Subtype /Link +/A << /S /GoTo /D (figure.7.12) >> +>> endobj +1936 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [103.763 423.539 123.467 434.387] +/Subtype /Link +/A << /S /GoTo /D (figure.7.12) >> +>> endobj +1934 0 obj << +/D [1932 0 R /XYZ 63.034 602.788 null] +>> endobj +406 0 obj << +/D [1932 0 R /XYZ 63.034 584.788 null] +>> endobj +410 0 obj << +/D [1932 0 R /XYZ 63.034 492.738 null] +>> endobj +1931 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F47 596 0 R /F21 1422 0 R /F45 589 0 R /F11 674 0 R /F10 1027 0 R /F14 1012 0 R /F7 586 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1939 0 obj << +/Length 3216 +/Filter /FlateDecode +>> +stream +xÚ­ZëÛÆÿ~…/åÕÖ†ûÞ š—ØN6uê\>I +ÈïDX/KT|Î_ß™}i)®¤ |8àDq‡³³3¿yRtTÃYJ,“#U3¢M—WõèV¾»¢bHÆÍ7·W_¾2#K¬â£Û»c.·³_*ªÙõo·ßùJŠ•’XÁ/’|û›o_^Óêíõ˜sQir=ÖZW?¼yñó¿nÜM^½}ù(~þözL«Û×oþL¯^Þ&ñ—Dquö\p¢)\ÐâºR„1«”Áz$Ǥ‚XCGHXs¤ûpõËoõhtß_Õ„[3ú×5¡ÖŽ–W¬¦„¡ÿ¾¸úéê?¡¨â„2;K#àɤV©Fô¥œ¾”%´Ö#©À:­Ý,@÷ëmÛÁç|”¬ `W‹ ãåæXaŒP”H©µ ò? Ï'Á±"ŸGϧ_ Ÿ6Ùòd–?®&øÁJZ²5aµ|-Vgµd±:×Ò¬½l jb”È:F½÷¾YXýzø´%šEÜýZSž·ùóº>PÔu‰£ª¯iVƒþ­6Þø·ÖŸ¥ +9¦’ ʇpî6“q·\p-iˆ‰ó‡z¸3#«¿á‡*‰Ç8©‘œ˜Ú»Š'•êÍ ¼±¤·Û߇œþFDeÑço€Øìé‚ð£dÖÊ «¤IK±Drb!Úä±ä;۸èT$È°½à”˪ˆ’ê´ŸÂl|z¹Fá«YÆ`V.såþó™àSR=Yv<°;ÑÁ˜G.-œžRÂTô¿e¯*…±_kQYhÎþ8º‹é»fVðŽå†î…èþú®¨W¡#÷dÌUåÿ¯§Ñ?†f¿®££±!gATBè²€t +ªwófåC,†±íú@ð±À’æ<”"Òºµwž‚d2ßc%‹uçL‹ÎÎ~äü’Ù! ©¡å 0bÃIr0|퀂†ÊÞö"˜÷n½-ØWžäh‡[`ùw¸Û®—1â8c`•·.˜|‘±³¦JrB¾-愸-õ›ÍÖþ€‹+s|BêÈŒ­þW¬Œˆûm‡ò(ˆåâñö¾”äh}ðÑšžG{@&”õY’Ãb$KrËa¦QDò˜–ž•XH{ÚŽ°J˜ø?;Ÿ‡OˆÈsË»ÐË›È!ìóe¡æåzh`vÁ²Ff›ËìÀšHN¸§ [ˆt®m©Š&K«õÒysÅ\M-TU=E+EÒôh¬%´~l¨9~AsŒ?.Ò¿+è‚D:Ýeå`ÿº\,‚TÊÄ=§l(hn¤ù å¥èú'Ü-—Å‚?©".NF†€æP´É~ÄRO“KE½NEC)…åøX€H}hï +:i*M^ø.Ra{ä9ÚOÅw•Çw–â;…’ÃÄNÕDma|ÿ÷×—Ý_ÿÉL‹=º¦=³ê`V7ÂYÈ}ãXó€w§ÍnZ{ßÂj¾® Õ­¡‰5lbcR[¼'—yt…WlàLV¨ÈóýÒ…VÙr¾NÁð"¥|´™OKxÑK‹˜f›TyúŒc‰ eÃã0oÜï0Þû’“W»®ÙxÌó`3=¸è=lƒÅÞ6Ý~»Â”d½r—ʨ—~Ó4ီ@ÕP‰?bê`ØÉašç5Θ¹–'—‡qx i\cøÏ›kmªÿæK¢"Ïr9Õµq%\ù¬®B;03ì ‹“Xj<­°E‚RKËÒ09ÒD”ýzñý~Ûø¡0Ô‚â+0žÕÍg¡èãó¥#GC¼£ƒ‹g›^²’­y;è£î`8ñä8=ƒìÿ$R^g¥¢š@ÝÜ“jÛÌö »)FÍf  €Ð'U.àÀ LrÂ9Z–X((Ͻ?Û@”:¼?¹ÍkE Žxð‚ÆA÷ØMº±ùsT´°ÔuÁÂÔ@?ðÏ?bz,@Üòè!ðğ8ñžÀCS y’ñ§+ð:/–…ĤzRõLê¸ì °±°1³ÜÎÑ“ Y +«ªIϳðÎÇóíÂðÊtÕlï0ìnE7ÇzÅ_¿h—ínî‹?=´Ü½eìÑ÷v2Cþ~Z†ÎM¡VÇù{×®W¾Ž)›ÒƒÌО +qTzfG‚HŸæwqš…*X¬‡¬8@œ÷sNÆ 4n²é»µN=þ×ш&m­ÃÂUöÚ:Níµ%Tôv‘ +“T":,½Ý@š„´÷a­ëküêÇy³mâôÈÄ÷É +Ì¡â6›.C†Çérmâ·ÃñLÏBÑ~µ +UÃãdû£cILÅ‘—ã¼ÝÎ}¬p +è 3Y,>ùõÂ/ Ý­/O±ósïhb¼ÞDL4{DÞz쀇˖H†¼Wž1è¡´ kÚ«,ëaÚl¢Kb…èÊŸÖ&þc·hïçN@ÿ}Bu—þ˜ g¢OSUÝ"çà) À‰Òµ¿·;ƒœÅ§‚ý$Æ<n2‡›É -¡OHžÃ®JÏZ8‰7øÑN'ÝE™ vâ$& ”"½SÈ6s§vüh ˜3´§ßR,†eCåÉXl¡,)¿YÈ™0p[ª>S —=ENLàõ'AJZ!ã¸%Œâ°¶_tN/Íz¿sˆ‡¥vµk#d zJ`»ðZoüW4ãä{¸Â±°„ð~ëÑå« h¨>n]L€³kKÆ: ñ¹zªÝè ÓÆÜÖ»´×º|õÃ,‹€s„“é4D —øP_÷~%ffEÕ5X8ú®·:‘Æ +óh˜Ò™¦÷WÏ +Y#›´Ã˜EUì<ÿâ"Ç—/k€”QÈsçkè}óà +üô^ óî¤;1CO‚EÊObÅ@ÞÔ=Á‡Ý·çìlg¢ÕÂM_œÑL¢P[ùrì“¿“bf’¹ +h³‰eõ#ØþaCðâ·óÖÇfæŠKUýc¢Ç:>×”Dæü €f•ò·šTƒ-œËâ=oy¸H¥d¯°†‡/UÆ¥Ìç†?:Ð8­9‚t»ùÚí4Ÿ [üŽÿ‚øóÉÆO÷ðV::O#Ôzí¹¾@ÄÊèÝÁR>¤ÚLJU¢8[ÈÓ$ÜðÅ-N$|NÀéC +Ÿ!k‡ûÂý}<Û4Hâ´¸óÕ[¡Ì¹  ¯u¨º]¾oÆ´…<-!OkuF7:XW&Þ±çÃ;ÐÞÜ7[ ½ÃªPµZ78U¿C9 X^~¬Aqáf⦶Pà:]¹-‚®àž«Sî]Š§ Ô áámðq^ ‘GJÙÓâ+G¹Ë~™Õ«HaÖœ9OïÝ`6Ç +Ñü®ÛN¦†c¼}‡Û¬ ­Ž†8ýøë|åäýp /éptTÃêï¥w(ëM›] ì2Y»¨©¿É‹¿jcø ߬Xè,øa·hŠ?iý•Ÿ®¾þRsœ…On]üøœŸjE^ãŒÙðw"¼&5܈4>Tá¹%ájó4’^ç%Øïòžd…1’„®N>TžÕy¡$4ŒÐçBá°aÚé±hF¹ðD9…¢òìOgÇtœÑú­Mö +ÀÏ +#‰k©{ß<òÙ}M5 WjY}ùW¨±™ úë/¾ðPšºÏÍb×0ïApØcµáhWv¿kW÷þÒEs¼ÀÖÊO±ÜwœX=øKïtàqƒ™z8„•„3[‰Æß#×ùâÿšp¢endstream +endobj +1938 0 obj << +/Type /Page +/Contents 1939 0 R +/Resources 1937 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1926 0 R +/Annots [ 1941 0 R ] +>> endobj +1941 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [385.848 263.287 405.552 274.135] +/Subtype /Link +/A << /S /GoTo /D (figure.7.12) >> +>> endobj +1940 0 obj << +/D [1938 0 R /XYZ 91.925 602.788 null] +>> endobj +895 0 obj << +/D [1938 0 R /XYZ 238.65 348.53 null] +>> endobj +1937 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F20 1030 0 R /F23 1211 0 R /F64 1214 0 R /F48 601 0 R /F11 674 0 R /F10 1027 0 R /F14 1012 0 R /F58 1173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1944 0 obj << +/Length 1088 +/Filter /FlateDecode +>> +stream +xÚWms£6þž_áæqAâEÐko&¹äb÷’&“ãC;×› g„Í *`âôן0+a…v<´ÚÕî³Ë³  ™-~hæ;–í¸3ßÆ ‚Ùª8±gk¡¹=A`a‚‰9°¹ŠN.>zî,´Bß™EéØM”|1ˆåZg&!Ĉ7g¦ã8Æõò~ùÇò³‘qÝo=]^/ÿì–®qyw+öž–ÑâþìkôûÅÇàÀÁE|"u¾q:‹“›hÓµ}‹¸Þd&Òæ8•`ˆHþ ¸V€ý]8g&F¶mÌ»°Â™‰l+ôBІ{­éaϸŠkšôKVö×8_3ž5›¢SÎ`Õlh·ð*®(×yÇöTlŒÔا·´¤(ÑîàýÊ t:ìÖ*±”ƒ¡Ä¬x+Í÷¢­-<×Öî¢?|ºüK»¡åþT{€… +]ô‡KºùC›–wlýÝ÷ŽãºÄ²‰ìʵ&,(ÝâúÇŽbù^0á TDÚvq˜^’ «ÔçZÎXu.ù™ÉÖëˆrx­ÙçKä ¦u[Py$ÕÆ=â’ G\ž³T<ñ¡ÖU\ÂóÝcàŸ6––ν7=Û=9ÛEÖ¿h ð¨]ã<ï|ãWªÿî>ÏÑ9¹ÉÙ‹L}ç©z¶}™ßp/g÷nv*$Z<©´õ<Ýxöüÿ´­ªI¤ÈÊÈÛ‹«ù¼˜¬¤€SP‡’>¡@»Žª) ÏUÌù«ú–ô/ålˆrøáß ¡g98Ô}v8®cÔIå¾»9‚endstream +endobj +1943 0 obj << +/Type /Page +/Contents 1944 0 R +/Resources 1942 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1926 0 R +>> endobj +1945 0 obj << +/D [1943 0 R /XYZ 63.034 602.788 null] +>> endobj +1942 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1948 0 obj << +/Length 1980 +/Filter /FlateDecode +>> +stream +xÚ­XmÛ6þž_áˇ;ySkEQ$%ô i’v/MS´î‡¢W,´¶l «G’÷¥¿þf8CY¶åm- ‘ÃÑÌÃy—Å$€?1I„Ÿ„j¢ƒÐ7q{7ïáERùZê'oàxN® âI ØôàÊD~j 0ÐÁtêPyån:Sð|Iàk„Âg"ð•0·¥†,ãò‚^^Ôåv×e´ùo ‚Z–õ’o..J  ÜiïoéÁ2~{¸D®ßi—WE^±À´Z:â¶HL½¸…&Úªnöpòã«’8zü›±:ê‹)y:Ù[S¨L±§WÌ00÷Ìq"Š¦³È€à†Ÿ/÷¸ð¿Ü^ß× +Íõ^tåö!d Cûðï힉Mjß>$•»qÏ*†C¯¼nÒ‡è@Ó2_#´¼CMHc£þ“¼þøúçx8®D³ ¶( ¾Tü«WgïüöêÛ«ùõ›«9¿rF±9õŸ4¾†=¹o=â>f A1 ŠGÅ'G Ðf-Vy•œiÓ<>«Æ¥âÞƒ(=ã73š‘æ8#ÿÈššVh¸–馾ãì)ûØÞ8¸/H¤ò ÐÄhZ=Ì^¡Ž]›-ÿ4Áã›À<•`Ìqˆ4:‰ä?­kFýÕøp‚ô¨xs\ ‹´Ü~ű²»9ªkMÖí´R5.Š&v•{{må ÊíÙD0É5Žðå+öçñt›¬ê±wiºèN.±Ü¹Úœ®Ó¼U µIB™tEí]ºØ8É‹EÖ¶¹ ÐçM¶°Ó´y]=ç€Ko³¶ÇÔ7…ciË´(²æSýQ<¡Ã3š±Kg.F ø/ÓõÀìÛj_‘ÿè_öuòûù™ c?L§‚ž9‘AÐKmàv×€Ür€‚ŸçÃ"Vüúºî¸NtõvœUÿM©»¤°á^õ–ùôáõ¯_|ŸjÁQt¨y0µÍ„ô%6b˜É„å™cœD7‰¨i;ڴ蜦° ["æ°oq{h$­¡Š†±wOŠ„Ì}"ôãH1’‡$‰o”ójÊR§ð3,vy¿]’2§4<Õf`°0îÚå‰2Ä8,K¼Ç:ïXi ™(<›Kl‰ŽL2À³D<‹mh tÉ, …`ðÁ,©”Uæ + ½ˆ A”Ùi$#=·@‡Q•"¥®No•h:õY„›¸;û8?HòfhPø ¡(zñöYØÛ2¦">Ù±¸¼ßd Ÿv›=gZ¬k¼KÞmJtŸ,ºÉl´ìà¸ÌÈ("¾ÑâÀ*X"dB +cÑš¢|,EHÂÒè|Ð!D‹Û´µ²Qƒ„ë¥ì\7Ùg|)‡—ñòQà]ñ[ ¸ÆÉ×yGÏE½+¦6’p‡¶‰I(Á™™Ò®Á‹zÛ§Þþ.5Þ>[0C,'¬W»>ŽlcéhENôÇÝ”4Sl@!’qÌꀹÍÿà˜ÀݘšÏk‹ßF%Þj×Ò™-éÒhïóŽ|²7f/M8Ù¸Ð&ÙÍiðÉÐøJGO$pŸÝ9ç‚„²UäÀT…õÙÑ‹È˪¶ÞàvàO8B¨çnª4œä)ì¯cÎUg£–½5`Ý-Ü`R¥öÞ-J{Ãý’Wk¤¡gSfG…¼´®©­9—ĶTÞsŬ€Jã00ô>0à¶ËËŒªˆ Ôš„JnAVå=ä¬=u’ðéê<€ÃÛ‰BéC cÁR+è'ÒÂÄÍ—K IZ_Wnßi‘¤j ®LàzXZa[¯FúB àRáÙ°‚'„CÉÕèPò0æÓιð 5tÃ<…ød^ëi~…˜z‰v0NdÎ7yÜ>°êÈÄ{óH’{C¥KoÈE'vOVÁ-²©ËÓÈÐRŸ5M<€x|37‹ÿ¦›Δä.ó;Äouõåä }±òUà.ùÉ,ÁDû Ä°h_è‰ôµPg@AOD“Š2–k‘¢â$Ù§fßËm^"Ž]‘v¶†Ãù¢lº]ŠaR<Ñ~¥ÙEï'HЙŽ°grd¸‚*+}Ë\³J›§óàO(H¶yô)´ù–8ºÄ¬wÅ-Ë[4Ç¿‡Q!Bˆ·THpl%ó@µíí)?î7µÅT¡òfªB¨"[»«ð“V*ÔðÙvÙ–V=l¥R†:;—B¨«%Q $ái¨u"Ñ»ÇĈC-z¼ ÊE?ä–j»–Ïi +Ã:œ lÅv:Éh…ßþ2Þ!¸&ƒ×¹íÝXϹCý•mÉé}²€Êk:Çö|¢KcÔgó*öMó鿺 r•€vcåQ ?JÌSM7–}q̈–eç ú¾oí Oc¡0Z4ªÞ®ZÛ$År…?ÌH­h†±­ÙNQ@¡aW7.èñEžbûJÁös^æÔö‹G÷–­vÝçJÀ_Q8„Ó¦¥›àäÄ7v @L® 9h‡áqü£1ÿÖ›(_†ÉØOÆ2‚n+p78ü|gŽendstream +endobj +1947 0 obj << +/Type /Page +/Contents 1948 0 R +/Resources 1946 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1926 0 R +>> endobj +1949 0 obj << +/D [1947 0 R /XYZ 91.925 602.788 null] +>> endobj +1946 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R /F11 674 0 R /F10 1027 0 R /F45 589 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1952 0 obj << +/Length 2415 +/Filter /FlateDecode +>> +stream +xÚ­YmoÛ8þž_áo'÷NŒøNímÈ"Ûn×[\kàh‹B±G¨-y-¹i÷×ß ‡’%KqŠÛ L‘ÃáÃáð™ÑˆÏøã3#Y"ÕÌ$‚YçfËíE2[ÃÈë $â ÷d~Z\\¾Òj–²ÔÈÙâîTÍbõ>²L±yl­¿ü<¥”ÑõÍ››ݼƒG]S×Û«ë›ÿbSEWÿ| ý¿½½Yüòfþqñëå+w\@ +Ǭ±€us«QââçES%†Y¥ÏmÅv¢­bN¿ZSÖæ>'\œåEÊ|Àµáæ ´xþë<BDü/Í=jѪX )¸‡Íçó˜Gûü¸œoü½ùPå5Yë¡Ølhøúm”S÷´l²¥Ÿ±bg ͤ†ísÎR­=’w V”Kœ”Š¨'¿XÊ£l³®ö…ïÙROQÓoUn¾a+‰¾ÌµAÔ± +2о£&Á©`‹#[qÇÁìi°Æב±R¦»Ñ¬•« ÐR&•*œmO#Û‡=­÷yÖä{zhÐРÝ?üA‡ž*l¿ 6“†q%‚ÑÈ©.Öe»VšGÞÌÕv—¡‚¢®JìQ}øp³ôªkêB«pl‹2§î⎺ýfÁdˆŸwY&áwŸÿ~ÀEöxª±MÓè?hs²2ì·¸Mp%•ÀúÙ6´ð¸ªu±Ä§$ÊúÝåQØ)4BJž‡£pÐú«»‰ó0`r-Îœ©±íµõ›=Ÿývçà&eX±¢‘ΗÎzß^‰¬é.G‹0 3«=Í$û€Súãã|I¤C³Tè%3J>êMp{¤³%(¥¿:kXÕ%Á™Ð–Žœ +;HÙù tÔ8{oÜ]Ïϯ +S–Aµ8”jÒÃ5 ? áòÍüÀ9®ò_¢ÆvˆT—¯To[è·©L}ø2RPØÊ›ÃntKÑ?“`B”YÌôl‘¶¦ÝàÕÛQOçÞBF½Ô;h/Pƒ× %¯ ï€1·²¨ïÛ‘·Ú¢øJO§ëU÷—iI´½‘'ùƒå>Ñ Žù<Úœc¢c —îÈÛÙvTQ} \wI2Ö‘2+ÝíÌ€S)Õà€``¦‚o%#ˆÖSüQÂS„À˜Á`Pƒ`Úg +¾m©§i½ÛÕ7È>ßèqYùÓòP±ÌüAbÿ­§l›hY8ÜÔ½jðV`A6¤oZßhò2÷ü]³ñPª¨¤du"ãä‰cF[°@ £è‹œŠâ=ç˜M:éžf Î SROs·NrD¦€û»ŒÝ€3¤ÆP.& ô¥3×˺:W¸ë^úçàw“”b2iiÌ{B &…ít>¹ ɸ“Ó›huÅ=e´‰¡4¸ÿ`«ý•[ñgBtG¥!逪¼Õ?d8Ó&¼llî˜'pa0 …·MªnJïä¢é±JÍJÈÍÔAÁÛ”2n¦8¼åpþ=ÊšG¼­Õ÷”¼MH@v zš@ZÅÛ¶a’žw*–ØtÈIËð^`Ÿ¾e~ÃKŽ¦™0 \„41CK÷׃ £O8¸?N 9¸?øS¸ªÞ|›¤#êK‡ýŠ¹×:"a úbØlj,Ü?ÒöÒC.̸ÑÏF!GuRˆ„×:-‰ûù„qõ…Q'ÖM'­û!QɤkÍ“vOZØ|—…Íy Kk™S韴°€W ‡¿¨l²ZÁ5ÜåR',Iҩܯ•iEø«bíÓ·ÑY½?(üÞ«˜ŠMPƒULCäï-ú'¯­®s;sn9ئWc‡ ï’ι>¾Ñ‘ +s>‚ÔÖž­¶Iå€Åd€-pEðéD…CÇ´'S·àƒmê +·å)ø8¼Ó÷g¢W÷4Yb7j€~ì†"&¶Ï©ÕuJ¸¡QǹxÂ=¬ ë<,¬/ +9€UßÑvly +Qƒßh`)Žn¨Ï¥œq{²À | ý±ñÌÈM÷^~ ¿ ·K[]¾˜ÇZèc±«¦gÿ’‰ J‡|ó U—´0Ñ‹ËI­.hýRa±çlwŸVûO^ɇD'ðX” ½ÈþÖÊ >…«Z0,áÂé8ž@R#ºÂP({õÍV‘«rtèv¼Ìê&XÁW%±%=|¢§ñÞQûúæõÍâÓO7‹0fVe˜¹ÉëΤ¡`yb5Á‰«)Û[,Õx}a¹Û¢ÅV”#úhÀ÷9[³€/_Jþq€hLžªÁR/Âö_ÒO8O¿*>÷ÿaì¡ÚÓI‚½85pæ?5œHvhƒÆ0#ž¦`ÐÚI=YüÕî}ò±Uó÷Iú gZ¯3™qM$TCÞø*‡–‡/1ú›ˆ®sŸ çT¶;_.¹ê•ž¥vå ÒljÂlðË…¶íç˜p,íÀøé.@BI_ €!*1á +·>V[Aîÿ- Vôë‹L×±l‚8ý Š5KªÒ@·¯ÒÄeBàò¯îݧ¬¤Ú 8X½Q6x,n|‰ÆOÀÒ*@¿*I®…H#‚å ¾³¦_?!+æA;§Z¶å½2®þ®açã5'íÕœ|™ÙלÆ{Cü0ì P6ºóçå OÎQ„Â*~ˆ d~èÀ»…)`M²}[©rXCÏ´ÆWè'¾àèÞ–ÇêMb\o~¢‘í˧Õò¯T¼Þ5ÇÕï(ª@ÿº¸n÷€…Š"H?ÜTR õîDú¥úÕ¦mÖ:Ûi12ógûrå㇭CþX¹'Õ'Ó;©$³Ÿzƒÿx×ÌGendstream +endobj +1951 0 obj << +/Type /Page +/Contents 1952 0 R +/Resources 1950 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1956 0 R +>> endobj +1953 0 obj << +/D [1951 0 R /XYZ 63.034 602.788 null] +>> endobj +1954 0 obj << +/D [1951 0 R /XYZ 63.034 469.092 null] +>> endobj +896 0 obj << +/D [1951 0 R /XYZ 212.235 361.964 null] +>> endobj +1955 0 obj << +/D [1951 0 R /XYZ 63.034 168.35 null] +>> endobj +1950 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F11 674 0 R /F48 601 0 R /F14 1012 0 R /F7 586 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F20 1030 0 R /F58 1173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1959 0 obj << +/Length 2094 +/Filter /FlateDecode +>> +stream +xÚ­YÛ’·}çW0oä:á~‘åT)^É‘cEÎjý$«T\q¸Ë„—5/’ò÷îC g–«”XªÒ 1ÆAã û+†þ‰a,H3´\2çýðãrÀ‡·ðå§ ‹ŠLªÂæï׃'/ý0°`Õðzvìåzún$œ¿¿þùÉK£v´¿hòã?žÿzýb,FWãJ)=rl\9çF¯ß\þöËóبFW/.Áâ·Ç•]¿zó/t:xqÝÀÓÊ0«ìÉ(­˜ð"z¿;Å |Ô‚‰`JƒcCÍ‚—CÍ™ íþ¼{χS°ûyÀ™ +~øÞ9¸ Ãå@xËœôô{1x;ø÷’pœiᆕñz6A5vè!Z6FËYø¤‡žN„³ç ˆÆíz3ßÁónI!v‡NÜqC^Þ‡K*˸“ÏGg¡˜ðªÙWU8K“(ðH˜4¦5‰é¦ËÀöL°È×iXF1¥Û°æÛ, œú<°È×iXV3 ä*a-׸FÓ=n\þø²¥¥/ø#íiéY—•"ƒìã,˜äýÕ +½ÝGŸ»®Oi˜²ñYicûX%%“B 5ÌÙÇÃ[ÕšÂD®ªƒ¯ÎÆv¢óy¸¸v—ÕXú<Ë‹}¤¦æ°ê‰‹•ÌB‚*Ãòf¿Kq鉉R,pÛŽ‰c–‰0f]s“ © +Jœ†íßæƒ">\5¨5}z··Ì{ñm[K‘ AžöºWÊ'™· Vp_‹>1F&Ù§ór~»‡ lꤩ° +<… j z¢Q…õdww°‹‡Å˜¥÷àÃé|š€ 6¨lÍ ++ ÷9Pe_§P)ØLÆ´ãÚU +Š7ç•\Ä$€(ÊJL( NqÁû1)…F£aÿˆd‡gj¢ƒÚZ²W§ÏÚŸ¸jðé’‹¸)`oi×^©,a«¨aÇX±Pv õ´S=ÔÑLËý¿B€iåªZÉWU8ëö(ád p—{Œ:,òuVðxJ(Qõ¨U¶sá,¨²¯“¨$dL)l VT«è·ØoIƒ=Œd@kÊË×w¨u´£Isª¹ƒ—ejœÖ»é±IMIÞ¬jê2Ÿá“&éç§1dëÉb_Ó×-U@HÎŽC”è`¨`¡>pv„çÊùr¾šoqÐ8Ô4}¹šLñÛ—ôk†õ{³„Š`€£owõ}j鱩ÿSÜ¡hƒ£ëú5è'ì½Þo“ÁGô<ÙÖIµÇ¦Ï ØêÔc–ÇþŒ=ëM2ØÝM"Jêšá›KB—æb51&·s^s?š WÍ]œ#>A ¥/=[˃ Ô.ØÇò›RUöUÎ:e º¨ +² -E”ì(Í*kE‘Kš@ +[3ÁÅ"µß`fÛ¥ÆX½hžQ/g¶ô-.$ˆ¼­SkZŒ«Y«ÿ¥7 c¤O€9GepˆxýÇ~1ôù-D‘‘AúHÓ/¢¸AIç:⥕4APäóJf«jµ4(‘Us Ñ ,š2(§}Ôÿn3ájìq[ïÚ ÛàûÔªÚcˆ,ËJ'\™¶B,ï‚€&ùúWwŸ–BŽn .¹ }=K–Á2îU+Ä—¸+qZÛ;ÿñh2Û^›íØ9ÇAؼÇ$F“îÁ"X÷(v©/«Ü§Iëݬ:[¦ +‚e¨ä7ã¿é\›}U…³î™IqÆ¡!Û¤ âò#ÃC÷çAF¾N#Ó– §ZÈzê¢1 *ìYP%W§AõG·@uË¢°P`­<*òu–uñs¼Š(ÌVF<†Äs:žÅ>ã…ãA€ó²2Pº¬=uY‘iUØ&4¾8 %™–M ¶©%xæñÔê“šóäj4±o`/bÍÅߘ)ñ9IÕ~yƒËHo-ŠOŸ&‹ù4½^^¥çr5Aúqñ¤ Oæ«uºÿ0Ý|˜o?Po<‰A[”Ùæb÷}þBï‰Zê¬@èü[†«"ƒ–#‰W-Âð°ù—ïûF”½8¤¤î9°Ë˜ñí¦¦¸ÑïE=ÉŸvñNgMK1OUþáàI•1Ò*a¬&ÕßâÅBlx–2‡«yS…!ƒö •;8M—-iÞÓSƒG›+ÝmϘdÐvÔK^éñšE¾à]Z¢ïÍÅÅS[Õâñ;z>û\½OÏ-- ꑾ¹‘•"–›ýîxèù&Û&}‚0º˜Inľ4f%ë Û‚ì÷ÇXBÆÒK•©W__,¶øNÓßgÖ·˜„ì¢;ºÆà»ï WÀKwŠ_dц—&ÛaõôþÝü -Æ_åkÄòë‡×Ïßþó p¸3ÞœÂ@m °}­ÿ*’+ÕÕ¦¿+=Lr2h;ÒgÚ-ÊÐú–àE?xûHº¼ýÊt©ÜqM£" S2ôÝ&ä?ÑñòãŸÏŸaKendstream +endobj +1958 0 obj << +/Type /Page +/Contents 1959 0 R +/Resources 1957 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1956 0 R +>> endobj +1960 0 obj << +/D [1958 0 R /XYZ 91.925 602.788 null] +>> endobj +937 0 obj << +/D [1958 0 R /XYZ 229.205 490.996 null] +>> endobj +1957 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F23 1211 0 R /F48 601 0 R /F11 674 0 R /F14 1012 0 R /F58 1173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1963 0 obj << +/Length 2927 +/Filter /FlateDecode +>> +stream +xÚ½Zëoܸÿî¿bû¥Óˆá[äµ)àC._›Þ5ç¢=\약‚÷aï#NþûÎð¡¥Vܵ¯^A¼9þf8/>؈Â?6Ò‚P!GšrR3ºšÐÑ ô|ÂEHÊ„æÛ‹“Wo•Ybµ]\ï²¹ÿZTD’Ó²ªªââÝw§¥¢xsþþüç?Ã++Þø¦goÎÿƒ²8ûû÷Ðþã‡ó‹wïO»øáÕ[³@pC*]"äͪ +)N¾»è`JªI%ÕAI"Í@Y#V©DUIb¸ö²0"ýŸ’1®ŠÁË| /E³Zó{láájÝŒAžJoÚ¼·sl]Mbë$¬¡iÜ~ -ÍxsµFªÅ| 7• $¯„Ãq1iàÉ‹†^¶a@h|ƒÃÍ"y•¬øPûÑ౞Þ,–H¸žÌbËtqÊMñ°òl‡Åi Mc ÜLáO½ô}øeƒý®Pd;EzXxºKø¼Jlj” "Ü…ž’9f׋å Qrc‹‡I3÷O뉇[ZÌR(?¶·ÛÇÅ5’ø¬ñß#WÿĽFib+‰*eV%ôHÍ"&O”´"V˜Q¹¥ùH) dlKf 5,åí`òQ¡œ‚vkÔìØ;X=®ïàm]»¹‚&îÔåºÜàØéL\ÐÙ9ãÄÂ$±üÞ™ænŒsà ¨-nšy4„e=Ŷ |ì³ÄçhÞ\ ¸D;wâ;ÓDj4Mhù¿ã_E3vÔh…NW¨¾™oD])&‚ºÙ\á߉WP‡=ÑOí 7K/îÊqƒ5¾¦Â©fR¯|ÃÕb¾jÇͲ¾ÊéWß8u†Š~À!#7çDŸ}ˤ©Ç8çRï¼s!yz_úÖÑðeÞ<ø‡EPøЕ:±+»L×èªöƒ“¹7V=÷/MŒ0g¡ÿ=( ìf1k–_}Û"ô}[/—Ízí_z3‚–ëxˆ¶í¸»FáB0Õ÷âÖQûh2,h N-whÆË…ûÛÖëÆ“\;]¹EvSBäR[bÏe þmø¨„PO!Ä&JbÁÑ+ ‡ t÷'¿þFGc ûá„aÍèž)aÖŽf'\j"Œ ïÓ“ŸOþ¹ÍB $Õ¶‚tÀ$Û„ªGB‡vAŠU0”ð R–÷¾³Î|¼páFUÛ¤$‚Êrfw»ú€¬I„âÏGÅ„±GˆÀ«L˜y!<ÌPˆ´}!–èø˜;š]xôRÙ£  ¬‚ã#`ÒSp<ÄðÞLPb;¥’¡ÒKF á”ãX°í%+î6Þ<¹‹dInP:7_`ÀÒBE¡ZO0;(‘Ôžù +¼Ê„ÙÐè´&\™n@D!WAÓ„}Æê¡Œ(#ª­ž3 €‚Eó!ÈžÊ>¦#.`ö*}E^uÄT’õtä2ØM›QgDiô +„”ØŒ‚1{¶ó‘*:ä$ˆ2rGÛ6Õ¶”qœ”«áP–T<ÖÏôef:(áb;­uñ׌;TÄHëð—¾Ü£ÙÙ•4Ž÷ÏîÖç‚ðö‘29ä/`‚Dü.S-Ø~£¨Ùú§á×–p¦÷O‡!LD-¶¡ª­½ˆX·ZÌñ6ÉúÐU×u¬cçæåB…ÆZJ÷¦ûÇÍúÎEÄLœbêÇžTM´ÒOsA´ª™/ÐeÆ9$fžæŽQ¼^´ +iMBpcŽ•$·ìö'Iø…òÒ›dFMÀ‹CENÓb¿ï<ÌèN4IÑ>UNGPv›*ZÔ½L7Yd©Ú;óUÝGœ2hrX·VNÈ<ƒLæ± (ôGÅ>!ª¾¯R¼Ê„™›É³°ÈÇMgòêTqç^›y—F{¡ŸƒA]w ‘×Aœ ˆM}s»l׫L”†vgWR”hm{îÏCjû÷¤ÆrxÇX *Iñ{C?êmCÿ<õ¶!u¼ðP•"R ²‚e ##ûû!>Xx[;ð®ËG¼ Wk¯sYLšÈ,¬íaNaµ^WƒÞ ·¡vŸ³C˜ó+ûHs•÷ó ÿáE±#¶¯ìó,3°*·¼††IÑ{xΗ$Ÿ‡þÂåæ( «ƒ À[Œb)(>Ζ×B =$¢;5µ³?þˆýíñ–Ú_.?`Ýw0Š=yÔKäð5×SÔ}S´©):8Žy«ëÕh³ƒ.!iBVu.ý¼)ö¼Ê„YfŽaÈ»ñªÅ©>wö áÚ­áЯÃÐ$81,ïRl¿Ãþ`) ¸ÚŸ8BüËÛŸ:ÄAšm:§™ìãÞ“êÚÿµXÝv=€¼Ê„Y¶‘Ä¡ÚL‡;~ö°"¯ƒ°`ñi±êáçê7ÍÕÀ¦\$†&%ÿo!­o”|k””^*Ýçb¢bìÉ&µZs[ VDÏ´(Ï«L˜e, +ã€ìÜ—¸Aµâ(¨«ƒ 8t%z V›ËL”eÒa˜²0 ;»Τ”_ž_g—yT³§šÖ¾jÒ®&CïÚè ’XVJ«*˜d‚ç„2õÔÂ÷ÑÀš÷ñ¨¨ý²âÆ1.a½<~E BAÿ¡Yo–ó¼kHAX·pÿÓp£B……¼Ê-1nžåW™0:G$¬Y#Û—øÛÙieŠ_2»— +»dËȾ½Á5ú¼­4D%ǧì±.S \CÖHÊä$.’ +þÖmÚm–á «…oðÄFgƒs±L ¨PB=ÚùØ Y\·dE`u>;Ó }?=‡l¥ +ñæñè"«èÕDq¢óé=H:+*l0 a}E?¸euð.·`0Õ6¨ÊNU¹œCŽ¶á.ÂîÕá\Ím&àÌ*˜öL­ö,•ê¾Â9–yç ¼Ê„Ù/SÒyh +8Îî`f™øÊùqÐ^‡ÑYˆÂ3Stü– κaµÇ»5óÅwO¥Þ=cÆ–û»&§–·¸ãñÕ7/“kûXºóJìsÇ´w¨õðžŒ1¼ä`àÀEÿ°<G"Ï)ÞY0ÊŸŽ™¹[að2GÀfÒ¸PÊrKê5I©é3W p‡pLww¶å0e©ªTñê„®‚ÖVþ¥ö?³Åxƒq ŸçþçaÒ` íZ´¿¯xý xð×£ð‰¿xqçŸJÿsë^¼ÊB3Z;_gûmèŸÝ}ò¨?ñ[·av÷ ?ñ¬ë—A†®Q/æÛÆq‹G©M·ÔÙ‰Óa1e)ïbkXù¤3P‚>#æÎ$i‘B¼ÿsvLH,Ýhq÷2NÑ*ÿ‰È¶ÊÈ(L ªÿ/ã,¿N4Ô®±ë÷¨ +¿?ˆ]xí÷þ§OP¨ÿ’?%Âk¦[«eU(úø`ù(+'.aú"f.ØXE`á«×`éë +|K:ÿ !Šäendstream +endobj +1962 0 obj << +/Type /Page +/Contents 1963 0 R +/Resources 1961 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1956 0 R +/Annots [ 1965 0 R ] +>> endobj +1965 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [205.749 529.209 225.453 540.057] +/Subtype /Link +/A << /S /GoTo /D (figure.7.12) >> +>> endobj +1964 0 obj << +/D [1962 0 R /XYZ 63.034 602.788 null] +>> endobj +414 0 obj << +/D [1962 0 R /XYZ 63.034 584.788 null] +>> endobj +938 0 obj << +/D [1962 0 R /XYZ 209.357 310.265 null] +>> endobj +1961 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F47 596 0 R /F10 1027 0 R /F14 1012 0 R /F11 674 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F64 1214 0 R /F23 1211 0 R /F48 601 0 R /F58 1173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1968 0 obj << +/Length 1801 +/Filter /FlateDecode +>> +stream +xÚ½XÛnÛF}×W¨/åFkî}Ù¢rqÚ¦I“ºÊC‘mÉ2a‰”uqà~}gvv%RdŠÀ—;œ=sæJò~ +ÿx?ã,ºoRÁ¬sý«y/íOaç×à 2¬É¼õN_»~Æ2#û£ë}-£ñ§„[7ø2zsúZ«ךeJ‚^yùÛó£³OÎC)UbÙ`h­MÞ½õñísS&çg¯@âãËÁ'£ßßÿ‰J{g£-<%53Ò´ Ê´LЮ٠­bN0&Øíä”`®È„iدé!OY’"‹‚ðPó®¹N“Å`¨…N~¦ŸùââªÚ”ë‹Ëb½úœê´„ÿøO2àE[¬«Å]2 Gœžò»ÆQù©89Y< ‹æVƒÄWcZ 0]œvžÆÃiÅ5‰!zü[NVû&Ž‹û 1ÆÍ"–ïï"(´ÿhù]PðîÃÅû?žÿã7Z.F2“fÁG×>ŠMôb0T”O«uEÇœŸwò.åSÃEªS½îàñ¶Éï¶=sÌiyÀô Ð<ÏË»£$¬ÂÞíÁ°AÓ#"`¾™]ŒÑ÷¸¿uøí6þGÏC"™¦ñ|Ö>U¦ ª|ÛóA ¡H¥Gª-ŠwáTb/ñ;³û‡¦ƒ;]ªä#“zuNÍÇ”ÓÞ‹æ‰y¬³ö 7ƒD#§”zt+},'˜Nõ¶ƒ:,ïýùtG”NÊ}n róvÔÍ wŽ‰L`&J4ñ¸ÀŒwÕjsÙ@P÷T7[Y‹Xè;¢úXÑ­;£[‹Ð÷À±}OÇ E¶g“|I5¦mZˆ­‚ür²Þ,K2¼Û¸Ž¨@·RŒ MEa¾¨R\Á„bÂ2™¸ÑÍy—I>›VËÆ¡õÍœîøî¼ØŸ‰¸uŽ÷wÌŽãÎ]ïÓ—´?†ÙèM/õš¿ÂuÊx–õç=âYXÍz÷þÚÍNQ×°¦lüã(°Ûã30á’õ>6Á-3`à1°E]‡° ‘Âì'à.=‡+¤P%Wùìj3Ë×pk‚l®ˆÙu$Ý›±™ãÿ—p I-i³ºöñù ±(éf^'µ¤”Uî($D]‡HPB2+›”"#ÿôaÒæÌq¬0kí¾ÞWhõ X‘š¤@ëR›lVž€1ÝÅ:€w?§\e¼}CtªÔ%Hvéù)òIß´hÞD!‹DúLà¼VÃ*ŒE+U4KyœtàÕÁ•ŒÚÍNí®áTž„“#Þ¶O$4i§E_¤†ÙÔ<É'Q×°¦lß'RgÌ)¾=­#W÷-dV² 9 +² ë 2k@m Á±UIü!¥EX–T£¡ÄKL3Š0½Ð èkÈ2ÔmJ¥ +â~C¶ È;”«ÖÅdW=ö‚B9ݸw­ °LKvs GRO!'/c¢ÏsHäɲ}ŠƒtÐ6ªé8$Ëâ!ˉÇ\,'cB%Tòµ?ÐÉãÊ2%ëV+Ê ºÌƒÌ¾Iì\åt6Áîd¡Ñ‘¨ÏSºÆçÑ!¸<ÏðÊ—þÄ:8ËUño¸ÂTÆß[äxB-ÔíÎÈ‹åì´­æ»BûdFýE}QÜÌ<ŽÅ¬ˆ¸ò°K,3mŠ%4DÈÀâm‹c¨T:r €C™²óM~ª±=Ða ªÐËë +Ýì¡OÆdHÑQa¬c\ó-„¡L³ä—vKv̺q|K:= ÜWÈÅ×°†XØìy)ì̃O|:TtO`iòÎ*úPB*à]…ëzù㵯)øRÓÒNæsš¦-ô´¿ˆÎÃR\Eç„ŽÉsHî/ç¡ÌS\ÍœtÍþPø´ª6kúR“û”} Å^h\ALT%µHÅ•ÆI~•2µIG9_-ÊU1-Ñ{JAð¶f«™å´àãOq‚ªáNWkÂHÁR$k»ƒðL2ý‚ªC2àýÕåc,gÏpè0ð„TŒ s xQÕxR•C\Öð]uO«? +Ú£x2ª:„KÓH^÷d>¥¨Ë}?øFÀIì†Ç¡/ª:*Ĥ>pR€ôQ‘¦C€à…„ˬÞ‰«|YKÛU,º¸ãGae}™å¾Qø0”4{%=¶kìªPNlš\ûz9£…?j­èM&Ù0—C„åË0K˜ÂWŶab³|«¯‹¡mÖ+ZzKðÂ+ßáW5µÀbLwð}¡×>Ä'£RºPµ*ÖŽo±lû‰FR­{*å<]nIEmž,ÅùÁB”¹ßöìåV VV|®®Ã÷¤æ7“<(*Â4,BÇùØóXÆ€² Š>gûA¾›gšI‘u}~— +^>8®j›ÿ.œ‘endstream +endobj +1967 0 obj << +/Type /Page +/Contents 1968 0 R +/Resources 1966 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1956 0 R +>> endobj +1969 0 obj << +/D [1967 0 R /XYZ 91.925 602.788 null] +>> endobj +1966 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R /F11 674 0 R /F10 1027 0 R /F14 1012 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1972 0 obj << +/Length 2371 +/Filter /FlateDecode +>> +stream +xÚ­ZmoÛFþî_¡ûRPA¹Ù÷—ú!EšÖmÓôpESŠ­8‚-Y‘è\ûïïÙ宸W´Š49œ}æ™ÙÙ™aØ„â?6Ñ‚P!'šrb¬\-ÏèäO~8cQ¢Ž"u&óÝÅÙóWJNqZL.>¸þ£2D’imŒ©.~ü~Z !ª—ç¯Ï=‡Ÿ¬zÙÞzûâåùü¥¬^üòî¿y{~ñãëéŸ?=e»·ÄhD^73ÎKœ}±ƒ)©&FªQK’ÌÀi¦(#‰å:,÷ïÕÈæÛf³¸jæ×€keõÎßj¦5«Ö¸tR3K„ ¯_L­¨î[{·þ…yó€—×íæÓ?¶-›ùµtå¥ÿ~ÕJÍînî7þFói™Þ›·ï|™*çþ½xçþc ˆ±§’h“¼ ¶„ïèývZsc+µÐ‰&ÎH/Å‘ÎNѬ¥&šÎòX –¹IÝɼ§”ù \ à8"(‹O‰œÖBV}ÆÅÃb÷ód?’¥ ’ÃÁ1¸ + bT.±/)‰³ø¿&Üh/÷ùì?éär?QxÙNþ‹kJ˜s“åSŒ(ªãﻳwgÿêB)G˜Ð“Ú£Üu»IÃNëÀ²V„R%ªÝN/î`¥#aÊt/I Êd¤l¹ÞçƒsIŒc;š!³¢lDÒUgÊZ#2<œ›5¹¿y໫ùxá ã$ð¢®qxšÉx¿À2‚8%N+ê‡eLˆÖù"î³ ÞË«ùë†hβÄjuJ¬q…-b#h!«¥.O¬À—-$¬ö‰5Ét‰5ǃàg*7?w]Ê?Š:bp‚Ÿ*›uêg3º›#àÃ$"ð‚ùØ6ñüžJê¹THþCEb“(¿ƒ[uuSôËŽ¦÷TˆDY±G™E”r6D줌 b"-<¢ÕÓÜuÕ™²B „Â$j”‡…øp*†žƒÅ¾ Ë\'sÝm‰øî`=ÞuœvûK¡L„­€áÚN¥°GkbÖ"çÄÖR*FoQ—mVe—!²]Uðú·á–Cº…×¥Bß%Í·\««Î”¶R7ŠÏ$ŠžŸ_LÑæý^Ør–X%3Ç‘Cu„T’(ÍžZG8(1¾Dö{ºÔº3áE”% 1œíŒÌzÆ$“D<øW¾g¾yØÌÛ¦Ù×ßÀ{R¢¡êwÔ²´µ<[8p²Es“³îPWÒê³€kļìO†]“£„:q|Q×(>‡¦ÕòÀaÓ$(*fæN‚*éC%(ú”9ªm˜ Ä9Ë>>üÅrxƒpã‘‚f¿fhNÌèXLúfØÊâ,ɘj$õí‹L}|y [Œ>üЉVËЙ 7šO¶j§ãˆTñr½ÕUgʘ‘%ðŒ÷@§  ³8/8? º¨k¢ÔâÈÑÚvê«ÙÓÀJºFaq?Y܃Úv2œd¢±g©ì¿Ø ÿ”‹3¾8ß w®î—kO|¢9Š5Ÿâ¤×iö~Úâà¯fÆ*±±q:¥Îÿ¬LµðfþÙ¯ºã!tõÑO"7íuœ;êÁHRˆà–@=¨öŒpOKRQW)$)øB àJ"gQ¸Äwb'u6”¿9@~Š +^}ç!þùœÝz~W7‘ðè€ 8¬p\Â+3ŸIâ U…‹Ù‡»)K]gL£–p²_eè ÈÊL/^3$.ÁhÕøI6c¥é°i¢Þ¡³Î–<#‰º™µÚP?úÀßÌ®šE˜y3ŸÛ˜GnÜ>¼§L_-‚éqðdš0W¿÷&™r¶^‹q[àå‡áhí³˜0ÈÚMš6{vW³fÑ®s÷w‡µ°ù ª.­G¦ÜÔ¤Tði¶mU-ï7ó¶PÅ•J;·-QÃîŸÅ¯÷«X×\/nMú.Ð}8îÓc(üœù4`ùþ,~»X®ïBà ÔI†øêÚj&‡ŸÐÆ9è™ö¿ìÍ^Lh¨à­?›eLµt€Y‰J°“(ÎG] +tiÞÕ‹w…a óQbᛶø0¯A£œ û´~ÒX4(ª3MñEó¬»ÕÊÍ!c!¦O‚)釢¸e=X>ûj¤ ‡Öù$Т®qh‡´Ð=hÃÚmÖa§uÃB+¥¸êÁŠå««­ÉÕ>Dt„@¿c¨ûrUGÑ:“mØl®ÜV²I$l(¦C +¢½.›°”QÕógÓ˜«ëy3ß,«ù¶ýŠÑ~³—_ÚúDq]={^Ôj£ÖŪ)>wñùr}Ù†Ò%¿½ +øæwý‹a­g³¯Û•p3æÄpûz7}ØÓÍép°À}‹œ’OÌ—9_uè+b>{+Zí°læÛ¯Û«õ?‹KóøFn@³< ,ŠweZôcûºçÃÿÙ$‡|Ûþ–X4þÑWX³ ÿác- +¾þíòÍÏ/~/ϳ9÷í)c&JôQ*¤Kñ“;}Ccàq=\WrlŒt"ß–ýUM‘1[ïósuÿ°j.ý¤Ø³4ó ”=áŽçÜ5w¤§`ðlï9à(ò%ús3J~”èÁ4’ïM¼›Ï6y  ìw%a~"w‰b€‹c|{ ûPDî‘=ódÇëBàÅ»ÿè°›ßy}äêÿæ]ð^ø§ dûö³¾ÀihÂgÜìáÿ5’ÿWendstream +endobj +1971 0 obj << +/Type /Page +/Contents 1972 0 R +/Resources 1970 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1956 0 R +>> endobj +1973 0 obj << +/D [1971 0 R /XYZ 63.034 602.788 null] +>> endobj +1974 0 obj << +/D [1971 0 R /XYZ 63.034 566.454 null] +>> endobj +939 0 obj << +/D [1971 0 R /XYZ 195.913 438.676 null] +>> endobj +1970 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F48 601 0 R /F11 674 0 R /F10 1027 0 R /F14 1012 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F23 1211 0 R /F59 1176 0 R /F64 1214 0 R /F20 1030 0 R /F7 586 0 R /F58 1173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1977 0 obj << +/Length 2679 +/Filter /FlateDecode +>> +stream +xÚµZÝ“Û¶¿¿BO-Õ)âpã7¶ÓK›^êž:Ž'£“t'õq‘¨œ¿>»X€EŠöŒÕñÌ‘‹Åb÷·2Uð[Ö8 ïaß÷ô +þIìÃÇb²!N94Ó˸fBÇ&äøcx£-u@ÀŸpzK "Œó +tè­ +úÖ  )G’Nêyì(0üH²?L‘õ"uRÓU÷J!Èk•øÛwб&…†;¢PÛ#©bÞ‰ §ÉåäY>aYÅ% j¢ýT={pÑ)$”Îò->L¿Á ä÷‘’-E¸qiD@fxkÁk~%³6¬ÓZœ$[“¡ÎÈâ&³Â§å^„ ÇŠ^p?|¢ï-¤Œ¿”wÉBm‘°!,XÄT÷Ž|!è Ç$ÓW¬Ã>~5ÇÅ­r¿q`]ˆ¿4;Ù…ŠÔ´ú~è“Ò›ã¹uI^ÜO¦5½5VÝ|äÞˆƒp9x3²J€JÃ6€‡®GBÐS×µd\¤üéCÏYŸf[¢<-æÚu2›%©f4Roãsw^oƒdHwíi—z¸«e_6x I¤í€c*'8%$ÌÔœYÀU ûõêÝûj4º®*57z‚w€C€·õ•°³Òñ{uõß«ÿd ÔJ®ò˜Ï#tàܼ»ud‡ Ä)JÖQÛÝ2ÀÄ:V6« “UŠøëÇNvdSà‰ççÁ¸“gy•3:D&·œÕ>Äszp¢éüT<zñ¿ˆx‰× x¢2¬‚¹\<½S±¸„|ñ2ZK¼†Åâ}e[k"âZÛDàˆº ¦k¯ô`ÖºU^oPû]Skóš9ÎZ÷’VÌÀÖÂúà`ŸU‰€Âõœ7D^eƬë Ú2i›ýÂE5+ÂT¹b•õíJµ¥#˜ yÒQ17‡š4Ó£¨“|eÚZÁÊ‚#ŠqO¯Ûø|Üan‚¸å ­` 2‚5 þ¿DQŘۆlàT¿!„ÑL¸‹ÁMÃí<Ú€žMåRýz}ßU°€Ò¦bóì°§îÚ’gà‘è9B»¡“‡´eC: Æ 6Zªh4¥òÁó+ÿ‰øy‰ø€D¤#ÉzŒ3aR'î±Û©Ê°ç$œ.f=ŒÀmòEˆÜ4]1“³3Y‘§«.É´S'Î1€šBû#Þ•¤Íû$€`Е@õKЃ&*h‚ÍDÏ¿Mœ8–"¯2c¬=‡;¼I×l²²±†4<´¥hlGÁ*È2/!dâ5(¤sʶ„¼Ãz TðÙö ‚*À%Œñ-Rу°@éºf²1ÜÝ}>YZ*N8@zä.c°²Ó·hÛ¬iáÄäÃÛ'²€ûolKã“ȳ-iÌCñS½ñ„ø×æS­†ïýçPpfïÏ(´©/úÍJ}Yø2­ÍòØš1T!±\ÍTÐ ¯¢J`|×£VùŸS]Îmß±àú”2—¶–^„Kº™#ܶ'ø€¥¨æ&7}md 6¬P}¿cv@ͶÓ„ef ‹Yh hnš:ºô›&l¡©6‹úÒ +€$¨˜¿2¯°iÄ0Ëœêo´ZifYPˆþß·M"Á½ï!µÝAùþœQ)(€°ú MÁ5U‡Ýh.&£GÙ¦Ÿjïü Ž¼†N€Eœ‚¤"?Ô8‡qì t’;(ŸÐ^DÀÄkH@)+&¬i Ø­r¤´LC¶q©"¯A©TÅt[(ªqZBi°wàŸñéX™ÐÒ$ô æåðï¬Ü@þw,0TëçÃK®4Ä ›Êí2ÔÛØëIZäv}9Œ†#­ÿ‚"QAAÓŸÃD^eƬ+°ã¢ª%ð Ù…|B¨‹H˜x J(8Ä7#ZöT×ÂÀaùeÄŠ¼†Åw¨À–r±ÄÖiBí\ÉÃn¡Š=ãUÖ€_üŠ:_†–܇؟FÂÙ¼nÚœëÔèÚÌ÷´© ìè3ë.–1{ƒJ¬ÝT]´Cü%%E©Ž°ÅñǸ¦qs1t^g©ÅÖ4”GòH…„Ülı†ý*H¼ÊŒYR!€Ô7‘|¤rÆ/"qN +Eö“ ÈEW° +uÄ´^n74š´±çNV–âdoãFHÎŒÅ*…”Ǩ¸š÷§H)ÿyF¹ÀݦƒO(<þ@*Ãÿ!øªŽMäUf̺t3øHrÜÐ9• ²dåËE$‹¼†%S†q+[’¡uu’ÜB¾däeD‹¼†E³ª +×­ ™Ü &­¹ŒX‘×°XN3®ZRbNÏtÛ!g’Â÷bÈm™ ÝÅlòî÷Xendstream +endobj +1976 0 obj << +/Type /Page +/Contents 1977 0 R +/Resources 1975 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1956 0 R +>> endobj +1978 0 obj << +/D [1976 0 R /XYZ 91.925 602.788 null] +>> endobj +1979 0 obj << +/D [1976 0 R /XYZ 91.925 483.199 null] +>> endobj +1980 0 obj << +/D [1976 0 R /XYZ 91.925 449.184 null] +>> endobj +1981 0 obj << +/D [1976 0 R /XYZ 91.925 426.338 null] +>> endobj +940 0 obj << +/D [1976 0 R /XYZ 233.107 183.243 null] +>> endobj +1975 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R /F48 601 0 R /F11 674 0 R /F10 1027 0 R /F14 1012 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F64 1214 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1984 0 obj << +/Length 1356 +/Filter /FlateDecode +>> +stream +xÚµWmoÛ6þž_áOƒÔLŒø&Rh íÚ.Û²¿µE Ø²-Ä–I®ÛþúÝñÅ–bEí€ ,òøð(:‰áG' '1“$fDi=™mNâÉVÞžP‡ˆ$ê`^NOÎÞH1IIšðÉtñXÍtþ1PD’0RJ—½}÷ájúûuq΃Wï®ß‡Z—®nB¼û;ü<ýãì>hãL•(0Š¨¦ˆ8y=ÝsqB”£´¹Ð$Iù$b +ô².æ+5‰%ƒ§D³ä࢞hØœt\ôdÓ™ŽˆÆ$•©“ª0¢RÉàìYI&ƒyÞæõ¦(óÆ΋…}nnë|¾å·ì%I0ËJ»t—Ûç¶ÉçvôìlЖv¶Š²}¬´h@ï§XÆ Ú/?Ë@BU¥60ß; ‰`‚»D,Üz'(‘ô±Me|àT|ýÕ ¾ùÁw?Ø="Ã)2æ5»¢wYtqˆÒ‹ö{/ûþP(†8U#yDß.#¡@m·ÛÚ¥(î×*Ž­ +Fx"Ñå±Ñ”€Sn9_7y¿Jžô‘>ác 9Iô˜ŽšÐ|”>Òáä$ÿ»?p‘™ÐQ%&}Ä[9‹o.’û#3«¶e{{W´¡‚f‡]×^Å÷žŠ'ЩGï~ÍãA)u:|7™æ;Vù—¼vžs;XÔÕÆŽ@@ƒ• t“ϪÒÅv^,=zûàŽáfë•úÎCÇÚgŽÔ¢ª,¾ö¼üíêíÕôöåÕô¹ï¶Éû^°—Ÿžç™1 6ÇÚô¹ÁaMô£âr6øXì>[ñ/¾Û†Ùºƒ× £íÐ!z-‹0Ò"ŽÇº‡ç.­* G'yúdEÐW”ø ¸:=?¯=54¿÷¢#*[ŒÍõûÛëË,°?Ÿ8¡N¨c'Ô!ú4´ Õéé/ž:ÄO@ÿGñ>Ê„­F9@_û÷½3r€¾"îÞ…#ýÚ ?x³/òÍ.\y +5¡‚pa`L¤„ÂUË\ûàJGàUB)й„Éz U º´&—•W(ÚÀßCVc0l*ø+¹ÀÁå •ßTa¤ žh€;™Ñ[ç¹} ™LWDÜŠ)G#y—¸ÚÚµl½V°Þ®6Ýlš®mÐŽæ°º]gNXÃ,GEFä ÄfÕŠ¾ð¬ ÖìT&Íx:vȵªï톅­ 1e¶—R±àÆ„ÒD/2©±Öv°çíÄËý)KŽ­Ö)7×62­aîú(–N\Ï¥ïCJ9t0ßn>íoÉ”v01‘û¾ W!9LJömAM’*aÚ—0í“„Zúì¨s$Ds¸ã XÏÇV5Ì-­µ‹#U4…µgO;.W > endobj +1985 0 obj << +/D [1983 0 R /XYZ 63.034 602.788 null] +>> endobj +418 0 obj << +/D [1983 0 R /XYZ 63.034 228.82 null] +>> endobj +1982 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R /F47 596 0 R /F14 1012 0 R /F11 674 0 R /F7 586 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1989 0 obj << +/Length 2548 +/Filter /FlateDecode +>> +stream +xÚÍZK“Û6¾Ï¯PåDU"„x’8lmÙ;N*¯Ôl8Gò$ŽIÊöüût7’IÅÉòàr•‚ƇF÷× pø"†|a9³B/L,X’¦‹õþ*^láÍWÜK¬¼Èª'óüöêûWéÂ2käâöþ\ËíæMÄS±|wûÓ÷¯´êä¸ÖÌ* zQäÅëg¿ß¾\òèf¹’RE [®’$‰~ùíúŸŸQ§Œn^^ƒÄ/–+ÝþøÛ¯¨ôêåm OIÍŒ4W •fšËÅJIú2粊ÙT,„b‰NPîÃÕ›wñbr?]ÅLÚtñ Ú1ãÖ.öWR&LjáŸwWÿ½úO7kÌÄbÅcfµÔDãbÐäZ^úL‘P1l€N$S’·S°¬!ËÆ)“J-tbXÂ-Ù÷—¼y(ÑŠÑæÜj\',(Þªüçø‚²ËbqÌOþoimTVï£UÑMþvúˆ]@£Ê¨…â,6É<¨ƒ²‹¨…¥‰>Aýs±G| Íš¢„öÛõ9\Éãàš³À ÊpMÜÁ•¼½wïÃÐô…™$õQø¯åJ¤&Jè•e<Ö3¡÷Ê.£v)ÿ"ôö½øÄHÙð½²Ëð­a©Nÿ |£†´&˜ esÀšâZ"%á°¯ÖŒ`q¢ºøë‹s`b»ÐF3i8ÙìyVUyÓLRZ§nJ;×ßp{£“Sp~ÃE¼€L1b)ãà ’¥±ó 1ô CPVÌ·àÂÑ“IAH„ ÜËž¸VsïßÆq<œÍ2Áµ—à“;‡;Ž½°ÇÂpqqbÆ_ËC>I§s ëèô2) ˜êYb'‰r\-Q^Âeb–&É .(’IœYË)¨Â0M™BNÒÛ,Èúôf¿:zƒ"áfœÞbˆ¨7µÆâH¹ª­<,!ô›m¹‡Ê"ÇÊ¢zš$»Nùdwõ„wR à±>Ô ²Kÿ6Ù X)ÊôIn”¢æX|GQ/TÂœ[ú‹? W–ÂI„·¨a5T‰RÉèó@Mï6›I‚›c]Á]ð¿–àzëJÄ$ÁÍ‚«%¸K¸ÁõpÁ 3Ip³ k î²–àzÈ7ñ$ÁÍ‚ìë®ß¤…ÙìDý–°Ø‚¹”`F%d®kvÄÆ&)­S7¥]g¥;oôÀT\Š™8ýK.šuÇEg¨O¸HKH­É êQ.ª3œ2F6]•È•grÙ1¹fxÇÒ#µ¦…ä¥úLÞÕ›çdêÍ÷“¤7‡;Ò»°í-éõ ÈÍ$éÍ‚«%½K¸ fR`Ï>®áÁ°¥¼Ypµ”w—ŠÝm؉½D:Éx³›³¤³:×4vÉc8º(nÖc’–øãa¹RZGÍC(ÃÊ +ZO®—ª´”ª´¼ò}ÙÞo\û9ÝUtgUê«òÍ:ÖøªÁ+¤òPã}B]åqׯòGw æ$PSyÜ"–ÝÓ 0Øà;àb¡Çe«5᯳=N„ãSeûòè㳎Ê{×ß{/Ñ”îw]Ò¸Gœ)ohál¹²±ˆ^—¨€°R÷GjUß-WZ(º³;88¶ÊÜ:¡Y¬{@êâ°öÍ3âBâ“%œ •8]Oæ°¶JH=ç€ëe”mšÜ dhe.¢Ì=Öá†ñ°ÝùQ÷xñx8Û¯°;Ó¸àØûŒ“ÞAOæzš|=¨¥øpìD‹Æÿ.ýa»H +Å$rËÄñ¸·6ºÏê&¯ÀîÄèÂ#ø ó%;æKðÂÀêŽ@ç2f¨]ï}…»Š­vÐ.qF¿‹­—g7yü:[£kîŠÃÖõ5^ý¸Ù»Çòº¨iãð6“w„øqW´œú;÷>ƒªMæÀž6î õ쩺ÃûÉeλX1äGe¹­ÿ¹xVxl·-¿<ìkæ£ÉBõ&'ëyµL2ÀJ@µÛ—µóJzá`Ûóu¯«' …¦ÜV6 +·eÒH7/Ý#?ìô9¥`ßhà‹¢vjÂv:•«I6èO&RA»‹¿ÞéÀ|”‚Ï)èºÅ©D¿¢ °]ç~Íî‚àÀ€NîÓC^åNêºØ‡¢n½kãºo2ÚÏÏîiÌ™‡ÕTGÏ~Â&.ŠQmqºqv›:ÖÍ]û.«ÛiaZ ­! ¤m]ßaç®ÜfÞ+àÿ½ë$—.ïv¹®kÜ°§3óÓ_às†f]½Îw»}6¶˜7Î)UÏ+KL¨3ÿ=ðY¨ ÂÑònQÚ¥h¿Ä0ü!ÛC8Òóˆú¿ñ/Òßá@ɸ†ƒóˆø:°8ÎÝ첎ô!›øG¢Ê7ÎÔ؇4[VûaÌr¨C¬ƒ˜åñÂ@=ªüµÕ£†ë~=ÊûŸcX„À‚4uéÉt1ÓVô+Ò3zHL¸|XS–u„,C&!„'<~_¢{¼ƒg¡Ñúi†´(< ¶uãŽuŸ«)×úø öF)r=JÕÎÍ1ÈŠÝÎëÛáî™r=pÖuá<Øç<ˆÅ€£ ¡{ö÷ÈE*ð·Í¶R´à‘¢E"‰ìKºí@åÇ]V¹Îüó#,¹£9D“y¢ïé߶y#k0ÖQqí +?1¼Þ8Y4ø£þ»FÙ“«²ÕÄi̇H²€Í”ŠJ]„*Ö*·£/?;-À:ŠÆ ž— e0áêÆ7âÎ^6ú½¢‚é£/˜ð7ECÖ¸ æ0Cã-—ª© +b“÷߸¾Â§¹³Àú88„â÷w%X«¿.–a…©/•ƒ¦U«ê¼Txì—ÜÏEØË[Á•ŸÆŽS àøÿ!MÓá Tgz}â +þ‚fmSêÂÇŸ+›OÒ ëu¶#QÊ=YƒQIò.´×íá Êס*€9>.¡pÏvÇN²¼!#ïqû¤ñ1®9‡ŇAºÌ̺{ö7"8Þµ«GŠÀ)ÞͲ¾Ku¥‡wËÒ5«.Sâ×xi²B9Fà°ˆöÆö0XA +;>Z};îS|œ²T„åßS ‹¨÷H{MŠ3ÉÓ/REEzAÐ{WX'zóŠ$f°'æU;®ßá<›råÜ„Øiã‡QõLå“/3°Ù GÚt p¤M“mðÝg'{3¬¿¡ðä„ŸðÞÛXû\¨t/XXšè^âÝ«¥¦ŠVê4‚SøЕfÝÕ‘æ~ÑmìCÁçâÄ%3¥¢g»à‰¥7LVgľݪ’NVw:”y +2ÁÊ…ÿ¥> endobj +1992 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [150.622 261.086 170.945 275.033] +/Subtype /Link +/A << /S /GoTo /D (figure.7.12) >> +>> endobj +1990 0 obj << +/D [1988 0 R /XYZ 91.925 602.788 null] +>> endobj +1991 0 obj << +/D [1988 0 R /XYZ 91.925 346.764 null] +>> endobj +1987 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F57 1167 0 R /F60 1208 0 R /F56 1170 0 R /F20 1030 0 R /F59 1176 0 R /F23 1211 0 R /F11 674 0 R /F48 601 0 R /F10 1027 0 R /F14 1012 0 R /F47 596 0 R /F45 589 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1995 0 obj << +/Length 2041 +/Filter /FlateDecode +>> +stream +xÚ­XK“㶾ï¯à-Te‰àE8ìÁNìØ©œì¹¤²>PJb %Ê$µ³ã_Ÿn4ÀÇ3¶«RS5$ñèÇׯ ‡?‘Ÿ҉á’Ö&‡Ëžœ`æŸDX¡´b…À¯ÉLsà +'ÙL·þö½.É™1*y8F-ÚYæœMÿ›þý\Þ†]&ÒªÛeª0©Ýýòð/Ú§ARûx’åœ9)ü–ï¾Þ`©HÛkuÝÁs؉´.ýÿþ]I€Ms¤·K愦í°%H à½Bí×téRjË7iÝã³H‡sE/-î)hyûfkÛ#-ñøLAKNagP£¸M¿ìr“–N—û&ˆÚ¨kZHÚÚ˜ù¼C½]v$åµE—ÏU÷F'…`.Ͻ“GDwHIE…|»Á[S}$”  #L¹aVI„Ê0ÏÃ\¡ý<“Æ$ŠA:ö+ 5ã\&Ù´„í2­yú }/¯èÕ€ƒ‚üA+¿1ª8ÁØa”?âÚÑüûP=ÒîúJ»Kz|æB#ð¸q@ ¥Šc…^iiÐÁ˜Õ á˜ÃÄK ¨¶"= „²i¢°G¾´>—Ñ.œ+;'Ø£S³D³1ck? YkÓ‡sÔÓ”ÃP!>—Üóôj+=f8S² ¹¨-ÖÊ° Ѫ`ôËF’Ü{£r£‚¤»Ãú}Shø eT/ôqˆ‰ÿrÚþ¥*žf½¡¸û€Éz¦Á2Lþôó7aàïÿ¨!2¦ÊpãUÓ\Ê€†6ШŽ=Ʋ©É…Æ;gGyúëÝ»ŠÚŸªöV·ïf„ŠYḊ«Ð»÷eÔáéCÛO]äUî½ôêZaæ…±h%¥~°­¿ð뼚CçC@£/»˜ ˆ¹Rz¤J/£PÿåÉÔ3Ip³§‰s‰«¾ø’ýDhÕ•õíýtŽ§¾=3á8=¿>&?ŽûƒFÒáÙ[h¦´ ô«,³’è×bˆ2Ÿ¨m|dtM €•!O¿…tÂ÷[/³Vy k@TéÐÕ_¼œ¿‹å5§¶«=6|F_Û{óH{úúr Ƀ³œ½7Þœ¡%e ++™ÑKÊœÙUøšfOe}ãHêê¡ié¸AÈE$äÀ¶PĦy&r¦?sÎWú-3#¡‹€J}©Â±E1¾8 ‘+¡4‚åR-O[¬PBm0ö¬* +H‘j¬„]È:ߪH˜¶˜’Ä.Èö u¬Ñ. i½d·²ÑÝSG0ù…$‚}´è7Ÿõ49wÊ7wøpŽ;Zäë”cN [ƒÿ3‚KXÈxi–ÇØÃ6@œ7¨e1 +8sCÇÛs½ÇDjÄ3¡N¼”§Ï.|>—ñ¢‡®Å3×>…F*Ð+-®·³J a5KsÉâŒ!™ÍmH-µN-ÁYžë$›–IZSL ƒfâÝ%àè³ÔkaŽÆQã@KË€LžØ…y”¡bÚ©W(÷1š\FyÀX6S_&Dý“ÊŸeÇéZ÷·^&’í¡‡àRgûz ¯§1ƒ_vVSŽëôgT~Ú+ÁÜæu'rÛù!!¿Ž…ˆr¢£Ñ1“wgî5Õ0'ç20Èüuν—Oc=$?1 Ën*H•ôÕøRxòlL§2ÐÝ¢àó”Uƒ„jóñ¤ÑQ¯pÐxÀ{z-iYpÖoÒ£YÞÁ°M\p9ìÚ—}ô·! Íuâ>ߟ! +Ï=Mâ©ÆçŠËzNutn +ÏOÕØ fÊiP‡rMÞ’YÉKOOëžš*D& §ó7ŠˆfV¸dZñ™ç|­Ê_¡ßïÝ‹ßíÝżw=P3´”Ÿ6¨Ø1É‹7™Ø2)ÆÂw}Œ8ùú°¦%¶ø#Pý.RòÿÔÆ%gaîë[ÎsØÂ;woó&Þpss.Ìþuc7gjl$[ÑÒþçs=R–Ëñ2CÄê Ý(¨a¢Éy‡…ß]Õ”¡J BÑ¿yï06Ðpmõ-Õ.T@kí¤bêJµ wpx¡#Ž(«ô¬x뎙¸é¿+jºÖµPJÆ_wó8j& CYGík½}!m2­èª[Y®Ÿý¸@&Ò}m‰i Y+QLÜ_|-B4|»@ïíqó\!ßLì@l¾ ·~(»îà 8ÏÓ£ïMðÚ—÷lxoª²赯O¸/tú0Ýîó<˜aÈO‚ÃG¢i¨¯¬¯§éžX‚Xýz/§« Vàžjõ€`Þ+¶á€Æ ‚˜äÌæ}ZÑLõ&øNjZòi-{7賄d:WsÄ`Ë,ó5׫ËŬ»3LÊb¼\ÐþYr9f€‡3 = ókþ³6ºGn-bõÂÍS¦GúúGz>m:¸‘ƒ&€¿È|\¼[èUoQ0W`¯Ê¡ªÍì˜#¢àºe±ã€E¬’L™Wù¼Ð“s…Ž;g&E¾{˜~hµÆ[+BÕ·~nk²Ù"ÿsëœ2^ɉ%Ñ2áKÍ+µñÜwՆ߀3a-6—„Ÿx3—ÃehÓ.ȦE‘„>}¬zËœINTõ?Qo­endstream +endobj +1994 0 obj << +/Type /Page +/Contents 1995 0 R +/Resources 1993 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1986 0 R +>> endobj +1996 0 obj << +/D [1994 0 R /XYZ 63.034 602.788 null] +>> endobj +422 0 obj << +/D [1994 0 R /XYZ 63.034 584.788 null] +>> endobj +426 0 obj << +/D [1994 0 R /XYZ 63.034 313.666 null] +>> endobj +1997 0 obj << +/D [1994 0 R /XYZ 204.524 140.254 null] +>> endobj +1993 0 obj << +/Font << /F47 596 0 R /F8 580 0 R /F11 674 0 R /F10 1027 0 R /F14 1012 0 R /F59 1176 0 R /F7 586 0 R /F13 1055 0 R /F1 1058 0 R /F9 1581 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2000 0 obj << +/Length 2528 +/Filter /FlateDecode +>> +stream +xÚ½]ã¶ñ}…ß*£1ÃO‘,ЇKp×^Ü¥— —ÙÖz…µ­=Y¾»ý÷áPeÉn‹¦Åk‰çûKbÁáO,¼`^šEÎ%³Î-6‡;¾ØÁÎßîD„XEUóÝýÝ·oÜÂ3Ÿ«ÅýÃ%–ûío™pzùûýß¾1z€Ž3+3‚|ÿ÷W?Ý¿^ŠìÃr¥”Î[®¬µÙë_‚Å÷ï^¿»ûjéTvÿöý;Dv÷ú¾'K+Ãr•ß¤¼ƒ¹Eºà9s¹_«™“y ì» Èê¬2Š§ê?»¸òÏ%=¯‹SI,G=>g™â&rXÐ~rcÞåqw_ïŠðUíãQª¬~ ßõr%]Vãý´rZ®pK· |MáÛÇHSùéŒ4·U}ìv‚êýÞꥴٗ +žŽ;¤o±B0© >0oL 0GLJeÕ‰´Ôc„ç¦<÷-›JAhÅ4—‹•ÌZŒë‰0,ãZEaü5"á‹œy«I5̈|!$ÓF §¤ ÷èˆã#çœ ì3)mñü@ +/Aë– €~RV« ̪&÷Hæ`/2Ã'¼Æ›HØF Ëé=ˆð_•Þ"2 d±@€g1•?!â©ÜÇ÷H‹êfڛᢑ{ Äq  +ÌA~³îaV Ð¥{]â!’ wL¸æÕ7¯í¼úƵ½Ws°hrê{ô­mðêàDè{‡ÙåÌÅ#Nôl˜Ìó…b¹ÈS5ú s +@üçR+ù”a+®ìÔXr œ†DÁFu6,ÅÌE>Dd0¹h¤x­Añ:Çèê}·{|tY[ÏpÉáæÿMæ„»þ,&”{fxžš,$ë\sp«Ž…z½”§ÊæóÒä}žÐvëæ!)]ÁúèŽôHè@VOÁâŽK gªb¿‰ùJq&”F$£B`lM‰ì¡8µø$³òë3x“… VÑREŸÑp¿Àl¸«›*˜ê!\ˆ%ˆòÙ[|i aºÁc즊‘à.BtýiFlŽw8q‘S¤K‹-=U¼‘ÔÏKŠänÅ®œÉŽ¢ˆ×¨Ù¨‘§i4匃|´|$ÊOw¿ýÎ[ˆª?Üqnñžï‡»˜LÃÛþî绤Q—p­d!ê&fˆ0Ò“Î D_sÅ rpLI‡n`b:=`M‚ÁnßVÏøSmÈz‚yhCQ»ÆÇ<Û \êÃ3·å°<ì7d<„ê„ÌîqÕ\¨ÿ=öEU¹¥¥O°p®Úˆ-Dfìlä9ÄáAKa1ZX°O )ò´úRŸ¡š:U‡g4¿*¤¸Æà?¬÷U'ì®Ñ^f‚½U9£Ø4Îö»áÞ¶nCœQ¡xœæ>(Û´»(FÙCû[Éd_lÑÕ¡Œ®EÎk³JŽŠÍ_‚fö ¥Š*¨lTcÓtò…5“ÂàµuÈ—[Z§3&ðŠGëãi(™ƒ#­»;Nz½ã1¼é™!B52¸l|Æ0vnºÌFÊ4:«‚ ¬"Qµ±÷ÜPÙÚÁ! m@¶Ä_dö×iøP=`ΚûìÍÒi¨R~-À˜ÊoàMûë•õ,Å¿‘CÌ"C±WêH€r”$BâDnISå‰^ÐÜÐCê}¸0+…K—ǨIÒö¢Ø¸u©bÇRt¿¨µ¯ºUѼÐ%¨¦*0iíK«6Ù÷]Äéz­è­”°ÀCÛïƒ.¿¤.JWEh÷‰niû"Õ°ËHhàJ[5Wöæ>”e+ݘWq Iµ?ÀqmþuÈ”j>è‹U è’J÷1B”0`.Á®°³± ¯É©)yÕ³‹®klc‡C.íÛ¶K+JÊ› ~åuö¡Ú=.Qô´ŒcLç·0C éFÈSŠ A0=v6½}…¾à¸ ÝŸuãÛcîgÊü¤PŽº~rÁ(%¼¥ TîÀN¨œâÃe™rìn)BÍ\ߢ}3=Ž†pÑÁ¥§¡uîq·Óão÷ã²d$ï™°yð©idóþÜ’fØWàü<‹4½ìÄtSÍô8¶TãF?= ¦-íXR`‘L¬$¥@c~Gê=ÑLUý ý£L¾GvÝâ![rªôÅŒHP²¹º‰Ÿ•ÉG®ùŒ f­IGÐ\@îƆ+£5>Ô3Vf«z"ª9ÅHÙ]ñ€ÝåPá. ɧ†(¸›”évúk-ÉɵÊ8½nkbD.¦Ì‰nl3.…¶7…›T*t/Ôcm>Æ ù`u* „«“SÎVàã"G£^ÕØ`ùÿ"xŒës~1J1h–s÷úÙE ­Â¹‘®¯XÔ*‡^5DQ˜„¢¢‰~(Ûssœ! šO}#|.’à3ãýs”ôÿû[†”K ºš= gÁBená×ÏŽž¤ƒ@’ßT»P8–TM@ßö¬74d> ¸]öSºërð1$À¡‚èਟíg½"QF'ÉEBæ„P!4kµé•½9ù—ÐÏi#o Ú$vÖÇI[(ć²Š€a +'J¯X‰µ(„ðÔ–=Ïu¥cÕ‹­ê#ge±€u@¯ÃQ™rPša;Y7OTÌ!º–J6üW4ÛÓè¾keû¾,:´pWhÀ¢"ÞS/Si Ç™á¸í\e—Κ´êviþ&l¶®âe³m¸nÖ³S§®Z}/rjîvf¢aƒw_ë)=w‰kÚ½‡VvŠ]Qõ%uÛÉdºÄY®´£†ysnš®)èjhľ=`{Þ´aRãBÙ¦'ðbƒ”<Ò +tðMAák¨áqÀòÜ#„›dÐØQ‘Ø0(šÀ¬} ê€pÕ3µqœ“pÆÇS‚çº,´C+«âœ¡ÃPqQ}ýǹëÕ±Šß_†Ãw˜^4.¤ƒTÌuß9*•vŽJùlßI}Æ* ¨a´äW¿äaûè0™àBÌ|ŽÑ˜}{MIÓ1D-ˆë=Ä0lÏ©MGÖ“{h‘\#ø•iìÂh–ÔÏŠJ’Òø»YßôaWÌ!3\›¢iPØ> endobj +2001 0 obj << +/D [1999 0 R /XYZ 91.925 602.788 null] +>> endobj +2002 0 obj << +/D [1999 0 R /XYZ 235.327 543.582 null] +>> endobj +941 0 obj << +/D [1999 0 R /XYZ 225.743 279.344 null] +>> endobj +1998 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F11 674 0 R /F10 1027 0 R /F13 1055 0 R /F7 586 0 R /F1 1058 0 R /F14 1012 0 R /F9 1581 0 R /F6 1084 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F23 1211 0 R /F59 1176 0 R /F20 1030 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2005 0 obj << +/Length 1674 +/Filter /FlateDecode +>> +stream +xÚÍYMoÛF½ëW=‘nöû£·¤u +EÒÆB[ αh‰%94U§ÿ¾3»$E‰”ìÆ,`0W»³³oç½™]Q,¢ðÇ"-2Ò”cmt³žÑh #¿ÌXc‘6&iÏæÍ|öê­’‘#N‹h~{ìf¾ø[ÂH’câ‹¿~KXüáýÅûùåëÄÊxž¤,¾üï“T¿y}uùÓUòyþîÕ[»÷*¸%F€™Uh1»˜wØ$ÕÄHu¾‚ 6:ÎÀ£*J‡§ì››Jâ,‹#†j´û:ûô™F °{7£D8=@›æ\´ž1Έ®ù\ήf¿ïA…Δ1â”:éËQðZõ‘+fqÊp"…êø‘½H2K u&RF +ÆÏ?§â¬ÜåÀñö6ÄBÕM“°e)šøÇÑçB®¢Þºß¿‹Æ×ÙMpI‰äÏÛÄÍ`N©Ü4»@Îpžâ4÷5¢A â6¼ýèBi.#¹¬uÈáôå{7P~“æð`b'œÔƒvBõT JC $Á(ƒPš0%J0飥N1¸w3ƒG˜úÙ‡JÞ•¤p +Tÿ…“%¡PDy–Ba¡ËKžbpïe 2¬îcÊB•5‘&f‘"\ë²” ~’â)`¿ü:ËáBÄÏ2Ì5ÑÔø`‰Sw^&`øÑÁJøÕ‡tŽaµ×%8ê߉¶n\Í5¥lä@ö÷(úH)˜`ï/¿˜3 +çš>«†ü‰IÕèdïf¡a:PŠrܦDžbÇ…"¿C(g×áÏ$TSùÅŸMÒY8¦ÅYEÂÓ‚§ñËXPQÏÍóyŒéP‘ŒàW‚¦Ç'¦‡RAvBº·zž&õŠ¤þ/šü¾ãv"^üq+­‚qwNµÒ:¢dˆ=¥Ú½› T{„iDµ}L×7ÁÏ«vºJj§«¤_!FU;“ÖZ;sÈ®!VŽ¾gbÌÆa9©ðKÌè÷ÙÖ¦5Á ¼-/w¾Á"¶„ÿ˜¤RÊøâ[¶¾ƒ±2/ɶ·Áâ×ü¶­zž‹å*á6nº/¾Á¬»$…žíš9¾nÛ$ÜÅu‘Õô…](”QÔ>Ø·Æ›B-ο'”JcGc@ +6’\AµøsµG«È¸^åØP1î½Úúm, ¹»©‡z³œ0`þ©er,…Ñî)å˜ÂøS×I ˆ ³S¬c†ÇK?ÂDÀ ¾·Lq¢y!F©­±áuU\S&Ûè/Bô‹:˜£¥Ÿ©ãüë>då¬Ã׳òé‡á.Ã:xþ‡.}“p¯PêF,ؽÈÖªýÀ;(UÁ×T%»æß0 ¤C¾ñ‰‚yó¶’¤ +ßH£c •°!8YUà·_fRŒ¤ë¶*<–uè 3i0÷eTa\|Í„l²Œ|ÖBïÇ–‘&yÃ_<Ò<¸Ú…½ûú…|@Äû»«òlr¼IhøåO×`TlÚY¸ã¦s[-Z[ -H +¿.ËføŸìÉ+5ÇÏÉJ80X­=`q¸ôCQ–#ûk"ªà]Ç÷}o•.Ú‚uG³îÈ…Î_o×y!A“Ò´§¨’†:ßþQ`áÀâ*¾BÖ6Ë2øFÅ?w\â¿:t^ ê ªØ 6™ÿ¿EƒlÀmÃu-\cç`)@=¥Õ}>„â«uèAñY·öA/Uù!%õaÀþaøPxv:×®öìàT µÆ¿x~ó0’ùI6Þa<Ó“¤mýø"j$cÇèP¾ê‹-a+Ð@nKÎÂÇPp¡eÙLD Ë¢õjcãË:t7¥Ä7ƒÃ|³èU@ô†é‰ÏVuííîý~@w«|ZYxܯ3Ll6ȱ=àRyú=8ÃÏ´ëÍ®½-BA!­}á-ªvµkªh£VÕ»KrM¤iÏÀœ,É°Ps_ÛŸ~ÿSeJXâðö§ü¯{ êËyûUå)©÷Ôz ŸøÙf_¦ å½/Öwå?!i׳]éEŠÈðrä àÀl /c÷VéšQ8pé`cØh/¬¬)Å:Ô—ðñv[…†g'JãoN]!êÊÍ£€‹C|ǵríï›])DgY“Ø^B¯óª-f(ßÂpVù¾Šõ¯tÍe îÓ‚»±ëZû³(íþ üŒàendstream +endobj +2004 0 obj << +/Type /Page +/Contents 2005 0 R +/Resources 2003 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1986 0 R +>> endobj +2006 0 obj << +/D [2004 0 R /XYZ 63.034 602.788 null] +>> endobj +942 0 obj << +/D [2004 0 R /XYZ 170.492 469.676 null] +>> endobj +430 0 obj << +/D [2004 0 R /XYZ 63.034 374.152 null] +>> endobj +2003 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F48 601 0 R /F11 674 0 R /F7 586 0 R /F14 1012 0 R /F47 596 0 R /F45 589 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2009 0 obj << +/Length 2974 +/Filter /FlateDecode +>> +stream +xÚ­Z[sÛÆ~ׯ`_: '„÷†½¤ÉƒšÚ‰’‰í¦zhÆñx ’’8áE楖ÿ}¿³»ÄŠr+M&&°—³çòÛB|Äð9^:Q4¥±v4]±Ñ f~<ãqÅ$.™$kþ~yöòµ¹Òi9º¼>¦r9{_p«Ç.~ùºRÝ:nYi8Q¦%?ütþîòÕ˜¿'RªÂ–ã‰1¦xõïw|ûæ՛ˋó±•ÅåÅÛ7DììÕeË–’U©¥>ɹTÒ7áÙy§Jí ˜Qe%Lºâx¥*å#¬ãÂѺOgï?°Ñ ë~>c¥tvôϬäÎVg\©œ…×åÙ¿Îþٱġ*ÍðPY,r­2+=²Ð’öZr¦¬ŒUFƒ}çuu¾„Jn6ÛÅ¿·«¨ZÓm¢3™Šš]Ý«KT¦8¤¡ù¨²äVæehhMbAˆ„¡Y©d_ˆùýÝ~À˜åe¥Õó0if Š7Êô›E}&F¨J lu–CuOœ,@=á¬tU r±Oxqw ÷CŠ$[ìêªÒ9C³Ò=]•F?® _W¨#’št´XJ—\‹æ8bm± × Y‚KU2À2P4ÐDƒÀz=“ÿ+àu(¤s¥Â¦ç2’:%¤DŒ2•q¶¸_‹Œb2Jq•1<Ðäœp^ +‚ÝÛÃþŽ¬~Ș]ÊÒ±#$¥êRcy˜ž·ë²Rοîv¥¶o’´tÆú¨PZ+F²´Ìu¥–hâQU±Ò +ý\Á­£öpt“4‚9xF/¤^Ýâ&*Æ¥h¦ÑÛL±,cª¯Ãë¬j(¨Ävee剘 +X!q4’|Œ­x0¦Z“„˜W]ÊŽ¨ªPJ5·X/†!UÃ%œ|¾"­Ó|QJ®{ŒMÇ•(6äü_†šç¶TŠwªç´ÄÇTܦ1U<†Œé©ËtÈèŸ"ƒ‡@•G€?ëTZÅ<€^!liž@k’Ë@AÒ5kˆ­Ý|ŸÑ15P±¶¥4ª§bsÑõf› ‡¼½Ñõýð[Š6M^o7+Ò¥hTJµÊfHS¡"nZ"nêÖ¿{Þ©y5ôNÖ÷ÎNB®rI\ëÌ£*f©–ó:“§$š«Öë3ÆFÏÇuZ„C× uhÏU<ä·ùþ°]çA¦Š·®öë»aEå£RJúü´Š К$Ä2E¦´í¾ùå|llñ{FÛ¶´iÑ*ï\G  ÁÍÓ: jC ){EC§Iª{€4&w»Ô¬i–ë¯7þ휮Ždªæ[˜N©â|™Ü’øk¥¡çJ| 7JÎ|ÌFκ¼„ ­SHf mO€Ü]„ôqúYøŠ´Nò%Y©ëñ50%‘â¤J™XQøÛ'(E§4'oÜMuHV©ê „k \Œ7÷^ñEíº¿Xñfµ0«¿l ×à€zCã+®“¥‘l;iMbC¦QEJį”éì=p™{ÆZ']¥t±Yì¦Rþ©ðlêÒËÛô¼#¿©ŠzÕ¾¿Å¿«08ݬîä]sRÿ.xj„ððŸ1‚g½<Ä×M,ÏÃî<ƒ®<áL»&>mëÈŽ›Å£bíNnçlå CWU~¹ç“Ž®:h>„->ñ4ßÒ8#–üo~v‹5Ý«.㮉{Ó\ õØæÆc³—¶UrAIÄ©â"Ü¢ŠrÅa×ê §}áa9¿ÞÇ¡MøÝ’Ä7·Äwœ˜(yú^zZŒfõžÖmÖQ˜ÎR«˜êQqu¤:°âÎÅ”´ò'Ý* ÃSb¬‹¡=ñgx§Q<> Ó·ªªâb-vaÃrÖû-ã1WõÎÛž}sľAõaœ—„õDðÖC¸ÿéœ8ø!@â=Õ ß„‰»;¼þUU }üF?„ñ$:¤zK£—Þ.ÛЄ¯ˆ˜Wö·õ¾yŠªÀf¿ô~PfIŽv»¿9õ‹ZORlRúâÿ>™xšù$Šìµå¹\†Èêï`–;"ü%t*9¯Rèt«SN¥MSÌyó€°Ÿõ,J¥{ÛÆßö±úß„ßz¹Œ¾:èyXD2®oIÅÉÿ7¼-ë«¥'=ô$KuùQ'œðj’Ë+ È_°N÷g׫8\ïÚF%`_h*`d8»Ía;¥ ŽÅ µ‡T=g8DÇÊäÃʬJ4¾«Ã^ˆ›‘öv¾;,IwÖEc,à?z…:ÖÁ ÏþT¶L\º÷ØÍ› ‘XBÄŸB[®B¨ñ^=5¶Ò”£y_-ûyÈ¢¼x‡ëÝ¢A Odz÷pKèD<¶Ñ@Ì}…`s㜴VÏÂÎkªéü-s=ÕÍnÞ¼¤>L®¾ŸŽ.[·Ô±èjâŠm³{p{ÚV^Ò‰näj’= áh\‚^w‹äÜ:*ØÏàLú‚©LñšÌIGÑŠÛÈÁG•6qT"»ðgôQû%òòéP·±kÆÈLày~FÑ´DÞ.ÖQ>Š>Ñe¸Fý¡m×ràèö‹õ Ô§M‡¼ébqF[Ph[¬6m¡õ¤-L’Â:mÑÌ ïÞl¡à +õ`Æ5(5UÓ´ÏM`Î?O)zZ=iIæ( ›~"zRåÚ?iEéÓ·ßû¹Ïr1ŸÅðƒ^^Vª§Ëú¦ö…Æ.ù4˜2 ášâáˆY.’âBQĉäCÔ%kâHNH­|T|XUOFPÙÝ.®}10 ïËi×ÑrtÒºI‹Híá“Æmˆs˜_Õ’ò#_Á£ñÐF„û¸¾EƒH\ÔÏ\À7M]ƒîÁ¸lÕ§(§ù ¡‰wC'ÅDÃ$=7(¡çõüsxèð‹øñ`ÓÑ$ÿ‚OxÿÂ༭.¦qÙ¼öE×m ¼ØÏ·m—/uç1 qáµßÅ[š +a1Òñ.,lw¶âhG/ª cÁMY—i›)wt+£D}Yhf¾`ñ•·P³†·Í‘T‰¶9ÏG‹àU ýœ UQL?ÓP€ðÜgzôšÖÒî’ /’¬ß»43h¸"û߆k «õ ½DW-º9àP8û¤/× ­IBløµ-:Ã@³Æ_ûå>©sE÷höy8‹´NsF9€T–r6¿÷ÉaÐürMì"ž‡¹Hë4sÚø[º”¹Y9=æËjŸþé“´PâÔ_MâÒI²6œj“ñᎣYB‡2®[çîî7PTeªâå 4O}u½œ–5eWÿ~¾?õ‹¨„9C«w‰Ò±Ÿ ?¾˜OVÊFTø¹pF=½¾x™eÄFFë}X·ºûH÷gá•.A1ÔN¿hæÅ7펙ïšýÛU7z¼iÚÞEsá†7ÌÂB‰M‚ù,Uö$.è !A‹(ŽBI9ºÿ[îlÁã†a¯ç›üZ‘•Í¡×Îèÿ-…äÄŽþ„Åþ#*o#íWþõ&òW“zÂgJzýKÜõë»o9ÿ½û2ÔÓ’rq&US +ðˆHDnþrí×͟ȱtò¿Ý!@endstream +endobj +2008 0 obj << +/Type /Page +/Contents 2009 0 R +/Resources 2007 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 1986 0 R +/Annots [ 2011 0 R ] +>> endobj +2011 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [130.226 350.29 137.2 358.702] +/Subtype /Link +/A << /S /GoTo /D (cite.HAC) >> +>> endobj +2010 0 obj << +/D [2008 0 R /XYZ 91.925 602.788 null] +>> endobj +943 0 obj << +/D [2008 0 R /XYZ 242.69 424.332 null] +>> endobj +2007 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F23 1211 0 R /F59 1176 0 R /F64 1214 0 R /F20 1030 0 R /F26 1460 0 R /F48 601 0 R /F11 674 0 R /F58 1173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2014 0 obj << +/Length 1495 +/Filter /FlateDecode +>> +stream +xÚ­XmoÛ6þž_á})ävRĉÚ}H±tȺ¥Ea`+Ö¡PÙ*K©,¯É¿ßï(ɶâe@Q¤¤ŽÇã½Î}¥”wùçû¹ðÞ]_^/®.¾¸zwM’‘ü4”6,A$9Î.½9:Œ££“;žc““Y'Å#“#£ƒDÆö¸PjÐ56‘×Ý®­ç~$q¾}‰Z€l_„A¥Ì±ùé T™ †CHû¯õ™a_P<)ÞÌ}ÃùçÏImÑѤ¬Ë®Ìª^»]Å ÏÏ'%,hs÷¹—ñ)ŒÂüGš øÓ&¦ST²ÀeÓÒîiú áK™újà+ëÏ#ÂÏW¿\->Ï}á½¾Z¸-/^X†#çJ‘ŠØ»Ë ï:Ž}uµwä×]Ö“.Kx‹ä-årPÿÀÛ{f¢K¿¶Ç.ÍÑgfìýÀì¿¿ÿüîíÅÇGÌ“hpÊ:bØ7NÍ}mH“¼*²‘.ÏVÆUiÞõœ« œk„FÀ93ì šÄ¹2áq>ïÖ£›Ò{ €~‰è¹«N¥€J‰ç }>¨àÇÛrUŽ0êxyë9ÄÀöj„q‚5@šHþ(ÏÆÀˆz`„ÓP +¦ò&Ǿ¹)‡÷ ðÃ÷Ù +­œÂrôD,G:©:fæØS\Ce‰Uþ?4kÁ»N¢™S[Ëcm£8Љ9ffØ?U}§´ÐzÒ¨è°j­Ë%þkh¬‹ûî E¦ñ¯cvã°ÊA|Ä¡æ;u6LŠO‡†ôô(G®ëŒ£Ì œÞ0…K¸Õèƒn¾€ëMšÂ$¥,×oe ÷(EZ†öR¡mif«”)veà£ÆŒßÿÌ£Ø˪ïl–Dî€iÍ4×»-½¡Qsß„Ê»¶±µ+Ž½‚­À%¯¹£¥¦¦±Â£kfƒöŒÞð…R ÷>!À'‘µeÛ¶Z7¨¯ 3uë¥îVküŽ<»žås8„)Z8A ”«Ë¸·¸¿#m¬ƒjÜÓÑʶËÚÎê´"Âæm³qg’Cq¾Áóš­ÛW®PVù):ω‘wÛàÇ·ºô`TGKø_ÖÞ¢]©S2­ÓÈ({,mñktŒ¹e ó[L¼ ÀÛ’)š-Ú4èå„}Ý!¹µ@Y½!×mfý€Bò]•åV›[üÖ=½b­£;)]Eb¯ä˜ÁÔ‰F§6í¦—cY{Z«B ¬‰´ô.·+ZÐæd|ïÈ:1äaœâܶ àÀõøM M !Ë(«ò£¬2`Œ{”lÃ}h»76ï҉͸ÁÕšwN‹t²U¤8ÖÁ—* +¤P{È8Nð$PÒibá,1œt.Ì›áò@Žñ.÷°*FñúF)ÁVYKÞÐôòü}>eÒÆB\èaJæ#FµŒâ×H¶Œ³3†Æ1¶|뀱lk€Î°,2sDf°xaÀiÙ*o\4°“ØjÇœÃ*+c\u0 ÆP€ew‡–}ÃÃ2,=·,¢³Å ¨.‘ÙhïIÝ4 m+l²^WˆŠªf¹h=ÌïZxfBTÚvØ¡$À„Þ¾ÈÄ)F\ +–±CЗ 1Þ›î&ágíéy9 +³‚ÈØj]Ïö Dµ«GýHë Ò)>lúGêë#>Þzu•ÃŸÍRèŠQh!iÇÿ@[Iþ±B)ΰgäðÕÝPZ‚=Ò +êKÄÆ%FÍÇߺ®*ê"Ç¡ì°OŠãúwP(úâ>¡¼oëÒB±_ Èg|Ú᤬i\Á©-ve»JƒUv“UL]fy‡oY»T¹~b¼‚iÝÚºPˆ‰z¹¨Œ÷Á:2G‘¿Xð i©—Ný^¡´ +ŒÀ¯Ñâ¿ÛAendstream +endobj +2013 0 obj << +/Type /Page +/Contents 2014 0 R +/Resources 2012 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2016 0 R +>> endobj +2015 0 obj << +/D [2013 0 R /XYZ 63.034 602.788 null] +>> endobj +434 0 obj << +/D [2013 0 R /XYZ 63.034 172.246 null] +>> endobj +2012 0 obj << +/Font << /F54 1021 0 R /F11 674 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R /F47 596 0 R /F21 1422 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2019 0 obj << +/Length 3153 +/Filter /FlateDecode +>> +stream +xڵɎãÆõÞ_¡[Ø°E×ÆZ;ÀʉíƒÇ±AÛ¶¤V‘Ä6¥žžñ×ç-U\Ä’f€ÄèƒHÖ«WoߪåBÀŸ\YU-¬P¥ó~±Ú߈ÅVþq##Ä2‚,G0¿»ùâ_„2X½¸{8Çr·þ¥Þßþv÷ýo*3ÀI/J'3‚|óí«ï^ßÊâ§Û¥Ö¦ðåíÒ9W¼þ÷ðñí¯¸ûîÕ­×ÅÝwo@d7¯ïz²Œ®J«íUÊÌ'^9Sze‰®‡Žo÷·KSÉâÏ|ÅS·y×´ÏðåÈêݶíšÓ#|Ùó—Óc}b¾ÍïJ—Ò¹È÷} [gÀ”ʲ4¡"˜†aF„ºÒ/†õnó°é"§6 tlæ§W¡týásĺ4ZÅÕ¿Ž¥1¡¸on‘wÂÛ>Lð“X6ïŸn—Êías¸U¾È1-|©„2=:—yæÕWKmDŒA€V*æôg”÷S<íHÇ«¢9°€ÆM½f’šÿ’h:&Uq‘e$/ÊHV¶´`!Ÿ*¤9Øït„øÏlUVqmyŸ])Í6½±”åHÊŠ9xüû„¸™VÂsj´,½5Ÿ(û¥ ¾xƒžÖvs\K-=p¯£VìAÙ6ÉïkÔ–+$øµ°ÀцÖ›_…4ÈDsjÚ¨B\¨»A*ý€+-™Õ‡}ûœ`ð뚟 Cªô¡ô²êµÀ¡øÛŒTàÇù¤«H$¹2Q½Y ‡I†VHZ»Bs&Å—O3L?!çëýD²þƹ9åT! §Ê\j6á?å) Ø@>« ´oŸO,ÉŒ5,ìT3ã¡6¨R^Í·Û²_ýz¾ª7妒Vdœ$­K/ α7&³7òSåÿ_N4BwÙ‰ 1)‚Œ\P¼VŸ &dó«0b.9@à\ÕgrÎá¬À‘¨hÙmÆ”ÁtOD“ÓŽRéˆL—s HŹ=…±½ê¾ÚúUˆ ¡„êaTÅÑÚèBðëºeî ˜7 ”¥ÔSLâN2ógÒÓ0îªt{/Ä{¦ŸA¼ƒƒíÙ‡‘é)†1h€­ôB••ð—¼u ißKLûŽŠÒž#Åü¿~Ï¡ bf½:ñ·Ø”ÍýÌ”F\Q%ÐJ÷U<"ÉJMk{9º`,Jyî’PA/4ÛnÍæ ÅJØÅ°çJ¡ä(p^îrZª6൉Ç5‡ zHk>)|› ÊNžu\ +lWZ{î-²Ðš=Ùk„vƒ£dlÚ”¶¯?!f„°¬ÀÎv3 Ëf©c|øiszî2‚…¼jÍ•~àÃX°¹ø«=Eó?1˜0j ‹ìÐCBõUxÐ*¼P¹¡G‚I H÷›f‹­M+H(¸¾ÌŒä(V^írkªp4ùï¥þu(tÆòï?XŒÈŸñˆ£`À`®M­ _T^e¥ ,ey­î¾á@þ-¸Ýï(º£IÖ¿Q l¡ï8Oü¦JÉ\˜G˜{*¦#2h˜hQîêõNƒ-nĉë™3ûVžßÝbõ{ÎÌ/T€(z^cL¦GA¦õø¼"j6tæ2v_PœÔÓîµy‡³XÈœëhlv¹ó”!™Ë©Ùó‰ØÞb™‰ý•&løÜsxä÷l·+ jÐaÆô +Š +‹©GVã 0™Uh¨J–p (D†EÌr),…ÑWrœ…·Y_+ Â¥ÊVå}˜‡ƒss” +-{y¬Q I(•Þ¶@‡¦û©Û¬Ú=[%Ø›˜Ã™4Î1Òc<‘“)ÎhèóKiÀýn( àp1õÊ8H~ZòLÌÍõV±¿bÉòO ·kVõ0þÁ3âhgvŠ‡îÐôæ3˜¬ê‡­‰—Ãöf½+îPiœ†|}çÇ·º*ò|OÁi4ÅAôc?Øn›ŽÝVW¼pÈ/;UBÔ!%O†eà]#;0}Ã8”„nÀªÓ [ØoÆ‘6`ÎLÜOõm–dz§qíÈ©ØPÁf¹©Ê?…•Ï@m&0Áö#æCÑÄ@×|÷'B*x +7Í“f%„Hzk¶>S\Þ§¨UÅc|x2q¤Ÿ(e=ïÑ £Át As"¸'GŠšCÚÃ7|ûè4—6F›!ô" ¬ßB²$ Ýï6étÀ‘ñT- ØUêR6 +ÒÈâÛþ2J ¶…6"­û6Y]¼â”›6K=Å&…ë +Jnj‚)ö-9݃ÄáfgT¼]˲óÒàt׆<Å+R„èåÚÿj¿¯‡(†Ë4ÂóÇY¨ÄÔ–Tºàl×R%ƒîq>nÒÈ–üLÅJ“ÆÎÍ–Ž¨w™Qñ™)H&l"vÖü…'Ö -\açìê-§ å¿iAižÊM$¾_•!%?\Û‘qô2PÃ{L”Y/²Ìèu^É™ü]}Å +oõžÞ†²7щ”Ýc4AS{éÑÞlœVñ‚…BÌ€à±>òjsXu›š |v NË!Ds)tÆÑýsŒð¤óY¶À)ïCšì#ÀŽÆëO»f˜ëóÄ‘‡÷¤¼ø|ØÔWá„à±Þ±F×q°­y¢êITžfìH"ÝcÅ1éâ- 9›”Š¦ø×-¸d_{Cåk±üVr„¯w¬ºN– `‰÷lÐiÓÚ"Hz¨p8—µ~ÔÒðr¦Þ‡NNk}­Å°¡¿lÚE¼{²Àfßü‘îßàc¦º±PÇBü¿V»RƒhGùgó´!±¶N"É…ÌÒ¨T-¾Îä¨:ME°™ÑªKIç³\9>:þÍjªúHVH–÷DÖÓ%üÄý¾Ö]0ó^‘Ø©ËÒéé¥èp ‘ƒ +%©¢çÀ‡OøÏ(äTÿ ‡\A騨ÑÓN96}¯´ã¦ôÄdÔOOt)Z¯0ø=òÇþ®1Þ¡Á/¦üîù4`i­r2¹º[!ùß·)“Ä»˜Å2@m\Ùìå ‘bÜÏm + +»kw¾UGY*ôÞü§ÿµÐÏãþšù/ÁjuΨ±—M›—ÒÚâKüqüÓ¿ÍC¡&ûÞ#uÍ Æü§kQ,¤Ž'þÖç«#„O¾-·* üÿ…Qƒ'8êUQÓÿÃÈ‘¿´1b$Âc§¢Æ¨-¥ “~9;Ž€ðäE=xš>‰Ñ”A»xV×ÿ/‘Öþê,ïê‹þ?úVEû8(ÖCERbˆá¶Ù_ÊK.æ%ßç%Œž™¼”ÎL {æÚ7T¥V!7”ÓFÇÿ-þ°$uendstream +endobj +2018 0 obj << +/Type /Page +/Contents 2019 0 R +/Resources 2017 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2016 0 R +/Annots [ 2021 0 R 2022 0 R 2023 0 R ] +>> endobj +2021 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [360.964 547.982 375.687 558.83] +/Subtype /Link +/A << /S /GoTo /D (figure.8.4) >> +>> endobj +2022 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [136.342 260.89 151.065 271.739] +/Subtype /Link +/A << /S /GoTo /D (figure.8.1) >> +>> endobj +2023 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [332.851 129.551 347.573 140.399] +/Subtype /Link +/A << /S /GoTo /D (figure.8.5) >> +>> endobj +2020 0 obj << +/D [2018 0 R /XYZ 91.925 602.788 null] +>> endobj +944 0 obj << +/D [2018 0 R /XYZ 242.904 371.757 null] +>> endobj +438 0 obj << +/D [2018 0 R /XYZ 91.925 187.277 null] +>> endobj +2017 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F11 674 0 R /F10 1027 0 R /F45 589 0 R /F56 1170 0 R /F60 1208 0 R /F57 1167 0 R /F23 1211 0 R /F59 1176 0 R /F20 1030 0 R /F9 1581 0 R /F13 1055 0 R /F7 586 0 R /F14 1012 0 R /F47 596 0 R /F21 1422 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2026 0 obj << +/Length 2728 +/Filter /FlateDecode +>> +stream +xÚÕœ[·€ß÷WèqT ï—¢/.`·I»­M‹8²%Ë‚w¥µ¤õÖýõ=‡·¡.ä ¨0°ÍPœ‡9Í‘Ù„Â?6Ñ‚P!'šrb¬|¸¿¡“ùÓ ‹%f±È¬(óÇÛ›ï^)9qÄi1¹ýxZÍíâ§ÁN¦?ßþðÝ+ÆÆ‚\.5TŒEþŽ—9ÂŒŒ‡g/þ>µbø×t&„^þó¯S6¼yýòõí÷/pÿí÷o^‡ +lQ¿ÓDHk`Öa‰›—·¹9’jb¤j¶8•9k²=k±2’X®ýÙö_ç;`\oVûÀ¼[~y\ã®åtƆîäÃ|5_oö‡Pb~·ÚîÖ(òé÷Hˆ¼aä”;OSℸ„Í%Q|2SŽpnʧ%q–O”p‡å¾Üüô3, Ü7”g'O°M snrí$†šøþîæíÍßÆHQgd€¤ê5ùÏQ¨)lÅÒ'9N„Ð@/QF’™‰…kï†%Š‰‰RœX-}È_þ‚õ€¶Œñr3…m ®SÃ;ªèûõa¯ì4žÌbŒ›'üåô©²&>³>«øß<z ­¸ŸãÖ]0ZÓñs’ÉY4úói;¸Ð„3ݧ©²f;¸„¾rÇýðãÔ¹a»ûŒq—Ãüp±†Új+H);5"ÔÕlƒ Œ0fmxÂ|ø4G oÈ™BzÊ^Ô0Ìh>vmÃRÀtÎÜK]x-(ÑGƒ„©éêxkê1Þ\œÂÔŒž\¼:|z`ç…¥A=}.nj¢ V *!€ÆžKVï‚U}"®af`mãá•Á+KðªñcM=ŒopeãK®ªñ=°Fã[XÉøKºšñ]°’ñ ªl|Ie«ÆwÁºî9ž) “mã™%Æq,-«Æ5õ0¾Á•/¸êÆ÷Àoa%ã ,ÇkÆwÁJÆ7¨²ñ%•®ßëºçx°‡I}ÙxnáFRM5DŠ°B„}UåǪz(ßËÊ`²ª|¬QùÞOj}/£jÎwáJÎ7°‡Ûaß?ÖùPÌÒwáºêi^:üNÃ5¥—NjLXªêZ¾¨ªƒô-°$} V•¾ V–¾‰¥/±„¨I߇+JßÂJÒaÙêj¾×uKo Þ–‰XX*V]ÎUõ¾–¥/ÁªÒ÷À¥oa%é ,-«ÒwáJÒ7°²ô–ÑÕ}®«^ÞHCaøWôp?C%›H#ˆÐa-È(¯.鋺zXß ËÖdºj}¬Ñú–ÒDÎQÀ¸ª}qÓ,ißàБÎèc.%ªËú>`×=ÙÃe˜i{¯9¡T…•Õu}QWïdÙû‚¬î}¬ÑûVò¾ ˜Tµ›Ù>`ÉûWö¾àÔTWö}À®{¾—†åÚÞ+ü"'. ©«/íǺzxß ËÞd¦ê}¬ÑûVò¾ ˜¥¶æ}°ä}ƒ+{_pi&ë‹û.`ç{üJA†Xyññ;£ŽH‡Ïá™#Œ³KßS™TÃðj½zœ²a· Ö-Q¿ŸB,%>eõOXñëü.ýÇÔJxó¸Ü‡ÇîÛçÉ +L¢ž¼1àt~„ú·» U(Â¥­V¡ˆJÉóÝ·˜èŸis‹Ï´cîÀfÊÝpXÏkØwÚÕ¦k&E¸ÎbÊ!\ .qÂ4ó<$3„Ùqµ’1æûlL{ÛÁ>ÿp”‡?3k¢áí><]`Ì7«Ùþu± +>-ÃÆÃnùu½EsöáÓ>'#>þõ•ãÎõ>”Þnî¾…­Õr³ÜÍË“êr÷-waV3¿ó‚ù–ÄhBKÀ:ˆCú4“Ãaþ>µÞ­7épð÷íæ›UÜäÑ7:Á9Azߘð_`¡¸ª”Ž‰±$’ŠèÝ;Ji(aÆڧĚøù"IT‡fã9ÞÅ;‡÷)Q,åú¬òκûÕ¥at¡E![å¬=E P‚ò‡À°vxºþ€eÐ0|îÐÌo1ÔTß­Læ×y<†=ö>uCÜ¡Öp¶¿N•Æ9$ Ò½ïáÓŽXX’œtô¥ø¸<¬.L/”¦Nxú´Äi;–]àŽƒç˜G„{óXXm¼ñ°õÁOwaâ…Þc¸}HÂZJ©ÿ‰†õÌcuy¦òÁ§ÃŸ·ò'üãwõ[»ßaqçÅæŽBTés»°çã6näîñÞÆÀ‹ò1ÎpUÄë„sxfzÎmŠs/B´ü<6ýxãNœuÜ™úu¹ï/ÇÊÂŵbÅS"Û:Ÿ5uÀaŒ½ßÑóAëZ©\¥¿r€‰öc~€éÖ„!Ÿ›0ôñ„aËùBÀõd6žâûç1 ÏCˆNêÛÐ/ØyÞ™íz±\Ðã\)¢ñUŒ¬[ÌgM-BÆm>Ü­÷‡}ؽʼnù°¾÷+8Tö²?~±—áÎU¯ßpÁÍIMñÒµ+ëÞ—¨‰=h¡¿èátŠî×ÿñ‰k±”×b}ØÞ?ÌwË<­àJŽ5>_f,aå(óç"û0.ˆZÙ‡–}ˆ±“µÔCXb@/?—yhÿ_3¹QÄjÞÊ<ä°ê‰—˜_ŸxXœ¯ÃV‹>%øýò»4#ß‘µš‘ò‹ftJ;ìÓ†xóÖjBJ;¬6á<ë°zc×úª¿ÈãéT3#…ìhÀŠvÖaQSÁÖàJ_g”\ÕŒ”.XãàiaÅŒ”ëüÛþ4º`¥ñРJ)GT¦j|¬ßæ+<ÛÉx…·o¶m¼ÒD +õLÖaQSã\Ùø’«j|¬ÑøV2¾Àª>¥ìƒ•ŒoPeãK*W5¾ ÖUiÍñ +ÝN,çRjì3I‡cE=|¯SeÝ ªj*J¨ÑöT’½€²µg“] ’ëu¦¬zÁTϼêuÝ«ÐY†ŸnUsP¸Äðç’ ‹šz¸Þàʲ\u×{P²·¨bJ-]µ½ VÒ½A•PJªóÈì{¬ëžÚ™ƒ¯ÚÂs(¬Ås™†EU=Œo€eã °jÒU¬QùVR¾À¼ö¾Wr¾•/±D]ú.\×=ËSŒÙ¶ôŒdÕÈ4,ªê!},K_€UsOº`Ò·°’ô%¯=‚ïÕ¤o`eéK,Y—¾ ×U߶2üÕ}íÇr1ójÕ¼}6Ó°¨«ƒõ-²d}IVµ¾ V¶¾‰3OŽÆyíÖµXԾŕ2OŽ¹Tõëš>`W½Âanm¨h{o-áŽ=›iXÔÕÃûYö¾ «f\uÁ½oa%ïË€I*jÞwKÞ7¸²÷G\ªz'Ûìª9̘tÛ{£ýÿTò\¦aQWïdÙû‚ÌV½ï5zßÂJÞ—3Õ_õKÞ7¸²÷%×… Èì}°žó½&LéV¦¡…+œ‹IE$5—ò C‰T fNÙð8fêß>Ëåƒ]¨÷-¦;¬}~›O# µÇL»1ææZáƒ_„å,r‚C_hÕÈ'¤øsÂäÅ|D!¬‰ñ]qð¿Ä[rÀendstream +endobj +2025 0 obj << +/Type /Page +/Contents 2026 0 R +/Resources 2024 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2016 0 R +/Annots [ 2028 0 R 2029 0 R 2030 0 R 2031 0 R 2032 0 R ] +>> endobj +2028 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [225.038 571.892 239.76 582.741] +/Subtype /Link +/A << /S /GoTo /D (figure.8.1) >> +>> endobj +2029 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [356.712 548.58 372.261 561.531] +/Subtype /Link +/A << /S /GoTo /D (figure.8.1) >> +>> endobj +2030 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [104.665 310.134 119.388 320.982] +/Subtype /Link +/A << /S /GoTo /D (figure.8.6) >> +>> endobj +2031 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [222.436 298.179 237.159 309.027] +/Subtype /Link +/A << /S /GoTo /D (figure.8.4) >> +>> endobj +2032 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [356.712 274.866 372.261 287.818] +/Subtype /Link +/A << /S /GoTo /D (figure.8.4) >> +>> endobj +2027 0 obj << +/D [2025 0 R /XYZ 63.034 602.788 null] +>> endobj +945 0 obj << +/D [2025 0 R /XYZ 160.854 431.076 null] +>> endobj +442 0 obj << +/D [2025 0 R /XYZ 63.034 391.288 null] +>> endobj +946 0 obj << +/D [2025 0 R /XYZ 137.743 157.362 null] +>> endobj +2024 0 obj << +/Font << /F54 1021 0 R /F11 674 0 R /F8 580 0 R /F57 1167 0 R /F60 1208 0 R /F56 1170 0 R /F47 596 0 R /F10 1027 0 R /F13 1055 0 R /F7 586 0 R /F14 1012 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2035 0 obj << +/Length 2865 +/Filter /FlateDecode +>> +stream +xÚÍZ[oÇ~ׯà[W@8™ëÎL‹<¸…Ü*@ì4q(rE-LrereÙùõ=—™½hW¶ m,À»œË™s?ßR-$ü©ET"j·(¥>„Åz&[˜ùç™J+–iÉr°æïWgß¾ ‹(biW7©\m~-T”ç¿]}ÿíKgûu*HáRÆ%ÿø׋¯.ÎUñÓùÒ[q¾ôÞÿù_¿ºxuuùâ<˜âêòõ+$vvqÕ±e¥)?ɹ±†Ž[ªÙyD 2eG+¯´"µ€uÆá²wg¿þ&XöýŒÅ°x€w)TŒ‹ý™ŽNDÓçÝÙÏgÿîYRÊ áÅ ;;eºr@K%iI+á˸p¾ö#éêÅT²mŽu ÏÛ}R­ï7Y 'mÒìÏ»zS¶ ÖèŠ_`G}Øœ/UÑœS<ðæRö›½ÞxóÛ)q'd™­¶\!¥ãG$n 4߇;´_ѪùÑE[¯Úº9$*¹¢Êd2bzÊR«‚kÐ’ѱà—<îîÿo§4µAõ4—Ö•¸E‡Uá®muœJl¼ˆJ§}«)] ®‘§¿™nGß˧^OwmüônýHÛƒÝÔd2k`¸É~…ÌgúíŒ"•Œ"€» m9 _ß·¬É-`X–cË ,Eé\š^O·—Âuâ~7Ý FÕa¬jm$¡WµAÆ^ŸÃPÏ1ãœA—XöäžA£FÉmF1¨ßÒ<ÒLi&ëí´rª: à}^¢p +m:¹öM3ã˦c¢ž3Öùˆ›c³Ÿ¡€\ès¸¦Ê~bÍR”Ý7ÒÍhpéJÄõ4¥rýY‚Ë¥ÜUÏx;8;Þ-ù24»5Z”¥¤†¡I ݺr˜á&Å0øÕz5zÈ9æ¤5ÀKéßý1ÜõÊáàÃ؈Ã#¬Þ=_p†šO-qÑ‹B«ÈOœÚ是Ëc€ÝLµöBÙìÛ9lãÕ¨ØCÉ)-¤ärš¦´0ÿ£(Æ÷:ñ+Jù˜b;—ç:–åLžö3"×sÒ+û|™g)h©&~4ÆQ}ËZl§ýȆ&ᆟªöþ8ã*Ä~Ùq:¸Ê.³Úƒhöëp_y ìl7§À`q‘‰ì\#š×ä%È÷Ëz{f¥à6%IÅBá†. Æ¡QÂÖŠ[ÐÜ+!r"µJÐ`ô'hCÐzd†N¸®Q¢& Ž¼ø¡IŠÍ!·%ФÄa¯4Ô¬ñPi¼Y $¨Cc;j&ÂÿÉÎÝD¨gÑÏ*L–$ŽñÐ?B1¢îÕ²Gñe·:çxmP‰pŠDÀ÷»cç=j®¹?ñøªkWo™oL¨‰Wà4¡³4½GߟZþ„ûV8òÿKÇ­øqb]VëÎ!ÞnWd´·zÓÑZê¢ã”ú€liœ,n2ω48fSèLMî!QHõ¤Å!X‚ïª8J„UÜûI9ø¾«nZ>£N\d5âl…-´öÜBcïŠa Ýõ/¸¦ÞUyG}â7RN‘òpäX½C'¯Õ)áNK×"C t†ó­€úMv¦ArI°Ùáš5|ä @Ëô<Ñ!«#‡Ì‰IÕ-O®Awô’diGn¾Û}äÙ©aƼIp9{ºS[ßá£^ë-ùÛá„šÒ¶¸bÙPt™„f8Ñ{èrÝ°w0pßVŽÍvuMŽ35{P…Ô¸Æ( µ)B®ã„ Ià¤*‡5fàž¸XöKÈ~f(ˆ 2¿Mˆ”îî»”œÛÏÕé9û¥úÊý_{¾”}Ç2š¤‚¥&€8ˆÐ1@ý +ðM'øfŶç¬~ì«Êù*úÍ 1ïÒЦަF?I~ ºÃçÐOT>× _åRºî±êÊiPn¹=X-{8©‚Ùcz]ñì©O¬„óPFlœriœ|Ѽ優Vë„‘$->1~[mxB@£"÷ &N8§i0œ§ò¶ ‡zÍr!FYPÑ%K¼´Ú´ëé5iÑByÄÚ€ €e_µ·,Ȇ!0­?æ• ![ëŽz¾!ñ°¯¢‹¤£Â ŒyIÿõaK5ÚÇ+$’A¼±C3Ãg53é‹7‘ÉšYlŸƒ¹¼›/ƒàE…B|‡€vÀrß5@ôá÷hF†b[ª#ê×HŸ@Œžð Ãì"ðùìºÉ%‡ö$Y¤S;Ò L+cqè;ÁÔ90áDcØiÑÉ«Ã#ˆ³z= #±sÏm¹7éRh;ÆM³VSÂ/1oZjá• >O]“ûlo©¢ìR{ÍËŠÑUuL_A2K·(àJÆ 5ÙxɘO)튰ÀuOm¶ñ.]-ãWªÈ&˜$eúfõ¼wÛ‰à€žùñ‡äväSHÛ–¼…D—ëbݤ%(--¥LDRu Æ}äùQ3•]'º˜-uî“xò +\ƒÉŸ+~\w +¬x5ÑœI&¸Ç©œuúž×:LjõÛ—6x*öÈÌ&þÊ –ÅKüeAžêšžU'Õ®úóädÑ쓤6ú1Ðl®B›)ˆ€©' b|³x©|N¿éžì´ŒÖÜov×ÈrŸ}}Ê3„HTãË¿QE4ª¿ÄûhTfºÂAu¯XwûÔÇ’·¥ #®s>KUo½Î)]ô˜‹…˜¸ÄÚƒuGC8ðÕƒëÓîb` |¿Î¦¼7‡· 1Xõ5 +-…Ç$Ú/¡¬½Å¬u`&ŽI½464^'&'êiæL¼Ä'M´ûF³ío: ËEüøž«ÿúḯ6õ*}ÄF¿‡PqHr†£ +º¹_ÓÅ|èüÜ~–géÓî„ê~R°ºiG× rT)>òЮdX8|‰¡i‰ì.Oñ«ºn¿û„ßpþIçRêl“kìtKDOœ»GÍ?#’ÃÉÿ½„Åwendstream +endobj +2034 0 obj << +/Type /Page +/Contents 2035 0 R +/Resources 2033 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2016 0 R +>> endobj +2036 0 obj << +/D [2034 0 R /XYZ 91.925 602.788 null] +>> endobj +947 0 obj << +/D [2034 0 R /XYZ 206.651 411.889 null] +>> endobj +446 0 obj << +/D [2034 0 R /XYZ 91.925 208.586 null] +>> endobj +2033 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F23 1211 0 R /F59 1176 0 R /F20 1030 0 R /F9 1581 0 R /F26 1460 0 R /F11 674 0 R /F10 1027 0 R /F7 586 0 R /F14 1012 0 R /F47 596 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2039 0 obj << +/Length 3284 +/Filter /FlateDecode +>> +stream +xÚíZK“Û6¾Ï¯Ðe«¨ÝÁ› «R)gó(§b;ëÝÚª8ŽÄ™Q¢ÇD¢2ã¿Ýh€ÒŒ=ÞÛ–‰F£ÑèþЦ˜qø‰™UŒ+=³\²Â¹ÙbsÁg7ÐóÃ…y Éšo./¾üÞèYÉJ«f—×C6—Ë_2Ç›çEQd¯ß~;Ù¿~zùnž+¥³ïàé??¿}ƒÿo._½œ;•]¾zûfþëå_~ï:®J:VØÄ@†¢HqñÝe+›æ–Úœ?ÒŒäO&* +Vnf +Íœ´~¶ËÛˆw˜çRÚìæXíá©ÚΥ˚ºžç¡ËdÍmÕP‹z?ÐÔHŒ£7ب—ÐZUøã{âv\7ÝÈ0íüÙî¸ÅA0Ò÷_%³pR™HvBZÎJX%éì=—:ЈŽFpf„ $Ë1ІQOç° þbfA‹»5S@­˜ÆSÈñšÁyGòžs>2€‚9^†YäX + +•}!\Ú« +zÿ6ÏmæÍæT !9Ë…€eÒä°u‘+£³<@Cyí;Ü|ÛnnÅqšžn³ó„Ë#ô¬wº’†ñÓb• ½ Õb»þ;rû@“É$YÕ ½ÜmI$ß¾&QšÛð¢ZßìPäUs-ï@=wð¼¯=·:hX8™¬W‘P’9Ð éÈÉA*äVÝ5õ=Ye¯‡?‘M½e~¬€MÑ€B2á„ù§º†¡»=Ê'DÕû\aµ¦W=}V{zY?Ü‘3lƒÔàC¸¾Ý6ðãÊÚ+!ÃVB/9RMoïI1M‡Òßý¾BÝäAq‘ÜE&èÎ aÐ2ª­¹ÝàƒlÇCCOí´øpq LïÞs¡QêCP©a( ÎºF;ØòÀ ×ëHµFµâ¬÷ôÆk^Ðè½óêŒæâa©Ìš±*YPFC½š0T!"*4»èK:Šb¢Pad\5üm뛪Y‘…ЛûÛÖÆo æZÄ+2o »Íî}Cˆg³ê0áT&´¢ïU} ãE‚‚b´œ„½ç†‹ñ,I¾ª¦XHÝMb"Õ!¡b€cHõ[ á‰dÊÚ¾Öû סû· 3Ì´›W=h¼ i™,Eùn|Ö$ëA«ä`•¸+·d?¸KÎ ìÊú1Dü?¡ÄB±R¹G´X¤ZôØâAkçmij!%œâ$¨‡’©²ì90º–‚Xc±ó¼ÑÛ„~N‚Ó®ÐCnˆ„ðÉuàŽ´F@»ò.ý7P£H8ºŽY·h j’ÈR=`œõðõ×SzjO»°9¦”Ù«kš{ëÀ7GòÅó#ˆY?¬Ía°Rœ~B&Qªžò:œÃÍD5þ耠æ@Þ=‚–§ó ÿõ~ï០#¸8jˆÀätG‘€!‡Ø¬(Ê”bH‰á€˜‚? ûãâ—_ùl t?^p°7»‡6‡¥•³Í…´%€ Ïë‹^ü£ ‡× ]XæÊ.äµ %x«ßPw3 |¤ ç{‰hŒgžM +¿…¦èi®õæÍÝPÂQMËóÑE:ub Wž0£E$ò‹Íþ"à¨mÐìaÛ‚ã¥ËÖh…#Øx… :êp^°×ÒËW[ïpGÖyB€äZgFÌx™P˜| n¤cð÷øCî`Nè&°Ê;^ãý5šYÀÊ@â$=:-Oh5œ61P­&”Æ\ëº_Œ‡fÕàÜMGÃQ&£vªírbzØ…ëƒaoOJG>”lÉÛcs‡ÛqœØˆÍ{œÎg™mÅax™Ê«åèäMÇ—¬èn¨[*Ðæ`^[ÌÊÇþHò0¥ŒTòŽÆ{„€°E:’˜“DÝMmQÑñ(ïY!‚Ö”²|&xé¸Æ‰¸F ,‚sæÈ h4‚ù+<Í,õX‹±ÜWÓuõ¬b€ŸG +qœAÄÅ{–;«<áåÕѳq§˜.MOoH´ïà ,²&q¥ÑŽ÷usÜo»Úê„ÐÉEÂ×£¥Jƒ8k?f­Nž€åÈk¼ØTc! ëïý¿ç‚›ìåOãe +–¦{‘å0îZèžÛ˧ZÐÕ‹Ã*ÄC§,¨E¼¯Î»ø9 ²åL#z>ЉUžðš¶ ˆf"ÍG[„J!?.¢Œ*Vdbòhpzvö4Øñ1žˆuì4Ÿ˜I@€dž>Swã"yGAC‹íb +x¥TŸ¼‹‰Ã†•åwg¹“Ì b¯`ùˆ‚ÆË6^âOP°Ï¢›œPµ76“Üä aK×  9¡ò7$*¤Ì~m +\M«ìï˜þ6ó6Eè +°‡-n/§NÞN²§½[cz:ã½Î@ÝB†ØÛs &$­}uÛ4|ïc½]üOl)!ÿ ™IEŠÝ׋ãþ°Úm#<¢s—¶gd*ÀãjèNœ + (¢Ï4aÊ<.Ç!™„ ©’Þ¾›˜ Z¥|ât”ß)­i­2û–½ƒwŒÚ µõ1ÈåÓ“päuQ`Uá¢*Ð>Î&?5tÏŽÅǃRùÑà¤EUƒt´=J\7ŒÃæ+S@žS<ë ‹¼ò„Ù(tTú¤l'¤¬Î§`(iz=Ô“¢Ñ²ÓÏ"gàu^Nmdž=9¯+¼ ¥kÈ5•=«ÔÁAëõÁÛ"0Ãë±Ô‡õÿ ÷“ ÷0 +{KÈËK8;¬éYÖ9å-«‘-HÈQ-l2Qøëw=´Q85¹ø "Fg$Roœt"Ñ„±y¢R’IøVžn›ÃaáôdqSl¹_0L´±ì%F Z;_µÚc ú50|s«m‘Gë¢_èÃÂ&’öJj"»Þí»je(ÃY5˜"ÇõÁB¯B¿È +5ߌaO _W–Ö2!Üóì;ðÊf#W¤ã¬è‹Ž¡Ìzˆ‚¼Ð:Qb6à":âesjçXM%†’,óB6ð”Àƒ›S‘}à•'Ì(ð0éY,‘†ji¾mœ/iùl5&RhYƹÏ"räuVdŒß9„©ÈËÕ·½þ‚ÿóÑýû 'dªþ³³’YW†(C˜zâF"öï_PÆ{µ*2&=«qúY¹g”'œ&ŠQ§Ûn¶åkȘð›šÏ!Säu^,Ÿ ˆžXSIÚb()¸ TÇÓGI}<æ -Éá’MÊ"‰¿÷¶…„în‚‹bò­›#z›ìË¿BLå¿*EÐÅVü¯èïp[ã·_ؼ>nCB#|ÌÒÐÓ`$ Œ¸OD55¶p +UÏ.t¾Þmýi°ÿ0)b º„ä6 Ò¼ì‹r`XOл_ÙV>Ä`¿79 +^í]›N"Ý-CÏ=}6KòX›«z¹¬ƒ\«í™u£Ð>'iuxul"}T$LÛDnÕzÞâO~7šjñ{hÞU‹zRBÑ—ð:ê{»ƒ]Ư9ña=œ*øX–éÏÔø#8ô6«M=XØëÓŠÛ×aWÉÔË©*w0äí¸œüïõü·Iç óIendstream +endobj +2038 0 obj << +/Type /Page +/Contents 2039 0 R +/Resources 2037 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2016 0 R +>> endobj +2040 0 obj << +/D [2038 0 R /XYZ 63.034 602.788 null] +>> endobj +948 0 obj << +/D [2038 0 R /XYZ 208.812 316.329 null] +>> endobj +2037 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F14 1012 0 R /F11 674 0 R /F7 586 0 R /F13 1055 0 R /F10 1027 0 R /F45 589 0 R /F48 601 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F23 1211 0 R /F64 1214 0 R /F26 1460 0 R /F20 1030 0 R /F12 1578 0 R /F58 1173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2043 0 obj << +/Length 893 +/Filter /FlateDecode +>> +stream +xÚ½Wmo›0þÞ_Á¾T‚_uÝ”miÖ­K£ŠM©º*Ê’!5$ÒîCüL8 [ªªª*ßÙ>?Ï=Ç4[ü!ÍC–‡™Æml9®«MG¶6–Þ\Ì’Ïÿ¨}îjžåq¢ù³ú.þôVG6îü/ísF·~ȵ-e;g.?w~×@úµaBu×2LÇqôîp &¯úݾÑ1\¢ûWýl³£®_„E ³8á‘KŸÐ™«¹"&^Š9Ôr1ßfcl˜Ù¶ÞjgçŠÝLd[óÀL 1‡éa”&ÃL_¬FÁŸUºXNóß?mf‹¹ÂÞÊ®÷N +÷ª‰éÃý¦Á~Ó8)C¤€¾·½)v-L)€?{ ª1Ç¥»NãSå‰\9ëÀò6D, Z߯¸Ì­ØûW«¥@XOÂ4|€™=L¸2ºÙøù. çQ>qv–ߣ~·'᪃(9À‘ÕÃ=äXdI¤ë8*Îùѹ¬"”+Â&öîÑı¸øŸ> endobj +2044 0 obj << +/D [2042 0 R /XYZ 91.925 602.788 null] +>> endobj +2041 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2047 0 obj << +/Length 2091 +/Filter /FlateDecode +>> +stream +xÚ­XmÛFþî_áû&±¢yÑÌ×àÐ"i°E›äÒ-CZ,KÞÕŶ¶’\oüø#‡Ô›%»= X`GR|{HGbÁŸXFJ/M$CëÜr³_DË{ ¼^æX3ËzÀóííâùw±^&abÔòv{.æ6û¸P…«µµ6øñíË•~þá›÷«µR:x¿>¼{û×7·7߬œ +noÞ¾Yýzûýóï\/UIZcÁ (…‹W·m:2¡ÕñUó[ž©ýné@“Ø[:i¼ºÈhTBÖ" +“8áÝxµ–FÆÁó¯VëÖbKë¡lžñNÍkCkJËñå{zØ—Ùq·Z‹àXÿ‹v¾z>«Ê°ªVÅ/Qe=¿xAk›‚"ïu%.t±âÈm™>pxÍ c…vµÖ2Š‚N üxWåÙq“ßõüŒf¼ój=õktåkzÿœuÄM T64`x?c 3Œ%sâmt’æ!DüXá)³Œ¼·¦óúmh·:?·Mk†vŸ7ev D+f@„€u§ÿ,ž-²üóËZ3¶­ðÆ%ä%¤¹× o9ÈNÇvJ(Ncã Ê›cuè€ÏŸß]ï3šûúóSþ¯ÿyÖ‹ÆÍ&ƒUÿ2$¡1“óà1õZ…±2Wœ¶QGÉ™)š}n§ˆ«SÑ>Eþ>?äæ{±¡oÓ +Æ‘ñEÒ%G¯É7‡â·c~5?♸×w}äσsÐMô˱6SáY;rJ­®b†± 7éòB‡‰†óEÀŽŒ=Û ÄAÚ*3ƒ3"Ç€W´Ó”´~^IG„ü‘)ˆ‘´"Hw÷PÑQóÿ÷ÈS¥€ßfb1Ø*WÒ'VY7iÂ:‰¿DB_…€¿ë¦UZ²¸ê;0»tD,X-،ج;Gă­òÿæª"8&+™ÐCë÷}Ú ìßÙ_¤í1.ÈŽ@Øá¿šðZàËHhàÖ*n¶HÑKñÒŸÓK+;Þ ¶©è¥r0edÇPÚyÐÛdì]m<9g8TÖùØûGÎhl½¬=ÑRZZ¯pÜ¥nFÔˆ³<ä´¬)RtÛ— ÒOhêåœð‰ÄAlÅ^ùXÕÌ]n[ 9=|JÛ$DŸÆ­·4=¼ž¤¹ j«#§ƒ[”¨µõ‘ðÎïÙ*­þ@’cb¤U‘~BCgô + -,¹Ù?NUË$4*aÌJÔ™Öµod öþg¤­i-šD©…O߻ҫ(;¼íøR¹1/¶ƒæ=µMÈP:ÉäôM%¬•„ŽdÆÉ´ü0禒jà¦L´/ +°²¸ïò;C‚âêFŽOu¹;22‰9ä¾²xgÖ1…ÆjV7µ&‰2îñÖJÞ^%VK*ö´sj±Øíh£Ê7þøAõ”Ål4œ:ŠE-ršC~Â1[¡X—ˆ ¾„“7—SZ8Ý(Ôß8°Suµ½ +,ôšgZ™ï1Fs™˜xZ›DG`> endobj +2048 0 obj << +/D [2046 0 R /XYZ 63.034 602.788 null] +>> endobj +2049 0 obj << +/D [2046 0 R /XYZ 63.034 285.965 null] +>> endobj +2050 0 obj << +/D [2046 0 R /XYZ 63.034 256.021 null] +>> endobj +2051 0 obj << +/D [2046 0 R /XYZ 63.034 236.096 null] +>> endobj +450 0 obj << +/D [2046 0 R /XYZ 63.034 158.45 null] +>> endobj +2045 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R /F11 674 0 R /F14 1012 0 R /F47 596 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2055 0 obj << +/Length 2604 +/Filter /FlateDecode +>> +stream +xÚÍZ[o[Ç~ׯà#‰ölö~q“Ža· +R;¤@œZ¤T¢)ó«ùõÙËឳ˛É$…‰:Ü3;;—o¾Ù]6 ðÃŽÇÕ@SNŒµƒÛÇ+:¸‡oþvÅâˆ&i²1ßÞ\}õÆqZ nîúRn&?™“£_n¾ûê’ÛqÌRbJÆ!¯þþò‡›×#6üqÔ!‡–ŒcÌðõ¿~€‡ïÞ¾~{sýrdÅðæúÝ[võú¦UK +E´Ð{5RøéVýžiM¬‘ð9û²’F5Œ'q觫Ÿ¡ƒ ýîŠÂC;ø Ÿ)aÎ ¯„„iÿ¸zõÏÒ–ÊŠ$ÍÛRé#ioLCe1œ{K½|ƒÜ/–³5üý÷c4¬Ù¾#%TF»®ú¶bÒÊ]+òð³¢¾‚$«É„…%dê0E g¼³†Ç§B-­ˆ²ê2jEYûÕÒ–m;jMŸŸÖ Àá$Ú5ó…¤Ä‚¿‚]Ii÷†1F4XƒQâTˆüëù¨aç þ^—"¹"¶Mˆx©tÍ6º ¢ÒT>"ì ´Úå² «É„QǤ&ÒêvBÔn6q—Ö i>˜PãâƳkyüúÏå똹éëåÛ`É@ãù¤2=dKÓßV¼â,aLG¯8?ìÝfÜRq‰qºëå|>M´JAðßøºËõ•i5@óò}æ7qÄ}øšC‚gl°–e±4¨ú\3‰9ší˜TÑGˆ\pQÅF¡µÑSÍEšëVkÅú‘JA&³Ÿ—€½­´°'Äa¬!_@¾q(&AñÿÔœ¡Ûàù@%­J0&¹ó‚B'§t-®™ÚÚ§"Gà$È­¸LÎEÏÀƒÑÓ‚E %-À~É­ò3øØ gàíùjö+ †NË… IçåÊY±rõ˜2?Îz­è ±ÐþÉ_ÓŽ¸öÇ?ù:=aš0áþ/u|QzŸA6ì„pÀ”°X°áì®’¬‚PH‹½A½EYN‡“Þ71Ò GuÅVàF<Œì5$¨Mqÿ5žÕ5……´G«$tÐIkÖ©–²§SÚS +Ò‰K)•˜…bˈV[Jõ´b5 <’”]Z-©’ZPM׺§–T¿›ZLP±S/Ó7WÜU H*¥öâ±¥¸ ŠØ*;ŠÙ~tÅÁÇ+¦;dQbüÂL*ैîzîÉùlŒT}öë4ÌÇËj¯`2&³rá}ï­¢ Ð#ÊÓåsöè<{̘@…;:†€Ua÷ãΣŽAT“É*™#Tn+U;_ÆWhJWø8žÃŒ—Ëñˆ[ Sþñ|ŒdfZá1¨€NDå åÄI‘±E/o3NÃçÒ@}>¹„…’¬½&Jû&µc"o0Á:XLP[?¾a¶DëJ\ +èu‹«A¼Œqù +Cj s=Ün04ÇëhßJN+d¨€³{'´PŽóYN?á \ÎrÍ·X†ßâÌËå4ôB,¬U@ÃÎÞÜ®ñ­E ŒeɼRX[B¡Š/èkØ tŒ+-ßÑC&QÍV–÷d®Žà`bèlão‘BB¦øV„¦…ŽÐ[q(`—Ð1ŠÚ«£t¾ýÉt\M×›JÀ‘ff,7n`6†Æ÷Jâ!š““Ó-ÖYO逄{v„Ú!Gö*]Çü¢'ôFö´ÞÊ‹"Ë Gê8Ý{oÖ<ÂçñGLµøß"Öî¨×øá!Ä`û2‡´—Ûù)-=¥ˆiÉ*UB#ùFz$ý&˜çmÇæ´(r¬©ùnc1!Û!Gäô)葯 +â× ¸ÇŒœ/?¡2õ!‰ÛÕÍž«^”2í›Ü-!}è6&•$¢~ƒmÛ®kðëþ^–Îì2\ζ±äçž,BD3 <\)Ñ2õñcÕ:+ÍQÎûœÉÛ!{¢_Ü0_ Kã”]+'ìÌHˆcž'c·^pOÚÚ1uö‘ïñÔˆ¶ØB> ã ;Ï)ìIV“ +*;s¸ "Û }iÿ´¬²b+eQÂEeºDчÿ²ÐáG„Ž¨†Nú fên×A Ò Œó9€É «h•£RÂ…Û&:Zå8d=Xßò³Â$Éj2aE˜p ©à#ÙÍR‹£ éT5x15ê~ ­M¨{š?®jjÝþÌãa½Ø\Ñ\„¦ñ”>?Ën=¡íìøª¬W'423×Ivw^Ø–bTþ¹TÛ‹u§ù£f{.}«‰êd׺¾ks]iÅ2µÅQB­É'ÚUjÄ ÑþÐ ûO¥õ™d5™°C˜#XFãÕÚx^¦3XºÅ¿ 7|›2¿¼Ú”!Ñ>ùÛE_gÉ€°TõœzÙ¹3 +´¨Œ‰ ¢×œ,QV“ «°žÐí„ç¤7¼»ý+®TĶ-ñÒwÓÓUeGYA{Bó–Îê`åÎ`¾›Ó÷ëñ26ÔïýFïÄoãÝäýi6ð÷&í©U¶vh>~&µj V»ZDZ”_òcØðãl};_WfÃ^Šž­‡­‡fó"î*Ó1"”>{q¶;ݽƒ~VlR/VP¡¥:â¬8éöüälVi—¶W®ñò=ºR³ôÏSå¾ßÑ`—6ÌöÑïäV\$@œ=ÕE¸¡ +dÕt t&9~ráÑ ä(*;ƒ8°ÎU°0¥Þfg C^isü=€=r„’«»Èáѽ³×°œØÊ_×΀-¼ckêèËú&œTÑHEÛ½²D¥&T°š$V—š¦i=Þ*Y¤;z‹övÌ7µ¢¼=««Є‹#9‡½G$Läzµž>¥sŸ«gñ¨¯j`R!Ðèv{f'1Ü;>bž+G{@ôdÞ¨NšªýM‰Å+!È^tg)âÀRvyÇíðÎwlr<£ÐÊ0^u™<ä²}I®÷Ë>¸•^»ï£3PNTo¢õrðÕ"û±xLºñÇc“âé4l>}Ž‡eOãûp˜ÀÂÝ´Ê--f$4üg^NuÚE¤;èßê}ZfÃ~Bƒ—•‘µ«ÀiL‚+~3»ßøãA¼f)†`²P¤¾|È.µú;ÀÅÝU@8" †dSâ²Îº\6ÊÚ§?·ŽèÛsý+§ŽÍÑ)HÚ§‘ xxì:¥[«G“ò´Q ¹\»Â“â€*UN˜Úà®,A«7§ÓÅêÎÍéÿÜÃdŽendstream +endobj +2054 0 obj << +/Type /Page +/Contents 2055 0 R +/Resources 2053 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2052 0 R +>> endobj +2056 0 obj << +/D [2054 0 R /XYZ 91.925 602.788 null] +>> endobj +949 0 obj << +/D [2054 0 R /XYZ 233.945 158.529 null] +>> endobj +2053 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F23 1211 0 R /F61 2059 0 R /F64 1214 0 R /F20 1030 0 R /F9 1581 0 R /F26 1460 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2062 0 obj << +/Length 2381 +/Filter /FlateDecode +>> +stream +xÚåZYs#·~ׯà[†• ŒÆÄv•|¬KN¬u6J%)Û”8’XæejióëÓ8fÃy%oªRª‡ Ñç×Ý`DñFŠÊÅHQF´1£›ÅÝá›oÎ Ž(ã2óÅÕÙ'o¤Yb]Ýî’¹šþPÂɸÔZß½ýj Åßÿrþn\r.Š¯ñÛ?¿{é>/¯.ÎdžWo/Ç?]}ûÉÓQåÌ­4²á‚•nÄÙ×W-o‚*¢…<È>œhÀȾC¬•ŒR¢7bw¤ Öàxk‰–nÜ/g?üDGS÷í%ÜšÑ#>#¤·8cV"ï&~ŸŸýíì¯OFJ娔FàÄN£j„Ü(åd· —ã#©QB°^çsTØÝj3«ñó~Ô%u7G 5*¢ºv•‚ ¶%yTN9È +ÐÐ*bA„„’0Ëz2,Ö¶%JÉ—a+Ò:Ì:«AS§lUOëz±rîYL£^[ «¢^¤’†!JtC8A[Æ7cÉŠÚh9.¡¨gËmå~Éæ–Pf:Â@†F-AjÂ5ÇJ¬ ü^xÒë­_`H—Ib"]ŒB!UNóÜCa$•sÕ\GÉ=Š¤ÊŽÖÀ£A‘ø‡8ÖfË1³Š¦c Õ6 +0ÉX„Ãâë? §K¢xóúz8£5Ú™,§™å5±`Zsmb =“¼ÝÖkgŽmÆœ‹ñÞØc°ž"J6þõ>N·)¿‚µNÂ`8!‰50y^3Äbµ ÚÒ ÐE ¬>åT¢q²ãÜ|>ŒA&Êèˆ!Ø´:ZçL¤X3°ë}%:½Så jGmèˆ0z$9ÃOr +#(#Ïx€%BŠM"èP|¢µbÍcƵå[D +ŠÏ?ϸ O§7Grªñ…¾¡œNæG +bHÃKÁŽiûêqØ ýX qpDi[™õNƒå¿9â߆Hšs} „fõÍ:“EPÍB©Óõ×£Ó¯÷l»ØïQk¨¶‚8BP8Íqž¯}=“ÁN XeáY|÷i©-ЦÏ{>1!ßÚÚ6 KÎX‰½wœžãqMí¡iù0û˼¨†"#¼ÓaFëa ŽÊ‚©gvÞ ßa,•F¨=b©…ë5¦ž=bÚÓË8‘‘Ñd\hˆ‡‹ †c‰Ëºd¹OüÔß?;\Ç0‹ê¼ÛxS†ÀmûáþÙß ƒ=Æ|ô>o·®µžxpžº +Ïk@ÕævµY´É!ÂÃ/ÛÉf¶¼‹$\ +ê¦{¶ïæUøiá–ÜÎk÷ëzîþßLü—Õ2 Í*›Ä솋U…½5oðrö”5¬ío7«È~´`€¹!QŠ`/»•^WõÌXŠ3\0/½ÿÌxšñ½ÁÿXzÕ›,™É¯$ì#Iò[gY@lb\æmšS¬4Ô)”(ï@‘f< £ }7l§qœ¯¼.Ü¡tõu.»¹ÎñKë·zÊ௭ŒWqûl‡ ˜m•è9Ļꡪ;(j0õ1Ág(b£8¬¼gV\{S"Í{GB>5¬•+m^|ÅÐ%á¿\Ú7„Yq|EÕoVA[ß0• ˆí_]Æ<¸Xmb.{lÓ›³”)cþ›W·Î’~³Q_ÞW7îíÏ1¿bó³7U›§ÛIL¸¨½Hd5-¶K5O~‡Ó{îj‰y?ë¬Gð¸Á™«J°0¦Ffë$µ§NŠ½ ;µ³Œžæ«Ñܾ ¶ˆ–·¶ÝÓ`ú5³v 43[`Í%Û-‡½E@ã9] óŒ"àº1מpJ6zÂú©ÔÜBNêí«m¦x‰¶:JðÿÜVGð#*8Úcþª3lѹ/™æPlýv¶éYWþ„sºÔ=DpÙlË#‰áj(û;]ÄeÚˆžnr²ac%7‰ïÅj|‰³ZuE9ÍfФ›®†ìÐ7¿UÁ5ËXì«Ñ9io^ÍÏŸ_Ô™¢ŽŠ:±)ÓrÅœ%JùbÎÆÒ¯§ö‘ñ[WøXÒ¨Ý +_dŽµP,£á™‡(§–ô©]Ü.€Ò}†d, ¾œW“M6Ë }\!œtÐè4½ÍZD´@Ü%h«Þ¼¿ð¾›î2$Zj›ÍÄUËïÇFÆj¹†9µm©cFRQïªz»YæO°…Ç»aåï‡Å‰]X†1pÊa±aûNé#©²£åëRn@Tm³š?_ýóùX›â_Y\5’gÎÁà->쬑c^r»cÌ5ï<{å0®çá>‚4ÐJ˜ÜmiÆ4Cïofw[ô _js^ìÿˆ†¢8Ÿ'÷>ü%šÁõ†®#í“5YÈ›·PCë +[nuO€á&)&Iö2\EZ¹’˜óô¸j.w`ŒOƒf}@qãwúBk_gþi[MsÇÕ\HB¦‚ ìÎ #à®1 y8x™Êù7íD­}N‚ä˜úÜ纫?ŽKç#¸ÉÜòáîj‚j§ŸpFp½ÿV‡£U&Äìúk~)¿™»&(/$£>ˆ­Hë0[ +Ù²=®ÚK>ØÁe3 I3uuﶆ™åÅÄGÞ8ªûêâfµX»0­+g‰8¬nÀÍŸÄ8¹=).‰nÓ<ý®¾”־Р½õŸªMø}u;\@b×ÁeÿâGBßyV=à [W£Ç.ØG‚a¾ÒtÍ-Ý© RïÄüÃÒlæx{÷0˜|ƒð‰ +ñ›þyQYÛy”èw2£,ÙbzŸÑkWw9Cq)Ö“ŸÇ!‹û5'nsäßc‰Oá’Ñä.rƒŠlMæg~y´ª#™Må5sSÏVË]'ŽÁk]ûosáÝÜ5¤éËÿ|i]endstream +endobj +2061 0 obj << +/Type /Page +/Contents 2062 0 R +/Resources 2060 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2052 0 R +>> endobj +2063 0 obj << +/D [2061 0 R /XYZ 63.034 602.788 null] +>> endobj +950 0 obj << +/D [2061 0 R /XYZ 180.977 172.536 null] +>> endobj +2060 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F56 1170 0 R /F57 1167 0 R /F64 1214 0 R /F60 1208 0 R /F59 1176 0 R /F23 1211 0 R /F20 1030 0 R /F48 601 0 R /F11 674 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2066 0 obj << +/Length 3115 +/Filter /FlateDecode +>> +stream +xÚ¥]ã¶ñ}…m fDR¥¢}¸wíè%mH$Z[ö +ñÇÆöÞÞÞ¯Ï|‘¢,YwiáIÔpf8ß3²žeðÓ³J«Ê¸Y‘åËr¶Úße³-¼ùLj¥€,˜¿Ýß}ó®œUª*ìì~så~ýÓ\WÅâ—ûo¿yçòN—™ò1#Èßÿùæûû· =ÿÏbim>/Õb齟¿ýï÷°ø݇·îß¿Y”v~ÿþ»ˆìîí}d+·N¶˜ä<À|ëÎçª4ñUï¶ÇpÐ^÷È™_Ž|ýuaÊy³Xêyó$o¾yÂëg¸]!Ô…ß÷øPï`yÇG½Àíã鈀ÛGº\zøòyÀÀ0w{…çŸé\Uy>[j£2‘ó=mÈüüçLç§ó….ÈèËÂxd Ηæ錷Ààk˜;¹AÖ‰ÅöÀKFtåþø„¶ûzÇØ^ÚÚŽKTäÜ~àxSŸIHk?„«åaaªùó1<ÔšqÏŠqŽÎxÜ,–¹aÌíåÌÀ+]Òð5Ÿ@-xèCs@Ì´(X¿O`v5w+‡%ÏBσj#Ž F5¤†ú¬OÛæ^ –+é (I—ÉÁØÒˆY÷t=#Ë…™¿Ù È ·­Àèr9Ï"æoÞ_uŽ–gÊæ…8Ú ‘iaçÀqß\ö$Ž`KUU•ìxD"Å„ÃæÀK+¤þx<‹l`­œ×òŽd{ªâ•WHwp5Âd6+TåsbÜÓ3³ªÐEÑeäTpº´Ú©¬ð J§œ×´uÿt!tV(p~g +Uzƒ¾ÿÛÝO¿d³5Šoï@>U9{ûLi8÷þΨª¬äiw÷ÃÝ¿»@"¨– ®ë8¢³ +$^ErÈS,Ç:;ÿ¸pȧ­ÑŠw¬k|“Ï[¹Ö»]Œ!>ê表u0 —`ËþQáÓ 90.ìx-õ¸[3uŽ+°ÊlìžAúX)Œ21Lo‡šs +Þvjû4PQ©,Ê«ù9sÙ^ÂãAeª@ïi€ ´­¼Dš9G9Jа&W¶ìG‹ƒÐR²½¹ÔÞ¤Œ¾½iÛm3¥Ò¹‹ dƒøø7^´ HòžWÆz‡$&ñÚL9œöòæçHCƒ£ú@ìÿ;d‚ÎX`ØíöqÊYV¹òEÑË9o6Iê ïŽa"˜å®{BcÅë¤qpP2[‡PjÄ÷–1©½,8aì¨g 2kúœf}•ÃYømàìé£þZbð”‰Û‘ë-X…½r’<¥QØ*q#ú7óåM³‡€Ru<²[¾Ð·s¬$„ÁP ÆAªÄk©Dö|–'ɶü03¬š®€iÖ‚"©l€Úð$¥Uù„WÊ»ÆZŠ¹B#øË€¦—†‘²Uᇳ‘¤^Ï%;,Ѹl¨ Äsº'™ý1Al`±Àa‹UÛU98—Oq- k,ïÚ3݇b â÷; î$žjñQ£-„7ôÒ±Ô7EÅ Ee‰Šªçå”L€É U¡‡5ŸèA28Þ“D~ƒ—Ï”ÝÛÃv¨ÿ¥qNÙÌôÄÿ¯oàtlÅÝfPûYq~^±%ž9~}$+ß½yp(—_,yRµÐ1iö Ù ±*ë`fFqíÃ&¤Ñl£ñh6[(Tº¢WûÔ>‚Í«IíêÌp$hÙ“„%Þ&ºa«×žªŽ´¨dwG:—ëöÝ+‰a;hXšíÕz掣V¤Î“ªÅڄؕëªý&5ßÔ´¯fÀ—B ‹_U!HÞ2™U¥î'®¡r6eÅ=ú¨)¥x§›˜½½Wk”)—N-•ý»æj#é~‡¢^SÚØòr,ËBåî™~9ßÒW~:{Ûw ¡eA.6Ç Ťø¶7û¥]{õ­Ù$W+%ò‹º£]Âý†|ui©é2`ÀQSAI¦Óí¸ªfe ×/$53¯®‹ti¿s(}ŠÜLΘañ+ Ñ'€Á hiQ )bŠX€™¤¦¡Ä·}j÷Á­@0Žý· –4ŒT^•Eâûãz¤+¨3bˆuç ]Ñ$LÛð+­>P‚¼Òf +Àír)­nêöõ©‰ŸÇ5.ÍzD´,[AÿTº¢e˜e4­Ñ*³eÄZ‡šÊþk¢ÖBiZN˜I¢Ðúz×£ùãc×ü#Q¦²X댫!þ +í²yÆÙ‚¢V1Öƒ‚h˜a=ËoÚíáxêÆGrùUÃH\JÇÛÃòsÔÐ1âænÀ +T0Àú°AHÆ`nO°…¦xs5À¥sï镲2UÚÌß-Ê[3zÕ|ª÷O±ˆúÓK…y»Á—N¢§-¾0yAPšf5'g™ì9¿õ&+¡°ÃÖÑÚiPaÊ,Y8…øj¸r¦úÛeÜ<Ð}Câ¢ÉFº‹2)ëÑzGLH•'„Î( +¥ ¶¼ƒÚR^®§Jhc3)âèY ŸS&jáРÅÍ1ŠF‡ô¦õ1 +ó@šZâÊ Ì’‹µA3½2å}š+Z‰R+JñÑrôJãÑ– þD£ExñÌñ©•Uóåc‰1† d{­ß­ÐQBƒ¦C[4 m˜Ž‹x‚q ?“ÑmŠnŒnt%º%d¿Ýœ.'£[©ŠÌtÑ̓–ƒEÔ| J°ÎAÉW2_Ķ¹8K„w]d žŒ²R +_‘£M/#‰«”î[Þ×CsU˜0óYãÖgÉ–ê8\¢³XØŽtu(\âaÕ>„u\zýúE¦{γWxŒS­`S3v oºŽ´^wýØsœFAÈ9Ðt^ŽìJpsjêµ,…î"§I3^Î\Ãî–{ÀgxÇn"çú¯O]‚@uoð¨8EÉ+=•G^Ì⛟IɧcÊáHo%œÂáÉ°›ç©Þ èú³„Í»À§*\LY@<5ÓÞ.®êðï^M¹ö$ÑàÚSDÙµSš“®m*•eö u§.Êε!QÛ¦3${õy ?Åœåz b¬š÷-ªd½“Í<2ñd!¡M"¤|é5 R®8¥}®ÓÙ+„ú5§Õ.<ˆ‘à V‰uÒÎFöÒg½<5Þ÷9 %ôÝÓq?„ÝcÃØΛÚgÊU-¥ËТ™OiϘÌ!~­£Æa}¾Õ&™\«Â»É6)¹Õ&jÜl“¦ˆÅ6iŠZp­„µI¦~ 둲"”H~W‡ËX"”–…-Øz¯Àͱž©boÄ 7ÐܳR^ù©+}*©/pOŒ­Ö¾D³ÆkP=­0žN]¹ ï)o[yâ±ôlY¢ý–=ˆþ‘;)|ÅHË~í˃F0´]ÊY¡XnæâƒÄH`çÞ÷¢´ +æ¯yÔÀ7ýj jîEZx^Ã9;T­ìÞÄ/Ë‚u=bÿ¾¶«#oǽ@W^ÙlúÏ + Ì-/ È”½éSÄ¢LQ/H©ýï‡g6„Á7¡JÅb呦EësòO‘ðê™>ÏŠxw¯!µÖRLwŒO£ƒik½©1BpÓãæ¦ÆO™ßÖرNcÔ‚Æjò™ qëKóYH¢ëмc¢+ènÍBTœZAã”|”Bz5¥T×ME¼ÈR?2h—u‹¡/ º á3}þ0ó÷Æteh} + µ¼Šsƒ²¤äi%½ÓI‡Ë1,ŒÉÄ¡gøôg;ó‹¾1 ó4Èvz0_E|Zš¿ƒØñžÒêÇX_Ÿã¿xº<»î©_N5}Cµ ¬¡Ý´îmÜä¦m3ÇÝ6íÛ”:˾M*vGŠíÚ»¯‹DPmƾSòÓë0%ã“ÑŒl}¡)”U@’?’ ¿òŠôûÞIýæÙ_¼v ¼Ò(´—‘aÁÁ­G´X«û“®«iôÒzþ#…È7WÜèa”ÄÔè)5¿~€$¡@ÿƒ¯‰¢Áy;¨7‘…3_¡tÏaäò˜ ‘?6v¯ƒX )zz¢Bu)3ZÚ©¿>±‚/bìG)ŒOuò?ìæÂÄF:(1ñÊ)(÷ÇLjcùÓ_òòwL3„aendstream +endobj +2065 0 obj << +/Type /Page +/Contents 2066 0 R +/Resources 2064 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2052 0 R +>> endobj +2067 0 obj << +/D [2065 0 R /XYZ 91.925 602.788 null] +>> endobj +2068 0 obj << +/D [2065 0 R /XYZ 91.925 426.847 null] +>> endobj +2069 0 obj << +/D [2065 0 R /XYZ 91.925 402.328 null] +>> endobj +2070 0 obj << +/D [2065 0 R /XYZ 91.925 350.257 null] +>> endobj +2071 0 obj << +/D [2065 0 R /XYZ 91.925 300.123 null] +>> endobj +2072 0 obj << +/D [2065 0 R /XYZ 91.925 257.881 null] +>> endobj +2073 0 obj << +/D [2065 0 R /XYZ 91.925 211.577 null] +>> endobj +2074 0 obj << +/D [2065 0 R /XYZ 91.925 191.12 null] +>> endobj +2075 0 obj << +/D [2065 0 R /XYZ 91.925 158.709 null] +>> endobj +2064 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F11 674 0 R /F10 1027 0 R /F13 1055 0 R /F7 586 0 R /F14 1012 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2079 0 obj << +/Length 1946 +/Filter /FlateDecode +>> +stream +xÚ­XYoÛF~ׯà#TîA.Y  ’´Ò¤IT´@šZ¤d"étl÷×wŽ]’º ˜{ÌÎÎ|sìŒdÁŸ -"m‚$R¦i°©Q°ƒ_ÒQ¬ÉjFób½xö:6A&²Dëí1›uñ9L…Ë•µ6üýýË¥ ÿ|ûüãr¥µ _Áìï?Þ¿Ãï»õÕóeªÃõÕûwË/ë7Ï^§W­Ra b C™Y¤X¼Z²™(ÖÄOŠ¯VÂ@Yà«žT1¶F¤*UœÉbc¡dà PžD‹“*‘ÅY0ãrr“#yê¦ä47­oJFîÛ2N¼ܪüzŸ’1õÆã±éˆÙu5\ßmODÇŽæ¦ENEÏW 0ö×mîðª®l–*… XÓȱçQ»åïÀä:¼_®@08Ñð¯]*‹Kth 胰¸ßÀÞŽ—·mW—Á¬2p˜l 3‘Zv¡çû=Æ1_ß9 ¤7 nyQ*þV(àÃòÀàžî*Z”þž—nQŸ–¤Ù ‹’8öU³c{ÜKÃéÀ{c)ë·FíX¨„Æ ‚(僿õ¦bËxa:7$»•¬¬4`cTV‚;ĤlüvŒnlÂ¥f{Wûüï-yg‹àv5N<ø0 AnIµ¶ñ–CÒ–¿]™¨[dÀ±¼¤&ü'’%ti?L@+0]_Óá¦brœLÀ1©[†;Qßè@Óòaèò ^‘)Ð>:%¾ç9ÞSLTmùÛ_AÝ®:l0q óØA„ˆŸÚß –ÃÍ´F.q‡.2óy ñ¦Ô¥Â«íáQv€òŒ¦¹·}Óò×EOlý?‹æx-wÄå=Ïg  ¿¹“?™αÈÍÑöÈïì Œ½Î”ÛÁŸC_n"‰… |ªæPvuÕäc`öÒNΙìùv4+- é Ÿ™ª0óŽ%ã°Î‹ÒS^2'͸ªEä°åbÇgª|¿á%ùž—ú¯w\G+§ jQ¡ân3TmÃÓöˆqŽ[=›U¨\_•îJ£U¡K2& Ü£j¤YÍÌhåÜzÑ©Ù´:x¾©È4Æ„ŸÆg#AK uâ »’oðc]øwP+_ŒÃ€«^̼°É{~œyÚnOZi+¬2߉*™x·ÿAKCÉ’9)O¸êTÈXÿ_¦Š[@%õ’]Ùs,ù-G˜¼ÁxÄ–ò¤=s]nèÞšjÚÇ‹…䘕°Å4œwCE©/6³¾›_Wöų¢›Ö#ˆrÜÝF{™Ó· ºÃïDl,ã)bµT¡kùœi|KŸ·S§³ò-|K£ÕîÆ×0HO±¨*Y$"™I¥PÉöãÛ7+QÆ? 7œñüOweWÍÁ¥‹‡«`¥c oyñ ZGÂ@$à/a €äÆœI“‰TZa´¯O0F±ùkŽƒ,ƒ2!R ›dœ_>‰‚¢ãÍ"P]÷0Ž„„„T/ ó'±›íŸSÆY£ÕŒÿB7(‚‚%™n£ºïXÅÚ÷"’çõ©0‡Ù©jªs%ƒ b€à‡Hæx=-™2Bi} Yù@yݳf+ÄæÂ+“ö*;—ý’Ñ|ó?,ÕÅendstream +endobj +2078 0 obj << +/Type /Page +/Contents 2079 0 R +/Resources 2077 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2052 0 R +>> endobj +2076 0 obj << +/Type /XObject +/Subtype /Form +/FormType 1 +/PTEX.FileName (./pics/expt_state.pdf) +/PTEX.PageNumber 1 +/PTEX.InfoDict 2082 0 R +/Matrix [1 0 0 1 0 0] +/BBox [0 0 355 139] +/Resources << +/ProcSet [ /PDF /ImageC ] +/ExtGState << +/R7 2083 0 R +>>/XObject << +/R8 2084 0 R +>>>> +/Length 2085 0 R +/Filter /FlateDecode +>> +stream +xœ+T0Ð3T0A(œËUÈ¥d®^ÌU¨`ljb¢g–04¶€0u ô ÀÀĤZ?ÈBÁ%Ÿ+ ?&endstream +endobj +2082 0 obj +<< +/Producer (GNU Ghostscript 7.05) +/Creator (tiff2ps) +/Title (expt_state.tif) +/CreationDate (Wed Dec 24 14:59:06 2003) +>> +endobj +2083 0 obj +<< +/Type /ExtGState +/Name /R7 +/TR /Identity +/OPM 1 +/SM 0.02 +>> +endobj +2084 0 obj +<< +/Subtype /Image +/ColorSpace /DeviceRGB +/Width 1477 +/Height 577 +/BitsPerComponent 8 +/Filter /DCTDecode +/Length 35881 +>> +stream +ÿØÿîAdobedÿÛC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YÿÛC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYÿÀAÅ"ÿÄ + ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ×ØÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ + ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ +$4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ×ØÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?ôš(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(ª·z…¥ÿI¸Ž/fnhÕZÊúÛP„Ëi(–0q¸zÕš(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š+ŒøÖñhƒ0Æ×38Db£8Ï<×g^kãkżñe…‘%¢€†e’sÒ€; +X ?@¶‹b»›êkf¸ÝSXñ ¯Ú­ì"[DuŽ_JÙðÖ¹½¦‹…]’)ÚëèhF÷Ïû¿eÇŸ´ìÏLÕ] ûGû<kmûN㾫Å>!¿Ñ]mc(íµIl“øVî›5ÅÖ— ÓIäMÄc€h[ëȬm^âv +ˆ3Kgqö«XçP8È­yŸ‰fÔ¯üO”×K Ü U\(úŠô{žÖÌ-䱶ÁÃ(ÚrŠæ¤ñ÷×k¢Ûùûfá›w­^i¶ê ¿im¡c+ï@=ÏøŸZ¼Ñ¬Úê+dxW±nr}ªŽ“â[íKNF†Ùe»“$(áPvÉ ºŠâ¬¼Wm¯.™­AM!Â2tÏjwˆüK«è¬ŽöQ¬,Ø »wÙÑUtë¡{a Êð$PÕ®ë×:f³alo‚àáŸÐæ€::)*+›˜m"2ÜJ±Æ:³PÔÖeE,Ä;šæ.Ÿ ÊÛÄæâf`6Æ3ŠÚ ¡a£Xéʽº+xŒ“ZQT5Yï¡„ t™¹ÎæÆ+Ÿð·ŠnumRæÊîŠH» +ë謿jÑèÚ\·NFà0€÷4š¡6¥¡Czê<Ù¶ÑÓ4«PÝùße—ìØó¶™éšÅð¾³uªýµ/!Im.Î;Õoø†ûDŒH¶Ñ˜Ù¶«äþ­ ÿigÿÄÛoÚw»éÚ´ë2Æîö}–…åÔ™Àƒ§x›P¼ñ#éÏo$Yó9À ÆŠæõmnôC3éVË*B¤¼²/ž´ïëÒëÚ{Ë:–6Úvô4ÑQ\αâ)!ÖàÒ,©9f~Š)n5}JËU´°šäóÛýrð1ߊékMþØþ×»ûnϱËjMrþïO³yíàIslb©xGZ»×-%¹¹‰c@ØLw ŠŠáµoë£TžÃí6ñ»ÂçšÎ›Å~+·Ùçi‹óµrMzUGJ–í´ØåÔ‚%Áp½SMVmBáâÓPÐ᧻ŸoZÚ¢¹¼Gykâ•Ñï–9w€UãÆ}k® Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š*–¥©[i–þmËàt +:±ôvŠÂþÙ¾X>Òúk lg;¾lzâ´ôûû}FÙg¶:ÐúPª(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€,‹O#œ*Œ“^}àëa«ø£QÕç]ê¶2}ýX®§Å×/káÛ·K1]¼Z£à;x¬¼7PòïÏC@ì©tò}Ñ®gᕣäÜÎßvyw/áÅZ×¥“ĺ^žI„·ïætJèm-¡ÒôÕ†!¶8R€8ÈÚ·‹,tµù£Œ†qé]ñ+mlOðÆ¿ÈWšøfì]x®ûP‘L’+§œWeâëƳðÕԫÔÀö&€9!Õ¼c}©?*„ì5¯ãíRhÒßKµb²Ý6J­ðüÇe¤ÆQ|Û‹§Ë*ÿõ5[ÇÑËiâ?T(ÍoÇb vÚ.™¦Ão +…ËSEæg{}ÝÄ{æƒîð*¬'Ò$´IEì\»Ÿ›ò©´ëë‹ùža—g¸Ã7½rÿ®žK{M2^w¨ý+¨ðþ•‘¥Co‚íêkŠšâ-WâLBIEm÷I<+µÖ5ˆ4ëfùƒÎÃƼ–4ÆkñiüB±‚LYˆíƒšÚøÿ ¹Ç*àÔ¾Ñe·’mNýÓ.Np„zTþ8‹ÍðÍÐÆp3@x:Q'†lÎ~êb›ía\sgfÜ}÷ÿëW=á ɯ¼=ŸhH|‘,ŸÜ_ñ®æÒÚ;Kt†!…Q­OTµ=2×Uµ6÷i¾<çèjíǯ‡õM–Ñn„Ÿ"QüX·ñjà ƒWµ’Î^›ˆÊŸÆºŠ‚æÒ ¸ÊOH§³ ÐÛÜÃsx%I÷Sšš¹–ð¢Û]-Æ—u%© “r¤wâºQÐf€ +óm8 ?‰¯A.I¯J¯7Ôôû›¯ˆ›mÉ`.ð  ütQÑ®ï"ÞÝ•!Þ9å¿¥lønñlüg'W)„_SQxòƒÁsCáJùÑàÛåÒ,¤»B‰ +þízÜÑl~ÇjÌÿë¦c$‡Ü×ã)[Tñ5†–Ÿ2#q^ƒ#ˆãg=d×™x~ínüa} 22±XÐu<â€=yËOwcµ"¯ÐW›ø1gÕ5[éW*&sæIþÏ¥u?¿6¾’1Ä—F¾ZµàÝ-4Í$•w¹ï“@¼ktšO…ä†Éûµ¿­IàM;û?ð–y¿xæüysöïØi…±Ïí“]>©ª¶á¿´D†-¸DÏqë@çtË›NvË%—ñÛÒhö¾#´¶¿+þ‘oFz9«‚îËSÑ ²H ‘üÙíÅr¿,¦‚çP™r-¶Çžø=hKâù¶Ñ>ÏýåÃlÔV¯…¬E†k0vîaîkñuÒßxÎÊÑÛ÷0`·Ö»iµk{-'í—@ÁŽºŸJ–æ{]"Ñœ PNB(剪Ú}œ·3 ûñ™:Åéÿæm<_£\]}³Q¹màþî-„„ãZ/ã=BâÞËH‘žyœ)b¸Ú=h<}«µ„v±9Y.[i#¨^õ.Ÿ~mt¨mt«)f/R6®}Mc|H¶š;½?P +ZNZèôÿé3iñÊ.£VÚ2ŸÅŸ¥Wм7$„š®© šúNâ}+§¬í6êæñÞg‹Ê¶?êÃ}ãîkF€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¬/Gª‹6¸Ò®|·rcÚêÝ¢¼ÓÂ:ö¯­j­ku¨¶ í2kÒpvmÜsŒf€EsÑjÓk³Eý¢ÆÒò “é]5-ÙØ!Ãp} rŸÙ^*ÿ Ì÷î€:Ú+’þÊñ_ý`ÿ¿tex¯þƒ0ߺëh®wLÓüA ò=ö§öãï"¦ ®Š€¼çí‡Ä#ˆœÚÚ1ÂöÈïùנݶË9ØuXØþ•æ_ ¿ÒÄZTPPAºl†5EôžÊJ°È#S¨  +6ZM„Žö¶É¹É u©îí`½·h.cDÝTÔôPK:ÓOe¤ ú +–æÚ¨ŒSƲ!êT¤ÔѸz΀2`ðÞ‘o/›ŒJùÎqW5ÖËNžnF„Ê­n£ó®kÅÆ­o%¥£ÛEnÝY˜î4ƒà]ßSŽïP½„HeíÏjí­´›+gÝ +Ôóüëºv§£Ú¥ÏÙZÉÞŒw~UÒî£ó ±|@ÂöÓ"åœa¿Ø¦¢×ì5[Ë»gÓ¯–Þ$9pOZÒÓ죳BZO6wåän¤Ð4m&ßG±K{uæ=É­MÃÔ~tn£ó ¢“põ‡¨üèh¤Ü=GçFáê?:Z)7QùѸz΀¡[hRáçXÀ•Æ»š—põ‡¨üè«Xo!ò®#GvŸQRª„Pª€.áê?:7QùÐÊJ‘x"©Yé662¼¶ÖɹÉ`:ÕÝÃÔ~tn£ó  +wú]ž¥åý²—Ë9]ݪڨE +£ +¥Ü=E-Q›H±žõnå¶G¸^‘ÍXžÖ”Tš5uSã55›&‡§HÙkeú@üªô0Çb8‘Q@IEP}ÂKÑxöѵÀþ29©5 6ÓR…a¼…eNBš·EaÂ#¡Ð>*±eáí*ÂàOkgrŽŒ+VŠŠâÞ+˜ŒSƲ!êV}·‡t›Y|Èl¢WëœV­€``RÑEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE„= -äž#¶“Âþ.ŽúÜ ¼cõ鋨Ç&/£`U“púÖ_tq«è’\ÍΟá\§o.o¢DŠÆ8_{1ôô ÿG…¢² IJíõ5~ +ZdŒR7e]Ä@õ®Lø£XÏü‹—?÷ÕuôP!ÿ F±ÿBåÏýõGü%Çý —?÷ÕuôP9¥ëÚ•íòAq¢Ïmg2±àWGE Ú—´V‡é^gðÔ}ŸÄWð· ¯ë^£^u=¡ðïŽâºÁ—mËvÿõèÑ«ÉüY½ñü ÉÊʽUäDˆÈXl9Íyÿ‡l_Wñ}Ö°Àýž'"2{šôEÔê( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( ŠBB‚Iæ¡ûe·ü÷‹þú=ÈåŽQ˜Ý_‡4’MXó$TÏ÷Ž(J)‘È’ŒÆêãÔÓ袣’x¢ I"!?Þ8¦}²Ûþ{Åÿ} +žŠƒí–ßóÞ/ûèQöËoùïýô(z)¨êê2ž„uEq0Tú镃(e9k–ø‰n&ðįÞSøQmCÃÐdå4ÑÑEQEQEQEQEQEQEQEQEQEQEQEQEQE…j—¾ ŽšA€¶Èç5?ü#ö^³ÿßÖ¡¿ägOúö?ε¨'þû/YÿïëQÿý—¬ÿ÷õ«ZŠÉÿ„~ËÖûúÔÂ?eë?ýýjÖ¢€2á²õŸþþµðÙzÏÿZµ¨  ŸøGì½gÿ¿­Gü#ö^³ÿßÖ­j('þû/YÿïëQÿý—¬ÿ÷õ«ZŠÉÿ„~ËÖûúÔÂ?eë?ýýjÖ¢€2á²õŸþþµðÙzÏÿZµ¨  ŸøGì½gÿ¿­Gü#ö^³ÿßÖ­j('þû/YÿïëQÿý—¬ÿ÷õ«ZŠÉÿ„~ËÖûúÔÂ?eë?ýýjÖ¢€9wH·³Ñîn yÖX×*|Ãë]\ÄŸîŠËñGü‹×¿îZÔ‹ýJº(ôQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQX^,Ôï´­3ÏÓàó¤Ýƒ‘œZÛr1n€sX>Óa¶7—‘ Qs)eÿv±ômkYñ ¿Ù¥³ò¿ÖOÐcÐZí!‰a…#A…Q@QEQEQEQEUMCO·ÔmŒ7(OOP}ªÝ‡ÿùhÄ2_NöãþY“ÛÓ5«kk œ ¼azSÑ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@ ‘XÙeX`Šò_hGH½K›fqm)än?)¯]¬ŸiI«èóÛ7‘”>†€!ð™´} m Ê7zçÞ“ÅpÞÚG &f‘‚¡î=kŽøwª=†¥6‘tØÉ;3ØúWqúfµ$¹ÌVÃbŽÅSøP½6Â:Ñ`päúš·E‘¬xzËY•$»nAµˆ¬ïøAtIÿï᫺决w4m¥ê‹d€a” lŸÊ²ÿ±Ù›mÍ#sf€; +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€2[þFtÿ¯cüëZ²[þFtÿ¯cüëZ€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€2÷÷å¨^€Ã=ë'û~ßþ}îÿïËQý¿oÿ>÷÷å¨UUTaTì)Õ‘ý¿oÿ>÷÷å¨þß·ÿŸ{¿ûòÔ¯EdoÛÿϽßýùj?·íÿçÞïþüµkÑYÛöÿóïwÿ~Zíûù÷»ÿ¿-@ôVGöý¿üûÝÿß–£û~ßþ}îÿïËP½‘ý¿oÿ>÷÷å¨þß·ÿŸ{¿ûòÔ¯EdoÛÿϽßýùj?·íÿçÞïþüµkÑYÛöÿóïwÿ~Zíûù÷»ÿ¿-@ôVGöý¿üûÝÿß–£û~ßþ}îÿïËP½ŒÞ"´@ ‘\¢ä Í VÀ9 ¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢ŠLŒõ .ñΑ6Ÿ¯[ê ©™Æ +öjô]&Ù­l#Iy™¾y«µRùPÕ­­ˆ –çͯaúÖÅQEQEQEQEeøƒJMcIšÕ€ÜÃ*} cx>øÙZ/P>Löç‡ÖºÚ¯qekrs=¼rö”ä¼R_Äw6úMŽ^%}óJ>êã¶ël-#±³ŠÚ!„@ø-á·]°D‘¯¢ŒT´QEQEQEQEQEQEQEQEQEQEQEQEQEQE’ßò3§ý{çZÕ’ßò3§ý{çZÔQEQEQEQEQEQEQEQEQEQE‘âù¯Üþµ©ú”ÿtV_Š?ä^½ÿsúÖ¤_êSýÑ@¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(ªš¯ü‚î¿ë“*·U5_ùÝ×&þT‰ÿ [/úâ¿Ê¯Õ þ@¶_õÅ•_ Š( Š( Š( Š( Š( Š( Š( Š( Š( Š(  ŸÈªÿèBµî¥eø›þ@sýWÿB¨¿t}(ÔQEQEQEQEQEQEQEQEQEQEQEQE%yõLJ¼Mý¹$Ð_ 9!·tJô*(?IÓ¾Áó$2ÎüÉ!êMhQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEd·üŒéÿ^ÇùÖµd·üŒéÿ^ÇùÖµQEQEQEQEQEQEQEQEQEQEdx£þEëß÷?­jEþ¥?Ý—âù¯Üþµ©ú”ÿtP袊(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š*¦«ÿ »¯úäßÊ­ÕMWþAw_õÉ¿•G¢ÈËþ¸¯ò«õCDÿ-—ýq_åW袊(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š('ÄßòŸê¿ú­Eû£éY~&ÿÿUÿÐ…j/ÝJuQ@Q@Q@Q@Q@Q@Q@Q@Q@Vf»y=’=®Ï5åXÁq2q@tV7“¯ÏÕŸýú?ãG“¯ÏÕŸýú?ã@4V7“¯ÏÕŸýú?ãG“¯ÏÕŸýú?ã@4V7“¯ÏÕŸýú?ãG“¯ÏÕŸýú?ã@4V7“¯ÏÕŸýú?ãG“¯ÏÕŸýú?ã@4V7“¯ÏÕŸýú?ãG“¯ÏÕŸýú?ã@4V7“¯ÏÕŸýú?ãG“¯ÏÕŸýú?ã@4V7“¯ÏÕŸýú?ãG“¯ÏÕŸýú?ã@4V7“¯ÏÕŸýú?ãG“¯ÏÕŸýú?ã@4V7“¯ÏÕŸýú?ãG“¯ÏÕŸýú?ã@4V7“¯ÏÕŸýú?ãG“¯ÏÕŸýú?ã@4V7“¯ÏÕŸýú?ãG“¯ÏÕŸýú?ã@4V~‹u5æž$¹Ùæ‡d;ÁÅhPEPEPEPEPEPEPEPEPEPEPEPEPKÈΟõìkVKÈΟõìkPEPEPEPEPEPEPEPEPEPEPGŠ?ä^½ÿsúÖ¤_êSýÑY~(ÿ‘z÷ýÏëZ‘©O÷E>Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( ªj¿ò ºÿ®MüªÝTÕäuÿ\›ùPz'ül¿ëŠÿ*¿T4OùÙ×þU~€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€2|Mÿ 9þ«ÿ¡ +Ô_º>•—âoùÏõ_ýV¢ýÑô QEQEQEQEQEQEQEQEQEV7‰ãÎÛþ¾cÿЫf±¼Kÿvßõóþ…@¥- éK@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@^ÿs×i?ô#Zµ•áßù7ýv“ÿB5«@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@\¼‘ÛHñ(gU$p yÌŸ¦ŽFC§&TyÿÖ¯J ƒÐׇøßNþÍñ ¡eýâ…{PÉø‹)ÔÅçØ"?/nÿ|ÕÄøŸ+È«ýœœ>ýyÍox3OþÑñ´d)T;Ø0È v q…üÈQñÊ)ô€€)h¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(#Åò/^ÿ¹ýkR/õ)þ謿Ƚ{þçõ­H¿Ô§û¢€EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPU5_ùÝ×&þUÉø«Å÷ú£ä H䉆QÎy®zçâMÝÅ´›8€‘J““Þ€='Dÿ-—ýq_åWëɬþ#ÝÚÚCn¶q0‰‚IçØx3ÄóøŒ] H¼¸Úzç?á@MQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@>&ÿÿUÿÐ…j/ÝJËñ7ü€çú¯þ„+Q~èúP¨¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š+Ä¿ñçmÿ_1ÿèU³XÞ%ÿ;oúùÿB  Ò–t¥ Š( Š( Š( Š( Š( Š( Š( Š( Š( Š(  ¯ÿÈ9¿ë´Ÿú­ZÊðïüƒ›þ»Iÿ¡Õ Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( ¼ûâžæYÛ_©Ë;c“Ÿ½³|Ab5îØœoCƒŒÐÏõé¿ +ôí¶÷7ìAÜ|µr1ß5æÞS‰ü¢§~í¸Ç5ï>°n…ilJ $ãžhVŠ( Š( Š( Š( Š( Š( Š( Š( Š( Š(  Ƚ{þçõ­H¿Ô§û¢²üQÿ"õïûŸÖµ"ÿRŸîŠ}Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@OÄÍ7íZ2]"»< Û Ö¼Ž¾†ÕlÒÿM¸¶²!óýÜ mw,»Z6*Aí@×´ü>ÓþÃḘZsæ0@ô¯"Ò-ûT¶·\üî g¾·ˆCoC¢(-Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@>&ÿÿUÿÐ…j/ÝJËñ7ü€çú¯þ„+Q~èúP¨¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š+Ä¿ñçmÿ_1ÿèU³XÞ%ÿ;oúùÿB  Ò–t¥ Š( Š( Š( Š( Š( Š( Š( Š( Š( Š(  ¯ÿÈ9¿ë´Ÿú­ZÊðïüƒ›þ»Iÿ¡Õ Š( Š( Š( Š( ŠÉÕ.oPµµ³xÐʬK8ÏJo‘­ÿÏÝ·ýðhbŠÇò5¿ùû¶ÿ¾ F·ÿ?vß÷Á  Š+ÈÖÿçîÛþø4yßüýÛ߀6(¬#[ÿŸ»oûàÑäkó÷mÿ|Ø¢±üoþ~í¿ïƒG‘­ÿÏÝ·ýðhbŠÇò5¿ùû¶ÿ¾ F·ÿ?vß÷Á  Š+ÈÖÿçîÛþø4yßüýÛ߀6)+#ÈÖÿçîÛþø4yßüýÛ߀89|<[â/•¶_%ŸÎß·_ʽL V Óus|.þ×oæÙ‡ÍOäkó÷mÿ|Ø¢±üoþ~í¿ïƒG‘­ÿÏÝ·ýðhbŠÇò5¿ùû¶ÿ¾ F·ÿ?vß÷Á  Š+ÈÖÿçîÛþø4yßüýÛ߀6(¬#[ÿŸ»oûàÑäkó÷mÿ|Ø¢±üoþ~í¿ïƒG‘­ÿÏÝ·ýðhbŠÇò5¿ùû¶ÿ¾ F·ÿ?vß÷Á  Š+ÈÖÿçîÛþø4yßüýÛ߀6(¬X'Ô`Õí­®å†HæG?"à‚1[TQEQE‘âù¯Üþµ©ú”ÿtV_Š?ä^½ÿsúÖ¤_êSýÑ@¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¯ ø™§ Mu.hK”È +:ÁÍzýr?ôï¶øq¦\¶q'L’:cõ SᆞfÕ¤»`áa\Ž 5ë5ËøMû‡cfVY';ØÒºŠ(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢ŠÉñ7ü€çú¯þ„+Q~èúV_‰¿ä?Õô!Z‹÷GÒ€EPEPEPEPEPEPEPEPEPXÞ%ÿ;oúùÿB­šÆñ/üyÛ×Ìúl”´ƒ¥-QEQEQEQEQEQEQEQEQEQEexwþAÍÿ]¤ÿÐjÖW‡äßõÚOýÖ­QEQEQEQEd^Èŧÿ×9?•kÖEçüŒZýs“ùV½QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEe^ÈŦÿ×9­Zʼÿ‘‹Mÿ®rÿ!Z´QEQE‘âù¯Üþµ©ú”ÿtV_Š?ä^½ÿsúÖ¤_êSýÑ@¢Š(¢Š(¢Šdª^&Ur„Œ¨ÔµçQK/Ž…‚_Í,ÍÎN•è”´QYÚävZ½µƒC#5ÇG@ôQQ™cYDeÔ;t\òhJ(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ ++#P×#±ÕmlZ®(àV½QEQEQYÚÞªš=Úd‰ä€ÚƒšÑ¢¡µœ\ÚÅ:‚¢E ê3SPEPEPEPEPEPX·/s¬Ëkmv-ãŽ%õa²I÷­ªÉƒþFk¿ú÷Oæh>ëÐXß…£ì:·ý‡ýøZ×¢€2>ëÐXß…£ì:·ý‡ýøZ×¢€2>ëÐXß…£ì:·ý‡ýøZ×¢€2>ëÐXß…£ì:·ý‡ýøZ×¢€2>ëÐXß…£ì:·ý‡ýøZ×¢€2>ëÐXß…£ì:·ý‡ýøZ×¢€2>ëÐXß…£ì:·ý‡ýøZ×¢€2>ëÐXß…¨î4­Nâ†]Tq´!knŠÃ·Òµ;kxáVÂF¡W0/ARý‡Vÿ °ÿ¿ ZôPGØuoú ûð´}‡Vÿ °ÿ¿ ZôPGØuoú ûð´}‡Vÿ °ÿ¿ ZôPGØuoú ûð´}‡Vÿ °ÿ¿ ZôPGØuoú ûð´}‡Vÿ °ÿ¿ ZôPGØuoú ûð´}‡Vÿ °ÿ¿ ZôPGØuoú ûð´}‡Vÿ °ÿ¿ ZôPGØuoú ûð´}‡Vÿ °ÿ¿ ZôP>•5àÔ®í.îâ ¥[`^µ±Xö_ò1êî'õ­Š(¢Š(¢ŠÉñ7ü€çú¯þ„+Q~èúV_‰¿ä?Õô!Z‹÷GÒ€EPEPEPEPEPEPEPEPEPXÞ%ÿ;oúùÿB­šÆñ/üyÛ×Ìúl”´ƒ¥-QEQEQEQEQEQEQEQEQEQEexwþAÍÿ]¤ÿÐjÖW‡äßõÚOýÖ­QEQEQEQEd^Èŧÿ×9?•kÖEçüŒZýs“ùV½QEQEQEQEQEQEQIšZ(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€2¯?äbÓ뜿ÈV­e^ÈŦÿ×9­Z(¢Š(¢ŠÈñGü‹×¿îZÔ‹ýJº+/Åò/^ÿ¹ýkR/õ)þè ÑEQET7s‹kI¦n‘¡oÈTÕË|A¿6~’48’rq@÷ƒom­äÔ5«ù1æÈBw'žÕÕéž.Òu;¿³C+¤Ç¢È»sôª¾ðô:~““ {‡]ùnvçÒ¹ÏÛ%·ˆôém$îÃ;{ó@uu ¤&YÜ"æ²,üG¤ê:šÚÛ“-Àƒ³§ãZ·’¤rË& +¢’s\GÃëqw¨j£(ùܪqÒ€:ÝgUþʵi¾Í4Øü‹>¦¹ k7¾µ6£qmpËþ®1åSëZ¿¯þÇáçOÏ9Ø*Ø}ƒÃîiòh¡–T†3$Œ$“Ò²ĶRÈÉj—[z´1î¹Ù.fñoˆd²Ù4ÛCû̾k²ŠÊ+k6·´Eˆm!p:Pvš­¥Ý«ÜE/îãáóÕO½gi {ªNÏ+¶Ði<1¢K£[\ ™D²M!v=«‰³µ}{ÇwR@BCÌA@¶£âí'M—ËšIƒƒå®à>µqµí9tøïMÂù}Ò;ŸJƒVÓ¬áðýÌ>RÄg¨ï\ÿÃ(Ùôk¥”nÍùäcÑi>$Óµ‹‰ ³‘™Ðdäbµd‘b¤s…Q“^o¢"ØüHº‚1¶2½öX¡´•çÇ–îÍVÒu‹=b–Í˪§#5¡\÷„tű³šTCÜH]Pö«¡ nóÆšeÔ¶ò¥ÑxÛiÛFjøOtùçyÿ~úõvçÄÚ%µÌÏp‹*0)ÐÔ_ð–øþ~cÿ¾(¿ü'ºGüó¼ÿ¿?ýz×ÑuÛMm%kE™Ddæ&Ú¡ÿ o‡ÿçæ?ûâ´ô­VÃTYÂEp‡ ŒPòp2kóÆ=œ…$™ÇÊ¹æº +ãþ#XÅ/‡ša‰"`CÚ€:È&KˆhŽQÆAª’jÖ‘j±iÌäÜÈ»‚ÛÞ²¼9¨¬~¶¸çbmÔ×)¤µË|JÍÛfB»±ýÐF@ ÷UÖì´‡o”ÎÛW?\¸¹†Ö4Î1ÜÖ‰m"Õ&´±ØO0H[ûª+nåÒ I$|E'šÉµñ“¨jiin9ÁÙÓõcQñ¦S…eà€2Er~·ûf­¨jŒ •Oj·ñ&é"Òá¶;Ÿjê,5[]BÃí¹só8ÇJÌ1Òý,Ä®ds€Û~SøÕ]Çíºu´.1e +—þz7øW=â4MCÇ66Ȫ 6ÑøÐ¥3ª¡v ('Ú±âñ5ŒÆF‰g’ÎeL üj}vÚYô »{r|à \wÃÝV²K¢](IAlþ,õÛiú­¦¥’Úɾ8Î cƒô¬Ûßh±J°M/˜Ì@ +95sBÒÆ•dÐñó9n:u®6íWYø‹*£Êµå€q@Õõý¾§µÜä¬(¹8×9ÿ Bõ¹ÿ¿ýzßÕtÈõH#‚f"À²xzVV£¦h–j±G¦[Ëpü"çêhtÏiZ­ìv¶¢á¥sÆcÀ^k¡–DŠ2ò0UQ’OjÈÐt})^o*5¸“–*0°¬i¯·üDÖ~fÛ NdçÏ¥m\øŽÎÞ?—q%¸ë,qåGãWôûû}JÕn-dt5Íø›TYl[IÒcÍ0òÈA•AZžÒ‹£Glí—?3}hjŠ( Š( Š( ²`ÿ‘šïþ½ÓùšÖ¬˜?äf»ÿ¯tþf€5¨¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢±5oišVåžpdÀ½hnŠ§¥ßÇ©éñ^D¥RQZ¹@Q@Q@Q@Q@Q@ÖeEÜÄ;šÎŸ^Ó`™!{¸üÇ8ó@tRu¥ Š(  {/ùõ÷úÖÅcÙÈǨ¸ŸÖ¶(¢Š(¢Š('ÄßòŸê¿ú­Eû£éY~&ÿÿUÿÐ…j/ÝJuQ@Q@Q@Q@Q@Q@Q@Q@Q@cx—þ<í¿ëæ?ý +¶kÄ¿ñçmÿ_1ÿèT°:RÒ”´QEQEQEQEQEQEQEQEQEQE•áßù7ýv“ÿB5«Y^ÿs×i?ô#Z´QEQEQEQE‘yÿ#Ÿÿ\äþU¯YŸò1iÿõÎOåZôQE!!FIÀ÷ ¢©ÿjY´µ1™ßî 9&™}¬Xiä »¨â'±4~Š‚Úê ¸„¶ò¬ˆ{©ª—zî™e0Šâò(Üö&€4¨¨áš;ˆ„¸t=4úZ+:ó[Ól[mÍÜQŸBjK-VÆÿþ=nc—ýÓ@h¢™,© +‘Â(êIÅEz·/nËhè’ž…†@¯1±ÕµY„к*…ž±a|å-®£‘‡`y«ôQEG$ÑE2ELôÜq@QP}²Ûþ~"ÿ¾…l¶ÿŸˆ¿ï¡@ÔsÊBòÈpˆ2M3í–ßóñýô*+ëuÔ¬ŒI(Øç’¼äwÈ]k>#Ö%ì;a²œ,Áoβ?á,ñƒ~±k1ùˆO9G±¯M‚íáH¢P¨£ +æ~!ÙEqṦuáù”÷  ý3PƒS±ŽêݲŽ?*¹\?Âã'ö$Ûó·Ìùk¸ Š(  «Ïù´ßúç/ò«YWŸò1i¿õÎ_ä+V€ +(¢€ +(¢€2"þÕKƸùq]­œV°yH2Þ'«}h‰ø\èÖ÷ÁˆóÌ™aßÛÝÝÃg –w +£ó5Ë\ø & ÷z]ü–Nç,‘Zš‡„2¬×÷rßJ½ á@ëZŠÛxzâðevvç‚ éX_,ŒZL—²Þ\¹lúŠ‹âEÓ;m:óÜ8ö­-FÕ4ý6+hµíèÑä¯ÐÐ>7¾y-SI³ù®®ŽÜ¶´14& Tê«–>§½3NÑ-ì§k‡fžéºË''ð­Jó[Æ¿‘‰Às]k“®_lþÏ€üÇþz7§Ò°5Mµß,ÑHVÞÝ}}+¸·‚;hV(”*(À€$Pè)h¢€)ɦXÈåä´…™ŽI(2i¿ÙwüùAÿ| +½EQþÈÓ¿çÊûàTöö–ö ‹xR Ýv.3SÑ@`øÑ7øbóŒá3[ÕOU²Ž›=¡m‚UÚO¥qþŽMCI¶IP­½³Ïñ·j¡qp¶¿f‘†p€;µèmŒZmŒV° $cZÎÖÃÄ3jòŸ2WÆÕ#…À  Z]£¦û«Žn&99þØVW5°ø~ES‡˜ìZéëÄþ Ž7)³ÀÎh/Z¥–‡ $9†÷ù®cÄ‘·ˆ|qŸ&+p7ûz×}¦éÑéð*+|]ºšÊÑ|5ý›¬]ê2ÜyòÎs÷q¶€61§ ,P¡8ú +à| «®ßê÷ 9r±“ëÿê®÷S³û}„ÖÛÌ~b•Ü;VO‡<1‰F”ÎÁ·F?JÒ‡S†}N{|JœõÍp^<Ò²u+mbÇägQÝ«« °ÕeÔ ¼’;—<w„RÍáùu ¸fÕ.„ë ÊÆ‹µsêhû_´¶ÍÁïaïŠãþ –æóS¸a¾áÊ¡=MvZ¾œ5-.[ æ ë·#µPðï†âÑmÖ3+NÊIRz   úž¤–(ª0÷qy䚃M²X]®îäW»“ïð£ÐV±à›­WQ{¹5W\Ÿ‘BýÑéT¿á]ÝÐj_×üh±ME/õ-Áa +‘¼ ÇJà¼mm{{~/2gß»±šî|?£®‹¦-§™æœ’ΈšÄ¿ðBÉ©›í:õì¥c–Ú;Ð@ÿ`ÑàÞ"€rÆ®ÆâHÕÀ 0Î diÚ +ÛÈ&¼¹’öqÑ¥< ­šZ(¢€ +*­ýý®šòe†2vîoZ}µÝ½Ò+Á2H¬26œñ@ÑEVLò3]ÿ׺3ZÕ“üŒ×õîŸÌеQ@Äø£ÆWZ4‚8ìwgkÉÐþdø¢éô›f´´7WÒǹ•Ê´ÖÑ^s§xòþ-XYëÉæÚp0V·5݆h´K6»‘GÌà|¢€:ª+€ðÿŽ.®5Qa«@‘HÇh c»îÙ ¢¹mGÄò¶¢týßíW+÷ÛøR¨_k>)Ò“í–vòÀ9o+¨ÜQXÞñ ®½mæBvÈ¿}QWõ ètë9.nlh2hÕyÏÅKX"³²–8•]¥ :ñZ0xƒ^ÖKI¤YŸ87ñW3ã­VêîÊÖÓQ·ò.á±ÇÝaŽ¢€;ßÈ«aþçõ­êÁðWüŠ¶îZŸPÖ w‹cb‚{Â7žzš×¢¹]FóÄš| s²Úh“–Eâ¯øoÄ0kÖ†HÆÉS‡Œö  º(¨nå’ IeŠ3,ˆ¤ªâ>”5ÈÂK®л7ýõGü$ºçý ³ßT×Ñ\‡ü$ºçý ³ßU¡£k•õÙŠóI’Ò=¹ÞÍž}(~Š( .m¢ºŒ$ •8äž µŠËÇé jyˆØ÷5ìUä~,ÿ’ŒŸïG@¶¿t})iî¥-QEcÙÈǨ¸ŸÖ¶+ËþF=CýÄþµ±@Q@Q@>&ÿÿUÿÐ…j/ÝJËñ7ü€çú¯þ„+Q~èúP¨¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š+Ä¿ñçmÿ_1ÿèU³XÞ%ÿ;oúùÿB  Ò–t¥ Š( Š( Š( Š( Š( Š( Š( Š( Š( Š(  ¯ÿÈ9¿ë´Ÿú­ZÊðïüƒ›þ»Iÿ¡Õ Š( Š( Š( Š(  ‹Ïù´ÿúç'ò­zȼÿ‘‹Oÿ®r*× «ÞÚG{na”¸SýÖÁ«”ãZD2[øøÛÚ¶Y%uBç8®×RðE¥ÝœÒÍ,²Þ[Ì-Æ~•ÊhÿòSßþ»¿õ¯Y›ýKÿºhÈü> o®t«i¶‡?ÃŽ¤WK®øÀi3ÏÊnÑK™³¸÷¬‡¿ò8Üÿºÿν/Yÿ=çýroå@GÂÛù¥K›GbÉsÚ¶üs¯>“aÇW'jŸîZæ~ÿÇõ÷ûƒùÕˆÒ?ü%¶ÊÙòÕPÏšì4? +Ø¥‚K}º¹”nv—žMs¾2Ð?°¼½[G-VÕO½ÙƒÛDËШÅfø¦%—×áÆ@‰˜}@ |)­kHIßUù_ë\®©w?Š|VºT22XÀy´ýìS>IÔÛ¡r¿\Uo†’‡ñ-ûH~gŒã뺀;I|%¤O*;UFå}ìýkÍôXd·øƒ S9wIÈ,{׳ב[ÿÉQÿ·“@âMThúD·#ñ„Ö³tHôï°¤÷÷Ow(Üìì^ÕñE™t‹l}Ó/Í[Úº5¬ëm Œ ì¨ñÔVvR[jD±Ç:¶DzþUÛøkQmWC¶º|ì0ßQVΛcŽm ÿ¾Kl âØ Œ0ƒ€hjËÕôdÆoUØÇ»\­jV>·gªÝ¿³/ÖÐ.wåsº€( ¢Ï9ÿïé£þ]þyÏÿMCýâŸúÇÿ~¨þÇñOýcÿ¿T7ü º'üóŸþþšÜÓtø4Ë$µµ "Läó\ïö?Šè;ýú®‡J†îÞÁ#¿¸ÒŒóÅ\®?Ç×M-¤:M¸ÝqtØÚ; +èµ]J2Ѧ˜óÑW»JÈÐt™¥½}cS_ô©~âùf¾”¥ i‰¤éPÚ åFXúšÓ¢Š(¢ŠÊ¼ÿ‘‹Mÿ®rÿ!Zµ‡«Á%ƹ¦¤S¼ ²S½1ž‚§þË»ÿ µÏä¿á@´VWö]ßý®%ÿ +?²îÿè-sù/øP­•ý—wÿAkŸÉÂ컿ú \þKþßȽ{þçõ­H¿Ô§û¢±î´9®íÞ õK–Æay©F•tV¹Àã¢ÿ…kQY_Ùwô¹ü—ü(þË»ÿ µÏä¿á@´VWö]ßý®%ÿ +?²îÿè-sù/øP­•ý—wÿAkŸÉÂ컿ú \þKþ«EeeÝÿÐZçò_ð£û.ïþ‚×?’ÿ…jÑY_Ùwô¹ü—ü(þË»ÿ µÏä¿á@´VWö]ßý®%ÿ +?²îÿè-sù/øP­Csp–Ð4ÒgjŒœ š¡ý—wÿAkŸÉ“û.ìÿÌZçò_ð S¾}KÆV·rZ\}Š&3ù×¥[\%Ì ,YØÝ20k;û&çþ‚—÷Êÿ…/ö]Øé«\þKþ§+‰Ü •ãÖ¹› cSÖ¼ëqböƒqS+v_ñ­O컿ú \þKþƒJº5[Ÿûå€/YÚÇgÅàu=Éõ«•ý—wÿAkŸÉÂ컿ú \þKþ«EeeÝÿÐZçò_ð£û.ïþ‚×?’ÿ…jÑY_Ùwô¹ü—ü(þË»ÿ µÏä¿á@´VWö]ßý®%ÿ +?²îÿè-sù/øP­•ý—wÿAkŸÉÂ컿ú \þKþ«EeeÝÿÐZçò_ð£û.ïþ‚×?’ÿ…jÑY_Ùwô¹ü—ü(þË»ÿ µÏä¿á@´VWö]ßý®%ÿ +?²îÿè-sù/øP­•ý—wÿAkŸÉÂ컿ú \þKþ«EeeÝÿÐZçò_ð£û.ïþ‚×?’ÿ…jÑY_Ùwô¹ü—ü(þË»ÿ µÏä¿á@´VWö]ßý®%ÿ +?²îÿè-sù/øP­•ý—wÿAkŸÉÂ컿ú \þKþ«EeeÝÿÐZçò_ð£û.ïþ‚×?’ÿ…jÑY_Ùwô¹ü—ü(þË»ÿ µÏä¿á@?ä[þ»¯ò5åvšå‹–µ¸’"FÖÅz7Ä[)íôyo¦|à6¸èkËè´Ó>"ê–¹iÒàž®ÇMñþ‘{òÊÍlÜu5ãUvÇJ¾Ô‹KieÁ•^{üV÷*Z £¥XσþFk¿ú÷Oæk†Ð¼ ­Âë$·¦Ì+ƒµÕØé–ò[ø†í%¸{†òæ|g©  ê(¢€<ãâÏú›÷›ùWWá#‹Ã¶LˆhÁ'Ö¹_‹?êtÿ÷›ùW]áOùì?ë â|hšõ› Ã„×øãþGؾ‘Wyã G¼ð­ÌqŒ°@ß•bü1…_L¹¼nf’RvóD“DÑÈ¡‘†5çÿ /”Û\رÃ+o÷¯C !Ó]´›hÉ<› +û•±ñ/Qg¸´Ó°¬ÁœzóÅRžÔê_Ä7$n‘Û¡ø”‰­îO—±p~†€=7KµŽÏM·‚0ª•ÃüX…­ŒÛFòåsíŠíô‹´½Ó-çƒAÒ¸¿‹ò°ÿ®§ùPAáòühÿ݈Ÿç\ïƒnoï5 ZîÙ ‘Ú\+@ôÐøIKø6ÕGVˆç\O‚õDÑbÿ¾ÅM‰*nÕ×ÔŠùÌI! rOlš÷?Y ÚFÅË2ï;º‚{PåQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@^ÿs×i?ô#Zµ•áßù7ýv“ÿB5«@Q@Q@Q@Q@Ÿò1iÿõÎOåZõ‘yÿ#Ÿÿ\äþU¯@G<ÑÛÆd•Õw'%CskÜ^]Äk"g8a@C¤ÞÛ§Ä3tÒ NÄ1éÍzÝÅÔ c$í*ù[OÍž*§ü#úNsö3þí[k V´û) ÜÇ廂ßųI4Šˆá‚’x<צë·0Å¡Ý;Ȫ$õâxI"ÂÝ«SØZÜ[¤@}Õ#@eðÂî mFé&‘PÈ£nãŒÖÿÄ] ïì㿵]ÒÁ÷€êVºUÐ4¥9[ÂÖŽÕÛ·n1Šä<âk{­:;K¹+ˆFÜ9ÆEKãjì·±²q=ÕÏÈ9àõ«×¾Ñïe2ImµÏR‡mYÓ|?§i¾ÚÜþórhŸ…t1¥èÚAûÉT™?ó©ëÁÞ+óÚ6òwœz2šöj¥¨évzœ>]ä+"öÈäPL^3Ò%¶$ùŽ"þ"}+Îmo•> Ë•òWÏ,Àÿ z]‡„t}>q4Ãxä9ÅJ<1¥}ºK¶¶WšFÜKsÍVñ=‚xƒÃÒ b‡Ì‡ÜWáŸ\xqžÆö&hTýÓÕk×c#@ˆ¡Tt²uO éz¬žeÕ°.z²ðMs·>=Šý>Ë¥[Ë%Ä¿(,>î{×Y¢Ùµ†— 6éËŸRzÕ}/Úf’Û­-¿÷&µè¢Š(¢Š(ªZ¦¥o¥Ù½ÍË…U{š»Uîì­¯P%Ô)*ƒf€<âé·Z‘¼Õ¯åŸÜÄ*¾ÿZÛÿ…£ã„Ÿþù®ƒþí'þ| ÿ¾ði?óáýð('Ãþ#—Ä:“›xÌvpŽIêƺª­gcmb…m`HUŽHQŒÕš(¢ŠÊ¼ÿ‘‹Mÿ®rÿ!Zµ•yÿ#›ÿ\åþBµh¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(”øƒ§Ýj: +Cg K ”6ÕôÁ®GLøo}pÞL¶êT'èkÖh _Mð.c’ð›– gÍ9ûWIB¸Š4AþÈÅIE“üŒ×õîŸÌÖµdÁÿ#5ßý{§ó4­EPâßë~"š<$E;Fü“ï[Þ¶Ôì,£³¾Ž-‘.ѲOá[ÔPŸx¯Ãοª-¬ÇÚƒw$g­uš"ê0Ù,7ñD5 +¬Õ«EyƹáMsV×?´vÛÆF6®þÃ¥w:wÛÓf£jàmù[!ªõçš—„õ 'V:ž„ÀŒäÅý+I5ŸÝÅä&“äJF<×<zìh   øyt,ó?›y9Ìý;Å>‡_°ò˜ì™9ý nÑ@W¦Ùø³ÃókHŒ±gŒŒ­Xñ7‡u½JÎÖk‚g»yäO»â½2Šç<%aªéÖ[^´^Tc +«Ö±¼eà¶Ô'7úq ?ñ§MÞõÞQ@Ee¦øÇ"Õ$¹Š.™'Šô/ hcF³"G2ÜÊwI!êMmÑ@Q@Q@Q@Q@¯^æ8siK&z3`b¼ûS𞽨k¿Úöu0!Cp1Ò½*Š¡¦> É¶þã* +6sW袀 +(¢€1ì¿äcÔ?ÜOë[eÿ#¡þâZØ Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( ân’×Z|wñä›~gŒòŠúU³[ý2âÙ”7˜„zgµ|ýu []K ãtlTãÚ€4|1§O]µ·Ãl. ì{Ò®Õ +:ŠóO…šfén5F~DnÇÖ½6€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€2¼;ÿ æÿ®ÒèFµk+ÿòoúí'þ„kV€ +(¢€ +(¢€ +(¢€ +(¢€2/?äbÓÿ뜟ʵë"óþF-?þ¹Éü«^€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€2¯?äbÓ뜿ÈV­e^ÈŦÿ×9­Z(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š+&ù®ÿëÝ?™­jɃþFk¿ú÷OæhZŠ( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š(  {/ùõ÷úÖÅcÙÈǨ¸ŸÖ¶(¢Š(¢Š(¢Š(¢Š(¢Š§¨j0ééJ²9‘¶*Æ»‰4rŠÉþÝOùñ¿ÿ¿4n§üøßÿßšÖ¢²·Sþ|oÿïÍÛ©ÿ>7ÿ÷æ€5¨¬ŸíÔÿŸÿûóGöêÏÿýù  j+'ûu?çÆÿþüÑýºŸóãÿ~hZŠÉþÝOùñ¿ÿ¿4n§üøßÿßšÖ¢²·Sþ|oÿïÍÛ©ÿ>7ÿ÷æ€5¨¬ŸíÔÿŸÿûóGöêÏÿýù  ZñJÙkÂhÜÜ.oJôÏíÔÿŸÿûóX^&1k)iþ|Æ ƒ0àï@ÞÓF—áëh¶‘Æ÷Ï&·k5¨‘ÂøÉ4ïíÔÿŸÿûó@ÔVOöêÏÿýù£ûu?çÆÿþüе“ýºŸóãÿ~hþÝOùñ¿ÿ¿4­Edÿn§üøßÿßš?·Sþ|oÿïÍkQY?Û©ÿ>7ÿ÷æíÔÿŸÿûó@ÔVOöêÏÿýù£ûu?çÆÿþüе“ýºŸóãÿ~hþÝOùñ¿ÿ¿4­Edÿn§üøßÿßšXµÈ^â(ZÞê&•¶©’, ЭQ@Q@Q@^ÿs×i?ô#Zµ•áßù7ýv“ÿB5«@Q@Q@Q@Q@Ÿò1iÿõÎOåZõ‘yÿ#Ÿÿ\äþU¯@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@WŸò1i¿õÎ_ä+V²¯?äbÓ뜿ÈV­QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE“üŒ×õîŸÌÖµdÁÿ#5ßý{§ó4­EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP=—üŒz‡û‰ýkb±ì¿äcÔ?ÜOë[QEQEQEQEV>·ÿšOý|ÿ즶+[ÿÍ'þ¾öS@QEQEQEQEQEQEQEQEQEQEQEQEQEQEQE•¬ÿÇΛÿ_ÐÖ­ek?ñó¦ÿ×Çô4«EPEPEPW‡äßõÚOýÖ­exwþAÍÿ]¤ÿÐjÐEPEPEPEPEç"Óÿ뜟ʵ²=EQÔ4«}EãyŒãÎÒŒTóUá´ÿž×_÷øÐÆG¨£#ÔV?ü#¶ŸóÚëþÿ?á´ÿž×_÷øÐÆG¨£#ÔV?ü#¶ŸóÚëþÿ?á´ÿž×_÷øÐÆG¨£#ÔV?ü#¶ŸóÚëþÿ?á´ÿž×_÷øÐÆG¨£#ÔV?ü#¶ŸóÚëþÿ?á´ÿž×_÷øÐÆG¨£#ÔV?ü#¶ŸóÚëþÿ?á´ÿž×_÷øÐÆG¨£#ÔV?ü#¶ŸóÚëþÿ?á´ÿž×_÷øÐÆG¨£#ÔV?ü#¶ŸóÚëþÿ?á´ÿž×_÷øÐÆG¨£#ÔWÐéãÅ+¥ý®ë>VJy÷¿ýU¹ÿí§üöºÿ¿Æ€62=E¢±ÿá´ÿž×_÷øÑÿí§üöºÿ¿Æ€62=E¢±ÿá´ÿž×_÷øÑÿí§üöºÿ¿Æ€62=E¢±ÿá´ÿž×_÷øÑÿí§üöºÿ¿Æ€62=E¢±ÿá´ÿž×_÷øÑÿí§üöºÿ¿Æ€62=E¢±ÿá´ÿž×_÷øÑÿí§üöºÿ¿Æ€62=E¢±ÿá´ÿž×_÷øÑÿí§üöºÿ¿Æ€62=E¢±ÿá´ÿž×_÷øÑÿí§üöºÿ¿Æ€xAñ›ƒÿ,åþBµ«2ÏDµ´º[”i^Eî[õ­:(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š+:ïHŠæìÜý¢æJ…&6ä +Ñ¢€2¿±ýuûÿÿÖ£ûÐGQÿ¿ÿýjÕ¢€2¿±ýuûÿÿÖ£ûÐGQÿ¿ÿýjÕ¢€2¿±ýuûÿÿÖ£ûÐGQÿ¿ÿýjÕ¢€2¿±ýuûÿÿÖ£ûÐGQÿ¿ÿýjÕ¢€2¿±ýuûÿÿÖ£ûÐGQÿ¿ÿýjÕ¢€2¿±ýuûÿÿÖ£ûÐGQÿ¿ÿýjÕ¢€2¿±ýuûÿÿÖ£ûÐGQÿ¿ÿýjÕ¢€2¿±ýuûÿÿÖª÷ÚI‚ÆySQÔ7"Ÿ¾>•»U5_ùÝ×&þT—¦éms¦ÛO&£¨o’5fÄýÈúU¯ìAÿAGþÿÿõªmþ@¶_õÅ•_  ¯ìAÿAGþÿÿõ¨þÄôÔïÿÿZµh  ¯ìAÿAGþÿÿõ¨þÄôÔïÿÿZµh  ¯ìAÿAGþÿÿõ¨þÄôÔïÿÿZµh  ¯ìAÿAGþÿÿõ¨þÄôÔïÿÿZµh  ¯ìAÿAGþÿÿõ¨þÄôÔïÿÿZµh  ¯ìAÿAGþÿÿõ¨þÄôÔïÿÿZµh  ¯ìAÿAGþÿÿõ¨þÄôÔïÿÿZµh  +\V2Ë*K<²KÍ+îtßúøþ†µk+Yÿ7þ¾?¡  Z(¢€ +(¢€ +(¢€2¼;ÿ æÿ®ÒèFµk+ÿòoúí'þ„kV€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +d²,Q<÷TiõÎøãQþÎðÝÃ+2É/îЯbhËä×$oIf}¾w Žvg§å^Ý ‹41Ê¿uÔ0ükçœç½{g€µ#¨ønìÍ$'ËbÝ覢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(ªš¯ü‚î¿ë“*·U5_ùÝ×&þT‰ÿ [/úâ¿Ê¯Õ þ@¶_õÅ•_ Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( ±õ¿øüÒëçÿe5±Xúßü~i?õóÿ²šØ¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢ôâ¼ûƾ"Öô‰5X Ž\ìe9j¯ÃßO©C-Ûo–ò¹êG½vôQU¯í~Ûe-¿šðùƒÐà¥Y¢¹øBý5ûîøBý5ûî€:ú+ÿ„ ÿÐsQÿ¾ëKDðñÒ.^oí«­Ë·lÍ(v‘ˆU$ôµ^øí±œŽ¡ ý(Ï,nN¹ñ»üÑ[vâ½+¯+økûß^»uØOë^«@mÓh¿e€°Ý7+Øf½#­y7ŽÅã¨x?»þuëÿ«_  VV³ÿ:oý|CZµ‹âÖÝôù\1UŸ£'§¥mQY?ÛöŸóÎëþü5ÛöŸóÎëþü5kQY?ÛöŸóÎëþü5ÛöŸóÎëþü5kQY?ÛöŸóÎëþü5ÛöŸóÎëþü5/‡äßõÚOýÖ­ext0Ó2ÈɺW``àšÕ Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( ¦yÏ$ÿ¾EIEc41ÂLƒËL}˜ñ´zÖ¯‘üòOûäVkÈΟõìkPRÑEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQESUÿ]×ýroåVꦫÿ »¯úäßÊ€#Ñ?ä eÿ\WùUú¡¢ÈËþ¸¯ò«ôQEQEQEQEQEQEQEQEQEQEQEQEV>·ÿšOý|ÿ즶+[ÿÍ'þ¾öS@QEyŸÅøùÓ¾üÅwº'ül¿ëŠÿ*óÿŠ²£^X"°,ªÙ·Jï´ MÈ£%jóˆßò6Zÿ¸ŸÎ½Rõÿº?•yOÄWSâ»|0;UsíÍz¥¬‰%´LŒJŽAö )׿ä¥Eÿ]’»ˆ³¼“Ë$ouSô5Åëò øŒŽXl&NzW¤x‹N]cBžÝH%—r~ÔðÔ©ðÒÔ9ÍuÄdë^aà Xi³éWߺ,ß)n0kÒ..à··i¤•UÎI +·Ciñ(Ç ç`ãÒ§ñÌæOÚBÿr2˜üqZ^±mWÄ÷zÓ¡î>^{š¡ñ/NžßW‡T‰IF?„Ž”ê +P¦8¯8ø³ÿ0ïøô®Ã^)±Ô4Ø„³¤s¢€êÇ×!ñ3S·¿–Í-˜ºÅ».>é·ÿšOý|ÿ즶+Ä$7\’0D[žXœòšÛ¢©kiÿóùýö(þÖÓÿçòûìPÚ*—ö¶Ÿÿ?ßbím?þ ÿ¾Å]¢©kiÿóùýö(þÖÓÿçòûìPÚ*—ö¶Ÿÿ?ßbím?þ ÿ¾Å]¢©kiÿóùýö(þÖÓÿçòûìPÚ*—ö¶Ÿÿ?ßbím?þ ÿ¾Å]¢©kiÿóùýö(þÖÓÿçòûìPÚ*—ö¶Ÿÿ?ßbím?þ`ÿ¾Å]¢©kiÿóùýö(þÖÓÿçòûìPÚ*—ö¶Ÿÿ?ßbím?þ ÿ¾Å]¢©kiÿóùýö(þÖÓÿçòûìPÚ*—ö¶Ÿÿ?ßbím?þ ÿ¾Å]¢©kiÿóùýö(þÖÓÿçòûìPÚ*—ö¶Ÿÿ?ßbím?þ ÿ¾Å]¢©kiÿóùýö(þÖÓÿçòûìPÚÊÖãçMÿ¯èjÇö¶Ÿÿ?ßb³õë[›Í5 ¸ŽFóó…lö4»EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPKÈΟõìkVKÈΟõìkPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPU5_ùÝ×&þUnªj¿ò ºÿ®Mü¨=þ@¶_õÅ•_ª'ül¿ëŠÿ*¿@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@E4\(Y£Is†©h  +Ù–?óçýûfXÿÏœ÷ìUÊ(ŸöeüùÁÿ~ÅÙ–?óçýûrŠ§ý™cÿ>pß±GöeüùÁÿ~Å\¢€)ÿfXÿÏœ÷ìQý™cÿ>pß±W(  +Ù–?óçýûfXÿÏœ÷ìUÊ(ŸöeüùÁÿ~ÅÙ–?óçýûrŠ§ý™cÿ>pß±GöeüùÁÿ~Å\¢€)ÿfXÿÏœ÷ìVOˆ´û8í-ÊZ¤ÜFtÍtUâ_øó¶ÿ¯˜ÿô*º4ËÇœ÷À£û2Çþ|àÿ¿b­Ž”´Oû2Çþ|àÿ¿bìËùóƒþýŠ¹ESþ̱ÿŸ8?ïØ£û2Çþ|àÿ¿b®Q@ÿ³,çÎûö(þ̱ÿŸ8?ïØ«”P?ìËùóƒþýŠ?³,çÎûö*åOû2Çþ|àÿ¿bìËùóƒþýŠ¹ESþ̱ÿŸ8?ïØ£û2Çþ|àÿ¿b®Q@ÿ³,çÎûö)ñØZDá㶅t*€Vh Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š(  –ÿ‘?ëØÿ:Ö¬–ÿ‘?ëØÿ:Ö Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( ªj¿ò ºÿ®MüªÝTÕäuÿ\›ùPz'ül¿ëŠÿ*¿T4OùÙ×þU~€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +(¢€ +Æñ/üyÛ×ÌúlÖ7‰ãÎÛþ¾cÿШ`t¥¤)h¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(%¿ägOúö?ε«%¿ägOúö?ε¨¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(ªš¯ü‚î¿ë“*·U5_ùÝ×&þT‰ÿ [/úâ¿Ê¯Õ þ@¶_õÅ•_ Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( ±¼Kÿvßõóþ…[5â_øó¶ÿ¯˜ÿô*Ø)iJZ(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢ŠÉoùÓþ½ó­jÉoùÓþ½ó­j(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š*¦«ÿ »¯úäßÊ­ÕMWþAw_õÉ¿•G¢ÈËþ¸¯ò«õCDÿ-—ýq_åW袊(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(ªz‚j6Âw 2ArŠÉþÈŸþ‚—Ÿ÷Ðÿ +?²'ÿ ¥çýô?µ¨  Ÿì‰ÿè)yÿ}ð£û"ú +^ßCü+ZŠÉþÈŸþ‚—Ÿ÷Ðÿ +?²'ÿ ¥çýô?µ¨  Ÿì‰ÿè)yÿ}ð£û"ú +^ßCü+ZŠÉþÈŸþ‚—Ÿ÷Ðÿ +?²'ÿ ¥çýô?µ¨  Ÿì‰ÿè)yÿ}ð£û"ú +^ßCü+ZŠÉþÈŸþ‚—Ÿ÷Ðÿ +?²'ÿ ¥çýô?µ¨  Ÿì‰ÿè)yÿ}ð£û"ú +^ßCü+ZŠÉþÈŸþ‚—Ÿ÷Ðÿ +?²'ÿ ¥çýô?µ¨  Ÿì‰ÿè)yÿ}ð£û"ú +^ßCü+ZŠÉþÈŸþ‚—Ÿ÷Ðÿ +?²'ÿ ¥çýô?µ¨  Ÿì‰ÿè)yÿ}ð£û"ú +^ßCü+ZŠÉþÈŸþ‚—Ÿ÷Ðÿ +?²'ÿ ¥çýô?µ¨  Ÿì‰ÿè)yÿ}ð£û"ú +^ßCü+ZŠÉþÈŸþ‚—Ÿ÷Ðÿ +?²'ÿ ¥çýô?µ¨  Ÿì‰ÿè)yÿ}ð£û"ú +^ßCü+ZŠÉþÈŸþ‚—Ÿ÷Ðÿ +?²'ÿ ¥çýô?µ¨  Ÿì‰ÿè)yÿ}ð£û"ú +^ßCü+ZŠÉþÈŸþ‚—Ÿ÷Ðÿ +?²'ÿ ¥çýô?µ¨  Ÿì‰ÿè)yÿ}ð£û"ú +^ßCü+ZŠÉþÈŸþ‚—Ÿ÷Ðÿ +?²'ÿ ¥çýô?µ¨  Ÿì‰ÿè)yÿ}ð£û"ú +^ßCü+ZŠÉþÈŸþ‚—Ÿ÷Ðÿ +?²'ÿ ¥çýô?µ¨  Ÿì‰ÿè)yÿ}ð£û"ú +^ßCü+ZŠÄþÀo´‹í+¿4.ÝÛ‡OÊ¥þÈŸþ‚—Ÿ÷Ðÿ +Ö¢€2²'ÿ ¥çýô?Âì‰ÿè)yÿ}ð­j('û"ú +^ßCü(þÈŸþ‚—Ÿ÷Ðÿ +Ö¢€2²'ÿ ¥çýô?Âì‰ÿè)yÿ}ð­j('û"ú +^ßCü(þÈŸþ‚—Ÿ÷Ðÿ +Ö¢€2²'ÿ ¥çýô?Âì‰ÿè)yÿ}ð­j('û"ú +^ßCü(þÈŸþ‚—Ÿ÷Ðÿ +Ö¢€2²'ÿ ¥çýô?Âì‰ÿè)yÿ}ð­j('û"ú +^ßCü(þÈŸþ‚—Ÿ÷Ðÿ +Ö¢€2²'ÿ ¥çýô?Âì‰ÿè)yÿ}ð­j('û"ú +^ßCü(þÈŸþ‚—Ÿ÷Ðÿ +Ö¢€2²'ÿ ¥çýô?Âì‰ÿè)yÿ}ð­j('û"ú +^ßCü(þÈŸþ‚—Ÿ÷Ðÿ +Ö¢€2²'ÿ ¥çýô?Âì‰ÿè)yÿ}ð­j('û"ú +^ßCü(þÈŸþ‚—Ÿ÷Ðÿ +Ö¢€2²'ÿ ¥çýô?Âì‰ÿè)yÿ}ð­j('û"ú +^ßCü(þÈŸþ‚—Ÿ÷Ðÿ +Ö¢€2²'ÿ ¥çýô?Âì‰ÿè)yÿ}ð­j('û"ú +^ßCü(þÈŸþ‚—Ÿ÷Ðÿ +Ö¢€2²'ÿ ¥çýô?Âì‰ÿè)yÿ}ð­j('û"ú +^ßCü(þÈŸþ‚—Ÿ÷Ðÿ +Ö¢€2²'ÿ ¥çýô?Âì‰ÿè)yÿ}ð­j('û"ú +^ßCü(þÈŸþ‚—Ÿ÷Ðÿ +Ö¢€2²'ÿ ¥çýô?Âì‰ÿè)yÿ}ð­j('û"ú +^ßCü(þÈŸþ‚—Ÿ÷Ðÿ +Ö¢€2²'ÿ ¥çýô?Âì‰ÿè)yÿ}ð­j('û"ú +^ßCü(þÈŸþ‚—Ÿ÷Ðÿ +Ö¢€2²'ÿ ¥çýô?Âì‰ÿè)yÿ}ð­j('û"ú +^ßCü(þÈŸþ‚—Ÿ÷Ðÿ +Ö¢€2²'ÿ ¥çýô?Âì‰ÿè)yÿ}ð­j('û"ú +^ßCü(þÈŸþ‚—Ÿ÷Ðÿ +Ö¢€2²'ÿ ¥çýô?Âì‰ÿè)yÿ}ð­j('û"ú +^ßCü(þÈŸþ‚—Ÿ÷Ðÿ +Ö¢€2²'ÿ ¥çýô?Âì‰ÿè)yÿ}ð­j('û"ú +^ßCü(þÈŸþ‚—Ÿ÷Ðÿ +Ö¢€2²'ÿ ¥çýô?Âì‰ÿè)yÿ}ð­j('û"ú +^ßCü(þÈŸþ‚—Ÿ÷Ðÿ +Ö¢€2²'ÿ ¥çýô?Âì‰ÿè)yÿ}ð­j('û"ú +^ßCü(þÈŸþ‚—Ÿ÷Ðÿ +Ö¢€2²'ÿ ¥çýô?Âì‰ÿè)yÿ}ð­j('û"ú +^ßCü(þÈŸþ‚—Ÿ÷Ðÿ +Ö¢€2²'ÿ ¥çýô?Âì‰ÿè)yÿ}ð­j('û"ú +^ßCü(þÈŸþ‚—Ÿ÷Ðÿ +Ö¢€2²'ÿ ¥çýô?Âì‰ÿè)yÿ}ð­j('û"ú +^ßCü(þÈŸþ‚—Ÿ÷Ðÿ +Ö¢€2²'ÿ ¥çýô?Âì‰ÿè)yÿ}ð­j('û"ú +^ßCü)²h’KFúáV#pä~U±ECkÚÚÅV5 +3è*j( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( ŠËÕ5Ë]1¦Û[jçGÃ^(‹Ä3ܤ0”X@!‰ë@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@RPÑ\Œ¯|A¢0¸¶½/j纖µ|y{ªiÂöîøÌI*c +ÕQU51!²Å9”k?ÃqêMköFìÌd*më@tQYÚÌ…ŘM2å-§Ü v\ŒPÈeø·þƒ0ߺ?²ü[ÿA˜?ïÝuôW!ý—âßú Áÿ~ëoD¶Ôí¡j·is!?)UÆjQE›¯F¡ßîPpç§û&¸_„ÿëµ÷Wù×{®Èÿþ½ßÿA5Á|'ÿ_¨º¿Î€=2Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š(  +Ξš¦™=«ó¯ÐלøP}ÄéWd¬r6ÑžÍÛó¯U¯3ø‘¥5ìÍ°ÆXÇf wÙ¼›$?4Íóc²ŠÒqª/Fsž¸“V5)Ыl þ¦ºZ+;Z¾¹°³ÚY½ä…€òÔàãÖ´h Cþgþ…Éÿïª?á(Öè\Ÿþú®¾Šä?á(Öè\Ÿþú­½Q»Ôa‘ï,É”à+æµ( Š(  +çü€ïÿëÝÿô\Âõú‡û«üë½×xÐïÿëƒÿè&¸/„ÿëïÿÝ_ç@™EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPY&Žô‰-æMþqƒý£Ò°> endobj +2081 0 obj << +/D [2078 0 R /XYZ 63.034 584.788 null] +>> endobj +951 0 obj << +/D [2078 0 R /XYZ 195.039 214.842 null] +>> endobj +2077 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F11 674 0 R /F57 1167 0 R /F56 1170 0 R >> +/XObject << /Im3 2076 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2088 0 obj << +/Length 869 +/Filter /FlateDecode +>> +stream +xÚ½WkOÛ0ýίȄ4%qý~ˆ1©L…±­´Ú" ÆPM‚"A‹ú°_?'qÒ&5FL¨BÈqîñ¹÷ø^»7ȃúy +…™Ç!BJo|·½m9ÞAH¸†9Œv:GÒS@qâEi›%Š/|¤dp}í1ºÂ! @9sùü¥;Œzò!!Ô— …~ïl¨_N{§ÑI7ÄN§9ÙN/ªÃ¢„N¸3rB%à +{!:¼ŽÙÀJ¥^ÈóZ%“žÔ‹ùšÌ +’k€ˆç‘iŽA ˜2oE"&˜¿›¥q’!ÃÌïGß¿Fý^ߺDê]@ ú»zA6IÊ5Q÷pôóäw¯œl]©*gÉí<±!0|™3«ŒjòIœ¥Vˆ5*LÌÂl²hØ¥±ScŸîîGÉãýân—¡ü êwùÂbþ¡Ž÷ò‘ûÓÙ^9ZLÃçMçÚ²ÆÎLíªUò±XHYº©±¯GhM"„˜¯yGZšß¿¨¶þÒ7Ó)Aþ¼ +u¹oJ¬Èâì&3b®—©. ¼p\<%³™qq-ôºz’{_ŒïŸVÖñdQE3ó˜{ͤ«EÙdžýMì±(Û[M\“]›qMOÊçœÕä­c¥A†æ±DÔ O—“ÅH«™¯ +ë,Oº5H}ºÌ†¥+¸áühHEU2ÍâP ÊÅaMú„.êkD÷m‡†ÐMßD®ç¥ï›Mß +è£oÌÅQð;4n))9D"‚€€¬¥’9T{"øT" +Ÿ‘©%Ò)“Šp+fáIí2ådRö¶2•C&³Ê¤pÙ$8Ž&sé¤ ¤ZA#‡Nn׉·q6VoªÓu ëDßâÚüy%€× * `¨¼ëj‘ö$ýÇÕ@“HXéå«û>Z¨õ¬7}2§Ëžw¤›[¨„+ñÑpË`Á +_qmÞ©¦ıwÐ$Â/ö”ŒØJÑVÃMª.¨_W³ÙÕ“«Y`ìYŠ4›ÍÍã8¹½u²pK«ÿë«Ý„ärÓûþºÌ­> endobj +2089 0 obj << +/D [2087 0 R /XYZ 91.925 602.788 null] +>> endobj +2086 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2092 0 obj << +/Length 998 +/Filter /FlateDecode +>> +stream +xÚ­WÛnÛ8}ÏWx_ +ÙQ/B݇ÛÝ]'Á¶h CQd[@l¹ºlê~}Iqäˆ6£a$ÅÙÃÃ^ðÀ“?<`y$0ÏG\ˆA¼>óKÙsu†áÄma>LÏ.>Ñ`¢‘Átqhfzÿ͈ ¡Ë9w&7±óåŸË‡.!óQ¶þ»½¹VåõôóåPgúùæz8›þuñIu.FC—Êr“=êJºIK]+W‰®Iœmîu}=,T9Ùâåy´ÓÕÑ…Õ)§‹,׸ïõ~êê{]àñX}|L7Eú+q±làwº €cí^¡0|뵇¼}«ZÇRú\jîÐraѲA˜3ðe1.UZ±.4Nµ>´¿4µÖɼ¸}«Õx³_³[›\/í9Lœ¸S.@ÉÄ™M®/v½ø©ôVóaG> endobj +2093 0 obj << +/D [2091 0 R /XYZ 63.034 602.788 null] +>> endobj +2090 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2097 0 obj << +/Length 986 +/Filter /FlateDecode +>> +stream +xÚ­WÛnã6}ÏW¸/œ¬ÞEÁÙi‘m·‹\P¸Ài8‘â_V–°î~}‡æÐcZMR#pDQÙ3g†‡íø£½Œ&“=EX’jÝ{˜Þžür@Ñ"F“¸eóÓðàäƒîeI¦xoøøÜË0¿‰!ýÛáo'¤ØØQM’”ÏÆäç_Ï®‡ç}ýÞ9‘Núqš¦Ñùçk˜¼º<¿~<ëk ?^]gçÃ5,Áe¢¸êDîl¶ KÝÓ€Iµ°ËT$š©0 +ØcÊ•$ÑጢÚ%“Ñ驽þE$ùVNå÷ÂNÄöBá½5ÿÌÏÎýðÞ^/®ï®>ý¹z`‰É6 8%‰Ò ‰yDƒÊØYÄpÍ`©Å 1D +ÎdzzfÃÜÝ]ü10ëÁ—o˶Ê4!)Ǩã@T4ðq(—JeT>nØ0¿¢ªìf<™ßUEÞ<¬8R+³Ã‹×QùÎÞ\ãõpÒ¼…\Å¡:ÉE ?Oñ +rå¾ÈUüi¢à~·#4ð¥N³º3™œÙŒªbT#óÍ|^`ëÑýS¤×f|Õö®\ ã7Ë[¯Ú0Sœ:rSnÂTy2˱š®L[,fÐYv®œ!œ¥É8cGGÏ:Gyc‡Ç[3®’ècgç…àQâàSäv ÛÙ†Þ½ü4¶SxŒœît‹.·äøxÇþ`$!™êÚháçË^®“æic"`Zjé³îöº‘ˆÖxù69• ×Y§œZ ?#þòOÅžv<•o‘Skfh\q´dTëÖœ…Ÿ€zkéÿe …Œê=é$ÍB8y¦“‹¢nævX‹æ Õ0¬Ì)Á JZN˺µ5À¹)ê[ªÇhÂïªZøXÝ.~AõßéL A@0ëçÿ®¥a28«¶K†GP\ŽP€à 4šæVpï]¦ÝeMê•*Óu!É tÚ2wÚB„µï÷k!…ÈÜŠZ‡Á‹èŽhÏ]Ÿæå¸Ìý³æsüc³(r_eÃ^h çüÏËŽ¸l³bõ¿WðଙƒA¸Åáë0ÑÑáhà‡púêúb\îíhZ,±(†>Ž¶+ªâkSVŽ¿pGpÐî8öÊíX §.I»ÞM…8EÍuI9^`èeä›Q×üf µ<Ô‹`ÖØÖ\cðvÖáÀ;’ D´ëxv~Ò°9d +lßÃKëßÁ.d;šT‰ÐºC¡ÐÀwDŸ !ó®®1ÜNóõ á´§þ‚<·{ÂÒÚþšÅÐ ^JXú–å‚ã—sëá¿‹˜¡‹endstream +endobj +2096 0 obj << +/Type /Page +/Contents 2097 0 R +/Resources 2095 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2094 0 R +>> endobj +2098 0 obj << +/D [2096 0 R /XYZ 91.925 602.788 null] +>> endobj +2095 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2101 0 obj << +/Length 1096 +/Filter /FlateDecode +>> +stream +xÚ½WaoÛ6ýž_á¡@ 7“LJ")¡I€M ¯m´Т+ Ç’b¶äHòûñ£Ì£,Ê´êvÙ`¤ÈãÝÓãññ„{HüpzòüE®Ã‚ 7Y¡ÞL̼9Â`aƒ‰Ý°y ^¿:!õzÑ´í&Š¿Xã9}›1f½¿~ÕÇÖïï.>ômÏó­Kñôéæúªj¯¢áE?ð¬hx}Õÿý6xl½znà0ʌʡ‹peqtÕØ|Dæ“NøÊfÐ D$ÚÀO˜ï.݄þ۷}æëv5íÛ.FÈ:ëÛD |²Ïãå—˜ÏxühÛ_û6¶^TÐD@#'$!xð”^NÒR. ‚xZŠËWÃ7ÃhôríwçK†Äs Ügb04ƒùÆ‹Ù` ;"F÷TleÄ<—ˆfùøVöÊ»DvÒä^cQÀÜ4ÏUn­’Çe–&ê…ŸŒÑD[ n©Îˆðêáü|;¸XŽ*Æ1¼kpV™Ù²Á•É–Øc5sŒ:æéé™9è¡6*sÔâ’O[LŠ”€™B¶ß’<“½qKBY Ög€ Õ^RÙ{>K³\õKЊßI ˆ¢»¤€y²ÌŃڰã<WLÇ<µ1 +ø€û6™Ö‘ë•Sžà oßׄÊÕQñ´åIå’Ð,6ÄŠ’É]Z¡â“ñ|¾VÖŠÅlÙ¢5ÍJõ’÷+ž'1ÀY•dy:¬8KÀß<{HòÆg[íqÎ+€ññ\÷«q.Hˆð«Iɳœ­ +ÇÞWág‡È.•U›TÝ—,ÇpÖ­ÙÍ ÙL}‡Š25(Š²Ð!QºI––<]%ÆÃBØ) ŒîÃÿæÔá}§n³±‰Qæ@(:h«ðÿ¸UÃV5!Uÿ$ϵ+Jˆ_qŸomŽ…Hü*9ªººÊþ‹Þߌ®ß^|6#vÅ=KQÐXY舅H&Hœe%ìÖhôáò£1Ǩ·—PÇXGŽîÈ?œ§ÍÁNšTU +tëÚãÅêgX ˜#îì.ÖÀBÇO~„5úT¬±C„€O$Ôxý²öõ›ÌÕ]§Žî8Žë @žîLÓ +j=ð4κj†UñÀ˺~ø»Q>¬UI±^ þ B@ÁrrRˆËµÊ #eÌ…`R=šõ¨k^àG}ƒ ÉðºèÐ=ÒCˆ#êåå‘zh©¡v%û³U3­„yÊçó¹Èvåv\˜®uqAÒj^òeUlª†=ûG[€š%ÌžÕ*ÓEý³¥òQ“ôB¶0zªQ+ }9r²‡è9 Ñ.¦ÁBÇÀÙÿqׄëguž‰ï)×ëR,°ÐQ‹û›îw Îx€vãRâ„Èí0Тøp®¶:Oõ+ñ_k|H": »{cÊØ;„±æ÷5|‡â,»¡éëÚó=‡áê©1ùÆ@áDendstream +endobj +2100 0 obj << +/Type /Page +/Contents 2101 0 R +/Resources 2099 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2094 0 R +>> endobj +2102 0 obj << +/D [2100 0 R /XYZ 63.034 602.788 null] +>> endobj +2099 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2105 0 obj << +/Length 867 +/Filter /FlateDecode +>> +stream +xÚÍWkOÛ0ýÞ_‘}©X\?â—`“ØÔml*–I›ª M¡¥¥ûõsê›&iÝP “¦*jbߟûð ñ°ùO¤)÷¦H*åu5ì]™™Ï5ˆ aó!®5>)O#-˜÷–­ÄÝ3ŸbœÇ_Ÿx”ãˆÂH’Ôr +ùøå 7âŸ!c‘¯PJ)ýæÏ–<9nLJb~|xrœ«5ã­ˆq$˜¨džaV¨så)ÃI¸s!EÅœQp×9Ž –úÌì„ FÚ,´†x +4‹Ê£"#I¹ßØ Bnþ§×É­½Ìn¦ýÑÍ£}Úi8—KXÞïYØoÌqz%ã±xÆFmc/Ç!ñëãdòÖÕÎ.ûÓËYï<0sGÒËŽ¼KG­öÉ·ƒ_ó‰eÅkÒôÒdˆò6”±-%÷¯†Ó¡}M»}ôcϹe½%‡h¼¹vã¤;뤚%9´ _+Sm0{hTID"^!Z†(ó'ˆ¦K·%sùDGKQœ FSÜûþmwxoï/n»éðtÉ´*°5‹&,;£Ç’?°3.´ÈW˜@ÞdE–<ƒa×ø•p¹X@Ü ÔªŠ‘DX² +P6äˆa&‘0Ïë  hˆbìàI±‰ * +îÈ"ÜH3±wãdpÑ¿].9“4Äïfã¤QY}òºnßSÌ +æ\|“BrÔ$À£Âþq'1…˜ÈŠ¼@yóÌ!B曟Ì7´¦º¦~,‹d0 ¢0¢UÇ,ż¹7çz<,GâüF÷Ë’?›ÞÝ]#‰bˆ«ªZ‘!ÊÔøæµnrW`_OIΉ— T0$°®ªp€(³Ž +wÚü¾çT_n§ÄQ¬žy.$6–ÿƒ3bý ÅÞ’b„¸ª¡Ž‚¼¿_Ua)ak´/Ú¨çS$³j]`ΚIÿOâÖ{M‘¡”›÷W mežèüdÛ–æ³Z&6oÝVbÌ´mäµ6»“QULj2{“šBÑ Í‘šÂÅ´"ÐP6¤6×,MÍTüÎ?iÙ´@¼ªÍ@™½~†foI3J^›åÏ”n§û¡”­é~ÔSÝÏRÝ¡‘S9]‰ ‚ä¡sítÿܯ{Ë_’ð¨9bT»¾#YÄ૵0ùR‰Lendstream +endobj +2104 0 obj << +/Type /Page +/Contents 2105 0 R +/Resources 2103 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2094 0 R +>> endobj +2106 0 obj << +/D [2104 0 R /XYZ 91.925 602.788 null] +>> endobj +2103 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2109 0 obj << +/Length 2076 +/Filter /FlateDecode +>> +stream +xÚ­ÉŽÛFö®¯Ði@9V¹6nŽsˆ;˜dÞ:Ûh°%¶Ä±$Êåîöüü¼­(ªI;—@€j{ûVe¦~fš8¥Ÿ&Úª4˦‹íDOWpòëÄÄ\@æ=˜ç—“'/c?ÍUž¸éåÍC2—Ë÷Q¦¼šÍÓ4Þüñï_~ŸÍsÑëW3›E¾˜™è-îøèL_òáåln¢?àÕìãåoO^f'Îf*MRi[íbòâ²ÓëD¥>þ®&f¨J6Í€SÒS%N½ÊlÂìl2›ÛÄÆQÙ4³y “Ÿx¸x}õê÷Ÿÿú¥s£Uç‚”‚>qGWWo_¼{ºÝ_-6e!øt¬ÿÕ”Í8vÖa_ü1†¼=~7?á>pZô t‰âÅ{óñ›4”›º'ÅÝ™5̳g¸y[íÕ×rn˜ à3B5²óŒGAê£üð®8@ŒÎC6Y'±p#=ÎĹÂ,IOJ÷Œyñþî;ª»¡ .U °dV#"Ê„6e{lvÌBjœk<¢y¦¬wç\{I27NÙ<‡1SqÆtþSí ÃJL­èotdÁòNçQ»†ƒ¦>®Ö¼öšÇeٖͶڕ¬d¼zðmµ-6¼¾­`½[Ö˜°· {@6àE¸.f†·Ê%Ÿ×»47A6r¡!æÆ«ÜCÅ1Ì“õÍlîó8j‘qNˆw{°iŠ”;J O‹>Ý ò«öõ(w:º\3¬Ï ;XtJ ð²ú‚ଠÌêÝŠFÓQÝ´å’¹Ý4õV¶¸] v6}+â׫Oº­š²hK"Š`:‰5ä¢B6I-j‹h½æð½0:W&÷#ÕÍ H€qfÂù¡ÎHo[vvVdÍÍ}ošë4ZÔ»%Ù²ªEš-Êq ŽükòI)JˆÊ%Ø?I,”û̃ùÄ×Ö(­³3ƒ”wÅv¿)CŒ¤ˆÙ<ºÇÜM‚ûZC¾c±þžÒÞ˜o+í’˜ƒx ×8úaÁE#–ˆ…É—Y³gR ; âç3•ä¡>Ü äÉ•s¸¦CDö.ùž~ÚqpîDš¡ƒ‰ÉˆP”M1éEUÃWk».v<3^+BI²KTÒBV,(À)3*49x³°T%0¦&!d èR¶¯iU®(Ávô¿„* žF>ãMNšV¸ÝÑ aÑ8QTqp&é5V@ºtêoWÛ¦Z´Tž !ÛÂøA_‡`œ*ˆ÷)Wò@oêUµà)oŧ|è(“È4íÊÅçˆj!×™¢}qÜ(»f‹‹# +>,'RÙ@¨ssè Õ{å’¿Žå‰C±hÊmQíG¨ªO[ + ‘bpMà!ÇÔwñÙ¶4‡ ‹)Ï7l' V“ Œ›p!Xbx¤=(F4ÕW²øÚP&ÎÒ2ѽkûb¨®S± MfÑ`˜hÂ{–áv]IE'YÏnVË2\!J“4æƒ8 =ÝJ¾š Š´ÍÏìÑÊ­„ž‚"ƒ™@ :æ¸ØC+÷AC‡:RcìÉuŸ‘Õp@:îâpòœÕ,¹zSG šÓݶ zò&7{^mþÇÔ.êFdÞ`ñQR©S¬6Îsg’ÓYò}+ mhŽŒ†è r„Œr&úÄ7Àkœ×3g! áäBñ¡—£äúv Óz`H¸d2yýRlGŽŠÏjÄ°z¨Ðc]ˆ¥JwØOìe+Dô4Qyê)båótêTbØ>Å!èOO ,ÐÖç§B…‹=цsdº ë³ÓÅ+m~>Vaç“T/2žñ€³Ûªø‚.À{fF…œ;îXq¾TõñÀŽÏ¬2Î…m±YÕ eáz‹å1†Bö–Ø.°À]E·O˳ÏiU“ZIXÖÕÄžœÞfq†ŸqÁ ÐjÁÇ!}Gàøiøé3}~ÙBæ|D cDhë!ÛT+oMÇ•Ïýy­Ll—‘Ú $‰•ÉÀHÐ@^d†b†M;T ´å¨a1øó{ö³øëJÿ®¢¡Õí ž dw–žëy~%Ä]ÿ(`8ç Ø´„´3¼’ºÂÆíIwRóÆ"´+ÒE}õ*Ä_;K5ìçI¬l|nˆŸ7ˆ#ÑJån±“¹ˆºõýÃã‘\:µ>U)h±|ž¼ÿ¨§Ë‰žþ6ÑÊAƒw s w>ÝNœò.•ÕfònòæôòhÍ{Äèåá¬u‚öC +“ònߊ‚ Ïéûn,ÃTÌ•Gt€})·''`“‚d!rŸB A½{¨ož)àMŸ˜Ùß+kUšÄãÊ¡y¿±ôÒ˜+'niCÀMCyü'd +´¾/ÊB +öÅPtàݨEŒ3¥c;µà Þ{s¼= äüú­—'@æÚ$#OÚ„—¥'ø ú ú„ÄUqö(c=º%‚ ·Ñ:z4zšw§Då]…_dBK~EÙC/7ëj±æéײ©C†kºIpRíÚÇ<[5õ­œÂ§E€’·ÿ²w([ªwBãºjÇ$µú\ÒBð°åÁ~G"™€ôdôØŠAîÑs'çÛýeèé) v‰ÖA¢ÇD“ð®5 ëÿæÍgô±‹Î ÅòÒD<åÍéðãÃð•ˆËchó±'S–)}8÷ÿ¬ÛE¸endstream +endobj +2108 0 obj << +/Type /Page +/Contents 2109 0 R +/Resources 2107 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2094 0 R +>> endobj +2110 0 obj << +/D [2108 0 R /XYZ 63.034 602.788 null] +>> endobj +454 0 obj << +/D [2108 0 R /XYZ 63.034 323.33 null] +>> endobj +2107 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R /F48 601 0 R /F11 674 0 R /F47 596 0 R /F10 1027 0 R /F14 1012 0 R /F57 1167 0 R /F56 1170 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2113 0 obj << +/Length 1385 +/Filter /FlateDecode +>> +stream +xÚµXÛnã6}÷W¨äÝŠáý²M +dÛdë-6I·~è" ÇV¾­##m¿¾C‰”(‹vlŠ Ñ…äpæÌ™áQH‚á‡$† CE"1EJëd¼èád +#zÄÍÈÜ”,˜ó~Ø;:׉AF²dx¿ke8¹N)æý›áÇ£sÁ›yDc¤ˆµl§üüëéÕð¬OÒÏýŒ1žjÔÏ”RéÙŸWðòòâìb88ík–—ÖXïlX»Å™@’Ƀž3ÎÊí2çI¢’LPDMkFg&2š&¢´³¾ö®op2Y{1Xú÷c’E2ŽáîyÞû£÷{ãá ÊaOÍae¥‰d ø#0I„’à½)¡:"ÓÕfVÀõaáUÍ"æ°pÀ.Ö»hQBQº¶ùl Íâ1x[Y`¬ +"ð‡˜¤­ hþ7x¿îg$-\AØT e˜‹u#Ì´FÈ”ŒŒ¨,–ÖØz»ß¤&´6™q!ÓÙ²OMZäÓ|S-¸YÀ"Ü£xñARØ(C¢¼"ú嶨œˆ8À2X¶c +÷“‘¹å¦Vˆs_,aŽ»€Jy ´§,È@‚,-Ä*aHcÓÄÃRŒ4•¯FïÆÜ~~3à‘‘¥_$ŽÅXòWC§‡ž€פÅ"ê¨1¸ï:Aa:@é é;ûgWå_™®ÆýŒj‘w=dixnÑ)4Î6 Û€D'µíi$ eG뀎ðA_©gÞ5MS6  q:°1î'¸¯Ò·9öÍiZ<äK{ÇÒéfe‹ì)Bx ÞI© SjDñõz³ZofɨÈçÿôµ¬Jr'mSiå=O ÈÝö1Ÿt#¦:(Ã’IeB# ƒ¦¦•‡ïîä[SÅþÿTñÝT•Ž‰€ü…Et ÇbF Iˆãabˆ³1âñ¢¸™DbA-{¼B;×¼B# +»WènhbÜESÂz“4Á¼ §.fp‚H冣ÔÐuÑ?_Åw±"ÁÔcµFDúohy7r—ÇêºÑZÞLòûÑv^ÉÞòÅ›£¨eí,/Ö·Q[r#ËÌ£kLì-Ã;>ÂÿÔò±ð.Ç«Åjg¶}–VT³åtîîïfýfÄí6»o\¶¿›Ü!qR] ®Æ‘2®ª]ïªWGÕå—Á‡Áðöý`X=¾­.¤nUåãwÎ槫[¨î/ñ#—¨]ßþ^ ³ž¹ íp(T‰T"Ý”-¯ÚB‰âÏXä ‡&] ÉidW7¡2¤!5/vù˜»TÔ‰*URy7^m—nteÉæ²ñôoòEuFŸfó¹£Èê`Ž¥sd”ýÔìèrp }²N_>}«w¢¶Ÿkí¢ôœÙ¨]Âf…¯Âùhœ Í4¡MÖ×{‚¹ "–©#!H†šËnÝ÷;ëöVn%W:o}-…äs›¡Q‰Lk-9Ýmª®Õøä§&Ö0ý?bp8øÐP'„endstream +endobj +2112 0 obj << +/Type /Page +/Contents 2113 0 R +/Resources 2111 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2094 0 R +>> endobj +2114 0 obj << +/D [2112 0 R /XYZ 91.925 602.788 null] +>> endobj +952 0 obj << +/D [2112 0 R /XYZ 247.251 468.789 null] +>> endobj +2111 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F23 1211 0 R /F26 1460 0 R /F20 1030 0 R /F64 1214 0 R /F58 1173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2117 0 obj << +/Length 1809 +/Filter /FlateDecode +>> +stream +xÚµXK“›F¾ëWpDUa˜ƒy9±Ë—${³}`+M™‡ÐjýïÓ¯AÈ"©äÚªÕ£®C] M¶¡=JEÖ²gß·Èÿ„M=áQTâO^H(n£ /=ZÕUÄæ-‘`r'ÑyœH4¹Á®ïp5 ]‡äS}˜Ý‹§™‡_¶l;ÔÑv—¦Iø€ä.öà,½í:ò(ê:Ì{Ë>ÿÒDƒ:;8-RUøÔmÙÁ`/¼‘¦\-úU¼‚¢Ž@“|,tä aß?ñ/‚JCPÔƒl~ŠU +hYüwhž G÷*ÜP ‘7..»[±é}­µ\´NC<ßóZCç1äpõlu?L%Û”±UidÓTxûÈF~*'ur¦2ómNh9Ý'ÐV>@9à)*¯®™ªäŸ–Ö(@_Чbæè<ÜÇà°áDTJ‘à^œ×‡# ] úy4Ô¥㸔s|uY»»1—]éP·”s´sìòa,›æ+®Çü`DÓðì ;“¢#'îRÈæwïž¿û‚ÚVµð¦ˆÁÁè÷TÅg*T÷ŧ,4ýÁí™ü Ù ž‡äŒ)Q +LÉr!|‹& Çóã -k¤À~b™F³ä×ýyT@ZÊ Z“ãtOÆÇ?9˜ð´¹pIô QÓ£èË-?×’_ŽsÕ©™ˆ˜·%Æ,N)#{ôÉèó_Ž +fÒøZ&88)¸óXƒÅ¬åˆ©ºõU¢ç…{˜ (Šù¢Eуl1H¤À|^œÔ¨¾ÃZrnJ*O@ñB…bQ8amðÎàºÃŠ°Ñå­*ÅÀŸà‚Ñ^g¼M(†Å·Û"åd|%Êײår)hŽûžX ŒLÕ>ðÖÓ€%–»ã_8r6¿<ÌÝQ’$‘ÍmäEdµÁÞèyóñsTÐH½ßÄ‘¶Ep1´EÖíÈ +³fóçæ÷k£åyį́ÑZô4Ib`˜Ïòg¤')(%ÿpØ’Ç;1‹Ü¨µï†r/š[3@\f(k§2PHë¼(ÌÂ,Æ™®*1á;º ­¨/žígß–1ô»žhhëÂyÇ“?êö +ü+­[­[¢Hæ»»ÞƒZµ% cÿÄe¦ºöir0j}Ù¢põ+ceš„œ+§™¡›[4Ï2G ˜xuYóº¹ÈùniKnUw+±éó=gÄ„z¸héÎvS™MÃî‹tsHZ¢ d:ꉉαbàÞ$)¼fHU+ž£|.… à&I!n+ïK6 !hVžjR˜øXyÅïÌØo°Vv‡µYTR{{¸°,R <Ó³@Âœ–z&æH‘ÌWÜ7¼1÷s®©Xºõ¢K Àù@XvÆ«ÍÓ«]§•Œ±ÒÎÈ1’§7}ßP6¼÷Ø +„Ã\/ëWù8¿ F&¾xO7rz®›(ý<Ö‚púPOœ'ðR›&xoi0 Íy½K$A,»C}âXÄÞ=2‰¹q@¯Ä²÷²´A©I|/7Ra†¹D×: +žˆ…ñ¿®¨“§ ufìŸE[,‚F/:ɪî¤Ðq¼î•Ø(K­y^QAÇæ?«°¨9…È“ ¼0MZÜxò㤟ü“DTL—Ø­D…Ç{ R¸³bv!@Iøæõž‰‚B r!Ûß™™G:óž¦\KKæØ[‹$©Lì˜~ù¿p[bÍì6ò]u}e¯DLlþA®ÑÞoÖŽGföÂ×{/eQVx7|ŠãøžƒÔlöŠ›M ü?ßÕ’ >P  Òk=Hí°ïȱ†sØåyTÄö&ì¨ •—¥”žÁÑe´¼xqþk€^¢ Lf`£o‹.úÏÁ7ô>ÑúöÉŒ†ò>]öFòIÈšº¶ÕOKB±»’Ü÷;yõÇ3A;“Ø|+É¢ºõ²6¶”endstream +endobj +2116 0 obj << +/Type /Page +/Contents 2117 0 R +/Resources 2115 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2119 0 R +>> endobj +2118 0 obj << +/D [2116 0 R /XYZ 63.034 602.788 null] +>> endobj +458 0 obj << +/D [2116 0 R /XYZ 63.034 584.788 null] +>> endobj +462 0 obj << +/D [2116 0 R /XYZ 63.034 261.985 null] +>> endobj +2115 0 obj << +/Font << /F47 596 0 R /F8 580 0 R /F11 674 0 R /F14 1012 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2122 0 obj << +/Length 3158 +/Filter /FlateDecode +>> +stream +xÚ­ZYs·~ç¯ØÊK†¥,<¸¤ô Ç’%—\NdV^,?Œ¸Kr­=¨=$Ò¿>Ýc;Ø¥§T¥Á`ÝúøC>iáŸxμÐÓ +f›\¯.ÚÉ-<ùþ‚ÇÓ8e:˜óíÕÅ7¯ÜÄ3oääêæXÊÕì—F´æò׫¾y¥U? Å´” §üóõ‹]½¼äͻ˩”ªñìrj­m^¿ùþõK“ÍÛ—ÿ /߆»o¿ÿéÝ›«×?þŒ²/^^e-•ÔÌHsÖ©$³.xõ97†9«àzðp$$Íšr&½Â©Ÿ.~ùµÌ`ê- ºÉ¸n÷~²ºZ1el¼_^ü|ñï1´ÚÉ$ Õfâ3CØZæ[9ÑV3+÷b ˜Ün¶‹=üÞ­"ζG)&[a~×ÍÓ0É´ý$ÉYëlœô¾åj,ǃÒiÆ›õ¥Í~~;ßÂfxÕ|·ø Ë/v‹ ü¬ãËÅ­‚ññm6>åÚ3!,\´Ìk—V™òæþ€ÿïÇ2…fŽó,sª´iëKá£bc#-ãJÇÆ>=îÖ³±ðódÅcÅ + %<Íúé°FT vÓ”  —3Ìè¤Ï§ñë†yŸ”yûá~Y‘öëÃX¸b­7Ù”©4Íó‡±ûæÆ×ç¥ü µ¼ÙŽ5åà]¶Ôt(d¨éãX°³uÙ5Û¶&@ð¤ÅçãtKk»íÿ(í¥ŒR*3 ¯l/ "Œ<Ú__ßß÷­j«¸Z›<„žCbkY+KO-¾/îÀºbñ©pºùí·Š$È9l*Û§˜K{¯O!ÈÃ.•¯ +œéV…é@ †D!{‰#T¦ÆÂ’²H%2懛M%/@"‘‹}-ÐRú¼ÙnVU…­õGXyÅÈC³ &¨/˜ »IYt~[ü‘8öQKfŒ/öŒà Ó~ì+L¹¿ÏÇ +iØ’dÏÇš><×ÝÝáúR¸æ.êr×í+AÞ2«E–7ú{¡™·Ž|®”™HæZMnš§,ÀŠ.¯,eób³ VRMëÖáf³ JÎq§C·Ìø°ÜLEÁÑnm 5€7‡Í~‘•¤ ¸ÁQìçK()Ýòo«‘È¡jf6þ±†—Ma¸º„^åP¨é •ž†<ƒ+¬…#'¤ç4_ºÆ·ïâFK ÙRM–u5ç˜ëéGÌ:CÀÛX’£”yúØc¨KöS0„àû‰hãÝžX¶0!Æqd6%†=TÒ;`Vîd€@iÔÁF9a¢Ë}—Cw“!Æ”…{>0\ÒAÔ™“g˜È x¸-hxQ 4_¡á°àÎÿ+°@Á»}ª¦b;R¼jŸåÑ'Ì ¡Ùͼò›6ªy9lAk-X>Žåªt.äšiû¨ÚïV‘[ƒØ¼[«0œÂ+F$ŒÄècÌÓš—-õ`uHy þºÇæÓ +È|ý¨ F?E$´{÷}JŒ9 +¬:¼y 7wtªEÌOÜ·Ôœ#ïŠò´ŽwÝL:ûÖðe[Qº&Ã6ê³0žt°oÇßaŽÃá”’¬1–BÉÔ³áeÄ¥š?FÃT­[.ÿÅÆ`“S¬…K:ÕNïF^ËÞ¦Ô–pÒ¾t|JÇ:ðxÓ*®NrlOY×€K|ãö0ßí*uHZÓ|¹KWiƒTk‚G‚m»87:kŒ¤#õ,h¼pÝíj1ì$0‹3 DÙ£3]>üºM¡0åñóàmh®2ÛÕªR^àB”Ò‹·}n`„/>|ûºVâ³]Ïñó…oD@åÓ!rZ |IˆÃÝvHô.ÞGܺÄâ`¯¼(öìž|cJìâ9z°ˆ +¥y'ŸW¸5àóÄ%d›ÏgÊ̪™Ñ>ó=>è&ì™&*%ZH3,`‘*ƒmG´¥ÒÐ[ˆWõjæ ÚHs’Y(H¨tv‰á"8‹à¼Kj@ÖóÍaj ,ðœÙå²ÎdAŸÆªðüÍåY(ЧˆÖÈ1O¨£lN ì@† (›ìqÖ4Æã¸ôbè¹–2â¾÷1é×àöe”< ÷i0‚‡ÖVé‚äH÷è‡ +jðÐÓôÆð'X~û)É^ª)3J~>ž‚ûTñá¢V"—6Ìø²þr—;QÉ-õL›P$é>žSAÝ­µÐ{»£3Ï"P´•¥÷ +Ú<j75qˆìƒßÝázñ¶»Þ瘆‰7¸Ëé+BánÐJI¡ÏÄÌ'¯„¬qK*|pGÛ ã¹µ[…yF ÔZ"H`à¥NˆVc¸õe'éTø®…!uѾ¸Å•c»›j 4ÇÔkbu|0>H]i,¯é8;‚H"7á÷žDÙfvH|8vö¹B +6~Ø6â`î6Çí—\öLá³Ê—½¿ 2¿Üåò‘ú>ÍF ìªû˜)@7àvÐ8÷¸µL›¿§Õ}UT|•‹³ç>}eª–ic¾òt + +/• ´ ´xŽÇßa‚A×˧ÛZ%kÙù’Qq·q­‡²`Ôø\½Ô]¦í¬Á_IóãHÅŒ8ÊÜñt2YEÏ+Š:`ïØÐúž°?@žï 4ómG‰9&>'GÙ܇Gƒ +$2zS¥„yf¬=S …±%È6,1Ȩx;hvA%êZðw fŽ´˜³}ͧ¢µÌ«°O5–&'¡ñÝ èó³ðcqX÷OñÞ阓á"÷1Π?’Ô7Ìæ54’q£Î8dO+â’à‡„‰ÎœsHtüìÛö ¬ä)ì0-Vy ŒÔÙ¢¹©)¥¤ÅqŒ•TÂJe¯ŽêŽñêØö™zšCäm8ÐmOœ´à\üñtåÂ6’Ì ŒŽÏàå«R¤<ú«˜R#¦ù×Uцs½"¹DtNšòÜ<r½Ùnç×ûpÖu_¢òÉ„qŸEÛÇ”e\¯¶C¼o‡€*‹ð)ZíÕ’uC·‘¾Ãå~{Hê³_ͼ§óµO9éïèŠ?”û/³Õupendstream +endobj +2121 0 obj << +/Type /Page +/Contents 2122 0 R +/Resources 2120 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2119 0 R +>> endobj +2123 0 obj << +/D [2121 0 R /XYZ 91.925 602.788 null] +>> endobj +953 0 obj << +/D [2121 0 R /XYZ 211.468 435.205 null] +>> endobj +2120 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F23 1211 0 R /F11 674 0 R /F10 1027 0 R /F14 1012 0 R /F7 586 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2126 0 obj << +/Length 3151 +/Filter /FlateDecode +>> +stream +xÚå[moÛ8þÞ_á2¶æŠïäáöCm÷zÀön÷‚ÛÛ=ÀuœXÝØJe§iï×ß _$Ê¢§iƒ‡¶DRäÌpøÌ3#‡ÎJø£3ÅIÉÅL•Œhcf«í“rv =?=¡aÄ" Y$c~<{òýK)f–XÅggÇÓœÿ^XBÉ|¡µ.^½>{ñÓ‹9-~/8ÅóWÿ~õ/¸}õ×ØÀ‹ß^ýÍwýŠÃ~~öêõs?þ³¿ÿÒtëpfˆVÃ%X©qÄ“g­´¢TD 9©P3ÐHè¥ÄJ™¨$µ †)¯ÈD¨ÿXPÊdñ ÜÜÔø¬Ö»9§Åôвx±wm[øX*ø¬w]ÊÙ‚•„+ëæ~¶Ÿ/kyuuãÏ×çx¯ŠCíÛ×ËæÊ-+MèÛ@ËÚ÷¿1*K‹ÝœcëeuðëSÚ @•!%eÁ˜4„IzWË_ç-~ÅE×{\Í­»Å«å!Š}Ñ Ò[?¬Þ]}J|åD]ž£V;”˜-¨V„)a+`õ¨ÚˆÙ¢¾Àoãd1…3ÿÆ÷´óÃõyõ§v"Öb‰ ‡~ìýPá×zw¾*J[ü¶él84˜Õ¤,£I®Ó„Yz¯ÖËó V·Z§Â² ‚ò²ÀývR:ã”ñ`dTrãÍÃJ«è`ï—Qk®˜7Õ‡jsöÝû‹T]¯Ÿ³v¡á÷EÝøĉpñq¸Ç8Qz›uXg…«œÁ_ò¸Y~d'ä蜨bÙÛú¦j­Ÿ\Ààýpg¸ +ÛCD»m—M§ãv;®tq67Â[d5ÏF)w¸¦ÓNãÜk ﯣïCÇŸ8fwé{œ®ýuÔm ¿Æ1¾9¨ÁƒE%Ü4¸¢,œ5á{éžÝßl£ç¸É½áÜî %E{ºòêàGÀo™"¥ˆŽùîÝÐ|’H­÷iø¼$L°îqpKV¼)Ë2sB4Ñ”NìÀ}èEǬD-áš(éÇœ¤ÊŠ/-éÐÂ.j%'C—ósΉ€†pà˜»CÏDüqϧ'ûšðàÃ*pvHÀD8ô[PØêÆÙÆá(L1— +õ&Ü:pÔ4Ú‰óæFn—¨Ú§ðø›’rÿÔÛ9ÀOh^ú¯‹õ­ï‹‹F4ÙûþÊMYú¶êЂiã›Ï«&¶¬aýÒC”{z`Ä +ÑsôËõnÝ,¯`(,°Î¤..ð,UM8¥Ø²ª›d<äÔÏüSûj{}…«€’bµ "@Çïô©áúûîÿðÝΦ2 _2ûBœ÷##¢˜bƒ{^½¿iOqàP®JÂÒ7ûõÐ[EI¨þxx«$ÖDRô[P?k9ñÖ9©´¶Ë¡“Bgw2ÓóÂ%&1*‚&Ô„ÎÓ× ±ù)¶Kç<8ðzÙ8ÿtŒf»Z† ö®a€Z–}߸ݬ3ñšPjÜjÀo¢È?ÀŽƒ':ÆjK¶„°9‚ã;Ú˜Ã6:÷Àýt7kOÒÝwqÀnýÁAJÆ;¢WÔþÎͽõáÇ E‹—¨j7Ú8c:kÀ¶Á{tàÃÎU@­ÊÅ(ðWtì¦ödÂíˆ + ,à 'À­G ôYÑÖrC/‰¥_2Üp“€x"þÊ¢˜Ô«™u^Ȩˆ{½Ïø®iÁþ¡úœ”î£O³¾nálɽuyôú3Î;ë}hn=órW!Ôµt&<˜¤½éÑîbïøMÖmÎ…µ>íƶNƒ„BAð’ðlâÍ!R{Ä ÐE½¢ C”­/âx™°@ 7ÒŸa«|f´Þeܘ#fŒ(æçþÏpg%ä"`ªvÌ0KïÐZNxÏ¢Po "ZzSÊ SáÄhqtZJ8ƒZÝÆ@.K‰'KÎk + ǹâ|âX¤^¦ "ç@ÉσwcÀ¥m•'@w õK@ÆV-§jHš·W»‡‚‚"J÷$Ýw ’,i’¥VCoC{EY¦ƒ¯]6s‰®.]¨h|ãa³ôçÖÝ9·Úrq9 ¶@: c¨ö‡€‹ÑT]Ù;¬…Ô·z‘8¡KÛâ$}?g­{êºéÎÕKšR*Y;"úhêA +":……•}8îy¢æìÈQyÚÝeéïÞ¡¾ÃíÉLD¹é‘B½™dKzüL‡FËK3åÑ°µ:‰G‹<d1Ý=2Ü78üܤ ˆ ­ÛDsðmµ#üª:äj+Ÿ’†§W…ïH·+´pì +¢& ‘?ä±Gd£ç\RÈ´ôý—¶Qž}ã–´©h2mþσf?åb]È‘Fô*g³¼?Š,8-r²RH–Ų秪g&3û‡~(|=ŽÑ»ÜHõÝ(5Œ³}?Ê–ÕPP{2A}.4Üš~viR/‚†.7—FgF±–l˜ÃÕåÉ–Çn-Zd»}ÒQ7¾ÞéÇjNM—ØÀuµ[:V¹ÑÁWÅ2ØÖ¦ÃX“šAC"òP+PÀÙž¨¥.p¬Ë¦Ú»z8µ®ÖàÛ§PÔæbÏ!ö8C…çCƉ›6Dù×7Îóøi}ÙU•‘„"ôòaÎø¡Ú{ãʲ¸­ ¼¸«Ëáù»¬B(YnÃÕ ´á¸ —6ÂÅ24lëýH¡‚!3hÙÍ=,Ý÷lidÖ³ûô¡Ô*¥%A%Fi°¡/aáÐÊâõúc|n+º•Û5éÊ´Þ_9>Ú·¨«þ»GÞãÜà‡öÕßÞgÔ·1Ãw¦†W%¨±âÔš÷M¸Ø8gZÛ +A{x™¼e  OTcµMDûŽpÌnŒ±û†ÛûÙ´UŒ1‘… IÕxyéQD>)ÑñЙÜò8û ¨›(}ýÍ ¾(*J4„įn23n1’+~Óßò«c¡:½ÙýÑ;Ÿ¹É»37y˜òÑ×jMØ É0sáÅý x‹RþKÃW¦c¸gùé\Ÿü| y™£2Êðžæ™=M—yhÉYÞõ<|Ø=öà>.óÀäˆÕñ>SÙ‡æúÃýO¬•OORƒMÇ-y7h?î;mÑø˜ZfÈc"íaR0Úiú” £OqHGŸØ}šZ¶¥OËFúIfƒ«þâ•çC[ê+ ^Ÿü‹a—#ÚÄEѽkt䪾 éF’§Q°M/.j÷¦Úå·í—Ƭ FF·¡$šMD¨kÍ£å!Ⱦhéeaé¨öwJVñ@xd™ZF‹J⛊£"£&FO’÷¨ÿQÎwŒúB³Ô¾w£þóKh„Ûi€ìdÒ$Ÿȉe;€_6$5p|©v«âÑoÞî¥B Êÿáiˆ€˜ó,¡þ +\ã¤Cý˜dcòT?;f“§Zfر'Çß}CÄhúTó/tªù˜Ðš”L¦ký+…&›Ÿ*—WÞiû%l0ë„Xûq ´¨²)Ù4h%ƒÆ@+é@KLÖÔ²-hM,A‹3"Œ·§û/…*ü^}Á5¿îóå_äWZàOOr?ï“€d“R̹¦É”0öËuŒ1Ól +À×Ì^J+Ú72þ?À&ñ÷ËhˆU½óÊ\¶$¶äŸ÷»…~‘Ðr9]$L%Ͻg,FƒÛÿǃn['CЯ8a"ÿ!‘ÒÇß}f~d'àŒé(ß/øoWÏ=9ü+”•„³lv¿¦O:ÿ…­«endstream +endobj +2125 0 obj << +/Type /Page +/Contents 2126 0 R +/Resources 2124 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2119 0 R +/Annots [ 2128 0 R ] +>> endobj +2128 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [240.541 480.666 247.514 489.078] +/Subtype /Link +/A << /S /GoTo /D (cite.TAOCPV2) >> +>> endobj +2127 0 obj << +/D [2125 0 R /XYZ 63.034 602.788 null] +>> endobj +466 0 obj << +/D [2125 0 R /XYZ 63.034 584.788 null] +>> endobj +2129 0 obj << +/D [2125 0 R /XYZ 192.296 331.802 null] +>> endobj +2130 0 obj << +/D [2125 0 R /XYZ 110.74 268.414 null] +>> endobj +2131 0 obj << +/D [2125 0 R /XYZ 144.476 218.06 null] +>> endobj +2132 0 obj << +/D [2125 0 R /XYZ 139.108 167.707 null] +>> endobj +2124 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F47 596 0 R /F11 674 0 R /F14 1012 0 R /F48 601 0 R /F45 589 0 R /F10 1027 0 R /F13 1055 0 R /F7 586 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2135 0 obj << +/Length 1480 +/Filter /FlateDecode +>> +stream +xÚµWKsÛ6¾ëWðHNKïÇ!'õ+ã¾M/i´¨ÈìH¤,ɯþúî E‰Œ&>t¾]ì.XBá%ŽÇU¢)'ÆÚd¶šÐd”Ë ‹ydÉ{<¦“w6qÄi‘L¿K™–_RNmöuúéÝ…’{>Æ%QB€\dùxuöÇô7þ…åÍ7¡X2h,JN7Ðûf±JvÝ?¼…ŸøËðR­VkTô™ã̀뵟Cž*Ͼ {þiPŒˆ(¦¬üüK¯£ˆpÄA•´ Õ{ëéÁ“ú<kÝÑkVÄ×ìm‚^òp–³ÞY #žRƒ¸ÈÇ«Ýñüûþ “™Û!&„ð}F@D¦Àùæ8óãÜ)"`îÉ{!> endobj +2136 0 obj << +/D [2134 0 R /XYZ 91.925 602.788 null] +>> endobj +470 0 obj << +/D [2134 0 R /XYZ 91.925 584.788 null] +>> endobj +2137 0 obj << +/D [2134 0 R /XYZ 226.114 468.86 null] +>> endobj +474 0 obj << +/D [2134 0 R /XYZ 91.925 405.855 null] +>> endobj +2133 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F47 596 0 R /F11 674 0 R /F10 1027 0 R /F14 1012 0 R /F7 586 0 R /F21 1422 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2140 0 obj << +/Length 1983 +/Filter /FlateDecode +>> +stream +xÚÅYÉr7½ó+xU20;”ø ÄKäÄrb©ìJl(‘¡™’HK"½äëÓXfp@ e)I¹Ê"9˜F÷C÷ë0¤ø†ŠÊÅPQF´1ó‹NñÉÓÄu\R'k~8¥ˆÑ?';BšU5n…[z9xóŽǸôÙ€âfø ?SÖ/\ +"ŒßÏǃߺKÃib54hºò[BQi©%ÑŒyûΤéâj¶Ä¿ï/ZR¯ß‚p*#Z6ÁDS!HÌ~#^6¡‘U'‚ ‰>ÀAËÏ>FÅcÁ,*Nº†¡_¡e ·¥ÄÊàp‡ó½ª+÷ÿ²+’IbZ‘µª îŒ&J%ÐÏv8Vô2%· DÕ‰¬Î¡h"­l÷sºÍð0ç{Ì4F(šáBµFŒpáwh­†ê´‘bDaÔˆ¬ãÅj0*àÃ9±Tå§[+¢dãJgÝ×iŸ>ŒOíú©Åãn¢ö´+­²*±êáiWp"¸Ý®€“Ñhðmw IojÜ}݉o蟾ê?êꦈåñé[Jié}øÓ³M§‹á/%úQà¤ûà’µ´­\‚á("]C ‰Ã?»Ú3J„Þ8¾³§¶¯fFUù\°êj¢ªÕÕü-• 4"97E€5'óü×N@J¤ÓªºC@¶¢‚¨:‘å‘IµE EbI¡yµTV¿hÊÙž+š>n\ÈY„De±Ç6Ný'ø¯Â©¶{ÒŒaÛ_–ˆo|úýÍ‘yóÎ…˜DÊ69…'¹åûÉ<øÄx@ƒ”gŽAEÚ3BoD¯-Gï[* +@´–&ªÖŽþ>7N *Ö£ÍY‰ d‹ÊZ›œöQ›Wà@@³®ܡƱ‚j§`ò•Ë–Xâ–pPCa4’9¿[0EYu"¬M‚\ØnèsÐÏ{ÚT¿2´!FòR4±÷dø‚§O–«_üLÂçK‡Ðj¿,gèoÌâÓvÑ"|¼šœM°æÀgñ¥eóöØ¥Þ©¯¦® °?Í΄Ç0~zµp">u݃#¡i͸,¥ÙÖ!ËEÑU™j`í»ãvÊ\;QÑxö7Ⱦ¨‹‘6›:‹–×H¬.©Í}\.‹ÙÎ~…#±r“m.û6ÿ\ +umDº9¦Yb.ŒÒ5)Üž5â‹5Ö—BMÿïªÍí™´Ö”(æÈRµiIõ¡w=›¢(,&K ‡è2&tΘß8¬ã¬¸¥Áê§Öè[¡€}ŽxQSuéG€/Ás¯Ø»×QV ô“.ˆDš5N¹?°'Ô %ðêž—­Ž Å°Æþ£ÁgV(‰ >7Iźí¹#Ã; Rt[Æw«/O;²\Ðp¢,dÑÓ ³[+î åVÖvçÙQÐìñ6ƒÕÓtH¿WŸfדh)ÖùÔ•Nžìu·¸º@DFç—¿']ÚŸÍ]KãYÛ}õä½:süü>Y46vJdbî£X¹¹/)J`:ñH(’¢ j1=c¦‘Äb Ú>æÄP»gΚpÎt1¾«×‹oSù”MSÞ•—‘Ôôš¦¿Ú´¬~ž(ßCHŸjÝú'žøÇM€›©º¤2ºˆn3Bºœ5ÇÒ­™Ä±]¹s°½LÛÅk{°·p r·`³n›±É JÔ³ö·èËÒXÁ¾»â_|±³¿ºÞ¢30~;]ƒêJø|þ‰ ŠH?“Þê§X¬°ÛX²££oÃtMY©¯ÊJ|=.Qy8t“W.D·MMaì'Æ®èÂ0›©àë÷³ó0€pÎ_æ]¡’g ®O‘ÉrlnNGi6ʦI +³.ÍÇ'Nûò8ÉÑN«/KÄXyÖ( “ì½¢ÕÖ MÛ=vð­ÿTÕ,_r«Uã”!šv“RQ@žõ ßë#_›0Ùγø/¥(À⊊l. ìxÃN{å8"|X&p£\ûo°@VÒq‘g%Œ´w†t"÷ã¢Í~3?y[ù†góæ¼Û{Í'ŸÃ@Ó¯ø0šNÈ–›&¹»J»ÓŸ›aLØŠQ¼eý%:7‚µ)$÷ÏÍ’¸"TS?‘„»lô®}äL!ªƒóäjÖßnw¯™áD`÷½Þ±¯W·Ûî}Q7hÏŒÂðË´÷ýîÇMµ8¥„BªV,ÆUÊ¢ðâ=: —ÂnîQxÚ\Âg·ìÿc"Twendstream +endobj +2139 0 obj << +/Type /Page +/Contents 2140 0 R +/Resources 2138 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2119 0 R +>> endobj +2141 0 obj << +/D [2139 0 R /XYZ 63.034 602.788 null] +>> endobj +954 0 obj << +/D [2139 0 R /XYZ 221.127 237.945 null] +>> endobj +2138 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F64 1214 0 R /F61 2059 0 R /F23 1211 0 R /F26 1460 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2144 0 obj << +/Length 2232 +/Filter /FlateDecode +>> +stream +xÚíZëoEÿî¿â>ž·ìûQT¤€Ò´PJ„„xHIì£Ä—ú¿žÙ×ÝžoϾ4¡¥UjlßÜìÌog;;;¤Àð† CE!1EJëâüz‚‹KxòtB‚DDªDæó“É'Ota‘¬8¹ØÕr2û±¤O>ùò“'‚·r„r$½Vä‹gG¯NŽ§¤|=­ã¥AÓJ)U>{þôÙ±û•/Ž¿ãþÛÑ‹§ß¼~~òìåwV÷äø¤±’3$“{aœ!EàÉ>gž%!S‰]IŽŒ¦xˆ”pªÞL~ü3ür‚3ºø>cDŒ)®'TQĨ߯&ßM¾m"T!ITQ ÍáÍ]°@lÒÁƆBI0Ñ8ðŽ®—ËzµØÀß_¯Öª}‰ƒ:,Ô×7»€ÃÖè<èCD³‚®*QæHì!F".DljÙâ÷`xê-"ƒÝ?aÏkðp9¥ºÜ,â§í||E}Ï+‘ Ö.ŒŒð#=_N+RÞlíÿ›þ˜T Mh ™ÃLÄ +„HÉRb² ªjuõ§]SD”ŽÃYÓ‚'âae‚§ ø)8«Hy–AHRÀ˜uúf»ñeàø3X6ðô†–HŠøø¼ÿºD‚GÇǦ}l¢*<>ë+·ŒLÜz|ÖWAâÌ [`uĵðqËqögý·bLtíOßNí?íÛ&‘aM8cœ{Ÿ’¨þì¼t „^¹‡¢›VÝ0ß0Š¸ΰ¯ë)5åSË¢àáË™ÿìøgî?¯æק.Dgó•ÿå¢îKÍ—Vh³v‘v¥a3é—ßE½êCEa+Q$`µÈE¥Ê‹U}Ñ@`˾ ‘!zl—NËMÝ™id‘†¸2‹H ¦¢mM+ +ʉ#1§F³`°49ëaBJâ~‘q +Ì–¦¥¢Z”ŸÙ?²¼}¯:Ú[Çy&ºa£hÖÆæ×ùÒóÛöäoÚÙ‹ég‘–˹Uz»ñß›ùêÔŠ-êV}_°“½ö_®jkUYßø©¯ƒh4géHgoýs +¤ ‘¡=ξV ÑÈ¡8B¥°à‘«úÏþ(6‘1é(›\4òt®sÖž‚3n#’qè•Fzz“3…@FÓw˜ÊVÆóý. uaSBu£·«@‹þû¸û~Œ~’cA›zµ6þ„yf Aî¥T;á}E +)lz–¤°§|J<à JÁ›ù0›_­çNP#yNÙÕ§MùËéYeù_ñÆàƒ^D4ÏE´I#šZX|1Éí¥ë>¼2ïGû÷ª;X:"q>IßÄÊ€~˜Íp¬H&‰>Ü$9=Ëd§°Åèç™ÀwÞ ´rl÷8C`1hÍÐGbCŒ§SšÉk*)aW‘Ùˆeÿ9&éÌP©=M}`wVôå™õkÜÉf/¬j¬ü ¬òž°ªý°Žãgù!x*‡ùCºÄ¸µ1&ca«€tˆ¹:2à‹xb3˜[›îlo|róÆ}©ÝtdîÁ|íO˜ÙüéÔIÔK´ww~za“#SÖ.ïÚ+ÿ~³„SCÞqšðûÚÃÑÙŒ=#h’ N*™ácë%"ÒL—7öƒq8Öp“ŒuK]g,ìdøA&{ ×™­ôÞsÕMœˆHMý4w¦,Ž‘ƒDÃtÓÔNò®éœVw’‹‡èŽC© +ëPtøÑvÝœ-(ëäóƒ1Ehp‰á,-²AÇP_®|åë!C +KOÐï>€-%;Ö¼üƒJ Ò”Iƒ4“— $QÐwGw( Œ@q€(è[E­4Oäá‰â=®ÝŸ:!Ò¡NúùëB¤ËœDÒ;l4ÏœÑ߶>7H |ü¦Í<ÚK,:@ Ò/ÆXZë¤iUý–!Z$ä[³ å85¬’ÚÉgûïîeͦ»º'³©^Ú¼>„×›y¨”wô¡¼©OœËd¨æÒ4Œ(–ã·£?³ÅŒ¤ÊóoÞoÈ}ÎqöŒ.¹Ïƒ±$ ¼êÎðV;‰Oç¶ t03à¶ÐÖEG‚ÍÌÈ¿õ¤loR1¬»Šp¤¤NÖª ·Ù­fw®ƒîÔ8)ß[úíÌÌ&—G¼©‘¥N˜±— –£×‹K—¹K#ÆÍD¸Jx Tuùj÷šBK¸,¨æ†íÿ>—ËQW•(s—|Áj9D”q—|Þ¸ãi%Tù4{MnHç®(œG¹O$úwV¸½@Ê-FŸüÝ™ëÒå m9– ,T:6y›±ÿ'‚ÁÜž‰ LzC9¬öàL »LÀÚ»Ô–ì!4Ò<‹ì€¥T=ó½ÕÌÞ³«o[2# +Q _ÖÕmYwyzeÿü5ß¹Þ^¹ëíõöj›ŒvxhTøâê4¹*Ÿ»:ñ¹­ ;ë¦çÁÖ„7ákÙr€y‘4ª;CE%:fˆL?ü¨›6‰óŒmCΨB¿ÝøB;Ñyn3ìž!˜ãW÷ž}µÒ1¶s #ù{{ÀÀÎn=Â{ÛsôhmƒdØP!Bgab¨:dè,ÇŒm§QïrØãǹ5 ›S Í­v{k7emvhyÙä´K›ªV8w©($Y¬›dé°B^Ï7ÛÕ2éšáÉþ›A3/_õÛ%âÄDaÈõÇt?!MÛ½®*QæÓ"žf±Àœ6ºÖ¸¯Ž¦J—?d3?-Ú­L4Ô¾E¤tÀÜ«}‹ÛLÖ&x^cÙ&W¯cm{˜†C±ÈµëF™(âÉðr !niÏvÚÄÁäq^]%]¦®O·ß AŠ”)’!M’Ñf wõªö™Oµ†åi:æÏìúüÝÛîšF-ùÖKÛÁµYø–ÑHÉ3øàú®vœ`°ˆm'#÷Ð¥÷Ün#ˆû¼zW6 Ž‘âÙ÷c2Nþ &ëHšendstream +endobj +2143 0 obj << +/Type /Page +/Contents 2144 0 R +/Resources 2142 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2119 0 R +>> endobj +2145 0 obj << +/D [2143 0 R /XYZ 91.925 602.788 null] +>> endobj +955 0 obj << +/D [2143 0 R /XYZ 223.451 150.52 null] +>> endobj +2142 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F23 1211 0 R /F26 1460 0 R /F20 1030 0 R /F64 1214 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2148 0 obj << +/Length 3697 +/Filter /FlateDecode +>> +stream +xÚÍZI“㶾÷¯è£ºÑˆ…8ø0./iWeR™éJ¶SÅ‘ØjÆZzHj¶_Ÿ·$Ej&vrHé lÞò½¨Û~êÖY^˜[—ëÌ—åíæp“ßî çÇ%#Ö2d=óíÃÍ×?Xs²àŠÛ‡ÇËi¶?¯B¦²»µ÷~uÿòáû¿¿S«Wwë¢0«ïîÿ~ÿª÷}‰ Åê÷æ®W8ì//î_~Çã}øéëÊaB—™wÃ%´R8âæû‡D­É]æýì†â˜ÙŽÌh%ï³àË[ëMVjG˽Øß­Õjwj´‹ýÓÈöjux¾¤C™•¦HßÃoo~þ5¿Ý=?ÝäYÊÛ÷PÎ3Âíá¦ÈL᥶¿y}ó·Þ8×z4ÙŒ^e‹LOéÝ6ï²u‘)„OM;ÐzUía_Mÿ[Ã=ébõ¾Ùï¹oSí7¸Ý3tæþ·P;Ÿú¦>ÞérÕË4Ç-G5~t¨hƒJ‹¤ÀfìTY,dÁZ"ãGŸ`]]–0ÿ7ÐÆS×;š©Åv»BþwØ„cN2~‡•wø>òèŠ;·ÔÙl#UG(lÓz©ŒýÍ;KÓŸZ`£ð‰?ÔeNÝ‘$f±LƉ¸Ý±ÞÒ¾sÙ°œ ¯Ó5Ht>IÛ’C¢‰/6’8À”•þtâ'Öàë}î¦ÞBì {‹|ä-òä-r ë’®c)Mû×ðëG.²„@¥|¦3ÎÍ !P~&S{êš^¤9¤¿<±BÊLÃ=ŽJŠ + qöxlݲsýÌæ)“„dáÌ—ÄeQÖ‚ü +È=YÇ…5 *äPÚCµo>%eãßEÔ³Á?q#˜ð>–äó}]Ñw\úÉ5™¹Ñ:+ôgu$ÑM"óìÚÀWË•Á5à +-D´“oÙ#iÒ J•—ffFé\Çɯ­^}3£ ¦Q&*“&ÁEªÁAñ9:lEöìØKpD•ÀzàüG.‹q/ ù††XHcHû'®’iTÑB7}3Ÿ4ÙŠÓy÷»a‰^hëVaqW÷ÃÌÌ2È3TwMÁÔ‘ðÿ—`¤Ežµ"êOÇë¾/yj9¼FÌ«¨@/òycKî/€"iY4?‡‘Å®¤ûÍÀõ]#m3ÉL¶~êG¼z7¬þö|Z j‰ÑȽøÅ.«Bs¤Ë¨'X:TV¾ƒò©}À\š?’†šqY“X[në;Ð⨦XcðíVzAÏœ¬? 6Å®àËÍ0"Ïy„¿uzp/>ÜYÐ þe´W¹Ü€#«®ÿ‹ÑiÞ-G{q®õh2ŠöT>4,QŸ-/v71$ôƒK>5@É#{F§S‹‰¾Å&3`~&§MöÅÓŠ=|96s^`‚Á8<`À ßcc\ü,!ÁÑ„$­H1Z¸„ç ïå÷Ï" 3¡ŸD¨®ŽB!XàþimÒ¶§Ø7bË‘RYÀuËíK3¶Ü ê-óØ“ ±V€ž!*í±çÞ_r+2hìÄ0%J&î(`¡•Çy¢Ä5Iª­â¹9¬*Ø‘A©‘ÿ§ª›ÖU‡vB¬Ô™ŽPŽ¬åo£ñHB‘ÄIÙÁ!LØ[u‹>ÈuØÌ…¸! ÎT1`´¯ö,'ä Déd/á¿ãpCZë}=É`›({F/Ñ·Õ¦ç9ÙhíÉ´?ï4C´árÂ@Û…7K" +Ã6@™)’÷¸‰ X^Çà}@/“kblxf·Ñì Vé?ƒŠM9–ÓRÈ? WƒçF•)í +v”HIø€=&êTaÓPæ‹»UÎdÖê«» #@éc”ô:ÄpJ`HM&‡"D¤oêä™5ê÷b‰Qà¼sÓ½ù>ùZ’DPˆ÷1. 1¯Úˆã,T*ñø‡S}¿ i Õ<¡•æ"]l‘ž«ù!ë§ÑZ]1doÈìoã±FHÐP­Oˆ`n‡˜ÝÌ#Í+y#ŒpWkk4K æ 8R,ÆXŽduX-À:¹=¹ ¬,³c ¬rŸ'kˆ˜ô„(œr«.ècŽú¨¯FùÀ’¼ˆÌ7s\q”õD_%õ5öå`ØWÏ”«jÀ¦RQ|›YÄðyÏÒÌgÔjQÄ!!4à«ùb…‹ì‚ +¿D…Æ*±å K¹a€(Õz–¼w%|hE æ/§Ìm¦ô%S­‡¹fªÔ``µÜg…+Æfh²i„bÞûù9C$[ä)c‡™¨À +Åؘé Ç6(Ril}¬(Ê‘<6W$ÛsKÒJ¤®gD ©g`…6ì°­ÇÑWS‡ +R§„.5¡~ ÛGªçx<åÞƒe}Ä‚$V±8€0 +˜>rëXG#ŒÓÁqÖ?1S=î‡Ñ~à ~ûÔ`47nYBü¶Ì´1_@ü._@ü%̈__Aüð‚ Tÿo¿ÌµM6GüiAÔôÏ ~pœy Ä/çÌöùq2ò ïy³Ž ßB$V" +‘uŽ:]>Ê=Ã(vÏœ=i% ’EC†UÇ:5I„ä’È»LBÑÖ›ñ]~ø*ï3ïS ð®çôlÓÔZY…à¾""d ˜o + :Ô!|-âò!!Pà-!|4ösuLø<¸Æ!¸—¹ço»Q"±:.À@ƒÞ39m̵S Ë횪Iâáó˜ãr(gÒÒe›‹YéMÚ ©´ãå­âbŠü¸Rsa¦§.e4øÚ£àìV>Hĵ}8!÷Yf?TQ>¡’t“ ®e#(ÂÚ=!X5lÉ(#–ÒÛÔ`VEÃIÌâìH¼ÝlcØŸbOɶ '¤kǸ Æ·5ž×q˜T2…örvF×€y®ÝÁÄ°†u®0Ù˜IdcÊh­åvñ+ V‰²ÅÔ¿_‘€\…àßNüe@„aÈ"Ì`Á,2'ˆF/ˆ®/AL‡!_-h@žå®üäÕ곖ÞeZ»1¹¸YÈ!,ívñ§@êÿaz}F»¨®\£€Å±—ZcJÆÿ!J§s µŸOhM}i§~z^åä¸\˜œWô(S.ýE˜=Ý'úàÑ>û¥),D6ÿ;Á¸B†Y"ãwrË}Ž[Sá&&„Ó@9åù Jñíî)¾àÀô`a§1𩽼&®&0Ú‹5=w C‰ƒ¶ÿBó߉ŸL÷É(šáÒox´0 ÖÿèŠÙ”a|“€ÕgrgéâØH&».M?¶Å‹>7Ëfâ€!`Æ!Ƀa¥Ã´ v® /pI˜"¶Ëø¶äª›¦ÌÛ1Õ…O.ÞBäßöš¶ŒŒ0¾×‚ó~ ²ãÉÁ­8..Âk@hòÜÔß {Ú*‚8ß`oBBû¾y–ëöîÑÀñó ¬Ç×@Ä +@óV›åüƒÆoéµ=<€sC:•¥ é×Ͳ1UËÒÍÉ”<Â(ãáÔºtáS–‹CiŽ*­‡€±]\UC,täN5²¾=_Hº<æíQzFæÙÐnÚrŠFǬF­ÛOn«uÔ+3ß$O:.ÇÍß—r«oËD‡]ã—.WU3å€ +«SòYUKoÊ`@TX0ºßªÜ O?ÎZ*oŽÃÔr§pl(=Ø|’K°éúéåEÇY_ÑÈâWÁ<ôé5Û\Sù*Ë0RÜW‘zRkbŸ\sÙK“ò'ÍÖ1ŠÃúôþLRøͧZ.½†çk–Y±N—Ÿ|¡=_t–v#Šwx/Ž ‘ mû*Kvt¦IäB1JŠb¸¾—G“ü`ºYòùÕ§Iäq”e FÉÔßRÚ~Ëã$Ó@ŸôO‰BqËÐ|Ó’ÉŒÝÍòLüZUiá¸Yz#š’±~1¬W…/¯¯$¡äå¬Ò€¼Gq½ÎöáëRg†’XJƒÕ1z‚C"7Ï–ZY˜ÑU!7I +H0åQ Þî€i‰‹ÏÍŒØ6ot!þhÛ“ô5,'EÎV⛀ܥ¬ŒÜT½Á`þ#pzî>°OüíŽÛ¿åÛº—k¤¶ÞžéØŠIX:åý.ó/$œZê, ¸ …µQ翨Ϟendstream +endobj +2147 0 obj << +/Type /Page +/Contents 2148 0 R +/Resources 2146 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2154 0 R +/Annots [ 2150 0 R 2151 0 R 2152 0 R ] +>> endobj +2150 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [161.907 256.237 184.378 267.085] +/Subtype /Link +/A << /S /GoTo /D (subsection.9.1.1) >> +>> endobj +2151 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [116.092 196.207 122.554 208.247] +/Subtype /Link +/A << /S /GoTo /D (Hfootnote.24) >> +>> endobj +2152 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [264.147 183.699 279.379 195.654] +/Subtype /Link +/A << /S /GoTo /D (figure.9.1) >> +>> endobj +2149 0 obj << +/D [2147 0 R /XYZ 63.034 602.788 null] +>> endobj +2153 0 obj << +/D [2147 0 R /XYZ 78.277 129.994 null] +>> endobj +2146 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F48 601 0 R /F11 674 0 R /F14 1012 0 R /F7 586 0 R /F10 1027 0 R /F45 589 0 R /F9 1581 0 R /F12 1578 0 R /F6 1084 0 R /F13 1055 0 R /F20 1030 0 R /F19 1034 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2157 0 obj << +/Length 1737 +/Filter /FlateDecode +>> +stream +xÚµXYoÛF~ׯPŸB¥Öz/^M |¥ÎÑD P8F@‘”D@"e’¾òë;»;K‘%¤h +ÃÞk8ó͹³fC +?l2rwèQNü Æ«ÎáäbÀbŒ$ãÍï“Áñy0 Iè‰ád¶Íe’Ü8œñÑíäÍñ¹+7tŒKâ +|ÉëËÓ“³s>ŽÆBH'$£±ïûÎåÕÅå™ÞÎõÙg 8»6«Óë‹÷¯&—o?)Þƒ³IƒR +—xÂ;¨ˆ¥ùM\_’€{fu¸ï,êD•¹S¬ET«sŠ™9<]΋2ÓG+sÂ$áÔL/OGŒuÁ†!òyÆs:ôHèKuž $X‡ÈЧF±¡„² E‹ø›spˆCÀvT‘Dúà ÿ£Œ~ÿ´ â4ì@Ìv!r°ð{1òŒñ¯2Ê“]˜cÁ}âyJÞwÀ•ÿ ®¿×¤>ñÅp#`©\z† €A^–šyq ˆ +3¤jÛ†ŽÙ-զ¦ƒØ„…>ŒëìA1N IÍ2W•YZé\Îù(NœÒ§heXA¤*³y¨%ÍvmÊ=N¸o5­w4õˆðlª(hC¶ÃMPRn3Ïe›oŒÎånÒQâ²N ƒÏE ŒÝ.óåÊ$Ü$=„“@¢Å9äq¤ ¶L ÙÔšVÝçÚ!_(“¹e—`ñƒ¯®ÖE…_ÄQeª›‘µOhµÐ.2Bx×Å>Ï.Ÿ{ÊcƒS]CeºVÅê»417ÏcV/Ì,2Ã7}Zo92*„T£R"ársJð9Ït\ ¥·¡d>‘¶âýfp=gšo_m r‡lèRøP•áÖºÜÜÒaWÜ›%" †0§„AÝ[ àrS¤WËÁ§ÁŸ›+Ðò·˜é+°ƒ +‚ŠÂ†¥Ñ 7RѽL +"¡ŽýdÈë02é±ÙF–(ã>Ø{%ÞÆ@‘r(C· o÷;ý’Ž[´A°A€ý%Q(óš‚ltCÜõ“ë»ÎñËÑØå.Ü›u:OK³¨²y®bKÍ“ì!«²B§ée@|2Jä¿œšÉÏÈÀ ''fŒÌp“’9Áã©â~„ŸŸÜÝu–æ5n$'eºŠ²z .ÓV2T­è©ú­b=zyÜ—’‚â1”)Ãjµþ +•ÉÌÕ³ÖÍj¡éMó³s<=j8mÅûÝû÷h °-„uSy@8Ôls…b·Õ®×c$è2R™îµ¤ë@¿CHO8>ãX3;áJÍW½ÐrÔìô ºKü.·ßÛZa÷»¢\Ùe:ïç-{w]”Ó\/Uë6±…êt(föÚø¸—™gáϺþ®6 ÔÖÔ<ËÚ— ³Þêú…¹ÞÚ‡c)º@ …ç+ëÕ÷%&üÛ_?Ÿ^÷Û&Ø-àÉâڧƼG2t…}I!鶑g+öWŒó& ñÝ E§bõêÞÌýN¬ß 1ü®¢ùfÏf]Û*”Ns]Oöx%€lù!¯ EG¯´‘a9ú ¥¾ûëúzPèr½@Š]¡RÒ7‰Ô(‰%#.ÖÏ»öH”†ÞP‘ršô õÅþP ‰`ö-–.«´§þâ +ÿ€n~hþ{ÖâîQ \÷þÓ¿ûñ{ÿÿ ºŒüoÆÿ·7T¼×­)ñ~…?Hc—öT°ý«íÇv÷¡Kàß÷?D¯Ÿ©Uëðæý³endstream +endobj +2156 0 obj << +/Type /Page +/Contents 2157 0 R +/Resources 2155 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2154 0 R +/Annots [ 2159 0 R ] +>> endobj +2159 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [260.27 573.83 267.244 582.242] +/Subtype /Link +/A << /S /GoTo /D (cite.HAC) >> +>> endobj +2158 0 obj << +/D [2156 0 R /XYZ 91.925 602.788 null] +>> endobj +2155 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F45 589 0 R /F11 674 0 R /F10 1027 0 R /F13 1055 0 R /F7 586 0 R /F14 1012 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2162 0 obj << +/Length 904 +/Filter /FlateDecode +>> +stream +xÚ½—ëoÓ0À¿ï¯(@éh\¿À@ =hˆ7ªÚ­ë*­-´©´ò×ãÌ—&Y[5U•û|¾ûùîì°õ?ÖЂP!šrb¬mœŒ¶hcàG¶HÄ Wd^¤[í}%Ž8-éÙu5éé×ÈFš±1&JŽÒ½ƒ½&‹Þ5c!d´›|HÞû×äø(ïÑÇ$}†Þåb‡Ï“£Ý ÿ=}ÕÞ·å:‚[b´ñ†åKp&r‰­½ti­¤š©Ö:TȬzdÖ¯¤+)#‰åúj9ªX0H¹RN¢ý¼`ÐÆ+zbˆ%ÎO Šx.è'Õ{E3æš«hxÖŒ•o¿QEóÿ´? ;¡ýè Çì3þê—’~¶òuã§óYÿ4Œ< ÷,ÿ‡×{ éðMçøõóÏßP׸ÓDùŽàÛâ[!QwCú½ÔFEÓ~6ŸŽÃBޅǨÏjSH5ÀûIJçÁKnŽA{íÿmLeO2†×Ï> endobj +2163 0 obj << +/D [2161 0 R /XYZ 63.034 602.788 null] +>> endobj +2160 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2166 0 obj << +/Length 1252 +/Filter /FlateDecode +>> +stream +xÚ½X[Oã8~çWt_P[ˆëkb‹‰Ùe ;Tƒfª•F,ª¶´@´”BD+í_;9NâÔI»;#TUnìãsùε!-¬?¤¥RT´BLQ$eëv¶‡[÷úä|E$A‰æãp¯÷I¶R!k ïª\†“ë6%¼s3ü½÷Ið‚ŽPŽcš¯!ùõâôjxÖ!í¯€1ÞV¨DQÔ¾èŸ_œ¥{¬}yö‡&8»ÌžN/Ï¿|í/ß ï½³a®%g…,l4ÄÒlX"dKjÃ’)"âHÒ0Õ+Ö hHEû©½gË +½.§“ìw-äÈ(¦Å#%Üçp?qî¯w¾/¼»!píu³Ëoñã4ûù'x•ý<±Òºãn÷)Ð*sL²Ýɼ¤ +H¨­—ŒbDÀñ˵æy“1;8έÈÛÊxÄa‰h(ëÅq⎛8"”Å}&ì~“‘(·ªÛK! ˜ŽHŽEÙï +8Íw1]:œ=—“‚h}hB)àÖÄ^€þ \\¾|>ýžlE9GQ¤vó‚ µ`~ÀEˆ¸Ü‚·ÜŠ7ÉñnÔ,šiôuB¹@K×a¤½5Oæ™Î£Ñw¨M=X„B¡êõ€ Ìˆ`ì°—°KÀå•$Ò¾=—¼:Ìö×%šœ*|z9ô{”(Š”jðh`)\…)€tp`4xA“çëJxÝ>Øfpy‡P^¾Ž7 ÛÒÚâÕÿ‰b¡cEñ›-…«¶®˜<¢;ÁbS*ŽXC`Ë(¬‰0¹-Âd…QäÕSVʵöÀ4qÒv ëò!¾Kâ'¨d±‰. ÿuû·-ÜoaUq +ÄiÇ.|5Jøj”aâÍB*ö,“)$ +CÙz7_ä&¤Ï‹ù¬$:,a½l[ ™ç·”PP$g˜ÄNt?9ŠØžX+´í… ¨IfÉ¢)™ÂUÖ—V«òXQ#•RÄ+HFàÊ´Ét;Òaõ:õ{ùgå ½ì#0Ü.à_‹ÉÊ:ï8O<’‡)„Lž=/ž²ƒ£R‹ÚÒãâ |¥K»OO‹;u9¾ã€fýδïja ºpŠq ˜kcoñrºÝ Â’˜¿»Aé wÇN’¬~l¦ˆ}Êm›)Ê LnôÖ‰S4à +aYE\yÒme:h|S‰1³™5RßDŒæ²)ï€Â‘N1$^Ú³c·ÜºsÿS®l“6_˜×Í$2‰ïã´L—jâ‡Ùú[ÿ¼?}ì‹£ TÒŽ|%œ’ÿžòå ™>êÐm3V‘þ?H+ ŸR€J›ù6_@»JfÏÞZEP'v6«\ +,ŒÏ ’Úï›ØÕÞr@õk«šü³ƒ*F“j@ú!ŽŠªÞ6!k+¤a6¤!°-'G.âÄ‚]îÃûj48ýöÙ&Ìs]ïEmºhÝók$ af©ƒ‹$ñØ´ß`“Ù6Õ£¦~RŸdÞ±Š‘JŸ¬ü!ñô%‘ìÝZC·P&¯ÁÐýœ.±Þ=ê‹Ý4Mj»mîQ©Kî=.A1’¼R|˜.>’ë¾lkO·KÝÆ—Îâi°zÔ6Œywyz ›÷0u­_êÎB߯óÇåWQåwlðjL Ĩò½acœ¡ˆ˜§Òá¿~²ºendstream +endobj +2165 0 obj << +/Type /Page +/Contents 2166 0 R +/Resources 2164 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2154 0 R +>> endobj +2167 0 obj << +/D [2165 0 R /XYZ 91.925 602.788 null] +>> endobj +2164 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2170 0 obj << +/Length 993 +/Filter /FlateDecode +>> +stream +xÚµXmoÚ0þί`_*`‹ñ»ãuÕÔi-cUéÔ¢MUW¡¶¼J´ÐB5دŸS_&&¤” !'ñÝù¹Ç÷ℱù‘¢d3^”˜"†Å»û.öÌL­@@"‘`IæK³P=¼¨‘–¬Ø쮚i¶¯JT”R¥z£yT;*“Òy9`Œ—¾ÖÖ/Ìmý¬=`¥_õæ7;u‰Ö_­üuó{õ8LÖa4DJ*,Z‚IŽš ´K¤¸Èt(–I{C³’\òH(ŽB*_–#L”R‰R¥­k¬#-4LK˜~DíñÕ *J¦Î¹¶ã~c™­ón±—{v8ýÑ:=¼8Ù÷BS­=²œš‰ÄU‚ˆæÀiæ—¨@Àµ–®èœ-¤”G/ØÊaí{Ê1€®V¬‰îà¡m¯†.,ß¿‰Ÿù·™0r?nýí<·ö¦/ ½€8­)‰œÇiRV¼·Ã';àÄùÏ6F°½ûh‡yds•>G8˜ƒces¬k¿<Ñ|žtÚŽ"õ«Pt?£ÿSgâ¨*­¶Ãe ì“A’° _ïÑrvrxù2‘JÆ’Œfä@,áúg2^(“V½Ñâ ÕºôS¡Ò« +‰x³žgQp …^ózmd? zýœ¡-âü˜Ò5Aêî}UÎÒ›Hý¡&ˆƒƒlÂAÞŠƒ¬ÁAÔÅaíøÓL°D3•,Ì¿OGW+¶>B4bDÀôŸþ`ØI2)u¥ÕMÒi‘ 4áç IŽZ3Ê·¤~EÁÇLst1 +/ò¸ñÅÁ7™vÆà*b@–KÃþcÚqS:6}wmBr$qœ:ƒ`x’š2$˜ÊGŸCvØá¶Rñl ELŠl`áÙD ¨9P²Â{ÜÕ·(¯ó¸²F»þ¿«+ÕH¬âj\çâÆæÚ*ôë3'ÇÄ>ó’ä§y8é»M ˆË<ÙmA)U +-ÜóQ +®#t3¥P¿$Û¥ÜK©ÈOéäùv‰ÑÙ"£À]µÙ6 +s‰³â2–p±ËÜ)Õ®Xô6}©WênÌæÌí‡tý΃§ÐR³œVëIX.FÞ"/$óŠ·\nz¹ØA¹\nûJßDæ«Ûd»éŠQÎ_Wÿшë•v¬°'fh2è=¤ú{ã¨æOsê3'Û¬ZK¸k“ügû»Ñxžê=rËnB…ÙIYû@ÂÅK7ŸÕ¡ø)¶£³ºâù9òw™ýŠ¼ }¡Bæt•EH¸®ˆÜ¯:Jæ¡où« |lÑ™“€ï›Môö¥Ht·4ùR?fendstream +endobj +2169 0 obj << +/Type /Page +/Contents 2170 0 R +/Resources 2168 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2154 0 R +>> endobj +2171 0 obj << +/D [2169 0 R /XYZ 63.034 602.788 null] +>> endobj +2168 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2174 0 obj << +/Length 1268 +/Filter /FlateDecode +>> +stream +xÚµW[oÛ6~ϯð^i¨‘EjÃdEn«³v­;¬Hƒ@‘d[€%Ù²œ¸ûõ;¼èÓÁ:ÉÃsýÎ!…'>üáI„QDØ$ô âBL’âÄŸ,`çêÏ°xžßf'g—b¡(¤“Ùü¥–Yzçº÷³ßÏ.YÐóa F)è•,o¯Ï?Ì.\ì|t=J'B®Ç9w®o®®/:Ó‹¿€ábªWçÓ«÷of×·Ÿ¤î“‹Yçe@ +iøj -ÏA$LL¸Ba<@‚„ÊO̹ëœ0'Ÿ»ƒñ«Ï|ù«³­&ü¢‡bý§iÏãzØ9Ý¿Ñ„Ó·³=lbùÓëŒø퇇÷ïο¨ ]Ô;FB( vsÃ0ðÜk9<ì£DµïtsÎœEÕTÚÌÃן¥8¨³F‡VYˆ@J]XŒ†‘"áÛÔ lPÜ t}—k_<=4£¾¡Ú"ùŸåÚåçiñiñíù§wÖø9Œ?àÈçô•ø ÃX=TD9 +a}\‘a+ +F~ +Ce.ä‚9ûQUVÏz²ÑCnª²Yf†¾«š<+%ˆ±¸4eº?"RgEœ—iV[‘ +á·ªìÓÿû¨G1ÍŸÈ Kt¢¬êBMþk´žØ"¾47­|z\˜‰O¬ê©ùe“4]Îî“íÂ#>Tf\u®ŸTñfq=ˆõÛñÃNòo›äþ¸$ï$gÄ&Úã²¢—ÅVY|\6êdÿ´‰=¨ûàÍ®.Ûk|kg¶½0 nƒ`œüÁ#ÏÃA£#D±Ìd¯ !ܤÅz¯´LÞª…ú_º$rš¸É«R²øN5×c³”F +Å«EUƒTÞ,á!‰ÄI%á«©Ò"··zc»ÊK¥tõMkš×U¡5)Æ•õVIVš”ÀH„R)(< õ0¼õS±¬ë6€í 5…“JpP0=ð^ñT`ôV«\C¥ ò9" K½„wŒLJë„û*-YnDž\B¾vÆ÷ÜíøʪÑ,i¶Íë,E¦ˆCó—² â>u²=´ØUöF®¢¾HýÀy«ÚÂÌôR>C9^­ Ey¨çÐ4LaéúQ è‡Ç <Ë̈dÃŽ:2RßÀ‡ Lwƒ"S :êŸV"T§r ¿¬¾° «7àUXӗߊ-‹*!ÕÕõ·ŸHí$4BpO_p—Á+±}ð%£þrŸ=ÞŸrÃ`ŒõjhKË@ +g@®›ÿÆÛ“Èendstream +endobj +2173 0 obj << +/Type /Page +/Contents 2174 0 R +/Resources 2172 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2154 0 R +>> endobj +2175 0 obj << +/D [2173 0 R /XYZ 91.925 602.788 null] +>> endobj +2172 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R /F11 674 0 R /F48 601 0 R /F36 583 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2178 0 obj << +/Length 2881 +/Filter /FlateDecode +>> +stream +xÚÍZYÛF~Ÿ_!äe)ìªÃ>x=:ˆ“80‚ìzÞ’£Ø6;íTæ@‡Z«,Šè’_hGdsaJw€Aâ9¼ äθÔáó%¯ª¢å‰þ "‘Ó»0ó¶š_h„¸-èñq»™tñ‰>ãIi«êy›ºì&Ž“àͱ·)ø=’>¡LYi‰ŠoÊY‘ûœ6ÄmQ"pn¤,`ø‹=à‡kZí3/}ÞF1˺̪[;¾\ÖxŠNQ~)p~ç š‘,'ïw(àF˜Óý»òTÏ®Àjb[°›rÁ§+j­/‹¥Ñ3©ž³Òbuwmgvíà]œsáðÀW‡ÈµDg™²™oüsá­™ +u$«xÊ&F(žï§*‚¼ß|Tèª+oŒD±M£áLÉLZ÷h'&‹’ Šé‚¶Â7CcÂ5©É\ðPöl¡&‹Ù×xÝ‹Ç혣PP8ñôÉOð>=•ÿîój­ò¾8ð04‚iˆæûîÂÎV_î{°|z'¯_ôX°Í›±ËÅ»t¤ÂƒÛ§»ßþ7ˆ„?ß… tóãPþ6—;£²4“§êîÃÝ?ÇH)œv#«Û8 çvQâ÷Âó”ƒùÅ|.CN°b>ôëbÑo»¢}pmYõ’E£‘-¹.L´Y F²Ø˜z3z‚¾–›™Äoö{…+§Ui Ú-XÄJÇ#½Î%̓ͯ¬ÝtYg#“0\l¢AO‰¿ î¡áBÎ_nŽà 3éÇçÔÖ'ÒR 7æغ{ÂÂÞçýi÷è?g?3¦vAª453+m‹Ã•ÞÃÀ‹!)2YzCNx¸V”r–ò²ÊüWT羦:=ўϒ¶ …L]×ý#£Iäœd‚ê:΀ —Á.tʤæE…DÊ›„‚(´Á»šåÔŸKÙÔg®%󢞵¯(;Œ³\¹ÁKéø. ÖD«ø&ø †ãB fü;æ|í#%¥~‰”8}(Oô&?Mð ñ~ÅŸ9£-A!Íé¥p ji‡O¨ r°XÜñ‚K‚¶©¬zÄ'ªN ¥n:ìe%ô% ß4L<.‚@¾¿ËTš½"ýtȃ$à«Ç@xÀ¿|œeÀ2gýï½`ž7Gú+á)6þªšÈnùt.jž*{þ=0ÎÄŽÚ´ŽPe#«¬,$ÇÙÇ«75 »½vBøÀ,|ŠL•æ nЕ/„ÃØ<ÚÂzfÌÓQ\;¨¨O]ADÍoUÅq€HSßx|«8Œÿ?4¦ékšË&6¦×S´xzÈ)ƒ+—L¾Í6#h³F…€æ ªëéL?(j=ÖV§€ú¦*«[Q€¶ÊÆÞ1ëµ辂OöÇîWÄžD^¨O%a8â„(pq3br-e ÈäN燜£HIŸV󈋱½ŒºAÔшº©J{ýbKà V è 7Oácïõ +#µ˜¼bƒ˜[rÕÎ&v,‹`Œ&ÜN" ”à˃c¹ü>¶ ØY fãªÈŽÏ  B3øÖ4òÆM¥¤V +,."¸Ç'ÊQèC͉6¬ð„ëñŠ ò¶Ö†3ÄŠkàÂP²—2ƃ%]rÚé@µ +îuäß)1eÀiù‡^ßq¥| ‹ºÄÛP·ʪ¦æDDÓ¿kë`‰x"´Ï‚kñ /á]ÂkáþÆ)ò]j8×yå"9%ÖÔ».|F¶‚ ùìDçO6ÉÕ—•2ˆÓõ‘¢Å…ûíÄ$ð·Ê‡„;íñHÈÇçâp’•U×d{¥àM"îç@7垎4FXõ{šCµ¼ëL/(9:Èb +Zv:ÕJÏTZT奬óþ¦[ÅÈ£¢ŽÄc5¶ˆ(åÖ»/ä^­ô£¦—Õ¾¦îÿ4YƾÁEa}‚“بíáÀζŒìrÙt@uçýJê3N%ÚÎ%®C½¤DBÍq†– ü¼] Óq˜l&KÎÚ`ñÜòŠºr9etêǬ Èøû£Xö“ + Õ¡KFé#…Kn‰ià`Ù)—f jʇVO¿¬ïœt_–׶ +@—¬þ­?3'iduìæK¨ åV˜¼–ZÒx²Áøò ’Y°aª2¨7^l,"|*kîý6-…5ÄQÇFC°Æ¶Öm\#‚fÚœÊYÁ*KFKÑ)ØŠ±Äšd÷sœôFÁ':‰ Zžã“›v0D:íÌ?`”9Yœ²cg—ÚÑ€¼·%dÏ5#ÃÔ—|¨Ãò ++¤†àÛõ-%ÀžÉéÀ˜¼Š™ ßï¯m¾¹»+H£¤è±#%«”¾ß }?dUDÀä;d~äf¤«¦þ!·c¥»méiÝô©L H=vë'é_êTy^» ³Û^°PÐûÍ»UpL(QþÒÑõ·m‹i)J0‡ŒÇ%˜T­‹ 60|«Ñ‚਎S†1 P +>p®ñÑ7‰‚ï}ñ1Nþä-  +JýÙ-L6Ä~ kÎæ>óºT(@µ‹ÄÉmY@LŠžyæÀ±§;?Œ•ÔÍ9ÿtƒß–ÞÖquŽ ºr¸ n9b/\<Õ¬x¦Éi6fcý¿bûæâqŸ³4œ|]yæ ÂWÓÜi‘/¸ÙÇ’j:$,)ÂêðÕ‚ÈÏØ.í\â‚7~‘LÜMp'd´a7É–iŽWÊ +’þº•;å]çÓþp9_ï’ïMóª›Úy1,t;4î}t'›št\•oæ¦}Š;`êokÞ\˜vWVÎÄâå*l} $…ljêðGÿgöþ£äïe#P¦ùÀ0øp}è!°ùºâONñ]Óûxx =³­en‘»+zsÖ•bpõz=’ ]† +%${x… 2ã<±ˆ\Úß,÷Z?CpMÍ ñ’»ŠŒÛcTbì_Šž×nÂì6>BæR`-O‚Âd÷ï=`•Ì«ÂcCvÔ _àè3G4JˆêÉXX§øŒ¥‡¨@USÁ–*ÕQ~k®xZ®¿Çy /¦ùXŠzJŠ/üÉá"=†Óqð¦ãýs&“ÂYUý¼š¢zeÙ¼ \ä"í˜Ř$‚”W8:S±Â/[ßœóD¶y–Ou§Béàg@ž¦6ÝÄÙëñC˜­G@ øa_¨[3’¯ðÚ`Ç­}7FE€$¿j`³Ãöš‰ùÿ  ”AéøµÈ„Òñc:¶‘œÒ&†³tufŠÂ kâ'wFa:”®RÍFø+d_Dt;E–"ó–ùЕ'PImOŒÕyj*21î )ûzI'Üaè§,X´5ŸxQ†C¶.Bð,@ zm²1ø4Yü7Sh ïendstream +endobj +2177 0 obj << +/Type /Page +/Contents 2178 0 R +/Resources 2176 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2182 0 R +/Annots [ 2180 0 R ] +>> endobj +2180 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [247.647 368.655 254.109 380.694] +/Subtype /Link +/A << /S /GoTo /D (Hfootnote.25) >> +>> endobj +2179 0 obj << +/D [2177 0 R /XYZ 63.034 602.788 null] +>> endobj +478 0 obj << +/D [2177 0 R /XYZ 63.034 330.727 null] +>> endobj +482 0 obj << +/D [2177 0 R /XYZ 63.034 253.123 null] +>> endobj +2181 0 obj << +/D [2177 0 R /XYZ 78.277 129.994 null] +>> endobj +2176 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F11 674 0 R /F14 1012 0 R /F10 1027 0 R /F7 586 0 R /F47 596 0 R /F20 1030 0 R /F19 1034 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2185 0 obj << +/Length 1886 +/Filter /FlateDecode +>> +stream +xÚ­YÛnÛF}×W¨/•˜ë½_ÒÚ€[8vÒ¤q¡@›†,Ê2]]âÈÇw–»K-Å•lÔFˆâÏœ™™UHÃÒ5*ºS¤´î§ÜÃÊY‡x‹Ü›ä‘ͯýÎá+Ý5ÈHÖí_o£ô‹O%º÷¹ÿæð•à;B9Œ®5ùíüä¢Ú#Ù‡^ÎÏ êåJ©ìüõÙùiueoOÿƒÓ·îÛÉÛ³÷^÷Ïß}´ØÓ~Í’3$“{aœ!Eà‚$× EƒŸœ bDl±mÉ‘Ñ´Ë1RFY»/OŸq·»7Œ˜ÑÝ;¸ÆcºÓá)¦ý÷IçcçÏ '¢52„vs¡9cJjxVµ|wáårDÕž< Å5ÝUÝå‡måãl}€òÿ+cÅVࣇ¡¶B +²†Ì—Ü£Õz1KŠ!!cÞ]´Û(¬Ãk[࣢é±ò,M£–©_XÕ˜ßOzJg'ŒFZ°­&·2–°3Èã¶2”3¦lÏEÿ©ŒÀˆ¥! r® Âœ¤FÉ`L,óWåx Uy1rS Aü%DŽs˜‚¢¨š!S-ROnôÎûBd Òìè)kŸ ÃÀüEkÈaTÂÔbž†•ÇÚËŠD”jÐj“b “jÅr;`C˜¡Z°ý®$4«éð8Ì6á$ø/@Q¬ÂL›WC-ij¬F&UŽq"ªÄR„žÀÈ!9ÓÈcåX›°†ò)|a¥˜ ÎÕ“Ð +X{iQl#oð*|yŽÙÃ,TŸú7åÒ`:Ô§ˆ¸˜º›åÌŽ@«r°3÷±M«Y¦[<›/6NßÝRbÛUU–+±/Á=VK‰ÈCHÔL§Ò¬@PewÖŪŸ1 %úLnûpC_å¾­.Rg_{Гuõü¼vŸ«ci5lnâ)lÂÚ™±2صÂ]¯—#k¾tvX˜4ä–I鈪ΩPáªjó(é±_º~~5kU èIÔ€¢Z,c:W¬<kÏ« †.¸lªY°g÷Î63{Ú‚Ù“0óXû™qhp¼‹™% +‘pÚQôixy¬ý¼$‡“ºjð*Ðp›—†)C¹ÃRƒìû‘&÷¦ydëÞª£©Ñµª`b_Š‰¬r7fEL¤³P";|ÞËÙ²œUÀ^n÷ÛKв\•ó™ý&³ç‡I,í±ÊÙ*¹nüúôöð. m'T¸cª¾{"ƒ÷ KÕï).W›•í‡†õ€¿õnŠÛ³;l^ÊÃlí×#soÐ"Ð'$uNº«Åhé•ßüÅ|RøYüœ¤Cý³àCäÙóÕô6øm¯‡Nï麉¢= +KbsB:^Ìï¼<^Ú¥û\Œ¾¬ËŨ¨%$Y2°TŸ¯7!æǃÉdî!ñÈù1ø]8Ö/Ü=bÒTŸHWwË,š\$TC +ÃSÌÅþ]Œ¼WGuvXÇ+ªÖ³ƒCÑ`X±¬¾þäÞ]\Âäï4} +S bd_öx‹&}ØoZhoOg!Ët–èÄQŽ“Ú¿uœx«[o˜6 SH +³Ç4€N±dd+ßBdþ«Ël4¬Ê¯¾¶T?šÙ,ù1øáî5·÷Ò«‘¶~½~ ÷ö>}“©Ëh"u!–åØ‹´‰ö§gîúÙ3ÇÍoæØ'Œgò£Î©âöþ¼åGUmõ¡0µ¯ô‹Æ~gÌç~PF×[;±–“ïîÆuù-”ñêÐá}œ7#²C*îÑ›òÔêüsñþc2M™HÞ•[dEå±›|¹¾º,ª@Äù#]/HÖÉ»f‹p$¦UƒÀ;vðãxtÔœ6:UÂ% òdã´V¡];âi·#œSgÙð_F8^ü{üÚendstream +endobj +2184 0 obj << +/Type /Page +/Contents 2185 0 R +/Resources 2183 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2182 0 R +>> endobj +2186 0 obj << +/D [2184 0 R /XYZ 91.925 602.788 null] +>> endobj +956 0 obj << +/D [2184 0 R /XYZ 244.212 490.996 null] +>> endobj +2183 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F64 1214 0 R /F48 601 0 R /F58 1173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2189 0 obj << +/Length 879 +/Filter /FlateDecode +>> +stream +xÚ•VmoÚ0þÞ_‘O[(‹±ãØNÔ iÕÚŽ­ÝªÁ§µU•B ‘  $ŒuꟃÏäQUªÍù|~rÏsg Ë?bqŠ0õ,Ž]$|ß/N°5“+W'<pq*>磓Þ%ó¬œZ£i3ÌhrgÈEGa?®®/:¥®ýep5SÏþzÑ!öõmñÿ×°ó0úÖ»ôˈÔõ‘àBB(‚¹$(Q“d½xŠR0NÕ¸Î"Xij8ÏŠ9·ãDÙÆj8íâp<  ó v:ýÂvfÜ(ŒV¿;‹g#œo—LÍWË,Îã?Q+²BIe@vsûøûöçЈŒášÕ+i"[®Óq¤±ÅaÖ†¹°;_¬B9%k(¡ÓŸ¬Ì@¨Ñê5€L¢,“0—ɱhX‰f\G3>Œ†­¢&M…ðó Œ1M¾Žq/¹kìÕé»/XÙ+#Â0â”BM u¤=ê§K½x®Ì„þ’pR-Š`œæºzòç*e½OáËVérÎ$ÉÌô‰ËCD‘öÃ4}A&áq¢·“Æ]€}ªÈ$LìT^˜ÂnWý€áÉH.§e±–½Sæ§@¿¯Æm‡}”'Ù烑9šWŤ¼+É»ù<ünÞÉŒVÞ &YnÔä9L&sHa*ë Þ× »¼ÒÖ¦QÀÓeZŠ/þ[ëä D æ» +V­Ø;‡n×,N D\Ò"NíQ‡'Kƒ ÁŽe¹ ±@cúÒBGuGÒ}ˆj«ÀŽ¢t- ÙaD^¢- Z¯pÚÈ"PÁT6Åy¥ºÚèZÿsæÝÓ4Áeîkó&£œ߇¼^éûî_kZ§c-ºŠ>ê­»Ó¬)ŒÿöçG€¤Z`9šg‘AÜ1Ê[´-0b8h@Ùë»jØè;,‰Š~ª¯Yðjò¾ªâ†*|jK››i«²GŒõ‰1RSo».ûÏzž×¯½P³šÌæÕ^ÔŠu§Åú5X¡[ã>pRŽië1Ú£~®×,e£íùu*¯–»¢9à‡³æ˼CÔ LïfêQ$¶+‹ÿDÄÓendstream +endobj +2188 0 obj << +/Type /Page +/Contents 2189 0 R +/Resources 2187 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2182 0 R +>> endobj +2190 0 obj << +/D [2188 0 R /XYZ 63.034 602.788 null] +>> endobj +2187 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2193 0 obj << +/Length 1913 +/Filter /FlateDecode +>> +stream +xÚ­XYã6~÷¯ð[ä Äá)QÙÍÃlÒsdgcœI¨mµ­D²z$yŽýõ©b‘¶d©½ Òh Í£ô±X¬úªH±äð'–™`™4Ë„K–Z»ÜÔ ¾ÜÁÌ‹…ð±‰2ÿZ/ž>·ËŒe‰Z®ï.QÖÛŸ")ùê—õ7OŸ}–R3£à¢ÈW/Ÿ}·¾Y‰è‡U¬”Ž2¶ŠÓ4^¾zñòÆ©èõÍ@àæ5õž½~ñí¯Ö/ß¼EìÅÍú¤¥V†%*¹º‘ 3Ù‰±K *&ƒ­˜T3+§'·Æo%;Ë~#;?=„aJ?]T]1 +L‘z‘»)Bl5h+—±à,ƒI“d›45Ñ“¾¾ß|þù +f ¾ô¿·ÿ@À”þeõcšÃØYðlkÉyôô ¨&MÔýñžš›æxèýhC¿ý¾ÀFmª"oËÃŽ†›;ÿ[m]±[(ã°P +2~M~ Æ]^U¼mŽ»½Ÿ›DMÛ›¾ú4 (àÓÙié7V~çKÀæ_°Ùzq55²JYý‡­ìÆëêYmÌ*– ¬Ì|h>PãElÛŒè:OÐ óL<ä‡}Y$ý3xQùý +{ÿáÁœ˜îQh“\ñã 1^<õÖ=92®ä-ÌgÝ8³eáÌo¼¾ÿuSåõ=îzƒÛ›[Wp>;*Ѽ³u81Êkß+>n +2>” „Xò„É £’«÷Ow¢è“.…žWOŽK@ôjˆÅ³`ê¿c—€À.í"4gê• Ž‹"¤¡_ÀÈtQÂguŠª-úâ.ìï]³©ij(6Ý®â?iö(Û X׶«¸e6±£íBðiôƒ@O—îÔ ñ‘H Ôz?x”m"’îXD ¾Å˜=ì<•(H_;p‘¼"£Áà›#Jô8r_áÿMî:séà[f|ÀØ«W2uDWõ%º`U"*rÎæŽ(È­;ò.˺Ò‡þü}ÙPtKí6Ç6ÖØÛ4Îvĺíù wè¹W¯ìO¹Á[6äVÆÔ’:ë7Ô߃íÔ)ëû;׃ȤÙ÷“$QNÝj0TdqKÎ_ó΃aÅ…£Á%Ýj9YW)~°Æýø“rë—„ZÒqQä`w´ûšÍìð¦;Q y²É'Lš>(w0ƒȼ¦éÓ u±7Î,Ûòg.t°È–æGæÇ*-µCƸ=¥ W–Nb0µ *#¨Î¡ÖâïÅ ÇŠ`“´‚Áýâ´k†€Ô|¥êªN ÏÆ:Âjró†i¥E¹€uM; D ¥iGÐQ¶Q2a:³#ÿû°/ÚPôÎÜÜMéÛûû–œ¿»¸ïè¿øñ>ï¨Ñ.2ÀL­tªÔκ=«ß»½Ë)èúZèŠE…HÀe8p°úW`Óô¬è±â˜3øHg+\™O ’?(‰¬pYÉÀÍšC–} ÝÖUÝ$ä9ÃÕH·-›+Ó4Ú뽫r~Á68òîH Þþ{8ãd.«¸ª%¿ \á„fâ ý 游„51Ç06 “ók„Œî’ªx‹Îí÷”ûpáàcìœã¹kµæ®"¹\ L‰!‰cïýÊ ý ³Uœ¤2zå‹#ü­¢.%¥$¶ñ çû¼Dø¦Å;«h胖Øþ­¹¥É€±íBgsêסÌ8”u^òU.à­„rÎÔû"ߺz'6™ˆ~<¸÷»¿;);`hßAóˆ†A”ÿ›Qhr=q•Îôä‡c™šF¶ÍÙV^èÐÌÕmA.è-wÇí©ÉUæå-rå&”;yïkÒSIAƒS$oBß´ù.Ð¥¿ ÖeáÖß`N³qŸûjË_4}$šô|§…ÛZwUÕè´°…çxbUx"Ko P²‡ÇÂ/à„ÁÓn:„RTfðk$0ü31–BˆÌÓ¡ÇŠ`ôB8ÔJqÆa Èεvƒ"ùQ4óX×5Ó ©ºÐ ÜaJÔ"š_>’nëºn‰f&ë¶e›K½lâò£Ð’i¸z žq'Ϲ^4È>ôšDÜóHæ^—D +þjÒó[5À=©&ºý4¨Bã@ÿ²9ÿz(¬‡+ýå½RPˆ)™Í½T+8ìT`o0ù¼³qendstream +endobj +2192 0 obj << +/Type /Page +/Contents 2193 0 R +/Resources 2191 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2182 0 R +>> endobj +2194 0 obj << +/D [2192 0 R /XYZ 91.925 602.788 null] +>> endobj +2195 0 obj << +/D [2192 0 R /XYZ 91.925 325.76 null] +>> endobj +486 0 obj << +/D [2192 0 R /XYZ 91.925 286.051 null] +>> endobj +2191 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R /F48 601 0 R /F47 596 0 R /F57 1167 0 R /F56 1170 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2198 0 obj << +/Length 1820 +/Filter /FlateDecode +>> +stream +xÚÅYmsÓFþî_¡~“(ºÜû 4ÌÐÒPh)ä 4ãØŽã©m¥~™äçwOw'¬³†Ìtd­öžÝ}v÷ö †?$“ aÆ3‰)RZg£ÅgSxs6 ^¢ô"e$óóÅàäµà™AF²ìâzWÍÅøsnEE©”Ê?žÿqööUQ2Fó_ÏÏÎ/ì-Ï{Uüí{ûï‡Å׋7'¯u«‘Q”TÁ*£”X‰Á«‹Ç).Bgœ!Eà†$ßkXx ª ïˆìŠrd4ͬ VîßÁç¯8ƒÜ›FÌèìî1"Æd‹ iÐìžçƒƒ¿ZPD(0Rd¥Ð¾lý)3 /¤µž€C §™P`$1µ^ÎÁSÓj5ÛÀõfá<&TûuXx-nwF)CtG­`ˆh–¶!è*#eΈ¥iÌ:F, +ÆòmQ’|ÞÃø5ÕƒÏë:Œk„1¾±wk ´áÞ«¨ïõR;΋NËùÒZx[Û¹ék¤ ’FeÉ…LŠȀ'\»ÒX•v‡WU¶ºz”£„"AeXÎB›Ñ–ÕÁ‰#†r„•ñ6 û6ÇEðÚp9†”çälJ¦lU lÅV¯ê ­qªxlëØ;%,¥ôQoÊU‚„A¶Û +1àÏíÆQ ~7Xv/(‘áõ¨ÿ9” Úÿ"MCÙ^í::!"äñJY«n-cq-j`$a6!ˆÊ@™Û@) P„›ŽðsœÔ¡”lXIògÛõ$‘Ó%ˆ`Õ õ™x¶ª +jò»¾v&Qzdà DÙTžòwO†ë¹ Na[ĺFËŽE¢aÃT^“§r<›ZÒnÖµ3³Òh¤•éØÄŽù¹*l%.‰‚ÊG\a^OànÜw?Ж5Ä;àþÐFÏZ©‰ôí.?7Ö™FId48ʇû¼ö±¤ˆ‰®Åƒ@¯gSˆš„zÚ‡ m’=ñ°U'u±c¹AZv1Êc¿`*ûÈ4$5é!ÛqU›pØùˆA-¤³¾ò¹u]­V &ƒf÷ÉExüëUµpüÇ®›ØíP•È, …*'q”¿`œ°ö°$¸¸ÕÆ•3º¾Æ=#I-¦Mþw²cjÊתö êˆE¬S‚ZÞ&Z%²Û²)lÏ`]]{ iØã–`iûÿ}_BŒÙ}W»JpòDRÕw=â—QtÓAuß÷ÃÄö•Bó %kð&Ü«”o¹nù"ð¢&^ Åaœ 5lƉn¤ Om,¥l³Kø +£ ¥&ÇŽ8nÓ˜S%Õ"0¢Æ¸ã¾5ùid•é ’M9¥©I°ÐÍŠz_yb¡…ÚŸâðÚSU}_^•Ìîtºùn¹¨¥vžªÙcãæ`“(‰0R8YÙ¶/ã¶?NnUu³¥ ¥Øáogâ1®öýŸÉÑw"è„w;!ܺ¨ý2Ú¾ue}ro}0‚&µ3Ö¾ÚC›%ùlã«ë„…X#iÔ~Â×&F›}€…Hên’|‡ëÃd³]-m}ñkñ¨§)7÷Ô_¼{ߟðe}fÂØý )JÓ½¾SU¶ºê}Œ؆½—¨§žß_JçŸ#/ìM‹ŠÚ7™0™ð»&°aú„Y$’'Cv(ÑöƒOãÑT "úëÙt ŒXMìÚ‹g6Îó—óèh¦>ßJM¹ ˆ’,ZóX€Œ6ûÆ\§ëTc$Hÿ¢ *ß©ãý‰ÇçuÇ0´Ê;èÆ» u†Dzz¡¤PXŒ@±W0ÀXÕŽ©:Ú~9†ínœ¸*BLag\±¼\lç—ã¢T¸æ{9[nÜów>uWxeG³ú¥Ì¯Ú_w?5]wj¦81%hDyÈ _‡bü¥è*‚n@å&‘o=¦'›Åí0º=O¢¡­’»jN à€|•f^¸6–œÝû%V“µ¿«æcÌÓ +xòWáÕžxß-†ÿLÜÝz»òw#w™­ÝõÊÎHöf²¬¶Ó;—Ûßn‚Û“+ï“äÊ2tÝFT¾Îç•_ð'¯¨|QŸ6Ô?º !ÞÙ˜HƒxÓXSÑ ñ6 SegHÕÅbÿ‚gݧ Ù¦«ê.ü´Áhû[gµ~üÁëy÷þjú§´¶©ƒŒt]wj¨—ª&ƒís 1Ò\0ýU¡àfÕibU/ÐQÄ ;:Ùì†RŠ¼@WQ2_Ýaçtâ3msã¹ Ía:[çîi#œUK¼6*£jÛÔŠ$+YH3—Ià“eÉìb»Ùµîá_Ϧ˃€BšÀê­ìiÃ:ûÛóÝòîk®ŽOMªr‡ÿÀÁñËÿŽÚ×endstream +endobj +2197 0 obj << +/Type /Page +/Contents 2198 0 R +/Resources 2196 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2182 0 R +>> endobj +2199 0 obj << +/D [2197 0 R /XYZ 63.034 602.788 null] +>> endobj +957 0 obj << +/D [2197 0 R /XYZ 215.182 359.489 null] +>> endobj +2196 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F23 1211 0 R /F64 1214 0 R /F58 1173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2202 0 obj << +/Length 1267 +/Filter /FlateDecode +>> +stream +xÚ­Wmo£Fþî_áO¾ˆ û +¨M¤\›K|—讫R•Fœ py¹\úë;ûfcÀ´ªÈaw˜}æafvÏ=øÃó£ð¹ðòƒ`ç3oþ o®fØh¸FÅíè¼_ÍN?ó…‚ÎW뾕UrïB«§8Ûëa§ìJ•Ÿ¯/¾¬.Øùºp)eNˆ®ïûÎõòêúRɨssù(\ÞèÙÅÍÕç¯ËÕõí´=»\íP2Ê‘ bÒ«3ð„ó ŠŽ+Üg( Báô¨/·#.öPÈC# .„;§ï.‡g´É¢Z×eedîy²ÕÃûºl.vª8}Ð’w§£vCc·É·‘V<ëûql óF¥ø? Œ;“´–›I|ŒìñÅøâãø訔õðýV¥1UÕÛ(ŠÀ¬åfm{Áß^ŒJýÞöq™oÛ&µ“M›õ$6vdþáq/ûÞG¤žVüÓî[¶Šì4Ù)œœÀzlÒ&ÜÇ$ +ÃФÍÚ(t‚Öµ‡ð ¨ðø·­Ê¤ƒ¦P’÷u›÷Â¥yÉ 'MZåSìpÏl_™çÙž#ùË·¯e•(—á…pZ;äÎÉQÕw2+ Qzó£ªOòßhºø}Ü LD;$¸Ótº˜" +]€F)%lD˜A=£<¦ œ ƹŒÐ- 6©¦Å‚N5 dewUª%zˆ!K!7iÔŒ;ý¬ð … +äûÖ<’{¾é½ 7`RÊí5¡´PR=PB”›™q£×úÒ"Ïç ]ÐÔþ5»ðæ tÀg æ¯0ö†!ŸA§„f¶™ÝÍ~ÝwÈÖ”»·ÕoõÁ]dw“že]¢zï‚üÎ.õÂT¦tÖœ«Ð C<ä“zˆ{öz è ܼ…c,À­€ì>œW»×n)Â*jýöµ’“¦Q…”yN´nä.5»†dèÓZÙ¨õ³J£DÖr§2"¾Á,Vq7Ƙ³2© ÀÀð¡oëVB¬HÂB§Õ˜Á‚¤“{ÀQ.TZÚzGvÁ0L AÄ·¥J]+úÔŽ0Æ–y8Û‡F€}Ú±1Œv¸Üan“A5ŒÜ.­À yp,tË$§åz¸ dùÑð‘ÏÙæBö¬ãHƒ©¤ÜõÒ•¾ðHv}'UßLÕ„o’cEñæm0õ“Î\CŽ( Çn›”Qä+F;/ÿcŒ©ýendstream +endobj +2201 0 obj << +/Type /Page +/Contents 2202 0 R +/Resources 2200 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2182 0 R +>> endobj +2203 0 obj << +/D [2201 0 R /XYZ 91.925 602.788 null] +>> endobj +2200 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R /F11 674 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2206 0 obj << +/Length 514 +/Filter /FlateDecode +>> +stream +xÚ}SM›0½çWp´¥âÅ6Æp]m6MUUíê’Xå# lÔö×wÆã¤Ñ¦Z!ùcfüæ½7BF |2Ê´Hte‰6Ï£º_$Ñ2«… q(‰ojËÅóI£B™ŽÊÝ[˜²ùÆ +¡­µl»þ¼Ú,y¬µbOëÕºÄcÊ>.¹d›/¸~Ýòï姇çü¢V¹°™ +¦”ƊŲ¼òJ“LØÔ¼KýRsÇ=µ‘”¢0憼±©ÈUFä”P¸hK© Û:¸ ûÖø[Þ Ã0ºÇeA<ŸÝ«‡;UIË\èÂ7Ù¸\姬fó •MÙäÄíBªq—xë¹²ìîÝ쎸¹ºš±d«ºýxÂîó¡ÿ¡Ü¼ÖÂWàî9T=¡Æ1 Óƒ]å¿ûâ¼ `$(ªÇôˆ¥í>΋ëÉ"¤îqÛ†ªœ¯ÖìTy2¿(ZûÖW;›$;yž0›Ì†¡Ôa ñÜ  ¼ íãĉm`N꽜†¦‹£•‰›§~D/ˆRí¼J÷ç* ŠÎÜd¬:94q@öcÜÑ>Z:4îŒÉ~ßåf~ñFT˜N +ö‚#eáñëä4”šGŒJÂ=ž[º[îåýĪqv-1oÿ°ð_FhUüïÿÒ©Vâí&ùå cendstream +endobj +2205 0 obj << +/Type /Page +/Contents 2206 0 R +/Resources 2204 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2208 0 R +>> endobj +2207 0 obj << +/D [2205 0 R /XYZ 63.034 602.788 null] +>> endobj +490 0 obj << +/D [2205 0 R /XYZ 63.034 584.788 null] +>> endobj +2204 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F47 596 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2211 0 obj << +/Length 2787 +/Filter /FlateDecode +>> +stream +xÚ½Ùn#Çñ]_ÁG*É´û>ÖÞ‡µ¡=ì5¼^  JIƒP$EŽVë|}ªú˜éá4)bš£kªë¾šlBáM#Ž«‰¦œk'—·'tr +oNX„¨"H•Á|{~òÕk;qÄi19¿ÚÅr>ÿmʹ<ýãüû¯^+ÙÃ1.‰ð"Èwo_}8?;eÓ§•rêÈieŒ™¾}÷æí™'¦ïÏ~€³÷áéÕû7?}|wþöÇ_÷ÉÙyG¥Šh¡2"¤ †Á +®kXÕV¹ šdTgpÃáêðîä·?èd€ßŸP"œ<À=%̹Éí §špØ8gù¾XqU2/Ÿœt: f•ËÒ;UØ Öc!aÈÎ@îƒÎbsnàlü¸R»R¾ßÖ1~-0H`Ö…”B<¢™ PC`4ÃÐÁŸÎ®*C62=ÆK1žE˜=éð@¾<YÕaª`ÍI5 *ʶYnÛz6O:UwèT$.‹1Ùú’3¨í®”}T—]ÛU!{1µÈÂà Ðq!†AÙÂtŠR)El#Ùh¬6ª%yd¯;à_vs®xfó’‘“Ÿ½zÊ„Wà0\ EªžHܹ¼ö÷Ë‘†tqû©4nwÐ »CKÊÕ {­ÍôÏGè}(e?Ù¥Öžº´ÔSGƒ&1"Éa7Ñþ®V›‚ù)":*š/åÜ×%é«Íê¶XV˜¬€bŒ‚I5J…ùny*d!RÍWX·=ĆMÂ*ÜÒnÝs•«”f—s†h”E Hb¥y–ÑšGÂ#Öö;@vDLA…ß™/—zXb@SÄÊkÁC€s§÷j²Ò’@¨b›äÃ!ãì“4»T³§Ê‰«r…t sAÏÁ»‡¹Ê+T²Øåî(”V ‘Cß’ØŽi„¬n¾ùQ•haÐF)û_©ô%Uª=ÈEì¯~+!Ù¤^Ëæ òýºÈùüØlÁEë%©èmðHðÑyÑt³û5ýC\°4Š®ì€9Ö¼¦Z/ ŠA@(¬h ì(ò¤p+!¤Ù‚ÊG¢Í]ɇ3E¨×:`¢ƒyBÚ*´m•ËÃXiK©…€nˆêjlP4aÄ€RóÙwØ–âðhJ×`_ðíe½ÝÆìÐ\7°ÚÆÇU¡®f»Àý˜„æÏå=.R¦Ç‡¥;ÜpƒY¶\¹~‚.ïJÃqjHJjÖ>hªp^¤åþ¦ + +F –)¤ö“©g5UW•!7UPºˆn;?yøáÕ©±ÓŠYK¬µT¥®Jth²Ìóºf!ˆäØ‚'²Ì¡ )l& Ç*Sš-'˜‚¤¿öuøý¦caGô Pœ”ÓW‹l"ê‡Ê·…Þ 4q Ûó1 á”wOopb@€…;d`ŽÎ5îÎ ì;)ŽCYÄu2ÐŒ|HÙˆ(Ô"49ž‘9Ô +U íž0Oƒž’wÔÈ\ÓÛ)-%JÈ4å®ü˜;?IEÅJ. +ŠeÊ=źïŸ0;–@myÞqU²1Á–CehšnæÀÍqÈ +¨RÅ)¸.5CªbŒÍ‰W„ÒbÏoÐ 1Øk7u' 7pƒ~¤m´ØfÿkÔÃ6¼ö u¸¿õóΑý(¨ 2­>˨#®ÿ¹Q+`L •‚3l›2:«\*›ìÊg }(þBN Ûå-`Y-B]µ±!šciÖ®ôž“´s¡ý4Lû,DTU†k?©#’eéÂÏuS‡ÊR팺]i~,†Mƒ À+©œÎ–áºZ·M0ô[6ý7Þ@s€ÖkxµYÍ.Q¦7Øë+3=Kø¶ÞÀ±C3[,þ +_!šˆÝ|ÆëM¶Úú÷*fm³J”\…«O +QOPÇaGçµƳEŒ1>¾pg€“UødžSEž+^½%„åÏøù¼Æ“îô´ÙâÕzr<]è:÷—ñÖƒÌ,î…Í@›íõ3ØëîÞC5uoÍ Šœ‹õ&6à¯|ÙmŒ…`ÓÖ3WžÍ: *úÎíkú ^òF<9šèî\7Åî( Ê©Ùâ>>ze玷T’v`ÆÐuÇIWm"ÞKŒO·A÷k|bÐK°°ßCƒ±l`.¼`"%ø¾¹mÚ^Ñú¼ÜN¡=½ _ynfm,`!-`ÔÌ…kD–sCQ•§\ŽÝ‰i5(ós™Tîä°g¾ïÆ´Õb9Çb|¡–¿ ¤•ˆxºA9é5Ž(ÃÀËù¦w(L_2êí«ùÜ$÷M㲜 ýŠ>UTZE·A¤µ·vHEþ©]¥=1pxÅÍga!ØÙ¦™ÅÓJ¿¶ºÊ¾Jˆ‡žŽËiÅOßü݃ÿ ZAh­ñÇ»½ÚÃW +^!‹Þ›üëB؇ƒSqf‰vúyq?âª2d£ÀQŽsÝí·¿îdñ CYÄu2­}wšS†Ó~íèô]ä·©×¾Gõâ­½¬uYð>$Ûè™ê4ÞûȽ©#èV2p'½µ rP³÷ˆ¿mü6ÍeÊ=¢‘ŸUZZ9Ìc[ l<~V)žŽ?s!0ÂdjñÅx7ü :õÐeú³S¸îX_ŒAØJ9Öÿofm@¼‡zë†êßt_w‰jÛÌ“ïá{äá ¾X£Š˜ó?lÀ…z­C¶Á­›6^cIéxxYñûEó/ŸÂSíDìP¶;ÐÆ};Ûlê¶ ýÞ¦ÙÍ÷^mBð0d÷ëq`aÝbJÅwžÖ:Ô ËÂ/8(‘~{Gº3G]œtv§Ú/¼àb9r)<$qØ“(?‚~ÎI[ÂUeÈÆgÏ‚BÙ«» }éY:šdú jCYÄu˜2M€·ç”í‰C +"”÷G!-â:Lš†´&vH#—»tYHÓR´„b[úaXA« 6ìj³adh…ˆ¯!˜îʹ~õX­2 +ʈO—I”Ûm¸Ù~j¶ŸÖ«‡zóiuõÉ;ÃÃʖן°Z`ÿØùîoënd¼»Ÿ-IÊT„Ä1`ÎM†ˆxS´ßôË×¥ 9Ý•uŽSà\i’~ÅGóÅÿT(Wendstream +endobj +2210 0 obj << +/Type /Page +/Contents 2211 0 R +/Resources 2209 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2208 0 R +>> endobj +2212 0 obj << +/D [2210 0 R /XYZ 91.925 602.788 null] +>> endobj +958 0 obj << +/D [2210 0 R /XYZ 245.458 326.612 null] +>> endobj +2209 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F64 1214 0 R /F23 1211 0 R /F48 601 0 R /F11 674 0 R /F14 1012 0 R /F58 1173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2215 0 obj << +/Length 899 +/Filter /FlateDecode +>> +stream +xÚÅWkOÛ0ýÞ_Ñ}™ÒBŒßNlb°n…¡ÑMšªJÓ¢h£)}Ð2ñãgÇ7$iMؤNQ»ññ½Ç×ç8.©cýGê’!Ìx]bŠTÔû75\¿Ö#Ç5 ~ó®SÛ9¼¢P²zg¸¦]x!¢¨á+¥¼óÖéqû°á3F½÷­ãVÇt¹÷á°A¼ö™ùürÞ¸ì|Ü9 +òˆŒHI¥)˜`” +ƒ¨vyq,‘⢒z†YçÔI¸ ÅQ@ešS¢9½a2iø‚ +ïxi»û¶!»¶…§{¶IØ}×ꤣÒ[nmé©Ä®O„yZR†!,p€/?Cø£POµÌhÃçJ'Š‡9±+ ¶Ÿ?ÊþoÆÝ(¾Žg†1š'ñö–¦»Yb¬¡¥‚±×—Ê´Ü5t´2šz2˜Í'£ÇŠº b£ˆ™8®P$×qŠ˜P¤@EòØM>XÏ©•M9«È (€@¡+<Ãz7…ÞNÓ²˜Æ£ë_ÛO÷=ëÞÅÓ8$Ó›Œ"û(š$óY<‚ÃIrc{'g­T,é—掓 +*ñhæ§0ž*ò®å\ô3É·MoÛ¶™|­™®ò§«úŽ ƒQ¦ô5Rì™í>·=Y ­g* Ôˆ^—wëÔ9v‘L  7Væغfn°pÊ íMS(Lì6" JOAm,„ù™®ú½Ñ()ˆ)‰\ÝÛö÷`’T©ƒãŒÚÓÇvŸG!G„ËŠý@9ŸV#§+çËÉY÷ÛAÛYN×3…¤Nô´OPÄœáùJ=oçqÿ'Xo>›V–N<_:pæÃCî©ÙíåÎÝ7ŽÏ¦lôôçê]$ Ê~O¿¶ÛO$¥ú” *“¢œTë](}¤4£Ò+Ç}sÇQ,ˆ¾T½FÒñ’5xèXiÿ?¯T`XiQÎz—ûÉø>Ýc0yßdu®ÞEæ_VŸ…¡n_}þtðÝ—mÈX‚;Ëc“Å®l lÐlGÓÛ*› é°ÙTû¨›†ì&î”zŠý:6vZìUm-Š"”T½YQ&¦^ÀZ"p[«ç¿‰Æø*P¾o’½ôrJâ*²ëzÓˆp#º”ø\)‰Û•æzC£¢/­R¶ËW•ŒÓ7’þE]Š¿‡àgL(£¡ë×ã )b¾ÿ{¾;®endstream +endobj +2214 0 obj << +/Type /Page +/Contents 2215 0 R +/Resources 2213 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2208 0 R +>> endobj +2216 0 obj << +/D [2214 0 R /XYZ 63.034 602.788 null] +>> endobj +2213 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2219 0 obj << +/Length 1009 +/Filter /FlateDecode +>> +stream +xÚµWkoÛ6ý®_¡}Ù¤`¢ù_XÓ!ÝÜÄ™»v­6`ÈCµe[˜‰¤ÄÙ°?R¤bK¡µ ð|èÜËsï%MäCõ‡|‰€ÄÔg.„?]{Ð_¨/—²ˆÈB¢Ì›Ä¼¾’?™w½$³›cÞ&׃·4ÞãŽ%DùÕï®.>$ÃÈ8 Œ8çÁÕèòjXÏ‘`<üE†c3º_¾ÿ8J®Þ}Ò¾½aòÌ2&0Âzi0/"¡ÂŠ";…òÌjž‘0Š1„A‘UÅ&Œ(¦Á»“÷?\üúf¢üGI¥5ˆmìrï˜pÀÔØ„¾°ßŽ, íˆ:ݳ0ÂLqœ.ղȲoMÿlà4áÖ$ŸØoÂϦ{~nZ¢æÐKâ2(f–øÜAÜÚë ‡dë»É,œèu`úµ™›† +l¦ ¸•'”Ö{agQGÐÍÖ´YZþazé¦Üe…éßL¿ÊJÍ»2ãUjÚÇ<»U9ŒTxÁõCi¿ªó2ßnú¶‡cÇöèÿB/ToÒ³„ù&¯&eþg¦hÌ—÷V¿4zýPfµŠõVÖ“_œ·òսǘ1éÙäѦí* EÙ¹‡üTEÁEÁ›¢¸Z„–jV7-þlWæ‹M×NϹ턵۵L ,-x¾-öœ?¹XšAdUu›ëͶð×û¥Ì·§(:²­ˆ©ó¶¯vD‹­€v[Û¡iÊvæÕ«všª´Üm‹:ó¾×LG—£dòf”´Sñ¯£F*ôÙÝMþtûò°%*KW-ÓúٵeúìÖA0=Ú4ˆöŠ*å)ç´©ýmêãm‘W6è†Ç@7ÌÐp&‡ˆ­KkÕ©jÄdÁÙQPÏJô¥”Xˆã%(AÔ~ÎVeæÈ2òI&”Ò)bÁœ:ºËGðÿÎ;²€¶#}-ñºØM¾ÝD{¸¢ÊMèT÷‘tÞG9®ƒYû<ÿñçñø¤™-›Z:›õ¦öΩˆ$§R$vº§E¦ÿ·"Ì*¢ÂŸ®Òõ¹m–—ä{|ö4]¶.çéq3q*éš[¦æ›¥E?_]ɇ`“|ÿâRG;Î%e÷p·€¶#›?¯ +YèjkÔ8ÿ=Ä"È´ÌL(XÚ~¾¾S£Uý›hm4ªJ«úWW¬èoç¦MW +µØyµTµ±U¦×–X©KÕ{Š¥~(Ü{7·ÐŸ©Wŵ‘Âß©>HJía …´£•÷Éûiÿêh|Eκï',ÕËD…Ú@t¬³\1|4´«e^®©Ž²@ºÒamC̃ÅePëQtóoµ(1|ºO%À‘|üiK™endstream +endobj +2218 0 obj << +/Type /Page +/Contents 2219 0 R +/Resources 2217 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2208 0 R +>> endobj +2220 0 obj << +/D [2218 0 R /XYZ 91.925 602.788 null] +>> endobj +2217 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2223 0 obj << +/Length 2101 +/Filter /FlateDecode +>> +stream +xÚ½YÛ6úÝ¿Âo+c+F¤HJzX`{$Ù)‚´›¸OM4¶l«k[Ž$g2ýõýR‡¥LH±ÀâùÝ'G.#ø“K‹(ÖK)‘¤érsZDË=ì¼^Hw"tGÂÁ™ïÖ‹¯Œ^f"³ñr½»³ÞþdB‰U˜$Iðþîíë7/Wa«à‡»×wkêà?/W2xó3þ¾{¿úmýã‹Wi1V©Hl$ 0¥<±x¹îèÒ‘‰6O’îÏLhO'¤›D‹TYÂVí€ÂDí¡À >^Ȫ-‹óJ¥AË‹UÍßöàœ Nyy†ñ¶pmÅ`îW!Ür .yÓÐé-oæ ~m³ô€2eB&©ÁÛ_Þ ¼¦‚2Be^N@•UÉtÞRž·¢ÜämÁH[˜r*­…N@VRŠÌWÍ…‰ß Ém ç?­3™†±1A~„Õ«[)þžI`<îDb,ëb †a• Öœ»ùñX!è?çO‹·ËO%`y4åytȈ›}ÙòÎ QT$€-":æ5oÔEH,FŽ7V2Ù´euFsŒÿ¾"\íáô /.·F'­@ùÒ˜HdÒ =}\üú[´Ü‚ñý¸ˆDœ¥ËGBfÙò´P"K37;.Þ/þÛ§‡€Ý§´ZX©;|Hø©"•l'´¥ZÄQò÷Ðæ`=I[š€åÙm[|ïIû;™Pg yëG¨EÁ6(Áâc™ŽlpN¨mÆÚþT6¤1mÓ s¦Á¬âòˆ†{.^Õš¿Ýýkó ¸Ôl=D(–ASÕîÒ&w°¶å'$dë¨ÊåZdZ·:¼GÛÔQÄ–Ÿ³WÂ|yã¾K´x\ŠUˆ¨ïÉyç#z˜¿ãvx‹8æñ†µ7¸²)xº dcøʇŽÃ|5åiR"ké.Ý©p„v|\¥Tj­ƒ_Î;DY·¸}†È»” 8¸‚‘¼þþ{l*rad¢RBª>ò©7?>6|)ðØH¨x¤ðMuÞtΔlul‚o1¿‘ +'„%AsÝ Bd7²LDäm o‹‡¶:‡ïr4õCCF‹ç.Îôáêçòäv>D8lZI‡£¨Ë¢™É¿%¹ù=ñͦWï]ºpÓG>Ã¥ÃÏÿVbF‰&ç;u,|€ØUÎà9z>Ž0’'±Ì}ôB(; +U\LÌH¥‘0‘v¶²›3$oe(Ž)€X¤‰¿þyæºÍt_Š)€‹‚r6z¢Äµ’Œ–Vd¿J¡áƒgJ>“ôG”Heæ°ýSNˆ‘±ˆZöþ5¥F‚8¤óó*¤2mb9@ó!Šf'•0`;XÑÿ²­Ãjê“dDª‘·…˜Ò©È”\Æ™QúŒ: øÌ|!æa…=0ªÃF&éñ¥À‰ GÆCî@: ñ„Cg4á Z$8öG¾,Dó´ã¯"2£¬!Æ_lïü™ppè¶J½…ãùÊ„Cë;ƧÐv]åh“ä‘.ã$‘d¬w%UQç€1\eXSRV(xÖÎe- ]°‰Ÿ¶¾+J\nEÈß–‹Ú²îKoº…ðsYÖ|eœ3ÏŽs˜iÓÙø1Î$å³1tIf(£axA¯@kéÎÌÇ—L¨Ä²|Bp* Av»‡¢.æRƒÐöy¼F(×’Š Á”´²we7h1&U£ìŽUˆJ¡Â£Õý·AÜV…î™±ÊæjÂXC%(q6Øü[ +‚endstream +endobj +2222 0 obj << +/Type /Page +/Contents 2223 0 R +/Resources 2221 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2208 0 R +/Annots [ 2225 0 R ] +>> endobj +2225 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [362.707 429.42 377.429 441.375] +/Subtype /Link +/A << /S /GoTo /D (equation.9.6) >> +>> endobj +2224 0 obj << +/D [2222 0 R /XYZ 63.034 602.788 null] +>> endobj +494 0 obj << +/D [2222 0 R /XYZ 63.034 475.262 null] +>> endobj +2226 0 obj << +/D [2222 0 R /XYZ 194.157 405.743 null] +>> endobj +2221 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F48 601 0 R /F47 596 0 R /F11 674 0 R /F10 1027 0 R /F7 586 0 R /F14 1012 0 R /F13 1055 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2229 0 obj << +/Length 2683 +/Filter /FlateDecode +>> +stream +xÚ½ZYoÉ~ׯà[ÈÎö}H'mmìõÆ$»û@I´DD$µäp½Þ_Ÿ¯º{fº5MI†•À€9Guu_]#>aøÇ'ž7^è‰a¢±ÎM.×'lr7¯Ox¢˜'’yFó×ó“ï^¹‰o¼‘“óO÷¹œ_ý4ÂÍ~9ÿþ»WZ t\¨FK ¾Dò·7/ª„l¸“u:^óŒYT"“GpÞH^*±IÅmã”~©¯‡¥¼aÂRí¶„µé–,›ìš;Ã7ŠÙd×fl÷-Ž<˯#dzÍlΧwú¿ÂRèÆqÞ³œ+m*ã^5Š‰6€§yê@¥€.±š¼Æ ó¶aÒvÛ‘h„µÍL¸NÃrŒ6Ìú¤Ãb¬£…1:4.6W3ŠEÐáGÔЩÜòª&Ni* CÆй¦W¤êõª¢'ð¢Á/*rQq?—²qÈpsà]¨˜ +ßÚ;òý¡â|{¦K<åšÆ€<¾¾Œ¯…œèÆ[–lÿ;æ ‘|ÎAJX` ù™ 5ÞÈ7VØÜøRšÒš5N˜çÊy·ãIO +ðˆná)8Î>UÃÀÓÞsL@&º#ïî#—ä—ßÔËMD#¡sÄÂp×¹}ñ‚Ö¯®Aob»( Sv5îÏuK»ôúögnúã(¬o¸•½ú߉×.9¯TöÆ0w¼m˜k¤Y 4ó5’Ï…Ó5î¿å÷LŸKƒ è$òõ¹ð5Iòå—å 13ÖÍ>#žøÃR p*XÀoªÐ‹:x”2;ÖEaÑF¡Cí)ÎX]Ä™ñŽ¬7r§zhÛ›ØJœµ‰ó6ÞìÛå]¼Ò©…¶”Îty›ZLÊÝ.ÏݪH¨&ÏÝâÿšPË~ÁàWæC“åúÜÈ´Fþ iljÙsÓw9Á ½¿oAìÓðä‹š[©!0ßÇlu8RvÓyAä ÷Cèå©8I›óºŽ“ð°~}ÔÖkÌÔÿ®1«p+’NÆFRºÇ¤¼¬@µújð¢ñ@ŸWìíÝ»v2Ë̓ñ«¬sÜ4Ê7ΔpÅeŒø…”-ì‘£ɨ1•Œ7 +Aò-G¡Ž×æ#ÒÔ«‰×C +H†‚¡KF£S ?>—L‘Õƒ"Q·¾‰æ¦ÂN·íH4Í +¿‘#æ©ð„!ÄC_!„q8Y Ç;•»š™•B¢YdÒ¤|Fåðé*L`ɳJëÚŒÕÒñÐôëŸ0V·>åJ¼æ³±ÀN¢¨BàÍxò˦ŸIªÄëa©<8xYH¦â"MÅaÅ”Š ˜f“ñó›nÈæÑÜ&óÓK¯‘:¸ÚàÉÕ>Þ£ ˆ«8`^^/wqÎ3¹”F%îNE›‘huºnøOí 1T•ŽPøo?ÅÇ‹Ôt8€SA®ì€¼"ÉîQSùûÕæ:^‚-§¡¡òvúÃòsœè£Îoæw7QeºÔ‹;âDªo—3Q Hx䜳Ä|µÜˆt±kW ú²sû%¾ÜÞ÷Õš˜’Aÿ ‹åU|yA+öé iàâ:M´‚œ "sˆq±Oé·b`Ñ®f<#]´ÝUZøéaݯZ´pe Ù¦),g(ðñ€€@:LN¯$E"² ’KÖ²u52ç—ô£“ß+ë5wY •PÇ‘ n8RŠxB¸ptÆÌ©¡‰Ù<ãâ%—·ß‘YXßæz­ñcaRÜN€3„‘°‘j"äÉù@rÜ>ò«ìS„‰ƒè›’(—‹äþ‹*ÉñW5Ñë«8"§Û«Hû‰ÊçviñÙÝ‚h„cpʉpœ02æ‘«åf»FH¢¾‚#[Ü £A rÒ=%ŠÝ¾CY^Æë’O¹ø’ä q®(’omAaD‰×Äž¾j‘²㣔#é¡æ¥±s_Pi“0¦á&?UÁ?™»402™FôŸ^ÆîR8£{ú~Óm‘ŽR¡õTªH]H»”Q¥è¦Ä{ˆ^¤'Ñ*tœuC£.BñN¤kÊUÁlíŠòÒ튌É€ƒ/•ÔlhJxÏNùà`Šï`F2,ˆaB׈+šÅT9W*˜òéûÃÁc·¸l;˜ÒŸBò]GµVmR~ïï§>8+_´³“ä.~û$«”Ùš~éazÂÐ>’îsµæ±r>xâ§Ý¶@'.ÍDs[j\Ú{yöW%KŒU†þ¢TØs„¿ éþîvÕÅò?•ôM0¹7J™V†Ï¾ûÕÕ2=Î,r;&ÝÁÖÄoz¸@¡*‰^±XYW!A ·ö©—C¢õY E‹®w±„’l¿¯Ö$ò&®æ&jABxšÞЈoCu^Iµ7<]ÜÞNŸ»µpE—uQ£ë ³oc®‹wŸW¡Ý´¢Ëw_Õ»u/USˆöqðë¡ò?D‘V_n7Šv×)6·}§»Á -°h˜šž]-±ñ—Ž0¶b]‡0(Söe +MIÈ tèY¦dTÙÆG¤9‘ô­[¼%1*@ žÞ¨£\ø„°@¿¡<‘pÊE‡ôöóÍrWÛZHô¬Gw¦aO?Hë´¹o{¹`™2u 9œ'ã™áƒM—8ñfsŽî#{!øôƒò͘ƒ;âàŽ0УÓw:$yÝHákǨîO Xþò¿/Í–Èendstream +endobj +2228 0 obj << +/Type /Page +/Contents 2229 0 R +/Resources 2227 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2208 0 R +>> endobj +2230 0 obj << +/D [2228 0 R /XYZ 91.925 602.788 null] +>> endobj +959 0 obj << +/D [2228 0 R /XYZ 243.23 281.91 null] +>> endobj +2227 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F23 1211 0 R /F59 1176 0 R /F64 1214 0 R /F26 1460 0 R /F20 1030 0 R /F48 601 0 R /F11 674 0 R /F10 1027 0 R /F7 586 0 R /F12 1578 0 R /F13 1055 0 R /F14 1012 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2233 0 obj << +/Length 1134 +/Filter /FlateDecode +>> +stream +xÚ½W]oÛ6}÷¯Ð^9­‘)i› tX’¥ËÒ´1lYÈ6-µ%WIþHéÒ’ÆmP6)òòžÃsy/-ìøêƒN‘O‡û…QäÌ7#ßIÕÌùƒ…&^Ïæ·éèäŒNŒbNérßÍtqëƈ ±†¡{squ~y:ö(%îïçSÝ Ü?NÇؽ¼Ö¿ŸnÆwÓ÷'gQç‘’…GaÀR76O¹‡N¤8pg;, PDxw&©µhI1ÞÙâ©ŸÇ^À¸;Ëö©Å +vþä—Ñíï,¿÷#Ñ8rUßG8ŽÍH1ã žÖ£›ÑÇŽãÈëyjÉ÷ ùa Øo¶û„0ÃüE8_‡i)¡H4õ‰L˜3ú2¬À×aV„¡GVE>öHäæšïócòq˜j£ˆ÷Ø“ƒ¦^϶EçLçˆ1Ñà>æTùð°¯øÇ0Ž=ÌBæž=F˜»”Ù¢íU+Ñv²£jÕöŠ<¯Ú^¾lÛ$k[©ZìV"…&R[Ǿï[gãÝlãì“(ë5-óÚ*ëùÊPK`ú?Ÿùsõƒ5þñ¬ýuì ÉEÏú5nìí[cj!FüC´ Òž®d ÎÖi^ÈjµiëRÀÄ•x¬òìHs5¦Ûm‘•›¤’yfE!C”¯·ò5¾kû“Ý x šÞ¨Õ;=YéGi†¬8tˆó¸’FîG¹^?{:º3!›³ÀÝužjÀ«©5–a¼ŠBXáƒ!¼H zY‰­xÈ×FKî2‘EÛ›é-ÊJ]XÁ÷ÂaÚÌ0݈$ƒn•[Ù°!›nß«:ímß–_꤃ÓÆÝy=o`7Õü €"âèÄÊä§4|7Ûûì¾Ó\ ­†vÓÀ7y³³Ö¢,d*Á`ÖÍì/š?{4"¸žâ®Ä¨;“®§%Ì÷JCG:Ñy½ T…SEL‡þbãA}XÞ¬mz…(aM&Rû"ë–(¦îÉl[‰ëÒˆ!Ý楬ä<ÉeßÙðt‰ÅÐKJ ûe;ý?¯Úwi3üöÁ,ïm)SH6có×õýÕ鹉à^¬V± ‡‚CÂ*%)µÈU]d;œ¿ß]Ú•fO¡iˆ¸Bj‘S 2 ’‚Z¯*>£_a*¤w´e/A^U¨°?MZñÔf>üùîŸgTÃ1Ê©Cš‘E5EÑ.Yü½’£À·¹ð·KF~œdÉÒ\•ãîþ~Š­Šô¥ ¬îÙ·+F€b!·)F슅/¥XduïWÒåà~Þ]¾"Mºº¬æÕ.± ¦°©ÚkÊñgaîÿªH柕Xf.½É fZb&Kz…u·PEïßë7ö…Ä:J÷©ÈÀ#9¸ƒ »!K1LH¸èšÄ´óa¶¿ŒƒËEþô 0¬^Vû§¯ÿV¯1C”Ķ·^Põ–£Ÿz“ÿV­eendstream +endobj +2232 0 obj << +/Type /Page +/Contents 2233 0 R +/Resources 2231 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2235 0 R +>> endobj +2234 0 obj << +/D [2232 0 R /XYZ 63.034 602.788 null] +>> endobj +2231 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2238 0 obj << +/Length 820 +/Filter /FlateDecode +>> +stream +xÚ½WioÓ0þÞ_¾LiE\߇&> Ô­# !@UÏ­b=´¥Œý{œÚiâÎÍz UQçñ{=ï‘ ê + +³€C „”Ao\Á­~rVAYHTÀ¼+õS( 8 â᪔¸ÿ#ÄVÅõSFsÂ0B´Üò¡yr7ª(¼©F„ÐPj$„›çgÍÆb„­Æ7 h´ÌÝIëìêæ÷k˜»œ$›S+é¾ÔÚÒ’Ì+ž—SäŒ\æŒÜúrÌò’1[šbsû£?ëÊóhÉf¾úôµÕÚirÀJù4× ¹ê@•ª O¼B;7<´&¢ÿq©-‘:Ô Rž#p}p­ DÄ™¢§»Ñý dúº?ž9‘ucù"ŽÏé¶ñ2bp‰ÜÒUÞÒUºt1ÇyéjŽç÷‰Y÷:Ûà¬iӡ͈î³)Y;8‡ƒ'³x´ïÝ z¿ËªV «w˜uÿÔÍãc*H¨CEK2Á\r—WcKÓ¸ðz¼_ R z¸úuj?*+ß·)¡”Þþ8æ‡Nendstream +endobj +2237 0 obj << +/Type /Page +/Contents 2238 0 R +/Resources 2236 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2235 0 R +>> endobj +2239 0 obj << +/D [2237 0 R /XYZ 91.925 602.788 null] +>> endobj +2236 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2242 0 obj << +/Length 1108 +/Filter /FlateDecode +>> +stream +xÚ­VÛnÜ6}÷Wl_ +*ˆdñ"Qj‘êia;0¶E[´V»+D+-$m÷ë;Ù½ËnÆZäððÌ™áð"'1üÉIª£X›I«ÈfÙ¤X]Ä“ŒÜ\HF„ 0輪3É£<Õ“éü”f:ûCä‘Ž‚ÐZ+®î~¾¿ B­µ¸ûí6â}Jq ´qÍë;o¸ +2-¦ïï‚¿¦¿\~Èö>´Ê"›Z…ôJKD\\OwJMœFÖ$¯³ÅœG“M2ð”D“Xe*õîâ<BcU"íÐa­ÇÇ©þEu(ã(Or•qLâ¡¿ã46Š­fñ ?ð2à˜HŽÒ+ÈZjQÍIÈŸq¯ÖÅj½ï?¨·ÔsЕÔ|÷Ž¾·Ÿqn¦~èL«Ì²Hå’ÅÎGÄnǺ4§èPþº²gÿô­ýæéqv¨V¢ V,ù V¸×ÿÝ^ÿý¯W¿«WÖF»L‰gÀ±vÃ9ý/Ë›œ;MÒÈdö•åeÀ1QúíuÛJ&<\Ö}9¿Ž¾¿…-¥ KÉXŠåµ{êJ÷y<ììÿªêüœHÛ(…‰/1àˆHÆc:%‹J!”Ë7´P~å@ÍaYR£¯ µZ.VGŸyÕõœŠ7—£ôŠé]øÓž… ³)£¹“zÔjN”žë훚/èI˜vUùµXm*ÞHî”qaé‘•«AÚvžÀc͸_×±â[ò˜YUÌT§ Ÿ£TjôlU°º2±´ûÀCµ.]w˜Sýb.•ÞÏU£sÕËsÍ~®+_ž›ìÂ6]³[„qðÈ™«2'»Ø؉4‘6|d"Ô*Êáöô÷;ÜÖF þŃkf-VpŠBwÐܬ­Ä”(;´§â¦l°)…QáŒæìžÁJÂÅ+½dX Ìpå\ebã=)‹ìð¿DÆl=a +ì·«’z^c3UC_G#_‚$®«PR¹÷3A°¨=Ô“ ˆùR UÉ.æݦ5ºxª1¢‚,Ÿ‘És2]Ñ=¯a|hÃÆ’\m×GÂúPVñòQ&ÆP€n…Ø1’MÛÐÑg톪m8p@`ªüìƒÈÚ v‘³vUýí•1Ô¡îEÛUé½x·©Å'ÙÖpÝ,|X²¶¹+†P5‹£è©4Çeí +9øêVëº|‹ +;Ýá‹eœÛ,!pp€Ü÷ùäN5™)°z³]²žÌŽ¿žap¨m¨pâ‚ìk_'må«g`0¥:ƒíç0TÖŒ<Î1\Zõv[T&ß r#‹V´> öÒWhƒ[Z°¿­ØEÙafu&>60Âç¼ê ]¸m°ç‡¸íj\ j¹" Ö…?ìCNÊQnÙú¶.ëg²ÍÛŽ¯–Ðy\”{z¸7í@“ <¤d9‚ÆY½£Ó‚û›¾¤";y¾ó«;O"­ò±Ç»6:²{ƒÿ> Áendstream +endobj +2241 0 obj << +/Type /Page +/Contents 2242 0 R +/Resources 2240 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2235 0 R +>> endobj +2243 0 obj << +/D [2241 0 R /XYZ 63.034 602.788 null] +>> endobj +498 0 obj << +/D [2241 0 R /XYZ 63.034 261.681 null] +>> endobj +2240 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R /F47 596 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2246 0 obj << +/Length 1971 +/Filter /FlateDecode +>> +stream +xÚ½YÛnÜ6}߯У¶­Þ/½<¸…“8M71 +mQ(^y½è^\ínÓæë;CRµ¢Ý5Š +‰ ÏÎ gdVPøÇ +LjãªÐ”cmq½™Ñb 3Ïf,JTQ¤Jd¾½š=yj GœÅÕÍ©–«ÅÏ%|þëÕ‹'O•ä—D zQä»çg—WçsV¾™WBÈÒ‘yeŒ)Ÿ_<{~îÇDùòüG8žÎ^>{ýæâêù«·¨{v~Õ£”B-ôƒ†)ˆapòóZ£eQI¨á©Ä©¤$β¢D¹?f?ÿJ‹Ƚ˜Q"œ-ÞÃ=%̹b3ã”ÎY|^ÏÞÎ~01ZŠJY /öÜ*]X M{Ò´#ZÚBÈœ§îl ¬,wíê×ÛMdÚ /IPGe$zswJçŽرNç¿!³"oB§«J”#<àDѱm½W¬\Dô‰ÉœÆÎMÈÔº +ØB<£Ä© íÂ+»;âï!£RËX¯²’J—gð +8E¹·snKd³Y6¨¢ *4T(N¸4QÅ» *c Uv„êõñ`e AU'¢»}s\ì*`h±ÛàG€®š_žhV¯§à4qþϧo;™ºß²Jj¢1Y'f¨ÈôÍ.“ô ‹ˆÞžÕ_Ù0’²ãò¦íØgaCЗwS­’‚ãó˜£È±|`‰Ò\äppÍ Áâ†ïÂVYE¨¶§&²’e¸–àwæÑwËew É@DSÓK0™Û3¨m(›ÄÇ—«LhøH™Mx¼?œÕ§Åä§xÄÿF𣅃²PŽŒ ÃáMs¸7 C%É”¹? sÈœZAæƒúÿ”…£®*Q6ÍÂppi({;™OÌÂäžc_J8¨á€úOǾ€ ´ ;d¶0gN ìW’cY“k1:™N¡?]-àvmº8C¾œ#MP'µ±ï-¦%° Ž0ÍŠdÍÛ#fd÷¨Óõ‚qð™~,€cý;BÇ„XŠlB‡ Ê &9pó`ß&!‚ÄPlÉ”T +‰V»BXCœS]kQùÞ B_L#‡ÜJL%PÉN\ÅÀ¾š^ÅGtçëàªJtM![°‰rä1žÆ)ç°¼ìjÜ«ÛÕ ‘¦¬×Ѽ`ŒÜµþœ3˺Եï:q¼X°Ü@‡€¡:÷7QÇ*´}ÿƒºÜŲZ•/w ÇZ¶H©´|LÀCõØz]úÞcnb¬üöoP.ßl÷GoÉv¼Ï×‡ä¡ ÷x´´~+¤%êÒžá‹*¬>xS±°òªn±5 +÷ž>ÿ¢§Ï죜È™ñ\4ûpb[‚½¡Fô +=PCíp@@ ~ȵƒèöQï:ŠûW÷áÞ«±uSï“Ö/åK7)ø¸NítŽg.Ê‹¸bð„Uw·°øç-þ§×HÀ£¿Ö‰‘«väÞÕmÄ=8Q8Z±qw|äžË£?˹ñÍŸ);“Èy³mÚÚWZqä=Îúå®ñ•[åaëqtw\/‚ Â]4õ!'ªšðtÜâ<”…›n¾Æïk¼—±ïôÇÛ&Œ tÈšFG6Ýø€‹É™†ü}ØM÷è bR±ä›’%¢ïr‡R1ý8åo訓µíšAÖÁ +’’’ñdA;›Lµ‹®•}ê„wÛIJ„£Ž;Hä ‘ò9Y ðù”UUƒ®iË iŽÂ@ñ_|æ¹L U‹ÄÔù°¢ªaA«ÁŒHaaQJ|+wÍB Bÿ'ð<ì¡ooU­Ù°´Mª¾pôu"¾»fºwá֣̀—*£Ê'ŸÍ¡ÏUå¦þÞÖárò-š\H·‡0é=]®þl¶áv¿úЄ»Ïžd¶qaÔ•›wq~s÷.ta5 +ýútýE¸Æqí3ûaß7Ø'º9âPrÙÅQ<´RJ«(0VÄ0‰u û;H×_e×äQà{tñ"/,F£6ŽÊAEhù;Jj´4¯IuoñÀNxþú›p¥YcZ¼¶â^:‰ñ²Rš6H6a‰W—¿AMþS§™® Ç–î¿R,3KG±"›Uï" ›ß¬Ú}Ü‚»u}ÝŒÜ8uuüÄ2ì\Þ­ -vSƒvPæÇúX$2À7Ã.ÆXðüæÞí‘ÖÌið `÷?»ýŸ->a#}“ùþvµnW‹°S/ ëâ—gNJˆÓÌSt?‚»\ßýUƒ¦“ÿ¬¸à+endstream +endobj +2245 0 obj << +/Type /Page +/Contents 2246 0 R +/Resources 2244 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2235 0 R +>> endobj +2247 0 obj << +/D [2245 0 R /XYZ 91.925 602.788 null] +>> endobj +960 0 obj << +/D [2245 0 R /XYZ 246.822 425.242 null] +>> endobj +2244 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F64 1214 0 R /F48 601 0 R /F11 674 0 R /F14 1012 0 R /F58 1173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2250 0 obj << +/Length 1563 +/Filter /FlateDecode +>> +stream +xÚ­XYoÛF~÷¯PóD!Ã=x¡h· §ÈG@Q4E@K”HT"U¶óï;IÉf÷@rwvvîù†²ZðO-"ãÆ.¢@ûq’,Vû‹`±…“Ÿ/”pxÂâñü°¼xuÚE꧑Y,7Å,׿;©o}׋ãعru⼿y{é&ÖYºžr–¯]åüäzÆç ¸ÿpƒÏøx·tã\âcyýþÝG÷å›WWɤÏèÄ£ DUÚä¸x½­¶AäÇ6<ëØÀóÔ³d‘€¦èȳ0¶~¢#R{×Ó‘rãz!¼?a€ÿ›¼eÂwüÚ>gëõçõÄ•½äõZÞz +ÿ3é¹üöÃç÷¿\þFä˜NfiøA¬%a8²Û8<ø)\eËCz‡N“w}S±"°ú[ÂN™£§zMìG †ÕngÔ +é xV|"Q¼/Ê]>…h]nË®õ<¦|ϯ`> ÊD~¨Ô™0 §ªS Ã3¸k‹™ü©ãœEÏÌ™ 6ñ¹œ lj±6p=ëçåÌÎèµ1‚9“3a`A‰Ò³âÍó÷•Ên`áe{*þì¶Øš¬ZŸ\£>tÏ¿è0ßWQz& Ç©çöŸd!ü¯Yý_-hg[Ð-xì”DoÞ±t¦¬_ÛGŽÙx¡¬o¬”5sxFû©e Må}©R ñÊM­S¥¡¢€EÖuðÌq ` ànòæm^¹F9q•ð¬«öÉ|³µÀV¤lY€$“À…[¼°+;œH_˜ÖÕüÎ÷@f.~5¨a]>x,0d¯4Œ}«'êS?ŽC9íò‡®ÏP­ˆEGÄ·–žZ#þÔsa46b‘§d¾|K—!¶ÌÔ³¨ \ëE®ë†²(¨ý€EA2C2¬õŠ@PµÂU' +2é8÷eWÀ*HÙ{äaÐpb9àͦ+ó¾58ðaÐ× ŸæÙþ°´¼D¢u@&ŒÂ¤ÀºÜaf /1åÔQ^àþ-”h̼³-ïЊ\4gÌÚ’Õè@Ym™ToÆò<^¡ø‚¬ÍVÝè5\×P€m/ç°ÓN&ÔOÊX¥l˜„/`Â$\t lÜ`íЂʶãåÁM\Ÿ)' 3Ê õò)Pv¦ ‚Ä +CþW±ºsCÀ1°’L2â×u¿[³+œ¯?)p\Ú†¾Åoºãrèø{,Ï(œeÞðžò€tÑÞd¢ô{Ž™ –¤±NéV‰„ŒéX.M½¥xiþ„b7pì'÷$£<”@ÆM±D[Þ>xﯫCßÍÁ‚J|Ã`6V©¶`#B.”Õ]Ý2âà •¼c`-¥hlJÝÍï].SZ—»¯²–dPÛär…*PneLk˱Gp»«1n÷œ1Ž52_~–¯)Ì×LâÜØ2œ’àë0÷U?B…†Ïñž­eXqäl(°Ë¸ ¼"(¯>—[ä=2cÞê=~Q¹ÃYdd,¼¤d Ò dÜîDþ +I7bCÀŸQSJ@yþ0V JÚå/ÑyM‘W3.Ž°„óÍ'ÜÒï^ðšð¸GHÎÖr@ptzFÎä;vIn£Ã…è-zd›‹JmCE“…ØéÍŒŽUÄï¯CÞœE·1{Q2A4VFƒ9¡@D®y ®ê=]ÀáƒgžF.Ýì'Tð.ð×9 ’rXÛ”cøU‡&tyÃ(rÔ lЗÇø[aŸu2«Ùlc9XRϾÈbN- Uµª©G&„*yÁU—ïEüò` +³P”F^ô­ìh:í„Ÿ™ëal“9#ïd£™zœ7Üâ|‘6@› *³ÛÑ!^tø¯GâÕ€ê=©nœÓx€¨Â¦hð~ŸÉLÅ ò×_ç*n¸ƒ±iqW & -‡á›Tà¢`ØÏ溰> ¢å«¢«gBÇ˵€DB‹”l7à *!¬L͘U•doúîc¾»2“Q4P胢¢æù”½|J½ß·þã¿Èü4ôNçþViôcúytø7Ög!7endstream +endobj +2249 0 obj << +/Type /Page +/Contents 2250 0 R +/Resources 2248 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2235 0 R +/Annots [ 2252 0 R ] +>> endobj +2252 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [389.144 270.045 403.867 282] +/Subtype /Link +/A << /S /GoTo /D (figure.9.9) >> +>> endobj +2251 0 obj << +/D [2249 0 R /XYZ 63.034 602.788 null] +>> endobj +502 0 obj << +/D [2249 0 R /XYZ 63.034 393.188 null] +>> endobj +506 0 obj << +/D [2249 0 R /XYZ 63.034 303.932 null] +>> endobj +2248 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R /F47 596 0 R /F11 674 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2255 0 obj << +/Length 1529 +/Filter /FlateDecode +>> +stream +xÚ­šIs7Fïü<‚•Ü©ÊAV´9r¼ˆq—Š÷ÄŽm9Ž“üú4f0PRÏÁéò¤6ßà{hbƃk ¸Î¨³ñëFÇ”ÖOß®`ý’Þ9^a±W‡ìucnoW·ŽÒ:ëìzûâj•í³ÇÊX·y²½sëÈ»6ÓÞZª[†œìßßnP=ÜìYëTÖ›½£:9=>9þfÕÙá#px6¾Ú?;¾÷ðt{r÷¼Ô^ngJg½6,ˆuVG¤'xãûh5¸Lï‚Ób?äêP§s¢Ð@ ¹ ü°züÖÏhàh›Óú3=9¯ß®,D<Ö×oVç« +¦ÇÓüúDåò<½®›_D¯3Í›AƒÁaöm²Wo>=ßì¡P4O¯..¯N ¦ CÈôQ£i’XØ v|†8@]e­Åöºj×a³ÑÉ…/5ÁjŸŒ ìTlÖ„¬£O_kh— ìTlÖ:šþˆ_¤Aµ¬”Z'RζrW{š¨ ÞS +!Œ=Ê*@œ¤4ÐÊ’´U» +gÊÒÍv‡+²VJÐ5+èRcñ;t¦ÒVC º¦!Og}Òw“µ•Î::H :ÚDYŒßR†¸:ıỤÑ©ð[56|ô{`:_é<¾] n +¿£ •.°áKеðyº9üŽ.VºxSøa’êĆoƒÆ(¶ò[56|[èr¥Ëløt-üº˜tB¿C‡Ô6MN^í³éKàµôy<뽎&î╾ Ôm~í£)‡3ý:qùÓÎРØâoÕ®çOŠ”~ž=x¶àŤ¾eÀk,àMôx¥u‚uÈ + ×àñfz¼Ò;öïG „2Ã!©cV4Z®ùÏÅØøiG\58ÖvÂÆ/×Òçá¦ð{¸Ò:1fuʆ/ײgáæè{¸Ò9¬ºÃGo†öQ}ÇF0üâ eߪ±áƒÕ)öš¡}¹¨ÎØð%ðZú xSü=ÞÐ9Á¨»lüx-o Ç³ué|¿ €«Üãp)i±SÓVŒ‹ß•Ëv4ØøÚ[ïsñKÀÍé/ÀÕðwàB¹\øpsö<ÜýÜÐ5³Q¢/Í ’Qçlôt*k³Xö­~¤?¥jo®Û’-¾^KoŠ¿Ã³ÓÆï6~ ¼–?7 ÐãaÅ{Äïûmi_Éõ#+@pÚ9©üçblü!i0nj^?±ñ Àµôy¸)üÎU¸ŸÙðàZö,Ü}7tMïÔ/üÚ·å¤Ô½7Ú%±µßª±áû !Ž×Íl¬­éW6| ¼–þÞ7lûlROÙø%ðZþ<Þ,@—ëì=[¸àõž³з{“¥hÕXœÓˆ£Ã®lü Dõ‚@¯ °€7 Ð㙺|^²Hà5x¼Y€ÏV^-PÎ[AõšÀ$í£X÷oÕX¬ÑF‡¯üÆ + ×XÀ›èñJÿ„Ôï¬xMo Ç‹5Ü7 ¤òæ¬zË +€ôˆb Uc0  T‡§&ö+€^`o ÃóP;À;V ¼&7 Ðãa½÷¼ÞT‡?°€£G±Ъ±@ÒÆûÒÄ08ÅþG¤^`o ÇsžUY$ðš<Þ,@ç<¯þä÷ÿ>TI>qØlt©ÐUã°9h“«Ÿ±úù'€Þ,À^`/ÕóÓÏœ"x³ x“;x¹ÎÞß|PÇüà +èS^ªtÕXÊ}n¤ÃºEý—Í_‚®å¿@7åßÑ™zùç+6~ º?O7ÇßÑÙñþÄ6Œ*eëí=ßp÷ ”ï¡‚ÿï„Dg£‘¦ÔDË7Þœ±F:0:¹ 7_ÕžÆLC +øÑë—Ÿ6¨.Ÿ7Ñد7´?vêìÝÆDZŒ†Îi.ëIç§å‡:_ß½x-,“µ§Ië(®¡KG +åæ£áúÚ C€QöÆÏOw6AÿæÁû²Eendstream +endobj +2254 0 obj << +/Type /Page +/Contents 2255 0 R +/Resources 2253 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2235 0 R +>> endobj +2256 0 obj << +/D [2254 0 R /XYZ 91.925 602.788 null] +>> endobj +961 0 obj << +/D [2254 0 R /XYZ 249.39 364.581 null] +>> endobj +2253 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F48 601 0 R /F11 674 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2259 0 obj << +/Length 2659 +/Filter /FlateDecode +>> +stream +xÚ½ZûÛ6þ}ÿ +£?Ém¤ð)’¹^½»¤Ø¶IzÉ※&(œXë5êÇÖöæô¿oød‹ön‘E`ESÃáÇyqf>bøÇGµ¬˜T£š‰ÊX;z¿bÌÀÏ–gûJ-âïÅÙë³w 8—•àrTj«°²“v=²8}M§çÜa)iƒCrçep¾€ÜfëÍ|‡çõ2HL›n‘;¦¢Ä–7‡ãÆV¶¶-Ï;O!+nå‘3D^eY8D·¢bzÿ›f2=& AgõƒK¼NP#ïIÂ.˜éüS”kOBVÎÔQ®ÕPîÐ(«œ–dHx~+bwsKwžº²œ·»¥ª² M”²ì 4§Tq¾èuæðRepÂ@f8GoÓ»tä¬;RûE^§N „jÍÞ ²ý7äl”†=®Èë$.‡$NìêÔ|ëC“(H9Võ¸ ”)´®¸À}È}¥tªÁ-Zµ3-(ÕC£§ûU +á;s±ãZú–+aó•?)Wkjö”™n7ݲ¸GSQi—õÁÀªìñ æ88#ýö çôKþ\÷ŽöE¸"¯ÓÀlhí &¹}ª†Ý~¸ªMâòšÒd+Ê"}[Dù{Ù+ËŠóÅ"Œüaýh‚DAWœ¿þçÿâ"ÌoS¿fƒÜJ©˜/hß*´®co“ZšXÅtqC®=Ÿ)ùû{âÒ„w>MR¬.ˆ†z‹xÄö"NÚ‰€‰J¶™L×_ìK)øh»Þ±Š!jJÐÙ{}t8WÙc6ˆwÈån×DâSÆÔओӛ`÷½hctrpÅ”o:÷䤃 +&Ë(µ®éYÍš ®¾ºfÔü&êeØòÖ@PÊ.F·‘WVÀµý¼ S¼ƒŠL±^PlB[æ«0öþ9!NŸÃDÀ9mÂ\Èx1XIx½ÏùÊ[îû‰/Dj@¿’ qh/n»ŸfcÙª™A,CóSF#…½n6ç±'ÀöŽ4÷¹‰Yº)&ÔövÙLÃDHá­ßL_Yªƒv¡3Þpß Gt™*É×Kþ†ÂâàH4 +ŽD£[ßÅNÌZÔ(ªÉ¾ )܈ɤߓŠÀd3yÔ½ ~Mp®HÜ¡ä¥Û ÉÜž@Z)kþn½ˆ\ú áÚ8Ôë›8ç›ÿÉTWar+bÆ6 'áegX¶KdMd¨FÃT,’\4"âÖ*ü]fTL ikYw¾¢âŠLùâ ‘aÑ•KËð£ÆÁ~7“O%ѸlBßk² /œmØ+øÙ’þF“ÚÄ»ýh<,nÓôœÎc#ìÓfš9êd’ –]H—ü÷(<‚:k%-czsÕ„ 4Xëº7=Y%ŸÆm¢™­æ>ÂòVSÂ…Áfýή¡—ËÌW'ê늒•51Ï ôâ™±LUÓ´¿[†n‡t„ì)í5Ó<Ÿ²c4üšÂpÑÖí^G.x¥æõCJ¬Nb‚Œ¨-ÙÔMJ¤®öyT‘ÕIT( +’Ä>*ÜÞPó§/Év ¢xe(1}²ªOýç€2R–i`{utHA#…ï*òºõœ®dÜÆmñøkäšBÇàL£IxÐbŠ4þ…2ž‹·áõ¿Zºº˜Í?4qÆ ïgwµq×ùj—}ïâûåͯè×GªW1M+ÃÅ£ð|=‰žî_ý£w×CGuangÁ2õ¸­P¦Îi|ßv öqD®:íëGŸ%oã·öß²(D\‚Óà$‚3†ažTfgUdÔºœüÖD}ÞnâÈ_&ú¢0NÏõoA«yý wÕ)¥ÇåÛðáñǃm¾ Z%=´‰ ®öÚõEÞw•hÝ(ì¤p¹,ýOÖù{B›endstream +endobj +2258 0 obj << +/Type /Page +/Contents 2259 0 R +/Resources 2257 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2261 0 R +>> endobj +2260 0 obj << +/D [2258 0 R /XYZ 63.034 602.788 null] +>> endobj +962 0 obj << +/D [2258 0 R /XYZ 207.96 359.489 null] +>> endobj +2257 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F64 1214 0 R /F59 1176 0 R /F20 1030 0 R /F23 1211 0 R /F48 601 0 R /F11 674 0 R /F58 1173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2264 0 obj << +/Length 1067 +/Filter /FlateDecode +>> +stream +xÚ­WkoÛ6ýž_á}ªÜTŒ(>$­ wp“vé´F- Ŧm¡²dHrûõ£ÄK½Lk dòèòÞËsŽ(Û.—)œ¼U©DKu-ÖBÝÄ"\DÉJýXD«¨(o¹åj(4…%Ž¬3Ç‚¨›(Ù>Eo…ýŸÊ ¹ïu/àô%d¯ÕAþr+{æáØ:êC¶“Š›Ù8xû³¾†$M•„äUÌmMþ ?L Ýendstream +endobj +2263 0 obj << +/Type /Page +/Contents 2264 0 R +/Resources 2262 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2261 0 R +>> endobj +2265 0 obj << +/D [2263 0 R /XYZ 91.925 602.788 null] +>> endobj +2262 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2268 0 obj << +/Length 607 +/Filter /FlateDecode +>> +stream +xÚ¥T]kÛ0}ϯðÞä)ú–ÌØ cMÙF›’úel£˜Åq‰S·ûøõ»²”ÆI¼½ ƒ®®|î9WWWb …%Z*d¢)'ÆÚäûfD“ +þ\XDàÁ=Ì»|4ž*™d$Ó"É—§4ùâ ʈ$)6Æ iÊ-šÍo&©•(O1CùUÊÐû !ÐÜ/xÿnîÇ{?Üæ©hâ‡üÃìö>ý–OíAOpKŒ6 —âÂxÄè*ÉZRMŒTÿÜØs¾3›XPÒ½)#‰åº“£Ú†„TvÀIC¨1¡*þïñàÀŒ’ Q5ÐF¡ËË]Û¼öQÀp1ô\K¢ûïZpLÄéyŠ¹æ +/R¬ÀîÊ6LÚUW\U‡Ù¶^ÿ +3· ¶æÕo5¢Á½J‰(µþJÝ<>¸Ýï²Ùz§€õbÝÒY˜T$ƒã%X”`8NA¦XrJQ߶¥ê²>õ¿'`#‘ŽhÊö©‰â7w³O“ÏÃÊæ\ŸË“>“&a ÂT'˜bm`ÊàNé8nÆ@öº¬ËÆß¼¢…eWWЈF¢y±p?q`å¬ÇÊ%RfQ·Ð…™4,fOžöÆÓ›‹™†ÖÓë’)Z!]"Z¢æ½\;0(­> endobj +2269 0 obj << +/D [2267 0 R /XYZ 63.034 602.788 null] +>> endobj +510 0 obj << +/D [2267 0 R /XYZ 63.034 460.013 null] +>> endobj +2266 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R /F47 596 0 R /F21 1422 0 R /F11 674 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2272 0 obj << +/Length 2876 +/Filter /FlateDecode +>> +stream +xÚÅZ[oÛV~÷¯òDuË“s¿$›ÞÂMܦM71v±Û Ùbl¢‘åHtâüû9òP<²:@ ¤Éáp.ß\)6£ðÍ#Ž«™¦œkgg«:;‡;ÏX¤¨#IÑüãäàñvæˆÓbvòn—ËÉò·Š ;ÿýäÇÇ?(9Ð1.‰ø"É÷/=9š³êõ¼BVŽÌkcLõâøù‹#MT/þG/Ã_‡/Ÿ¿z}|òâç7Èûà褗R +E´Ð·*"¤ †Á +ÞÙ83p—â¨ÉIvI%q–ÏPQ‡„~ûΖ@øã%ÂÙÙ'8§„97[p«ˆ`2þýþàÍÁ?©gì2«••ðdo^¥gì¦ƒÝ a”͔ѠóÖ;|†9_oÚŽ«hl3<$UÑÖ««]‹1 ¼ŒíyÞ©… ÌŠ=:D^uÆ,(‘ÉÃ,â`¬D·Þ,–óšU-(quÈ‚HpEÐLu¬&\£Ó(q*ð<¾D†W×ø7eɱŒõ,k©tu8GpT+¢`'pà3¥1úÎ*µÏLU=𚺰¢A£H‚B¢m.çÜ&m4ÍÈ%¡ÆEmSmÊ*ÅÛârô\x†þ´Æ®êšóf3e®áÔƧ7ë3Ɉ¥zdþW×]°Wt§ò‘íOú¢Aqxhhoê©$ÒÉÝŽ$#5¥M|7ÍÕ¦Ù"×&(·èЂë¨ñúÝ”½¡Ä@žÊ¬8B@ŒP¥àÈÔW‹÷Ýþ€4S^. v\P€S"éíSÃÛ«¿OÍÄ òŒ“¯ ŽgÖgì»ïö°K¡¤etaUכ˷TÑÈ^fÞd„öbüü뮽¹ÒpßôÊß#ä,ß“™¯:cæ­ËÕ%ÚrcCÕ¡ +êMAiKKXý˜OKàWE —b ü¾.+F®”ÉFÏæ5·º¢ÁÂÝ{ÂOXH•ÉÛ®$+”SKŒ†·LHú(ðíóæéöúÎ@ Õv¿ï ![ ±(W\?Ìw‘W1›úι/#OA?έþSHþàè>fÎã” 5)wž …À€ŒØFJpn¸µÅÚž½¤EƨýnGC/5N©ò.Iw»=Âm BáQ0`‰I5’AE(·(3çûªh•'[ˆýö ¤«Ë‚ 4a=€žM™/Þã R µÕebÍé™´–héT”¯:cP6 +VAèð>”í— ÛÑšžêy±Ïp,™?…,4,‚³kYV±bi·Òü ï…[9+pBE¢øÛj*ÂA Ÿ +Íïú^Pp·CÁÜ è) ñ—Š‘`„BàUgÌ +PU/Ñ pÿ…Á…lЉê$kW½)„¶T5²¢ŽAõï‹»ù&ZH¼tT4kÜ‘zôôåt§”`ò i¹ŽAï a»òÝ ÍåTC„ø\:EM²K±1_{³. …æf÷÷†2{^¯ƒ¶ÚjÝTÛ;1}¤VÕiPš>O>+E4'B¦ˆ8+@H©J™Ùb‹—ÁJë?Ÿ×WS! æ .w|7ê;eÛaPè.šaHZ\ÅA"t ¼Ú¦žo½iFô¼òíà‡ëöãòä"ÂÜ4К’3n.œKκfGÿòB±±Pù’ŸKþ¶šå##¶æ!Çïz[þui7Ëû´[È}œéýJÖЇцÅÜ·ÛìâÀë`pO"CàçBEKaé }Oò +EÁB¹úo)¥%˜ ]À£q_ (‡qog¬4!yd¼N úˆÀi6Û]Ì-ÛsDO·Â:èí—¢%a*7ÄSJ@™!†½Ìò2C>eø$;Ðô×ð1¼úF¸ÏÞR¨¸ŠP({Iš]´! +÷7™ÁmDÓ«ÚÞä›OhÙ0^û‡a¢r÷É¿ÌUôk»êþ¾ÿBWñ¯ç*]õú–¹M +ÚìÛ˜_YØ™P˜0w>dnK¼êŒÙdncg Ö¿ðÏÌm¥%€flñ°% ´và<¨X ‹»df T(Äú|Íti+žh ÊþC{~ p÷URˆ +[.@Š”²:|Ÿ-sý>|º³4`({é]^rÖ•½”xݦ è3Ò ¬l¡­¿™H'a’e 'vãÐÀ‰„NÛÜú½ApA´æ1™›šp £NÿÆÙ´¯ýF…óIËR±ÒòÛXÿ!"=å·qËp¼êŒÙT` Z™‘¼ÞíMœí3ZUeØO.b¾TCûÕë.àÿU¸x¶^]!¦:Ÿg=¥ŠùN’³âRª÷ “’Ùø¿™ÈàgÙN5eòmÖ¿-êØ`9Ó ö¥Ì÷§^¿W®08âÊÕñï‚? âk¨ø Dœx°¯:c6 MÅ}—H|³›ïØGv bge“ñRþ Ä°ÓfœÖ ¦aöö?o»í£p-YÃû0Òíµï`ÄŦ 'þöM‡ô‹³TœýÅe 8E=>‡óM³Dlœµ—çÁSlégùÁQÛë3Ï',Í·m(Õ¸õÕ4úÜÀìW>Íá *x¸‘Öè,û¼‡xD‚ÌéÔ`Ç~µ³Hã£ÐU:(º¡übS qÏ‚hL_"Ã'”æ¬Ü¾Ò%#£Èíån¥qè`ªZá¨d+ož÷ë©°ÕÖº[‚ÃõSåupÌð.Ä”c.¹Æ^P8„hÈt™Âß¡Ol‰`>ÓÏEa«_Ö]Tß›bÑE[àpµ )c±LSäïì«B;Zw½xÃÛçpa (X/!h ç†kwÓøÁåY¿šÞcæ s#dšA†µÑé:«g!°¼µ}ôÑ‚oô0€Îìz|ݵù:AÿR,Ë‘3ËtF¡ûé?­µÛ ÙvLáçã…ççê¤He4Ñ‚ù²¹ñî¥%Cx<èêp(á¿”ù èFwBÚ´}Z +—="àèóOû±]@Ï „«~¿œÚÆ34s”OŒãŸKÆaá}Ëðº-h’4ðM”×Á»´…\µ¿L#JŸ{ŒCGcüÞg0[Ri¬8rÜQ|¢¨ +Ÿ½oÕ“OÍ98˜ž’¡Š°OZ¢#¢þÞ•&3Ào´Á2ø±=GÀSocj²öØmo̯qXuµY/Â&o›(]öLé‹Y¬&Jí„¡NiUùŠ–%ÙPc–á&Æ/×2ô)xa³;%B'Yùfg‰ !$ÁÁ&8'>Ý3Ã@-9¯NæVú“}5]5ËϺWï£}02¢‰ðR_á|PÓ?ºÂs½õyü‘«{ê d:vïƒOÈ3˜Ö+ïQ ½¾a8nÛ•ÿ@Ž!÷9\Â6aÓdÊC?*üâiñû„ˆq¤@NMaÅd iMàzFÄÓËéà„S +~ð·”īΘM¿m J(\H4þç)Å_^Hüõ‡ý:’E^·K&qî#É°KGB£~¶+ … +Åý­¸íCu$­3Úðz›­üÂà“Hü:ƒésüO™ˆ(£ªÇßÌkÅUµ11àù"N!\¯â¥ñ­CØ›ïÓÃlý9ÆeFyÞ~lâ?¬„S DNÀDá#^úæqQNål/»â}ﯮþÇ¡á p  ì£T߆£O%‹M¼ +|›Äï2iûmÿÎk9®,¹%¼oÔbªÏSG‚1#†ù!½×Ÿ¢,Ëö|û´øzi“† ´­º§»ðŠx€ÑJpW•ÓÚh~óÿg@mendstream +endobj +2271 0 obj << +/Type /Page +/Contents 2272 0 R +/Resources 2270 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2261 0 R +/Annots [ 2274 0 R ] +>> endobj +2274 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [254.436 224.58 274.14 236.535] +/Subtype /Link +/A << /S /GoTo /D (figure.9.12) >> +>> endobj +2273 0 obj << +/D [2271 0 R /XYZ 91.925 602.788 null] +>> endobj +963 0 obj << +/D [2271 0 R /XYZ 243.64 337.571 null] +>> endobj +2270 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F64 1214 0 R /F59 1176 0 R /F20 1030 0 R /F23 1211 0 R /F48 601 0 R /F11 674 0 R /F14 1012 0 R /F10 1027 0 R /F58 1173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2277 0 obj << +/Length 1400 +/Filter /FlateDecode +>> +stream +xÚÍYÛn7}×WlûìÚ]š÷KÓpQ;hÚØ®-h“@¬¼¨l9²œ¸m>¾C‘{“Èm‘lÀÀ^g†gÎœá’2I0ü‘D2„O$¦Hi\^p2‡7ÏFÄ[äÞ$oÙü0 žd$KÆo·ÃŒg¯Rƒ8Êr¥TzœQžž¿8Ì4OÇYNÒñQFÒ³œ1–žÛöþìÜ/ìádœi–ÚÃø§Ó“‹ìÍøùÁ±nÆcT#%´CQf¬Åèh\£æX"ÅEobŒ3¤\à{iÀ“‚œEÛ`Û#v`ƵvïF¯ÞàdvÏG1£“p1&¹ÃÑÌß/F£_HÁ€„ #D4ÒÆC$wå­·¦û\(Š8uÕx‹Eb €Ü„’S²áòefD:]ÜP ùÖq4ÕnæÌs?Ýf0AihÒø3ÒðÁzÓ X ÃÌ'¥A}³í4¨$Hs1LU°þ4¤øô³Ò¸[¯¶aŒ€ŽÉPõ` vf…ÊÀè‹»ÄC®½m­ Q‰€©JJ7EÊxT¾M¨!äFa*„v€ýUã¨5ö ‚ ú/¨ji ÃUKZz0iÉ¡¤ÅRT¥|r Ò1Â+iE•ÕDBYq\µ²Z¸xTYC j”ÕƒJK‡6¨×„qþuT]Ãðõ¿¨k°‰‹ Ä«‹! 6‚Á&½¸¢Újâ ¡­8ªZ[ *•Ö iõ€Ò +aÑÆ´Q‹Kkº¾ìo"…µ9 +K"¦aÝD%’0m¤UVfaE1Õºja¢Qa €©ÑU“†o¡èòä„EãÊ„®/û‹H0, d¯²GT° c8ª¬&ÎÒŠ£ªµÕBE¢ÚU#®Tš" +¬6*¯.—×0œ ¨/…QP wÛ„YÈIÎ!_NuP6Τ²°L—óûŒ¤«ÂýX`¡ßf9ç<=z˜^ß.àÝæ·{£Éáb¾\Áãr}Çk÷òúv‡Ili§I Nö¸2áÜ«X}¹1ؤbA:É­—«éÌB}@»…†T‰nÃÛa”Ú"°Cu™êýí†kŒ¸iVúB'ö)[¿Ýpn5nvðzñRÄMfå¼\g0?ŠtöÄâ„Ð9èÏÀ”茹7¾¼š®²œ%Ò½ÉsyêN°1 ûŠàSé#ì9÷Ë«âòw¹šÞÌ wiKnÏë«¢z7+ì¥L÷‚•\z××XàÚK¤ß¹u§·ÂŠô{w’‰ÛŒCìšK¢ E¤ñ»q¿[o“W]Xd*¶U±¾_ݸ1^œM^þfÍì Ó²„‘ÜÈóÀÈÞ ˆáPxF¶èw_Vô/ï½*˵¯ô_Åjé®ÂÜ3àôUÞYO{3ÝêdãuC"ƃ\3ÞòézØi:æ%¼×VEO>ü-ì ‡*© +†×ò7â/ºj rS®'—ËÛ?ËGëo\[mJԔ髧ÌÂÅ¢0³pÝW¬Ê¢ Ùšàéãx ú8 †§[Ѩߟ=‹7Å|º.ßu³Üº~æÜ£<Ø"^Ÿœª´Fwåü¦ÛÀ÷ÉѳXoD‰îí gÑM‘{º÷÷'Ž…·uOî.½O'‹:‰ßÏN/Â~j¨zê`x㉆[Wÿ8G`oÿáª\é«Ý*»³ŽTJ‚ì%í«”·è‚!žÓÿÐ˳òýd¶ÓÇîÆþã¥ú¾7˜7;oU›?š}Bß3®¬czÒ«,ºéA¯qåà_.Šéj›Û'¡ÖÌ{…f‹öÊÊ/w ìü© -šª áöË&Í|endstream +endobj +2276 0 obj << +/Type /Page +/Contents 2277 0 R +/Resources 2275 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2261 0 R +>> endobj +2278 0 obj << +/D [2276 0 R /XYZ 63.034 602.788 null] +>> endobj +964 0 obj << +/D [2276 0 R /XYZ 187.005 494.383 null] +>> endobj +2275 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F48 601 0 R /F11 674 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2281 0 obj << +/Length 564 +/Filter /FlateDecode +>> +stream +xÚ}T]o›0}ϯài…¤86þM{Ȧ4I—®UË&Mi„hBR¤„ C¦íßÏ.—6Z!„ï½ÇÇçc ë‡XAÇ-=$}ßZí{ØÚêʤGáÄ=Á| {Ã+ß +P ¨nÚ,áza{ ;ËðzxÅÙŽx qJ5¯|›Žî±Cì{Ç¥”Ùr\)¥=M¦ã—µçã_0žWÑh>¹½Ÿ…Ó›Ã݇¯*åHPña#5æ¬î[¾–(NZá’!ß/:1gÐJð†caYw²…ú —`è‰×}Éí~QªÁÀq¹Çí/ÕgŸGE¤öq¾X/—ØŸ §æo  Öé¶èÆÈsµT"¡ã÷Õ IäwÒŽë -xد„«äO¢Š¤ +ÊghyiYTãƒégÓhÒl«·œ`ŽíYV—S˜´ŠkÎ2ù!Í4e‡&µ-DÓ€¤òÐZl“ª¢<V FWòww\k%myé6[‚ü¶ôì¸JÔ²S ©• eʘ÷”E ßµ æ=ffád ϱª¢¾¨¸|í£0‰Î@ÐÎ,km]œçIkÅÕçÇÏùhš(`Ǫd½K¹:ä‰Úýh¢öi—µþ– µ 2Ì)hœ‹GB¾ènItf%péã³Ú%µUÆÊOåûöø0K%åQÁ¯wsÝ~ýîžœŸ)ÏGcœ)4ˆ$nß\páQ/躷(£HÿM€[Ïendstream +endobj +2280 0 obj << +/Type /Page +/Contents 2281 0 R +/Resources 2279 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2261 0 R +>> endobj +2282 0 obj << +/D [2280 0 R /XYZ 91.925 602.788 null] +>> endobj +2279 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2285 0 obj << +/Length 1372 +/Filter /FlateDecode +>> +stream +xÚWK£F¾Ï¯pn Œ;ý¤E9l6ÉJ{Èa×·$Ì06Z0ÆÍ¿OUW7ƆqF‘%L?ªê«w!V~b•)Æ•^e\2ëܪløj'ŸD¸¡´bVàjáp­yƬ6«õ„ÃÏ›‡~Óv%9Ë2µÚùÿÊShÚ¬^.ˆ¤hèìÞÏx<­?<¤2O†xìW µ´¨5<«ž†=Ðâ}| Šûó¢Ùu};ûv +ã ;%²Ûêâ %ËñúFæ*—É®¯ +Òó4ÐNÙµ­|À5 G±/õ©ëSŒ‡¤‰€Š·HZ´Å¹ñ€MTx3Ð…ÏEÙmkz÷¸_= Ù kF®ëôGÔq(†ºC†,…ÐÔ%ä uÍ¡BUÑB~·¯OñBØ"ÍOÑ5.êà=<G€ä/jâ¿@]£¾.»Š€žˆ³äÛ¯´Qö¯UK: ÝÎGÍÑGb‰÷Mð1Eñ‰¶f>VN]ÌÅ­ðþåë:<ž·°ÛÔ'z „“ +"£àô%5°°êîD|ÅU õ©”HÛ"æH…L”Jž‹r %;Ú¹Ñ +=ë‚ÐLé,䧒,×d·9ƒ‡€ûBšäU‚bˆ^ñ9ð³¿Åœ÷¡éü Š‚èM}&-Ô u@ŠPÐz"gÌ9Èåp \µž;¬Ÿ÷®'Âî™ö´Ð?øèè ¦¸ñõ/˜ôÕaendstream +endobj +2284 0 obj << +/Type /Page +/Contents 2285 0 R +/Resources 2283 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2287 0 R +>> endobj +2286 0 obj << +/D [2284 0 R /XYZ 63.034 602.788 null] +>> endobj +514 0 obj << +/D [2284 0 R /XYZ 63.034 584.788 null] +>> endobj +518 0 obj << +/D [2284 0 R /XYZ 63.034 303.828 null] +>> endobj +2283 0 obj << +/Font << /F47 596 0 R /F8 580 0 R /F11 674 0 R /F14 1012 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2290 0 obj << +/Length 2721 +/Filter /FlateDecode +>> +stream +xÚÍZYsÜÆ~ç¯ØÇÝ*ïxîÁ$•Tɺ]vdKLåÁö¸I”ö ±X1ʯOƒk%iëHJUË™Ac¦»§ÏR3 ÿÔ,*µ›y©EȲÙjs&g×ðäå™JËD²ìÑ|w~öí‹lEôfv~u¼Ëùå/smõâ·óï¿}álG—y9Ø)ž¾zòÓùó…š¿],±s%ÅbB˜ÿãŸ?~÷œÍüüÕó7o‘èüõb©æOyõÉ/ßð‹jþúüÕ0~‡§=?où¶Æ oü½¢kDP0P“Ïm0¾tZ(£G1¢1S3§Dpé~?ûå79»ºïϤ01›ÝÁX +ãls¦M&¤6i¾>{wösÇ“²VáÔÌ›­ºaã ´çQÊIl˜¹àÿHê|²-\者†¿7›¤üнûi“ò_VE^£úŠ=ÃÈD7ºƒñfƒË8Úòê³òLÊ=.U¼ô«tò5ü¨tJŸ5M;Žc6@×Z8xe 3ÿz‹‡Þð·oªÈ”j÷\ZçççH{·ÐxÅ‹œß.–:›ïö¸^¢PÀ7<-øi¹ÅI]\Õžð²; ‚­¨Æ0ó18mT—o/Ç( €‹`Š‹© ¤n¸FÝóE·•oyòŸ¢ÚMªÌÁÝéÆÞjVÙ„ºŒQú uÝ24r€ÓµTìYéô`µÛ  ì¶<½,?À½'NñÒ'7À“oDËÿ +›9¥¥!F„D‡¶#Ž=¶±|ÏÜÆçò£n»ÓŽd´°™#ÞTÒØ¿nJt©â>é-x|+Ô Ÿÿ}Bv/´iÈ$9ëw‡´³¥Â˜Ps5¡n+2ÛìT¥“b÷l°­’íÔ…ËᑦŽB£A€‡óL˜½»„ØyÒìÁmìÝ9‹ë#¸sË«7Ë„µúñòN°!¤·cnÌÜ\LißÉøxnª nÀ¢¼qnt2È·E}¨¶' Ñ@Š +§oÏôcœÏBÖÁlýIΧ…ÞÁà-;™yäV¥³ +&œSUECÓ ï/Êk¸šÆ/,@Kê/ k!ÿaòÈÉ +Š—˜°0Ôb€Û×üÆÓå7q0†¯4QΘajë+ÈdRXcg=†GRé,# XB4‰÷S"º ÓbKeÜÄ$aÅ>¿)!L óÅÄ|ÌbÂÊ]¹^Ã(ÄùïfµÐaþ~ý‘×V”Í)ùA:Ì椌ê:¶ŒžaMÉö»ê VV}éeªhëŠ×Ú´»]ìåà,Ñ¢_ÈŽCk}ÃçjØ´â!œR^â•l´æ[M@XŒÊ¥§¨ \\êb‹»ìyo–Hù —7°²y•ßâ>ýd†’£öóW;TÍ]«ÖTõ î†â²‰”»-îÂæh8h…Xç˜ÈËNŘ:>2Qño,M¯o™ËŽ–tå Žy7ÐÕ®÷“×Íùv^c@\ò4$W§« äxÌ%%ÀÓÃ:-‘¸X³.h™Ýn컎¤3&Ù,&%àKå¾9W÷žÓî¤ûÛj—¯pÓ\&‘ÙÊ/ò}OV )¸ ik]›f°Î+~TkRM£W<¶¼M»\ñß¡Iã +»ÅfÓœCó¡l6!£J«4H[ð‹Wù¾n¥‚ù}RñE²NIÇ:¤) ¥ù-\ðóêÂ=È´hˆ0¦aµŽ#\½»Š²Cáß|ŠrÙÊ.GŒ>¶Õ1YÞ˜Á z#3L½-°niêˆ2‰Ê Gd¥|1¼0atVvc²«lÿ0mM› ¥ïÌjw’Y+tðý‹9ŠvØÔÖ‘WÔŽ¬k}ƒË¾ 7Æi³â(nù¾Gš„¢ ®û´xAø{…ƒ¤)³ÓW Bi6À@ƒ ]«ž§Ã…ìãe’q“_S´­ɬHª›6Ý0Y¹¹%Ù°é@ +²ëƒ:¢ð2 ´y1%¨ìÝ£v“¢º6ƒŒ × íÙOø)UC +1êI|ª_¼s ðÁ=ŒÎÃ¥•uP’ªS}XA _.šé¶*' •“-jý¿Á°žšjs)°xv/R•Ó_)X¨¶:úÿ È]¾>RfˆÞ&”@ýY”€ìß(C­çgr¦n·“Τ£>¡›_ +#ð÷cØTA:û¥¨FFç›(”ÿZæº?¤:¨±×zB!Jý8†REa–‘²¤éý† ׂZXÀJO,\ <˜ÓjJÑJùÞýqØáÓý‰$•0JÓƒ0#ô}Qf }(òø§ÿIHùŒvtçîÓñ!•€s(pðÒè(‚ÑÓ@Ó4$ `ºëú ”HNÀн‡Ž§I¸ JaøC¸@Ý‹h AȪVz;h ±?°ø?U˜ë4úÝ°u½Ñ"Ä&ï>Y@/×–¨«$}‹AÇ É]Ûs-–Tœ.­ÄÖÆhg\ X¥Øùðkx¨!*:l[ÉGqu…óÔsáü25\¨Qœï&úí ìÅŠ¾,Qw»`Õ”ý÷G¥üÀ°¨¬÷ô­¢+D¹„è’ W°Æ¿¿JeÙüRklH¥šŸÞQÎXó¤‡7lñ·>`¯¿¦–k¶‰f8ƒŒ·ÛÓ”ªòbJmàå­Þ¾Dézµ[ ë _‡ ÔH•¯¨)§È«´Ÿ6»bª³yê¦oy¦PG8èl±­)qÔ“œÿp£¼>¤ +k.Uö<#¾òí„l^ ßV$5xKo%7s°çŽÓPÅ3N0U‚žp¥‘«#}ä¥ê8†*hÊÜÕ)9yè2Ì°ã!S¸]ãÛƒ0¶ýéD¿nDÖAüXly?ePôt{9Ñ“w:‚"äžÍ06²õ©ó#'h:?|x`[NAWŠãâúFNÙÄídôUö”éeBšÆvÿö€á>x·ÿ½ëûqËÖv + ±™½¹®¶9…d&ÜӀˮZ®Bh ˆ¶´,_sɇ?Ñúdh‘Ùòb]ðÊ*û#?ÅñÊ +PØoX sß@bœð`Þ•ýªÑˆb£Ðö.Ña!óÔmÉr7m$¤[ôÌÜ`&˜ëX Ðd™JÕ00AžeŠ-FB +'`f¯édn^´W 6ȬDèu[]âx€±O@m^Ȩî»>Û™'áΑäà0AVÅÕ®…QÒr™x©\íPXz¾Á±<5Èé†ðpŠ%üÍP%TÙ™€Qˆ ˆèì‘RþÑì‘ ×}­¢+ÕéSźȫ„#¿Ñù 4ñ(ÀOÁ/~`BxSܨ‰³Gq{wS¶ŽÁO#ÛÕúЇRYËIÅc%†Y⊰sv >“Ж˜…úÿ¯Ë³ðGe‰J%|gµ¿Á܈È•óºîð¸¼#ø˜†·d6¤ôºlâµUeM1%í7øà„+øÑG­Ü]rH\\åéÀÆt3üÅ…}óud‡¸àÝšŽÑ„4âã&ÏOƒqôä—µæ¿òÈþÃÿ@§cendstream +endobj +2289 0 obj << +/Type /Page +/Contents 2290 0 R +/Resources 2288 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2287 0 R +/Annots [ 2292 0 R 2293 0 R 2294 0 R ] +>> endobj +2292 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [185.931 201.439 206.254 212.287] +/Subtype /Link +/A << /S /GoTo /D (figure.10.2) >> +>> endobj +2293 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [191.992 189.484 211.695 200.332] +/Subtype /Link +/A << /S /GoTo /D (figure.10.2) >> +>> endobj +2294 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [278.102 117.596 297.806 128.444] +/Subtype /Link +/A << /S /GoTo /D (figure.10.1) >> +>> endobj +2291 0 obj << +/D [2289 0 R /XYZ 91.925 602.788 null] +>> endobj +965 0 obj << +/D [2289 0 R /XYZ 203.472 468.524 null] +>> endobj +966 0 obj << +/D [2289 0 R /XYZ 201.535 241.687 null] +>> endobj +2288 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F11 674 0 R /F14 1012 0 R /F48 601 0 R /F45 589 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2297 0 obj << +/Length 2973 +/Filter /FlateDecode +>> +stream +xÚÕZYÛÈ~Ÿ_¡G +Yµûnv‚p|Å lŒØƒäa½‰3", žüúTuuó)Î16 ±vWUutŌߘYŸÒ3Ë%sy>[n¯øìFÞ]‰8c§,:sþ|}õâ­Ñ3ϼU³ëÛóe®W?g‚3Áæ ç\öîã›—ó\g×o>ÍEv=_(¥³W~ú ZþŠM•½~ÿ÷÷Ÿ>|œÿrýã‹·y»²’9sÖ)¸¨Ô +g\½¹nèÓÜ2§Í$ i΀‡|À‚qšåÒ†ÝN‡òö4n€«Uöi7_H—•ó…È–U±Á¡Ç9¬Î³ +žo‰x!ÚEs˼’‘ø›s9“&±Vh¥í\æÙi‰ÿ×Ôƒûû»rOÍãÛ÷ÃÍà\¸a8Ïœ=4ö6žªgÂÛˇj˜5OªPêÙV<{ŒI/‘­ƒØX:)ZŸ£b;V€µœ™)PtÕ£Rµs3\©ì¬b™”®Ke×€ 'L53Z€9”h›ÿyõó/|¶CþãgÊç³x‡âýl{ªÀa57WŸ®þÖZú´Ø¢³Z°ô]r„sL*;3Ê0#ÍÐ ÅDÌieû„Â*6‡:>YŠmPä¤`¦±³¸_ÑC-Š;˜5ìYžÏã@uƒ*iÁ¤x8)€;ïö„\4ÑåáHPÒÂ÷±¶$}#ì‚K°ËÂK 7¯uï•¿Ô¸ã*Síð²UÈS"½,€e)¶±Ùm±<Öû0ãnÄä+°ªVO™*Ûý‹^CH1a«r™ü\0Ÿ@Ûg.4I-èçpªPòÅM0ÖÐñunL<÷©l˜î/,ãÚOØ#ãy•7cVòÌ$0-EOöãF'¶õ&yã%‚Oy°H)&QÞe T¶á`éH±bñ&»Å “¡qL;=å§E +cØCÂáéÜ’õÙXq$ê‹}IUd@P@ ã¹î(b ¦dv½.ãpu¨Vq‰x¤Æ°\õ¾©éxv¤Á|¯“À;e+¯eÁ 3ký¤öÓ8ïÆB$G »A£óH¼ÈmÅ‘†Iµ÷4kq_+©'0+&ªŽ´an’×mh(n“@Qljž TŠŒûƒˆk0Ò`ßGÂy­™Ò`âwŒ{Ý2˜Ê<Iá¿õæiÏ"!àåiŒº!™w¼@ÊŒíEÈ¢f‚£ +Œ³3mA‚2Hí%J¢¿`‰ÖQ÷ ìoÞA~xÖ»’„pàýª†w¢B̤¡÷u +Jæâ51ü=J;kþ ìq».‰Ú²\ë&,г^@XíQ <>ÌøAd»9³Á¢ÔMˆN¨nâç> JÑFCð¼ p©)n:V_q´¤ÑäEï¢Õ|ñÖòvßÕ¾bH€Åès Õ]@À áûêÛ_€7&ŠâÂ=ÑŽ- ÿ*÷õ¨È ¢ìIìÃéH"—‚€ŠÛq…ÈT£Ó'R*cÐÉ'ÍU•‚S A0¸ššð¹ø,æø˜ß^¶Ž.GƒP-ª€FÈ +ûݪ]î²BÂlN ÁF¸!î#â¿Dæ|÷xms¼Ÿ¹æ#ì æ\B'7¢Ã¼{¬2×?Öզ껤¨´GOCU}/¨’ÕÉ×Ç55ÓÅ¥ºÙÄø$Ì ñå`ÃÂü,Üéoh} +AùÍp/ Wÿ͔ߌ’× 5E6gZ ©VOPýl]8Ó¦V¾ŒB4|ÿ˜Ã-ÚÃM¾/\õ]5&„F À“+yÎ Ä¡B#Î9ÞoÍ9Gÿ@·œ¹¼G¸þ¶£xÂöĸ”N㹶&œúÖ3pã’ç¬<}ÿm•…G¡#Ù”7ç'0á¹5h¡lYBmö§Çe™lrw<}ÔJê¾F’]ØúS¸©»(x&ìorš”7’~\§ttO˜à–Ï#(™‰½E)¶”³§ðZ+Jh„íÊ4,YEy˜hM­Šï{x‹i»;²‚+Ñ0uÒ‹“A»&Îl¡ótyê³£H— ç Ãon£-f㠠äd\èÿ á4ÜúMHSHMÂF ñ±<žö÷,¬k& –Z˜ŒÈ@3ËÏMR!¼Àaа´3Årî/…@¸µs&o Ò±æÿáÎÖ˜±è_û;W +¸IXpŒWîåX¡/ÍISö·Õ¦÷1•0R¿Ç‚†Û;^Ýñ +7JgïðÖÝ«À¯Îr¯¯»u¥Òý ÿ§»yWXÊñܬCü€CéA 9Ji?Y¯ŸÀ4¦Và %xF \¯“77ú¼Zei4üÞ‡&Ÿh$eé »M‚곌—¿.Ãk»yÓUÅß}¹ SÊ +E†¬¸ÿX +KæŠii§²µª w‡Ä”7Ž>PÞ϶©pfµUä3ða[`îŸ6M! +sŒaõàc“e +ˆÎV:žv”ßäEž2’ë[ejئoñŠoíXŽìQã?ªAé<‰qU.äT¬ÕîDñ¾@BCUkó8Ϧ0r@ùu'‹K§e¯28”¾9ö¨ èVÄL€Ä±CMÃÊ‹5)Å•'.€ÇŽç?s·A5ž&äh3×3× ò1y 4¶ÕCˆ<”‹Tê?… A«šàuúìÒÖ+å%¯ +4Ñ£FІ4E¿ô%Hdw¤Éëª ¯°Ù©\†Ž]“¢=Dœb*Çd(¥XѯŒZѯŒB{T¸“7g~¦W^O¬¼VØ |kPG‰n&MAÉ'/o)Ag›*ÕŽZ}œ`G²MÀKÄL´ß·,@+ÏC¹ðR=MKÙ©§Q»ÿàC‰©o0´›¬£@´)M>QGѹl+@È–¹µTm(Ú-ÀC¨á@7êêWÜ$³—+OxN²MW:!Z‡›o)[yßö\ü¦$w‰Ë¥5Œ_}§ÆEuO§åW€©èÔð‹n¤ÁF•+jטŽÕB‡ ;.°oUiR±òÓ©-»eñ®¸œ„P¢rÑ°~òËï&Ò~Ïõf¤rSbCm3þ’÷<ÄŒ_À+0¸‰)ä®}ĉ÷)jöîS¶'UPpg«$ƒ}*ÐŒ߇4ÏvÁ«å ¿½ ]ÎÁåêë­åæ”z.˜ +pMÜLÙaÝ$Ìë`K7+Ú¬­Béða˜¹:™±0¡óµS¢-XqÝ1Zôˆ3郼rEV¿gê:5Ãb:(”íÉ•-—“OÝ"‹uŸ¾Â8b7Ço ȇ…ÖºÜìHƒš/4Š81¢¹Qè:~z‹€#vD‡³½$NyÞÉ,M 3‡ôBtÎð­!x:–‘ëu|­j Sl.ô<JŽ†¬pd.T:ƒÿ½Ç†åendstream +endobj +2296 0 obj << +/Type /Page +/Contents 2297 0 R +/Resources 2295 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2287 0 R +>> endobj +2298 0 obj << +/D [2296 0 R /XYZ 63.034 602.788 null] +>> endobj +967 0 obj << +/D [2296 0 R /XYZ 170.706 251.848 null] +>> endobj +2295 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F11 674 0 R /F14 1012 0 R /F10 1027 0 R /F13 1055 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F23 1211 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2301 0 obj << +/Length 902 +/Filter /FlateDecode +>> +stream +xÚU[oÛ6~ϯÐ#Ì,IQ>¦YštX×¢ÓžÖ=È6- Ð ’ê ûõ;1¶›l Ø<÷ó}çÖ‘‚Žœ–ΤQ¦ŒÌ‹"Úu7*ªÁòp£WÍê²¹ðy_Þ¼ûPDNº,‰ÊÃYÊýŸÂXÿUþòîCjÏ~E§Ò¢ÇÝãí—ò>Öâk¼I+´’ñ&ÏsñÛŸÞß“2åãýç¯èT~Œ7ZܱööׇϨÅÇòñœÇj7÷åKß6Ie–dÿ -øülinea2ê|›\¡èÐì|¼1NF«õ9Ò*©\¶¢Ù~‘8—N%«µ™1Kl +ñ„éVÌMÏ%”Ø7§jκzPNl1àù:¸ÁU‡¾ÃwˆêQ½„*ÁÎ?SScã žÄv¨›]Õ®õ1BmðµÀ„l¢Äm?, ý„¨€GÀâ\´ÑÀUš2¢n„ €cZ*.£Ó o?â4ÕB`жÂK4xcÍjaa‹Ý=³….~dé›ÒOXÀç 1 1Ç«™•K•Ú«WC)¤5y°öû× ´“F›ÕcûÆPmò?ù3µ´ßCOD %PçÀ~Gƒ9z&ÔX#µ ŒòÖí‘œ`ÀKd‡Ñùæ¦ErÝ«¾¸Ž™Ìóp¿)¥Þ@«¤±Å¿²å¤Ò!A‡[‹«6ãÔàoiþžF„ƒ&…E ›µCÓµ™ õU?³¸iàä«õÖ‘„T,>V /¼tf=W¹¡gnŠ/Lx–ÉÌè« >`®¡ãljöÑó¹­ÐRsÚ…_$¸ÿô‹¤ÃX5Í›8³y2€/ FëC©ºiþ‚úÆŠ;ÜÞnl±äâ™®ë«Å3¿Á«Ã&WJnNiFÃôjXPV2)•-±QcSQa™z˜‚Øͬ'?¯Ó¢»»²ºG«óÀ^ø&¤£%¬^|Hu$qßr44ýÂwzˆÀájh¸¨­¦sÀßüR lÖZ½¯aæ<\b˜À¯ +³JQƒCÛÒ.<5ØM͆ª­éö­¨Y lç¨-|´h}ˆiÙD‰FÜõe ¬øE›YDŒÓ0†ýç%mŸ9sÒá© ùFÚ4~$ž¿ÂÄëx¹5-ÂåþQëC×Ñ*€LÅ Va’?þ1®h.• ¼0oü-&6‘¹FéÂøó öÂendstream +endobj +2300 0 obj << +/Type /Page +/Contents 2301 0 R +/Resources 2299 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2287 0 R +>> endobj +2302 0 obj << +/D [2300 0 R /XYZ 91.925 602.788 null] +>> endobj +522 0 obj << +/D [2300 0 R /XYZ 91.925 523.082 null] +>> endobj +2299 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F11 674 0 R /F14 1012 0 R /F47 596 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2305 0 obj << +/Length 2331 +/Filter /FlateDecode +>> +stream +xÚÕZëÛÆÿ~…>Rh¹Ù÷#Eœ[;¸®S[hQØþ K´ŽÉIºêq®û×gfwù—’.'·.8‘Üáì<~3;»C6¢ðÇFZ*äHSNŒµ£ÙòŠŽ0òËy$É[4Ï&Wß¼PräˆÓb4ùxÈf2›1JçƘì‡×ϯÇVf“çoÆ,›Œs!döçW/_ÂÝ«¿â­Èþró÷›7¯^ßO~üæ…m8 n‰ÑDA¦\*¤¸z>©å“T#ÕQ„Ä0¸`Éq¡ W8j8±R·II%q–PJÏë_WoßÓѼ¢D8;ú× »s£å׌€ÌñþîêÍÕß©•„ƒj¹²Þl «GÔר>3r)GÊ€–Ìy#\ßÝëM¹ƒßÛe0™2ÍKØQM¶¼?´Ó`]Îjž'µ„Y1 Cä•·˜%Zò0hW‰Ålok«ˆc: +NúŠåÀ`4šŽ8ݬÆ9Ëî÷ø×gɱŒÕ,s©tÊ$J +€SZÚÎð+P y5²Ê^}¯*K,·Õt(Z ¾\¹­tдE. 5.ê0íëhÀ¢^Í €‚U >$ìj-QBuìúj¿ †MUâ¨îu‚Ô·D³äÙbSàí”ÚÛà?0[/áÙr½ +·óò¡Ü®7 ‰¹!ÂØ8Ŭ/‚&JV}7ιÕÙ;ªh‚“ ¢ÀôO ‹¡µ Ú>áä*Ï+Fz ‰ñª`Œ1u±èoØ ‡¿€„cUH¬Ñà7ûÊrJ¤1Ç"%ïZO$q#\àÆuœ@+'èþl49Óî¶X!-¬(`ž.è@7–±dXiÐàÒhxGe +ÌgŽ®*-Ya"ÖûÒp”Zd¯á²@fÙ~³jM¶2/®Eq’—?÷d©—SÁ +\Fš±|(ñF^y‹™‡O[HÛE¼žÐÇõO×cc³&R%$¥:Ô€a°ê±ŽiøcAèÒ <5çãS§ñy>ù„Óó@È¿ÁED»Ë`°á5ÁHr9Š‹¥ÁÞëŽnŸ†*@¦VüPà ª»J´`Å¢}$‰/…$¨7-‚RÃlK‘ær`’$¬\WïïSiÌjÑö Ae¿$,„· Œ­Ð˜xCꎣ¾zaÙCŸ+•|´4‰5J»n¿$R”¡DËÊza«§NYï×”õ4g§Q] J#ªaràÒvŽyà·åu•°„ÉÊ6ûo÷Ûb¬ó}¢²ÐÐfÒá¥öÊUIâuv’³x,߈:NG°1‚jÆaÅ£°¹ýi,s˜1p³Û¼£œ¥³œ©èM$} +==Qrž¶âíl5Çl³\£©²yÈG4ø˜SHÀñÀɧsçÙ(ë-Éê€Cg©`u²ÿHÌ]•a%#â Åëa‹yv*ù`»YS)´ÿ.elWovx*Õhj†7U¹„:××IœÐé!¥“PöÑ:…HJ*&ë¸PìÈn1׈)ÑQÌ|‰ãx€ëÓ®OžiK$Â÷ß±ûPb¬<´ÓéØûšA ¾¦]ßÛÇùþKå÷´«ÿwî‡érš=Çýÿñï¾0ÂîÒ@9Õ)–\°§7}µwikÂ%¡šU&‚.dÁ—aU¥ù}ÿå6bŽÏüò€©q¨a?$*­šm’ÂÍ·>t ؇°Co>á™èô¾/ ìM„8,Ï[‚+êuýô¡èCŸ*dÚgÑ£ÜB˜B-Ó—_*ßÒŽýl4¦·8¬¯Í °¸×ÇBÓžGLh°w«·ƒ÷ÕÁ)fëuHGuñ‡ù™pkðW°3«¿ À‡Ë`aoÔé6š{ƒö_”+Oz÷9<ý×SßÎöe XÙ8rÝàÄsŒ~ÅVAׯπrw'üþäm„Y ^ôOÞ²?"Kááuï…‡RAØ÷aEÀÎ<^ßziýCaQ¬Â­‡ÂÃŒÞQ&+ ¢Ð‚g;ƒ÷Á“áf[.ïï*ÂM`EVüÛMËU”ç&Îä3f±Þ|ö +ÓŽ¦%¶ü-ͦ34,š¥ô¼Pcü(@XVÇ +^{ÃN—ñnºý¼¼ß­wå,° ˜ßüŠ|V‹ðlW6Ôá÷º¯Hó,¬æá¾\…_½Óð/Â{¹ÊmX ¦ÞÁÆÓM|ˆª¯ÃemGÿ§ßaÇ…‚“²Ãyâ¿‘`4CÇlÆQm´u0í¦ˆÃáqq¿ ·(ê`ô,Ú>ŒúŒ2ÝzûÆ>Ý›8ê—cÅ&<Ü»³Zpòu ê¬ø¸DRü $²†‰6U…ïK¡FÃbÿ!œ.šã>lã²¢¬üí!¨î÷ÑH3¯´Í%Œí¼²p±ØL½ªñ5üª$¯>+{4SùPVÆõŠu¹×¸ƒkíÍ¢ùNEÔJëá#•vŠ+¦Ã´K~V¿:£íÁß\ìüendstream +endobj +2304 0 obj << +/Type /Page +/Contents 2305 0 R +/Resources 2303 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2287 0 R +/Annots [ 2307 0 R ] +>> endobj +2307 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [114.81 167.354 121.784 175.767] +/Subtype /Link +/A << /S /GoTo /D (cite.TAOCPV2) >> +>> endobj +2306 0 obj << +/D [2304 0 R /XYZ 63.034 602.788 null] +>> endobj +968 0 obj << +/D [2304 0 R /XYZ 222.926 227.693 null] +>> endobj +2303 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F64 1214 0 R /F20 1030 0 R /F23 1211 0 R /F48 601 0 R /F11 674 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2310 0 obj << +/Length 2335 +/Filter /FlateDecode +>> +stream +xÚ­É’ÛÆõίàIºD¨5.FŠÛQäXÌ!å¸T ‰!a €3}}ÞÖXH ­$*U »_¿~ûÖž+ø§ç‰v/˜‡Ês£8žo35ßÁÉ›™Œ¥ ,8/V³g¯ãyâ&¡™¯nÏ©¬¶¿:ž.~[ýøìuà÷xq«È"ÆË·7?¯^-´óËbiŒïhå.–Q9ÿ绯hœÕÛWïA¤Õ‹¥v^2ôæooÞóEíü°zûÖÛìÕª“Û7šðªjç+t "ß½$ÿ’!ãºZ,½X;ù-ÿ¶ Å>{Àç¤5ì2^¯á'rªvÏxö6hë{¡Cz å´{¹’ÃíòNmsI°¬Za‰Àü.O ÙïaŸ–lx­{%¼ tu(†?ñù@ÇØ ”=MËíå}»18’1î.îGn’ØëuƲ¤ *Öä»2#‚ó¥¦ Àê,„MÃ_+']7Uqj{ÀÝ"´8e ï«Û Á”rƒ ²Ì/$K\ã×4ó”« ¬' c{½Îš#ªædÔ¬EÝ-pÛv¢H ë-¬UÂÅEZìª:§90Ú}Žw +Þ ¯9 œMF-Š§ ÈGb½P$Úžà‰“qf?Ì&$˜æ.о›ø>\÷\ãqŠ~[k@&^Mþ™÷DýŠ‚Ûü#m+ž©mÛië%VõMu8àݪä{·(›«B {O²rh¾ûf‡X©µ?‘a‡Â¡°5ÐäO é¨p±™¬š}ŒmªS‰Ô0gÂÐÉKþåtÅu$‘V£ÆéºÈ.£$QnœØ(ût&kƒ„’ÚsnPñ–]Ø¡yÃüš6;Z) ñcH@EUî2!“ò)Ûµ­Š–`&/êŒÜRÉ‘ÖŽí“„®IÆQ´«³´Í([ÁDJ9 <‰^ĽxŸP%¸¨e|‹uLÈ&êöc×3úJJú$ž,@È*x´Å®ï®³iy&*¾Ó¤·6ê‹>Ïú,FK18‚¤ÚŠ¹œ É +ʇY qfÌ(ÎÐ F'N–ƒj^ßï³r@^ ¶êQÅ@Mº‹@Æ/1”LYŠ±‚‡d¡VÊER–˜îöäT†î`¶OI‹heÃ9pam½ØïÌ=å®8ÿÄ]žy¼_@…‚–ƒCÅÀ~5Çà‘½5YcÑ\aàìSY¸é³Å@è$Jµ=Ö šM‚`r× c;ràÃta ‰Ôª.10Ϻø°›ìœ„ÝSÆŸ\Ü«#I€A¤FÚC7(¸„çmV§Rš±’7¶—´4f .Ä8 ¸ŒýVnœ…øDKHHŠ¤›Â%¾0ABWò2ã£!›pº)'¾ëwÕò4Ñ“=µ®GNe'{éá¸Ary·ÜyQhêaäê{†æ £×Ù˜yM© Œªm¡xQ9T<ËLNŠj—ÛŽëÚŽÁŽœù:¯mîa×ñã.å=?éZ3ð¼ ¦8LǾ¸nñ4êóØ*ÓMÛ  S”\™×Bk^ê7 ÛƒI¤\ño%Rr°í ÐDS“¦†h +ÃäQçn¤Ì YêÐYís¶ÉQ6'¬<1ÆÆõôÄÈØ°½”µæ´ÆŽ B›WR¹})鶸‚È“º<pð$-Øôøç¡aر– q5š³_P8ºmó®*!RWe!RìlѺõ`4œèÐy½½Â `z(«ÏSXLíÄ$“Ïç© G3‡Å¯«cÙHÅõuú·Ò†4¯3¬@—´ï»*6WÒ]Ŷ•´Âñ‘þäû á¬Fïe¼óï˜x4¿”ÙçvX9Qfr=@XeÓ+µ°¯ÄSeÓ¾³³ê*nºãQJ¨rLl¯ ×7·ë ›…ôÜ|,?Wwõó9¹ž£dæ%iÉ·›“øv0ÓÚN³)¦ÄÔ4«¼%ÿŠÇúKîhF™a9hZ† GFÜËðÔ`Á=ÏêñxV!4äÌ#ÙÙZlðéÀÓ®Öq'ÔåÈâÆQ7°|ÒÐXAF®ÑÖ´ùDaŒ•=ýý4¨á`.'º” |JÕ%4êÏPØBx­lÔ%Å7ã„gÐóðÔÈ®ï×°I·¿ãã_Úð–é¯mŠÃú€éËÄò# %2å -z’‘•aòÖ:š|ucdf}ˆí[zV4gé3®jB <±®š‡nùd]ñDƒ3B>òV‚TQL€ +ÐÒLU^-U?Ýmù Kë"ÏjW¾(Eø^€†“¤6Äö›¸± ¥ý«ÃÖ‘ëw¯¿@DB¢¬Ëó/GÚ‹\µ=7€9ws˜ý1ûõ75ßÎÔüÇ™‚܉ç÷°V¦Éü0óÜ¿jÑ®˜}˜ý£ÿÂdi-Äè ÓH,£\‹ƒÒXùÏ%ó Ìåñ·‘Lh]—Ìa0#Év›­KÝðL8ü¸EÐ +€pø½íâ»› .¸Ì:îYËw7‹‚œ•»N© šcF5A8ϾƒÞ œ7ü¢my÷R¢×¥š$Œ€S“—;^RuÃÅ:/Óúׇ¬ÝW[^÷lÄ=î±pÏKax8~ñöÝ™H˜>TjðÇë§¥ó£ ¥Ë”‰Ä{ÒÛÒÑëÆ2¨m¼„!Oá7„w :8'éîû)æž–;tVŸäÂécÑX}îp*˦ irÞ$ÔiëgûÒÆõ— ?Ÿ±Sñ¶x?ªŒ\\¤õ® i¿z¾Uévìʦg… ”ënŸ?ç_Í\Ÿ<é½xvi}yIYÇž¹0ð!{¯úP0ÆÒôE·§ºìI×Í@Š§ƒ˜švDx)‘×C`üÝ„@‚0&ýÏÖTüóã濲¨þ6•*ãÅ_aÑôÏ-š|#‹5EÞ賩Žm~È¿dP³9‘oZ› 6+ŽÔt»Bc=”NºR¨œdL/+ oK˜èd³ ˜øº<ËÕªš$f,±ÉÔ4ÿGjNÇ„Æ.c®Å„Å b³ ˜#kdú¸ëM8Aï~þøþ§›M_ˆ¾&V†=XšfЉÿò2Ðõ#»ÁáCê¶endstream +endobj +2309 0 obj << +/Type /Page +/Contents 2310 0 R +/Resources 2308 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2287 0 R +>> endobj +2311 0 obj << +/D [2309 0 R /XYZ 91.925 602.788 null] +>> endobj +2308 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F11 674 0 R /F14 1012 0 R /F10 1027 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2314 0 obj << +/Length 838 +/Filter /FlateDecode +>> +stream +xÚÅWYOÛ@~çW¸/•°³ëõVÕJÐBE A@ê¥(7VˆLjßÝì8ÄÎÆD$¥²¬½ÆóÍõml!ya‹‘ÀbÈ÷¸Vo²‡¬‘<ùº‡AÂwI樵×8¡z!#VkXUÓêÿ²1ò°ç¸œsûëÕñ¡#»u|í`»å¸„öçæù¹\5/Ô’Ø_NoO¯›WΟַƉxÖL|áqÆ¥)J©p%±wÜZØ æñ€ÖºPȬú ,!‘Ø’”žðÙ¡à¤WºÒvCÇõ™OíƾãR9Ž™žô’‡h0Õód¨Ç q_Oºzx¨‘Ù½N¬7&I?>éù~Ä À@õoD‘ºÓó#¨zhGq”µ¥9OÏ’ïg²#WXÝúì> endobj +2315 0 obj << +/D [2313 0 R /XYZ 63.034 602.788 null] +>> endobj +2312 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2319 0 obj << +/Length 2052 +/Filter /FlateDecode +>> +stream +xÚ­XmÛ6þ¾¿Â÷%ƒJ_ôÂR`ÛK“ôòÖÆ9à®W,´¶ìÕ­m¹’¼›ô×߼ɒl­4A°¡H‡Ãç™­&!üS§§£Iê IÓÉ|sNV0óüB‰„/"~OæûÙÅ“Ó‰ \l&³å±–ÙâWOÛtúÛì§'?F¶“KcøŠ@-JüðâòÝìÙTy¿L}c¬§Â`ê'Iâ½ùðúûg4h¼Ù‹goA¡ÙË©¯¼xôòÕó·¼Py/g/^Ã÷{ÜíâÙì`·5Q›øìÑZ™“³Eé$SãÞá¢Ä©ŽÉô0 §¾ŽuäÝßë|êGðùß0 +7»«¢þ#¯Jì<ºƒÿO>}Šmì…4ÄÀ¸nÛ ‰bAf)=#üV˜,e3@»Õaè=yÌÛl²[±¦ÞWòuÇMQsÛÜ j2·ÎªU^7Üyü÷†{hÙ£XÎ9‡¿M¶¢ƒî¿á©G¨úäÔ‘÷úÝÕóÙøÉu˜J«3'o%†VÐœ$Ñáäõ}¶ã¯=7Ùv18ƒ¶•Ÿ ÓwOÚÀÆŠ€Eþq~3ƒ€øûèºèˆH + «x~¨&Už9E½¿nªl.,×›l½ÎcoY•›?w…T4§#®€U.¨ hõÛä-&Cp:Où[ç)oÿyùï|%6Aºs¾"C@œ°´*q€««ã¯BŒS£Êõ1ÿ(¸_¹èþXfs„®)+·Ô›ûòœS:ó™,G‹âîJ/p·zÔÒ„á½m®Öõu—ÇÄÉÇ›¯^ýMd‚Ð&g8l%†‡²ŸÏá× .ŸqäÎè¡¢d,–\*7È!uï×M±[âÞµ´úñã[þ‚›†üáFºâ7 ò¡Å±5m²±ë|Ul·ÅvuÖsœØôžæ‚çtböhœøÆ­´ó¿äÖ6=ç ­Dßv†âõê *T_‡YjÁkîW«í#8äÞ½}?n‘…ÇÀ +2ã‹ T”й¾Å]çYÕ'à¡ëF…Ña凱•w¯Œ†6ûJF '#l¦¶vˆk¯pô• 0*ŠHfvƒ7°Žo¹‡²n;oŠrËpkOuŠ¥‹òH&õP¤ÎùÓ#Š‘Ï“< +fóªáÍî¸FÔi¸TO4¤œ„ª¿ß/~ý-œ, Tüé" ŒK'÷ðʹÉæBƒ´“ÞúâýÅÏ])Ùªò;]ÇU²vVÒn†‡…Z‘Š±ªd‹©f!ÓOL5¢4TA_ÁÔVÕSMd ÷èÀVþŽ(Ømج—eµÉ+ò +t˜@§È…ÊYhÍï¦ÞmÀ×>kÐëM{©Æw1í`·)TLc[èìç†'‰ÕS&µÛ\« J¾ŒJÑå÷”p©á)åx+Bm1³¨¹%Ð~Gû € ò¾#cUNE¹Y;¯¡•+•;GÁ^ N^Ý%´¢aä¼gB£ùø!ä1HPQ ï 2²ðÎj÷‡¹uÖ4´-ÌŸ_­¸!Þ =ð"ï—5<9âÒˆ‰K¤±û2Ÿ]~OÙ‰S[|ÁÙÃ~CÎÀÄŠ1@÷Rœš¡Ï5Kd|8ôÉrë‹»G:H¸û¤†Ø2!‚Øæ-HeÈ•móËñ`ŸT£Ôvõ1F10‹Z ðMÙÈ:b!“Åÿ£ Iu$\C¼&^N¥Dv˜Ìyr<¶lQÉ@AŠSö‹xjuù=eÇ<ÙÐƲˆœfÞÀ|lõøM6…ãAñdëÉŠ:> endobj +2320 0 obj << +/D [2318 0 R /XYZ 91.925 602.788 null] +>> endobj +2317 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R /F11 674 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2323 0 obj << +/Length 3362 +/Filter /FlateDecode +>> +stream +xÚ­ZKsãƾëW°r‚ªÌ1æ…âÚƒãò¦ììf[9$»{€HˆB™µ¸²òëÓ`@€+%v©J3=Ý=ýøºA¹JáO®2-RmVYª„ËóÕæp•®vðæ¯WÒÏXû)ëhÎ_n®¾~mͪE¦W7wçdn¶ï™ +%®×ιäÍ÷ßþr-“›ëµÖ&ùîÝ[xxûîïø¨“·ÿ|s›äæ‡ëµL~‚7o¾¿þxóãׯó‘¼V¹p™~²2θúþf`Ò¤™pÆ~QŽ0g&H>“Ã:#r•Ñnß1›¤6us­ò¤ÿl˾仇Ÿ®×Ê%3ïV™(œAšÎ “»•™´¬™™|F˜¬X­Ç)§§N¤R­ÖRŠ"ç7ß °•1I_ƒ¾:|° oô<† ð¾BŶ|ƒ˶â·Í‘¯‡cÙàÔãápløù®ÜôǶã‡ã'Š<â¿#D&š°a5ä¿Éçk›%åþêÀ6Œ´É ³HâJ# +cX\ËÚ$÷°DË4Ù#1Ø÷ÅÆ!dU§E²Ái~“§ü¦l¶|Úê@r"‹ŸñŸ§^‚êŠä‰H¨mu"Êd[õ"¡A=ÄÈNÔƒ/ºÓŸîýëû²'iS/'ë-ŸÙ†”£q(-tšyÛ?Íl'y<E­—…° Ïø¼°^2¬oI*Ùá9•-k¤'ñ+Ô¢”Iä)·A3øP6ü’Ïg‹šâl¨²jç ‘&ÞŽz½ƒ)Ç°1ZCÝ÷t˜; +FŒ÷tp¥7¸@‡ Ñ%Û'6#[k‹‰zép¬iYày{Ûš‰2Údá0PÉ$š!<á²Á‰*Ù \ñMÝTü@ÖÓ½µ,æ¡ãј‘¶Ú¢ºÉùzÜ)Ð[âM¿¬Û:ñaÕûE*Ì—L Ðþeü¹,©>@?pkùÀaè?C 9‚ž¬S໿Bö›®Þ5d$°Æb¶­;æ•· ˜Òá\xÛ#ÍòL|œ½ß‘΢êø„µ¹³éÙt“ìƒUàÉ _öÃ6~*éÞ úUŠ¬ñ„3÷<¥ +Ål¸G? 84µÙxÊ£;Ó +~–ííTùÉ¿»SIò{/‰7Í_ŠçRôIÞºGó¼Ô9ŠÎ +nZf™dìyˆôωÏb\M'¢[ŽÂÄg˜BÖS&l6tªë¦Ú•½çP°·‚¨¯M†v‚j-dšù4)“TÀ?䥲ɛªìcâˆqŒÅ&oO{’ŸN¹š™8VŒÆi2\&¶GH”qdéŒ3Ð= ·@ óaï—Q*„—%_Ð!é.¼YØSßU”Daeí¯cfFÂ-¢»´c=mz¦¶­?×”|¶ü|KxÂ÷Õb@صUÙWt–¨¶,›äw9Ú…iÓ¬#"ú6$õ×ÊŽ-Ï›æ4ˆÂú ßBâI!ó ¹e)ìÈâ™ÌåÒ¶ngë(TX?¸p–Ÿ*²*êáüP)¨(ø05’Á†TÃÙgôŸxðÀ±§@¥Ÿü~A’Ô +@ÂAØo€Lœ‹$!PgA¦žlðb䃬Tm½vˆË":q °5‚XÊÁØJGh*ô ›J1k·çÐZ+#TnVüÔ¦„š?]½ÿ˜®¶±¼J….òÕ#ÜÃaÅêp%3adî÷W¿\ýcÄàØ:¢F<ÂËÆ)€þ\[R›ÎÙ‡X!Í ÓÛò–ÈC°? ±¼“£3»Áøulü ++`$_y+q¸2´( +ÃVr7?q¸’êÜô üüö€H<ÊÓ0SûWûéœ} @' Ã…õŠ¦â¹õÁ¿4³AÜÈD*¼¦Ë~iaÔý2Æå¬púw ÷ÿ­û»3åd¬uppuð-D|¦hkdQÇ‘óBàyð€çÕÝÌr!<€@1¸Î¡ Õœ1&Ù¹ÂDaPç`S€zŸuO(¥)–ÝÓÓZGÄνsØN §ÕàœyS FŠtÐâ739•óo½|‹~*!WÄ~újîëR8(•ÇHvA]¢Š¶úåúÂl€QfI_Ø—ÐE@H›h,› »@ª‹%ÄP“(I)™BÉ„²’"Tf2Êë=›^Èä=ƈÏ!ï1PòK *5ˆ_Ìâ—„Zkèp©5h\ôÛ'O¬ã+•þÕ~Ú„*”qÁ…[Õ.Tþv’Ñ=,yºÎ5…ç\&? ^uù´É ]Áà½k©#Õ%üÔû0òàY¨½L~âq!šKçû¥pžù ’Á~Ò则8©eÄæËƱ* +œCÜxòâßWOÌòc*xàc¢zt²$gmòI‹…]bÌÒ’^ýñøÁ†¯Ý뻧:°9újËòïú€6¿‚,xð8úPõÍäï0’JS‘ÿ;F"³mK²îcƒ &§£b>ˆV{~ïFCª÷ ßÛ L±=0,¹H¸dCõ¢‹Aýâ¡Ù`Û.Ú`ø»¡ƒ4Ñ¥o”Q’‹øšý°á뛺©JOã5z@¨µà„Jj+ýÊ$°¿z_ßùš~®vu×»u õÆí7¯qåÏt©þí+j—)ßè‘SG•ª=Dð{¤LÌÃëÇPÄp±;6<ê±’é˜À#ÛϤ +VÞh׸G}ðŽ¨ÏØÈNœäœ©;ìÚØÌW¯ÆAÝsm‘S‹J®º>7^k`ƒsŽ\G†˜7Ö[!@¬æ:¾›P¶Ææ˜=WD(£T*éHêCÐξlCÝ`õU­Š!=èåÌt°SDXx¬ï|÷Š/>‡>@ÝWKÁtà°Y£áå½Ï Èc]¹ë‚-}›O48˜2)Å_ßÈ¡ÎÍBQh>ëpx 5a3>syÁè.?-¹=+ ¹A­s_ÂýFLcƒKiøívtLšEe¼.|Sæ‰)±Ô½_ã“„Q_PM™4pÿï9ã™ÈL€¼¯š)ÜÉéúi–Qa9Dü=³5Djdk!¬j-Tf§ +q°¥îË€ƒÓ¥ä”‡måœ>dî\bö§ù.…°ÙËwù(f(—?̨ÜQ»{áûNʇ()s6žq>9V+DS.{^N|òí"î[#c&ªg!·dÍ2NXÁ: 2ÆšÏèÞV‡uã"ƒ¥i(n3[Püêæ³bfÌõ!<­uDŒ…ˆøA5¨b*Ä~¥Í °ö&æ‚­€Î°y ÖªÃi?4ÄN9f$•¹”IŠö *É-„'»R„;÷‚F…‚ +Ð^P‰§µŽˆÍÏ5£UÃ~Ô úb,E–FÓH‡¤&]j`7N à)ÞC ››—«2;kžQxM‹|bcê9Yú¹,àÑy>æŒÂ(L¹¤(Œí›˜@ø4?ó–H¾µI…¡FÞ(‰þN¬Ø†ý&t@d‚XÿjÂ*e/; 8(ˆTL86Þo®úSÛDgn"E@ì·Á)Þþ4O%NdyÐÐ3õ’ŒµìÅT´Ö1ò‡˜,ô ¤Þ0‡âÔß¾½†’ö_ Á£Õx}Á¥çæ÷y4~Y4S!\F23FY'…\úI˜Áíטv§Ö^ƒó³†s3p‚ªžü­lžØTŽˆÅ­† Ÿ;ž"¿Ðß ”.óŽ8¦€³y÷I~òI …;324S’BçBß'u_üU‘Ì|dcà41’G^à\ U®nZpB,NpôæLâë sÛ0}*4^€“ p¼lÜžÖ:"6ãYZ-´T¦÷T浣‚!ÄØ›ðk­èÛwljü¤~š*¿àºnöÑG¯q7ÿ”]j?/ƒl©Bs3óüØÒ•/jšjüÑ“ºÐeGyQ™±iªRH xàxôN!4HôÇÔMj‘’ãŸ×0E²¢é[ª·7=õ™ ˆíð'©oÌÿZ7;æŸ>áë’Š¾¶ô?üÁ!jvÁõ;žyˆßÝs“Uã}­x”?-¶þ‰ðÖ}ÙðòŠ”ÑÖáÄhÊ}éKÒ‘¿š«çMÕudÝ·{?~qásãp*V=øAÉwuüÕ +þ¡šµI‡k> endobj +2325 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [139.525 571.892 145.987 583.932] +/Subtype /Link +/A << /S /GoTo /D (Hfootnote.26) >> +>> endobj +2324 0 obj << +/D [2322 0 R /XYZ 63.034 602.788 null] +>> endobj +526 0 obj << +/D [2322 0 R /XYZ 63.034 474.03 null] +>> endobj +969 0 obj << +/D [2322 0 R /XYZ 222.649 183.055 null] +>> endobj +2326 0 obj << +/D [2322 0 R /XYZ 78.277 139.458 null] +>> endobj +2321 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F7 586 0 R /F11 674 0 R /F47 596 0 R /F10 1027 0 R /F14 1012 0 R /F45 589 0 R /F42 1073 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F64 1214 0 R /F48 601 0 R /F20 1030 0 R /F19 1034 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2329 0 obj << +/Length 1296 +/Filter /FlateDecode +>> +stream +xÚÍXmOÛHþž_‘ûR9¨YöÝÞž8‰rh¡p%ýp׫Pâ8ÁRœ¤‰S©?þf½³qì˜'PÂzwvæ™™gf×am +¬m1\µ5å$Œ¢vœµh{ +'-†]énȼíµößEmCŒíÞ¨®¥7üpE;_{ï÷ß)YÊEF +ÔZ‰£ÓëÞq‡Ÿ:]!dÀ(étÃ0 >~¾x{\LŠ wz|ùÉ +õÎ:]¹ÙÃó“K·‘g½Ó _[k­ãÞ·Šh¡wºæežà› +%‰¸.ÏFC…AÞáQpg¿fn"³€æu$L€ÛƬU€‘o­/_i{ˆÞ·(&jßÁ˜bY‹|š´®[”ˆ½®î†²:b&`ÎlBN§fî`¦¯é¾VùÒ%‰±r»Ô`˜c’ún}C{:¥_·÷3C45(1ØÚ/ 5®BÂÓÁâŠgÙ|•®ÄÆq‰A¾MÜ`RÌö—¥°}ÎfS{pp5±ÛÓùÄ)* +†ÖÛE[á|roñ@¹e¢„dW)„ + +îÁ†VË÷´ø7»¹ü•Wç CÒaÇpÃ8wó3¬,ÌÝ¢l•%0Q 1¦7 þ¦ 7/’~ž, än¦ât‰s9[¬¶d´¶‘¦DF!¸hˆ´¡ßYÓG'ªKQ)fåM§+•Ó-"ópÃÚJ +"iô"‡¶Ü‰ŒººÊ +"W` J(Lx‹.ë4• +¼2Ô±™­’PTYÒűßu|¶ñIÙV¶zu¥mõ$ínÈ:ëQiÝ÷$±Æ)Óµ)8@ÓgCà‹ +U°¿µÆÖ˜%•}š$E=áBA+ÅuAA%n¥Â?ú{ƒûSEû¯Ý̘îí7šÐ|:E3ÙüfgnlUÁóz !zí®›n-^¯5Õ—âOƒœ7eyD¸ôl„ëAî¢@E§Pôš£CÅh‘,m²É +x  Ü r†ðsÞ¼‹7ΊÊ,¦œKfTÔ~>¿¡Jó›WÔ´µô*ç8úøùüÜF²Ìî/¨èâêæòÃáŸ>̵€M”ÞP'PõLA'Ó¡ c¾ZL™Cª·­Šhå›qƒU¨* +ÕGO_,9«„qœ ÝŠ3ÉNŽ~wƒÙÈUÎz%¿›¹A:}þá"áæéiÇÃRf]†6§ë,²ŸI„Fò]¹C‰ +rA1yãYŽîÞÜôS'Ø ¥N4ˆµÔ íñÔÒµÌú“Iâ;^¶û‡2ZË–œh*9ÈK Ÿ¬?~ 98v@Î{Í`‘ *R;2à%ª~CùHNéÚïe>[ +ßV³ÆpO_··‡nn7ÏÉf0b}kÝqÝB)ùÈ­y\ÏÁ£ˆà¦é'ïK!³O‹ÿUµK¾endstream +endobj +2328 0 obj << +/Type /Page +/Contents 2329 0 R +/Resources 2327 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2316 0 R +>> endobj +2330 0 obj << +/D [2328 0 R /XYZ 91.925 602.788 null] +>> endobj +2327 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F11 674 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2333 0 obj << +/Length 2488 +/Filter /FlateDecode +>> +stream +xÚÕZmÛ6þ¾¿ÂeôÌŠïÒ‡C’K Ú¦EöPš~PlíZ€×Jd»Éö×÷’’)KÖºyCƒÖ9ä¼p8óp(>KñÇgF²Tª™I³Y6[Þ]¥³[ôü÷ŠŠE YD4¯¯¾ýN«YÎr#g×7§Ó\¯~MxÊ$›/¬µÉóGs‘%O^<ž/xòl¾R&/ç<ùÿ_|ï_ŸP× ´ýðÓÿ®ç™JÍ3™\?{ñãü·ëçß~—yI‘1k,„#6Bs¢¸zzÝI¬RìғJµ4­”qŤ2‘ZÚ*– ãÕ‚Œ)Ã? ‰¹ÐÉóbYãõuE¬N^ÞßÍ¥H^ã'õ†Uò„(îÞöø)öþ×Û^él!8øpÇçšô¯1ÜäIIÆyÿÃ6Eµõmû5^Kš>u"8þhyO¬æÂ’øïEH“w´~·.6Oþ*åªÁˆ±Øû¶UÕ6,»²_‡±ß—·åv‚&4Üð²]î«V%;3,·Ê/•rK%™áÚ/×@íŒq9’ÔI¥`9Ïf°4˵ï~·&ñ–¤áèÈ&2Úw÷§v@cµó¿«’Tßú‘œ d ÓpBïîňý´’¡×)GóúŸ·$Wá4€×-}cSº¥­HãCéÛîàhÀ5mê¾lÇ®•ï ?lª»r()Ï%ˤ¼ˆªV6ôÂØJÉäǃsWT6~]ñHÞÉ“{ï"“,"ÒoÂjÓ¿n ¶Õïsm0Aé-ê»÷õ)YÖÜífΆêHìþ,G¬,ËMlþÈÅ5ÆÌãÐŒ(^¥: S¥ÑF@¿êÛô]7†§&t¿JÓtÀÅ0!ÚˆÇÁ‚YX«É¿(ô¶ ö â·eBh©!×LåÙŒ –/> +˜ÅX•·ÂÌ Iª›¡MRk¦œ9³±3Kåœë4tfôm](]´>MNzh·4 1D0ƒÉã}˜~]œüÝm$Çp7êBZñÉ !º áĵœ nzÞþíÙtºTÁŽØãJdaγsÊ4†øYŸvD`† +Àµó‹"Fëöqª—Ì·WÈÐap,Õ·4‹ˆÈ¥úXê“yZ¹øß>Lñí Æ)_ï‹šÍ`2&r|j\Nꛓ0ÇQPÃxÖ:ÔÓ·‡6eœ§§ATc[4 ý”ôo9wÉøÁÅUGT­Êí¾Ý5” ]þÂ<>ÕãÁßQT]¹LQ;7¤Øõ¹éá1Ôáà ‡ãË{f^aqÛ`¡’]½q‡œ'#¹’c¹VK Y{û~$Uš\E©ò¯ä¡n)Óü²¨wAô¹,>O…™SœWÓá'":~Z’(üˆ©ð3Å· ?|CôÁ¹…eÖGë'õvwLiMP­›ÁznV9ÿê Uð/—”C>L:å‘5°ß}öYö#z¸`ÅßÑÏ©oYö!e: 3Ò0“©¾oŽ!zç'9£é@QlÇTûƒ´ß©à®™3çë#÷^ìa¡g‘üÅ]Ï¡LÈškÛrâ#€Rã`·@Ôúà+§¯ýÀW}(ð¥E8DVUz¬þ!ýè3À0Åô€Ÿ˜¢·êŽ6Ø¡‰ª™öù¸õÌo“ø‡ˆ>>bN ßêÍôUÛôa÷ú€˜/L}›òÁˆ¹ä=£~ à-q8Vf¾#ÑÙÌH¢Ì''3ßßcæ;Ï·Í|X!ä¥_ÖmÖÛ¯ãü—ç#…4RržƒY +À´£Nh‰Þc´ä¨ðC¿î¸º÷Ïç放»j§Ü¸Ê]AÿîC•›CÉZ‡M«z'Æg7£TææFU8óU‡óÜ +_L4ç÷­œžHÒ8yX>HÒñpZÙžS€Ünsõ@WoÙq93——ƒÍ…´6òErk¢Âo{^ð¥®ÊñÈKüÀª£/}Ãkw¬X†R…krõÑC\þÅ€×.b„A„mµ¨({ROúgAÝ[v·ŽŠ¸Î™Ì³iTCE-I„Šô*šâÛ¡¢ ¾á“9Ž€E_íÛÛ( Ý Ó¾lîv]Žt»ï‚n×QÄ]Ûð9R,WGúWá­Àÿ(›º½TÏâ(íuN~~Š¹þsjŸV/aÑGëŽéL0sêz{õëoél’çW©³Ô;<ºÏgwWdEÞéÞ7W/¯~~mÉEî`ekb‘RÕx“\~‹ŒÈ…dR‰žç3B¥aÑwuÂi8mš[úêÊÊä—uáà†øC8‰†má¿ÆòÍ5=ßø;vw£¿®vÿ>gn9Æ-ƒ Ã€KÇ:¥’Ìrz‹:ÿ1¸ÈRendstream +endobj +2332 0 obj << +/Type /Page +/Contents 2333 0 R +/Resources 2331 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2316 0 R +/Annots [ 2335 0 R 2336 0 R 2338 0 R 2341 0 R 2342 0 R ] +>> endobj +2335 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [386.804 550.071 393.266 562.111] +/Subtype /Link +/A << /S /GoTo /D (Hfootnote.27) >> +>> endobj +2336 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [182.198 514.206 201.902 525.054] +/Subtype /Link +/A << /S /GoTo /D (equation.10.1) >> +>> endobj +2338 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [155.793 438.431 176.117 449.279] +/Subtype /Link +/A << /S /GoTo /D (equation.10.1) >> +>> endobj +2341 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [160.257 315.598 179.961 326.446] +/Subtype /Link +/A << /S /GoTo /D (equation.10.2) >> +>> endobj +2342 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [320.312 315.598 340.016 326.446] +/Subtype /Link +/A << /S /GoTo /D (equation.10.3) >> +>> endobj +2334 0 obj << +/D [2332 0 R /XYZ 63.034 602.788 null] +>> endobj +530 0 obj << +/D [2332 0 R /XYZ 63.034 584.788 null] +>> endobj +2337 0 obj << +/D [2332 0 R /XYZ 96.123 486.198 null] +>> endobj +2339 0 obj << +/D [2332 0 R /XYZ 201.284 405.499 null] +>> endobj +2340 0 obj << +/D [2332 0 R /XYZ 75.593 354.399 null] +>> endobj +2343 0 obj << +/D [2332 0 R /XYZ 167.512 261.189 null] +>> endobj +2344 0 obj << +/D [2332 0 R /XYZ 121.997 171.354 null] +>> endobj +2345 0 obj << +/D [2332 0 R /XYZ 78.277 129.994 null] +>> endobj +2331 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F47 596 0 R /F7 586 0 R /F11 674 0 R /F10 1027 0 R /F13 1055 0 R /F14 1012 0 R /F48 601 0 R /F45 589 0 R /F1 1058 0 R /F20 1030 0 R /F19 1034 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2348 0 obj << +/Length 2934 +/Filter /FlateDecode +>> +stream +xÚí[ßoÛ8~Ï_áGXsùS$ïЇvÑݶØ^o·YpmÜÄIu’6q®èýõ÷ IY”EÑÎ&};ˆdi4C~œ~C²bÆñO̼`^šYË%³ÎÍN/øìo~9IbžDæ™Ì³“£v3Ï|«f'ç»ZNÎÞ5ÒÈã'¯~üÙè^ε¸3PK?½xúÏ“çÇ¢ùýx®”ngÇskmó?^?{ªæäÅó7¿“ÐÉËã¹h~ŠOŸþúË›ø¡h^ž¼xû·díèùɶÝZÖª¶ÚµNfÔ7mg}2&뱚9Ù†¶ “LÑF©›W‹Óë+´Ïêæí·Ëc%›ø%šëu"ËÏæ±Vø ìäÓ‚\ö*p Ò‘ +ü… +<Íê6¾\ÄËÅ’¸B+ÂÍ nëÕ›ÕõUüàúE!ÅUók'±¼:ÃýM²~~‡W§ÝÇx€ß×7ÉâÕ±ôÍ·øã:4Š¾=‹¨ ø +Ý ]ÓLyºö™Ú´º$ ­o.ûïÖô"#DL+™–>yÈçpÍÚôöâf¹Ø,©}­‹\\ÅŽd´m‚Ëœ8Ádk+F”Qéí“ôuÿ~ÁŸY¦­ "¿%>ƒw[<†iîgsô…¾Ì˼’:oû¯$s¢ëú>n¶LêbÞù¼é¹eø¦½ÎÍd݃¬“³^¢ó ò$Àgñ`qÜú#Þ’@ï“vëÖyyË4â 2±‰ï¹äãVZ&Ѐ!TŒ§Å(z…bŽ»™Ñš óËÑ»|v†(~uÄáanö÷œ ïg—Gð9)Ò¯õÑۣ߲(Oºæ™²åy“HÈ D¹Âð;1À·ï¡aZÌàßvèžìÙcУ€¸¥ñGî²B$¼Z~¹[¬cVÛ\§k¬HŠç×(ëkÂý+ ÁŠ‚ô" +†AûBÑCÙ¨0&&xáœ@ÐÛVËBT0ƒÈà(n˃"¡Ë ;3\„L¸wP â¬-J§kž)‹ƒ’5I¡8­=Ò3Ÿ”–)e Ë\7ôOFÓ‹€ +‚žk;ÜœÑÎ2™2Vk•­ƒ¥5‡ƒ…¤¸,ƒ•tÕÁJB°l1A˜  NÞb’–’)ÛöxβÀðx%êh´žÙÇB#骣‘„ö£¡r4Äh¢Ç{=ð®¿dm¼X\F¾¦˜tê_LPΨ « #1ãŒ.üܧ o§¬ +o'TŠL^Á÷ª½­p%|‡ÓšŠ÷Ú{fÐð"™K2óLh—¨îê‰öÐQÄ3®bŠDVív$²b—fF×. Y³ð3bSÚ4+JÜazý&Öå)ÝoV‘SE‘‰±`5¢¤µKok„–ŒŒé¶ÙàG˜èñ=Ù¼þHYx4æŸZo5õÏê?Ǧë\^‘ô&¾Ä7þ_—=U=ß “¡7HØ2Ì“h£¥9¥Él®@‘kùè:Í…«0 jÞœ/N7·£À3‡ig +Þug‹!sö"_WëuT)N²{w_ÅÎñælyƒÎ£)I*O<_¾ç¢ p®2Pøc>Å©h®&2âØ,Ö×a7Ÿ. áš}ZF0wR|\˜I×°Ì´*s Ix¯fOV÷oR½p^ÜtŒ1pz¶%àáG¤+Ô£­~R9Îm­AkdjÍâï1e~L‚:dVu”=%I-sÎEŒ;¾þw‘ ßu¹cWÒرGô¥²;è‡*‰ÈÙÍ]×y¶›-R¡¨Š¤êZ1ÉŒs±T¹U¦¥‘-Æ9#ªÆ:™‘µÁì‚̤`M"e´íÒnª¤]H¸-ê3M„ËCH{§kž)‘vÔÝ(ÆL$ï©+’vøÆ~Ö.­°öHÍ)7ÜQq&;¯}Ï9/™ÝfgñCt/¡¤ÆULùò1ô­d-¨ô½ÌdÐ'‘Àx¦ƒ¾b¬úŠµô¹µ—ŽoxïÁÃ,êWj›E;ôÄ8^xï»TÆÛy]j T­—võ|Bµ M=,ì’®y¦lìŒr +á'\ûu©ÇMPZ×ÃV¢9-„ïÔdØvºªHm îAêqÃÅŸ”¾¶½ÌdØ&2¥§Ã¶b¬Ûk…¹å“Îî ¯ÍGWRÙÞ®œœ©bP>,'o'ê­®Â<Ý™Ìzõ ±Í‰žÛ!zq#*ò³RÑ­-k–VyFís£„æ&ò™òA­ÓrÚrŠÅTŽá…l-PPå‡Êú J뛯«X˜&zI ›¨ +{A·¥BJ÷8”»N:>·9U¿—™tü$B¶Ì´ãWŒõŽ¿c­äøÂ1×ûƃŠEKIÒ>N‘“)›,r Ó÷/qƒ¯ÕÀ÷3ÁÁ’£Cuù¹õ;~2\Ý£5-Z@‘¦oØ¥ âqÀJºê`u·`- +`¥)Îðn‹R,+„þ|Bi¦0Bl£ÉðB­Èœ5ûâ­Ë¢[…äcxí`-+3”õ]1!ÔNnRÙWLÁ;íȬ`RvÐ$—²)ïv˜ÝÀVÆûØ*„"yý`Öæ¸ë*p=‚ƒŸ<3!†¼Ù:ݼ[ÚKZ>ÓÍíçn•O4§«÷(pñ6,Ò-Ö4|yŽƒO€ Ãç/e¥9“þq£ÓU "{²È~YÈ!O¾_QV…-åGÁ)éªãÔÜ“@l9 Ï*8•çU¹B’nšO€ÉrS¯"Ò“5–[¡$a¿‡–ÊiïʧâDM(ø/3¢IH\À*æ(®´ˆkoÜ®º½é¾»í¶²ÃB}¸%ªR:—¬ vêEW.ŸPèºn%xgEA£(¤Ð±÷g)µƒÄôÐîÎ9ÛcÞ‰é$gÂ)’^ /µ …øÌN­HAÕai·7lÎ=h§^Øà}Ri0}ÿ°ú¤kž)o·BXIi˜hue£^ÿúË•Uð—8ÈýLñçK£Bz=Kþ© ,“®:–Æ0+Û=`"½ ï‚YÛ¥§êJÜfʧ³Ó4Ž—‡£Aùo"!wºêh8$d¤Û:àPà÷û\kd%­#hš&Ծ媾¥Ó¶¼+ÉÒÀ¹¨Uº[=ß„t6cÂq‚ªy¦«à7AFx Üd J47%w3  ’8`ã­dÑ\í#ö{s•«9][w:ÅŒQ‡#Yuº¨«¥ÃX 0«cIN§JX–Ž.H.Õ²~t!š:ºÐ‰dGlíèBÕnwt¡b·;º ,ÁÕŸ\ÀO3z·hÈs·Nk»`yÕ¥shêÞ3<‡†&qŠP‡Ô x-êšgÊŠçÐ<†Z(> endobj +2351 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [216.985 460.796 223.447 472.835] +/Subtype /Link +/A << /S /GoTo /D (Hfootnote.28) >> +>> endobj +2360 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [144.969 119.533 151.196 126.662] +/Subtype /Link +/A << /S /GoTo /D (cite.HAC) >> +>> endobj +2349 0 obj << +/D [2347 0 R /XYZ 91.925 602.788 null] +>> endobj +534 0 obj << +/D [2347 0 R /XYZ 91.925 584.788 null] +>> endobj +2350 0 obj << +/D [2347 0 R /XYZ 195.727 511.49 null] +>> endobj +2352 0 obj << +/D [2347 0 R /XYZ 91.925 433.594 null] +>> endobj +2353 0 obj << +/D [2347 0 R /XYZ 91.925 406.7 null] +>> endobj +2354 0 obj << +/D [2347 0 R /XYZ 91.925 379.307 null] +>> endobj +2355 0 obj << +/D [2347 0 R /XYZ 91.925 351.914 null] +>> endobj +2356 0 obj << +/D [2347 0 R /XYZ 91.925 324.521 null] +>> endobj +2357 0 obj << +/D [2347 0 R /XYZ 207.493 231.998 null] +>> endobj +2358 0 obj << +/D [2347 0 R /XYZ 196.617 158.074 null] +>> endobj +2359 0 obj << +/D [2347 0 R /XYZ 107.168 129.994 null] +>> endobj +2346 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F47 596 0 R /F11 674 0 R /F1 1058 0 R /F10 1027 0 R /F7 586 0 R /F14 1012 0 R /F42 1073 0 R /F13 1055 0 R /F20 1030 0 R /F19 1034 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2363 0 obj << +/Length 1783 +/Filter /FlateDecode +>> +stream +xÚ½YßoÛF ~÷_¡G˜®w¼ßúÐëÐ`]6Ô}º>¸‰“µ­Ô–ä¿yw²$KvÒ¦ú³Ž"yäG~+,“ܵv»øF0¡M¦•g_'?ñì +at>AX{—Ýãš3á}¶š$7ïåäýäïfª¢ÕPÖË?Ê€“hóèu +ÃÓé 8sN4§“cPœì¤âñ^T%¼tdž©qäÈ@N/ÜKѨ'‡[Æ…>ï¤ëT¼AÒ÷â= sÒŒ¼[œži bÑ &Ö¨bÞ‰a‰ªñE| Û€òI@„r¡áñÍ ‡XSL ÞC¼•’¸Ømd»¯s;ð£cÅ0Ûó[÷¸)‚£wýúîÛ’ ¾ÏÖÀ†eÜ5q{9P€iqvÕ!ò¤£ÊӈˌE#St„‰âPO{<¾oœ#¨Sv÷uÂnCP€§´¤gÈAÊ›ün‡ÌS×åÿÜÐ#‹U€Í+ä¤ Q}Æ­-ån±ù6Õ&Ÿ×eµŽÏH_EJ««(½ Á¯¤4Š…‡x>|`£|ËÛE\_ãºZ.+¢Èû®Ûru·,§„¡¡U„Úñ +kVæu¬G$X´CZÖ±é—ÛÈ¡AófܹÂ5®¦% 6ͬ|Zw³G36åÃwžÅIUÑêòÊ@¦¬fšÿD°Oà{©^×”6P0”ÅfËåwŠ 8¨¤êd s +¶Æûw¯}ƒÀ¸‰Móˈ&‹Vâ‰xúylÙošf’ÎÓçFCæÉéÈèÀh>]§ò ¶Ÿn:Ž¸m1ŠÎºÖí>=“FgÂ1Îå#”k{Ø>J¹ðP®”+¡\õLÊ5Ï \HóG¢\@‡xB)ºÌx,øVæ9Ô¬š-6ºÐRñçÇ©9É¡5èéP³à§¸ù”á=7Ÿ0œ¸YiÅ”ŠØ˜zä6t»¤»dzR]ªAû`I‘ëÆoàcA +ëÓ`?PGúN FûNGÑhß9@ŽÈ1ã}‡ÌgÆð I=e’w'“te±ñt±N1ò˜3AêÞæÆÇáÂñÎC2¼hÇ/Ú¸@O‹NJ.ç4 +q†+—/âëjG3ÏU³…;q½kf®ýPÄ;“®·óUÉ¢øpꇛ©ˆ—;ZiˆL‡ÞáÅEòèݶü6^‰œÐö@ßTj"‚¤nÀ¸K?Gˆßº#H´] v$@!Í‘9‹Á#‰*©‘æq€¤Æ8 +¤«è(H2ˆÁ1Þ™tèH'Ê«ƒäw•iFº;(ôê Ð!‡(Qû)v3Çeú£òòzÈùˆvË›SìdÃCå6&jÑævãh¿Øܗ۔ɲN‚@Ëíöx©~FfQKˆÞÏÈl£ëdf÷4³½ÏL”ØNR‰|ˆ•ŠÁ[ßÄP†ïyå6Vx{äþþºÏ +Ümªù%%oZÒ}°¢… —ÜA¥uµ‰¸ ÇÕ Ç!YÉOvj½ª¢uUÇy9ŸM„Y©“T¼¦‡_ÖñŽ¶Æ#k)ò7Ô!.›pÔ€®ÍªÚ·œ_è5OºÆ?6 +˜ý òë”>ÎœAè¾ïÁIÿØ\Ä(KœàM¸Ê´·ÃÖ7B¾²1 ¢ü&8[Ö·«øä¾\.“P< î®öy×éÅ{ú¨VrPþ°ÕF> endobj +2366 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [279.057 521.138 298.761 531.986] +/Subtype /Link +/A << /S /GoTo /D (equation.10.7) >> +>> endobj +2364 0 obj << +/D [2362 0 R /XYZ 63.034 602.788 null] +>> endobj +2365 0 obj << +/D [2362 0 R /XYZ 150.967 559.384 null] +>> endobj +2367 0 obj << +/D [2362 0 R /XYZ 133.905 494.294 null] +>> endobj +2361 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F11 674 0 R /F14 1012 0 R /F1 1058 0 R /F7 586 0 R /F10 1027 0 R /F13 1055 0 R /F12 1578 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2371 0 obj << +/Length 2595 +/Filter /FlateDecode +>> +stream +xÚÅZÛnÉ}×Wð‘D–½}¿làÚ…½¶ÇØ~ $Jb"‰Z’ZßSÝ=œž™&)­”¬áLMu]N]ºkĈãŸÁ‚4#Ë%sÞÎnŽøèO~>™bšI¦Í'Gß¿ò£À‚U£“‹>—“óOciôäËÉÛï_ÝÒy‹+¶DñÓëã_N^NÄøÃdª” Î&SçÜø¯÷ãËxSO^¿|ÿˆNÞL¦büSº{ü—Ÿß§ÅøÍÉëw¸þH«½<ÙÊ­•aVÙ½ª)­˜¸ÕçlÀS˜ª$é“j¼¡†=úô…ÎAøöˆ3üè+®9!ŒnŽ¤” ù÷õÑÇ£¿µR #™q°¸ñon nìÈÃ~–,)Œgƨ‘q„hÐãkØár¹Zlð÷ê&›ßµ/i°ã:›ÿæ®o1)<“-˃J(&¼ª«YM ^I…B)lÐUá_³³%„?%Ç.²…ÖÒ1ieV€ œH#%LÈY0‰å›[bvwOÿo*, \+¶,§ÚØši8Lç€k˜³ð/¨ÌÓdVÓ–×À»’;&€ÝLB¢-n'24 +X^ A3îBV`6TÐÁÏg·ç  ƒ»!ͬ´ùñwÃ×)ÊDoùP.¯uã±Ï\š!ÿÀœô™‚W€/¥êË×YAx{p—)ÔÓWûuÈQZ‚Ðð›åd*ýøœî¨±Ä-Q­pXß:\(fBBíûûÍ!ö¾Y¥XঠÙ"¾š§¥ßÒâèlyºH·ÖtëÛ aÁ…ÿ—×C;xÂj u6\Ø2£3½È¯‹¾™‘ì•jLÅeœOL,tœZ¨Üb¦Œ5ÅÉW3™’n/Ö€ökžb øW:ÿêÅZf5-xÅX+å! ëC5&„/1P*gj$$^³{€`˜A†¶F`}õšìn4Y[?[­hÙí.ÈŸT"J3pÞ\ q 9ÓÎíK)mL¿ „Û1O0Û\Ío‰‚¥JXfb,)Æ¢šÁ¼îÃ.Ôa÷™k>Hæ\< €(”fûÈŒp9O5Q¶º¥pÍ¢é"÷¡45ÉóÝ/ƒª =óeà SþAeÁË]3óšÌ¢#Kq¤Ìúíz1QüùxâüøŸ•ÊF ÕÖnF°ìr•†‘Ï ñ0Èÿ ÄN0Èÿ´CDòð<`(˜íCCòl`P¬ât­º @þÞ&Q8ÍË‘b> ‡Ž3LjdÆ–¦õ^o¥Ö{¸EW Iâ”®õ!‰ÿ]«éVŠÇ'ά s™;ÿ¸Z\G DQž ýxãu‚ž6¥ñ~  b×ós +:3þSµQ0\n5ˆAYmÑ›à-¡ä- GæBRr»ÜoãFK Xù}”+V±‚²;Z)¸B¸Ø ö|r8¹ìÅtÚƒN2¼±ã 0­,¦F'bÄPJy@Êç ¶ˆ“ÓÊ‚Ø9ñd€v|QÝHl#‡2—+ÍçÔZ´`Ú‡–­ƒñÿt,ö*ž LIÑ—ö0(×µÈñFÎT¶[ñ€·àº™Êesͯ×1KAlV»$‡e\Õd ÛÒø€¼~7Ìi—9…(ÁvP݉.+fC·Xxw4çɾM h‰µ6Csկ» +zŠÚº¢Ýng¹ªpóØì<Š™ë ­»5XÅMØ)p¡÷CI=ºy¢‘¶ŠEPÉŒ‡à¤žEÒ˜»>s^“WÛúše¶¬èö5þ¡Ùâ1èT¸²¢x™Uþß•¶É¶j׉…®¥6쥕˜öw§¶}^îð"/˯²>t`šä +Ü×<µÊÚ¡XüÀÖˆ!„¾Ô‡­yW“˜@úìMø]-Ûm»ØOµ”ªÄã›ËÎî¥ßþ¶9ÞYÆÚO>÷Û¥ÊA鶩à¢Þ¹Ý'ð°•Wr$9*<íœ9óš̆ÍÒ¡ówÛ›3øÓLXì‚yç ¾VúîíÿˆŒ5løxqºŽ ÆVónJ )ÓþøÁ‡‘ÑÙ¶êAÍ܇y:w ýÜ®³Oï;| ƒNøÑ(¦”xâáCâ5-˜ €.¹]î÷œ=ÔÎDAfõçg +椇C¸WÇ~"p$ ›TõÜÔFš MCB²¿Z\ÞÃQ«yšB•öxPëññu1w‹ÓÌap+ë‹Eù(øP÷QÃkŸŠ0©}GƒÛ}É`2[0ØL¢™6JqD°oN,E`Þ¶sb]Z•#É¢%†JÌÑŒ-§qn9¡™ÂEJØ0Nî`qžIðox<`N©iªQ=>ϼ¦³¡Ð†„YJ¡aH.+£Ð9«”ö‡ª®©{'W”Q×Ô¨ñl;¨½¢Ý$Ý”ãÄï掶‰‡‘ëô ÍÓõÛ¼ìi²ÝZÓTÇÅ©Ž£©nŠñ¬/fÍ ¬´ÌÆ® ^2 ³Ud³YѨhõ 6dîÈg&°eñÛ á<=¥)¤‡x—QÀ¼¥IZ[ j<{ãÈÂ(ž©í_I°åˆ¨ur5­YŸmÒ‚›eú ="enOÏÓ¯Vœš(”r¹ê–ªŽ(b;ø½\Íg0Ik’ÁÓ‚ùÇj>ßú·Ø|õlygoˆ{²åué[º™}O—§³uäE(ìoS.™Åw& øqkèÞY^$â×Çäéü Ä'ù]º¸Ã[w,å!§¾$!Ñëêô +?nšSnØY[=ŽÆ»Rn4_­é¡`óDE†ñbCä_‰t™n\ÁFP$zÆ—6WÍmñ)°Ç[gYñ†ÿÅÐcUÎz¿<4§Ýº µqðDì’(C–š’¨|Çfd€ˆáÊvLØÅi Å éØ„\ÿmâ5 e”°ø¤ÊT=¡·qd9$-)–n·Íõ:½­IÔqôCïŸFüG¤‚"ƒ(K×ЋÙÙf¹Ê|·%¿xƒ0ÓŒ–Ks)‰>JîöºDkÛɳ‘í)JÉÆ ØÖþ°u¢<„ëD izáÉʳ“¥nÓ6›¤‡:óUþÆ¥X9˜ØÂgÜ„ÞÚå—t’$ ]úÊb{Ùýâ­ Ê™P.Bä`•¡dãv}ò‘xM f±ÊÞŠÔ.(PŒu™´DéÅ%E·¦·»/™¡¦J̸5;lï@ +ÑФ…´VL÷)Q.ac‡à¨š‘C¾u]„¾uvMô³Í<;g™þ"uP:R¶Š ¡àvÙ›ÌìE‘ô!Óæ*¡ÁE@§ŒìÐ ŠUú`*Á-Â[R[8•W<Ý,ÓߘðèbQškÖÛ»ÒÚ<žLÃ)ºÜ¦tÌ­á¶-Á"/žª9þåê¾ ÿTÔúÒå& ¸q¬í¸·ž·yç6ÝÚß ¼¯›M9RÕâò*1cª5¥ %*ãµ8º}ÞƒÜÔ!¬Òµ¶¯ù„Ž—ÿ Fendstream +endobj +2370 0 obj << +/Type /Page +/Contents 2371 0 R +/Resources 2369 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2368 0 R +/Annots [ 2373 0 R ] +>> endobj +2373 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [319.129 174.605 326.103 183.017] +/Subtype /Link +/A << /S /GoTo /D (cite.HAC) >> +>> endobj +2372 0 obj << +/D [2370 0 R /XYZ 91.925 602.788 null] +>> endobj +970 0 obj << +/D [2370 0 R /XYZ 246.421 233.76 null] +>> endobj +2369 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F61 2059 0 R /F23 1211 0 R /F64 1214 0 R /F26 1460 0 R /F20 1030 0 R /F48 601 0 R /F11 674 0 R /F1 1058 0 R /F7 586 0 R /F10 1027 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2376 0 obj << +/Length 1903 +/Filter /FlateDecode +>> +stream +xÚ­XY7~ׯP^‚–aqx»ë‡±'qìL+ I`ÈRÏLǺÒjeÅþøTñèf«{d/Ö0Æd“ź¾:H±)…lª¡BN5åÄX;]m'tz;_OX¤˜G’yFó|1¹z©äÔ§Åtq{Îf±þ¥`”2›cŠW×3n‹7ÏgsV|;› !Š·3VüüæùÍëðù·n`íÍ?-fV×3+ŠÅ·7ßÏ~[¼ºzi;Y‚[b´åP W +)&_-Z%ÕÄHuѨD3°ÊŒR†§˜—V538ªŠÕýs¦t±Üœ@ëeSqGÍ>(ÌrïÂ¥ +ÿJ)Ød@ xMkV\ßãÆKªƒÔæVÊ(羌‚2.šXŧŒª\Æ£03ÕÄ„q&¦sC˜ÐÁ‡çäœÊ˜.@sÎùcòËotºO¾š²ÎN`N snºH¨‰_›ÉÛɧ¯yÆÌ{šÑN¥V ¸J± Õa`Ÿ"‚‚y’H'“y,ReÌÀr ÕêÃÀÝ–8ɧs€Iš²Þ¿VGtõr·†ÿ7å:º>î£û¥Šv !¨ö S$0`ÂèXÀPOÑÑ ™¤ÌFA`H{ŽÝvÄãLLŠ&œ›žf㢚t^Æ}"œeA–à ¢4(L‡êp¢’ŽæuèbµÉ¿Ï $ìò¸+®‡:ã !$™mñpkW¬öÛéÍ7\[ÀÖη3n +¤Ø4Õ‡ªLTwË + x² km¦"k\Ç“u]î°FšC kûÙV0ÌN«&Ú›EÅÕúWÔÜW’uð•WãtÛí›0)ÿðÝr¾¼‹q² C]v¹r¬$¿ZÓ®?\ÕåbÝqW¼mÊCØsvXô;eÄ‚s¨Æ^%Èîà`ŽÞ¸A +ß +­§ŠP(yƒˆËk¿"Jó<ä²æÔË ßàÏ „¶p+ºMbX \ºÿ'GàÞãT_alÜ9Ÿ•~òPaˆnÂGœ•aÃÇZm=ïÞŒ;b¡ìúë‰=»žô‹<‡[Ì\ƒb²H¯é`ƒÃ†b:óò+ŒÀ•MQp)e¿Â@kA\Æ®0‰×à‰ƒch]dÖºÚ6`uJ• î¼aùIí ‹ÔêT×YÝtF¯–«ý{ÌÏð‰‚ê^w#ÁePyˆM°‚ ÅgŽõ>Zñ²ò7®Hª;Rfˆ©'ü²îÞïwç¨;KäT´ê ‡ ãG!÷Œæ§ðäÉ‚2Ãt' õÚÎbàYÌ÷Ï¡SâuY-p‡PËÕú¡AÇ’Õ¹~ +®BlRSH:•?•O¦H:ÏhƒtÛIO¦Dâœil+34BW 2ª¸z2›+®Â Ì·BüÂçŸDÝIž…Ë㧺øoXÙ… +–6÷u˜¿.ïÊݺŽ ñþâ‰ãgx¨«m™.­².*k!¥EÔõ›ëñÔ„‰a¼ÞÜí몹߆ON˜t£]âx5¶ e1x§Ú5Óöð.w…ï ‡wívTlù´¥Æü<ß>Äín}õ˜É©æÀw‹.<¼ñr0^&rô瑠ψƒ¥:èäå2P½X²¨ÊýsT¼ˆ§ü?ûOãX§±<Ž³àuuW5-yµ>•ãGÔ誎ŒR¨¦:„á_1 iÐœê]o~x÷ïë×-¬¸Ën’±·=tW¨9În´ ð/žµ¾^t¥.f Kjw¯DÑ7‚]rÍ¡!ãNsCÑÂÀó"½ïF$G‚#AÇØ væý£¿õá )ñÑ”ü¶Œ"ò4C$ô«¨ñÔ|ŒêøŸZ[z:,’<öŠ-.åM¢è+"ða0I{uŽ¢ d¤>Cíæ»ëŸÇ¨ÏÛh}æQØøG`cÀÆ.Âf/äP†ÚÓªžXpÖW?ÆŸAF³ÉkÌÅl +}½Ü8ŠãeOÒÿEÉ>Š’²g(®ËÛåiÓ\BB¦º{ü„°•£WêGƒG¤ày€6[öã'~±^Ïãé“'â±'£XŽU`ü«Ë¾¾‰UÍ»ÕþðWGùåÒÿ~cËW†ÑJ0ŽGWP‰]¯Fä×´x¯ÂßáÑ7òƒ¶€¬aø•mþ {¡endstream +endobj +2375 0 obj << +/Type /Page +/Contents 2376 0 R +/Resources 2374 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2368 0 R +>> endobj +2377 0 obj << +/D [2375 0 R /XYZ 63.034 602.788 null] +>> endobj +2374 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F14 1012 0 R /F1 1058 0 R /F7 586 0 R /F10 1027 0 R /F13 1055 0 R /F12 1578 0 R /F11 674 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2380 0 obj << +/Length 994 +/Filter /FlateDecode +>> +stream +xÚ­W[OÛ0~çWt/]ŠˆÛñ%š˜Ä¦ظeÓ6U ¬šª-🟤qê„UűOÏ9þ¾s îêw"Œ"Â:< HHÙ¹ºß :7êäpƒ„"~EæC¼Óÿ$;Š8íÄ×u-qòÓ#Œ÷~ÇŸûŸX¸”“\­˜R«%>\ăö.{>¥¡‡Ôó…ÞÙ÷Óƒ|“zñÑàüR ÅÇ={ÍîÁÉá¹ù!öŽã£Sµþ¦­í âÒï2Ä)o½Z!³r7&;R¹Ê+—c"D’ðÜõ ”Ê.˜7K³IÏgD¯çï´J·¯.±„#@"Z*¥qõn¸óŠQ,E,p©g¸ç®ì¯¿” þWþ˜}ó¸ŸÇ“ñb)Ôb Zâ_¹}ð¤O/†ç_~ä+îÌSÀÿ¯þ¶«`»É™13`'jŒn µÐ©žjý]ãH2~'©Yg€ÒÝhv“ÎÌzši°žŠ× Ð^<ÁMvû– v8ع­sq5Y ïær"F9nÄúôª; Ib4jgñž9º…§²«³ï''¯á] +„CÖÆ;HØwPé’ °x¿h¸ï¶²…;³…ãïóE:5«PÕ¬°+‘†hÎécªA…lŸ§#ó}ì €Â ià¢k&ö‰ÀÍ&Ѩ…°½ yv̸)àáæDˆâ".Ò»yêˆúBÉb¸æ · ¶rÕ øO+Wäî‹%î÷Yb^äîlVèñ[1öY»"wà¼lóqòZ:§þûdú3øm…‚ÐQæ&F8w‹fT0ÛZA·yXÿFWÙŸqµnaÐÊøß½4!Pé½3#`{5CVý\‡¯ìˆ!J"×Ç: )X¿Uÿ›Ìáendstream +endobj +2379 0 obj << +/Type /Page +/Contents 2380 0 R +/Resources 2378 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2368 0 R +>> endobj +2381 0 obj << +/D [2379 0 R /XYZ 91.925 602.788 null] +>> endobj +2378 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2384 0 obj << +/Length 3020 +/Filter /FlateDecode +>> +stream +xÚZëÛÆÿ~…ÐXkdpS»µ›Äir-PÄÁ“xw¬)Q)_®ýç;]r)QgÀIîcvfvæ7\¤ðO.¬©6 ›*áò|±Þ^¥‹;˜ùë•ô+V~É*Zóçë«ç¯3³(Daõâúö”Ìõæ×D¦ÂˆåÊ9—üðî/K™üóû—?/WZ›äÍÿz?ÿòjùÛõÛç¯ó‘V¹pÖÁÉHCeW\½ºØ1©ÎdOrÖœ³œ/r8ÉF,gΈ\Y:.-Rf(+ÆuƉÔiÏПè¬ü‚\ÀF&$ARë²ä›õr•©,yÁŽßðãð-’ÒÓ½êœ í„…C/3áL éYòf¹RNî¹Ø´»Ê³õ|vCæ7ªn"Ì?}x÷÷—ÿžÂ.W2|øð“üÓvÿaÝTå÷½O³ô{ 9¿× {_Îî-göæ~o>0Û;¯çª›?¨8×4ØŸ2'×ÙçJj¡ŠžV˜ÜѪ— ¥tRâC%۲﫿··ü܃¹Êu_ƒ9Ȥlà³î—*Oy¾¿¯øåó2³Iy¨ËXÒT|¾”#ÒÂÁÀ03XúzaEá .È„I´°Òõ™ ™HS`\RzöðpIà}àißUÈõ8Ú´+’ ¥•¿ öûÉI«wðÖáKµC9ûjC7°’…Ö¡¥J¸ˆŒÎ¿ šÈtÒÃ>:ÞA(•UÞ Îfôa3QäzªŽ‰¬j@ÉT»z·¦ ˆt.mlAJÌ.*QKÇJä%Ýãv :¹!Í´ ŸEšç®í‘à~›uÉ#·ðÚø½äÇwÅ'®Qµå–tË ×x0ŠR¢‘úq—ðO  2Ñøõ}Ъþ÷·<@w†ìÑ{¶B˜É’uÉvÐñ'˜ö¹q"Þ:yñ6r‚\ž}Šr Y¢VîH#gµ›' ê˜`ηlXožó{¦îUè5Kú‰ÐÒϨêðÈ3|™´çu²C:õîÎïk½‚]*ta' +îêí¾©ñn1æìMøR6wí‰õ÷[ˆÆªäÍmXÃŒh“Â)ð¾?öCSÕˆø(w~‘þN <è;æá%º^€BXlQƒZ»¤ñ¦ÎãX#íuùÈ#sÀV(a~†¬2±}ºÁrãÍOçì‘Íp=ó„yäà»=t'kbˆÆm¸ é3lÈpƒ†%=±ÍB²rª kÀÚžÔa› +ðA%ø«%×BBøcÁ?ÎÄÈ0‡À;†\'Õ®vu0ɲi)=¹²­“sAP¾¼]U‡«ðp¢‡ˆ åì-eå‡û{Ò£Y\ÑÆÛCb&( ÔÕðÌ!‰Áƒ¾'ÆM2M¬ä'í=´Ç»{øN‹Ä¥üÜTcª· YÛŽlGFÁ( ÏŸƒ'DŽÏÚúêè}ª<*»11v€#`ØNHÍ6 Nësõ4ä -3uTÞŸ®~ý-]l L{…‰R¾x€÷TH(£¶WFÈÔù¯æê—«Œe| µiQ/Ó‘¡á8Hr ¯Åý™x¬ƒ?‚¢M‘á¤_•Æ¥S1g¥Dj³ ˆw–B* ÀP˜Ùk)…“Q¾ïPµ2œò}}±`‘G,†åD–d!àÙtÜ|Ö- Ê½ b€©L&ÿåÔ¢å/²“rÛ3 I—|ÓTžP®FÿFïÍRÕøÂÅd&c[ÄÏ°µÝU¨Ié’wl¹‡‡šËgXл(IWqdN-P™‚«'’J*ÃMµ3}BŽ¯@§¹È°XŽÐ€É©äáä½çOꎰnH:…YSvÝL6G¾ös™ +w æ»»Ž)÷-ŸºªqÔ¥70_ÕhV¨U(Íã”çãk€OêS9l¯œgkÒÂéìKéZ`šº3gБ‹<‹ûÑQ‘ bB¡§ª™æŒ'|D§@¢£Ü„{þ(‰ “Ÿ4Rzx.ù,(€¡44Rbv +@Yk¾’§3^ @ÈÇÂø”€Ù`/æ¼%UœPÓ;H¸œŒ²PíÓÛíþèÓaŒF!äâ<õ,ÈpúšŠýºò3å]YMœ™¢F@`ì²{CÍÓú˜ØŒ! +øpYˆ™»9ÀÁ·Ó¡Ö2Fd`w±÷½&¦ _|\æÁÁH“Ô3îo¬Ã²1dÇÆ„¥dÓŽÞÖñõmð¥út¤¹p µKqŒSÓ"÷%=áÖ–GµÕúxèhO1^L¬Ç :\+k…Õ +mLÃc˜§8Ë©]{ÏÄ¢Ñ{N,:Þ\ dêËÁ̼y6x{R«ˆÖYðǸ ßK½è‡`…šøaTMŠLM*€juÞ'7^°)… Gð“ÅêÚjqiÑÿàŠ² +ot#H{þ.o–µŽþsSQõ Íœ¿PçØNý%>;jÀX.qpw\ß L³Óm¬oFƒ‘;D %”¿T «SÜb€‰mzÌú1(5Ô!„g1¡×Œµ¢~/ju¦0H‚$JŽ-C88Ùr–Íá†èÁ ˆQ¦ÎyiçK\Bõ¬¡V~Òêãÿ¢œ'uð1¸9 9ûmœHw¾Fl™r?°x›tܱ¡reߌå'•žõóüŸ[-‘d&+ÖèäU±ó©¶dê¡š5i:ôw½Ós§?jŸ÷yyîàf@ò'ÚÛüÁfÀT¸°&êœ×õüÀ!qwðò[`ÂÚ™|ìÍEACª†jé>b'J银Š¿ªßë®"OŠNlµ.W3:î/«BkH†åç£2Ïg4¡8sœmËì ­å›™´vÌzf øφ,XrôB]Çö7# DµB_Ìÿ2ÀK©›JpåýŠþ¯±‹?`دRVí› k°ZŠý… +‘mš`?º©×à+‘£P‘B??í/  =߃1 +XU-ÜAø ÆgÜ@Í—àJÉ&h£jÛ]~ì–Í$à9Þ€º¨Èèi6vZoIû5¿Àe_™Δ™øûSôëGÊ7ÐP:VÄnè»pwñ‘5Óí ¢«ò#eKwãÌ7î ù&\Ü[z¨‡V±¦à˜s»W‡_‘Ìð#3n¨yFr®ÝPŒbï$ÍóúPdYsA¡NâW4ù]T!üendstream +endobj +2383 0 obj << +/Type /Page +/Contents 2384 0 R +/Resources 2382 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2368 0 R +>> endobj +2385 0 obj << +/D [2383 0 R /XYZ 63.034 602.788 null] +>> endobj +538 0 obj << +/D [2383 0 R /XYZ 63.034 218.122 null] +>> endobj +2382 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R /F11 674 0 R /F13 1055 0 R /F14 1012 0 R /F1 1058 0 R /F7 586 0 R /F10 1027 0 R /F12 1578 0 R /F45 589 0 R /F47 596 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2388 0 obj << +/Length 2239 +/Filter /FlateDecode +>> +stream +xÚ½Yëoã¸ÿž¿ÂôÌãS¤PÅÞ6·»÷èµ·nûao?(Ž’'[Ž-'»ýë;ÃÊ’-AQ,>†Ãá<dÔLŸšJÚÍr©…a¶\]ÉÙ̼»RL1g’ù€æ»Åշ߇Y!ŠÜÌ÷Ç\wŸ2íÂõçÅß~ïì.äÐrÀ)Þ¾ó·Å͵Ê~½žc3%ÅõÜ{Ÿýõ?wM¶xó˯H´øp=WÙ[}óÓ»_h¡Ê>,Þÿ í¸ÛÕÍ¢—Û'r“__G|…È‹Gbƪó%[i+Œ¾\³õ¸f¿C ‚M~‡ ×dƒ5%xXPOT—-©/T£Sé©ùÜᨤìꎷߦZ{¤£²ihoªlP#´.÷£¢PŸ%ã×+îÝ—Ë®Ýî°¬Y›-pƒä.8=å.´ë®¥V¢d—üJ£»†½•¸0M| ½«ÿÍ­©’¬ƒÁä—´f,Ïæ!/¬@úÊØеÞ0HŠxŸÖêÓÁ¼êÑ4‚©2úmuÇHmpëÇnÙ÷±tG·Œ(H57º0îÝ6Ï8¹~ þ=n„¸Ghßül¬œG> QD>E–FH<: Ï3…&¹Æpp9¶Š°©ãd+ÇÕm +^OØ ¿ŠÈt]•[Zñ—ºÝàlIìhò¤¼ ­$8é‰Û ¨èô À:¤‰¤ç ¬4WP8®8EKat‘ñ.ÞNÙPƒýïét¹.¤å‚`…<|¶YÃ…S—kЀè\J$Ã*¤/U¡‹§2taã¾ILô2ð¯ÇÃ…§u[fP¯BÓßLaK4ó¹kD¶åâÍ”#Ù”ˆKôâ Сå¥2ñ4ÁÁõi§Üâ}Ý[ÊÀîutá誇qÐanÕ6ûpOä»}ÿ´€‹é³‰/[êÄG¿¤î¸ÅL€~ï?NXC„þ:wûGà·—§ 6F¸þbWŸ<¹LÑP}©wI +zâê77RBÌ£„5u”…T>Ìá ÚÃDˆúiêåà΋'ynÇ“·<ðË`Îûe2$ïxÅ%YöUÐ4ZŸ/Œ(Zõ¥ã+3øÖtv³O·ú˜Öï*Pkœ(›‡6«îqŵ ÞY†ºÅ\ðcÔžÃ:Û|RM‘g±Èáó´áü™Ñ PñXS¡Ž©<¸Ã]<Ö¾Àe ØXÃRÁ.Òè\Añ€=Hkµk.5G¬Ó±Þg›MÃ5#µ€´”lÝ6ŸP4F/ó1nË5æc“«L1 0ÊCž #•M£i]xpª]W•Ñ0t§Çï~—ÊžŒ¨±®ãÔÈDqú.´¶Ë®ùÊ”ô! QX™j-ŽÿŽ;´(ÑËšìèÛ‘ó•DAJZx69‚y7_èÝoè^&¨ `÷˦ÈêòHv$}©#ž ÃÞ飩š—×ÝŽ¦7M¹¬ÐÉ>V2&šågýJ” (û÷Õá!ï™!JpÉèjõªnâቂ¼ÒñK ŒÔ§¶U‘b 3’ÄŽ¸ªa´Ùs½‹ˆ,8ÖL4ôŠVT_bÀT›Ž(jþ¾DÉ0Q4§!ì|È&KFK%Ão´ ž©á¬ø~[·ë1¢-„W]Æ°ïê5_N£!’õ³$Ö=Ê·„ÀoýJ"™Å w¥ì9Qµ-Q0ï²·WÇ@ƒÿs €&Ä œ!g€”Šˆ.ž®>}–³; ùáJ +S„Ù ´Ã@©X])ã…Å ûÍÕÇ«¿ŸþCáÛk8Ü™µÄÇ(¨¬È»pLÀ}é†hRPm +Ï'±¡üZñ±JÈØÙì§êŸ×g€0ã€Ë>1d•=§D®Sùóÿ\©¡D¦›øŸ,ï-v$ /ü~&‚{òz†þŠ:,F›Ь0ó€Ë1ú2$<@m“Ö€û¡€ä85i¬> +?˜üVÕ:endstream +endobj +2387 0 obj << +/Type /Page +/Contents 2388 0 R +/Resources 2386 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2368 0 R +/Annots [ 2391 0 R 2393 0 R ] +>> endobj +2391 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [364.985 443.928 371.447 455.967] +/Subtype /Link +/A << /S /GoTo /D (Hfootnote.29) >> +>> endobj +2393 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [129.345 380.111 136.319 388.524] +/Subtype /Link +/A << /S /GoTo /D (cite.TAOCPV2) >> +>> endobj +2389 0 obj << +/D [2387 0 R /XYZ 91.925 602.788 null] +>> endobj +2390 0 obj << +/D [2387 0 R /XYZ 169.539 527.005 null] +>> endobj +2392 0 obj << +/D [2387 0 R /XYZ 238.881 434.906 null] +>> endobj +542 0 obj << +/D [2387 0 R /XYZ 91.925 317.409 null] +>> endobj +2394 0 obj << +/D [2387 0 R /XYZ 107.168 129.994 null] +>> endobj +2386 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F11 674 0 R /F14 1012 0 R /F7 586 0 R /F10 1027 0 R /F13 1055 0 R /F1 1058 0 R /F47 596 0 R /F20 1030 0 R /F19 1034 0 R /F70 2397 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2400 0 obj << +/Length 2252 +/Filter /FlateDecode +>> +stream +xÚÅZYsÛF~ç¯à#X &sõÉz«(ÉI9›c×Q²•ÊæA¶hK)QRd’ëüûô`À4Š¬¤\eÄ°§¯ûë9Äœã?17Šq¥ç†Kf›¿]Ïøü=¾ùj&Êy9$oŒ9»œ}ö%è¹gÞ¨ùå»®˜Ëë_2Á™f‹ÜZ›}ûýÅBd?~³|½È•ÒÙ«ï~z‰_¼þáåâ×˯?ûÒí)é˜5g2$ø0böò²VGsì†A•VÌ +|ä{a sVãsãe"¤• ¦¼CŸýò+Ÿ_ãЯg¿tóÿã3gÂûùz¦@ãw¦ü|7ûaöŸÔ‡àT%-úÐÌšn +zÆQi°À¬”…ýË;tÓû‡§Û þ½YGoÝÿFãœJo­»ÎèMƒNªdŽÁ„S´ •¬¼!,ÚÐÐG(Nkq{¿P*Û­Bð³ëÒˆ†áJ3f-F³ÔÈÜ[†!E8óÑõê~‘‹ìqþߤ"%0'D-2×`(÷Ípb017!Ĉ8=Þ‰¢ò†¬$ÀBXêù +ç``ïÒUFÞ¯·¾4â*5Ò¢7*·]Ý_p„¨¼!ϼ®^ŠÑÑ2ûž +òL +S+"²/ÐíVP"…d^Vé‹ÂÄ"—²áÉħ©liX©ÇR o)œ©åIH§ôˆ´º`”fpÒšWãþõ¹ŠÚ•Ÿ  ã~hJ,G€AŠØôŸ﷛N˜ +}ÎM˜—aôÍ*jÒáp½½»zŠß`þHŸíHVOa臡€Í*–oS7¢–u¨Ñ‚ŠñÞ%ؤ™óÖ•†9'1ŽûR/,ù~f=TB…X‰ÞÌ›R€¯PÁhŸ–Xà¦B8Àus¼¬¼˜¶‘NQÆ÷ÒzË8BGWTXúÕ;Â@¤Ik;¶ÇÓ4þ]9‚GÈlnV÷áIeO«Íö龑ÕzÿCÀ²êª_~ûï¤:ZÇ`eÉ„òèdy”²ò†°ÂsM}„ÃB×7]÷ÓBpÈ–ß•Æ1Ð =N¥8ƒV>ÊÝßtÄW‹&Bšý}~õ…Iì‹m•ï1\2–Ìf e¶ý²~G\U-þÙ`KPŒxwõ¡&Âf¥ÆŒCŽ4¤?Šá*YyCX~‰‰Á11ª1t["1”=VQÔ°RØÉ -¥jÞÝU¨àƒÍ†ºÕl(FЉ`8wÏoY§ktj™æ7’å•‚Ë7ÅÂ_?— *:)YùT*ÛÌÍI{¬5ý…6ǦEˆvb驉õ‘b +¼²ÆŽ'–H\¤iÊO˜ˆœg¤ÎNJà¢#Üzë0r··½eXj>’ªöØ yT®då aI–õqõ|ª°&ª0šú&\`,ÎÒÈø J·í¦q uX’ 43ܵäœHU,[N<Ñ’œŒ™>‘˜4Ñ1â^8OXä…,×­°™2Ëÿ{s¸‡h>’»®@°ý|ûauËÝ?‰†Íaóí4"/¸„ƒ:ö[ª€(®NÆ̶©‘ŠË ‘Q¹ý$ ¨ï? *^ae¨mÛ6S¸:öLñ† n_P†øz)%)&1õè-Qá»[ïS›d4«üÞ7i¸,3ºŠëòóPJ@L?°i!Û¾ ÌQ@,S@´þ¯îÔDVÕ{•=< -¡ f[méÙ"žà$/å¡)sFzȪ¿ÓEÅ6Ö*˜|óH^”ŽsŒÈ$)±¹„6Úd¡íx“ÓÐ0Ë-_|ý ½ íN£Ý"áºE)Ê9b Í|ÖO·†” Íž<96è#a †˜Ô 5Rå&ÄfR‘[¾ i „;¢Ê¦$=bÓ„æd’M˜ûÚg/È­3¾ßÈ¢ s†œ%,… {uï0KM6ÊßêÐR´£ºr«ç¶ÿG³7N²…;…½w{+8ÑÓ$…ëº;z1ä|jØá~ŽUZBQ²ÞÖœŒ‹sŠ¢NÝÕ‰Q\HäU +\’†3F „ˆ=Ô7©oÂéÿ›}C2¸1†€Ü(ƒŸSuÏhHïœ2M}…£‚~ÄN£pj º[=}Û傤®ŽãpÁœ´©EcÞsp­ÃJ‚ˆïarsá!“C»1&ï‹lZLšËu½¨{F“b0y;hnêfÛè³:Dën¢uèº}pãêÓ¥b_«È}e“~×j<œø[šˆÅäLÙQx ë\jŽ<¾Û¶ñôJ¤ßÓ_sÐX M«tSòþùK3¼±“͹ 2B1Ûél|™«»x"Š£ëîÓtuÃÜQDì´™ Ç-@ŽT$Rsä +÷4Zõ4­Ž›³¤ñè¬MÍQ§¨ÖÃöÍ«gôyˆ6 ñq F¶æ0­št>^¾*oR”}äû‡ÍC|Š€«ÇøÉ”ÛðJ2¯][I1UÉ‘¼W²ÜzZÅÃÉ#m˜¨·¸ˆ£hlËŒ2Øp¡Ó•?î(º”•7„¥GѸ˜Öhx5晇 doÚëL!G×äZ2 bj6÷] 謉¯¢N€uè"‰UŽoÖÍp³®†›õÁ#IË|‡„:µ{aøÄñ Õ,᢫|]¹WIÖŠDÕ¿Òïžöû8º¾¼å¢ÙH»ðºþý„‹¬5¡ƒQÊÊEçÎHSßà5®DKáp‘Uf»uÐ5°®Ì®Qu–ÜaÖžq_‘ÙåÍ-R³¶]Ý5¯íhk²·ëÇmøb·ØŠa›°½ÞÖ[1È›ÅeÀðvî¬lCeÛÜæ=÷ÀT4«ªêbtëæóŸñøJKendstream +endobj +2399 0 obj << +/Type /Page +/Contents 2400 0 R +/Resources 2398 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2402 0 R +>> endobj +2401 0 obj << +/D [2399 0 R /XYZ 63.034 602.788 null] +>> endobj +2398 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F26 1460 0 R /F20 1030 0 R /F64 1214 0 R /F48 601 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2405 0 obj << +/Length 2535 +/Filter /FlateDecode +>> +stream +xÚ­XYÛF~Ÿ_¡G*;¢ûb“½»^ÀÇØž Ž½ñl^àFœIT(jÆ^äÇoÝFÊŠù§›Ÿ¼JLG—Y˜%À)^¼yöþæj.£_æ ­M$E<_¤iýüŸ·Ï¯hSG7o®Þý‚D7×ó…Œ^ð^¿ãet}óæ-Ì? ´‹«›Vo£“Øj{öjæ;î–¤&Δ%Í÷XÞ¢ô¼ÁéÃ\eQº%.*ws墰#£úàª;³(ßá˜a5Å=“±µ¤ì$K­b•Xo®œ zšeq¦Ã鶚/€Ûêêlª¾ ¬'hBH¦ce‚K–#&ViîI¤‹nÖåo”£lÖ0Ùúû¼t^>Ìåu  ä>[(•ÅVêÙB‚e“„/×”hk„&3áج œ˜¨øÒ»|OvZñéîòú+/¯ðÞärͪÈ=·|ƒúÁ^³Þ2»»V•_¼y†¦yÁ‹ê&JFû=Àm-¨nEö©[]7tá•çpXçpec0ú (v¼Ü¢>è—4Z•¿ iúw€s +§6‚˃ê_yŸîQmQ‰cS0YØσ¯ñ|“×üÑ(ìàô€ÿQŽ¼à]Õð$ï dÂíQâÑÌþ…Ù[/Ë +‰Ö9ÉlÊ]ÁÏ’äUôù͆_K;c€Äs–‹ë»‰xlé0e=Ò8±áø7¡Ì(XAEa<•lÂv£‡ÏûÎ9bÐ|P†‘^ ‡ï¦dãá~0$ÎxÞŸ€ð¤ec›jÄ”?.>~³Ð"Ö.›=Â\ÄÒ¹ÙöBÅ.s~µ¹øpñï ¯EÙ)@i‘˜VÞþ×¹”`Ò_…cA[KaÁ¾E/Õ».$)Æí¢å¶Dƒä5¤¶&*ïüË•Iì„ÄÂ’LXiGþT.¦¾ _œÜé: W“ßD§,IÀ®¼FÏf"*ø ÏS‡0Ò͈¦ Ý(“žnù·Ë‹œ9m‘ÑqC¿§ð˜Óó0Ä +î0ÞÃæ]5·*Ic ~>g”ñw+¶»V𑘽 eHœí{¯A"=DŠaëbOתð´é9zô*9iß æàGù¡!èÁy2y Â5ž$Ñc¹Ùð¬ZZ-‚aðÛf ’(šbà&o=…Íšùx¿æõŽ >(Tû‰7ò××2 NÉhíõzFÃ÷îdk<åø¾ƒDÃW>½¯‹¼)X_Þ¹­¶ ¨©€æøÃ]Í{ÃDƒ_€Ÿ"„³S›4‹õÿƒgµèxpA©Øžz +4Àýí +¹Ñ"ºÞõL7¡{’—Þ2•$¾ïÂÛUi'À¯oØäó%åL‡Pà„ü–XŸÌaòMTí»ÔáÓ $…J IØçø‘Ï+½Øj+“Š£ÖNßS¤·õHЂcsKÒÈ·ãœöˆ81~®6†¼íßãqZ{Š™QÚÁˆ˜£Uôˆ‚×\-L®ùô–lŒO—ìÒK”òÉøuy˜J’ •ÄJ;®¤¡n–`p­¡Ðbÿ6æ…“€Ï/ (–S<›µ—œJÚ‰ ˆõ0*ÂEћ̌r±Nåtîi=¢ÓX>åÃ%@"@ºÔ0‘ߪþÏ +ÕÿÁRØ8³nfP’ûiÚŠv,Z§PÉ÷’=ÁQ:É>;qG0#õQdžjuÜàŸ¸têÇjµb§<­û|xŠö¥àp—š¢æy]ùOmbµƒƒ|uî‘*7á[r——ï½ýÝ>“&œ±g|(zh1á3¼ØçhXÒ&¿B½ûI×jù¹VO¾4}úÒÊ]éXSl÷‡¾åûÐî±ØA…­÷Dƒ¯!±¤W½Ãÿ%ÐÖSendstream +endobj +2404 0 obj << +/Type /Page +/Contents 2405 0 R +/Resources 2403 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2402 0 R +/Annots [ 2407 0 R ] +>> endobj +2407 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 0] +/Rect [367.84 561.874 374.814 570.287] +/Subtype /Link +/A << /S /GoTo /D (cite.HAC) >> +>> endobj +2406 0 obj << +/D [2404 0 R /XYZ 91.925 602.788 null] +>> endobj +2408 0 obj << +/D [2404 0 R /XYZ 235.508 441.326 null] +>> endobj +2403 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F11 674 0 R /F14 1012 0 R /F13 1055 0 R /F7 586 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2411 0 obj << +/Length 930 +/Filter /FlateDecode +>> +stream +xÚ½WÛNÛ@}ç+ÂKdÓx³Þ«Ý*„ª-—Š¤Š¢ˆH#çÒDâã»ÎŽoØX&¢(ŠÖ—³3³gæÌ®ýV?¿&(”Õ&HAív¸ƒk÷êÍ×@¼¦ÝÝirV Q(h­{·n¦Û¿t|Œr=)¥s|zàúÎùQtæz”2çÛÉEG=8ûÕq¯ºß›‡ÁÊ%’B*Ï™ "ü ±Óé.ÃaX ÉxiÄ9æuÈA-PžD!d. +ˆX¸S÷®GáÎàÎõ¸ÿ`Ž³ôƒ–†Ï½ÁÓ`ÜNǃ PŸ5²7©ÏRŸäÓF¶š§8 y¾¸ëù\rìÔ£|n;Ÿ²Ÿ_ÀÅÉùÑ‘òãgýdB9þÙ;ýý^¼X°©,I F8@ç +,x9ÂŒM¸#;i<ž¤OÚ‘âà‹u!ÒâW"¡Üh·÷6·` +¬æCÈIsOÇ132q ͧ7zØkÚ,2\=Ë·Éó|ÊÕgÅ\ˆj¹ „«JR3Vå +Éûdœh'½^çìÌÌD`òN™`t[†nr†æÆ«ÂPæïÅ°š—kµJ/‡Ip7ˆûWú>çuÖî®ÓXu“Œô£xƒòÆñRƒ+=^çi’î–|`IgÖÂF+º‰­ÚK ·õ:$\5-Ç2sn™¹!ɪñ +”eæBHóz ªŠºˆŽ¬Ùæø ¥amŸo* P!'Vót­4(”Ƥ5ÍL[ùÞµ|¸j·0\í·2êqã å—åš³m¥[Ÿ-w®m´K±¢B–¥f¸ü-)ï¤^.·&i¹½O?¤à-$…ïD’È·IEÂ(8ˆ…[ƒPç¶ s6Ïý«~ÕÇ%gœ<¶ØšÀ²Ó§¯\:1ˆ Úïh½Åö“2Q ¶ ¦6õÐIåNè‹1AJª!G˜Á¨†ÕB}cuàuÒ$¥k’`¦‚úƒiט‹ kI“-Î¥„1$eX&@˜1+!0Iª AX„À$Â’–†!‰_NÌm<ÒC’BÓ6«,é÷aÏèZîåö´Hß’–E-Íh nܪ_^tG²Ljÿ·]´+ $(§*2J) "ú´8+4Ià «€h{O3*劂· +%|m²÷êk-Ú¦Š·;ÊHÕ©U_WUªXZN¬\ Èb¿áÃ6䈒Ðö}LEÒÏî +/ÿPª`endstream +endobj +2410 0 obj << +/Type /Page +/Contents 2411 0 R +/Resources 2409 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2402 0 R +>> endobj +2412 0 obj << +/D [2410 0 R /XYZ 63.034 602.788 null] +>> endobj +2409 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2415 0 obj << +/Length 891 +/Filter /FlateDecode +>> +stream +xÚ½X]OÛ0}çWd/(aÄõ¿51©M;`ƒºìaÚ¦j£*í@âÇω6NC(M…ªÊŽsr}}νöMÀÃúž¤"æq!!¥wvµ…½ }g ,"´°€é$[­ÒSHqâ%çe+Éð»ñ(ø™|l}`t“\÷˜6›"âƒöiÒ Àï!!ÔŒ‚PáþzÜéeƒÄOz'ý”!ø±mퟘÁ?LŽuÿK:ÛV/™ûM Cœðڥ嘥µ1éIí*/,Ž ŠdÄ3×±àAHEÄüñy2ÝþÀ §ÿ›Ñ­Ø3ÍÕõàvú{I=Þîìšíû¼ÓÑ÷ ý›ë7öéãÓÁɧö·ì†!S-üŠ8A+Ëæ¹sD¨©UúQãºBN0ö/&w3Í`Ðë÷ߥ´1,—çeQM•™ö¢bZ p ©eCT ,H! p IM!á‚ù­ã|Ûá»ÝŠ,§g¼ÓŠLg'U UµV Öò +šdzATRµ‹Ù^GLJ‘µbZ„ësdãp1%iª´†èÚLm§Tu…ýšL±—0Å7­bÙˆ3UcÈ\C²ÒOè$ÉÀô +šfÿßåøÏÈŒÍL3¶ÒŒf£¿¦7Lµ°\ìT¦„ÂÖ~Á\ª¢Öu|»0” ;[踗éÈ}¨V¸B”“s„ë ”2Ÿ!pVh£g6Oõê5EÍ‚w–ïìõ‚W‘U‚×f§¢ +^Å–·däÔŦ™Ü˜¶ëFÚ$ °¡¹¸»Ì£å Yx…,YœM†Ã‚q9̘&Ú纕êV<´ÑCU +PNUì„RêDüö!r~>u ž!ºá½AÔò$W¯<~9$dõS¼y'~½ÊC©Õ+Àx3•`X³TËë.•jÝW# pôÂHS¤5´¡ýCŸC¥ýÃMŠ¸2ôUmæÍöï¸Q䯵«€å¦øW͘ê6 +ùõ˜ü¦6ÄDO”iò¹2­´Ù©8‘h©Lãy™–+35Íû=§ yæÌ`ÖnéÌ<»º.H9u +–²„©Ðƒ£ä‰JMH$…¨«Ô,Âõ‹—ê„›½ +íZw+ßãLœzYý^çີl‰ÕÓÁ= ƒ\3˜S9]'#E h‘Ìâ÷ +û™A1D"Uõµ‚P‚¤W…›ÿøÌþendstream +endobj +2414 0 obj << +/Type /Page +/Contents 2415 0 R +/Resources 2413 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2402 0 R +>> endobj +2416 0 obj << +/D [2414 0 R /XYZ 91.925 602.788 null] +>> endobj +2413 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2419 0 obj << +/Length 789 +/Filter /FlateDecode +>> +stream +xÚ½WÛnÚ@}ç+Ü—ÈŽêeïUyà–ª-iRJ#Um…’à¤" Dê×wÝÅ6^h@!Ë{Ïœ33‹QõœHhÀ!BÊà‘ÞùXCÖ"¶&qÁ¦Ù¯ÕÏ Pœýûu7ýá¯A@A !‹Ëv„ÂÝF/Š ¡á§¯×½ÐûÞ‰þô?×Ïeîˆ` úÍ™ÌIfQëôWp(ä@P¶±³©B–ÔoâÈLP 17‘Œb*0 GÓù4Š™ ^ïC†BûŽuPŠ)k¬ z=_9¥@A,ú‘Ý/¼4¶%GúÜc¤Éâ‚…ã{ƒä7d0»fIjÎÌíéy.ns›“Æ{39i½xxÒÐë(»ÌÆ;ûäÅÕàòKãçëF%Ì(@ÊÅrï‰ÅY”aã(ÄäPR¯{¶/…MGaÛQØ<…¶p0ß…Bq( +eÕ€ë7:R€ f·“Ç4ñP@#| Õeu«Ÿšð—æûf +U«¤h«dã*¢mÄ<+ÌV6Ms;­ûX&pßLZºLZ¸LZ¯ Ú!“>P&âuO÷¥°å(l8 +[G¤½…B[¹„ŠBá¥PîKaÛQ¨³…«æ¶7ô¿4Ò5èj‡L¤ð@4R´{O‹­AÙöâ$QŒ9Îû”Óe2›Áßdf£ÍãNçɳQ“Îþ–C©u^[ ;Ns§¯Ú.rϬ‚ÐiWqêNÄÎ|úìÍeʽÄZÈ“é‹Ü”û¯Í±ÛÒªKÃÑÝ°˜‡£Óå¶öK¥wUm YÎgKÎü!™¬F³Ä>’ËÆx²Lfi² ƒ~aîô5ôt~…euØùæ¯1$õ©)·Õ˜³(sÿ×Û~Ýu£ë-5†+ ±¹.9P91ïß5Æ6è9ž§.W-ÆG—ukÙÜeÜzzy?&U•JÇ +¬ÖÏE¦ÎÕ Ûß Â@)µMkQŽOØø†ö}3,ƒ¼-öíÖñú6ÓG'¾-?<_DŒ*E1?Š_sö#L1@°ò}ËJ€@Ù¬°ù(¬Wendstream +endobj +2418 0 obj << +/Type /Page +/Contents 2419 0 R +/Resources 2417 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2402 0 R +>> endobj +2420 0 obj << +/D [2418 0 R /XYZ 63.034 602.788 null] +>> endobj +2417 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2423 0 obj << +/Length 2464 +/Filter /FlateDecode +>> +stream +xÚ­YY“ÛÆ~ß_Á¼¨@[„0.§ü°º,;’¥Èt¥R–K’X @P¸«õ¯O_v+©¸TæèééóëJÍø£f©òS΢@ûq’ÌÖÕU0ÛÂÎWJ(B²8¡y¾¼zö:™¥~™Ùòæ’Ëró›§#;ÿ}ùӳסè’F!°EŠo®?,_Í•÷q¾0Æz*ðç‹8Ž½Ÿ}÷ü-oùæÕûH´üq¾PÞ ^½~ûÃ{>¨¼—oÞÁø¼íêÕ²—ÛšÐLô¨jŽf¤[˜Ì5:Q.Œ­ŸèˆDWQ Ê¥‰ýæ¬ÜVöOø,„`Š¦ðeF + áÐùªž/t¤CïÙ7óEß®®y°*¶<øæÙäA#ïvE™3å§ ªÃç5ü­²-Ξ¼x*ÜЀ°¢xú—ïùûîÃç·KZ)©ÁPVYÑòfBKGq.—/l ¬‹›A(üÛä-/ÈÕ d{\‘äo'¨|Ÿ¼@±&%~ÿ·ë> sh}•>*³PœËΑ o[wbýÏŸ_}üø×IÃGã{ÃÈ·S„œ3ŠÿßÈJ„Q2)gzY/øSˆöõDÜN§ØßæMK“訋a +ÞË¿®wƒ‹ûH[£k&-+9| +âÓéC *ŒÅ#ßax—yÖ|®ŽeWœ\ÿõ)ËýäÞÐÑ nÝàÚ ž÷Aæ/eðó¯oß>¬€éèŽÍžO€2ÓÄv">_[{î^{‚® !€0õUÙûÍ 01Þ;M£¼Í±Ä|)øôÉa¼?ñMÂ÷ÿcP™#%È©ã€Ý¬cåU¸XãxQyl™—R'ømýиˆ^ît#ÙÅ€B¾È2ñPÚ³ënçaäeM‘­ð®|ê.€æH ·ëÑ]`T°¼lgû͘¨‡Ú›)¡qVÏ‘ëS ìWg#¹ÓfÖðŽŽ5Øtëx½É¿‹9~I p”Š ® ž@íCº1Ä$Ú[×dêлœ×:q :´ØÏu +ö«‘{PÃ*Ý)àhÖt@_¬q›|‚Ÿ½çqÖuySW ¼[¹M$iÉåå\õ·áý§²¼D­ê®d{¤a>ùØØÁ™®*`–q€(ëíœöí˜ œÇ^Ràdc‘ö`ø=: ñ·5 +WÞùÚÀKÏÇ,•oâøÑXJbl‚Ab£ÓXBq(,š“`2FŒÝlí7L‹Ýå¼5ŠØ#_É~}3!  µ3ËØj¡¯#' /A?Ž•8Ž›%姆è)·uST¯ÜdmwÙc)lèâpf¬"ˆƒöéËÕo¿³ ôZ?]¾I“ÙŒ!YÓtV]i?$âYyõËÕ߇^ÌñZœ0»ì3UÂCG‚"W‡K©t`éâ?C*Çë1©tÀÆgR”.·ós`eK4j^¢és¹É)›;±>®e‡.£<¯÷¼ +~ß`.£{vÌ™Í`ãÛØþ)fp¼3ƒ  ¹pÎf ø3Š«É)pÜ¡N°ƒJ–J.?p6ÀiÑI.€êò–¶LN©Ãœ7S úJ«/aâ2¦žbR§Écå%µSš¼ªç 9çôðÜš’­pºvº¢*þÈ:r7*pW8Í K²Š?´éyqÀ ¼d„ Äæ¦æ/Å[] u P%•÷¹ÀÀ¡s‹_ “/­KL8o#© FûÚp×¢ ö¡¯VJ[ïCST¤Ùœàˆ¥ šºå<5^ÞvÄy¢¡Ñ·Z‰ã@ÈÚV„þÅ$GSó"ãhGRn§b Ñ~¨13ñ•>kg€'iš¡6¼ÐÉe+ +mDÏ$¡’Û HŽùÎ9ÁqØ2aßEÀÚ÷o‹¶X•ÒfÁ +í|ãHJð=S×]ßÊ5¼Í¹Öå[Y¤@I! u|'С#^r$ì¡Œ‰,—Oô~â]\²"N³Ž]\Þ ¡1‘÷zBäkFáTÒäéDÊÄÊhúˆÁC«†ÊõÌ‹™=Ú Å ‹‚µÜòBH®Eì>";²§é)4,Ò.]¿ƒQÄŸ>£Ü6¾N\ šh7Í™¡7’iÎɘU9'ξ¼ç=rÀm±™îªRô8ù/‹úÂZ Í è*¼×5[UÏ='œÁÓ×>æ“À˜ón+,hE=ÖÍx¼¨ž3çŒ5K}­ôÿx«Žc7s><ùqÉ„'ÏOA F\-8_Fº húóVýàH2Þ©„é>ÏT>Hð Ó +]¸Ä ¬Èáž:ïzÛdÐAKcGÀ-m±É~úÈb&üàäVʲƛïxŠý➀2òrã0õìøÍ¡áæA9BŠ ¡ªÞÇrön—ŸãÈöüò±ab©~8<4…c'œj9Ý#$¬q%[£Pÿî;ý‹§ÇŽ,šåž—2þ`;O„)œ¶G Cï_ùºã•Bè×Í=Ø…X‰—È=V¸+–nxc°EMÁ«7š¡–¼w”Qâ¢thÐëÆÝ9Vuz Š·è™‡:ÅÅ®jÝk2ëø¥(-½ Å89ô’V~ èëä†ò&qÝ>:¡ªÂ“Ž…+MäÚ‹!ï…V²Ô+Œ=DF! ­Á€Ùóh°šÉjè\dLROȳ=ï]b;/¶LÔ¿°QåºåŒõB˜£Ž­ÌË|®±!¢KñfFl¼7’‡HÆðÝ<ÐKT$ _9 äÔ¥s`‰µ¹šNhö=|œu+¼(§ÎóWúJ管|ÅÇ®T™ U˜ ¤دë¦÷ÿºcœÀŽëq!•²*P—©pµýOíM¦FkÓWø8wa±’>wYðK‘Uñ¹´W΢ÀõÊ!S'Ê!{|á—è^iåÅcv(ò RöA™Æ‚8ŽøêŒghbe¥lb….h8©x“£€XÔ(¸¤ŽwPxüö€Ú¸k«bKhÓñ”@ $»£ð+åúÞ!8q½¯¿Zìά¼[.QÄEŽv +8×ôÒëEÃßéIÐÿü+pû±eÄrà…¼JTÝD¦Ðɸz¿Ufì†ÇÒ4>‰<;c?Ô hf¬(¸³œD½*+©¢·—C”úAòðSJºšl»¡ùqOPZúr„' XÄ¿|ˆË ¥!ýB3ñÿPC~¬pv²ùmœãendstream +endobj +2422 0 obj << +/Type /Page +/Contents 2423 0 R +/Resources 2421 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2402 0 R +>> endobj +2424 0 obj << +/D [2422 0 R /XYZ 91.925 602.788 null] +>> endobj +2425 0 obj << +/D [2422 0 R /XYZ 91.925 389.78 null] +>> endobj +546 0 obj << +/D [2422 0 R /XYZ 91.925 301.808 null] +>> endobj +2421 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R /F48 601 0 R /F11 674 0 R /F47 596 0 R /F14 1012 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2428 0 obj << +/Length 3504 +/Filter /FlateDecode +>> +stream +xÚ­Z[oëÆ~÷¯ÐK + 7{ßeТHГÖišæø%·Z’-¢–ä#QÇÉ¿ï\v)R¤76 Xä^†sýffI5“ð§fÞiìÌK-BŒ³ÅæJÎîaæW*­(Ó’²·æ«›«Ï¿vvV‰Ê›ÙÍÝ9™›åO…’‰yB(¾ûþúý—ß^ßü0/1ÅÍ»sUÜÌKU|˜ÿróÍç_Ç%££>À£‘ˆöW\½»éø±Ò‹`ÝE–óšÏ6Ì”•s=¦]°"jÏLcRÀ?'ð§´>+Sì›ú˜¶ø{ó©ùþÛmGìËY©¥J¹›y„½°’·GW,ñæSsh`/ Øb³B=Ô[¤ÉKÚÿÖm»Ú<¶iÇ—´áÓ\Çb…»~PÆŸU"À?‹zKs˺MÈû ´Dë~µg^nq,‘;lê‡EÊ:‘Iœ QŠE“ÈÜ¡= ¡ +°»—¡¸¾ÃU¡h×iy•Ìf…ƒ¼ìv^¢P¼t•$dñB±l>ÑÎÕ’ï›–×í€éªøÔìŽùáyÐEýìÒB¤€ú%‘ˆó¨]ñа^ÂSaŠ•Úlïy,k ¯Á¬ð@¼VÅ#\îqý ­<ªØE”:ùˆò^Hï’‹ÿÖÓº^Pi-8/ûYjK¼+-¼¶³ THìŸGˆ°Ñ„™3QÈP¡ó¼úé9[B¤|s%…©âì ®¥PU5Û\9|ópõáê?§@ʤÊ- +¤¾<§çIQIKL#ñ º]£F“ŠÚÙ­e•’;ní}Pee?îw¨zv ÒE©1Ø|Læä~Z¯ÀáÐ¥üê¾Ëg_¥yäçÏ|À¹ªø'=íiŽ^“ž™|ü3ô¨ämèv \³Ndz'™pˆ‡>,yd¿úxDžö+^Ÿ¶‘íÖ8sÛ´ä|'i‡^[ovG–ˆQuwÇ¿- B.Èõaì‚,N$Ÿ±U%Lš»g?¥°&¥/"ª\lZu½=´«E“À”*îø²‡I Æâ=w8#cÍöi¨o Tµ2¤Øx ¹8èVû4Gc»}Xµé•M]ßÒúD‚4Óò“v‰OÝÍêÀ*+*kÚÞÔ9êuè „n:ÜAd²Ú³¤†ÖEÇ,¨MñüÆk™ÂþŽø&†ÉCïyº%ÁœOHZÌÏ¡Ôa¤žò6ˆ&Ú¶Ûæh›š7Ž·ƒmZv—ž²&]DŒQüÕ ÷i€6×Û1jwxMðä§áIÙ@±jCÖè×ÀS&Uöhàéô<)tˆ±ËGU•œþϘˆ@7i²Š\£Ýïö ɾáÁ^–Á[àLÑhsǤ’MƒR~áÄLëæÂ{©$Å]e ¨QK1Š¢‚à ]mù²IÁ‰.Ⱦ&±cð³HŒ¡×qŃ“°s»k{$:¼¤¼”ƒæ 7¨9Ôd +˜íêg©l‹c–¼Ûu’rÔZ¾ëO¬ë´ïúTõ bCs)Sa$è®”¡áOsç?Ž«D¹I¿w5áñÃo¼YõHrѬfųà€åì#/‹“ðH„3ãÙÚ»Íc½Ï1´ä *ôLÈqH×»”º`ºf_ƒ¹õæWÖ-Ov±’áT‡Ix³l‹ã¡C%Ü@7ø Ý¾Î@B€% Ú¸£@\tå[BÏæI  ™8ñáÕ)‘I ·°sÕ]N„E‹Ý¾“}Ñ’^Žð$Ÿá¤I´î›\µÓÓrÄk5ÆQ]It]õ'%/ 3/ª`™ÎÎŒ¨´IÝ S‘§50T"òň‚Æû4«ô¨ŽtŽŠ+‹ú}˜V ²2ÏÔ‘‰TÙÑb˜îqÚ= z7X °‹ÏXÝc°¾§'§ÄVÊ mJ‘§ºÚ©‘ñ¬€ª–Yþƒ¡bd6æž¼}Íw'.lŒƒV6æVöo›*‰cæã3$PÞdgìº!¤Ouö>\õF)°»UFxËPûî¿'Yž—9–6;(Íö¹ÝâØ2¶9ö<αžÈ¡nl*+u¿ØÅ(îj\sG°’ÊÏu"»§úà>¡f¢½ñs9ëo΢ š准Â=¢Ÿ! ¤YƒØ[™A¶ú2ÓÖ†>’!ŽýJ¸Psvüšª§µ·Ï‚AæÊûWlf|a$?‰« ¸¸¯¹G¡*ÑlW'æÆcª\„Õ¨ÿãž +ALD¶3x{à‘e³¡Ê´9¬»:BÍ{3€É;¬rJƒ2ÉG4yC`þ_..£¡‚Ö…¬°)eTÛO)ÃHÛS†SE…Ê01 Âιç!€í–[oà†:F¼‡Rbχ©*Á‹û]n3hëŽG»HÂAÒ, Ö[vr®¬À|•×Àõ‚›8RwäÍÇÃJ°®·gn¿¨]ïe»¦ìÛæ–Ž¼@y»Íû3Ï`W¯¨úø0çÖfÀl:Ö®‚2;^H?.Ä“’uˆÔ¾Lò %¯SìržÞRÎ,µBK?¨ÍvAÇ2:»¤”÷§EúÊ;¾[7÷k¾â‚’¯ßðj…’mOAX>œªç_)Üø(GQþ‰—>£â”§ô*›jfðˆª:tÈp†kS3\_lsÙÖÝIÁЕTÂèÉß}®ßÆw£Ü)­ÐÐPã4©¿Ÿ=1Ù„g’g¢Uöˆñif5-!ý‚½òªK¯|7ò {ˆHf%v>bô‘‹£Âvé·Ë² M7¨œS{^Df9kZåf; Ã¸ ?›8YžÁjŒ–Hh/HŒ9÷ŽBådÝð »t^Š×F_ñVÕ¤âpõ +¥ò’<¦ìñC¶ë{•‡)ÈjyÉ ?/BÒ´þ-Ä+3­‹¼UJD¨‚ú¼µP*•RÛE&A3;‰¦É'%¸‚ÃÉt0€uþþ0ZP>VV¿ ´ŒèƒXy± +.„V¦5RAŸ5ãŒahŸçB+˜Z} }sÁ\žPæHÓ?Tœ£ŸÉž^Yè*ˆItâ݆·ŒôÖF1Täç+¡@Q‹ Ü ü(`\éi5V^8èAJäË@òè^ùYåxÆN(¹$2ˆ*çSâ/1Ña—KµË†êÂi“µ½ba3>Jîä¹Ló® ¢y.R™VÙ#ÆBôøQÐÕ…C§zl"\¡²¨´­Ë ‚)ô.}›Ã8;ßHo™ÖE¶0;É3½-ó›´Û‡U²|Ï]LÚäÎUŒ=£T<—Š6 Ó94šâñÈ™dDS;Õ‰&”ž~Ê©l8†(|ð/Ø€/6¦(™VÙ#6Ž §„Œ¶{`¯ja¼ì-¶ô†e¨'ônì½Nj©hÙ¿í#µo:1Ø »¡žûÏóTUðôb¼ßV½:3z<65Vã™çˆÀ½vèSù;›Si…¿‚Ë!†Þ’ +˜ë^$X~E`SŸº™çÑê\”¬>ã[:a{j« ÝBQLü¿¤•#ŒN`ý `õ[kGìy\µNp`©äÚØ-N™ÀøÜt7¿Že„emÖÁÝ~·aµIÖ2¿‡QµRÝ%o0,…Škø‹÷0"ãD•¬À½bbý5q–•%RÓ@nM¸u=5}˜—.3ø#¾¢)ÞM@F*;ìr—ÊWV‰jb +?P“ámî…—‰~uš‡|iNGYVNPPP8¸—Å CmøK]ñãÈcÁøÚXÐ…zƱb/«ŸÇ¢¡{üŒì¦¢… óÏ9ãâÛ’Mn)†¹ RLåÞBÈ2ӺȡVZœ1ˆ2 +b׉ +²#Jõä©œ¦òφ:8\·&ŸOâQŒÚ8v;Í¡y=¸–ÒîÐýü´ûe@ãxo×݉€±Òƒ<Ëþ‹¥rgZM#èÉßÏðçäïIt€=ÝXr¡™ÛïWíq¿=Âz{"è0Ãe@{ÿÝTGeC¿Qô ü%jó|G…´Ê1öÛ/єа7¯¡ ý¯/çC?LÐ)e¢3ä×PxÜî†y^‹IøÐÞ¿Þ 2ùD7)ë\2……:²«&&LÍrXQ¡¢ƒíW™"Ñ*{ÄƦ€. ”›—üKLd~ æ½z]ê·ø²š¾À2ù‘¦¡,™J«Éö=­ÉKõ¯±º?îÓÉ<˜0|gbÚ±^/F§ƒãê_ÓX(8{ýÙÖ% ´‹”·û‡#oÓ¾¢W‰¥•¹ü¡¨²žÚÅ©³”(b.sºÊ‡% Q©sCωãþ "ÏÅלÿdZe؈g…o&Q£=¦÷“‡s¢-¼ g‰ÖeÎ ßh¨OûœÏ> endobj +2429 0 obj << +/D [2427 0 R /XYZ 63.034 602.788 null] +>> endobj +550 0 obj << +/D [2427 0 R /XYZ 63.034 584.788 null] +>> endobj +971 0 obj << +/D [2427 0 R /XYZ 193.118 160.076 null] +>> endobj +2426 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F47 596 0 R /F11 674 0 R /F14 1012 0 R /F7 586 0 R /F10 1027 0 R /F48 601 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F23 1211 0 R /F64 1214 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2433 0 obj << +/Length 1633 +/Filter /FlateDecode +>> +stream +xÚ­XmSÛFþî_á~éÈ :îýtM3$5 i ip?¤„a –ÍØ•DBúë»÷f°ìÒ ÃÀÝÞ­vŸ}Ñj2ÄðC†š MÅPbŠT– ¯W<\ÀÍëñ©gI#ž—“ÁáQ6ÔHK6œÌïK™ÌÎ*åèbòöðHð–/“° Öp¼zóâýd<"ɇQÊOF£T)•¼ûóäåزdòf|úÁ0MŽG)I^¹Ó¿¿>u’äxòæögFÛ`<ÙàæL Éä^ÓÏlŠ£ŒJ‹|U¬s¤˜»uê–khº8³b§Mîl+Ö#ªC‘d‘WÎ3„´Zň0æ]³v 1 +Ä0ñ·Eí„^—«›QJ³¤¬‹ÆºýÍíÝe^ÍIYhXîѦ‚}1]:ÆYÔ—¢.Êu|ÔÔ0ÝÒèN …=W°Ñˆ<âÈ<³Ì=·l¹‰Bœ¨?R.drµ¾B¢š …ˆHpü߃ó <œA”Þ0b:~…=¸Eëájñ1™c©åàlðGÅ +„Ù(v`1Œ0G0áf gˆãìqyYû‘q‰ˆbd7•qï*ß'µÍÓGçeí§(¢ Î@«·)HÑÇÁe%íG•Q„áùÕ¬øâ€Á+f6WË]ßGi +çCÁ9Ò¬S¶jƒgM#^‡#kq„ÚàY LlÝ)4-´?U€K(‘>¥‚Šd–7¹y'óÚѦ’˜ª‡£×M¾0¶äUàð«1´.À_žÿeôŽÝdâ*`,+·®Ë¦W•Þ¨ê¹¥¸ ¤Î/¶ÊëÛ¥‡Ð”nÅ]¯¬K©9pé^~Ëë^…$(<콦>"ài'gusi­½,êËŽ“eò ×VoÃô`,îlvÒÑésƒ2_/u›CP[)䙫—såXêºà9Ø&ƒf»Ë«* ¹{Ök°ðœ`ȬXÍÆûýì½yL•Òæñ|º=“ Îý®Ï¼'q蟻åäýå»Ó~Dºï”a/lÒÓ«¸ëÅÏ‚kÜús”ð&³LÒ7ŽÏúÝ«{báƒÞûÇÞ—P +I w ò ]A´¯sækƃ ãÿQ¸[{J˜ic eÖ~l˜˜¬aóO•n½²`ýÃFôÚß…•¶žÃºðL¹ÚjÆÚYŠ%¢8{HŸª3ÝߧYi$ìþðȤ@ŠÓ>רÄEc\®Ë[÷€³6SU Û÷™DsDûÔ ‰LÁî{ ×Ê65©½³54gHÀ¼8ÜHcFΞ‘†rUÿ1ŒKƒ¬}ÐÌ´Í_›ñ»›çÝû`FäYnrí‚}Ë°v[—ƒ°™—K“âåRõk;e³Ä€)¤g¢fI¬ÿÇ@ýÐyš(Ž”~œqº•µsšö,~d]YgÝG&’êqyQ{‘ îê ƒè"@¶k$’Ã)4 F¼»†ÁÀ†A7d\—ëº3¢ö»í¹L–]_„óöÇ,"jß·ß1lÍöK‡ï0ÆÔ·t–`1!Ü c ß¼Œ‰_#‚˜i»¦Ï žÄrIGÔQ¤žŠè†ê˜ˆ±Ð£ˆ`â`çDÔ³øi«ç,RÏc”> endobj +2434 0 obj << +/D [2432 0 R /XYZ 91.925 602.788 null] +>> endobj +2431 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F11 674 0 R /F57 1167 0 R /F56 1170 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2437 0 obj << +/Length 1484 +/Filter /FlateDecode +>> +stream +xÚ¥˜[o7…ßõ+ôeD›%‡—%ú¤ká )ÒX@ÑA¡Dr,À·Zr“ö×—ä®äÏëuQ 0àÝ!‡3‡äÙ3"Õ°Šjè¤¬Ä ]¥K_×ÃÏ׃jø%öü0P­Ç¸uÃgº¼^Z3 ep2\]tì6 +U•¶½÷Å»÷go'?ž­~E¤X-ÎGªXƪ8}\½y½¬#‰®Kï|L‚hç“Ç`±:á1•+½±ÿ +ùèós=¬c&ÌÖ›²Ö.§«´Š¨¬·Åw»‹›Íöb4¶Úoßý^OÏV IŒ?Ž3 6´ôh¬]ô©¾UU-¯z}„>áU4SÁÂH‹<{ç0&Bƒn“y?SŽž2ëtÙ0Sh˜ÑuƬsFœ/û!X@XpÀ‚q¡aALKâYbõT¥hø~æ€$JOâC¡{™UÓU„Æ |ok `ÂlB”fÚf9iË^ËqŽn®¬n!@p\Ï9ú.Oך®5!B¡wm¤R\Mw²ì@˜2öÔÓ ZrYÍ^€ aÆ Ì˜•|Ïæì]‚–·ìgˆ@QÔth ®Î$¥«ì!Iµ¼° +,-Ld.ÒQ[OƒÐ-K;Û‚¥G;fõ¾¡&„šs­éJnêÐ/ÛÁÒg=ar3C˜ µVO™•jªgýš)®·Õ؜Ӛ356#/5eU/‰e‰Õ–$«} XRa´(¡<’ hÆÖX(OcÚ+XÁʤŽ¶¶Tj¦—âÑ÷¯‚`‰çÄÉKa•Ïj&b•2K&DúBa7,!ÙdÊѬÖÂŒ˜æÌJB uMýŸª` ´V²ì®µÍTžF Fõ –`hÃm4“d:‚0‘ b^€Á2†¡È@úœ!8&¢ÐVVC]3õ´‚ímŘ?) ëmFö–XC3¬ªfÖ_Ò ËÌžŒæç¶aÁØ,¤æ w–b«~17,K~YR«ÑæªjÙëip™euè,Á²š˜Y7-ëf†@ÊXGedŠ¥`YÒÆÎ9nÑOG Á²üIf©QŽ’äž™âH §€ÔéV‚åX‰áXÖ2þþr¬sÎsõ!0Ç“îöf³»èu±Íé<Ú§Cs¹ïâ¸OWí˜Ã:¾îÓ5„RÅ/—Û›6Tû¼¾ëÞ.ˆVe-õPYWJ°éâàÁ‡Õp3¨†oUl¬‡_ã{UÆcÌðz ËP‡Öºœ~~¼…8Æ#X¾…xrÝ‘nü)_Z‘MšÂ—]»»}3k?þ”Ú­yu{“¼ò¾E*©Ò‰™Tܾ&Jî¿ú+]¹ÄQ—Ûæåî>¶î®óÂ‡»´ð·ÉÐ…Š¯ñŒšß¯×iÛŸâûbÛôìRìÏ)ÆU|yØl7ññªé»ÅÎÅ—¯Ç=É›³í‡“»öÍø‡Øò‘S¡q^ßçÀG¦>Nõa¿ÝÄ=vÎÙTù†@™MG£íøsdm±N‹óжÜ^4L5ؘxš/Õ‰éïÞ'ˆgoã¨E—2Z\ñź4õ Œ”&º÷RækŒ`™2„m¥ñæ”0> endobj +2438 0 obj << +/D [2436 0 R /XYZ 63.034 602.788 null] +>> endobj +2435 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R /F48 601 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2441 0 obj << +/Length 3044 +/Filter /FlateDecode +>> +stream +xÚ­ZÝsÛ6÷_¡é‰|@çòf’ƽ뵗ènš>Pmq*‰.EÅMÿúÛ]hRŠ3ñxÆÁåb±Ÿ¿Åg þøÌñÜ =+˜Èµ³ëí›Ý“/x ˜’yBóÃââÅ[;s¹+älqóËbõ[& +{ùûâ§oµ:ÒÙFØ"Åëw¯~]¼¹äÙû˹”*ã,¿œc²ÿ÷çÞФÌïÞüò‰W—sž½ö³¯þõã/þEž]-Þý ã¸ÚÅ›E/·’:/dqvk‘f´7efö¤u²;mTnEA²sKæÿ ‚ •-Ö(M½½t +Ç Ð²”ö>]ŽÖ×:gúŒçÊ>‚úÝï1½2“•ÍŽ0¤q\´i)íµþî~]_#ÑÚß®ÐèŸêÞz™sgs(OœˆPu^=8êñõ¬Ü­Â`ï¯IN¸¯‘4…È¥yT*Ñ'ÓšQÊgÝ{-ÖáêO\¼H®®óbuÍ„$RÍIÌiAøH“ ÌG’—_Ïü"1P¸pcr¡µ®&ÂœUê3¹ß‘æ~ &i¶w”Bš}Ýa¾·Ìç{•ÑÑñæ6ÄbxvÖï¹’äÏg:&˜U(Ð6z+±ß5¬A€2ÇŠnù8Hp²ô/ú}Um´† +,ÌcÅkÖª¼`1ù*ôˆø‘27RžN+ÙBœ‹ðæx’W4dÈ+Œn-ñ¬evMGu®—¤'‰…6×ìÉ8¿ÜâXÆƬÄí7VnÍ•»8Yº­|²ÒÍÏÕnã’âú®A5ÞcÚ©¼‡´ÏQ9ˆi¼}52˜]1¯#.•ÖøtWòJ”Koîèc‡æ‰ÐzK%/F3‘?ÕË÷-¤ìË5’ìÔQÊî8¼ÁkAÐèÓ¸£ç÷õfãG+JuÁqÇ>ËÊhwÎiµæ_pZ)údðd•aO½ö|ãæ@8ÝÏD¸À3ôwQˆ1´ mãಶ«Â{¤[‘¢SŽI) Ø ]µô—¡²`âs]mV!zÐ5zå‹`+¸þ±ón³‹¬zòrù'}ÍÖsÑ=¦ÇÒ³jæw¸¥T^–}¨bÂòí¶1(€}¢G·U»÷þØQÒëÅA"{]¶Û ð² +lˆ®N¨"¨7² +þ"xßÄÞ`‡Uƒ}‘7HÔ»Ä*Ñ`èzŒc(³ÚOÔ+?“`ö¯!EƒÒ¤1ÝaG& ý⛟ý‹AM¾\vØâî‚ì´)”¢ bUu½m«MàÖ–m>‡[,§P£€*~Kã (%À l¥$tz>ÿ]åùÐ~+ €b<ÑÇk—3x2×M¹&) t GÈ¡‘îÏ‹ß~g³Ðýt‘ +ÝÌ=Œ@87Û^!‚Qºß\|¸øÏñìK‚3v6GÁt<;€’-#”TKák$À|à$hÿ¯Ðd·M[cQ^oÃ)‰9¾¤h+BHÀô! ) ’Fž_܆„Ò%§7yÍf~‰UEIج(Šž,ll†Æ~E©?fèÆ&Ÿ°Ç³;Å&9£Ïº hhì7‹L ýæ‰Íî!uá¸Aô‰‡¯¦‚åª?<™ˆÎT7/¿ÉÍã90è›æ‘ˆ<ã“©Ø*ó•Ñï»2\ƒ%dÐBµÙ{$ ZdHòTR°R¨ Åûª;´;ô°œJ  Oy?ÿ:=2²åÚ<ªxZqôx^ó„ÅY*bP÷ RFÿç«Kc³ÿM ›¤XßMŸJ j tðß”*¸ÍñìN0Ñä‡-nT® Ž€DæL™©v‘&’PgVßbA”øIÎ~í—Ôš@VîÇç'‹~ÉHth>i¤ÀëÜ„+ 0 6Ð7ŽD“t…xÑ"¯s¢IHdçÙŽt ™†:K˜Ì) é 4'§oQç¾Ò +ÃsX·ÿ98‹(r[€¾d0Ãc32§nÕFðÍ«',·ŒB!¾ÿ\¯ðËÙd­ ¼æ ³±À@)È{× :Ñwp ˆY<‰|‘×Yù€I|70™úö‡]°Ò9ï+ÇbMŸ‰ ©/7Aÿ¤{œéÏQ;àVªôô~]A]iÃË»xÞ E ã%ý<46!¸€,fBêè¾% +«yÂk”a`(‘$6 6›:b…‚RØ“çž0èÏéIq…Ã+UX2ÔŽÓÉg7¸ÃC¤¢sBœøÂ)¼€ò=,îÃoÁ*JAŸ4ñ®é ¾YͲ«ÎÏö½¹ŽRö§Í»ÛM¤?»…&aS¶Á +¯~¸¨þ +_ȼ벫›pvBK’~sü ˆ'Z¸rð"$‹§‰8n«þØhÓM´6àUËU!C@Új\±µŠˆó{_ñ—»‘BÑÂciîó(È|º Ž¼æ ³1`†æÁD¤ñ_ñhî¡dA³O#Yàu^2UI%»k§ÏT8@\üÊ“xΈ\ë¡p!·Aj»~(þ² w`%ÎÁÍé<¡õ«ÛbûjIpqÆ‹þ,ò-7à¾ÚèìÅ3¨[BgwU{Ó´Û½¿kv•¼ ÇþätïÝ}ÄÐB¨qƲg“O]ÿ”XA{A×ïÊïüà¾jÊw>Ñ‚ôyPã¹ý³g¥Ÿ{ùÒ_—þâ¿å¬üMI­ ÷õîúÈ%lÊé áÍ””‚ ¥ìßÜð—áganX¢:æøÓ€»°‰æ° ¢,ãnÖ5Š˜Hä/çøéˆÃ3(iQÃÛªÜí'%ãCÉêî䊽Ðû2ê± i•Èž=#‚Qu47ç(f"êËþþHíOú†ç|CÈáÞ>T]’,(>l«ñ× H}w>¹àÍu³»mUoùu³YíŸGãûëßU85ˆîëýÉ£s§s)Ül”§ ]&ÿºx.áendstream +endobj +2440 0 obj << +/Type /Page +/Contents 2441 0 R +/Resources 2439 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2430 0 R +>> endobj +2442 0 obj << +/D [2440 0 R /XYZ 91.925 602.788 null] +>> endobj +554 0 obj << +/D [2440 0 R /XYZ 91.925 584.788 null] +>> endobj +972 0 obj << +/D [2440 0 R /XYZ 230.763 285.002 null] +>> endobj +2439 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F47 596 0 R /F11 674 0 R /F10 1027 0 R /F14 1012 0 R /F7 586 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F23 1211 0 R /F64 1214 0 R /F48 601 0 R /F58 1173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2445 0 obj << +/Length 1368 +/Filter /FlateDecode +>> +stream +xÚ­WmoÛ6þž_á}ä`VøNiC7d@Rdk×®1Ëȶl µ%G’ÛõßdÉbœ ‚˜oÇãsϽ¢#t¤xH¸)ÂBE£ùöŒŒV°òöŒ:‰‰™td~ž]\K1ŠÃXñÑty¬fºø; $”áx¢µ>~ºyùîfz7žp΃éÕí˜Óñ„·ã¦¿]\GMœE¡VŽF%LÅ(qv5mñ¢B-äIÈÌs4Šà$ÕÁ,µ#¦Ìq„‰ñ„QB‚ó <´MÀŽXÆnYh©eåõx"™ ¶»‡]™mÓ‡eZn7yO$…Vè$?´{úK2˜¹¥Ã|™VûM š¨ˆ²ÄÁ¸µˆc‚;â–n½cïÄ ôi0Xu@QÀÔ?yœ¬4½´,ý¢±o–·í™½H— XiuaÛy±ÝUV§Œßœ:]Ž)»÷mÞ|øãCXä¶1¯2~,Í«}™:ßØægÛPç?(Ñ0´ìEÂþØoüLcM÷»æ·ÓÆß}ÏRQªâ®m$úh Zƒ`.Óz_æí1]¾ó:{‚ŠëPÁIöä•çd'ÐW¤½ê£#’³ã(…œÊSŽr}¤sÔªh*ÎÃÃÔï¦×JáM1HˆÊµÎEéã>Ùô‹ã엓ΉŸ¬?ݬp¬Ï„¿9~õç«!ÙäÅuúîêÖ˽|­‘Þ‘üpƒCÂócîú‡€ùiݤIy\nü;¥;î%ÕA>w¹;Ó…A%Š¥ìÝî\„1§ö Ï, Á\J™¦k¨\C Ì`~³¼gƒrò)™e9®IxšÅÂNWõà` #û`2ê˜" Um¬.èM°*¡‹ZQ)‚áW²ÞJйA\¯Óª¶=̦hä SÔë´´ó;Âc+Ù@‚°(ø³2ê©‘ùºÎ游¶Ã5lIœº:[­Ç¬ÙPÚÝ-â²([g8VÁ@¸ü™Š="Y€P£¬”!8{=ŽÄAÛ;ø42-BU8ؽf~žÝ*fã“oVç× YZÛAå ÍѶ:K ÛNÊÚ[TF›ƒ5OòŒ? œ?´ ÜÒr±JË*´%Ù<Ë×6,8ú`³*Р¬^oí Ne»³ÄºÀ! ŠÜ¶u»ŸtgVªü2–PókT`EÁ'hò„û2WU(=„d Ôð¦ìäN óé%^7—À=!d°Z´Mˆ5Î8&;6Ì©##ÆZ˜ó †I>â¡¢–§ÏCLa¾22åàP@¥T&Œò4ÈÊ.8uOš-5ò£†üÄ!Q´ÃOD1ªsÛK–€¸ÍœÙÃÄî£:5i}öy +ÚÏxŠEGHL¶<‘û¤DòòÆ^Äl䤶ok³wa3[̉=¦*Á,Žì’«w(‹—«±¶‚¥ZB‘‹OÁÕðÙPLŸ(2s ÊÂXçP[-+¸ÏM.Y#´Ì0µ}c)ZUì:ÕãFsSÃŒPaL1éc§‡È­£#·Š›¬†nÑä+L}[â ÐH%ƒ›¥=½¶— Gþe`jÒÞS8j›ìÕGßøîÓ<†{‹Å¾/|.x¨)Ž:‹ÿ1Vôendstream +endobj +2444 0 obj << +/Type /Page +/Contents 2445 0 R +/Resources 2443 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2430 0 R +>> endobj +2446 0 obj << +/D [2444 0 R /XYZ 63.034 602.788 null] +>> endobj +558 0 obj << +/D [2444 0 R /XYZ 63.034 202.243 null] +>> endobj +2443 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R /F47 596 0 R /F11 674 0 R /F14 1012 0 R /F10 1027 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2449 0 obj << +/Length 3198 +/Filter /FlateDecode +>> +stream +xÚÅZ[o¹~÷¯öiÔî0¼_Ò¦€7Èn²mšmÖEQlöA–[ ë’‘´Fþ}Ï!93ä %9‹Â€E8‡ß9×j@ë?â·ó @+õ)¥Ñ‚(‘+Í»Ã~‹ +s(hŒiP•LQj¢U»Þ|ü:¸×N–/j8n#FJ ճ߻Ó[ëC†0Í“{»D+¿_45æ³kôHë0#•Eø†Îv‡w‹ðòõlzAÙ P° ¡°¼SOmt›‡å®@N‚¸ºÿ8qÑQŒñFA¾@|ªàÕS;¼¨•!ý(è¤b{&+ȶødÛËJKƒÞѱõ(Â%ð~Î*iq%cÔq#„0 úDŠ–lÒ­.“òYFo–Ù?ÇcS\ÙÈné³Ø ~_AFârhá*“cç°ÍKØzíê±å;`+`—DÓV}ÿ&c0ß­ƒ0¿x!PAíýrÊ¥Œ1ê_wÞ¼ %,a²ßÏ;Ì{¹UÕ_ +þ ½ªìŽ.|ÅMÑ)gó½æ4Õg¦ì¤¸NSh  Œ­›!•C‚MAq˜¨è +Sm[ݘE…@‹äÂeÅ*VŒ—V¶qdWBh?¯±z@!óZ¢•è0ìA«·Ò 5FÉÏ Q< ‡ËÓ™&î{Á}eå)ß ’%ŽÒŽa¯^þÅÄ›c)À¿`ÓGR†¾ ÁHM—ê1XÊ'¨ZÒý …9'´Kÿ¾Ú‚?—bG=b^4àÿÆ‚Ý—Z°åD:16NxØÓ’ æ;¹|tQ>yúï ÔÀí&IÉwûÅ6Œ,‰æE®´%XâÌv=Ú‚î×oÅXÇ]1Ø)•ØyT~Š^JYÍþ¿¡ˆ¯‰zÁ~lÂ7CCu‘‡=ó¿ËCù9x5pä6F˜÷‹ý¡Y'N&Ê. KkI½ýiÜDc@VMzôq½Ë6Ñ­:!æ‹©3Ò×õí_€ÿõrjlõïBÃÆ&1Úê±jPH€*Ä×Uƒ Âª—š°“b³ÛTc…Æ‚»(4ÛÛ9í„þýòÛÏÍ"ôyqŸÃÞIY]Þc ~Ü߭¸!Å-èDædÑs›ä¬;Òª‹´NqÀ-Ä¡3¶ØÅ_Ž›œxáGž[Kë6©¿26ìqŽœ\§¥žY¤u&,&G†ýͶ½™aÓ`.“ÚH׸áPö¢G…jÞœ<ÖBÁ)°›•LÕ‘‚××6 +|¨tbë½ö½wç{¥¨|ÒÒb›“ýîõG´‰% =â <©:¡5†kÃþ¦p·ÎB“ôB±òøZZ'ús*©3€+îÞKµÐi—V3O1Ò: Q:¢!P¥£&ú“22:Œ‚*¡/z®î–á`P2[Ía¦Úú¢rÑ|Ä´¥YÅyñ@Í÷þ…Ù},Öxzn³ãµfsM‡ZjYm>⧠+ I´ÝLD‹´j¼omÉO™u§GwáÈLj犑P£±g̪¬¿™žÑAj È+ÌD.xÑwk+iõfÖxÀƒ?Ú-öcÊ*ð.ךNÿx×…ÌP:ãO4ÚòcÆCŒý†@ ËD˜o vð2½â×›Å~Ѭ–ëEøZ:¢d¿w”{X”¥ýf¿ÈÆOný!èf·ÜGò›¦ “4æòýAfÇÆTô8V®Á=«“XÅ«÷›) ‡Ô¨ +÷Ÿ;>‚"{b~Ç¥ ÀE9ëh ‹—ãA·?ÌÞ…G›NÍÀ£ó¼¦Ìp:džÇ3Ùž€Ížw‚’÷-¡õY›OøÃh`jÝ?|èuŸÌQñ »=Ï/ aBóAß$º¡5­±TÓ,kö%ÐQÚWj픥eˆê:ϳñ-Hùí¨àÎìÆiÞ÷:¸±­êÄÒ‘Ñ27øËón ,\¹tSp&?ˆEQàaÌ *œZ8UœÉoFŒVÒçaYñ“Jªú*¡-~2YBº­‘²Î+徤L¤™0ïO•úøÚ†ç¬pmÃ@øJš,çomD­ÂBw öþÜÃ@ž¡S ·/à…Ö¦-ˆÃP˜Xr5ƒT—r—{Í‚ ´ƒCµÖž¢“kø÷þ¼L¢¯ó"€Â +̈ê¿Ã½`¶? +ëã¾”øëÈ <|.ÿŸ³¦¬,´E¨A+5g¢S–án +D ÖÉgJ·/œ4>0^Úí5‹‡ˆPìb«‚aûgòÞí7Û­Û· )”æ::aüòÛ”ƒ‹3Œ0ÉNY†Jî asT‚/.#Æ„³ a ïfñ¾!› ˜ØAÇd¾OroI*mS¥  >p*˜’ØlŠ$”4H½ŠQ«})' AŸBX4X`Å\‰ÛBR!­ˆN²©YžÈ-¢‘4hŸR0 +XWƒÓÑLƒMv +H¡Þ4ÑÔ•êÃ7ZVÉB÷íU04JË‚CFHÞ6Ãx–—Û~$鬷NŸÜÂfýÚ6mÎÌÚô-¥Õ,Ñ(nwm²µ¡${G2eÅq Þ=Ó¨ž ÂRÓV²;DÈWE%`æÔ>:—n$ì\¶‘˜‡ù]„ÆÉ$l¢¶h¢ Œ§¿lQ^ÙVnóá/D^Ø'w ÃÎPK¸àYz¸Œ·—Q'`‹Ó Â[v´-b€¹Æÿ°6»qÇ í| WQ¡Ç7YðK±;à@[xì2…ªiÜO„´ª»´ó<4 ¯GM Æ áœ2ÍáS|ݽ§H«Nˆ/V° xÐÎñ¥ôwbˆLBI …ù“ ‹´N#Ã2Ûˆ YwfN;ïöIÀEZ§ÁacH‰‘ØÚ+@#€˜ÑO0Ò: ÐÁPä›x'‰Ì‡ððB5„:¦p_ô©K«uœZ'sÃâ69=±vŠ/U˜Š@#ížSfÀ¶”QÕ³?€×á¾í€7¨ðúÔ:<Ù/vû0Â~~ãSÒoâÏ›ø‰á׳Ýb0ÿ:ÎÅ~Þ,vófyU~ ½Á4 ΈQZEd¯/_†ÁvK€ ¡ìÙ‚ä’~Y¤è:Šå{ÅNù£B›Ò¼p‹#ýñ?)ÙÃíendstream +endobj +2448 0 obj << +/Type /Page +/Contents 2449 0 R +/Resources 2447 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2430 0 R +>> endobj +2450 0 obj << +/D [2448 0 R /XYZ 91.925 602.788 null] +>> endobj +978 0 obj << +/D [2448 0 R /XYZ 219.408 324.448 null] +>> endobj +2447 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F14 1012 0 R /F11 674 0 R /F56 1170 0 R /F57 1167 0 R /F60 1208 0 R /F59 1176 0 R /F26 1460 0 R /F20 1030 0 R /F23 1211 0 R /F64 1214 0 R /F48 601 0 R /F13 1055 0 R /F10 1027 0 R /F7 586 0 R /F45 589 0 R /F58 1173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2453 0 obj << +/Length 957 +/Filter /FlateDecode +>> +stream +xÚÅW[oÛ6}ϯð^Ù¨d^DJ°Ð]Ó´H´E;’L;,É äÞ¯e~TD‡õz 0iñ»žs$Qx†Ôžq Î8"Adz²¾@³Zyu!‡ó[z±|ÉÂY$œÎÒõi™tõÑÃ(`ÁÜ¢È{óúíåÕëôÃܧ”zé‹Û9öÒ¹½Ûù_éïË—ñC%Jâ â‘j=!".^¤#žñ +ÙYÈ&æ1æx«N|‚™Ea~l‡šû#ä-æ>#Ì»}§gRtûm¯ç}«G¤‡j­Ç•XWMÕûÛƒ¾V¶õ®íª^蟭Ô#¶3w²-òÂäìdU‹`Ø·Ú¯xLXð° ï&oVmmòú;èRÞåMi:B !e; l«­Ô­¦JÞÈe¨'ª‹)Ö‹Æ ŒØÀ>  ê}y§gÛö^H÷¶¨É^:— Ì"ºê]v$)««íVÈLæE ?!†Ôò°Õ1@åÏÆìÓ¥–®k½U5ì„Ä´qÕïÑOʸ$¤`Ü5¬OüæC€]ˆ«­ó (¬ð{ <å/N$3³þ~6Ên§Æ; &Pf¹-¶w«Cä,¦·È¯zxû>»~çÄN¼Rr@4ÝÞ8³ÐÃsëú(j˜Y[¶(Õÿj˜ÁñQáãô§̯R#¼-1VÏ +Ì“3›2pH”¿¥è÷²ÛüyyåæÆá.\uÒ7ŽÎ`âÎòÑ Éª5ØR/׃Žpð„ÿÊ€Vͣϫ>+ÛÝá!òç¡3ö@”|`ß)Ì»7—ÜÒ¦ˆOÎÞ~as¡OyÄ,iÝ4¢'Ò%Ä_ÏV·/²•Å”±îq䞺ò]|©)ÂgùÒ6r|mZó̲k즋>]¡³<;±qglL‹Îz¼Û¤6g!ÿ1'ËÿE–è+d[5ŒŸJ–ÄÅC'²”íÞ¼UÇJ³¯ !íÊVä]¯¹ëªMS­«27‰E¥Îa®fŠ[ŠÙx«Ìq#7¯„:ù¸r‰Éuú€™WHwªzÙôÙ¶+´ÚƒŒN÷3§iÙ©i›ö^µÕçjeèq=x‹ƒínþ%àß``Õ4#«Gî5çåbsáú««ïñsL‚FgOE:ÂÞƒËÏ7N;³§²3sÚ™?¶s½Û›óüÁ"´X,¤9N¯¬W¨[)Ž¿íQ3ÑéàÒ‚ÿ‡«/xªÅôà +¾‡P’¸>«hHƒ¿&‹ÿÛVƒendstream +endobj +2452 0 obj << +/Type /Page +/Contents 2453 0 R +/Resources 2451 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2455 0 R +>> endobj +2454 0 obj << +/D [2452 0 R /XYZ 63.034 602.788 null] +>> endobj +2451 0 obj << +/Font << /F54 1021 0 R /F8 580 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2458 0 obj << +/Length 800 +/Filter /FlateDecode +>> +stream +xÚÅVÛrÚ0}ç+ÜÆNj£‹uk›‡$CBÚæF܇LÛaHp2ÜjȤü}%´&6“f:ŒI>ÚÕž³»2öþaOáHæqD"!¥w?¬!ïQ¿9­a@„ ˜£¤Ö8‘žŠ§^ò°j%éýô‰ Áïäkã„Åo8Éõˆi³qÜ:¼JšöÛAHiìc¡¿øq~Ô\,R?i5/Û”œ!öíêá÷ÓK»ûgIë\oŒ·Z3Yž;¦,â”W†–cÖbcÒ“ú¨¼q$ _q¢Âódzq2ÂüN§ýÙœA[u(Š)€RàA½™¤"âznyx„÷—!ʆâ $\{ê?X¿CæI³Ì.ؿᤓþ̆ãÞÎ0u÷ÑÎë ºùÂ\C°yìü:¿ê\~;¼]¼X‹!B!ˆG9¢s0wëfŽïŠ9á4/ÏÆž=GÎë¼ÌÒõœ¯G†ZÀô ¢½†Ó¡r¨Åº×OAªúdYS„Eš× Z}©¶6àØ^¹%m^»¥EHñ +As„ÊÖ9}.%!vJ*0€sÎ_ŸúƒÔaÿ00 ËÄó5âqÙ"¯Ð‚‡¼`V<™¥©†æsòøî©&º§HFªjå˜hÆâ}`ú'ƒÀËgýE/tëâ¡w½`ë^bÝœ7=ʆ¸Ó¼ +7ýA¹ègOéÈŽîǦ·“ñ´?K+O:DzO•ó¥óªÌÑUŒã*Q>”Ú.Ô³D;@b=’=ûûÏÎŽû2‘Nþ +ÿ(ŠæÙJÚÐõGŽ šØž’ƒ‹õ ØÚ;Œ‡íY€‰”RY#ÊË“{J¹+Ô†K\n»Äe9/rSá•K|’ïºwƒy>ëA«ÑøµJ4EÀÐ^–N_³R?ÕRÜ6oœD)Ý“1 &?‘i7+Êlt;Û®Ùæl¹ó»¶Ú”rïåg–Î^2Hm}¸ÁÂÑdDâ¸(^ñ«>–‹(Q®onÓH`3+¼üRݧendstream +endobj +2457 0 obj << +/Type /Page +/Contents 2458 0 R +/Resources 2456 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2455 0 R +>> endobj +2459 0 obj << +/D [2457 0 R /XYZ 91.925 602.788 null] +>> endobj +2456 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F58 1173 0 R /F59 1176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2462 0 obj << +/Length 2046 +/Filter /FlateDecode +>> +stream +xÚ˜Ksã6€ïó+t TqAà#7YãÌ#ãËveI´Ä‘XÇŠ¢fâüúô é‘ÀM¹J&À&èþÐÝ@¸ð.â(‘^ÄRIš.¶õ¹ØÛwoB+é(HBl]y¹Ò2m«É7Ooþó³NJCO²xúì´èÌ¡2‹§Ýïâ¦\†â¹Âßv?ÝrŠüxXFJ¼,ÿ|úøæöiPã¾×a¥ñÕ‰X‘ÕD†æ‘.² ‹£é,¬Îâ÷ðÏïu…a„ðzN™“™Ó†qÆé+uoÛ–šW»å*’JüÒ,U*ÎÐÕàçGœ +XÎL¦œ*Ô ¿~:ðÊÄz©  >ƒv$Eû™û7hÌúxî‹Ž;.üÙãy]—ÍžõLçj¢ÀĉÕó#Î.OèœW‰ªì”owØÑ—´šðb¥TŽ&³™a÷þ¶L#ÑV t®qÖ‘Oß–*-ŽEâ^¨&´„©’XH«*·ÄBÅ‚kdßv%Ù¨ÆW';ÆzG³9µÍꨯ8U4ÈË2ÕÂÊ„Y–úp‚ùšTÍã4Êøp²„“òã4£lÄɯmÀi¢n,WÚdâŽV)þƧℿ`…₱_—&yÃ_ýÚ¢±It‹ÚÞ~òhÇ%'æ“ꯦ¸‚)9elùy€˜g Ÿ‚hAM°êœ‡}Ç#z·,PrÇ4¹±¦4mp¦/Ç~J2}~x¹`Ù$‰² ÊÁæÑÛpã¾sèœ,(±”(ÿ$é,((N‚@‰¼ Ì)@™Ñæ@™ª»Ã0»Eòö•–R<àÚÛS‰îÝ_ñi¢!ôX3~¨AèXuÑô?VZIq ;ÈÇ7­!Ѽ_ –ÁˆÔýKÇÁÂ=‰A:LÄÑ·²q&–,l +Fƒ à ‘cÏCJáÒSviN£‡3Ÿ‡ ’DÏ{x”ñyØJ‡µßÃ3ÊFûµ ž¨»Çœ£н‰ïþ¿ikôû3æk^†c”5úí_GÚ²MA˜Ì—O-™•† °é^ˆ¾=½œú¢>qoKo5f³m1ìüpsÇ÷› —+™Æ8ŸÖÍi¤2{åg„Òé£ÍË[®qéBeH#5ü„?^­…QñÊD)'!|  DJQ2Oà ⃈ãgÁ¯iDÁ«j aÔ…9íðKŽfÉ{ +q´1r» Þ¶_“‰ya«¬¿PbÀlj?ÿo~þ2&êÇÇ»…´á´c˜Å +hÇ=ñs•E+•iŸa%øÂʬeGŸi­Ù6öÛvFÙh\¿¶ÁºukŒG»Ø6™\u”cérâD‡5çT–Ë›>h±9tåN1b'ïݼ»šXÁ±±ÛŸïŠ¦àZ•¿Þ›Ý&K›bu\áÒ*4ÝUȈ‹Èý‰ ÁýmÕV™Õžª(¾jîý mz¸o+ŒM[—¸÷°ë˽ŠëRø†rä…A…éEP&“Œ­£˜¨;cЪ˾/v˜ XÌœôÁt)o¹æA ûÆe}ˆX`Ù]qbÊ)—ìì;ÈJ8ÑvßåøpàÝî´ãZòŽs&ö(¡¤T¬•8ÏW’ÖN‚°N¼XÏ)°žÑæ°žª{•>T¦ÄMÞ eRß_;™HHÖÞú ‚JÀáG„©üZœzn?Ò˼.ùè‡]Änl¬—F¢¯lQÔXSB˜ƒ$ÿ\ñP°ÓxEuQÍhqKnmíˆGè6W¸Æ^÷6ç4¿ömÞqmJ½oË=N¸§dƒRå¾qÏ“³!_œN â‚u›ÜìÞŒ·Æ` õºal·®®Gˆ‰Ü¸°ËíUµû)ÂC’ææi<9{;.ŠnEe~ÑUù>ðñ&’Ñ<ߣŒo+A|§~¾g”|ûµ |OÔñ!èSpÇ`ï÷í¶ÉjÁ%äPBÇÚ¿ïÈ·;Ú$@Å*NSQÿ›ˆgë&”ÿÀµçž=¹ùÁÖ®üJ©¡¼!%.Éüÿ:é.G\!qý»Š%>{ à´5¾sïÊd ‡Ö”Ûª~2a¶2Ê¥ø5~Ñ••«§Sã#‹ù$Ëf‰™ÈxˆqDLæ%fNÙ@ÌŒ6GÌTÝNJX?ñžÓ·ÐüTÖü@I Ì{4ö|do“ðÞJŸ1/S{ J/ûÀ ‡âöÆÛ+·ï šB§ueŠ'hB°Bœ¶–Š#•ø4^±Ôp´†JÞq\ÔT£\Т$Сš­3(@ôW (t]t ›÷K<ŸŠÍg´GWç6ö¦pèäs7ýRj,¯ÅŽ?]ͧü šÀ0yÏ›Gða§u çq£ˆ:àëAé‡Î¯jdΫk@nTöKo õyÎÛaØ&ÎðáÁ +¼k1€ñ]Î°Ф¥Ýp¿aèÃ^›Í¿Qª¯ªk÷8J&A,]À»©–.¡ÑYþS„;݉/¹\> endobj +2463 0 obj << +/D [2461 0 R /XYZ 63.034 602.788 null] +>> endobj +2464 0 obj << +/D [2461 0 R /XYZ 63.034 450.454 null] +>> endobj +1065 0 obj << +/D [2461 0 R /XYZ 63.034 453.941 null] +>> endobj +1066 0 obj << +/D [2461 0 R /XYZ 63.034 423.537 null] +>> endobj +1423 0 obj << +/D [2461 0 R /XYZ 63.034 393.133 null] +>> endobj +1533 0 obj << +/D [2461 0 R /XYZ 63.034 362.729 null] +>> endobj +1600 0 obj << +/D [2461 0 R /XYZ 63.034 332.325 null] +>> endobj +1601 0 obj << +/D [2461 0 R /XYZ 63.034 313.876 null] +>> endobj +1534 0 obj << +/D [2461 0 R /XYZ 63.034 271.517 null] +>> endobj +1837 0 obj << +/D [2461 0 R /XYZ 63.034 229.158 null] +>> endobj +1918 0 obj << +/D [2461 0 R /XYZ 63.034 198.754 null] +>> endobj +1919 0 obj << +/D [2461 0 R /XYZ 63.034 156.395 null] +>> endobj +2460 0 obj << +/Font << /F47 596 0 R /F8 580 0 R /F45 589 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2467 0 obj << +/Length 1084 +/Filter /FlateDecode +>> +stream +xÚ…VËnÛ8Ýç+¼¤€š%QîœN’zÆy v1´]0+ ÕÙÉxýö¹—¤,9ªàPä!Ïå9‡”Ø,€?6ËÍC>K‚¦Y6ÛÖÁ¬€‘› fs ™0—› ÿ:›å4O¢ÙæûëU6O_H˜ÆÞ·Íïþ5\˜Ä4HsX!—ËKoÎÈjyã1òiñðñ/œrqµ9‘ǧI”LÖÅM4ÂxÂÉ=ð4¦Y˜Lì¡G`_ûöº"°…l6Zél=fŠŽÅœÞÄõÞwéËsBÅ“ú—¾aôån}'Ø}Ýt'}G|¯eåYà–•§^l% }3tØ™“â»þ0`ʯ¥_íuç-â¶^˜’•é»ö²˜tmË>zs|aw…ìÞpëü8X·ÔNeGဪº}V;Š—ÖÓ³ÿó àúõ¾tšŸ:Qú óŒË<‹0æ%nó&ØóÜt'óF|÷{Ð+5w4ÞDë5ü¬Lü?{9îñÞh‹Nìõ;rkÎŽ~A´z~[ý(Õðº;? )Mòôü€´{Ùm»Â%mÒ˜GÓÒ—´a¤MÝÒN° ÒºéNÒŽøV¢Ã„G ÏÒÈ‹¹VÂiô/tœxð' +ù–„ðÕfü\Â][Kº“ª‘Š6•ÿC»=¨Î_-è¿pßÖ5ç4 +ßÌPÿýŒÿÈòÛ©endstream +endobj +2466 0 obj << +/Type /Page +/Contents 2467 0 R +/Resources 2465 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2455 0 R +/Annots [ 2469 0 R 2470 0 R 2471 0 R 2472 0 R ] +>> endobj +2469 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 1] +/Rect [290.68 475.698 418.201 487.653] +/Subtype/Link/A<> +>> endobj +2470 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 1] +/Rect [144.063 444.094 350.039 455.219] +/Subtype/Link/A<> +>> endobj +2471 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 1] +/Rect [291.76 423.892 387.898 435.847] +/Subtype/Link/A<> +>> endobj +2472 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[0 1 1] +/Rect [246.348 403.967 436.633 415.922] +/Subtype/Link/A<> +>> endobj +2468 0 obj << +/D [2466 0 R /XYZ 91.925 602.788 null] +>> endobj +1014 0 obj << +/D [2466 0 R /XYZ 91.925 586.781 null] +>> endobj +1015 0 obj << +/D [2466 0 R /XYZ 91.925 554.901 null] +>> endobj +1035 0 obj << +/D [2466 0 R /XYZ 91.925 523.02 null] +>> endobj +1105 0 obj << +/D [2466 0 R /XYZ 91.925 491.14 null] +>> endobj +1106 0 obj << +/D [2466 0 R /XYZ 91.925 471.214 null] +>> endobj +1108 0 obj << +/D [2466 0 R /XYZ 91.925 439.334 null] +>> endobj +1107 0 obj << +/D [2466 0 R /XYZ 91.925 419.409 null] +>> endobj +2465 0 obj << +/Font << /F8 580 0 R /F54 1021 0 R /F45 589 0 R /F36 583 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2475 0 obj << +/Length 600 +/Filter /FlateDecode +>> +stream +xÚ­•_oÓ0Åßó)ü˜Hø_ÿiL ƆV!Á´‡Ò”)Òº–®hûø\'vµÉ†XÔ‡Æñɹ?ǹ‚•ôÌH(¥b¦D°Î±Å*+Ù-Íœf"*¤’`E Lò4ËÅàÃ<úsíT*ð~–½ý ,ÃpDzٯ¡…kͪëüã}µ|*nfgÙÉlïuÊ[pÒ>[¯§iê9æÁÙ«¦Œ¯|Síç¼ùCÁE¾¼«ïézYp)U¾*Ðæh|·«7á¯^Ìwõ:(Þ…Ì T› ^ëÖ®&Á-~Ô$%’’â +ÊÕºàèòª©1߶Âm @Du3Ñ\G¡Ä@ÁÕæ0*kAÇ"!†ßÙõMÉ*Šì,+AzÇéºá=[eÞù8ºË®²¯]¤ÑŠ÷¼#u%(m÷ÕRÕdPï"·n¨9í°Bùì‚pŒ™†½ócŠ€D¯mÊ.mÊuJhí3ç—GËð •bD ¯ÝÖ‰wVG‹@ÐR¦Z Ï áŸ'n¹=(²ïÇ?Îí ‰&ï¼ÆÈ£" } è§ ÝüºU §ONcØÍ|€¹øDÐï +'óï¯ Ý H5Qè×}T¤o…´€Ï/ÃX©ç$çµ³9®QxÃa]o«¿4ã©KJN”zç5–zT¤—¡A\¼ë½F±Ù7…Eý@(>!zÊv^‘¶~jj06_ÇOZ*TêÃ(P*p´8%hôýæzÔd…à(TŽðÙ6ì5HÜGDÚ aYTp´GTª4`é í|R©¿þÖ¹endstream +endobj +2474 0 obj << +/Type /Page +/Contents 2475 0 R +/Resources 2473 0 R +/MediaBox [0 0 498.898 708.661] +/Parent 2455 0 R +/Annots [ 2477 0 R 2478 0 R 2479 0 R 2480 0 R 2481 0 R 2482 0 R 2483 0 R 2484 0 R 2485 0 R 2486 0 R 2487 0 R 2488 0 R 2489 0 R 2490 0 R ] +>> endobj +2477 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [166.424 465.015 178.379 475.864] +/Subtype /Link +/A << /S /GoTo /D (page.88) >> +>> endobj +2478 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [92.479 453.06 99.453 463.908] +/Subtype /Link +/A << /S /GoTo /D (page.6) >> +>> endobj +2479 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [138.252 431.142 155.188 441.991] +/Subtype /Link +/A << /S /GoTo /D (page.141) >> +>> endobj +2480 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [105.475 419.187 112.448 430.035] +/Subtype /Link +/A << /S /GoTo /D (page.5) >> +>> endobj +2481 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [97.449 407.232 104.423 417.815] +/Subtype /Link +/A << /S /GoTo /D (page.5) >> +>> endobj +2482 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [108.519 407.232 120.474 417.815] +/Subtype /Link +/A << /S /GoTo /D (page.15) >> +>> endobj +2483 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [112.67 395.277 124.625 406.014] +/Subtype /Link +/A << /S /GoTo /D (page.18) >> +>> endobj +2484 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [109.695 383.322 121.65 394.059] +/Subtype /Link +/A << /S /GoTo /D (page.16) >> +>> endobj +2485 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [117.236 371.367 129.191 382.104] +/Subtype /Link +/A << /S /GoTo /D (page.18) >> +>> endobj +2486 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [107.688 359.411 119.644 370.149] +/Subtype /Link +/A << /S /GoTo /D (page.18) >> +>> endobj +2487 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [106.886 347.456 113.86 358.304] +/Subtype /Link +/A << /S /GoTo /D (page.5) >> +>> endobj +2488 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [113.777 335.501 125.732 346.239] +/Subtype /Link +/A << /S /GoTo /D (page.16) >> +>> endobj +2489 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [106.399 313.583 113.373 324.167] +/Subtype /Link +/A << /S /GoTo /D (page.3) >> +>> endobj +2490 0 obj << +/Type /Annot +/Border[0 0 1]/H/I/C[1 0 0] +/Rect [116.583 291.665 133.519 302.514] +/Subtype /Link +/A << /S /GoTo /D (page.105) >> +>> endobj +2476 0 obj << +/D [2474 0 R /XYZ 63.034 602.788 null] +>> endobj +2473 0 obj << +/Font << /F47 596 0 R /F8 580 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2491 0 obj << +/Type /Encoding +/Differences [ 0 /Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/exclam/quotedblright/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/exclamdown/equal/questiondown/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut/tilde/dieresis/suppress 129/.notdef 160/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi 171/.notdef 173/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/dieresis 197/.notdef] +>> endobj +2396 0 obj << +/Length1 763 +/Length2 1130 +/Length3 532 +/Length 1696 +/Filter /FlateDecode +>> +stream +xÚíRkT×øˆW‰ ËòPŽ +Ê£$ A¢R  "/ÁÇÂ!`p2&“˜H¡Pñm‘X¸*jQ¡"U‘gµ RPBEé¤àƒXï]WÞû뮞óç콿óíï|g[,ö °uáˆS¶‡\}!+‡1,,\I¦Pwƒ)„8NNà"vàðøö<>äÈ°®„TE¢‘Q°tµš9 B¢">0…HhŒB„"”Š\0 øOÞD† +DÌbp8@ŒŠ(ŽD¢8ƒ=)HˆGÀñ}Z,—~()RF‹–´H+@K8¦b$‚Áö%è^­ä!êcr9†ùÂ’IúI“>)ÃSý $R9…À‡#$þ1t#ò^›€À>é"¤` ¹à‘ ÷)Tæ*±J‰¢@ŒÉ©<‚‹?–@»6%€êá´ÉæýoNÕü`§UÒ±N‚§bοcÚU‚Í ‚84ÞN[?ê压1ŠÓãÀå˜$aƒž :â‚X@q1¢ˆ’ÌfáE_´#q ‚ “ŸÉ³ì9"›œ¯É +ãÓ—„2Ö–ëlí¸4µ=8r¡¸ÿá(M#t\‚y¼©¬HN’NMMíÒ‡8¥=E%"b´µ¢•IÑÇŠ“óãÝO5œÓµÖD–dú^ºyï§Ù‰­´±¼Ûëb¬;ŠBÆÏgÌíÑí1ÛñÆD¶·ìË u»b2ß×£ØÖ“µóªIÈ‹,U·tÉhâ3½kÅÍÃ}\íõMwò‡ž®RV?Ëõ³t |:£}±VùfÅåòI<Ç,,(ewÑ2ûÅþÌã1ù©)šÌÃu4wã£Sfþhópˆ(“럚™sè]˜n¹Y9òÀ/*[7òyÚ¢ª×_©5 G½$¡FüjáœsDtÝ´»17£¦½,ܤef×:]÷¢X´-Oï÷ ñÍØþt£ITºðËbÇI9V3¯Õ·ÈÈŸÜbLnýðÀaÕ>õò|*È¢†iq*),?Vßß@4©–rû笱~~ežCĦµI”U›é°Ñí³Ú3Ã`½}o{¦Ô媷Tï­afü¼ƒÍK룮–­pÞ<ö¨§`XG†Ô6¸FÌrMOx^ô2xô@²æUyͱ{·”Ì´‘”•½·ó³´2M›U­ÍÂXÿ#¥ò #—vß[Ô•i{´èŠfbè[½Ì·ªEúé ¼4ðŒ:š¼×a|bÉãU:’iåÁõ¯¯W.k^æü“ØTBÞÈɽ³Âþvÿ¬° +‹GžJ6+?)t¨àúÒÖjUÆÂéÆæƲ¬íàu^{§—ýžÃ,Ï•÷\mñP‹=‡^qíRí.ÛÚ龑šŽÓwõ>«ÈÕ¶|ifÿbuhÂúè²&­VöÎ¥ÚÇO «÷σƒOAm«ûºö‡~5~R,Û•e2T´5aúàý­Ù£5 )©î‰ìà³ìÓÖ?|é¦h4NUùZ]6Ÿ5£2a[]íà™Á> endobj +2395 0 obj << +/Ascent 694 +/CapHeight 686 +/Descent -194 +/FontName /YFLXUZ+CMBX8 +/ItalicAngle 0 +/StemV 122 +/XHeight 444 +/FontBBox [-59 -250 1235 750] +/Flags 4 +/CharSet (/question) +/FontFile 2396 0 R +>> endobj +2492 0 obj +[578 ] +endobj +2058 0 obj << +/Length1 907 +/Length2 2153 +/Length3 532 +/Length 2830 +/Filter /FlateDecode +>> +stream +xÚíSy<”{q3‘DÆ£¨&Ë,Ì ’ÈR(M²”Rfyf<3Ì &rG¥Z(²$rm¥¢nB%.ÙRÉ–mh1–lYÂ;T·Ï½÷Ï÷¿÷ó><Ï9ßïïœß9ßs-Â~}K +“Ú2}´Êpè“}@® €B‰¦ØBtÈ))àú‚h*Ä5ð¥(¦£càX1}|@‡ CˆÌ(þ¾ ¤A r1·ƒÊиqVLß@Dóâ›Ù xe„"ÿ@&ué-ò!‘¾h‹Ê[üPE9¤ŠÒ} z #Ñ6g—êÿAûÓéÿ& 'æO'²¾Ÿ³ãéÙ’A£ƒêäÈä@dQ ™ÉY²E¤Š¤X4,}YÐRI‘Hß“¸0( ‹1@“ q &ÐG£Pÿàœ½ ò1ÈfØï”øM‚¿W±m!.H!@²@%ÒÙà7\T {1õæïúvdPH¤0ôÀï‹4Zêi»Ïõ ‹½îÏÑ.ñ"Äà8‹Æù£ßÅ€%ýÓßCä° .pµx“è +øËòøÇ}6 2“1h‹ˆ,1†¥Â`±@0€Dís+êiÀ`rD!€¯?ç@e²`‹!Ú¤Ÿ?S$3‰N©œEöÿI|Û• FBarè"-½ÿE—#Á¿ÃH2“.’ì‚CÈŨŸ@ÒDíˆf»„ý[É;˜\ X_t¥>ƇÐX”!€Çžø‡ +. ÈÏ´³Œ ÑFF(ìJög±D¿ÇÒö‹õçB¢eA.H†µ¼a’·†{_¾ÿÛ­›ô†l©Öˆ¯~䌴L׌+3†QïÎäí•6¡ÖjÅÖ]ǘû}.§¾~S‹&JÐ3ó!I®ùéò±é÷€i¿v8fªÑ‘è¶ûNìÂÎ +?*ÿrÂÛêɮήe«†|lÓ +Á£ßC½¡¯S+Ál½‰Š\<Ò8”TŒS3D…Ψ\P–raãòc'd<Í‚›pl¡”¼šÏ½9‘Б›‘¶zyu[j÷øí4é¡zab{ð‡±Ÿ/9Ç»Eð.á²2‡sÖám(»å÷UÊ\Ï… +ô4ç4øU¯{•)-}?ý +5âíl„ \–êîX‚ˆSÑÌR×ai!v×(æéð(‰ö§9j;ŽDÂjÛ# ñª{åõÃçP¿¼RêéÅ·$*XIjpN¢ôç 3njâ[W¤â¦öJ?>6–׿Ü7Pj½À[{âªaMKNæ%_'^}Ê—9÷7oîÜ0²<¯Õ/{¯çŽgVö\¯"%ÿÏ‹†î´Ù»#‡€o ¶”{Êî}×6oýmáÀ–{æÁ®¹aLýé=&ïPÕ®6éÇß­=ù ¼üb¿d¸:® +9ºí⽅㲦…<}0´‘ ¿0³Üö©ÊóéX¢Æ]Ï…ýj$çmqKŽ³ÊK£¼Çˆéëñîi’ºe¯xÞ‹é@tÞŸäomÅkw#aûóUÚG#Õ”Ÿª@ÕiÎ×3d4¾ŽÏåéœiQhk”œöí¶£Ù=?æš¡>šµå¹á†ì÷÷׎ýªXM(ÜÌ"´õÕGµòkÝ£­”;Ë$!ÿKÒUÍ¥zŸ5NX½s+Ë¿=”¿š~[º*ÆZHW󬀯¢npÀ&­¶üà]ƳxPf;»½KÇ®‡ wsèË+_oѯ†÷DÄž|ûÊŒSÐÕ“{&Yc ŽÔɯ¡K;êÉ殑ŸÊ3>¨|ÐÒÕ!­ŸN bÝ~seU|3Ì-¥Êt×0¼&*G?èÚÐ £#º¾?gvãv ùÇŽ—ךiU01 Ó7‘¨i~X,3ã´dyéË°ð‹™ö§hô…ÉÝ×7>-w= +ôÿàQ‚ ¦Q¡yÒ;äãô€}2¯möûÍšöxª+Wjþ•PCqàÎÄlGVYÃz!JµâqeÁ²†Û°¾½¤*¸ܸT žu¹Í¿`%”Û´·ŸQ«e#Ök:7> ZXQu1r ùªÌ~6¹¶/¬)JËy}Ïý*£¹7|¾š¬×èMµX° -ÝÑ¡¶CåIñEÛÕ…³qqµ—œõt8”ë„öÐÝs [úÔΔ4F \pÂràñ»DFtÐtÔ`ÇÝI¸@µÂ˜ßaCŽ ‹ÍÛ8 +:x´åGþ”yajWÙ§/7¤VátÿŒð–%ðsï&õñ–=¾+§åÎÄ4šÚÍRk·¸ý‹é:EÙ±™£.öµYÌÉÄË‚±z^ëÔæ½,£¹œ¤ö•ú»í|ÛþzEЦçËÕ +”,ZÅJ¼$Ý[ûx‘r¯‹µ=r,tÖ‘æŸÎÜiRÒ–ñ.‘˜”æ›Fu6ªGïgËu}yðÆáZ3.ڻܩãZrmiî°ž›ý–¨ŸØ™_t åuÉ +}²‡»…ºZ#bŒ'™1©‚æê攲-ü!”3¤Ù¢ Ï*ª¢•(’7ƒe»*Fé–ER›À+܇R +ô»cعù‰×Ö²Q·ã×(K»NÍш7›x#Nö´µï™{4ÛH‘-c­ôÌÍÝÝëÀûd,¾ò×2ùЉO¿5éoÉï"ºY¿”yßtuÍŽ g0y±´õNUá2’Q—£$M^¿åèÙð"2=î‘Óaѳj¾ž>ü`ë®Qñå‹Ž"Îãžö^kOÚo_ÈvÓËPTVS›1ÚÚV’{3v­ØFø:$3’Ërrº—§UaËI!:¾XÏà´ßwDòã=FKú ´·ÆÎ|¶ÌW:º}øíÉYñF±-Vkƒ²Víû +'ûà]VŒŠÃJFb5¥儼žÃ^µcç|v117|ã„vÞpU(¡µ(Ì|{ÂÕ¤Þs]qÍ-ºZ?|êWÅŽ‡Ë¾Û`trûöµÙ“ijÖu‰å¸·ž".#g6;ùç?ÑTÕq´|XDpé½8òÄ3Á·,¨–|նΠݟ‡u×9›ü¦U+AŒ{ãô.œîùò¤)ñÉÒVë<>×îŠ ™‰×¸‹gµ#ÄŤ1ï\$6%Ï;G•LIò=ôŒ1•UGG¹/%õN–—%×ny¨Ÿ(=üðMÁs‰ ¤¹Söµá]ñvã;/Q3*ÖçkÃxóщ;‚R&öÙçw[N £ù˜äŸ_泺7žÒê³W8™6™CëùŸš®|î;Ú¿ úÝñî'–¨€91m7¦'®tyLWCÝé"vúcºÍŽ‚dÉù=8ûJÓè ¨ÿòý?ÁÿD2$²8L"ëì?Ç=ÈÜendstream +endobj +2059 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 2493 0 R +/FirstChar 16 +/LastChar 62 +/Widths 2494 0 R +/BaseFont /FQVYUJ+TeX-cmex9 +/FontDescriptor 2057 0 R +>> endobj +2057 0 obj << +/Ascent 42 +/CapHeight 0 +/Descent -600 +/FontName /FQVYUJ+TeX-cmex9 +/ItalicAngle 0 +/StemV 278 +/XHeight 431 +/FontBBox [-26 -2961 1503 773] +/Flags 4 +/CharSet (/quotedblleft/quotedblright/dotlessj/eight/colon/less/greater) +/FontFile 2058 0 R +>> endobj +2494 0 obj +[614 614 0 0 0 0 0 0 0 0 771 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 914 0 914 0 914 0 914 ] +endobj +2493 0 obj << +/Type /Encoding +/Differences [ 0 /.notdef 16/quotedblleft/quotedblright 18/.notdef 26/dotlessj 27/.notdef 56/eight 57/.notdef 58/colon 59/.notdef 60/less 61/.notdef 62/greater 63/.notdef] +>> endobj +2495 0 obj << +/Type /Encoding +/Differences [ 0 /minus/periodcentered/multiply/asteriskmath/divide/diamondmath/plusminus/minusplus/circleplus/circleminus/circlemultiply/circledivide/circledot/circlecopyrt/openbullet/bullet/equivasymptotic/equivalence/reflexsubset/reflexsuperset/lessequal/greaterequal/precedesequal/followsequal/similar/approxequal/propersubset/propersuperset/lessmuch/greatermuch/precedes/follows/arrowleft/arrowright/arrowup/arrowdown/arrowboth/arrownortheast/arrowsoutheast/similarequal/arrowdblleft/arrowdblright/arrowdblup/arrowdbldown/arrowdblboth/arrownorthwest/arrowsouthwest/proportional/prime/infinity/element/owner/triangle/triangleinv/negationslash/mapsto/universal/existential/logicalnot/emptyset/Rfractur/Ifractur/latticetop/perpendicular/aleph/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/union/intersection/unionmulti/logicaland/logicalor/turnstileleft/turnstileright/floorleft/floorright/ceilingleft/ceilingright/braceleft/braceright/angbracketleft/angbracketright/bar/bardbl/arrowbothv/arrowdblbothv/backslash/wreathproduct/radical/coproduct/nabla/integral/unionsq/intersectionsq/subsetsqequal/supersetsqequal/section/dagger/daggerdbl/paragraph/club/diamond/heart/spade/arrowleft 129/.notdef 161/minus/periodcentered/multiply/asteriskmath/divide/diamondmath/plusminus/minusplus/circleplus/circleminus 171/.notdef 173/circlemultiply/circledivide/circledot/circlecopyrt/openbullet/bullet/equivasymptotic/equivalence/reflexsubset/reflexsuperset/lessequal/greaterequal/precedesequal/followsequal/similar/approxequal/propersubset/propersuperset/lessmuch/greatermuch/precedes/follows/arrowleft/spade 197/.notdef] +>> endobj +1775 0 obj << +/Length1 774 +/Length2 651 +/Length3 532 +/Length 1205 +/Filter /FlateDecode +>> +stream +xÚíRmPGt”’h‹¢FŶ‹1-&¹.!¢!À(°*ˆ=î8¼Ü…ËE“ÒдZ´Œ`ëw‘JEA@uÔQ„2bë(¦ø:˜–j¡#íôeœâÏöW§»öÝçÙgŸ}Þ•ù$å:’Í€Ñ,ÃËQªú8ãú€*‘L¦ç ÎS,‰óP P:k@1€¨µZT =k¶sTV6|õ~.’èL£œq8Ÿ M‚ÓÀÈäí + £iä:aIй-TˆPÁƒ ˜E1"¥ËÉdzr›´š§ -³¦€¯`ÒI–¡í€„™"e<+Ü'ÿ†©éâÑVšŽÇM.yWH/Á¸‰¢íX“ÙÊCı$ä˜éÔ÷ष8HRVÓtÔÀã4Eè˜,9¬@‚°I€²DS6H&P<‘ 2qÚ'ö!CN·"¤7aD¹fÎhÐLvuKÀ)†O¶›!@^'jôE-dÄQ6Š(ˆÂœZmœvWC°$Åd@LpŽÃí"D +Ä0‡Š!¡ @›`X©`X^8„d “åD®¦¢j „¹Vj NCFhŠ^~LDkË“!@®tQ4jµÆñwb +CåZ¡!`‚„ “ï%¬~â AMÕ™”.„6Hˆ:;X"t{Îþó;ªò£*nUÏRzüÖRÛßéÞ°îbþaŠt±²DŸ,þë¯zê‹›$›¿[K„~áÅ[òYüîô§Ç¼jê‹Ê+×íqb×÷Œû¶¢}sÿx{ÀД»öÀ‘O{¼µ×¸ÞC…Ò•O¥µÌ)#ŒØPquô~‡x¾R©ÿò¥êΓîÝn‹$öî¾»ãÞ>ÛÊR“\öÿÐ{cq~Qyªç€¾ãäOøéTéƒàÞè—§rÖÏö ¾Ûà鶳²ýMç³îÎÛËkÎ6½uæi±+–µ¶þ>¦ +œ}±ZõÈ}ÁÖg|ÞÔϧG¸ÇL[t„r¦óÖ^ßó ™ôy—dQÛ»Š•ßÞ¶Œ_eº/òµ²´»OÆ2hVµnJGÂê ÕxX›OL˜öúÞ˜ Ñý·¾‹?|gC÷áᶴ_»‰×&׈víy§ž8²ú²pT‘Ø{Ź(¸4æЕ^¹²|kn{ë~f/"C L]–Á›’BÉЭF±×ª7Ö×_éKϾº?u¸9ÖYàÐï?ç…‹ÃzŒ×Ã%»°à•%ŽöGêòÖžXؼ3GOœï ~-ÿXâ©|_ë`;,•.žKxK{« Î3¤,ôð¦r/47ˆ‘ßìÓ'—:ÔØÐ?b—9¸u³"t`cè|ô@Nzç¼t^ãqüÁõ%?4W&μ±ô‰ñœª'4¼#£¯QWÜ•2óØý²odþ`îŒÓñQÕØ6Ý“xôò¦”QvdS2A> endobj +1774 0 obj << +/Ascent 750 +/CapHeight 683 +/Descent -194 +/FontName /KKASIA+CMSY8 +/ItalicAngle -14 +/StemV 89 +/XHeight 431 +/FontBBox [-30 -955 1185 779] +/Flags 4 +/CharSet (/equivalence) +/FontFile 1775 0 R +>> endobj +2496 0 obj +[826 ] +endobj +2497 0 obj << +/Type /Encoding +/Differences [ 0 /Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/alpha/beta/gamma/delta/epsilon1/zeta/eta/theta/iota/kappa/lambda/mu/nu/xi/pi/rho/sigma/tau/upsilon/phi/chi/psi/omega/epsilon/theta1/pi1/rho1/sigma1/phi1/arrowlefttophalf/arrowleftbothalf/arrowrighttophalf/arrowrightbothalf/arrowhookleft/arrowhookright/triangleright/triangleleft/zerooldstyle/oneoldstyle/twooldstyle/threeoldstyle/fouroldstyle/fiveoldstyle/sixoldstyle/sevenoldstyle/eightoldstyle/nineoldstyle/period/comma/less/slash/greater/star/partialdiff/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/flat/natural/sharp/slurbelow/slurabove/lscript/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/dotlessi/dotlessj/weierstrass/vector/tie/psi 129/.notdef 160/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi 171/.notdef 173/Omega/alpha/beta/gamma/delta/epsilon1/zeta/eta/theta/iota/kappa/lambda/mu/nu/xi/pi/rho/sigma/tau/upsilon/phi/chi/psi/tie 197/.notdef] +>> endobj +1580 0 obj << +/Length1 887 +/Length2 2972 +/Length3 532 +/Length 3605 +/Filter /FlateDecode +>> +stream +xÚíRi<”}Ûfˆl5”¥ˆËN–™!Æ’}É6–ì»13˜ŒÆÈ.!²d—] ¢†ÈY³…²oIRÊq[’l¯ê¹woÏÇ÷ýôüžëúò?Îó8ÿqç%Èkl*¡†&8c´ x’L¦h º2ÀÑ +¥Ô b$,¯‰$a˜¼¼, æã +@¥¨œ‚LvD4žþD¬« ÑýA‚j"…Ä$É ãq¤BâS +‹!ùKj8pùÇ„7pã!^Å %éa0E‘gŒ+OùaIïBà¿ÊhÏ¿[W1Dï#S€ÈO›¢À‘I4óÐzˆ!áè6Ì‘—ÿ[Škûàp†Hò?‚ú·6Ò‹óÿàáéCÂ!âÿ¤Zb~yC`ÐX?»º$$‹Rûâ0€ì‚$ô¯:Ö[ë‡AcI(7À‰óÆü¬cðè?Å÷ÓÄÒÐXK]Mì×böŒ‘X<ÉÌß@ÿ!ÿÄ°ðQDD¬` •„BaGÄ£÷ï“ýwiáQ4ï +HÉÈH"éO=’’’‘aÆø¿#ÃI-s;Éï +÷äÒg^Å$òÇ#?±ñ½ Ý”›Ê4ð¶ëàÓøêFˆÚHÝ ¬q;ËË°œ§­fÃiÕXËËëåQO3[+Ê©b¯×Ãò^òWýnPAW„øÉ$Bòî¨täx35倈Qýš½G LöÒ«Dq6ö9KY–]¡.ø­Mž]cá~”É‚øÍrq§¯Œ>^¼ØA\ø£–lž¦ò eº©´Zš`Âä’¹ÒH½,[–&ÁtõÚà5¬õÄþˆÓ±1£C3_1ãúlv…ùtPÕκLGÒæÕ|ŽËìˆ5dN§L’é[)ä ?1ÀÐ_ËÄ ý¦/1³–ûË«F}¡²¶ýÜéJÑ2®´vž‚¯i7±ÆYüD°JÔ—§€°#t¬Dìlúå4µ®ºM¤ç‡1öPa|µêfãuð¬N½•áƒ1ÁŽ­J‡ñºIŽg9Ó†X¬H²'V¸4ü6:gýèæõu•R”æ3*ùÕµðüåÞ!ô¹þ0jÓ¸£,þ]QÄ6mç-ÒÅQÆ¡ÀCÉù›}7Um|Ÿ÷Ü©…^ÿ¦¯Æl9BÓ%³)w@péír(eéí èêMè@±ª³gWZïñQ€ qošÛ=qi¶V›,EËZhŒÜuâ_±_þw¼ Ÿl×dÃz +Ó‰†cT‹¯=é,e¬*ºX"ÛBEÎ5_Ë»ç ËrIérÝk”pÊåFÛ~‘1˜¦²„2ëñµÁùv¸h\|ãîÐÁ~ƒî땲©ÓçÝ2ÄvˆnŽñíKYmÖrì·TžèÙE÷´O›ëS,Ì”|ã.ƒ¶ÈiT‰GüEeÒ-¹«A­ÃúyÕ<¿ ¼f×h¦Äž.YyŒPVY¸ä{±âÌ®{¥ÎÌ}Ì É2289ÆF®eÈr¬½D^föûÔb!¦¬}l +P°À¹¼â8Ê䩤F°ômÉ[,u±"Ið¸Ñ*ºAjaßÛEg³ÖÓ²y5Ë6èWî)è%±Qt«1\¤â°Xæ£ny‘QÁ¶½;}ÓÞŽŽ·ŸH\øX/ZPšë®¢üú!Ìpn®gŸ +nîZÍv:Œä5+ñ+xl» ”y®nûfX­:L°X8ÖÉÄås–ŠébË p6*äý0)²È-gÞ¡®åÕàJ^ûöÆßEüœïܸ´ID÷®í«ãÍS´ÍæFÕÚv³©±y¡þm6A'}5wØ“K×í¨_6ÓIÚú òëÝ<6B?÷e±Žš<+ÆàÊkÎr-’Šå%ýöÂ.„˜¶hžtçTÂDkO¥í*>ä:<C›¹ÓO€ŽîFnŽºçmMÚ½:¨l«pê.ºBÖʵ%×Êœ’HYhz“÷ºt%¯RàÔóœ¦wÚ"[5¶g *¾×[»¿½ÀâŠîmï­{¿ÿµ 'ÕÇ0ý>ãzŠaséVrê‰ÄcOÛBÂú9œäV*K˜l™p¾v-ï|”€'ÐæÖŒ·‹ëoŒNlƒºëé2Œ;¶‡C¬ýº>>ž¼H=“3Ô?·÷)t糇²*÷™Ï_:ÖXX>n·v…úS×5ºÚhÉsóª~:æ8bx’öèÞ±«B®f/®Ñû@ùÖj-±kß"¡uëÂèÒÒ ºïPß@Ï÷Ùf¹½AvÆþö[ÒÍÏDW"¾¿\ªâu´F²’ã(že»ÐM8¦8®Ž,V¸‡ï>ê§ séŽe 2_N*\–‹uw›l½š]Ÿ>F)kuÑVÝÎñÝó¡¯÷@!“oWAý¶Bß®â)Z: ×´˜žÄXš.2Oõ(½/ù8®ä{•NúÐ`U½¥J(ŠE*?îµSv×;îÀI Rw‰¼ž8g;oÏ»‡,ÔG>E§Y;á>ÙwœíwILÁý8'yÑI¸ìµdñÜÛþý + õ.sr +vK-ÀbDåþÓ»MyÖ¾êxÝH^¾U6‚ÒÞd¡¾³µtõC‡a¯íÜròöCÉúFŽ­;“þ‚W,ÇåØ¥çõc·Z:欹Š„ª9óÚJYbœ©I–QWS„£½^ÀwO©Âµ3¶ë™žO³d§EzyÇç{¦zR(’#?…ÎïpÞÈüÈôÌéYñSw—Ïy}ÈÆïó´íû]1=åÕœˆºÊ@ÆE°GÙòÞ4)O"¦ªE· +§jjâxm½OW5ãbšRç¦T<›µ½ ã6é¡Q³6¥{;OÇ2íõRóK’0?ŽZß¡ªŽjˆéÖ7©÷ +™ƒå›ò§“ fOCäI+ ¡1ø€Ô!MÖ‚Œ'èô2Ô±'§ÓXK_7Åëѯª’Æx½>"J(ø|r?ZÅc#Q¡ÕD±Uh“èMï$¥5G¸ å%÷¼¨t´Ø4 r·Êœˆ³Ø[4š†sBÖlö"¿Ëzæ&ôÆo9 Ræø™”5ò1V6-~¹¯"É«°‘Þ3Ê8¶²mÍçÎPRšoήE;ã% ‹`m Þ%Ë‘D[|b½µÌn@ÿýþ#P8 ’H"x ‰îôÿÁà@2endstream +endobj +1581 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 2497 0 R +/FirstChar 101 +/LastChar 122 +/Widths 2498 0 R +/BaseFont /WNPEBA+CMMI5 +/FontDescriptor 1579 0 R +>> endobj +1579 0 obj << +/Ascent 694 +/CapHeight 683 +/Descent -194 +/FontName /WNPEBA+CMMI5 +/ItalicAngle -14 +/StemV 90 +/XHeight 431 +/FontBBox [37 -250 1349 750] +/Flags 4 +/CharSet (/e/i/k/n/q/s/t/w/z) +/FontFile 1580 0 R +>> endobj +2498 0 obj +[677 0 0 0 534 0 758 0 0 881 0 0 659 0 670 564 0 0 1009 0 0 689 ] +endobj +1577 0 obj << +/Length1 784 +/Length2 674 +/Length3 532 +/Length 1239 +/Filter /FlateDecode +>> +stream +xÚí’mPW†eÄ*ADÀŠ¨´— +R’]H Öl +vÉ^ÂÂf7Ùl0)ƒX>ddJ+ +Ò± ˆ¢£V:€¨­âÐRœ‚C¥RÅÏ3RJù¬»:Nñgû«ãîŸ=ç¼÷½Ï}ïz¸E*}‚q:†Ñëƒ +Ð "WîT€ð<ÿèÉØ{ÅW7•ÎæìüÃvÓÞëeÍúèÏKs¬ +ºÂ<<²Í[=£k2[—ᤪã—'îtÛ:®W\Ï_)é9µ°×j¹³¹·ÿÆÓUn6ÙeqŠ»ÇµoÌË.…ÚOMßð}Ç¿†íó§„ßû“Û·.Jâ£×ê›îÙ +SôQî«YY•µÉ¯è‡[‹µy-œfŽžS=LI?¸¶º»?ÏVñYï£ðbû–½®ýñ#ýŽ²kµ­-Mæã9Ç»žŒ‘ÛFç_¨¸:þóãë}Òêo÷õÙè6¥9^ùsi³ûØmý"‡‰ñeþ…uóîÌ“¾gçm—oH6´H\o¹K‡¬ò½ãOWV9W]*î,‹=Ðñ챪iYñÍ#Ê®¶Uéš –(k–Üjg;ºx¥¯/˜øqºÐ#¯=fÊêpXÖ$í)<Ûq¦ºÄ-Q’9f¥üƳûRG´/*hX)Gu*¼‘Q³ÏåwÛìåªôM÷Wh·Ž§¬õ›ÌóþòÄÆÍΥŮooû%6¯¤l{uþTFܯ´sÉÔØ\«|÷v¦*ÔÖþÞ`Ãdã×»Ë{j vœ¸pèÃøš +[?—jx6 ~÷õå½?©¦.nµÊ)ÝHæ%ž/êGN -Ÿç:y(37qB–/íò:\~2µ`é³cSßçæ¥L¡YìÊ3¢˜Ío~@âz¾($`#ZÂ÷4—ge¥§¶å%eÂîMå&Á¹EÊùB}Ч-÷ÜӘèOõ>i9ß™ðšuðddâë0aü«¸¾è],ò/Þ+ƒÿ…š„ÃÒZŒIåý²å«6endstream +endobj +1578 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 2495 0 R +/FirstChar 0 +/LastChar 48 +/Widths 2499 0 R +/BaseFont /MGYMOW+CMSY5 +/FontDescriptor 1576 0 R +>> endobj +1576 0 obj << +/Ascent 750 +/CapHeight 683 +/Descent -194 +/FontName /MGYMOW+CMSY5 +/ItalicAngle -14 +/StemV 101 +/XHeight 431 +/FontBBox [21 -944 1448 791] +/Flags 4 +/CharSet (/minus/prime) +/FontFile 1577 0 R +>> endobj +2499 0 obj +[1083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 441 ] +endobj +1459 0 obj << +/Length1 855 +/Length2 927 +/Length3 532 +/Length 1532 +/Filter /FlateDecode +>> +stream +xÚíR}4TifmÙf}´9±ô +1s™¡¡lÆGùh•\s_ãjæÞqç3Y¥èEµÒØ¢¶”N*Q[>²ltröhÓŠÝTJœV©ô¥½ÈvVîþµgïýç¾Ïó¼ÏûÜç÷Z™/ ±÷ÀÈèC´=‸ÏÀÎqಬ¬<)ˆÒ8Ix¡4tˆ@€… |ÀuquD\x,+àIÊT.Ž£çœ‘ ðB +¡Dé8(eh±¾QG=~]òËΟO³ Þi;ËØ¥ý°ömMC¶êvOÛó)iêÈà®sÑ«’†7óoø=MÒ’¦òªt¿nÆ[.w VÛçåZ™NoŒËÞá]kÉñà»o÷ÊOr“Z°Ý½-F3–•®6XèY;Ó=ñq¤cîw뮆¬_L°^¡•wôufikÌ6¹ËY~Â:ùy‚]Ïi§M=¥S£rœd/7T«ç?ýM#y[±}Þ˶Ü:®oJ»¨¯/8¢~ÝbÇœ]™'&Ë_¶ù5%œØÂN ¢õkºÞ3òjÎTT†DQ‰³õZ§_yªr-4v[zâå¹ú!çΧú‡ÙîÚ„êmã…·€Å«^/Ó’ÜŠ¹à9ý§=1†·ij}¿%Õæ1¢Ûj˜£ÐèÛl•½UÙfe +®÷§vZ[üîùÕ_Ô-ÑE§R÷mò'L›,ôšæ+†M‘V^ïÅðD¡Î]Ý(ñ7=†Zò޻ɬªåÍú|ïˆCâ,ïϤ±WW~yær¡ÿÌþ£Çê²öµgŸÄ’@t°m±¨k™Oqtn[­¾º*MÏsîÏøö –6§ÿR¹æ<ÎóUè噂&yISÇ·-™[Lìد[«ß=¨{\1øº°Ó&¯ÂZ^úDZd/¼>5eÃÅin×Î$\4ž\#6½àîÝœØ+kصfýž \ÔH¿¯4¦ëûNF9{ýŽU¹±6aµ+ËŒóÎ*:oÇ63 +ý(¬oƳô2ÃÀ²[söÝ«L˜õdÛVÇ¡9×-Ë*ëîçm,Y²?‘°êîªÐЫœ1¼áâAý,k^ã³7]+õú]r<³\¤c7ÍV/:¾3µÀu§­¥=ùä…&±öÇÆó¯k^úªJ‚š©Mm±=Ôü=ùýà ©ƒ‹øž§Ï%/²~(ê©YÜqÔRsÉqߌDû†5Y+:ÚÊãú'Ý]V=¤ãj׋t:Užá!,K(óYþdIäÐ+3]K§æŽk;kï„-ö5¯ôÙý•‹²iÜ”|5§:Ʀß|¼£¤«ã3,èMïƒÕÆßVŸZwº¬Û,É]¸9r>÷>¬ÿ þ" D)š”¢ÔÖŸˆ>‹endstream +endobj +1460 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 2495 0 R +/FirstChar 0 +/LastChar 99 +/Widths 2500 0 R +/BaseFont /MEHAWB+CMSY6 +/FontDescriptor 1458 0 R +>> endobj +1458 0 obj << +/Ascent 750 +/CapHeight 683 +/Descent -194 +/FontName /MEHAWB+CMSY6 +/ItalicAngle -14 +/StemV 93 +/XHeight 431 +/FontBBox [-4 -948 1329 786] +/Flags 4 +/CharSet (/minus/periodcentered/prime/floorleft/floorright) +/FontFile 1459 0 R +>> endobj +2500 0 obj +[963 380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 574 574 ] +endobj +1421 0 obj << +/Length1 818 +/Length2 2089 +/Length3 532 +/Length 2682 +/Filter /FlateDecode +>> +stream +xÚí’y<”ûÇe9jdKC²=-sj&f3c¬ÙG“}ßc–£Y˜Ëd,…„\„(Q¶Dƒr7i•S*ƒ’ŠPJ¹“N¯^·óç½Ý×}ž~ŸÏ÷ûûüÞÏ÷÷À6¹¸ëYÒØÈfñô0HŒ1`íèHÂ`ñ†À`ÖÌ£³Y6dh `ŒŒ €ÝQ KІÆx‚1Öì>‡Æ¶[ÿ6K&È¡SÉ,À‘Ì ™â *™¸³©tÇG– àöup¹ '¤!! @£Sy ¥³ ¨¯L$V |³iQßKÑ ‡+†¶¯`Â1$ÍbðA9±Å§b–ÿÖÏáÄ(ÉÌü¿2©¿ÕÉL:ƒÿW›Å9€#›rX?·zƒßàA=Šùs•Ä#3èTKV(ô08$÷ͧs‰ôXæBçQÀ2ƒ ®ø ‹ö3‰x~+(_Ûݾ$¿]íJÑ…Lgñ<ø €þѽ¢1?´xHz,àF¢Ñq£øý¾ +üé0[•M£³B,Þ s8d>-ŽÂâñ@ ³h`,ÆŠ‰QH›'Þˆ'„°9¯÷*ÆBQ@ù«ûÍ@ÔÞƒP¬+–±+òïßleÅŽÓÓGzX¼˜5xtü¿7z²è‘Q ÉÀ£ ú†+.5ŠÃY¼•¿M<Ïï:„.¾Œ©Ñ6Õ$%¼°é`M‚mE_­ œ«y¬:¥·=µñ˜ rê±Éº~NóPûrªr8ý¬ÒÑWö¿¡h!ø'êM–‚ž8wTê€rüzxÙqwÙYêTÀÉk'¯ +™%é“"ñˆæ³ƒ[ÞD·ËÔ9¼ÀÊÕ_eH×<|°4Ÿ°7ñÖ‘\mËÄQHàÉ6‡ÐëùHÎÍOÓvì +¶¨êšZÀñw*_DêÂGw÷Ë3Ê<é(õàÌœ¿]]ÁìöšnòÐpQ—à›Ë*-õ¬¦%¨™±ÒÚZʺ±û"£nb–‰‹K¶Î½>b#™Ú²-Q(ê‡ewÇîNäKÙ”Êæ:·—†šB…PÓ_´ÿ°\`(OÎÄÜ(S=穤UÝ{î,=oæO v[â¼Â¹Òœ‹rˆ·Ó‚m¦(åª+VìËÆòÏ(§0j@ÞP²7Á+±.%òf‡Kìpÿ¸¬üíDQˆ»ã‹Ð|>_ªQv¾*ïEç©&üæXxãÜ™cÖi£KyÆXã¥Ó­<\•RcDJÛ÷y~ÂøÀe¬¼(ÔZ<~Å/+:D-ŒKZ[òG#`$ÜÙBw4ç*H½Ü¼wþŠ(^)¦áR/"¸A÷}RÀbN÷ÅõóP³>‰yã‚—¾ØGêh¯µÎò…q·’™©6ž ÆŽÜå(/=§´ŽâÝüKµpÓ­ÀÓ¡×ã –¡0Ìl!,Û‹`+y0°l²£û³€Ý|¯Ë| +‡YãçûyaAsšÉœYóvJñ¡| "BJ¹ºN2oá¢]¾ýS¬ï mFẫš€2‹Áa:ûŒÂšn6–J§saÙ{âdÕ ±R‹íÅ'>(ÜP`W`QùgRÕ³-e—+rK6.øÍ``Óc7g7§±ìO54ž‡/7¹?"ð¼H×õk{f”¿ ,x*‡Ì¢²ÚërgñûwÇ”Ò'j³BùRÝò‰ÅjÇöI•æqEâ!Y×çõZ7ÆÖ<©ë ì¼Åv½ÑšÝ…0FY_íÆ/a„·æ|¾Pœ†óáuWÔÂcʶ 8^ÁÙ‰w:'Ï]×$Þ#&&%½o¯ßg¸o`Ê{Ìóا¾–ò4ÕæßϾvŽ|þÂÐH9µ èlkO+j¶j`•viÕH°Îƒmí5膣ÖrK7Þ‹dlMUƲ!Hdȇ®¢ÓáÆ•Àáç)™”IíTçÓþ·RÜ^t»‰Ì Ì4BÖDZWïäº|‰×ÆõtMv +gü“AJU»S¼<“³µ¶ê~Ðî«­NúŽ(¢]’†’Ì—‘«âww H ìw¼HiJÞñÎöY¶êÚváæБ7¾äq='°¡²6¾O³ÅÙÿÞn˜ŽˆÐÙßäZ,‘²ªlëЮŸ mvÞšX°ÓZ6L"ÉËÃ#EÖÄl1TrÛŸ£'Ù*®UäSΛ^ŠzɦSÁþ´j§m Æ)O÷}ݳßô€CRß“¦¹_3œw8¥}Âø÷ÝÚàÓnS›>H4{1×¼ì_©¸\Z ½ì=ÓÇ +R|c)çs|_‚þµý…N’˜Ö‰›èG(Þů¨Ü7 +¤p®Í]ïû¿ëûhÉ‹„ê£/{q–¹¢ÜÎÎMÁŸöôod7åõæéL¼¶ù|W²ƒ¡=TW–iKò.±€+…ôgŽDwçã2S{½U"«Ó¸™ö¢š!OwnÑG.¼“™»nx>“’Õ*;2ãÐ?a^D¿½fÖ7梃®ð/C¯MÝždÿ,ãJú`õxµA3BZ´Š(ÜÒ›z…ŽE8³yɨ[ÄÈùÈßêù·õm”¦ƒN«´/¬ž{:åàYHÑÊ¢\Y¤~x½>hJw˜ìQŸeÞÕFUÈÈh*Hèº6sx@sÍy¼éììÞÂz\ %œ^¿Öné0óZ2˜MÀFìKPï¡ åzeíÜÈ<¾´K£rÑáBŽÊ̯ÚæNnŒ{³P§“ +‰]œ71o#mä[´Ç}!¼Óé Ö¾CÌ£ ÉUG3õ^æÓìÊ5¬‘³CVvæˆþÑ'SBŸÃ>$÷d¬Òõ‹0ÓgЭCôÃOÇ"MÓû¶l=X/ô•ˆ"á„Q›"Ç,øYM|ã-Ç!\\Ë9Oð$ì&YÂβ‘¸mbz|Wõ’k©šÁùs¬Þè¬ {½º7ÑGôQ=²á×Ö¥»'½å—Œ„fý±\n2ªý…{Ó "9FtÉ°óø”#á´3Ö *§œ«ª)•“¡\ð)3óaž¡3Øì^Gqù¡dÌú Æùì¾üÅ÷j4Ý×ðÉHöAEôá½á>Ãìh~}‚7hi> endobj +1420 0 obj << +/Ascent 694 +/CapHeight 683 +/Descent -194 +/FontName /YEJYIZ+CMMI12 +/ItalicAngle -14 +/StemV 65 +/XHeight 431 +/FontBBox [-30 -250 1026 750] +/Flags 4 +/CharSet (/beta/k/n/x) +/FontFile 1421 0 R +>> endobj +2501 0 obj +[553 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 509 0 0 584 0 0 0 0 0 0 0 0 0 556 ] +endobj +2502 0 obj << +/Type /Encoding +/Differences [ 0 /Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/exclam/quotedblright/numbersign/sterling/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/exclamdown/equal/questiondown/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut/tilde/dieresis/suppress 129/.notdef 160/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi 171/.notdef 173/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/dieresis 197/.notdef] +>> endobj +1213 0 obj << +/Length1 1303 +/Length2 8243 +/Length3 532 +/Length 9058 +/Filter /FlateDecode +>> +stream +xÚí–e\Ûëçq—bE )îÁµX¡¸‡b$X‹Jq÷âP\[Ü¡¥¸»»+^|sÎÝ{O÷îËÝWûÙäM¾3óÌüž™ù'az®©Í%†Y@äaŽp.^n^1€¬šŽ’(€—›‡‰IÖ‚CaŽr 8D À+*Ê q³ðŠøxÅxDÄx„q˜²0'/¨µ À*ËöW0@Æâµ9Ô@pˆ"‡%È  ³„Bà^Ü{{€Ö_'\ZWˆ‹;ÌÃË C-á ˆ5Ôø— %G+@ø_f°›Ó¿]îW„(+B$! s´÷€!V8@u¢¡äÿ†¨ÿN.ïfo¯rø+ý_MúßÜ ¨½×ÿ €98¹Á!.5ââøß¡úiSƒ€¡nÿíU‚ƒì¡–2ŽÖö¯7À¿ìPWy¨'¬ …[Ú¬@ö®¿íGð+A4ïo@eEE]5UŽ õoŸ&ê×ñr‚xþ þ›yÿaD‹\ ž€7<Ü<<¼ˆ@ÄûߟLþ«Ö+GKêh à€\\@^8<ˆT|‚‚€w¼¨#â €x"¹apÄ¢1>+˜ Î_3ƒÿ²ÿmäá°˜´‚ºCþ1€®yÿaÐfX‰[„@™H|õFøTþ!D}ÕHTû‡ç4þC"YšÿâœÞ?„ˆ4ü!– ú‡ê,þ!D¤åˆ—‘üò€?qsë?qo›?q舨cÿ" +9üƒ¼ˆBŽ ¢ìäCLáDÔuþu]þ@D]×?Ñ øˆ¸¼ÛˆPåþ"Tyüƒ|Už B•×ˆPõöoüß×ûåK˜ç;.~Ab_Eƒåñù_u¡În%9ÄJñðˆð ÿmµtsq8ÂÿþVA<:ÿf+(âiƒ@¿Æ¹~׶®ýšRú-ŠÜDz5jÄL Ót7Û·OÒyX¤¾j›Ô6Çt¶šp·»­V´Ö cžu…¡Â­#ÕkØ¢48YÊ®¤ +%Ûd‘6ë•¿¶GìÉ|ª-üZð ^­Äå¬èX¸›êìF±ÂUb/ðGÛ£´f¥`^».+ÔDj唦Ba ‚G)²ò×%[KyCŸxíœ,6LSÍ!Ïè7Hbø}´ŒŽP¢¿ô]~Þ.òqÞ/âߦÙêgÃ¥É~žû`µäô¼«w6c¨Ža€„^ŠÎ„á0ÿ¦O§ñ]}Î×EEÃY#bÐCC›v`ÊC"/ú~}EFå,xF;ÚœÞRŠŽä„$p­LXmÉ)°Æ +°3Û~Û z:Œ©’'Æzða©-¢ž»{}Z yu6ß²3y™•½M¿­©“LϧÓט/îkÄr°‹°%$$=’˜:9Œ¦8_ß#FóEô̪v˜>´‰_¦ügÓc3¶Ù²8í5jÏáê5/F>ÊYOrjv¾ä€vkCí#0ø7ñòÃt‰¡/aÔòMkqÜ–i-mA2£å-”ÐÌYå™ø²=›_¬ŸtÁ#Týs¸jB†ü3#5ŸrÒ>QÈ…‡Ö‡8V÷zÏP¼¯¹NoÂ1¼‰.(\®Wny5¸$EŠÚÏÃl*Û û=~ÒÑ8ëáØ¿‹¾„ÄÒó(˜Y-Ȩ§9Íq =–”#/YÊ@¡mt½¾0‰ã=ür þ‹Ê=a¨ ¥îC?>îÏf§ +Iö´eQi~#ØqûCÚãü m˜å}‘>ÍdîEL9¨²Cæw¯¶;øej¨%­¬Öj¶v:ª~°ƒv©\É—eÊÈ Tɯ0N÷ÌxA÷òmÝ’&VÌØ™±ùˆ«¬”­áìÔqç¨`q»Ýb#â*ÚPÞ±ªÚWwÝO€£M=â(Ë7†j†oL4giÞ"¥~ÅÓ‡:WñZgÁëÞÛMœ©hb3†>zIØ6ˆ¬v{`¹IƒÝÕèØ8…ß×û;ÜÔ8óhŸ9%M*ô¼·ŸÄÜû–§0T›ZØé!ÎßËõ °šØâ‹nzˆõq'®[_Jâ½P ø $ßö½«ëy¹âü›lÆ—÷ ª¨à ÿÖ‘ I(zñFPŽúW’z ”ØÝýÔ¸éèRfZ­årncŽÜXÉöŠ|Ìœ*ý–ÃL Ý.Jñäƒwô«^Ù+ÌX&RÉâß.5‘ðuÀÐv‡Ô¼V+ô§ÅÄŒšOR² +jÜhV T3 ´wìR¡ïª +l.È'„TÙ=TÄÆÜåö($wÉ9ÙÞ:%'«¶Ä*cäa‡NVz'?Ëf‚ÛZå,r[lå‘.[¶lÜ>"1Z˜xÑ¡?Æo©A6Åy¢ø9e>èAÿ~ð3F ²¯bÒÎ+ʱ51 AÞO?ý¸ŽùùñX_µ³j¬I„­S¬üŠ¾¼f¶Æ•(Ü£\åÀ_Û5|<¸÷¬á“HlÂý—Ÿ¯ò²¯¦°¬(õÛ[ú'É _æÑß2Ö[qL‹‡ï=†¶B pÚYš=çG¢Çà䥩•‹æŠo$/)i°jR,MHPªg‡{ +ù_És ki9]‰ð–¯[‹Ÿ b2v´Ü@Á½ì¿waûTºšùÇîJL­NÛÙ©J€cí.˜%eߧò¶¡Ã1ôàßj8î©S\€ú"ðÒkèrN€PÓÌÅdo‚¡ªŒóç)[ùÅ/f㻂‰_½!‡fIÞÃŽmØ.Îaò•í8h´nrIJZ‘D,Äž_Yfæ£ã¾H—_Él°e³ÇV ®”+Ÿß –T=!zÁ^ØfåIœ8#sº¼SY.+|­ag9 +±êÕü®°¹¨¦ÒA³ƒ»l{<ÛÐþf +ÊVÐ)5È° A­–Ï&TLú7”ßX>PzKÅ­n.)¯øŒïâ»Ãã A±iEU»ª)ÅçtœË ¤r'øcÖätª°ªrcqqÉ:œSç`–å£`MÖ,2•ÄñýÄ:¥°gÉ>uñ +úsÉfX>3%c»îØG2Bºeaˆ·ÎzŸoØi%È9¥ÞçÒჿ¬Ì[J S!ίøfc;7`±úâ‰:Ãëe/‰î3Ÿ©~TÕ÷ô€OfõÙÅ/pš²­æâ§;U›Él—«í\Oy¼2þÝòÉû`ü¡ãíñŒ8âtÂH’E‡,ÑfJyŽîÆ~@¦[œÏŽo옇&•–ßlìdB[ÊˆÇ ¼ÿv¸’Ž¦”b+)Æ‚GÝ;q7hi3… m¸ƒ&‹ÞñË›µ‰3UC¤ºL‚”3|ñ4F×/Üyÿ6ywæM3“\hS4N³k+ªèg'(¿¨‡Pùæhq‘+ »¾¶:Ë»•ÐΘãÇ7Ë~–±Tº)üÐ! ý@fN,pkª3ò±Ê-’0¶Ô.w‹ŽÕ­õæ’Ìs÷QßßÆŒ¤5Ÿ¢΋äˆ'q›ÙIð˜C3«ËÕX€Ö}Ó‘Ù,’à¤ýäe#]„–.û»‘0¶÷$5맛Îw#³Ù}¼•îƒÏÃ4¦/7¾òBŸ¾Ùª”Ë}ëk Ö-6Ð`uwB¥ùlÿ–œå½7‰?+f•¡…ÓifÎÄÉ<£ÎØH‹ççO9+ôA¥‚«I?W©„;gIqÕúô¾ç¶Of—•_°$ l8õ`TßöúZø÷ï†êÅ…G4ý.s~v:½Pªm^šsá +ÎÂïé{ªå¿·™Úcµ´{47K¢$e“—´ª-Ñ¿‘ݪ/a^\SÓU{h÷Q9­ßŒæäì`%«&}Ù-„‡¯œ,%ý3ä²RŒÚ8„¹4½«Bö£ÆÊÌϪQñO¬Ä¨÷ÐL#5wiëÅJï^Zȸÿ úFVêÃË;BÅA5¡ðÔ]ú[z#‡çN\«°‰{*ùkk7Às®‰Àó`f›7m´Ìñ$­¨[’1ûÌ¡ÁŽH,ue4ÄEõ+Æ}¤dº¬Å"t0–èVƒw9`5´Ÿ¶Æ Êüö—šUE!ôo´×àÁß=o­Êa·4œ~Æ2,åIOôd°X ±X•êç¹ÄŠ©~±»T=º4T•Á¨©9šBŸ³"kùÜ|G +O?–hJ¬²)Nù~' 6Wa|ܧ˜7pvÈK™VÊUÌ·¡5\{Ê•LJ §â€©Fp”1«¤sÜ u×\/†Ÿ¨L¡Ê|ñ S©Š–ÃxRNà¦YL³!Écæò~d}}»›UV hE£ÛßÆ—ÛWj|ü@‹¯VXK4jÓ|Ó8Z¾Uà“ø}`ÿ:+š÷aýPŠ®Ñ³ü#‘e5WŽOcÖ+âíÐîq›šï[n¦Â×PH䇢Eð@÷VŠIþY­š/ÿBs\ôÉ/†âBT °@óyQ¸{… ¯oaº—¯Y4ø4>â¿ñ"‹g?‰a±·ËT€et!j|!E.NÝŒÚÓW«vwùÇþ¦T^ek„É©¾Ûª~ØË^+¼Û’µ·zx»“ŠüHnfÓjèžõ!CÄôj© ÁbU¯ÈÈÒ$»‡¸`W’inµüËÛ³áoÉIÔ©ÄÇ1ý螀0ÃúùÞj k(+ØR˜†BÚ +Rº‘!t¸+W½²í§ºãvë|\îѳ2`^äžÝjŸêBFI†V˜Áë4m+ѦÀº¬¬hvbã_†*ÐFfŽ"ÐÅK3žôÙU8m8Ns‘pmH¥ò‘š´x”Fµƒ÷a¨ŽŽ¥œ©ïf fÛ>¦Ã†ý,ÿ•}6ÒÙÇš×\̇yCŠx2‰ÃFø¢$da?Ô£^´§í4¿öMIdØîÉeÃx™V­Žf÷m«!¨Ùp¥ký(ëÜmîÛl±ø™VJØ«EÈY:X'gB¬â“÷þ‡ëW•¢(l¾9ï·Ù;æ ‰ûØqKzK–{£ñŒä˜/XªUìC¢é“(<¨ÌæáÐ\rº#ûŠ ëþkñ3 "}™0¶,MW5¼ý\Qév^ìïøÙF}†Û”•¤­šÜï æHÙb­÷ݨ+k㯸Sš2n¯cÀÝSQ—õhqdºÛ‰"¤£°Œ/.ƒ˜«¿ôÆÖ”?YHRFQ`™/l$ Õ•|‘¦â€¼[üé‡ØGùœ)¿P€]>\çºzý¢÷y·SªåÎC½ñÐZëÏÌÌò¬¶ä>qtµvd„pÚ®ÂUÛ”ñ¥×¾~¾ ,DÔæ; lAìáuUƾ!vnŒ +·°Æ)+m¹'?¾9xõô š=ët?ñ#Ë +󉸢ùª‘}ZYtÜ ³§8$³`t!ê]ºþ4/*‚“]t(øÜF²(­WÄ—uAiҨу˜>h¤åò=Õúê]ÁHEéC0yü;€ek¬ãŽk¢ÁÆ1 zÂL’šɨð/§Š¹! E¥¸èžå´ÃçOkŒ€láüå£ù¦‰T­gbY1ºãS}Ò9ÎÙ© ó‹Þ€®^ÇMrÅ.}J#ó–«¾êõ‚ßô +7-ƒ©ZâG¥¬ù÷㚦ÃA5|}Ð}—"Q”kåÖÄU1ž¬ob{¤7ï}Ÿ‹m;mø2¶„» ™‘cÕ5Øz¼Vž_0•Q‡¿ä3N 0Ê[ígÄ£xë‘&…C® +š3¿<í©ÿb4?DcELH|2Ùr +ÕÀh&­òE|… ´³½lè–µÏ 6l‘z—Ô¯Ÿ2|oûù#\>’ÚO"‘ Xn÷SÔV*ÁÚÚŸ+ó›3kÛ'UèŶŒÍuØeA&8•\‹Y>íÎuÃàBz RœMðÀ¬.<ë*Å.Àç¾·^÷‹ä•³ÙúÙ¿)™Xÿ;†§rwéƒÂ¹)A_ †âLßt9|s£Ëm¹Y±œøö:¼5Š8´XRág4½}}N]ém™{Óc?å·ù›æÛñCíËuÄo\~ûcŸÁ±10u]œç«â5®&PMc¡óüY–õ÷¥sªQ¶Šml¹ã¬Ð°ÄôQ±—£ØI®\³ö£DçBáé’ž^-8†þ ³o &wpëÏÔ̵×g¯ÙYÞWÕ¾·Y\ÒK{™ìÀsÌäá“ÌWô»:üR*ø‚ø÷Í9 ;Ë  µ„È•øãå±S5%¶'óÈ÷‰³WéX~ù$LbšS?6sŠ"º4‚Ìä’Fˆ5.Ù×óƱ“öuVJp­Q«ä¸ +n9H§ã&–Äk“lólµ ¸Ÿˆ +›÷:?¯æ9}‰!®ÜTÊ\Áþ©’Ï66#WáŠQ÷ˆawÌÔÞ[uñŸp î›[“ æZ¢NŸk¨% Ë«ŠÑueúÔì +J¨û}wF’c!—K|ò$Ë&›¥K çXfŽý}(ð}"1ó\Å &ºØ|d€¼%ýÜw¤µo ?ïŒç’ ®ÿ4–ÛÇË5—=/§Ó›(ã ˜…•¹ë@þ¦|¾É-S¼sÕã.À~d§„ílwìå’n~[EýaŒoG¤2ËÀ:1ÀTªHÅ3Ǿ]°!Ö­aä„ò:Õ¦úB KC11 [¾Ÿ'|F_¤=™L\rkù¶`ÚžD‡°á›öïvš\ÖÏmµÕæn×JI àiÃ.+©‹g\\¢ðüdö’„øgÕåd¤uø Óñ ¼…­‘Ñ«·VŸ¶ŽXP¬?Ó¦pÿN“§xR­ÅH”&u¼¶¦~Á –j˜*ðÓ,^ +/œ¥¯´ñ þXþ½§µñCv€Š-–Z¬ø×øm,a¹,MÃœòrâ±!:u+ÏÝŒiä·law`­Êö»룼²òÇ*%¥QÛX£( ëÑïeŸb_.ŸÂ¤ì“Ç1¨o<{…\­ÛJüªÛq£ø4A$Ž¾¥Ò>Ò'4ñ?Iä:‹=ôßFøëi9/+%¸Îº»ô‰ŒÐ9ÂSf"XŸg[¶\%‹ÍQôš ;ѵ¬õñʹëV°'KªUW Vn Ñ"exW^†î‘ÔÄ°®LÄg>9qÖš +ÃߦØRiÂÁ댣yÙYü4Z‘-Õ_•;Vøͨ’ãX”l€-{´çüôìqwùëGÜæÑJ·I{Áá£Ôƒö®p{NGrA;˜³ÀV$õƒf-S©F9hëýnGJ9ÅOª@O+üM®'´Ï";RB±½«kcƒÐ©J+6¿ÙÈ]DVW™uéUuŠHQŠ>4HÁÿ + … ›× ]"o˜§×ñž°÷ÇÖY!/æêÐñw™0~ɆyŽ;³ãÐ2›‹ºN%SL/‘HËj + j??§ºÎ­1‰’bSzKÖ­· R}>D¾«=ß2âå{ÅÎÓ©°V˜Á¡Á‚$ÏTû&¨CànÓÓ’áu6 Ë/Y›€kFž ù•Äd'%\\ÁÎÿýræ@ù~÷ÂÏ"?R›7½I%?é†n iK˜(¦S£Ùiäõ•NÏø øq(\¡‹àpYŸ6èŒÈ'Ïwô±Ùž­þð)©QÕ9ëÚÓ²»=ÆiÕ?[_¼§Ô™6 Ëd~ßSærˆ_#%M¥ßô!•àFׇϢJ­³RTbòC—qè8¿ž²‰*§M/Ýæ³,EËZ81SVÅKr"h§up˜óÅ»!—¬Û€³§@äÙÎï§ü<6o¼Ámšì6U×挥ƒÝü9‡¾•Šy<ÌcÏoȥͨ¬fu'ïJ){éfÉ’(*»È6ò| •ÜAe:¦N8?Šgò÷Ú#; 5¦¶„R{iôœÍÞûv6w¾èo\÷ð¾€ë¹ÜWî8s9îu—²MTÔ»*ŒŸ8‚ÈW1 ¿Íšc²‰t}lòK¦ µìQm"ëá*ÃiØõG¥øõa€Š+$ú•ì>— ‰mý(|‘¥.Q=\¼£úã‹a«¼;3—jÌêSŒ U´êÃÇ: “§þR%®BO£©Êà3þÝŠMñǽñàí¹Ö` µ‹0»ã:ñøfÙYÒwÍ ©f|6%é˜{™W[U3k„7ŸiY'ŽÑewNúElÍ4–fë¿™s‘>bD&ɼxÓŽ¼ò0.&÷¬¥­\©)k²+r]ñuµŸúúPsØw|Ø7Î.±Ç”z:¬îÜ”kÐö㔧uÅ(¦Vµ€Ý=6qiþXú}œFæ¨sè0–œÚÁÝ= =Ÿ8ÄÞÖÊ xÛRÕPý-ØoD]vèÌJùÄ´œÑP9¿`TÞ`LÈw’'j¹òþ‹ÎÉ&žXÇ=FŒ…Y‡À± ov‹ah„¬ÆsÈí›Xs…Žñ~¿ôÙ‚cÿë—ûñÃxhRwFQœ…Eµä*m›’´N}M—Ê„G¯õnõßÍÿ6QëÂ4à*?}øØwª[> +>.<(–=U€†d¯ÆìN7¤ÓKÈ4zPM«~}ªÒ‡‡&$.t{þj+‘Ó$@Œ˜Š­“¾›â£vßE–ȺB†ïy†¿j­mîrXÌ(Ž¯³@gMOB-ªßªˆw·=HsAž5¥„nÓV "×dજ»u鉸÷•‹U€eÒ¨?¦ aÁõýîÌ/ˆ«ß‡8vä@oi·x0ˆ™œKý™üW`‘ÈÌü mÆ8#Û½…1—Ã×¹LŒ‹ œ"X€õ½c]y8Æ€m€äk—²sV0#•ÀnM©oEÞùdÍs•¶-Ó*ïˆí©ã÷_òVÅæ¼5ïÿ8 ‹¨g~¶Ÿ¹“8Ú®®6W´¦9Œ‚ÝdºŸ »'©ÈQ³ù@cL¤÷ö­ª¾8@Xç!^ÒoC7€ü,¹l •õ³ 'j9/úšºz{Ž×=‰ðÞ„Ž°ðڌ䑌ܡ ¡ä)©sX=Â?Õ+â¶S}„ ¿ršô{tdL¹¹_j/áå1¢ã׸z6˜èçõßýßVóíc¹é·Ætt +4†“&Z¥iÊ—<ïô×¾Aƒ•¾—;§ô%ܼýð,…ƒ³!²„ôòÖÒ¶|ʽêr(AwÆÖZ£ºëKÞÎAëðw3œh&FY@%.›­ÑÙQ6ŸQl IÔ*;¬Ã˜^hÛ+CÀf6_/õhÒGe×7ÙíJU¸‘ýéöo¹Ø4+‰ +}ï4Øå"D^ðM÷3ÐuIŽtåîn®XqôŽŠXþ¨!Kê©×‘Z$¼:¢˜+y[¾øfVžðΙÆ>ιC-2ɦt±â÷ÞJÖ¨öc~â8Åî6èC¯`-ªrnq •D§Fv¾ÎFGaÓxÖBž=íOÝgôÜ;ÙŸíÚö®¿&p³FÐË:…÷7óG½Â›Þ³à94ø”ËÉ¡^VY¾Îmœ8–á²ëWd'õþ¤'KƒÐMß]i­”ê}$ã,ŠGâU¢õ(¦¶¦´Þï.yHÒ6óaw¤ˆ›å§×yQ•iD^÷Ã^Êkô‰&žFpS @ºÜk~sJ¿)<«ªýÙ½ï ‰´1MÐXËK±)ìißÊ­½~ÞÙ òßDNŒW­lôë2 9®ÚO «èÑ?漯lkPè7;ÊÛ:ÿT>îx\k‘ÂR´hjÕXiñ¨Ô +C¦Äåã¡cç„•q‡•Ÿ/û/•§ŸËaQÇ›È .[F3*¡}v¨KÖRlK3²1?d5i•La;Ðó@C¥CGÆ›"ãI>½ÓOn<ô÷4@n È(K;¬‰µœeØ´!ÙOÁ‰ÏŸôõäårêž8rRUÙß~Áýx%"©­$f˜4/ì÷Ë‹{?²'£¼ûf{N" úþ”Kq@Î:¡¤¬œPkU»›yiè) ¡Gá*ši³´N~ô gòÐÝ¡?¯ˆ¾î’ä­@–ª8÷nÑŠ’ç÷÷7{ÕþÝ0A†€$Ô¤ïe¨"Ïÿá çÿ'ø"¥=ä‡9€\ìpþR.ë‰endstream +endobj +1214 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 2502 0 R +/FirstChar 46 +/LastChar 122 +/Widths 2503 0 R +/BaseFont /JHHUML+CMTI9 +/FontDescriptor 1212 0 R +>> endobj +1212 0 obj << +/Ascent 694 +/CapHeight 683 +/Descent -194 +/FontName /JHHUML+CMTI9 +/ItalicAngle -14 +/StemV 70 +/XHeight 431 +/FontBBox [-35 -250 1148 750] +/Flags 4 +/CharSet (/period/two/five/six/colon/A/E/K/L/M/O/P/V/Y/a/b/c/d/e/g/h/i/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z) +/FontFile 1213 0 R +>> endobj +2503 0 obj +[315 0 0 0 525 0 0 525 525 0 0 0 315 0 0 0 0 0 0 763 0 0 0 696 0 0 0 0 0 789 644 920 0 787 696 0 0 0 0 0 763 0 0 763 0 0 0 0 0 0 0 525 472 472 525 472 0 472 525 315 0 0 262 840 577 525 525 472 433 420 341 551 472 682 474 498 420 ] +endobj +1210 0 obj << +/Length1 1162 +/Length2 6396 +/Length3 532 +/Length 7153 +/Filter /FlateDecode +>> +stream +xÚí–eXTë·À•NéP@‡RzR@º;¤{jèîînPJ¥%$p@@ZDRJÊ;çœûÿï¹ïýtŸ»÷—ý[ïÚkýžw½ûy6;³ÎS^Y[„ T áâÁ â‰ä55UE˜G~~"vvy$ìC¸(€= â˜˜@Íð‹Š Š ±ä®>H˜½ƒ€Cžó$Q€¬3 ƒ€]š`¨3¦ €,Ðûã w€ÔŠô‚Úò@[Ä`µ‡¹ÿPRu±CDÿ +ÛzºþkÉ ŠtÇH8þÔä`$m.p€-ÔŽ¨…Àtƒb\þ7´þY\É×;ÿQþúoË`gÜç?ήžP$@a Eºü3Õú—›&ÔæéüÏUU0‘u±‡C¼ !>~¡¿â0w% +j«ó€8ìÀpwèŸq¨‹í?M0Û÷§P^KOÕÄ„û¯Áþ¹¦†¹xèû¸Bü'ÿÉ ¿³EH +`ÆÏÇÏÂ$bî=Yü£—¢ a s±‹ÀH$؇ˆSJ@XàÀ\l¡(…ò¹ <0¯0°C ‰þ˜*H´z€ÿˆþ~ ºb&…°ýwHºÃÁîGD@¹f¸À¿ ˆa +ØüMb äß„91 íoˆ© ý 12v¿¡ hÿ +€°ßãàøb$œ~CŒü7Äh8ÿ Œ†ËoˆÑ@ü† ×ßPDþ† ÷ߣáñb4<CL_ï¿QÓõbúúü†˜¾¾â?Nrr”Æ“W@3^!@T˜?à¿æ¸ÀÜ<¡ª +aþÇ¢‚ÿ:OO$êâñçgŒ9©ÿb;æpC¡((„=‹€H„;fµFV*–LVãrº3æT„uE4çHðí,IP~D¾šÐ‡Þ?¢ˆ p„Õgîª×mí„¿Üm•õö{ +ŒøD1LJÍY”û²cn‰õ¶p¨Ì9?f ý`Ýõ÷þ<ëɲWnƒÆ6H´øîn,NÕÜìõ@§ ñ/hâl[ÖL"‹Âv ¨á×åäÑ‹ïʈºì-yî Õ únßâ´ÓgÒ±¸BMìÙÊ3册}ŽªAðÂçìÿ=ÛLw·E\Z¯i$ÅÉIªm(×fÐbÉîA ÎB~ŸåSÞ-+`E¼¾¢É¿“ý‘=i•ºx ÄSD€/ÿÜ‹ #Ìqö’w W?ˆ•îµŽåãâ ‹ß`].ýb ËnÆü0hÖ,MnÔÁÅPÙøØöWÅKFƯà ·“+´O‡å–Ú)/ƒWøË,9ýË蹤)˜`«»!e¼«>ŠÊÍT­³¢GêÕ&Û u¾§dþ~grÍdã›%ØN±“ÜOÊOXØÙÛ|f³¿7¦HK€S}>Y­ÿª4x‹FÎN7Ò‡èt£b—>úĹÛ sí@÷@Z% ïB»Å$êŠ]‡zE¸ç¯Ä™.í…ØÏá|Ôeê.- uÖr]0îA‡k¤û%jœóQÛU ürŽ˜lvž\D¡úᣦ «ªEUƽ=äÓÒBñt…·ã)ÆŸdé8 ƒXn^üÔrùÔá[SÂü¬ïèÑ ³a« ƒ9®ãòŠv°t±ðK†¦ÜÂOnÞŸIšIw¦ÔÔ¡:Se:3Øw*‚3¾/°OD!89B¿Í€ó•¦±éJÑ ã_Zõ6´}® +£eìkoèÞ›âô”àêiWÈ;N•Ïá#Db´ï2T Lw¦åî)„Æ”˜¯øP'ôR–Œ&“¿î}^€{œÙs¸S"´Î‡Ûïõ.É +Öwëî)þQ›£;ÑNýÄî2üçÀî£e×È4½Y†™ü¬×þnÍII#D}ôô–6;–"_A¼ÁP´ÚÉ|åûÜ›Mqê×#kš\™ÕÛü4Õ}IÖºRÕËV7¥£_õ]®EmTm1 à‹sì®Ý¥Š#v Úηlx©8J•#Š¾LSMp·ŒÈ9•?{35¤6>Ë ‚úÖÊš íɦéS\=¶·D^ä³ ðК8`kªÊÌ=ý‚G’aCK²œ€Ý}mnþÙÕÖÃ(Aï¹ÊzåÊ®ÎSÖo>yÑ„ÞY'{äQô„ïà‚eoÈcŽb(…B…¹ qeÆ`¥„ÜÙ8#Ï_„-ôš)'¶ÏXï­ ‘3<÷7¦Ÿ yìUkÅ‹®_JjÃtÄŽFžg~½ÕCwþÄϧ‚TH™pâxÈ8æ2¿·Òø ŽýÖ0Kâ[{K†N?yÁ­è‰S[ '¥žpøGÝ|ä•=#3ö/üQæ|éx"Æi´ýÎq+Ä{‡;Årb¯†ÙdÆ8ÙY“FƒŠ#8o]ÌÖd”•Ÿâ®ÚËN+®æ‘NÍ%‰žXVîŒJæš_½*D½=ÑÇRjS nßÓ«Z“îgm°D­Y'½º—!»ÍUOUµ¢I5oÙÀn`!È"^¡Èõ¢Â=/ž7>Ï<é¾µ4gáŠÆz‚XôOÖ7 ³ÌlŸøÅZFOÉ°p P2©Šà—5øðaÙÉ"ô6ÝCJ¡ù4SFk"ídóÂg%¨ÕÊøé¡w‰ú›_$UGàùÕhò¾:_®ô*²’b©%ùƒ´Î0îªw0c C_XÎÇ +ϨǛ@ÎP&´fÚfò¾ Ï‹Ë…yGôó=wa€ÄÐ!ÅÁ|J†­»p¸¡¶²¶à݆æJ1ƒyf‹¶î}h¹Hì—HƵ‚ËÒ4W7¦Zš ûû~¦¦ 8ßìq„ö¹|·µ»ÄLð|G±§ÌÂô…%)¡{…ƒŽÇÁ9fåüŽ÷>’W›âX¦0*PÒ‚s^ìûb¡×]Íî +øœ?+&µÚQƒä +ôìi1GUöxUJBtfZs†ÅN¥’ŠÃìo¤¾qœz2äÈù6|$›}xð䦱%e(5Àû[– öL“„ZïSn¹Ïî¬#¬oz®½û+ÃáX\š¸’Uœ:þ15CÕög†¢Ž‚” +!5¿zÓMÑM÷È©[hù¹všc_“ý`º^7Åb³Ëûzö¾'æÚËn‡#Cð”ô"õÍ£µØ®`íºº‚gî;?‚åÏR8ÝÙÞ6ù +xÝ sÓ²nZ§u8yð¶l!•íŠ +E‹µ.]t*Ô•mÄ‘cÒYP®'dv* ÷,ô•¨âªu–NYç°20²?CÌHžaAó†”Ń>{Ûu›KÔwI7ñû¯|O$ÿä'z‘ñR[Ä›"q1¦ô:\+ÑM!“)Q_|kõîñ²Y£¼r“S^|³ãô¦YÙ&Ÿò‚½¿c]Ûì2ny®?NÝ{ŒìŽø\_ù™²…Á~ÿë]½QQ´[ˆúd&…ñVœ,ÃJܘ-Áu¤hè16÷Üzcý~dæ¡?Â`õcÜ+'ç*‹v7BPå$Ö2”ªêÚWlÿ @v]m­¼¨’•'(öMeN| +ä䘉T³ÔÝR6"Ôo¯kíÓî©©2‘¨ĵ}“xÄq‘׉5C;\sÿ U©ï¬Áy%«ßw"r:ݨëØ|6„Òò¶·a† ¯=.g;™zò—ãþÇ×=¨{ÏÌÂŒ}yBÝãy>8«uåÍäŲÑãädžs´áL²Ó;÷é3q¸³Ñ…B°|Î)¨â·ÞMV i¥ L±Üšû‰¢#MÖ ÿH~nh‡¦¢TøÆ¥Üû}hvy_†ra”'âÉØ /Ù;­Š7øØÄ¿JTN(‹ã·J´é”/´Ïñ¯Nf§ÂÀðÄ[Do:%ŒØH”EJ¡–OöŽ~¾à? uíxùäܬÇ}0ú²!¹õA†¼È©ZÆ6šéØúŠi_yÈðrm™R¹ê¥ÊÖðFÛêv¯@¾Ž©AÜ5½íØi‰Ž±(ŸËú÷Ê=ÏÑê/§¤û\LŸœä$~vê¾µ{ÄQ<®#FæËRïÌ©JO–É‹˜#úÒñü>r ÈýA×,+C~F…sÙvh ±–L:×Õ‹ÑPÖUU£D…­®INëX€/$½bKm\ùTˆýkZo‰jôžÇÅõMà듧wÍ9ìä͚Ù-Y#š[$29_-!pEH‡¬’$"Åí³ëP +LîI:Œ ‰§sÑã©« *Ün1Òcÿo„sv³·Q.(—<£àœ R œyãMqs½~lªšÿ°#;x(3E9œhß๦®x:Ô‚21i úåPû¨!Muî¡Iˉ3Yؾu1U ³¦.¹q÷sSÇñ¹ŠÁa…¢s]/±H ÍO'ìÄ'¦§Nð]&šm‘fy£žë,íÌ`3‹fÁ¤áEïW—(¥¬i¡M¯éxêªQ‰°œP3Îæ¥ÇâýûKq~îÝ›iæ¸/¶ _ží?5›^ž‘‚NâÊsÖá¸7õ?¹-¤(#w›…dÝN«uT·guL‹»šX _¶Û½®Â[Öóm>/õ\H9sS8¶P/õŠF¡É›¼j_ ÷¬– }UŠûì»ìe¹¡7çg]F¶•V…vÂç!Ð+$ +A󨼯™j´R(ïõó ›Û×+ž²p@Aòš :†4*µ‚;/û‰ºyÒŽt +Iàbµ­{†F,#*'õô¯ű <„4VDê5¢›#€7wgÝÇÚÃQ\Ì*krñg²éÏ×çl°Ò»¾cŽeÈíÛÏ£±~˜º&,(Q£Øs«ÉBé+Ìô ~·w1íý*^E¸ýë«„èƲ1ã³Ò Ǻ–[wÇAG®$´c"e¤²¨b-r¤•‰ï(q¤-εVö4/+Rþp襳!>ô;P£à ³×Mo®ÜåÉkã¼=u“"ú<«¨®?´Ê7uî1ø%ªHLXÞ$.½"¶|W.OÃêÅO)©·òè(û­Äj¹(Ž ) +J_L‡v0 â{jbjÁÄqÄe ‰yL¢LünbÎêJïªö¸¬¡\턆=êrcÞŒ™IES•±³þÖ‡ò`GsòǤ!)ÓÝH§]ç²K +Ÿùl.î7ÃÇtÊ´hkð^k|/»áéE×M‘üÂ/lÞ™P4èýŽÂŒÎD_/H™Çl—ùml7ÖMd”CÌ8®8g +:$QÙ×H N¯xèØ| D>$™TÔRçÚy¦ +í=÷¦ƒ>­ÍÓÙ]…¥-§oÙ7]:!ÃIoDßÇ•¿7QçÇo£oÒd¤`y 1Sö{In“(¨¹Ü>®†ÍC!Ò~[ï«÷YŽE˜W¹MÖIÐè)Õö¼ªÄûhU¬ŒŠüq¼—ßZПñ/&ðÎÔôoãÛ )ì²Ñd3xñü÷•?¢Ü›Ú1ÿPŒE¿¢†kS€ùŸ~ázsŸ^™ Ó} %)pÖ›eÚDÁc…{îsê’2âʺ ¦?rôí]±vºÌY®+c1ƒ|Ç^ Óën¶|IÂÜl´PÉ?¬¼GÖI\òsõ +Ëé§ÛáµÆI E.Æ7Ê" Põèª%·ùsm¦7|óó ],×?ã«»J‘À¡®ã4™pæ8b–„·Ñ†^ ì?²NÛþÊǹû¬äý"5c\:¾Ù}ïÎsMŸÆØQÏȺýóý‡;R¿SÛòÐ…ÞåzÃ{+¡‚Swº+Ô™*Ý/?ÌåÈ 4ýFŠwǨ³ñIîEÚÂùHC’ßú«•ˆe=ôX<”·Í²-Ì©jsuHiÚ]´®†ª’-¯ôftÜ®4♼NŠ<·ÃF¿½'zaš¾¦o.¦³†‹lPYø‘¡Ð!¾=Nu’‰ÿùU +ǵϦœwĪêXDå(¿ÖÛÑ1f¹-ÿ•Øa#«„Ç[6WزýÚe3üüæð¯ÁcðF{åŇoW#Åä´oiÅtSúËœ,_K}ÁŽ=¹°+% ¥ÿ°õJ-=R %Nr¡êæzw=ʚƺ^~3ZiÄVI!¡Q[Üb¶P mæ©õ~G†¸™Âdâ!—‚}É™‹´­…méO×Zļ$è•éŸMáÁcšYù©¸d³avvfŽ^ß]Ä-Sí ø”~rÜ•øá6Ó='ï^ÉÎâ{Ž;v…S¨KæXâÉPÐ6Ó Éxúà ë[2¡uH8y^1™‘_—”¤§öboÄì©aÚÖO.Î’j•ÊnI%׈>O•<²4|¡HÑ©‚×oJcØÜ2úe#ó9FÔôy´ÏAÈNŸ¿Mü^)%>¼xÞt%½§[vØßl9Š/oØ„—;Ø%¡l|îU +¦âD²Ãjsm*y”ôªŽo†j ÎG•ï“ؔ޾¼0cHâ.½и$§Íý\åf1ëʺÄ㯯ëM£ßü)íçç(TÑ—EéBmAEz´M¼rÚ9OètÞ´ÝJ,5Ò*R¾æcXû¥ª|-’J2cd! ÊøZy™´™ôrÞ¡„8ùãRÙbŸüWÝYÅ1Ÿ:žcÙÉóã/pFåùóozA!ÌÀ±²Ë–Y\ö‚S{&ë„è§BTé$îl>‚Û¾»KsÏç—JòÑ;ŠR zœ®yeµ~ ^°·ÁmRþÇcbÚ³A£ØšNßÛY‘ÍßÖ¬³`Y®3ê0På­oMò^ñóMvˆÞöL™Œõ¥.íCzd maÅ;Åï$$º®3_uÞÞ €BÞ-~DµV©j„õ~+wˇѮßÑÙµÔ®»ËùLúm÷MtN5“°Šl¬@ÓQ¤Q‘ŸC¬¿'ÈàªE”øý1„ôÍÒÜÉh¡d¦ì¨l‘¶r»Ø©+b:®D¹ìD±Ì´Ý’áüˆQÿLRv*aÀá±ÞØ­²ŠËç´Å¯$3ÂZMÔ(°/eH'†ÏæÎ~¦–1ˆ6q˜ØÁz×õ‹Ó ÷ñ5Z¤ùq_p»bO(%%5Oµâœ6Ì‘i4¯¥š‰— =ôV«8<ÒûQævæ+²CçCéõôæ»›s§únX[x•€ßÕ?‡©]W6‡m,–î\«±òf¨ÐN™¢Cø¬÷lŽçXå˪>­wҔǡ—݃«Ïf}të² Š£ŠŽ5™Ãê~QzN‘f±Ì“YõÓÛz!ãö“œÌÊÁ=î3 +r¹âXåkâà_ïO¶45ä$)è¾pÜZ‚òí¿OŽ<tøÄÔ÷Ýwq%IÂÂqÚ=ÀvSl ýf÷À(¯[«ï†èRwƒ`;ZV‚xpŽ¥ -Úã×*§W´Øž* ÀC–9wžjñŒI‹:,€­jø|ÇæX¯3ZÐöŒSþˆd­wżx9-êz'ì¤ÊV%‚ís[gÆÄzícdàþõÍÐ>*òékĶXi³*¹€yº§ýÓUVÏ7ióÃoÞ{göÔ^º¥ŽE„à¸õ"ÿš@ÊRC£g‹Ø@ò:ôf@ì¦ϬÄÌãuÕÛßï¾>¿µÛ#ÉÉ4 blÎ5{Ï\¸¢‘µ¨eýuPÈŠLì¹+ä{½Q룚CþtÖu(ayGêùã,BÜUÜ*—ˆ\¹)Z@=—3’â4WRC­h¢9œeÛéø^2Ä£|®ñ‰CQŠ †#9§VOËcSÞAž³ö:È&fæ>v²ŽÔ’ÿÃh‹*“6S™~ɧ,„ÈpØ{~YK¼¾¢ÃRÂÕâ›ójõÈ=ðÄN¿&l5]u0—*µ=Û'RÀçÔwóüÃv&yÒ1iÉÕƒGÇv€ƒËÇâv-–=¶è™°d½´®]]0Ž§öŸm RñÜÖÉucP3Rx‘ÚôÓ€sÒ'Tod„—tåvL—íwSEÝð¨šd;ª”úåþ‹)ÚQ¹í%˜Q`u÷õÞ‡Ùù5pZÞ'  +v³9ÎŽK>ÃÆÞP +¤Vþ4 +UȉŠÒž57Œ¤s3| -ñÐŽ ªZ§<þTîba­¸¼ ’2’£Á%hæ|‡-2襤 BüÚóuj¥ %Ó"ªeoþ¥*ðÃ0ÑÞÇ'«'; Œû‘2AÚoˆÊî*qæXÙáçD»î¹½šõœ]ø±¥\Lú60OV·„³ÐJ@‰—jø½áÊÚ”FX€¯!ÁU9kWÔã;ŽüиÏVÁQŸ‰šÎEÄÖ¸¤Á²“™º£!¯_G Ón—¢mòÿôýBó¦¶ïa µ`/Y¢»ÍÎì8úžñcÔ\°Ân ×\ö.'d âã˜ì$–o5|p£™77ÞW5i`; º> endobj +1209 0 obj << +/Ascent 694 +/CapHeight 683 +/Descent -194 +/FontName /CNRIYY+CMMI6 +/ItalicAngle -14 +/StemV 85 +/XHeight 431 +/FontBBox [11 -250 1241 750] +/Flags 4 +/CharSet (/beta/period/slash/B/a/b/c/d/e/f/g/i/j/k/l/m/n/o/p/r/s/t/u/w/x/y/z) +/FontFile 1210 0 R +>> endobj +2504 0 obj +[698 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 380 0 0 639 0 0 0 0 926 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 675 548 559 642 589 601 608 0 446 512 661 402 1094 770 612 642 0 580 584 477 737 0 893 698 633 596 ] +endobj +1207 0 obj << +/Length1 1643 +/Length2 13442 +/Length3 532 +/Length 14393 +/Filter /FlateDecode +>> +stream +xÚí¶UTœÝÖn‹»‚káîîNðàîP¸w‚»[ ¸;ÁÝ!¸»»»;l¾µÎ¿’³öå9W»íª›·)O¯1«f+2"y%:!c[C ¸­#=7@DVV’ ðñÈÈGF&b4p4·µ5pr˜¸¸ØRNVf#7 7@ÄÖÎÍÞÜÔÌ@)BõÏ$€5ÐÞÜÈÀ kàh´þØÃÈÀ + dkdtt£YYÿYáP:íÆôpLLcs#G€!ÐÔÜŽá%I[Ç¿ËÆNvÿ3ä ´wøPþK“ +ð!ilkcå0šÀ1ÈÙ~¤?\þÿÐúïÍŬ¬ä ¬ÿÙþŸFýoÃÖæVnÿÏ[k;'G =@ÖÖhoóßSÕ€ÿv“›;Yÿ÷¨¤£•¹‘©@ÇÄJÏÈúﺹƒ¸¹+ÐXÞÜÑÈ `b`åüWhcüß&íû—ƒ¸‚”°"Í¿ö_còæ6ŽÊnv@ãŸÉÿb¦?üÑ"{sW€#=##ÓÇÄ÷ÿ<éüW–˜‘­±¹)€™``ooàÇø±3Àƒ `nc t]?„èml?–>ã0±µ‡ûçT™˜ †@Gƒªÿ.°L ¬­ÿª°ŒVÍaþXdíôÙ öf¶ÿa6NƒÝÇaÛÿ)qŒlÿÞ•À`tpøS`08X8˜ý©|Ęþó#ø8ÇÿÔØ Bè#YøqDþЇ…èúûq|„‹ÿ¡ä/裒è#Oú}äÉü¡<Ù?ô‘'÷‡>ò¾þ‡8?òäÿÐGžÂúø”Šè#]é}´^ù}¸¨ü¡tµ?ô‘®þ‡>Ò5þC\éšècÝŸcàúXgø‡þ9¦?Ïø±Ðø/üðþ…â&á?_œ¿ðCÖü/üèœÅ_ø!aù~XXý…ÖéCÃæ/üаý ?4ìþÂoáGíÿÂ+‡¿ðÃÊñ/ü°rú ?¬œÿÂ+—?Èüaåú~X¹ý…VîáG3ÐÈÑöß.ÿûu!,lëêAÇÌ cfcü§?l_=F¯ÿ÷DóoN@IQ#' 翯%#'{{ ã¿îé«èØÄüãö]Fp‹s¶F<ÉõAÅÞb¹%Tx)…#íµ)<ôÇk<¨3ö ãÊ@‚+”@ óÒOI§Òå Æ&lØõBžýJ (ýˆhTÙ©JÐçFÇÚº`™¿»‘­ÓC÷ wìhΗHn×Û!+e™8r°Oà Šçç^¯½-}F7á“ì&Áéd¶È$UÖc†ŸN¾ØæÚ.æ`j§Þ~~[Äî^²\ALá +Ï”ŸMá{e¤r5Ù…cúiI¸¨žÁ%¥Ä ƒÇ>w;¤wú5u°|‡âñEq_}ðF3®}‘-èq|YÍ ËmL\. %ôi?„~'~-‘d÷ rõsLÕÏ®wÐ&žßfí?©‘Ì‹ÍT„¹#@*3Û.ÒFM§«aeP²¾¾EtâƒÁQÖtOI•=|¾ÑÿÊpnƒiíüsGgb&Åæ‚Ôý/«æC6åÂúKm¢òÓbÎô˜®Kl]zþêy[®p©Ÿ¬&â;2ú¯âŠã`Ÿ›Puü‚§ÈIQÐcŒûRøoÞhá?–_㽉bã‘=žZ¹Ð\Í/WµÂN³à·~Ï_ESŒ&Ê*×Xšù\Z‹'׃#—^r¶h{›G•i(‰Œû“»Û¶±*ÓåñrmLèÝKò¯di±è5"1uDªR÷G5Ô¿&Ö„bñoá*jÝR t¾)ùç«jb³ã³•(i@Ò”¥P¡íêesFÔ ekÀÓàwÒ601`gY*ð¿•›è¨î&Ë‚á¢ÿ–ir‰“` ï Ro˜û;1¥öä׈݀¶tËô˜­•;öUÙ³»þ÷¯ƒaÒïóï4‰4Âc<(X÷üX°S±Ø¤yX#b[ˆ©i`† äRèÛÎ.²žD¾ÌµÓf1¥Ô9ÝGŽøÞI½™Ò¹û[saS!'ª x“êÄ!¸ÞbL² ;:ÞC.–yte½¨y“?“Ÿâg@ܚǷ̔.Ö3xý>åÂ1š¸\¥'ÍÕqj° (åO³™ýX×Ð,sO $fàá×_ML*´cj©¥û®nªìjWIÖµµ¨uu$Ôóƒ@c!¦dh¡½ÐNÃÀy‘¿!>̦Èë{ðÑ"5XŸ)Ö–jª£ÓÝtüšÉþm+Ür©ºþÄaZ“o‹ëˆgY4ÚLcHgÝ`v¢I%äGh +'ä>ýªíbGð;ÈŠ©{ »ÕÙ¾×Ð5ë;˜ä½¤éÓ 3U–iàm¸Õj¬ kL,ô[tÑ9*ÊV²LA,á0FñZà'„ˇs*í„ԤƭñÙ·!ù†h½.\24á«Š­—ìtMF¾¹ +cxR‚ ~ÿ_8q<ÊSŒ `Z. `åÔi Çôæ® eà¨ÂÇŽ•Ýæˆ7,zÙ¡o^x¤Â5¯ª šŽùÈD¦än%‹¬¼‚i¸—}×’ÂAqRŠ¬÷:á³QqJC¾_³Š'¨R2ô6ÒØ]%jŠ[Z…‰WlÕPÝ/Ò–å©ÄéB9KÇ´bçшÒyǶ\y~Áj>d>É…Š©fP˜tL¥¹›;­Lïlà¦Ý±ž¬×M·Ãš@‹»Ö»ÓÍÂ*`ygwOOÔðï–Û^ Ê¢\?O·±ÈùŠÞÀÂÇVIÖ$½%Úú‚´5fŒê‚£·dqfy.PÍàTÅúm  ¬ÐVb ó4ºmG…;Qô¥ÍìCÂá÷)ìz>‡ô™§†AÖ¼cx纞Ý$vYάžÃvkmŽ¯±÷Dë˜Ä4'GžEaaŸœS«ª¹¥_ ÄG•‰!FÛ£ZŽœ/a˜>MÔbXvY:†¬rE¤ðá®3Yšuê" àî×›jF4ÀêHó¸IÅ^à Q«—-H"¿b" ã©ïѧf¨½å…"±Ö/r{Ö@Y6£÷¾¾2ÖÉt“ïi9Rèp’H*ã[÷È5åˆPì±/‰9\'´ô¼âð… ^ç@D†4w±s_)9ý²==: }ÓšHÏUƒÄ8·Y5zËšH!‰.u€±‰Ïˆªäí,ªX™Ö¡{ݯ2qN¸'yÂ6Æ#}§X ú‘5ÍÎe/Š&£d¹ÿ©áÝ!þX0»;íǯewH>P•”»Ê[‹ v˜§ÃžÜH@¯jgxmRaÐÞÐ2èÙ¸‡¥ÃŒ©GÀˆ«|l¢vÀ‚¹à®¦2¼²ãdÃ{®¿Z‚‡Ê#—ë˜<"UnÚ€I uxh‰*l­Ù5Êš$œ=ÑìqhWÕuNM´…Í%?Å ·½éšpaö±èK} wE!(]b¼ª„›“ݶ@4ÇF-,ejÂÚVl„.PY„KPŠÑyq°—úšÎ>ÝlE4žs&Åå›VnWXT¨¯¡gž³ÎÜž{nç.'!`ýšU¹·jŸQY? T2‚uü=·2Ž¬5Ÿ5â[ÉC¼ÍúÔò/Š!ÜÝK YA÷Æë)úÂêi·by"†MD4ÖyóE7&Š”³A W\Ê\¸ú#1!í1úlAÈtk5ö—ù¯\K¦Çsu“y0§gù‹Í¾òfdý醓È_¤ð\úAìM^<"Eʘº§§^Mã?ÆFI3¼_v¯˜DÝ@Z+3tkWÑL²&\DÕ—”æ­~(û©%íŒ{†ÞêZ-NV áÅM‘(]¤…ß³Qé0K}\Þ(HeuT&Z<ïÅür»våš? ?¦_чgP¿‰%´ƒž¤"‹Â»¹[`¢XˆmŒ<ô5‰o/„Ë Ð(’eŒL“?€ÚWE™¤{ó· "vó’)ÒC¨p—SáÚã4Y]wŒ¨ð µ÷îûé‘$-MxêE:T¬)µÆ'øy:óD9'ë…]ÁC­¦ŠF2?¤…(x$,ú,l"ÁWyR®î»aÂ1Ȧ[ß Iž–vR¤py¨ ÐxFÐ]×+4ZXµˆôÕ&ð9T¬ð@è$º|#Ei!›pÙÂ@ÕŸ?çñ93æéAF‚GõDûg[˜&y +TO i½z“ªAW#ÕXÇZäêÁ¿i…üÞNÀpný&¡Ð÷&„©U›‹{Æ©‡W{o§º£o+uÅS阾Sßê÷ô¾9”GIòì“PÆë{H|[äÌoòï@L~_¸÷Eö(‡ÑßØ fŽQT(öÑój YvmSlÛ€d°0Ö´uÔ'sÒÖïHªI*@Z"±ÄáC7]4*5Ë?B0²ú ÓÌêý ©E| +Ç)ªì´ nûõžöM¡–ÀÝ 9 ’û„nR¼¢ôÍh„r„8夦<¿ÍH‰V³;áä.Áχ9í•AAwù¬øã™™0ã:Ïß-^LŸ}Y×8=)Î-‚”JÖ«AûuöÌúüï¹/uè$jÎÛ¾½³—wR:ÒEgkîf¢zÚG*‘m¾´é4 ún¢KG[I,'=…—âîâ€ò{IŸÛ +Gˆ MêcÅRü (N¦•ŸêŸø¬çÜã÷#ó˜£}uÝè?’«miÔç1ñÓʬÌSضž]«9¤›†wŽhñr•¨QÑ.d;ìFìûwbA9‡ŠÄ!J®qóäE±¹Bmz[Zü~55ü^¥Š±7.úÕH¬Ó ¥|*»ÜdÑòµ‡9LTP&Ÿ†8?ñÓ¹?7êÏPpU3bM [ÏÊ}à°¶N@˜ò‘tðɲíi»{ÍÛŸ}BÅØJS/ðÑYA¾Öä6«ì£ÅÒèõc´·ãôî€r½c-@iõÒ¦ +@“ðÝ,¥É¶Ô³ñÔ<<;¾‘èÒ½bíû©NŽHðt1…þhU¹=^r¾{Êã/Þðd?~ Ÿ@ýLølnafØ×ð»É÷‹Úf ‚úè¸4õÂLÖ¯Òq‹ AN7øW_ÜÇد|äx ¾x„ó0ZÀº¢ú¶á=×£ïž+²’v4È2nuqOí+£o©©Ô¹¢öJ(|®ø4µq¿®u]òPjz?¿ÿ–¾ç÷(5›die`IŠ;3®*¯ØR’– qKÍÂÆÙ7þ…28Ž¯ û ÷¢U9 ÞÙŸI5\ãZy¡ˆgÕbs +ÅÒDªóµtäU€Ñ²ØÅ :Á:Ü#T[Hº„S£ ²Û¾+Ó›¦øà-à9}§3Ãé“Fã ^¢vP÷ÂkHÓ±]6¾•§Ää1úE¯?­(éfÅ Y-}ôÕÎç 7b×0ŽÔnR.F®ÁDÉií$.BúçgVÉð^K"|FÔõW\sÄrãЯGvuª"Oéo~´ê$+u§Ñ¤ˆá ‹ö¤»•9¦MÓÖ— ™S¦í=~%⨜Dšþ’,•’«£ÓNƒrþ­¿9kžãw¸‰¸ –! &+]•Å•’.5ˆÔÖƒI`BãíR,ÎUTâùš$I²”,üŽÂš/ °fÎbgæ7¼ò\åoÛRTDò÷ÎÀv¿¸O]ÝËQ–E2ʸŠbz#gÙÖ:Ý ôwí¦ +ãÉÁÕð¬ã´:ò”Mf8§˜×†$ë—ŽœëX1À‡`À1]ãE+áËl|Ù0I ŒÐ>ÅÌ=ñíý]ÊFO}¿± æÄ[7NÚ‰hÈ -dÇ:‘K&[þÙfoLo¿¨IÒ wa4ÈË×Î Xð „‘¿sÿb´ºáa?W]Ï¿³Û>ðîcć.h†¶¡FE×.z8¥_·U€CÒ kè ÑòÖj7/…@µ»d”är4PîjpŒÂ‘ǤtjïsëÀëö÷(Š;°_mÝ߸Á¨‘ðt‘ìÃõúntl%=­qµ?c+&RÇj‘l +aÓA­âì{Ãï<ö_ypiʯ„4–«ÏLêê*u~é c“%awðý¤GŒˆÛhùÔšÿ’eÎÀ®‚© ˜&þ>pöŒ:hÎÞÃ$­d—jÉæÄ-ó•AŠxÊB|`Z³’š”‰(,£²»CćMYþQh5kwû™Êbl«Ëq ÷AòJ8Jò| 2º‹tês‰&qå +F¯†’×Fft éÒ#[ÈæðP²\gÊsN˜¾ôn?7™å˜‡Dáó0£Ï…±ç™(AvQ™¡ تÇËÄ(¥¶}áßj=š +×óî“"ûLÑõë\({€]Ò½ù™+*(8´• 3‘ w¤ôhÞÉ>ÀÌ4WÖ'c²¾ÖïèßD~ï ’v%U9ÒK¹›p9È¡orêùã& ÆIÑ€¥e.µhgenXhR:ž²KìõϧƒÁ»´ÇêëÀßI]I埲)wâ 0¬N +s­~éä€~½áGqä +b[ uŸ0}"jÑ>)TY~ÓJÒ> ç¸- @ÜŠ9 Á°ž¾òÄ¢óFõíšÅ “Ã< æøJóíÍ)eù+×½I@ÊuÝþöê!=á™æêú‚ù@”Fž4ïwð†Še°ˆ§[Åܱ…÷2X}ï܃ŒbäViñ +›úƒæ;„zÂÅ«“b¸§bºqÙ~“ë\4D5Çjabí<í/<†lKx‚;Ú!¢üÄP×µk"Ð’¡”’çÑ +˜p“ã3g^\jˆ‘‹^·7 tà&9ð@¦OÓ0®¸ZiÄ{MÓ—gßòznJS½¬)y¹æ° +ø37TOVÑ!ù§' >ZÐg¾® \ŠÕ‚ N^Ýä °qߵ˪TÆ }òìîd‡",Û]ù·­$ÊûO Ò›äLvé®óaW—5îWMçÕ€øêßb,ÌfÜu¥»ãj%â<žÅ1MAüjGQþL`¡7N0L†Cä?G캧’:b˜DilUD£*³qœé“M)ŒWD[±¤R”uk5sÀ‹ï.Ø%±„Yóèpöê*Š}pM¨†ÎS ñWR3Ÿ6šE­« Š¬U^7Yl¶@(@lÿ´Ž¨÷Ip>4{vs… й{ÛiÃ)½çmö$GÑ—­@ùNXBi«$g)H5ï€ðú:r &Û~"ùÔóÎÄ!Vt"ût]ÝI‰k6šÑ)°çÚ7a¿yx»Êwƒ6D¡_Y¸<_]ŸÄ¨EÞ»×EÔ‚ÝZªÖ&ýx¤[>? é’íùB$Hƒ¶"ÿÜˉä°Ù’†…Em&>ÄKüÓPVé»Äïµ–F蛯ð[y- Kò{o|Îþé¬TÉ ðnµÕßT:ˆ3]0¬hÁF Ÿjžçx£QpîÅ&3ñ/°^—,y`¤Rïg س{éO@M¢ê=Y ËYÖOÂ-ë`çôË)W"'lÕb¨gÃíÔ×ùi ‘¸9ƒ2Sƒ×;„¾ªŒ\^}8xåêíβ6N¬‡bxkc 0—=z !¿èzfZù{\˜8z†ð‘†[çlÈû»¶Ú¦·L*Ø â×ÕÁŠÐ=Ý;óýX(Qf›L{¥ÍãÛbÛåá~-8P.°ú¾78Ë$k´YT¡Ä¦"Ä“Ÿ•5g“‰”ÐÏœ±O¦ f¼¥jU—ëV7楞¹äžGCŸÆj?½;æ‘z98ß³„…PÌÞsû‰7ŒôÙ5Ïb aÞQÀ #q(¶T- ª§$/5-/ÇÇáà@EÞ~¦Ï+ "Ã/Óøî´Ãnm‚n")û[TóiÈqEÞMût¾HN’Œ¹»áײ/ûª9Ø*}æáT5è» +>˜Oƒ\‰Å0*ŠY#k;šlÿ¨ü*ãáû>cßL©óüÌ—Õ¡Çqæõ˜šLÓr^•6QAP–d×Tö«¤°x°é9o‡lhJŠƒ!<_6U ùz®W4]°Î/õâNà¾é +½ g6…©l}®íÝ8§b—úÚé·‡+\>ª¾ñÉ×Ñ,º”ßóÅ P¡ú,Ϭ/½ äG¸¡Ä+^sßÖùÊÑ뛡:àbóüG*$ß•ù%¨ Xi ÏaUSKñR§Zmƒû)ÊÜyºKä +mïš›{AŸÀ5ÊþZ7n ¡ŽöÙ:Iq÷Ìì¤÷EÙÜïL+0Ìamíu¸&€Jå3=å$ z}Šöcm)”a@GH9Œ‰ç\Ñ^Æ#EWƒ¹ûêª)"W3® %GP¯Ý…2 Gõª}99ÿ'ÁE¨¿’דt• srò™h؆wõùë@OwÚ鈟F?pú›×éb ‰¤:«ôD÷ºÆ…ÆFÈT²úåüzsƒ‚U4º1׈œÐë”èÉK?(ûzŠf¬*<|Œ+u&àÊΣƒ{—Žãu#Ë•¯'ê{È41”b–þ ”q'ý£cÎðÕ|N1¨CàõîfVÉk­¾ªÊYô{uJ]oUB jÞsºp>Yß=t¢šõ¦¹g°äÙœxð5¾a꣡¿ÖÙ#”w$9–*«þó<¨æ`˜ÉÚ·NeC1èn€É·wš9Õb‹ÚÕEU%YN!3\-ä•ÿ©(`îãD—_é|j^©Öª 2 Â]žVtdÐÌoÛ¡8iEÜÈÆ^IKàu9õ,J·ém•®1Ì^˜¯ôÝCu{‡åÞïŸS¾" ¹‚*+DbÑ Ãy ìJƒY÷Å6/kÏÀnKuoá}ýåJÕû§_FI¼ãç¹ï³eçB™KêÞFüøÜ9ú›¥Æ·Ñ¨&',|3-î ]×ð5)õI]ã–ØMU³ *©‰Ã8ó‘!­`gƒ¶;{¢»¿§öúª†‰À8—T)ˆm±ÅÑeÿ*§¨Ã¯ND®GÌo›Ú:}'«J?ìóDÖ)͵s·¡är§N-Fus¯t0O3ïv²Ïz¡—ì™4k­&‚„«,‹V]rþ·m[—aÝB`áŒëZk7ÒWÖ|òùãU-iÐ`³È–<‰×.¥ëì¦W‰Ý9ê{œœ½ÕÓµÕŠ%÷f$…¸'pªÇãT3x³~@/òØC)ÍŸœ =!€ŠwïÆsBÛ÷ïLAçÅQzáG'$‹¨#â´P:óQ›&XávüwF&×ß’ÍW6+ò5VðèO¯Ž_ñD¬Þåì໚òö<¢HvoŒ©ÃƒW¼ñºkTx»e_ÇïÚÉF5Jzõk-^á%¬³}•øöÚ-iú£ß©¢›-)·D ±hõÄ¿ Ò»gª£ÔLÖû´ä™Aè®þÍ[D_îZÐ3†G™t³át—ÈXÁUYf"ÁðØÞLwáavN/ÔÔKð`$‡sÌ™"Û¡$³o~8Hêr>ÍŠGÎZaÅtrìF] eËlã!sQ³5øé³£L¹ð`²±cW¡RJ¬ÍljîR“å²hŒia"H·”šs­$³ªÂ]›ïǑЗC7_'e§c B&ÒÞi£ÛÙÙ„TÏ°“@Ù6úßäyd«µKô=E:AY²ow·w³(´@«ß??Âä)™Âr+NÆ o}æ½óónÄnT[QbI/;kx.Ñ×`¡J4°CÐ]œú³–ª9l—cÞÄÓ *úu@÷;=§žïƒ¯X|µäÓtAὩg¾Ñ¢{Q<ò‡¢~`Žp+ÚÞ싯UFJgóž{¬×§iJ¯=ܪî¨g©^€T‰0×Å>f½¯qïÀ­WÅÓ.ŽqB+±·¦–Za]¾·è”ìü8PÊDjo}_÷ÃNÔ`LÔ{>—”lV¤¯âlëÈ7·æÃDð­ê/éV/Çš{ú–9•tPæÈC.ÖÇ÷Ÿ©®ÓRWš§6K©ôÅ"Íƃ=ûK”É×PLÚ# #Z/xáu²5á+c•×7jëÃW ¥SNzQÚ.ï=r·sfI;Êoé°0É2ìB€ˆXÍ [¼z×Ë@Ù¬ÖÑcôy\ìð¸3Ä&DtŸÖáI~VÆÆB=Hð¬ZPh5K“Z*| +÷Öt¼B‰6ääošv›ä ÉØg¿‰CÍq~ŠÂ9´[Íéú™7˜Et;¡EøUN—«¸ý¬j{fS-pÍò\›ï(”J'O¸ªd 0÷û‘«ï1,áèyí¹¸\ŽƒúE¨¤ûçÆëÜ}‹*Œ¤ãü䵌ZÝýÙX Ÿ#”¬yd£ ²£²u£ÿ 0Áž GÁS,Q·›NŠ8| +’v®—q#çpŒ,¾zº¿dm/èAd ØɧÏa¿5ómiÌ6Ï +~´Q¾‘˜Ô‹¿æˆû_éÉEÃ¥$²Õ2ÒÚ æŸÝ‚²DD$ºT%S$ðh\3v”¥Ý/[Tï+?Ψ7»d× ŠûD-œ© iÁûòI»¶ÓìÍ“G!x’A#r§X€mQÒ/kÎr6?¦jºR:ù™ßHOÊÚÜPî±Û•¸Ï{´ WJ¹•²‘„ù̃€ø¸ž€7âz´ý #àخ³_¿¯œüˆgìÆ°'‚å)ìSa^u;§|ˆn9±Umy $Nö›ÎSÖQ +¸a-IçtýOØõ{f×€é}ÃV2qŸÌ½²_²¾"ÏA”B NÞ-ç‹%_Œº¬âQ©;×^ËpÀ‡A˜Wl<Ç£@~®1ÜL¬ˆ ¬!#~VÂÜföDAÛ‚:D;§•ß]ÍÒ¡,}Þú¶•Iµ0ˆ6GŽxk£* @Œý¹2Êß ÞzÄ'E Í.äÛ„˜§ƒj©YœwëýÆ®Z²¸kÐ…4FŽóo6YiÞ[h¦Û°J7x²ù°:­~}‡æuá;0…©O'f¹NNc)g2ôË6„6”è3C'ÒåüÔ¥JsO?’Ø‘õQb-J=⬊Pç>g‚Q ð1÷j·hãt|%Û5hSáÂl£bç«v®n{lô³zh/³xPoAí!y&¡-ÞÞ‘ +ÁeÛ~÷ìéW– Î/k …‡ã9ÚÚ½,€R~°ØÕ ì¦¸z` +cTgh˹ +4Íúßµ¸ •{qÖ¶ž’äYÐPÇŽú9ûØS´Ð4ó¥)r¹àƒŒÌÄÁ…5][pÑØý¾lÆyDÅyª:N:`€Óá²¢åFH§ftãsŠ°tg¾¶J]†1¦ÅM¸b?X·šÉÚPÅI`”g‹©Î;F•Û0a£R1`³×”î¬ü9ùE¯ŽaïÖÑ)çÀ)ªUS/"7ÏØKÉÒC +)7ËGÕÃÕwd+ÞhR&  ÉpÙ<-HúÂûçœ51‘7mÎt"SçÙ“i›>z<jÒ£FŒØÁ_™í=Öx"Èžõú’Báø&.‡¿ñ™£iøjïÄÞ屪|Š×“p—:–Ú’u¥O«¡>Ë +J†®3Ö2#¯x ãÿ¢qªRÎe› ®†&^­¸+ÿ©ç…Á˜Ï#ÒmP—ð6Õ9jó@(¬+º¶åÛh­=…Ýö°÷šþ^KÙÁ!;®Ø×Ù5*¨Ç¤”ØV³ŽtM¼é!L©&ø¦\?pË=w&I„de‡³ï{††a'ìó‹¡hÛfF|ê_?‰uÖƒïõzÐlž}ÈQ¿éi„0T.!Z-¶„ + ‘>±¼öÆfiÙOkÞ¼h#'¨‘HÏø¬ëæ4@ËžÚFt‰ IŠvÙíÓ",~Ú)…£¨&ÒúŒœ÷gGʈ|êo£%‰%GG¼¿`{Ò‘q2FJ«;J¹²é0Øs!ÃâáûZS0—PQµí¢ëóõ$t|ê»J¹ò IyNÛ¯,îƒu ›L$6pÃâWÄÏu·-š©˜)Kø PhäÝÅ0OSyüÐÒæõ¢"|4ü؇QdåtÞ)c˜; ñà[%“áâÆMšðÑÛ$®¢˜³Ø/²‘ÊцW-OQV3“$³7ðMñjƒ ¹ Î5-AUú+í•d£È7O›iðñ’«G9«m•4~ì¹ê# ´Mi¸¸âÆ„B1ô^Ü exÃÒ*†ãP ·C…cßĨ›ÙʨØBR¬ÝeÛ’xq1¶ +ÛY¤fD¾B<¦æbdt¦Ùd[$è¾ýœOrÖZ3†/!*w› Ó`œ$ê6§†uËahšñ5T¬6§˜•Äyz  +p™$åµjÅÞ‚@è[ß’‡Ô؃«¹ÛýM6{9ùéPwŠÉy J…}É·³| 3q½ –ï÷Q3Ìã;¾<ɱ¹\¥rÅ¡çgà梾!çR y@ï×/5â‹}WÅ–ÙøgAnK¤ûSJæ[pJF^ÌÚ9}†‰É(DY¬"Éƃ,œP`V®¾Û . ÅQ`'‰å_u•. ÓŽAŒ¼tœ·ß°µ£¢x¾Ý_ÜÙÿ¦§,Äûêr»Õ”üós3‡qT¾ÿ³„¸‘ú™D.SH>vؼedð/çmtñrmîž?tƒ<>³?–=ç~Ë%Ø2¹ôm’Š£…ጰ:Š’2©S86ÞuÈ-´RkP¤¼). RŠçÓrc`K^UÁxŒ÷ì´'þLÌGåºkɨհG4Ûa²†ŽÐ:áФ<\NÚ%ûµî}+¦½g¢¹fÉÈÁÆa=¥’Oq튾RÖÒžÃ_ôp ãñ + ‡¸8áóklkõd§-‚ªð¤OÚ?¥kÎèf`“¼•ßþúÈ\é² -S›þÆ뾎λŒiHŒ *¿lÜ„ïŠ4ss㸯¹ç^Í÷m&[âE$Ç¿Þ¬2Ú¾? }––žÚ©™GÑ`*é]‹Xùfõt ›°\7½F/­Ñ®49¼ýg[¯§ø}쨡göÕ¨&q KŒ‹ÆÄÊ¥Švm9$ÂfN…ôß îtHpêâñlÓÚ ˜b "„±Äд~j;™K*ÕCõá:Y«5f£ù¨ÊE×½‚ ×{L$¸ãu_Bf9½#1ÖºÅgËDÁ194hì‹EÉ0Ñéaš!F9ptº^"tëX[.¿Ÿà[OZ¨A¾†³0óæ$DFÝ×cVëB€n‰ÊÍçpÅ¿,ðîÍ,è9(o¬¥€àð +¹}Ý‚ÏCl3—¤@€àyñAÕf/0o•WåP\ö u}6f2E#hÝ:¿MM†Bu¹û̘¾á40íÊýuªMV3äS+Ûm£œøŽ½Ù;P¾»‰þ·úËÄqx¥—õ`J) UãŽÊ§Á°vB×äœëïŠ! XؤԱåQ_#U]vÓð€Wئ ÚmL$t[.K2frŠº‘a¯´¬§dfþ?ÜÂi7(j¶M†‰¹Õ’×õ‰¿ÛhÄy‚ÀÎ8/x·üB¢Òã2OQ“H—M¹ºë 3áw:11tÂ~ YÐ)–.‘½ý‚ß +Qwz³`q‘®åИ¸ÉbU~†>Ìë³oÅQžO~î ÿ{ïªK¦ 2ôÛ'!aoƒ™ÞÝ€ÀZmß✃7ÕPJ…Ïl^ºìÓªé+O_æ„:à)cgYw {ï×K4’wÈ -ïb9 ÆŠ/;ªK¥U·GsÂÛðµ}|ÛÏ’¨'ý2HG>¿‰±`A^è\¨Ü´«R¦„”„.Éë¸h«ÓV6{®ñl­=LúªáGåé8*éÏ=¯ûDö['¬‹‹šíŷʹçg¨\*ÄèèzR‚Ëà +5­=*\í­Ó¨T/ £µœ]YV9¸-èzÓ0%j~|G,KôO@7N:õMâÍØ ­Èñ¹è ’JEN¿(¶…™ ¥ qÍüDN€ÕmKæ'õx§¯õKâ±V¿e-.$,ð7L]ã=À±ãòÕ$¼÷u Õh×ýªÕEऑ˜ÑR ;H*Ì—Xp»ÇâßÜõÔ…%Û€6j(6ƒE•È&Ì"2¶¤ÄA±ÅJSÜpâël¦Ç_ê¢2XèÀ½&ÊÅ]gbá1jÕ‚BÑ8Õ4„‡,»ÌW-Áκü¢~DCPÁ·5㑳…DãZ·0ÃVþë²dhÇ[Ì$>ãî• €‘5–?ɾWN°=!šL–«%ãm˜4¢¶Ý³o?0 nótêùI qÃcK%RµúÜðv]qt¼µ@Z0£Ít>=Ó …ܵx½Ê¬0êÁ\TÿaÛÈ'ZÑ>ûq{¾ì3NÉUýníÒ38þŽ÷Q Ï5ϦG,nÄç…F(âô®HgUÐÉ5°`ˆUfgÉ!0ýX­(0H"G-µÜMjˆ‹ÙÜØÍdEßj¢%¹a}Í + lØø]þÑÕð íõȤ 8êÄ4Ôd“ˆÇꄵ=74z +Á4 ¹BúÄ-Þµ­vì+°ךº˜dÕQ<Òß©lÄ€aXî6䜎e˱róEM„N躥öð½Ci(LÎœQ$Jä8®kÝÎåðtÈ/îog¤-ÚÑ®e-äÞ\üÑ1õ? ßýóL¯cø˜ù-„”*D¡KÎ|Ðgè]Mn—ÐR÷4OsF â{þ âóŒÐ©Öª ¶úÔOæ]ý=®|~rP¢‰Ô8µÉyéìNM}×n¶Ànßš7à=_'VdQÂÞù®Ã^²vi‰çRÔ&PQ^)ég!)¬ Ò&þ]¶B\í/ÛN»ù=Zn]ʼnõ)¯K«Ù«#¬BE86òd‘ R´î:GÐ]GA´ùï;ã^Þz2iz°·³(ÜÄôGußnu{+IRÉÝÞ¡ô8†žHøÕ7‚A3[(½ÎØR¶q”TÄá:êíÉ`ì Pj#Ø[¤­l^’IÀ¹T[³DÔîoêÃûùå©‚§6ã:8¼Ú)¶1BFF,aôbØXYwY%pL¨BQ "¢Z4qÔÆ*lÑÌ:ƒxN–añßòÈ%0°§©{ÁV¾$Ý‹ßjýàút$r•È¼–Fs¾^`¸vŒGpÛîy(Ø~i"ð‚Õ|ëvëG$6œ1Ý/TdïÜÑ€Š¨e¬Û‡8 ² êì(|‰ÿ{ +ÏÕ£Œ±¢–¯Ÿîô0H·šèÃõÄeñZm—¾;óñçÖ€­K|éJ­!”‡†µSÀSö2ÁÓ<÷9TÁQ8DC“éõÊqèž=^6òÓ&Œªd:¥0ÚÚ‹ˆÑ3ˆ>le¬ Ä©€>Cša[—øJ"ã»É%dþ홸–$KtóÞXk•Ñk‰'´û‘ñÛ¨Yì'î:a¼±®ç›_3™H—9‘}Á0ÑÙŸ‡z¢?)TÄ8§ùóÇçU}—>Sù²3‡X™þr“?-Ép Åã*nŸAsÉF3Û(Sj/OWËÖ©æ±+f9 +–™ÁÞ礓9›žì jUm÷=Ú=X3Óm¤•N/3kÝU0mNÒ¬h%!4!Ë×ʸP&¡Ç†&ƒòÂ^ú27“ú·_@eãv·KÛs]ÂP'ªòˆiýÆý: ÔÝö‘ü>n@{QË]ÿ÷9ÍaÒ¨G'{w2³ôûêLfɱ>¢o •5êÌÞêÈþ.Õ±¥W0Žw†/&ÎXvøHNM´X\YQRŠ¨.êÀñ—`.®•e½§$üô˜XhxËA8EêûVûzÿ85w=0/mi|ŽXÖñ Ò9gˆ¢ŦPzjwO ‚†ÆÌ~PÐÝu„~åÞŽ2­ì> endobj +1206 0 obj << +/Ascent 694 +/CapHeight 683 +/Descent -194 +/FontName /FQAJBR+CMMI9 +/ItalicAngle -14 +/StemV 74 +/XHeight 431 +/FontBBox [-29 -250 1075 750] +/Flags 4 +/CharSet (/beta/gamma/delta/mu/rho/period/comma/less/slash/greater/A/B/C/D/E/F/G/I/K/L/M/N/O/P/Q/R/S/T/U/W/X/Y/Z/a/b/c/d/e/f/g/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/vector) +/FontFile 1207 0 R +>> endobj +2505 0 obj +[579 531 456 0 0 0 0 0 0 0 619 0 0 0 529 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 286 286 799 514 799 0 0 771 778 734 848 756 656 805 0 449 0 870 699 993 822 782 656 811 778 628 600 699 0 971 849 597 699 0 0 0 0 0 0 545 440 445 533 478 499 490 0 352 420 535 307 906 620 498 516 459 464 479 371 591 499 737 583 506 478 0 0 0 514 ] +endobj +1175 0 obj << +/Length1 1157 +/Length2 2818 +/Length3 532 +/Length 3587 +/Filter /FlateDecode +>> +stream +xÚíSyêǸXt:§ßï0gNÿ^“ Îlƒ`(H€ Ò{OäT%”F[]í½Á‡\í({7¼¹Ñ³&úDŒrÑÍ? èÇ,z_0Yy¦Y*°Ozao¶ý¾LªcŠ»PâVeò•ëžé±º ZC.Ra'’Ï ¯Ãw¿·kvϽ?)gÐ@“—¤¬1ÌVŽéØ’O|k~èjýÊØ øžƒ™{”d1Ã%›G¹¶K…Î>SX¨‰Éi7"|èq°s–bX'ïî# áÙ¸å)˜7)¤—'J{Áq ¾I°Ìð„s÷—§àÃ’°°fŠd—›V^®m½ã©ù +[š™÷Éi."ÛW§Rgµ<¨µãô-‰vîÔŽSl—Ï ¿xlC²kßJ¬.­\jç³L²³]„å”Æ›÷ØY±Q7¶Õ$¶Ë乶åo•–wÈŠr$ªò`áò}fÑîȄ囪²Cáþn™„´|Sªb‹¥Óꮎđ‹é_IÏã¯WxIÛ#Baæ¾èŽxææ'ïÞ«„ _ÙÉë÷°JæHƒdñ\§sJMë©a+WÆ÷šÙÙÕxE‰î†©çäP+C ñ÷X0hr ZÌœ2e‹ö¸. 5ÝT²?‡î®–9ÃÝ2“éù¬~4½œäj{4|¯Æ`“ÛK lÔâì›úákuÃróO`J>[m¯Î–éãyå]¯+¾oŠk9ï“^%"x·wæé|þ±´8ö \á§ã’TBãÄtUŸ¤žop„ÿñ”2•áÆ­­§æ–½vÝ «—V®B䊇e|OK^ï.,‹»@%Zq !|¾Ž“m#q‡ê¼ïÇzŠÎĸ[ ¥·"¿¬òxeç7úzˆ=–õ&›ößks”3ÄäîݽUC]aÞ†ûa»z¤“þÕ÷ÛÓkÃmËÔy”´œ9ãÂ'V¯ÝÝO¼ÿÔNî5—Lý„ÚHº#ˆÏiÄë¹LȨ/« ò{Í–‚ŒË•³!›­ÌÇ®f^Iîí™â—phÉvÙÏs?àŽ@¢Œ‘Ðå Ñ+ZrxÞ{nE)ÌbKÔj³ÖŒÈ¸“u­G_ú+/å›Î $üäöе°1 ?¶ßJÇÁðÛ|'º0ÇÓP +'U;^À³o¾äûC ×Þ ?j\®ñU=d×Ý£§iOtq{;hqQ;ù·/©|E¹Û¥•¢p±ÏsR{_ñtõ—xÏU}ÜuÂNaAyï‘ÇÆg7.›ÞÁ‹k?ª©œ X+KŽúÍÿQºœ½Ø[í|êY¡üÛ{ÛÇn]ò³¹U;Ïuf±ØüxA—)l‰R)1ã#ÓþæYÒÝ¢tMFE½i©¥Ã¡›ÆČՒ’æÆ—Â&Ë)ŸëFC| +øº™1;_:vÊ:kœ½ÎI½0ýÀ_è¨p˱á‹h÷t—¢1s‘©ç‡kNh=TÓ½“Ï/-¢2ÇWz­bËg8'³òð]ð9tô„µ‡£ðÎ̱ù´LŠî£«IÝŶ¹õçåó ÂÇìÎEÔ {“¾fYd…f¦l8PÒ‹‡"(¢•ÖLáÞÛõ•=‰ý¶E›‚ѦæIžMÙm&ÞÏч¥6Ûû…ɬëú±×"píF8“Z/R™Í«Ñ¨µô˾̼-En¥š÷¹©~‰\='l¦=Õc¦ÜÔ±äYzW.³°oêkÎÈÊز„èv7'·ò†?éE:çý·¾zf±Å¯ÎD{Úu(¦)ú˜÷ó€¸Öi†‘™°2ÿ hÆd‡“gÔdσëžž„Û¼ë+׿–¥°%Õèû‡ q]²ÜQÛk>[¹|€–Ì°á$n¾X£ÍËbÌɳúï êÙ¡€“nÆŵ5:×6v¨‘çÇþlqʶi®›ëYNË]áÞÈŸn¶­·Ú×­ÿxUÜ~髱bŒYž’ÑÛ'ð˜­j§tð¬m%w‚¬ g²Re!‘ƒøíNùö~ÙZ§­ê-·W¼>[ÒȬKaÇŸ¨Î¦;mLóßã=×Wº ” ç«3jw´|;³í™XÏRÎJ0Ë¢Z?hZBë~TÍŠQpt‘É9ßf6¼rŸ b<²2ð;×á%MJö`v±¡üÀx ¨…2£i(²üeœ¸Ñkíþ?¼?F¶uRÉmÖÿèë9+œUMÉ»ôA?ÃîôÆÑi®Š3*êÍMõ¹WùBݯeŽÏö(·Úr¯}™£gWÚ\̲ý-¾U>t¦§Üñy$&¼¹3W{à pê¾ü¸˜ÕˆÇ¶¹&„ÐË|‡ÖÐ)ZúSIoyßìÁryq[£ÕÇ%{ß»tâ}ìRü—|”ý”?Zì¸àçÅä‚ëqnålÏ=ó6IiðôãøÄñ´…M<‹.øøˆ +”SÓ¶•L6¢~×ÄßTï[ºh»Êjœ5A¸›ùs¹îysýuÃaÂTC(A¬úyÚþ„óÛçykß[žªÕnc·¡åV®‰–÷ì4Ñt7ÞìøÏö!ä‚·[N\Øá’)¿^šm,í°%öÌ Ýky©­©¡Á4±´¾pCy3K!¥é[Ît`ëÌ›õ^P7ƒ‹éÚªþ¯²bãÂë#yì úmÖûϦÆ?aÖ ‡9ˆF*Þæ©÷|¨'ìñ] a¤ö5ÜŸ Hó'Gm‰"šeÝôš“]]¯Hµ½{S×ãçÖð4ÆkA7Ý"2äz^ÉÀÚ{Hïµ÷õBĪ[Ø¡{Fì]Ò»5ý*gƦº¤åÁ6P„ÿ ÝàGî{‚²2çâ2w5i*¤‰Šd·8ÐÉ7¢\` ;µÜÞê3ùè®zF>«7[sÎî—a¼BB©Õl…íáÉcÂç xoGO^KÛ[.Çïƒõ +q¼‹¤æȶãò™6y»"`ÑzËÂõkšægÿÃöÿÿ' dGgÒ(8z ì¿_Nqendstream +endobj +1176 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 2495 0 R +/FirstChar 0 +/LastChar 106 +/Widths 2506 0 R +/BaseFont /JKNJCM+CMSY9 +/FontDescriptor 1174 0 R +>> endobj +1174 0 obj << +/Ascent 750 +/CapHeight 683 +/Descent -194 +/FontName /JKNJCM+CMSY9 +/ItalicAngle -14 +/StemV 87 +/XHeight 431 +/FontBBox [-30 -958 1146 777] +/Flags 4 +/CharSet (/minus/periodcentered/multiply/asteriskmath/plusminus/equivalence/lessequal/greaterequal/similar/arrowleft/negationslash/floorleft/floorright/ceilingleft/ceilingright/braceleft/braceright/bar) +/FontFile 1175 0 R +>> endobj +2506 0 obj +[799 286 799 514 0 0 799 0 0 0 0 0 0 0 0 0 0 799 0 0 799 799 0 0 799 0 0 0 0 0 0 0 1028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 457 457 457 457 514 514 0 0 286 ] +endobj +2507 0 obj << +/Type /Encoding +/Differences [ 0 /Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/arrowup/arrowdown/quotesingle/exclamdown/questiondown/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/visiblespace/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde/dieresis/visiblespace 129/.notdef 160/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi 171/.notdef 173/Omega/arrowup/arrowdown/quotesingle/exclamdown/questiondown/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/visiblespace/dieresis 197/.notdef] +>> endobj +1172 0 obj << +/Length1 2198 +/Length2 13294 +/Length3 532 +/Length 14495 +/Filter /FlateDecode +>> +stream +xÚí·UXœÍº® Á‚kNãîîîîœwwMpî®ÁÝB ¸k  î²:cÌù“1ÖáÞGûÚpÂýTõÛ÷÷V}U$Êj "fö&@I{;F^€˜‚º:€…‘‚BÌ hì²·7vòXxxX"®Vf '/;'/+;@ÌÞÁÓ daé £ù3‰ b t™ÛŒ],¶à¦Æ65{SÐÅ“ bcPýó g€*Ðèä4cD`a˜L]&@ Ó!;s{׿c3W‡ÿr:9ƒ¥Ô`IXÑÌÞÎÆ`4G`R´lòÿ†Ô—tµ±Q4¶ýSþO“þ¯ac[çÿL°·upu:ìÍ€Nvÿ=U øo7 ÈÕö¿Ge\Œm@¦"v6@ó¿#³$Èh¦ r1µ¸8¹ÿíÌþÛܶ0IkjhÉÊÐý{9ÿ5¦l ²sQ÷tø§èŸÉÿb–W7Ç äÐcfdffOÿþï_úÿõ]v¦öf ;ð~àà;9{"€7˜8Þ,Ðôû21ÚÙ»€?·Ä`nï„ðg5ÙØLàacÛ?ù¿#v“£«½ ÐÌÄæ5ä0Ù¹ÚšüYu »×˜ Àät2Ú¹¼fÜ&c[pêl îÌ?)ÏÿTý÷†øߘ\ÀØ hg4ÿ+eùŸô¿&³‚+;ÿ)álý‚ŸÀÁÆÕù5û›ÚÛÚ¿&`yKOKà«8;ç¿ÄAö¯†ìàgq¶1v¶|MÀOât² Àaoü‡9Àö.î¯ã`oK'à_3ÀÊæö®N¯X×äö× °®3x±ÿa°¬3Ðí/WðÂ2ÿ£`U;Ðß"ÜžÙÆþ¯ñü)c úÏ”,lt~m'ØèèjüºÒœ`c‹?GðUš“íÏâÿC¯!XTä•À’¢¯{%°ø+Í$þ!.°‘ä+u¤^ ¬"ýJ` ™W·Mö•À.r¯v‘%°‹Â+]_ ì¢ôqƒ]”_ ì¢òJ`ÕW»¨½ØEý•À.¯vÑ|%°‹Ö+]´_ ì¢óñ€]t_ ìbâdlj tù…leŽÿsßò°ý3û?_ °š+øHpr6µwzÝ=às™éõmá[™¼ØÊôbak™ý…¶Ï_øg·ÿ…`‹¿Ü&Ë¿,ú Á²ú ÁNÖ!XÊæ/[½žX,,`+»¿leÿ‚­þÂ?›ù/[9ý…^¿¿låò‚­\ÿB°•Û_¶rEð Íäñ‚­<ÿB°•×_Èþg%ÿaåüsØ™‚@. ³÷øÿ¾eDEí=¼8 ¬àƒœ|>ròpûþç4 ;øÕ•VÌÌÜlÿ¾eL]À§«Ë¿.uðýõ¿l_v@ ÐaiÞÞ”/ÄêsSX™ŸDÁT9 -¤¨Esœb}ÏL'bðb<¤Mñ˜œ#ízö}E:&Ê̱û#¾sD‡Ê„äï@ǸԹç=7£½t¯V|íótÏ]Ò›àCÔö¦ÙË#H¥éõñ²$ÂÁ¬Ó¡ÃúÕø‘A|*8ú­þ¤zëÇnùl^ÎÚ¼sØ“…C$? a"žùE—ò½@ï8Ëwåc2)ÂUOw»üÊu•ˆš,+`E11õm¬ßÌPMåŒpèAÙí$Ëm¤âQ*s‹]»[üÓhÚ'ò7t¬›†KyirˆÒØQ»î/Õݵör³˜cöXQ0ßš˜ö|¤†X‘äOnNA lZüˆ\û°˜¡0TüŽÉM Ë`Ì3Ž`¾ÜÊYM¶Çªâ߱ŘãÀÝEŒG +fÌÉfnülûÆñ=Ìíeñ¥ÞdvseÔô³Ž˜„¹AϘÊËÏ+ü!IWÎdV»Á–In¢IèÖô†V#H”Ž²5öÁ—½Á÷áÆêÚÆåJ3öÅ󊬰ÞHIRÖ¶Û†”k£|_~·øf4FmÅY‹ç;Ú½ W¤dl!ÑæÀ·cËÇy¶¾wsÉöÑö‡=ìÒ6´4´ 3íI5Ê¡~)P7c6Ýßky”Q,ÔG5¶þq@Ö Q£õ4!á6Çç®YŒøΆPñÏíüøþf.ì6æÁ÷nF(†v.çñËõJ‘ª§DH߇0ÁÒÒ ïñ7$³˜ÝgËÜa†Î8/Z!ËòçõmÉî©ö¸·Qõ«bXo1‚i£& ìõòÊŒý¹¨XYwAÑ~"fµ¤!Ö‡¸JaÆP-ÜMVu•¡úŠ°cÉ“¼{Z×»E‰Vê­iƤ\8D‰‚®Í[‚RÆ‚fB7h¡6ìÖE@¯Æ*’˜¦+£'úßÚ¼SÑ+dV£.ð@]ˆØ§ç:Y…›ú²h–ÜÑݕËuþQ &t×Û›t‰ÖD⡉%Pªé$3â˜á¦i%ôÅ7Ž`œJÏvF\¹EY$ u4”ëÖٛъâ¿ß…‘wÓg;l!ð6²ÇnÓ§þN°áU¦ÓtÞ=MPÔr+™«×Ñ,yøbÒÞñ6ü”øû±!#v!ßßѵµ®Ÿ<²kôK Ój›nö”2U+^Ô(ѱY’Ì2‹öª[ÏU終⚌„‰Ÿá¤#_6­!`¡ïD°O냤µäïÒ®}ëq'é ‹u 59þ¥¼ð@vR^yôBqëV¶òÞj +¯¦ÿ0š…{ìVEG½pL›®µ5¦#·Lo +ˆÍ¦4Ôã–RëÒÜ~¶@-p·¢d (ÂÓ.f(r4óc‚pr]D®cö9*j¢ƒzå{»é¦F‘,󅂉#*ÆgvJþäÌÀ’_Ų•BTÂÂQ«h^Ôon(š $DxS„À°=uµ1 <¹ûEag’.JZ{5„Û‡³³UuS­únA6'Ð8ÒsBÙ½¸z‚çå(…éÓáÖ<%‰†"O›Quõ®'¬«#2_:Çïè(£ºI›y©J-‡‹ûÙu­}Î*1ÆÃ’r¤ù‚Œ©XÒë£‰Þ +b¥%…¾Ùƒ.Îg­6èÙŽbQ¦s5›¨Ëß8”˜ ÕU«»Pfáå.Ý —øxõ +&cjºª/ºü$ôE¢°­nû,7ÜÝ&ÝL¦Âjí\H¢dv†ÚÞÃY,ö—jê>ë;ËÙ‡ÖaßâCò‡S°ç*¢dÏÕÿÔnûF.æ[»äm +¡ºZÂp´+éìýÈéš«÷ë’pµuÞw4q“®ghekîÜSqÝF6·ë!Óçmך’ùH®xœ)÷å‘ñG©h'þûÄjAAQ=´3™µâeçƒ7ùRœ³ÃL¤qŸñI[Ç“Ý -B®y3¹·I¶813y6ÎûTùt ¦Bž­kÒ5 !OÍË{½ƒ!‰!DÉz$~ÏKí”Q±ýŒã=û.Ùz5áñ(­ú%Qâj¡<{|×MÚ;WuáºÁ†¹`=<[ÑÙ7 †Žš01!§‘Š "A„qòvXgœæCÁEû:îÈ}rÞ¾B\‰¢N ú£nŸm¹°°ÜG•„£8ׄÇr67•-ã 膧A}€¥RÈ9h5 Ïÿ^ÆYÁ\ý ÓŽ+j¡§& º02‚üŽ‡´<ô‚/I,††>L Ãw!HÎt§^`lI•ª†Ô,<ôê¼®²cÆç:Û÷FåÈ„7Z…Ö›Ž‘Œ¤åkz¾–ô}$bÐIJ:srdüŽX ›«Éx#Ê é¾è‘•à<8¹9Âtxs&žHv¬~ù,iˆ0_¢Fõ#˜™A^®‡®^9IWNBžnge.Tœ˜%²IÚI¾38`9ƒïƒ4=)Vî Ò4nªŒÅrUìô¶ R·;Õ› Œü\. DáEåÞ7Œ%l‚QO£T¥jªË—Ón#ž ûu€] ʶæQE¦< 9v3?oÆ·F¹&¢«=õÎ1xÂÞ~1(Mò¨ç¢”Ù´Mû¨„zHömêž&‘7•5f4®£—ÞØq£¾E‹b˜}ZüaÝ\!É>ˆSîe.d}¨úE +ÛlC!AjZæ_Ž:!qDºútPR ²½z\Øm>ëGXÅ!H}ÌŸsUI*sÌœ£ãÖwçuº(º^,]뙌âí÷`Fþ~f:…ð‰S~ùó~`@A`¯¥²ž¶gEEdâýÎ"Iºâ4Rö!äuV@Ôs~¼/vá%­›¤Î‹ûýÔøù¶‡#ç$«<[k1iøqÂÖé ©]³I'‚T~Vô°]$&a +%dehb»SÍõs>ž-Œ.«Ösž¼Ü•·ÐÅÖf¿Œ2Ov$¾£Ã ÒÞ>èJ†GÜ/ +PhéÍiä{„Èq˜qšà1‚Boõ(÷3>Øjˆ‰]…˜œ²Ïñ}žpø_+Ÿl¢îçÛ¿ÁkÞêC>z— ÿà–0ÔúfɃpêå—!üÕ0iô§ïšã¦|j‡dqYMç!³ðSó¢ôrÅæßÚD+]ž#)NkFõTÝfRø@b?J¾,‡ìkÛuTÏx,I/‚\(ƒø#׉Uƒœ§‡g&—>rÓÛïÒ¶nGî_‡áØÀ¾¦•l@¹mlð·'D_½`‡\©·lÉå/%Z7üíªÏ'–I—äóø|ïùÊßmF2ì@V—%ê ŽÛ€Ø¶‘(ã[¢+v6V¢€w€ˆ¦À˜„ˆyÿiM¨^µùöâ ¢Hi½f`$».ÂÍ5Ch{ÌõÖµÝ ¸†Hqý`§Lðê¬YÏoDÝr‘õÝ.–È®õM`•ÄLû—Jc¡•hç®skVÜô»ò–Ä }èŒ [RØ}ê±e¿ûÍ~f€ÊäJÃb o)^å íHG—& 5Ø.§´I|˜þhÌÃÈ¥ò¾r³ùFû–>¨°káY3’iÅž0gC «ƒ.R#»mpù‘nK³[>νšæ˜ïá izÏŽ'§ ÊÌ'£N÷`–ó„^¶—;£ÿ>»®Ö‘‡Ò0YÀ÷‹ÑûÏ,s;ªÅ|ƒTÂ^.€®Ä¨—òƒÊå”j)ì{’éão˜¶qýIñ_G¨>p¢bÝ$ý¹Œþnûa :¼#ìZŸ;lá;¬ù® n46·–ƒQŒkl“˜;^በÔËÉ„ÜnÅo°‹ä±êK#,NcBø6_Wª†…ÜÊŽ,&Úù%ؤý¾×Í×~¬aðÕÃ#}ÐI½­QúBºämkH·Q&¿y³Ó£}—û覉­-OQúŠRz*fÐöÁÌ襷óO`J ˆYÄ2À8=6¹·^Ô·z‹%fPº/›¬üÉfYËwXYWÊõŠWq}s8ÎVþù}f …+Ò†ì÷F×O’¿*;#²vli Ì…€…‹é_¶x`ŠƒÎù¹yR¹Öy¢„¯9´MRu$8ûà«¥6ôsØÂ>/Åe¸VuP*¡TßØÄaŸÄß1±ÏAÃAí™:¬±†Î~ÖEy¨î^î_)p”Yá•.¸¾¶#Ë–WþæúÐO\£à©ªz¹-äpëà×Hó>–eJãn ·)èÍA{+BñÚ0¬ÑˆõŸl¸6¥\wH—){oî§VR™nâ{íiÖí4³•ÔÅ„~‰¤‡â… ê¯]²ŒåGMɉz¸ç[Óá~ØaÈjPâÈ’Ú¢J¦1§™Çá.ÄYë7é„o¾9ê¢Ã/§õ]"/£j=5šñÇ2¤b—qd¬2u´sJ« VCb®îãôí(›2}Gó3º­‹G‘FLš{—£KýK¹ûzI0:÷$”9VL#äY³ñ@°3¾_'ˆÕÀ“µÑÁJ3ãÛÇ9?YªÊ­§Å÷ÛªdO +­'õqæcKMT3^DZYbsÉ@/ÞÚ玣¹¶Q[£ÀÞãÖ‰ñÂ/ p +Eúeع´Õ¡w¾Û¶ 3°[é3Fq˜” Ïº*ÂѾ8-#fî+m@æòïɪuÒ¯ÍËYøÅ+(9½ïyÛ€ƒÑ/£ð%ëuÜIDxÇæʹpm¢#ÄíÛKä{u?3Ru$#0n97æ8I3º÷vbŸ w¿´}²ˆÑÕ༺~@9m¿1*µ9×È°ªH*ïx‰ONîÒŠmjŒ72½Õ}ïJ3dààÓ×d}NŠO|iùk'­ß)…•Úà%Ö\¥È-.å•õ( ¶TÛ‚3ì@šŠ›ûÁˆ¶ö6ÌÄÚiRñii“}-Â9öLsžÖA:¬‚å?¨6x½l›Õ³ðL¤Ž"m©ZɶDœÏô¿º¥òÔ?‰ž +ÃG:«0Y=9c§Ü‡N–ÒGʦIßÑæ°Ý “š!„ã‹B5~ýš“¡V‹×7CΦœÇ ä¸= [x.;`®N®­ГÉüņ&DZÌ4ÍÙ2˜¹xs‡©VUÜ»Æð8VåzuvKI\TÑ8žn›'yÅÚm~š&å»a +|ërKAü¸(4¯ê,/™æ¸¶sR²tz—5'á&ÑlBqìBàHÀtÈëæ||ŸÛ„ŽQåúÍTX—<¸:¦º§aÊ 9VžÒ¢pºÿûüÚ§âÔgš®Äs9Ï-û«ŸÛ»}úOv³‡Ç§Çdèh‰ Á§#n¢Ã£2í’{'NŽœÔçhÏÞvá.—Þ—g¼ÎŠûÞúÐˈkó6“Š(ßÛ±è•4Çй¢`NÏÐð&' £–V­¼ÅõŸ¬ËŠeú ­Ÿàu1¢GõQG2wiu’ÊÆÎo‹ó·ÀÅ—Ê5-¨fuSÇ b-Pû ÝÊxØ &ãK‚DFO‚§FµTŸÁˆ ¾réz9f«gV]yÒ§®“ÆU8Ç)R’ò Åvêà_ù›¢òÎìŠ>?Õ‡jå¤÷€ÊÎ¥Ù}»iÉ‚>ÂUU*÷4¤, ©LÀ—ëT‘¤!…“ñ)œ¦¨n¼Ì@k¹ø¥/ÛúrU7>„¸ãÿú‰»Ýܽ,² \ESñb²G ôpºUZnc%&ytL.ÇJd½ã,+.R²=Ó®Ó꾄r˜ÞáácäÆâ!Ú£M®Æpi­ЛQDO«d¸ÿ@ô0†Z±JMm¢ùO¤!“F]&R½MlE"ªÎ´[›*KFäeÎ}ù&OÉbyF7:â¬R6c`Ž÷då +1Úhô¶ñݲé@Ä'Dmúœ¹?»Ôoô‚é@/„Bš­µö折blMÁØç¼é‚7ëß÷ÆhäL;´°xvc?¬£ùU+ç´Ó—[Ž˜%?¾s£ö?©ÿ5u^™6£hK¡RZK¾Ïí©µ›+¾¡§ñÅÈ“zà‹N¼¦~ ˜XS ¥õr,ÆB§ëtd*š_‚ Ô'8«Î¤{Œm;AC¡—#ã„VÑô&TLÒSŸeQ΀?nI¾Î&VÕ_²kcíC%X$2Ç+laÕF×m==Ta|noXé. Ê·ýR*+†—•!Ô!œ‘5©ù®  o…è~åý—Õïe2r•Á>r*ßµ®¤d,ãÃVò éŠb†õV˜#.4–ß ~_D«j,±‡¿m' m&ܬ @‰O¯°Êk3Íàh®ä­4¬Wè»2hðìÜdùW&¤*2Ø\~4F2ŒöÂ:ÐâRÍ1²Ê½ãSôTͪIÒ/+äŒTaü"¤éy»»XD>/yÄ"]ã‘¿ñá·k=ñKœz!uÚfŒ6nÒ‡ŽhÜɯø¦¶¥æit·˜&¡ÓVÛTbÅ0ÉE©É§f <[\꺋ÖÏ[qDdãú˜¤?e˜€ñ¸è¤ü}‰L¹ENêš@Ö G¯¸YÃf&/`?ÌÖÚ®:U9²—µZ¡æRºg óS¯ žgÏ:Èî‘\Fd:÷NF´ Àw5U~"@ª¸@ÎÏöž('=X_øÅ õ6Å'ÏŒ`W›vOºÈ§•&8zW\• Yó¢ƒïÁBêÕ–Vìóúíèìõì¹ÒÎÄé¢7…¢$ âS‘sérgLˆ¼ýÖ¿—ÒÂ&L±‚›ù³wªmÙ?‡kDýl™ïžcö¥ýù)ŸÆ¾>»À(ÓS-?çÈÏ4Åÿ­‘ʵÎiÜwߣqÊæéO¤#‰üIº¨73ô°w¿”KXovf­Ÿý‡9!Ùñ%KåqÊOTN øJs³*§Mwu¿³ÃjÊ„ß[Úq‰Å®Ð7»äzs]o'tÜ%nO±š¹K í C÷i:[, û¦a>n¡§dÓʧ]S§?ÿˆÁ¾”ú7Ð’Ðó•°X6$tE.n½Q{ž´tGkh•ÖÃô&§‘úÂâòrBaÙª¿ì…Ð#ru…©Õ[g¶ý1÷G‚ `Ão)²IŽ$Šèl×Q7ï€i$B=$õ}‰>³‚Š…õS»-ÝÞ}¥#zÇ=7)屌h‘âbõZ•¹wiîgú׳ÛdéÒ#åDzÕQ3zuAÜ +ï_8yŸNT›ô⯗OÖö<‡0­5œ4IÎ=üÆÄ'Odªï$b¹Ž3ûFsß>Óp8™n|Ò¥‘k (®ÊÕ¨ŽG6œ¤FíOý½Q+á&NÛ½KÅ?fÈC ˆ¦u¹}Í]µ"ƒÔïvæ;gJ-Dú$¥*?êÈò‘µ‘”r‹Û„ «ìã;G€4Pׇ¶E_¬Ž93œESµÚÃÃa0ñÈÇš&)Jál÷mÝ7—[½2m\Äæ%ÒÑçyÑZ€Å¨ö–#.]z4ßýÙûz&æ¾æK›ôRooâ–"¹yNâ õÝÁ +ÜF)¼·Cbòç4Ë:ü£úfØUsÐÙø‚ç‚Ö 3KÚÜ}ÑêøkBñ@œÝ_»è\ú7úëIë‡:?9ð[Ä =÷ñp9’W“F]“dwÅ=ý¦±Ç¾qÕv£ë]¯s7žÓ®Ç\N`Ô×Þæ4©“ÖÓœAj•ÈæNv”@Õ!uˆ&L‡ ßÑ7ÈdRšjcWjÛ39.𧅤º0F?2¢L(;5i@ëÖ“|»¶š;¦*ÖN7|;o‘àˆÔX3@óE1kÞ¶„_ Ý­^—U9¤ÚTÿgn†ÀÄÁ»2š¯OÅÅ.r[Œx3´ÓõHLœ£ïÛüIo=x$ìš·+ŸX[‹dZ‰ß\Í€6–‚T˜Sßòø<CswÔ«Dí¿U©ªÐš™·›§Ùo2Å:†«4-\ãe©Á˜â…¨HHY¸  +~Î>Ø™Å!hˆ®MÝ]_sc;õíD +Éý0ûi ±xö0½$^àCÉ53<ÁEjÏc÷îœ6û8±`¶W.百Þ+žQŒ»á-S]ÒTÒ`ží¤))àÅÉ:$Eå×¥oØ­U÷ÐÞ“$)‹ÏŠ÷®w"E/lë§×v};êþ¹âs¤ kÄr/bÍÝrFË Å¸²y.bÑ"#²£°\Qp;z;?œ¼5÷’Û0hãƒ-㻫\d€òcë¨=×,Eêù"ër%'Hi„>q¤Η]ûŒ‰·ŠÀŸw‚8sCÝf„Øðí +$mʽ!ü›ÃoZäDÅÐS”~3O»Z¡‹ïh#_tÔ²×jyÃ4?J×6ˆéÙ.óu¢D.÷ö®;%©¼é[ Ì[SRýðSº$ÀÞd[ÔÚÊ8•u¨À³Œ*HYÖ‘…ìqè×áÂàyÙǪpÚ3¬Ø`ƒ,å†@Gî4ùŒƒ`‡¢^Õ-#ªt¾é ŠHm’þ­B‹*™­U!àÕ›@.ö~ÑßTšÑå\œQa±ÑßU$!òפ­÷/™·å¿ î¹SîVåˆÂÕdî%ÃÓòE9›2iÖ-Ä0¸Ì« V?Í +¿”š °/Ñ´nB“Ë£'m¼Mœ’ÂΛXÕ"YáÆÄØËkIK#.‹e´'ÜÌ Ab³Ž­ëµCpA„sMGM·Ã·ð¯/ºx£Üÿ¡²Â–uf™™Ö0Ã>Α*H¹/TˆÒñzQ;0ÒD9½l’Ä9äf!–U)ø¡×M³Ê®Éé!Bo!ÆäW¡¬(dþžš;3ÈI ÝàÊoÕ/ÙíJÛ}UÉpÁrª}áX2õá‹æÙE)ÔvÝo­æk· Ó:c†'ídÖǨ]µoËa„…ü´<-õ+¸.i«›SÈjS¤«^èú _~žemN·¼—”Ö¦ÇÖJò·ø;÷uÊÄ'«ð--GÃ!7ìÛ½‡Á¤^’¢¥;DyQ¿JÕÙLÈL üØ*¥ÅÍcWûŠGâúµlâY~Öë‡×­|.”ùÐ>R6™õü1"ÁŒ†º¼—r(Uô½þç)Kˆ¬ó͸Ïó¥ÆqPõˆ+¿»ß¨ç—I5þÆ‹À\˜|L>QÌ¿r\Z­CÎŒz,zj¡éò +ëmpfª*ýº¬XŸÞ×1€"¼ìU9õ—3lfƒ½ +íCœk¹žÐN,™ SºT»_K„ËÌù’ ~ÞÈÌA›Mq@´—ë7 )³Ä½ Ú.*:Vû¢xwܻ鑕øhdñ£|WÞyº ¿y%ôíGŽKR¤ž%G³ ªöÎa":2ô”m¯.ÑßWx³ß'¼í‹>ZQ¹Ù* °N7J‰Ý"U¹‘:+ž <…šrÄíDOf»)Š  IóUsI«kß$–P–žá'0¹÷)#aRD{üý·Š…bsOF`uòA°Ùð¡È‰î¤ö–¤]“I¦fŸ¤3ãe +«¯=%<`‰;[[¹ýsC3â¤ò…Üøî·vÄÙ¶ç&¦‡ƒÄìdL¡M”Ó×›Q 2FdõbjZÞÇ2O¶X…ŽçeϺÐå¿ŠÑîÔ?«qÜçSܵl¯ÜZÆþn+­B|?Ÿ{|UCÞUŸÍÁÌ%sqk¾á¥ºÔ*(»×1ùhÖZp¿îì=,dÏ\·å’ÝÉÀÿBSa0©ˆ«Z4ㅲѺ%ͧNTö$i†v—Âø{ävÙ¿#Ö& U%H­=-л¬ãBÎÀl©ûŠºç\V‘´DÂòx-,9´-ÁtоÇ*R¯îy¯RP*w‹«Þ—®ÀJ¬á3\³ý³ÚWÖ§Þ=4²KŸ#érˆOìÀ=dߚإŸéé,Ý¥ÕSß n©Ý]ÇŒÞË?à/ÞÝMÛ«lÄ9Ý,îÕŽ`[ı7 )òÙQ lcÓÝàü +NŽ2³¹Æ‡ÆÌàŠhÂÌZœH+cúi*‘¥‰>{6Â"y£©Î® rº‰Ê}S0àÚ"ÛQZ%Ãn†Ov­vþå©oÍjkõXmþ¢³L0¾hò©–ó§çÞ¢&³ÙÇ¡(ꆸã]Z ÓAžã7œŸ©BÝëDÑ3a²‚¡ÑÏkN¿Háé~=F›ì×ðê†*2fºÀ~ æ1K¬½ÛÍ݈™Hý„âmšÛ™Ýæí5Ì›²öáÉS@QƒU!ê+í/´á·Óµ.îl"Qµx(fSÄH&%ÁúVB–ï$ˆ••î…_ºUJN¦a,ž%¤g:Þ ¿Ø†]OknÜ’Á Õ¬”6ïô›Oq+$U&DÚ¢gU™§—W‘SJ~Lj­ÆôÏŠV8Ÿ  µìäh–°Ÿè­©Âå56µY -ΡŒ#Üó÷Ló£d,À”/<¹_ïó +±~uËëêM™éÁ;‡D†û-ò ÙQÑï¯XµŠ›1x?‹FU»°5Ý3¾cNI¿Â3nÞªYCã²M½À’ž©P†‚½O žé\¾Î–eû”t±b¹éali5µ•pËÇÅ@®òcöÓ†òUrïÍ5ÒäT‡ˆE:dõ’ÕALX!«wMÞ*AÑôñnÌÆå=ix…툑)ʼIè&¨àµ†™Òà³0õ쌱%"Õ~,O0@„¶ ii­ÑF=Ì0ä,ß”­m*¬†\¯Sþ •T ž6Í3±g´¤Ñ5»Úf–eË©Õ ‹Î*¢!Þùû«ƒ©/bC…„‡2:f‹b`‡³غjé¡çpÆὟkàs‘2„ÎÎî¯0©T)·òë˜f/•k¨‘à³WÍøÙõõ‹i aŸ—öPЛïœ]u…+èv£Úç†Þ––Í Í!e-¸·aS,á²Ê™,påñø=²Qƒ>BxºëË…jÇfeÛü\?ôè«`ööǹËQ[Š3â]—kØS I…[TÞìÄ—T‰6Ë·6oöÌ3Èy˜m8²’#òŠÿ³=þžø±>yá.!ç'»'Ey´„'ŠŽ“ÚÒD藨賀xŽúvõÔ÷oÙoè¤0•»Z%}£¥@ÈçH Ø¿û1ÎLjH‚½Æ;ÙSdåêÊŸIJî±xÉü!"?²lÓÜ39ÃKÎ<~Nضç|ľî§7¼wj¡HŽ8äh±9ÈéAÓßã› +ÉøDÜMÚíæF¥R›ý#:½Y,W›1(Û8/Ì#&ÖòÖj}¨@˜ŽH+Ô’t¡üA³ùB+Ñ&X7<[Ré"¼!6Üóþqf !íêR^²’Hh³Ê¯Zî_7SS¹Ìïe»–ÃdTÝ VŸ‚MF§IF øã²b¥+ì†ÃÝ;ð®µo’áüùM†ûIç—¼³ÀMâNH{çÌ8ȱPW²Xüûid:d¦‡ Ï3ÏP¬õÍŒ„'%ˆ•#ÞY/=a'‚_oÆ×KÝ ˆùýØÞš-/ß ¯­ôÓâÝú£Äz®R¡ã3çÝn0ÅÛ׊Åm“…EDZV‘×êb“ñ‘o#¹6Ûc›üB›A8ü1%ÈT‹Ã5äJÙýî*ï=µ£ØÑ0Ùâ·,,|.ñªú÷ hÔÜõAk>4© +ϼÛçn ïø¸E%iL´#PÓÙ|^Bê"=?1½Ï½ ÔxeÞhôÚu/l8}ZsþÐêìòNóo‘oßPàOíó¿_4‡¦·ÆmföX¦È+Eþ¤'Úß^•^¤ïæ…Ò%W*½ÖŒ*Ýa¯Nð&æ:nª Û”çîóI +¼ñŠÄŽÎgdÂùa]øô>›øük¡Ç“Ä°jšGÆF}a ž)º6˜:ÏßC:û/Ý*∺PÓòÛL.Ôºò†ßÞs´ÿf‹± P76ƒºÃûÀõkÙµ¿Ý>Ÿ)YôYŽZJ»í¼~ ·¤êœRë(QÙý ær½8zqG­&Eõ;_1ÞS’œÆšùÎ{?M¸Ŧï]ýiYÐ`Ê*£ûÖËöG·RcÇmª Ä«R»ˆEåC“Œ¼º cW@Í0 >ÈÇu\ÊþYŒ ¹ªßXSGÐò9¬K†36žRÕÓ]¦jqàL—ö)³zŠèºs‹}ƘâÚÄé‹¢ „ÎÏ ]T¬¹Üé³¢$BÑ›Íb Ð~’£(«Wc®|ÊËŠ^!Ìéîî4GžÒšhŸ–€òÚQGªdŸMÅñýK±_ YAè¢+Ü:Ìl,¼¯Þ‹¦Q#B¥„ì×°êéòŹ£s7ô­óN 怋lHîß ™zUX¡©¦Û»dÌa¼<¸äl¨¨¢«3ôû¶F~ͬuÔ™“ûú/—6ÁUû0ëSG>Ïßi ³¹~ñ!Á +)øíº•êè¤õfÔ¾ŸL0Ï?§è¡=ýü#‘ÚÉ» +”¢âwÙýŸÃ¶jax1XDTcæ‘ý.ñ9ÛXPÑ+ žÍN¬‚÷tA2Š>лֵÔ;>*­õ–ÿ Õ˜³pK K{¦”H`$©zêqV,p¿.]ršïEÍðCÈ|iïŠàt§D’ª+˜Q˜œ›ž}Ã8ÆHÊáÈdÍ\^N2’ÈL>‘½g¤ÿ¼«{%‰‹yàˆÆ †×d¼TRƒ ¿icØ +b“ ;ò8¬«ð‡TqOÞ´Ïk…ïvõÙ˜ší‘òßÍÜŒÔúÙåmL7ÑgÆ¡Y¶zWZãaxR/iÏl%@Ê¥û6úÚ}F͈×zÚÔËìä$Ä$ÌYIØ‚ºÿô%ÉF_™b‚–ôúè9#ŸŒyÎ&¡`_ZÀ"ë¬Í³Ñ™ž³tAŽÌZ†Î-t±pÓΕT~Ð [B;–0 ˆýÈ §)Œ üI)²¹Ê-rA;47LЙ‘ É0þ»2:û®R¨¢SAÙ"Sj°Â›V¬`+;)bøfnCͯ¶€4PÏ{aêvBIÑp2ügs·Ä¶½,Çý³rb˜¬ð’hœù‰u¹7*n(Ðb!äØüIºn"¿—m:-ßÓ£öGßQHA­²Ô†£Þö[§½Bu ¡wÞæ]¹Ÿ¹0g¦š®OI7GàŒÝœ@Ÿ¯e.’g“( +îwDr#²,¡DìC« ¡ÕŽû…Ï»4§¬o±ûI£P8åûÇò¦)!ßú… Y‚âÂp¼*=AjÓl=ÏÎ#v¦%Z¦y¸ 2h U1ÒP‚XˆºBèƒÒ$‡›]•)”v¼»ñ{\Ã|¥ms•¸»öQæp£VIˆzuØ<ô¥ny_>u¤~8ôOK½ÉÅó"-ÓïvØ'¦Ž ñ£Sˆ;:ßÊþzzmÐÌÚBjk¦SÕAñù‹ºo²¨õȪŽ\ÂÒR”­Ú_¸õºƒ•Jè[ñF›À»Pf¡išméÃ5§Ë·îù»øl=;bíÎqkZ‰(†e ½ §Æ+x³8„κP&°?4éoý +†SçýÇ?ÞM$Îø"+°"éÆš~; |+µL +Ëd¬ÇôÑž¾ÞN”˜‰”€jΕÔý¬W²¨¢:Tr¬WØå]ßšò×8™2Sƒü= >ÝYzöRÑwí€"“¡¹–óúkæœk ôèOËZÊ+e-ÂØ–ÎÆo½5[6ŒÝ|¢ä3*B»;}^q•S’—¿Î„…)z×—ÔU°57 :'§¢7výÝ»ë?CN†Q,j“qMÇ(vëo©úÖ§bk¿S?2I;GÏ<&×€Y )F˜ºéƒŽ¸á¿"¶B;‚Ã#Íým£1dÌ·üÜhõÄ— ¯GË¢¥`9ã˜B“Ð1F½ƒ~=¥Æx[Á)äö@þ°Ã7.’†Ÿ&”!™YID(=²MsÙ¶T^¡º¨¸6%ú$™/¿3Eþ=̺ЇMš·mÖìåsm(Ê'nÎ6ö¹Nß ’¯­vmb^ÔwdñyÅø)–BçÝéV<¯Ëµ;ʲ+©)=ç±ÀHgãA½ÏyIB]¼ÎÉšýl#¸ÙïÆs¤nG¼8øÇè*LÞ3sÅDܦꟊr4tÈ6€ÿ׬»%–sX¤K«‡ŽŠ!žÔôx³5k7³FfKfªéíª`Ý(½ÒLj?ö2öî Ûƒ¦ÝV¹zQ³lJ‹ÍSÝ¥u#ÈïüPA[‚-Ò ñ{vqZœ—¡ì‚B§v'WKâŠR¡`cm„Iö¶pB¦Š›p uKoyxo×®‘•od÷¨¶DtŽÂê3èÀ[¶øN‹ÓìEntû­ ëLosœÉ)sŠ– ÂkWt>>¹Š¤_ú ÌY½Ê¡é*ñ¥¯j[fø…ÂâÙÉ~ï¶Ë¢©äQr;tÉ¿Y»ëèUÕ’6ûèdð ¢F°«ÈÌ*,Àb‹«Z]RZu™4ôw(uªT3B渀®¿|6?ˆ/ÅÄÏ¡:&d¡á2Lê WǶš>¹NëÛ†ü¾i¨J²ñ,=)ç±KaQ˜0HE÷#HUý[Yï•BOï·åŸm“î”ëRSÆŒ³:ÅÛ2‘ Z‚T&VUú*¢„ú±ßµa>:¡Ü¢¿ý0øì~Œª¡'ttøÅu¥â+šlB&ájÐѦèÔ·§±gq²‹¡˜`… œXë„Ñ0¶x/±Šnà#³ÅÁÁAoÊ(\ó 4ê‹ËWªð#RÐ8NˆQ:mn'?J2ÏÃ+¾k#ë;Øc0E¦õÚƒ«_dͼùà z¶Óñh°ò1úÛ7Aø‚ˆ¿±f¢ÄI%Qòˆ`«…*{I ŒVHôý{ÝÍ[tÈ«Ó7®¡ ögñ +ìºøéŸ27wŒièÉ +gw`ö†U e÷“)&šwjPɪמ¦1µ™¡¤Ëá£2àó}¶”1Ú”¦ªãJÙÆmŠ‡$Ûøijâ-’'hWÙ– Þ¢™ +Åut2eVl +d;æÉ||²‹ê|Ñ0r¯ÐóYQö1ï}v³)$7rFE‹PiòO!á±aÚ9UcPß!òy¥Š“/qðÎhú±{vž<Õ“¡èj^ç5»WPp¢Ÿmh++Þê©|(9¸rnßø4ÐaWy¢éiØ„&ì‰ÔMP¾È?ºK<(þbZàÆté$›ytAbGrs®Iñ0Ê0«êk1\)ÐÒ´Š™8cN O”Vºüâ:.Ö{Ó«ÓºÉüÿðáÿ/ðÿ‰¦6@c'{[c'k„ÿ¥ endstream +endobj +1173 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 2507 0 R +/FirstChar 33 +/LastChar 126 +/Widths 2508 0 R +/BaseFont /HVUWJI+CMTT9 +/FontDescriptor 1171 0 R +>> endobj +1171 0 obj << +/Ascent 611 +/CapHeight 611 +/Descent -222 +/FontName /HVUWJI+CMTT9 +/ItalicAngle 0 +/StemV 74 +/XHeight 431 +/FontBBox [-6 -233 542 698] +/Flags 4 +/CharSet (/exclam/quotedbl/numbersign/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/underscore/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/bar/asciitilde) +/FontFile 1172 0 R +>> endobj +2508 0 obj +[525 525 525 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 0 525 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 0 525 0 525 ] +endobj +1169 0 obj << +/Length1 1941 +/Length2 12098 +/Length3 532 +/Length 13175 +/Filter /FlateDecode +>> +stream +xÚí·UXœÝ²¶‹'¸»5®ÁÝÝIp NãÞhp÷!'¸»»“àîîîîüý͵ÖLæú÷>Ú×î>é»jŒª§jT÷z©È”T?ˆšÚ¥ìíœ?°2±òÄUx¬L,TTâN@#gK{; #g €•—— êb`c°rñ±óòqò"PÄí<œ,Í-œ´âtÿ,âˆÚ,MŒìŠFÎ@[p #€ª½‰%ÐÙƒ jcPùg \¦L¬¬SKg€1ÐÜÒù=²vföîÿ2›º8üËè‹ЂEÒÀMííl<¦@3æöà\@°’ÿ7DýïàR.66lÿ îÑÿå5²µ´ñøo¿½­ƒ‹3Ð  ho +t²ûßK5ÿ%Mhjébû¿½²ÎF6–&¢væ6@Ë™,AR–î@S%Kg €™‘ ø/;ÐÎô‹·í_˜å4>i2üë4ÿåR2²´sVópøwÐÖþ‹Yÿ0¸7N–î]&VðBð÷~éý¯T’v&ö¦–vàqàä99y €çLœOV€¥)Ðtëef²³wo€[â 0³wBøç0YÙÌf–ÿØþ…ìfG{g ©±ÍÜ¿=¼ÿíùO3 €ÙÁÈ hg4ûËÊúßÖÿµ˜l¶qý1€Ó™ØÛÚý±p˜-<,€vL\à]à´ö¦L<æ/@'û?°:{;à¿™,ËÙíŸ,ÈÙ ø׊ +·wqúc`ÿ§®­‹Oáß –ºþ¥ ÜqfàTÈÉ `¶³ü[Ï?ÚØÿÙÄ–ttý¿-àÀ¢TìŠÿ!p4‰?.ZòßÄ .Yê³Hÿ!pm²\˜ÜçSøCà|ŠœïãçûôoâçSúCàvªü!p>Õ?Χö‡ÀÕªÿ!pv?ήù‡Àù´ÿM¼à|:\Ÿ±“‘‰5Ðù?&—íÏÿ§ƒýßþs(yÿ™AK'[3àŸÓ_UÌÆ’Üã?fòobe+3ý ÿ9à¿ðŸAû Á:ÌÿBpv‹¿ÜË¿Ü«¿¬Éú/‹²ù Áªlÿ +X•Ý_Veÿ‚U9ü…`UŽ!X•Ó_øÏäÿ…`UÎ!X•Ë_Våú‚U¹ýAðC‹Ùý/«òø Áª¾ü…`UàËÕô_ú¿ïX11{wÏà«éøî-€›“Åû?ªÛY:ºe%À— 7x@þ±š¸8¯'ç=ÔÀ)þ‡Í,Á·=è4AX˜µ7á²J¬)ò‘Ì/†¥‡3oˆýXÓ9Õ†8i“?(ïH¿Z­õX’‚‰² »KêöLŠhõR‘:ówŒMšyÝu5ÜMùÒD¨u™¢è±ã@~x„ÚR?}}Ì ùiru¨è»vn_úù¯£,%Z µ½wËd]º®µ]©A\ÜZR)6ê¡ÁÕÔìd*hIŽEa¡+nhß¿Á¬ŒúX…¾odXº°ouÁxÌyŸÿúù;ݤ•”]e“KeOø¸07 µê­·¿B$`®êØ…]|¯2(˜R‘þ…@Ò`âwT2LÑõŒ±©U‹ì…ŠKo5Û€ÁÀ"Wn>åü[Ž}Y½Ç˜VóËÔñËV¡:öÝ) — +öåã{Nt.]¬NèVÛ)•sòˆ(RÜTÊ#Dæ#ˆ„d«3lÐ0öUqæ߈çµMVÖÖ'-,\ÚÞô㱉^¢ôÄ À3©ÿ´%æGImÀe×ÖY?4Œáþòñ‚>«Žjägè+,ñŒ[ûˆz¡ÅŠ zŠ¸Ã=ãÐqXjwÅö³\Â>èk“‡±h 9ú x^rò’bÚ"¬"a"JÁ '¹Å¡@pèáðÿá +E_Cø9M+å^>  \&ÅÝ刿¿‚îùÑS:(¾‰$ŸÅ~I8Ž§¸Jö©š¢”>9LBo ×—l¾¾¸†Ç²?ÀH(¿îXCÚZƒdèœÿuIóÜãp”Ÿý“=üZºCy›6ã×12îHµÂº¥»¡oVy¸2â±ñ¼u{}ºÐ‘W-²ÂüarDÝ1MC›¬ÉeéŒBšÜ4„9*6f=Fž X³¤èñˆÄ‰]î8ýº„/©‰|ø„ìÃü¼xØ¥RÔ!q¿E«§e +E.0¢S™ÓνßÁ¿zXSr‰zÞÕU}0¿“Píg6 º«y9{;}½l,€D3›ÿtü›•^`žíÙ -˜H@…²Aï0Â4Ò—ãÆ‘¸r_|kSä O·ÇsÉ%¾«[›l~¥Œ=‰‘ÝúÒ©¹úú«™3ôëOµPOJ.¬BSwEš§¢OFí[gá³µ4ÍŸ0²X#4/"wVby°©qÂ_S3ÚÞqMu½²¡TÓ0¨Âzt§nG)Ý2C½ÄCÚäH÷ƒüô‘z–QFŽúPr¾à¶­÷І>eàfqÆ„SØ· ö¸ Ñõ\.ÝãBë±NRRôŒ‹\ 7bR&–;¥Uï¹ïèÖ¡ÜhØ’`8+Ž“?.3éÙÃñ\¡vÆv`åøaš›2¯KŒ‘C¶Lûú^Fÿ‘à<ÔDƒaWåQöÓmŠ™ þ€æ½Ô·®E £T_z?CG×áNEªÐ'œ9˜=Ë&ØHYY³óЪY Ú5=eKG ~â*Ô\Ôpñ—2ë&9áÜ+ªk¬#µ:ù¯¢oõÕÒÐ!Ä9åõžŸÛð÷CBsì<Õ³tzÒ)%k‹t£YKá'¥qô%é’Ö'PÓ®”öww¿¡žþ +3ûM]Y`Úž"¼^wƒ£t†W‰2Éž1wâJ‚B–»¹'ëú {Œ(Tza +³…_bŽ¨ctòÙ|)ÞG›ÂÈ8õHÚŠ2sËÉÛSNÿ·$ëºR“X.æïnÝÙ+…aHê54ÜsL¸ ä£ +¶V–×h¡v'„çºTóÇä”U m¬b)IÞÂJJ¤1n“˜ÀUÈô"ýòSXbº=·.:ÀGtm…ÏïÕ⸱6ûH:ˆ>´ü~|ﶕvÙ s‘!“åK|U)iLBlñ¾µHœvÞ#1kÎWíöyÑÒù@¸ñi˜ª+¸H½É‘·ci›£—¸˜à£}’ÊŸ‚P]Îf •†ã0î^æV;t»ÒU‘LMÏ(vŠúÍôLó´É8!ÐWüˆhð‹¯¤ƒR?’ ËcayÈJO¸¦øÍîsþL§Ð˜à|øû~¢Ëot ò +Aá9`J.{ÚäI"®Q`É(,É­$@“ä¥QN¿`ph}{˜æ*<$©e Ò 5Ò†B-z+~á7“wï† GŸ¦·}-åÄ.M6$ èµÖØÉ#;RèjýÊü”ïo¨h¸®¿„ùDüÕî¯w\Ó¦ÐÖÚ{ÌW¦GùÓûÄ“ æG-rðòÙKÝ'9BMžñ‰•Jï,C‹òèØÝ‚´9 †mš¹Xð®†Wz 'Îñõ#èÔNÚj¡iŒ"2<„î°V® ^è:ö`;–É ×{ˆ/`ÖÛX)õ‹É(§ú°_kÞœ³N~s{WOÔ°ÇÙÀ¼LT/®ÂúˆaN/a<ÑÀr£):/òšÓRö&D3zÓt$ŽõtlPj!È°k¦Sç å—,ˆ?Ý7}ßéýɯÑ:°Ëï”ÒQ]äQÊÐt‹ bDjׯìD ¯3¡ÅeÁ +`Bß²ªPököß÷^¹šÐ¹OBöãèº\:žýnɸ馥 œîóç¾›gæ$å¿"x„˜cÂÔ!ïÝ?3Y* çMwÕ³ÏáÕú*Õf¾×⨿ÛrËÎÝ(ŒèáD¶Àøep›)Qò1+q¦÷r¸îœ¤v +1žËÍü±£9‚@È{7ÍoßôncçÃva°­`ä®á¹QÀ‡Í–cîiþ¢™±~£pÖ'R]/…e‘â_´Îãšg¿’jp”|8ææÖqÒ G‰öPõŒp ’%†Cý¢Xç=P^3è#Ã~?„ +Ü$ËðÇÆLg¯¸pùœ]ðÃöż©¡ûÂ&öá“vc?±ÿá6 ¢t|v{P•»äán8Ñ-ü×8‘6RӤÉ]ŽBС:ÙÀtÓ’ ErE¡_Ó÷ ¿.K†}üÊÄ‚ÐuDäBؘŠ‰®Î +sXsÙIR“+üomæsÛ¬ôˆç«Åp».ïûPÞˆ_®3·E‹SÖ‚5'ªUÖ`]òN+ŠÎàο{–òÐŽC;+ОÖ˜ÜP2¡˜¹ù¿çQ蜾´! ·ŸÇ‘}ËòÑ;ÎáÈÿ±€…×ëHìýó\›Sy²ëæT1g¶ö¡A'î6h[Û9bcç˧7O|dl‚{ÏTŠ›Š£ §kNÃâÚB0|oý\ûC|Ù^Ê¥¸ëMÔ¤°OQ{Žsצ5’ý>^a¶«7½&oßé£õØå»™ÉB„¬ÓÆy‰AAдû Ët†‹­ ó~I XCØ…S0ÑUBëöù-ž¨P£åÚ$‰SÝCÂÍUþ"‰õ%ÊíäJ¼üȃÎcݱ1bb]´tz"7_üïu{!¥˜}îÓÛ/•Ÿ<Ï2S§²!Œ°Ž‡VFtQékÛë‹éÚÆeÑ”KYãn©ñy)!Ô–hîg;÷Xã‡ä…{]ª½9ªOKZõ +Qúù‚—èÈ7Kx9°¨)L(:؈W_1ÞwAw +˜|0P« +Êʯ~Œ?yÎhàû5Øp^T ¦äÎÏ8¹dëžIu +Y Ùfáñq#ïO™õ¶¶rî$¾³<Ô„áŒÈf5I.DX0Ð…L¿<º>Ãa.ÂÛ‘jTº5ÆDåc@rð÷|¡O߇‰}=äH +x—öPán S¸[bJN‰héøÉ?[`ÉR".qo^17¹Þié8Å%ÄøúÅšÏa½Ïbç+ˆøÆä`+hL`H0­¬5åõWÒ‡V ’¹@Y)m’ŠÆ¼A”åO»éæ“÷Â9ÊØK&7…´ÖSã8…HРy&è; — û ü»£té‹v2ÉÕál˜[nUƒÿVM¯cãW×#¥¬“ì;> +¢UÌ2X‡#ï/rdE¬œ–ÜÁŸ…"y’KØfDˆ0î([M”‚ë®!¨o[šÄÜêª<ˆ¶5¼.«ƒmžá±ˆ§=&QI—W€ÂEäµÁãýéÔíi²Dñ§†• mÞø mppЃdŠÓiIeÑÌå²Dm‡¶ºo{u ë~„&rAC²Ç»ÄžÁ9ž„{=¸¯eE'´GÙÖñzÒ[*'™›[BÕ FYµY¸¬v駸®ç¬‡“üüàk¡+¢ã"8¾Í;SmiŠ…ͧä!Š·ÑIFúY G¢‡s±õV²vyÓ‡Âu¾leÐÊö€ö]¤½eäEH陼£ôƒÔ¡œÚ‘ñA~\rKJÂÇ ¿}ÒìäíHÍع2²— Î¥à‡:½Üº"lüxášÚ–ÎÉQÎQœ•í(~ TBИ'BéǺúŽJ9}Î$ßÛBüŠ#ÂÀ÷ó®vI•úMÚÁFaß ×ZW]¹>Yü¦jèê‘E}BÁ:¯×µŸÉX,u$bÝ5ø2fŒÅ ùÓ]ĸëBAƒ&à^ÇÀ[SóùçI)öƒÊÚ}×7,F¹¢n$çFÿÔ +4†Í ¹Œ3ÅÏ}³+¥¨oð¦¶L©Î×eÇ>ML>Ükc-‚™‹"¹¢ei¯©—[%{¾UþÆ‘›·x2ØëþíF2îåx˜CαÎã,¡»=wO,Õ¯ûë£h»Dn59 ¥ýðÙ@ê˜÷›n4c29‰Zs4tÅæƒK@¥Û^=J– Ùp¾ó¨‚ùM ¹CƳ^}^ tÏjSé‚yÀ`[Ô~ŸH‹¯} ƒUwM¬Ä]úlSê9`0òg2ÀX´˜KœÁÌ1kÕoÌ“1?Fµëü£ˆK4@´£þêüÛñT‚b£Ãɇåúb¹b¹Èh¸Â(ØLœ+sŸÏcv¶ròâÑ6éO~„^è_5÷_Âs{îb~YW|4!šÈA:g#(Ço@ÃÍ»>üž¥˜ÝéÈwu ò}/ÌI²ûŠí'ä¾6Ç"qD îyãw‰8äBÁ”‰Ò䦷ÓôÈߪ>´æïÑ3xwŒ‰Ç™R…¢T 'D R¾N±ÈSe–îüîNÆ™qÆNs¥ú (éûïªþÊ’<Ù ½+YþSV±ž™ ¯• 7¯¤ËiÉÔKHJË×#Rz¹wâ€ßLSz[ 2™.1Ä2VöÜx›0±%ƲÎKóP¯ /(3™¼÷\Áb÷r­ö6#ngœô:6B©ýôÒ!L-]ËØ£óá-ÞY½•¯ßÚÝG»Ô>ÓŸ¸TŠ¢¶z£}%yƒk3Wü¦DÉòVbƒÛ³’»@mÊŠhgvƒ“ì] u·ƒõ*ÿ‚×Ñvsç—Þcbf á8ø¼«uåJ5nbœ3Wî +Sé’§ê{¡KÎe‰ÇÄXI•ÈæA\+½Å¯§ÖŠG¾ÇÇÐHò›=umI·›ì ¹š`ÓOê9 n6®\%©°ÑC·¨Ñ‰³¥žÙó·_Ï!vF“Uk?+`6 ¡ìà;Ƹê¾ñŠÒO²×*x˶¢Ýg`Ì~ Uû‘&Êý~PÖo§é‰-)—Tå™°oAðU6/þl3Õ(i!áØÀ ë)–õK¬ôûãÖa5s>‹n‡­„2|³ÿÁØ*OHÂfúSáyXîìí!¦»=MÄ¢§ŽãlÉˬe)W¢³—!ñ‹= ^²ŒÏŠFxÉf+eó »ÅJ„ãE¸®2æ— /Õº® d§ûÖË„R‡Îß”2‘æxV™tzíÉŸ-Äp S—‘ŒÊ5 +ôUW3fw”=x PØWÖÑ»Š¡ï†B•*ÌDÝt°ú+¼Tõ•óNPN¿+”/SnT'5éò¤õrÀÂ-Dk,‹Ê_É®N2«xÂbÌ[œÌ¦»sã+g&r¸á-ÚÁ\ÓkÈ|wÍ']ÍÙ$FJSK¹Óõ]踢×D’a¬©4ûç4º1ÓÃÙ€^dÇûÙ•ôqˆ¬nfoEÉVî|ó ôé~ð…†à`·=³Óu|m±C¸~OïXc0*…&†T÷±+~€öÄKQœúæ,{‰#bÑLB¦ºˆðS/Dú+=Z­'“Äm±”àëÂÄî¹kÌo (Z__¦OðÆ4%›îéG~t>IèNXˆ²¥½=T˜w£Dý÷zZÉË¢SaóõL¥3èŒÑYýwEå+*Z lÈ•fçñßlÛK¶»àáA]÷áCïF—OíŽ~ÞbDÕsSéÿÀ~2' „â”Dº·­{‚Q¢]úNÓ¹tè²d"µÜ*>ñ× »ú”1/e"pþÁº>ó° ÉxWHÎIv¹—›%×ÛdŸ³¡£›ËHñB¸–]œNŽT)ð:g?CUz +³A2ãô³ÒtÓŠðäIÿMaÊÊÆþÒ‹ÚÔPcvÈ^ÆW®ÆS¡<ëeõŠ0_Âïð×&K˜Ð¡O˜Ì\žÞKº¸y¥ßÐä¸ ww+4hP.¼èÍ™wý§|_â<Õ}SßpœÉ:W¢”hèÇØÕgU'‰J +|¨×v F-×ñ ƒ7#ɽӉj¢8•Ò:­6}~¡0Já×XH膵ŠQ›8¨ +Aíàa› ‰ø&ƒÌcKêvü81*ž/!ׯùH*>f¢Íéß!$]®‚ž³óà—eklSE”ÕÑJ@õØ{Ùƒ¨Z¬{™TùºQù!äù—*œ­T¦ÞS[@giŠéÐÍéÇ"óˆ59Êï8O•Ä?Ùæ$R5ܧÀÁQvtš<„O€neÚ±è¸"Y²×ˆß2ä¼ñ"ûÜnR¼|ô¯§1q ïŸÔû”’7:l÷x2?˜ã•ü ˜ÚKÇàÚXÌÃ?‘2àä ŠSI< ÐÄâZÅÍZC"¢ÌE’Ö)¢Èè~V§°}¹œ*¬¨eP©^ºq%þÅp®6·õ[¾Jc@-V‹¹ul<3™y'›&X_§§c@x †îð^Dª[•!ÓbbÕÏNñi'ÞE{Àx<*ecú¹±–9,ÊÕnHÿ4˜giËñ„è­!š”¤iiý%›6}k‡ê¾Wƒ)°É°^~ÿ¤w†ˆo6GÝìýíL*'H‰yþÊÝÇlAá¬Kj.ÐR‹4ÅÁÊh!¸€Êµ’Ñ·£Jþ}»£xI%LîXß÷cì!Þãß÷!cð¡ Áçî$,yäت+H„ýÂ]ÞI‹ [cE2»{ éÒsü+f1…Е¿"~G5cÕ>sO\ƒä†‚} J¸/pÞw!‡6øCàxu>áÍÐGê\ˆ¼/OlÔªX%D aëÌY˜1¯9-ë1Ó¢ñÙÀ•€é¼´OŸ è2êb¦Ñu€£™ªwÔ×UèѶ4+ôŠ UH²XÊZ»P‡N +-Ô%>o­LGxZËpb|Ì.ÎåÙc;Un‘È«L Žå‰XNê» dtÕs u’’‹oýªo"^€c‹Éz«}Û&½ô“WæJüA!IÏQWã±ýù]œXgfåûŒ 5ö§džÀD5å+Ï!Þ¹!ªZU­=ŒÎ¨ö¤C.GØdàI;ÉÙäsÎÕ~ÁM?RX`¿lCƒß; óžÏÑñ!,ì©Ük悃÷Ÿ¬Í©xŒILßÇ×çZ¹v©¨dq„+ ÅîJh¾¢íðrã¯þ†òUGÑKGàœÎv¹-†•½qoGéÔ ™QŽ)‹¤ +¯±† áû+"ɬ•® ^Öosiæ­‘Nô®©f‰ÃZGð(;Ø9«¿ðamDÎ%Ûr,«QĈcÅHQ,Ü ÀùO™q0<` Æ<ÓÆi¾s9F% øÐ99v[H¯æ>2t‡Õƒ·Ê¢ÌU›vÍðoDˆ[¦~Öš³ó@¦LƒÀ±úé°[ c@‰n>=bˆtR7•j)ÇÂ_Üiñ}bçÆàK1Í7¨·\Sb(”CÛé*T%ƒVØ #Éµí‹ +…ÒÉ¥ç"FÆ™‘‚ÎiÙ߃9*í2˜ëüÅ͘ÕÉ¡5ü'v‡È†$Þ[nã…Cf¨æдìáªôåž…%µÆw’c.j’Ð;Ž½R(ZRå¥ÍÓÔEŸ9ÍÏ7$FËw­«OE½@fôsÜ<ÆO„ÅDœ$¦w\×èÉH-N†x·Bî¨ Еðàã} ¶Ó7Œq#L$x“·nxݹHŠ1 é¡|í‘8ÙÛÎF-¢I¶jn­IÄ9¡#é:‚o™$-”☴åskØ*ÝÅÊ¢wë´>M¢ï;ÎÀ=^llˆ÷Ò}}ö8²¥+N ´@d™ð0¡'=&jÚ)O¯s£ˆÈ ™qN¥+Ç*ì…ºd¥L7«jõVRè¥S>@ægØqæǤ¡gpaNÞ¤·7ðƒ¸­ÌéÑj'~HK@˜±Ê¹úÞ L;Hëù6B/Úµ± 겈¥±ÒØf‘:ðTnÖž&¡ÙáVqÉÎÔÑAÈ¥Aù†Ñ®šD‘›­2‘ò 8nÍŠ2<‚¸æ¨ù +ž2òáDÑ’ÖU’1‹h4ÂZ†^Hðófíýc^H9ŸÚæ:fWy°SÞ¤;Ù‰ŠadìW…14Îu ·‡üÖûZÌå|¸í´Ù]q++Ÿ@eõ}ÒÂY;©¸SØìò)y4ScˆÃAW¸ÝÊ7]¶Uœ¯r‘LÙP-D Me9ÎÉ¡’òö[Ñï¥Öª>$$ÕýX[Ÿ[ '"-žÌ5*úàê÷-êãÇ EB†$˜Aa¿C§[MŽâIM“n(C²Â9Ñ;uCÏJßÞIgÜT‰¦ý°¥¸Üñ€mXø®Í(=TüY|õñ-ÀA^0gÍ!”)û™ˆY í"&ÉŒ-‚c±=º%L ïæøuѨЂ•BŒ¨n +΀`R8oBGVãˆO½#³÷pyÖì°$$<< +kH<l˜«Iè—‰ª ”‰8/„O`–Í«EMf`™ž{TWЭEt¿„X,'ÉêŽ<¡-mt,s¦&C‘GÀ +Žy°•Ÿ³†Ï¶iÈ„ºn§ã÷ù~ÒïŽ&Øt ãj÷íÑ"6EKv©ìYÉ«IU…÷º§L`ªÐÓF¥3ZXµRÖùjÞU ÍãL«Úi£Ë‹çEÉ•:ç#ó|6OÚ†Š †ìx›6ë±0sÁHi«11å³–Éy/;×ôÒ؉CØî`MêkÛšß±èdÒ]ÿçxEúe/˜ÂŸ~¸¥¡†?i¹ +Ã}Ls5°ï«å‚8“gÃãÒt9^ªõúÝucI‚—øW¨µ@d*Ýîˆe? Dý /$Âà—:”°°9{\Ñ>%/ñÖî§ZY±°P0Edš‹”F8¨ŽÎòl>^U Q¦H†`K¹‘AÜ5žŽA´Î'Ðò þ– +(ÞÏê-oq+àÄÜå, ‰V”­/mãªz:©hIé%ć¯GˆæB2éjý€Þ$ïãTN¹ÖT w‡ŠM|§T×Up õò£ÒÎïl³c)¶}~ÉøNn„|*øP!z\b>¥0Ò@S¦•Óµ"ØgM°¹'m·<2ðÀOßü£Ò©HϹB  ôã4 ½ºÅ#xI##Fa7g¹§{¢Þúq‹”ÇHe5Œ$N÷Xüâ3~D6 +_¹ë¢7¥Õ˜X2²ùñ¬ð ۇŜ2ýž–TEáq $8)Óø´ÿ+¸º žÞ`?Ê:Ò}`O$¿à(»¸VLÁ—RÜr\¼ -”¬†IGãbo¢Ùéf9ôÂX|J­æ +£xàC<„µì"œf–U]üPZôŒV…bkÝMD;DÏ”Z4r8!¿¬ßNCâ·A†V§5vß9vÀŽÀ‘, âÎ8©Îã`Gxyiw<7E“¤Òbý€r¬y¢=ähô7õ³à,ÖÓ˜K èÕreï‘æ>Xöâ-Ÿ!Fk¼³†Ï*($ökú'æ)õkwb9·=W™c[Q +h- ¦Mça€upŬSxŽ£¥¶ñÆu¼Ç[¥LÍeÛÞïÝú–xûy =àÔ)oe¶¢™Îºfz”qv¾(¯&!9ž+ôÈhÅì­ždW{Ë6ì«B¼dÍPʲõ

0ò,)³‘­f¤ÀHÆfÖŒ:í'êlã3|Ù²Õÿžâô€ Ñ ‡Fg/Ÿ ÃõB¯ƒýöÇ–†æ¼ŒkÑDÇÙô¼UÀÊ|zÅôo¤‘þ·IúEøæ¤Æ×8ñ§#ˆJ<ÈŸÈœš¬»'?žp6D¤~0”½9fª·}™Ä¡7æ˜çݦž­a‡.ÛàL¯wDµ}í|WKbünËÖ»—r/"9”ôQ±áÖט„CM1#¬Ç}F+ħ1ÇÑ>gÂk9)ÕÔg€z–k“¡1Ì÷›ügrÝçltå’øSIÒ³ÇÄ*¡ÃßbŸ $;&$6(ŒèûÊÂÓÄtÜW,õMt8‡´›“¶ë5FxÀI³v¹û%’LN‰ëÝ’·­àl7YîÜ*"v´è.‰Ú|‰W £jÅh&)¢@™(ù°“'ÿžúûVdq"Ñ=í•ä5„ÑÌüøì7\î±Û’ÞÔ«â#©~Ç'³ ‡8<Š†Š¦fÉÀ&«Ë™ÂØZ‡¤øð•Å`oѯª‡ž‡„iOØ~±m”2>U;LÊ$ÈTTÉ3µ$ý¼šløL£ÐŲՙ<$  ÈæŸe[…¬BN¡f]¦H(ÁÍ|¶èFî<[Fd¨e“[O¥,7«vÛ<£në0Q"2¬±5èÇ_}-û1UTn˜‡²ŸÆËô`aÇÖv7i{ç½JO†t-µ}ÒöЖϸ˜Ù®îHÑSVÚ{ÇãƇ5.æäÑU ÚÇdø¯i׿£ö÷ð"Ò¨úÅYB`’%É ³¹Õ}Q…C´1Ó5ªbS¬©ø¾{»ÖÍ·A/ Ð’öOtœ†lÂCxûˆOS×ô»Ù§’QÏ3©Uoúz1»keÆÄ8Gö;Ÿ˜¬šOûXÇéE3éek½C皉+„ÍH9´Ûs-Ð ÙÅ H¿@<"ݱÛvõÆëa©tT§±ý’Ú}‰ìhó\ô,¾–b^\‹½©´/Ævl3š3…nÔˆZ3ž2¶µ~ÇåüCÚëºPÉ>+#˜#‡õgZ/š´ |J'‚“ƒ‚µš²Ý´»ØòêIT]nû[g[Æ´1V‚Y ëÏZ!÷78‰H1HV!èBÈ0cD]hL"‚mâþÌO”­C¾Ñà—|&má®F—*Á¨‡À®õ_ pBÜŸ„º’0”güJîcŸ:ö”ã¹{~V}‘à¬jH +«óîÏõ°)•™!Qlj'Xõh~$c™Ê¨ ¼x¦ïÝV¸?LÞÞìF¿q†+2`3}4kƒÙòízæî~KéŽZÇCšvvãYZ€°‚ve>ðþ¼Œ‘ê¥ì¢±lÁßó5­µüˆT²’Ö†îží×dg+Þ¹Ô#ø‘/eƒ6¼ÝÆgØä«»lÜkÅZã@uldçi£åK+Ä:„/NC!Ükø0EMžƒ0Ùƒ Ÿ¸%ztðTPé®ê®°•ªñÞÔ¡ù|¤|¦×ÞøKbN&+Ô!ÑÊ|yȬâíã¾Æ‘ßS_¿ ãskKê¬ÉøÚîu¡«N¼‘†AbÖ¶[Nc„ÍéöÄÉ¿›x^lÁ +cËdöç‹À·{–¶½± NÂ胟â oíš ÙèB~V~4!É[٘̊72£þ®Âå7x_·ªl±'K™_T#—ö­è$¸L¾E?ÿ§·Zûñd:¾§œ~Të*þT‡)‡—MyýI9LR7$ÄÂ&Çê'`žñZN[Èéœtíâ É7tÓÜ„€p£oˆúùó#Qýtg†Qq!Æí¾F®Åƒ½¿Ä—v篑†³xE«ç¯øV¢—Ñ%Lø¤ ¯Ði_¡=2“Ì–9ŒQ^ìIĵ¢èí׫÷¸5`m,ìLI¯0¬_ÊÆìEÆ?§ˆkšÉ›…MÇb?|¤ªôÕCaf²rÏÙÛÏl¡­+n²O[%±d '! #RÀ:z’­´‘FÓ†¬Ü¹¶'A£y•Ÿ°°HWQGÝ#c*ÆïŽ;K ˆ$LÜ 8ídf´2Ùº²ÒtÑ´òHSa°”u7:дžÀ/ ™ü‚ ž0ÌsïåG†¬ê:¼«~Õwt†–@ÌII49Sô'Ç .m36 +ÉÏ»¡íøh?!/Í$>‚šÞ"wáT𩯿ƒ)ä™ÄiÜ 1v‚Û\¥¹Ùi 7ã{ò`HÙ®¶qvÝÑœœÇƒPNÁ¹¹zžT`Çq‡Gc¡W[|k°9»çBä¿Út!S7•ø…¨tö jtŒ©|H_Í‹¶•÷éš¾9¾È@€30Õ‰B3RyF•âlÀßRwÁA²êp6÷"¤ªŸÈP}t»’'ÚØ&|}ÿ¹×»àówœ5ƶªÚD¤®_hýUÔƒ9©ðŪ¤òt'Qú\D+Š:2+÷C.¼Ê¯î^n-ºÅÅÊ hÿ÷z»(€‚mC¥49°†Ÿé°¿ž³ûòÄ\Î;l`×Ö< ›B KÈYƒ\ØW\Œ‰*Â<ñ§D¢ÓGÑf+ÍWo +s\Ùh䪣=ê¿ÙûÈïný^ÄsvÄ13Y=^ê}"÷zÔO¢€òP8Frü<^µÙŒ–SNV Úæ()eáÝ RW¾…Iò½ËH°¹}:7 ó¶þìƒÎ÷î轑 +%Žyí(²M–õ;ֳŶÃ=Êr¸Ãè´\Uico]Ž›‚ 1òõT5{ªGV\kwHØsÑ+Dr)>sFþœ¿e:}}7^z–|MÔ€?BD¾ ©m<™ÈÔ•ñ«þü®Gƒ%~rè@ˆúµÚRTب툩 êÂeªBÔ½>ÉQk$UèÏ»†¬;8 ¡5£¥uE¬ÃÙš%~Ó/É9\\äPUG;"t’D«G–÷È¥rêHªXéà ð:xTLÙh'Ù3a%ø°‚ h9ÔÆu7¸©8\æeãgJù›õ–±qBqÚ]6¡Êüº´’VH°»Pé$8U¸”Y•ÉÝ|M;R©vÏàâ”o<`ÆEyÑ命å ÆyÉ=K(„B[™”þaŽf›Sɦ¬¦0¢ÜÉI½ýÊÃK>¶¿qó$&®]ÓŠÇOh2Çd’'õ¾¾¶Œ|Ü?Êúe“öšks Y­ßeù¡"qqô皆.¶˜7»G°à´|qM79b Õ°(ÞE&æ–v`ðN¿C6íJ°¤áfçacS‡+.#Tä)þoØ$n㉠Ñõá·Žóg›j+ks^Å/9±îš»‹,ýyãzL †õ(x¡ZU.³hC¨ˆZ©cýú¢<¦Iu¢ÏXŒ>z:BÃpÍAÜ +ÁÉú`ªçR|(s·#m#Gj2Æž8hײ¯@ÙG,Ñe¿Ä¬MQè—Ÿ(»8kúΛSÛÕÞn¬ZÐ/Š5RþQŸùx¥ /å¬o¥ò!VJãx|1«B©ßsq-Õ5´öé&­Y6nµp~ůŒRrJ›V»}íÄ‹×õ¾G³—EˆÍDÍ'[dëÃG΢ŽH¹_ $_…7.R#ÖðÊÔsü9¬-ñ¡ßÕJâºS»\Åüö.µæ¼#<ÞYça4žÌݹÚV¡ä2—§,VYd(3#|^Q`=;o +žnòPÒèœ}‡¬[?‘N«œ’füì®mfáÏëžÞQàáG%§¼™ewÖ5ï÷ÉÂi9“^™'Zþô#¸‡‘l>íåÄVv»~±Ùz«J½jÁ\©?ÿªà1‚P Äí¤ìV.=6uˆ-âß)Ńž>LÝé9ciásˆd±;¢žªúé×XAG"#(!Äu9h:Ñfg‰h’ÄZ à¾Ñaŵüi> endobj +1168 0 obj << +/Ascent 694 +/CapHeight 683 +/Descent -194 +/FontName /JLWLOW+CMR9 +/ItalicAngle 0 +/StemV 74 +/XHeight 431 +/FontBBox [-39 -250 1036 750] +/Flags 4 +/CharSet (/fi/quotedblright/quoteright/parenleft/parenright/plus/comma/hyphen/period/zero/one/two/three/four/five/six/seven/eight/nine/colon/equal/A/B/C/D/E/F/G/I/J/L/M/N/O/P/R/S/T/U/V/W/Y/Z/bracketleft/quotedblleft/bracketright/circumflex/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash) +/FontFile 1169 0 R +>> endobj +2509 0 obj +[571 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 514 0 0 0 0 286 400 400 0 799 286 343 286 0 514 514 514 514 514 514 514 514 514 514 286 0 0 799 0 0 0 771 728 742 785 699 671 807 0 371 528 0 642 942 771 799 699 0 757 571 742 771 771 1056 0 771 628 286 514 286 514 0 0 514 571 457 571 457 314 514 571 286 314 542 286 857 571 514 571 542 402 405 400 571 542 742 542 542 457 514 ] +endobj +1166 0 obj << +/Length1 1517 +/Length2 8548 +/Length3 532 +/Length 9436 +/Filter /FlateDecode +>> +stream +xÚí•e\”m·èi›aè’Nénd€¡ºF:$¥ iié’î””APB:¥ö<Ï»ßG÷»?žóéüÎÌ—ù¯kÝký¯¸¯a¦×Òå–±qµ‚(ºB½¸A< 1€œº¬‘(ÄËÉÌ,ç{9¸BåÁ^1HTñ¶ðñ@BbüBb|‚˜Ì9W7;{/›û_Iˆ‡ƒ5 +P{ÙC\à5¬ÁÎ]Wkˆ—?@ÆÙ óמˆ'ÄÃbà l¬½V;(&ð/!¨­+@ø_ao·ù@<<áR6¸$;®hã +uöØ@l1®ð^¸Éÿ ©ÿ,®èíì¬vù«ü_‹ô¿†Á.Îþÿàêâæíñ¨»Ú@< ÿ™jù—›¬«óÿê¢âvv°–Ú9C¼ÿ +9x*:øAl´¼¬í¶`gOÈßqÔæ?à«ö·PUVWFV›ó_»ù÷˜Øê¥çïöOÕ¿’ÿfÐo†¯‡ƒÀ”—‡—O„ÿýËü?z)@­]m ðã ({x€ý1áçN‚€ €Ôâ€øÁ…–;Y°TF§YêþÛn WáûxíÍs炈š3ëcåiÆŃo‡ö ´Øäõ¾£¯Ò#ôšú4öfG )f9ëGEÖ³ðÓëà¿q/ˆZóÅOKAY› +rŒÂhå\9qíð&üU„‘ŸúðÙfÂÀòJõðµ?Ζɯ¤ñ+ºó²Ø-ï|õLã„÷wV¦«t9 SçÓøì9Ö3./³Ìê.·åê¹Üb“M + +¥˜gÂ8Öæ©ua’ý­ Ç‚—Ètã™õ´ÛÏŠ½šÜ 缟‘võ&“íÎZǼD÷-¥"2ëM|M­v月9/ô&]™éÞÉ»IÁÑó}}³fê4žÒàx"´—ÜÊ¢E¹Bá_ PåjêÑæLKËøž‘Î4,3;g^éå: Ôj~xÔfkš+s:niŸe¬Dž!9ú‹kïÔÇéÙÒíc#Òa=Ú±rúfFŽÎÈPí;¶±4ÇÆ#"– hFxyœàžQ‘ìbüD¾3„jýÇiÞ6”@Ôy,<}ê Åj“™>š»ä„Iø¶ûÝ­áŽA 6“»ªíƒ">Û-ª.«†ËUP Γz€x»I¹©mýuA¬ŠQŽÆ¦÷ë5ï·„“Ww¼ømTB‘…÷ +„o{(±½ÝdùQûÌÓSHð‚çl#Œó*ÛˆÁ™U%½X)!º>Óg§! F:“ï4ÍF×oˆ”ÂTÑùg¨R=I¿¥s, ¹ˆóL+êCŽš…D,LŒ X_#ëPœSc0øQ5P›y „ùc¥hëo¦È“ñ(’g²úd”âûtŽ±Y4*.ã]‚ï ™¡5:ï†â¥¬ÈÈJÝKK¨-˽ý o¤>¸ÆyÜCkÃ1Ó¶?¥†Wt²™Ó.3Qº©ò®˜ÚÜÑDè…fs¡_ñ`’=Ø—*!Í‘o(E¡Ã &lV߈äë°ïìmÇ]íI»ã¿q­Ù#øó­)«. ?™÷ïáBŒ¼2Û¡á2¤¥Þ´fJaò ÍÜ‚ÿ_³Ò‚O™™¯šnÚõ¨ÿJ©¡vÞd@ÊTR½F¶ãI¾õÂ>4(X3a±GcŽçX‡¡ž•6+œ8P7øà\Zߤ¦2RÛ#8Œ,kÕÐ(}W?ØZµ›­Õ-3¡xŒt¤°¸m7yxé•uójc‰žþÉ2þÏ9tâvZ¥àÔÞAÛJ‡ÄÐÉ-\ßOû—0–¨ÎU…湋 7Ͼ|sdÃÃèÔU@yè1?¡ˆ^䋵3¬=&Ǩù¾=Œ¾tr³¯c0¾CšbŠšé®¤q휈—×2µT¿¤«ÂWÚþRNVü¡Už÷-ìM¸Åpã$Î<ÏŠ ¯>7 +ïX›˜U˜È ]›_äûs"BíW¼Ûnž: + ï¹EL“ƒUkÀ’ZWBKÅï€åyžã½¨4á)Ñ@ ´ßG+”ÙʯD‡í5àó^Þ<0bŽ™K+âdŒ<<m· H +ÁÀŸÏç›°~q5’m1Å‘äX„ˆÑø+ä aúm²´ìO9õ)µ-?°pÀèê‹ Mm0Lé3~Ѧ +sÿQʶð°ù-⳯;]KD|¨“Ç×Éq·k‘¨–W)›¦´¼5i¸á} +=d‰ù!ZS®ÏƒÅŒ5dï¬AÚÇ–­~ÁíIû¯Vf~íK ÁÞ‘^j,àðcÑ\Ú9-™‹“ªÇ³²€ªÑ"¸^§,Ñè‡hB¾™ +=â5‚µÚ‘½J °ã"îN ^×EÚ4õ_ÅBÓ-os“Çý+®Êਂ¶sHW~Âó#á¦GGó¥AqŽÎ Š÷Ê !aÉÆÆ8ïÌ\$æ¡ТI )äÌUÈöÛíL(>î¼dgoº^§®§$ú¾ àd"¡×ݶîÛŽ Æ‘VD¥îÓ5žØZ ‘fQo°Û-‘×·˜ú  ôMwurEQ-ÅÍÆÍÇpLn– [¾1s*sŒùÎ {D»àK1g¦û‹Ë&—ýœBPsÈWvWNÛËüëB9¿û«…:Þ†A=ü$47òŸã¡7†¦þÞ/©õ Óª¸2}c‚lÈòCi«±ÕXGG˜,º5î²:K‘v(Y‹y³ÛBóù„êy6Ø­An#HÇã¯7¯Rߦ >ÌÒ šîÅ1}þjcä¤Y;Ÿ† LúI?Æÿž¢Ö ÇÆÍÅ©Õþã¨ûð(Ø•¹±ÚoÅÍýSbúl…ZcKÇìñ9Å‘ÒúɨmÿKéâÛþò2÷©i¶^h½ø‚Ô‡1­'¹¤0¡¼ñêjö(­‹éïˆxƒ²2F³ŒªHö:.¨lße??¦O¨?­Iç&Ùùû +Ã*';^¢g¤µïfhiº6dutã pvû-“‰z|3SÜK·èæÀœPªñd„Ø®Iæ¶Øw ¥È6\Àÿ£áÚX÷n! hõI0 içîm[,û€‡¡ÈÊ€ÿyyEpÙÐe(½Ò ?ä©Q/æzÀ;ˆ ònL—#ÀwÅ_ÞíC}xÿv;Üvº+,dàPp@ôʈöö³/—‰í{ŸXÈ‹²ÞOÑÚÚ=VÝTþ%Ù×,)!# or|¾‰&i?ÎÞXL†¯Ö*m”Ç劵ú×6(.íxsg%i°0ÑwLR–tJ2(×A=ET±2£:§ÁnöIR²ÇÚE\0ŒèÏÛ_#-d +li  ûu‹ù•W{~?~%J¦‰jŽÝ]ö•s¿ÀŸzÊnë2ßþ­ +ûñFÄ(¨1Z±|*ÆŸ ùõËÓ7i·˜M2$Ü·B~Ž‰ &Ú.Ï$IæA/?y­Œ4½ÝPƒ…Š¡û(¦b÷–Òª‰B×®”¿r&xë“#Añ‹)Í6•yGµŒfo(ãÄ¥Ác©†R9¤úJŽ•È+7âÕH/{YÓ¬ºžåø£sÖ‹ïœ7øÔvdo²CÉ!9æ_>ÔI}ÒŽŠË’³¶\ émô”ÿô!ÀïÑÂØÉ®j£Ñ¥¹kQÿû>{4ó‡S¡Øò9_V¡ŠcÌ‹Z037&‚¸‚±ÖN~X†üMÅ÷õR¹ggÜåÑ2)JÈî—JÊ™³.6+sòsöÒP{œºÜ9zyÉ>òjÏÛç¼>¸úô‰°ö RÎ +ƒSÕZWÄ-rÃ÷l±—–ì¾Xú»"È•Çúgã±&èáéŽouÎßQ +%ÌÔûÚ#,û¼þÌ©‘NÂ0Gà„䦵5›.ÙLñTU"|kðþÛ@:n`‡n¦ÞZâR"ëR Î"DNJ.§Çœ¤JîÉàÈ^Aq'­ö6”æ!Yšäí¨œè^ÝÄÑaGñÌáu‰é¶ÕêWüî••`½´++¶/¯„Ìœí­Š +¡†‘Šõ(  5·ìV‰Üں̾Ä-¥¸´7‚WY¤Å.b<ñ다ϧmnU±m°¸‡ì*ljcÖîÏ|»Ét‹¯š¥N§PÀvz°Õdìtý¥Óíp êŽ` «X³@Ó($vY¶an­cÏw¯ùææ0ÜW´FØÜ?©ñ¹ìŽŠ +y¯Üœ’/âÏïË*6v,ŸÎ2©"%^®_1‘â„í\¡;7‰¨û*å^CRÏ•*5¹!_eúù þÖoð`8±kí)!ö4é`OÜ®SB/øÌšRì‘mƒz’¨QÍÎÎVŸ2½\4¸G•pãóŠä™çC¯ð³ogc™ž8Q§ûýœf»@‹ûpJ:Þacþ¯Òµq5y…ƒQK04¬ç‘DzoÚ”ôëôAw£º¹CŽÝôÑmh_>{26*@`zÆðS$`ã3³oK‚bÏ'¶$,ÑóëÙŒFS`bø–`]Œu$/r§!ç×ǃ÷«0 m{ +;_ˆ+c£È2‹jýTèæÕóæ3éÏꙈšF)\¾Ð`ç+¢ÚP=ñH/ ¹½ŠÉ¹I+áÏ*4O„Ô¯²·Q–+7Åp +5Bzs^…Šå龜Œ×Ó%E•÷¤sÍ÷+ËËkÅ)w辇𸪡Y—8l¾v8Ò\µË¸u3“÷T†cNw+–õmV±˜æá0–Æ !^®eös‘ŸëÇÁUEÊccXF<ÏY'˜X‚»'‘!¢D0$ÏSö÷³ˆ(1¬Á ×âš›«ðÔLê(jûóÇIid^ Ý¡7U?¹DÍÝ[Ð&û­ÕÙó÷Y)Uã^•kAÊ×y÷Ëì£'5µõTÎˈãûÑw‰÷= e\0j÷Kjß#QÇ„j71°×‘·’õŒ«&Y܃uçXθ)©4xuý§¶ûOóœŽÜ§Òò‚¼JçÌJñç)oÅ£ÄsO`¼ñ-Ôi”zxÌíÝ]›È¢,nn={SW‘MØ´ËtJ;¬9{Ûx¹Iæ`Ãa¯µLP2}‰ÖßØv’Ä·Í ²×yF·á‰Àî©5µ::´ÊDñÏ£×_¥Ñ£†\µŽÔ²ëPºæg•î½Þu[ož£¯‰Ä²p*2hD$c;ÅM‰ƒ:SOkϘÐVÆìD˜õ¯Ÿ|=fß5ßì:E+Y¯»Qy¡Þoñ)X“ …Žº²4 M iE"åpnã‚t¢¹aU8 †ºvøÁe]Sb÷lÆÍGA-`”ðS­»å– heQr$``Óhø¥ÎÎ3‡6 :Ý$›²[gU×:zoG÷ã£AÐä`+Eغtá…f áTr2C÷…´Æejž³m/‡y}±åÄ5!Ú惄—RUAÄk1W>ú² XAò»Ê¾—»¹a¦ò„­” V•¨!SYâ¡D»5NµÏ¨óÃAâ7ŸKÍÝ.ÇÎr¤Ý‡À­#JE¤·m5Ú @¾ý4ïGï?ûD#Òºæò‹Þ˜û}É@f¯D²ç‘M¸u –1“;„oš†wè3™¢ècù’RÇÌš:Í™ÝCè¥]e/"úò”mÃÀrì‹­¬¾x)1£kÏË)îŽÅÓ²á(ºG')^ØΠBH«0½ÝWÿ$yaþri^^¾å‰ì:Ô ¥ø_Õ>(f´õj¿®Ä{Hó˜³<Ê:Y˜¦Ë³Ýè»úñgÝä†âº ¼ºS\¦Ws‹³xïÓ¦bU&É°ƒ•È¸ ›IßçVà!²Je¤c»A=‹[sä¼€³ØÄLÞž«tèBÞdÉÿdde¡/Ymç¦äק’-yµVØÚÚÝë.T^h¶Ž6†Súz8ÕëkE®…ÇÖ±«zÁ+#œià8ù(rãa˦˜vf{1Bˆû% 7ÌQ¹Ð·l0}¤'}|ç—¬êcè©wª‡®ml°#¹F1³’³ggò!ÒŒiòã +†*NŽ“õÄérè ‹)Éü§Ý50xªåLú¨ÖŠ¾z‰¿ÿ¿•ëf÷”±òòC¾ÆN…5E°»t?ÕÊPxLòÞ‰š$ð‚uI÷]vn³Îƺíø³—ê nY¤écö¹{ñ—–4»ûLa~›§H¨vR½ö +Ƶ׷ ¥ì"QŸeåº1 û½á‹æ*çà’÷\@Q{¯§æé“t¿»­)A*$¿ºB.Ï£ö)YÓÖ@J@;×êò3žkHX£Ýœê­OÏAFù c0sR7ù0±Gÿ£Ù/Á¸åÆMÝ;Xvª`=ôÇ°´ ô«®èh5r Æ})Á2ÇIpÓJX„à X ï°1Ç<ZbûŠš9ƒ8ãÚG£pK˜vH@ÜCŽlv —[|îÒ9€üjÉÔKX–î:Ì­¿.ã ;›;àKx¨mi¡@ÿ’´‹Oÿµ ›ñAR‘éŒX3IÔÊü‚±Vè)Ni´Ê‘ò—î«nø"EÂêÖÃ$+f¥jRS6{eÁÐ$>c¨;ÃôîÂ[…Ä`špáæÛaU67wX„–ýç±5N„ŸAñÀby$:ÖNͦ>»“Ç7á’ŒÆeË5RõÏܨµ¼ïiß­“iƒ`®c?-%*¶¨5ÊÏs4Gù\ã}´:P× ”%Ù&bÔ¯_ èæ!ºéؼ<³¤1Ÿ­”|<Ýß7¼$‘ÏwnHî+Ñ?‹iAwîÁE}é½Ø6ï‘éVvEÕ”OŒeHe î¹gøÎÑJ‚ÉTh8zÈ´%éæòpÌëpJ(&€BÖ–›¥coߢ~¯îóáé:ô=%NãÖª@ÿÓ9m5à÷š+3/ŽñìÍ¢Œ§·\WÇfImHÝúƒ¯v‰hN ÙVúê à-XÉ´6¬ûBö&‘×!˜½´/…ýí—QªkH§†±ÙdÞÞ½‹ÐÌ[¢R£!Ý ­O,ö¶âõaߪ)µ¥jùü#Ÿä2,*ºO²qn˜h³Á¸qŒÂèYA]îÒši<,&ØMÒßµN½‡íÁ›­cˆ7Û ÎÆ> eÖz~}á²UZlÿðe„»P›ÅÎ>CÖœ¹O4;p+|Ð&›¾*§ç,2}úMì‚6lpI«–7‘ ”®T´à÷|àÝd¾ƒÙ>¥EÔûö~;ãW‚íš|nGŒAgÄþ'²ÛQ霉Šl›p '_~r©2ec*ð˜ÿý%I4€&°Ÿ]ŸûÓî´6­-½ädzM'Œý£zƒæi÷ƒ©­¥0-ÁE«½œ± š‰ÆfUZ59Õžp©üÁ¾œº-íÉ'Ð%Ê´ûƒ?q5˜|šD {OZàòKåñ+¬†á§àÇÈ(É€Š]o-÷Ó‚E›UNäðv¬.$ÂT™ÛëBáDüŒM-³TJÃieÓ[ú¶q#N4õx”CI6A Y¡­§¸5õ›‹ùFáñ‘£„º ò|Q†¶÷šBÇç<}Ûvõ‘ïzžeŒS7=æ?µ+Flµ šÛJ^…¤/ÎBx¥an’ÚªùÒæ×,­„?K¢ÁÎ>h«›SS¢?HÎ;sØÁHZ^ô,UŽÁ¬HhFSÛ*lV½¯}>ÿèdÈ[µôu±ÕEป·ÕDpa(ðTöq_¹:º÷{h‹3øúçw¬ï²3*®$éFÉ!ø”N5-_ø§ó3%/YW£âëÏÐÀÓ{Òâ¬uC±<ÐÀMMuÓñÏP92FÉ|èGUFñ"ý,Þy› xï±³ÕÏÝ{ørKU±Rõ—pv²Ì¿Ë @or_°z#Qb­¬<±M4È`¬×°6ü"躻´‰H¥£Þ§ZJùâ5AÆ!'³¾ÓMMî:wþÉ/G"òrd5Q?ÜþRÖ¾åO9¹¨¤ A˜!rOO +fÞæ¿F +™Qä±">7fDx¶%`,†'¢‚*Dœ@B¬Øò"àÉcñ³£—â{ZÚÈO2©²çì®(Ñ6qsÏ­¨P•ìg$ëLžÂ8˜Ï®yùæ] Uåg9¢c. ØÓäø)‘-WŠ÷E}¾ï?9Ú­-»[­b`äaòÊAºKp[¿”Hí”Ûm€ë»”h_ E¯U£´ CE±f€‡Äb£Ï´–s.zÈ–å”_j†zv¯épÛBÁœ²_hR[´•žo+Tðlûõ¥3Š·ôŸû_|”_K4ùu] u“¾êö\¼ÞÛcëî=ð.G§®ÁBøÞ^5ûm.§Z²©¢[ÚªúÃ:ök2ó›½2˜ïj§2UJ'ð„é­q°Ûªcžãñ³$ –7j£\CW¸•Ò’4ê?Ö$sŒ¹$È’Îø6SF7¯)j`u“(^ŠS“™‡EÅ3biOÖtËY96báÅ> endobj +1165 0 obj << +/Ascent 694 +/CapHeight 686 +/Descent -194 +/FontName /KBSABQ+CMBX9 +/ItalicAngle 0 +/StemV 117 +/XHeight 444 +/FontBBox [-58 -250 1195 750] +/Flags 4 +/CharSet (/parenleft/parenright/hyphen/period/one/two/four/eight/A/B/C/D/E/F/G/I/L/M/O/P/R/S/U/W/Y/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z) +/FontFile 1166 0 R +>> endobj +2510 0 obj +[460 460 0 0 0 394 329 0 0 592 592 0 592 0 0 0 592 0 0 0 0 0 0 0 0 893 841 855 907 777 744 930 0 446 0 0 711 1122 0 889 808 0 887 657 0 909 0 1222 0 893 0 0 0 0 0 0 0 575 657 526 657 543 362 592 657 329 362 625 329 986 657 592 657 625 488 467 460 657 625 855 625 625 526 ] +endobj +2511 0 obj << +/Type /Encoding +/Differences [ 0 /Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/arrowup/arrowdown/quotesingle/exclamdown/questiondown/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/exclam/quotedblright/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut/tilde/dieresis/suppress 129/.notdef 160/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi 171/.notdef 173/Omega/arrowup/arrowdown/quotesingle/exclamdown/questiondown/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/dieresis 197/.notdef] +>> endobj +1083 0 obj << +/Length1 795 +/Length2 1328 +/Length3 532 +/Length 1912 +/Filter /FlateDecode +>> +stream +xÚíRiXSWG„'.P´¢‡Ã&{Ä­0,d5$—Lî…@ÂV˜ˆ[Ù± tÊ–Qd@E°n€";¸´‚E-¨(.sÁ±ó ý9ýÕgî¹?Î÷~ïyÏ{Þs tÜ÷˜S9H ä€À"s–@v ¦ `ñx[Œb‰xlÏA@ “-€ˆNПbeEÁ[` €*ò¸Á"`dg¼H"ªòØ,0X¢`H€j°Y|°aó ‘ ¨|>`.®L(F@,†@[!.ÆàÑá >ÁqèçV$ GM£%›Æ5ÉA`¾p  ÎAwƒP/„­åâb>ß•%X”Gsú]—%àñ¥ÿî#‚P±„ðrª7ôÉâðÄ‚å]ºˆÅ籩0—ü'ˆîÀ“@wžˆ ‚Xüph ‡`ÎrhpKpî® º·½éÒ.µÜYÕ•=U½T×;óÌJÑíÎØòLßâöü鎧…îFöžÊ#: +­þµ­y‡­I>¹|¯äÄê­D¦Ú©°ò#–É£‘j™é+G»dq!É* ¦Ã/F±úû"•¿gÌï›ýòÛ/ØÚDæ#“ ̉ÏÊŠ“ÕT«®^«Ü•¸{„`\iH…y.+XŸT™õí@Ï´ÆmÚFĔمFÖc…ïÎ/ì^0hg(;ÅœÝð`¸è§ëY/Tõëïõ{z> ]¯»%2³ì ˜ÿ¡f"Ô™yFß©ÍI½møyï¦tï(yé=¯_Œ¥[²M9û6æn•µk½hùK„óɨÁ³ÑtÙkäQ¡^Å@³u°Ù‡zÍ-ê:Šöwó¨åa³[L:n%ø&ßê2–·ÝÌÞÿô^k†Ùñ Ó­` »½FìåQ(|0O˜\aIøikІºDŠž²?á8–æÇ;—4¦)öi1m‡O6à&gú?¾!éÉZ¤»iÁÝRNRJáw½uþ%]Yõœ8—g²D¾aÙ”F4%b{Îg…?ÔkÅ^½¸·ôIsûzÇüþ\9ø»Öñûµé8ûø¶EDÒN~õºŠÌ}lb +×i¾„í¯¸n̾¡rú¼’_úµ<½˜—¼Ù(ÂH‚ª‹øÚ.LãÇÛöÛ»Ÿl +»VçÈÇŽ˜ífZ˜¾?FíHykøAõhe¼n×vmjKí^ÅÍkÖÉ6yßxW5ÑS¡ÏÒx,8$Ýæï53þµ‰Ö ïÖX’q‡Œ>¥Í¡jüUºƒ|_›Ûøeé÷qöQÝ'”Ÿº›zp×asöÕý› “tGuo’®` ²¶¬VKÍÆŒP¶¯ù§Ü7–®˜2™ W@fQ+¸P³¾ì]àlr>Éù>3¯Û‹8•fûÆñ,ÎW|1Îråæ/~W•{ó&©ÝCWP}Ô„þ†l§O>4½óy›«£“Œœ\Ú4¹ñ2v]áãÆ:F;lhûæßÕ¸®š¤’ž¼£[—Ò¹ïúCð`ýÉÌê[w´Â*Ræ°ó•¾·‰T{^°ö% ‰^Ù©We8>´jÒfó\òB¶ezõÚ›@ÒDÜh1äçGVS>¦ð°³üÊÏ;½Út«S(ÎÍO_ U<—ßÿ>’X1Uq:¾!/%o$ò‰Â©f9¤39¨f°î…8^sœ›îöÊ@_C¡£ümG C›6XR{l~ŽU¡\ð.  ï—\ ­tï+—8 áÒ?úïUuœ_Õ”s;±yjg½R½1ªÉ]' _ݯû¾Fˆ Þ¡Ö#D~Yb­ÅQ°Ä÷9}îk“™–„ö Õ.`ËùF#<ëu&ûm…¤{lŠfTÍÛ¢jÖNýxEyΔ4µšñìåè‰b*e/öòB(qÍÛÉKù†ñ¦w¬Ê*È9òÙiS /y>­² Ís-^³©ôçœMÅ’/r%XbdqIêQœáMîiíH̶‘Où¤éã£ëoþ,ûZéǘ88N®f£èM„'f3Võb`lcç£_Ï<”LG+åºXÖd Ñ’›'KƒÖ4÷–Ä=(Ì2üÕß›Ô+;[îìæõL¨¾·¯éy‹7“­E›WßN=—½â”¿ö–× ²×Ê^sµøÿñÃü_àO!ÀæC,¡°„‡0ÿ5Ãû³endstream +endobj +1084 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 2511 0 R +/FirstChar 43 +/LastChar 50 +/Widths 2512 0 R +/BaseFont /PNMIWD+CMR5 +/FontDescriptor 1082 0 R +>> endobj +1082 0 obj << +/Ascent 694 +/CapHeight 680 +/Descent -194 +/FontName /PNMIWD+CMR5 +/ItalicAngle 0 +/StemV 89 +/XHeight 431 +/FontBBox [-341 -250 1304 965] +/Flags 4 +/CharSet (/plus/one/two) +/FontFile 1083 0 R +>> endobj +2512 0 obj +[1028 0 0 0 0 0 681 681 ] +endobj +1072 0 obj << +/Length1 823 +/Length2 1131 +/Length3 532 +/Length 1719 +/Filter /FlateDecode +>> +stream +xÚíRkXgV[\ +ë¹êsDXÔB€’G#Aa’L’Á$&`* ˆ +Û"ÂA–j¸…²µ"ØâPè>hYT ^»b—Ô +º¨`‹mØÖíSúclõÙ™?sÞóž÷œóΡ»‹b!RLŒD`j‚1¡ ˆ @làË„ht:G`ÅÔa0(0b €¸‚‚ v‡K£L(@ ©cJ £t´ Á E´¨\H˜„!*G%°zŽ¨(] ¬1˜E’Iéð0 ‰£r¼x޳͸ÿ¥„(• z¶B ¢-‚§#R& ‚€•@ŒÈQ55»_-Ãw–ê4¯S鮥–^Ô²Þ€ZUŠ©•$5¸ŒÆbT/„šä—j¡x„N©Â*J~ÞíŸåaª$çá:%‚/$ìDæG RT§Z˜å°•„¨åJ°ç!Tf"RJH@+µÈŽ¨¥ [SvÍ5fñ£Þ +ãÇùüûæ’"U±¤æ?²³ì¹ú1¦\ÁÑLÈf²ÙE¤Þ×_»4 WK0)ª–_ÿã8LÒØ””¯¿?ØT-E2’IMÌbª1‚*‘MN›ýlÀÚ5 Ñ~¾Ch(–¹A 1ü|©kæøq@ /;û§Ä85š¦CøaÀŸÍ7úΡŽ#jbîX(^Ç2”rA2 íÎ&ù]~ê{rÂõýg-Ö/•·–?ê¸uyiÞíc‹•õ½[ÓÖß??}®rù££k2¾wÑmÏÚþyÄÓÜ´’ŠAÓhzÊhåÛ—\âŸU +Èh<^æ=¶ûäâÀ‹1ÿÅÛnÞ¿f(K¨í®þgÏãS"¯°X£ÕßÜu&¦_è¬ÊàÆGT*ã + ίã¸GÛW¤ûgØ—•.þk^Nj¡u›Ï½ ¬]·lZoýþqSÒd[ï'5ߧÊjÑ–NÍøªÜx>¶–[wtW¼àCÇmÝ2ˆ+¡±ºá‚n•ù•¼vKFº26kŸ%æ^õgoª\ùι¸PÎéÝÁ +þ¹3Øz§,«%›I¶`ç]Ëꀥò©|ѽé\Œðno~Ïô´_ô¼Ñ¯tò³±¡³{ ^ÊóQÄM׳nìú®œk§VY_èYû‡O«JÉþ+eGª=Moó~ãh|àðž×œø%-½Œ5×æÕ²#E÷QšmcI›¹|»ã Åy®?/Û»Û þ|ã™>9b>>ýµ`YÃêŒ|‹¯¦À5Û¶ˆnvç Æ-3ßkÛfLÍy±|ÜZ¾yÇý ú‹I™¼`[V͘Pƈ½[<î¼ih>BþÙòåRÅxT1“ª‘Ÿ¦Ÿè·oÀUÖÂN«mc_Ü`à8tÁeÍîÍ;‰;m)O¾Nù½ß„ȆeÓy"áãz™Oeͺà[ÇÃn.Q_Dk{kîWô@øfëiÿ&¿Žæ bçQE\ pèså&ßHÐsGÜëg\gZР˵ÆÇ-ÅÞèdInSéðc¹¡/Ëåäé¢]E£¯þôlÙê°\ÔéÝéìàþ#]Sô ã#íÓoÙGY½—W'—åêiÏOÃ6A»Ú'Ú :ƒ»x­³"cˡ‡šÈ/ÛJ/`NqKb“ÇY«£™£%Ai¶CB«Vúnû|hÿøUH”Œ˜ +Æ÷ÒþÄ“†endstream +endobj +1073 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 2513 0 R +/FirstChar 90 +/LastChar 90 +/Widths 2514 0 R +/BaseFont /ILGDIU+MSBM10 +/FontDescriptor 1071 0 R +>> endobj +1071 0 obj << +/Ascent 464 +/CapHeight 689 +/Descent 0 +/FontName /ILGDIU+MSBM10 +/ItalicAngle 0 +/StemV 40 +/XHeight 463 +/FontBBox [-55 -420 2343 920] +/Flags 4 +/CharSet (/Z) +/FontFile 1072 0 R +>> endobj +2514 0 obj +[667 ] +endobj +2513 0 obj << +/Type /Encoding +/Differences [ 0 /.notdef 90/Z 91/.notdef] +>> endobj +1062 0 obj << +/Length1 988 +/Length2 3185 +/Length3 532 +/Length 3861 +/Filter /FlateDecode +>> +stream +xÚí–yTS€Õ¤$@µè‚Ça”+l‚§Þ EuòÿaêOq=? Ɖý.ÿ}“þ-Ä¢1ÿS€Çzùù¢€1ÞEÀýYj…úéÍå‚öÃþ™5ôEbÐÎpœ@~†Ð>zh"Êöuv| ~¨aÎåOÔmûá¬o¦gh{Zúg;äH4Î×<ÐëÑïÅ?ú‹©›C@;ˆ¥RÏ¿¯.þq/]œ3Þ£ÎL @È@u0¨‚¡ç‚"("Õ/X‡÷¥.¨[ +¸â  ïÝTTÀ^Ô–à]¾Ç†N` ÒÇýŸL;ã1Ônÿ¡vŒüEÔ¼Ó/R¡VÿCPˆvû °ûoÀèߪ„ù ©RØ_HN0þ7”§zÿ ©Ê„ßúd¾¿Pžº6ðþ{¯´µñÄ`Y +¯ Àa€’ŠJèÿ.³À¡½ýP†§QVøÙ;g?…óýñjP§àovESG…"¢œA£CxgµhÌÚ˜Ò0Ý‚×e R´Ún’Lî7÷?95’L‹)î<ë-5Yc½UžÍÁúžá½PÀŸO\cˆY—ÞçKÞI¤Á½÷þŽï³ƒêù¬W³g½D¾F-i¨Xÿ£5í›$—¦Ù¶æ,·-æ!$N›Ï1¾¦yfçÿàÙh¥SÖzÙ‹ØË5'„ϱ‘¼K¯(ÆN°¥¥ÐOôD…yÄ2ÕI¯àýŽn0ÝNÝs …â£&¦)}á]­Ý¦éµK +ÜO’¥AT&`{±ƒ=µmÞD?#®éH¦í„Wàl?Áó(‹îëOuÓtÙ}øJĹBÇZ”wÐEžYæ/Њoê½GìoO†jXr<@Ðò»›é³Ãvè‹E<ù=Æ~Ñ‘–2i4+¡“ ϸZ»•&}CÒ+ŠÔ(N0þZ»l“—J¿R‡Et«™ çh“ài+Änà*¸v¹¯Ó¦™bùðúH0QDºl`P&@OvùxŠ+ûÑ›\˜[º ¹´ŸBxG K¿›’DW-$í­x9ª'“E¡>ÕÙ–LÆl’jçüÖù¾Æ1¿!­çíIÑÓH3t܆zÎ.«8nV¯r_… Â§¯¬ÐÒH3ÛI÷~åØs¢]Ì‘\e˜ϴwÐÍSÍà^*9¼¦¹Uu%¬õ>¡4€ïé xÛËéÁíÁÛ¼R¼Ÿ/\ó?ñ1U4Ÿ¬¦~%Ô}îéKWpœÊàÊþ̹nÅ)–8Á4š …P#³Ô¬•G¥[¡ãnln¢¦‡ZrÓ']#O¬Û=)©~qî¤tm Þ +°YˆÕoCÄCÕD)lÆgÊcÕjª±E5jKbM2—$^ô€MuâLÎ1Ê?~añ4Ö¯%hã³Ô¿Nx8mY)¿!îóœºÑPQrÙ̺•ÓâP¿3†nùš…ôÓ×y샆BQèë>åàæƃv•Ub^($¨ÞáÏ^­»~a7†Nw›Iª1³œøvòÙƒùY‡1~±&k,ÝRŠii4$?8ˆyz+ìIYlñs_žM¾¤ÁóUn©.’•6lœžWž„î÷ gI7VÖl‰É§ÖØ$Šº8ÎÑߤ­ñ.Rv»ºÙÓ(•$£¸Û ²ÉtI&IÇŒ8¬,¤M³z•¨³n  Œ³„¯ÖÔe%ò¼3Ë„: +ï;<§©ŽWÝ`Œµ±S‹+ o"ªeÒ€«ãùëŸ%—­Y–ílM¬óHuøØ ¹³±m‰ÜbÍK6<¿±4kRbK͇Ší³ñµ‹÷øïrDÛ³³du¤Ã¦× +ßv[v.ÈDl¹¨9ÐíÙmUãæjõ—åíò»>°Ô´æÇÙöXLkn©Ñ/ц¥ïJèã\Ýýy¯õD=Xx"CÖ¿ªè&êmýx÷£åŠŸ*JáÑ}­’û¥]¨¹‡à.f™3Sò-Žh^´•w½ä½<»4Å'ÖM÷~Sü þôêí°Oá ü•(†¡k:ÌDÈ;b}àdiS˜Å„e…L¯¿yO Ùü$lþ0ÓÐ|\pÑ:UóŽZæ6÷ }—Òq73.ž<{xÓ®Ÿvê~ß9ÿ¹§¦ˆÅØËö]ƒ3H•>YÈ!‡w¶ñòŸÑQv§öÜ‘êƒo¬Üf åòô¶4’Mây"Ã^Üœ»Åž'AûUâ–ùѵS‹=éü:”û•ã*§’„+]ïöîŸ_ʦ!Ë- NFË %8š»j®´mÈ °¡p€Þ¹“B<Ÿ´n4åY¸>è*Kß?´ʳº[¤Zw…(ÏØá.\¿¥UʬؗÙÝË*󤮃?·GÚä†/–ñoðD$Ù&9©ÜMNO¹‡z­Âõ{}Ê$¤_¡çÔ»#{,FÑ-ÌæÐA!é>Ýʽõ±Ô½ªv§Š3Ük£Î ´x!+mš›ÝΈ‹Š4¤¡ÉÇ'F2¢ÝÜŒ2ücaA5Þ–C°ÛÏ ý‹ý¤BMƒfq4¹Ä +.ãysf>V™³;¸† Ý9Á™Uë+oͱØu^9»N+CðöX§ V­ˆÄ‹ë5ÉŒ"®sHÊ#<å‚áô]­û¹[ŒìÙ ïáÍ&s¯‡ Ö‚Èé¦û|EÁGd ³óJB g¤÷µõodGq3\ (•KÚˆˆIÎ1íÍ+gsjªžÐô +T-~<¯ áÿ¸j|pÇÊ¿DSòy©w}‚Û#KÖk'@ˆ–‘ü´®y–ùPÓÞÛ—QyË'™<Ÿ³úî *cþ²úšoúòX+~büá ƒ§|ZM×Ï·\ w`#5j§>îéÒu¤H|Ù¬œšD5t¼/© Mc*`¯9Â=ƒndíŠé €Ç÷'iändei·ÖS¿…]vy&¡3îuŸÀî…`oIæ—ëÂQkç¥gZ9$œ’i„cÄyî•WBÊsúvÜÄк·µàX’—JxDXD¯»¶~aœŸºåHNã¬Rä£9ia€{´ººxZÚ”ÇåKE0=³4åÒ-t3Æ{ª³NÈÁ.£gƒcadöAû³õÜ· ÷ b”#&;Ð)AOÕÔèÑ\8M§ü´¤éÑÍs‘ŽÉ³óE ÔÿÃd½ãÙd½O൰þ-¾Ùäëæ3áA¢Œºˆ['4%5Cùw9³@ó,µŒåÒ’ÏΊä  +}P3@¶7ÖEX‡U§ÓGVMðšÝØ>Íò ˆy±Ãõ)ïcñwÑÞמԶw‡çݼø˜¶êÙ¤DÑUó­‚_¦hWí˜Ð«•|âÎUò(ï0ý` +Ó˜–añ¹·Y¤§E5±-ó&¢½~RXí•ß½Ëá›Ø•.àÃ-è­™N)ÎPÄÝJo%Í7¼Yg¹ga‘M6cktBg’MF{»«Ä6)£Óz,\wD;×ôl4Íö‹mP-dG:â­c°¸¢0²Dº!'¸<ªDïê½®q—…ÌÙ„Žå^™ôqcg ˆO´x>³µ_Ço)^]Õ{[A.Ñô™¼ícÆyêXÓ¿£ -ÝÕ ¤ê7 ®9ˆ_Sù«À¹8žÖ6Ò –yÙOö,oÕ27îµ|É{¶Œ R2¼vøæÁxò}ýO’„*€Ný +ÍP¥`ü1ÿ©™rZ™y4dlµ%$qyÒ£þëVÈ>LôtÅztVù•q‹ëûüô~Ž‡Î$£&K£H]·o1<Õ”NÈŽA)TÀªŒ^|*GäÝ}»Yt!äNë‹ÜãÐIpµ&þÈš5ÇËC” ÇŒ¬Ò…{·itH †ÕÝ{¶M=Q™tÛtürœFR 3ö=¨ÔÈj¥ÔˆiLWËë+ðÔåЈ›9¿T¸¼yzfÞè8×ðó ¡¾7±éGENŠ2ÙI}^^œÎ†T/dž—Ñ>‰ŒÏr´Q¾Æ0°2ôͺœ|'úq_Ù{þKÛÓi)S>Â@œ^\Ýý{¤š+#]7?†õâf\¥ùeÑùVšg¤]ìÌ­?¾édz\×ZµeP1Âlp8öK{™;uà)oãËÄ"Ò3,ñ,OžþyENÎÔ“¡ ö¶o´¦"uN=Vñ1ßç¹ëí ôMýC¼g—á"ÚÈ }~–ÐAi>»Ã2šR¼L±…ûàš£Ú.“bMRŒ»nóÈ0N—a›%êbô¦’¦-%<#™íÚC–£àNÛ½Ò·œœ¸*_•g:+* X¾Èðf¼ã™è—_þ†+þ/þê—Ç#$ñHÓ“RÜ!+Á¤¸åÞïÅýè!Ù,õ‡£+q,¯28-å +|0ì0ÿ7FVÊìü»ð\žŒ Ù¢K»…«Ërˆ)~->Û¤‚ÎçÃ÷âÅlÃzß;iݬmËè~«VQjÒkÞ· ]`ÌÄ^§˜´·¾¹•ÆÄ…lmŽ8,µ]Úk`RÂUuH˾N4XTŸï.ÖbõÚ‘¨Ír¯Û  tåÜ=Z?T²ºšº a¥u«;xó¯B€÷JN†ú³{“9Ø)ì°ŽD&WµC.ÇÙBø.ä <7e¶—^LSüËhÞøºHoy ò[pˆMh½%ñ‚Ž†I@¦çÛ»’yئ 5·©ÿK““ ó†ZTÛpÛuXñæP/‰k£j¸¯¿#GìéÁrít«Ëø®jÛ¶/Ú* +šs4y̱q²€X¸V¦ÈÀÏ3{Ÿ=µíœK‹])­@ªuþNŒFñ¦ñLc¿Ü+ܱвÈÿñýWà?BÀƒB|ñX$Áô/»›Ôendstream +endobj +1063 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 2507 0 R +/FirstChar 46 +/LastChar 121 +/Widths 2515 0 R +/BaseFont /GQFIZD+CMTT8 +/FontDescriptor 1061 0 R +>> endobj +1061 0 obj << +/Ascent 611 +/CapHeight 611 +/Descent -222 +/FontName /GQFIZD+CMTT8 +/ItalicAngle 0 +/StemV 76 +/XHeight 431 +/FontBBox [-5 -232 545 699] +/Flags 4 +/CharSet (/period/slash/colon/a/b/c/g/h/i/l/m/o/p/r/t/y) +/FontFile 1062 0 R +>> endobj +2515 0 obj +[531 531 0 0 0 0 0 0 0 0 0 0 531 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 531 531 531 0 0 0 531 531 531 0 0 531 531 0 531 531 0 531 0 531 0 0 0 0 531 ] +endobj +1057 0 obj << +/Length1 1088 +/Length2 3186 +/Length3 532 +/Length 3879 +/Filter /FlateDecode +>> +stream +xÚíSi<”íÛ¶ÆNÉVÝv‘eìDYBö}OL3·1™…1ɾ/©,Ù²d’}É®<"• …4Z4–„Š²W–òŸ<Ïóï©çãû~zï}}¹Ïã8—ã:Ïó’µ±—×Gà΂Æ8,AªÕ -\ JTAI ")iˆa{Fµ¨––2`ˆ”Ue¨¶²²¶ª&D0Äù…àQH cx䇓 ñ(8 XÂ> †–Cö88 +$„(úh4`÷#"°@|ˆP€@¡'gA$ + Qü!Éë4þ„~SA >€& +ù¡ò@ÓˆÀaÑ!ô†(ZáhÅ@š”ÿ U¿'7D£­`˜éwûô/†A¡CþòÀaü °Ä!@<öwWgðOq– ˆù5%ÀÐ(¸>‰¥?!T€1Š"lP¸à C€»8ˆEü.‚Ö¹] Šf.§,m­åþšé.iCa !~ÿMûÃ{׆þ´iýÁ£ˆ€»­¿Pš#íüýçñ[1#,‡@a‘€²š:Ããa!ÚöÐ,5  + °€DšbE,Ž@ hM ¼qxȉ*Š~0<ˆEƒÞ„³(är‡þ…ïNðBýÿ$4þò £ùk‘0Z¿•ùI)ÓêœÅÃàà¿‚4iš1˜Ý‡A‰„ŸÌÕx"Nø×üGà‡†…ü$µþô;¥ í§ˆ_®D{,2¿Üöß{``€#†Ê+«òÊZê´Á¨ª©Êa¿z:bQþ éI@MIIICCu…âi!ì>>Ú’ým{£h+ ‚Dy9Šƒ‹=—Ý_nDªÜ#Ko€l½lÕØ5ò[Ì‹+ôè›dsÙñ—ͪ<>ÎÙ=³‡ƒ·…’;.Ø>6^Œò¿œCù>ä5›w¾]Øe%Ï2dÆOìKÌ<×–gk jôÖOÇû+2]o<(Xz8ÝFæ¤ÃókQºn÷ ¦îüXu ã<´cB\ƒ”Š¨wŽE¢j5˜;3‰:~.¥Mnl×È»Ib)Îø~z½ü°¬³yH,h†g§NvJ{œ'=˜9t¡ºG|Õ+1âÐuajYzĪ²kü·úª‰Giæzs9I¢Ûä<ùd—“óÒë+ÇC•˜JW§TBQ ß;Œ6’½ÆtÕ8‡_>±gˆbÀR\!Ó«º¬Ô­Ò+Öù,^«¤ÕÊ‚eeŽûYîªÉ䚖ŬUu³©36‰ÉÊîC§«{b?¦ U®ŠËÔÛ*ëà!ÝI÷#{÷Á)ï&˜6«MÔE“'CÌ*PGv>É„²›e5¬mDñ3ÝD¤„/5B£ýÆ¡îØîÆ-¡*â_`Öî‰ßµ°ðÝ+/,sØFÈZdʳ'&èÅâm×Ds4Õ½Ï)v%jÒU¸k¸á†«,_Ä*=ŒN°­Ú¸{ªƒõPbÚÉŸ›÷56„O§NI‹¼­î¹˜ÚqI·Q†JiÔ¯Ëó¦—º­i–’sJ¾}ßehºcö[ g8kýXÎy_x«±æv‘hiªI¡Pœ˜“ßókÔ™j¶àõŠL²›'×òFÄÃãß&Å£Ô–Ì +€Áœ[²“ÞA=g÷ U’²/BL'÷TqW¶ôsL³sŸ <ªô´C-F Ç£³Ó¶îí…PŸß¾ïöéÓãó&åi¨…ÎRüÝÕ(’¹'Ç»OVEf㌠>¬/(­Ç—¬j"Œ²/”×<£ z“Ú$Eãù-Ô\"©R¬8¯WÅ‹¤»Òr>û´’’*¤^•Q5Fho,_|‚äçSô8^>§ú´sT|#`6–íbÍ¡£:RÞTËáîþVÃÐ.2E+÷ëá‚¢s_eê +¥6Õ.Ü'Í Pã>Þ®»µ`öB©˜­ÐXÖ«éúNYYˆgL1SêÚ9Š0Àm}Xlûê"ª½CŽ:1ÙÜ ¿©/Å¥¨­tF z¢ek?ÙoÖo[Ó°&{m}Š£&¦Ø!°‚WúÞSù9…@Q‹÷ßø!ÚM ºVüÙeÆ?6ëö UT‡)”ܸW3’<È–û’ìÐÃñº4Ã<“³½©TÚ}‘Z´!¾KvµV?öR’£ŒîZ0EÄÑN©V× MUæNKË«lîkù¸ª2Ùe~Ow;v%jÈ+„!k¢çÐ@tðVOŒ¸¹²U|=’*>§ž´8™õ¬T8—Av¿ÅJrS~TE¹mÎÌ Ç ï"WíÁ…ddÊZÃCóÆùê¶e‰â4vK‰u—æN²^a‚. UŠ-àe¾í£µé­2*ÀŠ„ÄågOL´«Ø‡Óã>6Ÿ¹ÐÄOî—~’“½š–T4_lñЉðˆ Ñ °ð˜|ÎÞIÁ©KÛ,¨Ó§á”ð0†Á±ÑGÑà«Fî–oñY3^šŽbÄtl^˜}Íæ3«¢É†â'/”«ŠI^žê2âA¯À·Ì—M<¿GÁo¹¿j廓äü9îäʾÕV†0‚Àà +#ï¨J[ÁG±Ç—n–´ m_l1 +î=oßv`)u:ÀI«/êaüE®f3ˆùóX'újɱ„7K×%¶³$'9ç´æ²’?¿’Áõ’~Z³¢¹§ß6ý–y«É|iÌW%õE=Ñ9Ê̓âð÷IïC÷ç©HKó«À!ù cF‡zçšó¨j:…S´Ô·u9žñIùò—÷UGŸU$DµºQ–»Gó£¼ðy;áB™=SÕµ:¡(A‡äîâ’ö#I¯`[NÖòkë%A)^å{-ÅÞè¼ô͘¨}r¢`L7¹éóâѸ Ö"¶vYná¹sôBμ®4ï¥L5å&ùô„&Ê^umÌ|ç[·Wh$ *Z¹¿ïè/DËLy~¤¾¼«¡ ¤šë×2o£÷Aßy:n-›Én;Æ£€>"—SÚúlð-Ž3>’9Dèض¼À:ïò ³n†’Ìõºß9”­ø${fÅ(Ç3Ϙ(s©Ü_Lz÷”gíöaQ"Ù¦W$­N7 °ÀÞíH£ÞŠ±ò2ú9qŽ+h`Øå¼îv¨á(ÏWiløÔ 7èU~¿G4C¾¢ÿëS`t§ôˆa°Ü·îwëÜ×È ¹¤÷ÍxJG+K×çcE&‹Üö3ê@’Jë\aBc9 ~˜LÕòiëï/¾Dª¿µ;'VñöpF|X=áÙ"‰Mâ‘Ðj§óÙõCÜã‘h¾™íЃ¸?Ü©p²oÚÄ`Ão6<¸ïâuü1]vö¬ +·¥c oI+¬ß³ùeRW‰ò¤ß¬ ‡]?¶Ü ¤K¿k&ò**4>Jß PT:û&LeôùfÏ°5‘ìD “áô<ªSß=U£k8}M~)žÙ‰™^Âß”íÚ €GÎ&°·Á²l: .e›¹êy•µC`º’ƒk¤ùë^r—@ܱ¥ï핹‘* +v0äk8Çd$·ÐdGˆT™ó¦VyÈÅjŸ5mÕ*QHØþ¨p /Å–”a«9GNaé%Üå°«9Á*¸Ä3½%£0ÁÕ麎ފ©šê/M*Ž?i¸—?™ÅfÏôpï®'W!ßÕÆx”y™GÔ1•Ú›¥úñìûªÏvƒùÕŠ±Nޣ㷉µœöŸžN¨¾úÐó²šø%òV7w]6ÆÔmöÔglºgô¬ùêg'ÎÎÆ'÷õŽ$G>’—î×ISÐU‡\ d‹’¶ªá{ÿØ`Š åÖmdß+6×õ=ÍÀ—¼')iÆ1PxO¢q&±$vºsP¸–ÒÏ[qpË—ûI:ý¦Å‚bÊr·i–¡˜æhS°öšÁ¢÷þ‚BÆÅ€l)Qˆ‚ÂLÿˆÙgú"ä°Z±¿êéM‡ézñ,îÂ;ýñIçƧYFþsÁ›ûa1”_æ+×_÷ )ÝÆ<¦ÌCl[²ý ^ä¬3«mÚèéÓ>SwÇÜEÈíwS|Îä±Ébï_¿àÒ]L8ªÑÁ1H™Ðßñ¼s¥üNJzXÝNO¨,£ÆKL1÷hæŒÓ6•xu“Á±‰³y¬&Ý:WHÇfªÛùôÉjù9ǡϪÉxíë/ø/k*j_vɻԷbJ¨}ÈÈÜ{åþÍ•ûi)êoøM©Öö¤HÙZ’´=ª ×áÞ§jU.rwC›ê·3;\.Á®Ì(ý|X¹–½’1Zxݦ(æºújn`/CšF׺'çNß­M÷˜cÀEoïí^.²§b¨•)JÞúü˜àO°ÆL Â&ã>Gý«£mrãOC>õelcïU,x$DÜ${ut±y=\­¢ª‡¥zŽo·°£†2‰ñ-K}wº¢·GY6¾S6Rúr—H›—ª™ä}ðî‹ž½’1_bîr÷pf²I9‰€csº8JÙ‚ƒ> (àRÑJ Ê;0®{ºxðt£¬'eQàÔ +醞qøCÑÍW2%¥ÝQìÁJﻞ…é +ÏÀŸ̯Ž¹£â*s%K•5Û¶Õ˜ûŒoµ& •Ãp:WTÇÜž®Ü¼¾s9ËFÊ~E¹¶ã½sÂKåÆF½ù4÷{^2žó Ñ½ðÒ>“<#“!a‡ô<–éxá“/Îo2©Qè2¿óħM6ÉÅä‹_<³m:¸ÎÊF‡,ÙdfŽ|’EÝÚ‡gj25ØöM(hù|ï‘Åá¢ÃÒÈϹ®}þ$u¶ãøš¦ûò~Ñ)(˜¤5‘ßæ@½¯3»™6&²ojÉ126b¿ 3hî>W”zŠÒO¢@‡@¿6í¼=!ÜKš¢>.Q“;óõëéøО·¬IyBýÔ)Ç›G2×amAÑ|ðk}ûžÂÌ•þ‡äÿüŸHGƒ0<‡á}!ÿ‘ Jendstream +endobj +1058 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 2516 0 R +/FirstChar 0 +/LastChar 111 +/Widths 2517 0 R +/BaseFont /JXHMQO+CMEX10 +/FontDescriptor 1056 0 R +>> endobj +1056 0 obj << +/Ascent 40 +/CapHeight 0 +/Descent -600 +/FontName /JXHMQO+CMEX10 +/ItalicAngle 0 +/StemV 47 +/XHeight 431 +/FontBBox [-24 -2960 1454 772] +/Flags 4 +/CharSet (/parenleftbig/parenrightbig/parenleftBig/parenrightBig/parenleftbigg/parenrightbigg/braceleftbigg/summationtext/producttext/summationdisplay/productdisplay/braceleftBig/bracerightBig) +/FontFile 1057 0 R +>> endobj +2517 0 obj +[458 458 0 0 0 0 0 0 0 0 0 0 0 0 0 0 597 597 736 736 0 0 0 0 0 0 750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1056 944 0 0 0 0 0 0 1444 1278 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 667 667 ] +endobj +2516 0 obj << +/Type /Encoding +/Differences [ 0 /parenleftbig/parenrightbig 2/.notdef 16/parenleftBig/parenrightBig/parenleftbigg/parenrightbigg 20/.notdef 26/braceleftbigg 27/.notdef 80/summationtext/producttext 82/.notdef 88/summationdisplay/productdisplay 90/.notdef 110/braceleftBig/bracerightBig 112/.notdef] +>> endobj +1054 0 obj << +/Length1 915 +/Length2 1313 +/Length3 532 +/Length 1960 +/Filter /FlateDecode +>> +stream +xÚíS{kÿÜ÷¯÷óžóÏy¾ßïóû}Ÿïï9äU®TŽ €1TF…hàºxì´A"“¹8Ì—!º/ƒíÄfC€# 0l옋I".&QàH` ˜rÍ&E6€㈀¾,!jøbà X¦ ŽX Ü'wH;,…ñ0XH#A"€”DŸ4ä„Š0`3 å’OTŒK SÀ”0i‹B +€‘è<ŒèNþ¦fw”‹Å<~ÈdùÉþBóC±â"‘Ë`¸`BGgJ½àio.°‘‡Ìdd|1"à bP!+Ã’5M RG$º"2AñÅRx +‡QáL+DzSFèn>\gezªSœ+AeÛ0¾ˆ§ÖЗ5‘Ž„_Á€!ñ~úò›Ñk#*À„˜,kÀÇq¾‚Ä J1Y, Âá' Ói(&#¶"™}@„á¤É¡2=AåÒIt +€]BL + +`”H~f¬ F,—þYneK 8Bœõ3Ât!("S|Ù„L$Æ0\ ‹d_Pöèô]ùlA´ +àãSÀ_“]¿ ¤•Í‚Äd1-sߟ…;P$T;m,ƒa M‡/ã8qª©MLíÓZ„“†ápX@jkÅöÊ=—EoÌo,žCŸ?ÚPö¢Mýá>Ö ·U²‚ÞÜÎK‡ëô‚›ôöé:øI¼CþÃy:¥—OöN‰eUÓyè)âjŽSLzêB=eÇw.µ«Æ»2Œ,Ú†bœ>_ï“_5ò¸UCÛÜ=Í|µ¡MÛYõ•%zŠŽgÍnN+ªá¢C';/ÞKÂ}$¦NÉÎ=¶WN_4:pcˆ’ïÚJËÓo)çõh×Ö.âÞµÿ¨9@Ñ÷E¨‘&U7Ìöÿ6JOïès•=ÖÐPuëzùc7·G«ŠÄÉ}×m_̲°â–`"ÿRÿõ«s^Žy?ñ‚×oMÍ6qˆÉ[WIK7¬Hh2 ð½Z¡ê0ËÕµ¦}±áéPÙÊ g ¼Ê,®­Iü8ßÈSE×ûÀkëƺ4"¯?»~ö˜Áí'vg†®¬«Õêá%¯Ù]}’²©k³FFâyÁÄ^rûší:Ž‘aÍôØŒf¥î1Û(ïC”§X+–ªX•¶N¨7—ÝMÐýðmZe Y Éó¼à÷J’ÐÙvä™…þ^OƒRõÜþ…õQ©³¨ã¿¯ÒÒc2kþQYãk£ÑOgwn->ø8vX©u)Äf·yh€å·ÿnü©øë(jûõ¿ª´Çc- .›Ž;T²£àhá®Ud¿Üº¾GdoÎB·õ šY" ÝümÌæTÖ’›ã'ŸJ­ÖŒ9l«|?¶1ôpEÒ*ûͯøýhm„É¥ÓPÜ¥ásáwâ~ð6F7úF &|æZÆ7ï™û@œ·QÅï\cæâjžÅ«ø$Šó:טԶª^£¬»;¡™n³÷§›kUFæÕv€ùåÉqž¡éo¯+¹›•ÎR£°LG±u ç9y}“{}ù˜O¼žcÜ"§([MµÌ{÷´š.I°;ÝÖ=ô=o"ñ,§$Vn¼oX_†Ý¿†Ê—»,¹k¶oi …\ïût +7#+/¹ÌwÙ2{«þãV[òýÓÌŸ‰Î+ÏJ>Ù?Ú”;h›t¬mW¨fCyrL† [S3ë]DWŸ‰WáÄrìk§%¹™k¡kjÛGs“vê>àosÓP‘Ç i­üöRVsÄCWö‹7ËT_–™T­dqéQFíc>uŽŽJó«Ty«Œì¼ð6è…ÁâáˆÍAÍs¶žmºÅ!—צ²ºXzå¯ÜÄË¡ÍIßßûj$`ÌwŽw©2)­ù^N=¦ 5¹-*Þ‘ÐR–>­H¹ùë£Ç׋̩W|ÍÉ7Þ ¸C»] ¬gs’6hßÏâ*O¹IÚÏÖ^ë=Ào=ÒûzöÁH÷ñã²E»êžæ/:è–b«jdmRâëœÕ_ìwþÆ›‡~¡†Îò°"õ9pzFõùòÝin½Ï ÊWœ¡l³öÔDîóë\Ò[£v ê‘ ’nݺžž·µü;Öž;¿ÊÔ趵íþ‚¸ní +_VÅ£ùƒ1™šî¶6‹º}ÔfïÍ.H»{[íÃïÓUWû\mÞ ÌHÇ+ +Èd“ÊóÙ*·‹²Ê‘<+ ÂG +¨ÆsGÌg'w†{Ãñ¼ø¢ãÚý¯•Û[n +¿ãòĨÞÎnýG„¯EI;ºçB/’x“„ºÿš©ƒˆW¾òß2@2û%E1öÂgðj®U¼dÖ­R#µLà½ãŠèCÁ?·0ÖÛóÝëŸv:{P«[y[ÞUªm2}pøáÈûX¹¬)Iì—•x ÝÜþ]×Ø9šf¡¤ªZThxÄc !o±,}¾£½Œñ7Òÿ üOˆa>.ÃBøx0é?|)ãendstream +endobj +1055 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 2495 0 R +/FirstChar 0 +/LastChar 106 +/Widths 2518 0 R +/BaseFont /QZCJZA+CMSY7 +/FontDescriptor 1053 0 R +>> endobj +1053 0 obj << +/Ascent 750 +/CapHeight 683 +/Descent -194 +/FontName /QZCJZA+CMSY7 +/ItalicAngle -14 +/StemV 93 +/XHeight 431 +/FontBBox [-15 -951 1252 782] +/Flags 4 +/CharSet (/minus/periodcentered/plusminus/prime/infinity/floorleft/floorright/bar) +/FontFile 1054 0 R +>> endobj +2518 0 obj +[893 339 0 0 0 0 893 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 329 1139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 524 524 0 0 0 0 0 0 339 ] +endobj +1043 0 obj << +/Length1 854 +/Length2 2352 +/Length3 532 +/Length 2965 +/Filter /FlateDecode +>> +stream +xÚíRy<”í¶T2R–„ +¯PöÃXS4¶lQŠæÅŒ1â¡,Ùú,I¶²F Y"K¶"B#eo$d E²;–3é|§súþ<ç¯ó;ïóÏsÝ÷u_Ïõ»îWJÜÔB‰#ÛƒzdUAIQI@cÔæƒHI¡( –Š'“ÐX*¨ (ih¨žD® ÀÔ4Êšˆ€"»ùPðNÎT@%óƒ¤ ]A +ÞKŒ±TgЕ©á€%dt„@MÈÌ×@¦—ÿ†­ßÅõ<‰D¬ëùAý¥uÅ}þA »ºyRA +`LÆÒïTkð§7c‡÷tý½‹¡b‰x$ɉ +J*Š0•Ÿu¼‡ÞÄ™â©΀#–èn×Aîw'Ìø¶}@ͬtPgPr?»Ý3ÅâITK7€ý"oc¥_˜ï \€)Â`JL"óüy³ýí-]’‡'9p„*€¥P°>S +Ž@4%OÂÞèÍ4 U$‘©Ì€ŒàH¦@~lUM€žùQÚFÌ5A±¿:µÿ…˜L‡"%“êò *Á(é_ €ºmÿ&££Cö¦)ÀU8‚iõǨæ÷ïij$¼»'ˆA˜ºš²ºòvÕÁ“BIÔí_’™úŸØÏ\zƒFÙAë!¡,$çšnæ»Ü2‡“²o´Ö?MÒRœÐâ뢔¿µE¿óóðy<ñ_ ó¡8GÄpÒ·‰f ~ÏÛĽ_&ã®ǬÃôE;¶æ´Wõû\SÂ'b£når³}‹ƒ^µ; &•Ôî ½¹#§·gcþšËõ7C ®DœÄX<Ä6­Ê(´úǺ‡HÆünkŒš¼òïîÕ‡‰§ƒ¢6äïh+Î㧻®:qúZú% +ækú¶É]Bõ¤…pgí¼ëŽÑ x‘i˜wÒ©ÊIƒr|GÁÎÕ‘ ròÏšBxÏXg7[çnÍ9é¯nì~?IÿtfSsE¡eüÁ0õücwŒÓD±abb Û%„’dŸó£c²+³ü•êurQ'fªnVÆ +†¼üãqéb„¶m:opI0Ÿž@]ñVTÛüâ~ÎL9‡ô®š¦DQ\~Wé¸ËÒeéÐãÆ%^¹è•âçŽ +I¡ŸnuGÃ-Ô¸š ˆ©éá¬æºp`ÚÁ,ö…W‰„÷ ”f?ËCJFŠ‡9“ëVŸ÷°DŽÞpF‘s5„_ +Cì:iëNUP+ÚX¹vdíJ¿8 `î.qosžÀ'?lÝñù¿Ì‡aˆøbèQ…‰Èº\C͹Œ° åãå6t÷ڬ̈́­sbZ6ÇJÓŸfk8¥Ös†³®ŸÒbMüTfq²3)c¬!CÅU£Å"!ºQLõî Ûfw$Z½ÚwL¥T¹º<ìu©Mø“mHv{«ËIšOÇÔ×–A­ð­Û»GiÇ'J/¿="Ž¹zÂ3·ðø^º ?W¡åõ§ iƒ‡£øfЫžKú>¨k£ ý0„þ’çnsÓSÝ}M±µA"cOÕï{Å+Ž_}WâÛpÛ ž“=Ï+t¬–e¼O=;…¤8T#nJÊêPÉñvEè•Ù {¿v‹DAE†Ž–œà¿¨!S¼ñžtÈ•4ô(9õ))%^T÷F,FWþtú ñ‡­âK¸ðbë2“zWLAqt:ºîN^‹øD{sAp¡*KÛøÎù¡.ÃbC–û¡ZFt›Ø-ºfÌ&¢ZئòÁЇ$ËÄ]*ó‚%\âÊo>W‰±ôú°Ûñ> !>`Ⱥl7{ƦoM#SÐ}'-nd±kª-L>ˆa“Á¦”ásP ç>C2eìlÑo ´ob¦3t‹Ý}hµ§ÚEM¯szwSF\–Ö¼*Îage1F"ƒ‚™-z—ld©~’NÓ’[SÒí*ÍÓíQ¥óσf ® ž¹[Íäû:¶†˜XU÷}¤ei~ᦠM*Žû˜`|€kéD9›°Fò»‘‚¾½å?2_/?Ð| zÝ0°!­vw¸7´¨ÎipÏ¿¾3µàèXµªÄúêãrÉ^vÍos~й­·Æzá|–K‰¤Oû‰}Ëutþ5A¿'Î8!–7×]*Ì:D¢ƒ¢cæ½L¨€#GIR„0M|iø‚±üjÇ=³ìl}z•E)úÝlaR¨®÷š˜òL’Ý7»‘‘õ"â~uˆ\o§õg”B\ +Õò<¨ÓÓ=Ue©›2F}l•³úÖQçÈlüãë¹ébd ±b_(Õì™ÑÜ¡Tã2¹ÍFÙá‡Ñ¢ß[:bl;X=}ùeÅò˾ ßšwwkÂÇÉí a5šl›Øõön\y¿#ò²Îärÿ‘7Sù\#áúI‚“bYjô]ª=Š@Àýš«ímov_šÝ°ìi}HÀ_¾:ÄÞú)”ÿCãéÑ¿UzÁe›˜Á‚)ZGs3og7P•œ`Ÿ È’—oaWòU­K²è<å«Ž­øºHq;¨¬f*h×Û=ÚÜïÕ˜LÔKÙM&±väuFÍç‹nÆ¿”8„Î>™lœå(Ï/"Öƒ3$ +0ÛÓóC—aÿáù¿Àÿ„€ÄR¨dW,Åòwú 'dendstream +endobj +1044 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 2497 0 R +/FirstChar 79 +/LastChar 112 +/Widths 2519 0 R +/BaseFont /QVBCOC+CMMI8 +/FontDescriptor 1042 0 R +>> endobj +1042 0 obj << +/Ascent 694 +/CapHeight 683 +/Descent -194 +/FontName /QVBCOC+CMMI8 +/ItalicAngle -14 +/StemV 78 +/XHeight 431 +/FontBBox [-24 -250 1110 750] +/Flags 4 +/CharSet (/O/a/b/c/k/n/p) +/FontFile 1043 0 R +>> endobj +2519 0 obj +[806 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 564 455 460 0 0 0 0 0 0 0 553 0 0 645 0 535 ] +endobj +1033 0 obj << +/Length1 1861 +/Length2 11796 +/Length3 532 +/Length 12835 +/Filter /FlateDecode +>> +stream +xÚí–U\\Û²¯q‚Cpo$¸»»» Nãи—Á îîî îîœ ÁÝ pz­}ÎJö>÷>Ýߥ_øjÔ¨úWÍcÎwd*ꌢf  ÈÞ…‘•‰• ®¨Æ`ebA|÷NÜ hìb²—0vòXyyY¢®6+;/Ø rðt²²°tЈÓþåÄ µ:Y™Û],và¦Æ¶u©ÐÅ“ jk Pûk‡3@ è trš1!²²̬L]&@ +{Dæ¿ôÈÚ›ƒÜÿ2›¹:üÏ’ÐÉ, +@I K4ÙÛzÌ€æˆÌJ p. XÉÿ Qÿ\ÊÕÖVÉØî¯ðàý¯Uc;+[Ïÿ^Ù9¸ºŠ 3 “ýº¾þKš"ÐÌÊÕî?We]Œm­LEí-l–™¬œ¥¬<€f*V.¦–sc[gàßv ½ÙŠ·ío ÌR²R*ÊŠô?Í¿—TŒ­ì]4<þ ú—ïßÌú›Á½q²òè±0±°°‚Á¿ÿùOÿ?RIÚ›‚̬ìÁãÀÉ0vr2öDϘ8Þ¬+{3 èÖËÌdro€[ò`rBüëa²²˜Í­þ²ýìfGW ÐÌÄö_îŸn³ÐÉhÿ‡÷¿½ÿÝ•ƒìjì´·šÿaeýoë8ƒ3š‚ììŒ[8Ì–ž–@ûß&®¿“[Ì~›xÌ^@'ÐoX Èøs‚U¸¸ÿ^ççw±tþáñWí W§ßö¿šáö‡Xœ3øAüÃ`iÎ@·?”›Î ü·‚8Á²·úSÏ_Ú‚~oâbÿ«o@ç¿õo#8¶èoÇûMà˜â¿ Pâ7ë–ü‡¸ÁUKý&pÍÒ¿ \¯Ìo‹ýMàìò¿ œ]á7³+þ&pv¥ßήüñ€³«ü&p>µßΧþ›ÀÕøMà|Z¿ œïý?¾í˜MœŒMm€.ÿ6O¼l¿GõßØÿÙð}˜/¸“ß®Ãôbebö‚5ÿÀ¿ç'´øÁ¥YþàÎZý`6 X…í–a÷YÁ2ìÿ@° Жáðþ5U X†Óø×èþàŽ»ü`U® X•ÛVåþÁ/f?¬Êó«òúÿ÷(&òðfdç0²'¸,àÁcùøöVàÃ!+>Á,,ܼÿºM]ÀW‡Ëß/!ð}û?ln¾@ )â÷)°urSh©¯dþT,¤˜Es¬R}×l;RÐR¤mш¼#Ýzöcy&êì©û/Bçˆo>ªãRgŽ±)ó/{nF{i^­„Ú—iŠž»äwAGh_›æ®9!•gÖGKu +ú3ÏŽrUh$4~¯’Atë¹5t§sqkK¥Ùj†…ÔQ±“©¡§8–~â[sGOŒ‡Y› òµ{ÓB¿rúæúö1ÿMN¡ëƒ=œŒy.}û‰ùEË;[KãÈÏ2ô¤Ÿó£Ó[Û~=Vf0 O±7QŦØÏ f$sI¶PÄÏlø4dú2®Î…Œæº3ì%v +ª´ÐÊBX•— ‘fM¸†.L"¾ý<ÿ~pw±L¨Ô·m6 ºsRÎÎÌ-LôäQõ©“Ãgµƒ zQ+É § s­Ï0/Ÿ• YªðƼÁGûõ´²…×@Í]ñ×âJD=.;+º:ɉ‚QyÝñ÷FIHØ;*‰‡Xkìh‡€xàJ4éÊ8›ðŒ-? Á§¡2 ¶‡%¢„ù#ºˆ å×dl:Ù±nÿíá¹²©÷Œ±&¬8AHù©Põý——kâü(©]ÛXN½ž¨Z}›”©;×®4Y²ølb7˜¥†ÍÚ–$ô`1MÜR3«J†ˆ»ÓÓ¯»”Õ$ê” /ÈO¹:=íÅVM²vá9>c°S‚ewÌW 6ÒŸ¤È?Vre\"a§¼wDåL“UßÍ8=. »í¡¿Þs±`u¨Ùi¿qî/ wxŒ#l±‚½à{Ñ<‚r¾ ÂKh£µ‰ÚZ|«òü~úƒï2?DüI" +wŽFS¿Bkð¯‚òL¹ß.¨øò$j|»ãèèÇl‹ÐõhaD`×:ª?mžkŠ~aOö’ð–ʆ á,]„èzò–-ý0ÓtÎÙë'{P,”\bÄðês1G/ˆëW¹Âú&Åz¦¿ðÂþ’Tým;¦o¤‰Ø8³÷¹Ì—Ì9Ý9LüÖ)}1fAKnƒ¢R´ŽÎH±ZCl«…$Ú®1"ÚÏ]Ôc4‘)b¼å­6ÖáD˜FS1Ycäã‰tÞÈ+RÂÎkz¡c«.:¤’ËQIéYÎ_¸99^w©þËA2é?è®´Îãbf¹3.¹Â¥4Ž¼Ðú»±Û…KÈÈD2ÊãÚ#¶$B÷GdÇã.­ý6׃ýE#ä<Ÿ–(?Œ™«Ü9V8À!ëÏã^xz»oDœÖÚ«ú³¿šD C{a ×Ï—ò©Ösã6$ÿ—!w€´Û1´)R&õÅ3YÞ”ÅÑÚ∉Z™œ·Îg±aÕüisR¼¡Ø š âÊæñ´¸õZùñ…Ñ:q뮜!¢Ö“¿ +!Ô·b»5MNDâïãp]8ú¿0l¶˜7r¨‰(ðQ|ΘF]½©î•·mð¶•Gƒá.Ü2/#Èà9δsÚ½ç{ܼJ˜ç•_›\•íªü¯ ]Ŷ~d™¯~Ó·H{_¦ììtÇ5/(L„¢¿ŒÆžr´ˆëñ°Ã^Xô}C¾B‹nú܈«QÆ®¥Hœ‰(?WýøóÛIZäðA‚™êæìª,¹“DãwzùðSφ´x&—ד¼¢ñ ï¥÷C^zÊ”çV<Öºžë°ˆ?ö¬zь棽a£(V^ÉXƒÙ80ð‚§!fT¡sx(‰JÔȾçø¥Þr=«ƒ”Ù´¢Xžêe*á÷¡Õéæ?^éüdÐÅ$ÙÖ©3$t +®z—Ô[ýÁ7< +âá`$«!¥„-¥ôÑßÈÍÉ®gŸ?ìiqže;𧽑¬ +™âÓ9C‘pÿ†%^±÷¹æ°«µõ¤›®OHv‚ª}¿ÊN×ßßû‡wæÀM{h¥–Õ¥¥½öKÏFxÖü*–Buy£¬ýYoÓ‚ :¨\ g`rE§Ù'¹X¥õ”£&iÎTª¬z%crÝ,µU¶Ña47‘íðI£ƒ9„ÅÞžu¼ÌJ@Æ´¨H“´G!ÑÙO>Í­Çõª¶`Ú :ñ(«AžQ¶žkO«“ªçvæ5û»Â­?eoµÁ ããËõ1 ­T¥Í7ül¨3[›ÙáFvÓÜQ§k —êKT@!³Îù—ù0(¾ñº&®fUm1éC®Ý÷é[C² 8tÈ=·¾îSΰmúÎW¡€£0WšƒiÁûyl§ê$Ë@«ˆ`EÉáÁ°ízýwÈPòl‰†-Oш#ËJÐ+ñ¬±¡QÏ­z=S{¦<»á²¹5ãÎõ6s“ +/zxi®Ò¬ûYC‘l»c•Á/C´<Í“H¥Â^g¥ñ0üûÛ©5d^ÜDÄ­#Úì{¢ÌÍvÞ‰ØÓçDôU ÓcÏfÊšŒ;çŸÑ5¨SÖ6©EÓô4¾eô1+É„–Z€uooS²¶.ºÝÿhDî~]’WPz1mOÄs™”;j«N/9v%JÚ¶ïZ_VÈë pý´í6¡*y¦!4ü²Òn‡þ)Ö_‰›uôðˆ_&La²ßmˆ§Ñœ6!·|Ò· +¥~áö¸çí#¦ÆQ‹ÏfðÓ Ù­ãŽøp·»ÒÝLjJ¢õ3߶$&Ä¿Ü2î] _Ö/0,¡æòì¿\¦ñcígâZv±}˜AßÉ»Nù}‚\}¼îèç8¾Õ-×°¥Ÿêfåó,Ú„%·Ûš.Ñ䌨î†+èÐïG[2œ2OEK¢_ôgö(¨{·uZ/Y™ZäNžÂ¤Ø®LEE‹(²Ör¼Ê{™6(DË’×Q(%»Lìó£kÌ®µå™÷¥‘Ëë¸Õôëp3 ¾BmÈ=l¼¤«2\¶X³©dˆ¥pHÛåü‘ÔiuCÛzóÎæf2”ÁüGÆ”âzt7NóË{3Lf¢ô<Šùá'¾ô³&x¦L¢†œ‡oëcÆŸ 1ø×ÜÖåÍ°ÔgÕHQTæ7®bìsßl«fÄÙò7§– +vn=æÄ y½U"çÚóKVŒÆ­˜ê:jQ8#ÎüzlEN!û¡|+ª~áˆ$*nš‡TeûqĆq‡ÚHJè]Ä.Lv£¾Ï‘Þ¡¤'ŠŽW½—…Ÿáð«Ï›ðbÁNîÞôˆÎ®¬´QV nBÓŸ®Á*Á…D¼µV¸ˆÁŸVš$Q‘¶Y,š^ø|• Ÿ×Æß±Æ×>:ÁiU+”gšrÜ c¶åÇU{h;11×Ï%‹YÒ¤ºw@ÎÃù´‡wpBÍjJ;)7Gb œt;–ÇšþóͤP¡›WñÖЄÞe‚2ºs¦%*Ë“ß*1Ôâ<—–—F£V2-æ²i²Ìvl A`VjQ=Ù¹¶År÷±`K~ÄÐÄ® «(¤ã‡ƒ©YrŽ¯þ¼aº¢*ºwuÎ÷=©ôn“f1ÞhCö“E5RÕ>›%CU#Z.Šõ⌭ $̪¸˜›ÑòÇ@«Ô±ûuó…ZÇf.)ÇYöö}?aλ 5íÁ[èK1y¾sÌzDÄ=NÒ9Í”TûZƒ':úÍÝMbº Ì7”QÇLõ7)èªw+Ww©²øÑûAûK“YÚNÞsêm„˜ 7Ù’÷g +ø |—AWi?!hù +‚†ƒ3~"­qø.'%¼­`¨znQÖªh~¹ ‡-";<”ºè[>ÂE³K‘CxîŠß¦RF¹_b6o‰o,ω ­ _'rÕ³^Ér þŒäÓ9O¸ãùíšxòàL_Ð×úÞp›$Èô /ÍH­Ô‘áû‰q_H%»Ï|*ÇË—öŠ6¢u Ù/[õ¯jîxep.•h- c_"L­•%üî}Qdå;1Ìç†X ?’1ýkÓ~^i…ä!÷a!¿öåo6a E ©!’­ü‚ Gë/·¨ŽÖ☵½:ïñ«ýÏ*_ʘ´ËŸ¨-ìý|‡mü&ƒ*¼poh3L}5 žà—®ð³ÐÆË›¡YŒ/ýÙ›iâÚí©Õ¤°äßx½sªÌâZªå)è&&yg$8d$€B£6¹›PçrÛÇœŒv§©ÓhÞ7½):ÆÙÃëÖ=qDCÙå½BÄÌÜOÚca°¯ÉÝóÝ»n擲Û\W¸³rüBñ6(„ YøäFü1 -õF`±R¿BóJ—¿4„ñíò×rÿ'»«Q5v5U‹Ã‰¢q^}ƒ"åÐA^b×,jKÁJg÷Š¡çÅe$‰Ö—Ór#CCä`‰9»žÆÈ!_“PÊú¨@r¯³‰£Ðåœk ËüW°¡€3IB—Å RÞ©Oº þ¢>º\çó4x·†jÏ_ñ¥¦ÄJ£0)Ž—¹¹FUË‹Ç}š~"¯lЬQóû¬±êõ­X&(Ÿï³F±£yýlT_œ#™ÓæƒÉÆ-“ÂT£ñÉÓ¡U‚F1€‰+Úl>°ú)žEV*hå‘)³Ü»„É0KDr8ÇIkêH‚5÷tÆùAÏn…í‰ÙÁ[kqþ†úlïøÐY™üˆ&ˬs›‚Æ·mî¡Q}º¹Ëù2ö‡Ûùå\ ºuªZ®d¬øM9ðeW­äHå‰{êRaû;­êÚNÈñ}~vt¢üÉ{êðù‹cõ㔆ÙÌÎçôÎÓN–9G!ÆX•6œÊ•úߢÄ/#•ßl¸'ÉCªV>ðÉÞGÙÖ$_VWª1í{¬^0ODfÇç@oI¿awïè+³.äè?Æ1IâÄI‚Pè“ó˪̌éíKö>­Fë›’opj£Í¹œ™¸]‰&7ËC¿x¶,çÀâQÿž +=”äP ÷ÌýÊK1U!ï*¸^‡&3ýðlÃÑyžNõ9+Æ­à… ÖDî¡F4}ÉXÝE$Êl ðØ3™Ú•99‰Ú@cù,I~}¨¼ˆ’žåOì‘©IH…jeí¥ ÕD@Â¥ÕÓϯ—%Züýiº ¯^÷5GŸ=‹õFXb>–ü¤åm¥B{Pf ÛúlàÅ-ÐÅ|M¸ØÀf‹Ú‘×z¹uÀ4 |!?,GÔ«|HúÌÛSÄu,<^û‘ò×¼4mo{wqÿgwæçÊx¤Û£ò›€©“äEªŒ­ð‰œ[Ý>yÆ…© +ZZ-‘ÐÑŸbͪÛ¬ÂÊ‘GýäB/bu§Ô8cõÅÊHÝ(JzÜˆÞ k0¸­k D±ÖánÎä8‰ +’´ê§1w+WÚù—òMfÊEîo/ ì2 Öĺ)øóD$IsU/žíOëi ¡;½9î~~µ³rŠ¸cÞ½ÐU„™BF¾BÍXú–f¢:Ðw±K§C«º¨&<jöÊCý­ŠëÅ}›!%îšé5‹ òŸIÐÙ/¶H±Eà³1_Õ7ˆœ™h%þ Ây‹‹˜ïOŒ3¸Itßxò¶Vxn¶†€U¾êŽ_aáH´#ï¯*5ßä¾­´ìîævN“ôï¾~J›\¹!†Z¾¼ÙÅèfÒÂÜ‹ùÕâ&b­ê¥èäÉÿî*›õ źªX àY^]àúá ²4vý] Ê¾wBø'G´?!Ó†‹ôñÊ\ +rJ׌¬,öàÛÂá¾~å@Ñ ýYÅö©ŽQŽ‡À&ÓêÕPË"‹ù¹t· ²¤W`kñõGÊ:¢EEkžÙ#¥NJsƒ‡Âx‘ûÖã.š‰ïæo§ gî•yÙ2’Ö”JDpëÍa +[e'Åz¼G ð[¯JÌÛ2΋2¤åŸiZ<”å·û:Ùapý¨=¸°±î¨å>ái^|aš÷÷ýŒÍžaY‚ƒ-äدí×|¾§ ˜KJãcš—Ñ‹k !fµU(n­%©Ù#ºÏÀ… ³}(KÝy®0WŸÄKüpíŒõÂÅâ™lF~“ij¥íß㣜Z÷~êY |"ˆåeŸ +·j{\¹û=o¨8•G¶Ñd”Y­KŽ)jÝ¥:ÈúÆUüª¦Æ s†öNõ ìzê+ÙN•n“p‚Á·^¦ÂŒ@Š2´¯HÜ“6g‘'¾ {ãLÅ¢Ð#¤)s…t$0zy¶×&‡D@…Å¡B2C° CÄicÎ¥œ¯ýfàzxÌø©Û¨Pkɲ¦;{²Ý¾S­òÜAÀSã~ÐeEÕæò{˾ ¹¬o¤i™&éS¡ŒŒùöœF#ÑY‰å=)ÇÂé¯O7ÿã®fI›uMü2ùÑUi‹ ^bÙ0¶XêjçxTGK¦h¿(tx¦‘Di¢1Gºä±•‹µUWç¸ +/kÐ>«œBìWæi[a']§ƒÛœ–¥Næ………8º}±bt©C¾¹t$jÕ‰ƒßÅåß÷¡ùáž’Ó÷iJq³<ì×è —B+dü*°_°ë†Šñ³BÔùÆãž3H½˜)ñœc%³-Œ[Æ¢Õ!æi`h'€ºOßJüÁFÙÕ”EÍéYiÙçY) }„b“]'ôÚhEì…˜O,I¥(ïÕ ÐÒî÷¢f‘ <Ø yâÒiÛ÷Vze‰v„>âþH<¾Ïš¦|³ªJJ·†¡xÅßïú­—i¤d€ê}Ò¨—ý›ì‡ÝB]ËΈjq”Œ'ŒIª%I»’êsi(`(c˜’šŸGlÅŠKÿ ÃÚ­Q¨StÑ›Æ/ˆä 8Õe–®Ç¥¬À–URÄ^­LÞYdœ1&GaNl(œ*ZqÄ·ßáÜE0W_Ë¿Øc»Ô¶0L¼óãXIXüN£µb¨=©rè´ÂófQeLT Ø*¦uh–ú54«æÞj”Ø™¨‡ˆ¿ ÖôŠÃF¶íbƒTD6¾ +}·\Z›ÕML7Œ¿zõìÀ»ÀÝûãÇ“Uk°:kv¢TY‹e¢©ÃeCùmN&–%ÏÝ(Qáo€çïrœ’‡ù¢¿ÏòC!!ÈÞ!ÇyÊ$eϪ"õíÏŒ/¿ñ,G^ÇzÚ„”rë£$*Bš~@…ö\õKÈÊ𪟣2Q~ß• +ˆó|ý–vÄh¬žØÈ.×"y°àÛ,Oq±ù`Ê#gƒrm,¡iW‰iši4v‡R +ÿÖ«…ËEbK0©â’e¤ýØìÑÛr?£d‡ íôÒø¥#¹ªW^úg)W¢Û"“àÄn‡žŒaEµj•(^û–§–mŒ^þIÓ¤}C€‚HæÀU'oÉk¢jb¦þâWë$ý¦FnÒܼóþNº§ŽÑÙV¾xÁ \¢˜'#Hw"h\ |¾êü…ê"²ž4ÒKžÑ3Üx¢”åZ"„;w¿u”‰èë½ á£@᫽ëfsH<]þ.cË;ÃÒA¯æÅÍS>ظ1³é¡™îÃ㣯ÝbëË‘bÊýƒg¬¡ºäËØž±~Ì+}¥›†º¤žö`ëóφùúÀÎ-?¢’“–‚Ç£ ÕÕV÷ÆW=ë3ñS}iR[Ñìãë˜êŽ©F矡m£l¶óœ¿ïQó–¼]þ¡ +Ì»Þ#ú’V±•+æªM6&kâC‰%9GÖÓdu*Þíª‰NmLø çÍJ]W 5²én(* OÖ!WìMMX±È¶=ù“pjH&²T榶À¹ÄÛžOàJHâÄê‹Vž{ëÜ‹èþô-Êõ6… ²=S½kUah«oßáúœ¬q3×î·…A€°Ž*Jé2vQ’vïÒùæûùƒe-çµûw :Ï7ˆ ±mF«:>¯J‘ÎÉ×fMšÎ³jDû¤‚ENwÓñêKÌ +œ)G?ƒi†Ñþàó.§Š,H]Ü5-§3>b?%1.ÜàuQÐ÷D @áØoá¡,cEG/•_µ—«𨡶OZ, Ñí†!ÃR1DÕJþá¡Å?çDh±+ˆæ­éÑñ)tZ‚?l)º¬:?¬F:ÃÐ@¶ÿ¡¯Ñ MPpK”÷ Ô.]£j4tK£WƒV>Çù+Mr¢PÞ³Áh~0󨊼Wˆw7Ý‘ýEsêgY!n –˾¤€ùÕúÊ“•‘P¢ý´.¿MS•*íÂ硨¯ Ä|ñMÎÆÉöI mKí0ø\ Z Gžï&—*ŠIuçöÏÞ¤íf¿É¾¯K'¶.eÞ%mÃq{Ä=gÆD¡*@àRW4QËð÷¢õ¨æGcÝ ªN2¡¤tô>ä}¹Õö÷˜€î]‚UHy&ƒˆÄjpë0¬¡Rw¨b1ÖÕ¯q ´Èè…+8´Ž§Ë"ëèØp³e¸Òé +Æ›p¸/î½J»®p5®œc* ¡q×fRÁU…þRÉDPíçLO¢ãÓóâ'·ÜÔ¦ò¬*åæ5ñ+•‹­d äK}S‰­oág}= éö]ÿÈv%ÐèåÙA•¥ñ2àª,m.?xvhÒ‡ Q +Aš©Vį„d}‰æ•›é¹GOÞß7Å÷O2Á5Øeäã½ÆÒ.„)†rFYGå†LÊUON—Ašû¨‹ãÕ¤N¬ËW~½år¤Õ0uÊ%ÀÁ¼{/Ôñ´«<_©Ðÿ~ó»¥[M7³€Ì€þu$wÏfmÜx…ÇgÚBφí0™a£q•9>öóéÜŽã†_-Ä{zÖÔ¼¥ÃΦŒŒgc®&ȧ5U<„ï÷À˜@ù'vÊjUv²u²‡O[7X‘M<…À6¶sÀʦÂ_ïŒ<&2[&[ÌZ¤)ljšÄ \Ä) üNw«zl¨Ú|5/µdµ73´Ø8YžÊîÛ$߶'Ú½yôë϶9œË¢}‚W¾?oÍÝ_ù§JÞºêq”ò'}KÝÛòÑÎI•°-;r‹)ã¬ÝT0jÍ¥¶Dƒ&Ë6sÏ€Pe.ñ ¶íè.è`Óp…;?KóHÔ¥LÂûÞNÒpŽC};…ž´è’öííþZïk­ØâÿòPP _’¨¶å† qÔàð#±äã<›ÈjN6:jM‘nÅ +}ÇqçÞÅØ•et`À;{ýz:ÛN¼‰å8?ÑšŸt(‡X‡á[^“ôR âä̈'‡œR×Í Šf›ïN߉¸-pÙñïÞM¶é)eÊjýZŽöpWÂb5ðÔ®Zñ{â„Ù˜éHÙó7m¤Íj…aÞ'Å'>¨Ç׫É&½©¶IwTªÎ”TåmálËà½È zÒMzì®$ؼýôå:Œy—ú}kík¯5ú˽a•…‰­„ø£±{ì9„ Ãyº°Ø÷¹>5ÍsæC¦G™@…æ‰ðÀ¹"$½òN¿‰D ¹“GŽ*§1J÷¡‰³ëöè$ö•äÝ5)Š]PtÅr~ŠÍî‰hÅ"͇?ò;È×xªª•{Þúþ8æ]ënƒ•ƒüÈIâI„K<ò(Y(r!!šŒy}hÔËωÏRûÇ 8záõ²x¢¸¾Ï¼cóNÔS=%Ïw óûájäELì¡®ïbj;ð/ÿñ}Œé¸#Þ'šðÉX¾Ñ±¸Ño[c?5‘}EW¶]2¿ñɱ9D1¼ˆË~ÇFþŽÜgU¢.á—ÙŒá¡ÖòR3ŸaUÙž£¥þx9…*P¢Â{XiÂFï»áÜvÆá¯AfyZ$}Û¡ +öæ6˜KNkluP:ÝH¾3MÒPð-Ôs§Æ‚s¿B?÷L5­ •sk÷ ÙyÞ67Ê>`—lûsâÄþön›Øò‡1¯®i¹³6zÌ»DF¾³W1m§ÎÔ¯ÒØxî\(…z§W@é<5¬yPkÙ¥ÐêÝ •¡Ã‹È鉹Eº~%}QZ0ññ‘Âc‰\àXC½OéP§ùp]®›Éï——g¨)Þª‘Œ7Üc¶\˜ÞF47M#Û?† MË·&Šº ˆ. 0âô CkR«x'WD;5íÒë<›° “]:ĆEá—1ô‰Ùü‡rP¦¯F-‘óV’âY|IÊNçaø œoìîˆÞG+Ÿ"kb âa\÷÷ÞHº}(D—–ÆÙšn€Òl¨éeb…i”Ù3@= +„Ü3Œmé…OjEG,º;õ:ÐI]ÕÉÙ*Ÿõí—;ˆt±ZÍ4+V½9üÜkæ¡­Yã¾/]– ®ïŠ[6lMóÜØC¢r¡S¨Ó:ÛOø~¢|½Ðg_•ê LF^}Ú}JYÔoÁt¼,Ñ#E³-y’iÔP +úPðàçE&í¸º¯FÈÌ—q»kp§–EYêüÔd»u:ªt¥X³®6€óh÷òïAÜM°&þÜÏJ§Âá Cêõò…ŒNøá€f´qÍôõ)Í=›…Ù“€ü«Á4xŒO$_2HöD"[½'Óç“õ°F€f„Ðy"zåžÙ2ñ馉;½!àG$ƒß`å´‰l©N/óÕ»¤€ÈŠ‚28*Œ}¢C¯f'²$„;Y¤œûñx7É—/XÌ åæ4úøšó]¬Š^¾Ó3£ãDOPb6=$“Nª«_Mºh0%Ì%Iñ‘Ø–m&ý’6C5Pª;½ìÌÜ[9‹Þš±ë íYÌ,± Š$æ}ù©›~›-وƮ¬•[Á8óŠ¦Ê´¨Ô!gGF³ysKkgWúZ)‰ºd!¡ŠÂ²ÂÞÂDS¦èÆú Ñ¿(„J~|žçˆù˜6Ï”†Qš–ävP¬³'úÑq¥~ âUs?Ö—{]ÁÐFåz›Úº×;¥×L­•äæ6у:¯dªelÒÄáp6”œŠ®oÕUIðèBIÐŒ‘×ňa· +˜‘¾¯{²v4”[Ìaš{k";]â(*NŸ¼ß·Ì‘Bx¶¡kÕ;ÊÕñ)Hœî=ÜqQߺ(Ë'AÂÍÏü CVý}5‹¬§ ›KrìlnâÊsì2k›ßÎÎ zwY°ÃQeR$W4ÔŸväù$Žb*Ê–¶Æø^±%”"–öMêÓ +Ô;¾o[±áT@¿Ñ³j}ÀcO•ìgÿ¬7§LŠå!l©xÍ{Èb¶¨ƒ:ç71½ "›:ü VéÕIl Já¥â?uï I ê^nËû*ÿéД¦‡Ñ¢½ÝÀ^f‹zý›œ hÜ°ùÔ+ûÛ…Í:b+Úál¤Mÿ^—QX½àˆ~ñ™+þ”vHN†<ÖÃ0õºÔç79ÎíR‚AõGµÝø?™ +˜O&„M0ˆLL©àé +Ù»¿ ‡ +àÿl·yÍÕA€ ªÎüxä"sÏŸûݯ»yüÙ¿DièNá{Žk´p¼·GÖèZË1'ŠR,k¦¤­›3T¯­0üµx¸“–Ã|ÃW5(*-_9§eþ@´VŒƒÆÁÌ)G ­Mq¥f£fàçË +/7Þõõ(CØäwÖ'×LœGkë»P–ö#ÈÐW&¯Jr«B\° ü×Ó,6ÜTÅ©eC<€V.ó‡|mµåE|˜ ý6Å5œš4{A$ åöbÑØ"0Þ>ßw¬o~ 5?¤¶ªæk1qw_WˆµÕv%„ø£¥£ÉEìO02µ>ñÈ?JÀ2«œöóÅêÏÅIµ[ÏÁ"X{Æèµnspt€ô{Hèê%j Ã"¢è!|*°¹k–Ⱥ~‘¡9a4ULWI,‹ØÕ[¬Ð C»3Û{pQxxɬœ¯s¸N,û­ÌùwðŸ +à<tV#ò¿ÝP‰^O»tJƒ`á°)8 À”ßuÈ')h,B•Œ¯Ò*ÅëQCh=t)ƒ8°æU™Á/ÔB¸ŸÅ…ß]‡é¬2šÈÀЫ™aDõÝÿ‘îRŽP Åû#M1êaä ‹ÖαÑSƒ\±{)Jæú1œò²k(—2@šYJ µ%´A˜eÆœÙê«Ý1¿L·D’m¼E¾¬³·š3Ƹ•ºÄMÓWäiLÊŘÑ)þ‡!„‹ù@´·”*ýÓîug°#Çù|YrÓKÙqâì”åõˆ4âév¢Ý–Cö˜le¢^ÊÕ¼YÕ"?¹‘;z˜æçq±'±6«qŸ/ÝÙ—ÕQ,5±üþ!þÿÿO0µ;¹€ìŒlÿ VÈ·àendstream +endobj +1034 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 2491 0 R +/FirstChar 12 +/LastChar 122 +/Widths 2520 0 R +/BaseFont /FIFPOM+CMR8 +/FontDescriptor 1032 0 R +>> endobj +1032 0 obj << +/Ascent 694 +/CapHeight 683 +/Descent -194 +/FontName /FIFPOM+CMR8 +/ItalicAngle 0 +/StemV 76 +/XHeight 431 +/FontBBox [-36 -250 1070 750] +/Flags 4 +/CharSet (/fi/quotedblright/percent/quoteright/parenleft/parenright/comma/hyphen/period/zero/one/two/three/four/five/six/seven/eight/nine/colon/question/A/B/C/D/E/F/G/H/I/K/L/M/N/O/P/R/S/T/V/W/bracketleft/quotedblleft/bracketright/a/b/c/d/e/f/g/h/i/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z) +/FontFile 1033 0 R +>> endobj +2520 0 obj +[590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 531 0 0 885 0 295 413 413 0 0 295 354 295 0 531 531 531 531 531 531 531 531 531 531 295 0 0 0 0 502 0 796 752 767 811 723 693 834 796 383 0 825 664 973 796 826 723 0 782 590 767 0 796 1091 0 0 0 295 531 295 0 0 0 531 590 472 590 472 325 531 590 295 0 561 295 885 590 531 590 561 414 419 413 590 561 767 561 561 472 ] +endobj +1029 0 obj << +/Length1 938 +/Length2 2575 +/Length3 532 +/Length 3235 +/Filter /FlateDecode +>> +stream +xÚíTy5“V'~b-Í–ñ6Pz=z~ÏÃêÁ Z\öãÝ…)îy™+çsÍ\ÞýòJjG«gpUkúymi„ãc*å5¤œoP +c5/²CS’xØýѧ/î®…¿\%7Ð…6oïÎNÞòú0;pÄS$cHÛ›Ô7ô˜HðGÇÅ…kŒ¿}5½®þófi†ªK£Z>ñiÐ0#­m^+“4Ô5!v¦*3õj0¦;‡)¶ýÉÇD¶?¢oÚ«¹æIçéìš¡Wwoðô¶m9Èm +ðöt,·´oDt/Âد4§y>P³¦A¤7PÞ5Çfù&3Œ–=ž²u’Vԧ´m¯5]/BšÁXÒeêºAü&ˆÌ_ÿdMÚ;ìuüÔ»0YŸ°_õ²zÿ99Úk6wEØ‘‹);À·(hà ¸8qûçm`të «6†SõksZJ¤©‘a+ß ‰íSÁ[Ø'wgÝ¡Yb¤6»ËNe¦$¿®ú%íÕ»• Ÿtw³ ?:~ïY¿~œ7ͬ»üü(ñÆnƒå2.¥G ´ö\·Ï¨þkQûYù©ù#«wM/§”n4_Ëç;I¬¶{ŠÓ.ŒNP¦%#j4OgXŸœuî6ˆ,ÂXV,JŽ´»ÒþL˱g ®p¾)îOsîùÂòÁt†Lx†+’סAmV0®‚TB÷>7»<™]tï,°µ£—[<£º1{¥t[ísËqèÃJ}ñ6ÙcöAÅXNýþa]?Rƪ{IÜò¾ºu»ÝðeúÙÉu`ÏæÍšÔ>—t/s™+¬MvÀͼ¢ÊʨdîKVü›Ýz<£þCeúÏÜYâ¯?¨ˆ@Å[ò÷=0M"GÙöúiïþ‚VhõQ¼„D+_0‚%®DdÎO†8‹% 7*Lé/gv8tF‰Å5èg½¾”QÄŸb¥ŸZ>×±sþä‹;Å ÜQAå^n*>öðl:âêä‹‘r5t¯V°eín«œ´/mJM PÙ;.‡«u\Ãb'ã<6µñ J3U8³“O-aŽåiÈf'J]}ä=hÉ°ÒQxåBÌ.;kv¿1T‰"ä¨}—ïËñ@—j1kzþÌ’påîàñôИðŒQïìk~ÝÜÀȈ =ó]åwà¹×•]!cë Ü¢#—,uÈG•þ²±g êÃJ¯.¨„ˆ^°Ó~—,ñ)s—sTXË‹¡ÐCÓÑêÆV­2ÜBœ}Í,Ùf~=Õ0‹*ÅÅXÑRr¡à’W¼UÞñ¾f9´«Ù9>ÖÛ©±÷n5OóÔU¾š²¾~ÒZ¦µƒŒÛf„e×x ̵Ix"Š²ê¶—;ætkU¿Ô:t•Míï„ÍïÂóÛ8 rg¡~ÜqÏ‹Ϲ°¦ßõLŠ5Ȧ!Ÿ%Œ|¾G¶e÷¿ÕåÕùXõ»Aö~óÓùÐ ×£è/¨÷FÔKÅ!‚UËÞPÖ–EH‹¹xXñãä§Þ#Uùaì¨ os4&üîØ,êF l0ktI”TÑC¾ƒBY¯K ÜK +ωŒÜ—;¿O&¼mŒ!ÆðJ¨¹fç`ýp*vó£Ìµúȧ¢]¶ÉðSýÞ¼>€Ã”‹nÇšŒ‡nå“IËš°#ókr¼!MaZ.é’6.¦7ãm9Á½wÙ79Yï½µ% —(sO§ —nôWð1Þf WŸ¨2% ëü¡bHÊžñ08déAÈQ)½Oì¢þÅDž† ñõî+ª Ó¸ªík· çoaDrWŸ±äÞðP˜i˜¤•VvI&¼ŠÌr&nC¡LÍ[w=»jXûܵ;•õ»Â•!6@õõ\˜“=45øuÉ–Ø¥ÊbMZš\Æ» ¢„ÕµTÅdo5‡_04òeÆÞ4K9ÖPrO~iÑ)Æ€"i¿ïc\•q¢µü¹_Þ¦n‹8 ݃*æoŒmŽ¾[çSî ">N¢*^`Æ[Ž4‹%ÆÜ`U„v_~Ä|6rÌ?$0:•¼´SrF; Cm˜U®&™ †î}dà÷^ØTò¨g_¯÷Æ1‡Ö¸7B…c];Ëñ„ +§€ƒókY6§bD“!a_Ó‹i“ðùS%Šø¬ÈÄÐ~ʪä-›©kã½n +Íé¹%!o*Z^üÊw R·Ì0eDV/ý¦IkB|Û°ô3ˬöB»AÄ@i¢¸¥líuJrLAÎ(,¥ÿ:˜;{ß?E™HDz¹ôi·›GÚUl”õë/.ÈÁs/=(ù\[YDKòbëxÌ^ZD&,Éfˆ…Ë$¢–{2N©9ÀzlŽxœ‰«zª¬á^¶¥ïþÔ âssÌÕI\'ºhÚR:™ +oòÈ¥2¶o­m=\ÄtZ†î:×x×él¦sC>t¥8—t@\xÿ°L“Û85ù&Fz¼;s\uˆï€üŽÛ•ùçÃÕ: +t^y}Q‰T6LY +4•Z-sÀ­I[ù€ŸÒ*BBã÷~épªM½rxªç‘ÉžæÄu¾çö„ÅžH訸hAÅá0ŸZð¹K°e©‰¢”\ëfHÜ(” ˜6%š ½®D¥ðˆ ص¾PßðòØ‘…Ør§¶•ùM % ;¦?DzÍgó¯ÖªLK³1FÃÃÜR7è—íÕl5&sPR_ +(û +ëáš03¤Ëy—QãC.ãâi[û ±¸‹OtÙ'¡o–«­r¿¸¼ñù=æÝ5nÚª¼¤çì% &~•¦´Ðè³*Ÿ·¨iJ‰çi|ïkÀ%ü‡=ö¹ecµàÜë™îR3ùB1ÎÉ +O8¿°Ö'EtÆ`H¹#¥wÇãv¾Y³•$ÖÎ?„ë°ÍUð-žÕ™Ì$>^¦4ü‹®_ý°Ì¬`žOðŽ÷ +—ÛôÚÆ]ÔQY‘!Xº¹{›?%D§öÓ62{ænJuMœÌ£Üu‚¡((®Á´úõGWÎO´+VÚœ …/5æÊIN&jO$skÆ»z/Ç䦷»&À´Œæ–Žo¹*T©£töÞÇ 7ÄÃQâ¦-ŠCasåö Ë]‰}®¸º¬ yS·gâ Á/[z;J¬ÜöS¾˜ÊU°—ÍoGDUs¼{ˆÙ¬x)PŠÃS5ô··µ{ Mð%LÑDod yrG6î·<-pÉŸ:î;¿¶Žo µÎ?˜ÄOç’;y—µÉ‹J²pÝŠÀ^ÿ¥}¼w=êOW¸ðÁÖ +ߦæàpx—8N¤,¢Ü8m§llû%_i±gd}t›W\íxAþ_àÿ„†¢©42M €üú$–›endstream +endobj +1030 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 2491 0 R +/FirstChar 40 +/LastChar 55 +/Widths 2521 0 R +/BaseFont /QTDXJW+CMR6 +/FontDescriptor 1028 0 R +>> endobj +1028 0 obj << +/Ascent 694 +/CapHeight 683 +/Descent -194 +/FontName /QTDXJW+CMR6 +/ItalicAngle 0 +/StemV 83 +/XHeight 431 +/FontBBox [-20 -250 1193 750] +/Flags 4 +/CharSet (/parenleft/parenright/plus/zero/one/two/three/four/five/six/seven) +/FontFile 1029 0 R +>> endobj +2521 0 obj +[481 481 0 935 0 0 0 0 611 611 611 611 611 611 611 611 ] +endobj +1026 0 obj << +/Length1 1319 +/Length2 8676 +/Length3 532 +/Length 9498 +/Filter /FlateDecode +>> +stream +xÚí”eX붠q—@ и»K ¸»h¤nhhºq‡@‚† ÜÝÝI Ü]ƒw.{Ÿ¹ggÎý9ókž©®õ®oÕZo}«ªiµt9¥­–`Ü•“—‹W «®®, x¼äáÁfd”uƒ\¡¸È,ਸÁ|üa1AþÇ› ‹pôr†ÚغXdYÿJH;€¡V 8@äj vx¬a‚tVP°«@èüu‡ @ìvv[saóò¬¡V®K° ŽÍý—’2‚ÿ+líæøßKî`g—G)Ëßš¬€GIkæ°C°¹5ÝÀ.ÿ7´þ³¸‚ ¦rø«ü_õ?–AP˜×ÿJ@88º¹‚êk°3ü?S ÁÿrS[CÝþsUÙƒZIÃm``'¯À¿âP¨'ØZ êje €€`.à¿ã`¸õšA!ÈÙä…ÍóXŠOPàà €Â­Áž°ç£07áúx àqcü„3ö_S}<7æh ú+ü¯€ÛìúG€Àmrpø#"à¶ÃþÈáp;Û"þÍ‚"nÇÇy#¬ÿ ‰¸­–zìí¹ØþpKÿ›„…Üêÿ&·Ö?ôh©ó=fþCŒþM¯÷?=EÅ,ÿ¡¿œþy,žÇÖà£ø|l ùÿÚ–?ðQú>nˆÝø(aÿ>ZÀþÀG ‡÷Qþ>öuüû:ý³pþ5\þÀG ×?ðQÃí|ìëñÇàûzþïõ>jxÿÿóe—‘Axúð8ùyþj äñûßÓôáP'7°²@GD˜ÿq|E­ÜœÁp׿ÿc?£ÿfôñ˃=ÁVØ3“+ñ »„ú"ùœ‘btVª¤‚ ¯ÁµIâ\»‹âDãÎ Ãz`êcÂ`B;h Áç}Õ2nkˆà2E½´o¯.wð4a/. kV².æ¡Õ.Ð ¥/£§ß!-|k†fݱýp–þlÉý+z…Ú¯p6Åþ{´¢©É»û7ƒË38‰ÖôŸ±M3ZÔ> ¶—b~\ï)"r3y}Ï€ÉgÄ÷3 £öó¸I¢ê¨Sî¢KD|¹“ôb©Ð*í¥1©oŸ¹Já’meŒv`⫼§Ú­ˆ"P=r‡`E‰O¥ç(Žê{‡7¨HÃP ¨ÁC*kŸæ0=,¦Ø ªÕbÛv6(¬TNp³nHàWØÚD¿§¶º¿¢ýe é8+"S%Bõ0øÂüBa~å]Þ0ꯌ¼qQñÝjøó**Nׇüûµë›ž#“**>÷*‚€3Q”:pÜÉyÕ‰Wj´PÓZ‰{ÇŽ?2'sáN†d¼·"™..†¤†]Š®iÿï¯?Y»‰„Ý&&CCó>Ä!eLÌêW}"lÒ¶í`ýÂú³3Á™žü—wNR¿OšˆÑÚH¥¢V£(Îïß­¬ót­eZ{=9=ü#qÞFÛFäÆWg6hŽ‘æTZѲK¥²][óñÄrC÷²ÌÉwd¾ñ,á9:Ç0îËš]å'˜žÅ¯‡oÕ)IŒ¼1Šâ÷ƒHZ¶«á®ã°3i÷VßYB6¨v€2¿o³žçn¢Ú +nùÌ÷w„R­}ÒgC¡xŽ=OF#ÄœŸ^°†µ ‘pl¥h¤úHm„í¼UiE ý”Þ¯ù¨â’Ë‚Ì£'Â@r7QßÉ\pÀ̳¸hGšP™ÊÎD•Ñ ÚÇUGñÑßU¾:Ó5µ+EÞ8M&‘_»Ý­oÜh.6$CÍÂë5ÁÙttúbÎÄÏ}~užª”âàXˆ–©*³xTÃ8G•=‹Í«îž uA¢Áçkê¶nQ 3)6E¢æS–†÷,Êć”a ù(yª¢»¨lžâ*¯ÙøÏø”H +¿„'½lÐ,ðDyЙ ç}6ÐJœØTu¤QÏEÆJ*%ŒìHÝõæÆÅ™h¡ª€G_üœ2?kGÅ«ôQò¢BlJ^¤mZ•òÊWŽË0… +øE0UžzCPåîŪèò…DŽ£6‹I‚¥±Y‰DËœÄø Çù§.õÑaúQeŒƒ²Õ©¯ÇIJ±7öDÚKû±[ÁÆ+ܳ>sDz4O‘¦¿ÙûÕ“lãìÇ$òÚIsèÀ'C(È)?nVþ4gk†˜(Cý5oy™­ ç¡!饪'éÁ|Ç¡•ú•Û•" úXª»!©:ð6±ZÓM7üEe1tH&Ïš_¶~Ì·üyê¨`gÖ$S;Ý8Eì ktì!äPéer»Žò³âE‰°ésfâæ˜XìÆw›1-Û*ßÔ´ñ4з*–^vo§ØXöpËÝEWòË™´òXŒeæUä=ŒWköíüºÛ)ýòV]Â!89ƒr)Ä~©úõÛsºØ˜Õº^z%;ÉHtI]Ÿ~dº,?ù—Dsœe„ˆ¼E€mÛnXI‡hü,rˆÛ‡t˜ÚƒX=–wÒŒËk*Ô]0slä! f\ÔÛSHzyMõÞÞ>.Ùµ9\  Þ»_âÚu“¼™CµŸ_1"•é:Á‹™YÞ’ž°{žŸ©1 ‚…a[ÞۗΛŒj»"Qù*¼+–r!Žá šs³³Œ¡Àƒ—å ˯žwŒAn`|<‡”N‚XÀSùŽp +@å{Á„F¦´Ü + €ÒîrÌn©Eä¶n +ÆRÍ”tV}R¨Za6·îö:+Žlô\b·J/Æä8¥lÏ+B»—{¸›ªÃPæÜ}Œ»7ÝÆõ$9{Ëæ¾òæè’Ö|øÑ÷ŽOÛÎ1{E"·[£¿L ô§äËÙñö¬:K‡èÛšáWÜʼn'ÓÖ{Ä@·B)ˆÉÈ>e2Ç¥0Óþ lÔ6÷~ãÂü«Î50G¸®Ô¸àÔ€¨‰Zєюÿªè°S ÚX¡§;¶BnГe¦×Á {:Ù—œÖ–~!TG•ý¹®õ9k¼U-JJvå’Vu °€r ’/\4nä‹Ä=2,ØÕ™y,Z/$ßè¥>{×\X‰–­þ£e®pW?¶@×ñãw»ôѦß•Ó;u‰IÛ>|¶_<QS# ‘ö¢òšs ËÞçSVòv2‡t±ÕjüÔ÷gÓQý’(DûTª½A‚ÞíÔ}NÀ-¹PÄøüÚ-r«!]õ¥Ò ‡»1íI¸w¦Ä•}çž–ÚÏ·© ÷æ9¬N”Q6ÐÌí;B?¸³ÛW¡òØçéÎKûþšLž/kŒ5À:‰½ç­Ó¹t¹û&gÒس¤‚9H Bîù„Âx8Œ‚¦fÇ’,uÂÏ’'ðcņ¯}Òä…$íÞ¯7!^¿ua_#qÐ;«¨ rÍk7]nVZ£Ÿ\Í9˜ÒÚY¾°+Xð;¸ P*ÉΑ’ýøÊÂu‚&ëÁåòK¬a(ÁÊç©×À7®®øú&†“€^ÚaJ³ÞŸæ'Gi½§" ’¢5aR ìdÔùn‡û”—šý}Ö/i>Må²Ã\)?¢b«f@nGµf† +Øëø.)÷ž7a_¶”µ YwÔ ÄuF4×öjow?)2G\µ8)ßB©ùÃpTÐ&²NètÆËÓrFÔ*ò)¾¿/½Ž Žø$çË-’½2Øíup‹‰›”¶ÿžAŠ‚â"a}ÌþI°ê^7¾'™{Žã-»Ž9ÁøM #KQË‹XÂVt‹þæ\oÌòš¶FÞ*†¼W”’•ÆFëÛø±G£2™ð5T)KÌã šãV=æç!¥ãRQvX#Æð>{Óö$ £1 oÚûþYŒ?óV|mB§˜n¤Ô10ôg¬dAßÝùÓ«&*g}|íUuAd=ö§¼[ao¹ˆŽöZ#?ÅÅ0†•¶Gvºø™ ‹ØKO3K×ñÓ§8eøúÄLùÓRΫ³ÇÍ Zá¯ôZ0ÑZ{ñF#g`qu|3Gø_Rs‹üx3l–d\J³~2£•¢¨’Zù$u›?˜W×Ðùóf9/@ïè—"W¢e¤ÝƒÆÂ=G2Hp¾Ê:ô< îÚK¹s슂MžÛQÙnJ I?±™¥Ü(ú9uU"gšÒ‘.Uã4IˆÕ8l¼Ò;GÛ\%ÑxgÙ/Ô½@ž±>$ƒkØuí?‹a4åÈv¸l€Û_¬ŸH~ò‘k0k´ã½ŽûÛë]º±ÑEj þyÑ ²T í1‰r7ºÿú^ þ# 1UjÒ‡fÚÔ]’☺¬õ– +´ýQP³$;ï–Oµ‡ÙsÒÍòê˜71rîÝ .(h\yb$¡¾Œ"î!ÁT8ôÎ4@^øÒȾ¸ïýñjûº.0MÔÙw;ÏýešïNÏR–\tÐ|Iç_íÙAzN\=|ÖŒª*¯n Â-âj½^wvt9 ÁÀÓ¹#îz?ü÷­¸V×ÍÒQÃçâ«7òy.Vñ÷ñ%ÀR$LŠŠºg5Õ€V%$¯BºrÀC‰\[$•,$œ"®­’BsOæGjÌõ}y +¿1'Ïú:Ïڛɮº'Ý;b õVÿ¡€æS /éÅïêGðeôÄj}ì¬Q‚ÛFöf"Ä2)´Ý“•êmoÞg&/â–ÌÒÄÕxL ·ºý1=<1IÓäi©Øç Hfo+ y†N2³¬Ò¥ÝÈ“Â9¨àn­ûï÷$DÉÃö£+’¦‹(qæÆÓþ"uÇÛeŸ¿¹w÷lt·(ü¨QóüÔ#z%(mL&|Õ4çÌfY²ý`‹£À ¤†®ÚFÀ4 «¡öÐrïçxb߇#D…{¸êÔ„vý}v(ëÚ»vÀnš ï^”>ÂĈIÔZÖ89ÊúÐ¥#q>cèºXŸTÞš¤WWõ‡l© êÑïz%²>w6ÝߎD© ,npâ±(Çì̪N}è`g”-à G2<\;Å´_iÙPë +ê¸É+W(­c@Yí3zhB¯™ªyUc¿¾óÔå§ÃÒí“'Ê$£V”Õåö\¶5I|æ®›Þ|!Å(Q&%´d^=ÚhÞžhz¾Ú÷AøI5gÔ~Mà8O9TÛ€Ž¥p·@£~šýÓHWKGg7›¼XD‚)ïdº/f GìØ“©ýÐÁ­FANuäô>we¨·MoÁX ð2$¿ö[fƒ@u~çѨ¥`pýFkQI§{‘#SË€”Ø$“}"HœÛ¬þ +®ÖÉEÓÔrÍ»Öe6þnD™ìM¬&Ç[ùK*Ný§ãTtņÝWu™xnƒíIu&i¹bn¯Q™öËcx.È9µìÊÙî³ògflÈÀgÉËÁÁ3p^ª §šJX„øo€wùC‹1œè¡Y¡L_Ãj‚­F1/²³ˆÅöÝÒ© AD^¦¿÷ŽŠƒÖ šc4{Òo®µY ¬µ¾Ž4——ß%§Úh{줉ˆ†bYIDªÕÑí~²œ.;&¤J^ˆä‰ì•APðôÄñ$‡Ã>ð–;fÂÊÄõ,nêId;«òâêܶµÊÛ³E#ÇpŒÿ¯j B¾_[ÌÆëJÄM‡{^Ó„¦?óT«ÚM—G_°ë째j.qÙS6{ê­Í= ’æTP'¿¤¿ŒÜÞH3¯XxÕçô§qáy¾õËF'ñˆFCA²/ìkÔ–üÖ^Qz9ܪ“¥]¹¹%÷¼ß†{'JáßÄkèl;º<Êå:x­—nà +²[ ÕU¨H'Þªúêªy?›õ!~:q^ÖöŸ*Íž €ÁGrT‘yéW;uŠ+Ö¤®ãͨ•ÅÂŽbG»Í2M¦Äl»V·&º}U8'ßÛ…· œß<¿Æ놴·§eS-úVÉÚß‹}úE½ªdGï®' +‚Ûä[A9©G0KýÌ4²4õÖù­Õè#LÖY6AŒgb—žè2eùogë#ñP†8¶Üv&rÞð|‰"5`)®CÊ Ú­`U@¶ÆÆÓÛ‰âIOš††uÇÿN—P¹oé‰iÌ'ÇE÷ªyo†èfîñÍÈÌÒŸTù kˆ=-;[­@ + 'Úˆ}r¼ncöº<û,P"•Ub&ÎtJ§õ:Ǫ7䟇Á,LTæý"bMBˆ¢Ú씿þ¤œ$^Ò£ôä ¦¶âWRÌ Øâë"N\/ÜûˆR!àÂ㘠ºI‘ãû%˜HŽÕÇi…ügT,¯‡À@¿¿´eûö;Q$t=Ò]³ÒSRÎŽÇe>á—¸K4fŽ¾—"}Ërþ¾ðÅX/­IWI²)O¬1žÍVŠ"Ö-6E}£ßàAt0³¬[Ä5›ëμ%E~AÉ<(!>ص”±¤íô€·¾ÅµÓ¢†é!)³Ä¯}`ù¹O9Ìá•8r‰ø’áølŠP›ñ þ +Æ“m±ÏÝEBO6‘‹›[z­’4„iƒ F" R õr”íy(¸o€;×%¦Éu_·Ö_ì±"žµø½ÙHÕ+S…·@öcÈê·lÂû¥¯rlÈÕW#¿…Æ¿È䀚p&–|—QM9GY¬_Hý›% ¢˜šÙ¹ð>U¦<­Üá–y•ä©åL®8ì˜7£Y?ÄùGžÃysQhó+ˆ)¸JûP {Á®z×7Ú[XþšåñÌKÒuÛ«!âp`q.ª3à(Wšý,,r¼¾8LÉWóÝVõþEœ&V¨/S4ü ÿªgJÚ‡¢ƒ\ÁF +21Ì•LV¨$‹öQ¹G6ßàý­ñO¯Mæ0¿¦ïј84ÏôšY$öUÖODé3íÕài YOb9xã<,DwÌÁÒu %×mP¼Sëxõ FÀ5Ü+Èd™Êˆ’-oûú™#zéÀç¡èªØoÃ9-³RªP €«kBÆŽU©¿É¬2D*)UY?J8:Ý1S‘aÙ|kþ‰¶p¤Õg“B<Ø7áîz ÿCdª1Í‚‚ +,°«ÝIŒÉ£>‘S‚M’ÉF"â¦îÖÖì…nÿ“æD‹Pb¯n„g'ߟc£µw0¬¨‰Ig§:cã]¥ãYx¡}–¨}÷ðØDÿÝøYXS G¬ `æúü|Aœéº|ÉZ`ëu7¦‚qèý±½ª«¬Pí÷¨óü¡´Hë_ƒé½@.ò¥\!ÝÌçú·Ú’P†ÇXìh[s4ºD‡>8£ïxDƒnÃns¡\ñ˜]x:zS{6¥mÈÛ˜ÿ•Ý·; Õ EÈ5ìÕõá°,µèøEÄù÷¶«tcÈÛe¿Á±·ïã ™L¸¨<Ýc`‡…ÞYëI­ëŸ£”rU£Äå¢|Y¿‰lxTŸ p½ÚƼlÙ±ýÙ§MeÇcÑB5àbò=¢“+2pàìŸÞ£[¾ÝeKKÑTE-¡qà½ýþ/ÈlÍç¦ü9²ù«£áŸÃfÈ$>x^vf'ÛŒ3¦?GœTAÜ^þ_¦÷šç7÷µ\… ¿ÐË>ß!8EZÚÄ[sÜÉZb§­V+¶ŸN\tøÈdhS/ðouH84ŸÙT–¬á2â_$J&D’_ð‡wCЪ4×Ôzø³[¹¾h¿çACnr6ç¼êþöÞá:Ròµ¹Çþg\™/®'×%rÏùR×»'åËÃκ‡j;ì•iz¶nþu ‘ÖlC+BØóSŠÐäü"*WRŒ‰÷t|ÂØßí`´Ýعrð<«–Ï}²ú|ƒ¢îh¿ÓÛû€GÂó7¹&%Ú¾²ö¯â­ÞPŒÜp竬{¤yÞA@ÜõÓfŠöQÃVÍ`IuzbX.1(ë%α»vÛM1Ÿqn‡vM Œµ9¦\©¦é îâd‘M¼æ2 ›¯°$%4Èe~ñ$,2µøÈÎvTÀäiÓ¨CËŸÝË^Š1q˜P6‰¸JþñðËÊÛkΨê;3õ¨Æ|GÕé•Ù쨕Õb2lþ”Ÿ+ýUÔ“'c¤/w™WÜ:5ë»óŸ5íɘ7Óx, 9Ú~-ÖÓÚò|ýÍ%ÿ´¸dôxÚ0c EîI•T Eº½³¤±â*)‚ÓIÁ\*%ŒNŽ.¿ †ŠVשM~}&ÒšÜw{=!_ !UwETý! ±ãx9ÞÞ—Fo¨0õV1“û¦¹¯‘“Z'ðš“Á¡O¯Ð/óÃ}ˆû\9Œ£ºYH»É媓‡/f]1Cµ­nr›p1y£/ó,Ò™‰s¤«¤|ªæï×ÓO[˜káòŠÌ™EfàÅòÆ»÷×u?&ñîjßcÙ®bSç6¬XÕÜ¡q^¾›zcg[©Õ®ÒÙÈÆà_ŠkC“;áeS£K:/Ò2áàp×E ÖQ¬†"å4Ï×¢3-ŽÂ°üÞÊY4Æ}6Ù<µü®AÙ8ûáƒgŠùŒ ŸýÁ"ªM¸ö঵1¾^êÞÖ¾oªÅV>Ù +šjþØÏô0lH/•äß» GÙ©½vÊR‘½¡ã*J·ÿ-½Yð­ŒæEkâ¥+vÀ&Ó&ª÷*£O™acô­|¡‚Ó©’‡ñ”È | ¯ Èà3‚Xµ·zÁë=?ÕÎ9üC¶¤ZXžUΔ7„“øvÚ+â´].Ñé ,èpY,­<Ž>Ú[üI`œm<’f,'ÔîÝŽ¶ÜìÔBþÝÑÏ9J·Ò[}Y9 ý¥R‡—ÉË…z‰œçˆXÌ栗[Ÿ.Z³¾ä S¼3ÇO£óy&?²6jžæº€e2÷rÌ;ÅÛÖàº-¶àçáê«0ÿxȆ½]ÕýX£¨Mx^eqÙ­Àµ$‡3ɲÀeMåé;²B(L–áÀ~®A€ÏÜ_ºà&EY]sßÝy›Ïˆ­¼íú¥]Fà+Ç +ÏeÔ¦O°Ó8œ˜ŠKŠÏf ê"“Õ½&V°o:ñX–M´Âëg[XŽþ$z=Ja"}>˜?¥Œ¯øô“5qâ´%1ÃIIuC"µ¸¯R4´íèõ” À¶­^CZiÌŽâµ]HR«ŠCº:&ëõ2ë;a@<”{¤‹3´tÏ +œ°C&H7j f—2Þ@?yR]†¶ æѶ"ôæ’8±^hl W›'KK“])fÏKæY”rd–ñOžt]”Ç# ¨á oøwê( ‹­¹®S +ÚÈ*Z$§q4o^;íÕ2å5‰gW½¥8×Ñ-º¹³¶ÈZkoÉÐgÜ›–²í§\4}Eézb—©ÕØp&Ò•›1ÕÂz_eŠ¼z31O°²Fˆ±WþRúù °¿Áм…yï  ¡q4ÓØ«v“ø¶ªÿŽÁÞ¯wj xLj‡Ý0Ý´®1ßûù ;=¸\Ø‹gÛÒ¾Õ®u¢Ö ¿šd +ìÞØwî4¾—:®cæWÄ¿ñ!ññ6¢Hx°Ï‚rc¼_–¼ Îæ ºcxvðÍʨ¸çÎÞ“ý‡þG¼“£XÑá ¬}TSŒi´+Ç• Æn¢õiR±y !è;ž¤ÔøÞ¨“Lеœ$… TãíªÙ¢‡Òxÿ¶Íf½#±2<ì&M¹•Ô»¿¯,Cô´ÞëÙTA¨×ï_fçêòüØÿ¿Àÿ¬``³+Âälý_Ëuendstream +endobj +1027 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 2497 0 R +/FirstChar 11 +/LastChar 122 +/Widths 2522 0 R +/BaseFont /HJUXCD+CMMI7 +/FontDescriptor 1025 0 R +>> endobj +1025 0 obj << +/Ascent 694 +/CapHeight 683 +/Descent -194 +/FontName /HJUXCD+CMMI7 +/ItalicAngle -14 +/StemV 81 +/XHeight 431 +/FontBBox [0 -250 1171 750] +/Flags 4 +/CharSet (/alpha/beta/gamma/delta/rho/period/comma/slash/A/M/P/R/W/Y/a/b/c/d/e/f/g/i/j/k/l/m/n/p/q/r/s/t/u/w/x/y/z) +/FontFile 1026 0 R +>> endobj +2522 0 obj +[743 648 600 519 0 0 0 0 0 0 0 0 0 0 0 593 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 339 339 0 585 0 0 0 859 0 0 0 0 0 0 0 0 0 0 0 1089 0 0 727 0 861 0 0 0 0 1074 0 672 0 0 0 0 0 0 0 620 502 511 595 542 557 557 0 404 473 607 361 1014 706 0 589 524 530 539 432 675 0 826 648 579 546 ] +endobj +1020 0 obj << +/Length1 1344 +/Length2 8041 +/Length3 532 +/Length 8875 +/Filter /FlateDecode +>> +stream +xÚí•e\Û붠qŠ;¥@ip—àZ(Nqw $8ÁµHÑ¢Åâî.Å¡¸Kq-îR H¡“½Ï½›3ç~œù4¿I¾äYkýWžõJBK©¢Îúlo +‘¶‡º°Ù€‚ Eu ÈÆNK+á¹XÙC%A.AP@xçjà„åy¹99aE {O'+ Kƒã_E|€wv'+3 r±„ØÁz˜lêöfVO6À;[[€Ú_O8Ô Î'7˜ €­Ì\¦ +(:û_FrPs{ß¿Â`W‡ÿN¹AœœaR˜$#¦¶‡ÚzÀstv%{ØwA`&ÿ7¤þ³¹´«­­Èî¯ö¯Òÿȃì¬l=ÿ«ÂÞÎÁÕâP´Cœ ÿYª ù—œ"låj÷ŸY9­•Ù;¨…-À*ÀÆÍû¯°•³´•¬båbf 0Ù:CþŽC àÿ-ÞßìòRZ:Ú2Ìÿµ«'U@VP O€ã¹úo>3lœ¬<úl@X!ìýߟ ÿãˤ fö`+(ìXðð@NN OtØù€à`C<˜1;ÔÞö¶0>s{'ô¿6•›Ànéé` þÿWˆÀîÛ,{ðsˆÀîq²Øí¡˜‡ÀîâþœçÂØÒ òoœvs{W§ç,`åöoÜvgØÔÿ0LÍâöof° ÙÿµsÿDøìP«á…uut…8ÿuožƒ°Nïž ÖEü™`$ž 6¨ä3Á¦”ú‡ø`3J?lB™g‚M'ûL0 ¹g‚Íõþ™`.òÏsQx&˜‹â3Á\”ž æ¢üñÃ\Tž æ¢úL0µg‚¹¨?ÌEã™`.šÏsÑz&˜‹ö3Á\tž æ¢û À\ôþ¦ÿy ÄÅí=>°òrX9aGää‚-‡Ïÿ^¨ µ‚m™œ$ìqpð ðÿ5sur‚@]þþõ]±ÿfs+Ø¥„@< fè‹söfBAÖÉ!%¾Ry“¥ÈŒÎä©EA£Áõ©BlGkBø³NMŠK¼`[¢¾^wë@®R8òå¾: G*™Ÿ{üékã7¶±ˆ‘¦ÞIB7ÌjUH„hí¯ÇŒÜËØçÙ/ ¾4H»&xZ|Õ³:m³‚•*‘¥ˆø=Uä7£‡ùæ:0ÝæÍ¢NcË,Í +r<íâì(¢äÏ»ä’LÛ. ž£1K½òXñKOõ¤¿ÙÉ)SqÛ¯^›z2(ÝÀ5&» µ…ss{sx«Uât¼åyË´¥1ñ©AÇÝšjÀm »¡Ì`óîÝYÏâp¯SB§˜—ÅÜm¡[qBQeŸ§]‰¯Bí-[—ïÛ&üÐ×# +àL1ýßVF*]v¯]ö¹^Ôµ6Ú£‰yhà73[üÉþT¥MÂLÅqwIàøqX§h±vêR‡íäk‰Úaõ›Å†¹Š‘Rƒ5<ÝêŒÀ劤¹ÁÁ¯5|J7jS˜8o÷p%†¢f´™ªX¥Š0~¡Êü Øêí¤^虪ÓSKîè°RöþÒ¿KÑï«lá¤õ´ˆ"?³Ý@êX3í¿SšùúãÇÝ¥ *Þé­·XpV OM"Me YÙ}`rûINú§uŸZŸ^ðr# ÃlPšAhÕ€PX›·¾ºÍ±W:&g»vŽânš–Z¯ýOö˜p‡ŸŒ­p.|[*¨©ëFè3Žè +ppçhQúYl-Ý=ß$Õ&W²SJä….Ü®ñÆ7EšÎîO¼e*&¢d஽Œ§êM’Ò¯¿)óÉñ¡˜e˸ý’[o@qYäÔ·•?ûîØóÇâ jê"õc<[¤•ÙdñPÍÝC{øÞì¡ò^ò÷Ug%ÒT·ß ”†E®û³ñʖŬêv?–õŽ]X!ÍdÐ×7¾£O€ªÞo¤áh?={r­­ßÅýäG©©x§Îð2wñ¤( Ÿ0v5QNbĈµÅ:Z‹G¾÷ÀäGLbÌ·TB<™ò¹êµÅ!ú ¢(¸Ièzã¿3Õ”(™÷‘ÉÔ¥|Ðœb@lÄV½¥ \X$Ac3[ÇZà]fi¿:ŒG¯|—~¢]<¬ûønìQü~€¢%ß#£ûÅ q4Æ<eâW#üÆNÑ÷!å"Tê’Ñ <åÍ%Ýý-½ŸiÔ *»&(M^¼÷‚aB×ôÓÕÆWýà } *rþ9“Ø«ê½:’¼ÛSî¨ "ÒXmžQ=FrÎ2—©|SÁ[*¦»?i„œEKXŸÏf\i©̣Š+†ý3kk¾Ÿrã®3Bš=9\{·ˆÕ)óFªZF9?Rà*Š÷}àWÔ(±5‘~ƒ,’ðMW‹7¶6mì‚UlÆáG^ú¨ ªŽp‘øÎ#6敵IQ¶Kc±p^O%uFDwbY½Ô·þ §ƒ‡»ñ\Èã@<%q‚/‹¦ž˜éaöVô)ÙÇ[¤…v"Yì]±quˆ¾½1@±–B˃«0^…I‘“¹v­礔º?&¿õ.­y.×?L³¯~.I]3O`LÑy­ä˜ÄgSE»Ç3X§K:.Ïôĸ¯X¿Ÿôøüz5n!è=Ù+¦ž;–žë¥- z ¹3T ÇtL°d„µz +ü ‚ •S’xOÒZ£§¾^«æáMP NáõmDÿmF©¹oò3vé`8ÏÑq‘ñB”T¹÷ɘd‹`3Ô!Ø„Q­ðDTGþC±É¤in¼‚}lìæ‚R/9Æ?ÅEÏ7Gm)Ínz÷!ÿUö]6Ÿm¹¢ÄoÞ'hqg¹Ô­¸©ïBšàÈHL7ðGŸ[îº%¤êq!oèmç#—Þ×eÚþqÓ2û–õÑJ5>ã_ÂF9Íc/Ë{:=ßÜGq„-¸Ê‚ÝN±Ÿol2XìÄçH_‡hô ›‘›LœIÃwHB*KÓùgb‚šŸèO±R± °.'¤Cs¿bnišå«Ñr}þÐ^+éÇP/4˜òZ”eó§AHëB¿ßU ¨Ðm[œÂ©,D~r÷3'¿ñûDm“1+ÞôVžyÇœ¢AŽÄí2­Ï‚èRs¨7RWíó÷Óè/l3C4²EL¨,µ^9¦yçûOW!“o`sÛ]Áa l¨ÐÙúFºb›ö>½þTDžåú­w+Ì*fæFP¯æûË/÷¶p¤Á‰aýwG_áwqד‰ÍÑÖhµId5ëÇ®vçT+Žï |dzÓBѺIòò´i$ÉÈ$Ò ŽçD‰4¼Z´Fbv£{BÖ_¼¬m]g•í/„ÖéQ3¶P*áD`Ï{¤¥À±­WVœÿ^jJ·²L‰Ù Ng+b|œpãéòÑQ»ÈNQç±í¾DýMÎAi52²±Þc–u&•a¼€ÞGx¥Hz©lïä|g:~D+ +5q*螊û@üs8¾²’Šw"?ÁÆ+¨º6ÅUàGW%N0_‚¦aαÑryÅ59ADA(ÓXÑËRç {˜ò€’šž6?oçÓÂAC—6½Ê‘ñBTÂÇü z¹?à â`q)íyÓej%aY’ýl,k§éÑñûy4í7J€å¡ã{9þ^(ª!{û\¯B"Õ²’ËÒ…¨ÌäßÀ#íÅÿ©!¤'F£F13ø¼Xm ã¬pb)öt<¾çÏIˆÔM¤iÄ@cɣ̗/è"/þ!¯†.â ^sYó’å½<‰ +\¥8zà [Z,¯}™ÌÐLÇù=Šˆ7#) Àb߸%A¿çaÇq*Ý žõd6‡X<¦WMnØ[OÒܳHEŽÉü–¸3d¾˜Þ»E$ìª+a½zÏìôiƒû"<ÐÓ`ÿ>¹nÞ5¸ÎÌr¶¶ý=‘ÓÚ80Ogs.Ê'N5ff×þð%–f¥›>ÎW™+;š}I7[EÝÜ•¹w Ì{SÝmYAW8s—HÛK?ÍYŒ³çKWܹab?ûÁ8‹BРýÕÝÓ|)r¾·_œ—ÿ¾a410Rœˆ*êV¯’­;¥Iܸwâ:y~ròeCÚ2„Ò˜ªïWЦŽZd—;Ã9¨Ñ{^žÁ^ „ý²v¢Õ¸æ®ðS¬0äŠÚÍ ŒÏôgá 6§ûAgì ¿1€±8¿â>òè°¡DgÅá€n•éðûTÆ‹O}oÕÀßn«MHÞóO:úÅñwÙÉ+½¿é†k¬ö³?'lÚŒi.”q4¥'ÚNáªáËË-vÔgæüŒò¹ÍËg ½gÁn£‰àЙ˦Pùíõ·¬•„½2¾Î«Î£FglÞÓDŽÁh ɼÊäù‘FQºGTµáÀ¾M×Â*äŒs<¤jš]ýÍOûE!T"²e ¨E!òñ±0n±k‰†WL=×jÇ/t´\dÀü¸·.©_ñJŽ$áð1– }~˜Ž®ªª‚ô„tšµq\²YÜÈNf— zLÖ^…‘$„Æôú¢è<›\îG;þ\$mŒhŸÄí UÝÆë¿ú pª4Ãùv+RéUIˆðr_ƒKýY½0{ &ÉŽ¯ ~ݧÚD¾dl]‡oMŸC)rý^FaÀ… Á ›ár® +L-Á 0ºÞß=f®»X«j¹ºí­1-¶¿¼0ã‘B¤›0¸¶Oœó ÄèK%Ú²¤˜bsM(ŒuúX»ðA{¶à¼F~ªÞÅò&þ`"/|h½À«F\ýÝ_ýEYQqá' 4)½Ó:–"Ó|)Ö>!Ùseªqa)åTã–¤S·Ÿh%AïýRãuâ‘ô5Ù3B·*ëæè¦ZfDbŒ.SpPüà\%k‡›7º ÓM-þà¢)™Wprê_ë´†}Åë­_\¢¤]ók]ëä[Ó*)Kô#í±LÖ÷„e‘ÉxÚ5xõÛ{ ¢9H‹"í64x^TR.í(Â¥ß^w1ô(þÐ]HźÏjÇP])™X)º¡Hw²ê'묊Poï SôQÒ~[¢#?Š'†2ð qØwBK9þã¨L—a㢀BP„ˆ z‘ƒükݨ›¸Ìº‰žsƒv\p4ÍYT/ú²gl‚ÛÑ~ÞJØK×þ³8ù7Ä2{{ª²•ýÖò¿øcL[SWÖ°jµ+¨V³È~‘ë ‰A«Tf‹£vÊÑÛwÝÍüƒR©ÿœéÍñ#Ò¾cŒrL,)Aá‘ $G»ýȳâP„F¹@”o«\a7“í|b¶Ñ5X™³F|í¾ÉO¤ñ„r´Reѽ!D¡ÐC ¥Sü8%Hk;‡¹}RׯØ`Åcß1§±'E†bÅ× ·* >gâ +½ûèHðy­«´<ù@uÄ ‡Œt2ÔˆŠze] ÎxÀfóœ?ê3˹)‹{SÍvwÌq¸¸†Ô"E¡¾“á•Ô’ÕA2vuÐ>—¥Õ`Mè §ËQ õ¨W³—n0<éWÔO¹”$,j9 ðãýcK +”•‘Ǽ‘ﲺ9œ³ƒ`€rŒRµj„†œðzqOåfL‚ÁéÞ¶¸¸œ¹ÅN8ïè@„ôþúô=kYàŸH|ÝÁ653ý»äbép§üž5C5á‰@ðÕ©ÅH]þ.*Uz>“u/ú•ï>¯qÂÄïؼfÂ9/«¢-ÊÛŠ¹¤dU+ÄÂ5nÏÎùùªüî:¦h-”üŽÙ”>ºL\#»—"'ÄŒ¾|p%œÂÁ¥¬­oÔýÔ¼?Á%ñýôÒr“Ið6P ÀyÒU3f’C´ƒ¥¾ç„¯jI`ZðÝuïÑm|½räzxðÐ!g}0BT3ýˆÆEGäÄùÆŸž·WMNWÈVënàóöåÏðåQ¸Ïl~U ƒÞØ …›EprŒxc óDT¼yÿ9–­È-4ó-§²[àŒ’OT©+%š†–Yæ±HÝÑ¥óÛÔ (wªµk«YËöŽÝôòœ?Ä$o‘~6aLœ9òô«Û'ôÎð¼˜fÄãm' §o˽¹®~›ÓÜÕëüeäÒ`†˜Á€gý0#ë5Ó«œ[ŽX\(©ˆ%NZ5béiÚ$èĺŸo#°‹»EëÎJÃÑv‰_MSfÃi;öC…诹*lÞZ"Ðb=æ†MÚ¡^Xÿn¬´ ÷ ãn·óDF)ëUÆçY~Ü2:õCà0Uºøåô³Âv£Løxo.5n>¦€QáÏÐᲃ¾W€÷­?ï‡<Ÿ»_ÃEòÍ”Q¨´Y!­ÞmL4·"Üt…fÝîƒ%:©ù¥*– M–~kK—"¦\”èǘCM–Z !=—…ǸÇ:ð¦ TöÞ8p‘GÕ½®‚Ék-þÚ*ήû¡ºbp«£ñPtæãdè› ]€â¸p,]×-ÅMÖÙ<ú+Ø„@o‚÷ X ¨f61z€hÀ@O]?¸?Œ¡wÊÐH=PùŽ ¬çÚD§—ð„4`êÃl6S{hzÊ^J§¨üžÀT{.Xì  ·ÅãG’ö“]þwÒn§Ê²îÎwkŸÐÖ<ñÞYÖIãZ†éûªÐûú™[/︳éqòñ÷vÐ(˜ø°z ­ûE^wè0èï¬kí‹÷@»q:+Ñø¼Áóå%oñX Eaw¼˜öIêqIŽ'‰€ý½'®–ñÙEU\ îÏ„ï½åøù\xýÄzßÔm„no´ú’u„%S䕾µ/Ô©>ÛÜtì|cÐ.â²0~‘Aغ’1<•"Érש*ÿ°Ý+¿ëïç€íº"‰Bh†BÊɨéžRè–G|[5}NðB„Ë”'ûð½­x8b$'8‰Bà^¯ò]È ?JµV©ÇûúéÂzhħ…@ÀòÑ);ôŠféŽçw j5šrÈÖÔµéåéK>… Aø¡ OD‹ÑÜŽÊŸ,‹×^(w¨•m»âœ¾Ðe®ØSH˜XÔ7è0šÛ2tgৱå U[¹+såR°±î®b…Ùß߬›`'A }W¡3„/œÃƒöÓž’h +tÈSäïe{K¼¯ý@”«ð´`]³•ï\Éf1Æ¢Õ»HæøœA)Yê˜9W´”'pþü;º_X¼)ŽM+!ù8à]nN ñx1ܯm&!j·Ë~vµ<·úÕ ˜V¤ÂÍ\_ÕѦŸ¦~¬|¨:3d*ߪÀéº0’s^éõ.xO8³€»Âú‘óð;ŠãÛÀõE\ 9äB©Mq~§rB ’V`x¤™àŠSè쀻-=°HîÂtJ) àú)‹…Ãó`ÕNBõÖ¬YfLã4hШr°wA¨¦/ùªšúwJñ`ÉÎÄfp˜]ºˆ…Ofï„·ŸŽ|íO~Xz8Ž½!QéöäÃêAzI6-»Ø˜0Çg L$˧⢵ŠîúwY¼5yîáóÃyUBCvMÓQÕþ˜®-4)ð9·~º§K³Î8ø)4Ñ—¾Yëö+«…±Bð¯îCur^|­t3¯Wöð‘¥)ÌÕæ]ý}/Áíª>÷ˆ4ëîR3øVµ•ÖpâkŒâÃ\H¬1‰Ç¯^´(WÂïA È2í¨r‘­«Ák$SsWýHþ§àž*U­sX,T»eçÔBï,ÊPÖ sy~uL/ÒGmÇѲâÄj®¯7ëZCr;±QI#zþ»\+þOѯ{-+sWy¶7¥ÛRu™RWOcVÕñŸè¢u—9†U†'ŒÇë—º¶ÕDOr¨Òt;Þ~?ËùÊ<)ÛqaÊ0\"Ä y)Ž/Õ%•qÉ£ % ÚåÇ àC1 u‚«øÆ ÍZ€E£×iÊéo«Ž[±hÒjWhCD[p#"´¾VuŸÿ‘X,yA…ƒH¦àó2…‰»ÞA°ª:\Wø„’ö!ƒ¡¿T“T¾‘nµon‰ÉïcÏdŒr±åÉÁiêñVöõYÜTz.i(ÅQ‘Ö•¥7’Cf®âˆ§¹3>-a¾S=Ç—˜¸ÆMNÒVÙ‹HüŸò¾%Ðë#>>²ó çBcZ*Ò5µ³þH¹f¿°–pœ¶<%_O’eàoxŸK¥Œ›/"ˆ/QU\¾Ê§¢¥ÞŸ ï·l¦„ÔÝöC+³íÒ[ RIÿ¾÷cˆóÈ£Zó +>¾Ý©«ÓÂ¥¢Ah¼©øåÂÁ­çJWh4ˆ¶?ª)CÞTà—éyºi f3ݪG€»FøˆŒ¦Á²[¿œµW/ä´¼9.0}Ô–‘ ÈñFæã,TáÌÜ~¤×‘uXNì'xp¯Î}¥”þ³2É°ªºëB…©`=É:þÍF¥¥i¯,½“VF)£úý› U –’Sõy´0›Ìõ6§[1™1hD"g™µ™¡XÿšÙ:ìvsèâ•dÉ/£Ýf‹ Á` YjPäy!ãï¼ËøyNªÝ ?LD’FçÚÄ‚ +™ÅŠãÿð…þÿü?ÑÀÌrr±·9Ù ÿ/f˜´endstream +endobj +1021 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 2491 0 R +/FirstChar 45 +/LastChar 90 +/Widths 2523 0 R +/BaseFont /KEVXWG+CMSL10 +/FontDescriptor 1019 0 R +>> endobj +1019 0 obj << +/Ascent 694 +/CapHeight 683 +/Descent -194 +/FontName /KEVXWG+CMSL10 +/ItalicAngle -9 +/StemV 79 +/XHeight 431 +/FontBBox [-62 -250 1123 750] +/Flags 4 +/CharSet (/hyphen/period/zero/one/two/three/four/five/six/seven/eight/nine/question/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z) +/FontFile 1020 0 R +>> endobj +2523 0 obj +[333 278 0 500 500 500 500 500 500 500 500 500 500 0 0 0 0 0 472 0 750 708 722 764 681 653 785 750 361 514 778 625 917 750 778 681 778 736 556 722 750 750 1028 750 750 611 ] +endobj +1011 0 obj << +/Length1 1280 +/Length2 3436 +/Length3 532 +/Length 4257 +/Filter /FlateDecode +>> +stream +xÚíTgX“[³U¤÷¦4ÁW"5¡Wé‘^)R$$/ „„"ÒUj!‘"ˆØ* ‚éÒ¥HWš€~ÑS<Çï罿îs“?ÙkÍÌZ3{v„OZXIi#±® ‹ÁKA¥¡ª€®©•=@¥!ôº8ŽGa1zp<¨ +@UT €6Á€*%UYˆª‚½0 ‹õ ¡Ü=ð€˜îéAJ€¶7ˆC!àÀŽ÷½É5p4`…E @|4 Fç~døç@?ç"¥é¡P‰BàWÐ…¡—ùáÈ㆔þ€‘Ÿ¿(çG6ˆ‘MžÈ‘X :@‚nô2fX²Hvò¿aê÷â0m÷þQþç”þ‹‡{£ÐAF`½}x˜b‘ ó{¨-ø‡9S‰"xÿÎâáhBãŽ)¨¼4DNáåC‚H á¸ÁÑ~àOÄ ·BßO#2:0cmm‰?ïõ'iGaðÖA> ùýó ýu&O ‡ + Ò”HþþõËé71} ‹DaÜYEŽÃÁƒèÉD>)ÁP…A‚Hv,#ÁâÉ)y4!€GÿãZ!€Œ7 +Cðûþ €Œù®°Hˆ!DþÍÈ’C h<ʇ,ý¦HŽFü~+¡È€¾”? bÈ ñw²ôó#säËÿ%+ºÿØu²Ø¿9² ¹!ltÃÿBåþDÿØ°¿`y@…qCaPø_îÈ‚ ô&wò “d0 ûϧ准ûyübÈÍ0¨þ*Ê€Œ‹ÅýË…ŠÊŸè¿]@!dEˆB£~¬Û? èßÄï)ä6]qpø[‚ÜŸðïádÿpŒûÊ Äÿ–£ðOî÷Dr{®pÜ/JÆÁ‘?_âð¿—XG,%«H©(’— + +U””Bþxƒò%€†zäiC ʲl5‚€Ã‘§þó߃ü@þ:»¡È +Aýð;,BíŠgZŵâPý»=%T2t»­†i^ØU…f¢!V +Ù–'Ýñù‹w¦Ÿ]oäòêå6B¨ÝâÀ•óÍœ7ó8JŸÅåÚ%…+4HYqEÅ¥2Hˆ.6úÚ¤“®Nó©6à>dÄ +Io +…µ2f#çu.Ü­ß~ÿŽ]üÜ qA^¥á{4ã‡qì;±^–Ö¢Xí11´àòƒÅ‰öºapÝ„™¡wróïí•°œÓ~Ù??ÀüÆjžÐà¸Ì#-¼ÖdU¸Ê<øƇ†ëmÌñÎÖes:ú~×ã=WZ¦eÃÏÖó›oý ç±ÇÛ*a–Êéy/Gñd®Š§Ýsæüã‡Ðèïó4¼¡;…p/Re +¿Þò%ߢZíó\ÄiãŠtûOùµ ïjB94û‡uwsèÌ:¨ãdM Ͼ¤Vy\_’áš]‘ïx×s6ÿC¸÷!Fž¬Ë–N•ôDs8쀚ørö}ük%*hõb±Èì(®¶õŠ@+ž¹­Á±mÍ|8Ø–±I×?]ªS2ðqÞÓ]¬Wž>[8u”êudc'Â¥HP§-Ë1«ä^‚x¹Ç&„².xùIýú‘ ž›íZß—Û›Ò·®2Xçd¬Šµ|2NÈÅ]q!fk PÐê¯nõÝ´ô`ápº<¸”)F¯ùk¯äq6¬Ç–+\ª«ÊYÐ:¥ànå¾—j·ƒ|ܤ\†:zð–±ñé°«GâId“í2GƒÈ7x>ìØÿÈ£½õtw¬å3}Ç}°yåäldY|àÚKáéåæ#"&×sž>£dÛ÷І Ÿ¥½à­ÚÔ^ÓKaÓQs¾I&µ`ÞÕY«¥ã {üŽßavÉ¢²¤«nWWæû}ŒŸÔ—&¯ó—^˨0=1ùÌmo~]ïÆYWT;í´²@(”[jç˜s¨Û,Øá’¨—U ꨄ¬ îÈóvUJ:ë Ô¾6‹Œ‘±ß3RqVÚ›JŠ,Ï}!–?%çØCs”¶W?òÕIڠ؈SB*¡ÅCF*i€êH÷Ô.â(Kƒ›¥ýìÇž¹S_éÞbW5ó™%Ûr!*ŒVÇ[]¯¡Ê7F3Ï®) ž:oMÐŒT{s’v¯È辰ûÇsÒ{ÉÊ®·^«vŠOI’f?û~)öN²bï¾k™mÒ„][Á—à‘Ì}\✯O®=2îÞÈj_èì¦XÓñ-}℺jœ57±Y~+n‹ÖA\\>ß.²ê¾V»õƒç'°v£áqè§1)J /Ÿül‘zì˜ò´¤­áÒçûe$ó.Ö1êÝÙÌ5±Ñ¥Gú\ü“⇠049N lÝ°¾#â¡›"ìŸvm¿]b¡~,Ê)‘_NœÖüèP:qqP\F·RQŸæpÃ!5Ê=™ã™ ^¹#’ºCúÝ7:5êb¸a¸•ËM$EÅub˜g¶Š¦æÜߢ¼½Äyn±]¯Ü¾1lã#~8R³¹õyÞÄŒ:y›uAŸS-bCðT|‹ÐOãuÆÎ8‰/ÅÜåâøx+Ú¿úÑq‹¸}=³ó™I!7­¿6½±8ñÒx(ÉÉ9|ò&Û3•ž¬ö¸'ý#>Ž Ûzž®Ò…HÑ=ÅË;tÝuõAL=¢=õ9ù”ÎÀƒoì9.“Øí/Eòy ^<¯ZFÛ¾OžMIQÜìŒíF3H¶šDƾ/ò Rê×)UŒ¸»ç{Tƒ•yñ¤ÈF1òôñ}¤RGöb)Âd=r,ܾ­oǧÎD(‰ë¥’ûG²6jsýC³X´«†ã`ì¶Êec¥*QüJÕ’\µ—¦±v +îX¼P?xB=¿7[–µp#{P™/êfÐÖ‹ÉvØlÅèùˆwë"øÒÙïéÔâá>ZœÕN£È”âacU8£}}×+Æ-nfâël¦ÜrÕ]ÙÏ¡"‡†Ä=öaùê9>p]6¾œN^%½ì]ÓÞ.sµtÎ;‹—Mû­›6—ôg*50÷ŒFÌoW¹°Dˆ[Z¥nº$Xî/ÖkF‰]ã“ÐÍSbVÒePN©5ç¸Q–dÀí¢Åà¨~:al-‡“ŽNá©Ü" +Û³¯#iŒ±Ö»Ü0¡ºyyÿ«™xÜä¥ê³gîÂæ\Ðòêo.nÅÍØQ¶+ÖõRfÕ=¸(_Þss’Î~êÀ¿:üÞióœ§7<7C'‹âk‰fϬ´y³?_+Ù÷ïY¾š,:–Èå‹3L^ގͺí—DA»h¤4ì—vÛÔf%ήx)‹*E$•\á÷—¨€ök!êO5­¹~íxÁ;Ê›÷V­Ê§Œ±2ÐÆÃá轘êìdRŠÐZÛC&6}a–~h¨¹tp¹Ó¤HoQ½½ØÖ£66N¿QŽUEÜ?8D%Y4-ÆdpÅeLÏÞ)^ýº—oAßRþSÍ,»Rßö>‰.à¼8 |vr‡}ç +Ÿ^Oß>{¬mF’[“û‰ý+2ÓàÖÃ8RCRÿ¥GÒva•ñF8ªïàî†1ÔÔùLr׉® †Vy0RâÑðü†ã=Íûª®%I·SWÔ3‚ê½…ìs£´)qálëé zjG·•k\œ’[|Ò[ÒÔ²¿1Þæxô⪀y[8[`‰±`¢õ]¾§Õ²¾?µ2“{üè`Ø~¼&ðÚåŠÈ@ù´¬Â’Ør/ ¢ÝA›oå›/lvìÌÙ +ƒ£œy3Ìù„ªÏÑxû!$µcKcj‘Gü—ý×/ÜQ×XÃhZ”8ÁzVækÆ™Ž`õ¥·Ž·Œ_ùêú„]dM.—µ«B¼8`Û*Ó̃̉X 7ûð¬(ƒK–éUŒàÓê°^öN؇0©¤>›«Bù¦nÐÐsÁ‰®-©,Qø\0*ªÚÔÌòe)çóùDIO›†x– o¦b´ç”Ó°`ä&ʽÃSݹÀ¸ßÔðØÁ…¿Åœ§7›ŠÏÚø×÷úG¹X)skÖ˜>!jßæV]ÜõÑ%ØŠ?íŸqg¬Š™Õâ¼løé›Uk ü»ubjTYtO鼄*ÍYíÌ ó ]ºgïœùO¨Ÿß ÏNw×tÊ[xÚ=%s˜¯œþþ€¸ˆ[S9áÈʸWX¶Â}f>™¬)Æ”¥29¦UOUï"ÍŽc!+_|x†Úæ`©{¤3ù•Ï‘ZÄ´x–<¦;ðè©w¾]ÍæÜï‘ÈõºþkÕ6­®¿ë£rRÊ#ÖäÀ—Çê*HŒÙÒ-ˆâ@-1z¥„×2Á’Õ¡Úey‡FVàC§„úÔ‡ñÉ#ÉŒ_yøDÞPœ#Á5êsD#IÞ6>$ATö‡}wu¯7I»ªT9RšÛBÆЇ‡x¢š öÄð üŽGgè¢L®)}¿L=jvý¦ÉÄÞZŽNCýAÛFi Ê´ÌpŠ›ïD’ÖiÄoqŸ¥û¦ÜªÉ8²¼%9ô¶ÛóJ@—VSæÀÔ𭺶ªqþצÄa5Ʋèæù«ª1lŸ,ч@œÉ‚çí)Y©õ¶ù%ÆÂ̬–Ø„¡G÷ãïøY{•y3ý^µXñ¤÷4ÆÃ(.;¿¢¥e)[A;aŽ$fï9>> endobj +1010 0 obj << +/Ascent 750 +/CapHeight 683 +/Descent -194 +/FontName /BFLKAA+CMSY10 +/ItalicAngle -14 +/StemV 85 +/XHeight 431 +/FontBBox [-29 -960 1116 775] +/Flags 4 +/CharSet (/minus/periodcentered/multiply/plusminus/equivalence/lessequal/greaterequal/arrowleft/arrowright/infinity/element/negationslash/universal/floorleft/floorright/ceilingleft/ceilingright/braceleft/braceright/angbracketleft/angbracketright/bar/radical) +/FontFile 1011 0 R +>> endobj +2524 0 obj +[778 278 778 0 0 0 778 0 0 0 0 0 0 0 0 0 0 778 0 0 778 778 0 0 0 0 0 0 0 0 0 0 1000 1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1000 667 0 0 0 0 0 556 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 444 444 444 444 500 500 389 389 278 0 0 0 0 0 833 ] +endobj +673 0 obj << +/Length1 1626 +/Length2 12460 +/Length3 532 +/Length 13407 +/Filter /FlateDecode +>> +stream +xÚí¶UTœÍÖ¨‹{œÐAƒ»»»»kã4î–`ÁÝÝÝÝÝ-¸»·àzøÖÚÿJÎÚ—ç\í±»oú™U5çóΪ·F“~‘W¢0¶1ŠÚ€ih8B22 ô€÷ßôô¤¤Bö@Gs°#ÀÀÁÁ +t²02èÙ8Y˜8YØHB6¶nöæ¦fŽ€¯BÿLbXíÍ @G3 õ{#+€’‘9ÐÑ `ePüg…@è´wÓ"00ŒÍ†@SsÝ?N Û¿ÃÆN¶ÿ3ä ´wx—|ý—&à]ÒØdå0š ÐÉÚ¼W¾»üÿ¡õßÉE¬¬d ¬ÿIÿ¯NýoãÖæVnÿk†µ­“#Ð cc ´ý÷T5à¿åd€ÆæNÖÿ=*áh`en$2µh˜ié™ÿ7w5wË›;™L ¬€ÿŠAÆÿmòÞ¿yÐ K) +Ê)Rý¯­ý× ¼9ÈQÙÍ ÿ3û_Ìð‡ß›doî +Т§¥§gxŸøþýŸ_:ÿULddcl20²° ìí ÜÞÑ;±<æ c +èúnLG ²q|_xïŒÀÄÆáŸ}}ßz:+[3ƒÂÿŽ0è Ž˜t¦ÖÖE˜tÆ@«¿ç°èÜÿ^ÄøžÅÚé¾Û›Ùü‡YØt¶ï'ÂÆøOˆ@gdówVzÐÁáOà]ÖÁÊÀÁìO佌é?oÊû^ÿ'Æ øCï•ÿ€Nè½[ÿ¡w‘ÿÛ{-±?ôžSê½g‘ùCïYdÿÐ{¹ÿûû#Èÿ¡w[Å?ôÞW¥?ôî©ú‡Þ+¨ý¡÷ +ê轂ƈ㽂æz_÷§ïë ÿÐ? þ³côï ÿÂ÷çþ…ïª&á?gà/|?fá{wÌÿÂ÷G±ø ß,ÿÂw)«¿ðÝÊú¾¿&t ¿ðÝÊæ/|·²ý ß­ìþÂw+û¿ðÝÊá/|·rü ß­œþÂw+ç¿ðÝÊå¯WâÝÊõ/|·rû ß­ÜÿÂ÷BÎ@#G›»üïwƒ  « #€†‘…þŸf²¿Ÿ/z¯ÿ÷D¹PBÀBÏÎÆÄÎò¯¨‘“½=äø¯[ùýÞù61¿ª€@W ÂÒ¼—¿EbC`±·Hîd 4…~r¡ÿXG@]2íñ:Ú¬}ãOeàç+ÔT óR”„S©r:c–MœÏA%º€EÔÁÙ)J°çFÇÚºC™=­Óƒ-îÚ6R/ßl8w@WJ2°åàœ†@/Ì¿üö¶ôß\BL2&ÞK@ÐÉl•ŽªlD>žˆÙäÚ,åai§Ü ¿.áô¬M[®~HæÍ”œKæy†§§p5ÙG`Hµ$\RÏàTâ„ÃgUÍJ€áò|IVçmn’’9ƒÛ™¢àØù’Œ4-áë• ®&¡r‹W’fTŒgÅ#–¬êÑì´æuÿØ­RðE³¬šdä‰c°mŒ'UÔx!½" ‡ºÖyzZ¿{ Åé<7òø†]¡FÅžÊçü•ê˜bŒz&hð‹†Yì/G>ñuDþÐë ¾-Ïæ{€:ÇÜ7Œù¢ â%F„CÎëÄ,jMªš¦ÁmW0>÷VÎÅQ_gh*£®¨Öº~›òÕPY}W®0zÙ(Á&QÑ\’&8›ÅA¬/¼èø\ŸP´w•fKÝÓ®Q'fížh,¥œ¬éÓÏ\{?TO Y ¼¡÷üð,#hO”)=ØÏ ;¤ÊôÝ&ÙËj‡1É•=i-K‹¥Š­Ý.9àãK8ª. ³<Û¯šúM2í£•_¥|n()HõFÊ.Q¢äŸrôií5øÚ:{@ö ÝŠgÆ69=.mÓ×iÞBż|HŸóËf‚`=NÄ­Å[÷ï7ÿÛE1'DT‘¦1­%Я’äµáMsŽ¿ö€çÄÁŽÉŇÞÎ~çM-RŸ“c"H¨ÎAD_(ƒäŸ+ V&ᣉoNfK™ÂkQV¤+P™Üƒ#–RmÄ9ø‡„.FQá%Ñ»&a°áL(¡Š¨²ÊY\é$o­]¯—áÈãSÆF_šy½•òHã¡KÔÚ]ZZ•½è3:Q¢úÊ~ÝPàÌ’¦}›ö’ÊUZð^nýØUßì}F^&R^£2•d:  "‘÷S…R°^Õ!bÛ+N©»ÐŽ™,«“\ Œ¡@¹[< Eª‡í<Ò;ÙÖøèê1ÑÁîàM”9MˆßB"ìÍßáùï;fGÎ`ô"Ä—EÀ[n9—ûž`»l’R3U‘ü²Xç]s‘°Ò«ÊæVöK®L†¸Ý¦ +épâ‡ø~,ïøÌcçO™ãÓž<……nAUö±4b’Èúðý@‘¼XÆ»%‚6|«Ê”îq’›æ±{\0¦ª€`t16Æ=˜_{=Ò²»bɶé1>À=ÌtkެĈ·ošòA™©È~†Qe³Œ€uKúÖqKÆtüFÞ"oò¬¦–T GtZ&®®Ä‘5—Ê µ?jAjx•™¡•M1£sÔ¼×µ ©!uÈü.ŽV:ýXEêaŽmc,¸/ÆÀYߣ¶áƒbÖ¡¼–ááy‹¬ZCl½Ëc˜9DQC™P)¾(~!M ù>½L¤y5c”"«™Ÿ$ZÊI]9À”ë*É +Œ +-=¯ Ý­Rþ%|pùýE¶Gs›¾Vß»Ì2¥?õõÑ|èúIVcàºeI"Ì.^NÀÔèUŒ¤& î È—U›þüæsz9ê õЛã£L`ùêÉŒˆ¯r^Fv=;É­™wšeheu(«Á,]hö™!`0…7/פÓçï*tÛäíá¥jÐ"DDuª‹lÍT£Æäßv3P³qÕàÊñç ] æ·8s˜½¶ë_®3»ºÊÜWår‹© ªˆœEG‹;#‚Ð’‰¨2JS#^Âò~œ"{ ÉÛâ›Qô¤sëæ­É€v%ñ‡¨*ÞéêÒ5ü”#ãçö=¡Œ’u‹ãèÿàÃáòƒzF6ó-©6ÿÍpÅ[¥Zû +¶Wfˆ=_Œ|iC ­¿3_Te!”k»K~S?VwLÂV4èˆù!Öuuè„­‚V¬Øñ9Ž‡#DLU‚Ýrš)uT¤ev ¼N(ÄøOQç]`ÐleJzðÉl} zקÛÆûÑOáøÌêàrô˜Q¹‘B7£²ôšt}cû´µQ¥k]$¾òÀ[Þrl}”ïÖUWšûHã<°šW5´ñ ÄÞ ygÚp䦱°É]Œ`é=$Sç¸Á“ÂŽ>¯2œ¨õMä\ÓĈñäæƒfZ«ÛX³¬òš§˜›ã‹¯$œ¨´cKñ“yÁoÁI‰4’wÝâ þk$<Å/yŽdíé!ξñÔg*sç9Ô$8…69w¾Zýí¼Õ×ÞýO)1çü¨5¡¯¢BvO}{Q›÷;°»`YÈ0*Œ¬d:¿²,h9>Vãú´èýP¡KpkÒ›üLºÒ¶®ö+¶"Òyš[Yf¡,ÔC-ïÌâl,\. +Ì•`=n¹ŒK3XÅé`>~ÜÒz€@§ò~&¬³PÐÄ|Úÿæbzyfýë§[«Jó}¢ ü4?nµ\*‚¬Où–_íÐðó.Ûpä÷QÿÓÚz:­ýu\|?¦†Þª¤'†ñØeWj®pòfÔ ¨®ÚfæÅë0»©üºþ+¬åÚAƒÁFuW»bn£28Öµ¢aMkŸ¾·ìÝNºWF‚ ü—„}nQÒ£žµ žß.ĵҤdöÖ:‰51>]EÒª@ñm¢k«®Ý™ŸmZbSp¢~ZkíŸ;-aà}ô¯ìߺðQb£UÒ a¬Àã=q=IìëhOˆ½eíLB4uh=¡$ggSõW Tj?Ep>1Åîº?Ò÷‹ +üª:6_\(æÍd;WãÏ¿ÝžiÚBeYî^·áEŶJìQ7‡µJ,j¶,ÚÔýÂÔ:\üèH‰Ëe”ª˜ñmfëf= "¢LÆ«¬tFÔÅEM7Ø5&\N´^FÖI(PŽê¢7\ Z„–Q³r ÏÁ½&o‚5'Lå|ÞâÍ/Y„Fž3}OÐ:¯çøŸß#˜ÑïÔª¶Ÿ‰àaœºÜQñ T–¾Ô‘ÝƵßÓ¯hEïbt˜Ñ(¬":²‘ŸÃÙ?ÀZãˆùP3e€©_›©öVBƒsóG;EÕ©2.Œ¦µ…ûþ˸·†2#׆ñdc ëÜÔøRѹQ^'>ßHï‘‚¬Emðl å¤kÐ&ÄK.ý\ to†jBr;úÊ[m@IK›}AzUH> ‘¥{Â*È#wØä7}{ NÏ\‡½À—ãT¶S_ÖÚuTÙ–¼ö[PT'l 9¶5ú +CæwŽä‰©_L f1»”¿/£cÁÖ|ØAÚú£“bÁn7âsŸg£ÆÊ*$)¦žTO®»¡:`C™1j_íþí™Á§—¥Ï5IV°˜Û,[-‰ƒ§ÐlG>ïø¾ÊÓ–½F$zýt­ÄTO˜%æ ¿k/M|by;»QJY·43–àùêD/—¢½¿Šm’·|»B CvÞÈA‹Ëœ§“#ô·V.*F’ˆæPß=°‘É{a,zÆrj¬!­•‹HÍm¨!zÓlF̘Áa©VšrYÃß>ÌѶÄΤ>«/C¯‘+íKvšœ”î“‹æ £z²r?<5dà°ðmG~­w™ªuCZçöõ:ÐB÷™œ>ˆvE¬ç|ñ&1O½¯Åœ€ÌAHù‚¸uÇÿ×8$±ó¯ð+Iø/Kø¡ì@@Â$-Ä„èz„uo=8ìÉnU+Â¥Aº3sg’FÉOÉ.=óöו¤¤µiŽ•Ï.¿Z‹‡®ª)E/ŽÜX¿5þ¢šÌw{ò2ÝŠÆ+ˆá…€Ewà˜S†Éë—•™òÝa•ìÖüÚámZh*¼j1‚–kφÓcÞè\tѨHÏE§WøšÎ¼4ßF·ž>$w¶Ó½xñ+4èmä¢úxCíÀ™‡Y[ªVvÐi ó[|²Ad²@†÷í=X=ò§ÕŠ¥Z¡êgç_Š‰ªëçSRÁz¬•xÅZ“H)H<”¾ÛîR=_\‡@ÓŸºž‚Òœt‹Ç»]åA1ÙQ:÷J‰z%{zœØ?K~¯úááDãÜÎg—Uô2œÀ3•AËå<{1Ôx—&÷9lxŠ–@ìúZqäõNk?—XD ¦P}ÃÀ}ðgEÙš>tg±ûw¼¥Îä d&Ø2¸©gs…Û¢ŠzG;PTÅ¥Ê/j¥ +"׌…zË•e®Î&”2KS +ª`` +©«~ü†™€gu¡‘Æ4ºç©Öæ̽¼h¢Ï>ª÷Æ{ê½#[ª7úný–"çsOtE‘¯U%ñš +Ú&Îÿ’…Øyõ«*Œý—­Hƒ'_ð#¬XËèWÌñ¼t¯ê&=qˆ‡•"8wAìÞkÐê˜Û®6<%ðêB4£‹[âЄů!c)cù„Ï‚ò‘}ªÅMὤågijïi¨>jByDÔÊ%|6[+µ +M ãXñ5‚`Cög Ë„a÷½ +CT£}óøà +”ðÏX΀@xñ”SC¢øãƒ|àòà‰as•ü,T Z·¿…Uï6«ðtû)]ÙlAãÀï³GÕöQ=AïxYþ¯µL˔Ĥ˜çñ'eì…ðý &?< ×Ú'v,45ˆ…Pïgáœx47‰¼s¦Pªt­ˆRªú ¤¼´”Ù¢G|hÕ»HôÑC°½ÒR6è´+Ë/MM7ÁaáÛqÒdù)3ÿuöC](:ÞÇÒäk­ž]ñ#D…kí©Ì U]Žß®çnÂÜ~[6R\Ÿj"ŽÕˆÎH’ž—»Ôù>éWUÜ-,1ýÜ­t Ÿ½‰€îtÄg”T»Ò6Àjú./ ÂòP%®õŸòøùmÚBios*â„ û“óD~:÷îîHã»P½iZË÷ûÃC(­:é™!î̳c·Vã=B5²<òš¶jß}°JÜð¨Ã]¿à°Í¨%Ûϵ¦Ç$›¡PV~,>Võž0,÷Û23¨\ÉM™woc­>“ŸÁGc‘ÄlEÌfv­BE¡©w ëÀ îìÈ,Šu×¾8>W G=Ä.¡·E˜Wëks(ÝdòfÙ§]€³ËQùå¨ØV°J»j„e§GN8¯ž­g¾v¯Í¤±jR´à9 @ð >§íÁÙòÇ&g EÅ¥ ‹4TéÍ(»”ž[PtU°äÚ®ÅâtM¾¢©¦MÎ^gBääÞsÞ# ã(Lþ €Ÿ}#}^øüâ=^˜ÈÂb`FÜûE£nà·ï#(’•….ú8TdÜGM¤c@Ç‹RÙÓ!çWêi5ÁŒV%¬‘¼8Ñ*¸iRacù`–ÃÐ÷ …—tp8/SZIM"¯$†âóh€~Ä:ǽªôª/fƇ9>.g¿·ÊAþèÅ©pîo´£A ´ì»íl!ð}šŸæ‘ÈyGá + Ϻʭ½<HŽ¾Þ²2a °‡Ž†w>~aWûX{:%ê`òÏõ"l¤ÛWù™¾ñýZÇMK¡%]|ï>}t/–ÒW äq7t;œ´£Á•W÷K$%i¢Kب“pùÜ–8vØR|Ntçff{“<´Ö‹XG'ÝbÏ”aŽ¶0dñ ŸÓœï_øhÚ¼¦d˜®~cµã†8Y?nM9@òÀ[H™@ž2½þ4 Ö=i{z¸³™O_HnýÆÊmž=â“^DWN”h +9ËW›…ýúàšLüªàiÌΙ5á²>F|vý[¤’%ÜàÈ¿ÿ½ZOì*.¬°*Ž—ðµ3JCɲq”Å/\MI³$‰I€2yP÷`¸†j¦ëA jõ \ç3{Û^ï°ˆYA‚ië@ ÿ Í&ë²#FbJ£€FµÖRö¡3 ã—'MŽŽP&ÔGlBÛŠ>¬Gwño Éuý­½nZ‚{ÎN¢“6ŒûTÏÚþØ|¶àì‰Ù1h`.: aç]sïATŒ$Ñøä.è®XKº­ZçRû ìͨó±¸ÐÏ#ŒJŒ£AœŽx?Ü»O'ˆçK|¾Þ‘ib°"tÑT ¯ò`vJøø'…ƒ"éÝ„ÚØ©¥Šƒ+q"궒R»ÈÇÏ /“­Œ9¶扦Û&p™F:_"š’Ë$¿ÝòãØÞ9D˜0ë6×Õ×,s Ýé›kp!UõM¸ì+~ c¹¿œÂ0Y$¹};»ÌGv¿Ds¦h@lü @[õäDHw±m­M7àÄxQõƒcí»Ùh;ü\çÕOĘÁÒÈq̯ôæÇÂ\Å1ä¥(ÅÐbÚ¯Ö(³‰âÿ ðƒ$ÏW jØ2àðSc×Ì뢢Ԣ‹: ÞÄ;$.¦Ng+”«æpa`³€¿hϵß$ç¹G°º²×MðØÿ>”6Ðß>JA@iÈÖ`.{fü9‡Y|q§ÐñQ–¼c-fQ”D óŠÎ~Ö=8&éd á§àLÔªÈWåiXrñØ¢nâ +A¾™>ó¾â~Iíd}nz†)ÈTvÅ K";PÃ/£èä««Å9ù¢æÚŽ%½u /ን]HÜ|7(›§™¹9€?€2C°YñV^ÕŠ¤Ä6ÎIèÐö°u§›a$PÛ}€ˆÇƒ¿I˜>åÄ€9Üç™ +>Ý>a>oáPDz»Å¸p'ñ%6üDÊ_Éý. AÉi27ŠæÉ@sþÔ¬0íœÂ3! ›_M1ïŽÞ‰HJ^‡•Ñ"ð²*õÕ‹"É1±ñg2y„UÊÇqø°‹p`#™—seBæó»a΂Òõ ;ßUa±+ÌÃ-ŽääµsJ}*þ¡ò|ýw‘ïv-ïÙ Õ4·¢6̲ƒ×äuLéæîh{1 79ʼ§ÌGá—Ý@ü=A¦ì¶ægì]K"W7ÛòÏËÐaÑÖ‹K“¾Žê{¸ðŸ ùp/ê¾l‹L*‘—D¯m¦‡Ë”Ão™P{?*Ë + Ó59E<-ž¤ËººÏàVŽú$(¸:æœËŒ¬£ËŠ~˜Õƒª×‰ûÚÍg{å!pÁäˆt8¶ÀŠF#•GŠè(¾ØùuRÜ5mŒ­xŽè§4ÏZÄ‘;žGëNáÃ_ú¬Ëþ%¯é¨9Âq€^k,‰šE”£Îdk¤§êQè›ÉWŠ0*ø¯>0PµqêhpNñ"Xi +«Ôr–tùˆŠ“IUšÕ÷\!w쟵oÂÉdDM>"WªWŠÓÛ®ê³rI÷$.Ácõ1eüõ¤ð£h K$]Ëa…dÂ6"5×™ÞbÑÓwÉ¢±¡´ù*¶YK÷×Hð6y„t\zðf«Ÿ Û€©*ƒé'"–Vø>! Pj}ö€“£ô÷½¡Az·Ìh‚ &eá'‹~cº’N°íGÜÊÏa½„ð(±«'–/Pϕ॔â2S?v(¡ÝÁ¶ +¾¼µ¥WH…îü†•‚´8atú˜»õÍ¥—Ÿ¨]ûcñ“æ° éüµ×œJlr[fÁˌݔ’`I’GÃÄ(¾ô8&ƒd¨•z¨TàK^iôgiyO&€SJ/AlÎbç¡Ô'ؾrýýÇ`þ.“¿õªÜ KÆ ö#>ºp,º"z[Èi“j¡ÛrAU“¡M¶¢ìÄ&ÑhÔÓï«H^ôýÂ,ÖLO<­ƒ9Tø1?“Î}h·Bd{¾Dê >©·-ǹª€Ï+®Ë/Ä\s·p1IÔþÂÂÖVòò€ßÀ$•y‰âÐÃ(¾3É%WèðÚTH^ßÓ~¡Þëû–"…û3™{òÉi·'ůÇP§\­û(冿D)L€(qágÜ]òœ"aKÍ w÷¨wÁÄ^Gi¡Ér¾˜m|ÄEYO_M ü° ¸Œ*L¸ëÆD¤©ªØ˦Ô¥›IŠ¨PeúqWqþò£×¦ýæÛB:vâ¾ja?#©Ùêðf®(«ä¢vHüÜÇÄs”!3ë>fN«f5§ˆMRò2Žܵ(%J`V®ŠÂös0zìʇœZ+I¦–ç'Néñhlqí jÒ÷¦ùM>yÍ×6ˆ×*cƾæÚr ^%É`¡^¸ÛeÐB$ëgÝ3iËË…¹AwÁ i±„|jPdßzƒío…f +Y„ŸÄFÙþ¾Û{3½?™‘Ë3¡fL‘,yÊC¨zÃZT’>Kyîô#¥ýžIÎÞílí휮¿5]ßL<ǵ°-nö9 î­F;ù©žƒoë¢8¢ˆ?µòõô)cu/fŒ¶âçâ â‰ßmcìGå™ð³ª}•)¾üè´W2øy>øøШ =Ðf7xÍZdº¼ï_ùxÁìc[Þô2€-×Ks:*ØrïS,üZïëÄ×^ì2¥'U·û§¼%Z›…C8ŸúMš~O ·wŒ½:$ìAƒé‰Â@R[-8 þÓlózó}rÛÉÄ€H{Êìi«dÊÝ°½—À ‚DuÈê>Ñ"Üui;–Ï8¶–¿LqQ/#Ǥöçí>V³Ç”=¥ËA"=›¸©ÑéÉÞ´sàVF¸½¥ªüÃx+Êï5MêÁùrÛ û²RĶ;¾¼ø6ÄfA¥/h›_ +`_‹'jºXqÈp}`+JHõ1HÒç.B‹.©šøœöˆÝ|¶5ïeµò=I4ˆæpý®½0Ö¿¤“,g¨a3c>AÀ“2>`ýà1Ý0Ø4ä™ÙÔ> œaìW3dj7­GÐìƒÕ×ÍoXà㜾kºsý]Úí‘ôáÍVou‹Õ5¼æ!ÌÚSo†!r‹4ŸJn‡&u²…³¹ìÌ“ -nï’³&8ÌÔXÈœwR$‘j|zŽ|4œ‡Lä›Ë¬¨exžaîò—¥J-: +…f\CPÄg‡báôô X×ïW·Y•KÖºp‰4?™#`\ý²mz­’7Š^T $‡a5é¬Ía1÷ÚèSpAåç™oÛ Ü5¤tKð <ô\Á ¿¸×ÚøHn´GŠq;'ùsœ}8MnÑ:—ý0z<ò†ËW÷1kÔtH‹·RÑ#fí»vÒêSãþ$ +¾Þ6ûVÖ…ëNÓË[ãî´U$‡ˆ ”Vk¿í¿q(-G àK};zü©ó˜î‘YÑB72xI~'¾jÎÿQ›)ú¹q)E¸)qyIui”œBý%$jÜ“?úSêTÂá`x,›Õ‘‡”² žÖe<‹íÅD'û5›j-W£DOè·$~ÓOºï=û9Zfz®â†Cgl½Ã å ñ?לs΋{¥ô¬‘àhò×`{!U¿’}¡hmæÚxŽ0þf¦Ëa%s9Æ"ŸuÃüsmÑVv]­æ#$ÃhSZKY3i¦¢° Œ1f-–¡0—ÁF8pROÀ¬?‚²Y«â0ÅX8½ic¸¹ðô¤†­~² þbÛñÅ·_,i±e£“·ï%†–M–8÷H¿íåðnê'¦Ézx$+Û$Ä¡K®c®ø&L©ødžZ}FfõÙ .ØG›Úï‰VÈSX_,AÑ×@¦ ÛŠÏ©5œXbH¹àh¥+%•Âå“Q?á´2zÊJ¼ˆg“æQ&4³ ¬â tX9{”ÂÆ”Ù)„¸c¤$Ÿõž¥Îx.·å‘> j z(OÊŽnÕè`/Võ!™­Ï±¹¸…~Ô¤HíåáºWâ«hçæè7„šHê¿þ¹æLQ3¦TM"¦h]wÂû è£!)kû²>Cl©4J"bCŒîE†'5kâŽ2ñpTª/l(ö¿_?g2\CTOï'yQÕ1ˬr˜ónªÀÐÔ  ®U9 àŘÜ^çê6{Ì~¢ˆÎµ`üʲ^‘9*U©¤u¦ƒÇv¤Nä œ¹QOŸ¥Béð \ý$+ûðÓôXöŠû¯"g*ToV*Ö”H^šÒˆm·í<·¹Ä2.£ +øôtth“ðµü8%w\ìèAUHÂdP_°>ä~º?Y*pI+Ý:J8bÛRw7‘îõk‰ˆf€¾ØïZlç'o€~Å¡U0Å}ªå-:„T|¾×fûBÖ§«â–"²G­ÓL‰±Â0Í”‹lÂTª‹_<ݵ<6±Ø9ˆTºÊœr…´°Å´æ_a$Œ¯$ÿvÉF%üBÁpÓœ%H«4gõôÁÿ·?NûáÁëöjÁL§{$BöV!a[þü|JÕ"7¸c6wê|‘v’M6ɼÇ ’ÈÇíŽ|`ŠØQRìTR7Gxf}›Õ.ÞYH\³¯"Qß‚â¥e^ÃnÜW¸ +ÛEµ¯pƒp}NlØ,ÀgÉ·JêtÉ>ÂÒÁiâ-EïŠ#pê(¦´ ½X}/âÿTs¤µ©ß– Ö8Z•aŸÅ8}SÔuêýrêù] y…•³[D›] åÇ­—ˆ-#æ/£âðªB¨˜g¹^p›â+D—œ¦˜S +ÖçÐë;C8Рkòß°S¿]ŸH¨DÌ~BL×»„œ¯úÏÉªÍ %Ž[æ8t žÂÌŸ°ðHë©ÉŒ!Á2QR¾eüZ õaà¸é#NOg'k£žRZQ<`gnaË‚‡8VˆV‡.­¬Ý|múÚ2øcA@¿ƒ¾”g¹»ùÕXI!ö9s³2Î98$.§vSèä”ßW©~€”ò´Ép¯f²Ó_ŒÜºª¿×¹7Œ)ý¼$"®EZ¼l±) …(èý]¿…+ê-7´¥ Š©ý “M™DÁ³_(XÿVr(ÄŠïÏ„-÷V iqJ÷w3ìtw´}ïw‹ sºx«^눯藯¾ÚÓÃ¥+òÔ³s"W¤gV犪’%Ev~*S†óŸ–Ý3êœ Óå ‡‹:!ó¹ \,õôa©ªUSò·ÏÁ—ÝÌ$î!CŽx¦Dmp"ßtT,s$ÑK'X† ݶ¨°-¿t%xç‚ø¡ÇÈ–ºÄª©.ED.k|~ƒ3Åm,kÜ«Ç…}±Ðkv:цÑ0ÖN“O­Âé: L?ñ´ÁV)Ùf¸Aç0à¡Äü…K¹‡0âgƒ6Èĺßë¨Á½wÓþÛ%DAûÖk¯ñ׆§5GÜ›6+4gÝì  †ƒ<í +ù7Ù§‹Òaaúy÷ˆbpÌ\óO°}|ˆýËî„ ciéŠ:d¶*‚}ûÜíÔ¿c¯L‘™Å’i¥À|•†_j 4zÆX…I¥ëZ—ò\ü´e¤)uV_fN4˜TúÝO![PFT×ÀsÛª¸0Àî:@¾EA+íÂ`šÃûz‹©¤ø 8 ­WNCl²dr!Ê(‰Iô|Ü© RNî• „XªZ²§Ñ r@!UÁJn|7ä=jÜRZM'©•ÆÆÀÆ…–Uøpw>èÉ¿ÀéЈ}\Ñ’i}5úâ&$rXDN5[5®1­žÅö”}àüþC>¤Bßjü©)†^T ‹ð1NŽ÷\‹ˆ©àQ4Û±Œ?ÛòÄS8|Ë¢\EM¿¼ÓÝa)¿&^Ÿvè¦gš6±`ò<Á.¯a=vªN°9~Eó§xUBP؈ +³'†ºîp"³d^ß +ÏŠ$Z3 G«$ð7¿Æ¸§ó/áØÕ“œ4Žp¯$N̦j¼þ¯§‘hƉ£1‘¡ë¨Niþž2Uvñ_"l§~©M~²ì ¤6¬æRîC5£÷€ö ‘~8[C}° ìúÊ´‰ˆ»_I°ÏElE4±É’úpÃQÍÌÀHJk…UCÿÿñƒðü‘ÀÈ +h`ïhcm`o‰ðÿŸ©endstream +endobj +674 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 2497 0 R +/FirstChar 11 +/LastChar 126 +/Widths 2525 0 R +/BaseFont /DKRBOR+CMMI10 +/FontDescriptor 672 0 R +>> endobj +672 0 obj << +/Ascent 694 +/CapHeight 683 +/Descent -194 +/FontName /DKRBOR+CMMI10 +/ItalicAngle -14 +/StemV 72 +/XHeight 431 +/FontBBox [-32 -250 1048 750] +/Flags 4 +/CharSet (/alpha/beta/gamma/delta/zeta/mu/rho/period/comma/less/slash/greater/A/B/C/D/E/G/K/M/N/O/P/R/S/V/W/X/Y/Z/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/vector) +/FontFile 673 0 R +>> endobj +2525 0 obj +[640 566 518 444 0 437 0 0 0 0 0 603 0 0 0 517 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 278 278 778 500 778 0 0 750 758 715 828 738 0 786 0 0 0 849 0 970 803 763 642 0 759 613 0 0 583 944 828 581 683 0 0 0 0 0 0 529 429 433 520 466 490 477 576 345 412 521 298 878 600 485 503 446 451 469 361 572 485 716 572 490 465 0 0 0 500 ] +endobj +600 0 obj << +/Length1 1743 +/Length2 12493 +/Length3 532 +/Length 13472 +/Filter /FlateDecode +>> +stream +xÚí—UX\m—`qwÁ +ww îî háîÜÝÝÝÝÝÝ%@p×@p‡©ïïî?™îË™«y¸8kŸ}ö^¯*Ȉ”él €b6ÖŽtLôLÜaY! &F=#£™°=PßÑÌÆZDßÈ `ââbˆ @ ?n6VnFv2€°­›½™‰©#€R˜êŸ$€ ÐÞÌPß «ïh +´Õ0Ô·(ÛšÝè‚––¥žp(€öÎ@#z&&€‘™¡#ÀhbfÀ𓤵± €ã?ÂFN¶ÿuËhï’PþK“ +’4²±¶täl@Ý€ —ÿZÿ½¸˜“¥¥œ¾Õ?åÿ5Sÿã¾¾•™¥ÛfØXÙ:9í²6F@{ëÿžªü9!ËÿÑFÒQßÒÌPÐÚÄ`ü™ƒ˜™+ÐHÁÌÑÐ`¬oéüWhmôß@÷/)5qi!Ušÿ\ÓÝTÐ7³vTq³ýwÙ²ÿÅL4;öf®-FÐô2A¿ÿu¥óßš‰ZÚ™Y›˜ÙØúööún Ý"6€ÀÌÚè +º‚Œè­mA@Sò`lcðÏ‚‚ÖœÁø_±!+#€ÁVßhm 4vüeúÏè¬æ¿Ãì 0h=mŒþ„8 î@{›?.ƒ5ðßÌjàèòç>¨´£©=ð¯ f‘“ýŸ (`æüW+€Á4=ÿf6Ö" 3àÿæÊÆ`°6ûK„TÕÎ èðÏáúUüC *BTAø*ò‡@£ý7q€Æ(ö‡@#ÿC ÑIü!„äu—þC î2Ô]öºËý!Pwù'¨»ÂuWüC îJÔ]ùfUå\TÿÈEí\Ôÿ¨»æ¿‰ Ôýëeêÿ!µÁ=gøobb=hô‚¼á?›â/™›ü… uÓ¿änö‚äÍÿB“Å_’²ü AVVtj¬ÿB•Í_²²ý ÿÙR!ÈÊþ/üg—þ… +Ç¿dåô‚¬œÿB•ËdY¹þ… +·¿dåþ/üŸ¯%!!W:ÐìÒ1ƒŽ"È‚ÀÅÊþýÏTµ6 IÐiedämõ¢†Nö 7€ã¿> +@ï¼ÿbc3Ðt"¬ü°1ä 0On +*õÍŸ)ƒ¦2iŽ‘«ï™ïDô_Ž·,“¶£Þ¨Óx*OÃD9€> tyÁuëðTœ»ðµ‹IY|;pÖ;HsoÅÕ¸J“uÛ·%¾÷?EmoZ¸9c—ŸÛ/MÐ,Ìü=tš«@)¢r»FÖ«åÜЛÀΡ!–f©XGÎB¤„–bW¼µ>íïe ×B³ziÓá„ñ”—ÿ¦ öhîð9dÉùç/\~¿ï­› t\l}A»Y‡ÙM¥S² U¸=û_·h^Ä„]]Zï´IvÛžvEÖGËqyÇ{ôýb–ù†Õ»ÞƱéjvS“¯Œà:am€…(^ £#‘iuÇèé|¬ŠÉØw%©J{ƒZHÅA”¶™è†IÕ¹]³»#öZM,˜íýaþ þü±9û!OËná&›½“ïÕç¹q!B‘°oµ7`¸e¦î•V«{ÌvrnO’˹¹”×ôá”Ф>‚—rSÊÙgfiN-`ôÙ‰~VõwÂ,Ñ>è`Q,a¡1€$"çiã"zî («Ø‘ˆàÞƒ‰Mù&ÅTT” YGøK">S—M°ÀÍ:³ü÷"c(œNT”ëA¾<¦ðÜ „z9ʶ¡#ºU<á}÷èfœ |4½PÏ}'äÐ +¢Aæ± #©VTT(d+±B +l†j¾—œfu{kv^Ozííð¹‹áoü)Œ§pß¼lºÈ+¾rEÐ]QÂPOg©©q!|ô÷”J=ãXv˜¾ ' Ë/öÓ”1£‘í&Ę<+Š@yíº‡BCÇîPV׺¢`:¼·sc­´ûÚÏ£ÃîÖ0* v0É‹°Œ2{§F^+Ç2ýÓºÎOg@äÉ^_«Ç×áºóeLýÙbÁÿ5ˆëñh†TKŒ˜sIK>RrN…æäœÔÉ$²|¢&ék^©_*Ù_LRÞ˜ +…À6iá…šS¨8µG¨'Ûo.&…–[+Ãòô DÏ8d‰;¨´‚]á‰@Ö´FËÚ©-kp»ÊWr«l0-"í"_¤è¾ýµe¢…îJИh¶;³(õ´uýkÇÀÍżí#+л5„¯­_—ÍVdAú£nØÆ»ý§/iºÔuw´B^Zkà(ØF1æß~?vÁÁ±_«ehˆ÷,3 b¬nal"/§Æ .ÃÛø4dä‹È\RÉw—«oVŒÎà‰]·1ðá}8cø¢NuÙã¸pi¬=Zö´¾Gp.\†•dM‹4È+%Zþ*9P¦z²† Yf­‘øt=ÿäÿkhGê“2ÂázÉËFË&›úÇ/"+Ï0ŽZ{þ)]ÍâûþhíùF»‚ØÚ~ã.Ç ÂY½Z—,ºÄ¿Ù=… Èn0¾ýps A–£±,Æ|µà-”>UAƒZ ógë@“ + Äp½}aùÆ‚7ÅžË}N~çë^yV…6î íI§z`ϧqÁ]å¼UŸi®Dn2¡Å¬þó©77ác’··ìÙB\![ç{˜ÿg}½ªs.Íne[­äB"söý쵆WC·…'ü•Û™š\ëÏþ¤ów¨.•Ì +É©Ú#™CÚ±ó¡·Ý¾]ǼÇÎ2ú)Ž^x ]¿`ž»¼âÅçŽÝ}çómò œz«”ÀOŽèù©6Í’‹§2 +¼žy3êàMã^-èXÊÔm>¯2ñÏ F«?+2Ù1É{%~eëä5c´T§ñ¿™ëñ 'eò&®~öõ,ÑΓ'ün̲p¦’?1ü«Ty½>t¨Ø'ýªè~Y+¼S ]KË­žkk ï`dè–ôÃT‚›¯ÇW»dôJŸFÑ‚ï‚8ó†5åœXÎohK>`‚UÍAðYX)¿}Ô|Ð>¹ÊãèC¤¬Öž® ì?¹"ÍSª‰ÅRIÆêV)|:õ*cúä`£@‰Xœ÷JŠ¢»?j9.ÓyÔY /(ùóºãu6mî@d¦Vùš»o âÈ‹ø×KRçÊ(]vûŒ:Êúr)"d|Üd»0Sä~ÿÕífmZ¥&TÛ´‚ÈJhGÕxØ¥çÏ* +ä¨0_5\ö&Âù¿Ï[×6«øg”l±fsJ=SÕ?­™Éèþ®É¬)‚PŽéöլ܀O‘ÔB”l²:š©^§nBvË›=g…0ì>iþÖÜ;²öôüeýFL0eøƒÊé÷qصþ×Æ“Û[Ó:4yy¥$R|xˆ¡î8¯©ËRUuü~|Pº°ßæÒ ;R§g_u¬ C¾¢£ÿØÒvàÇuN¨ix"Û&ÕžY«øT?ÚoÙìÆù—*…X^Ü„µQíÕ/„½ RÝbÒ|œ*Oã„X&ÑT ¬åPȲ~1¿ÐS64š^ŸFâω¢å$µ?`´[˜h_Þ;n±°µ¿Úh…"‚ÕÜÀå`õÌ‹µHÖÑëq>Vo‘…X¶R® Sâìô#\^ÐSð&Ó¨ +Ùû‘ñ UïÓgÆ:àFFéÙ“ªÎ†‡AÊÙcÛ]h<)Uœ|ñ}òÝ=hÁ¼Üî"9pW³bMRüºø‰f»s-yG{æ‰é²ˆv¡;« Bk ‰.ªm„ßR·>w¾¡‹g}ü$*õÕÜÝйZÖȬ=›Pkl.w™¢DX¥¢rçzÚá8š4æK|k]#þgª¯¾â g±.¿Árl¿Dží]Õ}pAó™gß«@ÍØÓ& ZPùR ^ŠÕ/÷õc“t³¸·T™×Õ›ÆéBƒ$¬' + ó=xÜË£µ t¶îÈÑaUÛk ˜ó¸ùÈ&ŸkPË0p¶èb 1_rNÀÌTóêtŒtø#¯í—Ò@Ëñù°-˜Gwàl¼\¤`²»¾¥*¦ŽÒXýߣ?j]Eù¶VdqŽÖNyF¯_ÄÛ¢40%³®PT±âÃ`½E~°fÄšð¡ãkPwþˆ­,îø¸¸¸QÖÁ`B©û˵ÞV^˳m7ðai%40@F·§°íYÄù§eŸÛ ó^݇ ¥.®'3±›Ü8)<ü‚NÙ]‹ú¾-R)#S5.øÜ­›áí®åBó™zýùe Ó# äçñ…sÜ =ÉŠ’º ÇYdÇ¢fÁM>Có š†ÂF.ñO‹å7 +˜ØÞ˜¤êá3˼H­ÆRVŽ‚ñÊ$9ô†Žßžædçî”âjZ[#;t§û‘DÃ!Énµ•¦l;-`Ís +]Š{ÜBàäŸË~Îc—è:ÉÞ²UCSLu~^|XpÂßí`DñÜžUÞ>Õàa©WõÈœ:ï×¨Ò ùyhÁ8Së|Sy#øR%\kš¹ePý¬õÄĺî0Rj/¬3%Æ +Ä‚¶y¾­ý_ì8‚f÷/cªmÈ K#­~mhTÈ¡Ýèd€þ´ùò CèÎq(»ÑñÀt!#Ùz +×xûZÇtc—÷k£¼OÎþëó¨Ê`¢cE3Ñ'cf»]Y§NÔ®•X‰¢H+¢­Z„=Y´¨<}ž(d!ÆÖs ˜³„bÛÒ…aÜŸ’‹›“iFõºz‹ƒî hÉ¥¬éÄ~~Q„c¥qg*‘¥˜8MÜr7¿>ÌXÀï“ŠA:ÎýbKc±Gxáêõ0©qX•#ï§Õ” }ñ¬Š_dh-ÞÝP¼ Cã}ÇK5ˆ?ðv¨†úóפDÐÔ9‹ùRo¦QPõ:ÖrÉtè,=´üú³èùY´Ü ;:’+'9îKõ9V0 +É·7’Á–þŸ…TBøÑhÆèzo¯]ü=ÓþÇ1‘Æ“«œüö +£,êü$>™üMŽÛUòà˜‰Q’íµ0”Àý"f}%YGŸ+Ù¯ž\›vXÓa +šÂu¼î‹Å}â•Þî+EÜ™åpŠKýaLßPT,Âø¯Äörïņò*ÏkÃÚüÖþA)Gq +ìê‹Váéå rÄ¥iB[Ñ/wUdd¥s\çÄ?˜D:s ™°Nô©g¿ýØMqTm¥æÐ&¿[q÷Þƒ£Ïè?xhäCTÓÑtk”‘>=ž“·m/{k‡"•,-Ä4¼Z'1ü&zëI]“J“ãäáfk%åˆúò,¤Ú65¶QVì|±’—{PÊ@J‡-H YËá–| +½S1I»_•JÆ“£+¦. Жd)_PD•oJ—N%Œ9òæ‘­Ùg,‡½w„d…ÛÔmÚ™ÿmÚƒó×Z6–ÂÉcýð€I߯ïŠSivÚƒ&#%êæ»_È|µdæG<-§po~“c].pn*¼…`a÷9È«¡#´ØXùÙEÞ¤\Û}Ý˼ùQS08øÙý“´ðÛüååoËâ6,þÒ>3úƒ©ŒÝŒ$~Ø2ÊÖÃ7ßc‰ßPK?åñÏÔ=¯ Ò?c‰¦[ÅyÛÛùžo aጲ&{ïôbšÙ¸°qQæÒ(Ó¤š—xVÅÂì9³ÉpÍ–±¿ëf^šŒ“ÙÜL’Á¬ì µ­Ö]aÂðñÄè!pÏ䪓bH(ºá»â±”äþ,¼äT'ŸÂd¢…qÅ9üôL.«Pè&+xU·2½ÇC}B´ô~Ož‚ÍùnN'Ðv»¥tÆâÊ^@mßr¼°å÷PD  æœIÒl>+°¨$ßJWáßø+>”ég—Åâ‡ÌJ¿?m«·;ôÍ%ºå2ZüLf8Ý|aÑI3NAÄÓ—ä Ú9¯eä–O¶>ÓÞò;&Æ£ +=¯nŠ×…I[1õ…ÄÏÑ@‚*oý,î~<ÚûÔŽ²óÏ3$ùeÇX’“j“ž£˜]Ñuü-ê”Í]®{NÍAËu„®QÛ>æÙÆ!¶áv_ ¥eö­ :Ê‘öƒÓ£ÁŸú3zÌy‰ù¿=p‰!}«¯[sŒþ‚„p +o;):;ŠœýÎ&fÅøÉkâPqˆd§?Kqp¢âtÒ³z’0>N¾Aú,í~ä´ú'_Ál/ÁŠ¤hSÎÃçhÃÙ;ðgs„Ñlúw.,Ö0÷—Ç ѯb^G#®«›*†;ŠŠïÍ +5îâ­3.ÙBš1‹£·pø ­^ ²N{>™H¦7rŽ|Z/=•¢gÏMË?TÛy¥°VÊYŠ‚µ–aA5üÕÜë.´º…X´f®õ«Õ{X¡VN›3ô‰ŽvT •=~H°tãÛú{PŸö‘âåÇÒ#vÚÝ| hé·h õ­" “]pž;) Q0EØ}C]>oc¨ 锺¿ÇœIÃŒø η£ø{ˆ Õëpìh®"8Gð8õ‚¡?¤)s¡q?“YbÎp|‡¡Z1aµ ÅÝýåÌõßÈëyÄÔ~tºp¦»_œPL½á5¡ÿ@TΪE Ügräʈ÷aÒ¹gŸwYôã§ô1èowƒÀ?úh° +„¢à²â‚¶{©âÔU9Ë+T…2-» ÜÄr¥´ï¤|1¸m¼Ø¨®ÉéÞ˜B6 Êˆ.d´g@Ù¯ +÷U°{÷èUJNæ&Bc½h? Ï'6·Ð¡@„‹I'Ä¡šfº´YBufõ >86ŽÇعýÈ£­ÄüQ¯' ?»_tØ&ëɸâRN¡è wDï2µ1œã‹˜ Ž —¡*¸ÄˆH  ÚêÞ5ñÓ˶„OŸ4ß7u-^Y.Ø°ÕMæÔ——§Só~-¯²‚g^‡TÓ®\þ ˜j(œm¨0 +yä©$®kO·@Š¥ I¢ç/̨ìÏõ…öÃ1 ¤ûËf=A|âî!Ö®!uk§öÉ818eµ`9I­K6¯ð}ÞyVº8_9 Víý'ç&xNQþóúÁŒd´Xédip® ¼õ’b;¸÷Hò¼BÜ÷Y´BÃSíÄéå—ͳԬhFúaÄÂó{í˜ÀØxŸ”:‰ý%ì ç¾å¹h¤Å31ÚÊ[õÎI„xhÎj<"¯WN³§”2{¡¸­¢–‘nšn%ÓŒ\ÄÞøß³y¼P„k¤új,ŸÝo3ˆÜêã'õ(ùu!,L]CR9$|…xB›Âx£}±ÍY¹ûQ¨ÈÕcV|σ#Wøó‘¨'‘ŠöF”f-mûäÅm ¦Kù£|˧ˆ(Uc|äïôÌŽÀD$yÞNÞ¡!Ø sF›€¹¶c–U?³µ ‚ÅŸi[È_ã‘){çÖ B‘?zÉv løƒRl¥E: L…¶DR8ð\b¨ÚžÚf©;ãT—HXJw/Òõ»ì¹ËØeÉò°è¹Á×ÉË™Ïi–q§g'JÕ÷=GÌvšæÕr+¨jg ŽÚLx ¶ñû ²ßñ/Ê÷£@¤ª4èÎÈX ~/äW„CDÆÿ‚6µqNˆ\sH›¤„‹Ñœî=2NËq’"ôÚ4®œðNr_ +×_Ñp³³ÃUÈADrênnþÐNó’& +Äj\³7«N%9Mfóÿ| ¡U`ž€§ÕÓàÿ~DªJ8¼q^§ I`€Õé‹%äÞ¾az¿šV­iÆ<®¥0~ é*hÔG˜2Þõc\¥Ë‡ïÇ)`·{7“nÚÓãú~¡!ÛD™ç¼ð÷FSS‰ÞìåÇùZXUK¡4¶°(¡´M÷;Å>ŽŸöØáC…—·üšY»]²5¨bOïHøÐô…D©º?5'Œ¶=ž.Ÿ¾£1 ÒŠ¡ò’s˜¦L)ÿŽ@üªÿt«Jp›kÓŽDñؾTjȸúï´’.Òœ2¥d¾[¶ý ¬¿2Ä“£+<ηÇàéäšœŽæØ’5Fáy‹7#ëÏëj³‰;0ëšîÈ{ÛuˆÔz@à¢Ä‘‹žèëòšöÙ·ãÀ­åu Áö²&/*«ˆZSp‚Ü9ø{tm&¡ÔȲs‹q>iM¦ˆœÂ+ÞÙŸ‡åˆ-%ýVµM—×@ t:ƒŽQ"R7qó^D&Ä,ß”È!%«Éqßïs’}3ž·Þiœí˜ ¹¤zY¿/F}Ñ‚‰Ú[˜Ì@GI8Wù Â诲ÈYÇ‹¶mìJ×qs|'àIªªÕOc|ÃBùçeFº÷ïð&Ó]àMºuœÈÅR¡Ô<ˆ¦:ìovTûÇã;žä¨âÒÈ‹Ï`¨4½K îI¬Ã¢±5ˆï]µs¸Êwà¬zuy[À ºãŒì Œ6vب‡Úü&_zü*ž÷ŠLÅ@•S>‰BÙ¬ë·Rt’%<ľƒ÷éÝæÄ«ˆ­yôxê©weSÓ€;B>”¿!g½]FHNŸÛ®K‡¹oãöÛ6&J9÷„´2?œ¡ÁaŒH‹îsV@ïÌõ…™]"ùz÷ìb&ëÅG¬—~fØX€Ä)ªò»a–y)žÑur©ÎuÏu†Rä.®å9s!I_Õ¯—°>²á'Ê­+µjB£*LŽV¥#7¨Z­Cþâ•‘*4p¹ûXÕ +RàÖ’åK ‡\äÐ\@,­ÌþEmœ) òΧiÚ3Ü°iØžŠ‡±ep¬eR”̲¬º ¾eÃ3oB¬j+Ңɨ ³°–‹˜™³O€qÀZ}¸mµœœÑ*1M:;Wìáò²Læù ë²gZ,‡¶zM¾„æGÈT©~Ÿè¼hkp©Üxís/‘¸Øò¤BPùÕ oDdþÀÚ& åþôf µtRoˆY>i” X:+Š_I¿I½ñË\Éžþ Uô -ƒé wß‘óLG±*D$c‡|™Î–½ÄGˆu¢ÛBÑOþøBè¥Ñ&KZR9qj¬K?ñU› ’/S§‹c-L±€`Æhqæƒ+$‹G`¿*kÂ-RžoíÜ^BÄñäºiúBŠ±}¹`3§Ý¥ßxŸô%çˆ "Ýüä´5€¥rT Qס _ÕÌ´PsÄͨ¿u*Í*í26u(Ö¨¤êE_ ÓbW2ˆŽ®@_KŠIò[??ýåaJ¤ÉÁrÈúkOÌ !9ed=ža=6Éïgµ/ZVJäŠ`–³š{A!nEBœ‚s+}ìRuÛ®ÍG¼X˜°V²ñ·Õƒ \ëÈ ±†P=¸[>0j<`cfð—øJB¥LumFbîäÊ:]E´\Ø ÓI©L:5â!òÛRò‘†4˜äE¤“Õ®ä¬<¯pŠey÷6“7$´šú¯h»!ÔáÍ4ÒZùùû8(,ýeˆò1ÏÖKK8WhZ›õ\hi–)¶ÁTŽ…'ô_Ô“nœbŠ ÈÒ´áÄðxk1kvÑé–Ÿ Þmrv»¯%äGM-òÔö08z¯j[”)W¢¼®)êÃdfíSuÕiÁ,  +=8qIc‡°éÐz¨zXK×2ïÓKG殾w׳%ûÍC§þ¬™L,úõîS:Pζ%´æñ nm‚Žá’†DTqï¸à• œ[Õ©J# m E'™1§€õP;2p›ü¨ˆ*ñˇ†ùlYkC¯7qa,u‰j“è>:ùËÔ7!Å&Bt•Ð”‰K QD‹bƒÃH*(—’UΖ%A.ÿƧ­l™«¹J@®m(»„å鞃v…³KäNgqÆv,encëÉ@rUØû–7°OwäE½öF34TÕóéô–—ˆeþA‚vºun+rÌ^eïÜ=ðt\ÚRD1ŽLRX^(ÅDж׉ˆ¢µbÞp̧Âê?¾#[¾‡œ1GdzCú…­¤i6¸Œ1¦€#~/ +Ói·èjä´7q€m*Ĺu? ¡{²(Úx;Ú*l„\\‘<=¥$‰»5¾Ž"“ÆVfÑ:¶5û¹ 1 ¥£Òå +ñ¬É8)&ø”S-&ñéô~N"†¤éÚô o{¡M²\ÑOá¦=6>,Ì Âþù©!ôØ\©£=Ê!}>‹™îœ é膙Ñ磰²2:0eÒøÈè¯úN5¢¯Îîæ°È8Ö syhùùðF2 ŸK´=u Ø \º¥òîgs*sJÀ}îêèŸ~‚§OYî±G¦h8™’ âÞ•Òð–Ìi±S²•ù¤"A±/¶»ÓÂ×([!S{þ¾6+’À8nÀô†(JZá¨J£co•úœ+5lñæßP:=“¾æîhÖ0Òé¸ÛtyL¸4–èÕ`²i|£•9>„è€sh +_ÎQ& W Â%Ôþ-˜À·²°!CQò•#ñVª£’W†²Ü€ÝPûK¯¶šÐ«iš2ÐM™œ&yŽ½Ähí ø]bÔÔ7–2yC§”’ÇäÕ‡ôhe·Ò@2OêFþ)qâгJ‡€"ô‚Ç'úؘ`!µ‘^ƒÝ3{(áÁ[ºCx/vz/„ð‡1Öÿ¾T]²V4¯ÿ˾â$C0ûòƒÔ˜"¿Åþ +äp°ûÚr"±eO§üù;­ÃM•#°¯f®X~ÒLtJÌ5ËðQš%Iwµ.Á»â`Ž™ÃJ<«"ò¿âD„«´½rŒ,Bü« +פîµO+ÄÔkã”Ûk4¦;«235ÁK"d`I*#]¿Ï/àœÒÝ yöá¿6Èe(¥Ÿpw|:¬‰©¨[Ùæ¬Ò¾’±†Ž4c³â‘M–'ôº&ŬÛp‘^Û<Ö¶±A¢o -Q´€íÎcÇÈ k°àÒm/·ÛÛáßßCο7°6=ì|Áz»¶'\>D{ ¶3›ÿV¶5`‹uDÝ1ù7ž&ݽÛÒR(ð7°ZJvçD(W›/W³Ù˹RÌ tí6MÙ¥ú!§&_0RÃ$‚j»åë;‚õKŒ*4µ×°{¤Á;Š‰/ +eIíBþ²± ªX-ßÏúOG5¼jšýƒQó9KùùÊú|K^¸ú>“ +]û%û/òªf~bÜïuãö™ß¼B8óÎk7¿~ˆ …ëu# 5ŒŠ›WÝ,‚»Ô *¦«­X5¸ZZ„äéK¿B¾á4²/‰sJÆÛ¦á‡ÿ0C‡=GêÓDèQ:´³žÜ_–@#>é2â~*u˜ +–¦)«½úמκ5ºÙXÃ}u~±!ÄÒ¶xJQ쥼) ÀA£çÚþôrü‰¯C9ÉÞƒkÁÞ*ãšV–Ì ÎúóŠh632"Ÿ÷| Ú”ÎøRL©׫ðÑÝ›ò]¸®Ò£ *̳›€°TÕ–Qx'A¶Š+]ÄÌüžNëóë›ë¾O#·gª »®ÖZM¾r¶ù’¶rGov› †dR€€xÚ`¤9V3cË9†¾+©æ‰’¥›¥Ù!eqÕ}"z4g—o–Vƒ _¼"FùjÀ~Q×ú….á”5|ƒ0û¬©Žªê¾‡2c/I!ç¶Õ$ú“$É­eüŠ|_¬FN3·bÛ«—äûYõ[aéí”cFsÅ—o™Ó5K—É -Ö¼Ê_ý£ÙŸÔš ~‡ÛLÒ.Q[]€\½zbäÒ‚?ßúqœß—”¸ZAa¾›I«èn,¯j‡ÀñAÝ=øÑã'ø\îlro”d‡åÖ»`1±)¢–Y‹¢’„,v)dœ×N&¬Èêz²–Wò½Bið&s9 %šu9ên?À=ÕIB殳ô­Â[À‘iGÓx .¬NØìÐ~¼¥§Àl«é'ó•\I_]‰ö¤ƒŸ™Šˆ6Hñ1 †IùÖ ó•¤'í5ÞY¿ñ©Éåe +Gæ`VŽ° ·W¤9V-¡Û¥=ú[Ü®*iʤ¢™:.c@ØÞä})¦X¨ž´“?oǭ²Ïtï/îÖ `ÁáÒ!6@ª ´ÿPX'R7.'ëQ$ñåæUsŠ·HÉ ¿>[’»:»¥”"\ݳO%g«?‚ǘե(š†i³JPæö£àmVX*ÕQ¢F;äk'Rb';ìI5vö¥4Þ*{µs¾é#>œÏœ”y9ÖÆ ž ¦x¤cÝ{öûRlÿ'M<™ûÑ‘úËuÔ‰Ñl2‹P5©·Ê‚°ÇÇ=žPÙ¸Okò+%Q婼õÍ9]×4&©À÷Ñ„ä‘ +¾òX3V(KÅþ6úÜǶh”z¶²uÛží0_íº]HGÿQ*€r‚õ…*!þÜ“`2¾;åêÑ áâAS}šˆ‰Û<|ßwl ‡­®{n÷ZˆŸ‹†ðà›A ¦Pc¶‚Pkec0£R;gj|ñNüÞshén¸v# 6N‘v‹¥C08 üܶ„ééNïëGaDΘOÕÊ¥šaÑelÚ?‰s8oE^¤œØ‚rµ×M{ Áw§–¢ÿDŠv»FØ\]\ɪÝÑ”¸ôÂ’lìÒ…I~v%|TÄp!Ï9œÛáh¸c žTIS´,Ìð†ÈL‰ü6묾MÉ~{2꧳3ØGóOÞ1ëßU²W³ô'†ÄB.?Ì•ÊqK`|k¸ÿ(>šÞX¯OjH ÚÉ÷‰;€f}E2†ä\˜þžª€^ÈxY‰Ó%Â8™¤{ÇO£¢ot¥Õxl¯Q¸àg½§“ò:w‚Œô¹–Òy2ûøŸ}—ˆÍZ|ÅÂ^×3û fàÃôb8É’ÆÎ?‡1U¼ˆž˜u+B§µåa·ŽË^GäRÒÍÛ¶'!¼.Ÿ¬rÛgùÂ[±ÏØâ+m¬á–`!1U;  o$s~<8Ñhn,¿àK@©Ê Oþ& ÅŒX˜@FÓ< “­Î¡:M4OmÆå”7WRaŠnrŸ=ʱäœCê½õɤŽÞ®rÔÛšØR¥ZKô¯$ŒŠF¹×ip 1Àg¶uJÃ!É5!d’¤Œpý^4gàm?H!ˆjaâ^WÔDB­e@7ç”3þ€«ŽIž% bj‘g¶£ì“~Æ;ê·{ÞëbQÆá[‡-Œ¼Ø@-—üæ¨'€r“|Ñß´NuëoÅ÷îY_1uòØòŽ4_u™Ò;Û{^äÇ‘©¾õL'eUlŸR™À?~ýH,´mM€ ØWÉt?Q‚“äeeKµýq1¥dz›9„Gœ¢/«û ù#íŒ×qâ'ƒœ¼vå:V%ÝüùY ”{ÂbžóÙëv¢>nhüåâ‰-Ä Ô°ýƒÕu²;Áȸ•¦½6úТ;”Mf£5¹o‚#½OØè÷²Î§?'~Ô¡'†“®ï™0ššé{‹#£¬Í}Ýš+F`—Õ;–p¡öNÝáA ñÀ–Gr|Ø1á54ÔdžSï…Ú£,{åí5®²_äñãÛlxb‹~ÉøuÇEø>+­Ýwi5uëú(ãúmµ÷qŒïîØŸ2S-€Ù4ºn5àÕéšãÈÕD(÷ +oÐ"eC‘"’¼iëWðM¸Óg0xÍ"š\_m +±ÜÄmxiùP7Ê ½Á2õZØÀÈP(:áKÓ[û…#üu ã=¢ Âõ¶ó} +‡`h6¹ Ù;:¹RÉÝ%UÇû[ ˆ„§X8ÍèAã÷DLaرK!)/ý§1„àìAÒr|™Ž¡ÑœÊøÐŒÜ +”°õ_ÆÝ=Ílj¶B€[‚2F4ïÈžy¶5Î*€”3¸ ó³²ä‡QƒËË,vðÀb4ÍMý:ÝÅK*GàÝäÕ`¨ WuG=ŸðuÞ¡°—‰jÙdç¥`¡Š–ÝݤqœÂã”»G%…ŒÆhçoÅfª`°=¸X¥¨>X¯b5¤¾v˜Ÿh• @Ö~äF!þþᎠûŽwvsoñ¼—s}I=a3sàYð³ï¾Nÿê‚,}õ;EhYŒÝlâOïWÚ¬ÔÃXú–ê_?#D­{#f5¢wD¤ª0³CÇnA_ajé)uõo5¸%i½O¿öZŠocbl{€INüºW·^é;ü.rŸbÄ×-“ù?T°êQÁÝMÍ9çÇY +&Ï¢^V=‡àœàGÚ +¼6o–ZQ,®•ÿd½³/Š{ªÁJؘ7OË’tº)}älœ‹õ%q·kÕrYËiÃsCZ© g6œŒøJRù¾5á<€ÏT§ð Éþ\C‡Ø²j8êlJäølL¸ Ñ(±wYH%ðòãg]Ô2ÀbÉqø>êï}VÍY™§¡XÞá>5˜o~IÖÝ™Ut·®³Ì†&/þúÖ6廉³'Ž²²Þ*‡ÃÐss—Ký'%‰Ú©”øJ~×—L€_Êg¥>UtœH4¿r†lj¥ãÂZXì;ÌaµYFŽ¾. SÔ xyÈm¤8‘½Û쇴ª}”_ x…Èß¡©›bäªÏfµ²qåD•p,óyò¬Ð™eB³Ãèé[ãˆEªHÀ*ñ"[„>•DÈ"IR‘ÇxgÑÎÑQ:ñû¡)úÙ<{~ËßD¥ÀPÒ2Ìfµš¡‰Y±Bz bQº{Êæ.vÆ=vsNÌÕβ.ã~5æù”Dx+qν»Ž™7á;¼ïu&ÈøàÇ3b,{ÈþŒ·vCiçj·l’ +“‡†Oø5´KðU&ï¹Ð“!1Ë¡8,~§1;…¢5Ô†¹S{»@ß+ò{ùöf¥%šï©,{žP½I4Χ %¤ÄTQ/ê™ s#)§l”j×£#æjï¼Ã¾1¡µFS5¹ãwŽ{ž6$ågk˜³Yõ΃Ä~vßRéP8ÔÅu§¾Ó›õ–Š­Z>oW:ò [Ê|^ ‹t&p_ÊTXÞ¥äÅ·..74#æz‘ÖÁQqvö¼ØFP ¿êtljËX à2B±aé4ãêÛ¢#àÚˆë ö¶3ו~!Ù_óúl>sŒ“N*Q¾4ÿ-ÄNS–+ó]F·b"¹#À$Hl#AjS¾p*38EýML;8°á’´Ž¤Ü(YÜ',Öƒä‚jÏC2jl¯¼wò̓lº²/W°ÓBä?úŠÁ‡@ÞD“ðª™@v—'êîÞô H_PpOK¥î$Ë,qîxÓUªCÄéšO$DãW€2ÆþIuv#Ùï• +ñøc<}“iTëX“e5¶e‘¬#ä–‚§‹Âe1 2J ŸÅe­wÿ±ç´žZI"ß{íð¯n”ø§'\g„þc¦™­wÓ†'fþ—ÊÂ<ˆPˆ`¿„¡1„û^=e­¡îM=2ÎÒÓBN_t†Mbð{&ªIâh¿¶u0Õæ¬Ù<ÄÏpg•“ø¬—f:ƒ ›œsŽý+ÂÃŒ.Å’vë‚¢žª#À™‘Ý6ˆG·»¹cÐçê÷Às\IAY‰ m¥•þ+—­ ËÌ•äoÝEš‰Õãè"2Q1ò³¥ÅqŠ8å¼UÉ =F[9>Ñlö}'@cM›Û'úßo5X&Ü£­Þ°¾wç¾GDÊ”Š †zaŒ| &ÓÊü¾Pf#­Qº4"lž¸pmg·p7Åraˆwö–¡¤…ÁÖ'¿ßé·ô†ËžÌæt a¶p¢äÑdïÈéEu– aÄ;sº\Ñ;6øèÌ9ßÏ¥¶«ï‡MŒ rƘ‹^Å {yÛkdE{ÏÂwÞÅÍmŸµ¥4®ë7SG†eŒ…aFÇ™û¼ãïOÁ¨í̬Ö0湤YÜ—F# d©uÔ÷ šð£Y0e\c¹€×ë[C«Ç>ZBëv!‹å5þôp.{£f`žÊÖY÷9aý;UpÎX|èoó¯Îþ/Ì1Oîàð®}cуku/ï"·„P‘Öû{T„ì¢Ô:´‚zdx.ÓxsÆÿÄÿ_àÿ‰†–@}{G+}{ „ÿÞ ž¡endstream +endobj +601 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 2491 0 R +/FirstChar 11 +/LastChar 122 +/Widths 2526 0 R +/BaseFont /JVGKBU+CMBX10 +/FontDescriptor 599 0 R +>> endobj +599 0 obj << +/Ascent 694 +/CapHeight 686 +/Descent -194 +/FontName /JVGKBU+CMBX10 +/ItalicAngle 0 +/StemV 114 +/XHeight 444 +/FontBBox [-301 -250 1164 946] +/Flags 4 +/CharSet (/ff/parenleft/parenright/period/zero/one/two/three/four/five/six/seven/eight/nine/question/A/B/C/D/E/F/G/H/I/K/L/M/N/O/P/Q/R/S/T/U/V/W/Y/Z/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z) +/FontFile 600 0 R +>> endobj +2526 0 obj +[671 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 447 447 0 0 0 0 319 0 575 575 575 575 575 575 575 575 575 575 0 0 0 0 0 543 0 869 818 831 882 756 724 904 900 436 0 901 692 1092 900 864 786 864 862 639 800 885 869 1189 0 869 703 0 0 0 0 0 0 559 639 511 639 527 351 575 639 319 351 607 319 958 639 575 639 607 474 454 447 639 607 831 607 607 511 ] +endobj +595 0 obj << +/Length1 1786 +/Length2 11169 +/Length3 532 +/Length 12164 +/Filter /FlateDecode +>> +stream +xÚíµUXœ]“¨{p Ú¸$¸www‚5®Ý¸ww—ànÁÝ%hРÁƒ‚ßý~3ó‘™9üÿ£}mú„»Vu=w­Uëi +u&QsGS ”£ƒ 3@\QL‡ÀÆÌŠBC#š¸X;:H˜¸ùl¼¼lQWK;+€›ƒ“‹… îèä ²¶´rЋ3ü“ĵ‚¬ÍLŠ&.V@{H 3;€º£™5ÐÅ“ jgPûç`€ ¹Í™QØØæÖf.S ¥µ +Ë?F²Žžÿ›»:ý×’†Hè!’ ˆ¢¹£ƒ'Àh¢äybòÿ‡Ôÿ,.åjg§dbÿOùíÒÿZ7±·¶óüÏ G{'W  èh9üÏTmàȉ9Úý¯ÇȺ˜ØY›‰:XÚ¬ÿ²KY{ÍU¬]̬&v`à¿â@óÿ©Ù¶ °¨éI«Ë+½ûÏóü×¢Š‰µƒ‹†§Ó¿Ëþ“ý/f{eÈ=ú¬Ì¬¬lDÈç¿þ3ü“t0s4·v€ 7À2ñDL„¸Þlks è1favpt|Ù_€…#åŸã„œ8‹Å¿bÿì´þ7rpXœ]]€æ¦vÿq’ÿ^áýÏ•ÿæä°Xy:Y^CÜ'Hš£ùkè€Å r| @ª9:ÿÍ\¬÷×u.ˆ¥‹øWÆ?¢Ž® ×Ç?æne@ÜÁMü7CÔÀ@·¿Ì Æüoú\<ë¿D¸9þiþç¾!•D_ REì• Ä_ Ò¨Ä+Aº”ü7ñ@z”z%H‡Ò¯éNæ• ²¯éKî• .ò¯qQx%ˆ‹â+A\”^ â¢üoúqQy%ˆ‹ê+A\Ô^ â¢þJW‚¸h¾ÄEë• .Úÿ&^Èóô^‰ýuÊ쀯Çya°˜¼¤ÓW‚4`ö:·¬Šæ!¤à_øÏ´ü…&,ÿBHV!¤ ë¿"aûB,ìþBˆ†ý+²A4þBˆ†ã_Ñpú ÿ®¿¢ú ÿ™×¿².!ÄÊõ/„X¹ý…+÷¿.5ÄÊã/„Xyþ…+¯áÿ~‰‰9zx3Aî;äBŒy!Çêûß5¬!wDVrmYYy SþOÔÌ:¸üëwòŠü/¶°†¼P@ Êò¢£°MZshù'É™ +xFh1Ë–x¥/½s]¨Aß íJ¾Ê;3n4èÜWfâ ïÃï“»?ƒ#;}T'¥ÎœãÓž÷ÝŒ÷3½Úˆu.2=÷œ(oƒŽ1:šç¯N¸ •g7ÆË“u‹†r·?«ÐKhüD\£€êÓwkìË +ææÑ‘Ê´Ó i å PÃLw.ç [wÇLN„[Ÿúd†Ôúnõ·c§+ö}!R~ÒóGXóI-ã[ù_©žovôîã'n±ëý Ë"w\ó3tc«Mõ×ȳÙôí.¢³æé.ß»dÔt;­ÔÌçéÝ)#½å¬ŽãycÙÞUD¡ U_Kë7ݲ^Ðie¬§tC6Q¸Hb%/ýÒîźÙ8‡ÛÞHG£b£%¦ÌTWj/g6[fܘíÏàwÜt˜¹ERãìèÛ?&Ï#ЙAÍÎ8\!~dT>®?œÈ’º{ÍÐÖü”R@'Èw{_>%㥣ƒƒ…‡Mr6 F¥ùì‰ßíá2„´Å}ž02Ÿ­n Ø—fpV-\¿©à¤9¬Š•b­{a_ô<¡«ªæU*¹Å¤j6þ.eiÅsx\´û®ì(ÎA:P~~IËz‡jhÕ=Ig|vªÓóLŒaHãÑj˜ã•{”½±©=R6Ž™ªÏb½1ì“3Ò[ä$%ü 5;¸"Ùвã׸¯T„€é¾ON7Êæ-r“I +pE/nçY8" Ñ×$ÆoÍ=Ug*ü܇^ç‘=þÜšõù`SßƸŠ³ês…j v¶œ}Lžu(þêôwFDÐ)^²©Aå×ÝÁŽ‹šÍ˜gSn2›àh‘kq–äg¥™P™J×½£å®ú?¨xËÖé`JÑuÜBз.4e.”nºžtøIvY1¡ ?ó›Ýƒ3ÿƒ0oú“‘Uj3á¹!p-IŸ·Ž†FȪHŒ‰XäÅú¯0[žäÕ›€%’H=–ù +vÔî–|˜÷H¿JoèÉÎÑTÈ;¥·ÑÉÍ;³dÄlM»6?DÑ=ÜöƒŽÞƒ0õŽvvŸV n'Á¨I™ÛÉ}u0‡ëÒ³J×R6vSFºrBÑü]ý`QX²Ò¸=þìöU?Êšè5øê3Cçø¾IÕVqíñƒƒ¬R¢Þc½ëpÙ¬eF×úy°¤ÀWßþ !7‘’—0×´‡Zm{øÔÕóœ;½­…̃O .gdò7ùvlßöå—Š>÷Q:ø%VW냅÷âªUÊD'¥Ç“¨¬gŽòüàÈE¼¨‡J›[N÷ò•ñЈ՟­±7eÞfVÏ_ùõTIZcÉåh½Yísß~Ûû5dØi\á‰ZÓx¯ \;ΗÉä #f]ð^Ùlï_½4ZÖe {¹qk¸ªÆ{ >”z œSÓ”äã.¨Š<§–ñ‡ËáöØ=vòyקZ, +áj×±5Qû~©­žÃˆøÚÌ`|M>t{+¹ôˆfãE…RlMȾ¶§çðË‘‘<:_Õ– ‹ŠSjDK"‰¡«‘ÎêBM^ F`(âÁþñlÑãšxŠy|ë¦YÓŪÐÄ),ó6#´VXUþ;H£!ïâÄ6E1äÆÙª*3d›nÕŽú{%ýš`aÿx¶0w‡+UòŠ¤•Q@¨JÀݾƒù5ÔPGE`äç¸ñ¨ùs±í6š“¢±Á÷LL̹7aùšG’¬oÒy = QqÞåí*rµHœÃcÁ§¶ú¬ö8Ê&“tâ«Å'—~7f\røàüô'Hm®‰¬ÅÄq5èQ¿Ç}ßÑ ·fGô-o!XqÇT;ƒ†É+|8Â3‡EìIÜ(˜¤ø4<ÙäNbß•ŒìÜY“©ïЀžSÅ?0´dÂï¼'Á_—‚rÀ»èÝójB‹æ³ðŒöù£éϘ!Œ "A=¾_ØïÄåL±HËøL9?èbÒi‘2=žÒÏlä×c‰Ûaß EÐñ”yèÌ„‹m7nØ‚¥tÙDóP:úŒÝ¥FËÖíjèýÄ't”îúÔ»bƒ?bÂHc}Û‡âúùÎ|ðx=‘0Øï´Çaãñ(õýJ·S-‚•ÙÇ•}@‘pýÇTŽ)´‘6ûàF'vbì|N¸cÌxÉÉŸF~fµiÚq1ËdvŸ¼“——zÀÓ›¡&¢˜36,}o23yqs Á| øŽÐB1£Ë|.‹Íçsuö©=Õí{ŸTZ8ñ¨æ–¡ÒŠâ¬Š‘·ß}΄&h§Æv û‚ö»{k±üq)²ç\¨üÜ_ºv4¸¶lÖ¹Y¯’ÃmpÖàë.i +†ô3¹SyØUCŸù ö²á5IFv¢Ót’P„ ý?A÷4öðàèWþRê=7I/épvõÓŠYF.¾ðD}¹FÙ>ÊÚ·jù^ +4-ŸCD£K9 er`¹Â#]žíãf€>³8Rìúîž¡ÚŸ˜s­%ýwÀÈ€¬¿tdl‰xr÷Ùns©짆ºtÿm%cá˜KñB„x„/ˆXÜ] aì6üMC³9ÈOiÔ󈂺F×=½kõŽ±y[ÀíX*²kØÑNa.Ëï§â{|š‡Pà +ð^鶯Ʌí-×X·ÍÁÑ©¸V›¦ã%&‚sö´^qdBÁô'gî\ÃŽ“¾Ðò÷™ò9õˆQmE3ƒ2 ÍJqIñˆû•¥Ä‰F™|zpÝ_ì4Lá‹ZmkçWB›¹ö;67ÓÛUÁñŽaºÏ 1 ›Pâ¦G»«©?… PGñCçùFY?ï6(!Í¿ “I@š5'³–¡ÍÂì¼3ɱΧkÙÌœù`6ècw ÇÁÚÍ!³ô_1À|j¤î´Û@P{Öx7P9€à 7¹œöÒ“¿¥Ò)0**ô˜Æ!ÑžAËØþ;Г€›JðégÏqz-á}î6»#kQê4ÿÎ’€+ùýø^0[£œú^"ó†1ìŸí["§MÏ’‘¼m¦¹ñ姙 ב„÷¼Øõõ9·IÏ%Œ‰iÜ?©~ÑŒC?_z© 5Û’X +f0¥Ãñêz¦T½s¥Ãµ¢*\ ^ûGža¨z¦(ª;4÷Çñ—q§Ü$S{=p2&ƒ™Eßa1üa[±ÖsIêû)ÑÅ<#h¯gFÑ£—E÷È—êƒj–ÕÉ I¸-µû™¼ +%¶_=Y@Ž¿Éª;ÁGÒÞÚF£"jÚÅ´à±»ÐBEø’ ѤŸa†Š„Uõ²½(­æf5çIJÉ¢Æ6*«1žJV+b¿»8œ“V f=Ïíˆx4‚‚Ý%öû=„7a7œîÎœeûáº5|&áQ}RÝ´‡G£HB9~'º¤Á>$û«zð•ç2TF¨¤žý©µã·p\QóW!@š•¶¡¸bÎ8‡ô%G D¼mÃ0;X3¦£ë›¨Ñ* ž( ,0 \×>ŸI|u·rézËFœžì0ˆ¢6ÅþbS9¢‹o®þn 8Ǫ}3k• ª>&¹iNnΆdãƒ%oZ çWÜß´<4²SyÙóÞ†]_×#\©ëý9jÑê”(ÚïÔ~.·^nÀ‘J( ý‘¬èjd’[QfS\n8Ù/ `œ!šê—Ü8ºòÎá¸<¨3°*&£¨¿(v±€ž°`øt!ÁÚ¾áeãËáÈŒb# oØññòCT;H<µŽLJá¤{ ʔĽ¨ÿäj¤“Ž*Ï}»n”liIúa­E¿º«II)°…êLÍóûv$¤Éùfm4 öæ€ãÉ:{ýðŽ+Z^³fûš 呧f¹P†”aߎ9‰}” sÐS´pÂG:»hŒškuíSë¬YZ´N4ƒ“âÄ2yaÄelŸ{acQo¬ŸÌÔÖÄCÍݧm/F}YºPzÜŒ¨’xP˜,yr€AÊŸó+¥äËÞ˜ÄÓøþÖ„9Áª‘¿õÁ÷uñg4ü­Ê™çv~G Tö‡ë˜Á4õ¤\#{QáªáêÛï'úr‹™–µƒ‘eÛÅ™“~ž’§ih´ÔTºÆo¥:ÞìüV76>@Di;Öú0_ÆQú&~eF¯6ùÍÏ"þlÒ¤1|–>àCbU eZñpŒC:{ï•NXZâÅ?þhO5÷XÌ•Fæ?`I‹¥6xíwœåÅv2^ŽðIR‡¯ÍœýMÏ|Ìošˆý+%I’{¦ÐŽu=w¸ˆ±òý˜Žì3JÁJ*àS$s‹o› ä°g­Ks³’n›¯»·ÎD+¦ÇuCüf±fµI*¦ Ð·]3U«uÜ_l¢o"}`€µ¸™[üušÃÑï<­R3ó #KÇ{ñ~ê!õõÛ-J\RÊ9Á^T%”T* +ÙAÃèƒRÆ´( Núƒ4ñFá†F|&þFX´n®+áw.'—A +O"µŽ •axb×¹L„Ùiéœ^ÇqQf‚®Ô~PôÅ81‰6¡Ð)ÂÀÎÎìŒmB$Bnœ0m2ß.¾6z5W…>ñŒo&ÁrUHLµù’+šxï¾ÿ¯~êy* µvÀnÒIÁ¯÷s¸ÛÅøP¶uæMçßÙ*ãi{Ç) +ui¤4ºMq0ˆüvg ’Ë 3HýFý=We‚«¡»Å['ÚH”uºF—Ÿ¶^F’ïÄ€¼Y%ÀB¯ŠŒ÷Êy׬ÿ©‡ óäŠc¾Cï°¶ø+¡¾ÆƒÝØè-h¾»Ñ¿Éo0Æ'ÿМߕž«KVÆÏ›i›lÅ`B¨¨„ô ç—w)‚cÆÔ’°\O*œÆ¶´ÛúKˆ€ª +`ÀX …ZE|Q)ì·‚p”}Ñ<‰Qßù’™ {š ¾˜a¹ÞR\‘W7!Åt³\ˆUÃÐÁ þªƒîÿîS´^ÄòE­#Úæ^u”6§žóèŠiƒ3ÿº'ã£H‹_ }UÜ—<-;stïJ‡éªøÄÍú+Û wIаçŒN6`½‰«")1)#p›z±)¨Ý/jÈU ­ê‡z±Âpùo¯oW™W^äƾֿÛ_ÊÙ¹Ÿ'l í+±µñ±o³ˆÖuu¡>­æ•e¬g”ŸÔ³Ý9 +Â2—ó‚±à5*ÜlßýIZdãý®MÖ¼Ñß4ƒN,šPö”1Ãî°€ÙomP·Ñ0&.^¸isÝùUt6 ¾JAÚAëáâ“S“¤—=÷56öìhgrk ŽbbvõŽ¦Ý¯f¬ú‚œV8¬âN­d†fŒL<®JÏÏ| Éè_åcV"dm“œ¡ ÑNIXÙš;gý°)h^´8ò_vLÖ&ÐT_Fø\È?¹j¯K5]´mñ:©|ŽµqäKõ"ð~É=¾9zyáú}_%Äfêu²ˆûsY»šëZ=Lä“5ETžÐUÒÇ pÁ¬ËlûêìhŠt4)c9oŽH s X|Üõ˜i6»^ Ù÷ëb ì&æ‚q5x±_£fö`ZOÀ!2T+Ú®åã +wdBŸ®9#Æf^¥Ž+5øÍì¡FÛõ3ŒÚ­Žw9]c âKDZ•í²$å MOÆZ•aŸ `ð5aƒý +c`ËSÊðòÅCñ‹”s„¹œ_vÀÛb¡¼­äÅû’™0úûî£è¦d2¥šØ›Á`e¯¤Ÿ}tÅéþ¤bÝÔÄVÆŒU-¨phÌijQq£–*‹Þïyå Q‘:ƒWôX©’ˆ$¿·÷V +ýmÙQ—k{B˜=kÄ‚þyä£F_Í]ñ^ƒ±|Êv „Ê‹¯ð¹.º›íißœ‘ ðGH@^îaÊ7¡}b e„-V7 +r£QôeÏM̧÷BÙq Ýmùι±äÚãµ$[F‹é>t«‚/²H6ý*wòá«B­Bª×ŠA½’A6.Åv7Kp«€Ñ |Ð%ßï>Õ6ƒÃ] zqâº&ØÁe0ª:º¾ý y¤†êóˆR¾æDÉýB’ +ý‚¦©Ï +ßù{TéÓ8’%svzQÕÏtPI0@èzü9ðø¨`þýuÙ&ád´©·¹üyUÃôáG‚N>S¼RÜú' äV²Oøå$Õ¨ö +³ÂXÉúƒ ¿`åÝÈ39v¡gð·ªJZáL¬< åˆÔxu§}Fg’ü¤çÓ ƒ¢ä2 +ºo–ú.©ó/ÔµËÑ¥¨½È]ŠÐ «"Öå”…¨<‘©N{r#íxÌÊ÷;æ›xÉUÆn•ÄÞÉø{˜½9¿¶7`¾CIÛq¼+…GoüónE¢æ¼¢k®ÌQ)ŸE*#ÿ÷ü095qf£yÊwî]Úý-î`Ç03Rw˜Þs£†Œ¶fA†æ œö“Q]y&ú5V}Õ¶Ù¿C¦ºÖ¤žìbámÆXâ<‰ñkê>æ[ÛEcò€ ûÏú:Ï ª’$«¢ úX- DÐÅþDÔ‡æQL˳£K%|ó»8Mñ6@ « +é»'„ÓöóN¸Hÿ Œ_šKçû~ìá#hÜwÚ?ôÖ†”}—T>?V’—r[ðKÜŽ™›}¡ôg‰2þPy¿a7Çu-Ë0ðæ¼àsÆ\Uú[`ºcü¬× é šúìPAJª¹ÛtÚWÆùD–;¦µå¹>±:‡í`7dN*áãSØt¢+BÐÙŸ€6M"'ñK_ö²£¸Ý(‡„vå;|ƒ)y§ í q‘”6á› +·Âg¬~1“‡7»QÅøÅ´†Òúg’DåML¬Ï¶×n^ør~‘íǽñt“ÛÒ¢dŠ œ«Ó?k-GÂ|¿‰¸l—{ß’h]̱$©+Ã’iJÐÈÝÐò vsÃ/NCÛÁ½}Éƃ‚À,õg–[Ÿá­Ïn Xg‚00k‰$è'a9*õŒÉ—=Ü9á Ç–Fñ1¤Â Š +§´f²O³¸P£S™øý)îñrfé†9¥æ`I=¶z\ø™.BÖè)Û•…ܧ5v$øJ÷-­ÔbSÖQhz^äA˜õäl³R-‚ê²4â»%Þ5[ÿ5ÜÊoé †3xoäË'J~TŒ …8Y«ÝØN¸'Œôã2~£\ù·Šø¹>¶ ÓQ8ˆ_ËåòØYÅÌïé7À„SLS˜•OuOqõHýÖ|0›SƒãI˜Ã_à Œ]ØåQ)±E•=âÉé±äþOA†`Ì[¯*”‚“ âîŒoœs*ÀsfµáŠÄªÙË% [“£Û’ i§ÑíÆJJ£Y3fÌ©îçX户Ÿjæ¥hm¼´ý×[-j?(^°9dÒO +´HvøbêU†Û©‰Ãô8¼&ºW §‚ÏÛ ÈËj ¯1Ê«Ù' ÂKéÅK2åÐP!ˆªoÆØÉ°²ˆIÖ¡&‰¥Zå‡ë^”àx^ÚŽG&©kÈh !…ƒ¦«QQ3æ6¸a·Š1²ó"dMÈpÆ»ö<ðI_‹ÊPOGõåh4q…üûnfmÈÄ>69M¨]º~e_3•@µ¹öÔGKh§î 5¬ÇÁ¾¯Yºmj*%Åòÿòi²˜„cÉþmhM㬦¼R,߬bÆ[”ÀÓ¬£ÊoÈŠÛɃä¥Z®˜k…ÑÐÎô^T±Á©¼ÊÇ›°!BWJÌóÌOÜ,wù̃í¬Ø,Œ:rý%åW3Œ=gÄ™»¡êuõ? e\ÄœâIÛªn=µ&*Ø—•Í ÈÚ©(m o19O•- xÆÿü BÖògë*{ýù›´?HPa AØT(¸™#Þ;§ øÈ`ë˜Øw¶”˜Ä×lW¦¤£ ˆä}¹GU‘zÄ÷8êñ<Îæ§B$>Ð/ —@£{Ø°§Ý-Qˆƒ8ŠZ°G¯Üu­’fÛÐK\öM[«ïí$Mºc)ó‹¸n|j_0¦sp1ù8á- ßÉ°)L v£ŸP[ÕY¤ÇšŽH‘ Êæ%ÖFlÇ‹ÀX ©øNÙݽóµ²4giè–>–À"øy¾Ï­ºÉZæ-óÂYˆðxqëΠk}šK`¸S­^hÄëÊèÇø )Â]¥SÿŠE(\ÐH›d/鞧^鈸7L3ì¬ü7›u·}Ñ|CO½‰;eæ¹¹ aWOüè²Å"c;”+ v5ßô óm0ü©¶o«ÂÒ|Za©„^vƒ/\rÉà y4¹_“³PÞæÊœô"›‰ÈìÒz)IvoãÑÅ‘–±²ƸeV¶%á²ÖÓç+WLZ+…ýréï×û É w×þmj6Ç÷¥‡­¿Ìf6¡@°³ŸO=Šk©ý™ßžHžþxtF±­} \={`åF¬¿†õ'Ññúê…ñN Ó.q(ÖÀòMºÐmsÔnº# ãò0›”¦¦ôœZùaÅw K­bÒåGyÓùHtð™M}K†lY4fŒ¬Š|}¼Æ[Ùƒ®úIÑ‘ð~ˆ]æ_vwÖcÉYAÞ˜{Ñd™8}y«… 8š§QžŸsÉ<áãeþTp#ª +gK[K”1Ü<\þñØÍ"ÿªÈr‹°Ûƒ'7ÄÊŽÿ1Á4W ~{Áñƒ‘AË*©¬QF'j ?Ù£##’¡ÃJ‰)í›DbŸ¯ïö±é™s¤•(äqÔÙÎ+o¡¬†RÜ ê.ªYåâê…»ÇOÊu'®k>£\d¡hT’ó§9)ŬãN”e4G%1Tv_ +ɤ&9^áèqE–\ÿÆ+(•õ$ÛúyÌ>(i)µMш\óá’B»‹r šmVrŒ_· +k7 +â %7- ]”?n‹ϤV¯ÿ ½u*- öü³¿¹É„eÆø$½¼¨áߊt()PˆµÃ4ãAsæ/ørÖÓWA>¤¹àÞI}ªl+ÑŠ?å­=žâB:{WK·}­Òm`ßXžn\¡/°ÒÿØ7}¬ç+|ȇÝû¡‹è"Öï’Ìbõî‚#×)Œµõ¼›L'M@¨á%Ø)ý1210”åbûôT¨ç0Ã…ì›]·OòT:uÂÌ+ÝÍpϸÔ$ß©²0OV#ŸV¬#¾y)3ìy¾PûÉÎ>Ë,f€ßÍÞŠ¾ÔYòᬟô~z ~Ù‰kÈÆ!´uÛöí#˜8{?[J.קíhnÔ& +#@‹¢*½A_–fDªºe¥ˆ0à£w™x‡>Œ{ÕŠ©Àæ0O+¢@x»‹¢賎Ø'³ ‹«lR¯›˜ö22ß*§âÉ®Á*®ãôCn7¹¾ò5#¥S6%÷ø¦YøO^§õ 2ìȇ¯ØŒ¹e~]¤p—Gó7Z„0Ü Îux&íòêöxGϽ.çºé”¸Þ|v³ÔÌOù` (V&½míÔ!dW¼Kë7#Àz5ù¾áÇ×?ßXQöi6TZÖu»šB˜a~¿ ÔeìX.¸RYÈLý32Ú{Ø_ª„ó3—Œå]ƒÒ{—MÜÕS2ž,k}”ÁL!ri lù8—ÙrÔÀ+ò¿ ³ö¹h0 >ó꺂“¯š–qõ¸fìjÀ£vDÿf6^Ðò¾Ãm·è>Œ*ç šVÌ«¿ú)‰»´Ùê×P+¼ðj’=¿Åüv²sîLÇ#xŸeóeÕÛ Æn<«—Ÿ»Eå6Ó‹÷°¡/ñkÝ¡.!ñJƒ‘@c)7_ÍŸ:˜©q?ô·xæ#±ÐÂðŽ"Ãý˜ pXï(âˆbÐŽ0Zžá-7GIÛÆ:R;/ ñlbv:ÂöÛ² +oD”iB2üÞ„ý;üÔ †Oš±£‹LkÜaøþtîÕ–.Y–§ë«/AL~œ~Ä.Κ‰ënØwvXÞPmþ¥Jóœ¡Ç)WiÌm:Ø™NÌû•úÞ*LVêŠ_ú2¦\1Ã1DæìÑÑÕí¢oW ìt¦‰y”#“wnÐÌ\b<6$nURöÛB·'J¬¨öcñtYM6*ÅÞc¼É8p#ECª×éyºäT†v˪ŸÔ%)7kP5eߘaÑ¥E£)¯]jMM$£9òÉÑA'Û«°ö0´%©Âs òS¤1‘ZÃDŒ užÏ†+ǽü^Û,€ÖƑ夨òêŸqúî-kµÛûãƒjùø?¿xªGò ꑇ˜É”°@ ÿªù7f‰òr¬…1OYUÛ®ÁlÃM"·2‚«m…Î*W—¤àШæ–;ÀÀò¢$ÂCžh¹9T 3¿¨ëSúx^0/jµÈ¦XÏÚ¼±ÖE€§Y:ÿ³)õ6Ú*”ÏY\€uˆê«ÕTò»1^§rÄ'Ÿ°Np—õîÄ—Ue‘Õ÷Õ"~Ê-)áXăö.óϳï¤S"ªgßòÁò_ý9þý<óÆi•P™áýfž †P¼ùsrÑšÑaRçN¬ÌÔ†Ëcji½'o|Ùp›eÄ'¯“„OTèsPég<—r¢ÛÞ„ù–rãJµ·y¹¶>áüšÏþûXE>Ž†ìn²›soÙnÆ6ͧ$ÖF%VúÇA§ÚIèÁÔ§cW°ªÍXCAš—üO:VI11RMýóµ3ûè¢ÐNŒõÑ÷Œ4ÀF­Ÿ¨kã.Yz÷:oØSŒÍ¬œNt0Æýj"O6hP)Sµ¡£™¾Ïr5gp!÷'v€’ý"Ä.1Z6u¢z,6UÇ”ÔW$¼/þlwê†yÇpä~µŒ”Çb®ÉOÏØÎë ”A ä"=³¤.´»×\K€ú8[¤,i!K˜ól!»}‘ƒlt£Œ‘ËX Àò9wAU5BÊð÷í¡o¹v‹åÇ:gI=‘×gH‹}Á¤WÎ@’ëÿ ÐǾK&½‡õ?Žóʦ¦æ™wÿæ>M =.¹Ïðô£€n†ô=ÉäÚ@'Zp§ö¨Iàô‹™ZRéhßlÄO™aºÃÅ)'.Ð 2ï‘,¶¾0:ÎiÈCÚì›yu¬‰þÄß"§fG ØϼKACTZ+¥¶!< Ô“ßä!MžvU +]/ L +5·kö3»>„ô°ïëw;UÞ‚ ¸¡<ûâ•[Ë»ó<ž“è8ø€ËºßûóÕ\ÅØî*¼oú“&†]e(š¾^*qÑÙ8óÕÒ XI¥ˆmÌ’­$P•¿÷|Pv­ÌÅs¨•7­cA”G/~®çÐî™Ò -”§ž;W½¬ÄpÚ 5gÊôzzè -Æqí¹øI½3z¿Ö£™>‚ýí o±Lb™Ëÿ.›@‚DzeEûÀ¿~¿8ƒAÅÖÛ~7†?!¦36Ìê»mÓÐï÷M&ÌpŸ¿à™q9nºî‰Ä&×£SK/×[Ê/ÄMºëôSš+sÇgkÅuH,ËîDˆÙƺ”u.8<åû(`a˜Ì\Ë~r~ª£›:$iÁ×Ò ”g§£¬Ä’–°ÿ\LÑvÐ mŠ®¹¡”2¹3ªßN^tÉÑ}Ÿ•š/ué*/û.‚õ8.ZnS–ê2$Â:B,¿µ9ÜÌžgŠÈ(¦ ½6Z/f¢·ÔŸQl3dà"Í9‘d7ù9°¾æ.êÀÕ¶¾ÀÛ5‘P»ƒŸ_ÔV®˜ç‹äKZŸ4EÐ…¢!“€]µN\”ëºôàÝG³—}m3§Ìð´½ú<àQ‰‰×J…¶šB +6ºcãi[ç°‡nb‰!ÁœY:·K +­Ò낤ó£{Oë}/Ö¡áz÷ÁˆóÛ¯7 ):³HHhœšMtŸ¡$æ“¥,‚ít¨·Äc>úm;iãkqÏœ[G¯îTÊ®ž÷ mk£DŠÅ»ùæ.õq½Ty§Š~T“6Ýköœ²ýæù gñ¢Ç·ÅHؤ0ç´­dM8cõÝÔ‚Š7¼ó$ø.+Æè÷®g¤[æ§ +–\$s”ˆ›Ö¦PÞ Úé,ÌÝüü¬/X–ƾOÛÄÝDûŸ‡1´ ð×>Å•Ìì +¦Z)Ö®¨ÏÏQ§¹CªæV ¢¬ßî¶8ú ¥GÖ]­N˜.Àÿ~6âϾ“ú[ù÷‚3Ã×Òü÷°úD)“ÛÕiIUîË“•Jl¯eT¯¿ÿî"}é9Z­ý@xAœ.ã+έh¬ÆµÐ7´‚NR 0Õ!¬Ð‘ D+˸Ò)ר:ÅÃtaKe+Ê_˜‘%õhuèŒäCN ˜&ûâd€\.Œl#3^1Ç%fu›êÐ…pêL¾JÄÝ…ã¥ÌêOñ1†„—n¿†å­½:¬Þ<Ñd›>ÿƒý‚fZ4¬uGmç˜_žÕ9îÃQ±4ÐG/E…¥ÆÁK¢¾Kk2°š@3\º`Ït0"Ñfw¸Áå}†¬ò#šJõŸîˆ_üŽ^ÙÁèFS¢8õ3;¿|bXÃÇÐHa‡Â£ œ¯ˆeY/åêH^\ÞØÕ¦/Ï3l}iæ3vc;¤;% 8 ¨žÒmü¢pñfÄcónÞílˆ7€Úàγ°íÿÃGhºHöí³·&Á‹‘.÷HÔ XÔ‰„øûûÒ]ߔګN?ãŠð¶+±ëåaÿvÝ”+»V¹‰HaêyŒ’üËFFq—øøÝŸíSÌhfúhéË)þ$‹‰çËG:k|ƒ \.NkX‰LQ` žl£¥NP«¾Z”)̯æ⧺»‹-jEö§™0¥"^ +ô^¦¸ÚŠ¨}[K]Åòõù3ÑFÖ—˜ãwå …Ï"½cPkGæÁ%%_–úµE}ÕêЧæΉ`ù“:ÍÉö ÊÍœtWé­U«’6¾:M8eAñçµI³uG„/à*úy³wer[èĈ‡Ž +Í`í©púö"¦è˜¸è„uòÎF³‚{7XKT]u–ˆ´ +À/fS“feë»ësWm®–”—Ä^ |ßHo¼’[ ^¨C„ ^ùË8°MÕÝ—¯z¯SÒ¢L±zu2¬cÕXv;sw2U»VlÓPÑË-_® T@Ú##<—N©¢S›pþ:û½íQü ÓÕàsÁ˜©V:•}%_/ž"[øDà'¶¦ôé-L£ÐõÛ©“ŸÕM©ÇÉz“å,SÌ{Œ=SÇϼÅƇL+¬×„pd"«)•ßq¬¤’*0„ª½?ê.‘µj¥M‘Ìaøü0Þ{¦ÄÌ¡ß!¸r†77NR¾ñ”ýHû)Ó3·ø[YÆ 3lÁòŒ ýshÆöƒœ–r~¸]¾ç5§:¯\ðšâ .ÜþØ’ãnºMZSOsNL†œO.Õ¯7.‰ûÛŽàÇÈo> endobj +594 0 obj << +/Ascent 694 +/CapHeight 686 +/Descent -194 +/FontName /RZGSKN+CMBX12 +/ItalicAngle 0 +/StemV 109 +/XHeight 444 +/FontBBox [-53 -251 1139 750] +/Flags 4 +/CharSet (/ff/fi/quotedblright/quoteright/hyphen/period/zero/one/two/three/four/five/six/seven/eight/nine/question/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/Z/quotedblleft/a/b/c/d/e/f/g/h/i/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z) +/FontFile 595 0 R +>> endobj +2527 0 obj +[656 625 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 581 0 0 0 0 313 0 0 0 0 0 375 313 0 563 563 563 563 563 563 563 563 563 563 0 0 0 0 0 531 0 850 800 813 862 738 707 884 880 419 581 881 676 1067 880 845 769 845 839 625 782 865 850 1162 0 0 688 0 581 0 0 0 0 547 625 500 625 513 344 563 625 313 0 594 313 938 625 563 625 594 459 444 438 625 594 813 594 594 500 ] +endobj +588 0 obj << +/Length1 1735 +/Length2 14271 +/Length3 532 +/Length 15277 +/Filter /FlateDecode +>> +stream +xÚíµsxäßò9±ÕÉĶmÛ¶mgbÛ6&v&öÄÎĶmÞ|÷>¿=s÷ùóÞ¿Îsºûé§_µjU½«V­OÈ)RóÙ‹ØÚ8QÓÓÐs¥•Äééô4ttÐÄÄ‚ÆúNæ¶6BúNÆzvv€ˆ±ÁçÏ3 = 41@ÐÖÎÝÁÜÔÌ @&Hþ+€ßÚØÁÜPß ­ïdflýÃPß + hkhnìäNà·²(ü³Ã `ìhìàblDMO027t›šÛ@Óþ£IÜÆÄÀúo³‘³Ýÿ,¹;8~ŠýK&9àS¤‘­•;ÀÈØšVÆö3›ñ§–ÿ?dýwpg++}ëÂÿ«SÿÛº¾µ¹•ûÿò°µ¶sv2vHÛ;Øü·«ªñ¿ÅI™;[ÿ÷ª¸“¾•¹!¿©•1€šž‰†ŽéßvsGs7c#9s'C3€‰¾•£ñ¿ìÆ6Fÿ­ä³ÿÒA+"¯.¯!@ù¿Žö_‹rúæ6NJîvƺ?Þÿbú?üÙ$s7€&Ýg—é??ßÿóKû¿’ ÛÚ™Û˜˜YúúîПCôIÌOz€¹‘±ÀØíS1-­ÓçÀgg¼&¶Ðÿœ+=€ÖÄüÛ¿‘éÿbFFíçn+}ë?&f­³µÁ?“`jó3ÓçNC[kký?–OG3w;3ã¿œX´vŸƒ`kôÇÄ õ0v°ýc`ÐÚÚÿ‡™é´N®Ö™é?ÙÌÁø/j°uvøc`ü§(—¿<>Å9~6ô?ü)ÍÑØå/eŸÍ£ý÷TüÇÂúY§ù_BX>£Ú;;þs+ÿ?#ñÿ¡Ï(è3‚àú,Tè}V)übý¬Iô}Ö#ö‡>ÓŠÿ¡Ï|’è3ŸÔúÌ'ý‡>óÉü¡Ï|²ÿ!¶ÏžÊý¡Ïìòè3»ÂúÌ®ø‡>û¨ô‡>cªÿ‡>/9íŸÃgÿÌnð‡>= ÿ Ýgz£¿ð3¿ñ_øÏqþ…Ÿ +LÿÂO fág?þ_ºO–᧠+«¿ðSÆŸA¦ÿ¼’´6᧠ۿðS†Ý_øÏéÿ…Ÿ2þÂê/ü<§¿ðS•ó_ø©Êå/üTåú>U¹ý…ŸªÜÿÂOUá?÷ÓÆHßñß-ùߟC¶nžÔôŸ³KÍðy“>u³ØYؽÿßžÊ6染-.ôyÙèèØØþe5tvp0¶qú×_ÀgŽÿaóÏ碱±›±!ôÒ¼­!g EJSðá‚©20rGœ´’À±Î †4Nš“uN¤9‡æI%c¼kÄ D ór„ä3ÉJZ#æMÌ&~¯AOEÚ EÄA8ò¼tEˆ Ã-à¡œ_½ðÖYaKø»vÍ”Ëßî6\:Áª¥ŽèYó1ÏÂA,Ì¿ÝøXúŽo.Á¤}ÛK†ÖÎi“J2V9܈}>µ-°]*B×J¿C~_Âì]›±\…KcÈ‘ùÆý +EGîf²5MŸa‰¿¤–Í.öQÓpO@3ì2/—¶(ÇZRb߇€k1c†ÌCpÊ"‘}º9\®ÔàJ£=â?5W1xKÛPZÐ%=~ºL¯Ý™ù6Šr8{HG:Îñ3gRz8òÕÞhR¹žáyŽÉß)j.o”—o_Ç“Ò-wñîéRóí®q Z"ù\)I€¶U¹ó¨k) TD:Õ£†µò9‘Fy“տ@²—†{]y©ú*[6Zð§úé¡oi JPÑŒ,k_ÆS +µÓþ©h ƒG7L¦Çì2a‡¹¾ôòá5ňŽô¸ôÓëtH‘Ió‹ .°4Üü¯h6ç_£§®æ7ø¼¾=Ý­ëî‰sG_˜É(ÐA™m42—Ê¡û™(vÕJHân•pÚŒê³K3ZÃ`ÆGgN—“Tœ²iåóØÁ8µÛ€E ¼Ä¯‡‰•ŽP`v4©»ÆS¿§G¿ÆÁ¯gà {ÙUÔ¨œ<ÁIwµÍ)oiÛЧÇU˜”«éò†ö5ºÉóǃ>k§ñ¬jÇ•‡ŒDeMûµÖø{^G†šRvÿùÛXv’–ôb=´%tV”•-yƒÒ³ÒrÕþ×9×oÌö™èôF—šcH?û7 ½N.Õ¥vˆ“á.gloJá¬46ýæþš¥H +ÄΉ[™×¯#çaÄyeýáï.å«VNÒ½¾[ÚxÜT Žh¿ÝMËÉxPåí½¹ËEòE뽕p«ÍN ¤ù?ç˜$¶¡Ò× -Š‰m`»£bIä(ß60¨f{39STJb‚mé8”ÆQ0·7ÅDÛh¾žkÂ?z _†Ëg/#ãÚ.'%×d™AÔ;éØ +ק< +i¯ô MÜÖ Yù´IBIÝ4ÃÐBÏ`œk×±Ù9M’ä“"ÐStƒŽŠƒÀ¨÷Ëmé"!ƬKn§Rûî!õê­€ƒ.¶Â¾fZ}çuT·ß1ËöCúëM,ðòñ-<,b4õež¶µ!•P‹tJÄQ¹Á†ùJGb—ö\ñN“'ëéT¿°´¸è é=_4´c…[³…—×X˜g’@){2pšÂ¶' Éô/žóƒv»£ A"~…¸(G‹ëP{¸BÒU¥€+уDö˜VIêí+¦ÙÞ6Þý²êO"·Ù!„ö×YàTŽÍî„ei@ÅÔxF¶Îà Ç"µ÷ðË7¡ïgŸ-¿óu '"̪V÷o…g¶„çÌPÏ%¨S±ÎÛ†°äŽ@PGöeBâuØ9¯u–§¹ãª|n®¿º|îÐÅLy/ +w¥28LUƒmòü­,”*q°ŽÑ‰ëî¨t| 㮩8îq0éo­­» é>ìŠKƈIhаXºA¢*C4ÇçnìÛ’Ø›¿\`î)õƒ‰JäžÝW(òDT25 WÀrê6ÑA.¦ëÚ (첧!2²t®Qª°ŸïOÃBVXžô¾@ü‚ŒèOfz¤½y§¼y—såa;Ù4ØJ~ÍÇE«L‡z˜Ò¿žc“ü‰öQž”Þ,|ò +ˆ¦{ÑûË(èq%,”ýàµý¾Sg‚c”Fçn÷7¸î‘†õÂk$‹€ºØ“â±2¢“>s]_ú@hsKïOD>,†xˆŽX;é­Aê–‡kU9¤r›=ëãG£º%'ÎÍ»?b—Eªá¬Ç^9®Xã’ÐÚ)¸ +žTlÌ´¿ìÀÖ^t¿z÷Ë ï¼/üTBICX¢]ë¢ÙïXoÏYQ&Xµ­êãçJæM JÜce«€jR9üá-KAê "Œþq–~P +´UïÍ-ê1¯JÁš™ˆ]‹”Ä6’³7¨°:I"Þ¥+eÖZª´Ti/ÆTziù‚Š©ê÷¼Â"èõ´ì~{ 1´ZøÕ"©ÿ¦æŒ±_ú—|æ»è£:`ˆó`ç….˺=¶ÞsáÕðƒñ,årƒß–u›§Ú·L E5]%¶§q.QHœoÚÁ¡ª`æUæõ™IÔßQ £ä`VÒEØÿ[sÒÚVk…7ïdLãöud¶Ufó娉H;˜ô™¸\ ¬nÀUàÃý·U\yGAiѬÈs$ŠuÞ­ï†a3¢²…|E_|Ìo x Wª:t~¶Æ5=TØ\wÛKü>ÖÉ®bS dT¥ÇÖ}? YžPLøtIpËñyÖ² NnÊ…ä Å›VJ/Ðõ› ñ­kË€ ‰ÃÞ­7ÍöõÛI_²~JñÕPw›ýÎé±jò>±…{ ñ.+Š‘£Ž)h¢X”ã~ƒÞQ˜¾¿ÃTªïÂ]ÍÝò>Øh½QÎý!»c ?^!·žô áôëðô׸ƒºŸyÆN(%ÝÃËJVNN3ÔPc[j–ñíjô߀KÉÛæE Eæ˜y~`üŽ¥£½âé뵟,Ê 9êÚÚ³`•î< 2/?˜X]ýŠÔZïÁ`.[áŒÀÑï<Øë².nB å'dðågö>V/A_µ ܺ›ÒWv J±W ÓŽÒRqÿTKsì&ûd ê§g¦ù£Èa¥/¡Z]Hæ@é±]J%MASDîŽßCL#¸cÚÅ^n>05*º°–ÏÆ»Žˆ­@×]ºÃ|UR¨lN û!Ãj³æ_±ç\–hdK §6úÈeÐã¬SrZÉäéËø©Ë½3;IÅ–ž¬E~ÇóðnOã…]JO_YÙ;F6‘xäzu……ÔB—˜Aˆ…ϳï‚9—Yý¤…aêõ™è·Žà½ìåZ*vI½7!”3¾E#­— {„åz&ÌAWÔº3£âìñ2‹X’b1—D¸4†ï2L2ò\ÍàÒ°ŸiÃb !Ò²°o¬‹Oª¶N–MeV¯±TÛ`9É Kté‰käÀ§¤C;Û3¿}L˜Ã¬S N€Ëm1ê᫈t‡–õ† jN¨/5¼é‘Ù.v¶¼‹zš+§¨ iðšJ ¬ÖÉÉjbJ&Îñô°+Xˆ‹²ÝGgU¨þú²~´—< +~2ôhñºÖ)åÿ‚Ux»hÃÝ|rÂ4u3­7ý­ØsN2#¨“f‚ÌEŒŽY¸LoÎ’«ný…"/4à—ûöüLeoU4UñÜÍ‹ i½WyË›´lŽ«<ƒ/>Ôè”aÖLZ€¿ûŒ^¼YB!ʶB)þf7Z> ¿/Ü2UÞœdÍ2¤¦éËì¥. û°×uö`pi˜Ø|âÑêö]ÍÐäÝ0 G‡Äy[g.ÌÑ\žÊÏz9~ä6OYŒoÐpÛ)ýlÔ>µÄ[,ñïâW¼ª“@YÇSNö8G)?';eÍ.Å+aœà}׳ڄ4>°âj‰“º—f~îƒöÙù'UÍãµà“Ù²§øOÒßö¡§§Ùüw¾ýç‡á7Žoœî²’m©Ðú‚mT†‹êûÈuÊ:WÖ™£–pçwä÷’·äE-«ÁÈG"uÕnþË·zÈÛ ½áÝtÆ“â2¢ 6\:ËŒ´2sŠÈÏhy$Axn»®Â`‰rÖË(#tUÉ»ÔÞÀî/VŽ‚ M‰ãVnåµ6‚ñ±«ã^¬oËèËtŒ¬…†xÞùÀku ð\¶½µá߹ðvºnò^Œm¢Úö¾ ˆñ5ƒ =¼´…ÄÌDZãf9ÿ(˧—0ͨ8\b‰h^¶þL\Ó .ä%ro*nbñƒ +Œ‰kŽß­„LU‡µù<ÿÀÁïBý›­·ˆ‹®îuƒ¸ÀR yÀ.Üð¥õ F¶Æ_ ÎÁªâ¼º)n)¤F!PN‘m®ÙF’¢…CF"uAý†”õ¾Fú9á›QË÷:*¢¶­±qH ²†0Úĵ4ùœá`_˜½[Ž 2>k:áwá:Õx•p7Ú25®9G uß»A¹CF +={©£>Kf.RpMD5b.ùÙÉ1öB¼n,7™y:¯Æ´é‘—/Ƭ²¡X=…s•4’LÒ:p4©b‚¼×M –oÆOµÅ"Û³ª÷ñ©ÕÛ—a’ÛüáÃÍ “1òjmrCx.c+O&¯\ ‘¹J r[œBWgpGK]UŽ£xc7B$S꺳㣗XºÊðWƒr¬Þœlé&à"‡8Äà¢ß‚†tÆ×<È+‚ú¦yM0Øèâ6n©USÎæ­º[ÓÄz‹‰ÒFóõ6ä¾aúï]ð†ë¶±þ‚œuñ^Ö™ïJ*“êy‹ë‹È=é\–- F5^Äf‡IJ˜Š7¤HÌs„‘¢\Ü7U‡‹¨ñT—­xÊцÝR±c¹ß!ȧ 3¯Xô]Å9UÕTJlZFA9Õß +n°×â ¬PæK­ +꥛„ì–º­ñ1Í%žÿLþyàtï$ãÐ6‚«ÇwNª5äó 6Û#Ç饯%pñsý—a ñy úó‚ÁùÁ/‘Vï¨;:…”Bëj4·@óÃØ•·5áP5Ã`º‰L?Ç2ZØbð˜9ƒZÉܹ§éyÂ’Mwì< '±‡J·Ôóî|FöM/?)e`\2Uˆ×Of|Šª#ntÀË4LþùåñqØè +!ŠxIMg`i‰mÈS-$‡÷ûz÷´¬ìewWúJd]ÖV%@Ì x<@Î ¥V¸¹·áF§˜5=JDzwÜKë8ã‹èÀ/g{×`ôKÓøc’mÓöžm2›”>¢åw ‹‚ >û;?å†8ˆÊv™˜X®?ÙØ+Ä^À¦»÷®ÛM*fM.{Ä…Óná7U[»ƒâa|—P8숼áYcrb»ÏE˜ã‰:H& ·vZnûÐä¯àš.—œ²ÁF@Nß'1XgüÊ€ÒÀ–%¿¨Îzd¯Y Aqhgê3Éxv¹ã¨ÚÉêŠ%7D‘„«¶H憴ÊV݇Jx²ûº4ý”ó ’õ—iú­ªp3f6ÑFû´)hzàò’pt‹éí§g2Q¬¨6bŠ§v*] vÀ‰ïÇ 5ÆçžCvä$±o·›¸ŠÅö-Û^ži¾ü&O]›) ^®ªmfmÊÖÒ„}}†¿Bè*w8¦HCC±:k×$ŸüjüÑ„§Ä#ŽvxJfiëD˜äb#XéZ.D¿^ Ã43{°¦‹ 1wZžR³ã6l¢k.*ˉ§Ö+}•=(i\ãèÔÖÂ{Å©8W¯Àæ‡Íw/Žâ¶:ЪÂgÇ›bÚ’ßÔ|î`ª¶pX"ïtHcyq¨a ·(ÔZpW‰›L$žàßRx« +)êÖ:…MCŽZÞBø˜é7Φu*bžxh‡lœàµ ÃÒÚ¸]ÅL:„‘ýË{§R( ÊÈ[`7ß'ñ›ÜÍW…(”µ‚zoÀ¤üò¡ÂV©….t ‡­TƤR›™”WÙôü¬ü·Ä×pf§ê¦=7z½cE¨#Ãœ©l…·Հ̾½§(Q2DæݸMñ«ÂYߑ쟫«´1­›äYX ³Ö²v74Ky°ƒõ ¸—ì¦n¿¬ÌfYe±6^qðijSGØòâbÒïÉðèð—Êl.˜<^£§ÏmsÈDzÍd¢5TÚì¸Hœ¡½¶kæ{·Œä4‘Ä<œÌáÄ÷pJ­K’ ¿ÇÍ fR¶`ëqÄòku­ 9žŒ©ÑãX¦òäo Ö>eu§E£ñÝûò‡óö× E@!Htß|JçíæV&an}ø~únZOîï{¸X€Ç·¡­&_;E\-Ç_à ²ºšêò‹1Ì>Ê1".†×8;‚›Ûe¬é]¡Þg3üæ¥ãH¦õ›ýVcú‚ A^/µVâ0}Œ‘§¡ü3IÃ)­Õª +-}œ=ò»k^Æù°üÓlËÛþ6Ÿã 4¨å—Pó²c}Ñ4r`pDô$ /„Žn¡ƒµ ö%O‰þ%·š¡J—¡Á º‘·íÛLQwÕ^7Òÿ'WÖt¦DÞ<=$½dÔ6ëPù‰¶¶½|܃Ëd  ˜pÛPWtcO¬ØM¡ýu~“ŒÒ^iGo‹fPó ”sÄünåÈÁ|W˜Gz«X%e¶DÊŠ„èû‡ó§°•ÝÍ]Y&›Ö˜¤ã¯ãRšLZô¬â#ÍçcÜP÷6U™ Y|Š‹S„Y_³æü‰ó¢Þcy® ‡îkKVS¸ÊvA×ÈÙ~ë£pÈiPPÂu[‘L¾q[gÉ ÞNª{ 3íÎ`+'±+R]¸ÜybnV<>ºvF[ï›Õß#V\ãóKWÞ{“ 1ðG*ßKA‚ˆ!å˜3ºÕnùÕ¦mj}°Îõ~]BC ‘[ˆÝŽÛR•ë[­Š‚@½{¶à\wÔ ²™mî‰pçÂ;HyméV$f0匼Úî„7ýè«kúÈÆã½ÆÝ-ÞÛ™ƒ ¾Ñk¡Iœ‚l?ØÏÀHâ̦j„ûFJ–s¡-~»”[Ø61(}Žó¨v°ß®nH#ß$¬i=ÖO·Ú°pxdŒ~Säyã…D‰t¬¥sfÄ‘€0!áuf2tTÂóÞ%'u†˜ÕŒ’?J†-¢¼&¬à½]ÒÛpkﵟú{æ´n·¼¤š¿ÕÚ« +E­1  .%ŽAvC#¼µ ²*„NɆ‰ÓË¡l…8§ßîByë°q²›5N¯S(ë'7¡ÕM9ÝK}Bç,LàaÌ*ã’lû}¨¤Ð…±ÍY<‚ý_áÄ(•hÌ­-„/u½Âv 9D±JCLHòý­ã@úOÇÒÜ&¾’eæ±{d#Ì`õhØ$:¡%ùi’É_œËåµk¡w4䬑òe¤h¹yÊj".~C´ +{M±rH­<±uzHU8Øh1_q;)‰âFÄnÕqÎ%v7ëJDï +º£ µN«!!LÎüÁ…=×¢TqQ¿<Ôý"´ëGŠ ¿Íí¹™œž=«‰0\oŸ,8$àûþ­31êhe§iɔ딦{ñ±f#8bã+—ð‡ýv,Ù¾Nõ£:ˆ“ùo5³ƒ$Áh“ø9,›Ö_é +¾®‘ R•×#äz)K68V mRóNJV܉ %ò{ºc +LGKÜ¢d ÷ëzÈÉeÎä䤊‹°`ø†Wç©ÞËQìHA @Ã|ø:𮸠G{ÐZ«ü"Ï9|¸ÍǬò€ k±AüSµ¢õû…Ÿ‘&^3<.%°—S  ~®òFwN(xšÈ8ˆÛÚ]êÆí§b]$‘äË÷*å¿™) +f¶=ýb‡`® ?¿Ëf!ÉS²G/³o¬J„ö©&ïpNDÙºKÚ­®¿uzmD˜:óîÄÐÉu\’¤˜ëïøR¶ù­ 7XÒé4ˆšÑ\è„"¨vÿ"¿“jŽc¢?Qæ£4qGEæß3rø–W¬`Ì“o¡gYZ¤ Á– Ž˜×Åxd VFýÏ©·½ó8½TÂœW÷¡¹$Ђ:{¦0B±œ‹ÐÙj: g Õ>`Nö=ÜEfª#4Q0MÒÀåG±£° +Q“ŠîNið—Ù„ú•÷ËbnŠlƒìûæfkJ0°]î,—‹í·òØlûYw”§Qí> + ›Y»cã¶Úépý: ÷kÐj¤$XÞü&¤x[Ô†Ñ*´ÊuݱßÁ+„ô¸]8}Ô°õ™3ÓòX‰ˆ1ЮÐ8eŠÂ}™1moº?S}nCé2j*_ aøGY}Y\Ú_«Â…¨Cc¥âˆÃ¿L²%ô“Œ=ù'aŒµô]GPëJèúzû*©£AE©ØQá-‡]k¯:Ž»œãnä†×—æ5PI“š·ÕDæ©_ðâ1¦V.œ:x»¢’º°q/(‹)Âeêßå…7šèhÅúQ¿ñâHàd+vkX#\êâ½ÁiKÜfºÁþ†C&®OI¯â>3L\íB¹J\éxöžÊîëÈLƒÖõ5Þ5é_o7†–o`Ví£É|þc?Û\ZɪT¿"–—x_†ôÀ‰×RV¸pi¼Bü©'Dr;¡àä‘l—‡Á « ÜÚÞÚ?I[¶7º·è¤¥]"œQî8zS§ö|O&+•Þ[?N!;0•¤åkÙ©eă»pÝÙA*?Å>;ÃrsnÚ[9‰ù’dAfç[ÿ¤\Ç––­yÅE}Îí/)"ÉÉ8P¯+¨ËØ ¿[yp½›B0aƒŽ‹@¶­ ®Æ¡ä#\âÕÞ–µ¢"¿™·ë,ö…-­C!sAe¨;PQå°F̘xÎ ã¢.oîL!Øëng©³Ûœn¢ßva¥!Š¯};`SŒÌþ'£{Ö°w/þý†¡y1˜k"šà<†R\í˜y²£NŽÆ#Ÿ¨æJNN¶ZÚ]P"J(€B}©ß1à€)Ĭ·ŠpõÇyœ}UÔã•Çý%ûÎ4¾)’¶Í2ÄÚÌF$ë\p’þqû¢¦ãÇŽÛ+Ll†«6$Ò/Qa‹ë@‹šÕÓ$ž&AD0þ‰ Q.&/ÖñJ͉%~‹°ó€ótËg†nckýÜÝ£Ð!Æù¨®+Ù€@žu«J] ùI? ˜/Ê"„-’}ÚKÜ6«<_Xdð=ßXc`›¸TK*ù qçÊp)ë<Ù4ÍܼÑl5¯w XUËQí\Õ0±m¬NF0ÛYaëâ(§ =‰ü¸ü†û¨tàlB§ž¿ ]zªª­í$?œ^¦¥9¸Î=`ÿ4‘zƸ˜lÑ^éÉŠ N¥ékó¹a©ÃïÙâ[–à—ÿ^¸´n?…Šô2Ñ;D†F%–X©È¨—ÞØo*hUÏïŽPº÷CÈA +*„)Ì7Ù'pN"¦Ø1 ͘œdÄ Jk?}}@Zò\~ëWŽ.J’JÖ”Š±íÄ’£ƒ=ô¤]Q¡‡ÿÊw ‘¤¯‡Fõeú²†¡ú±X·ÁQxÇžª])q»™M‡ké`k(áG ›AÛWŸ!Ö%\Õê+3®|¥Ýû ÎÏ¢eš£ÌqPLõ*ÁdŠÏ/¤eŽCðžr*Ÿp^¿ä&mâƒQ¾Ó<;Éôüê…0wѵrØ×Á—ŠýÔ ×À2BQÿ70míª·ÊÃAŠö®ÁåKüËï32WòjŸ…ž͹¯p| Ar40ñÑþdUÅáøèUïY(|w­ú<óV{Â7ýÒma–q¸Ï2Ê*–Ò¥ÜjN*wöLtlœ%:ÑñZ‰&i[=z¢ªÆ1i+cócÝ;WGÔ î1y"<5\ŒäAT\zKÔU¤Áσ>‘Ú2âgÅ%Hº„2½ë¬ç†[â†Cdð +®Äõb©dÎÅV$¶+5¡ößêfûkß­{nâWN›.6öíµðyÀK²¢ŸÐà~¬Ç&ÃhR™5Ýí5-±Ê«7œç;zÔåU„ +™; +p¨,vmÉΤ“PtV¿ÅJÑMû'\Åþ.eòRp[‹PÇÅ}À~H°lâvUþ÷íR†Gê ·Î°Ü *9_óÞn +²5û7-²(D ¶#âèÒCh#QFú'‰Ó—®¨UѦhUŽ5q~‹©Rm¯>ù§­Óåa¹‘½Q½Y¯rq[¸}¥¿¯ö¯JŽXq¶M+H*1œë^Ó­7ÛCÏ6ñ ÒÌ„8Qò1 ªv¶ƒ`LBÔ¸ÄÙûØ°®…D"ˆÕpÑÌM˜k”e>VlÁDªT*ž`Lm6€ÁØÞ3ù ˆkö„χÇ éƒ䇦ëqE¿žð–´Ìôáć)¡ss|ìj‰‡;Û˜ô».Ö$\4å€ã‹¡ãÇQpЭp·’Ncýê¯?ŠÜvÄuíÁªª²“œ­Ø%¸=Í©ÚߤøA}<"d˜5SUöóçþ‰ØG,ÈoôÏG×Ú2 Âv,—Ð^.ÊvãúCxk‰À¢aô|÷ Ö|ÌBAX) ‰£ËÓšuMjQ¢Ê…`}ç}š‚B ±(Ò R@öJOï5³ÊøßÄÃ¥Lm«Z «¹7>Ô‚@ee÷'šÅ.=™vl«* Gª†ªÉ&í e²ŒÕ­O +5ñéÀ¼0éÇ C ·žGL‘µr|GŠnk½µ÷3Rо¦ª©ùJ‰ÜPè@Ô¯ÜÇpÙ-Ï‹ñnºúÑ”@):j—ÓØzS@s¯ìòèå­·gâùƒµ÷(‰ (SêëÚZnü„¯¦!¡>¬T¬x÷àúÔ-à}#Ä„ÁÉÕn}GŠ–|I$‡nŠÂÚ!Z±ºE&»ÄeÌG '©W¶®‰œÖKРŠ+‚†X͘ü@[$œ¢³{Þ1\Ñ+~öàl(€Ð”’‚×»Þh’“˜l8=H“a- aJ°¬À÷H ©ðúJæ IýÖú­âÐvg)àŽÄӣ˄Òßp¾%—[W‚ß÷±åžÁóÁnQxá+leØÕ¢õ²^QY?ø‚Z®ü”nàØ£ÒGÛ +ƒt¤ÀÔ9¢øÓL#gGí ¡*à"ö›+ÞÁJ2È.Ï(ñ€Ê‚PëyÌÀƸ‰“úXÇ>±{QK-.oõš±T +6실m*•yzî,Ñ´¼¾¶ 5ÿeÁsTyšÇklÛ2 {ú>Ó½"Ò™!^O`8úmgNO°«sF{›tü¾×@¢93b×]-/Ÿ¼'£Ðš@ýøÃËî‹Ju‡®Å<[zQÏØÍÌÉIXêx„lHIŽ±}÷Qî3M¢nØ“⯗¡<¯z¹ýD,É2¦•Î)*w©,6ÕªÜ#ÛîÕº¹Ç‚m†_“+~Ô‘¯!% 7Ò¾¤WµÕ{%Ø™¬«]6G%ã$÷q6ÒM-h@s;³MÅÛêgƒÎÄå.‘V=ñ™°œ©@ùÙVÍ*_• §f“θú†vÔ”[__Bô5P–b¼:ÕøaèbPdê‰_5NS×%êN¡v«RY©›ñ2¡B÷…jB(_ÅtàÊ‹è{àטqT²2‘µU +Sš®¤Ã Ðàœ““‡6ÐÔ£(ü…e¥‡—}£±×!Øa{S’pˆ´,`:(Mõç|4±‘-›£Ç|f¡‹˜²ƒzïõÄïKQE° mˆ¸ÇÌ™— 05°Éu9«3×sáÕ-†í|¥¼•ƒ ³s]A% +^ô {ÜÈ_á}1žÆžÚ¾›+lÛÐ(4ÓèüëEt×è˜(PÙÔ¢¸ ØÐtÑò§_Ù©à·ô±,an!à‡ýGIáÙí‚Œ‹ƒ=Í"uøk…_3nïpÓp: ½ˆòe)åT÷ùòrYr5NîÕ(ï1W¡Úöw$ŽHŠ[AÅr^w9â®B÷¿q.—Xû¥k·ŠÌaîÆFQmovæ6"rd Ú:¹.v1£g|\¼íoeì¯Ç©ÔÀ›àAžŽc—— Ì}ìi¥â™umrÞö|»C,S6=è„ë‰M‚7Ǧ’œ†Ê*<ƒx2m^}œÎÂô®¼J‚ABÙ§‘(r&Ð7$¦DnxWÀlkR¹\-‚:ƒ»&ro"½@¸î¥Öw:¼a—Vî‘[ß+UM³ƒ†4‘¶Æ9&—ð¼·ÓPdHnä1¼4ºþª¡s7=]¬/<Q10÷Û~¨»$…¥DÅ# ^”æ+øBÏ·"KµÁP‰ƒ¼Ç2õ@êÞá G¹lÂW´¢å°úw ¸Ž¹ÒÆMN,t16Å++x_\Ã\‰/YÑOfH#Ôz3Íõ†¾ÄR¤%g£#,äÍ…×|Ö‰e{8mK;o%WÁpèLÁ@ ª&‹Õ¡Æf,¾³Î_[¥šxDÒˆëžåX°…»…øœ)×ÃHŠ…‡›çªH ©ˆÞÇ Óâ@ÛÈë”wîZ´¥ùH§Šs`“ ˆ©.nA–öt¥¯{AR®(aù^ˆ¢E¸t͆ùšŽÝ†Ÿ0Іßw'HάoH†˜†Îù· ìi™ºö„yC„îùo#æ-"ÏÑÔà(Ú gADâ]HòåPŒ¼Òú'˜)}°­iPç&Ä㸣ìÀ )i#Ü.šÛºvàü4;ˆ#"ÛÈŠGW?Î5pÇ}´H)òž&5Ë^yZ² 9|T˜ _ÇZ§”O¶<^çZW¤›5j Å Mª}˜‹`‰Sø~Õ—†Ùt°¿X”¦ûDe1êWœÃ_"­Ò®Dƒîn‘áGý¬-²./Ô*ý=yKÌjr¤tå\›?"4 +œÎx[ööh@¨úAbf‰#­ ‡Ð¦_8©ð㒺ͼ‘=R|ćc„ Âyb£ËÐ7–£èjHƒ$ùîŸÒN¨Úxoݶ0Wü›ç¬„tµ1JWko—+gÌ +7câ"Vçq7{AžjMž¢Ñ,ÄX ÇÂB¾µA +«ÇP:Ÿb’…ŒZ=h¶å³RèÁÍú³ø‹…mp|Q'orªKêåca½ËR^âIã進i‡ÕãÄUòhKáH,Þ°ÿòÂðË ZÜí¨WÇprE=CÀVyÒ/Ìøýqƒ}˜ÓI(´ÙYŒ]®kŒ¸QoÀX$†?4®Uä¿|÷ô|?\'GlÑãÉH솴»y &hDR +ÓTûn JðÔû´4R›dGº¯ßhÀ[èeŠ!÷·5Ó¥ØóþäNÙ*lú$¸AÛ’;^ÓO°'!zjÕT§baHzÒÚ@Cfk6$ö´R ³u†üK,¼s¦K9>»"û½=jØ`ÃÃ^Ô2`Ý…Ã’T†`³ÆqŸ¦çÎdŽMÃü–q‡´Fáö¢ùÔHKdyl¨=mÁFÅšºQ0I^ Š-‰jè%p>âuâÑ@êÛoèW‘KGÓ¸_Mv¨Ç»˜nš00ïUD“°¥_tkëM¸¤¿?6¡,ïûP Q$~ƒrcÿØ]ßýmY“‡@½BÙëöµûÖ–=ðH­,±ÀMAv®F‰£E7µnI4,%‡ÅúPgâM|M'kC–_³m53ÐßPüŒÉÞ?¦)šÌMH:NŠ…‰cA™OòMÇÞW‘¨’òëRÎãH@×Å›œaƯÔY1­a»ƒËD`Q¶¤ÌŠlôÑC<¿ý¨*z¬D1Fç]\ZÏŒ ©UÌ j•Êù½©‹ôûSãÏ…B}¤1kÃ5Ž[‰Š#*Œ\ÄðÞZJB™€'±Î³ù2AùkÀQÿ‰)CË7+èì+âZ„ð¾°Øˆx]ÐÒ›è p_ÄjLbiïçÚÒȤ›5ùw„t&SÏì…ôg¯£eå.ËAåàä ÚóêîAÕþ$ÓQA7[iLçך2n|àœ©€5‡³U ,c¾]jûë÷i| ¡`àè+ê(T°¾΀è)ô¯\”ƒú1«F´æâ„ŠñP‘‰/"È!,â­AéVœµôµž<ÙÔöÝ{¼î^r“¤½½ÈîÔP m+)¥‚YºfOä: šÙo%¾a$Õg£*Ǹ•jU5ÜIœÅhòˆM¿ï¥ùƒ +êÌœ-¬J½0-„£Êp— »+&mu`a3Õ‚:¿ÒÍîܺ…Åê+Uäâ{') EÍQd¦5¨À—¼hߤTkYfLAˆ°=~ãq—} †:×Ù’m.T!xm_øúM¶q5y%œ=ì%‰XÉ SI—Ùy¾ykrg{“Ê9ÚbÞYè(K ¢5=œÉµ°;°“…­Ùû;Y$ݳ½¦•ç…¥ðHøÎï\3ºù.w4MàX!²Ý'×–^›ÄRîÚê‰áÉ—&zxgOëË^t¼£ŸpïY;qÖ.÷‰èþ¿(¡˜–âŽ)|‰®êª3³ˆý™Ô–žðn%+¼Uàãm]±Ai3ðZð¼NIP…Ã<+À3qì \"ŠÙ{~YŠðÙ:ÍF•Èów0vZ7½ƒ÷% \ jåµÊn2‹Y–:®Ü?ø…Uß'h&-¦kCp¹Ò!Ô¤3.—é-™Q©>!™Ã?Ëűá˜Îs«„ r±MØF³º#÷'=º»íV Rgi½Wß[|·I¹‚Xë”ߎw õëñ-‚2[§Ÿ¥Ç“:ê¨6j|a;c¬-º Xåf‹ZÙs:ËÑ+Ôveè䃽½LÛ=®]pËUý=ç6ˆ¬´àcBS%*ŒeŒW_}Ÿ…[Ê‚arK“¤¡h[¸ø”+KòY±%»çGpR”;¼ÈN´Þ GÝöÊ#¾MÖšÙ‘¼¸-ùR8̓¦6°ðùWôk \¤#/¹u0 “Õûë6V9}cèCO¢UN…-~J¡|rÃÙz{~#›â~Ú s²ÃC•.&ÇI~µvœ¸‘wï7?5òjÃ0¹mœÚç ;Ü€Yp´Ç4BC~“ߊQØ•¢OAþŠ¤žçPZ¡B{:…ã·&\$—¯{p²¨ ÚŒû½¢É Aú¸ÿ‘E$¢ÂXÑÞ½áBëNáͼ Fû`ãC¶9‘nè±ð~ÅðØQÐÃoùP–Ód¾·ô¢úË…Ãj^!×ËûSeßs +ª;~%&‡ò4èBUÁyë7SkŸ¹PÅ\Ød°©Q°ðÍ ÚQßà‘rg'·€Kú½éb,·ñ’ûfLÜ`ÍŽ$Ý;r¢>Þ¼ȺÐHz¼q^r?ÏÛ‘dïç»Ñ„änl§Ómðº¿"/ÞÝh‹Þ.j>ThÐý|AÿßÿG0´2Öwp²µÖw°„þäörìendstream +endobj +589 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 2502 0 R +/FirstChar 12 +/LastChar 123 +/Widths 2528 0 R +/BaseFont /FQYQZB+CMTI10 +/FontDescriptor 587 0 R +>> endobj +587 0 obj << +/Ascent 694 +/CapHeight 683 +/Descent -194 +/FontName /FQYQZB+CMTI10 +/ItalicAngle -14 +/StemV 68 +/XHeight 431 +/FontBBox [-163 -250 1146 969] +/Flags 4 +/CharSet (/fi/ffi/exclam/numbersign/comma/hyphen/period/zero/one/two/three/four/five/six/seven/eight/nine/question/A/B/C/D/E/G/H/I/K/L/M/N/O/P/Q/R/S/T/Y/a/b/c/d/e/f/g/h/i/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash) +/FontFile 588 0 R +>> endobj +2528 0 obj +[562 0 882 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 307 0 818 0 0 0 0 0 0 0 0 307 358 307 0 511 511 511 511 511 511 511 511 511 511 0 0 0 0 0 511 0 743 704 716 755 678 0 774 743 386 0 769 627 897 743 767 678 767 729 562 716 0 0 0 0 743 0 0 0 0 0 0 0 511 460 460 511 460 307 460 511 307 0 460 256 818 562 511 511 460 422 409 332 537 460 664 464 486 409 511 ] +endobj +585 0 obj << +/Length1 1020 +/Length2 3451 +/Length3 532 +/Length 4156 +/Filter /FlateDecode +>> +stream +xÚíSy<”{ûNH¦,Y’ý±/ÅÌØI ¡±oY²Îò`3Œ[ö}i‘å$’5²“¢(Qv²&Ê!ŒB–wê¼çtÞóþùûýõûüžçŸçºîû{Ý×÷¾ïGLÈÔBFC@º ÑÄÈBàpƒE“èŠÅC ?ü ð.@ùCöú3ä }¨¦IªI)€jCÀã 訵@ª“ÿ Sÿ×%ãpÆHÏòÔýWé‰Åü;Nðô"“@"`DÀ€Dü?S­Á?¬,ÙóŸQ ‰Ã¢5ñ®8€ýAa}t±þ ÆKB».Hœø“ñ˜š ¶í§è“+æzæ§Nógȉœ,¼þý‘ûÃajoˆXÀ& ƒÁ©‰Ô÷Ï/‡”ÒÁ£ ,žºŠJ’HD@¨{AEŠÀU8€Åc@ô§ú…Êâ $ê€Ú’`À…@„ü¦ +5uÃþà~BõBA<t!ýbáÿfÿ˜å_´<•Æ‘}~Tµ@HøE¨Pü +RåI~¿âŠTa’ü[†u!‰¿j¬ïß2¨µ9aE*}Aü/F €‚ÿáTQ€â±3¢D- z“©›÷C•Ñü‰þ{”ZZÿ«2rÊ€Œõp¸œ ¬ þÏÄËx¬7D\¤^SVýcºh2‘Ú6Òχº&b,u©@ÐDCƆ è³Qî·Ç‡èä÷•ÐKÓh¹>I2®i~Ût,rô ®°ÃÀ[zò¡ÍNi;óýœ ß.¯OBcY·îj¸wRúÐþœ¯ó\F`=¯Í× £€O^Âß"—Xž>üý‹"ÉÀdgqªmÁ«,JÛR®©äEËy†÷B‡Zì|µdF))Ûèfà.ÇF?—2gM÷.ŽSˆðcMM¦›è q=Zwz|ÐHfÛÉ?š“²o¿Q×ñ4{÷rm¡Bî«Â’ó~ð "­ºìÀ\ëFÞñƒ{>3)öKƒÌÌå^Íq:¼<¯õ*&5ou'"œú¼ö`­ëäQÍë:zRyf5›üAq*Z{ìҟWö'1zÖî;§% +"NwŒÀ¬8°³þc¾ŠH~­ˆZ=unöÄÝ Þyˆ’–KE,D²ÿ)†Õùõ!&©ç:ìê[zy&Q˜BõEš/Q%Â{‡IQ!4ZnIi<Áý'¹è©m›5Áv +ó4a%}çF®\â›(>ë׌º/vÃPˆBÌ—ïGózL•zŠ³;’š7c^>•XÙѺô­‰ÁpŽånÙ–½ f!ʮ毅ݸÞ6q1¥Üý¦ìhÃLrÄ´{ Ñ5ÎÌ´¯Myyá•Åï–ÖMµÃeË;Ñ›½tBöE†FMÓùð°ì6)…Ø"Çšº€GMº©§«EU~×î´åÀi€M¶õî¤êÓ3Ø-+¹rBÇñÜû6¼ÍÌ$çøÎê·(‡«çsÌèWf‘3ØÐÞHûgžºí—EônøºÉ‘ù6Çð/UšÊ­‡Îšo(°”eÔqï‡ÓDh)C?äغÉy1«xXù˱‰²³hýÁw["s)Y©—% ´À§À’nJ82V2ú;¡%&Ñ霒ÿï¿3kß&„Ïx¬eÝ ô>)"´õCÞŠ´ø²#J•€Þn—ÀªÔéöN¡€VIy©7³ŠótÒ} 9¶5[(dX‘FϨ¼ž˜_C·ž´qá€JÃ7ü5ý>¦^ƒé—˜'¸›Xõa—^5””Òë›x=jüÄ浃`à ©ˆî›×ì]m›ïฎœ‘gUO®|·;öÒŒ?;{Lî³-U<)µÃ…mOTy‚Ìï¾ –Ô­-è¹âÕ䌓TXï‚Ê9A%$ô6ˆ‡pžYA_iáV»‚I'ÝqLä­Ok‡™2$/ïß1Œg®÷_¬¥LPïôˆ… +ìh.Ñ|œæ1 ‚+dv1gŒŽÞ‘ñaX`È5®Ò:%¢ð’R0UÇ<Ü}ÿD¬µràfKéÄd Ç&ÍLä¼ÌØ UìÅd·äÝkò8™·dÝå¿d.êõ¶äStBýÓŠÛkg`RªÂesC‚<®ÂQí;j!M‘ö¡Ú…45B™ÑBRóß(g·•ÅC³÷£ôG%äxì,œ}¦îàH˜ÌŠõ½:6Ñ!S〪W4}d‰&ǦÑô°bòÓÍõD6ú¨ÝÛyw$zû‡¶o†>ámN¡ßÊè6ZI)4G0r3t†Î«&V"2-R„¸WöÈ’“6Ð/&.ÝÛyiL´KA_ Îœ1´å~z_gÁ´CZù…ƒ`'/ç³3<AO94P2æ ‡í˜-PÛÕÜ!´:½Ó ™U¾®#qÍ:ÚQK/Z–ûi‡ôV‹ÔŠ‹æ[ñ!NO¹ ;Qç3ïîøT¶¸g¥;”ŠkËËEk½Z$­/@3”-"ò°è4<‡uýÝ“ß؇>€‡®$ÄŽÅë=¨b“™l§ƒÃÀ–'sCÊ9鸶Tãyf¥Ú)s8}©1“~¤ÍêŠË]AZþô!ü«‹ûþr_<ô®Þ¨5^,ªÍ#©Kºá™ÂeNnç`è4ëDϼ5ô¢z "Z  rNMMþä8£§OËøM;Ñ–…Gš4+U‘U\>–¶|чprä–ߦç—WÓ6éT:ó²MݶŽ­“Ë?f@ÿZvÂœSxÅÙÛ' à_O´ÌZ6­Ñ²Ô‰7¼»e{ý@» ›|˧)h ùœ+K‹ûöâ,oBέéQ“†7ÆFÓ\¦Iûß—²S”r}äŠBF>£Æ“³¿ÇpÿþÓoæÌÑdwBqí|•g~ä©Ú9ïû¡y¿û§¾³b(¦ôiŠ[BGÕV§­î`$¦+”¤çÅR(y¾õJÝn½wE=4‰;Ÿi~v1”5ˆÓás~¯gü„n’b¨Éõ—L̳©&2.gJ°ÂýõìX …nˆ~EL\±`ÐNŒ5˜-ŸÑÄ8<ïtïÕ­»­Ú¯êHÏ…Ò³ùn%„ª¿‰Cp^{v%«3„"Ò¯WZY¥þ>X£…æu=¿à5Rüì°U9™ÿøî»è¬·Z)ÍÈ$Vþ®˜¼>Õ¯ÌìtA­ãÓ^iû|¥=§”ûÁÊ’Ø6õG’ÝÞ%3Õ>5=î9 é+Ý—Ä{cU:~ëé6t0Ëžžûùiع}±š+³Db¤ cœCOY}KdÛ<>‰ûjìåJiÿ~õÚzÁ¥ñÉ¥›vjÙÎÇOX<:z…‰þ¢ÊIœXëÐ`ýœ½Q¿¯Itor‚±ªÁÌOª4߬¾&‡åÇUB§Þ7,Í>ö>JrÿÅ«Úbíš^çíÌ@Ê*ÿŽF逇òÝ,T$=Ÿ…Ú§wÁfutÌU‡‚Øã -•|E¢âôWOoÈžæé-Ÿ#µ1¹wn¿xnÜØ:µõ~”vDZ¹‘’¿O [µÝOcÀÀŸ>ÞöE’ÅNÊðÝ|¿J±.˜÷ý¢˜ªèÁœrY-Œ59~Ó²øÐtÚQ(*OÎfšµ*˜ðœ»¼læ[t`§¨ÿŒ‡s¨YË2w]bbªÕöáD4¾édN´¹L‹1#¿0ÇðÄ7s/WäË…öE]vq³ôº,wÿæêûËLß Å(+ Ëk=Ig$ƒŠâ±\ÝÇäپ˰É(lN%r¶ò1õæYßÌ¥qxŸ´yó¡KEë7=»=?û#Vtñ +8d¨(‡°)Iâ,"Ó)Á~v*oDë²lJAì.ø¸CNÝæqyí%oìU‡»nìÂúÙ[F5L–½S¸<Ÿ"›£·r§P7%¿v(¥6FÞµˆÕ‚¿N7V¹eéRôÙÒÎ#*ÁìˆÞÃ`B^8½`ö±Ü«v^Œã{—†?m\•s‰k”ñk+ô=:Ùit©A8©ïk§¥éjœƒ·æBÝ\»SíÎû•ÖþØá¤,èW{\Ußâjì? +&ï‹ìÝ´ˆ‹Ï+gœ— þh 9ºðÞþö«ä…ÐrÍçsuV­ßÑÕzÙaŽŽ¾/nµ”o8B©Mo5ªñœï¸)ó¨Ð¨f'Î[è¬gT¦+[žÍ·ÙEŠ:o€/gmê+wùMZ—s*îe›PÄhU„Y²-†¶ÆÛõ­AÂÃ\·§ô˜¡>º"èLJ¸¥:ÊLÂí:× £EÓRl¤âÌsÌäï ˺êb¿‘¢S496n+ÈYñ|J•×à6õrÅÙ1–;?;Š“‚ßêqw WiÛöÖOr+éi4×`œIý±P¶þÆp-ìu–ûnHš“¯H:>²—F  ñ~Ñ­|i–©~l]*µÊDó^Èm¦ü›’èZ‘4ô|ð‰T›&Ýà±Îêz¹/­¾¾KHÅÂZ·hˆRSóÜux½˜ƒæÆSö˜f‘6†žS%Ž Ì]©Ç1úÏló>xø¨ŒK¼[‹6ÔùÈ#ÇãÍ6,ã(õ`ùf6FnOm[Ë4¨Z»ö¹dGoéqà½WÕÉtþHãån‰!öÞ:n¸;ýj×™‹öZV¥=«¹ŠÚÌÝ­áB;×Ý÷Ò]©6J¾Âwö®Ç¶²6ál[Ç&ÆßíŠ ¬hØ'ÊÇçk^CôŠÜ ÓÙB40 œ6 ü¤QÚS–é°ÿáùÿhˆ$’žH¢ä_y*WÀendstream +endobj +586 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 2491 0 R +/FirstChar 8 +/LastChar 65 +/Widths 2529 0 R +/BaseFont /ZOZRGR+CMR7 +/FontDescriptor 584 0 R +>> endobj +584 0 obj << +/Ascent 694 +/CapHeight 683 +/Descent -194 +/FontName /ZOZRGR+CMR7 +/ItalicAngle 0 +/StemV 79 +/XHeight 431 +/FontBBox [-27 -250 1122 750] +/Flags 4 +/CharSet (/Phi/parenleft/parenright/plus/zero/one/two/three/four/five/six/seven/eight/nine/equal/A) +/FontFile 585 0 R +>> endobj +2529 0 obj +[815 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 446 446 0 877 0 0 0 0 569 569 569 569 569 569 569 569 569 569 0 0 0 877 0 0 0 843 ] +endobj +582 0 obj << +/Length1 2003 +/Length2 12261 +/Length3 532 +/Length 13391 +/Filter /FlateDecode +>> +stream +xÚí–U\œËú¥qMp×ÆÝÝ݃C ‡ÆÝÝ]Bàîîîîî xà˜Þûœÿ&çÌåÌÕü¸ègUu­Uo½_}P(©2ˆÛ%mmœXYxbòjj,ÌFffQ + +1 “¹­¸ÀÂÃà +±s°rX˜yÙYA1[;wsS3'µÍ_“¸"Ö@s#€¼“䆑@ÕÖÈèäᲨüõ G€ +Ðèà4fD`a›9 ¦æ6Le’±1±pýK6v¶ûŸ! ƒ#(€úï˜4PHc[+w€1ÐIÁäeù¿ë¿—t¶²R0°þkù¿+õ¿X›[¹ÿ{†­µ³Ð ok t°ùï©À…“›;[ÿ÷¨Œ“•¹‘ˆ©Àü/ÉÜQÒÜ h¬dîddprpþ-mŒÿ;¨r'`RQѧû÷¡þ=¨d`nã¤æn÷ϪÍþ›YÞTs7ÀgfP}Y@A¿ÿóIç¿Ì$lŒlÍmL¬œwPû€ˆàÉ0·1º€n ÀLŒ6¶N ¯@5ñ˜Ø: üu¢ll&а•õ_ú¿$v“½³­ÐØÐêMä0ÙŒ€6No7€ÉÀ¤:€jð?*;3h¦ÐÆ +hò6—åßê¿:â™´„#èŒÌ-ßDP&;+gÇ7”ÈÈÖÚÚàMá0™¹Û™mÞ$οšÛþÚÑÊÀÑìMEö:ؾ <&[à?ÌJïäú6ÎÊídæüc(²‰­³Ã›Jç:­ø»äàþ+¿•í[X­#ÐÚü?UN¹Ðñm㜠w ½³ÁÛ9p‚ÜMÿº€o8A ÞÜ8Aµy#PÑ7UDì@¹Äß”Iââe‘|#БȼÈAî@Þä ÿF …79(þCÜ ¥7mLå@~ªoÚ ÚÜÕßä ùF ‡Oÿ¨|†F–@§ÿhFÐ-Êd’ÿ³7xØþ™ýŸMÊ2t=HŽF¶oºÏ˜Þ:’”Ãð@9Œþ!fÐVÿÀ¿Žõü«£þ@PÓ?´y³?ÆüÙZý ß·'™té0Ùü _Û?äk÷‚|íÿ@¯ÃòuüA‡îô‚jáü‚R¹ü T®oÈ +Jåö‚R¹ÿ Tà¿Oø'ÈÂÊñoù?Šôf](FææNæVÆÿªñÿ~9‹ŠÚºy2°XÙ8@­ÍjEfïÿœ¦ncnï ”]ÌÌÜl¬«FΠÌéï×!èÚÿ61½#€@7 ÂÊ¢­_ERcH‰DÞt)4-¸¨iÓW…ºî¹ÄÀåXp«ÂQ9{Úﵚe©èHûÐûÄ®ÏøŽí^Ê’¿üí¿&/¼ì»èï§z´àk^¦Ê»ïÙ‘Þ#·5Î_Ÿp€+Î~+Iø”?q>xœ£D-®v»NÖóÙ¥¾'-ˆ“KS2ÕJ=4¸–’D%Ù¾$Œ=tÃ%!jc*ÐÇ"®™ní¶Ýí1.;þEìÁ&2€U4s¹iÊB 4•—{C[Üôa#JVWØÅDa˜VÙ“R9ßj³Òv·Ú5½­ÚZÓã6ÿüÞv÷`è5ì4£Æ)l™ä{¨c^‰¦ryKGÈŠ@é`fÖ"‰kì¡4ÅS ] V~Uq=ªÇ+¡Üd QJc0vât§y@“ `Œ«—¾|C"þR¼GáIËK¶Ÿ,îž¼]Tã­Šíºëg,Ü+êT†üâ‰]nÏîuÎ1Å.ÅV·õ8GÆ-±¨¥·ÈO‹wAFTªß + Kඇ¸³fhIÍSÜ3}ÉK¤s*]áMá;ߣ–ÎÊ2¯Ø`: <ñ¡Ìn•G÷äätÁ–vJlSÜÚq¹ìØWàÞ‰Åî¹÷)><“¹¡f}î,ÁûÌÎo è$¢›6²„zG<{ß»`mrn]KÎ-AM:öó\ðèg1O •M÷ +­o‹[ô“¬÷SíbUˆÝ1§"ø÷˜Ñ§* ·Y_6 Z¬çdYidAw9u ¹ŽLG8qÙ¯CóT„Óàúˆ1RÒLLC¶”ƒGÙÕU ÃÔyÙÁ¼Ï{Ó ÏˆÒ8€]VÒµ/Ï sH˜­ÌŠÅî<Œ[íÝÛ…DNu9ϼØ8Kä~C¥ïupˆ ^l£ºô)Æ©$äºà’F徦˜8| U9•ÓußÑwQÄÔ 9Ï|Ìr ¾¼ðÖrU ­C˜W×@;˜f“ÆS͵£+R£·‡!q„üÊÇ|&šiÓ×îøý«(I÷N‘>('_S‘!!Hg«ž]@±t»Ë}¡ÙÅ´ž´¬)¥ü_G?ÿŽVó(À¨¢÷Š±xAìÆ\éÃ%:ñ¹ÅHÕ»ü':ì4€<Ð~»•?n±Ð”ëóý)ö8–dž½9† ü÷ýRˆ+LHÿ¦5˜Ä‡¢o gÉß5°9už v¿‘7[0.Põõïüâ¨]cwJ)îG4y;ϵ¤w}eù…÷ues·_v|µAšŽM3k­–ââÚݶ­*è>ÃÕêÁ -z1˜ +|@Hrí×msÁaU 7ý¡; àxG_2{4&ØÿÙ]ñ(Æü\¥ˆ¼)îpÆ@LJDæs«€§ÃRφ˜ÑžÚ +¦¬»±âpåÍ6Ѩ¼Jz}I‚̲™êó15=cÍÈèyé¤þò5ÕL&¦uÎ&ã&V ŒJ)’rôÀü&íìIÉÓ®('LbsœèŽf0a†¨ß_ü~2…å÷’jv”†3Ïéé‹ÏÔ£µb‹_—³Â1îóÞ<÷íKÀbÚ "ê$%½¥ç¬ÅªZŠ\'uyJ2Û÷)æì®ÑTŒOŒµæ!aKЇÅW‰Y¹UTßS¶/ÏU)?ã  ›L’+=~˜àÖtÅ!:•Æã ŒÁ´XÄÆ]€Ý¹*%ÙŸ,ˆ"㮋YŸ?+ª´ª~è3BÌŽÈ‘mÕÜÏØYJ¡…¬ø±9mŽõÅUSÍ› ºÈª™¨lïëGÆ^ªšX -Bb°w[éVÙHy)&0Ý ßƒ6+›»CÉf~ièŸdÑŽÖX Ì#Þ}:àã˜Ê'±š-›ù{dÚÞ… ˜n3‘)Ž*„$VU ˟ѵ0¥Ð×–š¬Ü¹©N¦ vUìê®1’8ÕdÇ>qìï¨îMê×?we4.ût\ÿÈ™F@˜Zµ¼f6è:pRy¤8b]>‹\Ë%0ÔÇ…bêà}@üÝkC*l%8iÉ}Ñ´ðƒ±8.ûõêë}¯ôð-÷/I®Þé³ý¨ >«Júëj ËEªÕP囄š>%:éÛR±Óƒâ\k¢Ñ—8ÜŸ<š·²0Þºäb¾‡Y×Ár;íh.Ù‚ª%f£N˜sÛ-.¢§ÕTT|«W+‹m÷lã>0û(dî}›mC±AÂpmffSkµÖ`ºC_e¶«Fy·w=yNh+MYWÝg¯SêaßÓR1tO±,c¼7?ããßËúýrJnÚCÏìå}š«Øk\À/›ç*M~óÁœÛÛÏlXy~×ÀîÂ¥o½^¡mé—¿'í“Pˆöý5R®‹+9À'f5™²k Êaäç¾+õb>+Q—0h²òørw±1ä–›h„Ì\AeŸT£ü¤ðªY›,-ö5 g¤cÃMqª½ù]“pøŽFõù™·1ö5 ½*-£³yM¬¹¥¼¯å[8Ùòª•8ÿ·¦dÚKÍ:‡ã¦…‰ù€ŒôÊAwø®$üÅ»+­š…=BÒ‘‚Њ—H,¯Ó÷¸Žš“¶bBRÑ–ƒ‘‹¾ +™á‚»É³œOçT^ÁTXÒZÞç¤ó—¬æÕ÷á ÎrÀ‹‰Ü<ÿ¹}¡¬¯­ånÞvöø¿Á›¾æ§_{Éô—ÀèãUÐ4òÈÌ~þõz0Û¸áÓœÿφÉìž%gµ‹*ÕrA¬"öµ9êEqÎ9ËûX7—!~™+ŒI9V¬H.ÓªÜ2SÒh÷£{³X$´+ÅÒ€o£fòÓmϵn#ÁU^‚À¼0ÊLWÚÖÌ+—g¿N Ùê¾8¬CL0Mƒ'ì'ˆî½åâ"®5уPˆþ_õG³DPÞ:§áŸ=±Ê“j5~—íA”úþ\DNCAq±—Œ&r@æ ÅÛˆw="c£RÔÑM´x„kV¿iAYjíKÃRp~:;–r»Ê6EÜiíÑÍVHP¼c­~$:=ÅšÔ‰B蛞–‚òMFæº6•\íJ'`Ó ”3gdjñIÍ sŒ8Æ–¶¡.ÃËÞ1žXÚ4r Oþ.ÕG× ´4Ã7ÐÂ7eã‹»ËĸРÐÛÙó õ¯—·ÑPË$ŸíÊùáæ¨F¿âàsIÄë‹š¥g§|n¬œ0»„—!Í%Pßggî'À2Ì5ኡ kG ·šëC;„cÔ?t-¾â;«"»Êéÿ!©»ë¬±±Om ãF%O†¤YãÀiöz12´ŸQÃŒ;›åŸýlÍ•«¸š±Û«wBìGâDoÆînn/‡;Qöè+z°à¹óŠc{žg…š—ƒþ*V8áSaÈ ´ŒÄ‡F¡ÖU™|ý±á¢)zÇwíÞÄÎÞw9e¥÷y‹ŒáŠRlí Öz˜ëqn½¦£ùDDØ.#~Ì ´Àá=]¬Ñë<Ñ!ù¾Õ$Á7l½ŠQ<ø.òÜÉìhs7í¬MðT½rh—ÍJI +WÌKÊJ¯êÒÈÈ’´ÖéšÑîÀïÇY0ùpÊC–‘.ÈÝÇñJÒÕ§,¡KÔîs0Èî´µ%þ€²Ÿ·tóƒ+ÒhD?š¨ãX o¨)çº8ç$Ú9ÇžòZ |¦ºOÍ©ë1ãë"/œËõi7Ó‹šØ›mg)T —j§ö° ôæµÒ2œAêLóÉ;øŸ„šçùìK÷§{Fd|X´þÂíá!C––‹W +>«ohâGÕx0 Éù^ê¸$«º«ŽPº¨XnAàà,CäÔøz,+ +Ibùº‘ržâ‘]@ßõ»Á}ª+í‘ܼrÑåIÙ#'ø}hÑšúˆ(½õczÛ,˜ƒLlÎ2; —öÌ®ÎÇ™=}›4šì;^²5¼û½…TOÔfÎ-¥+ü§ÏhT!Úò„îÚíè†^‚ÃœelÌ >QƒúRªKÉÃÞkÏ…;SŸH&¬_Lõéä[L`ÝúIK³’XÄåFVÜJö^ß8“ÚDWÛdpOÒw—eDŽ¹5,½4Ðf ¢\–oµ‰’ÇÌŸ0àIÎÒ?îÔœ) õÐ.–ø‚@àjéD§~í6t'ÔŽëK\üÞ­±Ý¸<¦â“²¤›¾r5!¢¦i‚Ïú.u1ñŪ4ºyHZšuh·lÕ^CÿV ºøÏfWIê¶gÆÚ'ŽᣘT^‚qwfóŠYÑÆÂQH‚ùö€ÆØJëCp¾8 +Å/"ØH—#Ȭ]À ùAw*¸Â~-½ü +Ý›`úª5_-iû'Dµé¶Oå|?…‹u=¢2éIÙb+Ï Ð%£~…Õ¸Ž éøÍùfª¡ºhî¬Á +é÷:Kb›PsUHئ¼ößóœ3“…í­=øÿª=jWÄ€Á>#“ R§›Ô’V{QØmÖ¬ÓFŠh¦±gx·Vikm&·GüÄ`g œ´?ªæ†#y97 ­È7{ùË5׎ +º¼{‰·4·‹dã£zš6ï$îGœ"‡Š[³;p®âTl‰8~¨ïzURÙ«ã81|¸µ&Á«ùq´µÇªJ([$»Ÿµ·E yÕoCuüåEö;†L‡5dÀcüy…½1J!½iÖ[ìÉ{f³WT,Þ +qçã>«ˆA)êЪwìÝ]Î}Ä÷{dˆ²ldâüæ»E*-EúŽWG:¢ûÒRInÅe‚®®=­ [-zIEaA•~ mçw‹ÍÍ(²QsÞAázU}»‘ú¦„•ÂìÊQUÅd"eäð5˜íï¨R nXE¹ró¡ 9Ëý‰,ÇGÜóQÁYm J‹sž`®´÷òГG:V½i™Šoœt%šÚ¹ÓqÉwħV\ü:äê÷. ¨·œ—‘YRp Azuï îÞÑøy¯K¾“¡:p¹¡=Ùx½óÛ‹XIŽH^O¨m¼0–€ªuRœ^ž¡²ÊH]FçêÈ!ÚYâäcÚ¾ÆþñؾZŵá¤IG¿ù`¸Ë5ÌÈÕ:ÇRbÅ#P:Ìû¼ÅiÅwÌvëÛŽÏ^»YÿSÅÐüâ—XÔ±ªeÕóÀÅŸî(‹Yn}†áûÆ0r¥0`è«~ZÐ÷|ˆK?l{ÂMÖpå[ö÷dthõóúrs‘w0ιèzøHj£º¨q¤¹©z~5”®|?³uÌý“%b\~™ü*¬=£ã0.b;ºE›ZÇiA¢!¤é¶2÷t%peø¢)*è‡ÔÈPÑ=8gD|÷ÃîÅ;Æüi¥‘.öÊ‹è1™äNÄAáUиÓi‹î“S=ªøü»•š…°Ki ÿui¨¸áxÿˆã0r?†NÅff7åXÿq+âcÝ"£rK̳8öœÊÃ¥â۽⾻ òOúTéPœ­IÈØJúæž Q)é"–Ñ1ºÙ¦ò‰ZxdâØ9ÄËýP—§ìDûµ-åíå±:Jm§În¿‰Ã¡zY‰ÙU…gç"ŸS©ûùê…ø3ëqÇá*!\ŒÂõìU3Q"®LšÖ4 +½3(:Äøûr9Χì!jœ¦©¦ÑŒ°WUÔ¡/SùÈЬò'3¡ý"u™ÉÁpû_ÏwlËQöVŽUÒ}¤»3ãë7eÁáüÈ?Z•™¢ÍËxF·ë+óãg7,Ï7$¸u³{ñî‘LÊNVC¸Èô®””äü´‚°åFA7õУOÊ}îb+šVìŬàììâ •Po˪@“¤ã ä&`¡ŸÔäJ@Kß{¼?%ÆL è>œ?‘FnƧ“}D‘ùªT”×iÜ‘€~Mäò*Äܘ/Jþ¡Ã m(µv!‰Ð_#»öQ¿Gy0tH¥Ö“}Íï;7›ŽTÅj·[ÝIdßQÈòôDU\“Ls¤©8Ìôâ<•ï:ŒÍw0%9X­â’<€yt³}êAö»' 9cèU"ÂœgÝÅB9[îä˜lEŸàµ…Š±*3ÿJžð³JDãKòòæÕ yó”Gx»üÅbåÏ{§dJjKUÊôo…Ttt½Šzþ$˜{FˆœÛ¸ÁPAèˆÀ÷Ì'PÑ…œNßÝïTY7৤ñ`|ÅF9ådȾ{ĺ"¿ÿÍRêkàó1°æUÉR¬ˆEè©ÇžU{½ƒZ”ÊK“Ó iuh0xúz·™dd†ÖÃr@¾ÝÓéˆUŒ“³r=°˜Nà@åaÛ [3F uyYú¸kçu×@`4J [è"5×*f­›Ø¨AYðÑPà6ÌìYñR–VC…Sý;ÃŽwH¬ýâùþ6iÏP6s[üdÑûsj@»ÌÃU„Š4R(±{¼gc øè3Ï»/ay.Êv®&³öì/òO¸Â8¿½…]hè¤(ù‘»¯.ÁÀTüi]ôðßQ—™Ýþ:g1vD1eÚ¾.Èó:sªj„à¡Øß{ð¬]&¬Fé6*-J‚ðÖþÖ“#îD] x–¾zj¸W™x(Y,s;åLÏ…ºý@-Ûé †M<ÃIôû ˆŸ¼Nw q©æ}17ûŠY‚!×:šãd>›aÏêa‚½O)©Ä¤¢¹I{ ·ßD¿I÷{¦@¿Œíwî*¨Q}=Ða·ÄتßÞeCaúëX5Äœ¥Ù±“.Y$¡{"¨ºˆZÝ/zJ…JÒ(}k)§ÕÑ(·0tk¶W¹¨fÌó½k„ås¥ Êi=·GwiPÀX+}ˆWN«/,ÌõOiˆ ‡×ûêø”o„î9¿{å½6ù¡³³‚¢nm« +qà`Óu¸tH*ð!ÂÝï°ü +þƒž{fZ"j!VÛ‚C ÞSE\±ì Ro{I‡ožê<‹Ï×ÚääZH3”íSTIÒè‚õ^*ß:Á0¦)!'Ñ›0ûü.·´r m–U‰Ñ4‰pÛ«¿( ½‚ªIò4ô#œÒªé>ïÿ—ÀšZUØ~åW­¤ÅèÙÖV¶Ò§Wõ +fo¿)fEÁ>ðÞaÄÏI´¬O šêe©´eGÚª®ET7ë c`¾62ÀmãK@Jïj_—E;óÖiê¼'+kmÂ΄‹¥ÀΆúá¬IŽ +å;2¸/ Ã)HÁ3Ò³"¬0 U-ÏMkÑñ”FƒõÁôɆ6|ïésQ×üê×–ª±³°>ýÜ_òûهŠ• +~:2ÛøõnÅÓ$Íñ\ÃíT9$i£°´÷™£<²±«Ûw³Ýõ^Kà¹X#ß×õëÁE;œÂ¤7㉉™Á¯6÷ØWŽ‰M‹qG¡ò4£—4Œ»ÎäMw`>œB~Èßà¶í˜•Pᯛ’¼(¾A”-»è u =d} +õZç +µ¶ õé; ÿ)•²Ä£I¬P’Î5Ú)(À06œ˜Imqr%ªþ½’ŠàƒêuIw¬Ý¦ÑEkÿžÕÍÁ3jÞ}Zß-–¬ïéܺ¿:¥tkãg§:k›ŽüOS£3õ1Ìë?ùzû©ŠÙg;Ϋ†½ÙTOÜŸZo_Ô±Æ&&–•Ža|»ìâç!%šV[ÈtòŒ°ê¹W›>zÖÊ ü@÷%ÀÙ¶É*s"j­çž´© Lî2aFþÑÖ4··Á-²àÇRˆnVõ‰zAeýÐsÓ=Ž¸9‚JÚ_ÀƒÝ6ãòÜÓ¤®|Ž~Z»`(5$Àj?Ü‘ßÚÈï;Õ½ëÁ»g7×U÷µ)MAvy÷Ü‚°ãµk¶d+Ékœû´+¼‹ˆÇ™ (ûùÔHéLj&…FS>*&ß—W%+X1‰n~?û¸$½ŸY.Tø–HS=]"?b¤c¾ÀS{ïÐVWL¡r r´bËqQb¼˜z<4É¢tÆ\7–¥7è?×-b%™å9”¬i¹ +†¶µ„o}̯áö–WÑeÉ0(.ÇÔ„˜ +,­¡+õ£——jqNrà +À—+ð‡Åë„îg-a‹çÒWY!ªsQ€dš“ÞTfE +vãîÖÐ×OhlÞZ½˜¬O´ÚÚ #šLŒ ?Ìô)»í«L^Oa¯Ïµ½qpŒ8®·z'$ÒÓ]Œ='M{ш‰…P׶)ÕéˆGP‡«¥ð«Ù~OñµIÔUs¸tÚû¨É…W«µMR¢¥/uX)yL±ÛìÉ¿Âiw»òÚ‡$ðÙ»—Oû¬ÖT˜*7mBq,ü<ΟMÆ—¨z"=߆>LæV| VåKRk•>Ç/¾UZßÓŸq¡y˜ý‹/fÁ:þ:Ebt`íV»càŽw¹{tqµIH¿´˜ó1³‰Ð¾§^­å÷råä ]ìE‚ÇWœ1•¨Yä»ïž‡Ûì9=‰Ä ›ÂV†¢¸þ3‘˜)=UßX)Þ3d±±QNùÕÙc!,ÉÙ¬ø½´ÜYpQ“ùî!5ÛKöÆ~­kÞ!ÑœêÕ¯ñ<Õ2|ÄÇ°Ò.îvˆ†ÂQ¶t"‡@e‘ +h¢-w}÷D_±Q¹FŸà,HŸ«Î´ÏŒWH¢c¨­½~ ¿ ¿l] ã?nšMéùR&§õÊZêZîžú]²¿ß‰bº¯ëê(©¯4RoÅeÞÛéñ•çCê’ç[ ³v"4²‰•q¾ó¸wí53ºO_c“oµ¯u»n¾SXW“õ¤øK€M¢Ê›ïpóÊל}’‚ƒR5/ټij(]ÄÎÃHÃìH±k©»¤o* ØK±úë˜ßÀÀn¶yh¡U-­°fD×ý`1ÜIÚú“˜j¶¹¿ #"i’ôWÌá­$4ŠîÍÃ߃…Ÿjîh",ê]ýjËg®`¯Õ;{éÞÅnÁHö>™)¾DkÂE…pœnÔÂŒ +¶©ªx†ð\ A]Vžº‹[P£FßK8…G!§K”KÖXîéÓu%Q¨ÐÔ?%¼¾þ’ЯNÙŠ¢;F¾º²Kz·Û<ÕiIòµ¸—õ“GcØëÍâ{CéŸîa¤ßVŒ‚$4j¬i´2<éÙYÔá/3Œße$&¸G%ÈÕe8·¢+÷½¶“ÄD´3p¹z¶†î}—Æÿ…žcÏβxRúƒ šÜÌq¹®ö#Œ„²½ê>RQlB(æÄ—˜ÓÚ0ø<•ïïñ @Ï ÒeÝ-Nù×ì¼~ˆëN+Þ¸Û¢«$ð*—ò¥ÕÀž*.óx}€v†¤HÙå‰Öž`—K¾Â­sUÉi…„Œf§ä vßCšÃ©=ڔذ3¯ +D4´r–m#–ŽîÕßc±xÅüì×Dïô•Te“i¾'J&5 \ŸøÎe´ð®Pý¾ze9¬T#ú2 :M"œö€¨¿¬ dp+ÆvœÜö{xV—'ÄnL[H(Þõ@Šù¹ÉdøUó˃O,Ö¥Ý3ƒGò”H$!N”U?N +rkLPÍá´ŠJ½pkN×F’÷» +µ¶»M¡µ²]Ï­ù»Äè€GF{^Ϭˆ +JtØÚB‹Õtekï’}sy?U<¿·M°6áÓ)^@éÉí³{lék}!Ër«T—õî)‹â¼…vãÔ<ù9&ƒ—/FO‹Yúx9¡¹"";DœËG¹Ê¡þÚö…ëw3Bn9>Ð|WEÿAZâòî¶Y³®›mô`CyÌB_žUD§kbÙMe zûö]­Vúï|ºNyèoK\D&úªáüû¹håu†l;³(Ë7Œ5Ä›3[¬aÓ-m1 +¶bä~ôzaDZ%6ú>Jj@AÏÝôá,øyêþ¶z¾?Íí ˆ,Œþj´ÝŠöÆ •Ý·²’…Ù[žôÈ/&‚‚h¾åß~°^ë²ï­EÝŠ>Ÿ¦1gÿ@Ž×ü>©GÔ%³«òE_J…N(ŸeÿNñ Ë=>yÀ î]óŽ¿U6`ÄÐïµ'ËæF±FÞ£|´¤ÚqŽ“ÑUWûÖëò«w‚GÝ3Öoñ€ÌYV¢tð Õ,‘jœ~%õ +"Sëvnøû\Òà›ãW×OLœ +‰ªº.£‡hÞ2Ôe+zZü,%I‰Fh‚ƒqñNÇF;Ãú*Ña; +qÁŠ¡9fpñKj`P•.gPM,‡Ûõ=}í´¢Ã _fÐM‰ÿ]'ßÉëZJÑN‚¶çŒâò>š¸¨(Ü­)%›±þBz\Gϱ²}†“ffŒ˜Zxù´5÷$ ¬ãZzgt}#¯#‚í¤¦ž°F$vÊ~´ÆàÄÏ%ßÛùÆžtGÌ’¹½ñÓv)žû³½Mºákö¯ÊÓA +s¹Žå +»»#þ*Uï*…µ!UÍÝyŽ:½ëDÏVdáÆ“BÒÚN>BLèŽOA#ùè²8k½g\apbr;! +‘OöÝùÕ|,1ù¬J©„wÓ˜$ç2à`ǸÖµ¢¥X÷{e𮉆&¼üÔQiÑdí’ÍHäŽÏ„Vªöwõ·ç(,BU’ü¡ +ãW?:Ÿ±I·txú±4Á•²ß~^À’Þ}öÄÔs ú,œýkPŒÈ´i¶ýu£$˜§«Å¹_U5'Še–žãð•¬N©[ʃ^€ˆÿ:lÚF;bÓ·újUw[Cñ—®ì€¨¸÷RiR$¹'v$7HM€rƒ­þ5—>_'ÏÉÊ p:\¹³ŠBáEŽ¥‰­oëu+:º)yBŸ¼_©Òi©äèæÉû„Quï?`ÍX©Mg´[õ]´‡Û5Ò?úqIŸü(ãËÀÿ`¹ÌOÍø†#’ÿùX ç’Åí3õ–f¹¿á´¨ß>¼„dìÅõ;b³ž^iZcœøO•óõEö!¼MéÕf¨µ„!‡´Á´w“x¤tÍ£CÍö;¿ä9Hß±ªî‡Ô“|…%r¨Ó¤„òØïL9wž +„:Ü/¡ëo8^«¶Ò9ÖDZš>kñÄõè +‹”bäÒºî5«‡‡éÿÒåý[$¸V¥Ä»/HUÉÌÂe÷š‘¼´ŸôïY¼yȨ¬ ¿  ++ŠR1ç~׋.1E›2/€²ßŽÇI"’9ÛMS…Kÿ`§Ý6@ ^ÄqOBçðp‚Èn×CÖí<Íöåûˉ˜Î_F·taz¸ðp¡|Ë×OÛ%è»], 0áp£¿øa» vPT9&$aß® ƒµávØØ-] 5õ/EXTd~õw€þ•ò ¥§Sa¯Ì¸ñ²Œñóy~n8PoîÈ+¹¹ãƒ0Ï»ÑüS³õ3t¤-GÁ%ÄA¡†®,ÊcA³iH)¡OzÃôFÜR´²T6MŒón%§]•ÜSÃUc lNÏ"¦Î¨–‘GD¿*ó[”ÀÍ_$Æ­`ôÐåÄïðrÃa|Œ„¨KArÏDÑdGØ#-‹ázEf­+†·RðL¿uíºá{ß&á ˆš¦«¹ùÀv‰€ñ)ë#Ì^MB xHg?øGxXqmÕ#œx xʘÛëꥱGX=<Ò ËÞ2zkÍG:©]íc€žÇl½ße„„±–ñ%¼ÜVÂF–ì]z]ãõTþ‹ÿ!SÆ~õ` +¢ýÓäóÍ/BèŒø?B寸÷xr%ÎתوÖZ ƒáFÐhmÏzq?æH=­zƒæÚ’4ÇO¡4*ÓKGgÖ†1*2ŸEõèó‚Q·gyV\°pšâŠßjÝŸ]ãˆæͱY®•“ñ”DE;ªÀ—©>›ÚCÕ=a{<`á¢,Ûüì¶éñèßÎÞå²P̶•&qÚÜJ?ë<2 gùˆ^á( gʽ‹ ÷qÂú»¸oÁÈÒhýðÝM Re­Šø@ª/þ:Õ¤'^À,og…0]f ð)Ù¦ŸœkýC ÎËœÆptì®Á„bblEqMâÑ6Ÿ†°´œÝP5 ò‡UÕEÔËlÿUkȨèç%¿öҘϪºÖÅȺi.xQæ÷ÍÉ£·²F?x'NcÑP:“ ä2NÀ=nœM)D™ÿþÿÿO,`d4pp²µ6p°Dø_-xÄ÷endstream +endobj +583 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 2507 0 R +/FirstChar 33 +/LastChar 126 +/Widths 2530 0 R +/BaseFont /RNIAWD+CMTT10 +/FontDescriptor 581 0 R +>> endobj +581 0 obj << +/Ascent 611 +/CapHeight 611 +/Descent -222 +/FontName /RNIAWD+CMTT10 +/ItalicAngle 0 +/StemV 69 +/XHeight 431 +/FontBBox [-4 -235 731 800] +/Flags 4 +/CharSet (/exclam/quotedbl/percent/ampersand/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/six/eight/colon/semicolon/less/equal/greater/at/A/B/C/D/E/F/I/K/L/M/N/O/P/R/S/T/U/X/Y/bracketleft/backslash/bracketright/underscore/a/b/c/d/e/f/g/h/i/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/braceright/asciitilde) +/FontFile 582 0 R +>> endobj +2530 0 obj +[525 525 0 0 525 525 0 525 525 525 525 525 525 525 525 525 525 525 525 525 0 525 0 525 0 525 525 525 525 525 0 525 525 525 525 525 525 525 0 0 525 0 525 525 525 525 525 525 0 525 525 525 525 0 0 525 525 0 525 525 525 0 525 0 525 525 525 525 525 525 525 525 525 0 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 0 525 525 ] +endobj +579 0 obj << +/Length1 2243 +/Length2 16815 +/Length3 532 +/Length 18080 +/Filter /FlateDecode +>> +stream +xÚ¬¶sx]ÝÖ¸»±¹c[4¶mÛFcÛV“ÆF£ÆvcÛ6šo?ç¼ïiÏûû÷»v®}í{̹æ¼×XcŽrbez!{#Sq{;zffn€ˆ¬3€™‰IŽœ\ÄÉÔÐÅÒÞNÔÐÅ”ÀÌÅÅ75þþq³³q³³À‘Dì<,Í-\T"ÔÿLâÙš:YÚd ],LmkÚ”í-M]<B66¥®p(™:›:¹™š0À13L,]F¦æ–vpŒÿ(IÚ™Ù8ÿ6quøß!7S'g €ê_šÔ ¤‰½'ÀÄÔ ŽQθ›)Ðåÿ­ÿ»¸¸«œ¡í?Ëÿ“¨ÿgØÐÖÒÆó&ØÛ:¸º˜:díMLìþïTuӻɚšXºÚþßQICKc!;sSÓ¿C–Îâ–¦& +–.Æ3CgÓÅMíLþ¯0sÿR`TSÐT§ý÷3ýט‚¡¥‹Š§ÃVýgò¿˜ù³ãdéÐf¦—8øùß_ºÿg/1;c{K;s ;ÀÐÉÉÐX=@bx3,íLL=¦@aF;{à%`N|föNpÿ<ÐÏF ËbÿB` 0š™ýA þ5Ê +D›?ÈöÏä?ìÀaàV6†¶BÀ)Ž®ö.¦&F6ÿ.…ÿŒpLŒMíþŠm mQgC`NÿåúŸ5þ{6&à†N¦v6¦fE™ÿ'ú&oÄÐùŸ%œ­ÿ¾6®Î@[c{[[Ã?v£…§ƒ…©ÝŸÇ¿Ä-íÿ²ïÅÙÆÐÙâOx'^¦NöÀ›°·3ý³í]ÜÿŒ³½],œLÿšñOîí]þþɾ¥Û_3€ºÎÀ2ùeMÝþr–£é%‚¨jgù·ÈçîÙÆþ¯‹¸þYÆÖò¿£@ASGWÃ?ŸƒõŸçbêüO{ú:þÙŽ¨$ô‡€:¨"ò‡€¢è öâ&KüM$þ0M_þÐIòe¤þÐEú]dþÐEö]äþÐEþ?ôè¢ð‡€.Šè¢ô‡€.Êè¢ò‡€.ªè¢ö‡€.êè¢ñ‡€.šÿ!. ‹Öº9[›ºüב¾2þsÿ{€õ?ü÷iáúçX:»ÚšÙ˜þ©/`ÿfüs4¸€bF(fü§30ÍLþŠç/ü§´ÿB ‡ù_ÜÝâ/¦ê¯ÄÌ•Õ_t²þ R5(& •í_Í he÷­ìÿB •Ã_øOyÿ…@+§¿ðŸ³ö­\þB •ë_´rû VîõX •Ç_´òü V^á?=ÖÎäï^ÃÌòÏæ–6&ÿÎðÿû*¶÷ð¦g¶àÓ?‡ ÀÅÁåûß3Uí,§YRØš˜˜8µñOÔØÕ ØK]þõþnû¿lf |+ššz˜Ã-/Øó[¥5‡–û‰M‡¤6o‰—kè™ë„ÿº”jS:*íH³Q¯ñR‘‰†xy@äþ†çÙá£8!~èŸþë÷›ÁA¦WžÆM¦¬ç¾Éã×S¤Íówgì ò³cåÉšÅ9Wƒ§ +T¢*‡ÐkÄ ?µÝfspjˆgÚ¨†…ÔS°+!§;–‡³…­»#''B¬O}õ³ +ƒi¥]½¶ïpE})‚ÉOú­óˆ‡bÜAĪ´Cƒ®t(pVV†ŒT÷Ñ?\#˜0Wv@®À(J~ÍE ­ÉñÂÓŸ¹Âš —u»¤këÐ ~'çÐÝ(ÝÓg¥Õ·(–Z*aºJ,²¯Œ¡|†ñú}H}â*ìNò'Û +¸ôAJr)ˆQÓ¡Ö‚$þÔfEŠ¥5™5îÅŒx—­Š+äGâ üáí*˜©+ä[ê g¹‹üb%Lýæ'oÔ?È«pœ‹•ÛD(#ݯ„åÄH+x½-ëÉP³¥£¥0­„"û6+«æÓMŽºŽba¼!¨ô­J¹Y¨Ð/p/0Ù#x’Ý OC  Ž&ÁÛP5Ô‘‰ï ª QN  ÊÍíàG#M&Yeí¨·Ïï2ùs®ñW[íúŽþ\=Ì4芜dU›ù+²Kõ, æ5îš`xÁ *'ŽXa—u¨QŽš8cñŸx"CNãdŒ<ÄtÒ‹ 1Žßd2“ÏA’J^MÕï¶\‘%jégE ­Õ(H霩û×Pè’Š›Ú®,…LïEM®ZŸ›Óh*~’Båãf¼=aç8¶®Þ¥(´Ÿd_·ùt§JÆŽ'Eáb!7;˜ú“–j®†©£{£Ã}r¦:Ü}îóůŽCØêÀ¸8Ù‹ž0¿}ã¹\ZîÕ6EbT¶W£¨û€³\d*øjk¬ÃÔc}.Béì@½ß®ÁÔv)HÖÇb5{+/Ñ$ÁÕN^e–ñ8ƒu"#u&*Ømû$cãň=UÇØÄ“8(êÆòlØ‹?ºÊÆ£yß°:­‹vh”¥QYÐõAïXsæ]œßÑþF"©É}€k–•Œ¨ÙÎâãP¨uÔþ&Ûì ô[ÐÈéüR<ÃœV_uå˜Ï$s”ûwÛ–-rxÅø¸TK÷Îèè÷λi Q9_ߘ“ Ÿ.H±xsiï¢ ø;•·RøL¿uÅì¯&Âí˜Ùü:=åŽÖÝ-dóÄÙuº¶Z[f’oœ"ÊóôǃÍè‰ÖÈ3¢`§çðèÒøY³ôΞJF¿O~3#î·ÊG@¶À+Oû{}"_ fºC*%V(µrfü€Ÿ7óÕm.i}÷U¾cÝÊÛ *2cÿ^fq“Äh%a|ˆ*b´”–ÀžXu<6ŽŽ}i‚H™;–ž 9þ· ‰©Ò}¶_¬ý‘…5BÐFÔÛ©×z¢XXA܆¤¨×rÿɯD—‡…yÏ>µ’ÛQJÞžx«¾ëRy óVÖœh†ŒC –b…8™=óùÓ]anòS%OBr¿º dæ™Môç¶èap$GdéþHȦËâû\ùB~ÏO–¡ñ¬F*‹»¢Š‰Õ¤Ýú¯•·üäìY³µ‡ùf`jQÃ.$·d¡c +î6~߯»=ê©FYT¡”ùŒ-ŠÓuôï‹#/1·+'éÌ$o¦¤©<ç_ H¸š žÃg_|x†‚÷µcwíñš.Ñß58FEcÑrŸ~“ùBÁ”¶!ÂŒÝI1™eÞí üê†$Ô…"¨á /o‘iS¹óÌ«WÖ“¨MpM#âþË jø…„VE›¤kÝèžÈÙl€´ãµ,ù ¥] kâ*‚äTƒ[ÖˆÌ;ÃÀ$/Ð>OéÛgÃCù3ÿ^n]1fHÊfÕ´ÀëaÈ«³$ƒC¤_•ª7 Æžs–LÆù‡P‰œ(1ù¥ÚMúƒ'XiŠ?§•q'ä²ôœä¥Nѳ?¯"Òþ>B)/—r¦[KÀ_O;“tÛñw³Êþì1Èá +‹á'›[ð°Þ”ÙkßÏmŸæ|ž½»b­6w™ñNéjv  +ð:³¡Ø/–´™Ç 8ƒ$ Ó}¾—èº2h³¬K«I3ˆz,rgV6µøT]¡â`cªª:š%W:§äìjºÄÆžÙñ~ß‹úT÷ þ"õëá¯Ôl^Èب<ÃÊtkn,XnÁŸ~R—?è_ð3{ ¨Ø6ÄILJ¬ï¿%Ö×ïZÌl²9.±¥Ô%¨|5µœ-BÊ®ÕAìÏ8Ñežh?š-œ +dOtmˆ–­òOTÀ+/í$VR›Êcï휇›Y–bý€×2—îZDM®¢ú wDL éûía}õÓñò˘ UJ^—]„õL;§›8¦9“¤æ»Ù0Wä]°Ãt31N˜Ý÷Ñ^W¹lV^Ò’Gñ5mºòy& +±²hþ®§aú|Rû>¾‰0)\M*A‹Ïe„‚·_0OO>yEZÙK2èéÙDˆ¶•ñX‰@Ôj5 Aàn¡‹5Rñî>êÒµLx zAùxÖÃv¶›C.!uÃL æ°$-§h?8ÃÿJN)xÂsJl‚UvˆXªdË·­Ö‹ú‘÷é*«Ô‰ï$Uªg»TSM‘œHëÍÌ‚ïppIÛ`î´µXH·{C€ú×K~Ó¤ô±jJ +…~YYÓkMîtñ6~UEo ®l øêûã6T¢æ©$Â÷Z_œ$úðÅ#MgÅøäåWJuQuöqR>ÃGA²ØíäÁÔ§øO·§ŸCDÌÛÒÙ4µ#-; ݳàÑcz4¹Ô”Òµ@_›èW)âŲÆÁ¾«Aid)†ì¢™X†WÎÀ5ht×òå£T3ÖïH:µŒûšÑN®mõÝoo»–‹·é±7ý–0&¥ +t$úÅlIì<8& qj€gÞÿ‘´pEãWL2Pì{¬‘ùzWpâµåpƒU~„^v¬‹»ÅžÂ/„Ê*iÕ™Å+º@ËÝ\ð)½¤+ý> ¼Šg-•óGuJŽz`ji KŠÕ·˜ŒÂv­¯}Jä šÔ¶ø£?îŒ&8)%J¿KâÉJ¢Ù:jØêQ€è3„Z•„N×I–S³L½Óê­ì7%Di¾Ô`Þ8˜[ÝEqiz´†ž­¦ƒŽB$GO?79ãÐBÑцK_¼B`®òó¸Q“í ÁB}lOÝ'ùÊ4ÉÃ{[²”ZÅI|ïv™Ìå jtÞÝKÚp‰KQ±£/ØKjÓê0ühžÅ^ôøûž@š™&}£½[óHƒbü«\¾F!hZG”D\(á*BÞ¥4»Jñ§i9ÄíÝ7rÀ/g÷³1” ñR û ¼ã v3›Š£wæo-J”ñSp&GlR-}>¶ìÙ{N)Q"òf*†¿)-Ñ/ A'Nw©X¤%É÷s¿Rs.ñd‰3ð$€8W›]Ú%©ü³p_ú9vA÷!»N9kñw[vþ&R‚t®¶ßŽ^’2—AìDâvwEZšzÏ5l¤,ꦩ&²)ÞK©!ò'tóÖ– Ó‚é…YD5ó©¬má‘‚*4U¢¥Þ”=ºxÓìvsŸñ÷¾¯×K[õÌ¥NæÒ5óPtã¦`7P][Þ¥ 2.ÌÖ-¾kË4Û8,F”hÌÊš½Ÿyqù|c¡M~Bį YŠÄöbP¸zÖ½tÆ7‹ÎeJtfbÄß5ú›z£²ˆz¨mkRžH¤ÔYž¢ÝÖ@ =ã7 Oïovÿ@,ªï0yx7}Åšváù"—Ìô½ðØ2wàÍL×s0p²’ ‚ç¡°¶È€NhëI¶ãK÷\ßíF@Ïý±áX²ûmÖ¡œlÛ~"X¹· Ïç=`!€0“#t+"`´àJ×Xž^.½ÚÑb%¡©èë†Ê%¼Ñm¹ÝÇ%©×Ô¬£rÍ@ÐJc!yY‰RUv^@„©7AÝ@»:€uGPq¬s†q΢ëµÀwiD±ë’òC¶cqtiµÐpvrÂÎÖÈ(ÂÀ‰6òbßê·©™Öe‘÷ÉÞIN¼Ä¶ýæ ¤FL”FÊb¢†nßË[ØA‹ÉÀbZÌ”¿`ÑžŽÄ討JEšd²uMŽFTÑC×|%œ8JÑØý¢]Ý„;C°ØÝWˆ•"7Üë +=Ú#¬‡¤¦Fq§‹ÖW,˜¶Í)ãÊ Åñ \‡ ªÍœaXT›#ê÷šˆMÂù¸°®.K&øÕ3#ús9ÁbÑ,iiCŠ,™xfûVeõÈ0üHø%=Szñ]¦îÂh1ï9ú¯’Y ëåu[ÝI"Âõãú$–rP±hi0Ùù£ÏÉ(Ö0\Ô o²5Šºv ."_šç;º3¬Çî98"+´¼o +‚öV·”}î·dš§ –× ¤Š¶ãÝâ&~âmÅ©rV<ªhõÁt']Õà쮋꽜2cRYs,Þ7ûÎkwŽÛ¦ú¥²%;)ǨÄÖ“rk¬mÚÛ8?†ËUY¹åVÒýfÅ›‰{ýt÷ï%<Ç´ÖJó¶l—Ý• ÂÑ„ÒÜZnàÙ§0mê;ºMÚJc&AfÓðKƘš¡L„ÕÖdï¬â¤#°@xÜúy×ô 1a§IcÓIè‚xPNûÔå¦Û~Àn$½q`Y#ïû½UÞŪXZ4Û­ÁÑÖ.‡ GjT Nùa³•×Èßp/kÇgÑ[òg+öÐÇ`¦ë™Ÿ¶ô˜K’þÀ‚zãþhÉä™ +ê/6,îÔ³ &*5ÏÆp/µÝÃN8£¥ìkd6t*æx˜rZDY1Ù’¦s4]èÙµ´AEâ+G^ö}ò<ϳÈ÷¬6ÃßëƒÕ³ž•SsŒ ®îµØ¾Ž„ÒroõÉÊÑpÛ¸Ù=h¯#)D ËðY³8 þH^(Rù0™Š:à È®¨p&òUDò&ÏC¸ÌWþùgˆ=ÁÖ]½0Ù‡³ìDQvéPz­h÷W( Ýڮ׃,üàC0›½:™ØB ýts›½·GˆÚ¿ðmU]zÃ+jƒÃÈ@ù¾*"/OO`=âÑDµ}[ÃõÕrßÀŽ]¿»lL¶’‚žô¼•On 5ëòÄÔZâ_Je0þB£†¾kkÜöpZ!0̯ØØ×””ŸÆTL±hÜS¢ÂLˆ-JZÅœ( «~¹hë‡2 ^â9ªÛ5*Î}žîJ$<Ӹ„,DE7²à£ì´‘Èñ=o†CŒmp PØs'¸Š´(ßµ[ÂJ#ûf%hÇï„Fµonƒ‘¿âª—+C=F¿pÚc©ÎSÓŸ¤o0!°…Ц°S[gönaã:‘ÓzÙé˜Ù¹Ln”• qjCüæö‘p\h+²*dzìãÅW„Ù+Äg~„åƒQzTŸWÊ»Àø¼|]%Τžj\%­Z«V)̲{õÆWÔB›Æ5Á§r2'Ü<@î%Æí c¥cÆ'ìqǽ6.ˆ+iYUizZ÷bØÎ z¹äÛàt!a½×ظ1Ä-"´ýÙ9ÄàƒÁb©€]W;(ÆÉBf"vãÑ»1=qƒ’öë\}†Ïêš1'áoÙp¦škêK¦BP–8aÄ9n(»ù¿uöA2Ó–©'xÒÔˆàô#uèô»¿OW`x àTýºüp¦£’»*+F!f"xôñ®wÌz”Îq‘ aäöö¼Ó¬2á +`Èáå¡Ïµ/úþÓñË,h»w¦NsmT“ æ¥yP+€\Έ¬<5E~í4ÆøÝø=îñ:‡¢­è… LXjŒ¢©ÔŽt¼à"±brH›Æ¨mö7«¡Çòý U”êQÊW£×4›/džJ.Õ?éÞ¦9ø_Ù!al×PPS ÌÔî¢ÓÃ1;Œj3„*`—Y‡Ä˜ó´Y5Ë ‰zndß{ª.¾ƒc%þöÈ¡¼e¾c|[éÊ2­'‚ƒú²8¼~|Õœ¬˜¥ßøZF ·X À‰Üüäì6.„ºE¬Ø®f 3£Õ3Ðl#‰A”ÒCÞçÖù9žv@AùS¤(yÑïa#}òÁÚÃm½3‡/Íj™3(?+¨I²ßÞ¨SR¾µMÉ&H¨ØÑ/O}~#vR&IÂÑîö{\“=§{=WÙê'¬×óÛÑ5d{èd¢x€Ž“ñôêîðé…ŸÕ1qÛqOáÕ^¾H³G!LÐÿÄ‚üb¦p°œÿãÁ.Œn²³.p«‹€DwÃ2¯É†} <Ž{³L?qä{2ÙÅ¸Ï„Ú #ZuèýÓEuá‚W'_Æp +‚z·®y\²¦Y›‘ŽÝ)<·ÿL¤g¢‡<«$ÿ4¿Z±?Ó™s˜>ÙYµõ ]Ëaë€Ë dŸ¦ü{ÌõRÕχø"ð¯!_o…ã,÷dýjªž{ùôÍ\³äÐ÷’ìÜ$™Q€ýÞyì¿¿þ\ùø†J}FÝøB„e<Ùý·Õ„mRä‰5e|^©¤ýg©ÀNuÌ%ÎámÍƪ,÷‡&!¡´y G‘À4 +‹3D» DuN ÕiŸZ¹J¢õý…¤¡Ä¦Xºõ¸qÁÝ„BŸµF ×Ø'™Ñ²ÛmŽ/פlƒ÷.N®z¸UM㛧œŠå{o]…‘ìñBP‰ùR¿àüß׬µx„yîõyk¾™M{AÝò7Ò™¯"Voä?â0î±\yv+è–ìÓt@^°Ù:€ÖpêräLä<™É~ã•46çR/ÜD–œæÕûH‚aQ›¥°ÆN|è[‘SÑ‚j)<$y²©õÁK&)\ýá;øé®yèPÀ–.ÊFK„ìÈ'bw/wœO +ÉrcAkøN¦$wÊL‘ÌæÕ B} `󩸼H³Ñ[Å"£ë…7‘hju!#ð\ïi;'a 5B|ùJ¤‡é÷ãsÛ[äÖ‰‚‘‡cž‚)G‡Fgä6J.i} ˆU:Ë'#9|ºÚày$’m7({}†àµâ W ¡µÐ\ÔÑ¿(EŠn4Ò'i¸ûÚUY¾nÒ®$@«[Ó¹ÉsÂoV+„vÕB·§° b°>dV^#Mõ3Ïû ;‹Å¥/}K®Ì]Iá-`Oä_õ5å]]:óûí& !GYŠñðM`´§N(JÁ ¥#¤ÿ»®XŽ{sJ©#œ•ƒxê[Â\>ßðÛ×|¥J¹ ·ÛC¥úÒöó^Ø*­e²UjdÏòûŸÍt­]DFé§ÎéâZàöK "Û½a6üÎÂÕKÔ"î»PÓóÌM§iÕØ(Ž| ¥FqŒn;“–ÑõKêaJ3§Æ¬»½éÃZ{Sw®viYÈht.[{Ç÷f¯ñ¬=gt±÷©Ê3±¯ë/¿-Ÿ€r, +zC$ô\6¢”žî‘ëç¿‘ÚL^ôOªKÊ0ìš(`hÝœ"SЫ¦óu¹x,§!ikY$/釴¯ TÎ5FLE†=4»<©ŸÌjŒ´"è1ÎíÚ3}×qÎ e” 7™1IAÊï‹^ˆÁ. !Ë% ìÏt°ªtqîú·C­,CÄkúJ@Øó¥Óñ’b8°Û£[åQBš©t"Ã#w矯Íب)²ª‰ado)ƒÄüYJY†‡é%™An¦?;…x¯½²á5½(X‚xVy}Û‰.³Ú_X¶RHLgc|ò%ÿ„¦Ú¥œ­¿/]¦NàîÕ?BCºÂýXd´vA>>JË¿ +V¦dæÓͶF ](¶sX•^@Ÿ˜³G}wN6W&"?‹ þ–ÆÁ5­Ï9ôûªÚS4XÂñØM×],\²Ö+dÏôy8ÑàSÏï<Þf£þÃÐhgk“_jã’ëÞX¢ž24ÍÊ­3„6Ri™]‡F&Ù²ND€D.p¿@†:B® ¹§¶}Eû‘BZŠ`$$ƒÈ¦Ÿ{]צ5™u–1(,gĵ¨Nï׌$‰‚cu NÇnŠiÓÕ>[ýg~yú6°ÏÉu¿\swãQÊ?yÌm‚ VÑ~í“!Ç"üÄB¶†2ͱ]òF•>4¤!†-2ˆ=VÐP7äSz(`ÖÓ"F…2z1]!³–ôÚî43WºË‘»ûW¯,3TK…ïá bßÂÁõË›JsµúâÝYh“ ,%‰o\õáógxĪYt–¬W‡¸òˆR›dÅ`s\J¹ñYzB6ôÞX‹zª/õi¡TÇRo +äÒjƒÊ>öÆÒ8ïü ÖÂì>G£“½<¯è4Ô,î¡Êgædb?Ÿ±eehm1‰ô&|¥ÕÄ°ä“#È•z­Õé§\Ä6rïd +~ˆ§Q“,ŒHJÏ#Û-1*•h™"Oy>y" œ¬ 5¥Å„©ƒV¥õ²œP½‹ù˜ÏÓݤoé†àª ¤V‚Ëê[4.Íü/©2 ’}£­¯Ïò°› ½m§01³Ë'uòA±ìÌL¡>4—Ä­ùI4³SE÷·c€*L•Lè„\·Z )² ›Šç’©6,¿ÜšáõÊ”H­)Vþª!yÜö·g{ál~™mœSe÷¢K²’ü)|$põÃ/4ƒí„„¨£í¼H;¯¹F¡ÓrÆä5ä6O³ž©ß±SŒf– ©øýcÌy3bPcÝË5æÜÎQz$lúCè|7ø~¸Úµµùývlë ¦®È> ±‹N9¢åÏÿ\K¹#ûZ©4óU•ž¸(S¿éª?é[éVEõºíˆ0ŒBêëGkÃt'/±0Ä8ZÚêÚ'pÛ=ÎcEÃRþR8ø–¬gãÝø´Dª22(]8e~¿8an×\Þ +¨*ßzŽX>…Qa+’$–õ…Øõ„PÖ`åË.>hh·ø^¤àCñÖm0_»°ç—Zº•ÒG¯ )¤PDK’á¬%úIµá/w¬0Cß|EþhD"€¤ï`§…¥¤}8·¯9^}ºPŽTÇ5ø†|àŸõ³Aj<-•E·i-@³Ý•ë¼þùÙë†Ø1ÏYÿPuœMgëÉéȨ̀ÝΊÆÏxÞSG‘&þ¼7ÃÅçéû9B}9Äû™»¥´T×w0¯ÉC:™<‘c‡ª;¤Îõ–Z/¬û€Õt¨+Ë(²ºÛr"ßeYWÉgv¬Bw„•ió=g(51[”ï4°{ŽL”íÌ@õil €nI?ÛEfø£LvLDM¥®ÅF;N´æû'xAB¬s3+¤Ñ§ŸÌ‘˜d¶5Kº/lD7‰/Ÿ†ì9XIz·š||y£ ¥ß«‰ÉW¨rï;ßl¯ÊáÅnŸ|V" ¡ò\\2b|’m–gå𲈠Vw6H7üWY_a)ô9ªæ__Iˆó9Yé¨z–¡ëŽñÓÖ±iH¬±I˜'ž?Àο}']snaÓ5}¿žŠn½í Ä<ü|ÉÝ­§QƒÒ´ùY¼8ƽ»¼wÂ]YCRv¤cTV9j¡Ï„ü‡—þü5÷@óT¤üê -d77÷À2ôäŒÃ[B± Vmæt‚6Û±˜i¦UI[K…X^!÷LJŽ[܉ð+Â¥¢ ˆsëÛJ‹9­ü1/z€PÆ”<õ +ø +’ïF MRدÁ‡5w]Lq‘†šÆ=<Œ3öT¤{‹±áC[Ö!VÖÁŠ¨ÏW’60QÑ¢hp*Ò<<†Ñ +­×çúOõß·n§çß÷Xü>X*Ì(Þ–ÃÿÐRküµ•'•¯]1\½(oœä,››ý‹A\™2Dj§ª;ü$Iv ?ôZ"Ój\3-JnrÒ»¯Ed–GÙùÃ({2ñc:H.žsŽŒò‹MÿéaÁÂí/C"ëÂe5Œe£—$—7¡–ÁÁ>O?íïÐ}¼ /”KK^hŸµ·zˆ]«Þ’6xæ¨àW[19La”_ô¿çæ½ÐÏZš  ³TùÐFövI…ÝKÄ¥bb+F¤ªÿø¹8î¶Ý—1d×QrKûYæÉ/0Zulˆ©^ý'­3òðoÿRààAÍÙdè&ŒÔÉùE2{­ÿ¹Öý4Ž¼¦§FQÚDt›Ri•°ÃL‰é$好H~M“©Üý……Þ¢ê½Ð5I° :´ÄÇvÿÀòtsœellm_åß%ñ¶–½7™»…ÒUCy¾ºA`{ÇFú7]uršFù…髺Úm¢ q“a‡ùèwOÛåñ~Í`E95(&=†¹¶AYí.ýèwü‰eõ>Õñr‰RK{Ü0 æ]˜ƒ¯›Ä£›8Epš.ÓáB&ÝhO8ÏØOQºÄ'•‘³GDúÖCPïˆã~»ŸóÏ%¾Ðµ·7K›Iü^–¦{tˆêjÜ,:›Ü½©‡&Ï ÷‰¹¥YKuC«WÛÇÿFhÉÿcqÛcJ¡40´L·îÀÖ±<®õ”‡*„º†ÏÀ‘5Ž 9:;‡• wzR¡VŒ Zk4Óm¥¬„c$ÍM} ùM=L¢ {>²}¤ÿ>JB| ç×v„ß" HÛ¨œ=ß +xÆeÙº¸•¡›%NóJÊ2]Œܪˆü–oélås¨–yN¨¨ä6¢~åfèoËKÐQŧt79+øƒ2ß÷#}>Fj½/Ç襔Þsªe œjëyÒ|{R¢ñÈÄÍp-ÍKN›|2¶_í.BGúÝÛu±U7uñEkg``ˆ)ã/œýL9Ǩ9+>Œ! <2÷㊘û„ZZ ˆú ·3ø\n®µgÏ%ÞÊ‚o‘~-ÍhYY3¬ÍîÞæ²ìøiýæÊa,„&÷¹4²4Ø©SÐG6sóøô}Ñ£ †¢;ò«3nz£àO½_OíÙÎx6ÙÁ‹·ùð Ç‘öæ¦l’~áÅï‰Ä8`¡ãYêæÜ»|ã¬WzÑí¨¨Ó6^Xö¦Ì?†”oG}¿Ó¬PJ$Œþ°¿ë¦%ª§Ÿ~ÚÐï, Ó‚ÄW`U4Ýgïݬ¹õÙ m¸kTæÊ/3,Î×Ôçá@ æ-»ûúÕ·ïx<êºt}4Œí0íg""£ƒnŠ TÐ'Úpxc4¯dÐ0‚ÔÎ8ˆ5DÒ9þgãïÅs4;¸¨Öi3mÐ$ m3áîRé7Ÿf'Qéüet×K@É9Û,¶àkèú0X +“ÙªíÂoqNwêEÃ"ˆLn<7kOUeài('É‹àç“b†´¿Yº8?Î8–â"Ù@K#›“Ó9ÚYí§°×›}3¹¾H`ÿyJj—Ÿ%~•õ€U¤¿wÆžÏ" ¡/H?_EqTúË……t>/¢qñs°%ú}:ží~½Ü§ ‚ f6¤ØVèÔåŒÂ!T÷ć±Í’á=à3ðÐlE3¨ª›t&ƒ×™ÜCëDŠ¼™Ô‹ùÞD‚ÂEÏW;òŸÄØ8=ô)8—yuWPä/y«Ë·œÅÆ¿ìÒ‰µÅ¶݇<ˆS·ÇÔ1:¶3ýä=y³ÞÛdA륛>45˜°Xj2~½úª^ÎÍàÜ«­*¹ áÅÙF +Ø£›W +ƨ<  S «O»|±Càuû­rVYË”›½b³•Åk_¹OÁØküÍŠ©@“jÖdp»5"e‘’h åfÚŠ³çL!É"J OÓØæ}‰ ABÚAªžeFtõƒÀvß ›>¦·Þé’:f2žþرT„ã0*/!j¼É^G[yd›£kÒ™õþJp…@EDZï9þ'í>IuZSL´ëуÝó\/*¦»jñCž²„ì#‘¯|6*ËtpA>B@¸’Ty6Irx¤{!8Æíí$ö·¾%W]jgý/&ê¼Ïg°8R§ Ç•:fB2’Ðv³ ‹õ¸½ð×Ü¡jõ¤™è¬M»æüý/`·p7—ŠýÍ‚ÈA"ª–p'8ûÏ$”Y1?eCS¤ vz0•p½Ýnjȫ´¹×9Ÿ~IÃ*7/Ƴ‰? CÁ?@ˆ ”º$îÉhÅ܃)Ø‹î.<·!BÅú–âzœ¨üÓŠy/i9{ xƒVþÙ+Kƒ{VwŠÊÈIJÈwú™YÕ}IO}|ývé¤àÆ» zñP7 0ðî¸w›ÝA–þ~ÑkEAº8þùS?.‡™èåE€œeG¡÷wŸ,'$¼|‘Öó+"D&dcásˬ©ã¸Ô +;ì.¹ªÆ¢[0ƒ€¤|%*›Ñy¡sÓI ¼)úC‰Š4Æ0Q‹/#5Œòøõ /¿öƒÔñçlažƒ; ùÛDÓº„K¾Ðð5¢¨ ÷º•‹_v+hŸ|xÈl àÓ¡5îj®»AÏY|ë)… "Ò_¸½ÄÊ[V5¥H›ûIºý›w—ýÒÞò¥…&›S1&’*ð{?.„ôêã³a}qpƒ£Í l,ÆU˜Ý¿V!uIò¸aµßÄ#ù°pˆ¯Yxx dÆÔa#–j‚ë·«äw†<2•Zç¶Bt_mn®°Bæ¡uúª‹Ù}æW¾k7ûÄ™aA»ô\âôß,¿é„ ÁSëÏI~.w‹k ©].âˆq˜í¾ ø‡ÉoBOÔPH@s¨é<-δÊß.r·÷D1{2„5€_…Ð+,:m~/@"Á³á0cwŒÆOá ¹\NËã`Ó&àcÈÄj‚ Ø,9d•÷Ôx¡ +¨äj1¥c,s¦Ñ5 Y’¨<½g'3LgO<ð‚9zõë'K,ºÀÁÉÝ›7Œp-툜Hu7­?øª\@rå3z«‘ÐÄbK•¤ü‘jzî9™ú23ÃÃÿ´õ‡Þ€Å¸¡v…ì°gܧÔãlS©ôÚ³ mŽ¬E$Ï >÷d–ù G­‘ô¢À|Þ¥@9NgP 7>Ú¸‚õ¦ß“ÛŒ½_” pÈJ£9Z|t3—Ã&‰÷ ¦ÖixÙu@ƒd2Ù…–Ò§¤*<õQ¯~KÏ)Ú-Hñ-*ÙoqÝÌô¹G§pBËq½k`~ÜWQU2sÇ3Úð³É"øqóöôæµ$ £-y:]Þºž­»EÏt} -“é}´%ÿ&ZB¤¢Ìj½¡IˆÛpÒ¹rRW¯À¨~Píí¼ª´~QúRñ¼ùGþª+N·Â{ÌÙ«Xý> +pã¸sÔæÝ/Y ~ÕŒæÛfØ.õÎÜ…©ŸŒ§Î$ãĪ% ;I E%é;xÀ4諘H”Ü·|² éeôë˜Oåóþº÷ݺ3†«MO ¿QýÖa}a–O*¾ +ùÚFÆ]Í…i¿ä‘R£ÿÃþ‘±¦ÿãr)ëË Y VVHe ½­?¦g›ý£ãïý|Ð^†©ŒvCM ãø×ßhïI=n¼Q>š{(°KIòòЃxB˜EºaÈg˜¥Í’³½Yåf醑O!B–Dgn[QÁ%‡óSŽ‘.f3öv_§+ˆß‰½%Ç°xc¢×+>Ä ]7_¼šÆaF0TÜ:®Û÷*‡ct&Þüßõ~% ôk1:ÒÛöáL\¸±¶U<pz/[[ïž½ëì‚‹«=©ä&;ay.DKù4øµZ½zýü^`šPä3æQzO¥¡ –P†|ð½v‘Eãê/Ø`„xT 0l Õ²`vÛ±zV›kÌ8ˆÖÖÏ*Þ£­6œvä}Ñ!«§Ý]LÌ2Ñ=†?5æø® 9\Å_BÞpŒ}Êýób3yã÷¿ÎŠ¸º“Œã¬%ÁÞ§°·íör*­È„rw‘nKfG$C>»Dœ2¿Sé·:»fâ}*çö/9—‚¯ˆ2"%øM += ©4ª-PP둆W²Ñ«G›ºÅ˜P›ÀSAð\¯ç†™±¤wæ+Nõ7sLþaÍ‹]dm›¬°¾˜1CÓöìBò/–ê¸ xÎA3W•‹Ï˜E‹â¶Ô‹Ò°Ú-©\úXƒØª ´ˆ±Ø­Ç-ºôÆ<¤uDk&º \Ë“¥aÓÓözQ82œö1¥ ·½­·Þ÷ƒNŒŸ/Dìü%·Ö¬‚&"…3¤á Ptywjû7µ¢ ÛàVYRŒ.œ…̱=?I) …Þ­ãb*½±4>$‰ä1‹Æ[÷¾ï$¨›å +â}à; t¢ù´ ¯œŸ¾sôëä†ù7Áí®LÑ„Íp\A*ç*ÎFäEN%Úºê@û‚9OQ³i@±6ù·K~ËY}™-*Öç7._*©÷vte¶ÄÖH-Lcn|ÝÎ.#<µ©êP½ÐóÒ +(ÓŒRΈøśЬðµ˜:M•-༂ð3‹÷÷f¾}rßÈ-¬·­í]Ï!x_+Œ»÷ ®° ³"-æK5xpûV”%ukóté'¹•çP.;}«ZœÁ‹+ô ÊèÇVÉü˜õ/6,r4aµ¤÷PåldU"JhË!™‰ù +ÓR6¿xʆhôq\âX4Óv­H¯nÅJ€oøk§KرÉa'~WƒïÉj.ÛÚH8¶ÿTj‹7l4Íê)‹·–*„ ]£Šw難XÔ”F‘ï‹nª³QÆG›då:Ÿ’41œ±Ä‚©O@³íJ¾Žô·û„üBâU‡n54È”—iwЋ6h²¯ä|å“¡¸Ù›!„;ÑÑå¡]WNÞiHk>³WÂ¥Þ{4’œDÏä±,ÕÄäŽQxœÄŽºà×Ï {×Ü– ã¢þnxHæ%‘,v¥Åuþ””5;â°ïÆéÉ°2”rëzõ/3,_›p~%-¸WqZ™ ªœU’+k3:)TšÆ;wXÒ:9ÅG² S)êá{ú׎Ë5T= }ˆÌ](SüL)ŒÑÆ +sÑÁ–´ºÖëý¥7ÍR€@Gã7Ð\å®Ð"¦)9ý»È=æÆ8V’¸¤Ï%5—‰~ïç¹|„ e£¸H©DÉM‡&Ú“š?¾ky/‰/Þb»ß§ÜìXÖ"7á$SÑ~Ú™OÅ^^=¾;}?f¢æ¿Ü“™®`!"¦¤sÓ.ÁTé›é€XÔá3 ·î IBçç†Ö<|¼Âö/rêB½ÜýžbÉþä9o¾ÅaWÄŠûX7¶hvûœl\''éàÎ$I­üó•/ØùOAíîK |ÖÑ‚]ô”ìÒV2D²*ù@¦Ž¸òi™· E )rZÛÙb«ì'ÂX¤Œ#:iÖ>_!Ó4u¸O.¾ +Òç"!”Eþ™îÕûÛƒ®ñÂ-ôhÂ)4r*oч°Ocå(_À<ø&Ø·À£Ä>–ã|x%Å|®«¼éáZ÷ÃÖÔ=0hº¢Ë¿¿€ è¬5G`³ÓLòà&³à¦W‡®ù·f.ÕÊÏ>®}¼R;±ÂðËò½ÓRÈHV&¹uéÇádLÛF",ËǃDaãæó8¸“TšÕ=€Ì–ïW I}Zò +à ¡yŒ`õa8Æž«éДkT3ófMÎp~‰(Ä›ëò"c&:®¨¿tµ×°—­bFpkY•ý0Ži¸X&òíæçO?lîw2öÃKÑ¢¹ˆOMÕ»;j árÍc= 3cîœçQ³P’ššì%B¿ÊuÛ>dT˜'†_ÎñMpèq6_ì| VM¶39Ù26F3Øð6ÐcnbM7®\ŽÎÌ6u´¾õt,à¤vþÊt~?‚,¢!ö²¬T™é…Y î“èOü‚+2;|êWg¿JÇÚr¦Sâ¯Èà7k~suÎZ|ÄK7^ǧƒŒ,MõáíÞ +R5«-ÌOÞ2²`+Æ ø¹ÉU-™pTä ³};ØU~¹¬Ë9ý€­;Ô°¦×=L"†²fèšßþÙúe°3>N,.ål'\ïàCÛä8)Q«Sv£Ó¿1Âkòy÷¥!÷˜erèó¤õ^úšS]Œ[+ð»øE`«ö¨ÈàË>?ÕÇo.n’ÉO)³¬”¾öqæYY±Êï~MŒùVE ü÷[“pðÝmŽa„¨–A妧3€ÐG>· œÚ³|y£Þ*u‡Š*VÑ­5ÏŸB5D•ÍÍJ »87ôwô#¾»]W¸ âºQì:µ¸•EbD æ`Ñ¢† ™˜™)õ=›ÉÈ—/\˜BÚ'œ”\Åm|³H5Xê©äiáx&ã §‡Âñ«t—Q†4”¿Ö'ƒÄ„:hÉê×ñEö´áƒ’$—ˆã-&$áÜ2\,7F€ÃωøÈéç´X­F™‚^$”Ó®nb‡gÑeW zkÓ1·˜H n#/_й]ÏåbÐEcÖÑ»¥ê†!ÕüR¢HH-§YÎ0}rPµá‰²Sñ½hnÀŽXQ£œmJÒñuC:ÙZa$œÝ݈²rö–CÎõ%-f¤žíÉø99ºnÉ S*­×©v=Ñ@çà34[Ak,³Y˜+˜ ÐÔëêµ3ióìXÜ°@Z}AßËD]Xð¡S_úåÇ:_AÃŒ:7t¦›ß5¹;˜918B~©]¬b'{¸tßy¿áRÁ4ð ~B&ÁB–26åá®@ÄêÆv¢€ Ý«†Yà3Tž–©‡¯qž=G€å瑘oٜŠžº£q<?å0éÓ +òÒ¤=”?×±RW @yÌ­–R\)çC¯~:Ò‘Í»GÐÛ$ù)òv«…«>e«‚‘¯õ,Øæ…ÞÅd/>g"…Äâ¹S£š^ÚåU„w’ë†NR¿e²­7SJ¶–4©[o˜Þ¹sž_Ó uÆP6U*ÝÕ×,h‚ÂïÏ‘«PKgú5oN¬²2R8·’‹Ç;† +j6ÌU×ó4dfÆYߣëæb¤ZŒ®²Ó˜—Á­¦ŠuIzè®Ô}|e•”ßæ¢F+ôÚ”ßÉ%+$à˜Êjß›¸!L„º#2²î-yvžŽåzÏ~l•W·CZ—–+s41{d1Dź§¹VßwJþå7Õ°d +Uc×%‹Æ|¢bÍw²ðÉËs,¶=Vûür^’@—ÓŒ·™œ^nÔÆO‹½Ø˜^%“3ë¨|*·¼òòGJø4‘ñõŽô¡Š™÷6ኮC‚ ãóúéë%V’9é#·.[·Ö¥°kG+qjNŸŽ•«ﮄŒ¶ `œÖ-™ÑxÔ³aøc6RB[»¿Úu^oÊþ¿væüŸ ¸ã³Ìðzr‘roÍÈ £µiRsFôH› aÈBm#W«%¹’9rŒRkõër…ÐGëI +)Y­)Y5yD¿½Ïûþ_ˆ¿",Ë^¨ÖÄPKmËvãS&Ôq¼ íÎ×¼CЂ9¸¯Ù‡u@z"*)tTfý)u<4ÛQÏdK~p5ô~[ª¨üðcD$æA•Ù‡Ð¬ñ‡\ú—©ywñÊÒ«ÓOªåÔaÙ 8Ít<š§'FBN†B‚é» €÷ÆòVQÒ#."C…–ïiqÔíºy¨LøìºSL¤æôöþHŸº¥™äÒ„¥²‰gYrc ç¡“ÿ·u¯>òÂ[¼®©àò„89Ïš"ª\ï­0úIV¬ý–ˆßp‚ˆõicD[™uDA%ZöšÁ¿z Á×Ù6åIpî‡Ü%]¬Å$ #Ùø)g*3|wX@îÇ}”»õê4&t„*sµ€«ªPKâ=l@[oï`8Š9ö(?I:àSþã¹°áðþ‹CÔÁÁBÔ.”å2+3š_jcöOT+ë«L¾–¨œ)>fÅ°K}ý}Úem¤}­2eÔõ`ëÍmû§Ñ§B] Vm[‹Ùp¡y䊡ò|·Ãú¬¾ ž ùA:|òåvnRܸtùðtsø¸‘®#²nô5gbrGHû¶X߬W{â’x°hzX5I tB„ÏËÉTnÜD0¦ÑCWJTX ¨‘ûÔk5ä)!À—ØÂ"¿"3Û­LOÌÛ°75A~{*ßá_š¬Æ:}ᥱÇ#ÛÙÏ3zäÊŒz"‹¿jýçá%Oüôpo §©wƦM‹ŸÏ\¤^÷÷Éæx8¶­õôMõk’ë¬NsÏØk©±¹¤±žÈÅ€R2mï:Nó®¢F°ÔÔÑ™Ò)¡"å·å%…):2¢Úrt¾t «Í›ÒŸOöhwìà©ÃÖgÓ›˜å÷$h†ú‚›ôˆ2ëÕ­Ê´ü6r±a8‰ÓdÚ>W””‹Z2Öy·Èºbg`¬» +xúÇõàªÖ¸D0¸;µËÇA"‹û’åß¾Š·Jï›ÃÇÃ6Dm°˜ýÙT.¹tÖÞcPc¹è›f‡Ë!flœèâ”3J5ô0DÅUú{äPË #s-&å-8Ù‡ð%‹VÛ[¿÷|ë²6+Q÷FDÍLbXw5ÌÝ!Ö÷z¿ÐÿT‡ž§Ì0ô&â³A™Ò®KF†nh°Má­Och¡îÓ8_%&»†Ñç Ç=‡žÉÁ—4÷ƒ…oº«VZ+ÙÝg‘÷%ýñ¿»jÚeR@”Ð\O¤¤> endobj +578 0 obj << +/Ascent 694 +/CapHeight 683 +/Descent -194 +/FontName /VPYUAF+CMR10 +/ItalicAngle 0 +/StemV 69 +/XHeight 431 +/FontBBox [-251 -250 1009 969] +/Flags 4 +/CharSet (/Phi/ff/fi/fl/ffi/exclam/quotedblright/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/equal/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/quotedblleft/bracketright/circumflex/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/tilde) +/FontFile 579 0 R +>> endobj +2531 0 obj +[722 0 0 583 556 556 833 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 278 500 0 0 833 778 278 389 389 500 778 278 333 278 500 500 500 500 500 500 500 500 500 500 500 278 278 0 778 0 472 778 750 708 722 764 681 653 785 750 361 514 778 625 917 750 778 681 778 736 556 722 750 750 1028 750 750 611 278 500 278 500 0 0 500 556 444 556 444 306 500 556 278 306 528 278 833 556 500 556 528 392 394 389 556 528 722 528 528 444 500 0 0 500 ] +endobj +571 0 obj << +/Length1 1264 +/Length2 6661 +/Length3 532 +/Length 7459 +/Filter /FlateDecode +>> +stream +xÚí–eX”]×÷IIéaéfh$¥;%f(™`èIAié”.i”îî”$ä™ëºßûÒ÷~>¾ï§çxf¾Ìoíµÿë¿ÖÞç' £¶,n Q‚ÃÜxx$òº‚^~\yWÈÍS¹A$ââYw;€ ?@@D(&Á/ŒË‡;{»:ØÙ»Øå9þJÈB!®6 @äf"5l@N=¸ÄÍ› ëäÐýk  A@\= `^\ØÁÆ ` ±s€áòýeHf ˆþ+ vwþ÷’Ä4`Gšä -‚á0'ob‹Ë§ GÖ‚ üÿ0õŸâJîNNš è_ò é¿-ƒ NÞÿ'uvwƒ¸4à`ˆ+ì?S ÿò¦;¸CÿsUÅ ää`# ³s‚øÿr@(9xAÀÚn6ö[òwÿ§ äÜþ¶À§,¯§!gÈõ¯óü{MäsÓ÷vþGõ¯ä¿Yà7#§ãêà0åçåç@&"¿ÿþeþµa6p° y!„E WW7.òf Ià+p€!^ˆÒ0/ î†Ü@ÎÄ` wÅýë8…„|6p(ôWø_1ŸÄþO@˜Àçæù ÙÞùðÙÂÝ]ÿ ˆød“(€Oþ7!õþ!Q¤Ø³ß$àSÿMÈ}¿IÀ§õ‰!÷éü&¤Ýßðéý&d‡ú¿ éÌàBÞH¾ß‹#Yÿ&d=›H€9ðˆ¬ù‘%íþ@d‡?)ìô"•¡¿Q© û‘Êð?Ùšóˆ,äò"›sý‘u rœn ²[÷ß(ˆ,äý7þ÷Û+'÷òå +x‘Ç-.&æ÷ÿ¿ó `.îäáçú;jãîê +¹ýýw|0þͶÈÇñ‚Øà.ÌÂm$_:¾k/ PÌ/ÅäD•³kŒ×¬íœjà ƒêT8¨æ¹Zc|]–FJðó+ƒç--"ºÕOgDé8Ø%>eæ×W«¯i>M´Æ§iÞÛÎL—¡„- Óç‡Â¨Z“«C%‰&ù=™'½9Úì +ú;XËŒ(ŸL=ê>¥¿5VJs2ˆ«a2ꥸ”D +E¬x%&`¬Œ…8F`äZúou'¹ÎÃÎ~ûËì|oò©)EÆŒˆ9ltfÎ~êdz£Ì%Ä“÷:½©ùöº<ƒOfØÀŸ›~’ñ$¢ø‘9afð _]foÈòtØP¶º§ oÍ×¢LÄ2µ¦É'@îbKú%/÷©á +¬^ó°Ù8µlXï·›—=ñ‚]gNE ý!¹lÛr•\±–,/ào Â_ÀŽKQ!3¯¬ó_Öx®¤bš½"ΨÈH%îþ¢=rËm{”pP7ŒÃYŠóÅúYðù”àb‰ö$zR‘˜:ðÞu?Æ4Êfc©ØÝi_°k'‡\åפÁqãorŸ +šH*QÞœ÷¡OH*€2F˜Ê¦ÄùPä;kwõÑjÊ´ˆžÌÖˆŽ&ŸêÛ]æd†yYžÇÛ'f {Ÿ^UÍ\¦7õŒY™§5%û§'Œ!ff-/Ÿ_·Ø"žR5o€M\ýï'Þ¬ªoÑƽê8(c"âf‰°¾å®TSWDöŒ«¹l‘á +%=Z¶/V`v)ŠB£!’ rÖ¾+<¼Œ—±›$}„ï÷L5^/–ùÕÂA°9¢H$|¿ +õmÔ•y +Nw +½ÿQ"o qÕÃŽ­}€ó .`º@Ã~K•—<#N‹¨??(¾)"ù£UÀa«C¢â~±m×kô#-é¥AjV΋|»Ê±þùkbzõ‘”h„ÍåçF‹Jcþ*%‚‡\@ïÈïÚMT¼)YžÚ=´ÅOÎ<”eÂ'Îݼ"edÕ=b J£v¿Û ¥­¨&à¬Fk±ÙvŠMlÒ†G¤Óq}œ‰t× 1ê¸|¡—¢qþÖùmé±7J¦`nš:Å ßߎT™[yîç®,>!J9ÌÈ°Ý@hç=æ„æ©f¸˜öb~ÁeMåI:±'0—,<÷Ò'Un;'¥ÒóìÈlµ6Æ›‰¥œ |ì¹ýÈ(8×ö59ØI½B÷ÏÄ«â±i3{àÞâl´“,2Á;Õή=$Øg°áõ­Žt*£%#á'ÔÆá`¾¢Þ£¾ ­±ÈriEk:Xs¨±òÅ®ŒDf<êOmÚš~}R}ÓCsÄÖ'?úÏu1,·\¼Å:»Ö<8†_yžöˆÓЖš#`žÄhÙ³/Ú¢+¡7ê¡9òhTTÉ,\L6h(ûEXÙ»aKƶØS Õd)·£YgGˆö0ž“ïqÚ#/uz_vŠEõÇ3GV„GÙCëš½¤¶µÔ^KT “ï&ß“ÎÓ¸7GFËå ÿ2]q +Üôt›‰Ëù4§_û¶´œ~íð#_{>í¦u¦Ê ©ÿ”u´}Q/Áußzßö£`o ŒÀÏVÔö6‘¼ê‚˜’é‘ç_UÂØÅY~7<¹o$-¾…Úgžhì÷¯å=$-+zÑÀ_©0¾2'¹:‹“Y€¯M)‡:dškÜ|vV·§(æÒ¼ ë fgJÅ™^úĶèOaà1ñ7à S˜íëB¦!µAìf-цuP»uλº¡üæ‡?y<ÓEK‡/¨FÞM_à*?¢'lÍ6Ž(eb |²µr×ì?çVµ=k.Ùìè³d@8.`¼ƒM˜Zh[5Ž½ +¶ïãÏ¿6.jíFé²K)³Ü¸Xe6žlµppZ-Éi +¯S¡•`½¹OT³³*ô˜²Ø<˜[³£U¤¶àçésE~`4ñíüé™nòÆb´¡BÞ=T•dô€‚¿—1Í×®µÏ[¸Dº 3¾³ ýœ˜’m_QÌÏÄkŠ_MP´èûÜörøŒM¶ÀUÊò©°aÍîbï)¡ø s'Ô¦K¯ì8\½q¹Ñ¬ûã˜7U2럫Äñ§—cûÙ¯Êh†«·g¯“O4ù>ãÊ^α±É:Š:ÅWýHËÆrf€'öâGb?ï±e¤ ýóÒ’òÒÛ¿:xZ+ЦäINÊ9ZGC¢å·ª†CÕïu€¢1…Ïk¼Úi»Ü€°Z±Îâü +–±±ÂÝtæGßÓ=rJ—ó÷ªÚó•i ã»IÔõßÑÖÄ?¤Â·¿xK£|K0.‘Óâh°RÛQ4SwDžeÈ}×#‘¾w‹Z…³«:W—|íÍ÷þŒ>D‰édgàíÖZ@w~mû}Ì`†#Öq(æå7ÄŒžjÓØ‘¨á›²ÒªîYü_& {"ûŽÚÜ×ê¦ÃN ¹j.®¯©?ÂÉo“æ~&9\h½ê_ +Ùžo¼T{…]›ì§DV©žÖJè®'ÁHßÆ—â×oMž_¢·È½ø C\ Æp¯êL'g’ñê#À{óÌ(%qëå4QEI仩@ÀEÌL¤Åòù2)ÂØ‚.ÃÙ7†*ÐJj"$7ÙÏ xäÖŠâd`~cÏ|Dcá©øUY79ªêë›,p2Ž+!X²¡;vu \9^@?|ÊÖ¥óç…k€|}>ÒÜi˜VÍÕ£ýkÚQÄ… ã1ÆRÓ±úý¥«˼E ‘$orº]Æf3ÉæÐ;Q†}ˆMdô°•D1dæ«že-u¶pÞFš³f³ú{7orÄ»GKw¯'ò²¸ì?¶Åµ£ñ0Cž|Lâ_¿ü¢åæ´¡EQ”fÔ-Ûã ±@ØöñÍD½qD}Fº{Óø‰_ïyùkB¾ÔÞÅ‹®]¯Úr!ûª}Ên-­‚cÎà +”RNgïƒ5’f¬2ô]‡TžŒä\Rè“×eÀò9×z^㄀ص“ö ¼r&êj>‰C§×}/c¿Õ©”qçÖû¿ºv¡kÉ1ÖýBþNUŸ™ãCÁì7¶Diò&c5 Ø1—וã×uãô,ëP3ß*9Ö + ·aE+'¸¾1¹gP€ô¤+Ö›`p„7ŸîqŒ©±†˜ ðaaSWþE‰àEh¤K5åÜ +ä×#™¾$öÚ‡XÚÁÖóNÔÍ5¯gCëËÔ¥ö*ÆDÜhrYËä=Yº£”ü=.ù¤ø,j;¸£ý–$õTjŒ˜[1#(—Þuï±NKãŒt‰¾Œ`‡=,X¡ßjbª3ıKõ]Ḽú =M•lf °Ã¸¥3H>à5ó !cX.xƒÙÿörªÕB‡Bf1Å +²I%pMýäø!%ŽU᳊­–ìíü&é艾Ëp?º~eÚñv 0£ÌwI©ö&Róþ>¥ÍjK‡‰¥.¥vúApk«ã ¹b€ZáªW³`Óý†¶$€n¨2f´áK:.íùÓÜÔñœ€…Ëd½H銓֙†DÆgaå%FÁ-?º*ûœ¤*öÁ³Oç¯Â®+{†â÷ž(2 ¼ŸÄ l­‹ÿ$æ%Ù8¹DÇl¢é{wjÎ*=jâDús‡çi]c˜–¸yf-_âºvÐÅúÙkôìs9kG×Bbp©…i‘š–ã—z²¾òEs¨ð°»|”€S­jô;Y ”®I8ŽõꉙÅÙ›8ÅY6’’ 5ŸÔ™m–tÐ9Ê»Mô]Úbü'fÇ_H™v&ö²Yb÷c%ìj’F=`,8ð(”)`íL=è'—ºZÛ•ÌÎm$v(éyw‘Õ¶¾ÍãºDxãô9^*‹rœ,ªNBg•äÅø¡Ô]¡ÔÎÐ[5È‘Àdïô`3G6}([›[ø€®åÒçJ8·Tt”ÀŸZ€´²q-M.WîÓ(džÓÜWz>—^lPw00eá=ùé7šzÅ>Ò:téU8Ù U);5^zpØöÎGŸ[E¸ÅMÑZ6-DŽžö™Yˆ;þiÄ&w;ûØâ³íOkÜMUPbñë1u6ÏíÀ©1þ¸[N²Å1a¡oõ6r‡‹Ö8ª¨žàÝ!T3åfé$`y¹†‹WYNlR™6)ûƒ¥oæOîi?.ÎÒ1no¾´Ý úIÛ“&ɾ˜.ñª •×ܧs†8l!ú)FŸ²çE¾ºÿ•Óq¬o‡8Í΃G=ÐèERÄq+ðæsYRÒB¡¯å “ÏxfFÛ¬»Ë'T‰´i=Š‡åº&šÙÊôì¹%¦vXíSsErÀ‘,d!¨y_Mˆ¥ŽMuëýÝ ë7Ét6bÑ2“ +ãxuų™3¶8eó8ÉÆ'‹}«õºª]mRWº‰ÉS\fÝp²…Xf¯Æü®W¶ù¿a-jáûvÙ£ø˜(T–¢8ŽÑYD}¢¤ï#2ïvÙg=ÂZ_®åŸ>ˆ6WÖ#ÏÊ~èqH5I´¦œpmF¯ùÞ”LbWA ñ‚cênÛc5”¡˜%?]§ÉÔd>|86óù´}%&΃Âhõä™Y Ù]p3ɼµëFݲܭœ›Ku™^Óƒbe%"¡Qï"¿œæ§?%”y;«ŽjÜ4ƒ2».¥-dÓŠˆ¨ßq[ù‘«íªß4OåÞV]Ç=ù¥,!Ûr#ô@c%Kc9Éb21Ös'rrðeú¾Û¾®iò*öÚr +â·g5šV?0Hi’ô”\øðŸ±Z%pÖ~ý‚ŸUq®ÎïW‡&Sw8gº)Ì +Ö7IÅ Ì$øÕx¼ä0þq.áê@!é'ð“ªr?*æÅÓª[‹<*ÚÉëg§´ÁZIñ6 »Û{jv·uÞÇ+šå.ÚxW!¼ W]ªq|‘sµ–Kâž–$Ý×=ýQ˜’ìHº-ûnyç-Ø }c±ÐØ SˆVRÝT;ºÞRŠÉÐåÿnD•ËÈ…©"¸îHÓ]ç˜]àX;ÔëJËë¿ÁfÕ.†,n¡µõÜÚ y%÷üÓd~êy§³%ø 2ÊnÐ}Éôùš^ˆÃ³Ú什âþ ž\—·üè†Íã!õKù§ ß0ŽÆŽ¸KIõÒN¦-:rª9sÚª¬£Ivußä«ñ8šÛsY]à8gcLCá«ßØ[ >¼ˆëz¹Óž;> Y£¹³êœ~»—'§çÉq…s©,¼ Ç#øµs°g*ú¢H˜'¶Gÿè9`¥RK–d߸VLÛh7É{Paç'Ã÷Èú5KJCôS5«àìz1ý–=ìƒb_¶âX„íùÔH{ÈS©Ûê_èE±hiÒÅðeF?:»ç¾Ô÷íõÅ÷ƒöMNŒ’èwmq¶ †*mà´bÖ¹œCk÷p óÊüŠ¯•¦Q4ªë•_FÌWëS""YÃcé¦;hmÊ-.£ÚU”lFo“džkÔý#Œh1ñ0Ý(2W Ù%@>µÒ7Í!ÀŸðŒˆ â¾ýœ+ ÒÇA¥?tÉì“aŽØ2œšóW›eû… +lj.¥Ú…Yg¹ú0tã2VøRQ\òô^ÊuĤ¢hû„/«Á—òÙ•;ôåø€hGòØì›ý/È°U‚ÁÇdVúÝÖ9’ + ØKR› )4Z‘¼/î’Ÿ¿¼×<¸Ôø$üt3æ†áÂÓ`€³—'8Ƭ˜9Y +vzÖíF¦¹L$ÌîòxÇ$‰åÂê kUöÙhŠRïù®MÍnºÖVÍP;‘¥[þøcä"]¬—{Ñ !òÍ]ûöáa‡ôByÿ΀¥ÙmVÒ< 'ÚKóܺmx=eÃ*a§³·{Í W!ªÃ Y{ÃÊ”ñ»ì‘ðûAâ,b˜ÉÒ4!T—qH«Ý)ÍÇY"òÓÑWe\×¢ýÜ9"Ñ0ÁÛ¦4–ç"˜[Y~òÀãSM'Q`>ñãƒy„•µ$)ÇM¾ï^î4ÏŒ&SGå*q’êù¹l°Òb–iwr£)àb•OGË·îX†ÉÎäF(¨(ûð9ø5²Lt®µ -RLd¿ÓâÖ,²óãHªÍkiÅrßì™åõ0)ŒßßØ-´È eDL.–?E„^ßÆOp +yŽÓ‰÷1xsw)½?ãIlÞî¦2¬p¢&lÔ,Rú$Ù²jŽ‡tY¬]ëØ%<‚èßlíIÃò­_Š¾bÔ7ê„ñD¦¼mXƺ^{n5¢!Ò§Î1Ó%X‡5IPÔ‘ô=n±ÿ24‰7ìÖ`s/y©ÁUtü˜©òL%o5`Ëzhýc¹eR½G]—D-½à¹¶*fÓbsn|eŽ‚䦰$Ë=õ›"íË— ž>"ÏöSÒ|çÖÈ…Ì×EO¥#•>¦‡?²Sy_|Dk7ରé»l¹ÚÌ\ó¦ÀGxIlQï©óè% qøYy¥Á²¥ßÝ´~vt[Ñþ5t!§Ú‡ft‚4òY¤‹{ŽÛ=ůVáJ»Yëõ§±-yc`éÌzì zîep_¡R(G‘Î[=rIBD=4loÌè®hXŒæWŸpö"ªÊš¿2îeJ·Ï#âú0Ë_{edNÑ0 ùW† +é(I.ðóUÎ6îÕûsïî4æÐÁÌæ1ß ÁÚ6}½HÑâ62©ü³´²Q iců»¶9ºç1¤h­S§l{Úͨ¢¤'O™)Cm#ÕÍåå·9Ï <6¦gƒÅÅÎf~ý8n¡ð}ƒ +^AI´Üh9h7P›×ª_°wu{´Nà™²BïÆ—`†|©gí®sOžÖ«ÞüÌÆÊ«Ú œ{䜥|TõÞYÏÏié|!»`Ú6šž,Ÿí6ýjKf2t‘Ex¾ßçϲòy9¸NÕ+¢)ÒÿØI\!_ð+»|>goìÒÞ|ïiJK)à¥ùçüW†YõãæDýª°×ï&™:gÜÚº2s5§A9+½þ{˜vJ¯0ÔešŸ>òµÁ‡ ë~«Ö([ù,‘GYfPÎ&¶Š‚W‘ê“ë(ÀŠMŠ%~LÆ0ë{d_R°ÅðvÈ&Ácý½.³Œ\ßþƒïË(ℯáÄU<~üÁ¡øšoMìG¼èókÄÇŠ¡ÆLWö†.È$‚;¬Ä9NK7†U Ü +ãÌÒ¦„áN”\Ü`©’MÑ'•óó”~TÒ» îÊ¥èÖ"Lu¹9H¦È•…=ebÒ1÷?_•öy¯p+„@q:T&>:‘„*ü@ùt±›–¹Aô8äM1ßUØ›Š` +g@-¦6 }~²è ¥JrBÿ±ÞNcТôOï<É8¨¸Ç"r·?RÃç H…‰ŠB¯Ä”#âk+zYal¹¨;Ôhû{»EÚ¤íHŸl©N*”"†"IÉ-ExÊÑ_9”¨Ï}·g2ª’eÌ ´[»h¶Ø*=Ñì\øæ¸ÂáÃD|ë•}‘©Øk¼:SØ8óŠý0—¹þX%…TÉÜlÊR¹ D䶣ºkºò¡\Vÿ|ÕtsAÏ×È<¤¢=«tXŠ8k¬Ï¦ˆ$òîeF¿î@wÂup[¨ÑªE_fø…ŸÉJhËB[A5Q;|•Ð¿a +³.‚ fßlv¾·x?%Ïf)&kŸG\*w[µ¾86¹xÚ¥"Ú1¥8¡•?1 +Ê Ôz¼mx¾#iò+Ú¯Ïpÿ»V¡»s¡'Ñ×`V»ø>TMu¡SKRª%>ƒ+_sÿœ™ÏÆWÚZÀüÓáûŽ‹¶%Ï9x¨‚ øÿ?¸ÿ+ð?BÀÆ ruƒCA®/pÿ øGÕÎendstream +endobj +572 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 2491 0 R +/FirstChar 44 +/LastChar 121 +/Widths 2532 0 R +/BaseFont /HCSMBV+CMR12 +/FontDescriptor 570 0 R +>> endobj +570 0 obj << +/Ascent 694 +/CapHeight 683 +/Descent -194 +/FontName /HCSMBV+CMR12 +/ItalicAngle 0 +/StemV 65 +/XHeight 431 +/FontBBox [-34 -251 988 750] +/Flags 4 +/CharSet (/comma/zero/two/three/four/A/C/D/G/L/M/O/Q/R/S/T/U/a/b/c/d/e/g/i/l/m/n/o/p/q/r/s/t/u/y) +/FontFile 571 0 R +>> endobj +2532 0 obj +[272 0 0 0 490 0 490 490 490 0 0 0 0 0 0 0 0 0 0 0 0 734 0 707 748 0 0 768 0 0 0 0 612 897 0 762 0 762 721 544 707 734 0 0 0 0 0 0 0 0 0 0 0 490 544 435 544 435 0 490 0 272 0 0 272 816 544 490 544 517 381 386 381 544 0 0 0 517 ] +endobj +568 0 obj << +/Length1 1109 +/Length2 4812 +/Length3 532 +/Length 5537 +/Filter /FlateDecode +>> +stream +xÚí“g<\ë×÷µ#:‘HÈVFïa%jôÆŒ0Ãeˆè5‰Þkô z‰Þ D-HôrÏ9çùŸ“çÜ/ŸçÕý¹÷~³¿k­ký~×u­ fÑyį`ƒ²†« ~aa¢©',  À`Å PH%(.KK  +nv€ˆ ,!#*%#"”3°³Ç\î?Š$'8ƒ"M(Æî„ëƒ:P0ƒ½?V¸zpW8Ún#l0 ` ·C A‚RCڢɿÂ6nÎÿI¹ÃÑ®8SÎ$7€³hƒB:b¸-HP …Ó‚ãœüÿ0õïæ*nŽŽZP§?ÚÿqHÿ- uB8bÿOÊÉÙ Gš(8ùïR#ø_Þ4á67§gÕ0PGLiç„þ +!\UžpfØB]áÆáH››ÀÛŸÕUµtTuyÿºÏ?s:P£uþ»ëŲð?Œ;4Â0ÆâÞÿ|YüKK CÙ ¸— h4 ÂMŽÄoa´{pOœaA$ +ƒ[àÎÄ°E¡A\§„8 ¨ðGè/’•þ!i@Pùo’Uÿ!Q@Pí’5ÿ&)!@PçoÂݺ ôÂõ„ýMÂB¸R›ßP„ÿ†8IÛߧi÷Š‚ö¿!n'ˆß·Çߧëô +ãt‘¿!NõâtCœú7Ä ¹þ†€ æ7Äm×íÁuÆþ‰ÿ}DQžÞü¢¢¿ˆ¸ -&HŠIûüßuH„‹\M ’”ÿ3 +sC£áHÌŸÿ$núþöܬÂážpèË +v7È!©.¤è™rîHñ|E»úh­êÖOïÈ'cð ú5\xf«ŒOJRi)V¯¬Þñ8»åÑüTwHeÇß%:yübÕÝj5Õ«ñ–ñ^ª&vÅ™õ0pƒ²©nìç¦8¾öèì@Q¼I^WÆîl.%ýoÄ3,xmfî5miA’Æ*©Ž¡ÁU¢,zTÉ.Eab¡_=¨âc‰¾>s%iàÞE5»Ñœä’¼Š»°$~ü*D_±ueœ0#ï–H%2!÷C8»Ú¬‹ 9‰”á:FõOùÉ‹Ü?ó=ÂWA‘–Fòdzuk8ˆQ®¼û—ö–,ì~ð[­ù3db⸛ê-<ïcÙ<½my—Iùâê/³_y¢»‚(ÊÌVfâXט.ƒÉ7¤4yY}§Ç5íæ"û +5<³+2 +×Ë´ß–³mýÊ÷‘–²Ð£ÐQ\YEÍ ù6ò§r¹ºÚÓ"ö7ƒ÷Æ•Q‘|Ï$âÌvµ’û´ÕhцïUÔÙB‚Æ9cÙTß +&K.HÕÇ£G‹@ŽE™lñƒÀ”‚« +ƒðá½$g ­bä–ƒœà\Pût^E©±Öú\í ®O ûÁAPãöôÔ5ÇFÿG‚›o±1pG‚ïd§¹û¼r”ùÃBŠ é  õBd· ÜÝ„2 +¬ä\O{Êñðàc`FÓçˆûPJ>ò§‚óY'ɬ—„¦ã`•$ÊÀíÑO%•û„¤ÌÍÔù’i4Mò÷KÒßÌ—+š€b¶À9+ú°M—"ïåV éUš(C/˜¿î”®Ä摆Æásv§Ñd^©¡oÏ[0um~1 •G>"(Ͷ»ä<EV‡<­w\e¨ ¤D†ìO­Ãò“< ‡þ,šQE­‡~x´,cÒ.‡\ç™+O/|bbB7Ãä*utì9˜:ñ½}¸€pú!Œ®8Ë´ï÷êRqô—×ñBËÄKFŠìP†à3Î"߇„ÒŸÓ®‡ðÇeÉHFj±`–OwE¥×[ؔ˃ÜåÈŠì~˜¾Îùöaf¥S°üÝŸõe%Ϣȼ£J7×[—#u{N6(NŒ3Û!ëy¦íÇ‘®ÅÛÚž&Ú3Âix S~Mï¦ Ðè-ûœûÞûd]=äðL²•¥—ñ#ßIî °øõZ­#c´$O¢ûk"Úƒ;,G襚ÛLIæ¢8=½Õf¶5·û +ãRë¦ê?ÛUÂ,rÔ$˜‹½–x¥ûp_”2€em‚(½–-AùÁ’§•I™°’¹§øÆÁééÍM¶¢Äê)¨f˜×Í@ºý”‘ˆ¹átÒ‘Î£äˆ +!9)]ðæãPšQºýÀÍ^Ó!ªc˜«ãÁe>2Ôn?¦ä 5Ê#ÆŸµ2Lò÷¸¾N·Éï\÷¦¿õ]᪬>«‘ÚNoAl½ª×1ŸÈZöÃü:¥¯Ý/OÙÐþ“š¹ôcwç R1=VÒö˜êu‘ „÷~ôï1“hºòµd‡×oÚhpž±Ÿ2o&.ë¾’o4¦…ÅÕ›®pkäÍ-à×¹ÉNÅåg²å-ÌŠÜÎíçÝ_hQµ õe»Vt?¨ÃÿaX)¢  Ð4º¹W¬WŸ(ð°øýlîI†Ä¹¾Æz}÷´v6èêD~8‚à–êtªÉƧ Ä3“—jØ[Æ–+SD ‘’K¡Dü?«®¼½F¹:ÞªÍ|¥9MoðÃwH‘¿W¤n‰VCÐÈÎ/£;)a[ؼÍÿŒ¯-% +wF¥?:Òª9©®má/XŒù5)£Vù¹=ÈÇ»5öŽèâp°ý‹7…†·Æáècº‰$¼åfûY? òjY +ªk2ÑK)æ–=—§-’¦Ô@Ù­LÂűc÷ºv•õL‹aBñÝó²†×ðD6üB=m·õ¶céÙÃùiå#z¬Ô»Ë ߶wÖr¿xÒõa÷J$çÛ.ìõ˜°:ȬHÞºg¡žþ41“—5èÅê‚ 9dØ +e þÚ-5©ÆI3ƒÑíâf~—UÃøÆ»{vSÂÔv}®Ø‰)½ý:Zá >/s[ãVÞâ( +X©L©´NW™eÅà_¡µn¢Œ ª„Åèu#]iߌ¼ýb·Ž$˜i*:¸Õ¹˜?úà“ÞSBÿË +~'Ë'FöÛ¤¢áÙõ4Å/IžÕ‰ùyÈc{>R¹Œ~‡|!©8qü\Oäaô(£q\“"ƒ½Ã„uP“ÎOHÅ{ƒbÑ@Í·z¹Ô-¦«0¤Uÿ6¹Z¡ÁV?ÓÑ »*ÿqU–‚çí[5Ô—¬M; Ú …aJZµ¦‡Z‹!½s|R<Ë­ÝNšì—P£]>´hÎ&Lñ3ácfnÁ=Hñ¦Óy®³lYrR>€Èá×)OüEŽm£#W&žI,Њ\-²{p½qŸçbŽç«ÉHˆt(G1?øÈ¿z•Lj¿¶kä‰-} ™$Í÷}Î04”<ÄÖýkS”2ûF”Ãþ§ÑÏáÔ0ã»c¡ï…›R»t-½cÔ b³ RfåðËÏå®oóÃëJ€¦–„Ï +8Ë{Ô¸d!†hé4§îV~R Œ¶þHš.ØõµÄ߶=äoY“î2Íè·"% WÅÚdKè­ÆøŽ ·‰N2%x€¹5eS—lf•«>òK‘á¼L¨ŠaÈ ËHoÒj¡f;"ÔúÑç%Ä/.©¢ô/QÉ3éÓ:„bÎGò½áEµDÅdTªŠ*Álu!íõeû7¾ {îÅ…zÿzËgª'c9ÅÛ³ÌVɼ^øѸ!ë®uì¥uÐiûõú™R²]™pÆcŸhÿ‚m÷¼ã:þƒ‹ò°×<±Ù5j†jë)–Âðïo 6W2Ù{÷…,u‰î´pj·æE;½—•cl=b!Ê%¤]"|ɤ[D:hÏ ¢7N*¶ñpjÁf.805W nožÀÄɶ¦˺^Lêy÷Ý›. ”&‹´3Ô^²ŠÃ<æv­|ÁÏšM¯×]:÷í¡ô…šC‡ê¼ßy{D`Lø'6ÞM ²^AòjKm?¬ÑȹÃw¹;AV1áÜPùãîk å+K©¯%,iv55Rj$ Þ‚Úwr«Õð?ôWÙ¹Ùe6ƒgRêFi>å4›¹ž3ØÀÔKcB¾…Ïà•êïy‰:¯§ßÒLªÎÙ}¾9Y\¤LëpTÁ¹´–.6¸¶“5ÐÙ›T7øâÜhF¼†Ø•ñ­¨A705èOÉß&ô«ç `˜Ç‚voÀ4ð¸äùs#Ï.·'‘…ÄÇÃwàN וh56!=Ì oéÖ†—Òf¯W]_ifíoÅíû|³ùŽ7’ÕË•mz]è¥të# +"¸Ž½;žól@ß¼&”;R}™u§KÂ`¯~ö=²äÒy_£‚›ÝÏOJ¦ƒP_ï-©{ç ö,Þ銮ÙÀE`ü6Ûe?Œõù÷µÄAæQDT»ï5!o‚Þ9Õ`#±ÙC¶õ%ñ÷ã"¶­´kꯞlÃÉyZX:Y Ü®¼Ôw3óy×ζ?_È÷¨üÐBKr Å~wbFÞ29%€* tà4Îlö–f)"+dó2Zø^OY:Ǥ+¢;,AûyQĘ4…T?™›ÓÔ$žo„zˆª±‡%p6âq|z¯Ín¡*1ùÚØš/ém8¹KÈÓÙÌ£,¯üüø»M £OæV‹b%¢>·! ºòg©Qó^.ªg}Nê ŽÜIk7¯>ôýÌ­µñ³~CùzSÈÇ]ù{“d„âÕVŸh¢…L„…ÅåXÀlb/Kú…lRUh «•œgv–)»®>Ó3žéò‡¡^D˜ØZ¯ü¹ öÚIµ Äol'ÚwO^®‰êŤÖB¿£VçÊTÞÅÞŸ¶Zƒ/‘C[•ƒq*ú[­ü2EÍÀÁêAÝM‹Z–Ê7ÅÙöZáO³6ìT*8–éY‚§QñÇq]9¹ö0.‰f…Yfñ #/çØâR«O[î¤Økú=¶ ˆQÃÊ…ÃËΪ‘óN¬?—“Õ­½5aºC€äs¥4žÒMyË0ºzú—ÐTýƒJØ-Ù/3”ÒÞunVù\ Ô]â¼úÂG;‡Âȉ—Aªß'Z]H ‰?BsxÒ[l)ÓÇòör®t¤îÃôKI¥³Õ’lò›1{ߟ»¿aV¢nˆ 2L¯»§Z>¾åÙÀ^JGÃÀ˜_y0c¡#¸:=Cf²Ö·7L2c +ÆrïêìªN.,‚½ZDX_Ùš{`Âs;OByf•¥è>¾91ØT±ÐJŸPnþ›Lr¹ß¯èÙl6Ó SF7w¢Ð×æ'Y/.X÷–=˜/à¯{‹¼ ÜÌù@PQ+/Žú”ÐÒwê?t*#OQ­ýÍÉù¾t:ÏÕœnêih+]Õë @)¶Ð3#Ú'ã ÒÜšYÔ^>«¨!ó¾ks<ÿ"»iEPOç‰&¯Yý.äÙìꂯz/oRý|?« 1.´åýÀA'„éà(<Á­&»Ü· +á4r•ÁrU:¹¼Þ?ÂIÒ‘±V÷±éZ +üð|¨[H¯¼Ä´:©Ç2¹Œ$Ž]’3ëq—£˜‰•{‘3%]¼Û[ú5‡¿+mÉ8©=$kŸÖÌpο%WøÜèÀ=ÕÕzÓöº¸Ñ§“³§{,†«5|±úœ1/¢ `-¯DÉzëüÌ”tã)÷ï;W{¹©!%l¹¾vàH·l{UCç÷­.Ö¨ÆOQib3o$“’¶ì1FùfXÏËë*%ALå4Uz(!Åé«:¬üp*oÎ5[ä³%Þ?-›-ý’Ê#‡ÁvêC 'û’/£xÐãõ¨_|ˆ¹ŸÎš0ø*'Y¾ë›7ö"ãŽÞ Z#x<>A«óäÖ3æÛ÷Þ|û¾k:²úXªÄ{De­O•“‚»u… {™Nû5>Ýîëí$ »)§ÃBò>"åœânD­p{µ´|;„Ÿ² ë^=[]X]ÓÛC¨Å}\£^Yj¡-©¸E%\ëÓ@—¦¢næ8gã•+N$yçmê^‰âõ#áTáw7_YC”ì%ç¾êr[ƒ•{}‹žðp©ªù1B†¼õ²å¤îd½â\þó³lN;»=¯æÓ+.õY„þÐÿ6øÑ懢1('(ú è¿hŒ°endstream +endobj +569 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 2491 0 R +/FirstChar 65 +/LastChar 121 +/Widths 2533 0 R +/BaseFont /JHNPHQ+CMR17 +/FontDescriptor 567 0 R +>> endobj +567 0 obj << +/Ascent 694 +/CapHeight 683 +/Descent -195 +/FontName /JHNPHQ+CMR17 +/ItalicAngle 0 +/StemV 53 +/XHeight 431 +/FontBBox [-33 -250 945 749] +/Flags 4 +/CharSet (/A/D/E/H/I/M/P/a/c/d/e/f/g/h/i/l/m/n/o/p/r/s/t/u/y) +/FontFile 568 0 R +>> endobj +2533 0 obj +[693 0 0 707 628 0 0 693 328 0 0 0 850 0 0 628 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 459 0 406 511 406 276 459 511 250 0 0 250 772 511 459 511 0 354 359 354 511 0 0 0 485 ] +endobj +573 0 obj << +/Type /Pages +/Count 6 +/Parent 2534 0 R +/Kids [562 0 R 575 0 R 591 0 R 627 0 R 668 0 R 712 0 R] +>> endobj +759 0 obj << +/Type /Pages +/Count 6 +/Parent 2534 0 R +/Kids [752 0 R 761 0 R 765 0 R 820 0 R 898 0 R 974 0 R] +>> endobj +984 0 obj << +/Type /Pages +/Count 6 +/Parent 2534 0 R +/Kids [980 0 R 986 0 R 990 0 R 994 0 R 998 0 R 1002 0 R] +>> endobj +1013 0 obj << +/Type /Pages +/Count 6 +/Parent 2534 0 R +/Kids [1006 0 R 1017 0 R 1037 0 R 1047 0 R 1068 0 R 1075 0 R] +>> endobj +1089 0 obj << +/Type /Pages +/Count 6 +/Parent 2534 0 R +/Kids [1080 0 R 1091 0 R 1094 0 R 1099 0 R 1110 0 R 1115 0 R] +>> endobj +1120 0 obj << +/Type /Pages +/Count 6 +/Parent 2534 0 R +/Kids [1118 0 R 1123 0 R 1130 0 R 1133 0 R 1146 0 R 1151 0 R] +>> endobj +1160 0 obj << +/Type /Pages +/Count 6 +/Parent 2535 0 R +/Kids [1155 0 R 1162 0 R 1178 0 R 1184 0 R 1190 0 R 1194 0 R] +>> endobj +1201 0 obj << +/Type /Pages +/Count 6 +/Parent 2535 0 R +/Kids [1198 0 R 1203 0 R 1216 0 R 1220 0 R 1224 0 R 1228 0 R] +>> endobj +1236 0 obj << +/Type /Pages +/Count 6 +/Parent 2535 0 R +/Kids [1232 0 R 1238 0 R 1242 0 R 1246 0 R 1250 0 R 1254 0 R] +>> endobj +1262 0 obj << +/Type /Pages +/Count 6 +/Parent 2535 0 R +/Kids [1258 0 R 1264 0 R 1268 0 R 1272 0 R 1276 0 R 1280 0 R] +>> endobj +1287 0 obj << +/Type /Pages +/Count 6 +/Parent 2535 0 R +/Kids [1284 0 R 1289 0 R 1293 0 R 1297 0 R 1301 0 R 1305 0 R] +>> endobj +1313 0 obj << +/Type /Pages +/Count 6 +/Parent 2535 0 R +/Kids [1310 0 R 1315 0 R 1319 0 R 1327 0 R 1331 0 R 1335 0 R] +>> endobj +1342 0 obj << +/Type /Pages +/Count 6 +/Parent 2536 0 R +/Kids [1339 0 R 1344 0 R 1350 0 R 1354 0 R 1358 0 R 1362 0 R] +>> endobj +1372 0 obj << +/Type /Pages +/Count 6 +/Parent 2536 0 R +/Kids [1369 0 R 1374 0 R 1378 0 R 1385 0 R 1389 0 R 1393 0 R] +>> endobj +1402 0 obj << +/Type /Pages +/Count 6 +/Parent 2536 0 R +/Kids [1399 0 R 1404 0 R 1408 0 R 1412 0 R 1416 0 R 1425 0 R] +>> endobj +1433 0 obj << +/Type /Pages +/Count 6 +/Parent 2536 0 R +/Kids [1430 0 R 1439 0 R 1443 0 R 1447 0 R 1451 0 R 1455 0 R] +>> endobj +1465 0 obj << +/Type /Pages +/Count 6 +/Parent 2536 0 R +/Kids [1462 0 R 1467 0 R 1471 0 R 1475 0 R 1479 0 R 1483 0 R] +>> endobj +1490 0 obj << +/Type /Pages +/Count 6 +/Parent 2536 0 R +/Kids [1487 0 R 1492 0 R 1497 0 R 1503 0 R 1507 0 R 1514 0 R] +>> endobj +1521 0 obj << +/Type /Pages +/Count 6 +/Parent 2537 0 R +/Kids [1518 0 R 1523 0 R 1527 0 R 1536 0 R 1541 0 R 1548 0 R] +>> endobj +1555 0 obj << +/Type /Pages +/Count 6 +/Parent 2537 0 R +/Kids [1552 0 R 1557 0 R 1561 0 R 1565 0 R 1573 0 R 1584 0 R] +>> endobj +1599 0 obj << +/Type /Pages +/Count 6 +/Parent 2537 0 R +/Kids [1590 0 R 1603 0 R 1609 0 R 1614 0 R 1618 0 R 1622 0 R] +>> endobj +1629 0 obj << +/Type /Pages +/Count 6 +/Parent 2537 0 R +/Kids [1626 0 R 1631 0 R 1635 0 R 1639 0 R 1643 0 R 1647 0 R] +>> endobj +1654 0 obj << +/Type /Pages +/Count 6 +/Parent 2537 0 R +/Kids [1651 0 R 1656 0 R 1660 0 R 1664 0 R 1668 0 R 1672 0 R] +>> endobj +1679 0 obj << +/Type /Pages +/Count 6 +/Parent 2537 0 R +/Kids [1676 0 R 1681 0 R 1685 0 R 1690 0 R 1694 0 R 1698 0 R] +>> endobj +1705 0 obj << +/Type /Pages +/Count 6 +/Parent 2538 0 R +/Kids [1702 0 R 1707 0 R 1711 0 R 1715 0 R 1719 0 R 1724 0 R] +>> endobj +1731 0 obj << +/Type /Pages +/Count 6 +/Parent 2538 0 R +/Kids [1728 0 R 1733 0 R 1742 0 R 1746 0 R 1750 0 R 1754 0 R] +>> endobj +1762 0 obj << +/Type /Pages +/Count 6 +/Parent 2538 0 R +/Kids [1758 0 R 1764 0 R 1768 0 R 1778 0 R 1786 0 R 1794 0 R] +>> endobj +1805 0 obj << +/Type /Pages +/Count 6 +/Parent 2538 0 R +/Kids [1802 0 R 1807 0 R 1811 0 R 1817 0 R 1821 0 R 1825 0 R] +>> endobj +1836 0 obj << +/Type /Pages +/Count 6 +/Parent 2538 0 R +/Kids [1829 0 R 1839 0 R 1844 0 R 1849 0 R 1853 0 R 1857 0 R] +>> endobj +1865 0 obj << +/Type /Pages +/Count 6 +/Parent 2538 0 R +/Kids [1862 0 R 1867 0 R 1871 0 R 1875 0 R 1879 0 R 1883 0 R] +>> endobj +1890 0 obj << +/Type /Pages +/Count 6 +/Parent 2539 0 R +/Kids [1887 0 R 1892 0 R 1896 0 R 1900 0 R 1904 0 R 1908 0 R] +>> endobj +1926 0 obj << +/Type /Pages +/Count 6 +/Parent 2539 0 R +/Kids [1921 0 R 1928 0 R 1932 0 R 1938 0 R 1943 0 R 1947 0 R] +>> endobj +1956 0 obj << +/Type /Pages +/Count 6 +/Parent 2539 0 R +/Kids [1951 0 R 1958 0 R 1962 0 R 1967 0 R 1971 0 R 1976 0 R] +>> endobj +1986 0 obj << +/Type /Pages +/Count 6 +/Parent 2539 0 R +/Kids [1983 0 R 1988 0 R 1994 0 R 1999 0 R 2004 0 R 2008 0 R] +>> endobj +2016 0 obj << +/Type /Pages +/Count 6 +/Parent 2539 0 R +/Kids [2013 0 R 2018 0 R 2025 0 R 2034 0 R 2038 0 R 2042 0 R] +>> endobj +2052 0 obj << +/Type /Pages +/Count 6 +/Parent 2539 0 R +/Kids [2046 0 R 2054 0 R 2061 0 R 2065 0 R 2078 0 R 2087 0 R] +>> endobj +2094 0 obj << +/Type /Pages +/Count 6 +/Parent 2540 0 R +/Kids [2091 0 R 2096 0 R 2100 0 R 2104 0 R 2108 0 R 2112 0 R] +>> endobj +2119 0 obj << +/Type /Pages +/Count 6 +/Parent 2540 0 R +/Kids [2116 0 R 2121 0 R 2125 0 R 2134 0 R 2139 0 R 2143 0 R] +>> endobj +2154 0 obj << +/Type /Pages +/Count 6 +/Parent 2540 0 R +/Kids [2147 0 R 2156 0 R 2161 0 R 2165 0 R 2169 0 R 2173 0 R] +>> endobj +2182 0 obj << +/Type /Pages +/Count 6 +/Parent 2540 0 R +/Kids [2177 0 R 2184 0 R 2188 0 R 2192 0 R 2197 0 R 2201 0 R] +>> endobj +2208 0 obj << +/Type /Pages +/Count 6 +/Parent 2540 0 R +/Kids [2205 0 R 2210 0 R 2214 0 R 2218 0 R 2222 0 R 2228 0 R] +>> endobj +2235 0 obj << +/Type /Pages +/Count 6 +/Parent 2540 0 R +/Kids [2232 0 R 2237 0 R 2241 0 R 2245 0 R 2249 0 R 2254 0 R] +>> endobj +2261 0 obj << +/Type /Pages +/Count 6 +/Parent 2541 0 R +/Kids [2258 0 R 2263 0 R 2267 0 R 2271 0 R 2276 0 R 2280 0 R] +>> endobj +2287 0 obj << +/Type /Pages +/Count 6 +/Parent 2541 0 R +/Kids [2284 0 R 2289 0 R 2296 0 R 2300 0 R 2304 0 R 2309 0 R] +>> endobj +2316 0 obj << +/Type /Pages +/Count 6 +/Parent 2541 0 R +/Kids [2313 0 R 2318 0 R 2322 0 R 2328 0 R 2332 0 R 2347 0 R] +>> endobj +2368 0 obj << +/Type /Pages +/Count 6 +/Parent 2541 0 R +/Kids [2362 0 R 2370 0 R 2375 0 R 2379 0 R 2383 0 R 2387 0 R] +>> endobj +2402 0 obj << +/Type /Pages +/Count 6 +/Parent 2541 0 R +/Kids [2399 0 R 2404 0 R 2410 0 R 2414 0 R 2418 0 R 2422 0 R] +>> endobj +2430 0 obj << +/Type /Pages +/Count 6 +/Parent 2541 0 R +/Kids [2427 0 R 2432 0 R 2436 0 R 2440 0 R 2444 0 R 2448 0 R] +>> endobj +2455 0 obj << +/Type /Pages +/Count 5 +/Parent 2542 0 R +/Kids [2452 0 R 2457 0 R 2461 0 R 2466 0 R 2474 0 R] +>> endobj +2534 0 obj << +/Type /Pages +/Count 36 +/Parent 2543 0 R +/Kids [573 0 R 759 0 R 984 0 R 1013 0 R 1089 0 R 1120 0 R] +>> endobj +2535 0 obj << +/Type /Pages +/Count 36 +/Parent 2543 0 R +/Kids [1160 0 R 1201 0 R 1236 0 R 1262 0 R 1287 0 R 1313 0 R] +>> endobj +2536 0 obj << +/Type /Pages +/Count 36 +/Parent 2543 0 R +/Kids [1342 0 R 1372 0 R 1402 0 R 1433 0 R 1465 0 R 1490 0 R] +>> endobj +2537 0 obj << +/Type /Pages +/Count 36 +/Parent 2543 0 R +/Kids [1521 0 R 1555 0 R 1599 0 R 1629 0 R 1654 0 R 1679 0 R] +>> endobj +2538 0 obj << +/Type /Pages +/Count 36 +/Parent 2543 0 R +/Kids [1705 0 R 1731 0 R 1762 0 R 1805 0 R 1836 0 R 1865 0 R] +>> endobj +2539 0 obj << +/Type /Pages +/Count 36 +/Parent 2543 0 R +/Kids [1890 0 R 1926 0 R 1956 0 R 1986 0 R 2016 0 R 2052 0 R] +>> endobj +2540 0 obj << +/Type /Pages +/Count 36 +/Parent 2544 0 R +/Kids [2094 0 R 2119 0 R 2154 0 R 2182 0 R 2208 0 R 2235 0 R] +>> endobj +2541 0 obj << +/Type /Pages +/Count 36 +/Parent 2544 0 R +/Kids [2261 0 R 2287 0 R 2316 0 R 2368 0 R 2402 0 R 2430 0 R] +>> endobj +2542 0 obj << +/Type /Pages +/Count 5 +/Parent 2544 0 R +/Kids [2455 0 R] +>> endobj +2543 0 obj << +/Type /Pages +/Count 216 +/Parent 2545 0 R +/Kids [2534 0 R 2535 0 R 2536 0 R 2537 0 R 2538 0 R 2539 0 R] +>> endobj +2544 0 obj << +/Type /Pages +/Count 77 +/Parent 2545 0 R +/Kids [2540 0 R 2541 0 R 2542 0 R] +>> endobj +2545 0 obj << +/Type /Pages +/Count 293 +/Kids [2543 0 R 2544 0 R] +>> endobj +2546 0 obj << +/Type /Outlines +/First 7 0 R +/Last 515 0 R +/Count 10 +>> endobj +559 0 obj << +/Title 560 0 R +/A 557 0 R +/Parent 547 0 R +/Prev 555 0 R +>> endobj +555 0 obj << +/Title 556 0 R +/A 553 0 R +/Parent 547 0 R +/Prev 551 0 R +/Next 559 0 R +>> endobj +551 0 obj << +/Title 552 0 R +/A 549 0 R +/Parent 547 0 R +/Next 555 0 R +>> endobj +547 0 obj << +/Title 548 0 R +/A 545 0 R +/Parent 515 0 R +/Prev 539 0 R +/First 551 0 R +/Last 559 0 R +/Count -3 +>> endobj +543 0 obj << +/Title 544 0 R +/A 541 0 R +/Parent 539 0 R +>> endobj +539 0 obj << +/Title 540 0 R +/A 537 0 R +/Parent 515 0 R +/Prev 531 0 R +/Next 547 0 R +/First 543 0 R +/Last 543 0 R +/Count -1 +>> endobj +535 0 obj << +/Title 536 0 R +/A 533 0 R +/Parent 531 0 R +>> endobj +531 0 obj << +/Title 532 0 R +/A 529 0 R +/Parent 515 0 R +/Prev 527 0 R +/Next 539 0 R +/First 535 0 R +/Last 535 0 R +/Count -1 +>> endobj +527 0 obj << +/Title 528 0 R +/A 525 0 R +/Parent 515 0 R +/Prev 519 0 R +/Next 531 0 R +>> endobj +523 0 obj << +/Title 524 0 R +/A 521 0 R +/Parent 519 0 R +>> endobj +519 0 obj << +/Title 520 0 R +/A 517 0 R +/Parent 515 0 R +/Next 527 0 R +/First 523 0 R +/Last 523 0 R +/Count -1 +>> endobj +515 0 obj << +/Title 516 0 R +/A 513 0 R +/Parent 2546 0 R +/Prev 459 0 R +/First 519 0 R +/Last 547 0 R +/Count -5 +>> endobj +511 0 obj << +/Title 512 0 R +/A 509 0 R +/Parent 503 0 R +/Prev 507 0 R +>> endobj +507 0 obj << +/Title 508 0 R +/A 505 0 R +/Parent 503 0 R +/Next 511 0 R +>> endobj +503 0 obj << +/Title 504 0 R +/A 501 0 R +/Parent 459 0 R +/Prev 499 0 R +/First 507 0 R +/Last 511 0 R +/Count -2 +>> endobj +499 0 obj << +/Title 500 0 R +/A 497 0 R +/Parent 459 0 R +/Prev 479 0 R +/Next 503 0 R +>> endobj +495 0 obj << +/Title 496 0 R +/A 493 0 R +/Parent 479 0 R +/Prev 491 0 R +>> endobj +491 0 obj << +/Title 492 0 R +/A 489 0 R +/Parent 479 0 R +/Prev 487 0 R +/Next 495 0 R +>> endobj +487 0 obj << +/Title 488 0 R +/A 485 0 R +/Parent 479 0 R +/Prev 483 0 R +/Next 491 0 R +>> endobj +483 0 obj << +/Title 484 0 R +/A 481 0 R +/Parent 479 0 R +/Next 487 0 R +>> endobj +479 0 obj << +/Title 480 0 R +/A 477 0 R +/Parent 459 0 R +/Prev 463 0 R +/Next 499 0 R +/First 483 0 R +/Last 495 0 R +/Count -4 +>> endobj +475 0 obj << +/Title 476 0 R +/A 473 0 R +/Parent 463 0 R +/Prev 471 0 R +>> endobj +471 0 obj << +/Title 472 0 R +/A 469 0 R +/Parent 463 0 R +/Prev 467 0 R +/Next 475 0 R +>> endobj +467 0 obj << +/Title 468 0 R +/A 465 0 R +/Parent 463 0 R +/Next 471 0 R +>> endobj +463 0 obj << +/Title 464 0 R +/A 461 0 R +/Parent 459 0 R +/Next 479 0 R +/First 467 0 R +/Last 475 0 R +/Count -3 +>> endobj +459 0 obj << +/Title 460 0 R +/A 457 0 R +/Parent 2546 0 R +/Prev 423 0 R +/Next 515 0 R +/First 463 0 R +/Last 503 0 R +/Count -4 +>> endobj +455 0 obj << +/Title 456 0 R +/A 453 0 R +/Parent 423 0 R +/Prev 447 0 R +>> endobj +451 0 obj << +/Title 452 0 R +/A 449 0 R +/Parent 447 0 R +>> endobj +447 0 obj << +/Title 448 0 R +/A 445 0 R +/Parent 423 0 R +/Prev 435 0 R +/Next 455 0 R +/First 451 0 R +/Last 451 0 R +/Count -1 +>> endobj +443 0 obj << +/Title 444 0 R +/A 441 0 R +/Parent 435 0 R +/Prev 439 0 R +>> endobj +439 0 obj << +/Title 440 0 R +/A 437 0 R +/Parent 435 0 R +/Next 443 0 R +>> endobj +435 0 obj << +/Title 436 0 R +/A 433 0 R +/Parent 423 0 R +/Prev 427 0 R +/Next 447 0 R +/First 439 0 R +/Last 443 0 R +/Count -2 +>> endobj +431 0 obj << +/Title 432 0 R +/A 429 0 R +/Parent 427 0 R +>> endobj +427 0 obj << +/Title 428 0 R +/A 425 0 R +/Parent 423 0 R +/Next 435 0 R +/First 431 0 R +/Last 431 0 R +/Count -1 +>> endobj +423 0 obj << +/Title 424 0 R +/A 421 0 R +/Parent 2546 0 R +/Prev 343 0 R +/Next 459 0 R +/First 427 0 R +/Last 455 0 R +/Count -4 +>> endobj +419 0 obj << +/Title 420 0 R +/A 417 0 R +/Parent 343 0 R +/Prev 399 0 R +>> endobj +415 0 obj << +/Title 416 0 R +/A 413 0 R +/Parent 399 0 R +/Prev 411 0 R +>> endobj +411 0 obj << +/Title 412 0 R +/A 409 0 R +/Parent 399 0 R +/Prev 407 0 R +/Next 415 0 R +>> endobj +407 0 obj << +/Title 408 0 R +/A 405 0 R +/Parent 399 0 R +/Prev 403 0 R +/Next 411 0 R +>> endobj +403 0 obj << +/Title 404 0 R +/A 401 0 R +/Parent 399 0 R +/Next 407 0 R +>> endobj +399 0 obj << +/Title 400 0 R +/A 397 0 R +/Parent 343 0 R +/Prev 379 0 R +/Next 419 0 R +/First 403 0 R +/Last 415 0 R +/Count -4 +>> endobj +395 0 obj << +/Title 396 0 R +/A 393 0 R +/Parent 379 0 R +/Prev 391 0 R +>> endobj +391 0 obj << +/Title 392 0 R +/A 389 0 R +/Parent 379 0 R +/Prev 387 0 R +/Next 395 0 R +>> endobj +387 0 obj << +/Title 388 0 R +/A 385 0 R +/Parent 379 0 R +/Prev 383 0 R +/Next 391 0 R +>> endobj +383 0 obj << +/Title 384 0 R +/A 381 0 R +/Parent 379 0 R +/Next 387 0 R +>> endobj +379 0 obj << +/Title 380 0 R +/A 377 0 R +/Parent 343 0 R +/Prev 351 0 R +/Next 399 0 R +/First 383 0 R +/Last 395 0 R +/Count -4 +>> endobj +375 0 obj << +/Title 376 0 R +/A 373 0 R +/Parent 351 0 R +/Prev 371 0 R +>> endobj +371 0 obj << +/Title 372 0 R +/A 369 0 R +/Parent 351 0 R +/Prev 367 0 R +/Next 375 0 R +>> endobj +367 0 obj << +/Title 368 0 R +/A 365 0 R +/Parent 351 0 R +/Prev 363 0 R +/Next 371 0 R +>> endobj +363 0 obj << +/Title 364 0 R +/A 361 0 R +/Parent 351 0 R +/Prev 359 0 R +/Next 367 0 R +>> endobj +359 0 obj << +/Title 360 0 R +/A 357 0 R +/Parent 351 0 R +/Prev 355 0 R +/Next 363 0 R +>> endobj +355 0 obj << +/Title 356 0 R +/A 353 0 R +/Parent 351 0 R +/Next 359 0 R +>> endobj +351 0 obj << +/Title 352 0 R +/A 349 0 R +/Parent 343 0 R +/Prev 347 0 R +/Next 379 0 R +/First 355 0 R +/Last 375 0 R +/Count -6 +>> endobj +347 0 obj << +/Title 348 0 R +/A 345 0 R +/Parent 343 0 R +/Next 351 0 R +>> endobj +343 0 obj << +/Title 344 0 R +/A 341 0 R +/Parent 2546 0 R +/Prev 279 0 R +/Next 423 0 R +/First 347 0 R +/Last 419 0 R +/Count -5 +>> endobj +339 0 obj << +/Title 340 0 R +/A 337 0 R +/Parent 315 0 R +/Prev 335 0 R +>> endobj +335 0 obj << +/Title 336 0 R +/A 333 0 R +/Parent 315 0 R +/Prev 331 0 R +/Next 339 0 R +>> endobj +331 0 obj << +/Title 332 0 R +/A 329 0 R +/Parent 315 0 R +/Prev 327 0 R +/Next 335 0 R +>> endobj +327 0 obj << +/Title 328 0 R +/A 325 0 R +/Parent 315 0 R +/Prev 323 0 R +/Next 331 0 R +>> endobj +323 0 obj << +/Title 324 0 R +/A 321 0 R +/Parent 315 0 R +/Prev 319 0 R +/Next 327 0 R +>> endobj +319 0 obj << +/Title 320 0 R +/A 317 0 R +/Parent 315 0 R +/Next 323 0 R +>> endobj +315 0 obj << +/Title 316 0 R +/A 313 0 R +/Parent 279 0 R +/Prev 287 0 R +/First 319 0 R +/Last 339 0 R +/Count -6 +>> endobj +311 0 obj << +/Title 312 0 R +/A 309 0 R +/Parent 287 0 R +/Prev 307 0 R +>> endobj +307 0 obj << +/Title 308 0 R +/A 305 0 R +/Parent 287 0 R +/Prev 303 0 R +/Next 311 0 R +>> endobj +303 0 obj << +/Title 304 0 R +/A 301 0 R +/Parent 287 0 R +/Prev 299 0 R +/Next 307 0 R +>> endobj +299 0 obj << +/Title 300 0 R +/A 297 0 R +/Parent 287 0 R +/Prev 295 0 R +/Next 303 0 R +>> endobj +295 0 obj << +/Title 296 0 R +/A 293 0 R +/Parent 287 0 R +/Prev 291 0 R +/Next 299 0 R +>> endobj +291 0 obj << +/Title 292 0 R +/A 289 0 R +/Parent 287 0 R +/Next 295 0 R +>> endobj +287 0 obj << +/Title 288 0 R +/A 285 0 R +/Parent 279 0 R +/Prev 283 0 R +/Next 315 0 R +/First 291 0 R +/Last 311 0 R +/Count -6 +>> endobj +283 0 obj << +/Title 284 0 R +/A 281 0 R +/Parent 279 0 R +/Next 287 0 R +>> endobj +279 0 obj << +/Title 280 0 R +/A 277 0 R +/Parent 2546 0 R +/Prev 211 0 R +/Next 343 0 R +/First 283 0 R +/Last 315 0 R +/Count -3 +>> endobj +275 0 obj << +/Title 276 0 R +/A 273 0 R +/Parent 263 0 R +/Prev 271 0 R +>> endobj +271 0 obj << +/Title 272 0 R +/A 269 0 R +/Parent 263 0 R +/Prev 267 0 R +/Next 275 0 R +>> endobj +267 0 obj << +/Title 268 0 R +/A 265 0 R +/Parent 263 0 R +/Next 271 0 R +>> endobj +263 0 obj << +/Title 264 0 R +/A 261 0 R +/Parent 211 0 R +/Prev 251 0 R +/First 267 0 R +/Last 275 0 R +/Count -3 +>> endobj +259 0 obj << +/Title 260 0 R +/A 257 0 R +/Parent 251 0 R +/Prev 255 0 R +>> endobj +255 0 obj << +/Title 256 0 R +/A 253 0 R +/Parent 251 0 R +/Next 259 0 R +>> endobj +251 0 obj << +/Title 252 0 R +/A 249 0 R +/Parent 211 0 R +/Prev 239 0 R +/Next 263 0 R +/First 255 0 R +/Last 259 0 R +/Count -2 +>> endobj +247 0 obj << +/Title 248 0 R +/A 245 0 R +/Parent 239 0 R +/Prev 243 0 R +>> endobj +243 0 obj << +/Title 244 0 R +/A 241 0 R +/Parent 239 0 R +/Next 247 0 R +>> endobj +239 0 obj << +/Title 240 0 R +/A 237 0 R +/Parent 211 0 R +/Prev 219 0 R +/Next 251 0 R +/First 243 0 R +/Last 247 0 R +/Count -2 +>> endobj +235 0 obj << +/Title 236 0 R +/A 233 0 R +/Parent 219 0 R +/Prev 231 0 R +>> endobj +231 0 obj << +/Title 232 0 R +/A 229 0 R +/Parent 219 0 R +/Prev 227 0 R +/Next 235 0 R +>> endobj +227 0 obj << +/Title 228 0 R +/A 225 0 R +/Parent 219 0 R +/Prev 223 0 R +/Next 231 0 R +>> endobj +223 0 obj << +/Title 224 0 R +/A 221 0 R +/Parent 219 0 R +/Next 227 0 R +>> endobj +219 0 obj << +/Title 220 0 R +/A 217 0 R +/Parent 211 0 R +/Prev 215 0 R +/Next 239 0 R +/First 223 0 R +/Last 235 0 R +/Count -4 +>> endobj +215 0 obj << +/Title 216 0 R +/A 213 0 R +/Parent 211 0 R +/Next 219 0 R +>> endobj +211 0 obj << +/Title 212 0 R +/A 209 0 R +/Parent 2546 0 R +/Prev 151 0 R +/Next 279 0 R +/First 215 0 R +/Last 263 0 R +/Count -5 +>> endobj +207 0 obj << +/Title 208 0 R +/A 205 0 R +/Parent 199 0 R +/Prev 203 0 R +>> endobj +203 0 obj << +/Title 204 0 R +/A 201 0 R +/Parent 199 0 R +/Next 207 0 R +>> endobj +199 0 obj << +/Title 200 0 R +/A 197 0 R +/Parent 151 0 R +/Prev 187 0 R +/First 203 0 R +/Last 207 0 R +/Count -2 +>> endobj +195 0 obj << +/Title 196 0 R +/A 193 0 R +/Parent 187 0 R +/Prev 191 0 R +>> endobj +191 0 obj << +/Title 192 0 R +/A 189 0 R +/Parent 187 0 R +/Next 195 0 R +>> endobj +187 0 obj << +/Title 188 0 R +/A 185 0 R +/Parent 151 0 R +/Prev 175 0 R +/Next 199 0 R +/First 191 0 R +/Last 195 0 R +/Count -2 +>> endobj +183 0 obj << +/Title 184 0 R +/A 181 0 R +/Parent 175 0 R +/Prev 179 0 R +>> endobj +179 0 obj << +/Title 180 0 R +/A 177 0 R +/Parent 175 0 R +/Next 183 0 R +>> endobj +175 0 obj << +/Title 176 0 R +/A 173 0 R +/Parent 151 0 R +/Prev 171 0 R +/Next 187 0 R +/First 179 0 R +/Last 183 0 R +/Count -2 +>> endobj +171 0 obj << +/Title 172 0 R +/A 169 0 R +/Parent 151 0 R +/Prev 159 0 R +/Next 175 0 R +>> endobj +167 0 obj << +/Title 168 0 R +/A 165 0 R +/Parent 159 0 R +/Prev 163 0 R +>> endobj +163 0 obj << +/Title 164 0 R +/A 161 0 R +/Parent 159 0 R +/Next 167 0 R +>> endobj +159 0 obj << +/Title 160 0 R +/A 157 0 R +/Parent 151 0 R +/Prev 155 0 R +/Next 171 0 R +/First 163 0 R +/Last 167 0 R +/Count -2 +>> endobj +155 0 obj << +/Title 156 0 R +/A 153 0 R +/Parent 151 0 R +/Next 159 0 R +>> endobj +151 0 obj << +/Title 152 0 R +/A 149 0 R +/Parent 2546 0 R +/Prev 95 0 R +/Next 211 0 R +/First 155 0 R +/Last 199 0 R +/Count -6 +>> endobj +147 0 obj << +/Title 148 0 R +/A 145 0 R +/Parent 131 0 R +/Prev 143 0 R +>> endobj +143 0 obj << +/Title 144 0 R +/A 141 0 R +/Parent 131 0 R +/Prev 139 0 R +/Next 147 0 R +>> endobj +139 0 obj << +/Title 140 0 R +/A 137 0 R +/Parent 131 0 R +/Prev 135 0 R +/Next 143 0 R +>> endobj +135 0 obj << +/Title 136 0 R +/A 133 0 R +/Parent 131 0 R +/Next 139 0 R +>> endobj +131 0 obj << +/Title 132 0 R +/A 129 0 R +/Parent 95 0 R +/Prev 119 0 R +/First 135 0 R +/Last 147 0 R +/Count -4 +>> endobj +127 0 obj << +/Title 128 0 R +/A 125 0 R +/Parent 119 0 R +/Prev 123 0 R +>> endobj +123 0 obj << +/Title 124 0 R +/A 121 0 R +/Parent 119 0 R +/Next 127 0 R +>> endobj +119 0 obj << +/Title 120 0 R +/A 117 0 R +/Parent 95 0 R +/Prev 115 0 R +/Next 131 0 R +/First 123 0 R +/Last 127 0 R +/Count -2 +>> endobj +115 0 obj << +/Title 116 0 R +/A 113 0 R +/Parent 95 0 R +/Prev 111 0 R +/Next 119 0 R +>> endobj +111 0 obj << +/Title 112 0 R +/A 109 0 R +/Parent 95 0 R +/Prev 103 0 R +/Next 115 0 R +>> endobj +107 0 obj << +/Title 108 0 R +/A 105 0 R +/Parent 103 0 R +>> endobj +103 0 obj << +/Title 104 0 R +/A 101 0 R +/Parent 95 0 R +/Prev 99 0 R +/Next 111 0 R +/First 107 0 R +/Last 107 0 R +/Count -1 +>> endobj +99 0 obj << +/Title 100 0 R +/A 97 0 R +/Parent 95 0 R +/Next 103 0 R +>> endobj +95 0 obj << +/Title 96 0 R +/A 93 0 R +/Parent 2546 0 R +/Prev 59 0 R +/Next 151 0 R +/First 99 0 R +/Last 131 0 R +/Count -6 +>> endobj +91 0 obj << +/Title 92 0 R +/A 89 0 R +/Parent 71 0 R +/Prev 87 0 R +>> endobj +87 0 obj << +/Title 88 0 R +/A 85 0 R +/Parent 71 0 R +/Prev 83 0 R +/Next 91 0 R +>> endobj +83 0 obj << +/Title 84 0 R +/A 81 0 R +/Parent 71 0 R +/Prev 79 0 R +/Next 87 0 R +>> endobj +79 0 obj << +/Title 80 0 R +/A 77 0 R +/Parent 71 0 R +/Prev 75 0 R +/Next 83 0 R +>> endobj +75 0 obj << +/Title 76 0 R +/A 73 0 R +/Parent 71 0 R +/Next 79 0 R +>> endobj +71 0 obj << +/Title 72 0 R +/A 69 0 R +/Parent 59 0 R +/Prev 67 0 R +/First 75 0 R +/Last 91 0 R +/Count -5 +>> endobj +67 0 obj << +/Title 68 0 R +/A 65 0 R +/Parent 59 0 R +/Prev 63 0 R +/Next 71 0 R +>> endobj +63 0 obj << +/Title 64 0 R +/A 61 0 R +/Parent 59 0 R +/Next 67 0 R +>> endobj +59 0 obj << +/Title 60 0 R +/A 57 0 R +/Parent 2546 0 R +/Prev 7 0 R +/Next 95 0 R +/First 63 0 R +/Last 71 0 R +/Count -3 +>> endobj +55 0 obj << +/Title 56 0 R +/A 53 0 R +/Parent 7 0 R +/Prev 31 0 R +>> endobj +51 0 obj << +/Title 52 0 R +/A 49 0 R +/Parent 31 0 R +/Prev 47 0 R +>> endobj +47 0 obj << +/Title 48 0 R +/A 45 0 R +/Parent 31 0 R +/Prev 43 0 R +/Next 51 0 R +>> endobj +43 0 obj << +/Title 44 0 R +/A 41 0 R +/Parent 31 0 R +/Prev 39 0 R +/Next 47 0 R +>> endobj +39 0 obj << +/Title 40 0 R +/A 37 0 R +/Parent 31 0 R +/Prev 35 0 R +/Next 43 0 R +>> endobj +35 0 obj << +/Title 36 0 R +/A 33 0 R +/Parent 31 0 R +/Next 39 0 R +>> endobj +31 0 obj << +/Title 32 0 R +/A 29 0 R +/Parent 7 0 R +/Prev 27 0 R +/Next 55 0 R +/First 35 0 R +/Last 51 0 R +/Count -5 +>> endobj +27 0 obj << +/Title 28 0 R +/A 25 0 R +/Parent 7 0 R +/Prev 11 0 R +/Next 31 0 R +>> endobj +23 0 obj << +/Title 24 0 R +/A 21 0 R +/Parent 11 0 R +/Prev 19 0 R +>> endobj +19 0 obj << +/Title 20 0 R +/A 17 0 R +/Parent 11 0 R +/Prev 15 0 R +/Next 23 0 R +>> endobj +15 0 obj << +/Title 16 0 R +/A 13 0 R +/Parent 11 0 R +/Next 19 0 R +>> endobj +11 0 obj << +/Title 12 0 R +/A 9 0 R +/Parent 7 0 R +/Next 27 0 R +/First 15 0 R +/Last 23 0 R +/Count -3 +>> endobj +7 0 obj << +/Title 8 0 R +/A 5 0 R +/Parent 2546 0 R +/Next 59 0 R +/First 11 0 R +/Last 55 0 R +/Count -4 +>> endobj +2547 0 obj << +/Names [(Doc-Start) 566 0 R (Hfootnote.1) 1031 0 R (Hfootnote.10) 1144 0 R (Hfootnote.11) 1159 0 R (Hfootnote.12) 1182 0 R (Hfootnote.13) 1188 0 R (Hfootnote.14) 1501 0 R (Hfootnote.15) 1570 0 R (Hfootnote.16) 1571 0 R (Hfootnote.17) 1607 0 R (Hfootnote.18) 1739 0 R (Hfootnote.19) 1740 0 R (Hfootnote.2) 1041 0 R (Hfootnote.20) 1773 0 R (Hfootnote.21) 1784 0 R (Hfootnote.22) 1799 0 R (Hfootnote.23) 1835 0 R (Hfootnote.24) 2153 0 R (Hfootnote.25) 2181 0 R (Hfootnote.26) 2326 0 R (Hfootnote.27) 2345 0 R (Hfootnote.28) 2359 0 R (Hfootnote.29) 2394 0 R (Hfootnote.3) 1045 0 R (Hfootnote.4) 1059 0 R (Hfootnote.5) 1064 0 R (Hfootnote.6) 1078 0 R (Hfootnote.7) 1088 0 R (Hfootnote.8) 1097 0 R (Hfootnote.9) 1113 0 R (Item.1) 1135 0 R (Item.10) 1593 0 R (Item.11) 1594 0 R (Item.12) 1595 0 R (Item.13) 1980 0 R (Item.14) 1981 0 R (Item.15) 2049 0 R (Item.16) 2050 0 R (Item.17) 2051 0 R (Item.18) 2068 0 R (Item.19) 2069 0 R (Item.2) 1136 0 R (Item.20) 2070 0 R (Item.21) 2071 0 R (Item.22) 2072 0 R (Item.23) 2073 0 R (Item.24) 2074 0 R (Item.25) 2075 0 R (Item.26) 2081 0 R (Item.27) 2352 0 R (Item.28) 2353 0 R (Item.29) 2354 0 R (Item.3) 1137 0 R (Item.30) 2355 0 R (Item.31) 2356 0 R (Item.4) 1139 0 R (Item.5) 1141 0 R (Item.6) 1142 0 R (Item.7) 1143 0 R (Item.8) 1148 0 R (Item.9) 1149 0 R (appendix*.19) 2464 0 R (chapter*.1) 597 0 R (chapter*.2) 768 0 R (chapter*.3) 983 0 R (chapter.1) 6 0 R (chapter.10) 514 0 R (chapter.2) 58 0 R (chapter.3) 94 0 R (chapter.4) 150 0 R (chapter.5) 210 0 R (chapter.6) 278 0 R (chapter.7) 342 0 R (chapter.8) 422 0 R (chapter.9) 458 0 R (cite.BARRETT) 1534 0 R (cite.COMBA) 1533 0 R (cite.DHREF) 1015 0 R (cite.DRMET) 1918 0 R (cite.GMP) 1105 0 R (cite.HAC) 1066 0 R (cite.IEEE) 1035 0 R (cite.KARA) 1600 0 R (cite.KARAP) 1601 0 R (cite.LIP) 1107 0 R (cite.MMB) 1919 0 R (cite.MONT) 1837 0 R (cite.MPI) 1106 0 R (cite.OPENSSL) 1108 0 R (cite.ROSE) 1423 0 R (cite.RSAREF) 1014 0 R (cite.TAOCPV2) 1065 0 R (equation.10.1) 2337 0 R (equation.10.10) 2367 0 R (equation.10.11) 2390 0 R (equation.10.12) 2392 0 R (equation.10.13) 2408 0 R (equation.10.2) 2339 0 R (equation.10.3) 2340 0 R (equation.10.4) 2343 0 R (equation.10.5) 2344 0 R (equation.10.6) 2350 0 R (equation.10.7) 2357 0 R (equation.10.8) 2358 0 R (equation.10.9) 2365 0 R (equation.6.1) 1532 0 R (equation.6.2) 1544 0 R (equation.6.3) 1545 0 R (equation.6.4) 1546 0 R (equation.6.5) 1582 0 R (equation.6.6) 1598 0 R (equation.6.7) 1722 0 R (equation.6.8) 1737 0 R (equation.7.1) 1782 0 R (equation.7.10) 1917 0 R (equation.7.11) 1924 0 R (equation.7.2) 1789 0 R (equation.7.3) 1790 0 R (equation.7.4) 1792 0 R (equation.7.5) 1798 0 R (equation.7.6) 1912 0 R (equation.7.7) 1914 0 R (equation.7.8) 1915 0 R (equation.7.9) 1916 0 R (equation.8.1) 1997 0 R (equation.8.2) 2002 0 R (equation.9.1) 2129 0 R (equation.9.2) 2130 0 R (equation.9.3) 2131 0 R (equation.9.4) 2132 0 R (equation.9.5) 2137 0 R (equation.9.6) 2226 0 R (figure.1.1) 794 0 R (figure.10.1) 965 0 R (figure.10.2) 966 0 R (figure.10.3) 967 0 R (figure.10.4) 968 0 R (figure.10.5) 969 0 R (figure.10.6) 970 0 R (figure.10.7) 971 0 R (figure.10.8) 972 0 R (figure.10.9) 978 0 R (figure.3.1) 795 0 R (figure.3.2) 796 0 R (figure.3.3) 797 0 R (figure.3.4) 798 0 R (figure.3.5) 799 0 R (figure.3.6) 800 0 R (figure.3.7) 801 0 R (figure.4.1) 802 0 R (figure.4.10) 811 0 R (figure.4.2) 803 0 R (figure.4.3) 804 0 R (figure.4.4) 805 0 R (figure.4.5) 806 0 R (figure.4.6) 807 0 R (figure.4.7) 808 0 R (figure.4.8) 809 0 R (figure.4.9) 810 0 R (figure.5.1) 812 0 R (figure.5.10) 862 0 R (figure.5.11) 863 0 R (figure.5.12) 864 0 R (figure.5.13) 865 0 R (figure.5.14) 866 0 R (figure.5.2) 813 0 R (figure.5.3) 814 0 R (figure.5.4) 815 0 R (figure.5.5) 816 0 R (figure.5.6) 817 0 R (figure.5.7) 818 0 R (figure.5.8) 860 0 R (figure.5.9) 861 0 R (figure.6.1) 867 0 R (figure.6.10) 876 0 R (figure.6.11) 877 0 R (figure.6.12) 878 0 R (figure.6.13) 879 0 R (figure.6.14) 880 0 R (figure.6.15) 881 0 R (figure.6.2) 868 0 R (figure.6.3) 869 0 R (figure.6.4) 870 0 R (figure.6.5) 871 0 R (figure.6.6) 872 0 R (figure.6.7) 873 0 R (figure.6.8) 874 0 R (figure.6.9) 875 0 R (figure.7.1) 882 0 R (figure.7.10) 891 0 R (figure.7.11) 892 0 R (figure.7.12) 893 0 R (figure.7.13) 894 0 R (figure.7.14) 895 0 R (figure.7.15) 896 0 R (figure.7.16) 937 0 R (figure.7.17) 938 0 R (figure.7.18) 939 0 R (figure.7.19) 940 0 R (figure.7.2) 883 0 R (figure.7.3) 884 0 R (figure.7.4) 885 0 R (figure.7.5) 886 0 R (figure.7.6) 887 0 R (figure.7.7) 888 0 R (figure.7.8) 889 0 R (figure.7.9) 890 0 R (figure.8.1) 941 0 R (figure.8.10) 950 0 R (figure.8.11) 951 0 R (figure.8.12) 952 0 R (figure.8.2) 942 0 R (figure.8.3) 943 0 R (figure.8.4) 944 0 R (figure.8.5) 945 0 R (figure.8.6) 946 0 R (figure.8.7) 947 0 R (figure.8.8) 948 0 R (figure.8.9) 949 0 R (figure.9.1) 953 0 R (figure.9.10) 962 0 R (figure.9.11) 963 0 R (figure.9.12) 964 0 R (figure.9.2) 954 0 R (figure.9.3) 955 0 R (figure.9.4) 956 0 R (figure.9.5) 957 0 R (figure.9.6) 958 0 R (figure.9.7) 959 0 R (figure.9.8) 960 0 R (figure.9.9) 961 0 R (page.1) 565 0 R (page.10) 822 0 R (page.100) 1567 0 R (page.101) 1575 0 R (page.102) 1586 0 R (page.103) 1592 0 R (page.104) 1605 0 R (page.105) 1611 0 R (page.106) 1616 0 R (page.107) 1620 0 R (page.108) 1624 0 R (page.109) 1628 0 R (page.11) 900 0 R (page.110) 1633 0 R (page.111) 1637 0 R (page.112) 1641 0 R (page.113) 1645 0 R (page.114) 1649 0 R (page.115) 1653 0 R (page.116) 1658 0 R (page.117) 1662 0 R (page.118) 1666 0 R (page.119) 1670 0 R (page.12) 976 0 R (page.120) 1674 0 R (page.121) 1678 0 R (page.122) 1683 0 R (page.123) 1687 0 R (page.124) 1692 0 R (page.125) 1696 0 R (page.126) 1700 0 R (page.127) 1704 0 R (page.128) 1709 0 R (page.129) 1713 0 R (page.13) 982 0 R (page.130) 1717 0 R (page.131) 1721 0 R (page.132) 1726 0 R (page.133) 1730 0 R (page.134) 1735 0 R (page.135) 1744 0 R (page.136) 1748 0 R (page.137) 1752 0 R (page.138) 1756 0 R (page.139) 1760 0 R (page.14) 988 0 R (page.140) 1766 0 R (page.141) 1770 0 R (page.142) 1780 0 R (page.143) 1788 0 R (page.144) 1796 0 R (page.145) 1804 0 R (page.146) 1809 0 R (page.147) 1813 0 R (page.148) 1819 0 R (page.149) 1823 0 R (page.15) 992 0 R (page.150) 1827 0 R (page.151) 1831 0 R (page.152) 1841 0 R (page.153) 1846 0 R (page.154) 1851 0 R (page.155) 1855 0 R (page.156) 1859 0 R (page.157) 1864 0 R (page.158) 1869 0 R (page.159) 1873 0 R (page.16) 996 0 R (page.160) 1877 0 R (page.161) 1881 0 R (page.162) 1885 0 R (page.163) 1889 0 R (page.164) 1894 0 R (page.165) 1898 0 R (page.166) 1902 0 R (page.167) 1906 0 R (page.168) 1910 0 R (page.169) 1923 0 R (page.17) 1000 0 R (page.170) 1930 0 R (page.171) 1934 0 R (page.172) 1940 0 R (page.173) 1945 0 R (page.174) 1949 0 R (page.175) 1953 0 R (page.176) 1960 0 R (page.177) 1964 0 R (page.178) 1969 0 R (page.179) 1973 0 R (page.18) 1004 0 R (page.180) 1978 0 R (page.181) 1985 0 R (page.182) 1990 0 R (page.183) 1996 0 R (page.184) 2001 0 R (page.185) 2006 0 R (page.186) 2010 0 R (page.187) 2015 0 R (page.188) 2020 0 R (page.189) 2027 0 R (page.19) 1157 0 R (page.190) 2036 0 R (page.191) 2040 0 R (page.192) 2044 0 R (page.193) 2048 0 R (page.194) 2056 0 R (page.195) 2063 0 R (page.196) 2067 0 R (page.197) 2080 0 R (page.198) 2089 0 R (page.199) 2093 0 R (page.2) 577 0 R (page.20) 1164 0 R (page.200) 2098 0 R (page.201) 2102 0 R (page.202) 2106 0 R (page.203) 2110 0 R (page.204) 2114 0 R (page.205) 2118 0 R (page.206) 2123 0 R (page.207) 2127 0 R (page.208) 2136 0 R (page.209) 2141 0 R (page.21) 1180 0 R (page.210) 2145 0 R (page.211) 2149 0 R (page.212) 2158 0 R (page.213) 2163 0 R (page.214) 2167 0 R (page.215) 2171 0 R (page.216) 2175 0 R (page.217) 2179 0 R (page.218) 2186 0 R (page.219) 2190 0 R (page.22) 1186 0 R (page.220) 2194 0 R (page.221) 2199 0 R (page.222) 2203 0 R (page.223) 2207 0 R (page.224) 2212 0 R (page.225) 2216 0 R (page.226) 2220 0 R (page.227) 2224 0 R (page.228) 2230 0 R (page.229) 2234 0 R (page.23) 1192 0 R (page.230) 2239 0 R (page.231) 2243 0 R (page.232) 2247 0 R (page.233) 2251 0 R (page.234) 2256 0 R (page.235) 2260 0 R (page.236) 2265 0 R (page.237) 2269 0 R (page.238) 2273 0 R (page.239) 2278 0 R (page.24) 1196 0 R (page.240) 2282 0 R (page.241) 2286 0 R (page.242) 2291 0 R (page.243) 2298 0 R (page.244) 2302 0 R (page.245) 2306 0 R (page.246) 2311 0 R (page.247) 2315 0 R (page.248) 2320 0 R (page.249) 2324 0 R (page.25) 1200 0 R (page.250) 2330 0 R (page.251) 2334 0 R (page.252) 2349 0 R (page.253) 2364 0 R (page.254) 2372 0 R (page.255) 2377 0 R (page.256) 2381 0 R (page.257) 2385 0 R (page.258) 2389 0 R (page.259) 2401 0 R (page.26) 1205 0 R (page.260) 2406 0 R (page.261) 2412 0 R (page.262) 2416 0 R (page.263) 2420 0 R (page.264) 2424 0 R (page.265) 2429 0 R (page.266) 2434 0 R (page.267) 2438 0 R (page.268) 2442 0 R (page.269) 2446 0 R (page.27) 1218 0 R (page.270) 2450 0 R (page.271) 2454 0 R (page.272) 2459 0 R (page.273) 2463 0 R (page.274) 2468 0 R (page.275) 2476 0 R (page.28) 1222 0 R (page.29) 1226 0 R (page.3) 593 0 R (page.30) 1230 0 R (page.31) 1234 0 R (page.32) 1240 0 R (page.33) 1244 0 R (page.34) 1248 0 R (page.35) 1252 0 R (page.36) 1256 0 R (page.37) 1260 0 R (page.38) 1266 0 R (page.39) 1270 0 R (page.4) 629 0 R (page.40) 1274 0 R (page.41) 1278 0 R (page.42) 1282 0 R (page.43) 1286 0 R (page.44) 1291 0 R (page.45) 1295 0 R (page.46) 1299 0 R (page.47) 1303 0 R (page.48) 1307 0 R (page.49) 1312 0 R (page.5) 670 0 R (page.50) 1317 0 R (page.51) 1321 0 R (page.52) 1329 0 R (page.53) 1333 0 R (page.54) 1337 0 R (page.55) 1341 0 R (page.56) 1346 0 R (page.57) 1352 0 R (page.58) 1356 0 R (page.59) 1360 0 R (page.6) 714 0 R (page.60) 1364 0 R (page.61) 1371 0 R (page.62) 1376 0 R (page.63) 1380 0 R (page.64) 1387 0 R (page.65) 1391 0 R (page.66) 1395 0 R (page.67) 1401 0 R (page.68) 1406 0 R (page.69) 1410 0 R (page.7) 754 0 R (page.70) 1414 0 R (page.71) 1418 0 R (page.72) 1427 0 R (page.73) 1432 0 R (page.74) 1441 0 R (page.75) 1445 0 R (page.76) 1449 0 R (page.77) 1453 0 R (page.78) 1457 0 R (page.79) 1464 0 R (page.8) 763 0 R (page.80) 1469 0 R (page.81) 1473 0 R (page.82) 1477 0 R (page.83) 1481 0 R (page.84) 1485 0 R (page.85) 1489 0 R (page.86) 1494 0 R (page.87) 1499 0 R (page.88) 1505 0 R (page.89) 1509 0 R (page.9) 767 0 R (page.90) 1516 0 R (page.91) 1520 0 R (page.92) 1525 0 R (page.93) 1529 0 R (page.94) 1538 0 R (page.95) 1543 0 R (page.96) 1550 0 R (page.97) 1554 0 R (page.98) 1559 0 R (page.99) 1563 0 R (section*.10) 1588 0 R (section*.11) 1761 0 R (section*.12) 1954 0 R (section*.13) 1955 0 R (section*.14) 1974 0 R (section*.15) 1979 0 R (section*.16) 1991 0 R (section*.17) 2195 0 R (section*.18) 2425 0 R (section*.4) 1140 0 R (section*.5) 1235 0 R (section*.6) 1261 0 R (section*.7) 1308 0 R (section*.8) 1495 0 R (section*.9) 1539 0 R (section.1.1) 10 0 R (section.1.2) 26 0 R (section.1.3) 30 0 R (section.1.4) 54 0 R (section.10.1) 518 0 R (section.10.2) 526 0 R (section.10.3) 530 0 R (section.10.4) 538 0 R (section.10.5) 546 0 R (section.2.1) 62 0 R (section.2.2) 66 0 R (section.2.3) 70 0 R (section.3.1) 98 0 R (section.3.2) 102 0 R (section.3.3) 110 0 R (section.3.4) 114 0 R (section.3.5) 118 0 R (section.3.6) 130 0 R (section.4.1) 154 0 R (section.4.2) 158 0 R (section.4.3) 170 0 R (section.4.4) 174 0 R (section.4.5) 186 0 R (section.4.6) 198 0 R (section.5.1) 214 0 R (section.5.2) 218 0 R (section.5.3) 238 0 R (section.5.4) 250 0 R (section.5.5) 262 0 R (section.6.1) 282 0 R (section.6.2) 286 0 R (section.6.3) 314 0 R (section.7.1) 346 0 R (section.7.2) 350 0 R (section.7.3) 378 0 R (section.7.4) 398 0 R (section.7.5) 418 0 R (section.8.1) 426 0 R (section.8.2) 434 0 R (section.8.3) 446 0 R (section.8.4) 454 0 R (section.9.1) 462 0 R (section.9.2) 478 0 R (section.9.3) 498 0 R (section.9.4) 502 0 R (subsection.1.1.1) 14 0 R (subsection.1.1.2) 18 0 R (subsection.1.1.3) 22 0 R (subsection.1.3.1) 34 0 R (subsection.1.3.2) 38 0 R (subsection.1.3.3) 42 0 R (subsection.1.3.4) 46 0 R (subsection.1.3.5) 50 0 R (subsection.10.1.1) 522 0 R (subsection.10.3.1) 534 0 R (subsection.10.4.1) 542 0 R (subsection.10.5.1) 550 0 R (subsection.10.5.2) 554 0 R (subsection.10.5.3) 558 0 R (subsection.2.3.1) 74 0 R (subsection.2.3.2) 78 0 R (subsection.2.3.3) 82 0 R (subsection.2.3.4) 86 0 R (subsection.2.3.5) 90 0 R (subsection.3.2.1) 106 0 R (subsection.3.5.1) 122 0 R (subsection.3.5.2) 126 0 R (subsection.3.6.1) 134 0 R (subsection.3.6.2) 138 0 R (subsection.3.6.3) 142 0 R (subsection.3.6.4) 146 0 R (subsection.4.2.1) 162 0 R (subsection.4.2.2) 166 0 R (subsection.4.4.1) 178 0 R (subsection.4.4.2) 182 0 R (subsection.4.5.1) 190 0 R (subsection.4.5.2) 194 0 R (subsection.4.6.1) 202 0 R (subsection.4.6.2) 206 0 R (subsection.5.2.1) 222 0 R (subsection.5.2.2) 226 0 R (subsection.5.2.3) 230 0 R (subsection.5.2.4) 234 0 R (subsection.5.3.1) 242 0 R (subsection.5.3.2) 246 0 R (subsection.5.4.1) 254 0 R (subsection.5.4.2) 258 0 R (subsection.5.5.1) 266 0 R (subsection.5.5.2) 270 0 R (subsection.5.5.3) 274 0 R (subsection.6.2.1) 290 0 R (subsection.6.2.2) 294 0 R (subsection.6.2.3) 298 0 R (subsection.6.2.4) 302 0 R (subsection.6.2.5) 306 0 R (subsection.6.2.6) 310 0 R (subsection.6.3.1) 318 0 R (subsection.6.3.2) 322 0 R (subsection.6.3.3) 326 0 R (subsection.6.3.4) 330 0 R (subsection.6.3.5) 334 0 R (subsection.6.3.6) 338 0 R (subsection.7.2.1) 354 0 R (subsection.7.2.2) 358 0 R (subsection.7.2.3) 362 0 R (subsection.7.2.4) 366 0 R (subsection.7.2.5) 370 0 R (subsection.7.2.6) 374 0 R (subsection.7.3.1) 382 0 R (subsection.7.3.2) 386 0 R (subsection.7.3.3) 390 0 R (subsection.7.3.4) 394 0 R (subsection.7.4.1) 402 0 R (subsection.7.4.2) 406 0 R (subsection.7.4.3) 410 0 R (subsection.7.4.4) 414 0 R (subsection.8.1.1) 430 0 R (subsection.8.2.1) 438 0 R (subsection.8.2.2) 442 0 R (subsection.8.3.1) 450 0 R (subsection.9.1.1) 466 0 R (subsection.9.1.2) 470 0 R (subsection.9.1.3) 474 0 R (subsection.9.2.1) 482 0 R (subsection.9.2.2) 486 0 R (subsection.9.2.3) 490 0 R (subsection.9.2.4) 494 0 R (subsection.9.4.1) 506 0 R (subsection.9.4.2) 510 0 R] +/Limits [(Doc-Start) (subsection.9.4.2)] +>> endobj +2548 0 obj << +/Kids [2547 0 R] +>> endobj +2549 0 obj << +/Dests 2548 0 R +>> endobj +2550 0 obj << +/Type /Catalog +/Pages 2545 0 R +/Outlines 2546 0 R +/Names 2549 0 R +/PageMode /UseOutlines /URI<> /ViewerPreferences<<>> +/OpenAction 561 0 R +/PTEX.Fullbanner (This is pdfTeX, Version 3.14159-1.10b) +>> endobj +2551 0 obj << +/Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.10b)/Keywords() +/CreationDate (D:20031224145900) +>> endobj +xref +0 2552 +0000000001 65535 f +0000000002 00000 f +0000000003 00000 f +0000000004 00000 f +0000000000 00000 f +0000000009 00000 n +0000087793 00000 n +0001254051 00000 n +0000000054 00000 n +0000000084 00000 n +0000087853 00000 n +0001253942 00000 n +0000000131 00000 n +0000000179 00000 n +0000087914 00000 n +0001253868 00000 n +0000000232 00000 n +0000000293 00000 n +0000092148 00000 n +0001253781 00000 n +0000000346 00000 n +0000000403 00000 n +0000095863 00000 n +0001253707 00000 n +0000000456 00000 n +0000000516 00000 n +0000095924 00000 n +0001253621 00000 n +0000000564 00000 n +0000000603 00000 n +0000100388 00000 n +0001253498 00000 n +0000000651 00000 n +0000000693 00000 n +0000100449 00000 n +0001253424 00000 n +0000000746 00000 n +0000000773 00000 n +0000104835 00000 n +0001253337 00000 n +0000000826 00000 n +0000000863 00000 n +0000108502 00000 n +0001253250 00000 n +0000000916 00000 n +0000000963 00000 n +0000108562 00000 n +0001253163 00000 n +0000001016 00000 n +0000001059 00000 n +0000108623 00000 n +0001253089 00000 n +0000001112 00000 n +0000001142 00000 n +0000112563 00000 n +0001253016 00000 n +0000001190 00000 n +0000001218 00000 n +0000117219 00000 n +0001252891 00000 n +0000001264 00000 n +0000001309 00000 n +0000117280 00000 n +0001252817 00000 n +0000001357 00000 n +0000001395 00000 n +0000117341 00000 n +0001252730 00000 n +0000001443 00000 n +0000001481 00000 n +0000121150 00000 n +0001252619 00000 n +0000001529 00000 n +0000001568 00000 n +0000121211 00000 n +0001252545 00000 n +0000001621 00000 n +0000001649 00000 n +0000124473 00000 n +0001252458 00000 n +0000001702 00000 n +0000001735 00000 n +0000124534 00000 n +0001252371 00000 n +0000001788 00000 n +0000001820 00000 n +0000126679 00000 n +0001252284 00000 n +0000001873 00000 n +0000001917 00000 n +0000126740 00000 n +0001252210 00000 n +0000001970 00000 n +0000001995 00000 n +0000129004 00000 n +0001252082 00000 n +0000002041 00000 n +0000002075 00000 n +0000129065 00000 n +0001252006 00000 n +0000002123 00000 n +0000002157 00000 n +0000189539 00000 n +0001251876 00000 n +0000002206 00000 n +0000002263 00000 n +0000192907 00000 n +0001251811 00000 n +0000002317 00000 n +0000002360 00000 n +0000200401 00000 n +0001251719 00000 n +0000002409 00000 n +0000002445 00000 n +0000200462 00000 n +0001251627 00000 n +0000002494 00000 n +0000002527 00000 n +0000203894 00000 n +0001251496 00000 n +0000002576 00000 n +0000002623 00000 n +0000207605 00000 n +0001251417 00000 n +0000002677 00000 n +0000002722 00000 n +0000214431 00000 n +0001251338 00000 n +0000002776 00000 n +0000002817 00000 n +0000221270 00000 n +0001251221 00000 n +0000002866 00000 n +0000002908 00000 n +0000221332 00000 n +0001251142 00000 n +0000002962 00000 n +0000003017 00000 n +0000230639 00000 n +0001251049 00000 n +0000003071 00000 n +0000003133 00000 n +0000233418 00000 n +0001250956 00000 n +0000003187 00000 n +0000003253 00000 n +0000239364 00000 n +0001250877 00000 n +0000003307 00000 n +0000003349 00000 n +0000247722 00000 n +0001250745 00000 n +0000003396 00000 n +0000003432 00000 n +0000247784 00000 n +0001250666 00000 n +0000003481 00000 n +0000003513 00000 n +0000247846 00000 n +0001250534 00000 n +0000003562 00000 n +0000003622 00000 n +0000247908 00000 n +0001250455 00000 n +0000003676 00000 n +0000003716 00000 n +0000259119 00000 n +0001250376 00000 n +0000003770 00000 n +0000003806 00000 n +0000262117 00000 n +0001250283 00000 n +0000003855 00000 n +0000003893 00000 n +0000264378 00000 n +0001250151 00000 n +0000003942 00000 n +0000003979 00000 n +0000264440 00000 n +0001250072 00000 n +0000004033 00000 n +0000004067 00000 n +0000269928 00000 n +0001249993 00000 n +0000004121 00000 n +0000004157 00000 n +0000273326 00000 n +0001249861 00000 n +0000004206 00000 n +0000004241 00000 n +0000273388 00000 n +0001249782 00000 n +0000004295 00000 n +0000004338 00000 n +0000276891 00000 n +0001249703 00000 n +0000004392 00000 n +0000004435 00000 n +0000279427 00000 n +0001249585 00000 n +0000004484 00000 n +0000004515 00000 n +0000279489 00000 n +0001249506 00000 n +0000004569 00000 n +0000004610 00000 n +0000288038 00000 n +0001249427 00000 n +0000004664 00000 n +0000004702 00000 n +0000292817 00000 n +0001249294 00000 n +0000004749 00000 n +0000004785 00000 n +0000292879 00000 n +0001249215 00000 n +0000004834 00000 n +0000004866 00000 n +0000295200 00000 n +0001249083 00000 n +0000004915 00000 n +0000004959 00000 n +0000295262 00000 n +0001249004 00000 n +0000005013 00000 n +0000005051 00000 n +0000308424 00000 n +0001248911 00000 n +0000005105 00000 n +0000005146 00000 n +0000320391 00000 n +0001248818 00000 n +0000005200 00000 n +0000005239 00000 n +0000328767 00000 n +0001248739 00000 n +0000005293 00000 n +0000005335 00000 n +0000337102 00000 n +0001248607 00000 n +0000005384 00000 n +0000005426 00000 n +0000337164 00000 n +0001248528 00000 n +0000005480 00000 n +0000005521 00000 n +0000344786 00000 n +0001248449 00000 n +0000005575 00000 n +0000005610 00000 n +0000352040 00000 n +0001248317 00000 n +0000005659 00000 n +0000005706 00000 n +0000352102 00000 n +0001248238 00000 n +0000005760 00000 n +0000005799 00000 n +0000395177 00000 n +0001248159 00000 n +0000005853 00000 n +0000005886 00000 n +0000401281 00000 n +0001248041 00000 n +0000005935 00000 n +0000005968 00000 n +0000401343 00000 n +0001247962 00000 n +0000006022 00000 n +0000006072 00000 n +0000408386 00000 n +0001247869 00000 n +0000006126 00000 n +0000006170 00000 n +0000415275 00000 n +0001247790 00000 n +0000006224 00000 n +0000006281 00000 n +0000424702 00000 n +0001247657 00000 n +0000006328 00000 n +0000006375 00000 n +0000424764 00000 n +0001247578 00000 n +0000006424 00000 n +0000006459 00000 n +0000428030 00000 n +0001247446 00000 n +0000006508 00000 n +0000006542 00000 n +0000428092 00000 n +0001247367 00000 n +0000006596 00000 n +0000006643 00000 n +0000444024 00000 n +0001247274 00000 n +0000006697 00000 n +0000006762 00000 n +0000464205 00000 n +0001247181 00000 n +0000006816 00000 n +0000006867 00000 n +0000477154 00000 n +0001247088 00000 n +0000006921 00000 n +0000006965 00000 n +0000493292 00000 n +0001246995 00000 n +0000007019 00000 n +0000007069 00000 n +0000509197 00000 n +0001246916 00000 n +0000007123 00000 n +0000007164 00000 n +0000515087 00000 n +0001246798 00000 n +0000007213 00000 n +0000007241 00000 n +0000517933 00000 n +0001246719 00000 n +0000007295 00000 n +0000007346 00000 n +0000528085 00000 n +0001246626 00000 n +0000007400 00000 n +0000007459 00000 n +0000540295 00000 n +0001246533 00000 n +0000007513 00000 n +0000007558 00000 n +0000540355 00000 n +0001246440 00000 n +0000007612 00000 n +0000007650 00000 n +0000554175 00000 n +0001246347 00000 n +0000007704 00000 n +0000007742 00000 n +0000554237 00000 n +0001246268 00000 n +0000007796 00000 n +0000007835 00000 n +0000562872 00000 n +0001246135 00000 n +0000007882 00000 n +0000007919 00000 n +0000562934 00000 n +0001246056 00000 n +0000007968 00000 n +0000008015 00000 n +0000566817 00000 n +0001245924 00000 n +0000008064 00000 n +0000008105 00000 n +0000566943 00000 n +0001245845 00000 n +0000008159 00000 n +0000008201 00000 n +0000576198 00000 n +0001245752 00000 n +0000008255 00000 n +0000008297 00000 n +0000580349 00000 n +0001245659 00000 n +0000008351 00000 n +0000008392 00000 n +0000582846 00000 n +0001245566 00000 n +0000008446 00000 n +0000008486 00000 n +0000582908 00000 n +0001245473 00000 n +0000008540 00000 n +0000008581 00000 n +0000594995 00000 n +0001245394 00000 n +0000008635 00000 n +0000008682 00000 n +0000599028 00000 n +0001245262 00000 n +0000008731 00000 n +0000008775 00000 n +0000609785 00000 n +0001245183 00000 n +0000008829 00000 n +0000008881 00000 n +0000612118 00000 n +0001245090 00000 n +0000008935 00000 n +0000008984 00000 n +0000623882 00000 n +0001244997 00000 n +0000009038 00000 n +0000009095 00000 n +0000638588 00000 n +0001244918 00000 n +0000009149 00000 n +0000009185 00000 n +0000644119 00000 n +0001244786 00000 n +0000009234 00000 n +0000009284 00000 n +0000647905 00000 n +0001244707 00000 n +0000009338 00000 n +0000009374 00000 n +0000653502 00000 n +0001244614 00000 n +0000009428 00000 n +0000009459 00000 n +0000653564 00000 n +0001244521 00000 n +0000009513 00000 n +0000009570 00000 n +0000670749 00000 n +0001244442 00000 n +0000009624 00000 n +0000009683 00000 n +0000681425 00000 n +0001244363 00000 n +0000009732 00000 n +0000009772 00000 n +0000687266 00000 n +0001244230 00000 n +0000009819 00000 n +0000009853 00000 n +0000687328 00000 n +0001244112 00000 n +0000009902 00000 n +0000009943 00000 n +0000692850 00000 n +0001244047 00000 n +0000009997 00000 n +0000010044 00000 n +0000698551 00000 n +0001243915 00000 n +0000010093 00000 n +0000010133 00000 n +0000702750 00000 n +0001243836 00000 n +0000010187 00000 n +0000010226 00000 n +0000706986 00000 n +0001243757 00000 n +0000010280 00000 n +0000010329 00000 n +0000710515 00000 n +0001243625 00000 n +0000010378 00000 n +0000010420 00000 n +0000718597 00000 n +0001243560 00000 n +0000010474 00000 n +0000010524 00000 n +0000777188 00000 n +0001243481 00000 n +0000010573 00000 n +0000010611 00000 n +0000781463 00000 n +0001243348 00000 n +0000010658 00000 n +0000010701 00000 n +0000781525 00000 n +0001243230 00000 n +0000010750 00000 n +0000010801 00000 n +0000788993 00000 n +0001243151 00000 n +0000010855 00000 n +0000010894 00000 n +0000791249 00000 n +0001243058 00000 n +0000010948 00000 n +0000010987 00000 n +0000791374 00000 n +0001242979 00000 n +0000011041 00000 n +0000011091 00000 n +0000813366 00000 n +0001242847 00000 n +0000011140 00000 n +0000011180 00000 n +0000813428 00000 n +0001242768 00000 n +0000011234 00000 n +0000011291 00000 n +0000819637 00000 n +0001242675 00000 n +0000011345 00000 n +0000011392 00000 n +0000824646 00000 n +0001242582 00000 n +0000011446 00000 n +0000011487 00000 n +0000833366 00000 n +0001242503 00000 n +0000011541 00000 n +0000011589 00000 n +0000841097 00000 n +0001242410 00000 n +0000011638 00000 n +0000011682 00000 n +0000845800 00000 n +0001242292 00000 n +0000011731 00000 n +0000011776 00000 n +0000845862 00000 n +0001242213 00000 n +0000011830 00000 n +0000011871 00000 n +0000853572 00000 n +0001242134 00000 n +0000011925 00000 n +0000011970 00000 n +0000861877 00000 n +0001242015 00000 n +0000012018 00000 n +0000012065 00000 n +0000861939 00000 n +0001241897 00000 n +0000012115 00000 n +0000012158 00000 n +0000870612 00000 n +0001241832 00000 n +0000012213 00000 n +0000012265 00000 n +0000884108 00000 n +0001241739 00000 n +0000012315 00000 n +0000012356 00000 n +0000889901 00000 n +0001241607 00000 n +0000012406 00000 n +0000012451 00000 n +0000894117 00000 n +0001241542 00000 n +0000012506 00000 n +0000012539 00000 n +0000907951 00000 n +0001241410 00000 n +0000012589 00000 n +0000012624 00000 n +0000911224 00000 n +0001241345 00000 n +0000012679 00000 n +0000012711 00000 n +0000924072 00000 n +0001241227 00000 n +0000012761 00000 n +0000012796 00000 n +0000928073 00000 n +0001241148 00000 n +0000012851 00000 n +0000012885 00000 n +0000935694 00000 n +0001241055 00000 n +0000012940 00000 n +0000012975 00000 n +0000937718 00000 n +0001240976 00000 n +0000013030 00000 n +0000013071 00000 n +0000013646 00000 n +0000013888 00000 n +0000013123 00000 n +0000013766 00000 n +0000013827 00000 n +0001232989 00000 n +0001227168 00000 n +0001232826 00000 n +0001226641 00000 n +0001218898 00000 n +0001226478 00000 n +0001233418 00000 n +0000014909 00000 n +0000014728 00000 n +0000013973 00000 n +0000014848 00000 n +0001217882 00000 n +0001199518 00000 n +0001217720 00000 n +0001198634 00000 n +0001184957 00000 n +0001198470 00000 n +0001184506 00000 n +0001180069 00000 n +0001184346 00000 n +0001179300 00000 n +0001163737 00000 n +0001179136 00000 n +0000020984 00000 n +0000016651 00000 n +0000015018 00000 n +0000020862 00000 n +0001162944 00000 n +0001150494 00000 n +0001162780 00000 n +0000020923 00000 n +0000016983 00000 n +0001149729 00000 n +0001135971 00000 n +0001149565 00000 n +0000017134 00000 n +0000017287 00000 n +0000017445 00000 n +0000017603 00000 n +0000017761 00000 n +0000017914 00000 n +0000018067 00000 n +0000018225 00000 n +0000018383 00000 n +0000018541 00000 n +0000018699 00000 n +0000018857 00000 n +0000019010 00000 n +0000019161 00000 n +0000019314 00000 n +0000019467 00000 n +0000019619 00000 n +0000019777 00000 n +0000019935 00000 n +0000020092 00000 n +0000020248 00000 n +0000020405 00000 n +0000020556 00000 n +0000020709 00000 n +0000029782 00000 n +0000023507 00000 n +0000021081 00000 n +0000029721 00000 n +0000023935 00000 n +0000024094 00000 n +0000024247 00000 n +0000024401 00000 n +0000024555 00000 n +0000024714 00000 n +0000024873 00000 n +0000025027 00000 n +0000025186 00000 n +0000025345 00000 n +0000025504 00000 n +0000025662 00000 n +0000025813 00000 n +0000025967 00000 n +0000026121 00000 n +0000026280 00000 n +0000026438 00000 n +0000026591 00000 n +0000026745 00000 n +0000026904 00000 n +0000027062 00000 n +0000027216 00000 n +0000027375 00000 n +0000027534 00000 n +0000027687 00000 n +0000027846 00000 n +0000028005 00000 n +0000028156 00000 n +0000028310 00000 n +0000028463 00000 n +0000028622 00000 n +0000028781 00000 n +0000028940 00000 n +0000029099 00000 n +0000029252 00000 n +0000029410 00000 n +0000029568 00000 n +0000038370 00000 n +0000032102 00000 n +0000029866 00000 n +0000038309 00000 n +0000032530 00000 n +0001135244 00000 n +0001121551 00000 n +0001135080 00000 n +0000032688 00000 n +0000032845 00000 n +0000032998 00000 n +0000033156 00000 n +0000033314 00000 n +0000033472 00000 n +0000033623 00000 n +0000033776 00000 n +0000033929 00000 n +0000034086 00000 n +0000034243 00000 n +0000034401 00000 n +0000034559 00000 n +0000034717 00000 n +0000034874 00000 n +0000035026 00000 n +0000035183 00000 n +0000035341 00000 n +0000035499 00000 n +0000035657 00000 n +0000035815 00000 n +0000035973 00000 n +0000036122 00000 n +0000036275 00000 n +0000036428 00000 n +0000036586 00000 n +0000036744 00000 n +0000036902 00000 n +0000037059 00000 n +0000037215 00000 n +0000037373 00000 n +0000037526 00000 n +0000037684 00000 n +0000037841 00000 n +0000037998 00000 n +0000038156 00000 n +0000046923 00000 n +0000040814 00000 n +0000038467 00000 n +0000046862 00000 n +0000041234 00000 n +0000041392 00000 n +0000041551 00000 n +0000041710 00000 n +0000041868 00000 n +0000042022 00000 n +0000042173 00000 n +0000042327 00000 n +0000042486 00000 n +0000042640 00000 n +0000042798 00000 n +0000042957 00000 n +0000043111 00000 n +0000043269 00000 n +0000043423 00000 n +0000043574 00000 n +0000043728 00000 n +0000043887 00000 n +0000044046 00000 n +0000044204 00000 n +0000044358 00000 n +0000044517 00000 n +0000044675 00000 n +0000044834 00000 n +0000044993 00000 n +0000045147 00000 n +0000045301 00000 n +0000045459 00000 n +0000045615 00000 n +0000045766 00000 n +0000045920 00000 n +0000046079 00000 n +0000046234 00000 n +0000046389 00000 n +0000046548 00000 n +0000046702 00000 n +0000048340 00000 n +0000047485 00000 n +0000047020 00000 n +0000048279 00000 n +0000047649 00000 n +0000047803 00000 n +0000047962 00000 n +0000048120 00000 n +0001233536 00000 n +0000048737 00000 n +0000048556 00000 n +0000048411 00000 n +0000048676 00000 n +0000054990 00000 n +0000050740 00000 n +0000048778 00000 n +0000054868 00000 n +0000054929 00000 n +0000051072 00000 n +0000051223 00000 n +0000051374 00000 n +0000051526 00000 n +0000051678 00000 n +0000051830 00000 n +0000051982 00000 n +0000052134 00000 n +0000052286 00000 n +0000052438 00000 n +0000052590 00000 n +0000052741 00000 n +0000052893 00000 n +0000053045 00000 n +0000053197 00000 n +0000053349 00000 n +0000053501 00000 n +0000053653 00000 n +0000053805 00000 n +0000053957 00000 n +0000054109 00000 n +0000054261 00000 n +0000054413 00000 n +0000054565 00000 n +0000054716 00000 n +0000087975 00000 n +0000189476 00000 n +0000207667 00000 n +0000214493 00000 n +0000224602 00000 n +0000230701 00000 n +0000236296 00000 n +0000242672 00000 n +0000251436 00000 n +0000262054 00000 n +0000264315 00000 n +0000267046 00000 n +0000269990 00000 n +0000273449 00000 n +0000276953 00000 n +0000282900 00000 n +0000282963 00000 n +0000288100 00000 n +0000298930 00000 n +0000312451 00000 n +0000324429 00000 n +0000327075 00000 n +0000332788 00000 n +0000332851 00000 n +0000341246 00000 n +0000064108 00000 n +0000057950 00000 n +0000055074 00000 n +0000064047 00000 n +0000058378 00000 n +0000058531 00000 n +0000058684 00000 n +0000058838 00000 n +0000058992 00000 n +0000059146 00000 n +0000059299 00000 n +0000059453 00000 n +0000059606 00000 n +0000059759 00000 n +0000059912 00000 n +0000060065 00000 n +0000060218 00000 n +0000060370 00000 n +0000060523 00000 n +0000060676 00000 n +0000060829 00000 n +0000060983 00000 n +0000061136 00000 n +0000061290 00000 n +0000061444 00000 n +0000061598 00000 n +0000061752 00000 n +0000061905 00000 n +0000062055 00000 n +0000062207 00000 n +0000062360 00000 n +0000062513 00000 n +0000062665 00000 n +0000062818 00000 n +0000062971 00000 n +0000063124 00000 n +0000063278 00000 n +0000063432 00000 n +0000063586 00000 n +0000063740 00000 n +0000063893 00000 n +0000348107 00000 n +0000355809 00000 n +0000393258 00000 n +0000398384 00000 n +0000405440 00000 n +0000411584 00000 n +0000418518 00000 n +0000432155 00000 n +0000436252 00000 n +0000447963 00000 n +0000448026 00000 n +0000453906 00000 n +0000473124 00000 n +0000482712 00000 n +0000496108 00000 n +0000500135 00000 n +0000512420 00000 n +0000517871 00000 n +0000521498 00000 n +0000531548 00000 n +0000545056 00000 n +0000557278 00000 n +0000586950 00000 n +0000595057 00000 n +0000602918 00000 n +0000602981 00000 n +0000606826 00000 n +0000606889 00000 n +0000609847 00000 n +0000612056 00000 n +0000615595 00000 n +0000627427 00000 n +0000638650 00000 n +0000647778 00000 n +0000651106 00000 n +0000657465 00000 n +0000664396 00000 n +0000072936 00000 n +0000066981 00000 n +0000064179 00000 n +0000072875 00000 n +0000067401 00000 n +0000067554 00000 n +0000067707 00000 n +0000067859 00000 n +0000068011 00000 n +0000068163 00000 n +0000068313 00000 n +0000068465 00000 n +0000068617 00000 n +0000068768 00000 n +0000068920 00000 n +0000069070 00000 n +0000069222 00000 n +0000069374 00000 n +0000069527 00000 n +0000069680 00000 n +0000069833 00000 n +0000069983 00000 n +0000070135 00000 n +0000070286 00000 n +0000070438 00000 n +0000070590 00000 n +0000070741 00000 n +0000070893 00000 n +0000071044 00000 n +0000071196 00000 n +0000071349 00000 n +0000071502 00000 n +0000071655 00000 n +0000071806 00000 n +0000071959 00000 n +0000072112 00000 n +0000072263 00000 n +0000072416 00000 n +0000072569 00000 n +0000072722 00000 n +0000667105 00000 n +0000670811 00000 n +0000676051 00000 n +0000679514 00000 n +0000690506 00000 n +0000692787 00000 n +0000696488 00000 n +0000702687 00000 n +0000706923 00000 n +0000707048 00000 n +0000710452 00000 n +0000714392 00000 n +0000721684 00000 n +0000724621 00000 n +0000767899 00000 n +0000779111 00000 n +0000785125 00000 n +0000793853 00000 n +0000796614 00000 n +0000815887 00000 n +0000821955 00000 n +0000827862 00000 n +0000836622 00000 n +0000843525 00000 n +0000847861 00000 n +0000850962 00000 n +0000857106 00000 n +0000859088 00000 n +0000865606 00000 n +0000865669 00000 n +0000869168 00000 n +0000873575 00000 n +0000884169 00000 n +0000900541 00000 n +0000928135 00000 n +0000935756 00000 n +0000073751 00000 n +0000073396 00000 n +0000073020 00000 n +0000073690 00000 n +0000073536 00000 n +0000941414 00000 n +0000076371 00000 n +0000076129 00000 n +0000073822 00000 n +0000076249 00000 n +0000076310 00000 n +0001233654 00000 n +0000079817 00000 n +0000079636 00000 n +0000076455 00000 n +0000079756 00000 n +0000081118 00000 n +0000080937 00000 n +0000079888 00000 n +0000081057 00000 n +0000083027 00000 n +0000082846 00000 n +0000081189 00000 n +0000082966 00000 n +0000085097 00000 n +0000084915 00000 n +0000083098 00000 n +0000085035 00000 n +0000085500 00000 n +0000085314 00000 n +0000085168 00000 n +0000085437 00000 n +0000088038 00000 n +0000087330 00000 n +0000085542 00000 n +0000087484 00000 n +0000087639 00000 n +0001120810 00000 n +0001116266 00000 n +0001120645 00000 n +0001233773 00000 n +0000949519 00000 n +0000949582 00000 n +0000092273 00000 n +0000091525 00000 n +0000088175 00000 n +0001115750 00000 n +0001106588 00000 n +0001115585 00000 n +0000091688 00000 n +0000091843 00000 n +0000091997 00000 n +0001105965 00000 n +0001096180 00000 n +0001105800 00000 n +0001095844 00000 n +0001092325 00000 n +0001095681 00000 n +0000092209 00000 n +0001091477 00000 n +0001078355 00000 n +0001091313 00000 n +0000949645 00000 n +0000096111 00000 n +0000095401 00000 n +0000092466 00000 n +0000095555 00000 n +0000095710 00000 n +0000095985 00000 n +0001078039 00000 n +0001074788 00000 n +0001077874 00000 n +0000096048 00000 n +0000100638 00000 n +0000099413 00000 n +0000096304 00000 n +0000099594 00000 n +0000099750 00000 n +0000099902 00000 n +0000100057 00000 n +0001074266 00000 n +0001072021 00000 n +0001074102 00000 n +0001071046 00000 n +0001066880 00000 n +0001070881 00000 n +0000100510 00000 n +0000100212 00000 n +0001066435 00000 n +0001062288 00000 n +0001066270 00000 n +0000100574 00000 n +0000946680 00000 n +0000946743 00000 n +0000104896 00000 n +0000104530 00000 n +0000100872 00000 n +0000104675 00000 n +0001061983 00000 n +0001059978 00000 n +0001061818 00000 n +0000108748 00000 n +0000108203 00000 n +0000105088 00000 n +0000108348 00000 n +0000108684 00000 n +0000112687 00000 n +0000111935 00000 n +0000108914 00000 n +0001059724 00000 n +0001057528 00000 n +0001059561 00000 n +0000112098 00000 n +0000112252 00000 n +0000112407 00000 n +0000112624 00000 n +0001233898 00000 n +0000115135 00000 n +0000115011 00000 n +0000112880 00000 n +0000117465 00000 n +0000116920 00000 n +0000115221 00000 n +0000117065 00000 n +0000117402 00000 n +0000121272 00000 n +0000120366 00000 n +0000117603 00000 n +0000120538 00000 n +0000120690 00000 n +0000120842 00000 n +0000120994 00000 n +0000949707 00000 n +0000949769 00000 n +0000949895 00000 n +0000949832 00000 n +0000124658 00000 n +0000124173 00000 n +0000121397 00000 n +0000124318 00000 n +0000124595 00000 n +0000126801 00000 n +0000126555 00000 n +0000124810 00000 n +0000129124 00000 n +0000128880 00000 n +0000126913 00000 n +0001234023 00000 n +0000131329 00000 n +0000189601 00000 n +0000131205 00000 n +0000129209 00000 n +0000131741 00000 n +0000131886 00000 n +0000131967 00000 n +0000189455 00000 n +0000192969 00000 n +0000192783 00000 n +0000189755 00000 n +0000197144 00000 n +0000196275 00000 n +0000193120 00000 n +0000196576 00000 n +0000196639 00000 n +0000196702 00000 n +0000196420 00000 n +0000196765 00000 n +0000196828 00000 n +0000196891 00000 n +0000196954 00000 n +0000197017 00000 n +0000197080 00000 n +0000200524 00000 n +0000200151 00000 n +0000197323 00000 n +0000200275 00000 n +0000200338 00000 n +0000203956 00000 n +0000203597 00000 n +0000200675 00000 n +0000203742 00000 n +0000207793 00000 n +0000207241 00000 n +0000204094 00000 n +0000207542 00000 n +0000207386 00000 n +0000207730 00000 n +0001234148 00000 n +0000210873 00000 n +0000210686 00000 n +0000207999 00000 n +0000210810 00000 n +0001055889 00000 n +0001046166 00000 n +0001055724 00000 n +0001045288 00000 n +0001031826 00000 n +0001045124 00000 n +0001030870 00000 n +0001016087 00000 n +0001030705 00000 n +0001014408 00000 n +0001010535 00000 n +0001014244 00000 n +0000214619 00000 n +0000214067 00000 n +0000211055 00000 n +0000214368 00000 n +0000214212 00000 n +0000214556 00000 n +0000218142 00000 n +0000217714 00000 n +0000214825 00000 n +0000218015 00000 n +0000217859 00000 n +0000218078 00000 n +0000221394 00000 n +0000221083 00000 n +0000218337 00000 n +0000221207 00000 n +0000224665 00000 n +0000224415 00000 n +0000221506 00000 n +0000224539 00000 n +0000226988 00000 n +0000226801 00000 n +0000224874 00000 n +0000226925 00000 n +0001234273 00000 n +0000230764 00000 n +0000230452 00000 n +0000227128 00000 n +0000230576 00000 n +0001009808 00000 n +0000995127 00000 n +0001009643 00000 n +0000994565 00000 n +0000987125 00000 n +0000994400 00000 n +0000986587 00000 n +0000977242 00000 n +0000986422 00000 n +0000233479 00000 n +0000233231 00000 n +0000231000 00000 n +0000233355 00000 n +0000236359 00000 n +0000236109 00000 n +0000233632 00000 n +0000236233 00000 n +0000239426 00000 n +0000239177 00000 n +0000236568 00000 n +0000239301 00000 n +0000242735 00000 n +0000242485 00000 n +0000239606 00000 n +0000242609 00000 n +0000245005 00000 n +0000244756 00000 n +0000242943 00000 n +0000244880 00000 n +0000244943 00000 n +0001234398 00000 n +0000245604 00000 n +0000245417 00000 n +0000245170 00000 n +0000245541 00000 n +0000247970 00000 n +0000247535 00000 n +0000245690 00000 n +0000247659 00000 n +0000251499 00000 n +0000251249 00000 n +0000248055 00000 n +0000251373 00000 n +0000252867 00000 n +0000252680 00000 n +0000251694 00000 n +0000252804 00000 n +0000256011 00000 n +0000255824 00000 n +0000252981 00000 n +0000255948 00000 n +0000259181 00000 n +0000258869 00000 n +0000256178 00000 n +0000258993 00000 n +0000259056 00000 n +0001234523 00000 n +0000262179 00000 n +0000261867 00000 n +0000259320 00000 n +0000261991 00000 n +0000264502 00000 n +0000264128 00000 n +0000262373 00000 n +0000264252 00000 n +0000267109 00000 n +0000266859 00000 n +0000264711 00000 n +0000266983 00000 n +0000270053 00000 n +0000269741 00000 n +0000267304 00000 n +0000269865 00000 n +0000273512 00000 n +0000273139 00000 n +0000270261 00000 n +0000273263 00000 n +0000277015 00000 n +0000276704 00000 n +0000273759 00000 n +0000276828 00000 n +0001234648 00000 n +0000279551 00000 n +0000279240 00000 n +0000277263 00000 n +0000279364 00000 n +0000283026 00000 n +0000282713 00000 n +0000279730 00000 n +0000282837 00000 n +0000284842 00000 n +0000284655 00000 n +0000283179 00000 n +0000284779 00000 n +0000288163 00000 n +0000287851 00000 n +0000285024 00000 n +0000287975 00000 n +0000290366 00000 n +0000290116 00000 n +0000288357 00000 n +0000290240 00000 n +0000290303 00000 n +0000292940 00000 n +0000292630 00000 n +0000290519 00000 n +0000292754 00000 n +0001234773 00000 n +0000295324 00000 n +0000295013 00000 n +0000293091 00000 n +0000295137 00000 n +0000298993 00000 n +0000298079 00000 n +0000295462 00000 n +0000298867 00000 n +0000298251 00000 n +0000298403 00000 n +0000298559 00000 n +0000298711 00000 n +0000302064 00000 n +0000301877 00000 n +0000299176 00000 n +0000302001 00000 n +0000303397 00000 n +0000303210 00000 n +0000302260 00000 n +0000303334 00000 n +0000305791 00000 n +0000305604 00000 n +0000303511 00000 n +0000305728 00000 n +0000308486 00000 n +0000308237 00000 n +0000305918 00000 n +0000308361 00000 n +0001234898 00000 n +0000312514 00000 n +0000311932 00000 n +0000308651 00000 n +0000312388 00000 n +0000312086 00000 n +0000312235 00000 n +0000315831 00000 n +0000315644 00000 n +0000312724 00000 n +0000315768 00000 n +0000317304 00000 n +0000317117 00000 n +0000316039 00000 n +0000317241 00000 n +0000320453 00000 n +0000320204 00000 n +0000317418 00000 n +0000320328 00000 n +0000324492 00000 n +0000323743 00000 n +0000320619 00000 n +0000324366 00000 n +0000323906 00000 n +0000324060 00000 n +0000324212 00000 n +0000327138 00000 n +0000326888 00000 n +0000324631 00000 n +0000327012 00000 n +0001235023 00000 n +0000328829 00000 n +0000328580 00000 n +0000327308 00000 n +0000328704 00000 n +0000332914 00000 n +0000332104 00000 n +0000328982 00000 n +0000332725 00000 n +0000332267 00000 n +0000332423 00000 n +0000332572 00000 n +0000334815 00000 n +0000334628 00000 n +0000333122 00000 n +0000334752 00000 n +0000337226 00000 n +0000336915 00000 n +0000334997 00000 n +0000337039 00000 n +0000341308 00000 n +0000340722 00000 n +0000337418 00000 n +0000341183 00000 n +0000340876 00000 n +0000341032 00000 n +0000343164 00000 n +0000342977 00000 n +0000341546 00000 n +0000343101 00000 n +0001235148 00000 n +0000344848 00000 n +0000344599 00000 n +0000343332 00000 n +0000344723 00000 n +0000348170 00000 n +0000347920 00000 n +0000344975 00000 n +0000348044 00000 n +0000349524 00000 n +0000349337 00000 n +0000348394 00000 n +0000349461 00000 n +0000352164 00000 n +0000351681 00000 n +0000349638 00000 n +0000351977 00000 n +0000351826 00000 n +0000975835 00000 n +0000972866 00000 n +0000975669 00000 n +0000946806 00000 n +0000355872 00000 n +0000355622 00000 n +0000352357 00000 n +0000355746 00000 n +0000357301 00000 n +0000393321 00000 n +0000357177 00000 n +0000356109 00000 n +0000393195 00000 n +0001235273 00000 n +0000357716 00000 n +0000357861 00000 n +0000357942 00000 n +0000393174 00000 n +0000395239 00000 n +0000394990 00000 n +0000393492 00000 n +0000395114 00000 n +0000398447 00000 n +0000398197 00000 n +0000395406 00000 n +0000398321 00000 n +0000399824 00000 n +0000399637 00000 n +0000398671 00000 n +0000399761 00000 n +0000401404 00000 n +0000401094 00000 n +0000399938 00000 n +0000401218 00000 n +0000405503 00000 n +0000405253 00000 n +0000401572 00000 n +0000405377 00000 n +0000972389 00000 n +0000970574 00000 n +0000972226 00000 n +0000407178 00000 n +0000406991 00000 n +0000405781 00000 n +0000407115 00000 n +0001235398 00000 n +0000408448 00000 n +0000408199 00000 n +0000407320 00000 n +0000408323 00000 n +0000411647 00000 n +0000411397 00000 n +0000408575 00000 n +0000411521 00000 n +0000413027 00000 n +0000412840 00000 n +0000411899 00000 n +0000412964 00000 n +0000415337 00000 n +0000415088 00000 n +0000413141 00000 n +0000415212 00000 n +0000418580 00000 n +0000418331 00000 n +0000415504 00000 n +0000418455 00000 n +0000419892 00000 n +0000419705 00000 n +0000418846 00000 n +0000419829 00000 n +0001235523 00000 n +0000422006 00000 n +0000421757 00000 n +0000420006 00000 n +0000421881 00000 n +0000421944 00000 n +0000424889 00000 n +0000424338 00000 n +0000422198 00000 n +0000424639 00000 n +0000424483 00000 n +0000424826 00000 n +0000428154 00000 n +0000427843 00000 n +0000425055 00000 n +0000427967 00000 n +0000432217 00000 n +0000431467 00000 n +0000428346 00000 n +0000432092 00000 n +0000431630 00000 n +0000431784 00000 n +0000431936 00000 n +0000436315 00000 n +0000436065 00000 n +0000432439 00000 n +0000436189 00000 n +0000438247 00000 n +0000438060 00000 n +0000436467 00000 n +0000438184 00000 n +0001235648 00000 n +0000440651 00000 n +0000440464 00000 n +0000438416 00000 n +0000440588 00000 n +0000444150 00000 n +0000443500 00000 n +0000440791 00000 n +0000443961 00000 n +0000443654 00000 n +0000443806 00000 n +0000444086 00000 n +0000946869 00000 n +0000947058 00000 n +0000448152 00000 n +0000447776 00000 n +0000444342 00000 n +0000447900 00000 n +0000448089 00000 n +0000450839 00000 n +0000450461 00000 n +0000448374 00000 n +0000450585 00000 n +0000450648 00000 n +0000450711 00000 n +0000450775 00000 n +0000453969 00000 n +0000453719 00000 n +0000450991 00000 n +0000453843 00000 n +0000457343 00000 n +0000457156 00000 n +0000454180 00000 n +0000457280 00000 n +0001235773 00000 n +0000458984 00000 n +0000458797 00000 n +0000457509 00000 n +0000458921 00000 n +0000460640 00000 n +0000460453 00000 n +0000459098 00000 n +0000460577 00000 n +0000464395 00000 n +0000463676 00000 n +0000460754 00000 n +0000464142 00000 n +0000463830 00000 n +0000463986 00000 n +0000464267 00000 n +0000464331 00000 n +0000469226 00000 n +0000468975 00000 n +0000464615 00000 n +0000469099 00000 n +0000970239 00000 n +0000968717 00000 n +0000970076 00000 n +0000968417 00000 n +0000964525 00000 n +0000968251 00000 n +0000469162 00000 n +0000473250 00000 n +0000472762 00000 n +0000469445 00000 n +0000473061 00000 n +0000472907 00000 n +0000473187 00000 n +0000477280 00000 n +0000476442 00000 n +0000473455 00000 n +0000476902 00000 n +0000476965 00000 n +0000477028 00000 n +0000477091 00000 n +0000476596 00000 n +0000476749 00000 n +0000477216 00000 n +0001235898 00000 n +0000946932 00000 n +0000946995 00000 n +0000479519 00000 n +0000479092 00000 n +0000477445 00000 n +0000479392 00000 n +0000479237 00000 n +0000479455 00000 n +0000482775 00000 n +0000482348 00000 n +0000479686 00000 n +0000482649 00000 n +0000482493 00000 n +0000485552 00000 n +0000485365 00000 n +0000482985 00000 n +0000485489 00000 n +0000486769 00000 n +0000486582 00000 n +0000485720 00000 n +0000486706 00000 n +0000488125 00000 n +0000487938 00000 n +0000486883 00000 n +0000488062 00000 n +0000489615 00000 n +0000489428 00000 n +0000488239 00000 n +0000489552 00000 n +0001236023 00000 n +0000493354 00000 n +0000493105 00000 n +0000489729 00000 n +0000493229 00000 n +0000496171 00000 n +0000495921 00000 n +0000493545 00000 n +0000496045 00000 n +0000500198 00000 n +0000499948 00000 n +0000496354 00000 n +0000500072 00000 n +0000502413 00000 n +0000502226 00000 n +0000500475 00000 n +0000502350 00000 n +0000503645 00000 n +0000503458 00000 n +0000502621 00000 n +0000503582 00000 n +0000504637 00000 n +0000504450 00000 n +0000503759 00000 n +0000504574 00000 n +0001236148 00000 n +0000505821 00000 n +0000505634 00000 n +0000504751 00000 n +0000505758 00000 n +0000506845 00000 n +0000506658 00000 n +0000505935 00000 n +0000506782 00000 n +0000507909 00000 n +0000507722 00000 n +0000506959 00000 n +0000507846 00000 n +0000509259 00000 n +0000509010 00000 n +0000508023 00000 n +0000509134 00000 n +0000512483 00000 n +0000512233 00000 n +0000509386 00000 n +0000512357 00000 n +0000515149 00000 n +0000514900 00000 n +0000512666 00000 n +0000515024 00000 n +0001236273 00000 n +0000517995 00000 n +0000517684 00000 n +0000515342 00000 n +0000517808 00000 n +0000521561 00000 n +0000521139 00000 n +0000518160 00000 n +0000521435 00000 n +0000521284 00000 n +0000524068 00000 n +0000523881 00000 n +0000521758 00000 n +0000524005 00000 n +0000525854 00000 n +0000525667 00000 n +0000524263 00000 n +0000525791 00000 n +0000528147 00000 n +0000527898 00000 n +0000526020 00000 n +0000528022 00000 n +0000531611 00000 n +0000531361 00000 n +0000528271 00000 n +0000531485 00000 n +0001236398 00000 n +0000534396 00000 n +0000534209 00000 n +0000531848 00000 n +0000534333 00000 n +0000536021 00000 n +0000535834 00000 n +0000534591 00000 n +0000535958 00000 n +0000537498 00000 n +0000537311 00000 n +0000536135 00000 n +0000537435 00000 n +0000540481 00000 n +0000540108 00000 n +0000537612 00000 n +0000540232 00000 n +0000540417 00000 n +0000541897 00000 n +0000541710 00000 n +0000540674 00000 n +0000541834 00000 n +0000545119 00000 n +0000544869 00000 n +0000542008 00000 n +0000544993 00000 n +0001236523 00000 n +0000549095 00000 n +0000548377 00000 n +0000545329 00000 n +0000548840 00000 n +0000548531 00000 n +0000548903 00000 n +0000548687 00000 n +0000548967 00000 n +0000549031 00000 n +0000550316 00000 n +0000550129 00000 n +0000549318 00000 n +0000550253 00000 n +0000551492 00000 n +0000551305 00000 n +0000550430 00000 n +0000551429 00000 n +0000554299 00000 n +0000553988 00000 n +0000551592 00000 n +0000554112 00000 n +0000557341 00000 n +0000557091 00000 n +0000554465 00000 n +0000557215 00000 n +0000559295 00000 n +0000559045 00000 n +0000557524 00000 n +0000559169 00000 n +0000559232 00000 n +0001236648 00000 n +0000559929 00000 n +0000559742 00000 n +0000559474 00000 n +0000559866 00000 n +0000563059 00000 n +0000562346 00000 n +0000560015 00000 n +0000562809 00000 n +0000562500 00000 n +0000562655 00000 n +0000562996 00000 n +0000963293 00000 n +0000961804 00000 n +0000963129 00000 n +0000567069 00000 n +0000566288 00000 n +0000563266 00000 n +0000566754 00000 n +0000566442 00000 n +0000566879 00000 n +0000566598 00000 n +0000567005 00000 n +0000571350 00000 n +0000570795 00000 n +0000567262 00000 n +0000571095 00000 n +0000571158 00000 n +0000571222 00000 n +0000570940 00000 n +0000571286 00000 n +0000576388 00000 n +0000575672 00000 n +0000571503 00000 n +0000576135 00000 n +0000575826 00000 n +0000576260 00000 n +0000576324 00000 n +0000575981 00000 n +0000580411 00000 n +0000580162 00000 n +0000576610 00000 n +0000580286 00000 n +0001236773 00000 n +0000582970 00000 n +0000582659 00000 n +0000580603 00000 n +0000582783 00000 n +0000587013 00000 n +0000586426 00000 n +0000583162 00000 n +0000586887 00000 n +0000586580 00000 n +0000586731 00000 n +0000590413 00000 n +0000590226 00000 n +0000587263 00000 n +0000590350 00000 n +0000591823 00000 n +0000591636 00000 n +0000590608 00000 n +0000591760 00000 n +0000595119 00000 n +0000594808 00000 n +0000591937 00000 n +0000594932 00000 n +0000599153 00000 n +0000598342 00000 n +0000595424 00000 n +0000598965 00000 n +0000598505 00000 n +0000598659 00000 n +0000598815 00000 n +0000599090 00000 n +0001236898 00000 n +0000947121 00000 n +0000603043 00000 n +0000602557 00000 n +0000599401 00000 n +0000602855 00000 n +0000602702 00000 n +0000606952 00000 n +0000606464 00000 n +0000603294 00000 n +0000606763 00000 n +0000606609 00000 n +0000609909 00000 n +0000609598 00000 n +0000607175 00000 n +0000609722 00000 n +0000612180 00000 n +0000611869 00000 n +0000610145 00000 n +0000611993 00000 n +0000615658 00000 n +0000615235 00000 n +0000612347 00000 n +0000615532 00000 n +0000615380 00000 n +0000618666 00000 n +0000618479 00000 n +0000615922 00000 n +0000618603 00000 n +0001237023 00000 n +0000620195 00000 n +0000620008 00000 n +0000618861 00000 n +0000620132 00000 n +0000621976 00000 n +0000621789 00000 n +0000620309 00000 n +0000621913 00000 n +0000623944 00000 n +0000623695 00000 n +0000622117 00000 n +0000623819 00000 n +0000627490 00000 n +0000627240 00000 n +0000624084 00000 n +0000627364 00000 n +0000630806 00000 n +0000630619 00000 n +0000627727 00000 n +0000630743 00000 n +0000632336 00000 n +0000632149 00000 n +0000631001 00000 n +0000632273 00000 n +0001237148 00000 n +0000633914 00000 n +0000633727 00000 n +0000632450 00000 n +0000633851 00000 n +0000635292 00000 n +0000635105 00000 n +0000634028 00000 n +0000635229 00000 n +0000638713 00000 n +0000638401 00000 n +0000635406 00000 n +0000638525 00000 n +0000640655 00000 n +0000640468 00000 n +0000638949 00000 n +0000640592 00000 n +0000644499 00000 n +0000643598 00000 n +0000640835 00000 n +0000644056 00000 n +0000643752 00000 n +0000644181 00000 n +0000643904 00000 n +0000644245 00000 n +0000644308 00000 n +0000644371 00000 n +0000644435 00000 n +0000947184 00000 n +0000947247 00000 n +0000647967 00000 n +0000647415 00000 n +0000644665 00000 n +0000647715 00000 n +0000647841 00000 n +0000647560 00000 n +0001237273 00000 n +0000651169 00000 n +0000650919 00000 n +0000648161 00000 n +0000651043 00000 n +0000653626 00000 n +0000652976 00000 n +0000651351 00000 n +0000653439 00000 n +0000653130 00000 n +0000653284 00000 n +0000657526 00000 n +0000657102 00000 n +0000653805 00000 n +0000657402 00000 n +0000657247 00000 n +0000659134 00000 n +0000658947 00000 n +0000657778 00000 n +0000659071 00000 n +0000661496 00000 n +0000661309 00000 n +0000659248 00000 n +0000661433 00000 n +0000664521 00000 n +0000664146 00000 n +0000661650 00000 n +0000664270 00000 n +0000664333 00000 n +0000664459 00000 n +0001237398 00000 n +0000667168 00000 n +0000666918 00000 n +0000664743 00000 n +0000667042 00000 n +0000670874 00000 n +0000670386 00000 n +0000667378 00000 n +0000670686 00000 n +0000670531 00000 n +0000673194 00000 n +0000673007 00000 n +0000671125 00000 n +0000673131 00000 n +0000676114 00000 n +0000675801 00000 n +0000673349 00000 n +0000675925 00000 n +0000675988 00000 n +0000679577 00000 n +0000679138 00000 n +0000676378 00000 n +0000679262 00000 n +0000679325 00000 n +0000679388 00000 n +0000679451 00000 n +0000681486 00000 n +0000681238 00000 n +0000679801 00000 n +0000681362 00000 n +0001237523 00000 n +0000684707 00000 n +0000684281 00000 n +0000681652 00000 n +0000684581 00000 n +0000684644 00000 n +0000684426 00000 n +0000687454 00000 n +0000687079 00000 n +0000684957 00000 n +0000687203 00000 n +0000687390 00000 n +0000690569 00000 n +0000690255 00000 n +0000687646 00000 n +0000690379 00000 n +0000690442 00000 n +0000692912 00000 n +0000692600 00000 n +0000690845 00000 n +0000692724 00000 n +0000696550 00000 n +0000696131 00000 n +0000693076 00000 n +0000696425 00000 n +0000696276 00000 n +0000698613 00000 n +0000698364 00000 n +0000696788 00000 n +0000698488 00000 n +0001237648 00000 n +0000702812 00000 n +0000702001 00000 n +0000698767 00000 n +0000702624 00000 n +0000702164 00000 n +0000702317 00000 n +0000702470 00000 n +0000707111 00000 n +0000705911 00000 n +0000703102 00000 n +0000706860 00000 n +0000706092 00000 n +0000706245 00000 n +0000706398 00000 n +0000706552 00000 n +0000706706 00000 n +0000710577 00000 n +0000710265 00000 n +0000707319 00000 n +0000710389 00000 n +0000714455 00000 n +0000714205 00000 n +0000710840 00000 n +0000714329 00000 n +0000715935 00000 n +0000715748 00000 n +0000714774 00000 n +0000715872 00000 n +0000718658 00000 n +0000718221 00000 n +0000716049 00000 n +0000718345 00000 n +0000718408 00000 n +0000718471 00000 n +0000718534 00000 n +0001237773 00000 n +0000721747 00000 n +0000721497 00000 n +0000718812 00000 n +0000721621 00000 n +0000959544 00000 n +0000956425 00000 n +0000959376 00000 n +0000724684 00000 n +0000724434 00000 n +0000721972 00000 n +0000724558 00000 n +0000728780 00000 n +0000728090 00000 n +0000724894 00000 n +0000728214 00000 n +0000728277 00000 n +0000728340 00000 n +0000728403 00000 n +0000728466 00000 n +0000728529 00000 n +0000728592 00000 n +0000728655 00000 n +0000728717 00000 n +0000731084 00000 n +0000767962 00000 n +0000730960 00000 n +0000728933 00000 n +0000767773 00000 n +0000767836 00000 n +0000731492 00000 n +0000731633 00000 n +0000731714 00000 n +0000767752 00000 n +0000769255 00000 n +0000769068 00000 n +0000768118 00000 n +0000769192 00000 n +0000770635 00000 n +0000770448 00000 n +0000769369 00000 n +0000770572 00000 n +0001237898 00000 n +0000772003 00000 n +0000771816 00000 n +0000770749 00000 n +0000771940 00000 n +0000773481 00000 n +0000773294 00000 n +0000772117 00000 n +0000773418 00000 n +0000774730 00000 n +0000774543 00000 n +0000773595 00000 n +0000774667 00000 n +0000777249 00000 n +0000777001 00000 n +0000774844 00000 n +0000777125 00000 n +0000779174 00000 n +0000778924 00000 n +0000777458 00000 n +0000779048 00000 n +0000781587 00000 n +0000781276 00000 n +0000779386 00000 n +0000781400 00000 n +0001238023 00000 n +0000785188 00000 n +0000784938 00000 n +0000781699 00000 n +0000785062 00000 n +0000789309 00000 n +0000788629 00000 n +0000785397 00000 n +0000788930 00000 n +0000788774 00000 n +0000789055 00000 n +0000789119 00000 n +0000789182 00000 n +0000789245 00000 n +0000791436 00000 n +0000791062 00000 n +0000789501 00000 n +0000791186 00000 n +0000791311 00000 n +0000793916 00000 n +0000793666 00000 n +0000791602 00000 n +0000793790 00000 n +0000796676 00000 n +0000796427 00000 n +0000794114 00000 n +0000796551 00000 n +0000801411 00000 n +0000800652 00000 n +0000796874 00000 n +0000801285 00000 n +0000800815 00000 n +0000800975 00000 n +0000801131 00000 n +0000801348 00000 n +0001238148 00000 n +0000803834 00000 n +0000803476 00000 n +0000801658 00000 n +0000803771 00000 n +0000803621 00000 n +0000805228 00000 n +0000805041 00000 n +0000804056 00000 n +0000805165 00000 n +0000806862 00000 n +0000806675 00000 n +0000805342 00000 n +0000806799 00000 n +0000808237 00000 n +0000808050 00000 n +0000806976 00000 n +0000808174 00000 n +0000809887 00000 n +0000809700 00000 n +0000808351 00000 n +0000809824 00000 n +0000813553 00000 n +0000813002 00000 n +0000810040 00000 n +0000813303 00000 n +0000813147 00000 n +0000813490 00000 n +0001238273 00000 n +0000815950 00000 n +0000815700 00000 n +0000813733 00000 n +0000815824 00000 n +0000817280 00000 n +0000817093 00000 n +0000816133 00000 n +0000817217 00000 n +0000819699 00000 n +0000819388 00000 n +0000817394 00000 n +0000819512 00000 n +0000819575 00000 n +0000822018 00000 n +0000821768 00000 n +0000819867 00000 n +0000821892 00000 n +0000823737 00000 n +0000823550 00000 n +0000822202 00000 n +0000823674 00000 n +0000824708 00000 n +0000824459 00000 n +0000823864 00000 n +0000824583 00000 n +0001238398 00000 n +0000827925 00000 n +0000827675 00000 n +0000824807 00000 n +0000827799 00000 n +0000829316 00000 n +0000829129 00000 n +0000828149 00000 n +0000829253 00000 n +0000830707 00000 n +0000830520 00000 n +0000829430 00000 n +0000830644 00000 n +0000833492 00000 n +0000833003 00000 n +0000830821 00000 n +0000833303 00000 n +0000833148 00000 n +0000833428 00000 n +0000836683 00000 n +0000836435 00000 n +0000833671 00000 n +0000836559 00000 n +0000838377 00000 n +0000838190 00000 n +0000836975 00000 n +0000838314 00000 n +0001238523 00000 n +0000839607 00000 n +0000839420 00000 n +0000838519 00000 n +0000839544 00000 n +0000841159 00000 n +0000840910 00000 n +0000839721 00000 n +0000841034 00000 n +0000843588 00000 n +0000843338 00000 n +0000841286 00000 n +0000843462 00000 n +0000845924 00000 n +0000845442 00000 n +0000843798 00000 n +0000845737 00000 n +0000845587 00000 n +0000847923 00000 n +0000847674 00000 n +0000846064 00000 n +0000847798 00000 n +0000851024 00000 n +0000850775 00000 n +0000848035 00000 n +0000850899 00000 n +0001238648 00000 n +0000852583 00000 n +0000852396 00000 n +0000851248 00000 n +0000852520 00000 n +0000853634 00000 n +0000853385 00000 n +0000852697 00000 n +0000853509 00000 n +0000857168 00000 n +0000856745 00000 n +0000853788 00000 n +0000857043 00000 n +0000856890 00000 n +0000859151 00000 n +0000858901 00000 n +0000857420 00000 n +0000859025 00000 n +0000860123 00000 n +0000859936 00000 n +0000859291 00000 n +0000860060 00000 n +0000862001 00000 n +0000861690 00000 n +0000860237 00000 n +0000861814 00000 n +0001238773 00000 n +0000865732 00000 n +0000864915 00000 n +0000862113 00000 n +0000865543 00000 n +0000865078 00000 n +0000865233 00000 n +0000865388 00000 n +0000869231 00000 n +0000868981 00000 n +0000865927 00000 n +0000869105 00000 n +0000870674 00000 n +0000870425 00000 n +0000869442 00000 n +0000870549 00000 n +0000873638 00000 n +0000873212 00000 n +0000870800 00000 n +0000873512 00000 n +0000873357 00000 n +0000876451 00000 n +0000876264 00000 n +0000873848 00000 n +0000876388 00000 n +0000877740 00000 n +0000877553 00000 n +0000876634 00000 n +0000877677 00000 n +0001238898 00000 n +0000880174 00000 n +0000879987 00000 n +0000877854 00000 n +0000880111 00000 n +0000884295 00000 n +0000883744 00000 n +0000880301 00000 n +0000884045 00000 n +0000883889 00000 n +0000884232 00000 n +0000886149 00000 n +0000885962 00000 n +0000884585 00000 n +0000886086 00000 n +0000890344 00000 n +0000888873 00000 n +0000886304 00000 n +0000889838 00000 n +0000889054 00000 n +0000889210 00000 n +0000889963 00000 n +0000889367 00000 n +0000890026 00000 n +0000890090 00000 n +0000889524 00000 n +0000889681 00000 n +0000890153 00000 n +0000890217 00000 n +0000890281 00000 n +0000894747 00000 n +0000893592 00000 n +0000890577 00000 n +0000894054 00000 n +0000894179 00000 n +0000893746 00000 n +0000894242 00000 n +0000894305 00000 n +0000894366 00000 n +0000894429 00000 n +0000894492 00000 n +0000894555 00000 n +0000894619 00000 n +0000894683 00000 n +0000893902 00000 n +0000897325 00000 n +0000896832 00000 n +0000894968 00000 n +0000897134 00000 n +0000897197 00000 n +0000896977 00000 n +0000897261 00000 n +0001239023 00000 n +0000900603 00000 n +0000900181 00000 n +0000897505 00000 n +0000900478 00000 n +0000900326 00000 n +0000903051 00000 n +0000902864 00000 n +0000900880 00000 n +0000902988 00000 n +0000904549 00000 n +0000904362 00000 n +0000903287 00000 n +0000904486 00000 n +0000908013 00000 n +0000907764 00000 n +0000904663 00000 n +0000907888 00000 n +0000911350 00000 n +0000910567 00000 n +0000908247 00000 n +0000911033 00000 n +0000911096 00000 n +0000910721 00000 n +0000911160 00000 n +0000910877 00000 n +0000911286 00000 n +0000956193 00000 n +0000954212 00000 n +0000956029 00000 n +0000914091 00000 n +0000913904 00000 n +0000911571 00000 n +0000914028 00000 n +0001239148 00000 n +0000917327 00000 n +0000916904 00000 n +0000914288 00000 n +0000917200 00000 n +0000917049 00000 n +0000917263 00000 n +0000918720 00000 n +0000918533 00000 n +0000917522 00000 n +0000918657 00000 n +0000919993 00000 n +0000919806 00000 n +0000918834 00000 n +0000919930 00000 n +0000921164 00000 n +0000920977 00000 n +0000920107 00000 n +0000921101 00000 n +0000924134 00000 n +0000923823 00000 n +0000921278 00000 n +0000923947 00000 n +0000924010 00000 n +0000928198 00000 n +0000927886 00000 n +0000924301 00000 n +0000928010 00000 n +0001239273 00000 n +0000930348 00000 n +0000930161 00000 n +0000928447 00000 n +0000930285 00000 n +0000932255 00000 n +0000932068 00000 n +0000930503 00000 n +0000932192 00000 n +0000935819 00000 n +0000935507 00000 n +0000932382 00000 n +0000935631 00000 n +0000937780 00000 n +0000937531 00000 n +0000936082 00000 n +0000937655 00000 n +0000941477 00000 n +0000941227 00000 n +0000937948 00000 n +0000941351 00000 n +0000943007 00000 n +0000942820 00000 n +0000941782 00000 n +0000942944 00000 n +0001239398 00000 n +0000944189 00000 n +0000944002 00000 n +0000943121 00000 n +0000944126 00000 n +0000947310 00000 n +0000946430 00000 n +0000944303 00000 n +0000946554 00000 n +0000946617 00000 n +0000949958 00000 n +0000948573 00000 n +0000947408 00000 n +0000949456 00000 n +0000948745 00000 n +0000948917 00000 n +0000949105 00000 n +0000949271 00000 n +0000953180 00000 n +0000950751 00000 n +0000950070 00000 n +0000953117 00000 n +0000951013 00000 n +0000951164 00000 n +0000951311 00000 n +0000951463 00000 n +0000951613 00000 n +0000951762 00000 n +0000951913 00000 n +0000952063 00000 n +0000952213 00000 n +0000952364 00000 n +0000952515 00000 n +0000952664 00000 n +0000952815 00000 n +0000952965 00000 n +0000953265 00000 n +0000956400 00000 n +0000959934 00000 n +0000959805 00000 n +0000960146 00000 n +0000963504 00000 n +0000963529 00000 n +0000968633 00000 n +0000970450 00000 n +0000972635 00000 n +0000976046 00000 n +0000976293 00000 n +0000986876 00000 n +0000994829 00000 n +0001010166 00000 n +0001014798 00000 n +0001015068 00000 n +0001031441 00000 n +0001045772 00000 n +0001056227 00000 n +0001056518 00000 n +0001059934 00000 n +0001062205 00000 n +0001062180 00000 n +0001066675 00000 n +0001071698 00000 n +0001071424 00000 n +0001074536 00000 n +0001078252 00000 n +0001091943 00000 n +0001096105 00000 n +0001106266 00000 n +0001116074 00000 n +0001121257 00000 n +0001135604 00000 n +0001150117 00000 n +0001163356 00000 n +0001179698 00000 n +0001184788 00000 n +0001199159 00000 n +0001218456 00000 n +0001226921 00000 n +0001233233 00000 n +0001239514 00000 n +0001239637 00000 n +0001239763 00000 n +0001239889 00000 n +0001240015 00000 n +0001240141 00000 n +0001240267 00000 n +0001240393 00000 n +0001240519 00000 n +0001240599 00000 n +0001240726 00000 n +0001240825 00000 n +0001240899 00000 n +0001254161 00000 n +0001268231 00000 n +0001268272 00000 n +0001268312 00000 n +0001268543 00000 n +trailer +<< +/Size 2552 +/Root 2550 0 R +/Info 2551 0 R +>> +startxref +1268699 +%%EOF diff --git a/tommath.src b/tommath.src new file mode 100644 index 0000000..1f7e61d --- /dev/null +++ b/tommath.src @@ -0,0 +1,6268 @@ +\documentclass[b5paper]{book} +\usepackage{hyperref} +\usepackage{makeidx} +\usepackage{amssymb} +\usepackage{color} +\usepackage{alltt} +\usepackage{graphicx} +\usepackage{layout} +\def\union{\cup} +\def\intersect{\cap} +\def\getsrandom{\stackrel{\rm R}{\gets}} +\def\cross{\times} +\def\cat{\hspace{0.5em} \| \hspace{0.5em}} +\def\catn{$\|$} +\def\divides{\hspace{0.3em} | \hspace{0.3em}} +\def\nequiv{\not\equiv} +\def\approx{\raisebox{0.2ex}{\mbox{\small $\sim$}}} +\def\lcm{{\rm lcm}} +\def\gcd{{\rm gcd}} +\def\log{{\rm log}} +\def\ord{{\rm ord}} +\def\abs{{\mathit abs}} +\def\rep{{\mathit rep}} +\def\mod{{\mathit\ mod\ }} +\renewcommand{\pmod}[1]{\ ({\rm mod\ }{#1})} +\newcommand{\floor}[1]{\left\lfloor{#1}\right\rfloor} +\newcommand{\ceil}[1]{\left\lceil{#1}\right\rceil} +\def\Or{{\rm\ or\ }} +\def\And{{\rm\ and\ }} +\def\iff{\hspace{1em}\Longleftrightarrow\hspace{1em}} +\def\implies{\Rightarrow} +\def\undefined{{\rm ``undefined"}} +\def\Proof{\vspace{1ex}\noindent {\bf Proof:}\hspace{1em}} +\let\oldphi\phi +\def\phi{\varphi} +\def\Pr{{\rm Pr}} +\newcommand{\str}[1]{{\mathbf{#1}}} +\def\F{{\mathbb F}} +\def\N{{\mathbb N}} +\def\Z{{\mathbb Z}} +\def\R{{\mathbb R}} +\def\C{{\mathbb C}} +\def\Q{{\mathbb Q}} +\definecolor{DGray}{gray}{0.5} +\newcommand{\emailaddr}[1]{\mbox{$<${#1}$>$}} +\def\twiddle{\raisebox{0.3ex}{\mbox{\tiny $\sim$}}} +\def\gap{\vspace{0.5ex}} +\makeindex +\begin{document} +\frontmatter +\pagestyle{empty} +\title{Implementing Multiple Precision Arithmetic \\ ~ \\ Holiday Draft Edition } +\author{\mbox{ +%\begin{small} +\begin{tabular}{c} +Tom St Denis \\ +Algonquin College \\ +\\ +Mads Rasmussen \\ +Open Communications Security \\ +\\ +Greg Rose \\ +QUALCOMM Australia \\ +\end{tabular} +%\end{small} +} +} +\maketitle +This text has been placed in the public domain. This text corresponds to the v0.28 release of the +LibTomMath project. + +\begin{alltt} +Tom St Denis +111 Banning Rd +Ottawa, Ontario +K2L 1C3 +Canada + +Phone: 1-613-836-3160 +Email: tomstdenis@iahu.ca +\end{alltt} + +This text is formatted to the international B5 paper size of 176mm wide by 250mm tall using the \LaTeX{} +{\em book} macro package and the Perl {\em booker} package. + +\tableofcontents +\listoffigures +\chapter*{Prefaces to the Holiday Draft Edition} +I started this text in April 2003 to complement my LibTomMath library. That is, explain how to implement the functions +contained in LibTomMath. The goal is to have a textbook that any Computer Science student can use when implementing their +own multiple precision arithmetic. The plan I wanted to follow was flesh out all the +ideas and concepts I had floating around in my head and then work on it afterwards refining a little bit at a time. Chance +would have it that I ended up with my summer off from Algonquin College and I was given four months solid to work on the +text. + +Choosing to not waste any time I dove right into the project even before my spring semester was finished. I wrote a bit +off and on at first. The moment my exams were finished I jumped into long 12 to 16 hour days. The result after only +a couple of months was a ten chapter, three hundred page draft that I quickly had distributed to anyone who wanted +to read it. I had Jean-Luc Cooke print copies for me and I brought them to Crypto'03 in Santa Barbara. So far I have +managed to grab a certain level of attention having people from around the world ask me for copies of the text was certain +rewarding. + +Now we are in December 2003. By this time I had pictured that I would have at least finished my second draft of the text. +Currently I am far off from this goal. I've done partial re-writes of chapters one, two and three but they are not even +finished yet. I haven't given up on the project, only had some setbacks. First O'Reilly declined to publish the text then +Addison-Wesley and Greg is tried another which I don't know the name of. However, at this point I want to focus my energy +onto finishing the book not securing a contract. + +So why am I writing this text? It seems like a lot of work right? Most certainly it is a lot of work writing a textbook. +Even the simplest introductory material has to be lined with references and figures. A lot of the text has to be re-written +from point form to prose form to ensure an easier read. Why am I doing all this work for free then? Simple. My philosophy +is quite simply ``Open Source. Open Academia. Open Minds'' which means that to achieve a goal of open minds, that is, +people willing to accept new ideas and explore the unknown you have to make available material they can access freely +without hinderance. + +I've been writing free software since I was about sixteen but only recently have I hit upon software that people have come +to depend upon. I started LibTomCrypt in December 2001 and now several major companies use it as integral portions of their +software. Several educational institutions use it as a matter of course and many freelance developers use it as +part of their projects. To further my contributions I started the LibTomMath project in December 2002 aimed at providing +multiple precision arithmetic routines that students could learn from. That is write routines that are not only easy +to understand and follow but provide quite impressive performance considering they are all in standard portable ISO C. + +The second leg of my philosophy is ``Open Academia'' which is where this textbook comes in. In the end, when all is +said and done the text will be useable by educational institutions as a reference on multiple precision arithmetic. + +At this time I feel I should share a little information about myself. The most common question I was asked at +Crypto'03, perhaps just out of professional courtesy, was which school I either taught at or attended. The unfortunate +truth is that I neither teach at or attend a school of academic reputation. I'm currently at Algonquin College which +is what I'd like to call ``somewhat academic but mostly vocational'' college. In otherwords, job training. + +I'm a 21 year old computer science student mostly self-taught in the areas I am aware of (which includes a half-dozen +computer science fields, a few fields of mathematics and some English). I look forward to teaching someday but I am +still far off from that goal. + +Now it would be improper for me to not introduce the rest of the texts co-authors. While they are only contributing +corrections and editorial feedback their support has been tremendously helpful in presenting the concepts laid out +in the text so far. Greg has always been there for me. He has tracked my LibTom projects since their inception and even +sent cheques to help pay tuition from time to time. His background has provided a wonderful source to bounce ideas off +of and improve the quality of my writing. Mads is another fellow who has just ``been there''. I don't even recall what +his interest in the LibTom projects is but I'm definitely glad he has been around. His ability to catch logical errors +in my written English have saved me on several occasions to say the least. + +What to expect next? Well this is still a rough draft. I've only had the chance to update a few chapters. However, I've +been getting the feeling that people are starting to use my text and I owe them some updated material. My current tenative +plan is to edit one chapter every two weeks starting January 4th. It seems insane but my lower course load at college +should provide ample time. By Crypto'04 I plan to have a 2nd draft of the text polished and ready to hand out to as many +people who will take it. + +Finally, again, I'd like to thank my parents Vern and Katie St Denis for giving me a place to stay, food, clothes and +word of encouragement whenever I seemed to need it. Thanks! + +\begin{flushright} Tom St Denis \end{flushright} + +\newpage +I found the opportunity to work with Tom appealing for several reasons, not only could I broaden my own horizons, but also +contribute to educate others facing the problem of having to handle big number mathematical calculations. + +This book is Tom's child and he has been caring and fostering the project ever since the beginning with a clear mind of +how he wanted the project to turn out. I have helped by proofreading the text and we have had several discussions about +the layout and language used. + +I hold a masters degree in cryptography from the University of Southern Denmark and have always been interested in the +practical aspects of cryptography. + +Having worked in the security consultancy business for several years in S\~{a}o Paulo, Brazil, I have been in touch with a +great deal of work in which multiple precision mathematics was needed. Understanding the possibilities for speeding up +multiple precision calculations is often very important since we deal with outdated machine architecture where modular +reductions, for example, become painfully slow. + +This text is for people who stop and wonder when first examining algorithms such as RSA for the first time and asks +themselves, ``You tell me this is only secure for large numbers, fine; but how do you implement these numbers?'' + +\begin{flushright} +Mads Rasmussen + +S\~{a}o Paulo - SP + +Brazil +\end{flushright} + +\newpage +It's all because I broke my leg. That just happened to be at about the same time that Tom asked for someone to review the section of the book about +Karatsuba multiplication. I was laid up, alone and immobile, and thought ``Why not?'' I vaguely knew what Karatsuba multiplication was, but not +really, so I thought I could help, learn, and stop myself from watching daytime cable TV, all at once. + +At the time of writing this, I've still not met Tom or Mads in meatspace. I've been following Tom's progress since his first splash on the +sci.crypt Usenet news group. I watched him go from a clueless newbie, to the cryptographic equivalent of a reformed smoker, to a real +contributor to the field, over a period of about two years. I've been impressed with his obvious intelligence, and astounded by his productivity. +Of course, he's young enough to be my own child, so he doesn't have my problems with staying awake. + +When I reviewed that single section of the book, in its very earliest form, I was very pleasantly surprised. So I decided to collaborate more fully, +and at least review all of it, and perhaps write some bits too. There's still a long way to go with it, and I have watched a number of close +friends go through the mill of publication, so I think that the way to go is longer than Tom thinks it is. Nevertheless, it's a good effort, +and I'm pleased to be involved with it. + +\begin{flushright} +Greg Rose, Sydney, Australia, June 2003. +\end{flushright} + +\mainmatter +\pagestyle{headings} +\chapter{Introduction} +\section{Multiple Precision Arithmetic} +\subsection{The Need for Multiple Precision Arithmetic} +The most prevalent need for multiple precision arithmetic, often referred to as ``bignum'' math, is within the implementation +of public-key cryptography algorithms. Algorithms such as RSA \cite{RSAREF} and Diffie-Hellman \cite{DHREF} require +integers of significant magnitude to resist known cryptanalytic attacks. For example, at the time of this writing a +typical RSA modulus would be at greater than $10^{309}$. However, modern programming languages such as ISO C \ref{ISOC} and +Java \ref{JAVA} only provide instrinsic support for integers which are relatively small and are single precision. + +\begin{figure}[!here] +\begin{center} +\begin{tabular}{|r|c|} +\hline \textbf{Data Type} & \textbf{Range} \\ +\hline char & $-128 \ldots 127$ \\ +\hline short & $-32768 \ldots 32767$ \\ +\hline long & $-2147483648 \ldots 2147483647$ \\ +\hline long long & $-9223372036854775808 \ldots 9223372036854775807$ \\ +\hline +\end{tabular} +\end{center} +\caption{Typical Data Types for the C Programming Language} +\label{fig:ISOC} +\end{figure} + +The largest data type guaranteed to be provided by the ISO C programming +language\footnote{As per the ISO C standard. However, each compiler vendor is allowed to augment the precision as they +see fit.} can only represent values up to $10^{19}$ as shown in figure \ref{fig:ISOC}. On its own the C language is +insufficient to accomodate the magnitude required for the problem at hand. An RSA modulus of magnitude $10^{19}$ could be +trivially factored on the average desktop computer, rendering any protocol based on the algorithm insecure. Multiple +precision algorithms solve this very problem by extending the range of representable integers while using single precision +data types. + +Most advancements in fast multiple precision arithmetic stem from the need for faster and more efficient cryptographic +primitives. Faster modular reduction and exponentiation algorithms such as Barrett's algorithm, which have appeared in +various cryptographic journals, can render algorithms such as RSA and Diffie-Hellman more efficient. In fact, several +major companies such as RSA Security, Certicom and Entrust have built entire product lines on the implementation and +deployment of efficient algorithms. + +However, cryptography is not the only field of study that can benefit from fast multiple precision integer routines. +Another auxiliary use of multiple precision integers is high precision floating point data types. +The basic IEEE \cite{IEEE} standard floating point type is made up of an integer mantissa $q$, an exponent $e$ and a sign bit $s$. +Numbers are given in the form $n = q \cdot b^e \cdot -1^s$ where $b = 2$ is the most common base for IEEE. Since IEEE +floating point is meant to be implemented in hardware the precision of the mantissa is often fairly small +(\textit{23, 48 and 64 bits}). The mantissa is merely an integer and a multiple precision integer could be used to create +a mantissa of much larger precision than hardware alone can efficiently support. This approach could be useful where +scientific applications must minimize the total output error over long calculations. + +\subsection{What is Multiple Precision Arithmetic?} +At the heart of all multiple precision integer operations are the ``long-hand'' algorithms taught to children in grade +school. For example, to multiply $1,234$ by $981$ the student is not taught to memorize the times table for +$1,234$. Instead, they are taught how to long-multiply one digit at a time. That is to multiply each column using +simple single digit multiplications, line up the partial results, and add the resulting products by column. The +representation that most are familiar with is known as decimal or more formally as radix-10. A radix-$n$ representation +simply means there are $n$ possible values per digit. For example, binary would be a radix-2 representation. + +In essence computer based multiple precision arithmetic is very much the same. In most cases the same algorithms +which seem instinctive are the basis of computer based algorithms. The most notable difference is the usage +of a binary friendly radix, that is, to use a radix of the form $2^k$ where $k$ is typically the size of a computer +machine register\footnote{For example, with an x86 based processor $k$ could be $32$ while on an Alpha it would likely +be $64$.}. + +\subsection{Benefits of Multiple Precision Arithmetic} +\index{precision} +The benefit of multiple precision representations over single or fixed precision representations is that +often no precision is lost while representing the result of an operation which requires excess precision. For example, +the product of two $n$-bit integers requires at least $2n$ bits of resolution to be precisely represented. +A multiple precision algorithm would augment the precision of the destination to accomodate the result while a single +precision system would truncate excess bits to maintain a fixed level of precision. + +It is possible to implement algorithms which require large integers with fixed precision algorithms. For example, elliptic +curve cryptography (\textit{ECC}) is often implemented on smartcards by fixing the precision of the integers to the maximum +size the system will ever need. Such an approach can lead to vastly simpler algorithms which can accomodate the +integers required even if the host platform cannot natively accomodate them\footnote{For example, the average smartcard +processor has an 8 bit accumulator.}. However, as efficient as such an approach may be, the resulting source code is not +normally very flexible. It cannot, at runtime, accomodate inputs of higher magnitude than the designer anticipated. + +Multiple precision algorithms have the most overhead of any style of arithmetic. For the the most part the +overhead can be kept to a minimum with careful planning, but overall, it is not well suited for most memory starved +platforms. However, multiple precision algorithms do offer the most flexibility in terms of the magnitude of the +inputs. That is, the same algorithms based on multiple precision integers can accomodate any reasonable size input +without the designer's explicit forethought. + +\section{Purpose of This Text} +The purpose of this text is to instruct the reader regarding how to implement multiple precision algorithms. That is +to not only explain a limited subset of the core theory behind the algorithms but also the various ``house keeping'' +elements that are neglected by authors of other texts on the subject. Several well reknowned texts \cite{TAOCPV2,HAC} +give considerably detailed explanations of the theoretical aspects of algorithms and often very little information +regarding the practical implementation aspects. + +In most cases how an algorithm is explained and how it is actually implemented are two very different concepts. For +example, the Handbook of Applied Cryptography (\textit{HAC}), algorithm 14.7 on page 594, gives a relatively simple +algorithm for performing multiple precision integer addition. However, the description lacks any discussion concerning +the fact that the two integer inputs may be of differing magnitudes. As a result the implementation is not as simple +as the text would lead people to believe. Similarly the division routine (\textit{algorithm 14.20, pp. 598}) does not +discuss how to handle sign or handle the dividend's decreasing magnitude in the main loop (\textit{step \#3}). + +Both texts also do not discuss several key optimal algorithms required such as ``Comba'' and Karatsuba multipliers +and fast modular inversion, which we consider practical oversights. These optimal algorithms are vital to achieve +any form of useful performance in non-trivial applications. + +To solve this problem the focus of this text is on the practical aspects of implementing a multiple precision integer +package. As a case study the ``LibTomMath''\footnote{Available at \url{http://math.libtomcrypt.org}} package is used +to demonstrate algorithms with real implementations\footnote{In the ISO C programming language.} that have been field +tested and work very well. The LibTomMath library is freely available on the Internet for all uses and this text +discusses a very large portion of the inner workings of the library. + +The algorithms that are presented will always include at least one ``pseudo-code'' description followed +by the actual C source code that implements the algorithm. The pseudo-code can be used to implement the same +algorithm in other programming languages as the reader sees fit. + +\section{Discussion and Notation} +\subsection{Notation} +A multiple precision integer of $n$-digits shall be denoted as $x = (x_{n-1} ... x_1 x_0)_{ \beta }$ and represent +the integer $x \equiv \sum_{i=0}^{n-1} x_i\beta^i$. The elements of the array $x$ are said to be the radix $\beta$ digits +of the integer. For example, $x = (1,2,3)_{10}$ would represent the integer +$1\cdot 10^2 + 2\cdot10^1 + 3\cdot10^0 = 123$. + +\index{mp\_int} +The term ``mp\_int'' shall refer to a composite structure which contains the digits of the integer it represents, as well +as auxilary data required to manipulate the data. These additional members are discussed further in section +\ref{sec:MPINT}. For the purposes of this text a ``multiple precision integer'' and an ``mp\_int'' are assumed to be +synonymous. When an algorithm is specified to accept an mp\_int variable it is assumed the various auxliary data members +are present as well. An expression of the type \textit{variablename.item} implies that it should evaluate to the +member named ``item'' of the variable. For example, a string of characters may have a member ``length'' which would +evaluate to the number of characters in the string. If the string $a$ equals ``hello'' then it follows that +$a.length = 5$. + +For certain discussions more generic algorithms are presented to help the reader understand the final algorithm used +to solve a given problem. When an algorithm is described as accepting an integer input it is assumed the input is +a plain integer with no additional multiple-precision members. That is, algorithms that use integers as opposed to +mp\_ints as inputs do not concern themselves with the housekeeping operations required such as memory management. These +algorithms will be used to establish the relevant theory which will subsequently be used to describe a multiple +precision algorithm to solve the same problem. + +\subsection{Precision Notation} +For the purposes of this text a single precision variable must be able to represent integers in the range +$0 \le x < q \beta$ while a double precision variable must be able to represent integers in the range +$0 \le x < q \beta^2$. The variable $\beta$ represents the radix of a single digit of a multiple precision integer and +must be of the form $q^p$ for $q, p \in \Z^+$. The extra radix-$q$ factor allows additions and subtractions to proceed +without truncation of the carry. Since all modern computers are binary, it is assumed that $q$ is two, for all intents +and purposes. + +\index{mp\_digit} \index{mp\_word} +Within the source code that will be presented for each algorithm, the data type \textbf{mp\_digit} will represent +a single precision integer type, while, the data type \textbf{mp\_word} will represent a double precision integer type. In +several algorithms (notably the Comba routines) temporary results will be stored in arrays of double precision mp\_words. +For the purposes of this text $x_j$ will refer to the $j$'th digit of a single precision array and $\hat x_j$ will refer to +the $j$'th digit of a double precision array. Whenever an expression is to be assigned to a double precision +variable it is assumed that all single precision variables are promoted to double precision during the evaluation. +Expressions that are assigned to a single precision variable are truncated to fit within the precision of a single +precision data type. + +For example, if $\beta = 10^2$ a single precision data type may represent a value in the +range $0 \le x < 10^3$, while a double precision data type may represent a value in the range $0 \le x < 10^5$. Let +$a = 23$ and $b = 49$ represent two single precision variables. The single precision product shall be written +as $c \leftarrow a \cdot b$ while the double precision product shall be written as $\hat c \leftarrow a \cdot b$. +In this particular case, $\hat c = 1127$ and $c = 127$. The most significant digit of the product would not fit +in a single precision data type and as a result $c \ne \hat c$. + +\subsection{Algorithm Inputs and Outputs} +Within the algorithm descriptions all variables are assumed to be scalars of either single or double precision +as indicated. The only exception to this rule is when variables have been indicated to be of type mp\_int. This +distinction is important as scalars are often used as array indicies and various other counters. + +\subsection{Mathematical Expressions} +The $\lfloor \mbox{ } \rfloor$ brackets imply an expression truncated to an integer not greater than the expression +itself. For example, $\lfloor 5.7 \rfloor = 5$. Similarly the $\lceil \mbox{ } \rceil$ brackets imply an expression +rounded to an integer not less than the expression itself. For example, $\lceil 5.1 \rceil = 6$. Typically when +the $/$ division symbol is used the intention is to perform an integer division with truncation. For example, +$5/2 = 2$ which will often be written as $\lfloor 5/2 \rfloor = 2$ for clarity. When a value is presented as a +fraction such as $5 \over 2$ a real value division is implied. + +The norm of a multiple precision integer, for example, $\vert \vert x \vert \vert$ will be used to represent the number of digits in the representation +of the integer. For example, $\vert \vert 123 \vert \vert = 3$. + +\subsection{Work Effort} +\index{big-O} +To measure the efficiency of the specified algorithms, a modified big-O notation is used. In this system all +single precision operations are considered to have the same cost\footnote{Except where explicitly noted.}. +That is a single precision addition, multiplication and division are assumed to take the same time to +complete. While this is generally not true in practice, it will simplify the discussions considerably. + +Some algorithms have slight advantages over others which is why some constants will not be removed in +the notation. For example, a normal multiplication requires $O(n^2)$ work while a squaring requires +$O({{n^2 + n}\over 2})$ work. In standard big-O notation these would both be said to be equivalent to $O(n^2)$. However, +in the context of the this text this is not the case as the magnitude of the inputs will typically be rather small. As a +result small constant factors in the work effort will make an observable difference in algorithm efficiency. + +Throughout the discussions various ``work levels'' will be discussed. The term work level shall refer to +the complexity of an algorithm with respect to its time requirements. For example, +$O(1)$, $O(n)$, $O(n^2)$, ..., $O(n^k)$ are various possible work levels that will be of concern in this text. Any +sequence of operations said to be at the $O(n^k)$ work level will often be nested $k-$deep within loops and are performed +$n^k$ times. + +Operations which are deeply nested within algorithms will have a higher big-O rating and be the target of the most +optimizatons. For example, in integer multiplication, by moving the carry propagation from the innermost +$O(n^2)$ nesting to the $O(n)$ nesting level the algorithm becomes vastly more +efficient\footnote{This is known as Comba multiplication.}. + +\section{Exercises} +Within the more advanced chapters a section will be set aside to give the reader some challenging exercises. These +exercises are not designed to be prize winning problems, but instead to be thought provoking. Wherever possible the +problems are forward minded, stating problems that will be answered in subsequent chapters. The reader is encouraged to +finish the exercises as they appear to get a better understanding of the subject material. + +That being said, the problems are designed to affirm knowledge of a particular subject matter. Students in particular +are encouraged to verify they can answer the problems correctly before moving on. + +Similar to the exercises of \cite[pp. ix]{TAOCPV2} these exercises are given a scoring system based on the difficulty of +the problem. However, unlike \cite{TAOCPV2} the problems do not get nearly as hard. The scoring of these +exercises ranges from one (the easiest) to five (the hardest). The following table sumarizes the +scoring. + +\begin{tabular}{cl} +$\left [ 1 \right ]$ & An easy problem that should only take the reader a manner of \\ + & minutes to solve. Usually does not involve much computer time \\ + & to solve. \\ + & \\ +$\left [ 2 \right ]$ & An easy problem that involves a marginal amount of computer \\ + & time usage. Usually requires a program to be written to \\ + & solve the problem. \\ + & \\ +$\left [ 3 \right ]$ & A moderately hard problem that requires a non-trivial amount \\ + & of work. Usually involves trivial research and development of \\ + & new theory from the perspective of a student. \\ + & \\ +$\left [ 4 \right ]$ & A moderately hard problem that involves a non-trivial amount \\ + & of work and research, the solution to which will demonstrate \\ + & a higher mastery of the subject matter. \\ + & \\ +$\left [ 5 \right ]$ & A hard problem that involves concepts that are difficult for a \\ + & novice to solve. Solutions to these problems will demonstrate a \\ + & complete mastery of the given subject. \\ + & \\ +\end{tabular} + +Essentially problems at the first level are meant to be simple questions that the reader can answer quickly without programming a solution or +devising new theory. These problems are quick tests to see if the material is understood. Problems at the second level are also +designed to be easy but will require a program or algorithm to be implemented to arrive at the answer. + +Problems at the third level are meant to be a bit more difficult. Often the answer is fairly obvious but arriving at an exacting solution +requires some thought and skill. These problems will almost always involve devising a new algorithm or implementing a variation of +another algorithm. + +Problems at the fourth level are meant to be even more difficult as well as involve some research. The reader will most +likely not know the answer right away, nor will the text provide the exact details of the answer until a subsequent +chapter. Problems at the fifth level are meant to be the hardest problems relative to all the other problems in the +chapter. People who can correctly answer fifth level problems have a mastery of the subject matter at hand. + +Often problems will be tied together. The purpose of this is to start a chain of thought that will be discussed in future chapters. The reader +is encouraged to answer the follow-up problems and try to draw the relevance of problems. + +\chapter{Introduction to LibTomMath} + +\section{What is LibTomMath?} +LibTomMath is a free and open source multiple precision library written in portable ISO C. By portable it is +meant that the library does not contain any code that is computer platform dependent or otherwise problematic to use on +any given platform. + +The library has been successfully tested under numerous operating systems including Unix\footnote{All of these +trademarks belong to their respective rightful owners.}, MacOS, Windows, Linux, PalmOS and on standalone hardware such +as the Gameboy Advance. The library is designed to contain enough functionality to be able to develop applications such +as public key cryptosystems and still maintain a relatively small footprint. + +\section{Goals of LibTomMath} + +Libraries which obtain the most efficiency are rarely written in a high level programming language such as C. However, +even though this library is written entirely in ISO C, considerable care has been taken to optimize the algorithm implementations within the +library. Specifically the code has been written to work well with the GNU C Compiler (\textit{GCC}) on both x86 and ARM +processors. Wherever possible, highly efficient algorithms, such as Karatsuba multiplication, sliding window +exponentiation and Montgomery reduction have been provided to make the library more efficient. + +Even with the nearly optimal and specialized algorithms that have been included the Application Programing Interface +(\textit{API}) has been kept as simple as possible. Often generic place holder routines will make use of specialized +algorithms automatically without the developer's specific attention. One such example is the generic multiplication +algorithm \textbf{mp\_mul()} which will automatically use Karatsuba, Toom-Cook, Comba or baseline multiplication +based on the magnitude of the inputs and the configuration of the library. + +Making LibTomMath as efficient as possible is not the only goal of the LibTomMath project. Ideally the library should +be source compatible with another popular library which makes it more attractive for developers to use. In this case the +MPI library was used as a API template for all the basic functions. MPI was chosen as the template because it is +another library that fits in the same niche as LibTomMath. Even though LibTomMath uses MPI as the template for the +function names and argument passing conventions, LibTomMath has been written from scratch by Tom St Denis. + +The project is also meant to act as a learning tool for students, the logic being that no easy-to-follow ``bignum'' +library exists which can be used to teach computer science students how to perform fast and reliable multiple precision +arithmetic. To this end the source code has been given quite a few comments and algorithm discussion points. + +\section{Choice of LibTomMath} +LibTomMath was chosen as the case study of this text not only because the author of both projects is one and the same but +for more worthy reasons. Other libraries such as GMP \cite{GMP}, MPI \cite{MPI}, LIP \cite{LIP} and OpenSSL +\cite{OPENSSL} have multiple precision integer arithmetic routines but would not be ideal for this text for +reasons that will be explained in the following sub-sections. + +\subsection{Code Base} +The LibTomMath code base is all portable ISO C source code. This means that there are no platform dependent conditional +segments of code littered throughout the source. This clean and uncluttered approach to the library means that a +developer can more readily discern the true intent of a given section of source code without trying to keep track of +what conditional code will be used. + +The code base of LibTomMath is also well organized. Each function is in its own separate source code file +which allows the reader to find a given function very quickly. When compiled with GCC for the x86 processor the entire +library is a mere 87,760 bytes ($116,182$ bytes for ARMv4 processors). This includes every single function +LibTomMath provides from basic arithmetic to various number theoretic functions such as modular exponentiation, various +reduction algorithms and Jacobi symbol computation. + +By comparison MPI, which has fewer functions than LibTomMath, compiled with the same conditions occupied 45,429 bytes +($54,536$ for ARMv4). GMP which has a rather large collection of functions with the default configuration on an +x86 Athlon is 2,950,688 bytes. Note that while LibTomMath has fewer functions than GMP it has been used as the sole basis +for several public key cryptosystems without having to seek additional outside functions to supplement the library. + +\subsection{API Simplicity} +LibTomMath is designed after the MPI library and shares the API design. Quite often programs that use MPI will build +with LibTomMath without change. The function names correlate directly to the action they perform. Almost all of the +functions share the same parameter passing convention. The learning curve is fairly shallow with the API provided +which is an extremely valuable benefit for the student and developer alike. + +The LIP library is an example of a library with an API that is awkward to work with. LIP uses function names that are often ``compressed'' to +illegible short hand. LibTomMath does not share this characteristic. + +\subsection{Optimizations} +While LibTomMath is certainly not the fastest library (GMP often beats LibTomMath by a factor of two) it does +feature a set of optimal algorithms for tasks such as modular reduction, exponentiation, multiplication and squaring. GMP +and LIP also feature such optimizations while MPI only uses baseline algorithms with no optimizations. GMP lacks a few +of the additional modular reduction optimizations that LibTomMath features\footnote{At the time of this writing GMP +only had Barrett and Montgomery modular reduction algorithms.}. + +LibTomMath is almost always an order of magnitude faster than the MPI library at computationally expensive tasks such as modular +exponentiation. In the grand scheme of ``bignum'' libraries LibTomMath is faster than the average library and usually +slower than the best libraries such as GMP and OpenSSL by only a small factor. + +\subsection{Portability and Stability} +LibTomMath will build ``out of the box'' on any platform equipped with a modern version of the GNU C Compiler +(\textit{GCC}). This means that without changes the library will build without configuration or setting up any +variables. LIP and MPI will build ``out of the box'' as well but have numerous known bugs. Most notably the author of +MPI has recently stopped working on his library and LIP has long since been discontinued. + +GMP requires a configuration script to run and will not build out of the box. GMP and LibTomMath are still in active +development and are very stable across a variety of platforms. + +\subsection{Choice} +LibTomMath is a relatively compact, well documented, highly optimized and portable library which seems only natural for +the case study of this text. Various source files from the LibTomMath project will be included within the text. However, +the reader is encouraged to download their own copy of the library to actually be able to work with the library. + +\chapter{Getting Started} +\section{Library Basics} +The trick to writing any useful library of source code is to build a solid foundation and work outwards from it. First, +a problem along with allowable solution parameters should be identified and analyzed. In this particular case the +inability to accomodate multiple precision integers is the problem. Futhermore, the solution must be written +as portable source code that is reasonably efficient across several different computer platforms. + +After a foundation is formed the remainder of the library can be designed and implemented in a hierarchical fashion. +That is, to implement the lowest level dependencies first and work towards the most abstract functions last. For example, +before implementing a modular exponentiation algorithm one would implement a modular reduction algorithm. +By building outwards from a base foundation instead of using a parallel design methodology the resulting project is +highly modular. Being highly modular is a desirable property of any project as it often means the resulting product +has a small footprint and updates are easy to perform. + +Usually when I start a project I will begin with the header file. I define the data types I think I will need and +prototype the initial functions that are not dependent on other functions (within the library). After I +implement these base functions I prototype more dependent functions and implement them. The process repeats until +I implement all of the functions I require. For example, in the case of LibTomMath I implemented functions such as +mp\_init() well before I implemented mp\_mul() and even further before I implemented mp\_exptmod(). As an example as to +why this design works note that the Karatsuba and Toom-Cook multipliers were written \textit{after} the +dependent function mp\_exptmod() was written. Adding the new multiplication algorithms did not require changes to the +mp\_exptmod() function itself and lowered the total cost of ownership (\textit{so to speak}) and of development +for new algorithms. This methodology allows new algorithms to be tested in a complete framework with relative ease. + +FIGU,design_process,Design Flow of the First Few Original LibTomMath Functions. + +Only after the majority of the functions were in place did I pursue a less hierarchical approach to auditing and optimizing +the source code. For example, one day I may audit the multipliers and the next day the polynomial basis functions. + +It only makes sense to begin the text with the preliminary data types and support algorithms required as well. +This chapter discusses the core algorithms of the library which are the dependents for every other algorithm. + +\section{What is a Multiple Precision Integer?} +Recall that most programming languages, in particular ISO C \cite{ISOC}, only have fixed precision data types that on their own cannot +be used to represent values larger than their precision will allow. The purpose of multiple precision algorithms is +to use fixed precision data types to create and manipulate multiple precision integers which may represent values +that are very large. + +As a well known analogy, school children are taught how to form numbers larger than nine by prepending more radix ten digits. In the decimal system +the largest single digit value is $9$. However, by concatenating digits together larger numbers may be represented. Newly prepended digits +(\textit{to the left}) are said to be in a different power of ten column. That is, the number $123$ can be described as having a $1$ in the hundreds +column, $2$ in the tens column and $3$ in the ones column. Or more formally $123 = 1 \cdot 10^2 + 2 \cdot 10^1 + 3 \cdot 10^0$. Computer based +multiple precision arithmetic is essentially the same concept. Larger integers are represented by adjoining fixed +precision computer words with the exception that a different radix is used. + +What most people probably do not think about explicitly are the various other attributes that describe a multiple precision +integer. For example, the integer $154_{10}$ has two immediately obvious properties. First, the integer is positive, +that is the sign of this particular integer is positive as opposed to negative. Second, the integer has three digits in +its representation. There is an additional property that the integer posesses that does not concern pencil-and-paper +arithmetic. The third property is how many digits placeholders are available to hold the integer. + +The human analogy of this third property is ensuring there is enough space on the paper to write the integer. For example, +if one starts writing a large number too far to the right on a piece of paper they will have to erase it and move left. +Similarly, computer algorithms must maintain strict control over memory usage to ensure that the digits of an integer +will not exceed the allowed boundaries. These three properties make up what is known as a multiple precision +integer or mp\_int for short. + +\subsection{The mp\_int Structure} +\label{sec:MPINT} +The mp\_int structure is the ISO C based manifestation of what represents a multiple precision integer. The ISO C standard does not provide for +any such data type but it does provide for making composite data types known as structures. The following is the structure definition +used within LibTomMath. + +\index{mp\_int} +\begin{verbatim} +typedef struct { + int used, alloc, sign; + mp_digit *dp; +} mp_int; +\end{verbatim} + +The mp\_int structure can be broken down as follows. + +\begin{enumerate} +\item The \textbf{used} parameter denotes how many digits of the array \textbf{dp} contain the digits used to represent +a given integer. The \textbf{used} count must be positive (or zero) and may not exceed the \textbf{alloc} count. + +\item The \textbf{alloc} parameter denotes how +many digits are available in the array to use by functions before it has to increase in size. When the \textbf{used} count +of a result would exceed the \textbf{alloc} count all of the algorithms will automatically increase the size of the +array to accommodate the precision of the result. + +\item The pointer \textbf{dp} points to a dynamically allocated array of digits that represent the given multiple +precision integer. It is padded with $(\textbf{alloc} - \textbf{used})$ zero digits. The array is maintained in a least +significant digit order. As a pencil and paper analogy the array is organized such that the right most digits are stored +first starting at the location indexed by zero\footnote{In C all arrays begin at zero.} in the array. For example, +if \textbf{dp} contains $\lbrace a, b, c, \ldots \rbrace$ where \textbf{dp}$_0 = a$, \textbf{dp}$_1 = b$, \textbf{dp}$_2 = c$, $\ldots$ then +it would represent the integer $a + b\beta + c\beta^2 + \ldots$ + +\index{MP\_ZPOS} \index{MP\_NEG} +\item The \textbf{sign} parameter denotes the sign as either zero/positive (\textbf{MP\_ZPOS}) or negative (\textbf{MP\_NEG}). +\end{enumerate} + +\subsubsection{Valid mp\_int Structures} +Several rules are placed on the state of an mp\_int structure and are assumed to be followed for reasons of efficiency. +The only exceptions are when the structure is passed to initialization functions such as mp\_init() and mp\_init\_copy(). + +\begin{enumerate} +\item The value of \textbf{alloc} may not be less than one. That is \textbf{dp} always points to a previously allocated +array of digits. +\item The value of \textbf{used} may not exceed \textbf{alloc} and must be greater than or equal to zero. +\item The value of \textbf{used} implies the digit at index $(used - 1)$ of the \textbf{dp} array is non-zero. That is, +leading zero digits in the most significant positions must be trimmed. + \begin{enumerate} + \item Digits in the \textbf{dp} array at and above the \textbf{used} location must be zero. + \end{enumerate} +\item The value of \textbf{sign} must be \textbf{MP\_ZPOS} if \textbf{used} is zero; +this represents the mp\_int value of zero. +\end{enumerate} + +\section{Argument Passing} +A convention of argument passing must be adopted early on in the development of any library. Making the function +prototypes consistent will help eliminate many headaches in the future as the library grows to significant complexity. +In LibTomMath the multiple precision integer functions accept parameters from left to right as pointers to mp\_int +structures. That means that the source (input) operands are placed on the left and the destination (output) on the right. +Consider the following examples. + +\begin{verbatim} + mp_mul(&a, &b, &c); /* c = a * b */ + mp_add(&a, &b, &a); /* a = a + b */ + mp_sqr(&a, &b); /* b = a * a */ +\end{verbatim} + +The left to right order is a fairly natural way to implement the functions since it lets the developer read aloud the +functions and make sense of them. For example, the first function would read ``multiply a and b and store in c''. + +Certain libraries (\textit{LIP by Lenstra for instance}) accept parameters the other way around, to mimic the order +of assignment expressions. That is, the destination (output) is on the left and arguments (inputs) are on the right. In +truth, it is entirely a matter of preference. In the case of LibTomMath the convention from the MPI library has been +adopted. + +Another very useful design consideration, provided for in LibTomMath, is whether to allow argument sources to also be a +destination. For example, the second example (\textit{mp\_add}) adds $a$ to $b$ and stores in $a$. This is an important +feature to implement since it allows the calling functions to cut down on the number of variables it must maintain. +However, to implement this feature specific care has to be given to ensure the destination is not modified before the +source is fully read. + +\section{Return Values} +A well implemented application, no matter what its purpose, should trap as many runtime errors as possible and return them +to the caller. By catching runtime errors a library can be guaranteed to prevent undefined behaviour. However, the end +developer can still manage to cause a library to crash. For example, by passing an invalid pointer an application may +fault by dereferencing memory not owned by the application. + +In the case of LibTomMath the only errors that are checked for are related to inappropriate inputs (division by zero for +instance) and memory allocation errors. It will not check that the mp\_int passed to any function is valid nor +will it check pointers for validity. Any function that can cause a runtime error will return an error code as an +\textbf{int} data type with one of the following values. + +\index{MP\_OKAY} \index{MP\_VAL} \index{MP\_MEM} +\begin{center} +\begin{tabular}{|l|l|} +\hline \textbf{Value} & \textbf{Meaning} \\ +\hline \textbf{MP\_OKAY} & The function was successful \\ +\hline \textbf{MP\_VAL} & One of the input value(s) was invalid \\ +\hline \textbf{MP\_MEM} & The function ran out of heap memory \\ +\hline +\end{tabular} +\end{center} + +When an error is detected within a function it should free any memory it allocated, often during the initialization of +temporary mp\_ints, and return as soon as possible. The goal is to leave the system in the same state it was when the +function was called. Error checking with this style of API is fairly simple. + +\begin{verbatim} + int err; + if ((err = mp_add(&a, &b, &c)) != MP_OKAY) { + printf("Error: %s\n", mp_error_to_string(err)); + exit(EXIT_FAILURE); + } +\end{verbatim} + +The GMP \cite{GMP} library uses C style \textit{signals} to flag errors which is of questionable use. Not all errors are fatal +and it was not deemed ideal by the author of LibTomMath to force developers to have signal handlers for such cases. + +\section{Initialization and Clearing} +The logical starting point when actually writing multiple precision integer functions is the initialization and +clearing of the mp\_int structures. These two algorithms will be used by the majority of the higher level algorithms. + +Given the basic mp\_int structure an initialization routine must first allocate memory to hold the digits of +the integer. Often it is optimal to allocate a sufficiently large pre-set number of digits even though +the initial integer will represent zero. If only a single digit were allocated quite a few subsequent re-allocations +would occur when operations are performed on the integers. There is a tradeoff between how many default digits to allocate +and how many re-allocations are tolerable. Obviously allocating an excessive amount of digits initially will waste +memory and become unmanageable. + +If the memory for the digits has been successfully allocated then the rest of the members of the structure must +be initialized. Since the initial state of an mp\_int is to represent the zero integer, the allocated digits must be set +to zero. The \textbf{used} count set to zero and \textbf{sign} set to \textbf{MP\_ZPOS}. + +\subsection{Initializing an mp\_int} +An mp\_int is said to be initialized if it is set to a valid, preferably default, state such that all of the members of the +structure are set to valid values. The mp\_init algorithm will perform such an action. + +\begin{figure}[here] +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_init}. \\ +\textbf{Input}. An mp\_int $a$ \\ +\textbf{Output}. Allocate memory and initialize $a$ to a known valid mp\_int state. \\ +\hline \\ +1. Allocate memory for \textbf{MP\_PREC} digits. \\ +2. If the allocation failed return(\textit{MP\_MEM}) \\ +3. for $n$ from $0$ to $MP\_PREC - 1$ do \\ +\hspace{3mm}3.1 $a_n \leftarrow 0$\\ +4. $a.sign \leftarrow MP\_ZPOS$\\ +5. $a.used \leftarrow 0$\\ +6. $a.alloc \leftarrow MP\_PREC$\\ +7. Return(\textit{MP\_OKAY})\\ +\hline +\end{tabular} +\end{center} +\caption{Algorithm mp\_init} +\end{figure} + +\textbf{Algorithm mp\_init.} +The \textbf{MP\_PREC} name represents a constant\footnote{Defined in the ``tommath.h'' header file within LibTomMath.} +used to dictate the minimum precision of allocated mp\_int integers. Ideally, it is at least equal to $32$ since for most +purposes that will be more than enough. + +Memory for the default number of digits is allocated first. If the allocation fails the algorithm returns immediately +with the \textbf{MP\_MEM} error code. If the allocation succeeds the remaining members of the mp\_int structure +must be initialized to reflect the default initial state. + +The allocated digits are all set to zero (step three) to ensure they are in a known state. The \textbf{sign}, \textbf{used} +and \textbf{alloc} are subsequently initialized to represent the zero integer. By step seven the algorithm returns a success +code and the mp\_int $a$ has been successfully initialized to a valid state representing the integer zero. + +\textbf{Remark.} +This function introduces the idiosyncrasy that all iterative loops, commonly initiated with the ``for'' keyword, iterate incrementally +when the ``to'' keyword is placed between two expressions. For example, ``for $a$ from $b$ to $c$ do'' means that +a subsequent expression (or body of expressions) are to be evaluated upto $c - b$ times so long as $b \le c$. In each +iteration the variable $a$ is substituted for a new integer that lies inclusively between $b$ and $c$. If $b > c$ occured +the loop would not iterate. By contrast if the ``downto'' keyword were used in place of ``to'' the loop would iterate +decrementally. + +EXAM,bn_mp_init.c + +One immediate observation of this initializtion function is that it does not return a pointer to a mp\_int structure. It +is assumed that the caller has already allocated memory for the mp\_int structure, typically on the application stack. The +call to mp\_init() is used only to initialize the members of the structure to a known default state. + +Before any of the other members of the structure are initialized memory from the application heap is allocated with +the calloc() function (line @22,calloc@). The size of the allocated memory is large enough to hold \textbf{MP\_PREC} +mp\_digit variables. The calloc() function is used instead\footnote{calloc() will allocate memory in the same +manner as malloc() except that it also sets the contents to zero upon successfully allocating the memory.} of malloc() +since digits have to be set to zero for the function to finish correctly. The \textbf{OPT\_CAST} token is a macro +definition which will turn into a cast from void * to mp\_digit * for C++ compilers. It is not required for C compilers. + +After the memory has been successfully allocated the remainder of the members are initialized +(lines @29,used@ through @31,sign@) to their respective default states. At this point the algorithm has succeeded and +a success code is returned to the calling function. + +If this function returns \textbf{MP\_OKAY} it is safe to assume the mp\_int structure has been properly initialized and +is safe to use with other functions within the library. + +\subsection{Clearing an mp\_int} +When an mp\_int is no longer required by the application, the memory that has been allocated for its digits must be +returned to the application's memory pool with the mp\_clear algorithm. + +\begin{figure}[here] +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_clear}. \\ +\textbf{Input}. An mp\_int $a$ \\ +\textbf{Output}. The memory for $a$ is freed for reuse. \\ +\hline \\ +1. If $a$ has been previously freed then return(\textit{MP\_OKAY}). \\ +2. for $n$ from 0 to $a.used - 1$ do \\ +\hspace{3mm}2.1 $a_n \leftarrow 0$ \\ +3. Free the memory allocated for the digits of $a$. \\ +4. $a.used \leftarrow 0$ \\ +5. $a.alloc \leftarrow 0$ \\ +6. $a.sign \leftarrow MP\_ZPOS$ \\ +7. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\caption{Algorithm mp\_clear} +\end{figure} + +\textbf{Algorithm mp\_clear.} +This algorithm releases the memory allocated for an mp\_int back into the memory pool for reuse. It is designed +such that a given mp\_int structure can be cleared multiple times between initializations without attempting to +free the memory twice\footnote{In ISO C for example, calling free() twice on the same memory block causes undefinied +behaviour.}. + +The first step determines if the mp\_int structure has been marked as free already. If it has, the algorithm returns +success immediately as no further actions are required. Otherwise, the algorithm will proceed to put the structure +in a known empty and otherwise invalid state. First the digits of the mp\_int are set to zero. The memory that has been allocated for the +digits is then freed. The \textbf{used} and \textbf{alloc} counts are both set to zero and the \textbf{sign} set to +\textbf{MP\_ZPOS}. This known fixed state for cleared mp\_int structures will make debuging easier for the end +developer. That is, if they spot (via their debugger) an mp\_int they are using that is in this state it will be +obvious that they erroneously and prematurely cleared the mp\_int structure. + +Note that once an mp\_int has been cleared the mp\_int structure is no longer in a valid state for any other algorithm +with the exception of algorithms mp\_init, mp\_init\_copy, mp\_init\_size and mp\_clear. + +EXAM,bn_mp_clear.c + +The ``if'' statement (line @21,a->dp != NULL@) prevents the heap from being corrupted if a user double-frees an +mp\_int. This is because once the memory is freed the pointer is set to \textbf{NULL} (line @30,NULL@). + +Without the check, code that accidentally calls mp\_clear twice for a given mp\_int structure would try to free the memory +allocated for the digits twice. This may cause some C libraries to signal a fault. By setting the pointer to +\textbf{NULL} it helps debug code that may inadvertently free the mp\_int before it is truly not needed, because attempts +to reference digits should fail immediately. The allocated digits are set to zero before being freed (line @24,memset@). +This is ideal for cryptographic situations where the integer that the mp\_int represents might need to be kept a secret. + +\section{Maintenance Algorithms} + +The previous sections describes how to initialize and clear an mp\_int structure. To further support operations +that are to be performed on mp\_int structures (such as addition and multiplication) the dependent algorithms must be +able to augment the precision of an mp\_int and +initialize mp\_ints with differing initial conditions. + +These algorithms complete the set of low level algorithms required to work with mp\_int structures in the higher level +algorithms such as addition, multiplication and modular exponentiation. + +\subsection{Augmenting an mp\_int's Precision} +When storing a value in an mp\_int structure, a sufficient number of digits must be available to accomodate the entire +result of an operation without loss of precision. Quite often the size of the array given by the \textbf{alloc} member +is large enough to simply increase the \textbf{used} digit count. However, when the size of the array is too small it +must be re-sized appropriately to accomodate the result. The mp\_grow algorithm will provide this functionality. + +\newpage\begin{figure}[here] +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_grow}. \\ +\textbf{Input}. An mp\_int $a$ and an integer $b$. \\ +\textbf{Output}. $a$ is expanded to accomodate $b$ digits. \\ +\hline \\ +1. if $a.alloc \ge b$ then return(\textit{MP\_OKAY}) \\ +2. $u \leftarrow b\mbox{ (mod }MP\_PREC\mbox{)}$ \\ +3. $v \leftarrow b + 2 \cdot MP\_PREC - u$ \\ +4. Re-Allocate the array of digits $a$ to size $v$ \\ +5. If the allocation failed then return(\textit{MP\_MEM}). \\ +6. for n from a.alloc to $v - 1$ do \\ +\hspace{+3mm}6.1 $a_n \leftarrow 0$ \\ +7. $a.alloc \leftarrow v$ \\ +8. Return(\textit{MP\_OKAY}) \\ +\hline +\end{tabular} +\end{center} +\caption{Algorithm mp\_grow} +\end{figure} + +\textbf{Algorithm mp\_grow.} +It is ideal to prevent re-allocations from being performed if they are not required (step one). This is useful to +prevent mp\_ints from growing excessively in code that erroneously calls mp\_grow. + +The requested digit count is padded up to next multiple of \textbf{MP\_PREC} plus an additional \textbf{MP\_PREC} (steps two and three). +This helps prevent many trivial reallocations that would grow an mp\_int by trivially small values. + +It is assumed that the reallocation (step four) leaves the lower $a.alloc$ digits of the mp\_int intact. This is much +akin to how the \textit{realloc} function from the standard C library works. Since the newly allocated digits are +assumed to contain undefined values they are initially set to zero. + +EXAM,bn_mp_grow.c + +The first step is to see if we actually need to perform a re-allocation at all (line @24,a->alloc < size@). If a reallocation +must occur the digit count is padded upwards to help prevent many trivial reallocations (line @28,size@). Next the reallocation is performed +and the return of realloc() is stored in a temporary pointer named $tmp$ (line @36,realloc@). The return is stored in a temporary +instead of $a.dp$ to prevent the code from losing the original pointer in case the reallocation fails. Had the return been stored +in $a.dp$ instead there would be no way to reclaim the heap originally used. + +If the reallocation fails the function will return \textbf{MP\_MEM} (line @39,return@), otherwise, the value of $tmp$ is assigned +to the pointer $a.dp$ and the function continues. A simple for loop from line @48,a->alloc@ to line @50,}@ will zero all digits +that were above the old \textbf{alloc} limit to make sure the integer is in a known state. + +\subsection{Initializing Variable Precision mp\_ints} +Occasionally the number of digits required will be known in advance of an initialization, based on, for example, the size +of input mp\_ints to a given algorithm. The purpose of algorithm mp\_init\_size is similar to mp\_init except that it +will allocate \textit{at least} a specified number of digits. + +\begin{figure}[here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_init\_size}. \\ +\textbf{Input}. An mp\_int $a$ and the requested number of digits $b$. \\ +\textbf{Output}. $a$ is initialized to hold at least $b$ digits. \\ +\hline \\ +1. $u \leftarrow b \mbox{ (mod }MP\_PREC\mbox{)}$ \\ +2. $v \leftarrow b + 2 \cdot MP\_PREC - u$ \\ +3. Allocate $v$ digits. \\ +4. for $n$ from $0$ to $v - 1$ do \\ +\hspace{3mm}4.1 $a_n \leftarrow 0$ \\ +5. $a.sign \leftarrow MP\_ZPOS$\\ +6. $a.used \leftarrow 0$\\ +7. $a.alloc \leftarrow v$\\ +8. Return(\textit{MP\_OKAY})\\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_init\_size} +\end{figure} + +\textbf{Algorithm mp\_init\_size.} +This algorithm will initialize an mp\_int structure $a$ like algorithm mp\_init with the exception that the number of +digits allocated can be controlled by the second input argument $b$. The input size is padded upwards so it is a +multiple of \textbf{MP\_PREC} plus an additional \textbf{MP\_PREC} digits. This padding is used to prevent trivial +allocations from becoming a bottleneck in the rest of the algorithms. + +Like algorithm mp\_init, the mp\_int structure is initialized to a default state representing the integer zero. This +particular algorithm is useful if it is known ahead of time the approximate size of the input. If the approximation is +correct no further memory re-allocations are required to work with the mp\_int. + +EXAM,bn_mp_init_size.c + +The number of digits $b$ requested is padded (line @22,MP_PREC@) by first augmenting it to the next multiple of +\textbf{MP\_PREC} and then adding \textbf{MP\_PREC} to the result. If the memory can be successfully allocated the +mp\_int is placed in a default state representing the integer zero. Otherwise, the error code \textbf{MP\_MEM} will be +returned (line @27,return@). + +The digits are allocated and set to zero at the same time with the calloc() function (line @25,calloc@). The +\textbf{used} count is set to zero, the \textbf{alloc} count set to the padded digit count and the \textbf{sign} flag set +to \textbf{MP\_ZPOS} to achieve a default valid mp\_int state (lines @29,used@, @30,alloc@ and @31,sign@). If the function +returns succesfully then it is correct to assume that the mp\_int structure is in a valid state for the remainder of the +functions to work with. + +\subsection{Multiple Integer Initializations and Clearings} +Occasionally a function will require a series of mp\_int data types to be made available simultaneously. +The purpose of algorithm mp\_init\_multi is to initialize a variable length array of mp\_int structures in a single +statement. It is essentially a shortcut to multiple initializations. + +\newpage\begin{figure}[here] +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_init\_multi}. \\ +\textbf{Input}. Variable length array $V_k$ of mp\_int variables of length $k$. \\ +\textbf{Output}. The array is initialized such that each mp\_int of $V_k$ is ready to use. \\ +\hline \\ +1. for $n$ from 0 to $k - 1$ do \\ +\hspace{+3mm}1.1. Initialize the mp\_int $V_n$ (\textit{mp\_init}) \\ +\hspace{+3mm}1.2. If initialization failed then do \\ +\hspace{+6mm}1.2.1. for $j$ from $0$ to $n$ do \\ +\hspace{+9mm}1.2.1.1. Free the mp\_int $V_j$ (\textit{mp\_clear}) \\ +\hspace{+6mm}1.2.2. Return(\textit{MP\_MEM}) \\ +2. Return(\textit{MP\_OKAY}) \\ +\hline +\end{tabular} +\end{center} +\caption{Algorithm mp\_init\_multi} +\end{figure} + +\textbf{Algorithm mp\_init\_multi.} +The algorithm will initialize the array of mp\_int variables one at a time. If a runtime error has been detected +(\textit{step 1.2}) all of the previously initialized variables are cleared. The goal is an ``all or nothing'' +initialization which allows for quick recovery from runtime errors. + +EXAM,bn_mp_init_multi.c + +This function intializes a variable length list of mp\_int structure pointers. However, instead of having the mp\_int +structures in an actual C array they are simply passed as arguments to the function. This function makes use of the +``...'' argument syntax of the C programming language. The list is terminated with a final \textbf{NULL} argument +appended on the right. + +The function uses the ``stdarg.h'' \textit{va} functions to step portably through the arguments to the function. A count +$n$ of succesfully initialized mp\_int structures is maintained (line @47,n++@) such that if a failure does occur, +the algorithm can backtrack and free the previously initialized structures (lines @27,if@ to @46,}@). + + +\subsection{Clamping Excess Digits} +When a function anticipates a result will be $n$ digits it is simpler to assume this is true within the body of +the function instead of checking during the computation. For example, a multiplication of a $i$ digit number by a +$j$ digit produces a result of at most $i + j$ digits. It is entirely possible that the result is $i + j - 1$ +though, with no final carry into the last position. However, suppose the destination had to be first expanded +(\textit{via mp\_grow}) to accomodate $i + j - 1$ digits than further expanded to accomodate the final carry. +That would be a considerable waste of time since heap operations are relatively slow. + +The ideal solution is to always assume the result is $i + j$ and fix up the \textbf{used} count after the function +terminates. This way a single heap operation (\textit{at most}) is required. However, if the result was not checked +there would be an excess high order zero digit. + +For example, suppose the product of two integers was $x_n = (0x_{n-1}x_{n-2}...x_0)_{\beta}$. The leading zero digit +will not contribute to the precision of the result. In fact, through subsequent operations more leading zero digits would +accumulate to the point the size of the integer would be prohibitive. As a result even though the precision is very +low the representation is excessively large. + +The mp\_clamp algorithm is designed to solve this very problem. It will trim high-order zeros by decrementing the +\textbf{used} count until a non-zero most significant digit is found. Also in this system, zero is considered to be a +positive number which means that if the \textbf{used} count is decremented to zero, the sign must be set to +\textbf{MP\_ZPOS}. + +\begin{figure}[here] +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_clamp}. \\ +\textbf{Input}. An mp\_int $a$ \\ +\textbf{Output}. Any excess leading zero digits of $a$ are removed \\ +\hline \\ +1. while $a.used > 0$ and $a_{a.used - 1} = 0$ do \\ +\hspace{+3mm}1.1 $a.used \leftarrow a.used - 1$ \\ +2. if $a.used = 0$ then do \\ +\hspace{+3mm}2.1 $a.sign \leftarrow MP\_ZPOS$ \\ +\hline \\ +\end{tabular} +\end{center} +\caption{Algorithm mp\_clamp} +\end{figure} + +\textbf{Algorithm mp\_clamp.} +As can be expected this algorithm is very simple. The loop on step one is expected to iterate only once or twice at +the most. For example, this will happen in cases where there is not a carry to fill the last position. Step two fixes the sign for +when all of the digits are zero to ensure that the mp\_int is valid at all times. + +EXAM,bn_mp_clamp.c + +Note on line @27,while@ how to test for the \textbf{used} count is made on the left of the \&\& operator. In the C programming +language the terms to \&\& are evaluated left to right with a boolean short-circuit if any condition fails. This is +important since if the \textbf{used} is zero the test on the right would fetch below the array. That is obviously +undesirable. The parenthesis on line @28,a->used@ is used to make sure the \textbf{used} count is decremented and not +the pointer ``a''. + +\section*{Exercises} +\begin{tabular}{cl} +$\left [ 1 \right ]$ & Discuss the relevance of the \textbf{used} member of the mp\_int structure. \\ + & \\ +$\left [ 1 \right ]$ & Discuss the consequences of not using padding when performing allocations. \\ + & \\ +$\left [ 2 \right ]$ & Estimate an ideal value for \textbf{MP\_PREC} when performing 1024-bit RSA \\ + & encryption when $\beta = 2^{28}$. \\ + & \\ +$\left [ 1 \right ]$ & Discuss the relevance of the algorithm mp\_clamp. What does it prevent? \\ + & \\ +$\left [ 1 \right ]$ & Give an example of when the algorithm mp\_init\_copy might be useful. \\ + & \\ +\end{tabular} + + +%%% +% CHAPTER FOUR +%%% + +\chapter{Basic Operations} + +\section{Introduction} +In the previous chapter a series of low level algorithms were established that dealt with initializing and maintaining +mp\_int structures. This chapter will discuss another set of seemingly non-algebraic algorithms which will form the low +level basis of the entire library. While these algorithm are relatively trivial it is important to understand how they +work before proceeding since these algorithms will be used almost intrinsically in the following chapters. + +The algorithms in this chapter deal primarily with more ``programmer'' related tasks such as creating copies of +mp\_int structures, assigning small values to mp\_int structures and comparisons of the values mp\_int structures +represent. + +\section{Assigning Values to mp\_int Structures} +\subsection{Copying an mp\_int} +Assigning the value that a given mp\_int structure represents to another mp\_int structure shall be known as making +a copy for the purposes of this text. The copy of the mp\_int will be a separate entity that represents the same +value as the mp\_int it was copied from. The mp\_copy algorithm provides this functionality. + +\newpage\begin{figure}[here] +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_copy}. \\ +\textbf{Input}. An mp\_int $a$ and $b$. \\ +\textbf{Output}. Store a copy of $a$ in $b$. \\ +\hline \\ +1. If $b.alloc < a.used$ then grow $b$ to $a.used$ digits. (\textit{mp\_grow}) \\ +2. for $n$ from 0 to $a.used - 1$ do \\ +\hspace{3mm}2.1 $b_{n} \leftarrow a_{n}$ \\ +3. for $n$ from $a.used$ to $b.used - 1$ do \\ +\hspace{3mm}3.1 $b_{n} \leftarrow 0$ \\ +4. $b.used \leftarrow a.used$ \\ +5. $b.sign \leftarrow a.sign$ \\ +6. return(\textit{MP\_OKAY}) \\ +\hline +\end{tabular} +\end{center} +\caption{Algorithm mp\_copy} +\end{figure} + +\textbf{Algorithm mp\_copy.} +This algorithm copies the mp\_int $a$ such that upon succesful termination of the algorithm the mp\_int $b$ will +represent the same integer as the mp\_int $a$. The mp\_int $b$ shall be a complete and distinct copy of the +mp\_int $a$ meaing that the mp\_int $a$ can be modified and it shall not affect the value of the mp\_int $b$. + +If $b$ does not have enough room for the digits of $a$ it must first have its precision augmented via the mp\_grow +algorithm. The digits of $a$ are copied over the digits of $b$ and any excess digits of $b$ are set to zero (step two +and three). The \textbf{used} and \textbf{sign} members of $a$ are finally copied over the respective members of +$b$. + +\textbf{Remark.} This algorithm also introduces a new idiosyncrasy that will be used throughout the rest of the +text. The error return codes of other algorithms are not explicitly checked in the pseudo-code presented. For example, in +step one of the mp\_copy algorithm the return of mp\_grow is not explicitly checked to ensure it succeeded. Text space is +limited so it is assumed that if a algorithm fails it will clear all temporarily allocated mp\_ints and return +the error code itself. However, the C code presented will demonstrate all of the error handling logic required to +implement the pseudo-code. + +EXAM,bn_mp_copy.c + +Occasionally a dependent algorithm may copy an mp\_int effectively into itself such as when the input and output +mp\_int structures passed to a function are one and the same. For this case it is optimal to return immediately without +copying digits (line @24,a == b@). + +The mp\_int $b$ must have enough digits to accomodate the used digits of the mp\_int $a$. If $b.alloc$ is less than +$a.used$ the algorithm mp\_grow is used to augment the precision of $b$ (lines @29,alloc@ to @33,}@). In order to +simplify the inner loop that copies the digits from $a$ to $b$, two aliases $tmpa$ and $tmpb$ point directly at the digits +of the mp\_ints $a$ and $b$ respectively. These aliases (lines @42,tmpa@ and @45,tmpb@) allow the compiler to access the digits without first dereferencing the +mp\_int pointers and then subsequently the pointer to the digits. + +After the aliases are established the digits from $a$ are copied into $b$ (lines @48,for@ to @50,}@) and then the excess +digits of $b$ are set to zero (lines @53,for@ to @55,}@). Both ``for'' loops make use of the pointer aliases and in +fact the alias for $b$ is carried through into the second ``for'' loop to clear the excess digits. This optimization +allows the alias to stay in a machine register fairly easy between the two loops. + +\textbf{Remarks.} The use of pointer aliases is an implementation methodology first introduced in this function that will +be used considerably in other functions. Technically, a pointer alias is simply a short hand alias used to lower the +number of pointer dereferencing operations required to access data. For example, a for loop may resemble + +\begin{alltt} +for (x = 0; x < 100; x++) \{ + a->num[4]->dp[x] = 0; +\} +\end{alltt} + +This could be re-written using aliases as + +\begin{alltt} +mp_digit *tmpa; +a = a->num[4]->dp; +for (x = 0; x < 100; x++) \{ + *a++ = 0; +\} +\end{alltt} + +In this case an alias is used to access the +array of digits within an mp\_int structure directly. It may seem that a pointer alias is strictly not required +as a compiler may optimize out the redundant pointer operations. However, there are two dominant reasons to use aliases. + +The first reason is that most compilers will not effectively optimize pointer arithmetic. For example, some optimizations +may work for the Microsoft Visual C++ compiler (MSVC) and not for the GNU C Compiler (GCC). Also some optimizations may +work for GCC and not MSVC. As such it is ideal to find a common ground for as many compilers as possible. Pointer +aliases optimize the code considerably before the compiler even reads the source code which means the end compiled code +stands a better chance of being faster. + +The second reason is that pointer aliases often can make an algorithm simpler to read. Consider the first ``for'' +loop of the function mp\_copy() re-written to not use pointer aliases. + +\begin{alltt} + /* copy all the digits */ + for (n = 0; n < a->used; n++) \{ + b->dp[n] = a->dp[n]; + \} +\end{alltt} + +Whether this code is harder to read depends strongly on the individual. However, it is quantifiably slightly more +complicated as there are four variables within the statement instead of just two. + +\subsubsection{Nested Statements} +Another commonly used technique in the source routines is that certain sections of code are nested. This is used in +particular with the pointer aliases to highlight code phases. For example, a Comba multiplier (discussed in chapter six) +will typically have three different phases. First the temporaries are initialized, then the columns calculated and +finally the carries are propagated. In this example the middle column production phase will typically be nested as it +uses temporary variables and aliases the most. + +The nesting also simplies the source code as variables that are nested are only valid for their scope. As a result +the various temporary variables required do not propagate into other sections of code. + + +\subsection{Creating a Clone} +Another common operation is to make a local temporary copy of an mp\_int argument. To initialize an mp\_int +and then copy another existing mp\_int into the newly intialized mp\_int will be known as creating a clone. This is +useful within functions that need to modify an argument but do not wish to actually modify the original copy. The +mp\_init\_copy algorithm has been designed to help perform this task. + +\begin{figure}[here] +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_init\_copy}. \\ +\textbf{Input}. An mp\_int $a$ and $b$\\ +\textbf{Output}. $a$ is initialized to be a copy of $b$. \\ +\hline \\ +1. Init $a$. (\textit{mp\_init}) \\ +2. Copy $b$ to $a$. (\textit{mp\_copy}) \\ +3. Return the status of the copy operation. \\ +\hline +\end{tabular} +\end{center} +\caption{Algorithm mp\_init\_copy} +\end{figure} + +\textbf{Algorithm mp\_init\_copy.} +This algorithm will initialize an mp\_int variable and copy another previously initialized mp\_int variable into it. As +such this algorithm will perform two operations in one step. + +EXAM,bn_mp_init_copy.c + +This will initialize \textbf{a} and make it a verbatim copy of the contents of \textbf{b}. Note that +\textbf{a} will have its own memory allocated which means that \textbf{b} may be cleared after the call +and \textbf{a} will be left intact. + +\section{Zeroing an Integer} +Reseting an mp\_int to the default state is a common step in many algorithms. The mp\_zero algorithm will be the algorithm used to +perform this task. + +\begin{figure}[here] +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_zero}. \\ +\textbf{Input}. An mp\_int $a$ \\ +\textbf{Output}. Zero the contents of $a$ \\ +\hline \\ +1. $a.used \leftarrow 0$ \\ +2. $a.sign \leftarrow$ MP\_ZPOS \\ +3. for $n$ from 0 to $a.alloc - 1$ do \\ +\hspace{3mm}3.1 $a_n \leftarrow 0$ \\ +\hline +\end{tabular} +\end{center} +\caption{Algorithm mp\_zero} +\end{figure} + +\textbf{Algorithm mp\_zero.} +This algorithm simply resets a mp\_int to the default state. + +EXAM,bn_mp_zero.c + +After the function is completed, all of the digits are zeroed, the \textbf{used} count is zeroed and the +\textbf{sign} variable is set to \textbf{MP\_ZPOS}. + +\section{Sign Manipulation} +\subsection{Absolute Value} +With the mp\_int representation of an integer, calculating the absolute value is trivial. The mp\_abs algorithm will compute +the absolute value of an mp\_int. + +\newpage\begin{figure}[here] +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_abs}. \\ +\textbf{Input}. An mp\_int $a$ \\ +\textbf{Output}. Computes $b = \vert a \vert$ \\ +\hline \\ +1. Copy $a$ to $b$. (\textit{mp\_copy}) \\ +2. If the copy failed return(\textit{MP\_MEM}). \\ +3. $b.sign \leftarrow MP\_ZPOS$ \\ +4. Return(\textit{MP\_OKAY}) \\ +\hline +\end{tabular} +\end{center} +\caption{Algorithm mp\_abs} +\end{figure} + +\textbf{Algorithm mp\_abs.} +This algorithm computes the absolute of an mp\_int input. First it copies $a$ over $b$. This is an example of an +algorithm where the check in mp\_copy that determines if the source and destination are equal proves useful. This allows, +for instance, the developer to pass the same mp\_int as the source and destination to this function without addition +logic to handle it. + +EXAM,bn_mp_abs.c + +\subsection{Integer Negation} +With the mp\_int representation of an integer, calculating the negation is also trivial. The mp\_neg algorithm will compute +the negative of an mp\_int input. + +\begin{figure}[here] +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_neg}. \\ +\textbf{Input}. An mp\_int $a$ \\ +\textbf{Output}. Computes $b = -a$ \\ +\hline \\ +1. Copy $a$ to $b$. (\textit{mp\_copy}) \\ +2. If the copy failed return(\textit{MP\_MEM}). \\ +3. If $a.used = 0$ then return(\textit{MP\_OKAY}). \\ +4. If $a.sign = MP\_ZPOS$ then do \\ +\hspace{3mm}4.1 $b.sign = MP\_NEG$. \\ +5. else do \\ +\hspace{3mm}5.1 $b.sign = MP\_ZPOS$. \\ +6. Return(\textit{MP\_OKAY}) \\ +\hline +\end{tabular} +\end{center} +\caption{Algorithm mp\_neg} +\end{figure} + +\textbf{Algorithm mp\_neg.} +This algorithm computes the negation of an input. First it copies $a$ over $b$. If $a$ has no used digits then +the algorithm returns immediately. Otherwise it flips the sign flag and stores the result in $b$. Note that if +$a$ had no digits then it must be positive by definition. Had step three been omitted then the algorithm would return +zero as negative. + +EXAM,bn_mp_neg.c + +\section{Small Constants} +\subsection{Setting Small Constants} +Often a mp\_int must be set to a relatively small value such as $1$ or $2$. For these cases the mp\_set algorithm is useful. + +\begin{figure}[here] +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_set}. \\ +\textbf{Input}. An mp\_int $a$ and a digit $b$ \\ +\textbf{Output}. Make $a$ equivalent to $b$ \\ +\hline \\ +1. Zero $a$ (\textit{mp\_zero}). \\ +2. $a_0 \leftarrow b \mbox{ (mod }\beta\mbox{)}$ \\ +3. $a.used \leftarrow \left \lbrace \begin{array}{ll} + 1 & \mbox{if }a_0 > 0 \\ + 0 & \mbox{if }a_0 = 0 + \end{array} \right .$ \\ +\hline +\end{tabular} +\end{center} +\caption{Algorithm mp\_set} +\end{figure} + +\textbf{Algorithm mp\_set.} +This algorithm sets a mp\_int to a small single digit value. Step number 1 ensures that the integer is reset to the default state. The +single digit is set (\textit{modulo $\beta$}) and the \textbf{used} count is adjusted accordingly. + +EXAM,bn_mp_set.c + +Line @21,mp_zero@ calls mp\_zero() to clear the mp\_int and reset the sign. Line @22,MP_MASK@ copies the digit +into the least significant location. Note the usage of a new constant \textbf{MP\_MASK}. This constant is used to quickly +reduce an integer modulo $\beta$. Since $\beta$ is of the form $2^k$ for any suitable $k$ it suffices to perform a binary AND with +$MP\_MASK = 2^k - 1$ to perform the reduction. Finally line @23,a->used@ will set the \textbf{used} member with respect to the +digit actually set. This function will always make the integer positive. + +One important limitation of this function is that it will only set one digit. The size of a digit is not fixed, meaning source that uses +this function should take that into account. Only trivially small constants can be set using this function. + +\subsection{Setting Large Constants} +To overcome the limitations of the mp\_set algorithm the mp\_set\_int algorithm is ideal. It accepts a ``long'' +data type as input and will always treat it as a 32-bit integer. + +\begin{figure}[here] +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_set\_int}. \\ +\textbf{Input}. An mp\_int $a$ and a ``long'' integer $b$ \\ +\textbf{Output}. Make $a$ equivalent to $b$ \\ +\hline \\ +1. Zero $a$ (\textit{mp\_zero}) \\ +2. for $n$ from 0 to 7 do \\ +\hspace{3mm}2.1 $a \leftarrow a \cdot 16$ (\textit{mp\_mul2d}) \\ +\hspace{3mm}2.2 $u \leftarrow \lfloor b / 2^{4(7 - n)} \rfloor \mbox{ (mod }16\mbox{)}$\\ +\hspace{3mm}2.3 $a_0 \leftarrow a_0 + u$ \\ +\hspace{3mm}2.4 $a.used \leftarrow a.used + 1$ \\ +3. Clamp excess used digits (\textit{mp\_clamp}) \\ +\hline +\end{tabular} +\end{center} +\caption{Algorithm mp\_set\_int} +\end{figure} + +\textbf{Algorithm mp\_set\_int.} +The algorithm performs eight iterations of a simple loop where in each iteration four bits from the source are added to the +mp\_int. Step 2.1 will multiply the current result by sixteen making room for four more bits in the less significant positions. In step 2.2 the +next four bits from the source are extracted and are added to the mp\_int. The \textbf{used} digit count is +incremented to reflect the addition. The \textbf{used} digit counter is incremented since if any of the leading digits were zero the mp\_int would have +zero digits used and the newly added four bits would be ignored. + +Excess zero digits are trimmed in steps 2.1 and 3 by using higher level algorithms mp\_mul2d and mp\_clamp. + +EXAM,bn_mp_set_int.c + +This function sets four bits of the number at a time to handle all practical \textbf{DIGIT\_BIT} sizes. The weird +addition on line @38,a->used@ ensures that the newly added in bits are added to the number of digits. While it may not +seem obvious as to why the digit counter does not grow exceedingly large it is because of the shift on line @27,mp_mul_2d@ +as well as the call to mp\_clamp() on line @40,mp_clamp@. Both functions will clamp excess leading digits which keeps +the number of used digits low. + +\section{Comparisons} +\subsection{Unsigned Comparisions} +Comparing a multiple precision integer is performed with the exact same algorithm used to compare two decimal numbers. For example, +to compare $1,234$ to $1,264$ the digits are extracted by their positions. That is we compare $1 \cdot 10^3 + 2 \cdot 10^2 + 3 \cdot 10^1 + 4 \cdot 10^0$ +to $1 \cdot 10^3 + 2 \cdot 10^2 + 6 \cdot 10^1 + 4 \cdot 10^0$ by comparing single digits at a time starting with the highest magnitude +positions. If any leading digit of one integer is greater than a digit in the same position of another integer then obviously it must be greater. + +The first comparision routine that will be developed is the unsigned magnitude compare which will perform a comparison based on the digits of two +mp\_int variables alone. It will ignore the sign of the two inputs. Such a function is useful when an absolute comparison is required or if the +signs are known to agree in advance. + +To facilitate working with the results of the comparison functions three constants are required. + +\begin{figure}[here] +\begin{center} +\begin{tabular}{|r|l|} +\hline \textbf{Constant} & \textbf{Meaning} \\ +\hline \textbf{MP\_GT} & Greater Than \\ +\hline \textbf{MP\_EQ} & Equal To \\ +\hline \textbf{MP\_LT} & Less Than \\ +\hline +\end{tabular} +\end{center} +\caption{Comparison Return Codes} +\end{figure} + +\begin{figure}[here] +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_cmp\_mag}. \\ +\textbf{Input}. Two mp\_ints $a$ and $b$. \\ +\textbf{Output}. Unsigned comparison results ($a$ to the left of $b$). \\ +\hline \\ +1. If $a.used > b.used$ then return(\textit{MP\_GT}) \\ +2. If $a.used < b.used$ then return(\textit{MP\_LT}) \\ +3. for n from $a.used - 1$ to 0 do \\ +\hspace{+3mm}3.1 if $a_n > b_n$ then return(\textit{MP\_GT}) \\ +\hspace{+3mm}3.2 if $a_n < b_n$ then return(\textit{MP\_LT}) \\ +4. Return(\textit{MP\_EQ}) \\ +\hline +\end{tabular} +\end{center} +\caption{Algorithm mp\_cmp\_mag} +\end{figure} + +\textbf{Algorithm mp\_cmp\_mag.} +By saying ``$a$ to the left of $b$'' it is meant that the comparison is with respect to $a$, that is if $a$ is greater than $b$ it will return +\textbf{MP\_GT} and similar with respect to when $a = b$ and $a < b$. The first two steps compare the number of digits used in both $a$ and $b$. +Obviously if the digit counts differ there would be an imaginary zero digit in the smaller number where the leading digit of the larger number is. +If both have the same number of digits than the actual digits themselves must be compared starting at the leading digit. + +By step three both inputs must have the same number of digits so its safe to start from either $a.used - 1$ or $b.used - 1$ and count down to +the zero'th digit. If after all of the digits have been compared, no difference is found, the algorithm returns \textbf{MP\_EQ}. + +EXAM,bn_mp_cmp_mag.c + +The two if statements on lines @24,if@ and @28,if@ compare the number of digits in the two inputs. These two are performed before all of the digits +are compared since it is a very cheap test to perform and can potentially save considerable time. The implementation given is also not valid +without those two statements. $b.alloc$ may be smaller than $a.used$, meaning that undefined values will be read from $b$ past the end of the +array of digits. + +\subsection{Signed Comparisons} +Comparing with sign considerations is also fairly critical in several routines (\textit{division for example}). Based on an unsigned magnitude +comparison a trivial signed comparison algorithm can be written. + +\begin{figure}[here] +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_cmp}. \\ +\textbf{Input}. Two mp\_ints $a$ and $b$ \\ +\textbf{Output}. Signed Comparison Results ($a$ to the left of $b$) \\ +\hline \\ +1. if $a.sign = MP\_NEG$ and $b.sign = MP\_ZPOS$ then return(\textit{MP\_LT}) \\ +2. if $a.sign = MP\_ZPOS$ and $b.sign = MP\_NEG$ then return(\textit{MP\_GT}) \\ +3. if $a.sign = MP\_NEG$ then \\ +\hspace{+3mm}3.1 Return the unsigned comparison of $b$ and $a$ (\textit{mp\_cmp\_mag}) \\ +4 Otherwise \\ +\hspace{+3mm}4.1 Return the unsigned comparison of $a$ and $b$ \\ +\hline +\end{tabular} +\end{center} +\caption{Algorithm mp\_cmp} +\end{figure} + +\textbf{Algorithm mp\_cmp.} +The first two steps compare the signs of the two inputs. If the signs do not agree then it can return right away with the appropriate +comparison code. When the signs are equal the digits of the inputs must be compared to determine the correct result. In step +three the unsigned comparision flips the order of the arguments since they are both negative. For instance, if $-a > -b$ then +$\vert a \vert < \vert b \vert$. Step number four will compare the two when they are both positive. + +EXAM,bn_mp_cmp.c + +The two if statements on lines @22,if@ and @26,if@ perform the initial sign comparison. If the signs are not the equal then which ever +has the positive sign is larger. At line @30,if@, the inputs are compared based on magnitudes. If the signs were both negative then +the unsigned comparison is performed in the opposite direction (\textit{line @31,mp_cmp_mag@}). Otherwise, the signs are assumed to +be both positive and a forward direction unsigned comparison is performed. + +\section*{Exercises} +\begin{tabular}{cl} +$\left [ 2 \right ]$ & Modify algorithm mp\_set\_int to accept as input a variable length array of bits. \\ + & \\ +$\left [ 3 \right ]$ & Give the probability that algorithm mp\_cmp\_mag will have to compare $k$ digits \\ + & of two random digits (of equal magnitude) before a difference is found. \\ + & \\ +$\left [ 1 \right ]$ & Suggest a simple method to speed up the implementation of mp\_cmp\_mag based \\ + & on the observations made in the previous problem. \\ + & +\end{tabular} + +\chapter{Basic Arithmetic} +\section{Introduction} +At this point algorithms for initialization, clearing, zeroing, copying, comparing and setting small constants have been +established. The next logical set of algorithms to develop are addition, subtraction and digit shifting algorithms. These +algorithms make use of the lower level algorithms and are the cruicial building block for the multiplication algorithms. It is very important +that these algorithms are highly optimized. On their own they are simple $O(n)$ algorithms but they can be called from higher level algorithms +which easily places them at $O(n^2)$ or even $O(n^3)$ work levels. + +MARK,SHIFTS +All of the algorithms within this chapter make use of the logical bit shift operations denoted by $<<$ and $>>$ for left and right +logical shifts respectively. A logical shift is analogous to sliding the decimal point of radix-10 representations. For example, the real +number $0.9345$ is equivalent to $93.45\%$ which is found by sliding the the decimal two places to the right (\textit{multiplying by $\beta^2 = 10^2$}). +Algebraically a binary logical shift is equivalent to a division or multiplication by a power of two. +For example, $a << k = a \cdot 2^k$ while $a >> k = \lfloor a/2^k \rfloor$. + +One significant difference between a logical shift and the way decimals are shifted is that digits below the zero'th position are removed +from the number. For example, consider $1101_2 >> 1$ using decimal notation this would produce $110.1_2$. However, with a logical shift the +result is $110_2$. + +\section{Addition and Subtraction} +In common twos complement fixed precision arithmetic negative numbers are easily represented by subtraction from the modulus. For example, with 32-bit integers +$a - b\mbox{ (mod }2^{32}\mbox{)}$ is the same as $a + (2^{32} - b) \mbox{ (mod }2^{32}\mbox{)}$ since $2^{32} \equiv 0 \mbox{ (mod }2^{32}\mbox{)}$. +As a result subtraction can be performed with a trivial series of logical operations and an addition. + +However, in multiple precision arithmetic negative numbers are not represented in the same way. Instead a sign flag is used to keep track of the +sign of the integer. As a result signed addition and subtraction are actually implemented as conditional usage of lower level addition or +subtraction algorithms with the sign fixed up appropriately. + +The lower level algorithms will add or subtract integers without regard to the sign flag. That is they will add or subtract the magnitude of +the integers respectively. + +\subsection{Low Level Addition} +An unsigned addition of multiple precision integers is performed with the same long-hand algorithm used to add decimal numbers. That is to add the +trailing digits first and propagate the resulting carry upwards. Since this is a lower level algorithm the name will have a ``s\_'' prefix. +Historically that convention stems from the MPI library where ``s\_'' stood for static functions that were hidden from the developer entirely. + +\newpage +\begin{figure}[!here] +\begin{center} +\begin{small} +\begin{tabular}{l} +\hline Algorithm \textbf{s\_mp\_add}. \\ +\textbf{Input}. Two mp\_ints $a$ and $b$ \\ +\textbf{Output}. The unsigned addition $c = \vert a \vert + \vert b \vert$. \\ +\hline \\ +1. if $a.used > b.used$ then \\ +\hspace{+3mm}1.1 $min \leftarrow b.used$ \\ +\hspace{+3mm}1.2 $max \leftarrow a.used$ \\ +\hspace{+3mm}1.3 $x \leftarrow a$ \\ +2. else \\ +\hspace{+3mm}2.1 $min \leftarrow a.used$ \\ +\hspace{+3mm}2.2 $max \leftarrow b.used$ \\ +\hspace{+3mm}2.3 $x \leftarrow b$ \\ +3. If $c.alloc < max + 1$ then grow $c$ to hold at least $max + 1$ digits (\textit{mp\_grow}) \\ +4. $oldused \leftarrow c.used$ \\ +5. $c.used \leftarrow max + 1$ \\ +6. $u \leftarrow 0$ \\ +7. for $n$ from $0$ to $min - 1$ do \\ +\hspace{+3mm}7.1 $c_n \leftarrow a_n + b_n + u$ \\ +\hspace{+3mm}7.2 $u \leftarrow c_n >> lg(\beta)$ \\ +\hspace{+3mm}7.3 $c_n \leftarrow c_n \mbox{ (mod }\beta\mbox{)}$ \\ +8. if $min \ne max$ then do \\ +\hspace{+3mm}8.1 for $n$ from $min$ to $max - 1$ do \\ +\hspace{+6mm}8.1.1 $c_n \leftarrow x_n + u$ \\ +\hspace{+6mm}8.1.2 $u \leftarrow c_n >> lg(\beta)$ \\ +\hspace{+6mm}8.1.3 $c_n \leftarrow c_n \mbox{ (mod }\beta\mbox{)}$ \\ +9. $c_{max} \leftarrow u$ \\ +10. if $olduse > max$ then \\ +\hspace{+3mm}10.1 for $n$ from $max + 1$ to $oldused - 1$ do \\ +\hspace{+6mm}10.1.1 $c_n \leftarrow 0$ \\ +11. Clamp excess digits in $c$. (\textit{mp\_clamp}) \\ +12. Return(\textit{MP\_OKAY}) \\ +\hline +\end{tabular} +\end{small} +\end{center} +\caption{Algorithm s\_mp\_add} +\end{figure} + +\textbf{Algorithm s\_mp\_add.} +This algorithm is loosely based on algorithm 14.7 of HAC \cite[pp. 594]{HAC} but has been extended to allow the inputs to have different magnitudes. +Coincidentally the description of algorithm A in Knuth \cite[pp. 266]{TAOCPV2} shares the same deficiency as the algorithm from \cite{HAC}. Even the +MIX pseudo machine code presented by Knuth \cite[pp. 266-267]{TAOCPV2} is incapable of handling inputs which are of different magnitudes. + +The first thing that has to be accomplished is to sort out which of the two inputs is the largest. The addition logic +will simply add all of the smallest input to the largest input and store that first part of the result in the +destination. Then it will apply a simpler addition loop to excess digits of the larger input. + +The first two steps will handle sorting the inputs such that $min$ and $max$ hold the digit counts of the two +inputs. The variable $x$ will be an mp\_int alias for the largest input or the second input $b$ if they have the +same number of digits. After the inputs are sorted the destination $c$ is grown as required to accomodate the sum +of the two inputs. The original \textbf{used} count of $c$ is copied and set to the new used count. + +At this point the first addition loop will go through as many digit positions that both inputs have. The carry +variable $\mu$ is set to zero outside the loop. Inside the loop an ``addition'' step requires three statements to produce +one digit of the summand. First +two digits from $a$ and $b$ are added together along with the carry $\mu$. The carry of this step is extracted and stored +in $\mu$ and finally the digit of the result $c_n$ is truncated within the range $0 \le c_n < \beta$. + +Now all of the digit positions that both inputs have in common have been exhausted. If $min \ne max$ then $x$ is an alias +for one of the inputs that has more digits. A simplified addition loop is then used to essentially copy the remaining digits +and the carry to the destination. + +The final carry is stored in $c_{max}$ and digits above $max$ upto $oldused$ are zeroed which completes the addition. + + +EXAM,bn_s_mp_add.c + +Lines @27,if@ to @35,}@ perform the initial sorting of the inputs and determine the $min$ and $max$ variables. Note that $x$ is a pointer to a +mp\_int assigned to the largest input, in effect it is a local alias. Lines @37,init@ to @42,}@ ensure that the destination is grown to +accomodate the result of the addition. + +Similar to the implementation of mp\_copy this function uses the braced code and local aliases coding style. The three aliases that are on +lines @56,tmpa@, @59,tmpb@ and @62,tmpc@ represent the two inputs and destination variables respectively. These aliases are used to ensure the +compiler does not have to dereference $a$, $b$ or $c$ (respectively) to access the digits of the respective mp\_int. + +The initial carry $u$ is cleared on line @65,u = 0@, note that $u$ is of type mp\_digit which ensures type compatibility within the +implementation. The initial addition loop begins on line @66,for@ and ends on line @75,}@. Similarly the conditional addition loop +begins on line @81,for@ and ends on line @90,}@. The addition is finished with the final carry being stored in $tmpc$ on line @94,tmpc++@. +Note the ``++'' operator on the same line. After line @94,tmpc++@ $tmpc$ will point to the $c.used$'th digit of the mp\_int $c$. This is useful +for the next loop on lines @97,for@ to @99,}@ which set any old upper digits to zero. + +\subsection{Low Level Subtraction} +The low level unsigned subtraction algorithm is very similar to the low level unsigned addition algorithm. The principle difference is that the +unsigned subtraction algorithm requires the result to be positive. That is when computing $a - b$ the condition $\vert a \vert \ge \vert b\vert$ must +be met for this algorithm to function properly. Keep in mind this low level algorithm is not meant to be used in higher level algorithms directly. +This algorithm as will be shown can be used to create functional signed addition and subtraction algorithms. + +MARK,GAMMA + +For this algorithm a new variable is required to make the description simpler. Recall from section 1.3.1 that a mp\_digit must be able to represent +the range $0 \le x < 2\beta$ for the algorithms to work correctly. However, it is allowable that a mp\_digit represent a larger range of values. For +this algorithm we will assume that the variable $\gamma$ represents the number of bits available in a +mp\_digit (\textit{this implies $2^{\gamma} > \beta$}). + +For example, the default for LibTomMath is to use a ``unsigned long'' for the mp\_digit ``type'' while $\beta = 2^{28}$. In ISO C an ``unsigned long'' +data type must be able to represent $0 \le x < 2^{32}$ meaning that in this case $\gamma = 32$. + +\newpage\begin{figure}[!here] +\begin{center} +\begin{small} +\begin{tabular}{l} +\hline Algorithm \textbf{s\_mp\_sub}. \\ +\textbf{Input}. Two mp\_ints $a$ and $b$ ($\vert a \vert \ge \vert b \vert$) \\ +\textbf{Output}. The unsigned subtraction $c = \vert a \vert - \vert b \vert$. \\ +\hline \\ +1. $min \leftarrow b.used$ \\ +2. $max \leftarrow a.used$ \\ +3. If $c.alloc < max$ then grow $c$ to hold at least $max$ digits. (\textit{mp\_grow}) \\ +4. $oldused \leftarrow c.used$ \\ +5. $c.used \leftarrow max$ \\ +6. $u \leftarrow 0$ \\ +7. for $n$ from $0$ to $min - 1$ do \\ +\hspace{3mm}7.1 $c_n \leftarrow a_n - b_n - u$ \\ +\hspace{3mm}7.2 $u \leftarrow c_n >> (\gamma - 1)$ \\ +\hspace{3mm}7.3 $c_n \leftarrow c_n \mbox{ (mod }\beta\mbox{)}$ \\ +8. if $min < max$ then do \\ +\hspace{3mm}8.1 for $n$ from $min$ to $max - 1$ do \\ +\hspace{6mm}8.1.1 $c_n \leftarrow a_n - u$ \\ +\hspace{6mm}8.1.2 $u \leftarrow c_n >> (\gamma - 1)$ \\ +\hspace{6mm}8.1.3 $c_n \leftarrow c_n \mbox{ (mod }\beta\mbox{)}$ \\ +9. if $oldused > max$ then do \\ +\hspace{3mm}9.1 for $n$ from $max$ to $oldused - 1$ do \\ +\hspace{6mm}9.1.1 $c_n \leftarrow 0$ \\ +10. Clamp excess digits of $c$. (\textit{mp\_clamp}). \\ +11. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{small} +\end{center} +\caption{Algorithm s\_mp\_sub} +\end{figure} + +\textbf{Algorithm s\_mp\_sub.} +This algorithm performs the unsigned subtraction of two mp\_int variables under the restriction that the result must be positive. That is when +passing variables $a$ and $b$ the condition that $\vert a \vert \ge \vert b \vert$ must be met for the algorithm to function correctly. This +algorithm is loosely based on algorithm 14.9 \cite[pp. 595]{HAC} and is similar to algorithm S in \cite[pp. 267]{TAOCPV2} as well. As was the case +of the algorithm s\_mp\_add both other references lack discussion concerning various practical details such as when the inputs differ in magnitude. + +The initial sorting of the inputs is trivial in this algorithm since $a$ is guaranteed to have at least the same magnitude of $b$. Steps 1 and 2 +set the $min$ and $max$ variables. Unlike the addition routine there is guaranteed to be no carry which means that the final result can be at +most $max$ digits in length as opposed to $max + 1$. Similar to the addition algorithm the \textbf{used} count of $c$ is copied locally and +set to the maximal count for the operation. + +The subtraction loop that begins on step seven is essentially the same as the addition loop of algorithm s\_mp\_add except single precision +subtraction is used instead. Note the use of the $\gamma$ variable to extract the carry (\textit{also known as the borrow}) within the subtraction +loops. Under the assumption that two's complement single precision arithmetic is used this will successfully extract the desired carry. + +For example, consider subtracting $0101_2$ from $0100_2$ where $\gamma = 4$ and $\beta = 2$. The least significant bit will force a carry upwards to +the third bit which will be set to zero after the borrow. After the very first bit has been subtracted $4 - 1 \equiv 0011_2$ will remain, When the +third bit of $0101_2$ is subtracted from the result it will cause another carry. In this case though the carry will be forced to propagate all the +way to the most significant bit. + +Recall that $\beta < 2^{\gamma}$. This means that if a carry does occur just before the $lg(\beta)$'th bit it will propagate all the way to the most +significant bit. Thus, the high order bits of the mp\_digit that are not part of the actual digit will either be all zero, or all one. All that +is needed is a single zero or one bit for the carry. Therefore a single logical shift right by $\gamma - 1$ positions is sufficient to extract the +carry. This method of carry extraction may seem awkward but the reason for it becomes apparent when the implementation is discussed. + +If $b$ has a smaller magnitude than $a$ then step 9 will force the carry and copy operation to propagate through the larger input $a$ into $c$. Step +10 will ensure that any leading digits of $c$ above the $max$'th position are zeroed. + +EXAM,bn_s_mp_sub.c + +Line @24,min@ and @25,max@ perform the initial hardcoded sorting of the inputs. In reality the $min$ and $max$ variables are only aliases and are only +used to make the source code easier to read. Again the pointer alias optimization is used within this algorithm. Lines @42,tmpa@, @43,tmpb@ and @44,tmpc@ initialize the aliases for +$a$, $b$ and $c$ respectively. + +The first subtraction loop occurs on lines @47,u = 0@ through @61,}@. The theory behind the subtraction loop is exactly the same as that for +the addition loop. As remarked earlier there is an implementation reason for using the ``awkward'' method of extracting the carry +(\textit{see line @57, >>@}). The traditional method for extracting the carry would be to shift by $lg(\beta)$ positions and logically AND +the least significant bit. The AND operation is required because all of the bits above the $\lg(\beta)$'th bit will be set to one after a carry +occurs from subtraction. This carry extraction requires two relatively cheap operations to extract the carry. The other method is to simply +shift the most significant bit to the least significant bit thus extracting the carry with a single cheap operation. This optimization only works on +twos compliment machines which is a safe assumption to make. + +If $a$ has a larger magnitude than $b$ an additional loop (\textit{see lines @64,for@ through @73,}@}) is required to propagate the carry through +$a$ and copy the result to $c$. + +\subsection{High Level Addition} +Now that both lower level addition and subtraction algorithms have been established an effective high level signed addition algorithm can be +established. This high level addition algorithm will be what other algorithms and developers will use to perform addition of mp\_int data +types. + +Recall from section 5.2 that an mp\_int represents an integer with an unsigned mantissa (\textit{the array of digits}) and a \textbf{sign} +flag. A high level addition is actually performed as a series of eight separate cases which can be optimized down to three unique cases. + +\begin{figure}[!here] +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_add}. \\ +\textbf{Input}. Two mp\_ints $a$ and $b$ \\ +\textbf{Output}. The signed addition $c = a + b$. \\ +\hline \\ +1. if $a.sign = b.sign$ then do \\ +\hspace{3mm}1.1 $c.sign \leftarrow a.sign$ \\ +\hspace{3mm}1.2 $c \leftarrow \vert a \vert + \vert b \vert$ (\textit{s\_mp\_add})\\ +2. else do \\ +\hspace{3mm}2.1 if $\vert a \vert < \vert b \vert$ then do (\textit{mp\_cmp\_mag}) \\ +\hspace{6mm}2.1.1 $c.sign \leftarrow b.sign$ \\ +\hspace{6mm}2.1.2 $c \leftarrow \vert b \vert - \vert a \vert$ (\textit{s\_mp\_sub}) \\ +\hspace{3mm}2.2 else do \\ +\hspace{6mm}2.2.1 $c.sign \leftarrow a.sign$ \\ +\hspace{6mm}2.2.2 $c \leftarrow \vert a \vert - \vert b \vert$ \\ +3. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\caption{Algorithm mp\_add} +\end{figure} + +\textbf{Algorithm mp\_add.} +This algorithm performs the signed addition of two mp\_int variables. There is no reference algorithm to draw upon from +either \cite{TAOCPV2} or \cite{HAC} since they both only provide unsigned operations. The algorithm is fairly +straightforward but restricted since subtraction can only produce positive results. + +\begin{figure}[here] +\begin{small} +\begin{center} +\begin{tabular}{|c|c|c|c|c|} +\hline \textbf{Sign of $a$} & \textbf{Sign of $b$} & \textbf{$\vert a \vert > \vert b \vert $} & \textbf{Unsigned Operation} & \textbf{Result Sign Flag} \\ +\hline $+$ & $+$ & Yes & $c = a + b$ & $a.sign$ \\ +\hline $+$ & $+$ & No & $c = a + b$ & $a.sign$ \\ +\hline $-$ & $-$ & Yes & $c = a + b$ & $a.sign$ \\ +\hline $-$ & $-$ & No & $c = a + b$ & $a.sign$ \\ +\hline &&&&\\ + +\hline $+$ & $-$ & No & $c = b - a$ & $b.sign$ \\ +\hline $-$ & $+$ & No & $c = b - a$ & $b.sign$ \\ + +\hline &&&&\\ + +\hline $+$ & $-$ & Yes & $c = a - b$ & $a.sign$ \\ +\hline $-$ & $+$ & Yes & $c = a - b$ & $a.sign$ \\ + +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Addition Guide Chart} +\label{fig:AddChart} +\end{figure} + +Figure~\ref{fig:AddChart} lists all of the eight possible input combinations and is sorted to show that only three +specific cases need to be handled. The return code of the unsigned operations at step 1.2, 2.1.2 and 2.2.2 are +forwarded to step three to check for errors. This simplifies the description of the algorithm considerably and best +follows how the implementation actually was achieved. + +Also note how the \textbf{sign} is set before the unsigned addition or subtraction is performed. Recall from the descriptions of algorithms +s\_mp\_add and s\_mp\_sub that the mp\_clamp function is used at the end to trim excess digits. The mp\_clamp algorithm will set the \textbf{sign} +to \textbf{MP\_ZPOS} when the \textbf{used} digit count reaches zero. + +For example, consider performing $-a + a$ with algorithm mp\_add. By the description of the algorithm the sign is set to \textbf{MP\_NEG} which would +produce a result of $-0$. However, since the sign is set first then the unsigned addition is performed the subsequent usage of algorithm mp\_clamp +within algorithm s\_mp\_add will force $-0$ to become $0$. + +EXAM,bn_mp_add.c + +The source code follows the algorithm fairly closely. The most notable new source code addition is the usage of the $res$ integer variable which +is used to pass result of the unsigned operations forward. Unlike in the algorithm, the variable $res$ is merely returned as is without +explicitly checking it and returning the constant \textbf{MP\_OKAY}. The observation is this algorithm will succeed or fail only if the lower +level functions do so. Returning their return code is sufficient. + +\subsection{High Level Subtraction} +The high level signed subtraction algorithm is essentially the same as the high level signed addition algorithm. + +\newpage\begin{figure}[!here] +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_sub}. \\ +\textbf{Input}. Two mp\_ints $a$ and $b$ \\ +\textbf{Output}. The signed subtraction $c = a - b$. \\ +\hline \\ +1. if $a.sign \ne b.sign$ then do \\ +\hspace{3mm}1.1 $c.sign \leftarrow a.sign$ \\ +\hspace{3mm}1.2 $c \leftarrow \vert a \vert + \vert b \vert$ (\textit{s\_mp\_add}) \\ +2. else do \\ +\hspace{3mm}2.1 if $\vert a \vert \ge \vert b \vert$ then do (\textit{mp\_cmp\_mag}) \\ +\hspace{6mm}2.1.1 $c.sign \leftarrow a.sign$ \\ +\hspace{6mm}2.1.2 $c \leftarrow \vert a \vert - \vert b \vert$ (\textit{s\_mp\_sub}) \\ +\hspace{3mm}2.2 else do \\ +\hspace{6mm}2.2.1 $c.sign \leftarrow \left \lbrace \begin{array}{ll} + MP\_ZPOS & \mbox{if }a.sign = MP\_NEG \\ + MP\_NEG & \mbox{otherwise} \\ + \end{array} \right .$ \\ +\hspace{6mm}2.2.2 $c \leftarrow \vert b \vert - \vert a \vert$ \\ +3. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\caption{Algorithm mp\_sub} +\end{figure} + +\textbf{Algorithm mp\_sub.} +This algorithm performs the signed subtraction of two inputs. Similar to algorithm mp\_add there is no reference in either \cite{TAOCPV2} or +\cite{HAC}. Also this algorithm is restricted by algorithm s\_mp\_sub. Chart \ref{fig:SubChart} lists the eight possible inputs and +the operations required. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{|c|c|c|c|c|} +\hline \textbf{Sign of $a$} & \textbf{Sign of $b$} & \textbf{$\vert a \vert \ge \vert b \vert $} & \textbf{Unsigned Operation} & \textbf{Result Sign Flag} \\ +\hline $+$ & $-$ & Yes & $c = a + b$ & $a.sign$ \\ +\hline $+$ & $-$ & No & $c = a + b$ & $a.sign$ \\ +\hline $-$ & $+$ & Yes & $c = a + b$ & $a.sign$ \\ +\hline $-$ & $+$ & No & $c = a + b$ & $a.sign$ \\ +\hline &&&& \\ +\hline $+$ & $+$ & Yes & $c = a - b$ & $a.sign$ \\ +\hline $-$ & $-$ & Yes & $c = a - b$ & $a.sign$ \\ +\hline &&&& \\ +\hline $+$ & $+$ & No & $c = b - a$ & $\mbox{opposite of }a.sign$ \\ +\hline $-$ & $-$ & No & $c = b - a$ & $\mbox{opposite of }a.sign$ \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Subtraction Guide Chart} +\label{fig:SubChart} +\end{figure} + +Similar to the case of algorithm mp\_add the \textbf{sign} is set first before the unsigned addition or subtraction. That is to prevent the +algorithm from producing $-a - -a = -0$ as a result. + +EXAM,bn_mp_sub.c + +Much like the implementation of algorithm mp\_add the variable $res$ is used to catch the return code of the unsigned addition or subtraction operations +and forward it to the end of the function. On line @38, != MP_LT@ the ``not equal to'' \textbf{MP\_LT} expression is used to emulate a +``greater than or equal to'' comparison. + +\section{Bit and Digit Shifting} +MARK,POLY +It is quite common to think of a multiple precision integer as a polynomial in $x$, that is $y = f(\beta)$ where $f(x) = \sum_{i=0}^{n-1} a_i x^i$. +This notation arises within discussion of Montgomery and Diminished Radix Reduction as well as Karatsuba multiplication and squaring. + +In order to facilitate operations on polynomials in $x$ as above a series of simple ``digit'' algorithms have to be established. That is to shift +the digits left or right as well to shift individual bits of the digits left and right. It is important to note that not all ``shift'' operations +are on radix-$\beta$ digits. + +\subsection{Multiplication by Two} + +In a binary system where the radix is a power of two multiplication by two not only arises often in other algorithms it is a fairly efficient +operation to perform. A single precision logical shift left is sufficient to multiply a single digit by two. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_mul\_2}. \\ +\textbf{Input}. One mp\_int $a$ \\ +\textbf{Output}. $b = 2a$. \\ +\hline \\ +1. If $b.alloc < a.used + 1$ then grow $b$ to hold $a.used + 1$ digits. (\textit{mp\_grow}) \\ +2. $oldused \leftarrow b.used$ \\ +3. $b.used \leftarrow a.used$ \\ +4. $r \leftarrow 0$ \\ +5. for $n$ from 0 to $a.used - 1$ do \\ +\hspace{3mm}5.1 $rr \leftarrow a_n >> (lg(\beta) - 1)$ \\ +\hspace{3mm}5.2 $b_n \leftarrow (a_n << 1) + r \mbox{ (mod }\beta\mbox{)}$ \\ +\hspace{3mm}5.3 $r \leftarrow rr$ \\ +6. If $r \ne 0$ then do \\ +\hspace{3mm}6.1 $b_{n + 1} \leftarrow r$ \\ +\hspace{3mm}6.2 $b.used \leftarrow b.used + 1$ \\ +7. If $b.used < oldused - 1$ then do \\ +\hspace{3mm}7.1 for $n$ from $b.used$ to $oldused - 1$ do \\ +\hspace{6mm}7.1.1 $b_n \leftarrow 0$ \\ +8. $b.sign \leftarrow a.sign$ \\ +9. Return(\textit{MP\_OKAY}).\\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_mul\_2} +\end{figure} + +\textbf{Algorithm mp\_mul\_2.} +This algorithm will quickly multiply a mp\_int by two provided $\beta$ is a power of two. Neither \cite{TAOCPV2} nor \cite{HAC} describe such +an algorithm despite the fact it arises often in other algorithms. The algorithm is setup much like the lower level algorithm s\_mp\_add since +it is for all intents and purposes equivalent to the operation $b = \vert a \vert + \vert a \vert$. + +Step 1 and 2 grow the input as required to accomodate the maximum number of \textbf{used} digits in the result. The initial \textbf{used} count +is set to $a.used$ at step 4. Only if there is a final carry will the \textbf{used} count require adjustment. + +Step 6 is an optimization implementation of the addition loop for this specific case. That is since the two values being added together +are the same there is no need to perform two reads from the digits of $a$. Step 6.1 performs a single precision shift on the current digit $a_n$ to +obtain what will be the carry for the next iteration. Step 6.2 calculates the $n$'th digit of the result as single precision shift of $a_n$ plus +the previous carry. Recall from ~SHIFTS~ that $a_n << 1$ is equivalent to $a_n \cdot 2$. An iteration of the addition loop is finished with +forwarding the carry to the next iteration. + +Step 7 takes care of any final carry by setting the $a.used$'th digit of the result to the carry and augmenting the \textbf{used} count of $b$. +Step 8 clears any leading digits of $b$ in case it originally had a larger magnitude than $a$. + +EXAM,bn_mp_mul_2.c + +This implementation is essentially an optimized implementation of s\_mp\_add for the case of doubling an input. The only noteworthy difference +is the use of the logical shift operator on line @52,<<@ to perform a single precision doubling. + +\subsection{Division by Two} +A division by two can just as easily be accomplished with a logical shift right as multiplication by two can be with a logical shift left. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_div\_2}. \\ +\textbf{Input}. One mp\_int $a$ \\ +\textbf{Output}. $b = a/2$. \\ +\hline \\ +1. If $b.alloc < a.used$ then grow $b$ to hold $a.used$ digits. (\textit{mp\_grow}) \\ +2. If the reallocation failed return(\textit{MP\_MEM}). \\ +3. $oldused \leftarrow b.used$ \\ +4. $b.used \leftarrow a.used$ \\ +5. $r \leftarrow 0$ \\ +6. for $n$ from $b.used - 1$ to $0$ do \\ +\hspace{3mm}6.1 $rr \leftarrow a_n \mbox{ (mod }2\mbox{)}$\\ +\hspace{3mm}6.2 $b_n \leftarrow (a_n >> 1) + (r << (lg(\beta) - 1)) \mbox{ (mod }\beta\mbox{)}$ \\ +\hspace{3mm}6.3 $r \leftarrow rr$ \\ +7. If $b.used < oldused - 1$ then do \\ +\hspace{3mm}7.1 for $n$ from $b.used$ to $oldused - 1$ do \\ +\hspace{6mm}7.1.1 $b_n \leftarrow 0$ \\ +8. $b.sign \leftarrow a.sign$ \\ +9. Clamp excess digits of $b$. (\textit{mp\_clamp}) \\ +10. Return(\textit{MP\_OKAY}).\\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_div\_2} +\end{figure} + +\textbf{Algorithm mp\_div\_2.} +This algorithm will divide an mp\_int by two using logical shifts to the right. Like mp\_mul\_2 it uses a modified low level addition +core as the basis of the algorithm. Unlike mp\_mul\_2 the shift operations work from the leading digit to the trailing digit. The algorithm +could be written to work from the trailing digit to the leading digit however, it would have to stop one short of $a.used - 1$ digits to prevent +reading past the end of the array of digits. + +Essentially the loop at step 6 is similar to that of mp\_mul\_2 except the logical shifts go in the opposite direction and the carry is at the +least significant bit not the most significant bit. + +EXAM,bn_mp_div_2.c + +\section{Polynomial Basis Operations} +Recall from ~POLY~ that any integer can be represented as a polynomial in $x$ as $y = f(\beta)$. Such a representation is also known as +the polynomial basis \cite[pp. 48]{ROSE}. Given such a notation a multiplication or division by $x$ amounts to shifting whole digits a single +place. The need for such operations arises in several other higher level algorithms such as Barrett and Montgomery reduction, integer +division and Karatsuba multiplication. + +Converting from an array of digits to polynomial basis is very simple. Consider the integer $y \equiv (a_2, a_1, a_0)_{\beta}$ and recall that +$y = \sum_{i=0}^{2} a_i \beta^i$. Simply replace $\beta$ with $x$ and the expression is in polynomial basis. For example, $f(x) = 8x + 9$ is the +polynomial basis representation for $89$ using radix ten. That is, $f(10) = 8(10) + 9 = 89$. + +\subsection{Multiplication by $x$} + +Given a polynomial in $x$ such as $f(x) = a_n x^n + a_{n-1} x^{n-1} + ... + a_0$ multiplying by $x$ amounts to shifting the coefficients up one +degree. In this case $f(x) \cdot x = a_n x^{n+1} + a_{n-1} x^n + ... + a_0 x$. From a scalar basis point of view multiplying by $x$ is equivalent to +multiplying by the integer $\beta$. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_lshd}. \\ +\textbf{Input}. One mp\_int $a$ and an integer $b$ \\ +\textbf{Output}. $a \leftarrow a \cdot \beta^b$ (equivalent to multiplication by $x^b$). \\ +\hline \\ +1. If $b \le 0$ then return(\textit{MP\_OKAY}). \\ +2. If $a.alloc < a.used + b$ then grow $a$ to at least $a.used + b$ digits. (\textit{mp\_grow}). \\ +3. If the reallocation failed return(\textit{MP\_MEM}). \\ +4. $a.used \leftarrow a.used + b$ \\ +5. $i \leftarrow a.used - 1$ \\ +6. $j \leftarrow a.used - 1 - b$ \\ +7. for $n$ from $a.used - 1$ to $b$ do \\ +\hspace{3mm}7.1 $a_{i} \leftarrow a_{j}$ \\ +\hspace{3mm}7.2 $i \leftarrow i - 1$ \\ +\hspace{3mm}7.3 $j \leftarrow j - 1$ \\ +8. for $n$ from 0 to $b - 1$ do \\ +\hspace{3mm}8.1 $a_n \leftarrow 0$ \\ +9. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_lshd} +\end{figure} + +\textbf{Algorithm mp\_lshd.} +This algorithm multiplies an mp\_int by the $b$'th power of $x$. This is equivalent to multiplying by $\beta^b$. The algorithm differs +from the other algorithms presented so far as it performs the operation in place instead storing the result in a separate location. The +motivation behind this change is due to the way this function is typically used. Algorithms such as mp\_add store the result in an optionally +different third mp\_int because the original inputs are often still required. Algorithm mp\_lshd (\textit{and similarly algorithm mp\_rshd}) is +typically used on values where the original value is no longer required. The algorithm will return success immediately if +$b \le 0$ since the rest of algorithm is only valid when $b > 0$. + +First the destination $a$ is grown as required to accomodate the result. The counters $i$ and $j$ are used to form a \textit{sliding window} over +the digits of $a$ of length $b$. The head of the sliding window is at $i$ (\textit{the leading digit}) and the tail at $j$ (\textit{the trailing digit}). +The loop on step 7 copies the digit from the tail to the head. In each iteration the window is moved down one digit. The last loop on +step 8 sets the lower $b$ digits to zero. + +\newpage +FIGU,sliding_window,Sliding Window Movement + +EXAM,bn_mp_lshd.c + +The if statement on line @24,if@ ensures that the $b$ variable is greater than zero. The \textbf{used} count is incremented by $b$ before +the copy loop begins. This elminates the need for an additional variable in the for loop. The variable $top$ on line @42,top@ is an alias +for the leading digit while $bottom$ on line @45,bottom@ is an alias for the trailing edge. The aliases form a window of exactly $b$ digits +over the input. + +\subsection{Division by $x$} + +Division by powers of $x$ is easily achieved by shifting the digits right and removing any that will end up to the right of the zero'th digit. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_rshd}. \\ +\textbf{Input}. One mp\_int $a$ and an integer $b$ \\ +\textbf{Output}. $a \leftarrow a / \beta^b$ (Divide by $x^b$). \\ +\hline \\ +1. If $b \le 0$ then return. \\ +2. If $a.used \le b$ then do \\ +\hspace{3mm}2.1 Zero $a$. (\textit{mp\_zero}). \\ +\hspace{3mm}2.2 Return. \\ +3. $i \leftarrow 0$ \\ +4. $j \leftarrow b$ \\ +5. for $n$ from 0 to $a.used - b - 1$ do \\ +\hspace{3mm}5.1 $a_i \leftarrow a_j$ \\ +\hspace{3mm}5.2 $i \leftarrow i + 1$ \\ +\hspace{3mm}5.3 $j \leftarrow j + 1$ \\ +6. for $n$ from $a.used - b$ to $a.used - 1$ do \\ +\hspace{3mm}6.1 $a_n \leftarrow 0$ \\ +7. $a.used \leftarrow a.used - b$ \\ +8. Return. \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_rshd} +\end{figure} + +\textbf{Algorithm mp\_rshd.} +This algorithm divides the input in place by the $b$'th power of $x$. It is analogous to dividing by a $\beta^b$ but much quicker since +it does not require single precision division. This algorithm does not actually return an error code as it cannot fail. + +If the input $b$ is less than one the algorithm quickly returns without performing any work. If the \textbf{used} count is less than or equal +to the shift count $b$ then it will simply zero the input and return. + +After the trivial cases of inputs have been handled the sliding window is setup. Much like the case of algorithm mp\_lshd a sliding window that +is $b$ digits wide is used to copy the digits. Unlike mp\_lshd the window slides in the opposite direction from the trailing to the leading digit. +Also the digits are copied from the leading to the trailing edge. + +Once the window copy is complete the upper digits must be zeroed and the \textbf{used} count decremented. + +EXAM,bn_mp_rshd.c + +The only noteworthy element of this routine is the lack of a return type. + +-- Will update later to give it a return type...Tom + +\section{Powers of Two} + +Now that algorithms for moving single bits as well as whole digits exist algorithms for moving the ``in between'' distances are required. For +example, to quickly multiply by $2^k$ for any $k$ without using a full multiplier algorithm would prove useful. Instead of performing single +shifts $k$ times to achieve a multiplication by $2^{\pm k}$ a mixture of whole digit shifting and partial digit shifting is employed. + +\subsection{Multiplication by Power of Two} + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_mul\_2d}. \\ +\textbf{Input}. One mp\_int $a$ and an integer $b$ \\ +\textbf{Output}. $c \leftarrow a \cdot 2^b$. \\ +\hline \\ +1. $c \leftarrow a$. (\textit{mp\_copy}) \\ +2. If $c.alloc < c.used + \lfloor b / lg(\beta) \rfloor + 2$ then grow $c$ accordingly. \\ +3. If the reallocation failed return(\textit{MP\_MEM}). \\ +4. If $b \ge lg(\beta)$ then \\ +\hspace{3mm}4.1 $c \leftarrow c \cdot \beta^{\lfloor b / lg(\beta) \rfloor}$ (\textit{mp\_lshd}). \\ +\hspace{3mm}4.2 If step 4.1 failed return(\textit{MP\_MEM}). \\ +5. $d \leftarrow b \mbox{ (mod }lg(\beta)\mbox{)}$ \\ +6. If $d \ne 0$ then do \\ +\hspace{3mm}6.1 $mask \leftarrow 2^d$ \\ +\hspace{3mm}6.2 $r \leftarrow 0$ \\ +\hspace{3mm}6.3 for $n$ from $0$ to $c.used - 1$ do \\ +\hspace{6mm}6.3.1 $rr \leftarrow c_n >> (lg(\beta) - d) \mbox{ (mod }mask\mbox{)}$ \\ +\hspace{6mm}6.3.2 $c_n \leftarrow (c_n << d) + r \mbox{ (mod }\beta\mbox{)}$ \\ +\hspace{6mm}6.3.3 $r \leftarrow rr$ \\ +\hspace{3mm}6.4 If $r > 0$ then do \\ +\hspace{6mm}6.4.1 $c_{c.used} \leftarrow r$ \\ +\hspace{6mm}6.4.2 $c.used \leftarrow c.used + 1$ \\ +7. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_mul\_2d} +\end{figure} + +\textbf{Algorithm mp\_mul\_2d.} +This algorithm multiplies $a$ by $2^b$ and stores the result in $c$. The algorithm uses algorithm mp\_lshd and a derivative of algorithm mp\_mul\_2 to +quickly compute the product. + +First the algorithm will multiply $a$ by $x^{\lfloor b / lg(\beta) \rfloor}$ which will ensure that the remainder multiplicand is less than +$\beta$. For example, if $b = 37$ and $\beta = 2^{28}$ then this step will multiply by $x$ leaving a multiplication by $2^{37 - 28} = 2^{9}$ +left. + +After the digits have been shifted appropriately at most $lg(\beta) - 1$ shifts are left to perform. Step 5 calculates the number of remaining shifts +required. If it is non-zero a modified shift loop is used to calculate the remaining product. +Essentially the loop is a generic version of algorith mp\_mul2 designed to handle any shift count in the range $1 \le x < lg(\beta)$. The $mask$ +variable is used to extract the upper $d$ bits to form the carry for the next iteration. + +This algorithm is loosely measured as a $O(2n)$ algorithm which means that if the input is $n$-digits that it takes $2n$ ``time'' to +complete. It is possible to optimize this algorithm down to a $O(n)$ algorithm at a cost of making the algorithm slightly harder to follow. + +EXAM,bn_mp_mul_2d.c + +Notes to be revised when code is updated. -- Tom + +\subsection{Division by Power of Two} + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_div\_2d}. \\ +\textbf{Input}. One mp\_int $a$ and an integer $b$ \\ +\textbf{Output}. $c \leftarrow \lfloor a / 2^b \rfloor, d \leftarrow a \mbox{ (mod }2^b\mbox{)}$. \\ +\hline \\ +1. If $b \le 0$ then do \\ +\hspace{3mm}1.1 $c \leftarrow a$ (\textit{mp\_copy}) \\ +\hspace{3mm}1.2 $d \leftarrow 0$ (\textit{mp\_zero}) \\ +\hspace{3mm}1.3 Return(\textit{MP\_OKAY}). \\ +2. $c \leftarrow a$ \\ +3. $d \leftarrow a \mbox{ (mod }2^b\mbox{)}$ (\textit{mp\_mod\_2d}) \\ +4. If $b \ge lg(\beta)$ then do \\ +\hspace{3mm}4.1 $c \leftarrow \lfloor c/\beta^{\lfloor b/lg(\beta) \rfloor} \rfloor$ (\textit{mp\_rshd}). \\ +5. $k \leftarrow b \mbox{ (mod }lg(\beta)\mbox{)}$ \\ +6. If $k \ne 0$ then do \\ +\hspace{3mm}6.1 $mask \leftarrow 2^k$ \\ +\hspace{3mm}6.2 $r \leftarrow 0$ \\ +\hspace{3mm}6.3 for $n$ from $c.used - 1$ to $0$ do \\ +\hspace{6mm}6.3.1 $rr \leftarrow c_n \mbox{ (mod }mask\mbox{)}$ \\ +\hspace{6mm}6.3.2 $c_n \leftarrow (c_n >> k) + (r << (lg(\beta) - k))$ \\ +\hspace{6mm}6.3.3 $r \leftarrow rr$ \\ +7. Clamp excess digits of $c$. (\textit{mp\_clamp}) \\ +8. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_div\_2d} +\end{figure} + +\textbf{Algorithm mp\_div\_2d.} +This algorithm will divide an input $a$ by $2^b$ and produce the quotient and remainder. The algorithm is designed much like algorithm +mp\_mul\_2d by first using whole digit shifts then single precision shifts. This algorithm will also produce the remainder of the division +by using algorithm mp\_mod\_2d. + +EXAM,bn_mp_div_2d.c + +The implementation of algorithm mp\_div\_2d is slightly different than the algorithm specifies. The remainder $d$ may be optionally +ignored by passing \textbf{NULL} as the pointer to the mp\_int variable. The temporary mp\_int variable $t$ is used to hold the +result of the remainder operation until the end. This allows $d$ and $a$ to represent the same mp\_int without modifying $a$ before +the quotient is obtained. + +The remainder of the source code is essentially the same as the source code for mp\_mul\_2d. (-- Fix this paragraph up later, Tom). + +\subsection{Remainder of Division by Power of Two} + +The last algorithm in the series of polynomial basis power of two algorithms is calculating the remainder of division by $2^b$. This +algorithm benefits from the fact that in twos complement arithmetic $a \mbox{ (mod }2^b\mbox{)}$ is the same as $a$ AND $2^b - 1$. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_mod\_2d}. \\ +\textbf{Input}. One mp\_int $a$ and an integer $b$ \\ +\textbf{Output}. $c \leftarrow a \mbox{ (mod }2^b\mbox{)}$. \\ +\hline \\ +1. If $b \le 0$ then do \\ +\hspace{3mm}1.1 $c \leftarrow 0$ (\textit{mp\_zero}) \\ +\hspace{3mm}1.2 Return(\textit{MP\_OKAY}). \\ +2. If $b > a.used \cdot lg(\beta)$ then do \\ +\hspace{3mm}2.1 $c \leftarrow a$ (\textit{mp\_copy}) \\ +\hspace{3mm}2.2 Return the result of step 2.1. \\ +3. $c \leftarrow a$ \\ +4. If step 3 failed return(\textit{MP\_MEM}). \\ +5. for $n$ from $\lceil b / lg(\beta) \rceil$ to $c.used$ do \\ +\hspace{3mm}5.1 $c_n \leftarrow 0$ \\ +6. $k \leftarrow b \mbox{ (mod }lg(\beta)\mbox{)}$ \\ +7. $c_{\lfloor b / lg(\beta) \rfloor} \leftarrow c_{\lfloor b / lg(\beta) \rfloor} \mbox{ (mod }2^{k}\mbox{)}$. \\ +8. Clamp excess digits of $c$. (\textit{mp\_clamp}) \\ +9. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_mod\_2d} +\end{figure} + +\textbf{Algorithm mp\_mod\_2d.} +This algorithm will quickly calculate the value of $a \mbox{ (mod }2^b\mbox{)}$. First if $b$ is less than or equal to zero the +result is set to zero. If $b$ is greater than the number of bits in $a$ then it simply copies $a$ to $c$ and returns. Otherwise, $a$ +is copied to $b$, leading digits are removed and the remaining leading digit is trimed to the exact bit count. + +EXAM,bn_mp_mod_2d.c + +-- Add comments later, Tom. + +\section*{Exercises} +\begin{tabular}{cl} +$\left [ 3 \right ] $ & Devise an algorithm that performs $a \cdot 2^b$ for generic values of $b$ \\ + & in $O(n)$ time. \\ + &\\ +$\left [ 3 \right ] $ & Devise an efficient algorithm to multiply by small low hamming \\ + & weight values such as $3$, $5$ and $9$. Extend it to handle all values \\ + & upto $64$ with a hamming weight less than three. \\ + &\\ +$\left [ 2 \right ] $ & Modify the preceding algorithm to handle values of the form \\ + & $2^k - 1$ as well. \\ + &\\ +$\left [ 3 \right ] $ & Using only algorithms mp\_mul\_2, mp\_div\_2 and mp\_add create an \\ + & algorithm to multiply two integers in roughly $O(2n^2)$ time for \\ + & any $n$-bit input. Note that the time of addition is ignored in the \\ + & calculation. \\ + & \\ +$\left [ 5 \right ] $ & Improve the previous algorithm to have a working time of at most \\ + & $O \left (2^{(k-1)}n + \left ({2n^2 \over k} \right ) \right )$ for an appropriate choice of $k$. Again ignore \\ + & the cost of addition. \\ + & \\ +$\left [ 2 \right ] $ & Devise a chart to find optimal values of $k$ for the previous problem \\ + & for $n = 64 \ldots 1024$ in steps of $64$. \\ + & \\ +$\left [ 2 \right ] $ & Using only algorithms mp\_abs and mp\_sub devise another method for \\ + & calculating the result of a signed comparison. \\ + & +\end{tabular} + +\chapter{Multiplication and Squaring} +\section{The Multipliers} +For most number theoretic problems including certain public key cryptographic algorithms, the ``multipliers'' form the most important subset of +algorithms of any multiple precision integer package. The set of multiplier algorithms include integer multiplication, squaring and modular reduction +where in each of the algorithms single precision multiplication is the dominant operation performed. This chapter will discuss integer multiplication +and squaring, leaving modular reductions for the subsequent chapter. + +The importance of the multiplier algorithms is for the most part driven by the fact that certain popular public key algorithms are based on modular +exponentiation, that is computing $d \equiv a^b \mbox{ (mod }c\mbox{)}$ for some arbitrary choice of $a$, $b$, $c$ and $d$. During a modular +exponentiation the majority\footnote{Roughly speaking a modular exponentiation will spend about 40\% of the time performing modular reductions, +35\% of the time performing squaring and 25\% of the time performing multiplications.} of the processor time is spent performing single precision +multiplications. + +For centuries general purpose multiplication has required a lengthly $O(n^2)$ process, whereby each digit of one multiplicand has to be multiplied +against every digit of the other multiplicand. Traditional long-hand multiplication is based on this process; while the techniques can differ the +overall algorithm used is essentially the same. Only ``recently'' have faster algorithms been studied. First Karatsuba multiplication was discovered in +1962. This algorithm can multiply two numbers with considerably fewer single precision multiplications when compared to the long-hand approach. +This technique led to the discovery of polynomial basis algorithms (\textit{good reference?}) and subquently Fourier Transform based solutions. + +\section{Multiplication} +\subsection{The Baseline Multiplication} +\index{baseline multiplication} +Computing the product of two integers in software can be achieved using a trivial adaptation of the standard $O(n^2)$ long-hand multiplication +algorithm that school children are taught. The algorithm is considered an $O(n^2)$ algorithm since for two $n$-digit inputs $n^2$ single precision +multiplications are required. More specifically for a $m$ and $n$ digit input $m \cdot n$ single precision multiplications are required. To +simplify most discussions, it will be assumed that the inputs have comparable number of digits. + +The ``baseline multiplication'' algorithm is designed to act as the ``catch-all'' algorithm, only to be used when the faster algorithms cannot be +used. This algorithm does not use any particularly interesting optimizations and should ideally be avoided if possible. One important +facet of this algorithm, is that it has been modified to only produce a certain amount of output digits as resolution. The importance of this +modification will become evident during the discussion of Barrett modular reduction. Recall that for a $n$ and $m$ digit input the product +will be at most $n + m$ digits. Therefore, this algorithm can be reduced to a full multiplier by having it produce $n + m$ digits of the product. + +Recall from ~GAMMA~ the definition of $\gamma$ as the number of bits in the type \textbf{mp\_digit}. We shall now extend the variable set to +include $\alpha$ which shall represent the number of bits in the type \textbf{mp\_word}. This implies that $2^{\alpha} > 2 \cdot \beta^2$. The +constant $\delta = 2^{\alpha - 2lg(\beta)}$ will represent the maximal weight of any column in a product (\textit{see ~COMBA~ for more information}). + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{s\_mp\_mul\_digs}. \\ +\textbf{Input}. mp\_int $a$, mp\_int $b$ and an integer $digs$ \\ +\textbf{Output}. $c \leftarrow \vert a \vert \cdot \vert b \vert \mbox{ (mod }\beta^{digs}\mbox{)}$. \\ +\hline \\ +1. If min$(a.used, b.used) < \delta$ then do \\ +\hspace{3mm}1.1 Calculate $c = \vert a \vert \cdot \vert b \vert$ by the Comba method (\textit{see algorithm~\ref{fig:COMBAMULT}}). \\ +\hspace{3mm}1.2 Return the result of step 1.1 \\ +\\ +Allocate and initialize a temporary mp\_int. \\ +2. Init $t$ to be of size $digs$ \\ +3. If step 2 failed return(\textit{MP\_MEM}). \\ +4. $t.used \leftarrow digs$ \\ +\\ +Compute the product. \\ +5. for $ix$ from $0$ to $a.used - 1$ do \\ +\hspace{3mm}5.1 $u \leftarrow 0$ \\ +\hspace{3mm}5.2 $pb \leftarrow \mbox{min}(b.used, digs - ix)$ \\ +\hspace{3mm}5.3 If $pb < 1$ then goto step 6. \\ +\hspace{3mm}5.4 for $iy$ from $0$ to $pb - 1$ do \\ +\hspace{6mm}5.4.1 $\hat r \leftarrow t_{iy + ix} + a_{ix} \cdot b_{iy} + u$ \\ +\hspace{6mm}5.4.2 $t_{iy + ix} \leftarrow \hat r \mbox{ (mod }\beta\mbox{)}$ \\ +\hspace{6mm}5.4.3 $u \leftarrow \lfloor \hat r / \beta \rfloor$ \\ +\hspace{3mm}5.5 if $ix + pb < digs$ then do \\ +\hspace{6mm}5.5.1 $t_{ix + pb} \leftarrow u$ \\ +6. Clamp excess digits of $t$. \\ +7. Swap $c$ with $t$ \\ +8. Clear $t$ \\ +9. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm s\_mp\_mul\_digs} +\end{figure} + +\textbf{Algorithm s\_mp\_mul\_digs.} +This algorithm computes the unsigned product of two inputs $a$ and $b$, limited to an output precision of $digs$ digits. While it may seem +a bit awkward to modify the function from its simple $O(n^2)$ description, the usefulness of partial multipliers will arise in a subsequent +algorithm. The algorithm is loosely based on algorithm 14.12 from \cite[pp. 595]{HAC} and is similar to Algorithm M of Knuth \cite[pp. 268]{TAOCPV2}. +Algorithm s\_mp\_mul\_digs differs from these cited references since it can produce a variable output precision regardless of the precision of the +inputs. + +The first thing this algorithm checks for is whether a Comba multiplier can be used instead. If the minimum digit count of either +input is less than $\delta$, then the Comba method may be used instead. After the Comba method is ruled out, the baseline algorithm begins. A +temporary mp\_int variable $t$ is used to hold the intermediate result of the product. This allows the algorithm to be used to +compute products when either $a = c$ or $b = c$ without overwriting the inputs. + +All of step 5 is the infamous $O(n^2)$ multiplication loop slightly modified to only produce upto $digs$ digits of output. The $pb$ variable +is given the count of digits to read from $b$ inside the nested loop. If $pb \le 1$ then no more output digits can be produced and the algorithm +will exit the loop. The best way to think of the loops are as a series of $pb \times 1$ multiplications. That is, in each pass of the +innermost loop $a_{ix}$ is multiplied against $b$ and the result is added (\textit{with an appropriate shift}) to $t$. + +For example, consider multiplying $576$ by $241$. That is equivalent to computing $10^0(1)(576) + 10^1(4)(576) + 10^2(2)(576)$ which is best +visualized in the following table. + +\begin{figure}[here] +\begin{center} +\begin{tabular}{|c|c|c|c|c|c|l|} +\hline && & 5 & 7 & 6 & \\ +\hline $\times$&& & 2 & 4 & 1 & \\ +\hline &&&&&&\\ + && & 5 & 7 & 6 & $10^0(1)(576)$ \\ + &2 & 3 & 6 & 1 & 6 & $10^1(4)(576) + 10^0(1)(576)$ \\ + 1 & 3 & 8 & 8 & 1 & 6 & $10^2(2)(576) + 10^1(4)(576) + 10^0(1)(576)$ \\ +\hline +\end{tabular} +\end{center} +\caption{Long-Hand Multiplication Diagram} +\end{figure} + +Each row of the product is added to the result after being shifted to the left (\textit{multiplied by a power of the radix}) by the appropriate +count. That is in pass $ix$ of the inner loop the product is added starting at the $ix$'th digit of the reult. + +Step 5.4.1 introduces the hat symbol (\textit{e.g. $\hat r$}) which represents a double precision variable. The multiplication on that step +is assumed to be a double wide output single precision multiplication. That is, two single precision variables are multiplied to produce a +double precision result. The step is somewhat optimized from a long-hand multiplication algorithm because the carry from the addition in step +5.4.1 is propagated through the nested loop. If the carry was not propagated immediately it would overflow the single precision digit +$t_{ix+iy}$ and the result would be lost. + +At step 5.5 the nested loop is finished and any carry that was left over should be forwarded. The carry does not have to be added to the $ix+pb$'th +digit since that digit is assumed to be zero at this point. However, if $ix + pb \ge digs$ the carry is not set as it would make the result +exceed the precision requested. + +EXAM,bn_s_mp_mul_digs.c + +Lines @31,if@ to @35,}@ determine if the Comba method can be used first. The conditions for using the Comba routine are that min$(a.used, b.used) < \delta$ and +the number of digits of output is less than \textbf{MP\_WARRAY}. This new constant is used to control +the stack usage in the Comba routines. By default it is set to $\delta$ but can be reduced when memory is at a premium. + +Of particular importance is the calculation of the $ix+iy$'th column on lines @64,mp_word@, @65,mp_word@ and @66,mp_word@. Note how all of the +variables are cast to the type \textbf{mp\_word}, which is also the type of variable $\hat r$. That is to ensure that double precision operations +are used instead of single precision. The multiplication on line @65,) * (@ makes use of a specific GCC optimizer behaviour. On the outset it looks like +the compiler will have to use a double precision multiplication to produce the result required. Such an operation would be horribly slow on most +processors and drag this to a crawl. However, GCC is smart enough to realize that double wide output single precision multipliers can be used. For +example, the instruction ``MUL'' on the x86 processor can multiply two 32-bit values and produce a 64-bit result. + +\subsection{Faster Multiplication by the ``Comba'' Method} +MARK,COMBA + +One of the huge drawbacks of the ``baseline'' algorithms is that at the $O(n^2)$ level the carry must be computed and propagated upwards. This +makes the nested loop very sequential and hard to unroll and implement in parallel. The ``Comba'' \cite{COMBA} method is named after little known +(\textit{in cryptographic venues}) Paul G. Comba who described a method of implementing fast multipliers that do not require nested +carry fixup operations. As an interesting aside it seems that Paul Barrett describes a similar technique in +his 1986 paper \cite{BARRETT} written five years before. + +At the heart of the Comba technique is once again the long-hand algorithm. Except in this case a slight twist is placed on how +the columns of the result are produced. In the standard long-hand algorithm rows of products are produced then added together to form the +final result. In the baseline algorithm the columns are added together after each iteration to get the result instantaneously. + +In the Comba algorithm the columns of the result are produced entirely independently of each other. That is at the $O(n^2)$ level a +simple multiplication and addition step is performed. The carries of the columns are propagated after the nested loop to reduce the amount +of work requiored. Succintly the first step of the algorithm is to compute the product vector $\vec x$ as follows. + +\begin{equation} +\vec x_n = \sum_{i+j = n} a_ib_j, \forall n \in \lbrace 0, 1, 2, \ldots, i + j \rbrace +\end{equation} + +Where $\vec x_n$ is the $n'th$ column of the output vector. Consider the following example which computes the vector $\vec x$ for the multiplication +of $576$ and $241$. + +\newpage\begin{figure}[here] +\begin{small} +\begin{center} +\begin{tabular}{|c|c|c|c|c|c|} + \hline & & 5 & 7 & 6 & First Input\\ + \hline $\times$ & & 2 & 4 & 1 & Second Input\\ +\hline & & $1 \cdot 5 = 5$ & $1 \cdot 7 = 7$ & $1 \cdot 6 = 6$ & First pass \\ + & $4 \cdot 5 = 20$ & $4 \cdot 7+5=33$ & $4 \cdot 6+7=31$ & 6 & Second pass \\ + $2 \cdot 5 = 10$ & $2 \cdot 7 + 20 = 34$ & $2 \cdot 6+33=45$ & 31 & 6 & Third pass \\ +\hline 10 & 34 & 45 & 31 & 6 & Final Result \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Comba Multiplication Diagram} +\end{figure} + +At this point the vector $x = \left < 10, 34, 45, 31, 6 \right >$ is the result of the first step of the Comba multipler. +Now the columns must be fixed by propagating the carry upwards. The resultant vector will have one extra dimension over the input vector which is +congruent to adding a leading zero digit. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{Comba Fixup}. \\ +\textbf{Input}. Vector $\vec x$ of dimension $k$ \\ +\textbf{Output}. Vector $\vec x$ such that the carries have been propagated. \\ +\hline \\ +1. for $n$ from $0$ to $k - 1$ do \\ +\hspace{3mm}1.1 $\vec x_{n+1} \leftarrow \vec x_{n+1} + \lfloor \vec x_{n}/\beta \rfloor$ \\ +\hspace{3mm}1.2 $\vec x_{n} \leftarrow \vec x_{n} \mbox{ (mod }\beta\mbox{)}$ \\ +2. Return($\vec x$). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm Comba Fixup} +\end{figure} + +With that algorithm and $k = 5$ and $\beta = 10$ the following vector is produced $\vec x= \left < 1, 3, 8, 8, 1, 6 \right >$. In this case +$241 \cdot 576$ is in fact $138816$ and the procedure succeeded. If the algorithm is correct and as will be demonstrated shortly more +efficient than the baseline algorithm why not simply always use this algorithm? + +\subsubsection{Column Weight.} +At the nested $O(n^2)$ level the Comba method adds the product of two single precision variables to each column of the output +independently. A serious obstacle is if the carry is lost, due to lack of precision before the algorithm has a chance to fix +the carries. For example, in the multiplication of two three-digit numbers the third column of output will be the sum of +three single precision multiplications. If the precision of the accumulator for the output digits is less then $3 \cdot (\beta - 1)^2$ then +an overflow can occur and the carry information will be lost. For any $m$ and $n$ digit inputs the maximum weight of any column is +min$(m, n)$ which is fairly obvious. + +The maximum number of terms in any column of a product is known as the ``column weight'' and strictly governs when the algorithm can be used. Recall +from earlier that a double precision type has $\alpha$ bits of resolution and a single precision digit has $lg(\beta)$ bits of precision. Given these +two quantities we must not violate the following + +\begin{equation} +k \cdot \left (\beta - 1 \right )^2 < 2^{\alpha} +\end{equation} + +Which reduces to + +\begin{equation} +k \cdot \left ( \beta^2 - 2\beta + 1 \right ) < 2^{\alpha} +\end{equation} + +Let $\rho = lg(\beta)$ represent the number of bits in a single precision digit. By further re-arrangement of the equation the final solution is +found. + +\begin{equation} +k < {{2^{\alpha}} \over {\left (2^{2\rho} - 2^{\rho + 1} + 1 \right )}} +\end{equation} + +The defaults for LibTomMath are $\beta = 2^{28}$ and $\alpha = 2^{64}$ which means that $k$ is bounded by $k < 257$. In this configuration +the smaller input may not have more than $256$ digits if the Comba method is to be used. This is quite satisfactory for most applications since +$256$ digits would allow for numbers in the range of $0 \le x < 2^{7168}$ which, is much larger than most public key cryptographic algorithms require. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{fast\_s\_mp\_mul\_digs}. \\ +\textbf{Input}. mp\_int $a$, mp\_int $b$ and an integer $digs$ \\ +\textbf{Output}. $c \leftarrow \vert a \vert \cdot \vert b \vert \mbox{ (mod }\beta^{digs}\mbox{)}$. \\ +\hline \\ +Place an array of \textbf{MP\_WARRAY} double precision digits named $\hat W$ on the stack. \\ +1. If $c.alloc < digs$ then grow $c$ to $digs$ digits. (\textit{mp\_grow}) \\ +2. If step 1 failed return(\textit{MP\_MEM}).\\ +\\ +Zero the temporary array $\hat W$. \\ +3. for $n$ from $0$ to $digs - 1$ do \\ +\hspace{3mm}3.1 $\hat W_n \leftarrow 0$ \\ +\\ +Compute the columns. \\ +4. for $ix$ from $0$ to $a.used - 1$ do \\ +\hspace{3mm}4.1 $pb \leftarrow \mbox{min}(b.used, digs - ix)$ \\ +\hspace{3mm}4.2 If $pb < 1$ then goto step 5. \\ +\hspace{3mm}4.3 for $iy$ from $0$ to $pb - 1$ do \\ +\hspace{6mm}4.3.1 $\hat W_{ix+iy} \leftarrow \hat W_{ix+iy} + a_{ix}b_{iy}$ \\ +\\ +Propagate the carries upwards. \\ +5. $oldused \leftarrow c.used$ \\ +6. $c.used \leftarrow digs$ \\ +7. If $digs > 1$ then do \\ +\hspace{3mm}7.1. for $ix$ from $1$ to $digs - 1$ do \\ +\hspace{6mm}7.1.1 $\hat W_{ix} \leftarrow \hat W_{ix} + \lfloor \hat W_{ix-1} / \beta \rfloor$ \\ +\hspace{6mm}7.1.2 $c_{ix - 1} \leftarrow \hat W_{ix - 1} \mbox{ (mod }\beta\mbox{)}$ \\ +8. else do \\ +\hspace{3mm}8.1 $ix \leftarrow 0$ \\ +9. $c_{ix} \leftarrow \hat W_{ix} \mbox{ (mod }\beta\mbox{)}$ \\ +\\ +Zero excess digits. \\ +10. If $digs < oldused$ then do \\ +\hspace{3mm}10.1 for $n$ from $digs$ to $oldused - 1$ do \\ +\hspace{6mm}10.1.1 $c_n \leftarrow 0$ \\ +11. Clamp excessive digits of $c$. (\textit{mp\_clamp}) \\ +12. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm fast\_s\_mp\_mul\_digs} +\label{fig:COMBAMULT} +\end{figure} + +\textbf{Algorithm fast\_s\_mp\_mul\_digs.} +This algorithm performs the unsigned multiplication of $a$ and $b$ using the Comba method limited to $digs$ digits of precision. The algorithm +essentially peforms the same calculation as algorithm s\_mp\_mul\_digs, just much faster. + +The array $\hat W$ is meant to be on the stack when the algorithm is used. The size of the array does not change which is ideal. Note also that +unlike algorithm s\_mp\_mul\_digs no temporary mp\_int is required since the result is calculated directly in $\hat W$. + +The $O(n^2)$ loop on step four is where the Comba method's advantages begin to show through in comparison to the baseline algorithm. The lack of +a carry variable or propagation in this loop allows the loop to be performed with only single precision multiplication and additions. Now that each +iteration of the inner loop can be performed independent of the others the inner loop can be performed with a high level of parallelism. + +To measure the benefits of the Comba method over the baseline method consider the number of operations that are required. If the +cost in terms of time of a multiply and addition is $p$ and the cost of a carry propagation is $q$ then a baseline multiplication would require +$O \left ((p + q)n^2 \right )$ time to multiply two $n$-digit numbers. The Comba method requires only $O(pn^2 + qn)$ time, however in practice, +the speed increase is actually much more. With $O(n)$ space the algorithm can be reduced to $O(pn + qn)$ time by implementing the $n$ multiply +and addition operations in the nested loop in parallel. + +EXAM,bn_fast_s_mp_mul_digs.c + +The memset on line @47,memset@ clears the initial $\hat W$ array to zero in a single step. Like the slower baseline multiplication +implementation a series of aliases (\textit{lines @67, tmpx@, @70, tmpy@ and @75,_W@}) are used to simplify the inner $O(n^2)$ loop. +In this case a new alias $\_\hat W$ has been added which refers to the double precision columns offset by $ix$ in each pass. + +The inner loop on lines @83,for@, @84,mp_word@ and @85,}@ is where the algorithm will spend the majority of the time, which is why it has been +stripped to the bones of any extra baggage\footnote{Hence the pointer aliases.}. On x86 processors the multiplication and additions amount to at the +very least five instructions (\textit{two loads, two additions, one multiply}) while on the ARMv4 processors they amount to only three +(\textit{one load, one store, one multiply-add}). For both of the x86 and ARMv4 processors the GCC compiler performs a good job at unrolling the loop +and scheduling the instructions so there are very few dependency stalls. + +In theory the difference between the baseline and comba algorithms is a mere $O(qn)$ time difference. However, in the $O(n^2)$ nested loop of the +baseline method there are dependency stalls as the algorithm must wait for the multiplier to finish before propagating the carry to the next +digit. As a result fewer of the often multiple execution units\footnote{The AMD Athlon has three execution units and the Intel P4 has four.} can +be simultaneously used. + +\subsection{Polynomial Basis Multiplication} +To break the $O(n^2)$ barrier in multiplication requires a completely different look at integer multiplication. In the following algorithms +the use of polynomial basis representation for two integers $a$ and $b$ as $f(x) = \sum_{i=0}^{n} a_i x^i$ and +$g(x) = \sum_{i=0}^{n} b_i x^i$ respectively, is required. In this system both $f(x)$ and $g(x)$ have $n + 1$ terms and are of the $n$'th degree. + +The product $a \cdot b \equiv f(x)g(x)$ is the polynomial $W(x) = \sum_{i=0}^{2n} w_i x^i$. The coefficients $w_i$ will +directly yield the desired product when $\beta$ is substituted for $x$. The direct solution to solve for the $2n + 1$ coefficients +requires $O(n^2)$ time and would in practice be slower than the Comba technique. + +However, numerical analysis theory indicates that only $2n + 1$ distinct points in $W(x)$ are required to determine the values of the $2n + 1$ unknown +coefficients. This means by finding $\zeta_y = W(y)$ for $2n + 1$ small values of $y$ the coefficients of $W(x)$ can be found with +Gaussian elimination. This technique is also occasionally refered to as the \textit{interpolation technique} (\textit{references please...}) since in +effect an interpolation based on $2n + 1$ points will yield a polynomial equivalent to $W(x)$. + +The coefficients of the polynomial $W(x)$ are unknown which makes finding $W(y)$ for any value of $y$ impossible. However, since +$W(x) = f(x)g(x)$ the equivalent $\zeta_y = f(y) g(y)$ can be used in its place. The benefit of this technique stems from the +fact that $f(y)$ and $g(y)$ are much smaller than either $a$ or $b$ respectively. As a result finding the $2n + 1$ relations required +by multiplying $f(y)g(y)$ involves multiplying integers that are much smaller than either of the inputs. + +When picking points to gather relations there are always three obvious points to choose, $y = 0, 1$ and $ \infty$. The $\zeta_0$ term +is simply the product $W(0) = w_0 = a_0 \cdot b_0$. The $\zeta_1$ term is the product +$W(1) = \left (\sum_{i = 0}^{n} a_i \right ) \left (\sum_{i = 0}^{n} b_i \right )$. The third point $\zeta_{\infty}$ is less obvious but rather +simple to explain. The $2n + 1$'th coefficient of $W(x)$ is numerically equivalent to the most significant column in an integer multiplication. +The point at $\infty$ is used symbolically to represent the most significant column, that is $W(\infty) = w_{2n} = a_nb_n$. Note that the +points at $y = 0$ and $\infty$ yield the coefficients $w_0$ and $w_{2n}$ directly. + +If more points are required they should be of small values and powers of two such as $2^q$ and the related \textit{mirror points} +$\left (2^q \right )^{2n} \cdot \zeta_{2^{-q}}$ for small values of $q$. The term ``mirror point'' stems from the fact that +$\left (2^q \right )^{2n} \cdot \zeta_{2^{-q}}$ can be calculated in the exact opposite fashion as $\zeta_{2^q}$. For +example, when $n = 2$ and $q = 1$ then following two equations are equivalent to the point $\zeta_{2}$ and its mirror. + +\begin{eqnarray} +\zeta_{2} = f(2)g(2) = (4a_2 + 2a_1 + a_0)(4b_2 + 2b_1 + b_0) \nonumber \\ +16 \cdot \zeta_{1 \over 2} = 4f({1\over 2}) \cdot 4g({1 \over 2}) = (a_2 + 2a_1 + 4a_0)(b_2 + 2b_1 + 4b_0) +\end{eqnarray} + +Using such points will allow the values of $f(y)$ and $g(y)$ to be independently calculated using only left shifts. For example, when $n = 2$ the +polynomial $f(2^q)$ is equal to $2^q((2^qa_2) + a_1) + a_0$. This technique of polynomial representation is known as Horner's method. + +As a general rule of the algorithm when the inputs are split into $n$ parts each there are $2n - 1$ multiplications. Each multiplication is of +multiplicands that have $n$ times fewer digits than the inputs. The asymptotic running time of this algorithm is +$O \left ( k^{lg_n(2n - 1)} \right )$ for $k$ digit inputs (\textit{assuming they have the same number of digits}). Figure~\ref{fig:exponent} +summarizes the exponents for various values of $n$. + +\begin{figure} +\begin{center} +\begin{tabular}{|c|c|c|} +\hline \textbf{Split into $n$ Parts} & \textbf{Exponent} & \textbf{Notes}\\ +\hline $2$ & $1.584962501$ & This is Karatsuba Multiplication. \\ +\hline $3$ & $1.464973520$ & This is Toom-Cook Multiplication. \\ +\hline $4$ & $1.403677461$ &\\ +\hline $5$ & $1.365212389$ &\\ +\hline $10$ & $1.278753601$ &\\ +\hline $100$ & $1.149426538$ &\\ +\hline $1000$ & $1.100270931$ &\\ +\hline $10000$ & $1.075252070$ &\\ +\hline +\end{tabular} +\end{center} +\caption{Asymptotic Running Time of Polynomial Basis Multiplication} +\label{fig:exponent} +\end{figure} + +At first it may seem like a good idea to choose $n = 1000$ since the exponent is approximately $1.1$. However, the overhead +of solving for the 2001 terms of $W(x)$ will certainly consume any savings the algorithm could offer for all but exceedingly large +numbers. + +\subsubsection{Cutoff Point} +The polynomial basis multiplication algorithms all require fewer single precision multiplications than a straight Comba approach. However, +the algorithms incur an overhead (\textit{at the $O(n)$ work level}) since they require a system of equations to be solved. This makes the +polynomial basis approach more costly to use with small inputs. + +Let $m$ represent the number of digits in the multiplicands (\textit{assume both multiplicands have the same number of digits}). There exists a +point $y$ such that when $m < y$ the polynomial basis algorithms are more costly than Comba, when $m = y$ they are roughly the same cost and +when $m > y$ the Comba methods are slower than the polynomial basis algorithms. + +The exact location of $y$ depends on several key architectural elements of the computer platform in question. + +\begin{enumerate} +\item The ratio of clock cycles for single precision multiplication versus other simpler operations such as addition, shifting, etc. For example +on the AMD Athlon the ratio is roughly $17 : 1$ while on the Intel P4 it is $29 : 1$. The higher the ratio in favour of multiplication the lower +the cutoff point $y$ will be. + +\item The complexity of the linear system of equations (\textit{for the coefficients of $W(x)$}) is. Generally speaking as the number of splits +grows the complexity grows substantially. Ideally solving the system will only involve addition, subtraction and shifting of integers. This +directly reflects on the ratio previous mentioned. + +\item To a lesser extent memory bandwidth and function call overheads. Provided the values are in the processor cache this is less of an +influence over the cutoff point. + +\end{enumerate} + +A clean cutoff point separation occurs when a point $y$ is found such that all of the cutoff point conditions are met. For example, if the point +is too low then there will be values of $m$ such that $m > y$ and the Comba method is still faster. Finding the cutoff points is fairly simple when +a high resolution timer is available. + +\subsection{Karatsuba Multiplication} +Karatsuba \cite{KARA} multiplication when originally proposed in 1962 was among the first set of algorithms to break the $O(n^2)$ barrier for +general purpose multiplication. Given two polynomial basis representations $f(x) = ax + b$ and $g(x) = cx + d$, Karatsuba proved with +light algebra \cite{KARAP} that the following polynomial is equivalent to multiplication of the two integers the polynomials represent. + +\begin{equation} +f(x) \cdot g(x) = acx^2 + ((a - b)(c - d) + ac + bd)x + bd +\end{equation} + +Using the observation that $ac$ and $bd$ could be re-used only three half sized multiplications would be required to produce the product. Applying +this algorithm recursively, the work factor becomes $O(n^{lg(3)})$ which is substantially better than the work factor $O(n^2)$ of the Comba technique. It turns +out what Karatsuba did not know or at least did not publish was that this is simply polynomial basis multiplication with the points +$\zeta_0$, $\zeta_{\infty}$ and $-\zeta_{-1}$. Consider the resultant system of equations. + +\begin{center} +\begin{tabular}{rcrcrcrc} +$\zeta_{0}$ & $=$ & & & & & $w_0$ \\ +$-\zeta_{-1}$ & $=$ & $-w_2$ & $+$ & $w_1$ & $-$ & $w_0$ \\ +$\zeta_{\infty}$ & $=$ & $w_2$ & & & & \\ +\end{tabular} +\end{center} + +By adding the first and last equation to the equation in the middle the term $w_1$ can be isolated and all three coefficients solved for. The simplicity +of this system of equations has made Karatsuba fairly popular. In fact the cutoff point is often fairly low\footnote{With LibTomMath 0.18 it is 70 and 109 digits for the Intel P4 and AMD Athlon respectively.} +making it an ideal algorithm to speed up certain public key cryptosystems such as RSA and Diffie-Hellman. It is worth noting that the point +$\zeta_1$ could be substituted for $-\zeta_{-1}$. In this case the first and third row are subtracted instead of added to the second row. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_karatsuba\_mul}. \\ +\textbf{Input}. mp\_int $a$ and mp\_int $b$ \\ +\textbf{Output}. $c \leftarrow \vert a \vert \cdot \vert b \vert$ \\ +\hline \\ +1. Init the following mp\_int variables: $x0$, $x1$, $y0$, $y1$, $t1$, $x0y0$, $x1y1$.\\ +2. If step 2 failed then return(\textit{MP\_MEM}). \\ +\\ +Split the input. e.g. $a = x1 \cdot \beta^B + x0$ \\ +3. $B \leftarrow \mbox{min}(a.used, b.used)/2$ \\ +4. $x0 \leftarrow a \mbox{ (mod }\beta^B\mbox{)}$ (\textit{mp\_mod\_2d}) \\ +5. $y0 \leftarrow b \mbox{ (mod }\beta^B\mbox{)}$ \\ +6. $x1 \leftarrow \lfloor a / \beta^B \rfloor$ (\textit{mp\_rshd}) \\ +7. $y1 \leftarrow \lfloor b / \beta^B \rfloor$ \\ +\\ +Calculate the three products. \\ +8. $x0y0 \leftarrow x0 \cdot y0$ (\textit{mp\_mul}) \\ +9. $x1y1 \leftarrow x1 \cdot y1$ \\ +10. $t1 \leftarrow x1 - x0$ (\textit{mp\_sub}) \\ +11. $x0 \leftarrow y1 - y0$ \\ +12. $t1 \leftarrow t1 \cdot x0$ \\ +\\ +Calculate the middle term. \\ +13. $x0 \leftarrow x0y0 + x1y1$ \\ +14. $t1 \leftarrow x0 - t1$ \\ +\\ +Calculate the final product. \\ +15. $t1 \leftarrow t1 \cdot \beta^B$ (\textit{mp\_lshd}) \\ +16. $x1y1 \leftarrow x1y1 \cdot \beta^{2B}$ \\ +17. $t1 \leftarrow x0y0 + t1$ \\ +18. $c \leftarrow t1 + x1y1$ \\ +19. Clear all of the temporary variables. \\ +20. Return(\textit{MP\_OKAY}).\\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_karatsuba\_mul} +\end{figure} + +\textbf{Algorithm mp\_karatsuba\_mul.} +This algorithm computes the unsigned product of two inputs using the Karatsuba multiplication algorithm. It is loosely based on the description +from Knuth \cite[pp. 294-295]{TAOCPV2}. + +\index{radix point} +In order to split the two inputs into their respective halves, a suitable \textit{radix point} must be chosen. The radix point chosen must +be used for both of the inputs meaning that it must be smaller than the smallest input. Step 3 chooses the radix point $B$ as half of the +smallest input \textbf{used} count. After the radix point is chosen the inputs are split into lower and upper halves. Step 4 and 5 +compute the lower halves. Step 6 and 7 computer the upper halves. + +After the halves have been computed the three intermediate half-size products must be computed. Step 8 and 9 compute the trivial products +$x0 \cdot y0$ and $x1 \cdot y1$. The mp\_int $x0$ is used as a temporary variable after $x1 - x0$ has been computed. By using $x0$ instead +of an additional temporary variable, the algorithm can avoid an addition memory allocation operation. + +The remaining steps 13 through 18 compute the Karatsuba polynomial through a variety of digit shifting and addition operations. + +EXAM,bn_mp_karatsuba_mul.c + +The new coding element in this routine, not seen in previous routines, is the usage of goto statements. The conventional +wisdom is that goto statements should be avoided. This is generally true, however when every single function call can fail, it makes sense +to handle error recovery with a single piece of code. Lines @61,if@ to @75,if@ handle initializing all of the temporary variables +required. Note how each of the if statements goes to a different label in case of failure. This allows the routine to correctly free only +the temporaries that have been successfully allocated so far. + +The temporary variables are all initialized using the mp\_init\_size routine since they are expected to be large. This saves the +additional reallocation that would have been necessary. Also $x0$, $x1$, $y0$ and $y1$ have to be able to hold at least their respective +number of digits for the next section of code. + +The first algebraic portion of the algorithm is to split the two inputs into their halves. However, instead of using mp\_mod\_2d and mp\_rshd +to extract the halves, the respective code has been placed inline within the body of the function. To initialize the halves, the \textbf{used} and +\textbf{sign} members are copied first. The first for loop on line @98,for@ copies the lower halves. Since they are both the same magnitude it +is simpler to calculate both lower halves in a single loop. The for loop on lines @104,for@ and @109,for@ calculate the upper halves $x1$ and +$y1$ respectively. + +By inlining the calculation of the halves, the Karatsuba multiplier has a slightly lower overhead and can be used for smaller magnitude inputs. + +When line @152,err@ is reached, the algorithm has completed succesfully. The ``error status'' variable $err$ is set to \textbf{MP\_OKAY} so that +the same code that handles errors can be used to clear the temporary variables and return. + +\subsection{Toom-Cook $3$-Way Multiplication} +Toom-Cook $3$-Way \cite{TOOM} multiplication is essentially the polynomial basis algorithm for $n = 2$ except that the points are +chosen such that $\zeta$ is easy to compute and the resulting system of equations easy to reduce. Here, the points $\zeta_{0}$, +$16 \cdot \zeta_{1 \over 2}$, $\zeta_1$, $\zeta_2$ and $\zeta_{\infty}$ make up the five required points to solve for the coefficients +of the $W(x)$. + +With the five relations that Toom-Cook specifies, the following system of equations is formed. + +\begin{center} +\begin{tabular}{rcrcrcrcrcr} +$\zeta_0$ & $=$ & $0w_4$ & $+$ & $0w_3$ & $+$ & $0w_2$ & $+$ & $0w_1$ & $+$ & $1w_0$ \\ +$16 \cdot \zeta_{1 \over 2}$ & $=$ & $1w_4$ & $+$ & $2w_3$ & $+$ & $4w_2$ & $+$ & $8w_1$ & $+$ & $16w_0$ \\ +$\zeta_1$ & $=$ & $1w_4$ & $+$ & $1w_3$ & $+$ & $1w_2$ & $+$ & $1w_1$ & $+$ & $1w_0$ \\ +$\zeta_2$ & $=$ & $16w_4$ & $+$ & $8w_3$ & $+$ & $4w_2$ & $+$ & $2w_1$ & $+$ & $1w_0$ \\ +$\zeta_{\infty}$ & $=$ & $1w_4$ & $+$ & $0w_3$ & $+$ & $0w_2$ & $+$ & $0w_1$ & $+$ & $0w_0$ \\ +\end{tabular} +\end{center} + +A trivial solution to this matrix requires $12$ subtractions, two multiplications by a small power of two, two divisions by a small power +of two, two divisions by three and one multiplication by three. All of these $19$ sub-operations require less than quadratic time, meaning that +the algorithm can be faster than a baseline multiplication. However, the greater complexity of this algorithm places the cutoff point +(\textbf{TOOM\_MUL\_CUTOFF}) where Toom-Cook becomes more efficient much higher than the Karatsuba cutoff point. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_toom\_mul}. \\ +\textbf{Input}. mp\_int $a$ and mp\_int $b$ \\ +\textbf{Output}. $c \leftarrow a \cdot b $ \\ +\hline \\ +Split $a$ and $b$ into three pieces. E.g. $a = a_2 \beta^{2k} + a_1 \beta^{k} + a_0$ \\ +1. $k \leftarrow \lfloor \mbox{min}(a.used, b.used) / 3 \rfloor$ \\ +2. $a_0 \leftarrow a \mbox{ (mod }\beta^{k}\mbox{)}$ \\ +3. $a_1 \leftarrow \lfloor a / \beta^k \rfloor$, $a_1 \leftarrow a_1 \mbox{ (mod }\beta^{k}\mbox{)}$ \\ +4. $a_2 \leftarrow \lfloor a / \beta^{2k} \rfloor$, $a_2 \leftarrow a_2 \mbox{ (mod }\beta^{k}\mbox{)}$ \\ +5. $b_0 \leftarrow a \mbox{ (mod }\beta^{k}\mbox{)}$ \\ +6. $b_1 \leftarrow \lfloor a / \beta^k \rfloor$, $b_1 \leftarrow b_1 \mbox{ (mod }\beta^{k}\mbox{)}$ \\ +7. $b_2 \leftarrow \lfloor a / \beta^{2k} \rfloor$, $b_2 \leftarrow b_2 \mbox{ (mod }\beta^{k}\mbox{)}$ \\ +\\ +Find the five equations for $w_0, w_1, ..., w_4$. \\ +8. $w_0 \leftarrow a_0 \cdot b_0$ \\ +9. $w_4 \leftarrow a_2 \cdot b_2$ \\ +10. $tmp_1 \leftarrow 2 \cdot a_0$, $tmp_1 \leftarrow a_1 + tmp_1$, $tmp_1 \leftarrow 2 \cdot tmp_1$, $tmp_1 \leftarrow tmp_1 + a_2$ \\ +11. $tmp_2 \leftarrow 2 \cdot b_0$, $tmp_2 \leftarrow b_1 + tmp_2$, $tmp_2 \leftarrow 2 \cdot tmp_2$, $tmp_2 \leftarrow tmp_2 + b_2$ \\ +12. $w_1 \leftarrow tmp_1 \cdot tmp_2$ \\ +13. $tmp_1 \leftarrow 2 \cdot a_2$, $tmp_1 \leftarrow a_1 + tmp_1$, $tmp_1 \leftarrow 2 \cdot tmp_1$, $tmp_1 \leftarrow tmp_1 + a_0$ \\ +14. $tmp_2 \leftarrow 2 \cdot b_2$, $tmp_2 \leftarrow b_1 + tmp_2$, $tmp_2 \leftarrow 2 \cdot tmp_2$, $tmp_2 \leftarrow tmp_2 + b_0$ \\ +15. $w_3 \leftarrow tmp_1 \cdot tmp_2$ \\ +16. $tmp_1 \leftarrow a_0 + a_1$, $tmp_1 \leftarrow tmp_1 + a_2$, $tmp_2 \leftarrow b_0 + b_1$, $tmp_2 \leftarrow tmp_2 + b_2$ \\ +17. $w_2 \leftarrow tmp_1 \cdot tmp_2$ \\ +\\ +Continued on the next page.\\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_toom\_mul} +\end{figure} + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_toom\_mul} (continued). \\ +\textbf{Input}. mp\_int $a$ and mp\_int $b$ \\ +\textbf{Output}. $c \leftarrow a \cdot b $ \\ +\hline \\ +Now solve the system of equations. \\ +18. $w_1 \leftarrow w_4 - w_1$, $w_3 \leftarrow w_3 - w_0$ \\ +19. $w_1 \leftarrow \lfloor w_1 / 2 \rfloor$, $w_3 \leftarrow \lfloor w_3 / 2 \rfloor$ \\ +20. $w_2 \leftarrow w_2 - w_0$, $w_2 \leftarrow w_2 - w_4$ \\ +21. $w_1 \leftarrow w_1 - w_2$, $w_3 \leftarrow w_3 - w_2$ \\ +22. $tmp_1 \leftarrow 8 \cdot w_0$, $w_1 \leftarrow w_1 - tmp_1$, $tmp_1 \leftarrow 8 \cdot w_4$, $w_3 \leftarrow w_3 - tmp_1$ \\ +23. $w_2 \leftarrow 3 \cdot w_2$, $w_2 \leftarrow w_2 - w_1$, $w_2 \leftarrow w_2 - w_3$ \\ +24. $w_1 \leftarrow w_1 - w_2$, $w_3 \leftarrow w_3 - w_2$ \\ +25. $w_1 \leftarrow \lfloor w_1 / 3 \rfloor, w_3 \leftarrow \lfloor w_3 / 3 \rfloor$ \\ +\\ +Now substitute $\beta^k$ for $x$ by shifting $w_0, w_1, ..., w_4$. \\ +26. for $n$ from $1$ to $4$ do \\ +\hspace{3mm}26.1 $w_n \leftarrow w_n \cdot \beta^{nk}$ \\ +27. $c \leftarrow w_0 + w_1$, $c \leftarrow c + w_2$, $c \leftarrow c + w_3$, $c \leftarrow c + w_4$ \\ +28. Return(\textit{MP\_OKAY}) \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_toom\_mul (continued)} +\end{figure} + +\textbf{Algorithm mp\_toom\_mul.} +This algorithm computes the product of two mp\_int variables $a$ and $b$ using the Toom-Cook approach. Compared to the Karatsuba multiplication, this +algorithm has a lower asymptotic running time of approximately $O(n^{1.464})$ but at an obvious cost in overhead. In this +description, several statements have been compounded to save space. The intention is that the statements are executed from left to right across +any given step. + +The two inputs $a$ and $b$ are first split into three $k$-digit integers $a_0, a_1, a_2$ and $b_0, b_1, b_2$ respectively. From these smaller +integers the coefficients of the polynomial basis representations $f(x)$ and $g(x)$ are known and can be used to find the relations required. + +The first two relations $w_0$ and $w_4$ are the points $\zeta_{0}$ and $\zeta_{\infty}$ respectively. The relation $w_1, w_2$ and $w_3$ correspond +to the points $16 \cdot \zeta_{1 \over 2}, \zeta_{2}$ and $\zeta_{1}$ respectively. These are found using logical shifts to independently find +$f(y)$ and $g(y)$ which significantly speeds up the algorithm. + +After the five relations $w_0, w_1, \ldots, w_4$ have been computed, the system they represent must be solved in order for the unknown coefficients +$w_1, w_2$ and $w_3$ to be isolated. The steps 18 through 25 perform the system reduction required as previously described. Each step of +the reduction represents the comparable matrix operation that would be performed had this been performed by pencil. For example, step 18 indicates +that row $1$ must be subtracted from row $4$ and simultaneously row $0$ subtracted from row $3$. + +Once the coeffients have been isolated, the polynomial $W(x) = \sum_{i=0}^{2n} w_i x^i$ is known. By substituting $\beta^{k}$ for $x$, the integer +result $a \cdot b$ is produced. + +EXAM,bn_mp_toom_mul.c + +-- Comments to be added during editing phase. + +\subsection{Signed Multiplication} +Now that algorithms to handle multiplications of every useful dimensions have been developed, a rather simple finishing touch is required. So far all +of the multiplication algorithms have been unsigned multiplications which leaves only a signed multiplication algorithm to be established. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_mul}. \\ +\textbf{Input}. mp\_int $a$ and mp\_int $b$ \\ +\textbf{Output}. $c \leftarrow a \cdot b$ \\ +\hline \\ +1. If $a.sign = b.sign$ then \\ +\hspace{3mm}1.1 $sign = MP\_ZPOS$ \\ +2. else \\ +\hspace{3mm}2.1 $sign = MP\_ZNEG$ \\ +3. If min$(a.used, b.used) \ge TOOM\_MUL\_CUTOFF$ then \\ +\hspace{3mm}3.1 $c \leftarrow a \cdot b$ using algorithm mp\_toom\_mul \\ +4. else if min$(a.used, b.used) \ge KARATSUBA\_MUL\_CUTOFF$ then \\ +\hspace{3mm}4.1 $c \leftarrow a \cdot b$ using algorithm mp\_karatsuba\_mul \\ +5. else \\ +\hspace{3mm}5.1 $digs \leftarrow a.used + b.used + 1$ \\ +\hspace{3mm}5.2 If $digs < MP\_ARRAY$ and min$(a.used, b.used) \le \delta$ then \\ +\hspace{6mm}5.2.1 $c \leftarrow a \cdot b \mbox{ (mod }\beta^{digs}\mbox{)}$ using algorithm fast\_s\_mp\_mul\_digs. \\ +\hspace{3mm}5.3 else \\ +\hspace{6mm}5.3.1 $c \leftarrow a \cdot b \mbox{ (mod }\beta^{digs}\mbox{)}$ using algorithm s\_mp\_mul\_digs. \\ +6. $c.sign \leftarrow sign$ \\ +7. Return the result of the unsigned multiplication performed. \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_mul} +\end{figure} + +\textbf{Algorithm mp\_mul.} +This algorithm performs the signed multiplication of two inputs. It will make use of any of the three unsigned multiplication algorithms +available when the input is of appropriate size. The \textbf{sign} of the result is not set until the end of the algorithm since algorithm +s\_mp\_mul\_digs will clear it. + +EXAM,bn_mp_mul.c + +The implementation is rather simplistic and is not particularly noteworthy. Line @22,?@ computes the sign of the result using the ``?'' +operator from the C programming language. Line @37,<<@ computes $\delta$ using the fact that $1 << k$ is equal to $2^k$. + +\section{Squaring} + +Squaring is a special case of multiplication where both multiplicands are equal. At first it may seem like there is no significant optimization +available but in fact there is. Consider the multiplication of $576$ against $241$. In total there will be nine single precision multiplications +performed which are $1\cdot 6$, $1 \cdot 7$, $1 \cdot 5$, $4 \cdot 6$, $4 \cdot 7$, $4 \cdot 5$, $2 \cdot 6$, $2 \cdot 7$ and $2 \cdot 5$. Now consider +the multiplication of $123$ against $123$. The nine products are $3 \cdot 3$, $3 \cdot 2$, $3 \cdot 1$, $2 \cdot 3$, $2 \cdot 2$, $2 \cdot 1$, +$1 \cdot 3$, $1 \cdot 2$ and $1 \cdot 1$. On closer inspection some of the products are equivalent. For example, $3 \cdot 2 = 2 \cdot 3$ +and $3 \cdot 1 = 1 \cdot 3$. + +For any $n$-digit input, there are ${{\left (n^2 + n \right)}\over 2}$ possible unique single precision multiplications required compared to the $n^2$ +required for multiplication. The following diagram gives an example of the operations required. + +\begin{figure}[here] +\begin{center} +\begin{tabular}{ccccc|c} +&&1&2&3&\\ +$\times$ &&1&2&3&\\ +\hline && $3 \cdot 1$ & $3 \cdot 2$ & $3 \cdot 3$ & Row 0\\ + & $2 \cdot 1$ & $2 \cdot 2$ & $2 \cdot 3$ && Row 1 \\ + $1 \cdot 1$ & $1 \cdot 2$ & $1 \cdot 3$ &&& Row 2 \\ +\end{tabular} +\end{center} +\caption{Squaring Optimization Diagram} +\end{figure} + +MARK,SQUARE +Starting from zero and numbering the columns from right to left a very simple pattern becomes obvious. For the purposes of this discussion let $x$ +represent the number being squared. The first observation is that in row $k$ the $2k$'th column of the product has a $\left (x_k \right)^2$ term in it. + +The second observation is that every column $j$ in row $k$ where $j \ne 2k$ is part of a double product. Every non-square term of a column will +appear twice hence the name ``double product''. Every odd column is made up entirely of double products. In fact every column is made up of double +products and at most one square (\textit{see the exercise section}). + +The third and final observation is that for row $k$ the first unique non-square term, that is, one that hasn't already appeared in an earlier row, +occurs at column $2k + 1$. For example, on row $1$ of the previous squaring, column one is part of the double product with column one from row zero. +Column two of row one is a square and column three is the first unique column. + +\subsection{The Baseline Squaring Algorithm} +The baseline squaring algorithm is meant to be a catch-all squaring algorithm. It will handle any of the input sizes that the faster routines +will not handle. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{s\_mp\_sqr}. \\ +\textbf{Input}. mp\_int $a$ \\ +\textbf{Output}. $b \leftarrow a^2$ \\ +\hline \\ +1. Init a temporary mp\_int of at least $2 \cdot a.used +1$ digits. (\textit{mp\_init\_size}) \\ +2. If step 1 failed return(\textit{MP\_MEM}) \\ +3. $t.used \leftarrow 2 \cdot a.used + 1$ \\ +4. For $ix$ from 0 to $a.used - 1$ do \\ +\hspace{3mm}Calculate the square. \\ +\hspace{3mm}4.1 $\hat r \leftarrow t_{2ix} + \left (a_{ix} \right )^2$ \\ +\hspace{3mm}4.2 $t_{2ix} \leftarrow \hat r \mbox{ (mod }\beta\mbox{)}$ \\ +\hspace{3mm}Calculate the double products after the square. \\ +\hspace{3mm}4.3 $u \leftarrow \lfloor \hat r / \beta \rfloor$ \\ +\hspace{3mm}4.4 For $iy$ from $ix + 1$ to $a.used - 1$ do \\ +\hspace{6mm}4.4.1 $\hat r \leftarrow 2 \cdot a_{ix}a_{iy} + t_{ix + iy} + u$ \\ +\hspace{6mm}4.4.2 $t_{ix + iy} \leftarrow \hat r \mbox{ (mod }\beta\mbox{)}$ \\ +\hspace{6mm}4.4.3 $u \leftarrow \lfloor \hat r / \beta \rfloor$ \\ +\hspace{3mm}Set the last carry. \\ +\hspace{3mm}4.5 While $u > 0$ do \\ +\hspace{6mm}4.5.1 $iy \leftarrow iy + 1$ \\ +\hspace{6mm}4.5.2 $\hat r \leftarrow t_{ix + iy} + u$ \\ +\hspace{6mm}4.5.3 $t_{ix + iy} \leftarrow \hat r \mbox{ (mod }\beta\mbox{)}$ \\ +\hspace{6mm}4.5.4 $u \leftarrow \lfloor \hat r / \beta \rfloor$ \\ +5. Clamp excess digits of $t$. (\textit{mp\_clamp}) \\ +6. Exchange $b$ and $t$. \\ +7. Clear $t$ (\textit{mp\_clear}) \\ +8. Return(\textit{MP\_OKAY}) \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm s\_mp\_sqr} +\end{figure} + +\textbf{Algorithm s\_mp\_sqr.} +This algorithm computes the square of an input using the three observations on squaring. It is based fairly faithfully on algorithm 14.16 of HAC +\cite[pp.596-597]{HAC}. Similar to algorithm s\_mp\_mul\_digs, a temporary mp\_int is allocated to hold the result of the squaring. This allows the +destination mp\_int to be the same as the source mp\_int. + +The outer loop of this algorithm begins on step 4. It is best to think of the outer loop as walking down the rows of the partial results, while +the inner loop computes the columns of the partial result. Step 4.1 and 4.2 compute the square term for each row, and step 4.3 and 4.4 propagate +the carry and compute the double products. + +The requirement that a mp\_word be able to represent the range $0 \le x < 2 \beta^2$ arises from this +very algorithm. The product $a_{ix}a_{iy}$ will lie in the range $0 \le x \le \beta^2 - 2\beta + 1$ which is obviously less than $\beta^2$ meaning that +when it is multiplied by two, it can be properly represented by a mp\_word. + +Similar to algorithm s\_mp\_mul\_digs, after every pass of the inner loop, the destination is correctly set to the sum of all of the partial +results calculated so far. This involves expensive carry propagation which will be eliminated in the next algorithm. + +EXAM,bn_s_mp_sqr.c + +Inside the outer loop (\textit{see line @32,for@}) the square term is calculated on line @35,r =@. Line @42,>>@ extracts the carry from the square +term. Aliases for $a_{ix}$ and $t_{ix+iy}$ are initialized on lines @45,tmpx@ and @48,tmpt@ respectively. The doubling is performed using two +additions (\textit{see line @57,r + r@}) since it is usually faster than shifting,if not at least as fast. + +\subsection{Faster Squaring by the ``Comba'' Method} +A major drawback to the baseline method is the requirement for single precision shifting inside the $O(n^2)$ nested loop. Squaring has an additional +drawback that it must double the product inside the inner loop as well. As for multiplication, the Comba technique can be used to eliminate these +performance hazards. + +The first obvious solution is to make an array of mp\_words which will hold all of the columns. This will indeed eliminate all of the carry +propagation operations from the inner loop. However, the inner product must still be doubled $O(n^2)$ times. The solution stems from the simple fact +that $2a + 2b + 2c = 2(a + b + c)$. That is the sum of all of the double products is equal to double the sum of all the products. For example, +$ab + ba + ac + ca = 2ab + 2ac = 2(ab + ac)$. + +However, we cannot simply double all of the columns, since the squares appear only once per row. The most practical solution is to have two mp\_word +arrays. One array will hold the squares and the other array will hold the double products. With both arrays the doubling and carry propagation can be +moved to a $O(n)$ work level outside the $O(n^2)$ level. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{fast\_s\_mp\_sqr}. \\ +\textbf{Input}. mp\_int $a$ \\ +\textbf{Output}. $b \leftarrow a^2$ \\ +\hline \\ +Place two arrays of \textbf{MP\_WARRAY} mp\_words named $\hat W$ and $\hat {X}$ on the stack. \\ +1. If $b.alloc < 2a.used + 1$ then grow $b$ to $2a.used + 1$ digits. (\textit{mp\_grow}). \\ +2. If step 1 failed return(\textit{MP\_MEM}). \\ +3. for $ix$ from $0$ to $2a.used + 1$ do \\ +\hspace{3mm}3.1 $\hat W_{ix} \leftarrow 0$ \\ +\hspace{3mm}3.2 $\hat {X}_{ix} \leftarrow 0$ \\ +4. for $ix$ from $0$ to $a.used - 1$ do \\ +\hspace{3mm}Compute the square.\\ +\hspace{3mm}4.1 $\hat {X}_{ix+ix} \leftarrow \left ( a_{ix} \right )^2$ \\ +\\ +\hspace{3mm}Compute the double products.\\ +\hspace{3mm}4.2 for $iy$ from $ix + 1$ to $a.used - 1$ do \\ +\hspace{6mm}4.2.1 $\hat W_{ix+iy} \leftarrow \hat W_{ix+iy} + a_{ix}a_{iy}$ \\ +5. $oldused \leftarrow b.used$ \\ +6. $b.used \leftarrow 2a.used + 1$ \\ +\\ +Double the products and propagate the carries simultaneously. \\ +7. $\hat W_0 \leftarrow 2 \hat W_0 + \hat {X}_0$ \\ +8. for $ix$ from $1$ to $2a.used$ do \\ +\hspace{3mm}8.1 $\hat W_{ix} \leftarrow 2 \hat W_{ix} + \hat {X}_{ix}$ \\ +\hspace{3mm}8.2 $\hat W_{ix} \leftarrow \hat W_{ix} + \lfloor \hat W_{ix - 1} / \beta \rfloor$ \\ +\hspace{3mm}8.3 $b_{ix-1} \leftarrow W_{ix-1} \mbox{ (mod }\beta\mbox{)}$ \\ +9. $b_{2a.used} \leftarrow \hat W_{2a.used} \mbox{ (mod }\beta\mbox{)}$ \\ +10. if $2a.used + 1 < oldused$ then do \\ +\hspace{3mm}10.1 for $ix$ from $2a.used + 1$ to $oldused$ do \\ +\hspace{6mm}10.1.1 $b_{ix} \leftarrow 0$ \\ +11. Clamp excess digits from $b$. (\textit{mp\_clamp}) \\ +12. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm fast\_s\_mp\_sqr} +\end{figure} + +\textbf{Algorithm fast\_s\_mp\_sqr.} +This algorithm computes the square of an input using the Comba technique. It is designed to be a replacement for algorithm s\_mp\_sqr when +the number of input digits is less than \textbf{MP\_WARRAY} and less than $\delta \over 2$. + +This routine requires two arrays of mp\_words to be placed on the stack. The first array $\hat W$ will hold the double products and the second +array $\hat X$ will hold the squares. Though only at most $MP\_WARRAY \over 2$ words of $\hat X$ are used, it has proven faster on most +processors to simply make it a full size array. + +The loop on step 3 will zero the two arrays to prepare them for the squaring step. Step 4.1 computes the squares of the product. Note how +it simply assigns the value into the $\hat X$ array. The nested loop on step 4.2 computes the doubles of the products. This loop +computes the sum of the products for each column. They are not doubled until later. + +After the squaring loop, the products stored in $\hat W$ musted be doubled and the carries propagated forwards. It makes sense to do both +operations at the same time. The expression $\hat W_{ix} \leftarrow 2 \hat W_{ix} + \hat {X}_{ix}$ computes the sum of the double product and the +squares in place. + +EXAM,bn_fast_s_mp_sqr.c + +-- Write something deep and insightful later, Tom. + +\subsection{Polynomial Basis Squaring} +The same algorithm that performs optimal polynomial basis multiplication can be used to perform polynomial basis squaring. The minor exception +is that $\zeta_y = f(y)g(y)$ is actually equivalent to $\zeta_y = f(y)^2$ since $f(y) = g(y)$. Instead of performing $2n + 1$ +multiplications to find the $\zeta$ relations, squaring operations are performed instead. + +\subsection{Karatsuba Squaring} +Let $f(x) = ax + b$ represent the polynomial basis representation of a number to square. +Let $h(x) = \left ( f(x) \right )^2$ represent the square of the polynomial. The Karatsuba equation can be modified to square a +number with the following equation. + +\begin{equation} +h(x) = a^2x^2 + \left (a^2 + b^2 - (a - b)^2 \right )x + b^2 +\end{equation} + +Upon closer inspection this equation only requires the calculation of three half-sized squares: $a^2$, $b^2$ and $(a - b)^2$. As in +Karatsuba multiplication, this algorithm can be applied recursively on the input and will achieve an asymptotic running time of +$O \left ( n^{lg(3)} \right )$. + +You might ask yourself, if the asymptotic time of Karatsuba squaring and multiplication is the same, why not simply use the multiplication algorithm +instead? The answer to this arises from the cutoff point for squaring. As in multiplication there exists a cutoff point, at which the +time required for a Comba based squaring and a Karatsuba based squaring meet. Due to the overhead inherent in the Karatsuba method, the cutoff +point is fairly high. For example, on an AMD Athlon XP processor with $\beta = 2^{28}$, the cutoff point is around 127 digits. + +Consider squaring a 200 digit number with this technique. It will be split into two 100 digit halves which are subsequently squared. +The 100 digit halves will not be squared using Karatsuba, but instead using the faster Comba based squaring algorithm. If Karatsuba multiplication +were used instead, the 100 digit numbers would be squared with a slower Comba based multiplication. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_karatsuba\_sqr}. \\ +\textbf{Input}. mp\_int $a$ \\ +\textbf{Output}. $b \leftarrow a^2$ \\ +\hline \\ +1. Initialize the following temporary mp\_ints: $x0$, $x1$, $t1$, $t2$, $x0x0$ and $x1x1$. \\ +2. If any of the initializations on step 1 failed return(\textit{MP\_MEM}). \\ +\\ +Split the input. e.g. $a = x1\beta^B + x0$ \\ +3. $B \leftarrow \lfloor a.used / 2 \rfloor$ \\ +4. $x0 \leftarrow a \mbox{ (mod }\beta^B\mbox{)}$ (\textit{mp\_mod\_2d}) \\ +5. $x1 \leftarrow \lfloor a / \beta^B \rfloor$ (\textit{mp\_lshd}) \\ +\\ +Calculate the three squares. \\ +6. $x0x0 \leftarrow x0^2$ (\textit{mp\_sqr}) \\ +7. $x1x1 \leftarrow x1^2$ \\ +8. $t1 \leftarrow x1 - x0$ (\textit{mp\_sub}) \\ +9. $t1 \leftarrow t1^2$ \\ +\\ +Compute the middle term. \\ +10. $t2 \leftarrow x0x0 + x1x1$ (\textit{s\_mp\_add}) \\ +11. $t1 \leftarrow t2 - t1$ \\ +\\ +Compute final product. \\ +12. $t1 \leftarrow t1\beta^B$ (\textit{mp\_lshd}) \\ +13. $x1x1 \leftarrow x1x1\beta^{2B}$ \\ +14. $t1 \leftarrow t1 + x0x0$ \\ +15. $b \leftarrow t1 + x1x1$ \\ +16. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_karatsuba\_sqr} +\end{figure} + +\textbf{Algorithm mp\_karatsuba\_sqr.} +This algorithm computes the square of an input $a$ using the Karatsuba technique. This algorithm is very similar to the Karatsuba based +multiplication algorithm with the exception that the three half-size multiplications have been replaced with three half-size squarings. + +The radix point for squaring is simply placed exactly in the middle of the digits when the input has an odd number of digits, otherwise it is +placed just below the middle. Step 3, 4 and 5 compute the two halves required using $B$ +as the radix point. The first two squares in steps 6 and 7 are rather straightforward while the last square is of a more compact form. + +By expanding $\left (x1 - x0 \right )^2$, the $x1^2$ and $x0^2$ terms in the middle disappear, that is $x1^2 + x0^2 - (x1 - x0)^2 = 2 \cdot x0 \cdot x1$. +Now if $5n$ single precision additions and a squaring of $n$-digits is faster than multiplying two $n$-digit numbers and doubling then +this method is faster. Assuming no further recursions occur, the difference can be estimated with the following inequality. + +Let $p$ represent the cost of a single precision addition and $q$ the cost of a single precision multiplication both in terms of time\footnote{Or +machine clock cycles.}. + +\begin{equation} +5pn +{{q(n^2 + n)} \over 2} \le pn + qn^2 +\end{equation} + +For example, on an AMD Athlon XP processor $p = {1 \over 3}$ and $q = 6$. This implies that the following inequality should hold. +\begin{center} +\begin{tabular}{rcl} +${5n \over 3} + 3n^2 + 3n$ & $<$ & ${n \over 3} + 6n^2$ \\ +${5 \over 3} + 3n + 3$ & $<$ & ${1 \over 3} + 6n$ \\ +${13 \over 9}$ & $<$ & $n$ \\ +\end{tabular} +\end{center} + +This results in a cutoff point around $n = 2$. As a consequence it is actually faster to compute the middle term the ``long way'' on processors +where multiplication is substantially slower\footnote{On the Athlon there is a 1:17 ratio between clock cycles for addition and multiplication. On +the Intel P4 processor this ratio is 1:29 making this method even more beneficial. The only common exception is the ARMv4 processor which has a +ratio of 1:7. } than simpler operations such as addition. + +EXAM,bn_mp_karatsuba_sqr.c + +This implementation is largely based on the implementation of algorithm mp\_karatsuba\_mul. It uses the same inline style to copy and +shift the input into the two halves. The loop from line @54,{@ to line @70,}@ has been modified since only one input exists. The \textbf{used} +count of both $x0$ and $x1$ is fixed up and $x0$ is clamped before the calculations begin. At this point $x1$ and $x0$ are valid equivalents +to the respective halves as if mp\_rshd and mp\_mod\_2d had been used. + +By inlining the copy and shift operations the cutoff point for Karatsuba multiplication can be lowered. On the Athlon the cutoff point +is exactly at the point where Comba squaring can no longer be used (\textit{128 digits}). On slower processors such as the Intel P4 +it is actually below the Comba limit (\textit{at 110 digits}). + +This routine uses the same error trap coding style as mp\_karatsuba\_sqr. As the temporary variables are initialized errors are redirected to +the error trap higher up. If the algorithm completes without error the error code is set to \textbf{MP\_OKAY} and mp\_clears are executed normally. + +\textit{Last paragraph sucks. re-write! -- Tom} + +\subsection{Toom-Cook Squaring} +The Toom-Cook squaring algorithm mp\_toom\_sqr is heavily based on the algorithm mp\_toom\_mul with the exception that squarings are used +instead of multiplication to find the five relations.. The reader is encouraged to read the description of the latter algorithm and try to +derive their own Toom-Cook squaring algorithm. + +\subsection{High Level Squaring} +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_sqr}. \\ +\textbf{Input}. mp\_int $a$ \\ +\textbf{Output}. $b \leftarrow a^2$ \\ +\hline \\ +1. If $a.used \ge TOOM\_SQR\_CUTOFF$ then \\ +\hspace{3mm}1.1 $b \leftarrow a^2$ using algorithm mp\_toom\_sqr \\ +2. else if $a.used \ge KARATSUBA\_SQR\_CUTOFF$ then \\ +\hspace{3mm}2.1 $b \leftarrow a^2$ using algorithm mp\_karatsuba\_sqr \\ +3. else \\ +\hspace{3mm}3.1 $digs \leftarrow a.used + b.used + 1$ \\ +\hspace{3mm}3.2 If $digs < MP\_ARRAY$ and $a.used \le \delta$ then \\ +\hspace{6mm}3.2.1 $b \leftarrow a^2$ using algorithm fast\_s\_mp\_sqr. \\ +\hspace{3mm}3.3 else \\ +\hspace{6mm}3.3.1 $b \leftarrow a^2$ using algorithm s\_mp\_sqr. \\ +4. $b.sign \leftarrow MP\_ZPOS$ \\ +5. Return the result of the unsigned squaring performed. \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_sqr} +\end{figure} + +\textbf{Algorithm mp\_sqr.} +This algorithm computes the square of the input using one of four different algorithms. If the input is very large and has at least +\textbf{TOOM\_SQR\_CUTOFF} or \textbf{KARATSUBA\_SQR\_CUTOFF} digits then either the Toom-Cook or the Karatsuba Squaring algorithm is used. If +neither of the polynomial basis algorithms should be used then either the Comba or baseline algorithm is used. + +EXAM,bn_mp_sqr.c + +\section*{Exercises} +\begin{tabular}{cl} +$\left [ 3 \right ] $ & Devise an efficient algorithm for selection of the radix point to handle inputs \\ + & that have different number of digits in Karatsuba multiplication. \\ + & \\ +$\left [ 3 \right ] $ & In ~SQUARE~ the fact that every column of a squaring is made up \\ + & of double products and at most one square is stated. Prove this statement. \\ + & \\ +$\left [ 2 \right ] $ & In the Comba squaring algorithm half of the $\hat X$ variables are not used. \\ + & Revise algorithm fast\_s\_mp\_sqr to shrink the $\hat X$ array. \\ + & \\ +$\left [ 3 \right ] $ & Prove the equation for Karatsuba squaring. \\ + & \\ +$\left [ 1 \right ] $ & Prove that Karatsuba squaring requires $O \left (n^{lg(3)} \right )$ time. \\ + & \\ +$\left [ 2 \right ] $ & Determine the minimal ratio between addition and multiplication clock cycles \\ + & required for equation $6.7$ to be true. \\ + & \\ +\end{tabular} + +\chapter{Modular Reduction} +MARK,REDUCTION +\section{Basics of Modular Reduction} +\index{modular residue} +Modular reduction is an operation that arises quite often within public key cryptography algorithms and various number theoretic algorithms, +such as factoring. Modular reduction algorithms are the third class of algorithms of the ``multipliers'' set. A number $a$ is said to be \textit{reduced} +modulo another number $b$ by finding the remainder of the division $a/b$. Full integer division with remainder is a topic to be covered +in~\ref{sec:division}. + +Modular reduction is equivalent to solving for $r$ in the following equation. $a = bq + r$ where $q = \lfloor a/b \rfloor$. The result +$r$ is said to be ``congruent to $a$ modulo $b$'' which is also written as $r \equiv a \mbox{ (mod }b\mbox{)}$. In other vernacular $r$ is known as the +``modular residue'' which leads to ``quadratic residue''\footnote{That's fancy talk for $b \equiv a^2 \mbox{ (mod }p\mbox{)}$.} and +other forms of residues. + +Modular reductions are normally used to create either finite groups, rings or fields. The most common usage for performance driven modular reductions +is in modular exponentiation algorithms. That is to compute $d = a^b \mbox{ (mod }c\mbox{)}$ as fast as possible. This operation is used in the +RSA and Diffie-Hellman public key algorithms, for example. Modular multiplication and squaring also appears as a fundamental operation in +Elliptic Curve cryptographic algorithms. As will be discussed in the subsequent chapter there exist fast algorithms for computing modular +exponentiations without having to perform (\textit{in this example}) $b - 1$ multiplications. These algorithms will produce partial results in the +range $0 \le x < c^2$ which can be taken advantage of to create several efficient algorithms. They have also been used to create redundancy check +algorithms known as CRCs, error correction codes such as Reed-Solomon and solve a variety of number theoeretic problems. + +\section{The Barrett Reduction} +The Barrett reduction algorithm \cite{BARRETT} was inspired by fast division algorithms which multiply by the reciprocal to emulate +division. Barretts observation was that the residue $c$ of $a$ modulo $b$ is equal to + +\begin{equation} +c = a - b \cdot \lfloor a/b \rfloor +\end{equation} + +Since algorithms such as modular exponentiation would be using the same modulus extensively, typical DSP\footnote{It is worth noting that Barrett's paper +targeted the DSP56K processor.} intuition would indicate the next step would be to replace $a/b$ by a multiplication by the reciprocal. However, +DSP intuition on its own will not work as these numbers are considerably larger than the precision of common DSP floating point data types. +It would take another common optimization to optimize the algorithm. + +\subsection{Fixed Point Arithmetic} +The trick used to optimize the above equation is based on a technique of emulating floating point data types with fixed precision integers. Fixed +point arithmetic would become very popular as it greatly optimize the ``3d-shooter'' genre of games in the mid 1990s when floating point units were +fairly slow if not unavailable. The idea behind fixed point arithmetic is to take a normal $k$-bit integer data type and break it into $p$-bit +integer and a $q$-bit fraction part (\textit{where $p+q = k$}). + +In this system a $k$-bit integer $n$ would actually represent $n/2^q$. For example, with $q = 4$ the integer $n = 37$ would actually represent the +value $2.3125$. To multiply two fixed point numbers the integers are multiplied using traditional arithmetic and subsequently normalized by +moving the implied decimal point back to where it should be. For example, with $q = 4$ to multiply the integers $9$ and $5$ they must be converted +to fixed point first by multiplying by $2^q$. Let $a = 9(2^q)$ represent the fixed point representation of $9$ and $b = 5(2^q)$ represent the +fixed point representation of $5$. The product $ab$ is equal to $45(2^{2q})$ which when normalized by dividing by $2^q$ produces $45(2^q)$. + +This technique became popular since a normal integer multiplication and logical shift right are the only required operations to perform a multiplication +of two fixed point numbers. Using fixed point arithmetic, division can be easily approximated by multiplying by the reciprocal. If $2^q$ is +equivalent to one than $2^q/b$ is equivalent to the fixed point approximation of $1/b$ using real arithmetic. Using this fact dividing an integer +$a$ by another integer $b$ can be achieved with the following expression. + +\begin{equation} +\lfloor a / b \rfloor \mbox{ }\approx\mbox{ } \lfloor (a \cdot \lfloor 2^q / b \rfloor)/2^q \rfloor +\end{equation} + +The precision of the division is proportional to the value of $q$. If the divisor $b$ is used frequently as is the case with +modular exponentiation pre-computing $2^q/b$ will allow a division to be performed with a multiplication and a right shift. Both operations +are considerably faster than division on most processors. + +Consider dividing $19$ by $5$. The correct result is $\lfloor 19/5 \rfloor = 3$. With $q = 3$ the reciprocal is $\lfloor 2^q/5 \rfloor = 1$ which +leads to a product of $19$ which when divided by $2^q$ produces $2$. However, with $q = 4$ the reciprocal is $\lfloor 2^q/5 \rfloor = 3$ and +the result of the emulated division is $\lfloor 3 \cdot 19 / 2^q \rfloor = 3$ which is correct. The value of $2^q$ must be close to or ideally +larger than the dividend. In effect if $a$ is the dividend then $q$ should allow $0 \le \lfloor a/2^q \rfloor \le 1$ in order for this approach +to work correctly. Plugging this form of divison into the original equation the following modular residue equation arises. + +\begin{equation} +c = a - b \cdot \lfloor (a \cdot \lfloor 2^q / b \rfloor)/2^q \rfloor +\end{equation} + +Using the notation from \cite{BARRETT} the value of $\lfloor 2^q / b \rfloor$ will be represented by the $\mu$ symbol. Using the $\mu$ +variable also helps re-inforce the idea that it is meant to be computed once and re-used. + +\begin{equation} +c = a - b \cdot \lfloor (a \cdot \mu)/2^q \rfloor +\end{equation} + +Provided that $2^q \ge a$ this algorithm will produce a quotient that is either exactly correct or off by a value of one. In the context of Barrett +reduction the value of $a$ is bound by $0 \le a \le (b - 1)^2$ meaning that $2^q \ge b^2$ is sufficient to ensure the reciprocal will have enough +precision. + +Let $n$ represent the number of digits in $b$. This algorithm requires approximately $2n^2$ single precision multiplications to produce the quotient and +another $n^2$ single precision multiplications to find the residue. In total $3n^2$ single precision multiplications are required to +reduce the number. + +For example, if $b = 1179677$ and $q = 41$ ($2^q > b^2$), then the reciprocal $\mu$ is equal to $\lfloor 2^q / b \rfloor = 1864089$. Consider reducing +$a = 180388626447$ modulo $b$ using the above reduction equation. The quotient using the new formula is $\lfloor (a \cdot \mu) / 2^q \rfloor = 152913$. +By subtracting $152913b$ from $a$ the correct residue $a \equiv 677346 \mbox{ (mod }b\mbox{)}$ is found. + +\subsection{Choosing a Radix Point} +Using the fixed point representation a modular reduction can be performed with $3n^2$ single precision multiplications. If that were the best +that could be achieved a full division\footnote{A division requires approximately $O(2cn^2)$ single precision multiplications for a small value of $c$. +See~\ref{sec:division} for further details.} might as well be used in its place. The key to optimizing the reduction is to reduce the precision of +the initial multiplication that finds the quotient. + +Let $a$ represent the number of which the residue is sought. Let $b$ represent the modulus used to find the residue. Let $m$ represent +the number of digits in $b$. For the purposes of this discussion we will assume that the number of digits in $a$ is $2m$, which is generally true if +two $m$-digit numbers have been multiplied. Dividing $a$ by $b$ is the same as dividing a $2m$ digit integer by a $m$ digit integer. Digits below the +$m - 1$'th digit of $a$ will contribute at most a value of $1$ to the quotient because $\beta^k < b$ for any $0 \le k \le m - 1$. Another way to +express this is by re-writing $a$ as two parts. If $a' \equiv a \mbox{ (mod }b^m\mbox{)}$ and $a'' = a - a'$ then +${a \over b} \equiv {{a' + a''} \over b}$ which is equivalent to ${a' \over b} + {a'' \over b}$. Since $a'$ is bound to be less than $b$ the quotient +is bound by $0 \le {a' \over b} < 1$. + +Since the digits of $a'$ do not contribute much to the quotient the observation is that they might as well be zero. However, if the digits +``might as well be zero'' they might as well not be there in the first place. Let $q_0 = \lfloor a/\beta^{m-1} \rfloor$ represent the input +with the irrelevant digits trimmed. Now the modular reduction is trimmed to the almost equivalent equation + +\begin{equation} +c = a - b \cdot \lfloor (q_0 \cdot \mu) / \beta^{m+1} \rfloor +\end{equation} + +Note that the original divisor $2^q$ has been replaced with $\beta^{m+1}$ where in this case $q$ is a multiple of $lg(\beta)$. Also note that the +exponent on the divisor when added to the amount $q_0$ was shifted by equals $2m$. If the optimization had not been performed the divisor +would have the exponent $2m$ so in the end the exponents do ``add up''. Using the above equation the quotient +$\lfloor (q_0 \cdot \mu) / \beta^{m+1} \rfloor$ can be off from the true quotient by at most two. The original fixed point quotient can be off +by as much as one (\textit{provided the radix point is chosen suitably}) and now that the lower irrelevent digits have been trimmed the quotient +can be off by an additional value of one for a total of at most two. This implies that +$0 \le a - b \cdot \lfloor (q_0 \cdot \mu) / \beta^{m+1} \rfloor < 3b$. By first subtracting $b$ times the quotient and then conditionally subtracting +$b$ once or twice the residue is found. + +The quotient is now found using $(m + 1)(m) = m^2 + m$ single precision multiplications and the residue with an additional $m^2$ single +precision multiplications, ignoring the subtractions required. In total $2m^2 + m$ single precision multiplications are required to find the residue. +This is considerably faster than the original attempt. + +For example, let $\beta = 10$ represent the radix of the digits. Let $b = 9999$ represent the modulus which implies $m = 4$. Let $a = 99929878$ +represent the value of which the residue is desired. In this case $q = 8$ since $10^7 < 9999^2$ meaning that $\mu = \lfloor \beta^{q}/b \rfloor = 10001$. +With the new observation the multiplicand for the quotient is equal to $q_0 = \lfloor a / \beta^{m - 1} \rfloor = 99929$. The quotient is then +$\lfloor (q_0 \cdot \mu) / \beta^{m+1} \rfloor = 9993$. Subtracting $9993b$ from $a$ and the correct residue $a \equiv 9871 \mbox{ (mod }b\mbox{)}$ +is found. + +\subsection{Trimming the Quotient} +So far the reduction algorithm has been optimized from $3m^2$ single precision multiplications down to $2m^2 + m$ single precision multiplications. As +it stands now the algorithm is already fairly fast compared to a full integer division algorithm. However, there is still room for +optimization. + +After the first multiplication inside the quotient ($q_0 \cdot \mu$) the value is shifted right by $m + 1$ places effectively nullifying the lower +half of the product. It would be nice to be able to remove those digits from the product to effectively cut down the number of single precision +multiplications. If the number of digits in the modulus $m$ is far less than $\beta$ a full product is not required for the algorithm to work properly. +In fact the lower $m - 2$ digits will not affect the upper half of the product at all and do not need to be computed. + +The value of $\mu$ is a $m$-digit number and $q_0$ is a $m + 1$ digit number. Using a full multiplier $(m + 1)(m) = m^2 + m$ single precision +multiplications would be required. Using a multiplier that will only produce digits at and above the $m - 1$'th digit reduces the number +of single precision multiplications to ${m^2 + m} \over 2$ single precision multiplications. + +\subsection{Trimming the Residue} +After the quotient has been calculated it is used to reduce the input. As previously noted the algorithm is not exact and it can be off by a small +multiple of the modulus, that is $0 \le a - b \cdot \lfloor (q_0 \cdot \mu) / \beta^{m+1} \rfloor < 3b$. If $b$ is $m$ digits than the +result of reduction equation is a value of at most $m + 1$ digits (\textit{provided $3 < \beta$}) implying that the upper $m - 1$ digits are +implicitly zero. + +The next optimization arises from this very fact. Instead of computing $b \cdot \lfloor (q_0 \cdot \mu) / \beta^{m+1} \rfloor$ using a full +$O(m^2)$ multiplication algorithm only the lower $m+1$ digits of the product have to be computed. Similarly the value of $a$ can +be reduced modulo $\beta^{m+1}$ before the multiple of $b$ is subtracted which simplifes the subtraction as well. A multiplication that produces +only the lower $m+1$ digits requires ${m^2 + 3m - 2} \over 2$ single precision multiplications. + +With both optimizations in place the algorithm is the algorithm Barrett proposed. It requires $m^2 + 2m - 1$ single precision multiplications which +is considerably faster than the straightforward $3m^2$ method. + +\subsection{The Barrett Algorithm} +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_reduce}. \\ +\textbf{Input}. mp\_int $a$, mp\_int $b$ and $\mu = \lfloor \beta^{2m}/b \rfloor, m = \lceil lg_{\beta}(b) \rceil, (0 \le a < b^2, b > 1)$ \\ +\textbf{Output}. $a \mbox{ (mod }b\mbox{)}$ \\ +\hline \\ +Let $m$ represent the number of digits in $b$. \\ +1. Make a copy of $a$ and store it in $q$. (\textit{mp\_init\_copy}) \\ +2. $q \leftarrow \lfloor q / \beta^{m - 1} \rfloor$ (\textit{mp\_rshd}) \\ +\\ +Produce the quotient. \\ +3. $q \leftarrow q \cdot \mu$ (\textit{note: only produce digits at or above $m-1$}) \\ +4. $q \leftarrow \lfloor q / \beta^{m + 1} \rfloor$ \\ +\\ +Subtract the multiple of modulus from the input. \\ +5. $a \leftarrow a \mbox{ (mod }\beta^{m+1}\mbox{)}$ (\textit{mp\_mod\_2d}) \\ +6. $q \leftarrow q \cdot b \mbox{ (mod }\beta^{m+1}\mbox{)}$ (\textit{s\_mp\_mul\_digs}) \\ +7. $a \leftarrow a - q$ (\textit{mp\_sub}) \\ +\\ +Add $\beta^{m+1}$ if a carry occured. \\ +8. If $a < 0$ then (\textit{mp\_cmp\_d}) \\ +\hspace{3mm}8.1 $q \leftarrow 1$ (\textit{mp\_set}) \\ +\hspace{3mm}8.2 $q \leftarrow q \cdot \beta^{m+1}$ (\textit{mp\_lshd}) \\ +\hspace{3mm}8.3 $a \leftarrow a + q$ \\ +\\ +Now subtract the modulus if the residue is too large (e.g. quotient too small). \\ +9. While $a \ge b$ do (\textit{mp\_cmp}) \\ +\hspace{3mm}9.1 $c \leftarrow a - b$ \\ +10. Clear $q$. \\ +11. Return(\textit{MP\_OKAY}) \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_reduce} +\end{figure} + +\textbf{Algorithm mp\_reduce.} +This algorithm will reduce the input $a$ modulo $b$ in place using the Barrett algorithm. It is loosely based on algorithm 14.42 of HAC +\cite[pp. 602]{HAC} which is based on the paper from Paul Barrett \cite{BARRETT}. The algorithm has several restrictions and assumptions which must +be adhered to for the algorithm to work. + +First the modulus $b$ is assumed to be positive and greater than one. If the modulus were less than or equal to one than subtracting +a multiple of it would either accomplish nothing or actually enlarge the input. The input $a$ must be in the range $0 \le a < b^2$ in order +for the quotient to have enough precision. If $a$ is the product of two numbers that were already reduced modulo $b$, this will not be a problem. +Technically the algorithm will still work if $a \ge b^2$ but it will take much longer to finish. The value of $\mu$ is passed as an argument to this +algorithm and is assumed to be calculated and stored before the algorithm is used. + +Recall that the multiplication for the quotient on step 3 must only produce digits at or above the $m-1$'th position. An algorithm called +$s\_mp\_mul\_high\_digs$ which has not been presented is used to accomplish this task. The algorithm is based on $s\_mp\_mul\_digs$ except that +instead of stopping at a given level of precision it starts at a given level of precision. This optimal algorithm can only be used if the number +of digits in $b$ is very much smaller than $\beta$. + +While it is known that +$a \ge b \cdot \lfloor (q_0 \cdot \mu) / \beta^{m+1} \rfloor$ only the lower $m+1$ digits are being used to compute the residue, so an implied +``borrow'' from the higher digits might leave a negative result. After the multiple of the modulus has been subtracted from $a$ the residue must be +fixed up in case it is negative. The invariant $\beta^{m+1}$ must be added to the residue to make it positive again. + +The while loop at step 9 will subtract $b$ until the residue is less than $b$. If the algorithm is performed correctly this step is +performed at most twice, and on average once. However, if $a \ge b^2$ than it will iterate substantially more times than it should. + +EXAM,bn_mp_reduce.c + +The first multiplication that determines the quotient can be performed by only producing the digits from $m - 1$ and up. This essentially halves +the number of single precision multiplications required. However, the optimization is only safe if $\beta$ is much larger than the number of digits +in the modulus. In the source code this is evaluated on lines @36,if@ to @44,}@ where algorithm s\_mp\_mul\_high\_digs is used when it is +safe to do so. + +\subsection{The Barrett Setup Algorithm} +In order to use algorithm mp\_reduce the value of $\mu$ must be calculated in advance. Ideally this value should be computed once and stored for +future use so that the Barrett algorithm can be used without delay. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_reduce\_setup}. \\ +\textbf{Input}. mp\_int $a$ ($a > 1$) \\ +\textbf{Output}. $\mu \leftarrow \lfloor \beta^{2m}/a \rfloor$ \\ +\hline \\ +1. $\mu \leftarrow 2^{2 \cdot lg(\beta) \cdot m}$ (\textit{mp\_2expt}) \\ +2. $\mu \leftarrow \lfloor \mu / b \rfloor$ (\textit{mp\_div}) \\ +3. Return(\textit{MP\_OKAY}) \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_reduce\_setup} +\end{figure} + +\textbf{Algorithm mp\_reduce\_setup.} +This algorithm computes the reciprocal $\mu$ required for Barrett reduction. First $\beta^{2m}$ is calculated as $2^{2 \cdot lg(\beta) \cdot m}$ which +is equivalent and much faster. The final value is computed by taking the integer quotient of $\lfloor \mu / b \rfloor$. + +EXAM,bn_mp_reduce_setup.c + +This simple routine calculates the reciprocal $\mu$ required by Barrett reduction. Note the extended usage of algorithm mp\_div where the variable +which would received the remainder is passed as NULL. As will be discussed in~\ref{sec:division} the division routine allows both the quotient and the +remainder to be passed as NULL meaning to ignore the value. + +\section{The Montgomery Reduction} +Montgomery reduction\footnote{Thanks to Niels Ferguson for his insightful explanation of the algorithm.} \cite{MONT} is by far the most interesting +form of reduction in common use. It computes a modular residue which is not actually equal to the residue of the input yet instead equal to a +residue times a constant. However, as perplexing as this may sound the algorithm is relatively simple and very efficient. + +Throughout this entire section the variable $n$ will represent the modulus used to form the residue. As will be discussed shortly the value of +$n$ must be odd. The variable $x$ will represent the quantity of which the residue is sought. Similar to the Barrett algorithm the input +is restricted to $0 \le x < n^2$. To begin the description some simple number theory facts must be established. + +\textbf{Fact 1.} Adding $n$ to $x$ does not change the residue since in effect it adds one to the quotient $\lfloor x / n \rfloor$. Another way +to explain this is that $n$ is (\textit{or multiples of $n$ are}) congruent to zero modulo $n$. Adding zero will not change the value of the residue. + +\textbf{Fact 2.} If $x$ is even then performing a division by two in $\Z$ is congruent to $x \cdot 2^{-1} \mbox{ (mod }n\mbox{)}$. Actually +this is an application of the fact that if $x$ is evenly divisible by any $k \in \Z$ then division in $\Z$ will be congruent to +multiplication by $k^{-1}$ modulo $n$. + +From these two simple facts the following simple algorithm can be derived. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{Montgomery Reduction}. \\ +\textbf{Input}. Integer $x$, $n$ and $k$ \\ +\textbf{Output}. $2^{-k}x \mbox{ (mod }n\mbox{)}$ \\ +\hline \\ +1. for $t$ from $1$ to $k$ do \\ +\hspace{3mm}1.1 If $x$ is odd then \\ +\hspace{6mm}1.1.1 $x \leftarrow x + n$ \\ +\hspace{3mm}1.2 $x \leftarrow x/2$ \\ +2. Return $x$. \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm Montgomery Reduction} +\end{figure} + +The algorithm reduces the input one bit at a time using the two congruencies stated previously. Inside the loop $n$, which is odd, is +added to $x$ if $x$ is odd. This forces $x$ to be even which allows the division by two in $\Z$ to be congruent to a modular division by two. Since +$x$ is assumed to be initially much larger than $n$ the addition of $n$ will contribute an insignificant magnitude to $x$. Let $r$ represent the +final result of the Montgomery algorithm. If $k > lg(n)$ and $0 \le x < n^2$ then the final result is limited to +$0 \le r < \lfloor x/2^k \rfloor + n$. As a result at most a single subtraction is required to get the residue desired. + +\begin{figure}[here] +\begin{small} +\begin{center} +\begin{tabular}{|c|l|} +\hline \textbf{Step number ($t$)} & \textbf{Result ($x$)} \\ +\hline $1$ & $x + n = 5812$, $x/2 = 2906$ \\ +\hline $2$ & $x/2 = 1453$ \\ +\hline $3$ & $x + n = 1710$, $x/2 = 855$ \\ +\hline $4$ & $x + n = 1112$, $x/2 = 556$ \\ +\hline $5$ & $x/2 = 278$ \\ +\hline $6$ & $x/2 = 139$ \\ +\hline $7$ & $x + n = 396$, $x/2 = 198$ \\ +\hline $8$ & $x/2 = 99$ \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Example of Montgomery Reduction (I)} +\label{fig:MONT1} +\end{figure} + +Consider the example in figure~\ref{fig:MONT1} which reduces $x = 5555$ modulo $n = 257$ when $k = 8$. The result of the algorithm $r = 99$ is +congruent to the value of $2^{-8} \cdot 5555 \mbox{ (mod }257\mbox{)}$. When $r$ is multiplied by $2^8$ modulo $257$ the correct residue +$r \equiv 158$ is produced. + +Let $k = \lfloor lg(n) \rfloor + 1$ represent the number of bits in $n$. The current algorithm requires $2k^2$ single precision shifts +and $k^2$ single precision additions. At this rate the algorithm is most certainly slower than Barrett reduction and not terribly useful. +Fortunately there exists an alternative representation of the algorithm. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{Montgomery Reduction} (modified I). \\ +\textbf{Input}. Integer $x$, $n$ and $k$ \\ +\textbf{Output}. $2^{-k}x \mbox{ (mod }n\mbox{)}$ \\ +\hline \\ +1. for $t$ from $0$ to $k - 1$ do \\ +\hspace{3mm}1.1 If the $t$'th bit of $x$ is one then \\ +\hspace{6mm}1.1.1 $x \leftarrow x + 2^tn$ \\ +2. Return $x/2^k$. \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm Montgomery Reduction (modified I)} +\end{figure} + +This algorithm is equivalent since $2^tn$ is a multiple of $n$ and the lower $k$ bits of $x$ are zero by step 2. The number of single +precision shifts has now been reduced from $2k^2$ to $k^2 + k$ which is only a small improvement. + +\begin{figure}[here] +\begin{small} +\begin{center} +\begin{tabular}{|c|l|r|} +\hline \textbf{Step number ($t$)} & \textbf{Result ($x$)} & \textbf{Result ($x$) in Binary} \\ +\hline -- & $5555$ & $1010110110011$ \\ +\hline $1$ & $x + 2^{0}n = 5812$ & $1011010110100$ \\ +\hline $2$ & $5812$ & $1011010110100$ \\ +\hline $3$ & $x + 2^{2}n = 6840$ & $1101010111000$ \\ +\hline $4$ & $x + 2^{3}n = 8896$ & $10001011000000$ \\ +\hline $5$ & $8896$ & $10001011000000$ \\ +\hline $6$ & $8896$ & $10001011000000$ \\ +\hline $7$ & $x + 2^{6}n = 25344$ & $110001100000000$ \\ +\hline $8$ & $25344$ & $110001100000000$ \\ +\hline -- & $x/2^k = 99$ & \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Example of Montgomery Reduction (II)} +\label{fig:MONT2} +\end{figure} + +Figure~\ref{fig:MONT2} demonstrates the modified algorithm reducing $x = 5555$ modulo $n = 257$ with $k = 8$. +With this algorithm a single shift right at the end is the only right shift required to reduce the input instead of $k$ right shifts inside the +loop. Note that for the iterations $t = 2, 5, 6$ and $8$ where the result $x$ is not changed. In those iterations the $t$'th bit of $x$ is +zero and the appropriate multiple of $n$ does not need to be added to force the $t$'th bit of the result to zero. + +\subsection{Digit Based Montgomery Reduction} +Instead of computing the reduction on a bit-by-bit basis it is actually much faster to compute it on digit-by-digit basis. Consider the +previous algorithm re-written to compute the Montgomery reduction in this new fashion. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{Montgomery Reduction} (modified II). \\ +\textbf{Input}. Integer $x$, $n$ and $k$ \\ +\textbf{Output}. $\beta^{-k}x \mbox{ (mod }n\mbox{)}$ \\ +\hline \\ +1. for $t$ from $0$ to $k - 1$ do \\ +\hspace{3mm}1.1 $x \leftarrow x + \mu n \beta^t$ \\ +2. Return $x/\beta^k$. \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm Montgomery Reduction (modified II)} +\end{figure} + +The value $\mu n \beta^t$ is a multiple of the modulus $n$ meaning that it will not change the residue. If the first digit of +the value $\mu n \beta^t$ equals the negative (modulo $\beta$) of the $t$'th digit of $x$ then the addition will result in a zero digit. This +problem breaks down to solving the following congruency. + +\begin{center} +\begin{tabular}{rcl} +$x_t + \mu n_0$ & $\equiv$ & $0 \mbox{ (mod }\beta\mbox{)}$ \\ +$\mu n_0$ & $\equiv$ & $-x_t \mbox{ (mod }\beta\mbox{)}$ \\ +$\mu$ & $\equiv$ & $-x_t/n_0 \mbox{ (mod }\beta\mbox{)}$ \\ +\end{tabular} +\end{center} + +In each iteration of the loop on step 1 a new value of $\mu$ must be calculated. The value of $-1/n_0 \mbox{ (mod }\beta\mbox{)}$ is used +extensively in this algorithm and should be precomputed. Let $\rho$ represent the negative of the modular inverse of $n_0$ modulo $\beta$. + +For example, let $\beta = 10$ represent the radix. Let $n = 17$ represent the modulus which implies $k = 2$ and $\rho \equiv 7$. Let $x = 33$ +represent the value to reduce. + +\newpage\begin{figure} +\begin{center} +\begin{tabular}{|c|c|c|} +\hline \textbf{Step ($t$)} & \textbf{Value of $x$} & \textbf{Value of $\mu$} \\ +\hline -- & $33$ & --\\ +\hline $0$ & $33 + \mu n = 50$ & $1$ \\ +\hline $1$ & $50 + \mu n \beta = 900$ & $5$ \\ +\hline +\end{tabular} +\end{center} +\caption{Example of Montgomery Reduction} +\end{figure} + +The final result $900$ is then divided by $\beta^k$ to produce the final result $9$. The first observation is that $9 \nequiv x \mbox{ (mod }n\mbox{)}$ +which implies the result is not the modular residue of $x$ modulo $n$. However, recall that the residue is actually multiplied by $\beta^{-k}$ in +the algorithm. To get the true residue the value must be multiplied by $\beta^k$. In this case $\beta^k \equiv 15 \mbox{ (mod }n\mbox{)}$ and +the correct residue is $9 \cdot 15 \equiv 16 \mbox{ (mod }n\mbox{)}$. + +\subsection{Baseline Montgomery Reduction} +The baseline Montgomery reduction algorithm will produce the residue for any size input. It is designed to be a catch-all algororithm for +Montgomery reductions. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_montgomery\_reduce}. \\ +\textbf{Input}. mp\_int $x$, mp\_int $n$ and a digit $\rho \equiv -1/n_0 \mbox{ (mod }n\mbox{)}$. \\ +\hspace{11.5mm}($0 \le x < n^2, n > 1, (n, \beta) = 1, \beta^k > n$) \\ +\textbf{Output}. $\beta^{-k}x \mbox{ (mod }n\mbox{)}$ \\ +\hline \\ +1. $digs \leftarrow 2n.used + 1$ \\ +2. If $digs < MP\_ARRAY$ and $m.used < \delta$ then \\ +\hspace{3mm}2.1 Use algorithm fast\_mp\_montgomery\_reduce instead. \\ +\\ +Setup $x$ for the reduction. \\ +3. If $x.alloc < digs$ then grow $x$ to $digs$ digits. \\ +4. $x.used \leftarrow digs$ \\ +\\ +Eliminate the lower $k$ digits. \\ +5. For $ix$ from $0$ to $k - 1$ do \\ +\hspace{3mm}5.1 $\mu \leftarrow x_{ix} \cdot \rho \mbox{ (mod }\beta\mbox{)}$ \\ +\hspace{3mm}5.2 $u \leftarrow 0$ \\ +\hspace{3mm}5.3 For $iy$ from $0$ to $k - 1$ do \\ +\hspace{6mm}5.3.1 $\hat r \leftarrow \mu n_{iy} + x_{ix + iy} + u$ \\ +\hspace{6mm}5.3.2 $x_{ix + iy} \leftarrow \hat r \mbox{ (mod }\beta\mbox{)}$ \\ +\hspace{6mm}5.3.3 $u \leftarrow \lfloor \hat r / \beta \rfloor$ \\ +\hspace{3mm}5.4 While $u > 0$ do \\ +\hspace{6mm}5.4.1 $iy \leftarrow iy + 1$ \\ +\hspace{6mm}5.4.2 $x_{ix + iy} \leftarrow x_{ix + iy} + u$ \\ +\hspace{6mm}5.4.3 $u \leftarrow \lfloor x_{ix+iy} / \beta \rfloor$ \\ +\hspace{6mm}5.4.4 $x_{ix + iy} \leftarrow x_{ix+iy} \mbox{ (mod }\beta\mbox{)}$ \\ +\\ +Divide by $\beta^k$ and fix up as required. \\ +6. $x \leftarrow \lfloor x / \beta^k \rfloor$ \\ +7. If $x \ge n$ then \\ +\hspace{3mm}7.1 $x \leftarrow x - n$ \\ +8. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_montgomery\_reduce} +\end{figure} + +\textbf{Algorithm mp\_montgomery\_reduce.} +This algorithm reduces the input $x$ modulo $n$ in place using the Montgomery reduction algorithm. The algorithm is loosely based +on algorithm 14.32 of \cite[pp.601]{HAC} except it merges the multiplication of $\mu n \beta^t$ with the addition in the inner loop. The +restrictions on this algorithm are fairly easy to adapt to. First $0 \le x < n^2$ bounds the input to numbers in the same range as +for the Barrett algorithm. Additionally if $n > 1$ and $n$ is odd there will exist a modular inverse $\rho$. $\rho$ must be calculated in +advance of this algorithm. Finally the variable $k$ is fixed and a pseudonym for $n.used$. + +Step 2 decides whether a faster Montgomery algorithm can be used. It is based on the Comba technique meaning that there are limits on +the size of the input. This algorithm is discussed in ~COMBARED~. + +Step 5 is the main reduction loop of the algorithm. The value of $\mu$ is calculated once per iteration in the outer loop. The inner loop +calculates $x + \mu n \beta^{ix}$ by multiplying $\mu n$ and adding the result to $x$ shifted by $ix$ digits. Both the addition and +multiplication are performed in the same loop to save time and memory. Step 5.4 will handle any additional carries that escape the inner loop. + +Using a quick inspection this algorithm requires $n$ single precision multiplications for the outer loop and $n^2$ single precision multiplications +in the inner loop. In total $n^2 + n$ single precision multiplications which compares favourably to Barrett at $n^2 + 2n - 1$ single precision +multiplications. + +EXAM,bn_mp_montgomery_reduce.c + +This is the baseline implementation of the Montgomery reduction algorithm. Lines @30,digs@ to @35,}@ determine if the Comba based +routine can be used instead. Line @47,mu@ computes the value of $\mu$ for that particular iteration of the outer loop. + +The multiplication $\mu n \beta^{ix}$ is performed in one step in the inner loop. The alias $tmpx$ refers to the $ix$'th digit of $x$ and +the alias $tmpn$ refers to the modulus $n$. + +\subsection{Faster ``Comba'' Montgomery Reduction} +MARK,COMBARED + +The Montgomery reduction requires fewer single precision multiplications than a Barrett reduction, however it is much slower due to the serial +nature of the inner loop. The Barrett reduction algorithm requires two slightly modified multipliers which can be implemented with the Comba +technique. The Montgomery reduction algorithm cannot directly use the Comba technique to any significant advantage since the inner loop calculates +a $k \times 1$ product $k$ times. + +The biggest obstacle is that at the $ix$'th iteration of the outer loop the value of $x_{ix}$ is required to calculate $\mu$. This means the +carries from $0$ to $ix - 1$ must have been propagated upwards to form a valid $ix$'th digit. The solution as it turns out is very simple. +Perform a Comba like multiplier and inside the outer loop just after the inner loop fix up the $ix + 1$'th digit by forwarding the carry. + +With this change in place the Montgomery reduction algorithm can be performed with a Comba style multiplication loop which substantially increases +the speed of the algorithm. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{fast\_mp\_montgomery\_reduce}. \\ +\textbf{Input}. mp\_int $x$, mp\_int $n$ and a digit $\rho \equiv -1/n_0 \mbox{ (mod }n\mbox{)}$. \\ +\hspace{11.5mm}($0 \le x < n^2, n > 1, (n, \beta) = 1, \beta^k > n$) \\ +\textbf{Output}. $\beta^{-k}x \mbox{ (mod }n\mbox{)}$ \\ +\hline \\ +Place an array of \textbf{MP\_WARRAY} mp\_word variables called $\hat W$ on the stack. \\ +1. if $x.alloc < n.used + 1$ then grow $x$ to $n.used + 1$ digits. \\ +Copy the digits of $x$ into the array $\hat W$ \\ +2. For $ix$ from $0$ to $x.used - 1$ do \\ +\hspace{3mm}2.1 $\hat W_{ix} \leftarrow x_{ix}$ \\ +3. For $ix$ from $x.used$ to $2n.used - 1$ do \\ +\hspace{3mm}3.1 $\hat W_{ix} \leftarrow 0$ \\ +Elimiate the lower $k$ digits. \\ +4. for $ix$ from $0$ to $n.used - 1$ do \\ +\hspace{3mm}4.1 $\mu \leftarrow \hat W_{ix} \cdot \rho \mbox{ (mod }\beta\mbox{)}$ \\ +\hspace{3mm}4.2 For $iy$ from $0$ to $n.used - 1$ do \\ +\hspace{6mm}4.2.1 $\hat W_{iy + ix} \leftarrow \hat W_{iy + ix} + \mu \cdot n_{iy}$ \\ +\hspace{3mm}4.3 $\hat W_{ix + 1} \leftarrow \hat W_{ix + 1} + \lfloor \hat W_{ix} / \beta \rfloor$ \\ +Propagate carries upwards. \\ +5. for $ix$ from $n.used$ to $2n.used + 1$ do \\ +\hspace{3mm}5.1 $\hat W_{ix + 1} \leftarrow \hat W_{ix + 1} + \lfloor \hat W_{ix} / \beta \rfloor$ \\ +Shift right and reduce modulo $\beta$ simultaneously. \\ +6. for $ix$ from $0$ to $n.used + 1$ do \\ +\hspace{3mm}6.1 $x_{ix} \leftarrow \hat W_{ix + n.used} \mbox{ (mod }\beta\mbox{)}$ \\ +Zero excess digits and fixup $x$. \\ +7. if $x.used > n.used + 1$ then do \\ +\hspace{3mm}7.1 for $ix$ from $n.used + 1$ to $x.used - 1$ do \\ +\hspace{6mm}7.1.1 $x_{ix} \leftarrow 0$ \\ +8. $x.used \leftarrow n.used + 1$ \\ +9. Clamp excessive digits of $x$. \\ +10. If $x \ge n$ then \\ +\hspace{3mm}10.1 $x \leftarrow x - n$ \\ +11. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm fast\_mp\_montgomery\_reduce} +\end{figure} + +\textbf{Algorithm fast\_mp\_montgomery\_reduce.} +This algorithm will compute the Montgomery reduction of $x$ modulo $n$ using the Comba technique. It is on most computer platforms significantly +faster than algorithm mp\_montgomery\_reduce and algorithm mp\_reduce (\textit{Barrett reduction}). The algorithm has the same restrictions +on the input as the baseline reduction algorithm. An additional two restrictions are imposed on this algorithm. The number of digits $k$ in the +the modulus $n$ must not violate $MP\_WARRAY > 2k +1$ and $n < \delta$. When $\beta = 2^{28}$ this algorithm can be used to reduce modulo +a modulus of at most $3,556$ bits in length. + +As in the other Comba reduction algorithms there is a $\hat W$ array which stores the columns of the product. It is initially filled with the +contents of $x$ with the excess digits zeroed. The reduction loop is very similar the to the baseline loop at heart. The multiplication on step +4.1 can be single precision only since $ab \mbox{ (mod }\beta\mbox{)} \equiv (a \mbox{ mod }\beta)(b \mbox{ mod }\beta)$. Some multipliers such +as those on the ARM processors take a variable length time to complete depending on the number of bytes of result it must produce. By performing +a single precision multiplication instead half the amount of time is spent. + +Also note that digit $\hat W_{ix}$ must have the carry from the $ix - 1$'th digit propagated upwards in order for this to work. That is what step +4.3 will do. In effect over the $n.used$ iterations of the outer loop the $n.used$'th lower columns all have the their carries propagated forwards. Note +how the upper bits of those same words are not reduced modulo $\beta$. This is because those values will be discarded shortly and there is no +point. + +Step 5 will propagate the remainder of the carries upwards. On step 6 the columns are reduced modulo $\beta$ and shifted simultaneously as they are +stored in the destination $x$. + +EXAM,bn_fast_mp_montgomery_reduce.c + +The $\hat W$ array is first filled with digits of $x$ on line @49,for@ then the rest of the digits are zeroed on line @54,for@. Both loops share +the same alias variables to make the code easier to read. + +The value of $\mu$ is calculated in an interesting fashion. First the value $\hat W_{ix}$ is reduced modulo $\beta$ and cast to a mp\_digit. This +forces the compiler to use a single precision multiplication and prevents any concerns about loss of precision. Line @101,>>@ fixes the carry +for the next iteration of the loop by propagating the carry from $\hat W_{ix}$ to $\hat W_{ix+1}$. + +The for loop on line @113,for@ propagates the rest of the carries upwards through the columns. The for loop on line @126,for@ reduces the columns +modulo $\beta$ and shifts them $k$ places at the same time. The alias $\_ \hat W$ actually refers to the array $\hat W$ starting at the $n.used$'th +digit, that is $\_ \hat W_{t} = \hat W_{n.used + t}$. + +\subsection{Montgomery Setup} +To calculate the variable $\rho$ a relatively simple algorithm will be required. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_montgomery\_setup}. \\ +\textbf{Input}. mp\_int $n$ ($n > 1$ and $(n, 2) = 1$) \\ +\textbf{Output}. $\rho \equiv -1/n_0 \mbox{ (mod }\beta\mbox{)}$ \\ +\hline \\ +1. $b \leftarrow n_0$ \\ +2. If $b$ is even return(\textit{MP\_VAL}) \\ +3. $x \leftarrow ((b + 2) \mbox{ AND } 4) << 1) + b$ \\ +4. for $k$ from 0 to $\lceil lg(lg(\beta)) \rceil - 2$ do \\ +\hspace{3mm}4.1 $x \leftarrow x \cdot (2 - bx)$ \\ +5. $\rho \leftarrow \beta - x \mbox{ (mod }\beta\mbox{)}$ \\ +6. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_montgomery\_setup} +\end{figure} + +\textbf{Algorithm mp\_montgomery\_setup.} +This algorithm will calculate the value of $\rho$ required within the Montgomery reduction algorithms. It uses a very interesting trick +to calculate $1/n_0$ when $\beta$ is a power of two. + +EXAM,bn_mp_montgomery_setup.c + +This source code computes the value of $\rho$ required to perform Montgomery reduction. It has been modified to avoid performing excess +multiplications when $\beta$ is not the default 28-bits. + +\section{The Diminished Radix Algorithm} +The Diminished Radix method of modular reduction \cite{DRMET} is a fairly clever technique which can be more efficient than either the Barrett +or Montgomery methods for certain forms of moduli. The technique is based on the following simple congruence. + +\begin{equation} +(x \mbox{ mod } n) + k \lfloor x / n \rfloor \equiv x \mbox{ (mod }(n - k)\mbox{)} +\end{equation} + +This observation was used in the MMB \cite{MMB} block cipher to create a diffusion primitive. It used the fact that if $n = 2^{31}$ and $k=1$ that +then a x86 multiplier could produce the 62-bit product and use the ``shrd'' instruction to perform a double-precision right shift. The proof +of the above equation is very simple. First write $x$ in the product form. + +\begin{equation} +x = qn + r +\end{equation} + +Now reduce both sides modulo $(n - k)$. + +\begin{equation} +x \equiv qk + r \mbox{ (mod }(n-k)\mbox{)} +\end{equation} + +The variable $n$ reduces modulo $n - k$ to $k$. By putting $q = \lfloor x/n \rfloor$ and $r = x \mbox{ mod } n$ +into the equation the original congruence is reproduced, thus concluding the proof. The following algorithm is based on this observation. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{Diminished Radix Reduction}. \\ +\textbf{Input}. Integer $x$, $n$, $k$ \\ +\textbf{Output}. $x \mbox{ mod } (n - k)$ \\ +\hline \\ +1. $q \leftarrow \lfloor x / n \rfloor$ \\ +2. $q \leftarrow k \cdot q$ \\ +3. $x \leftarrow x \mbox{ (mod }n\mbox{)}$ \\ +4. $x \leftarrow x + q$ \\ +5. If $x \ge (n - k)$ then \\ +\hspace{3mm}5.1 $x \leftarrow x - (n - k)$ \\ +\hspace{3mm}5.2 Goto step 1. \\ +6. Return $x$ \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm Diminished Radix Reduction} +\label{fig:DR} +\end{figure} + +This algorithm will reduce $x$ modulo $n - k$ and return the residue. If $0 \le x < (n - k)^2$ then the algorithm will loop almost always +once or twice and occasionally three times. For simplicity sake the value of $x$ is bounded by the following simple polynomial. + +\begin{equation} +0 \le x < n^2 + k^2 - 2nk +\end{equation} + +The true bound is $0 \le x < (n - k - 1)^2$ but this has quite a few more terms. The value of $q$ after step 1 is bounded by the following. + +\begin{equation} +q < n - 2k - k^2/n +\end{equation} + +Since $k^2$ is going to be considerably smaller than $n$ that term will always be zero. The value of $x$ after step 3 is bounded trivially as +$0 \le x < n$. By step four the sum $x + q$ is bounded by + +\begin{equation} +0 \le q + x < (k + 1)n - 2k^2 - 1 +\end{equation} + +With a second pass $q$ will be loosely bounded by $0 \le q < k^2$ after step 2 while $x$ will still be loosely bounded by $0 \le x < n$ after step 3. After the second pass it is highly unlike that the +sum in step 4 will exceed $n - k$. In practice fewer than three passes of the algorithm are required to reduce virtually every input in the +range $0 \le x < (n - k - 1)^2$. + +\begin{figure} +\begin{small} +\begin{center} +\begin{tabular}{|l|} +\hline +$x = 123456789, n = 256, k = 3$ \\ +\hline $q \leftarrow \lfloor x/n \rfloor = 482253$ \\ +$q \leftarrow q*k = 1446759$ \\ +$x \leftarrow x \mbox{ mod } n = 21$ \\ +$x \leftarrow x + q = 1446780$ \\ +$x \leftarrow x - (n - k) = 1446527$ \\ +\hline +$q \leftarrow \lfloor x/n \rfloor = 5650$ \\ +$q \leftarrow q*k = 16950$ \\ +$x \leftarrow x \mbox{ mod } n = 127$ \\ +$x \leftarrow x + q = 17077$ \\ +$x \leftarrow x - (n - k) = 16824$ \\ +\hline +$q \leftarrow \lfloor x/n \rfloor = 65$ \\ +$q \leftarrow q*k = 195$ \\ +$x \leftarrow x \mbox{ mod } n = 184$ \\ +$x \leftarrow x + q = 379$ \\ +$x \leftarrow x - (n - k) = 126$ \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Example Diminished Radix Reduction} +\label{fig:EXDR} +\end{figure} + +Figure~\ref{fig:EXDR} demonstrates the reduction of $x = 123456789$ modulo $n - k = 253$ when $n = 256$ and $k = 3$. Note that even while $x$ +is considerably larger than $(n - k - 1)^2 = 63504$ the algorithm still converges on the modular residue exceedingly fast. In this case only +three passes were required to find the residue $x \equiv 126$. + + +\subsection{Choice of Moduli} +On the surface this algorithm looks like a very expensive algorithm. It requires a couple of subtractions followed by multiplication and other +modular reductions. The usefulness of this algorithm becomes exceedingly clear when an appropriate modulus is chosen. + +Division in general is a very expensive operation to perform. The one exception is when the division is by a power of the radix of representation used. +Division by ten for example is simple for pencil and paper mathematics since it amounts to shifting the decimal place to the right. Similarly division +by two (\textit{or powers of two}) is very simple for binary computers to perform. It would therefore seem logical to choose $n$ of the form $2^p$ +which would imply that $\lfloor x / n \rfloor$ is a simple shift of $x$ right $p$ bits. + +However, there is one operation related to division of power of twos that is even faster than this. If $n = \beta^p$ then the division may be +performed by moving whole digits to the right $p$ places. In practice division by $\beta^p$ is much faster than division by $2^p$ for any $p$. +Also with the choice of $n = \beta^p$ reducing $x$ modulo $n$ merely requires zeroing the digits above the $p-1$'th digit of $x$. + +Throughout the next section the term ``restricted modulus'' will refer to a modulus of the form $\beta^p - k$ whereas the term ``unrestricted +modulus'' will refer to a modulus of the form $2^p - k$. The word ``restricted'' in this case refers to the fact that it is based on the +$2^p$ logic except $p$ must be a multiple of $lg(\beta)$. + +\subsection{Choice of $k$} +Now that division and reduction (\textit{step 1 and 3 of figure~\ref{fig:DR}}) have been optimized to simple digit operations the multiplication by $k$ +in step 2 is the most expensive operation. Fortunately the choice of $k$ is not terribly limited. For all intents and purposes it might +as well be a single digit. The smaller the value of $k$ is the faster the algorithm will be. + +\subsection{Restricted Diminished Radix Reduction} +The restricted Diminished Radix algorithm can quickly reduce an input modulo a modulus of the form $n = \beta^p - k$. This algorithm can reduce +an input $x$ within the range $0 \le x < n^2$ using only a couple passes of the algorithm demonstrated in figure~\ref{fig:DR}. The implementation +of this algorithm has been optimized to avoid additional overhead associated with a division by $\beta^p$, the multiplication by $k$ or the addition +of $x$ and $q$. The resulting algorithm is very efficient and can lead to substantial improvements over Barrett and Montgomery reduction when modular +exponentiations are performed. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_dr\_reduce}. \\ +\textbf{Input}. mp\_int $x$, $n$ and a mp\_digit $k = \beta - n_0$ \\ +\hspace{11.5mm}($0 \le x < n^2$, $n > 1$, $0 < k < \beta$) \\ +\textbf{Output}. $x \mbox{ mod } n$ \\ +\hline \\ +1. $m \leftarrow n.used$ \\ +2. If $x.alloc < 2m$ then grow $x$ to $2m$ digits. \\ +3. $\mu \leftarrow 0$ \\ +4. for $i$ from $0$ to $m - 1$ do \\ +\hspace{3mm}4.1 $\hat r \leftarrow k \cdot x_{m+i} + x_{i} + \mu$ \\ +\hspace{3mm}4.2 $x_{i} \leftarrow \hat r \mbox{ (mod }\beta\mbox{)}$ \\ +\hspace{3mm}4.3 $\mu \leftarrow \lfloor \hat r / \beta \rfloor$ \\ +5. $x_{m} \leftarrow \mu$ \\ +6. for $i$ from $m + 1$ to $x.used - 1$ do \\ +\hspace{3mm}6.1 $x_{i} \leftarrow 0$ \\ +7. Clamp excess digits of $x$. \\ +8. If $x \ge n$ then \\ +\hspace{3mm}8.1 $x \leftarrow x - n$ \\ +\hspace{3mm}8.2 Goto step 3. \\ +9. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_dr\_reduce} +\end{figure} + +\textbf{Algorithm mp\_dr\_reduce.} +This algorithm will perform the Dimished Radix reduction of $x$ modulo $n$. It has similar restrictions to that of the Barrett reduction +with the addition that $n$ must be of the form $n = \beta^m - k$ where $0 < k <\beta$. + +This algorithm essentially implements the pseudo-code in figure~\ref{fig:DR} except with a slight optimization. The division by $\beta^m$, multiplication by $k$ +and addition of $x \mbox{ mod }\beta^m$ are all performed simultaneously inside the loop on step 4. The division by $\beta^m$ is emulated by accessing +the term at the $m+i$'th position which is subsequently multiplied by $k$ and added to the term at the $i$'th position. After the loop the $m$'th +digit is set to the carry and the upper digits are zeroed. Steps 5 and 6 emulate the reduction modulo $\beta^m$ that should have happend to +$x$ before the addition of the multiple of the upper half. + +At step 8 if $x$ is still larger than $n$ another pass of the algorithm is required. First $n$ is subtracted from $x$ and then the algorithm resumes +at step 3. + +EXAM,bn_mp_dr_reduce.c + +The first step is to grow $x$ as required to $2m$ digits since the reduction is performed in place on $x$. The label on line @49,top:@ is where +the algorithm will resume if further reduction passes are required. In theory it could be placed at the top of the function however, the size of +the modulus and question of whether $x$ is large enough are invariant after the first pass meaning that it would be a waste of time. + +The aliases $tmpx1$ and $tmpx2$ refer to the digits of $x$ where the latter is offset by $m$ digits. By reading digits from $x$ offset by $m$ digits +a division by $\beta^m$ can be simulated virtually for free. The loop on line @61,for@ performs the bulk of the work (\textit{corresponds to step 4 of algorithm 7.11}) +in this algorithm. + +By line @68,mu@ the pointer $tmpx1$ points to the $m$'th digit of $x$ which is where the final carry will be placed. Similarly by line @71,for@ the +same pointer will point to the $m+1$'th digit where the zeroes will be placed. + +Since the algorithm is only valid if both $x$ and $n$ are greater than zero an unsigned comparison suffices to determine if another pass is required. +With the same logic at line @82,sub@ the value of $x$ is known to be greater than or equal to $n$ meaning that an unsigned subtraction can be used +as well. Since the destination of the subtraction is the larger of the inputs the call to algorithm s\_mp\_sub cannot fail and the return code +does not need to be checked. + +\subsubsection{Setup} +To setup the restricted Diminished Radix algorithm the value $k = \beta - n_0$ is required. This algorithm is not really complicated but provided for +completeness. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_dr\_setup}. \\ +\textbf{Input}. mp\_int $n$ \\ +\textbf{Output}. $k = \beta - n_0$ \\ +\hline \\ +1. $k \leftarrow \beta - n_0$ \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_dr\_setup} +\end{figure} + +EXAM,bn_mp_dr_setup.c + +\subsubsection{Modulus Detection} +Another algorithm which will be useful is the ability to detect a restricted Diminished Radix modulus. An integer is said to be +of restricted Diminished Radix form if all of the digits are equal to $\beta - 1$ except the trailing digit which may be any value. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_dr\_is\_modulus}. \\ +\textbf{Input}. mp\_int $n$ \\ +\textbf{Output}. $1$ if $n$ is in D.R form, $0$ otherwise \\ +\hline +1. If $n.used < 2$ then return($0$). \\ +2. for $ix$ from $1$ to $n.used - 1$ do \\ +\hspace{3mm}2.1 If $n_{ix} \ne \beta - 1$ return($0$). \\ +3. Return($1$). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_dr\_is\_modulus} +\end{figure} + +\textbf{Algorithm mp\_dr\_is\_modulus.} +This algorithm determines if a value is in Diminished Radix form. Step 1 rejects obvious cases where fewer than two digits are +in the mp\_int. Step 2 tests all but the first digit to see if they are equal to $\beta - 1$. If the algorithm manages to get to +step 3 then $n$ must be of Diminished Radix form. + +EXAM,bn_mp_dr_is_modulus.c + +\subsection{Unrestricted Diminished Radix Reduction} +The unrestricted Diminished Radix algorithm allows modular reductions to be performed when the modulus is of the form $2^p - k$. This algorithm +is a straightforward adaptation of algorithm~\ref{fig:DR}. + +In general the restricted Diminished Radix reduction algorithm is much faster since it has considerably lower overhead. However, this new +algorithm is much faster than either Montgomery or Barrett reduction when the moduli are of the appropriate form. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_reduce\_2k}. \\ +\textbf{Input}. mp\_int $a$ and $n$. mp\_digit $k$ \\ +\hspace{11.5mm}($a \ge 0$, $n > 1$, $0 < k < \beta$, $n + k$ is a power of two) \\ +\textbf{Output}. $a \mbox{ (mod }n\mbox{)}$ \\ +\hline +1. $p \leftarrow \lceil lg(n) \rceil$ (\textit{mp\_count\_bits}) \\ +2. While $a \ge n$ do \\ +\hspace{3mm}2.1 $q \leftarrow \lfloor a / 2^p \rfloor$ (\textit{mp\_div\_2d}) \\ +\hspace{3mm}2.2 $a \leftarrow a \mbox{ (mod }2^p\mbox{)}$ (\textit{mp\_mod\_2d}) \\ +\hspace{3mm}2.3 $q \leftarrow q \cdot k$ (\textit{mp\_mul\_d}) \\ +\hspace{3mm}2.4 $a \leftarrow a - q$ (\textit{s\_mp\_sub}) \\ +\hspace{3mm}2.5 If $a \ge n$ then do \\ +\hspace{6mm}2.5.1 $a \leftarrow a - n$ \\ +3. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_reduce\_2k} +\end{figure} + +\textbf{Algorithm mp\_reduce\_2k.} +This algorithm quickly reduces an input $a$ modulo an unrestricted Diminished Radix modulus $n$. Division by $2^p$ is emulated with a right +shift which makes the algorithm fairly inexpensive to use. + +EXAM,bn_mp_reduce_2k.c + +The algorithm mp\_count\_bits calculates the number of bits in an mp\_int which is used to find the initial value of $p$. The call to mp\_div\_2d +on line @31,mp_div_2d@ calculates both the quotient $q$ and the remainder $a$ required. By doing both in a single function call the code size +is kept fairly small. The multiplication by $k$ is only performed if $k > 1$. This allows reductions modulo $2^p - 1$ to be performed without +any multiplications. + +The unsigned s\_mp\_add, mp\_cmp\_mag and s\_mp\_sub are used in place of their full sign counterparts since the inputs are only valid if they are +positive. By using the unsigned versions the overhead is kept to a minimum. + +\subsubsection{Unrestricted Setup} +To setup this reduction algorithm the value of $k = 2^p - n$ is required. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_reduce\_2k\_setup}. \\ +\textbf{Input}. mp\_int $n$ \\ +\textbf{Output}. $k = 2^p - n$ \\ +\hline +1. $p \leftarrow \lceil lg(n) \rceil$ (\textit{mp\_count\_bits}) \\ +2. $x \leftarrow 2^p$ (\textit{mp\_2expt}) \\ +3. $x \leftarrow x - n$ (\textit{mp\_sub}) \\ +4. $k \leftarrow x_0$ \\ +5. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_reduce\_2k\_setup} +\end{figure} + +\textbf{Algorithm mp\_reduce\_2k\_setup.} +This algorithm computes the value of $k$ required for the algorithm mp\_reduce\_2k. By making a temporary variable $x$ equal to $2^p$ a subtraction +is sufficient to solve for $k$. Alternatively if $n$ has more than one digit the value of $k$ is simply $\beta - n_0$. + +EXAM,bn_mp_reduce_2k_setup.c + +\subsubsection{Unrestricted Detection} +An integer $n$ is a valid unrestricted Diminished Radix modulus if either of the following are true. + +\begin{enumerate} +\item The number has only one digit. +\item The number has more than one digit and every bit from the $\beta$'th to the most significant is one. +\end{enumerate} + +If either condition is true than there is a power of two $2^p$ such that $0 < 2^p - n < \beta$. If the input is only +one digit than it will always be of the correct form. Otherwise all of the bits above the first digit must be one. This arises from the fact +that there will be value of $k$ that when added to the modulus causes a carry in the first digit which propagates all the way to the most +significant bit. The resulting sum will be a power of two. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_reduce\_is\_2k}. \\ +\textbf{Input}. mp\_int $n$ \\ +\textbf{Output}. $1$ if of proper form, $0$ otherwise \\ +\hline +1. If $n.used = 0$ then return($0$). \\ +2. If $n.used = 1$ then return($1$). \\ +3. $p \leftarrow \lceil lg(n) \rceil$ (\textit{mp\_count\_bits}) \\ +4. for $x$ from $lg(\beta)$ to $p$ do \\ +\hspace{3mm}4.1 If the ($x \mbox{ mod }lg(\beta)$)'th bit of the $\lfloor x / lg(\beta) \rfloor$ of $n$ is zero then return($0$). \\ +5. Return($1$). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_reduce\_is\_2k} +\end{figure} + +\textbf{Algorithm mp\_reduce\_is\_2k.} +This algorithm quickly determines if a modulus is of the form required for algorithm mp\_reduce\_2k to function properly. + +EXAM,bn_mp_reduce_is_2k.c + + + +\section{Algorithm Comparison} +So far three very different algorithms for modular reduction have been discussed. Each of the algorithms have their own strengths and weaknesses +that makes having such a selection very useful. The following table sumarizes the three algorithms along with comparisons of work factors. Since +all three algorithms have the restriction that $0 \le x < n^2$ and $n > 1$ those limitations are not included in the table. + +\begin{center} +\begin{small} +\begin{tabular}{|c|c|c|c|c|c|} +\hline \textbf{Method} & \textbf{Work Required} & \textbf{Limitations} & \textbf{$m = 8$} & \textbf{$m = 32$} & \textbf{$m = 64$} \\ +\hline Barrett & $m^2 + 2m - 1$ & None & $79$ & $1087$ & $4223$ \\ +\hline Montgomery & $m^2 + m$ & $n$ must be odd & $72$ & $1056$ & $4160$ \\ +\hline D.R. & $2m$ & $n = \beta^m - k$ & $16$ & $64$ & $128$ \\ +\hline +\end{tabular} +\end{small} +\end{center} + +In theory Montgomery and Barrett reductions would require roughly the same amount of time to complete. However, in practice since Montgomery +reduction can be written as a single function with the Comba technique it is much faster. Barrett reduction suffers from the overhead of +calling the half precision multipliers, addition and division by $\beta$ algorithms. + +For almost every cryptographic algorithm Montgomery reduction is the algorithm of choice. The one set of algorithms where Diminished Radix reduction truly +shines are based on the discrete logarithm problem such as Diffie-Hellman \cite{DH} and ElGamal \cite{ELGAMAL}. In these algorithms +primes of the form $\beta^m - k$ can be found and shared amongst users. These primes will allow the Diminished Radix algorithm to be used in +modular exponentiation to greatly speed up the operation. + + + +\section*{Exercises} +\begin{tabular}{cl} +$\left [ 3 \right ]$ & Prove that the ``trick'' in algorithm mp\_montgomery\_setup actually \\ + & calculates the correct value of $\rho$. \\ + & \\ +$\left [ 2 \right ]$ & Devise an algorithm to reduce modulo $n + k$ for small $k$ quickly. \\ + & \\ +$\left [ 4 \right ]$ & Prove that the pseudo-code algorithm ``Diminished Radix Reduction'' \\ + & (\textit{figure~\ref{fig:DR}}) terminates. Also prove the probability that it will \\ + & terminate within $1 \le k \le 10$ iterations. \\ + & \\ +\end{tabular} + + +\chapter{Exponentiation} +Exponentiation is the operation of raising one variable to the power of another, for example, $a^b$. A variant of exponentiation, computed +in a finite field or ring, is called modular exponentiation. This latter style of operation is typically used in public key +cryptosystems such as RSA and Diffie-Hellman. The ability to quickly compute modular exponentiations is of great benefit to any +such cryptosystem and many methods have been sought to speed it up. + +\section{Exponentiation Basics} +A trivial algorithm would simply multiply $a$ against itself $b - 1$ times to compute the exponentiation desired. However, as $b$ grows in size +the number of multiplications becomes prohibitive. Imagine what would happen if $b$ $\approx$ $2^{1024}$ as is the case when computing an RSA signature +with a $1024$-bit key. Such a calculation could never be completed as it would take simply far too long. + +Fortunately there is a very simple algorithm based on the laws of exponents. Recall that $lg_a(a^b) = b$ and that $lg_a(a^ba^c) = b + c$ which +are two trivial relationships between the base and the exponent. Let $b_i$ represent the $i$'th bit of $b$ starting from the least +significant bit. If $b$ is a $k$-bit integer than the following equation is true. + +\begin{equation} +a^b = \prod_{i=0}^{k-1} a^{2^i \cdot b_i} +\end{equation} + +By taking the base $a$ logarithm of both sides of the equation the following equation is the result. + +\begin{equation} +b = \sum_{i=0}^{k-1}2^i \cdot b_i +\end{equation} + +The term $a^{2^i}$ can be found from the $i - 1$'th term by squaring the term since $\left ( a^{2^i} \right )^2$ is equal to +$a^{2^{i+1}}$. This observation forms the basis of essentially all fast exponentiation algorithms. It requires $k$ squarings and on average +$k \over 2$ multiplications to compute the result. This is indeed quite an improvement over simply multiplying by $a$ a total of $b-1$ times. + +While this current method is a considerable speed up there are further improvements to be made. For example, the $a^{2^i}$ term does not need to +be computed in an auxilary variable. Consider the following equivalent algorithm. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{Left to Right Exponentiation}. \\ +\textbf{Input}. Integer $a$, $b$ and $k$ \\ +\textbf{Output}. $c = a^b$ \\ +\hline \\ +1. $c \leftarrow 1$ \\ +2. for $i$ from $k - 1$ to $0$ do \\ +\hspace{3mm}2.1 $c \leftarrow c^2$ \\ +\hspace{3mm}2.2 $c \leftarrow c \cdot a^{b_i}$ \\ +3. Return $c$. \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Left to Right Exponentiation} +\label{fig:LTOR} +\end{figure} + +This algorithm starts from the most significant bit and works towards the least significant bit. When the $i$'th bit of $b$ is set $a$ is +multiplied against the current product. In each iteration the product is squared which doubles the exponent of the individual terms of the +product. + +For example, let $b = 101100_2 \equiv 44_{10}$. The following chart demonstrates the actions of the algorithm. + +\newpage\begin{figure} +\begin{center} +\begin{tabular}{|c|c|} +\hline \textbf{Value of $i$} & \textbf{Value of $c$} \\ +\hline - & $1$ \\ +\hline $5$ & $a$ \\ +\hline $4$ & $a^2$ \\ +\hline $3$ & $a^4 \cdot a$ \\ +\hline $2$ & $a^8 \cdot a^2 \cdot a$ \\ +\hline $1$ & $a^{16} \cdot a^4 \cdot a^2$ \\ +\hline $0$ & $a^{32} \cdot a^8 \cdot a^4$ \\ +\hline +\end{tabular} +\end{center} +\caption{Example of Left to Right Exponentiation} +\end{figure} + +When the product $a^{32} \cdot a^8 \cdot a^4$ is simplified it is equal $a^{44}$ which is the desired exponentiation. This particular algorithm is +called ``Left to Right'' because it reads the exponent in that order. All of the exponentiation algorithms that will be presented are of this nature. + +\subsection{Single Digit Exponentiation} +The first algorithm in the series of exponentiation algorithms will be an unbounded algorithm where the exponent is a single digit. It is intended +to be used when a small power of an input is required (\textit{e.g. $a^5$}). It is faster than simply multiplying $b - 1$ times for all values of +$b$ that are greater than three. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_expt\_d}. \\ +\textbf{Input}. mp\_int $a$ and mp\_digit $b$ \\ +\textbf{Output}. $c = a^b$ \\ +\hline \\ +1. $g \leftarrow a$ (\textit{mp\_init\_copy}) \\ +2. $c \leftarrow 1$ (\textit{mp\_set}) \\ +3. for $x$ from 1 to $lg(\beta)$ do \\ +\hspace{3mm}3.1 $c \leftarrow c^2$ (\textit{mp\_sqr}) \\ +\hspace{3mm}3.2 If $b$ AND $2^{lg(\beta) - 1} \ne 0$ then \\ +\hspace{6mm}3.2.1 $c \leftarrow c \cdot g$ (\textit{mp\_mul}) \\ +\hspace{3mm}3.3 $b \leftarrow b << 1$ \\ +4. Clear $g$. \\ +5. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_expt\_d} +\end{figure} + +\textbf{Algorithm mp\_expt\_d.} +This algorithm computes the value of $a$ raised to the power of a single digit $b$. It uses the left to right exponentiation algorithm to +quickly compute the exponentiation. It is loosely based on algorithm 14.79 of HAC \cite[pp. 615]{HAC} with the difference that the +exponent is a fixed width. + +A copy of $a$ is made first to allow destination variable $c$ be the same as the source variable $a$. The result is set to the initial value of +$1$ in the subsequent step. + +Inside the loop the exponent is read from the most significant bit first down to the least significant bit. First $c$ is invariably squared +on step 3.1. In the following step if the most significant bit of $b$ is one the copy of $a$ is multiplied against $c$. The value +of $b$ is shifted left one bit to make the next bit down from the most signficant bit the new most significant bit. In effect each +iteration of the loop moves the bits of the exponent $b$ upwards to the most significant location. + +EXAM,bn_mp_expt_d.c + +Line @29,mp_set@ sets the initial value of the result to $1$. Next the loop on line @31,for@ steps through each bit of the exponent starting from +the most significant down towards the least significant. The invariant squaring operation placed on line @333,mp_sqr@ is performed first. After +the squaring the result $c$ is multiplied by the base $g$ if and only if the most significant bit of the exponent is set. The shift on line +@47,<<@ moves all of the bits of the exponent upwards towards the most significant location. + +\section{$k$-ary Exponentiation} +When calculating an exponentiation the most time consuming bottleneck is the multiplications which are in general a small factor +slower than squaring. Recall from the previous algorithm that $b_{i}$ refers to the $i$'th bit of the exponent $b$. Suppose instead it referred to +the $i$'th $k$-bit digit of the exponent of $b$. For $k = 1$ the definitions are synonymous and for $k > 1$ algorithm~\ref{fig:KARY} +computes the same exponentiation. A group of $k$ bits from the exponent is called a \textit{window}. That is it is a small window on only a +portion of the entire exponent. Consider the following modification to the basic left to right exponentiation algorithm. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{$k$-ary Exponentiation}. \\ +\textbf{Input}. Integer $a$, $b$, $k$ and $t$ \\ +\textbf{Output}. $c = a^b$ \\ +\hline \\ +1. $c \leftarrow 1$ \\ +2. for $i$ from $t - 1$ to $0$ do \\ +\hspace{3mm}2.1 $c \leftarrow c^{2^k} $ \\ +\hspace{3mm}2.2 Extract the $i$'th $k$-bit word from $b$ and store it in $g$. \\ +\hspace{3mm}2.3 $c \leftarrow c \cdot a^g$ \\ +3. Return $c$. \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{$k$-ary Exponentiation} +\label{fig:KARY} +\end{figure} + +The squaring on step 2.1 can be calculated by squaring the value $c$ successively $k$ times. If the values of $a^g$ for $0 < g < 2^k$ have been +precomputed this algorithm requires only $t$ multiplications and $tk$ squarings. The table can be generated with $2^{k - 1} - 1$ squarings and +$2^{k - 1} + 1$ multiplications. This algorithm assumes that the number of bits in the exponent is evenly divisible by $k$. +However, when it is not the remaining $0 < x \le k - 1$ bits can be handled with algorithm~\ref{fig:LTOR}. + +Suppose $k = 4$ and $t = 100$. This modified algorithm will require $109$ multiplications and $408$ squarings to compute the exponentiation. The +original algorithm would on average have required $200$ multiplications and $400$ squrings to compute the same value. The total number of squarings +has increased slightly but the number of multiplications has nearly halved. + +\subsection{Optimal Values of $k$} +An optimal value of $k$ will minimize $2^{k} + \lceil n / k \rceil + n - 1$ for a fixed number of bits in the exponent $n$. The simplest +approach is to brute force search amongst the values $k = 2, 3, \ldots, 8$ for the lowest result. Table~\ref{fig:OPTK} lists optimal values of $k$ +for various exponent sizes and compares the number of multiplication and squarings required against algorithm~\ref{fig:LTOR}. + +\begin{figure}[here] +\begin{center} +\begin{small} +\begin{tabular}{|c|c|c|c|c|c|} +\hline \textbf{Exponent (bits)} & \textbf{Optimal $k$} & \textbf{Work at $k$} & \textbf{Work with ~\ref{fig:LTOR}} \\ +\hline $16$ & $2$ & $27$ & $24$ \\ +\hline $32$ & $3$ & $49$ & $48$ \\ +\hline $64$ & $3$ & $92$ & $96$ \\ +\hline $128$ & $4$ & $175$ & $192$ \\ +\hline $256$ & $4$ & $335$ & $384$ \\ +\hline $512$ & $5$ & $645$ & $768$ \\ +\hline $1024$ & $6$ & $1257$ & $1536$ \\ +\hline $2048$ & $6$ & $2452$ & $3072$ \\ +\hline $4096$ & $7$ & $4808$ & $6144$ \\ +\hline +\end{tabular} +\end{small} +\end{center} +\caption{Optimal Values of $k$ for $k$-ary Exponentiation} +\label{fig:OPTK} +\end{figure} + +\subsection{Sliding-Window Exponentiation} +A simple modification to the previous algorithm is only generate the upper half of the table in the range $2^{k-1} \le g < 2^k$. Essentially +this is a table for all values of $g$ where the most significant bit of $g$ is a one. However, in order for this to be allowed in the +algorithm values of $g$ in the range $0 \le g < 2^{k-1}$ must be avoided. + +Table~\ref{fig:OPTK2} lists optimal values of $k$ for various exponent sizes and compares the work required against algorithm~\ref{fig:KARY}. + +\begin{figure}[here] +\begin{center} +\begin{small} +\begin{tabular}{|c|c|c|c|c|c|} +\hline \textbf{Exponent (bits)} & \textbf{Optimal $k$} & \textbf{Work at $k$} & \textbf{Work with ~\ref{fig:KARY}} \\ +\hline $16$ & $3$ & $24$ & $27$ \\ +\hline $32$ & $3$ & $45$ & $49$ \\ +\hline $64$ & $4$ & $87$ & $92$ \\ +\hline $128$ & $4$ & $167$ & $175$ \\ +\hline $256$ & $5$ & $322$ & $335$ \\ +\hline $512$ & $6$ & $628$ & $645$ \\ +\hline $1024$ & $6$ & $1225$ & $1257$ \\ +\hline $2048$ & $7$ & $2403$ & $2452$ \\ +\hline $4096$ & $8$ & $4735$ & $4808$ \\ +\hline +\end{tabular} +\end{small} +\end{center} +\caption{Optimal Values of $k$ for Sliding Window Exponentiation} +\label{fig:OPTK2} +\end{figure} + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{Sliding Window $k$-ary Exponentiation}. \\ +\textbf{Input}. Integer $a$, $b$, $k$ and $t$ \\ +\textbf{Output}. $c = a^b$ \\ +\hline \\ +1. $c \leftarrow 1$ \\ +2. for $i$ from $t - 1$ to $0$ do \\ +\hspace{3mm}2.1 If the $i$'th bit of $b$ is a zero then \\ +\hspace{6mm}2.1.1 $c \leftarrow c^2$ \\ +\hspace{3mm}2.2 else do \\ +\hspace{6mm}2.2.1 $c \leftarrow c^{2^k}$ \\ +\hspace{6mm}2.2.2 Extract the $k$ bits from $(b_{i}b_{i-1}\ldots b_{i-(k-1)})$ and store it in $g$. \\ +\hspace{6mm}2.2.3 $c \leftarrow c \cdot a^g$ \\ +\hspace{6mm}2.2.4 $i \leftarrow i - k$ \\ +3. Return $c$. \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Sliding Window $k$-ary Exponentiation} +\end{figure} + +Similar to the previous algorithm this algorithm must have a special handler when fewer than $k$ bits are left in the exponent. While this +algorithm requires the same number of squarings it can potentially have fewer multiplications. The pre-computed table $a^g$ is also half +the size as the previous table. + +Consider the exponent $b = 111101011001000_2 \equiv 31432_{10}$ with $k = 3$ using both algorithms. The first algorithm will divide the exponent up as +the following five $3$-bit words $b \equiv \left ( 111, 101, 011, 001, 000 \right )_{2}$. The second algorithm will break the +exponent as $b \equiv \left ( 111, 101, 0, 110, 0, 100, 0 \right )_{2}$. The single digit $0$ in the second representation are where +a single squaring took place instead of a squaring and multiplication. In total the first method requires $10$ multiplications and $18$ +squarings. The second method requires $8$ multiplications and $18$ squarings. + +In general the sliding window method is never slower than the generic $k$-ary method and often it is slightly faster. + +\section{Modular Exponentiation} + +Modular exponentiation is essentially computing the power of a base within a finite field or ring. For example, computing +$d \equiv a^b \mbox{ (mod }c\mbox{)}$ is a modular exponentiation. Instead of first computing $a^b$ and then reducing it +modulo $c$ the intermediate result is reduced modulo $c$ after every squaring or multiplication operation. + +This guarantees that any intermediate result is bounded by $0 \le d \le c^2 - 2c + 1$ and can be reduced modulo $c$ quickly using +one of the algorithms presented in ~REDUCTION~. + +Before the actual modular exponentiation algorithm can be written a wrapper algorithm must be written first. This algorithm +will allow the exponent $b$ to be negative which is computed as $c \equiv \left (1 / a \right )^{\vert b \vert} \mbox{(mod }d\mbox{)}$. The +value of $(1/a) \mbox{ mod }c$ is computed using the modular inverse (\textit{see \ref{sec;modinv}}). If no inverse exists the algorithm +terminates with an error. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_exptmod}. \\ +\textbf{Input}. mp\_int $a$, $b$ and $c$ \\ +\textbf{Output}. $y \equiv g^x \mbox{ (mod }p\mbox{)}$ \\ +\hline \\ +1. If $c.sign = MP\_NEG$ return(\textit{MP\_VAL}). \\ +2. If $b.sign = MP\_NEG$ then \\ +\hspace{3mm}2.1 $g' \leftarrow g^{-1} \mbox{ (mod }c\mbox{)}$ \\ +\hspace{3mm}2.2 $x' \leftarrow \vert x \vert$ \\ +\hspace{3mm}2.3 Compute $d \equiv g'^{x'} \mbox{ (mod }c\mbox{)}$ via recursion. \\ +3. if $p$ is odd \textbf{OR} $p$ is a D.R. modulus then \\ +\hspace{3mm}3.1 Compute $y \equiv g^{x} \mbox{ (mod }p\mbox{)}$ via algorithm mp\_exptmod\_fast. \\ +4. else \\ +\hspace{3mm}4.1 Compute $y \equiv g^{x} \mbox{ (mod }p\mbox{)}$ via algorithm s\_mp\_exptmod. \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_exptmod} +\end{figure} + +\textbf{Algorithm mp\_exptmod.} +The first algorithm which actually performs modular exponentiation is algorithm s\_mp\_exptmod. It is a sliding window $k$-ary algorithm +which uses Barrett reduction to reduce the product modulo $p$. The second algorithm mp\_exptmod\_fast performs the same operation +except it uses either Montgomery or Diminished Radix reduction. The two latter reduction algorithms are clumped in the same exponentiation +algorithm since their arguments are essentially the same (\textit{two mp\_ints and one mp\_digit}). + +EXAM,bn_mp_exptmod.c + +In order to keep the algorithms in a known state the first step on line @29,if@ is to reject any negative modulus as input. If the exponent is +negative the algorithm tries to perform a modular exponentiation with the modular inverse of the base $G$. The temporary variable $tmpG$ is assigned +the modular inverse of $G$ and $tmpX$ is assigned the absolute value of $X$. The algorithm will recuse with these new values with a positive +exponent. + +If the exponent is positive the algorithm resumes the exponentiation. Line @63,dr_@ determines if the modulus is of the restricted Diminished Radix +form. If it is not line @65,reduce@ attempts to determine if it is of a unrestricted Diminished Radix form. The integer $dr$ will take on one +of three values. + +\begin{enumerate} +\item $dr = 0$ means that the modulus is not of either restricted or unrestricted Diminished Radix form. +\item $dr = 1$ means that the modulus is of restricted Diminished Radix form. +\item $dr = 2$ means that the modulus is of unrestricted Diminished Radix form. +\end{enumerate} + +Line @69,if@ determines if the fast modular exponentiation algorithm can be used. It is allowed if $dr \ne 0$ or if the modulus is odd. Otherwise, +the slower s\_mp\_exptmod algorithm is used which uses Barrett reduction. + +\subsection{Barrett Modular Exponentiation} + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{s\_mp\_exptmod}. \\ +\textbf{Input}. mp\_int $a$, $b$ and $c$ \\ +\textbf{Output}. $y \equiv g^x \mbox{ (mod }p\mbox{)}$ \\ +\hline \\ +1. $k \leftarrow lg(x)$ \\ +2. $winsize \leftarrow \left \lbrace \begin{array}{ll} + 2 & \mbox{if }k \le 7 \\ + 3 & \mbox{if }7 < k \le 36 \\ + 4 & \mbox{if }36 < k \le 140 \\ + 5 & \mbox{if }140 < k \le 450 \\ + 6 & \mbox{if }450 < k \le 1303 \\ + 7 & \mbox{if }1303 < k \le 3529 \\ + 8 & \mbox{if }3529 < k \\ + \end{array} \right .$ \\ +3. Initialize $2^{winsize}$ mp\_ints in an array named $M$ and one mp\_int named $\mu$ \\ +4. Calculate the $\mu$ required for Barrett Reduction (\textit{mp\_reduce\_setup}). \\ +5. $M_1 \leftarrow g \mbox{ (mod }p\mbox{)}$ \\ +\\ +Setup the table of small powers of $g$. First find $g^{2^{winsize}}$ and then all multiples of it. \\ +6. $k \leftarrow 2^{winsize - 1}$ \\ +7. $M_{k} \leftarrow M_1$ \\ +8. for $ix$ from 0 to $winsize - 2$ do \\ +\hspace{3mm}8.1 $M_k \leftarrow \left ( M_k \right )^2$ (\textit{mp\_sqr}) \\ +\hspace{3mm}8.2 $M_k \leftarrow M_k \mbox{ (mod }p\mbox{)}$ (\textit{mp\_reduce}) \\ +9. for $ix$ from $2^{winsize - 1} + 1$ to $2^{winsize} - 1$ do \\ +\hspace{3mm}9.1 $M_{ix} \leftarrow M_{ix - 1} \cdot M_{1}$ (\textit{mp\_mul}) \\ +\hspace{3mm}9.2 $M_{ix} \leftarrow M_{ix} \mbox{ (mod }p\mbox{)}$ (\textit{mp\_reduce}) \\ +10. $res \leftarrow 1$ \\ +\\ +Start Sliding Window. \\ +11. $mode \leftarrow 0, bitcnt \leftarrow 1, buf \leftarrow 0, digidx \leftarrow x.used - 1, bitcpy \leftarrow 0, bitbuf \leftarrow 0$ \\ +12. Loop \\ +\hspace{3mm}12.1 $bitcnt \leftarrow bitcnt - 1$ \\ +\hspace{3mm}12.2 If $bitcnt = 0$ then do \\ +\hspace{6mm}12.2.1 If $digidx = -1$ goto step 13. \\ +\hspace{6mm}12.2.2 $buf \leftarrow x_{digidx}$ \\ +\hspace{6mm}12.2.3 $digidx \leftarrow digidx - 1$ \\ +\hspace{6mm}12.2.4 $bitcnt \leftarrow lg(\beta)$ \\ +Continued on next page. \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm s\_mp\_exptmod} +\end{figure} + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{s\_mp\_exptmod} (\textit{continued}). \\ +\textbf{Input}. mp\_int $a$, $b$ and $c$ \\ +\textbf{Output}. $y \equiv g^x \mbox{ (mod }p\mbox{)}$ \\ +\hline \\ +\hspace{3mm}12.3 $y \leftarrow (buf >> (lg(\beta) - 1))$ AND $1$ \\ +\hspace{3mm}12.4 $buf \leftarrow buf << 1$ \\ +\hspace{3mm}12.5 if $mode = 0$ and $y = 0$ then goto step 12. \\ +\hspace{3mm}12.6 if $mode = 1$ and $y = 0$ then do \\ +\hspace{6mm}12.6.1 $res \leftarrow res^2$ \\ +\hspace{6mm}12.6.2 $res \leftarrow res \mbox{ (mod }p\mbox{)}$ \\ +\hspace{6mm}12.6.3 Goto step 12. \\ +\hspace{3mm}12.7 $bitcpy \leftarrow bitcpy + 1$ \\ +\hspace{3mm}12.8 $bitbuf \leftarrow bitbuf + (y << (winsize - bitcpy))$ \\ +\hspace{3mm}12.9 $mode \leftarrow 2$ \\ +\hspace{3mm}12.10 If $bitcpy = winsize$ then do \\ +\hspace{6mm}Window is full so perform the squarings and single multiplication. \\ +\hspace{6mm}12.10.1 for $ix$ from $0$ to $winsize -1$ do \\ +\hspace{9mm}12.10.1.1 $res \leftarrow res^2$ \\ +\hspace{9mm}12.10.1.2 $res \leftarrow res \mbox{ (mod }p\mbox{)}$ \\ +\hspace{6mm}12.10.2 $res \leftarrow res \cdot M_{bitbuf}$ \\ +\hspace{6mm}12.10.3 $res \leftarrow res \mbox{ (mod }p\mbox{)}$ \\ +\hspace{6mm}Reset the window. \\ +\hspace{6mm}12.10.4 $bitcpy \leftarrow 0, bitbuf \leftarrow 0, mode \leftarrow 1$ \\ +\\ +No more windows left. Check for residual bits of exponent. \\ +13. If $mode = 2$ and $bitcpy > 0$ then do \\ +\hspace{3mm}13.1 for $ix$ form $0$ to $bitcpy - 1$ do \\ +\hspace{6mm}13.1.1 $res \leftarrow res^2$ \\ +\hspace{6mm}13.1.2 $res \leftarrow res \mbox{ (mod }p\mbox{)}$ \\ +\hspace{6mm}13.1.3 $bitbuf \leftarrow bitbuf << 1$ \\ +\hspace{6mm}13.1.4 If $bitbuf$ AND $2^{winsize} \ne 0$ then do \\ +\hspace{9mm}13.1.4.1 $res \leftarrow res \cdot M_{1}$ \\ +\hspace{9mm}13.1.4.2 $res \leftarrow res \mbox{ (mod }p\mbox{)}$ \\ +14. $y \leftarrow res$ \\ +15. Clear $res$, $mu$ and the $M$ array. \\ +16. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm s\_mp\_exptmod (continued)} +\end{figure} + +\textbf{Algorithm s\_mp\_exptmod.} +This algorithm computes the $x$'th power of $g$ modulo $p$ and stores the result in $y$. It takes advantage of the Barrett reduction +algorithm to keep the product small throughout the algorithm. + +The first two steps determine the optimal window size based on the number of bits in the exponent. The larger the exponent the +larger the window size becomes. After a window size $winsize$ has been chosen an array of $2^{winsize}$ mp\_int variables is allocated. This +table will hold the values of $g^x \mbox{ (mod }p\mbox{)}$ for $2^{winsize - 1} \le x < 2^{winsize}$. + +After the table is allocated the first power of $g$ is found. Since $g \ge p$ is allowed it must be first reduced modulo $p$ to make +the rest of the algorithm more efficient. The first element of the table at $2^{winsize - 1}$ is found by squaring $M_1$ successively $winsize - 2$ +times. The rest of the table elements are found by multiplying the previous element by $M_1$ modulo $p$. + +Now that the table is available the sliding window may begin. The following list describes the functions of all the variables in the window. +\begin{enumerate} +\item The variable $mode$ dictates how the bits of the exponent are interpreted. +\begin{enumerate} + \item When $mode = 0$ the bits are ignored since no non-zero bit of the exponent has been seen yet. For example, if the exponent were simply + $1$ then there would be $lg(\beta) - 1$ zero bits before the first non-zero bit. In this case bits are ignored until a non-zero bit is found. + \item When $mode = 1$ a non-zero bit has been seen before and a new $winsize$-bit window has not been formed yet. In this mode leading $0$ bits + are read and a single squaring is performed. If a non-zero bit is read a new window is created. + \item When $mode = 2$ the algorithm is in the middle of forming a window and new bits are appended to the window from the most significant bit + downwards. +\end{enumerate} +\item The variable $bitcnt$ indicates how many bits are left in the current digit of the exponent left to be read. When it reaches zero a new digit + is fetched from the exponent. +\item The variable $buf$ holds the currently read digit of the exponent. +\item The variable $digidx$ is an index into the exponents digits. It starts at the leading digit $x.used - 1$ and moves towards the trailing digit. +\item The variable $bitcpy$ indicates how many bits are in the currently formed window. When it reaches $winsize$ the window is flushed and + the appropriate operations performed. +\item The variable $bitbuf$ holds the current bits of the window being formed. +\end{enumerate} + +All of step 12 is the window processing loop. It will iterate while there are digits available form the exponent to read. The first step +inside this loop is to extract a new digit if no more bits are available in the current digit. If there are no bits left a new digit is +read and if there are no digits left than the loop terminates. + +After a digit is made available step 12.3 will extract the most significant bit of the current digit and move all other bits in the digit +upwards. In effect the digit is read from most significant bit to least significant bit and since the digits are read from leading to +trailing edges the entire exponent is read from most significant bit to least significant bit. + +At step 12.5 if the $mode$ and currently extracted bit $y$ are both zero the bit is ignored and the next bit is read. This prevents the +algorithm from having to perform trivial squaring and reduction operations before the first non-zero bit is read. Step 12.6 and 12.7-10 handle +the two cases of $mode = 1$ and $mode = 2$ respectively. + +FIGU,expt_state,Sliding Window State Diagram + +By step 13 there are no more digits left in the exponent. However, there may be partial bits in the window left. If $mode = 2$ then +a Left-to-Right algorithm is used to process the remaining few bits. + +EXAM,bn_s_mp_exptmod.c + +Lines @26,if@ through @40,}@ determine the optimal window size based on the length of the exponent in bits. The window divisions are sorted +from smallest to greatest so that in each \textbf{if} statement only one condition must be tested. For example, by the \textbf{if} statement +on line @32,if@ the value of $x$ is already known to be greater than $140$. + +The conditional piece of code beginning on line @42,ifdef@ allows the window size to be restricted to five bits. This logic is used to ensure +the table of precomputed powers of $G$ remains relatively small. + +The for loop on line @49,for@ initializes the $M$ array while lines @59,mp_init@ and @62,mp_reduce@ compute the value of $\mu$ required for +Barrett reduction. + +-- More later. + +\section{Quick Power of Two} +Calculating $b = 2^a$ can be performed much quicker than with any of the previous algorithms. Recall that a logical shift left $m << k$ is +equivalent to $m \cdot 2^k$. By this logic when $m = 1$ a quick power of two can be achieved. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_2expt}. \\ +\textbf{Input}. integer $b$ \\ +\textbf{Output}. $a \leftarrow 2^b$ \\ +\hline \\ +1. $a \leftarrow 0$ \\ +2. If $a.alloc < \lfloor b / lg(\beta) \rfloor + 1$ then grow $a$ appropriately. \\ +3. $a.used \leftarrow \lfloor b / lg(\beta) \rfloor + 1$ \\ +4. $a_{\lfloor b / lg(\beta) \rfloor} \leftarrow 1 << (b \mbox{ mod } lg(\beta))$ \\ +5. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_2expt} +\end{figure} + +\textbf{Algorithm mp\_2expt.} + +EXAM,bn_mp_2expt.c + +\chapter{Higher Level Algorithms} + +This chapter discusses the various higher level algorithms that are required to complete a well rounded multiple precision integer package. These +routines are less performance oriented than the algorithms of chapters five, six and seven but are no less important. + +The first section describes a method of integer division with remainder that is universally well known. It provides the signed division logic +for the package. The subsequent section discusses a set of algorithms which allow a single digit to be the 2nd operand for a variety of operations. +These algorithms serve mostly to simplify other algorithms where small constants are required. The last two sections discuss how to manipulate +various representations of integers. For example, converting from an mp\_int to a string of character. + +\section{Integer Division with Remainder} +\label{sec:division} + +Integer division aside from modular exponentiation is the most intensive algorithm to compute. Like addition, subtraction and multiplication +the basis of this algorithm is the long-hand division algorithm taught to school children. Throughout this discussion several common variables +will be used. Let $x$ represent the divisor and $y$ represent the dividend. Let $q$ represent the integer quotient $\lfloor y / x \rfloor$ and +let $r$ represent the remainder $r = y - x \lfloor y / x \rfloor$. The following simple algorithm will be used to start the discussion. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{Radix-$\beta$ Integer Division}. \\ +\textbf{Input}. integer $x$ and $y$ \\ +\textbf{Output}. $q = \lfloor y/x\rfloor, r = y - xq$ \\ +\hline \\ +1. $q \leftarrow 0$ \\ +2. $n \leftarrow \vert \vert y \vert \vert - \vert \vert x \vert \vert$ \\ +3. for $t$ from $n$ down to $0$ do \\ +\hspace{3mm}3.1 Maximize $k$ such that $kx\beta^t$ is less than or equal to $y$ and $(k + 1)x\beta^t$ is greater. \\ +\hspace{3mm}3.2 $q \leftarrow q + k\beta^t$ \\ +\hspace{3mm}3.3 $y \leftarrow y - kx\beta^t$ \\ +4. $r \leftarrow y$ \\ +5. Return($q, r$) \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm Radix-$\beta$ Integer Division} +\label{fig:raddiv} +\end{figure} + +As children we are taught this very simple algorithm for the case of $\beta = 10$. Almost instinctively several optimizations are taught for which +their reason of existing are never explained. For this example let $y = 5471$ represent the dividend and $x = 23$ represent the divisor. + +To find the first digit of the quotient the value of $k$ must be maximized such that $kx\beta^t$ is less than or equal to $y$ and +simultaneously $(k + 1)x\beta^t$ is greater than $y$. Implicitly $k$ is the maximum value the $t$'th digit of the quotient may have. The habitual method +used to find the maximum is to ``eyeball'' the two numbers, typically only the leading digits and quickly estimate a quotient. By only using leading +digits a much simpler division may be used to form an educated guess at what the value must be. In this case $k = \lfloor 54/23\rfloor = 2$ quickly +arises as a possible solution. Indeed $2x\beta^2 = 4600$ is less than $y = 5471$ and simultaneously $(k + 1)x\beta^2 = 6900$ is larger than $y$. +As a result $k\beta^2$ is added to the quotient which now equals $q = 200$ and $4600$ is subtracted from $y$ to give a remainder of $y = 841$. + +Again this process is repeated to produce the quotient digit $k = 3$ which makes the quotient $q = 200 + 3\beta = 230$ and the remainder +$y = 841 - 3x\beta = 181$. Finally the last iteration of the loop produces $k = 7$ which leads to the quotient $q = 230 + 7 = 237$ and the +remainder $y = 181 - 7x = 20$. The final quotient and remainder found are $q = 237$ and $r = y = 20$ which are indeed correct since +$237 \cdot 23 + 20 = 5471$ is true. + +\subsection{Quotient Estimation} +\label{sec:divest} +As alluded to earlier the quotient digit $k$ can be estimated from only the leading digits of both the divisor and dividend. When $p$ leading +digits are used from both the divisor and dividend to form an estimation the accuracy of the estimation rises as $p$ grows. Technically +speaking the estimation is based on assuming the lower $\vert \vert y \vert \vert - p$ and $\vert \vert x \vert \vert - p$ lower digits of the +dividend and divisor are zero. + +The value of the estimation may off by a few values in either direction and in general is fairly correct. A simplification \cite[pp. 271]{TAOCPV2} +of the estimation technique is to use $t + 1$ digits of the dividend and $t$ digits of the divisor, in particularly when $t = 1$. The estimate +using this technique is never too small. For the following proof let $t = \vert \vert y \vert \vert - 1$ and $s = \vert \vert x \vert \vert - 1$ +represent the most significant digits of the dividend and divisor respectively. + +\textbf{Proof.}\textit{ The quotient $\hat k = \lfloor (y_t\beta + y_{t-1}) / x_s \rfloor$ is greater than or equal to +$k = \lfloor y / (x \cdot \beta^{\vert \vert y \vert \vert - \vert \vert x \vert \vert - 1}) \rfloor$. } +The first obvious case is when $\hat k = \beta - 1$ in which case the proof is concluded since the real quotient cannot be larger. For all other +cases $\hat k = \lfloor (y_t\beta + y_{t-1}) / x_s \rfloor$ and $\hat k x_s \ge y_t\beta + y_{t-1} - x_s + 1$. The latter portion of the inequalility +$-x_s + 1$ arises from the fact that a truncated integer division will give the same quotient for at most $x_s - 1$ values. Next a series of +inequalities will prove the hypothesis. + +\begin{equation} +y - \hat k x \le y - \hat k x_s\beta^s +\end{equation} + +This is trivially true since $x \ge x_s\beta^s$. Next we replace $\hat kx_s\beta^s$ by the previous inequality for $\hat kx_s$. + +\begin{equation} +y - \hat k x \le y_t\beta^t + \ldots + y_0 - (y_t\beta^t + y_{t-1}\beta^{t-1} - x_s\beta^t + \beta^s) +\end{equation} + +By simplifying the previous inequality the following inequality is formed. + +\begin{equation} +y - \hat k x \le y_{t-2}\beta^{t-2} + \ldots + y_0 + x_s\beta^s - \beta^s +\end{equation} + +Subsequently, + +\begin{equation} +y_{t-2}\beta^{t-2} + \ldots + y_0 + x_s\beta^s - \beta^s < x_s\beta^s \le x +\end{equation} + +Which proves that $y - \hat kx \le x$ and by consequence $\hat k \ge k$ which concludes the proof. \textbf{QED} + + +\subsection{Normalized Integers} +For the purposes of division a normalized input is when the divisors leading digit $x_n$ is greater than or equal to $\beta / 2$. By multiplying both +$x$ and $y$ by $j = \lfloor (\beta / 2) / x_n \rfloor$ the quotient remains unchanged and the remainder is simply $j$ times the original +remainder. The purpose of normalization is to ensure the leading digit of the divisor is sufficiently large such that the estimated quotient will +lie in the domain of a single digit. Consider the maximum dividend $(\beta - 1) \cdot \beta + (\beta - 1)$ and the minimum divisor $\beta / 2$. + +\begin{equation} +{{\beta^2 - 1} \over { \beta / 2}} \le 2\beta - {2 \over \beta} +\end{equation} + +At most the quotient approaches $2\beta$, however, in practice this will not occur since that would imply the previous quotient digit was too small. + +\subsection{Radix-$\beta$ Division with Remainder} +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_div}. \\ +\textbf{Input}. mp\_int $a, b$ \\ +\textbf{Output}. $c = \lfloor a/b \rfloor$, $d = a - bc$ \\ +\hline \\ +1. If $b = 0$ return(\textit{MP\_VAL}). \\ +2. If $\vert a \vert < \vert b \vert$ then do \\ +\hspace{3mm}2.1 $d \leftarrow a$ \\ +\hspace{3mm}2.2 $c \leftarrow 0$ \\ +\hspace{3mm}2.3 Return(\textit{MP\_OKAY}). \\ +\\ +Setup the quotient to receive the digits. \\ +3. Grow $q$ to $a.used + 2$ digits. \\ +4. $q \leftarrow 0$ \\ +5. $x \leftarrow \vert a \vert , y \leftarrow \vert b \vert$ \\ +6. $sign \leftarrow \left \lbrace \begin{array}{ll} + MP\_ZPOS & \mbox{if }a.sign = b.sign \\ + MP\_NEG & \mbox{otherwise} \\ + \end{array} \right .$ \\ +\\ +Normalize the inputs such that the leading digit of $y$ is greater than or equal to $\beta / 2$. \\ +7. $norm \leftarrow (lg(\beta) - 1) - (\lceil lg(y) \rceil \mbox{ (mod }lg(\beta)\mbox{)})$ \\ +8. $x \leftarrow x \cdot 2^{norm}, y \leftarrow y \cdot 2^{norm}$ \\ +\\ +Find the leading digit of the quotient. \\ +9. $n \leftarrow x.used - 1, t \leftarrow y.used - 1$ \\ +10. $y \leftarrow y \cdot \beta^{n - t}$ \\ +11. While ($x \ge y$) do \\ +\hspace{3mm}11.1 $q_{n - t} \leftarrow q_{n - t} + 1$ \\ +\hspace{3mm}11.2 $x \leftarrow x - y$ \\ +12. $y \leftarrow \lfloor y / \beta^{n-t} \rfloor$ \\ +\\ +Continued on the next page. \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_div} +\end{figure} + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_div} (continued). \\ +\textbf{Input}. mp\_int $a, b$ \\ +\textbf{Output}. $c = \lfloor a/b \rfloor$, $d = a - bc$ \\ +\hline \\ +Now find the remainder fo the digits. \\ +13. for $i$ from $n$ down to $(t + 1)$ do \\ +\hspace{3mm}13.1 If $i > x.used$ then jump to the next iteration of this loop. \\ +\hspace{3mm}13.2 If $x_{i} = y_{t}$ then \\ +\hspace{6mm}13.2.1 $q_{i - t - 1} \leftarrow \beta - 1$ \\ +\hspace{3mm}13.3 else \\ +\hspace{6mm}13.3.1 $\hat r \leftarrow x_{i} \cdot \beta + x_{i - 1}$ \\ +\hspace{6mm}13.3.2 $\hat r \leftarrow \lfloor \hat r / y_{t} \rfloor$ \\ +\hspace{6mm}13.3.3 $q_{i - t - 1} \leftarrow \hat r$ \\ +\hspace{3mm}13.4 $q_{i - t - 1} \leftarrow q_{i - t - 1} + 1$ \\ +\\ +Fixup quotient estimation. \\ +\hspace{3mm}13.5 Loop \\ +\hspace{6mm}13.5.1 $q_{i - t - 1} \leftarrow q_{i - t - 1} - 1$ \\ +\hspace{6mm}13.5.2 t$1 \leftarrow 0$ \\ +\hspace{6mm}13.5.3 t$1_0 \leftarrow y_{t - 1}, $ t$1_1 \leftarrow y_t,$ t$1.used \leftarrow 2$ \\ +\hspace{6mm}13.5.4 $t1 \leftarrow t1 \cdot q_{i - t - 1}$ \\ +\hspace{6mm}13.5.5 t$2_0 \leftarrow x_{i - 2}, $ t$2_1 \leftarrow x_{i - 1}, $ t$2_2 \leftarrow x_i, $ t$2.used \leftarrow 3$ \\ +\hspace{6mm}13.5.6 If $\vert t1 \vert > \vert t2 \vert$ then goto step 13.5. \\ +\hspace{3mm}13.6 t$1 \leftarrow y \cdot q_{i - t - 1}$ \\ +\hspace{3mm}13.7 t$1 \leftarrow $ t$1 \cdot \beta^{i - t - 1}$ \\ +\hspace{3mm}13.8 $x \leftarrow x - $ t$1$ \\ +\hspace{3mm}13.9 If $x.sign = MP\_NEG$ then \\ +\hspace{6mm}13.10 t$1 \leftarrow y$ \\ +\hspace{6mm}13.11 t$1 \leftarrow $ t$1 \cdot \beta^{i - t - 1}$ \\ +\hspace{6mm}13.12 $x \leftarrow x + $ t$1$ \\ +\hspace{6mm}13.13 $q_{i - t - 1} \leftarrow q_{i - t - 1} - 1$ \\ +\\ +Finalize the result. \\ +14. Clamp excess digits of $q$ \\ +15. $c \leftarrow q, c.sign \leftarrow sign$ \\ +16. $x.sign \leftarrow a.sign$ \\ +17. $d \leftarrow \lfloor x / 2^{norm} \rfloor$ \\ +18. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_div (continued)} +\end{figure} +\textbf{Algorithm mp\_div.} +This algorithm will calculate quotient and remainder from an integer division given a dividend and divisor. The algorithm is a signed +division and will produce a fully qualified quotient and remainder. + +First the divisor $b$ must be non-zero which is enforced in step one. If the divisor is larger than the dividend than the quotient is implicitly +zero and the remainder is the dividend. + +After the first two trivial cases of inputs are handled the variable $q$ is setup to receive the digits of the quotient. Two unsigned copies of the +divisor $y$ and dividend $x$ are made as well. The core of the division algorithm is an unsigned division and will only work if the values are +positive. Now the two values $x$ and $y$ must be normalized such that the leading digit of $y$ is greater than or equal to $\beta / 2$. +This is performed by shifting both to the left by enough bits to get the desired normalization. + +At this point the division algorithm can begin producing digits of the quotient. Recall that maximum value of the estimation used is +$2\beta - {2 \over \beta}$ which means that a digit of the quotient must be first produced by another means. In this case $y$ is shifted +to the left (\textit{step ten}) so that it has the same number of digits as $x$. The loop on step eleven will subtract multiples of the +shifted copy of $y$ until $x$ is smaller. Since the leading digit of $y$ is greater than or equal to $\beta/2$ this loop will iterate at most two +times to produce the desired leading digit of the quotient. + +Now the remainder of the digits can be produced. The equation $\hat q = \lfloor {{x_i \beta + x_{i-1}}\over y_t} \rfloor$ is used to fairly +accurately approximate the true quotient digit. The estimation can in theory produce an estimation as high as $2\beta - {2 \over \beta}$ but by +induction the upper quotient digit is correct (\textit{as established on step eleven}) and the estimate must be less than $\beta$. + +Recall from section~\ref{sec:divest} that the estimation is never too low but may be too high. The next step of the estimation process is +to refine the estimation. The loop on step 13.5 uses $x_i\beta^2 + x_{i-1}\beta + x_{i-2}$ and $q_{i - t - 1}(y_t\beta + y_{t-1})$ as a higher +order approximation to adjust the quotient digit. + +After both phases of estimation the quotient digit may still be off by a value of one\footnote{This is similar to the error introduced +by optimizing Barrett reduction.}. Steps 13.6 and 13.7 subtract the multiple of the divisor from the dividend (\textit{Similar to step 3.3 of +algorithm~\ref{fig:raddiv}} and then subsequently add a multiple of the divisor if the quotient was too large. + +Now that the quotient has been determine finializing the result is a matter of clamping the quotient, fixing the sizes and de-normalizing the +remainder. An important aspect of this algorithm seemingly overlooked in other descriptions such as that of Algorithm 14.20 HAC \cite[pp. 598]{HAC} +is that when the estimations are being made (\textit{inside the loop on step 13.5}) that the digits $y_{t-1}$, $x_{i-2}$ and $x_{i-1}$ may lie +outside their respective boundaries. For example, if $t = 0$ or $i \le 1$ then the digits would be undefined. In those cases the digits should +respectively be replaced with a zero. + +EXAM,bn_mp_div.c + +The implementation of this algorithm differs slightly from the pseudo code presented previously. In this algorithm either of the quotient $c$ or +remainder $d$ may be passed as a \textbf{NULL} pointer which indicates their value is not desired. For example, the C code to call the division +algorithm with only the quotient is + +\begin{verbatim} +mp_div(&a, &b, &c, NULL); /* c = [a/b] */ +\end{verbatim} + +Lines @37,if@ and @42,if@ handle the two trivial cases of inputs which are division by zero and dividend smaller than the divisor +respectively. After the two trivial cases all of the temporary variables are initialized. Line @76,neg@ determines the sign of +the quotient and line @77,sign@ ensures that both $x$ and $y$ are positive. + +The number of bits in the leading digit is calculated on line @80,norm@. Implictly an mp\_int with $r$ digits will require $lg(\beta)(r-1) + k$ bits +of precision which when reduced modulo $lg(\beta)$ produces the value of $k$. In this case $k$ is the number of bits in the leading digit which is +exactly what is required. For the algorithm to operate $k$ must equal $lg(\beta) - 1$ and when it does not the inputs must be normalized by shifting +them to the left by $lg(\beta) - 1 - k$ bits. + +Throughout the variables $n$ and $t$ will represent the highest digit of $x$ and $y$ respectively. These are first used to produce the +leading digit of the quotient. The loop beginning on line @113,for@ will produce the remainder of the quotient digits. + +The conditional ``continue'' on line @114,if@ is used to prevent the algorithm from reading past the leading edge of $x$ which can occur when the +algorithm eliminates multiple non-zero digits in a single iteration. This ensures that $x_i$ is always non-zero since by definition the digits +above the $i$'th position $x$ must be zero in order for the quotient to be precise\footnote{Precise as far as integer division is concerned.}. + +Lines @142,t1@, @143,t1@ and @150,t2@ through @152,t2@ manually construct the high accuracy estimations by setting the digits of the two mp\_int +variables directly. + +\section{Single Digit Helpers} + +This section briefly describes a series of single digit helper algorithms which come in handy when working with small constants. All of +the helper functions assume the single digit input is positive and will treat them as such. + +\subsection{Single Digit Addition and Subtraction} + +Both addition and subtraction are performed by ``cheating'' and using mp\_set followed by the higher level addition or subtraction +algorithms. As a result these algorithms are subtantially simpler with a slight cost in performance. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_add\_d}. \\ +\textbf{Input}. mp\_int $a$ and a mp\_digit $b$ \\ +\textbf{Output}. $c = a + b$ \\ +\hline \\ +1. $t \leftarrow b$ (\textit{mp\_set}) \\ +2. $c \leftarrow a + t$ \\ +3. Return(\textit{MP\_OKAY}) \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_add\_d} +\end{figure} + +\textbf{Algorithm mp\_add\_d.} +This algorithm initiates a temporary mp\_int with the value of the single digit and uses algorithm mp\_add to add the two values together. + +EXAM,bn_mp_add_d.c + +Clever use of the letter 't'. + +\subsubsection{Subtraction} +The single digit subtraction algorithm mp\_sub\_d is essentially the same except it uses mp\_sub to subtract the digit from the mp\_int. + +\subsection{Single Digit Multiplication} +Single digit multiplication arises enough in division and radix conversion that it ought to be implement as a special case of the baseline +multiplication algorithm. Essentially this algorithm is a modified version of algorithm s\_mp\_mul\_digs where one of the multiplicands +only has one digit. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_mul\_d}. \\ +\textbf{Input}. mp\_int $a$ and a mp\_digit $b$ \\ +\textbf{Output}. $c = ab$ \\ +\hline \\ +1. $pa \leftarrow a.used$ \\ +2. Grow $c$ to at least $pa + 1$ digits. \\ +3. $oldused \leftarrow c.used$ \\ +4. $c.used \leftarrow pa + 1$ \\ +5. $c.sign \leftarrow a.sign$ \\ +6. $\mu \leftarrow 0$ \\ +7. for $ix$ from $0$ to $pa - 1$ do \\ +\hspace{3mm}7.1 $\hat r \leftarrow \mu + a_{ix}b$ \\ +\hspace{3mm}7.2 $c_{ix} \leftarrow \hat r \mbox{ (mod }\beta\mbox{)}$ \\ +\hspace{3mm}7.3 $\mu \leftarrow \lfloor \hat r / \beta \rfloor$ \\ +8. $c_{pa} \leftarrow \mu$ \\ +9. for $ix$ from $pa + 1$ to $oldused$ do \\ +\hspace{3mm}9.1 $c_{ix} \leftarrow 0$ \\ +10. Clamp excess digits of $c$. \\ +11. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_mul\_d} +\end{figure} +\textbf{Algorithm mp\_mul\_d.} +This algorithm quickly multiplies an mp\_int by a small single digit value. It is specially tailored to the job and has a minimal of overhead. +Unlike the full multiplication algorithms this algorithm does not require any significnat temporary storage or memory allocations. + +EXAM,bn_mp_mul_d.c + +In this implementation the destination $c$ may point to the same mp\_int as the source $a$ since the result is written after the digit is +read from the source. This function uses pointer aliases $tmpa$ and $tmpc$ for the digits of $a$ and $c$ respectively. + +\subsection{Single Digit Division} +Like the single digit multiplication algorithm, single digit division is also a fairly common algorithm used in radix conversion. Since the +divisor is only a single digit a specialized variant of the division algorithm can be used to compute the quotient. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_div\_d}. \\ +\textbf{Input}. mp\_int $a$ and a mp\_digit $b$ \\ +\textbf{Output}. $c = \lfloor a / b \rfloor, d = a - cb$ \\ +\hline \\ +1. If $b = 0$ then return(\textit{MP\_VAL}).\\ +2. If $b = 3$ then use algorithm mp\_div\_3 instead. \\ +3. Init $q$ to $a.used$ digits. \\ +4. $q.used \leftarrow a.used$ \\ +5. $q.sign \leftarrow a.sign$ \\ +6. $\hat w \leftarrow 0$ \\ +7. for $ix$ from $a.used - 1$ down to $0$ do \\ +\hspace{3mm}7.1 $\hat w \leftarrow \hat w \beta + a_{ix}$ \\ +\hspace{3mm}7.2 If $\hat w \ge b$ then \\ +\hspace{6mm}7.2.1 $t \leftarrow \lfloor \hat w / b \rfloor$ \\ +\hspace{6mm}7.2.2 $\hat w \leftarrow \hat w \mbox{ (mod }b\mbox{)}$ \\ +\hspace{3mm}7.3 else\\ +\hspace{6mm}7.3.1 $t \leftarrow 0$ \\ +\hspace{3mm}7.4 $q_{ix} \leftarrow t$ \\ +8. $d \leftarrow \hat w$ \\ +9. Clamp excess digits of $q$. \\ +10. $c \leftarrow q$ \\ +11. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_div\_d} +\end{figure} +\textbf{Algorithm mp\_div\_d.} +This algorithm divides the mp\_int $a$ by the single mp\_digit $b$ using an optimized approach. Essentially in every iteration of the +algorithm another digit of the dividend is reduced and another digit of quotient produced. Provided $b < \beta$ the value of $\hat w$ +after step 7.1 will be limited such that $0 \le \lfloor \hat w / b \rfloor < \beta$. + +If the divisor $b$ is equal to three a variant of this algorithm is used which is called mp\_div\_3. It replaces the division by three with +a multiplication by $\lfloor \beta / 3 \rfloor$ and the appropriate shift and residual fixup. In essence it is much like the Barrett reduction +from chapter seven. + +EXAM,bn_mp_div_d.c + +Like the implementation of algorithm mp\_div this algorithm allows either of the quotient or remainder to be passed as a \textbf{NULL} pointer to +indicate the respective value is not required. This allows a trivial single digit modular reduction algorithm, mp\_mod\_d to be created. + +The division and remainder on lines @44,/@ and @45,%@ can be replaced often by a single division on most processors. For example, the 32-bit x86 based +processors can divide a 64-bit quantity by a 32-bit quantity and produce the quotient and remainder simultaneously. Unfortunately the GCC +compiler does not recognize that optimization and will actually produce two function calls to find the quotient and remainder respectively. + +\subsection{Single Digit Root Extraction} + +Finding the $n$'th root of an integer is fairly easy as far as numerical analysis is concerned. Algorithms such as the Newton-Raphson approximation +(\ref{eqn:newton}) series will converge very quickly to a root for any continuous function $f(x)$. + +\begin{equation} +x_{i+1} = x_i - {f(x_i) \over f'(x_i)} +\label{eqn:newton} +\end{equation} + +In this case the $n$'th root is desired and $f(x) = x^n - a$ where $a$ is the integer of which the root is desired. The derivative of $f(x)$ is +simply $f'(x) = nx^{n - 1}$. Of particular importance is that this algorithm will be used over the integers not over the a more continuous domain +such as the real numbers. As a result the root found can be above the true root by few and must be manually adjusted. Ideally at the end of the +algorithm the $n$'th root $b$ of an integer $a$ is desired such that $b^n \le a$. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_n\_root}. \\ +\textbf{Input}. mp\_int $a$ and a mp\_digit $b$ \\ +\textbf{Output}. $c^b \le a$ \\ +\hline \\ +1. If $b$ is even and $a.sign = MP\_NEG$ return(\textit{MP\_VAL}). \\ +2. $sign \leftarrow a.sign$ \\ +3. $a.sign \leftarrow MP\_ZPOS$ \\ +4. t$2 \leftarrow 2$ \\ +5. Loop \\ +\hspace{3mm}5.1 t$1 \leftarrow $ t$2$ \\ +\hspace{3mm}5.2 t$3 \leftarrow $ t$1^{b - 1}$ \\ +\hspace{3mm}5.3 t$2 \leftarrow $ t$3 $ $\cdot$ t$1$ \\ +\hspace{3mm}5.4 t$2 \leftarrow $ t$2 - a$ \\ +\hspace{3mm}5.5 t$3 \leftarrow $ t$3 \cdot b$ \\ +\hspace{3mm}5.6 t$3 \leftarrow \lfloor $t$2 / $t$3 \rfloor$ \\ +\hspace{3mm}5.7 t$2 \leftarrow $ t$1 - $ t$3$ \\ +\hspace{3mm}5.8 If t$1 \ne $ t$2$ then goto step 5. \\ +6. Loop \\ +\hspace{3mm}6.1 t$2 \leftarrow $ t$1^b$ \\ +\hspace{3mm}6.2 If t$2 > a$ then \\ +\hspace{6mm}6.2.1 t$1 \leftarrow $ t$1 - 1$ \\ +\hspace{6mm}6.2.2 Goto step 6. \\ +7. $a.sign \leftarrow sign$ \\ +8. $c \leftarrow $ t$1$ \\ +9. $c.sign \leftarrow sign$ \\ +10. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_n\_root} +\end{figure} +\textbf{Algorithm mp\_n\_root.} +This algorithm finds the integer $n$'th root of an input using the Newton-Raphson approach. It is partially optimized based on the observation +that the numerator of ${f(x) \over f'(x)}$ can be derived from a partial denominator. That is at first the denominator is calculated by finding +$x^{b - 1}$. This value can then be multiplied by $x$ and have $a$ subtracted from it to find the numerator. This saves a total of $b - 1$ +multiplications by t$1$ inside the loop. + +The initial value of the approximation is t$2 = 2$ which allows the algorithm to start with very small values and quickly converge on the +root. Ideally this algorithm is meant to find the $n$'th root of an input where $n$ is bounded by $2 \le n \le 5$. + +EXAM,bn_mp_n_root.c + +\section{Random Number Generation} + +Random numbers come up in a variety of activities from public key cryptography to simple simulations and various randomized algorithms. Pollard-Rho +factoring for example, can make use of random values as starting points to find factors of a composite integer. In this case the algorithm presented +is solely for simulations and not intended for cryptographic use. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_rand}. \\ +\textbf{Input}. An integer $b$ \\ +\textbf{Output}. A pseudo-random number of $b$ digits \\ +\hline \\ +1. $a \leftarrow 0$ \\ +2. If $b \le 0$ return(\textit{MP\_OKAY}) \\ +3. Pick a non-zero random digit $d$. \\ +4. $a \leftarrow a + d$ \\ +5. for $ix$ from 1 to $d - 1$ do \\ +\hspace{3mm}5.1 $a \leftarrow a \cdot \beta$ \\ +\hspace{3mm}5.2 Pick a random digit $d$. \\ +\hspace{3mm}5.3 $a \leftarrow a + d$ \\ +6. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_rand} +\end{figure} +\textbf{Algorithm mp\_rand.} +This algorithm produces a pseudo-random integer of $b$ digits. By ensuring that the first digit is non-zero the algorithm also guarantees that the +final result has at least $b$ digits. It relies heavily on a third-part random number generator which should ideally generate uniformly all of +the integers from $0$ to $\beta - 1$. + +EXAM,bn_mp_rand.c + +\section{Formatted Representations} +The ability to emit a radix-$n$ textual representation of an integer is useful for interacting with human parties. For example, the ability to +be given a string of characters such as ``114585'' and turn it into the radix-$\beta$ equivalent would make it easier to enter numbers +into a program. + +\subsection{Reading Radix-n Input} +For the purposes of this text we will assume that a simple lower ASCII map (\ref{fig:ASC}) is used for the values of from $0$ to $63$ to +printable characters. For example, when the character ``N'' is read it represents the integer $23$. The first $16$ characters of the +map are for the common representations up to hexadecimal. After that they match the ``base64'' encoding scheme which are suitable chosen +such that they are printable. While outputting as base64 may not be too helpful for human operators it does allow communication via non binary +mediums. + +\newpage\begin{figure}[here] +\begin{center} +\begin{tabular}{cc|cc|cc|cc} +\hline \textbf{Value} & \textbf{Char} & \textbf{Value} & \textbf{Char} & \textbf{Value} & \textbf{Char} & \textbf{Value} & \textbf{Char} \\ +\hline +0 & 0 & 1 & 1 & 2 & 2 & 3 & 3 \\ +4 & 4 & 5 & 5 & 6 & 6 & 7 & 7 \\ +8 & 8 & 9 & 9 & 10 & A & 11 & B \\ +12 & C & 13 & D & 14 & E & 15 & F \\ +16 & G & 17 & H & 18 & I & 19 & J \\ +20 & K & 21 & L & 22 & M & 23 & N \\ +24 & O & 25 & P & 26 & Q & 27 & R \\ +28 & S & 29 & T & 30 & U & 31 & V \\ +32 & W & 33 & X & 34 & Y & 35 & Z \\ +36 & a & 37 & b & 38 & c & 39 & d \\ +40 & e & 41 & f & 42 & g & 43 & h \\ +44 & i & 45 & j & 46 & k & 47 & l \\ +48 & m & 49 & n & 50 & o & 51 & p \\ +52 & q & 53 & r & 54 & s & 55 & t \\ +56 & u & 57 & v & 58 & w & 59 & x \\ +60 & y & 61 & z & 62 & $+$ & 63 & $/$ \\ +\hline +\end{tabular} +\end{center} +\caption{Lower ASCII Map} +\label{fig:ASC} +\end{figure} + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_read\_radix}. \\ +\textbf{Input}. A string $str$ of length $sn$ and radix $r$. \\ +\textbf{Output}. The radix-$\beta$ equivalent mp\_int. \\ +\hline \\ +1. If $r < 2$ or $r > 64$ return(\textit{MP\_VAL}). \\ +2. $ix \leftarrow 0$ \\ +3. If $str_0 =$ ``-'' then do \\ +\hspace{3mm}3.1 $ix \leftarrow ix + 1$ \\ +\hspace{3mm}3.2 $sign \leftarrow MP\_NEG$ \\ +4. else \\ +\hspace{3mm}4.1 $sign \leftarrow MP\_ZPOS$ \\ +5. $a \leftarrow 0$ \\ +6. for $iy$ from $ix$ to $sn - 1$ do \\ +\hspace{3mm}6.1 Let $y$ denote the position in the map of $str_{iy}$. \\ +\hspace{3mm}6.2 If $str_{iy}$ is not in the map or $y \ge r$ then goto step 7. \\ +\hspace{3mm}6.3 $a \leftarrow a \cdot r$ \\ +\hspace{3mm}6.4 $a \leftarrow a + y$ \\ +7. If $a \ne 0$ then $a.sign \leftarrow sign$ \\ +8. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_read\_radix} +\end{figure} +\textbf{Algorithm mp\_read\_radix.} +This algorithm will read an ASCII string and produce the radix-$\beta$ mp\_int representation of the same integer. A minus symbol ``-'' may precede the +string to indicate the value is negative, otherwise it is assumed to be positive. The algorithm will read up to $sn$ characters from the input +and will stop when it reads a character it cannot map the algorithm stops reading characters from the string. This allows numbers to be embedded +as part of larger input without any significant problem. + +EXAM,bn_mp_read_radix.c + +\subsection{Generating Radix-$n$ Output} +Generating radix-$n$ output is fairly trivial with a division and remainder algorithm. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_toradix}. \\ +\textbf{Input}. A mp\_int $a$ and an integer $r$\\ +\textbf{Output}. The radix-$r$ representation of $a$ \\ +\hline \\ +1. If $r < 2$ or $r > 64$ return(\textit{MP\_VAL}). \\ +2. If $a = 0$ then $str = $ ``$0$'' and return(\textit{MP\_OKAY}). \\ +3. $t \leftarrow a$ \\ +4. $str \leftarrow$ ``'' \\ +5. if $t.sign = MP\_NEG$ then \\ +\hspace{3mm}5.1 $str \leftarrow str + $ ``-'' \\ +\hspace{3mm}5.2 $t.sign = MP\_ZPOS$ \\ +6. While ($t \ne 0$) do \\ +\hspace{3mm}6.1 $d \leftarrow t \mbox{ (mod }r\mbox{)}$ \\ +\hspace{3mm}6.2 $t \leftarrow \lfloor t / r \rfloor$ \\ +\hspace{3mm}6.3 Look up $d$ in the map and store the equivalent character in $y$. \\ +\hspace{3mm}6.4 $str \leftarrow str + y$ \\ +7. If $str_0 = $``$-$'' then \\ +\hspace{3mm}7.1 Reverse the digits $str_1, str_2, \ldots str_n$. \\ +8. Otherwise \\ +\hspace{3mm}8.1 Reverse the digits $str_0, str_1, \ldots str_n$. \\ +9. Return(\textit{MP\_OKAY}).\\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_toradix} +\end{figure} +\textbf{Algorithm mp\_toradix.} +This algorithm computes the radix-$r$ representation of an mp\_int $a$. The ``digits'' of the representation are extracted by reducing +successive powers of $\lfloor a / r^k \rfloor$ the input modulo $r$ until $r^k > a$. Note that instead of actually dividing by $r^k$ in +each iteration the quotient $\lfloor a / r \rfloor$ is saved for the next iteration. As a result a series of trivial $n \times 1$ divisions +are required instead of a series of $n \times k$ divisions. One design flaw of this approach is that the digits are produced in the reverse order +(see~\ref{fig:mpradix}). To remedy this flaw the digits must be swapped or simply ``reversed''. + +\begin{figure} +\begin{center} +\begin{tabular}{|c|c|c|} +\hline \textbf{Value of $a$} & \textbf{Value of $d$} & \textbf{Value of $str$} \\ +\hline $1234$ & -- & -- \\ +\hline $123$ & $4$ & ``4'' \\ +\hline $12$ & $3$ & ``43'' \\ +\hline $1$ & $2$ & ``432'' \\ +\hline $0$ & $1$ & ``4321'' \\ +\hline +\end{tabular} +\end{center} +\caption{Example of Algorithm mp\_toradix.} +\label{fig:mpradix} +\end{figure} + +EXAM,bn_mp_toradix.c + +\chapter{Number Theoretic Algorithms} +This chapter discusses several fundamental number theoretic algorithms such as the greatest common divisor, least common multiple and Jacobi +symbol computation. These algorithms arise as essential components in several key cryptographic algorithms such as the RSA public key algorithm and +various Sieve based factoring algorithms. + +\section{Greatest Common Divisor} +The greatest common divisor of two integers $a$ and $b$, often denoted as $(a, b)$ is the largest integer $k$ that is a proper divisor of +both $a$ and $b$. That is, $k$ is the largest integer such that $0 \equiv a \mbox{ (mod }k\mbox{)}$ and $0 \equiv b \mbox{ (mod }k\mbox{)}$ occur +simultaneously. + +The most common approach (cite) is to reduce one input modulo another. That is if $a$ and $b$ are divisible by some integer $k$ and if $qa + r = b$ then +$r$ is also divisible by $k$. The reduction pattern follows $\left < a , b \right > \rightarrow \left < b, a \mbox{ mod } b \right >$. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{Greatest Common Divisor (I)}. \\ +\textbf{Input}. Two positive integers $a$ and $b$ greater than zero. \\ +\textbf{Output}. The greatest common divisor $(a, b)$. \\ +\hline \\ +1. While ($b > 0$) do \\ +\hspace{3mm}1.1 $r \leftarrow a \mbox{ (mod }b\mbox{)}$ \\ +\hspace{3mm}1.2 $a \leftarrow b$ \\ +\hspace{3mm}1.3 $b \leftarrow r$ \\ +2. Return($a$). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm Greatest Common Divisor (I)} +\label{fig:gcd1} +\end{figure} + +This algorithm will quickly converge on the greatest common divisor since the residue $r$ tends diminish rapidly. However, divisions are +relatively expensive operations to perform and should ideally be avoided. There is another approach based on a similar relationship of +greatest common divisors. The faster approach is based on the observation that if $k$ divides both $a$ and $b$ it will also divide $a - b$. +In particular, we would like $a - b$ to decrease in magnitude which implies that $b \ge a$. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{Greatest Common Divisor (II)}. \\ +\textbf{Input}. Two positive integers $a$ and $b$ greater than zero. \\ +\textbf{Output}. The greatest common divisor $(a, b)$. \\ +\hline \\ +1. While ($b > 0$) do \\ +\hspace{3mm}1.1 Swap $a$ and $b$ such that $a$ is the smallest of the two. \\ +\hspace{3mm}1.2 $b \leftarrow b - a$ \\ +2. Return($a$). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm Greatest Common Divisor (II)} +\label{fig:gcd2} +\end{figure} + +\textbf{Proof} \textit{Algorithm~\ref{fig:gcd2} will return the greatest common divisor of $a$ and $b$.} +The algorithm in figure~\ref{fig:gcd2} will eventually terminate since $b \ge a$ the subtraction in step 1.2 will be a value less than $b$. In other +words in every iteration that tuple $\left < a, b \right >$ decrease in magnitude until eventually $a = b$. Since both $a$ and $b$ are always +divisible by the greatest common divisor (\textit{until the last iteration}) and in the last iteration of the algorithm $b = 0$, therefore, in the +second to last iteration of the algorithm $b = a$ and clearly $(a, a) = a$ which concludes the proof. \textbf{QED}. + +As a matter of practicality algorithm \ref{fig:gcd1} decreases far too slowly to be useful. Specially if $b$ is much larger than $a$ such that +$b - a$ is still very much larger than $a$. A simple addition to the algorithm is to divide $b - a$ by a power of some integer $p$ which does +not divide the greatest common divisor but will divide $b - a$. In this case ${b - a} \over p$ is also an integer and still divisible by +the greatest common divisor. + +However, instead of factoring $b - a$ to find a suitable value of $p$ the powers of $p$ can be removed from $a$ and $b$ that are in common first. +Then inside the loop whenever $b - a$ is divisible by some power of $p$ it can be safely removed. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{Greatest Common Divisor (III)}. \\ +\textbf{Input}. Two positive integers $a$ and $b$ greater than zero. \\ +\textbf{Output}. The greatest common divisor $(a, b)$. \\ +\hline \\ +1. $k \leftarrow 0$ \\ +2. While $a$ and $b$ are both divisible by $p$ do \\ +\hspace{3mm}2.1 $a \leftarrow \lfloor a / p \rfloor$ \\ +\hspace{3mm}2.2 $b \leftarrow \lfloor b / p \rfloor$ \\ +\hspace{3mm}2.3 $k \leftarrow k + 1$ \\ +3. While $a$ is divisible by $p$ do \\ +\hspace{3mm}3.1 $a \leftarrow \lfloor a / p \rfloor$ \\ +4. While $b$ is divisible by $p$ do \\ +\hspace{3mm}4.1 $b \leftarrow \lfloor b / p \rfloor$ \\ +5. While ($b > 0$) do \\ +\hspace{3mm}5.1 Swap $a$ and $b$ such that $a$ is the smallest of the two. \\ +\hspace{3mm}5.2 $b \leftarrow b - a$ \\ +\hspace{3mm}5.3 While $b$ is divisible by $p$ do \\ +\hspace{6mm}5.3.1 $b \leftarrow \lfloor b / p \rfloor$ \\ +6. Return($a \cdot p^k$). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm Greatest Common Divisor (III)} +\label{fig:gcd3} +\end{figure} + +This algorithm is based on the first except it removes powers of $p$ first and inside the main loop to ensure the tuple $\left < a, b \right >$ +decreases more rapidly. The first loop on step two removes powers of $p$ that are in common. A count, $k$, is kept which will present a common +divisor of $p^k$. After step two the remaining common divisor of $a$ and $b$ cannot be divisible by $p$. This means that $p$ can be safely +divided out of the difference $b - a$ so long as the division leaves no remainder. + +In particular the value of $p$ should be chosen such that the division on step 5.3.1 occur often. It also helps that division by $p$ be easy +to compute. The ideal choice of $p$ is two since division by two amounts to a right logical shift. Another important observation is that by +step five both $a$ and $b$ are odd. Therefore, the diffrence $b - a$ must be even which means that each iteration removes one bit from the +largest of the pair. + +\subsection{Complete Greatest Common Divisor} +The algorithms presented so far cannot handle inputs which are zero or negative. The following algorithm can handle all input cases properly +and will produce the greatest common divisor. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_gcd}. \\ +\textbf{Input}. mp\_int $a$ and $b$ \\ +\textbf{Output}. The greatest common divisor $c = (a, b)$. \\ +\hline \\ +1. If $a = 0$ and $b \ne 0$ then \\ +\hspace{3mm}1.1 $c \leftarrow b$ \\ +\hspace{3mm}1.2 Return(\textit{MP\_OKAY}). \\ +2. If $a \ne 0$ and $b = 0$ then \\ +\hspace{3mm}2.1 $c \leftarrow a$ \\ +\hspace{3mm}2.2 Return(\textit{MP\_OKAY}). \\ +3. If $a = b = 0$ then \\ +\hspace{3mm}3.1 $c \leftarrow 1$ \\ +\hspace{3mm}3.2 Return(\textit{MP\_OKAY}). \\ +4. $u \leftarrow \vert a \vert, v \leftarrow \vert b \vert$ \\ +5. $k \leftarrow 0$ \\ +6. While $u.used > 0$ and $v.used > 0$ and $u_0 \equiv v_0 \equiv 0 \mbox{ (mod }2\mbox{)}$ \\ +\hspace{3mm}6.1 $k \leftarrow k + 1$ \\ +\hspace{3mm}6.2 $u \leftarrow \lfloor u / 2 \rfloor$ \\ +\hspace{3mm}6.3 $v \leftarrow \lfloor v / 2 \rfloor$ \\ +7. While $u.used > 0$ and $u_0 \equiv 0 \mbox{ (mod }2\mbox{)}$ \\ +\hspace{3mm}7.1 $u \leftarrow \lfloor u / 2 \rfloor$ \\ +8. While $v.used > 0$ and $v_0 \equiv 0 \mbox{ (mod }2\mbox{)}$ \\ +\hspace{3mm}8.1 $v \leftarrow \lfloor v / 2 \rfloor$ \\ +9. While $v.used > 0$ \\ +\hspace{3mm}9.1 If $\vert u \vert > \vert v \vert$ then \\ +\hspace{6mm}9.1.1 Swap $u$ and $v$. \\ +\hspace{3mm}9.2 $v \leftarrow \vert v \vert - \vert u \vert$ \\ +\hspace{3mm}9.3 While $v.used > 0$ and $v_0 \equiv 0 \mbox{ (mod }2\mbox{)}$ \\ +\hspace{6mm}9.3.1 $v \leftarrow \lfloor v / 2 \rfloor$ \\ +10. $c \leftarrow u \cdot 2^k$ \\ +11. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_gcd} +\end{figure} +\textbf{Algorithm mp\_gcd.} +This algorithm will produce the greatest common divisor of two mp\_ints $a$ and $b$. The algorithm was originally based on Algorithm B of +Knuth \cite[pp. 338]{TAOCPV2} but has been modified to be simpler to explain. In theory it achieves the same asymptotic working time as +Algorithm B and in practice this appears to be true. + +The first three steps handle the cases where either one of or both inputs are zero. If either input is zero the greatest common divisor is the +largest input or zero if they are both zero. If the inputs are not trivial than $u$ and $v$ are assigned the absolute values of +$a$ and $b$ respectively and the algorithm will proceed to reduce the pair. + +Step six will divide out any common factors of two and keep track of the count in the variable $k$. After this step two is no longer a +factor of the remaining greatest common divisor between $u$ and $v$ and can be safely evenly divided out of either whenever they are even. Step +seven and eight ensure that the $u$ and $v$ respectively have no more factors of two. At most only one of the while loops will iterate since +they cannot both be even. + +By step nine both of $u$ and $v$ are odd which is required for the inner logic. First the pair are swapped such that $v$ is equal to +or greater than $u$. This ensures that the subtraction on step 9.2 will always produce a positive and even result. Step 9.3 removes any +factors of two from the difference $u$ to ensure that in the next iteration of the loop both are once again odd. + +After $v = 0$ occurs the variable $u$ has the greatest common divisor of the pair $\left < u, v \right >$ just after step six. The result +must be adjusted by multiplying by the common factors of two ($2^k$) removed earlier. + +EXAM,bn_mp_gcd.c + +This function makes use of the macros mp\_iszero and mp\_iseven. The former evaluates to $1$ if the input mp\_int is equivalent to the +integer zero otherwise it evaluates to $0$. The latter evaluates to $1$ if the input mp\_int represents a non-zero even integer otherwise +it evaluates to $0$. Note that just because mp\_iseven may evaluate to $0$ does not mean the input is odd, it could also be zero. The three +trivial cases of inputs are handled on lines @25,zero@ through @34,}@. After those lines the inputs are assumed to be non-zero. + +Lines @36,if@ and @40,if@ make local copies $u$ and $v$ of the inputs $a$ and $b$ respectively. At this point the common factors of two +must be divided out of the two inputs. The while loop on line @49,while@ iterates so long as both are even. The local integer $k$ is used to +keep track of how many factors of $2$ are pulled out of both values. It is assumed that the number of factors will not exceed the maximum +value of a C ``int'' data type\footnote{Strictly speaking no array in C may have more than entries than are accessible by an ``int'' so this is not +a limitation.}. + +At this point there are no more common factors of two in the two values. The while loops on lines @60,while@ and @65,while@ remove any independent +factors of two such that both $u$ and $v$ are guaranteed to be an odd integer before hitting the main body of the algorithm. The while loop +on line @71, while@ performs the reduction of the pair until $v$ is equal to zero. The unsigned comparison and subtraction algorithms are used in +place of the full signed routines since both values are guaranteed to be positive and the result of the subtraction is guaranteed to be non-negative. + +\section{Least Common Multiple} +The least common multiple of a pair of integers is their product divided by their greatest common divisor. For two integers $a$ and $b$ the +least common multiple is normally denoted as $[ a, b ]$ and numerically equivalent to ${ab} \over {(a, b)}$. For example, if $a = 2 \cdot 2 \cdot 3 = 12$ +and $b = 2 \cdot 3 \cdot 3 \cdot 7 = 126$ the least common multiple is ${126 \over {(12, 126)}} = {126 \over 6} = 21$. + +The least common multiple arises often in coding theory as well as number theory. If two functions have periods of $a$ and $b$ respectively they will +collide, that is be in synchronous states, after only $[ a, b ]$ iterations. This is why, for example, random number generators based on +Linear Feedback Shift Registers (LFSR) tend to use registers with periods which are co-prime (\textit{e.g. the greatest common divisor is one.}). +Similarly in number theory if a composite $n$ has two prime factors $p$ and $q$ then maximal order of any unit of $\Z/n\Z$ will be $[ p - 1, q - 1] $. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_lcm}. \\ +\textbf{Input}. mp\_int $a$ and $b$ \\ +\textbf{Output}. The least common multiple $c = [a, b]$. \\ +\hline \\ +1. $c \leftarrow (a, b)$ \\ +2. $t \leftarrow a \cdot b$ \\ +3. $c \leftarrow \lfloor t / c \rfloor$ \\ +4. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_lcm} +\end{figure} +\textbf{Algorithm mp\_lcm.} +This algorithm computes the least common multiple of two mp\_int inputs $a$ and $b$. It computes the least common multiple directly by +dividing the product of the two inputs by their greatest common divisor. + +EXAM,bn_mp_lcm.c + +\section{Jacobi Symbol Computation} +To explain the Jacobi Symbol we shall first discuss the Legendre function\footnote{Arrg. What is the name of this?} off which the Jacobi symbol is +defined. The Legendre function computes whether or not an integer $a$ is a quadratic residue modulo an odd prime $p$. Numerically it is +equivalent to equation \ref{eqn:legendre}. + +\begin{equation} +a^{(p-1)/2} \equiv \begin{array}{rl} + -1 & \mbox{if }a\mbox{ is a quadratic non-residue.} \\ + 0 & \mbox{if }a\mbox{ divides }p\mbox{.} \\ + 1 & \mbox{if }a\mbox{ is a quadratic residue}. + \end{array} \mbox{ (mod }p\mbox{)} +\label{eqn:legendre} +\end{equation} + +\textbf{Proof.} \textit{Equation \ref{eqn:legendre} correctly identifies the residue status of an integer $a$ modulo a prime $p$.} +An integer $a$ is a quadratic residue if the following equation has a solution. + +\begin{equation} +x^2 \equiv a \mbox{ (mod }p\mbox{)} +\label{eqn:root} +\end{equation} + +Consider the following equation. + +\begin{equation} +0 \equiv x^{p-1} - 1 \equiv \left \lbrace \left (x^2 \right )^{(p-1)/2} - a^{(p-1)/2} \right \rbrace + \left ( a^{(p-1)/2} - 1 \right ) \mbox{ (mod }p\mbox{)} +\label{eqn:rooti} +\end{equation} + +Whether equation \ref{eqn:root} has a solution or not equation \ref{eqn:rooti} is always true. If $a^{(p-1)/2} - 1 \equiv 0 \mbox{ (mod }p\mbox{)}$ +then the quantity in the braces must be zero. By reduction, + +\begin{eqnarray} +\left (x^2 \right )^{(p-1)/2} - a^{(p-1)/2} \equiv 0 \nonumber \\ +\left (x^2 \right )^{(p-1)/2} \equiv a^{(p-1)/2} \nonumber \\ +x^2 \equiv a \mbox{ (mod }p\mbox{)} +\end{eqnarray} + +As a result there must be a solution to the quadratic equation and in turn $a$ must be a quadratic residue. If $a$ does not divide $p$ and $a$ +is not a quadratic residue then the only other value $a^{(p-1)/2}$ may be congruent to is $-1$ since +\begin{equation} +0 \equiv a^{p - 1} - 1 \equiv (a^{(p-1)/2} + 1)(a^{(p-1)/2} - 1) \mbox{ (mod }p\mbox{)} +\end{equation} +One of the terms on the right hand side must be zero. \textbf{QED} + +\subsection{Jacobi Symbol} +The Jacobi symbol is a generalization of the Legendre function for any odd non prime moduli $p$ greater than 2. If $p = \prod_{i=0}^n p_i$ then +the Jacobi symbol $\left ( { a \over p } \right )$ is equal to the following equation. + +\begin{equation} +\left ( { a \over p } \right ) = \left ( { a \over p_0} \right ) \left ( { a \over p_1} \right ) \ldots \left ( { a \over p_n} \right ) +\end{equation} + +By inspection if $p$ is prime the Jacobi symbol is equivalent to the Legendre function. The following facts\footnote{See HAC \cite[pp. 72-74]{HAC} for +further details.} will be used to derive an efficient Jacobi symbol algorithm. Where $p$ is an odd integer greater than two and $a, b \in \Z$ the +following are true. + +\begin{enumerate} +\item $\left ( { a \over p} \right )$ equals $-1$, $0$ or $1$. +\item $\left ( { ab \over p} \right ) = \left ( { a \over p} \right )\left ( { b \over p} \right )$. +\item If $a \equiv b$ then $\left ( { a \over p} \right ) = \left ( { b \over p} \right )$. +\item $\left ( { 2 \over p} \right )$ equals $1$ if $p \equiv 1$ or $7 \mbox{ (mod }8\mbox{)}$. Otherwise, it equals $-1$. +\item $\left ( { a \over p} \right ) \equiv \left ( { p \over a} \right ) \cdot (-1)^{(p-1)(a-1)/4}$. More specifically +$\left ( { a \over p} \right ) = \left ( { p \over a} \right )$ if $p \equiv a \equiv 1 \mbox{ (mod }4\mbox{)}$. +\end{enumerate} + +Using these facts if $a = 2^k \cdot a'$ then + +\begin{eqnarray} +\left ( { a \over p } \right ) = \left ( {{2^k} \over p } \right ) \left ( {a' \over p} \right ) \nonumber \\ + = \left ( {2 \over p } \right )^k \left ( {a' \over p} \right ) +\label{eqn:jacobi} +\end{eqnarray} + +By fact five, + +\begin{equation} +\left ( { a \over p } \right ) = \left ( { p \over a } \right ) \cdot (-1)^{(p-1)(a-1)/4} +\end{equation} + +Subsequently by fact three since $p \equiv (p \mbox{ mod }a) \mbox{ (mod }a\mbox{)}$ then + +\begin{equation} +\left ( { a \over p } \right ) = \left ( { {p \mbox{ mod } a} \over a } \right ) \cdot (-1)^{(p-1)(a-1)/4} +\end{equation} + +By putting both observations into equation \ref{eqn:jacobi} the following simplified equation is formed. + +\begin{equation} +\left ( { a \over p } \right ) = \left ( {2 \over p } \right )^k \left ( {{p\mbox{ mod }a'} \over a'} \right ) \cdot (-1)^{(p-1)(a'-1)/4} +\end{equation} + +The value of $\left ( {{p \mbox{ mod }a'} \over a'} \right )$ can be found by using the same equation recursively. The value of +$\left ( {2 \over p } \right )^k$ equals $1$ if $k$ is even otherwise it equals $\left ( {2 \over p } \right )$. Using this approach the +factors of $p$ do not have to be known. Furthermore, if $(a, p) = 1$ then the algorithm will terminate when the recursion requests the +Jacobi symbol computation of $\left ( {1 \over a'} \right )$ which is simply $1$. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_jacobi}. \\ +\textbf{Input}. mp\_int $a$ and $p$, $a \ge 0$, $p \ge 3$, $p \equiv 1 \mbox{ (mod }2\mbox{)}$ \\ +\textbf{Output}. The Jacobi symbol $c = \left ( {a \over p } \right )$. \\ +\hline \\ +1. If $a = 0$ then \\ +\hspace{3mm}1.1 $c \leftarrow 0$ \\ +\hspace{3mm}1.2 Return(\textit{MP\_OKAY}). \\ +2. If $a = 1$ then \\ +\hspace{3mm}2.1 $c \leftarrow 1$ \\ +\hspace{3mm}2.2 Return(\textit{MP\_OKAY}). \\ +3. $a' \leftarrow a$ \\ +4. $k \leftarrow 0$ \\ +5. While $a'.used > 0$ and $a'_0 \equiv 0 \mbox{ (mod }2\mbox{)}$ \\ +\hspace{3mm}5.1 $k \leftarrow k + 1$ \\ +\hspace{3mm}5.2 $a' \leftarrow \lfloor a' / 2 \rfloor$ \\ +6. If $k \equiv 0 \mbox{ (mod }2\mbox{)}$ then \\ +\hspace{3mm}6.1 $s \leftarrow 1$ \\ +7. else \\ +\hspace{3mm}7.1 $r \leftarrow p_0 \mbox{ (mod }8\mbox{)}$ \\ +\hspace{3mm}7.2 If $r = 1$ or $r = 7$ then \\ +\hspace{6mm}7.2.1 $s \leftarrow 1$ \\ +\hspace{3mm}7.3 else \\ +\hspace{6mm}7.3.1 $s \leftarrow -1$ \\ +8. If $p_0 \equiv a'_0 \equiv 3 \mbox{ (mod }4\mbox{)}$ then \\ +\hspace{3mm}8.1 $s \leftarrow -s$ \\ +9. If $a' \ne 1$ then \\ +\hspace{3mm}9.1 $p' \leftarrow p \mbox{ (mod }a'\mbox{)}$ \\ +\hspace{3mm}9.2 $s \leftarrow s \cdot \mbox{mp\_jacobi}(p', a')$ \\ +10. $c \leftarrow s$ \\ +11. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_jacobi} +\end{figure} +\textbf{Algorithm mp\_jacobi.} +This algorithm computes the Jacobi symbol for an arbitrary positive integer $a$ with respect to an odd integer $p$ greater than three. The algorithm +is based on algorithm 2.149 of HAC \cite[pp. 73]{HAC}. + +Step numbers one and two handle the trivial cases of $a = 0$ and $a = 1$ respectively. Step five determines the number of two factors in the +input $a$. If $k$ is even than the term $\left ( { 2 \over p } \right )^k$ must always evaluate to one. If $k$ is odd than the term evaluates to one +if $p_0$ is congruent to one or seven modulo eight, otherwise it evaluates to $-1$. After the the $\left ( { 2 \over p } \right )^k$ term is handled +the $(-1)^{(p-1)(a'-1)/4}$ is computed and multiplied against the current product $s$. The latter term evaluates to one if both $p$ and $a'$ +are congruent to one modulo four, otherwise it evaluates to negative one. + +By step nine if $a'$ does not equal one a recursion is required. Step 9.1 computes $p' \equiv p \mbox{ (mod }a'\mbox{)}$ and will recurse to compute +$\left ( {p' \over a'} \right )$ which is multiplied against the current Jacobi product. + +EXAM,bn_mp_jacobi.c + +As a matter of practicality the variable $a'$ as per the pseudo-code is reprensented by the variable $a1$ since the $'$ symbol is not valid for a C +variable name character. + +The two simple cases of $a = 0$ and $a = 1$ are handled at the very beginning to simplify the algorithm. If the input is non-trivial the algorithm +has to proceed compute the Jacobi. The variable $s$ is used to hold the current Jacobi product. Note that $s$ is merely a C ``int'' data type since +the values it may obtain are merely $-1$, $0$ and $1$. + +After a local copy of $a$ is made all of the factors of two are divided out and the total stored in $k$. Technically only the least significant +bit of $k$ is required, however, it makes the algorithm simpler to follow to perform an addition. In practice an exclusive-or and addition have the same +processor requirements and neither is faster than the other. + +Line @59, if@ through @70, }@ determines the value of $\left ( { 2 \over p } \right )^k$. If the least significant bit of $k$ is zero than +$k$ is even and the value is one. Otherwise, the value of $s$ depends on which residue class $p$ belongs to modulo eight. The value of +$(-1)^{(p-1)(a'-1)/4}$ is compute and multiplied against $s$ on lines @73, if@ through @75, }@. + +Finally, if $a1$ does not equal one the algorithm must recurse and compute $\left ( {p' \over a'} \right )$. + +\textit{-- Comment about default $s$ and such...} + +\section{Modular Inverse} +\label{sec:modinv} +The modular inverse of a number actually refers to the modular multiplicative inverse. Essentially for any integer $a$ such that $(a, p) = 1$ there +exist another integer $b$ such that $ab \equiv 1 \mbox{ (mod }p\mbox{)}$. The integer $b$ is called the multiplicative inverse of $a$ which is +denoted as $b = a^{-1}$. Technically speaking modular inversion is a well defined operation for any finite ring or field not just for rings and +fields of integers. However, the former will be the matter of discussion. + +The simplest approach is to compute the algebraic inverse of the input. That is to compute $b \equiv a^{\Phi(p) - 1}$. If $\Phi(p)$ is the +order of the multiplicative subgroup modulo $p$ then $b$ must be the multiplicative inverse of $a$. The proof of which is trivial. + +\begin{equation} +ab \equiv a \left (a^{\Phi(p) - 1} \right ) \equiv a^{\Phi(p)} \equiv a^0 \equiv 1 \mbox{ (mod }p\mbox{)} +\end{equation} + +However, as simple as this approach may be it has two serious flaws. It requires that the value of $\Phi(p)$ be known which if $p$ is composite +requires all of the prime factors. This approach also is very slow as the size of $p$ grows. + +A simpler approach is based on the observation that solving for the multiplicative inverse is equivalent to solving the linear +Diophantine\footnote{See LeVeque \cite[pp. 40-43]{LeVeque} for more information.} equation. + +\begin{equation} +ab + pq = 1 +\end{equation} + +Where $a$, $b$, $p$ and $q$ are all integers. If such a pair of integers $ \left < b, q \right >$ exist than $b$ is the multiplicative inverse of +$a$ modulo $p$. The extended Euclidean algorithm (Knuth \cite[pp. 342]{TAOCPV2}) can be used to solve such equations provided $(a, p) = 1$. +However, instead of using that algorithm directly a variant known as the binary Extended Euclidean algorithm will be used in its place. The +binary approach is very similar to the binary greatest common divisor algorithm except it will produce a full solution to the Diophantine +equation. + +\subsection{General Case} +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_invmod}. \\ +\textbf{Input}. mp\_int $a$ and $b$, $(a, b) = 1$, $p \ge 2$, $0 < a < p$. \\ +\textbf{Output}. The modular inverse $c \equiv a^{-1} \mbox{ (mod }b\mbox{)}$. \\ +\hline \\ +1. If $b \le 0$ then return(\textit{MP\_VAL}). \\ +2. If $b_0 \equiv 1 \mbox{ (mod }2\mbox{)}$ then use algorithm fast\_mp\_invmod. \\ +3. $x \leftarrow \vert a \vert, y \leftarrow b$ \\ +4. If $x_0 \equiv y_0 \equiv 0 \mbox{ (mod }2\mbox{)}$ then return(\textit{MP\_VAL}). \\ +5. $B \leftarrow 0, C \leftarrow 0, A \leftarrow 1, D \leftarrow 1$ \\ +6. While $u.used > 0$ and $u_0 \equiv 0 \mbox{ (mod }2\mbox{)}$ \\ +\hspace{3mm}6.1 $u \leftarrow \lfloor u / 2 \rfloor$ \\ +\hspace{3mm}6.2 If ($A.used > 0$ and $A_0 \equiv 1 \mbox{ (mod }2\mbox{)}$) or ($B.used > 0$ and $B_0 \equiv 1 \mbox{ (mod }2\mbox{)}$) then \\ +\hspace{6mm}6.2.1 $A \leftarrow A + y$ \\ +\hspace{6mm}6.2.2 $B \leftarrow B - x$ \\ +\hspace{3mm}6.3 $A \leftarrow \lfloor A / 2 \rfloor$ \\ +\hspace{3mm}6.4 $B \leftarrow \lfloor B / 2 \rfloor$ \\ +7. While $v.used > 0$ and $v_0 \equiv 0 \mbox{ (mod }2\mbox{)}$ \\ +\hspace{3mm}7.1 $v \leftarrow \lfloor v / 2 \rfloor$ \\ +\hspace{3mm}7.2 If ($C.used > 0$ and $C_0 \equiv 1 \mbox{ (mod }2\mbox{)}$) or ($D.used > 0$ and $D_0 \equiv 1 \mbox{ (mod }2\mbox{)}$) then \\ +\hspace{6mm}7.2.1 $C \leftarrow C + y$ \\ +\hspace{6mm}7.2.2 $D \leftarrow D - x$ \\ +\hspace{3mm}7.3 $C \leftarrow \lfloor C / 2 \rfloor$ \\ +\hspace{3mm}7.4 $D \leftarrow \lfloor D / 2 \rfloor$ \\ +8. If $u \ge v$ then \\ +\hspace{3mm}8.1 $u \leftarrow u - v$ \\ +\hspace{3mm}8.2 $A \leftarrow A - C$ \\ +\hspace{3mm}8.3 $B \leftarrow B - D$ \\ +9. else \\ +\hspace{3mm}9.1 $v \leftarrow v - u$ \\ +\hspace{3mm}9.2 $C \leftarrow C - A$ \\ +\hspace{3mm}9.3 $D \leftarrow D - B$ \\ +10. If $u \ne 0$ goto step 6. \\ +11. If $v \ne 1$ return(\textit{MP\_VAL}). \\ +12. While $C \le 0$ do \\ +\hspace{3mm}12.1 $C \leftarrow C + b$ \\ +13. While $C \ge b$ do \\ +\hspace{3mm}13.1 $C \leftarrow C - b$ \\ +14. $c \leftarrow C$ \\ +15. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\end{figure} +\textbf{Algorithm mp\_invmod.} +This algorithm computes the modular multiplicative inverse of an integer $a$ modulo an integer $b$. This algorithm is a variation of the +extended binary Euclidean algorithm from HAC \cite[pp. 608]{HAC}. It has been modified to only compute the modular inverse and not a complete +Diophantine solution. + +If $b \le 0$ than the modulus is invalid and MP\_VAL is returned. Similarly if both $a$ and $b$ are even then there cannot be a multiplicative +inverse for $a$ and the error is reported. + +The astute reader will observe that steps seven through nine are very similar to the binary greatest common divisor algorithm mp\_gcd. In this case +the other variables to the Diophantine equation are solved. The algorithm terminates when $u = 0$ in which case the solution is + +\begin{equation} +Ca + Db = v +\end{equation} + +If $v$, the greatest common divisor of $a$ and $b$ is not equal to one then the algorithm will report an error as no inverse exists. Otherwise, $C$ +is the modular inverse of $a$. The actual value of $C$ is congruent to, but not necessarily equal to, the ideal modular inverse which should lie +within $1 \le a^{-1} < b$. Step numbers twelve and thirteen adjust the inverse until it is in range. If the original input $a$ is within $0 < a < p$ +then only a couple of additions or subtractions will be required to adjust the inverse. + +EXAM,bn_mp_invmod.c + +\subsubsection{Odd Moduli} + +When the modulus $b$ is odd the variables $A$ and $C$ are fixed and are not required to compute the inverse. In particular by attempting to solve +the Diophantine $Cb + Da = 1$ only $B$ and $D$ are required to find the inverse of $a$. + +The algorithm fast\_mp\_invmod is a direct adaptation of algorithm mp\_invmod with all all steps involving either $A$ or $C$ removed. This +optimization will halve the time required to compute the modular inverse. + +\section{Primality Tests} + +A non-zero integer $a$ is said to be prime if it is not divisible by any other integer excluding one and itself. For example, $a = 7$ is prime +since the integers $2 \ldots 6$ do not evenly divide $a$. By contrast, $a = 6$ is not prime since $a = 6 = 2 \cdot 3$. + +Prime numbers arise in cryptography considerably as they allow finite fields to be formed. The ability to determine whether an integer is prime or +not quickly has been a viable subject in cryptography and number theory for considerable time. The algorithms that will be presented are all +probablistic algorithms in that when they report an integer is composite it must be composite. However, when the algorithms report an integer is +prime the algorithm may be incorrect. + +As will be discussed it is possible to limit the probability of error so well that for practical purposes the probablity of error might as +well be zero. For the purposes of these discussions let $n$ represent the candidate integer of which the primality is in question. + +\subsection{Trial Division} + +Trial division means to attempt to evenly divide a candidate integer by small prime integers. If the candidate can be evenly divided it obviously +cannot be prime. By dividing by all primes $1 < p \le \sqrt{n}$ this test can actually prove whether an integer is prime. However, such a test +would require a prohibitive amount of time as $n$ grows. + +Instead of dividing by every prime, a smaller, more mangeable set of primes may be used instead. By performing trial division with only a subset +of the primes less than $\sqrt{n} + 1$ the algorithm cannot prove if a candidate is prime. However, often it can prove a candidate is not prime. + +The benefit of this test is that trial division by small values is fairly efficient. Specially compared to the other algorithms that will be +discussed shortly. The probability that this approach correctly identifies a composite candidate when tested with all primes upto $q$ is given by +$1 - {1.12 \over ln(q)}$. The graph (\ref{pic:primality}, will be added later) demonstrates the probability of success for the range +$3 \le q \le 100$. + +At approximately $q = 30$ the gain of performing further tests diminishes fairly quickly. At $q = 90$ further testing is generally not going to +be of any practical use. In the case of LibTomMath the default limit $q = 256$ was chosen since it is not too high and will eliminate +approximately $80\%$ of all candidate integers. The constant \textbf{PRIME\_SIZE} is equal to the number of primes in the test base. The +array \_\_prime\_tab is an array of the first \textbf{PRIME\_SIZE} prime numbers. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_prime\_is\_divisible}. \\ +\textbf{Input}. mp\_int $a$ \\ +\textbf{Output}. $c = 1$ if $n$ is divisible by a small prime, otherwise $c = 0$. \\ +\hline \\ +1. for $ix$ from $0$ to $PRIME\_SIZE$ do \\ +\hspace{3mm}1.1 $d \leftarrow n \mbox{ (mod }\_\_prime\_tab_{ix}\mbox{)}$ \\ +\hspace{3mm}1.2 If $d = 0$ then \\ +\hspace{6mm}1.2.1 $c \leftarrow 1$ \\ +\hspace{6mm}1.2.2 Return(\textit{MP\_OKAY}). \\ +2. $c \leftarrow 0$ \\ +3. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_prime\_is\_divisible} +\end{figure} +\textbf{Algorithm mp\_prime\_is\_divisible.} +This algorithm attempts to determine if a candidate integer $n$ is composite by performing trial divisions. + +EXAM,bn_mp_prime_is_divisible.c + +The algorithm defaults to a return of $0$ in case an error occurs. The values in the prime table are all specified to be in the range of a +mp\_digit. The table \_\_prime\_tab is defined in the following file. + +EXAM,bn_prime_tab.c + +Note that there are two possible tables. When an mp\_digit is 7-bits long only the primes upto $127$ may be included, otherwise the primes +upto $1619$ are used. Note that the value of \textbf{PRIME\_SIZE} is a constant dependent on the size of a mp\_digit. + +\subsection{The Fermat Test} +The Fermat test is probably one the oldest tests to have a non-trivial probability of success. It is based on the fact that if $n$ is in +fact prime then $a^{n} \equiv a \mbox{ (mod }n\mbox{)}$ for all $0 < a < n$. The reason being that if $n$ is prime than the order of +the multiplicative sub group is $n - 1$. Any base $a$ must have an order which divides $n - 1$ and as such $a^n$ is equivalent to +$a^1 = a$. + +If $n$ is composite then any given base $a$ does not have to have a period which divides $n - 1$. In which case +it is possible that $a^n \nequiv a \mbox{ (mod }n\mbox{)}$. However, this test is not absolute as it is possible that the order +of a base will divide $n - 1$ which would then be reported as prime. Such a base yields what is known as a Fermat pseudo-prime. Several +integers known as Carmichael numbers will be a pseudo-prime to all valid bases. Fortunately such numbers are extremely rare as $n$ grows +in size. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_prime\_fermat}. \\ +\textbf{Input}. mp\_int $a$ and $b$, $a \ge 2$, $0 < b < a$. \\ +\textbf{Output}. $c = 1$ if $b^a \equiv b \mbox{ (mod }a\mbox{)}$, otherwise $c = 0$. \\ +\hline \\ +1. $t \leftarrow b^a \mbox{ (mod }a\mbox{)}$ \\ +2. If $t = b$ then \\ +\hspace{3mm}2.1 $c = 1$ \\ +3. else \\ +\hspace{3mm}3.1 $c = 0$ \\ +4. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_prime\_fermat} +\end{figure} +\textbf{Algorithm mp\_prime\_fermat.} +This algorithm determines whether an mp\_int $a$ is a Fermat prime to the base $b$ or not. It uses a single modular exponentiation to +determine the result. + +EXAM,bn_mp_prime_fermat.c + +\subsection{The Miller-Rabin Test} +The Miller-Rabin (citation) test is another primality test which has tighter error bounds than the Fermat test specifically with sequentially chosen +candidate integers. The algorithm is based on the observation that if $n - 1 = 2^kr$ and if $b^r \nequiv \pm 1$ then after upto $k - 1$ squarings the +value must be equal to $-1$. The squarings are stopped as soon as $-1$ is observed. If the value of $1$ is observed first it means that +some value not congruent to $\pm 1$ when squared equals one which cannot occur if $n$ is prime. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_prime\_miller\_rabin}. \\ +\textbf{Input}. mp\_int $a$ and $b$, $a \ge 2$, $0 < b < a$. \\ +\textbf{Output}. $c = 1$ if $a$ is a Miller-Rabin prime to the base $a$, otherwise $c = 0$. \\ +\hline +1. $a' \leftarrow a - 1$ \\ +2. $r \leftarrow n1$ \\ +3. $c \leftarrow 0, s \leftarrow 0$ \\ +4. While $r.used > 0$ and $r_0 \equiv 0 \mbox{ (mod }2\mbox{)}$ \\ +\hspace{3mm}4.1 $s \leftarrow s + 1$ \\ +\hspace{3mm}4.2 $r \leftarrow \lfloor r / 2 \rfloor$ \\ +5. $y \leftarrow b^r \mbox{ (mod }a\mbox{)}$ \\ +6. If $y \nequiv \pm 1$ then \\ +\hspace{3mm}6.1 $j \leftarrow 1$ \\ +\hspace{3mm}6.2 While $j \le (s - 1)$ and $y \nequiv a'$ \\ +\hspace{6mm}6.2.1 $y \leftarrow y^2 \mbox{ (mod }a\mbox{)}$ \\ +\hspace{6mm}6.2.2 If $y = 1$ then goto step 8. \\ +\hspace{6mm}6.2.3 $j \leftarrow j + 1$ \\ +\hspace{3mm}6.3 If $y \nequiv a'$ goto step 8. \\ +7. $c \leftarrow 1$\\ +8. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_prime\_miller\_rabin} +\end{figure} +\textbf{Algorithm mp\_prime\_miller\_rabin.} +This algorithm performs one trial round of the Miller-Rabin algorithm to the base $b$. It will set $c = 1$ if the algorithm cannot determine +if $b$ is composite or $c = 0$ if $b$ is provably composite. The values of $s$ and $r$ are computed such that $a' = a - 1 = 2^sr$. + +If the value $y \equiv b^r$ is congruent to $\pm 1$ then the algorithm cannot prove if $a$ is composite or not. Otherwise, the algorithm will +square $y$ upto $s - 1$ times stopping only when $y \equiv -1$. If $y^2 \equiv 1$ and $y \nequiv \pm 1$ then the algorithm can report that $a$ +is provably composite. If the algorithm performs $s - 1$ squarings and $y \nequiv -1$ then $a$ is provably composite. If $a$ is not provably +composite then it is \textit{probably} prime. + +EXAM,bn_mp_prime_miller_rabin.c + + + + +\backmatter +\appendix +\begin{thebibliography}{ABCDEF} +\bibitem[1]{TAOCPV2} +Donald Knuth, \textit{The Art of Computer Programming}, Third Edition, Volume Two, Seminumerical Algorithms, Addison-Wesley, 1998 + +\bibitem[2]{HAC} +A. Menezes, P. van Oorschot, S. Vanstone, \textit{Handbook of Applied Cryptography}, CRC Press, 1996 + +\bibitem[3]{ROSE} +Michael Rosing, \textit{Implementing Elliptic Curve Cryptography}, Manning Publications, 1999 + +\bibitem[4]{COMBA} +Paul G. Comba, \textit{Exponentiation Cryptosystems on the IBM PC}. IBM Systems Journal 29(4): 526-538 (1990) + +\bibitem[5]{KARA} +A. Karatsuba, Doklay Akad. Nauk SSSR 145 (1962), pp.293-294 + +\bibitem[6]{KARAP} +Andre Weimerskirch and Christof Paar, \textit{Generalizations of the Karatsuba Algorithm for Polynomial Multiplication}, Submitted to Design, Codes and Cryptography, March 2002 + +\bibitem[7]{BARRETT} +Paul Barrett, \textit{Implementing the Rivest Shamir and Adleman Public Key Encryption Algorithm on a Standard Digital Signal Processor}, Advances in Cryptology, Crypto '86, Springer-Verlag. + +\bibitem[8]{MONT} +P.L.Montgomery. \textit{Modular multiplication without trial division}. Mathematics of Computation, 44(170):519-521, April 1985. + +\bibitem[9]{DRMET} +Chae Hoon Lim and Pil Joong Lee, \textit{Generating Efficient Primes for Discrete Log Cryptosystems}, POSTECH Information Research Laboratories + +\bibitem[10]{MMB} +J. Daemen and R. Govaerts and J. Vandewalle, \textit{Block ciphers based on Modular Arithmetic}, State and {P}rogress in the {R}esearch of {C}ryptography, 1993, pp. 80-89 + +\bibitem[11]{RSAREF} +R.L. Rivest, A. Shamir, L. Adleman, \textit{A Method for Obtaining Digital Signatures and Public-Key Cryptosystems} + +\bibitem[12]{DHREF} +Whitfield Diffie, Martin E. Hellman, \textit{New Directions in Cryptography}, IEEE Transactions on Information Theory, 1976 + +\bibitem[13]{IEEE} +IEEE Standard for Binary Floating-Point Arithmetic (ANSI/IEEE Std 754-1985) + +\bibitem[14]{GMP} +GNU Multiple Precision (GMP), \url{http://www.swox.com/gmp/} + +\bibitem[15]{MPI} +Multiple Precision Integer Library (MPI), Michael Fromberger, \url{http://thayer.dartmouth.edu/~sting/mpi/} + +\bibitem[16]{OPENSSL} +OpenSSL Cryptographic Toolkit, \url{http://openssl.org} + +\bibitem[17]{LIP} +Large Integer Package, \url{http://home.hetnet.nl/~ecstr/LIP.zip} + +\end{thebibliography} + +\input{tommath.ind} + +\end{document} diff --git a/tommath.tex b/tommath.tex new file mode 100644 index 0000000..ef2e648 --- /dev/null +++ b/tommath.tex @@ -0,0 +1,10683 @@ +\documentclass[b5paper]{book} +\usepackage{hyperref} +\usepackage{makeidx} +\usepackage{amssymb} +\usepackage{color} +\usepackage{alltt} +\usepackage{graphicx} +\usepackage{layout} +\def\union{\cup} +\def\intersect{\cap} +\def\getsrandom{\stackrel{\rm R}{\gets}} +\def\cross{\times} +\def\cat{\hspace{0.5em} \| \hspace{0.5em}} +\def\catn{$\|$} +\def\divides{\hspace{0.3em} | \hspace{0.3em}} +\def\nequiv{\not\equiv} +\def\approx{\raisebox{0.2ex}{\mbox{\small $\sim$}}} +\def\lcm{{\rm lcm}} +\def\gcd{{\rm gcd}} +\def\log{{\rm log}} +\def\ord{{\rm ord}} +\def\abs{{\mathit abs}} +\def\rep{{\mathit rep}} +\def\mod{{\mathit\ mod\ }} +\renewcommand{\pmod}[1]{\ ({\rm mod\ }{#1})} +\newcommand{\floor}[1]{\left\lfloor{#1}\right\rfloor} +\newcommand{\ceil}[1]{\left\lceil{#1}\right\rceil} +\def\Or{{\rm\ or\ }} +\def\And{{\rm\ and\ }} +\def\iff{\hspace{1em}\Longleftrightarrow\hspace{1em}} +\def\implies{\Rightarrow} +\def\undefined{{\rm ``undefined"}} +\def\Proof{\vspace{1ex}\noindent {\bf Proof:}\hspace{1em}} +\let\oldphi\phi +\def\phi{\varphi} +\def\Pr{{\rm Pr}} +\newcommand{\str}[1]{{\mathbf{#1}}} +\def\F{{\mathbb F}} +\def\N{{\mathbb N}} +\def\Z{{\mathbb Z}} +\def\R{{\mathbb R}} +\def\C{{\mathbb C}} +\def\Q{{\mathbb Q}} +\definecolor{DGray}{gray}{0.5} +\newcommand{\emailaddr}[1]{\mbox{$<${#1}$>$}} +\def\twiddle{\raisebox{0.3ex}{\mbox{\tiny $\sim$}}} +\def\gap{\vspace{0.5ex}} +\makeindex +\begin{document} +\frontmatter +\pagestyle{empty} +\title{Implementing Multiple Precision Arithmetic \\ ~ \\ Holiday Draft Edition } +\author{\mbox{ +%\begin{small} +\begin{tabular}{c} +Tom St Denis \\ +Algonquin College \\ +\\ +Mads Rasmussen \\ +Open Communications Security \\ +\\ +Greg Rose \\ +QUALCOMM Australia \\ +\end{tabular} +%\end{small} +} +} +\maketitle +This text has been placed in the public domain. This text corresponds to the v0.28 release of the +LibTomMath project. + +\begin{alltt} +Tom St Denis +111 Banning Rd +Ottawa, Ontario +K2L 1C3 +Canada + +Phone: 1-613-836-3160 +Email: tomstdenis@iahu.ca +\end{alltt} + +This text is formatted to the international B5 paper size of 176mm wide by 250mm tall using the \LaTeX{} +{\em book} macro package and the Perl {\em booker} package. + +\tableofcontents +\listoffigures +\chapter*{Prefaces to the Holiday Draft Edition} +I started this text in April 2003 to complement my LibTomMath library. That is, explain how to implement the functions +contained in LibTomMath. The goal is to have a textbook that any Computer Science student can use when implementing their +own multiple precision arithmetic. The plan I wanted to follow was flesh out all the +ideas and concepts I had floating around in my head and then work on it afterwards refining a little bit at a time. Chance +would have it that I ended up with my summer off from Algonquin College and I was given four months solid to work on the +text. + +Choosing to not waste any time I dove right into the project even before my spring semester was finished. I wrote a bit +off and on at first. The moment my exams were finished I jumped into long 12 to 16 hour days. The result after only +a couple of months was a ten chapter, three hundred page draft that I quickly had distributed to anyone who wanted +to read it. I had Jean-Luc Cooke print copies for me and I brought them to Crypto'03 in Santa Barbara. So far I have +managed to grab a certain level of attention having people from around the world ask me for copies of the text was certain +rewarding. + +Now we are in December 2003. By this time I had pictured that I would have at least finished my second draft of the text. +Currently I am far off from this goal. I've done partial re-writes of chapters one, two and three but they are not even +finished yet. I haven't given up on the project, only had some setbacks. First O'Reilly declined to publish the text then +Addison-Wesley and Greg is tried another which I don't know the name of. However, at this point I want to focus my energy +onto finishing the book not securing a contract. + +So why am I writing this text? It seems like a lot of work right? Most certainly it is a lot of work writing a textbook. +Even the simplest introductory material has to be lined with references and figures. A lot of the text has to be re-written +from point form to prose form to ensure an easier read. Why am I doing all this work for free then? Simple. My philosophy +is quite simply ``Open Source. Open Academia. Open Minds'' which means that to achieve a goal of open minds, that is, +people willing to accept new ideas and explore the unknown you have to make available material they can access freely +without hinderance. + +I've been writing free software since I was about sixteen but only recently have I hit upon software that people have come +to depend upon. I started LibTomCrypt in December 2001 and now several major companies use it as integral portions of their +software. Several educational institutions use it as a matter of course and many freelance developers use it as +part of their projects. To further my contributions I started the LibTomMath project in December 2002 aimed at providing +multiple precision arithmetic routines that students could learn from. That is write routines that are not only easy +to understand and follow but provide quite impressive performance considering they are all in standard portable ISO C. + +The second leg of my philosophy is ``Open Academia'' which is where this textbook comes in. In the end, when all is +said and done the text will be useable by educational institutions as a reference on multiple precision arithmetic. + +At this time I feel I should share a little information about myself. The most common question I was asked at +Crypto'03, perhaps just out of professional courtesy, was which school I either taught at or attended. The unfortunate +truth is that I neither teach at or attend a school of academic reputation. I'm currently at Algonquin College which +is what I'd like to call ``somewhat academic but mostly vocational'' college. In otherwords, job training. + +I'm a 21 year old computer science student mostly self-taught in the areas I am aware of (which includes a half-dozen +computer science fields, a few fields of mathematics and some English). I look forward to teaching someday but I am +still far off from that goal. + +Now it would be improper for me to not introduce the rest of the texts co-authors. While they are only contributing +corrections and editorial feedback their support has been tremendously helpful in presenting the concepts laid out +in the text so far. Greg has always been there for me. He has tracked my LibTom projects since their inception and even +sent cheques to help pay tuition from time to time. His background has provided a wonderful source to bounce ideas off +of and improve the quality of my writing. Mads is another fellow who has just ``been there''. I don't even recall what +his interest in the LibTom projects is but I'm definitely glad he has been around. His ability to catch logical errors +in my written English have saved me on several occasions to say the least. + +What to expect next? Well this is still a rough draft. I've only had the chance to update a few chapters. However, I've +been getting the feeling that people are starting to use my text and I owe them some updated material. My current tenative +plan is to edit one chapter every two weeks starting January 4th. It seems insane but my lower course load at college +should provide ample time. By Crypto'04 I plan to have a 2nd draft of the text polished and ready to hand out to as many +people who will take it. + +Finally, again, I'd like to thank my parents Vern and Katie St Denis for giving me a place to stay, food, clothes and +word of encouragement whenever I seemed to need it. Thanks! + +\begin{flushright} Tom St Denis \end{flushright} + +\newpage +I found the opportunity to work with Tom appealing for several reasons, not only could I broaden my own horizons, but also +contribute to educate others facing the problem of having to handle big number mathematical calculations. + +This book is Tom's child and he has been caring and fostering the project ever since the beginning with a clear mind of +how he wanted the project to turn out. I have helped by proofreading the text and we have had several discussions about +the layout and language used. + +I hold a masters degree in cryptography from the University of Southern Denmark and have always been interested in the +practical aspects of cryptography. + +Having worked in the security consultancy business for several years in S\~{a}o Paulo, Brazil, I have been in touch with a +great deal of work in which multiple precision mathematics was needed. Understanding the possibilities for speeding up +multiple precision calculations is often very important since we deal with outdated machine architecture where modular +reductions, for example, become painfully slow. + +This text is for people who stop and wonder when first examining algorithms such as RSA for the first time and asks +themselves, ``You tell me this is only secure for large numbers, fine; but how do you implement these numbers?'' + +\begin{flushright} +Mads Rasmussen + +S\~{a}o Paulo - SP + +Brazil +\end{flushright} + +\newpage +It's all because I broke my leg. That just happened to be at about the same time that Tom asked for someone to review the section of the book about +Karatsuba multiplication. I was laid up, alone and immobile, and thought ``Why not?'' I vaguely knew what Karatsuba multiplication was, but not +really, so I thought I could help, learn, and stop myself from watching daytime cable TV, all at once. + +At the time of writing this, I've still not met Tom or Mads in meatspace. I've been following Tom's progress since his first splash on the +sci.crypt Usenet news group. I watched him go from a clueless newbie, to the cryptographic equivalent of a reformed smoker, to a real +contributor to the field, over a period of about two years. I've been impressed with his obvious intelligence, and astounded by his productivity. +Of course, he's young enough to be my own child, so he doesn't have my problems with staying awake. + +When I reviewed that single section of the book, in its very earliest form, I was very pleasantly surprised. So I decided to collaborate more fully, +and at least review all of it, and perhaps write some bits too. There's still a long way to go with it, and I have watched a number of close +friends go through the mill of publication, so I think that the way to go is longer than Tom thinks it is. Nevertheless, it's a good effort, +and I'm pleased to be involved with it. + +\begin{flushright} +Greg Rose, Sydney, Australia, June 2003. +\end{flushright} + +\mainmatter +\pagestyle{headings} +\chapter{Introduction} +\section{Multiple Precision Arithmetic} +\subsection{The Need for Multiple Precision Arithmetic} +The most prevalent need for multiple precision arithmetic, often referred to as ``bignum'' math, is within the implementation +of public-key cryptography algorithms. Algorithms such as RSA \cite{RSAREF} and Diffie-Hellman \cite{DHREF} require +integers of significant magnitude to resist known cryptanalytic attacks. For example, at the time of this writing a +typical RSA modulus would be at greater than $10^{309}$. However, modern programming languages such as ISO C \ref{ISOC} and +Java \ref{JAVA} only provide instrinsic support for integers which are relatively small and are single precision. + +\begin{figure}[!here] +\begin{center} +\begin{tabular}{|r|c|} +\hline \textbf{Data Type} & \textbf{Range} \\ +\hline char & $-128 \ldots 127$ \\ +\hline short & $-32768 \ldots 32767$ \\ +\hline long & $-2147483648 \ldots 2147483647$ \\ +\hline long long & $-9223372036854775808 \ldots 9223372036854775807$ \\ +\hline +\end{tabular} +\end{center} +\caption{Typical Data Types for the C Programming Language} +\label{fig:ISOC} +\end{figure} + +The largest data type guaranteed to be provided by the ISO C programming +language\footnote{As per the ISO C standard. However, each compiler vendor is allowed to augment the precision as they +see fit.} can only represent values up to $10^{19}$ as shown in figure \ref{fig:ISOC}. On its own the C language is +insufficient to accomodate the magnitude required for the problem at hand. An RSA modulus of magnitude $10^{19}$ could be +trivially factored on the average desktop computer, rendering any protocol based on the algorithm insecure. Multiple +precision algorithms solve this very problem by extending the range of representable integers while using single precision +data types. + +Most advancements in fast multiple precision arithmetic stem from the need for faster and more efficient cryptographic +primitives. Faster modular reduction and exponentiation algorithms such as Barrett's algorithm, which have appeared in +various cryptographic journals, can render algorithms such as RSA and Diffie-Hellman more efficient. In fact, several +major companies such as RSA Security, Certicom and Entrust have built entire product lines on the implementation and +deployment of efficient algorithms. + +However, cryptography is not the only field of study that can benefit from fast multiple precision integer routines. +Another auxiliary use of multiple precision integers is high precision floating point data types. +The basic IEEE \cite{IEEE} standard floating point type is made up of an integer mantissa $q$, an exponent $e$ and a sign bit $s$. +Numbers are given in the form $n = q \cdot b^e \cdot -1^s$ where $b = 2$ is the most common base for IEEE. Since IEEE +floating point is meant to be implemented in hardware the precision of the mantissa is often fairly small +(\textit{23, 48 and 64 bits}). The mantissa is merely an integer and a multiple precision integer could be used to create +a mantissa of much larger precision than hardware alone can efficiently support. This approach could be useful where +scientific applications must minimize the total output error over long calculations. + +\subsection{What is Multiple Precision Arithmetic?} +At the heart of all multiple precision integer operations are the ``long-hand'' algorithms taught to children in grade +school. For example, to multiply $1,234$ by $981$ the student is not taught to memorize the times table for +$1,234$. Instead, they are taught how to long-multiply one digit at a time. That is to multiply each column using +simple single digit multiplications, line up the partial results, and add the resulting products by column. The +representation that most are familiar with is known as decimal or more formally as radix-10. A radix-$n$ representation +simply means there are $n$ possible values per digit. For example, binary would be a radix-2 representation. + +In essence computer based multiple precision arithmetic is very much the same. In most cases the same algorithms +which seem instinctive are the basis of computer based algorithms. The most notable difference is the usage +of a binary friendly radix, that is, to use a radix of the form $2^k$ where $k$ is typically the size of a computer +machine register\footnote{For example, with an x86 based processor $k$ could be $32$ while on an Alpha it would likely +be $64$.}. + +\subsection{Benefits of Multiple Precision Arithmetic} +\index{precision} +The benefit of multiple precision representations over single or fixed precision representations is that +often no precision is lost while representing the result of an operation which requires excess precision. For example, +the product of two $n$-bit integers requires at least $2n$ bits of resolution to be precisely represented. +A multiple precision algorithm would augment the precision of the destination to accomodate the result while a single +precision system would truncate excess bits to maintain a fixed level of precision. + +It is possible to implement algorithms which require large integers with fixed precision algorithms. For example, elliptic +curve cryptography (\textit{ECC}) is often implemented on smartcards by fixing the precision of the integers to the maximum +size the system will ever need. Such an approach can lead to vastly simpler algorithms which can accomodate the +integers required even if the host platform cannot natively accomodate them\footnote{For example, the average smartcard +processor has an 8 bit accumulator.}. However, as efficient as such an approach may be, the resulting source code is not +normally very flexible. It cannot, at runtime, accomodate inputs of higher magnitude than the designer anticipated. + +Multiple precision algorithms have the most overhead of any style of arithmetic. For the the most part the +overhead can be kept to a minimum with careful planning, but overall, it is not well suited for most memory starved +platforms. However, multiple precision algorithms do offer the most flexibility in terms of the magnitude of the +inputs. That is, the same algorithms based on multiple precision integers can accomodate any reasonable size input +without the designer's explicit forethought. + +\section{Purpose of This Text} +The purpose of this text is to instruct the reader regarding how to implement multiple precision algorithms. That is +to not only explain a limited subset of the core theory behind the algorithms but also the various ``house keeping'' +elements that are neglected by authors of other texts on the subject. Several well reknowned texts \cite{TAOCPV2,HAC} +give considerably detailed explanations of the theoretical aspects of algorithms and often very little information +regarding the practical implementation aspects. + +In most cases how an algorithm is explained and how it is actually implemented are two very different concepts. For +example, the Handbook of Applied Cryptography (\textit{HAC}), algorithm 14.7 on page 594, gives a relatively simple +algorithm for performing multiple precision integer addition. However, the description lacks any discussion concerning +the fact that the two integer inputs may be of differing magnitudes. As a result the implementation is not as simple +as the text would lead people to believe. Similarly the division routine (\textit{algorithm 14.20, pp. 598}) does not +discuss how to handle sign or handle the dividend's decreasing magnitude in the main loop (\textit{step \#3}). + +Both texts also do not discuss several key optimal algorithms required such as ``Comba'' and Karatsuba multipliers +and fast modular inversion, which we consider practical oversights. These optimal algorithms are vital to achieve +any form of useful performance in non-trivial applications. + +To solve this problem the focus of this text is on the practical aspects of implementing a multiple precision integer +package. As a case study the ``LibTomMath''\footnote{Available at \url{http://math.libtomcrypt.org}} package is used +to demonstrate algorithms with real implementations\footnote{In the ISO C programming language.} that have been field +tested and work very well. The LibTomMath library is freely available on the Internet for all uses and this text +discusses a very large portion of the inner workings of the library. + +The algorithms that are presented will always include at least one ``pseudo-code'' description followed +by the actual C source code that implements the algorithm. The pseudo-code can be used to implement the same +algorithm in other programming languages as the reader sees fit. + +\section{Discussion and Notation} +\subsection{Notation} +A multiple precision integer of $n$-digits shall be denoted as $x = (x_{n-1} ... x_1 x_0)_{ \beta }$ and represent +the integer $x \equiv \sum_{i=0}^{n-1} x_i\beta^i$. The elements of the array $x$ are said to be the radix $\beta$ digits +of the integer. For example, $x = (1,2,3)_{10}$ would represent the integer +$1\cdot 10^2 + 2\cdot10^1 + 3\cdot10^0 = 123$. + +\index{mp\_int} +The term ``mp\_int'' shall refer to a composite structure which contains the digits of the integer it represents, as well +as auxilary data required to manipulate the data. These additional members are discussed further in section +\ref{sec:MPINT}. For the purposes of this text a ``multiple precision integer'' and an ``mp\_int'' are assumed to be +synonymous. When an algorithm is specified to accept an mp\_int variable it is assumed the various auxliary data members +are present as well. An expression of the type \textit{variablename.item} implies that it should evaluate to the +member named ``item'' of the variable. For example, a string of characters may have a member ``length'' which would +evaluate to the number of characters in the string. If the string $a$ equals ``hello'' then it follows that +$a.length = 5$. + +For certain discussions more generic algorithms are presented to help the reader understand the final algorithm used +to solve a given problem. When an algorithm is described as accepting an integer input it is assumed the input is +a plain integer with no additional multiple-precision members. That is, algorithms that use integers as opposed to +mp\_ints as inputs do not concern themselves with the housekeeping operations required such as memory management. These +algorithms will be used to establish the relevant theory which will subsequently be used to describe a multiple +precision algorithm to solve the same problem. + +\subsection{Precision Notation} +For the purposes of this text a single precision variable must be able to represent integers in the range +$0 \le x < q \beta$ while a double precision variable must be able to represent integers in the range +$0 \le x < q \beta^2$. The variable $\beta$ represents the radix of a single digit of a multiple precision integer and +must be of the form $q^p$ for $q, p \in \Z^+$. The extra radix-$q$ factor allows additions and subtractions to proceed +without truncation of the carry. Since all modern computers are binary, it is assumed that $q$ is two, for all intents +and purposes. + +\index{mp\_digit} \index{mp\_word} +Within the source code that will be presented for each algorithm, the data type \textbf{mp\_digit} will represent +a single precision integer type, while, the data type \textbf{mp\_word} will represent a double precision integer type. In +several algorithms (notably the Comba routines) temporary results will be stored in arrays of double precision mp\_words. +For the purposes of this text $x_j$ will refer to the $j$'th digit of a single precision array and $\hat x_j$ will refer to +the $j$'th digit of a double precision array. Whenever an expression is to be assigned to a double precision +variable it is assumed that all single precision variables are promoted to double precision during the evaluation. +Expressions that are assigned to a single precision variable are truncated to fit within the precision of a single +precision data type. + +For example, if $\beta = 10^2$ a single precision data type may represent a value in the +range $0 \le x < 10^3$, while a double precision data type may represent a value in the range $0 \le x < 10^5$. Let +$a = 23$ and $b = 49$ represent two single precision variables. The single precision product shall be written +as $c \leftarrow a \cdot b$ while the double precision product shall be written as $\hat c \leftarrow a \cdot b$. +In this particular case, $\hat c = 1127$ and $c = 127$. The most significant digit of the product would not fit +in a single precision data type and as a result $c \ne \hat c$. + +\subsection{Algorithm Inputs and Outputs} +Within the algorithm descriptions all variables are assumed to be scalars of either single or double precision +as indicated. The only exception to this rule is when variables have been indicated to be of type mp\_int. This +distinction is important as scalars are often used as array indicies and various other counters. + +\subsection{Mathematical Expressions} +The $\lfloor \mbox{ } \rfloor$ brackets imply an expression truncated to an integer not greater than the expression +itself. For example, $\lfloor 5.7 \rfloor = 5$. Similarly the $\lceil \mbox{ } \rceil$ brackets imply an expression +rounded to an integer not less than the expression itself. For example, $\lceil 5.1 \rceil = 6$. Typically when +the $/$ division symbol is used the intention is to perform an integer division with truncation. For example, +$5/2 = 2$ which will often be written as $\lfloor 5/2 \rfloor = 2$ for clarity. When a value is presented as a +fraction such as $5 \over 2$ a real value division is implied. + +The norm of a multiple precision integer, for example, $\vert \vert x \vert \vert$ will be used to represent the number of digits in the representation +of the integer. For example, $\vert \vert 123 \vert \vert = 3$. + +\subsection{Work Effort} +\index{big-O} +To measure the efficiency of the specified algorithms, a modified big-O notation is used. In this system all +single precision operations are considered to have the same cost\footnote{Except where explicitly noted.}. +That is a single precision addition, multiplication and division are assumed to take the same time to +complete. While this is generally not true in practice, it will simplify the discussions considerably. + +Some algorithms have slight advantages over others which is why some constants will not be removed in +the notation. For example, a normal multiplication requires $O(n^2)$ work while a squaring requires +$O({{n^2 + n}\over 2})$ work. In standard big-O notation these would both be said to be equivalent to $O(n^2)$. However, +in the context of the this text this is not the case as the magnitude of the inputs will typically be rather small. As a +result small constant factors in the work effort will make an observable difference in algorithm efficiency. + +Throughout the discussions various ``work levels'' will be discussed. The term work level shall refer to +the complexity of an algorithm with respect to its time requirements. For example, +$O(1)$, $O(n)$, $O(n^2)$, ..., $O(n^k)$ are various possible work levels that will be of concern in this text. Any +sequence of operations said to be at the $O(n^k)$ work level will often be nested $k-$deep within loops and are performed +$n^k$ times. + +Operations which are deeply nested within algorithms will have a higher big-O rating and be the target of the most +optimizatons. For example, in integer multiplication, by moving the carry propagation from the innermost +$O(n^2)$ nesting to the $O(n)$ nesting level the algorithm becomes vastly more +efficient\footnote{This is known as Comba multiplication.}. + +\section{Exercises} +Within the more advanced chapters a section will be set aside to give the reader some challenging exercises. These +exercises are not designed to be prize winning problems, but instead to be thought provoking. Wherever possible the +problems are forward minded, stating problems that will be answered in subsequent chapters. The reader is encouraged to +finish the exercises as they appear to get a better understanding of the subject material. + +That being said, the problems are designed to affirm knowledge of a particular subject matter. Students in particular +are encouraged to verify they can answer the problems correctly before moving on. + +Similar to the exercises of \cite[pp. ix]{TAOCPV2} these exercises are given a scoring system based on the difficulty of +the problem. However, unlike \cite{TAOCPV2} the problems do not get nearly as hard. The scoring of these +exercises ranges from one (the easiest) to five (the hardest). The following table sumarizes the +scoring. + +\begin{tabular}{cl} +$\left [ 1 \right ]$ & An easy problem that should only take the reader a manner of \\ + & minutes to solve. Usually does not involve much computer time \\ + & to solve. \\ + & \\ +$\left [ 2 \right ]$ & An easy problem that involves a marginal amount of computer \\ + & time usage. Usually requires a program to be written to \\ + & solve the problem. \\ + & \\ +$\left [ 3 \right ]$ & A moderately hard problem that requires a non-trivial amount \\ + & of work. Usually involves trivial research and development of \\ + & new theory from the perspective of a student. \\ + & \\ +$\left [ 4 \right ]$ & A moderately hard problem that involves a non-trivial amount \\ + & of work and research, the solution to which will demonstrate \\ + & a higher mastery of the subject matter. \\ + & \\ +$\left [ 5 \right ]$ & A hard problem that involves concepts that are difficult for a \\ + & novice to solve. Solutions to these problems will demonstrate a \\ + & complete mastery of the given subject. \\ + & \\ +\end{tabular} + +Essentially problems at the first level are meant to be simple questions that the reader can answer quickly without programming a solution or +devising new theory. These problems are quick tests to see if the material is understood. Problems at the second level are also +designed to be easy but will require a program or algorithm to be implemented to arrive at the answer. + +Problems at the third level are meant to be a bit more difficult. Often the answer is fairly obvious but arriving at an exacting solution +requires some thought and skill. These problems will almost always involve devising a new algorithm or implementing a variation of +another algorithm. + +Problems at the fourth level are meant to be even more difficult as well as involve some research. The reader will most +likely not know the answer right away, nor will the text provide the exact details of the answer until a subsequent +chapter. Problems at the fifth level are meant to be the hardest problems relative to all the other problems in the +chapter. People who can correctly answer fifth level problems have a mastery of the subject matter at hand. + +Often problems will be tied together. The purpose of this is to start a chain of thought that will be discussed in future chapters. The reader +is encouraged to answer the follow-up problems and try to draw the relevance of problems. + +\chapter{Introduction to LibTomMath} + +\section{What is LibTomMath?} +LibTomMath is a free and open source multiple precision library written in portable ISO C. By portable it is +meant that the library does not contain any code that is computer platform dependent or otherwise problematic to use on +any given platform. + +The library has been successfully tested under numerous operating systems including Unix\footnote{All of these +trademarks belong to their respective rightful owners.}, MacOS, Windows, Linux, PalmOS and on standalone hardware such +as the Gameboy Advance. The library is designed to contain enough functionality to be able to develop applications such +as public key cryptosystems and still maintain a relatively small footprint. + +\section{Goals of LibTomMath} + +Libraries which obtain the most efficiency are rarely written in a high level programming language such as C. However, +even though this library is written entirely in ISO C, considerable care has been taken to optimize the algorithm implementations within the +library. Specifically the code has been written to work well with the GNU C Compiler (\textit{GCC}) on both x86 and ARM +processors. Wherever possible, highly efficient algorithms, such as Karatsuba multiplication, sliding window +exponentiation and Montgomery reduction have been provided to make the library more efficient. + +Even with the nearly optimal and specialized algorithms that have been included the Application Programing Interface +(\textit{API}) has been kept as simple as possible. Often generic place holder routines will make use of specialized +algorithms automatically without the developer's specific attention. One such example is the generic multiplication +algorithm \textbf{mp\_mul()} which will automatically use Karatsuba, Toom-Cook, Comba or baseline multiplication +based on the magnitude of the inputs and the configuration of the library. + +Making LibTomMath as efficient as possible is not the only goal of the LibTomMath project. Ideally the library should +be source compatible with another popular library which makes it more attractive for developers to use. In this case the +MPI library was used as a API template for all the basic functions. MPI was chosen as the template because it is +another library that fits in the same niche as LibTomMath. Even though LibTomMath uses MPI as the template for the +function names and argument passing conventions, LibTomMath has been written from scratch by Tom St Denis. + +The project is also meant to act as a learning tool for students, the logic being that no easy-to-follow ``bignum'' +library exists which can be used to teach computer science students how to perform fast and reliable multiple precision +arithmetic. To this end the source code has been given quite a few comments and algorithm discussion points. + +\section{Choice of LibTomMath} +LibTomMath was chosen as the case study of this text not only because the author of both projects is one and the same but +for more worthy reasons. Other libraries such as GMP \cite{GMP}, MPI \cite{MPI}, LIP \cite{LIP} and OpenSSL +\cite{OPENSSL} have multiple precision integer arithmetic routines but would not be ideal for this text for +reasons that will be explained in the following sub-sections. + +\subsection{Code Base} +The LibTomMath code base is all portable ISO C source code. This means that there are no platform dependent conditional +segments of code littered throughout the source. This clean and uncluttered approach to the library means that a +developer can more readily discern the true intent of a given section of source code without trying to keep track of +what conditional code will be used. + +The code base of LibTomMath is also well organized. Each function is in its own separate source code file +which allows the reader to find a given function very quickly. When compiled with GCC for the x86 processor the entire +library is a mere 87,760 bytes ($116,182$ bytes for ARMv4 processors). This includes every single function +LibTomMath provides from basic arithmetic to various number theoretic functions such as modular exponentiation, various +reduction algorithms and Jacobi symbol computation. + +By comparison MPI, which has fewer functions than LibTomMath, compiled with the same conditions occupied 45,429 bytes +($54,536$ for ARMv4). GMP which has a rather large collection of functions with the default configuration on an +x86 Athlon is 2,950,688 bytes. Note that while LibTomMath has fewer functions than GMP it has been used as the sole basis +for several public key cryptosystems without having to seek additional outside functions to supplement the library. + +\subsection{API Simplicity} +LibTomMath is designed after the MPI library and shares the API design. Quite often programs that use MPI will build +with LibTomMath without change. The function names correlate directly to the action they perform. Almost all of the +functions share the same parameter passing convention. The learning curve is fairly shallow with the API provided +which is an extremely valuable benefit for the student and developer alike. + +The LIP library is an example of a library with an API that is awkward to work with. LIP uses function names that are often ``compressed'' to +illegible short hand. LibTomMath does not share this characteristic. + +\subsection{Optimizations} +While LibTomMath is certainly not the fastest library (GMP often beats LibTomMath by a factor of two) it does +feature a set of optimal algorithms for tasks such as modular reduction, exponentiation, multiplication and squaring. GMP +and LIP also feature such optimizations while MPI only uses baseline algorithms with no optimizations. GMP lacks a few +of the additional modular reduction optimizations that LibTomMath features\footnote{At the time of this writing GMP +only had Barrett and Montgomery modular reduction algorithms.}. + +LibTomMath is almost always an order of magnitude faster than the MPI library at computationally expensive tasks such as modular +exponentiation. In the grand scheme of ``bignum'' libraries LibTomMath is faster than the average library and usually +slower than the best libraries such as GMP and OpenSSL by only a small factor. + +\subsection{Portability and Stability} +LibTomMath will build ``out of the box'' on any platform equipped with a modern version of the GNU C Compiler +(\textit{GCC}). This means that without changes the library will build without configuration or setting up any +variables. LIP and MPI will build ``out of the box'' as well but have numerous known bugs. Most notably the author of +MPI has recently stopped working on his library and LIP has long since been discontinued. + +GMP requires a configuration script to run and will not build out of the box. GMP and LibTomMath are still in active +development and are very stable across a variety of platforms. + +\subsection{Choice} +LibTomMath is a relatively compact, well documented, highly optimized and portable library which seems only natural for +the case study of this text. Various source files from the LibTomMath project will be included within the text. However, +the reader is encouraged to download their own copy of the library to actually be able to work with the library. + +\chapter{Getting Started} +\section{Library Basics} +The trick to writing any useful library of source code is to build a solid foundation and work outwards from it. First, +a problem along with allowable solution parameters should be identified and analyzed. In this particular case the +inability to accomodate multiple precision integers is the problem. Futhermore, the solution must be written +as portable source code that is reasonably efficient across several different computer platforms. + +After a foundation is formed the remainder of the library can be designed and implemented in a hierarchical fashion. +That is, to implement the lowest level dependencies first and work towards the most abstract functions last. For example, +before implementing a modular exponentiation algorithm one would implement a modular reduction algorithm. +By building outwards from a base foundation instead of using a parallel design methodology the resulting project is +highly modular. Being highly modular is a desirable property of any project as it often means the resulting product +has a small footprint and updates are easy to perform. + +Usually when I start a project I will begin with the header file. I define the data types I think I will need and +prototype the initial functions that are not dependent on other functions (within the library). After I +implement these base functions I prototype more dependent functions and implement them. The process repeats until +I implement all of the functions I require. For example, in the case of LibTomMath I implemented functions such as +mp\_init() well before I implemented mp\_mul() and even further before I implemented mp\_exptmod(). As an example as to +why this design works note that the Karatsuba and Toom-Cook multipliers were written \textit{after} the +dependent function mp\_exptmod() was written. Adding the new multiplication algorithms did not require changes to the +mp\_exptmod() function itself and lowered the total cost of ownership (\textit{so to speak}) and of development +for new algorithms. This methodology allows new algorithms to be tested in a complete framework with relative ease. + +\begin{center} +\begin{figure}[here] +\includegraphics{pics/design_process} +\caption{Design Flow of the First Few Original LibTomMath Functions.} +\label{pic:design_process} +\end{figure} +\end{center} + +Only after the majority of the functions were in place did I pursue a less hierarchical approach to auditing and optimizing +the source code. For example, one day I may audit the multipliers and the next day the polynomial basis functions. + +It only makes sense to begin the text with the preliminary data types and support algorithms required as well. +This chapter discusses the core algorithms of the library which are the dependents for every other algorithm. + +\section{What is a Multiple Precision Integer?} +Recall that most programming languages, in particular ISO C \cite{ISOC}, only have fixed precision data types that on their own cannot +be used to represent values larger than their precision will allow. The purpose of multiple precision algorithms is +to use fixed precision data types to create and manipulate multiple precision integers which may represent values +that are very large. + +As a well known analogy, school children are taught how to form numbers larger than nine by prepending more radix ten digits. In the decimal system +the largest single digit value is $9$. However, by concatenating digits together larger numbers may be represented. Newly prepended digits +(\textit{to the left}) are said to be in a different power of ten column. That is, the number $123$ can be described as having a $1$ in the hundreds +column, $2$ in the tens column and $3$ in the ones column. Or more formally $123 = 1 \cdot 10^2 + 2 \cdot 10^1 + 3 \cdot 10^0$. Computer based +multiple precision arithmetic is essentially the same concept. Larger integers are represented by adjoining fixed +precision computer words with the exception that a different radix is used. + +What most people probably do not think about explicitly are the various other attributes that describe a multiple precision +integer. For example, the integer $154_{10}$ has two immediately obvious properties. First, the integer is positive, +that is the sign of this particular integer is positive as opposed to negative. Second, the integer has three digits in +its representation. There is an additional property that the integer posesses that does not concern pencil-and-paper +arithmetic. The third property is how many digits placeholders are available to hold the integer. + +The human analogy of this third property is ensuring there is enough space on the paper to write the integer. For example, +if one starts writing a large number too far to the right on a piece of paper they will have to erase it and move left. +Similarly, computer algorithms must maintain strict control over memory usage to ensure that the digits of an integer +will not exceed the allowed boundaries. These three properties make up what is known as a multiple precision +integer or mp\_int for short. + +\subsection{The mp\_int Structure} +\label{sec:MPINT} +The mp\_int structure is the ISO C based manifestation of what represents a multiple precision integer. The ISO C standard does not provide for +any such data type but it does provide for making composite data types known as structures. The following is the structure definition +used within LibTomMath. + +\index{mp\_int} +\begin{verbatim} +typedef struct { + int used, alloc, sign; + mp_digit *dp; +} mp_int; +\end{verbatim} + +The mp\_int structure can be broken down as follows. + +\begin{enumerate} +\item The \textbf{used} parameter denotes how many digits of the array \textbf{dp} contain the digits used to represent +a given integer. The \textbf{used} count must be positive (or zero) and may not exceed the \textbf{alloc} count. + +\item The \textbf{alloc} parameter denotes how +many digits are available in the array to use by functions before it has to increase in size. When the \textbf{used} count +of a result would exceed the \textbf{alloc} count all of the algorithms will automatically increase the size of the +array to accommodate the precision of the result. + +\item The pointer \textbf{dp} points to a dynamically allocated array of digits that represent the given multiple +precision integer. It is padded with $(\textbf{alloc} - \textbf{used})$ zero digits. The array is maintained in a least +significant digit order. As a pencil and paper analogy the array is organized such that the right most digits are stored +first starting at the location indexed by zero\footnote{In C all arrays begin at zero.} in the array. For example, +if \textbf{dp} contains $\lbrace a, b, c, \ldots \rbrace$ where \textbf{dp}$_0 = a$, \textbf{dp}$_1 = b$, \textbf{dp}$_2 = c$, $\ldots$ then +it would represent the integer $a + b\beta + c\beta^2 + \ldots$ + +\index{MP\_ZPOS} \index{MP\_NEG} +\item The \textbf{sign} parameter denotes the sign as either zero/positive (\textbf{MP\_ZPOS}) or negative (\textbf{MP\_NEG}). +\end{enumerate} + +\subsubsection{Valid mp\_int Structures} +Several rules are placed on the state of an mp\_int structure and are assumed to be followed for reasons of efficiency. +The only exceptions are when the structure is passed to initialization functions such as mp\_init() and mp\_init\_copy(). + +\begin{enumerate} +\item The value of \textbf{alloc} may not be less than one. That is \textbf{dp} always points to a previously allocated +array of digits. +\item The value of \textbf{used} may not exceed \textbf{alloc} and must be greater than or equal to zero. +\item The value of \textbf{used} implies the digit at index $(used - 1)$ of the \textbf{dp} array is non-zero. That is, +leading zero digits in the most significant positions must be trimmed. + \begin{enumerate} + \item Digits in the \textbf{dp} array at and above the \textbf{used} location must be zero. + \end{enumerate} +\item The value of \textbf{sign} must be \textbf{MP\_ZPOS} if \textbf{used} is zero; +this represents the mp\_int value of zero. +\end{enumerate} + +\section{Argument Passing} +A convention of argument passing must be adopted early on in the development of any library. Making the function +prototypes consistent will help eliminate many headaches in the future as the library grows to significant complexity. +In LibTomMath the multiple precision integer functions accept parameters from left to right as pointers to mp\_int +structures. That means that the source (input) operands are placed on the left and the destination (output) on the right. +Consider the following examples. + +\begin{verbatim} + mp_mul(&a, &b, &c); /* c = a * b */ + mp_add(&a, &b, &a); /* a = a + b */ + mp_sqr(&a, &b); /* b = a * a */ +\end{verbatim} + +The left to right order is a fairly natural way to implement the functions since it lets the developer read aloud the +functions and make sense of them. For example, the first function would read ``multiply a and b and store in c''. + +Certain libraries (\textit{LIP by Lenstra for instance}) accept parameters the other way around, to mimic the order +of assignment expressions. That is, the destination (output) is on the left and arguments (inputs) are on the right. In +truth, it is entirely a matter of preference. In the case of LibTomMath the convention from the MPI library has been +adopted. + +Another very useful design consideration, provided for in LibTomMath, is whether to allow argument sources to also be a +destination. For example, the second example (\textit{mp\_add}) adds $a$ to $b$ and stores in $a$. This is an important +feature to implement since it allows the calling functions to cut down on the number of variables it must maintain. +However, to implement this feature specific care has to be given to ensure the destination is not modified before the +source is fully read. + +\section{Return Values} +A well implemented application, no matter what its purpose, should trap as many runtime errors as possible and return them +to the caller. By catching runtime errors a library can be guaranteed to prevent undefined behaviour. However, the end +developer can still manage to cause a library to crash. For example, by passing an invalid pointer an application may +fault by dereferencing memory not owned by the application. + +In the case of LibTomMath the only errors that are checked for are related to inappropriate inputs (division by zero for +instance) and memory allocation errors. It will not check that the mp\_int passed to any function is valid nor +will it check pointers for validity. Any function that can cause a runtime error will return an error code as an +\textbf{int} data type with one of the following values. + +\index{MP\_OKAY} \index{MP\_VAL} \index{MP\_MEM} +\begin{center} +\begin{tabular}{|l|l|} +\hline \textbf{Value} & \textbf{Meaning} \\ +\hline \textbf{MP\_OKAY} & The function was successful \\ +\hline \textbf{MP\_VAL} & One of the input value(s) was invalid \\ +\hline \textbf{MP\_MEM} & The function ran out of heap memory \\ +\hline +\end{tabular} +\end{center} + +When an error is detected within a function it should free any memory it allocated, often during the initialization of +temporary mp\_ints, and return as soon as possible. The goal is to leave the system in the same state it was when the +function was called. Error checking with this style of API is fairly simple. + +\begin{verbatim} + int err; + if ((err = mp_add(&a, &b, &c)) != MP_OKAY) { + printf("Error: %s\n", mp_error_to_string(err)); + exit(EXIT_FAILURE); + } +\end{verbatim} + +The GMP \cite{GMP} library uses C style \textit{signals} to flag errors which is of questionable use. Not all errors are fatal +and it was not deemed ideal by the author of LibTomMath to force developers to have signal handlers for such cases. + +\section{Initialization and Clearing} +The logical starting point when actually writing multiple precision integer functions is the initialization and +clearing of the mp\_int structures. These two algorithms will be used by the majority of the higher level algorithms. + +Given the basic mp\_int structure an initialization routine must first allocate memory to hold the digits of +the integer. Often it is optimal to allocate a sufficiently large pre-set number of digits even though +the initial integer will represent zero. If only a single digit were allocated quite a few subsequent re-allocations +would occur when operations are performed on the integers. There is a tradeoff between how many default digits to allocate +and how many re-allocations are tolerable. Obviously allocating an excessive amount of digits initially will waste +memory and become unmanageable. + +If the memory for the digits has been successfully allocated then the rest of the members of the structure must +be initialized. Since the initial state of an mp\_int is to represent the zero integer, the allocated digits must be set +to zero. The \textbf{used} count set to zero and \textbf{sign} set to \textbf{MP\_ZPOS}. + +\subsection{Initializing an mp\_int} +An mp\_int is said to be initialized if it is set to a valid, preferably default, state such that all of the members of the +structure are set to valid values. The mp\_init algorithm will perform such an action. + +\begin{figure}[here] +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_init}. \\ +\textbf{Input}. An mp\_int $a$ \\ +\textbf{Output}. Allocate memory and initialize $a$ to a known valid mp\_int state. \\ +\hline \\ +1. Allocate memory for \textbf{MP\_PREC} digits. \\ +2. If the allocation failed return(\textit{MP\_MEM}) \\ +3. for $n$ from $0$ to $MP\_PREC - 1$ do \\ +\hspace{3mm}3.1 $a_n \leftarrow 0$\\ +4. $a.sign \leftarrow MP\_ZPOS$\\ +5. $a.used \leftarrow 0$\\ +6. $a.alloc \leftarrow MP\_PREC$\\ +7. Return(\textit{MP\_OKAY})\\ +\hline +\end{tabular} +\end{center} +\caption{Algorithm mp\_init} +\end{figure} + +\textbf{Algorithm mp\_init.} +The \textbf{MP\_PREC} name represents a constant\footnote{Defined in the ``tommath.h'' header file within LibTomMath.} +used to dictate the minimum precision of allocated mp\_int integers. Ideally, it is at least equal to $32$ since for most +purposes that will be more than enough. + +Memory for the default number of digits is allocated first. If the allocation fails the algorithm returns immediately +with the \textbf{MP\_MEM} error code. If the allocation succeeds the remaining members of the mp\_int structure +must be initialized to reflect the default initial state. + +The allocated digits are all set to zero (step three) to ensure they are in a known state. The \textbf{sign}, \textbf{used} +and \textbf{alloc} are subsequently initialized to represent the zero integer. By step seven the algorithm returns a success +code and the mp\_int $a$ has been successfully initialized to a valid state representing the integer zero. + +\textbf{Remark.} +This function introduces the idiosyncrasy that all iterative loops, commonly initiated with the ``for'' keyword, iterate incrementally +when the ``to'' keyword is placed between two expressions. For example, ``for $a$ from $b$ to $c$ do'' means that +a subsequent expression (or body of expressions) are to be evaluated upto $c - b$ times so long as $b \le c$. In each +iteration the variable $a$ is substituted for a new integer that lies inclusively between $b$ and $c$. If $b > c$ occured +the loop would not iterate. By contrast if the ``downto'' keyword were used in place of ``to'' the loop would iterate +decrementally. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_init.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* init a new bigint */ +018 int mp_init (mp_int * a) +019 \{ +020 /* allocate memory required and clear it */ +021 a->dp = OPT_CAST XCALLOC (sizeof (mp_digit), MP_PREC); +022 if (a->dp == NULL) \{ +023 return MP_MEM; +024 \} +025 +026 /* set the used to zero, allocated digits to the default precision +027 * and sign to positive */ +028 a->used = 0; +029 a->alloc = MP_PREC; +030 a->sign = MP_ZPOS; +031 +032 return MP_OKAY; +033 \} +\end{alltt} +\end{small} + +One immediate observation of this initializtion function is that it does not return a pointer to a mp\_int structure. It +is assumed that the caller has already allocated memory for the mp\_int structure, typically on the application stack. The +call to mp\_init() is used only to initialize the members of the structure to a known default state. + +Before any of the other members of the structure are initialized memory from the application heap is allocated with +the calloc() function (line @22,calloc@). The size of the allocated memory is large enough to hold \textbf{MP\_PREC} +mp\_digit variables. The calloc() function is used instead\footnote{calloc() will allocate memory in the same +manner as malloc() except that it also sets the contents to zero upon successfully allocating the memory.} of malloc() +since digits have to be set to zero for the function to finish correctly. The \textbf{OPT\_CAST} token is a macro +definition which will turn into a cast from void * to mp\_digit * for C++ compilers. It is not required for C compilers. + +After the memory has been successfully allocated the remainder of the members are initialized +(lines 28 through 30) to their respective default states. At this point the algorithm has succeeded and +a success code is returned to the calling function. + +If this function returns \textbf{MP\_OKAY} it is safe to assume the mp\_int structure has been properly initialized and +is safe to use with other functions within the library. + +\subsection{Clearing an mp\_int} +When an mp\_int is no longer required by the application, the memory that has been allocated for its digits must be +returned to the application's memory pool with the mp\_clear algorithm. + +\begin{figure}[here] +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_clear}. \\ +\textbf{Input}. An mp\_int $a$ \\ +\textbf{Output}. The memory for $a$ is freed for reuse. \\ +\hline \\ +1. If $a$ has been previously freed then return(\textit{MP\_OKAY}). \\ +2. for $n$ from 0 to $a.used - 1$ do \\ +\hspace{3mm}2.1 $a_n \leftarrow 0$ \\ +3. Free the memory allocated for the digits of $a$. \\ +4. $a.used \leftarrow 0$ \\ +5. $a.alloc \leftarrow 0$ \\ +6. $a.sign \leftarrow MP\_ZPOS$ \\ +7. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\caption{Algorithm mp\_clear} +\end{figure} + +\textbf{Algorithm mp\_clear.} +This algorithm releases the memory allocated for an mp\_int back into the memory pool for reuse. It is designed +such that a given mp\_int structure can be cleared multiple times between initializations without attempting to +free the memory twice\footnote{In ISO C for example, calling free() twice on the same memory block causes undefinied +behaviour.}. + +The first step determines if the mp\_int structure has been marked as free already. If it has, the algorithm returns +success immediately as no further actions are required. Otherwise, the algorithm will proceed to put the structure +in a known empty and otherwise invalid state. First the digits of the mp\_int are set to zero. The memory that has been allocated for the +digits is then freed. The \textbf{used} and \textbf{alloc} counts are both set to zero and the \textbf{sign} set to +\textbf{MP\_ZPOS}. This known fixed state for cleared mp\_int structures will make debuging easier for the end +developer. That is, if they spot (via their debugger) an mp\_int they are using that is in this state it will be +obvious that they erroneously and prematurely cleared the mp\_int structure. + +Note that once an mp\_int has been cleared the mp\_int structure is no longer in a valid state for any other algorithm +with the exception of algorithms mp\_init, mp\_init\_copy, mp\_init\_size and mp\_clear. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_clear.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* clear one (frees) */ +018 void +019 mp_clear (mp_int * a) +020 \{ +021 /* only do anything if a hasn't been freed previously */ +022 if (a->dp != NULL) \{ +023 /* first zero the digits */ +024 memset (a->dp, 0, sizeof (mp_digit) * a->used); +025 +026 /* free ram */ +027 XFREE(a->dp); +028 +029 /* reset members to make debugging easier */ +030 a->dp = NULL; +031 a->alloc = a->used = 0; +032 a->sign = MP_ZPOS; +033 \} +034 \} +\end{alltt} +\end{small} + +The ``if'' statement (line 22) prevents the heap from being corrupted if a user double-frees an +mp\_int. This is because once the memory is freed the pointer is set to \textbf{NULL} (line 30). + +Without the check, code that accidentally calls mp\_clear twice for a given mp\_int structure would try to free the memory +allocated for the digits twice. This may cause some C libraries to signal a fault. By setting the pointer to +\textbf{NULL} it helps debug code that may inadvertently free the mp\_int before it is truly not needed, because attempts +to reference digits should fail immediately. The allocated digits are set to zero before being freed (line 24). +This is ideal for cryptographic situations where the integer that the mp\_int represents might need to be kept a secret. + +\section{Maintenance Algorithms} + +The previous sections describes how to initialize and clear an mp\_int structure. To further support operations +that are to be performed on mp\_int structures (such as addition and multiplication) the dependent algorithms must be +able to augment the precision of an mp\_int and +initialize mp\_ints with differing initial conditions. + +These algorithms complete the set of low level algorithms required to work with mp\_int structures in the higher level +algorithms such as addition, multiplication and modular exponentiation. + +\subsection{Augmenting an mp\_int's Precision} +When storing a value in an mp\_int structure, a sufficient number of digits must be available to accomodate the entire +result of an operation without loss of precision. Quite often the size of the array given by the \textbf{alloc} member +is large enough to simply increase the \textbf{used} digit count. However, when the size of the array is too small it +must be re-sized appropriately to accomodate the result. The mp\_grow algorithm will provide this functionality. + +\newpage\begin{figure}[here] +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_grow}. \\ +\textbf{Input}. An mp\_int $a$ and an integer $b$. \\ +\textbf{Output}. $a$ is expanded to accomodate $b$ digits. \\ +\hline \\ +1. if $a.alloc \ge b$ then return(\textit{MP\_OKAY}) \\ +2. $u \leftarrow b\mbox{ (mod }MP\_PREC\mbox{)}$ \\ +3. $v \leftarrow b + 2 \cdot MP\_PREC - u$ \\ +4. Re-Allocate the array of digits $a$ to size $v$ \\ +5. If the allocation failed then return(\textit{MP\_MEM}). \\ +6. for n from a.alloc to $v - 1$ do \\ +\hspace{+3mm}6.1 $a_n \leftarrow 0$ \\ +7. $a.alloc \leftarrow v$ \\ +8. Return(\textit{MP\_OKAY}) \\ +\hline +\end{tabular} +\end{center} +\caption{Algorithm mp\_grow} +\end{figure} + +\textbf{Algorithm mp\_grow.} +It is ideal to prevent re-allocations from being performed if they are not required (step one). This is useful to +prevent mp\_ints from growing excessively in code that erroneously calls mp\_grow. + +The requested digit count is padded up to next multiple of \textbf{MP\_PREC} plus an additional \textbf{MP\_PREC} (steps two and three). +This helps prevent many trivial reallocations that would grow an mp\_int by trivially small values. + +It is assumed that the reallocation (step four) leaves the lower $a.alloc$ digits of the mp\_int intact. This is much +akin to how the \textit{realloc} function from the standard C library works. Since the newly allocated digits are +assumed to contain undefined values they are initially set to zero. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_grow.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* grow as required */ +018 int mp_grow (mp_int * a, int size) +019 \{ +020 int i; +021 mp_digit *tmp; +022 +023 /* if the alloc size is smaller alloc more ram */ +024 if (a->alloc < size) \{ +025 /* ensure there are always at least MP_PREC digits extra on top */ +026 size += (MP_PREC * 2) - (size % MP_PREC); +027 +028 /* reallocate the array a->dp +029 * +030 * We store the return in a temporary variable +031 * in case the operation failed we don't want +032 * to overwrite the dp member of a. +033 */ +034 tmp = OPT_CAST XREALLOC (a->dp, sizeof (mp_digit) * size); +035 if (tmp == NULL) \{ +036 /* reallocation failed but "a" is still valid [can be freed] */ +037 return MP_MEM; +038 \} +039 +040 /* reallocation succeeded so set a->dp */ +041 a->dp = tmp; +042 +043 /* zero excess digits */ +044 i = a->alloc; +045 a->alloc = size; +046 for (; i < a->alloc; i++) \{ +047 a->dp[i] = 0; +048 \} +049 \} +050 return MP_OKAY; +051 \} +\end{alltt} +\end{small} + +The first step is to see if we actually need to perform a re-allocation at all (line 24). If a reallocation +must occur the digit count is padded upwards to help prevent many trivial reallocations (line 26). Next the reallocation is performed +and the return of realloc() is stored in a temporary pointer named $tmp$ (line 36). The return is stored in a temporary +instead of $a.dp$ to prevent the code from losing the original pointer in case the reallocation fails. Had the return been stored +in $a.dp$ instead there would be no way to reclaim the heap originally used. + +If the reallocation fails the function will return \textbf{MP\_MEM} (line 37), otherwise, the value of $tmp$ is assigned +to the pointer $a.dp$ and the function continues. A simple for loop from line 46 to line 51 will zero all digits +that were above the old \textbf{alloc} limit to make sure the integer is in a known state. + +\subsection{Initializing Variable Precision mp\_ints} +Occasionally the number of digits required will be known in advance of an initialization, based on, for example, the size +of input mp\_ints to a given algorithm. The purpose of algorithm mp\_init\_size is similar to mp\_init except that it +will allocate \textit{at least} a specified number of digits. + +\begin{figure}[here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_init\_size}. \\ +\textbf{Input}. An mp\_int $a$ and the requested number of digits $b$. \\ +\textbf{Output}. $a$ is initialized to hold at least $b$ digits. \\ +\hline \\ +1. $u \leftarrow b \mbox{ (mod }MP\_PREC\mbox{)}$ \\ +2. $v \leftarrow b + 2 \cdot MP\_PREC - u$ \\ +3. Allocate $v$ digits. \\ +4. for $n$ from $0$ to $v - 1$ do \\ +\hspace{3mm}4.1 $a_n \leftarrow 0$ \\ +5. $a.sign \leftarrow MP\_ZPOS$\\ +6. $a.used \leftarrow 0$\\ +7. $a.alloc \leftarrow v$\\ +8. Return(\textit{MP\_OKAY})\\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_init\_size} +\end{figure} + +\textbf{Algorithm mp\_init\_size.} +This algorithm will initialize an mp\_int structure $a$ like algorithm mp\_init with the exception that the number of +digits allocated can be controlled by the second input argument $b$. The input size is padded upwards so it is a +multiple of \textbf{MP\_PREC} plus an additional \textbf{MP\_PREC} digits. This padding is used to prevent trivial +allocations from becoming a bottleneck in the rest of the algorithms. + +Like algorithm mp\_init, the mp\_int structure is initialized to a default state representing the integer zero. This +particular algorithm is useful if it is known ahead of time the approximate size of the input. If the approximation is +correct no further memory re-allocations are required to work with the mp\_int. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_init\_size.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* init an mp_init for a given size */ +018 int mp_init_size (mp_int * a, int size) +019 \{ +020 /* pad size so there are always extra digits */ +021 size += (MP_PREC * 2) - (size % MP_PREC); +022 +023 /* alloc mem */ +024 a->dp = OPT_CAST XCALLOC (sizeof (mp_digit), size); +025 if (a->dp == NULL) \{ +026 return MP_MEM; +027 \} +028 a->used = 0; +029 a->alloc = size; +030 a->sign = MP_ZPOS; +031 +032 return MP_OKAY; +033 \} +\end{alltt} +\end{small} + +The number of digits $b$ requested is padded (line 21) by first augmenting it to the next multiple of +\textbf{MP\_PREC} and then adding \textbf{MP\_PREC} to the result. If the memory can be successfully allocated the +mp\_int is placed in a default state representing the integer zero. Otherwise, the error code \textbf{MP\_MEM} will be +returned (line 26). + +The digits are allocated and set to zero at the same time with the calloc() function (line @25,calloc@). The +\textbf{used} count is set to zero, the \textbf{alloc} count set to the padded digit count and the \textbf{sign} flag set +to \textbf{MP\_ZPOS} to achieve a default valid mp\_int state (lines 28, 29 and 30). If the function +returns succesfully then it is correct to assume that the mp\_int structure is in a valid state for the remainder of the +functions to work with. + +\subsection{Multiple Integer Initializations and Clearings} +Occasionally a function will require a series of mp\_int data types to be made available simultaneously. +The purpose of algorithm mp\_init\_multi is to initialize a variable length array of mp\_int structures in a single +statement. It is essentially a shortcut to multiple initializations. + +\newpage\begin{figure}[here] +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_init\_multi}. \\ +\textbf{Input}. Variable length array $V_k$ of mp\_int variables of length $k$. \\ +\textbf{Output}. The array is initialized such that each mp\_int of $V_k$ is ready to use. \\ +\hline \\ +1. for $n$ from 0 to $k - 1$ do \\ +\hspace{+3mm}1.1. Initialize the mp\_int $V_n$ (\textit{mp\_init}) \\ +\hspace{+3mm}1.2. If initialization failed then do \\ +\hspace{+6mm}1.2.1. for $j$ from $0$ to $n$ do \\ +\hspace{+9mm}1.2.1.1. Free the mp\_int $V_j$ (\textit{mp\_clear}) \\ +\hspace{+6mm}1.2.2. Return(\textit{MP\_MEM}) \\ +2. Return(\textit{MP\_OKAY}) \\ +\hline +\end{tabular} +\end{center} +\caption{Algorithm mp\_init\_multi} +\end{figure} + +\textbf{Algorithm mp\_init\_multi.} +The algorithm will initialize the array of mp\_int variables one at a time. If a runtime error has been detected +(\textit{step 1.2}) all of the previously initialized variables are cleared. The goal is an ``all or nothing'' +initialization which allows for quick recovery from runtime errors. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_init\_multi.c +\vspace{-3mm} +\begin{alltt} +016 #include +017 +018 int mp_init_multi(mp_int *mp, ...) +019 \{ +020 mp_err res = MP_OKAY; /* Assume ok until proven otherwise */ +021 int n = 0; /* Number of ok inits */ +022 mp_int* cur_arg = mp; +023 va_list args; +024 +025 va_start(args, mp); /* init args to next argument from caller */ +026 while (cur_arg != NULL) \{ +027 if (mp_init(cur_arg) != MP_OKAY) \{ +028 /* Oops - error! Back-track and mp_clear what we already +029 succeeded in init-ing, then return error. +030 */ +031 va_list clean_args; +032 +033 /* end the current list */ +034 va_end(args); +035 +036 /* now start cleaning up */ +037 cur_arg = mp; +038 va_start(clean_args, mp); +039 while (n--) \{ +040 mp_clear(cur_arg); +041 cur_arg = va_arg(clean_args, mp_int*); +042 \} +043 va_end(clean_args); +044 res = MP_MEM; +045 break; +046 \} +047 n++; +048 cur_arg = va_arg(args, mp_int*); +049 \} +050 va_end(args); +051 return res; /* Assumed ok, if error flagged above. */ +052 \} +053 +\end{alltt} +\end{small} + +This function intializes a variable length list of mp\_int structure pointers. However, instead of having the mp\_int +structures in an actual C array they are simply passed as arguments to the function. This function makes use of the +``...'' argument syntax of the C programming language. The list is terminated with a final \textbf{NULL} argument +appended on the right. + +The function uses the ``stdarg.h'' \textit{va} functions to step portably through the arguments to the function. A count +$n$ of succesfully initialized mp\_int structures is maintained (line 47) such that if a failure does occur, +the algorithm can backtrack and free the previously initialized structures (lines 27 to 46). + + +\subsection{Clamping Excess Digits} +When a function anticipates a result will be $n$ digits it is simpler to assume this is true within the body of +the function instead of checking during the computation. For example, a multiplication of a $i$ digit number by a +$j$ digit produces a result of at most $i + j$ digits. It is entirely possible that the result is $i + j - 1$ +though, with no final carry into the last position. However, suppose the destination had to be first expanded +(\textit{via mp\_grow}) to accomodate $i + j - 1$ digits than further expanded to accomodate the final carry. +That would be a considerable waste of time since heap operations are relatively slow. + +The ideal solution is to always assume the result is $i + j$ and fix up the \textbf{used} count after the function +terminates. This way a single heap operation (\textit{at most}) is required. However, if the result was not checked +there would be an excess high order zero digit. + +For example, suppose the product of two integers was $x_n = (0x_{n-1}x_{n-2}...x_0)_{\beta}$. The leading zero digit +will not contribute to the precision of the result. In fact, through subsequent operations more leading zero digits would +accumulate to the point the size of the integer would be prohibitive. As a result even though the precision is very +low the representation is excessively large. + +The mp\_clamp algorithm is designed to solve this very problem. It will trim high-order zeros by decrementing the +\textbf{used} count until a non-zero most significant digit is found. Also in this system, zero is considered to be a +positive number which means that if the \textbf{used} count is decremented to zero, the sign must be set to +\textbf{MP\_ZPOS}. + +\begin{figure}[here] +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_clamp}. \\ +\textbf{Input}. An mp\_int $a$ \\ +\textbf{Output}. Any excess leading zero digits of $a$ are removed \\ +\hline \\ +1. while $a.used > 0$ and $a_{a.used - 1} = 0$ do \\ +\hspace{+3mm}1.1 $a.used \leftarrow a.used - 1$ \\ +2. if $a.used = 0$ then do \\ +\hspace{+3mm}2.1 $a.sign \leftarrow MP\_ZPOS$ \\ +\hline \\ +\end{tabular} +\end{center} +\caption{Algorithm mp\_clamp} +\end{figure} + +\textbf{Algorithm mp\_clamp.} +As can be expected this algorithm is very simple. The loop on step one is expected to iterate only once or twice at +the most. For example, this will happen in cases where there is not a carry to fill the last position. Step two fixes the sign for +when all of the digits are zero to ensure that the mp\_int is valid at all times. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_clamp.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* trim unused digits +018 * +019 * This is used to ensure that leading zero digits are +020 * trimed and the leading "used" digit will be non-zero +021 * Typically very fast. Also fixes the sign if there +022 * are no more leading digits +023 */ +024 void +025 mp_clamp (mp_int * a) +026 \{ +027 /* decrease used while the most significant digit is +028 * zero. +029 */ +030 while (a->used > 0 && a->dp[a->used - 1] == 0) \{ +031 --(a->used); +032 \} +033 +034 /* reset the sign flag if used == 0 */ +035 if (a->used == 0) \{ +036 a->sign = MP_ZPOS; +037 \} +038 \} +\end{alltt} +\end{small} + +Note on line 27 how to test for the \textbf{used} count is made on the left of the \&\& operator. In the C programming +language the terms to \&\& are evaluated left to right with a boolean short-circuit if any condition fails. This is +important since if the \textbf{used} is zero the test on the right would fetch below the array. That is obviously +undesirable. The parenthesis on line 30 is used to make sure the \textbf{used} count is decremented and not +the pointer ``a''. + +\section*{Exercises} +\begin{tabular}{cl} +$\left [ 1 \right ]$ & Discuss the relevance of the \textbf{used} member of the mp\_int structure. \\ + & \\ +$\left [ 1 \right ]$ & Discuss the consequences of not using padding when performing allocations. \\ + & \\ +$\left [ 2 \right ]$ & Estimate an ideal value for \textbf{MP\_PREC} when performing 1024-bit RSA \\ + & encryption when $\beta = 2^{28}$. \\ + & \\ +$\left [ 1 \right ]$ & Discuss the relevance of the algorithm mp\_clamp. What does it prevent? \\ + & \\ +$\left [ 1 \right ]$ & Give an example of when the algorithm mp\_init\_copy might be useful. \\ + & \\ +\end{tabular} + + +%%% +% CHAPTER FOUR +%%% + +\chapter{Basic Operations} + +\section{Introduction} +In the previous chapter a series of low level algorithms were established that dealt with initializing and maintaining +mp\_int structures. This chapter will discuss another set of seemingly non-algebraic algorithms which will form the low +level basis of the entire library. While these algorithm are relatively trivial it is important to understand how they +work before proceeding since these algorithms will be used almost intrinsically in the following chapters. + +The algorithms in this chapter deal primarily with more ``programmer'' related tasks such as creating copies of +mp\_int structures, assigning small values to mp\_int structures and comparisons of the values mp\_int structures +represent. + +\section{Assigning Values to mp\_int Structures} +\subsection{Copying an mp\_int} +Assigning the value that a given mp\_int structure represents to another mp\_int structure shall be known as making +a copy for the purposes of this text. The copy of the mp\_int will be a separate entity that represents the same +value as the mp\_int it was copied from. The mp\_copy algorithm provides this functionality. + +\newpage\begin{figure}[here] +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_copy}. \\ +\textbf{Input}. An mp\_int $a$ and $b$. \\ +\textbf{Output}. Store a copy of $a$ in $b$. \\ +\hline \\ +1. If $b.alloc < a.used$ then grow $b$ to $a.used$ digits. (\textit{mp\_grow}) \\ +2. for $n$ from 0 to $a.used - 1$ do \\ +\hspace{3mm}2.1 $b_{n} \leftarrow a_{n}$ \\ +3. for $n$ from $a.used$ to $b.used - 1$ do \\ +\hspace{3mm}3.1 $b_{n} \leftarrow 0$ \\ +4. $b.used \leftarrow a.used$ \\ +5. $b.sign \leftarrow a.sign$ \\ +6. return(\textit{MP\_OKAY}) \\ +\hline +\end{tabular} +\end{center} +\caption{Algorithm mp\_copy} +\end{figure} + +\textbf{Algorithm mp\_copy.} +This algorithm copies the mp\_int $a$ such that upon succesful termination of the algorithm the mp\_int $b$ will +represent the same integer as the mp\_int $a$. The mp\_int $b$ shall be a complete and distinct copy of the +mp\_int $a$ meaing that the mp\_int $a$ can be modified and it shall not affect the value of the mp\_int $b$. + +If $b$ does not have enough room for the digits of $a$ it must first have its precision augmented via the mp\_grow +algorithm. The digits of $a$ are copied over the digits of $b$ and any excess digits of $b$ are set to zero (step two +and three). The \textbf{used} and \textbf{sign} members of $a$ are finally copied over the respective members of +$b$. + +\textbf{Remark.} This algorithm also introduces a new idiosyncrasy that will be used throughout the rest of the +text. The error return codes of other algorithms are not explicitly checked in the pseudo-code presented. For example, in +step one of the mp\_copy algorithm the return of mp\_grow is not explicitly checked to ensure it succeeded. Text space is +limited so it is assumed that if a algorithm fails it will clear all temporarily allocated mp\_ints and return +the error code itself. However, the C code presented will demonstrate all of the error handling logic required to +implement the pseudo-code. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_copy.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* copy, b = a */ +018 int +019 mp_copy (mp_int * a, mp_int * b) +020 \{ +021 int res, n; +022 +023 /* if dst == src do nothing */ +024 if (a == b) \{ +025 return MP_OKAY; +026 \} +027 +028 /* grow dest */ +029 if (b->alloc < a->used) \{ +030 if ((res = mp_grow (b, a->used)) != MP_OKAY) \{ +031 return res; +032 \} +033 \} +034 +035 /* zero b and copy the parameters over */ +036 \{ +037 register mp_digit *tmpa, *tmpb; +038 +039 /* pointer aliases */ +040 +041 /* source */ +042 tmpa = a->dp; +043 +044 /* destination */ +045 tmpb = b->dp; +046 +047 /* copy all the digits */ +048 for (n = 0; n < a->used; n++) \{ +049 *tmpb++ = *tmpa++; +050 \} +051 +052 /* clear high digits */ +053 for (; n < b->used; n++) \{ +054 *tmpb++ = 0; +055 \} +056 \} +057 +058 /* copy used count and sign */ +059 b->used = a->used; +060 b->sign = a->sign; +061 return MP_OKAY; +062 \} +\end{alltt} +\end{small} + +Occasionally a dependent algorithm may copy an mp\_int effectively into itself such as when the input and output +mp\_int structures passed to a function are one and the same. For this case it is optimal to return immediately without +copying digits (line 24). + +The mp\_int $b$ must have enough digits to accomodate the used digits of the mp\_int $a$. If $b.alloc$ is less than +$a.used$ the algorithm mp\_grow is used to augment the precision of $b$ (lines 29 to 33). In order to +simplify the inner loop that copies the digits from $a$ to $b$, two aliases $tmpa$ and $tmpb$ point directly at the digits +of the mp\_ints $a$ and $b$ respectively. These aliases (lines 42 and 45) allow the compiler to access the digits without first dereferencing the +mp\_int pointers and then subsequently the pointer to the digits. + +After the aliases are established the digits from $a$ are copied into $b$ (lines 48 to 50) and then the excess +digits of $b$ are set to zero (lines 53 to 55). Both ``for'' loops make use of the pointer aliases and in +fact the alias for $b$ is carried through into the second ``for'' loop to clear the excess digits. This optimization +allows the alias to stay in a machine register fairly easy between the two loops. + +\textbf{Remarks.} The use of pointer aliases is an implementation methodology first introduced in this function that will +be used considerably in other functions. Technically, a pointer alias is simply a short hand alias used to lower the +number of pointer dereferencing operations required to access data. For example, a for loop may resemble + +\begin{alltt} +for (x = 0; x < 100; x++) \{ + a->num[4]->dp[x] = 0; +\} +\end{alltt} + +This could be re-written using aliases as + +\begin{alltt} +mp_digit *tmpa; +a = a->num[4]->dp; +for (x = 0; x < 100; x++) \{ + *a++ = 0; +\} +\end{alltt} + +In this case an alias is used to access the +array of digits within an mp\_int structure directly. It may seem that a pointer alias is strictly not required +as a compiler may optimize out the redundant pointer operations. However, there are two dominant reasons to use aliases. + +The first reason is that most compilers will not effectively optimize pointer arithmetic. For example, some optimizations +may work for the Microsoft Visual C++ compiler (MSVC) and not for the GNU C Compiler (GCC). Also some optimizations may +work for GCC and not MSVC. As such it is ideal to find a common ground for as many compilers as possible. Pointer +aliases optimize the code considerably before the compiler even reads the source code which means the end compiled code +stands a better chance of being faster. + +The second reason is that pointer aliases often can make an algorithm simpler to read. Consider the first ``for'' +loop of the function mp\_copy() re-written to not use pointer aliases. + +\begin{alltt} + /* copy all the digits */ + for (n = 0; n < a->used; n++) \{ + b->dp[n] = a->dp[n]; + \} +\end{alltt} + +Whether this code is harder to read depends strongly on the individual. However, it is quantifiably slightly more +complicated as there are four variables within the statement instead of just two. + +\subsubsection{Nested Statements} +Another commonly used technique in the source routines is that certain sections of code are nested. This is used in +particular with the pointer aliases to highlight code phases. For example, a Comba multiplier (discussed in chapter six) +will typically have three different phases. First the temporaries are initialized, then the columns calculated and +finally the carries are propagated. In this example the middle column production phase will typically be nested as it +uses temporary variables and aliases the most. + +The nesting also simplies the source code as variables that are nested are only valid for their scope. As a result +the various temporary variables required do not propagate into other sections of code. + + +\subsection{Creating a Clone} +Another common operation is to make a local temporary copy of an mp\_int argument. To initialize an mp\_int +and then copy another existing mp\_int into the newly intialized mp\_int will be known as creating a clone. This is +useful within functions that need to modify an argument but do not wish to actually modify the original copy. The +mp\_init\_copy algorithm has been designed to help perform this task. + +\begin{figure}[here] +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_init\_copy}. \\ +\textbf{Input}. An mp\_int $a$ and $b$\\ +\textbf{Output}. $a$ is initialized to be a copy of $b$. \\ +\hline \\ +1. Init $a$. (\textit{mp\_init}) \\ +2. Copy $b$ to $a$. (\textit{mp\_copy}) \\ +3. Return the status of the copy operation. \\ +\hline +\end{tabular} +\end{center} +\caption{Algorithm mp\_init\_copy} +\end{figure} + +\textbf{Algorithm mp\_init\_copy.} +This algorithm will initialize an mp\_int variable and copy another previously initialized mp\_int variable into it. As +such this algorithm will perform two operations in one step. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_init\_copy.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* creates "a" then copies b into it */ +018 int mp_init_copy (mp_int * a, mp_int * b) +019 \{ +020 int res; +021 +022 if ((res = mp_init (a)) != MP_OKAY) \{ +023 return res; +024 \} +025 return mp_copy (b, a); +026 \} +\end{alltt} +\end{small} + +This will initialize \textbf{a} and make it a verbatim copy of the contents of \textbf{b}. Note that +\textbf{a} will have its own memory allocated which means that \textbf{b} may be cleared after the call +and \textbf{a} will be left intact. + +\section{Zeroing an Integer} +Reseting an mp\_int to the default state is a common step in many algorithms. The mp\_zero algorithm will be the algorithm used to +perform this task. + +\begin{figure}[here] +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_zero}. \\ +\textbf{Input}. An mp\_int $a$ \\ +\textbf{Output}. Zero the contents of $a$ \\ +\hline \\ +1. $a.used \leftarrow 0$ \\ +2. $a.sign \leftarrow$ MP\_ZPOS \\ +3. for $n$ from 0 to $a.alloc - 1$ do \\ +\hspace{3mm}3.1 $a_n \leftarrow 0$ \\ +\hline +\end{tabular} +\end{center} +\caption{Algorithm mp\_zero} +\end{figure} + +\textbf{Algorithm mp\_zero.} +This algorithm simply resets a mp\_int to the default state. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_zero.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* set to zero */ +018 void +019 mp_zero (mp_int * a) +020 \{ +021 a->sign = MP_ZPOS; +022 a->used = 0; +023 memset (a->dp, 0, sizeof (mp_digit) * a->alloc); +024 \} +\end{alltt} +\end{small} + +After the function is completed, all of the digits are zeroed, the \textbf{used} count is zeroed and the +\textbf{sign} variable is set to \textbf{MP\_ZPOS}. + +\section{Sign Manipulation} +\subsection{Absolute Value} +With the mp\_int representation of an integer, calculating the absolute value is trivial. The mp\_abs algorithm will compute +the absolute value of an mp\_int. + +\newpage\begin{figure}[here] +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_abs}. \\ +\textbf{Input}. An mp\_int $a$ \\ +\textbf{Output}. Computes $b = \vert a \vert$ \\ +\hline \\ +1. Copy $a$ to $b$. (\textit{mp\_copy}) \\ +2. If the copy failed return(\textit{MP\_MEM}). \\ +3. $b.sign \leftarrow MP\_ZPOS$ \\ +4. Return(\textit{MP\_OKAY}) \\ +\hline +\end{tabular} +\end{center} +\caption{Algorithm mp\_abs} +\end{figure} + +\textbf{Algorithm mp\_abs.} +This algorithm computes the absolute of an mp\_int input. First it copies $a$ over $b$. This is an example of an +algorithm where the check in mp\_copy that determines if the source and destination are equal proves useful. This allows, +for instance, the developer to pass the same mp\_int as the source and destination to this function without addition +logic to handle it. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_abs.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* b = |a| +018 * +019 * Simple function copies the input and fixes the sign to positive +020 */ +021 int +022 mp_abs (mp_int * a, mp_int * b) +023 \{ +024 int res; +025 +026 /* copy a to b */ +027 if (a != b) \{ +028 if ((res = mp_copy (a, b)) != MP_OKAY) \{ +029 return res; +030 \} +031 \} +032 +033 /* force the sign of b to positive */ +034 b->sign = MP_ZPOS; +035 +036 return MP_OKAY; +037 \} +\end{alltt} +\end{small} + +\subsection{Integer Negation} +With the mp\_int representation of an integer, calculating the negation is also trivial. The mp\_neg algorithm will compute +the negative of an mp\_int input. + +\begin{figure}[here] +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_neg}. \\ +\textbf{Input}. An mp\_int $a$ \\ +\textbf{Output}. Computes $b = -a$ \\ +\hline \\ +1. Copy $a$ to $b$. (\textit{mp\_copy}) \\ +2. If the copy failed return(\textit{MP\_MEM}). \\ +3. If $a.used = 0$ then return(\textit{MP\_OKAY}). \\ +4. If $a.sign = MP\_ZPOS$ then do \\ +\hspace{3mm}4.1 $b.sign = MP\_NEG$. \\ +5. else do \\ +\hspace{3mm}5.1 $b.sign = MP\_ZPOS$. \\ +6. Return(\textit{MP\_OKAY}) \\ +\hline +\end{tabular} +\end{center} +\caption{Algorithm mp\_neg} +\end{figure} + +\textbf{Algorithm mp\_neg.} +This algorithm computes the negation of an input. First it copies $a$ over $b$. If $a$ has no used digits then +the algorithm returns immediately. Otherwise it flips the sign flag and stores the result in $b$. Note that if +$a$ had no digits then it must be positive by definition. Had step three been omitted then the algorithm would return +zero as negative. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_neg.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* b = -a */ +018 int mp_neg (mp_int * a, mp_int * b) +019 \{ +020 int res; +021 if ((res = mp_copy (a, b)) != MP_OKAY) \{ +022 return res; +023 \} +024 if (mp_iszero(b) != 1) \{ +025 b->sign = (a->sign == MP_ZPOS) ? MP_NEG : MP_ZPOS; +026 \} +027 return MP_OKAY; +028 \} +\end{alltt} +\end{small} + +\section{Small Constants} +\subsection{Setting Small Constants} +Often a mp\_int must be set to a relatively small value such as $1$ or $2$. For these cases the mp\_set algorithm is useful. + +\begin{figure}[here] +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_set}. \\ +\textbf{Input}. An mp\_int $a$ and a digit $b$ \\ +\textbf{Output}. Make $a$ equivalent to $b$ \\ +\hline \\ +1. Zero $a$ (\textit{mp\_zero}). \\ +2. $a_0 \leftarrow b \mbox{ (mod }\beta\mbox{)}$ \\ +3. $a.used \leftarrow \left \lbrace \begin{array}{ll} + 1 & \mbox{if }a_0 > 0 \\ + 0 & \mbox{if }a_0 = 0 + \end{array} \right .$ \\ +\hline +\end{tabular} +\end{center} +\caption{Algorithm mp\_set} +\end{figure} + +\textbf{Algorithm mp\_set.} +This algorithm sets a mp\_int to a small single digit value. Step number 1 ensures that the integer is reset to the default state. The +single digit is set (\textit{modulo $\beta$}) and the \textbf{used} count is adjusted accordingly. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_set.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* set to a digit */ +018 void mp_set (mp_int * a, mp_digit b) +019 \{ +020 mp_zero (a); +021 a->dp[0] = b & MP_MASK; +022 a->used = (a->dp[0] != 0) ? 1 : 0; +023 \} +\end{alltt} +\end{small} + +Line 20 calls mp\_zero() to clear the mp\_int and reset the sign. Line 21 copies the digit +into the least significant location. Note the usage of a new constant \textbf{MP\_MASK}. This constant is used to quickly +reduce an integer modulo $\beta$. Since $\beta$ is of the form $2^k$ for any suitable $k$ it suffices to perform a binary AND with +$MP\_MASK = 2^k - 1$ to perform the reduction. Finally line 22 will set the \textbf{used} member with respect to the +digit actually set. This function will always make the integer positive. + +One important limitation of this function is that it will only set one digit. The size of a digit is not fixed, meaning source that uses +this function should take that into account. Only trivially small constants can be set using this function. + +\subsection{Setting Large Constants} +To overcome the limitations of the mp\_set algorithm the mp\_set\_int algorithm is ideal. It accepts a ``long'' +data type as input and will always treat it as a 32-bit integer. + +\begin{figure}[here] +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_set\_int}. \\ +\textbf{Input}. An mp\_int $a$ and a ``long'' integer $b$ \\ +\textbf{Output}. Make $a$ equivalent to $b$ \\ +\hline \\ +1. Zero $a$ (\textit{mp\_zero}) \\ +2. for $n$ from 0 to 7 do \\ +\hspace{3mm}2.1 $a \leftarrow a \cdot 16$ (\textit{mp\_mul2d}) \\ +\hspace{3mm}2.2 $u \leftarrow \lfloor b / 2^{4(7 - n)} \rfloor \mbox{ (mod }16\mbox{)}$\\ +\hspace{3mm}2.3 $a_0 \leftarrow a_0 + u$ \\ +\hspace{3mm}2.4 $a.used \leftarrow a.used + 1$ \\ +3. Clamp excess used digits (\textit{mp\_clamp}) \\ +\hline +\end{tabular} +\end{center} +\caption{Algorithm mp\_set\_int} +\end{figure} + +\textbf{Algorithm mp\_set\_int.} +The algorithm performs eight iterations of a simple loop where in each iteration four bits from the source are added to the +mp\_int. Step 2.1 will multiply the current result by sixteen making room for four more bits in the less significant positions. In step 2.2 the +next four bits from the source are extracted and are added to the mp\_int. The \textbf{used} digit count is +incremented to reflect the addition. The \textbf{used} digit counter is incremented since if any of the leading digits were zero the mp\_int would have +zero digits used and the newly added four bits would be ignored. + +Excess zero digits are trimmed in steps 2.1 and 3 by using higher level algorithms mp\_mul2d and mp\_clamp. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_set\_int.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* set a 32-bit const */ +018 int mp_set_int (mp_int * a, unsigned long b) +019 \{ +020 int x, res; +021 +022 mp_zero (a); +023 +024 /* set four bits at a time */ +025 for (x = 0; x < 8; x++) \{ +026 /* shift the number up four bits */ +027 if ((res = mp_mul_2d (a, 4, a)) != MP_OKAY) \{ +028 return res; +029 \} +030 +031 /* OR in the top four bits of the source */ +032 a->dp[0] |= (b >> 28) & 15; +033 +034 /* shift the source up to the next four bits */ +035 b <<= 4; +036 +037 /* ensure that digits are not clamped off */ +038 a->used += 1; +039 \} +040 mp_clamp (a); +041 return MP_OKAY; +042 \} +\end{alltt} +\end{small} + +This function sets four bits of the number at a time to handle all practical \textbf{DIGIT\_BIT} sizes. The weird +addition on line 38 ensures that the newly added in bits are added to the number of digits. While it may not +seem obvious as to why the digit counter does not grow exceedingly large it is because of the shift on line 27 +as well as the call to mp\_clamp() on line 40. Both functions will clamp excess leading digits which keeps +the number of used digits low. + +\section{Comparisons} +\subsection{Unsigned Comparisions} +Comparing a multiple precision integer is performed with the exact same algorithm used to compare two decimal numbers. For example, +to compare $1,234$ to $1,264$ the digits are extracted by their positions. That is we compare $1 \cdot 10^3 + 2 \cdot 10^2 + 3 \cdot 10^1 + 4 \cdot 10^0$ +to $1 \cdot 10^3 + 2 \cdot 10^2 + 6 \cdot 10^1 + 4 \cdot 10^0$ by comparing single digits at a time starting with the highest magnitude +positions. If any leading digit of one integer is greater than a digit in the same position of another integer then obviously it must be greater. + +The first comparision routine that will be developed is the unsigned magnitude compare which will perform a comparison based on the digits of two +mp\_int variables alone. It will ignore the sign of the two inputs. Such a function is useful when an absolute comparison is required or if the +signs are known to agree in advance. + +To facilitate working with the results of the comparison functions three constants are required. + +\begin{figure}[here] +\begin{center} +\begin{tabular}{|r|l|} +\hline \textbf{Constant} & \textbf{Meaning} \\ +\hline \textbf{MP\_GT} & Greater Than \\ +\hline \textbf{MP\_EQ} & Equal To \\ +\hline \textbf{MP\_LT} & Less Than \\ +\hline +\end{tabular} +\end{center} +\caption{Comparison Return Codes} +\end{figure} + +\begin{figure}[here] +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_cmp\_mag}. \\ +\textbf{Input}. Two mp\_ints $a$ and $b$. \\ +\textbf{Output}. Unsigned comparison results ($a$ to the left of $b$). \\ +\hline \\ +1. If $a.used > b.used$ then return(\textit{MP\_GT}) \\ +2. If $a.used < b.used$ then return(\textit{MP\_LT}) \\ +3. for n from $a.used - 1$ to 0 do \\ +\hspace{+3mm}3.1 if $a_n > b_n$ then return(\textit{MP\_GT}) \\ +\hspace{+3mm}3.2 if $a_n < b_n$ then return(\textit{MP\_LT}) \\ +4. Return(\textit{MP\_EQ}) \\ +\hline +\end{tabular} +\end{center} +\caption{Algorithm mp\_cmp\_mag} +\end{figure} + +\textbf{Algorithm mp\_cmp\_mag.} +By saying ``$a$ to the left of $b$'' it is meant that the comparison is with respect to $a$, that is if $a$ is greater than $b$ it will return +\textbf{MP\_GT} and similar with respect to when $a = b$ and $a < b$. The first two steps compare the number of digits used in both $a$ and $b$. +Obviously if the digit counts differ there would be an imaginary zero digit in the smaller number where the leading digit of the larger number is. +If both have the same number of digits than the actual digits themselves must be compared starting at the leading digit. + +By step three both inputs must have the same number of digits so its safe to start from either $a.used - 1$ or $b.used - 1$ and count down to +the zero'th digit. If after all of the digits have been compared, no difference is found, the algorithm returns \textbf{MP\_EQ}. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_cmp\_mag.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* compare maginitude of two ints (unsigned) */ +018 int mp_cmp_mag (mp_int * a, mp_int * b) +019 \{ +020 int n; +021 mp_digit *tmpa, *tmpb; +022 +023 /* compare based on # of non-zero digits */ +024 if (a->used > b->used) \{ +025 return MP_GT; +026 \} +027 +028 if (a->used < b->used) \{ +029 return MP_LT; +030 \} +031 +032 /* alias for a */ +033 tmpa = a->dp + (a->used - 1); +034 +035 /* alias for b */ +036 tmpb = b->dp + (a->used - 1); +037 +038 /* compare based on digits */ +039 for (n = 0; n < a->used; ++n, --tmpa, --tmpb) \{ +040 if (*tmpa > *tmpb) \{ +041 return MP_GT; +042 \} +043 +044 if (*tmpa < *tmpb) \{ +045 return MP_LT; +046 \} +047 \} +048 return MP_EQ; +049 \} +\end{alltt} +\end{small} + +The two if statements on lines 24 and 28 compare the number of digits in the two inputs. These two are performed before all of the digits +are compared since it is a very cheap test to perform and can potentially save considerable time. The implementation given is also not valid +without those two statements. $b.alloc$ may be smaller than $a.used$, meaning that undefined values will be read from $b$ past the end of the +array of digits. + +\subsection{Signed Comparisons} +Comparing with sign considerations is also fairly critical in several routines (\textit{division for example}). Based on an unsigned magnitude +comparison a trivial signed comparison algorithm can be written. + +\begin{figure}[here] +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_cmp}. \\ +\textbf{Input}. Two mp\_ints $a$ and $b$ \\ +\textbf{Output}. Signed Comparison Results ($a$ to the left of $b$) \\ +\hline \\ +1. if $a.sign = MP\_NEG$ and $b.sign = MP\_ZPOS$ then return(\textit{MP\_LT}) \\ +2. if $a.sign = MP\_ZPOS$ and $b.sign = MP\_NEG$ then return(\textit{MP\_GT}) \\ +3. if $a.sign = MP\_NEG$ then \\ +\hspace{+3mm}3.1 Return the unsigned comparison of $b$ and $a$ (\textit{mp\_cmp\_mag}) \\ +4 Otherwise \\ +\hspace{+3mm}4.1 Return the unsigned comparison of $a$ and $b$ \\ +\hline +\end{tabular} +\end{center} +\caption{Algorithm mp\_cmp} +\end{figure} + +\textbf{Algorithm mp\_cmp.} +The first two steps compare the signs of the two inputs. If the signs do not agree then it can return right away with the appropriate +comparison code. When the signs are equal the digits of the inputs must be compared to determine the correct result. In step +three the unsigned comparision flips the order of the arguments since they are both negative. For instance, if $-a > -b$ then +$\vert a \vert < \vert b \vert$. Step number four will compare the two when they are both positive. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_cmp.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* compare two ints (signed)*/ +018 int +019 mp_cmp (mp_int * a, mp_int * b) +020 \{ +021 /* compare based on sign */ +022 if (a->sign != b->sign) \{ +023 if (a->sign == MP_NEG) \{ +024 return MP_LT; +025 \} else \{ +026 return MP_GT; +027 \} +028 \} +029 +030 /* compare digits */ +031 if (a->sign == MP_NEG) \{ +032 /* if negative compare opposite direction */ +033 return mp_cmp_mag(b, a); +034 \} else \{ +035 return mp_cmp_mag(a, b); +036 \} +037 \} +\end{alltt} +\end{small} + +The two if statements on lines 22 and 23 perform the initial sign comparison. If the signs are not the equal then which ever +has the positive sign is larger. At line 31, the inputs are compared based on magnitudes. If the signs were both negative then +the unsigned comparison is performed in the opposite direction (\textit{line 33}). Otherwise, the signs are assumed to +be both positive and a forward direction unsigned comparison is performed. + +\section*{Exercises} +\begin{tabular}{cl} +$\left [ 2 \right ]$ & Modify algorithm mp\_set\_int to accept as input a variable length array of bits. \\ + & \\ +$\left [ 3 \right ]$ & Give the probability that algorithm mp\_cmp\_mag will have to compare $k$ digits \\ + & of two random digits (of equal magnitude) before a difference is found. \\ + & \\ +$\left [ 1 \right ]$ & Suggest a simple method to speed up the implementation of mp\_cmp\_mag based \\ + & on the observations made in the previous problem. \\ + & +\end{tabular} + +\chapter{Basic Arithmetic} +\section{Introduction} +At this point algorithms for initialization, clearing, zeroing, copying, comparing and setting small constants have been +established. The next logical set of algorithms to develop are addition, subtraction and digit shifting algorithms. These +algorithms make use of the lower level algorithms and are the cruicial building block for the multiplication algorithms. It is very important +that these algorithms are highly optimized. On their own they are simple $O(n)$ algorithms but they can be called from higher level algorithms +which easily places them at $O(n^2)$ or even $O(n^3)$ work levels. + +All of the algorithms within this chapter make use of the logical bit shift operations denoted by $<<$ and $>>$ for left and right +logical shifts respectively. A logical shift is analogous to sliding the decimal point of radix-10 representations. For example, the real +number $0.9345$ is equivalent to $93.45\%$ which is found by sliding the the decimal two places to the right (\textit{multiplying by $\beta^2 = 10^2$}). +Algebraically a binary logical shift is equivalent to a division or multiplication by a power of two. +For example, $a << k = a \cdot 2^k$ while $a >> k = \lfloor a/2^k \rfloor$. + +One significant difference between a logical shift and the way decimals are shifted is that digits below the zero'th position are removed +from the number. For example, consider $1101_2 >> 1$ using decimal notation this would produce $110.1_2$. However, with a logical shift the +result is $110_2$. + +\section{Addition and Subtraction} +In common twos complement fixed precision arithmetic negative numbers are easily represented by subtraction from the modulus. For example, with 32-bit integers +$a - b\mbox{ (mod }2^{32}\mbox{)}$ is the same as $a + (2^{32} - b) \mbox{ (mod }2^{32}\mbox{)}$ since $2^{32} \equiv 0 \mbox{ (mod }2^{32}\mbox{)}$. +As a result subtraction can be performed with a trivial series of logical operations and an addition. + +However, in multiple precision arithmetic negative numbers are not represented in the same way. Instead a sign flag is used to keep track of the +sign of the integer. As a result signed addition and subtraction are actually implemented as conditional usage of lower level addition or +subtraction algorithms with the sign fixed up appropriately. + +The lower level algorithms will add or subtract integers without regard to the sign flag. That is they will add or subtract the magnitude of +the integers respectively. + +\subsection{Low Level Addition} +An unsigned addition of multiple precision integers is performed with the same long-hand algorithm used to add decimal numbers. That is to add the +trailing digits first and propagate the resulting carry upwards. Since this is a lower level algorithm the name will have a ``s\_'' prefix. +Historically that convention stems from the MPI library where ``s\_'' stood for static functions that were hidden from the developer entirely. + +\newpage +\begin{figure}[!here] +\begin{center} +\begin{small} +\begin{tabular}{l} +\hline Algorithm \textbf{s\_mp\_add}. \\ +\textbf{Input}. Two mp\_ints $a$ and $b$ \\ +\textbf{Output}. The unsigned addition $c = \vert a \vert + \vert b \vert$. \\ +\hline \\ +1. if $a.used > b.used$ then \\ +\hspace{+3mm}1.1 $min \leftarrow b.used$ \\ +\hspace{+3mm}1.2 $max \leftarrow a.used$ \\ +\hspace{+3mm}1.3 $x \leftarrow a$ \\ +2. else \\ +\hspace{+3mm}2.1 $min \leftarrow a.used$ \\ +\hspace{+3mm}2.2 $max \leftarrow b.used$ \\ +\hspace{+3mm}2.3 $x \leftarrow b$ \\ +3. If $c.alloc < max + 1$ then grow $c$ to hold at least $max + 1$ digits (\textit{mp\_grow}) \\ +4. $oldused \leftarrow c.used$ \\ +5. $c.used \leftarrow max + 1$ \\ +6. $u \leftarrow 0$ \\ +7. for $n$ from $0$ to $min - 1$ do \\ +\hspace{+3mm}7.1 $c_n \leftarrow a_n + b_n + u$ \\ +\hspace{+3mm}7.2 $u \leftarrow c_n >> lg(\beta)$ \\ +\hspace{+3mm}7.3 $c_n \leftarrow c_n \mbox{ (mod }\beta\mbox{)}$ \\ +8. if $min \ne max$ then do \\ +\hspace{+3mm}8.1 for $n$ from $min$ to $max - 1$ do \\ +\hspace{+6mm}8.1.1 $c_n \leftarrow x_n + u$ \\ +\hspace{+6mm}8.1.2 $u \leftarrow c_n >> lg(\beta)$ \\ +\hspace{+6mm}8.1.3 $c_n \leftarrow c_n \mbox{ (mod }\beta\mbox{)}$ \\ +9. $c_{max} \leftarrow u$ \\ +10. if $olduse > max$ then \\ +\hspace{+3mm}10.1 for $n$ from $max + 1$ to $oldused - 1$ do \\ +\hspace{+6mm}10.1.1 $c_n \leftarrow 0$ \\ +11. Clamp excess digits in $c$. (\textit{mp\_clamp}) \\ +12. Return(\textit{MP\_OKAY}) \\ +\hline +\end{tabular} +\end{small} +\end{center} +\caption{Algorithm s\_mp\_add} +\end{figure} + +\textbf{Algorithm s\_mp\_add.} +This algorithm is loosely based on algorithm 14.7 of HAC \cite[pp. 594]{HAC} but has been extended to allow the inputs to have different magnitudes. +Coincidentally the description of algorithm A in Knuth \cite[pp. 266]{TAOCPV2} shares the same deficiency as the algorithm from \cite{HAC}. Even the +MIX pseudo machine code presented by Knuth \cite[pp. 266-267]{TAOCPV2} is incapable of handling inputs which are of different magnitudes. + +The first thing that has to be accomplished is to sort out which of the two inputs is the largest. The addition logic +will simply add all of the smallest input to the largest input and store that first part of the result in the +destination. Then it will apply a simpler addition loop to excess digits of the larger input. + +The first two steps will handle sorting the inputs such that $min$ and $max$ hold the digit counts of the two +inputs. The variable $x$ will be an mp\_int alias for the largest input or the second input $b$ if they have the +same number of digits. After the inputs are sorted the destination $c$ is grown as required to accomodate the sum +of the two inputs. The original \textbf{used} count of $c$ is copied and set to the new used count. + +At this point the first addition loop will go through as many digit positions that both inputs have. The carry +variable $\mu$ is set to zero outside the loop. Inside the loop an ``addition'' step requires three statements to produce +one digit of the summand. First +two digits from $a$ and $b$ are added together along with the carry $\mu$. The carry of this step is extracted and stored +in $\mu$ and finally the digit of the result $c_n$ is truncated within the range $0 \le c_n < \beta$. + +Now all of the digit positions that both inputs have in common have been exhausted. If $min \ne max$ then $x$ is an alias +for one of the inputs that has more digits. A simplified addition loop is then used to essentially copy the remaining digits +and the carry to the destination. + +The final carry is stored in $c_{max}$ and digits above $max$ upto $oldused$ are zeroed which completes the addition. + + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_s\_mp\_add.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* low level addition, based on HAC pp.594, Algorithm 14.7 */ +018 int +019 s_mp_add (mp_int * a, mp_int * b, mp_int * c) +020 \{ +021 mp_int *x; +022 int olduse, res, min, max; +023 +024 /* find sizes, we let |a| <= |b| which means we have to sort +025 * them. "x" will point to the input with the most digits +026 */ +027 if (a->used > b->used) \{ +028 min = b->used; +029 max = a->used; +030 x = a; +031 \} else \{ +032 min = a->used; +033 max = b->used; +034 x = b; +035 \} +036 +037 /* init result */ +038 if (c->alloc < max + 1) \{ +039 if ((res = mp_grow (c, max + 1)) != MP_OKAY) \{ +040 return res; +041 \} +042 \} +043 +044 /* get old used digit count and set new one */ +045 olduse = c->used; +046 c->used = max + 1; +047 +048 \{ +049 register mp_digit u, *tmpa, *tmpb, *tmpc; +050 register int i; +051 +052 /* alias for digit pointers */ +053 +054 /* first input */ +055 tmpa = a->dp; +056 +057 /* second input */ +058 tmpb = b->dp; +059 +060 /* destination */ +061 tmpc = c->dp; +062 +063 /* zero the carry */ +064 u = 0; +065 for (i = 0; i < min; i++) \{ +066 /* Compute the sum at one digit, T[i] = A[i] + B[i] + U */ +067 *tmpc = *tmpa++ + *tmpb++ + u; +068 +069 /* U = carry bit of T[i] */ +070 u = *tmpc >> ((mp_digit)DIGIT_BIT); +071 +072 /* take away carry bit from T[i] */ +073 *tmpc++ &= MP_MASK; +074 \} +075 +076 /* now copy higher words if any, that is in A+B +077 * if A or B has more digits add those in +078 */ +079 if (min != max) \{ +080 for (; i < max; i++) \{ +081 /* T[i] = X[i] + U */ +082 *tmpc = x->dp[i] + u; +083 +084 /* U = carry bit of T[i] */ +085 u = *tmpc >> ((mp_digit)DIGIT_BIT); +086 +087 /* take away carry bit from T[i] */ +088 *tmpc++ &= MP_MASK; +089 \} +090 \} +091 +092 /* add carry */ +093 *tmpc++ = u; +094 +095 /* clear digits above oldused */ +096 for (i = c->used; i < olduse; i++) \{ +097 *tmpc++ = 0; +098 \} +099 \} +100 +101 mp_clamp (c); +102 return MP_OKAY; +103 \} +\end{alltt} +\end{small} + +Lines 27 to 35 perform the initial sorting of the inputs and determine the $min$ and $max$ variables. Note that $x$ is a pointer to a +mp\_int assigned to the largest input, in effect it is a local alias. Lines 37 to 42 ensure that the destination is grown to +accomodate the result of the addition. + +Similar to the implementation of mp\_copy this function uses the braced code and local aliases coding style. The three aliases that are on +lines 55, 58 and 61 represent the two inputs and destination variables respectively. These aliases are used to ensure the +compiler does not have to dereference $a$, $b$ or $c$ (respectively) to access the digits of the respective mp\_int. + +The initial carry $u$ is cleared on line 64, note that $u$ is of type mp\_digit which ensures type compatibility within the +implementation. The initial addition loop begins on line 65 and ends on line 74. Similarly the conditional addition loop +begins on line 80 and ends on line 90. The addition is finished with the final carry being stored in $tmpc$ on line 93. +Note the ``++'' operator on the same line. After line 93 $tmpc$ will point to the $c.used$'th digit of the mp\_int $c$. This is useful +for the next loop on lines 96 to 99 which set any old upper digits to zero. + +\subsection{Low Level Subtraction} +The low level unsigned subtraction algorithm is very similar to the low level unsigned addition algorithm. The principle difference is that the +unsigned subtraction algorithm requires the result to be positive. That is when computing $a - b$ the condition $\vert a \vert \ge \vert b\vert$ must +be met for this algorithm to function properly. Keep in mind this low level algorithm is not meant to be used in higher level algorithms directly. +This algorithm as will be shown can be used to create functional signed addition and subtraction algorithms. + + +For this algorithm a new variable is required to make the description simpler. Recall from section 1.3.1 that a mp\_digit must be able to represent +the range $0 \le x < 2\beta$ for the algorithms to work correctly. However, it is allowable that a mp\_digit represent a larger range of values. For +this algorithm we will assume that the variable $\gamma$ represents the number of bits available in a +mp\_digit (\textit{this implies $2^{\gamma} > \beta$}). + +For example, the default for LibTomMath is to use a ``unsigned long'' for the mp\_digit ``type'' while $\beta = 2^{28}$. In ISO C an ``unsigned long'' +data type must be able to represent $0 \le x < 2^{32}$ meaning that in this case $\gamma = 32$. + +\newpage\begin{figure}[!here] +\begin{center} +\begin{small} +\begin{tabular}{l} +\hline Algorithm \textbf{s\_mp\_sub}. \\ +\textbf{Input}. Two mp\_ints $a$ and $b$ ($\vert a \vert \ge \vert b \vert$) \\ +\textbf{Output}. The unsigned subtraction $c = \vert a \vert - \vert b \vert$. \\ +\hline \\ +1. $min \leftarrow b.used$ \\ +2. $max \leftarrow a.used$ \\ +3. If $c.alloc < max$ then grow $c$ to hold at least $max$ digits. (\textit{mp\_grow}) \\ +4. $oldused \leftarrow c.used$ \\ +5. $c.used \leftarrow max$ \\ +6. $u \leftarrow 0$ \\ +7. for $n$ from $0$ to $min - 1$ do \\ +\hspace{3mm}7.1 $c_n \leftarrow a_n - b_n - u$ \\ +\hspace{3mm}7.2 $u \leftarrow c_n >> (\gamma - 1)$ \\ +\hspace{3mm}7.3 $c_n \leftarrow c_n \mbox{ (mod }\beta\mbox{)}$ \\ +8. if $min < max$ then do \\ +\hspace{3mm}8.1 for $n$ from $min$ to $max - 1$ do \\ +\hspace{6mm}8.1.1 $c_n \leftarrow a_n - u$ \\ +\hspace{6mm}8.1.2 $u \leftarrow c_n >> (\gamma - 1)$ \\ +\hspace{6mm}8.1.3 $c_n \leftarrow c_n \mbox{ (mod }\beta\mbox{)}$ \\ +9. if $oldused > max$ then do \\ +\hspace{3mm}9.1 for $n$ from $max$ to $oldused - 1$ do \\ +\hspace{6mm}9.1.1 $c_n \leftarrow 0$ \\ +10. Clamp excess digits of $c$. (\textit{mp\_clamp}). \\ +11. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{small} +\end{center} +\caption{Algorithm s\_mp\_sub} +\end{figure} + +\textbf{Algorithm s\_mp\_sub.} +This algorithm performs the unsigned subtraction of two mp\_int variables under the restriction that the result must be positive. That is when +passing variables $a$ and $b$ the condition that $\vert a \vert \ge \vert b \vert$ must be met for the algorithm to function correctly. This +algorithm is loosely based on algorithm 14.9 \cite[pp. 595]{HAC} and is similar to algorithm S in \cite[pp. 267]{TAOCPV2} as well. As was the case +of the algorithm s\_mp\_add both other references lack discussion concerning various practical details such as when the inputs differ in magnitude. + +The initial sorting of the inputs is trivial in this algorithm since $a$ is guaranteed to have at least the same magnitude of $b$. Steps 1 and 2 +set the $min$ and $max$ variables. Unlike the addition routine there is guaranteed to be no carry which means that the final result can be at +most $max$ digits in length as opposed to $max + 1$. Similar to the addition algorithm the \textbf{used} count of $c$ is copied locally and +set to the maximal count for the operation. + +The subtraction loop that begins on step seven is essentially the same as the addition loop of algorithm s\_mp\_add except single precision +subtraction is used instead. Note the use of the $\gamma$ variable to extract the carry (\textit{also known as the borrow}) within the subtraction +loops. Under the assumption that two's complement single precision arithmetic is used this will successfully extract the desired carry. + +For example, consider subtracting $0101_2$ from $0100_2$ where $\gamma = 4$ and $\beta = 2$. The least significant bit will force a carry upwards to +the third bit which will be set to zero after the borrow. After the very first bit has been subtracted $4 - 1 \equiv 0011_2$ will remain, When the +third bit of $0101_2$ is subtracted from the result it will cause another carry. In this case though the carry will be forced to propagate all the +way to the most significant bit. + +Recall that $\beta < 2^{\gamma}$. This means that if a carry does occur just before the $lg(\beta)$'th bit it will propagate all the way to the most +significant bit. Thus, the high order bits of the mp\_digit that are not part of the actual digit will either be all zero, or all one. All that +is needed is a single zero or one bit for the carry. Therefore a single logical shift right by $\gamma - 1$ positions is sufficient to extract the +carry. This method of carry extraction may seem awkward but the reason for it becomes apparent when the implementation is discussed. + +If $b$ has a smaller magnitude than $a$ then step 9 will force the carry and copy operation to propagate through the larger input $a$ into $c$. Step +10 will ensure that any leading digits of $c$ above the $max$'th position are zeroed. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_s\_mp\_sub.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* low level subtraction (assumes |a| > |b|), HAC pp.595 Algorithm 14.9 */ +018 int +019 s_mp_sub (mp_int * a, mp_int * b, mp_int * c) +020 \{ +021 int olduse, res, min, max; +022 +023 /* find sizes */ +024 min = b->used; +025 max = a->used; +026 +027 /* init result */ +028 if (c->alloc < max) \{ +029 if ((res = mp_grow (c, max)) != MP_OKAY) \{ +030 return res; +031 \} +032 \} +033 olduse = c->used; +034 c->used = max; +035 +036 \{ +037 register mp_digit u, *tmpa, *tmpb, *tmpc; +038 register int i; +039 +040 /* alias for digit pointers */ +041 tmpa = a->dp; +042 tmpb = b->dp; +043 tmpc = c->dp; +044 +045 /* set carry to zero */ +046 u = 0; +047 for (i = 0; i < min; i++) \{ +048 /* T[i] = A[i] - B[i] - U */ +049 *tmpc = *tmpa++ - *tmpb++ - u; +050 +051 /* U = carry bit of T[i] +052 * Note this saves performing an AND operation since +053 * if a carry does occur it will propagate all the way to the +054 * MSB. As a result a single shift is enough to get the carry +055 */ +056 u = *tmpc >> ((mp_digit)(CHAR_BIT * sizeof (mp_digit) - 1)); +057 +058 /* Clear carry from T[i] */ +059 *tmpc++ &= MP_MASK; +060 \} +061 +062 /* now copy higher words if any, e.g. if A has more digits than B */ +063 for (; i < max; i++) \{ +064 /* T[i] = A[i] - U */ +065 *tmpc = *tmpa++ - u; +066 +067 /* U = carry bit of T[i] */ +068 u = *tmpc >> ((mp_digit)(CHAR_BIT * sizeof (mp_digit) - 1)); +069 +070 /* Clear carry from T[i] */ +071 *tmpc++ &= MP_MASK; +072 \} +073 +074 /* clear digits above used (since we may not have grown result above) */ + +075 for (i = c->used; i < olduse; i++) \{ +076 *tmpc++ = 0; +077 \} +078 \} +079 +080 mp_clamp (c); +081 return MP_OKAY; +082 \} +083 +\end{alltt} +\end{small} + +Line 24 and 25 perform the initial hardcoded sorting of the inputs. In reality the $min$ and $max$ variables are only aliases and are only +used to make the source code easier to read. Again the pointer alias optimization is used within this algorithm. Lines 41, 42 and 43 initialize the aliases for +$a$, $b$ and $c$ respectively. + +The first subtraction loop occurs on lines 46 through 60. The theory behind the subtraction loop is exactly the same as that for +the addition loop. As remarked earlier there is an implementation reason for using the ``awkward'' method of extracting the carry +(\textit{see line 56}). The traditional method for extracting the carry would be to shift by $lg(\beta)$ positions and logically AND +the least significant bit. The AND operation is required because all of the bits above the $\lg(\beta)$'th bit will be set to one after a carry +occurs from subtraction. This carry extraction requires two relatively cheap operations to extract the carry. The other method is to simply +shift the most significant bit to the least significant bit thus extracting the carry with a single cheap operation. This optimization only works on +twos compliment machines which is a safe assumption to make. + +If $a$ has a larger magnitude than $b$ an additional loop (\textit{see lines 63 through 72}) is required to propagate the carry through +$a$ and copy the result to $c$. + +\subsection{High Level Addition} +Now that both lower level addition and subtraction algorithms have been established an effective high level signed addition algorithm can be +established. This high level addition algorithm will be what other algorithms and developers will use to perform addition of mp\_int data +types. + +Recall from section 5.2 that an mp\_int represents an integer with an unsigned mantissa (\textit{the array of digits}) and a \textbf{sign} +flag. A high level addition is actually performed as a series of eight separate cases which can be optimized down to three unique cases. + +\begin{figure}[!here] +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_add}. \\ +\textbf{Input}. Two mp\_ints $a$ and $b$ \\ +\textbf{Output}. The signed addition $c = a + b$. \\ +\hline \\ +1. if $a.sign = b.sign$ then do \\ +\hspace{3mm}1.1 $c.sign \leftarrow a.sign$ \\ +\hspace{3mm}1.2 $c \leftarrow \vert a \vert + \vert b \vert$ (\textit{s\_mp\_add})\\ +2. else do \\ +\hspace{3mm}2.1 if $\vert a \vert < \vert b \vert$ then do (\textit{mp\_cmp\_mag}) \\ +\hspace{6mm}2.1.1 $c.sign \leftarrow b.sign$ \\ +\hspace{6mm}2.1.2 $c \leftarrow \vert b \vert - \vert a \vert$ (\textit{s\_mp\_sub}) \\ +\hspace{3mm}2.2 else do \\ +\hspace{6mm}2.2.1 $c.sign \leftarrow a.sign$ \\ +\hspace{6mm}2.2.2 $c \leftarrow \vert a \vert - \vert b \vert$ \\ +3. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\caption{Algorithm mp\_add} +\end{figure} + +\textbf{Algorithm mp\_add.} +This algorithm performs the signed addition of two mp\_int variables. There is no reference algorithm to draw upon from +either \cite{TAOCPV2} or \cite{HAC} since they both only provide unsigned operations. The algorithm is fairly +straightforward but restricted since subtraction can only produce positive results. + +\begin{figure}[here] +\begin{small} +\begin{center} +\begin{tabular}{|c|c|c|c|c|} +\hline \textbf{Sign of $a$} & \textbf{Sign of $b$} & \textbf{$\vert a \vert > \vert b \vert $} & \textbf{Unsigned Operation} & \textbf{Result Sign Flag} \\ +\hline $+$ & $+$ & Yes & $c = a + b$ & $a.sign$ \\ +\hline $+$ & $+$ & No & $c = a + b$ & $a.sign$ \\ +\hline $-$ & $-$ & Yes & $c = a + b$ & $a.sign$ \\ +\hline $-$ & $-$ & No & $c = a + b$ & $a.sign$ \\ +\hline &&&&\\ + +\hline $+$ & $-$ & No & $c = b - a$ & $b.sign$ \\ +\hline $-$ & $+$ & No & $c = b - a$ & $b.sign$ \\ + +\hline &&&&\\ + +\hline $+$ & $-$ & Yes & $c = a - b$ & $a.sign$ \\ +\hline $-$ & $+$ & Yes & $c = a - b$ & $a.sign$ \\ + +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Addition Guide Chart} +\label{fig:AddChart} +\end{figure} + +Figure~\ref{fig:AddChart} lists all of the eight possible input combinations and is sorted to show that only three +specific cases need to be handled. The return code of the unsigned operations at step 1.2, 2.1.2 and 2.2.2 are +forwarded to step three to check for errors. This simplifies the description of the algorithm considerably and best +follows how the implementation actually was achieved. + +Also note how the \textbf{sign} is set before the unsigned addition or subtraction is performed. Recall from the descriptions of algorithms +s\_mp\_add and s\_mp\_sub that the mp\_clamp function is used at the end to trim excess digits. The mp\_clamp algorithm will set the \textbf{sign} +to \textbf{MP\_ZPOS} when the \textbf{used} digit count reaches zero. + +For example, consider performing $-a + a$ with algorithm mp\_add. By the description of the algorithm the sign is set to \textbf{MP\_NEG} which would +produce a result of $-0$. However, since the sign is set first then the unsigned addition is performed the subsequent usage of algorithm mp\_clamp +within algorithm s\_mp\_add will force $-0$ to become $0$. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_add.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* high level addition (handles signs) */ +018 int mp_add (mp_int * a, mp_int * b, mp_int * c) +019 \{ +020 int sa, sb, res; +021 +022 /* get sign of both inputs */ +023 sa = a->sign; +024 sb = b->sign; +025 +026 /* handle two cases, not four */ +027 if (sa == sb) \{ +028 /* both positive or both negative */ +029 /* add their magnitudes, copy the sign */ +030 c->sign = sa; +031 res = s_mp_add (a, b, c); +032 \} else \{ +033 /* one positive, the other negative */ +034 /* subtract the one with the greater magnitude from */ +035 /* the one of the lesser magnitude. The result gets */ +036 /* the sign of the one with the greater magnitude. */ +037 if (mp_cmp_mag (a, b) == MP_LT) \{ +038 c->sign = sb; +039 res = s_mp_sub (b, a, c); +040 \} else \{ +041 c->sign = sa; +042 res = s_mp_sub (a, b, c); +043 \} +044 \} +045 return res; +046 \} +047 +\end{alltt} +\end{small} + +The source code follows the algorithm fairly closely. The most notable new source code addition is the usage of the $res$ integer variable which +is used to pass result of the unsigned operations forward. Unlike in the algorithm, the variable $res$ is merely returned as is without +explicitly checking it and returning the constant \textbf{MP\_OKAY}. The observation is this algorithm will succeed or fail only if the lower +level functions do so. Returning their return code is sufficient. + +\subsection{High Level Subtraction} +The high level signed subtraction algorithm is essentially the same as the high level signed addition algorithm. + +\newpage\begin{figure}[!here] +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_sub}. \\ +\textbf{Input}. Two mp\_ints $a$ and $b$ \\ +\textbf{Output}. The signed subtraction $c = a - b$. \\ +\hline \\ +1. if $a.sign \ne b.sign$ then do \\ +\hspace{3mm}1.1 $c.sign \leftarrow a.sign$ \\ +\hspace{3mm}1.2 $c \leftarrow \vert a \vert + \vert b \vert$ (\textit{s\_mp\_add}) \\ +2. else do \\ +\hspace{3mm}2.1 if $\vert a \vert \ge \vert b \vert$ then do (\textit{mp\_cmp\_mag}) \\ +\hspace{6mm}2.1.1 $c.sign \leftarrow a.sign$ \\ +\hspace{6mm}2.1.2 $c \leftarrow \vert a \vert - \vert b \vert$ (\textit{s\_mp\_sub}) \\ +\hspace{3mm}2.2 else do \\ +\hspace{6mm}2.2.1 $c.sign \leftarrow \left \lbrace \begin{array}{ll} + MP\_ZPOS & \mbox{if }a.sign = MP\_NEG \\ + MP\_NEG & \mbox{otherwise} \\ + \end{array} \right .$ \\ +\hspace{6mm}2.2.2 $c \leftarrow \vert b \vert - \vert a \vert$ \\ +3. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\caption{Algorithm mp\_sub} +\end{figure} + +\textbf{Algorithm mp\_sub.} +This algorithm performs the signed subtraction of two inputs. Similar to algorithm mp\_add there is no reference in either \cite{TAOCPV2} or +\cite{HAC}. Also this algorithm is restricted by algorithm s\_mp\_sub. Chart \ref{fig:SubChart} lists the eight possible inputs and +the operations required. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{|c|c|c|c|c|} +\hline \textbf{Sign of $a$} & \textbf{Sign of $b$} & \textbf{$\vert a \vert \ge \vert b \vert $} & \textbf{Unsigned Operation} & \textbf{Result Sign Flag} \\ +\hline $+$ & $-$ & Yes & $c = a + b$ & $a.sign$ \\ +\hline $+$ & $-$ & No & $c = a + b$ & $a.sign$ \\ +\hline $-$ & $+$ & Yes & $c = a + b$ & $a.sign$ \\ +\hline $-$ & $+$ & No & $c = a + b$ & $a.sign$ \\ +\hline &&&& \\ +\hline $+$ & $+$ & Yes & $c = a - b$ & $a.sign$ \\ +\hline $-$ & $-$ & Yes & $c = a - b$ & $a.sign$ \\ +\hline &&&& \\ +\hline $+$ & $+$ & No & $c = b - a$ & $\mbox{opposite of }a.sign$ \\ +\hline $-$ & $-$ & No & $c = b - a$ & $\mbox{opposite of }a.sign$ \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Subtraction Guide Chart} +\label{fig:SubChart} +\end{figure} + +Similar to the case of algorithm mp\_add the \textbf{sign} is set first before the unsigned addition or subtraction. That is to prevent the +algorithm from producing $-a - -a = -0$ as a result. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_sub.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* high level subtraction (handles signs) */ +018 int +019 mp_sub (mp_int * a, mp_int * b, mp_int * c) +020 \{ +021 int sa, sb, res; +022 +023 sa = a->sign; +024 sb = b->sign; +025 +026 if (sa != sb) \{ +027 /* subtract a negative from a positive, OR */ +028 /* subtract a positive from a negative. */ +029 /* In either case, ADD their magnitudes, */ +030 /* and use the sign of the first number. */ +031 c->sign = sa; +032 res = s_mp_add (a, b, c); +033 \} else \{ +034 /* subtract a positive from a positive, OR */ +035 /* subtract a negative from a negative. */ +036 /* First, take the difference between their */ +037 /* magnitudes, then... */ +038 if (mp_cmp_mag (a, b) != MP_LT) \{ +039 /* Copy the sign from the first */ +040 c->sign = sa; +041 /* The first has a larger or equal magnitude */ +042 res = s_mp_sub (a, b, c); +043 \} else \{ +044 /* The result has the *opposite* sign from */ +045 /* the first number. */ +046 c->sign = (sa == MP_ZPOS) ? MP_NEG : MP_ZPOS; +047 /* The second has a larger magnitude */ +048 res = s_mp_sub (b, a, c); +049 \} +050 \} +051 return res; +052 \} +053 +\end{alltt} +\end{small} + +Much like the implementation of algorithm mp\_add the variable $res$ is used to catch the return code of the unsigned addition or subtraction operations +and forward it to the end of the function. On line 38 the ``not equal to'' \textbf{MP\_LT} expression is used to emulate a +``greater than or equal to'' comparison. + +\section{Bit and Digit Shifting} +It is quite common to think of a multiple precision integer as a polynomial in $x$, that is $y = f(\beta)$ where $f(x) = \sum_{i=0}^{n-1} a_i x^i$. +This notation arises within discussion of Montgomery and Diminished Radix Reduction as well as Karatsuba multiplication and squaring. + +In order to facilitate operations on polynomials in $x$ as above a series of simple ``digit'' algorithms have to be established. That is to shift +the digits left or right as well to shift individual bits of the digits left and right. It is important to note that not all ``shift'' operations +are on radix-$\beta$ digits. + +\subsection{Multiplication by Two} + +In a binary system where the radix is a power of two multiplication by two not only arises often in other algorithms it is a fairly efficient +operation to perform. A single precision logical shift left is sufficient to multiply a single digit by two. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_mul\_2}. \\ +\textbf{Input}. One mp\_int $a$ \\ +\textbf{Output}. $b = 2a$. \\ +\hline \\ +1. If $b.alloc < a.used + 1$ then grow $b$ to hold $a.used + 1$ digits. (\textit{mp\_grow}) \\ +2. $oldused \leftarrow b.used$ \\ +3. $b.used \leftarrow a.used$ \\ +4. $r \leftarrow 0$ \\ +5. for $n$ from 0 to $a.used - 1$ do \\ +\hspace{3mm}5.1 $rr \leftarrow a_n >> (lg(\beta) - 1)$ \\ +\hspace{3mm}5.2 $b_n \leftarrow (a_n << 1) + r \mbox{ (mod }\beta\mbox{)}$ \\ +\hspace{3mm}5.3 $r \leftarrow rr$ \\ +6. If $r \ne 0$ then do \\ +\hspace{3mm}6.1 $b_{n + 1} \leftarrow r$ \\ +\hspace{3mm}6.2 $b.used \leftarrow b.used + 1$ \\ +7. If $b.used < oldused - 1$ then do \\ +\hspace{3mm}7.1 for $n$ from $b.used$ to $oldused - 1$ do \\ +\hspace{6mm}7.1.1 $b_n \leftarrow 0$ \\ +8. $b.sign \leftarrow a.sign$ \\ +9. Return(\textit{MP\_OKAY}).\\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_mul\_2} +\end{figure} + +\textbf{Algorithm mp\_mul\_2.} +This algorithm will quickly multiply a mp\_int by two provided $\beta$ is a power of two. Neither \cite{TAOCPV2} nor \cite{HAC} describe such +an algorithm despite the fact it arises often in other algorithms. The algorithm is setup much like the lower level algorithm s\_mp\_add since +it is for all intents and purposes equivalent to the operation $b = \vert a \vert + \vert a \vert$. + +Step 1 and 2 grow the input as required to accomodate the maximum number of \textbf{used} digits in the result. The initial \textbf{used} count +is set to $a.used$ at step 4. Only if there is a final carry will the \textbf{used} count require adjustment. + +Step 6 is an optimization implementation of the addition loop for this specific case. That is since the two values being added together +are the same there is no need to perform two reads from the digits of $a$. Step 6.1 performs a single precision shift on the current digit $a_n$ to +obtain what will be the carry for the next iteration. Step 6.2 calculates the $n$'th digit of the result as single precision shift of $a_n$ plus +the previous carry. Recall from section 5.1 that $a_n << 1$ is equivalent to $a_n \cdot 2$. An iteration of the addition loop is finished with +forwarding the carry to the next iteration. + +Step 7 takes care of any final carry by setting the $a.used$'th digit of the result to the carry and augmenting the \textbf{used} count of $b$. +Step 8 clears any leading digits of $b$ in case it originally had a larger magnitude than $a$. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_mul\_2.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* b = a*2 */ +018 int mp_mul_2(mp_int * a, mp_int * b) +019 \{ +020 int x, res, oldused; +021 +022 /* grow to accomodate result */ +023 if (b->alloc < a->used + 1) \{ +024 if ((res = mp_grow (b, a->used + 1)) != MP_OKAY) \{ +025 return res; +026 \} +027 \} +028 +029 oldused = b->used; +030 b->used = a->used; +031 +032 \{ +033 register mp_digit r, rr, *tmpa, *tmpb; +034 +035 /* alias for source */ +036 tmpa = a->dp; +037 +038 /* alias for dest */ +039 tmpb = b->dp; +040 +041 /* carry */ +042 r = 0; +043 for (x = 0; x < a->used; x++) \{ +044 +045 /* get what will be the *next* carry bit from the +046 * MSB of the current digit +047 */ +048 rr = *tmpa >> ((mp_digit)(DIGIT_BIT - 1)); +049 +050 /* now shift up this digit, add in the carry [from the previous] */ +051 *tmpb++ = ((*tmpa++ << ((mp_digit)1)) | r) & MP_MASK; +052 +053 /* copy the carry that would be from the source +054 * digit into the next iteration +055 */ +056 r = rr; +057 \} +058 +059 /* new leading digit? */ +060 if (r != 0) \{ +061 /* add a MSB which is always 1 at this point */ +062 *tmpb = 1; +063 ++(b->used); +064 \} +065 +066 /* now zero any excess digits on the destination +067 * that we didn't write to +068 */ +069 tmpb = b->dp + b->used; +070 for (x = b->used; x < oldused; x++) \{ +071 *tmpb++ = 0; +072 \} +073 \} +074 b->sign = a->sign; +075 return MP_OKAY; +076 \} +\end{alltt} +\end{small} + +This implementation is essentially an optimized implementation of s\_mp\_add for the case of doubling an input. The only noteworthy difference +is the use of the logical shift operator on line 51 to perform a single precision doubling. + +\subsection{Division by Two} +A division by two can just as easily be accomplished with a logical shift right as multiplication by two can be with a logical shift left. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_div\_2}. \\ +\textbf{Input}. One mp\_int $a$ \\ +\textbf{Output}. $b = a/2$. \\ +\hline \\ +1. If $b.alloc < a.used$ then grow $b$ to hold $a.used$ digits. (\textit{mp\_grow}) \\ +2. If the reallocation failed return(\textit{MP\_MEM}). \\ +3. $oldused \leftarrow b.used$ \\ +4. $b.used \leftarrow a.used$ \\ +5. $r \leftarrow 0$ \\ +6. for $n$ from $b.used - 1$ to $0$ do \\ +\hspace{3mm}6.1 $rr \leftarrow a_n \mbox{ (mod }2\mbox{)}$\\ +\hspace{3mm}6.2 $b_n \leftarrow (a_n >> 1) + (r << (lg(\beta) - 1)) \mbox{ (mod }\beta\mbox{)}$ \\ +\hspace{3mm}6.3 $r \leftarrow rr$ \\ +7. If $b.used < oldused - 1$ then do \\ +\hspace{3mm}7.1 for $n$ from $b.used$ to $oldused - 1$ do \\ +\hspace{6mm}7.1.1 $b_n \leftarrow 0$ \\ +8. $b.sign \leftarrow a.sign$ \\ +9. Clamp excess digits of $b$. (\textit{mp\_clamp}) \\ +10. Return(\textit{MP\_OKAY}).\\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_div\_2} +\end{figure} + +\textbf{Algorithm mp\_div\_2.} +This algorithm will divide an mp\_int by two using logical shifts to the right. Like mp\_mul\_2 it uses a modified low level addition +core as the basis of the algorithm. Unlike mp\_mul\_2 the shift operations work from the leading digit to the trailing digit. The algorithm +could be written to work from the trailing digit to the leading digit however, it would have to stop one short of $a.used - 1$ digits to prevent +reading past the end of the array of digits. + +Essentially the loop at step 6 is similar to that of mp\_mul\_2 except the logical shifts go in the opposite direction and the carry is at the +least significant bit not the most significant bit. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_div\_2.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* b = a/2 */ +018 int mp_div_2(mp_int * a, mp_int * b) +019 \{ +020 int x, res, oldused; +021 +022 /* copy */ +023 if (b->alloc < a->used) \{ +024 if ((res = mp_grow (b, a->used)) != MP_OKAY) \{ +025 return res; +026 \} +027 \} +028 +029 oldused = b->used; +030 b->used = a->used; +031 \{ +032 register mp_digit r, rr, *tmpa, *tmpb; +033 +034 /* source alias */ +035 tmpa = a->dp + b->used - 1; +036 +037 /* dest alias */ +038 tmpb = b->dp + b->used - 1; +039 +040 /* carry */ +041 r = 0; +042 for (x = b->used - 1; x >= 0; x--) \{ +043 /* get the carry for the next iteration */ +044 rr = *tmpa & 1; +045 +046 /* shift the current digit, add in carry and store */ +047 *tmpb-- = (*tmpa-- >> 1) | (r << (DIGIT_BIT - 1)); +048 +049 /* forward carry to next iteration */ +050 r = rr; +051 \} +052 +053 /* zero excess digits */ +054 tmpb = b->dp + b->used; +055 for (x = b->used; x < oldused; x++) \{ +056 *tmpb++ = 0; +057 \} +058 \} +059 b->sign = a->sign; +060 mp_clamp (b); +061 return MP_OKAY; +062 \} +\end{alltt} +\end{small} + +\section{Polynomial Basis Operations} +Recall from section 5.3 that any integer can be represented as a polynomial in $x$ as $y = f(\beta)$. Such a representation is also known as +the polynomial basis \cite[pp. 48]{ROSE}. Given such a notation a multiplication or division by $x$ amounts to shifting whole digits a single +place. The need for such operations arises in several other higher level algorithms such as Barrett and Montgomery reduction, integer +division and Karatsuba multiplication. + +Converting from an array of digits to polynomial basis is very simple. Consider the integer $y \equiv (a_2, a_1, a_0)_{\beta}$ and recall that +$y = \sum_{i=0}^{2} a_i \beta^i$. Simply replace $\beta$ with $x$ and the expression is in polynomial basis. For example, $f(x) = 8x + 9$ is the +polynomial basis representation for $89$ using radix ten. That is, $f(10) = 8(10) + 9 = 89$. + +\subsection{Multiplication by $x$} + +Given a polynomial in $x$ such as $f(x) = a_n x^n + a_{n-1} x^{n-1} + ... + a_0$ multiplying by $x$ amounts to shifting the coefficients up one +degree. In this case $f(x) \cdot x = a_n x^{n+1} + a_{n-1} x^n + ... + a_0 x$. From a scalar basis point of view multiplying by $x$ is equivalent to +multiplying by the integer $\beta$. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_lshd}. \\ +\textbf{Input}. One mp\_int $a$ and an integer $b$ \\ +\textbf{Output}. $a \leftarrow a \cdot \beta^b$ (equivalent to multiplication by $x^b$). \\ +\hline \\ +1. If $b \le 0$ then return(\textit{MP\_OKAY}). \\ +2. If $a.alloc < a.used + b$ then grow $a$ to at least $a.used + b$ digits. (\textit{mp\_grow}). \\ +3. If the reallocation failed return(\textit{MP\_MEM}). \\ +4. $a.used \leftarrow a.used + b$ \\ +5. $i \leftarrow a.used - 1$ \\ +6. $j \leftarrow a.used - 1 - b$ \\ +7. for $n$ from $a.used - 1$ to $b$ do \\ +\hspace{3mm}7.1 $a_{i} \leftarrow a_{j}$ \\ +\hspace{3mm}7.2 $i \leftarrow i - 1$ \\ +\hspace{3mm}7.3 $j \leftarrow j - 1$ \\ +8. for $n$ from 0 to $b - 1$ do \\ +\hspace{3mm}8.1 $a_n \leftarrow 0$ \\ +9. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_lshd} +\end{figure} + +\textbf{Algorithm mp\_lshd.} +This algorithm multiplies an mp\_int by the $b$'th power of $x$. This is equivalent to multiplying by $\beta^b$. The algorithm differs +from the other algorithms presented so far as it performs the operation in place instead storing the result in a separate location. The +motivation behind this change is due to the way this function is typically used. Algorithms such as mp\_add store the result in an optionally +different third mp\_int because the original inputs are often still required. Algorithm mp\_lshd (\textit{and similarly algorithm mp\_rshd}) is +typically used on values where the original value is no longer required. The algorithm will return success immediately if +$b \le 0$ since the rest of algorithm is only valid when $b > 0$. + +First the destination $a$ is grown as required to accomodate the result. The counters $i$ and $j$ are used to form a \textit{sliding window} over +the digits of $a$ of length $b$. The head of the sliding window is at $i$ (\textit{the leading digit}) and the tail at $j$ (\textit{the trailing digit}). +The loop on step 7 copies the digit from the tail to the head. In each iteration the window is moved down one digit. The last loop on +step 8 sets the lower $b$ digits to zero. + +\newpage +\begin{center} +\begin{figure}[here] +\includegraphics{pics/sliding_window} +\caption{Sliding Window Movement} +\label{pic:sliding_window} +\end{figure} +\end{center} + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_lshd.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* shift left a certain amount of digits */ +018 int mp_lshd (mp_int * a, int b) +019 \{ +020 int x, res; +021 +022 /* if its less than zero return */ +023 if (b <= 0) \{ +024 return MP_OKAY; +025 \} +026 +027 /* grow to fit the new digits */ +028 if (a->alloc < a->used + b) \{ +029 if ((res = mp_grow (a, a->used + b)) != MP_OKAY) \{ +030 return res; +031 \} +032 \} +033 +034 \{ +035 register mp_digit *top, *bottom; +036 +037 /* increment the used by the shift amount then copy upwards */ +038 a->used += b; +039 +040 /* top */ +041 top = a->dp + a->used - 1; +042 +043 /* base */ +044 bottom = a->dp + a->used - 1 - b; +045 +046 /* much like mp_rshd this is implemented using a sliding window +047 * except the window goes the otherway around. Copying from +048 * the bottom to the top. see bn_mp_rshd.c for more info. +049 */ +050 for (x = a->used - 1; x >= b; x--) \{ +051 *top-- = *bottom--; +052 \} +053 +054 /* zero the lower digits */ +055 top = a->dp; +056 for (x = 0; x < b; x++) \{ +057 *top++ = 0; +058 \} +059 \} +060 return MP_OKAY; +061 \} +\end{alltt} +\end{small} + +The if statement on line 23 ensures that the $b$ variable is greater than zero. The \textbf{used} count is incremented by $b$ before +the copy loop begins. This elminates the need for an additional variable in the for loop. The variable $top$ on line 41 is an alias +for the leading digit while $bottom$ on line 44 is an alias for the trailing edge. The aliases form a window of exactly $b$ digits +over the input. + +\subsection{Division by $x$} + +Division by powers of $x$ is easily achieved by shifting the digits right and removing any that will end up to the right of the zero'th digit. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_rshd}. \\ +\textbf{Input}. One mp\_int $a$ and an integer $b$ \\ +\textbf{Output}. $a \leftarrow a / \beta^b$ (Divide by $x^b$). \\ +\hline \\ +1. If $b \le 0$ then return. \\ +2. If $a.used \le b$ then do \\ +\hspace{3mm}2.1 Zero $a$. (\textit{mp\_zero}). \\ +\hspace{3mm}2.2 Return. \\ +3. $i \leftarrow 0$ \\ +4. $j \leftarrow b$ \\ +5. for $n$ from 0 to $a.used - b - 1$ do \\ +\hspace{3mm}5.1 $a_i \leftarrow a_j$ \\ +\hspace{3mm}5.2 $i \leftarrow i + 1$ \\ +\hspace{3mm}5.3 $j \leftarrow j + 1$ \\ +6. for $n$ from $a.used - b$ to $a.used - 1$ do \\ +\hspace{3mm}6.1 $a_n \leftarrow 0$ \\ +7. $a.used \leftarrow a.used - b$ \\ +8. Return. \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_rshd} +\end{figure} + +\textbf{Algorithm mp\_rshd.} +This algorithm divides the input in place by the $b$'th power of $x$. It is analogous to dividing by a $\beta^b$ but much quicker since +it does not require single precision division. This algorithm does not actually return an error code as it cannot fail. + +If the input $b$ is less than one the algorithm quickly returns without performing any work. If the \textbf{used} count is less than or equal +to the shift count $b$ then it will simply zero the input and return. + +After the trivial cases of inputs have been handled the sliding window is setup. Much like the case of algorithm mp\_lshd a sliding window that +is $b$ digits wide is used to copy the digits. Unlike mp\_lshd the window slides in the opposite direction from the trailing to the leading digit. +Also the digits are copied from the leading to the trailing edge. + +Once the window copy is complete the upper digits must be zeroed and the \textbf{used} count decremented. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_rshd.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* shift right a certain amount of digits */ +018 void mp_rshd (mp_int * a, int b) +019 \{ +020 int x; +021 +022 /* if b <= 0 then ignore it */ +023 if (b <= 0) \{ +024 return; +025 \} +026 +027 /* if b > used then simply zero it and return */ +028 if (a->used <= b) \{ +029 mp_zero (a); +030 return; +031 \} +032 +033 \{ +034 register mp_digit *bottom, *top; +035 +036 /* shift the digits down */ +037 +038 /* bottom */ +039 bottom = a->dp; +040 +041 /* top [offset into digits] */ +042 top = a->dp + b; +043 +044 /* this is implemented as a sliding window where +045 * the window is b-digits long and digits from +046 * the top of the window are copied to the bottom +047 * +048 * e.g. +049 +050 b-2 | b-1 | b0 | b1 | b2 | ... | bb | ----> +051 /\symbol{92} | ----> +052 \symbol{92}-------------------/ ----> +053 */ +054 for (x = 0; x < (a->used - b); x++) \{ +055 *bottom++ = *top++; +056 \} +057 +058 /* zero the top digits */ +059 for (; x < a->used; x++) \{ +060 *bottom++ = 0; +061 \} +062 \} +063 +064 /* remove excess digits */ +065 a->used -= b; +066 \} +\end{alltt} +\end{small} + +The only noteworthy element of this routine is the lack of a return type. + +-- Will update later to give it a return type...Tom + +\section{Powers of Two} + +Now that algorithms for moving single bits as well as whole digits exist algorithms for moving the ``in between'' distances are required. For +example, to quickly multiply by $2^k$ for any $k$ without using a full multiplier algorithm would prove useful. Instead of performing single +shifts $k$ times to achieve a multiplication by $2^{\pm k}$ a mixture of whole digit shifting and partial digit shifting is employed. + +\subsection{Multiplication by Power of Two} + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_mul\_2d}. \\ +\textbf{Input}. One mp\_int $a$ and an integer $b$ \\ +\textbf{Output}. $c \leftarrow a \cdot 2^b$. \\ +\hline \\ +1. $c \leftarrow a$. (\textit{mp\_copy}) \\ +2. If $c.alloc < c.used + \lfloor b / lg(\beta) \rfloor + 2$ then grow $c$ accordingly. \\ +3. If the reallocation failed return(\textit{MP\_MEM}). \\ +4. If $b \ge lg(\beta)$ then \\ +\hspace{3mm}4.1 $c \leftarrow c \cdot \beta^{\lfloor b / lg(\beta) \rfloor}$ (\textit{mp\_lshd}). \\ +\hspace{3mm}4.2 If step 4.1 failed return(\textit{MP\_MEM}). \\ +5. $d \leftarrow b \mbox{ (mod }lg(\beta)\mbox{)}$ \\ +6. If $d \ne 0$ then do \\ +\hspace{3mm}6.1 $mask \leftarrow 2^d$ \\ +\hspace{3mm}6.2 $r \leftarrow 0$ \\ +\hspace{3mm}6.3 for $n$ from $0$ to $c.used - 1$ do \\ +\hspace{6mm}6.3.1 $rr \leftarrow c_n >> (lg(\beta) - d) \mbox{ (mod }mask\mbox{)}$ \\ +\hspace{6mm}6.3.2 $c_n \leftarrow (c_n << d) + r \mbox{ (mod }\beta\mbox{)}$ \\ +\hspace{6mm}6.3.3 $r \leftarrow rr$ \\ +\hspace{3mm}6.4 If $r > 0$ then do \\ +\hspace{6mm}6.4.1 $c_{c.used} \leftarrow r$ \\ +\hspace{6mm}6.4.2 $c.used \leftarrow c.used + 1$ \\ +7. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_mul\_2d} +\end{figure} + +\textbf{Algorithm mp\_mul\_2d.} +This algorithm multiplies $a$ by $2^b$ and stores the result in $c$. The algorithm uses algorithm mp\_lshd and a derivative of algorithm mp\_mul\_2 to +quickly compute the product. + +First the algorithm will multiply $a$ by $x^{\lfloor b / lg(\beta) \rfloor}$ which will ensure that the remainder multiplicand is less than +$\beta$. For example, if $b = 37$ and $\beta = 2^{28}$ then this step will multiply by $x$ leaving a multiplication by $2^{37 - 28} = 2^{9}$ +left. + +After the digits have been shifted appropriately at most $lg(\beta) - 1$ shifts are left to perform. Step 5 calculates the number of remaining shifts +required. If it is non-zero a modified shift loop is used to calculate the remaining product. +Essentially the loop is a generic version of algorith mp\_mul2 designed to handle any shift count in the range $1 \le x < lg(\beta)$. The $mask$ +variable is used to extract the upper $d$ bits to form the carry for the next iteration. + +This algorithm is loosely measured as a $O(2n)$ algorithm which means that if the input is $n$-digits that it takes $2n$ ``time'' to +complete. It is possible to optimize this algorithm down to a $O(n)$ algorithm at a cost of making the algorithm slightly harder to follow. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_mul\_2d.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* shift left by a certain bit count */ +018 int mp_mul_2d (mp_int * a, int b, mp_int * c) +019 \{ +020 mp_digit d; +021 int res; +022 +023 /* copy */ +024 if (a != c) \{ +025 if ((res = mp_copy (a, c)) != MP_OKAY) \{ +026 return res; +027 \} +028 \} +029 +030 if (c->alloc < (int)(c->used + b/DIGIT_BIT + 1)) \{ +031 if ((res = mp_grow (c, c->used + b / DIGIT_BIT + 1)) != MP_OKAY) \{ +032 return res; +033 \} +034 \} +035 +036 /* shift by as many digits in the bit count */ +037 if (b >= (int)DIGIT_BIT) \{ +038 if ((res = mp_lshd (c, b / DIGIT_BIT)) != MP_OKAY) \{ +039 return res; +040 \} +041 \} +042 +043 /* shift any bit count < DIGIT_BIT */ +044 d = (mp_digit) (b % DIGIT_BIT); +045 if (d != 0) \{ +046 register mp_digit *tmpc, shift, mask, r, rr; +047 register int x; +048 +049 /* bitmask for carries */ +050 mask = (((mp_digit)1) << d) - 1; +051 +052 /* shift for msbs */ +053 shift = DIGIT_BIT - d; +054 +055 /* alias */ +056 tmpc = c->dp; +057 +058 /* carry */ +059 r = 0; +060 for (x = 0; x < c->used; x++) \{ +061 /* get the higher bits of the current word */ +062 rr = (*tmpc >> shift) & mask; +063 +064 /* shift the current word and OR in the carry */ +065 *tmpc = ((*tmpc << d) | r) & MP_MASK; +066 ++tmpc; +067 +068 /* set the carry to the carry bits of the current word */ +069 r = rr; +070 \} +071 +072 /* set final carry */ +073 if (r != 0) \{ +074 c->dp[(c->used)++] = r; +075 \} +076 \} +077 mp_clamp (c); +078 return MP_OKAY; +079 \} +\end{alltt} +\end{small} + +Notes to be revised when code is updated. -- Tom + +\subsection{Division by Power of Two} + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_div\_2d}. \\ +\textbf{Input}. One mp\_int $a$ and an integer $b$ \\ +\textbf{Output}. $c \leftarrow \lfloor a / 2^b \rfloor, d \leftarrow a \mbox{ (mod }2^b\mbox{)}$. \\ +\hline \\ +1. If $b \le 0$ then do \\ +\hspace{3mm}1.1 $c \leftarrow a$ (\textit{mp\_copy}) \\ +\hspace{3mm}1.2 $d \leftarrow 0$ (\textit{mp\_zero}) \\ +\hspace{3mm}1.3 Return(\textit{MP\_OKAY}). \\ +2. $c \leftarrow a$ \\ +3. $d \leftarrow a \mbox{ (mod }2^b\mbox{)}$ (\textit{mp\_mod\_2d}) \\ +4. If $b \ge lg(\beta)$ then do \\ +\hspace{3mm}4.1 $c \leftarrow \lfloor c/\beta^{\lfloor b/lg(\beta) \rfloor} \rfloor$ (\textit{mp\_rshd}). \\ +5. $k \leftarrow b \mbox{ (mod }lg(\beta)\mbox{)}$ \\ +6. If $k \ne 0$ then do \\ +\hspace{3mm}6.1 $mask \leftarrow 2^k$ \\ +\hspace{3mm}6.2 $r \leftarrow 0$ \\ +\hspace{3mm}6.3 for $n$ from $c.used - 1$ to $0$ do \\ +\hspace{6mm}6.3.1 $rr \leftarrow c_n \mbox{ (mod }mask\mbox{)}$ \\ +\hspace{6mm}6.3.2 $c_n \leftarrow (c_n >> k) + (r << (lg(\beta) - k))$ \\ +\hspace{6mm}6.3.3 $r \leftarrow rr$ \\ +7. Clamp excess digits of $c$. (\textit{mp\_clamp}) \\ +8. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_div\_2d} +\end{figure} + +\textbf{Algorithm mp\_div\_2d.} +This algorithm will divide an input $a$ by $2^b$ and produce the quotient and remainder. The algorithm is designed much like algorithm +mp\_mul\_2d by first using whole digit shifts then single precision shifts. This algorithm will also produce the remainder of the division +by using algorithm mp\_mod\_2d. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_div\_2d.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* shift right by a certain bit count (store quotient in c, optional remaind + er in d) */ +018 int mp_div_2d (mp_int * a, int b, mp_int * c, mp_int * d) +019 \{ +020 mp_digit D, r, rr; +021 int x, res; +022 mp_int t; +023 +024 +025 /* if the shift count is <= 0 then we do no work */ +026 if (b <= 0) \{ +027 res = mp_copy (a, c); +028 if (d != NULL) \{ +029 mp_zero (d); +030 \} +031 return res; +032 \} +033 +034 if ((res = mp_init (&t)) != MP_OKAY) \{ +035 return res; +036 \} +037 +038 /* get the remainder */ +039 if (d != NULL) \{ +040 if ((res = mp_mod_2d (a, b, &t)) != MP_OKAY) \{ +041 mp_clear (&t); +042 return res; +043 \} +044 \} +045 +046 /* copy */ +047 if ((res = mp_copy (a, c)) != MP_OKAY) \{ +048 mp_clear (&t); +049 return res; +050 \} +051 +052 /* shift by as many digits in the bit count */ +053 if (b >= (int)DIGIT_BIT) \{ +054 mp_rshd (c, b / DIGIT_BIT); +055 \} +056 +057 /* shift any bit count < DIGIT_BIT */ +058 D = (mp_digit) (b % DIGIT_BIT); +059 if (D != 0) \{ +060 register mp_digit *tmpc, mask, shift; +061 +062 /* mask */ +063 mask = (((mp_digit)1) << D) - 1; +064 +065 /* shift for lsb */ +066 shift = DIGIT_BIT - D; +067 +068 /* alias */ +069 tmpc = c->dp + (c->used - 1); +070 +071 /* carry */ +072 r = 0; +073 for (x = c->used - 1; x >= 0; x--) \{ +074 /* get the lower bits of this word in a temp */ +075 rr = *tmpc & mask; +076 +077 /* shift the current word and mix in the carry bits from the previous + word */ +078 *tmpc = (*tmpc >> D) | (r << shift); +079 --tmpc; +080 +081 /* set the carry to the carry bits of the current word found above */ +082 r = rr; +083 \} +084 \} +085 mp_clamp (c); +086 if (d != NULL) \{ +087 mp_exch (&t, d); +088 \} +089 mp_clear (&t); +090 return MP_OKAY; +091 \} +\end{alltt} +\end{small} + +The implementation of algorithm mp\_div\_2d is slightly different than the algorithm specifies. The remainder $d$ may be optionally +ignored by passing \textbf{NULL} as the pointer to the mp\_int variable. The temporary mp\_int variable $t$ is used to hold the +result of the remainder operation until the end. This allows $d$ and $a$ to represent the same mp\_int without modifying $a$ before +the quotient is obtained. + +The remainder of the source code is essentially the same as the source code for mp\_mul\_2d. (-- Fix this paragraph up later, Tom). + +\subsection{Remainder of Division by Power of Two} + +The last algorithm in the series of polynomial basis power of two algorithms is calculating the remainder of division by $2^b$. This +algorithm benefits from the fact that in twos complement arithmetic $a \mbox{ (mod }2^b\mbox{)}$ is the same as $a$ AND $2^b - 1$. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_mod\_2d}. \\ +\textbf{Input}. One mp\_int $a$ and an integer $b$ \\ +\textbf{Output}. $c \leftarrow a \mbox{ (mod }2^b\mbox{)}$. \\ +\hline \\ +1. If $b \le 0$ then do \\ +\hspace{3mm}1.1 $c \leftarrow 0$ (\textit{mp\_zero}) \\ +\hspace{3mm}1.2 Return(\textit{MP\_OKAY}). \\ +2. If $b > a.used \cdot lg(\beta)$ then do \\ +\hspace{3mm}2.1 $c \leftarrow a$ (\textit{mp\_copy}) \\ +\hspace{3mm}2.2 Return the result of step 2.1. \\ +3. $c \leftarrow a$ \\ +4. If step 3 failed return(\textit{MP\_MEM}). \\ +5. for $n$ from $\lceil b / lg(\beta) \rceil$ to $c.used$ do \\ +\hspace{3mm}5.1 $c_n \leftarrow 0$ \\ +6. $k \leftarrow b \mbox{ (mod }lg(\beta)\mbox{)}$ \\ +7. $c_{\lfloor b / lg(\beta) \rfloor} \leftarrow c_{\lfloor b / lg(\beta) \rfloor} \mbox{ (mod }2^{k}\mbox{)}$. \\ +8. Clamp excess digits of $c$. (\textit{mp\_clamp}) \\ +9. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_mod\_2d} +\end{figure} + +\textbf{Algorithm mp\_mod\_2d.} +This algorithm will quickly calculate the value of $a \mbox{ (mod }2^b\mbox{)}$. First if $b$ is less than or equal to zero the +result is set to zero. If $b$ is greater than the number of bits in $a$ then it simply copies $a$ to $c$ and returns. Otherwise, $a$ +is copied to $b$, leading digits are removed and the remaining leading digit is trimed to the exact bit count. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_mod\_2d.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* calc a value mod 2**b */ +018 int +019 mp_mod_2d (mp_int * a, int b, mp_int * c) +020 \{ +021 int x, res; +022 +023 /* if b is <= 0 then zero the int */ +024 if (b <= 0) \{ +025 mp_zero (c); +026 return MP_OKAY; +027 \} +028 +029 /* if the modulus is larger than the value than return */ +030 if (b > (int) (a->used * DIGIT_BIT)) \{ +031 res = mp_copy (a, c); +032 return res; +033 \} +034 +035 /* copy */ +036 if ((res = mp_copy (a, c)) != MP_OKAY) \{ +037 return res; +038 \} +039 +040 /* zero digits above the last digit of the modulus */ +041 for (x = (b / DIGIT_BIT) + ((b % DIGIT_BIT) == 0 ? 0 : 1); x < c->used; x+ + +) \{ +042 c->dp[x] = 0; +043 \} +044 /* clear the digit that is not completely outside/inside the modulus */ +045 c->dp[b / DIGIT_BIT] &= +046 (mp_digit) ((((mp_digit) 1) << (((mp_digit) b) % DIGIT_BIT)) - ((mp_digi + t) 1)); +047 mp_clamp (c); +048 return MP_OKAY; +049 \} +\end{alltt} +\end{small} + +-- Add comments later, Tom. + +\section*{Exercises} +\begin{tabular}{cl} +$\left [ 3 \right ] $ & Devise an algorithm that performs $a \cdot 2^b$ for generic values of $b$ \\ + & in $O(n)$ time. \\ + &\\ +$\left [ 3 \right ] $ & Devise an efficient algorithm to multiply by small low hamming \\ + & weight values such as $3$, $5$ and $9$. Extend it to handle all values \\ + & upto $64$ with a hamming weight less than three. \\ + &\\ +$\left [ 2 \right ] $ & Modify the preceding algorithm to handle values of the form \\ + & $2^k - 1$ as well. \\ + &\\ +$\left [ 3 \right ] $ & Using only algorithms mp\_mul\_2, mp\_div\_2 and mp\_add create an \\ + & algorithm to multiply two integers in roughly $O(2n^2)$ time for \\ + & any $n$-bit input. Note that the time of addition is ignored in the \\ + & calculation. \\ + & \\ +$\left [ 5 \right ] $ & Improve the previous algorithm to have a working time of at most \\ + & $O \left (2^{(k-1)}n + \left ({2n^2 \over k} \right ) \right )$ for an appropriate choice of $k$. Again ignore \\ + & the cost of addition. \\ + & \\ +$\left [ 2 \right ] $ & Devise a chart to find optimal values of $k$ for the previous problem \\ + & for $n = 64 \ldots 1024$ in steps of $64$. \\ + & \\ +$\left [ 2 \right ] $ & Using only algorithms mp\_abs and mp\_sub devise another method for \\ + & calculating the result of a signed comparison. \\ + & +\end{tabular} + +\chapter{Multiplication and Squaring} +\section{The Multipliers} +For most number theoretic problems including certain public key cryptographic algorithms, the ``multipliers'' form the most important subset of +algorithms of any multiple precision integer package. The set of multiplier algorithms include integer multiplication, squaring and modular reduction +where in each of the algorithms single precision multiplication is the dominant operation performed. This chapter will discuss integer multiplication +and squaring, leaving modular reductions for the subsequent chapter. + +The importance of the multiplier algorithms is for the most part driven by the fact that certain popular public key algorithms are based on modular +exponentiation, that is computing $d \equiv a^b \mbox{ (mod }c\mbox{)}$ for some arbitrary choice of $a$, $b$, $c$ and $d$. During a modular +exponentiation the majority\footnote{Roughly speaking a modular exponentiation will spend about 40\% of the time performing modular reductions, +35\% of the time performing squaring and 25\% of the time performing multiplications.} of the processor time is spent performing single precision +multiplications. + +For centuries general purpose multiplication has required a lengthly $O(n^2)$ process, whereby each digit of one multiplicand has to be multiplied +against every digit of the other multiplicand. Traditional long-hand multiplication is based on this process; while the techniques can differ the +overall algorithm used is essentially the same. Only ``recently'' have faster algorithms been studied. First Karatsuba multiplication was discovered in +1962. This algorithm can multiply two numbers with considerably fewer single precision multiplications when compared to the long-hand approach. +This technique led to the discovery of polynomial basis algorithms (\textit{good reference?}) and subquently Fourier Transform based solutions. + +\section{Multiplication} +\subsection{The Baseline Multiplication} +\index{baseline multiplication} +Computing the product of two integers in software can be achieved using a trivial adaptation of the standard $O(n^2)$ long-hand multiplication +algorithm that school children are taught. The algorithm is considered an $O(n^2)$ algorithm since for two $n$-digit inputs $n^2$ single precision +multiplications are required. More specifically for a $m$ and $n$ digit input $m \cdot n$ single precision multiplications are required. To +simplify most discussions, it will be assumed that the inputs have comparable number of digits. + +The ``baseline multiplication'' algorithm is designed to act as the ``catch-all'' algorithm, only to be used when the faster algorithms cannot be +used. This algorithm does not use any particularly interesting optimizations and should ideally be avoided if possible. One important +facet of this algorithm, is that it has been modified to only produce a certain amount of output digits as resolution. The importance of this +modification will become evident during the discussion of Barrett modular reduction. Recall that for a $n$ and $m$ digit input the product +will be at most $n + m$ digits. Therefore, this algorithm can be reduced to a full multiplier by having it produce $n + m$ digits of the product. + +Recall from sub-section 5.2.2 the definition of $\gamma$ as the number of bits in the type \textbf{mp\_digit}. We shall now extend the variable set to +include $\alpha$ which shall represent the number of bits in the type \textbf{mp\_word}. This implies that $2^{\alpha} > 2 \cdot \beta^2$. The +constant $\delta = 2^{\alpha - 2lg(\beta)}$ will represent the maximal weight of any column in a product (\textit{see sub-section 6.2.2 for more information}). + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{s\_mp\_mul\_digs}. \\ +\textbf{Input}. mp\_int $a$, mp\_int $b$ and an integer $digs$ \\ +\textbf{Output}. $c \leftarrow \vert a \vert \cdot \vert b \vert \mbox{ (mod }\beta^{digs}\mbox{)}$. \\ +\hline \\ +1. If min$(a.used, b.used) < \delta$ then do \\ +\hspace{3mm}1.1 Calculate $c = \vert a \vert \cdot \vert b \vert$ by the Comba method (\textit{see algorithm~\ref{fig:COMBAMULT}}). \\ +\hspace{3mm}1.2 Return the result of step 1.1 \\ +\\ +Allocate and initialize a temporary mp\_int. \\ +2. Init $t$ to be of size $digs$ \\ +3. If step 2 failed return(\textit{MP\_MEM}). \\ +4. $t.used \leftarrow digs$ \\ +\\ +Compute the product. \\ +5. for $ix$ from $0$ to $a.used - 1$ do \\ +\hspace{3mm}5.1 $u \leftarrow 0$ \\ +\hspace{3mm}5.2 $pb \leftarrow \mbox{min}(b.used, digs - ix)$ \\ +\hspace{3mm}5.3 If $pb < 1$ then goto step 6. \\ +\hspace{3mm}5.4 for $iy$ from $0$ to $pb - 1$ do \\ +\hspace{6mm}5.4.1 $\hat r \leftarrow t_{iy + ix} + a_{ix} \cdot b_{iy} + u$ \\ +\hspace{6mm}5.4.2 $t_{iy + ix} \leftarrow \hat r \mbox{ (mod }\beta\mbox{)}$ \\ +\hspace{6mm}5.4.3 $u \leftarrow \lfloor \hat r / \beta \rfloor$ \\ +\hspace{3mm}5.5 if $ix + pb < digs$ then do \\ +\hspace{6mm}5.5.1 $t_{ix + pb} \leftarrow u$ \\ +6. Clamp excess digits of $t$. \\ +7. Swap $c$ with $t$ \\ +8. Clear $t$ \\ +9. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm s\_mp\_mul\_digs} +\end{figure} + +\textbf{Algorithm s\_mp\_mul\_digs.} +This algorithm computes the unsigned product of two inputs $a$ and $b$, limited to an output precision of $digs$ digits. While it may seem +a bit awkward to modify the function from its simple $O(n^2)$ description, the usefulness of partial multipliers will arise in a subsequent +algorithm. The algorithm is loosely based on algorithm 14.12 from \cite[pp. 595]{HAC} and is similar to Algorithm M of Knuth \cite[pp. 268]{TAOCPV2}. +Algorithm s\_mp\_mul\_digs differs from these cited references since it can produce a variable output precision regardless of the precision of the +inputs. + +The first thing this algorithm checks for is whether a Comba multiplier can be used instead. If the minimum digit count of either +input is less than $\delta$, then the Comba method may be used instead. After the Comba method is ruled out, the baseline algorithm begins. A +temporary mp\_int variable $t$ is used to hold the intermediate result of the product. This allows the algorithm to be used to +compute products when either $a = c$ or $b = c$ without overwriting the inputs. + +All of step 5 is the infamous $O(n^2)$ multiplication loop slightly modified to only produce upto $digs$ digits of output. The $pb$ variable +is given the count of digits to read from $b$ inside the nested loop. If $pb \le 1$ then no more output digits can be produced and the algorithm +will exit the loop. The best way to think of the loops are as a series of $pb \times 1$ multiplications. That is, in each pass of the +innermost loop $a_{ix}$ is multiplied against $b$ and the result is added (\textit{with an appropriate shift}) to $t$. + +For example, consider multiplying $576$ by $241$. That is equivalent to computing $10^0(1)(576) + 10^1(4)(576) + 10^2(2)(576)$ which is best +visualized in the following table. + +\begin{figure}[here] +\begin{center} +\begin{tabular}{|c|c|c|c|c|c|l|} +\hline && & 5 & 7 & 6 & \\ +\hline $\times$&& & 2 & 4 & 1 & \\ +\hline &&&&&&\\ + && & 5 & 7 & 6 & $10^0(1)(576)$ \\ + &2 & 3 & 6 & 1 & 6 & $10^1(4)(576) + 10^0(1)(576)$ \\ + 1 & 3 & 8 & 8 & 1 & 6 & $10^2(2)(576) + 10^1(4)(576) + 10^0(1)(576)$ \\ +\hline +\end{tabular} +\end{center} +\caption{Long-Hand Multiplication Diagram} +\end{figure} + +Each row of the product is added to the result after being shifted to the left (\textit{multiplied by a power of the radix}) by the appropriate +count. That is in pass $ix$ of the inner loop the product is added starting at the $ix$'th digit of the reult. + +Step 5.4.1 introduces the hat symbol (\textit{e.g. $\hat r$}) which represents a double precision variable. The multiplication on that step +is assumed to be a double wide output single precision multiplication. That is, two single precision variables are multiplied to produce a +double precision result. The step is somewhat optimized from a long-hand multiplication algorithm because the carry from the addition in step +5.4.1 is propagated through the nested loop. If the carry was not propagated immediately it would overflow the single precision digit +$t_{ix+iy}$ and the result would be lost. + +At step 5.5 the nested loop is finished and any carry that was left over should be forwarded. The carry does not have to be added to the $ix+pb$'th +digit since that digit is assumed to be zero at this point. However, if $ix + pb \ge digs$ the carry is not set as it would make the result +exceed the precision requested. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_s\_mp\_mul\_digs.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* multiplies |a| * |b| and only computes upto digs digits of result +018 * HAC pp. 595, Algorithm 14.12 Modified so you can control how +019 * many digits of output are created. +020 */ +021 int +022 s_mp_mul_digs (mp_int * a, mp_int * b, mp_int * c, int digs) +023 \{ +024 mp_int t; +025 int res, pa, pb, ix, iy; +026 mp_digit u; +027 mp_word r; +028 mp_digit tmpx, *tmpt, *tmpy; +029 +030 /* can we use the fast multiplier? */ +031 if (((digs) < MP_WARRAY) && +032 MIN (a->used, b->used) < +033 (1 << ((CHAR_BIT * sizeof (mp_word)) - (2 * DIGIT_BIT)))) \{ +034 return fast_s_mp_mul_digs (a, b, c, digs); +035 \} +036 +037 if ((res = mp_init_size (&t, digs)) != MP_OKAY) \{ +038 return res; +039 \} +040 t.used = digs; +041 +042 /* compute the digits of the product directly */ +043 pa = a->used; +044 for (ix = 0; ix < pa; ix++) \{ +045 /* set the carry to zero */ +046 u = 0; +047 +048 /* limit ourselves to making digs digits of output */ +049 pb = MIN (b->used, digs - ix); +050 +051 /* setup some aliases */ +052 /* copy of the digit from a used within the nested loop */ +053 tmpx = a->dp[ix]; +054 +055 /* an alias for the destination shifted ix places */ +056 tmpt = t.dp + ix; +057 +058 /* an alias for the digits of b */ +059 tmpy = b->dp; +060 +061 /* compute the columns of the output and propagate the carry */ +062 for (iy = 0; iy < pb; iy++) \{ +063 /* compute the column as a mp_word */ +064 r = ((mp_word)*tmpt) + +065 ((mp_word)tmpx) * ((mp_word)*tmpy++) + +066 ((mp_word) u); +067 +068 /* the new column is the lower part of the result */ +069 *tmpt++ = (mp_digit) (r & ((mp_word) MP_MASK)); +070 +071 /* get the carry word from the result */ +072 u = (mp_digit) (r >> ((mp_word) DIGIT_BIT)); +073 \} +074 /* set carry if it is placed below digs */ +075 if (ix + iy < digs) \{ +076 *tmpt = u; +077 \} +078 \} +079 +080 mp_clamp (&t); +081 mp_exch (&t, c); +082 +083 mp_clear (&t); +084 return MP_OKAY; +085 \} +\end{alltt} +\end{small} + +Lines 31 to 35 determine if the Comba method can be used first. The conditions for using the Comba routine are that min$(a.used, b.used) < \delta$ and +the number of digits of output is less than \textbf{MP\_WARRAY}. This new constant is used to control +the stack usage in the Comba routines. By default it is set to $\delta$ but can be reduced when memory is at a premium. + +Of particular importance is the calculation of the $ix+iy$'th column on lines 64, 65 and 66. Note how all of the +variables are cast to the type \textbf{mp\_word}, which is also the type of variable $\hat r$. That is to ensure that double precision operations +are used instead of single precision. The multiplication on line 65 makes use of a specific GCC optimizer behaviour. On the outset it looks like +the compiler will have to use a double precision multiplication to produce the result required. Such an operation would be horribly slow on most +processors and drag this to a crawl. However, GCC is smart enough to realize that double wide output single precision multipliers can be used. For +example, the instruction ``MUL'' on the x86 processor can multiply two 32-bit values and produce a 64-bit result. + +\subsection{Faster Multiplication by the ``Comba'' Method} + +One of the huge drawbacks of the ``baseline'' algorithms is that at the $O(n^2)$ level the carry must be computed and propagated upwards. This +makes the nested loop very sequential and hard to unroll and implement in parallel. The ``Comba'' \cite{COMBA} method is named after little known +(\textit{in cryptographic venues}) Paul G. Comba who described a method of implementing fast multipliers that do not require nested +carry fixup operations. As an interesting aside it seems that Paul Barrett describes a similar technique in +his 1986 paper \cite{BARRETT} written five years before. + +At the heart of the Comba technique is once again the long-hand algorithm. Except in this case a slight twist is placed on how +the columns of the result are produced. In the standard long-hand algorithm rows of products are produced then added together to form the +final result. In the baseline algorithm the columns are added together after each iteration to get the result instantaneously. + +In the Comba algorithm the columns of the result are produced entirely independently of each other. That is at the $O(n^2)$ level a +simple multiplication and addition step is performed. The carries of the columns are propagated after the nested loop to reduce the amount +of work requiored. Succintly the first step of the algorithm is to compute the product vector $\vec x$ as follows. + +\begin{equation} +\vec x_n = \sum_{i+j = n} a_ib_j, \forall n \in \lbrace 0, 1, 2, \ldots, i + j \rbrace +\end{equation} + +Where $\vec x_n$ is the $n'th$ column of the output vector. Consider the following example which computes the vector $\vec x$ for the multiplication +of $576$ and $241$. + +\newpage\begin{figure}[here] +\begin{small} +\begin{center} +\begin{tabular}{|c|c|c|c|c|c|} + \hline & & 5 & 7 & 6 & First Input\\ + \hline $\times$ & & 2 & 4 & 1 & Second Input\\ +\hline & & $1 \cdot 5 = 5$ & $1 \cdot 7 = 7$ & $1 \cdot 6 = 6$ & First pass \\ + & $4 \cdot 5 = 20$ & $4 \cdot 7+5=33$ & $4 \cdot 6+7=31$ & 6 & Second pass \\ + $2 \cdot 5 = 10$ & $2 \cdot 7 + 20 = 34$ & $2 \cdot 6+33=45$ & 31 & 6 & Third pass \\ +\hline 10 & 34 & 45 & 31 & 6 & Final Result \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Comba Multiplication Diagram} +\end{figure} + +At this point the vector $x = \left < 10, 34, 45, 31, 6 \right >$ is the result of the first step of the Comba multipler. +Now the columns must be fixed by propagating the carry upwards. The resultant vector will have one extra dimension over the input vector which is +congruent to adding a leading zero digit. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{Comba Fixup}. \\ +\textbf{Input}. Vector $\vec x$ of dimension $k$ \\ +\textbf{Output}. Vector $\vec x$ such that the carries have been propagated. \\ +\hline \\ +1. for $n$ from $0$ to $k - 1$ do \\ +\hspace{3mm}1.1 $\vec x_{n+1} \leftarrow \vec x_{n+1} + \lfloor \vec x_{n}/\beta \rfloor$ \\ +\hspace{3mm}1.2 $\vec x_{n} \leftarrow \vec x_{n} \mbox{ (mod }\beta\mbox{)}$ \\ +2. Return($\vec x$). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm Comba Fixup} +\end{figure} + +With that algorithm and $k = 5$ and $\beta = 10$ the following vector is produced $\vec x= \left < 1, 3, 8, 8, 1, 6 \right >$. In this case +$241 \cdot 576$ is in fact $138816$ and the procedure succeeded. If the algorithm is correct and as will be demonstrated shortly more +efficient than the baseline algorithm why not simply always use this algorithm? + +\subsubsection{Column Weight.} +At the nested $O(n^2)$ level the Comba method adds the product of two single precision variables to each column of the output +independently. A serious obstacle is if the carry is lost, due to lack of precision before the algorithm has a chance to fix +the carries. For example, in the multiplication of two three-digit numbers the third column of output will be the sum of +three single precision multiplications. If the precision of the accumulator for the output digits is less then $3 \cdot (\beta - 1)^2$ then +an overflow can occur and the carry information will be lost. For any $m$ and $n$ digit inputs the maximum weight of any column is +min$(m, n)$ which is fairly obvious. + +The maximum number of terms in any column of a product is known as the ``column weight'' and strictly governs when the algorithm can be used. Recall +from earlier that a double precision type has $\alpha$ bits of resolution and a single precision digit has $lg(\beta)$ bits of precision. Given these +two quantities we must not violate the following + +\begin{equation} +k \cdot \left (\beta - 1 \right )^2 < 2^{\alpha} +\end{equation} + +Which reduces to + +\begin{equation} +k \cdot \left ( \beta^2 - 2\beta + 1 \right ) < 2^{\alpha} +\end{equation} + +Let $\rho = lg(\beta)$ represent the number of bits in a single precision digit. By further re-arrangement of the equation the final solution is +found. + +\begin{equation} +k < {{2^{\alpha}} \over {\left (2^{2\rho} - 2^{\rho + 1} + 1 \right )}} +\end{equation} + +The defaults for LibTomMath are $\beta = 2^{28}$ and $\alpha = 2^{64}$ which means that $k$ is bounded by $k < 257$. In this configuration +the smaller input may not have more than $256$ digits if the Comba method is to be used. This is quite satisfactory for most applications since +$256$ digits would allow for numbers in the range of $0 \le x < 2^{7168}$ which, is much larger than most public key cryptographic algorithms require. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{fast\_s\_mp\_mul\_digs}. \\ +\textbf{Input}. mp\_int $a$, mp\_int $b$ and an integer $digs$ \\ +\textbf{Output}. $c \leftarrow \vert a \vert \cdot \vert b \vert \mbox{ (mod }\beta^{digs}\mbox{)}$. \\ +\hline \\ +Place an array of \textbf{MP\_WARRAY} double precision digits named $\hat W$ on the stack. \\ +1. If $c.alloc < digs$ then grow $c$ to $digs$ digits. (\textit{mp\_grow}) \\ +2. If step 1 failed return(\textit{MP\_MEM}).\\ +\\ +Zero the temporary array $\hat W$. \\ +3. for $n$ from $0$ to $digs - 1$ do \\ +\hspace{3mm}3.1 $\hat W_n \leftarrow 0$ \\ +\\ +Compute the columns. \\ +4. for $ix$ from $0$ to $a.used - 1$ do \\ +\hspace{3mm}4.1 $pb \leftarrow \mbox{min}(b.used, digs - ix)$ \\ +\hspace{3mm}4.2 If $pb < 1$ then goto step 5. \\ +\hspace{3mm}4.3 for $iy$ from $0$ to $pb - 1$ do \\ +\hspace{6mm}4.3.1 $\hat W_{ix+iy} \leftarrow \hat W_{ix+iy} + a_{ix}b_{iy}$ \\ +\\ +Propagate the carries upwards. \\ +5. $oldused \leftarrow c.used$ \\ +6. $c.used \leftarrow digs$ \\ +7. If $digs > 1$ then do \\ +\hspace{3mm}7.1. for $ix$ from $1$ to $digs - 1$ do \\ +\hspace{6mm}7.1.1 $\hat W_{ix} \leftarrow \hat W_{ix} + \lfloor \hat W_{ix-1} / \beta \rfloor$ \\ +\hspace{6mm}7.1.2 $c_{ix - 1} \leftarrow \hat W_{ix - 1} \mbox{ (mod }\beta\mbox{)}$ \\ +8. else do \\ +\hspace{3mm}8.1 $ix \leftarrow 0$ \\ +9. $c_{ix} \leftarrow \hat W_{ix} \mbox{ (mod }\beta\mbox{)}$ \\ +\\ +Zero excess digits. \\ +10. If $digs < oldused$ then do \\ +\hspace{3mm}10.1 for $n$ from $digs$ to $oldused - 1$ do \\ +\hspace{6mm}10.1.1 $c_n \leftarrow 0$ \\ +11. Clamp excessive digits of $c$. (\textit{mp\_clamp}) \\ +12. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm fast\_s\_mp\_mul\_digs} +\label{fig:COMBAMULT} +\end{figure} + +\textbf{Algorithm fast\_s\_mp\_mul\_digs.} +This algorithm performs the unsigned multiplication of $a$ and $b$ using the Comba method limited to $digs$ digits of precision. The algorithm +essentially peforms the same calculation as algorithm s\_mp\_mul\_digs, just much faster. + +The array $\hat W$ is meant to be on the stack when the algorithm is used. The size of the array does not change which is ideal. Note also that +unlike algorithm s\_mp\_mul\_digs no temporary mp\_int is required since the result is calculated directly in $\hat W$. + +The $O(n^2)$ loop on step four is where the Comba method's advantages begin to show through in comparison to the baseline algorithm. The lack of +a carry variable or propagation in this loop allows the loop to be performed with only single precision multiplication and additions. Now that each +iteration of the inner loop can be performed independent of the others the inner loop can be performed with a high level of parallelism. + +To measure the benefits of the Comba method over the baseline method consider the number of operations that are required. If the +cost in terms of time of a multiply and addition is $p$ and the cost of a carry propagation is $q$ then a baseline multiplication would require +$O \left ((p + q)n^2 \right )$ time to multiply two $n$-digit numbers. The Comba method requires only $O(pn^2 + qn)$ time, however in practice, +the speed increase is actually much more. With $O(n)$ space the algorithm can be reduced to $O(pn + qn)$ time by implementing the $n$ multiply +and addition operations in the nested loop in parallel. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_fast\_s\_mp\_mul\_digs.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* Fast (comba) multiplier +018 * +019 * This is the fast column-array [comba] multiplier. It is +020 * designed to compute the columns of the product first +021 * then handle the carries afterwards. This has the effect +022 * of making the nested loops that compute the columns very +023 * simple and schedulable on super-scalar processors. +024 * +025 * This has been modified to produce a variable number of +026 * digits of output so if say only a half-product is required +027 * you don't have to compute the upper half (a feature +028 * required for fast Barrett reduction). +029 * +030 * Based on Algorithm 14.12 on pp.595 of HAC. +031 * +032 */ +033 int +034 fast_s_mp_mul_digs (mp_int * a, mp_int * b, mp_int * c, int digs) +035 \{ +036 int olduse, res, pa, ix; +037 mp_word W[MP_WARRAY]; +038 +039 /* grow the destination as required */ +040 if (c->alloc < digs) \{ +041 if ((res = mp_grow (c, digs)) != MP_OKAY) \{ +042 return res; +043 \} +044 \} +045 +046 /* clear temp buf (the columns) */ +047 memset (W, 0, sizeof (mp_word) * digs); +048 +049 /* calculate the columns */ +050 pa = a->used; +051 for (ix = 0; ix < pa; ix++) \{ +052 /* this multiplier has been modified to allow you to +053 * control how many digits of output are produced. +054 * So at most we want to make upto "digs" digits of output. +055 * +056 * this adds products to distinct columns (at ix+iy) of W +057 * note that each step through the loop is not dependent on +058 * the previous which means the compiler can easily unroll +059 * the loop without scheduling problems +060 */ +061 \{ +062 register mp_digit tmpx, *tmpy; +063 register mp_word *_W; +064 register int iy, pb; +065 +066 /* alias for the the word on the left e.g. A[ix] * A[iy] */ +067 tmpx = a->dp[ix]; +068 +069 /* alias for the right side */ +070 tmpy = b->dp; +071 +072 /* alias for the columns, each step through the loop adds a new +073 term to each column +074 */ +075 _W = W + ix; +076 +077 /* the number of digits is limited by their placement. E.g. +078 we avoid multiplying digits that will end up above the # of +079 digits of precision requested +080 */ +081 pb = MIN (b->used, digs - ix); +082 +083 for (iy = 0; iy < pb; iy++) \{ +084 *_W++ += ((mp_word)tmpx) * ((mp_word)*tmpy++); +085 \} +086 \} +087 +088 \} +089 +090 /* setup dest */ +091 olduse = c->used; +092 c->used = digs; +093 +094 \{ +095 register mp_digit *tmpc; +096 +097 /* At this point W[] contains the sums of each column. To get the +098 * correct result we must take the extra bits from each column and +099 * carry them down +100 * +101 * Note that while this adds extra code to the multiplier it +102 * saves time since the carry propagation is removed from the +103 * above nested loop.This has the effect of reducing the work +104 * from N*(N+N*c)==N**2 + c*N**2 to N**2 + N*c where c is the +105 * cost of the shifting. On very small numbers this is slower +106 * but on most cryptographic size numbers it is faster. +107 * +108 * In this particular implementation we feed the carries from +109 * behind which means when the loop terminates we still have one +110 * last digit to copy +111 */ +112 tmpc = c->dp; +113 for (ix = 1; ix < digs; ix++) \{ +114 /* forward the carry from the previous temp */ +115 W[ix] += (W[ix - 1] >> ((mp_word) DIGIT_BIT)); +116 +117 /* now extract the previous digit [below the carry] */ +118 *tmpc++ = (mp_digit) (W[ix - 1] & ((mp_word) MP_MASK)); +119 \} +120 /* fetch the last digit */ +121 *tmpc++ = (mp_digit) (W[digs - 1] & ((mp_word) MP_MASK)); +122 +123 /* clear unused digits [that existed in the old copy of c] */ +124 for (; ix < olduse; ix++) \{ +125 *tmpc++ = 0; +126 \} +127 \} +128 mp_clamp (c); +129 return MP_OKAY; +130 \} +\end{alltt} +\end{small} + +The memset on line 47 clears the initial $\hat W$ array to zero in a single step. Like the slower baseline multiplication +implementation a series of aliases (\textit{lines 67, 70 and 75}) are used to simplify the inner $O(n^2)$ loop. +In this case a new alias $\_\hat W$ has been added which refers to the double precision columns offset by $ix$ in each pass. + +The inner loop on lines 83, 84 and 85 is where the algorithm will spend the majority of the time, which is why it has been +stripped to the bones of any extra baggage\footnote{Hence the pointer aliases.}. On x86 processors the multiplication and additions amount to at the +very least five instructions (\textit{two loads, two additions, one multiply}) while on the ARMv4 processors they amount to only three +(\textit{one load, one store, one multiply-add}). For both of the x86 and ARMv4 processors the GCC compiler performs a good job at unrolling the loop +and scheduling the instructions so there are very few dependency stalls. + +In theory the difference between the baseline and comba algorithms is a mere $O(qn)$ time difference. However, in the $O(n^2)$ nested loop of the +baseline method there are dependency stalls as the algorithm must wait for the multiplier to finish before propagating the carry to the next +digit. As a result fewer of the often multiple execution units\footnote{The AMD Athlon has three execution units and the Intel P4 has four.} can +be simultaneously used. + +\subsection{Polynomial Basis Multiplication} +To break the $O(n^2)$ barrier in multiplication requires a completely different look at integer multiplication. In the following algorithms +the use of polynomial basis representation for two integers $a$ and $b$ as $f(x) = \sum_{i=0}^{n} a_i x^i$ and +$g(x) = \sum_{i=0}^{n} b_i x^i$ respectively, is required. In this system both $f(x)$ and $g(x)$ have $n + 1$ terms and are of the $n$'th degree. + +The product $a \cdot b \equiv f(x)g(x)$ is the polynomial $W(x) = \sum_{i=0}^{2n} w_i x^i$. The coefficients $w_i$ will +directly yield the desired product when $\beta$ is substituted for $x$. The direct solution to solve for the $2n + 1$ coefficients +requires $O(n^2)$ time and would in practice be slower than the Comba technique. + +However, numerical analysis theory indicates that only $2n + 1$ distinct points in $W(x)$ are required to determine the values of the $2n + 1$ unknown +coefficients. This means by finding $\zeta_y = W(y)$ for $2n + 1$ small values of $y$ the coefficients of $W(x)$ can be found with +Gaussian elimination. This technique is also occasionally refered to as the \textit{interpolation technique} (\textit{references please...}) since in +effect an interpolation based on $2n + 1$ points will yield a polynomial equivalent to $W(x)$. + +The coefficients of the polynomial $W(x)$ are unknown which makes finding $W(y)$ for any value of $y$ impossible. However, since +$W(x) = f(x)g(x)$ the equivalent $\zeta_y = f(y) g(y)$ can be used in its place. The benefit of this technique stems from the +fact that $f(y)$ and $g(y)$ are much smaller than either $a$ or $b$ respectively. As a result finding the $2n + 1$ relations required +by multiplying $f(y)g(y)$ involves multiplying integers that are much smaller than either of the inputs. + +When picking points to gather relations there are always three obvious points to choose, $y = 0, 1$ and $ \infty$. The $\zeta_0$ term +is simply the product $W(0) = w_0 = a_0 \cdot b_0$. The $\zeta_1$ term is the product +$W(1) = \left (\sum_{i = 0}^{n} a_i \right ) \left (\sum_{i = 0}^{n} b_i \right )$. The third point $\zeta_{\infty}$ is less obvious but rather +simple to explain. The $2n + 1$'th coefficient of $W(x)$ is numerically equivalent to the most significant column in an integer multiplication. +The point at $\infty$ is used symbolically to represent the most significant column, that is $W(\infty) = w_{2n} = a_nb_n$. Note that the +points at $y = 0$ and $\infty$ yield the coefficients $w_0$ and $w_{2n}$ directly. + +If more points are required they should be of small values and powers of two such as $2^q$ and the related \textit{mirror points} +$\left (2^q \right )^{2n} \cdot \zeta_{2^{-q}}$ for small values of $q$. The term ``mirror point'' stems from the fact that +$\left (2^q \right )^{2n} \cdot \zeta_{2^{-q}}$ can be calculated in the exact opposite fashion as $\zeta_{2^q}$. For +example, when $n = 2$ and $q = 1$ then following two equations are equivalent to the point $\zeta_{2}$ and its mirror. + +\begin{eqnarray} +\zeta_{2} = f(2)g(2) = (4a_2 + 2a_1 + a_0)(4b_2 + 2b_1 + b_0) \nonumber \\ +16 \cdot \zeta_{1 \over 2} = 4f({1\over 2}) \cdot 4g({1 \over 2}) = (a_2 + 2a_1 + 4a_0)(b_2 + 2b_1 + 4b_0) +\end{eqnarray} + +Using such points will allow the values of $f(y)$ and $g(y)$ to be independently calculated using only left shifts. For example, when $n = 2$ the +polynomial $f(2^q)$ is equal to $2^q((2^qa_2) + a_1) + a_0$. This technique of polynomial representation is known as Horner's method. + +As a general rule of the algorithm when the inputs are split into $n$ parts each there are $2n - 1$ multiplications. Each multiplication is of +multiplicands that have $n$ times fewer digits than the inputs. The asymptotic running time of this algorithm is +$O \left ( k^{lg_n(2n - 1)} \right )$ for $k$ digit inputs (\textit{assuming they have the same number of digits}). Figure~\ref{fig:exponent} +summarizes the exponents for various values of $n$. + +\begin{figure} +\begin{center} +\begin{tabular}{|c|c|c|} +\hline \textbf{Split into $n$ Parts} & \textbf{Exponent} & \textbf{Notes}\\ +\hline $2$ & $1.584962501$ & This is Karatsuba Multiplication. \\ +\hline $3$ & $1.464973520$ & This is Toom-Cook Multiplication. \\ +\hline $4$ & $1.403677461$ &\\ +\hline $5$ & $1.365212389$ &\\ +\hline $10$ & $1.278753601$ &\\ +\hline $100$ & $1.149426538$ &\\ +\hline $1000$ & $1.100270931$ &\\ +\hline $10000$ & $1.075252070$ &\\ +\hline +\end{tabular} +\end{center} +\caption{Asymptotic Running Time of Polynomial Basis Multiplication} +\label{fig:exponent} +\end{figure} + +At first it may seem like a good idea to choose $n = 1000$ since the exponent is approximately $1.1$. However, the overhead +of solving for the 2001 terms of $W(x)$ will certainly consume any savings the algorithm could offer for all but exceedingly large +numbers. + +\subsubsection{Cutoff Point} +The polynomial basis multiplication algorithms all require fewer single precision multiplications than a straight Comba approach. However, +the algorithms incur an overhead (\textit{at the $O(n)$ work level}) since they require a system of equations to be solved. This makes the +polynomial basis approach more costly to use with small inputs. + +Let $m$ represent the number of digits in the multiplicands (\textit{assume both multiplicands have the same number of digits}). There exists a +point $y$ such that when $m < y$ the polynomial basis algorithms are more costly than Comba, when $m = y$ they are roughly the same cost and +when $m > y$ the Comba methods are slower than the polynomial basis algorithms. + +The exact location of $y$ depends on several key architectural elements of the computer platform in question. + +\begin{enumerate} +\item The ratio of clock cycles for single precision multiplication versus other simpler operations such as addition, shifting, etc. For example +on the AMD Athlon the ratio is roughly $17 : 1$ while on the Intel P4 it is $29 : 1$. The higher the ratio in favour of multiplication the lower +the cutoff point $y$ will be. + +\item The complexity of the linear system of equations (\textit{for the coefficients of $W(x)$}) is. Generally speaking as the number of splits +grows the complexity grows substantially. Ideally solving the system will only involve addition, subtraction and shifting of integers. This +directly reflects on the ratio previous mentioned. + +\item To a lesser extent memory bandwidth and function call overheads. Provided the values are in the processor cache this is less of an +influence over the cutoff point. + +\end{enumerate} + +A clean cutoff point separation occurs when a point $y$ is found such that all of the cutoff point conditions are met. For example, if the point +is too low then there will be values of $m$ such that $m > y$ and the Comba method is still faster. Finding the cutoff points is fairly simple when +a high resolution timer is available. + +\subsection{Karatsuba Multiplication} +Karatsuba \cite{KARA} multiplication when originally proposed in 1962 was among the first set of algorithms to break the $O(n^2)$ barrier for +general purpose multiplication. Given two polynomial basis representations $f(x) = ax + b$ and $g(x) = cx + d$, Karatsuba proved with +light algebra \cite{KARAP} that the following polynomial is equivalent to multiplication of the two integers the polynomials represent. + +\begin{equation} +f(x) \cdot g(x) = acx^2 + ((a - b)(c - d) + ac + bd)x + bd +\end{equation} + +Using the observation that $ac$ and $bd$ could be re-used only three half sized multiplications would be required to produce the product. Applying +this algorithm recursively, the work factor becomes $O(n^{lg(3)})$ which is substantially better than the work factor $O(n^2)$ of the Comba technique. It turns +out what Karatsuba did not know or at least did not publish was that this is simply polynomial basis multiplication with the points +$\zeta_0$, $\zeta_{\infty}$ and $-\zeta_{-1}$. Consider the resultant system of equations. + +\begin{center} +\begin{tabular}{rcrcrcrc} +$\zeta_{0}$ & $=$ & & & & & $w_0$ \\ +$-\zeta_{-1}$ & $=$ & $-w_2$ & $+$ & $w_1$ & $-$ & $w_0$ \\ +$\zeta_{\infty}$ & $=$ & $w_2$ & & & & \\ +\end{tabular} +\end{center} + +By adding the first and last equation to the equation in the middle the term $w_1$ can be isolated and all three coefficients solved for. The simplicity +of this system of equations has made Karatsuba fairly popular. In fact the cutoff point is often fairly low\footnote{With LibTomMath 0.18 it is 70 and 109 digits for the Intel P4 and AMD Athlon respectively.} +making it an ideal algorithm to speed up certain public key cryptosystems such as RSA and Diffie-Hellman. It is worth noting that the point +$\zeta_1$ could be substituted for $-\zeta_{-1}$. In this case the first and third row are subtracted instead of added to the second row. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_karatsuba\_mul}. \\ +\textbf{Input}. mp\_int $a$ and mp\_int $b$ \\ +\textbf{Output}. $c \leftarrow \vert a \vert \cdot \vert b \vert$ \\ +\hline \\ +1. Init the following mp\_int variables: $x0$, $x1$, $y0$, $y1$, $t1$, $x0y0$, $x1y1$.\\ +2. If step 2 failed then return(\textit{MP\_MEM}). \\ +\\ +Split the input. e.g. $a = x1 \cdot \beta^B + x0$ \\ +3. $B \leftarrow \mbox{min}(a.used, b.used)/2$ \\ +4. $x0 \leftarrow a \mbox{ (mod }\beta^B\mbox{)}$ (\textit{mp\_mod\_2d}) \\ +5. $y0 \leftarrow b \mbox{ (mod }\beta^B\mbox{)}$ \\ +6. $x1 \leftarrow \lfloor a / \beta^B \rfloor$ (\textit{mp\_rshd}) \\ +7. $y1 \leftarrow \lfloor b / \beta^B \rfloor$ \\ +\\ +Calculate the three products. \\ +8. $x0y0 \leftarrow x0 \cdot y0$ (\textit{mp\_mul}) \\ +9. $x1y1 \leftarrow x1 \cdot y1$ \\ +10. $t1 \leftarrow x1 - x0$ (\textit{mp\_sub}) \\ +11. $x0 \leftarrow y1 - y0$ \\ +12. $t1 \leftarrow t1 \cdot x0$ \\ +\\ +Calculate the middle term. \\ +13. $x0 \leftarrow x0y0 + x1y1$ \\ +14. $t1 \leftarrow x0 - t1$ \\ +\\ +Calculate the final product. \\ +15. $t1 \leftarrow t1 \cdot \beta^B$ (\textit{mp\_lshd}) \\ +16. $x1y1 \leftarrow x1y1 \cdot \beta^{2B}$ \\ +17. $t1 \leftarrow x0y0 + t1$ \\ +18. $c \leftarrow t1 + x1y1$ \\ +19. Clear all of the temporary variables. \\ +20. Return(\textit{MP\_OKAY}).\\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_karatsuba\_mul} +\end{figure} + +\textbf{Algorithm mp\_karatsuba\_mul.} +This algorithm computes the unsigned product of two inputs using the Karatsuba multiplication algorithm. It is loosely based on the description +from Knuth \cite[pp. 294-295]{TAOCPV2}. + +\index{radix point} +In order to split the two inputs into their respective halves, a suitable \textit{radix point} must be chosen. The radix point chosen must +be used for both of the inputs meaning that it must be smaller than the smallest input. Step 3 chooses the radix point $B$ as half of the +smallest input \textbf{used} count. After the radix point is chosen the inputs are split into lower and upper halves. Step 4 and 5 +compute the lower halves. Step 6 and 7 computer the upper halves. + +After the halves have been computed the three intermediate half-size products must be computed. Step 8 and 9 compute the trivial products +$x0 \cdot y0$ and $x1 \cdot y1$. The mp\_int $x0$ is used as a temporary variable after $x1 - x0$ has been computed. By using $x0$ instead +of an additional temporary variable, the algorithm can avoid an addition memory allocation operation. + +The remaining steps 13 through 18 compute the Karatsuba polynomial through a variety of digit shifting and addition operations. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_karatsuba\_mul.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* c = |a| * |b| using Karatsuba Multiplication using +018 * three half size multiplications +019 * +020 * Let B represent the radix [e.g. 2**DIGIT_BIT] and +021 * let n represent half of the number of digits in +022 * the min(a,b) +023 * +024 * a = a1 * B**n + a0 +025 * b = b1 * B**n + b0 +026 * +027 * Then, a * b => +028 a1b1 * B**2n + ((a1 - a0)(b1 - b0) + a0b0 + a1b1) * B + a0b0 +029 * +030 * Note that a1b1 and a0b0 are used twice and only need to be +031 * computed once. So in total three half size (half # of +032 * digit) multiplications are performed, a0b0, a1b1 and +033 * (a1-b1)(a0-b0) +034 * +035 * Note that a multiplication of half the digits requires +036 * 1/4th the number of single precision multiplications so in +037 * total after one call 25% of the single precision multiplications +038 * are saved. Note also that the call to mp_mul can end up back +039 * in this function if the a0, a1, b0, or b1 are above the threshold. +040 * This is known as divide-and-conquer and leads to the famous +041 * O(N**lg(3)) or O(N**1.584) work which is asymptopically lower than +042 * the standard O(N**2) that the baseline/comba methods use. +043 * Generally though the overhead of this method doesn't pay off +044 * until a certain size (N ~ 80) is reached. +045 */ +046 int +047 mp_karatsuba_mul (mp_int * a, mp_int * b, mp_int * c) +048 \{ +049 mp_int x0, x1, y0, y1, t1, x0y0, x1y1; +050 int B, err; +051 +052 /* default the return code to an error */ +053 err = MP_MEM; +054 +055 /* min # of digits */ +056 B = MIN (a->used, b->used); +057 +058 /* now divide in two */ +059 B = B / 2; +060 +061 /* init copy all the temps */ +062 if (mp_init_size (&x0, B) != MP_OKAY) +063 goto ERR; +064 if (mp_init_size (&x1, a->used - B) != MP_OKAY) +065 goto X0; +066 if (mp_init_size (&y0, B) != MP_OKAY) +067 goto X1; +068 if (mp_init_size (&y1, b->used - B) != MP_OKAY) +069 goto Y0; +070 +071 /* init temps */ +072 if (mp_init_size (&t1, B * 2) != MP_OKAY) +073 goto Y1; +074 if (mp_init_size (&x0y0, B * 2) != MP_OKAY) +075 goto T1; +076 if (mp_init_size (&x1y1, B * 2) != MP_OKAY) +077 goto X0Y0; +078 +079 /* now shift the digits */ +080 x0.sign = x1.sign = a->sign; +081 y0.sign = y1.sign = b->sign; +082 +083 x0.used = y0.used = B; +084 x1.used = a->used - B; +085 y1.used = b->used - B; +086 +087 \{ +088 register int x; +089 register mp_digit *tmpa, *tmpb, *tmpx, *tmpy; +090 +091 /* we copy the digits directly instead of using higher level functions +092 * since we also need to shift the digits +093 */ +094 tmpa = a->dp; +095 tmpb = b->dp; +096 +097 tmpx = x0.dp; +098 tmpy = y0.dp; +099 for (x = 0; x < B; x++) \{ +100 *tmpx++ = *tmpa++; +101 *tmpy++ = *tmpb++; +102 \} +103 +104 tmpx = x1.dp; +105 for (x = B; x < a->used; x++) \{ +106 *tmpx++ = *tmpa++; +107 \} +108 +109 tmpy = y1.dp; +110 for (x = B; x < b->used; x++) \{ +111 *tmpy++ = *tmpb++; +112 \} +113 \} +114 +115 /* only need to clamp the lower words since by definition the +116 * upper words x1/y1 must have a known number of digits +117 */ +118 mp_clamp (&x0); +119 mp_clamp (&y0); +120 +121 /* now calc the products x0y0 and x1y1 */ +122 /* after this x0 is no longer required, free temp [x0==t2]! */ +123 if (mp_mul (&x0, &y0, &x0y0) != MP_OKAY) +124 goto X1Y1; /* x0y0 = x0*y0 */ +125 if (mp_mul (&x1, &y1, &x1y1) != MP_OKAY) +126 goto X1Y1; /* x1y1 = x1*y1 */ +127 +128 /* now calc x1-x0 and y1-y0 */ +129 if (mp_sub (&x1, &x0, &t1) != MP_OKAY) +130 goto X1Y1; /* t1 = x1 - x0 */ +131 if (mp_sub (&y1, &y0, &x0) != MP_OKAY) +132 goto X1Y1; /* t2 = y1 - y0 */ +133 if (mp_mul (&t1, &x0, &t1) != MP_OKAY) +134 goto X1Y1; /* t1 = (x1 - x0) * (y1 - y0) */ +135 +136 /* add x0y0 */ +137 if (mp_add (&x0y0, &x1y1, &x0) != MP_OKAY) +138 goto X1Y1; /* t2 = x0y0 + x1y1 */ +139 if (mp_sub (&x0, &t1, &t1) != MP_OKAY) +140 goto X1Y1; /* t1 = x0y0 + x1y1 - (x1-x0)*(y1-y0) */ +141 +142 /* shift by B */ +143 if (mp_lshd (&t1, B) != MP_OKAY) +144 goto X1Y1; /* t1 = (x0y0 + x1y1 - (x1-x0)*(y1-y0))<used, b->used) / 3; +033 +034 /* a = a2 * B**2 + a1 * B + a0 */ +035 if ((res = mp_mod_2d(a, DIGIT_BIT * B, &a0)) != MP_OKAY) \{ +036 goto ERR; +037 \} +038 +039 if ((res = mp_copy(a, &a1)) != MP_OKAY) \{ +040 goto ERR; +041 \} +042 mp_rshd(&a1, B); +043 mp_mod_2d(&a1, DIGIT_BIT * B, &a1); +044 +045 if ((res = mp_copy(a, &a2)) != MP_OKAY) \{ +046 goto ERR; +047 \} +048 mp_rshd(&a2, B*2); +049 +050 /* b = b2 * B**2 + b1 * B + b0 */ +051 if ((res = mp_mod_2d(b, DIGIT_BIT * B, &b0)) != MP_OKAY) \{ +052 goto ERR; +053 \} +054 +055 if ((res = mp_copy(b, &b1)) != MP_OKAY) \{ +056 goto ERR; +057 \} +058 mp_rshd(&b1, B); +059 mp_mod_2d(&b1, DIGIT_BIT * B, &b1); +060 +061 if ((res = mp_copy(b, &b2)) != MP_OKAY) \{ +062 goto ERR; +063 \} +064 mp_rshd(&b2, B*2); +065 +066 /* w0 = a0*b0 */ +067 if ((res = mp_mul(&a0, &b0, &w0)) != MP_OKAY) \{ +068 goto ERR; +069 \} +070 +071 /* w4 = a2 * b2 */ +072 if ((res = mp_mul(&a2, &b2, &w4)) != MP_OKAY) \{ +073 goto ERR; +074 \} +075 +076 /* w1 = (a2 + 2(a1 + 2a0))(b2 + 2(b1 + 2b0)) */ +077 if ((res = mp_mul_2(&a0, &tmp1)) != MP_OKAY) \{ +078 goto ERR; +079 \} +080 if ((res = mp_add(&tmp1, &a1, &tmp1)) != MP_OKAY) \{ +081 goto ERR; +082 \} +083 if ((res = mp_mul_2(&tmp1, &tmp1)) != MP_OKAY) \{ +084 goto ERR; +085 \} +086 if ((res = mp_add(&tmp1, &a2, &tmp1)) != MP_OKAY) \{ +087 goto ERR; +088 \} +089 +090 if ((res = mp_mul_2(&b0, &tmp2)) != MP_OKAY) \{ +091 goto ERR; +092 \} +093 if ((res = mp_add(&tmp2, &b1, &tmp2)) != MP_OKAY) \{ +094 goto ERR; +095 \} +096 if ((res = mp_mul_2(&tmp2, &tmp2)) != MP_OKAY) \{ +097 goto ERR; +098 \} +099 if ((res = mp_add(&tmp2, &b2, &tmp2)) != MP_OKAY) \{ +100 goto ERR; +101 \} +102 +103 if ((res = mp_mul(&tmp1, &tmp2, &w1)) != MP_OKAY) \{ +104 goto ERR; +105 \} +106 +107 /* w3 = (a0 + 2(a1 + 2a2))(b0 + 2(b1 + 2b2)) */ +108 if ((res = mp_mul_2(&a2, &tmp1)) != MP_OKAY) \{ +109 goto ERR; +110 \} +111 if ((res = mp_add(&tmp1, &a1, &tmp1)) != MP_OKAY) \{ +112 goto ERR; +113 \} +114 if ((res = mp_mul_2(&tmp1, &tmp1)) != MP_OKAY) \{ +115 goto ERR; +116 \} +117 if ((res = mp_add(&tmp1, &a0, &tmp1)) != MP_OKAY) \{ +118 goto ERR; +119 \} +120 +121 if ((res = mp_mul_2(&b2, &tmp2)) != MP_OKAY) \{ +122 goto ERR; +123 \} +124 if ((res = mp_add(&tmp2, &b1, &tmp2)) != MP_OKAY) \{ +125 goto ERR; +126 \} +127 if ((res = mp_mul_2(&tmp2, &tmp2)) != MP_OKAY) \{ +128 goto ERR; +129 \} +130 if ((res = mp_add(&tmp2, &b0, &tmp2)) != MP_OKAY) \{ +131 goto ERR; +132 \} +133 +134 if ((res = mp_mul(&tmp1, &tmp2, &w3)) != MP_OKAY) \{ +135 goto ERR; +136 \} +137 +138 +139 /* w2 = (a2 + a1 + a0)(b2 + b1 + b0) */ +140 if ((res = mp_add(&a2, &a1, &tmp1)) != MP_OKAY) \{ +141 goto ERR; +142 \} +143 if ((res = mp_add(&tmp1, &a0, &tmp1)) != MP_OKAY) \{ +144 goto ERR; +145 \} +146 if ((res = mp_add(&b2, &b1, &tmp2)) != MP_OKAY) \{ +147 goto ERR; +148 \} +149 if ((res = mp_add(&tmp2, &b0, &tmp2)) != MP_OKAY) \{ +150 goto ERR; +151 \} +152 if ((res = mp_mul(&tmp1, &tmp2, &w2)) != MP_OKAY) \{ +153 goto ERR; +154 \} +155 +156 /* now solve the matrix +157 +158 0 0 0 0 1 +159 1 2 4 8 16 +160 1 1 1 1 1 +161 16 8 4 2 1 +162 1 0 0 0 0 +163 +164 using 12 subtractions, 4 shifts, +165 2 small divisions and 1 small multiplication +166 */ +167 +168 /* r1 - r4 */ +169 if ((res = mp_sub(&w1, &w4, &w1)) != MP_OKAY) \{ +170 goto ERR; +171 \} +172 /* r3 - r0 */ +173 if ((res = mp_sub(&w3, &w0, &w3)) != MP_OKAY) \{ +174 goto ERR; +175 \} +176 /* r1/2 */ +177 if ((res = mp_div_2(&w1, &w1)) != MP_OKAY) \{ +178 goto ERR; +179 \} +180 /* r3/2 */ +181 if ((res = mp_div_2(&w3, &w3)) != MP_OKAY) \{ +182 goto ERR; +183 \} +184 /* r2 - r0 - r4 */ +185 if ((res = mp_sub(&w2, &w0, &w2)) != MP_OKAY) \{ +186 goto ERR; +187 \} +188 if ((res = mp_sub(&w2, &w4, &w2)) != MP_OKAY) \{ +189 goto ERR; +190 \} +191 /* r1 - r2 */ +192 if ((res = mp_sub(&w1, &w2, &w1)) != MP_OKAY) \{ +193 goto ERR; +194 \} +195 /* r3 - r2 */ +196 if ((res = mp_sub(&w3, &w2, &w3)) != MP_OKAY) \{ +197 goto ERR; +198 \} +199 /* r1 - 8r0 */ +200 if ((res = mp_mul_2d(&w0, 3, &tmp1)) != MP_OKAY) \{ +201 goto ERR; +202 \} +203 if ((res = mp_sub(&w1, &tmp1, &w1)) != MP_OKAY) \{ +204 goto ERR; +205 \} +206 /* r3 - 8r4 */ +207 if ((res = mp_mul_2d(&w4, 3, &tmp1)) != MP_OKAY) \{ +208 goto ERR; +209 \} +210 if ((res = mp_sub(&w3, &tmp1, &w3)) != MP_OKAY) \{ +211 goto ERR; +212 \} +213 /* 3r2 - r1 - r3 */ +214 if ((res = mp_mul_d(&w2, 3, &w2)) != MP_OKAY) \{ +215 goto ERR; +216 \} +217 if ((res = mp_sub(&w2, &w1, &w2)) != MP_OKAY) \{ +218 goto ERR; +219 \} +220 if ((res = mp_sub(&w2, &w3, &w2)) != MP_OKAY) \{ +221 goto ERR; +222 \} +223 /* r1 - r2 */ +224 if ((res = mp_sub(&w1, &w2, &w1)) != MP_OKAY) \{ +225 goto ERR; +226 \} +227 /* r3 - r2 */ +228 if ((res = mp_sub(&w3, &w2, &w3)) != MP_OKAY) \{ +229 goto ERR; +230 \} +231 /* r1/3 */ +232 if ((res = mp_div_3(&w1, &w1, NULL)) != MP_OKAY) \{ +233 goto ERR; +234 \} +235 /* r3/3 */ +236 if ((res = mp_div_3(&w3, &w3, NULL)) != MP_OKAY) \{ +237 goto ERR; +238 \} +239 +240 /* at this point shift W[n] by B*n */ +241 if ((res = mp_lshd(&w1, 1*B)) != MP_OKAY) \{ +242 goto ERR; +243 \} +244 if ((res = mp_lshd(&w2, 2*B)) != MP_OKAY) \{ +245 goto ERR; +246 \} +247 if ((res = mp_lshd(&w3, 3*B)) != MP_OKAY) \{ +248 goto ERR; +249 \} +250 if ((res = mp_lshd(&w4, 4*B)) != MP_OKAY) \{ +251 goto ERR; +252 \} +253 +254 if ((res = mp_add(&w0, &w1, c)) != MP_OKAY) \{ +255 goto ERR; +256 \} +257 if ((res = mp_add(&w2, &w3, &tmp1)) != MP_OKAY) \{ +258 goto ERR; +259 \} +260 if ((res = mp_add(&w4, &tmp1, &tmp1)) != MP_OKAY) \{ +261 goto ERR; +262 \} +263 if ((res = mp_add(&tmp1, c, c)) != MP_OKAY) \{ +264 goto ERR; +265 \} +266 +267 ERR: +268 mp_clear_multi(&w0, &w1, &w2, &w3, &w4, +269 &a0, &a1, &a2, &b0, &b1, +270 &b2, &tmp1, &tmp2, NULL); +271 return res; +272 \} +273 +\end{alltt} +\end{small} + +-- Comments to be added during editing phase. + +\subsection{Signed Multiplication} +Now that algorithms to handle multiplications of every useful dimensions have been developed, a rather simple finishing touch is required. So far all +of the multiplication algorithms have been unsigned multiplications which leaves only a signed multiplication algorithm to be established. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_mul}. \\ +\textbf{Input}. mp\_int $a$ and mp\_int $b$ \\ +\textbf{Output}. $c \leftarrow a \cdot b$ \\ +\hline \\ +1. If $a.sign = b.sign$ then \\ +\hspace{3mm}1.1 $sign = MP\_ZPOS$ \\ +2. else \\ +\hspace{3mm}2.1 $sign = MP\_ZNEG$ \\ +3. If min$(a.used, b.used) \ge TOOM\_MUL\_CUTOFF$ then \\ +\hspace{3mm}3.1 $c \leftarrow a \cdot b$ using algorithm mp\_toom\_mul \\ +4. else if min$(a.used, b.used) \ge KARATSUBA\_MUL\_CUTOFF$ then \\ +\hspace{3mm}4.1 $c \leftarrow a \cdot b$ using algorithm mp\_karatsuba\_mul \\ +5. else \\ +\hspace{3mm}5.1 $digs \leftarrow a.used + b.used + 1$ \\ +\hspace{3mm}5.2 If $digs < MP\_ARRAY$ and min$(a.used, b.used) \le \delta$ then \\ +\hspace{6mm}5.2.1 $c \leftarrow a \cdot b \mbox{ (mod }\beta^{digs}\mbox{)}$ using algorithm fast\_s\_mp\_mul\_digs. \\ +\hspace{3mm}5.3 else \\ +\hspace{6mm}5.3.1 $c \leftarrow a \cdot b \mbox{ (mod }\beta^{digs}\mbox{)}$ using algorithm s\_mp\_mul\_digs. \\ +6. $c.sign \leftarrow sign$ \\ +7. Return the result of the unsigned multiplication performed. \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_mul} +\end{figure} + +\textbf{Algorithm mp\_mul.} +This algorithm performs the signed multiplication of two inputs. It will make use of any of the three unsigned multiplication algorithms +available when the input is of appropriate size. The \textbf{sign} of the result is not set until the end of the algorithm since algorithm +s\_mp\_mul\_digs will clear it. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_mul.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* high level multiplication (handles sign) */ +018 int mp_mul (mp_int * a, mp_int * b, mp_int * c) +019 \{ +020 int res, neg; +021 neg = (a->sign == b->sign) ? MP_ZPOS : MP_NEG; +022 +023 /* use Toom-Cook? */ +024 if (MIN (a->used, b->used) >= TOOM_MUL_CUTOFF) \{ +025 res = mp_toom_mul(a, b, c); +026 /* use Karatsuba? */ +027 \} else if (MIN (a->used, b->used) >= KARATSUBA_MUL_CUTOFF) \{ +028 res = mp_karatsuba_mul (a, b, c); +029 \} else \{ +030 /* can we use the fast multiplier? +031 * +032 * The fast multiplier can be used if the output will +033 * have less than MP_WARRAY digits and the number of +034 * digits won't affect carry propagation +035 */ +036 int digs = a->used + b->used + 1; +037 +038 if ((digs < MP_WARRAY) && +039 MIN(a->used, b->used) <= +040 (1 << ((CHAR_BIT * sizeof (mp_word)) - (2 * DIGIT_BIT)))) \{ +041 res = fast_s_mp_mul_digs (a, b, c, digs); +042 \} else \{ +043 res = s_mp_mul (a, b, c); +044 \} +045 +046 \} +047 c->sign = neg; +048 return res; +049 \} +\end{alltt} +\end{small} + +The implementation is rather simplistic and is not particularly noteworthy. Line 23 computes the sign of the result using the ``?'' +operator from the C programming language. Line 40 computes $\delta$ using the fact that $1 << k$ is equal to $2^k$. + +\section{Squaring} + +Squaring is a special case of multiplication where both multiplicands are equal. At first it may seem like there is no significant optimization +available but in fact there is. Consider the multiplication of $576$ against $241$. In total there will be nine single precision multiplications +performed which are $1\cdot 6$, $1 \cdot 7$, $1 \cdot 5$, $4 \cdot 6$, $4 \cdot 7$, $4 \cdot 5$, $2 \cdot 6$, $2 \cdot 7$ and $2 \cdot 5$. Now consider +the multiplication of $123$ against $123$. The nine products are $3 \cdot 3$, $3 \cdot 2$, $3 \cdot 1$, $2 \cdot 3$, $2 \cdot 2$, $2 \cdot 1$, +$1 \cdot 3$, $1 \cdot 2$ and $1 \cdot 1$. On closer inspection some of the products are equivalent. For example, $3 \cdot 2 = 2 \cdot 3$ +and $3 \cdot 1 = 1 \cdot 3$. + +For any $n$-digit input, there are ${{\left (n^2 + n \right)}\over 2}$ possible unique single precision multiplications required compared to the $n^2$ +required for multiplication. The following diagram gives an example of the operations required. + +\begin{figure}[here] +\begin{center} +\begin{tabular}{ccccc|c} +&&1&2&3&\\ +$\times$ &&1&2&3&\\ +\hline && $3 \cdot 1$ & $3 \cdot 2$ & $3 \cdot 3$ & Row 0\\ + & $2 \cdot 1$ & $2 \cdot 2$ & $2 \cdot 3$ && Row 1 \\ + $1 \cdot 1$ & $1 \cdot 2$ & $1 \cdot 3$ &&& Row 2 \\ +\end{tabular} +\end{center} +\caption{Squaring Optimization Diagram} +\end{figure} + +Starting from zero and numbering the columns from right to left a very simple pattern becomes obvious. For the purposes of this discussion let $x$ +represent the number being squared. The first observation is that in row $k$ the $2k$'th column of the product has a $\left (x_k \right)^2$ term in it. + +The second observation is that every column $j$ in row $k$ where $j \ne 2k$ is part of a double product. Every non-square term of a column will +appear twice hence the name ``double product''. Every odd column is made up entirely of double products. In fact every column is made up of double +products and at most one square (\textit{see the exercise section}). + +The third and final observation is that for row $k$ the first unique non-square term, that is, one that hasn't already appeared in an earlier row, +occurs at column $2k + 1$. For example, on row $1$ of the previous squaring, column one is part of the double product with column one from row zero. +Column two of row one is a square and column three is the first unique column. + +\subsection{The Baseline Squaring Algorithm} +The baseline squaring algorithm is meant to be a catch-all squaring algorithm. It will handle any of the input sizes that the faster routines +will not handle. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{s\_mp\_sqr}. \\ +\textbf{Input}. mp\_int $a$ \\ +\textbf{Output}. $b \leftarrow a^2$ \\ +\hline \\ +1. Init a temporary mp\_int of at least $2 \cdot a.used +1$ digits. (\textit{mp\_init\_size}) \\ +2. If step 1 failed return(\textit{MP\_MEM}) \\ +3. $t.used \leftarrow 2 \cdot a.used + 1$ \\ +4. For $ix$ from 0 to $a.used - 1$ do \\ +\hspace{3mm}Calculate the square. \\ +\hspace{3mm}4.1 $\hat r \leftarrow t_{2ix} + \left (a_{ix} \right )^2$ \\ +\hspace{3mm}4.2 $t_{2ix} \leftarrow \hat r \mbox{ (mod }\beta\mbox{)}$ \\ +\hspace{3mm}Calculate the double products after the square. \\ +\hspace{3mm}4.3 $u \leftarrow \lfloor \hat r / \beta \rfloor$ \\ +\hspace{3mm}4.4 For $iy$ from $ix + 1$ to $a.used - 1$ do \\ +\hspace{6mm}4.4.1 $\hat r \leftarrow 2 \cdot a_{ix}a_{iy} + t_{ix + iy} + u$ \\ +\hspace{6mm}4.4.2 $t_{ix + iy} \leftarrow \hat r \mbox{ (mod }\beta\mbox{)}$ \\ +\hspace{6mm}4.4.3 $u \leftarrow \lfloor \hat r / \beta \rfloor$ \\ +\hspace{3mm}Set the last carry. \\ +\hspace{3mm}4.5 While $u > 0$ do \\ +\hspace{6mm}4.5.1 $iy \leftarrow iy + 1$ \\ +\hspace{6mm}4.5.2 $\hat r \leftarrow t_{ix + iy} + u$ \\ +\hspace{6mm}4.5.3 $t_{ix + iy} \leftarrow \hat r \mbox{ (mod }\beta\mbox{)}$ \\ +\hspace{6mm}4.5.4 $u \leftarrow \lfloor \hat r / \beta \rfloor$ \\ +5. Clamp excess digits of $t$. (\textit{mp\_clamp}) \\ +6. Exchange $b$ and $t$. \\ +7. Clear $t$ (\textit{mp\_clear}) \\ +8. Return(\textit{MP\_OKAY}) \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm s\_mp\_sqr} +\end{figure} + +\textbf{Algorithm s\_mp\_sqr.} +This algorithm computes the square of an input using the three observations on squaring. It is based fairly faithfully on algorithm 14.16 of HAC +\cite[pp.596-597]{HAC}. Similar to algorithm s\_mp\_mul\_digs, a temporary mp\_int is allocated to hold the result of the squaring. This allows the +destination mp\_int to be the same as the source mp\_int. + +The outer loop of this algorithm begins on step 4. It is best to think of the outer loop as walking down the rows of the partial results, while +the inner loop computes the columns of the partial result. Step 4.1 and 4.2 compute the square term for each row, and step 4.3 and 4.4 propagate +the carry and compute the double products. + +The requirement that a mp\_word be able to represent the range $0 \le x < 2 \beta^2$ arises from this +very algorithm. The product $a_{ix}a_{iy}$ will lie in the range $0 \le x \le \beta^2 - 2\beta + 1$ which is obviously less than $\beta^2$ meaning that +when it is multiplied by two, it can be properly represented by a mp\_word. + +Similar to algorithm s\_mp\_mul\_digs, after every pass of the inner loop, the destination is correctly set to the sum of all of the partial +results calculated so far. This involves expensive carry propagation which will be eliminated in the next algorithm. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_s\_mp\_sqr.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* low level squaring, b = a*a, HAC pp.596-597, Algorithm 14.16 */ +018 int +019 s_mp_sqr (mp_int * a, mp_int * b) +020 \{ +021 mp_int t; +022 int res, ix, iy, pa; +023 mp_word r; +024 mp_digit u, tmpx, *tmpt; +025 +026 pa = a->used; +027 if ((res = mp_init_size (&t, 2*pa + 1)) != MP_OKAY) \{ +028 return res; +029 \} +030 +031 /* default used is maximum possible size */ +032 t.used = 2*pa + 1; +033 +034 for (ix = 0; ix < pa; ix++) \{ +035 /* first calculate the digit at 2*ix */ +036 /* calculate double precision result */ +037 r = ((mp_word) t.dp[2*ix]) + +038 ((mp_word)a->dp[ix])*((mp_word)a->dp[ix]); +039 +040 /* store lower part in result */ +041 t.dp[ix+ix] = (mp_digit) (r & ((mp_word) MP_MASK)); +042 +043 /* get the carry */ +044 u = (mp_digit)(r >> ((mp_word) DIGIT_BIT)); +045 +046 /* left hand side of A[ix] * A[iy] */ +047 tmpx = a->dp[ix]; +048 +049 /* alias for where to store the results */ +050 tmpt = t.dp + (2*ix + 1); +051 +052 for (iy = ix + 1; iy < pa; iy++) \{ +053 /* first calculate the product */ +054 r = ((mp_word)tmpx) * ((mp_word)a->dp[iy]); +055 +056 /* now calculate the double precision result, note we use +057 * addition instead of *2 since it's easier to optimize +058 */ +059 r = ((mp_word) *tmpt) + r + r + ((mp_word) u); +060 +061 /* store lower part */ +062 *tmpt++ = (mp_digit) (r & ((mp_word) MP_MASK)); +063 +064 /* get carry */ +065 u = (mp_digit)(r >> ((mp_word) DIGIT_BIT)); +066 \} +067 /* propagate upwards */ +068 while (u != ((mp_digit) 0)) \{ +069 r = ((mp_word) *tmpt) + ((mp_word) u); +070 *tmpt++ = (mp_digit) (r & ((mp_word) MP_MASK)); +071 u = (mp_digit)(r >> ((mp_word) DIGIT_BIT)); +072 \} +073 \} +074 +075 mp_clamp (&t); +076 mp_exch (&t, b); +077 mp_clear (&t); +078 return MP_OKAY; +079 \} +\end{alltt} +\end{small} + +Inside the outer loop (\textit{see line 34}) the square term is calculated on line 37. Line 44 extracts the carry from the square +term. Aliases for $a_{ix}$ and $t_{ix+iy}$ are initialized on lines 47 and 50 respectively. The doubling is performed using two +additions (\textit{see line 59}) since it is usually faster than shifting,if not at least as fast. + +\subsection{Faster Squaring by the ``Comba'' Method} +A major drawback to the baseline method is the requirement for single precision shifting inside the $O(n^2)$ nested loop. Squaring has an additional +drawback that it must double the product inside the inner loop as well. As for multiplication, the Comba technique can be used to eliminate these +performance hazards. + +The first obvious solution is to make an array of mp\_words which will hold all of the columns. This will indeed eliminate all of the carry +propagation operations from the inner loop. However, the inner product must still be doubled $O(n^2)$ times. The solution stems from the simple fact +that $2a + 2b + 2c = 2(a + b + c)$. That is the sum of all of the double products is equal to double the sum of all the products. For example, +$ab + ba + ac + ca = 2ab + 2ac = 2(ab + ac)$. + +However, we cannot simply double all of the columns, since the squares appear only once per row. The most practical solution is to have two mp\_word +arrays. One array will hold the squares and the other array will hold the double products. With both arrays the doubling and carry propagation can be +moved to a $O(n)$ work level outside the $O(n^2)$ level. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{fast\_s\_mp\_sqr}. \\ +\textbf{Input}. mp\_int $a$ \\ +\textbf{Output}. $b \leftarrow a^2$ \\ +\hline \\ +Place two arrays of \textbf{MP\_WARRAY} mp\_words named $\hat W$ and $\hat {X}$ on the stack. \\ +1. If $b.alloc < 2a.used + 1$ then grow $b$ to $2a.used + 1$ digits. (\textit{mp\_grow}). \\ +2. If step 1 failed return(\textit{MP\_MEM}). \\ +3. for $ix$ from $0$ to $2a.used + 1$ do \\ +\hspace{3mm}3.1 $\hat W_{ix} \leftarrow 0$ \\ +\hspace{3mm}3.2 $\hat {X}_{ix} \leftarrow 0$ \\ +4. for $ix$ from $0$ to $a.used - 1$ do \\ +\hspace{3mm}Compute the square.\\ +\hspace{3mm}4.1 $\hat {X}_{ix+ix} \leftarrow \left ( a_{ix} \right )^2$ \\ +\\ +\hspace{3mm}Compute the double products.\\ +\hspace{3mm}4.2 for $iy$ from $ix + 1$ to $a.used - 1$ do \\ +\hspace{6mm}4.2.1 $\hat W_{ix+iy} \leftarrow \hat W_{ix+iy} + a_{ix}a_{iy}$ \\ +5. $oldused \leftarrow b.used$ \\ +6. $b.used \leftarrow 2a.used + 1$ \\ +\\ +Double the products and propagate the carries simultaneously. \\ +7. $\hat W_0 \leftarrow 2 \hat W_0 + \hat {X}_0$ \\ +8. for $ix$ from $1$ to $2a.used$ do \\ +\hspace{3mm}8.1 $\hat W_{ix} \leftarrow 2 \hat W_{ix} + \hat {X}_{ix}$ \\ +\hspace{3mm}8.2 $\hat W_{ix} \leftarrow \hat W_{ix} + \lfloor \hat W_{ix - 1} / \beta \rfloor$ \\ +\hspace{3mm}8.3 $b_{ix-1} \leftarrow W_{ix-1} \mbox{ (mod }\beta\mbox{)}$ \\ +9. $b_{2a.used} \leftarrow \hat W_{2a.used} \mbox{ (mod }\beta\mbox{)}$ \\ +10. if $2a.used + 1 < oldused$ then do \\ +\hspace{3mm}10.1 for $ix$ from $2a.used + 1$ to $oldused$ do \\ +\hspace{6mm}10.1.1 $b_{ix} \leftarrow 0$ \\ +11. Clamp excess digits from $b$. (\textit{mp\_clamp}) \\ +12. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm fast\_s\_mp\_sqr} +\end{figure} + +\textbf{Algorithm fast\_s\_mp\_sqr.} +This algorithm computes the square of an input using the Comba technique. It is designed to be a replacement for algorithm s\_mp\_sqr when +the number of input digits is less than \textbf{MP\_WARRAY} and less than $\delta \over 2$. + +This routine requires two arrays of mp\_words to be placed on the stack. The first array $\hat W$ will hold the double products and the second +array $\hat X$ will hold the squares. Though only at most $MP\_WARRAY \over 2$ words of $\hat X$ are used, it has proven faster on most +processors to simply make it a full size array. + +The loop on step 3 will zero the two arrays to prepare them for the squaring step. Step 4.1 computes the squares of the product. Note how +it simply assigns the value into the $\hat X$ array. The nested loop on step 4.2 computes the doubles of the products. This loop +computes the sum of the products for each column. They are not doubled until later. + +After the squaring loop, the products stored in $\hat W$ musted be doubled and the carries propagated forwards. It makes sense to do both +operations at the same time. The expression $\hat W_{ix} \leftarrow 2 \hat W_{ix} + \hat {X}_{ix}$ computes the sum of the double product and the +squares in place. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_fast\_s\_mp\_sqr.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* fast squaring +018 * +019 * This is the comba method where the columns of the product +020 * are computed first then the carries are computed. This +021 * has the effect of making a very simple inner loop that +022 * is executed the most +023 * +024 * W2 represents the outer products and W the inner. +025 * +026 * A further optimizations is made because the inner +027 * products are of the form "A * B * 2". The *2 part does +028 * not need to be computed until the end which is good +029 * because 64-bit shifts are slow! +030 * +031 * Based on Algorithm 14.16 on pp.597 of HAC. +032 * +033 */ +034 int +035 fast_s_mp_sqr (mp_int * a, mp_int * b) +036 \{ +037 int olduse, newused, res, ix, pa; +038 mp_word W2[MP_WARRAY], W[MP_WARRAY]; +039 +040 /* calculate size of product and allocate as required */ +041 pa = a->used; +042 newused = pa + pa + 1; +043 if (b->alloc < newused) \{ +044 if ((res = mp_grow (b, newused)) != MP_OKAY) \{ +045 return res; +046 \} +047 \} +048 +049 /* zero temp buffer (columns) +050 * Note that there are two buffers. Since squaring requires +051 * a outer and inner product and the inner product requires +052 * computing a product and doubling it (a relatively expensive +053 * op to perform n**2 times if you don't have to) the inner and +054 * outer products are computed in different buffers. This way +055 * the inner product can be doubled using n doublings instead of +056 * n**2 +057 */ +058 memset (W, 0, newused * sizeof (mp_word)); +059 memset (W2, 0, newused * sizeof (mp_word)); +060 +061 /* This computes the inner product. To simplify the inner N**2 loop +062 * the multiplication by two is done afterwards in the N loop. +063 */ +064 for (ix = 0; ix < pa; ix++) \{ +065 /* compute the outer product +066 * +067 * Note that every outer product is computed +068 * for a particular column only once which means that +069 * there is no need todo a double precision addition +070 * into the W2[] array. +071 */ +072 W2[ix + ix] = ((mp_word)a->dp[ix]) * ((mp_word)a->dp[ix]); +073 +074 \{ +075 register mp_digit tmpx, *tmpy; +076 register mp_word *_W; +077 register int iy; +078 +079 /* copy of left side */ +080 tmpx = a->dp[ix]; +081 +082 /* alias for right side */ +083 tmpy = a->dp + (ix + 1); +084 +085 /* the column to store the result in */ +086 _W = W + (ix + ix + 1); +087 +088 /* inner products */ +089 for (iy = ix + 1; iy < pa; iy++) \{ +090 *_W++ += ((mp_word)tmpx) * ((mp_word)*tmpy++); +091 \} +092 \} +093 \} +094 +095 /* setup dest */ +096 olduse = b->used; +097 b->used = newused; +098 +099 /* now compute digits +100 * +101 * We have to double the inner product sums, add in the +102 * outer product sums, propagate carries and convert +103 * to single precision. +104 */ +105 \{ +106 register mp_digit *tmpb; +107 +108 /* double first value, since the inner products are +109 * half of what they should be +110 */ +111 W[0] += W[0] + W2[0]; +112 +113 tmpb = b->dp; +114 for (ix = 1; ix < newused; ix++) \{ +115 /* double/add next digit */ +116 W[ix] += W[ix] + W2[ix]; +117 +118 /* propagate carry forwards [from the previous digit] */ +119 W[ix] = W[ix] + (W[ix - 1] >> ((mp_word) DIGIT_BIT)); +120 +121 /* store the current digit now that the carry isn't +122 * needed +123 */ +124 *tmpb++ = (mp_digit) (W[ix - 1] & ((mp_word) MP_MASK)); +125 \} +126 /* set the last value. Note even if the carry is zero +127 * this is required since the next step will not zero +128 * it if b originally had a value at b->dp[2*a.used] +129 */ +130 *tmpb++ = (mp_digit) (W[(newused) - 1] & ((mp_word) MP_MASK)); +131 +132 /* clear high digits of b if there were any originally */ +133 for (; ix < olduse; ix++) \{ +134 *tmpb++ = 0; +135 \} +136 \} +137 +138 mp_clamp (b); +139 return MP_OKAY; +140 \} +\end{alltt} +\end{small} + +-- Write something deep and insightful later, Tom. + +\subsection{Polynomial Basis Squaring} +The same algorithm that performs optimal polynomial basis multiplication can be used to perform polynomial basis squaring. The minor exception +is that $\zeta_y = f(y)g(y)$ is actually equivalent to $\zeta_y = f(y)^2$ since $f(y) = g(y)$. Instead of performing $2n + 1$ +multiplications to find the $\zeta$ relations, squaring operations are performed instead. + +\subsection{Karatsuba Squaring} +Let $f(x) = ax + b$ represent the polynomial basis representation of a number to square. +Let $h(x) = \left ( f(x) \right )^2$ represent the square of the polynomial. The Karatsuba equation can be modified to square a +number with the following equation. + +\begin{equation} +h(x) = a^2x^2 + \left (a^2 + b^2 - (a - b)^2 \right )x + b^2 +\end{equation} + +Upon closer inspection this equation only requires the calculation of three half-sized squares: $a^2$, $b^2$ and $(a - b)^2$. As in +Karatsuba multiplication, this algorithm can be applied recursively on the input and will achieve an asymptotic running time of +$O \left ( n^{lg(3)} \right )$. + +You might ask yourself, if the asymptotic time of Karatsuba squaring and multiplication is the same, why not simply use the multiplication algorithm +instead? The answer to this arises from the cutoff point for squaring. As in multiplication there exists a cutoff point, at which the +time required for a Comba based squaring and a Karatsuba based squaring meet. Due to the overhead inherent in the Karatsuba method, the cutoff +point is fairly high. For example, on an AMD Athlon XP processor with $\beta = 2^{28}$, the cutoff point is around 127 digits. + +Consider squaring a 200 digit number with this technique. It will be split into two 100 digit halves which are subsequently squared. +The 100 digit halves will not be squared using Karatsuba, but instead using the faster Comba based squaring algorithm. If Karatsuba multiplication +were used instead, the 100 digit numbers would be squared with a slower Comba based multiplication. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_karatsuba\_sqr}. \\ +\textbf{Input}. mp\_int $a$ \\ +\textbf{Output}. $b \leftarrow a^2$ \\ +\hline \\ +1. Initialize the following temporary mp\_ints: $x0$, $x1$, $t1$, $t2$, $x0x0$ and $x1x1$. \\ +2. If any of the initializations on step 1 failed return(\textit{MP\_MEM}). \\ +\\ +Split the input. e.g. $a = x1\beta^B + x0$ \\ +3. $B \leftarrow \lfloor a.used / 2 \rfloor$ \\ +4. $x0 \leftarrow a \mbox{ (mod }\beta^B\mbox{)}$ (\textit{mp\_mod\_2d}) \\ +5. $x1 \leftarrow \lfloor a / \beta^B \rfloor$ (\textit{mp\_lshd}) \\ +\\ +Calculate the three squares. \\ +6. $x0x0 \leftarrow x0^2$ (\textit{mp\_sqr}) \\ +7. $x1x1 \leftarrow x1^2$ \\ +8. $t1 \leftarrow x1 - x0$ (\textit{mp\_sub}) \\ +9. $t1 \leftarrow t1^2$ \\ +\\ +Compute the middle term. \\ +10. $t2 \leftarrow x0x0 + x1x1$ (\textit{s\_mp\_add}) \\ +11. $t1 \leftarrow t2 - t1$ \\ +\\ +Compute final product. \\ +12. $t1 \leftarrow t1\beta^B$ (\textit{mp\_lshd}) \\ +13. $x1x1 \leftarrow x1x1\beta^{2B}$ \\ +14. $t1 \leftarrow t1 + x0x0$ \\ +15. $b \leftarrow t1 + x1x1$ \\ +16. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_karatsuba\_sqr} +\end{figure} + +\textbf{Algorithm mp\_karatsuba\_sqr.} +This algorithm computes the square of an input $a$ using the Karatsuba technique. This algorithm is very similar to the Karatsuba based +multiplication algorithm with the exception that the three half-size multiplications have been replaced with three half-size squarings. + +The radix point for squaring is simply placed exactly in the middle of the digits when the input has an odd number of digits, otherwise it is +placed just below the middle. Step 3, 4 and 5 compute the two halves required using $B$ +as the radix point. The first two squares in steps 6 and 7 are rather straightforward while the last square is of a more compact form. + +By expanding $\left (x1 - x0 \right )^2$, the $x1^2$ and $x0^2$ terms in the middle disappear, that is $x1^2 + x0^2 - (x1 - x0)^2 = 2 \cdot x0 \cdot x1$. +Now if $5n$ single precision additions and a squaring of $n$-digits is faster than multiplying two $n$-digit numbers and doubling then +this method is faster. Assuming no further recursions occur, the difference can be estimated with the following inequality. + +Let $p$ represent the cost of a single precision addition and $q$ the cost of a single precision multiplication both in terms of time\footnote{Or +machine clock cycles.}. + +\begin{equation} +5pn +{{q(n^2 + n)} \over 2} \le pn + qn^2 +\end{equation} + +For example, on an AMD Athlon XP processor $p = {1 \over 3}$ and $q = 6$. This implies that the following inequality should hold. +\begin{center} +\begin{tabular}{rcl} +${5n \over 3} + 3n^2 + 3n$ & $<$ & ${n \over 3} + 6n^2$ \\ +${5 \over 3} + 3n + 3$ & $<$ & ${1 \over 3} + 6n$ \\ +${13 \over 9}$ & $<$ & $n$ \\ +\end{tabular} +\end{center} + +This results in a cutoff point around $n = 2$. As a consequence it is actually faster to compute the middle term the ``long way'' on processors +where multiplication is substantially slower\footnote{On the Athlon there is a 1:17 ratio between clock cycles for addition and multiplication. On +the Intel P4 processor this ratio is 1:29 making this method even more beneficial. The only common exception is the ARMv4 processor which has a +ratio of 1:7. } than simpler operations such as addition. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_karatsuba\_sqr.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* Karatsuba squaring, computes b = a*a using three +018 * half size squarings +019 * +020 * See comments of mp_karatsuba_mul for details. It +021 * is essentially the same algorithm but merely +022 * tuned to perform recursive squarings. +023 */ +024 int +025 mp_karatsuba_sqr (mp_int * a, mp_int * b) +026 \{ +027 mp_int x0, x1, t1, t2, x0x0, x1x1; +028 int B, err; +029 +030 err = MP_MEM; +031 +032 /* min # of digits */ +033 B = a->used; +034 +035 /* now divide in two */ +036 B = B / 2; +037 +038 /* init copy all the temps */ +039 if (mp_init_size (&x0, B) != MP_OKAY) +040 goto ERR; +041 if (mp_init_size (&x1, a->used - B) != MP_OKAY) +042 goto X0; +043 +044 /* init temps */ +045 if (mp_init_size (&t1, a->used * 2) != MP_OKAY) +046 goto X1; +047 if (mp_init_size (&t2, a->used * 2) != MP_OKAY) +048 goto T1; +049 if (mp_init_size (&x0x0, B * 2) != MP_OKAY) +050 goto T2; +051 if (mp_init_size (&x1x1, (a->used - B) * 2) != MP_OKAY) +052 goto X0X0; +053 +054 \{ +055 register int x; +056 register mp_digit *dst, *src; +057 +058 src = a->dp; +059 +060 /* now shift the digits */ +061 dst = x0.dp; +062 for (x = 0; x < B; x++) \{ +063 *dst++ = *src++; +064 \} +065 +066 dst = x1.dp; +067 for (x = B; x < a->used; x++) \{ +068 *dst++ = *src++; +069 \} +070 \} +071 +072 x0.used = B; +073 x1.used = a->used - B; +074 +075 mp_clamp (&x0); +076 +077 /* now calc the products x0*x0 and x1*x1 */ +078 if (mp_sqr (&x0, &x0x0) != MP_OKAY) +079 goto X1X1; /* x0x0 = x0*x0 */ +080 if (mp_sqr (&x1, &x1x1) != MP_OKAY) +081 goto X1X1; /* x1x1 = x1*x1 */ +082 +083 /* now calc (x1-x0)**2 */ +084 if (mp_sub (&x1, &x0, &t1) != MP_OKAY) +085 goto X1X1; /* t1 = x1 - x0 */ +086 if (mp_sqr (&t1, &t1) != MP_OKAY) +087 goto X1X1; /* t1 = (x1 - x0) * (x1 - x0) */ +088 +089 /* add x0y0 */ +090 if (s_mp_add (&x0x0, &x1x1, &t2) != MP_OKAY) +091 goto X1X1; /* t2 = x0x0 + x1x1 */ +092 if (mp_sub (&t2, &t1, &t1) != MP_OKAY) +093 goto X1X1; /* t1 = x0x0 + x1x1 - (x1-x0)*(x1-x0) */ +094 +095 /* shift by B */ +096 if (mp_lshd (&t1, B) != MP_OKAY) +097 goto X1X1; /* t1 = (x0x0 + x1x1 - (x1-x0)*(x1-x0))<used >= TOOM_SQR_CUTOFF) \{ +024 res = mp_toom_sqr(a, b); +025 /* Karatsuba? */ +026 \} else if (a->used >= KARATSUBA_SQR_CUTOFF) \{ +027 res = mp_karatsuba_sqr (a, b); +028 \} else \{ +029 /* can we use the fast comba multiplier? */ +030 if ((a->used * 2 + 1) < MP_WARRAY && +031 a->used < +032 (1 << (sizeof(mp_word) * CHAR_BIT - 2*DIGIT_BIT - 1))) \{ +033 res = fast_s_mp_sqr (a, b); +034 \} else \{ +035 res = s_mp_sqr (a, b); +036 \} +037 \} +038 b->sign = MP_ZPOS; +039 return res; +040 \} +\end{alltt} +\end{small} + +\section*{Exercises} +\begin{tabular}{cl} +$\left [ 3 \right ] $ & Devise an efficient algorithm for selection of the radix point to handle inputs \\ + & that have different number of digits in Karatsuba multiplication. \\ + & \\ +$\left [ 3 \right ] $ & In section 6.3 the fact that every column of a squaring is made up \\ + & of double products and at most one square is stated. Prove this statement. \\ + & \\ +$\left [ 2 \right ] $ & In the Comba squaring algorithm half of the $\hat X$ variables are not used. \\ + & Revise algorithm fast\_s\_mp\_sqr to shrink the $\hat X$ array. \\ + & \\ +$\left [ 3 \right ] $ & Prove the equation for Karatsuba squaring. \\ + & \\ +$\left [ 1 \right ] $ & Prove that Karatsuba squaring requires $O \left (n^{lg(3)} \right )$ time. \\ + & \\ +$\left [ 2 \right ] $ & Determine the minimal ratio between addition and multiplication clock cycles \\ + & required for equation $6.7$ to be true. \\ + & \\ +\end{tabular} + +\chapter{Modular Reduction} +\section{Basics of Modular Reduction} +\index{modular residue} +Modular reduction is an operation that arises quite often within public key cryptography algorithms and various number theoretic algorithms, +such as factoring. Modular reduction algorithms are the third class of algorithms of the ``multipliers'' set. A number $a$ is said to be \textit{reduced} +modulo another number $b$ by finding the remainder of the division $a/b$. Full integer division with remainder is a topic to be covered +in~\ref{sec:division}. + +Modular reduction is equivalent to solving for $r$ in the following equation. $a = bq + r$ where $q = \lfloor a/b \rfloor$. The result +$r$ is said to be ``congruent to $a$ modulo $b$'' which is also written as $r \equiv a \mbox{ (mod }b\mbox{)}$. In other vernacular $r$ is known as the +``modular residue'' which leads to ``quadratic residue''\footnote{That's fancy talk for $b \equiv a^2 \mbox{ (mod }p\mbox{)}$.} and +other forms of residues. + +Modular reductions are normally used to create either finite groups, rings or fields. The most common usage for performance driven modular reductions +is in modular exponentiation algorithms. That is to compute $d = a^b \mbox{ (mod }c\mbox{)}$ as fast as possible. This operation is used in the +RSA and Diffie-Hellman public key algorithms, for example. Modular multiplication and squaring also appears as a fundamental operation in +Elliptic Curve cryptographic algorithms. As will be discussed in the subsequent chapter there exist fast algorithms for computing modular +exponentiations without having to perform (\textit{in this example}) $b - 1$ multiplications. These algorithms will produce partial results in the +range $0 \le x < c^2$ which can be taken advantage of to create several efficient algorithms. They have also been used to create redundancy check +algorithms known as CRCs, error correction codes such as Reed-Solomon and solve a variety of number theoeretic problems. + +\section{The Barrett Reduction} +The Barrett reduction algorithm \cite{BARRETT} was inspired by fast division algorithms which multiply by the reciprocal to emulate +division. Barretts observation was that the residue $c$ of $a$ modulo $b$ is equal to + +\begin{equation} +c = a - b \cdot \lfloor a/b \rfloor +\end{equation} + +Since algorithms such as modular exponentiation would be using the same modulus extensively, typical DSP\footnote{It is worth noting that Barrett's paper +targeted the DSP56K processor.} intuition would indicate the next step would be to replace $a/b$ by a multiplication by the reciprocal. However, +DSP intuition on its own will not work as these numbers are considerably larger than the precision of common DSP floating point data types. +It would take another common optimization to optimize the algorithm. + +\subsection{Fixed Point Arithmetic} +The trick used to optimize the above equation is based on a technique of emulating floating point data types with fixed precision integers. Fixed +point arithmetic would become very popular as it greatly optimize the ``3d-shooter'' genre of games in the mid 1990s when floating point units were +fairly slow if not unavailable. The idea behind fixed point arithmetic is to take a normal $k$-bit integer data type and break it into $p$-bit +integer and a $q$-bit fraction part (\textit{where $p+q = k$}). + +In this system a $k$-bit integer $n$ would actually represent $n/2^q$. For example, with $q = 4$ the integer $n = 37$ would actually represent the +value $2.3125$. To multiply two fixed point numbers the integers are multiplied using traditional arithmetic and subsequently normalized by +moving the implied decimal point back to where it should be. For example, with $q = 4$ to multiply the integers $9$ and $5$ they must be converted +to fixed point first by multiplying by $2^q$. Let $a = 9(2^q)$ represent the fixed point representation of $9$ and $b = 5(2^q)$ represent the +fixed point representation of $5$. The product $ab$ is equal to $45(2^{2q})$ which when normalized by dividing by $2^q$ produces $45(2^q)$. + +This technique became popular since a normal integer multiplication and logical shift right are the only required operations to perform a multiplication +of two fixed point numbers. Using fixed point arithmetic, division can be easily approximated by multiplying by the reciprocal. If $2^q$ is +equivalent to one than $2^q/b$ is equivalent to the fixed point approximation of $1/b$ using real arithmetic. Using this fact dividing an integer +$a$ by another integer $b$ can be achieved with the following expression. + +\begin{equation} +\lfloor a / b \rfloor \mbox{ }\approx\mbox{ } \lfloor (a \cdot \lfloor 2^q / b \rfloor)/2^q \rfloor +\end{equation} + +The precision of the division is proportional to the value of $q$. If the divisor $b$ is used frequently as is the case with +modular exponentiation pre-computing $2^q/b$ will allow a division to be performed with a multiplication and a right shift. Both operations +are considerably faster than division on most processors. + +Consider dividing $19$ by $5$. The correct result is $\lfloor 19/5 \rfloor = 3$. With $q = 3$ the reciprocal is $\lfloor 2^q/5 \rfloor = 1$ which +leads to a product of $19$ which when divided by $2^q$ produces $2$. However, with $q = 4$ the reciprocal is $\lfloor 2^q/5 \rfloor = 3$ and +the result of the emulated division is $\lfloor 3 \cdot 19 / 2^q \rfloor = 3$ which is correct. The value of $2^q$ must be close to or ideally +larger than the dividend. In effect if $a$ is the dividend then $q$ should allow $0 \le \lfloor a/2^q \rfloor \le 1$ in order for this approach +to work correctly. Plugging this form of divison into the original equation the following modular residue equation arises. + +\begin{equation} +c = a - b \cdot \lfloor (a \cdot \lfloor 2^q / b \rfloor)/2^q \rfloor +\end{equation} + +Using the notation from \cite{BARRETT} the value of $\lfloor 2^q / b \rfloor$ will be represented by the $\mu$ symbol. Using the $\mu$ +variable also helps re-inforce the idea that it is meant to be computed once and re-used. + +\begin{equation} +c = a - b \cdot \lfloor (a \cdot \mu)/2^q \rfloor +\end{equation} + +Provided that $2^q \ge a$ this algorithm will produce a quotient that is either exactly correct or off by a value of one. In the context of Barrett +reduction the value of $a$ is bound by $0 \le a \le (b - 1)^2$ meaning that $2^q \ge b^2$ is sufficient to ensure the reciprocal will have enough +precision. + +Let $n$ represent the number of digits in $b$. This algorithm requires approximately $2n^2$ single precision multiplications to produce the quotient and +another $n^2$ single precision multiplications to find the residue. In total $3n^2$ single precision multiplications are required to +reduce the number. + +For example, if $b = 1179677$ and $q = 41$ ($2^q > b^2$), then the reciprocal $\mu$ is equal to $\lfloor 2^q / b \rfloor = 1864089$. Consider reducing +$a = 180388626447$ modulo $b$ using the above reduction equation. The quotient using the new formula is $\lfloor (a \cdot \mu) / 2^q \rfloor = 152913$. +By subtracting $152913b$ from $a$ the correct residue $a \equiv 677346 \mbox{ (mod }b\mbox{)}$ is found. + +\subsection{Choosing a Radix Point} +Using the fixed point representation a modular reduction can be performed with $3n^2$ single precision multiplications. If that were the best +that could be achieved a full division\footnote{A division requires approximately $O(2cn^2)$ single precision multiplications for a small value of $c$. +See~\ref{sec:division} for further details.} might as well be used in its place. The key to optimizing the reduction is to reduce the precision of +the initial multiplication that finds the quotient. + +Let $a$ represent the number of which the residue is sought. Let $b$ represent the modulus used to find the residue. Let $m$ represent +the number of digits in $b$. For the purposes of this discussion we will assume that the number of digits in $a$ is $2m$, which is generally true if +two $m$-digit numbers have been multiplied. Dividing $a$ by $b$ is the same as dividing a $2m$ digit integer by a $m$ digit integer. Digits below the +$m - 1$'th digit of $a$ will contribute at most a value of $1$ to the quotient because $\beta^k < b$ for any $0 \le k \le m - 1$. Another way to +express this is by re-writing $a$ as two parts. If $a' \equiv a \mbox{ (mod }b^m\mbox{)}$ and $a'' = a - a'$ then +${a \over b} \equiv {{a' + a''} \over b}$ which is equivalent to ${a' \over b} + {a'' \over b}$. Since $a'$ is bound to be less than $b$ the quotient +is bound by $0 \le {a' \over b} < 1$. + +Since the digits of $a'$ do not contribute much to the quotient the observation is that they might as well be zero. However, if the digits +``might as well be zero'' they might as well not be there in the first place. Let $q_0 = \lfloor a/\beta^{m-1} \rfloor$ represent the input +with the irrelevant digits trimmed. Now the modular reduction is trimmed to the almost equivalent equation + +\begin{equation} +c = a - b \cdot \lfloor (q_0 \cdot \mu) / \beta^{m+1} \rfloor +\end{equation} + +Note that the original divisor $2^q$ has been replaced with $\beta^{m+1}$ where in this case $q$ is a multiple of $lg(\beta)$. Also note that the +exponent on the divisor when added to the amount $q_0$ was shifted by equals $2m$. If the optimization had not been performed the divisor +would have the exponent $2m$ so in the end the exponents do ``add up''. Using the above equation the quotient +$\lfloor (q_0 \cdot \mu) / \beta^{m+1} \rfloor$ can be off from the true quotient by at most two. The original fixed point quotient can be off +by as much as one (\textit{provided the radix point is chosen suitably}) and now that the lower irrelevent digits have been trimmed the quotient +can be off by an additional value of one for a total of at most two. This implies that +$0 \le a - b \cdot \lfloor (q_0 \cdot \mu) / \beta^{m+1} \rfloor < 3b$. By first subtracting $b$ times the quotient and then conditionally subtracting +$b$ once or twice the residue is found. + +The quotient is now found using $(m + 1)(m) = m^2 + m$ single precision multiplications and the residue with an additional $m^2$ single +precision multiplications, ignoring the subtractions required. In total $2m^2 + m$ single precision multiplications are required to find the residue. +This is considerably faster than the original attempt. + +For example, let $\beta = 10$ represent the radix of the digits. Let $b = 9999$ represent the modulus which implies $m = 4$. Let $a = 99929878$ +represent the value of which the residue is desired. In this case $q = 8$ since $10^7 < 9999^2$ meaning that $\mu = \lfloor \beta^{q}/b \rfloor = 10001$. +With the new observation the multiplicand for the quotient is equal to $q_0 = \lfloor a / \beta^{m - 1} \rfloor = 99929$. The quotient is then +$\lfloor (q_0 \cdot \mu) / \beta^{m+1} \rfloor = 9993$. Subtracting $9993b$ from $a$ and the correct residue $a \equiv 9871 \mbox{ (mod }b\mbox{)}$ +is found. + +\subsection{Trimming the Quotient} +So far the reduction algorithm has been optimized from $3m^2$ single precision multiplications down to $2m^2 + m$ single precision multiplications. As +it stands now the algorithm is already fairly fast compared to a full integer division algorithm. However, there is still room for +optimization. + +After the first multiplication inside the quotient ($q_0 \cdot \mu$) the value is shifted right by $m + 1$ places effectively nullifying the lower +half of the product. It would be nice to be able to remove those digits from the product to effectively cut down the number of single precision +multiplications. If the number of digits in the modulus $m$ is far less than $\beta$ a full product is not required for the algorithm to work properly. +In fact the lower $m - 2$ digits will not affect the upper half of the product at all and do not need to be computed. + +The value of $\mu$ is a $m$-digit number and $q_0$ is a $m + 1$ digit number. Using a full multiplier $(m + 1)(m) = m^2 + m$ single precision +multiplications would be required. Using a multiplier that will only produce digits at and above the $m - 1$'th digit reduces the number +of single precision multiplications to ${m^2 + m} \over 2$ single precision multiplications. + +\subsection{Trimming the Residue} +After the quotient has been calculated it is used to reduce the input. As previously noted the algorithm is not exact and it can be off by a small +multiple of the modulus, that is $0 \le a - b \cdot \lfloor (q_0 \cdot \mu) / \beta^{m+1} \rfloor < 3b$. If $b$ is $m$ digits than the +result of reduction equation is a value of at most $m + 1$ digits (\textit{provided $3 < \beta$}) implying that the upper $m - 1$ digits are +implicitly zero. + +The next optimization arises from this very fact. Instead of computing $b \cdot \lfloor (q_0 \cdot \mu) / \beta^{m+1} \rfloor$ using a full +$O(m^2)$ multiplication algorithm only the lower $m+1$ digits of the product have to be computed. Similarly the value of $a$ can +be reduced modulo $\beta^{m+1}$ before the multiple of $b$ is subtracted which simplifes the subtraction as well. A multiplication that produces +only the lower $m+1$ digits requires ${m^2 + 3m - 2} \over 2$ single precision multiplications. + +With both optimizations in place the algorithm is the algorithm Barrett proposed. It requires $m^2 + 2m - 1$ single precision multiplications which +is considerably faster than the straightforward $3m^2$ method. + +\subsection{The Barrett Algorithm} +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_reduce}. \\ +\textbf{Input}. mp\_int $a$, mp\_int $b$ and $\mu = \lfloor \beta^{2m}/b \rfloor, m = \lceil lg_{\beta}(b) \rceil, (0 \le a < b^2, b > 1)$ \\ +\textbf{Output}. $a \mbox{ (mod }b\mbox{)}$ \\ +\hline \\ +Let $m$ represent the number of digits in $b$. \\ +1. Make a copy of $a$ and store it in $q$. (\textit{mp\_init\_copy}) \\ +2. $q \leftarrow \lfloor q / \beta^{m - 1} \rfloor$ (\textit{mp\_rshd}) \\ +\\ +Produce the quotient. \\ +3. $q \leftarrow q \cdot \mu$ (\textit{note: only produce digits at or above $m-1$}) \\ +4. $q \leftarrow \lfloor q / \beta^{m + 1} \rfloor$ \\ +\\ +Subtract the multiple of modulus from the input. \\ +5. $a \leftarrow a \mbox{ (mod }\beta^{m+1}\mbox{)}$ (\textit{mp\_mod\_2d}) \\ +6. $q \leftarrow q \cdot b \mbox{ (mod }\beta^{m+1}\mbox{)}$ (\textit{s\_mp\_mul\_digs}) \\ +7. $a \leftarrow a - q$ (\textit{mp\_sub}) \\ +\\ +Add $\beta^{m+1}$ if a carry occured. \\ +8. If $a < 0$ then (\textit{mp\_cmp\_d}) \\ +\hspace{3mm}8.1 $q \leftarrow 1$ (\textit{mp\_set}) \\ +\hspace{3mm}8.2 $q \leftarrow q \cdot \beta^{m+1}$ (\textit{mp\_lshd}) \\ +\hspace{3mm}8.3 $a \leftarrow a + q$ \\ +\\ +Now subtract the modulus if the residue is too large (e.g. quotient too small). \\ +9. While $a \ge b$ do (\textit{mp\_cmp}) \\ +\hspace{3mm}9.1 $c \leftarrow a - b$ \\ +10. Clear $q$. \\ +11. Return(\textit{MP\_OKAY}) \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_reduce} +\end{figure} + +\textbf{Algorithm mp\_reduce.} +This algorithm will reduce the input $a$ modulo $b$ in place using the Barrett algorithm. It is loosely based on algorithm 14.42 of HAC +\cite[pp. 602]{HAC} which is based on the paper from Paul Barrett \cite{BARRETT}. The algorithm has several restrictions and assumptions which must +be adhered to for the algorithm to work. + +First the modulus $b$ is assumed to be positive and greater than one. If the modulus were less than or equal to one than subtracting +a multiple of it would either accomplish nothing or actually enlarge the input. The input $a$ must be in the range $0 \le a < b^2$ in order +for the quotient to have enough precision. If $a$ is the product of two numbers that were already reduced modulo $b$, this will not be a problem. +Technically the algorithm will still work if $a \ge b^2$ but it will take much longer to finish. The value of $\mu$ is passed as an argument to this +algorithm and is assumed to be calculated and stored before the algorithm is used. + +Recall that the multiplication for the quotient on step 3 must only produce digits at or above the $m-1$'th position. An algorithm called +$s\_mp\_mul\_high\_digs$ which has not been presented is used to accomplish this task. The algorithm is based on $s\_mp\_mul\_digs$ except that +instead of stopping at a given level of precision it starts at a given level of precision. This optimal algorithm can only be used if the number +of digits in $b$ is very much smaller than $\beta$. + +While it is known that +$a \ge b \cdot \lfloor (q_0 \cdot \mu) / \beta^{m+1} \rfloor$ only the lower $m+1$ digits are being used to compute the residue, so an implied +``borrow'' from the higher digits might leave a negative result. After the multiple of the modulus has been subtracted from $a$ the residue must be +fixed up in case it is negative. The invariant $\beta^{m+1}$ must be added to the residue to make it positive again. + +The while loop at step 9 will subtract $b$ until the residue is less than $b$. If the algorithm is performed correctly this step is +performed at most twice, and on average once. However, if $a \ge b^2$ than it will iterate substantially more times than it should. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_reduce.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* reduces x mod m, assumes 0 < x < m**2, mu is +018 * precomputed via mp_reduce_setup. +019 * From HAC pp.604 Algorithm 14.42 +020 */ +021 int +022 mp_reduce (mp_int * x, mp_int * m, mp_int * mu) +023 \{ +024 mp_int q; +025 int res, um = m->used; +026 +027 /* q = x */ +028 if ((res = mp_init_copy (&q, x)) != MP_OKAY) \{ +029 return res; +030 \} +031 +032 /* q1 = x / b**(k-1) */ +033 mp_rshd (&q, um - 1); +034 +035 /* according to HAC this optimization is ok */ +036 if (((unsigned long) um) > (((mp_digit)1) << (DIGIT_BIT - 1))) \{ +037 if ((res = mp_mul (&q, mu, &q)) != MP_OKAY) \{ +038 goto CLEANUP; +039 \} +040 \} else \{ +041 if ((res = s_mp_mul_high_digs (&q, mu, &q, um - 1)) != MP_OKAY) \{ +042 goto CLEANUP; +043 \} +044 \} +045 +046 /* q3 = q2 / b**(k+1) */ +047 mp_rshd (&q, um + 1); +048 +049 /* x = x mod b**(k+1), quick (no division) */ +050 if ((res = mp_mod_2d (x, DIGIT_BIT * (um + 1), x)) != MP_OKAY) \{ +051 goto CLEANUP; +052 \} +053 +054 /* q = q * m mod b**(k+1), quick (no division) */ +055 if ((res = s_mp_mul_digs (&q, m, &q, um + 1)) != MP_OKAY) \{ +056 goto CLEANUP; +057 \} +058 +059 /* x = x - q */ +060 if ((res = mp_sub (x, &q, x)) != MP_OKAY) \{ +061 goto CLEANUP; +062 \} +063 +064 /* If x < 0, add b**(k+1) to it */ +065 if (mp_cmp_d (x, 0) == MP_LT) \{ +066 mp_set (&q, 1); +067 if ((res = mp_lshd (&q, um + 1)) != MP_OKAY) +068 goto CLEANUP; +069 if ((res = mp_add (x, &q, x)) != MP_OKAY) +070 goto CLEANUP; +071 \} +072 +073 /* Back off if it's too big */ +074 while (mp_cmp (x, m) != MP_LT) \{ +075 if ((res = s_mp_sub (x, m, x)) != MP_OKAY) \{ +076 goto CLEANUP; +077 \} +078 \} +079 +080 CLEANUP: +081 mp_clear (&q); +082 +083 return res; +084 \} +\end{alltt} +\end{small} + +The first multiplication that determines the quotient can be performed by only producing the digits from $m - 1$ and up. This essentially halves +the number of single precision multiplications required. However, the optimization is only safe if $\beta$ is much larger than the number of digits +in the modulus. In the source code this is evaluated on lines 36 to 44 where algorithm s\_mp\_mul\_high\_digs is used when it is +safe to do so. + +\subsection{The Barrett Setup Algorithm} +In order to use algorithm mp\_reduce the value of $\mu$ must be calculated in advance. Ideally this value should be computed once and stored for +future use so that the Barrett algorithm can be used without delay. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_reduce\_setup}. \\ +\textbf{Input}. mp\_int $a$ ($a > 1$) \\ +\textbf{Output}. $\mu \leftarrow \lfloor \beta^{2m}/a \rfloor$ \\ +\hline \\ +1. $\mu \leftarrow 2^{2 \cdot lg(\beta) \cdot m}$ (\textit{mp\_2expt}) \\ +2. $\mu \leftarrow \lfloor \mu / b \rfloor$ (\textit{mp\_div}) \\ +3. Return(\textit{MP\_OKAY}) \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_reduce\_setup} +\end{figure} + +\textbf{Algorithm mp\_reduce\_setup.} +This algorithm computes the reciprocal $\mu$ required for Barrett reduction. First $\beta^{2m}$ is calculated as $2^{2 \cdot lg(\beta) \cdot m}$ which +is equivalent and much faster. The final value is computed by taking the integer quotient of $\lfloor \mu / b \rfloor$. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_reduce\_setup.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* pre-calculate the value required for Barrett reduction +018 * For a given modulus "b" it calulates the value required in "a" +019 */ +020 int +021 mp_reduce_setup (mp_int * a, mp_int * b) +022 \{ +023 int res; +024 +025 if ((res = mp_2expt (a, b->used * 2 * DIGIT_BIT)) != MP_OKAY) \{ +026 return res; +027 \} +028 return mp_div (a, b, a, NULL); +029 \} +\end{alltt} +\end{small} + +This simple routine calculates the reciprocal $\mu$ required by Barrett reduction. Note the extended usage of algorithm mp\_div where the variable +which would received the remainder is passed as NULL. As will be discussed in~\ref{sec:division} the division routine allows both the quotient and the +remainder to be passed as NULL meaning to ignore the value. + +\section{The Montgomery Reduction} +Montgomery reduction\footnote{Thanks to Niels Ferguson for his insightful explanation of the algorithm.} \cite{MONT} is by far the most interesting +form of reduction in common use. It computes a modular residue which is not actually equal to the residue of the input yet instead equal to a +residue times a constant. However, as perplexing as this may sound the algorithm is relatively simple and very efficient. + +Throughout this entire section the variable $n$ will represent the modulus used to form the residue. As will be discussed shortly the value of +$n$ must be odd. The variable $x$ will represent the quantity of which the residue is sought. Similar to the Barrett algorithm the input +is restricted to $0 \le x < n^2$. To begin the description some simple number theory facts must be established. + +\textbf{Fact 1.} Adding $n$ to $x$ does not change the residue since in effect it adds one to the quotient $\lfloor x / n \rfloor$. Another way +to explain this is that $n$ is (\textit{or multiples of $n$ are}) congruent to zero modulo $n$. Adding zero will not change the value of the residue. + +\textbf{Fact 2.} If $x$ is even then performing a division by two in $\Z$ is congruent to $x \cdot 2^{-1} \mbox{ (mod }n\mbox{)}$. Actually +this is an application of the fact that if $x$ is evenly divisible by any $k \in \Z$ then division in $\Z$ will be congruent to +multiplication by $k^{-1}$ modulo $n$. + +From these two simple facts the following simple algorithm can be derived. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{Montgomery Reduction}. \\ +\textbf{Input}. Integer $x$, $n$ and $k$ \\ +\textbf{Output}. $2^{-k}x \mbox{ (mod }n\mbox{)}$ \\ +\hline \\ +1. for $t$ from $1$ to $k$ do \\ +\hspace{3mm}1.1 If $x$ is odd then \\ +\hspace{6mm}1.1.1 $x \leftarrow x + n$ \\ +\hspace{3mm}1.2 $x \leftarrow x/2$ \\ +2. Return $x$. \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm Montgomery Reduction} +\end{figure} + +The algorithm reduces the input one bit at a time using the two congruencies stated previously. Inside the loop $n$, which is odd, is +added to $x$ if $x$ is odd. This forces $x$ to be even which allows the division by two in $\Z$ to be congruent to a modular division by two. Since +$x$ is assumed to be initially much larger than $n$ the addition of $n$ will contribute an insignificant magnitude to $x$. Let $r$ represent the +final result of the Montgomery algorithm. If $k > lg(n)$ and $0 \le x < n^2$ then the final result is limited to +$0 \le r < \lfloor x/2^k \rfloor + n$. As a result at most a single subtraction is required to get the residue desired. + +\begin{figure}[here] +\begin{small} +\begin{center} +\begin{tabular}{|c|l|} +\hline \textbf{Step number ($t$)} & \textbf{Result ($x$)} \\ +\hline $1$ & $x + n = 5812$, $x/2 = 2906$ \\ +\hline $2$ & $x/2 = 1453$ \\ +\hline $3$ & $x + n = 1710$, $x/2 = 855$ \\ +\hline $4$ & $x + n = 1112$, $x/2 = 556$ \\ +\hline $5$ & $x/2 = 278$ \\ +\hline $6$ & $x/2 = 139$ \\ +\hline $7$ & $x + n = 396$, $x/2 = 198$ \\ +\hline $8$ & $x/2 = 99$ \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Example of Montgomery Reduction (I)} +\label{fig:MONT1} +\end{figure} + +Consider the example in figure~\ref{fig:MONT1} which reduces $x = 5555$ modulo $n = 257$ when $k = 8$. The result of the algorithm $r = 99$ is +congruent to the value of $2^{-8} \cdot 5555 \mbox{ (mod }257\mbox{)}$. When $r$ is multiplied by $2^8$ modulo $257$ the correct residue +$r \equiv 158$ is produced. + +Let $k = \lfloor lg(n) \rfloor + 1$ represent the number of bits in $n$. The current algorithm requires $2k^2$ single precision shifts +and $k^2$ single precision additions. At this rate the algorithm is most certainly slower than Barrett reduction and not terribly useful. +Fortunately there exists an alternative representation of the algorithm. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{Montgomery Reduction} (modified I). \\ +\textbf{Input}. Integer $x$, $n$ and $k$ \\ +\textbf{Output}. $2^{-k}x \mbox{ (mod }n\mbox{)}$ \\ +\hline \\ +1. for $t$ from $0$ to $k - 1$ do \\ +\hspace{3mm}1.1 If the $t$'th bit of $x$ is one then \\ +\hspace{6mm}1.1.1 $x \leftarrow x + 2^tn$ \\ +2. Return $x/2^k$. \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm Montgomery Reduction (modified I)} +\end{figure} + +This algorithm is equivalent since $2^tn$ is a multiple of $n$ and the lower $k$ bits of $x$ are zero by step 2. The number of single +precision shifts has now been reduced from $2k^2$ to $k^2 + k$ which is only a small improvement. + +\begin{figure}[here] +\begin{small} +\begin{center} +\begin{tabular}{|c|l|r|} +\hline \textbf{Step number ($t$)} & \textbf{Result ($x$)} & \textbf{Result ($x$) in Binary} \\ +\hline -- & $5555$ & $1010110110011$ \\ +\hline $1$ & $x + 2^{0}n = 5812$ & $1011010110100$ \\ +\hline $2$ & $5812$ & $1011010110100$ \\ +\hline $3$ & $x + 2^{2}n = 6840$ & $1101010111000$ \\ +\hline $4$ & $x + 2^{3}n = 8896$ & $10001011000000$ \\ +\hline $5$ & $8896$ & $10001011000000$ \\ +\hline $6$ & $8896$ & $10001011000000$ \\ +\hline $7$ & $x + 2^{6}n = 25344$ & $110001100000000$ \\ +\hline $8$ & $25344$ & $110001100000000$ \\ +\hline -- & $x/2^k = 99$ & \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Example of Montgomery Reduction (II)} +\label{fig:MONT2} +\end{figure} + +Figure~\ref{fig:MONT2} demonstrates the modified algorithm reducing $x = 5555$ modulo $n = 257$ with $k = 8$. +With this algorithm a single shift right at the end is the only right shift required to reduce the input instead of $k$ right shifts inside the +loop. Note that for the iterations $t = 2, 5, 6$ and $8$ where the result $x$ is not changed. In those iterations the $t$'th bit of $x$ is +zero and the appropriate multiple of $n$ does not need to be added to force the $t$'th bit of the result to zero. + +\subsection{Digit Based Montgomery Reduction} +Instead of computing the reduction on a bit-by-bit basis it is actually much faster to compute it on digit-by-digit basis. Consider the +previous algorithm re-written to compute the Montgomery reduction in this new fashion. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{Montgomery Reduction} (modified II). \\ +\textbf{Input}. Integer $x$, $n$ and $k$ \\ +\textbf{Output}. $\beta^{-k}x \mbox{ (mod }n\mbox{)}$ \\ +\hline \\ +1. for $t$ from $0$ to $k - 1$ do \\ +\hspace{3mm}1.1 $x \leftarrow x + \mu n \beta^t$ \\ +2. Return $x/\beta^k$. \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm Montgomery Reduction (modified II)} +\end{figure} + +The value $\mu n \beta^t$ is a multiple of the modulus $n$ meaning that it will not change the residue. If the first digit of +the value $\mu n \beta^t$ equals the negative (modulo $\beta$) of the $t$'th digit of $x$ then the addition will result in a zero digit. This +problem breaks down to solving the following congruency. + +\begin{center} +\begin{tabular}{rcl} +$x_t + \mu n_0$ & $\equiv$ & $0 \mbox{ (mod }\beta\mbox{)}$ \\ +$\mu n_0$ & $\equiv$ & $-x_t \mbox{ (mod }\beta\mbox{)}$ \\ +$\mu$ & $\equiv$ & $-x_t/n_0 \mbox{ (mod }\beta\mbox{)}$ \\ +\end{tabular} +\end{center} + +In each iteration of the loop on step 1 a new value of $\mu$ must be calculated. The value of $-1/n_0 \mbox{ (mod }\beta\mbox{)}$ is used +extensively in this algorithm and should be precomputed. Let $\rho$ represent the negative of the modular inverse of $n_0$ modulo $\beta$. + +For example, let $\beta = 10$ represent the radix. Let $n = 17$ represent the modulus which implies $k = 2$ and $\rho \equiv 7$. Let $x = 33$ +represent the value to reduce. + +\newpage\begin{figure} +\begin{center} +\begin{tabular}{|c|c|c|} +\hline \textbf{Step ($t$)} & \textbf{Value of $x$} & \textbf{Value of $\mu$} \\ +\hline -- & $33$ & --\\ +\hline $0$ & $33 + \mu n = 50$ & $1$ \\ +\hline $1$ & $50 + \mu n \beta = 900$ & $5$ \\ +\hline +\end{tabular} +\end{center} +\caption{Example of Montgomery Reduction} +\end{figure} + +The final result $900$ is then divided by $\beta^k$ to produce the final result $9$. The first observation is that $9 \nequiv x \mbox{ (mod }n\mbox{)}$ +which implies the result is not the modular residue of $x$ modulo $n$. However, recall that the residue is actually multiplied by $\beta^{-k}$ in +the algorithm. To get the true residue the value must be multiplied by $\beta^k$. In this case $\beta^k \equiv 15 \mbox{ (mod }n\mbox{)}$ and +the correct residue is $9 \cdot 15 \equiv 16 \mbox{ (mod }n\mbox{)}$. + +\subsection{Baseline Montgomery Reduction} +The baseline Montgomery reduction algorithm will produce the residue for any size input. It is designed to be a catch-all algororithm for +Montgomery reductions. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_montgomery\_reduce}. \\ +\textbf{Input}. mp\_int $x$, mp\_int $n$ and a digit $\rho \equiv -1/n_0 \mbox{ (mod }n\mbox{)}$. \\ +\hspace{11.5mm}($0 \le x < n^2, n > 1, (n, \beta) = 1, \beta^k > n$) \\ +\textbf{Output}. $\beta^{-k}x \mbox{ (mod }n\mbox{)}$ \\ +\hline \\ +1. $digs \leftarrow 2n.used + 1$ \\ +2. If $digs < MP\_ARRAY$ and $m.used < \delta$ then \\ +\hspace{3mm}2.1 Use algorithm fast\_mp\_montgomery\_reduce instead. \\ +\\ +Setup $x$ for the reduction. \\ +3. If $x.alloc < digs$ then grow $x$ to $digs$ digits. \\ +4. $x.used \leftarrow digs$ \\ +\\ +Eliminate the lower $k$ digits. \\ +5. For $ix$ from $0$ to $k - 1$ do \\ +\hspace{3mm}5.1 $\mu \leftarrow x_{ix} \cdot \rho \mbox{ (mod }\beta\mbox{)}$ \\ +\hspace{3mm}5.2 $u \leftarrow 0$ \\ +\hspace{3mm}5.3 For $iy$ from $0$ to $k - 1$ do \\ +\hspace{6mm}5.3.1 $\hat r \leftarrow \mu n_{iy} + x_{ix + iy} + u$ \\ +\hspace{6mm}5.3.2 $x_{ix + iy} \leftarrow \hat r \mbox{ (mod }\beta\mbox{)}$ \\ +\hspace{6mm}5.3.3 $u \leftarrow \lfloor \hat r / \beta \rfloor$ \\ +\hspace{3mm}5.4 While $u > 0$ do \\ +\hspace{6mm}5.4.1 $iy \leftarrow iy + 1$ \\ +\hspace{6mm}5.4.2 $x_{ix + iy} \leftarrow x_{ix + iy} + u$ \\ +\hspace{6mm}5.4.3 $u \leftarrow \lfloor x_{ix+iy} / \beta \rfloor$ \\ +\hspace{6mm}5.4.4 $x_{ix + iy} \leftarrow x_{ix+iy} \mbox{ (mod }\beta\mbox{)}$ \\ +\\ +Divide by $\beta^k$ and fix up as required. \\ +6. $x \leftarrow \lfloor x / \beta^k \rfloor$ \\ +7. If $x \ge n$ then \\ +\hspace{3mm}7.1 $x \leftarrow x - n$ \\ +8. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_montgomery\_reduce} +\end{figure} + +\textbf{Algorithm mp\_montgomery\_reduce.} +This algorithm reduces the input $x$ modulo $n$ in place using the Montgomery reduction algorithm. The algorithm is loosely based +on algorithm 14.32 of \cite[pp.601]{HAC} except it merges the multiplication of $\mu n \beta^t$ with the addition in the inner loop. The +restrictions on this algorithm are fairly easy to adapt to. First $0 \le x < n^2$ bounds the input to numbers in the same range as +for the Barrett algorithm. Additionally if $n > 1$ and $n$ is odd there will exist a modular inverse $\rho$. $\rho$ must be calculated in +advance of this algorithm. Finally the variable $k$ is fixed and a pseudonym for $n.used$. + +Step 2 decides whether a faster Montgomery algorithm can be used. It is based on the Comba technique meaning that there are limits on +the size of the input. This algorithm is discussed in sub-section 7.3.3. + +Step 5 is the main reduction loop of the algorithm. The value of $\mu$ is calculated once per iteration in the outer loop. The inner loop +calculates $x + \mu n \beta^{ix}$ by multiplying $\mu n$ and adding the result to $x$ shifted by $ix$ digits. Both the addition and +multiplication are performed in the same loop to save time and memory. Step 5.4 will handle any additional carries that escape the inner loop. + +Using a quick inspection this algorithm requires $n$ single precision multiplications for the outer loop and $n^2$ single precision multiplications +in the inner loop. In total $n^2 + n$ single precision multiplications which compares favourably to Barrett at $n^2 + 2n - 1$ single precision +multiplications. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_montgomery\_reduce.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* computes xR**-1 == x (mod N) via Montgomery Reduction */ +018 int +019 mp_montgomery_reduce (mp_int * x, mp_int * n, mp_digit rho) +020 \{ +021 int ix, res, digs; +022 mp_digit mu; +023 +024 /* can the fast reduction [comba] method be used? +025 * +026 * Note that unlike in mp_mul you're safely allowed *less* +027 * than the available columns [255 per default] since carries +028 * are fixed up in the inner loop. +029 */ +030 digs = n->used * 2 + 1; +031 if ((digs < MP_WARRAY) && +032 n->used < +033 (1 << ((CHAR_BIT * sizeof (mp_word)) - (2 * DIGIT_BIT)))) \{ +034 return fast_mp_montgomery_reduce (x, n, rho); +035 \} +036 +037 /* grow the input as required */ +038 if (x->alloc < digs) \{ +039 if ((res = mp_grow (x, digs)) != MP_OKAY) \{ +040 return res; +041 \} +042 \} +043 x->used = digs; +044 +045 for (ix = 0; ix < n->used; ix++) \{ +046 /* mu = ai * rho mod b +047 * +048 * The value of rho must be precalculated via +049 * bn_mp_montgomery_setup() such that +050 * it equals -1/n0 mod b this allows the +051 * following inner loop to reduce the +052 * input one digit at a time +053 */ +054 mu = (mp_digit) (((mp_word)x->dp[ix]) * ((mp_word)rho) & MP_MASK); +055 +056 /* a = a + mu * m * b**i */ +057 \{ +058 register int iy; +059 register mp_digit *tmpn, *tmpx, u; +060 register mp_word r; +061 +062 /* alias for digits of the modulus */ +063 tmpn = n->dp; +064 +065 /* alias for the digits of x [the input] */ +066 tmpx = x->dp + ix; +067 +068 /* set the carry to zero */ +069 u = 0; +070 +071 /* Multiply and add in place */ +072 for (iy = 0; iy < n->used; iy++) \{ +073 /* compute product and sum */ +074 r = ((mp_word)mu) * ((mp_word)*tmpn++) + +075 ((mp_word) u) + ((mp_word) * tmpx); +076 +077 /* get carry */ +078 u = (mp_digit)(r >> ((mp_word) DIGIT_BIT)); +079 +080 /* fix digit */ +081 *tmpx++ = (mp_digit)(r & ((mp_word) MP_MASK)); +082 \} +083 /* At this point the ix'th digit of x should be zero */ +084 +085 +086 /* propagate carries upwards as required*/ +087 while (u) \{ +088 *tmpx += u; +089 u = *tmpx >> DIGIT_BIT; +090 *tmpx++ &= MP_MASK; +091 \} +092 \} +093 \} +094 +095 /* at this point the n.used'th least +096 * significant digits of x are all zero +097 * which means we can shift x to the +098 * right by n.used digits and the +099 * residue is unchanged. +100 */ +101 +102 /* x = x/b**n.used */ +103 mp_clamp(x); +104 mp_rshd (x, n->used); +105 +106 /* if x >= n then x = x - n */ +107 if (mp_cmp_mag (x, n) != MP_LT) \{ +108 return s_mp_sub (x, n, x); +109 \} +110 +111 return MP_OKAY; +112 \} +\end{alltt} +\end{small} + +This is the baseline implementation of the Montgomery reduction algorithm. Lines 30 to 35 determine if the Comba based +routine can be used instead. Line 48 computes the value of $\mu$ for that particular iteration of the outer loop. + +The multiplication $\mu n \beta^{ix}$ is performed in one step in the inner loop. The alias $tmpx$ refers to the $ix$'th digit of $x$ and +the alias $tmpn$ refers to the modulus $n$. + +\subsection{Faster ``Comba'' Montgomery Reduction} + +The Montgomery reduction requires fewer single precision multiplications than a Barrett reduction, however it is much slower due to the serial +nature of the inner loop. The Barrett reduction algorithm requires two slightly modified multipliers which can be implemented with the Comba +technique. The Montgomery reduction algorithm cannot directly use the Comba technique to any significant advantage since the inner loop calculates +a $k \times 1$ product $k$ times. + +The biggest obstacle is that at the $ix$'th iteration of the outer loop the value of $x_{ix}$ is required to calculate $\mu$. This means the +carries from $0$ to $ix - 1$ must have been propagated upwards to form a valid $ix$'th digit. The solution as it turns out is very simple. +Perform a Comba like multiplier and inside the outer loop just after the inner loop fix up the $ix + 1$'th digit by forwarding the carry. + +With this change in place the Montgomery reduction algorithm can be performed with a Comba style multiplication loop which substantially increases +the speed of the algorithm. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{fast\_mp\_montgomery\_reduce}. \\ +\textbf{Input}. mp\_int $x$, mp\_int $n$ and a digit $\rho \equiv -1/n_0 \mbox{ (mod }n\mbox{)}$. \\ +\hspace{11.5mm}($0 \le x < n^2, n > 1, (n, \beta) = 1, \beta^k > n$) \\ +\textbf{Output}. $\beta^{-k}x \mbox{ (mod }n\mbox{)}$ \\ +\hline \\ +Place an array of \textbf{MP\_WARRAY} mp\_word variables called $\hat W$ on the stack. \\ +1. if $x.alloc < n.used + 1$ then grow $x$ to $n.used + 1$ digits. \\ +Copy the digits of $x$ into the array $\hat W$ \\ +2. For $ix$ from $0$ to $x.used - 1$ do \\ +\hspace{3mm}2.1 $\hat W_{ix} \leftarrow x_{ix}$ \\ +3. For $ix$ from $x.used$ to $2n.used - 1$ do \\ +\hspace{3mm}3.1 $\hat W_{ix} \leftarrow 0$ \\ +Elimiate the lower $k$ digits. \\ +4. for $ix$ from $0$ to $n.used - 1$ do \\ +\hspace{3mm}4.1 $\mu \leftarrow \hat W_{ix} \cdot \rho \mbox{ (mod }\beta\mbox{)}$ \\ +\hspace{3mm}4.2 For $iy$ from $0$ to $n.used - 1$ do \\ +\hspace{6mm}4.2.1 $\hat W_{iy + ix} \leftarrow \hat W_{iy + ix} + \mu \cdot n_{iy}$ \\ +\hspace{3mm}4.3 $\hat W_{ix + 1} \leftarrow \hat W_{ix + 1} + \lfloor \hat W_{ix} / \beta \rfloor$ \\ +Propagate carries upwards. \\ +5. for $ix$ from $n.used$ to $2n.used + 1$ do \\ +\hspace{3mm}5.1 $\hat W_{ix + 1} \leftarrow \hat W_{ix + 1} + \lfloor \hat W_{ix} / \beta \rfloor$ \\ +Shift right and reduce modulo $\beta$ simultaneously. \\ +6. for $ix$ from $0$ to $n.used + 1$ do \\ +\hspace{3mm}6.1 $x_{ix} \leftarrow \hat W_{ix + n.used} \mbox{ (mod }\beta\mbox{)}$ \\ +Zero excess digits and fixup $x$. \\ +7. if $x.used > n.used + 1$ then do \\ +\hspace{3mm}7.1 for $ix$ from $n.used + 1$ to $x.used - 1$ do \\ +\hspace{6mm}7.1.1 $x_{ix} \leftarrow 0$ \\ +8. $x.used \leftarrow n.used + 1$ \\ +9. Clamp excessive digits of $x$. \\ +10. If $x \ge n$ then \\ +\hspace{3mm}10.1 $x \leftarrow x - n$ \\ +11. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm fast\_mp\_montgomery\_reduce} +\end{figure} + +\textbf{Algorithm fast\_mp\_montgomery\_reduce.} +This algorithm will compute the Montgomery reduction of $x$ modulo $n$ using the Comba technique. It is on most computer platforms significantly +faster than algorithm mp\_montgomery\_reduce and algorithm mp\_reduce (\textit{Barrett reduction}). The algorithm has the same restrictions +on the input as the baseline reduction algorithm. An additional two restrictions are imposed on this algorithm. The number of digits $k$ in the +the modulus $n$ must not violate $MP\_WARRAY > 2k +1$ and $n < \delta$. When $\beta = 2^{28}$ this algorithm can be used to reduce modulo +a modulus of at most $3,556$ bits in length. + +As in the other Comba reduction algorithms there is a $\hat W$ array which stores the columns of the product. It is initially filled with the +contents of $x$ with the excess digits zeroed. The reduction loop is very similar the to the baseline loop at heart. The multiplication on step +4.1 can be single precision only since $ab \mbox{ (mod }\beta\mbox{)} \equiv (a \mbox{ mod }\beta)(b \mbox{ mod }\beta)$. Some multipliers such +as those on the ARM processors take a variable length time to complete depending on the number of bytes of result it must produce. By performing +a single precision multiplication instead half the amount of time is spent. + +Also note that digit $\hat W_{ix}$ must have the carry from the $ix - 1$'th digit propagated upwards in order for this to work. That is what step +4.3 will do. In effect over the $n.used$ iterations of the outer loop the $n.used$'th lower columns all have the their carries propagated forwards. Note +how the upper bits of those same words are not reduced modulo $\beta$. This is because those values will be discarded shortly and there is no +point. + +Step 5 will propagate the remainder of the carries upwards. On step 6 the columns are reduced modulo $\beta$ and shifted simultaneously as they are +stored in the destination $x$. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_fast\_mp\_montgomery\_reduce.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* computes xR**-1 == x (mod N) via Montgomery Reduction +018 * +019 * This is an optimized implementation of mp_montgomery_reduce +020 * which uses the comba method to quickly calculate the columns of the +021 * reduction. +022 * +023 * Based on Algorithm 14.32 on pp.601 of HAC. +024 */ +025 int +026 fast_mp_montgomery_reduce (mp_int * x, mp_int * n, mp_digit rho) +027 \{ +028 int ix, res, olduse; +029 mp_word W[MP_WARRAY]; +030 +031 /* get old used count */ +032 olduse = x->used; +033 +034 /* grow a as required */ +035 if (x->alloc < n->used + 1) \{ +036 if ((res = mp_grow (x, n->used + 1)) != MP_OKAY) \{ +037 return res; +038 \} +039 \} +040 +041 /* first we have to get the digits of the input into +042 * an array of double precision words W[...] +043 */ +044 \{ +045 register mp_word *_W; +046 register mp_digit *tmpx; +047 +048 /* alias for the W[] array */ +049 _W = W; +050 +051 /* alias for the digits of x*/ +052 tmpx = x->dp; +053 +054 /* copy the digits of a into W[0..a->used-1] */ +055 for (ix = 0; ix < x->used; ix++) \{ +056 *_W++ = *tmpx++; +057 \} +058 +059 /* zero the high words of W[a->used..m->used*2] */ +060 for (; ix < n->used * 2 + 1; ix++) \{ +061 *_W++ = 0; +062 \} +063 \} +064 +065 /* now we proceed to zero successive digits +066 * from the least significant upwards +067 */ +068 for (ix = 0; ix < n->used; ix++) \{ +069 /* mu = ai * m' mod b +070 * +071 * We avoid a double precision multiplication (which isn't required) +072 * by casting the value down to a mp_digit. Note this requires +073 * that W[ix-1] have the carry cleared (see after the inner loop) +074 */ +075 register mp_digit mu; +076 mu = (mp_digit) (((W[ix] & MP_MASK) * rho) & MP_MASK); +077 +078 /* a = a + mu * m * b**i +079 * +080 * This is computed in place and on the fly. The multiplication +081 * by b**i is handled by offseting which columns the results +082 * are added to. +083 * +084 * Note the comba method normally doesn't handle carries in the +085 * inner loop In this case we fix the carry from the previous +086 * column since the Montgomery reduction requires digits of the +087 * result (so far) [see above] to work. This is +088 * handled by fixing up one carry after the inner loop. The +089 * carry fixups are done in order so after these loops the +090 * first m->used words of W[] have the carries fixed +091 */ +092 \{ +093 register int iy; +094 register mp_digit *tmpn; +095 register mp_word *_W; +096 +097 /* alias for the digits of the modulus */ +098 tmpn = n->dp; +099 +100 /* Alias for the columns set by an offset of ix */ +101 _W = W + ix; +102 +103 /* inner loop */ +104 for (iy = 0; iy < n->used; iy++) \{ +105 *_W++ += ((mp_word)mu) * ((mp_word)*tmpn++); +106 \} +107 \} +108 +109 /* now fix carry for next digit, W[ix+1] */ +110 W[ix + 1] += W[ix] >> ((mp_word) DIGIT_BIT); +111 \} +112 +113 /* now we have to propagate the carries and +114 * shift the words downward [all those least +115 * significant digits we zeroed]. +116 */ +117 \{ +118 register mp_digit *tmpx; +119 register mp_word *_W, *_W1; +120 +121 /* nox fix rest of carries */ +122 +123 /* alias for current word */ +124 _W1 = W + ix; +125 +126 /* alias for next word, where the carry goes */ +127 _W = W + ++ix; +128 +129 for (; ix <= n->used * 2 + 1; ix++) \{ +130 *_W++ += *_W1++ >> ((mp_word) DIGIT_BIT); +131 \} +132 +133 /* copy out, A = A/b**n +134 * +135 * The result is A/b**n but instead of converting from an +136 * array of mp_word to mp_digit than calling mp_rshd +137 * we just copy them in the right order +138 */ +139 +140 /* alias for destination word */ +141 tmpx = x->dp; +142 +143 /* alias for shifted double precision result */ +144 _W = W + n->used; +145 +146 for (ix = 0; ix < n->used + 1; ix++) \{ +147 *tmpx++ = (mp_digit)(*_W++ & ((mp_word) MP_MASK)); +148 \} +149 +150 /* zero oldused digits, if the input a was larger than +151 * m->used+1 we'll have to clear the digits +152 */ +153 for (; ix < olduse; ix++) \{ +154 *tmpx++ = 0; +155 \} +156 \} +157 +158 /* set the max used and clamp */ +159 x->used = n->used + 1; +160 mp_clamp (x); +161 +162 /* if A >= m then A = A - m */ +163 if (mp_cmp_mag (x, n) != MP_LT) \{ +164 return s_mp_sub (x, n, x); +165 \} +166 return MP_OKAY; +167 \} +\end{alltt} +\end{small} + +The $\hat W$ array is first filled with digits of $x$ on line 48 then the rest of the digits are zeroed on line 55. Both loops share +the same alias variables to make the code easier to read. + +The value of $\mu$ is calculated in an interesting fashion. First the value $\hat W_{ix}$ is reduced modulo $\beta$ and cast to a mp\_digit. This +forces the compiler to use a single precision multiplication and prevents any concerns about loss of precision. Line 110 fixes the carry +for the next iteration of the loop by propagating the carry from $\hat W_{ix}$ to $\hat W_{ix+1}$. + +The for loop on line 109 propagates the rest of the carries upwards through the columns. The for loop on line 126 reduces the columns +modulo $\beta$ and shifts them $k$ places at the same time. The alias $\_ \hat W$ actually refers to the array $\hat W$ starting at the $n.used$'th +digit, that is $\_ \hat W_{t} = \hat W_{n.used + t}$. + +\subsection{Montgomery Setup} +To calculate the variable $\rho$ a relatively simple algorithm will be required. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_montgomery\_setup}. \\ +\textbf{Input}. mp\_int $n$ ($n > 1$ and $(n, 2) = 1$) \\ +\textbf{Output}. $\rho \equiv -1/n_0 \mbox{ (mod }\beta\mbox{)}$ \\ +\hline \\ +1. $b \leftarrow n_0$ \\ +2. If $b$ is even return(\textit{MP\_VAL}) \\ +3. $x \leftarrow ((b + 2) \mbox{ AND } 4) << 1) + b$ \\ +4. for $k$ from 0 to $\lceil lg(lg(\beta)) \rceil - 2$ do \\ +\hspace{3mm}4.1 $x \leftarrow x \cdot (2 - bx)$ \\ +5. $\rho \leftarrow \beta - x \mbox{ (mod }\beta\mbox{)}$ \\ +6. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_montgomery\_setup} +\end{figure} + +\textbf{Algorithm mp\_montgomery\_setup.} +This algorithm will calculate the value of $\rho$ required within the Montgomery reduction algorithms. It uses a very interesting trick +to calculate $1/n_0$ when $\beta$ is a power of two. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_montgomery\_setup.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* setups the montgomery reduction stuff */ +018 int +019 mp_montgomery_setup (mp_int * n, mp_digit * rho) +020 \{ +021 mp_digit x, b; +022 +023 /* fast inversion mod 2**k +024 * +025 * Based on the fact that +026 * +027 * XA = 1 (mod 2**n) => (X(2-XA)) A = 1 (mod 2**2n) +028 * => 2*X*A - X*X*A*A = 1 +029 * => 2*(1) - (1) = 1 +030 */ +031 b = n->dp[0]; +032 +033 if ((b & 1) == 0) \{ +034 return MP_VAL; +035 \} +036 +037 x = (((b + 2) & 4) << 1) + b; /* here x*a==1 mod 2**4 */ +038 x *= 2 - b * x; /* here x*a==1 mod 2**8 */ +039 #if !defined(MP_8BIT) +040 x *= 2 - b * x; /* here x*a==1 mod 2**16 */ +041 #endif +042 #if defined(MP_64BIT) || !(defined(MP_8BIT) || defined(MP_16BIT)) +043 x *= 2 - b * x; /* here x*a==1 mod 2**32 */ +044 #endif +045 #ifdef MP_64BIT +046 x *= 2 - b * x; /* here x*a==1 mod 2**64 */ +047 #endif +048 +049 /* rho = -1/m mod b */ +050 *rho = (((mp_digit) 1 << ((mp_digit) DIGIT_BIT)) - x) & MP_MASK; +051 +052 return MP_OKAY; +053 \} +\end{alltt} +\end{small} + +This source code computes the value of $\rho$ required to perform Montgomery reduction. It has been modified to avoid performing excess +multiplications when $\beta$ is not the default 28-bits. + +\section{The Diminished Radix Algorithm} +The Diminished Radix method of modular reduction \cite{DRMET} is a fairly clever technique which can be more efficient than either the Barrett +or Montgomery methods for certain forms of moduli. The technique is based on the following simple congruence. + +\begin{equation} +(x \mbox{ mod } n) + k \lfloor x / n \rfloor \equiv x \mbox{ (mod }(n - k)\mbox{)} +\end{equation} + +This observation was used in the MMB \cite{MMB} block cipher to create a diffusion primitive. It used the fact that if $n = 2^{31}$ and $k=1$ that +then a x86 multiplier could produce the 62-bit product and use the ``shrd'' instruction to perform a double-precision right shift. The proof +of the above equation is very simple. First write $x$ in the product form. + +\begin{equation} +x = qn + r +\end{equation} + +Now reduce both sides modulo $(n - k)$. + +\begin{equation} +x \equiv qk + r \mbox{ (mod }(n-k)\mbox{)} +\end{equation} + +The variable $n$ reduces modulo $n - k$ to $k$. By putting $q = \lfloor x/n \rfloor$ and $r = x \mbox{ mod } n$ +into the equation the original congruence is reproduced, thus concluding the proof. The following algorithm is based on this observation. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{Diminished Radix Reduction}. \\ +\textbf{Input}. Integer $x$, $n$, $k$ \\ +\textbf{Output}. $x \mbox{ mod } (n - k)$ \\ +\hline \\ +1. $q \leftarrow \lfloor x / n \rfloor$ \\ +2. $q \leftarrow k \cdot q$ \\ +3. $x \leftarrow x \mbox{ (mod }n\mbox{)}$ \\ +4. $x \leftarrow x + q$ \\ +5. If $x \ge (n - k)$ then \\ +\hspace{3mm}5.1 $x \leftarrow x - (n - k)$ \\ +\hspace{3mm}5.2 Goto step 1. \\ +6. Return $x$ \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm Diminished Radix Reduction} +\label{fig:DR} +\end{figure} + +This algorithm will reduce $x$ modulo $n - k$ and return the residue. If $0 \le x < (n - k)^2$ then the algorithm will loop almost always +once or twice and occasionally three times. For simplicity sake the value of $x$ is bounded by the following simple polynomial. + +\begin{equation} +0 \le x < n^2 + k^2 - 2nk +\end{equation} + +The true bound is $0 \le x < (n - k - 1)^2$ but this has quite a few more terms. The value of $q$ after step 1 is bounded by the following. + +\begin{equation} +q < n - 2k - k^2/n +\end{equation} + +Since $k^2$ is going to be considerably smaller than $n$ that term will always be zero. The value of $x$ after step 3 is bounded trivially as +$0 \le x < n$. By step four the sum $x + q$ is bounded by + +\begin{equation} +0 \le q + x < (k + 1)n - 2k^2 - 1 +\end{equation} + +With a second pass $q$ will be loosely bounded by $0 \le q < k^2$ after step 2 while $x$ will still be loosely bounded by $0 \le x < n$ after step 3. After the second pass it is highly unlike that the +sum in step 4 will exceed $n - k$. In practice fewer than three passes of the algorithm are required to reduce virtually every input in the +range $0 \le x < (n - k - 1)^2$. + +\begin{figure} +\begin{small} +\begin{center} +\begin{tabular}{|l|} +\hline +$x = 123456789, n = 256, k = 3$ \\ +\hline $q \leftarrow \lfloor x/n \rfloor = 482253$ \\ +$q \leftarrow q*k = 1446759$ \\ +$x \leftarrow x \mbox{ mod } n = 21$ \\ +$x \leftarrow x + q = 1446780$ \\ +$x \leftarrow x - (n - k) = 1446527$ \\ +\hline +$q \leftarrow \lfloor x/n \rfloor = 5650$ \\ +$q \leftarrow q*k = 16950$ \\ +$x \leftarrow x \mbox{ mod } n = 127$ \\ +$x \leftarrow x + q = 17077$ \\ +$x \leftarrow x - (n - k) = 16824$ \\ +\hline +$q \leftarrow \lfloor x/n \rfloor = 65$ \\ +$q \leftarrow q*k = 195$ \\ +$x \leftarrow x \mbox{ mod } n = 184$ \\ +$x \leftarrow x + q = 379$ \\ +$x \leftarrow x - (n - k) = 126$ \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Example Diminished Radix Reduction} +\label{fig:EXDR} +\end{figure} + +Figure~\ref{fig:EXDR} demonstrates the reduction of $x = 123456789$ modulo $n - k = 253$ when $n = 256$ and $k = 3$. Note that even while $x$ +is considerably larger than $(n - k - 1)^2 = 63504$ the algorithm still converges on the modular residue exceedingly fast. In this case only +three passes were required to find the residue $x \equiv 126$. + + +\subsection{Choice of Moduli} +On the surface this algorithm looks like a very expensive algorithm. It requires a couple of subtractions followed by multiplication and other +modular reductions. The usefulness of this algorithm becomes exceedingly clear when an appropriate modulus is chosen. + +Division in general is a very expensive operation to perform. The one exception is when the division is by a power of the radix of representation used. +Division by ten for example is simple for pencil and paper mathematics since it amounts to shifting the decimal place to the right. Similarly division +by two (\textit{or powers of two}) is very simple for binary computers to perform. It would therefore seem logical to choose $n$ of the form $2^p$ +which would imply that $\lfloor x / n \rfloor$ is a simple shift of $x$ right $p$ bits. + +However, there is one operation related to division of power of twos that is even faster than this. If $n = \beta^p$ then the division may be +performed by moving whole digits to the right $p$ places. In practice division by $\beta^p$ is much faster than division by $2^p$ for any $p$. +Also with the choice of $n = \beta^p$ reducing $x$ modulo $n$ merely requires zeroing the digits above the $p-1$'th digit of $x$. + +Throughout the next section the term ``restricted modulus'' will refer to a modulus of the form $\beta^p - k$ whereas the term ``unrestricted +modulus'' will refer to a modulus of the form $2^p - k$. The word ``restricted'' in this case refers to the fact that it is based on the +$2^p$ logic except $p$ must be a multiple of $lg(\beta)$. + +\subsection{Choice of $k$} +Now that division and reduction (\textit{step 1 and 3 of figure~\ref{fig:DR}}) have been optimized to simple digit operations the multiplication by $k$ +in step 2 is the most expensive operation. Fortunately the choice of $k$ is not terribly limited. For all intents and purposes it might +as well be a single digit. The smaller the value of $k$ is the faster the algorithm will be. + +\subsection{Restricted Diminished Radix Reduction} +The restricted Diminished Radix algorithm can quickly reduce an input modulo a modulus of the form $n = \beta^p - k$. This algorithm can reduce +an input $x$ within the range $0 \le x < n^2$ using only a couple passes of the algorithm demonstrated in figure~\ref{fig:DR}. The implementation +of this algorithm has been optimized to avoid additional overhead associated with a division by $\beta^p$, the multiplication by $k$ or the addition +of $x$ and $q$. The resulting algorithm is very efficient and can lead to substantial improvements over Barrett and Montgomery reduction when modular +exponentiations are performed. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_dr\_reduce}. \\ +\textbf{Input}. mp\_int $x$, $n$ and a mp\_digit $k = \beta - n_0$ \\ +\hspace{11.5mm}($0 \le x < n^2$, $n > 1$, $0 < k < \beta$) \\ +\textbf{Output}. $x \mbox{ mod } n$ \\ +\hline \\ +1. $m \leftarrow n.used$ \\ +2. If $x.alloc < 2m$ then grow $x$ to $2m$ digits. \\ +3. $\mu \leftarrow 0$ \\ +4. for $i$ from $0$ to $m - 1$ do \\ +\hspace{3mm}4.1 $\hat r \leftarrow k \cdot x_{m+i} + x_{i} + \mu$ \\ +\hspace{3mm}4.2 $x_{i} \leftarrow \hat r \mbox{ (mod }\beta\mbox{)}$ \\ +\hspace{3mm}4.3 $\mu \leftarrow \lfloor \hat r / \beta \rfloor$ \\ +5. $x_{m} \leftarrow \mu$ \\ +6. for $i$ from $m + 1$ to $x.used - 1$ do \\ +\hspace{3mm}6.1 $x_{i} \leftarrow 0$ \\ +7. Clamp excess digits of $x$. \\ +8. If $x \ge n$ then \\ +\hspace{3mm}8.1 $x \leftarrow x - n$ \\ +\hspace{3mm}8.2 Goto step 3. \\ +9. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_dr\_reduce} +\end{figure} + +\textbf{Algorithm mp\_dr\_reduce.} +This algorithm will perform the Dimished Radix reduction of $x$ modulo $n$. It has similar restrictions to that of the Barrett reduction +with the addition that $n$ must be of the form $n = \beta^m - k$ where $0 < k <\beta$. + +This algorithm essentially implements the pseudo-code in figure~\ref{fig:DR} except with a slight optimization. The division by $\beta^m$, multiplication by $k$ +and addition of $x \mbox{ mod }\beta^m$ are all performed simultaneously inside the loop on step 4. The division by $\beta^m$ is emulated by accessing +the term at the $m+i$'th position which is subsequently multiplied by $k$ and added to the term at the $i$'th position. After the loop the $m$'th +digit is set to the carry and the upper digits are zeroed. Steps 5 and 6 emulate the reduction modulo $\beta^m$ that should have happend to +$x$ before the addition of the multiple of the upper half. + +At step 8 if $x$ is still larger than $n$ another pass of the algorithm is required. First $n$ is subtracted from $x$ and then the algorithm resumes +at step 3. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_dr\_reduce.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* reduce "x" in place modulo "n" using the Diminished Radix algorithm. +018 * +019 * Based on algorithm from the paper +020 * +021 * "Generating Efficient Primes for Discrete Log Cryptosystems" +022 * Chae Hoon Lim, Pil Loong Lee, +023 * POSTECH Information Research Laboratories +024 * +025 * The modulus must be of a special format [see manual] +026 * +027 * Has been modified to use algorithm 7.10 from the LTM book instead +028 * +029 * Input x must be in the range 0 <= x <= (n-1)**2 +030 */ +031 int +032 mp_dr_reduce (mp_int * x, mp_int * n, mp_digit k) +033 \{ +034 int err, i, m; +035 mp_word r; +036 mp_digit mu, *tmpx1, *tmpx2; +037 +038 /* m = digits in modulus */ +039 m = n->used; +040 +041 /* ensure that "x" has at least 2m digits */ +042 if (x->alloc < m + m) \{ +043 if ((err = mp_grow (x, m + m)) != MP_OKAY) \{ +044 return err; +045 \} +046 \} +047 +048 /* top of loop, this is where the code resumes if +049 * another reduction pass is required. +050 */ +051 top: +052 /* aliases for digits */ +053 /* alias for lower half of x */ +054 tmpx1 = x->dp; +055 +056 /* alias for upper half of x, or x/B**m */ +057 tmpx2 = x->dp + m; +058 +059 /* set carry to zero */ +060 mu = 0; +061 +062 /* compute (x mod B**m) + k * [x/B**m] inline and inplace */ +063 for (i = 0; i < m; i++) \{ +064 r = ((mp_word)*tmpx2++) * ((mp_word)k) + *tmpx1 + mu; +065 *tmpx1++ = (mp_digit)(r & MP_MASK); +066 mu = (mp_digit)(r >> ((mp_word)DIGIT_BIT)); +067 \} +068 +069 /* set final carry */ +070 *tmpx1++ = mu; +071 +072 /* zero words above m */ +073 for (i = m + 1; i < x->used; i++) \{ +074 *tmpx1++ = 0; +075 \} +076 +077 /* clamp, sub and return */ +078 mp_clamp (x); +079 +080 /* if x >= n then subtract and reduce again +081 * Each successive "recursion" makes the input smaller and smaller. +082 */ +083 if (mp_cmp_mag (x, n) != MP_LT) \{ +084 s_mp_sub(x, n, x); +085 goto top; +086 \} +087 return MP_OKAY; +088 \} +\end{alltt} +\end{small} + +The first step is to grow $x$ as required to $2m$ digits since the reduction is performed in place on $x$. The label on line 51 is where +the algorithm will resume if further reduction passes are required. In theory it could be placed at the top of the function however, the size of +the modulus and question of whether $x$ is large enough are invariant after the first pass meaning that it would be a waste of time. + +The aliases $tmpx1$ and $tmpx2$ refer to the digits of $x$ where the latter is offset by $m$ digits. By reading digits from $x$ offset by $m$ digits +a division by $\beta^m$ can be simulated virtually for free. The loop on line 63 performs the bulk of the work (\textit{corresponds to step 4 of algorithm 7.11}) +in this algorithm. + +By line 70 the pointer $tmpx1$ points to the $m$'th digit of $x$ which is where the final carry will be placed. Similarly by line 73 the +same pointer will point to the $m+1$'th digit where the zeroes will be placed. + +Since the algorithm is only valid if both $x$ and $n$ are greater than zero an unsigned comparison suffices to determine if another pass is required. +With the same logic at line 84 the value of $x$ is known to be greater than or equal to $n$ meaning that an unsigned subtraction can be used +as well. Since the destination of the subtraction is the larger of the inputs the call to algorithm s\_mp\_sub cannot fail and the return code +does not need to be checked. + +\subsubsection{Setup} +To setup the restricted Diminished Radix algorithm the value $k = \beta - n_0$ is required. This algorithm is not really complicated but provided for +completeness. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_dr\_setup}. \\ +\textbf{Input}. mp\_int $n$ \\ +\textbf{Output}. $k = \beta - n_0$ \\ +\hline \\ +1. $k \leftarrow \beta - n_0$ \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_dr\_setup} +\end{figure} + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_dr\_setup.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* determines the setup value */ +018 void mp_dr_setup(mp_int *a, mp_digit *d) +019 \{ +020 /* the casts are required if DIGIT_BIT is one less than +021 * the number of bits in a mp_digit [e.g. DIGIT_BIT==31] +022 */ +023 *d = (mp_digit)((((mp_word)1) << ((mp_word)DIGIT_BIT)) - +024 ((mp_word)a->dp[0])); +025 \} +026 +\end{alltt} +\end{small} + +\subsubsection{Modulus Detection} +Another algorithm which will be useful is the ability to detect a restricted Diminished Radix modulus. An integer is said to be +of restricted Diminished Radix form if all of the digits are equal to $\beta - 1$ except the trailing digit which may be any value. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_dr\_is\_modulus}. \\ +\textbf{Input}. mp\_int $n$ \\ +\textbf{Output}. $1$ if $n$ is in D.R form, $0$ otherwise \\ +\hline +1. If $n.used < 2$ then return($0$). \\ +2. for $ix$ from $1$ to $n.used - 1$ do \\ +\hspace{3mm}2.1 If $n_{ix} \ne \beta - 1$ return($0$). \\ +3. Return($1$). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_dr\_is\_modulus} +\end{figure} + +\textbf{Algorithm mp\_dr\_is\_modulus.} +This algorithm determines if a value is in Diminished Radix form. Step 1 rejects obvious cases where fewer than two digits are +in the mp\_int. Step 2 tests all but the first digit to see if they are equal to $\beta - 1$. If the algorithm manages to get to +step 3 then $n$ must be of Diminished Radix form. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_dr\_is\_modulus.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* determines if a number is a valid DR modulus */ +018 int mp_dr_is_modulus(mp_int *a) +019 \{ +020 int ix; +021 +022 /* must be at least two digits */ +023 if (a->used < 2) \{ +024 return 0; +025 \} +026 +027 /* must be of the form b**k - a [a <= b] so all +028 * but the first digit must be equal to -1 (mod b). +029 */ +030 for (ix = 1; ix < a->used; ix++) \{ +031 if (a->dp[ix] != MP_MASK) \{ +032 return 0; +033 \} +034 \} +035 return 1; +036 \} +037 +\end{alltt} +\end{small} + +\subsection{Unrestricted Diminished Radix Reduction} +The unrestricted Diminished Radix algorithm allows modular reductions to be performed when the modulus is of the form $2^p - k$. This algorithm +is a straightforward adaptation of algorithm~\ref{fig:DR}. + +In general the restricted Diminished Radix reduction algorithm is much faster since it has considerably lower overhead. However, this new +algorithm is much faster than either Montgomery or Barrett reduction when the moduli are of the appropriate form. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_reduce\_2k}. \\ +\textbf{Input}. mp\_int $a$ and $n$. mp\_digit $k$ \\ +\hspace{11.5mm}($a \ge 0$, $n > 1$, $0 < k < \beta$, $n + k$ is a power of two) \\ +\textbf{Output}. $a \mbox{ (mod }n\mbox{)}$ \\ +\hline +1. $p \leftarrow \lceil lg(n) \rceil$ (\textit{mp\_count\_bits}) \\ +2. While $a \ge n$ do \\ +\hspace{3mm}2.1 $q \leftarrow \lfloor a / 2^p \rfloor$ (\textit{mp\_div\_2d}) \\ +\hspace{3mm}2.2 $a \leftarrow a \mbox{ (mod }2^p\mbox{)}$ (\textit{mp\_mod\_2d}) \\ +\hspace{3mm}2.3 $q \leftarrow q \cdot k$ (\textit{mp\_mul\_d}) \\ +\hspace{3mm}2.4 $a \leftarrow a - q$ (\textit{s\_mp\_sub}) \\ +\hspace{3mm}2.5 If $a \ge n$ then do \\ +\hspace{6mm}2.5.1 $a \leftarrow a - n$ \\ +3. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_reduce\_2k} +\end{figure} + +\textbf{Algorithm mp\_reduce\_2k.} +This algorithm quickly reduces an input $a$ modulo an unrestricted Diminished Radix modulus $n$. Division by $2^p$ is emulated with a right +shift which makes the algorithm fairly inexpensive to use. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_reduce\_2k.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* reduces a modulo n where n is of the form 2**p - k */ +018 int +019 mp_reduce_2k(mp_int *a, mp_int *n, mp_digit k) +020 \{ +021 mp_int q; +022 int p, res; +023 +024 if ((res = mp_init(&q)) != MP_OKAY) \{ +025 return res; +026 \} +027 +028 p = mp_count_bits(n); +029 top: +030 /* q = a/2**p, a = a mod 2**p */ +031 if ((res = mp_div_2d(a, p, &q, a)) != MP_OKAY) \{ +032 goto ERR; +033 \} +034 +035 if (k != 1) \{ +036 /* q = q * k */ +037 if ((res = mp_mul_d(&q, k, &q)) != MP_OKAY) \{ +038 goto ERR; +039 \} +040 \} +041 +042 /* a = a + q */ +043 if ((res = s_mp_add(a, &q, a)) != MP_OKAY) \{ +044 goto ERR; +045 \} +046 +047 if (mp_cmp_mag(a, n) != MP_LT) \{ +048 s_mp_sub(a, n, a); +049 goto top; +050 \} +051 +052 ERR: +053 mp_clear(&q); +054 return res; +055 \} +056 +\end{alltt} +\end{small} + +The algorithm mp\_count\_bits calculates the number of bits in an mp\_int which is used to find the initial value of $p$. The call to mp\_div\_2d +on line 31 calculates both the quotient $q$ and the remainder $a$ required. By doing both in a single function call the code size +is kept fairly small. The multiplication by $k$ is only performed if $k > 1$. This allows reductions modulo $2^p - 1$ to be performed without +any multiplications. + +The unsigned s\_mp\_add, mp\_cmp\_mag and s\_mp\_sub are used in place of their full sign counterparts since the inputs are only valid if they are +positive. By using the unsigned versions the overhead is kept to a minimum. + +\subsubsection{Unrestricted Setup} +To setup this reduction algorithm the value of $k = 2^p - n$ is required. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_reduce\_2k\_setup}. \\ +\textbf{Input}. mp\_int $n$ \\ +\textbf{Output}. $k = 2^p - n$ \\ +\hline +1. $p \leftarrow \lceil lg(n) \rceil$ (\textit{mp\_count\_bits}) \\ +2. $x \leftarrow 2^p$ (\textit{mp\_2expt}) \\ +3. $x \leftarrow x - n$ (\textit{mp\_sub}) \\ +4. $k \leftarrow x_0$ \\ +5. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_reduce\_2k\_setup} +\end{figure} + +\textbf{Algorithm mp\_reduce\_2k\_setup.} +This algorithm computes the value of $k$ required for the algorithm mp\_reduce\_2k. By making a temporary variable $x$ equal to $2^p$ a subtraction +is sufficient to solve for $k$. Alternatively if $n$ has more than one digit the value of $k$ is simply $\beta - n_0$. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_reduce\_2k\_setup.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* determines the setup value */ +018 int +019 mp_reduce_2k_setup(mp_int *a, mp_digit *d) +020 \{ +021 int res, p; +022 mp_int tmp; +023 +024 if ((res = mp_init(&tmp)) != MP_OKAY) \{ +025 return res; +026 \} +027 +028 p = mp_count_bits(a); +029 if ((res = mp_2expt(&tmp, p)) != MP_OKAY) \{ +030 mp_clear(&tmp); +031 return res; +032 \} +033 +034 if ((res = s_mp_sub(&tmp, a, &tmp)) != MP_OKAY) \{ +035 mp_clear(&tmp); +036 return res; +037 \} +038 +039 *d = tmp.dp[0]; +040 mp_clear(&tmp); +041 return MP_OKAY; +042 \} +\end{alltt} +\end{small} + +\subsubsection{Unrestricted Detection} +An integer $n$ is a valid unrestricted Diminished Radix modulus if either of the following are true. + +\begin{enumerate} +\item The number has only one digit. +\item The number has more than one digit and every bit from the $\beta$'th to the most significant is one. +\end{enumerate} + +If either condition is true than there is a power of two $2^p$ such that $0 < 2^p - n < \beta$. If the input is only +one digit than it will always be of the correct form. Otherwise all of the bits above the first digit must be one. This arises from the fact +that there will be value of $k$ that when added to the modulus causes a carry in the first digit which propagates all the way to the most +significant bit. The resulting sum will be a power of two. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_reduce\_is\_2k}. \\ +\textbf{Input}. mp\_int $n$ \\ +\textbf{Output}. $1$ if of proper form, $0$ otherwise \\ +\hline +1. If $n.used = 0$ then return($0$). \\ +2. If $n.used = 1$ then return($1$). \\ +3. $p \leftarrow \lceil lg(n) \rceil$ (\textit{mp\_count\_bits}) \\ +4. for $x$ from $lg(\beta)$ to $p$ do \\ +\hspace{3mm}4.1 If the ($x \mbox{ mod }lg(\beta)$)'th bit of the $\lfloor x / lg(\beta) \rfloor$ of $n$ is zero then return($0$). \\ +5. Return($1$). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_reduce\_is\_2k} +\end{figure} + +\textbf{Algorithm mp\_reduce\_is\_2k.} +This algorithm quickly determines if a modulus is of the form required for algorithm mp\_reduce\_2k to function properly. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_reduce\_is\_2k.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* determines if mp_reduce_2k can be used */ +018 int mp_reduce_is_2k(mp_int *a) +019 \{ +020 int ix, iy, iz, iw; +021 +022 if (a->used == 0) \{ +023 return 0; +024 \} else if (a->used == 1) \{ +025 return 1; +026 \} else if (a->used > 1) \{ +027 iy = mp_count_bits(a); +028 iz = 1; +029 iw = 1; +030 +031 /* Test every bit from the second digit up, must be 1 */ +032 for (ix = DIGIT_BIT; ix < iy; ix++) \{ +033 if ((a->dp[iw] & iz) == 0) \{ +034 return 0; +035 \} +036 iz <<= 1; +037 if (iz > (int)MP_MASK) \{ +038 ++iw; +039 iz = 1; +040 \} +041 \} +042 \} +043 return 1; +044 \} +045 +\end{alltt} +\end{small} + + + +\section{Algorithm Comparison} +So far three very different algorithms for modular reduction have been discussed. Each of the algorithms have their own strengths and weaknesses +that makes having such a selection very useful. The following table sumarizes the three algorithms along with comparisons of work factors. Since +all three algorithms have the restriction that $0 \le x < n^2$ and $n > 1$ those limitations are not included in the table. + +\begin{center} +\begin{small} +\begin{tabular}{|c|c|c|c|c|c|} +\hline \textbf{Method} & \textbf{Work Required} & \textbf{Limitations} & \textbf{$m = 8$} & \textbf{$m = 32$} & \textbf{$m = 64$} \\ +\hline Barrett & $m^2 + 2m - 1$ & None & $79$ & $1087$ & $4223$ \\ +\hline Montgomery & $m^2 + m$ & $n$ must be odd & $72$ & $1056$ & $4160$ \\ +\hline D.R. & $2m$ & $n = \beta^m - k$ & $16$ & $64$ & $128$ \\ +\hline +\end{tabular} +\end{small} +\end{center} + +In theory Montgomery and Barrett reductions would require roughly the same amount of time to complete. However, in practice since Montgomery +reduction can be written as a single function with the Comba technique it is much faster. Barrett reduction suffers from the overhead of +calling the half precision multipliers, addition and division by $\beta$ algorithms. + +For almost every cryptographic algorithm Montgomery reduction is the algorithm of choice. The one set of algorithms where Diminished Radix reduction truly +shines are based on the discrete logarithm problem such as Diffie-Hellman \cite{DH} and ElGamal \cite{ELGAMAL}. In these algorithms +primes of the form $\beta^m - k$ can be found and shared amongst users. These primes will allow the Diminished Radix algorithm to be used in +modular exponentiation to greatly speed up the operation. + + + +\section*{Exercises} +\begin{tabular}{cl} +$\left [ 3 \right ]$ & Prove that the ``trick'' in algorithm mp\_montgomery\_setup actually \\ + & calculates the correct value of $\rho$. \\ + & \\ +$\left [ 2 \right ]$ & Devise an algorithm to reduce modulo $n + k$ for small $k$ quickly. \\ + & \\ +$\left [ 4 \right ]$ & Prove that the pseudo-code algorithm ``Diminished Radix Reduction'' \\ + & (\textit{figure~\ref{fig:DR}}) terminates. Also prove the probability that it will \\ + & terminate within $1 \le k \le 10$ iterations. \\ + & \\ +\end{tabular} + + +\chapter{Exponentiation} +Exponentiation is the operation of raising one variable to the power of another, for example, $a^b$. A variant of exponentiation, computed +in a finite field or ring, is called modular exponentiation. This latter style of operation is typically used in public key +cryptosystems such as RSA and Diffie-Hellman. The ability to quickly compute modular exponentiations is of great benefit to any +such cryptosystem and many methods have been sought to speed it up. + +\section{Exponentiation Basics} +A trivial algorithm would simply multiply $a$ against itself $b - 1$ times to compute the exponentiation desired. However, as $b$ grows in size +the number of multiplications becomes prohibitive. Imagine what would happen if $b$ $\approx$ $2^{1024}$ as is the case when computing an RSA signature +with a $1024$-bit key. Such a calculation could never be completed as it would take simply far too long. + +Fortunately there is a very simple algorithm based on the laws of exponents. Recall that $lg_a(a^b) = b$ and that $lg_a(a^ba^c) = b + c$ which +are two trivial relationships between the base and the exponent. Let $b_i$ represent the $i$'th bit of $b$ starting from the least +significant bit. If $b$ is a $k$-bit integer than the following equation is true. + +\begin{equation} +a^b = \prod_{i=0}^{k-1} a^{2^i \cdot b_i} +\end{equation} + +By taking the base $a$ logarithm of both sides of the equation the following equation is the result. + +\begin{equation} +b = \sum_{i=0}^{k-1}2^i \cdot b_i +\end{equation} + +The term $a^{2^i}$ can be found from the $i - 1$'th term by squaring the term since $\left ( a^{2^i} \right )^2$ is equal to +$a^{2^{i+1}}$. This observation forms the basis of essentially all fast exponentiation algorithms. It requires $k$ squarings and on average +$k \over 2$ multiplications to compute the result. This is indeed quite an improvement over simply multiplying by $a$ a total of $b-1$ times. + +While this current method is a considerable speed up there are further improvements to be made. For example, the $a^{2^i}$ term does not need to +be computed in an auxilary variable. Consider the following equivalent algorithm. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{Left to Right Exponentiation}. \\ +\textbf{Input}. Integer $a$, $b$ and $k$ \\ +\textbf{Output}. $c = a^b$ \\ +\hline \\ +1. $c \leftarrow 1$ \\ +2. for $i$ from $k - 1$ to $0$ do \\ +\hspace{3mm}2.1 $c \leftarrow c^2$ \\ +\hspace{3mm}2.2 $c \leftarrow c \cdot a^{b_i}$ \\ +3. Return $c$. \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Left to Right Exponentiation} +\label{fig:LTOR} +\end{figure} + +This algorithm starts from the most significant bit and works towards the least significant bit. When the $i$'th bit of $b$ is set $a$ is +multiplied against the current product. In each iteration the product is squared which doubles the exponent of the individual terms of the +product. + +For example, let $b = 101100_2 \equiv 44_{10}$. The following chart demonstrates the actions of the algorithm. + +\newpage\begin{figure} +\begin{center} +\begin{tabular}{|c|c|} +\hline \textbf{Value of $i$} & \textbf{Value of $c$} \\ +\hline - & $1$ \\ +\hline $5$ & $a$ \\ +\hline $4$ & $a^2$ \\ +\hline $3$ & $a^4 \cdot a$ \\ +\hline $2$ & $a^8 \cdot a^2 \cdot a$ \\ +\hline $1$ & $a^{16} \cdot a^4 \cdot a^2$ \\ +\hline $0$ & $a^{32} \cdot a^8 \cdot a^4$ \\ +\hline +\end{tabular} +\end{center} +\caption{Example of Left to Right Exponentiation} +\end{figure} + +When the product $a^{32} \cdot a^8 \cdot a^4$ is simplified it is equal $a^{44}$ which is the desired exponentiation. This particular algorithm is +called ``Left to Right'' because it reads the exponent in that order. All of the exponentiation algorithms that will be presented are of this nature. + +\subsection{Single Digit Exponentiation} +The first algorithm in the series of exponentiation algorithms will be an unbounded algorithm where the exponent is a single digit. It is intended +to be used when a small power of an input is required (\textit{e.g. $a^5$}). It is faster than simply multiplying $b - 1$ times for all values of +$b$ that are greater than three. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_expt\_d}. \\ +\textbf{Input}. mp\_int $a$ and mp\_digit $b$ \\ +\textbf{Output}. $c = a^b$ \\ +\hline \\ +1. $g \leftarrow a$ (\textit{mp\_init\_copy}) \\ +2. $c \leftarrow 1$ (\textit{mp\_set}) \\ +3. for $x$ from 1 to $lg(\beta)$ do \\ +\hspace{3mm}3.1 $c \leftarrow c^2$ (\textit{mp\_sqr}) \\ +\hspace{3mm}3.2 If $b$ AND $2^{lg(\beta) - 1} \ne 0$ then \\ +\hspace{6mm}3.2.1 $c \leftarrow c \cdot g$ (\textit{mp\_mul}) \\ +\hspace{3mm}3.3 $b \leftarrow b << 1$ \\ +4. Clear $g$. \\ +5. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_expt\_d} +\end{figure} + +\textbf{Algorithm mp\_expt\_d.} +This algorithm computes the value of $a$ raised to the power of a single digit $b$. It uses the left to right exponentiation algorithm to +quickly compute the exponentiation. It is loosely based on algorithm 14.79 of HAC \cite[pp. 615]{HAC} with the difference that the +exponent is a fixed width. + +A copy of $a$ is made first to allow destination variable $c$ be the same as the source variable $a$. The result is set to the initial value of +$1$ in the subsequent step. + +Inside the loop the exponent is read from the most significant bit first down to the least significant bit. First $c$ is invariably squared +on step 3.1. In the following step if the most significant bit of $b$ is one the copy of $a$ is multiplied against $c$. The value +of $b$ is shifted left one bit to make the next bit down from the most signficant bit the new most significant bit. In effect each +iteration of the loop moves the bits of the exponent $b$ upwards to the most significant location. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_expt\_d.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* calculate c = a**b using a square-multiply algorithm */ +018 int mp_expt_d (mp_int * a, mp_digit b, mp_int * c) +019 \{ +020 int res, x; +021 mp_int g; +022 +023 if ((res = mp_init_copy (&g, a)) != MP_OKAY) \{ +024 return res; +025 \} +026 +027 /* set initial result */ +028 mp_set (c, 1); +029 +030 for (x = 0; x < (int) DIGIT_BIT; x++) \{ +031 /* square */ +032 if ((res = mp_sqr (c, c)) != MP_OKAY) \{ +033 mp_clear (&g); +034 return res; +035 \} +036 +037 /* if the bit is set multiply */ +038 if ((b & (mp_digit) (((mp_digit)1) << (DIGIT_BIT - 1))) != 0) \{ +039 if ((res = mp_mul (c, &g, c)) != MP_OKAY) \{ +040 mp_clear (&g); +041 return res; +042 \} +043 \} +044 +045 /* shift to next bit */ +046 b <<= 1; +047 \} +048 +049 mp_clear (&g); +050 return MP_OKAY; +051 \} +\end{alltt} +\end{small} + +Line 28 sets the initial value of the result to $1$. Next the loop on line 30 steps through each bit of the exponent starting from +the most significant down towards the least significant. The invariant squaring operation placed on line 32 is performed first. After +the squaring the result $c$ is multiplied by the base $g$ if and only if the most significant bit of the exponent is set. The shift on line +46 moves all of the bits of the exponent upwards towards the most significant location. + +\section{$k$-ary Exponentiation} +When calculating an exponentiation the most time consuming bottleneck is the multiplications which are in general a small factor +slower than squaring. Recall from the previous algorithm that $b_{i}$ refers to the $i$'th bit of the exponent $b$. Suppose instead it referred to +the $i$'th $k$-bit digit of the exponent of $b$. For $k = 1$ the definitions are synonymous and for $k > 1$ algorithm~\ref{fig:KARY} +computes the same exponentiation. A group of $k$ bits from the exponent is called a \textit{window}. That is it is a small window on only a +portion of the entire exponent. Consider the following modification to the basic left to right exponentiation algorithm. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{$k$-ary Exponentiation}. \\ +\textbf{Input}. Integer $a$, $b$, $k$ and $t$ \\ +\textbf{Output}. $c = a^b$ \\ +\hline \\ +1. $c \leftarrow 1$ \\ +2. for $i$ from $t - 1$ to $0$ do \\ +\hspace{3mm}2.1 $c \leftarrow c^{2^k} $ \\ +\hspace{3mm}2.2 Extract the $i$'th $k$-bit word from $b$ and store it in $g$. \\ +\hspace{3mm}2.3 $c \leftarrow c \cdot a^g$ \\ +3. Return $c$. \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{$k$-ary Exponentiation} +\label{fig:KARY} +\end{figure} + +The squaring on step 2.1 can be calculated by squaring the value $c$ successively $k$ times. If the values of $a^g$ for $0 < g < 2^k$ have been +precomputed this algorithm requires only $t$ multiplications and $tk$ squarings. The table can be generated with $2^{k - 1} - 1$ squarings and +$2^{k - 1} + 1$ multiplications. This algorithm assumes that the number of bits in the exponent is evenly divisible by $k$. +However, when it is not the remaining $0 < x \le k - 1$ bits can be handled with algorithm~\ref{fig:LTOR}. + +Suppose $k = 4$ and $t = 100$. This modified algorithm will require $109$ multiplications and $408$ squarings to compute the exponentiation. The +original algorithm would on average have required $200$ multiplications and $400$ squrings to compute the same value. The total number of squarings +has increased slightly but the number of multiplications has nearly halved. + +\subsection{Optimal Values of $k$} +An optimal value of $k$ will minimize $2^{k} + \lceil n / k \rceil + n - 1$ for a fixed number of bits in the exponent $n$. The simplest +approach is to brute force search amongst the values $k = 2, 3, \ldots, 8$ for the lowest result. Table~\ref{fig:OPTK} lists optimal values of $k$ +for various exponent sizes and compares the number of multiplication and squarings required against algorithm~\ref{fig:LTOR}. + +\begin{figure}[here] +\begin{center} +\begin{small} +\begin{tabular}{|c|c|c|c|c|c|} +\hline \textbf{Exponent (bits)} & \textbf{Optimal $k$} & \textbf{Work at $k$} & \textbf{Work with ~\ref{fig:LTOR}} \\ +\hline $16$ & $2$ & $27$ & $24$ \\ +\hline $32$ & $3$ & $49$ & $48$ \\ +\hline $64$ & $3$ & $92$ & $96$ \\ +\hline $128$ & $4$ & $175$ & $192$ \\ +\hline $256$ & $4$ & $335$ & $384$ \\ +\hline $512$ & $5$ & $645$ & $768$ \\ +\hline $1024$ & $6$ & $1257$ & $1536$ \\ +\hline $2048$ & $6$ & $2452$ & $3072$ \\ +\hline $4096$ & $7$ & $4808$ & $6144$ \\ +\hline +\end{tabular} +\end{small} +\end{center} +\caption{Optimal Values of $k$ for $k$-ary Exponentiation} +\label{fig:OPTK} +\end{figure} + +\subsection{Sliding-Window Exponentiation} +A simple modification to the previous algorithm is only generate the upper half of the table in the range $2^{k-1} \le g < 2^k$. Essentially +this is a table for all values of $g$ where the most significant bit of $g$ is a one. However, in order for this to be allowed in the +algorithm values of $g$ in the range $0 \le g < 2^{k-1}$ must be avoided. + +Table~\ref{fig:OPTK2} lists optimal values of $k$ for various exponent sizes and compares the work required against algorithm~\ref{fig:KARY}. + +\begin{figure}[here] +\begin{center} +\begin{small} +\begin{tabular}{|c|c|c|c|c|c|} +\hline \textbf{Exponent (bits)} & \textbf{Optimal $k$} & \textbf{Work at $k$} & \textbf{Work with ~\ref{fig:KARY}} \\ +\hline $16$ & $3$ & $24$ & $27$ \\ +\hline $32$ & $3$ & $45$ & $49$ \\ +\hline $64$ & $4$ & $87$ & $92$ \\ +\hline $128$ & $4$ & $167$ & $175$ \\ +\hline $256$ & $5$ & $322$ & $335$ \\ +\hline $512$ & $6$ & $628$ & $645$ \\ +\hline $1024$ & $6$ & $1225$ & $1257$ \\ +\hline $2048$ & $7$ & $2403$ & $2452$ \\ +\hline $4096$ & $8$ & $4735$ & $4808$ \\ +\hline +\end{tabular} +\end{small} +\end{center} +\caption{Optimal Values of $k$ for Sliding Window Exponentiation} +\label{fig:OPTK2} +\end{figure} + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{Sliding Window $k$-ary Exponentiation}. \\ +\textbf{Input}. Integer $a$, $b$, $k$ and $t$ \\ +\textbf{Output}. $c = a^b$ \\ +\hline \\ +1. $c \leftarrow 1$ \\ +2. for $i$ from $t - 1$ to $0$ do \\ +\hspace{3mm}2.1 If the $i$'th bit of $b$ is a zero then \\ +\hspace{6mm}2.1.1 $c \leftarrow c^2$ \\ +\hspace{3mm}2.2 else do \\ +\hspace{6mm}2.2.1 $c \leftarrow c^{2^k}$ \\ +\hspace{6mm}2.2.2 Extract the $k$ bits from $(b_{i}b_{i-1}\ldots b_{i-(k-1)})$ and store it in $g$. \\ +\hspace{6mm}2.2.3 $c \leftarrow c \cdot a^g$ \\ +\hspace{6mm}2.2.4 $i \leftarrow i - k$ \\ +3. Return $c$. \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Sliding Window $k$-ary Exponentiation} +\end{figure} + +Similar to the previous algorithm this algorithm must have a special handler when fewer than $k$ bits are left in the exponent. While this +algorithm requires the same number of squarings it can potentially have fewer multiplications. The pre-computed table $a^g$ is also half +the size as the previous table. + +Consider the exponent $b = 111101011001000_2 \equiv 31432_{10}$ with $k = 3$ using both algorithms. The first algorithm will divide the exponent up as +the following five $3$-bit words $b \equiv \left ( 111, 101, 011, 001, 000 \right )_{2}$. The second algorithm will break the +exponent as $b \equiv \left ( 111, 101, 0, 110, 0, 100, 0 \right )_{2}$. The single digit $0$ in the second representation are where +a single squaring took place instead of a squaring and multiplication. In total the first method requires $10$ multiplications and $18$ +squarings. The second method requires $8$ multiplications and $18$ squarings. + +In general the sliding window method is never slower than the generic $k$-ary method and often it is slightly faster. + +\section{Modular Exponentiation} + +Modular exponentiation is essentially computing the power of a base within a finite field or ring. For example, computing +$d \equiv a^b \mbox{ (mod }c\mbox{)}$ is a modular exponentiation. Instead of first computing $a^b$ and then reducing it +modulo $c$ the intermediate result is reduced modulo $c$ after every squaring or multiplication operation. + +This guarantees that any intermediate result is bounded by $0 \le d \le c^2 - 2c + 1$ and can be reduced modulo $c$ quickly using +one of the algorithms presented in chapter seven. + +Before the actual modular exponentiation algorithm can be written a wrapper algorithm must be written first. This algorithm +will allow the exponent $b$ to be negative which is computed as $c \equiv \left (1 / a \right )^{\vert b \vert} \mbox{(mod }d\mbox{)}$. The +value of $(1/a) \mbox{ mod }c$ is computed using the modular inverse (\textit{see \ref{sec;modinv}}). If no inverse exists the algorithm +terminates with an error. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_exptmod}. \\ +\textbf{Input}. mp\_int $a$, $b$ and $c$ \\ +\textbf{Output}. $y \equiv g^x \mbox{ (mod }p\mbox{)}$ \\ +\hline \\ +1. If $c.sign = MP\_NEG$ return(\textit{MP\_VAL}). \\ +2. If $b.sign = MP\_NEG$ then \\ +\hspace{3mm}2.1 $g' \leftarrow g^{-1} \mbox{ (mod }c\mbox{)}$ \\ +\hspace{3mm}2.2 $x' \leftarrow \vert x \vert$ \\ +\hspace{3mm}2.3 Compute $d \equiv g'^{x'} \mbox{ (mod }c\mbox{)}$ via recursion. \\ +3. if $p$ is odd \textbf{OR} $p$ is a D.R. modulus then \\ +\hspace{3mm}3.1 Compute $y \equiv g^{x} \mbox{ (mod }p\mbox{)}$ via algorithm mp\_exptmod\_fast. \\ +4. else \\ +\hspace{3mm}4.1 Compute $y \equiv g^{x} \mbox{ (mod }p\mbox{)}$ via algorithm s\_mp\_exptmod. \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_exptmod} +\end{figure} + +\textbf{Algorithm mp\_exptmod.} +The first algorithm which actually performs modular exponentiation is algorithm s\_mp\_exptmod. It is a sliding window $k$-ary algorithm +which uses Barrett reduction to reduce the product modulo $p$. The second algorithm mp\_exptmod\_fast performs the same operation +except it uses either Montgomery or Diminished Radix reduction. The two latter reduction algorithms are clumped in the same exponentiation +algorithm since their arguments are essentially the same (\textit{two mp\_ints and one mp\_digit}). + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_exptmod.c +\vspace{-3mm} +\begin{alltt} +016 +017 +018 /* this is a shell function that calls either the normal or Montgomery +019 * exptmod functions. Originally the call to the montgomery code was +020 * embedded in the normal function but that wasted alot of stack space +021 * for nothing (since 99% of the time the Montgomery code would be called) +022 */ +023 int mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y) +024 \{ +025 int dr; +026 +027 /* modulus P must be positive */ +028 if (P->sign == MP_NEG) \{ +029 return MP_VAL; +030 \} +031 +032 /* if exponent X is negative we have to recurse */ +033 if (X->sign == MP_NEG) \{ +034 mp_int tmpG, tmpX; +035 int err; +036 +037 /* first compute 1/G mod P */ +038 if ((err = mp_init(&tmpG)) != MP_OKAY) \{ +039 return err; +040 \} +041 if ((err = mp_invmod(G, P, &tmpG)) != MP_OKAY) \{ +042 mp_clear(&tmpG); +043 return err; +044 \} +045 +046 /* now get |X| */ +047 if ((err = mp_init(&tmpX)) != MP_OKAY) \{ +048 mp_clear(&tmpG); +049 return err; +050 \} +051 if ((err = mp_abs(X, &tmpX)) != MP_OKAY) \{ +052 mp_clear_multi(&tmpG, &tmpX, NULL); +053 return err; +054 \} +055 +056 /* and now compute (1/G)**|X| instead of G**X [X < 0] */ +057 err = mp_exptmod(&tmpG, &tmpX, P, Y); +058 mp_clear_multi(&tmpG, &tmpX, NULL); +059 return err; +060 \} +061 +062 /* is it a DR modulus? */ +063 dr = mp_dr_is_modulus(P); +064 +065 /* if not, is it a uDR modulus? */ +066 if (dr == 0) \{ +067 dr = mp_reduce_is_2k(P) << 1; +068 \} +069 +070 /* if the modulus is odd or dr != 0 use the fast method */ +071 if (mp_isodd (P) == 1 || dr != 0) \{ +072 return mp_exptmod_fast (G, X, P, Y, dr); +073 \} else \{ +074 /* otherwise use the generic Barrett reduction technique */ +075 return s_mp_exptmod (G, X, P, Y); +076 \} +077 \} +078 +\end{alltt} +\end{small} + +In order to keep the algorithms in a known state the first step on line 28 is to reject any negative modulus as input. If the exponent is +negative the algorithm tries to perform a modular exponentiation with the modular inverse of the base $G$. The temporary variable $tmpG$ is assigned +the modular inverse of $G$ and $tmpX$ is assigned the absolute value of $X$. The algorithm will recuse with these new values with a positive +exponent. + +If the exponent is positive the algorithm resumes the exponentiation. Line 63 determines if the modulus is of the restricted Diminished Radix +form. If it is not line 67 attempts to determine if it is of a unrestricted Diminished Radix form. The integer $dr$ will take on one +of three values. + +\begin{enumerate} +\item $dr = 0$ means that the modulus is not of either restricted or unrestricted Diminished Radix form. +\item $dr = 1$ means that the modulus is of restricted Diminished Radix form. +\item $dr = 2$ means that the modulus is of unrestricted Diminished Radix form. +\end{enumerate} + +Line 70 determines if the fast modular exponentiation algorithm can be used. It is allowed if $dr \ne 0$ or if the modulus is odd. Otherwise, +the slower s\_mp\_exptmod algorithm is used which uses Barrett reduction. + +\subsection{Barrett Modular Exponentiation} + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{s\_mp\_exptmod}. \\ +\textbf{Input}. mp\_int $a$, $b$ and $c$ \\ +\textbf{Output}. $y \equiv g^x \mbox{ (mod }p\mbox{)}$ \\ +\hline \\ +1. $k \leftarrow lg(x)$ \\ +2. $winsize \leftarrow \left \lbrace \begin{array}{ll} + 2 & \mbox{if }k \le 7 \\ + 3 & \mbox{if }7 < k \le 36 \\ + 4 & \mbox{if }36 < k \le 140 \\ + 5 & \mbox{if }140 < k \le 450 \\ + 6 & \mbox{if }450 < k \le 1303 \\ + 7 & \mbox{if }1303 < k \le 3529 \\ + 8 & \mbox{if }3529 < k \\ + \end{array} \right .$ \\ +3. Initialize $2^{winsize}$ mp\_ints in an array named $M$ and one mp\_int named $\mu$ \\ +4. Calculate the $\mu$ required for Barrett Reduction (\textit{mp\_reduce\_setup}). \\ +5. $M_1 \leftarrow g \mbox{ (mod }p\mbox{)}$ \\ +\\ +Setup the table of small powers of $g$. First find $g^{2^{winsize}}$ and then all multiples of it. \\ +6. $k \leftarrow 2^{winsize - 1}$ \\ +7. $M_{k} \leftarrow M_1$ \\ +8. for $ix$ from 0 to $winsize - 2$ do \\ +\hspace{3mm}8.1 $M_k \leftarrow \left ( M_k \right )^2$ (\textit{mp\_sqr}) \\ +\hspace{3mm}8.2 $M_k \leftarrow M_k \mbox{ (mod }p\mbox{)}$ (\textit{mp\_reduce}) \\ +9. for $ix$ from $2^{winsize - 1} + 1$ to $2^{winsize} - 1$ do \\ +\hspace{3mm}9.1 $M_{ix} \leftarrow M_{ix - 1} \cdot M_{1}$ (\textit{mp\_mul}) \\ +\hspace{3mm}9.2 $M_{ix} \leftarrow M_{ix} \mbox{ (mod }p\mbox{)}$ (\textit{mp\_reduce}) \\ +10. $res \leftarrow 1$ \\ +\\ +Start Sliding Window. \\ +11. $mode \leftarrow 0, bitcnt \leftarrow 1, buf \leftarrow 0, digidx \leftarrow x.used - 1, bitcpy \leftarrow 0, bitbuf \leftarrow 0$ \\ +12. Loop \\ +\hspace{3mm}12.1 $bitcnt \leftarrow bitcnt - 1$ \\ +\hspace{3mm}12.2 If $bitcnt = 0$ then do \\ +\hspace{6mm}12.2.1 If $digidx = -1$ goto step 13. \\ +\hspace{6mm}12.2.2 $buf \leftarrow x_{digidx}$ \\ +\hspace{6mm}12.2.3 $digidx \leftarrow digidx - 1$ \\ +\hspace{6mm}12.2.4 $bitcnt \leftarrow lg(\beta)$ \\ +Continued on next page. \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm s\_mp\_exptmod} +\end{figure} + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{s\_mp\_exptmod} (\textit{continued}). \\ +\textbf{Input}. mp\_int $a$, $b$ and $c$ \\ +\textbf{Output}. $y \equiv g^x \mbox{ (mod }p\mbox{)}$ \\ +\hline \\ +\hspace{3mm}12.3 $y \leftarrow (buf >> (lg(\beta) - 1))$ AND $1$ \\ +\hspace{3mm}12.4 $buf \leftarrow buf << 1$ \\ +\hspace{3mm}12.5 if $mode = 0$ and $y = 0$ then goto step 12. \\ +\hspace{3mm}12.6 if $mode = 1$ and $y = 0$ then do \\ +\hspace{6mm}12.6.1 $res \leftarrow res^2$ \\ +\hspace{6mm}12.6.2 $res \leftarrow res \mbox{ (mod }p\mbox{)}$ \\ +\hspace{6mm}12.6.3 Goto step 12. \\ +\hspace{3mm}12.7 $bitcpy \leftarrow bitcpy + 1$ \\ +\hspace{3mm}12.8 $bitbuf \leftarrow bitbuf + (y << (winsize - bitcpy))$ \\ +\hspace{3mm}12.9 $mode \leftarrow 2$ \\ +\hspace{3mm}12.10 If $bitcpy = winsize$ then do \\ +\hspace{6mm}Window is full so perform the squarings and single multiplication. \\ +\hspace{6mm}12.10.1 for $ix$ from $0$ to $winsize -1$ do \\ +\hspace{9mm}12.10.1.1 $res \leftarrow res^2$ \\ +\hspace{9mm}12.10.1.2 $res \leftarrow res \mbox{ (mod }p\mbox{)}$ \\ +\hspace{6mm}12.10.2 $res \leftarrow res \cdot M_{bitbuf}$ \\ +\hspace{6mm}12.10.3 $res \leftarrow res \mbox{ (mod }p\mbox{)}$ \\ +\hspace{6mm}Reset the window. \\ +\hspace{6mm}12.10.4 $bitcpy \leftarrow 0, bitbuf \leftarrow 0, mode \leftarrow 1$ \\ +\\ +No more windows left. Check for residual bits of exponent. \\ +13. If $mode = 2$ and $bitcpy > 0$ then do \\ +\hspace{3mm}13.1 for $ix$ form $0$ to $bitcpy - 1$ do \\ +\hspace{6mm}13.1.1 $res \leftarrow res^2$ \\ +\hspace{6mm}13.1.2 $res \leftarrow res \mbox{ (mod }p\mbox{)}$ \\ +\hspace{6mm}13.1.3 $bitbuf \leftarrow bitbuf << 1$ \\ +\hspace{6mm}13.1.4 If $bitbuf$ AND $2^{winsize} \ne 0$ then do \\ +\hspace{9mm}13.1.4.1 $res \leftarrow res \cdot M_{1}$ \\ +\hspace{9mm}13.1.4.2 $res \leftarrow res \mbox{ (mod }p\mbox{)}$ \\ +14. $y \leftarrow res$ \\ +15. Clear $res$, $mu$ and the $M$ array. \\ +16. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm s\_mp\_exptmod (continued)} +\end{figure} + +\textbf{Algorithm s\_mp\_exptmod.} +This algorithm computes the $x$'th power of $g$ modulo $p$ and stores the result in $y$. It takes advantage of the Barrett reduction +algorithm to keep the product small throughout the algorithm. + +The first two steps determine the optimal window size based on the number of bits in the exponent. The larger the exponent the +larger the window size becomes. After a window size $winsize$ has been chosen an array of $2^{winsize}$ mp\_int variables is allocated. This +table will hold the values of $g^x \mbox{ (mod }p\mbox{)}$ for $2^{winsize - 1} \le x < 2^{winsize}$. + +After the table is allocated the first power of $g$ is found. Since $g \ge p$ is allowed it must be first reduced modulo $p$ to make +the rest of the algorithm more efficient. The first element of the table at $2^{winsize - 1}$ is found by squaring $M_1$ successively $winsize - 2$ +times. The rest of the table elements are found by multiplying the previous element by $M_1$ modulo $p$. + +Now that the table is available the sliding window may begin. The following list describes the functions of all the variables in the window. +\begin{enumerate} +\item The variable $mode$ dictates how the bits of the exponent are interpreted. +\begin{enumerate} + \item When $mode = 0$ the bits are ignored since no non-zero bit of the exponent has been seen yet. For example, if the exponent were simply + $1$ then there would be $lg(\beta) - 1$ zero bits before the first non-zero bit. In this case bits are ignored until a non-zero bit is found. + \item When $mode = 1$ a non-zero bit has been seen before and a new $winsize$-bit window has not been formed yet. In this mode leading $0$ bits + are read and a single squaring is performed. If a non-zero bit is read a new window is created. + \item When $mode = 2$ the algorithm is in the middle of forming a window and new bits are appended to the window from the most significant bit + downwards. +\end{enumerate} +\item The variable $bitcnt$ indicates how many bits are left in the current digit of the exponent left to be read. When it reaches zero a new digit + is fetched from the exponent. +\item The variable $buf$ holds the currently read digit of the exponent. +\item The variable $digidx$ is an index into the exponents digits. It starts at the leading digit $x.used - 1$ and moves towards the trailing digit. +\item The variable $bitcpy$ indicates how many bits are in the currently formed window. When it reaches $winsize$ the window is flushed and + the appropriate operations performed. +\item The variable $bitbuf$ holds the current bits of the window being formed. +\end{enumerate} + +All of step 12 is the window processing loop. It will iterate while there are digits available form the exponent to read. The first step +inside this loop is to extract a new digit if no more bits are available in the current digit. If there are no bits left a new digit is +read and if there are no digits left than the loop terminates. + +After a digit is made available step 12.3 will extract the most significant bit of the current digit and move all other bits in the digit +upwards. In effect the digit is read from most significant bit to least significant bit and since the digits are read from leading to +trailing edges the entire exponent is read from most significant bit to least significant bit. + +At step 12.5 if the $mode$ and currently extracted bit $y$ are both zero the bit is ignored and the next bit is read. This prevents the +algorithm from having to perform trivial squaring and reduction operations before the first non-zero bit is read. Step 12.6 and 12.7-10 handle +the two cases of $mode = 1$ and $mode = 2$ respectively. + +\begin{center} +\begin{figure}[here] +\includegraphics{pics/expt_state} +\caption{Sliding Window State Diagram} +\label{pic:expt_state} +\end{figure} +\end{center} + +By step 13 there are no more digits left in the exponent. However, there may be partial bits in the window left. If $mode = 2$ then +a Left-to-Right algorithm is used to process the remaining few bits. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_s\_mp\_exptmod.c +\vspace{-3mm} +\begin{alltt} +016 +017 #ifdef MP_LOW_MEM +018 #define TAB_SIZE 32 +019 #else +020 #define TAB_SIZE 256 +021 #endif +022 +023 int +024 s_mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y) +025 \{ +026 mp_int M[TAB_SIZE], res, mu; +027 mp_digit buf; +028 int err, bitbuf, bitcpy, bitcnt, mode, digidx, x, y, winsize; +029 +030 /* find window size */ +031 x = mp_count_bits (X); +032 if (x <= 7) \{ +033 winsize = 2; +034 \} else if (x <= 36) \{ +035 winsize = 3; +036 \} else if (x <= 140) \{ +037 winsize = 4; +038 \} else if (x <= 450) \{ +039 winsize = 5; +040 \} else if (x <= 1303) \{ +041 winsize = 6; +042 \} else if (x <= 3529) \{ +043 winsize = 7; +044 \} else \{ +045 winsize = 8; +046 \} +047 +048 #ifdef MP_LOW_MEM +049 if (winsize > 5) \{ +050 winsize = 5; +051 \} +052 #endif +053 +054 /* init M array */ +055 /* init first cell */ +056 if ((err = mp_init(&M[1])) != MP_OKAY) \{ +057 return err; +058 \} +059 +060 /* now init the second half of the array */ +061 for (x = 1<<(winsize-1); x < (1 << winsize); x++) \{ +062 if ((err = mp_init(&M[x])) != MP_OKAY) \{ +063 for (y = 1<<(winsize-1); y < x; y++) \{ +064 mp_clear (&M[y]); +065 \} +066 mp_clear(&M[1]); +067 return err; +068 \} +069 \} +070 +071 /* create mu, used for Barrett reduction */ +072 if ((err = mp_init (&mu)) != MP_OKAY) \{ +073 goto __M; +074 \} +075 if ((err = mp_reduce_setup (&mu, P)) != MP_OKAY) \{ +076 goto __MU; +077 \} +078 +079 /* create M table +080 * +081 * The M table contains powers of the base, +082 * e.g. M[x] = G**x mod P +083 * +084 * The first half of the table is not +085 * computed though accept for M[0] and M[1] +086 */ +087 if ((err = mp_mod (G, P, &M[1])) != MP_OKAY) \{ +088 goto __MU; +089 \} +090 +091 /* compute the value at M[1<<(winsize-1)] by squaring +092 * M[1] (winsize-1) times +093 */ +094 if ((err = mp_copy (&M[1], &M[1 << (winsize - 1)])) != MP_OKAY) \{ +095 goto __MU; +096 \} +097 +098 for (x = 0; x < (winsize - 1); x++) \{ +099 if ((err = mp_sqr (&M[1 << (winsize - 1)], +100 &M[1 << (winsize - 1)])) != MP_OKAY) \{ +101 goto __MU; +102 \} +103 if ((err = mp_reduce (&M[1 << (winsize - 1)], P, &mu)) != MP_OKAY) \{ +104 goto __MU; +105 \} +106 \} +107 +108 /* create upper table, that is M[x] = M[x-1] * M[1] (mod P) +109 * for x = (2**(winsize - 1) + 1) to (2**winsize - 1) +110 */ +111 for (x = (1 << (winsize - 1)) + 1; x < (1 << winsize); x++) \{ +112 if ((err = mp_mul (&M[x - 1], &M[1], &M[x])) != MP_OKAY) \{ +113 goto __MU; +114 \} +115 if ((err = mp_reduce (&M[x], P, &mu)) != MP_OKAY) \{ +116 goto __MU; +117 \} +118 \} +119 +120 /* setup result */ +121 if ((err = mp_init (&res)) != MP_OKAY) \{ +122 goto __MU; +123 \} +124 mp_set (&res, 1); +125 +126 /* set initial mode and bit cnt */ +127 mode = 0; +128 bitcnt = 1; +129 buf = 0; +130 digidx = X->used - 1; +131 bitcpy = 0; +132 bitbuf = 0; +133 +134 for (;;) \{ +135 /* grab next digit as required */ +136 if (--bitcnt == 0) \{ +137 /* if digidx == -1 we are out of digits */ +138 if (digidx == -1) \{ +139 break; +140 \} +141 /* read next digit and reset the bitcnt */ +142 buf = X->dp[digidx--]; +143 bitcnt = (int) DIGIT_BIT; +144 \} +145 +146 /* grab the next msb from the exponent */ +147 y = (buf >> (mp_digit)(DIGIT_BIT - 1)) & 1; +148 buf <<= (mp_digit)1; +149 +150 /* if the bit is zero and mode == 0 then we ignore it +151 * These represent the leading zero bits before the first 1 bit +152 * in the exponent. Technically this opt is not required but it +153 * does lower the # of trivial squaring/reductions used +154 */ +155 if (mode == 0 && y == 0) \{ +156 continue; +157 \} +158 +159 /* if the bit is zero and mode == 1 then we square */ +160 if (mode == 1 && y == 0) \{ +161 if ((err = mp_sqr (&res, &res)) != MP_OKAY) \{ +162 goto __RES; +163 \} +164 if ((err = mp_reduce (&res, P, &mu)) != MP_OKAY) \{ +165 goto __RES; +166 \} +167 continue; +168 \} +169 +170 /* else we add it to the window */ +171 bitbuf |= (y << (winsize - ++bitcpy)); +172 mode = 2; +173 +174 if (bitcpy == winsize) \{ +175 /* ok window is filled so square as required and multiply */ +176 /* square first */ +177 for (x = 0; x < winsize; x++) \{ +178 if ((err = mp_sqr (&res, &res)) != MP_OKAY) \{ +179 goto __RES; +180 \} +181 if ((err = mp_reduce (&res, P, &mu)) != MP_OKAY) \{ +182 goto __RES; +183 \} +184 \} +185 +186 /* then multiply */ +187 if ((err = mp_mul (&res, &M[bitbuf], &res)) != MP_OKAY) \{ +188 goto __MU; +189 \} +190 if ((err = mp_reduce (&res, P, &mu)) != MP_OKAY) \{ +191 goto __MU; +192 \} +193 +194 /* empty window and reset */ +195 bitcpy = 0; +196 bitbuf = 0; +197 mode = 1; +198 \} +199 \} +200 +201 /* if bits remain then square/multiply */ +202 if (mode == 2 && bitcpy > 0) \{ +203 /* square then multiply if the bit is set */ +204 for (x = 0; x < bitcpy; x++) \{ +205 if ((err = mp_sqr (&res, &res)) != MP_OKAY) \{ +206 goto __RES; +207 \} +208 if ((err = mp_reduce (&res, P, &mu)) != MP_OKAY) \{ +209 goto __RES; +210 \} +211 +212 bitbuf <<= 1; +213 if ((bitbuf & (1 << winsize)) != 0) \{ +214 /* then multiply */ +215 if ((err = mp_mul (&res, &M[1], &res)) != MP_OKAY) \{ +216 goto __RES; +217 \} +218 if ((err = mp_reduce (&res, P, &mu)) != MP_OKAY) \{ +219 goto __RES; +220 \} +221 \} +222 \} +223 \} +224 +225 mp_exch (&res, Y); +226 err = MP_OKAY; +227 __RES:mp_clear (&res); +228 __MU:mp_clear (&mu); +229 __M: +230 mp_clear(&M[1]); +231 for (x = 1<<(winsize-1); x < (1 << winsize); x++) \{ +232 mp_clear (&M[x]); +233 \} +234 return err; +235 \} +\end{alltt} +\end{small} + +Lines 21 through 40 determine the optimal window size based on the length of the exponent in bits. The window divisions are sorted +from smallest to greatest so that in each \textbf{if} statement only one condition must be tested. For example, by the \textbf{if} statement +on line 32 the value of $x$ is already known to be greater than $140$. + +The conditional piece of code beginning on line 48 allows the window size to be restricted to five bits. This logic is used to ensure +the table of precomputed powers of $G$ remains relatively small. + +The for loop on line 61 initializes the $M$ array while lines 62 and 75 compute the value of $\mu$ required for +Barrett reduction. + +-- More later. + +\section{Quick Power of Two} +Calculating $b = 2^a$ can be performed much quicker than with any of the previous algorithms. Recall that a logical shift left $m << k$ is +equivalent to $m \cdot 2^k$. By this logic when $m = 1$ a quick power of two can be achieved. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_2expt}. \\ +\textbf{Input}. integer $b$ \\ +\textbf{Output}. $a \leftarrow 2^b$ \\ +\hline \\ +1. $a \leftarrow 0$ \\ +2. If $a.alloc < \lfloor b / lg(\beta) \rfloor + 1$ then grow $a$ appropriately. \\ +3. $a.used \leftarrow \lfloor b / lg(\beta) \rfloor + 1$ \\ +4. $a_{\lfloor b / lg(\beta) \rfloor} \leftarrow 1 << (b \mbox{ mod } lg(\beta))$ \\ +5. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_2expt} +\end{figure} + +\textbf{Algorithm mp\_2expt.} + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_2expt.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* computes a = 2**b +018 * +019 * Simple algorithm which zeroes the int, grows it then just sets one bit +020 * as required. +021 */ +022 int +023 mp_2expt (mp_int * a, int b) +024 \{ +025 int res; +026 +027 /* zero a as per default */ +028 mp_zero (a); +029 +030 /* grow a to accomodate the single bit */ +031 if ((res = mp_grow (a, b / DIGIT_BIT + 1)) != MP_OKAY) \{ +032 return res; +033 \} +034 +035 /* set the used count of where the bit will go */ +036 a->used = b / DIGIT_BIT + 1; +037 +038 /* put the single bit in its place */ +039 a->dp[b / DIGIT_BIT] = 1 << (b % DIGIT_BIT); +040 +041 return MP_OKAY; +042 \} +\end{alltt} +\end{small} + +\chapter{Higher Level Algorithms} + +This chapter discusses the various higher level algorithms that are required to complete a well rounded multiple precision integer package. These +routines are less performance oriented than the algorithms of chapters five, six and seven but are no less important. + +The first section describes a method of integer division with remainder that is universally well known. It provides the signed division logic +for the package. The subsequent section discusses a set of algorithms which allow a single digit to be the 2nd operand for a variety of operations. +These algorithms serve mostly to simplify other algorithms where small constants are required. The last two sections discuss how to manipulate +various representations of integers. For example, converting from an mp\_int to a string of character. + +\section{Integer Division with Remainder} +\label{sec:division} + +Integer division aside from modular exponentiation is the most intensive algorithm to compute. Like addition, subtraction and multiplication +the basis of this algorithm is the long-hand division algorithm taught to school children. Throughout this discussion several common variables +will be used. Let $x$ represent the divisor and $y$ represent the dividend. Let $q$ represent the integer quotient $\lfloor y / x \rfloor$ and +let $r$ represent the remainder $r = y - x \lfloor y / x \rfloor$. The following simple algorithm will be used to start the discussion. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{Radix-$\beta$ Integer Division}. \\ +\textbf{Input}. integer $x$ and $y$ \\ +\textbf{Output}. $q = \lfloor y/x\rfloor, r = y - xq$ \\ +\hline \\ +1. $q \leftarrow 0$ \\ +2. $n \leftarrow \vert \vert y \vert \vert - \vert \vert x \vert \vert$ \\ +3. for $t$ from $n$ down to $0$ do \\ +\hspace{3mm}3.1 Maximize $k$ such that $kx\beta^t$ is less than or equal to $y$ and $(k + 1)x\beta^t$ is greater. \\ +\hspace{3mm}3.2 $q \leftarrow q + k\beta^t$ \\ +\hspace{3mm}3.3 $y \leftarrow y - kx\beta^t$ \\ +4. $r \leftarrow y$ \\ +5. Return($q, r$) \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm Radix-$\beta$ Integer Division} +\label{fig:raddiv} +\end{figure} + +As children we are taught this very simple algorithm for the case of $\beta = 10$. Almost instinctively several optimizations are taught for which +their reason of existing are never explained. For this example let $y = 5471$ represent the dividend and $x = 23$ represent the divisor. + +To find the first digit of the quotient the value of $k$ must be maximized such that $kx\beta^t$ is less than or equal to $y$ and +simultaneously $(k + 1)x\beta^t$ is greater than $y$. Implicitly $k$ is the maximum value the $t$'th digit of the quotient may have. The habitual method +used to find the maximum is to ``eyeball'' the two numbers, typically only the leading digits and quickly estimate a quotient. By only using leading +digits a much simpler division may be used to form an educated guess at what the value must be. In this case $k = \lfloor 54/23\rfloor = 2$ quickly +arises as a possible solution. Indeed $2x\beta^2 = 4600$ is less than $y = 5471$ and simultaneously $(k + 1)x\beta^2 = 6900$ is larger than $y$. +As a result $k\beta^2$ is added to the quotient which now equals $q = 200$ and $4600$ is subtracted from $y$ to give a remainder of $y = 841$. + +Again this process is repeated to produce the quotient digit $k = 3$ which makes the quotient $q = 200 + 3\beta = 230$ and the remainder +$y = 841 - 3x\beta = 181$. Finally the last iteration of the loop produces $k = 7$ which leads to the quotient $q = 230 + 7 = 237$ and the +remainder $y = 181 - 7x = 20$. The final quotient and remainder found are $q = 237$ and $r = y = 20$ which are indeed correct since +$237 \cdot 23 + 20 = 5471$ is true. + +\subsection{Quotient Estimation} +\label{sec:divest} +As alluded to earlier the quotient digit $k$ can be estimated from only the leading digits of both the divisor and dividend. When $p$ leading +digits are used from both the divisor and dividend to form an estimation the accuracy of the estimation rises as $p$ grows. Technically +speaking the estimation is based on assuming the lower $\vert \vert y \vert \vert - p$ and $\vert \vert x \vert \vert - p$ lower digits of the +dividend and divisor are zero. + +The value of the estimation may off by a few values in either direction and in general is fairly correct. A simplification \cite[pp. 271]{TAOCPV2} +of the estimation technique is to use $t + 1$ digits of the dividend and $t$ digits of the divisor, in particularly when $t = 1$. The estimate +using this technique is never too small. For the following proof let $t = \vert \vert y \vert \vert - 1$ and $s = \vert \vert x \vert \vert - 1$ +represent the most significant digits of the dividend and divisor respectively. + +\textbf{Proof.}\textit{ The quotient $\hat k = \lfloor (y_t\beta + y_{t-1}) / x_s \rfloor$ is greater than or equal to +$k = \lfloor y / (x \cdot \beta^{\vert \vert y \vert \vert - \vert \vert x \vert \vert - 1}) \rfloor$. } +The first obvious case is when $\hat k = \beta - 1$ in which case the proof is concluded since the real quotient cannot be larger. For all other +cases $\hat k = \lfloor (y_t\beta + y_{t-1}) / x_s \rfloor$ and $\hat k x_s \ge y_t\beta + y_{t-1} - x_s + 1$. The latter portion of the inequalility +$-x_s + 1$ arises from the fact that a truncated integer division will give the same quotient for at most $x_s - 1$ values. Next a series of +inequalities will prove the hypothesis. + +\begin{equation} +y - \hat k x \le y - \hat k x_s\beta^s +\end{equation} + +This is trivially true since $x \ge x_s\beta^s$. Next we replace $\hat kx_s\beta^s$ by the previous inequality for $\hat kx_s$. + +\begin{equation} +y - \hat k x \le y_t\beta^t + \ldots + y_0 - (y_t\beta^t + y_{t-1}\beta^{t-1} - x_s\beta^t + \beta^s) +\end{equation} + +By simplifying the previous inequality the following inequality is formed. + +\begin{equation} +y - \hat k x \le y_{t-2}\beta^{t-2} + \ldots + y_0 + x_s\beta^s - \beta^s +\end{equation} + +Subsequently, + +\begin{equation} +y_{t-2}\beta^{t-2} + \ldots + y_0 + x_s\beta^s - \beta^s < x_s\beta^s \le x +\end{equation} + +Which proves that $y - \hat kx \le x$ and by consequence $\hat k \ge k$ which concludes the proof. \textbf{QED} + + +\subsection{Normalized Integers} +For the purposes of division a normalized input is when the divisors leading digit $x_n$ is greater than or equal to $\beta / 2$. By multiplying both +$x$ and $y$ by $j = \lfloor (\beta / 2) / x_n \rfloor$ the quotient remains unchanged and the remainder is simply $j$ times the original +remainder. The purpose of normalization is to ensure the leading digit of the divisor is sufficiently large such that the estimated quotient will +lie in the domain of a single digit. Consider the maximum dividend $(\beta - 1) \cdot \beta + (\beta - 1)$ and the minimum divisor $\beta / 2$. + +\begin{equation} +{{\beta^2 - 1} \over { \beta / 2}} \le 2\beta - {2 \over \beta} +\end{equation} + +At most the quotient approaches $2\beta$, however, in practice this will not occur since that would imply the previous quotient digit was too small. + +\subsection{Radix-$\beta$ Division with Remainder} +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_div}. \\ +\textbf{Input}. mp\_int $a, b$ \\ +\textbf{Output}. $c = \lfloor a/b \rfloor$, $d = a - bc$ \\ +\hline \\ +1. If $b = 0$ return(\textit{MP\_VAL}). \\ +2. If $\vert a \vert < \vert b \vert$ then do \\ +\hspace{3mm}2.1 $d \leftarrow a$ \\ +\hspace{3mm}2.2 $c \leftarrow 0$ \\ +\hspace{3mm}2.3 Return(\textit{MP\_OKAY}). \\ +\\ +Setup the quotient to receive the digits. \\ +3. Grow $q$ to $a.used + 2$ digits. \\ +4. $q \leftarrow 0$ \\ +5. $x \leftarrow \vert a \vert , y \leftarrow \vert b \vert$ \\ +6. $sign \leftarrow \left \lbrace \begin{array}{ll} + MP\_ZPOS & \mbox{if }a.sign = b.sign \\ + MP\_NEG & \mbox{otherwise} \\ + \end{array} \right .$ \\ +\\ +Normalize the inputs such that the leading digit of $y$ is greater than or equal to $\beta / 2$. \\ +7. $norm \leftarrow (lg(\beta) - 1) - (\lceil lg(y) \rceil \mbox{ (mod }lg(\beta)\mbox{)})$ \\ +8. $x \leftarrow x \cdot 2^{norm}, y \leftarrow y \cdot 2^{norm}$ \\ +\\ +Find the leading digit of the quotient. \\ +9. $n \leftarrow x.used - 1, t \leftarrow y.used - 1$ \\ +10. $y \leftarrow y \cdot \beta^{n - t}$ \\ +11. While ($x \ge y$) do \\ +\hspace{3mm}11.1 $q_{n - t} \leftarrow q_{n - t} + 1$ \\ +\hspace{3mm}11.2 $x \leftarrow x - y$ \\ +12. $y \leftarrow \lfloor y / \beta^{n-t} \rfloor$ \\ +\\ +Continued on the next page. \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_div} +\end{figure} + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_div} (continued). \\ +\textbf{Input}. mp\_int $a, b$ \\ +\textbf{Output}. $c = \lfloor a/b \rfloor$, $d = a - bc$ \\ +\hline \\ +Now find the remainder fo the digits. \\ +13. for $i$ from $n$ down to $(t + 1)$ do \\ +\hspace{3mm}13.1 If $i > x.used$ then jump to the next iteration of this loop. \\ +\hspace{3mm}13.2 If $x_{i} = y_{t}$ then \\ +\hspace{6mm}13.2.1 $q_{i - t - 1} \leftarrow \beta - 1$ \\ +\hspace{3mm}13.3 else \\ +\hspace{6mm}13.3.1 $\hat r \leftarrow x_{i} \cdot \beta + x_{i - 1}$ \\ +\hspace{6mm}13.3.2 $\hat r \leftarrow \lfloor \hat r / y_{t} \rfloor$ \\ +\hspace{6mm}13.3.3 $q_{i - t - 1} \leftarrow \hat r$ \\ +\hspace{3mm}13.4 $q_{i - t - 1} \leftarrow q_{i - t - 1} + 1$ \\ +\\ +Fixup quotient estimation. \\ +\hspace{3mm}13.5 Loop \\ +\hspace{6mm}13.5.1 $q_{i - t - 1} \leftarrow q_{i - t - 1} - 1$ \\ +\hspace{6mm}13.5.2 t$1 \leftarrow 0$ \\ +\hspace{6mm}13.5.3 t$1_0 \leftarrow y_{t - 1}, $ t$1_1 \leftarrow y_t,$ t$1.used \leftarrow 2$ \\ +\hspace{6mm}13.5.4 $t1 \leftarrow t1 \cdot q_{i - t - 1}$ \\ +\hspace{6mm}13.5.5 t$2_0 \leftarrow x_{i - 2}, $ t$2_1 \leftarrow x_{i - 1}, $ t$2_2 \leftarrow x_i, $ t$2.used \leftarrow 3$ \\ +\hspace{6mm}13.5.6 If $\vert t1 \vert > \vert t2 \vert$ then goto step 13.5. \\ +\hspace{3mm}13.6 t$1 \leftarrow y \cdot q_{i - t - 1}$ \\ +\hspace{3mm}13.7 t$1 \leftarrow $ t$1 \cdot \beta^{i - t - 1}$ \\ +\hspace{3mm}13.8 $x \leftarrow x - $ t$1$ \\ +\hspace{3mm}13.9 If $x.sign = MP\_NEG$ then \\ +\hspace{6mm}13.10 t$1 \leftarrow y$ \\ +\hspace{6mm}13.11 t$1 \leftarrow $ t$1 \cdot \beta^{i - t - 1}$ \\ +\hspace{6mm}13.12 $x \leftarrow x + $ t$1$ \\ +\hspace{6mm}13.13 $q_{i - t - 1} \leftarrow q_{i - t - 1} - 1$ \\ +\\ +Finalize the result. \\ +14. Clamp excess digits of $q$ \\ +15. $c \leftarrow q, c.sign \leftarrow sign$ \\ +16. $x.sign \leftarrow a.sign$ \\ +17. $d \leftarrow \lfloor x / 2^{norm} \rfloor$ \\ +18. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_div (continued)} +\end{figure} +\textbf{Algorithm mp\_div.} +This algorithm will calculate quotient and remainder from an integer division given a dividend and divisor. The algorithm is a signed +division and will produce a fully qualified quotient and remainder. + +First the divisor $b$ must be non-zero which is enforced in step one. If the divisor is larger than the dividend than the quotient is implicitly +zero and the remainder is the dividend. + +After the first two trivial cases of inputs are handled the variable $q$ is setup to receive the digits of the quotient. Two unsigned copies of the +divisor $y$ and dividend $x$ are made as well. The core of the division algorithm is an unsigned division and will only work if the values are +positive. Now the two values $x$ and $y$ must be normalized such that the leading digit of $y$ is greater than or equal to $\beta / 2$. +This is performed by shifting both to the left by enough bits to get the desired normalization. + +At this point the division algorithm can begin producing digits of the quotient. Recall that maximum value of the estimation used is +$2\beta - {2 \over \beta}$ which means that a digit of the quotient must be first produced by another means. In this case $y$ is shifted +to the left (\textit{step ten}) so that it has the same number of digits as $x$. The loop on step eleven will subtract multiples of the +shifted copy of $y$ until $x$ is smaller. Since the leading digit of $y$ is greater than or equal to $\beta/2$ this loop will iterate at most two +times to produce the desired leading digit of the quotient. + +Now the remainder of the digits can be produced. The equation $\hat q = \lfloor {{x_i \beta + x_{i-1}}\over y_t} \rfloor$ is used to fairly +accurately approximate the true quotient digit. The estimation can in theory produce an estimation as high as $2\beta - {2 \over \beta}$ but by +induction the upper quotient digit is correct (\textit{as established on step eleven}) and the estimate must be less than $\beta$. + +Recall from section~\ref{sec:divest} that the estimation is never too low but may be too high. The next step of the estimation process is +to refine the estimation. The loop on step 13.5 uses $x_i\beta^2 + x_{i-1}\beta + x_{i-2}$ and $q_{i - t - 1}(y_t\beta + y_{t-1})$ as a higher +order approximation to adjust the quotient digit. + +After both phases of estimation the quotient digit may still be off by a value of one\footnote{This is similar to the error introduced +by optimizing Barrett reduction.}. Steps 13.6 and 13.7 subtract the multiple of the divisor from the dividend (\textit{Similar to step 3.3 of +algorithm~\ref{fig:raddiv}} and then subsequently add a multiple of the divisor if the quotient was too large. + +Now that the quotient has been determine finializing the result is a matter of clamping the quotient, fixing the sizes and de-normalizing the +remainder. An important aspect of this algorithm seemingly overlooked in other descriptions such as that of Algorithm 14.20 HAC \cite[pp. 598]{HAC} +is that when the estimations are being made (\textit{inside the loop on step 13.5}) that the digits $y_{t-1}$, $x_{i-2}$ and $x_{i-1}$ may lie +outside their respective boundaries. For example, if $t = 0$ or $i \le 1$ then the digits would be undefined. In those cases the digits should +respectively be replaced with a zero. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_div.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* integer signed division. +018 * c*b + d == a [e.g. a/b, c=quotient, d=remainder] +019 * HAC pp.598 Algorithm 14.20 +020 * +021 * Note that the description in HAC is horribly +022 * incomplete. For example, it doesn't consider +023 * the case where digits are removed from 'x' in +024 * the inner loop. It also doesn't consider the +025 * case that y has fewer than three digits, etc.. +026 * +027 * The overall algorithm is as described as +028 * 14.20 from HAC but fixed to treat these cases. +029 */ +030 int mp_div (mp_int * a, mp_int * b, mp_int * c, mp_int * d) +031 \{ +032 mp_int q, x, y, t1, t2; +033 int res, n, t, i, norm, neg; +034 +035 /* is divisor zero ? */ +036 if (mp_iszero (b) == 1) \{ +037 return MP_VAL; +038 \} +039 +040 /* if a < b then q=0, r = a */ +041 if (mp_cmp_mag (a, b) == MP_LT) \{ +042 if (d != NULL) \{ +043 res = mp_copy (a, d); +044 \} else \{ +045 res = MP_OKAY; +046 \} +047 if (c != NULL) \{ +048 mp_zero (c); +049 \} +050 return res; +051 \} +052 +053 if ((res = mp_init_size (&q, a->used + 2)) != MP_OKAY) \{ +054 return res; +055 \} +056 q.used = a->used + 2; +057 +058 if ((res = mp_init (&t1)) != MP_OKAY) \{ +059 goto __Q; +060 \} +061 +062 if ((res = mp_init (&t2)) != MP_OKAY) \{ +063 goto __T1; +064 \} +065 +066 if ((res = mp_init_copy (&x, a)) != MP_OKAY) \{ +067 goto __T2; +068 \} +069 +070 if ((res = mp_init_copy (&y, b)) != MP_OKAY) \{ +071 goto __X; +072 \} +073 +074 /* fix the sign */ +075 neg = (a->sign == b->sign) ? MP_ZPOS : MP_NEG; +076 x.sign = y.sign = MP_ZPOS; +077 +078 /* normalize both x and y, ensure that y >= b/2, [b == 2**DIGIT_BIT] */ +079 norm = mp_count_bits(&y) % DIGIT_BIT; +080 if (norm < (int)(DIGIT_BIT-1)) \{ +081 norm = (DIGIT_BIT-1) - norm; +082 if ((res = mp_mul_2d (&x, norm, &x)) != MP_OKAY) \{ +083 goto __Y; +084 \} +085 if ((res = mp_mul_2d (&y, norm, &y)) != MP_OKAY) \{ +086 goto __Y; +087 \} +088 \} else \{ +089 norm = 0; +090 \} +091 +092 /* note hac does 0 based, so if used==5 then its 0,1,2,3,4, e.g. use 4 */ +093 n = x.used - 1; +094 t = y.used - 1; +095 +096 /* while (x >= y*b**n-t) do \{ q[n-t] += 1; x -= y*b**\{n-t\} \} */ +097 if ((res = mp_lshd (&y, n - t)) != MP_OKAY) \{ /* y = y*b**\{n-t\} */ +098 goto __Y; +099 \} +100 +101 while (mp_cmp (&x, &y) != MP_LT) \{ +102 ++(q.dp[n - t]); +103 if ((res = mp_sub (&x, &y, &x)) != MP_OKAY) \{ +104 goto __Y; +105 \} +106 \} +107 +108 /* reset y by shifting it back down */ +109 mp_rshd (&y, n - t); +110 +111 /* step 3. for i from n down to (t + 1) */ +112 for (i = n; i >= (t + 1); i--) \{ +113 if (i > x.used) \{ +114 continue; +115 \} +116 +117 /* step 3.1 if xi == yt then set q\{i-t-1\} to b-1, +118 * otherwise set q\{i-t-1\} to (xi*b + x\{i-1\})/yt */ +119 if (x.dp[i] == y.dp[t]) \{ +120 q.dp[i - t - 1] = ((((mp_digit)1) << DIGIT_BIT) - 1); +121 \} else \{ +122 mp_word tmp; +123 tmp = ((mp_word) x.dp[i]) << ((mp_word) DIGIT_BIT); +124 tmp |= ((mp_word) x.dp[i - 1]); +125 tmp /= ((mp_word) y.dp[t]); +126 if (tmp > (mp_word) MP_MASK) +127 tmp = MP_MASK; +128 q.dp[i - t - 1] = (mp_digit) (tmp & (mp_word) (MP_MASK)); +129 \} +130 +131 /* while (q\{i-t-1\} * (yt * b + y\{t-1\})) > +132 xi * b**2 + xi-1 * b + xi-2 +133 +134 do q\{i-t-1\} -= 1; +135 */ +136 q.dp[i - t - 1] = (q.dp[i - t - 1] + 1) & MP_MASK; +137 do \{ +138 q.dp[i - t - 1] = (q.dp[i - t - 1] - 1) & MP_MASK; +139 +140 /* find left hand */ +141 mp_zero (&t1); +142 t1.dp[0] = (t - 1 < 0) ? 0 : y.dp[t - 1]; +143 t1.dp[1] = y.dp[t]; +144 t1.used = 2; +145 if ((res = mp_mul_d (&t1, q.dp[i - t - 1], &t1)) != MP_OKAY) \{ +146 goto __Y; +147 \} +148 +149 /* find right hand */ +150 t2.dp[0] = (i - 2 < 0) ? 0 : x.dp[i - 2]; +151 t2.dp[1] = (i - 1 < 0) ? 0 : x.dp[i - 1]; +152 t2.dp[2] = x.dp[i]; +153 t2.used = 3; +154 \} while (mp_cmp_mag(&t1, &t2) == MP_GT); +155 +156 /* step 3.3 x = x - q\{i-t-1\} * y * b**\{i-t-1\} */ +157 if ((res = mp_mul_d (&y, q.dp[i - t - 1], &t1)) != MP_OKAY) \{ +158 goto __Y; +159 \} +160 +161 if ((res = mp_lshd (&t1, i - t - 1)) != MP_OKAY) \{ +162 goto __Y; +163 \} +164 +165 if ((res = mp_sub (&x, &t1, &x)) != MP_OKAY) \{ +166 goto __Y; +167 \} +168 +169 /* if x < 0 then \{ x = x + y*b**\{i-t-1\}; q\{i-t-1\} -= 1; \} */ +170 if (x.sign == MP_NEG) \{ +171 if ((res = mp_copy (&y, &t1)) != MP_OKAY) \{ +172 goto __Y; +173 \} +174 if ((res = mp_lshd (&t1, i - t - 1)) != MP_OKAY) \{ +175 goto __Y; +176 \} +177 if ((res = mp_add (&x, &t1, &x)) != MP_OKAY) \{ +178 goto __Y; +179 \} +180 +181 q.dp[i - t - 1] = (q.dp[i - t - 1] - 1UL) & MP_MASK; +182 \} +183 \} +184 +185 /* now q is the quotient and x is the remainder +186 * [which we have to normalize] +187 */ +188 +189 /* get sign before writing to c */ +190 x.sign = a->sign; +191 +192 if (c != NULL) \{ +193 mp_clamp (&q); +194 mp_exch (&q, c); +195 c->sign = neg; +196 \} +197 +198 if (d != NULL) \{ +199 mp_div_2d (&x, norm, &x, NULL); +200 mp_exch (&x, d); +201 \} +202 +203 res = MP_OKAY; +204 +205 __Y:mp_clear (&y); +206 __X:mp_clear (&x); +207 __T2:mp_clear (&t2); +208 __T1:mp_clear (&t1); +209 __Q:mp_clear (&q); +210 return res; +211 \} +\end{alltt} +\end{small} + +The implementation of this algorithm differs slightly from the pseudo code presented previously. In this algorithm either of the quotient $c$ or +remainder $d$ may be passed as a \textbf{NULL} pointer which indicates their value is not desired. For example, the C code to call the division +algorithm with only the quotient is + +\begin{verbatim} +mp_div(&a, &b, &c, NULL); /* c = [a/b] */ +\end{verbatim} + +Lines 36 and 42 handle the two trivial cases of inputs which are division by zero and dividend smaller than the divisor +respectively. After the two trivial cases all of the temporary variables are initialized. Line 75 determines the sign of +the quotient and line 76 ensures that both $x$ and $y$ are positive. + +The number of bits in the leading digit is calculated on line 80. Implictly an mp\_int with $r$ digits will require $lg(\beta)(r-1) + k$ bits +of precision which when reduced modulo $lg(\beta)$ produces the value of $k$. In this case $k$ is the number of bits in the leading digit which is +exactly what is required. For the algorithm to operate $k$ must equal $lg(\beta) - 1$ and when it does not the inputs must be normalized by shifting +them to the left by $lg(\beta) - 1 - k$ bits. + +Throughout the variables $n$ and $t$ will represent the highest digit of $x$ and $y$ respectively. These are first used to produce the +leading digit of the quotient. The loop beginning on line 112 will produce the remainder of the quotient digits. + +The conditional ``continue'' on line 113 is used to prevent the algorithm from reading past the leading edge of $x$ which can occur when the +algorithm eliminates multiple non-zero digits in a single iteration. This ensures that $x_i$ is always non-zero since by definition the digits +above the $i$'th position $x$ must be zero in order for the quotient to be precise\footnote{Precise as far as integer division is concerned.}. + +Lines 142, 143 and 150 through 152 manually construct the high accuracy estimations by setting the digits of the two mp\_int +variables directly. + +\section{Single Digit Helpers} + +This section briefly describes a series of single digit helper algorithms which come in handy when working with small constants. All of +the helper functions assume the single digit input is positive and will treat them as such. + +\subsection{Single Digit Addition and Subtraction} + +Both addition and subtraction are performed by ``cheating'' and using mp\_set followed by the higher level addition or subtraction +algorithms. As a result these algorithms are subtantially simpler with a slight cost in performance. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_add\_d}. \\ +\textbf{Input}. mp\_int $a$ and a mp\_digit $b$ \\ +\textbf{Output}. $c = a + b$ \\ +\hline \\ +1. $t \leftarrow b$ (\textit{mp\_set}) \\ +2. $c \leftarrow a + t$ \\ +3. Return(\textit{MP\_OKAY}) \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_add\_d} +\end{figure} + +\textbf{Algorithm mp\_add\_d.} +This algorithm initiates a temporary mp\_int with the value of the single digit and uses algorithm mp\_add to add the two values together. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_add\_d.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* single digit addition */ +018 int +019 mp_add_d (mp_int * a, mp_digit b, mp_int * c) +020 \{ +021 int res, ix, oldused; +022 mp_digit *tmpa, *tmpc, mu; +023 +024 /* grow c as required */ +025 if (c->alloc < a->used + 1) \{ +026 if ((res = mp_grow(c, a->used + 1)) != MP_OKAY) \{ +027 return res; +028 \} +029 \} +030 +031 /* if a is negative and |a| >= b, call c = |a| - b */ +032 if (a->sign == MP_NEG && (a->used > 1 || a->dp[0] >= b)) \{ +033 /* temporarily fix sign of a */ +034 a->sign = MP_ZPOS; +035 +036 /* c = |a| - b */ +037 res = mp_sub_d(a, b, c); +038 +039 /* fix sign */ +040 a->sign = c->sign = MP_NEG; +041 +042 return res; +043 \} +044 +045 /* old number of used digits in c */ +046 oldused = c->used; +047 +048 /* sign always positive */ +049 c->sign = MP_ZPOS; +050 +051 /* source alias */ +052 tmpa = a->dp; +053 +054 /* destination alias */ +055 tmpc = c->dp; +056 +057 /* if a is positive */ +058 if (a->sign == MP_ZPOS) \{ +059 /* add digit, after this we're propagating +060 * the carry. +061 */ +062 *tmpc = *tmpa++ + b; +063 mu = *tmpc >> DIGIT_BIT; +064 *tmpc++ &= MP_MASK; +065 +066 /* now handle rest of the digits */ +067 for (ix = 1; ix < a->used; ix++) \{ +068 *tmpc = *tmpa++ + mu; +069 mu = *tmpc >> DIGIT_BIT; +070 *tmpc++ &= MP_MASK; +071 \} +072 /* set final carry */ +073 ix++; +074 *tmpc++ = mu; +075 +076 /* setup size */ +077 c->used = a->used + 1; +078 \} else \{ +079 /* a was negative and |a| < b */ +080 c->used = 1; +081 +082 /* the result is a single digit */ +083 if (a->used == 1) \{ +084 *tmpc++ = b - a->dp[0]; +085 \} else \{ +086 *tmpc++ = b; +087 \} +088 +089 /* setup count so the clearing of oldused +090 * can fall through correctly +091 */ +092 ix = 1; +093 \} +094 +095 /* now zero to oldused */ +096 while (ix++ < oldused) \{ +097 *tmpc++ = 0; +098 \} +099 mp_clamp(c); +100 +101 return MP_OKAY; +102 \} +103 +\end{alltt} +\end{small} + +Clever use of the letter 't'. + +\subsubsection{Subtraction} +The single digit subtraction algorithm mp\_sub\_d is essentially the same except it uses mp\_sub to subtract the digit from the mp\_int. + +\subsection{Single Digit Multiplication} +Single digit multiplication arises enough in division and radix conversion that it ought to be implement as a special case of the baseline +multiplication algorithm. Essentially this algorithm is a modified version of algorithm s\_mp\_mul\_digs where one of the multiplicands +only has one digit. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_mul\_d}. \\ +\textbf{Input}. mp\_int $a$ and a mp\_digit $b$ \\ +\textbf{Output}. $c = ab$ \\ +\hline \\ +1. $pa \leftarrow a.used$ \\ +2. Grow $c$ to at least $pa + 1$ digits. \\ +3. $oldused \leftarrow c.used$ \\ +4. $c.used \leftarrow pa + 1$ \\ +5. $c.sign \leftarrow a.sign$ \\ +6. $\mu \leftarrow 0$ \\ +7. for $ix$ from $0$ to $pa - 1$ do \\ +\hspace{3mm}7.1 $\hat r \leftarrow \mu + a_{ix}b$ \\ +\hspace{3mm}7.2 $c_{ix} \leftarrow \hat r \mbox{ (mod }\beta\mbox{)}$ \\ +\hspace{3mm}7.3 $\mu \leftarrow \lfloor \hat r / \beta \rfloor$ \\ +8. $c_{pa} \leftarrow \mu$ \\ +9. for $ix$ from $pa + 1$ to $oldused$ do \\ +\hspace{3mm}9.1 $c_{ix} \leftarrow 0$ \\ +10. Clamp excess digits of $c$. \\ +11. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_mul\_d} +\end{figure} +\textbf{Algorithm mp\_mul\_d.} +This algorithm quickly multiplies an mp\_int by a small single digit value. It is specially tailored to the job and has a minimal of overhead. +Unlike the full multiplication algorithms this algorithm does not require any significnat temporary storage or memory allocations. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_mul\_d.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* multiply by a digit */ +018 int +019 mp_mul_d (mp_int * a, mp_digit b, mp_int * c) +020 \{ +021 mp_digit u, *tmpa, *tmpc; +022 mp_word r; +023 int ix, res, olduse; +024 +025 /* make sure c is big enough to hold a*b */ +026 if (c->alloc < a->used + 1) \{ +027 if ((res = mp_grow (c, a->used + 1)) != MP_OKAY) \{ +028 return res; +029 \} +030 \} +031 +032 /* get the original destinations used count */ +033 olduse = c->used; +034 +035 /* set the sign */ +036 c->sign = a->sign; +037 +038 /* alias for a->dp [source] */ +039 tmpa = a->dp; +040 +041 /* alias for c->dp [dest] */ +042 tmpc = c->dp; +043 +044 /* zero carry */ +045 u = 0; +046 +047 /* compute columns */ +048 for (ix = 0; ix < a->used; ix++) \{ +049 /* compute product and carry sum for this term */ +050 r = ((mp_word) u) + ((mp_word)*tmpa++) * ((mp_word)b); +051 +052 /* mask off higher bits to get a single digit */ +053 *tmpc++ = (mp_digit) (r & ((mp_word) MP_MASK)); +054 +055 /* send carry into next iteration */ +056 u = (mp_digit) (r >> ((mp_word) DIGIT_BIT)); +057 \} +058 +059 /* store final carry [if any] */ +060 *tmpc++ = u; +061 +062 /* now zero digits above the top */ +063 while (ix++ < olduse) \{ +064 *tmpc++ = 0; +065 \} +066 +067 /* set used count */ +068 c->used = a->used + 1; +069 mp_clamp(c); +070 +071 return MP_OKAY; +072 \} +\end{alltt} +\end{small} + +In this implementation the destination $c$ may point to the same mp\_int as the source $a$ since the result is written after the digit is +read from the source. This function uses pointer aliases $tmpa$ and $tmpc$ for the digits of $a$ and $c$ respectively. + +\subsection{Single Digit Division} +Like the single digit multiplication algorithm, single digit division is also a fairly common algorithm used in radix conversion. Since the +divisor is only a single digit a specialized variant of the division algorithm can be used to compute the quotient. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_div\_d}. \\ +\textbf{Input}. mp\_int $a$ and a mp\_digit $b$ \\ +\textbf{Output}. $c = \lfloor a / b \rfloor, d = a - cb$ \\ +\hline \\ +1. If $b = 0$ then return(\textit{MP\_VAL}).\\ +2. If $b = 3$ then use algorithm mp\_div\_3 instead. \\ +3. Init $q$ to $a.used$ digits. \\ +4. $q.used \leftarrow a.used$ \\ +5. $q.sign \leftarrow a.sign$ \\ +6. $\hat w \leftarrow 0$ \\ +7. for $ix$ from $a.used - 1$ down to $0$ do \\ +\hspace{3mm}7.1 $\hat w \leftarrow \hat w \beta + a_{ix}$ \\ +\hspace{3mm}7.2 If $\hat w \ge b$ then \\ +\hspace{6mm}7.2.1 $t \leftarrow \lfloor \hat w / b \rfloor$ \\ +\hspace{6mm}7.2.2 $\hat w \leftarrow \hat w \mbox{ (mod }b\mbox{)}$ \\ +\hspace{3mm}7.3 else\\ +\hspace{6mm}7.3.1 $t \leftarrow 0$ \\ +\hspace{3mm}7.4 $q_{ix} \leftarrow t$ \\ +8. $d \leftarrow \hat w$ \\ +9. Clamp excess digits of $q$. \\ +10. $c \leftarrow q$ \\ +11. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_div\_d} +\end{figure} +\textbf{Algorithm mp\_div\_d.} +This algorithm divides the mp\_int $a$ by the single mp\_digit $b$ using an optimized approach. Essentially in every iteration of the +algorithm another digit of the dividend is reduced and another digit of quotient produced. Provided $b < \beta$ the value of $\hat w$ +after step 7.1 will be limited such that $0 \le \lfloor \hat w / b \rfloor < \beta$. + +If the divisor $b$ is equal to three a variant of this algorithm is used which is called mp\_div\_3. It replaces the division by three with +a multiplication by $\lfloor \beta / 3 \rfloor$ and the appropriate shift and residual fixup. In essence it is much like the Barrett reduction +from chapter seven. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_div\_d.c +\vspace{-3mm} +\begin{alltt} +016 +017 static int s_is_power_of_two(mp_digit b, int *p) +018 \{ +019 int x; +020 +021 for (x = 1; x < DIGIT_BIT; x++) \{ +022 if (b == (((mp_digit)1)<dp[0] & ((1<used)) != MP_OKAY) \{ +073 return res; +074 \} +075 +076 q.used = a->used; +077 q.sign = a->sign; +078 w = 0; +079 for (ix = a->used - 1; ix >= 0; ix--) \{ +080 w = (w << ((mp_word)DIGIT_BIT)) | ((mp_word)a->dp[ix]); +081 +082 if (w >= b) \{ +083 t = (mp_digit)(w / b); +084 w -= ((mp_word)t) * ((mp_word)b); +085 \} else \{ +086 t = 0; +087 \} +088 q.dp[ix] = (mp_digit)t; +089 \} +090 +091 if (d != NULL) \{ +092 *d = (mp_digit)w; +093 \} +094 +095 if (c != NULL) \{ +096 mp_clamp(&q); +097 mp_exch(&q, c); +098 \} +099 mp_clear(&q); +100 +101 return res; +102 \} +103 +\end{alltt} +\end{small} + +Like the implementation of algorithm mp\_div this algorithm allows either of the quotient or remainder to be passed as a \textbf{NULL} pointer to +indicate the respective value is not required. This allows a trivial single digit modular reduction algorithm, mp\_mod\_d to be created. + +The division and remainder on lines 44 and @45,%@ can be replaced often by a single division on most processors. For example, the 32-bit x86 based +processors can divide a 64-bit quantity by a 32-bit quantity and produce the quotient and remainder simultaneously. Unfortunately the GCC +compiler does not recognize that optimization and will actually produce two function calls to find the quotient and remainder respectively. + +\subsection{Single Digit Root Extraction} + +Finding the $n$'th root of an integer is fairly easy as far as numerical analysis is concerned. Algorithms such as the Newton-Raphson approximation +(\ref{eqn:newton}) series will converge very quickly to a root for any continuous function $f(x)$. + +\begin{equation} +x_{i+1} = x_i - {f(x_i) \over f'(x_i)} +\label{eqn:newton} +\end{equation} + +In this case the $n$'th root is desired and $f(x) = x^n - a$ where $a$ is the integer of which the root is desired. The derivative of $f(x)$ is +simply $f'(x) = nx^{n - 1}$. Of particular importance is that this algorithm will be used over the integers not over the a more continuous domain +such as the real numbers. As a result the root found can be above the true root by few and must be manually adjusted. Ideally at the end of the +algorithm the $n$'th root $b$ of an integer $a$ is desired such that $b^n \le a$. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_n\_root}. \\ +\textbf{Input}. mp\_int $a$ and a mp\_digit $b$ \\ +\textbf{Output}. $c^b \le a$ \\ +\hline \\ +1. If $b$ is even and $a.sign = MP\_NEG$ return(\textit{MP\_VAL}). \\ +2. $sign \leftarrow a.sign$ \\ +3. $a.sign \leftarrow MP\_ZPOS$ \\ +4. t$2 \leftarrow 2$ \\ +5. Loop \\ +\hspace{3mm}5.1 t$1 \leftarrow $ t$2$ \\ +\hspace{3mm}5.2 t$3 \leftarrow $ t$1^{b - 1}$ \\ +\hspace{3mm}5.3 t$2 \leftarrow $ t$3 $ $\cdot$ t$1$ \\ +\hspace{3mm}5.4 t$2 \leftarrow $ t$2 - a$ \\ +\hspace{3mm}5.5 t$3 \leftarrow $ t$3 \cdot b$ \\ +\hspace{3mm}5.6 t$3 \leftarrow \lfloor $t$2 / $t$3 \rfloor$ \\ +\hspace{3mm}5.7 t$2 \leftarrow $ t$1 - $ t$3$ \\ +\hspace{3mm}5.8 If t$1 \ne $ t$2$ then goto step 5. \\ +6. Loop \\ +\hspace{3mm}6.1 t$2 \leftarrow $ t$1^b$ \\ +\hspace{3mm}6.2 If t$2 > a$ then \\ +\hspace{6mm}6.2.1 t$1 \leftarrow $ t$1 - 1$ \\ +\hspace{6mm}6.2.2 Goto step 6. \\ +7. $a.sign \leftarrow sign$ \\ +8. $c \leftarrow $ t$1$ \\ +9. $c.sign \leftarrow sign$ \\ +10. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_n\_root} +\end{figure} +\textbf{Algorithm mp\_n\_root.} +This algorithm finds the integer $n$'th root of an input using the Newton-Raphson approach. It is partially optimized based on the observation +that the numerator of ${f(x) \over f'(x)}$ can be derived from a partial denominator. That is at first the denominator is calculated by finding +$x^{b - 1}$. This value can then be multiplied by $x$ and have $a$ subtracted from it to find the numerator. This saves a total of $b - 1$ +multiplications by t$1$ inside the loop. + +The initial value of the approximation is t$2 = 2$ which allows the algorithm to start with very small values and quickly converge on the +root. Ideally this algorithm is meant to find the $n$'th root of an input where $n$ is bounded by $2 \le n \le 5$. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_n\_root.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* find the n'th root of an integer +018 * +019 * Result found such that (c)**b <= a and (c+1)**b > a +020 * +021 * This algorithm uses Newton's approximation +022 * x[i+1] = x[i] - f(x[i])/f'(x[i]) +023 * which will find the root in log(N) time where +024 * each step involves a fair bit. This is not meant to +025 * find huge roots [square and cube, etc]. +026 */ +027 int mp_n_root (mp_int * a, mp_digit b, mp_int * c) +028 \{ +029 mp_int t1, t2, t3; +030 int res, neg; +031 +032 /* input must be positive if b is even */ +033 if ((b & 1) == 0 && a->sign == MP_NEG) \{ +034 return MP_VAL; +035 \} +036 +037 if ((res = mp_init (&t1)) != MP_OKAY) \{ +038 return res; +039 \} +040 +041 if ((res = mp_init (&t2)) != MP_OKAY) \{ +042 goto __T1; +043 \} +044 +045 if ((res = mp_init (&t3)) != MP_OKAY) \{ +046 goto __T2; +047 \} +048 +049 /* if a is negative fudge the sign but keep track */ +050 neg = a->sign; +051 a->sign = MP_ZPOS; +052 +053 /* t2 = 2 */ +054 mp_set (&t2, 2); +055 +056 do \{ +057 /* t1 = t2 */ +058 if ((res = mp_copy (&t2, &t1)) != MP_OKAY) \{ +059 goto __T3; +060 \} +061 +062 /* t2 = t1 - ((t1**b - a) / (b * t1**(b-1))) */ +063 +064 /* t3 = t1**(b-1) */ +065 if ((res = mp_expt_d (&t1, b - 1, &t3)) != MP_OKAY) \{ +066 goto __T3; +067 \} +068 +069 /* numerator */ +070 /* t2 = t1**b */ +071 if ((res = mp_mul (&t3, &t1, &t2)) != MP_OKAY) \{ +072 goto __T3; +073 \} +074 +075 /* t2 = t1**b - a */ +076 if ((res = mp_sub (&t2, a, &t2)) != MP_OKAY) \{ +077 goto __T3; +078 \} +079 +080 /* denominator */ +081 /* t3 = t1**(b-1) * b */ +082 if ((res = mp_mul_d (&t3, b, &t3)) != MP_OKAY) \{ +083 goto __T3; +084 \} +085 +086 /* t3 = (t1**b - a)/(b * t1**(b-1)) */ +087 if ((res = mp_div (&t2, &t3, &t3, NULL)) != MP_OKAY) \{ +088 goto __T3; +089 \} +090 +091 if ((res = mp_sub (&t1, &t3, &t2)) != MP_OKAY) \{ +092 goto __T3; +093 \} +094 \} while (mp_cmp (&t1, &t2) != MP_EQ); +095 +096 /* result can be off by a few so check */ +097 for (;;) \{ +098 if ((res = mp_expt_d (&t1, b, &t2)) != MP_OKAY) \{ +099 goto __T3; +100 \} +101 +102 if (mp_cmp (&t2, a) == MP_GT) \{ +103 if ((res = mp_sub_d (&t1, 1, &t1)) != MP_OKAY) \{ +104 goto __T3; +105 \} +106 \} else \{ +107 break; +108 \} +109 \} +110 +111 /* reset the sign of a first */ +112 a->sign = neg; +113 +114 /* set the result */ +115 mp_exch (&t1, c); +116 +117 /* set the sign of the result */ +118 c->sign = neg; +119 +120 res = MP_OKAY; +121 +122 __T3:mp_clear (&t3); +123 __T2:mp_clear (&t2); +124 __T1:mp_clear (&t1); +125 return res; +126 \} +\end{alltt} +\end{small} + +\section{Random Number Generation} + +Random numbers come up in a variety of activities from public key cryptography to simple simulations and various randomized algorithms. Pollard-Rho +factoring for example, can make use of random values as starting points to find factors of a composite integer. In this case the algorithm presented +is solely for simulations and not intended for cryptographic use. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_rand}. \\ +\textbf{Input}. An integer $b$ \\ +\textbf{Output}. A pseudo-random number of $b$ digits \\ +\hline \\ +1. $a \leftarrow 0$ \\ +2. If $b \le 0$ return(\textit{MP\_OKAY}) \\ +3. Pick a non-zero random digit $d$. \\ +4. $a \leftarrow a + d$ \\ +5. for $ix$ from 1 to $d - 1$ do \\ +\hspace{3mm}5.1 $a \leftarrow a \cdot \beta$ \\ +\hspace{3mm}5.2 Pick a random digit $d$. \\ +\hspace{3mm}5.3 $a \leftarrow a + d$ \\ +6. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_rand} +\end{figure} +\textbf{Algorithm mp\_rand.} +This algorithm produces a pseudo-random integer of $b$ digits. By ensuring that the first digit is non-zero the algorithm also guarantees that the +final result has at least $b$ digits. It relies heavily on a third-part random number generator which should ideally generate uniformly all of +the integers from $0$ to $\beta - 1$. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_rand.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* makes a pseudo-random int of a given size */ +018 int +019 mp_rand (mp_int * a, int digits) +020 \{ +021 int res; +022 mp_digit d; +023 +024 mp_zero (a); +025 if (digits <= 0) \{ +026 return MP_OKAY; +027 \} +028 +029 /* first place a random non-zero digit */ +030 do \{ +031 d = ((mp_digit) abs (rand ())); +032 \} while (d == 0); +033 +034 if ((res = mp_add_d (a, d, a)) != MP_OKAY) \{ +035 return res; +036 \} +037 +038 while (digits-- > 0) \{ +039 if ((res = mp_lshd (a, 1)) != MP_OKAY) \{ +040 return res; +041 \} +042 +043 if ((res = mp_add_d (a, ((mp_digit) abs (rand ())), a)) != MP_OKAY) \{ +044 return res; +045 \} +046 \} +047 +048 return MP_OKAY; +049 \} +\end{alltt} +\end{small} + +\section{Formatted Representations} +The ability to emit a radix-$n$ textual representation of an integer is useful for interacting with human parties. For example, the ability to +be given a string of characters such as ``114585'' and turn it into the radix-$\beta$ equivalent would make it easier to enter numbers +into a program. + +\subsection{Reading Radix-n Input} +For the purposes of this text we will assume that a simple lower ASCII map (\ref{fig:ASC}) is used for the values of from $0$ to $63$ to +printable characters. For example, when the character ``N'' is read it represents the integer $23$. The first $16$ characters of the +map are for the common representations up to hexadecimal. After that they match the ``base64'' encoding scheme which are suitable chosen +such that they are printable. While outputting as base64 may not be too helpful for human operators it does allow communication via non binary +mediums. + +\newpage\begin{figure}[here] +\begin{center} +\begin{tabular}{cc|cc|cc|cc} +\hline \textbf{Value} & \textbf{Char} & \textbf{Value} & \textbf{Char} & \textbf{Value} & \textbf{Char} & \textbf{Value} & \textbf{Char} \\ +\hline +0 & 0 & 1 & 1 & 2 & 2 & 3 & 3 \\ +4 & 4 & 5 & 5 & 6 & 6 & 7 & 7 \\ +8 & 8 & 9 & 9 & 10 & A & 11 & B \\ +12 & C & 13 & D & 14 & E & 15 & F \\ +16 & G & 17 & H & 18 & I & 19 & J \\ +20 & K & 21 & L & 22 & M & 23 & N \\ +24 & O & 25 & P & 26 & Q & 27 & R \\ +28 & S & 29 & T & 30 & U & 31 & V \\ +32 & W & 33 & X & 34 & Y & 35 & Z \\ +36 & a & 37 & b & 38 & c & 39 & d \\ +40 & e & 41 & f & 42 & g & 43 & h \\ +44 & i & 45 & j & 46 & k & 47 & l \\ +48 & m & 49 & n & 50 & o & 51 & p \\ +52 & q & 53 & r & 54 & s & 55 & t \\ +56 & u & 57 & v & 58 & w & 59 & x \\ +60 & y & 61 & z & 62 & $+$ & 63 & $/$ \\ +\hline +\end{tabular} +\end{center} +\caption{Lower ASCII Map} +\label{fig:ASC} +\end{figure} + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_read\_radix}. \\ +\textbf{Input}. A string $str$ of length $sn$ and radix $r$. \\ +\textbf{Output}. The radix-$\beta$ equivalent mp\_int. \\ +\hline \\ +1. If $r < 2$ or $r > 64$ return(\textit{MP\_VAL}). \\ +2. $ix \leftarrow 0$ \\ +3. If $str_0 =$ ``-'' then do \\ +\hspace{3mm}3.1 $ix \leftarrow ix + 1$ \\ +\hspace{3mm}3.2 $sign \leftarrow MP\_NEG$ \\ +4. else \\ +\hspace{3mm}4.1 $sign \leftarrow MP\_ZPOS$ \\ +5. $a \leftarrow 0$ \\ +6. for $iy$ from $ix$ to $sn - 1$ do \\ +\hspace{3mm}6.1 Let $y$ denote the position in the map of $str_{iy}$. \\ +\hspace{3mm}6.2 If $str_{iy}$ is not in the map or $y \ge r$ then goto step 7. \\ +\hspace{3mm}6.3 $a \leftarrow a \cdot r$ \\ +\hspace{3mm}6.4 $a \leftarrow a + y$ \\ +7. If $a \ne 0$ then $a.sign \leftarrow sign$ \\ +8. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_read\_radix} +\end{figure} +\textbf{Algorithm mp\_read\_radix.} +This algorithm will read an ASCII string and produce the radix-$\beta$ mp\_int representation of the same integer. A minus symbol ``-'' may precede the +string to indicate the value is negative, otherwise it is assumed to be positive. The algorithm will read up to $sn$ characters from the input +and will stop when it reads a character it cannot map the algorithm stops reading characters from the string. This allows numbers to be embedded +as part of larger input without any significant problem. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_read\_radix.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* read a string [ASCII] in a given radix */ +018 int +019 mp_read_radix (mp_int * a, char *str, int radix) +020 \{ +021 int y, res, neg; +022 char ch; +023 +024 /* make sure the radix is ok */ +025 if (radix < 2 || radix > 64) \{ +026 return MP_VAL; +027 \} +028 +029 /* if the leading digit is a +030 * minus set the sign to negative. +031 */ +032 if (*str == '-') \{ +033 ++str; +034 neg = MP_NEG; +035 \} else \{ +036 neg = MP_ZPOS; +037 \} +038 +039 /* set the integer to the default of zero */ +040 mp_zero (a); +041 +042 /* process each digit of the string */ +043 while (*str) \{ +044 /* if the radix < 36 the conversion is case insensitive +045 * this allows numbers like 1AB and 1ab to represent the same value +046 * [e.g. in hex] +047 */ +048 ch = (char) ((radix < 36) ? toupper (*str) : *str); +049 for (y = 0; y < 64; y++) \{ +050 if (ch == mp_s_rmap[y]) \{ +051 break; +052 \} +053 \} +054 +055 /* if the char was found in the map +056 * and is less than the given radix add it +057 * to the number, otherwise exit the loop. +058 */ +059 if (y < radix) \{ +060 if ((res = mp_mul_d (a, (mp_digit) radix, a)) != MP_OKAY) \{ +061 return res; +062 \} +063 if ((res = mp_add_d (a, (mp_digit) y, a)) != MP_OKAY) \{ +064 return res; +065 \} +066 \} else \{ +067 break; +068 \} +069 ++str; +070 \} +071 +072 /* set the sign only if a != 0 */ +073 if (mp_iszero(a) != 1) \{ +074 a->sign = neg; +075 \} +076 return MP_OKAY; +077 \} +\end{alltt} +\end{small} + +\subsection{Generating Radix-$n$ Output} +Generating radix-$n$ output is fairly trivial with a division and remainder algorithm. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_toradix}. \\ +\textbf{Input}. A mp\_int $a$ and an integer $r$\\ +\textbf{Output}. The radix-$r$ representation of $a$ \\ +\hline \\ +1. If $r < 2$ or $r > 64$ return(\textit{MP\_VAL}). \\ +2. If $a = 0$ then $str = $ ``$0$'' and return(\textit{MP\_OKAY}). \\ +3. $t \leftarrow a$ \\ +4. $str \leftarrow$ ``'' \\ +5. if $t.sign = MP\_NEG$ then \\ +\hspace{3mm}5.1 $str \leftarrow str + $ ``-'' \\ +\hspace{3mm}5.2 $t.sign = MP\_ZPOS$ \\ +6. While ($t \ne 0$) do \\ +\hspace{3mm}6.1 $d \leftarrow t \mbox{ (mod }r\mbox{)}$ \\ +\hspace{3mm}6.2 $t \leftarrow \lfloor t / r \rfloor$ \\ +\hspace{3mm}6.3 Look up $d$ in the map and store the equivalent character in $y$. \\ +\hspace{3mm}6.4 $str \leftarrow str + y$ \\ +7. If $str_0 = $``$-$'' then \\ +\hspace{3mm}7.1 Reverse the digits $str_1, str_2, \ldots str_n$. \\ +8. Otherwise \\ +\hspace{3mm}8.1 Reverse the digits $str_0, str_1, \ldots str_n$. \\ +9. Return(\textit{MP\_OKAY}).\\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_toradix} +\end{figure} +\textbf{Algorithm mp\_toradix.} +This algorithm computes the radix-$r$ representation of an mp\_int $a$. The ``digits'' of the representation are extracted by reducing +successive powers of $\lfloor a / r^k \rfloor$ the input modulo $r$ until $r^k > a$. Note that instead of actually dividing by $r^k$ in +each iteration the quotient $\lfloor a / r \rfloor$ is saved for the next iteration. As a result a series of trivial $n \times 1$ divisions +are required instead of a series of $n \times k$ divisions. One design flaw of this approach is that the digits are produced in the reverse order +(see~\ref{fig:mpradix}). To remedy this flaw the digits must be swapped or simply ``reversed''. + +\begin{figure} +\begin{center} +\begin{tabular}{|c|c|c|} +\hline \textbf{Value of $a$} & \textbf{Value of $d$} & \textbf{Value of $str$} \\ +\hline $1234$ & -- & -- \\ +\hline $123$ & $4$ & ``4'' \\ +\hline $12$ & $3$ & ``43'' \\ +\hline $1$ & $2$ & ``432'' \\ +\hline $0$ & $1$ & ``4321'' \\ +\hline +\end{tabular} +\end{center} +\caption{Example of Algorithm mp\_toradix.} +\label{fig:mpradix} +\end{figure} + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_toradix.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* stores a bignum as a ASCII string in a given radix (2..64) */ +018 int +019 mp_toradix (mp_int * a, char *str, int radix) +020 \{ +021 int res, digs; +022 mp_int t; +023 mp_digit d; +024 char *_s = str; +025 +026 /* check range of the radix */ +027 if (radix < 2 || radix > 64) \{ +028 return MP_VAL; +029 \} +030 +031 /* quick out if its zero */ +032 if (mp_iszero(a) == 1) \{ +033 *str++ = '0'; +034 *str = '\symbol{92}0'; +035 return MP_OKAY; +036 \} +037 +038 if ((res = mp_init_copy (&t, a)) != MP_OKAY) \{ +039 return res; +040 \} +041 +042 /* if it is negative output a - */ +043 if (t.sign == MP_NEG) \{ +044 ++_s; +045 *str++ = '-'; +046 t.sign = MP_ZPOS; +047 \} +048 +049 digs = 0; +050 while (mp_iszero (&t) == 0) \{ +051 if ((res = mp_div_d (&t, (mp_digit) radix, &t, &d)) != MP_OKAY) \{ +052 mp_clear (&t); +053 return res; +054 \} +055 *str++ = mp_s_rmap[d]; +056 ++digs; +057 \} +058 +059 /* reverse the digits of the string. In this case _s points +060 * to the first digit [exluding the sign] of the number] +061 */ +062 bn_reverse ((unsigned char *)_s, digs); +063 +064 /* append a NULL so the string is properly terminated */ +065 *str = '\symbol{92}0'; +066 +067 mp_clear (&t); +068 return MP_OKAY; +069 \} +070 +\end{alltt} +\end{small} + +\chapter{Number Theoretic Algorithms} +This chapter discusses several fundamental number theoretic algorithms such as the greatest common divisor, least common multiple and Jacobi +symbol computation. These algorithms arise as essential components in several key cryptographic algorithms such as the RSA public key algorithm and +various Sieve based factoring algorithms. + +\section{Greatest Common Divisor} +The greatest common divisor of two integers $a$ and $b$, often denoted as $(a, b)$ is the largest integer $k$ that is a proper divisor of +both $a$ and $b$. That is, $k$ is the largest integer such that $0 \equiv a \mbox{ (mod }k\mbox{)}$ and $0 \equiv b \mbox{ (mod }k\mbox{)}$ occur +simultaneously. + +The most common approach (cite) is to reduce one input modulo another. That is if $a$ and $b$ are divisible by some integer $k$ and if $qa + r = b$ then +$r$ is also divisible by $k$. The reduction pattern follows $\left < a , b \right > \rightarrow \left < b, a \mbox{ mod } b \right >$. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{Greatest Common Divisor (I)}. \\ +\textbf{Input}. Two positive integers $a$ and $b$ greater than zero. \\ +\textbf{Output}. The greatest common divisor $(a, b)$. \\ +\hline \\ +1. While ($b > 0$) do \\ +\hspace{3mm}1.1 $r \leftarrow a \mbox{ (mod }b\mbox{)}$ \\ +\hspace{3mm}1.2 $a \leftarrow b$ \\ +\hspace{3mm}1.3 $b \leftarrow r$ \\ +2. Return($a$). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm Greatest Common Divisor (I)} +\label{fig:gcd1} +\end{figure} + +This algorithm will quickly converge on the greatest common divisor since the residue $r$ tends diminish rapidly. However, divisions are +relatively expensive operations to perform and should ideally be avoided. There is another approach based on a similar relationship of +greatest common divisors. The faster approach is based on the observation that if $k$ divides both $a$ and $b$ it will also divide $a - b$. +In particular, we would like $a - b$ to decrease in magnitude which implies that $b \ge a$. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{Greatest Common Divisor (II)}. \\ +\textbf{Input}. Two positive integers $a$ and $b$ greater than zero. \\ +\textbf{Output}. The greatest common divisor $(a, b)$. \\ +\hline \\ +1. While ($b > 0$) do \\ +\hspace{3mm}1.1 Swap $a$ and $b$ such that $a$ is the smallest of the two. \\ +\hspace{3mm}1.2 $b \leftarrow b - a$ \\ +2. Return($a$). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm Greatest Common Divisor (II)} +\label{fig:gcd2} +\end{figure} + +\textbf{Proof} \textit{Algorithm~\ref{fig:gcd2} will return the greatest common divisor of $a$ and $b$.} +The algorithm in figure~\ref{fig:gcd2} will eventually terminate since $b \ge a$ the subtraction in step 1.2 will be a value less than $b$. In other +words in every iteration that tuple $\left < a, b \right >$ decrease in magnitude until eventually $a = b$. Since both $a$ and $b$ are always +divisible by the greatest common divisor (\textit{until the last iteration}) and in the last iteration of the algorithm $b = 0$, therefore, in the +second to last iteration of the algorithm $b = a$ and clearly $(a, a) = a$ which concludes the proof. \textbf{QED}. + +As a matter of practicality algorithm \ref{fig:gcd1} decreases far too slowly to be useful. Specially if $b$ is much larger than $a$ such that +$b - a$ is still very much larger than $a$. A simple addition to the algorithm is to divide $b - a$ by a power of some integer $p$ which does +not divide the greatest common divisor but will divide $b - a$. In this case ${b - a} \over p$ is also an integer and still divisible by +the greatest common divisor. + +However, instead of factoring $b - a$ to find a suitable value of $p$ the powers of $p$ can be removed from $a$ and $b$ that are in common first. +Then inside the loop whenever $b - a$ is divisible by some power of $p$ it can be safely removed. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{Greatest Common Divisor (III)}. \\ +\textbf{Input}. Two positive integers $a$ and $b$ greater than zero. \\ +\textbf{Output}. The greatest common divisor $(a, b)$. \\ +\hline \\ +1. $k \leftarrow 0$ \\ +2. While $a$ and $b$ are both divisible by $p$ do \\ +\hspace{3mm}2.1 $a \leftarrow \lfloor a / p \rfloor$ \\ +\hspace{3mm}2.2 $b \leftarrow \lfloor b / p \rfloor$ \\ +\hspace{3mm}2.3 $k \leftarrow k + 1$ \\ +3. While $a$ is divisible by $p$ do \\ +\hspace{3mm}3.1 $a \leftarrow \lfloor a / p \rfloor$ \\ +4. While $b$ is divisible by $p$ do \\ +\hspace{3mm}4.1 $b \leftarrow \lfloor b / p \rfloor$ \\ +5. While ($b > 0$) do \\ +\hspace{3mm}5.1 Swap $a$ and $b$ such that $a$ is the smallest of the two. \\ +\hspace{3mm}5.2 $b \leftarrow b - a$ \\ +\hspace{3mm}5.3 While $b$ is divisible by $p$ do \\ +\hspace{6mm}5.3.1 $b \leftarrow \lfloor b / p \rfloor$ \\ +6. Return($a \cdot p^k$). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm Greatest Common Divisor (III)} +\label{fig:gcd3} +\end{figure} + +This algorithm is based on the first except it removes powers of $p$ first and inside the main loop to ensure the tuple $\left < a, b \right >$ +decreases more rapidly. The first loop on step two removes powers of $p$ that are in common. A count, $k$, is kept which will present a common +divisor of $p^k$. After step two the remaining common divisor of $a$ and $b$ cannot be divisible by $p$. This means that $p$ can be safely +divided out of the difference $b - a$ so long as the division leaves no remainder. + +In particular the value of $p$ should be chosen such that the division on step 5.3.1 occur often. It also helps that division by $p$ be easy +to compute. The ideal choice of $p$ is two since division by two amounts to a right logical shift. Another important observation is that by +step five both $a$ and $b$ are odd. Therefore, the diffrence $b - a$ must be even which means that each iteration removes one bit from the +largest of the pair. + +\subsection{Complete Greatest Common Divisor} +The algorithms presented so far cannot handle inputs which are zero or negative. The following algorithm can handle all input cases properly +and will produce the greatest common divisor. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_gcd}. \\ +\textbf{Input}. mp\_int $a$ and $b$ \\ +\textbf{Output}. The greatest common divisor $c = (a, b)$. \\ +\hline \\ +1. If $a = 0$ and $b \ne 0$ then \\ +\hspace{3mm}1.1 $c \leftarrow b$ \\ +\hspace{3mm}1.2 Return(\textit{MP\_OKAY}). \\ +2. If $a \ne 0$ and $b = 0$ then \\ +\hspace{3mm}2.1 $c \leftarrow a$ \\ +\hspace{3mm}2.2 Return(\textit{MP\_OKAY}). \\ +3. If $a = b = 0$ then \\ +\hspace{3mm}3.1 $c \leftarrow 1$ \\ +\hspace{3mm}3.2 Return(\textit{MP\_OKAY}). \\ +4. $u \leftarrow \vert a \vert, v \leftarrow \vert b \vert$ \\ +5. $k \leftarrow 0$ \\ +6. While $u.used > 0$ and $v.used > 0$ and $u_0 \equiv v_0 \equiv 0 \mbox{ (mod }2\mbox{)}$ \\ +\hspace{3mm}6.1 $k \leftarrow k + 1$ \\ +\hspace{3mm}6.2 $u \leftarrow \lfloor u / 2 \rfloor$ \\ +\hspace{3mm}6.3 $v \leftarrow \lfloor v / 2 \rfloor$ \\ +7. While $u.used > 0$ and $u_0 \equiv 0 \mbox{ (mod }2\mbox{)}$ \\ +\hspace{3mm}7.1 $u \leftarrow \lfloor u / 2 \rfloor$ \\ +8. While $v.used > 0$ and $v_0 \equiv 0 \mbox{ (mod }2\mbox{)}$ \\ +\hspace{3mm}8.1 $v \leftarrow \lfloor v / 2 \rfloor$ \\ +9. While $v.used > 0$ \\ +\hspace{3mm}9.1 If $\vert u \vert > \vert v \vert$ then \\ +\hspace{6mm}9.1.1 Swap $u$ and $v$. \\ +\hspace{3mm}9.2 $v \leftarrow \vert v \vert - \vert u \vert$ \\ +\hspace{3mm}9.3 While $v.used > 0$ and $v_0 \equiv 0 \mbox{ (mod }2\mbox{)}$ \\ +\hspace{6mm}9.3.1 $v \leftarrow \lfloor v / 2 \rfloor$ \\ +10. $c \leftarrow u \cdot 2^k$ \\ +11. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_gcd} +\end{figure} +\textbf{Algorithm mp\_gcd.} +This algorithm will produce the greatest common divisor of two mp\_ints $a$ and $b$. The algorithm was originally based on Algorithm B of +Knuth \cite[pp. 338]{TAOCPV2} but has been modified to be simpler to explain. In theory it achieves the same asymptotic working time as +Algorithm B and in practice this appears to be true. + +The first three steps handle the cases where either one of or both inputs are zero. If either input is zero the greatest common divisor is the +largest input or zero if they are both zero. If the inputs are not trivial than $u$ and $v$ are assigned the absolute values of +$a$ and $b$ respectively and the algorithm will proceed to reduce the pair. + +Step six will divide out any common factors of two and keep track of the count in the variable $k$. After this step two is no longer a +factor of the remaining greatest common divisor between $u$ and $v$ and can be safely evenly divided out of either whenever they are even. Step +seven and eight ensure that the $u$ and $v$ respectively have no more factors of two. At most only one of the while loops will iterate since +they cannot both be even. + +By step nine both of $u$ and $v$ are odd which is required for the inner logic. First the pair are swapped such that $v$ is equal to +or greater than $u$. This ensures that the subtraction on step 9.2 will always produce a positive and even result. Step 9.3 removes any +factors of two from the difference $u$ to ensure that in the next iteration of the loop both are once again odd. + +After $v = 0$ occurs the variable $u$ has the greatest common divisor of the pair $\left < u, v \right >$ just after step six. The result +must be adjusted by multiplying by the common factors of two ($2^k$) removed earlier. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_gcd.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* Greatest Common Divisor using the binary method */ +018 int mp_gcd (mp_int * a, mp_int * b, mp_int * c) +019 \{ +020 mp_int u, v; +021 int k, u_lsb, v_lsb, res; +022 +023 /* either zero than gcd is the largest */ +024 if (mp_iszero (a) == 1 && mp_iszero (b) == 0) \{ +025 return mp_abs (b, c); +026 \} +027 if (mp_iszero (a) == 0 && mp_iszero (b) == 1) \{ +028 return mp_abs (a, c); +029 \} +030 +031 /* optimized. At this point if a == 0 then +032 * b must equal zero too +033 */ +034 if (mp_iszero (a) == 1) \{ +035 mp_zero(c); +036 return MP_OKAY; +037 \} +038 +039 /* get copies of a and b we can modify */ +040 if ((res = mp_init_copy (&u, a)) != MP_OKAY) \{ +041 return res; +042 \} +043 +044 if ((res = mp_init_copy (&v, b)) != MP_OKAY) \{ +045 goto __U; +046 \} +047 +048 /* must be positive for the remainder of the algorithm */ +049 u.sign = v.sign = MP_ZPOS; +050 +051 /* B1. Find the common power of two for u and v */ +052 u_lsb = mp_cnt_lsb(&u); +053 v_lsb = mp_cnt_lsb(&v); +054 k = MIN(u_lsb, v_lsb); +055 +056 if (k > 0) \{ +057 /* divide the power of two out */ +058 if ((res = mp_div_2d(&u, k, &u, NULL)) != MP_OKAY) \{ +059 goto __V; +060 \} +061 +062 if ((res = mp_div_2d(&v, k, &v, NULL)) != MP_OKAY) \{ +063 goto __V; +064 \} +065 \} +066 +067 /* divide any remaining factors of two out */ +068 if (u_lsb != k) \{ +069 if ((res = mp_div_2d(&u, u_lsb - k, &u, NULL)) != MP_OKAY) \{ +070 goto __V; +071 \} +072 \} +073 +074 if (v_lsb != k) \{ +075 if ((res = mp_div_2d(&v, v_lsb - k, &v, NULL)) != MP_OKAY) \{ +076 goto __V; +077 \} +078 \} +079 +080 while (mp_iszero(&v) == 0) \{ +081 /* make sure v is the largest */ +082 if (mp_cmp_mag(&u, &v) == MP_GT) \{ +083 /* swap u and v to make sure v is >= u */ +084 mp_exch(&u, &v); +085 \} +086 +087 /* subtract smallest from largest */ +088 if ((res = s_mp_sub(&v, &u, &v)) != MP_OKAY) \{ +089 goto __V; +090 \} +091 +092 /* Divide out all factors of two */ +093 if ((res = mp_div_2d(&v, mp_cnt_lsb(&v), &v, NULL)) != MP_OKAY) \{ +094 goto __V; +095 \} +096 \} +097 +098 /* multiply by 2**k which we divided out at the beginning */ +099 if ((res = mp_mul_2d (&u, k, c)) != MP_OKAY) \{ +100 goto __V; +101 \} +102 c->sign = MP_ZPOS; +103 res = MP_OKAY; +104 __V:mp_clear (&u); +105 __U:mp_clear (&v); +106 return res; +107 \} +\end{alltt} +\end{small} + +This function makes use of the macros mp\_iszero and mp\_iseven. The former evaluates to $1$ if the input mp\_int is equivalent to the +integer zero otherwise it evaluates to $0$. The latter evaluates to $1$ if the input mp\_int represents a non-zero even integer otherwise +it evaluates to $0$. Note that just because mp\_iseven may evaluate to $0$ does not mean the input is odd, it could also be zero. The three +trivial cases of inputs are handled on lines 24 through 37. After those lines the inputs are assumed to be non-zero. + +Lines 34 and 40 make local copies $u$ and $v$ of the inputs $a$ and $b$ respectively. At this point the common factors of two +must be divided out of the two inputs. The while loop on line 80 iterates so long as both are even. The local integer $k$ is used to +keep track of how many factors of $2$ are pulled out of both values. It is assumed that the number of factors will not exceed the maximum +value of a C ``int'' data type\footnote{Strictly speaking no array in C may have more than entries than are accessible by an ``int'' so this is not +a limitation.}. + +At this point there are no more common factors of two in the two values. The while loops on lines 80 and 80 remove any independent +factors of two such that both $u$ and $v$ are guaranteed to be an odd integer before hitting the main body of the algorithm. The while loop +on line 80 performs the reduction of the pair until $v$ is equal to zero. The unsigned comparison and subtraction algorithms are used in +place of the full signed routines since both values are guaranteed to be positive and the result of the subtraction is guaranteed to be non-negative. + +\section{Least Common Multiple} +The least common multiple of a pair of integers is their product divided by their greatest common divisor. For two integers $a$ and $b$ the +least common multiple is normally denoted as $[ a, b ]$ and numerically equivalent to ${ab} \over {(a, b)}$. For example, if $a = 2 \cdot 2 \cdot 3 = 12$ +and $b = 2 \cdot 3 \cdot 3 \cdot 7 = 126$ the least common multiple is ${126 \over {(12, 126)}} = {126 \over 6} = 21$. + +The least common multiple arises often in coding theory as well as number theory. If two functions have periods of $a$ and $b$ respectively they will +collide, that is be in synchronous states, after only $[ a, b ]$ iterations. This is why, for example, random number generators based on +Linear Feedback Shift Registers (LFSR) tend to use registers with periods which are co-prime (\textit{e.g. the greatest common divisor is one.}). +Similarly in number theory if a composite $n$ has two prime factors $p$ and $q$ then maximal order of any unit of $\Z/n\Z$ will be $[ p - 1, q - 1] $. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_lcm}. \\ +\textbf{Input}. mp\_int $a$ and $b$ \\ +\textbf{Output}. The least common multiple $c = [a, b]$. \\ +\hline \\ +1. $c \leftarrow (a, b)$ \\ +2. $t \leftarrow a \cdot b$ \\ +3. $c \leftarrow \lfloor t / c \rfloor$ \\ +4. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_lcm} +\end{figure} +\textbf{Algorithm mp\_lcm.} +This algorithm computes the least common multiple of two mp\_int inputs $a$ and $b$. It computes the least common multiple directly by +dividing the product of the two inputs by their greatest common divisor. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_lcm.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* computes least common multiple as |a*b|/(a, b) */ +018 int mp_lcm (mp_int * a, mp_int * b, mp_int * c) +019 \{ +020 int res; +021 mp_int t1, t2; +022 +023 +024 if ((res = mp_init_multi (&t1, &t2, NULL)) != MP_OKAY) \{ +025 return res; +026 \} +027 +028 /* t1 = get the GCD of the two inputs */ +029 if ((res = mp_gcd (a, b, &t1)) != MP_OKAY) \{ +030 goto __T; +031 \} +032 +033 /* divide the smallest by the GCD */ +034 if (mp_cmp_mag(a, b) == MP_LT) \{ +035 /* store quotient in t2 such that t2 * b is the LCM */ +036 if ((res = mp_div(a, &t1, &t2, NULL)) != MP_OKAY) \{ +037 goto __T; +038 \} +039 res = mp_mul(b, &t2, c); +040 \} else \{ +041 /* store quotient in t2 such that t2 * a is the LCM */ +042 if ((res = mp_div(b, &t1, &t2, NULL)) != MP_OKAY) \{ +043 goto __T; +044 \} +045 res = mp_mul(a, &t2, c); +046 \} +047 +048 /* fix the sign to positive */ +049 c->sign = MP_ZPOS; +050 +051 __T: +052 mp_clear_multi (&t1, &t2, NULL); +053 return res; +054 \} +\end{alltt} +\end{small} + +\section{Jacobi Symbol Computation} +To explain the Jacobi Symbol we shall first discuss the Legendre function\footnote{Arrg. What is the name of this?} off which the Jacobi symbol is +defined. The Legendre function computes whether or not an integer $a$ is a quadratic residue modulo an odd prime $p$. Numerically it is +equivalent to equation \ref{eqn:legendre}. + +\begin{equation} +a^{(p-1)/2} \equiv \begin{array}{rl} + -1 & \mbox{if }a\mbox{ is a quadratic non-residue.} \\ + 0 & \mbox{if }a\mbox{ divides }p\mbox{.} \\ + 1 & \mbox{if }a\mbox{ is a quadratic residue}. + \end{array} \mbox{ (mod }p\mbox{)} +\label{eqn:legendre} +\end{equation} + +\textbf{Proof.} \textit{Equation \ref{eqn:legendre} correctly identifies the residue status of an integer $a$ modulo a prime $p$.} +An integer $a$ is a quadratic residue if the following equation has a solution. + +\begin{equation} +x^2 \equiv a \mbox{ (mod }p\mbox{)} +\label{eqn:root} +\end{equation} + +Consider the following equation. + +\begin{equation} +0 \equiv x^{p-1} - 1 \equiv \left \lbrace \left (x^2 \right )^{(p-1)/2} - a^{(p-1)/2} \right \rbrace + \left ( a^{(p-1)/2} - 1 \right ) \mbox{ (mod }p\mbox{)} +\label{eqn:rooti} +\end{equation} + +Whether equation \ref{eqn:root} has a solution or not equation \ref{eqn:rooti} is always true. If $a^{(p-1)/2} - 1 \equiv 0 \mbox{ (mod }p\mbox{)}$ +then the quantity in the braces must be zero. By reduction, + +\begin{eqnarray} +\left (x^2 \right )^{(p-1)/2} - a^{(p-1)/2} \equiv 0 \nonumber \\ +\left (x^2 \right )^{(p-1)/2} \equiv a^{(p-1)/2} \nonumber \\ +x^2 \equiv a \mbox{ (mod }p\mbox{)} +\end{eqnarray} + +As a result there must be a solution to the quadratic equation and in turn $a$ must be a quadratic residue. If $a$ does not divide $p$ and $a$ +is not a quadratic residue then the only other value $a^{(p-1)/2}$ may be congruent to is $-1$ since +\begin{equation} +0 \equiv a^{p - 1} - 1 \equiv (a^{(p-1)/2} + 1)(a^{(p-1)/2} - 1) \mbox{ (mod }p\mbox{)} +\end{equation} +One of the terms on the right hand side must be zero. \textbf{QED} + +\subsection{Jacobi Symbol} +The Jacobi symbol is a generalization of the Legendre function for any odd non prime moduli $p$ greater than 2. If $p = \prod_{i=0}^n p_i$ then +the Jacobi symbol $\left ( { a \over p } \right )$ is equal to the following equation. + +\begin{equation} +\left ( { a \over p } \right ) = \left ( { a \over p_0} \right ) \left ( { a \over p_1} \right ) \ldots \left ( { a \over p_n} \right ) +\end{equation} + +By inspection if $p$ is prime the Jacobi symbol is equivalent to the Legendre function. The following facts\footnote{See HAC \cite[pp. 72-74]{HAC} for +further details.} will be used to derive an efficient Jacobi symbol algorithm. Where $p$ is an odd integer greater than two and $a, b \in \Z$ the +following are true. + +\begin{enumerate} +\item $\left ( { a \over p} \right )$ equals $-1$, $0$ or $1$. +\item $\left ( { ab \over p} \right ) = \left ( { a \over p} \right )\left ( { b \over p} \right )$. +\item If $a \equiv b$ then $\left ( { a \over p} \right ) = \left ( { b \over p} \right )$. +\item $\left ( { 2 \over p} \right )$ equals $1$ if $p \equiv 1$ or $7 \mbox{ (mod }8\mbox{)}$. Otherwise, it equals $-1$. +\item $\left ( { a \over p} \right ) \equiv \left ( { p \over a} \right ) \cdot (-1)^{(p-1)(a-1)/4}$. More specifically +$\left ( { a \over p} \right ) = \left ( { p \over a} \right )$ if $p \equiv a \equiv 1 \mbox{ (mod }4\mbox{)}$. +\end{enumerate} + +Using these facts if $a = 2^k \cdot a'$ then + +\begin{eqnarray} +\left ( { a \over p } \right ) = \left ( {{2^k} \over p } \right ) \left ( {a' \over p} \right ) \nonumber \\ + = \left ( {2 \over p } \right )^k \left ( {a' \over p} \right ) +\label{eqn:jacobi} +\end{eqnarray} + +By fact five, + +\begin{equation} +\left ( { a \over p } \right ) = \left ( { p \over a } \right ) \cdot (-1)^{(p-1)(a-1)/4} +\end{equation} + +Subsequently by fact three since $p \equiv (p \mbox{ mod }a) \mbox{ (mod }a\mbox{)}$ then + +\begin{equation} +\left ( { a \over p } \right ) = \left ( { {p \mbox{ mod } a} \over a } \right ) \cdot (-1)^{(p-1)(a-1)/4} +\end{equation} + +By putting both observations into equation \ref{eqn:jacobi} the following simplified equation is formed. + +\begin{equation} +\left ( { a \over p } \right ) = \left ( {2 \over p } \right )^k \left ( {{p\mbox{ mod }a'} \over a'} \right ) \cdot (-1)^{(p-1)(a'-1)/4} +\end{equation} + +The value of $\left ( {{p \mbox{ mod }a'} \over a'} \right )$ can be found by using the same equation recursively. The value of +$\left ( {2 \over p } \right )^k$ equals $1$ if $k$ is even otherwise it equals $\left ( {2 \over p } \right )$. Using this approach the +factors of $p$ do not have to be known. Furthermore, if $(a, p) = 1$ then the algorithm will terminate when the recursion requests the +Jacobi symbol computation of $\left ( {1 \over a'} \right )$ which is simply $1$. + +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_jacobi}. \\ +\textbf{Input}. mp\_int $a$ and $p$, $a \ge 0$, $p \ge 3$, $p \equiv 1 \mbox{ (mod }2\mbox{)}$ \\ +\textbf{Output}. The Jacobi symbol $c = \left ( {a \over p } \right )$. \\ +\hline \\ +1. If $a = 0$ then \\ +\hspace{3mm}1.1 $c \leftarrow 0$ \\ +\hspace{3mm}1.2 Return(\textit{MP\_OKAY}). \\ +2. If $a = 1$ then \\ +\hspace{3mm}2.1 $c \leftarrow 1$ \\ +\hspace{3mm}2.2 Return(\textit{MP\_OKAY}). \\ +3. $a' \leftarrow a$ \\ +4. $k \leftarrow 0$ \\ +5. While $a'.used > 0$ and $a'_0 \equiv 0 \mbox{ (mod }2\mbox{)}$ \\ +\hspace{3mm}5.1 $k \leftarrow k + 1$ \\ +\hspace{3mm}5.2 $a' \leftarrow \lfloor a' / 2 \rfloor$ \\ +6. If $k \equiv 0 \mbox{ (mod }2\mbox{)}$ then \\ +\hspace{3mm}6.1 $s \leftarrow 1$ \\ +7. else \\ +\hspace{3mm}7.1 $r \leftarrow p_0 \mbox{ (mod }8\mbox{)}$ \\ +\hspace{3mm}7.2 If $r = 1$ or $r = 7$ then \\ +\hspace{6mm}7.2.1 $s \leftarrow 1$ \\ +\hspace{3mm}7.3 else \\ +\hspace{6mm}7.3.1 $s \leftarrow -1$ \\ +8. If $p_0 \equiv a'_0 \equiv 3 \mbox{ (mod }4\mbox{)}$ then \\ +\hspace{3mm}8.1 $s \leftarrow -s$ \\ +9. If $a' \ne 1$ then \\ +\hspace{3mm}9.1 $p' \leftarrow p \mbox{ (mod }a'\mbox{)}$ \\ +\hspace{3mm}9.2 $s \leftarrow s \cdot \mbox{mp\_jacobi}(p', a')$ \\ +10. $c \leftarrow s$ \\ +11. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_jacobi} +\end{figure} +\textbf{Algorithm mp\_jacobi.} +This algorithm computes the Jacobi symbol for an arbitrary positive integer $a$ with respect to an odd integer $p$ greater than three. The algorithm +is based on algorithm 2.149 of HAC \cite[pp. 73]{HAC}. + +Step numbers one and two handle the trivial cases of $a = 0$ and $a = 1$ respectively. Step five determines the number of two factors in the +input $a$. If $k$ is even than the term $\left ( { 2 \over p } \right )^k$ must always evaluate to one. If $k$ is odd than the term evaluates to one +if $p_0$ is congruent to one or seven modulo eight, otherwise it evaluates to $-1$. After the the $\left ( { 2 \over p } \right )^k$ term is handled +the $(-1)^{(p-1)(a'-1)/4}$ is computed and multiplied against the current product $s$. The latter term evaluates to one if both $p$ and $a'$ +are congruent to one modulo four, otherwise it evaluates to negative one. + +By step nine if $a'$ does not equal one a recursion is required. Step 9.1 computes $p' \equiv p \mbox{ (mod }a'\mbox{)}$ and will recurse to compute +$\left ( {p' \over a'} \right )$ which is multiplied against the current Jacobi product. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_jacobi.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* computes the jacobi c = (a | n) (or Legendre if n is prime) +018 * HAC pp. 73 Algorithm 2.149 +019 */ +020 int mp_jacobi (mp_int * a, mp_int * p, int *c) +021 \{ +022 mp_int a1, p1; +023 int k, s, r, res; +024 mp_digit residue; +025 +026 /* if p <= 0 return MP_VAL */ +027 if (mp_cmp_d(p, 0) != MP_GT) \{ +028 return MP_VAL; +029 \} +030 +031 /* step 1. if a == 0, return 0 */ +032 if (mp_iszero (a) == 1) \{ +033 *c = 0; +034 return MP_OKAY; +035 \} +036 +037 /* step 2. if a == 1, return 1 */ +038 if (mp_cmp_d (a, 1) == MP_EQ) \{ +039 *c = 1; +040 return MP_OKAY; +041 \} +042 +043 /* default */ +044 s = 0; +045 +046 /* step 3. write a = a1 * 2**k */ +047 if ((res = mp_init_copy (&a1, a)) != MP_OKAY) \{ +048 return res; +049 \} +050 +051 if ((res = mp_init (&p1)) != MP_OKAY) \{ +052 goto __A1; +053 \} +054 +055 /* divide out larger power of two */ +056 k = mp_cnt_lsb(&a1); +057 if ((res = mp_div_2d(&a1, k, &a1, NULL)) != MP_OKAY) \{ +058 goto __P1; +059 \} +060 +061 /* step 4. if e is even set s=1 */ +062 if ((k & 1) == 0) \{ +063 s = 1; +064 \} else \{ +065 /* else set s=1 if p = 1/7 (mod 8) or s=-1 if p = 3/5 (mod 8) */ +066 residue = p->dp[0] & 7; +067 +068 if (residue == 1 || residue == 7) \{ +069 s = 1; +070 \} else if (residue == 3 || residue == 5) \{ +071 s = -1; +072 \} +073 \} +074 +075 /* step 5. if p == 3 (mod 4) *and* a1 == 3 (mod 4) then s = -s */ +076 if ( ((p->dp[0] & 3) == 3) && ((a1.dp[0] & 3) == 3)) \{ +077 s = -s; +078 \} +079 +080 /* if a1 == 1 we're done */ +081 if (mp_cmp_d (&a1, 1) == MP_EQ) \{ +082 *c = s; +083 \} else \{ +084 /* n1 = n mod a1 */ +085 if ((res = mp_mod (p, &a1, &p1)) != MP_OKAY) \{ +086 goto __P1; +087 \} +088 if ((res = mp_jacobi (&p1, &a1, &r)) != MP_OKAY) \{ +089 goto __P1; +090 \} +091 *c = s * r; +092 \} +093 +094 /* done */ +095 res = MP_OKAY; +096 __P1:mp_clear (&p1); +097 __A1:mp_clear (&a1); +098 return res; +099 \} +\end{alltt} +\end{small} + +As a matter of practicality the variable $a'$ as per the pseudo-code is reprensented by the variable $a1$ since the $'$ symbol is not valid for a C +variable name character. + +The two simple cases of $a = 0$ and $a = 1$ are handled at the very beginning to simplify the algorithm. If the input is non-trivial the algorithm +has to proceed compute the Jacobi. The variable $s$ is used to hold the current Jacobi product. Note that $s$ is merely a C ``int'' data type since +the values it may obtain are merely $-1$, $0$ and $1$. + +After a local copy of $a$ is made all of the factors of two are divided out and the total stored in $k$. Technically only the least significant +bit of $k$ is required, however, it makes the algorithm simpler to follow to perform an addition. In practice an exclusive-or and addition have the same +processor requirements and neither is faster than the other. + +Line 61 through 70 determines the value of $\left ( { 2 \over p } \right )^k$. If the least significant bit of $k$ is zero than +$k$ is even and the value is one. Otherwise, the value of $s$ depends on which residue class $p$ belongs to modulo eight. The value of +$(-1)^{(p-1)(a'-1)/4}$ is compute and multiplied against $s$ on lines 75 through 73. + +Finally, if $a1$ does not equal one the algorithm must recurse and compute $\left ( {p' \over a'} \right )$. + +\textit{-- Comment about default $s$ and such...} + +\section{Modular Inverse} +\label{sec:modinv} +The modular inverse of a number actually refers to the modular multiplicative inverse. Essentially for any integer $a$ such that $(a, p) = 1$ there +exist another integer $b$ such that $ab \equiv 1 \mbox{ (mod }p\mbox{)}$. The integer $b$ is called the multiplicative inverse of $a$ which is +denoted as $b = a^{-1}$. Technically speaking modular inversion is a well defined operation for any finite ring or field not just for rings and +fields of integers. However, the former will be the matter of discussion. + +The simplest approach is to compute the algebraic inverse of the input. That is to compute $b \equiv a^{\Phi(p) - 1}$. If $\Phi(p)$ is the +order of the multiplicative subgroup modulo $p$ then $b$ must be the multiplicative inverse of $a$. The proof of which is trivial. + +\begin{equation} +ab \equiv a \left (a^{\Phi(p) - 1} \right ) \equiv a^{\Phi(p)} \equiv a^0 \equiv 1 \mbox{ (mod }p\mbox{)} +\end{equation} + +However, as simple as this approach may be it has two serious flaws. It requires that the value of $\Phi(p)$ be known which if $p$ is composite +requires all of the prime factors. This approach also is very slow as the size of $p$ grows. + +A simpler approach is based on the observation that solving for the multiplicative inverse is equivalent to solving the linear +Diophantine\footnote{See LeVeque \cite[pp. 40-43]{LeVeque} for more information.} equation. + +\begin{equation} +ab + pq = 1 +\end{equation} + +Where $a$, $b$, $p$ and $q$ are all integers. If such a pair of integers $ \left < b, q \right >$ exist than $b$ is the multiplicative inverse of +$a$ modulo $p$. The extended Euclidean algorithm (Knuth \cite[pp. 342]{TAOCPV2}) can be used to solve such equations provided $(a, p) = 1$. +However, instead of using that algorithm directly a variant known as the binary Extended Euclidean algorithm will be used in its place. The +binary approach is very similar to the binary greatest common divisor algorithm except it will produce a full solution to the Diophantine +equation. + +\subsection{General Case} +\newpage\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_invmod}. \\ +\textbf{Input}. mp\_int $a$ and $b$, $(a, b) = 1$, $p \ge 2$, $0 < a < p$. \\ +\textbf{Output}. The modular inverse $c \equiv a^{-1} \mbox{ (mod }b\mbox{)}$. \\ +\hline \\ +1. If $b \le 0$ then return(\textit{MP\_VAL}). \\ +2. If $b_0 \equiv 1 \mbox{ (mod }2\mbox{)}$ then use algorithm fast\_mp\_invmod. \\ +3. $x \leftarrow \vert a \vert, y \leftarrow b$ \\ +4. If $x_0 \equiv y_0 \equiv 0 \mbox{ (mod }2\mbox{)}$ then return(\textit{MP\_VAL}). \\ +5. $B \leftarrow 0, C \leftarrow 0, A \leftarrow 1, D \leftarrow 1$ \\ +6. While $u.used > 0$ and $u_0 \equiv 0 \mbox{ (mod }2\mbox{)}$ \\ +\hspace{3mm}6.1 $u \leftarrow \lfloor u / 2 \rfloor$ \\ +\hspace{3mm}6.2 If ($A.used > 0$ and $A_0 \equiv 1 \mbox{ (mod }2\mbox{)}$) or ($B.used > 0$ and $B_0 \equiv 1 \mbox{ (mod }2\mbox{)}$) then \\ +\hspace{6mm}6.2.1 $A \leftarrow A + y$ \\ +\hspace{6mm}6.2.2 $B \leftarrow B - x$ \\ +\hspace{3mm}6.3 $A \leftarrow \lfloor A / 2 \rfloor$ \\ +\hspace{3mm}6.4 $B \leftarrow \lfloor B / 2 \rfloor$ \\ +7. While $v.used > 0$ and $v_0 \equiv 0 \mbox{ (mod }2\mbox{)}$ \\ +\hspace{3mm}7.1 $v \leftarrow \lfloor v / 2 \rfloor$ \\ +\hspace{3mm}7.2 If ($C.used > 0$ and $C_0 \equiv 1 \mbox{ (mod }2\mbox{)}$) or ($D.used > 0$ and $D_0 \equiv 1 \mbox{ (mod }2\mbox{)}$) then \\ +\hspace{6mm}7.2.1 $C \leftarrow C + y$ \\ +\hspace{6mm}7.2.2 $D \leftarrow D - x$ \\ +\hspace{3mm}7.3 $C \leftarrow \lfloor C / 2 \rfloor$ \\ +\hspace{3mm}7.4 $D \leftarrow \lfloor D / 2 \rfloor$ \\ +8. If $u \ge v$ then \\ +\hspace{3mm}8.1 $u \leftarrow u - v$ \\ +\hspace{3mm}8.2 $A \leftarrow A - C$ \\ +\hspace{3mm}8.3 $B \leftarrow B - D$ \\ +9. else \\ +\hspace{3mm}9.1 $v \leftarrow v - u$ \\ +\hspace{3mm}9.2 $C \leftarrow C - A$ \\ +\hspace{3mm}9.3 $D \leftarrow D - B$ \\ +10. If $u \ne 0$ goto step 6. \\ +11. If $v \ne 1$ return(\textit{MP\_VAL}). \\ +12. While $C \le 0$ do \\ +\hspace{3mm}12.1 $C \leftarrow C + b$ \\ +13. While $C \ge b$ do \\ +\hspace{3mm}13.1 $C \leftarrow C - b$ \\ +14. $c \leftarrow C$ \\ +15. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\end{figure} +\textbf{Algorithm mp\_invmod.} +This algorithm computes the modular multiplicative inverse of an integer $a$ modulo an integer $b$. This algorithm is a variation of the +extended binary Euclidean algorithm from HAC \cite[pp. 608]{HAC}. It has been modified to only compute the modular inverse and not a complete +Diophantine solution. + +If $b \le 0$ than the modulus is invalid and MP\_VAL is returned. Similarly if both $a$ and $b$ are even then there cannot be a multiplicative +inverse for $a$ and the error is reported. + +The astute reader will observe that steps seven through nine are very similar to the binary greatest common divisor algorithm mp\_gcd. In this case +the other variables to the Diophantine equation are solved. The algorithm terminates when $u = 0$ in which case the solution is + +\begin{equation} +Ca + Db = v +\end{equation} + +If $v$, the greatest common divisor of $a$ and $b$ is not equal to one then the algorithm will report an error as no inverse exists. Otherwise, $C$ +is the modular inverse of $a$. The actual value of $C$ is congruent to, but not necessarily equal to, the ideal modular inverse which should lie +within $1 \le a^{-1} < b$. Step numbers twelve and thirteen adjust the inverse until it is in range. If the original input $a$ is within $0 < a < p$ +then only a couple of additions or subtractions will be required to adjust the inverse. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_invmod.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* hac 14.61, pp608 */ +018 int mp_invmod (mp_int * a, mp_int * b, mp_int * c) +019 \{ +020 mp_int x, y, u, v, A, B, C, D; +021 int res; +022 +023 /* b cannot be negative */ +024 if (b->sign == MP_NEG || mp_iszero(b) == 1) \{ +025 return MP_VAL; +026 \} +027 +028 /* if the modulus is odd we can use a faster routine instead */ +029 if (mp_isodd (b) == 1) \{ +030 return fast_mp_invmod (a, b, c); +031 \} +032 +033 /* init temps */ +034 if ((res = mp_init_multi(&x, &y, &u, &v, +035 &A, &B, &C, &D, NULL)) != MP_OKAY) \{ +036 return res; +037 \} +038 +039 /* x = a, y = b */ +040 if ((res = mp_copy (a, &x)) != MP_OKAY) \{ +041 goto __ERR; +042 \} +043 if ((res = mp_copy (b, &y)) != MP_OKAY) \{ +044 goto __ERR; +045 \} +046 +047 /* 2. [modified] if x,y are both even then return an error! */ +048 if (mp_iseven (&x) == 1 && mp_iseven (&y) == 1) \{ +049 res = MP_VAL; +050 goto __ERR; +051 \} +052 +053 /* 3. u=x, v=y, A=1, B=0, C=0,D=1 */ +054 if ((res = mp_copy (&x, &u)) != MP_OKAY) \{ +055 goto __ERR; +056 \} +057 if ((res = mp_copy (&y, &v)) != MP_OKAY) \{ +058 goto __ERR; +059 \} +060 mp_set (&A, 1); +061 mp_set (&D, 1); +062 +063 top: +064 /* 4. while u is even do */ +065 while (mp_iseven (&u) == 1) \{ +066 /* 4.1 u = u/2 */ +067 if ((res = mp_div_2 (&u, &u)) != MP_OKAY) \{ +068 goto __ERR; +069 \} +070 /* 4.2 if A or B is odd then */ +071 if (mp_isodd (&A) == 1 || mp_isodd (&B) == 1) \{ +072 /* A = (A+y)/2, B = (B-x)/2 */ +073 if ((res = mp_add (&A, &y, &A)) != MP_OKAY) \{ +074 goto __ERR; +075 \} +076 if ((res = mp_sub (&B, &x, &B)) != MP_OKAY) \{ +077 goto __ERR; +078 \} +079 \} +080 /* A = A/2, B = B/2 */ +081 if ((res = mp_div_2 (&A, &A)) != MP_OKAY) \{ +082 goto __ERR; +083 \} +084 if ((res = mp_div_2 (&B, &B)) != MP_OKAY) \{ +085 goto __ERR; +086 \} +087 \} +088 +089 /* 5. while v is even do */ +090 while (mp_iseven (&v) == 1) \{ +091 /* 5.1 v = v/2 */ +092 if ((res = mp_div_2 (&v, &v)) != MP_OKAY) \{ +093 goto __ERR; +094 \} +095 /* 5.2 if C or D is odd then */ +096 if (mp_isodd (&C) == 1 || mp_isodd (&D) == 1) \{ +097 /* C = (C+y)/2, D = (D-x)/2 */ +098 if ((res = mp_add (&C, &y, &C)) != MP_OKAY) \{ +099 goto __ERR; +100 \} +101 if ((res = mp_sub (&D, &x, &D)) != MP_OKAY) \{ +102 goto __ERR; +103 \} +104 \} +105 /* C = C/2, D = D/2 */ +106 if ((res = mp_div_2 (&C, &C)) != MP_OKAY) \{ +107 goto __ERR; +108 \} +109 if ((res = mp_div_2 (&D, &D)) != MP_OKAY) \{ +110 goto __ERR; +111 \} +112 \} +113 +114 /* 6. if u >= v then */ +115 if (mp_cmp (&u, &v) != MP_LT) \{ +116 /* u = u - v, A = A - C, B = B - D */ +117 if ((res = mp_sub (&u, &v, &u)) != MP_OKAY) \{ +118 goto __ERR; +119 \} +120 +121 if ((res = mp_sub (&A, &C, &A)) != MP_OKAY) \{ +122 goto __ERR; +123 \} +124 +125 if ((res = mp_sub (&B, &D, &B)) != MP_OKAY) \{ +126 goto __ERR; +127 \} +128 \} else \{ +129 /* v - v - u, C = C - A, D = D - B */ +130 if ((res = mp_sub (&v, &u, &v)) != MP_OKAY) \{ +131 goto __ERR; +132 \} +133 +134 if ((res = mp_sub (&C, &A, &C)) != MP_OKAY) \{ +135 goto __ERR; +136 \} +137 +138 if ((res = mp_sub (&D, &B, &D)) != MP_OKAY) \{ +139 goto __ERR; +140 \} +141 \} +142 +143 /* if not zero goto step 4 */ +144 if (mp_iszero (&u) == 0) +145 goto top; +146 +147 /* now a = C, b = D, gcd == g*v */ +148 +149 /* if v != 1 then there is no inverse */ +150 if (mp_cmp_d (&v, 1) != MP_EQ) \{ +151 res = MP_VAL; +152 goto __ERR; +153 \} +154 +155 /* if its too low */ +156 while (mp_cmp_d(&C, 0) == MP_LT) \{ +157 if ((res = mp_add(&C, b, &C)) != MP_OKAY) \{ +158 goto __ERR; +159 \} +160 \} +161 +162 /* too big */ +163 while (mp_cmp_mag(&C, b) != MP_LT) \{ +164 if ((res = mp_sub(&C, b, &C)) != MP_OKAY) \{ +165 goto __ERR; +166 \} +167 \} +168 +169 /* C is now the inverse */ +170 mp_exch (&C, c); +171 res = MP_OKAY; +172 __ERR:mp_clear_multi (&x, &y, &u, &v, &A, &B, &C, &D, NULL); +173 return res; +174 \} +\end{alltt} +\end{small} + +\subsubsection{Odd Moduli} + +When the modulus $b$ is odd the variables $A$ and $C$ are fixed and are not required to compute the inverse. In particular by attempting to solve +the Diophantine $Cb + Da = 1$ only $B$ and $D$ are required to find the inverse of $a$. + +The algorithm fast\_mp\_invmod is a direct adaptation of algorithm mp\_invmod with all all steps involving either $A$ or $C$ removed. This +optimization will halve the time required to compute the modular inverse. + +\section{Primality Tests} + +A non-zero integer $a$ is said to be prime if it is not divisible by any other integer excluding one and itself. For example, $a = 7$ is prime +since the integers $2 \ldots 6$ do not evenly divide $a$. By contrast, $a = 6$ is not prime since $a = 6 = 2 \cdot 3$. + +Prime numbers arise in cryptography considerably as they allow finite fields to be formed. The ability to determine whether an integer is prime or +not quickly has been a viable subject in cryptography and number theory for considerable time. The algorithms that will be presented are all +probablistic algorithms in that when they report an integer is composite it must be composite. However, when the algorithms report an integer is +prime the algorithm may be incorrect. + +As will be discussed it is possible to limit the probability of error so well that for practical purposes the probablity of error might as +well be zero. For the purposes of these discussions let $n$ represent the candidate integer of which the primality is in question. + +\subsection{Trial Division} + +Trial division means to attempt to evenly divide a candidate integer by small prime integers. If the candidate can be evenly divided it obviously +cannot be prime. By dividing by all primes $1 < p \le \sqrt{n}$ this test can actually prove whether an integer is prime. However, such a test +would require a prohibitive amount of time as $n$ grows. + +Instead of dividing by every prime, a smaller, more mangeable set of primes may be used instead. By performing trial division with only a subset +of the primes less than $\sqrt{n} + 1$ the algorithm cannot prove if a candidate is prime. However, often it can prove a candidate is not prime. + +The benefit of this test is that trial division by small values is fairly efficient. Specially compared to the other algorithms that will be +discussed shortly. The probability that this approach correctly identifies a composite candidate when tested with all primes upto $q$ is given by +$1 - {1.12 \over ln(q)}$. The graph (\ref{pic:primality}, will be added later) demonstrates the probability of success for the range +$3 \le q \le 100$. + +At approximately $q = 30$ the gain of performing further tests diminishes fairly quickly. At $q = 90$ further testing is generally not going to +be of any practical use. In the case of LibTomMath the default limit $q = 256$ was chosen since it is not too high and will eliminate +approximately $80\%$ of all candidate integers. The constant \textbf{PRIME\_SIZE} is equal to the number of primes in the test base. The +array \_\_prime\_tab is an array of the first \textbf{PRIME\_SIZE} prime numbers. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_prime\_is\_divisible}. \\ +\textbf{Input}. mp\_int $a$ \\ +\textbf{Output}. $c = 1$ if $n$ is divisible by a small prime, otherwise $c = 0$. \\ +\hline \\ +1. for $ix$ from $0$ to $PRIME\_SIZE$ do \\ +\hspace{3mm}1.1 $d \leftarrow n \mbox{ (mod }\_\_prime\_tab_{ix}\mbox{)}$ \\ +\hspace{3mm}1.2 If $d = 0$ then \\ +\hspace{6mm}1.2.1 $c \leftarrow 1$ \\ +\hspace{6mm}1.2.2 Return(\textit{MP\_OKAY}). \\ +2. $c \leftarrow 0$ \\ +3. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_prime\_is\_divisible} +\end{figure} +\textbf{Algorithm mp\_prime\_is\_divisible.} +This algorithm attempts to determine if a candidate integer $n$ is composite by performing trial divisions. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_prime\_is\_divisible.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* determines if an integers is divisible by one +018 * of the first PRIME_SIZE primes or not +019 * +020 * sets result to 0 if not, 1 if yes +021 */ +022 int mp_prime_is_divisible (mp_int * a, int *result) +023 \{ +024 int err, ix; +025 mp_digit res; +026 +027 /* default to not */ +028 *result = MP_NO; +029 +030 for (ix = 0; ix < PRIME_SIZE; ix++) \{ +031 /* what is a mod __prime_tab[ix] */ +032 if ((err = mp_mod_d (a, __prime_tab[ix], &res)) != MP_OKAY) \{ +033 return err; +034 \} +035 +036 /* is the residue zero? */ +037 if (res == 0) \{ +038 *result = MP_YES; +039 return MP_OKAY; +040 \} +041 \} +042 +043 return MP_OKAY; +044 \} +\end{alltt} +\end{small} + +The algorithm defaults to a return of $0$ in case an error occurs. The values in the prime table are all specified to be in the range of a +mp\_digit. The table \_\_prime\_tab is defined in the following file. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_prime\_tab.c +\vspace{-3mm} +\begin{alltt} +016 const mp_digit __prime_tab[] = \{ +017 0x0002, 0x0003, 0x0005, 0x0007, 0x000B, 0x000D, 0x0011, 0x0013, +018 0x0017, 0x001D, 0x001F, 0x0025, 0x0029, 0x002B, 0x002F, 0x0035, +019 0x003B, 0x003D, 0x0043, 0x0047, 0x0049, 0x004F, 0x0053, 0x0059, +020 0x0061, 0x0065, 0x0067, 0x006B, 0x006D, 0x0071, 0x007F, +021 #ifndef MP_8BIT +022 0x0083, +023 0x0089, 0x008B, 0x0095, 0x0097, 0x009D, 0x00A3, 0x00A7, 0x00AD, +024 0x00B3, 0x00B5, 0x00BF, 0x00C1, 0x00C5, 0x00C7, 0x00D3, 0x00DF, +025 0x00E3, 0x00E5, 0x00E9, 0x00EF, 0x00F1, 0x00FB, 0x0101, 0x0107, +026 0x010D, 0x010F, 0x0115, 0x0119, 0x011B, 0x0125, 0x0133, 0x0137, +027 +028 0x0139, 0x013D, 0x014B, 0x0151, 0x015B, 0x015D, 0x0161, 0x0167, +029 0x016F, 0x0175, 0x017B, 0x017F, 0x0185, 0x018D, 0x0191, 0x0199, +030 0x01A3, 0x01A5, 0x01AF, 0x01B1, 0x01B7, 0x01BB, 0x01C1, 0x01C9, +031 0x01CD, 0x01CF, 0x01D3, 0x01DF, 0x01E7, 0x01EB, 0x01F3, 0x01F7, +032 0x01FD, 0x0209, 0x020B, 0x021D, 0x0223, 0x022D, 0x0233, 0x0239, +033 0x023B, 0x0241, 0x024B, 0x0251, 0x0257, 0x0259, 0x025F, 0x0265, +034 0x0269, 0x026B, 0x0277, 0x0281, 0x0283, 0x0287, 0x028D, 0x0293, +035 0x0295, 0x02A1, 0x02A5, 0x02AB, 0x02B3, 0x02BD, 0x02C5, 0x02CF, +036 +037 0x02D7, 0x02DD, 0x02E3, 0x02E7, 0x02EF, 0x02F5, 0x02F9, 0x0301, +038 0x0305, 0x0313, 0x031D, 0x0329, 0x032B, 0x0335, 0x0337, 0x033B, +039 0x033D, 0x0347, 0x0355, 0x0359, 0x035B, 0x035F, 0x036D, 0x0371, +040 0x0373, 0x0377, 0x038B, 0x038F, 0x0397, 0x03A1, 0x03A9, 0x03AD, +041 0x03B3, 0x03B9, 0x03C7, 0x03CB, 0x03D1, 0x03D7, 0x03DF, 0x03E5, +042 0x03F1, 0x03F5, 0x03FB, 0x03FD, 0x0407, 0x0409, 0x040F, 0x0419, +043 0x041B, 0x0425, 0x0427, 0x042D, 0x043F, 0x0443, 0x0445, 0x0449, +044 0x044F, 0x0455, 0x045D, 0x0463, 0x0469, 0x047F, 0x0481, 0x048B, +045 +046 0x0493, 0x049D, 0x04A3, 0x04A9, 0x04B1, 0x04BD, 0x04C1, 0x04C7, +047 0x04CD, 0x04CF, 0x04D5, 0x04E1, 0x04EB, 0x04FD, 0x04FF, 0x0503, +048 0x0509, 0x050B, 0x0511, 0x0515, 0x0517, 0x051B, 0x0527, 0x0529, +049 0x052F, 0x0551, 0x0557, 0x055D, 0x0565, 0x0577, 0x0581, 0x058F, +050 0x0593, 0x0595, 0x0599, 0x059F, 0x05A7, 0x05AB, 0x05AD, 0x05B3, +051 0x05BF, 0x05C9, 0x05CB, 0x05CF, 0x05D1, 0x05D5, 0x05DB, 0x05E7, +052 0x05F3, 0x05FB, 0x0607, 0x060D, 0x0611, 0x0617, 0x061F, 0x0623, +053 0x062B, 0x062F, 0x063D, 0x0641, 0x0647, 0x0649, 0x064D, 0x0653 +054 #endif +055 \}; +\end{alltt} +\end{small} + +Note that there are two possible tables. When an mp\_digit is 7-bits long only the primes upto $127$ may be included, otherwise the primes +upto $1619$ are used. Note that the value of \textbf{PRIME\_SIZE} is a constant dependent on the size of a mp\_digit. + +\subsection{The Fermat Test} +The Fermat test is probably one the oldest tests to have a non-trivial probability of success. It is based on the fact that if $n$ is in +fact prime then $a^{n} \equiv a \mbox{ (mod }n\mbox{)}$ for all $0 < a < n$. The reason being that if $n$ is prime than the order of +the multiplicative sub group is $n - 1$. Any base $a$ must have an order which divides $n - 1$ and as such $a^n$ is equivalent to +$a^1 = a$. + +If $n$ is composite then any given base $a$ does not have to have a period which divides $n - 1$. In which case +it is possible that $a^n \nequiv a \mbox{ (mod }n\mbox{)}$. However, this test is not absolute as it is possible that the order +of a base will divide $n - 1$ which would then be reported as prime. Such a base yields what is known as a Fermat pseudo-prime. Several +integers known as Carmichael numbers will be a pseudo-prime to all valid bases. Fortunately such numbers are extremely rare as $n$ grows +in size. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_prime\_fermat}. \\ +\textbf{Input}. mp\_int $a$ and $b$, $a \ge 2$, $0 < b < a$. \\ +\textbf{Output}. $c = 1$ if $b^a \equiv b \mbox{ (mod }a\mbox{)}$, otherwise $c = 0$. \\ +\hline \\ +1. $t \leftarrow b^a \mbox{ (mod }a\mbox{)}$ \\ +2. If $t = b$ then \\ +\hspace{3mm}2.1 $c = 1$ \\ +3. else \\ +\hspace{3mm}3.1 $c = 0$ \\ +4. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_prime\_fermat} +\end{figure} +\textbf{Algorithm mp\_prime\_fermat.} +This algorithm determines whether an mp\_int $a$ is a Fermat prime to the base $b$ or not. It uses a single modular exponentiation to +determine the result. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_prime\_fermat.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* performs one Fermat test. +018 * +019 * If "a" were prime then b**a == b (mod a) since the order of +020 * the multiplicative sub-group would be phi(a) = a-1. That means +021 * it would be the same as b**(a mod (a-1)) == b**1 == b (mod a). +022 * +023 * Sets result to 1 if the congruence holds, or zero otherwise. +024 */ +025 int mp_prime_fermat (mp_int * a, mp_int * b, int *result) +026 \{ +027 mp_int t; +028 int err; +029 +030 /* default to composite */ +031 *result = MP_NO; +032 +033 /* ensure b > 1 */ +034 if (mp_cmp_d(b, 1) != MP_GT) \{ +035 return MP_VAL; +036 \} +037 +038 /* init t */ +039 if ((err = mp_init (&t)) != MP_OKAY) \{ +040 return err; +041 \} +042 +043 /* compute t = b**a mod a */ +044 if ((err = mp_exptmod (b, a, a, &t)) != MP_OKAY) \{ +045 goto __T; +046 \} +047 +048 /* is it equal to b? */ +049 if (mp_cmp (&t, b) == MP_EQ) \{ +050 *result = MP_YES; +051 \} +052 +053 err = MP_OKAY; +054 __T:mp_clear (&t); +055 return err; +056 \} +\end{alltt} +\end{small} + +\subsection{The Miller-Rabin Test} +The Miller-Rabin (citation) test is another primality test which has tighter error bounds than the Fermat test specifically with sequentially chosen +candidate integers. The algorithm is based on the observation that if $n - 1 = 2^kr$ and if $b^r \nequiv \pm 1$ then after upto $k - 1$ squarings the +value must be equal to $-1$. The squarings are stopped as soon as $-1$ is observed. If the value of $1$ is observed first it means that +some value not congruent to $\pm 1$ when squared equals one which cannot occur if $n$ is prime. + +\begin{figure}[!here] +\begin{small} +\begin{center} +\begin{tabular}{l} +\hline Algorithm \textbf{mp\_prime\_miller\_rabin}. \\ +\textbf{Input}. mp\_int $a$ and $b$, $a \ge 2$, $0 < b < a$. \\ +\textbf{Output}. $c = 1$ if $a$ is a Miller-Rabin prime to the base $a$, otherwise $c = 0$. \\ +\hline +1. $a' \leftarrow a - 1$ \\ +2. $r \leftarrow n1$ \\ +3. $c \leftarrow 0, s \leftarrow 0$ \\ +4. While $r.used > 0$ and $r_0 \equiv 0 \mbox{ (mod }2\mbox{)}$ \\ +\hspace{3mm}4.1 $s \leftarrow s + 1$ \\ +\hspace{3mm}4.2 $r \leftarrow \lfloor r / 2 \rfloor$ \\ +5. $y \leftarrow b^r \mbox{ (mod }a\mbox{)}$ \\ +6. If $y \nequiv \pm 1$ then \\ +\hspace{3mm}6.1 $j \leftarrow 1$ \\ +\hspace{3mm}6.2 While $j \le (s - 1)$ and $y \nequiv a'$ \\ +\hspace{6mm}6.2.1 $y \leftarrow y^2 \mbox{ (mod }a\mbox{)}$ \\ +\hspace{6mm}6.2.2 If $y = 1$ then goto step 8. \\ +\hspace{6mm}6.2.3 $j \leftarrow j + 1$ \\ +\hspace{3mm}6.3 If $y \nequiv a'$ goto step 8. \\ +7. $c \leftarrow 1$\\ +8. Return(\textit{MP\_OKAY}). \\ +\hline +\end{tabular} +\end{center} +\end{small} +\caption{Algorithm mp\_prime\_miller\_rabin} +\end{figure} +\textbf{Algorithm mp\_prime\_miller\_rabin.} +This algorithm performs one trial round of the Miller-Rabin algorithm to the base $b$. It will set $c = 1$ if the algorithm cannot determine +if $b$ is composite or $c = 0$ if $b$ is provably composite. The values of $s$ and $r$ are computed such that $a' = a - 1 = 2^sr$. + +If the value $y \equiv b^r$ is congruent to $\pm 1$ then the algorithm cannot prove if $a$ is composite or not. Otherwise, the algorithm will +square $y$ upto $s - 1$ times stopping only when $y \equiv -1$. If $y^2 \equiv 1$ and $y \nequiv \pm 1$ then the algorithm can report that $a$ +is provably composite. If the algorithm performs $s - 1$ squarings and $y \nequiv -1$ then $a$ is provably composite. If $a$ is not provably +composite then it is \textit{probably} prime. + +\vspace{+3mm}\begin{small} +\hspace{-5.1mm}{\bf File}: bn\_mp\_prime\_miller\_rabin.c +\vspace{-3mm} +\begin{alltt} +016 +017 /* Miller-Rabin test of "a" to the base of "b" as described in +018 * HAC pp. 139 Algorithm 4.24 +019 * +020 * Sets result to 0 if definitely composite or 1 if probably prime. +021 * Randomly the chance of error is no more than 1/4 and often +022 * very much lower. +023 */ +024 int mp_prime_miller_rabin (mp_int * a, mp_int * b, int *result) +025 \{ +026 mp_int n1, y, r; +027 int s, j, err; +028 +029 /* default */ +030 *result = MP_NO; +031 +032 /* ensure b > 1 */ +033 if (mp_cmp_d(b, 1) != MP_GT) \{ +034 return MP_VAL; +035 \} +036 +037 /* get n1 = a - 1 */ +038 if ((err = mp_init_copy (&n1, a)) != MP_OKAY) \{ +039 return err; +040 \} +041 if ((err = mp_sub_d (&n1, 1, &n1)) != MP_OKAY) \{ +042 goto __N1; +043 \} +044 +045 /* set 2**s * r = n1 */ +046 if ((err = mp_init_copy (&r, &n1)) != MP_OKAY) \{ +047 goto __N1; +048 \} +049 +050 /* count the number of least significant bits +051 * which are zero +052 */ +053 s = mp_cnt_lsb(&r); +054 +055 /* now divide n - 1 by 2**s */ +056 if ((err = mp_div_2d (&r, s, &r, NULL)) != MP_OKAY) \{ +057 goto __R; +058 \} +059 +060 /* compute y = b**r mod a */ +061 if ((err = mp_init (&y)) != MP_OKAY) \{ +062 goto __R; +063 \} +064 if ((err = mp_exptmod (b, &r, a, &y)) != MP_OKAY) \{ +065 goto __Y; +066 \} +067 +068 /* if y != 1 and y != n1 do */ +069 if (mp_cmp_d (&y, 1) != MP_EQ && mp_cmp (&y, &n1) != MP_EQ) \{ +070 j = 1; +071 /* while j <= s-1 and y != n1 */ +072 while ((j <= (s - 1)) && mp_cmp (&y, &n1) != MP_EQ) \{ +073 if ((err = mp_sqrmod (&y, a, &y)) != MP_OKAY) \{ +074 goto __Y; +075 \} +076 +077 /* if y == 1 then composite */ +078 if (mp_cmp_d (&y, 1) == MP_EQ) \{ +079 goto __Y; +080 \} +081 +082 ++j; +083 \} +084 +085 /* if y != n1 then composite */ +086 if (mp_cmp (&y, &n1) != MP_EQ) \{ +087 goto __Y; +088 \} +089 \} +090 +091 /* probably prime now */ +092 *result = MP_YES; +093 __Y:mp_clear (&y); +094 __R:mp_clear (&r); +095 __N1:mp_clear (&n1); +096 return err; +097 \} +\end{alltt} +\end{small} + + + + +\backmatter +\appendix +\begin{thebibliography}{ABCDEF} +\bibitem[1]{TAOCPV2} +Donald Knuth, \textit{The Art of Computer Programming}, Third Edition, Volume Two, Seminumerical Algorithms, Addison-Wesley, 1998 + +\bibitem[2]{HAC} +A. Menezes, P. van Oorschot, S. Vanstone, \textit{Handbook of Applied Cryptography}, CRC Press, 1996 + +\bibitem[3]{ROSE} +Michael Rosing, \textit{Implementing Elliptic Curve Cryptography}, Manning Publications, 1999 + +\bibitem[4]{COMBA} +Paul G. Comba, \textit{Exponentiation Cryptosystems on the IBM PC}. IBM Systems Journal 29(4): 526-538 (1990) + +\bibitem[5]{KARA} +A. Karatsuba, Doklay Akad. Nauk SSSR 145 (1962), pp.293-294 + +\bibitem[6]{KARAP} +Andre Weimerskirch and Christof Paar, \textit{Generalizations of the Karatsuba Algorithm for Polynomial Multiplication}, Submitted to Design, Codes and Cryptography, March 2002 + +\bibitem[7]{BARRETT} +Paul Barrett, \textit{Implementing the Rivest Shamir and Adleman Public Key Encryption Algorithm on a Standard Digital Signal Processor}, Advances in Cryptology, Crypto '86, Springer-Verlag. + +\bibitem[8]{MONT} +P.L.Montgomery. \textit{Modular multiplication without trial division}. Mathematics of Computation, 44(170):519-521, April 1985. + +\bibitem[9]{DRMET} +Chae Hoon Lim and Pil Joong Lee, \textit{Generating Efficient Primes for Discrete Log Cryptosystems}, POSTECH Information Research Laboratories + +\bibitem[10]{MMB} +J. Daemen and R. Govaerts and J. Vandewalle, \textit{Block ciphers based on Modular Arithmetic}, State and {P}rogress in the {R}esearch of {C}ryptography, 1993, pp. 80-89 + +\bibitem[11]{RSAREF} +R.L. Rivest, A. Shamir, L. Adleman, \textit{A Method for Obtaining Digital Signatures and Public-Key Cryptosystems} + +\bibitem[12]{DHREF} +Whitfield Diffie, Martin E. Hellman, \textit{New Directions in Cryptography}, IEEE Transactions on Information Theory, 1976 + +\bibitem[13]{IEEE} +IEEE Standard for Binary Floating-Point Arithmetic (ANSI/IEEE Std 754-1985) + +\bibitem[14]{GMP} +GNU Multiple Precision (GMP), \url{http://www.swox.com/gmp/} + +\bibitem[15]{MPI} +Multiple Precision Integer Library (MPI), Michael Fromberger, \url{http://thayer.dartmouth.edu/~sting/mpi/} + +\bibitem[16]{OPENSSL} +OpenSSL Cryptographic Toolkit, \url{http://openssl.org} + +\bibitem[17]{LIP} +Large Integer Package, \url{http://home.hetnet.nl/~ecstr/LIP.zip} + +\end{thebibliography} + +\input{tommath.ind} + +\end{document}