IMB_3.0/0000755014562400001620000000000010446342770011234 5ustar sthealeykapIMB_3.0/src/0000755014562400001620000000000010455533023012014 5ustar sthealeykapIMB_3.0/src/IMB.c0000644014562400001620000002317210455013232012567 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf File: IMB.c Implemented functions: main; ***************************************************************************/ #include "mpi.h" #include "IMB_declare.h" #include "IMB_benchmark.h" #include "IMB_prototypes.h" /**********************************************************************/ int main(int argc, char **argv) /* Input variables: -argc (type int) Number of command line arguments -argv (type char **) List of command line arguments Return value (type int) 0 always */ { struct comm_info C_INFO; /* BASIC SETTINGS STRUCTURE */ struct Bench* BList; /* List of Benchmarks */ struct Bench* Bmark; #ifdef CHECK int NFAIL, NSUCCESS; #endif char *p; int i,j,iter,imod,ierr; int NP,NP_min; int do_it ; int header; int size; int MAXMSG; int x_sample,n_sample; MODES BMODE; double time[MAX_TIMINGS]; Type_Size unit_size; if( (ierr=MPI_Init_thread(&argc,&argv,MPI_THREAD_MULTIPLE,&mpi_thread_environment))!=MPI_SUCCESS) IMB_err_hand(1, ierr); IMB_set_default(&C_INFO); IMB_init_pointers(&C_INFO); if( IMB_basic_input(&C_INFO,&BList,&argc,&argv,&NP_min)<0 ) { /* IMB_3.0: help mode */ if( C_INFO.w_rank==0 ){ IMB_help(); } MPI_Barrier(MPI_COMM_WORLD); IMB_free_all(&C_INFO, &BList); MPI_Finalize(); return 0; } IMB_show_selections(&C_INFO,BList); /* LOOP OVER INDIVIDUAL BENCHMARKS */ j=0; while( (p=BList[j].name) ) { Bmark = BList+j; if( Bmark->RUN_MODES[0].type != BTYPE_INVALID ) { NP=max(1,min(C_INFO.w_num_procs,NP_min)); if( Bmark->RUN_MODES[0].type == SingleTransfer ) { #ifndef MPIIO NP = (min(2,C_INFO.w_num_procs)); #else NP = 1; #endif } do_it = 1; /* LOOP OVER PROCESS NUMBERS */ while ( do_it ) { if ( IMB_valid(&C_INFO,Bmark,NP) ) { if(IMB_init_communicator(&C_INFO,NP)!=0) IMB_err_hand(0,-1); #ifdef MPIIO if(IMB_init_file(&C_INFO,Bmark,NP)!=0) IMB_err_hand(0,-1); #endif /* MINIMAL OUTPUT IF UNIT IS GIVEN */ if (C_INFO.w_rank==0) { if(unit != stdout) printf ("# Running %s; see file \"%s\" for results\n",p,OUTPUT_FILENAME); }; header=1; MAXMSG=1<reduction) MPI_Type_size(C_INFO.red_data_type,&unit_size); else MPI_Type_size(C_INFO.s_data_type,&unit_size); #endif MAXMSG=(1<N_Modes; imod++ ) { BMODE=&Bmark->RUN_MODES[imod]; x_sample = BMODE->AGGREGATE ? MSGSPERSAMPLE : MSGS_NONAGGR; /* July 2002 fix V2.2.1: */ #if (defined EXT || defined MPIIO) if( Bmark->access==no ) x_sample=MSGS_NONAGGR; #endif header=header | (imod > 0); iter=0; size =0; /* LOOP OVER MESSAGE LENGTHS */ while ( (C_INFO.n_lens==0&&size < MAXMSG)|| (C_INFO.n_lens>0 &&iter < C_INFO.n_lens)) { if( iter == 0 ) { if( C_INFO.n_lens>0 ) size=C_INFO.msglen[0]; else size = 0; } else if ( iter == 1 ) { if( C_INFO.n_lens>0 ) size=C_INFO.msglen[1]; else size = ((1<0 ) size=C_INFO.msglen[iter]; else size = min(MAXMSG,size+size); } if( size> MAXMSG ) { if( C_INFO.w_rank==0 ) fprintf(unit,"Attention, msg size %d truncated to %d\n", size,MAXMSG); size = MAXMSG; } size = (size+unit_size-1)/unit_size*unit_size; if ( size>0 ) n_sample =max(1,min(OVERALL_VOL/size,x_sample)); else n_sample = x_sample ; if( Bmark->RUN_MODES[0].type == Sync ) { size=MAXMSG; iter = C_INFO.n_lens; } for(i=0; iBenchmark(&C_INFO,size,n_sample,BMODE,time); /* Synchronization, in particular for idle processes which have to wait in a well defined manner */ MPI_Barrier(MPI_COMM_WORLD); IMB_output (&C_INFO,Bmark,BMODE,header,size,n_sample,time); IMB_close_transfer(&C_INFO, Bmark, size); CHK_BRK; header = 0; iter++; } if( !Bmark->success && C_INFO.w_rank == 0 ) fprintf(unit,"\n\n!!! Benchmark unsuccessful !!!\n\n"); CHK_BRK; } CHK_BRK; } /* CALCULATE THE NUMBER OF PROCESSES FOR NEXT STEP */ if( NP == C_INFO.w_num_procs ) {do_it=0;} else { NP=min(NP+NP,C_INFO.w_num_procs); } #ifdef MPIIO if( Bmark->RUN_MODES[0].type == SingleTransfer ) do_it = 0; #endif CHK_BRK; } } CHK_BRK; j++; } #ifdef CHECK if( C_INFO.w_rank == 0 ) { j=0; NFAIL=0; NSUCCESS=0; while( (p=BList[j].name) ) { Bmark = BList+j; if( Bmark->RUN_MODES[0].type != BTYPE_INVALID ) { Bmark = BList+j; if( !Bmark->success ) NFAIL ++; else NSUCCESS++; } j++; } if( NFAIL == 0 && NSUCCESS>0 ) { fprintf(unit,"\n\n!!!! ALL BENCHMARKS SUCCESSFUL !!!! \n\n"); } else if( NSUCCESS>0 ) { if( NFAIL == 1 ) fprintf(unit,"\n\n!!!! %d BENCHMARK FAILED !!!! \n\n",NFAIL); else fprintf(unit,"\n\n!!!! %d BENCHMARKS FAILED !!!! \n\n",NFAIL); j=0; while( (p=BList[j].name) ) { Bmark = BList+j; if( Bmark->RUN_MODES[0].type != BTYPE_INVALID ) { if( Bmark->success ) fprintf(unit,"%s : Successful\n",p); else fprintf(unit,"%s : FAILED !! \n",p); } j++; } } } #endif IMB_end_msg(&C_INFO); IMB_free_all(&C_INFO, &BList); MPI_Finalize(); return 0; } IMB_3.0/src/IMB_appl_errors.h0000644014562400001620000000702310445541644015215 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf ***************************************************************************/ #ifndef _APPL_ERRORS_H #define _APPL_ERRORS_H #include "mpi.h" /* Define errors of the application */ #define APPL_ERR_MALLOC 10 #define APPL_ERR_INVCASE 20 #define APPL_ERR_OPTIONS 30 #define APPL_ERR_CINFO 40 /* Err-handler*/ void Errors_mpi(MPI_Comm *, int*,...); #define MAX_ERR_LINES 32 struct ERR_HEADER { int n_header; char* Lines[MAX_ERR_LINES]; int err_flag; }; #endif IMB_3.0/src/IMB_benchmark.h0000644014562400001620000001103210445541644014612 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf ***************************************************************************/ #ifndef __Bmark_h__ #define __Bmark_h__ /* Classification of benchmarks */ typedef enum { BTYPE_INVALID=-1, SingleTransfer, ParallelTransfer, Collective, Sync } BTYPES; typedef struct cmode { int AGGREGATE ; /* -1/0/1 for default/NON AGGREGATE/AGGREGATE */ int NONBLOCKING ; /* 0/1 for no/yes */ BTYPES type; } *MODES; #define X_MODES 2 typedef enum { put, get, no } DIRECTION; #ifdef MPIIO typedef enum { nothing=-1,private, explicit, indv_block, indv_cyclic, shared } POSITIONING; #else typedef int POSITIONING; #endif /* Descriptor for benchmarks */ struct Bench { char* name; char** bench_comments; /* Comments from header => Comments.h */ DIRECTION access; int reduction; /* reduction-type y/n */ int N_Modes; struct cmode RUN_MODES[X_MODES]; void (*Benchmark)(struct comm_info* c_info,int size, int n_sample,MODES RUN_MODE,double* time); /* Pointer to function runnning the benchmark */ double scale_time, scale_bw; /* Scaling of timings and bandwidth */ int Ntimes; int success; #ifdef MPIIO POSITIONING fpointer; #endif }; /* IMB_3.0 */ #define LIST_END -2 #define LIST_INVALID -1 #endif IMB_3.0/src/IMB_bnames_ext.h0000644014562400001620000000650010445541644015011 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf ***************************************************************************/ #include "IMB_benchmark.h" /* NAMES OF BENCHMARKS (DEFAULT CASE)*/ char *DEFC[] = { "Window", "Unidir_Get", "Unidir_Put", "Bidir_Get", "Bidir_Put", "Accumulate", NULL }; IMB_3.0/src/IMB_bnames_io.h0000644014562400001620000000772010445541644014625 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf ***************************************************************************/ #include "IMB_benchmark.h" /* NAMES OF BENCHMARKS (DEFAULT CASE)*/ char *DEFC[] = { "S_Write_Indv", "S_IWrite_Indv", "S_Write_Expl", "S_IWrite_Expl", "P_Write_Indv", "P_IWrite_Indv", "P_Write_Shared", "P_IWrite_Shared", "P_Write_Priv", "P_IWrite_Priv", "P_Write_Expl", "P_IWrite_Expl", "C_Write_Indv", "C_IWrite_Indv", "C_Write_Shared", "C_IWrite_Shared", "C_Write_Expl", "C_IWrite_Expl", "S_Read_Indv", "S_IRead_Indv", "S_Read_Expl", "S_IRead_Expl", "P_Read_Indv", "P_IRead_Indv", "P_Read_Shared", "P_IRead_Shared", "P_Read_Priv", "P_IRead_Priv", "P_Read_Expl", "P_IRead_Expl", "C_Read_Indv", "C_IRead_Indv", "C_Read_Shared", "C_IRead_Shared", "C_Read_Expl", "C_IRead_Expl", "Open_Close", NULL }; IMB_3.0/src/IMB_bnames_mpi1.h0000644014562400001620000000666010445541644015066 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf ***************************************************************************/ #include "IMB_benchmark.h" /* NAMES OF BENCHMARKS (DEFAULT CASE)*/ char *DEFC[] = { "PingPong" ,"PingPing" ,"Sendrecv" ,"Exchange" ,"Allreduce" ,"Reduce" ,"Reduce_scatter" ,"Allgather" ,"Allgatherv" ,"Alltoall" ,"Alltoallv" ,"Bcast" ,"Barrier" ,NULL }; IMB_3.0/src/IMB_comments.h0000644014562400001620000001075710445541644014522 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf ***************************************************************************/ #include char * Gral_cmt[] = { NULL }; char * PingPong_cmt[] = { NULL }; char * PingPing_cmt[] = { NULL }; char * Sendrecv_cmt[] = { NULL }; char * Exchange_cmt[] = { NULL }; char * Allreduce_cmt[] = { NULL }; char * Reduce_cmt[] = { NULL }; char * Reduce_scatter_cmt[] = { NULL }; char * Bcast_cmt[] = { NULL }; char * Barrier_cmt[] = { NULL }; char * Allgather_cmt[] = { NULL }; char * Allgatherv_cmt[] = { NULL }; char * Alltoall_cmt[] = { NULL }; char * Alltoallv_cmt[] = { NULL }; char * Unidir_Get_cmt[] = { NULL }; char * Unidir_Put_cmt[] = { NULL }; char * Bidir_Get_cmt[] = { NULL }; char * Bidir_Put_cmt[] = { NULL }; char * Accumulate_cmt[] = { NULL }; char * Window_cmt[] = { NULL }; char* Write_Indv_cmt[] = { NULL }; char* Write_Shared_cmt[] = { NULL }; char* Write_Priv_cmt[] = { NULL }; char* Write_Expl_cmt[] = { NULL }; char* Read_Indv_cmt[] = { NULL }; char* Read_Shared_cmt[] = { NULL }; char* Read_Priv_cmt[] = { NULL }; char* Read_Expl_cmt[] = { NULL }; char* Open_cmt[] = { NULL }; IMB_3.0/src/IMB_comm_info.h0000644014562400001620000001417010445541644014634 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf ***************************************************************************/ #ifndef _COMM_INFO_H #define _COMM_INFO_H #include "IMB_declare.h" #ifdef MPIIO typedef struct { int Locsize; MPI_Offset Offset; int Totalsize;} SPLITTING; #endif struct comm_info { /* Communication information as for MPI-1/2 parts */ int w_num_procs; /* number of procs in COMM_WORLD */ int w_rank; /* rank of actual process in COMM_WORLD */ int NP; /* #processes participating in benchmarks */ int px,py; /* processes are part of px x py topology */ MPI_Comm communicator; /* underlying communicator for benchmark(s) */ int num_procs; /* number of processes in communicator */ int rank; /* rank of actual process in communicator */ MPI_Datatype s_data_type; /* data type of sent data */ MPI_Datatype r_data_type; /* data type of received data */ MPI_Datatype red_data_type;/* data type of reduced data */ MPI_Op op_type; /* operation type */ int pair0, pair1; /* process pair */ int select_tag; /* 0/1 for tag selection off/on */ int select_source; /* 0/1 for sender selection off/on */ void* s_buffer; /* send buffer */ assign_type* s_data; /* assign_type equivalent of s_buffer */ int s_alloc; /* #bytes allocated in s_buffer */ void* r_buffer; /* receive buffer */ assign_type* r_data; /* assign_type equivalent of r_buffer */ int r_alloc; /* #bytes allocated in r_buffer */ int n_lens; /* # of selected lengths by -msglen option */ int* msglen; /* list of " " " */ int group_mode; /* Mode of running groups (<0,0,>0) */ int n_groups; /* No. of independent groups */ int group_no; /* own group index */ int* g_sizes; /* array of group sizes */ int* g_ranks; /* w_ranks constituting the groups */ int* sndcnt; /* send count argument for global ops. */ int* sdispl; /* displacement argument for global ops. */ int* reccnt; /* recv count argument for global ops. */ int* rdispl; /* displacement argument for global ops. */ MPI_Errhandler ERR; #ifdef MPIIO /* FILE INFORMATION */ char* filename; MPI_Comm File_comm; int File_num_procs; int all_io_procs; int File_rank; MPI_File fh; MPI_Datatype etype; Type_Size e_size; MPI_Datatype filetype; SPLITTING split; int amode; MPI_Info info; /* View: */ MPI_Offset disp; char* datarep; MPI_Datatype view; MPI_Errhandler ERRF; #endif #ifdef EXT MPI_Win WIN; MPI_Info info; MPI_Errhandler ERRW; #endif }; #endif IMB_3.0/src/IMB_declare.h0000644014562400001620000001545110454605011014255 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf ***************************************************************************/ #ifndef _DECLARE_H #define _DECLARE_H #include #include #include #include #include #include #include #include "IMB_appl_errors.h" #include "IMB_err_check.h" /* THERE IS INCOSISTENT DEFINITION OF MPI_Type_Size arguments */ typedef int Type_Size; /*correct MPI standard */ /*typedef MPI_Aint Type_Size;*/ /*on SGI, HITACHI SR2201*/ #ifdef MPIIO #include "IMB_settings_io.h" #else #include "IMB_settings.h" #endif #include "IMB_comm_info.h" #define nDEBUG #ifdef DEBUG #define DIAGNOSTICS(text,c_info,buf,loclen,totlen,j_sample,pos) {if(j_sample == 0) show((text),(c_info),(buf),(loclen),(totlen),(j_sample),(pos));} extern FILE* dbg_file; extern char* dbgf_name; #define DBG_I1(text,i1) {fprintf(unit,"%s %d\n",(text),(i1));fflush(unit);} #define DBG_I2(text,i1,i2) {fprintf(unit,"%s %d %d\n",(text),(i1),(i2));fflush(unit);} #define DBG_I3(text,i1,i2,i3) {fprintf(unit,"%s %d %d %d\n",(text),(i1),(i2),(i3));fflush(unit);} #define DBGF_I1(text,i1) {fprintf(dbg_file,"%s %d\n",(text),(i1));fflush(dbg_file);} #define DBGF_I2(text,i1,i2) {fprintf(dbg_file,"%s %d %d\n",(text),(i1),(i2));fflush(dbg_file);} #define DBGF_I3(text,i1,i2,i3) {fprintf(dbg_file,"%s %d %d\n",(text),(i1),(i2),(i3));fflush(dbg_file);} #define DBGF_IARR(text,N,ia)\ {int i; fprintf(dbg_file,"%s ",text);for(i=0; i(b)?(a):(b)) #ifdef BUFFERS_INT #define A_ABS(i) abs((i)) #endif #ifdef BUFFERS_FLOAT #define A_ABS(x) fabs((x)) #endif static int asize = sizeof(assign_type); static int ierr; #define MAX_TIMINGS 2 extern double *all_times; /* STRING FOR OUTPUT */ extern char aux_string[out_fields*ow_format]; /* FORMAT FOR OUTPUT */ extern char format [out_fields*7]; /* I/O unit */ extern FILE* unit; /* Error message headers*/ extern int err_flag; extern void* AUX; extern int AUX_LEN; extern int do_nonblocking; extern double tCPU; /* CPU time for overlap benchmarks */ extern double MFlops; #define TOL 1.e-2 #endif extern int mpi_thread_environment; IMB_3.0/src/IMB_err_check.h0000644014562400001620000000642410445541644014616 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf ***************************************************************************/ #ifndef _ERR_CHECK_H #define _ERR_CHECK_H #ifdef CHECK #define MPI_ERRHAND(ierr) IMB_err_hand(1,ierr) #else #define MPI_ERRHAND(ierr) #endif #endif IMB_3.0/src/IMB_prototypes.h0000644014562400001620000003252610445541644015123 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. ***************************************************************************/ #include "IMB_benchmark.h" /* MPI-1 message passing benchmarks */ void IMB_allgather(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time); void IMB_allgatherv(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time); void IMB_allreduce(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time); void IMB_alltoall(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time); void IMB_alltoallv(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time); void IMB_barrier(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time); void IMB_bcast(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time); void IMB_exchange(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time); void IMB_pingping(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time); void IMB_pingpong(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time); void IMB_reduce(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time); void IMB_reduce_scatter(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time); void IMB_sendrecv(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time); /* MPI-2 onesided communications benchmarks */ #ifdef EXT void IMB_accumulate (struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time); void IMB_bidir_get(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time); void IMB_bidir_put(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time); void IMB_unidir_put (struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time); void IMB_unidir_get (struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time); void IMB_ones_get(struct comm_info* c_info, int s_num, int dest, int r_num, int sender, int size, int n_sample, double* time); void IMB_ones_mget(struct comm_info* c_info, int s_num, int dest, int r_num, int sender, int size, int n_sample, double* time); void IMB_ones_put(struct comm_info* c_info, int s_num, int dest, int r_num, int sender, int size, int n_sample, double* time); void IMB_ones_mput(struct comm_info* c_info, int s_num, int dest, int r_num, int sender, int size, int n_sample, double* time); void IMB_window(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time); void IMB_user_set_info(MPI_Info* opt_info); #endif /* MPI-IO benchmarks */ #ifdef MPIIO void IMB_open_close(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time); void IMB_read_shared(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time); void IMB_read_indv(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time); void IMB_read_expl(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time); void IMB_read_ij(struct comm_info* c_info, int size, POSITIONING pos, BTYPES type, int i_sample, int j_sample, int time_inner, double* time); void IMB_iread_ij(struct comm_info* c_info, int size, POSITIONING pos, BTYPES type, int i_sample, int j_sample, int time_inner, int do_ovrlp, double* time); void IMB_write_shared(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time); void IMB_write_indv(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time); void IMB_write_expl(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time); void IMB_write_ij(struct comm_info* c_info, int size, POSITIONING pos, BTYPES type, int i_sample, int j_sample, int time_inner, double* time); void IMB_iwrite_ij(struct comm_info* c_info, int size, POSITIONING pos, BTYPES type, int i_sample, int j_sample, int time_inner, int do_ovrlp, double* time); void IMB_user_set_info(MPI_Info* opt_info); #endif /* Organizational functions */ int main(int argc, char **argv); int IMB_basic_input(struct comm_info* c_info, struct Bench** P_BList, int *argc, char ***argv, int* NP_min); void IMB_get_rank_portion(int rank, int NP, int size, int unit_size, int* pos1, int* pos2); int IMB_init_communicator(struct comm_info* c_info, int NP); void IMB_set_communicator(struct comm_info *c_info ); int IMB_valid(struct comm_info * c_info, struct Bench* Bmark, int NP); void IMB_set_default(struct comm_info* c_info); #ifdef MPI1 void IMB_get_def_cases(char*** defc, char*** Gcmt); void IMB_set_bmark(struct Bench* Bmark); #endif #ifdef EXT void IMB_get_def_cases(char*** defc, char*** Gcmt); void IMB_set_bmark(struct Bench* Bmark); #endif #ifdef MPIIO void IMB_get_def_cases(char*** defc, char*** Gcmt); void IMB_set_bmark(struct Bench* Bmark); void IMB_init_file_content(void* BUF, int pos1, int pos2); int IMB_init_file(struct comm_info* c_info, struct Bench* Bmark, int NP); void IMB_free_file(struct comm_info * c_info); void IMB_del_file(struct comm_info* c_info); int IMB_open_file(struct comm_info* c_info); void IMB_user_set_info(MPI_Info* opt_info); #endif void IMB_list_names(char* Bname, int** List); void IMB_get_def_index(int* index, char* name); void IMB_construct_blist(struct Bench** P_BList, int n_args, char* name); void IMB_destruct_blist(struct Bench ** P_BList); void IMB_print_blist(struct comm_info * c_info, struct Bench *BList); void IMB_init_transfer(struct comm_info* c_info, struct Bench* Bmark, int size); void IMB_close_transfer (struct comm_info* c_info, struct Bench* Bmark, int size); void IMB_warm_up (struct comm_info* c_info, struct Bench* Bmark, int iter); void IMB_cpu_exploit(float target_secs, int initialize); void IMB_general_info(); void IMB_make_sys_info(); void IMB_end_msg(struct comm_info* c_info ); void IMB_output(struct comm_info* c_info, struct Bench* Bmark, MODES BMODE, int header, int size, int n_sample, double *time); /* New in IMB_3.0 */ void IMB_help(); void IMB_display_times(struct Bench* Bmark, double* tlist, struct comm_info* c_info, int group, int n_sample, int size, int edit_type); void IMB_show_selections(struct comm_info* c_info, struct Bench* BList); void IMB_show_procids(struct comm_info* c_info); void IMB_print_array(int* Array, int N, int disp_N, int M, char* txt, FILE* unit); void IMB_print_int_row(FILE* unit, int* Array, int M); void IMB_print_info(); void IMB_print_headlines(char* h_line); void IMB_edit_format(int n_ints , int n_floats); void IMB_make_line(int li_len); void* IMB_v_alloc(int Len, char* where); void IMB_i_alloc(int** B, int Len, char* where ); void IMB_alloc_buf(struct comm_info* c_info, char* where, int s_len, int r_len); void IMB_alloc_aux(int L, char* where); void IMB_free_aux(); void IMB_v_free(void **B); void IMB_ass_buf(void* buf, int rank, int pos1, int pos2, int value); void IMB_set_buf(struct comm_info* c_info, int selected_rank, int s_pos1, int s_pos2, int r_pos1, int r_pos2); void IMB_init_pointers(struct comm_info *c_info ); void IMB_init_buffers(struct comm_info* c_info, struct Bench* Bmark, int size); void IMB_free_all(struct comm_info* c_info, struct Bench** P_BList); void IMB_del_s_buf(struct comm_info* c_info ); void IMB_del_r_buf(struct comm_info* c_info ); char* IMB_str(char* Bname); void IMB_lwr(char* Bname); int IMB_str_atoi(char s[]); void IMB_str_erase(char* string, int Nblnc); void IMB_err_hand(int ERR_IS_MPI, int ERR_CODE ); void IMB_errors_mpi(MPI_Comm * comm, int* ierr, ...); #ifdef EXT void IMB_errors_win(MPI_Win * WIN, int* ierr, ...); #endif #ifdef MPIIO void IMB_errors_io (MPI_File * fh, int* ierr, ...); #endif void IMB_init_errhand(struct comm_info* c_info); void IMB_set_errhand(struct comm_info* c_info); void IMB_del_errhand(struct comm_info* c_info); void IMB_chk_dadd(void* AUX, int Locsize, int buf_pos, int rank0, int rank1); double IMB_ddiff(assign_type *A, assign_type *B, int len, int *fault_pos); void IMB_show(char* text, struct comm_info* c_info, void* buf, int loclen, int totlen, int j_sample, POSITIONING fpos); void IMB_err_msg(struct comm_info* c_info, char* text, int totsize, int j_sample); void IMB_chk_diff(char* text, struct comm_info* c_info, void* RECEIVED, int buf_pos, int Locsize, int Totalsize, int unit_size, DIRECTION mode, POSITIONING fpos, int n_sample, int j_sample, int source, double* diff ); void IMB_cmp_cat(struct comm_info *c_info, void* RECEIVED, int size, int bufpos, int unit_size, int perm, int* lengths, int*ranks, int* Npos, int *faultpos, double* diff); void IMB_chk_contiguous(struct comm_info *c_info, int* rdispl, int* sizes, double*diff); void IMB_chk_distr(struct comm_info *c_info, int size, int n_sample, int* lengths, int* ranks, int Npos, double *diff); void IMB_chk_contained(void* part, int p_size, void* whole, int w_size, int* pos, int* fpos, double* D, char*msg); long IMB_compute_crc (register char* buf, register int size); IMB_3.0/src/IMB_settings.h0000644014562400001620000001261110445541644014524 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf ***************************************************************************/ #ifndef _SETTINGS_H #define _SETTINGS_H /* IMB settings definitions There are two scenarios to run IMB IMB_STANDARD: "Mandatory" settings IMB_OPTIONAL: The user can change the settings, in order to extend the table of benchmark results. Changeable are only a few crucial parameters for IMB. Overall, at most 8 preprocessor varibales can bet set in order to control IMB. These are - IMB_OPTIONAL (has to be set when user optional settings are to be activated) - MINMSGLOG (second smallest data transfer size is 2^MINMSGLOG (the smallest always being 0)) - MAXMSGLOG (largest message size is 2^MAXMSGLOG) - MSGSPERSAMPLE (max. repetition count) - MSGS_NONAGGR ( " for non aggregate benchmarks) - OVERALL_VOL (for all sizes < OVERALL_VOL, the repetition count is eventually reduced so that not more than OVERALL_VOL bytes overall are processed. This avoids unnecessary repetitions for large message sizes. Finally, the real repetition count for message size X is MSGPERSAMPLE (X=0), min(MSGSPERSAMPLE,max(1,OVERALL_VOL/X)) (X>0) NOTE: OVERALL_VOL does NOT restrict the size of the max. data transfer. 2^MAXMSGLOG is the largest size, independent of OVERALL_VOL ) - N_WARMUP Number of "Warmup" sweeps (see the documentation) - N_BARR Number of MPI_Barrier for synchronization - TARGET_CPU_SECS CPU seconds (as float) to run concurrent with nonblocking benchmarks */ #ifdef IMB_OPTIONAL #else /* DON'T change anything below here !! */ #define MINMSGLOG 0 #define MAXMSGLOG 22 #define MSGSPERSAMPLE 1000 #define MSGS_NONAGGR 100 #define OVERALL_VOL 40*1048576 #define N_WARMUP 2 #define N_BARR 2 #define TARGET_CPU_SECS 0.01 #endif #define BUFFERS_FLOAT /* How to set communications buffers for process rank, index i */ #ifdef BUFFERS_INT typedef int assign_type ; #define BUF_VALUE(rank,i) 10000000*(1+rank)+i%10000000 #endif #ifdef BUFFERS_FLOAT typedef float assign_type ; #define BUF_VALUE(rank,i) (0.1*((rank)+1)+(float)((i))) #endif #endif IMB_3.0/src/IMB_settings_io.h0000644014562400001620000001312210445541644015211 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf ***************************************************************************/ #ifndef _SETTINGS_H #define _SETTINGS_H /* IMB settings definitions There are two scenarios to run IMB IMB_STANDARD: "Mandatory" settings IMB_OPTIONAL: The user can change the settings, in order to extend the table of benchmark results. Changeable are only a few crucial parameters for IMB. Overall, at most 8 preprocessor varibales can bet set in order to control IMB. These are - IMB_OPTIONAL (has to be set when user optional settings are to be activated) - MINMSGLOG (second smallest data transfer size is 2^MINMSGLOG (the smallest always being 0)) - MAXMSGLOG (largest data size is 2^MAXMSGLOG) - MSGSPERSAMPLE (max. repetition count) - MSGS_NONAGGR ( " for non aggregate benchmarks) - OVERALL_VOL (for all sizes < OVERALL_VOL, the repetition count is eventually reduced so that not more than OVERALL_VOL bytes overall are processed. This avoids unnecessary repetitions for large message sizes. Finally, the real repetition count for message size X is MSGSPERSAMPLE (X=0), min(MSGPERSAMPLE,max(1,OVERALL_VOL/X)) (X>0) NOTE: OVERALL_VOL does NOT restrict the size of the max. data transfer. 2^MAXMSGLOG is the largest size, independent of OVERALL_VOL. ) - N_BARR Number of MPI_Barrier for synchronization - TARGET_CPU_SECS CPU seconds (as float) to run concurrent with nonblocking benchmarks In any case the user has to select the variable FILENAME which specifies the name of input/output file ("recycled" for all benchmarks; if one separate file is opened on each process, an index _ will be appended to the filename) */ #define FILENAME "IMB_out" #ifdef IMB_OPTIONAL #else /* DON'T change anything below here !! */ #define MINMSGLOG 0 #define MAXMSGLOG 24 #define MSGSPERSAMPLE 50 #define MSGS_NONAGGR 10 #define OVERALL_VOL 16*1048576 #define TARGET_CPU_SECS 0.1 /* unit seconds */ #define N_BARR 2 #endif #define BUFFERS_INT /* How to set communications buffers for process rank, index i */ #ifdef BUFFERS_INT typedef int assign_type ; #define BUF_VALUE(rank,i) 10000000*(1+rank)+i%10000000 #endif #ifdef BUFFERS_FLOAT typedef float assign_type ; #define BUF_VALUE(rank,i) (0.1*((rank)+1)+(float)((i))) #endif #endif IMB_3.0/src/IMB_allgather.c0000644014562400001620000001252510455013232014612 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf File: IMB_allgather.c Implemented functions: IMB_allgather; ***************************************************************************/ #include "IMB_declare.h" #include "IMB_benchmark.h" #include "IMB_prototypes.h" /*******************************************************************************/ void IMB_allgather(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) /* MPI-1 benchmark kernel Benchmarks MPI_Allgather Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) (only MPI-2 case: see [1]) Output variables: -time (type double*) Timing result per sample */ { double t1, t2; int i; Type_Size s_size,r_size; int s_num, r_num; #ifdef CHECK defect=0.; #endif ierr = 0; /* GET SIZE OF DATA TYPE */ MPI_Type_size(c_info->s_data_type,&s_size); MPI_Type_size(c_info->r_data_type,&r_size); if ((s_size!=0) && (r_size!=0)) { s_num=size/s_size; r_num=size/r_size; } if(c_info->rank!=-1) { for(i=0; icommunicator); t1 = MPI_Wtime(); for(i=0;i< n_sample;i++) { ierr = MPI_Allgather(c_info->s_buffer,s_num,c_info->s_data_type, c_info->r_buffer,r_num,c_info->r_data_type, c_info->communicator); MPI_ERRHAND(ierr); CHK_DIFF("Allgather",c_info, c_info->r_buffer, 0, 0, c_info->num_procs*size, 1, put, 0, n_sample, i, -2, &defect); } t2 = MPI_Wtime(); *time=(t2 - t1)/n_sample; } else { *time = 0.; } } IMB_3.0/src/IMB_allgatherv.c0000644014562400001620000001313110455013232014772 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf File: IMB_allgatherv.c Implemented functions: IMB_allgatherv; ***************************************************************************/ #include "IMB_declare.h" #include "IMB_benchmark.h" #include "IMB_prototypes.h" /*******************************************************************************/ void IMB_allgatherv(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) /* MPI-1 benchmark kernel Benchmarks MPI_Allgatherv Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) (only MPI-2 case: see [1]) Output variables: -time (type double*) Timing result per sample */ { double t1, t2; int i; Type_Size s_size,r_size; int s_num, r_num; #ifdef CHECK defect=0.; #endif ierr = 0; /* GET SIZE OF DATA TYPE */ MPI_Type_size(c_info->s_data_type,&s_size); MPI_Type_size(c_info->r_data_type,&r_size); if ((s_size!=0) && (r_size!=0)) { s_num=size/s_size; r_num=size/r_size; } /* INITIALIZATION OF DISPLACEMENT and RECEIVE COUNTS */ for (i=0;inum_procs ;i++) { c_info->rdispl[i] = r_num*i; c_info->reccnt[i] = r_num; } if(c_info->rank!=-1) { for(i=0; icommunicator); t1 = MPI_Wtime(); for(i=0;i< n_sample;i++) { ierr = MPI_Allgatherv(c_info->s_buffer,s_num,c_info->s_data_type, c_info->r_buffer,c_info->reccnt,c_info->rdispl, c_info->r_data_type, c_info->communicator); MPI_ERRHAND(ierr); CHK_DIFF("Allgatherv",c_info, c_info->r_buffer, 0, 0, c_info->num_procs*size, 1, put, 0, n_sample, i, -2, &defect); } t2 = MPI_Wtime(); *time=(t2 - t1)/n_sample; } else { *time = 0.; } } IMB_3.0/src/IMB_allreduce.c0000644014562400001620000001231510455013232014604 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. ********************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf File: IMB_allreduce.c Implemented functions: IMB_allreduce; ***************************************************************************/ #include "IMB_declare.h" #include "IMB_benchmark.h" #include "IMB_prototypes.h" /*******************************************************************************/ void IMB_allreduce(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) /* MPI-1 benchmark kernel Benchmarks MPI_Allreduce Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) (only MPI-2 case: see [1]) Output variables: -time (type double*) Timing result per sample */ { double t1, t2; int i; Type_Size s_size; int s_num; #ifdef CHECK defect=0.; #endif ierr = 0; /* GET SIZE OF DATA TYPE */ MPI_Type_size(c_info->red_data_type,&s_size); if (s_size!=0) s_num=size/s_size; if(c_info->rank!=-1) { for(i=0; icommunicator); t1 = MPI_Wtime(); for(i=0;i< n_sample;i++) { ierr = MPI_Allreduce(c_info->s_buffer,c_info->r_buffer,s_num, c_info->red_data_type,c_info->op_type, c_info->communicator); MPI_ERRHAND(ierr); CHK_DIFF("Allreduce",c_info, c_info->r_buffer, 0, size, size, asize, put, 0, n_sample, i, -1, &defect); } t2 = MPI_Wtime(); *time=(t2 - t1)/n_sample; } else { *time = 0.; } } IMB_3.0/src/IMB_alltoall.c0000644014562400001620000001255210455013232014453 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf File: IMB_alltoall.c Implemented functions: IMB_alltoall; ***************************************************************************/ #include "IMB_declare.h" #include "IMB_benchmark.h" #include "IMB_prototypes.h" /*******************************************************************************/ void IMB_alltoall(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) /* MPI-1 benchmark kernel Benchmarks MPI_Alltoall Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) (only MPI-2 case: see [1]) Output variables: -time (type double*) Timing result per sample */ { double t1, t2; int i; Type_Size s_size,r_size; int s_num, r_num; #ifdef CHECK defect=0.; #endif ierr = 0; /* GET SIZE OF DATA TYPE */ MPI_Type_size(c_info->s_data_type,&s_size); MPI_Type_size(c_info->r_data_type,&r_size); if ((s_size!=0) && (r_size!=0)) { s_num=size/s_size; r_num=size/r_size; } if(c_info->rank!=-1) { for(i=0; icommunicator); t1 = MPI_Wtime(); for(i=0;i< n_sample;i++) { ierr = MPI_Alltoall(c_info->s_buffer,s_num,c_info->s_data_type, c_info->r_buffer,r_num,c_info->r_data_type, c_info->communicator); MPI_ERRHAND(ierr); CHK_DIFF("Alltoall",c_info, c_info->r_buffer, c_info->rank*size, 0, c_info->num_procs*size, 1, put, 0, n_sample, i, -2, &defect); } t2 = MPI_Wtime(); *time=(t2 - t1)/n_sample; } else { *time = 0.; } } IMB_3.0/src/IMB_alltoallv.c0000644014562400001620000001334610455013232014643 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf File: IMB_alltoallv.c Implemented functions: IMB_alltoallv; ***************************************************************************/ #include "IMB_declare.h" #include "IMB_benchmark.h" #include "IMB_prototypes.h" /*******************************************************************************/ void IMB_alltoallv(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) /* MPI-1 benchmark kernel Benchmarks MPI_Alltoallv Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) (only MPI-2 case: see [1]) Output variables: -time (type double*) Timing result per sample */ { double t1, t2; int i; Type_Size s_size,r_size; int s_num, r_num; #ifdef CHECK defect=0.; #endif ierr = 0; /* GET SIZE OF DATA TYPE */ MPI_Type_size(c_info->s_data_type,&s_size); MPI_Type_size(c_info->r_data_type,&r_size); if ((s_size!=0) && (r_size!=0)) { s_num=size/s_size; r_num=size/r_size; } /* INITIALIZATION OF DISPLACEMENT and SEND/RECEIVE COUNTS */ for (i=0;inum_procs ;i++) { c_info->sdispl[i] = s_num*i; c_info->sndcnt[i] = s_num; c_info->rdispl[i] = r_num*i; c_info->reccnt[i] = r_num; } if(c_info->rank!=-1) { for(i=0; icommunicator); t1 = MPI_Wtime(); for(i=0;i< n_sample;i++) { ierr = MPI_Alltoallv(c_info->s_buffer,c_info->sndcnt,c_info->sdispl, c_info->s_data_type, c_info->r_buffer,c_info->reccnt,c_info->rdispl, c_info->r_data_type, c_info->communicator); MPI_ERRHAND(ierr); CHK_DIFF("Alltoallv",c_info, c_info->r_buffer, c_info->rank*size, 0, c_info->num_procs*size, 1, put, 0, n_sample, i, -2, &defect); } t2 = MPI_Wtime(); *time=(t2 - t1)/n_sample; } else { *time = 0.; } } IMB_3.0/src/IMB_barrier.c0000644014562400001620000001131210455013232014266 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf File: IMB_barrier.c Implemented functions: IMB_barrier; ***************************************************************************/ #include "IMB_declare.h" #include "IMB_benchmark.h" #include "IMB_prototypes.h" /*************************************************************************/ void IMB_barrier(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) /* MPI-1 benchmark kernel Benchmarks MPI_Barrier Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) (only MPI-2 case: see [1]) Output variables: -time (type double*) Timing result per sample */ { double t1, t2; int i; ierr = 0; if(c_info->rank!=-1) { for(i=0; icommunicator); t1 = MPI_Wtime(); for(i=0;i< n_sample;i++) { ierr= MPI_Barrier(c_info->communicator); MPI_ERRHAND(ierr); } t2 = MPI_Wtime(); *time=(t2 - t1)/(n_sample); } else { *time = 0.; } } IMB_3.0/src/IMB_bcast.c0000644014562400001620000001246210455013232013743 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf File: IMB_bcast.c Implemented functions: IMB_bcast; ***************************************************************************/ #include "IMB_declare.h" #include "IMB_benchmark.h" #include "IMB_prototypes.h" /*************************************************************************/ void IMB_bcast(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) /* MPI-1 benchmark kernel Benchmarks MPI_Bcast Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) (only MPI-2 case: see [1]) Output variables: -time (type double*) Timing result per sample */ { double t1, t2; int i,i1; Type_Size s_size; int s_num; void* bc_buf; #ifdef CHECK defect=0.; #endif ierr = 0; /* GET SIZE OF DATA TYPE */ MPI_Type_size(c_info->s_data_type,&s_size); if (s_size!=0) s_num=size/s_size; if(c_info->rank!=-1) { i1=0; for(i=0; icommunicator); t1 = MPI_Wtime(); for(i=0;i< n_sample;i++) { /* Provide that s_buffer is not overwritten */ bc_buf = (i1 == c_info->rank) ? c_info->s_buffer : c_info->r_buffer; ierr= MPI_Bcast(bc_buf,s_num,c_info->s_data_type, i1,c_info->communicator); MPI_ERRHAND(ierr); CHK_DIFF("Allgather",c_info, bc_buf, 0, size, size, 1, put, 0, n_sample, i, i1, &defect); /* CHANGE THE ROOT NODE */ i1=(++i1)%c_info->num_procs; } t2 = MPI_Wtime(); *time=(t2 - t1)/(n_sample); } else { *time = 0.; } } IMB_3.0/src/IMB_benchlist.c0000644014562400001620000002444110455013232014622 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf File: IMB_benchlist.c Implemented functions: IMB_list_names; IMB_get_def_index; IMB_construct_blist; IMB_destruct_blist; IMB_print_blist; ***************************************************************************/ #include #include "IMB_declare.h" #include "IMB_benchmark.h" #include "IMB_prototypes.h" char * NIL_COMMENT[] ={NULL}; void IMB_list_names(char* Bname, int** List) /* Input variables: -Bname (type char*) Input benchmark name (or "all" for all available benchmarks) In/out variables: -List (type int**) Auxiliary list of internal numbering for input benchmark(s) */ { char** def_cases, **General_cmt; IMB_get_def_cases(&def_cases,&General_cmt); if( !strcmp(Bname,"all") ) { int Ndeflt=-1, n; while ( def_cases[++Ndeflt] ); IMB_i_alloc(List, Ndeflt+1,"List_Names"); for ( n=0; n=0 ; plc++ ) */ for( plc=0; List[plc]!=LIST_END ; plc++ ) { Bmark = (*P_BList)+n_cases; /* IMB_3.0 */ if ( List[plc]>=0 ) { Bmark->name = IMB_str(def_cases[List[plc]]); } else { Bmark->name = IMB_str(Bname); } IMB_lwr(Bmark->name); Bmark->bench_comments = &NIL_COMMENT[0]; Bmark->scale_time = 1.0; Bmark->scale_bw = 1.0; Bmark->success = 1; IMB_set_bmark(Bmark); /* IMB_3.0 if( Bmark->RUN_MODES[0].type == BTYPE_INVALID ) strcpy(Bmark->name,name); */ n_cases++; } (*P_BList)[n_cases].name=NULL; free(Bname); free (List); } void IMB_destruct_blist(struct Bench ** P_BList) /* Completely destructs benchmark list In/out variables: -P_BList (type struct Bench **) (For explanation of struct Bench type: describes all aspects of modes of a benchmark; see [1] for more information) All substructures plus list itself are free-d and NULL initialized */ { /**************************************************************** Freeing of the Benchmark list *****************************************************************/ /* IMB_3.0: take care of empty BList */ if( *P_BList != (struct Bench*)NULL ){ int i; i=0; while( (*P_BList)[i].name ) { free ((*P_BList)[i++].name); } free(*P_BList); } } void IMB_print_blist(struct comm_info * c_info, struct Bench *BList) /* Displays requested benchmark scenario on stdout Input variables: -c_info (type struct comm_info *) Collection of all base data for MPI; see [1] for more information -BList (type struct Bench *) (For explanation of struct Bench type: describes all aspects of modes of a benchmark; see [1] for more information) */ { int j, ninvalid; char*nn,*cmt; char** def_cases, **General_cmt; IMB_get_def_cases(&def_cases, &General_cmt); if( General_cmt[0] != NULL ) { fprintf(unit,"# Remarks on the current Version:\n\n"); j=0; while ( (nn=General_cmt[j++]) ) fprintf(unit,"# %s\n",nn); } j=0; ninvalid=0; while( BList[j].name ) { if( BList[j].RUN_MODES[0].type == BTYPE_INVALID ) { ninvalid++; if( ninvalid==1 ) fprintf(unit,"\n# Attention, invalid benchmark name(s):\n"); fprintf(unit,"# %s\n",BList[j].name); free (BList[j].name); BList[j].name = IMB_str(""); } j++; } /* IMB_3.0 */ if( ninvalid>0 ) { fprintf(unit,"\n# List of valid benchmarks:\n#\n"); int i=0; while( def_cases[i] ){fprintf(unit,"# %s\n",def_cases[i++]);} } if( ninvalid < j) { fprintf(unit,"\n# List of Benchmarks to run:\n\n"); j=0; while((nn=BList[j].name)) { if( BList[j].RUN_MODES[0].type != BTYPE_INVALID ) { if( c_info->group_mode >= 0 ) fprintf(unit,"# (Multi-)%s\n",nn); else fprintf(unit,"# %s\n",nn); if ( *(BList[j].bench_comments) ) fprintf(unit,"# Comments on this Benchmark:\n"); while ( (cmt = *(BList[j].bench_comments++)) ) fprintf(unit,"# %s\n",cmt); } j++; } } } IMB_3.0/src/IMB_chk_diff.c0000644014562400001620000011260510455013232014404 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf A collection of auxiliary functions ONLY for the CHECK mode of IMB =================================================================== File: IMB_chk_diff.c Implemented functions: IMB_chk_dadd; IMB_ddiff; IMB_show; IMB_err_msg; IMB_chk_diff; IMB_cmp_cat; IMB_chk_contiguous; IMB_chk_distr; IMB_chk_contained; IMB_compute_crc; ***************************************************************************/ #include "IMB_declare.h" #include "IMB_benchmark.h" #include "IMB_prototypes.h" void IMB_chk_dadd(void* AUX, int Locsize, int buf_pos, int rank0, int rank1) /* Auxiliary, only for checking mode; Creates reference accumulated values in a given buffer section, accumulated over given processor ranks Input variables: -Locsize (type int) Size of buffer section to check -buf_pos (type int) Start position of buffer section -rank0 (type int) -rank1 (type int) Process' values between rank0 and rank1 are accumulated In/out variables: -AUX (type void*) Contains accumulated values */ { /* Sum up all process' data buffers in certain window */ int i, rank; for(i=0; i 0 ) { for(i =0; i TOL ) { D=1.; *fault_pos = (i-1)*asize; } return D; } void IMB_show(char* text, struct comm_info* c_info, void* buf, int loclen, int totlen, int j_sample, POSITIONING fpos) /* Shows an excerpt of erroneous buffer if occurs in check mode Input variables: -text (type char*) Accompanying text to put out -loclen (type int) Local length of buffer -totlen (type int) Total length of buffer (for gathered or shared access buffers) -j_sample (type int) Number of sample the error occurred -fpos (type POSITIONING) File positionning (if relevant) -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -buf (type void*) Given check buffer */ { int i; fprintf(unit,"Process %d: %s",c_info->rank,text); fprintf(unit,"\n"); #ifdef DEBUG int j; fprintf(dbg_file,"Process %d: %s",c_info->rank,text); fprintf(dbg_file,"\n"); #endif #ifdef MPIIO { MPI_Offset Offset; switch(fpos) { case indv_block: Offset = (MPI_Offset)(j_sample*totlen); break; case explicit: Offset = c_info->split.Offset+(MPI_Offset)(j_sample*totlen); break; case private: Offset = (MPI_Offset)(j_sample*loclen); break; case shared: Offset = (MPI_Offset)(-1); break; } if( fpos == shared ) fprintf(unit,"Overall size = %d, Portion = %d, #sample= %d\n",totlen,loclen,j_sample); else if( fpos != -1 ) fprintf(unit,"Overall size = %d, Portion = %d, Startpos = %ld\n",totlen,loclen,(long)Offset); #ifdef DEBUG if( fpos == shared ) fprintf(dbg_file,"Overall size = %d, Portion = %d, #sample= %d\n",totlen,loclen,j_sample); else if( fpos != -1 ) fprintf(dbg_file,"Overall size = %d, Portion = %d, Startpos = %ld\n",totlen,loclen,(long)Offset); #endif } #endif if( loclen < asize ) { if( loclen == 0 ) { fprintf(unit,"Buffer empty\n"); #ifdef DEBUG fprintf(dbg_file,"Buffer empty\n"); #endif } else { fprintf(unit,"Buffer in bytewise int representation: "); for (i = 0; i= 2*asize) fprintf(unit,"Buffer, 1st and last entry: "); else fprintf(unit,"Buffer entry: "); #ifdef BUFFERS_INT fprintf(unit,"%d ",((assign_type*)buf)[0]); if(loclen>=2*asize) fprintf(unit,"%d ",((assign_type*)buf)[loclen/asize-1]); #endif #ifdef BUFFERS_FLOAT fprintf(unit,"%f ",((assign_type*)buf)[0]); if(loclen>=2*asize) fprintf(unit,"%f ",((assign_type*)buf)[loclen/asize-1]); #endif fprintf(unit,"\n"); #ifdef DEBUG if(err_flag) for(j=0; jrank,text,totsize,j_sample); } #ifdef CHECK void IMB_chk_diff(char* text, struct comm_info* c_info, void* RECEIVED, int buf_pos, int Locsize, int Totalsize, int unit_size, DIRECTION mode, POSITIONING fpos, int n_sample, int j_sample, int source, double* diff ) /* Checks a received buffer against expected ref values Input variables: -text (type char*) Accompanying text -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -RECEIVED (type void*) The buffer to be checked -buf_pos (type int) Beginning position (in units -> unit_size) -Locsize (type int) Local buffer size -Totalsize (type int) Total buffer size (in case of gathered buffers) -unit_size (type int) Base unit for positioning -mode (type DIRECTION) Direction of the action that took place -fpos (type POSITIONING) File positioning of the action that took place (if relevant) -n_sample (type int) # overall samples -j_sample (type int) current sample -source (type int) Sending process (if relevant) Output variables: -diff (type double*) The error against expected values */ { #ifdef MPIIO MPI_File restore; MPI_Status stat; double def_tmp; int j, j1, j2, ierr, rank, pos1, pos2, allpos; int *lenj, *rankj; #endif double defloc; int faultpos, pos; int* lengths, *all_ranks, Npos; if( err_flag ) return; defloc = 0.; faultpos = -1; if( Totalsize<= 0 ) return; #ifdef MPIIO if( mode == put ) { if( c_info -> File_rank == 0 ) { IMB_alloc_buf(c_info,"Write check",0,Totalsize); ierr = MPI_File_open(MPI_COMM_SELF, c_info->filename, c_info->amode, c_info->info, &restore); IMB_err_hand(1,ierr); if(source == -3 ) { IMB_i_alloc(&lengths,c_info->File_num_procs*n_sample+n_sample-1,"chk_diff 1"); IMB_i_alloc(&all_ranks,c_info->File_num_procs*n_sample+n_sample-1,"chk_diff 2"); } else { IMB_i_alloc(&lengths,c_info->File_num_procs,"chk_diff 1a"); IMB_i_alloc(&all_ranks,c_info->File_num_procs,"chk_diff 2a"); } lenj = lengths; rankj = all_ranks; allpos = 0; if( j_sample < 0 ) { j1=0; j2=n_sample-1; } else { j1 = j_sample; j2=j_sample; } ierr = MPI_File_seek(restore,(MPI_Offset)(j1*Totalsize),MPI_SEEK_SET); MPI_ERRHAND(ierr); for( j=j1; j<=j2 && faultpos<0 ; j++ ) { ierr = MPI_File_read (restore,c_info->r_buffer,Totalsize,c_info->etype,&stat); MPI_ERRHAND(ierr); RECEIVED = c_info->r_buffer; if( source == -3 ) { IMB_cmp_cat(c_info, RECEIVED, Totalsize, buf_pos, unit_size, 1, lenj, rankj, &Npos, &faultpos, &def_tmp); lenj += Npos; rankj += Npos; allpos+= Npos; } else { IMB_cmp_cat(c_info, RECEIVED, Totalsize, buf_pos, unit_size, 0, lenj, rankj, &Npos, &faultpos, &def_tmp); } defloc = max(defloc,def_tmp); } MPI_File_close(&restore); j_sample = j-1; IMB_free_aux(); if( faultpos >= 0 ) { IMB_err_msg(c_info,text,Totalsize,j_sample); fprintf(unit, "Error: restored buffer from output file, invalid portion starting at pos. %d\n", (j_sample*Totalsize)+faultpos); AUX = (void*)(((char*)RECEIVED)+faultpos); IMB_show("Erroneous data:",c_info,AUX,Totalsize-faultpos,Totalsize-faultpos, j_sample,-1); } else { if( source == -3 ) { IMB_chk_distr(c_info, Totalsize, n_sample, lengths, all_ranks, allpos, &def_tmp); if( def_tmp > 0. ) { IMB_err_msg(c_info,text,Totalsize,j_sample); IMB_show("restored buffer from output file, has permuted data: ", c_info,RECEIVED,Totalsize,Totalsize,j_sample,-1); } } defloc = max(defloc,def_tmp); } IMB_del_r_buf(c_info); free(lengths); free (all_ranks); } } if( mode == get ) { int file_pos; file_pos = j_sample*Totalsize; *diff=0.; IMB_alloc_aux(Totalsize," chk_diff 5"); IMB_init_file_content(AUX, file_pos, file_pos+Totalsize-1); IMB_chk_contained(RECEIVED, Locsize, AUX, Totalsize, &pos, &faultpos, &def_tmp, "Compare received portion with file Content"); IMB_get_rank_portion(c_info->File_rank,c_info->File_num_procs,Totalsize,asize, &pos1, &pos2); if( faultpos >= 0 ) { err_flag=1; defloc = 1; IMB_err_msg(c_info,text,Totalsize,j_sample); RECEIVED = (void*)((char*)RECEIVED+faultpos); fprintf(unit,"File position: %d\n",file_pos+pos+faultpos); IMB_show( "Read invalid portion: ",c_info, RECEIVED, Locsize-faultpos, Totalsize, j_sample, fpos); AUX = (void*)((char*)AUX + pos + faultpos); IMB_show( "Expected portion: ",c_info, AUX, Locsize-pos-faultpos, Locsize-pos-faultpos, j_sample, -1); MPI_Gather(&pos,1,MPI_INT,c_info->rdispl,1,MPI_INT,0,c_info->File_comm); } else { if( source == -2 && Locsize > 0 ) { IMB_get_rank_portion(c_info->File_rank,c_info->File_num_procs,Totalsize,asize, &pos1, &pos2); if( pos1 != pos ) defloc = 1; } if( source == -3 ) { /* Check permuted buffer */ MPI_Gather(&pos,1,MPI_INT,c_info->rdispl,1,MPI_INT,0,c_info->File_comm); MPI_Gather(&Locsize,1,MPI_INT,c_info->reccnt,1,MPI_INT,0,c_info->File_comm); if( c_info->File_rank == 0 ) { IMB_chk_contiguous(c_info, c_info->rdispl, c_info->reccnt, &defloc ); } else defloc=0.; } if( defloc > 0. ) IMB_err_msg(c_info,"Wrong portion ordering in read buffer",Totalsize,j_sample); } defloc = max(defloc,def_tmp); } #else if( source >= 0 ) { IMB_alloc_aux(Totalsize,"chk_diff 6"); IMB_ass_buf(AUX, source, buf_pos, buf_pos+Totalsize-1, 1); if( Totalsize < asize ) { IMB_chk_contained(RECEIVED, Totalsize, AUX, Totalsize, &pos, &faultpos, &defloc, "Compare received with expected portion"); if( faultpos>=0 ) {faultpos = 0; defloc = 1.;} } else defloc = IMB_ddiff((assign_type *)AUX, (assign_type *)RECEIVED, Totalsize/asize,&faultpos); IMB_free_aux(); } else if( source == -1 ) { IMB_alloc_aux(Locsize,"chk_diff 7"); IMB_chk_dadd(AUX,Locsize,buf_pos,0,c_info->num_procs-1); defloc = IMB_ddiff((assign_type *)AUX, (assign_type *)RECEIVED, Locsize/asize,&faultpos); IMB_free_aux(); } else { if( source == -2 ) { lengths = all_ranks = NULL; IMB_cmp_cat(c_info, RECEIVED, Totalsize, buf_pos, unit_size, 0, lengths, all_ranks, &Npos, &faultpos, &defloc); } } if( faultpos >= 0 ) { void* tmp = (void*)(((char *)RECEIVED)+faultpos); IMB_err_msg(c_info,text,Totalsize,j_sample); IMB_show( "Got invalid buffer: ",c_info, tmp, asize, asize, j_sample, -1); fprintf(unit,"pos: %d\n",faultpos); tmp = (void*)(((char *)AUX )+faultpos); IMB_show( "Expected buffer: ",c_info, tmp, asize, asize, j_sample, -1); defloc = 1; } #endif if( defloc > TOL ) err_flag = 1; *diff = max(*diff,defloc); } void IMB_cmp_cat(struct comm_info *c_info, void* RECEIVED, int size, int bufpos, int unit_size, int perm, int* lengths, int*ranks, int* Npos, int *faultpos, double* diff) /* Checks a received buffer which is a concatenation of several processes' buffers Input variables: -c_info (type struct comm_info *) Collection of all base data for MPI; see [1] for more information -RECEIVED (type void*) The buffer to be checked -size (type int) Size of the buffer -bufpos (type int) First position to check (in units -> unit_size) -unit_size (type int) Base unit of positioning -perm (type int) Logical flag: 1 iff the different rank's portions are potentially in non natural order (relevant for shared file accesses) Output variables: -lengths (type int*) An array of lengths (of a number of erroneous portions) -ranks (type int*) An array of ranks (the erroneous portions belong to) -Npos (type int*) Numer of erroneous portions found (=size of 'lengths' and 'ranks' arrays) -faultpos (type int *) Position of first found fault -diff (type double*) Diff value */ { int rank, NP, pos1, pos2, pos, rsize, rem_size; int chk_ok; assign_type *a,*r; double tmp_diff; *diff = 0.; *faultpos = -1; #ifdef MPIIO NP = c_info->File_num_procs; #else NP = c_info->num_procs; #endif rsize = (size+asize-1)/asize*asize; IMB_alloc_aux(rsize, "chk_diff 8"); r = (assign_type*)AUX; a = (assign_type*)RECEIVED; chk_ok = 0; if(perm) { *Npos = 0; pos = 0; /* Check beginning of buffer */ for( rank=0; rank=0) { if( rsize <= asize ) chk_ok=1; else { rem_size = rsize-pos; IMB_chk_contained((void*)(r+pos/asize), rem_size, RECEIVED, rem_size, &pos1, faultpos, &tmp_diff, "Check of first part of received buffer"); if( *faultpos < 0 && pos1>=0 ) { lengths[*Npos] = rem_size; ranks[*Npos] = rank; pos = rem_size; (*Npos)++; chk_ok=1; } } } } if( !chk_ok ) { *faultpos = 0; *diff = 1.; } while( (pos < size) && chk_ok ) { chk_ok = 0; for( rank=0; rank 0 ) { rem_size = min(rsize,size-pos); IMB_ass_buf(AUX, rank, 0, rsize-1, 1); IMB_chk_contained(AUX,rem_size,(void*)(a+pos/asize),rem_size,&pos1, faultpos,&tmp_diff,NULL); if( *faultpos < 0 && pos1 >= 0 ) { lengths[*Npos] = rem_size; ranks[*Npos] = rank; pos = pos+rsize; (*Npos)++; chk_ok = 1; } } /* end if(rsize>0) */ } /* end for(rank..) */ if( !chk_ok ) { *faultpos = pos; *diff = 1; } } /* end while */ } /* end if(perm) */ else { int curr=0; void* tmp; for( rank=0; rank=0 ; rank++ ) { IMB_get_rank_portion(rank, NP, size, unit_size, &pos1, &pos2); rsize = pos2-pos1+1; tmp = (void*)(((char*)RECEIVED)+curr); IMB_ass_buf(AUX, rank, bufpos, bufpos+rsize-1, 1); IMB_chk_contained(AUX,rsize,tmp,rsize,&pos1,faultpos, &tmp_diff,""); *diff = max(*diff,tmp_diff); if(*faultpos<0 && pos1>= 0 ) curr+=rsize; else { *faultpos += curr; *diff = 1; curr = -1; } } } } void IMB_chk_contiguous(struct comm_info *c_info, int* rdispl, int* sizes, double*diff) /* Checks whether arrays of displacements/sizes form a contiguous buffer Input variables: -c_info (type struct comm_info *) Collection of all base data for MPI; see [1] for more information -rdispl (type int*) Array of displacements (one for each process) -sizes (type int*) Array of sizes (one for each process) Output variables: -diff (type double*) 0 if contiguous, 1 else */ { int i, j, NP, rank, p; #ifdef MPIIO NP = c_info->File_num_procs; #else NP = c_info->num_procs; #endif for(i=0; i TOL ) { fprintf(unit,"check of contiguity of received buffer portions failed\n"); fprintf(unit,"Got the following portions/displacements:\n"); for(rank = 0; rankFile_num_procs; #else NP = c_info->num_procs; #endif for( rank=0; rankreccnt[rank]=0; } i=0; while (ireccnt[rank]++; } else if( ireccnt[rank]++; i++;} } i++; } *diff = 0.; for( rank=0; rank= pos1 && c_info->reccnt[rank] != n_sample ) *diff = 1; } if( *diff > TOL ) { fprintf(unit,"check of contiguity of received buffer portions failed\n"); fprintf(unit,"Got the following portions/from process:\n"); for(i=0; i w_size ) { *pos = 0; *fpos = 0; } else { if( p_size < asize ) { pcrc = IMB_compute_crc ((char*)part, p_size); *pos = 0; wcrc = pcrc-1; while( *pos <= w_size-p_size && wcrc != pcrc ) { void* h; h = (void*)(((char*)whole)+*pos); wcrc = IMB_compute_crc ((char*)h, p_size); if(wcrc!=pcrc) (*pos)++; } if( *pos <= w_size-p_size ) *D=0.; else {*pos=0; *fpos = 0; *D=1.;} } else { *pos = 0; w_len = w_size/asize; p_len = p_size/asize; while( *pos <= w_len-p_len && A_ABS(a_part[0] - a_whole[*pos]) > TOL ) (*pos)++; if( *pos <= w_len-p_len ) { *D = IMB_ddiff(a_part, a_whole+*pos, p_len, fpos); } else {*D=1.; *pos=0; *fpos = 0; } *pos *= asize; } } if( *fpos >= 0 ) *D=1.; } /********************* CHECKSUM ********************/ /* Most of following CRC-32 stuff is from zmodem source code */ /* I claim no copyright over the contents of this file. -- Rahul Dhesi */ /* Checksum: 951252172 (check or update this with "brik") */ #define INITCRC 0xFFFFFFFFL /* * Copyright (C) 1986 Gary S. Brown. You may use this program, or * code or tables extracted from it, as desired without restriction. */ /* First, the polynomial itself and its table of feedback terms. The */ /* polynomial is */ /* X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X^1+X^0 */ /* Note that we take it "backwards" and put the highest-order term in */ /* the lowest-order bit. The X^32 term is "implied"; the LSB is the */ /* X^31 term, etc. The X^0 term (usually shown as "+1") results in */ /* the MSB being 1. */ /* Note that the usual hardware shift register implementation, which */ /* is what we're using (we're merely optimizing it by doing eight-bit */ /* chunks at a time) shifts bits into the lowest-order term. In our */ /* implementation, that means shifting towards the right. Why do we */ /* do it this way? Because the calculated CRC must be transmitted in */ /* order from highest-order term to lowest-order term. UARTs transmit */ /* characters in order from LSB to MSB. By storing the CRC this way, */ /* we hand it to the UART in the order low-byte to high-byte; the UART */ /* sends each low-bit to hight-bit; and the result is transmission bit */ /* by bit from highest- to lowest-order term without requiring any bit */ /* shuffling on our part. Reception works similarly. */ /* The feedback terms table consists of 256, 32-bit entries. Notes: */ /* */ /* The table can be generated at runtime if desired; code to do so */ /* is shown later. It might not be obvious, but the feedback */ /* terms simply represent the results of eight shift/xor opera- */ /* tions for all combinations of data and CRC register values. */ /* */ /* The values must be right-shifted by eight bits by the "updcrc" */ /* logic; the shift must be unsigned (bring in zeroes). On some */ /* hardware you could probably optimize the shift in assembler by */ /* using byte-swap instructions. */ static long crc_32_tab[] = { /* CRC polynomial 0xedb88320 */ 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d }; long IMB_compute_crc (register char* buf, register int size) /* In/out variables: -buf (type register char*) -size (type register int) Return value (type long) */ { long crccode = INITCRC; if( size <= 0 ) crccode = 0; else { int i; for (i = 0; i < size; i ++) { crccode = crc_32_tab[(int) ((crccode) ^ (buf[i])) & 0xff] ^ (((crccode) >> 8) & 0x00FFFFFFL); } } return(crccode); } #endif IMB_3.0/src/IMB_cpu_exploit.c0000644014562400001620000001207110455013232015176 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf File: IMB_cpu_exploit.c Implemented functions: IMB_cpu_exploit; ***************************************************************************/ #include "IMB_declare.h" void IMB_cpu_exploit(float target_secs, int initialize) /* Runs a CPU intensive code (matrix multiply) for a user defined amount of CPU time Input variables: -target_secs (type float) That many seconds (about) the matrix multiply is run -initialize (type int) 1/0 for first / subsequent calls. If 1, the program determines how to run in order to achieve target CPU time. */ { /* in: target_secs: desired runtime (about) of the current call initialize: 1/0 for first/following call with this value of target_secs */ #define SIZE 100 static float a[SIZE][SIZE], x[SIZE], y[SIZE]; double t1,t2; static int Nrep, target_reps; int i,j,repeat; if( target_secs <= 0. ) return; if( MFlops < 0. ) { for(i=0; i< SIZE; i++) { x[i] = y[i] = 0.; for(j=0; j< SIZE; j++) a[i][j] = 1.; } Nrep = (50000000/(2*SIZE*SIZE))+1; t1 = MPI_Wtime(); for( repeat=0; repeat #include #include #include #include "IMB_settings.h" #include "IMB_comm_info.h" #include "IMB_err_check.h" #ifdef CHECK #include "IMB_prototypes.h" long r_check,s_check; double defect; double *all_defect; #endif FILE* dbg_file; char* dbgf_name; double *all_times; /* STRINGS FOR OUTPUT */ char aux_string[out_fields*ow_format]; /* FORMAT FOR OUTPUT */ char format [out_fields*7]; /* ARRAY OF CASES, EITHER DEFAULT OR ARGUMENT LIST */ char **cases ; /* Error status */ int err_flag; /* I/O unit */ FILE* unit; /* MAXIMAL MESSAGE LENGTH */ int MAXMSG; void * AUX; int AUX_LEN=0; int do_nonblocking=0; double tCPU = 0.; /* CPU time for overlap benchmarks */ double MFlops = -1.; int mpi_thread_environment = MPI_THREAD_SINGLE; IMB_3.0/src/IMB_err_handler.c0000644014562400001620000002156610455013232015141 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf File: IMB_err_handler.c Implemented functions: IMB_err_hand; IMB_errors_mpi; IMB_errors_win; IMB_errors_io; IMB_init_errhand; IMB_set_errhand; IMB_del_errhand; ***************************************************************************/ #define nSET_ERRH #include "IMB_declare.h" #include "IMB_prototypes.h" /*-------------------------------------------------------------*/ void IMB_err_hand(int ERR_IS_MPI, int ERR_CODE ) /* Handles input error code. Retrieves error string (MPI_Error_string) if is an MPI error code Calls MPI_Abort Input variables: -ERR_IS_MPI (type int) Logical flag: error code belongs to MPI or not -ERR_CODE (type int) Input error code. If an MPI error code, the string is retrieved. Anyway MPI_Abort is called */ { int i_break; if(! ERR_IS_MPI ) { i_break=1; fprintf(stderr,"Application error code %d occurred\n",ERR_CODE); switch(ERR_CODE) { case APPL_ERR_INVCASE: fprintf(stderr,"INVALID benchmark name\n"); break; case APPL_ERR_MALLOC : fprintf(stderr,"Malloc failed \n"); break; case APPL_ERR_CINFO : fprintf(stderr,"Invalid \"c_info\" setup\n"); break; } ERR_CODE=MPI_ERR_INTERN; } else if ( ERR_CODE != MPI_SUCCESS ) { char aux_string[MPI_MAX_ERROR_STRING]; int L; i_break=1; fprintf(stderr,"MPI error %d occurred\n",ERR_CODE); MPI_Error_string(ERR_CODE,aux_string, &L); fprintf(stderr,"%s\n",aux_string); } else i_break=0; if(i_break ) { MPI_Abort(MPI_COMM_WORLD, ERR_CODE); } } void IMB_errors_mpi(MPI_Comm * comm, int* ierr, ...) /* Error handler callback for MPI-1 errors Input variables: -comm (type MPI_Comm *) Communicator which is in error -ierr (type int*) MPI error code */ { IMB_err_hand(1,*ierr); } #ifdef EXT void IMB_errors_win(MPI_Win * WIN, int* ierr, ...) /* Error handler callback for onesided communications errors Input variables: -WIN (type MPI_Win *) MPI Window which is in error -ierr (type int*) MPI error code */ { IMB_err_hand(1,*ierr); } #endif #ifdef MPIIO void IMB_errors_io (MPI_File * fh, int* ierr, ...) /* Error handler callback for MPI-IO errors Input variables: -fh (type MPI_File *) MPI File which is in error -ierr (type int*) MPI error code */ { IMB_err_hand(1,*ierr); } #endif void IMB_init_errhand(struct comm_info* c_info) /* Creates MPI error handler component of c_info by MPI_<>_create_errhandler In/out variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information Error handler component is created (c_info->ERR for MPI-1; c_info->ERRW for EXT; c_info->ERRF for MPIIO) */ { #ifdef SET_ERRH MPI_Errhandler_create(IMB_errors_mpi,&c_info->ERR); #ifdef EXT MPI_Win_create_errhandler(IMB_errors_win, &c_info->ERRW); #endif #ifdef MPIIO MPI_File_create_errhandler(IMB_errors_io, &c_info->ERRF); #endif #endif } void IMB_set_errhand(struct comm_info* c_info) /* Sets MPI error handler component of c_info by MPI_<>_set_errhandler In/out variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information Error handler component is set */ { #ifdef SET_ERRH if( c_info->communicator != MPI_COMM_NULL ) MPI_Errhandler_set(c_info->communicator, c_info->ERR); #ifdef EXT if( c_info->WIN != MPI_WIN_NULL ) MPI_Win_set_errhandler(c_info->WIN, c_info->ERRW); #endif #ifdef MPIIO if( c_info->fh != MPI_FILE_NULL ) MPI_File_set_errhandler(c_info->fh, c_info->ERRF); #endif #endif } void IMB_del_errhand(struct comm_info* c_info) /* Deletes MPI error handler component of c_info by MPI_Errhandler_free In/out variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information MPI error handler component of c_info is deleted */ { #ifdef SET_ERRH MPI_Errhandler_free(&c_info->ERR); #ifdef EXT MPI_Errhandler_free(&c_info->ERRW); #endif #ifdef MPIIO MPI_Errhandler_free(&c_info->ERRF); #endif #endif } IMB_3.0/src/IMB_exchange.c0000644014562400001620000001504710455013232014433 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf File: IMB_exchange.c Implemented functions: IMB_exchange; ***************************************************************************/ #include "IMB_declare.h" #include "IMB_benchmark.h" #include "IMB_prototypes.h" /*************************************************************************/ void IMB_exchange(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) /* MPI-1 benchmark kernel Chainwise exchange; MPI_Isend (left+right) + MPI_Recv (right+left) Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) (only MPI-2 case: see [1]) Output variables: -time (type double*) Timing result per sample */ { double t1, t2; int i; Type_Size s_size, r_size; int s_num, r_num; int s_tag, r_tag; int left, right; MPI_Status stat[2]; MPI_Request request[2]; #ifdef CHECK defect=0; #endif ierr = 0; /*GET SIZE OF DATA TYPE's in s_size and r_size*/ MPI_Type_size(c_info->s_data_type,&s_size); MPI_Type_size(c_info->r_data_type,&r_size); if ((s_size!=0) && (r_size!=0)) { s_num=size/s_size; r_num=size/r_size; } s_tag = 1; r_tag = c_info->select_tag ? s_tag : MPI_ANY_TAG; if(c_info->rank != -1) { if(c_info->rank < c_info->num_procs-1) right = c_info->rank+1; if(c_info->rank > 0) left = c_info->rank-1; if(c_info->rank == c_info->num_procs-1) right = 0; if(c_info->rank == 0) left = c_info->num_procs-1 ; if((c_info->rank >= 0) && (c_info->rank <= c_info->num_procs-1)) { for(i=0; icommunicator); t1 = MPI_Wtime(); for(i=0;i< n_sample;i++) { ierr= MPI_Isend(c_info->s_buffer,s_num,c_info->s_data_type, right,s_tag,c_info->communicator,&request[0]); MPI_ERRHAND(ierr); ierr= MPI_Isend(c_info->s_buffer,s_num,c_info->s_data_type, left ,s_tag,c_info->communicator,&request[1]); MPI_ERRHAND(ierr); ierr= MPI_Recv( c_info->r_buffer,r_num,c_info->r_data_type, left ,r_tag,c_info->communicator,stat); MPI_ERRHAND(ierr); CHK_DIFF("Exchange",c_info, c_info->r_buffer, 0, size, size, 1, put, 0, n_sample, i, left, &defect); ierr= MPI_Recv( c_info->r_buffer,r_num,c_info->r_data_type, right,r_tag,c_info->communicator,stat); MPI_ERRHAND(ierr); CHK_DIFF("Exchange",c_info, c_info->r_buffer, 0, size, size, 1, put, 0, n_sample, i, right, &defect); ierr= MPI_Waitall(2,request,stat); MPI_ERRHAND(ierr); } t2 = MPI_Wtime(); *time=(t2 - t1)/n_sample; } } else { *time = 0.; } } IMB_3.0/src/IMB_g_info.c0000644014562400001620000001371510455013232014112 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf File: IMB_g_info.c Implemented functions: IMB_general_info; IMB_make_sys_info; IMB_end_msg; ***************************************************************************/ char* VERSION="3.0"; #include #include #include "IMB_declare.h" #include "IMB_benchmark.h" #include "IMB_prototypes.h" extern FILE* unit; void IMB_general_info() /* Prints to stdout some basic information (Version, time, system (see 'IMB_make_sys_info')) */ { void IMB_make_sys_info(); time_t T; time(&T); fprintf(unit,"#---------------------------------------------------\n"); #ifdef MPI1 fprintf(unit,"# Intel (R) MPI Benchmark Suite V%s, MPI-1 part \n",VERSION); #elif defined EXT fprintf(unit,"# Intel (R) MPI Benchmark Suite V%s, MPI-2 part \n",VERSION); #elif defined MPIIO fprintf(unit,"# Intel (R) MPI Benchmark Suite V%s, MPI-IO part \n",VERSION); #endif fprintf(unit,"#---------------------------------------------------\n"); fprintf(unit,"# Date : %s",asctime(localtime(&T))); IMB_make_sys_info(); fprintf(unit,"\n"); } #include void IMB_make_sys_info() /* Prints to stdout some basic information about the system (outcome of the 'uname' command) */ { int dont_care, mpi_subversion, mpi_version; struct utsname info; uname( &info ); dont_care = MPI_Get_version(&mpi_version,&mpi_subversion); fprintf(unit,"# Machine : %s\n",info.machine); fprintf(unit,"# System : %s\n",info.sysname); fprintf(unit,"# Release : %s\n",info.release); fprintf(unit,"# Version : %s\n",info.version); fprintf(unit,"# MPI Version : %-d.%-d\n",mpi_version,mpi_subversion); fprintf(unit,"# MPI Thread Environment: "); switch (mpi_thread_environment) { case MPI_THREAD_SINGLE : fprintf(unit,"MPI_THREAD_SINGLE\n"); break; case MPI_THREAD_FUNNELED : fprintf(unit,"MPI_THREAD_FUNNELED\n"); break; case MPI_THREAD_SERIALIZED : fprintf(unit,"MPI_THREAD_SERIALIZED\n"); break; default : fprintf(unit,"MPI_THREAD_MULTIPLE\n"); break; } } void IMB_end_msg(struct comm_info* c_info ) /* Prints to stdout an eventual end message (currently empty) Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information */ { FILE* u; if( c_info->w_rank == 0 ) { for( u=stdout; u; u=(u==unit ? NULL : unit) ) { } } } IMB_3.0/src/IMB_init.c0000644014562400001620000006244610455013232013621 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf File: IMB_init.c Modifications IMB_2.3 => IMB_3.0: Better argument checking and error messages Include -h flag for help 2 new auxiliary functions: IMB_chk_arg_int IMB_chk_arg_file Implemented functions: IMB_basic_input; IMB_chk_arg_int IMB_chk_arg_file IMB_get_rank_portion; IMB_init_communicator; IMB_set_communicator; IMB_valid; IMB_set_default; ***************************************************************************/ #include "IMB_declare.h" #include "IMB_benchmark.h" #include "IMB_prototypes.h" /********************************************************************/ int IMB_chk_arg_int(int* val, char ***argv, int *argc, int iarg) { /* Checks command line argument for being nonnegative integer */ int ok; ok=1; if( iarg < *argc ){ int tst=IMB_str_atoi((*argv)[iarg]); if( tst>=0 ) { *val=tst; } else ok=0; } else ok=0; return ok; } int IMB_chk_arg_file(FILE** fd, char ***argv, int *argc, int iarg) { /* Checks command line argument for being a file */ int ok; *fd=(FILE*)NULL; ok=1; if( iarg < *argc ){ FILE* tst=(FILE*) fopen((*argv)[iarg],"r"); if( tst ) { *fd=tst; } else ok=0; } else ok=0; return ok; } #define N_baseinfo 8 int IMB_basic_input(struct comm_info* c_info, struct Bench** P_BList, int *argc, char ***argv, int* NP_min) /* Input variables: -argc (type int *) Number of command line arguments -argv (type char ***) List of command line arguments Output variables: -NP_min (type int*) Minimum number of processes to run (-npmin command line argument) -P_BList (type struct Bench**) (For explanation of struct Bench type: describes all aspects of modes of a benchmark; see [1] for more information) Address of list of benchmarks to run; list is set up. -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information */ { int i,n_cases,n_lens,iarg,iarg_msg; int deflt; int * ALL_INFO; char** DEFC, **CMT; int ok; /* IMB_3.0 */ int help_only; help_only=0; *P_BList = (struct Bench *)NULL; MPI_Comm_rank(MPI_COMM_WORLD,&c_info->w_rank); MPI_Comm_size(MPI_COMM_WORLD,&c_info->w_num_procs); unit = stdout; if( c_info->w_rank == 0 && strlen(OUTPUT_FILENAME) > 0 ) unit = fopen(OUTPUT_FILENAME,"w"); #ifdef DEBUG dbgf_name = IMB_str("DBG_ "); sprintf(dbgf_name+4,"%d",c_info->w_rank); dbg_file = fopen(dbgf_name,"w"); #endif deflt = 0; ok = 0; iarg_msg=-1; c_info->group_mode = -1; #ifdef MPIIO *NP_min=1; #else *NP_min=2; #endif if( c_info->w_rank == 0 ) { /* Interpret command line */ n_lens = 0; if( *argc <= 1 ) { /* Take default */ deflt = 1; } else { n_cases = *argc-1; iarg = 1; while( iarg <= *argc-1 ) { if(!strcmp((*argv)[iarg],"-h") || !strcmp((*argv)[iarg],"-help")) { help_only=1; break; } if(!strcmp((*argv)[iarg],"-npmin")) { /* IMB_3.0: Better arg checking for following cases */ if( !IMB_chk_arg_int(NP_min,argv,argc,iarg+1) ) {ok=-1;} else if(*NP_min>0){n_cases -= 2;} else {ok=-1;} if( ok==-1 ) { fprintf(stderr,"Invalid argument after \"npmin\"\n"); break; } iarg++; } if(!strcmp((*argv)[iarg],"-multi")) { int tst; if( !IMB_chk_arg_int(&tst,argv,argc,iarg+1) ) {ok=-1;} else if( tst==0 || tst==1 ){ c_info->group_mode=tst; n_cases -= 2; } else {ok=-1;} if( ok==-1 ) { fprintf(stderr,"Invalid argument after \"multi\"\n"); break; } iarg++; } if(!strcmp((*argv)[iarg],"-map")) { int ierr; if( iarg+1>=*argc ) { fprintf(stderr,"Missing argument after \"map\"\n"); ok=-1; break; } ierr=sscanf((*argv)[iarg+1],"%d%c%d",&c_info->px,&i,&c_info->py); if(ierr<3 || c_info->px*c_info->py < c_info->w_num_procs) { fprintf(stderr,"Invalid map selection\n"); ok = -1; break; } n_cases -= 2; iarg++; } if(!strcmp((*argv)[iarg],"-msglen")) { FILE*t; if( !IMB_chk_arg_file(&t,argv,argc,iarg+1) ) {ok=-1; fprintf(stderr,"Filename after \"msglen\" flag invalid\n"); break;} iarg_msg=iarg+1; n_cases -= 2; if( t ) { char inp_line[72]; while(fgets(inp_line,72,t)) { if( inp_line[0] != '#' && strlen(inp_line)>1 ) n_lens++; } fclose(t); } if ( n_lens==0 ) { fprintf(stderr,"Sizes file %s invalid or doesnt exist\n",(*argv)[iarg_msg]); ok = -1; } iarg++; } if(!strcmp((*argv)[iarg],"-input")) { FILE*t; if( !IMB_chk_arg_file(&t,argv,argc,iarg+1) ) {ok=-1; fprintf(stderr,"Filename after \"input\" flag invalid\n"); break;} n_cases -= 2; if( t ) { char inp_line[72]; while(fgets(inp_line,72,t)) { if( inp_line[0] != '#' && strlen(inp_line)>1 ) n_cases++; } fclose(t); } iarg++; } iarg++; } /* IMB_3.0 */ if( !help_only ) { if(n_cases <= 0 ) deflt = 1; else { iarg = 1; while( iarg <= *argc-1 ) { if(!strcmp((*argv)[iarg],"-npmin")) iarg++; else if(!strcmp((*argv)[iarg],"-multi")) iarg++; else if(!strcmp((*argv)[iarg],"-msglen")) iarg++; else if(!strcmp((*argv)[iarg],"-map")) iarg++; else if(!strcmp((*argv)[iarg],"-input")) { FILE*t = fopen((*argv)[iarg+1],"r"); if( t ) { char inp_line[72], nam[32]; while(fgets(inp_line,72,t)) { if( inp_line[0] != '#' && strlen(inp_line)-1 ) { sscanf(inp_line,"%s",nam); IMB_construct_blist(P_BList,n_cases,nam); } } fclose(t); } else fprintf(unit,"Input file %s doesnt exist\n",(*argv)[iarg+1]); iarg++; } else { IMB_construct_blist(P_BList,n_cases,(*argv)[iarg]); } iarg ++; } } /* IMB_3.0 ; end "help_only" */ } } /* IMB_3.0 */ if( help_only || ok<0 ) { /* Set flag "not ok" => help mode in main */ n_cases=0; IMB_i_alloc(&ALL_INFO,N_baseinfo,"Basic_Input"); ok=-3; } else { if(deflt) { n_cases = 0; IMB_construct_blist(P_BList,0,"ALL"); } if( iarg_msg>=0 ) { FILE*t = fopen((*argv)[iarg_msg],"r"); c_info->n_lens=n_lens; if( t && n_lens>0 ) { char inp_line[72], S[32]; int sz, isz; IMB_i_alloc(&c_info->msglen,n_lens,"Basic_Input"); isz=-1; while(fgets(inp_line,72,t)) { S[0]='\0'; if( inp_line[0] != '#' && strlen(inp_line)-1 ) { int ierr; sz=0; ierr=sscanf(&inp_line[0],"%d%s",&sz,&S[0]); if( ierr<=0 || ierr==EOF || sz<0 ) { ierr=-1; } else if(ierr==2 ) { if (S[0]=='k' || S[0]=='K') {sz=sz*1024;} else if (S[0]=='m' || S[0]=='M') {sz=sz*1024*1024;} else { ierr=-1; } } if( ierr>0 ) { isz++; c_info->msglen[isz]=sz; } else { fprintf(stderr,"Invalid line in file %s\n",(*argv)[iarg_msg]); } } } n_lens=c_info->n_lens=isz+1; fclose(t); if ( n_lens==0 ) { fprintf(stderr,"Sizes File %s invalid or doesnt exist\n",(*argv)[iarg_msg]); ok = -1; } } } IMB_i_alloc(&ALL_INFO,N_baseinfo+n_cases,"Basic_Input"); if( !deflt ) { i=0; n_cases = 0; while( (*P_BList)[i].name ) { int index; IMB_get_def_index(&index,(*P_BList)[i].name ); /* IMB_3.0 if( index >= 0 ) */ if( index != LIST_END ) ALL_INFO[N_baseinfo+n_cases++] = index; i++; } } /* IMB_3.0 end "!help_only" */ } ALL_INFO[0] = *NP_min; ALL_INFO[1] = c_info->group_mode; ALL_INFO[2] = deflt; ALL_INFO[3] = n_cases; ALL_INFO[4] = c_info->n_lens; ALL_INFO[5] = c_info->px; ALL_INFO[6] = c_info->py; ALL_INFO[7] = ok; MPI_Bcast(ALL_INFO,N_baseinfo,MPI_INT,0,MPI_COMM_WORLD); if( ok<0 ) return ok; if( n_cases > 0 && !deflt) MPI_Bcast(ALL_INFO+N_baseinfo,n_cases,MPI_INT,0,MPI_COMM_WORLD); if( n_lens > 0 ) MPI_Bcast(c_info->msglen,n_lens,MPI_INT,0,MPI_COMM_WORLD); free(ALL_INFO); } else /* w_rank > 0 */ /* Receive input arguments */ { int TMP[N_baseinfo]; MPI_Bcast(TMP,N_baseinfo,MPI_INT,0,MPI_COMM_WORLD); *NP_min = TMP[0]; c_info->group_mode = TMP[1]; deflt = TMP[2]; n_cases = TMP[3]; n_lens = TMP[4]; c_info->px = TMP[5]; c_info->py = TMP[6]; ok = TMP[7]; if( ok<0 ) return ok; if( deflt ) IMB_construct_blist(P_BList,0,"ALL"); else if( n_cases>0 ) { IMB_i_alloc(&ALL_INFO,n_cases,"Basic_Input"); MPI_Bcast(ALL_INFO,n_cases,MPI_INT,0,MPI_COMM_WORLD); IMB_get_def_cases(&DEFC,&CMT); for( i = 0; i0 ) { c_info->n_lens=n_lens; IMB_i_alloc(&c_info->msglen,n_lens,"Basic_Input"); MPI_Bcast(c_info->msglen,n_lens,MPI_INT,0,MPI_COMM_WORLD); } } #ifdef DEBUG { int i; fprintf(dbgf,"Got msglen:\n"); for(i=0; imsglen[i]); fprintf(dbgf,"\n\n"); fprintf(dbgf,"px py = %d %d\n",c_info->px,c_info->py); fprintf(dbgf,"\n\n"); } #endif #ifndef EXT if( do_nonblocking ) IMB_cpu_exploit(TARGET_CPU_SECS, 1); #endif return 0; } void IMB_get_rank_portion(int rank, int NP, int size, int unit_size, int* pos1, int* pos2) /* Splits into even contiguous pieces among processes Input variables: -rank (type int) Process' rank -NP (type int) Number of processes -size (type int) Portion to split -unit_size (type int) Base unit for splitting Output variables: -pos1 (type int*) -pos2 (type int*) Process' portion is from unit pos1 to pos2 */ { int ne, baslen, mod; ne = (size+unit_size-1)/unit_size; baslen = ne/NP; mod = ne%NP; if( rank < mod ) { *pos1 = rank*(baslen+1)*unit_size; *pos2 = *pos1-1+(baslen+1)*unit_size; } else { *pos1 = (rank*baslen + mod)*unit_size; *pos2 = *pos1-1 + baslen*unit_size; } *pos2 = min(*pos2,size-1); } /********************************************************************/ int IMB_init_communicator(struct comm_info* c_info, int NP) /* Input variables: -NP (type int) Number of all started processes In/out variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information Communicator of active processes gets initialized; grouping of processes (in the 'multi' case) in communicators Return value (type int) Non currently used error exit (value is always 0) */ { int i,snd,cnt,proc,*aux_ptr; MPI_Group group, w_group; MPI_Status stat; c_info->NP=NP; /* NUMBER OF OVERALL PROCESSES */ IMB_set_communicator( c_info ); /* GROUP MANAGEMENT */ /* INITIALIZATION WITHIN THE ACTUAL COMMUNICATOR */ if( c_info->communicator != MPI_COMM_NULL ) { MPI_Comm_size(c_info->communicator,&(c_info ->num_procs)); MPI_Comm_rank(c_info->communicator,&(c_info ->rank)); c_info->pair0 = 0; c_info->pair1 = c_info ->num_procs-1; c_info->select_tag = 0; c_info->select_source = 0; } else { c_info -> rank = -1; } if( c_info->communicator == MPI_COMM_WORLD ) { c_info->n_groups = 1; c_info->g_sizes[0] = c_info->w_num_procs; for(i=0; iw_num_procs; i++) c_info->g_ranks[i]=i; } else { /* Collect global group information */ if( c_info->rank == 0 ) { /* group leaders provide group ranks */ MPI_Comm_group(MPI_COMM_WORLD,&w_group); MPI_Comm_group(c_info->communicator,&group); for (i=0; inum_procs; i++) c_info->g_sizes[i] = i; /* TRANSLATION OF RANKS */ MPI_Group_translate_ranks( group, c_info->num_procs, c_info->g_sizes,w_group, c_info->g_ranks ); snd = c_info->num_procs; } else { *c_info->g_ranks = -1; snd = 1; } /* w_rank 0 collects in g_ranks ranks of single groups */ if( c_info->w_rank == 0 ) { if( c_info->rank == 0 ) { c_info->n_groups = 1; c_info->g_sizes[c_info->n_groups-1] = c_info->num_procs; aux_ptr = c_info->g_ranks+c_info->num_procs; } else { c_info->n_groups = 0; aux_ptr=c_info->g_ranks; } for( proc=1; procw_num_procs; proc++ ) { /* Recv group ranks or -1 */ cnt = (int)(c_info->g_ranks+c_info->w_num_procs-aux_ptr); /* July 2002 fix V2.2.1 (wrong logistics), next 23 lines */ if( cnt <= 0 ) /* all leaders have sent, recv dummies (-1) from others! */ { cnt=1; MPI_Recv(&i,cnt,MPI_INT,proc,1000,MPI_COMM_WORLD,&stat); } else { MPI_Recv(aux_ptr,cnt,MPI_INT,proc,1000,MPI_COMM_WORLD,&stat); if( *aux_ptr >= 0 ) { /* Message was from a group leader */ c_info->n_groups ++; MPI_Get_count( &stat, MPI_INT, &c_info->g_sizes[c_info->n_groups-1]); aux_ptr += c_info->g_sizes[c_info->n_groups-1]; } } /* end fix V2.2.1 */ } } else /* w_rank != 0 */ { MPI_Send(c_info->g_ranks,snd,MPI_INT,0,1000,MPI_COMM_WORLD); } } /* End collection of group information */ IMB_set_errhand(c_info); return 0; } /**********************************************************************/ void IMB_set_communicator(struct comm_info *c_info ) /* Performs the actual communicator splitting In/out variables: -c_info (type struct comm_info *) Collection of all base data for MPI; see [1] for more information Application communicator gets initialized */ { int color,key,i,j,ii; int* map; /* insert choice for communicator here; NOTE : globally more than one communicator is allowed Example: grouping of pairs of processes: 0 0 1 1 2 2 .. (if even), UNDEF 0 0 1 1 2 2 .. (if odd) */ if( c_info->communicator != MPI_COMM_NULL && c_info->communicator != MPI_COMM_SELF && c_info->communicator != MPI_COMM_WORLD) { i=MPI_Comm_free(&c_info->communicator); IMB_err_hand(1,i); } IMB_i_alloc( &map, c_info->w_num_procs, "IMB_init"); ii=0; if( c_info->px>1 && c_info->py>1 ) { for( i=0; ipx; i++ ) for( j=0; jpy; j++ ) { if(i+j*c_info->pxw_num_procs) map[i+j*c_info->px] = ii++; } } else { for( i=0; iw_num_procs; i++ ) map[i]=i; } if(c_info->group_mode >= 0) { i=map[c_info->w_rank]; color = i/c_info->NP; c_info->group_no = color; key = i; if(color >= c_info->w_num_procs/c_info->NP) color=MPI_UNDEFINED; MPI_Comm_split(MPI_COMM_WORLD, color, key, &c_info->communicator); } /* Default choice and Group definition. */ else { if(map[c_info->w_rank] < c_info->NP) color=0; else color=MPI_UNDEFINED; c_info->group_no = 0; key=map[c_info->w_rank]; MPI_Comm_split(MPI_COMM_WORLD, color, key, &c_info->communicator); } free(map); } int IMB_valid(struct comm_info * c_info, struct Bench* Bmark, int NP) /* Validates an input Benchmark / NP setting Input variables: -c_info (type struct comm_info *) Collection of all base data for MPI; see [1] for more information -Bmark (type struct Bench*) (For explanation of struct Bench type: describes all aspects of modes of a benchmark; see [1] for more information) User input benchmark setting -NP (type int) Number of active processes Return value (type int) 1/0 for valid / invalid input */ { /* Checks validity of Bmark for NP processes */ /* Erroneous cases: */ int invalid, skip; invalid = 0; skip = 0; #ifndef MPIIO invalid = Bmark->RUN_MODES[0].type == SingleTransfer && NP <=1; skip = Bmark->RUN_MODES[0].type == SingleTransfer && NP > 2; #endif if ( invalid ) { if( c_info->w_rank == 0 ) { if( NP == 1 ) fprintf(unit,"\n# !! Benchmark %s invalid for %d process !! \n\n",Bmark->name,NP); else fprintf(unit,"\n# !! Benchmark %s invalid for %d processes !! \n\n",Bmark->name,NP); } return 0; } /* Cases to skip: */ if ( skip ) return 0; return 1; } void IMB_set_default(struct comm_info* c_info) /* Default initialization of comm_info Output variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information */ { c_info->w_num_procs=0; c_info->w_rank=-1; c_info->NP=0; c_info->px=0; c_info->py=0; c_info->communicator=MPI_COMM_NULL; c_info->num_procs =0; c_info->rank = -1; c_info->s_data_type = MPI_DATATYPE_NULL; c_info->r_data_type = MPI_DATATYPE_NULL; c_info->red_data_type = MPI_DATATYPE_NULL; c_info->op_type = MPI_OP_NULL; c_info->pair0 = c_info->pair1 = -2; c_info->select_tag = 0; c_info->select_source = 0; c_info->s_buffer = NULL; c_info->s_data = NULL; c_info->s_alloc = 0; c_info->r_buffer = NULL; c_info->r_data = NULL; c_info->r_alloc = 0; c_info->n_lens = 0; c_info->msglen = NULL; c_info->group_mode = 0; c_info->n_groups = 0; c_info->group_no = -1; c_info->g_sizes = NULL; c_info->g_ranks = NULL; c_info->reccnt = NULL; c_info->rdispl = NULL; c_info->ERR=MPI_ERRHANDLER_NULL; #ifdef MPIIO /* FILE INFORMATION */ c_info->filename=NULL; c_info->File_comm=MPI_COMM_NULL; c_info->File_num_procs=0; c_info->all_io_procs=0; c_info->File_rank=-1; c_info->fh=MPI_FILE_NULL; c_info->etype=MPI_DATATYPE_NULL; c_info->e_size=0; c_info->filetype=MPI_DATATYPE_NULL; c_info->split.Locsize=0; c_info->split.Offset=(MPI_Offset)0; c_info->split.Totalsize=0; c_info->amode=0; c_info->info=MPI_INFO_NULL; /* View: */ c_info->disp=(MPI_Offset)0; c_info->datarep=NULL; c_info->view=MPI_DATATYPE_NULL; c_info->ERRF=MPI_ERRHANDLER_NULL; #endif #ifdef EXT c_info->WIN=MPI_WIN_NULL; c_info->info=MPI_INFO_NULL; c_info->ERRW=MPI_ERRHANDLER_NULL; #endif } /********************************************************************/ IMB_3.0/src/IMB_init_file.c0000644014562400001620000002631310455013232014611 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf File: IMB_init_file.c Implemented functions: IMB_init_file_content; IMB_init_file; IMB_free_file; IMB_del_file; IMB_open_file; ***************************************************************************/ #include "IMB_declare.h" #include "IMB_benchmark.h" #include "IMB_prototypes.h" void IMB_init_file_content(void* BUF, int pos1, int pos2) /* Initializes contents of a file for READ benchmarks Input variables: -pos1 (type int) -pos2 (type int) pos1, pos2: target positions (start/end) in file In/out variables: -BUF (type void*) Content of buffer to be written to file between these positions */ { IMB_ass_buf( BUF, 0, pos1, pos2, 1); } int IMB_init_file(struct comm_info* c_info, struct Bench* Bmark, int NP) /* Input variables: -Bmark (type struct Bench*) (For explanation of struct Bench type: describes all aspects of modes of a benchmark; see [1] for more information) Given file i/o benchmark -NP (type int) Number of active processes In/out variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information MPI_File component is set accordingly Return value (type int) Error code (identical with MPI error code if occurs) */ { int error = 0; int fnlen; IMB_free_file(c_info); c_info->fh = MPI_FILE_NULL; c_info->etype = MPI_BYTE; MPI_Type_size(c_info->etype,&c_info->e_size); c_info->filetype = c_info->etype; IMB_user_set_info(&c_info->info); c_info-> disp = (MPI_Offset)0; c_info->datarep = IMB_str("native"); if( Bmark->RUN_MODES[0].type == SingleTransfer ) c_info->all_io_procs = 1; else c_info->all_io_procs = c_info->num_procs; fnlen = 1+strlen(FILENAME); /* July 2002 fix V2.2.1: group_mode >= 0 */ if( c_info->group_mode >= 0 ) fnlen += 4; if( Bmark->fpointer == private ) { if( c_info->rank > c_info->all_io_procs-1 || c_info->rank < 0 ) { c_info->File_comm = MPI_COMM_NULL; c_info->File_rank = -1; c_info->File_num_procs = 0; } else { c_info->File_comm = MPI_COMM_SELF; c_info->File_rank = 0; c_info->File_num_procs = 1; } if( c_info->File_rank >= 0 ) { fnlen += 4; c_info->filename = (char*) IMB_v_alloc(sizeof(char)*fnlen,"Init_File"); /* July 2002 fix V2.2.1: group_mode >= 0 */ if( c_info->group_mode >= 0 ) sprintf(c_info->filename,"%s_g%d_%d",FILENAME,c_info->group_no,c_info->w_rank); else sprintf(c_info->filename,"%s_%d",FILENAME,c_info->w_rank); c_info->amode = MPI_MODE_CREATE | MPI_MODE_RDWR | MPI_MODE_UNIQUE_OPEN; } } else { if( c_info->communicator == MPI_COMM_NULL ) { c_info->File_comm = MPI_COMM_NULL; c_info->File_rank = -1; c_info->File_num_procs = 0; } else { c_info->File_comm = c_info->communicator; c_info->File_rank = c_info->rank; c_info->File_num_procs = c_info->num_procs; } c_info->filename = (char*) IMB_v_alloc(sizeof(char)*fnlen,"Init_File"); /* July 2002 fix V2.2.1: group_mode >= 0 */ if( c_info->group_mode >= 0 ) sprintf(c_info->filename,"%s_g%d",FILENAME,c_info->group_no); else sprintf(c_info->filename,"%s",FILENAME); c_info->amode = MPI_MODE_CREATE | MPI_MODE_RDWR; } if( Bmark->access == no ) return 0; if( c_info -> File_rank == 0 ) { int ierr, size, total; MPI_Status stat; IMB_del_file(c_info); size=1< MSGSPERSAMPLE ) total = size*MSGSPERSAMPLE; /* July 2002 fix V2.2.1: calculation of file sizes in "priv" case */ if ( Bmark->fpointer == private ) { int NP= c_info->all_io_procs; total = (total+NP-1)/NP; if ( size%NP ) total += asize*MSGSPERSAMPLE; } /* July 2002 end fix */ ierr = MPI_File_open(MPI_COMM_SELF, c_info->filename, c_info->amode, c_info->info, &c_info->fh); IMB_err_hand(1,ierr); MPI_File_set_view(c_info->fh,(MPI_Offset)0, c_info->etype,c_info->etype,c_info->datarep,c_info->info); /* July 2002 fix V2.2.1: size <-> total */ ierr = MPI_File_set_size(c_info->fh, total); IMB_err_hand(1,ierr); if( Bmark->access == get ) { /* Prepare File for input */ int el_size = 1<<20; int pos1, pos2; pos1 = 0; while( pos1 < total ) { pos2 = min(total-1,pos1+el_size-1); size = ((pos2-pos1)/asize+1)*asize; IMB_alloc_buf(c_info, "Init_File 1 ",size, 0); IMB_init_file_content(c_info->s_buffer, pos1, pos2); ierr=MPI_File_write(c_info->fh,c_info->s_buffer,pos2-pos1+1,c_info->etype,&stat); IMB_err_hand(1,ierr); pos1 = pos2+1; } IMB_del_s_buf(c_info); } ierr= MPI_File_close(&c_info->fh); IMB_err_hand(1,ierr); } return error; } void IMB_free_file(struct comm_info * c_info) /* In/out variables: -c_info (type struct comm_info *) Collection of all base data for MPI; see [1] for more information File related components are free-d and reset to NULL initialization */ { if( c_info->filename != (char*)NULL ) free(c_info->filename); if( c_info->datarep != (char*)NULL ) free(c_info->datarep ); if( c_info->filename != (char*)NULL ) if( c_info->view != MPI_DATATYPE_NULL ) MPI_Type_free(&c_info->view); if( c_info->info != MPI_INFO_NULL ) MPI_Info_free(&c_info->info); if( c_info->fh != MPI_FILE_NULL ) MPI_File_close(& c_info->fh ); c_info->filename = (char*)NULL; c_info->datarep = (char*)NULL; c_info->view = MPI_DATATYPE_NULL; c_info->info = MPI_INFO_NULL; c_info->fh = MPI_FILE_NULL; } void IMB_del_file(struct comm_info* c_info) /* In/out variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information File associated to MPI_File component is erased from disk */ { if( c_info-> fh != MPI_FILE_NULL ) MPI_File_close(&c_info->fh); if( c_info->filename != (char*)NULL ) { if( c_info->File_rank == 0 ) { int ierr; /* IMB_3.0: simplify file deletion */ ierr=MPI_File_delete(c_info->filename,MPI_INFO_NULL); } } } int IMB_open_file(struct comm_info* c_info) /* In/out variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information File associated to MPI_File component is opened, view is set Return value (type int) Error code (identical with MPI error code if occurs) */ { int ierr; ierr = 0; if ( c_info->File_comm != MPI_COMM_NULL ) { ierr = MPI_File_open(c_info->File_comm, c_info->filename, c_info->amode, c_info->info, &c_info->fh); MPI_ERRHAND(ierr); ierr = MPI_File_set_view(c_info->fh, c_info->disp, c_info->etype, c_info->filetype, c_info->datarep, c_info->info); MPI_ERRHAND(ierr); } return ierr; } IMB_3.0/src/IMB_init_transfer.c0000644014562400001620000002107210455013232015513 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf File: IMB_init_transfer.c Implemented functions: IMB_init_transfer; IMB_close_transfer; ***************************************************************************/ #include "mpi.h" #include "IMB_declare.h" #include "IMB_benchmark.h" #include "IMB_prototypes.h" void IMB_init_transfer(struct comm_info* c_info, struct Bench* Bmark, int size) /* For IO case: file splitting/view is set, file is opened For EXT case: window is created and synchronized (MPI_Win_fence) Input variables: -Bmark (type struct Bench*) (For explanation of struct Bench type: describes all aspects of modes of a benchmark; see [1] for more information) Given benchmark -size (type int) (Only IO case): used to determine file view In/out variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information Corresponding components (File or Window related) are set */ { #ifdef MPIIO int ne, baslen, mod; int ierr; int pos1, pos2; if( c_info->File_rank < 0 || Bmark->access == no ) return; IMB_get_rank_portion(c_info->File_rank, c_info->all_io_procs, size, asize, &pos1, &pos2); baslen = max(0,pos2-pos1+1); if( c_info->view != MPI_DATATYPE_NULL ) MPI_Type_free(&c_info->view); if( Bmark->fpointer == private ) { c_info->split.Locsize = baslen; c_info->split.Offset = 0; c_info->split.Totalsize = baslen; if( Bmark->access == put ) IMB_set_buf(c_info, c_info->File_rank, 0, baslen-1, 1, 0); if( Bmark->access == get ) IMB_set_buf(c_info, c_info->File_rank, 1, 0, 0, baslen-1); } if( Bmark->fpointer == indv_block || Bmark->fpointer == shared || Bmark->fpointer == explicit ) { int bllen[3]; MPI_Aint displ[3]; MPI_Datatype types[3]; bllen[0]=1; displ[0] = 0; types[0] = MPI_LB; bllen[1] = baslen; displ[1] = pos1; types[1] = c_info->etype; bllen[2] = 1; displ[2] = size; types[2] = MPI_UB; if( Bmark->fpointer == indv_block ) { /* July 2002 fix V2.2.1: handle empty view case separately */ if( baslen>0 ){ /* end change */ ierr=MPI_Type_struct(3,bllen,displ,types,&c_info->view); IMB_err_hand(1,ierr); ierr=MPI_Type_commit(&c_info->view); IMB_err_hand(1,ierr); c_info->filetype = c_info->view; /* July 2002 fix V2.2.1: handle empty case */ } else c_info->filetype = c_info->etype; /* end change */ } if( Bmark->access == put ) IMB_set_buf(c_info, c_info->File_rank, 0, baslen-1, 1, 0 ); if( Bmark->access == get ) IMB_set_buf(c_info, c_info->File_rank, 1, 0, 0, baslen-1 ); c_info->split.Locsize = bllen[1]; c_info->split.Offset = pos1; c_info->split.Totalsize = size; } ierr = IMB_open_file(c_info); #else #ifdef EXT int sz, s_size, r_size, maxlen; int ierr; ierr=0; if( Bmark->reduction ) { MPI_Type_size(c_info->red_data_type,&s_size); r_size=s_size; } else { MPI_Type_size(c_info->s_data_type,&s_size); MPI_Type_size(c_info->r_data_type,&r_size); } if( c_info -> rank >= 0 ) { IMB_user_set_info(&c_info->info); maxlen = 1< maxlen ) sz = maxlen*MSGSPERSAMPLE; if( Bmark->access == put) { ierr = MPI_Win_create(c_info->r_buffer,sz,r_size,c_info->info, c_info->communicator, &c_info->WIN); MPI_ERRHAND(ierr); ierr = MPI_Win_fence(0, c_info->WIN); MPI_ERRHAND(ierr); } else if( Bmark->access == get) { ierr = MPI_Win_create(c_info->s_buffer,sz,s_size,c_info->info, c_info->communicator, &c_info->WIN); MPI_ERRHAND(ierr); ierr = MPI_Win_fence(0, c_info->WIN); MPI_ERRHAND(ierr); } } #endif #endif IMB_set_errhand(c_info); err_flag = 0; } void IMB_close_transfer (struct comm_info* c_info, struct Bench* Bmark, int size) /* Closes / frees file / window components Input variables: -Bmark (type struct Bench*) (For explanation of struct Bench type: describes all aspects of modes of a benchmark; see [1] for more information) Given benchmark -size (type int) (Only IO case): used to determine file view In/out variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information Corresponding components (File or Window related) are freed */ { #ifdef MPIIO if( c_info->view != MPI_DATATYPE_NULL ) MPI_Type_free(&c_info->view); MPI_File_close(&c_info->fh); #else #ifdef EXT if( c_info->WIN != MPI_WIN_NULL ) MPI_Win_free(&c_info->WIN); #endif #endif } IMB_3.0/src/IMB_mem_manager.c0000644014562400001620000004451110455013232015117 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf File: IMB_mem_manager.c Implemented functions: IMB_v_alloc; IMB_i_alloc; IMB_alloc_buf; IMB_alloc_aux; IMB_free_aux; IMB_v_free; IMB_ass_buf; IMB_set_buf; IMB_init_pointers; IMB_init_buffers; IMB_free_all; IMB_del_s_buf; IMB_del_r_buf; ***************************************************************************/ #include "IMB_declare.h" #include "IMB_benchmark.h" #include "IMB_prototypes.h" void* IMB_v_alloc(int Len, char* where) /* Allocates void* memory Input variables: -Len (type int) #bytes to allocate -where (type char*) Comment (marker for calling place) Return value (type void*) Allocated pointer */ { void* B; Len=max(asize,Len); if( (B = (void*)malloc(Len) ) == NULL ) { printf ("Memory allocation failed. code position: %s. tried to alloc. %d bytes\n",where,Len); return NULL; } return B; } void IMB_i_alloc(int** B, int Len, char* where ) /* Allocates int memory Input variables: -Len (type int) #int's to allocate -where (type char*) Comment (marker for calling place) In/out variables: -B (type int**) *B contains allocated memory */ { Len=max(1,Len); *B = (int*) IMB_v_alloc(sizeof(int)*Len, where); } void IMB_alloc_buf(struct comm_info* c_info, char* where, int s_len, int r_len) /* Allocates send/recv buffers for message passing Input variables: -where (type char*) Comment (marker for calling place) -s_len (type int) Send buffer length (bytes) -r_len (type int) Recv buffer length (bytes) In/out variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information Send/Recv buffer components get allocated */ { /* July 2002 V2.2.1 change: use MPI_Alloc_mem */ #if ( defined EXT || defined MPIIO ) MPI_Aint slen = (MPI_Aint)(max(1,s_len)); MPI_Aint rlen = (MPI_Aint)(max(1,r_len)); int ierr; #else s_len=max(1,s_len); r_len=max(1,r_len); #endif if( c_info->s_alloc < s_len ) { if( c_info->s_alloc > 0 ) /* July 2002 V2.2.1 change: use MPI_Alloc_mem */ #if ( defined EXT || defined MPIIO ) { MPI_Free_mem(c_info->s_buffer); } ierr=MPI_Alloc_mem(slen, MPI_INFO_NULL, &c_info->s_buffer); MPI_ERRHAND(ierr); #else { free(c_info->s_buffer); } c_info->s_buffer = IMB_v_alloc(s_len,where); #endif c_info->s_alloc = s_len; c_info->s_data = (assign_type*)c_info->s_buffer; } if( c_info->r_alloc < r_len ) { if( c_info->r_alloc > 0 ) /* July 2002 V2.2.1 change: use MPI_Alloc_mem */ #if ( defined EXT || defined MPIIO ) { MPI_Free_mem(c_info->r_buffer); } ierr=MPI_Alloc_mem(rlen, MPI_INFO_NULL, &c_info->r_buffer); MPI_ERRHAND(ierr); #else { free(c_info->r_buffer); } c_info->r_buffer = IMB_v_alloc(r_len,where); #endif c_info->r_alloc = r_len; c_info->r_data = (assign_type*)c_info->r_buffer; } } void IMB_alloc_aux(int L, char* where) /* Allocates global auxiliary memory AUX Input variables: -L (type int) #Bytes to allocate -where (type char*) Comment (marker for calling place) */ { L=max(asize,L); if( AUX_LEN < L) { if( AUX_LEN>0 ) free(AUX); AUX = IMB_v_alloc(L, where); AUX_LEN=L; } } void IMB_free_aux() /* Free-s global auxiliary memory AUX */ { if (AUX_LEN > 0 ) {free(AUX); AUX_LEN=0; } } void IMB_v_free(void **B) /* Free-s memory In/out variables: -B (type void**) (*B) will be free-d */ { if( *B ) free(*B); *B=NULL; } void IMB_ass_buf(void* buf, int rank, int pos1, int pos2, int value) /* Assigns values to a buffer Input variables: -rank (type int) Rank of calling process -pos1 (type int) -pos2 (type int) Assignment between byte positions pos1, pos2 -value (type int) 1/0 for non-zero (defined in IMB_settings.h)/ zero value In/out variables: -buf (type void*) Values assigned within given positions */ { if( pos2>= pos1 ) { int a_pos1, a_pos2, i, j; a_pos1 = pos1/asize; if( pos2>=pos1 ) a_pos2 = pos2/asize; else a_pos2 = a_pos1-1; if( value ) for ( i=a_pos1,j=0 ; i<=a_pos2; i++,j++ ) ((assign_type *)buf)[j] = BUF_VALUE(rank,i); else for ( i=a_pos1,j=0 ; i<=a_pos2; i++,j++ ) ((assign_type *)buf)[j] = 0.; if( a_pos1*asize != pos1 ) { void* xx = (void*)(((char*)buf)+pos1-a_pos1*asize); memmove(buf,xx,pos2-pos1+1); } } } void IMB_set_buf(struct comm_info* c_info, int selected_rank, int s_pos1, int s_pos2, int r_pos1, int r_pos2) /* Sets Send/Recv buffers for a selected rank (by call to => IMB_ass_buf) Input variables: -selected_rank (type int) Relevant process rank (Can be different from local rank: for checking purposes) -s_pos1 (type int) -s_pos2 (type int) s_pos1 .. s_pos2 positions for send buffer -r_pos1 (type int) -r_pos2 (type int) r_pos1 .. r_pos2 positions for recv buffer In/out variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information Corresponding buffer components are assigned values */ { /* Sets c_info->s_buffer/c_info->r_buffer int byte positions s_pos1..s_pos2/r_pos1..r_pos2 Values are taken for "selected_rank" Checks right allocation. */ int s_len, r_len; s_len = (max(s_pos2-s_pos1,0)/asize+1)*asize; r_len = (max(r_pos2-r_pos1,0)/asize+1)*asize; IMB_alloc_buf(c_info, "set_buf 1",s_len, r_len); if( s_pos2 >= s_pos1 ) IMB_ass_buf( c_info->s_buffer, selected_rank, s_pos1, s_pos2, 1); if( r_pos2 >= r_pos1 ) IMB_ass_buf( c_info->r_buffer, selected_rank, r_pos1, r_pos2, 0); } void IMB_init_pointers(struct comm_info *c_info ) /* Initializes pointer components of comm_info In/out variables: -c_info (type struct comm_info *) Collection of all base data for MPI; see [1] for more information Corresponding pointer components are initialized */ { /******************************************************************** --------------------------------------------------------------------- VARIABLE | TYPE | MEANING --------------------------------------------------------------------- In/Out : c_info | struct comm_info* | see comm_info.h | | Pointers initialized ----------------------------------------------------------------------*/ MPI_Comm_size(MPI_COMM_WORLD,&c_info->w_num_procs); MPI_Comm_rank(MPI_COMM_WORLD,&c_info->w_rank ); c_info->s_data_type = MPI_BYTE; /* DATA TYPE of SEND BUFFER */ c_info->r_data_type = MPI_BYTE; /* DATA TYPE of RECEIVE BUFFER */ c_info->op_type = MPI_SUM; /* OPERATION TYPE IN Allred */ c_info->red_data_type = MPI_FLOAT; /* NOTE: NO 'CAST' CHECK IN. IBUF */ c_info -> s_buffer = c_info -> r_buffer = NULL; c_info -> s_data = c_info -> r_data = NULL; c_info -> s_alloc = c_info -> r_alloc = 0; c_info->communicator= MPI_COMM_NULL; /* Auxiliary space */ IMB_i_alloc(&c_info->g_ranks,c_info->w_num_procs,"Init_Pointers 1"); IMB_i_alloc(&c_info->g_sizes,c_info->w_num_procs,"Init_Pointers 2"); IMB_i_alloc(&c_info->sndcnt,c_info->w_num_procs,"Init_Pointers 3"); IMB_i_alloc(&c_info->sdispl,c_info->w_num_procs,"Init_Pointers 4"); IMB_i_alloc(&c_info->reccnt,c_info->w_num_procs,"Init_Pointers 5"); IMB_i_alloc(&c_info->rdispl,c_info->w_num_procs,"Init_Pointers 6"); #ifdef MPIIO c_info->filename = c_info->datarep = (char*)NULL; c_info->view = MPI_DATATYPE_NULL; c_info->info = MPI_INFO_NULL; c_info->fh = MPI_FILE_NULL; #endif all_times = NULL; #ifdef CHECK all_defect = NULL; #endif IMB_init_errhand(c_info); } /**********************************************************************/ void IMB_init_buffers(struct comm_info* c_info, struct Bench* Bmark, int size) /* Initializes communications buffers (call set_buf) Input variables: -Bmark (type struct Bench*) (For explanation of struct Bench type: describes all aspects of modes of a benchmark; see [1] for more information) Current benchmark -size (type int) Message size In/out variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information Communications buffers are allocated and assigned values */ { int s_len, r_len, maxlen; int init_size; maxlen = 1< maxlen ) init_size = maxlen*MSGSPERSAMPLE; #endif #ifdef MPI1 init_size = maxlen; #endif if(c_info->rank < 0 ) return; if(!strcmp(Bmark->name,"Alltoall") || !strcmp(Bmark->name,"Alltoallv")) { s_len = c_info->num_procs*init_size; r_len = c_info->num_procs*init_size; } else if( !strcmp(Bmark->name,"Allgather") || !strcmp(Bmark->name,"Allgatherv") ) { s_len = init_size; r_len = c_info->num_procs*init_size; } else s_len = r_len = init_size; IMB_set_buf(c_info, c_info->rank, 0, s_len-1, 0, r_len-1); } /********************************************************************/ void IMB_free_all(struct comm_info* c_info, struct Bench** P_BList) /* Free-s all allocated memory in c_info and P_Blist In/out variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -P_BList (type struct Bench**) (For explanation of struct Bench type: describes all aspects of modes of a benchmark; see [1] for more information) */ { IMB_del_s_buf(c_info); IMB_del_r_buf(c_info); IMB_v_free((void**)&c_info->msglen); IMB_v_free((void**)&c_info->g_sizes); IMB_v_free((void**)&c_info->g_ranks); IMB_v_free((void**)&c_info->sndcnt); IMB_v_free((void**)&c_info->sdispl); IMB_v_free((void**)&c_info->reccnt); IMB_v_free((void**)&c_info->rdispl); if( c_info->communicator != MPI_COMM_NULL && c_info->communicator != MPI_COMM_SELF && c_info->communicator != MPI_COMM_WORLD ) { IMB_del_errhand(c_info); MPI_Comm_free(&c_info->communicator); } IMB_destruct_blist(P_BList); #ifdef MPIIO IMB_free_file(c_info); #endif if( all_times ) {free (all_times); all_times=(double*)NULL;} #ifdef CHECK if( all_defect ) {free (all_defect);all_defect=(double*)NULL;} if( AUX_LEN > 0 ) {free(AUX); AUX_LEN = 0;} #endif #ifdef DEBUG fclose(dbg_file); #endif } void IMB_del_s_buf(struct comm_info* c_info ) /* Deletes send buffer component of c_info In/out variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information */ { /* July 2002 V2.2.1 change: use MPI_Free_mem */ if ( c_info->s_alloc> 0) #if (defined EXT || defined MPIIO) MPI_Free_mem( c_info->s_buffer ); #else free( c_info->s_buffer ); #endif c_info-> s_alloc = 0; } void IMB_del_r_buf(struct comm_info* c_info ) /* Deletes recv buffer component of c_info In/out variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information */ { /* July 2002 V2.2.1 change: use MPI_Free_mem */ if ( c_info->r_alloc> 0) #if (defined EXT || defined MPIIO) MPI_Free_mem( c_info->r_buffer ); #else free( c_info->r_buffer ); #endif c_info-> r_alloc = 0; } IMB_3.0/src/IMB_ones_accu.c0000644014562400001620000001456110455013232014610 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf File: IMB_ones_accu.c Implemented functions: IMB_accumulate; ***************************************************************************/ /*-----------------------------------------------------------*/ #include "IMB_declare.h" #include "IMB_benchmark.h" #include "IMB_prototypes.h" /*************************************************************************/ void IMB_accumulate (struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) /* MPI-2 benchmark kernel Benchmarks MPI_Accumulate Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) Mode (aggregate/non aggregate; blocking/nonblocking); see "IMB_benchmark.h" for definition Output variables: -time (type double*) Timing result per sample */ { double t1, t2; Type_Size s_size,r_size; int s_num, r_num; int s_tag, r_tag; int dest, source, root; int i; MPI_Status stat; #ifdef CHECK defect=0; #endif ierr = 0; /* GET SIZE OF DATA TYPE */ MPI_Type_size(c_info->red_data_type,&s_size); if (s_size!=0) s_num=size/s_size; root = (c_info-> rank == 0); if( c_info-> rank < 0 ) *time = 0.; else { if( !RUN_MODE->AGGREGATE ) { *time = MPI_Wtime(); for(i=0;i< n_sample;i++) { ierr = MPI_Accumulate (c_info->s_buffer, s_num, c_info->red_data_type, 0, i*s_num, s_num, c_info->red_data_type, c_info->op_type, c_info->WIN ); MPI_ERRHAND(ierr); ierr = MPI_Win_fence(0, c_info->WIN); MPI_ERRHAND(ierr); #ifdef CHECK if( root ) { CHK_DIFF("Accumulate",c_info, (void*)(c_info->r_data+i*s_num), 0, size, size, asize, put, 0, n_sample, i, -1, &defect); IMB_ass_buf(c_info->r_buffer, 0, 0, size-1, 0); } MPI_Barrier(c_info->communicator); #endif } *time=(MPI_Wtime()-*time)/n_sample; } if( RUN_MODE->AGGREGATE ) { for(i=0; icommunicator); *time = MPI_Wtime(); for(i=0;i< n_sample;i++) { ierr = MPI_Accumulate ((void*)(c_info->s_data+i*s_num), s_num, c_info->red_data_type, 0, i*s_num, s_num, c_info->red_data_type, c_info->op_type, c_info->WIN ); MPI_ERRHAND(ierr); } ierr = MPI_Win_fence(0, c_info->WIN); MPI_ERRHAND(ierr); *time=(MPI_Wtime()-*time)/n_sample; #ifdef CHECK if( root ) { CHK_DIFF("Accumulate",c_info, c_info->r_buffer, 0, n_sample*size, n_sample*size, asize, put, 0, n_sample, -1, -1, &defect); } #endif } } } IMB_3.0/src/IMB_ones_bidir.c0000644014562400001620000001655410455013232014772 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf File: IMB_ones_bidir.c Implemented functions: IMB_bidir_get; IMB_bidir_put; ***************************************************************************/ #include "IMB_declare.h" #include "IMB_benchmark.h" #include "IMB_prototypes.h" /*************************************************************************/ void IMB_bidir_get(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) /* MPI-2 benchmark kernel Driver for aggregate / non agg. bidirectional MPI_Get benchmarks Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) Mode (aggregate/non aggregate; blocking/nonblocking); see "IMB_benchmark.h" for definition Output variables: -time (type double*) Timing result per sample */ { double t1, t2; Type_Size s_size,r_size; int s_num, r_num; int dest, source,sender; MPI_Status stat; ierr = 0; /* GET SIZE OF DATA TYPE */ MPI_Type_size(c_info->s_data_type,&s_size); MPI_Type_size(c_info->r_data_type,&r_size); if ((s_size!=0) && (r_size!=0)) { s_num=size/s_size; r_num=size/r_size; } if (c_info->rank == c_info->pair0) { dest = c_info->pair1; } else if (c_info->rank == c_info->pair1) { dest =c_info->pair0 ; } sender=0; if( !RUN_MODE->AGGREGATE ) IMB_ones_get( c_info, s_num, dest, r_num, sender, size, n_sample, time); if( RUN_MODE->AGGREGATE ) IMB_ones_mget( c_info, s_num, dest, r_num, sender, size, n_sample, time); } void IMB_bidir_put(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) /* MPI-2 benchmark kernel Driver for aggregate / non agg. bidirectional MPI_Put benchmarks Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) Mode (aggregate/non aggregate; blocking/nonblocking); see "IMB_benchmark.h" for definition Output variables: -time (type double*) Timing result per sample */ { double t1, t2; Type_Size s_size,r_size; int s_num, r_num; int dest, source,sender; int ierr; MPI_Status stat; /* GET SIZE OF DATA TYPE */ MPI_Type_size(c_info->s_data_type,&s_size); MPI_Type_size(c_info->r_data_type,&r_size); if ((s_size!=0) && (r_size!=0)) { s_num=size/s_size; r_num=size/r_size; } if (c_info->rank == c_info->pair0) { dest = c_info->pair1; } else if (c_info->rank == c_info->pair1) { dest =c_info->pair0 ; } sender=1; if( !RUN_MODE->AGGREGATE ) IMB_ones_put( c_info, s_num, dest, r_num, sender, size, n_sample, time); if( RUN_MODE->AGGREGATE ) IMB_ones_mput( c_info, s_num, dest, r_num, sender, size, n_sample, time); } IMB_3.0/src/IMB_ones_unidir.c0000644014562400001620000004417110455013232015167 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf File: IMB_ones_unidir.c Implemented functions: IMB_unidir_put; IMB_unidir_get; IMB_ones_get; IMB_ones_mget; IMB_ones_put; IMB_ones_mput; ***************************************************************************/ #include "IMB_declare.h" #include "IMB_benchmark.h" #include "IMB_prototypes.h" /*************************************************/ void IMB_unidir_put (struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) /* MPI-2 benchmark kernel Driver for aggregate / non agg. unidirectional MPI_Put benchmarks Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) Mode (aggregate/non aggregate; blocking/nonblocking); see "IMB_benchmark.h" for definition Output variables: -time (type double*) Timing result per sample */ { double t1, t2; Type_Size s_size,r_size; int s_num, r_num; int dest, source,sender; MPI_Status stat; ierr = 0; /* GET SIZE OF DATA TYPE */ MPI_Type_size(c_info->s_data_type,&s_size); MPI_Type_size(c_info->r_data_type,&r_size); if ((s_size!=0) && (r_size!=0)) { s_num=size/s_size; r_num=size/r_size; } if (c_info->rank == c_info->pair0) { dest = c_info->pair1; sender = 1; } else if (c_info->rank == c_info->pair1) { dest =c_info->pair0 ; sender = 0; } if( !RUN_MODE->AGGREGATE ) IMB_ones_put( c_info, s_num, dest, r_num, sender, size, n_sample, time); if( RUN_MODE->AGGREGATE ) IMB_ones_mput( c_info, s_num, dest, r_num, sender, size, n_sample, time); } /*************************************************************************/ void IMB_unidir_get (struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) /* MPI-2 benchmark kernel Driver for aggregate / non agg. unidirectional MPI_Get benchmarks Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) Mode (aggregate/non aggregate; blocking/nonblocking); see "IMB_benchmark.h" for definition Output variables: -time (type double*) Timing result per sample */ { double t1, t2; Type_Size s_size,r_size; int s_num, r_num; int dest, source,sender; int ierr; MPI_Status stat; /* GET SIZE OF DATA TYPE */ MPI_Type_size(c_info->s_data_type,&s_size); MPI_Type_size(c_info->r_data_type,&r_size); if ((s_size!=0) && (r_size!=0)) { s_num=size/s_size; r_num=size/r_size; } if (c_info->rank == c_info->pair0) { dest = c_info->pair1; sender = 1; } else if (c_info->rank == c_info->pair1) { dest =c_info->pair0 ; sender = 0; } if( !RUN_MODE->AGGREGATE ) IMB_ones_get( c_info, s_num, dest, r_num, sender, size, n_sample, time); if( RUN_MODE->AGGREGATE ) IMB_ones_mget( c_info, s_num, dest, r_num, sender, size, n_sample, time); } void IMB_ones_get(struct comm_info* c_info, int s_num, int dest, int r_num, int sender, int size, int n_sample, double* time) /* Non aggregate MPI_Get + MPI_Win_fence Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -s_num (type int) #bytes to put if relevant for calling process -dest (type int) destination rank -r_num (type int) #bytes to get if relevant for calling process -sender (type int) logical flag: 1/0 for 'local process puts/gets' -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) Mode (aggregate/non aggregate; blocking/nonblocking); see "IMB_benchmark.h" for definition Output variables: -time (type double*) Timing result per sample */ { int i, ierr; int s_size; #ifdef CHECK defect=0; #endif MPI_Type_size(c_info->s_data_type,&s_size); if( c_info-> rank < 0 ) *time = 0.; else { for(i=0; icommunicator); *time = MPI_Wtime(); if( sender ) { for(i=0;i< n_sample;i++) { /* "Send ", i.e. synchronize window */ ierr = MPI_Win_fence(0, c_info->WIN); MPI_ERRHAND(ierr); } } else { for(i=0;i< n_sample;i++) { /* "Receive" */ ierr = MPI_Get(c_info->r_buffer, r_num, c_info->r_data_type, dest, i*s_num, s_num, c_info->s_data_type, c_info->WIN); ierr = MPI_Win_fence(0, c_info->WIN); MPI_ERRHAND(ierr); DIAGNOSTICS("MPI_Get: ",c_info,c_info->r_buffer,r_num,r_num,i,0); CHK_DIFF("MPI_Get",c_info, c_info->r_buffer, i*r_num, size, size, asize, get, 0, n_sample, i, dest, &defect); } } *time=(MPI_Wtime()-*time)/n_sample; } } void IMB_ones_mget(struct comm_info* c_info, int s_num, int dest, int r_num, int sender, int size, int n_sample, double* time) /* Aggregate MPI_Get + MPI_Win_fence Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -s_num (type int) #bytes to put if relevant for calling process -dest (type int) destination rank -r_num (type int) #bytes to get if relevant for calling process -sender (type int) logical flag: 1/0 for 'local process puts/gets' -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) Mode (aggregate/non aggregate; blocking/nonblocking); see "IMB_benchmark.h" for definition Output variables: -time (type double*) Timing result per sample */ { int i, ierr; char* recv; #ifdef CHECK defect=0; #endif if( c_info-> rank < 0 ) *time = 0.; else { recv = (char*)c_info->r_buffer; ierr = MPI_Win_fence(0, c_info->WIN); MPI_ERRHAND(ierr); for(i=0; icommunicator); *time = MPI_Wtime(); if( !sender ) for(i=0;i< n_sample;i++) { ierr = MPI_Get((void*)(recv+i*r_num), r_num, c_info->r_data_type, dest, i*s_num, s_num, c_info->s_data_type, c_info->WIN); } ierr = MPI_Win_fence(0, c_info->WIN); MPI_ERRHAND(ierr); *time=(MPI_Wtime()-*time)/n_sample; #ifdef CHECK if(!sender) CHK_DIFF("MPI_Get",c_info, c_info->r_buffer, 0, n_sample*r_num, n_sample*r_num, asize, get, 0, n_sample, i, dest, &defect); #endif } } void IMB_ones_put(struct comm_info* c_info, int s_num, int dest, int r_num, int sender, int size, int n_sample, double* time) /* Non aggregate MPI_Put + MPI_Win_fence Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -s_num (type int) #bytes to put if relevant for calling process -dest (type int) destination rank -r_num (type int) #bytes to get if relevant for calling process -sender (type int) logical flag: 1/0 for 'local process puts/gets' -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) Mode (aggregate/non aggregate; blocking/nonblocking); see "IMB_benchmark.h" for definition Output variables: -time (type double*) Timing result per sample */ { int i, ierr, r_size; char* recv; #ifdef CHECK defect=0; #endif MPI_Type_size(c_info->r_data_type,&r_size); recv = (char*)c_info->r_buffer; if( c_info-> rank < 0 ) *time = 0.; else { for(i=0; icommunicator); *time = MPI_Wtime(); if( sender ) { for(i=0;i< n_sample;i++) { /* Send */ ierr = MPI_Put(c_info->s_buffer, s_num, c_info->s_data_type, dest, i*r_num, r_num, c_info->r_data_type, c_info->WIN); ierr = MPI_Win_fence(0, c_info->WIN); MPI_ERRHAND(ierr); } } else { for(i=0;i< n_sample;i++) { /* "Receive", i.e. synchronize the window */ ierr = MPI_Win_fence(0, c_info->WIN); MPI_ERRHAND(ierr); DIAGNOSTICS("MPI_Put: ",c_info,c_info->r_buffer,r_num,r_num,i,0); CHK_DIFF("MPI_Put",c_info, (void*)(recv+i*r_num), 0, size, size, asize, get, 0, n_sample, i, dest, &defect); } } *time=(MPI_Wtime()-*time)/n_sample; } } void IMB_ones_mput(struct comm_info* c_info, int s_num, int dest, int r_num, int sender, int size, int n_sample, double* time) /* Aggregate MPI_Put + MPI_Win_fence Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -s_num (type int) #bytes to put if relevant for calling process -dest (type int) destination rank -r_num (type int) #bytes to get if relevant for calling process -sender (type int) logical flag: 1/0 for 'local process puts/gets' -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) Mode (aggregate/non aggregate; blocking/nonblocking); see "IMB_benchmark.h" for definition Output variables: -time (type double*) Timing result per sample */ { int i, ierr; char* send; #ifdef CHECK defect=0; #endif if( c_info-> rank < 0 ) *time = 0.; else { send = (char*)c_info->s_buffer; ierr = MPI_Win_fence(0, c_info->WIN); MPI_ERRHAND(ierr); for(i=0; icommunicator); *time = MPI_Wtime(); if( sender ) for(i=0;i< n_sample;i++) { ierr = MPI_Put((void*)(send+i*s_num), s_num, c_info->s_data_type, dest, i*r_num, r_num, c_info->r_data_type, c_info->WIN); MPI_ERRHAND(ierr); } ierr = MPI_Win_fence(0, c_info->WIN); MPI_ERRHAND(ierr); *time=(MPI_Wtime()-*time)/n_sample; if(!sender) CHK_DIFF("MPI_Put",c_info, c_info->r_buffer, 0, n_sample*r_num, n_sample*r_num, asize, get, 0, n_sample, -1, dest, &defect); } } IMB_3.0/src/IMB_open_close.c0000644014562400001620000001212710455013232014773 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf File: IMB_open_close.c Implemented functions: IMB_open_close; ***************************************************************************/ #include "IMB_declare.h" #include "IMB_benchmark.h" #include "IMB_prototypes.h" /*************************************************************************/ void IMB_open_close(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) /* MPI-IO benchmark kernel MPI_File_open + MPI_File_close Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) Mode (aggregate/non aggregate; blocking/nonblocking); see "IMB_benchmark.h" for definition Output variables: -time (type double*) Timing result per sample */ { double t1, t2; int i, dum; MPI_Status stat; ierr = 0; if(c_info->rank!=-1) { for(i=0; icommunicator); t1 = MPI_Wtime(); for(i=0;i< n_sample;i++) { ierr = MPI_File_open(c_info->File_comm, c_info->filename, c_info->amode, c_info->info, &c_info->fh); MPI_ERRHAND(ierr); ierr=MPI_File_write (c_info->fh, (void*)&dum, 1 ,c_info->etype,&stat); ierr = MPI_File_close(&c_info->fh); MPI_ERRHAND(ierr); } t2 = MPI_Wtime(); *time=(t2 - t1)/(n_sample); } else { *time = 0.; } } IMB_3.0/src/IMB_output.c0000644014562400001620000006405110455013232014210 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf File: IMB_output.c Implemented functions: IMB_output; IMB_display_times; IMB_show_selections; IMB_show_procids; IMB_print_array; IMB_print_int_row; IMB_print_info; IMB_print_headlines; IMB_edit_format; IMB_make_line; New in IMB_3.0: IMB_help; ***************************************************************************/ #include #include "IMB_declare.h" #include "IMB_benchmark.h" #include "IMB_prototypes.h" /*****************************************************************/ void IMB_output(struct comm_info* c_info, struct Bench* Bmark, MODES BMODE, int header, int size, int n_sample, double *time) /* Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -Bmark (type struct Bench*) (For explanation of struct Bench type: describes all aspects of modes of a benchmark; see [1] for more information) The actual benchmark -BMODE (type MODES) The actual benchmark mode (if relevant; only MPI-2 case, see [1]) -header (type int) 1/0 for do/don't print table headers -size (type int) Benchmark message size -n_sample (type int) Benchmark repetition number -time (type double *) Benchmark timing outcome 3 numbers (min/max/average) */ { double scaled_time[MAX_TIMINGS]; int DO_OUT; int GROUP_OUT; int i,i_gr; int li_len; int edit_type; ierr = 0; DO_OUT = (c_info->w_rank == 0 ); GROUP_OUT = (c_info->group_mode > 0 ); if (DO_OUT) { /* Fix IMB_1.0.1: NULL all_times before allocation */ IMB_v_free((void**)&all_times); all_times = (double*)IMB_v_alloc(c_info->w_num_procs * Bmark->Ntimes * sizeof(double), "Output 1"); #ifdef CHECK if(!all_defect) { all_defect = (double*)IMB_v_alloc(c_info->w_num_procs * sizeof(double), "Output 1"); for(i=0; iw_num_procs; i++) all_defect[i]=0.; } #endif } /* Scale the timings */ for(i=0; iNtimes; i++) scaled_time[i] = time[i] * SCALE * Bmark->scale_time; /* collect all times */ ierr=MPI_Gather(scaled_time,Bmark->Ntimes,MPI_DOUBLE,all_times,Bmark->Ntimes,MPI_DOUBLE,0,MPI_COMM_WORLD); MPI_ERRHAND(ierr); #ifdef CHECK /* collect all defects */ ierr=MPI_Gather(&defect,1,MPI_DOUBLE,all_defect,1,MPI_DOUBLE,0,MPI_COMM_WORLD); MPI_ERRHAND(ierr); #endif if( DO_OUT ) { BTYPES type= Bmark->RUN_MODES[0].type; if ( Bmark->RUN_MODES[0].NONBLOCKING ) edit_type = 4; else if ( type == SingleTransfer && c_info->group_mode != 0 ) edit_type=0; else if ( type == ParallelTransfer || type == SingleTransfer ) edit_type=1; else if (type == Collective ) #ifdef MPIIO edit_type=1; #else edit_type=2; #endif else edit_type=3; if( header ) { fprintf(unit,"\n"); /* FOR GNUPLOT: CURVE SEPERATOR */ if( GROUP_OUT ) {strcpy(aux_string,"&Group") ; li_len=1;} else {strcpy(aux_string,""); li_len=0;} if ( edit_type == 0 ) { li_len+=4; strcat(aux_string,"&#bytes&#repetitions&t[usec]&Mbytes/sec&"); } else if ( edit_type == 1 ) { li_len+=6; strcat(aux_string, "&#bytes&#repetitions&t_min[usec]&t_max[usec]&t_avg[usec]&Mbytes/sec&"); } else if ( edit_type == 2 ) { li_len+=5; strcat(aux_string, "&#bytes&#repetitions&t_min[usec]&t_max[usec]&t_avg[usec]&"); } else if ( edit_type == 3 ) { li_len+=4; strcat(aux_string, "&#repetitions&t_min[usec]&t_max[usec]&t_avg[usec]&"); } else { li_len+=6; strcat(aux_string, "&#bytes&#repetitions&t_ovrl[usec]&t_pure[usec]&t_CPU[usec]& overlap[%]&"); } #ifdef CHECK if( Bmark->RUN_MODES[0].type != Sync && strcmp(Bmark->name,"Window") ) { li_len+=1; strcat(aux_string,"&defects&"); } #endif IMB_make_line(li_len); if( c_info->n_groups > 1) fprintf(unit,"# Benchmarking Multi-%s ",Bmark->name); else fprintf(unit,"# Benchmarking %s ",Bmark->name); IMB_show_procids(c_info); IMB_make_line(li_len); switch(BMODE->AGGREGATE) { case 1: fprintf(unit,"#\n# MODE: AGGREGATE \n#\n"); break; case 0: fprintf(unit,"#\n# MODE: NON-AGGREGATE \n#\n"); break; } IMB_print_headlines(aux_string); } if( GROUP_OUT ) { for( i_gr=0; i_grn_groups; i_gr++ ) { if(i_gr == 0) fprintf(unit,"\n"); IMB_display_times(Bmark, all_times, c_info, i_gr, n_sample, size, edit_type); } } else IMB_display_times(Bmark, all_times, c_info, 0, n_sample, size, edit_type); } } /*****************************************************************/ void IMB_display_times(struct Bench* Bmark, double* tlist, struct comm_info* c_info, int group, int n_sample, int size, int edit_type) /* Input variables: -Bmark (type struct Bench*) (For explanation of struct Bench type: describes all aspects of modes of a benchmark; see [1] for more information) The actual benchmark -tlist (type double*) Benchmark timing outcome 3 numbers (min/max/average) -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -group (type int) Index of group to be displayed (multi-case only) -n_sample (type int) Benchmark repetition number -size (type int) Benchmark message size -edit_type (type int) Code for table formatting details */ { static double MEGA = 1.0/1048576.0; double tmax, tmin, tav, t_pure, throughput, overlap; #ifdef CHECK double defect; #endif int i, ip, itim, inc; if( c_info->g_sizes[group]<= 0 ) return; inc = Bmark->Ntimes; for(itim=0; itim < Bmark->Ntimes; itim++ ) { if( c_info->group_mode > 0) { i =0; ip=0; while( ig_sizes[i++]; } tmin = tlist[ip*inc+itim]; tmax = 0.; tav = 0.; #ifdef CHECK defect = 0.; #endif for(i=0; ig_sizes[group]; i++) { tmax = max(tmax,tlist[(ip+i)*inc+itim]); tmin = min(tmin,tlist[(ip+i)*inc+itim]); tav += tlist[(ip+i)*inc+itim]; #ifdef CHECK defect = max ( defect, all_defect[c_info->g_ranks[ip+i]] ); #endif } tav /= c_info->g_sizes[group]; } else { ip = 0; for( i=0; in_groups; i++ ) ip += c_info->g_sizes[i]; tmin = tlist[itim]; tmax = 0.; tav = 0.; #ifdef CHECK defect = 0.; #endif for(i=0; ig_ranks[i]; tmax = max(tmax,tlist[rank*inc+itim]); tmin = min(tmin,tlist[rank*inc+itim]); tav += tlist[rank*inc+itim]; #ifdef CHECK defect = max ( defect, all_defect[rank] ); #endif } tav /= ip; } ip=0; if( Bmark->RUN_MODES[0].NONBLOCKING ) if( itim == 0 ) { t_pure = tmax; } else { overlap = 100.*max(0,min(1,(t_pure+tCPU-tmax)/min(t_pure,tCPU))); } } /* for (itim .. ) */ throughput = 0.; if( tmax > 0. ) throughput = (Bmark->scale_bw*SCALE*MEGA)*size/tmax; if(c_info->group_mode > 0 ) { IMB_edit_format(1,0); sprintf(aux_string,format,group); ip=strlen(aux_string); } if( edit_type == 0 ) { IMB_edit_format(2,2); sprintf(aux_string+ip,format,size,n_sample, tmax,throughput); } else if ( edit_type == 1 ) { IMB_edit_format(2,4); sprintf(aux_string+ip,format,size,n_sample,tmin,tmax, tav,throughput); } else if ( edit_type == 2 ) { IMB_edit_format(2,3); sprintf(aux_string+ip,format,size,n_sample,tmin,tmax,tav); } else if ( edit_type == 3 ) { IMB_edit_format(1,3); sprintf(aux_string+ip,format,n_sample,tmin,tmax,tav); } else if ( edit_type == 4 ) { IMB_edit_format(2,4); sprintf(aux_string+ip,format,size,n_sample,tmax,t_pure,tCPU,overlap); } #ifdef CHECK if ( edit_type != 3 && strcmp(Bmark->name,"Window") ) { IMB_edit_format(0,1); ip=strlen(aux_string); sprintf(aux_string+ip,format,defect); if( defect > TOL ) Bmark->success=0; } #endif fprintf(unit,"%s\n",aux_string); fflush(unit); } /************************************************************************/ void IMB_show_selections(struct comm_info* c_info, struct Bench* BList) /* Displays on stdout an overview of the user selections Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -BList (type struct Bench*) (For explanation of struct Bench type: describes all aspects of modes of a benchmark; see [1] for more information) The requested list of benchmarks */ { if(c_info->w_rank == 0 ) { IMB_general_info(); fprintf(unit,"#\n"); #ifndef MPIIO fprintf(unit,"# Minimum message length in bytes: %d\n",0); fprintf(unit,"# Maximum message length in bytes: %d\n",1<w_rank == 0 ) { if(c_info->n_groups == 1) { if( c_info->px>1 && c_info->py>1 ) { fprintf(unit,"\n# #processes = %d; rank order (rowwise): \n", c_info->num_procs); ip=0; for( i=0; ipx && ipNP; i++) { py = c_info->w_num_procs/c_info->px; if( iw_num_procs%c_info->px ) py++; py = min(py,c_info->NP-ip); IMB_print_array(c_info->g_ranks+ip,1,0,py,"",unit); fprintf(unit,"\n"); ip = ip+py; } } else fprintf(unit,"\n# #processes = %d \n",c_info->num_procs); idle = c_info->w_num_procs-c_info->num_procs; } if(c_info->n_groups != 1) { fprintf(unit,"\n# ( %d groups of %d processes each running simultaneous ) \n", c_info->n_groups,c_info->num_procs); IMB_print_array(c_info->g_ranks,c_info->n_groups,0, c_info->g_sizes[0],"Group ",unit); idle = c_info->w_num_procs - c_info->n_groups*c_info->g_sizes[0]; } if( idle ) { if( idle == 1 ) fprintf(unit,"# ( %d additional process waiting in MPI_Barrier)\n",idle); else fprintf(unit,"# ( %d additional processes waiting in MPI_Barrier)\n",idle); } } } void IMB_print_array(int* Array, int N, int disp_N, int M, char* txt, FILE* unit) /* Formattedly prints to stdout a M by N int array Input variables: -Array (type int*) Array to be printed -N (type int) Number of rows to be printed -disp_N (type int) Displacement in Array where frist row begins -M (type int) Number of columns -txt (type char*) Accompanying text -unit (type FILE*) Output unit */ { #define MAX_SHOW 1024 int i,j; char* outtxt; int do_out; do_out=0; if( txt ) if( strcmp(txt,"") ) { outtxt=(char*) malloc( (strlen(txt)+6)*sizeof(char)); do_out=1; } if( N<=1 ) { if( M>MAX_SHOW ) { fprintf(unit,"# "); IMB_print_int_row(unit, Array, MAX_SHOW/2); fprintf(unit," ... "); IMB_print_int_row(unit, &Array[M-MAX_SHOW/2], MAX_SHOW/2); } else { if( do_out ) fprintf(unit,"# %s",txt); else fprintf(unit,"# "); IMB_print_int_row(unit, Array, M); } } else if ( N<=MAX_SHOW ) { int zero=0, one=1; for( i=0; i 0) fprintf(unit,"# Got %d Info-keys:\n\n",nkeys); for( ikey=0; ikey]\n\ [-multi ]\n\ [-msglen ]\n\ [-map ]\n\ [-input ]\n\ [benchmark1 [,benchmark2 [,...]]]\n\ \n\ where \n\ \n\ - h ( or help) just provides basic help \n\ (if active, all other arguments are ignored)\n\ \n\ - NPmin is the minimum number of processes to run on\n\ (then if IMB is started on NP processes, the process numbers \n\ NPmin, 2*NPmin, ... ,2^k * NPmin < NP, NP are used)\n\ >>>\n\ to run on just NP processes, run IMB on NP and select -npmin NP\n\ <<<\n\ Default: NPmin=2\n\ \n\ - P,Q are integer numbers with P*Q <= NP\n\ Enter PxQ with the 2 numbers separated by letter \"x\" and no blancs\n\ The basic communicator is set up as P by Q process grid\n\ \n\ If, e.g., one runs on N nodes of X processors each, and inserts\n\ P=X, Q=N, then the numbering of processes is \"inter node first\".\n\ Running PingPong with P=X, Q=2 would measure inter-node performance\n\ (assuming MPI default would apply 'normal' mapping, i.e. fill nodes\n\ first priority) \n\ \n\ Default: Q=1\n\ \n\ - MultiMode is 0 or 1\n\ \n\ if -multi is selected, running the N process version of a benchmark\n\ on NP overall, means running on (NP/N) simultaneous groups of N each.\n\ \n\ MultiMode only controls default (0) or extensive (1) output charts.\n\ 0: Only lowest performance groups is output\n\ 1: All groups are output\n\ \n\ Default: multi off\n\ \n\ - Lengths_file is an ASCII file, containing any set of nonnegative\n\ message lengths, 1 per line\n\ \n\ Default: no Lengths_file, lengths defined by settings.h, settings_io.h\n\ \n\ - filename is any text file containing, line by line, benchmark names.\n\ Facilitates running particular benchmarks as compared to using the\n\ command line.\n\ \n\ Default: no input file exists\n\ \n\ - benchmarkX is (in arbitrary lower/upper case spelling)\n\ \n"); #ifdef MPI1 fprintf(unit,"\ PingPong\n\ PingPing\n\ Sendrecv\n\ Exchange\n\ Bcast\n\ Allgather\n\ Allgatherv\n\ Alltoall\n\ Alltoallv\n\ Reduce\n\ Reduce_scatter\n\ Allreduce\n\ Barrier\n\ \n"); #elif defined(EXT) fprintf(unit,"\ Window\n\ Unidir_Put\n\ Unidir_Get\n\ Bidir_Get\n\ Bidir_Put\n\ Accumulate\n\ \n"); #else fprintf(unit,"\ S_Write_indv\n\ S_Read_indv\n\ S_Write_expl\n\ S_Read_expl\n\ P_Write_indv\n\ P_Read_indv\n\ P_Write_expl\n\ P_Read_expl\n\ P_Write_shared\n\ P_Read_shared\n\ P_Write_priv\n\ P_Read_priv\n\ C_Write_indv\n\ C_Read_indv\n\ C_Write_expl\n\ C_Read_expl\n\ C_Write_shared\n\ C_Read_shared\n\ \n"); #endif } IMB_3.0/src/IMB_parse_name_ext.c0000644014562400001620000001526610455013232015646 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf File: IMB_parse_name_ext.c Implemented functions: IMB_get_def_cases; IMB_set_bmark; ***************************************************************************/ #include #include "IMB_declare.h" #include "IMB_benchmark.h" #include "IMB_bnames_ext.h" #include "IMB_comments.h" #include "IMB_prototypes.h" void IMB_get_def_cases(char*** defc, char*** Gcmt) /* Initializes default benchmark names (defc) and accompanying comments (Gcmt) In/out variables: -defc (type char***) List of benchkark names (strings) -Gcmt (type char***) List of general comments (strings) */ { *defc = &DEFC[0]; *Gcmt = &Gral_cmt[0]; } void IMB_set_bmark(struct Bench* Bmark) /* In/out variables: -Bmark (type struct Bench*) (For explanation of struct Bench type: describes all aspects of modes of a benchmark; see [1] for more information) On input, only the name of the benchmark is set. On output, all necessary run modes are set accordingly */ { BTYPES type; int index; IMB_get_def_index(&index,Bmark->name); if( index < 0 ) { Bmark->RUN_MODES[0].type=BTYPE_INVALID; Bmark->RUN_MODES[1].type=BTYPE_INVALID; return; } Bmark->RUN_MODES[0].AGGREGATE=1; Bmark->RUN_MODES[1].AGGREGATE=0; Bmark->RUN_MODES[0].NONBLOCKING =0; Bmark->RUN_MODES[1].NONBLOCKING =0; Bmark->N_Modes = 2; Bmark->reduction = 0; Bmark->Ntimes = 1; if (!strcmp(Bmark->name,"unidir_get")) { strcpy(Bmark->name,"Unidir_Get"); Bmark->Benchmark = IMB_unidir_get; Bmark->bench_comments = &Unidir_Get_cmt[0]; type = SingleTransfer; Bmark->access = get; } else if (!strcmp(Bmark->name,"unidir_put")) { strcpy(Bmark->name,"Unidir_Put"); Bmark->Benchmark = IMB_unidir_put; Bmark->bench_comments = &Unidir_Put_cmt[0]; type = SingleTransfer; Bmark->access = put; } else if (!strcmp(Bmark->name,"bidir_get")) { strcpy(Bmark->name,"Bidir_Get"); Bmark->Benchmark = IMB_bidir_get; Bmark->bench_comments = &Bidir_Get_cmt[0]; type = SingleTransfer; Bmark->access = get; } else if (!strcmp(Bmark->name,"bidir_put")) { strcpy(Bmark->name,"Bidir_Put"); Bmark->Benchmark = IMB_bidir_put; Bmark->bench_comments = &Bidir_Put_cmt[0]; type = SingleTransfer; Bmark->access = put; } else if (!strcmp(Bmark->name,"accumulate")) { strcpy(Bmark->name,"Accumulate"); Bmark->Benchmark = IMB_accumulate; Bmark->bench_comments = &Accumulate_cmt[0]; type = Collective; Bmark->access = put; Bmark->reduction = 1; } else if (!strcmp(Bmark->name,"window")) { strcpy(Bmark->name,"Window"); Bmark->Benchmark = IMB_window; Bmark->bench_comments = &Window_cmt[0]; Bmark->RUN_MODES[0].AGGREGATE=-1; Bmark->N_Modes = 1; type = Collective; Bmark->access = no; Bmark->reduction = 1; } else { type = BTYPE_INVALID; } Bmark->RUN_MODES[0].type=type; Bmark->RUN_MODES[1].type=type; } IMB_3.0/src/IMB_parse_name_io.c0000644014562400001620000002041510455013232015445 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf File: IMB_parse_name_io.c Implemented functions: IMB_get_def_cases; IMB_set_bmark; ***************************************************************************/ #include #include "IMB_declare.h" #include "IMB_benchmark.h" #include "IMB_bnames_io.h" #include "IMB_comments.h" #include "IMB_prototypes.h" void IMB_get_def_cases(char*** defc, char*** Gcmt) /* Initializes default benchmark names (defc) and accompanying comments (Gcmt) In/out variables: -defc (type char***) List of benchkark names (strings) -Gcmt (type char***) List of general comments (strings) */ { *defc = &DEFC[0]; *Gcmt = &Gral_cmt[0]; } void IMB_set_bmark(struct Bench* Bmark) /* In/out variables: -Bmark (type struct Bench*) (For explanation of struct Bench type: describes all aspects of modes of a benchmark; see [1] for more information) On input, only the name of the benchmark is set. On output, all necessary run modes are set accordingly */ { BTYPES type; char *tmp_name; int md, nam_beg; int index; IMB_get_def_index(&index,Bmark->name); if( index < 0 ) { Bmark->RUN_MODES[0].type=BTYPE_INVALID; Bmark->RUN_MODES[1].type=BTYPE_INVALID; return; } Bmark->RUN_MODES[0].AGGREGATE=1; Bmark->RUN_MODES[1].AGGREGATE=0; Bmark->reduction=0; Bmark->Ntimes = 1; md = 0; nam_beg = 2; if( Bmark->name[0] == 's' ) { type = SingleTransfer; Bmark->name[0] = 'S'; if( Bmark->name[2] == 'i' ) {md = 1; nam_beg++;Bmark->name[2]='I';} } if( Bmark->name[0] == 'p' ) { type = ParallelTransfer; Bmark->name[0] = 'P'; if( Bmark->name[2] == 'i' ) {md = 1; nam_beg++;Bmark->name[2]='I';} } if( Bmark->name[0] == 'c' ) { type = Collective; Bmark->name[0] = 'C'; if( Bmark->name[2] == 'i' ) {md = 1; nam_beg++;Bmark->name[2]='I';} } if( md ) do_nonblocking=1; Bmark->Ntimes += md; Bmark->RUN_MODES[0].NONBLOCKING =md; Bmark->RUN_MODES[1].NONBLOCKING =md; tmp_name=Bmark->name+nam_beg; if (!strcmp(tmp_name,"write_indv")) { strcpy(tmp_name,"Write_Indv"); Bmark->Benchmark = IMB_write_indv; Bmark->bench_comments = &Write_Indv_cmt[0]; Bmark->access = put; Bmark->fpointer = indv_block; } else if (!strcmp(tmp_name,"write_shared")) { strcpy(tmp_name,"Write_Shared"); Bmark->Benchmark = IMB_write_shared; Bmark->bench_comments = &Write_Shared_cmt[0]; Bmark->access = put; Bmark->fpointer = shared; } else if (!strcmp(tmp_name,"write_priv")) { strcpy(tmp_name,"Write_Priv"); Bmark->Benchmark = IMB_write_indv; Bmark->bench_comments = &Write_Priv_cmt[0]; Bmark->access = put; Bmark->fpointer = private; } else if (!strcmp(tmp_name,"write_expl")) { strcpy(tmp_name,"Write_Expl"); Bmark->Benchmark = IMB_write_expl; Bmark->bench_comments = &Write_Expl_cmt[0]; Bmark->access = put; Bmark->fpointer = explicit; } else if (!strcmp(tmp_name,"read_indv")) { strcpy(tmp_name,"Read_Indv"); Bmark->Benchmark = IMB_read_indv; Bmark->bench_comments = &Read_Indv_cmt[0]; Bmark->access = get; Bmark->fpointer = indv_block; } else if (!strcmp(tmp_name,"read_shared")) { strcpy(tmp_name,"Read_Shared"); Bmark->Benchmark = IMB_read_shared; Bmark->bench_comments = &Read_Shared_cmt[0]; Bmark->access = get; Bmark->fpointer = shared; } else if (!strcmp(tmp_name,"read_priv")) { strcpy(tmp_name,"Read_Priv"); Bmark->Benchmark = IMB_read_indv; Bmark->bench_comments = &Read_Priv_cmt[0]; Bmark->access = get; Bmark->fpointer = private; } else if (!strcmp(tmp_name,"read_expl")) { strcpy(tmp_name,"Read_Expl"); Bmark->Benchmark = IMB_read_expl; Bmark->bench_comments = &Read_Expl_cmt[0]; Bmark->access = get; Bmark->fpointer = explicit; } else if (!strcmp(Bmark->name,"open_close")) { strcpy(Bmark->name,"Open_Close"); Bmark->Benchmark = IMB_open_close; Bmark->bench_comments = &Open_cmt[0]; type = Sync; Bmark->RUN_MODES[0].AGGREGATE=-1; Bmark->access = no; Bmark->fpointer = explicit; } else { type = BTYPE_INVALID; } if( Bmark->access == no ) Bmark->Ntimes = 1; Bmark->RUN_MODES[0].type=type; Bmark->RUN_MODES[1].type=type; if( type == SingleTransfer ) Bmark->fpointer = private; if( Bmark->access == get || Bmark->access == no || md ) Bmark->N_Modes = 1; else Bmark->N_Modes = 2; } IMB_3.0/src/IMB_parse_name_mpi1.c0000644014562400001620000002003710455013232015704 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf File: IMB_parse_name_mpi1.c Implemented functions: IMB_get_def_cases; IMB_set_bmark; ***************************************************************************/ #include "IMB_declare.h" #include "IMB_benchmark.h" #include "IMB_bnames_mpi1.h" #include "IMB_comments.h" #include "IMB_prototypes.h" void IMB_get_def_cases(char*** defc, char*** Gcmt) /* Initializes default benchmark names (defc) and accompanying comments (Gcmt) In/out variables: -defc (type char***) List of benchkark names (strings) -Gcmt (type char***) List of general comments (strings) */ { *defc = &DEFC[0]; *Gcmt = &Gral_cmt[0]; } void IMB_set_bmark(struct Bench* Bmark) /* In/out variables: -Bmark (type struct Bench*) (For explanation of struct Bench type: describes all aspects of modes of a benchmark; see [1] for more information) On input, only the name of the benchmark is set. On output, all necessary run modes are set accordingly */ { BTYPES type; int index; IMB_get_def_index(&index,Bmark->name); if( index < 0 ) { Bmark->RUN_MODES[0].type=BTYPE_INVALID; Bmark->RUN_MODES[1].type=BTYPE_INVALID; return; } Bmark->N_Modes = 1; Bmark->RUN_MODES[0].AGGREGATE=-1; Bmark->RUN_MODES[0].NONBLOCKING =0; Bmark->reduction = 0; Bmark->Ntimes = 1; if (!strcmp(Bmark->name,"pingpong")) { strcpy(Bmark->name,"PingPong"); Bmark->Benchmark = IMB_pingpong; Bmark->bench_comments = &PingPong_cmt[0]; type = SingleTransfer; Bmark->scale_time = 0.5; } else if (!strcmp(Bmark->name,"pingping")) { strcpy(Bmark->name,"PingPing"); Bmark->Benchmark = IMB_pingping; Bmark->bench_comments = &PingPing_cmt[0]; type = SingleTransfer; } else if (!strcmp(Bmark->name,"sendrecv")) { strcpy(Bmark->name,"Sendrecv"); Bmark->Benchmark = IMB_sendrecv; Bmark->bench_comments = &Sendrecv_cmt[0]; type = ParallelTransfer; Bmark->scale_time = 1.0; Bmark->scale_bw = 2.0; } else if (!strcmp(Bmark->name,"exchange") ) { strcpy(Bmark->name,"Exchange"); Bmark->Benchmark = IMB_exchange; Bmark->bench_comments = &Exchange_cmt[0]; type = ParallelTransfer; Bmark->scale_time = 1.0; Bmark->scale_bw = 4.0; } else if (!strcmp(Bmark->name,"allreduce")) { strcpy(Bmark->name,"Allreduce"); Bmark->Benchmark = IMB_allreduce; type = Collective; Bmark->bench_comments = &Allreduce_cmt[0]; Bmark->reduction = 1; } else if (!strcmp(Bmark->name,"reduce")) { strcpy(Bmark->name,"Reduce"); Bmark->Benchmark = IMB_reduce; type = Collective; Bmark->bench_comments = &Reduce_cmt[0]; Bmark->reduction = 1; } else if (!strcmp(Bmark->name,"reduce_scatter")) { strcpy(Bmark->name,"Reduce_scatter"); Bmark->Benchmark = IMB_reduce_scatter; type = Collective; Bmark->bench_comments = &Reduce_scatter_cmt[0]; Bmark->reduction = 1; } else if (!strcmp(Bmark->name,"bcast")) { strcpy(Bmark->name,"Bcast"); Bmark->Benchmark = IMB_bcast; type = Collective; Bmark->bench_comments = &Bcast_cmt[0]; } else if (!strcmp(Bmark->name,"barrier")) { strcpy(Bmark->name,"Barrier"); Bmark->Benchmark = IMB_barrier; type = Sync; Bmark->bench_comments = &Barrier_cmt[0]; } else if (!strcmp(Bmark->name,"allgather")) { strcpy(Bmark->name,"Allgather"); Bmark->Benchmark = IMB_allgather; type = Collective; Bmark->bench_comments = &Allgather_cmt[0]; } else if (!strcmp(Bmark->name,"allgatherv")) { strcpy(Bmark->name,"Allgatherv"); Bmark->Benchmark = IMB_allgatherv; type = Collective; Bmark->bench_comments = &Allgatherv_cmt[0]; } else if (!strcmp(Bmark->name,"alltoall")) { strcpy(Bmark->name,"Alltoall"); Bmark->Benchmark = IMB_alltoall; type = Collective; Bmark->bench_comments = &Alltoall_cmt[0]; } else if (!strcmp(Bmark->name,"alltoallv")) { strcpy(Bmark->name,"Alltoallv"); Bmark->Benchmark = IMB_alltoallv; type = Collective; Bmark->bench_comments = &Alltoallv_cmt[0]; } else { type = BTYPE_INVALID; } Bmark->RUN_MODES[0].type=type; } IMB_3.0/src/IMB_pingping.c0000644014562400001620000001350010455013232014454 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf File: IMB_pingping.c Implemented functions: IMB_pingping; ***************************************************************************/ #include "IMB_declare.h" #include "IMB_benchmark.h" #include "IMB_prototypes.h" /*************************************************************************/ void IMB_pingping(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) /* MPI-1 benchmark kernel 2 process exchange; MPI_Isend + MPI_Recv Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) (only MPI-2 case: see [1]) Output variables: -time (type double*) Timing result per sample */ { double t1,t2; int i; Type_Size s_size, r_size; int s_num, r_num; int s_tag, r_tag; int dest, source; MPI_Status stat; MPI_Request request; #ifdef CHECK defect=0; #endif ierr = 0; MPI_Type_size(c_info->s_data_type,&s_size); MPI_Type_size(c_info->r_data_type,&r_size); if ((s_size!=0) && (r_size!=0)) { s_num=size/s_size; r_num=size/r_size; } s_tag = 1; r_tag = c_info->select_tag ? s_tag : MPI_ANY_TAG; dest = -1; if (c_info->rank == c_info->pair0) dest = c_info->pair1; else if (c_info->rank == c_info->pair1) dest = c_info->pair0; source = c_info->select_source ? dest : MPI_ANY_SOURCE; if( dest != -1 ) { for(i=0; icommunicator); t1 = MPI_Wtime(); for(i=0;i< n_sample;i++) { ierr= MPI_Isend(c_info->s_buffer,s_num, c_info->s_data_type,dest,s_tag, c_info->communicator,&request); MPI_ERRHAND(ierr); ierr = MPI_Recv(c_info->r_buffer,r_num,c_info->r_data_type,source, r_tag,c_info->communicator,&stat); MPI_ERRHAND(ierr); ierr = MPI_Wait(&request, &stat); MPI_ERRHAND(ierr); CHK_DIFF("PingPing",c_info, c_info->r_buffer, 0, size, size, asize, put, 0, n_sample, i, dest, &defect); } t2 = MPI_Wtime(); *time=(t2 - t1)/n_sample; } else { *time = 0.; } } IMB_3.0/src/IMB_pingpong.c0000644014562400001620000001473010455013232014470 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf File: IMB_pingpong.c Implemented functions: IMB_pingpong; ***************************************************************************/ #include "IMB_declare.h" #include "IMB_benchmark.h" #include "IMB_prototypes.h" /*************************************************************************/ void IMB_pingpong(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) /* MPI-1 benchmark kernel 2 process MPI_Send + MPI_Recv pair Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) (only MPI-2 case: see [1]) Output variables: -time (type double*) Timing result per sample */ { double t1, t2; int i; Type_Size s_size,r_size; int s_num, r_num; int s_tag, r_tag; int dest, source; MPI_Status stat; #ifdef CHECK defect=0; #endif ierr = 0; /* GET SIZE OF DATA TYPE */ MPI_Type_size(c_info->s_data_type,&s_size); MPI_Type_size(c_info->r_data_type,&r_size); if ((s_size!=0) && (r_size!=0)) { s_num=size/s_size; r_num=size/r_size; } s_tag = 1; r_tag = c_info->select_tag ? s_tag : MPI_ANY_TAG; if (c_info->rank == c_info->pair0) { /* CALCULATE SOURCE AND DESTINATION */ dest = c_info->pair1; source = c_info->select_source ? dest : MPI_ANY_SOURCE; for(i=0; icommunicator); t1 = MPI_Wtime(); for(i=0;i< n_sample;i++) { ierr = MPI_Send(c_info->s_buffer,s_num,c_info->s_data_type,dest, s_tag,c_info->communicator); MPI_ERRHAND(ierr); ierr = MPI_Recv(c_info->r_buffer,r_num,c_info->r_data_type,source, r_tag,c_info->communicator,&stat); MPI_ERRHAND(ierr); CHK_DIFF("PingPong",c_info, c_info->r_buffer, 0, size, size, asize, put, 0, n_sample, i, dest, &defect); } t2 = MPI_Wtime(); *time=(t2 - t1)/n_sample; } else if (c_info->rank == c_info->pair1) { dest =c_info->pair0 ; source = c_info->select_source ? dest : MPI_ANY_SOURCE; for(i=0; icommunicator); t1 = MPI_Wtime(); for(i=0 ;i< n_sample;i++) { ierr= MPI_Recv(c_info->r_buffer,r_num,c_info->r_data_type,source, r_tag,c_info->communicator,&stat); MPI_ERRHAND(ierr); ierr= MPI_Send(c_info->s_buffer,s_num,c_info->s_data_type,dest, s_tag,c_info->communicator); MPI_ERRHAND(ierr); CHK_DIFF("PingPong",c_info, c_info->r_buffer, 0, size, size, asize, put, 0, n_sample, i, dest, &defect); } t2 = MPI_Wtime(); *time=(t2 - t1)/n_sample; } else { *time = 0.; } } IMB_3.0/src/IMB_read.c0000644014562400001620000004535510455013232013571 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf File: IMB_read.c Implemented functions: IMB_read_shared; IMB_read_indv; IMB_read_expl; IMB_read_ij; IMB_iread_ij; ***************************************************************************/ #include "IMB_declare.h" #include "IMB_benchmark.h" #include "IMB_prototypes.h" /*************************************************************************/ void IMB_read_shared(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) /* MPI-IO benchmark kernel Driver for read benchmarks with shared file pointers Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) Mode (aggregate/non aggregate; blocking/nonblocking); see "IMB_benchmark.h" for definition Output variables: -time (type double*) Timing result per sample */ { if( RUN_MODE->AGGREGATE ) IMB_read_ij(c_info, size, shared, RUN_MODE->type, 1, n_sample, 1, time); else IMB_read_ij(c_info, size, shared, RUN_MODE->type, n_sample, 1, 0, time); if( RUN_MODE->NONBLOCKING ) { MPI_File_close(&c_info->fh); IMB_open_file(c_info); if( RUN_MODE->AGGREGATE ) IMB_iread_ij(c_info, size, shared, RUN_MODE->type, 1, n_sample, 1, 1, time+1); else IMB_iread_ij(c_info, size, shared, RUN_MODE->type, n_sample, 1, 0, 1, time+1); } } /*************************************************************************/ void IMB_read_indv(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) /* MPI-IO benchmark kernel Driver for read benchmarks with individual file pointers Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) Mode (aggregate/non aggregate; blocking/nonblocking); see "IMB_benchmark.h" for definition Output variables: -time (type double*) Timing result per sample */ { if( RUN_MODE->AGGREGATE ) IMB_read_ij(c_info, size, indv_block, RUN_MODE->type, 1, n_sample, 1, time); else IMB_read_ij(c_info, size, indv_block, RUN_MODE->type, n_sample, 1, 0, time); if( RUN_MODE->NONBLOCKING ) { MPI_File_close(&c_info->fh); IMB_open_file(c_info); if( RUN_MODE->AGGREGATE ) IMB_iread_ij(c_info, size, indv_block, RUN_MODE->type, 1, n_sample, 1, 1, time+1); else IMB_iread_ij(c_info, size, indv_block, RUN_MODE->type, n_sample, 1, 0, 1, time+1); } } void IMB_read_expl(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) /* MPI-IO benchmark kernel Driver for read benchmarks with explicit offsets Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) Mode (aggregate/non aggregate; blocking/nonblocking); see "IMB_benchmark.h" for definition Output variables: -time (type double*) Timing result per sample */ { if( RUN_MODE->AGGREGATE ) IMB_read_ij(c_info, size, explicit, RUN_MODE->type, 1, n_sample, 1, time); else IMB_read_ij(c_info, size, explicit, RUN_MODE->type, n_sample, 1, 0, time); if( RUN_MODE->NONBLOCKING ) { MPI_File_close(&c_info->fh); IMB_open_file(c_info); if( RUN_MODE->AGGREGATE ) IMB_iread_ij(c_info, size, explicit, RUN_MODE->type, 1, n_sample, 1, 1, time+1); else IMB_iread_ij(c_info, size, explicit, RUN_MODE->type, n_sample, 1, 0, 1, time+1); } } void IMB_read_ij(struct comm_info* c_info, int size, POSITIONING pos, BTYPES type, int i_sample, int j_sample, int time_inner, double* time) /* Calls the proper read functions, blocking case Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -size (type int) portion size in bytes -pos (type POSITIONING) (see IMB_benchmark.h for definition of this enum type) descriptor for the file positioning -type (type BTYPES) (see IMB_benchmark.h for definition of this enum type) descriptor for the file access synchronism -i_sample,j_sample (type int) aggregate case: i_sample=1, j_sample=n_sample (set by driving function) non aggregate case: i_sample=n_sample, j_sample=1 (set by driving function) Benchmark logistics then: for( i=0 .. i_sample-1 ) for( j=0 .. j_sample-1 ) input ... Synchronize (!) -time_inner (type int) logical flag: should timing be issued for the innermost loop (and then averaged by outermost count), or for outermost loop Output variables: -time (type double*) Timing result per sample */ { int i, j; int Locsize, Totalsize; MPI_Status stat; MPI_Offset Offset; int (* GEN_File_read)(MPI_File fh, void* buf, int count, MPI_Datatype datatype, MPI_Status *status); int (* GEN_File_read_shared) (MPI_File fh, void* buf, int count, MPI_Datatype datatype, MPI_Status *status); int (* GEN_File_read_at) (MPI_File fh, MPI_Offset offset, void* buf, int count, MPI_Datatype datatype, MPI_Status *status); #ifdef CHECK defect = 0.; #endif ierr = 0; *time = 0.; if( c_info->File_rank >= 0 ) { if (type == Collective ) { GEN_File_read = MPI_File_read_all; GEN_File_read_shared = MPI_File_read_ordered; GEN_File_read_at = MPI_File_read_at_all; #ifdef DEBUG fprintf(unit,"Collective input\n"); #endif } else { GEN_File_read = MPI_File_read; GEN_File_read_shared = MPI_File_read_shared; GEN_File_read_at = MPI_File_read_at; #ifdef DEBUG fprintf(unit,"Non collective input\n"); #endif } Locsize = c_info->split.Locsize; Totalsize = c_info->split.Totalsize; /* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! BLOCKING COLLECTIVE/NON COLLECTIVE INPUT CASES COMBINED (function pointer GEN_File_read_XXX either standard or collective MPI_File_read_XXX !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */ if( !time_inner ) *time = MPI_Wtime(); for ( i=0; iFile_comm); *time = MPI_Wtime(); } if( pos == indv_block ) { for( j=0; jfh,c_info->r_buffer,Locsize,c_info->etype,&stat); MPI_ERRHAND(ierr); DIAGNOSTICS("Read standard ",c_info,c_info->r_buffer,Locsize,Totalsize,j,pos); CHK_DIFF("Read_indv",c_info, c_info->r_buffer, 0, Locsize, Totalsize, asize, get, pos, i_sample*j_sample, j, -2, &defect); } } else if( pos == explicit ) { for( j=0; jsplit.Offset+(MPI_Offset)(j*Totalsize); ierr=GEN_File_read_at (c_info->fh, Offset, c_info->r_buffer,Locsize,c_info->etype,&stat); MPI_ERRHAND(ierr); DIAGNOSTICS("Read explicit ",c_info,c_info->r_buffer,Locsize,Totalsize,j,pos); CHK_DIFF("Read_expl",c_info, c_info->r_buffer, 0, Locsize, Totalsize, asize, get, pos, i_sample*j_sample, j, -2, &defect); } } else if( pos == shared ) { for( j=0; jfh,c_info->r_buffer,Locsize,c_info->etype,&stat); MPI_ERRHAND(ierr); DIAGNOSTICS("Read shared ",c_info,c_info->r_buffer,Locsize,Totalsize,j,pos); #ifdef CHECK IMB_chk_diff("Read_shared",c_info, c_info->r_buffer, 0, Locsize, Totalsize, asize, get, pos, i_sample*j_sample, j, -3, &defect); MPI_Barrier(c_info->File_comm); #endif } } if( time_inner ) *time = (MPI_Wtime()-*time)/(i_sample*j_sample); } if( !time_inner ) *time = (MPI_Wtime() - *time)/(i_sample*j_sample); } /* end if FIle_rank >= 0 */ } void IMB_iread_ij(struct comm_info* c_info, int size, POSITIONING pos, BTYPES type, int i_sample, int j_sample, int time_inner, int do_ovrlp, double* time) /* Calls the proper read functions, non blocking case (See IMB_read_ij for documentation of calling sequence) */ { int i, j; int Locsize, Totalsize; MPI_Status *STAT, stat; MPI_Request *REQUESTS; MPI_Offset Offset; #ifdef CHECK defect = 0.; #endif ierr = 0; *time = 0.; if( c_info->File_rank >= 0 ) { Locsize = c_info->split.Locsize; Totalsize = c_info->split.Totalsize; if( type == Collective ) /* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! NON BLOCKING COLLECTIVE INPUT CASES !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */ { for(i=0; iFile_comm); *time = MPI_Wtime(); if( pos == indv_block ) for ( j=0; jfh,c_info->r_buffer,Locsize,c_info->etype); MPI_ERRHAND(ierr); if( do_ovrlp ) IMB_cpu_exploit(TARGET_CPU_SECS,0); ierr=MPI_File_read_all_end (c_info->fh,c_info->r_buffer,&stat); MPI_ERRHAND(ierr); DIAGNOSTICS("IRead coll. ",c_info,c_info->r_buffer,Locsize,Totalsize,j,pos); CHK_DIFF("Coll. IRead_indv",c_info, c_info->r_buffer, 0, Locsize, Totalsize, asize, get, pos, i_sample*j_sample, j, -2, &defect); } else if ( pos == explicit ) for ( j=0; jsplit.Offset+(MPI_Offset)(j*Totalsize); ierr=MPI_File_read_at_all_begin (c_info->fh,Offset,c_info->r_buffer,Locsize,c_info->etype); MPI_ERRHAND(ierr); if( do_ovrlp ) IMB_cpu_exploit(TARGET_CPU_SECS,0); ierr=MPI_File_read_at_all_end (c_info->fh,c_info->r_buffer,&stat); MPI_ERRHAND(ierr); DIAGNOSTICS("IRead expl coll. ",c_info,c_info->r_buffer,Locsize,Totalsize,j,pos); CHK_DIFF("Coll. IRead_expl",c_info, c_info->r_buffer, 0, Locsize, Totalsize, asize, get, pos, i_sample*j_sample, j, -2, &defect); } else if ( pos == shared ) for ( j=0; jfh,c_info->r_buffer,Locsize,c_info->etype); MPI_ERRHAND(ierr); if( do_ovrlp ) IMB_cpu_exploit(TARGET_CPU_SECS,0); ierr=MPI_File_read_ordered_end (c_info->fh,c_info->r_buffer,&stat); MPI_ERRHAND(ierr); DIAGNOSTICS("IRead shared coll. ",c_info,c_info->r_buffer,Locsize,Totalsize,j,pos); CHK_DIFF("Coll. IRead_shared",c_info, c_info->r_buffer, 0, Locsize, Totalsize, asize, get, pos, i_sample*j_sample, j, -3, &defect); } *time = (MPI_Wtime() - *time)/(i_sample*j_sample); } else /* type non-Collective */ /* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! NON BLOCKING NON COLLECTIVE INPUT CASES !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */ { REQUESTS = (MPI_Request*)IMB_v_alloc(j_sample*sizeof(MPI_Request), "IRead_ij"); STAT = (MPI_Status *)IMB_v_alloc(j_sample*sizeof(MPI_Status ), "IRead_ij"); for( j=0; jFile_comm); if( !time_inner ) *time = MPI_Wtime(); for ( i=0; iFile_comm); *time = MPI_Wtime(); } if( pos == indv_block ) { for( j=0; jfh,c_info->r_buffer,Locsize,c_info->etype,&REQUESTS[j]); MPI_ERRHAND(ierr); #if (defined CHECK || defined DEBUG) MPI_Wait(REQUESTS+j,STAT); DIAGNOSTICS("IRead standard ",c_info,c_info->r_buffer,Locsize,Totalsize,j,pos); CHK_DIFF("IRead_indv",c_info, c_info->r_buffer, 0, Locsize, Totalsize, asize, get, pos, i_sample*j_sample, j, -2, &defect); #endif } } else if( pos == explicit ) { for( j=0; jsplit.Offset+(MPI_Offset)(j*Totalsize); ierr=MPI_File_iread_at (c_info->fh,Offset,c_info->r_buffer,Locsize,c_info->etype,&REQUESTS[j]); MPI_ERRHAND(ierr); #if (defined CHECK || defined DEBUG) MPI_Wait(REQUESTS+j,STAT); DIAGNOSTICS("IRead expl ",c_info,c_info->r_buffer,Locsize,Totalsize,j,pos); CHK_DIFF("IRead_expl",c_info, c_info->r_buffer, 0, Locsize, Totalsize, asize, get, pos, i_sample*j_sample, j, -2, &defect); #endif } } else if( pos == shared ) { for( j=0; jfh,c_info->r_buffer,Locsize,c_info->etype,&REQUESTS[j]); MPI_ERRHAND(ierr); #if (defined CHECK || defined DEBUG) MPI_Wait(REQUESTS+j,STAT); DIAGNOSTICS("IRead shared ",c_info,c_info->r_buffer,Locsize,Totalsize,j,pos); CHK_DIFF("IRead_shared",c_info, c_info->r_buffer, 0, Locsize, Totalsize, asize, get, pos, i_sample*j_sample, j, -3, &defect); MPI_Barrier(c_info->File_comm); #endif } } if( do_ovrlp ) for ( j=0; j= 0 */ } IMB_3.0/src/IMB_reduce.c0000644014562400001620000001252410455013232014115 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf File: IMB_reduce.c Implemented functions: IMB_reduce; ***************************************************************************/ #include "IMB_declare.h" #include "IMB_benchmark.h" #include "IMB_prototypes.h" /*******************************************************************************/ void IMB_reduce(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) /* MPI-1 benchmark kernel Benchmarks MPI_Reduce Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) (only MPI-2 case: see [1]) Output variables: -time (type double*) Timing result per sample */ { double t1, t2; int i,i1; Type_Size s_size; int s_num; #ifdef CHECK defect=0.; #endif ierr = 0; /* GET SIZE OF DATA TYPE */ MPI_Type_size(c_info->red_data_type,&s_size); if (s_size!=0) s_num=size/s_size; if(c_info->rank!=-1) { i1=0; for(i=0; icommunicator); t1 = MPI_Wtime(); for(i=0;i< n_sample;i++) { ierr = MPI_Reduce(c_info->s_buffer,c_info->r_buffer,s_num, c_info->red_data_type,c_info->op_type, i1,c_info->communicator); MPI_ERRHAND(ierr); #ifdef CHECK if( c_info->rank == i1 ) { CHK_DIFF("Reduce",c_info, c_info->r_buffer, 0, size, size, asize, put, 0, n_sample, i, -1, &defect); } #endif /* CHANGE THE ROOT NODE */ i1=(++i1)%c_info->num_procs; } t2 = MPI_Wtime(); *time=(t2 - t1)/n_sample; } else { *time = 0.; } } IMB_3.0/src/IMB_reduce_scatter.c0000644014562400001620000001315110455013232015637 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf File: IMB_reduce_scatter.c Implemented functions: IMB_reduce_scatter; ***************************************************************************/ #include "IMB_declare.h" #include "IMB_benchmark.h" #include "IMB_prototypes.h" /*******************************************************************************/ void IMB_reduce_scatter(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) /* MPI-1 benchmark kernel Benchmarks MPI_Reduce_scatter Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) (only MPI-2 case: see [1]) Output variables: -time (type double*) Timing result per sample */ { double t1, t2; int i,pos1,pos2; #ifdef CHECK int pos,Locsize; #endif Type_Size s_size; #ifdef CHECK defect=0.; #endif ierr = 0; /* GET SIZE OF DATA TYPE */ MPI_Type_size(c_info->red_data_type,&s_size); for (i=0;inum_procs ;i++) { IMB_get_rank_portion(i, c_info->num_procs, size, s_size, &pos1, &pos2); c_info->reccnt[i] = (pos2-pos1+1)/s_size; #ifdef CHECK if( i==c_info->rank ) {pos=pos1; Locsize= s_size*c_info->reccnt[i];} #endif } if(c_info->rank!=-1) { for(i=0; icommunicator); t1 = MPI_Wtime(); for(i=0;i< n_sample;i++) { ierr = MPI_Reduce_scatter (c_info->s_buffer,c_info->r_buffer, c_info->reccnt, c_info->red_data_type,c_info->op_type, c_info->communicator); MPI_ERRHAND(ierr); CHK_DIFF("Reduce_scatter",c_info, c_info->r_buffer, pos, Locsize, size, asize, put, 0, n_sample, i, -1, &defect); } t2 = MPI_Wtime(); *time=(t2 - t1)/n_sample; } else { *time = 0.; } } IMB_3.0/src/IMB_sendrecv.c0000644014562400001620000001323510455013232014457 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf File: IMB_sendrecv.c Implemented functions: IMB_sendrecv; ***************************************************************************/ #include "IMB_declare.h" #include "IMB_benchmark.h" #include "IMB_prototypes.h" /*************************************************************************/ void IMB_sendrecv(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) /* MPI-1 benchmark kernel Benchmarks MPI_Sendrecv Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) (only MPI-2 case: see [1]) Output variables: -time (type double*) Timing result per sample */ { double t1,t2; int i; Type_Size s_size, r_size; int s_num,r_num; int s_tag, r_tag; int dest, source; MPI_Status stat; #ifdef CHECK defect=0; #endif ierr = 0; /* GET SIZE OF DATA TYPE's in s_size and r_size */ MPI_Type_size(c_info->s_data_type,&s_size); MPI_Type_size(c_info->r_data_type,&r_size); if ((s_size!=0) && (r_size!=0)) { s_num=size/s_size; r_num=size/r_size; } s_tag = 1; r_tag = MPI_ANY_TAG; if(c_info->rank!=-1) { /* CALCULATE SOURCE AND DESTINATION */ dest = (c_info->rank + 1) % (c_info->num_procs); source = (c_info->rank + c_info->num_procs-1) % (c_info->num_procs); for(i=0; icommunicator); t1 = MPI_Wtime(); for(i=0;i< n_sample;i++) { ierr= MPI_Sendrecv(c_info->s_buffer,s_num,c_info->s_data_type, dest,s_tag,c_info->r_buffer,r_num, c_info->r_data_type,source,r_tag, c_info->communicator,&stat); MPI_ERRHAND(ierr); CHK_DIFF("Sendrecv",c_info, c_info->r_buffer, 0, size, size, asize, put, 0, n_sample, i, source, &defect); } t2 = MPI_Wtime(); *time=(t2 - t1)/n_sample; } else { *time = 0.; } } IMB_3.0/src/IMB_strgs.c0000644014562400001620000001317110455013232014007 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf File: IMB_strgs.c Implemented functions: IMB_str; IMB_lwr; IMB_str_atoi; IMB_str_erase; ***************************************************************************/ #include #include "IMB_declare.h" #include "IMB_prototypes.h" char* IMB_str(char* Bname) /* Copies string Bname to new memory which is returned Input variables: -Bname (type char*) String to be copied Return value (type char*) Copy of Bname with newly allocated memory */ { char* strg = (char*) IMB_v_alloc( 1+strlen(Bname),"str" ); if(strg) return strcpy(strg,Bname); else return NULL; } void IMB_lwr(char* Bname) /* In/out variables: -Bname (type char*) Uper case alphabetic characters are converted to lower case */ { int i; for(i=0; i= 'A' && Bname[i] <= 'Z' ) Bname[i] = Bname[i] - ('A'-'a'); } /***************************************************************************/ int IMB_str_atoi(char s[]) /* Evaluates int value of a numeric string Input variables: -s (type char []) String with only numeric characters Return value (type int) Numeric value */ { int i,n,len ; n=0; len=strlen(s); for(i=0; s[i] >= '0' && s[i] <= '9' || s[i]==' '; ++i) { if (s[i]!=' ') { n=10*n+(s[i]-'0'); } } /* IMB_3.0 */ if (len==0 || i 0 ) { int i; for(i=0;irank >= 0 ) { #ifndef MPIIO if( iter == 0 ) { int size = 1<Benchmark(c_info, size, n_sample, &MD, &t); } #endif } } IMB_3.0/src/IMB_window.c0000644014562400001620000001252210455013232014153 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf File: IMB_window.c Implemented functions: IMB_window; ***************************************************************************/ #include "IMB_declare.h" #include "IMB_benchmark.h" #include "IMB_prototypes.h" /*************************************************************************/ void IMB_window(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) /* MPI-2 benchmark kernel MPI_Win_create + MPI_Win_fence + MPI_Win_free Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) Mode (aggregate/non aggregate; blocking/nonblocking); see "IMB_benchmark.h" for definition Output variables: -time (type double*) Timing result per sample */ { double t1, t2; int i, dum; ierr = 0; if(c_info->rank!=-1) { for(i=0; icommunicator); t1 = MPI_Wtime(); for(i=0;i< n_sample;i++) { ierr = MPI_Win_create(c_info->r_buffer,size,1,MPI_INFO_NULL, c_info->communicator, &c_info->WIN); MPI_ERRHAND(ierr); ierr = MPI_Win_fence(0, c_info->WIN); MPI_ERRHAND(ierr); /* July 2002 fix V2.2.1, empty window case */ if(size>0) { ierr = MPI_Put(c_info->s_buffer, 1, c_info->s_data_type, c_info->rank, 0, 1, c_info->r_data_type, c_info->WIN); MPI_ERRHAND(ierr); } ierr = MPI_Win_free(&c_info->WIN); MPI_ERRHAND(ierr); } t2 = MPI_Wtime(); *time=(t2 - t1)/(n_sample); } else { *time = 0.; } } IMB_3.0/src/IMB_write.c0000644014562400001620000004060410455013232014000 0ustar sthealeykap/***************************************************************************** * * * Copyright (c) 2003-2006 Intel Corporation. * * All rights reserved. * * * ***************************************************************************** This code is covered by the Community Source License (CPL), version 1.0 as published by IBM and reproduced in the file "license.txt" in the "license" subdirectory. Redistribution in source and binary form, with or without modification, is permitted ONLY within the regulations contained in above mentioned license. Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY within the regulations of the "License for Use of "Intel(R) MPI Benchmarks" Name and Trademark" as reproduced in the file "use-of-trademark-license.txt" in the "license" subdirectory. THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF YOUR JURISDICTION. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. Under CURRENT U.S. export regulations this software is eligible for export from the U.S. and can be downloaded by or otherwise exported or reexported worldwide EXCEPT to U.S. embargoed destinations which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, Afghanistan and any other country to which the U.S. has embargoed goods and services. *************************************************************************** For more documentation than found here, see [1] doc/ReadMe_IMB.txt [2] Intel (R) MPI Benchmarks Users Guide and Methodology Description In doc/IMB_ug.pdf File: IMB_write.c Implemented functions: IMB_write_shared; IMB_write_indv; IMB_write_expl; IMB_write_ij; IMB_iwrite_ij; ***************************************************************************/ #include "IMB_declare.h" #include "IMB_benchmark.h" #include "IMB_prototypes.h" /*************************************************************************/ void IMB_write_shared(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) /* MPI-IO benchmark kernel Driver for write benchmarks with shared file pointers Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) Mode (aggregate/non aggregate; blocking/nonblocking); see "IMB_benchmark.h" for definition Output variables: -time (type double*) Timing result per sample */ { if( RUN_MODE->AGGREGATE ) IMB_write_ij(c_info, size, shared, RUN_MODE->type, 1, n_sample, 1, time); else IMB_write_ij(c_info, size, shared, RUN_MODE->type, n_sample, 1, 0, time); if( RUN_MODE->NONBLOCKING ) { MPI_File_close(&c_info->fh); IMB_open_file(c_info); if( RUN_MODE->AGGREGATE ) IMB_iwrite_ij(c_info, size, shared, RUN_MODE->type, 1, n_sample, 1, 1, time+1); else IMB_iwrite_ij(c_info, size, shared, RUN_MODE->type, n_sample, 1, 0, 1, time+1); } } /*************************************************************************/ void IMB_write_indv(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) /* MPI-IO benchmark kernel Driver for write benchmarks with individual file pointers Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) Mode (aggregate/non aggregate; blocking/nonblocking); see "IMB_benchmark.h" for definition Output variables: -time (type double*) Timing result per sample */ { if( RUN_MODE->AGGREGATE ) IMB_write_ij(c_info, size, indv_block, RUN_MODE->type, 1, n_sample, 1, time); else IMB_write_ij(c_info, size, indv_block, RUN_MODE->type, n_sample, 1, 0, time); if( RUN_MODE->NONBLOCKING ) { MPI_File_close(&c_info->fh); IMB_open_file(c_info); if( RUN_MODE->AGGREGATE ) IMB_iwrite_ij(c_info, size, indv_block, RUN_MODE->type, 1, n_sample, 1, 1, time+1); else IMB_iwrite_ij(c_info, size, indv_block, RUN_MODE->type, n_sample, 1, 0, 1, time+1); } } /*************************************************************************/ void IMB_write_expl(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) /* MPI-IO benchmark kernel Driver for write benchmarks with explicit offsets Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see [1] for more information -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) Mode (aggregate/non aggregate; blocking/nonblocking); see "IMB_benchmark.h" for definition Output variables: -time (type double*) Timing result per sample */ { if( RUN_MODE->AGGREGATE ) IMB_write_ij(c_info, size, explicit, RUN_MODE->type, 1, n_sample, 1, time); else IMB_write_ij(c_info, size, explicit, RUN_MODE->type, n_sample, 1, 0, time); if( RUN_MODE->NONBLOCKING ) { MPI_File_close(&c_info->fh); IMB_open_file(c_info); if( RUN_MODE->AGGREGATE ) IMB_iwrite_ij(c_info, size, explicit, RUN_MODE->type, 1, n_sample, 1, 1, time+1); else IMB_iwrite_ij(c_info, size, explicit, RUN_MODE->type, n_sample, 1, 0, 1, time+1); } } void IMB_write_ij(struct comm_info* c_info, int size, POSITIONING pos, BTYPES type, int i_sample, int j_sample, int time_inner, double* time) /* Calls the proper write functions, blocking case (See IMB_read_ij for documentation of calling sequence) */ { int i, j; int Locsize,Totalsize,Ioffs; MPI_Status stat; MPI_Offset Offset; ierr = 0; *time=0.; if( c_info->File_rank >= 0 ) { int (* GEN_File_write)(MPI_File fh, void* buf, int count, MPI_Datatype datatype, MPI_Status *status); int (* GEN_File_write_shared) (MPI_File fh, void* buf, int count, MPI_Datatype datatype, MPI_Status *status); int (* GEN_File_write_at) (MPI_File fh, MPI_Offset offset, void* buf, int count, MPI_Datatype datatype, MPI_Status *status); #ifdef CHECK int chk_mode; if( pos == shared && type != Collective) chk_mode = -3; else chk_mode = -2; defect = 0.; #endif if (type == Collective ) { GEN_File_write = MPI_File_write_all; GEN_File_write_shared = MPI_File_write_ordered; GEN_File_write_at = MPI_File_write_at_all; #ifdef DEBUG fprintf(unit,"Collective output\n"); #endif } else { GEN_File_write = MPI_File_write; GEN_File_write_shared = MPI_File_write_shared; GEN_File_write_at = MPI_File_write_at; #ifdef DEBUG fprintf(unit,"Non collective output\n"); #endif } Locsize = c_info->split.Locsize; Totalsize = c_info->split.Totalsize; Offset = (MPI_Offset)c_info->split.Offset; /* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! BLOCKING COLLECTIVE/NON COLLECTIVE OUTPUT CASES COMBINED (function pointer GEN_File_write_XXX either standard or collective MPI_File_write_XXX !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */ for(i=0; iFile_comm); if( !time_inner ) *time = MPI_Wtime(); for( i=0; ifh,c_info->s_buffer,Locsize,c_info->etype,&stat); MPI_ERRHAND(ierr); DIAGNOSTICS("Write standard ",c_info,c_info->s_buffer,Locsize,Totalsize,i+j,pos); } else if ( pos == explicit ) for ( j=0; jsplit.Offset+(MPI_Offset)((i+j)*Totalsize); ierr=GEN_File_write_at (c_info->fh, Offset, c_info->s_buffer,Locsize,c_info->etype,&stat); MPI_ERRHAND(ierr); DIAGNOSTICS("Write explicit ",c_info,c_info->s_buffer,Locsize,Totalsize,i+j,pos); } else if ( pos == shared ) for ( j=0; jfh,c_info->s_buffer,Locsize,c_info->etype,&stat); MPI_ERRHAND(ierr); DIAGNOSTICS("Write shared ",c_info,c_info->s_buffer,Locsize,Totalsize,i+j,pos); } MPI_File_sync(c_info->fh); if( time_inner ) *time = (MPI_Wtime() - *time)/(i_sample*j_sample); CHK_DIFF("Write_xxx",c_info, c_info->r_buffer, 0, Locsize, Totalsize, asize, put, pos, j_sample, time_inner ? -1 : i, chk_mode, &defect); CHK_STOP; } if( !time_inner ) *time = (MPI_Wtime() - *time)/(i_sample*j_sample); } /* end if (File_comm ) */ } void IMB_iwrite_ij(struct comm_info* c_info, int size, POSITIONING pos, BTYPES type, int i_sample, int j_sample, int time_inner, int do_ovrlp, double* time) /* Calls the proper write functions, non blocking case (See IMB_read_ij for documentation of calling sequence) */ { int i, j; int Locsize,Totalsize,Ioffs; MPI_Offset Offset; MPI_Status* STAT, stat; MPI_Request* REQUESTS; ierr = 0; *time=0; if( c_info->File_rank >= 0 ) { #ifdef CHECK int chk_mode; if( pos == shared && type != Collective) chk_mode = -3; else chk_mode = -2; defect = 0.; #endif Locsize = c_info->split.Locsize; Totalsize = c_info->split.Totalsize; Offset = (MPI_Offset)c_info->split.Offset; if(type == Collective ) /* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! NON BLOCKING COLLECTIVE OUTPUT CASES !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */ { for(i=0; iFile_comm); *time = MPI_Wtime(); if( pos == indv_block ) for ( j=0; jfh,c_info->s_buffer,Locsize,c_info->etype); MPI_ERRHAND(ierr); DIAGNOSTICS("IWrite coll. ",c_info,c_info->s_buffer,Locsize,Totalsize,j,pos); if( do_ovrlp ) IMB_cpu_exploit(TARGET_CPU_SECS,0); ierr=MPI_File_write_all_end (c_info->fh,c_info->s_buffer,&stat); MPI_ERRHAND(ierr); } else if ( pos == explicit ) for ( j=0; jsplit.Offset+(MPI_Offset)(j*Totalsize); ierr=MPI_File_write_at_all_begin (c_info->fh,Offset,c_info->s_buffer,Locsize,c_info->etype); MPI_ERRHAND(ierr); DIAGNOSTICS("IWrite expl coll. ",c_info,c_info->s_buffer,Locsize,Totalsize,j,pos); if( do_ovrlp ) IMB_cpu_exploit(TARGET_CPU_SECS,0); ierr=MPI_File_write_at_all_end (c_info->fh,c_info->s_buffer,&stat); MPI_ERRHAND(ierr); } else if ( pos == shared ) for ( j=0; jfh,c_info->s_buffer,Locsize,c_info->etype); MPI_ERRHAND(ierr); DIAGNOSTICS("IWrite shared coll. ",c_info,c_info->s_buffer,Locsize,Totalsize,j,pos); if( do_ovrlp ) IMB_cpu_exploit(TARGET_CPU_SECS,0); ierr=MPI_File_write_ordered_end (c_info->fh,c_info->s_buffer,&stat); MPI_ERRHAND(ierr); } MPI_File_sync(c_info->fh); *time = (MPI_Wtime() - *time)/(i_sample*j_sample); CHK_DIFF("Coll. IWrite_xxx",c_info, c_info->r_buffer, 0, Locsize, Totalsize, asize, put, pos, i_sample*j_sample, -1, chk_mode, &defect); CHK_STOP; } else /* type non Collective */ /* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! NON BLOCKING NON COLLECTIVE OUTPUT CASES !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */ { REQUESTS = (MPI_Request*)IMB_v_alloc(j_sample*sizeof(MPI_Request), "IWrite_ij"); STAT = (MPI_Status *)IMB_v_alloc(j_sample*sizeof(MPI_Status ), "IWrite_ij"); for( j=0; jFile_comm); if( !time_inner ) *time = MPI_Wtime(); for( i=0; ifh,c_info->s_buffer,Locsize,c_info->etype,&REQUESTS[j]); MPI_ERRHAND(ierr); DIAGNOSTICS("IWrite standard ",c_info,c_info->s_buffer,Locsize,Totalsize,i+j,pos); } else if ( pos == explicit ) for ( j=0; jsplit.Offset+(MPI_Offset)((i+j)*Totalsize); ierr=MPI_File_iwrite_at (c_info->fh,Offset,c_info->s_buffer,Locsize,c_info->etype,&REQUESTS[j]); MPI_ERRHAND(ierr); DIAGNOSTICS("IWrite expl ",c_info,c_info->s_buffer,Locsize,Totalsize,i+j,pos); } else if ( pos == shared ) for ( j=0; jfh,c_info->s_buffer,Locsize,c_info->etype,&REQUESTS[j]); MPI_ERRHAND(ierr); DIAGNOSTICS("IWrite shared ",c_info,c_info->s_buffer,Locsize,Totalsize,i+j,pos); } if( do_ovrlp ) for ( j=0; jfh); if( time_inner ) *time = (MPI_Wtime() - *time)/(i_sample*j_sample); CHK_DIFF("IWrite_xxx",c_info, c_info->r_buffer, 0, Locsize, Totalsize, asize, put, pos, j_sample, time_inner ? -1 : i, chk_mode, &defect); CHK_STOP; } if( !time_inner ) *time = (MPI_Wtime() - *time)/(i_sample*j_sample); free (REQUESTS); free (STAT); } } /* end if (File_comm ) */ } IMB_3.0/src/make_ict0000644014562400001620000000064710446343371013527 0ustar sthealeykapLIB_PATH = LIBS = CC = mpiicc ifeq (,$(shell which ${CC})) $(error ${CC} is not defined through the PATH environment variable setting. Please try sourcing an Intel(r) Cluster Tools script file such as "mpivars.[c]sh" or "ictvars.[c]sh") endif OPTFLAGS = -O3 CLINKER = ${CC} LDFLAGS = CPPFLAGS = export CC LIB_PATH LIBS OPTFLAGS CLINKER LDFLAGS CPPFLAGS include Makefile.base IMB_3.0/src/Makefile.base0000644014562400001620000001160310446307415014372 0ustar sthealeykap.SUFFIXES: .SUFFIXES: .c .o SHELL = /bin/sh PROFLIB = SRC1 = IMB.c IMB_declare.c IMB_init.c IMB_mem_manager.c IMB_parse_name_mpi1.c IMB_benchlist.c IMB_strgs.c \ IMB_err_handler.c IMB_g_info.c IMB_warm_up.c IMB_output.c \ IMB_pingpong.c IMB_pingping.c IMB_allreduce.c IMB_reduce_scatter.c IMB_reduce.c IMB_exchange.c IMB_bcast.c IMB_barrier.c IMB_allgather.c IMB_allgatherv.c IMB_alltoall.c IMB_alltoallv.c IMB_sendrecv.c IMB_init_transfer.c IMB_chk_diff.c IMB_cpu_exploit.c OBJ1 = IMB.o IMB_declare.o IMB_init.o IMB_mem_manager.o IMB_parse_name_mpi1.o IMB_benchlist.o IMB_strgs.o \ IMB_err_handler.o IMB_g_info.o IMB_warm_up.o IMB_output.o \ IMB_pingpong.o IMB_pingping.o IMB_allreduce.o IMB_reduce_scatter.o IMB_reduce.o IMB_exchange.o IMB_bcast.o IMB_barrier.o IMB_allgather.o IMB_allgatherv.o IMB_alltoall.o IMB_alltoallv.o IMB_sendrecv.o IMB_init_transfer.o IMB_chk_diff.o IMB_cpu_exploit.o SRCEXT = IMB.c IMB_declare.c IMB_init.c IMB_mem_manager.c IMB_benchlist.c IMB_parse_name_ext.c IMB_strgs.c \ IMB_err_handler.c IMB_g_info.c IMB_warm_up.c IMB_output.c \ IMB_window.c IMB_ones_unidir.c IMB_ones_bidir.c IMB_ones_accu.c IMB_init_transfer.c IMB_user_set_info.c IMB_chk_diff.c OBJEXT = IMB.o IMB_declare.o IMB_init.o IMB_mem_manager.o IMB_benchlist.o IMB_parse_name_ext.o IMB_strgs.o \ IMB_err_handler.o IMB_g_info.o IMB_warm_up.o IMB_output.o \ IMB_window.o IMB_ones_unidir.o IMB_ones_bidir.o IMB_ones_accu.o IMB_init_transfer.o IMB_user_set_info.o IMB_chk_diff.o SRCIO= IMB.c IMB_declare.c IMB_init.c IMB_mem_manager.c IMB_init_file.c IMB_user_set_info.c\ IMB_benchlist.c IMB_parse_name_io.c IMB_strgs.c \ IMB_err_handler.c IMB_g_info.c IMB_warm_up.c IMB_output.c IMB_cpu_exploit.c\ IMB_open_close.c IMB_write.c IMB_read.c IMB_init_transfer.c IMB_chk_diff.c OBJIO= IMB.o IMB_declare.o IMB_init.o IMB_mem_manager.o IMB_init_file.o \ IMB_benchlist.o IMB_parse_name_io.o IMB_strgs.o IMB_user_set_info.o IMB_cpu_exploit.o\ IMB_err_handler.o IMB_g_info.o IMB_warm_up.o IMB_output.o \ IMB_open_close.o IMB_write.o IMB_read.o IMB_init_transfer.o IMB_chk_diff.o default: IMB-MPI1 all: IMB-IO IMB-EXT IMB-MPI1 IMB-MPI1: $(SRC1) IMB_declare.h exe_mpi1 $(MAKE) -f Makefile.base MPI1 CPP=MPI1 IMB-EXT:$(SRCEXT) IMB_declare.h exe_ext $(MAKE) -f Makefile.base EXT CPP=EXT IMB-IO: $(SRCIO) IMB_declare.h exe_io $(MAKE) -f Makefile.base IO CPP=MPIIO exe_io: touch $@ *.c; rm -rf exe_ext exe_mpi1 exe_ext: sleep 1; touch $@ *.c; rm -rf exe_io exe_mpi1 exe_mpi1: sleep 1; touch $@ *.c; rm -rf exe_io exe_ext MPI1: $(OBJ1) $(CLINKER) $(LDFLAGS) -o IMB-MPI1 $(OBJ1) $(LIB_PATH) $(LIBS) EXT : $(OBJEXT) $(CLINKER) $(LDFLAGS) -o IMB-EXT $(OBJEXT) $(LIB_PATH) $(LIBS) IO: $(OBJIO) $(CLINKER) $(LDFLAGS) -o IMB-IO $(OBJIO) $(LIB_PATH) $(LIBS) # Make sure that we remove executables for specific architectures clean: /bin/rm -f *.o *~ PI* core IMB-IO IMB-EXT IMB-MPI1 exe_io exe_ext exe_mpi1 .c.o: $(CC) $(MPI_INCLUDE) $(CPPFLAGS) -D$(CPP) $(OPTFLAGS) -c $*.c # DEPENDENCIES IMB_declare.h: IMB_settings.h IMB_comm_info.h IMB_settings_io.h IMB_bnames_mpi1.h \ IMB_bnames_ext.h IMB_bnames_io.h IMB_err_check.h IMB_appl_errors.h touch IMB_declare.h IMB.o: IMB_declare.h IMB_benchmark.h IMB_init.o: IMB_declare.h IMB_benchmark.h IMB_mem_manager.o: IMB_declare.h IMB_benchmark.h IMB_benchlist.o: IMB_declare.h IMB_benchmark.h IMB_output.o: IMB_declare.h IMB_benchmark.h IMB_warm_up.o: IMB_declare.h IMB_benchmark.h IMB_chk_diff.o: IMB_declare.h IMB_chk_diff.c IMB_declare.o: IMB_declare.h IMB_g_info.o: IMB_declare.h IMB_benchmark.h IMB_err_handler.o: IMB_declare.h IMB_appl_errors.h IMB_init_transfer.o: IMB_declare.h IMB_benchmark.h IMB_comments.h # IMB-MPI1: IMB_parse_name_mpi1.o: IMB_declare.h IMB_benchmark.h IMB_comments.h IMB_pingping.o: IMB_declare.h IMB_pingpong.o: IMB_declare.h IMB_sendrecv.o: IMB_declare.h IMB_exchange.o: IMB_declare.h IMB_reduce.o: IMB_declare.h IMB_reduce_scatter.o: IMB_declare.h IMB_allreduce.o: IMB_declare.h IMB_bcast.o: IMB_declare.h IMB_allgather.o: IMB_declare.h IMB_allgatherv.o: IMB_declare.h IMB_alltoall.o: IMB_declare.h IMB_alltoallv.o: IMB_declare.h IMB_barrier.o: IMB_declare.h # IMB-EXT: IMB_parse_name_ext.o: IMB_declare.h IMB_benchmark.h IMB_comments.h IMB_window.o: IMB_declare.h IMB_ones_unidir.o: IMB_declare.h IMB_ones_bidir.o: IMB_declare.h IMB_ones_accu.o: IMB_declare.h # IMB-IO: IMB_parse_name_io.o: IMB_declare.h IMB_benchmark.h IMB_comments.h IMB_init_file.o: IMB_declare.h IMB_benchmark.h IMB_comments.h IMB_open_close.o: IMB_declare.h IMB_benchmark.h IMB_write.o: IMB_declare.h IMB_benchmark.h IMB_read.o: IMB_declare.h IMB_benchmark.h IMB_3.0/src/make_mpich0000644014562400001620000000103010446445016014032 0ustar sthealeykap# Enter root directory of mpich install MPI_HOME= MPICC=$(shell find ${MPI_HOME} -name mpicc -print) NULL_STRING := ifneq (,$(findstring /bin/mpicc,${MPICC})) MPI_INCLUDE := -I${MPI_HOME}/include else $(error Variable MPI_HOME="${MPI_HOME}" does not seem to contain a valid mpicc) endif LIB_PATH = LIBS = CC = ${MPI_HOME}/bin/mpicc OPTFLAGS = -O3 CLINKER = ${CC} LDFLAGS = CPPFLAGS = export MPI_INCLUDE CC LIB_PATH LIBS OPTFLAGS CLINKER LDFLAGS CPPFLAGS include Makefile.base IMB_3.0/src/Makefile0000644014562400001620000000136710446650275013474 0ustar sthealeykapfeedback: @echo " " @echo "IMB_3.0 does not have a default Makefile any more." @echo "This Makefile can be used to" @echo " " @echo "make clean" @echo " " @echo "For installing, please use:" @echo " " @echo "make -f make_ict" @echo " " @echo "to install the Intel(r) Cluster Tools (ict) version." @echo "When an Intel(r) MPI Library install and mpiicc path exists," @echo "this should work immediately." @echo " " @echo "Alternatively, use " @echo " " @echo "make -f make_mpich" @echo " " @echo "to install an mpich or similar version; for this," @echo "you normally have to edit at least the MPI_HOME" @echo "variable provided in make_mpich" @echo " " clean: /bin/rm -f *.o *~ PI* core IMB-IO IMB-EXT IMB-MPI1 exe_io exe_ext exe_mpi1 IMB_3.0/license/0000755014562400001620000000000010446342770012656 5ustar sthealeykapIMB_3.0/license/license.txt0000644014562400001620000002764710446342770015061 0ustar sthealeykapCommon Public License Version 1.0 THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. 1. DEFINITIONS "Contribution" means: a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and b) in the case of each subsequent Contributor: i) changes to the Program, and ii) additions to the Program; where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program. "Contributor" means any person or entity that distributes the Program. "Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program. "Program" means the Contributions distributed in accordance with this Agreement. "Recipient" means anyone who receives the Program under this Agreement, including all Contributors. 2. GRANT OF RIGHTS a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form. b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder. c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program. d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement. 3. REQUIREMENTS A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that: a) it complies with the terms and conditions of this Agreement; and b) its license agreement: i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose; ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange. When the Program is made available in source code form: a) it must be made available under this Agreement; and b) a copy of this Agreement must be included with each copy of the Program. Contributors may not remove or alter any copyright notices contained within the Program. Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution. 4. COMMERCIAL DISTRIBUTION Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense. For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages. 5. NO WARRANTY EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. 6. DISCLAIMER OF LIABILITY EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 7. GENERAL If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to software (including a cross-claim or counterclaim in a lawsuit), then any patent licenses granted by that Contributor to such Recipient under this Agreement shall terminate as of the date such litigation is filed. In addition, if Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed. All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive. Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. IBM is the initial Agreement Steward. IBM may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved. This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation. IMB_3.0/license/use-of-trademark-license.txt0000644014562400001620000000155610446342770020214 0ustar sthealeykapLicense for Use of "Intel® MPI Benchmarks" Name and Trademark In addition to the provisions of the Common Public License as included in the Intel® MPI Benchmarks distribution, Intel grants the recipient the right to use the name and trademark "Intel® MPI Benchmarks" in relation to disclosures or publications of results, provided that bespoke results were obtained by running the benchmarks generated from the original, unchanged source code as distributed by Intel. Under no circumstances shall the recipient be permitted to use the name and trademark "Intel® MPI Benchmarks" in relation to results obtained by running benchmarks generated from source code that is different from the original source code as distributed by Intel, regardless of whether the differences are caused by modifying the existing benchmark components or by adding new components. IMB_3.0/ReadMe_first0000755014562400001620000000134710446342770013533 0ustar sthealeykapReadme File for Intel® MPI Benchmarks 2.3 Distribution After unpacking, the directory will contain - This file (ReadMe_first) and 4 subdirectories - ./doc (ReadMe_IMB.txt; IMB_ug.pdf, the methodology description) - ./src (program source code and Makefiles) - ./license (source license agreement, trademark use license agreement) - ./versions_news (version history and news) >>>> Please read the license agreements first: - license.txt specifies the source code license granted to you - use-of-trademark-license.txt specifies the license for using the name and trademark "Intel® MPI Benchmarks" <<<< For a quick start on compiling and using the Intel® MPI Benchmarks, see ./doc/ReadMe_IMB.txt. IMB_3.0/doc/0000755014562400001620000000000010446651506012001 5ustar sthealeykapIMB_3.0/doc/ReadMe_IMB.txt0000644014562400001620000033312110446322554014367 0ustar sthealeykapIntel® MPI Benchmarks Version 3.0 Release Notes ==================================================================== Main changes vs. IMB_2.3: - Benchmark "Alltoallv" added - Flag -h[elp] added for help - All except 2 makefiles erased - Better argument line error handling ==================================================================== This document contains the description of the software package (installation, running, header files and data structures, interfaces of all functions in IMB). For a documentation of the methodologies behind it, see the reference [1] doc/IMB_ug.pdf Overview ======== I. Installing and running IMB II. Header files, struct data types III. All interfaces and brief documentation I. Installing and running IMB ============================= I.1 Directory ------------- After unpacking, the directory contains ReadMe_first and 4 subdirectories ./doc (this file; IMB.pdf, the methodology description) ./src (program source- and Make-files) ./license (license agreement text) ./versions_news (version history and news) >>>> Please read the license agreements first: - license.txt specifies the source code license granted to you - use-of-trademark-license.txt specifies the license for using the name and trademark "Intel® MPI Benchmarks" <<<< I.2 Installation and quick start -------------------------------- (please read [1] for more extensive explanations). 2 Makefiles are provided: make_ict (for Intel Cluster Tools usage) make_mpich (for mpich; has to be edited) , invoked by make -f make_ict make -f make_mpich (attention: in contrast to IMB_2.3, these are full makefiles and don't need to included) In their header, variables are set: Mandatory: CC = mpicc (e.g.) CLINKER = ${CC} (e.g.) Optional: MPI_INCLUDE = LIB_PATH = LIBS = OPTFLAGS = LDFLAGS = CPPFLAGS = These variables are then exported to the main part of the Makefile, Makefile.base. In make_mpich, the root of the installation must be set: MPI_HOME=/opt/mpich2-1.0.3-icc.icpc-ifort/ch3_ssm In the end, compilation will follow the rule $(CC) $(MPI_INCLUDE) $(CPPFLAGS) $(OPTFLAGS) -c $*.c and linkage is done by $(CLINKER) $(LDFLAGS) -o $(LIB_PATH) $(LIBS) The only CPPFLAGS setting currently provided is "-DCHECK"; when activated, IMB checks contents of message passing buffers, as far as possible. Should be used for correctness check of an implementation only, not for performance measurements. make -f IMB-, where case is "MPI1", "EXT" or "MPIIO" I.3 Running and run time flags ------------------------------ IMB- [-h{elp}] [-npmin ] [-multi ] [-msglen ] [-map ] [-input ] [benchmark1 [,benchmark2 [,...]]] where - case is one of MPI1, EXT, IO - h ( or help) just provides basic help (if active, all other arguments are ignored) - NPmin is the minimum number of processes to run on (then if IMB is started on NP processes, the process numbers NPmin, 2*NPmin, ... ,2^k * NPmin < NP, NP are used) >>> to run on just NP processes, run IMB on NP and select -npmin NP <<< Default: NPmin=2 - P,Q are integer numbers with P*Q <= NP Enter PxQ with the 2 numbers separated by letter "x" and no blanc The basic communicator is set up as P by Q process grid If, e.g., one runs on N nodes of X processors each, and inserts P=X, Q=N, then the numbering of processes is \"inter node first\". Running PingPong with P=X, Q=2 would measure inter-node performance (assuming MPI default would apply 'normal' mapping, i.e. fill nodes first priority) Default: Q=1 - MultiMode is 0 or 1 if -multi is selected, running the N process version of a benchmark on NP overall, means running on (NP/N) simultaneous groups of N each. MultiMode only controls default (0) or extensive (1) output charts. 0: Only lowest performance groups is output 1: All groups are output Default: multi off - Lengths_file is an ASCII file, containing any set of nonnegative message lengths, 1 per line Default: no Lengths_file, lengths defined by settings.h, settings_io.h - filename is any text file containing, line by line, benchmark names. Facilitates running particular benchmarks as compared to using the command line. Default: no input file exists - benchmarkX is (in arbitrary lower/upper case spelling) for case==MPI-1 one of PingPong PingPing Sendrecv Exchange Bcast Allgather Allgatherv Alltoall Alltoallv Reduce Reduce_scatter Allreduce Barrier for case==EXT one of Window Unidir_Put Unidir_Get Bidir_Get Bidir_Put Accumulate for case==MPIIO one of S_Write_indv S_Read_indv S_Write_expl S_Read_expl P_Write_indv P_Read_indv P_Write_expl P_Read_expl P_Write_shared P_Read_shared P_Write_priv P_Read_priv C_Write_indv C_Read_indv C_Write_expl C_Read_expl C_Write_shared C_Read_shared IMB will run the benchmarks corresponding to well defined rules [1]. The run settings (message lengths, in particular) are fixed in the header files (see next section) settings.h (for MPI1, EXT cases) and settings_io.h (for MPIIO). These should not normally be changed to achieve unified rules. But, they might be modified when special cases need to be looked at. II. Header files, struct data types ==================================== THe following header files belong the the code: IMB_settings.h IMB_settings_io.h IMB_prototypes.h IMB_benchmark.h IMB_bnames_ext.h IMB_bnames_io.h IMB_bnames_mpi1.h IMB_comm_info.h IMB_declare.h IMB_comments.h IMB_appl_errors.h IMB_err_check.h All header files contain inline documentation, so here only brief hints are given. II.1 IMB_settings.h / IMB_settings_io.h ------------------------------------------- These files fix the run mode of IMB, in particular the message lengths each benchmark will use. Normally, these should not be changed. All other headers are IMB internal and must not normally be changed. Only for detailed understanding of the code, it is necessary to look at these files. II.2. IMB_prototypes.h ------------------------ Collection of all prototypes use in IMB II.3. IMB_benchmark.h ------------------------ IMB sets up a linked list of benchmarks requested by the user. The description of a benchmark is collected in a "struct Bench" data structure which is defined here. In particular contains a benchmark structure the 'modes' (sub-structure 'MODES') of a benchmark which says whether the benchmark is - single/parallel/collective transfer or synchronisation - aggregate/non aggregate (only EXT and MIPIO) - blocking/nonblocking (see the manual). This structure "MODES" is also used for the => calling sequences of the benchmarks. II.4. IMB_bnames_.h ------------------------- Internal string lists of benchmark names II.5. IMB_comm_info.h --------------------- Collection of all (run time dependent) data describing the MPI environment of a calling process (communicators, process ids etc). II.6. IMB_declare.h --------------------- Declaration of global variables and preprocessor macros. II.7. IMB_comments.h --------------------- (Currently empty) list of comments attached to each benchmark II.8. IMB_appl_errors.h, IMB_err_check.h ---------------------------------------- Definition of internal error codes and callback functions for error handlers. III. Interfaces with brief documentation ========================================= The code consists of the following (37) C modules, which in turn contain several functions eventually. All intefaces will be listed and documented below. IMB_allgather.c IMB_allgatherv.c IMB_allreduce.c IMB_alltoall.c IMB_barrier.c IMB_bcast.c IMB_benchlist.c IMB.c IMB_chk_diff.c IMB_cpu_exploit.c IMB_declare.c IMB_err_handler.c IMB_exchange.c IMB_g_info.c IMB_init.c IMB_init_file.c IMB_init_transfer.c IMB_mem_manager.c IMB_ones_accu.c IMB_ones_bidir.c IMB_ones_unidir.c IMB_open_close.c IMB_output.c IMB_parse_name_ext.c IMB_parse_name_io.c IMB_parse_name_mpi1.c IMB_pingping.c IMB_pingpong.c IMB_read.c IMB_reduce.c IMB_reduce_scatter.c IMB_sendrecv.c IMB_strgs.c IMB_user_set_info.c IMB_warm_up.c IMB_window.c IMB_write.c III.1 MPI-1 message passing benchmarks ---------------------------------------- All interfaces for MPI-1 benchmarks have the following form /* MPI-1 benchmark kernel Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see II. for more information -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) (only MPI-2 case: see II.) Output variables: -time (type double*) Timing result per sample */ ********************************************************************** File: IMB_allgather.c ********************************************************************** Implemented function: IMB_allgather; ====================================================================== void IMB_allgather(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) ====================================================================== /* MPI-1 benchmark kernel Benchmarks MPI_Allgather (see above for general interface description of MPI-1 benchmarks) */ ********************************************************************** File: IMB_allgatherv.c ********************************************************************** Implemented function: IMB_allgatherv; ====================================================================== void IMB_allgatherv(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) ====================================================================== /* MPI-1 benchmark kernel Benchmarks MPI_Allgatherv (see above for general interface description of MPI-1 benchmarks) */ ********************************************************************** File: IMB_allreduce.c ********************************************************************** Implemented function: IMB_allreduce; ====================================================================== void IMB_allreduce(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) ====================================================================== /* MPI-1 benchmark kernel Benchmarks MPI_Allreduce (see above for general interface description of MPI-1 benchmarks) */ ********************************************************************** File: IMB_alltoall.c ********************************************************************** Implemented function: IMB_alltoall; ====================================================================== void IMB_alltoall(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) ====================================================================== /* MPI-1 benchmark kernel Benchmarks MPI_Alltoall (see above for general interface description of MPI-1 benchmarks) */ ********************************************************************** File: IMB_barrier.c ********************************************************************** Implemented function: IMB_barrier; ====================================================================== void IMB_barrier(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) ====================================================================== /* MPI-1 benchmark kernel Benchmarks MPI_Barrier (see above for general interface description of MPI-1 benchmarks) */ ********************************************************************** File: IMB_bcast.c ********************************************************************** Implemented function: IMB_bcast; ====================================================================== void IMB_bcast(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) ====================================================================== /* MPI-1 benchmark kernel Benchmarks MPI_Bcast (see above for general interface description of MPI-1 benchmarks) */ ********************************************************************** File: IMB_exchange.c ********************************************************************** Implemented function: IMB_exchange; ====================================================================== void IMB_exchange(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) ====================================================================== /* MPI-1 benchmark kernel Chainwise exchange; MPI_Isend (left+right) + MPI_Recv (right+left) (see above for general interface description of MPI-1 benchmarks) */ ********************************************************************** File: IMB_pingping.c ********************************************************************** Implemented function: IMB_pingping; ====================================================================== void IMB_pingping(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) ====================================================================== /* MPI-1 benchmark kernel 2 process exchange; MPI_Isend + MPI_Recv (see above for general interface description of MPI-1 benchmarks) */ ********************************************************************** File: IMB_pingpong.c ********************************************************************** Implemented function: IMB_pingpong; ====================================================================== void IMB_pingpong(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) ====================================================================== /* MPI-1 benchmark kernel 2 process MPI_Send + MPI_Recv pair (see above for general interface description of MPI-1 benchmarks) */ ********************************************************************** File: IMB_reduce.c ********************************************************************** Implemented function: IMB_reduce; ====================================================================== void IMB_reduce(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) ====================================================================== /* MPI-1 benchmark kernel Benchmarks MPI_Reduce (see above for general interface description of MPI-1 benchmarks) */ ********************************************************************** File: IMB_reduce_scatter.c ********************************************************************** Implemented function: IMB_reduce_scatter; ====================================================================== void IMB_reduce_scatter(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) ====================================================================== /* MPI-1 benchmark kernel Benchmarks MPI_Reduce_scatter (see above for general interface description of MPI-1 benchmarks) */ ********************************************************************** File: IMB_sendrecv.c ********************************************************************** Implemented function: IMB_sendrecv; ====================================================================== void IMB_sendrecv(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) ====================================================================== /* MPI-1 benchmark kernel Benchmarks MPI_Sendrecv (see above for general interface description of MPI-1 benchmarks) */ III.2 MPI-2 onesided communications benchmarks ------------------------------------------------ All interfaces for MPI-2 onesided communications benchmarks have the following form /* MPI-2 benchmark kernel Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see II. for more information -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) Mode (aggregate/non aggregate; blocking/nonblocking); see "IMB_benchmark.h" for definition Output variables: -time (type double*) Timing result per sample */ ********************************************************************** File: IMB_ones_accu.c ********************************************************************** Implemented function: IMB_accumulate; ====================================================================== void IMB_accumulate (struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) ====================================================================== /* MPI-2 benchmark kernel Benchmarks MPI_Accumulate (see above for general interface description of MPI-2 onesided communications benchmarks) */ ********************************************************************** File: IMB_ones_bidir.c ********************************************************************** Implemented functions: IMB_bidir_get; IMB_bidir_put; ====================================================================== void IMB_bidir_get(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) ====================================================================== /* MPI-2 benchmark kernel Driver for aggregate / non agg. bidirectional MPI_Get benchmarks (see above for general interface description of MPI-2 onesided communications benchmarks) */ ====================================================================== void IMB_bidir_put(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) ====================================================================== /* MPI-2 benchmark kernel Driver for aggregate / non agg. bidirectional MPI_Put benchmarks (see above for general interface description of MPI-2 onesided communications benchmarks) */ ********************************************************************** File: IMB_ones_unidir.c ********************************************************************** Implemented functions: IMB_unidir_put; IMB_unidir_get; IMB_ones_get; IMB_ones_mget; IMB_ones_put; IMB_ones_mput; ====================================================================== void IMB_unidir_put (struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) ====================================================================== /* MPI-2 benchmark kernel Driver for aggregate / non agg. unidirectional MPI_Put benchmarks (see above for general interface description of MPI-2 onesided communications benchmarks) */ ====================================================================== void IMB_unidir_get (struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) ====================================================================== /* MPI-2 benchmark kernel Driver for aggregate / non agg. unidirectional MPI_Get benchmarks (see above for general interface description of MPI-2 onesided communications benchmarks) */ ====================================================================== void IMB_ones_get(struct comm_info* c_info, int s_num, int dest, int r_num, int sender, int size, int n_sample, double* time) ====================================================================== /* Non aggregate MPI_Get + MPI_Win_fence Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see II. for more information -s_num (type int) #bytes to put if relevant for calling process -dest (type int) destination rank -r_num (type int) #bytes to get if relevant for calling process -sender (type int) logical flag: 1/0 for 'local process puts/gets' -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) Mode (aggregate/non aggregate; blocking/nonblocking); see "IMB_benchmark.h" for definition Output variables: -time (type double*) Timing result per sample */ ====================================================================== void IMB_ones_mget(struct comm_info* c_info, int s_num, int dest, int r_num, int sender, int size, int n_sample, double* time) ====================================================================== /* Aggregate MPI_Get + MPI_Win_fence Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see II. for more information -s_num (type int) #bytes to put if relevant for calling process -dest (type int) destination rank -r_num (type int) #bytes to get if relevant for calling process -sender (type int) logical flag: 1/0 for 'local process puts/gets' -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) Mode (aggregate/non aggregate; blocking/nonblocking); see "IMB_benchmark.h" for definition Output variables: -time (type double*) Timing result per sample */ ====================================================================== void IMB_ones_put(struct comm_info* c_info, int s_num, int dest, int r_num, int sender, int size, int n_sample, double* time) ====================================================================== /* Non aggregate MPI_Put + MPI_Win_fence Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see II. for more information -s_num (type int) #bytes to put if relevant for calling process -dest (type int) destination rank -r_num (type int) #bytes to get if relevant for calling process -sender (type int) logical flag: 1/0 for 'local process puts/gets' -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) Mode (aggregate/non aggregate; blocking/nonblocking); see "IMB_benchmark.h" for definition Output variables: -time (type double*) Timing result per sample */ ====================================================================== void IMB_ones_mput(struct comm_info* c_info, int s_num, int dest, int r_num, int sender, int size, int n_sample, double* time) ====================================================================== /* Aggregate MPI_Put + MPI_Win_fence Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see II. for more information -s_num (type int) #bytes to put if relevant for calling process -dest (type int) destination rank -r_num (type int) #bytes to get if relevant for calling process -sender (type int) logical flag: 1/0 for 'local process puts/gets' -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) Mode (aggregate/non aggregate; blocking/nonblocking); see "IMB_benchmark.h" for definition Output variables: -time (type double*) Timing result per sample */ ********************************************************************** File: IMB_window.c ********************************************************************** Implemented function: IMB_window; ====================================================================== void IMB_window(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) ====================================================================== /* MPI-2 benchmark kernel MPI_Win_create + MPI_Win_fence + MPI_Win_free (see above for general interface description of MPI-2 onesided communications benchmarks) */ III.3 MPI-IO benchmarks ------------------------- All interfaces for MPI-IO benchmarks have the following form /* MPI-IO benchmark kernel Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see II. for more information -size (type int) Basic message size in bytes -n_sample (type int) Number of repetitions (for timing accuracy) -RUN_MODE (type MODES) Mode (aggregate/non aggregate; blocking/nonblocking); see "IMB_benchmark.h" for definition Output variables: -time (type double*) Timing result per sample */ ********************************************************************** File: IMB_open_close.c ********************************************************************** Implemented function: IMB_open_close; ====================================================================== void IMB_open_close(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) ====================================================================== /* MPI-IO benchmark kernel MPI_File_open + MPI_File_close (see above for general interface description of MPI-IO benchmarks) */ ********************************************************************** File: IMB_read.c ********************************************************************** Implemented functions: IMB_read_shared; IMB_read_indv; IMB_read_expl; IMB_read_ij; IMB_iread_ij; ====================================================================== void IMB_read_shared(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) ====================================================================== /* MPI-IO benchmark kernel Driver for read benchmarks with shared file pointers (see above for general interface description of MPI-IO benchmarks) */ ====================================================================== void IMB_read_indv(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) ====================================================================== /* MPI-IO benchmark kernel Driver for read benchmarks with individual file pointers (see above for general interface description of MPI-IO benchmarks) */ ====================================================================== void IMB_read_expl(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) ====================================================================== /* MPI-IO benchmark kernel Driver for read benchmarks with explicit offsets (see above for general interface description of MPI-IO benchmarks) */ ====================================================================== void IMB_read_ij(struct comm_info* c_info, int size, POSITIONING pos, BTYPES type, int i_sample, int j_sample, int time_inner, double* time) ====================================================================== /* Calls the proper read functions, blocking case Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see II. for more information -size (type int) portion size in bytes -pos (type POSITIONING) (see IMB_benchmark.h for definition of this enum type) descriptor for the file positioning -type (type BTYPES) (see IMB_benchmark.h for definition of this enum type) descriptor for the file access synchronism -i_sample,j_sample (type int) aggregate case: i_sample=1, j_sample=n_sample (set by driving function) non aggregate case: i_sample=n_sample, j_sample=1 (set by driving function) Benchmark logistics then: for( i=0 .. i_sample-1 ) for( j=0 .. j_sample-1 ) input ... Synchronize (!) -time_inner (type int) logical flag: should timing be issued for the innermost loop (and then averaged by outermost count), or for outermost loop Output variables: -time (type double*) Timing result per sample */ ====================================================================== void IMB_iread_ij(struct comm_info* c_info, int size, POSITIONING pos, BTYPES type, int i_sample, int j_sample, int time_inner, int do_ovrlp, double* time) ====================================================================== /* Calls the proper read functions, non blocking case (See IMB_read_ij for documentation of calling sequence) */ ********************************************************************** File: IMB_write.c ********************************************************************** Implemented functions: IMB_write_shared; IMB_write_indv; IMB_write_expl; IMB_write_ij; IMB_iwrite_ij; ====================================================================== void IMB_write_shared(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) ====================================================================== /* MPI-IO benchmark kernel Driver for write benchmarks with shared file pointers (see above for general interface description of MPI-IO benchmarks) */ ====================================================================== void IMB_write_indv(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) ====================================================================== /* MPI-IO benchmark kernel Driver for write benchmarks with individual file pointers (see above for general interface description of MPI-IO benchmarks) */ ====================================================================== void IMB_write_expl(struct comm_info* c_info, int size, int n_sample, MODES RUN_MODE, double* time) ====================================================================== /* MPI-IO benchmark kernel Driver for write benchmarks with explicit offsets (see above for general interface description of MPI-IO benchmarks) */ ====================================================================== void IMB_write_ij(struct comm_info* c_info, int size, POSITIONING pos, BTYPES type, int i_sample, int j_sample, int time_inner, double* time) ====================================================================== /* Calls the proper write functions, blocking case (See IMB_read_ij for documentation of calling sequence) */ ====================================================================== void IMB_iwrite_ij(struct comm_info* c_info, int size, POSITIONING pos, BTYPES type, int i_sample, int j_sample, int time_inner, int do_ovrlp, double* time) ====================================================================== /* Calls the proper write functions, non blocking case (See IMB_read_ij for documentation of calling sequence) */ III.4 Organizational functions -------------------------------- ********************************************************************** File: IMB.c ********************************************************************** Implemented function: main; ====================================================================== int main(int argc, char **argv) ====================================================================== /* Input variables: -argc (type Number of command line arguments) int -argv (type char **) List of command line arguments Return value (type int) 0 always */ ********************************************************************** File: IMB_init.c ********************************************************************** Implemented functions: IMB_basic_input; IMB_get_rank_portion; IMB_init_communicator; IMB_set_communicator; IMB_valid; IMB_set_default; ====================================================================== int IMB_basic_input(struct comm_info* c_info, struct Bench** P_BList, int *argc, char ***argv, int* NP_min) ====================================================================== /* Input variables: -argc (type int *) Number of command line arguments -argv (type char ***) List of command line arguments Output variables: -NP_min (type int*) Minimum number of processes to run (-npmin command line argument) -P_BList (type struct Bench**) (For explanation of struct Bench type: describes all aspects of modes of a benchmark; see II. for more information) Address of list of benchmarks to run; list is set up. -c_info (type struct comm_info*) Collection of all base data for MPI; see II. for more information */ ====================================================================== void IMB_get_rank_portion(int rank, int NP, int size, int unit_size, int* pos1, int* pos2) ====================================================================== /* Splits into even contiguous pieces among processes Input variables: -rank (type int) Process' rank -NP (type int) Number of processes -size (type int) Portion to split -unit_size (type int) Base unit for splitting Output variables: -pos1 (type int*) -pos2 (type int*) Process' portion is from unit pos1 to pos2 */ ====================================================================== int IMB_init_communicator(struct comm_info* c_info, int NP) ====================================================================== /* Input variables: -NP (type int) Number of all started processes In/out variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see II. for more information Communicator of active processes gets initialized; grouping of processes (in the 'multi' case) in communicators Return value (type int) Non currently used error exit (value is always 0) */ ====================================================================== void IMB_set_communicator(struct comm_info *c_info ) ====================================================================== /* Performs the actual communicator splitting In/out variables: -c_info (type struct comm_info *) Collection of all base data for MPI; see II. for more information Application communicator gets initialized */ ====================================================================== int IMB_valid(struct comm_info * c_info, struct Bench* Bmark, int NP) ====================================================================== /* Validates an input Benchmark / NP setting Input variables: -c_info (type struct comm_info *) Collection of all base data for MPI; see II. for more information -Bmark (type struct Bench*) (For explanation of struct Bench type: describes all aspects of modes of a benchmark; see II. for more information) User input benchmark setting -NP (type int) Number of active processes Return value (type int) 1/0 for valid / invalid input */ ====================================================================== void IMB_set_default(struct comm_info* c_info) ====================================================================== /* Default initialization of comm_info Output variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see II. for more information */ ********************************************************************** File: IMB_declare.c ********************************************************************** Implemented function: ********************************************************************** File: IMB_parse_name_mpi1.c ********************************************************************** Implemented functions: IMB_get_def_cases; IMB_set_bmark; ====================================================================== void IMB_get_def_cases(char*** defc, char*** Gcmt) ====================================================================== /* Initializes default benchmark names (defc) and accompanying comments (Gcmt) In/out variables: -defc (type char***) List of benchkark names (strings) -Gcmt (type char***) List of general comments (strings) */ ====================================================================== void IMB_set_bmark(struct Bench* Bmark) ====================================================================== /* In/out variables: -Bmark (type struct Bench*) (For explanation of struct Bench type: describes all aspects of modes of a benchmark; see II. for more information) On input, only the name of the benchmark is set. On output, all necessary run modes are set accordingly */ ********************************************************************** File: IMB_parse_name_ext.c ********************************************************************** Implemented functions: IMB_get_def_cases; IMB_set_bmark; ====================================================================== void IMB_get_def_cases(char*** defc, char*** Gcmt) ====================================================================== /* Initializes default benchmark names (defc) and accompanying comments (Gcmt) In/out variables: -defc (type char***) List of benchkark names (strings) -Gcmt (type char***) List of general comments (strings) */ ====================================================================== void IMB_set_bmark(struct Bench* Bmark) ====================================================================== /* In/out variables: -Bmark (type struct Bench*) (For explanation of struct Bench type: describes all aspects of modes of a benchmark; see II. for more information) On input, only the name of the benchmark is set. On output, all necessary run modes are set accordingly */ ********************************************************************** File: IMB_parse_name_io.c ********************************************************************** Implemented functions: IMB_get_def_cases; IMB_set_bmark; ====================================================================== void IMB_get_def_cases(char*** defc, char*** Gcmt) ====================================================================== /* Initializes default benchmark names (defc) and accompanying comments (Gcmt) In/out variables: -defc (type char***) List of benchkark names (strings) -Gcmt (type char***) List of general comments (strings) */ ====================================================================== void IMB_set_bmark(struct Bench* Bmark) ====================================================================== /* In/out variables: -Bmark (type struct Bench*) (For explanation of struct Bench type: describes all aspects of modes of a benchmark; see II. for more information) On input, only the name of the benchmark is set. On output, all necessary run modes are set accordingly */ ********************************************************************** File: IMB_init_file.c ********************************************************************** Implemented functions: IMB_init_file_content; IMB_init_file; IMB_free_file; IMB_del_file; IMB_open_file; ====================================================================== void IMB_init_file_content(void* BUF, int pos1, int pos2) ====================================================================== /* Initializes contents of a file for READ benchmarks Input variables: -pos1 (type int) -pos2 (type int) pos1, pos2: target positions (start/end) in file In/out variables: -BUF (type void*) Content of buffer to be written to file between these positions */ ====================================================================== int IMB_init_file(struct comm_info* c_info, struct Bench* Bmark, int NP) ====================================================================== /* Input variables: -Bmark (type struct Bench*) (For explanation of struct Bench type: describes all aspects of modes of a benchmark; see II. for more information) Given file i/o benchmark -NP (type int) Number of active processes In/out variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see II. for more information MPI_File component is set accordingly Return value (type int) Error code (identical with MPI error code if occurs) */ ====================================================================== void IMB_free_file(struct comm_info * c_info) ====================================================================== /* In/out variables: -c_info (type struct comm_info *) Collection of all base data for MPI; see II. for more information File related components are free-d and reset to NULL initialization */ ====================================================================== void IMB_del_file(struct comm_info* c_info) ====================================================================== /* In/out variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see II. for more information File associated to MPI_File component is erased from disk */ ====================================================================== int IMB_open_file(struct comm_info* c_info) ====================================================================== /* In/out variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see II. for more information File associated to MPI_File component is opened, view is set Return value (type int) Error code (identical with MPI error code if occurs) */ ********************************************************************** File: IMB_user_set_info.c ********************************************************************** Implemented function: IMB_user_set_info; ====================================================================== void IMB_user_set_info(MPI_Info* opt_info) ====================================================================== /* In/out variables: -opt_info (type MPI_Info*) Is set. Default is MPI_INFO_NULL, everything beyond this is user decision and system dependent. */ ********************************************************************** File: IMB_benchlist.c ********************************************************************** Implemented functions: IMB_list_names; IMB_get_def_index; IMB_construct_blist; IMB_destruct_blist; IMB_print_blist; ====================================================================== void IMB_list_names(char* Bname, int** List) ====================================================================== /* Input variables: -Bname (type char*) Input benchmark name (or "all" for all available benchmarks) In/out variables: -List (type int**) Auxiliary list of internal numbering for input benchmark(s) */ ====================================================================== void IMB_get_def_index(int* index, char* name) ====================================================================== /* Input variables: -name (type char*) Input benchmark name In/out variables: -index (type int*) Internal number of benchmark */ ====================================================================== void IMB_construct_blist(struct Bench** P_BList, int n_args, char* name) ====================================================================== /* Sets up the list of requested benchmarks (represented as list of struct Bench structures). In one call, 1 benchmark is included. Input variables: -n_args (type int) Overall number of benchmarks to be run (0 means "all") -name (type char*) Name of benchmark to be included in list Output variables: -P_BList (type struct Bench**) (For explanation of struct Bench type: describes all aspects of modes of a benchmark; see II. for more information) Updated benchmark list */ ====================================================================== void IMB_destruct_blist(struct Bench ** P_BList) ====================================================================== /* Completely destructs benchmark list In/out variables: -P_BList (type struct Bench **) (For explanation of struct Bench type: describes all aspects of modes of a benchmark; see II. for more information) All substructures plus list itself are free-d and NULL initialized */ ====================================================================== void IMB_print_blist(struct comm_info * c_info, struct Bench *BList) ====================================================================== /* Displays requested benchmark scenario on stdout Input variables: -c_info (type struct comm_info *) Collection of all base data for MPI; see II. for more information -BList (type struct Bench *) (For explanation of struct Bench type: describes all aspects of modes of a benchmark; see II. for more information) */ ********************************************************************** File: IMB_init_transfer.c ********************************************************************** Implemented functions: IMB_init_transfer; IMB_close_transfer; ====================================================================== void IMB_init_transfer(struct comm_info* c_info, struct Bench* Bmark, int size) ====================================================================== /* For IO case: file splitting/view is set, file is opened For EXT case: window is created and synchronized (MPI_Win_fence) Input variables: -Bmark (type struct Bench*) (For explanation of struct Bench type: describes all aspects of modes of a benchmark; see II. for more information) Given benchmark -size (type int) (Only IO case): used to determine file view In/out variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see II. for more information Corresponding components (File or Window related) are set */ ====================================================================== void IMB_close_transfer (struct comm_info* c_info, struct Bench* Bmark, int size) ====================================================================== /* Closes / frees file / window components Input variables: -Bmark (type struct Bench*) (For explanation of struct Bench type: describes all aspects of modes of a benchmark; see II. for more information) Given benchmark -size (type int) (Only IO case): used to determine file view In/out variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see II. for more information Corresponding components (File or Window related) are freed */ ********************************************************************** File: IMB_warm_up.c ********************************************************************** Implemented function: IMB_warm_up; ====================================================================== void IMB_warm_up (struct comm_info* c_info, struct Bench* Bmark, int iter) ====================================================================== /* 'Warm up' run of the particular benchmark, so the system can eventually set up internal structures before the actual benchmark Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see II. for more information -Bmark (type struct Bench*) (For explanation of struct Bench type: describes all aspects of modes of a benchmark; see II. for more information) The actual benchmark -iter (type int) Number of the outer iteration of the benchmark. Only for iter==0, the WamrUp is carried out */ ********************************************************************** File: IMB_cpu_exploit.c ********************************************************************** Implemented function: IMB_cpu_exploit; ====================================================================== void IMB_cpu_exploit(float target_secs, int initialize) ====================================================================== /* Runs a CPU intensive code (matrix multiply) for a user defined amount of CPU time Input variables: -target_secs (type float) That many seconds (about) the matrix multiply is run -initialize (type int) 1/0 for first / subsequent calls. If 1, the program determines how to run in order to achieve target CPU time. */ ********************************************************************** File: IMB_g_info.c ********************************************************************** Implemented functions: IMB_general_info; IMB_make_sys_info; IMB_end_msg; ====================================================================== void IMB_general_info() ====================================================================== /* Prints to stdout some basic information (Version, time, system (see 'IMB_make_sys_info')) */ ====================================================================== void IMB_make_sys_info() ====================================================================== /* Prints to stdout some basic information about the system (outcome of the 'uname' command) */ ====================================================================== void IMB_end_msg(struct comm_info* c_info ) ====================================================================== /* Prints to stdout an eventual end message (currently empty) Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see II. for more information */ ********************************************************************** File: IMB_output.c ********************************************************************** Implemented functions: IMB_output; IMB_display_times; IMB_show_selections; IMB_show_procids; IMB_print_array; IMB_print_int_row; IMB_print_info; IMB_print_headlines; IMB_edit_format; IMB_make_line; ====================================================================== void IMB_output(struct comm_info* c_info, struct Bench* Bmark, MODES BMODE, int header, int size, int n_sample, double *time) ====================================================================== /* Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see II. for more information -Bmark (type struct Bench*) (For explanation of struct Bench type: describes all aspects of modes of a benchmark; see II. for more information) The actual benchmark -BMODE (type MODES) The actual benchmark mode (if relevant; only MPI-2 case, see II.) -header (type int) 1/0 for do/don't print table headers -size (type int) Benchmark message size -n_sample (type int) Benchmark repetition number -time (type double *) Benchmark timing outcome 3 numbers (min/max/average) */ ====================================================================== void IMB_display_times(struct Bench* Bmark, double* tlist, struct comm_info* c_info, int group, int n_sample, int size, int edit_type) ====================================================================== /* Input variables: -Bmark (type struct Bench*) (For explanation of struct Bench type: describes all aspects of modes of a benchmark; see II. for more information) The actual benchmark -tlist (type double*) Benchmark timing outcome 3 numbers (min/max/average) -c_info (type struct comm_info*) Collection of all base data for MPI; see II. for more information -group (type int) Index of group to be displayed (multi-case only) -n_sample (type int) Benchmark repetition number -size (type int) Benchmark message size -edit_type (type int) Code for table formatting details */ ====================================================================== void IMB_show_selections(struct comm_info* c_info, struct Bench* BList) ====================================================================== /* Displays on stdout an overview of the user selections Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see II. for more information -BList (type struct Bench*) (For explanation of struct Bench type: describes all aspects of modes of a benchmark; see II. for more information) The requested list of benchmarks */ ====================================================================== void IMB_show_procids(struct comm_info* c_info) ====================================================================== /* Prints to stdout the process ids (of group eventually) Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see II. for more information */ ====================================================================== void IMB_print_array(int* Array, int N, int disp_N, int M, char* txt, FILE* unit) ====================================================================== /* Formattedly prints to stdout a M by N int array Input variables: -Array (type int*) Array to be printed -N (type int) Number of rows to be printed -disp_N (type int) Displacement in Array where frist row begins -M (type int) Number of columns -txt (type char*) Accompanying text -unit (type FILE*) Output unit */ ====================================================================== void IMB_print_int_row(FILE* unit, int* Array, int M) ====================================================================== /* Formattedly prints to stdout a row of int numbers Input variables: -unit (type FILE*) Output unit -Array (type int*) Data to be printed -M (type int) Number of data */ ====================================================================== void IMB_print_info() ====================================================================== /* Prints MPI_Info selections (MPI-2 only) */ ====================================================================== void IMB_print_headlines(char* h_line) ====================================================================== /* Prints header legend of table Input variables: -h_line (type char*) Header legend, single items separated by '&' */ ====================================================================== void IMB_edit_format(int n_ints , int n_floats) ====================================================================== /* Edits format string for output In/out variables: -n_ints (type int) # of int items to be printed -n_floats (type int) # of float items to be printed */ ====================================================================== void IMB_make_line(int li_len) ====================================================================== /* Prints an underline Input variables: -li_len (type int) Length of underline */ ********************************************************************** File: IMB_mem_manager.c ********************************************************************** Implemented functions: IMB_v_alloc; IMB_i_alloc; IMB_alloc_buf; IMB_alloc_aux; IMB_free_aux; IMB_v_free; IMB_ass_buf; IMB_set_buf; IMB_init_pointers; IMB_init_buffers; IMB_free_all; IMB_del_s_buf; IMB_del_r_buf; ====================================================================== void* IMB_v_alloc(int Len, char* where) ====================================================================== /* Allocates void* memory Input variables: -Len (type int) #bytes to allocate -where (type char*) Comment (marker for calling place) Return value (type void*) Allocated pointer */ ====================================================================== void IMB_i_alloc(int** B, int Len, char* where ) ====================================================================== /* Allocates int memory Input variables: -Len (type int) #int's to allocate -where (type char*) Comment (marker for calling place) In/out variables: -B (type int**) *B contains allocated memory */ ====================================================================== void IMB_alloc_buf(struct comm_info* c_info, char* where, int s_len, int r_len) ====================================================================== /* Allocates send/recv buffers for message passing Input variables: -where (type char*) Comment (marker for calling place) -s_len (type int) Send buffer length (bytes) -r_len (type int) Recv buffer length (bytes) In/out variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see II. for more information Send/Recv buffer components get allocated */ ====================================================================== void IMB_alloc_aux(int L, char* where) ====================================================================== /* Allocates global auxiliary memory AUX Input variables: -L (type int) #Bytes to allocate -where (type char*) Comment (marker for calling place) */ ====================================================================== void IMB_free_aux() ====================================================================== /* Free-s global auxiliary memory AUX */ ====================================================================== void IMB_v_free(void **B) ====================================================================== /* Free-s memory In/out variables: -B (type void**) (*B) will be free-d */ ====================================================================== void IMB_ass_buf(void* buf, int rank, int pos1, int pos2, int value) ====================================================================== /* Assigns values to a buffer Input variables: -rank (type int) Rank of calling process -pos1 (type int) -pos2 (type int) Assignment between byte positions pos1, pos2 -value (type int) 1/0 for non-zero (defined in IMB_settings.h)/ zero value In/out variables: -buf (type void*) Values assigned within given positions */ ====================================================================== void IMB_set_buf(struct comm_info* c_info, int selected_rank, int s_pos1, int s_pos2, int r_pos1, int r_pos2) ====================================================================== /* Sets Send/Recv buffers for a selected rank (by call to => IMB_ass_buf) Input variables: -selected_rank (type int) Relevant process rank (Can be different from local rank: for checking purposes) -s_pos1 (type int) -s_pos2 (type int) s_pos1 .. s_pos2 positions for send buffer -r_pos1 (type int) -r_pos2 (type int) r_pos1 .. r_pos2 positions for recv buffer In/out variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see II. for more information Corresponding buffer components are assigned values */ ====================================================================== void IMB_init_pointers(struct comm_info *c_info ) ====================================================================== /* Initializes pointer components of comm_info In/out variables: -c_info (type struct comm_info *) Collection of all base data for MPI; see II. for more information Corresponding pointer components are initialized */ ====================================================================== void IMB_init_buffers(struct comm_info* c_info, struct Bench* Bmark, int size) ====================================================================== /* Initializes communications buffers (call set_buf) Input variables: -Bmark (type struct Bench*) (For explanation of struct Bench type: describes all aspects of modes of a benchmark; see II. for more information) Current benchmark -size (type int) Message size In/out variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see II. for more information Communications buffers are allocated and assigned values */ ====================================================================== void IMB_free_all(struct comm_info* c_info, struct Bench** P_BList) ====================================================================== /* Free-s all allocated memory in c_info and P_Blist In/out variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see II. for more information -P_BList (type struct Bench**) (For explanation of struct Bench type: describes all aspects of modes of a benchmark; see II. for more information) */ ====================================================================== void IMB_del_s_buf(struct comm_info* c_info ) ====================================================================== /* Deletes send buffer component of c_info In/out variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see II. for more information */ ====================================================================== void IMB_del_r_buf(struct comm_info* c_info ) ====================================================================== /* Deletes recv buffer component of c_info In/out variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see II. for more information */ ********************************************************************** File: IMB_strgs.c ********************************************************************** Implemented functions: IMB_str; IMB_lwr; IMB_str_atoi; IMB_str_erase; ====================================================================== char* IMB_str(char* Bname) ====================================================================== /* Copies string Bname to new memory which is returned Input variables: -Bname (type char*) String to be copied Return value (type char*) Copy of Bname with newly allocated memory */ ====================================================================== void IMB_lwr(char* Bname) ====================================================================== /* In/out variables: -Bname (type char*) Uper case alphabetic characters are converted to lower case */ ====================================================================== int IMB_str_atoi(char s[]) ====================================================================== /* Evaluates int value of a numeric string Input variables: -s (type char []) String with only numeric characters Return value (type int) Numeric value */ ====================================================================== void IMB_str_erase(char* string, int Nblnc) ====================================================================== /* Fills blancs into a string Input variables: -Nblnc (type int) #blancs to fill In/out variables: -string (type char*) Null terminated string with Nblnc many blancs */ ********************************************************************** File: IMB_err_handler.c ********************************************************************** Implemented functions: IMB_err_hand; IMB_errors_mpi; IMB_errors_win; IMB_errors_io; IMB_init_errhand; IMB_set_errhand; IMB_del_errhand; ====================================================================== void IMB_err_hand(int ERR_IS_MPI, int ERR_CODE ) ====================================================================== /* Handles input error code. Retrieves error string (MPI_Error_string) if is an MPI error code Calls MPI_Abort Input variables: -ERR_IS_MPI (type int) Logical flag: error code belongs to MPI or not -ERR_CODE (type int) Input error code. If an MPI error code, the string is retrieved. Anyway MPI_Abort is called */ ====================================================================== void IMB_errors_mpi(MPI_Comm * comm, int* ierr, ...) ====================================================================== /* Error handler callback for MPI-1 errors Input variables: -comm (type MPI_Comm *) Communicator which is in error -ierr (type int*) MPI error code */ ====================================================================== void IMB_errors_win(MPI_Win * WIN, int* ierr, ...) ====================================================================== /* Error handler callback for onesided communications errors Input variables: -WIN (type MPI_Win *) MPI Window which is in error -ierr (type int*) MPI error code */ ====================================================================== void IMB_errors_io (MPI_File * fh, int* ierr, ...) ====================================================================== /* Error handler callback for MPI-IO errors Input variables: -fh (type MPI_File *) MPI File which is in error -ierr (type int*) MPI error code */ ====================================================================== void IMB_init_errhand(struct comm_info* c_info) ====================================================================== /* Creates MPI error handler component of c_info by MPI_<>_create_errhandler In/out variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see II. for more information Error handler component is created (c_info->ERR for MPI-1; c_info->ERRW for EXT; c_info->ERRF for MPIIO) */ ====================================================================== void IMB_set_errhand(struct comm_info* c_info) ====================================================================== /* Sets MPI error handler component of c_info by MPI_<>_set_errhandler In/out variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see II. for more information Error handler component is set */ ====================================================================== void IMB_del_errhand(struct comm_info* c_info) ====================================================================== /* Deletes MPI error handler component of c_info by MPI_Errhandler_free In/out variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see II. for more information MPI error handler component of c_info is deleted */ ********************************************************************** File: IMB_chk_diff.c ********************************************************************** Implemented functions: IMB_chk_dadd; IMB_ddiff; IMB_show; IMB_err_msg; IMB_chk_diff; IMB_cmp_cat; IMB_chk_contiguous; IMB_chk_distr; IMB_chk_contained; IMB_compute_crc; ====================================================================== void IMB_chk_dadd(void* AUX, int Locsize, int buf_pos, int rank0, int rank1) ====================================================================== /* Auxiliary, only for checking mode; Creates reference accumulated values in a given buffer section, accumulated over given processor ranks Input variables: -Locsize (type int) Size of buffer section to check -buf_pos (type int) Start position of buffer section -rank0 (type int) -rank1 (type int) Process' values between rank0 and rank1 are accumulated In/out variables: -AUX (type void*) Contains accumulated values */ ====================================================================== double IMB_ddiff(assign_type *A, assign_type *B, int len, int *fault_pos) ====================================================================== /* Compares the values of 2 buffers A, B and returns max. diff Input variables: -A (type assign_type *) Buffer of values -B (type assign_type *) Another buffer of values to be checked against A -len (type int) Length (in assign_type items) of A, B Output variables: -fault_pos (type int *) Position of first non tolerable deviation Return value (type double) Deviation of A and B */ ====================================================================== void IMB_show(char* text, struct comm_info* c_info, void* buf, int loclen, int totlen, int j_sample, POSITIONING fpos) ====================================================================== /* Shows an excerpt of erroneous buffer if occurs in check mode Input variables: -text (type char*) Accompanying text to put out -loclen (type int) Local length of buffer -totlen (type int) Total length of buffer (for gathered or shared access buffers) -j_sample (type int) Number of sample the error occurred -fpos (type POSITIONING) File positionning (if relevant) -c_info (type struct comm_info*) Collection of all base data for MPI; see II. for more information -buf (type void*) Given check buffer */ ====================================================================== void IMB_err_msg(struct comm_info* c_info, char* text, int totsize, int j_sample) ====================================================================== /* Outputs an brief error diagnostics if occurs Input variables: -c_info (type struct comm_info*) Collection of all base data for MPI; see II. for more information -text (type char*) Accompanying text -totsize (type int) Size of the erroneous buffer -j_sample (type int) Number of sample the error occured in */ ====================================================================== void IMB_chk_diff(char* text, struct comm_info* c_info, void* RECEIVED, int buf_pos, int Locsize, int Totalsize, int unit_size, DIRECTION mode, POSITIONING fpos, int n_sample, int j_sample, int source, double* diff ) ====================================================================== /* Checks a received buffer against expected ref values Input variables: -text (type char*) Accompanying text -c_info (type struct comm_info*) Collection of all base data for MPI; see II. for more information -RECEIVED (type void*) The buffer to be checked -buf_pos (type int) Beginning position (in units -> unit_size) -Locsize (type int) Local buffer size -Totalsize (type int) Total buffer size (in case of gathered buffers) -unit_size (type int) Base unit for positioning -mode (type DIRECTION) Direction of the action that took place -fpos (type POSITIONING) File positioning of the action that took place (if relevant) -n_sample (type int) # overall samples -j_sample (type int) current sample -source (type int) Sending process (if relevant) Output variables: -diff (type double*) The error against expected values */ ====================================================================== void IMB_cmp_cat(struct comm_info *c_info, void* RECEIVED, int size, int bufpos, int unit_size, int perm, int* lengths, int*ranks, int* Npos, int *faultpos, double* diff) ====================================================================== /* Checks a received buffer which is a concatenation of several processes' buffers Input variables: -c_info (type struct comm_info *) Collection of all base data for MPI; see II. for more information -RECEIVED (type void*) The buffer to be checked -size (type int) Size of the buffer -bufpos (type int) First position to check (in units -> unit_size) -unit_size (type int) Base unit of positioning -perm (type int) Logical flag: 1 iff the different rank's portions are potentially in non natural order (relevant for shared file accesses) Output variables: -lengths (type int*) An array of lengths (of a number of erroneous portions) -ranks (type int*) An array of ranks (the erroneous portions belong to) -Npos (type int*) Numer of erroneous portions found (=size of 'lengths' and 'ranks' arrays) -faultpos (type int *) Position of first found fault -diff (type double*) Diff value */ ====================================================================== void IMB_chk_contiguous(struct comm_info *c_info, int* displs, int* sizes, double*diff) ====================================================================== /* Checks whether arrays of displacements/sizes form a contiguous buffer Input variables: -c_info (type struct comm_info *) Collection of all base data for MPI; see II. for more information -displs (type int*) Array of displacements (one for each process) -sizes (type int*) Array of sizes (one for each process) Output variables: -diff (type double*) 0 if contiguous, 1 else */ ====================================================================== void IMB_chk_distr(struct comm_info *c_info, int size, int n_sample, int* lengths, int* ranks, int Npos, double *diff) ====================================================================== /* (Only for MPI-IO shared file pointer accesses) Checks whether a found set of section lengths/ranks in a file meets expectations Input variables: -c_info (type struct comm_info *) Collection of all base data for MPI; see II. for more information -size (type int) Size of buffer -n_sample (type int) Number of samples expected in file -lengths (type int*) Array of section lengths found -ranks (type int*) Array of ranks belonging to sections -Npos (type int) Number of sections Output variables: -diff (type double *) 0 if set is consistent, 1 else */ ====================================================================== void IMB_chk_contained(void* part, int p_size, void* whole, int w_size, int* pos, int* fpos, double* D, char*msg) ====================================================================== /* Checks whether a buffer part is contained in a larger buffer (exploits uniqueness of buffer values, so check is trivial) Input variables: -part (type void*) Partial buffer -p_size (type int) Size of partial buffer -whole (type void*) Whole buffer -w_size (type int) Size of whole buffer -msg (type char*) Accompanying message Output variables: -pos (type int*) Position where partial buffer begins in whole buffer if search was successful -fpos (type int*) Position where first fault occurred when start position was found, but later an error occurred -D (type double*) 0 if check positive, 1 else */ ====================================================================== long IMB_compute_crc (register char* buf, register int size) ====================================================================== /* In/out variables: -buf (type register char*) -size (type register int) Return value (type long) */ IMB_3.0/doc/IMB_ug-3.0.pdf0000755014562400001620000230757410455531053014113 0ustar sthealeykap%PDF-1.4 %âãÏÓ 5640 0 obj <> endobj xref 5640 18 0000000016 00000 n 0000004434 00000 n 0000004750 00000 n 0000004910 00000 n 0000005246 00000 n 0000006016 00000 n 0000006239 00000 n 0000006317 00000 n 0000007087 00000 n 0000007681 00000 n 0000007910 00000 n 0000008458 00000 n 0000008693 00000 n 0000008731 00000 n 0000008777 00000 n 0000011448 00000 n 0000004168 00000 n 0000000674 00000 n trailer <]>> startxref 0 %%EOF 5657 0 obj<>stream xÚ¼WyT׿I€$l™ B¥)¤ZCÄP4È"{A V›€Ð‚ËP!¢(› Š," ¢,V´¶ -‹¨¥VEQV«¾jí¢}sg’jß9ý£}s8çÞûÝß÷ûöÉ  5´ ü`êa:ÐÅä´.„Äd21 ÅL&‚°õ ¸èíÝ @ŽØô¥Îˆ^›;Xè’åñ¨úúRš«~µ‡À/âË:%«evûŠäŽ«EQûâúû|ʾ:Zà͸a“Ä5³ÖÏû¦[_f£ëïÀ[gÍð Í+ ¿I»hIJ‘Û åÚ_O¢¯õ.–ú:_‘$Ž†Z›É>lyLj®•ç#’‹¸ÆºZ¹ lTdoB%Ÿå¡^l„ŠAŠwƒi  + ~ò¦¹³‡Ê’6'ytÐ}ߣ—±.xÊ|E±^çŸJV.X<,¨K™cz¡Ö7Àxk°\bNw-÷£\dw|®s9·{Þ€kχVW\ÇV[Ùø:Úè‘~J³½ø”îhÝ?œæé”k–[\·QOf´˜Â_ÒνiLawó¨ÝÖNBÌyÔM®^A&[JD!†[B#˜g¥<í«Vd¡©öíjf>rÃÓä {óRÖæⱌMèÚ¬3ñå­\I(“’+H`X\ê—<·Ú®Hé°Y&½Òj»Œœ`ÊŒçœgüTTÂYm;[x¥ó‰«p-ç÷íZòÃîKÈ=MŽKBZýÞ,3:v•÷u›¼~饶õC¯ïvÜ ¡®T‘¾/k|£«ÿãYƒ]¯[–”ú8Û•_òq ‘ræ„Ì{~ðà°÷œmŸLLúŽ!µs‘cr/Ñf?þ¢¡¤íF6«í¿vû}û;ÆÙ^.úF‘ºo÷–zõõ¶ß8¤—púÝKÿ‘˜å¯O&)ûû8fäT8âÙúybô97ËØñá‘õ³Ö¤Šëó“ ·<ÍžFsÂŽ|¿Òª~ kƒøÚ k®-ÍÐ6ù}ñ²Å%¤ëgŽS#¿Üh>þ]ÅþÑì_’ÊL¼]@¹<ÛoI±ñõW²rVã;&© ᥅ã¬ìðŒ]ËçFÖÌlü®&Ül8öÑŽñ†ÉM;S¸O×½oÚ¶¤jì›*ÿšÄÌw·†ÜÉt¸³,º3·oÏͪƖü†±óV‹ˆ‘uEÉ×óÊÏÏA+hÚ±+ï[¿ ³?g"L`šydG¢l`BžB·ò¯°ËÞ';`–Y¸bëåôÚ‰4~Q÷—Š¤J»ãÖ‹Bw±öØåÅçwͶòÉ,áx}á²û¾£Û¶â:Ó—¯²¾k2³b º~”T›\h]³·"¨ôýåg_nL©hOI~˜“kï¯#f‡¿s/\»;ñ†'ISõs¾{òÝÙ¹÷Sj ‘hù³-)±ôàLéµÅAiËMª>ïL7Ï>™~mˆ_¥ûwe÷¦Åz2»è¡8Í$ÂûÖê}s7Å°¸Á)‰G_3]’°Z `¡â ðhT œ´€‚m¡붫aR7­êÃ)a YP¨=!wÈÉ?pèÁdÖîƒü8o³rsù¡ØÐ ë'ilAÒ´ÒC¥©Ùñ׶ÃÍiüðÜ®n\mCÓä§ÍßGõàu“ÁóÓG¾çÐNÎ*ìlYujB5ÎÂ_Gà—’Ç¡ZÃ(reCÚ“îc°5lô¶5ëöÉAÜ ÞZkûå*é'L`XXNßûêãþµ+äJ]<¬†",|gs/â–ŒÂD4 k”j܆¤ì)>9æU ÿeLÍ ÅÜ•)/ó PIPáxv9´FG fÑ©¦Œïؽ„AáiŸo NXM'k€1ˆÃs¥«rHÍœƒ³ º”iÞ´7á‰Lóþ¡9ŸëÊ`¡þMfU3¦ò+¸lšãsB5v¼Iã"F­±bºF’†Æ§“üðv”¨tŠZ#kº†DÝ>¥‡Dû_&£§W&0çÖÿˆhª¯iUÀK†båqÑݱ‹àkA¦¹°×RtU†Ðbu ïÊã ñÞ-ƃ¹Û G­Ñqÿå“@£_°JÃ> úÅe•\“´e]ùôÊÔßíl U?cCÕŽaƒè¢Ð˜O¦bÄ™Õ]W×ø`J†â]W£ÃúJ{âÚ€F”¥ÐðTýòÀÛ‘,Øæù3œŠdd†‚ú¡ÉþÉü+™+ûÇŸ?™`ºãRTã¤2n¡qÜÕ{¦»xŠ‰l«ÁJñšR€{b'VoÄÊk¦ Õ R¹#`$cßbÃœ¦¶"›ú« óõ+@Ø#͘¦´LQí¦ÉÂU2¥Œi–B\Ò¦;g¤òÖ=…hùúE¨£QÅçN4¬»2Cª´ÀŠÐ0B›XʉÃ½Ö ˜Ka²ÿÇ5fl#кŠ}÷CÌ•G¸y{`Hš0’Ÿ'ÜY± |I}¡/ÂÒã`Ÿ#7G3H *°’Bç6E!!uRÙ…Ì£²-RR\$Ø‚X é'•g!€zl(ìêéRŠC ¼“àBìÔ ‰)tc!D¥*$N-Å 2€Àc ”!DBÌ)Š è ÊO+(2H}˜ÆÒ õ¤SH~¢ò(PZgàÔœLÍ9}ÁÉ(¯ßA³šBHÖcP µcTH ²§4ÔÔÝ8ÓC(Št¥žRHñø“=De•¼æ ¢v>ˆýµˆ¨bá©XTN0pô/cW.DÀÚfà…Ãú¥„ýë¨,#¬ÏBmÈ™TÊôh5s†ª‚H†¨S ­Å»§VÅŽA°d pw¡=¢QÐ) êø l!¨§ÌÂSA­ŒA3»ÊrX(¤Ój›¡tPÃNCt”)èƒý ³„EŸrrÔ5‚ê=xéÁ9a"{4<#ª‰MG?ŸŠZé5\¤*½>*H›ˆ–GÓKÇRwI‰TåŒH–¥*/ˆªR} ҉rdm ‹ƒ“u.áÉJ‡¾`œÎ§E’€@=Mj¼C´SnõõÇ ÷Lñðq§ $@9cLÌ‘rðàK€§Q,KDJæÑ XK¼¶¼xÑ—cƒ@ê‡B|¡(ÖÂA€',‘ñàŽ1fÏBa,†Á¿üP‎÷"lÓ€ÿoدG vÀ(øªöÁÎoô]lïHîç0ñe {êQoýäÉ–uîuº˜çÜ:±ºwÍȧÎ{£®wŽu8ýær¾­y•ç…v§Â_Ïs¾ê:öƒãóΣsöÜüìÈᦦ–fÇ‘/:Ïá·o^åX_ßä•·¿¾qR¼ïCášòºF¾Å*N–§¢Ý–›Ëc¾HË¿cŸf-N®·ŠL8°«5.žøèjþî„Qú@'|g²ýò¬¤ìÎÇEg–Œ.Ú0ìð2xÿT7»ÒÛUBZy4ttçÍÅ>wËÆÅ™©œ€ üÌwÉ{ßY±oâìŠmacÜG>;ö¿xöj§å‰ã#ë¬j˜Uûªî]}C{þ˪íìºdæGZ÷ìmH=™éURZTy}x}Þµ3F:éMh´¿]ûŠY™Áõ Ë?eæÔÆì¾×³ƒõb`Ç6“‰#«S¾ÉVù¡ÅÇ™çöG§>9¾ÏÔû`úžY³Iµë‡Ï_ˆ.‰ª<ÒSIKøpo$ëlñv«ÝPcfw»Ô„ëšPmçÿ*äÃúçQk¶ ?+‰‹¸ÕCú-÷ö=¾AH‚ÐfÆŠ}^‘ƒ[âÓµ«““£ÂÂbü’¿ ߣ“½eâ[§ÜjjÒ îÉkiMŒõ±fÞýeËÃÌÖ]m²KÝúmÁÖk®Uº~œó~ýÉ_j-:_”ÆF>¼Ržìœbù,èfknfÞΊ‚g+÷Ze;H½‘vvêÂÍž‹êh³Þ£•±2=eWD»½.ºI*C#¶,多›^ðs1Þ\K7×ÝÅ¥ôõw´é\,éþA¯w´§ÙªÏu¬Árè©ï~£ÖŸÚö“éúÖWÈ$öÀÖZ›óyI«¬©]¿gÍÞJæ–Û—¹…žç\:#»Æ×ÿé½g¢ÞО'ÆÏ=S´‚ |Öþ¢eÈ´~ƒ2ÚYg¾¸µñM3½'Õ/,˜£§;õèñÍ?êÊî<{ËméÚ†Áy†Ö¹ šA¿ü¹ÙvER‡î2é‹V½R²¶)§ìŠÁ<~ð¦æ§n%¶Ù¶Æºý=Oô…ÅÔ>í°Ñe·É`‰hÀ‚<¾JÝy¬¯~FQ«ÇÉÎѤû3‘à ªávŸˆñ™K»˜3»x×éÌâ"gÃÁ¦2,嘖ˆö½˜y³å7& vŒ~PK+F6ËgôçZòYe œvÃeì—öŒ¼ÛÛ©AH«©Ò¥–€^­mÇbÎhÆûž¦=Ð!‰]V‰áWÞr@=ß ¿ï°?Á©9éN endstream endobj 5656 0 obj<>/Size 5640/Type/XRef>>stream xÚìÑA ±^(Ç+> Ÿ°i×N“Œ|”90æÂ\˜ sa.Ì…¹0æÂ\˜ sa.Ì…9sa.Ì…¹0æÂ\˜ sa.Ì…¹0æÂ\˜3æÂ\˜ sa.Ì…¹0æÂ\ž2¿ ±zPÎ endstream endobj 5641 0 obj<>/Outlines 862 0 R/Metadata 1110 0 R/PieceInfo<>>>/Pages 1103 0 R/PageLayout/OneColumn/OCProperties<>/StructTreeRoot 1112 0 R/Type/Catalog/LastModified(D:20060713110417)/PageLabels 1101 0 R>> endobj 5642 0 obj<>/PageElement<>>>/Name(HeaderFooter)/Type/OCG>> endobj 5643 0 obj<>/ColorSpace<>/Font<>/ProcSet[/PDF/Text/ImageC]/Properties<>/ExtGState<>>>/Type/Page>> endobj 5644 0 obj<> endobj 5645 0 obj<> endobj 5646 0 obj<> endobj 5647 0 obj<>stream H‰”–]o›0†ïùçr“Vcc¤ªRIª4Ñ:•]µ½`„6l:`Úº_¿ mÓ™P)˜|<ï{âóa÷ NOÝÕl9ggá|‡G@Ž»¸¦uí„‘ãFÑ=}%ôÝè7½@TƒàíõoûVE7Œ#-ù~%Ô_K†Èé÷¹ó>FߋȹX‘–û¢/zý¹!¢ò˜ÏGˆ8‰ˆ† c%.‹mV¤×›ø1}fËžýÓÒcF Å=Ýad2 ‡ @‘]_ 92®¹ÔÒ@’5ç0//ÿÙV‡¶ÅÎ6ªNOi¦D°'r.þ Þ­ ß'šç©qš~7Säc4ÿ½4¥|fÆhÆJ;ámT^—µí ÛÔµHÈ@µµ“XMº½EÚÐÕÕ´H6y\ý¨‡¤k¦½”Ê@ÎIÙ Kp+|—yŽKt:úYG¿Öñ|ºÛë|­Óª†Å¯lB\¬a•6›r]nˇ'˜§uReMVƒvÞÔ)¾±÷°[õP³@su¡ö> endobj 5649 0 obj<> endobj 5650 0 obj<> endobj 5651 0 obj<> endobj 5652 0 obj[/ICCBased 5654 0 R] endobj 5653 0 obj<> endobj 5654 0 obj<>stream H‰œ–yTSwÇoÉž•°Ãc [€°5la‘QIBHØADED„ª•2ÖmtFOE.®c­Ö}êÒõ0êè8´׎8GNg¦Óïï÷9÷wïïÝß½÷ó '¥ªµÕ0 Ö ÏJŒÅb¤  2y­.-;!à’ÆK°ZÜ ü‹ž^i½"LÊÀ0ðÿ‰-×é @8(”µrœ;q®ª7èLöœy¥•&†Qëñq¶4±jž½ç|æ9ÚÄ V³)gB£0ñiœWו8#©8wÕ©•õ8_Å٥ʨQãüÜ«QÊj@é&»A)/ÇÙgº>'K‚óÈtÕ;\ú” Ó¥$ÕºF½ZUnÀÜå˜(4TŒ%)ë«”ƒ0C&¯”阤Z£“i˜¿óœ8¦Úbx‘ƒE¡ÁÁBÑ;…ú¯›¿P¦ÞÎӓ̹žAü om?çW= €x¯Íú·¶Ò-Œ¯Àòæ[›Ëû0ñ¾¾øÎ}ø¦y)7ta¾¾õõõ>j¥ÜÇTÐ7úŸ¿@ï¼ÏÇtÜ›ò`qÊ2™±Ê€™ê&¯®ª6ê±ZL®Ä„?â_øóyxg)Ë”z¥ÈçL­UáíÖ*ÔuµSkÿSeØO4?׸¸c¯¯Ø°.òò· åÒR´ ßÞô-•’2ð5ßáÞüÜÏ ú÷Sá>Ó£V­š‹“då`r£¾n~ÏôY &à+`œ;ÂA4ˆÉ 䀰ÈA9Ð=¨- t°lÃ`;»Á~pŒƒÁ ðGp| ®[`Lƒ‡`<¯ "A ˆ YA+äùCb(Š‡R¡,¨*T2B-Ð ¨ꇆ¡Ðnè÷ÐQètº}MA ï —0Óal»Á¾°ŽSàx ¬‚kà&¸^Á£ð>ø0|>_ƒ'á‡ð,ÂG!"F$H:Rˆ”!z¤éF‘Qd?r 9‹\A&‘GÈ ”ˆrQ ¢áhš‹ÊÑ´íE‡Ñ]èaô4zBgÐ×Á–àE#H ‹*B=¡‹0HØIøˆp†p0MxJ$ùD1„˜D, V›‰½Ä­ÄÄãÄKÄ»ÄY‰dEò"EÒI2’ÔEÚBÚGúŒt™4MzN¦‘Èþär!YKî ’÷?%_&ß#¿¢°(®”0J:EAi¤ôQÆ(Ç()Ó”WT6U@ æP+¨íÔ!ê~êêmêæD ¥eÒÔ´å´!ÚïhŸÓ¦h/èº']B/¢éëèÒÓ¿¢?a0nŒhF!ÃÀXÇØÍ8ÅøšñÜŒkæc&5S˜µ™˜6»lö˜Iaº2c˜K™MÌAæ!æEæ#…åÆ’°d¬VÖë(ëk–Íe‹Øél »—½‡}Ž}ŸCâ¸qâ9 N'çÎ)Î].ÂuæJ¸rî î÷ wšGä xR^¯‡÷[ÞoÆœchžgÞ`>bþ‰ù$á»ñ¥ü*~ÿ ÿ:ÿ¥…EŒ…ÒbÅ~‹ËÏ,m,£-•–Ý–,¯Y¾´Â¬â­*­6X[ݱF­=­3­ë­·YŸ±~dó ·‘ÛtÛ´¹i ÛzÚfÙ6Û~`{ÁvÖÎÞ.ÑNg·Åî”Ý#{¾}´}…ý€ý§ö¸‘j‡‡ÏþŠ™c1X6„Æfm“Ž;'_9 œr:œ8Ýq¦:‹ËœœO:ϸ8¸¤¹´¸ìu¹éJq»–»nv=ëúÌMà–ï¶ÊmÜí¾ÀR 4 ö n»3Ü£ÜkÜGݯz=Ä•[=¾ô„=ƒ<Ë=GTB(É/ÙSòƒ,]6*›-•–¾W:#—È7Ë*¢ŠÊe¿ò^YDYÙ}U„j£êAyTù`ù#µD=¬þ¶"©b{ųÊôÊ+¬Ê¯: !kJ4Gµm¥ötµ}uCõ%—®K7YV³©fFŸ¢ßY Õ.©=bàá?SŒîÆ•Æ©ºÈº‘ºçõyõ‡Ø Ú† žkï5%4ý¦m–7Ÿlqlio™Z³lG+ÔZÚz²Í¹­³mzyâò]íÔöÊö?uøuôw|¿"űN»ÎåwW&®ÜÛe֥ﺱ*|ÕöÕèjõê‰5k¶¬yÝ­èþ¢Ç¯g°ç‡^yïkEk‡Öþ¸®lÝD_p߶õÄõÚõ×7DmØÕÏîoê¿»1mãál {àûMśΠnßLÝlÜ<9”úO¤[þ˜¸™$™™üšhšÕ›B›¯œœ‰œ÷dÒž@ž®ŸŸ‹Ÿú i Ø¡G¡¶¢&¢–££v£æ¤V¤Ç¥8¥©¦¦‹¦ý§n§à¨R¨Ä©7©©ªª««u«é¬\¬Ð­D­¸®-®¡¯¯‹°°u°ê±`±Ö²K²Â³8³®´%´œµµŠ¶¶y¶ð·h·à¸Y¸Ñ¹J¹Âº;ºµ».»§¼!¼›½½¾ ¾„¾ÿ¿z¿õÀpÀìÁgÁãÂ_ÂÛÃXÃÔÄQÄÎÅKÅÈÆFÆÃÇAÇ¿È=ȼÉ:ɹÊ8Ê·Ë6˶Ì5̵Í5͵Î6ζÏ7ϸÐ9кÑ<ѾÒ?ÒÁÓDÓÆÔIÔËÕNÕÑÖUÖØ×\×àØdØèÙlÙñÚvÚûÛ€ÜÜŠÝÝ–ÞÞ¢ß)߯à6à½áDáÌâSâÛãcãëäsäüå„æ æ–çç©è2è¼éFéÐê[êåëpëûì†ííœî(î´ï@ïÌðXðåñrñÿòŒóó§ô4ôÂõPõÞömöû÷Šøø¨ù8ùÇúWúçûwüü˜ý)ýºþKþÜÿmÿÿ ÷„óû endstream endobj 5655 0 obj<>stream ÿØÿîAdobed€ÿÛ„     $$''$$53335;;;;;;;;;;  %% ## ((%%((22022;;;;;;;;;;ÿÀÁ"ÿÄ?   3!1AQa"q2‘¡±B#$RÁb34r‚ÑC%’Sðáñcs5¢²ƒ&D“TdE£t6ÒUâeò³„ÃÓuãóF'”¤…´•ÄÔäô¥µÅÕåõVfv†–¦¶ÆÖæö7GWgw‡—§·Ç×ç÷5!1AQaq"2‘¡±B#ÁRÑð3$bár‚’CScs4ñ%¢²ƒ&5ÂÒD“T£dEU6teâò³„ÃÓuãóF”¤…´•ÄÔäô¥µÅÕåõVfv†–¦¶ÆÖæö'7GWgw‡—§·ÇÿÚ ?õT’I%)$’IJI$’R’I$”¤’I%)$’IJI%_/? ¿S.úègŽ Ÿ„òè5Q jtl$¹Lÿñ‹Ñ1席³1ã»FÆœýÏfÿŒn·|ŒZêÄob¨ï½Ú~ Ä9LÒýïhן7†?¥ÅýÝ_LU2º¿KÄŸ´åÓIœöƒ÷L¯!Ìëc6~Õ™u€þnòþk`* I«†¥XÃÿz↠|C÷aö—Õò>½ýZ£A’n#µLqüHg]þ3:S˜Å¾ß7m`ü®\%«dÿ1…}€÷mn¾ú~¦ýf·Œ7úîc+“þëËGæ—øÒ¥ŸzæeòÇüXÛÐ[þ3ßþ§ý{¹Š³¿ÆoT?Cñ/?Ä*LÿßYô«¦¿ëX?ï £·ü[õã͸íþÓýñ.H~ïøÄ£?½þ( ÿñËë?÷îþM8ÿc¾.1ù?ÿ&£ÿ¯[ÿO÷¿ÿ  ÿñq×ÇѳßÛpü¬F¹/ê*ùÏë6™þ3³Çó˜5;ú¯s(r·OøÏÇ1ëà=¾%–~kV¿P~³3Š+²?rÆÿß¡Q¿êÇÖy6tû rXÝãþ†ä½žR[pý%ý¨÷¹¸ïÅõö=æ?øÄú½l MØäþû$}ì.Zø}¢æÀÆͦǸ5ßæº ñ«j¶—m¹Ž­Þ§ñQB\†3òÈÇñ ?|Ñð/»¤¼_¯uŽžGÙ2í­£ó ÜÏó!tý3üeä0†uLak{ÛGµß6;C÷…_'#’:ĉþ±{´•Ãñ ¤³ú_^é]Y›°r÷.¨ûlV‚«(˜š ö-¨ÈHX ŽáI$’ RI$’”’I$¥$’I)I$’JRI$’”’b@t’¹ž·õó¥tâêq^ÉCèÚ”ÿîO†9ÌÔ+'’"zb@t’°:·×~‡Ó·VÛ>×xÿD8ü§ý¸§õ®õÛ},ycÏ·€COö[«¾jïLú×3!ù n G½º¾?¨ßã ÜyLpYæõCR\ÞIž'úÅ—Sÿo2YŠ[ƒQÿGî|y½ßÀ.|7;¨_ [—{¹>ë)^“Ó¿Å÷Bćd‡æØ;Øv³üÆÿWE‹‹X¯¦RÁùµ´4~ ß{ÃLPúíý¨û¦lšåÉôßû.Áú‰õ‹. én+ç^è?æ·s–öø± AÎÍsÏvRÐÑþs·~EÜ$ Ÿ;š[ ÍK w^eÁÅú‘õk?Uõœ?:çþ·ðZØø8Â1±ê¤Üc[ù°’‚Y'/šDù–xã„~Xä’I&®RI$’”’I$¥$’I)Øô^Ý—ÖË[û¯hpûŠÅÎú‘õw2OÙ¾ÎóùôŸôuoà·’NŽIÇå‘‘[,p—Í/0ù×SÿÙÔ‚þ›{rZ8ªÏcþGèŸÁr™˜9˜73)}Íx‰øxü—¸*ù¸]Bƒ™K/¨þkÄǘ<ƒðV±sóLqû®^FXÛpø•vYSÛeN,±¦Zö’>D.Ç Œ,œrÜ~° ôð2Z?HßëÎü¿¬_P/Äk²ºAvEWclhþOïÇâ¸î4<…wõ<Ä:Kþi~»—ŸîþE÷,l¬|º‘cn¦Á-{L‚Š¼{ê÷ÖLî…“¾“êc<þ›Ÿk‡‹|æ½_¦õ,N§‡^f#÷ÕgÞÓÝ®ˆY¼Ç-,G¼NÇøº\¿1£´†ãø6’I%:’I$”¤’I%)$’IJBʼcc]á¸RÇXZ9! º?U ªeô¾›×kK8áWªÖ—çõÿ¬Zo8˜u½´ûMDÄ¿Iù赺Gø¶qÛoW¾;ýžÈëð5Ûaáb`Ò(Ã¥”TÞÁŠ:³>lÊ#¬y@OY’ñÙ§ÓúGMé•úx8ì¤wsG¸ÿYÇR®$’¬I&ɳâÙ@PðRI$‚T’I$¥$’I)I$’JRI$’”’I$¥$’I)I!Ý}8õ:ëÞÚª`—½Æ™*—üâè?ùaÿn7ûÑ‘Øäe¹̺)*¸½W¦æØkÄʪ÷´n-­áÄ'Ei"ЊóP ê ©qÿ\~¦³5ê]5¹®¥º @äûÿ•tîê}9—ý™Ù56ùL½¡ÓáʲŸŽsÅ!!§í 2Bbbuý…ðŽ4:¹õSë<’p¯!¹ ðð°y·ò-?ñõ}¸yMê¸ÍŠ24pÛyŸíþUÈ-x˜gÅÞ2ŽÎL„ðeþ´N‡»î¬{^ƽ„9®µÃPAà©.Kü^uƒ—Ó_ÓîtÝ…'“S¾ù§O¹u«+Ø—½íuº¿ÿc©ïÇÙ÷zU×e$’Je$’澶ýn«£TqqbΣ`­¬ÎŸ€NÇŽSŒE’¶sŒ"e#@=*óÿñ‰Ô3ñz®31²m¡Ž¢Kk{š Þía¥v]ëoèØW\ãe¶Q[žóÉqh$•ÇÿŒ.—Ô³:¦5˜˜¶ä1´ms«ap{Œh§å@êU§×fh“‚ãzð7y?Û]gþçäÛ¯þõêŸU-¶ï«Ø6Ü÷Ycë—=ä—'’W—Íî½ÿ•ù?öÛ¿¹z—Õj.Çú¿ƒMìuV²¸{!ÀÉäcžàöãÃÃótò`äxýÉq_Ë×ÍÕI$–s ¤’I%)$’IJQ{ÚÆ—¼†± —8˜I*JŸYÿ’3¿ð½¿õD w(&=‚߶ú7ýÎÇÿ·Yÿ’D£©tì›=,|ªn²'c×@¯Bé¿Åàó‘Ÿñ6{'#BRã'„^Í|ô§8Ç„#[¾¤’I* õ$’I)I$’JRI$’œ­ßøšêñ_Ä/ ^¿õ»ÿ]Cþ+ø…ä OáÿÍËûß±Ìø‡ó‘þïízïñiÿ-dÿácÿVÅÞõ‹n§¥å[A-±•8µÃ–髇Àj¸/ñiÿ,äÿácÿVÅé ê!Vç g½èE³É‹Á[Y“Ãú-oY8uÈéî̪γuŽ¥¶:·Us­⺞†÷?¦²\lcc*±ÆK«eŽen'¿´ PÏÕÜ55÷3Æ]ˆÛ¨ùGÒÈZUÖÊØÚëhcZÐ 4\±”@ƒ&,f$“ãø´ú×NgSéy8OÚðøÀÃŽWÊå´¤I%[¨õ ~›…vnIŠ©nãâOf2tY`@’ê$è—õ¯ë-}+‡ç^¢³ÛÆÇyÅpVºOÖN¨ûrœçc±Þ¦eÄêâuØ‹¿¨fæguî¬np/ÈÊxeUŽ †1¾AzÇBéô~›VP\Ѻ×þý‡é;û•ùW+Š‡ó¹7=š1¾g-Ÿæ±ì;·jªºje542ºÚÆ @/ªôÜ'Šòòª¡îšÛHâuV—›ÿŒÏù_ÿ ÿßܪàÄ2äá$‹³m¬ùN,f@T)íÿçAÿË ûq¿Þ®Ñ}96êÛjx–=†ZG‘ ï}NÿÄÏOÿ‹?õNRó<¬qDHH›5«-ÍK,ŒL@¡z:·äQK¯È±µTÍ_cÌ4vÔ•Kþqtü°Çÿ·ýê·×?üLgÿQ¿õm^D—-ÊÇ, Œˆ£Z+™æ¥Šb" ؽ_fÿœ]ÿ,1ÿíÆÿz_ó‡¡å†?ý¸ßï^2’Ÿýß,é þà}½¡¸ín~9'þŸÞ¯Wev°>·°ðæAù…áPî“ÖºH¼]…ihŸ}GZÞ<ÔÙü?ODõñ ¡ñ }pÓÁö•O¬Éßø^ßú‡(t^­GXéÕgQíÑì<µãé4©õù#;ÿ ÛÿPåD€t Ño%F ‹ŠAõ/¯6ì«YEB«ûh“$®|p’Ûœ8ã(8…8Ÿ£!¯ ·Ù¿çAÿË ûq¿Þ´5PW„¯s£ùŠÿ¨ßȲù®^8xh“Å{ø:œ·0sqX†¶ñH—‡„ÏS.úègŽ Ÿ„®oëw×!Ò‰Àéðüâ?Hó«j;»ÉyÆVVNeÆü«]}®åï2S°rrȤxbvîVçç#Œ˜ÄqHoØ>«g׫ v߶‡yµ#ï Vp¾³tç†cæÔçžã±Çà ÇVÃñÖ’•ýãâ/Xƾ¯»¤¼¿ê¿×<¾—k1sžëúy1î÷>¯6žHòû—§Wc-cl­Áìxk† ƒ¨!QÏ‚X¥GPv-ì9ã–7Üvr~·âk¨Å¼zÿÖïüMuø¯â+ßþn_Þýˆ9îþ×®ÿŸòÎOþ?õl^’¼ÛüZË9?øXÿÕ±zJ­Ï<|ƒg’þdy•$’J«iKÊ>½ÇüçÊݪ~;½]xçÖœ‘•õ‡>Ö™oªXÓåX ÿ¾«Ÿ¬‘íÚÓøý\Gy~Ç,ð½‡sÿöB~kÈi¬Ûuu7›Ö‹Œ/nû3?ð?Kä®e?¯À?¿ù4ñÔg?ÜüÓ/9ÿläf·¤ÒïÐâÃïŽö‘ þÈ+½êYµôü ŒÛ>¹ñâ@Ð|ÊñKï·"ë2.;­µÅï>.q’ªr¸¤fGAæ[|ö^ˆ å¿“Ø‹Ž/Ë·ªÚÙf7èèŸôŽãý–þUè‹+ê¿N7¡bc‘ -þ½žã÷L-U3“ÜË#Ðh<ƒ?/ÛÅÔê|Ê—œŒÏù_ÿ ÿßܽyÇøÌÿ•ñð¿ýýÉü—óÃȬç™>aãׯ}NÿÄÏOÿ‹?õN^B½{êwþ&züYÿªrµñæãýïØÕøó’þïí[ëŸþ&3ÿ¨ßú¶¯"^»õÏÿÿÔoý[W‘%ðÿæ¥ýïØñç#ýßÚô?S:[Ìȧ7xeU‡·ÓvÓ%Ñ®…u¿øÜý^ñÈÿ·þEaÿ‹/ùK7þ%¿õKÑT<Þl‘ÌDd@¡ få0ã–eMKç_Z¾£âôΞþ¡Óí°²’=Z­!ÞÒvîk€¸Õë¿\¿ñ1ŸýAÿVÕäJÏ'’SÆL‘*¶·9Ž0ÈE§ºÿ9O݆O²sGÕŽþ ±ëòFwþ·þ¡Ë‡ÿ?ò†oüKê—qÖ?äŒïü/oýC•>hW2|âÜåMòÃÊOŠÏÕ>“‹Õú»pò÷zF·¿Øv™lF°V0át¿â÷ÿŒÿ‰³ø-äŒS Ñ.vX,©ÿÆçê÷ŽGý¸?ò+c­õt~~_&–m©§»ÏµƒïZ+‹ÿ¹.f(:]kžáÿØõK/žl°Œäd/¯n®¦A 8ç(DD×Ný?¶Ûnµ÷\âûlqsÞy.:’µ~­ý[ÉëÙN­Žô±êƒ}äLO hîâ±× }KëŸWú_DeY9l§&ǾËZC¦IÚÙû ->bs†;Æ.[ No/O'ë Gsf­Ó§ü_ý[®½¥÷:5{ìp?ô B澶}IgKÇ=C§9ÏÅaµOÕÌMÁÝÂì?çÕŸûŸ_ÜïüŠoÖŸªùXwã?:²Û«s‡~p#÷U y9˜Ì'!z‚Íì˜ùi@€aZFï”/Gÿ=YÙ=>Þ›k¥ød§ŸIý¿²Wœ.“ü_ä~±×\Ãr+²·|†ñÿR®óPÃ/êŽ!ôir³1ÍëzOÕîþ·âk¨Å¼zÿÖïüMuø¯â(¾üÜ¿½û~!üä»û^»üZË9?øXÿÕ±zJóoñiÿ,äÿácÿVÅé*·=üñò žKù‘æT’I*­¦—Zê,é/'9çù–Áâó£ÍÅx³œç8¹Æ\âK‰<®ÇüaõÑ“’Þ‘Žé«ïÈ#ƒgfÿd~+Z¼–. |Gyëôèås¹xòp¡§×«±õGæýaî%•¿Ö¿wå…ëëˆÿ½(²ŒŽ«`ƒwèiŸÝi—Ÿ›´ù.ÝG,€ó¤.?R#ŒŽNfµKè ÉÿŒ|ÃOD¯¦•pxµƒyüayÿIÆû_TÄʼn\Æ‘ä\'ð]Oøͼ»? teN²<Þí¿÷Õõ&¡oÖ| xa{ÿÍc”œ¸àåL¼%%œÁãæ„|cÖ¸N’K)ÔRóñ™ÿ+âÿáûû—£¯8ÿŸò¾/þÿ¿¹Yä¿žE­Îÿ2|Ãǯ^úÿ‰žŸÿꜼ…z÷ÔïüLôÿø³ÿTåkâÍÇûß±«ðÿç%ýßÚ·×?üLgÿQ¿õm^D½wëŸþ&3ÿ¨ßú¶¯"KáÿÍKûß°+âÎGû¿µì¿Å—ü¥›ÿßú¥è«Î¿Å—ü¥›ÿßú¥èª¯;üü¼‡äÚ俘™üÜ_®_ø˜Ïþ ÿ«jò%ë¿\¿ñ1ŸýAÿVÕäJ×Ãÿ›—÷¿cWâÎGû¿µìÿÅü¡›ÿßú¥Üuù#;ÿ ÛÿPåÃÿ‹ùC7þ%¿õK¸ëòFwþ·þ¡Ê¿5þéÿ³Êÿ¹¿Æ|Ppº_ñ{ÿŠFÄÙü48]/ø½ÿÅ#?âlþ C˜þg'÷KŸËÿ=ûÁõ%ÀŒùõº†Û+~¸¯ñŽ]……’•ØêÜ®Ùõ+3“5ž_ÉÒæÅàŸÓó|õ) /Iú‰Ò³º E¸Ô[~=eŽ}msµ;ÚI"x+O6_jDqkZ9˜1{³á¾-ói H^×û¤ÜûiŸù¿ctûƒÿm3ÿ"ªÿ¤#û‡ím£åûãì|RBÚú–ìŸ_ÎýC—¨þÆé÷þÚgþEJ®™Ói°[N%5ØߢöVÖ¸| ³ç£(J<Ôߺèr2Œã.1é íÙ£õ»ÿ]Cþ+ø…ä ×þ·âk¨Å¼IðÿæåýïØÇñç#ýßÚõßâÓþYÉÿÂÇþ­‹ÒW›‹Oùg'ÿ ú¶/IU¹ïçlò_Ì2¥õ»ë%}×KÇÛïC9Ú868xÞjY¾¸áôf:ŠÈêiP>ÖyØGäåy†ffNvKò²ì6Ýi—8þAàw+Ê™‘9Š€Ø~÷ö-湡as=wûQ9Î{‹ÞKœâKœu$žIGéØG6œ,q6ÜàÑä?9ÇÈ Up $èæW§ýIú°zN1ÌËlgä7Vžkg;>'º½Ìf¡¤tˆñirøNY×èd^‡ œJq1ÆÚ¨hcïóGI%fîõ»·b…UiUO˜ÿŒrO_`ðÇdœõ[êƒ~³âÏvÚùŽWÆUe½n‹;YŽ?è½ëêÎHÅëø8ÃEÍk“ý‡þ©jÀqr´:À‡*g‡š³Ò`¾È’I,—YKοÆmnOÈöº‚Ð|ÚòOýRôU…õ¿êûºßM ¦^96Q:¤9„ÿ)MÊäËKmÕ‡™ÆgŠQî>’¯^úÿ‰žŸÿꜼ–ü{ñ®uº«XaÕ¼Az×ÔïüLôÿø³ÿTåwŸþj?Þý.CùÉwö­õÏÿÿÔoý[W‘/]úçÿ‰Œÿê7þ­«È’øóRþ÷ì ø‡ó‘þïí{/ñeÿ)fÿÄ·þ©z*ó¯ñeÿ)fÿÄ·þ©z*«Îÿ?/!ù6¹/æ#æ7ë—þ&3ÿ¨?êÚ¼‰zï×/üLgÿPÕµyµðÿæåýïØÕø‡ó‘þïí{?ñcÿ(fÿÄ·þ©w¹ÔŒ,ŒqÍÕ=ƒâæ–® üXÿÊ9¿ñ-ÿª^ˆªó†³“ýÖ×&/Þ|$µÌ%Žæ˜p=ˆÐ«Ý «YÑúYìg¨-}sšáJ龺}OÉnUW¦Öm¦Ò_‘K¹Žüç´wºâŽ†„r Ò„ášj$*Cö9³„ðäìbn'ö¾?Æ_G8Ù÷Ãÿ[X:hë=üVÒXÁeÙí÷7ïáxâ÷:?˜¯úüŠ5Š89c°l|ü®Yg#’ˆ >×Ã\×1ÎcÁkÚK\Ó¡hAZ]¯æt,³~<>··Rã xŽÅv[þ¥;>Çõ.˜Ê:ÝGÏå4öwå^{}ãZêr+u6·G1àµÃäUÌy1ç…hlz¢ZY1äÁ;ÔQôÈ>—þ1>¯ÛXuÆÜw÷c˜]¯‘d¡gŒ~MgìUÛ•oæÈôÙ>eÚþ ÍRQŽG ß«Êôd<öj¯O=]ºÕ}_ö•–zwµø¼WéÏÑhìGŠô¾•Õ°ú¶2ðß¹ŽÑÍ?I®î×ÅyKèÝK«\*Á¤ÙûÖßë;…êV~­côW5®6äÝûxŽÖöCÎǨLh{x³rSÌI»0:Ü»ø'úÉŽüžŸK¹Ô¼âZ7ãk݈AÔæZ>¥æàäY•Óªuø/%Û%õN¥¥£R߇#–1â„Y°ž{ ¥Ã8‹¡E'ø´ÿ–rð±ÿ«bíþ²]m:ê^k±”¸µí0AŽA\Gøµu¼DŒdÓbí>µâs¨Ä97™ÿuGüÜ·û–^S|t’â\âI:’u$§k\÷09ÆÐ$’{´º?ÕέÖ%$UùÙöÖ?µßä½êïÔþÑ@¸þ³›Þá£|«ooÊ®fæqâ|RýÑûZxyl™M× xþÇ3êÔ¿±u.¨Ðr¾•EÊwò¿"ì’IeeË,’â‘þÇW(ã Gö©$’L^ð¿ã;Ùƒ˜õ8ü@s!\.ii‡4È>/ZúçÓŽÕì–0M”}cνOý^Hµyña¯Ý$~×+ž‡kýàì}§¢õu>•šÓ­¬ãÁãGó‚¼¼ëü^uæãd»¤d:*É;±ÉàYÝ¿ÚŠôUŸÌb8òôÞ>N‡/”dÆ%×iy©$’Q2µszgNÏnÜÜjòའ‘ð<„LLL|¦9ñ­Çìð½‰b}kú¼Î¹Ó‹2‰~3Ïv'+¦onzü²ÐþÂ×æ°ûÓ掣ø>H×9®i-sL‚4 ŽázwÔÿ­µõZ[…šàΡX€N‚Ð?8+Ä/2¶«)±õZÒË+%¯c´ ŽALǽkØâÇ´Ë\ÓÜ´³aŽhÑßôdæàÍ,2±·éE÷d—õwüa‰Öù˜ÑÿŸ?(]Å7Ó‘Sn¡í¶§‰kØCD,œ¸gŒÔ‡‘è]lY¡\O˜ê$’J6E$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’H99˜˜•ú™W2†αÁ£ñHt &µ)’\¯Qÿ}[ˆ›`ã`ÚÏóÝüå:Ÿ×¾½,©ã £ù´ý(ó°ë÷B±“Í>œ#¼¿ƒ_'7Šxhëø¾ÔúçJéLÝÚÝȯ—Ÿƒ«‹ëã*íÕtš¾Îç¯l9ÿÙoÑ9\cÞ÷¼½î/{µsœdŸ‰)•Ü\–8k/YñÛìieçrOHú†ÿjLŒœŒ«]~MŽº×ý'¼—ó+×¾«âw§ÿÄ3ò/^Åõ[ÿ½?þ!Ÿ‘3âÍÃûß±!®Iÿwöº©$’Ít”’I$¥$’I)I$’Jy_­ÿSÛÕšs°@f{¹¼ @ì•àWš[U´Øê®a®Æ¯c„Gbº¬O¬?U:\f÷C1¢ѯÁãó‚¹Ës| 뇳O™å8îpÒ]GwÈÕÞ™ÖzŸJ³~Cª“.g,wõ˜tEë?Wº§F·ne_¢&Íkwϱò+5hÜ'’‰ú‡8‰Â]c!ô/{Ó?Æ[ ê˜Å§½Ôj>lqþ+§ÀúËк€f̬¼ÿƒyØÿó_xÚJ¼ùRÖ7-›ç²ÇITü÷}ØDBuâX½W©áÿE˺;1îî˜Z¸ÿ^¾²Ð9-¸Ö1§ñ^_˜ùdžˆüB指–¯¬$¼Þ¯ñ—Ö¥¸Øöyí?õEYgøÏ»ü'Oiþ­¤~V(Ï%œ~ˆ?PÈ9Üôˆú¿IpÃühSߧ?åhÿÈ'ÿÇ?ÿ+ßÿn7ÿ"›÷Lÿ¹ø…ß{Áûÿ{„— ïñ¡_æôç|íùÿŒüƒüßO`þµ„þF„G'Ÿ÷ƒÎ`ýÿÀ¾€’ók?Æ_XwóxØìó!îÿ¿Nï¯ßYlÛ«¨Ü­¿÷íÉÑÌwáeiç°Þ>AõT+²qènëíeMñ{ƒGâ¼#ë'^É‘v}äC^X>æBÏ{ßc·Xâ÷x¸’,~Jcè¥ñú0'̾µ—õÏêÞ$‡f6×ͤÞÑŠÃÍÿ¸Í–àá¾ÃÙ÷80šÝÅyúJhò8F÷/3üeÏe;T|‡ñzï¯X²ä2æâ°þm ƒþs·9`ß}ù2,}Ö^÷¼¨$¬C!òÄGÈ5ç’sù¤eæT’JÿNè]_©0±_cOøHÚÁý·@DÈd€ÇVÒ÷ÐIû‚õ|_©V± ý“Öpüëœçþ·ð[øx˜­ÛMt·Â¶†ÿÔ… ¾!òÄŸ=£ðùŸš@yjù6Õ¬Y°kÃ}l?ŸtV?ékø.‡üYZaÝC04w®†Éÿ=ÿÜ»ä•yóÙeµCËû[äqG{—›‹Óþ§ý_éðêñEÖð—þýÎö[ €€8:J¼§)‘2ólFˆ¨%$’I«”’I$¥$’I)I$’JRI$’”’ùU$”ýT’ùU$”ýT’ùU$”ýT’ùU$”ýT’ùU$”ýT’ùU$”ýT’ùU$”ýT’ùU$”ýT’ùU$”ýT’ùU$”ýT’ùU$”ýT’ùU$”ýT’ùU$”ýT’ùU$”ýT’ùU$”ýT’ùU$”ýT’ùU$”ýT’ùU$”ÿÿÙ endstream endobj 1 0 obj<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 2 0 obj[136 0 R 132 0 R 126 0 R 129 0 R 133 0 R 135 0 R 130 0 R 176 0 R 149 0 R 150 0 R 211 0 R 131 0 R 141 0 R 168 0 R 174 0 R 175 0 R 169 0 R 185 0 R 210 0 R 183 0 R 191 0 R 145 0 R 146 0 R 203 0 R 166 0 R 167 0 R 209 0 R 182 0 R 177 0 R 151 0 R 206 0 R 204 0 R 179 0 R 180 0 R 171 0 R 147 0 R 148 0 R 188 0 R 199 0 R 200 0 R 197 0 R 198 0 R 170 0 R 195 0 R 196 0 R 201 0 R 202 0 R 189 0 R 190 0 R 163 0 R 142 0 R 172 0 R 173 0 R 164 0 R 165 0 R 186 0 R 187 0 R 178 0 R 143 0 R 160 0 R 161 0 R 162 0 R 192 0 R 334 0 R 314 0 R 347 0 R 345 0 R 371 0 R 258 0 R 241 0 R 158 0 R 238 0 R 153 0 R 137 0 R 214 0 R 152 0 R 144 0 R 208 0 R 352 0 R 410 0 R 313 0 R 301 0 R 154 0 R 155 0 R 156 0 R 223 0 R 224 0 R 215 0 R 212 0 R 218 0 R 221 0 R 222 0 R 181 0 R 184 0 R 128 0 R 205 0 R 436 0 R 325 0 R 381 0 R 287 0 R 288 0 R 418 0 R 435 0 R 387 0 R 344 0 R 274 0 R 259 0 R 261 0 R 266 0 R 250 0 R 270 0 R 239 0 R 244 0 R 265 0 R 251 0 R 246 0 R 243 0 R 240 0 R 247 0 R 242 0 R 255 0 R 237 0 R 248 0 R 257 0 R 231 0 R 233 0 R 235 0 R 226 0 R 159 0 R 225 0 R 139 0 R 157 0 R 127 0 R 213 0 R 220 0 R 216 0 R 194 0 R 193 0 R 207 0 R 394 0 R 405 0 R 390 0 R 365 0 R 268 0 R 339 0 R 388 0 R 330 0 R 310 0 R 416 0 R 370 0 R 329 0 R 401 0 R 382 0 R 312 0 R 340 0 R] endobj 3 0 obj<>stream H‰¼—moÛ8ÇßØïÀ{'¿0#>I$°X N»Eî6M®qÒ¢P%ñÅ•²Û}øô7”(‰”([R’3°®õŒÍÿoæ?ÃÓ³|¿¾OV{ôóϧgû}²zLïÐíérû;ú|ºüë÷^'ë,Ù¯·:],¶¢[¢"3$Ã3'˜G"B’Ìx(Ðç_~Y¼9G'§Wçèôò/ÿiÿdý}4ÄqÔÆ⑈z%*ëDGóWYƘE•f¸­ZYëL ÅÜ ñiIyQP­/¤´ó…·Áùc’=¤;ôcFH°5Œ æäEyF˜@)WÂ_.¾PÌfs.ž¯½y|ú (ÐHù14&¡ ºø±°a•ÅGUåÒq•F…HZ.Yèn×ðÍòì·ßΖP©èìýôïu9+Óõ’VÙÏÿ…àó–èêW·è ˜ˆŠP´‘Oþ¢˜#ŸŠ“p@-󉵉‹ TËNˆW]Q›,QÊÚIt‘íöÉf³ÎP¢s–™Hc×Lg ²;”ϲuýýw£¶c¬ÄÎfs%_ªÒË*÷òiWyW?01°Ê©vO“Ž ®òB™–=0‡ÉFà8<~IÀ‡*˜Â äJ8šZÂà+q¥8VÂvˆ×Ž©ï «ºµ¢oƒwi–æÉ|X½ÀTs4õ<ÆTbç~Ý㉺ ïÝÛìÓÝ ñZG»á{8‰–)úZ,k>W¸ Šn6ú xJñÝÃûyÈ©¡»ô~m;{3Gæ*®\L_<€§˜Øm%19ˆXG?1åÝ࣡„+Œ ¬ÂºŽZÓ{­U1 Û·¯8Ò‹Œ27Ïm /;³9 Š ~Š·› k¹dÖjÁ;ƒDã(ŸÖ op¿^é׉ΠiÁßbú¼æC­#PÏ Éñ:„”Êq…™´¹#a+ÎG.ªÉù½/*ªÆÎrûÒ&EË<Év÷iŽêN“5¨XuÙbv?Z-Æ1õ–ª­2ž°”€Ô @z‘©€XŒ¥å„èÈt2€ì8 k:‰„ì4× ,›tS1ª‘&†S *G=¨ ¢~käðm…chuDé¡E§Ò‚‘q§ŽÌ.CËŽóѲfW|€–æ| ¬Vûõr£¨a ûJ'¹ÁT˜å®µtÀ àžhèŒn#‹ H8PG‡@lâ˜".¼Ÿ#½dƔբ3pµ0sÊNô¦XôLAÛ{dܯ6=Õ´Ta Gauñ¨-²—+‘=X©Á*G`°#U@>µÃBøõö¢A,;ÎËÐM*ûʾR×Ûì¡Õ+¼4½WÚê>:@çœ5€ëF}1Q}®ÜQÐ4râ|êSÒ¯¾|[ÊÿÁVv|´WŠ¾—1šõ/x›çÛüh±Ý>éÎAÙv_îòéö´h·6‚îa{z šfb\ê7„##¦41'ª¿j›è51'‘kbõ‚Ðkc “ˆ¾ ±¡gzˆé¡®T=ã©m¤ëÚ6±£÷%ÓFvœoMºÈŽ½I³»<]uÆ}ÌH%èÙœ„丹Gédã0tNÛƒANÅ "¬¤ƒa˜›Ùq> F‰ûöÏÕc’=¤ÿ÷QÂéß9fþj¢q,ùù ³£žåcv"×ÇŠÕ¹ö0Þä“åíF²ÊÚýúñ[PB4שªzök‚U<³ÈAìÈå‡HéMÄVöJÀz™çi"rÈËìØéÝ÷U»…8ÇàÙ0®…Fè´‡™J€RÌ©C`˜Ùq>ò;¶$ðe·JZqmdû}šÏæqø8ŒþbþcöèO§êïTèèd#3úÛqcLj{¶ÙäA§"RÛK ã\¨WçÃ8tŽÛÃMäÀ”‚Ðápd¢”œ¸±WC'@<$ûÖš Õ׸ü£îBè‹{ÒÝ÷àSIH˜‘ÎdÇb ;ÎK‚ a—$´ÚížPðû¬7zéwˆÎy{@ˆ© â3w8Gƒ@Øq>ôPKXÁ·šÄ~ ·BК¿Â$® Þ9WàÑTÁ#Ž¥;‹ãA‚Ûq£·‚Á¡º#ñz»Ï0½;ÇêÑ;žª·‘ÝÙ+émÇyõ>ä4Vðm°XÍæ"HvúyU¿N™Ó½s¼ÝåTÝ9Á±;kÕ Ýí8ßÎs`ëwbIž¯=öNáH¯¶öcÐ9jå2 eÎ&Q ¹DLkQyW{±ÁB˜E»V•tæf¡“Ð÷R‚ 1¿¼¾˜St}öa‰ê lõaýJ_b¯·ø«_ÑÅå¬ås¢Ã€Ä>Cý…4ı}¿n,ôêv vT¬*S:z[%°¿¹!^‰«+ñn Óîw/Sô5ÍVßZ+c¡ÂmäOà*$|y7uìEЮãîÙ{x©vœ5›Ä@všë$‡+Dº©U€H“‹ ƒ©æ”£Ra¹F„Qäài„£`u4é%¦Â‚ùACËŽóÁ²W|–æ| ¨Vûõr¨Y ËôbÉ ¥Â)wÅ™ÁúÌÅy Ž=€¢‰3Š€ÑK‹Ï‘V23ÊŽòÐ)Ë¿o0ÙÁ Ó O·óM`¸߶wiQôEo0%¢Ò9•xjÛ„{u8º<˜¶±ãz漏ê@ÛØi›íê :EÙ6›­Þ6Û¸½’I æaEà¡OÁ6Ûü7¢:„(Ëð¬åo1¿¸ú4ƒm^E=XGqêÈÑÃINäDÃw8 šEN\‹S©#ï§ãŸ=<äéC²OÏûm†ÎÜ>²öD„š– ê ëJåL ŠÐtèv7NWƒ8jšµ Mcï GOimN”ŒÕBÄßB¥Í9‰ÞW½+£í=ÚÃ…Öê{ñ`%)VíÞÐoÿ³4 C…¶´ÀjbÅÒ|ÔWO¸’Ö­5Š D°£•Ÿ §¶WâÈÞØ0tâ|6(½_Zv—û1[ß­ó/×-Y–LVº~߃f¡z™)O?ÅÐ9m2ƒU¥6”Ã0—³ãÆb°c †w Jüõ²éIÂð_Ù#ܲÛýâŒ5ÑÄÓ`UµF‹ÿÞiÙ.S¶‹KCO¼%ó>ÌÌ;.ä€!¸4£À£(xÅ(𾄦Rµš!*J·tÁ( €µÓÂVãTJ7b®VåñÌ_,‚4 WiAÚAªèH´ˆ(X×…€ï@€µkg¹—†Í& C0»°£YX"ŠƒWn€ƒèË *[«Ê(X×»v@âÙ`²žÈAýX OÒÁëêòTµ Ž:ƒ¬í2Êv¯º€í²¯í,µóÂÙ®¢lǺ}÷ÖÞ.ߊoïÏï"БNAŠ&Ð^¼:TÏD;‚ÃÊ ÿÿ>6ÑbÕA‰¿¨+ÑVÇiB*Sî­Í-£d“j×y¶ ¬p®/J§Ó•ÎP•Jûe¸5Ùçfæ1ãâ/ô=fÙß ·)Zx: žgSžîÙ=fLÇx}‹¸,‹eôX¸y°öú~69½9¿¼˜oú§–JØà¬ñð:ì lòÐV²Þ›ï½Ö›žÖkxŠ–õQùËöµk#­ÏÞ_*ëõ‘¬ÇXïÕ謟|”ËÇlQVöOÊ2[<çd–L‹²,^É<¹ù}ÏIr•=-ß²z$ÓiñCfl ¯4„Ê4×Äp¸—|ÁS˜5sË0¹<%ÀuDQ†–B=`„)7lÇT²¿“Âë `ÛÛ¥Œêfðö ÌãèVÊ7Á}góÔ€À‰}© 5Å5Ï endstream endobj 4 0 obj<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 5 0 obj[698 0 R 732 0 R 621 0 R 686 0 R 461 0 R 464 0 R 451 0 R 444 0 R 443 0 R 717 0 R 747 0 R 565 0 R 669 0 R 756 0 R 542 0 R 601 0 R 572 0 R 555 0 R 594 0 R 663 0 R 761 0 R 679 0 R 438 0 R 701 0 R 702 0 R 609 0 R 666 0 R 754 0 R 755 0 R 746 0 R 606 0 R 525 0 R 526 0 R 458 0 R 457 0 R 453 0 R 454 0 R 737 0 R 762 0 R 645 0 R 646 0 R 506 0 R 760 0 R 445 0 R 446 0 R 631 0 R 624 0 R 467 0 R 468 0 R 647 0 R 518 0 R 558 0 R 559 0 R 736 0 R 636 0 R 696 0 R 697 0 R 614 0 R 659 0 R 672 0 R 673 0 R 733 0 R 648 0 R 602 0 R 603 0 R 693 0 R 610 0 R 611 0 R 560 0 R 728 0 R 729 0 R 740 0 R 748 0 R 749 0 R 653 0 R 556 0 R 557 0 R 531 0 R 667 0 R 668 0 R 676 0 R 680 0 R 681 0 R 757 0 R 500 0 R 501 0 R 452 0 R 504 0 R 505 0 R 625 0 R 626 0 R 575 0 R 634 0 R 635 0 R 677 0 R 678 0 R 660 0 R 649 0 R 650 0 R 730 0 R 731 0 R 656 0 R 441 0 R 442 0 R 447 0 R 448 0 R 745 0 R 726 0 R 727 0 R 604 0 R 605 0 R 684 0 R 685 0 R 682 0 R 683 0 R 455 0 R 456 0 R 743 0 R 744 0 R 573 0 R 574 0 R 654 0 R 655 0 R 532 0 R 533 0 R 703 0 R 704 0 R 687 0 R 688 0 R 705 0 R 706 0 R 699 0 R 700 0 R 750 0 R 751 0 R 615 0 R 616 0 R 582 0 R 583 0 R 588 0 R 589 0 R 516 0 R 517 0 R 627 0 R 628 0 R 612 0 R 613 0 R 523 0 R 524 0 R 475 0 R 476 0 R 502 0 R 503 0 R 521 0 R 522 0 R 651 0 R 652 0 R 486 0 R 487 0 R 508 0 R 509 0 R 540 0 R 541 0 R 507 0 R] endobj 6 0 obj<>stream H‰´—ÛnÛH†ï äú’F-ö‘$ˆÌŒvבwF³³ 9™¶¹‘)A’s˜§ßêæ©[$¥&¥Õ…Fñ°ŠìÿcýU5~»Ù¥ñb‡^¿¿ÝíâÅSræãÙj>Žg?Ö ßÆiïÒU†ÆWW«ïhN"‰†B_b&às)$ )ÁŒû}|óæêÝ5ºO¯ÑøæÚGú_>z¼ (…?ÿò;üÞ^\Í.Ƴ™š=Àÿ-|}ƒ/4Û"â«ÿþ¥þ´`ŸÂO¿øE¢ó…„`J}†fϺœýWå#y¾\èû\eÕ?©JM)"P9ï/¼I¶K–èŽÂ“ßÜNÐU’-žžãÍ—m‘¨ñ`p7‰"ZßîýìBi…Z ‰gž ´I..ÞßÀ±õ×ø÷uœ)o®'ï C!¥@þÄ‘ºÝþy)óŠ0B„(Ò'æ˜bŽYñ¸Ôx\RC$°/ó¸}¥¬û’ÖûÊÎbß~š¿½žM¦>ª,¹´:V€´$gî}J³û¯—#Ê…‡Oû@É<æ_~œý­û˜‚… |ó”¨E2HPQøEþ\}×[}3ØQýäûz©ÔΤ>qR¿qÊvõéPõ¹Ih©/œÔ7ãz«oÛê×l‹¿Ѽ§x“ÜkÕrHL]ÇÀ5eyÝéT¨•ÆéÛ©°¡Thˆ¥´¨H'*f\o*f°cM¬7)8‰È©5QÊÏœäo³]~>T~`Â-ù'ù͸=ùëÎÙ¡¾{Ý­¾$ûý€„çêÜIüÆ!ÛÅCÅ÷áÔ?tߌë+¾ë(~ÞHx®và&~ãíâËâˈcb7ãÈE|+®§øVìug70µ?Ô dœ¯8Ai¾JpŠ8%„ ÛîÑÄ?LE@Ãàv`y€Š;]'Ù§ëåª.ª"aV:…ØÛªŸÞÊÏÝ«‚pbÐ8j;ƒ°waøZ€Àkn 82$1ÒŽjÓŸÖ›”ÔËÐþÍyþyæÞ‡U6ú¼\-.GÌû¢¾ÒKâeh2ž"-•Þ«‹ª‚Qk˜ºR­bû%+/„|ÂÛªŽ>ÈÖzkˆÓN,je"ÂÂlâ'+3ãZg¨öZÍ«Æ ~b•îR`Ó(é‹RóëÛ?.G?KᤀÆA;;(x{}j N̸¶²uÙD­e“³0Ò̽w©nëeüCÙ$ûu «Fà ä•£©bxQu³ÜÁïàlC®ž† xÈ@KcìÛ sdÃ(,ÍŒj­YÁ!á!O3ݼ,w)¡¯IÙõI…„cŸ‡%’†˜®²í>>ŠCFÏÐø­ÏÝ«Zà­!O4jC#yÎ:‰@¥IVÒ$÷{lb…‰T$ˆA‚è™KýbysÁåå]½ÿpýëÍÛßþŽnÞÏ~­4*Ñ#,+š¾›þcúË.GR: —ú]‚IEÖSwÄZ:ðVŠ‰PÂèS*vÌò SvH›’†áváÍ{ÿö’eÊi&7W?¡Åêù9Îîë>à³ÚÈJé-Ó,ë²Ý^¯Ð<ˆÀ!©Œi³‚̓‡ý^óâ5]^ã¦"”ø0ï kHÇ0åÞcEµy­ç)5Zuz™:Còƒÿ …²ûXÙ½6~g¡×JŽqÈYïÃh»†CÂÒ$ GštÃŒêÜ-ôÍÙ!fšë¢JòR¨ë n†R+ËjEW Ï֙ݪ£qô ràà$Å„›DÜFW+®‰a:A÷àd¦±w½n ­úN–‰þó._9Tö &NrX‘(`©–âÍãËsÕ¹—dj¢Ô}ë謡K°`(0îcI}nsšt­¸ùdÞ–ÐîeÊeëç4s1Ź&¨ &ÛDÛÞøÀÂÎUG‘»»5$è`eC#L|«˜˜3®?3zô¬æÛ¶a¹.l^+,«—ÝÃ2~|SÖ÷Ì}…s ‚Ò-–¢¿'b×ÀÖP§[4 °-lÜ ›×›=J³õË®¶Ÿ¡yé2±¸ÁŸ–&½zª ¡‘Vô vr`öØЩ õ‡ô%ð°î/0í͸þÍè;Jåóöq™d­Óbí‹<‡øZ!øYo˜š¡ètJÊiDý½±!E#28ö !]Yq½YÑšQ¼nDjB,'tûýŸ]HNé^9î;ÃijЇÜdy qP;à‘Bo²VÈÞ&«ïW+JÅEÖÊ ,ZÇ›ø9Ù%›-*×زpªN2ZzÙS¼¹-V÷ \ ëT²Û¥Ùãvß#¸GµÓžÊ¨§!E6lkâR`Fk:n+¬5hBÏ×&3TEEG÷=—ÃrTëmx¥ùhÎ8)FsØ¡`ázD“›z6gWŽ}QAº‚rル¬¾†Pøø@|‚áÐ7ð9-½VT›e5„îâg$šë½÷%K5·XÍ »UŽò'çKVZoYû% sXUw_´Þ¬tˆ9qÔ4á®,,¯ÖFZ»éVy¨èG·@J6Äë@*"å@ÑðËcc~ÔŒj«H^ë"jæ™îž’  HÀ7µWV–åÀîŪqm÷ŠŽâPÈ>¦x^F 5:É¡‡VÝ„tÌ8‹‰ÃŒkÃdžlÅ”fš?Óì~õ Ý©WS «ˆW(>½ÿ÷ìî´dáIXzÑhºƒF0”‰0å#>XÐ0ãZ}PÔRt‡™çgº»a̽ÑdªÈÓ eÑ8r‹p( ?ÀµX1°‚…×:F³£¸<÷&Ùà š@xÒ m}î^ xã`ŠGg‘ÄÔ·ç.Š[q­o¿Ñ3º_~+Í¿Òä€/ÿ€½³íS€`. šçmÁüa›…K³q¡7n+ê„Æmæ™{7Év?&hŒ&£)úü¢£‡hæË${Üío0ùbH°Aµú¨Š „Ô‹JãüTÈÐò 7›­š»µj+®ÕêV]ÕYFž¹ªŒÑÍí„ü„Ô/hÆ Õ`ŠƒÝW¼q°ÅéPÅ%Á’[Š;µc+®o 0ƒs™'ÓË‘ü¿ô€^ïwãPj³®#|Øœ”Kb '×1£yá:fž«m1i–îÒ¸Íÿ9Ž"^:Ì2ýKílz{€n}ZŸ^p2tÀááÀ]¤Ùš¥3ª¥%V±aÁ!8fž?ãÍóèeÖOñVͧ7{€Fåúñ Á“˨Ĥ½ªXÄÀ®] áîÕP ƒ‹È…Ø¢ œ¸˜Q{\º!sï÷ÙBuâ§Í*So?óâýV,°ð+íóÒ`çõ°C0'îà r p^ip8˜Qm#SýBSy¨>Ì<³§Å‹ÝK¼ÔužÐt.ÐX¼ÏI¶xzŽ7uézä˜ Q’ûŽFNÆÖ UC”TÁЮîsì›]=tœ£Ì¸î®ž?90Gy`À_B Ý@T©iÕKT9sÃ/wëj·ƒC8 ÇS‹ƒÓteÅ ªÁJ}ÅÙ=ú¼\-¾¤Ù#ªj¯‡cÊò¦BHÑû½ÉxŠÆ„@Œ q ©/ûS¢¯«íÕ`¼W;;î¡@§R Ìñ̽âE~A¡>äMj•è§QÇSè츇›Hη#* ™®(4†¼…B}¢’û, ¦ÐÝqo\nJ*_Ï×îÔ†r[ÑÌÿy…¶U‚»ŽâËU„¾®LŠë—‹»<¢“<^¬¿o¡¶ §ß}E~sjÍoìP2&ÀùTÓzڣߨo ±éš'©ïÎy¶6íé!;½Ì‰˜¡Sú÷y¯ÔÐrs¦õžÒCz”­îŠ9Œ•W+T#ó÷q½v·•LÇØUzHùSIj´"5&äCZ¤Ôz~ ŠUŸ&JŸžäÚÝWh­FOU±?¿ƒ÷NžWÑè켇†3!˜Ð¤Lðº”Áܤ ­”‰V?×Ûõæº\[cóÒÖÛxýkXÌðК2W•Tö¦´Ç­çøA]ÆœSë‹“Üß%;™/µ2Ùݧ¿Ñ»Ì¤ÌèÖ_Sä^%öÇDî³#r—Ëìº1Õ´´ (ƒžr¨£ò+£[ý½îæ ‚=`Ô­ "ØñI(lÇ@¯U\uÀi»ËÂÂ$Uvgó©’Q8쬅ӆ.êç¿EŽ-­ endstream endobj 7 0 obj<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 8 0 obj<>stream H‰¤W[oâÈ~´ÿ¡5/'92ÆW.Òj%ÎÄG8;3ÊìCÇnBï›õ%™ì¯?UínÛÌ<ìÃ06¡¿þêöUU’|KÂüúkR4ܱˆ<õƒô@þèïFú+úÂZð4!ýÛÛôy2Ç}h“‘1Ðm—¸Ž©;w@F–©ÛŽá’?~ûív6%Wýå”ô¦oy¹2 ‡¯?oà9¿º ®úA`“[økøxƒäÄ4ðÿð« ^tÂGC>™ã‘îŒÈÈ4uË2l쯮ÉMð'â™^~h¢ŠG ¡-KwÝ!bFW×~R°˜|·€ùÃÊ'·, w{šý•K Äà6{ìÊÓâ:/¸B_ŒGÂb;¶ìt—dìj{å=€Ù⣿B?Lý—Þ©Ì—t¶âi(î³YX-ž¤ÕCw¬#iõŒçaLùže„&™³?٦پ ™¤yÊÂüR8 )Yç„UÁ¯®7º¤¢ \¯ÓùãÌ¿3¥Xp]c?\&éøÞ¦åN·9=®B6lgM‹÷,Ð@ŒÎ„¬&ëÀŸ>Î'k²z\¯–˜½ÝFs¼õôî—Œ4á©ÅÝà=Qù`+:r5 àM;›Pˆ3]®¾‰l®k§£ÄtR ÷!K£^íîVi n9¡#IZ‡’šH#)s_=‹xHcí¢B U‘˜oÉé+O^4ùRæå‰ø"Ìxhu#€š8„iRdiL€LN·¬x'ù{^°}®áWÀ-)Ãø¢r †¦$ÆhF ‡ó˜ =b ÚŸ+Wíé;üû‹5ÙÙê‹#¥gØ"¸£É ËI‘’üÀB¾U œ‡GJ[D;ÂAHÄrpÏAœ'´€¿½“š–FÞx±KËBÔ«­ºãö$dMëé||Ós¯ÙMϾÖÉÍÁÿε7«»½5õa»Û›;€–;@?a“e9IX–“=\¤SÆâwíµØ1BŸs˜®ÓÁ&ôì¡juàÛ f.–ñÌÉIºÙ2Z”ø\õä¡&(<É‹ *üˆ³ äó'8Á²W}ÂsŸJHòmMãC/꣺ãò„Eú'™#%G‹ :°J¶%Ò©Ûïè¨ýÂ-øbÄÀHç;ÇdG_±Úìùs•“UjÂ@ãŒ%·-ò”½Â(ƒ·C…l!“‹¼*ˆ0Ý÷ÎWV…Ñ0;@žŠ‹9Ãòç9”'Ùfé^ÔJm0v¯wÍHvw}ïù$‚¹m¤’èaå}&%B‹²j¤½ I"šUÊôÊ#–‚íûø0‡ô#Özk)òÉh‹‚å¶O ȉçw˜ –PþûCÌö,)ªÒÅD4¦Ë™7­¤F¼³„>Çp®K¡1-p¤Ì…”dìï’ƒ!:,ÉÁ‘¹¯´³÷áì6td˜3ž–9ÜXˆiÚ¸Œ0FU"NÓìЃ*… %¢ˆÓ„:vuÐé`ÓÏìîø9 C¿*=O·Åv”JОÁe5Â¥a¹ï®;0†jèÛ…±@÷h£n&|=“ ÛæÛŽ‡»ê ņңR9b¯œ¬[†:ˆšRg²Cùó7¾c‰×É´ÌšÞÚÌ#¶©â€P­8 Iªýƒˆ-£ºëüë(9bª]ÓWÊcLHXL6–1v»cü! ÏÙr¡ÇÔAV¡D‹hNÞȪ¨Lª­ùÐIºcÔMù8Gxµ¿-³¤r8Êô…vÑ“X‹e± ±ÅHh@Ï G™ˆ¹<ðê*†iQìHØ]uˆÊ^”ñý—]k8ÍS,vy“N0ãyk•T©¾§IIãKÕnÔSÀ‘Ñ[¡ä5 hæq÷@Ñ« ' ÑbæåóŸ¬ÊûJÍ[ƒDq)@¶­ª¬ÔdëJË8]ü E‰=ØBÔiwëêI°öH·ßóB$êo#fJ¥>|WäiùqËüþKÜ’¿–wkÇž ®Œ9• ‹˲4“ ó‚;ºc«" K¨Z.?­t FH)ÛÊvPOÂ5Ž.Œj¨ÑŸ…j½vkÄÜ© E2§ó< yå4™Ô˜™ÇAŽ9ujÈ [C>ùY ±­±¬bÐïGÈB<Pu¼ 9/A½emiÝî„´²,LŒÍ Q¹GÒ$=™±^g-÷$Tk2Ý‚EÌi&= EÆÙ+N"bÁ± {„qËTŠMŠŒ&¹4±‘Š{ >XŒ¯êGµ#Xu£h±bì!oÞœN`o±Çª¤±vEîmÏ•_Gð‡ÿvʳƆîXUðŸ`Wxeqzøé²pÓ\£lÿd ÎY1C!…þ“• {&qõÑXš\ÔJ'Ú ô()<Ò©)=‰ÖÒêŒÔG«M͸[§ÝvT Tv©¡§L '"X Ä|ðÌ`ãà€Ù^½>fZ×PÛÂ|‹¤l¤Âõݲ¬¼‘«0ZmòtcÇ®rÝÛr3+“gX±É솿i¦_jôTCîü:vâ¿nmwõ¥¦¼:/ZÛÜÙ½í‚ï*¼šÞÓuÇŽwº½‰ü>Ýàήf"Å1›ÅL örÌZ‚T£d‰ÃHGõŽþ­t[†[ÏøO×·Æ÷KamÒÈ”Å,K“úšCCÒnzî5|—€l&©V?‘8}Á×?ÀZÓîiˆÐT&¦àÈŒS8ÊCx`}æU²×êͲbŽd0õˆå˯¹‹i¾»ãțۣ|:âs<0´fÄj|b:ªG T“~|º|XiÈ ÖÒÂò?i£Ÿ4äšÚ0‡’œi«Ú€#‚Œ8ìÔOCÇO³¯ÖOè!ØIu̾:òøWÌF­$6eàGÅ=¯Ž¨´ßj á+Ì=îfØ“Ð ?ºc4ú?ßÕÒ›8 „ÿŠ{(I“ðʱÀ…jY"¥[QU=D‹a­§ÚþûýƯ¸¸X‰“çõ}“|—·{±bö‹ëY¯6j b'™¯áNt$µâjÏ£wKœDoFm:l×_µF¥}ð…(аw#ˆ£dT–΄–óm­yäûº1 ç·ž…ø¼G«/j#Vî³RÁ'›Mcø£¡^V?Åñ^ñŒDÝ!ý";’s€Ø6RêÒú_X ½=§w)%Ê»–@k¶¸3ƒ´¶x‰Ó–ØÝGxä_áˆç§îNrJþ’´úª"¬Ù `f´¤O•bèÛ’Æ]qˉÒQ|ŽÄ‰¶"ÿ‡»J#N×9¶Æ!“6ó$Ì€$â\—yæxêkRX*÷8 kjÝh‚3ÜPRÿwèøé µ”;=¯­›?!ýšÎ¤ÖpË[úôÕr–VÍÛ1.Íä?öš•ÓÃLÂ<,Oó"ÉÇÀ´aŽÞ[¿9L×sT¼g f š"/î“qVN.¢;§È’rH™‡Y†æ ²’ þ˜x_ÈûÁ48ÇÞ‚$Ð&‹05Œòo~1Ë&—Ó endstream endobj 9 0 obj<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 10 0 obj<>stream H‰|TMoÚ@½ûW̱­Äz¿ü%E‘‰¢P"Õ=¥98ön±×ZošÒ_ßÙÅ` Ë°¶™7ï½™ðÆØzQ”®®Âk‹r¥*xsÝÁK˜o:áS±¬ÛÂÖº…p:Õá™e1I¤4&"‚H2"ã(†”3"$àåúzz;ƒ |œA8ŸQðO–ƒ_ßÇsLó Ìs ò~ÍKÀðŽòu¿ÿÜ+ƒ„r<ÒáIJ”ÈRÆçT@Þ_àkþËá±-ÞÿH©t¨þÈ4ç$Š‡Y_Z«Öð“#óùÓLU[®šÂüî Ä°šÈ¢!Û—»ËçE–z/bRdG"0*Xws”íCøä žÏn1}pçH>äqàË@cŒÿf¬u ÅÎByá|{îçLdD$üv¥ ´E£z(Ú ^ Æšb¯ ÊuQ7ŽÊä´„7—%$E'¶ö`= tFwÊØ èh‡ß¸Y¯½&—ÌØ› q&Єy0kŠJù«ñ¬ŒZÖ½Uk|1j¤vrí,%LÊÙÛsëùÕ=ø>Ø·ÁžÖÈJnYmAFVcÃÀeÁý[])Ïp®ìJWz½;$”^%rç•^nàVõ¥©;?e•.ßÕZ(ŒòîaNou2àŒ¤ÝÆÔÚ /}§J[ÿQ°ÒëÊû¡Ÿøù~à|ÅYFÄÑžÁ—{UŒª’ÏʤŒ¤t‰™î6¦^®¬`¶½C˜iÓi³]U,Ëb˜à4á`sº°ò¦ÚZÝ|ºõ< Ž} Ñ”ã¬Ç<É /n½­\v 7qr%1Ë>“+ÉäÎT –Ò»ûnᡇçÖßØÄ\øÕJRÁw ,âG¾øð_€ÛO}µ endstream endobj 11 0 obj<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 12 0 obj[769 0 R 770 0 R 779 0 R 780 0 R 777 0 R 778 0 R 784 0 R] endobj 13 0 obj<>stream H‰ÌW[oÛÌ}÷¯ØG¹Öäòª ;ùRpcÔjQ  Š\ILxÑ·\Êq}Ï.IñbRvÜ—Åè²3sf朳…Œ7A(Éû÷¥ ÂÈ·‹U¾'ß/VO{N.nƒmœ2Î3rqy™ÿ"ßÌ¥K=‹ø†K-‡8¶Im×q‰ÏLjÙ†C¾øpù銜]|½"7WÑÿ3ÈöÌ$1Þþr‡çâìruv±ZÄ$« >]…ñ‡¬ bêõ?ê-ÿPƒáѨŸÌ¥OmŸø¦I3,²JÏfä|õCgVç-ðEðթú‘©££Žã©3£³Ùu&yBî2¿¹½&—< wi ~õAÏC4kéÔ¿Öá>¯ÎK_cá˶(²£ülsöùeë?· à›«ëOøyNU~®Î–éP8Î7u[NâŠßŠ2 yQäB5A½ñ§bª*½ŸYþ˜p{s :û‹ÉR¦ÈO˜^ÕCFÈo#ò”ÜIäKºþ«FOÅk#6Ùt\ª%­¯fGNeÔšDÎF®å¶< ãYÔej2žID†yº²l}àB×jÑvš:"dÕa9V]”¡ F ”¨~„y¤›ñ(b)¹Ú‚~Mws,Ëë—Å:ÖÀd­®*r°×Πž¿»ngv0M K³3²WdŸ”)À¨Q "Õ’ äýiäŸqÿ/ *øÄqYëÐí`cùLcŽ#H‚…)€ ·9Þõ[rWØY)òR„¼£Ö™Å’ö(b'¼¸?Ÿ£åÛ‹ÑcäUËBÐ΢õã¸XPÍ".¤®Ê»B‘Ü”ñ1ÞBé(ÈyI§ª)j'×%–šÓ»'ªu\` L2™µù–¬m h¼$DWÍ8e[º'Θâë»ì6££ÿ6ºþ{h<,êy¬Þëfƒ$–OUG,<³;E{^ÃtdnÔ5,àØ•ßoXAÿùß+lÉ׌/ Ø°ˆ\åiZfqTKѺ°ûó9åÜÕ_ª“®¿*r½øÚûÍär˜ì“'OuÄñpת;òTˆãƦ±›ÃõOäˆÿâa)ƒu‚m9åÂM«ã̱¸z^ hºÐЇ NTVsÙ©yt©áØujÊ…@ µ –p?JxÛf‡(ùªlűÈáufQÕfÖåä…ÙaCe3p~4GÅ$*Óô ì¹xRz“q°¦5ÞÜÓÝDrK£V˜;>r…ë©™iOÅŸo°eÃÇ4ê žÊ}Ü7MHó0mPlE/Â+ kó ©»WyÔm‰›Æð„ 1'ÕºFÓ%ÖrI­æ’õ 4½ßF³Ášªb\ÑÇmó8˜½8 LLžâ'•Ì;£ÿŠ"ǹJf9‰©µÄýp‡E§*fÆtß^ºóØx±ÈÖ>¿6ܸ‰$õEN;éS«ÜåšÊæÂÌD¸ Å ÕŽ·#‘G%Ì:F1„•.âMÍñÊ8IJËôô„Ìœ6‘'ÆÒ^Ô’¾Gý†°ïªZ&/„ ¶ÐèJY±ábŽû€ÀÁÝ·o)B¼Êñ&¦àÀ§šsBu^²ö–oéæx.ìmÓ}ATF\aÊÝ?Ô}\ìyð³½ì<cì©Û5É@cÞôWÖUD”Y£í¬O¢®çÕ’p܇ è´­]¹þÉ·ô,–;eóu!EY³þù›é WŽ¢D›Çœœ_ýmÜîÃÌXó¶’2‹àHK±Æ† ^”‰¬äÛºVj¼G‹ðÑý¬Ê×|èîa÷&âáƱ¬‹¼2·y¶=]ã ðEÝ’4‡2ê«è‰.T!ÚÜ«[+ÿ¤û„+ûrœ´¶'’²U뎑`uÖÌjnkÕÒ>’§°Òm’¯ƒ„$yU=8¥ÖÕQÇì¾ÍàöÃRˆêYµl›«‚óŒ’?b¸Çä vB­Áù´gz*Ú‹|øàÊt{;Hy»GL‚ò‚wHB£ Ëû³¬<ë˜7Ä”›IϨ¯Ç ÙTì³mSoïâ­š¸S®JŸÕ¶*á´%<®|k^èä]‚MÐ{AT}_ß1½Æ¢\킽¬Sž Ëß²(° v¡b{ªŠSexÉx®ªŒ:¬虪¶†µ/A!'“ž…½Ý³øøóZüjÏÂ~ß³Ôª:SUœò,¯t€½@= O9x7Ê“|û¤5K” >©€…¼\õ¸‰1¦µ×…èúýŒÜ‰Ò­æÅkyßãi}ìW^ìòGÅébú~³`¸ÆÙž›íá+P P{ˆ”¾½a¯¯³W d™¿‰eCÐ3ªÚ¸o ¡q1¡Ã@ŽEñI/Ð+&´Ú‚sû˜¬­[¥šÐË$Àô@.ŽJ1"Á}aÿöqX&ù72îxøSéEšG\sï©u¶li>3ïºTW—Z×Ù¬3œ"ºZÌ·2ƒ¹0M×Q¼™mÑÝC¡½é£V¥@cL0èlwšVðbïj°Wʪuâ«…Ü ~ˆó²htx/±¨î¨ý  UyÏU‡ÞMÂ×£é+öðâ 6){ÆÄðUÊï±xþ‡¾é3 †¶“µ»SP®1 "°ºrüð ­7„Nî³4î§,˜Eý%«K‡ <\g±|;ÁƒÛ_€‚Ø*2&š‹cÜH˨]X˜Ð&Çë rJM,ϱÈ3å(YÕ‡Œ~¬ÔLpµK•˜M{5eoT>eõãA¸#2N9hD#a.TˆËãÖ=» ØÔ;ÎEcŒH°ß'ÍÕ ‰ð_<,‘Èô’¹ok ^WÍú¿›’/\>Ô{rþ<©á⇤jšŽ_ÿZIÀ á—j.’x-ñ_Ϋ%·A ž wð‚!5,¡hÝQ,ÈG2q*ܪܾó ÄÔ©i• baK¼™aÞÌà‡MslLÈDǬN‚ZÄÜ%›}8©“ŽÈ«ÕélÝÕè0Ýò^ºã]”î¹F·ßWè¦aÿÃ-ÊnžNÔJ ‘|Þ’š8HDêH½Æ#»|‹œE:ñЋü[ýºëÇ6ŠLj¯šƒ…gs¬Zu©éÕÚØ©Ç6,zô»Ù}ûþ1ßÆ…êÊTæ ÷H$€«5œ_¥æ¡U`“ïÑ÷´Â\ÃW¼ÔÆèŽÕüu¸´Œ¿4@«s^–ú‹Uó&Fq’@ Û"}>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 15 0 obj[792 0 R 793 0 R] endobj 16 0 obj<>stream H‰¤WÛnÛH}0ÿИ'yaµØݼÎbgvà<“] Ø;ÚdKâZ"5d3±çë·ªÙ$E™-ÉCJ–êrªêÔ©å‡Jçk™jòîÝòƒÖ2ݪŒÜ/Wå|^®^Š,?ÉM^H—Y^]•Ïäž%!‰½Š€>£~„$æŒ ß Èç÷ï¯>^“ÙòÏk²¼½öˆyç‘ÍŒ‘>þížëÙÕj¶\­<ÂÈj ]¥^¾Á YÕ„yøÿßøQo¨ÇáѳO,‰©“˜1ʹ'Èj?›“‹ÕÿÐkí-à‹žç£UóÈÑ4ç4"´™Íæ7…V;òÀ!òÛO7äJév/«§ÚzxI`mÜýºš!Il°‰ð…èh@*5[Ï~½…´ÍËò|{}ó~nÑÁô¯ùëf2Å(!QÈ©ïc"ûÙ;Ï‹â÷ãè0K>d¡¬ó]0/ôæ•Ú—_¡¸e£3©ááV>©u¾SD«ýaÕ”üQ~#z«*E$üÓÛJ)’–ðg¥¹ø¼ú½u˜ô…0ÈP°`”­Ó=Ú¾s0_“TîvàÏü|¹b]Ææ÷Œ÷ðFGèv±KѦhj:¿´õž2gÜÉS=ñsì–,†nÁ’,²3ÖÚÚsòÄFgÌïyºuÇGI×!§ À¦ÀôÙtÄ$1ø÷âs] ‰%Î.xTZ«Š45¼ÈjÓìU¡ }ú”›K’î”,È^ÕµÜ(ƒËc¥äÙß—µ&yñU.†>8m¼“>˜ïòlì ZÌ ?F¥Ÿbã%4U°)‚g02O– "/ÀA1dp?çpG0äµ¾àÁZ°¥0ÌéßMž>‘» îÍÛ?Vš”krs{Õ6éDxbÞ¨£ŽP0,ã`«0J( -[ݤ¬2@F—¤j ô½b—µ"…RYý‹ *ÿLÙI²™½‘0d4´ðLtÐ|ììîmÐù ƹóã S]Ë9p"¹œ§‡ƒ#ð ´CO³d Zîû§žîa ?üqwC®Iz±ó:úSÕåIyGYFoeéM „7ιÁ‘hìN´%WÆlÜ9=É™–˜ìXTAüF7ô‘Màn+|dfŽK4‡qëFíÞ¥»&b!ði¥›0Kº•E^ïɺ¬ÈAV¸vfÿªr^F=› Â#NÙTrï¦æé&æ¤ØBæÓ CúŸ{";ã%™ –PHcä#¢Ì•+‹¶6b²6‚c¡G® Ü°Ø¡û²zyòW“ƒ"@J¶Ôç†T8©Ù`½÷LÄœÆ^OÅ”áöaa`Ø*Ž< ÄWೋt™? Ãôê™&Ý ˆ¡Q- Öf÷i×"’©FPÒ²Ð:Ø D0Ž“ºP {Ç2uÊø9äîÆ%4Ž[8ÿê9+J&x¾Z ó%³[õeWµž¼Ð›ýW!GÎò =*&ù£S·,í¸+¶D@êæ±+I®Üµˆ¿‹®;¿~SÑ•„.³2’Šá°}b# yè€Ã‰ÑÏúŸ8:_šÍBP²5öT^Ô®Îà“ >ò(ïW²®N‚7±ÇCx;p,Ò'©Ë¦JÕ !JíÆ[»æÞÄ}À»•°q'º!|ûC"7p—´Ü¥Õ³>7û±¸…OÇé3qUU {­þR¨o§GâTôÀ<1¢·?'Іn|´t&üé5ðá`à,„mcwZ?áuq&—#ÿÃ’á-Ó‚ëÊCf¨u\¯‹hnJf(ç'éó7åíëÝâ‘ÑÄ0Iâ¾’úƒhÞ‘äÙ¤Í5ãÙKƤ‚#OêƒJó5’&‰³4Ö-íÔÙ«1`‰TÁ†ÉT` ­2¼^ÊÆY¥àûá9õ‚Äÿ>8X«– îçpÊ-ÊõBW2ƒrÆp7=-ºaîoÂW(2 ®;vx DijÔøi!MÃ÷±¹°–Qú~kfj‰J§0ÂÉÏ7óî¡Ñ™WªH·öoõÏî6œÞÇoÏž‚2‘„çgϽ:=1äuIJ$2ŽV%Ù(M$ùËܶFo_’ZQ]‰ß-z³—ã7±í±Âhõ¿t&;Å£ù@’Q›§è•öÉê%Ô÷­¾¸nPFæt˜ü°fäT0´ëj…ë¼9‚Ô ™ÊòTÚ¹ÅF…#F[ êZÖMÕµðç,Ýɺ†ì~‚·¾Q/úÛê•”÷º;çãl^Ë ¯ÍD¬›ÂD w¹~Ao|Õ‚ðܨ۱faÄ&Å;÷štÒ€ ¿©BÁæôuî:BœŸA´&¼ëW$Ï”ì@Ðj._áSèð´gÛ#øcݧ€l[²,ÒX¥V¦:jgƒ„½‹$ðhHÙÁ]Œ…57œžOª*ÔŽÏÿæzKÊBõ¬ÒFËǺ$pØ §>ºhØ-Ò:"œ›ÍÑe…­Ô‡S_ /‰"ïmrÂÂbë8Œ½˜îKËý%\[\ ×ë#¬f7vId£k J° U²h¤I·DBò½2=Þ¶°ýÉCÓ^” uò"Ý5™¹ó@”Îuþb:ÁèÕ™Ò ˆŽ ²ˆ›Ýð¨4žoé®D‚{Ī²È}FþQÜbÔZâû[â =\\âšùÚ©b£·˜"4H;ãB×8æeešUH'=O›|ø©"®•¿úÇl>t"QcÛb2›ªlhQ@†îm$ƒ a‹'‡Åj ÝŸBÈF£ËJ‘NÈCHr¯Žå¨QX BkªáìUõÅBg;—Ÿ˜žŽéMé– q`·Ð*rLwè¿Þúá»eRa}µD™¬21ùß¿cy §G8òfô:dq&¯`:/gJ‚3PÏ#/å¡¥y'Û:dÉ”ø<õÀ"9KËbošÊŒôj'éMk–ÅÐÁ“Iú>…‘Û€Â9èÊ/>ãä´¹_¹ á^Wíá‚’›¢êÐ.[œÊÔVØ[ «¶ÔÞŽA’ËÏm!uw, èšÇÈçv?ã{è¤}SkR”Yù Í·¶† Ò­,6*ÃÙ=ð0ÓZ¦qü µL·àæ~yUj]îÉçåêå Èò“ÜäE[ìåÕUùLî»S˘ ÊCHÃçx?ä³-ÆòÏkòˆCT˜]'<«G{^@+øÝ<…d¬-M÷À7¢~ƒ¯íØq¼ÒL4Ú$à#\ÌËÿ¦Ûw‹ endstream endobj 17 0 obj<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 18 0 obj[801 0 R 795 0 R 796 0 R 799 0 R 800 0 R 794 0 R] endobj 19 0 obj<>stream H‰¤WÛnãH}70ÿÀGga—U7]€FítcÑ ôL°ñ[Òh(rÙÖŒ-y%9—ýúe•d]•2Ö¾8Jb‘<äá!¹ø’ñ&Œ øôiñ¥(Âh§Öð°X¥Gø¹X½,îÂmœ„Eœ&°X.ÓWx K<¾ã.A J„+]ð%\8~~þ¼üz “Å·°øqë€ùÍí„BŒþç=>ç“åj²X­ °ÚàWàÇ ~À*êèŸÿÕÊðâ0|tª'øDøàSJs8¬“)ܬþÔöhioŽ_t¡­šG¦M3F¤ô´Íõdú=)ÔFþãî;,UíaöW^zzã¬Þ6î¾­&:oráœ`tDB¦&›É·Û|,ît‚Ü~ÿŠ¯WÙéÂ×Ñò&ZÏ8ìƒíà¹è†Áý=¼“u˜­á®Õ *Ï킽J¶Å.‡0Ó±– a “êÇc&Ïa#6YzgFgl&fþŒº˜&¬k‘Ô—†\mh^YšSB¥±&h 8Vàé­P9Õ.KOÛ„¥‡ û8Q°Ù‡Û„ FùY˜½A® H75ŒÇßšðiã•—\©ü}LÏp#4ö¤ NŽ§£ÃM¼G3SíêÌÖb åM‰%¡î9Œ¹‡|‹v/q‰Ôo Bƒó‹3„ Î)ëĨΠ½(M,ÕÔ%¾žpõ+Òc¸9ÝqÕP ø1ñ¿s!<ÝW7,ö¹Ý~YKßz؇ôÜ·«‚CœÄ‡Óa e¢ëŠÕ½ùqs) º¶ï~¡eK𲿛²Š>Ì÷/€æò!|5’ÓáIe@Üð@ç"Kwž]M‚ ï-‚wÅÐ}wÌÒ[OÕ”«½Š ”…ºù[²ê›ægøìš^ô„iì» {Ê1Ïq·çgæ_OµÞBvJ§‹=i~oÒZDîäOð€`{“»m&Ì€U?¢0œb×QsÇÓQ?LEõB°›¹phù槻›Ÿ«Y¢ l%°Ú:$¹ésí0Œ¬ éÕRR:0!.Uç]Mõ\ì3×iós@Œ¨=ü.-9ÃñÞµm£%í—ƒÁkxI{1px~R¸Gmvá±ì3: NC"+L¡:ÎK‘e6¨ÂõrH¾óæ„]–k“f¦AÖj^>ÊêˆçÌ'Zœšf{˜a¼Ï‘®S”êO[aZôN‡)›0ƒ½C‚ë„ŸÕ¹¿wayzÐUIãHÕµ^¼[l$ ¤_MËðxŒ“mGy|#[2ƒ—J´:$ú µ5¿!+WÒ\³z ˜ äìO9ru+Çnè@~ŠpÉ?Ø´®yç@ï0Š»4Ùöl—‚(PYêe ’Q­rq‚+N¥>‚ø® š9¥f&¸½™fÅoaZ³Ì½ÄÅ.ÅEŸluBœ5eƪµfþAPƪ`ðÕnôóËú˜–œVkÙkŒ;ªÅ¤#P—ÁÛ¼Ób®­ÅìSŽ5¡‹ÞYrA‚ o7`[ièŨé\¦Od®WºªüÔ{K9^B¥“‡©>tÜPêÊikÜY[4ø?O¤é·6«è”e*)àYe¹¾à°Ë¾ÿXÎñà¡8“Ž$¿Ƕm²3—nÙ¯w’§/!“y`”¤Ç ¯FÞ'ÿs‡Ó~±þÉÔ"ø»í G:námŸu×Za±X½ˆ¤KäHD|,¢–ÏQ<€H\‹&o$"9QËçô^%ëLEÏVDp© F"òÆ"jùœ~{5‚­¬ˆük9n½¦_‹¨AýˆZ>§Ë(Ì ë%8¤ }p ÕHYàce¡ísúe¿ß†(|™Òµº <6VøX]hûl Yûˆ_« BʱÊÀÇ*CÛ§ÆT¤á~oEt­2îU>VÚ>kDö"]+ …g¤4ð±ÒÐö9ý·ZŸ"«Ô‰«µÁ‘cµAŒÖ†–Ï Ï¯< ‹wGf ×µÁ}¬@ˆ±Ñö©©— —êZ}à«b¬>´}N—a–ÅUœzGvõYåxÌÜIíaËÆW`塇W-ǃÓ?Ÿ{õ]‡Ã%}Éa“f’D_ ¡!c}á!i¦!V)M³4Ry~ÑFe¬þ1™n³ôt$ðlÉ ^vÈè³åÓðôW›G”5•Õ½*õóº9Ån:"QR6^M­¦0H)ÉzÕ£¡T`ò :ÄE*9ŒpW3õ»  ‘7­\¢R®ÊæŸW…-l%äöz óhÓºO7¬sT>ÓàO9êZ¦þsRÕÞmR+k„sŠ¶³f 'L¤Ó\©¡¬‰æ½æ:Å>À$:çF$”0«¾HiM ëWuìuÑõðx3„ÁµÏ’EçÒ3éiaì˜þ}Ál÷«ï¥.ú}Õd×BÒñë8ÿ3“Lóän€5%F»zJ`¯Ôzfú4LÖþ£Ç¢´Ê›Ç‡Ó¾•žòýÛßnAÇØù°™A9µ+ÖÐä¸l_‹d!•\J8 ‚²iaD¨ÐZ›+Ððâã^Á³Êr3Fkým9Æ@ùõ+T»ðí¤:“Q˜©ÍiéÁüˆöç;µ†M–k¬±æ–½TškÔŠ3È1Ûë0[¶aüîURäpâ¿Õ¥‹°fjÝMÚ—¬ˆ7z#ÀÜ}) ¬4~ãa±L‹£ø¹X½,îÂmœ„fv.–Ëôʘ%Ç1ã3N˜‹xq@9.Ž…ŸUÜÅV9è¥úp$# <û"ƒãƒâLWºœ0ÜÁox¼Jrº©¾@‡ rÁYõ†Vév^ÌÇÿI¶úí endstream endobj 20 0 obj<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 21 0 obj[806 0 R 807 0 R 812 0 R 813 0 R] endobj 22 0 obj<>stream H‰œW]oâH}GšÿPd W•?G­–Bºg7#Emó–D#·)À³ÆflÓé̯ßSEmpу_ˆ!pï=·Î=÷Ôô®¬ÓeœÔäÇé]]ÇÉZ.Èót^lÉëtþ¾•dú¯Ò<®Ó"'ÓÙ¬øAžYäÓ@Ðñ©ðˆç2êúžOBΨp¼~ü8ûtOFÓ/÷dúxïýÎ!«#)>þ÷W*ñ†:ŽybQHÝ„ŒQÎAæ›Ñ˜ÜÌÿTñØ>Þ_tWEÕ\…æœz^ b.Fㇼ–yá¨üñéÌdž¬7qù¿Ê:+ ÙDä™_ëtŸç#Õ‹(Ô½ð‰pEuÔ#¥-GŸ[¿LŸTƒï>áç¦; þ=ÿä T…P?pÆi@ßÌ=¾Ž„;•kاøºócÖÎ2ŸóVS˜PˆN[Ê9pðNÊñã.«ÓÉSš¯žŠ|ÕÍÖâý€tßzQ¹õ‡¡CQµR¶Q¥vT„CÃa¨¼¡¨Z) ª¯2_”2ùnCå_‹Š¹Ô†*Šª•Ò úü#YÇùJÚP…W¢ò£€òa¨¢¨Ú) ªYWµ ³È„Sè ÖŠ¡bÑÎi@ÝeÙ*®×²´»V.|_ • 6T/Ú9OYg‹]+¾ë• 6T3Ú9dug™×µ¢áC—Šªíœ'¸ìvµn01T7Ø`áhå4Àþ+»Ä*†üZåðà`*ªíœTTI\×vùà×ʇDC僕vΆŒååc»V=<ŸU>T=Ú9[,.ËT–=ž9 A螸å3Ô~·’ÃïO¼{¨íwß% PU¹. ׀ߊ’Äd‘Vuš'êÒrKªb#ët#+ò&É[ ¥+å« A'U狸\—qŽ;Î…¶ýTœœ¾:ÝÀ¥ì¤JÝ;[OBkOxïáx°(ê¦x¹ÑPtqþ±•®ªp±ôðµ ®Oêзãí‡ÄÕ¥œè˜hXhm÷#Ü ‰'@\_ßóx[¦››p—ï7¯óßû:!œÞNh ‚÷%ŽÊÐI4& 6jã¡`öLêêx boRCDôŸy”»&íÔz‹ßI±$)nšå¶ qßP”ñX©ÿ©·.<|åDȱ õ¸?¥œö1l¸#zÙÍÎSMZlJ+ò×.­%‘qõ~{¤¤#š¦š“œQõßâä*ý.s5Ìr™æ©še²Ät«Ž)î€8ZV¿ƒ²&¨§‹ ¨£ƒm1ó«²Ømo#Õ¥ëiÞUlr*@ºB Â~©ˆ*;%¿¥9\Æû­³‰˜Ó…œltìòX^‹H¾.ϧܦ¼b·Zow5ƶøŽB•!ÓÅê:¡gÛ,~— z¡ƒ&\Sß—J÷×NVõ­Žwl@£“›X÷4ß¾I|s[”µ\@/åEJºF%²« Q.,}Ê#âQ66Rzý¤ì“@7Œ°mºÑ©ÙIì@fx?YGâd±Öhnén3Ϥ7ãÜ.þ8qT› c¾7~xœMŸX£C-FCkmâ žÉCEÜ¥Þa<ä{Ò'ëx 5Ú³µO3IÚâ_JTW%eúM‘í?ï±5—E²ƒ\!ÆË/F°Z3¢Ü9ïÓh,3¹‘y­&ô‘ÂþUÒë?<‡¼°cZ<ÞjŸ˜W¶£Œìí;“‰Óla@¬“î Õíe¢$Öb],Š¬Xi©ß@æv¥ÿãœzM¶HÏiHC`oÆa+HšÁ£tCVU¼’$“ùª^W˜Èx³Í¤ŽØÓ«œ…”GG…à cÉ짺Øå5~ªŒN»zGÙe1¹ ûHMYyúw¼7Pùnó ÒxÛ²HP¬Ô96›]žÂ±C–7qŽšÕ±ßäJýâ˜0h8«hþ¯Ñ¸”¶RÍÛóS!J‘ K/9·ß8ö¥(B¹˜+ ÇQ,ìqûýÀ?bpÕØuóèv]À¯ÅâûJï:9|–þå~$Ñù´‰ªìw£[­“ëZ5Sw |r"f@˜kÌþÉÈ”ðõý–pRFfG©¼aøù8ÉâªJ—ŠjŠÜ6Ít-+ã_'PðñΙýe"Éd\ ”»¤Þ϶тJÖx´º²D.3›pܬe ËBÝ¡É ¬ÚãÂØñì'&N3™M¨_/‘Ê·[õ3'r¦·! @µAÓŒ¯ûe1/ã¼Z*MyŠK¸ ™µ>R4¿/ð!®^ߥ1öÍÆšÂDoaê2%:u=cÑ»chqj™.ñ>½á㉦ÉäTîØÞnÒ cæ4µôÕ°RwÃEºÄ#ôLÙøêàã­ ÷åx‡ûîÑí…ÛwAãS]°›û€=É]H’Ö•Ì–”<ÔdQ€7yQ“1• E‘Mȳ›‹aä¦Æe¶¤f²¹¨ì”!Pì¤ä.« bu®©)n]d‹ÊXŒî°ªÿhãnŒdž»l1Ýp˜Åt ð>¶w7¤ua0™‡ýaÒ¨üYÃÊ»^n¬Òè]XQýò á_÷ @ÝÈwe.qÐ*Á]]ÇÉÛòy:+êºØ×éü}+Éô)^áF¢[?ÍŠäÙH) @Ö \°¼\\Ý|¤|5UN¿ÜTî‹Ö+\8ÔgQpIB™êŽY|!16¼ÿ¦¾ï=Ë®OoµO8mqaÿĸÛµÝýòÒ…Mì endstream endobj 23 0 obj<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 24 0 obj[819 0 R 815 0 R 816 0 R 814 0 R] endobj 25 0 obj<>stream H‰œWQo¤8~ï_áÇÎ)í`V+MfæN³R´¹KKû­¡nô=™Ü¯¿²±ÁÐ6ÝYi”ÆSPe_ÕWå«MWìÒ¬C¿ürõ¡ëÒì9D÷WÛz¾]mßö9ººMŸŠ*튺BW××õOtO#†â@`Æ (¦³0àèÛ¯¿^úˆVW¿DW7¤VzZTÀÿëžÛÕõvuµÝˆ í¬Û ÁŸWøƒ¶-"üýŸü¯8 ðè'’Ä8ŒQL¦4`hû²Z£‹í¥?ÒûÛÀ‹AJ¯ê‘J×”bÎ#éóqµþRuy‰¾RØùÍítWÙóKÚ|oµ££A4–pýµ ÷y»’X$±ÂB 2 »Ã5ùj·ú|ÇVþZÑ Â4r©>œç«!Òñá êÃy$;÷ÚŸƒ‚1$@4Ë,·UoÈm4AÝÖ)-Ñy”ët ¨4;Š¥tŠß•N¶ïÏ?³ç´zÊý¾“÷¤“íúCY>¥ÝsÞ¸R*`òÇG…Ûª©p n«=®ÎE˜‚/T¸H ¿„öõcÀËrNÎg"Jè’Ó „¾W—zB&þB~8°%KgŒx¬=#£fÄcµAcÎÃKd€àÀñ4nï×ó¾H&neWlN«:9OÖ55v ¦«aNsÉ‹“—·Uã6bÜV›w+Y$†' Î°±Sĸåð bì1‹úHÎHMŒÁã,ΰ·¸š§ÍÐâ4Ú¬¸y‘˜=].Ô­g°bèY9=¨ÐóÄR³bGøOþxÈr% ~üœ¸­š·Ñ°â¶Ú—6·D/ÒB9€w-n<ƒ;@OËé†OÝšé¡ÅŽÐÓòg›¥]çlû@ ܧ¼ô¸­š·ÑÐã¶Úô¸µùtÛ‡‘†œjûô¼™{lû~§S*Þ­’šÛ?HXã­—˜¿ë»­š·Ñâ¶Ú˜¹5ù$!FšÐÝú-ççM­! N'„°w dOÈÄÿuÚ4…³>x,°ðözµ§ÃcÔtx¬bl*ÆäÏÀð‘Äò\‰:S2°Ó sK—哺}¾z•:Ï×L ù ’;”OÀûöuØ«Â^¢Î#Ž©=2üÈ›¶¨«Õ;q«jÃÚ¡Rí@ù‚óGòñq¶7C™Hph’WL®œÚE˜Rë²jõ| ÖHkÂå«ã·šn÷§#æCX‚ XŸšdpë°ŽŸÚL„N&æ‰O’Xúá”ù$¹3q&šÉm¢« ÒP;‡'ãœñ¡¬î× 8˜À/6,ŠÖw0–9Ú6iÕîò=äUöü’6ß[tñmû›sÂy2µ U*Û «!/|Ç@#¡»}Îí°E¹V´(+Ó¶Ei“£®F»:;@V(]’Y`ÖÆĪó-…Ál?­‚ÄÇAì?|4ž8#±P&ø$zÉÛ6}‚Cj  ©#*|ðØ—ì†2HÜm€@®Ší!ï^ó {­Ñ¾©3ð–·}h%j P¹•ßRh'V NBEBÙRÓ8¾°0XP$6žÏ‰‹éQ¼Ë>=àH:´‡´D¯é›Ô¨²®¿ÃnPÚauöÍH}²XHbÌx"A¤òþ(~©Ð—›kH=ÈöMÞ¥ÈÞå~¡{(?…MB9€…ò'¶ñ›ßË,ü¨?áæéqÜæá áÒöÐä=|mú’£´E3aïÏAísˆÈè»M¸µ¡q/¡üx:T ( É š AFî×rOû´éŠìP¦ ÊŠ&;¼´]ZeP!Ïi'ëÃÖ¦h ꇶkYeóð†€¢ºÊê™J¿Td2Fæ2r` èÓj]W9úºnóªCmñm/­òúЖoÒÝѾñª9áTc£ °ß)Üêòâ‡Æ¹~•Ë¿^`äS÷yÕkÜ? ½ª% …œá 6J¯µ½›jûE¼V:[WpÆæP¡×¢{F¥YÛE¤Çošq„)AN¨9¶0_*w3ÜLZ×T+hÑbr 5L'˜úÐãþ2™Ó?Å Å1I’i4è9¥"s©Ú0‚YD,)–\wÈzL·¹PÙ»3’êY3À¡©«å¹‰/Iæ<-ŽS’…³r £?¤æË9jiÈáüï ‰nK“à§ÊoáJqªüBø™‡†IŠO·_«Ì†>NG¿¢G ?àѪ-pŒ­f*)ì{¨k:³ºzTRߎIg9íï?1ŽBÓ%aΨ`˜¹; )Ðœw»"[ øIwÒÐ_µ UXàØT×ÝbŸæn=_èÓ”$„dCÞ0!|ÇIN§Ç¹#ÁbNÕ} Úuþú¡Õ„[oç3Á'óK¬ÙŽÚC›=À“¾Ã²P`˜YKžGN§Q´¾M›´,óm§³—¼Ô\åÚñ7Ós@Øe „ –ë1â®ÎR¾!íÈÔß*N!'“ø÷맲~€2y¹ˆÖõcî=5[H‡p ëVŽE8=ö% ìP`û´ °…úWSRÑÁý@Þ ²¼éÒ¢¥`¼!²þ‚(°ˆ™Õ0ôP,{4|…Ÿšð}ë‡ç4f¸ qÅqú¤%`¯/•0 i1^ˆ]ýŸôjÙmˆ¢¿Â2‹Ã𘡪*%Q—U»È.*bˆŠÁ‚qÿ}Ïð0Ì ±»‰¢Èñ½çνç!9NÚ¶Õ~ÓÐVƒqÝß°ƒu¼?äH¾8›cÁqwÐär*Ëg‹'þnf¤æ¨Ÿéƒ«³fÊüž²yÉqüXåhû'¬á(ªNŸ“¬@l(Eº”« /Ð#6¿ò;$‘tçípÌ÷C F_¢Q¦VU䥰 2¤OÜ:äÇÖA¡ðx׎+EêL¬—OkíÔ4™àzæÃ7£~BÇä-Q²ÑÒEð4Ã$yüi¼„Ô´i1ÃÞÚ·}@7q ŒD¦jÃØ£€òº}™ ›MiKÇÓTÏÓ.Qy3Ÿ±Y‘—ƳSy!¡Bœ,‡Hƒ…\97Š°éÄwàˆûf²U’²PèP_‡*ë`ipG£:qÞ†=£´áó”õ2µæ_,Ð×+ºËO–Ü)H£>Õ<Ý×M­Ò÷¸JšcÀzžw1â'…d¸Ò&åñ%7wQ2f¨=·¹`Ù„È™K0©F.¨”ÐhVI&r8¡T뺩Úû«L˜ÒiЕ…Õ Åó¡òãîØiÆÐBû,õ&ÎÓDI°®•ó»§Æ«õ”ò ›XVP(sHb&5ˆô'8Íb¶íIÉÓ&%¦‹F¦ b3®¶`T˜š¯—p¨`,µãwT{xžM'(êšÄƒ>ìtišL(9lŸéb€XÒ3B±ÅžUñ;ν>æØ1aüKì»Ø3á½ß³<‡À û¦¡¯*=”Oí¡0ƒ'TƒêÎ#²\ ÷гý£‘Ã٢垓8…ŒküÀ82 ƒÕ^6%óZ°¤ NV$q•˜!åU™!Ô­ªó Á&G ÒŽvD®ä¼Í{Á³¦‘æ⬠ ãϺ|óÒþåÆ4fvñ˜Iˆ…ÕlǼê9] .2€Sâòh—.Æ9×â’jʸ2=®È½Û^‰‹\‹KªÙáZòt‘w).°­%.ÿZ\RÍWEÇåî*ž %ï87;(ðÓú¾ä¼Ü[ÏëÇÓ!µÖ¿âmVÄ‚Š­õý}ùa=5ä„Ìv)ò)C%!tÍ'¶‚ïž»¾×?,`q, …;5„"=¹‘2åvuà•¢s‹¬‰7ÿˆOÀØ·Ì_¾vpM©jë‘Þ=‚¶ä¹4?þ 0p "0 endstream endobj 26 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 27 0 obj[828 0 R 829 0 R 826 0 R 827 0 R] endobj 28 0 obj<>stream H‰¬W[sÛ¸~×Lÿ¥ "®$§Ifb'Û¦3nÓµÒ‰3Z‚-¶©’”½Þ_߀ š¤÷Ò<(‚!œË‡s¾óaó¾¬ÓûdW£7o6ïë:ÙÔ}Ýl‹ú¶Ù>ŸÚ|NÒ<©Ó"G›ËËâgô•Ä‡ EÄL Á æRHQ‚úöîÝå‡+´Øüã m®¯dVzX”Ÿÿrß«Ååv±ÙnDÐöv·;Oð¶"þÿý§8 ð5h¾‘8ÂHw5Âø1'Ì¡›” Ì´9¥9:•ÅI•æªÀþ£Ê×­)Ú™’ÚÔº±µ&˜cOW/F/jTäÙ3Ju, UU% è4@§âI•Úêhñ ¸™&ÀâÞ˜¨ž«Záº3õ˜ä5:¨R] »smêcÝœéI²ª0ÿ{N²´~vvÒã)SG¸ÙP›êÞ¾³!Sw06å³ü±(Q¥]§;ˆå=)dLó]vÞ+™ÉÍ)ÉÛ`˜ í5€ßvÍ &  ?ŽësV§S9óéœeW§£®"ùÂÕ£*+@¸j€¯T¿@Ó¼.++Òu§¶¬"°£/“êÚØCûÕ+¾<¬ÈÒ•>†õdÉéDz¥M^^$ CŽIÔäòSò„êô¥ ­–ïQ®K«,· n¡RŠ²VûÉ‚’° LL¸Ïá =¦L££*5 ôÛØAÝv®è|X΃ ŽbáBn—yrTбºKµ?ït{T·+tÊ’g”@ë–s<`Íõy`wÎ’•E¥nXàÙ•5œÎ¥BÓ¡q õf#G­ªº²moúg¯N î&fÇ&¬³GlpÆ`r¤îï¡| ‹µ lXô0rZZr˜çç£*Ó]’!MšÆÔ¦7 {sâh8Ö†uNN-;,¥OŽ-D8âý±EÑjMH/?¨û4O]ž7(\ζLòêÿWL²èw3DœˆuO÷Y¥L¥ÁMV»2½Sv`T6¶z$¶Tÿ°Ï0ú* ¶nÿ›]q[Á\ýë Ô”ÎBÍ ¢Ã‰1‹Æ¡öÍÍÐNk“ƒ±M9u{ã´3Ó{"€7 àò¢{dØ Ôøxcîé æú‚¾Ê1§ÂÄ®ƒ7t Ç\ÌT‚/‚Wfô…›´šonê1ÍýÞùêZš† N©gø ˆóà³#„€EÔˆYhí©,Ç%㋬bþ"«ÛÕ$uÒxR%7¡±PÆ3"™‡Ðï®FÆ}†©ü¹18$ ¦Ë°I}ã¼JˆÁñ–ó6‘"WRã/¦!š\¾p§G©–!»L?¥ôƒå”Ôµ*st®`8èÉ{TIu.µ®ê¤¬Ï'«$-}½æ8Œu÷ÐÀv&&Ð4‰S4N¼Túiu§ê'ÝU?èT;ØÓƒ*áM7ªºÐÕÐñ=Îvæ ”•äˆS “?À!Õ¼o÷p±‡$‡s/Zþê’ h(l{ØœcàbµÉˆæw”2ØéfÌÅŒXæî±g€ëRWIºš]£\›{ƒKt7:0gœv¦ƒŽ¥QzÆ¿.ßÃíyEØòxWdé/àFßëŠÒ¥¾Ûá?ÍCÓ3‡Kžö!b3æÜ“mPÅbÓ«µX¦4"SoU>Î<½÷OG²­¯˜aÎ@øîþŒlÂJà±ú¨lŠ¶éÛ{bÒ=¤b;` ¢ E¾.ÛÒ韒0½o—s k I)O@@Œ“.ÿ|K'j@̼4áê*±ç!¦!ú. Åç‚bî!È^js?Rú.ôp2 ²h­·†Yø"öÛ•¸àD¿ Gº¿'ÛͦŸ¢ÐðÍ&¨G¨¨>OLì6†'vû™Îé ѶL8B,‚ç®Kú.Ñ4_ÌÉ1£uf†›æ å,â(׫•ï/ôïûOj÷8BË †0k¨•H ‡Üø®n|wMhb:3bôøïRý,A,üUBCç§ÃEýß.ã»—ñÝ~Aó¢¡01VE"€ºlôt©NEYC!²…‰_ÍUÓo¤±#x"€0ã|~k|øªu‡`TYí •†3UBåZ‘Zo¦ØDÎ"!-Á3Ÿv™Ö^¼Àë³:\’I>D#Š†Öÿb\Ž³æè ë˜9iì¥ ü™èÇd¤®…ùœÙïù¡€‘ß÷93ò]Óp®ß«¶ðCýôšf|×5Íøn¹&- ³Qf´cᮬªÖúy»WŸ£-Ä8ˆÐÆá—V¤‘åFwÓÛP‰cÙ&¼áfw§TðÄáF7»CìP?;²ÛÝ\ÝhW™„„ª]¾à$ ‘9 ô±£Y ³„rÏÌRR³fnm·ƒ¨YêÓZ¶I³õ—Þ>¬û§ÛíÖzç<[ÚR؇½ŸÃÒ¦Ùl\Ù“]( 줿Ïû¡´Û’öŽ÷B¡ÄGÖ}d`é!Ón[wÍé6ØðÑk/Ϲ ‡aýŸ³2¬ïŠúÈÀÚCF¯ûg©Œç؆Â]pPÕG³öád¸  ÃÈ06@¦ï܆#\€M8ÞÏåÏ• #È1@¦ï؆ }dÂ2¡Ìÿ(/—Þ6r ßõ+xÌV"§9|A€ÈÉaÁæ0· ɳ(XÈî¿ßæ Ý¥Á€!ºÈêšo¤q)™d‚&€L¼ “€L–Û3ÉrT2 È$M&™„dø)¦ÈUdÈj2]ÞÆÕÓ#N2Y“ÉšŒ¾Åqš mÃçÕÿç(2U¬Qœ&ÃkE¦¬åÙ.ÏA—QÈP½ôz€€ i2¤ÉpvE¦¬Õ¥4¹»#dT˜ÈÔ(ÛÂ_Ê€Ò™.ÏA—Q šL2M¶m©É„"}ÖdºÜÝ‘L2InO@&ÉQÈD 5™dâ™ d²&“LÖd2É@&i2Èd$ã­&ãØÎD‘©â6ªžìQx­ÈðZ’òÄqeÒdx-ÉðR‘é²mËF¦.¾”¬+0jö–† —KùñÛª³pìzHO]j:¤éÐ!¤ÃFüµ¡ô.ÚÚÞÜS+ISyãN{*£á±µè‡¼ô²ºµô~è¦}Rýp­£}í‡ãt•…û.ûaS*`ß>mý°Û­bUOö([”º—QªÜ£ÈÁ²Ž(N‘©ýp„qŠL;ÝâÔ8t«È4Y¸™Öòz’Û È5i2µJ]’ir÷ž.Èø΋~8x ã5dÈ&C@F—ýpÄQÛQ£f 3™Y“™Œ,ûáˆ5™d¢&L2A“ @&^I@&ËíÈd9*™d’&“€LB2­áµ([ìj?ì†UnãÚé'™¬ÉdMF —ýpÄÙ†“ì‡#Ì$£8M¦@©K2MîÞî‚ ªdHöÃaHš i2µ}Rdš,Ü‘Œ2*Ì djÕ{”­J]‘©r÷öd šL2a¯â ³À¡ÏšL•…;’‰@&Éí È$9*™d¢&L¼ “LÖd2ÉšL2È$M&™ŒdZËkqJìÛk?ìv«ØFµ“-J-€R—dšÜ½-’i ¯G™™Ú‡á¤È´ÓÇŒ8d§À4Y˜#0[ÿ'<°©zHPÊŠB:­ò-‘ý°8È~Èv[?<¼7/_ÞÝýñÆ™W¯ŽoîÌΚ/»ã²;,‹5Î,ü‡åÁ¸µµZþÙ^¹Ìÿ¿ ';›åÛî…ùmùº{»ìÞ¾c#éî›»rþ¥é”ËU[zÞt¾Ñ4Îû`­Þ4Üh:§½M×Lã¦å“®™¦M¹kYíFåMíÌïÊ+¦ÞÞfê3µ×LݦÁï“¿ò–âBq›i¹Q9ççMéFSö4ç+—ã'*sëqÙýçë¿ÏO÷çbýú|¾øëó'óáp<ϧoæãaù÷ÇgsxÿåéûýùéôÝŽÇÓ?æÃfm¸ º8E“øë_(„òÜ |ó>Ö|‡?ï g¶F¤uõÉRns,îp6ðÃiùù‹' ?gö¹ß>g×kPϨŸeK$>·|Ú½8=Ö uÔïë,Wf­/ù;Ÿ°ûDS=aøé*Á¬¿þ`VÒZ endstream endobj 29 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 30 0 obj[832 0 R] endobj 31 0 obj<>stream H‰¤—mo¹ÇßëSð¥\Ä«%9|jsb'W¤@pîY@[$A Èk[­-ÒúÒܧïûÄï*Îõ€s4¢8þ8œùsñz_o®WëZ¼|¹x]׫õmu%>,–»ñi±üöP‰ÅÅêf³]Õ›ÝV,ÎÎvÿd°…Ó—¶ÐFXc…W²ÐPñéÕ«³7çb¶øå\,ÞŸ—"Y¥¸™I±Á¯ÿz‰Ÿ³³ål±\–BŠå5Ž.×ÿ|Å?by²Œÿþ¿Ú£Q” ?–í'|^x) ¥J-–÷³¹8Yþ;ú“¿SüaYBôš>ªèZ©Â}^Íæï¶uu'>*ŒüýÅ;qVm×·÷«ý­£'áj:˜vvZîírYŸXX¡A]aľš]ÏÞ¾Çm§?‹‹øýù»78½¥C·£µ}´:­7¶kYHBÚöÏ››Ç}%äŸÛ¨U¶}©ûØuÀ¶¡_l¶7»í Ýç) Aú8 \0Mû0'RÎW'§r^×Õ~+N>-ÿð-JºE™m1¤ˆ í\»Cd×î?µç —õí¹ê™"Õ5þß狪Q®ÍÙ&2 Àš?Ì_NNͼÙÞb)?群Š¾Ž1T)éæ/Ú„œž¾áÓyʦ˜‹ûjuÀ3>ˆC½Ú×bµ½õí~÷xsûðX‹Ýµ8 ¯» y8.OKqŠ9bÒqV7Õá…øº©oqV%ÖûÇõfu'®6××Õ³¾Â¯Wuœ—0C!!³˜>íq‰äP¬0ëv_5z«±f|ù&vÛõî¾;¡äÊ îßiëk®sWˆŸw{Œcƒ‘Ö_wâa¿[㮃>ï·›õª®ÇY¡hý¼™Í?ÎIZ\>¬¶}fhšOoO Uʃ‰å¢KC,ŸßªíÕ"~úµZÿ–>ücµ©'¦/º›±¬ÔV? àãIs„Öh±ÃƒÜgg:½yó½Í½eYÅ Lì×NïW ûµcË)£ž,÷Q)u›Ãá³ë°¹¼«WÛj÷x¸ûVLÕ7‘mb>‡3 dé†NÒy—ËÎz¬AeáÚ?©¾“1{ðÙ ƒÝðèDƒMC~gpÂíw§bú¤ï•Å®eŸÌÎ@úébÚ¨á,C⺔Ñ.d)ÓT®+ñ°j;Æø¹éñŽqš·Œ¶…KÝ·Œô Pt” OÎiS8´Ò¿þrþöò›ÂT·0£+rïʆÂ+ô­£²ÑÄ·|ZŽÊŸêÑäºöÈNÙ‰lHâJõWñoâ$O5Þ£×¹w>á¤Cx¹’óªŸÅ¬uiCø¾Ëðãy¦%Ä¢$Óbχo'RÏï¿ìî6¿ÇŽTÕ_O”šWÕVðÿ6\¼š)'4ZÔ],`ñÄiÊOíTÊ#úDu[à[EÕ»Á N~ŽÚ¤}*í¡¡åzZ©i˜ÿE4Ûß ”÷›ßª¬¥î¶w •À®y„‚úC­#2i[Xôüï?©),z²k4TzÔÎ?qÛH¬fÿ) ¹‰R±—é;…R²/ØBii‡ÂbÔžC)õ])Q˜J“’¼¯´7kÕÄ\_ ý\¥ËH—x1&¦æƒþiyobÂf¥ÛA,LhHã£ãñÑüDÆuK¯VÚDucµlQv‡óeuÀK¸ÛÑ&ò‰“îZàj˜l0"Ï¢*{!:¡6væ€ (I#8:Ødû²£ûšYZa¡ÌEÖ›U½ª¿=TGÀ¹g-Ðâ œýkùv ŠÂúm'©ŒvXÆGó¼×éq`Æ’)Šßîx÷ÕÃnŸõ&¾0Ç’*Œ²9šIhùNgã •ø©y¼«Ïyí‡BÆkÉK¼ îUózkW˜O=Ôx;iÒ\v7 »k^úQ6O#Ãr½9vi1,öñý{ÍWÁ™’n,¿x$¡­¦‡j=µaudÃ}[פ­£ø.Û0Öë>¶Wéõw%ÚÝöLœm]ÙHä™^š^=KÅ0ÉôñÑ.ÓÇGóí÷´fû}ÕcT¡€ï¯êô·ûÝãÍíÃc}ìôáÿ)¦ Á`_mnÛ?¨àÀgñ6Œ” å]ÑÝv‡â‡ô§fpªeŽOm[f38Ñ1Çg>&æ‡â¦%ñ”ä¶.Jî‘Gaî×ÿÈCÂB|HH5¸\þéˆïðC¾Ë®„ã¾Çå’?ÂÂøxè{Hl¬“‹ÀóYw¯§¨ÃqÖúy¶Î%JEtyÜãøslGçð±©=<Çxêyóu«(|•içž÷æOÄ£ÐñÒùàÇ2†”Æ wï?nÈÆ©úvÂû$VLÒ¦‡Ð–y~YŠõ!9,…8¬·³¨¶Ð±õ&©ûÄ‹W°±YÜ%Û©dËÜ4E7ŠE5šXx[fvôncîAúy4±™ÄÅpÄÖm›`L7}învÛ,×÷…ŠÑ*Rð÷«.`°”…ä_G­ž›ñ"â;ÈSûüÇ>®Ã{]ëÑÝ°TfÇPÑ–>·U ÿ} -îM#5ì1ÆÛXîÓîSpíâÒà«|Ú™*c9vez´Ý'óÌ•ÍV¢l2‰lXwv3¬[K[:ª€ÎnÇC69-#WeÀìÈb ñ<‡Ÿ‡x|™·~Xw¶ÌbÁ–Obñ±ûd³ûñMb‰M0‹%Ê,4 —aXwvÆ-ÂmÂeÙä,E¸ ™sA“p†ugg\b)!±HÊeÙä,M¹`AÉ~­–nTwfNE3*šQÑ”ŠæT ¥‚·;ûµaPºQÝ™9`L€1ÊÄp&–2±„‰eL,eb ˘XÆÄR&–3ñ”‰'L†,¾æ±ýbá9£L°ŒKÁðœYÆQÆYæcá!ž3Ê$ˤ” ÏÛY&P&Xæcá!ž3Ê4Ë”” Ï™e eŠe>v±ðœ÷2þC™÷ÕÖÌ2-eeeüca Ïy/ã'ʼ¯¶f”™3Êø±—y_{_ÞŽ ÏeŒeLʆçí(ãç^æ}í}y;F,±ðœQf°ŒIÁp†ÃP†Ž…C,´ðQF(Bá Ç@J8>‘pP‘,#p„#P†ŽƒCtðQFÂàG¢ ‡(8¨àü±Œ 8Á!ŽF8>N1pÒÀsÜˤ8ÅÀ)N8iàü8ÅÀI§¡LŠS œbà„“ÎS œ4ðQF œbà' œ4p~ œbà¤3XF œbà' œ4p~ œbà¤çˆ2bà§8aà¤ócà' œÍ2bà§8aà¤ócà <ǽL‰K œbà„“®K \4p(Sbà—¸`à¢ëcà æD™kFy{µ5'Ž¡‘¯Ù°=öcÎO™!eË –RfH“2†2Æ2ãSÆ¥Œ³L°ŒK—2.eeœeüS&¥L²L²LJ™”2!ee‚eòS¦¤L±L³LI™’2%e eŠeJË?–9`äkÜË4ò³ýÓR¦QFæ§ïc–9`äqÀÈÛ«­eùš Û{|ú>ƤŒ±Œ±ŒIc™ƒF¾æ}ûdû”Rf°Œ³Ì2CÊ )3Pf°Ìø” ),,R&¤ŒKGg™ø”I)“,S,“R&¥LJ™D™d™ü”i)Ó,Ó,ÓR¦¥LI™B™b™Ö2çeN˜xœ0ñöjkF™“¾fÃö^æüi™“¾æ½Ì o¯¶f”9iàk®ØÖ`~û¾Æ$1Í`“4&iLÒØõ}mTÁãtiãlãlãÒÆ¥Í6ƒmÛ(ƒÇÒ&Ø&ÿ£½ìzí¶Š0|¿ž„ Û³¾F*¹hZ!Š@9R‘*„JHŠD¥EBü{ÆÞ¶×z^'¡\TUÔŒfÏšw?ç¬ø1ÙaS„M6…l Ù¨§¥ ›F6lš°i¦ ›J6•lT„Óâ†"lÙ¸°qaãÂÆÉÆÉæbÂ&&l4a£ ›˜°‰ ›˜pÔ#£ ÛE…MTبÂF6Qa6Qá¨G6F¶‹ ›¸°Ñ….lâÂ&.lâÂQƒ eØ.2l"ÃF6Ê°‰ ›È°‰ G 6´a»Ø°>kÞn5ØІMlØĆMl8j°¡c÷#Í)´{ê°Q‡MtØD‡Mt8j°¡c÷–&Md“èÉ>œÄ‡“ø°‰G 6bì~¤™É&Qˆ…8‰'â$BõÈ&ш±û‘Æ„ 8ш“q#NbÄQl•»i’°¡'*q%N¢ÄQ§Æ>Øœmçô™¦:q¢'qâ$Nái2Ùœmçô™¦ Jq¢÷®5ÙTaSɦ’M½°qaC+N´â$VœÄŠ#<Ù4²idãÊ&Od“©Å™ZœE‹³hqÔ`õȦ·Ógš…l2½8Ó‹³xq/Žð`“éŽíœ>Ó˜°¡gzq/ÎâÅQ“ ½¸·Ógš,lB„‡2½¸wí¨É& zqo;§Ï4EØÔõÚ莻o/ŽšlèŽíœ>Ó4aÓȆ^Ü»vÔdS… ½¸·Óg'›2M¡÷î¾M¼8j²¡÷¶súHSf²‰zdSèŽkG 6‘l ½¸·ÓgšEØÙЋ{wß&^5Øzqo;§Ï4IØ$²¡÷®5Ù˜°¡÷¶súL“…M!zqïîÛÄ‹£&zqo;§Ï4âÅQƒ ½¸wí¨É¦zqo;§Ï4âÅÅɆ^Ü»û6ñâ¨É†^ÜÛÎé#M/ŽzdSéŽkGM6.lèŽíœ>Óˆ×l*½¸w÷4âÅQƒM¥÷¶súL#^5ØЋ{׎l"-ØTzqo;§Ï4âÅ5“ ½¸w÷mâÅU¼¸Ò‹+½¸^¼¸ŠG 6ôâÞµ£&ñâJ/®ôâzñâ*^\ÙЋ{wß&^\Å‹+½¸Ò‹ëÅ‹«xqÔ`ãÏJŽsa#^\Å‹+½¸Ò‹ëÅ‹›xq›Á&ÊyHÓ»mM¼¸‰7zq£·‹7ñâ¨G6QŽlz׎lšxq£7zq»xq/n‰lÙ$a#^ÜÄ‹½¸Ñ‹ÛÅ‹›xq£G 6âÅM¼¸‰7zq£·‹7ñâF/ŽlÄ‹›xq/nôâF/n/nâÅ^%؈7ñâ&^ÜèŽíœ>Óˆ;½8Ê‘‹7ñâ&^ÜèÅ^Ü.^ìâÅN/ŽrdãâÅ.^ìâÅN/vz±_¼ØÅ‹^%؈»x±‹;½ØéÅ~ñb/vzq”`#^ìâÅ.^ìôb§ûÅ‹]¼ØéÅQ‚x±‹»x±Ó‹^ì/vñb§G 6âÅ.^ìâÅN/vz±_¼ØÅ‹^%؈»x±‹;½ØéÅ®^œ'zñZlÖr`3tí¨ÉF¼ØéÅ/æîGzqžàÅk9ièÅÃô–f­G6k=°ÚÎé3 ##6ôâ5­# ¼xh;§Ï4IØd²Éd“…M6IØ$²Id£^œ§"l Ù²)¦›,l2Ùd²Q/ÎS6Q·þ‰<5²jdÕ„Õ9½§«Â® »Jv•ìÔ›óîÚÆ´NvNv.ìÎé=MvìÙ»·4ó4°Š43¼y-GV3½y˜~¤™éÍk=²™áÍÜýH³Í o^Ë‘ÍLo¦÷4ôæµÙÌðfî~¤1asšq{œŸ' 8&pŒpÎvK?ód¡sºñ>‘‰' ž,x’àIÄs¶ÏÓ•O>UøTò©Â§Ÿ"| ùáS.|šði§‘O>MøTáSɧ Ÿváãä³Lä³@ ‡ö¾Ï… '>®|–™|–™|(ôж£Ÿ… ½Ö#ŸÞ>O>Ë"|LøùP¢‡ñ=%z­G>½ÝÇÏYøáSȧŸ,|²ðÉä“…O¾ð©Â§ ŸJ>UøTáS„O!Ÿ"|ªðYâáVÖyýßÛ¨ãçó˜_?p¶·ê?nßÜž¿úÛ×ß½¹òÉó/^þú³{šî/^|úÙËûíùËWÓýå«û´ýwõò··x4åû¿ïótÿâ>ß¿?¿¹tšïq-þ8Ýÿr¿-K}º=z²øâOßÜæíwu…óøÛy@<£Êd÷§··ŸýáçOßÞ>z|ëç¿;çóï×Õu{AÛWGä8æ»çÇî_lÔÓýéõý£úú#FŒ?ÿçC9æŸ.ÇúÖ™ã/Hò¯YzË–mI{ß’/L)qÅ›°ƒ?ðóûâG¹.˜Þ»`Y (”ðãv|‡¿¿}óËìXú/Õ’Óc<¯¿†Û£6 Æ'Ð_Åò¸Âq«âRMq©¦¸T[º—ËŸ¦=Þšl¹?}wœßã}2MK}ñát6þÄ—²½r•²Ÿ·$>Þý}?gG4Ï?Â%õͤÿ^ð믱œ¾|äð|¹É¹ÙJöz“Ì-Î-ž#ÿëÇÁ×Û³¯}Ïíù?o0"|ð§úÓd8n/R|èöÆùò£ý±7ÇËÍ]@¯8@?¼~º>ž=žÛ3s-SÛÛ3s­ç£ÞúñFóx Ô­hÛCb Q.c³¬wsÞûýð}ññÍCö¬"Èöº9œµ÷Ï]é3J<· ÛsâøRx|ÃÄãøŒo`òx×ìgýc×6{qaâÂÄÉä\üˆ1L¢“Çkæd&“}úˆ%˜D &G8žLlˆ¯”ãGM<Úç&c,$5ˆý~6B$‰7Éñ£I€<Úç¦DIx$á‘„GeRÈ£BeŒ‘…GYx„¨àQÉ£ J•<ªð¨Â£ *<|âäáÂÃÉÃÇMx4áÑ„‡!âepà±¾)}¼8ö£öö±iŸ=‚D QƒÇÑNpˆdÇãpÔÛäc&¨Áãè÷³ÂÀÃÈ摇‘‡ &cÐO“øi?Mâ§Iü4 ~šè§Q’ý4~šÄO“øi?MðÓtHbN[ j”BAý/™õ’9DQtGŽ’ ‹êýOó®fÎÀˆŒ;°OW vµ¨@=ßžËø¹ŠuŒšD‰ÚO¢vµƒ¨Dý{w®ÚD‘:Fm¢HíŠÔ¤v µ©çÛs™:WQ¦ŽQ›(SûÉÔ¦v0µƒ©ï~×°41…ꥉ)TM¡j€ªª¨žoÏeîs¥ê¥‰)Uí¤ªªª¨ú÷î\£iÅ굉bÕ«¬°jÀêùö\FVQ®ŽQ›(WMW \5pÕ°†k뵉‚Õ¬°Àjëùö\&ÏU”¬cÔ&JV;Éj «¬²þ½;×(m¢h£6Q´š¢Õ€VZ h=ßþ.ã×±Š+[Ç(M\Ùê'[lu°ÕÁÖ¿wç·4q…륉+\]áꀫ®¸žoÏeú¹ŠÒuŒÚDéê']tuÐÕA׿wç¦M¯cÔ&ŠWW¼:ðêÀ«¯çÛs™8W‰ŸÏñ?ò™¥8ëÊÙu{ïvòÖÁ[o¼ýÛk®9yªÁU¸ẠwÝÞË€¸â:ˆ+¯÷‰ÏQêßw>K  Ýu{ïë:¬ë°®¼>÷¹´O¨xâ ﺽö 7@Þyåõ¹OC…o¾¡ð]·÷>°oÀ¾ûÊësŸŽ> à€C¼nï} à€€–×ç>Ž>ªà€‚C¼nï}á„–×ç>>Šá†C1¼nï} á€†–×ç>…>* CE¼nï}€âŠ(–׿ûäGû¤Â8ãT¯ÛkŸ„Œ2NÈX^ŸûÜÚ'UÇ §êxÝÞûÈ '€,¯Ï}ú(’HNEòº½÷’JN(Y^Ÿûú¨”RN•òº½÷–XN`Y^Ÿû8ú(˜`Nóº½÷˜bNˆY^Ÿû$ú¨šjNUóº½÷œpNÀY^Ÿûú(žxNÅóº½÷žzNèY^ÿîS—ö)tAÐ¥‚^·×>D]@´¼>÷¹µO)¤ .…ôº½÷¤ ’.HZ^ŸûtôQM4]ªéu{ïP@]µ¼>÷1ôQTP]Šêu{ïUT]Pµ¼>÷ ôQI$]*邤 x.เçŠWø¹ÔÏ?—ú¹àç‚Ÿ ~.ø¹èçöQ??óÑçÏ>ëø÷½}{ï??ó¹ŽòYŸë(ŸŸ9Ï Êçu¼×Q>?ó™ç;ëíÛõë¬ÓP§i†:M먞ÛGõüÏÛ7êÏíÓQ§kŽ:]ëtÔé¨Óp[ëÐÎíã¨ãZÇQǵŽ£Ž¡ŽiCÒ¹}uBëê„Ö Ô Ô‰ÜÖ:”sûê”Ö)Ô)­S¨“¨“Z'Q‡pn—Âù™Ï:—Ây¯ç.…ó3KgÖÛR碛ۥn~æ³Î¥n^Çû9us»ÔÍßù¼­lÖÇç: ušÖi¨Ó´NC†:í·µÕÜ.CÓ:†:¦u u:êt­ÓQ‡hn—£ŽkG×:Ž:Ž:þƒÛZ‡fnW¢NjDÔ:‰::¡uuHævê”Ö)Ô)­S¨S¨S?¸­u(æv«˜Ÿù·Î÷û·Šy¯çns»UÌßù¼ýæû¼~¬£`~æ>ÏBðò˜µÀ¼Î÷ƒ󘵊yŸg!ˆyÌZd^çûA˜¹% ©™×ññyê0ó˜¥Pš×ùz°CÍc–B]Õ¼ŽÏ£P‡šÇ,…:ؼÎ÷ƒps¿´PW7¯ããó,7Y Îë|?9Y ©œ×ññy‚œÇ¬…@çu¾„{G!µó:>>ÏB°ó˜µð¼Î÷ƒÐó˜µêyŸg!èyÌZ|^çûAø¹ ©Ÿ×ññy‚ŸÇ¬…èu¾„ Ç¬…TÐëøø< =f)d ô:_ m-djèu||… †³2 zï¡è1K!SE¯ããó,EY Ñë|?Gmêhƒ£íåhƒ£Ç¬…éu¾„¤ ’6•´AÒö’´AÒcÖB ô:ßÂÒK›ZÚ`i{YÚ`é1k!`zÖ¬…¶¦÷9®k¡—¦š³sÏã‹ë|=èð´mOÿ.¤ž6xÚ_žvxzÌRhÌ% ]ZÈ!j¿´«¨¢ö—¨¢³j(ÔP¦ö[ ¹šÚaj™Úaj‡©Ç¬…: ÁÔÞQHMí0µ¿Lí0µÃÔcÖBŽB0µ ©©¦ö—©¦v˜zÌZ(P¦ö@!5µÃÔþ2µÃÔSY  ÁÔž(¤¦v˜Ú_¦˜:`ê1K¡øh¡€©ã£…BM0u¼L0uÀÔϲЭ…¦ŽK …šzŸg!˜:`ê1k¡†B0u4RSL/SL0õ˜µ¡L…ÔÔSÇËÔSL=f-ä(S‡£š:`êx™:`ꀩǬ……`êRSL/SL0õ˜µP¡L…Bjꀩãeê„©¦³ÊK %L-”jê„©óeê„©¦³Ê[ ­û{¡[ ¥š:ajy~.S'L=f-ÔQ¦Î†Bjê„©óeê„©¦³2‚©ÓPHM0u¾L0uÂÔcÖBB0u: ©©¦Î—©¦N˜zÌZ¦N˜:aêTS'L/SL=æëþûg–bcŒ½î¯ æN˜;ÕÜ s×ËÜuýø}. s̽Î÷‚¿÷÷‚0w©¹ æ–ççBí(öï;k1˜»`îu/s—š»`ny~.ÔQæ.˜»`îu/s—š»`ny~.ä(sÌ]0÷º¿‚¹KÍ]0· =ó­×ÏBúü\è–BÏÜd!5÷>ßÞR¨ÔÜÏçu5·>?j(ÔP¨¡PC¡†B …šj(Ô^… … … … … …: u-ÔQÈ^…………………\ 9 ù«P¢P¢P¢P¢P¢P Ph¡@¡|*******-T(T,t]ZèRs?³ºÔÜûþZèRs?óYèRsëós¡[ ]jîg–B—š{ßß ©¹ŸùÖëRHžŸ uê(ÔQ¨£PG¡†BM 5ê¯B†B†B†B†B†B†B¦… …ìU(P(P(P(P(PÈQȵ£P¼ % % % % % % ¥JJº?ZèVc?³ºÕØûþ^¨P¨´šZŸŸ ©©ŸY Ýjê}¾RS?³óíz_ÝDu¿5$jHôŸìzÙ‘ã8Â(¼çSôhª*"/DykØ î-Y·…DÃàÂ~{guWæÄj7‰¨ÊÌþÈaˆ4ªýШ>×MntÀˆUí‡ÃÈaä0r9ŒF#‡³Ú £ £ £ £ £££#vµ F F F F F F F F k?F£€QÀ(`ÔaÔaÔat+kCYÊÚPÖ†²6”µ¡¬ÇZŒ im·´6¤µ!­ imHëùþºÒz¬ÅhÎÓþ4B[ÚÚÐÖ†¶6´µ¡­ÇZ×v‹kC\âÚ׆¸6ĵ!®ÇZP×v«kC]êÚP׆º¶U×ãà×Z*Œ×vËkC^òÚ׆¼¶•×××c­Fèk»õµ¡¯ }mèkC_[À}=Öj„À¶[`;ÛØŽÀv¶ïjäì±#Gaû­°…í(lGa; Û5röX‹‘#±ý–ØŽÄv$¶#±‰í#;in0ºæi¡±íhlGc{Ñøסë\®yÚŸFˆlGd;"ÛÙÞ`TaTaTat«lGe;*ÛQÙŽÊö££££[fdvAfdvAf— F£€Q¨Q¹uvAgtvAgÏùºÑ®Fc-F=çi¡³ :» ³ :»˜•C :{ÎÓþ4Bguä/ :{Î׉#‡:{ÎÓþ4BgµËÐÙs¾N¬0*0BgÏyÚŸFèì±V#töœ¯ŒŒÐÙsžö§:{¬Õ=çëÄ€Q‡:{ÎÓþ0ªèì±£ŠÎžóybÝÔh¬Å¨¢³ç<í£ŠÎ®‡Utöœ¯5ª»Utöœ§ýi„Îk5BgÏù:Ñ`d0BgÏyÚŸFèì±V#töœ¯ ŒFèì9OûÓ=Öj„Ξóu":{¬Õ=çi¡³ÇZÐÙs¾NDg×#töœ§ýi„Îk5BgÏù:=Öj„Ξó´?Œ:{¬Å¨¡³ç|žØÐÙmS£†Îžó´?Œ:{ü F =çëDtöX‹QCgÏyÚŸFèì±V#töœ¯ÑÙ ÝÐÙ ÝnÝÐÙc­Fèì9_'¢³:»¡³:»Ý:»¡³ÇZÐÙs¾NDg7tvCg7tv»uvCgµÅ7›ç;ŒÐÙ ÝÐÙ ÝnÝÑÙc-Fc]òæ|žØÑÙ ÝÐÙ ÝoÝÑÙc-FýP£9_7BgwtvGgwtv¿uvGgµŒ FèìŽÎîèìŽÎî·ÎîèìŽÎîFèìŽÎîèìŽÎîèì~ëìŽÎîèì±V#tvGgwtvGgwtv¿uvGgwtvï0BgwtvGgwtvGg÷[gwtvGgµ¡³;:»£³;:»£³û­³èìØÕ(ÐÙÎtv ³·Îtv ³ãP£9_'¢³èì9OûÓèìp¡³èì@g:;nèì@gµ¡³èì@g:;nèì@gGƒ:;ÐÙÎtv ³ãÖÙÎtöX«:;ÐÙÎtv ³ãÖÙÎíì²m0Bg:;ÐÙÎtv°³Ë¦}®]n´‹Ñš_'®÷¯Ÿ ël´æiÿ7ÒÎ>×jdb´æëDíìsm]çGÕ÷MnÄÎ.›ÃÈaä0r9Œ F#ƒ;»lFFFFFFFFìì²5µóÕõĹV³³³ëýuÃà à à CvxÙF÷|ãÀa‡áõþºQ‡a‡a‡a>ÿy£}Kf>×b¶k‡¯ùò5Î_Òus!—¿fïûzC%,?l°uÊ¡çoeMÃ,±fs׃®® O ˦ §DQ y¸Bâuj¼åõÓ\< < =šz4õhðx×a $õõ±×¼ªJ…J£JW•ÈT"Ô¡Ò¡ÒU¥C¥CÅ6Qˬ2–¢rçaóåu™€J¨J¨J>ûu™]TìȪò®‹ìKå¸Ö¢r®ó»»ªäs_1U1U1¨˜ªØR9®›‹Ê¹–£Š«Š\¥@E.âPq¨¸ª8Tœ*UUªªT¨TU©P©ç·GšU¹Æiw¨4Uéùá•žjP¿é‡ÎE寽UBUBU*¡*•€JW•€J@Å7Qñ==ìûTÙ¯u:h¾8/2Ö¢2ÖžßÝT%ŸûºÈ!*c™UƲÊUQ™/¯Ëª2>IèÛ¢’Ï~]ÆTÅóÃÏT *¦*£JQ•Q˜ù7n¬•åš¯ã \ \\] \ ¿…ÆŸÚùÀó;{ÜgüïïºïÊœvþêt^;«ì*¼ñ³åÂëm^ÿwz¼wÚXÖÜxiìéÍ9;çSså­k<3n¬Ž\yïy¯³æ»ó*WË­ñ³ôÒ‡xMÓÞ‡^åPËD,s¨ÈÕsiœEætí|PÄUÄUÄ!â"â111ˆ8EŠŠÈÃ"¯sZ.¾÷{”I²æbR`RhÒÔ¤©IƒI»LZ.¾÷ËÔ‰ÒRñ¥•F•®*‘¨D>¨C¥C¥«J‡J‡ÊU]ó"¯¤[_Å·¶»Æó°ùòºL@%T%T%Ÿ‹o]æȪò®‹ìK%_žg•9^{ïT1U1U1¨˜ªØRÉÅ÷>?DeŽÓîPqU‘«¨ÈE*W‡ŠS¥ªJU• •ª**¯¤{ŸU¹Æiw¨4Uéùá•žjPy%]ž‹Ê5^{7ª„ª„ªTBU*•®*•€ÊU^ó2gÔ­‡¯â{Ç*¾uÐ|q^äJº<÷üî¦*ùÜ\|ë"‡¨\Å÷¾Ý!*óåu™CU^Å—ß•|v.¾uÏ;T<dP1¨˜ªTŒ*EU^E÷þ|Ë5_Ǹ¸¸º¸~ ½Š¯µo¶\|9wžÅ·ŸûœÅ÷öý¾þñë矿>¾ýöíû¯_?ÿüû/ÿzüøöñËׯ_þ|üôöéÿþåñöÏÏ¿ýñ×ç¯|ùëñöñã—ÿ>~Ü£ŸÙ9¾~öv´GßÇ×m‡œtu+Ÿ¾ûîãß~x|xûÇ·¿ÿ°=ž«íñÛ‡Ÿ>¼}ú´?öǧ_?lßlÛÖŸ~þÿ€u‡Ð[!å † ç!„µ X¨[š+„äri(*h†dL2€šÒ *÷úBR¸4òÓ   Vé‚í2Ùf[k@zÆFP À¸éq árõºL ö endstream endobj 32 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 33 0 obj<>stream H‰¤WÛnÛH}0ÿPT`µØÞI€±ãÙõƱ€Í ZjIÜH¤†¤ìx¾~«›‘›²–K¬êª:çÔééïi­ÂEïßOÏóp±‘Kx˜Î’=|Î^ö¦wá:ŠÃ£„ Û¯?^~º‚ÑôÏ+˜Þ^Ù ÿgÃzD!Â?ÿóßg£ËÙh:›Ù@a¶ÂOg À—g|YÔV¿ÿVJñ?ÄføÖ.ßÑÀ'ŸR˜Ía¶Y0žýOÅ£E¼ ~Ѷ…Šªß2š1â8žŠ¹Y7q.·0gxòÛ»¸”ñb³ ÓïYèä`˜Nù´Nw=©^¾î… \p‚§#¤r´]ßbÙúez§|{uó /»Ó*¿·B/Ïň4Ž%bÎnHÚR7€àé yf—c!*ÏÑúJ`ÿ({J¿Ù¦RVwĺ‹âµúi·¬è½[§¦¾úòƒû1¥V8žP+ÏeÃøëìß}±vA´Q¯“«w´¬]ÖƒïJdˆ@Ï/ñ`q‚ÿÓR;°>ÉUGÎÉ îÂ4Ün³4Œ³•Lá±ÆñxÜÜoçØïÀØo<Ÿç*JäÎ6Q™\è3-e¶H£G™A¾‘°¯Ž—÷/RßÎÃhKà‰ óßÔ:½ç¥&”P<Û§‘UÌšbxŽò <…é Îv2˵„­Œ×ù&k#î~ÆuD» ¬Ë–@W€ Œ¨Ä­¸úÅd§·±“jÜUgy_gõˆßÉ/¹Ì. Œ—G;,0ƒ‘­ûtŒ'T¼ ª—0Ý)OhŽ‡O2Åf,!Á7°;lóh¿•…;ü•¸—u(<j"«ÔÁ©'Ñ8¶£GÑP X%©s1ô}Jõ§Ì7É2ÙNêHìÉÕÆ‚™O«Ñb¼dýBà_ |–5t´§H>«ÈIŒÇÇ6ÔU\ãaýÀB‹ñÏ+ëª ÐÎÞ¬°pÍ°¨Á˜Oœ·‰ž™jÝÎvÁ8'A'M—a-´ì/Ã<œäjÑ©a Ù* dŠæ:ýÞ: ¹ãÇ•Ñ©¨D­#á!¾]þwvmh@`¦ÓÛí$EÀº)ˆqqô/£×+™‡ûPÜsk-S€K“Ãz³?ä°·‹ÃV›‡¬BvCÁ*Œ.a£P›‡ß%ªZž€‘> ƒáb‘â\›[{¤fåù¸âh´ˆò—áQjž^ð`¹K .a£Ý¨D;ÞekSW;ë‹78Ðí"÷q;¡¡c@úö¸M˜W‰ öµÆlrÈ׉òUšì­bM¨O\'hJ[/¥‡æH~\3y¤•Â>MŒÀM¬<ÐDþSà.c p–ßËx™ÊÅ“©¡Â ÓΦ;aƒò¤lG^´k¯PGRË ©EãÈ„£Èì¢eŸpoÇËL/,@FOrH4¨óʥə£`ÁÑ&ˆsIÝ­ÙÀ í×Ðn%ª¶¦~Hc½ýÅzoâ“`Z­¤ìK‘ÖT¤ÿfôP–:I.†jÎÕPßó ®àVd%˜áð¬_f ¦lû}rð—Ûɦ٩™Ýéð„+3à6™>Lb6 „‰OÖ*uš+ŸU©þõÅ&Œ×ÒT?ëçoÇd»O7n”L™ tgC… ¨SŸÄsµÄÚ¹Ä0$Y¿*M:Û“önOî9$èÖV‘m¦¬_BÌT£:]3ƪ0U5 &¢9‘ÙNatlÀÐu nÿÝ ‹äÂ#®];ŽÚm<…Ûƒ,þRÝòÐWDñP/L\F0­ÂH#ûƒu{© 2Åë|6žàùJ…©ºÔµïíôýŠãêt.Ž%¦sèñBÃlC_¹ÙÉQqÜf½ #G'jv2´n²¡1þÐåJ ðX-O1·"" 4œ¿ÍwÇeˆ¦™U o¸Ë  üîËT÷Yð+OÐLYS¼îÉú 8 ¤ðßTÝåÀX8 §xOT‡ò ýci‡ë"-~uLáê-ÜŒéš&= ;ýuнtÚXnB=N=X”?Îæ4Ÿ7rˆ;ü¬¯{š'ì#Ž«Ü¦×#0Ô7dgŽPf½ûèwR)ç2¨¼%IWì[s=µðÈ<› i†Ro,üzš‰ã—&]I¡à~ksR[€:Ð.m>6ê,ïh mèlP EÙÃÀ¯òà»’tÌ÷У•hA!Â*ŸnÊ*î“gŒz•Ö HP‰Ð%îú%$CÃgýKï%„ ŽÍl%»½»ùvæ" >æåqtM„…Á.ï¸.VIºS÷™FÉ2Z^Ðv‡8Z„yT¶`‚ÒãúAó‚¾+Š \‡‹ ´¯$y¢ã§Ñz“k®wÝ–‹D”èl_`ôÝQ=¼•«b‰!ñ*xÎ"œ.xRÆS âÔƳ<ž/ÜÜУƒb½ªt8KTM¿Þdzæ¥e‘â\ ƒv&\cqØ_ÈÂñ„rk·Ç7·(Vv™“C>«1€l´)fÞBüü*°ãäB_!Ž;Áä?ëpGû£¡MÏ<ë^ü™Qý½ö£½Ÿ6É{ÍӤ鞪ÉñÚ=éwÂöTDè+î~þóêúþ©cœè7kÇÁõgqñâ†YüÓÑ5ƒ;f'¨—¸)¸‡›Ü§¢Æûòs«ËBV¼êYýFø”àJ,-«OqËÈ,ÿð¹&x7¡ÃlâzAÐ~n>6äöÔ_s´®^à wÉ{cPÄŽé¿1&õ0¦/†ƒ{ßÝ×uÐ~âÄÞmÂÿ“]¹–ã6…罊ZÁ˵DJä8KÈ 2èôþÈ׶¤ÿx†eIõååáÔÿþ=ÿV}þÎúÇ?ÿõùõûïïaŸ_¿þþýß?Ê'Îäññ‹þ¯ï0Zؽ?ž~çßÙŸùÞW»çïÇg~ç~æöï?mÿ|®çñ÷ÝþñŸ1毧Œßaò”<ÿÃvÖÜßWÝϧœÕ®ûC?/E÷í)ãJKåüWÓþ”1‹ÊÚ_W=?O9>ª2æ]e­çñ»ÊQ6•1ˆÊ˜Eeíï«ŠªŒYTÆ|è碲b»ŠAÅ bP1¨T¨TU©P1Uñ]Å¡âPq¨8T*®*W•¾«t¨t¨t¨t¨4¨´Ÿ&, ,]Ybg °X,–KüM¿W——òÙ\Æ .c—µ¿îz>žoI¸$\R]Öå×[ŽÍe âRuYûû-‡ºŒY\Æ,.k?Ï—º»T¸T¸T¸Tu)E]Æ,.k?ÏÛ] .ƒ‹ÁÅàbp1¸˜º´Ý¥Á¥Á¥Á¥ÁÅáâpq¸4ué»K‡K‡K‡K‡K‡K‡K‡KW—Ü]. —„KÂ%àp ¸¤¸ÔÏæ2q©uYûë®çãç-c—1‹ËÚÏów—Z6—1ˆË˜ÅeíﻊºÔC]Æ,.k?Ï—º»T¸T¸T¸T¸T¸T¸T¸TuñÝÅáâpq¸8\ .ƒ‹«KÛ]\\\\\\\šºì¥[Qº¥[Qº¥[QºcV¤nÕÔ­{êV¤nEêV¤nEêV¤î˜Õ­[µumo]CëZ×к†Ö5´î˜ÅÅ»¦±k{ìb×»†Ø5Äî˜Kè^\Ö~ž/.{íj×P»†Ú5Ô®ÿÏË[*\æ~ž/.³XÓ¾ÏAñÚ¸'ìû_Œž_wokôí/ú§]çÏ ½ÏGÆÚùïÜíüqÝ~~Ûÿ§]çÞ4µÔ÷w}àýÁ÷ûGßïÈÍ1ËûSߟú~9í:ÿÐ÷9öcGB®ýõ?·#!Ç,?šŽ„\ûy>ÿÆãŽò"„äÚß7"$½è¨#$×~žO#ƒ‘Á9¹ö÷ÈÉ1«rríçù4j0j0BT®ý}#¢ÒFˆÊµŸçӨèÃi¹ö÷HË1«Òríçù4J%Œ˜k߈Àô€síçù0j5³5dæÚ_76dæ˜Å¨!3×~ž£VÔhÌbÔ›k߈Øl‡5ÄæÚÏóiTaTa„ä\ûûF$ç˜Õɹöó|9ŒFϵ¿oDx6ƒÂsíçù4j0j0B~®ý}#ò³5!?×~žO£€QÀºö÷ˆÐÖa„]ûy>F #¤èÚß7"E[Â)ºöó|õCÆ,FAºö×AÚ?jÔ¤k?χQ/j4f1êÈÒµ¿oD–vdiG–vd©Ü½È`d0Bœ®ý}#â´#N;â´#NåþëEèÓ1«‘ÃÈaä0r9ŒF¯¢í(Ú1«Qÿ1ÛOì0ê0j0j0j0z5pGYâ\l'ŒF£€QÀèUÍj³YŒÖþºq}¿(a”0J5ŠWg:;ÐÙc£@g:;ÐÙÎtv¼:;ÐÙγ¡³èì@g:;^èì@gYÐÙÎtv ³¯Îtv ³Ç¬Fèì@g:;ÐÙÎŽWg:;ÐÙcV#tv ³èì@gÇ«³èì1«:;ÐÙÎtv ³ãÕÙ‰ÎNtö˜Å(ÑÙ‰ÎNtv¢³¯ÎNtv¢³Ç,F‰ÎNtv¢³èì|uv¢³=f5Bg':;ÑÙ‰ÎNtv¾:;Ñىγ¡³èìDg':;_èìDggƒ:{}¿èìDgËý׋Ðىγ¡³èìDg':;_èìDgYÐÙ‰ÎNtv¢³ììúÑÎ>çÝèœw£mÿ½qûþû¢úÑÎ>çÝhÛÏó?x‘vö9‡¼¨ˆÑ¶¿oÔÎ>çº?š~_Bϧ‘ÁÈ`d02Œ*Œ*Œ*ŒØÙõã0r9ŒF#‡‘ÃÈaÄήŸ£1Çúç¬fffóûû…† † † †ìðú‰ón/ †óûûEÀaÀp¿ÿû¢ã³™ýõÅìÐßö×ëûûE £„‘v¸Þ½èP£C;üœÅèÐß¾¿^th‡Ÿ³Úázÿõ¢ £ £ £ £ªF‡vø9‹ÑQ`T_F#ƒ‘ÁÈ`d02Œ Fö2j0j0j0j0j0r9ŒFíeÔaÔaÔaÔaÔaÔaÔaÔaÔ_F £„QÂ(a”0 ŒFI£òQ£¢~ÎbT´Ã·ï¯íðs£¢®÷_/*jTV‡_7h‡oûûÆ¢FE;üœÅhíçù4ª0Z~}QaTaTaTaTa´:¼è÷óE#‡‘ÃÈaä02Œ Fþ2j0j0j0j0j0j0j0j0j/£€QÀ(`0 uuuÅË(a”0J%ŒF £„QÂ(iT5ª‡UtxE‡¯ï¯UtxE‡¯ý<Fµ¨Q-jTÑá¾¾/ÏŸ£Š_ûy> F#txE‡¯ïï¡Ã+:|íçù4r9ŒÐá¾¾/ÏŸW#tøÚÏóiÔaÔa„î®èîŠî®èìŠÎ^ûy>ÐÙ5`„ήèìŠÎ®èìŠÎ^ûy>Œ m52t¶¡³ ]ÑÙç\ö¥Ù«³ m‡:ÛÐÙ†Î6tö9ý^ŒìÕنζ #t¶¡³ mèìs–½:ÛÐÙf0Bg:ÛÐÙ†Î>ç¢ß«Ñ«³ m Fè쵿oDg:ûœåE£Wg:Û:ŒÐÙ†Î6t¶¡³Ï¹è÷jôêlCg[ÂmèlCg:ûœåE£Wg;:Û?jäèlGg;:ÛÑÙç\ô{1òWg;:ÛÑÙŽÎvt¶£³}Îò"t¶¿:ÛÑÙŽÎvt¶£³íèìs.ú½½:ÛÑÙŽÎvt¶£³íèìs–¡³ýÕÙŽÎvt¶£³×þ¾íèìk!ß«Ñ«³íèlGg;:ÛÑÙŽÎ>gy:Û_íèlGg;:{íË3«Ñìè¹W#t¶¿:»¡³:»¡³×¾<³µÙÑ÷þ£F Ý^ÝÐÙ ÝÐÙk_žYŒZQ£s.ú½µWg7tvCg7töÚ—gV£ñÛÁö}…ÑÜÏói„Înèì†Î^ûòÌjäç´ìÕhîçù4Bg7tvCg¯}yf5j0j0j0zuvCg7tvCg¯}yf5 ŒF¯ÎîèìŽÎîèìµ/ϬF #töÚÏóaÔÑÙÝÑÙk_žYŒÆ,F½öó|¡³;:»£³×¾<³õ¢F½öó|¡³Çûï‹ŽÎ^ûòÌjd0Bg¯ý<ŸFèì1Wy:{íË3«‘ýöó|¡³Ç¬Fèìµ/ϬFFè쵟çÓ=f5Bg¯}yf5 ¡³×~ž£@gYŒ½öÿg»lzl©­(:ï_q‡0¹¯Ê>>¶%Ä€†A"½(Q·$”^"$ÉåßÇ®/{¯B©÷;íã]ëÞ¾½:œYµ,Œ <{̯ý`TàÙ- £ÏópfaTVeTàÙc~í'#xvËÊž=æáÌÊ(‚<{̯ýdÏnYÁ³Ç<œYÁ³ÇüÚOFðì–•<{ÌÙ•‘ƒ<{̯ýdÏnYÁ³Ç<œYe0‚gùµŸŒàÙ-+#xö˜‡3+£ Fðì1¿öƒQ…g·,Œ*<{ÌÙ…Q]”Q…gùµŒ*<»eaTáÙcÎ,ŒZFž=æ×~2‚g·¬ŒàÙcάŒàÙž]áÙõæٞݲ2‚gy8³2‚gWxv…g×›gWxvËÊž=æáÌÊž]áÙc~í'#xvËʨÎë A²+$»B²+$»R²mQÉîyÔs §q8³òcW8vUÇÖë÷BêØ=)æ:«ð™‡pä™OÏç£Ô¡`ÛÁ'‚OT>|Ô¯[{áÓs–B|è׶øøHʵ->>®|||ø$ðIàC·¶%ƒOŸ2¯Ëà“Á'ƒOŸ >k[*øTð©Ê§‚OŸ>| øЫmU¯îYø¬ë´nU©žïuV•êž…ϪR­—ïuTª{>-Ï|VuêéøQHºgᳪSëõ{¡>|l^Á'‚OŸ>|(Ô¶&ðIà“”OŸ>>>>ôi[||ò¼ÎÁÇÁÇÁÇÁÇÁ‡2mkŸ>Eùð)à“Á'ƒOº´­|Ô¥-,óº >|*øTð©àC‘¶ "ݳðiyæÔ£§ãáh¯|‚zô4¿ÖƒOPîYùÄyJôtø¨£ݳð *Ñzù^ÇÀÇÀÇ”OŸ>|èÐø$ðñy]Ÿ> |ø$ð¡@[Èà“Á'+Ÿ >||||èÏ ø”§ÛøŽž•W×ðºõ øð+àWÀïæ×qy®6Õðë¨~á×ãøQ¨‚_?øµ\¿Z'^¿lYxÅy]„_Ã{¿Žðë¿–Ë÷:|à×Qý:¯Çñ£ü:¯#üZ®ß øÀ¯£Ô_ÃGøu„_Gøµ\¾×qð_Gõë¿ÇBðë¿Žðk¹~/”Á~g¿Žðëqxõ#+øu„_Ëå{ >ðë¨~á×ãøQ~á×~-×o…lQ>¿¶Ù¯ ~=ïu ~mðkƒ_Ëå{ | ~mê׿ÇBðkƒ_üZ®ß Eð_Ûì׿‡:ðkƒ_üZ.ßë$ð_›úµÁ¯Çñ£üÚà׿–ë÷B>ðk›ýz Ù•üÚà׿–Ë÷:|àצ~mðëqü(¿6øµÁ¯åú½PøušýÚà×ãðQ~mðkƒ_Ëå[´*Ÿ¿Nê× ~=Žï…ü:Á¯üZ®ß å“à×iö뿇:ðë¿Nðk¹|¯cà¿Nê× ~=Ž…à× ~à×rý^(ü:Í~à×ãðQ~à× ~-—ïu2øÀ¯“úu‚_ãG!øu‚_ùµž| øÀ§ÓìÓ >=uàÏ þœàϩßþìêÏÇBðç–ó,, þì7vø³ÃŸ}~>‡?Ã{‡?·Šž>~óg‡?;üÙÕŸþ<Ž…àÏ- ‡?ûÍŸþìðg—:ðçqø¨nYùÀŸýæÏvø³«?;üy? ÁŸ[V>ðg¿ù³ÃŸþì²þìðg‡?·p^ùÜüÙáÏvõg‡?;üÙáÏ-+ø³ßü9ß3ü9ÏþœáÏþœáÏ- Ÿ Î7Îðç ÎêÏþœáÏþܲðÉðç|óç Îðç<ûs†?gøs†?·¬|àÏùæÏþœáÏYý9ß3ü9ß[V>ðç|óç Îðç<ûó†3+øsvð?ç›?gøs†?gõç Îðç nYùÀŸóÍŸ3ü9ßËìÏþœáÏþܲò?ç›?øs?õç.ðçnYøøs¹ùs?øs™ý¹ÀŸ ü¹eÓ±à¹ÆÇê›=Øs=µç{.°çŸuGÀ9Ç×r²;¸s™Ý¹À ܹeÓ±²IÊæfÎæ\`ÎE͹Àœ ̹¸²q°qesóæo.ðæ2{s7xs˦ceS”ÍÍš+¬¹Âš«Zs…5WXs©ÊÒ|¯å`SáÌ-×ùêìÌcÎ,lZÆXØ\ãcõ͘+Œ¹e“jÌcÎ,lj6Â|¯åd_nYÙHørË+S67[®°å–•Úò‡3+›¤l Ë×øZN6på–•lË`Wnã€ã²úfʦܲ²QSãpfeS” Dù_Ë•MZÔ“{žÙ¤eòäiÎ<³éã™Í«iÉiQKîÙä„Xò4g^¥Î:³é1Kuf£—ïu"ØD°±y[›6ñ‰±²‰Ê††œ–6 l’²I`“ÀÆ”)úqZllò¼ÍÁÆÁÆŸ+W6´ã´°)`S”M›6YÙd°Éʆnœ– 6U٬˼­‚M›úÄXÙTeC3N«šqÏÂf3žÆáÌÂf]„ͪb<Æ×r°YÕ‹{V6qÞ”ͪ^Ü3ÆÂf/Ö«÷266¦l l l¢²‰`• ½8­ lØøsñyaž<鉱âIŠ‡jœÖ <xšKŸ >|\ù8ø¸ò¡§µ€OŸ >| ø”'Æʧ(êq ªÇ= Ÿ–…Ϙ‡3+Ÿª|*øˆëí{õãž…OÊ'¨"Oç÷>A¹GáD‘õö½OŸ>|"ø¨#÷þ3Ÿ Ž<Æ×vò1ð1ðIàcàcàcOŒ•)jr >>>>>Iù$ðIʇžœBŸ >|2ødðÉOŒ•OV>TåÐ~³njÞÀµ:¡IÈ2ý…wÛÏe_ðéåÃëÛòx}{,۷׿¼´_Oéñû£ýÆýøX?·ÿÿüøîËãÇǹÏËö©qí÷Ø\gß¿çö±Ýî“ûs¼·—o>¾>^>¼ýûûß~z|ñŇ¯úú‘ÃãË/¿úº b?Øý=ßo±l¹ýŠ\úöÜþbõö+»hLGô²ÅŽÜ¿=¶·wiÙÛ§öó–ŠMq{‰÷X÷*Û2­¶ýY·÷š¯Ý‰{×Ú'ÞÇíÏŒhý¡¯üéŸ=žÏniiÛÛçCðhÛ‡7Á[[ú '¹ƒé:4ç3odúÏwëbu{¶¦ëáˆÛ³…ýekW÷/|{Oô°=hSÿ=žµúCGë}Ù굞±ôIÏÛû÷êiû;ôÓËúø×ö]E#Ò¾9­ý²Vä¿?PlÙ~Ðÿð>¼ýöý¯ƒ—Ÿ¼þÓNµ²¯Ý>Ô¶"ëöb¶süú²´«¿zùðþníMüþ©ýÃû®e{·ï_][ÚUëýxÿåå³o?ÿùå›÷ãûë¸=Ÿ·ÿmÚ¾۟˲”~ÅöU|¼ÿ~¿¬Ì¢—}÷ÙãŸÿû| ÿg¼îu%¹­( çz …Rbtóüð0œ8s¬Ôp0v('£÷‡YÝ—ÕÜ‹’íLœ"YŸæÖ¬ûÓoÿúþãÏÿåoŸƒõÍýóæf¯çþðÍÏ·~üÞmîmþŸWÏ«Ÿ¯÷kÇïäõú ö¯ýßÞú¹Ž½ýkûÇã½ÔsÔ륮ëëú¿ðë~s¬ó__Êoß×—òû·¿>§_ŸÃ÷×°^_€9úúÚ^ߟ9?×üZ¯÷çú~¼Þ?,íú­©íëóó¾?þµ¼mŸþþøÏïà~ñú©ûüùñúü}öûZ¿ûzü¾Îü 5]êã­éö!×™Æ]gŽ¢3gÑYëë¸õøºÎõ{Ó~9ï:kyÛ^uæï2»ÎEg΢³Öïãšê\¿95]ê㢳Ÿþ¾Ž«ŽCÇ¡ãÐqètLu :NP€N@' Ð è„êt‚:]u:t:t:t:t:ùúæžOðtò”òx <žO§®?åyõ)ø̯Ûî3Gñ™³ø¬õuÞzü¾Ï€Ï€ÏPŸýø÷}žâ3Gñ™³ø¬õû>Oõ¹~ojº.>k}Û>¦>ƒÁÇÔ§5õ™³ø¬õmø¸ú8|>‡ÃÇáãðqú¤ú$|> Ÿ„OÀ'àðIútõéðéðéðéðéðéðéðéôê3à3à3à3àSð)ø||ì!>sŸ9‹ÏZ_ç­Ç×}æ,>sŸµ¾í¯>³ƒÁÇàcð1ø}B}>Ÿ€OÀÇáãðqø}R}> Ÿ„OÂ'á“ðIø$}´œ ål(gC9ÊÙPÎsV¤³1MÓÙΆt6¤³! éû﻽÷Ü}ë©÷w½àþqÜ¿ãþÖ9ËýS?î_¸?Ô‡Þ¿ëý ÷/Þ?zÿ@PÎYî?ôþCï/»½÷êýç\û_¸@ ®õõ6ˆs~½Ñ¶.?`k}ÛŸolx㙄r#$âZ¿OD"F{ÜëHĵ¾íO#‡‘ѸÖï‰sV#DâZßö§QÂ(a„L\ë÷‰ÈÄ!×ú¶?:Œ:ŒŠký>¡8g5B(®õm  !×ú}"R1 FHŵ¾í£|¨ÑœÅ(‹k}˜ˆÅ9‹Q"×ú¶?Œ²©ÑœÅ(‘‹ký>¹˜O5JäâZßö§‘ÁÈ`„`\ë÷‰Æ4!×ú¶?F#$ãZ¿OD2¦Ãɸַýi”0J!×ú}"¢1FˆÆµ¾íO£‚QÁÙ¸Öï‘Ùa„l\ëÛþ400B8®õûD„c!×ú¶?ŒúSæ,Fé¸Ö׉éØjÔ‘Žk}ÛFí8g1ºf¹QS£õü}£¦Fs£ÞÔ¨µÙQ›sV#‡‘ÃÈad02ŒŽ>íèÓ9«QÀ(`0 ŒFGÑvíœÕ¨ÿÉ}߱èÃ(a”0J ÜÑÀ½`ôÚzÛ±`T0*Œ FG5ªyÎb4g1ZëëÄõü}£££¡Futv¡³ =g1*tv¡³ ]èìBg×ÑÙ…Î.töœÕ]èìBg:»ÐÙutv¡³ =g5Bg:»ÐÙ…Î.tv]èìBgÏYÐÙ…Î.tv¡³ ]Gg:»ÐÙsV#tv¡³ ]èìBg×ÑÙ…Î.töõr#tv¡³ ]èìBg×ÑÙ=ÐÙs£ÎèìÎèìÎGgtö@gÏYŒ:{ ³:{ ³:{=ÐÙ=g5Bgtö@gtö@g£³:{ ³ç¬FèìÎèìÎèìqtö@gtöœÕ=ÐÙ=ÐÙ=ŽÎèìΞ³¡³:{ ³:{ ³ÇÑÙ=ÐÙsV#tözþ¾:{ ³:[οndíìkÞ®y7º×¿N¼Ÿÿº‘=´³¯y7º×·ý¸‘vö5—ܨ‰Ñ½~Ÿ¨}Í­tý™ú|+ÝŸF#‡‘ÃÈaä02Œ Fìl{ŒF£€QÀ(`0 ±³íÑa4çúü‰kV³³³¯çïv& † Cv¸=f×~ã‚aÁ°`øõü}£‚aÁ°`¸ŸÿºÑó±™ýúšÅì©~¯¯×ó÷ŒŒ´Ãõü÷žjôÔ¿f1zj‡ßϯ=µÃ¯YŒžÚázþûF#ƒ‘ÁÈ`djôÔ¿f1z6Ùaä0r9ŒF#‡‘ÃÈaä‡QÂ(a”0J%ŒF£€QFFFFFFFFFý000000*Œ FƒFí¡FM;üšÅ¨i‡ßϯ5íðk£¦®ç¿oÔÔ¨}:ü}‚vø½~ŸØÔ¨i‡_³µO‡·ýùíF£O‡¿Ÿ0Œ F#ƒÑ§ÃÛþüv£€QÀ(`0 9ŒF£8ŒF £„QÂ(a”0J%Œò0*Œ F£‚Q‡Q‡Q‡QFFFFFFFFFƒFöT#{ª‘¡Ã ¾ž_72t¸¡Ãí¡FrþûFM¬©‘¡Ã ¾ž¿o„7t¸55’óß7r9ŒÐá†_Ïß7B‡:Ü F~ŒFèpC‡¯çï¡Ã n£8Œ:Œ:ŒÐ݆î6t·¡³ m £~¡³­`„Î6t¶¡³ mèl+íèl¨‘£³íèlCg_sÛo4ÔÈÎvt¶?ÕÈÑÙŽÎvt¶£³¯¹éóbäGg;:Û FèlGg;:ÛÑÙ×,7j0::ÛÑÙî0Bg;:ÛÑَξæ¦Ï«ÑÑÙŽÎö„:ÛÑÙŽÎvtö5ËFGg;:Û;ŒÐÙŽÎvt¶£³¯¹éójtt¶£³}ÀíèlGg;:ûšåF££³5 tv ³èìknú¼ÅÑÙÎtv ³èì@g_³ÜGg:;ÐÙÎtv ³}ÍMŸW££³èì@g:;ÐÙξf¹:;ŽÎtv ³èì@g:ûš›>¯FGg:;ÐÙÎtv ³}Ír#tvèì@g:;îή5«ÑÝÙ÷º¡³åü×èìDgçÝÙµf1Ê»³¿Öj”èì<:;ÑÙ‰ÎNtv65Jtv65ºæ¦Ï‹QèìDg':;Fèìœ_ß× F_ëÛþ4Bg':;ÑÙ0BgÏÙ\×Õèk}ÛŸFèìDg':;;ŒÐÙ™0J%ŒŽÎNtv¢³½ÖïÑÙsV£‚QÁèèìŽÎîèìŽÎî5êèì0Bg¯õmutvGgwtvªQGgÏYŒ::{­oûÓÝÑÙÝ FèìÞÔ¨£³×ú¶?ÐÙs®ý{ÑÑÙký>=g5úÙuÐbÉm…axß¿¢–Î"·«JG:G` &YÜñb{ì Œ;„†$ÿ>ª®+Yß[L4%yaìgàì~>ÝÏFpv›“lg÷óñ"œíàì~>ÝÏFpv›µœÝÏÇ‹pv›µœÝϧûÙÎn³6‚³ûùxÎö@#8»ŸO÷£QÀÙm–Fg÷óþbÀÙm–Fg÷óé~4 8»ÍÒ(àì~>^„³cÓFg÷óé~6‚³Û¬àì~>^„³Û¬àì~>ÝÏFpv›µœÝÏÇ‹pvÁÙý|ºŸàì6k#8»Ÿáì6k#8»ŸO÷³œÝfmg÷óñ"œŽFpv?Ÿîg#8»ý àì~>^„³Û¬àì~>ÝFÎn³4ªpv?ï/V8»®Ú¨ÂÙý|º*œÝfiTáì~>^„³Û,*œÝϧûÙÎn³6‚³ûùxήpv…³+œ]/ήpv›µœÝÏÇ‹pv…³+œ]áìzqv…³Û¬àì~>^„³+œ]áì g׋³+œ]ê|] ]ì dW »Ù¶*²ytÌùÏ ÇñãÁñùXÆ®0vUcëóçBjìcYhŸ×Ù¤Ïøø±Î1Ï}ŽyÇ÷IÖ!°mMè“Ð'iŸ„>ê붽ô9f—…vô¡¯m5ô1ô‘u } } } } }ˆk[ úô)Ú§ OAŸŒ>}2úÐÖ¶:ú8úÄ|£££££amkEŸŠ>UûTô©èèèèCWÛ¦®>fé³mÓu›¢z|Ü×ÙÕÇ,}6Eµ>~®£¨>féÓæ¹Ï¦¦Ÿ…ÔÔÇ,}65µ>.”Ð'¡Í×%ôIè“Ð'¡OB‚Ú¶Œ>}²öÉè“ÑÇÐÇÐÇЇž¶­ OAŸ¯+èSЧ OAŸ‚>Ä´m>>¡}}}}}}hiÛ*ú¨¥m_çë*úTô©èSѧ¢!m»Bú˜¥O›ç>»:z|ÞÚÕÑÇ,}vu´>.¤Ž>fí“æëÑã㱎"ú˜¥Ï®ˆÖÇÏu } }Lûúú$ôIè“Ї†¶=£OFŸ2_—Ñ'£OFŸŒ>}hÛ}}\û8ú8úô)èSЇ~¶=Ð'nÅþüǬ½ê|} ×ãã±^ _ _ _ ßÅ×i½m6­›à뤾Nðuÿ|,Tѯ¢|-ÏŸ mS¯¯ï³ôJóu ¾î÷u|àë_Ëãç: }à뤾Nðuÿ|,_'ø:Á×òü¹¡|døº<Ö¯|àkyü\§ |Ô× ¾îŸ…àë_'øZž?rô¯Óìë_÷›ZËcÖ>ðu‚¯åñsŠ>ðuR_'øº>‚¯|ÝϧëÑÇVícðµÍ¾6øºÜ×1øÚàkƒ¯åñs]û|mêkƒ¯ûçc!øÚàkƒ¯åùs¡„>ðµÍ¾6øº<Ö¯ ¾6øZ?×Éè_›úÚàëþùX¾6øÚàkyþ\¨ |m³¯ ¾îuàkƒ¯ ¾–ÇÏu}àkS_|Ý? Á×_|-ÏŸ Uô¯óìkƒ¯ûÇcøÚàkƒ¯åñ÷uò¦}2|Õ×¾îŸ÷…2|áë _ËóçB»öÉðuž}áëþñX¾Îðu†¯åñsCø:«¯3|Ý? Á×¾Îðµ<.”Ѿγ¯3|Ý?ëÀ×¾Îðµ<~®ãè_gõu†¯ûçc!ø:Ã×¾–çÏ…}àé<{ºŽç}àç ?gø9ûø¹ÀÏEý\àç²¢üÜfŸÁ’áçrñsŸ ü\æß_ŸË¦} üÜæ=ô{éS.~.ðsŸ‹ú¹ÀÏ%iŸ?·Yúø¹\ü\àç?Y~.†>ðs›µü\.~.ðsŸ‹ú¹ÀÏ¥ üÜfí?—‹Ÿ ü\àç"×ÁÏ~.ðs›w|¯}.~.ðsŸ‹ú¹ÀÏýó±üÜfí?Ëóï 9üìð³Ï~vøÙág‡ŸÛ,}~ö‹Ÿ~vøÙÕÏ?;üìðs›¥ÃÏ~ñ³ÃÏ?ûìg‡Ÿ~vø¹ÍÚ~ö‹Ÿ~vøÙÕÏ?;üìðs›µüì?;üìð³Ï~vøÙág‡ŸÛ¬}àg¿øÙág‡Ÿ]ýìð³ÃÏ?·YûÀÏ~ñ³ÃÏ?Çìg‡Ÿ~vø¹ÍÚ~ö‹Ÿ~ø9ÔÏ?üðs›¥OÀÏqñsÀÏ?Çì瀟~n³é±äy«/zè9 çP=ôÐs¤[âœÇÓål;ì³vعͦÇÚ&k›‹œrÈ9TÎ9äEÛ´)Úæâ怛nŽÙÍýp¼7·LµMh›‹š+Ô\¡æªj®Ps…šÛ/”6@óãxºm*ÌÜæ:ÿêlæ~8–™ÛŒció8W_Ä\!æ6›|¡bîÇã=ˆ¹îÒ¦Ìãér¶—Û¬mdCx¹Í8Ö6¦m.Z®Ðr›µj¹÷ åšµ °ü8ž.gX¹ÍÚFns´•ÛŒãŸËÕ)WH¹ÍÚF¥ÜÇ{r m(?Ž§ËµM^ÕÉÇ<·Éëääqøxm|üXæ˜q<·éÇãj*9¯ªäc6ùB”<ŽÇ{ªä¶ûÜæ]ÖÙæ6úø¹NB›„66ß–Ð&¡MºáXÛ$mC!ç5£MF›¬m2Úd´1mchcÚ†>ÎkA›‚6>ßVЦ M¹áXÛmCç5Ð&Ð&´M M kG×6´q^+ÚTm³­ómm*ÚÔŽµMÕ6”qÞTÆÇ,m6‘ñ8îïm*㶻´ÙÆýxºm6uñ1k›4߶k›M]|Ì8–6›¸XŸ>—1´1´1mchch“´MB›¤mèâ¼e´ÉhSnk™/ÌÈ“‘'ßp¬y²æ!óæÈãÈÓh,û8ú8úíSЧhÚ8o>>}}}â†cíÚ‡<λòø˜¥O›¥O?ïî+úTíSÑG|¬¯Ÿû¨Yúì»öÙ•Èãû¾Ï.D>Fé³ ‘õõsŸ„> }ú$ôQ#ûÏ}v5r?žngCCŸŒ>†>†>vñö1íC&ç½ OAŸ‚>} údí“Ñ'k:9ïŽ>Ž>>Ž>Ž>~ñöqíC*ïíÿ¬ï4oßµuö†uú^?>þæv\ðùé‡?,OÏßÿûíËçŸÞ–o¿}þþííã§ßýeùéùåõííõëòóóýÿúuyþÇÇß¾üññíËëËóËËë—Ÿ¶fe‹¥ý&7ß}‰öߟxvü©Yóòówß½üíxàï–ç?¬Ëû´.¿=½ÜŸžï÷mÙ–ûç§õ¶® ?÷OKj?–ö;¾ÿgiÿ[l«¯íŸó§Ç[éø¸¦åþõé›eÛ—¿ÜÿyÜ´>n:¾l¿ÄSûîþËÓ7¯Ÿ¿àñÔ_ßßÚŽ·ÞÜÓñÅz‹´?¾Xòyé÷3Îû¿þ?RŽ´© endstream endobj 34 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 35 0 obj<>stream H‰œ—]o»†ïõ+x)£ÈjùMi€ØÉ)r·F­‹Np È²­Ô– Iišóë;ä.¹3ã]»§6,/5ä¼3¿fï÷ÇíÍj}oß.Þ«õÝæZ\-–OâËbùói#«ÛínuÜ>îÄâôôñ?âJF×x-Bëm…5²1Î:”l´i­øòîÝé‡31[üíL,ÎÏZ‘[­¸I±…¯ÿr χÙér¶X.[!Åò¬Ëµ€ð!–!Ûôÿ÷ôÕM«à±íŸd "HÙ(Õj±|˜ÍÅÉò[ò';o cÛšä5?ªäZ©ÆZŸ|^ÏæŸvÇͽø¬ òó‹Oât³[ß=¬öÿ:ôŽžj:Ú~t–û¸œ%1dNh£ˆ®±b¿™ÝÌ>žCÚùcq‘ŸŸ}úÃ{:$ýÑ }ÞGã"hr—RŽúD2—’ˆY$„ިƻáùfuø¾‡ð´:7ûݤžÕ+®µ4 ­'ίæïâðóDêùÃ×Çûíï óusüq¢Ô|³Ù‰g?[ÿ²üµËB©’…1y*\cU?‘Wó_NÞØùöB:ACRï¹ ™Èhg„·¦‘œz•>B7gȤ´ ]ŸlÖ0=ZMŒÕ°BÚ:Vi° ¡iŸø)YdTªIûÔ?t ![‹ãqëâòn{¼L,|]¶îìÑõ!Ï(lÄÃz73°½Sæ-|>ä–1¹)¸ÏmØIÞÄ&”v²CÛõM•[°èR³m¢CÖ6Bƒ;3v^¤ïgwІ……BQMìBi;çºiI(½ŠåÁC( Ž/bÕ†6;¤»P ¡b •¾·aT ¥b(M©hFE*Õ9¥b ˨8FÅR*–R±”ŠeT,£bO¨x8QgÏ d34mi(®@éÍŽQqŒŠgT¡q×ÈD¬(P€T3%‘@‰è&’š8Î\µº±C(‘‰ŒH¤DtŠÄD´Â]%¢C"ZR"ZR"½}ð-MˆhJD3"šÑ…ˆêÃ&D Mˆôvì1„ Ä2"$ Sˆ¨¾I‰FÄ0"†q„ˆ£D#â(G‰XFÄ2"–qŒˆ'Dî‘€u<%âψxFÄ3"‘‰”HdD"%)‘ÀˆF$0"‘1-&b$ê w,!’ŒU§WÀ&!mB¤·¾[Jj*DZ˜HjvÎ}mc-Eˆ@Ø„´{"> ;öN‰hB_6Æ"½+ƒu4%¢]ˆôc5#¢KˆXJÄ2"–±”ˆaD #bˈ8BÄ㮞ñXÇQ"ŽqŒˆcD»}Uª"=H—‘¡Ï²–4ÉlaºÓ€›ZiTØ™\4¡ÂN¥ôÛQi––)습/ìêàjŽx´¨¬ëÃè‹68ÉIQW=U{izF_Ô VmèàÞPQWÃ0ˆ†)ÙRÐUO†Ò0”†¦44£QÍÕ9¦a Ëh8FÃR–Ò°”†e4,£a ht•ZíèŒbÖ¸«Q¸’­&…\í OhD#ân‘¡ˆX#P¡dZÍ”D`$&Ñ—az(àjÇRÀGÕ¬qWÈŒDd$"%Q…QùÖ‡¡p7EIôF‹·B)Þ™ìo5HhJB3š’Ð…)ܪYQƒ½zÇ$ "A‚°Œ Á¤hCfJÂ0†pˆ„£$#á( GIXFÂ2–‘p„„G$5<%á ÏHxF‘ˆ”Dd$"%)‰ÀHF"0“èË-]Š´Ú­iÅMoÔ¸H+!”" ™ ‰ÁP‘VCP‰¾«U!aqVu!Q ´j–…„ Ô^½c‘À—G)Ϊƒ54%¡ ]HØ@íg5‹HXJÂ2–’°”„a$ #a KH8DÂãnž‘ðXÃQŽ‘pŒ„c$¹Eû’¬m.ÉPA’ͦq]IöñüLÌ—O«xûvq~öéƒF¼{wú¾oÅíìt9[,—JH±¼™½J°•Z,×B£-üvOZšFB\é¶u-ty˜ÍÏ/>ýv¹Ù]ï7ëŸ,¿Í>.{½‹AL±N¨EBÊ&¡ô¼–?DÌrQÈ×gÈR°#:©¯«ÃæZ<î֑Ѥ¼=TüxÈ`±ß@æâN7רÑÂ’÷S#.K3xŽªMÁs^% hI…x}XWÇŸO‹ ºQÁ© á§ÿ\~ƒÔÂ}ä&)[ ¦q+žf?:͉Ü™ÏçÖÅt!÷Qï7Oû#Lïqû°ÝÝÄ lÂôd´²NFQë%5Ýöj ²Î‹3õ[‰4Me3<\ÏÞÂâôïR*f;[çǩŧ»”e±kMBty£“Åçùv÷Õb–à=÷¹Ù–æ†ñ¥S¨Ëò°YOä©ä yšš§#‘ÄØhšæç±:ˆíîz»^¥éïsîÎUÏ“Ü@ ï|ØÕü—“7v¾½ý¾ß}òeù+_ë.äW‚n½Â»„"k}ÂÚ¯õ +Î^½}=Òôؑ漎´aÙßí¿ßÞ=}?Š©…5¾»^>||ÎPVÕ J¿¶­øŽòp ”ý«þ±€šÈëÝ"í®‘ÓǹTªà!S¥V)míD&l|°–IµX•NµÓ0¶LçøØë0ϵ™&ÿº…“X8•îæ1æ2B¢iT\ô£J÷½ƒ·'Àõ0³V71”öýÐ΃ï‡þ}û†õ`î_4ö;†êcŽÂ8¨r‡ »f¹Zc®íÖc<æ—ÃÊRýÜ·ÃNÇ<³..ïVO›ºl½Ùg—­8»Ì3Þ qyöW¸¼iû‰sXßàïWqõ¥×b¦U®Ž¬  û´>°Á46e¯[54f MW{ƒÙÃÛâ0X™Ìu4!pUUsÊ$`3¬t$mµ"æËþHù¬tú‡õ¶”O²mÞãÒÂ!; q϶…“ÏKH9\ù­.§`òñ”yç’Ÿtvê`ÿúR¹\löÛG¸ÄúnÅï¾A׺飷õÃqèêÎÌOªMP0Nß²3›îgBÈ´T'WøÖ%gœIÇR‹å¨¿ø{#>ý Oåeÿ¯¼,Tÿ½ÔÿšWœÎëµIs2kBzŽÅšÖdN‡l&L:…Œ¹³s9G®¦œ¸¨l-–'ý«iÿîÿîðï³@y5š1vZÄ×É0c¬@¢ ^UÓtÀëŸæãœÔspF˜P /ΉñpN÷ù¥BëW§Å„W¶å¤Dšˆdb¦T&ט@Ùí&]8í vhrÀñÛ_'éøU°2­¶ý…¡àÁä6Æ÷¹ %µÕ¦»Ó«ÎÒ¾6?êpØ–ë,4¶·¾‹ðýìš®!‘äw>ÔÛåûdðÖÛ«Z7¼Äâ v§Vièhå¨wMø/Ùu”I @ôF#w'É¡öþ¿K¹›2õ™Â©<ó|îRªRªRªRÇ&©*©*©*Å=&«LU™ª2Ue¢ÊT•©*SU¦ªÄëØeA0Ž¾Æs•ïñ~ë÷êw‹ÍçkF“}þ÷inñF“Kç¿™ä{|¿õ>‹¬ EÖŒ"ûüø¸Š´s“Æ"ME‹´cP‘P‘P‘Æ-:‹té*ÒY¤£HW‘®"]Eº‹ä¹I²HªH²H{ *2T$¹E±H±H©H±H¡H©H©H©H©È‚Ýß&ëµ³È5ž›|÷[¿W÷SE¦ŠLù{ö³Å EÖx¹FìñB‘ïåï&kB‘5£È>?>®"qn,*,ÇoY3Šìó¿Os‹Æ"EšŠ4i(ÒT¤©HS‘æ"ãÜd°ÈP‘Á"ãØ£«HW‘®"ƒ[$‹$‹¤Š$‹$Š¤Š¤Š¤Š¤‹Ìs“É"SE&‹ÌcR‘R‘R‘‰-úŠ¬ñ,rçßãýÖ÷òw“5¡ÈšQdŸg‘õ±ÉE®›¼Qä÷êÞãÅ"kF‘}þ÷in,,*,(***.‚M:‹¬?PßçÇ:‹œ{H®]rí’k×”ëQäúëïüØ`¸µË­]nírk·[ûéÖ^,R*R,r¨µK­]jíRk§Z;ÕºF™*2Yfí2k—Y»ÌÚmÖqšuЬkD‘A³ŽÃ¬Cf2ëYÍ:hÖA³®EÍ:`Ö!³™uȬÃf§YͺF¡YÇaÖ!³™uȬƒf4ë Y×È"4ë€Y‡Ì:dÖ}~|\EN³šu,B³ŽÃ¬Cf2ëYÍ:hÖA³®‘EhÖ³™uȬCf6kžfMšu(’4kf2ëY‡Ìš4kÒ¬I³®E’fM˜5eÖ”YSfM›5O³&ͺF¡Yó0kʬ)³¦Ìš4kÒ¬I³fSš5aÖ”YSfM™5mÖ<Íš4ëY„fÍì)³¦Ìš2ëß³Ÿ-hÖ¤Y×È"4k¬)³¦Ìš2kÚ¬yš5iÖ5²Íš‡YSfM™5eÖ¤Y‹f-šu(R4kÁ¬%³–ÌZ2kÙ¬ušµhÖ5¢HѬu˜µdÖ’YKf-šµhÖ¢Y×È"4kÁ¬%³–ÌZ2kÙ¬…MhÖ’Y‹f­s™µdÖ’YK[Ь×xüZ]3 É°EÃîÛ{5¶DÚiK¤-“¶êßÏù/MQµ%ÕU»oïmÛlK°ÅãŸuæ‘ê¿ß©„Û"n÷í½Žt[ÒmI·xüwùbIáN wR¸ûöw)äN!w ¹xü³Î›u&¡;ÝIèîÛ{IwJºSÒÅãŸušêP»óÖníuë¼óï÷¶À‹Ç?ëtÕ!zçÞÚ3êtÖ‘zç­Þû6ëôGTÊw¦êP¾ûö^GøCu„_<þY§T‡ž¥:ð¾½×‘€g©ŽŒÇ¯uâçu®ù¨sg}ü}ᄑׄçTB˜Öy¡Î5×yá…:ûø^çuֹƳÎ5Ÿuîóã뮪¬ª¬gø!Š¯y`·êÄ£NSÆ:Muë4ÖiªÓT§©N{Ôª3Xg¨Î`Á:]uºêtÕ:©:É:©:É:É:©:©:©:ù¨3Ug²ÎTÉ:“uJuJuJu¦ë¼~Xç0_#ê¼æûöwÅ|ͨó¢˜ùøg7ë¼ ækDÔ|ßÞëÎ׌:/™Ö Õ Ö Õ Ö Ö Õ Õ Õ‰G®:uºêtÖé¬ÓT§©NSþ¨3Tg°ÎPÁ:ƒu†ê Õª3uJuŠuJuŠuŠuRuÖ|^NÅ1•ã5g2ÎTœÉ8“q¦â¬™—ÙÆRŽ7¥|Íg›÷‹mÞò}û»Í›RþÏË„2ßþlC(_óÙæýf›7 |ßÞÛÊ¿3/£ÍÛNŽwS›Æ6MmÛ4¶ µ ¶ µ1“ãÝÕ¦³MW›Î6mºÚôºÌ6Vr¼Sm’mRm’m’m†Ú ¶jc$ǻԦئԦئئԦþé2Û<Œ2rÐÈ!#?l3Õf²ˆ"‡ˆ$rˆÈA"‰"ò5ó2ÚÄCÈ!!…rPÈA!‡„|Íçe9@9äƒ@9äkæe¶yø8äã C>ú8èã¯ù¼,ǃÇ!yâqÇA‡x|ͼÌ6‡tÔqHÇAuÒñ5Ÿ—…ãxภÇ8nÂq#ŽqÜ„ãkæe´i7Ù¸ÑÆM6n´q£›l|ÍçeѸ=hÜDãF7Ѹ‘Æ4^c¼y¬Ë¿ÇÇÇÝF2n”q“ŒeÜ(ã¶~ Û4¶ùwÁ¸ÆM0n„q#Œ×È6ãŸ.³ÍÃÅM.ntq“‹]Üèâ–jCïãããn#7º¸ÉÅ.ntñÙ†.ÞÇÇÇÕ¦ËÅ.îrq§‹;]ÜئÓÅûøø¸Út¹xÍuþvÁxŸßRÆkDNïããë®#¯9°h¼ÏïiãêCïããëî#¯™}„ã}~?H¯‘}¨ã}||Ý}¤ã5³x¼Ïïéã>Ô‡>ÞÇÇ×ÝG>^3ûÈûü~B^#ûPÈûøøºú yÍè3Dä}¾4rŸêC#ïããëê3dä5£Ï’÷ù½•¼FôTò>>¾î>RòšÙGLÞç÷ƒtòx³Ï “÷ññu÷‘“GSAyŸßRÊkdJy_wIyÍì#*ïóûAZytõ¡•÷ññu÷‘•×Ì>Âò>¿¤–×È>Ôò>>¾î>ÒòšÙG\Þç÷ƒôò(õ¡—÷ññuõIyyÍè“ó>ß&żFôIŠy_WŸ”˜×Œ>)2ïóûAš9_ì“4ó>>¾î>2óšÙGhÞç÷ƒTsJÍI5§Ôœ5§Ô¼fö›÷ùý ÝœrsÒÍûøøºûÈÍkfÁyŸßRÎ)9'園s>䜒óšÙgѹÎ/–úÐÎ);'휲s>윲óšÙgáûLõ¡žSzNê9¥ç|蹤ç5£ÏšÑgŸï‹~.ù¹èç’Ÿëáç’ŸK~^3ú”ü\ôsÉÏE?—ü\?—ü\òóšÙG~.ú¹ä碟K~®‡ŸK~.ùyÍì#?ý\òsÑÏ%?×ÃÏ%?—ü¼fö‘Ÿ‹~.ù¹èç’Ÿëáç’ŸK~^3ûÈÏE?—ü\ôsÉÏõðóüìûÚgÊÏkFŸ)?Oú¹ä碟K~ÆëŸ}þûÙG~^3úLùyÒÏS~žôó”ŸñúgŸPùyÍì#?OúyÊÏ“~žò3^ÿìÓÔG~^3ûÈÏ“~žò󤟧üŒ×?û õ‘Ÿ×Ì>ò󤟧ü<éç)?ãõÏ>©>òóšÙG~žôó”Ÿ'ý<åg¼þÙgªü¼fö‘Ÿ'ý<åçI?Où¯_û´Ÿô¹æ³Ï5Ÿ}îóïƒ÷ýÏ>×xö¹æ7oŸ}øúgŸ7ú\s`Ÿ7úÜç÷ƒðsû¡Ÿ¯9ÏÛô3_ÿìêêêêìêìê>]}ºútõéêÓÙ§©OcŸ¦>ýÑg¨ÏPŸ¡>ã¾ë­·nã Ãð½~/e ²I®5§"ÈEH¢»¦(Ti[V É=üû7÷ü^ZAn²:áÌÒk7~‚>QûDô‰Ú'¢OÜõÉè“ßãúOL³öÊè•Ñëô}Û/k¾„|Ió%äË»|eúr³nA¾‚|ùNß·} òÍWoûúqŸaØäº?Î’kP^/çíÁöýiŸAy=ÍÛ>ƒòZ_Ÿ÷µÏ ¼žfé3(¯—ïÛ>Êëiõké#¯Ïû8ú8ú8ú8ú¸ö1ô1ícèã»>}úô è´O@Ÿ }ú„]Ÿ„> }ú$ôIÚ'¢OÔ>}Ò®OFŸŒ>}2údí“Ñ'kŸŒ>™}Æ^ûŒÊëi–>£òzù¾íSЧhåµ¾>ï3hŸQy=ÍÒgT^/ߟö•×Ó<ê×ÒG^Ÿ÷1ô1ô1ô1ô1é3*¯§yÛgÑÇv}}}}}\û8ú¸öqôñ]Ÿˆ>}"úDô‰Ú' OÐ>}â®OBŸ„> }ú$í“Ð'iŸ„>iק OAŸ‚>}ŠöÉ蓵OFŸÂ>Ök¯ ¼6ðº}ÚÇÀkS^x-¯ÏûŒÚÇÀk¯ ¼nß·}ÀkS^x-¯Ïûú€×^xݾoû€×¦¼6ðZ^Ÿ÷ è^xmàuû¾í^›òºongŸˆ>àµ×^·ïÛ>àµ)¯ ¼–×ç}2ú€ÓN8mÊiƒŸMýlð³å]øÙàgƒŸ ~6õ³ÁÏu£~®v€vÚh €v´ÐuNÛ…‚ö ‚vÚ!h‡ ]ít¥ƒÐ¾#´ƒÐB;í ´+¡„®³‚¡}gh‡¡†vÚahWC; ]g-DûÑD;í@´Ñ®ˆv ºÎZŠö¢Šv(Ú¡h‡¢]íPtµí;F0:€ÑŒ`tPF;]g-G‡£àèG8:¨£]g)é°ƒt¤ éH…t¤ë,…$v’t€¤$ÝΗUÒ’®³¥åùy!P:€Ò” tPJPºÎZ–;KX:ÀÒ–°tPKXºÎZ˜;L`:Ó˜ÀtPL`ºÎZš;MGh:BÓšŽÐtTMGhºÎR(‚ÓqÇéNGp:‚ÓœŽÊéN×Y Ex:î<áéOGx:ÂÓQ=]GËz¬…Nç›ëY Žu¨#@ݾo ÕNr:o®g!ˆ:BÔ¢ŽuTQ×Q EŠ(´#u©ãJêãu„¨£Š:&J”–@Û¯7ë@Ôqõñ€:ÔQA]GÍP·óõvÔIðt¤N§8”Ó©×: œnçëí¨“ é:—qó0ÝŽ—÷Óu”: ˜nçëí¬K×Ù·ë€ÒíxyO) u@év¾ÞÎ:t¥ ÝŽ—÷ÒuÔ:€t;_og8ºÎRŒnÇË{ÊèQŒnçëí¬E×YêÑíxyO]G­D·óõvÔÉ0t·u2ÝŽÛ{Y ê€Ðí|½u2]çm @·ãet¥N Ûùz;ëÀÏu–:às;^ÞS>çQëd𹯷³ô\g©<·ãå=ÅsµðÜÎ×ÛYv®³ÔÛñòžÒ9ÔÛùz;ë@Îu–:€s;^ÞS8×QëÎí|½uàæ:K°¹/ï)›sF°¹¯·£Nšë¼­S€ævÜÞ+Šæ:J4·óõvÔ)0s·u ÈÜŽ—÷”ÌeÐ:dnçëí¬1×YêÌíxyOÁ\æ0Ó:;/x¹ÎR\nÇË{Êå.p¹¯·³´\g©“Þ÷¾½/¢Žb¹ËX.Qëì¬\`å:Kü>È:uÔÊV.°rQ+—• ¬\çMÐ÷¨SPG­\`å+µr¡•C¯Vžfß®3HåøôÞòù¼Î´ý¶Î4oë,çëíÖQ+O³Ô1©³/§Ñ²Q?·í:´rèu\ë8ê,Vm–:‹•Odž:¦uhåÐÔ Z'¢ÎbåÐf©³Xy9Ö:AëÐÊ¡O¨“´NB„:IëDÔ‰¨µ­úŒ:YëÔɨ“µNFŒ:YëÐÊaP+Oó¶N¥ÎÐk¡×:u ꈕõñyµò4oë £Ö­3ˆ•§Qê jåå¼ÝN+‡ÁPÇ´Ž¡Ž¡ŽXyÚ^ê jåå|½uu\ëÔqÔq­ã¨ã¨ãZ‡VCD¨u"êDÔ‰Z' N@ uhå0$ÔIZ'£NB¤uê$ÔIZ‡VCA¢u êÔ)Z'£NF¬uhå0ª•§y[g´ÎØkQ¬>¯“7±î³Äʈ•+k¬„: u’ÖÉò+5­SPG)m=êÔ)Z§ NA¢u ëØ uL)m ´ Z§}~ZÇz­c ´)¥åñyQë˜RÚ@iµNû¼­3j¥M)-Ïë8ê(¥ ”6Pº}ÞÖ¥ ”6¥´<>¯PG)m ´Òíó¶(m ´)¥åñy„:Ji¥ ”nŸ·u@i¥M)-ÏëdÔQJ(m tû¼­J(mJiyü¸Ž÷ZÇ•ÒJ;(Ý>oë€ÒJ›RZŸ×´Ž+¥”vPº}~ZÇAi¥])-Ïëê(¥”vPº}ÞÖ¥”v¥´<>¯ã¨£”vPÚAéöy[”vPÚ•Òòø´ÎXÿë§ûkß×y~¬LÇËaýs³ŽŸÏ>~ú±;ûðK÷Ýw>ýøóO] õý÷?üTÿǾ»=ûáòìÃååÐ Ýåç³ú‡K_¿½¼îêM”Üõõ¯ùï<Φ™ìƒw—÷gçŸÞ]þëìãåþkÈå»+ÓôoŒ<西üüî­{ý›÷—°´—š¢þÔÓõ¿nž×ÿ~ã‰Q_èO/L—_LïŒuÉÿtõ?Dk¥ã;Ç¿JEA*uÁj!ï/ýíü/w·_Ÿý¹kvOï†áüêÝÅpþúzx~èÞýýò¯ßZÃÞZãÞ®¿ìƒ÷Ãñ§|³à›‡aú+ÃSý­6?ÓRÿîøL-Ú×ÿãÆÞŽ¯T–Ö¿Æî㯿\=ÜôÕ_Ÿ®–‡ƒ><Γv|ùÍŸ-w–ë„ãéÑo?¶þˆñÛé¦ß#Ãú˾õÜÆÝsw/ÝUwýxÿõáîúêõîñá¥{ºšõ^¿\½vŸ_Ýãõõ×ç—îî¡»}¾»é^ž~¿{}½{¸=n¹þ/ÓãÓŸž¥»¨ÿb¬¿E/oÎί~¿}|¾{ýrÿÒývþÏǯ7WÏÿ맟÷å·wï»Ë/‡úÀrgYî4;þ@õÏ R¦–õºÇ¯Ou¹îéùñúðòr¨Ë½t/‡ºëÕô#=.Ú5k;þî¾8]SWÂñªç»Ç›»ë®.r÷ð§îêá¦;\]ÿŸôréë8ÂèÞ¿b–“÷ö£ªp IJ^xH(kd  D‚Åp~}ªï£»¾3„“x!O±¦»êžÛ3·ûÔ­Åe.Þ%ö„yïf}†Ã»›ÓÍáW{ÈÃÛ{ûçîøþ´Ì÷øá—ÛÓ€µ¶´M0úøt´¯½½lœO†bièêÒJÐË+_Æù…gbSÐi] ?½jøOŸ?Ýÿëøh‹âó§SƒšÂM{¼ûûSÛßñÕLJ»£½ÇphÈÂáþóé¯ï­wîêâ P.D/l•¶ˆíÈ¡=á ç@=;ûå9§Ú¨É‹sÎÓ7é\çöáåIC>;éòêÚ¶iG–½DiHêR¥öSÃêIš¶«êxód‡ñ»¾w/Õ;|ìSÇÙnê2)LþÓ«?ÙÎúíu{éoïï>üÛʼ=ž~}«¶ßø¿Û¹¿®¿°?DZ7ý|Mºn»B^™_­×H‚•2Ws‚tˆaÑ2ûÚ?åðx´ ß%í„Ÿ/_¾²d[ë1\ç¹ýuÚÏ37²iš^*ê’sÏlh²Vdý»=g,ØÐùì>ïù¬uç÷{?ï7Êzf©ë/î'þÛ›'{÷Ÿ^¸ÍBùŸ®³¶zfYªi_˜æ;ß?™\·O½ùpº¹»ûá&MÙ(†R–«y#al<Å Ùâ…,=]=ût.ç eÛ‹ÛÓ|kGüé·‡ãe|qú]v\\à›¿ÿå»s\4ØÖ¹Èå|vçr>ël¾x›Ä|nIÉtUÒ¶¤÷'[U§M ž^XZ1œeóâzÊÕþ·•² Ç××oÂ?ý½a_®a=Y¾²-¡_·ïô ¯NŽÄx^F¿ôÖ¸ H?'Å¢`gv~xiSESêýüó›¨Q{°<áƒù]i¿·v!y:þ|é_¸sæ~çD¸sÒ$mcÁÛ}Ó”ð]G{ùÛÓŸ=öÕ~þîS?dûµ»-Öb« úÙä¾ÎÏ&ý³Ÿ¿ÿÖgï‡h<{ˆ¦0öéXñ·÷Ÿ¹}ø|zéÕëÿužZá´ŸÞéo×í+Yåºí…sEÌWe?Õd .©-{éÚ¼0x»7·ì…‹óÂØ3Ù1ôúÇÛ›‡ã ÕÏæë7?N‡ŸŸÓáðôó§/R˜W,Ò&ú¸Æeï–8®y•-¶å×bëòa·ñó.—¿ûöÔnh7[Ï÷j£»»/ní/á*ßo¸*Ð_¸ªÐ_χ=ξ¿ÐŽHÏ‚ÃCÁésÁ†’öq‰X"`‰€%‰P$B‘%x_­¡L„2Ê;¡´ÇH(#¡L„òN¨GBù!%BJ„t'”ö )"$;¡m¸!}F¨¡B„ *D¨ ¡B„ *D¨0!Ûû@(NHÈb 4òkÅ1~m¨¡J„*‚òkC3²Y „F~khB!‹ÐÈ÷é™Pì-†¥¡H„"ŠD(¡Å@häûô£üÚPê-® %"”ˆP"B %"”ˆP"B¾üÚ!!BB„„ ÊD(¡L„ä!%BJ„”)R$¤DH‰!}F¨¡J„*ªD¨"¡B„ *D¨2¡4!!‹wBm€…h¤×‚cø¼…Èb4òŠ£{;ùX};ñŒôV/žf(ÐÎŒxF^qto'ˆt"ÑééyNÜŸ¾§‘ND:ñLt2ÒÉD§§ç=:iú-ˆNB:ù!:‚t„èѤ#DGˆŽ a:æES«—šÖ[;öSa·îQKÞ®> ßw³›jSæák<¼Òâì½sZö$ä'ï“]Ý{\¸zåøöêc¶žïÕFwÞ;G¿«WŽ«wŽ{~òÞÙZ½Ò§gÁá¡àô¹`CÉÞ9F$–XB`‘E"‰P‚÷5¼s4”‰PÞ ï£bFB™åPŽ„ò3BJ„”éN(xï ’PÌ÷é™P!B…"TˆPAB…"TˆPaB›øõ†6¯ì#6ïì3Žüä½³7T‰P%B Ay mÞ9š‘Ð>~khóJŸB#ߧgB±·è½sŒˆD(¡„6¯逄F¾O?Ê{ï %"”ˆP"B %"”ˆP"B¾¼÷ÎÑ!!BB„ e"”‰P&BòŒ!%BJ„”)R"¤DH‰>#T‰P%B•U"T‘P!B…"T™Ð¦~½¡M,ÛˆÃ]÷Î>áHOÞ;÷~6¯ôi4òÙví䳉eÏHOÞ;{;3âÙ¼s ïùìG»v"щH'-må½wövV¯ôi¤‘N|F'Œt2ÑÙÒ½^F:«WŽt": éägt„èÒ¢#DGŽ!:‚t„él^9-›px§÷¨Å;ÍÍ;¿ûáÍá‹ëooŽ‡¯¾ºþáÍ÷ßr:|ýõ7ßZ"„|HÕŒMš`¤%´/Ü-q”%{¼æ×À>Ù>)KÚO¾=c„“¶'û´[Éö<Á$·`J-MhaÏo4!áÈÍ Á‰±âš(Ä¡‡â9ß‚zJ”8h ‡J*q¨žCEÕs¨Ä¡‡Šâ<šˆm ¯¶Ð÷°§×Ï®³œAÁ Ð“}V(<‹Šÿj@{zûìX8X zrÌ‹ ’k!!ƒD ’c|Ñ3ˆÄ ƒå30ÈÈ ƒìdd=ƒL 21ÈÄ@] Š ”¨c ¾ñ „1P(_€AA…Ç  ƒâbPˆAAi-Ø%î´Ð·°§×ϾêTbP‘A/¸–Ÿ=‹<ƒBó`° Ü[°p0°ôä˜D×BD‘DÇ ú‚c`0èÉ>+”OÀ !ƒD ’cAò 1HÄ q-2b Žø²g‰A&å(2Pb Ž"õ ”(1PbP] TbPƒê(žA!…T_>OžEžA }{zûìX8X zrÌ rp-`ÐBh! Ë°ÞÀìX z²Ï å#0ˆÈ ƒèDd=ƒH "1ˆÄÀ·‘‰yðSeÇð¶˜É3ÙbÆò`‹Sqh@tÅì]1“+frÅL®˜+æ‚ 1(Ž7ÅìM1“)f2Å ¦˜Á-•TÇ=1{OÌ䉙<1“'ŠóDAO´ˆóDñž(Þ…yÞÑE™åYþ>òŽõ«÷¨KzTYM•ûä~GuX`y–¿kº¥GÝÒ£€Ëj¸Ü'Ï;º. º<Ë߇Ñõ‡k³š0÷ÉóŽŽÌ2Ïò÷aôíÚЬÍ}ò¼£K³ ͳü}=¦ö˜ÚÚ¬¦Í}ò¼£ƒ³Î³ü}=R{¤ö:«¡sŸ<ïèê,¨ó,–öùôÏØzüÑw\½Ç3fÿç г~÷Ï|zŒ¦=L{zXëaÒÃ> ¢Ï0ä7z{¸öpíáèá­‡£‡÷ŽŽÎC{ í1Ðc´=¢÷ôôì1µÇÔ=fë1Ñcö=&zLö(íQڣУZBì=== =®ô¸©Ï(=®RÏÉýŽ«)õ¤Ç¥J•k¿ï¸¥Ç%R}Féñ®×ëö(I®—¤g¯d=ûöyT1­bZÅPå»>·¼:m{mchclÚ&´M Mh›@GGG›`›¡m†¶h3´Í@›6mÚ ¶Im“Ú&Ñ&µM¢ÍD›5÷Ói’iJÓ”¦)¤)MSHSH³f=­e X»E°ÏØËÜ*ؽޗ݊X»?Zæ™ûie¬Üý}Œ0ö{™[»×ç2•ì3K™gÖÓRæ¾YƵŒkG×2Ž2†2¦e eœeBË„– ” -((8­e‚e¦–™Zf¢ÌÔ2eÊ -3Pf²Lj™Ô2‰2©eeeò§µ }kê[Sß|û®÷eöA™B™Ò2@®¹¦È5E®¹ïú<εKË<³ž–2FéšJ×Tºé¾ës°k·–yæ~Ü5r×”»¦Ü5p÷]ŸË ^s”ñ?œÖ24¯©yMÍk0ï»>—½(Zð5Â×¾¦ð5À÷]ŸË`_›(3ÿpZËP¿¦ú5Õ¯A¿ïú\[¢LjØH`W»ØAàw½/s(Ø?Zæ™õ´”q:ØÕÁ®v8ØÕÁ;üÌý4ìd°+ƒ]ì`°+ƒ ^³ÝºÇi»õë(£ vU°CÁ® v(Ø×ÿ|yŒk™wݾŽ2Š`W;ìŠ`‚׬eÆNkØÕÀ®vØÕÀûD5ð^·¯£ŒØÕÀ»Øaà5k5ð^·¯k™P‡8`àP -jà½n_×2¡^cöÿ}ïý¹ ^³´ Uð^·Ï£*x&σ÷þ\‡¡Ž:x¯ÛçQG¼F­ïý¹^³ÖQ ïuû<ꨄרu@á½?×ÁÂ1PG-¼×íó¨£^£Ö†÷þ\ ¯Y먆÷º}^ë Õð¥Î‡÷~_7àá(ÔQïuû¼Öêá5JïýyD¼f©3TÄ{Ý>:*â5jxïÏu0ñ¸µÎPïuû<ꨉרu€â½?×AÅkÖ:ªâ½nŸGUñµX¼÷ç:¸xꨋ÷º}uÔÅkÔ:€ñÞŸë ã5k•ñ^·Ï£ŽÊxZ4Þûsl<uÔÆ{Ý>¯u¦ÚxRgÇ{¿¯›Ðñš¥ÎTïuû¼Ö™ªã5J ïý¹>ž—Ö™êã½nŸGõñµ€¼÷ç:yBÈS…?Ú÷uàä 'Ouò„“'<ÕÉkÔ: ÊòœBHyBÊS¥¾Ÿc ´)¥ ”î·ŸsK¥ ”6Pz?Ï¥M)m t¿ýûÓ: ´ÒJïãç9 ´)¥ ”î·ŸZ”6PÚ@é}ü<”6¥´Òýöïs†Ö¥ ”6Pz?Ï¥M)m t¿ýûœÔ:°³ÁÎ;ìl°²©• V¶dµ²ÁÊ+¬l°²ÁÊk¾‡ž×<IJ+–Xv`Ùe–X^óìïqhÙ©eW-;´ìвCË-;´¼féãಓˮ\vpÙÁe—\vpyÍÚ^vzÙÕË/;¼ìð²ÃË/¯YûÌN0»‚Ùf˜`v€Ùæ5kˆÙ)fW1;Äì³CÌ1;ļfí2;ÉJæ™d9@f™×¬}`æ ™CÍ0sÀÌ3ïãû=3¯YúÐܯÿ¾GÑ@sÍ4Ð@óš¥O@ÍA5‡ª9 æ€šj¨9 æ5k°9ÈæP6Ø`s€Í6ؼfí7Ýê怛n¸9à怛׬}ç œCá€sÎ8à€óšµä”óP9Èy@Îró€œ×,}è'ès‚>'ès‚>§ >|2øП“õçNðçNðgÍ–ü¹Oë[>Ùús†?gøs†?gøsv–O†?÷ñi}Ë'[ÖXçý˜áÏ}|Ôƒ?k6|2ü¹OëƒõgÁôîã£ü9 øÀŸûø´>øXÖhùÀŸûø¨ÖlùÀŸûø´>øXÖhùÀŸûø¨Î |àÏ}|Z|¬?k´|àÏ}|Ôƒ?k¶|àÏ}|Zßò)ÖŸ5>þÜÇ{½Î|àÏ}|Zßò)ÖŸ5>þÜÇG?ðg͆O?÷ñi}ð±þ¬Ñò?÷ñQþ\¼åSàÏ}|Z|¬?k´|àÏ}|Ôƒ?k¶|àÏ}|Z|¬?k´|†?¯#›~àÏ%‚Ïðçc~ús±þ¬Ñòþ¼Žlú?k¶|†?ù–ý¹XÖhùTð©à.| øð¡?WëÏm¡¹Ÿê,Ÿ>ÞëUø³þaøTgùôñi}˧ZÖhøToùôñQþ¬?4|êjùôñi}ð±þ¬Ñòðð?Wøsð?Wúsµþ¬Ñò‰àÁþ\áÏ5€ü¹ÒŸ«õg–OþÊ…y½>ðç ® |àÏ•þ\­?k´|ÊWÑôSÀþ\áÏ5ƒü¹ÒŸ«õg3ŸèøTð?Wøs­à®ðçèŒ?·L?«á3ÆzcúÑOëæÓòÌgŒO믶ãÏ-Z>bøŒñQÏúsËRì¸Ov¾˜~<ùË'€OŸ>||||ùDË'‚OŸ>|"øDð‰àÉ'[>|2ødðÉà“À'OŸL>Åò)àSÁ§€OŸ>| øÀŸãjü¹EÃG³á³ZÓG?|*øX6å÷~Œ?·hø¬ÞòY­?齟ÕúsˆÏjýÙ”ßûËGÀGÀGÀÇúsëßðY½å³zðò –OŸ>|øð àÀ'O²|ø$ðIà“À'‚OŸ>‰|²å“Á§€OŸ >|2ødðÉäS-Ÿ >|*øTð)àSÀ§€ü9zãÏ->~µ|úx¯ç­?·løxëÏc|¬ŽÞøs‹†fÃÇ[ÓG?ÖŸ[6|¼õgS~ïG,Ÿ>>>>>>B>Ñò‰mboÑâŠÀë˜>Ú‹À€/_¾H|ê·ej7_¾|ÇôÑO¾| ø¦ò{?å‘×Ý-¯^¼ xeðÉà“Á§Ì·«õS-èµ8ð©àSÁ§‚OŸ >|d5|z-Ðë>Þëõé½^ ôZ ×sù½oøôZ ×½îÓG?Ðk^ ôz.¿÷,èµ@¯zݧ~ ×½èõ\~ï'Z>Ðk^ ôºOý@¯z-Ðë¹üÞO¶| ×½èuŸ>ú^ ôZ ×sù½Ÿbù@¯z-Ðë>}ô½èµ@¯çò[?Á>z ×zݧ~ ×½èõ\~ïg5|ô:@¯ôºOïýèu€^èõ\~ïG,èu€^èuŸ>ú^èu€^Ïå÷~‚å½Ðë½îÓG?Ðë½Ðë¹|ëÇë Íi²ëwš÷n|[­VuŠVíÝéÛï®–ÓÅ×nß]ß<,/^\œýùírñ—·÷·÷ï——//¿ÑŸüëÖíÃtû^ô‹¾õÒ¢ŸÚÄÇ·§ï—û“[ÞŸ.ϧ‹óY–u9¿Ó8ß,ú5RËâô¿ý¯¾Š~5­ÎÉr¾;=ûÛóó?Oßž¿¸—¿NµÖÏÕjnƒZËﬥ×}¬²_·nñöÂM#Ð×±[Ão·³™úÜÎëgÿøõùêž=<sþÓïC`/¿-¿Y4ºvë ƒ·Ÿ,…W?^k ­õÝÕ¿YbéE¤ª›,ÍPtGÝé [!-Mˆ·GïÕ1ýê•[n>m5ݲ|º¹?…P;²Ü&¦µ=ÜÑé««M i1LA¶¿Ç]:rœ³®ëµ#—Û¥íY7×qkLŽ~þ}ëã'ÛVÛ+m}}Œ£ÓwÔv…)ìÙ·i­¾kÛ%ºíLkÛÅËñøê)Þ6W8néæä?m9mq STå8Òöc5†täuÎû«ª}Ær䶼 #—6mú}Ùà™Ö¶“ Ñhåc{´Ùè÷¼}дúÛ—gËq¿ºöí—oxs‰4Ýðv”´÷ùº+Ûbz ìËq§r;îznOÞŸ•/ÚkâBÛ^ÿãÓWùïg žøú¸­|‰Ä¹ý"ñÄÑ¥hãùsÇÆ“3ì3G‡¬©ßªÿÃÑñ¤ò“rMºž–àÏ×÷`r}ñ¶ì•ÿ»ûÌÝñú<–ýQq~_ü…s>¿Ôåµ%ßO´¤(tNz‰så§Ç4ç{(³ÏKYÛÞl.Òv®‹Ë›ãž]üùjÑûè–-=}µêSér»“íS3i—ç_–u;·›ºýuÔÒ³ú›v•í5£+=>¿´Ÿd9nì‡wÇæàÖVkûÓK›¡f$þ˜¡{Ѽ»¶ÿýG€£^î[ endstream endobj 36 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 37 0 obj<>stream H‰¤—mo7€¿ ¸ÿÀ2.¦–äðe½µ“Þ¥¨¯A¬ÃõàÅF^[Û“%CZ;qý ¹/âP»Šˆ%j–óòp83;ûa[W7Å¢fß}7û¡®‹Å²¼fW³ùæž}œÍŸîK6{WÜV뢮6k6;;Û|aW"7Ü*æ2Õf£ sRp™f¿ÿþìõ9›Ì~9g³‹óŒ…UÆn'‚Uøó?.ñûnr6ŸÌæóŒ 6¿Aé|ÁðÏgüÃæ;&2ÿù‡ÿi‹ žIüšµßDî88æ„àRfŠÍï&Sv2ÿÝë¾S|0ËÀk _¥W-%×ÚzדéÛu]®Ø‰ž_¼{ËÎÊõbyWlÿ·k8†ÖT®ÛÝÁÜ›ùijÈ]`a˜ÅÑ;®Ù¶œÜLÞ\`ØáÏì|qþö5noéÐð½·jï­ ‡Â¶9ÓJòÚ¸¬n¶%ƒ¿µÄoYD@ÈÞýé›/‹e±¾-i| (Ó›Î?|5e÷'BL‹“S1­ër»f'ç?ùˆÓ€ HDå{v™§Ô†‚ßÚÔ™å™k"¹š*®80´(²|úº¼©ÖUH»Í ;߬V墮Kö©?¨Q—ä8c½gœ2v \ΡC<_V;¶óæÑ™ër·ØVŸÊ«—åÞ/5!©‚~Í Zj’†8_y]uQ­8{ƒ÷n/b½®4!N[m§‚ 4¢cÛ‡5û\ÕKöXlŸªõ-»+w»â¶d«r}[/w]¦6.ï‹uÏIQNò ã8Êd ¬åywé~%º÷ƒÐDÚ ÕÌ>=Õåî+Ö׬®î0®+0Ï‹Çr‹Á]³ ~ ¡5 ,÷¨dƒ k”¨¤/ÈêîaUW÷«’íŠ;üØqvY– l±†ö¸tb¯]‡Õv³Ù†\h2ã¾KYÿÓ]Y/7×›Õæö‰³–èÿçr¼‘Ϧñ9ãFˆèx»d Ê«ò³W¼Yc¤äUsþ»©¾ zþGŽ_¿ðøu&9äyÎ@ƒ¯ôÇsÀŒç€Ø'6†;hÉZºj“âä¦üDL›ë?|QVˆÿ¬ØU‹P诋º8­}kóW¬V0¼’Ç.‹¤Å3|e,6É$—m¡›¢¿ýwþfœ¯^i¦Ö@µ>?ï}Ÿðѳ;¼<§û»i 5ëÔ÷ICïN¹®ÙÍÃ:ÔÀöZŽ£Ê¿ •tŽû2€g×wuêÇŸùa>ÂJi§éõ:8¤”ÚëamËë‡&XÎÆl‹?ÙÊ?1!¹0ÞWßËÛ„ìv¯ð⯞Ø'_ûŠˆÇ°Þ ÃÛÍÃíòþ¡nÎ÷Ã_ÚL®YWa^c…©v÷«â©¼æl4N9ÚáCæd“·»½‰Þ—<ø‘÷˜1=DÖúð3û;ûu¶«þ(77¦7«MQ8½&ùxæh18G+|!J­{¬ªË;,ªsÔú²<¾ÕƒyÜxIëáë}¨ô%y¬‡¯ôPwêÿT+!R%£y Ç_@º7Ãrì{°Êâ1#ÃÕa(‡;ÕÏÉaslšh’Áô Í4#„öVFo2¼ù7fC¿Ï$Š±jp#rLp¯¹Ñæ;^CôâòßkÛ4¶ijÓئ©MC›÷ñlÓÔ¦¹Mg›`›P›`›®6]mÖüÝîJÓ&™&™&•&™&•&•&¹{éÛêRì2Øe¨Ë`—R—R—b—R—r—É.“]¦ºLv™ê2Õer÷Ò·Ùå†{Û ÷¾#ºÜ7ºÜ„ï;£Ë;· _Üý{ àûŽø9á»Ïe”ï;_<çî¥o«Kc—Î.]]:»4uiêÒØ¥©Ks—`—`—P—`—P—P—àî¥o«K²K±K©K±KªKªK²KªKºË`—Á.C]» uê2¸{éÛê÷¶î}Gty.v™ê2Õe²ËTÁ·=€ï;~þ¾ûx_öP¾ï|ñœ»—¾Í.ÏÃ.]šº4tyßwF—wþn¾¸û÷˜Î.]ººtvéêÒÕ¥s÷Ò·Õ%Ø%Ù%Õ%Ù%Ô%Ô%Ø%Ô%ܥإإԥإԥԥ¸{éÛê2Øe²ËT—É.C]Ö¿ø‡çèòw|¾nö6²·‘½Mìmdo{×|?8çîýðÛìÒhÞFó6™·Ñ¼Mæ]3º¬ùÛeŸ¯›¼äm$oyÉÛDÞ5³Kã.»Ø»Þmôn“w½ÛäÝ5³ ½»Ï×íÝFï6z·É»ÞmòîšÙ%¹Ë.ön£w½ÛäÝFï6ywÍìBïîãóu{·Ñ»kL„x÷ù¹Nâ]3ËL.³ŒÅÛ)Þ¾Hû}Ly÷ù¾¬Ë¼kF›Nóîãóy›·Ó¼kD›.ôîósÔ»f´éZF›nõvª·wµ{÷ù¹Lî]3Ûнûø|ÞîítïÙFðÝçç:ÉwÍl\fË·S¾½ÔFôÝçç2ÙwÍlCûîãóyÛ·Ó¾kdáwŸŸë¤ß5³Íà2ÛX¿ú‹mBüÝçç2ùwÍlCÿîãóû7èß5¢MÀû|_ðšÑ&n.£MXÀAGSxŸŸËdà5£MÐÀûø|Þxl#ïós¼f¶é\f+8¨àHµƒ÷ù¹L^3ÛÐÁûø|Þ:xl#ïós$¼f¶).³%”pLµ…÷ù¹LY8há…ÃNZxh“Âð>ß×¥4œÒp^\F›´†“·mRÞçç2y8åᤇSN{8éá5²@¼ÏÏuqJÄÙ¸Ì6qRÄj³Hüý¿}ŸŸËd┉“&N™8m⤉×È6 ÅxNªTœRq&—ÙÆ*Nª8‡Ú µj#§\œtqÊÅi']œrñšÙF.N¹8åâœ\f»¸è⒋׌6%—\\rqÑÅ%—]\tqÉÅkF›’‹K..¹ÿ K..»¸èâ’‹×Ì6rqÉÅ%]¼Ïçí⢋K.^3ÛÈÅ%—\\Áe¶±‹‹..¹xÍl#×??3ÛÐÅ%—]\tqÉÅkf¹¸þ¹øù›ÙFËlc]<äâ5£Í‹kª\\tqÉÅeºxÈÅkÆoÈÅãf›!›Ëh3ìâA¹xÍl#‡m†\<èâ!»xÐÅC.^3ÛÈÅ{ýëû9Ù¼f.£Í÷îßcn´yÈæwF›‡l>ëç1dó;Û‹}Zû4ú4ú4ú4ú4ú4ú4úǦ<6ðØÀc <6ðxfécð±ÑǦ>6øØàcƒ >6øxféc ²‘ȦD6Ù@ä{¿ï‘ DžYûÀÈÏë?ïQ#Œl0²ÁÈ#Œ<³ö“L6e²É&˜l`²É3k8ÙèdS'œlp²ÁÉ'œ<³ö•T6¥²ƒÊ*;¨l ²Ê3kXÙheW+;¬ì°²ÃÊ+;¬<³ôqpÙÉeW.;¸ìಃË.;¸<³ôqxÙéeW/;¼ìð²ÃË/;¼<³ö™dv%³ƒÌ2;Èì ³ƒÌ3k˜ÙifW3;Ìì0³ÃÌ3;Ì<³ö›lve³ƒÍ6;Øì`óÌYº×>×~ŸO7‡º9à怛n¸yæwé^úÜûÇùÚ'”Î:è s€Î3KŸ™¥Ï½ßçÓΡvØ9`ç{¿ïƒgÖ>†>†>äs(Ÿ|ð9ÀçŸgÖ>Ž>Ž>ôs¨Ÿ~ø9à瀟gÖ>ðó½œ>ê瀟~ø9à癵ü|ï÷ùôs¨Ÿg\ÏÿøùÞïûà癵ü|ïçkŸT?çxùùž„Ÿïý}_ÂÏ3KŸ„Ÿïý>Ÿ~NõóŒÒ'áç{¿ïƒŸg–> ?ßûÇùè£~NGøùÞïûà癵ü|ï÷ùôsªŸgÔ>ðó½ß÷ÁÏ3køùÞ?ÎGõs.ôŸïý¾~žYûÀÏ÷~ŸO?§úyFí?ßû}ü<³öŸïýã|ôQ?¯—öYðó½ß÷ÁÏ3køùÞï÷ÐÏKý<£ôYðó½¿ï[ðóÌÒgÁÏ÷þq¾öYêçeè³ý\{–÷ÀÏ3KŸµý|}hŸE?/õóŒÚgû¹ö,£Ïöóþ^ûÐÏKý¼}}}à癵O O ý¼ÔÏ3jŸ…> }à癵ÏBŸ…>ôóR?¯FŸFŸFøyÁÏ«Ð~^ôs©Ÿg”>õÒ>÷þ¾¯àç‚Ÿë¥} ~.ú¹ÔÏuhŸ:´Ï½ß÷ÁÏ?×[ûü\ôs©ŸgÔ>s?Ï3ôŸ ~.Cø¹èçR?W Oüdòž@ø¹àçrôŸ‹~.õóŒÚ'Ñ'Ñ~.ø¹}à碟Ký\…>…>…>ðsÁϵÐ~.ú¹ÔÏ?Ϭ}àç‚Ÿ ~®Fø¹èçV?7ü<³ôiø¹á熟û¥}~nú¹ÕÏ ?Ï,}~nø¹áç>´OÃÏM?·ú¹á癵üÜðsÃÏmè?7ýÜê熟gÖ>ðsÃÏ ?w üÜôs«Ÿ~žYûÀÏ ?7ü܉>ðsÓÏ­~nøyfí?7üÜðsúÀÏM?·ø9^êçs~öÙû}üÜðs7úÀÏ ?ÇKü|ŽKÞó–>{Ý·?¿ÞsÎÏ>çüì³÷ó]ßshCCõóþ|¿Gý|Î!ïQ?ËõŸ÷¸öqôqôqôqôqôqôqôqö í“è“è“èèèèèì³´ÏBŸ…> }ú,ôYè³Ðg±OiŸFŸFŸFŸBŸBŸBŸBø9Þâçs”>3KŸ·úy~¿ç­~>géóV?ËõŸ÷ˆŸ¿ÇÚûx+§ÏYr½•Óûóý<åõ9K¾·òzï÷}oæßÖ㹆|†|†|×çû=†|†|†|ë?ïñ¿zï ô ô ôrôrôqôqôñçÿ\ç{Rû$ú$ú$ú$ú$ú$ú$ú$û,íSèSèSè³Ðg¡ÏBŸ…>‹}Zû4ú4ú4ú4ú4ú4ú4ú4ú/és(¯ÏYúÊëýùýžCy}ÎÒçP^ËõŸ÷ÒçP^Ÿ³ô9”×ûóýåõ9KŸCy-×ÞcÚÇÑÇÑÇÑÇÐÇÐÇÐÇÐÇØ'´O O O O O O O O°OjŸ…> }ú$ú$ú$ú$ú$û”ö)ô)ô)ô)ô)ô)ô)ô)öiécàµ×öBŸFŸFŸFŸFŸF{K¯ ¼6ðúþü~×^xý¼þ|Ï1?àu^0¿³9:Æ+Ÿóúýqùçnþãàùš©&¯™{ä5×~ß÷ùü~Í7 Ûãl$_¿RO7}k›@›@›@—6Ž6Ž6Ž6Î6©mmmmRÚ$ÚÚ$Ú$Û,m3ÿZ?ÿ¼æ³Þ·-)³Pf¡ÌB™Å2­eæ_éçŸ7Â|Öû¶–..…...óûüì2?ÿÏ.çø|˵¾o»>¾Þò¡€l¥Ë½ß‡¿Ðe~›Ÿ]f”??´ËµÞ·Ï.<¶oír‹i×.Ž.®]Lºººº»„v íèÚ%¤K ‹£K K°Kj—¥]º,í’Ò%Ñ%Ñ%Ñ%Ù¥´Ki—B—Ò.%] ]ºº»´t™Ÿùg—s|¾åZïÛZº4º4º4º4ºÌoð³ËŒÏ??GyË[º\_oùüÜ?¶/írï‡k;´‹iC“.×Ç÷[í2³t¹÷ûðƒ]\»¸vqtqíâÒÅÑÅÐÅÑÅÙ%´Kj—D—Ô.!]]]]‚]–vYÚe¡ËÒ.Kº,tItYè²Ø¥´Kk—F—Ö.%] ] ] ] ]ü%]f|þù9>ßr­ïÛ®¯·Ì¤]Z»ÜûÇáÚÅÕ½~H—ç¿*ÇÒÅE½õ:ÔëP¯S½®êuÓ.ßç>Ž3í"æu˜×a^‡yæu5¯‡v t í"âuˆ×!^‡xâuïŒòç‰.©]Ä»ï:¼ëð®Ó»®ÞuõîŒÚE½ëâ]‡wÞux×é]WïºzwFí¢Þuñ®Ã»ï:¼ëôn¨wC½;£t õnˆwÞ x7àÝ wC½êÝ¥K¨wC¼ðnÀ»ï½êÝPïΨ]Ô»!Þ x7àÝ€wƒÞ õn¨wgÔ.êÝï¼ðnÀ»Aï†z7Ô»3jõnˆwÞ x7àÝ wC½êݵ‹z7Ä»ï¼ðnл¡ÞMõîŒÒ%Õ»!Þ x7àÝ€wƒÞMõnªwg”.©ÞMñn» ï&¼›ônªwS½;£vQï¦x7áÝ„wÞMz7Õ»©ÞQ»¨wS¼›ðn»÷þq8º¨wS½;£vQï¦x7áÝ„wÞMz7Õ»©ÞQ»¨wS¼›ðn» ï&½›êÝTïΨ]Ô»)ÞMx7áÝ„w“Þ]êÝ¥ÞQº,õîï.x7áÝï.zw©wÏ1ÿúƒcýŸÌ:Ê•[Ç º£Û¤Diÿu|å×Uú$¶˜ú·äߢ÷ö>.q¸Äá‡Ë®eÒþ{+=\òpÑÃ{{_#—@\1ÎÉŸTßsH≋$ÞÛû™¸dâ’‰ñøsNWª¸¤â¢Š÷ö>G,.±¸Äb<þœSªC—`\„ñÞÞçHÆ%—dŒÇŸs¦êÐÆ%m¼·÷9Âq Ç%ãñ猋uy<þx¼þóßóo½ýwÎÇŸßmù?çܬ3(äñ'ä÷)佽ϑǑ¶/ýºë„êÉ#U‡HÞÛû)y„êHÉxü9§©<šêÐÉ{{Ÿ#(TA?çtÕ!•G©©¼·÷9²òèª#+ãñ眡:ÔòªC-ïí}Ž¸GzžMu¤g<þœSªC?ÏRúyoïsèÙUG€ÆãÏ9CuHè9U‡„ÞÛûzÕ‘¡ñø÷œ¸.ÔùÎ? ßñ·Îþü÷Þ»ýœóYg¢Îûýç×Cç|P'.Àù;Þ8p~·÷9¤òwNœC*óñçœP`P``Zù{<ë„êØÊq¥ê4ÖiªÓX'Y'UgÍ¿Ë©8¦r\]q:ãtÅéŒÓ§+Nç꥟v™R™Á2CeËË”Ê˔ʘÉqM•™,3Uf²Ìd™©2“«—~Ze>4r|`äïˆ2ùÝþ»åC#ÿ›—Id¾ý\C"g,Èûóûˆü/~æ꥟v™P™d™T™d™`™P™`™Pó8>MeË4•i,ÓX¦©Lã꥟v™®2Å2¥2Å2eºÊt–é*cÇg¨Ì`™¡2ƒeË •\½ôÓ.CÇ G”¹/–™,3Uf²ÌT³8n²ø;ÿ.Üdñþ¼Ÿ»Áâïxñ3W/ý´ÊÜ·ÊË„ÊÀÄïö¾…&þ7ÿ.“Ä|û¹&U&Y&U&Y&Y&U&¹zé§]¦©Lg™®2eË4•i,ÓTÆŽ»T¦X¦T¦X¦X¦T¦¸zé§]f¨Ìd™©2“eˬ÷7?£Ìßç÷Ç ‡(¤pˆÂA )¼ÆÏÏ\ýÜüi• 98èàƒƒ:x(³æß2ûóûãƒC 28Äà ƒƒ ^#ËWYæ0pÈÀA‡ 4pÐÀkdx~ü0pÈÀA‡ 4pÐÀkd™ÎU–9 2pÐÀ! 4ðY†ÞŸß? 2ðš;ÒÁûûû ¼F¶™Üe›CÁ)çbîï5)ïïû¹¤ƒ×ˆ:IïÏï¯N9xͨ“‚ðþþ>H ¯uR»¨“‡„SÎTQxŸ£…×È:´ðþüþúaá”…×Ì:Âðþþ>H ¯‘uwYçÐpJÃYª#ïïïsôðY‡ÞŸß_?<œòðšYG Þßß)â5²Îà.ë"N‰¸]¬ÓDâýý}Ž&^#ëÐÄûó{Ïaâ&¯ušP¼¿ïU¼FÔiî¢N;Tܤâª#ïïïstñQ§ÑÅûóû뇋›\¼fÖŒ÷÷÷AÊx¬“ÜeCÆM2n]uDãýý}Ž6^#ëÐÆûóû뇛l¼fÖŽ÷÷÷Aêx¬SÜeCÇM:nSuÄãýý}Ž>nòq£›|ÜwùxͨÓäý}?Ø)ä.!÷‹»¨Ó!w ¹ß¬ÓEäýý}ŽFî2r§‘»ŒÜ#wyͬ#$ïïïƒTr—’{p—u%w)¹7ÕYLþý~Ÿ£“»œÜéä.'÷ÃÉ]N^3ë,(ãž®:”r—”{ç.ëRî’rª3Tg¨­ÜeåN+wY¹Vî²r—•×Ì:²r§•»¬Ü'wYç°rÉÊ%+¯uJV.Z¹d墕KV®ÃÊ%+—¬¼fÔ)Y¹hå’•ñ¯²då:¬\²rÉÊkfY¹hå’•‹V.Y¹+—¬\²òšYGV.Z¹dåjÜeÃÊõŸVï×ÈÊkfY¹hå’•‹V.Y¯?÷üçÕçYyͬ#+­\²²wYç÷íçšÉ:CV^3ê Y¹hå’•‹V.Y¯ÿ»g|XgÈÊkÆßpÈʃV²òøpuðösÍ­:²òšYGV´ò•­¬ó!¥¿3ê|Héwÿïž)½fî¢Þ~®¹U'T'T‡”~÷÷5¤ôwþ­ó!¥ùúsOªNªNªNªN²NªNr—uò¨ÓT§«NW®:ušê4ÖiªÓŽ:¥:¥:¥:¥:Å:¥:Å]Ö©£ÎP©:Su¦ê Öª3Xg¨Îpûb›”þΨs“Òïþß=7)½fî¢Þ~®ù°ÎMJgÔ¹Iéw_CJçß:7)Íן{BuBuBuBu‚uBu‚»¬GT¦:Mušê$ë¤ê$ë¤êäQ§«NW®:]u:ëtÕéÿ»:×È\λh(ÐP ¡@Å@¥@‹Ë8¨TÈ^Î{ªÐT¡©BS…& Mš*4Uè sˆÌ!2‡È"sÌ!2¯…BfŽÃÌ!3‡Ì2sÈÌA3‡Ì¼f ±96‡ØbsˆÍ!6ïý}ؼf’›ñüsÜrsÈÍ!7ÝróšYHtŽƒÎ!:‡è¢sˆÎA:‡è¼f’ã°sÈÎ!;‡ì²sÐÎ!;¯™…Äç8øâsŠÏ)>§øäsˆÏkf!ù9?§üœòsÊÏ)?'ýœòóšQ(Eè<"tŠÐ)B§$tŠÐkF¡”¡ó0tÊÐ)C§ 2tÒÐ)C¯™…Äè<btŠÑ)F§dtŠÑkf!9:G§rtÊÑ)G'rôšYH”΃Ò)J§(¢tŠÒIJ¯±~f¡¿ïïÏ–n²t“¥›,Ýdéÿs^v»q#G¾×SðR¾ˆ†ìßjÀ0à¿Ä°±š c1+l%–F±Ù·Ou“Mòr¼Ù¬Å”jºªø±§ùÑ£KkØ ¦PÍÏÊ!O:íI§=é´'ö¨Ó!PÍå>íɧ=ù´'ŸöäÓ}ZC$d‰%B ¥ö¤Ô~Rê²€ŒÚ“Q{4j #@n4_=‡ŒÚOF]P{jB­!â!¡®ù©:Ó!Ÿö‚tH§=é´GÖéN×|­¾°iO6­q4³$Ó5=öC™ÖéL×üTèré î<'J×tíP¥5:Tºækõ…I2içt‰tMýP¤5:Dºæ§êL‡<:8¤C]Óc?Ôh ‘itÍ×ê ‹dÑ’èšû¡DkˆtH¢k~ªÎtÈ¡CD:¤Ð5=öC…ÖéB×|­¾0è@­1Ð!®é± ´†H‡ºæ§êL‡ü9¶@'’>×ôØõYC¤Cú\óuœ…=G²gçt"ÉsM×~åYC Ižk~ªNt"¹s´H‡Ô¹¦Ç~¨ÎHê\óµúÂœ#™³Æ@‡Ä¹¦Ç~(Î"皟ª3òæisMýP›5D:¤Í5_«/¬9’5k tHškzì‡Ò¬!Ò!i®ù©:Ó!gŽ é2×ôØ•9’2GRæ(HgaÌBƬñœŽ0×tí'(ÌBÂ,$ÌÒYø²/‹:Bº\Óc?Ôe!]Òe逎,lYÈ–Å"{%n^Ï”e!Y’e±HgáÊB®,éø+ ãx¢ƒ®,äÊB®,èʲpe!WÖ袈º²+ ¹² +Ë•…\YéÑ¢ƒ®,äÊB®,èʲpe!Wte ‘¹² + ¹²+ º²,\9‘+'te N]9ô1ºr]yL„®œ®œÈ•º²†@'®j<§“FWÓ@'¡+§…+'rå„®œÿã8¢ƒ®œ,Ñ!WNèÊм‡\9¡+kˆt<ÑAWNžè+'tå´påD®œÐ•5D:‘è +§@tÈ•ºrZ¸r"WNèÊ"!:èÊIˆ¹rBWN WNèʾWÎáœÎ˜û¡+§DtÈ•ºrbWö-ºrŽã|œèŒé¡ß¸¼'‡s:9žÓóSuGã¢c‘Ž%:èŒËë8èäØÃ8àÊؼLJtÑqDÇ!GtÑqH‡]Ù·žè¤ˆN :éx¢ã‰ŽG:ìʾD'"Ht"щH'Ht"ÒaWö­„tÑIDGŽ!:‚tØ•}‡®œã9 N×"\9‡@§CWóSu¢Ó¡+—X¦oøÜ9‡@«3H«.¯ãJçàu¨Òc¾6c•öڬ̧µÏÝ“H¹k1ÏðmHWtwLgR!§¯KƒÔñ™Æ}?i‚Wc“Ù|»ë­Ê±/¶ÿ~Wax3Ëg3-å{YL]‰cÍj5©¹ò97ø†ƒ0Ú:wÖ÷)“ÁI¿+¬My7—ú+¿½Ø\?îšçÏ7ï^ÿôF+5/^¼z£[¡m¾\¼Ú^l^›_Ú¦k¶·ú—íMÓ•³Õý'“ß ÌP°µÍöþâyÛšøbû¯‹Ívk†¥W¡sºfûùâòôLSo·ý†Û|˜ZûÚ:·Ýn»º´m»n½u*8êÄ´.·¾|»»ùÚœÿïfw<ÞퟜÂþàÚm’²OæüóÜÕųW×J.^>)¿ßmœ¾Å ¶ùxÙüúû³Î\žòÅ|ÚþmjùúºmnžÊò¶ižn.LȻۋnÖ¼#TòІ²÷Lþ{½ Uc#S:–³îÛ¸Z㲇Ú9m†°ë‹·nˆ[7U›å½LËËhýÏZãü}×(ç>Ÿ‡aûi†|”þ‡s;Gl<ïÝí¶a6ó_òG­9·ù ,œË§.ßNѦÜ×~3_^ï÷ÍîÛÓ¡9}Ý7Çýýîøïæî¡Dû‡ÏÍá¶l¦R¶MåF–Ú~ØíöJß,®ìø[¿£o¾þ®š3[ÆÐV®¥”é\Ý3¶\K*ב†khLÌOÒaKÞïwOßûÏÍãîtÚ~°û íR3oi§«#rV_Pô¶æ®n8.ß}øé—Ÿ÷Ÿ¿ßìçíº|¦ºÆH9aË o9C{½—³¤îÅ®+ÇqùNIçc]±õµùYÓŽkÍ;jZêõÀçÚÎ’ÞŒIƒ3E3þ=¿L9i=[ ¯g‰¼¬’_ߣº5ôÒ÷7“~³;íN¿?îpkÓÿÔ ÞJnð׿¿¹]»“>dîçÀ¬g+˜õ,ÎmÛ?ÆeÁžmÁ÷ç‘ØîO!áÒ×ÿx·Äægù9«ÉŠc59;´Àù¡œ=Y|¼®\9ôÍ µÃôÇÃátîÔ±vµI-W`t‰ Þ|Ý=|¹{øÒ¬ÑW¾4m+Hd=[‘¬gçãºÿÿì²…U$ûÇÃñ¤‡äéî^/äé,ÿÇx!ÔþuwÜçºûU<út÷î,žõlųžû£gÈèk¦Kújêt¾ß¿|}ü~~ÿÄ?Ô&µ,¨ÿpxX…Óé™l‡g@ó¯p~(ÙsŠ3‹‡'Å=ó¤8³v%;-ݼ<žînw7§Ìâåé¤*ªÄ>n^N§Ã}ói³ÕºÙ|Øé/ewº;<4›W¯ÿi>Öý¨o»QŸÀ¢ ƒèˆå-¢õͧèæýëF!·ÍŒE-ôcЧÉYÁÑ[ / øF#ÏzUŸ,ÿ·ü•h?9Ü_èf{§í&™*Òª5ÊF£ó›Yþ÷ßÂ2= endstream endobj 38 0 obj<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 39 0 obj<>stream H‰ÄW]oÛ8}ϯ 0/ÉLBó[Ð)Ðôc§‹-¶^ ‹¦(TGŽµãH†¤$Mý^R”õaRv܇íCâ”&/ï¹—çœ;{QÖÙ2YÔèٳًºN«ô}™Í‹ ú:›?nR4û˜ÜdyRgEŽf——Åô…Æ Gi¢0—H Š…’ iF1D¢¯ÏŸ_¾z‰Nf^¢Ùû—Ù¿º9¡(ƒÿþÇ'ø\\ÎOfó9AÍ—°:_ øñ?мB”˜ß?Í•ð& >÷‰Æ 4¥˜1ÂÑüöäÍÿkΣÍyðEB„9Õ~dæhÆ°”‘9óúäôm^§ktÅàæï?¾E—i¾XÝ&åß•;hçbÇÒí¶á^ÏO ±¶X(ÄÇp;,Q™ž,O^¿‡´íÙGðû—o_Áv‡N“¾»®½­¶¡0"jãs²Ë>¹¬#Eq¬\Ös, æ¿Òë»Eú­Z$u–íåƱ™'=¬8s1}HG‚´1·H¡eQ¢z•Ã}Ú$yQ #²^DÊ;hGa™æ˜ŠaX(Ò·aš¡,#o–¤ëá‹Écº-ïò…i}ì®P‚îÓE ‰K›·­µgÓÚ1‚ߘ™Îƒ.Y§ùM½BSé0@ͱ Ø^4ÞÖƒ¬´»ä;ô'ú<«²Ÿi±¼:]®‹¤¾: a‡;^n‹½ŠÉ(¸ ‡²:½­0šC/˜·tÔÉEmØ#«&rçä¨æ"Â|x ÓoÞ}x1¤ÍéDÚq—¶ôÅ“ö(Þù¶í{…jz‹›#.8V`ýV0¸›´l˜tvÜ£‰8pPD4V¬‡Ë§¿¡Â{(TŽã`ô6·´´Y%Uz¾‡¸ðæ9hxÁ¨ £½ åã§7[!Þ%y›Šƒ¦â4m’òÚ¬³%U¯æ½-]_0Ž£H÷kžÞ§ùúÑlÛU•}_§½þr»~AafPšvô•o€~Û”W•VçÈPEù{¾ù£BW§üñÝ×(ß\‡@õ³é¶?(ÍKÞ…$‰ë`ͺGŽ}h3Ž@‘•ŒA!M¤ÚÀêRF°o™äOᇺp„°¡?Ål4I\^Y -A­Ø3%ÚO³‘ù5ˆƒnÒzŠ2}R³pnLÊ Bù å¹t’Áü’\Ri^•mÿ‰„øU„ãØW•ÙKöÍ]õ`ðæycëÜAFë['X…ª1~þ;¯Ü€Ã{£$¿žJZš4˜¥F e¡Ž/ŸðKU¿èÀT$8gxûê‰#êçç– ê’0ÂÄðox"/áwSZÖA«ÂÎÞ¦¦)ˆiB}JS”¬«Â*g™Z—5ÒšBë8ÏÙó-h§3€^n¿ÓdÉ1‘Â}#˜Ë„C¢¢Lå“&ÍÜ×`u›&Õ] CäÆ©9Îåp*0U6htØh@ca_b£ðGÌüÐÍŒÖ[„ Ë8Ý|Å®rˆ nÌ¿•Ã@HÚ­ D/ê픂š-þ½E½]cà 1Òü'µ nãYjOô,ÔÎ z`ìS$†¿z ¿co|ýÄ»?èü¶ˆãów<|‹<<£ þÕÿêðÚ~â À"c”Õ»ö‡M¿‹ ²sòȼ;8¤VX²UG`µÇ†oÈHbjͯѣtS”50AÝfùM"?IoŠ•ÁÑß%‡c‡ÃE ND@¶ r=Ç¿Ú‚ã_íÝÖÏø 8ºGø°‘"ì`³*‹»›Õæ®ò²ßIöñ!1xÁùy‘û±‘ ÇŽrhd:®Ï9n5Ä‚ÍŽÝj€{=«ÝÖ>~u"A•hARiKá‘ÑžŠ7‹yÔæšMƒ”‹B5Ž[³`$X`Ž^¬×¥•¤PX91"ènôa£qOfÚ$Íès™æ‹•µ Ë¢´ž!LKrb`˜P_¦¹y .lÇSÛlCÉfˆÎ$yG<®èN8´¼ËuVä5š_¡ݧ‹r´Nóú¦R÷k`hVrE:†«¸;¼C¢Ï³*û™Ë«ÓåºHꫳ`¡§ÆˆÎSÿöxÝÆkl8Fs(3T]ƒ4_mFÙÔ (ýJ·¯î^h4¼…W¯ûiû玞wm‚J_<3Œâo;ºW©¦w¸9âÂ0B¦U„õº–b“–‰é–=°øÇ•½Ï!~Y'ÂdBµû  ½3_´ðøW[xü«ýëNˆËôpÂ#ÖɈåœádpþÎpÒ÷âü8£Ï¥Â±ÚgôEØèë­Ñ§NŸs†©vCVãô…qú7 (bŒ+n[¦¡ö[kq¸”Qõ+RÆ4Û±÷MŠžžf1h¼H™YÑI™¯“2·7 eþ­½EØê—2¥!Ž ¬¶ûWGàûÍd u™’{&eT?…ºw\þgþÚWH0~Qïb‹Šw±ÿü¼DA‰L"ÀŒDùk½õw8m©aT59 ØîÁ|>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 41 0 obj<>stream H‰¬WßoÛH~÷_1À½$t<¿%‹â´8ô€ÞX?Ü" ª£$¾K¬@V»›ýë#lLʲsMÐC?r>~œ_Uõú!_Õ짟æWu¯žŠ{v3_–¯ìn¾|{-Øükþ¸ÞäõºÜ°ùbQþÉndæx¢Y*×–Y#¹qÖ±TI®°ìî矯ÙlþË5›¹¬ùM°Ç™dkøó?~…ÏÛÙb9›/—‚I¶|ërÅàÇðƒ-·L ÿÿ_þOüÂ…‚"|’YÊMÊR)¹RB³åËì‚].ÿãýÉÖßø¢Æ{m>*ïZ)nmâ}ÞÏ.>oêâ™Ý*¸ù—¯ŸÙ¢Ø¬ž^òê¿ÛàèàbMg6œnÂ}ZÎ<YÚ`á˜6šÃí¸eU1{˜}úi7?濾æñ—ëÏÁo¨E@õn,µ7ÌWKÃ¥c‰þµù¿z~~Ì맢únÓûº‹$âH¢©ÁÆÒÎg—5ñ²[ Šbùö{ñš×uQmX?œÌ w†%‰ä‰‡‰ò?Ò‚ž1-wiû•Æª!=­ˆ£ðÝQ¥ÁÐ;é›.¡‚öŒéΦâ YÛþQ:ÿÕè6ˆ©óˆ˜âÒªc¥m; ïçÄø­Wßy×ð£êFñ4꟡ÿÅoËOX)uÊ•#ñÁ­D¸µ×“æüžTŽ§]ÿWÅkYÕГõúe½yÜ2â X4\ç¹AFëØõ·¼*¼Ûís`¹4Ý%¨ÓÜÚƒ[{·u#à¤8Ãâ›ô›§ªüþøôú½¦àIŽÂ#2çb÷›rƒC#Ìî±ÉÄw\ôäZ+IøáŽZ+EøYĺ?Úà E1Çž«Ë,7ÑøAðÍbßa:5Ã)kë©“$9‚À§.H"¼DsÍK¼_—ùó3T 4*ÂjhÅžÿdçÿ@+2ŸVº›¹Z¡gϺÄv×=”tmÜ^ÊÃ9ïǪTsà—(l˜¡>בx'ÐAm²ƒ φ835ª½nqX2ÚÚƒ8ìáûfåegŸ~Õ{­ÊU±Ý²õÞÿv QG#*äÑã@W™…àÿþûíÅßBÀb{{IåŒÓM¯víG‰V02ŠãÞ\°oou±½ü`.ØíÅåÝòŸTŽ)]Å(; J.$Ge“ÑÌö¯@£” ]¦éý$xW¹ÛK–oî®VÅúG1VA#Nª öR=§‚FÒd9ÌÑjÏ]ƒ$½ßæZûr«†?hx –}\i{ݔ֗•Î×[‡UU*客à}ª#e5š.«Û—mQÈ!„aUù2¨+§ˆÕœ¯ŽœH÷#zT±0´gñiД>j&ùôÑNf;ùs°"x#@GÉülPá,¡ð£=cfˆ-¡§YBÖÎ1n`3/12m¦öûî´ýÀ$§,ˆÁ¦ŽrA ¬ÂÚ¸›òlÄvê†`p®‘ïÑÁ‚fäŠ@X;xpk¡çîÖ¦ð¶Nß,ÎùKBäŸZ¬×,ä’¬ ‡ +AÄYÄŠ. öý’×JÀGœ!yí»$o–¢è~¦ø :E˜F!Ϧvd4ÑÂÔ‚‚³æ4YcÝû…i?îtajq†¦„iœ• ±ÑN¦Q˜wS›#LÏ© ÃiqL˜ÆIþ_…©“§ Sô—Û7ÜM¦Q˜ Â4ÎɼG(x$Ö!,ôƒÊ—áSd€%Í)ÆŽI­¯®L½Ñ‘# ?&R{”HøɞѲԸ”§”úÂWÔ8(óyû@½MöËÞ4ꦉஆj` KE¢„[;˜pk¿9“ó›Óx¿'jT‡3úP£F¾G5ªÑÖçEhTÂÚÁƒ[û×Å%õj”áÚœ®Qœþ4jäÿ@£öJ\ôŠ£@dû E´‘M)¬$Ûà‡;ºi­ßàg+*€å`úÈ¡¨€ &I@&K;dàS@F§†›zÍ57ÀE‹U¾¥‹JÔ€íÐÎ;3R íüóE%7MH‰:On»f³B6åS¤2ć\j²O•Z‰ƒxœ]±ª,ëÆþV•ù½¿À˜JKðÉ~¨VŒ±¾ £”ZIììË'Q½blÓƒý@‘¤®KÒÔJ$¬{Áq=¿—­¾³dë$™eÚôöÙ%lh ²åC³­•¯E•û­†­·lõ”o§Vo«çõ nö6&¤ä»„”Řˆ‰ý%ÏQ>Žê²™ ¢´Îvœu ¢¼ÚŒâ5ül µp– 5ühϘBGi¥¼(&$aíãÖA¡qe3µÐ}æü”$”Π؈nk{~X`ØôÒ¾LªuPÁª$÷éÆj7v@¡Æ~‹ŽH)%Ãú–ÚëQå÷Rh^'õ&è' ë^äðÚ¿jPeX³«4ëš²2qëàÆnìßuL<¿Y•¤\‹‰ÚR—N^[F¾Gµ¥J4WŽ·vèàÖþuqQ0A[*'÷ ‚¶Tjš¶Œüÿk¨-;p,¼JýµFŠ$ñ£$[#Á‘øÉC#*ü¡QŽ)ae๠L ÷ZUÚª4#²R ÉÊŒ-òªZuL›ybBr+¦ŒÅ˜žÕ»fš©þÐoÄ h=#¦pcstƒaG»þjR †ìÛ1ƒeæ|~Ä &¬Á1aí×yd¶©³„m%q‹è*0f€J#ߣT*“ÌÃÙ¥¨ãÁKX;xpkÿºc“f”J¥ƒa s”JõñYÓPiäCP©tŠ;Eqi°R½NݬD·g+J¨Z✷'½c:Ýc:©-W8¡^Uõú!_Õ>ÆU]ç«'(ÇÍ|QÖuùÂîæKulþ59Ó.-óÅ¢ü“Ýt¤–r™ÀcI!Øx 3À©ø.\tþË5ƒË FPu³«XÂÁ G‚ëöF¯Ž}ÑDùÃ%цûÙEù¾ ´l+›ÝÔ¡Vá³*¦ùñ?ÔV endstream endobj 42 0 obj<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 43 0 obj<>stream H‰¤WkoÛ:ý`ÿ?:‹Z_š´¸ð¹íÞzÑ ô…c+Ž¶~äÚNûëwø’Hjä$. ¤a†Îœsf8¼x½;4·³ù¼|yñúp˜Íïêùt1ÝÞ“ÏÓŸ÷5¹x?[6›Ù¡ÙnÈÅååöùD«"+9Qy‘qI¤ ™(dA£¹$Ÿ_½º|sEÎ.Þ]‘‹ë«œ˜UN–g”4ðçß>Àïû³ËéÙÅtšJ¦·`Î üø?ÈtOh®ÿÿŸþÓYÎà×ÜýF+• E¥c9'ÓõÙˆœOÿ«ýQëo ó\h¯æW¦]3–IYjŸ‹³Ñds¨Wä/‘_¿ŸËz3¿[Ïv_÷ÎQ/08WÒ}mŽ{;=ÓXTÊ`Q.xÑe’ìê³Û³·×¶ùqñ^|}5yŸ;tlú.\miŽrqÃy\{6Y›ß\Ö¥¬²\Ù¬?9WªA cFîÏ™ÍÎÇt´;í-™\_’óÏÓéHÓ@hHâÆ:Ü p”œe*wLïš=Ù×s£”Ã]MlHî/{Î ýcüöÏ)™mæ÷É»d¶«ÉüaU/²¿þá±M#f(t6b©#¦-ÊÒì¢íBÍi–-j| !žSZÈÑMKý X+Õ˜:‚–Q屚ݬjBuž6|Þ9¡ÚɈÜÔ«íw2ßn³Л‘U³7œÎV+ÀMšwYÁ@=²Ê ôr ø3Òå–™ŒëºÚõm³iÆÆIÂw¡=«1 *;Ë¡æiÙ|«7¤Ù´\wYTa­0E]("cíI´;IšW.äO£Úíý zÒü|ÌGZÈ«Ùªé¶Þ‘ÃÖÒ“žUeBðî(ýoð8žåRø¾Ýî@…Éýjæ:\—KÑ~I ­c&A]*€¸Ð2ÄúázшX4,MÀw‰‰†±"* JN4¯—Ë]½œ ²¶‹z FäpU3ÑÑ“Çó<ãÉq/Rb ¸ËÊ’…¨Ç¥Æ¥j=sŽZ° *. ô÷íf|³Úο6›å1hJšô!ôïð€O#(ÃÕÃz“óù?@øðÓèE ²»"ʬ(¤W³Ôòu;ÚeQ«Œ¢ {´ µ¨÷ó]sSï €mé’u}¸Û.¶«íògF†º£nQiy£-ª¬W-ò®¡×db»l}‡¶}„á*Ž…*¤|X….Ñ$ˆ]=[ ò}׆x¥ù`æ´«.±#S½#ƒžiÞ¢>Ò(a¤¨ …L_À!4V¡f{²hn¡kÕ›CàïùÞîŽGéÉÈQRÀœûªøÃ÷ñplX2e.9Ú44Ò9d$?~R~¢dPŽñq7?ÉÄ%i+3ðTLŽ&/†“´;sa®tèš•¿ÒõÕWíf¶®áÖ ÏÿæE™q"+˜™Yûe)ÉêŒUÐX²°a­*hKé²”0ÔÀÒ0ë¯ýöÿ$H­Ñ.ƒ3+€Œé±6™‰õßÁ¦Ð#øÉ•™/”ÝÙ^9zÂï_;´»v*ƒaE¼s•wt¶ó·¿y0~÷ð‡9[‰øûgVqxŒt@ûµ—UFY²ðXñBf•è¯=¶ &~Qô×(ÖÁ±°¿T8رKˆG ‚]<våß‚†ˆûBÄây"ÁO£¢üüÚ@&ô,Ë’…Ï_”<Âϯ=^j¹*úk¿4ŒþaeÌdcˆo|ÄúÙ!Æ”Ç)0W„ÇÝ{ qïÍ+ô´™T>¶<Óƒ•ŽQB`„êUz2;Œ1©oëÀ–x®ó°›ŒÜÂÞ’Ž×lÿˆ¸ºü®ðŒ¸ª’3ZVaTg!«fI*äÕ-o1uÈX˜0c-­\ ñ®$ÐÈ£·±˜‹ÒY‚Ê:yj ZOj ´œšÚ{£1·”QXº¶Û'k½_ùûBõ×~?vØ³à•§ÿ£p!¢WHë”J ÁF.úmM ÖTw!GW§¥É Ð7ŸÓõ\úöÏór4=WnôNëʦԫ«]Õ–Ì@]Y¾ø°º²nÊÂk-ëÆmÂ*ÇzID´¸5Þ†ígA3të~ÕX˺÷e*žp?ëÕÍžl««æV!±Xc2.>ú@Ÿ2p²¨`bq ÷c³Yl¿Ì =(ÈŠE­\_¡†÷aQ`CG蔢N»[æXFÕg‚9r ø ¤=µz¢zñ™/Óæî…‡~éE`I[vãyn§F2ËÇ&+LsðŠ(ã„P£5ú3Qc,4ÆN<¸Ú6Í¢Ù}yÿpÒEôü¹b_ò`ÊM…Æ+÷&} 2ùÊÆm_”’랸8"CüËÐ3Ê YÕÁ'cN“g1y>S†<• ZõØø­d£xTý2å“Ø€ƒŽ±AÅ ˆÉ³˜<ˆ)aCÊFÔÆåcdTÏ #ÿåÒàxÛOÉÈ–†¨K3920“#3Ådpz"BU)Ã}Š³§“!Ô/WçO!CtŒ 5X˜É“˜<ˆ)!CœJFTÆëùüaý°šê!xä3Ø(½4Š'±Q/b¸4“g1y6S4Þ\ 0]ëçü­,xCx2¤Ö•#ãúauhÆä[½Û7ÛÍžloÉá®6_¬{ŠädL3 pNßœf7Ûoõ ¢ê©Òª4ñpôéVS誎͟f'YXÔ™æHË$nõdâVÏ'nõ/]!¸þ›é VjöWædÖ[ÚÍ°„&'D ÛE÷¬M—~7òÊu5 —Bû¹Öe•ë’€}\õ*òÁ'®í4ƒwËYдëÍün=Û}ˆúÛ õe˜[z„x¡¥O™2«DíòM%Y¢€Eç“…+r2l.ú\Ê×´Kšnº9…¸½^.wõÚ+¹Þ.ê;^æ~Ö~éÁòRM×>ÓEíàò2Y¢èE'ÓôÆp#§4ÏÝF BvBû¼5FúB ßnnVÛù×f³4(⽂·Êô­ªmÊÕQ÷âLjÍ~ïö@ÿ³{Œj‚*§™ ÜwÂb‰hOì‰2êìÁ Ñz€ š©ÄGT;xÜjz0ŒNoª¥¹ŠÞ$ÛXâ'Vbrˇ“½1;)ETGØ¢f‘ØâbH½¶}›º­·}›ÒL•“,íæ p’µÞ^:]ûýXç6G1?!P¸`Š¡Öm²Rf¢0;±QOð~1õÇ=3¤3‡ÕçYá&³Ñäúr…–ÐKþ‘Üa•Î0eÁXHJ¦@˜Ä…öí{åøbKÙ2é†9Ž¬s?éŠQÉ3wJ1¨LvÝÔ‹¯“Ž¬2{÷Žù,wês8wæ¶}üÇà@‘Y@‘i@Ñó‡wèê¶Ê¢©ÚÅð‰S$#‚£ò‰988…ü,/×ÚÀ‰£d[Y/8@bX@bT@òŒá<ŠzŽ›¡§HãƒC#ç'N[çîÔûOº¨`p È, È4 èùÃ;t€‡¢^Yñnp1|âE|pì‡4û‚œÑ]hÃ˳ÖâÔWH$5°Ô B’g ïà!PFuÝ 8EEM¥‰ŽÆ­ewê½'Ž¢êå¡à`‘Y@‘i@Ñó‡wè‚FôOœÝÃb»¼ ÑjDt¨µÌ>s4n>#ˆ¹ææ!w ­Pmu½ð‰‰qɳ†wñ¬\Y?NxúYåññ¡±eDæqƒÃü<0{f‘é‰ ŠÌŠLŠžC¼S‡˜¤4¢ —í:Ô h3">Ô`êÃãƒ[Ðb®µ9öÆÀRÕVÖ \cïä!PJY7Nxz89‹8y n1#@¸SŸÃ¹3ilõÁ"³€"Ó€¢çïÓ! ȦΆï:&j0“ƒƒcp Á˵Ö×QIÚVÖ üà|è¡”q=!WÍ}AàÆÑA^&ñÑ”T–ôÑdJ4Å §ILHÌH^ñFoÛ ªH»uÄw÷Uqí srÇÇ’.¦4>™4t“Érc+H ™™½"Þ–™GFƒûÁý³û¶¸n‘¸¯Þ8ºTŠá¡öµ8 ²cv’Ô~¬1CÊ>+×Çáéà=³¯Bõ cÿÿÖˆ— 5wyÃTå“&s®H„è¥õ#ÎB‚?U¥Í‹:§ g秼ÌàO­hìO³‰ÊÄÓû²Ûl¿×?~lŸo¾¯¼'¼áØNÌa”á%ce¶¬û [ÜÀnCMZnö¤®Ž.¥ÌÁãRÈob~>;9¿˜Ÿ(q»|¾{xZlíÄñÍå÷v½œn«õjqWÙ)VÕâîay/®¦³MUmžÄÍôòïËRL/?×Ï‹Šð‹él¶ù#®ø&D·­4]9ëÝ=™š$E’‹›ÆÖôÇ™ ¯‰è˜”“ÚšLéߢ×d*'åû®'u½¼œ„½ÙG4Ÿ ›Uó€ì®yÙ´^õ”£Tñ™Cœºk¶þóO€šd endstream endobj 44 0 obj<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 45 0 obj[834 0 R] endobj 46 0 obj<>stream H‰¤W]o£J}ϯèGG m ›¯¹£‘&™¹«¬6;‘âÕ}ÈŒ"‚Û {1xiœLæ×ïé̇i’››¨êª:uêÔòsY¥›8©ÈÇËÏU'bMn—«bG~,W/;A–×ñCšÇUZädy~^ü$·NäÓ€‘Ðö)óˆÇÊ}Ï'¡ëPÆmüøôéüË9Y~» Ë« ›è_6y8qHŠÿã×òä|u²\­lâÕwW ÁÇ3>ÈJÇVß¿Ô¿Jü ¶‹K»¹r¢ò„ŽC]×fdµ=YÓÕ•=§¶gáAÛæʪ¾t•i×¥ž(›ë“Åe^‰Œ|wqò«ëKr.òäq—ÊÆÐÑÁàE^ó¶v÷uu¢r…:>aœQœŽz¤'›“¯W[,¯U‚¯..¿àõ&;ÃðÕi½î´‘v8v‘À‡'ŠtÜ«GAòx›æ$)ò'‘«JI²)JRáÖý!,—‚ÄêN–ÏòCÁø€Nÿ€îÝQ°:•¾p—$à ìºm;? ’¸:»ÙÅùÁŸ;LˆÛ«ŸÃ”Óq\)w.ÿÉÓuZ.ÏÕ§!.fN|&áTâ]$~ì‘È*Î×:Ï{í\$*óq¶¼ïÿ"E.,™®ÑVI±µÔÙ¬€:°f¼Ê3À´……D·˜¤•BKÕÏœ7>Œ‡õâ ñ0g*æÙÔC<ŒQŸ7ñtçÿÛ§Oq$IRlfNà½V9{Ê9÷Gž¯Ýë"0;òÍ¡:]é¼)ožÑC—D•Îì/xW` —¡OРöcKG±u˜ '1Y‡Ã'±ð#ÔÔÉÑL'O6±Í‹WšØêÒnjÌž™Å<†û/7?(Öº¸ÚgUj™ØÌ1§X …<îdEƒhìŒìJ±I’T’5.rô 85Íç‚tgŽáÄà|”Lо)Ìiv³FsÅ™œ+,bÔººª.+Dyj±© ÌY‰áW:f}c[§þÇêŸÓÌr|êE¬Ïue±ß‘'QJ¥(À/ƒ)eIJÃß3–ü€Ñˆ¿ÑõÑ™©»î¾ÅE!É\õßÇ’®PÝÝÜ-¯ï–w¦ùÓ® ŒOVßñŽ<‘­@7 ®L@–q–‰lyå æÚ“ÐSŠ$Y,eºÁ貺<†Ø| †^· -%²øB__ŧ–³Ø ,ü ¥nA˜9$9Ü×÷„º:ë'.—ß&8#1Ѹ4T%˜)=Õ8=»=éû [ö­“d*É4Ák/¬«K0=¹ðÅÎn‘°2ÎuïmDYh¹u}ÝcÀšj±!7ÅdWqý¢zé^TÏBÌVôŠ´˜æ+°HäÚ‚ù*‡µ¨0dƵ§}Lq>ÇW04LF"}JõØÔ üF®+…¿+‹DHùÊìwÓÁ&à©ÕçÍ!ÏÍѦr †Po‚4_×cÏrC në!à)]ï¡=ŸñHñL Q7i&è\Ôì‰5]r,Tøòzü æ¶0%¿? Ìó(çCwš©$¨ ®ˆPÛâÎ^ȶÐú::êI™oaF„Ìíå­…È..«4Iwq%dËEflã^…9˜Ÿ‘çGQ 4ØLV=sV}3É Ì0$>úšµ“¿£^S^ßGþ<Š(„F4ô¦ÔMÇèc•¤«h/mª•Êò·Ũn“"—€Ü=S=µÃ©mVw'£ ‡§jå ¢uÝæ¾Q¸Á_”¸697|E¼i±hô@ß »»BVµ(PYù0‡Žð]Ê€)M5ô+~îŒý™ûÍ™^¹=²»ø çìsZ=å+Õ7­ ß6õÈ­~››¶lZæO£Ÿûjì â=âcsú~¬EŽÇ¹}ä«jœ÷ ;Ñ–Ë1v£¾´U„Ü0¯â[@AKæßf0ÀÜ÷aÀEÃ/ôÑ$͹åc\ŠõSšæöƒž™F„ï½õ’DjÏo™¿+dŽ"Ù˜jpŽ]™‘á™C®)æhȪqväâC£e¹æ¿ÓÇ@<<¨u *¡•0†¡PÎZ~TQbMhžáLŸˆQe¤~«vºÁôqòx?µb°a>èQø÷˜[)FõüLñü÷m3¡­ÉÒw©ßNn ‰»‹oWWw7_ÿõ»©†Y?G]è“ óÂ#ŸÈû ßO£…¤»1FŒDÊLsê… !­P2?âeçHpuíØxi\ÀÒ-¼åfÐÁÆãøÞâòêÜBZ]hü`Â:$U¨f :¸Å]£¥ |f3˜ÖmŒaJúC'˜Æ:¬Cñe«­¨‹u‘/ê‘C®Æ d9Œl(ëä¾Ä~«ÌJÑ*_I¾/Û¤L‰Ž{¢‰5,Ƽ¨©¥<#2ÞîÀI¥Ø‰JW$Å>¯p§J·¢<#FTX©îtòa–EžþŠkåûí=N„›îõ®—Ûí>O“¸µmã<~Ðeï9ë)\­ìÖÍ—“Å:•»,Ö™+…ÜgHCéc@ð%ToóšZí>…ûHC¼g–P[^ÐRv»›vVú:Øiäþ«F"ãÌÈ4ú(ˆÔŽÚÖns}Õ¶¶â‘Ý@ œæÔÁë‹$‹¥L7*ɪªF¦™Þþ&‹`"£«%šUA’LÄ%6>Y•û¤ÚëµO $Jœ¾jÖcš3ER¨hUë=S%ö~õšÇq²j+0»þ›Sÿ|f7³ØÅ`´ Źm÷ß OÑZ«¦1M`˜^û˜šÖ›ˆqèïl.¶àý±1¦?ôu—˜ "{5ºé™ý¶AÆmá8ȶ! Fæ@}c69³éÈÑEøÀ"Oš7=£5»Îa†5‡S6ðw» §|é"kZ¿ÓSwaéÖΘåÔsûª±i÷R &RéÚuºÁ%Ø•<Ç/ºc”ä5Žg´Žíñ¦Ë]‰©€iÓðl|Í­îöGؘ3¬Æ`wÂÁ@Ä(€Ž ä²"ë ‰aàzé†ØPÀ;ž×2tšo²= Ö<ó\O†½T'yPbäy«±ÓíßE¥¬ÄU­–R©MvT:3W!£v*èÄY)âõKG^µ’oD—ƒ‘ÝY‹:dú4 [­Å(–Ê‘ÏþôiÅòäâaá«‹lõ\¹IŠÕ§£Ã3Ò)Šƒ¡ÞJ6GRkH9ÁðFýèÂ?‰òAjX©J¦kQw§Õ¼ÕCæaèëÉ\‡?ÝÄžó¾Ú i`Ì¡¬¿Óü‘æw ŠÚ.IûM)fàNÀžÚQ9÷Ž¼9ƒÍÐá¤ÆŽ<çÈ”jI¤_­¹Cb¹”¶ª€«jªWÊ™ùk9?J·í`é!̉(¶É.Ý¿cɽS»k“mý;É iÌŠgÖ G`§ðøßOÏÈcü$4›Ü DõïƒÒ†qÝÌ#iö¹¬Ò hGèsõ•»£@¥ÑúNù%%ù¹ ±ú!•À¤˜ž™)^õœò+¢¡ #`k̘Ö-@íK  “MŒ€]`Û&ê-}g W pt/ÍAžVAfØ= µñðê X‚ý€\ @%ðöS~T!¾T¬øŒaå (Ý# ˜0¨ 5a endstream endobj 47 0 obj<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 48 0 obj<>stream H‰¤W]oÛ:}÷¯à£³¨‘Ôç¢(Ðø¹@¶Ù/º@ZªL'Ú*’¯$7íþú‘¢EJ¤¢v_Z)#žù8g†ãË·u›Ò¬E¯__¾mÛ4{ä{t¹«ŽèÓåîÇ‘£ËÛô!/Ó6¯JtyuU}G÷$ qÄPì…˜(ð öà D1%˜ù^€>½ysõÛ­.ßoÑåÍÖCâÍC+‚røóïwðܬ®v«ËÝÎCí`Ýeþy†ЮAÄëþÿo÷§^°GáÑëŸHc?F1!˜R¡ÝÓj.vÿéðˆÄÛÀ‡žçw¨â‘vД⠈:Ìýj}]¶¼@)D~s{®x™=>¥õצšÞXô§…»w»UW‹$µó†èp€j¾:¬ÞÝ@Ú⟿໳EÁ‘žÎï‡iˆŠMà!ž¾Ëïá=Ž0 §ï“ï}I&ïêûCåÊà €?Œœ'>üyð½ˆûŸÚ‡:jã0F¤ÿê/ˆ‘ ‰=KºrŒ_U,,aاÓwøœQ‘»‰åÝÈEóG¼àLˆ$ÁLØ© %Qg8G¯ÞUÄG»¢LÞU>@Æ“W°ïyØ÷§ïF¦KK橧ŸôyX]ÞÓ²kì›íõo Û¾+»>”­G{…w vb:Uw'Î:H0ñeÃݯïòò¡àПiÙ.6Áš×Ÿvt]!Doú'ÊÿÔ7|Ó©ï3•1¦½ïõmZ§Eí+ƒcÙ¿Ôé@Uk›Ï¥ÔÑѱ6׌ߜB6æÜùд÷|O}˜U_>tMŽ]œmñÙDMŠ¤ÜÄß5µ™÷ÙØjÜc£9{'V½¡ÆFSº¾ÙúLß H§ÛDˆ697–`ßëõú¯2ßçõçßyëž-ÕBUƒKG½9m¾Y‚Îb«¥c¿Í²ÓÓ©H[îFfQ‡ÎÕq?äå¾z¶µ®Ÿte›´®ìJ0CW*Õ(]XŠ~“çÆ-Ó+ÆzLµ‘ý¤’“õ¨êytÜC½ÖiÊ0†“¾mHÐiÚ­}2v£Š×a•!Ù&×ñ,×Jó”á845{šÑe²Hó:ª¡ùYlâ-ý|‰ôÉÌ‹M [@‚n˜öC÷ËAÝd×iÑTHxþxaë zìCB„¦&ìÖ^v£Ò„Ã*5a7ŽŠ@_š‰ž^% Õ8¸zyv¶H$:ªäÑŽ};ÛGº§s¥¹ð«&FüCma¦Àf3R„ƒË˜: ·[{ÂíFE¸Ã* ·GTØï÷%BБop=ß³óWJϵªs=ÆÖ¸±Ï/B0%ŒZ7|8ŸŸ_’ñ8žë9ã #×1øVɹÃØsî² ÎF-A:?CËà¼Ô”¼L-Tc!˜}ò²˜,›0’Å0™S,†Éyëµ°h·ö,ÚŠE‡U²h7Ž~¸þìú Õ½x÷ùþúÓ‡:oùgXß¾¹û—.Zb ìÛÅØ‹–X{»{á*k ¿?òòsVT ·i!ð1uJÁjì•`µ)!ØRVÛ(ÏEk\èw4éÜÿÉÓýK%\´Ëз ¡Ù¢M΀Þ.…þ?ö¸Ð§8ö–îq!‹ºÿ׺ÃÚKÂnTšpX¥(ìÆQ~i ixÓ Á¿‹™‚/Úæ ìÛÅØö!7Ö‰Ž½ÁnfßìŒMq 1½ì)Ážs£wX{%ØJ «T‚Ý8ªàO/x°AyÞdT¼ÀÓ²-O‡¾] =?à”tè­ZS€}º9 Ã[à‰íºìÖ^v£R€Ã*`7jYú‹Ö½ °Z—*ƒ ß¾ñYÄÔ3nk]ß<¦5ßÏ8Z° ú&úv]«ˆ}\Ùyw¦ç=H<é6“dÜfé鶚×6‹žÖü¤TDG xY@´}ë›!ZZûEžm€øv\«‡}"9hv–EÑù 'ÓvkO¶Ý¨øvX%åv£žå¢í/}Ìâ¬ÛGâ ë:°ÖÞÇ:ÿæà%°/ <÷Îw¾P_y”´B†=ÕàbÕÛ o¼nòªll:"œ¸îy»±WÕ¦D`7J XmzAí£Òs-yáxÁìsrF :ð0æ´`ŸYp×R¬æB±åŽ]CÿÅ*ÅÏB‘í ûD$joZá‚PÛ¸¡ûYše"pw‡ÚÁ^'ös,‰ºgÇQ%#ûÙÀcZ¼BïúY©2Çщq8¨W|4Å=­ý›¡ÿšöþdhÚbapU†ÔŒ¥‘Õpôcè¹Õ™Ûœù^ B7|íÓ6Em_w¸þ¡í3çåL¢!ù•DUÑ#ùöΫ’»’¤Ö$ejĆOáF§ÔÄGMuª3ŽÒr?—³çcõÁऋ³ðÝYȆ$°ºŠ#LÂQBmZ?ð£ëòÜƯ@©‰ÛUàúĈ.œ‡í ÒÙC¬¢ÕAœ1¸GY*IßPH1‰ÐÚ3‡¾tDà ë*ãÐUýªk‘,mØLmg_ÂÜ]áû8ñaõ0Q?»ÛÏUgûÀÜŒ'&µú ã‰/m¼R¹ò‚cô¶L‹js.6À£|C"ìÁå Å£P½‡êÔ?$K’>Qj[QEù‡>’U¸$Á ~-J͈þQµü˜¶è9oåØ@ý™Ç=?äeÞMøWÈ9]Œ¿¥Ÿ½ñþ©é.(¡p¥ùàËë‹÷¢ßú@„\DbÁP°Äªz¸¸àîÕÕ<<+µSþ»ïôy]•ÅTŸJYŠÒ¬Í¿qUZÞ8Ó)]À,[’î¤éj€Öt¯ßO²=ûˆ‡¡/{,wR+çšQMÐÇuÃå%£Í#O‰84áÀdÅtørÜQ`¤TióPÕr¸œÅÖMô‘R&èž>^`'#‰ûz{I<⎉à‡‹(ì·}=ïFõÔ{»®NPÌæÈÓ¯ðt{ÍgæYäYïŠÉEK}ùF÷ë¢ÊÒ=]DëjÏ]kMDÜé{ µÞ~ĺÃH£n³9¦u›g§ÍÀ¡†%V… °y ½Hk8׶¼.Œ”ã©æP(™D[ ŽìY‡Ã…Æäöà˜)]d9`A‡–‘A±»¬PV•Ù©ÖÔ:GjR¢ ñÕ@ã©í ‚©¥¾AqôoÚ™¡Ãp’¨—XÍø±Úö!9Îüû‘g-ß;…ÙW”å[z—,cǪñÿLŸQ›?A•È«(º0j~¬jã•Xbº¢?ó¢ØˆîâÝ„‚§Ö's/íbt(=87wæEç«Qmî´ßÜoÓú¤WÍv¢0~‚y–zŽ"\¶Í,:ÓEw¶‹ˆØr¦@[ß~¾›‚” 3³ñ(G’››ûýñ,K²¿òîá°/2¦@MQ8â#ýhãB²[ó^žÙ÷Ö° yew±—€,ÁY ÛÉK&vWÀ{Ì©\r„A„aYööÁúÍî¦s—¡+Ÿ¹S"áÏcú)Ñqr`¸º™¡¬4g‘ëƒA Îâä­â0{n¤2)¼6´# ¨õ"´©-(Wdr(¦_Q€~ÏT!AAèÄ»û:Æè×Ç=–ÒmÏß+ª;ÖùÏ¡9Šôz¼óôM›ÏT*î5›}Çf´Õ.…b¼ì¸ ¯Ò6¯F¦úcšKÞË^Öº8¾óÏ4¯sG¼£z»Xc•î'€çh³Ðvô‰¤X“Ȭ¡‡­v +S÷­V4—Pm`{^Ãe.+ª¹á ñnWºº°!ׄØܵߧÒ|ð\ÔÇJNæ”A¤=s/ÄÎõ‚¦B8—¦QÔsv»«£aÆé åòØfíFÒÏK²Aw:¥(²4˘áÆÎ6Æë'ÛÀ‹HÖuj‚ }Üma9oäðŒi04¥Á ­öÏ7$ÌÓÍÛ±‹zÑ×Íî¡Å©í*#»î2àË`Ð!ÁÙö6ÛNæ2Ç–³érâHKLÜØ÷ÄðÀ=7°#)ràIhJ­­(žž»Z±nJ¤Þ6&„ÐAB/Þ`bä-KæÛ§e‘ñÓˆ%‰ìRÏ”Òáz3¢ôlµÁ¯s¥œ;…WáaJš…ÂGv…¿8ïM-K´{Ù*<`gúå!=*ÏÑÁ9ÔǸcF¿80Ä·PߎÀË’Ó¨«±9œqðI¡9ØbEåZ†î~`pŽeâ:?E¥ÒYZªµÄ‡£ÊŸÀÀþºát¼SžÊ*ɉ€“w²$—>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 50 0 obj<>stream H‰¤WkoÛ:ýî_1ûMYÄ´HŠzÜíHrÛ»)àÛ1Ð’ PdÙV+K†$Ç›þúR²^å4ýâÐŽ4/ž9sfv•ÑÊ x÷nvU~° —p?[¤;xœ-^v!̾øë(ñ‹(M`v}þî©g‡ƒkÚ„ %–-lp%Ü2<¾ýç LfŸo`6¿1A}3a=¡áÏÝá9Ÿ\/&³Å ‹þw~ð9PSþý)Êð 1ÍêD=—X.¸”ÆL‹íÄ€‹Åwi–ö¦ø iZÒª:2iš1"„#m.'ÆmR„1<0Œ|þå®Ã$ØlýìG^: ½qOTo+wY ÏUµ°[œ`tD@NV“sL[}̾ÈÏonÿÄ׫ê”éWáÊ©ôD 5=ªÜ™Òp•4žª¤›Ï.“¾7,ÂÐc;\P|ÝئË0‡‹ÇÅ'b?ÚÀl"0íº^¼ a¨îŽe~¬ûM˜~”ÀS]?ØøÏ!,£Õ*̤8Vª ãnç'u$¬ kEâ4eïÁ…ÕâÞØ^8†LZ—3ÌyÚ¸RGê :t-"¬nÖP¤íÒM®ñgioÙtUfò4zÍÔC§k&.¦ÜqŒë8 ~DÉf¤ÉôéøU^;<i¿  ¸_Oo??\h‘ ôH`MçØcP0fU”Å&ÊñÞó"JÅø‘QlBØeé.ÌTµúé*óœ8®Uõ¶#Æ y˜ä!:[?Yvó­­57ÈUM§•¹)v“P&UiÒø NÁÏBô±ó3¿@Ò“RÈÑp¶Ð|‰Ï„úÀ9½*î…ÿ„¯Rùlù„UƒØ(‘2=Þ;Ú(ßlB¼«Ü”ÏxòFLq,Š„€hþÏ›8TʈÆŽÜ´J3UõmXlÒe§ë:¨Ú¿ UÒt»PeT¯Öë,\c«#"šïêFtÀtôÀ…Å! ðë %UÌæñâþœˆÉÖ#2¯?tµvÛyÝ°o'3Æ9VXeÄÛtˆUõØ;»û¾3  }ôkÃ+Ö1høq i‚-± ‚t»Ý'Q æ}Þ&uMFÞ[2®G\÷5µ`>ÈÍUFmƒ*£š#Œ –L82‰ho,óÖ€ \?‹˜YuÜÍ¢"ÔT‹Òቧ&ÿÉœ;µ ]mR³ ª&»êÿ6Â÷’Ð O·!¬bÿûYPlC%ýù'Ù“ÚL"œÉv“Zé3¬"ä¶æ†öôdBÙpçj+X¶+ a›„›í<‡ÉâŸØÍ ¤¶'?ØùEf‰Ì ù.oó¶>ù&=$’Ù/¦”£õ)_¨Ö‡È(lË*øê—K}ªüMÐçXUû ô5µ1ê)^Ý -Æ|Äš„âIƒq†ª§kU[ûíz‚qC¤ëGÞ nîÂ"R”¤û¾¢lùwÞt#wñ*z=£ŽвgøPd~’£Vb(Ï÷H²O/j:i–…ù.M–²E5|"T •u´[ "Ì÷`Èé/ ïÃH}rd¡C¼ùJVÉFçå³DÔ”ôMËBÅl½äž~'C4YU½íÒÀ!þ=’B“3G¶PÙà- —О?ZxÉ”škѹòxñ9–9ZmAT?{ÊKW…>ö9ŠÂÝnó÷T—«†_#¥,¹ƒô‡«XeÁ~û,·Ím”Ç¡_¶Ô®ˆ¶ÑOªëàii©é 2¨ÃE_98ep¹„zÂWfšX¬c,­‚)_—ýwŠíªÈôsDÓ]'ö¹îú=Ø6høÈQ™$§-†¯H{ ¿Ãséœv’Î],0Ô:âøËí·¯Qòm…c\§¡ØðÖ:¬eND•i8­hPÑååXžöoåÉÌzKRy~D¤Ë_’@—çð4m6³Òóà8=æÙv PþX–îÛ”°0e+uŽ)aæýNv‡ ½*åÃ„ß •²¡=­@u°ù,“áwImèM.ŽÙÛât·$è!*6PRdÇBêæ\»rú–9Ë‘™ÏJ—ákæìÜÐééʶ/cÿÝÄá\_ìs JðWˆÙIÈ_¯³pí£rÙ¦ËP/X¸õ¦BÚ6q¬·Rüj![¾T!“o8aluýŽªö(qz.± ýb^–HIÒùE‰bÊ¥¡ãö\–®~qlÛ¾DÁÑ%ú ú9,ÃU” –Ž1Éì7ˆFôk6e”ج£M¤\GUÑè¯N‘!h5îaÄ­bJN1«7ÈF1XÄÁ‹h”†¿Þø’W•¡=·Yæk,á§ÍÆí ËÓ®æ9Ätj‰¿Æ’-ˆçytÜÒ°xéYÂáf ×·4L=KÜ"uŸ¥a¡Ñ³„’š;î™»îÛž%\(\îxã–†eA×u]‚H°,ÝÜ™ps§ž6înþÆftÀ…9þòÍ}‚ûG–0±\ì+Qîí‰ÃÞ•k.÷dÇgá„©I\ý;ÙLîÚ‘Š6è/mwX ,?Ço‚™ïÂ8 pÅIqȪb¥‹ƒtû†ž4EZVÈ Ûõ=1/Í·„š&9æÚÒAŸ"…8„”ò–çTRÿÒ€@؃¥m¦'Lˆ‘º2›µ\G¸j„ct~±€ÌvÒpÇË\—‹û;0qø‰#€e”O#ÄD½ôéºIx#Î[ëî°J’µž$·FÊ=öÛ”3á ,pé ü8nGõ¸ø¤©¹mžCÕpå«û¥Ö)´Œ¸`ªþ‡è.ÇÞΩ¥Õ] 6’l¥ïÑZÖC ö–qUIŸª.ócUTIšòSA(µÊ9~o`Éêñ‚º¨0’%<ÅiðC þ¯Ô6²‹)3pÝÆP³‹¢º—B£2Z‹¼3¼4æ¹ ÍÚ Åmç‚Z¸Ñ,2¯¬ Ç­6˜..Ï~Õ¥éÃaБ|Ì1eGT.δÓï~à 0G»gòMº—°ËÒçhB´Ý¥YácûEI£ÜNš š{p«4Û–ùûOé¾PË\þ’áôrç.ÞX[.J4ÈW#ÙqÛ0)”ÍK²}ù1 ðw»&¨zAÚbNT~5_0«t‡ÍýT¿ä>5¹TÎêycÌ),­5Zs•ÆqzPÝ¥y=Åj‚º8ÁØrÄ®£0‡‘¢Ù8ÖyŸd“¤—«œ…x›h½‰_Ðø*Þ+Á=­ÞlbA”‡*~™F„eä\E«òW¼‡çv~!Ã#]L^eE´òq#Ž®ŠÂ6(ðïg×iQ¤[xœý_!•© ú‰é™yGé;9åW(DCS?¨Íl  `ø˜YKM`+ÂÌÀT!šõý€ Ô@G ÎÏÆ@¦™‘ž\fl¨g ý€’UËAJÌÁ U€·6ŒaÝ PþA0`¿Šã# endstream endobj 51 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 52 0 obj<>stream H‰¤—ooÛº‡ßûSð¥<Ô²DQ…š´Ý: [€zÀ’âB‘[»¶äIrÓôÓïGJ”HÆʽëõ [4Åsž\¿oºò1/:òöíú}×åÅ^lÉÝzSŸÈ×õæù$Èú6ß•UÞ•uEÖWWõwrf‰ŸF„‰Å$f¡Ï’8!œ†~Ä‚˜|}÷îêÃ5Y¬ÿuMÖ7×Q£€ì!)ñ÷ß¾à¹]\mëÍ& !Ù¬ócÒˆÅãâã ¶­¾Ö·ðÍõçX>Бۿ¦¿jR)EîP=Ðú)I“hÜßÛ Hù;˲ц^Å—S^ZBSËfC‡½DL¢LmËK)vD-åw^^çã’{çeèònɼrI½o‚´ò¹QÿˆÝóòëæ“EÓ¦©mN`žΈ^²'¢‘ϹcO¾ˆo¢É¤]®"˜µ ½B>©/!‡jB}•°³kòJ E£~ɽw>‘®&¶ÍÅÈ6;r="Sff„qÛ,½ëp&ì|D&—P°,ò“0ËlM¤¬”'(Éä®~D³Á[?•»s#ú·” 7‹)Y…~˜2õJ<Šˆ¦IU@As¿$9)w8Ã-î=áïü7äá™ä¤@)«9ŠbŸWe{¼_¾!Oe·¯ÏÙò¸õ¯v»êI›b¥ì(¶%T¢>žBf Ÿ¼ïH!š.ÇžÛ.߉úÛç¶Gˆß’æ\uåQ­8‰j»š6¬Ô°>¿ >,¶FN&M‰†f½I½˜É¤oåVǺÁÏÅÎõ ºN4HŸíùеãYìvØ)WÈ[y4Š%˜nUk…F¶çã`y…mM"ê Pg‚3¾œœ§ˆ¿”¦“„ùüçÒt2›¦]wšÉÒ¦î;]õ™:õ¤{ªNh.5§¯ä£pzÑYï€Á4™ù#3œià0ä]„‘N|îê#¬*òâ Gx1>W¨³ Ï 7¢æAÀU„rˆFtç¦"M}$Ýlâ e’¤:˜d6p¬S]meŠzÊPRá!E­†eFä8A£¢¹ËÈg0WË.c~2fᢨ‘ž WÕ%ƒ—ÑJ—™ôr&›^ Áí¹™¤“…“8Ñ F ðò¤fDžø/LOå2ãþ"Z¤ŒÉ™yí “q:eÜv¹ÐðzÝ QÖ? í^Œê—%Ú×™Oýˆ Ð‡Aæ}eU*‚õ£òÏ7W«¿là4º­#s]Œ§ G{mYŠNX€Ê×­P¾…:ÔM‰â¢Œ2Œ)«Éi ¿íψûQ26š[jwP®‚3.YäTM%ßòæYº²>í0%±á¨zQãQÝy}¿†˜”º¹‘úC¸tìf2øƒ}Mp^ŒÄ2Ž_fœ çÏPuÜ”—€²#Œñð܉Vr8"ê?˜´=ªT Ù'î?j<”í®DBAíÓÏå¸]ᆓZýÖ´²ë4º(µwæ3°^NåÖc³‰RÑ%ý¡÷Ž“é·G^i[ê²ÃßÍ“½H½1ª0lŽ•ÍviOR&ªNÅØ16Ñ·cè?Ëï²~êü,½àµ ý£½0åÊp+Œéïù@ôº/;àˆ)0¥Ïæ™ðµ^{êN‹נ>´ñãþ‘Æhº¥®ÖÐíÏ«¸â‹¸z}ÑÔ£».s?f½Ê!Óyÿ®Êm)[¤+ù;·Õd>‰¹}Ø‹*%/”ªVlLV²Þ‰ïyÑÉ*Q~Ë(`­öØ1ùLþźN¤)—NI6tôm‹XD+ݶ:qÍL`š!á‘=DªsÄ-4ÝÖÕnÿ0ÂíÉU‚óye3Ùïmæå™Dª°¼ØG9»ü™NŽ‡®¾;ïl–«ÈC"d?yx¾_ªZ—Dó#šz±áæ +ÈÅFL–!Úw Úd¦FãqµPv†UŽŒWŸ[ÙÏwJ¸ë*†çùd.âi8ßZ¨N(ð#™×ç› –¢ºè(P=†’>½…±sŠéŸn"Xœ¢ï4_éàkżwÑèçB…ckÌV{sûYîrn“¯åSãòuÑÁhüB›Ñ‚ÏÞáîÇþy“? ŒE³L9ëP?‘v_? WÞ–ʧìjÏG(«רÔpL4H²Å_®˜¬+£G;·1ê'cƒö©Ü‘“I¼Qû‹ÈOÒP×~éí¤-öBÝ„ˆ®ÓÒÚSÞ! ªÙzF/ßÕ¦ŽI×`íQ”MÙã(òvnµ–Y%—Ó¡Ôç,µ…ßy9ZÞçeyLJú€NBÞÖº§%¥žÀ-éò§RÆHJ†'< oþRŸÌî¼OËUìiÌúL†êàÿ:]Q7ª$Ñ´o¢^%¨eò¾‡ËR<ƒö·®°Ÿzvf¸wÁkQ!aŒÌ/Ž´¸x´æx9“?ê5MqüòJšeè^ôJʨèÓJÙÜ̬4¦’qŽÚö™ìÔÿ]lb™syr{yrýeŸŸÄèlì4Ö×_R´Ê1Ÿ®,Œû. Bɱs=>¨qÔÏÇÃ15D—lL‡¸è cµc=¤ÆI0ÆÛ˜Ò†ùIÙdÛa±Ç?h|¸imW1$²“5ä Ó£¾a9à±aL¹=&özÊ-ñ1·íá­£[´¸C‹;´¸¦5Ø“:|R‡OjóáÖYI{2‡OfóÉ>™Ã'sødŸÌá“Ù|2— m>›|0´øèi­O/×öÐÀ惱ÅGÏOâ>”Ú|06ù`hñÑÓ£>jó¡Ô惱ÅGÏOâ]>ÌáÃl>lä3 m<ÌÁ9x¢9= wéÄئt†¡ 'vàÄœx„cNOÂ]6©Ã&µÙ¤6›Ôa“:l‡Mb³Il6é 6ÜaÃm6ÜfÃ6ÜaÃ6ÜfÃm6Üe6ŒM6šlô¬Ö¦WÖd›Ìf“Yl,ݽ5¡ÍF 6­ -6zv´&´ÙàÁbƒ“žž„»l"m_œ(k"›Md³‰6‘ÍïYl¤"Ój³1u÷Ö0mß` ³Ù0› sØ0‡ sØ0› ³Ù˜º{k‡Mb³Il6‰Ã&qØÄ›ØfÛl’lR‡Mj³Im6©Ã&uؤ›Ôf“ÚlÒl2‡Mf³Él6™Ã&sØp‡ ·Ùp›Mæ²aÍã Sò16áèi­N/×æ`lÁÁØ„£§ éô>ÿã¼l[ã6‚8þÞŸb_ž!öí“´»mˆR05T…;Å–/*ñ9Ë4ýö•öavNº–bH,vfö7³³q^œ”…ŒÚ,I¥Ñè=<$õƒ]ce9=géÏ*AYâõ˜O+Ëœ.ùèÀ'<”p4£à`cvLÉT„LU’©™ðPb©–Š`©lÌŽ)C˜˜’‰ÁL ab“š0©1“ºdb˜XÂÄ–L,fb K˜XÂÄb&¶db)“ æR&A+ÆAIʨü &qmÊÄ&3q“".V‘9Q0 *RFÕW0‰kc&A$b{fÙ1e¢bn +È´@a&Š0Q%“ ³]"&јç¸X=æLtÉDc&š0Ñ„‰&L4f¢K&8.VŽ9“ºdRc&5aR&aRa&Uɤ>`bS21˜‰!L abƒ™˜’‰9`âW2q˜‰#Lab ‹™Ø’‰£L‚^K™9è'"V‹“·hŒ¡ââ˜JƒØž¡D#òL¨%÷ÇJKŸÑnü^)~¸ºd'ë_ŸÚ-{ýz}uùñ=Sœ½}{ñþÎÙæä¢9Y7b‚5ð‡æ/&¸÷ÉágúMq8IL9PE’+Ö<ž¬®®?~¾~N›?O>4!Æu ] 09ç“ó3ðÆa£Íó¿iヹ1c»·cÎC”/íswÏv[†ã7¢Tn<ë $ƒMÍölWÂz»d¬´X6F¢Ü‚B[jܪ¸ +Îk‹X½o‡vøû©+€•ålÀ…Z€Y#ÿ4Š¡Ôl1üFT…+ *N]³ÛÕnßoú-k·÷lh÷›n¸=-‡A˜ŽÇWcÖŠ1kÃéëÙôiÛÔ0ocÛ컧Ý~€ÎúÇ~»yfG¨WËeæ"•9!šè×þŽ Á†7Ãíêêöt‰~½|„ˆGj„£À”e(D¿=¶ƒÃ\ÊÏ>}ë–ÈÈe2<•Z:LF[wè{îºYZ1ôÔ îàs9Lï¬ SPà “Ó8ƒ¯8x ÎÃœ7¾ú¿wÜ8¨¼Ü‹Wöïë¥ëZWG:Î¥S'ŠŽöÜ•^¡fó­wxÔæbÏßNSì$Ô¬TÀÁóÌÿºß½l¾>½ ³‚%Xï›:Üý¥UðQ¼/áúͯ•Îsl²J-½„ËkCyç×óB¬§Žˆ'4MÈ%I˜Œ7•@ëfÕœ ¡Wí—oSìöÛ¶¿ï÷^ѱûî¡ßöC¿ÛŽs¢ z•€æt x§ƒ°TXI.>1¯gRvÒÁ'"tÙtÝNßí‡þ¡½¼ïwÃÐÞ}…:߬/vð{dŸÖ +¶¾nA§´>q¶¾¸Ø}g7¡Oà8 # ³¼Õ1ˆe^±O!Áõ/— ’æì0ݘÁé¾–bÜÒ[~%¼bâ Ý=„ÄÁ)žª9NxøšPqæ0h3 füçŸèצ¾ endstream endobj 53 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 54 0 obj<>stream H‰œ—mo7ÇßëSð¥ $ŸÚ$@ãä‚0š;«èâ Päµ½=[òIJsí§¿á’ËåP»òµ ¢ˆšåÌð7äð¿‹v‡öfµ>/?«õ]sM>.–ÛGòi±üý±!‹«Ûv³:´Û Y¼~½ý/ùȽ¡VÇ •šhÅ©2Ú'8•ŠiòéÕ«×oÎÉlñÓ9Y\œ3Ò¹qÒÂÏï.áû~öz9[,—Œp²¼ërMàã|åžpþÿ#ü´ƒe¾²ô{G•#Žs*“dù0›“³å¯ÁþžÃƒŒ©àµû*‚k!¨Ö6ø¼žÍßoÍ=¹ùŇ÷äu³Yß=¬vÿÞ'GG‰A4éušÝ…{»œÞu, ‘JRÈŽj²kf7³·°ìîcñ!¾8ÿ†8’èÄå§tWè±÷Ĉj˜ÖA;Ÿ!2än-§ÎF­ˆ]hl”JPUšµtT<1W[A¹8mœrüä\§âïaìx`È0CV–œ%—]ÕÆöŽõ6å.‚ý8ÿ[{ûu×óùyÓ^·»Ï¾ÈãçóÕÙs>?šÝ†œ}Zþ˜ñéðÑ’vÙ˜n÷PimŸ l–” |KYK(r¿‘4l£”È»æ€Ê^Ä£º¸.Sb’æ’—ç@n¶;r¸kpÜËÇÕ&‡–8´(*Àåpbª¨ÂIÊŽ g/¬qb‰êD¥M^#wcѤÐGÑÈÍ×Í:ô2J¦¨êiªE;˜¨*¯©é˹\}¹oˆ Á:rðaƒ9ùÒÜo¿‘ýÝöÛ¾£þeµo×亹i7mHuOIž=¬9î'G½v©%¥=l»‡‡(*<,ï[W»'+²‡Vÿm}M~k›od{Óm›Ï¡oáÉsN¹î\„4WÝ© Sý‰Ò‰x,úì|ÇÐg~ÒU‰ßC³Úò®ûxSáøxSè]KºŠÅÎ?ÎW{²ÿýŒËù×í}û„ùÒ¾ 1oš ÿÓ¦N奨n)ÜR—@CW9{®ç}U”bFWûïèéØ„Êêzð[¤ƒ.£?Aàªnö»íºÙï›=Ùnî!1Ç͉{‹$ÊjÊTnîoÃÙ­Š)ÊMѤÔÀMÌÐŽµH3ô~8Eï!05s°ñã[!¦£\v'@_”θ1y7–{ƒOïE¡síØ^”p¿÷{N&ìíæDcäâ/uÆ°=-³á²ŸlŒ=*¸.RÉ8¬W!R£¶jÔVå?ÞÙ§:`C§ ¿YV'©ÿ+@þ+ü¿þ×òíT˜nÜñDåV Yíš\Í·»t.Ym®Éaµ»mWgdŒ=WTõêĆ£SÂ7&úãÆræd ë™3 ,%¾k·»lÊCûÐnn÷§v¦Þ™Q51D)>ey^®æWgSpÓ§ŒóÜÝ$Š"CG@Q íɆ.–sñùH¨—…ÆÎ_0¦Ù«¨ïGÖOó]ºoÖS¢ë„øä*¯Ò D@g‡¾Y.¶\>íæº]¯BÓšG/ ºØN^*1´Í¡}wµ<#hT«ÛÛ]s HV,Þ.Šz8ëp»ˆ aÉWóiæ‚?µw†m£aÛHÜŸÛ—|Šå¸‚=½cà-Óã%Ûa­Wóõ -ôÌÐwA/y™j„6üíµU„gK÷|bŠ Q°Åa;TH6Ÿ÷«‡ÇûfŠÌ)á›K-|IF9èÙ7Í( xqSiOÍ5ppX¡‘¬ãP:CYºM„ƒ}]6 cl„Ærõã­<î‹|_˱ûZZÈÎuÇ»ÝöëíÝã×é’š¿Ð Q¼.¦Þc„=±"ŸO;G‚ºÇž›f¶ª®ts*—Իȳû&˜§Î¾ƒ¶ ÛIò’D1_¦´ÍÇî?³p^Ep#¨7pÀžä"­ð²‚¾ƒ$à ¨(¹€è¿Â¿ÉÇOŒ\j ¸/vGÉæ(C² :„}5cÞ_ÇDŽ\sèï¢âp,È°s_€íéÃ|pj:å2ˆHÁÕi—âϸ4Ö—þ´Kù§\êÐüÄYªqªYãL9—¡v2¶öðVøË™‡w†Ï7ÍfÝT}üònõØ ³°Xœ_2²ÞwÎ!ûõf¦¸¡ð‚gYˆñÐ MKrß ¡u…!ˆ—ûl6>ü|ßÏÃ4‚+Y™Â³¹AÎsèûÙü`áî/rq”—¹tý¶ðÍC´n6 !Ã84›5J&Ú³÷"vLÆc0ƒñ_ñ LJÆWd|EÆc2¾"#"¯%"2Éœ£ÅÙ9"20Fd’={g!$áð´À`¢uˆ%".0F\’½p^q‘˜ ¼ÞO« KgbILEVTdEEb*²¦¢1¨èD¥”4F¢+$:!)Œ…ÛŠ‡Á<,âa~PF1†©`˜£0f·¦&á0 ‡H¸’„Ã$&á*®$á0 W“ðˆtÏ‚Då$¢iˆâ1 _‘ð% IøŠ„äˆ a4$Á‰81'CDƉd,ÜbR`‘% ‰HĉC“€ñ@"³[Q“P)+iº$"¡J “P˜„ªH¨’„Â$Š˜1 ²JID”$ &¡1 ]‘Ð% I1c“°ˆ„-IXLÂb¶"aK“°5 ‡IxD—$<&á0 W‘p% ‡I¸Š„bˆ a”“ˆ¦%NÌIÀ‘€ñ@" ·˜„∼!F"ºŠhÂp„†ŒÉ8øå *8wá2È I+±̶»ïáõ²W^2¼Ð º Æœ ºÍêná]uÐm0$…n+¬LáÙ}pžCºmÈ% ³þñ¨ÛoÉœ£ÅÙpµ#ÝV˜5J&Ù{ïEìB· Éx ÆW`|Æ'0 é¶ÂŒÉxLÆWd’òê“é…Yz<é¶ì­7÷ÑÒì>™^·fD¦·÷ÞYE&i¯œLTfýÓƒIÖK .½n+̈KoœW\$æ•Yÿ´ª°DkŽ%1YQ‘‰©ÈšŠÆT4¢¢3•~X†ÒŠ® è ¥4®+&3±ˆ‰ÍLúaÉ`$¦Bb2’ÒÜ»65‡‰8DÄa"q˜ˆ«ˆ8LÄa"®&â‘$ÔÒÓIÃõ¾’1Gò˜ˆ¯ˆxLÄc"¾"’äXN„—D’ŽË‰pD$Míé•\a.‰ôæÁ5&’$YND""‘ˆHšš˜HRsy²@Dʸ…ž æBÏå§&¢0…‰¨ŠˆÂD&RÄýçe×#Gq…áûýs‰/‚»ûœ:U%!.0VD$+V¼!BȘ ’‰ò÷S=ÝÕSÏ»3»vÄ_Ξy¶§ýxpºË!"A"A"‰D’I$’HdØ;xÝå "™D2‰dÉB$“H&‘¬D ‰T©$RI¤H"…D ‰!²kZ?d—¸ý§w¿ë³öbß´·öCºá å‘H/_F“ÈnjÇ!ËNdï¶ÉÞ{\2ÉnyGóÜ‘Lƒç §tÏ›>/ƒçrs.ûçeó¼—¯^œîž¿>}ñÅóW/¾ùúÔ|ñË/¿úºýÏéôÏ»¯îïžßßϧùtÿÓÝŸ”iª§û·§õOËéþ¿§6¾–ÓÔþÛþ´ÊW,'›Û‹¥Lvºÿõî³×ûë‹—oÞœ–Ó³û_î^Þ?Ü™ûNì›Î›Ù²”¼n)ç-7‡—«Ãol(½4Iztdý¤‘í;ÐFÖGGúôI#çöw{Y®]ùæ÷Þ_¦Îœj;Øõ÷XVº7æÏuøõ½zýÍ÷ßþüþûŸÞ½ûîÖùËÕó?æ‰YâüHæÔþ­²È3ßÄeŸøÄô-ÍEÚ–kO ÁùUp·¦NËåöW·NN×O^ -ÐÊêÊñ9­ßf¬9ýôÛ¿<­¿›×ÿùã&¦¸½3?Îj®~Š\.´¾ûìÇŸ?üòÛÏïÿøîÙÍ}|‘ooIÞ¶<ñ•óëßâË'¹=ÞÖkûúý}{˜ŸÕÏúó|zöû¿\]xý;þÑOôºz{ îŸìÉg:]<ñL¯{¶÷àòÔC®¿ n<ÔÛ›ð‰‡:]ÿÞÂC5ÛCýÈ'°'ÞgW9ÙÔ$ÄåµçàÏïþ¸õ±üÿyÚú«~_ñ1_˜tã¥ðØŽó»ÿéWXŠO|÷ïó?òÝÿæ_?üþî²ìøâ?ñf:½ýpž;NÞ¾¿[æ&7çWo¬J²ÆØrj ²Æ&jk\bÏçróßž÷¸§9XœÝs`ø±zõ£eý¬ã-ÍþÇ[|3LÛËǶ­»ßb«Œ¡špË^ïÇÕÛ-‰\¹$á’„K—$\’pIä’”KK&—,\²p p áÂ%È%”K!—ÒÔýòÓE°lÕcW•"TŠP)¤R”J•eú|¹üôšÆKö걫‚I&U˜T2©Âd™Á¤ÅÉšpÉ &{ï~IK`Ò2˜ôúe6™, ™˜˜010Ù{û% ™´ &½Þg/ÊÄÉÄÁÄ…‰“‰ƒ‰ &N&®L™˜„0 2I`’„I&‰L’2Éd’Á$ “L&L²0ÉÂ$“IV&…L*˜TaRɤ€I&E˜2)¤àȤÅÉšÆKöjßµ÷î—´&-ƒI¯_f“‰Í`bËÈdM¸d“½·_2“IË`Òë}ö¬LŒL LL˜™˜˜01abdbÊÄÉ$I&‰LL\˜¸0q2qed`Â$È$À$„I“ “P&™L ˜aRÈ$ƒI&Y˜d2Éʤ’I“*L*™T0©Â¤ “J&U˜ø&>LÖ4^²Wû®½w¿¤%0iLz½Ïž„‰Óg[˜´T–qØ&›u±Y›uÚ¬«Í:mÖL¼ýÃwæd—uqY—uº¬«Ë:]¶Å‘I&‰L`².&ëb²N“u5Y§Éz“,L2™t-¾GB‘íõ>\EÖ)²‘m‰P(²ÞEv?ELÖÅd&ëj²N“M0Ù–@%Ñd½’Š¨¬‹Ê:UÖUeU6Ae[•D•M3¨$qÙ$.›è²I]6Ñe\¶%R¡Ë¦T’Èl™M”Ù¤2›(³ 2Û©Pf““ŠØl›M´Ù¤6›h³ 6Û©ÐfS"ÑÙ$:›¨³ãæíêl‚ζD*ÔÙ”IE|6‰Ï&úlRŸMôÙŸm‰T賩Šm¡MÚ¤Bڀж*A¡ TBŒ6ÄhƒFj´A£ mK 4Ú˜A%DiC”6¨´¡JTÚ€Ò¶D*TÚ0R§ qÚ Ó†:mÐiNÛ©ÐiÃIE¤6DjƒR*µA© HmK¤B© ±Ú« Zm¨Õ­6`µ-‘ ­62©ˆÖ†hmPkCµ6¨µ­m‰T¨µQIE¼6Äkƒ^êµ™^›áµ-J¦×æ T²ˆm±ÍÛ¬b›)¶kŒË¬y ”Et3E·7·- –Å|³˜o¦ùf5ßlkãp+Ô7‹úfªoo>ŽùÍ"¿™ò‹ÝÛ5i õë9¤D3õ·7׈gàLÆîíš6Pà, œ©À½ù¸F8‹÷zŸØa ÎbÁ™Ü›kDƒ³hp¦c÷vM%›."Â…"Ü›kÄ„³˜p¦ c÷ùš2“M qáBîÍýš"2\D† e»·ka.¢Ã…:Ü›kć‹øp¡c÷v q#.4âÞ|\#J\D‰ •»·k’°‘âB)îÍÇ5bÅE¬¸ÐŠ±{»& xq/.ôâÞ|\#b\DŒ Å»·kŠ°QãB5îÍÇ5âÆEܸбû|MȦŽ«Øq¥÷æ~M=®¢Ç•zŒÝÛ53ÙTrA®äÞ|\#†\Å+ »·kLØÀ‘«8r¥#÷æã‘ä*’\)Éؽ]ãš\E“+5¹7׈'WñäJOÆîíš60å*¦\iʽù¸FT¹Š*Wª2vo×daY®"Ë•²Ü›kÄ–«Ør¥-c÷vM6ðå*¾\é˽ù¸F„¹Š0W 3v¯×Ø4M£2¯idÓ«û¶£y¿fÍ#›5lŽzŸ> ›°Ys~ž–Ü«Ç6Zòšç`}r¶ÏéÊÆ„ƒ '6&lLØÙ¨Û”„M›$lÙ$a“„MËìÕb›BÐd É‚&Mš4-ÝA2jÅ6!S@¦™B2EÈ!SH¦ŒJ±M”b›G)^ÈÌÉT!S…L%™J2êÄ6Ó‰×<™éĽڗÍtâ5ƒÌšÙ=’™U‰m^„ŒŒ (ñÑ|C%>ç±FÌÕÛ1.dd\È8ɸq!ã$ã$£Bls22!d‚d’IB&‘L"õa›³É “…L&™,d²É$“IFuØæ"d*ÈT!SI¦™"d É’Q¶…6¼æÌBîÕ¾l¡ ¯dÖÌî‘Ì¢2l eØ–Q†×2 døh>Ž¡ ŸóØ æêí22&dŒdLȘ1’1’Q¶Å…L™$dɸq!ã$ã$£&lK™™2A2!dBÈÉɨÛ’…L™"d Éd!“…L&™L2êÁ¶T!SA¦ ™J2UÈ´oþÂúÌîeÁp!c¢Á 6Ñ`£›hpËYê#™^îÃX°‰,ØÄ‚lbÁ-ƒLË3»G2ö@‚M$Ø Á&l”` n9KdŒd8°‰ØÄlâÀ-“ ¸—/ÕŒ8°ÁMØèÀ&Ür–:ÈÉý.cRÆXÆXƤŒI“2†2Æ2v”éR¦³Lg™.eº”iR¦¡Lc™~”q)ã,ã,ãRÆ¥ŒKGg?ʤ”I–I–I)“R&¤L L°LeJÊËË””))SR¦P¦X¦´Ì}±Ì #?ã^榑××s™›F~æ­Ì #óéw™›enù÷27¼¾^ËÐÈÏ|áë½ ž~—iR¦±Lc™&eš”1)c(c,ÓŽ2]Êt–é,Ó¥L—2]Êt”é,Ó2!e‚e‚eBÊ„”q)3®ÝÓ8Ó(‚Û’&™&™&%MJš”4ÁŽÏÑæP°‰‚ 6*ØDÁö“6%mŠmÈ`;lÂ`#ƒ 6a° ƒM<æ½ÑÁv8ØÄÁFlâ`›8xÌ{#„퀰 „6BØÂ&6ð˜Ñ†¶CÂ&6JØ(áyº^ ›HxÌhC ÛAa )l¤° …M(lBá1£ -l‡…M,l´°ÑÂ&6±°‰…ÇŒ6Ä°nK¤ÝŸm1܈á&n‚á&óÞ¦QÃxûÝf‘ôï6Ôp£†›h¸‰†›hxÌ{›Fãíw“6äp#‡›p¸ ‡›pxÌhCãíw›.mèáF7ñp7ñð˜Ñ† ÆÛï6.mâF7ñüzm# 3ÚPÄxûÝ&¥ EÜ(â&"n"â&"3ÚÄxûݦ¤ IÜÇ¿‚ñÐs¿÷ÿ=ßG÷oÿàóïÿ+wý¹½_ü];;ÆØnÛncl·ã®÷ö›»w¢µvÛo¿±;îzoo²;:FìnÜݸ{;vï²;YÙ»7îÞ¹{?vÙN#vwîîÜ=ŽÝSv§ûzq÷àîÉÝSw÷w³m…Ž›§óï¿‹ãÆ2~™yÞé¸yü].¿«_ü]Çœû6tÜ<]ÛˆãÆ|'Ï÷ÿ;æñw¹¶1iclCÇÍÓõš8Îo¶q:n—k›&mÛÐqót½&Ž3ÛÐqóø»\Û¸´q¶¡ãæézMç]ÚÐqóø»\Û„´ ¶¡ãæézM7f¶¡ãæñw¹¶)iSlCÇÍÓõš8ÎSÚÐqóø»\Ú„8nÌ{› ãæé|-Äqñc› ãæñw¹´ qܘ÷6AÇÍÓõš8..¶ :n—kqܘцŽ›§ë5q\˜´¡ãæñw¹¶Çmè¸yº^ÇE“6tÜ<þ.×6â¸1£ 7O×kâ¸piCÇÍãïrm#Ž3ÚÐqót½&Ž‹6tÜ<þ.×6â¸1£M±MI›’6%mŠmŠm÷¥¸oÌ{›gܶ™§óµùõÜ&l3æ½MþÐ&'¦8qÌ{›gÜ·¹Ùf~½¶¹ÙfÌ{›¼Ñ&W¦¸rÌhÓþim»®I›&mLÚÛÛMqè˜ÑfÜ»oÓ¥M—6]Út¶éls¸5Å­cF›`›6!m\Ú8Û8ÛÎMqî˜Ñ&Ù&¥MJ›”6É6É6‡‹K\\tñ÷6%..qqŠ‹“.Nº¸—¸¸èâ1îmJ\\ââ]\tq..qqÑÅcDqq‰‹K\\tqÑÅu¸¸ÄÅEmÄÅ%..qqÑÅE×áâ]%yŠy×íÒç¾Øç¾Øçž×ñÚçbŸ›x~æ½Ï}±^÷1écÒÇØǤ±ÏM>?óÞçÿd×;²,·EQŸ£x3`wåÈ ~ ´4RÈäü-¢ºº 8ž2À¼•\¤x÷;øØæãðqø¸ú8|>W‡o> Ÿ„OªOÂ'áð õ øäæÓàÓàÓÔ§Á§Á§Á§©OƒOÛ| >ŸRŸ‚OÁ§Ã§«O‡OÑÇ^êc/õ1 iCHßë÷=†6 i{©|ýºçP;ÔÇ4¥ )}¯?÷ ¥MSÚÞê#_?ï9Æ/7??0þÅ?Æ=Çè”ïçÏ¿àyÿ]=Àÿ~úó¯ßüôó¿ÿÿŸ¿ÿûã—_~þë÷ýñcü-þúëoŒ‡c„E?ŽöùóÌøq×/ö£ÿÊ~Üçû9f~çï³]ów}Ìß1}Žuûy®uùóíåon¹æó‹}.|~±/?ïy¶åo~^3þ` טî¾ùÑŽ[2¡2™€Œ«ŒCÆUÆUÆ7™„LªLB&!“*“IÝ™ÜddºÊtÈtÈ4•ii*ÓT¦m2™R™‚LA¦T¦ Sº+2E™‘ "sý6®ßæóçÍçëc÷ú÷–1ŠÌ˜cý5ßkÝ^Î9”æúe>¥™ÏvÏ+Í…f̯ÔõUG>~cÐqÕqè8tLu :SÛt:¡:€N¨N@' ª›NB§©NƒNƒNªNB'¡“ª“›N‡NW®:::]uú¦Sªsý®ßãóçÍçï÷Ju :R¢Îø=-:ׯñyÎ[uæ³Ýóª3FѳèÌ÷Z·—sè˜êtLuîõûœCuÆ,:ó½Öí凎«ŽCÇ¡ãªãÐqè¸êø¦ÐIÕIè$tBu:PØttšê4è4è4ÕiÐiÐiªÓ6R‚NA§«N‡N‡NWN©Î˜W1ŠÎ|¶{^uÆ(:cù^ëörúص}ìèc×>vôñ˜EÇ5} dG »²#ìÈŽ@³êh#ûÖÈŽFvmdG#;Ùµ‘¿—ðIø ˜ç{­ëË=(æ1‹Šy>Û=«O‡’y¾×º¾ÜƒdΗø$’y>¿Wð)ø ™ç{­ëóžD3yõI4ó|¶{Ÿ1‹O"šç{­ëË=ˆæ4õA4Ïçï÷õ³ø$ªy¾×º¾Üƒj³ø šç³Ý³ú8|Íó½Öõåds¦ú ›çó÷{Ÿ€ºy¾×º¾Üƒn³ø ›ç³Ý³ú4ø œç{­ëË=ç,õA8Ïçï÷:|:|PÎó½ÖõyOC9yõi(çùl÷,>cŸ†tžïµ®/÷ Û!> é<Ÿ¿ß{«Ï˜Å§¡ç{­ëË=hç1‹Úy>Û=«Áñ<ßk]_îA<·PÄó|þ~ÏáãðA=Ï÷Z×—{PÏcÔó|¶{VäsC>7Íç¶åsC>Ÿ?y½ù<Ÿ¿ßkðA?7ôsÓ~n[?7ôóøâƒ~žÏvÏêƒ~nèç¦ýܶ~îèçþŸ1š/?o>_ßëèçŽ~îèç®ýÜ·~îèç1¯>cìrÏ¡>ýÜÑÏýܵŸûÖÏýÜ]}>ôsG?wôs×~î[?wôs×~£ú Ÿ;ú¹£Ÿ;ú¹k?÷­Ÿ;ú¹k?Q}ÐÏýÜÑÏýܵŸûÖÏýܵŸÇ¨>èçŽ~îèçŽ~îÚÏ}ëçŽ~.íç1ŠO¡Ÿ;ú¹£Ÿ;ú¹k?÷­Ÿ ý\ÚÏcŸB?ú¹ÐÏ…~.íçÚú¹ÐÏ¥ý˳ÝóêsΫÏ9¯>Ë{­ëË=ÚÏö’~>G“{´ŸŸõçíçs¹GúY¿~Ýcð1õ1ø| >ƒ©ûÙ^ŸPŸ€OÀÇáãðqø¸ú°Ÿí•ðIõIø$|> Ÿ„OªûÙ^ >]}:|:||||šú°ŸíUð)õ)ø| >Ÿ‚O©ûÙÞÚÏŸ¹Ï¿ÂÞÒÓç(^oíégý¾ï­}}Îâ÷Ö¾^Þk]_î…Û×{¥¯ÏQüÞÚ×Ïúsöõ9‹ß[úZ¿~Ýc‹×y«—ÃËáeð2ø|L}Lþi÷|B}>Ÿ€OÀ'àê›O§©OƒOƒOÂ'á“ðIõÉͧç«O‡O‡O‡O‡O‡OWŸ¾ù”úÒ×ç(>Ç >Ÿ‚OÁ§Ô§ès¼Õç¾>Gñ9´¯ŸõûžCûúœÅç¾Ö¯_÷ð1õ1øh_?ëÏ=Ú×ç,>‡ôµ~ýºÇáãêãðqø8|>Wß|>©> Ÿ„OÀ'àð õ‰Í§Á§©OƒOƒOƒOƒOƒOSŸ¶ùtø”ú| >>>>]}:}ì¥>¦}mèkC_ßë÷=†¾6ôµi_Ëׯ{ÞêcÚ׆¾6ôõ½þ܃¾6ôµi_Ëׯ{ >Ú׆¾6ôõ½þ܃¾6ôµi_Ëׯ{>Ú׆¾6ôõ½þ܃¾6ôµi_Ëׯ{>Ú׆¾6ôõ½þ܃¾6ôµi_Ëׯ{|´¯ }mèë{ý¹}mèkÓ¾–¯_÷|´¯ }mèë{ý¹}mèkÓ¾–¯îñ—ú¸ö´£§=íèiG?;úÙµŸýEG?»ö³£ŸýìègG?;úÙµŸ}ëgG?»ö³£ŸýìègG?Ÿó±îk?ûÖÏŽ~vígŸýü•ùìÈçs>d]t¶zvÔ³k=û¬çï¨8ˆgG<Ÿóz¶³oíìhg×vö®6HgG:;ÒùœY›­œåZÎñ›@8;ÂÙÎç¼^£Ýì[7º9´›ã-6lds ›ÏùõÕ&¶jTsh5‡© ¢9Íh>çõmæØš9ÐÌ¡Í®6Hæ@2’ùœY›­˜ÅZÌ‘jƒ`s ˜Ïy½F{9¶^ôrh/GSär —¹|·¬‹ÍVËZ­å(µA,ßÛÏ5ˆås^¯ÑV–o®I´rj+çKl©œHåD*Ÿó!ë«Mn¥œ(åÔRÎCl¡œåD(ŸózvrnœèäÔNNSdr"“™|·¬‹ÍVɉJN­ä µA$'"9Éç¼^£œ[#'9µ‘3Õ‰œHäD"Ÿó!ëb³r¢S 9»Ú <ææú.6Ïs­ÛË5èãÔ>ÎRäq"Ç|¸¾‹Íó\ëö¼¦¡Ž›Öq{‹Mû‡ìº×Ñä6Â(œë*æ VÝ]EVXrà@‘¯Àl8àûÌžþa÷ \6kÎ@»Ç!8ž3Ú̹¶YÇ£Þ.Ûˆƒ6ŽmBhBã9£Íœk›u<êí²È8(ãp¶‡ÀxÎlclclóáâ]tqˆ‹C\çýÀõÃñmMc’Æ™fþ»V¾æRƤŒIccU±oMÊ4–i(Ó¤L“2MÊ4–i,£(ö­K™`™@™2]Êt)ÓY¦³ŒšØ·”2É2‰2)eRʤ”I–I–QûFûŸc)³oRfH™!eË –QûNŸs-3ÇRf'ˆßËÏ2;A|εÌóék™CÊËÊÐÃïåwzøœk™æÓ×2.eœee\ʸ”q)ã,ã,£ö½I™Î2eº”iR¦I™Æ2eTþ‡” – ” )R&¤L°L°ŒbØ÷”2ƒeÊ )“R&¥L²L²ŒZØZøœk™9–2)ü^~–9Hás®eP˜O_ËÂ~€ÂçXÊ”ð{ù]†>çZ怄ùôµŒIcC“2&eLÊËË(„ýp)ÓX¦¡L“2.e\Ê8Ë8˨ƒýèR¦³LG™.eº”éR¦³Lge°!e’eeRÊ„” ),,£ öcH™Á2e†”RfH™Á2ƒe>l‚`#‚çXʘØÄÀ&6Øh`û0°‰çÜ|ý‰s®¥ &61ñsù]NŒlbd£‘F¶#›ÿؼ.K#Œlbäçò»ŒÙhd£‘ñôµL+¥þúžQ F61òsù]FŒl4²ÑÈxúZ&¤ l0²‰‘ŸËï2bd£‘FÆÓ×2)ehdƒ‘MŒü\~—#l42žþ^Æ7–qÙad#?—ßeÄÈF#Œ§¯eöç‡ý{Ùad#¯Ë×2.FvÙid<}-cÏw/C#;Œìbäuù^FŒì4²ÓÈxúZÆ¥ ì0²‹‘×å{1²ÓÈN#ãék™.ehd‡‘]Œ¼.ßˈ‘FvO_Ë„”¡‘Fv1òº|/#FvÙid<}-3¤ ì0²‹‘×å{1²ÓÈN#ãéïeÚÆ2Fn0r#¯Ë×2MŒÜhäF#ãék™ƒeÜ`ä&F^—ïeÄÈFn42ž¾–1)C#7¹‰‘×å{1r£‘Œ§¯eš”¡‘ŒÜÄÈëò½Œ¹ÑÈFÆÓ×2]ÊÐÈ Fnbäuù^FŒÜhäF#ãék™”24rƒ‘›y]¾—#7¹ÑÈxúZfH¹ÁÈMŒ¼.ßˈ‘Ühd<ý½LßY¦ÓÈFîbäuùZ¦‹‘;Üid<}-s°L§‰;LÜÅÄ]LÜÅÀî40ž¾–q)Cw¸‹»¸‹çܳ\§ñôµL“24p‡»¸‹»xÎ{â:Ê´2!ehàw1pw1ðœQ†ÆÓ×2)ehàw1pw1ðœQ†ÆÓßËÄÆ2A bàw1ðœQ†ÆÓ×2bà 1pˆC <çZ&hàø0pˆƒ8ÄÀ!1ðœk™ ãÃÀ!8`à‡8ÄÀsF8> bà 1pˆC bà 1pˆC |Þ«ËÐÀñaà' œ0pŠS œbà9×2Iç‡S œ4pÂÀ)N1pŠç\Ë$ œN1pÒÀ §8ÅÀ)ž3ÊÐÀùaà' œ0pŠS œbà9£ œN1pÒÀ §8ÅÀs6#Ìs:x÷]EœpBÀ)NpƳ<§ƒwßUÄ¿Iÿ&ü›âßÿÎÙxŒ*U>ô;D¿ƒúÐïýÑïØPeŽµÊ{:x÷]Eì;hßa?ì¾±µ¯ó~D_ãñþœʧ®‹e-;ǬŸÿ‘ÕÛ»ùŸò©ëãbÓ9gùÏbÀ¦ëО¿Ï9ëïó=¼û®"2³ÕU ÓuhÏÌßgçï“0}OᆱˆKçŒ*pé:´gf•d²ô=¼{¯Ò6ªôœK•s\UÊ¡=3« V!JßÓÁ»ï*4é9g]¥š´Ú3×*çl<.UÖéàÝw“*Æ*†*&U(Ò¶µÊ9öºÊ*êѶ¹TqVqTq©âRÅYÅYÅQE5Ú¶.U:«tTéR¥K•Æ*Uª¨EÛR%X%P%¤JH•`•`•@•hÛ†T¬2PeH•!U’U’UUÔ¡m§CϹVÙ«CË¡=3ªÌÙx\«¼§ƒwßU¨Ðs®UöªÐrhÏŒ*ûŽ*;ºNᆱ˜T1V1T1©bRÅXÅXÅPEÚö&U«4TiR¥IggGõgÛ»Té¬ÒQ¥K•.U:«tV騢þl{J•|~𼾞Ȓ’%%K0K0Ësú~Z» é2žý¾1΃õ½!e†”,3Xæ9}¿-i"ôœ‘fÎ^¶YÇöÌhs€¡çXÛ¼§ï·¥ÍA‡ž3Ú̹¶YÇöÌhsh3ÇÚæ=}¿­m\Ú¸´q¶qiãÒÆØÆØÆØF¥ÛŽ&mš´ilÓ¤M“6mÛ4¶Qì¶#¤MH›`›6!m:Ût¶él£ÞmGJ›”6É6)mRÚ$Û$Û$Û|ׄ¼¶±ÍœkôÚ&mÛ ¶hcê5Q¯íl3çÚÆĽ&î5º×èÞ÷ôý6Ûó_Ï<ÿüüs›cŠc×ýóO<ç9ÿâ8¿ðŸŸþþÇo_?ýüÏÿþëÿþúå—Ÿÿøí¿µñõë¯û}óßæy¿§þú¾¾÷ïñ{Ûsžÿ¯ÙÏ¿SŸù<Ÿs|×íó¯Å¼ç~à¸ÕË×éúxyûúá&Ûë2vþPåÏÛÀ2×ùûÚu{-3ÿé¯Ë¯î?í\ÅÙ¥I—&]»¸tqvqvqéâÚ¥³K—.]ºtvéÒ¥³KçUvéÚ%Ø%¥KJ—d—.Á.Á.ÿçºÞ®å¶•(Š¦rCè&êóÏá‚:Õ$öúsxÉò™JtIviíÒèÒèÒڥѥµKë§Ú¥ÑeÿÓÙeÿh–.{–.³ÿÝ5_?O¹î_²öówiÖïé„Ù?‹Ï0{”0{–0³®»4Ìýsÿ’õ'ôkis^þ÷š¥m m mLÛ,´YÚf¡ÍB›Å6®mmm\Û8Ú¸¶q´q´q¶ m“h“h“Ú&Ð&´M M M°Mi›B›B›Ò6…6¥m m mŠmZÚìÍÒfÏÒföÏu6­mmmmöÏâ³Í¥Íž¥Íì×Í×ÏkîŸû—¬¥Í¬Ïӵͺ´ÍB›…6KÚÌ×ïk.i³Gi3ë÷ô‹mLÛÚÚ˜¶1´1mchchclãÚ&Ð&Ð&´£kGGg›Ô6‰6‰6©mmRÛ$Ú$Ú$Û”¶i´i´imShSڦЦЦÐÆ>ÒfÒfÏÒfö¿ëæëç5{>ÛìQÚÌú<]Û˜ZØ`aƒ…M-l°°©…÷(m 6bØà 0lŠa†M1¼Gm=lêaƒ‡ 6õ°ÁæÞ£¶ˆ 6±Ķÿì¿@Ý®þßý˜˜óÿqÿ•k~õzØßéj\ƒq÷çéû²óô¼ÿzyœN´š¢Õ€VÿèÛKßÞx;êêP‡C÷|¾ý¾ì8}òv§+]]ép¥/yû}Ùyú¥ow:ÑÕ‰'îYÞ¾ôí o§û\Ý·Ç<ÿs¸oö¿ÿDîÛó·d-žf}žŽWuŸoçÉkà¾Ù?×Á}{Ž’µüyšõ{:Ýçê¾=j¸oöÏupßž¥ Ü7ëót´Q÷ÅGÛÜ7ûç:¸oÏÒî›õûº/Ô}{œ6ßÇÜ7ûßu÷íùlp߬ÏÓµM¨ûbýÚ̯‡ûfÿ\÷íùlp߬ßÓé¾P÷íQÛÀ}³®ƒûö,mà¾YŸ§£º/mà¾Ù?×Á}{–6p߬ßÓé¾P÷íQÛÀ}³®ƒû"µ Ü7ëót´Q÷E£ Ü7ûç:¸/JÛÀ}³~O§ûRÝ·Gi“pßì×%Ü—i“p߬ÏÓµMªûòÒ6 ÷Íþ¹î˯´I¸oÖïét_ªûö¨mà¾Ù?×Á}¹´ Ü7ëót´Q÷¥£ Ü7ûç:¸/MÛÀ}³~O§ûRÝ·GmhÚ&Ð&´M M  ˜êÄ,´)´)m“h“Ú&Ñ&ц®LuåµM£Mk›F›Ö666th©Cë«mö¼ì8oö¿ëæëç5õ‘6{”6õÑ6E·–ºuÒfÏ%¯¹¤Í|ý¾æ’6{”6ui›¢sK[†6†6¦mÚ,m³Ðf¡ ]\êâr´q´Q\\êâ‚‹Ëц..uq%Ú$Ú¨‹ ..uqÁÅhC—º¸ m mÔÅ—º¸àâ*´¡‹K]Üm³giÓêâ‚‹K]\pq5ÚÐÅ­.n¸xÏÒ¦ÕÅ ·º¸á↋›.nuqÃÅ{Ö6ê↋[]ÜpqÃÅM·º¸áâ=kuqÃÅ­.n¸¸á⦋[]Üpñžµº¸áâV7\ÜpqÓÅ­.n¸xÏÚF]Üpq«‹.n¸¸éâV7\¼gmó¸8þfÀ¸?{­7d¼>"ã{<ëÜóYç·ÿÝ÷ûü÷ž{þ–îÏ>¿ýy¾é{ÄÆë£6¾ç%﹤Ïïó÷=_ésÏ.ïQËõïYÚg¡ÏBŸ…> }ú,ôYè³ØÇ´£££¡¡¡¡±OhŸ@Ÿ@Ÿ@Ÿ@Ÿ@Ÿ@Ÿ@Ÿ`ŸÔ>…>…>…>‰>‰>‰>‰>É>­}}}}}}}}àäõ'ÿëÙ¯¯²ùž%×÷«¹æóçy_uô=K¾¯Bú·ï¤×w[¶Žç*¤ïYò}/Í7Ÿ¿ï¹4ßW)ýÛŸç[É{ÖÛë~¡—¡—¡×B¯…> }ú¬ó·ë~kGGGGGGGgŸÐ>‰>‰>‰>>>>>Á>¥} } } } } } } }Š}Zú\Jê{–>×}}}}}}®¯ô¹Õ÷,}®¯ö™ÏŸ÷\_ís)«ûó|ís]Úg¡ÏBŸ¥}æó÷=—ö¹Ö¿ý{þÅ>¦} } } } } } } }Œ}\ûúúú8ú8ú8ú8ú8û¤öIôIôIôIôIôIôIôIö)íÓèÓèÓèSèSèSèSèSè³>Òg× ¼^àõ|þ¼g× ¼^àõyýß{¾Òg× ¼^àõ|þ¾¼^àõ¯ÏëÿÞ³´x½Àë^Ïçï{Àë^/ðú¼þï=¦}Àë^/ðz>ß^/ðz×çõï í^/ðz×óùûðz× ¼>¯ÿ{Ojðz× ¼žÏß÷€× ¼^àõyýß{Zû€× ¼^àõ|þ¾¼^àõ¯Ïëÿ½Ç>ÒÇàiƒ§ ž6xÚàgƒŸ ~¶ú˜úÙàgƒŸ ~6øÙàgƒŸ ~6úÙÔÏ?ülð³ÁÏ?ßóu~?ýlêgƒŸ ~6øÙàgƒŸïùÒïµýlêgƒŸ ~6øÙàgƒŸïYÞ?ýlêgƒŸ ~6øÙàgƒŸïùÒïµýlêg‡Ÿ~vøÙàgƒŸïYÞ?Ÿ×ÿ{«Ÿ~vøÙág‡Ÿ~¾çK¿—>N?»úÙág‡Ÿ~vøÙáç{–÷ÀÏN?»úÙág‡Ÿ~vøÙáç{¾ô{íC?»úÙág‡Ÿ~vøÙáç{–÷ÀÏN?»úÙág‡Ÿ~vøÙáç{¾ô{íC?»úÙág‡Ÿ~vøÙáç{–÷ÀÏN?‡ú9à瀟~ø9àç{¾ô{éôs¨Ÿ~ø9à瀟~¾gyüôs¨Ÿ~ø9à瀟~¾çK¿×>ôs¨Ÿ~ø9à瀟~¾gyüôs¨Ÿ~ø9à瀟~¾çK¿×>ôs¨Ÿ~ø9à瀟÷œ¦{íó·ϧŸCýðsÀÏ?ü¼çËt¯}þöçùÚ'ÕÏ ?'üœðsÂÏ{–>{–>³ϧŸSýœðsÂÏ ?'ü¼gé³gé3ûó|ôQ?'üœðsÂÏ ?ïYûÀϳϧŸSýœðsÂÏ ?'ü¼gí?Ïþ<}ÔÏ ?'üœðs¾~¾fÖ>ðóìßóéçT?ï1Ïÿ?$ü<û÷¾×Ï×ÌÚ~žýy>ú¨Ÿkûø|OÁϳïkôiôŸgÿ¾‡~.õó¥OÁϳöÙ³ô)øyöçùÚ§ÔϵÐ~žý{ߥ}ö,} ~žý{>ý\êç=jøyöï}†>†>ðóìÏóÑGý\>ðóìßû}}àçÙ¿çÓÏ¥~Þ£öŸgÿÞ—è“è?Ïþ<}ÔÏÕè?Ïþ½¯Ð§Ð~žý{>ýÜêç=JŸ†ŸgÿÜ×í³géÓðóìÏóµO«ŸûÒ> ?Ïþ½ï«}ö,}~žý{>ýÜêç=jøyöï} }úÀϳ?ÏGõs;úÀϳï3ô1ôŸgÿžO?·úyÚ~žý{ßÿi¯^¹n# ãýý[&E®öœ‡€á²‹øIëR„Àœ(M¾}ÈógßÇìÆpaQ\Ž~+Ý}6àðA?ûóóá£ýÜ>èçcÿº¯ÂýÜÐÏ ýÜØÏMû¹/Õý|ì_÷5ø Ÿú¹¡ŸúÙïÒÏ~_Äg¬gŸsÿ¼ï<~Î3Ö³ÏXÏ>çþõ|ô³ß¥ŸÇ²Ê<ýón~Ü*<çékÍç±^V=¿º><¦<žþq7?ΡcÐ1èt :F¢::Eu t t t t t uBu*tªêTèt:€NP'U'¡“ª“ÐIè$t: ¤Ž¤³/šÎc=ë,wè4è4è4è4è œ}‘rKÑéëYgÑp>O?ÆY4œÇZt g¹}gUƒŽ©ŽvóyúG»y¬EgÑn–Û÷q\u:®:‡ŽCÇ¡ãÐqêÕ è„êt t t t t uªêTèTթЩЩЩЩЩÔIÕiÐiªÓ “ÐIè$t:hf_¥™ÇRtú/fU“ù<ýgÕdkÑY5™åö}If_5™ÇzÖYµ˜ÏÓ×8ZÌc-:«³Ü¾cªcÐ1Õ1èt :ƒŽQÇU§@§¨NŽCÇ¡ãÐqè8uBu:¡:€N@' Ð êTÕIè¤ê$t*t*t*t*t*ušê4è4ÕiÐiÐiÐiÐiÐa,›Æ²!–ûzÖ1´²¡• ­lheC+[Ù´•û²øc,Ë4 é|œ¾¦CJRÚÒ†”6¦´ùóݧi‘Ò¦)mHéãô5RÚÒ†”žoßÇ)—Ö‡m©ZšÒ†”>N_ã ¥ )mHéùö}œª:HiÓ”6¤ôqú)mHiCJÏ·ïã¤ê ¥MSÚÒÇék¤´!¥ )=ß¾ãwÑq¤´kJ;Rú8}ƒ”6¤´!¥çÛ÷qÑq¤´kJ;Rú8ýÇ‘ÒŽ”v¤ô|û>Ž©RÚ5¥)}œ¾ÆAJ;RÚ‘Òóíû8®:Hi×”v¤ôqú)íHiGJÏ·ïã„ê ¥]SÚ‘ÒÇék¤´#¥)=ß¾SU)íšÒŽ”>N_ã ¥)íHéùö}œ¦:Hi×”v¤ôqú)íHiGJÏ·oã”»è¤tÑ”.Héãôcœ‚”.Hé‚”žoßÇYE§ ¥‹¦tAJ§¯qÒ)]Òóíû8¦:Hé¢)]ÒÇék¤tAJ¤ô|û>NQ¤tÑ”.Héãô5Rº ¥ Rz¾}'T)]4¥ Rú8}ƒ”.Hé‚”žoßÇIÕAJMé‚”>N_ã ¥ Rº ¥çÛ÷qšê ¥‹¦tAJ§¯qÒ)]ÒóíÛ8±ˆN ¥CS:ÒÇéÇ8”¤t ¥çÛ÷qVÑ ´sh;Ú9ÐÎV´r •c¥Ž¶r •C[9ÐÊV´r_GÎçÑÊÁVmå@+‡¶r •­hå¾^RÏ«[9´•­ÚÊV´r •ûZuÐÊÁVmå@+‡¶r •­hå¾V´r°•«¶rE+WmåŠV®hå@+÷µê •+[¹j+W´rÕV®håŠV®h徊V®l媭\ÑÊõlå<—ªƒV®hå¾>tŽóhåÊV®ÚÊ­\ÏVÎs©:håŠVîë%õ¼ê°•«¶rE+×P´rE+W´r_«Z¹²•«¶rE+ת:håŠV®hå¾V´re+WmåŠV®MuÐÊ­\ÑÊ}­:håÊVNmåD+ç]t­œhåD+ç]u­œlåÔVN´r®¢“håD+'Z¹¯E'ÑÊÉVNmåD+§©Z9ÑʉVîkÕA+'[9µ•­œEuÐʉVN´r_«Z9ÙÊ©­œhå ÕA+'Z¹¯M·gÛž-åD)gª J9QÊYŸe»‚fÛžíäD'gStr¢“ûÚt[ešÊ°’›VrC%·Ed*¹¡’Û]dúRdöíùá*Ó´‘¹­"ÓÐÈ ÜצÛ"³oχŒrC!7WrC!7SƒŒ=ãáÑ>îËœÿõµ¢2ûöuú¸¯M·U¦¨ ë¸i÷¥É0Ueöíë6Ôq • È„Ê°›¶q_ªLªLBmÜצÛ*“*ƒ2.w)㱜eÆz’9·ÏÛÎÓ×0MedÚ,#wïÃHeÊ0Ë,sn_Ãhµéö,slχŒ©ŒAÆTÆ £U\îë,3–!ì*c”q•qȸÊ8d2®2W§L¨L@&T& )*S ST&(SU¦B¦ªL…L…LU™ ™ª2•2MedšÊ4È4ȤÊ$dReÐÂe‘K‘Y¤…ÏíÇm‹¶ðX›n‹Ì¾=?\e)á±™EJøܾnÓ.Ë"2‹†ð±=?2¦2SƒŒAÆTÆ c*c”)*S ST¦@¦@ÆUÆ!ã*S(* • ÈdBe2¡2A™T™„LªLB&!SU¦B¦ªLR¦©LƒLoà˜×@Ó@Ó”¦¦) "¸¬Ác)4}íó4ÇþãºU+¸¬RÁc)6«T°\¾O#<–bÓ×bsì_×iµé¶Ø¬’Árù>«ÃÆaã°qؘÚlLmœ6Em l l l lŠÚص)´©jSaSaSaSaj° µ©´IµIØ$l6 ›T›„Mª SØ4… )Ü×bcha»Ã¦©Mƒ¶°±…M[ØÐÂ}-6†6Ä°i bØ4† 1¼öЯ¯ãÖOko¶nçÛxÞ¹ß2´qÝ»§ï¾}{zõÃÏ?~¼}õÕ«ï_ÿùÛ[Øí믿ù¶ÿþ¿Ÿ¬}¬ý™Ïõ–vÀzûÏÛ§¿Ý>>Ýoÿ|úæåéÕË‹Ý–ÛË»þ/onãs9o÷þßþ«ó!­O»ÞíöòáéÿãË¿ž¾{9îÿËu¹Ÿ—ÿµ_ï½·—ózïÊõK÷/ûýêoÏ}ñÏMá#I1Å?þ÷¥1Êï6Æø1Yú/dÿ~iŽ¸æøÅ-Û%ùùKöOüùŠ·Ÿnr‰¾çõzϽßë;Vïß}â3oú¯¿á'ô&Ê_{ÃS¥ÛÐ=îþ õofîÿ[1—ßíöûÌÐvØx«eŠ/½Õõ~ !7üⱶ}vÉCùæ¾þá~{ói;t¿Ý>½ùøä1â`­$?fyßߟ½ìŸóãNß~ý®ÿÛ|ÿãÏo¯¿ž¿ëöiÉ­&>l?λØXoÓŒu]²{Xõ¶ïû§ËyÜŸýX•Ð]÷ùô±ÿxútùþi3¾2MÓl_™¦×ÛøcOÏ;ö÷íÇÏil›v×A.§ï¡O7ÆÕ¦À¦À¦ÀÆÅÆaã°qØ8mBm6›€MˆMÀ¦À&`´©jÓ“k~y‚fß~ÜVE¦B¦B¦B¦R¦©Loÿ“]‡É²›:„w”ò$Áþ7æxðu·ÿEÅÁèõ«¤¾yþùT˜ëø~m¢ËT—¡.S]¦ºüýbú·ËrѳËùa—ßñ~íwù·ËšÐeÍè²Ïïêò÷{é±Ë‰.çÉ.¿ãûµóÙeMèòõ^çåCW—Æ.]ººtvièÒÔ¥©KS—æ.Á.Á.¡.Á..¡.]]B]Â]’]Š]J]Š]]R]R]R]Ò]» vê2Øe ËP—R—¡.Ã]&º¬_IÏ.ßñ¹Ëïø~m¢ËT—©.S]¦ºüýFzìòA—ïˆ]>èò»üÛeMè²G—}þø8»´“]»4uièò»¼w9ÙeÍè²ÏïŸîÒÙ¥³KW—Î.]ºº4uéêÒÝ%Ø%Ù%Õ%Ù%Ð%Ô%Ô%Ô%ܥإإԥإХÔ%Õ¥Ô¥Üe°Ëd—©.“]º uê2Ôe¨Ë÷—Ïc—5>ÿü;>wùï×~—»¬‰]&»ìóÇÇÙ¥Ó½ë§Ù³Ë×o•ÇçNtéPo—z»ÔÛ¥Þnõvªwøóö_a—Æ.0o—y»ÌÛeÞnóvšwý$D—P—`ˆ·K¼]âÝç÷Ç-ÞNñ®žê’ìïvy·Ë»]Þíön§w;½»Fv¡w;¼ÛåÝ.ïvy·Û»ÞíôîÙ…Þíðn—w»¼ÛåÝnï½ôîÑ%èÝ€wCÞ y7äÝ°wƒÞ zwèônÀ»!ònØ»Aï½»Fv¡wÞ y7äÝwÃÞ z7èÝ5² ½ðnÈ»!ïîóÇÇÕ…Þ zwìBï¼ònÈ»!ônлkdz7àÝwCÞ y7ìÝ w“Þ]#º$½ðnÈ»!önÒ»Iï®]’ÞMx7åÝ”wSÞM{7éݤw×È.ôn»)寮›ònÚ»Iï&½»Fv¡wÞMy7åÝ”wÓÞMz7éÝ5² ½›ðnÊ»)寮›önÒ»Iﮑ]èÝ„wSÞMy7åÝ´w“ÞMzwìBï&¼›ònÊ»)尿[ônÑ»kD—¢w Þ-y7åÝ’wËÞ-z÷;æ¿?8‹þ-ù·èß}{/—8\âp‰Ãe×2i>w¥‡K.zxßÞÛÄ%—@ŒÇ¯uú#Õw’¸Dâ"‰÷í½ŽL\2ñ>¿¿ÞñÿÓwTª¸¤â¢Š÷í½ŽX\bq‰ÅxüZ§T‡0.Á¸ã}{¯#—d\’1¿Ö™ªC—l\´ñ¾½×ŽK8.áÿ­3Öäñ¸y\{~ÖÙ·ë ùxÜ>þÝ–ñøµÎÉ:ƒB·kÏxïD!"›È÷íC_w¦:DòèªC$ïÛ{)y4Õ‘’ñøµN¨­2¹}`äïˆ2ù¾ýÛåC#ÿÍÏË$2ß¾¶!‘¿3.Èûø~DþŽyõЧ]¦©Lg™®2eË4•i,ÓTÆí2tq;áâïˆ2çÁ2“e¦ÊL–™*c·“,þÎÏ 'Y¼÷s'Xüóê¡O«ÌyªLc™¦20ñ}{ïBÿÍÏË$1ß¾¶é*ÓY¦«Lg™Î2]e:¯ú´Ë„Ê$ˤÊ$ËË„Ê˄ʘÃí,•)–)•)–)–)•)^=ôi—*3YfªÌd™Á2ëßû“Ç(ó;¾?þ¢p…)ÜDáF 7RxŸǼú9ùi•irp£ƒ›ÜèàF¯eÖü,³ï¿ÜÄàF71¸‘Á ^#Ë4^e™—› Ühà&7¸ÑÀkdx߸ÉÀn2p£ ¼F–I^e™—› Ühà&7¸ÑÀkdx߸ÉÀkN¤‚÷ùý ¼F¶™¼Ë6/w)¸/æ>·ébð>ßÏu:x¨Óéà}|ýåà.¯uº ¼Ïï)á5¢N×]Ôé/ wI¸wÕ…÷ùý-¼FÖ¡…÷ñýõ—…»,¼fÖ†÷ùý 5¼FÖ Þe—†»4ÜKuÄá}~?G¯‘uèá}|ýåá.¯™uâ}~?H¯‘uï²ÎKÄ]"ŽƒuB$Þç÷s4ñY‡&ÞÇ÷>/‡L¼fÔ ¡xŸïƒ*^#êćwQ'^*©8šêˆÅûü~Ž.^#ê]¼ï¯¿\rñšYG0Þç÷ƒ”ñY§ó.ë¼d’q¤êˆÆûü~Ž6^#ëÐÆûøþúËÆ!¯™u„ã}~?H¯‘uŠwYç¥ãŽcªŽx¼Ïïçèãƒ>ù8^>Nùxͨ“ò>ß&…œr¼‹:ùrJÈy²NŠÈûü~ŽFN9i䔑óe䔑×Ì:Bò>¿¤’SJÎÆ»¬óRrJɪ³˜üüïü>¿Ÿ£“SNN:9åä|99åä5³Î‚2öIÕ¡”SRÎä]ÖyI9%åª3Tg¨­œ²rÒÊ)+çËÊ)+§¬¼fÖ‘•“VNY9'ï²ÎËÊ%+—¬¼fÔ)Y¹hå’•‹V.Y¹^V.Y¹då5£NÉÊE+—¬Œ+KV®—•KV.Yyͬ#+­\²rÑÊ%+×ËÊ%+—¬¼fÖ‘•‹V.Y¹‚wYçeåú§ÕóoYyͬ#+­\²rÑÊ%+ãõkŸ^½ö‘•×Ì:²rÑÊ%+û.ë<ß¾¶™¬3då5£Î•‹V.Y¹hå’•ñúß>ãÃ:CV^3þYyÐÊCVÞE¼}msªŽ¬¼fÖ‘•­²ò •‡¬<:ï²NÕ Õ‘•×Ì:²ò •‡¬+Ði9Á>¨Ò£>®‘N‹ ì³bï²âÙLGˆŽ%:JtéѤ#DG6tŒèÑ1¢cDÇŽÃ^¤c:‰èd¢“‰N&: é$¢“N":iC§Bt Ñ)D§ Bt¨é” ŠtTé–Î2Št*Ñ©H§Êt–é,¨Ò-UzôŸöYP¥=c/ÐÙÇmV¢#DGˆªôèïÛ J·é,¨Ò8ý¸%:Jt”è(ÒQ¢£Ø‹ttCLjN":‰è$¢cHLjŽ!#:¶¡“‰N&:™èd¢“‘N&:{‘NÞÐ)D§Jt*Ñ)H§‚t Ñ)Lg‘Ί*Ý2ÐYQ¥GÿiŸUÚ3ö˜}ÜfA:+ªtË@gE•ý}Té–#U§÷¢#DGˆŽA:Bt{‘Žlè(Ñ1¢cDLjŽ"%:Št”èè†N":‰è$¢“ˆNB:‰è¤v´# Öe]3*¨ B€2ÊÈuÊDˆ}Y×J„*ªD¨¡Š„*ªD¨¡2 )³2 )³2 *³2{BBÎ,grf!grf!gtf!gö „„´Y6Ú,¤ÍBÚ,¤ÍBÚ,¨ÍBÚì ‘7ËÆ›…¼YÈ›…¼YÈ›½Yțň©³lÔYH…ÔYH…ÔYP…ÔÙ3"w–; ¹³; ¹³; º³;{FB¤Ï²Ñg!}VÒg%}VÒgA}ÒgÏHˆüY6þ¬äÏJþ¬äÏJþ¬èÏJþì))´nZI¡•ZI¡•ZQ¡•Ú3RrhÝ8´’C+9´’C+9´¢C+9´g$D­VÒh%VÒh%VÔh%öŒ„È£uãÑJ­äÑJ­äÑŠ­äÑž‘©´nTZI¥•TZI¥•TZQ¥=¦‚e$tªã7.mäÒF.mäÒF.mèÒ—‚e Ôëáx"d¤ÓF:m¤ÓF:m¨Óg ÔëãøOù´‘Où´‘Oú´G$$DHˆÐF©”ÚºRÞN>Ý‹cú´GÄ£„çT·ØV!›¶nÓ‡·“J©´¡J{D0¤Ò½n±7¬Bm%R!‰6’hC‰öˆTH¢{ÝboX… Ús^ÇÛIŸ{qÌB}öˆTHŸ{Ýbïy•DîœÜ•Ç*‰Ä¹û¬„âì¨$ç^·ØV!kö|¦’H™{qÌBeöT)s¯[ì «/'TH–{qÌBYöˆTH–{ÝboX…LÙs BšÜ‹cj²G¤BšÜë{Ã*äÈ)G*$Ƚ8f¡ {D*$Ƚn±7¬Bvì9P!5îÅ1 ÕØ#R!5îu‹½aòâ<*™¤¸Ç,”bH…¤¸×-öžWÉdÄžÏT2ép/öYuØ#Pɤýn±7¬B.œ%R!îÅ1 EØ#PÉ$½n±7¬Bì9P!îÅ1 Ø#R!îu‹½aòßœ"’ß^³P~="’ß^·ØV!óõ¨öö★Úë©ööºÅÞ° 9o®‘ o/ŽY(¼™„7“ðöºÅÞó*…l×ó™J!ÕíÅ>« êRÝBªÛë{Ã*ä¹e T In/ŽY(¹…$·äöºÅÞ° ®ç@Ežg QA½-¤·…ô¶×-ö†UÈmýE bOV1¢‚n[Èm ¹m‰n[6n[Èm=*‰¨$¢‚n[Èm ¹m‰n[6n[ÈmK‰T Q)DݶÛrÛݶlܶۖè¶ ¹mA·-䶅ܶD·-·­ä¶5º­ RÉm+ºm%·­ä¶5ºmݸm%·­Ñm=•:ÜV{ŽTêpÛQ*5ºmݸm%·­Ñm= •á¶§Yè¶u¸í(#•è¶u㶕ܶF·õ€TŒ¨ ÛV#*䶽n±7¬Bn[£Ûz@*™¨ ÛÖDTÈmktÛºqÛJn[£Ûz@*…¨ ÛÖBTÈmktÛºqÛŠnkspÛ"•Q³Ðmk%*ä¶5ºme·µݶå|^e*£xš5š«´©´©ŒºÅÞ°ÊJT$R¢"@e4÷UV Ò²Á*Ámqðq%*©(QQ¢¢HE‰ŠTØmm6¢’"•DTQ1¤bDňŠE*ì¶6g¢’#•LT2QÉH%•LTr¤Ânks!*5R©D¥•‚T Q)D¥D*춶 Û¶|¦â¨,3RYÀm[* ºí¨[ì « Ûr9¿Ã–àº-¥eEJ½¹¯êÛ"@[P}GÝboØÔ ´ÄM%B‚&íÔÜW‚&M"´8ø¸ŠHm‹Œ AR„¤DE‰ŠF* w§­’ˆJŠTQID%!•DTQI‘JÚPÉD¥D*…¨¢’‘J&*™¨äH%o¨T¢R#•JT*Q©H¥•JTj¤R™Ê:#•5¨o @e]Jo>­²ÎHeEõu‹½a•©¬A}[*+ªïhî« ú¶ TÖ ¾8ø¸ŠT”¨(Q¤"DEˆŠD*²¡bDÅ"#*FT ©Q1¢b‘Šm¨$¢’#•LT2QIH%•DTR¤’6T Q)‘J!*…¨¤RˆJ!*%R)*©HT_!õ•™¨T¤R‰J%*5R©LE¤"Q}…ÔWH}{ói!õR_‰ê ƒÛ*«÷–vº?¦ÅWYÝ2Ž§•ö†Qöoï.¾}y=]\Ý|º}˜ž=»zyýÇo¦´LÏŸ¿øÆÿžÞûÏwήLÿœ–éå4O¿øÏ÷Ó«×óôvºx±»¸º^š½¶{çïݽ™Öi÷8-‡ÇiöÇWk³äuJÉ_—Y¦Ý‡‹gó¼æç»_.®v;9õ?ç¹´CævˆÿÖZÚ!»·—ÓþÇË—?>yâïÿv÷Ù­×¾õÿ¸Ó*þ!Oÿ¯®oæéúæ0ež¦›ë?ùÙ¼Ùé-Noqz‡Ûâ“ýaõ»ü¡ç”ýë¯Ý¦c\óá‰åUK(Šÿ!RÎÅã'âƱü|ûénp)ãnöÉÅCÃLÿr™Ë¡õ3Xó±*[–µ}®¬6ß:²¼ÜO¿?ò_¾qyܸ¿_È|0G«·uYöçæð}óxwñ·éáKÆÿú–óÏkŽ[þ…í¤o÷—ß& þ¿&"ð>³YÃ¥7¿÷þRÛUÛñï ?«_: ?\áf['Ä ®~c¸}áÊ>xZ6—÷ÿá|2~dæð -íì¯ÚËÕ¦]{*žÎëqÌáÕRÛ¯ùÙo»ã¬³¿ðA¯.ÿpÿþwSþÝôׇû·÷?}w·Ÿ>=Y–ËÛ'_-—ûýÝãÃôäõîûó:_?îïßݾٷ­¾Þïoßü|÷vzuõâã~ÿñÃôúj÷oH®~¸}ÿp»¿ÿø0]½xññ_Ó«ãSûîñ§ÓŸf”¾‡6‘™mz}º¶«?_O~¹ó®t WšÛ•Jû£Ë?®_¼RÿØ<­çä·üWiB DJ.)¦BH‘“ŸUµJ=TA:€)ÉØVH™¡d>0`ói'Ð endstream endobj 55 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 56 0 obj<>stream H‰œ—moÛFÇßëSìKˆ©}~¸¦j'=¤€qÂw°ƒ€–i›=[2$¹¾ôÓß,—KîLD÷p àj4Ü™Ùß,gÿZý²;twÍúÀÞ¿_ýr84ë‡ö–]­êí3ûºª¿?·luÙÜw›æÐm7luv¶ý»ÁVN1Ïm¥ 3ZTÚ˼•ÒÜ°¯>œ}òᓾҞy!*)¹bõÓbÉNêßc<‘⃜ëµÿ(ch)+c\Œy»X~ÞÚGv-¡ò‹ËÏì¬Ý¬žšÝ¿÷C  ƒl*˜auŸîS½ˆ,‚ïYX¦´ª ºÊ°]»¸[|º€m÷V—ðÅùç°| “¶?”ÛWëúT•r®¯ö ‘‡]ça×Ί*Øa׺’•ª;ën»Ý·Ë—C®‹¦8-ŸÒŠ‘‘ÒCÚc°Ö•Ê°GXìn»Ã)¿<7›1«ÄYeÑ¡&°$£´NÎ-ŠÛ›Ù:¾»©ûGw¦¸ÿ!Ï;öÚØMw @Ûu<öÍ#;ìšÍþ®Ýí+6XÏ.O¡‹°´•Ì­››Ç–™˜¬¡¦.ÆX²›öqûÊöÛ×=;<´ì¦ÙwkvÛÞu›.– µŽ«íÔã¾_㇓ükwÿ²k™ï&ÄTeÈ'¾Û³†íaB<Á4X³?ºö•mïú$G߶Sxݬ ìTTÂô!b™ÏÍáÐî6ÕGs”cJ Ó ’« =ÃùÙ ãüIüžÚfÛºÍùæÒÙ£érdÅeåµÃ±¯–Íží¿Ÿµ|ºÙ>vB–›öðz"å²m7ìø”ðµþ-íDŽ;ÑédºÊœ¯–¿žœšenJ\R¬è[ÿÓÄ|x‹bcMÏ•3ãLQgœ«/ Üzãóù|¬ÎáÖZïûƒWÓ~½Yha`p@}fÿS2ý`>ö¦M^£ÛéÞ–ù£_Ë+ï³-±Íýø°†GJÎ)ÓX×ãâ¾°1ÌT¨«DòëÜÅ@E¼ìïaíX‰­Œ/œU’9r‘8Uâ'FO½iQ%ž0ò%#Où’‰#L²sŠ¬p%1‘31ý}°@˜„’I La“¨›ÊJf6b’ý ²°€Í}éç˜Löñ1˜ÛˆŒ"d!3øÇ|ɪËc?â“ýc|IùhÌG>šðÑ„&|4á£MøhÊÇ`>–ð±„%| ácCøÂÇP>óq„#|áãF>r°1Kø8ÂÇQ>ó „O |áãG>r°1OøxÂÇ>Š#>`">`#>ÙŸóåå¹°1Ÿ€ùdóQñQóñÉþ±ù€ø(ùdÿ_P> óQ„"|ᣅù@ý˜"|å£1CøÂÇ>šðÑ„&|4á£)‹ùXÂÇf>"Û˜%|,ác2Ÿq=æc)‡ùxÂÇg>"Û˜#|áã2Ÿa½#|å0Ÿ@øÂ'>ð „'|áÍ{ˆ˜Oöç|yy®lÄlÄ'ûÇøœjh HUÁ2‰™åÙ(šT,îÕ˜ð. ¸ø£COÂ2™£pL?IÛéÞæȯªQJúÞ´…´D6÷Å㽸DѸÇÙÆÚ q9Û‹ÇhÊB\ñN7¬«édéÖ¨šÁ=F/’sªÆgV²˜EšðÑ„"|4á£)ƒùXÂÇ>–ð1„!| ácCù8ÌÇ>Žðq„ùB³ð[ÂÇ>Žòñ˜O |á?ò)„&òc>žðñ„ORzc=IHNÏ'¡9ÅËþœ//Ïõ$!YÔ0Ÿì/âc>IéMõHÌ' Í"žÄ|òò±ù$¡Y¬˜O™¾šS=ŠðQ„"|á£0Ÿ$4ÑzÌGQ>ó1„!| ᣠMøhÂG>šò±˜%|lâc¤šE>KøXÂÇ$>ÅzÌÇR>óñ„O|Æxžðq„#|\â3®w„£|æŸ@øÂ'>ðñ„O |á“”ÞXO’ÓóIhNñ²?çËËs=IH"?â“ýc|NµÏ 4eÅ ¡‰ÄS'¡ùéâœ-V_ž› {ÿ~uqþù#óìdzð5g÷‹³z±ªkÉ«ïà‹ú• ×rø—>).+Ǭa¤¹bõÓbyqùùÛåËá¤þ}ñ©R\Žñ]ŽŸbóû‚qiX½fñ“v1Wèó&‚Ò:&1rHrÓìÛ[¶Ý°2€ZØ íL[¨ô!Ûµ°W QüŒÏ@kæ|OÀåË¢|¡úòQÊ;0pJL›CsøþÜ"V(ŸàGδÁÄÚ‹øgÿª?ÍôAˆ£ˆQ¦¤¯bPš]/·»î¾Û°fsËÍî¾=\Ÿm…†_QÞ”­8êZqÔW–/–O Œ|Ǫwíóvw€Ss螺Íýž½A]Í·™‹±Í#¢D{øùp½¼¸>™£¯ç_!òk ÊïœÑmÞÚ‡)ÓœËo||•é ¿8ø{Î ÿ¡ï?Ž"ˆp»XîÛõÜ.í»Ôã.-*ÄŠx›p¶š=ë6·Ýº‰ öœ††‡†Žqà´X—*»Zþzrj–ÝýË®eþäkýÛÚ©C\²|Ç60Išûû]{ úà¢SgNÄ)Œsîú-_/ß`îþêìLÇÆÄc?‹‚Ï/íÏbŽ¥ÿ?NL D”ðÎN{½^®ïª 'Ÿ†܆A =†+'þëÁŒÐA^™üÀOoÂ7†&&% ‚dómß<=?¶3d$Ÿ'ÃÇVËP’Ñ>üèÛ·íQð;Rgj š°ò™CzFÆ•¼3Sn3\,ð£Aáé¸s˜ƒÇ˜¯”ÿû‰ëBvØõ?Ws7µToœ¸0¾u8áã‰+¼+[Íü‡Ýöåþáùåp¬A&ô?åò}ßô˜±Wp]ÁDë*ú7³V†;7x¥–Q´MkS{gÖþ蜖޸Dx?^Ó„|C‘¯Fávµ¬O„PËææ±eæo쬻ívQɱÛö®Ût‡.Ê­8E5Ì—%‰Œý/çå²3·q„ѽŸb–YÉ$«ª/‹dcq¢…I’ Ëå$Êû#Íá°§¾£]²0àOõwuñ°‡<¿xßgÜ_gÏNÃciü°å.üãbÂ÷/›ý·Ï¦ëpßñžˆ¸š0ÐjÑö[æù–ï‘ñ}ðѵÖÊþ7->kü‰µãxœ'¥´¥`íã²>(OJ»;ßøÐwj½~j\‰^ÿo[Æ'ÕÅ—õþ‹úïå·—CmÆÿ<æÇüÿû«ý©³^lôkû_%ÇÅ}y7ÈÆþã§1NÈåÛ±ñÏã¿?^þú÷åòú¡µŒ“òŸæ8ž6ØÆÇka|ㆵñ½móÝ_þôÍï_¾7ôÉ~öä´Þ)OvY÷çô~ ?x¤)[öÒÕûrŸý"Û"ºšžºô‡Ãou†É6—}ûúcW`Ÿø=?ÆT–ý‰¢4>¿Ã»1_—?¿®úè\Ðöë)å~3þö›×oÞÿüë›wüZÄeÅ>¦Î[4¬rEß¿y÷x÷ê™9Zù¿Oô¶ß®‡'z}Š±>ÆøôV»|î‰nŸu¢o]?ïD?þÑΉÞƳſðDû§ÞP1 OkOô“Ëòõ ôÉì8Îö%ÇÙ·/}ëÞöú¼ãüò§þë‡ûfó‘ðõ7/—Ë«÷×¾ËåòþÕ»¯¶uÝ-!Æ[½\~¹Æ~ÄñÖx;òþÝãvij| ×¥W'=òîJ³8}²ò(žÓ¾o¿úiüƒ½Xó vuÁûßÛø÷Ôî,ßÂ*ƒlÃ`gq|œÉ gñÞxÕA\‰8ˆ„ñLÄAÄ3'‘¢D ˆ%R2‘"‘‰ˆˆ©J¤‚HS"5© R3‘ "D*‰t%ÒA¤+‘ž‰ti™H‘"D¶EˆŒ(D¶UˆÌò-‘mIDF"³x6^@dۄȈBdäLd–oAˆŒ¡ïDF"³xo "¦D D\‰X&b b™ˆˆˆ‘H(‘‘P"‘‰ˆx&â â $R”H‘ªDJ&R@¤d"D ˆiJ¤HS"-i R3‘ "D‰t%Ò÷¯˜³¾Gd‹êÐm霫XÏÀ:€uëfëþ—sÎØÈØ,ß–q6‚›Å{ãÍeíNè—kTB&„fù„ÐÈw"#‘Y<oùÎ샸qq%♈ƒˆe"""N"¡DDŠ‰L$@$2‘‘‘ ‘ªD*ˆT%R3‘ "%) R@¤’HS" Dºi™H‘–‰4i Ò@Ä!2¢9™å[P"=é Ò•HÞ÷d"¥uUZÏJ{.=ñ¬´¥u(mÞ÷Ä””ÖUi=+í¹t’•Ö¡´¥Íûƒ¸Òº*­g¥=—ÎA²Ò:”Ö¡´yßc¢D ´®JëYiÏ¥s¬´¥u(mÞ÷¤*(­«ÒzVÚsé$+­CiJ›÷=éJJ몴ž•ö\:ÉJëPZ‡Òæ}¯ƒÄ"DJª´‘•ö\zYiJPÚ¼ï1È&DJª´‘•ö\:ÉJPÚ€Òæ}AL‰@iC•6²ÒžKç YiJPÚ¼ï1H((m¨ÒFVÚsé$+m@iJ›÷=)JJª´‘•ö\:ÉJPÚ€Òæ}AšÒ†*md¥=—ÎA²Ò”6 ´yßc®Dà°E6²Ã6²³œ5à¬ÑA¤¨³8kQg-ÙY œµdg¡µ¼ÎZè¬EµLgõ£¹:kÉÎZà¬%;ëÖt刷¼ø>ˆ:k™Îzû{uÖ’µÀYKvÖ”ÈtÖÙDÔYK€ˆ:kÉÎZà¬%;ëJ$@„ÎZÔYKuÖ’µÀYKvÖ”H:kQg- DÔYKvÖg-ÙYGP" Dè¬Uµ.J¤ª³Öì¬ÎZ²³Ž Dº©tÖªÎZW%RÕYkvÖ g­ÙYG"³x6¦³VuÖj ¢ÎZ³³V8kÍÎ:‚™Å{cQg­"ê¬5;k…³Öì¬#(:kUg­DÔYkvÖ g­ÙYGP""tÖªÎZ+ˆ¨³Öì¬ÎZ³³Ž D*ˆÐY«:kí ¢ÎZ³³žKç ÙYk‘"tÖ¦ÎÚ%ÒÔY[vÖgmÙYG"³x6¦³6uÖ¶)‘¦ÎÚ²³68kËÎ:‚™Å{cQgm"ê¬-;kƒ³¶ì¬#(:kSgm"ê¬-;kƒ³¶ì¬#(:kSgmDÔY[vÖg9RMÜjg[kScm <ÔX[6Öcm÷J ´ uÕÖ•DWWmÙU\uäH5%Ñ•Mµ«©öUIt5ÕžMµÃTû:+ÐÔ£ro©$º:j‡£vuÔžµÃQGŽTgílKCíj¨†ÚÕP{6ÔC½ÿ@:ôT~nÚÕM;Ü´«›öì¦n:r¤š’%A3íj¦#†Œ­f:Ë· $ê¬@Kʽ%H¨“öþb‘ÔIÏòõ õö¾zNÑ®œÊÊ£)x©-â¥{Ì<öœxÌòm·¹ú6ÌÈyUÓ£˜o:ˆx©-›PÙóš{mBe®žƒ¬™ÊMFY3ÙûÆ”ŠŠ)ËÅ TLƒŠ+••P***®TT\©8©¥R@¥(•*TJ.¨m *U©4PiJ¥J•ªT*¨T¥RI¥+•*]©tPé Òs±J×ÆJeGµuU*«8ê,Ÿ{­ª©{- •[y6‡§Ú*žºG¡²Š§ÎòÜMUuä\TU=Š©1¨˜RqPq¥â b bJÅ@Å”Š‘J(••P***2ŠƒJhcP)J¥‚JU*T ¨¥R@¥(•B*M©4PiJ¥J•–‹Tš6ñVÛ¥²‰·ÎòÜ«ƒJW*TºR½Ú&öºG¡2rÉXÎú¹Ý¦;r.ªÄÅÔY±l›b1`+“˜rÙTd÷Z.›¸¬l~LãÊÅÁÅÁÅÁÅÁEŠ.è .¡\ ¸p)ààÊ%À%”KKU.\*¸Tp©àRs±€KÕÎàÒ”K—.\¸4åÒÀ¥)®©á wdábP\ƒâÚ’gâÚ¢•‹©âwdábp\ƒãš:®ÁqM×踦ŽkpÜ‘• $× ¹–%× ¹fÚ\Tr ’;²rå,×Ôr –kj¹FË5µ\ƒåŽ¬\ ¹͵¬¹͵¢ÁE5× ¹#+x®ÁsM=×๦žkô\SÏ5xîÈÊ¢{.ŸÓdÑ5ˆ®uí¬\\E×!º# ‡é:L×Õt¦ëjºNÓu5]‡éŽ,\ªëP]ϪëP]ß´3¸¨ê:Twdå×u¸®«ë:\×Õu®ëêº×Y¹@v²ë2 d×C;ƒ‹Ê®CvGV.°]‡íºÚ®Ãv]m×i»®¶ë°Ý‘• tס»žuס»Þ´3¸¨îtwdáð]‡ïºú®Ãw]}×黡¾ðÝ€ï|7໑}7à»±jgåê»#¶Y¶€ýì7`¿·Õs,Èp¨ d8T†ƒ2ãå–&… \8à·Õs©A…ÙØdŒ˜ˆö1 ˆðmõC=8àÁ¡œ¶>F©Bÿ㲎‘,ƈú:Œ‚$P…‚½!S×¥½¿»üM‹Lo*ðATdLÏ<)8¤à÷öZeGpÁ1øa)Cø½½Ö €C x{úo•<ö")ÿ¦ü›òï{û[%wþ†ø›?Œ"yîERøMá7…ß÷öZƒöMÙ7ißíég•†"’oJ¾)ù¾·×*;|SðÍƳHG±7ÅÞ{ßÛk ª7¥Þ¤z·§ŸUEdÞ”ySæ}o¯Uvò¦È›É³È@7ÞxßÛk z7åݤw·§ŸU&ŠH»)í¦´ûÞ^«ìØMa7'?Œ"ãØ‹ QwˆºCÔ}ok JwHºƒÒÝž~V¹ö"CÎrîsßÛk•¹CÌ?Ì" E„Ü!ä!÷½½Ö q‡Œ;hÜíég•@ wH¸CÂ}o¯U°ˆ€;‚f‘Dñvˆ·C¼}oßk\ïþ.ÛLyl3äýñg› m&‰xλ‡¾­.]:»tuéìÒÔåþ‹¿xŽ.ïñúzs—`—`—P—`—P—ûoËïž¿­.É.ƒ]†º vIuIuIvIuIw)v)v)u)v)u)u)Þe—r‚·¼Màm»Lu™ê2Ùeª‹½ÛèÝFï6y·Ñ»MÞ½gti'ï¢K“w¯ûÿ¼?ïÜÿ^üV¹î¯äÓõú}ì=>ÿþ3óßüçÿú÷ÿüÙu3ëmC¸Ï*î ®_‰?¢Ã…ã&Eª¬ E€4Èþ«hF¥sÞÊ Îâ<Ÿ¡üí·ý÷ßÿûÏßÿíŸÿÇ_?Æ­ÿÇþ5‚:>8Úuð=ú7ê>êÐc+ßÒg™±êª}ÖRW=ÈGý+ïqõÏççדĵ| ®ŽÏoý50ãõàl? Õò•×ÏáêÏ<ÇZHIHIÈPHIHIHIHIHIH_BNBžBóG!'!'!#!#¡Ìs< 5j)4;…2–]£PÛ™£Pæ½^ý÷B„: uÊXvB±V$$ÔYhü.ƒÐ¨Aè{œ'–]ƒÐ¨AhÔ tò^¯þ{¡ŠB£¡ï%p ¬(´ÚG]}íB£¡“çxR’-´’—‘‘¡‘‘’’’½„œ„œ„ 9 9 9 9 9 ùK(H(>?Aù‰Ob±Å*ÆkÙ~ l$ØR°bžÏ±`'Áñ¿°pGÑïMq=ÐIt¶Ÿ; wî)\1ïõê¿¿ýGô×·Ñïqžx>¸Ús¡1G ‚'Ïñ÷ô³PÝ_yHüúÖ(& vâõ`E±QƒÐ¨Aèä½bÿ÷·ñ³î¯¸RRRRºŸŸ   9      ÙK¨‘PÛ1_h(ÔH¨‘““Pæ9ž…‚„b¬ŽŽBABABABAB™‡cÿ^H5ú:±ì…z ÕU£PG!x~.TPH i¡Ë®AHóæ΄NŽý¹ P¶×µ>iE “çtRR2RÊö]¢’’¾|œ|œ|}œ|}Œ|Œ|Œ|üåÓȧ‘O O#Ÿ†>|ù4òi/ŸN>|ö=n»DŸŽ>A>yŽ›cžÓÉÇô±}lŸãsà‰çƒ§}—àcyg;øÀësŸŠ>VÑÇ*øœx=XÁÇ úXAŸ“çtöòòQôòôòòò‘—å†õ»‘¡‘¡’’’ÏýúÜÇsù“OC'G'''Ÿûõ¹OOO OO O#ŸF>|âåÓÉ'/çïO´?ÈÓ‰§#O'žN<™vïm¼ Žç™<·)€sÒºëÇóF^ñ¸¡ãnÏ<°;·©hãmlNZw}ÛxÈK`ûmoÏm”lmm”lm„l„lmôecdchãhcd“ÝEW8F8†8öÂi„Ó§!N#œì^ë8é8é8ê´—NN NG @`ö N{@§í«ÙV8§ymÓ §'ÆݹLA›VÀ¦í‹y.Sæ4ÏeZAšQK@û-OÏe„ded„deZE™Qß2'ìÎe”de d”d”d”deeô%“§êøéøõ­AÆAÆIÆIÆHÆPÆPæ~z.“wêZ¦¡L€L#™F2dÊ4”¹ŸžËt’é(ÓA¦“L'™ ™@™@™Î2ñ Läܾó£Ü4'¯î¹MåMò©/’+®«¼IF}-Òdg9¶â呧î¯ìsp½E®x®Q@äS¤‹ìÔ›÷*‚"²¿òú¼ ˆ ˆˆ\Y%Á±$¢(b$b(’q™µ‰®/1š(š(›8š8™8šd\v(~‡F*ŽƒI¥¡JJ JJ#•†*Tª4Vé¨ÒI¥£J'•ì~æ¿ýƒT:F•ò€J)¨R ¨œx¾uºç"£6ŒA%ã5ü!•RAe” R*¨œ¸ìTJ½Ã‚*+ÌÁ¤"¨¢¤²ÏYÙ%ª©ªäA»ÚU„U UŒTö9+»D#X%ÏÙÝŒƒIÅQ¥‘JC•F*N*Ž*N*Ž*Î**A**A*A*q‡T“Jž•ãc“ú K}€åÄë±N,Y:±td¹ÿ®Só¼\넵ß2'Ÿžþ¹O-wø Ì sr¥]*ÑÑŒÃv´9ýk— 6µ¢MÆØû(ÙhÚÌùJ6J6J6 ÙÐd¶1²ñ´™N6™Ï Ó¿vÙ'lÆh³c¯Øû4²idÓÈ&óg×hÓîÐɦád¶ ²édÓɦ“MM MM M°y®}*ÚŒlN¾¬h£õ Ú¬0'WÚEÈFÉFÉFÉFÈFÐFÈFÐF^6F6yïÚœodcdcdÛ(ÙNf'›>a¢ˆÌ¢LÈ`õS)-ËD£L4ÈÜÇߟxœ4QI4ؽÓt¡é éBÓIÓ/ÍIÓiMl:mú?6Cl 6&6F›!6Cl†Ø ÚŒl\l6.6N§ÿc3Å&`Ïæ” ™B3…f>šÜ¾³ç?2KddÖ“9%v-Y&·ÿΗUè²jvY.«Âå¾½YV¡Ë*pY.ؼ³´›îûÅøï·Îß7¸¬—ûöeitY.«Á›w–~Ó,.ƒ.ƒ.]\º¸tºtºäÍ;‹‰‹ÁÅèbt1q1qt1ºØ?...÷<®{ü$Ì$Œ Œ ŒæÇuäç)MˆÌ=σ ͽýT”y²Ÿè€yçñ­2 2VJ–ù)“ÌíÞeK`Þ|ÛpYâ²ÄÅJ…ËOí9KÍ.·»—½·'ËO]r»d—×M£»diâÒéÒéÒ“Ë{û,qjs´-=m`áâeË Ë ËË»~O”A–‡E檉‰‰ÓÄiâ0111šLLLì“)&“&“&&SL&M&™«&!&‹&ïè[g”” J”ó6D%T¥ªÔ•úŽÞ¸uÚV YjK-|Yd²¸ÔJ—ÚàR]jË.µÒ¥V¸ü”ùm¥ Vï0ïèl¿Y:Yº°t°taédé|YdòÛ»ƒ¼{s1¢˜ P†  ¢ ¢ AI›w§‰ÓÄÅÄaâbâ4q¾,2YL&Mî‰[ö蓀ɓI“I“wâ–ȯÿFY4¹îù|‰É‚É“E“Å—E&Ó¤˜´ “ViÒî»úZ!J{îëg•V¨’wï0 *­A¥5ª´{áÚ-ÁÒÞ…{û|[d¶¸tº º qtéâÒÅåÚ«¥§ ß÷Wø˜èÎkçQ!$hU¤´TY©•B„Ò· uå mË9(÷€·£³hÈâ7[8NIMq™„ò!;eL˜³ò>ËËRÆãïäÐ#¸ÁpòQ.²T7½ÑM¿ö—åQкý+“Ú/FSHªÌçÂ~™}ƒ­ÇÜĤp]´µG€<ÚÞ÷$ôu×Ôq¿úÈŽÒ ‘.NâXhBŸP¾xq`p ¥~¼¾…ÀþýH×Q½…Á5’>€=À)ßSm÷˧ÄÿpÌ`8ögÀxøÝ™‚ ‘a%r¬DŽ•èkÜ­ÌBÄ’§æ4~ÙDµ*pk«¥/êM6qæOuœ§ùYTÔ^Êø%ï!S´« ãu…Š2v•ôm©©×6Ía| RăsAV$KšyÞ\G™Æ…‘me •"£†—Ú¯’†‡ü¨vƒ·:EŒS»K-(må°>|bô’SA&¨(ª 2el‡÷j«éE·iã•‹Î ² 2‹æ!1Â˶­ŽÁRl”šÂÇ!§_ ?Bëê€O¸< Ì­Ú5)t{Œ…ªd­º§š›ƒÿ*ðWª*bÐW¨ÿÆß&$þ_˜:é}Xß=ï—`ßÃ`½Xïo¯Ÿ+xìsÞ›õOx¯ª–û-ô§åUSÅçûj½šÍ+v^U³ùÏå&ù`WU»˜æåëãòëÙÝz;«Ö»-äƒÁî7Lbxº0`q£Õ–ø¢EŠ0Ùå_†€3ðÒ_݇O^LSÒ£ÉýGšø¿Q±AHè‡ÑÜLö2Áª y·ŠíQÂxC©¤¸nJQðB@»½ýŸ? 4°?1 endstream endobj 57 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 58 0 obj<>stream H‰œ—koÛȆ¿ëWÌGˆ©¹_ºI€µ“]¤€Ñ!ÐqÐ2eskK®Ä¬»ûë{†äsŽ)¥M (::<—yæörõó¾m6Õºe¯_¯~nÛj}_߲ϫr÷ľ¬Ê?žj¶úXÝ5Ûªmv[¶º¸Øý‡}ÁN1Ïm¡ 3ZÚ˼…ÒÜ°/oß^¼»d‹Õß.Ùêê’³Îâìn!X?ÿú ¾åbU–œ VnÀ[®|<Ã+LðøÿŸñ§=—ð•ßDð…öÌ QHÉ+KvVþó‰>ß9<ȹŽY»¯2¦–²0ÆÅœ·‹å‡m[?°k _}üÀ.êíúþ±Úÿë0$zÑTSÁ Ñ]¹÷å"²¾ca™Òª€î Ãöõb³xÃî>V#à«Ëï | Óh·ëÖv¥ ån¬ÇcæaÔðmµ³¢vµ.d¡ Í.šÛfÿõ׺M}Ѳ—åYY?BRr¨;GÛi]¨D{¤Å6»=kïk\÷ÓSµKK\Zf$ÔD—T•^Bãª0OqŒG†¨æ‡8-=WGIó¢Û|Û®ãŠÅž›öžÝ4瀷î~ªX»¯¶‡M½?ìn}w¶&ý)ÜÒ2MsYÝ<ÔÌÆb]5åp1Ç’ÝÔ»gv¸ß=ºé¸©ÍšÝÖ›fÛĶ¡×1ÚNÞ5à‹`ü°®iî¾íkº‡ :UX'Òúo¬b8/álX³ß›ú™í6]‘Ù½w›ÏÊÀÎE!L—"¶ùTµm½ßÇ8šYŽ}Ùo—Ô]è†ÄÏO£žßc]`X·©Þ±rv¶\ʬ¸,¼v8÷çeu`‡?΄Z>Þìš?¡ÊMÝ>ŸI¹¬ë-›ÿ×@ _Ê¿ö#‘ãHt¿D]áΟ—¿œ›eš”’EtSÿÓÄ|ØNqbMÇÉà¸o~ôûݺ>êÛm ¹ì[JX ÒÂÆà¦p’:?|´eN8˜¸.„í鼦À‰”!F‘RËvÁ/“c‘“Ï.‰Ú±–òð;lÚ9âì³qfKÃ_‰BŒØÕÜJ´F<¬DØ—°@vGW ÿî tÎ+œs8QÊDÄÊØB7.a X_9‘yç@dÞ‰öðCG{âbà¦äÙÞUmÕ‚æ8v…ñÿ :`]%îÓ~¥.þYž ¾|Ï®—»} ‡UÛ[ÖVû»º½>›Ý V›ÂND==ø 4Nµ 9íËB¯Ø¡®gIÀQ¯Ó{‘+M#o<g®r¸°¥§×̼s8çÙèå©cߌëÂÍŽQ+è§ãý~÷íîþé[{ê¥EüÈ™×ûÇêØ‹Š”'FÆÝ.P¨ÒqWÙ"Kþå'³d@z 2 ¨[´Sï<"åæ#)×;H¹ùȾ),çtâÉ_Ä ‘a<ŒÎ¦«¿<B/û—©¿°‹Þê:å4½'á›?oæÈ+Ý÷TŽ±¶à6¾¬Äë /¸ûê©ž ŒçßêògëC—‹3xÉÚ.´èô©ƒ¥÷ؾ3Àqw:΋ [éζû{sˆåq¶¦Ä™m=zÜØ<Ûè:­Ü/´äÝ»kߦìf5>ë»Ô`û¼³ÉŸLw¶ðÈÍ-ŽÜcví³NDb;‘‰Áð¬ÄŒ&o Ììœ ˜ˆÉäö>O¨œ‰"La¢0E˜(ÌD&Š0Q˜‰Î™ÂÄ&£_õ¶&PtõèÇT4¡¢1›S±„Š%TF¿J6ÆbÓ¸G?æb ‹¹¸œ‹'\<áâ G¸8ÂÅ.Žpq˜KȹÂ%.p „K \á—€¸(žqQsq™ü}­ÌãϽ¸€¸Lþ!?G\”̸€¸€¸L~•lz‘˜ ؈Ëäó#.*ç¢ M¸hÂE.ŠpQ„‹"\æbr.†p1„‹!\ ábC¸ÂÅ`.6çâG¸8ÂÅ.–p±„‹%\,æâs.žpñ„‹'\<áâ O¸xÂÅc.!ã¢9æ¢yâb’¹Â%.!qéã'¿÷yüÐ (¯‰ ˆK”e¨¹¤àÔ Øˆ ØÜâxÄe*Þ÷"s.ŠpQ„‹Â\RðØ‹Ä\ÀF\&¿÷y|êEç\4ᢠM¸hÂE.špÑ„‹F\@²º² ­íôžIm”t!¶#Šå6I†Ùjbˆ½9JÀhºL"F[kìﺟ¢y&‘m=z@gÙF·Ó8ܳL$ŽÍö20š6“‰S¾É/ÙCÍ3™˜»¹Åу{Ì®=êFL¬F©˜=/1«Éß—˜U¯s7b3¹­Çá©…Ù(ÂF6 ³Q„Âla£EÙhÌÆ6†°ý"“ŒY;:~ôc:šÐÑ”ŽÅt,¡c Ñ/2Ù˜õcÓøG?æc Kù8ÌÇ>žðñ„#|áãGø8Ê'`>ð „O |áŸ@øÂ'>½†ûé%âô|/!§|“_d²ë'“ÈøL~ëq|êG">½LÌž—˜Ï䙌Ìú‘˜O/#Q<â“—Ï„äÔ&|4ᣠEø(ÂG>ŠðQ”Á| ácCøÂÇ>†ð1„¡|,æãGø8ÂÇ>–ð±„%|,åã1OøxÂÇ>žðñ„'|<áã)Ÿ€øôÒqz¾—–ÑV™´ÌêÂ'>!ñQû­ÇñC?½¾›ú˜O//³~æ3…óL^"?·8ñÉËgsêG>ŠðQ˜ÏÎ3‰‰üˆÏä·ǧ~4æ£ MøhÂG>šðÑ„&|4á“„&pË„æ´“öe/4ß_]²Åê#{ýzuuùá“–½}{ñ~äìnqQ.VeÉ™`åf!xì’Ã_ÿM¸mT0Ìè¸Í¸aåãbÉÎÊßïË>±݆4ÆƲìë>ö5”ÆNluî6°9äwb•… pÒw,í÷"Ãð{ü‰¿ s¯>=UÛ¤ dQõ‡»¸\3ÑÕÎî›ä!¾<(ê›sÕÁlÙÖ^/¯®ÏàK–Ô’©Ö¿ ^"dLcâšññCÈa„gÛÿR^6½r\EÞó+î’ ¤§«ê|Hˆ…""FbÈB‰#ƒH¤ü}Nߙӧž×3öõÂÒ”ª«ÎÛO÷ŒŸ;ë—#ĸâçè«qú÷ãßžþöíéÛkÖWû›ÛߎœûÓ_þ÷AØó”ö7Û¶×ß>Îh3ãŸHäƒÕÇ3»pxfðž\žÕñíS<ÿ!t9¾·ûçÓ¸÷ ,öë‚à‹œnìþòrùàî¾Âòõ]´ÂWèrÝû«çw¨ÛOãùüüáËÏ?)qê<æë?ÿñÕï^¿Kœ7è½ót÷ó߃vïw÷»»Ÿm÷î`ž²ùqJûð·…OÁ¶»_·[½m+ûCü—û‘úû¤<‡;á‡ÈorÌÓw?üûÛÝÁþ‰Œû˜ÆÑøiç }ýû7_¾ýéÑ£0{|_õÞ;{…vÜÏø->Æßùí»¿ÿáÝûŸÆ¯Ó££üñS|Ê°ê}ÿ~ê‘Çgþ·¿5²úë»÷o¾{ûþ›·î¢¾ü.æ說m{Ñk{Ûú²×öÁ7í¯í>~œü3_[¿ÿÅûÄk»÷g3º÷Ú>¸-ÿÈ·ñî[;™]ßY{ñ;ëûg?íëûé§íö¹NpÛÿ²7öõ¿þùß·ë°ó»÷Å«×ÛÓ7?>ïÝžž~üæý/öË0÷'bõŸñyü•;žÅÄ~HâQ_Ês]f}ë_Ëë¨p-£ ëž‡ÏvÏÓþì«û¸M;cŒ?nc¬@Œ³?KË1ìPåÕÝ-Þ —[Šá‰FANN.4\h8h”D£"4 iÒ(¤B£5Ñ±æ ›À˜íkUÉ¢’EUXT°è‰Åø35_ØÅlÏ $:I4!Ñ…DÏ$öm‘Ø/ q”9ÄÙ¾VHŒ2“Ø7’X힧gˆ}‘ŸqáNg{V™Ä(3‰$V»çé ' FF&$LHHD"$B"@"H"HÂ…D‰‰’HT’¨B¢‚D!‰BEH!Q@¢%$šh ÑH¢‘DMH4è‹„m q”9ÄÙ¾®é$ÑI¢ ‰.$z&a—Eb|Î%B\2‰Ûà 1ÊLb‰Õîyz†Ø # –IÜÏ;HŒ$V»çé ' NN&$\H8HD"QH¢‰AA!$BHHÔD¢’D$*IT’(B¢ ‰ -‘è$Ñ…D‰F$šhB¢e¾-ãs¾ð(sˆ³=«Lb” ÑIbµ{žž!’kú£Ü÷¼hÏ$œ¦é4MÓt1M‡iz2ÍñÚ¯+BHÐ3žéâ™.žéðLOžéA!$$h™NËt±LËtX¦'ËŸqa$è˜NÇtqLÇt8¦'Çt:æ(IŽétL§cº8¦‹c:Ó“c:s”$Çt:¦Ó1]ÓÅ1ŽÉ1ƒŽ9J8fÐ1ƒŽâ˜!ŽpÌHŽtÌQ‚DÀ1ƒŽtÌÇ qÌ€cFrÌ cŽ’$à˜AÇ :fˆc†8fÀ1#9fÐ1GIpÌ c3Ä1C3à˜‘3蘣$ 8fÐ1ƒŽâ˜!ŽpÌHŽtÌQ’3è˜AÇ qÌÇ 8f$Ç,tÌQ‚Dc3è˜!Žâ˜Ç,É1 s” Qà˜…ŽYè˜E³ˆc8fIŽY¦D¶ë^pÌBÇ,tÌ"Ž¹Ú­¥é"9f™y»Ð…³Ð1 ³ˆc®ö¹;“HŽY I!Ç,tÌBÇ,☫ÝZšž!’c–JUHÀ1 ³Ð1‹8æjŸ»3‰ä˜¥“DpÌBÇ,tÌ"Ž¹Ú­¥é[ˆš³n 1J¨pÌJǬtÌ"Ž¹ÚçîD¢&Ç<>—[k¯;°TΠᜓg$ h¥€VÐÕnyz&&XΈFNb g{V†TTÐ* ºÚçr+)‡O:GŽ ‘Ð “gZh ]íÖòøÌQ2Bâ¡:'ÏÑ*"ºÚçrð¨™G#QÑ “gºh]íÖòøÌÑ3Nb£6:'ÏÔÑ*:ºÚçòÌ£m‰G»€G!mÒ99s4i#]íÖòø̱'m&NÚà¤sòÌA)m"¥«}.Ë<œƒd?5ú©‰ŸýÔÄOGM…³äA?µì§F?5ñS£Ÿšøé¨Éƒ~ºÚ­åñ$ûé( €ˆ ®¾ÍšDºé&ªgCõ¡ 9ˆ‹¢®þõ G5˜8uµ[Ëã3JvÔQ€‰‹¤®¾ÍLF &.Ã`â´TÏ–ê.LDSWÿvxê¨É„žºÚ­åñ%{ê(ÈDDuõmÖdÂ$8L&4UϦêU˜ˆª®þí qÕQ“ ]uµ[Ëã3JvÕQ‰Èêê۬ɤ “Æa2¡­z¶ÕØÈ$DWWÿvøê¨É„¾ºÚ­åñ[”Ⱦ: 0 ÖÕ·YƒÉ¨Á$.“ ±F6Ö0a"ʺú·ƒÄYG &Ag]íÖòøŒ’ud"Òºú6k2qaâ&Zkdk"LD[Wÿvxë¨É„ÞºÚ­åñ%{ë(ÈDÄuõmÖdR…Iå0™Ð\#›kta"êºú·ƒÄ]CÜ5è®!ît×’Ýu`RD^Wßf &Eìµl“B{-ÿç²îq%9Ž( û\Ŭ€ìªˆŒ€ AJ† ZZ 2µKYìÇ{|Ysƒù¦^ãÔ&¾>矇à×€_Cýðk¨_cúuÚ€}Îí;k6L/klLÁÆB“u½0¾µÐ† 6Ô°Æ6¦a÷ M6be•@(6 Ø½¬MT±1…&…&…&plÀ±¡Ž 86Ô±1pìžµ plÀ±ÑzY›¨cs:6áØ=K“„cŽM86Õ± Ǧ:6§cŽÝ³4I86áØ„cå^±©ŽÍéØ„c÷¬MàØïå{86Õ±ÏqÕ¼þ]e:6áØ=k86áØ„cséem¢ŽÍéØ„c÷¬MàØ|{~fm¢ŽM86Õ±9›pìžµ ›cÏϬMpY›¨cs:¶àØ=K“‚c³ÑŽMul±©Ž­éØ‚c÷,¬‚cëÐ&ÇÖ¡—¥I©ck:¶àØ24cëÔ&Ç–:¶àØRÇÖtlÁ±{Ö&pl9šÀ±åzY›¨ck:¶àØ=k8¶šÀ±¥Ž-8¶Ô±5[pìžµ [‰&pl¥^Ö&êØšŽ-8vÏÚŽ­B8¶Ô±Ç–:¶§cŽÝ³4i8¶_Ú¤áØ~éeiÒêØžŽm8vÏÒ¤áØ>´Iñ­Žm8¶Õ±=ÛpìþA›À±ßË÷*pl›^Ö&êØžŽÝCŸŸ3k ¶Új¿—ï­Á€ÜVä6ÛŠÜŽŸý¼÷rÈm ÷{ù^ÈíÐËì~ù½H~]‹¹ ä6û½|/ä¶"·Üçí÷*=›¹ ä6û½|¯ävëemÒ³‰¿^O)r¯y6çöž_Òäšg“k^óº"w¼ý^å|š\CÈ*ŠÜqnßÙeEîžõòqêÇ¥‰Í&Ž&Ž&Ž&†&†&¦M ML›¬Ùd¡ÉB“…& Mš,½¬M–6‰Ù$Ñ$Ñ$Ñ$Ð$Ð$´I Ih“šM M M M M MpY›”6éÑäPä^³49^hÒhÒhÒڤѤ¥ÉqŒ&‡"÷š¥É¡È½/W9¹{ÖËÒäyù½È9›šš(rïË÷"ŠÜkžMEîxû½ŠÏ&Ž&Ž&Ž&Ž&Ž&®—µ‰k“5›ššš,4Yh²´ÉB“¥Mr6I4I4I4I4I4I½¬MR›ÔlÒhÒhÒhRhRhRڤФ¤ÉùMNEî5K“S‘{_þ®r*r÷¬—¥Éóò{‘c49¹×,MNEî}ù^D‘{ͳɩÈo¿W±ÙÄÐÄÐÄÐÄÐÄÐÄô²61mâ³ÉB“…& MMM\›8š¸6‰Ù$Ð$Ð$Ð$Ð$Ð$~~…Þ×,¡Yrf)d)d)dIdIdÙ”•]]R»ôìÒèÒèÒèÒèÒèÒèÒ袜µÉYg œ5pÖÀYg÷,] ž5õ¬MÏë0®Ã¸ã:Œë0îžµ ˜ëÊ\ŸÌu0×Á\sÌÝs”žk—ûüó}uîšÎ]pî‚sœ»àÜ=¥çÒå9¿¿?»¬IÝê.Pwº ÔݳtÙ³tyÎ?ßWë®iÝë.X÷9·ï¬] ] ] ]”»krw» Ü]àîw÷¬]]]Ô»kzwÁ» Þ]ðî‚w÷¬]àÝçüþ¾t™Þ]ðî‚w¼»àÝ=kx÷9ÿ|_½»¦w÷óßÿ‚wŸsûÎÚ¥ÑÞ}ÎïïÏ.1½ÇõÑçwÞ}Îßo¼»géðîsþù¾z7¦w÷ ]Þ}Îí;K—=K—€wŸóûûÒez7]àÝçüó¼»gíï>çŸï«wczwÚÞ}Îí;k—….ðîs~_ºLïF¢ ¼ûœÞ‚w÷¬]àÝçüó}õnLïîA»À»Ï¹}gíRèï>ç÷÷¥Ëôn¾´K»Ïùç-xwÏÚÞ}Î?»¨wszwÒ%áÝçܾ³tÙ³tIx÷9¿¿?»äônºÜÞ]÷,»À»{–.y{÷sÿÔ.©ÞÍéÝ=h—Û»ëžexwÏÚåöî}_»¨wsz7]]]àÝ=k—…. ]Ô»9½»í’è’èïîY»$º$º¨wsz7]]]àÝ„w³ÐÞMõnMïîAºÔK»<çï· Þ-x·^Ú¥àÝRïÖônÚ¥NíòœÞ‚w Þ­C»¼[êÝšÞ݃vÙ?øü–¡ ¼[ðnºÀ»¥Þ­éÝZè²®Žo-tw Þ-Gx·Ô»5½»íèèï¼[.ðn©wkz· ] ] ]àÝ‚w+ÑÞ-õnMï¼»gíï¼[ðn5ºÀ»¥Þíé݆w÷,]Þmx·áÝ~i—†w[½ÛÓ» ïîYº4¼Ûðnû}j—†w[½ÛÓ» ïîY»À» ï6¼Û†.ðn«w{z·áÝ=kx·á݆w{¡ ¼ÛêÝžÞmxwÏÚÞmx·áÝtw[½ÛÓ» ïîY»À» ï6¼Û….ðn«w{xw½Ô»×<»ŒóÏ[ðnûÝèï¶xw½†w¯!e—CºŒó¿Þº/v¹æÙåšg—q~ßç.çìbèbè¢Þ½/ß»¨w¯yÉ.êÝñø{Ÿ]]]]]]]]\»¬Ù%Ð%Ð%Ðe¡ËB—…. ]–vÉÙ%Ñ%Ñ%Ñ%Ñ%Ñ%Ñ%Ñ%µKÍ....….….….….âÝu ï^ƒtÙ³t9Ô»÷åï.‡z÷š¥Ë¡Þ¿wÞýk¨ÏÙ:¿×,‘Åï}ù^L1|ÍíP óªyÿ»èöhÝ‹¢¢¢}.ß»¢¢¢Ý¿wño§k—…N :9:9º8º8ºøó—tí³K K K K K K K Kh—œ] ] ] ]]]]]R»ôìÒèÒèÒèÒèÒèÒèÒèÒÒå|.§bøš¥Ë©¾/w9Ã×,]NÅðxü½Ë9ºœŠák–.§bø¾|fér*†Çãï]lvqtqtqt1t1t1t1t1í²f—…. ]º,tYè²Ðe¡ËÒ.1»$º$º$ººººº„v©Ù¥Ð¥Ð¥Ð¥Ð¥Ð¥Ð¥Ð¥´K. 0l/tititititiébÇèbÀ°Ã /w1`Ø€a†ŸÇ¯]Îý_q]ŸßÿƒÆ^çÜÞxÿv\¿po­]¯ý秿ÿùÇŸ~ùçÿõ¿ÿøõ×_þüãûáëÇo¿ýþ2ë%Yv‰¢èŒÊBÂ?ЯéÔü»…ž¸ÈϦ—n$Âc§YÞõßyp¯¿ìàûó¹gîóû=Ïçsï<²Wèr~ýÍïý¿áÞÃk†ïߜݢ~iŸï—¾ÍÞŸÞž,»N.Ën“˲Û>_/þÝ_ƒu=l²Î>_¯¿ëxIõ¿³¦r¤r¤òšÊPÇPÇPÇå¿Ó³N N¢N¢N¢NÔ::::qÔé¨ÓQ§£NG^ë$ê$ê$êô£ÎÐ:ó/¥Ô™³ÔùÎ׋£Ö¨3Pg Î`翬si9Kïüú›¿:ë¯þwøÓ:ßùþ8ê<ûe†: ušÖÙ÷× uæ,u¾óõñû¨c¨c¨c¨c¨cµNC†: uì¨ã¨¨¨¨ãµŽ£Ž£Ž£Žuuuuu²Ö Ô Ô ÔÉ£NG:uêôZ§£NGŽ:u Ôuæ,uæ,u¾óëo.uê ÔZG×¹´N»µÎœ¥Îw¾Ö¹JEz(u¾óõñë¨ÓP§¡NC†:­Ô™»J9Kï|œu uuuu¬Ö1Ô1Ô1Ô±£N N N N NÔ:Ž:Ž:Ž:qÔIÔé¨ÓQ§£NÖ:‰:‰:‰:yÔ¨3Pg Î@QëtÔé¨ÓQg°Žý´Ž]ZgÎRç;_Ü÷× uæ,u¾óõñëØ­u p6ÀÙg«p6XÙ`eƒ•í>êÀÊ+¬l°²U+¬üÌw½ +Ûaeƒ• V6XÙ`e«V6Xù™oý-Zç°²ÁÊ+¬l°²U+¬ü̲¬l‡• V6XÙ`eƒ•­ZÙ`åg¾õ·hÃÊ+;¬ì°²ÃÊV­l°ò3Ë:°²VvXÙae‡•Vöje‡•ŸùÖß"uü°²ÃÊ+;¬ì°²W+;¬ü̲¬ì‡•VvXÙae‡•½ZÙaåg¾õ·hÃÊ+;¬ì°²ÃÊ^­ì°ò3Ë:°²VvXÙae‡•Vöje‡•ŸùÖߢu+;¬ì°²ÃÊ+{µ²ÃÊÏ,ëÀÊ~X9`倕VX9ª•V~æ[‹Ô‰ÃÊ+¬°rÀÊûþ¤N\Zç;_?¬°rÀÊ+¬ÕÊ+?ó­¿EëVX9`倕VŽj倕ŸYÖ•ã°rÀÊ+¬°rT+¬üÌ·þ­sX9`倕VX9ª•çইZgŸ¯VX9`倕VŽjå9üdŽ:û|uVNX9aå„•³ZyRgÎRç;_?¬œ°rÂÊ +'¬œÕÊs:sw©óﳬœ°rÂÊ +gµò´¬ü¯VNX9aå„•VÎjå9hXù;ßgX9aå„•VÎjå9hXù;_?¬œ°òœ½þ¯!aåïüú›KŽ:°òw¾?Î:°rŸ®ëtXù;_/V+ÏAëÀÊßùZç°r‡•ç,uú¶rû›¥N¯VžƒÔéÛÊû²Ô釕;¬Üêl+·¿Yêôjå9H¾­¼.ßZ§Vî°òœµŽ¡Ž¡Nµò´NCCÃÊVî:::ÕÊsÐ:Ž:Ž:‡•;¬¨¯’ú*©oÔ@FÉ}5»¯¢û*¹ïÕ6ƒÑ†ÜWÉ}£F2$¿šåWQ~•äWQ~õA~•äWI~£F2d¿šíWÑ~•ìWÑ~õÁ~•ìWÉ~£F2¤¿šõWQ•ôWQõA•ôWI£F2ä¿šýWÑ•üWÑõÁ•üWÉ£F2$ÀšXQ€•XQ€õA€ p#ŽÈÌþ}aËÜЀpCnÜÈ€pÔ@¦‘·¬À ¸‘7Tàö À8ê1ÐFF5‚"%>Çs‚†zÜHêq{Ðã¿s9æ´ãýy’ãFr|Ng Fn|µ-Î6ùl9¦ï“7òâsú8¶È¥Åypæpäáȃ”¸‘ŸÓÇx_m˃3ÇV€‡‘ Ùð9}œ [ÈcAâ¢.iôÞó²}lŸ÷ènÿ¶kûÏÿöštûtìõsÿýßUÓ! DÿÊá`J¡ô¶˜hâEÜ1Í.¬=H7dŒúï)ƒÛÄÄ éËôcfúæM±zsŒa¬#ʸIÌô' (®•Í÷­IÀjöÌÒC¸MÍzOBâÇ5ŠçSômtµÙg6»‘LÌ)K›jØFÆ"¡;%…؇T(=“‰‰GšˆIõRK÷VX&æ=øóÇ:Áítþä××Ç á’k¹üFgˆÓº@>öOWòVô³;";v@tÇ·éƒêbx‡Qõß— Ô‹;ûÅ¡ ¨® _0ÈñÔîtS6ÐÒ ¼n¹!»ÙQ¢SÏ÷@ÑŸ¢+“{YM þO˜ÔFŒ”Ð%å›,_eý“§4•ˆq˜eBª Ô¿~SZñ ºçªÜåÛ–Vuüü0yfªa endstream endobj 59 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 60 0 obj<>stream H‰œ—moÛ8ÇßûSð¥ldñ™Äµš´=tÑ ÅV Ð…ê(‰÷;°•Íu?ý %RâL$ß^[ÀÑx4óþø4^½Þ·›ëzݲ/V¯Û¶^ß6Wì˪Ú=°¯«êÇCÃVŸê›Í¶n7»-[íþþpo +™+M!5ÓŠÊhÃœà…T¥f__½:{sΫçluq^²Î*ÙÍ‚³ |ýÏÏð|XœU‹UU•Œ³ê¼ÕšÁÇ|°êÀxþþ¾ÚƒQ”ËøĽ+”cŽóBˆR²ê~±d'Õ!ïó‹e©BÖîQ„ÔBZÛój±|¿m›;v) ò‹OïÙY³]ßÞ×ûb¢g…šô:Fwro«E`á]ÇÂ0©dÕší›Åõâí »ûX} €/Îß¿ðH§~,7”È;¥BZã;¹2$Žƒ†§8hkxáM´*D!AîõzýxÿxW·Mª‹Êr,[Ž²¥ I…§h[¥ ™h´ØõnÏÚ[¢ûù¡ÞÒK‹l‚¸éUádÁV…yú6uf¤rz¤ãJPSrÒØgrìúq» ¿`¿5WëæÀjög³naÈ»kv×loÚÛ#Wó“*ñ]ži) å½Ç5|èòŸJ¨`†Ö­¿—ì_«Ãæ¯fw}¹¼¾ÛÕíåÉÜÔëI }zÀÂýä,x]˜{¨M¤E×ɱMÛÜ VÁÔ‡ísU·õiŒÍáóSkAÁãqa)¼ûðñu53h;?hÎ'5`¤Dã—na‡Ñ‘Ž—÷JHr*<àéæE”ýÄìš}Zá~nShYÀ~µ¢½ŒÄçß/f8øy¢;§fœJlöX)çÏ•ìðuÇΕRÀ΋JUýý®avà-Ç6äX²ïÍÝî‰nwO‡nz¾×‡Íš]5×›í&`‡597[Ü^»x€¿ÛÜ<î(¥{›œp®Šôb˜Çšàf¼‡y]³?7ÍSØþݾœºeNœ\΄EÁu—"ÔùP·m³ßs$Å4Éü´2?2"AcË‚§E{ßÔØUœÕ›¾RjáaV8\wyò/ËúÀ?N¸\ÞßÝÁñsóÑ>±lš-›û·*¾V¿æË.<)gEßÃþ²|wrª—ÃÔ„ T;÷ª0Š÷«x+‡ë¯ÚÌió2`é^é¼Â¹‚‹™ÐàtC¨Ð®×,6´7n&tô1ø®ÈhX ý÷ú%‡+šöƼÓÎÕçÛŽÙá’®×Õ9ôUëC7Ð<ÖÛ…‚82Ö’Ý÷¦‹æ˜¶+L˜”Þ†c¡¥Q¹ڽΌѦ€]t7&ÏlíÐë0ÃY¶èÔ²Úî·ð… ƒ‹uk0yŸÞUýI.FÕ¸pŽnæE—g—UãGVP œ‡<¯&œy5ÉŸäó1„!| ᣠMøhÂG>šò±˜%|,ác KøXÂÇ>–ð±”Ã|<áã Oø¸ˆ6æãGø8ÂG–ˆ˜ˆ؈Oò'½žêóñ˜Oògù1ÉhJŸÐ¤¢z擇z8æ6â“üC~NùHÌG>’ð‘„$|$æ#á# Iù(ÌG>šðÑ„"|á£Eø(ÊÇ`>†ð1„!| ácMøÂÇP>óq„K|\²1KøXÂÇ&>1Þ>–òñ˜'||âã’ùxÂÇ>.ñâ1Oø¨ñv ññIþ¤—ÂS=`#>`#>É?ä/ %0°Ÿäôæ6âõ#>ÉŸå'½íZb«B\hÅdêô†Æ°ó÷ x=6sЉ¼Óì쬕„.)š°6Çdn°uo÷áÁN¦@¦vøíÀ{Ì;Í$–׆:Í¡ÚØJ¦€¾ÓóõîQ¯[å½äèï{Í<¾t(½t¸ŸÑÊšÍ{Í!_tz>ÑRy7™û1ùx4WY·9ÔßØmŽõpÌ'†õÄ~rô—˜Oê7Çô„Ojø†z$æ# ‰ùÄð±ùÄ~sŒˆRGýæPÂ|á£Eø(ÂG> óQÏøhÂÇ`>fàMŒG<šàÑžÌ=$×ÏèXBÇb:v M Ç8–À1œÌ%§laã1ÙxÂÆ6Ž°q˜Ãle“Z½TMj%c@ì4SºèÔbôPMl$ÇjsH'0›=VÃ1›Øfá±Aڨ˪‘˜Äl$a# ‰ÙÄ&3 Glä36*ÕÇMÞd¦ÙhÂF6Š°Q˜ÂlrmÔaÕÌÆ`6†°1„!l4fc0›\õ—C5³q˜#l,ac ‹ÙXÌÆ>cã ÙxÌÆ6ž°ñ„Ãl?Ô[öâÅêâüý&${õêì |_²›ÅYµXU•`œU׋SP.¹dÕš•¬zble|¾/X«B˜Þ»_,/>½ÿöz½~¼¼«Ûæ¤úcñ¶Š²ŸFM‘4{½2ÓºÓƒ'eƒ¨ï=ã.¾†1ª(ö½>4Wl·e¹÷*têFÁíy, ¦ÛÏû×oŸI§† p3>MáüM`i aŠ Ø›º­ÛÔ“‚s3BÞ}øøºš‚÷†5³”¦½Ó´“”mþVÙ‰ ´²Öee|8BÄþ_DhêÏ¿_LñຠŸá1í<¦ùªwó«žû°h\Xõ|jÕ—á~Žåÿ¶ÛµlngùI”®£¡8Ç Ë©ý£Aþ¤ñÀÉ“£˜ñö(fœY™²<‚B¦@ê Ú…_»p"†Ê÷ÍÃnßÂÐnî7Û››_/’ÏoÙ’[‘2 fàNˆœÚ—íåòâòd†½ Jæ22üü 2ìr¹é´Õ¹ø³”ã¡RÀ¯/ÊR—¯Â‹DM j*„t÷Z±<4ëËVØf{µY×]ëO_5œ¾&Dºp¡t‘_–ïNNõrsó¸o`o|­~bvó!.˜Â^í¶…Ó¹¾¹Ù77 ulzääô”ÿëòÑVÃ2‹ä.—GŽÙýüSoŸe¾xɤž>œ»ÚiÙ’«p}ã²gW”ù™U>`õö*›…Ëåúºç¼/,Ø·&NLcøÞêF·¤ Í×inÿql6§ç ØñW½ýv¨ïîæúyä$-‡å(|ÎE9õLèvhšIZ´¸É–ðÛ¤ø/åeÐ#·q„Ñ{~ťˆdWUwçšsN>²¼Ž6Q$A’äߧ9Ía÷ûvf ë°P¡X¬oÞœÇråÐÙö›ÞmwÓ­§g\^/ÀöÞòô¼Ý=žž·›óÇ¿ýï—E9oà[OonsUµñðüðõó¯ÿüðå×»?+ëú ðË÷ÙŸé¾õ´¥¾¿m,}ûoþúv]íÍ»Ÿ>>=ä?=¼u{3¼ñáç§_ž?=ÞÝnÒÜÊtûq{ÿ‰1r¬õq»äÞï;Ù^û‰º y$•‰˜Ûðéæ%âí²:~$ó~Ë^¾f4kÚ¿´Ë!¸|nNîÍrÜÚßëE4_[7'_ôÆØ äöèk¼/ïŠVÛw5vû›/¶_å²™ÍÔ.en{Úö—œWgÓ²ì^mÞ;ñoÌ®û‹c¿E›Im:{»=ÔŸ»õ€yúO¿µ¶ ×ôXKçzùßÖœ¡Òr{¼>ÉÞ}üøðîý÷çÿ>=|ùúùýÓ·oOßî^Ùv{÷ø"ï,ôx¬¹]U/o<üM~ÓaæwΚìѯ—Ç_îEŽ»¸–Óu–z3|ûNBÖ<üòùãϯ}‚|ó\–”û˜"Û¨½jŒÇÚ½OWî_ —‡«nJ%í ~¦×äÇêítóäu{ñ½üýNr_~gr[ý6~|óðÓÿÞ®Û›ïí’½þûúîÓ¿–ý·õÎÓß×ûWD¾µ¹_nû÷Ó^IêrãÏÏßþõùùÓwùŸWm÷ï—»[R{Ž›ÿöÍâé7.µ;·MÊé1/ÓUö·çOÿøåéÓ{^d?|x÷åi,;ïü?þù‡åáý·Ëy—‡‡oï?ýa[÷_ó¥ýýO«¶ËÅÜÊö|ýx©ÛïÅ^§k}ôW»Ô×évCöÒƒm³yüìGÁø^}huzLS˜Ô.—ùè´‹êt¶³l»Naš·"Lûq4Ž/ÁÓ'„1q!ãBÆ…Œ‘Œ 2&dLÈÈ„ !B&H&„Œ ™2!d2È4=™.æÚ>verÉÂ% —,\²p©àRqp,×ö±«’J*E¨T¡RIe[f*Û *{9G9Û}×9Û£´TZ *£ã×(ÛL¥U8x#•³}ìÚ@¥• Ò‚ƒÊèŸg'•*F*&TŒT©$¡’„J*I¨8¨8©¸PqRqRq¡bBÅ…Š ••L*Y¨dR R ¡B%„J•*…TŠP)¤RH¥•,TŠP)B¥ÎTÒ*{9G9ÛÇ®J*U¨T¡R…J%•´ÎTZ5¼—ˆ²‚Ê9Û£´TZpPýóì ²¿^LQ©$¡’@åœ=¢l¤ÒjPý(¿F1P1R1¡b¤b¤bB% *&TT‚TB¨©8©¸Pq¡âBÅ…J•L*Y¨dRɤ’…J•,T²P) RI¥ •J*…TŠP)B¥•B*¶ÌTZ5¼—s”³Ýw³=J+I¥’ÊèŸgƒãÚ*Ö_|ÆÉ6P1®‰áš®‰áš®Áp[…ƒ›Ý#J"ú­‰ßšø­‰ßšø­ÁoÍIÅ…Š“ íÖÄnMìÖÄnMìÖ`·­ÂÁ!T‚Tè¶&nkâ¶&nk⶷5ºm+I…nkt[·5q[·5q[» f¶KÊm+‰…rk”[¹5‘[¹w_ÂøU1{§Þ¶`œz{÷0.z뢷.z;ïîa6q n+AÆ)¸NÁu\ÁuÜyw“H†ŠÛJ’¡â:×Eq]×EqçÝ=Œ“ %·•$CÉuJ®‹äºH®‹äλ{˜ jn+I†šëÔ\ÍuÑ\Íw÷0…d(º­$Š®St]D×Et]DwÞÝÃT ªn+AælÛ¨º.ªë¢º.ª;ト‰d‚²ÛJ ÊnPvCd7DvCdwÞÝÃl$CÝm%ÉPwƒº¢»!º¢»óîÆH†ÂÛJ’¡ð…7DxC„7DxçÝ=Œ“ •·•$Cå *oˆò†(oˆòλ{˜L2”ÞV’ ¥7(½!Ò"½!Ò;ïîa ÉP{[I2ÔÞ ö†hoˆö†hï¼û&/ “)¾­™³Ý·Ã=Lñ ß,â;ïîaVÙËl™*œE…3UxLé¨ÆYÔ8‹gQã9[Û5æ´´ã,vœiÇcúˆ#zœE³è1¶÷<6ÑÚóP‘³(r¦"é#8rGÎâÈØÞó„ð¡'gñäLOÓGå,¢œE”±½çɇ²œE–3eyLyÄ–³Ør[Æöž§  saÎæ1}äcÎbÌYŒÛ/yÊB>…Î\Ä™ yL÷òˆCqè"í=O%ŸJ‹®bÑgûØW…ht.¢ÑØ~ÉSWò©é*"])Òcºç©bÒULºŠIc{ϳ ºt—®té1}ä™®"ÓUdÛ{>Ôé*:]©ÓcúÈ#>]ŧ«ø4¶÷<.|hÔUŒºÒ¨Çô‘G”ºŠRWQjlïy²ð¡TW‘êJ©ÓG±ê*V]Ū±½ç)‡^]Å«+½zLyD¬«ˆu±Æö=OZðÙëi`/g>£}Ù7M_òì5ùЭ§þyú$yVðI lz/7äMOÓGêó^òPŸ¹½çIÂ'‘O>‰|’ð¡?ïñÉ' õç´˜ðqòqáãäcÂÇ„O«çi<ªÏi ÁÄ‚'ˆ'Ožàì"çV6Yز)¦M6YØd²ÉÂFÕ9-UØT²©Â¦’M6UØTÎ.rna³Ò›Ó oÞK°YáÍÓt³Ò›/õg9·°Ù6a“È& xò4}„¡'_êyššÌå=Ž #6F6&lLØg9·²qas:r?{› 6.lœl†"o?ãdas*rÈÂ&“M6YØdÎ.rneS„M%›*l*ÙaSö9ôÁælÇÆñkœ$zœ°I¢Çg»¯ÓËõðuCŸ³ëÆs ›$nœ6°IâƉnœÄ[ 6­žÙŒvl?㈧D6¢Æ‰jœD[M6‰³dó‹“xqr²/Nôâ$^Üj²¡vl?㈧ ñâD/NâÅ­&›à,Ù¼ðâ$^œ Ùˆ'zq/n5ÙЋG;6ŽŸqÄ‹[€#b<úÇB1ãV“Nå0é¼0c3¶¦¾s5ý¾ÎÄm!£vl?‰·|Läxô…bÇ­“að±vlbÇfÂGôxôuâÇ­&úñhÇÆñ3øq«ÉGyô…bÈ­&ç0ù¼0dC¶,|D‘GÿX'ŽÜjò¡#vl?‰#·š|D’GÿX(–Üjò)&Ÿ–lbÉûyæ8.š<úÇ:ñäV“=y´cãø5‹'·|\DyôûBSn5øøÊaðñ¦ìbÊž„¨òèëþOf½%IŽQÝQ™¤€xìc:‘Ðu>Ã"´MÙ•Ç,}ºZy­ýÒãïƒ`å1k`yíç…Ðò˜µOÓÃÚgÓr‡–»£¸¼öó:xyÌÚG½¼Ö~éñ÷Aðò˜µÀ¼öóBˆyÌÚ'ô°öÙÄÜ!æ^è2¯ý¼fî0sW3w˜¹ofv˜yÌÒÇæµÿ]¸ÎÏï¥zXúÈå¿ç@Í~i›×~^7;Üìêf‡›}s³ÃÍcÖ>€óÚϬ}^?{=¬}69;äì}¿ñ×~^;û‹ãw/}`gßìì°ó˜µÏÀ³<ÈÑzvG×ÃÚgÓ³CÏžè“è“è?{ úÙágßüìð³ÃÏcÖ>…>ð³ú”Ö>›Ÿ~øyÌÒgí×ü‡ö õóZû¥ÇßÁÏ?Yú¬ýñÌÒ'.í#ÿsü›Ÿ~øyÌÚ§¡ü†>ê瀟cósÀÏ?YûtôŸ££O×ÃÚgósÀÏ?YûúÀÏáè£~ø96?üðó˜µO¢ü‰>8¬}6?üœðó˜¥ÏÚÏëàç(ôQ?ü›Ÿ~NøyÌòO\û㙥OžÚ'O=,}rósÂÏ ?Yû˜öIø9/í“êç„ŸsósÂÏ ?Yû4ôŸ³¡OÓÃÚgósÂÏ ?Yû8úÀÏÙÑGýœðsn~Nø9áç1kŸ@ø9}BkŸÍÏ ?'ük<³ô©CûÔ¡‡¥\þ{ü\ðó˜¥ÏÚÏëàç:µO©Ÿ ~®ÍÏ?ü›Ÿ ~s]ëVðtÁÓO¯óóyðuÁ×¥¾.øº6_—ÿµëû`øºà낯×ùãù½ös=¬ý¾—ÿžŸ^÷sà낯 ¾^ççsàëR_|-×ÿTè_|]ðõ:<¿×>¥‡µO¡O;éÓõõ=û|öÇo>¤Ï=ûÜsÿW_ëõ¿]Òçž]¤¾þìgnò õõ˜õðyéÇÙÇЧ¡OCŸ†>†>†>¦} }lëÓѧ£OGŸŽ>}:út=¬}úÖÇÑ'Ð'Ð'ÐÇÑÇÑǵ£o}}}}}}}pXûäÖ§´Ï©¾¾gésèSèSèSڧЧØç<µÏ©¾¾gésª¯?çç÷Òç<õ°ô‘ËϹÐÇÐÇÐG}ý9?Ÿ£¾¾çoŸS}­×ÿÔЧ¡OCŸ†> }ú4=¬}ÚÖ§££££OGŸŽ>]ûtôé[Ÿ@Ÿ@Ÿ@Ÿ@Ÿ@Ÿ@ŸÐÃÚ'¶>‰>…>…>…>‰>‰>©}}’}®Cû\êë{–>k<³ô¹Ô×cÖÃÒG.ÿ=çÔ>—úúž¥Ï¥¾þœŸÏQ_ßó·Ï¥¾Öë2ô1ô1ô1ô1ô1ô1=¬}lëÓЧ£OGŸŽ> }ú4íÓЧm}}}}}}}üïp=¯‰Hèv%%% BË‹hèvmŒ60ÚÀh£ Œ60ÚÀè1K£µ÷KÏ¿/‚£ Ž68Úàhƒ£ Ž³42PÚ6J(m ´ÒJ(m ô˜µ,m›¥ –6XÚ`iƒ¥ –6XzÌÚœ¶ÓN8mà´ÓN8=fmOÛæiƒ§ ž6xÚàiƒ§ ž³6©m#µÔ ¤n u© ¤6zÌÚ¦¶ÍÔ ¦n0uƒ©L=Ï·ñaŸ³4³4j`uÛXÝÀêV7°ºÕóüzX=fiÔà궹ºÁÕ ®npuƒ«çùõ"¸zÌÚ´n­hÝ@ëZ7Ðzž_/­Ç¬`ë¶ÙºÁÖ ¶n°uƒ­çùõ"ØzÌÚ¼n¯xÝÀë^7ðzž_/R÷ÚèÝÏïo¾îðu‡¯;|½öÇ3K£1Ÿ©{i´öï÷ѨƒØÄî v±çùõ¢SY­ýüþfìcw»ÃØÆžç׋ 6fw0»ƒÙÌî`ö<¿^ÔШ¡QC£ÍÙÎîpv‡³;œ=ϯ9ÁÙkÿ~Ÿàìgw8»ÃÙóüzQ œ½öóû›³;œ=æøþ½èpöÚϬ à쵿Fgûpõ÷Eg¯ýïÆyþ}ј¥‘ÃÙk?¿¿9Ûáì1K#‡³×þxfi4fiäpöÚ¿ßg#8ÛÁÙk?o4424‚³×~~s¶ÃÙcÖFpöÚϬ:ÁÙkÿ~Ÿàl4‚³×~Þèhähg¯ýüþæl‡³Ç¬àìµ?žY%ÁÙkÿ~Ÿàì8´QÀÙk?o,4*4‚³×~¾hsvÀÙc–Fg¯ýñÌÒhÌÒ(à쵿Fg‡¡œ½öóF8{ÌÒ(à쵟ßßœpö˜µœ½öÇ3k£†FpöÚ¿ßg#8;à쵟7ÂÙcÖFpöÚÏïoÎ8{ÌÚÎ^û㙵Q œ½öï÷ÙÎŽB#8{íçpvÀÙgœ›³Î³4J8{íg–F g'œpvnÎN8;/m”pöÚÏá섳ÎN8;7g'œ=fmdÙ¾_44‚³ÎN8;áìÜœpvv4ê&/êhg'œpvÂÙ¹9;áì1k#G#G#8;á섳ÎÎÍÙ gg¢Q¢Q¢œpvÂÙ gçæ섳γ6‚³ÎN8;á섳ssvÁÙgYœ]pvÁÙg¯ýüþæ삳 γ4*8»à삳 Î.8»6gœ]pö˜µœ]pvÁÙgœ]›³ Î.8{ÌÚÎ.8»à삳 ήÍÙgœ=fmgœ]pvÁÙg×æ삳 γ6‚³ Î.8»à삳ksv©³û¡Î¾ço£Ï~Þgœ]pvÁÙEg÷C}Ï!/:¥Ñg<ó·Ñ=Ýó·Ñgÿ~¿áE©³ŸóëEêì{îò"u¶Þÿ{QC£†F 54jhÔШ¡ÝŽFŽFŽFŽF:u4êhDg÷#Ð(Ð(Ð(Ð(Ð(Ð(Ð(ЈÎîG¢Q¡Q¡Q¡Q¢Q¢Q¢Q¢ÝOuö=K£1K£µ?žYêì{–F§:[ïÿ½HýÎõ‹~ª»ïYšêîçüz¡:üž¥á©ÿìç}tx?‡ƒóûbCCCCCÃßùõ"CCCCCÃïý¿µO³ûEÍ:šu4khÖШ¡QC£&ÿÍî99999999ùÖ(Ð(Ñ(Ñ(Ñ(Ð(Ð(Ð(Ð(¶F…F…F…F…F…F…F…F…FÅFס.uø=K£Kþœ_t©ÃïY­ýüþÁF×¥.uø=K£Kþœ_/R‡ß³4ºÔázÿïE†F 5424242424²­QG£ŽF:u4êhÔѨ£Qß99999ùÖ(Ñ(Ñ(Ñ(Ñ(Ñ(Ñ(Ñ(Ñ(·F¥þ‘]ÇÈ’ÜFD}žboÀžPD0dˆ”!ƒ–N C 2tK˜é¶3ÛcbF,ÿÛ"‡9¼j4Ôh¨ÑP£¡FÃÊ‹Š^äð"‡ïïŠ^äð"‡ãý÷FçüÝÞß¿»g¼¹Ð99ÓÞ_§í|“â¿¿üû—¿ýùû_~ýÇþù¿ýøí·_ÿüýïühíÇ_þò×?æÁ9“÷¥Í?OïÍÛGýŒu}íŸùµæÏù¤xýÌ×íÏ›×؂ǵޯÏ÷ç>~ý§Í¿BÜ–™è±Ìü÷Xæ{¾_»nïe>b¸þ×àç –©(ÓT¦©LS™Ê2UeªÊT•©*(***,*ÓT&T&T&Qfþ©¾ÿpW˜ëx¿•ì’ê’ê’ê’ê2Ðeþq¾ÿðP–ëx¿5Xe¨JW•¡*ƒUæïé[•©€{•÷x_å{¼ÞúÞ]«\$À1ª¬óýõƒUæ/è[•9á‡OVùï·NT¹,p;~±Ê:¿}U ªTV©ªRY¥°JQ•¢*EUŠª4Ti¬ÒT¥±Jc•¦*UUšª4U TIVIUIV V U U U Ué¨ÒY¥«Jg•Î*]URUºªtU÷*ówû½Ê{¼¯ò=Þo Vª2Te¨Ê`•ùk÷VeN÷~Xå…*ß»k•ë7üíø`•u~û:ª”U «U)¨ò½»W9YeΨ²Î÷×OU©¨RY¥ªJe•Ê*UUŠªTU©ªÒP%X%T%X¥±JS•¦*MUšª$ª$«¤ª$«$«¤ª„ª¤ª¤ªtT¬2Te°Jg•®*]UºªtV©Ç½Êœî?üï«|×[ß»k•9²Ê`•u~û:ªT·ž¨2ÇùWˆÛÇNT©n•p«„[%Ü*áV·V)ï¿;Ü>VX…¾­òm•o«|[åÛ ßÖÆ*MU«P·Uº­Òm•n«t[¡Û9á‡CU‚UhÛ*ÛVٶʶU¶­°m¥mçÈ*´m¥m«l[eÛ*ÛVÙ¶.`¶Ï_ô*q;Gf!n+q[…Û*ÜVáöþög™¶ˆy-ÓÈÛ9"L#oyÛÄÛ&Þ6ñöþöµÌ‰2À#Ê4·¸MÀmnpïo_Ë–!qçÈ2$n#q›ˆÛDÜ&âÞß¾–i,CäΑeˆÜFä6!· ¹MȽ¿}-,CæΑeÈÜFæ61·‰¹M̽¿}-ÓY†Ð#˺Ðm‚nt› {ûZf LºsD™ u©ÛDÝ&ê6Q÷þög™x¡L»sD™ vƒØ a7„Ývïo_Ëœ,CîΑeÈÝ wCÜ q7ÄÝûÛ×2•eÞ9² Áo¼!ð†À{ûZ¦± É;G–!yƒä ‘7DÞyïo_Ë$˽sd¢7ˆÞzCè ¡÷þöµLg²wŽ,CöÙboˆ½!öÞßþ,“Ê$á;G”IÂ7 ß|CðMÁ÷þöµÌ eÞcüü3Iá…“^·÷v¤qŠÆ)§h|ßíZv5îÛRÇ)'u¼nïuÄãS<Æë×>õV뽉œ"r’ÈëöÞGFN9ed¼~íêC'§œœtòº½÷”SPNA¯_û¤úË),'±¼nï}¤å”–SZÆë×>C}易`^·÷>sJÌ)1ãõÏ>ý`ŸN3w™¹ÓÌëöÚ§ Í]hîB3^¿ö9Ù§“Í]lîdóº½÷‘›»ÜÜåf¼~íSÔ‡rî’s§œ×í½èÜEçu¾?_}šúÏ]xîÄóº½÷‘ž»ôÜ¥g¼~íêC?wù¹ÓÏëöÞG€ît ñúµOWº‹Ð„^·÷>2t—¡» ׯ}û *zHуŠ^·÷>bt£»×?ûŒû BzÒƒ^·×>C’’ô¤ñúµÏ©>´ô¥-½nï}„é!La¯_ûTõ!§‡8=Èéu{ï#OyzÈÓxýÚ§©E=$êAQ¯Û{‘zˆÔC¤Æë×>©>DõªQ½nï}¤ê!U©¯_ûtõ¡«‡\=èêu{ï#XÁzÖxý½O9ôyÏ· ïñÞgßÛ·¿û¼gö¡­÷ùíóEû¼Ð§Ðô{<±4½oï}Èç÷\±ùÌׯ}Šúö)êSا¨ýü^Ÿ}ŠúØÏå¨êÓا©OcŸª>U}æ|¿]•Ç|.G(O0O(O0O(O(Oðî¡o»MªMg›®6mRmRm’mRmLçr µl3Ôf°ÍP›¡6ƒw}[m^tsyÁÍïm^pó¾½–yÑÍŸù~›læã×:dó{ƲyïçÈæ÷|ðœw}ÛmŠÚT¶©jSÙ¦¨MQ›Â6EmLæòjjÓئ©Mc›¦6Mmïú¶Û„Ú$Û¤Ú$Û„Ú„ÚÛ„Ú˜ËåÕÕ¦³MW›Î6]mºÚtÞ=ôm·¡•Ë +¿G´9¶j3Ôf°ÍPS¹œ¤ò{¾_8Iåu¼ž;Iå÷|ðœw}[mÎSm Ûµ“÷í½ ü™ï·Éd>~­SÕ¦²MU›Ê6UmªÚTÞ=ôm·ij³|}=Ô&ئ©MS›Æ6?‰|Þ¯ßÖIµÙD¾.¤Ú$Û¤Ú¤Ú$ïú¶Ûtµl3Ôf°MW›ùçÿä9Ú|÷×<.âq9ЦˆÇ…<.âñœ_'Îy÷uòÛjSdãr¢M‘ m\dã9£ÍœïmÖñþúƒÆE4.…mDãBÑxÎlSx—m..rqil#º¸ÈÅsfºxï¯?\\äâl#º¸ÈÅsf›à]¶y¸¸ÈÅ¥³\\èâ"Ï™mèâu¼¿þpq‘‹çˆ#¯óý dU8^çûAéxÎèSu}êCÇU:®U}Äãu¾Ÿ“çÌ>ôñ:ÞŸø¸ÊÇsfyï%ä9³Oãeöy¹JÈ5ÕGD^çû9yÎìC#¯ãýù‡‘«Œâò:ßÏÉËsfzyïÏ?¼Üäå9³À¼Î÷ƒóœÙ'y™}bnsê#2¯óýœÌÜdæF37™¹=Ì2óœÑ'„æu¾ ©9¤æ8x}â¡æšãdŸ›×ù~Nn¹9èæ›ãáæ›çÌ>‚ó:Ÿ ¬™}¶œ×9/³ÏCÎ!9GSŸIçûÿñ×ù~NvŽmç}Ž>²s<ì²óœÙgâ …úHÏê¼Ì>=‡ô]}ºútõ‘Ÿ#Õ‡~ù9~ù9äç9³ÏPù9†ú ^fŸ‡ŸS~NùyÎè“/öIù9öIú9åç|ø9å生çŒ>y²OÊÏy²þp¦üœ?§üœòóœÙ§ªüœE}è生óá生S~ž3û4õ‘Ÿ³©Oãeöyø9å生çÌ>©>òs†úÐÏ)?çÃÏ)?§üÅ]ÊéœSÕÝU haÙ„ð"!ÄqÀ8&1†|ýô™{»uÞ§#Œ@åVÿ¹Ï ™Ÿb×>±ëfé‹Ÿ~ø¹ÏÚÇ´ÏØ?ŸshŸP?ü,×ß?üÜgíãè?‡£ëfí³ø9à瀟û¬}*úÀÏQÐGýðs,~ø9àç>kŸ†>ðs4ôiºYû,~ø9àç>kŸDø9}ÔÏ?Çâç„Ÿ~î³ôÉMû$üœ›öÉM7KŸ\üœðsÂÏ}–>yhŸ„Ÿs×>©~Nø9?'üœðsŸµüœðsÂÏiºYû,~Nø¹Ïy|ú–ðtÂÓ OýóyðuÂש¾Nø:_g=—.†¯¾Nøz쟂¯³êfíw½üþœvéu>¾Nø:áë±>¾NõuÂ×rýýA‰>ðuÂ× _ýóAðu¦nÖ>‰>¾mÒÇ7õõ9_ûÌõÇusÿã9ç|ísÎåº]}­×ßtHŸs®ò õõ\ŸÒçœwyС›÷CgCGGGCCÓ>†>¶ô)èSЧ OAŸ‚>}ŠnÖ>eéSѧ¡OCŸ†>}*úTíSѧ.}}}}}}}°YûÄÒ'µÏ®¾>gé³oè“è“è“Ú'Ñ'ÙgߵϮ¾>g鳫¯çþñ ]}ÝgÝ,}äòûsô1ô1ôQ_Ïýó9êës¾öÙÕ×zýýAŽ>Ž>Ž>Ž>Ž>Ž>®›µ/} úTô©èSѧ OAŸ¢} ú”¥OCŸ†> }ú4ôièÓt³öiKŸ@ŸDŸDŸDŸ@Ÿ@ŸÐ>>Á>Ǧ}õõ9KŸC}=÷êë>ëfé#—ߟ³kŸC}}ÎÒçP_Ïýó9êës¾ö9Ô×zýýA†>†>†>†>†>†>¦›µ-}} úô)èãèãèãÚÇÑÇ—>}*úTô©èSѧ¢O}½Uݯ‰Hh?5$jHÔ -/jhDCû‘h”h”h”h”h”h”h”h´0ÚÀh£ Œ60ÚÀh£û, Ž¶ÅÑGmp´ÁÑGÝgid ´-”6PÚ@i¥ ”6PÚ@é>k#XÚK,m°´ÁÒK,m°tŸµ8m § œ6pÚÀi§ œ6pºÏÚž¶ÅÓOK#‡«}qµÃÕW;\ípµ;ÁÕ}ÖF µ/´vÐÚAk­´ö‚F uŸµlí‹­¶vØÚak‡­½¡lÝgm^ûÂk¯¼vðÚÁk4êßB×µÑc}ž¿øºÀ×¾.ðu¯Ë¦ú¼‡®K£±~9 ˆ]@ìb»ìÚ¨ÏÒ¨ÏÒh¬Ïóc»ÀØÆ.0öØ?_dhdhdh´0»€ÙÌ.`v³‹£‘£‘£‘£Ñâìg8»ÀÙÎ.*ÁÙcýr>ÁÙÎ.pv³KC£†FpöXŸç/Î.pvŸÛõûE³Çú¼1Ñ(ÑÎë—óѨÂÙµ»úú¢ gõqcÝ´QŸ¥Q…³Çú<qv…³û,*œ=Öç‡6ê³4ªpöX¿œÏFpvu4‚³Çú¼ÑÐÈÐÎëóüÅÙÎî³6‚³Çú¼± QA#8{¬_Îg#8»64‚³Çú¼±¢QE#8{¬ÏógW8»ÏÚÎëóÆ@£@#8{¬_Îg#8»mÚ¨ÁÙc}Þ˜h”hgõù¢ÅÙ Îî³4jpöX768»ÏÒ¨ÁÙcýr>58»ÁÙc}Þg÷Y58{¬Ïóg78»ÏÚÎëóF8»ÏÚÎë—óÙÎnàì±>o„³û¬àì±>Ï_œÝàì>k#8{¬Ïáì>k#8{¬_Îg#8»%ÁÙc}Þg78»ÁÙ În‹³Îî³4 8{¬Î8;à쀳cqvÀÙqh£€³Çú¼Î8;à쀳cqvÀÙ}ÖFö:üz¢¡œpvÀÙcýr>ÁÙQШ¼6yQA#8;à쀳ÎŽÅÙg÷YU4ªhgœpvÀÙ±8;àì4 4 4‚³Î8;àìXœpvÀÙ}ÖFpvÀÙgœpv,ÎN8;áì>K£„³ÎN8;á섳sqvÂÙ g÷Y%œpvÂÙ g'œ‹³ÎN8»ÏÚÎN8;á섳ÎÎÅÙ g'œÝgmg'œpvÂÙ gçâ섳Îî³6‚³ÎN8;á섳sqvÂÙ g÷YÁÙ g'œpvÂÙ¹8;ÕÙeSgŸóµÑ\Ÿ7ÂÙ g'œpvÒÙeSgŸs“íÒh®?nœû/:çk£s¾6šë—ó/:ÐÈÐÈÐH=÷Ï©³Ï¹È‹ÔÙzÿýEŽFŽFŽFŽFŽFŽFŽFŽFtvÙ U4ªhTѨ QA£‚Fèì²54jhÔШ¡QC£†F ÑÙe 4J4J4J4 4 4 4 4¢³Ë®Î>giÔgi´«³çþñ¢]}ÎÒhWgëý÷©³_æøô'Ê®î>gi¶«»çþùBuø9KÃ]>×ç}txÙûR\_lhhhhhøØ?_dhhhhhx½ÿþ"¿4;_TЬ YA3G3G#G#G#—¯Ùù¢ŠF*U4ªhTѨ¢QE£º4jhhhhÔШ¡QC£†Fmi”h”h”h”h”h”h”h”h”ltlÚèP‡Ÿ³4:ÔásÿxÑ¡?git¨Ãõþû‹mt¨ÃÏYêð¹¾H~ÎÒèP‡ëý÷999ÙÒ¨ QA£‚F 4*hTШ,*54jhÔШ¢QE£ŠFêÒ(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(–F© 78Ü64J4J4J4J4J6²]np¸Áácÿx‘Áá‡.÷Ÿ/:úÏö8oèßfúƒŽÎ™ø´®¾ü0ûñéû§¯?¼¿=½ùø¯¿þt{ûö͇÷¿ûêÖ¼{÷åWýÿo·ô_¿}êãöŸÛ~ûpÛn?ô_¿¿ýéÏÛí»ÛÓ—ÏOoÞÙúÚó÷ýÏ>ÿívÜž¾í/ã¶þßýwûùOš~qv3ûf·ç>½Ý¶£½{þáéÍó³=ö¿Þ¶-ÎC¶óþn?yþîéÕí—o_}øö‹/úŸÿúùñê÷·Ûû/·l·ÛÇ÷è´r>të/ÝûK÷þÒG÷ÇQ¤ÞüîÆ_æ+Ñ¥õ^^’}d6ꜟ}>øèç÷/¡õ¿V‡o~~àW¿Ü~óøý7òIô†7üûÉú?kŽó˜þšãÖ©ê·ýåÛõÏúæöÓç¾:ÿ÷×ežÿé™óëò™×åxݽ€õŸ•v ÀúE”ÃëvùèݽçâüqãýÚóËu2q|t¹üå./(÷^_ðæW.ß?óÉþ÷áÿå»ú~Ó†ð{¥þ÷¦qÈϽ•M“:©ZöUe‚Ö’8²¬ýëw¾„$¨TU9û¾û¾»ó9dá=]¤gjNéiÒòÎ÷qĆEˆ™æGÔž3'ÓÉ O6¦‚µgÞ3¿µÛå®Mä~óÎdÃÏÑvýÁvýû0>[S#ñCdíÀ~nÁo°ºy‹ ‘ÌìnúÜñÈfÃþÑ0é œY:ÇöÑ `a«Õ"&fé‰%¶ñc“ðb<…ݦ[,Ÿr»×¿ù£ÀwÒt_ìs^ ¨FŒ9|4fN] ]Âèeñ«—aÌ?/]Öƒb Éh0Ôv›þE‡‘‡i˜ø'D8¥LpÒ€?²Ü¨ãh;·]箇|=Ém>ÀóÑ[ˆ3eº+¸þ …àf¯e¹…z'@„Þ ¾•¦öídgá9 ¯D0PÀ¦_b±m29‡òôüøŠ ¼¦ZX1¦ätŒWÓmŒÇ-ŽMÿ]†Ðíg­…8Ã9`-ºÊtg=mì*Ôî3žZÉHU±–%¯¥*'ðX‚Ò¡¡VPiqeM$Z4W3ul¯\a8ŒJU. \I{B¦Uªªe!ß鲄”Ñ*²/÷FlàH)ó8”b›Ë­\ݯóçAp‘õìZŸ˜D‹wN‰~j-’çÀSr+ TBgJ¸·,ÜŠ¤q3EÕm¡ñ€‰pRq/¥j× ¹gDxÔ¯X:a4öK%ÕEuQÌhÅÇ• L†üUZ!òü QË#’ïÂÒÄÓT¢RéVN½Ãñ£€Z‹6è0Û}ô&«{¸é ¤)bñåÎAÅ+®‘D&¸Î%ê­EŽU#Ìj4[©ß.X¿'þ¤`Y`´mæ-¸Õ7îð},zÖ"WG0;u4¤Ýš™ÂFdÄ fÒ„÷¥‰Ó@<;G·ÂHn‡öê|…w#[׃Õ8íâõxv{uë†6’̤;Q`1¤pâhëÀ†WqjÖxеÌ0©muÍqé–Ó¹ªk,¬—éâ­ÂÞñÌ·mÃt>Wÿ`yê‘x…ˆ°bb!9ö¸³wU$û¥eaúû; 3.\?šŒÅŽá†ŸJ‹yœt={Ãy>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 62 0 obj<>stream H‰¤—]·†ï÷Wðr÷"³3žC²H ÄNZ¤€QàN(kÙV»ÖnWrÒä×÷p¾4ï»3›~øb­#êð>"9®¿~8íßooNîË/¯¿>¶7wïÜÛëÍݽûázóëýÎ]¿Ú~ض§ýÝÁ]?~÷/÷¶ÉZÅÖ¥Z«Vœ„¦ *ê’oª6Ôâ~xöìù7/ÜÅõ_^¸ë—/j×EµûpѸ½½ý§×öúxñ|sq½ÙÔ®q›÷6º¹qöçûã6G×ÔåÿßÊ[Tµ·—õðªÉ© É¥¦©¼¯[·ùtqé®6/ó5ý|_Øë:”Y»—¾Lí}%Ëœï..¿;œv·î{o¿|õ{¾;Ü|ü´}øÇq˜èQcV­Í2dwå¾Ý\9u,Ôµ¡­¬»JÜÃîâýÅ·/mÙÝŸëWðËß}céXþâ cvQmÆ&çó­f?åëûíašÕã¬~¡iË ¸€Ï¡j¼‹¥ã0 4 ?¾Ù~¼yØmOöÍ»ñ÷Ʀĥ~í¾hª:ÏoÎïv;hî¼Þfq½}gÝ×S^µZ箿<~½1ø*_ï§ÝöøùÁ6çýötÚ=€Ec‹Ñà¢Û6aìþ¤þ[˜&—¥ÝGºQŸëòörªÏ͘çÅÞž'–m×jÎÓ4è±!¯ÓŒ>–CCË£ãÄË£3ìíØÛ »,ao¤ãûÃîþîádØOûOûÇã[0¬oÁº™ÑXlܱHC±ÓWÝÑ{ᜟ½/íðÆgý™&mªd‹èâießÉ:»¢>Î{jmå)`OÎ}¹ïw7Ö_ UÃbJý .ž·Ÿx‡î‚«$ Íw7ß_¹íÑíïö7Ûz(v®ìÐ¥ÃkÕõµúéŒ]à¯9Ngìí対Ëý;gvÙ]ý°ù3Ÿ0;êö]ÛV¶ìòà°c—gkˆOlØ4­aa¿j²çÏãýúñáîó‡÷ŸOkÐÒbÁ9ŸZ´Åéw‡ÝÒͣѮ•á 7±jNú0ºrõ¬ä–»gZ»{V2FÏ©3y@}~dv´Wž½ª¥§qãl®š&\nºÝ¹ôgO„ww¿¸w»÷ûþØKó‡ÃòÓ°~ª°=šPžçžˆ³y—¯¿ÇSf{¦«™AÔr/ð¤åùn† ¶gkÿø&Ÿ¶mœ>Ó­íùßÉ –Ô>9¶6íÓ™iÊi²PÞÂØœ]äƒP5mñœŽ]÷ÊÛ°ŸÖ¹²—ýñØ®}ÓeüÏ‹)O-ÏæòåKm|ÕmÞ7î€U»ãß==×ï–õooטnÈ¿.̯Ӗ¯»â£Rv’•rÛ›µZñÿZl:?Z¸ »@Zjã´_ë"=µb^q³Tª­Ë •~Þ¹û‡»›Ýñ¸;®ÕÌ‹;§^_QÁSö d3yÉñÉCíëÿ|cv“ƶLúôœÍ9§ˆÍi²ßóqòö ¿NËÛ¹Û)b‡zBŽ>¾¶‚vúêÁicyäc%“œãþ·ûê©%…å%-ÕÞ¬%a¿­-@Ö°ˆª\|ž&7‹z¢sý¿Œ&?þ2ºßBOÔŠ‹µÖ*Ô VxõyÍg}ZÅTòΰu_c‰·å‹¶¼Ÿ~½jü¥ýÄþ½¹Ê—ý3»p„g5..¯m•³í]HíCþ¹øúãö~wþí2ôë¯kws즭;Þ.|cöoçPíGŠûd¡¯L KlÕn»Ø.ôrN­‰Ûóx'C·Sº”ÇdŠâpóôa|š~Výö⣽ÑÚSxÖN[ ´ÓV:´3ÆíôéS;¦ ÐŽ·ß˜^+Nßb;éÑ‘‰Î#€tÑ ?Ÿ¦LG‘Ž%:Jté(Ñ¢£DG™ND:©jæO§žªEd‰M$6‘ØDf“‘M®àã™ÐôÃSµŒd2‘ID&™Ld| d|dJ8of« Éc3‹Ì8>Í^³ñ9ïL ¡d†ä©d¬u 3ŽÏf'2-’ H&™€dZ$Ó™–È´D¦e2‚dÉ‘$#HFˆL 2Bd„É(’‰H&™ˆdÉ(‘Q"£DF™LB2 É$"“LB2‰ÈD"“ˆLb2È´5)á¼™axª–‘L&2™Èd"“‰LÛ ç/!4Ó™!ylÆB c­™q|6;’)¿AçÍ´H¦%2-’§f<’)?¯ dæµûf’ H&™€d’ D¦%2È&#HF‘ŒE2‚d„È‘"#L&"™ˆd"‘‰H&"™Hd”ÈD"™LB2Éd"“‘LB2‰È$"“ˆL"2¡2Î?^Ây3ÃðXmH›±Éd$3ŽÏfG2]8x caùqžÎ™€&È„Cƒd™p`hÂÂÇÛ*B3-’AäÁ<8öà€É‘$ƒÈ‚Yp lÁ-ØBø¸E2èÀ8ràyí¾tà€l!’AèÀ8ràÀÐ:°…H8 rà@È;°  :°…@FÐXÈ…XÈ…XÐØB #èÀ‚,äÀB,äÀÂ,èÀ‚l!’At`!r`!v`At` ‘ :°  9° 9°° :° [ˆdÐXÈ…XÈ…XÐØB$ƒ,èÀB,äÀB,ìÀ‚¬èÀEt`!r`!v`EVt` Œ¢+:°’+9°’+;°¢+:°…HXÑ•XÉ•XÙXÑ-D2èÀŠ¬äÀJ¬äÀʬèÀŠ¬JdÐXÉ•XÉ•XÑØB$ƒ¬èÀJ¬äÀJ¬ìÀŠ¬èÀ"t`EVr`%Vr`eŽèÀØB Ñ#:p$VràHÙ#:p õüщ#9qD'³§îБ#9r$GŽäÈ‘9š§ê¼[”äH’Q’Ç쩲äH–É’¡zßO˜Ñ*ý 'Gò䈞ɧ¡zß4êLFѨÇì©RêLJI©¡zßO$>(Õ™¤:£TÙS?dÕ™¬:“UCõ¾ŸD|Ы3yuF¯³§~H¬3‰u&±†ê¥Ÿ¶®O‰g %œó‡‡zSöÐO‰‘ºõ¿É¬·ãÚm ¢©8Éyñ8ÿv‰¦?ã#ïMïÓû=ÊçÏìòå³Þþ}¡iCÓ>†>êçÏóµ¡ýl—£OhŸ@ŸÐ>Ž>Ž>=¿O;òÏv%ò¤æIäIÍ“È“È“zö·٦Ðfh›6CÛÚÚ”¶)´!íšh3µÍD›©m&ÚL´™zö·ÑæV7Û-nþŒÒæ7ïÓë1·ºùg~ŸV6ëåßçl¸>ãç9ÂæÏ(mnaó>½Ÿ£lîYÏ^øößÕßÇlµþ>Ƶ£kCCÓ6†6ïË¿Ï ´ mhÚ&Ð&Ð&ôì…o³M¢Mi›B›Ò6‰6‰6©mmòh3Ðfh›6CÛ ´h3ôì…o³ÍÔ6Xù3J›çÒ6m&ÚLm3Ñf²Ísk›G¨ü¥Í#TÞ§×s¥rÏzö·ÑæyÐÆ´¡8yŸÞQ'ÿÌïÓÊd½üûG×6Ž6®mmm\Ï^ø6ÛÚ¤¶I´ImhhÚ&Ð&Ž6…6¥m mJÛÚÚ”ž½ðm¶h3µMÿ%ù[ÛêŸÏO_3ßc>ë§ÿÃÇ~>o—þ®¦Ü5p×”»îöüûWÍÚëÙûÑoãwµ[WSë¬kj]ƒu{ÎG÷ïÿÖzý>ÚÚ(u Ô5¥®º=kÓ³ÚÆŽ6Ž6ê\ƒsMkpnÏÚF»Öûë~´I´Qçœkê\ƒs{Ö6©gµMm mÔ¹çš:×àÜžµ:w­÷×ëh3ѦÿŒJ@wí÷…nÏZgêa­3YÇ/­ãMÙ÷sÔ]ûuú=KWë®õþüÅ>ëö,}Ø]û}!´Û³ôq–>~hס]wôw×~_ïö¬}Ô»k½?x×áÝžµÀ»öûBˆ·gízXûâuˆ× }@Þµß×Á¼=k5ïZïÏæu˜·gíô®ý¾êíYû =¬}õ:Ô—ö °wí÷up¯OôQ÷®õ~ÐáÞ€{{–>ø®ýº0 ßž¥OÜzXúÄ!߀|ÃÐô]û}ìÛ³ô µïZïÏö Ø·gíü®ý¾úíYû¸Ö>‡~úíÐ>àïÚïëàßÏâѽô ô9üðoÏÚ^û}!ܳö)=¬}}&úLôè3ÐghŸ>‡™fîYú$мöë„šjÎKKŸ<ÔœPs>Ú'Áæµß×ÁÍ 7§º9áæ<ÜœpsÏÚp^û}!äœsšÖ>‡œrÎ@Ÿø,^_ ôvNµsÂÎyØ9açžµOãY”è='ôœ©‡µÏ¡ç„žs Ï@Ÿ>ðsÂÏ©~Nø9?'üœðsÏÚ~Nø9áçœzXû~.ø¹à瞥OÁÏ?ü\êç‚ŸëðsÁÏ?÷,} ~.ø¹àgùÃYðs~.ø¹àçžµü\ðsÁÏ¥~.ø¹?ü\ðsÏÚ~.ø¹àç =¬}?ü\ðsÏÚ~.ø¹àçR?ü\‡Ÿ ~.ø¹gí?ü\ð3kŸÃÏ?ø¹gé3àç‚Ÿ ~.õsÁÏuøyÀÏ~îY~Å?øyÀÏãÖÃÒg~ðó€Ÿ{Ö>ðó€Ÿü<ÔÏ~‡Ÿü<àçžµü<àç?×ÃÚçðó€Ÿü<}àç?øy¨Ÿ×zþðó€ŸüܳöŸü<àçQzXû~ðó€Ÿ{Ö>ðó€Ÿü<ÔÏ~‡Ÿ'ü<·ŸïŸ z–>~žðó„Ÿç¥‡ûì£Ï„Ÿçöóï‰GûLøyÂÏ~žêç¹ý|çûøëAðó4ô1ôŸ'ü<áçizXû~žðsÏóùû ›^ðô„§×ùý<øzÂ×S}=ý_Ïüן÷ƒýàë _¯óûAðõL=¬ýÞ—ŸS¯^Ÿç ô‚¯'|½ÎïçÀ×S}= }Jþu}4Ñg¢|=áëu~?¾žSkŸ‰>~]Òǯ[ú|æwŸ½ÿ½nŸÿ}Îg~÷ùÌñ>~I½þû Gú|攩¯÷~_øHŸÏ|˃=|?úqö1ôqôqôqô1ô1ô1ícècGŸ@Ÿ@Ÿ@Ÿ@Ÿ@Ÿ@ŸÐÃÚ'Ž>‰>…>…>…>‰>‰>©}}òè3Ðg Ï@Ÿ>}úà°öGŸ©}îKûÜêë½ß×Mô™è3µÏDŸÉ>÷­}î[ûÜêë½_®óëA·úºg=,}äòïsô1ô1ôQ_ïóû9êëÏüîs?ÚG®ÿ>ÈÑÇÑÇÑÇÑÇÑÇÑÇõ°öñ£O O¢O¢O¢O O OhŸ@Ÿ8úúúúúúú”Ö>uôè3Ñg¢ÏDŸ>}†öè3Øç¹´Ï£¾þÌÒçQ_ïóëAúºg=,}äòïsníó¨¯?³ôyÔ×ûü~Žúú3¿û<êk½þû CCCCCCÓÃÚÇŽ>Ž>>>>Ž>Ž>®}}üè“è“è“è“è“è“è“ÿ^©ç5 íO!Ñ@¢D„þÎ…D„^ûÑÐþL4šh4ÑèÏÐkÖF†^{m4Ñè`´ÑFm·620Ú.mÔ³428ÚGmp´ÁÑöh#ƒ£íÑF=K#¥í ´ÒJ(mŽF ´ÁÒvXÚ`iƒ¥ –^û}#,mFFà´œ6pÚÀi§­Ðœ¶D£D#xÚOˆ v€Øñh£±{–F=K£µßß?Œ0vÀØc‡¡ŒÝ³62424:˜`v€ÙfG ˜Ý³6r4r4:œpvÀÙgG¢œý98t¯gœpvÀÙgœÝ³6‚³×~ÿpvÀÙ=×ûÿg¯ý¾ÎîYÁÙkÿú>%œíê÷‹Î^ûucÂÙ=K£„³×~ÿpvÂÙ=K£„³×~ßg÷,Î^û×÷ÙÎNG#8{í÷pvÏÚÎ^ûýýÃÙ g÷¬àìµß7ÂÙ=k#8{í_ßg#8; àìµß7ÂÙ=k#8{í÷÷g'œÝ³6‚³×~ßg÷¬àìµ}Ÿà캴QÁÙk¿o„³{ÖFpöÚïÎ.8»giTpöÚ¯ ÎîYœ½ö¯ï£QÁÙehg¯ý¾ÎîYœ½öûû‡³ ÎîYÁÙk¿o„³{ÖFpöÚ¿¾ÏFpv%ÁÙk¿o„³{ÖFpöÚïïÎ.8»gmg¯ý¾ÎîYÁÙkÿú>ÁÙ5ÑÎ^ûÿÉ®c%Ýi$ Ã9W1W¶ÕÝꮢ6 â ØÚûǶ~}¯3º4²zßå0Ï™/ÂÙÎîpv‡³ûËÙ gY%œýœ?/&œpvÂÙ gçËÙ gç¡Î~Îç‹pvÂÙ g'œ/g'œ=fmÔ~L[¿ØÐÎN8;á섳óå섳ÓÑÈl²‘£œpvÂÙ gçËÙ gYÁÙ g'œýœ/ßg#8;à섳ÎN8;_ÎN8;áì1k#8;á섳ÎN8;_Î.8»àì1K£‚³ Î.8»à삳ëå삳 γ4*8»à삳 Î.8»^Î.8»àì1k#8»à삳 Î.8»^Î.8»àì1k#8»à삳 Î.8»^Î.8»àì1k#8»à삳 Î.8»^Î.8»àì1k#8»à삳 Î.8»^Î.u¶oêìs^Íóù"œ]pvÁÙgí›:ûœ»l´K£y~¿8ïßóÚèœ×Fó|ù¾a£54RgÏûs#uö9»l¤ÎÖ÷¯ >ξGMdHdHDfûæHHHHôaö=j!G!G!*Û·ŽB…: uêZ¨£PG¡ŽBD¶o‰B…B…B…B©…………hlßÕØç,…Æ,…v5ö¼/´+±ÏY íJl}þZH‰ý=çç'|WrŸ³Û•Üóþ³à.wø9KÀ]®Û]ûçºoCÀ†€ ïûÏB 6\Ÿ¿²%ع#˜#˜#˜i0C!C!C!“ÿ¿Î……………B    Å«PG¡D¡D¡D¡®…: uê(Ô_… … … … …J     ›:ÔÞç,…µ÷¼/t(½ÏY Jo}þZèÐB‡Òûœ¥Ð¡ôž÷Ÿ…TÞç,…•·>-ÔPÈPÈPÈP¨i¡†B … µW!G!G!G!G!×BŽBŽBŽBþ*(ÔQ¨£PG¡ÐBBBBñ*”(”(”(”(”Z(Q(Q(Q(_…J 5¨»AÝmC¡ÒB…B…B…BÅBm×B èn@wºŸû÷B æn0wƒ¹åùs¡cü2Ïóño»…Žá—ëƒuþÀ<ÿA=?ð¿þûǯ_?üôçÿÿúçﯟþé_ÿí«í_¿üòŸßÆÁ1~{ç—õñ¯ò÷×ÆõñÖíÚçœÇ"çÏçïóvÍ×õñ'9îÑCÍÖëóüþüòúõ¿nüa]gü™—uÆŸù{gvYçº>×ù–Âr|œÑäúúù¦ë˜ÖqÔñY癵ŽiC›u=¯c¹¾¬Z'P'P'P'´N Ž£N N°N×:ãO÷úã‰8ÏñýZ×6m:Út´élSÚfüÉ^¼æ9¾_+-S(“(S(S(3~[¯e†Ö2ç¸.3¯×îËÏ2— äXÊ|ÎëX®/ËRfŒò㇖™Ç÷k‡”¹T°ïZæs>¿Ž2M˘–1”1-Ó´LC™†2 e˸–q-ã(ãZƵŒ£Œ¡Œ£Œ³Lh™®e:Êt-Z&P&P&P&X&µLj™D™Ô2©ee:Ê$Ê$Ë””¿ó×2ç¸.3ï×JËÊÊÊÊŒßÈk™1®?~Ž²Ì.eîËÏ2×oÿåxÓ2Ÿóùu-Ó-Ó´LC™&eîËs™CËŒYÊ|ÎëX®/˘–1-c(cZÆ´Œ¡LCCc×2¡eeB˸–q”q”q”q–éZ¦k™Ž2]Ët-ÓQ&P¦£Lg™Ô2¥e eJˤ–I”I”I”I”±MÊŒqýñs\—™Ç×k÷åg™1j™Ò2Ÿóùu-cja;¤ÌÇ_5–ÏRÆT ۮe 6JØTÂc”oç_3–Ï5-£68Øà`ƒƒ6u°¹–q”q-£ 6(Ø `ƒ‚ 6UðåÇeB˨ 6Ø``£M ljà1j5°© 6Ø``£M ljà1j5°© 6Ø``£] ìjà1JW»Øa`‡vØÕÀ®£”q5°«vØa`§] ìjà1j5°«vØa`§] ìjà1j5°«vøs>¿Ž2j`WQ˨] ì0°ÃÀ; ìj`WQ˨] ì0°ÃÀ; ìjàPQÊ„ØÕÀ; ì0°ÓÀ¡5ð¥L¨C 0pÀÀ jàPQ˨C 0pÀÀ jàPQ˨C 0pÀÀ¯o_˨C €r”; ,¯_ûú(•;¨Ü•ÊÏí¹¬Üaå+Ëë×>}TËZîªåçöÜ\îàr—åõkŸBs˜»‚ù¹=÷˜;ÄÜ!fyý{ŸÜ´Oª™fN5ósûÙ'æšh–ׯ}í“Êæ›SÙüÜžûÀÍ 7'Ü,¯_û4ôQ9'äœ*ççöÜtNÐ9AgyýÚÇÑGñœÀs*žŸÛsè9¡çÏùü<ûú¨Ÿ~Nõós{î@'´¼~í“裄N:•ÐÏí¹ 0tÂÐòúµOiŸRE]ªèçöÜŒN0:Áhyý{ŸÚµO)¤ .…ôsûÙ§ 邤 ’–ׯ}ôQK,]jéçöܘ.`º€iyýÚÇÐG9]àô<¾ß3ô§ ž.xZ^¿öqôQQD]*êçöܤ.º@jyýÚ§£¢º€êRT?·ç>PuAÕUËë×>‰>êê‚«K]ýÜžûÖX`-¯Ÿû´m“>ç¼\8ǵÏçøû½yûÞ眵Úz9ŸŸoØg—>mMŸã!ûˆ¦çí¹òùœMöQ>ëë×> }šöièÓ´OCõó¹¾öièC?·ÍÐǵ£kCCŸ1¯· yÈç¶ò„æ ä ÍÈÈzw÷٦£Mj›D›Ô6m:ÚtmÓцtn[¡Mi›B›Ò6…6…6¥w7|mvusÛÅÍç(mvqó¼ý,³«›¿çõ¶²Y¿Ö™ð­ü^GØ|ŽÒf6/·ïu”ÍcÖ»¾ýyúZfª÷^Æ´¡i›†6 mš¶ih³>~­ãhãÚÆÑƵ££ëÝ ßf›@›®m:ÚtmhhÚ&Ð&^mmRÛ$Ú¤¶I´I´I½»áÛlSÚæ+Ÿ£´96mShShSڦЦØæصÍ!T>Gis•—Û×:‡RyÌzw÷Ñæ8Цi›†6âäåö½Œ:ù{^o+“õñkCÓ6†6¦m m mLïnø6ÛüKf½]Inë`NåD0«$¸Äãüs8¬.Iпùf,4Eö¶güM´qmãhãÚf¢ÍD›©m&ÚÌ­M Mh›@›Ð666¡g?ø6Û$Ú”¶Yÿ“¼jâߟþ”¿G?ïŸþûû¼}ôw5å®»¦Ü5pwÍ×ÿj=Ný6~W;ôw5µ®Áº¦Ö5XwÍ~êþýßA¯ëÔãÏs m”ºêšR×@Ý5kÓ³Úƶ6mÔ¹çš:×à\h£ÎíuzüyŽ£:×à\S眻fmãzVÛøÖ&ÐFkp®©s Î]³¶QçöºN=þ<§Ðfý•8€nï¯ !Ý5kÒÃZ§Xg|´ÎX”}?g€º½ÿ]7`Ý5KŸ¡Öíuzüy¬»fé3€ÝÞ_B»k–>‡¥ÏØ´; Ý1ÐÜíýu¼»fí£Þíuzüy¼»fíðöþºâ]³ö™zXûlâïôy{]ó®Yû¨y{]§ó®Yû½½¿.„z׬}RkŸM½êí3ÁÞÞ_×Á½£ÐGÝÛë:õøý  ÷®YúLÀ·÷¿ 'ä»fé3=,}æ&ß ùNCз÷×u°ïš¥ÏTûöºN=þ<ö]³ö~{]ý®Yû =¬}6ýNèw:ú€¿½¿®ƒ׬}Ô¿½®S?‚׬}àÞ_BÀkÖ>¡‡µÏ&à ÏBŸBŸBŸDŸDŸÔ>‰>›™f^³ôq ¹÷¿ jv¨Ù?zXúø¦f‡šýÔ>6÷þºnv¸ÙÕÍ7ûæf‡›×¬}çÞ_BÎ9»éaí³ÉÙ!gŸè³èüþ¿÷×u°³Ãήvîuzüyì¼fí³ð,rôžzv×ÃÚgÓ³CÏžè“è“è?;üìêg‡Ÿ}ó³ÃÏ?¯YûÀÏ?;ü쥇µÏæ瀟~^³ô ø9à瀟Cýðsl~ø9àç5KŸ€Ÿ~øYþpü›Ÿ~øù{<~ø9àçP?ü›Ÿ~øyÍÚ~ø9àç˜zXûl~ø9àç5kø9à瀟Cýðsl~ø9àç5kø9à瀟yXûl~ø9áç5KŸ„Ÿ~ø9ÔÏ?Çæç„Ÿ~^³üŠ ?'üœðszXúäæç„Ÿ~^³öŸ~Nø9ÕÏ ?çæç„Ÿ~^³öŸûüõ ø9‡Ö>›Ÿ~NøyÍÚ~Nø9áçT?'üœ›Ÿ~NøyÍÚ~Nø9áç =¬}6?'üœðóšµüœðsÂÏ©~Nø97?ü\óï‚5KŸ‚Ÿ ~.ø¹>zøZ>GŸ‚ŸëññuâÔ>?ü\ðs©Ÿ{®ÇŸÁÏeècè?ü\ðs™Ö>›Ÿ ~®¿³ÏOXMô‚§ žîó×óà낯K}ÝëÄñçÁþoœï;úÁ×_÷ùóþyíçzXû½/ÿ='^½¾ÏIô‚¯ ¾îó×sàëR_÷:]?*ô)ô¯ ¾îóçýóÚ§ô°ö)ôŸôŸCú|çwŸ×þïº×ùÓ¯ùÝç;Ï÷ñôÑë:¥Ïwvyúúµ¿.<¥Ïw>äA§>Ný8ûú ôè3ÐÇÐÇÐÇ´¡m}&úLô™è3Ñg¢ÏDŸ©‡µÏÜú8úúúú8ú8ú¸öqôñ­O¢O¢O¢O¢O¢O¢kŸÜú”ö9>ÚçP_¿ö×u…>…>¥} }Š}ŽCû‡ö9ÔׯýïÂ>Þ?/}ŽCK¹ü÷œ} } }Ôׯó×sÔ×ßùݧ×ézüyÐ@Ÿ>}ú ôè3ô°ö[Ÿ‰>Ž>Ž>Ž>}&úLí3Ñgn}}}}}}}BkŸØú$úúúú$ú$ú¤öIôIö9?ÚçT_gésª¯_çÏûç¥ÏùÑÃÒG.ÿ=çÐ>§úú;KŸS}ý:=G}ýß}Nõµ^ÿ{¡¡¡¡¡¡éaíc[Ÿ>}&úLôè3ÐghŸ>cëãèãèãèãèãèãèãÿ>®ç5 =Î@¢D¢D¢&ôo$jBßû)/ 4¢¡ÇYhThThÔ†¾gmÔ†¾÷Ú¨Ðhc´ÑFÝûßFÛG­Ym›£ Ž68ÚàèÞÛ=K#;µÑš¥‘Ò¶QÚ@i¥ ”îýu#(m†F†F°´m–6XÚ`iƒ¥{o÷¬&M4§mã´ÓN8ÝûëFpÚàiÛ]Ïß/šðõ„¯'|Ý{»gi´æ#u/zÿ|&ˆ=Aì b÷þºÄ^³4Z³4ê}ºž^cO{Âؽ·{ÖF†F†F†F³'˜=Áì f÷þºÌ^³6h4Ðhsö„³'œ=áìÞÛ=k#G#8»÷Ï÷ÙΞpö„³'œ=áì5k#8»÷ézþyœ½æxÿ}1áìÞÛ=k£B#8»÷Ï÷ÑÈál_®~¿ÈáìÞÿnt8{ÍÒÈáìÞ§ëùçEpöš¥‘ÃÙ½·{–Fk–Fg÷þù>ÁÙ>ÐÎîýu#œ½fmg÷>]Ï?/‚³×¬àìÞÛ=k£‰FpvïŸï³œíFpvï¯áì5k#8»÷ézþyœ½fmg÷ÞîY%ÁÙ½¾ÏFpv|´QÀÙ½¿n„³×¬àìÞ§ëùûEg¯YœÝ{»gi´fipvïŸï£QÀÙahg÷þºÎ^³4 8»÷ézþyœ½þAÁÙ½·{ÖFàìÞ?ßg#8;àìÞ_7ÂÙkÖFpvïÓõüó"8{ÍÚÎî½Ý³6 4‚³{ÿ|Ÿàì(4‚³{ÝgœpvÀÙ±9;áì5K£„³{o÷,ÎN8;áìÜœpvžÚ(áìÞ_7ÂÙ g'œpvnÎN8{ÍÚÈþåxÑÐÎN8;á섳ssvÂÙ9Ñhþ3yÑD#8;á섳{Ÿ®çŸÁÙkÖFŽFŽFpvÂÙ g'œ›³ÎÎD£D£D#8;á섳ÎÎÍÙ g'œ½fmg'œpvÂÙ gçæ삳 Î^³4*8»à삳 Î.8»6gœ]pöš¥QÁÙgœ]pvÁÙµ9»à삳׬à삳 Î.8»àìÚœ]pvÁÙkÖFpvÁÙgœ]pvmÎ.8»àì5k#8»à삳 Î.8»6gœ]pöšµœ]pvÁÙgœ]›³K=?êìïünôÚ_7ÂÙgœ]pvÑÙó£ÎþÎ!/:¤Ñko÷ünôß¾ó»Ñkÿ|àEçÿù®»ÖÆ( À÷úsi_¤šïkï¶t!킽¡'N½¬íUIûï{FÉs^Ó²dã“ùÔ3’ýŒ 0â9»_vÄsv®ÛÏÙ|ýqGŒ,Y0²`tÉÙ¥äDˆ,aÌvÒ‘"Dˆ.1»”\È!LÙN @(€PàB„Âíd¡B „E.A(‚P!ÌØNñŒk&D5RÌc^€¢°¥ iÊ/cŸ;ÌÍtôy‚}óé~-švóº=‰ÛÛö~ýËGAKßÝ­>Òߥx¡ŸŸRŒâ](q/¤øJ?ŸÅãO¢YuM»ÖHjëöÔ·Û -º7¡†§MÒ¿ñ•ÎÙ\‹á£TJ#ºcs+¥wÝצí:SÆÿ ¥Œy™'¡÷8•'éžš…è—ÔõSW6¼ÞH±Þ H!6ë_ilpy’6©h“Š6Y.ß9zÔf /ò•²§.鎾L©Òœf¼oÍf\g÷}ZçûîÔ˜@Ÿ t%”Ä)‡“\î]êoCÆÚ ¥^K_·Ñ;ÉTûRçršz*éqŠUoª}=ÛÔ^VbË7ƒIÃ}“#1 86–¾„z]o§´›±Þ7í—ù.Pª¾ ò9w]}Ì9§êñ„‡W*O+½ñ/]>á…`gVÍ=ßa|Þ|ü*O~“_jšäý¿Ö1ôKéÜûØ<,~:¼üõö,Ô2¨…ZÞ¨Åâ÷Ãééü.^—J-¶ùO}ÿüvËÇîóeKÞúÃ~»ëóÎ>ôýv÷çó“xhWç¾?ÅcÛýóú,Ú/Û—ÃiÛÎ'Ñ®Vç¿ÅCÙD~à :ˆ8IzþT¤‹,—×þ¶tÉRT«ª‹ ùbMNüô€ýÏÅR†¶ãS³Ú¬ì8Þs—`ʳrÞ—e©„5y}M1zzºœfg5ü÷¯€”Ĩ endstream endobj 63 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 64 0 obj<>stream H‰¤—moÛ8Ç߸ïÀ—Ë⣤E¯@“ööR ×âjàî…bˉvm+k)ɦŸþ†õ0#Ëéå^Äш"gøãpøçüþÊ×é²bïÞÍ?TUº¼ÏVìj¾(ØÍ|ñò±ù×ô.ߥU^ìØüì¬ø“]ñÄ‘dqh©™Vqç/´#ûYÓŸu¤u˜zÖWSˆ@±“ça2ý˜­ó]î–ªX³ê>c—g³‹/춻žÞnŠåïùîŽ-Ó2»>a'7‹Ïv*4RŽ# {‘š–«ô‘ZŸHÆlÖgqŸ—¬Ì–.ºUV.÷ùmVº Û€.æ(ÔÜ~X¥9¬Ò´Ì2‡¼^פ]‘`ÕkbYhûQðY{í¾„\Íê­‹=k¿ŒºÙ8ð3 +Í9›ñ€k÷½rWìf]À6ü.âç|³aûÇnªüa“±2Ý¿2`ß`¹›dqÃt»P&âuß«©†ÌŸÖ\¯êAdŒ[ÀH9/vÁí*Ö™÷Ðß#Û¬º/VŦ¸{ º¤]Ì‘YDÍîÿ{3}ÎÚЊ#þ½v †ä`ø€œ9Nš¢ÆF\Æã»Zwë“Œ–çNc$„á¬C[ÊØz“>À÷ö3¤ã8ãäMŒ%Ôí˜ð¯}^e#³åáøt;•úÒC_®l›ço›WÚºŒ|ý3KWcÓÿÇ6SP ©/¶,¶P€vUÀ.v®,•ÙÙæ´«l´èÏ@·Ùr ;K„õÎJYù²½-6ÇÉ·m.P‹R0£Ã€7ÒàêÃùââË?nÆ ©Ã’éà抓ÁðŒn® Â^qw‡8ÔôÇ*pU`]ÙUU¿©ÁCiiÇ5þ£U¶+ªìRýÒaºñŠ!š®M·±¢ÁÍÛµ€C_P¾Í'zSŠ(i²„GKÃáJ8ë$uíðð¤ÌÀHU¶·7ž§lãÁ!·É8ÊÞµ#>R€ 3 TB¯å§Ÿ@9½ôJð²Øøݬڱl“maSw²¢·ZÂË“7òt§“©P§ÌežS¢P÷¯é;R§OöPóg»»,öYqžZqnG;"eÃ7ž R€Œ€CPýÄò‹#×”×O†¡/'íËS'Á¬*{åØ»üGê4cn¯%ËÍã*[Õ%uÚXIT=„[åkü°fìa“.Ýꕵ޹»Ûgw)T{Á­¢÷f[¬²ÑŒ‡‹ŸÚ¼õ}¦È#He¯<0׿åw6¸ø…\½NÛ˜ìœmÔÅcõðX†6rÇ]eÚÐX¥¢AÁŸî*u3<‡R®Óp¢Æ i$êŸ}6Y¿ÒoáÐÐPµaÛ‰VQ7æ¦5]×M÷µ·×ø2ö±6”öýÿÔXÇÀÞ†kŸ7í³ë´é¾óöp0ÖWÂáõK™$vF¨ß&¼Å%9Nd/#]åå2™é–Ý=‰PØ5ÚŠ¿á*öWÅûuâ"…la—Ðå7øûÌ®nB¶‚d;HUCÂïÙ;»±ß×GïÀwh¿Oþ®®§—àl÷½¾j]Ÿ°98IiV¾®<ž›ŽavpPš¼Ýõty_äËWnp2> ò ŸHØÛ•óÛŠc¯'½iÍ'œÓMõÍ!—®,’¸ü„eÆà¦ÄrÄ©‘íãòÐ'Hè4­V…þàüàŒ¼ŒË*I¨¾$lækUZ}kXß/áíÇÉÕ”•phÂ!Ðœ¾BOÓ“Ÿî_N¸˜öŽXv=ÍwP¯ONnŸ{‹|ŸÂ-· ¸-àóóo![–.ʱr¹›ÀᇻUÀÚqmkØéÖL껣ñ¦kAÒØÚÛÞ”¸•Ç¸·DCwž7“{xc‚Åb·‹ T4ßÚzó½›Xt÷[5$Q¿wÝÜ ’X"Â%Â\"Ì%"\"Ì%Â\"Â%B\¢—„pI0—sI—s‰1—˜p‰—„rá!æÂCÄÌ>—¦µñÖôö±€)q+ââ›»¡ .0°û\ÀT¦?œÀ`šîM0áƒñÍÝØŒ$`$#í¸½á$!#1‰ÉHBF"2r@F2“Ñ„Œ&d4&£0EÈ(DFÈBÆ`2†1„ŒÁd &cƒÈ˜™˜‰1™˜‰ ™“‰0™ˆ‰™x@&!dL&!dB&ÁdL&!dD&¡dà˜EdÀî“‘išwMw \núdÀDd|s76!#&vŸŒ˜LÓܺˆ ˜·"2¾¹›’Q„ŒÂd!£…ÉHLF2‘Q2šÑ˜Œ&d4!£1ÉhBF#2z@&"d"L&"d"B&Âd &cƒÈD21!c21!21&c21!#21%#CLì>0™¦¹q×to‚I0™„Iúdë:ŽÉ€Ý'&"Ó4·ÁpDL‰[ßÜMÉHBFb2’‘„ŒDd¤@dÀDd|s76%Cä¯ÄòLL†è_‰õ¯ÄúWý+‘þ•ý+‰þ•Xÿ‚‰É,±–XK"€%Àr €%À `01¢€%VÀ+`I°D X°$ Xb &&C$°ÄXb ,‰–HËVD+,ÁDdÑÀ k`…5°"X! ¬X 6ï>°f”"’XIì{»ÓtÓ ÞÚX"+"‘’Èj ‘<öCÅ Y…¬ˆBö½ÛX°BVD!+¤ûžëPt‡iëL„‰ècEô±ï݆‚õ±"úX!}Ü÷\‡b0¬ŽQÇŠ¨cß» «cEÔ±Bê¸ï¹%ÆT°6VD+¢}ï6¬ÑÆ iã¾ç:”SÁÊXe¬ˆ2ö½ÛP°2VD+¤Œûž](š#*ëbMt±&ºØ÷nBÑXk¢‹5ÒÅ}Ïu(QÑXk¢Š5Qžw VÅš¨bTqßsŠÂT°&ÖDk¢‰}ï6¬‰ÿKf½å¸®äPÑ…%¾Õóÿm©d¥3öù$Ti°BL0ñ¾ù9%X…"qˆˆ¿¯×)qˆˆ"Þ7?§«ÐÃ!ñð÷õ:…ñpÀÃûæç”fj8DÃ!þ¾^§PÃ!hxßüwJ~P%iá §XøûzB ‡X8`á}ósÊ*I §H8EÂß×ï)I §H8!á}ósŠ± œâà_¯Sèà'¼o~NqV¡‚Sœ¢àïëu œ¢à„‚÷ÍÏ)É*4pŠS ü}½N¡S œ0ð¾ù9¥X…NpŠ€¿¯×)pŠ€Þ7?§ «Ð¿)þMñï÷õ:…þMño¿ûæ¿Sêƒ*Eý–è·D¿ß×ï)Eý–è· ß}ósʉ*Eì–`·»Eìq[‚ÛnëÔ*´mѶ%¶-±mѶEۖض`Û}ós m[´m‰mKl[´mѶ×X¾¿†mKm[´mѶ%¶-±mѶEÛ^ãé|møm©BÛm[bÛÛm[´í5² l[jÛ¢m‹¶-±m‰m‹¶-ÚöY¶-µmÓ¶M۶ضŶMÛ6m{¨Ò°m«m›¶mڶŶ-¶mÚ¶iÛkD•†m[mÛ´mÓ¶-¶m±mÓ¶MÛ^#«À¶­¶mÚ¶iÛ۶ضiÛ¦m¯‘U`ÛVÛ6mÛ´m‹m[lÛ´mÓ¶×È*°m«m›¶mڶŶ-¶mÚ¶iÛkdضնCÛm;bÛÛmÛ´í5² l;jÛ¡m‡¶±íˆm‡¶ÚöQe`ÛQÛm;´íˆmGl;´íж׈*ÛŽÚvhÛ¡mGl;bÛ¡m‡¶½FVmGm;´íж#¶±íжCÛ^#«À¶£¶ÚvhÛÛŽØvhÛ¡m¯‘U`ÛQÛm;´íˆmGl;´í\ÿë¹nÉòýþûut±t{[—{Ü»¬Ïßmïëï1÷hÉÏ{˜õý÷ëÉcàÛ{´ýúv}^Ûà[û(sÏ…cŽ½ v?Çˢ”1)c,cRƤŒ±Œi™`™`™2!e‚e\ʸ”q– -“,“,“R&¥L²LJ™”2É2©ešešeZÊ´”i–))SR¦X¦µÌ°ÌEÛí¯GÂ<_×®a—‘.#]†]Dºv@º÷¸e9Ý÷ë»ë€síø°ÊAè®ï¿g•ҽǭÊAè¾_×.8÷Qå t×÷ßKgG—*Î*Î*&ULª«¸V V T ©¬¬R%¤J°Jh•b•B•’*Å*Å*)URª$«”ViViTi©Ò¬Ò¬ÒR¥¥J³ŠH×NH÷·*'¡û~}wV©2RePåéÚ éÞãVå$t߯ë8÷Qå$t×÷ßKcC“*Æ*p®'«œ„îúþûq©â¬â¨âRÅYÅYÅ¥ŠKg×*É*‰*)U’U’UBª„T VI­R¬R¨RR¥X¥X¥¤JI•b•Ò*Ã*ƒ*#U†U†UZª´TiVQç{[æ~¿¾»ŒÊ5Q®‰rÊ5U®Q¹×¸U1Aî÷ëÚEãš×ĸFãš×hÜkÜ«q¿_×. ×D¸&Â5 wßüœBá^ã^%þ‹sÿ±`úÖÄ·&¾5úÖÔ·Fß^ã^¥þûà”dêÖD·&º5êÖT·FÝ^ã^¥W•ïˆ(¤­ míGÛýó痢 ek­V“¿Ç„­¶&°µl÷Ïï!êZ§k®½¦½ˆ“µNÖº°Ö?(âT­«jªu¨Ö Eœ¨u¢Öµ~¢ˆÓ´®¦ušÖaÚkB’ÖIZÒº±Eë*Z§h¢õd‚Ö ZÐz°=ëêY§gž½&!gœuá¬'‹P³®šujÖ¡Y!f˜uÁ¬7‹Ð²®– Z6`ÙkÚ‹)¤¬ e}X„’ •lP²ÉƉ"AÈ!Ù8P$èØPÇpì5¡dlcãD‘ bCTl@±,BÄ‚Øp¡aC 4lÀ°×„"$l°!„` 6T°AÁÍ"l°!€bú5Ô¯A¿üzM(B¾ùÂ×h¡^CõšÔkB¯y H¯I¼¦à5?(’´kª]“vMØõšö"Iº&éšB× Œ\»5Ì2×z/s­NÛ>ÌñU¦I™Æ2eš”i(sÍ>0ÌnäÚýÜ­eLÊË8˘”1)cRÆPÆXƾʄ” – – )RÆ¥Œ£Œ³L|•I)“,ÓY&¥LJ™”2‰2É2ùUfH™Á2ƒe†”R¦K™Ž2e†–9^,s”‘í}ý$×özm_ÓDòµn8ý¤1ÛOoãœls”’Ÿ`rm×s'ãdòµÞO“ër­Ó¤N“:Æ:Mê4©Ó¤Î„pà8ó´¯<.y\ò8ó¸äqÉc’gZxŸÇ¤jØ>!}’}Bú„ô éìÒGAìG—>]útöéÒ§KŸ”>É>)}ÔÄ~ é3Øç|±Ï>Cú é3ØgHe±ŸdñµFŸ.®íõÞI_ã£Ï\ï}Îûœ*c?)ãkÍ> qm×{¤ñµFŸ¹Þûœ'ûœŠc?Mú˜ô1ö1écÒ§IŸÆ>Mú¨ÏùaóëÀ;Ü_s=ÿÿØ}Áõµ?˜× ÿùéïþþã§_þùßýïß?~ýõ—?ÿÇ?¬ýøí·¿ý17Îù™žçi¬ã}]ƒ^Ë—½¯›?ø¹œþ[Ë÷v<êð´cÖ »GçáÆ«ëåûŸ×Îg”ùSÇ(ó·¾ßöl¯ÇžÃ5ÊÅÏ®ÿåÞÝ®~q”d•”*É*É*)UURª$«¤V¬2¤Ê`•Á*CªtTéR¥³Ê*óã¼W™KT¹$°Ý¶¶ŸÇÖá5ÊÛû.ª<»ÛÕ¬2?Ì{•¹D•[Ûu'²¬Ó5˱g™+dyv·»%Kc–&YÞØ®kìÒ¤KC—&]»4íâìâÒÅ¥‹³‹KC“.Æ.®]‚]Bº„t v éèÒ%Ø%´Kg—.]ºtéìÒ¥K¢KJ—d—®]» é2¤Ë`—!]º é2ØeH—ùÞ»Ì%ºÜŸûÏukÿym^³\_ûm÷Å.Ïîv7»ÌïÞå<ÙåþÔo×è²N×,çÞe®ÐåÙÝî–.Æ.&]Lº»˜tièÒ¤KcÓ.Î..]\º8»¸tqtqéâìâÚ%Ù%¥KJ—d—”..!]‚]R»tvéÒ¥K—Î.]ºttéÒ¥³K—.í….s‰.s.kÿym®Yº é2Ðeúžå@—¹D—¹F—µ¿f9Øe®vÑåÙÝî–.]štiÒ¥±Kc—vî]æ ]žÝínéBê6¡î\³ ­Ûĺ ÖmbÝFë6µn£u›Xw®Ù…Øm‚Ýì6Án#v›b·»M°;×ìBí6Ñnƒv›h·Q»MµÛ¨Ý&Úkv!w×éšÜmÂÝFîîO¿g1rׄ»s.Fïšx×à]ï½kê]£wçò¨ík…J&ú5ê÷9\ƒ † 6Á°æ¶ùqÛæ ›XØháçpM ›PØHáíá{¯D½WL$6Bø9\ƒÀÁ&6:x{ø$PDl¢`£‚ŸÃ5l‚`#‚·‡ïA:ŠMl$ðs¸€Mlðöð=È@ñ¯‰þ}× à¯ üÝ~âÇ^Ä¿.øuâ÷9¼qØמNûn߃œ{ùºÈ×)ßçp øºÀ× ßíá{Ca¯ {ì}× P¯‹zêݾq)ÓŽûj1¯Ó¼Ïáäu!oíÖÕ,’(R }þZÀëïs¸w]¼[»u5‹téRD´ëÔîs¸v]°[»u5ŠÄk// ¡nºÏáÒu‘níÖÕ(Ç^$ qnйÏá5H€¹!̭ݺšEŠ4)"È "÷9\ƒÀ¸!ƭݺšE ELŠˆpƒÂ}× npk·®f‘@‘"ÂÛ oŸÃ5t¢ÛÚ­«Y$Q$¥ˆØ6hÛçp چжvëj(2¤ˆÀ6Ûçp ׆¸¶vëjÉ×^$_,’¢Ú¤jŸÃkjSP[»u5Šä¹É“ER›Dl± ´¦ µvëjY³I1kÒ¬I³&ÌšbÖÚ­«YfM—"bÖ¤Y“fM˜u®Òö³Æ"bÖ„Y3¤ˆ˜5iÖ¤Yf«Óx¶ñjY³K1kÒ¬I³&Ì:W,’,"fM˜õÿ\ÖAnì8 Ñ}¤[¤Djî¿w:²Uµ$ÛL Þj‘YͺhÖ³^‹4‹È¬³Ö‹EJf-šµhÖ‚Y¯ Eîíýj)˜µÞ,R2kѬE³ÌzM(roïW³ÌZ¡"2kѬE³ÌzM,2XDf-˜µdÖ’Y‹f-šµ`ÖkbšµdÖ‚YKf-™µhÖ¢Y f½&¡YKf-˜µdÖ’Y‹f-šµ`ÖkbšµdÖ†Y[fm™µiÖ¦Y f½&¡Y[fm˜µeÖ–Y›fmšµaÖkB‘¦Y[fm˜µeÖ–YŸ}ìùLÒ›¥Û7›4ÕÚRkC­-µ¶Ôúìcψ²azoY…nm¹µáÖ–[[n}ö±gTIVIU¡\[rmȵ%×–\Ÿ}ìU«,U¡][vmصe×–]Ÿ}ìU®¿òy®KYîýýú³Ëø9ýú™Î.ŸùìrìcÏG—Ï8&×g˜c¿~â˜Ó°ŸiàöØÇž_ç1/”ùÌ Ç¼Pæüø÷˜2Ce†Ê •,3Tf¨ÌP™¡2‰2©2©2©2É2¡2¡2¡2©2e¦ÊL•™*3YfªÌT™©2Se eJeJeJeŠe–Ê,•Y*S*Ó(s9öüáV˜½Ž=¢K«K«K« e;^§l?Ó™åEØ>ëØãYåõÃ*/ÒöØßoG•×iÛÏtVy‘¶Ï:öxV¹FTy·Çþ~;«ª«„ª«« Uª2T%T%Q%Y%U%Y%Y%U%U%U%Ue¡Êb•¥*‹U«LU™ª2Ue©J¡J±J©J±J±J©J©J© •;Þ§r?ÓYåMä>ëØ#ª´ª´ª4«¼éÜñ>û™Î*o2÷YÇÏ*׈*oB÷Øßog•*ƒU†ª VsÇûÍ*oB÷Øßog•@•`•P•`•`•P•P•P•P•‰*“U¦ªLV™¬’ª’ª’ª2Ue¡Êb•¥*‹U«,UYª²Te©J£J³J«J³J³J©J©J©Šœ;àÜk:« 1÷^ÇÏ*CÊRîr‡”; Ük:« !÷^ÇÏ*CÆ2îq‡Œ;`ÜkB÷^ÇQEÂîp‡„; ÜkB•ü—ïóeÉ*ôío‡|;äÛ!ßøöšPeýûÁ)“U¨Û!ÝévH·CºÐí5¡J©J± m;dÛ!ÛÙvȶ¶´mü¨ m;hÛ!ÛÙvȶC¶ Ø6hÛkD• mƒ¶ Ù6dÛmC¶ Ø6hÛ¬´mж!Û†l²mȶÛm{¬BÛm²mȶ!Û†l°mж1U…¶ Ú6dÛmC¶ Ù6`Û m¯‘UhÛ mC¶ Ù6dÛm¶ Ú6ZUhÛ mC¶ Ù6dÛm¶MÚöQ%iÛ¤mC¶ Ù6dÛ”m¶MÚ6߬’´mÒ¶)Û¦l›²mʶ Û&m{¬BÛ&m›²mʶ)Û¦l›°mÒ¶™ªBÛ&m›²mʶ)Û¦l›°mÒ¶×È*´mÒ¶)Û¦l›²mʶ Û&m›¥*´mÒ¶)Û¦l›²mʶ Û&m{¬BÛ&m›²mʶ)ÛŸþ=e¶“¶/V™´í¤m§l;eÛ)ÛNÙv¶“¶½FT™´í¤m§l;eÛ)ÛNÙv¶“¶¡*´í¤m§l;eÛ)ÛNÙv¶ŸéYFDu'©»¾O#}§è;Eß)úNÑw^þ<«Ñ¾Sö´ï~ø>FøÂï~ϯ©§Ô¿#J‰¿÷:öÈRòü{~ü{M³ ¼$àIkÞ3ÛˆÀS>?þ{Íz¡Í"‚—¼ˆàýð¾fIÁK ^Rðùñï5o´Yt𒃼¾¯„— ¼áóãßk‚mHá% /Rx?|_# /YxÉÂçÇ¿×$ÛPÃK^Ôð~ø¾F^âð‡Ï¯YlC/xÄûáû‰xIÄK">?þ½¦Ø†&^2ñ½Ž=²P¼„â%Ÿÿ½¦~ЦÈâ‹‹,Þß×ÈÅK.^rñùñï5/´)ʸ$㢌÷ÃûšK4.Ñøüø÷šÁ6Äq ÇEï‡ïk¤ã’ŽK:>?þ½&؆>.ù¸èãýð}€\r ÈçÇ¿×L¶!‘KD.y?|_##—Œ\2òùñï5‹m¨ä’’‹JÞß׈É%&—˜|~ü{M³ ¡\‚rÊûáûI¹$å’”Ïÿ^Ó?hÓ´rËÊM+ï‡÷5-,·°ÜÂòùñï5o´ir¹Åå&—÷Ã÷5òrËË-/Ÿÿ^3؆bn‰¹)æýð}ÈÜ"s‹ÌçÇ¿×$ÛPÉ-%7•Ü©6bq‹Å-wº ]ÜtqËÅM÷T¹ø3ói¦1‹›,n²¸Åâ{{d±ø3ŸOKÅm7UÜPqüHÅM·TÜRñgæÓ,#ÇPüã<†(~ֱdzÌçö³Ìï|>MãÛßc`âψ24ñ³Ž=NCÿÎ|zà˜·ËËË„ÊË„Ê •,3T&\&Y&YfªL²LªLªL²LªLºÌb™Å2KeË,•™*3YfªÌr™b™b™V™b™R™R™b™Rq8^àðg<˼Èág{d™V™fjßþ Ƴ̋~Ö±G”yQÿ3ŸF™×ËeË –*3X†þÜŽ2Ÿù|ú­2Ãe‚e‚eRe‚eBeBe‚eBeÂe&ËL–™*3YfªLªL²LªÌt™Å2‹eJeË,•Y*³Xf©Ìr™f™f™V™f™V™R™b™R98Þpðg<˼éàg{D™kŽ7÷ƒOÿ­ÿÞ.Ç þŒg™7ü¬c(sÝÞ8æ…2Ïú~»Ê –,*3Xf¨ÌP™Á2Ce†Ë$Ë$ˤÊ$ˤʄÊ˄ʤËL–™,³Tf²ÌT™©2“e¦ÊL—)–)–)•)–)•Y*³Xf©L¹L³ <~T¦Y¦U¦U¦Y¦UÆ4ð5Æù¯`ÁÏ>öŒ6×õh3¨àg}¿žm|sÄàg{FkFA?ë¿×ÛÁƒ¾FÖ„Ÿ}ì™u†êPÂÏú~½êPÂ×È:¢ð³=³Nª-ü¬ÿ^o ZøYG~ö±gÖ™ªC ?ëûõªC _#ëˆÃÏ>öÌ:¥:ôð³þ{½=ôð5¢NÄÏ>öÌ:­:ñ³¾_Ï:A_#ê„HüìcϨsͨ4ñ³þ{½M4ñ5²ŽPüìcϨs:A?ëûõªC_#ëˆÅÏ>öÌ:¡:tñ³þ{½]tñ5²Ž`üìcϬ“ªC?ëûõªC_#ëˆÆÏ>öÌ:Kuhãgý÷zÛ8hãkdáøÙÇžY§T‡:~Ö÷ëY'©ãkDŸ}ìuR>Nú8åã´“>¾FÔIùÙÇžQ'%ä¤SBN 9)äkdùÙÇžYGFN9eä´‘“F¾FÖ¹Œ_/UGJN)9©ä”’ÓJN*ùYçÖË®ÇnÛŠ¢ïó+ô8êXÉC2Hó'-\ÀIÏ[]†=vØ3=A‘ß#éR—{É3-Š0''äÙZú¸‹®É²Ÿ<9Á““zr‚''zrROöRéÐ) SN0夦œ`ʉ¦œÔ”½:6‚N¸r‚+'uåWNteSW6¸²×BÇàÊW6¸²©+\Ùèʦ®lpe JÇàÊW6¸²©+\Ùèʦ®lpe¯•\ÙàÊW6ueƒ+]ÙÔ• ®lÖèØVÕ ®lpek®¼/W:teSW6¸²×IâÀ• ®lpek®lEÛûö £®lpe« W6¸²Á•­(¸²Ñ•³ºr†+{-t2\9Õ ®lUéÀ•3]9«+g¸rž•N†+g¸r†+çIèd¸r¦+guå WöZéÀ•3\9Õó,t2\9Ó•³ºr†+ç:på WÎpå•\9Ó•³ºr†+{­tàÊ®œáÊ9)¸r¦+guå WÎtàÊ®œáÊ9+¸r¦+guå WöZéÀ•Ûò=\9¥WqŠºr+—Ié¸r+¸r…N+ºrQW.pe¯…N+¸r+—Iè¸r¡+ue/ó¼÷—RaEÀ‚:·å{:¨tJ— ð Ò…*]ÒWóÜ¥…J—xPé¶|•.QáA¥ûé[;Óú¸–J+ƒTº-ßã@¥‹)¨t?}‹S”TºÐJ·å{¨tÉJ*ÝOßâT¥•®#è@¥Ûò=TºT¥•î§¯qê$t*TºNJ§B¥Ûò§B¥ë(t*TºŸ¾Å™…N…J× t*Tº-ßã@¥ë,t*TºŸ¾Å‰J*]#è@¥Ûò=Tº¥•î§oq’ÒJW¨t…J·å{¨tU•®Pé~ú'+¨t…JW¨t[¾ÇJWUé •î§oqŠÒJW¨ô¹W@*]U¥ÏíZúå-NÇžÎRöt–º§Óõ×qûò=TºªJWUi™¾Å™z:KY%Žªt×?Å™„ÎR÷t–:èò(q&Ò J'€N:Aè,ñ«Ä•îÚûö •N:t"èDЉJ'‚N$S::::: t’ÒI c¤“•N:t2èdÐÉJ'ƒN&ªt*èTЩ SA§€NQ:t*èL£Ð™T¥Ó¤*Ýõ·qmy‹3©J/uÐåB§Ÿ¾Å™…Τ*½ÔBgR•Þ—ïqT¥—Z–«JËô-NP:t"èÐ  @Ç]Ùt½â Ä“Ož< xðDàqY–<|ù˜ò1ðÉàcàcàcàcàcàcäS”OŸ>| ødðÉà“Á§OU>êËiÁ§‚OŸ >|*ø@˜Ó,¼”ÂgVaîúÛ¼Y…yÉ/|¼>³³Œßòˆ1/¥òQcîú§yjÌK-|¼>³*³ŒßòDåÁ'‚OŸ>|øð3Ïþã––þœ›šÝDR\äeÃS×Ï臋·?<:\ ~CçiùóÍÅåp·lôÃÕ)ôÓãðôÅ:~†Oôµ9 kžûf¿ú¿ƒ9û½+'&ž1º8O~>_yjW¾]õÔEšÖH_­¯|vçò[47¿rºòg7¿ý~÷õðãíðêÝ»O×ï^ݽ¿½ä^üóÕo×çñÖÆÏg…³-óZϳ¿¿qMý…û¢¦ÿïîÙ²µ?Ñ­Ìÿ?½gãðW_>—…©#é¸ ý¿ÜË——Ï}Ìôò‘"9ßðÀÝ÷^Jò&d7ÐTëz1 þõðñöÍõ×ÃéŸû††û‡ÆöŒù~’câì?cÁ?<Ëø›Û›Ç‡÷ ¼âÞºX†dËËéþôûÝúðéÓ&OËôå§es¸²èǯ¨žßw óý×0ïë&ÿ9Ęáíí‡7¼@ý%Í÷¼÷?û¶>ÝÉ_«ÿÃuÍ®µ¿iKÛ/œÏ^êy-OíU>œ—Ï˽ÕqÖ~Õqî7ï‡o?¸ë鱋³N»ëáõ¼á©½;-ß㬇Ӯ¿œ]Ï«OÝnóq2èdÐ)J'ƒN :YèdÐÉ:t*èT¥SA§‚N"t èTÒÙNç8Ûáô¼b;¼î¶v×–·8ÛáTúAV ¾Å™•Îv8íVÌB§µ÷q³ÒÙ§]êé´n·9éÐ  •N:tÖ³k¿\ñ„ž< x’âIÀ“€'Ïzv=/à“| | |²ò1ð1ð1ð1åcàc>| øåSÀ§€OŸ¬|2ø”Ÿ >Uùl‡×ó†|*øTð©Ê§‚O%ŸíðxγN»<“ðií6¯-oy¶³i×…Okw»ƒÏvxìòÌà„Okïófå³M¥ßóií}÷ùÀ'‚OŸ¨|"øDð à”OŸxà“À')Ÿ> |ø$å“À'ødðÉà“•OÞùœJÅc;žS)t tòN:Ué”ΩT8e‡s*…M›B6aT6^ ¯{6­}×Vïiª²©Ê¦*™½¥™”×Â&̦µ[šIÙxݳñ²gÓºûÞÓM›6AÙe”gïÙxÙ³iÝno²/ørP_QÙ@—CT6QÙ@—ÃA—t9@—ƒêr0e[IÙ$e[[°å[jË!+ÈrÈÊ&+Èr8Èr€,ÈrPYUÙÀ•={-]»(›S·Ûl"\9•£ºr…M„*{‹´{6­»ï}PåUŽP娪gaaÊž½gãeϦu»½É¦aÊQM9eQ^–i ›6OŽðäOŽêÉ1)h²g6jÉ­ÛíM6°äKŽjÉÑ” $Ùka£ŽÜºûÞGŽpd¯SÿFuäÖnã Èž]ب!·n·7ÙÀ“qŸ&©!·vAöZب·îžæàÇ ~ìµ°IêÇ­}— Ç¶g“ÔŽ[·Ûlì8°Q;ní6rìuÏ&©·î¾÷ÁÜØke£nÜÚmÔØà 5ãÖíö&˜q2°Q3ní6bìµ°Q/nÝ}ïƒ'x±×ÊF½¸µÛ8x±‡6êÅ­ÛíM6ðâTÁF½¸µÛ8x±×ÂF½¸u÷½^lðb¯…©·öiœÁ‹=¬°Q/nÝno°1x±ÍÊÆÔ‹[»¥{ݳ1õâÖÝ÷>x±Á‹½V6êÅ­ÝÆÁ‹=lÏÆÔ‹[·Û›làÅ–ÀF½¸µÛ8x±×ÂF½¸u÷½^lðb¯•zqk·qðb+lÔ‹[·Û›làÅVÀF½¸µÛ8x±×ÂF½¸u÷½^lðb¯•zqk·qðâ“YGÉr¬8Egt£2%4¨žÿo볟 œ ÚŽ°W§‹;]ÜÅÅýrqˆ‹ãa› ‹×ñï¹]tqˆ‹ãrqˆ‹ÇŒ6A¯ãõœ¸8èâ ‹C\—‹C\.müïñãBgqqÐÅA¯Ó}÷åâ™mÚ_?·il#.º8èâÇåâGH›`›`qqÐÅA‡¸8.‡¸8ÄÅcFº8ÄÅA]ââ¸\ââùl“tqˆ‹ƒ.º8ÄÅq¹8ÅÅ).óÙ&éâ']œtqŠ‹órqŠ‹S\=îÖ6&mÆœÿþ„}\Z9[9[ý¾ÞÛ™´3¶3¶3i§n¶Ï°kžÛ6i×Ø®±Ýïëw.ù]íœí\Úo·éG«¹MH«`«`«¾Zý¶élÓÙ¦K›Ž¿§¹MJ›”6É6É6)m‚m‚mBÚäÕ¦Øæ¡›ç|¶y>lSҦئئ¤Mi›ça›‡nžóÙæ›÷×k›nžãÙæ¡›ùöw›WÚ˜´1¶›÷×{¸yŽg›‡næÛßm\Ú¸´q¶q¶qiclclcÒƯ6MÚtiÓÙ¦³M“6mÛ4iÓ®6!mBÚÛÛ„´élÓÙ¦K›¸Ú¤´)iSlSl“Ò&Ù&Ù&¥Mj›÷Ã6/Ý<ç³Í 7ï¯÷6Å6Å6t3ßþnó°ÍK7ÏùlóÂÍûëµÍ 7ÏñlóÒÍ|û»I“6Æ6Æ6Æ6/Ü<dzÍ:=îÖ6.mš´ilÓØÆ¥³³K¿ÚtiÓ¥Mg›Î6]Ú4¶ilÓ¤M¿Ú„´Ii“l“lÒ&Ø&Ø&¤M\mJÚ”´)¶)¶)i“l“l“Ò¦´}ØÆÄÍF7ݼ¾^ÛÝlt³‰›ñöw›—mLÜlt³ÑÍëë½ Ýlt³‰›ñöw“6âd£“N6“6t±ÑÅëtßmWq±‰‹.6ºØÄÅF]lâb»\lâb]lt±‰‹.žã{|,.¶ËÅ&.6q±ÑÅF›¸Øèâ9¾ø)ls¹ØÄÅ..vºØéb]<Çsq±].vq±‹‹.vºØÅÅNÏñÅOA¿\ìâb;]ìt±‹‹.žã¹¸Ø/»¸ØÅÅN;]ìâb§‹çø⧰Íåb»¸Øéb§‹]\ìtñÏmÄÅ~¹ØÅÅ..vºØéb;]<Ç?…m.»¸ØÅÅN;]ìâb§‹çxn#.öËÅM\ÜÄÅ.ntq;]<Ç?mÚåâ&.nââF7º¸‰‹]<Çc›&.n—‹›¸¸‰‹]¼Ž×sââFÏñÅOa›ËÅM\ÜÄÅ.ntq7ºxŽç6ââv¹¸‰‹›¸¸ÑÅ.nââFÏñÅOa›ËÅM\ÜÄÅ.ntq7ºxŽç6ââv¹¸‰‹›¸¸ÑÅ.nââFÏñÅOa›ËÅ]\ÜÅÅ.îtq¹9ŽÏ6ëtß}¹¸‹‹»¸¸ÓÅ.îââ1Îm´Y§ÇÝÚF\ÜÅÅ.îtqmŒmLÚ\.îââ..îtq§‹»¸xÌhãlÓ¤Íåâ..îââNwº¸‹‹ÇŒ6tñ:Ýw_.îââ..îtq§‹»¸xÌhC¯Óãnm#.qqÐÅAwqñ˜Ñ†.^§{›ËÅ!.s;ÿMºxÿž qñ˜Ï6A¯ÓãniââðÅ6tñ:^ω‹Ç|¶ ºxî»/‡¸xÌlC¯ãõœ¸xÌhC¯Óãnm#.Ž.mèâu¼žmèâuºï¾\ââ1³ ]¼Ž×sââ1£ ]¼N»µ¸8JÚÐÅëx='.3ÚÐÅëtß}¹8ÅÅcF›¤‹×ñï¹mèâuzÜ-mR\œ/Û$]¼Ž×6ââ1Ÿm’.^§ûîËÅ).3ÛÐÅëx='.óÙ&éâuzÜ­mÄÅÙ¤ ]¼Ž×sââ1£ ]¼N÷Ý—‹S\þ]'Zÿûof­d­d­”ZÉ:!uRê$þªæ:Å:&’¶ê؇uJêë”Ô)©SZÇÖ1±´ÑÒFK¯¯×:FK›XÚÄÒxü»Î+uÄÒFK-½¾ÞëÐÒ&–6±4ÿ®ãRG,m´´ÑÒëë½-mbiKãñï:Mꈥ–6Zz}½×¡¥M,mbi<þ]'¤ŽXÚhi£¥××{ZÚÄÒ&–ÆãßuRꈥ–6Zz}½×¡¥M,mbi<þß:þaK;-í´ôúz­ã´´‰¥],Ç¿ë<¬ãbi§¥–^_ïuhiK»X×1©#–vZz¯÷LêÐÒ.–v±4ÿ®ãRG,í´´ÿŸì:Ö‘ì6(šë+ö ¤éG²X –8Pä/0 ýÿ‘«§›O¼·#£PûHÎ…Ös––Þ_ßÏ¡¥»,Ýei\þzN¨Ž,ÝiéNKï¯ïçÐÒ]–î²4.=gªŽ,ÝiéNKï¯ïçÐÒ]–î²4.=g©Ž,ÝiéNKï¯ïçÐÒ]–î²4.ÿ~Îøb!KZzÐÒûëýœAKYzÈÒ¸üõœ‹u†,=héAKï¯ïçÐÒC–²4.=§©Ž,=héAKï¯ïçÐÒC–ÞëûðöQg¨ŽìÊÔËQæ½=Žv)9¥ä¤’“JN)¹æÀ–eË|9e䔑“FN9eäšÏ2]eË|9%䔓BN 9%äš[– –ùðqÊÇ5Çù÷/éã½Þ×ÉÇ5ŸeÄã÷ö8Úe¤ãõõüòÏ/u¼×û:é¸æÀ–eË|ØxÉÆ5£Ì¢÷ú}Ý’k>Ê,Ñø½=ŽV™%¯¦2”ñ^ïë$ãš[”yoï£?\¼äâšY†.Þë}\\óYF,~o£]F*^¡2Tñ^ïë¤âš[–,óaâõ'K¿ß2†$Þë}›H\óF"~o£ï›_Où“¤ßOYÊBïõ¾L®9°e–d–ãæçSÆ××Yå9žUžóQå^¿.»?~?å9ŸU(á½=Žn|Êã¬2¾.TyÎ×yÚuV¹?¾Ÿò8ª<§Ž§<Î*¸ùõ”Æ*MU«4ViªÒŽ*Ïw³Jc•æ*U†ª V¬ÒU¥£JW•Î*ÝU‚UBU‚U‚UBUU†ª«„«LVIUIVIV™ª2QeªÊd•é*‹U–ª,VY¬²Te¡JªÊb•¥*/Tyç#˃ÞÝÛãleiÌÒ•¥´‹·tviêÒÐ¥©Kc—æ.ƒ]†º uì2Ôe KW—Á.Ã]‚]¦ºLu™ìêèêìî’ì’ê’ê’ì’ê’è2Õ%Ù%Ýe¡ËEé>gt¹¾Øe©ËB—¥.‹]–º\t¹ÝçŒ.¤{½ßrÒ}>].HW¿Þr±KS—¦.€îýõý–ºÏ ].@W¿ÞÒÙ¥«KW—Î.]]:º4uéìÒÙåª_^ñüóõ¯W=æ*NÌ×ÿÑ^õîuým|^öŸŸþöÇo?~úåÿýçÿþýã/ùåßþþû+üúë_¯ÅU¿wëó×÷öW|ß×?«s>çÇk~ïß¿¿~¼~´çÜ/¬?î×yøq÷ëg‹çõçcê¯5?<æ½ß·½¿¾S¿æÏÇÒÏßÛãð‹™,3U&Uf²ÌT™É2“e¦ÊL—Y,³Tf©Ìb™¥2É2É2©2Keê÷ïY¦F”©ß˜(³÷ïÛö×û1Ï_öÖ£Ìy÷ë1ÊÔˆ25£ÌÞïÛ.–yþ¶?ó@™½=W™Æ2MeºÊ4–i*ÓX¦´üšišÓ ¦J3”f0ÍPšÎ4v¼¦«Íp›`›P›©6Á6¡6Á6¡6¡6á6É6©6©6É6©6“m¦ÚLµI·Yl³Ø¦~w²Íb›¥6‹m–Ú,µYjs=ЦF´©möþ}Ýþz¿æù‹ÿxMh³×ÇélS¿Ï65²Mc›½ß×]lóüÕa6{}Ÿ~¹Mg›®6]m:ÛtµilÓÔ¦©Mw›Á6CmBmÛ µl3Ôf¨Íp›É6Sm¦ÚL¶™jljj3Ý&Ù&Õf©M²MªM²MªMªMªMûB›Ѧf´Ùû÷uûëû5‹m–Ú,¶9/½æ65¢M»Øfï÷klSóÙ¦F´Ùëûô‡Û4¶ijÓÔ¦±Mc›züÙ¦F´Ùëãtµ¡ˆ›DÜ$âF7‰¸QÄ5²HÜLâF7‘¸‰Ä$n"q#‰kd™¸ÙÄ&n2q“‰MÜdâF×È6Bq3ŠQÜ„âšWý;îyþX?žë#ÎqåþÓÿâaߧw*·K¹õ°~ž^—§×ŸîçéÝlídk[Ÿÿ:øöÐÛí¾N÷Õ8Îÿƺܷ÷ïÿD»ÜWùþaöZîÛëãtý¬tß(ç¯rßÞïë侚{b¿O{}¿Æît_h3ä¾½_7ä¾zìÙfÈ}{}œÎ6ƒîMmä¾½ß×É}5Ÿm†Ü·×÷évß ûjd¹oï÷ur_=mä¾½>NWºoÄnÓ^ÇË}{¿¯“ûjF¹o¯ïÓí¾A÷Õ8ð¹oï÷ur_=mä¾½>NWºo,µ‘ûö~_'÷ÕŒ6rß^ߧÛ}A÷Õˆ6!÷íýûºûÆb¹o¯ÓÙ&è¾ú_´ ¹oï÷kä¾x MÈ}{}Ÿn÷ÝW#ÛÈ}{¿¯“ûâB›ûöú8]mè¾j#÷íý¾Nî‹Î6rß^ߧÛ}A÷ÕÈ6rßÞïëä¾l#÷íõqºÚÐ}‘j#÷íý¾Nî‹É6rß^ߧÛ}A÷ÕÈ6KmÛ,µI¶IµIµ±'8lóœÏ×ìýûºýõ~ÍüB›Ñf~±Í´+']Y#ÚK6^¶ñ¢—l\3û õŽWWéxIÇË:^Ôñ’ŽkfŸø?—õ–#ÉŠDQtF-wì6¨;ÿ߆ò€äìO±Ø)U-ô+Ð>.ø¸èãR|rAÈE!— ¹ ä9kŸB¹úÀÈ#ŒlÙ5òšï>çü÷Þ¹þÛgÍwŸ5ß}Îùù>”l(y!û4ésÎÏ{ÊäµoÉ>êäs~}}LûØúð>·Ç‘Ë‘Ë‘ëwý¬gÈgÈgÈgÈgÌ7-;®uùùù~×Ï>Ž|Ž|Ž|×óß>ù×kíÓÑ«£WG¯D¯DŸDŸDŸ¼ÿ\kŸ¡}ú ôè3Ч£OGŸŽ>ƒ}Jú¼Êé5KŸ÷AŸBŸBŸBŸBŸBŸ÷•>¯‚zÍÒç}µÏ¾¾÷yíó*©Ïùõ}íó6ícècècÚg_?û4íó*ªÏùù~c×>Ž>Ž>Ž>Ž>†>†>†>Î>¡}}}}}}}}‚}ºöéèÓѧ£OGŸDŸDŸDŸÎ>Cûúúú ôè3Ðg Ï@ŸöHŸ¦¸^³ôiöÙ×Ï>…>…>ÊkyþÛç•>My½féÓ”×çúÞ§)¯×,}šòZžÿö1ícècècècÚ§)¯×,}ZCc×>>>>Ž>Ž>Ž>Ž>Î>©}}}}}}}}’}ºöè3Ðg OGŸŽ>}:útö)íSèSèSèSè3Ðg Ï@ŸB{¤×^x½¯ï} ¼6ðÚÀëûùoŸ&} ¼6ðzŸŸ÷šö1ðÚÀk¯ïç¿}LûÀÓOêgƒŸ ~6øÙàgƒŸ ~6øÙègS?ülð³ÁÏ?ü¼æv߇Ÿ~6õ³ÁÏ?ülð³ÁÏknú{´ýlêg‡Ÿ~vøÙàgƒŸ×,ûÀÏF?»úÙág‡Ÿ~vøÙáç57ý=ÒÇégW?;üìð³ÃÏ?;ü¼fÙ~vúÙÕÏ?;üìð³ÃÏ?¯¹éïÑ>ô³«Ÿ~vøÙág‡Ÿ~^³ì?;ýìêg‡Ÿ~vøÙág‡Ÿ×Üô÷húÙÕÏ?;üìð³ÃÏ?¯YöŸ~õsÀÏ?üð³ÃÏknú{¤OÐÏ¡~ø9à瀟~øyÍ÷>?ýê瀟~ø9à瀟×Üô÷hú9ÔÏ?üðsÀÏ?¯YöŸƒ~õsÀÏ?üðsÀÏknú{´ýê瀟~ø9à瀟×,ûÀÏA?‡ú9à瀟~ø9àç57ý=Ú‡~NõsÂÏ ?'üœðóœÃõ\úìóó}ú9ÕÏ ?'ü¼ÏÏ{ðóœÙçÕ>ûüú>ú¨Ÿ~Nø9áç„Ÿç¬} } }èçT?'üœðsÂÏ ?ÏYû8úúÐÏ©~Nø9áç„Ÿ~ž³öŸ÷ùù>ýœêç„Ÿ~Nø9áç9køyŸ_ßGõs‡Ÿ;üÜáçüósûÍÚ~Þçgú¹«Ÿç÷¿~Þçû½þççö›¥O‡Ÿ÷ùõ}íÓÕÏ}úXöŸ÷ùy¯iŸ9KŸ?ïóó}ú¹«Ÿç¨}àç}~ÞsôqôŸ÷ùõ}ôQ?÷DøyŸŸ÷}}àç}~¾O?wõóµü¼ÏÏ{}:úÀÏûüú>ú¨Ÿ{¡ü¼ÏÏ{}úÀÏûü|Ÿ~êç9JŸ?ïóýÞx´Ïœµü¼Ï¯ïkŸ¡~Mû øyŸŸ}^í3gé3àç}~¾O?õóµü¼ÏÏ{†>¦}ü¼Ï¯ï£úyúÀÏûü¼çèãè?ïóó}úy¨Ÿç¨}àç}~ÞKôIôŸ÷ùõ}ôQ?>ðó>?ïuôéè?ïóó}úy¨Ÿç¨}àç}~Þ+ô)ôŸ÷ùõ}íSêçzµOÁÏû|¿Wö)ø¹àç‚Ÿ‹~.õó¥OÁÏûü¼×´OÁÏ?ü\ôs©ŸËÑ~Þçç=Cø¹àç‚Ÿ‹~.õóµÏüÿîþ\ O ø\àsÏE>—ò¹:òÌÿîîÏuÔIÔž z.蹨çR=ÏQë ­3Pg ð\ÀsÏE<—àÙŸGê¬ùúÜ9>ÏÁÎ;ì\°sÁÎþˆ×²Î{×9Ç¿çÎíß:k¾ë¬õ«éý»Ž¼þ­Ó´Ž¡Ži•ó¹}ÖQ9¯Ùå¾ÊY^ÿÖq­ã¨ãZÇQÇQÇQÇPÇQÇY'´N¢NjD@@@@`®u:êt­ÓQ§£NGDŽ:u†Ö)Ô)­S¨3Pg Î@:P³¿¢æ5J9ßu^Eó¹½×yÔQ4ŸóëóZç4û«h^³|NÍ|nŸuÔÌk–:¯šY^ÿÖ1­c¨cZÇPÇPGɼÖ×:†:Æ:®uuBëê8ê8ê8ê8ê8ë¤ÖIÔI­“¨“¨“¨¨“¨“¬ÓµÎ@¡uêtÔé¨ÓQ§£NgÒ:…:¥u u u uêê€ËÞ„ËÞ”Ëk¾?×TËçö^§©–×,ušjY^ÿÖ-¯QêÌù®³ÏsŠå5K¦X>ç×çQÇ´Ž£ŽkGCCCCcÐ:ñ?ós¾F+ëwûlˆˆçˆˆŒ—ëæ߶ñºÆëˆ÷»}ÖIÄKÄKÄ»^ÿÖµþû7j­¡µj Ô¨ÓQg Î¸ÿVk’:J›RÚÔ)Ô)Ô)Ô)Ô)Ô±Wê(mJi¥÷í½ŽÒJ(}¿þ­Ó´(mJi¥÷í³(m ô>?Ÿo¬ãZ”6¥´ÒûöY”6PÚ@éûõoÐ: ´)¥ ”Þ·Ï: ´ÒJ߯ët­J›RÚ@é}û¬J(m ôýú·ÎÐ: ´)¥ ”Þ·Ï: ´ÒJ߯ÿ[Ç©ã ´+¥”Þ·÷:J(í ôýú·Î+u”v¥´ƒÒûöY”vPÚAéûõoÓ: ´+¥”Þ·Ï: ´ƒÒJ߯ë¸Ö¥])í ô¾}Ö¥”vPú~ý['µ(íJi¥÷í³(í ´ƒÒ÷ëß:]ë€Ò®”vPzß>ë€ÒJ;(}¿þ­SZ”v¥´ƒÒûöY”vPÚAéûõëÄ#u”¥t€Òûö^'@饔¾_ÿÖiR'@éPJïãó\Ó:J( ôýú·ŽiP:”ÒJïÛgP:@é¥ï׿uBëÀΡvØ9`瀕VX9‚uÔÊ+‡Z9`倕Vž³û>¬´r¨•VµrÀÊ+¬<ׯ¡÷µ­jå„•S­œ°rÀÊ+ÏYëÀÊA+§Z9aåT+'¬œ°rÂÊs}©“°rÒÊ©VNX9ÕÊ +'¬œ°òœ¥Î>?Ÿ§•S­œ°rª•VNX9aå¹¾Ö•“VNµrÂʹ­üìQëÀÊ +ÏùWçwVNZ9ÕÊ +ç¶ò³G­+'¬<ׯ¡÷µ­œjå„•³´¬œ°rÂÊsÖ:°rÒÊ]­ÜaåþH+wX¹ÃÊs}©Óaåþ®ë¦·©# ãøÞŸb–É¢Üy?g¤(6,Z)m%ß dBƒDŒ%Úoß3¾/Üçùdì™ÉϘüáVle¡V–:B­¼¼z½µ²Í #ÔÊÛÓ§ë`+ µ²$Ô¡Vje¡V¶ë£µ²p+ ¶²P+KAje¡Vje›Q‡ZY¸•[Y¨•¥¢µ²P+ µ²]u¨•…[Y°•…ZYu¨•…ZY¨•mFjeáVle¡V–†:ÔÊB­lsØ.+áLË›ÍÑF±”•JYØ(•²R)Û\qhæåusîdÅNVêd ³,¯§Q'Û¼•±»ƒÌ¼¼Ùœd°’•*Y3ÊP%+U²Í—Q&¡ 7²b#+5²”¡FVjd›A&“LA.dÅBV*d”¡BV*d›+.£LEîcÅ>¶±n?}ª(3/¯§QÛ 2B2Š2\ÇŠuÜ|O£_Ïod–åõ4ªc›+.£LCnã†ml#È´2ËòrZ£6¶y+Ó<ÊÌË›ÍQ¦a·D2 eÊ4*c›+.ƒÌ¼¼nÎ]Ü°‹mD™Œ2™d¨‹m™D2e¸ŠVq«$ƒU¼,¯§QÛ\qe Êp7lbQ›xY^O£&¶d(‰çåÍæ$ƒEÜÉ`/ËëiTÄ6W\FEêá⡇û¸•éóFf]žO[_=_¦Ï ƒ9¼,o6Ox¨áâ#Èô9nw‹ ³¾z½LØÊô1ÃeÂVΞ.“P&‘LB™D2‰dÒV¦ßeÊ$–É(SH¦ L!™L2e2Éd”É,SQ¦’LE™J2•d*Ê’©(SYFPFIFQFIFHFPFHFPFX¦¡L#™†2dÉ4”Q’i(C \4p e4𺼜°û\qd40œ=]¸ c³Ôívi–—¯·î—š ‡O·IH“‰Æ"n“É&‘MB›D6 mÛ´)dSȦM!›‚6™l Ú¶©h#d#d#dSɦ¢M%›Š6•mm”l”l”l”lm„lm”m „KÄî3ØDO6lÚ4²ihC%\"”pÁÆf°‰˜ÂëË—ÛDHá~y°‰Âpøt›ˆ6‰lÙ` ¯/_o-ÜG°‰ÐÂpøt›Œ6™l2Ùd²Éd“Ñ&‘MFŠáh?Ôj¾ý}¨vè¯ûö'„¾ßºnÛôãžvon7¿Ÿ^ÜÝÝðpøý‹ÍÝßïßØ×½û²Û»á?zÜød_]tã®7óökzæTn= |rã·Ý÷Qîǯ»aÓüúWÞÛwb›ø¾‰ý[ú&ã§Ý»¼¿yx{kÏ;Î÷:½;¯§x率?m)î§ Þ=ØŽ_í÷nù6Kîÿ Z¿ëþ¿2õ¹Ú› ½—¥õåãnxýãòütz¼tƒ×—ËéñŸÏŸÜ»a¾\Îß܇aüïûg7ü}úòürº<Ÿ_ܰߟÿuïÂTÁÑ>ÍÅ©}Ì«z{Gìýª¾¸3äð×Á®wש“Žc؈HIö°FÃéßÞ+'Üë£ùœd?}fÛgçÝN¶¿Þ›Ÿý)’fÑóÓü„ù¨ß®g…~ÖõaLýö4Åå=(Ñm߀ëÿ 03çuu endstream endobj 65 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 66 0 obj[836 0 R] endobj 67 0 obj<>stream H‰œWmoÛFþ.àþÃ|”ójß¹<l%>¸8¿´Ð;(†AË´ÍVU‰‰ëþú›%¹IíÒI D¡4Üyyvæ™™ÉٮȞ’e>LΊ"Y¾¤°˜Ìó-ÜMæoÛ&·És¶IŠ,ßÀäü<ÿ,Ö$`¨&B’ŒH­4ΈTÁÝÇ矦0šÜLar5¥P~£ðMæs æO(/?^ñæ{`Ôþÿ—ýi‡_åøHë'" ÆçTÀ|=ÃÉü7«UúNñEJ¥ÕZ>r«šs¢Tdu>ŽÆ—›"]ÁŽž_Ý^ÂyºY¾¬“ÝïûZÑ‘chMĪ>]šû<Y,bSb¡AHAÐ;¢`—ŽžFŸ¯0ìòcrk¾š^~Âã5:Uøµ»¥·º4ED„àZ{Ôj®£Æ§:êH)ë:jI8‘„Áì~q6_Þ\ßÝg›Çoλ¾qÖ5N[Æù*][÷a C„Ãü"[¥p9¹mº{Êwk̇7H`ŸmžQ²ÝåËt¿'0Éö°MŠ"Ým`­³åŠ—Š·m¶Lðþ±Löiété‹:øW)qÊÃ_?ÆÅKR@¾Aí æîòë*ÙÁ—ñ:Ù£ò/'ΦóhÉjùSi=%‚†‡¡ie‘‚†Æ„›šyò€ÄMHâ #²:Æð®òWØ¿ä¯É>[Âcú”m2[mˆ[sZ7§«Ì0$V¦ÎÄ‹ìùë.ּ̦”}[±úexxAXçk¬é%|ËÒW‹=í­™S,×PßÀ£½Ô]& ¡)¼h–Z™ªÒc)‘ˆK$c‡¢Ž""\z¯ÓdÁ=6É0'½æœfÁ°D—Ý‹q²‡ýÛ ããõC¾ÊþB+¸›ÿt°0Û&›Æˆ ÇÄ¥‹IêvLÂpóžÝ‹“S5®/wì±XnC"ê"n?LÅ&-¡ÁœcŠhS½SŠæ¢à³¹‹6g¹@Ië¨eð(d¶%4¼ò®O·¶Ëß™&Rv]òKb¿´u¹z —X“K—K‰“;ÜÓUºN7E²+/½ä-ì|¶¯u/ý`9z?­ž™pZU©Â›T‘Ö嬛J75¼™ÜoLh¿Ôí—vs<îFÌÛX‹C'ì`‰„-%‰i]ºØSïm¸ÝeŽÐü°K“Çn!w\`4ìCÅm @³Bªûf³#»™5 3PÛ _I/_aÐÒ±>r8Þw¾9Ð)k˜AèV+e/Û¥û-ìS°É7«|ù;6NXçiÛMw÷<Æ0«ûãÚcçîýRw÷~ixþð´Ãm5ú¶™úçÿ›þù£Ê´¯ÖË°<âL‹²®p(õÖ³*X~©ÃÇ/íá#41)Λò;¡ê˜>dèaö]ŒŸ0¿ÁQ8¦² q¤58iõ½àÔ(ƒZÛdñ))ÓfÐ^=Ô÷QwJ” ›i¯Ðâ¶/Óß8Ú4j AyèDéÁ®½ß¥Û|W £83ož÷C¬i¼ØÐPÙ*mˆrs|JÊøÇ[¯`1Q=ý8 g›çy‡ò§üþh÷j´ Ù×þ÷ú±ÚÙ<”EšAyŸ.C³ÿ/õ¼ñÄ®a¦'îØýqí¦¨¿ký1"\G¾¾Ï³摳]îA¸íaúTÑü’çç]úŒ† ÙT õË“á~-†Ó¨| KëEÛj®a  u!ÍR®ÿj›oíª£MÄÕæçЖìØ4Kc¿²#FÖÝÎ؊픶_êjÛ/íõ.ÙyKNR$ÏÚùÿNBELJæÝ^BÊCëYè'ÈeBô·2AZò’]73a`ì fB|lã8ÚFüËá÷ì¢#2~Ùå_Ÿ_¶_ oò Aâº7D$–E©†v7ÿÑzw«„ÕÍòXx8Øh€åiÉZùnÜe‡ÀfN›Ÿ0&ÆÉÃ*…ø_0»_œMç—7×w÷ÈŒßà1}Ê6ÙàÞ%z+ë·ƒ”"ÿÙ̱IÈ1@öTÂe†¸¶ KMïEÍÜâ8Ø-B1NNNÙ¸(ÒÝ@ÄÜëÔ»s‰ƒ+}/b?á«ŒI$b2ÂM‘Û ï+e8 bû•8bQÓO©®P g²-VÂ`Ë>Ë#m‹{PRüîYã ãè|tÖ'nƒ(ý9i³†;¡%U1a'ƒØò‰cMZvTøŠín¹™~žÍP‰ÿÏÉ9×Á›UïJÀŽ}TÄÚ“6> z½H´‚.÷µ~ªl}fð \PšÒ…nxšj_XBÅv©í˜uH^çp9¹dYQNÀ¶ù;@bÅàI† f»þPÆÁЪ9:¬#cØ=*¦q1œ{l2{Ipûs&eƒæd:£0•Ú)Àlz†#–Tà =ù ÿý‹jÕÄhî(<ÂHD’HXmÆÀºúªË¿¯F³£ ¥ŸµB“XrBŠãÐNNy÷£jégá; ã'4Ñ‘&HÉÙ§›ÌSÃy€C¦“zøwqùŸÏ&jþcÄelùG MàÌb,ÚŒ[’G*ú6½ g¦S#l/¬§ÍPà ©ýlP8XI³Þ¯ Í˽ íÁCÈÕñ ¢v̯=@’Š°mš1vÃ)k¹ñšº¥>øq\£&lÄp»/tŒ¤û¶‘EUN<Ë'.ÃYW_ñ»v\91Vm‹y™¶Ú&g»"{B³.ŸE²|ÁYt19Ï‹"_ÃÝdþ†Õ?¹Mž³MRRÝäü<ÿnRÀ»p®7˜°Úà\gMiLê;G7S@,( ¡œÇqü¤ÇöðD"ΟŽ‚ñM Eg yµ¯DnÍŸêôw¨j ö%Fðú(Þ)¨òãÿ „Úü endstream endobj 68 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 69 0 obj[838 0 R] endobj 70 0 obj<>stream H‰¬WYoÛÆ~ׯ˜Gé"ÍÊå"`+ö…‹ziE ½P ƒ–(™­Dª$Çýõ=3Ü©¦qkÀÉÃ9ËwöùyVÄÛp] ÷ïççE®Ÿ£ Z̓ôˆæÁë1Bóûp'a§ š_\¤_ÑŠúv9òˆƒ¹DRP,é QÌ‘èáÇ‹ 4™ß-ÐüfA~"h7¡(†×ÿ[Â}>¹&ó ˆ¢` Ô`àòäˆõû§z•Á& nIuG} y”bÆGÁa2E³à7Å–üÎàCB„âªo™bÍ–ÒU<7“éuRD{ô‰æ7÷×è"JÖχ0û=¯(Ò¸/«ÓZÜe0QXøžÆÂA\p Úa‰²h²\Þ€Ùú2¿Wß,®?Âñ ÒüJ]­­£Eaî¸JQœ+«á®²Úu(öÊj†´|\/‚ë»Û‡Çèëq_k7NûÂIGx*¯’nÂÜóó›ø¯sTºÂT3á-W1áØóY OÑ>}A9èZ†ÃS˜Çk´‰¶q«€È1jµ€”a.±ÃxÅè*Þ}Î@¬Ð_·5tèÌ«%Æ9àŸC½:@Ä­Ñ—8zAéVK1æþã`S¸S©Y(=aQDY‚m ãÙC‡Ê2]Á ‡¯õk0a·NÓCæ`צ–gçÅÕœ9ø‡rÀ¢Ë{5…\Ë_g”MOé>þ¤ÄÉ JzéG‰Ý(&j£„Ó5ŠƒDðv_ðÕìLN+‡±ž@ê 쀞ðñO°ËÔÅ+Ëb‡È ö”ÿ½òMæ“œYÎr(¤9Ë8P:GU+rmb;DÆ"ëëäºê{ýžBwóú*™©5c3µ[}Íå·Œ&ÚD7E“ã`!jà£}t€¢fÚíèz~•C×][q ìÛ‘ äØ#Ë,.@XõÇ~pcp8jn°bm¦ÖX›©ƒ8oë3TG# _7ºûëÇ+¨È/Y\Daæ¨y—EáF½*KÔZ;§âÎ1õUðŸ.±:okÙ#Ý‹5%HK˜@êü—&m…¤û¸S^º6r­{åGŒ¶i†’4yÚ§ëßãd‡é&êêY»j+ƒv÷Tzõ\i¦Ö®4S®tþ‘+)ÃÌé¸òâÿÁ¥ n9’£ž’4*’×ff¡óæfcÈÔ(›¨ã{0‰5JFâ$ï[ Yð‘¾Ä’ýM|Ü| ð(Þ”Ôðl!àG’ž Æ‘…Zad¡@ò¿¤Ú׃òÞécX„lH#s.1ʲya(`è…"—ëóˆÌÔ"3µã_f_`×;­1*±£Ùƒ*Ç4+ Ì°$»ÑÀ¼´ÛV¯5:i·[­d#µÒÖ`9 ørÀ}šÆɘò½Î²`'»bË!÷÷°tåŽÙ>R)(ë7Ö6;ÇŠÔ ª7šH©–ÈžŸfjQƒÍ)^‡EÕÝëîpÚܙ㚚;k(µl¿Øi=Ù¿Cán—E;„ÂdS ‚¤°Mè]ÈÕŸ%jyl>TýgÄ oì ž‹%ätǺ2MQ Ú†öHÉ#ÅÌï¢-è© ´†ŒL­–˪2OMýŒ6SëŒ6S»ê¿}‡‘¦þz!l“û9K?‹1ߌÔÙ*ÒMYÞøëÜ–ç|dƒÆ`›‰€æ@Â0&¿'ø8}Sð ÇÇ¢=5Æ‚›÷ñàóOe؃ÁÄ_u¾ïíC%Ѷ¢™V+ZI´lh擧Äö`’‘âGtÑ*ë— ý2®!þ$<ûqʱ$˜QʧáÓÊù/Z>®ÎÁõÝíÃcôõ¸G›h'ñè~嘻¦5 E„Ï`}!²t’%Æ o-¦£’˜ôÔÌJ“¯êÕìÔÜ# 1 ggtZQf·™›»í˜Ñ¾ò¯pöêAg’Žê–Âã*~Ð'rÁ°è’¥Z¾q–ÁøÃFi6¶ß:éWïñÛ§=j"w‘lª´º”¿Ê':Ç)W]\cªïa0!!ð¯1­ÿî¾[\.—Àíä¯&1„1ºµ—fÅZ[Ô´g®ï¢º_DyÃ;†ëeËÆŸ¸ÍÒ¥gå+X,Ú0­ÃµÝÌ;Ä5YÆ]r"Yy›¢ëù ×e}°ÈõÞ‚#õ%œ„!JwÌ‘úÀ}#{;SÚ]é‹Q¦‚X±*gi;{îcN=·ŒÍ_OÞbIÐb©¹„–‹[àJ¤Šº‰¿ÁÿhU®—Ë‚6hÂ=Ø: Ê(†¥÷P>:­TeÚ~²ìÙAí>o¨òþ˜ €y®Ï ]]ÿxi…}¯Û¹«Ê—0ÔQßP!ûé#¸1}N¸B_å׺FüjS¹)EL˜ðUÑR°Âk¡{>ej0„ö JúVu¶$W¹ÓSàéÕ¦ASs~úWu€Á bÞëka+Âi•8 sir…R±Ç>ÊûÎ{Q+£)F«2ªU§€(ö%†ÁäP>³ã`Ôæýf³2äKçYo¡))çE®Ÿab_Í/Ò¢Hèa¼‚óûp'¡®Xó‹‹ô+ZU?¬Ô……ǃ±Ìñ + Æ“‡JÕùÝúeTâÀÞaG@íÎh Ó«‚©7B¼¨OÜzyL·Õ]?—kD9úpur”³êL‘½ÄÑ—¿ÃÜn endstream endobj 71 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 72 0 obj[840 0 R] endobj 73 0 obj<>stream H‰¤W[s£Ê~ׯ˜G©¡¹rIm¶ÊÖî¦|ª|I¬ª“”×å¶Ùcx}öüú|30ÐÀ&ŽÐLß»¿îÕIQ¥ñ¶">¬Nª*Þ>%;r³Úä/ävµùñ’ÕUü˜fq•æYžæ¿“ù^ HH}O(¢$ó¤¯|ræ I¹ýøñôÓšÌV—k²:_Sbž(yœ1’âõß®q_ÎN7³ÕfC #›P7[‚Ë.dSFõÿúUrÜÒæŽE¡'C2æqNÙìgs²Ø|ÓüXÍo‰)•š«¹åš5çžRæ¹›Íϲ*y&_94?¿:#§I¶}ÚÇÅoeÃèH1H‘jNqŸ73í‹(4¾ð‰Âƒvž"E2{˜}>‡Ù沺Ò>_Ÿ}ÂñÆ;µùºF[߈òDçjyTsn¬Æ]cuà3/ò«¥Ç=é ruws²Þœ]^ÜÞ¥Ùî»Õn(œõ…ÓŽðŽ«ÂFºË焸Æç7óÍSZ’—¸ª’"#ñv›”eR’ê)!ésBR¼$ÛÅ’Ñyžm_‹"É*²³,)yÎßHù”¿Õ~ºËtKvÉCš¥ºÆJ´ŒüƒŒ2Êó¹h}I_ ˆUæëƒD©¿DVðÐJLµJö^Þ’ïiòFò#¥.Õžf‘>½ä $·Þ­he±äò~­«:µa‰qId|Yú¡ðmü¹Oâ¦íÚ¼8ÅY΂I ¸£Ëûf—¤ü±`|¾¿ÏŸÓ? 9ÚO”ë—8k…„ã6qim’~×&rñîËý²Xªy2Þ“Ç"éùPèL^Àõ%¬H—æ#Åaý! $¥àî£ÝŠ¶G¹ öCÕ=;Ú¥ù-‘÷5 B-Ù¼g@°¯›j»©ÈF‰ÄÚD®Dòu7¶NOž“=:N\˜ˆ“³Õ%†²±ÖÀèÏ“ .ÈO*g¢ð`#ýÄP‡34°gxÔT4ö ù:¿Ð½’üu±s’½îï“ÂÔt{¾ñ“)gdB¨D]ÎÂÔ³>lè×E¯ºltC§©#Ä}½èº©6ºnj¿ªØ ón„Mû6^ãyŸø’BÁ¦Qµï¾ Ûß½i…A…´/Š$ÞÕmT[M¡ 0ãð}zt Õ'Æ0Ó šuhÛ¾&} ê¶ :=2#Ï—µ‰!üÀ £m‘”/yÈ ’åÙýs¾ýMCä>ß%®ˆq¸G6^´è^ÄÜT17u1ù³ˆQ^Ú°1¿NØNÿµù<æn1Qý¡–4t2ã0£­ùÊT"Wg—¥0°m=0¾ç&'ÑzÉIìê­&ôæm ¥#MfÈzøÐèÉÉmDWšl{JjÀºë™œÍÿLviù-O1“mó¬BÊ_KbR­tzOEÌ„×ÝõG¨ÿF¨ƒ, Þ•eÖ!žºÍáS\Åv˜^¦õ†N#i|$`˜ÆÖOÚu8–f#Të'7µz7<šìR®ìò¹ÚaµH^ò¢BTéý¤$ã¾áÔé›Ã>ÔK6ßÈi›]5RÝ|¢™Ža»`‘§üi6¥|aÖüîh›k¹ 9äþ31ýXoݤ‚ÊÎÖe²³sª‹ Ú~«‰RzÍëÙ €Æt•.ÝÆU3XXø8ž+¸¸æ Þ™ Ú¹B ç ôƒøñ±H!ˆÄY  Kä Ã`âz&Ág€£Î‡ &ÂðNØO¡0K¿n^ó_5fy{¢÷')ëmÉŽe-0Ú5)‰Ñ»ÈPὂvm=;‰]Ýß¿6)¤.§G•ýTä¯O/¯ÕØæ4‘›TVÉñV‹BP@]ߧQ ,›cbß?#Û›³Å’ÍÿB®înNÖ›³Ë‹Û;¤ð÷Κ; lÒÝÜ~Òû¡D¤¨¯£­9‘’Sø°¯u½üÏÕhg›Xë¹ÅTj¿õ †ExTm–Eï*6‰]{O 2Um½$MV›¢HE1£õ†AÔoÊuÉÞöÙPSº Ë©­G÷a=ˆ¶‡9|tÎÚruŸuPG»®qÃÛTúFš±êû£ñ5<ÉPje’ûD%y—¬D€’˜>Ë¡G8Ic;}’yÊnðäð¨›Üõä œØaÊ¡Âæ O…†MãSsǹЮ咷£ï|›ï÷¨¤zÖ6ˆñé÷ëb,õù¸Vm¯¦¾K+  A™IyÜÎWÿðÈÙŸØhŸNiCκ¶T$YŸ·aê®N£žß&¢¹k T*9¢aâÕ¿1ýä¸7Ú>P·¼£I©Å)£3 5ØX,Çý¡ÞBúZž‰Fu7€Š§[W+°ÅŠÕúš’õµáH ¹^_@,ö«7’s¼ùU~!7·”ìÈL!½ëÐÏÉ’GJ?-ƒHÿ!Ï9³´ýìivm,XÌ‚ [šyB±øJ—ïóL˜Q¢¥ê§.5 M±6TýÔ¡Jd®¥áÞ¡¥]»ÀD´`òoÓW‘ºBIíÊ@k¯šQæW’5ÁG­nËżÓq4“-Êüý¿—™é±+abì}&‰*ÈØÕ„X>fX“½ÛcÄò¡a/E>¶~HÑ1-ôuÿ “<ÚH=¼õmcç‰(–€¾øû1ÉrhÝ4çPzó1Îê6ubê›òì ›ê¤?fN;Ö±G*E›’rªÍȶÍðç!Ì¥Án5åUJµ<Ðó@S¼GACó±Zžú¾ËÓÐZ®5õÀµ¦Z¾ Õò•~hô3ŒµÉòÀ·~´|ÍS‡oCmøZªåëlFr0 ü´`8Æ]0˜9obp~uv÷Èßî$݈ܘxŒ%u çÐZÁ"Ý1ãT<2cÐD¶T©…u¨×=ÌšXïj"± UüAb5!D6:6¹AŽaUõJ÷QuN¯q/Øöæ±^ñª*)†»ÜIQ¥ñ¶ÒÊTU¼}ÂÈu³:Í«*ß“ÛÕæRu?¦YlVÁÕéiþ;¹i–Zz,À’büÆHŒ´Òh­n-_® ¬¦djòÀtO}ŽÛ °@ÂÙ^Š•¦?.|Á'ÐP³›Íó‡æv´/Ö¾ú&bÁ›ØzEo.ÿ`·r5 endstream endobj 74 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 75 0 obj[843 0 R] endobj 76 0 obj<>stream H‰¤WÛnÛH}×WÔ£¼·úÆ&¹È°•dá’k;Å0h‰¶™‘Ddâd¾~ª›lÞÔMïdü ‹*v]NUŸªZ\Uöl*xýzqQUÉæ)ÝÂz±Êp»Xý8¦°¸N³CReù——ùwX³X‘P@D’©gDHÀí›7—o—0[|ZÂâÃ’‚y¢ð8cáÏÿ¹Áïåìr5[¬V¬PºÚ~<ã¬J`TÿÿCÿTà¡¿Òæ‹#"#ˆ#œS«ýlg«/Z«õã‹”J­Õ|åZ5ç$B­s;›_ªtŸ9zþáú .ÓÃæiŸ¿—¢ÇКˆƒæ´1÷n5ÓXÄ‘ÁB‚ w$€"=ÌÞ}À°ÍÇâZüayõ7èÔá7îo•1EDˆàj{Tkn¢ÆoMÔ¡b$VMÔ’p"‰„ë»õÅruõéãí]úý¸³ÞÕÆoŽÉ¡µÏ†öy.&ºX݈‡RaÙ˜ìâåC{´ŸÞ¥‡»¬òèÄêzùn—?—gçbÕS æ[rvÎæû’~2©þÉëwIU¥Å’úñìvõ‹#ñ·0œpuŠQvØ~ó`$'0 ZŒX<…Qßê+xΪ'Àˆtb²MVÁC¶Ká˜gXôTx±_ÁSþœ~K àq+pº5¾XÑ ”6^­’{ôqmÍ(’P+$Š¹½_÷)&Jt²4Y¾OÊlÛô!;dšŒJ­"Õ*ª/N@¢÷Ùã×Í*óvgQê7Ñ;Y‹Y ”È€{d» |ËÒgÈŒ'›œsABÉáœÚϦʈÔØŸkÔ€aô) B`~gØ0£¡Kn©Uì–öÓ+&ʉµå$À뜣w T@búrÎi 1¸¦Ó¦ÌKê WâEcöFÂçùD{’~î¥& †äˆˆ1ÿx,ò üÛwÜ„Vëmx<îƒ%‚5²‡¯û{¤Ñ>94`^ÀT)j^àZ-†¬ÝJË2-?Ÿy/ª»Qž¦Ï²Á yé.ݧ‡*)Lájñ ;¡™Ùœ—(@µª®+nJlP“n©­I·t”Åð§:¨©L[Ä„F Ø8›Ý½Çæu÷\dUz—T°€ö·"M¶ú§šÛpŠ^­ÞöNe½cú­Õ?úÂæ¼/%j‚ÕZ®–N®Ö@¶.¼Mù¡W-íeªžyMÆ÷"-§œùá~—o~Ï°Ï·ißO›Jd¯¨¡´ÉGŒç–ÚTº¥£TÆ+•”’HéÎÙ¤òò·Õ;ÜÑ—Eý«oAFåR¶W 2µ+‹«äƒ8 ¬eÒpXñnaƒ’[8‰¿8U{ð "üÇÿ?|¸»•×FðÎ'-Cèp¡0Ò|êƒÈ-µ¹¥#ø_É¢Bì}=>x›T‰žaým„»Gx_ÆÆY°áêe§Dn©…È-íç×½– ·ó`‘ó¢Bš©²=ÒE9±òÀ‰M·èDGÆ$°\æãJ>Á•þAD+êÇá ;L9?è,K~G½Þ 9Öþ×)úu; J» ”éÆçIX½õ$ÀV ãÄA.Ü ³MR5³–í§£ÇqÂ1jñn©b‚WtàÆdñý̺ŸÚðÖ@ÝB]Hý­Q‹|k¬ëX³Äj‘gƒu‹ºC=&ˆ¢ª9Ë…x]ËXs5¯Gõ(²:cLÌ“û¦°ÁõÝúb¹ºúôñö.ý~ÜÁ6}ÈÙéòÒó)twJoê[GdĈ¤¸¿˜Äx?AñTt³IK §/a¨U‡ü¾aluîј'gçl^UiáY¸1t¬³+Ç’´µ8,C¥;¤ 9‘ãÈÖ ïKê%p꤂«i¡Oï‹gãÈ. ‚ÈÓ³.qI9J0ë-Ú¶^jX™ £Lcj¾q)5´œÇºŒjL7ù~µªlœ^¶Yù%ÏlòC…YÏ¿–`–¸[¾iB¿Cm› Êå ÌX)Ž”v¶¸þ/«2¯5wøcÍå$ˆ%ê6JÝdhÜSm šoZ‰ÂBÜÓˆ²JHýçó/v£a6OøØÃpšœ¾Ö’úQné\€;íFPcaØÎâ|îÅY2tÚ †ÃqûÉÚp„ÓÞ$Îâp þLp^Ûâ…ÐBk0líñz2£.&ê«–NÕN….p³ù``£N.ÆP9BýaŒ½²·¾Ç;ÞÑw2’nž’cÚÙlïôbyCaycÔS€›åG´ðŒæþò½ùÖ·¶0 °‘kfÄÙR)8çq ÏÑü‡DÆY+ÜÏžf7¸Ò¢†Jf‚®¶Bó¨pÛC„ÝLHœ&zRýØ“F‰zRýØI%N­ 4ÏZÙðØ øf¡j‰£ºÔ7Ož°€Ç"÷-`ÁÄ-v»ˆMèYÏáþÇãó*-Gýv˜Ä ½Âþ`~C€ endstream endobj 77 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 78 0 obj[845 0 R] endobj 79 0 obj<>stream H‰¤WÛnãÈ}èG9Y·úÊK0ÀÖÌ^À3N,`7° ƒ–i›³–¨t¼³_ŸÓM6ERMÎeý S*vUשªSU‹“¢Ê’uEÞ¼YœTU²~JïÉÕb•ïÈÍbõe—’ÅEò˜m“*Ë·dqzšÿN®xÐP’ˆTj¢§*Љ§R1MnÞ¾=}·$³Å§%Yœ/±ßyœq’áç^⹜®f‹ÕŠNV®Ö¯ø «’pfþÿa~*ð…2GÖ<ñ8¢*"çT&Éj3›“£Õg£×úŽñ"cÊhµÂ¨‚j÷³ùÙ¶JŸÉµÀÍÏ/ÎÈiº]?m’â·²Qtp1X“±nN[sïW3ƒEY,"•¤¸Õ¤Hg³÷çpÛ~,. Àç˳w8Þ S»ß\×Þ6°¦¨ ®±ÇŒæÆk<5^‡§qÐx­¨  ö.n¯N–«³Oon˧¤@›û Íó¾yÖ1ß+jìûP•¢Ò¡¾Ì·ë—¢H·IÖë´,I•“„¬óÍùò=§äî IžŸÉ.Aª­³2iûHvEnÞNËŸÈkV=‘ë¿$öÆlU'Ã1§\“Õ»Ù¼qÌ*ÝåÂWP2æ§øó~rMEÔø¹Jî`•K{G£Dî•„F‰¤Q,\nÜ¥Ïù+)ŸòWàñ’2[“ûô!Ûf¦JJZEA«¨º¦¢ÙãK³¡„^DÎbVõÕ»¾kò¿,}%ùƒµâ­„c!i¨„C*Ì=€ºG5ð¢jÕ5&{á‡$¶ˆÆÍ ’T²ÍMš”/&–Á1s¡×œÓ,¹¢\Œ®î«yR’òËóÍ]þœý+ ܬ~Þ[¸Ü%ÛÖH4î“PÎ't}’‘ ˆvßc=o&zöx¬h€kâȇ†Â|D5Gte(áêw¬X"%¥ð• $Ö’¹W¬ÔÐr8b´+ Z¡èß(ŒŒeû;ÑGý ù¥N±_Ú‰l<‘H¼M$éK¤À®=}N7 Ÿ¤°'g‹Oà!Û«úï ûzR‚ñ¤ò&J›NÑOŒÐž±GDÛXPÉÜ•<éÐ âiYר´Òëy¯RzyÌÔ.º˜Zºä!åAï¦+͆™Çz‡ŸTk‚ "î•Š:°q5'ÿ8:–s²}ÙÜ¥…᩶\oéhF#U'”©VýdôK]2ú¥ðô×Àc¾Va³ÞɘFáX ˆaâözÔík‘U©kÇ‹&®&ÃEL?k_,Òä¾Û¶Wí3šþ ãc“×ò¶òò6\SªIô1Ü!åk®&ʺ-øì !17Õi¹£ä!/È6ßÞ=çëßÌÌ°ÉïÓ®a— eÒp¦Š0õsÃ/u¹á—r#ü3¹¡c o®ºLÐNÿ³z?†ßTŒ¥jF¹Ú“ae) C»¯†t¤)W-)‡ý‘68H8ÅßO@5D¡ù÷M´kîC(4ƒN]šWs3;NƒàÔ(F^¡ƒÈ+ì#$Ø÷"ä¼Ð!U¢ƒÐ»¤J*¬gãí@øÛÁX††!pøhNƒ` ¿Ô!ä—v‡öñ©‹æ!ihŨؓÆ./*ðS•m@%™ÀFŽÇ¡Î"Öëa F Â¶OV£‹ÇÆÝ Åèj§§özžm§.ÞkSKqÛ]R[½±T=½oÓìm½×zœ¥Ú-e:ÖüÅ7p»ÔúâÀÃ#‚a*ÛÞgë¤jæ(·¥ŽQ"}c”Ø^¼ÂI¶us=Fê)´:4ba†¼†&ÓyÑ´‰ü`3ˆìä¡EÔ²ÑüÓØÇО ¹±QKñCd–M|…,°Â4‚þx?"u…ì—ö’\7Qc˜yuÓÐæ¿.ªx$ŸHÆABìË® , ä{2AŠÊĦ•ö®1• rbvÍ„øÐÆa&tÓmjkDé{FöüTä/O»—Ê›|L›Íµî!Uoól¤œk“ZûÅÔå¦ÿ°Ä=X{X Øaç¬Ë\ÿYt´ {²Ëšã¯Ãˆ×@!ç¦5¦LÐÌ,²:â\Í“»gð™ü;¹¸½:Y®Î>}¼q³þ}úm³ÉeÖßk¼y·¿EÈÍDÔY1–u~͇JÁìÈi-(o­pöHzaþ í %‚ÀƒnÌd`†óɳ\hFÓÂ1Å_9P]ÿ,¥ÞgŠ;ê•..Ÿ –DÝ‚¸X^2²¼´È1B.—1Ô„š¼’ˆœã—Ï€÷gruÃÈ=™iaFV¤pLcr,b.HŽÃØüƒ!lÝÕâÍìiv‰°@ ‡–™ˆö-Hþ@ìRW’ëyÚÍ7 úDÛDZ=d˜'%êÕø€I!™ ‘ñA±Ø ׊#f‚ÕŠ¥Ž)[D²9óX%2RÀŽ¶ë;]­nðE€³hSˆ•m š˜iqZJs³V7¨DutOB/•¦Á^j¾u¤ œçdxî…Táa¯×~›©ô†ô |¸B„êFáìãW“’Ù ¶û¬üœgÛŠ¬óm…¡,)›˜CÙ!«‰É¸éd6—‚–cì“@aˆKì›ëÐúoŒ¾bêÚëÀYI£8Ö˜Ÿæa’'Š¢m”,ð…Ò aRà‹È Ãÿ¦äìoœŒZ Æý`6ðÉ>Mñ꫃Å0¶?ŠïŠC8ŽVÔ¢%½Ò†€až°1SÑ·¥v€¥B†µä û€Ê^(n¯&ÌÕðÔ®Ä÷gÃ8Š3ûJ CwÃÐ]P ;Ìsåk©]ÕÜ«Ú«PÚ™ÐÛö{c­Œµr2¢FÄ÷>¿8»ý¦Î4]³+øÖPšÞ“"4˜m¤0+C\7æ‹á=l5 Û¢ ÊPÕ”Ù´¼¥jZ Ñ;Õ5u·š/‡·%ý_Ü"¢fU ÿ…†–á¤Ýo~!Û">0šó 4-šì× ¬Ûòþ×·èðª¯{*Žáyu`Ô”IßèbÂh4æÐhúH6xõqWä뱜;~™™WŒ -a2Cr4‹¾cSÜß(迱«Ùе)Å(4‹¾æ/cšùyt`“+[]›Õ˜M1æÙø¼RèÀ¥´ìe ¡\Yâ«ì–%Fª`/v–_ö.èßlLñý¾¥'7Žï‘2igö­S ìZ¡o×Úa›'GÇ|^Ui1\¸NŠ*{HÖ•¹ÝIU%ë'¹ZœæU•oÈÍbõÓêâ"y̶‰Ýק§ùï䪾 †BÊC’ÈðPè „Æ…·|Z¸ÍÈH«´ÝX º£ƒ|°‰¸–©Ñ„f°šáÖµ²ü¡yw;]Y7¿H ×ü´èÅÛ~ü_€ç q endstream endobj 80 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 81 0 obj<>stream H‰œW[oÛÈ~Ðÿ0æÊK‘°¤ðIÜZÀ¶ ƒ–(‹»’¨’tÜì¯ï9CrDRCz?ȤŽæ\¾sûf~‘—é&^•äýûùEYÆ«m²&Ëù";’ûùâÇ1!ó›ø)=ÄešÈüò2ûYòȧ$!ó©ÔD+N•¯} N¥bšÜøpùñŠLæß®ÈüË#摧 ')|ý[x.&—‹É|±`„“Ť‹ø ‹‚p†ÿÿÀ¯rx¡LÀ#«ŸxR’s*“d±Ÿxdºø õñJß ~ȘB­æQ j!¨Öê\O¼ëC™ìÈÏ¿Ü\“Ëä°Úîãü÷¢VtæX“‘®OsŸÄ" >‘JRðŽj’'“ÍäÓÛ|Ìoà/W×áxN~í®ñVST2öj®£†§:êÀç4òë¨T囇åÅÕâúÛ×û‡cž~o¼ëç]ã¬eœŸ ÒµuæRT6˜/¶iAŽqY&ù”IQ¤Ü&äÎûžä?Hº?fyÊ»©ñǘñ­i¬ø4 ýÓU\$  .I¼Û^¨ÍU êÓÃ9æÙ*)Š¤0ªf}—²Y­mÆ)×Fã1É7Y¾'«ì°zÎóäP’ëù·wd›½$à#)3²N7›$?)•'¥ÜxRôÚx¸ôPÇÇeqmÒ]RLgÒ£Sá‘ë’¤æd›Ú|{žÎ¸·‹s2½_üRTe@U^WN^§P™9 IÀwRü(Êd_ $Ù "±ÊöÇ]µ ÖÉ1*.²É³}qô/ˆÚÌ`ߨÿ8ñ Œ”\CÊ0ˆú»ê±I¥Í–>ù0Ô ¯ØfÏ»5/,8ýT¬âzÖ$;–éþyoÕqe{iVk²A/=ˆøyWN•WPø¨°r”°p—0j(Y?dTuÆ„C­îŒÖ G:Ã÷ lgÄ»à²H¶Ê*@%’†‘hfÉc¹5@V ô銬“MzHqðB¶HSª¿Rô9}zÎÁlX¥¼[g0*DØX„dÇ«m²‡öZ‘ïiò‚5{jƒÞäœ I%ZEŠ~ÖõB‡@UNPV^;Ãà@# ¦d4d5˜û$. ®u§>æ´Ó\£YBÉq X´u/½¸€›ráí³]úXIUñYì*?•~.½ÏÓ™öj E§Jy£ô+[€A1àGX킶̇Ui «ß±„R’Â}TÂâaö¨ïƒÖI\¿Á€Ñ¶Ì·BÑõHhÖßÃü”a×!·´Qì–¶RâT· ]éjºæî.ÙÃH‹s“*3쀵 'šÁëÅô̼±P7«¡]áiÒ³º÷xÓ¤U“ANC-«~’æû;¯SÖ·Çø`ƒ »Áˆ6ŒÒ5ú$(÷‰Ï`̪º¾â6hh8O,h‚®v€…P™Xzäïfýž÷°^q 6{I€£Y4d[Ô%$ÏNõ¹…uñ¹…m²Ã†ƒvü(×øÑ!0‰f–Ã4†BȧéÈmH¿¢¬Ma½Â;R³ºÙáq—­~Ç}¸ÏÖÉp~9-Á̵yLûàm@…‘ Þ—}ø ¬äá%OK ïÄ~‘'ñšX2À6t׊ӳ)žh;Ýä,`vzòZu“æ–6YsK{pH'CáëˆÍ®@ç/ÿ³ø4D€Ýô¡:D û•ÊEhÇPi¦\‹œµ¬a«‡vv'©[Ø âö@Ño>0þ£?‹ÏØÊvÁº•…Ùð8B2 l!§°AÈ)ì!ä¿¡& áSÞFèc\ÆåãXÇo*Ѿ~ |£b§°ÁÇ)ìùÜ™òWâ¡Mž;›©bI×øã€]Íú¡+Žh$ºš iæ?Ñ™M൥csˆºk1 vœ3QJ*z!%ý¾ÚÆÇädÄ–àüê–‘«[£r{õ š¼|o~ã¿å=#k2QÀBH°OŸÌ´á 3¡(38(QÑH÷“íäö<º‘ýäÛý¤K];YiCÚqþ"u ÕÎÎ "- ”8B–F>ƒË‡oÐq-’lóNv6Šž^;r3Ýk !áÙ?^C(€˜ÁíLÉ•æÇðlJúæÀ® ,¶–X„ Ä ¨YX5‡ß‘úæK@J¶Å"2Êk±U^‹åk vCË3âeãð{qrݼúÖõZZŸn„§ÓM=A'ù&‘MÁNmW‘T8;UÔ‡>:Kim]DB±ÖEà%mç*ÄÞ÷QÒŠ†ÊUˆ–³ñ¢SXNñ @ SÞ ¸åèÕŽ¬£ÂMµ)žsGgÝŽ¹ÈËt¯J4zQ–°œ“5YÎ/³²ü¿òsbõC*¡¯˜ž™—îâé;9åW(DC»jÀ86472W°sàè#3`.Ž…2þÎ @ß(àkhëP3`@àîS½ ¬±ìÎü€Ò‘+)17µ7S¸4òÓ  ‘[\à6 ˜iŽ]= c#¨Pá‹0` À¤p¥y endstream endobj 82 0 obj<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 83 0 obj[846 0 R] endobj 84 0 obj<>stream H‰Ü—KoÛ8€ïö?ðè,š¤HŠ*ŠIº]tn T·4™®µµ-CR“vý)êe“NÚ{èÅQ4ΓœO‹‹ª)VYÞ /M“åk½D׋´Ü£›Eúm¯Ñâ}ö©ØeMQîÐâò²üŠ®i"q!E$Žœb.…DŠQq"ÐÍË——¯®Ðlñî -Þ^dÿ#èÓŒ¢^ÿùžëÙe:[¤)A¥+¦9‚ŸøAi(1ÿ5¯*øÄ=ÑDa®¢3F"”ngst–þcö£í~ç°nvµÌlÍ"6{.gó7»FoÐGž¿}ÿ]ê]¾ÞfÕçÚmtäX‹á´­¹?Ò™ÉE¢l.$Šx„Á;,P¥g«Ùo!lû³xoüöêÍ+PwÙiÃwîZo¥5…£’kì³³‹ž\Ô±8‘.jŽæ8FW·×Wé›wßÜ»å}ç]küÃ>ÛõöéÔ>¥‹FC¬þŒÇ‘ÂQ—ñ›“C¼lj ñ¶æ¬å(öeêÈèõ5g|®Ïè¼65ÊËÍFç湸7”å¹®k´‚ª³s:/·(Ûlо*Í{]Û JØe ¼ÝB_ŸÝ¤¹Ž½O41>+H=CçÐi¦› ò«b£Ÿ¡‡¢Y#H+D^ÜË/ÙÚ—ôU…Q Q0ãfU§j@Žy—Ž4»«T˜HÑÞ”¨^—åZ£»¬.r´Ô«bW4…’ F¸5ÙíŽD¹«ŸAPKÈL 7ÁN}Žî ý€Ê•ÝÐe}JÇléÎÝ>'*ì^û¬<@‚jëÉÔ .‡Êm…%í|x]|úRÙˆ`qï¨kKhw¦ÜB|¢ÉåcM~˜ÛˆrL%’qŒ™Ëín…Û×PÓÛJgË[ÓC Ô†`Â$1\)¯F«ª¢Ñv™Y“þ>alÞßÞi¸IÑyP®wË@×po׌³OÜV"±Q%]·ÈXbÕXè¸ÞË]¨9EØ íÍDÒgFÌ»ÄUºÞc´*+´+ww›2ÿ\ì>¡m¹Ôc»4áXr$á3(Žíj¯Î±n>*°Tí+Ž j èFpQ“^—E ©šq‡ÌŽ…ª²©OQ‚™lßs¸äÔ%¿´ÛØ/• >Q‚¾ÌWc¢\L–p`+´Ïªl«á$ÂÉîOU}Ï´×ÛÈöóVgõ—ÊL7ërêu¢%i`;'íùIn¯n×4­n¨if[Ÿ(m%!?{Ø£Ö9¢'­CÑ 4*[.›a¤îRg'äiÇ•@gè¹›BÏ@¤>Ý”õtýi$1Á”OH=Ñ_÷›PSžÈ °äTBp%qæÓ5L¼nøíu×ට”â~à“êLÊIV³œqp<úóÕŸZ{h;1yÑLX$yÍžÊ"‚EÀþ,"9‘ßÉ"£‡yÏ;®y_ü‰ãšžÀ‚Gæ5ðÎwÍëƒÏñCߎ³L˜ý7Ìg5µ%­& [Íã¼ÕøËÝׂ0œðÀ=/ÀíÐeîWt×¹Q \ç~½^P„‹ÈÞ‡~ HÝ®鸽䲊ü,BOPÓ)™øù$ážn1™ô¬e+“AñªºvqªŽ mb¢o—cqÒP ”;§ZiÈ)¿®Gêez‚)Ÿ 'œš­û‰4‚ùü ž'ÉÏÂI¤€FäN’±'õ:«t°µ éÃÁHI$᣶û|]ìà@~{†à@j‹ß &KO r ·´#Í„?`ìÞé]¾ÞfÕg½ ÎJv‚ÄžÈ#:U=š¶…9ŸIܯ yH%P&S$ã\^}É‹ :¾X­ ð»\Ãë¬i»À,(«¥#ÅZ'TÊó!†ëy¹:ãVƒ µ‰d¡«{x 56¢é‘šÐã?FbɈ]¦ð`£€ö{œº•>6p²–üøÐ-9à‡q7ûéº-•ègž\Ô1o»øQd~§ÒTQøìÄ f”³ã‡À|Y_•éˆJDž¡ Ÿde„Pr€žh<Œd¿HÌ‹VqŽ‰:˜>* 9ÈŽ&s†‰îŒ#2ÎDížá¸4âGŠqán½ï(Ó©Oå&v‚ð|ÜÔ¿±o4Žù .k¯ÉÉb`­éÞí¬žæbBbOoYâ²2 .BÍÊisyõ\o9½@s,¶Þ0¨~·œÔÛìÍΣVòȯ{,ô¢ó£–- FŠ81k…/iÅÏ=|d­‹ª)VYÞß.š&ƒáºD׋˲iDné·½F‹÷ÜÅ™U_\^–_ÑuçLüMAIeIºq.Þ]!š ÅÅ&\àY"O£|±r7tPÄm×g4a  Ã…•[@Ç=?J­î«ˆ9 $Øä(ÙŸÿò°õÞ endstream endobj 85 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 86 0 obj<>stream H‰¤—[oÛ8€ßý+øèµ,ÞÅE·@“iY Ó.j`±H‹@qèX[YòHNÒ̯ßCÝÌCKn·Ó‡T2Åsùxx.Ë·Õ!Û¤ëyýzùöpH×[{On–«rO¾.W/{K–ŸÒ‡¬HYYååeùÜP£"ÍI«ˆK"„’Š$ŒF\Ä’|}óæò·+2[~¼"ËW1iÞbò0£$ƒŸÿñžëÙåj¶\­bBÉj««5?Ïð‡¬jBc÷ÿŸî§ ^¢˜ÁcÜ=Q“D"! ¥c1'«ÝlN.Vÿuòh+oƱpR›GæD3I©ÌûÙüº8Øœ|a`ù‡O×äÒëí.­¾Õ Ã@7²Ûݨ{·š9&iX(ÂÀºH’ÊÎ6³wÀíæÏò“üáêú7ØÞÑiÝïÌm¬5ªˆkݨ‹àÎixêœÖŠFFuN‹ˆE"¢1ù¸·ÅíU^Ö¶7,ÔK±ÞØÓ«J¼Sêvô£Ž yjÙ§Y‘·yNöU¹^8µ0v¦œ°“Q¿. F]BÌغ¶5i¬?l-©Ó%p "×)«{[‘Cé.B‰MôRQ-úøÛWöɇFR¶Ûçvoí5ÝTåÔ´¶…ˆÆ¬N ˜Ee#éí²?›5É ²N!†ÚC},kHÎÄWdp´¡R8ïïBJ ûgÙ]nIªì)Ks‰ÅÙ“Õdo«Å´g‹NÜ`ÔÍ|SV;Ðýœ¶‹­õÅ‚Ï-Äø×Õ?§b7þ­]ﳇÇÊBüš™"®Kº££w^ÆHÜgóUê¼¢Éð…<~aZABðþTîl^>“z[>×Ùwi­É½ÝdEæH3ÔDÂhßõæ(.™åü¿WòG÷*ŒfN!S(¢àfé¿t¥Äô•¢-_wÍ%0~Ó§§›ÇîMk8ž{¸Q‡ƒ­p¡FDJ•$äk0ØýIÚ´ê¯)ÈÊ2RIûM³ÌÁ]ÎÆ·rÈáñ°•ñ¸ÿ¤Yu•LO(õ×Ô°È°EÚ¥æöwˆhø4¾Ú _Åg®)—ö¯\ñþò?«wG¬Îq»áÁ‚lÙ¥›¹=¼\P6ß[¿=%)áêMR_í)¯bJæWoäy&~PrÐh Öóq¹ì<"ÞìšB4¾Ú#_õ;øŒñ|¸Àrì3¨ˆ} Uv_V¸À®‚õ™&€Òé3iž¶þ@˜ŠDŸªoú²+vë7f¯! ë7mÃÖ ¥QBû||˜j†Ø™¶@ö˜FFq(è 6Š/óì\÷CQÿ}–<H:ø&cì›,’}ùªízÊÏ_ÈÕ\ ˆUìç— ’ºîà>[§îÄ;Ÿýš O¢‘£#¦ºûfþþb!çC uóžŽdÄÇWûP_õý—?JdÝc‘›!£y‘¾­ÊLJíþñ0Ùf§N?²c£–=“-1¤Á?ªM³8YþF·öõ¯Yœ*£;O}÷õô˜áµÛòÌœ!¡Ä&ÊŠË•« JżëÁþæÏ9mSÕ4˜¸Mò¬OÓñd©ìMÐ1±?XŽ 7Ó®ò£«úŒ.!A»!¡quhW‘›{W'úiÂOvf¨¢ÜñŸœ*9Ä‚ ”+%¹XP›ùïe±¸ËËõ7Èñäzù‘ ³_=mЙi3쟧ØP±¾Ô¼K×[7”¸–ºðí¹láÀÚé>ÚljX—0»ž~ø8<®ù+²…|—’Aýã1{J'&ªVôq¢ÊÝ\f¿ïó4+Úd º Ôa0~ Ñ,Ž¼Ó ïéÍoÇOÇâxjÜ À³WZÔ[¹Î:»K eçÞøv2§g äh¾ý¾¶ûf°Ì*¸MŸ²²j'±ÊÖ{pÆÔ©[ÁØ žî°y`”Abš C ”=te¯Û7ÏÑtâoXÎU,in4‘’:sôiÍ¢FA«A¤¢PÔNGW‘ÃÑÆþ²ä Šñù½F×þ÷©Å)Á?Ø ÉPt­ˆë ½ãË>N5Z!åõE°y‚ZïÆJ FÊþ:¥Swhèpþ˜ û”K VAÝ‚ëÝ´Lÿ&Åi5¦MüŸªO¤>ϧô=Í¿Fä«!ãö~…ª´tœ*’NÌü_“cІVézTdÅ!›0‚Çç>–³®¿ TqhX ÖôMUU®m]ÛzJ'o¨¦=rt¨‘DB7 L%çZGÎ~>,¡1uBÏËäÿŸL‘À¼i1"M°<¨<ì-'.“PòˆüçëÛ÷ô\%4¶ç”ÉQeS*„>Uqû\e;i<L_M®µ»/¾¦›9ô°ïîÅuæдÿ÷\›€2;öNÿ"JfFü\»ñ£Ü¦{{Ô6$ŠåÕ瘬ëFpLH½.f Áb.sBv3×”@kåÞ¡Í›wÈ%îôçÇuîÚŽ|Øî†ÁöM*¼*„¿»[¤{ÊóÙ~à÷­á‘DÖðH!kºõA_»½·†G1²†AƒwÇ KçØÙÈ€ ØÈ€@lDÀFlDÀF„lf£6*`£6 ±Q°Q²Ñ˜MQÿó$@Ó.Ú4"£2: £2:$c0¡ÏM¦]´ÄÅ\’€‹ ¸˜€ ‹F÷êÛÒ-÷ÚºÍ-ð†¸À;âÒ¯Â〠cˆ cˆ‹{E¶0Ä¥ÛÜÛÂ00qé×=ᎹÌE\æÂpápá!‰¹HÌE\$æ"pp‘!…¹hÌE\4æ¢pQpQ!—sI0—$à’`. â’\tÀ% ¸$!ƒ¸ðqq¯¾-Ýò Í .&àb.&àb.œ".ðêî^‘-qé6w¶Àâ†#.ýº'sq#o Ç\xÀ…#.ÝæÞ†¹p†¹ôëƒpr˜‹À\DÀE`.qpr‘˜‹Â\TÀEa.q‘p‘rј‹Æ\tÀEc.qÑpÑrI0ƒ¹˜€‹Á\Ä% ¸$—$à’\DŒ¸À«ÿ¹{õmé–{mÝæÎxÃ\ æÒ¯{Â1û^ÁxuýöQC\êzEÐõŠ ëA×+®Wà®^Ñç<ÒÈŽ¹ žW=¯zÞÿ‘YG¹–Û8Dw4°-‘”ö¿±‘ÛOέò_7¯˜ :8]æí6o§y{°K¨K° ÄÛ%Þ.ñîïï[¼â]#þxªK² ¼ÛåÝ.ïvy·Û»ÞíôîÙ…Þíðn—w»¼ÛåÝnïvz·Ó»kdz·Ã»]Þíòn—w»½ônлkD— wÞ y7äÝwÃÞ z7èÝ5¢KлònÈ»aï½ôntu¡wÞ y7äÝwÃÞ z7èÝ5² ½ðnÈ»!önлAﮑ]èÝ€wCÞ y7äÝ°wƒÞ zwìBï¼ònÈ»!ônÒ»kD—¤wÞ y7äÝwÃÞMz7éÝ5¢KÒ» 寮›ònÊ»iï&½›ôîÙ…ÞMx7åÝ”wSÞM{7éݤw×È.ôn»)寮›ònÚ»Iï&½»Fv¡wÞMy7åÝ”wÓÞMz7éÝ5² ½›ðnÊ»)寮›önÒ»Iﮑ]èÝ„wSÞMy7åÝ´w‹Þ-zwèRônÁ»%寮[ònÙ»EïÞcþ÷®¢Kþ-úwoïãÀá‡K.q¸ÌáZ&Íß[éá’‡‹ÞÛû¸âˆñøsNÿIuŸC—H\$ñÞÞçÈÄ%ïïï¯wüwºÏIÕ¡ŠK*.ªxoïsÄâ‹K,ÆãÏ9¥:„q ÆEïí}Žd\’qIÆxü9gªm\²qÑÆ{{Ÿ#—p\Â1ÿwÎ8XgÇãåñ¹çß:{ûïœ!×ÇÛò1ιXgPÈãò¹g¼w¡Î‘ÇKäwûЯ»NS"ytÕ!’÷ö>GJMu¤d<þœªC'P:yoïsåÑUGPÆãÏ9©:¤ò(Õ!•÷ö>GV©:²2ΪC-¡:ÔòÞÞçˆË£TG\ÆãÏ9“u&Á<Ö™óÞÞçHÌcªŽÄŒÇÿ3OÖ™4óGtžMuDg<þœªC<ÏTâyoïs¤çª#=ãñçœRúy–êÐÏ{{Ÿ#@ÏT?ç Õ!¡çTzoïsdè9TG†Æã÷9í8Pçžîñ·Îþü÷Þ»ýœs¬3QçýþóëM眨ÓÀù/œ8¿ÛûRùž;Î!•ùøsNSÆ:Muë4Ö¡•ïãY§©Ž­ÜŽ®:Á:¡:Á:uºê¬ùw¹+Ž©ÜŽTœdœTœdœdœTœäê¡Ÿv™R™Á2CeËË”Ê˔ʘÉí˜*3YfªÌd™É2Se&Wý´Êœ4r;aä{D™F~·ÿn9iäóï2‰Ì·ŸkHä{Ɖ¼?¿ÏÈ÷xð3Wý´Ë4•é,ÓU¦³Lc™¦2ešÊ˜Çí • – • – – • ®úi—I•)–)•)–I–I•I–I•1Û9Tf°ÌP™Á2ƒe†Ê ®úi—¡‹Ûß#Ê\ËL–™*3YfªŒYÜ.²øž.²xÞÏ]`ñ=üÌÕC?­2×¥2ešÊÀÄïö¾…&þ7ÿ.“Ä|û¹¦«Lg™®2e:Ët•é\=ôÓ.*“,“*“,,*,*c·«T¦X¦T¦X¦X¦T¦¸zè§]f¨Ìd™©2“eˬ¿÷?£Ìßç÷Ç?n¢p#…›(ÜHáF ¯ñ¼ð™«çÅŸV™&7:¸ÉÁntðQfÍ¿eöç÷Ç? nbp#ƒ›ÜÈàF¯‘eWYæcà&7¸ÉÀn4ðY†ÞŸßÿ¸ÉÀn2p£ ¼F–I®²ÌÇÀMn4p“ Ühà5² ¼?¿?þ1p“לH#ïïïƒTðÙfr—m> îRp?ïÕÿ6º¼¿ïç:¼FÔétðþüþúÇÁ]^3êtAx¤„׈:]»¨Ó?î’pïª# ïïïs´ðY‡ÞŸß_ÿX¸ËÂkfax¤†×È:Á]Öùh¸KýTGÞßßçèá5²=¼?¿¿þñp—‡×Ì:ñþþ>H¯‘uwYç#â.ÇÁ:!ïïïs4ñY‡&ÞŸß{>&™xͨBñþ¾ ªx¨'wQ'>*©8šêˆÅûûû]¼FÔ ºx~ýãâ‹×Ì:‚ñþþ>H¯‘u:wYç#ãŒ#UG4Þßßçhã5²m¼?¿¿þ±qÈÆkfáx¤Ž×È:Å]Öùè8¤ã˜ª#ïïïsôqÈÇA‡|§|¼fÔIyß&…œrÜEü9%ä¼X'Eäýý}ŽFN9i䔑óc䔑×Ì:Bòþþ>H%§”œ»¬óQrJɪ³˜üûÿùýý}ŽNN99é䔓óã䔓×Ì: ʸ'U‡RNI9“»¬ó‘rJÊ9Tg¨ÎPZ9e夕SVΕSVNYyͬ#+'­œ²rNî²ÎÇÊ%+—¬¼fÔ)Y¹hå’•‹V.Y¹>V.Y¹då5£NÉÊE+—¬Œ¿•%+×ÇÊ%+—¬¼fÖ‘•‹V.Y¹hå’•ëcå’•KV^3ëÈÊE+—¬\Á]ÖùX¹þÓêõïYyͬ#+­\²rÑÊ%+ãõçžÿ¼úÜ#+¯™ud墕KVö.ëü¾ý\3YgÈÊkF!+­\²rÑÊ%+ãõ÷Œ“u†¬¼füYyÐÊCV'wQo?×\ª#+¯™udåA+YyÐÊCVÆëÏ=]udåõ¬#+ZyÈÊ£s—uú§N¨Ž¬¼fÖ‘•­ÛƒÏ>;øìೃϦ|6ð¹g-?ÛÃÏ?;üìð³ÃÏ®~vø¹g)ä ´?í ´ƒÐB;íJh¡{–BCûÃÐC; í0´ÃÐëûõ ºg-FËõǃÀh£Œv0Ú•ÑF÷¬…àh8Úáh‡£Žv8ÚÕÑG÷¬…@iPÚAi¥”vPÚ•Ò=féZ }÷çñK,°tÀÒK‡ZºÇwéZ ­ýíx p:À駜åtR¨g)´öçñO<ðtÀÓO‡zºG-d(d(ô u€Ôq‘úóDu¨¨{Ô@Ž@~º}{D—¨?ÔP‡‚ºGÍP¯ýu:ëÀÓQZœp:”Ó=jpzí×éM4ÝóØnÓk}Þ§˜îQëÓkŽ: KgÛùöœ¥×zÝ—Jé¥N‚Òk¿NH:!éžïu^ëó>…tR'鵿Ng8:]ë€Ñk}Þ§ŒîQë€Ñk¿N(:¡èž¥½Öç}Šèµ½ö×é¬CçÐ: ôZŸ÷)¡{Ô: ôÚ¯Ó‚Nºg©@¯õyŸºG­@¯ýu:ëÀÏã%uø¼Öç}Êçµø¼öë9=è¹ç{<¯õºo(ž{”:x^ûëtÔ°ó0­:¯õyŸÒ¹G©3@çµ_§?ä< 瞥à¼Öç} çµà¼ö×é¬7Ô:`óZŸ÷)›{Ô:`óÚ¯ÓjPsÏRh^ëó>EsZh^ûëtÖ™ÇÔ: óZŸ÷)™È<@æQZç!悘{¾×)€y­×}¥`.€¹æzIzx¹àåÚ¤NËk}Þ§\.p¹ÀåzKzh¹ åž¥Nßã÷ó uË,°\¦uV.X¹BëÄÏ&Ï ÔQ+¬\°r©•ëaå‚•{–:‰:‰:jå‚• V.µr=¬\°r•Ö)Ô)ÔQ+¬\°r©•ëaå‚•K­Ü£Ö•K­\°rÁÊ¥V®‡•'¬<ÕÊ=JyZ¹ŽY­Þëìó½Î¹¿Nwê Ô)­S¨S¨3´Î@:CëŒG‰:SëLÔ™¨3µÎD‰:SëLÖÙ^ZgJï£ÔÙ”ÒççßçlJé}–:›PZ/?ž³iM(½RgSJŸŸ¯ç(¥÷YêlBi½üxŽ¡ŽkGGÓ:†:†:¦uìQ'P'´N N Nh@@Ð:ñ¨“¨3´Î@:©uuuRëä£N¡NiBBÒ:…:…:¥uêQgjSJ(m/Ô™Zg¢ÎD©u&ëØ[ë˜RÚ@i¥×çßç(m ´)¥åòý9[ÿÅ®ýüÏoà_?m-”ã¶ýÎu±Çÿüô÷?ÿñÓ/ÿüï¿þ÷ï¿þúËŸ¿ÿã6üöÛßþèÅÖ¢ûëC}¾~ùg~å÷´~–·©j¾ï{Žcþ|Þ£§Hݺ߿>ö×é·Ëÿ¶þwÀý5ýk.¯é_syͱ¿îû|~¾æÐÀµí¸~ýJ=Ýô5®mmmm\Ú8Ú8Ú8Ú8Û¤¶I´I´I´Ii“hh“h“l3´MÿN߼泾nRf Ì@™2ƒe¦–é_èûO„ù¬¯Û¦t™èRè2Ñe¢Kÿa¾wé¿ú÷.ûx˱>o;>^oùྕ.ßýuø ]ú¯ò½Kòã›v9Ö×mÛ½Ë÷ïÿµ}k—ïþ~8º˜vqíâèâÚŤ‹¡‹¡‹¡‹±Kh—Ð..¡]Bºº8ºº»¤vÚe ËÐ.)]]]]’]J»”v)t)íRÒ¥Ðe K¡K±Ë”.ý7þÞeïo9Ö×mSºLt™è2Ñe¢Kÿ ¾wéñþãû(oyK—ããõ–ï_ûkûÒ.ßýýpíb›v1íbèbÒåøø|˦]z–.ßýuøÆ.®]\»8º¸vqéâèbèâèâìÚ%µK¢Kj—....Á.C» í2Ðeh—!]º$º tìRÚej—‰.S»”t)t)t)t)tñ—téñþãûx˱>o;>^oñºLíòÝß×.®îõMºô¸ÿ“â:n“..êu¨×¡^‡zêuUoòãöù÷Äuœi1¯Ã¼ó:Ìë4¯«y=´K Kh¯C¼ñ:Ä믫x{”OtIí"Þux×á]‡wÞuõ®«w{Ô.ê]ï:¼ëð®Ã»Nïºz×Õ»=jõ®‹wÞux×á]§wC½êÝ¥K¨wC¼ðnÀ»ï½êÝPïö(]B½âÝ€wÞ x7èÝPï†z·Gí¢Þ ñnÀ»ï¼ôn¨wC½Û£vQï†x7àÝ€wÞ z7Ô»¡ÞíQ»¨wC¼ðnÀ»ï½êÝPïö¨]Ô»!Þ x7àÝ€wƒÞ õnªw{”.©Þ ñnÀ»ï¼{¿úó–Tï¦z·Gé’êÝï&¼›ðn»Iï¦z7Õ»=jõnŠwÞMx7áݤwS½›êݵ‹z7Å» ï&¼›ðnÒ»©ÞMõnÚE½›âÝ„wÞMx7éÝTï¦z·Gí¢ÞMñn» ï&¼›ônªwS½Û£vQï¦x7áÝ„wÞMzw¨w‡z·Gé2Ô»C¼;àÝ„w¼;èÝÿ“Yo¹rã0Dw¸MêµÿE¾VÛ]¥¿!¶˜28Þ½Æúþ³Ñ¿MþmôïÚ~Ž‡›8ÜÄá&7s¸M“Öß[éá&7zxm?×ÄM n1¿ÏÉŸT×9$q‰I¼¶Ÿsdâ&7™ßçTÕ¡Š›Tܨâµýœ#7±¸‰Åxü>§©aÜãF¯íçɸIÆM2Æã÷9Cuhã&7Úxm?çÇM8nÂ1ÿ;§¬ÓÉãþð¸}çß:kû{N—ûããµ-ãñûœ“u:…Ü!·ïŒ÷NÔé"rˆülúu× Õ!’{ª‘¼¶Ÿs¤äª#%ãñûœ¢:tr/ªC'¯íçA¹§êÊxü>§ª©Ü›êÊkû9GVîUude<~ŸÓU‡Zî]u¨åµýœ#.÷¦:â2¿Ï¬3æq°Î ˜×ösŽÄ܇êHÌxüïœñaA3ë šymÏBó8XgÍxü>çT²y„êÍkû9Gn'ë ¹ßç¤êPÎ#U‡r^ÛÏ9¢óÕñø}NQâyTÕ!ž×ösŽô<ŠêHÏxü>§©ý<šêÐÏkû9G€Uuh<~ŸÓU‡„CuHèµýœ#C®:24¿Î‰ã@kþY¸Æß:ëó÷½ïö:çYg Î÷û﯇Îù N€ó5ž8pþn?çÊל8‡Tæã÷9¡:Á:¡:Á:Á:´òu<ë„êØÊq¤êÖ)ªSX'Y'Ugο˩8¦rUq*ãTÅ©ŒS§*Nåê¡Ÿv™¦2eºÊt–i,ÓT¦±LS39Ž¡2ƒe†Ê –,3TfpõÐO«Ì‡FŽŒ|(ó‘¿Ûß[>4òßü»L"óíûùš±@"¯Ïïs ò5üÌÕC?í2¡2É2©2É2Á2¡2Á2¡2æq|ŠÊ–)*SX¦°LQ™ÂÕC?í2UeË4•i,SY¦ªLe™ª2¦q|ºÊt–é*ÓY¦³LW™ÎÕC?í2tqœpñ5¢Ìy°Ì`™¡2ƒe†Ê˜Åq’Å×ü»p’ÅëóóÜ _ãÁÏ\=ôÓ*sž*,*·Ÿ[hâ¿ùw™$æÛ÷5©2É2©2É2É2©2ÉÕC?í2Ee*ËT•©,SX¦¨La™¢2æpœMeË4•i,ÓX¦©Lãê¡Ÿv™®2ƒe†Ê –é,3ÿÝŸüŒ2÷ç÷Ç7 ‡(¤pˆÂA )<ÇωÏ\ýœüi• 98èàƒƒ:xŽ(3çß2ëóûãƒC 28Äà ƒƒ ž#ËWYf3pÈÀA‡ 4pÐÀsdx}~|3pÈÀA‡ 4pÐÀsd™ÊU–Ù 2pÐÀ! 4ðY†^Ÿßß 2ðœ+ÒÁëûû G Ï‘uháõùýõÍÂ) Ï™u„áõý}ž#ëî²Î¦á”†³©Ž8¼¾¿ÏÑÃsdzx}~}ópÊÃsfx}¤ˆçÈ:»¬³‰8%âr°N‰×÷÷9šxŽ¬C¯Ïï=›‰‹L÷Ý_×\ãok.¿Û¤4_¿ï9Qçš+î!¥¿ßßÏß:×øÁ='w?'ÛuBuRuRuRu‚uBu‚uBub«ST§¨NQ¢:…uŠêî²NÙêTÕiªÓT§©Neª:•uªêÔ­NW®:]uºêtÖ骣]Öé[Á:RúúÔùª3Xg¨Î`¡:Ãu>ÖùÒ׌:Rú»ÿ½çCJÏ™»¨ƒ·ïkNÕ Õ Õ!¥¿ûÏ5¤ô5ÿÖùÒ|ý¾'U'U'U'U'Y'U'¹Ë:¹Õ)ªSU§ªNUÂ:Eu ëÕ)[¦:Mušê4Õi¬ÓT§q—uÚV§«ÎP¡:Cu:ëtÕé¬ÓU§»Îy°ÎIJ_3Ꜥôwÿ{ÏIJÏ™»¨ƒ·ïk>¬s’Ò׌:')ýÝ®!¥¯ù·ÎIJóõûžPPPP`Pà.ëÄV'U§¨NQ¢:É:©:É:©:¹Õ©ªSU§ªNUÊ:Uuêõ;Xg s9Ϧ@]ºuj Ôhr5²—ó*4Th¨ÐP¡ÁBC…† ÚÈ"sˆÌ!2‡È$sˆÌsF¡™c3sÈÌ!3‡Ì2sÐÌ!3Ï…BlŽÍ!6‡ØbsˆÍA6‡Ø§øœâsŠÏA>‡øÛë={´ï\šÀ¥ \šÀ¥ \š¼KKÙ—!­Ûö@ˆ@§ tš@§ tš¼NKt„$;BZ?Úw>MàÓ>MàÓ>MÞ§%zBE Ô)5RÓ¦ÔËãàÓ>MÞ§%z< ð$ÅcÎÚUÀ¦i³éåqPi•&¯Ò=Pi­ï½‘ x4±¥M Ñä%Z¢§­uíÝ4AK.Óþ8è³Y^Ÿ%z* ÏZß{• îœÅ•÷U2ˆ³÷YÙ‹³DG%ƒ8k]{wÖœÁš%T2(³Y^™%:*”Yë{o¤¾œ“¥²¬Åc–—e‰ž ȲֵwgÊLY²¡š¬Åc–×d‰ž h²Ö÷ÞH9KY‹Ç,/È=d­kïÎŽ3رdCÔX‹Ç,¯Æ=Pc­ï½‘ xq •R¬Åc–—b‰ž H±Öu•Îˆ ±äƒJÖâ>«x–è¨Ða­ï½J.ÑRÖâ1Ë‹°DG¥€k]{w\À‚%* ÀZ¯§¿©Íòì|¦0ãòqä×újj–,s“|ÓÃüõôr¦òjþr:ÏsÔó/†aàÖdhMä­±5™?œž…Ësyôí¬ _ß áúf0„psý‡œ-ÔvdÉQ–eÉí_ÏË']aK#l,'U°¸¸î×=o¬oÖA÷?¶A?îO)Êié15e’/iy¸å¸|K¢a ëëö¾HÜ £~—ÚN‰Û,ß½´©”—”×=·§%—´´²­ë»Ñò­0ñú¼|?HmG)­;.£µ(´§åœ_¿|~¸»¿´+ðúr¹»ÿçã‡p{¾zº\ž¾†÷çù¿oÃù¯»OŸï.ŸŸÃùêêéßp;ÖåCÙ>§e*—Ÿ¾21µ= ïõÿ¼r·†°ßªvoæy4o{io{l’*wmnod[o¹AË+%¾êz"…çë:.àÏöH‰zmžôõË2kl³–—Sl'Ĭã´]4d¯ÚòÇÿ¤æ–b endstream endobj 87 0 obj<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 88 0 obj<>stream H‰¤WÛnÛH}×Wô£4±Zì o™$€í à£ÅÂëuuªôi'\”¯Ód!AìÚàص]ì::Yíz¯â~üS}^MW³&"íø>ö亻YØ¥ê‡WÅÕyè!Æœú)­žÚð…í^í<ôÚg´o–ûÕ—Pm0Ð{màQ§4d°4ƒõ7̆ßjð·iŽVS½·~EÑ»ä±öY,àó›7ÈPê`ê~Ú‰•Æj„bêu»µ ©c–]ÜŒbÂ|eÞ;šÿ¿É>ÿ±·F-hfæûÚè]É(ÉÛRÕày$!  5Ó2/hŒîª¶?7Âá9? ©6qìøš÷ªŸÈ6($Ü í µÙ   ý‹€dpü‹qÆZRÛõ=1 I‡UÇ`¹Ï¶;Þ‰K½³!‹n¿*LÍyÒáË”g3 púãKG¶ëpÇR‡ÁéÒw­ +EÒö®Jöø"[(Wwˆ.€jf½ÂÌiU½\¹ãbÞ@>Q™r^‡š ÝKN†?u3-Æi!Ž#è¥P£lÖ›@x'K‹"R|^¯¡#ä=ÄTŽ¾C8ÄË. *:Âƪ‚õÅN­f@ k%>ap×”—I¢÷Ìp $°~×…ÌK=ìøX°á;gêqh·bÀïÉÚ”y#~³<Í@2¶ –4k8 ‹Ðš¿ts9f5 Ó$,ó\$²"e߬`æµ±Žz¯äúlΦålN¦J¶ß-~GþJ%«jSqYO¦õ±ÞJ}6ÙÀ<a€Á,Àûhð69î>vN\Vƒò€F9×¾ÁîQ1¶÷[}>"Ï™ Â÷å9E£"‹ƒÃŒi+ÑsQ€-Œ2ìû˜¶?¢‡Ü ¾ÕÞ¸¹5êsºæN]{À7 ÓDžå¢]ï•q^×Ôe>—º¤k± ž£TC“¤É|§áW•ô8Œ<¬üùØ´T{?²¬Yíêr©.[©ñzk‚Šõ6ànw„ô âBUaí:Õᢴ¼××òÓæeô{ÌÛ’.u°O{¾`e%Ôü½)öóóH] öOß]_†)pY‘¥ÉF¤éB´¤J}¥°£9Ž¬ÄΤ*¤x ©kô”±çHŒÀñŸŽºÛÞÏ÷Ý•y\×W¥̸ /ÊR‚ÔáØ=ñVá¦0ëœVŠQ£tSÀbjVèqAÁ Ûjbíö(Z˜-s†Ý>ÁÌ]øW3ô’–ñ• Y^`­¶‹z#6QòlƒŒ`º?&Ü5¬&¦KÁô.³ã ÀLŸóØŒ¦ÿ§°ç®?…AÄéSZgœÙ`Gwç°#]ÇðaÚ™½J_èù[Mk"Õ;Ç,3¸e.)a-g2Àf˜€"gíÂÕÙœ˜k{¢Ï"”¨fÆz°ö"HÞš{š¯Sé¡0Òps`ßéFf°ÏtfóÏ 73ƒöÁëªÞcWéÕÌ(¤¸ýó“T«âSL›Iúw:TÒ±œ‹î$fù˜õ]¶yW)¿Ñ)ãFµžŽÔƒŽî¹3VrX©wš¡~ž…9oÕŸP$S‚Ü öi ü¢Tu]Ѩ+¤Q!ç(ñÆyãj‰šBoPµYç¨*ôj¶izÚ`H½ñËjf(Ž="’¿·~›H9®ÍxßÝß F˜Ë`‹éÛ0YšWÚ·QÐæŠÙä²Ös]X‰½0ªŠ\uKa*À­´ð™j÷®O}q5wîàœÎUÓR§«$DåСÁ8]Ë Jà‹õ¡BëôÙ,*‰‹ i.6Ñ]R_OQÅíЧ"ú~l§м¶s<*î·qš- w㩆ƒg½a26¢Ç¶ ‹(ÇÄú5hsó8ŸŸ³g+×;s¦¦wSÝ—bsÂÇ×¹Œ¶0öÊûµ”A¸`7©”éþo)Äê‡T¤*è$ÃÜÙRÐwrʯPˆ†f P|›ãÞ¸f ª‰‘ž0ìc¡^Ð÷wVzË@ÉC†HYÜ52ÍŒ,ðõS õ,á;°E­‰Ò7P‰¹14•ä§AbD RÂ2г06‚êeä€b z endstream endobj 89 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 90 0 obj[848 0 R] endobj 91 0 obj<>stream H‰¤WÛnÛH}70ÿÐûF-¢ûÆË" v²F“ÖXAK-‹ŠHjç맺y§º%Å;À8”J¬ª®>uêÔì}^Æ›hU¢·ogïË2ZmåÝÏÙ}-^öÍ>GOq•q–¢ÙõuöÝ“ÐÃ>Cëa&àsOx( 3î ôõÝ»ë7èjöéÍæ7.ÒŸ\ôtEP _ÿzÏÅÕõâj¶X¸ˆ Å¬‹‚?Ïð- D\õïõU°KáÑ­ŸH` €L©ËÐbwå ÉâOåTþ¦ðC×åÊ«~¤Ê5¥X_ù\_9·i)´¤ùüó-º–éj»‹òoEíè(1ˆÆBQ¿­Ã}\\©Z„®…‡g²ÃåòjsõqÇÖfŸUç7·àõº:Õñëtu¶¾¥žt¶pVð\ŸžêSûÁ¡WúÞá˜BàÉ”7t懤ŒÑý%óî«@“¯‹ßT–ã$È0‰þQ«jñ:SÙ}Î1kʾØJ´–›85B¢tb(l¾ÏeY&Û ~T׫Êän¥m2t˜ í] a]õGÉ0/Äá0}üé Pwdf<ò´)wspjŠ ÇBpÀMüÅœ9J²§ìP 2k:®å”ºØw šd,B½²Å©~pHP!Wú»¥SÈÊW•dØ•B`ê7@Äu¿!ê7Ó ¬­Ë F–‚p;iÄ0ˆŽÇZ ²=€¾G Š®ƒÐ$ |g.Ëm¶Î 4/B+…‹mCè“1ržï*â©.æ.ÛI´ÊÒ2Ï´“«m”ÆÅn)—håk°­ã–N“ºê…Lê’T÷y¶’EQÝ¡Ê!¨Ê÷FZ|¸rÒÃîúK]v~¨îí±å”¥ËÉT¨$TÄB–èñE¥vœåhåÑNN—¿´1zøóÔ9ÿ¼rJp¡•„ÃD |X%‡µD›8‘Aã¿­å kËzµ Nw–‡<îcæÖU-Jèl¨ž=”oìbÝÇíªl( ^}2£ø ’¶#4WÌZ,΂|$Û+4ÁYÎD\û¡HaŒÀІ۠;óÙ”Ø5ˆš¹_ct›¢æ~‘röEI2ꀪδ¡âÕŽ6ñÓ!@{üCV€×ô&×z$´¾z9ЙÕκ̊mvHÖ(Í q ‘¡}ŸäZÁ]A½(9DXe;ÕDq—/h=ÁÄ-€þQ©Q³üx± ËšY¡½·ªª³E›º×•AWÁÇAHë*È­DªÛô Y÷¸îá¨DÙszª•§¶÷Îj›Å+Èé?p²8U‰®t>P}Ù*g2 œC%†Ë—ßK …V9W•(šRDµ °1ͽ¯'Qþ‡žI‹É”9ø â q~¨©?â ³391Ë #kû ¤„O1 TAj!±É’${ŽÓ'ô”Gû-,<úLø^Ñsƒ[¨J …Ðð}Ÿ$'šP+{W{Ð_¼I°žpr7 œý6R(_Û‹`j+á¹Ø«Å—×s çƒÛ–ß÷I¤; ¦Â.Ë•î*£8±xj§ÒùD6P Á©"ªóQp\:§”yE­)¨rN›Hu­€ª¹,×Õx…âkun©;¥¯ŸŒ ìñA ZN'%!Ç.HÐÛ å¨úTB¿oS[€R‹ú'Ú*¸«¯ÖôfßÖéÐ-ãHX\!FnÍÖ~e,ˆlqÄÃBÿ*)ÄðÎLjÊ/ê~J¨Â|àô^c d"çÎrL0Cˆ‰×@Œyú~«ÕÙˆ;À™ÒwVœyÿÎ@µkic˜a…º>oã ΀¦À€@ã«ML˜Ä?ÂQíØllüš­ý¢…ö¢…]ј™<xÔG¶° Ý7î`éÛSiþþÞª'»C¯"õ½Â”JÌ}ÝâÉöù gþåáæÓ|n[=ÍsѨŽ¢â(šqõxÓ[-ç53äÑv9Ê@¢fˆ¶jí4öÄ<ò­9:Ýrb#ÿõ jˆlPF[óÎa'2«Ó^kjiY³ fbxÞ´|á¸Õ¯ÖùðÐ ªû5P½„lFÕb¬ƒZ¬}qdžY× Fö¬ïØÍ•$Q»‡©ó/tSKÃF*‚6´.`ÂŽ¤±Ì·$á©©[ß¹’®0í ÿìñ¯8ë-G­.üfƒH^P*ÕŠò½AÉÚ;?%l=ë$<^ÙŽ¶V†Is^*0'Œ>-³`‘H@iBO‡©fÐÞ ¹ÕFÉ1’ì--»‰çÈ´´Nr¢}ÏåK©P ¢‚bÑÍΖïÆ¿‚U……>¨¨jŒ1¿ú%»þ%Ìbí¢JÀFX4ë†"\«8]%ø¼‰Õ‚u⊂WM˜cÐU´9-¬–%,FÞ¢™Ú3õ§‡8Ã[ÆÛ‘ë¢_áðA 4‡ Âÿ¿¡û¯.ZW‰ÝЇ>Ià äÇsHðqNoU=ßAô‘¦õÁr`ªÈ©ª®é¶Tùƒö¢hg%•.eAØ^ŽuÏafRù }Ë .~f,03iXÇÂeNÍjÒ¢¼ÓËE3ó_#š…‹ƒQÀf.ó(-62_jÒPÔõ$—“‡"þ¡šâD6æ®ÐØ u0h`ܸ£þÏVѸ$ærêcnº–d:Ïõƒlo)âë¬fÌÖ¡¬Ázj :‡žRCF`±ÕSÙlcØ£ÚÈA'(ëó«M>~Њ ÐþP'XŒUFfcÔlí])wÍm ¯xÓÖÈ^мp³·7òENÍâÚÞÈv§ƒfáÌغ½y|Ü·ZܦqG t¦-};‡ÍÌ£€!QkåðD»Šàf‹=F·³Oèñ°Ù(Ydo D4ð{$.î þQ„]Û¶šÚ ÒqÄ'­Ãö¹TÊ@Ëš4H·tþ´R“¾‰YªÁt⛉ý"°Ÿ¦ßo{ýˆF̶ºi6¨µ¾ØC¨^bjàã«M²h³~‰ Åùýl-Æ*]‹±NÉlÝm£½ì°ÒŽß&Wók†Æî9mw$¡@3S Æa5«Á5ÿòpói>Gÿø7š¾ÕÏü÷÷ßmØ6kèó¼ÈàXî9 ûɽ÷2§áOò¢Õi0Än£©˱©ƒŠÁF+ƒ°Ö5<Ƶé½&KÊû#NÐAžc•©ÅXçj¶6™­½ëæÙWQbKŽŠ'íb™à¹3×..‡-–.rÊ~Kþ…NÍ“Ï<`÷Þ;_d1™ !ÛÖ+.Û¸±Æþ9[þû#3v†ë±Ø0g1V˜³kÌ™­ æÌÖY†ö„Ø@ô4†Ý­›Æw/éj›g©]Êxfí¨cuÁbˆÈàBƒˆ0ú³¨Xj²Í ¥æ‘sÁxHæ«D¬‡‚í|æÖªZ˜›†a5 ¬í`YHÏM˜¡w›sËø²±ÂeN/[Í„¹È©g[®±¼ªwEèWžYœöl&±N š»@#%ÀaP'n•Žý Ô×ÒñX5,©£A—©^:…xnïê®ÑŒ³¤im`î5dúñ»\J‰%ôøn8Qþ Ö…2þ¦¼ vœ†è¯ð±H¸¶'ÛrB@] ¤²‡jÙ…¢ÝvÕ¦Zø{žc;qÊLÛUõ:ÎŒóÞÌ›í«ƒ8@ôâÍ°Ó*x ú”Z Öm"h{Sk$1_ÏÔ[ò»£< dyúÿ5Nä1íïSµ«SFËÌ dp0K9Z!—('´ÑÐáXÂé äép)í^O µâY{a»‘%$ci,Ì8‹#ŽU‹49›ÙÄSã;e ÌX£´’°Ždd¨Pcñˆ~ÓJ·:%%r`[#ú"Ô×€!_ÊÃêÿ݈"ÏКmì7n š­÷û ÿmÒ-E_Ÿß¿e•cé™yj©ÂéÇœíØ–öÌüÔuèHƒÜM­Q‡Ò^–ŸZçÎíØh2[Òzc°ÀE‹T¤AÕ"Ux?êÅ4Æ©’R‡Æ2àM•aÌ1úB0TB£1%M_³\d.l·R\ŒeÌËÜQ‡Ž4qsùC‡í£bÝ„_M¹î‘ž¿86Odž˜1uÝô†¥& KU¸7™>l5ÁÛ<š—fra>:s";§QdVOÃ8+‡“Nfìð¹I§§¥c ­< „%±ÈWT©PhÕµú!•©Àª)U\«LS –•ªÖBG*Y»‡ÅHX‹4#_&©ÐÖºHe]K"ý%0¡ý¹K  °ÌçK)æË–JRˆåü#HÕ;Š‰`à/ü½mjF£Ü•=¶ýΔ0 Eûö€ïÞà™tpaP`ü«¼|‘_í›Íýú¶qt¿jšõíÏ»ïb•ÏvM³{7ùõŸ§;‘ZÿØl×Íf·ùl¶û-V¡¡¨*›ZeE…>UVÈD–²7A3ùb. #)h‡*­cµv~7L((6.dÜm_ÚŠ°‹ô£êÙý^ÂKcw?\V/ÿ:Šé×]éh^cª¦ö㯭ñ+ÿ endstream endobj 92 0 obj<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 93 0 obj<>stream H‰¤WioÛHýn`ÿC}”©Å>x-<|í¬1¢$vY0h©esB‘Z’rìýõ[ݼDŠMo²"S¶U¯ÎW¯f—inƒuçç³Ë<Ö/rËÙ"ÙÃj¶xßK˜Íƒç0ò0‰avu•¼Á’úq9x–C¸ ¶ D8¶£„ ˆÕÅÅÕÍ5œÍ>_ÃìþÚý΂ç3 !þø÷oøœ]-Îf‹…[üíb øò_`‘µÔ÷ÿ¨¥ø†X ­ò‰úx”Æ,‹ÝÙÆ‹¿”=ZØ›âZ–PVõ#S¦#¶í*››³Ñ]œËz~?¿ƒ+¯_vAú=+ 8†hÜ·ËOk¸Ûřʅïé\8À'è±!•gÛ³Û{ [¿Ìæ*Á÷×w7øñ2;Eø¥»ÚEí#-­£tªBÑQ.G6¡0žRêØ£¯‡8ãg¸»¿šÀ:Ùí‚xQK|çiÁxµøC9Ùõ¶}°ŽSF›”qíOî]îZåþr›ËÂ8˃(Ò­2üE‚|“ëCˆëY;ÀSÐnTÂÒ´¢R~Üþ¹h¡49ä½9´šì‰¾ì áœàÖm–¤áˆÂ±z±<‹ø§!Ý}6Dd›#ꚶ©Ó5­Ýïo¡)§Äu=˜â¸ª‘ÄÚe/É!Ú`ƒ„YNÀà3ЦÌvÑ ˆãZ.a>§rï÷ðUÆ)v{S¬ƒ÷µqÙÃ%…U^ŽãhnðÜëòº/NÊ8#^Ûö:ý_²@•ZW?Rcö0Š“t‡£÷‡ 1“‘\çró0†ø°{’©¹4XGÛ©*Ùj*ܧÉZfmž@zˆ †QFz}˜RŸøØÔX^êå © ÍûÂÖæJx ´½( 6°Rté-ø$ó ‚,;ìä¶8 Yð]*g²‡¿…»iã½S#S¯X Ó†ÅÍÙh…ë0WÄäøf°I ŸÞMíåÿÒT•íeƒã¸Ä£¸T±vûP%jïa®‚šžrË }Æ â<[ ´µÌŽ«:°ä^GøÄuªüâ£ý4ߌOQC§/J†„ìtSŠUK~ DP«&“q"·ë’á/ `mßnìû%¿;´Ú¼úÓ£p ª@Qø]fتA”%µ©ö_ð,›¦kJ_P 6.ãü¸çöØAj>Õ‹ée-÷¹^EßðW‘lHŠSíN´U¹µHƒ8Ûâü Wër‰Ö5T.ÇC4WZ+{RÁfjá„}?PÿþmÕš€p˜£:p˜¨a?õ ðIñm$£h>?IPyÆÀ°Ïá5 0/ÁýÚîâ®KlÖv ±žàË«)dÃëA¯wWâŠêâ=ŒUÉ*Õ ScG2Ô~¶{¼äŠ® û’¹9•È|HG%½"v8´‘¨ók™s,ppÜDµ˜‘ѯ?ßß?þëó×O7¦Ü¹æÜõ¹Ý¯iD q9"ðOd‰×1IÔª£´Pƒ(Q§Z‘öVdʱ-ÞÊ_ùd¯Æ¨ÈåSŠdd¹jAÅ O›¥e”´+ko|½” µ|V†ˆº¡ ŸJâµUWzGRÅø܇(‡1ÅÐ/i–ݾ1ɘÿ*‚ÈnÛÆ]+*þ8dùX 1ǯc{”Œéè» ¬™÷^yœ(¢5î:CÒÙÀjbæƒ13›8®ï§üˆá„ø^y“ ¸Šönñ,G"w غØ_~[ÒÉ Øļ B&!#HlD6žbMFçó ÌÛéo»ÁÍDïhl„ëkl|­„à›)µÂœZ¿Imïgã7Þ q¤'¨¦7Ö(áT"7ÕÑÂ-$âù3û§òθE<¬7åįØë‹QÞ°þó࣠L-Q«‚â6a¶>èÍ<%¯ŠSIí€[òL†š«ÿt0),J<ÖÆG gŒÒ8‚ºzø„™q'‰–æâÁaÐÅ}ñØHØÝš©Ya1ñ&ÆÀ¸õç&®e$¿S5ã*ÆcÊuœ–8¬OÍ(cª#‰TÒp‘ÖöNÔ‚C¨ç”2±‰E¸(*ŽŽFÂMK6üæ/Uàô= ž_˜á[ÄN g¿¾è· ë Mšô%æöÏÅqftB> ¸ŸÍm't‡·£f¦¨û©²¦‰Ó–®EXǾQYðåi÷Y×›ÍõÝ£Ô®vÛâE%¨_Zí^ð”ŒÕV+^ÿbrz@ò}´>SsØÆilÒðUbJõÕm ÅÛ›:†#íp?ÒIMò~1Ê}ât< ÖyˆŒ^ûgJH¿<;j’^d+é˱„-Lc¯˨B›Ø,: Bn0Ï9V¡ Pf+ùÙ:WÖåk„ Í>X •\ H­êÜgË4ˆ {óà Â̘5ö±TþO QÑæúX†k€á¾«ÂE’1¿Ìçb´œ¾,e´_­¿Œy?‡ä©‹GñD 骚 Í3ƒ¥Rž°Òÿ†|°û}`‰mî`Cyµ7KLîN©Ú©ù#>¯Ì N?èP9¹ð uN¢Ÿîð¦ >òm<`º¿(ç„Š£@ÃxÈË@ÏïÔ›ÇmÉ‹l¯·‘M€xU`fÝp—áÞ¬R{þ°úU™ ˲ˆ¨ÏD…ì+ ùÅÛù—$Û Ìê+u¨œÌc„{å|>Œ~¼ÈTª<":e¢Ðn]9{¤?ôÖáD•°P]jc8° þJRœ>½C°ßË lÏ ~‡$ÝÈTéuØ-º»fÇ|7“ƒŒSî½´.z|×ç’El¯¸–ðÉ®\‡Û·`·dö÷"hzŠlãÖv«?7ùÿ!mšüWû¢ÚKGœéA%bMˆý’Ì£D^J™æ1‘¨¥‘îçwæ( Ôø*7‡µ4b‹ŸÂÆ¥€Ðv7D” •…’Él0Bö_«HŠ ±}z)ª¬Ì¿Ê`󘽠ôÙT¸Fü~gÂ÷PPÏíâs8 ¹à4|ÿøíöÓíõâQýØßÇšàq(¨ëñ¾j‹¦ÚêG•[Eå¬üU¦!^ å„7‘åâüÜ`ï÷iúboæÌyÿ¯¦¢Ì#”µ4¡¸¸ëŽêí[ÞŒa‚„“>v2Î33ö«Ií oˆÎ ”tø­ÜKDÿ÷]‘lá) âïÓLîƒ4À#²<ÅìfÁú5w¥¾ã`§ÿ>A=¨ŠRŸ¸vク «:M± ZF5ºýa„]+ßPEC¶—jËç ùÚ”ÓHrŒCpÑ”d–I¤çLÆY¨$¸bçEë&PþB±×«ii¬ô ª#" 3³’%ÕEóAO}p´žð(¥êº¾«Í/Ó<ܪè°t—yŽ DãËÙU’çÉV³Åû^Â¥˜ž™—Ž|}'§ü …hx•ÌÀx´Öïf@—˜é€Z4±Ðø×÷wV¦ ì)Ô\©[Óf·ãl?èYÂz¢ .j öP‰9,äóÓPë]ìU¬ž…±¬âÖ0È& IÈtÀ endstream endobj 94 0 obj<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 95 0 obj<>stream H‰¤WÛnÛH}°ÿÐÀ¼È€Õê›d `9NàÅ1-f;0h‰’9¡H¤ìx¿~«›¤xQ7e+~°$›ªÛ©:ujz‘Ñ*XèãÇéEQ‹§p‰î¦ót‹~Lç¯ÛMoƒu”E”&h:›¥¿Ðõ%v9òˆÄÜAŽ XHG"QÌqÐOŸfŸ/ÑhúíMo. ÒŸZ(ŠàÏ_¿Ãû|4›¦ó9AÍWðßùÁ¯ø…æ9¢D½þOý)ƒ˜0xKªwÔ÷°ðG)fŒp4ߌÆèlþ²GK{x¡¬ê·L™f ;Ž«l.Gãë¤ctÏ ò›Ûk4 “ÅÓ&È~æ•¡ƒÀÀ÷êÛÚÝÕ|¤já{ºqÁ1D‡”…£ÕèêÒÖ¿¦ß·A¢j|syý,T*+À*G*`®¼YÒu%oÒý®‚]\TQ”Nn÷h×iyû’pTÏãœt}¡ûq’¢Çº@(ãp¡âþìCõqÜ<‘cd Œu£M`”6…&ª¤ULð®ÎŸÃ‹¨br0`Å.Á¢UŠ»ŒVM’í&JLmA•—q“‡-Zn/#k:KšêXÇÌöHóü)DA¶Þm ¶*¬ë¸Ó$¢ë›·â§¼]ª.|ž„uÝ6u0¤èØS¤MŠŽÉ‡qêûBOAŽ Õ,r‰`ÄÖƒYÊ“²Tb‡u=ß>Ø“tINú@2£/qèëåÛp­^£d @\GåÜ4b&°ë4ŽUŒ­¹ÙmP²Ûv”kèR=G¬zÕ«†–Y@á*ŸåènŒ1>G1ˆÒ0/;›B+‚úx{õcþ[¬®}mJ „g†­-™ýšž~ÙpðŒ´×êÇòƒ¼µu§IßÞ§þ‘ËÃrtHŸXçèàƒGÇh+8:>¦»bëO­óÃzØyŽ6º• ( æ•ñß¿¤YåöLŒ•x˜ÞÐâxXÊŽßñªÉ4I“ÉM]S¶fluÙ ÆQäâÐ-ڤˣw]œŸv‘H_5MÇý=cr3”¯ø ­ëèz×÷{ƒ!kÒØwÈ„,=¿s‘„E0É_7i -:Pç´®páàq[B·š[uäé;‘ƒ¢è{ƒ{t e¡×N5 ·Y˜Ccäí{õ9ˆwíÙ¿'TQ¨Ó®œqaUÏ 2ªÚ|© Ñ?; ×…>CB®ä?¯¨#MŠ,sÝ \-`råÛ8Ðg&„ ½d¿¹k=û÷Ÿ\.rÅâ4‰Ç½·/c ôÙñ5þV˜Ør±µQ=zóž‡gTÌ  auh¤IüZWNÆ_¨ˆ` ®sP†jOYº[?mwE~†Òg€9ˆc,&&T'3©§‹ºew nÐlls~‚¼?hBÏ; ?qTÏöñkùjáGm¹0ë²eæ ±íæê¢hT÷Àc´^½0ËiV”›ªÚy¸ ² ^€À} é&Dqš¬£ü дåÀ­xìõó!(˜²Ó@ï½›JlÚ.ÜMb@뽛ʽÞñvìnzvpYx½RÝ¥Âým!úîºT¶K@ÈG› {ÕÝ)b€‡ôƒ€k«WÝ!­$üÓ¯áøºà <ƒ&„’V[¦# Ç9¢£ëôLbZH{¤#¦Å ˜Ž Ü!1ý%ŠÃ¶’¶”Ë¡R«Õt@I ø¼¾b.tñýòúéÑ Âé…v9Ü|EZklµzâÕÑìˆýîQûþ1LOÐ`?sõuh¸sâ5FAiÚÞo;©ßꜸe};]ß̾_ýyu9¸ú{n«$·7ÞAš,Ïœ§?•¾ @,¥qœ¾äl(ÊÓèDçêúÖÞ ®vü‡Õ‹ù°µ[â§Z^h«PÅÍVgâØri& »KúÓ¹NÄŸUî«mêóÊj*çÅQ¢°pE!ØúŒº?†ë(Ir/ {Ñ÷gçJøF…-—¼3×Çž WJŽŽa9=þ ¬tÚ+wl¬EvÍ¢ÇîN:Ê=g¸È®yþìVaò¹¿¢d™¾XM›OQ»iábé¸RÛþo-£ìákhÇC¼Ó<¹AݪÏ+û·;»}ó¥h·r†º²šÎÙ±ða&"“R*Ù‡ù Kî—=e ü(ÍØsf\òvC%z'Õp"°ô²{.‹H"жÖ™åÞ¤YÖûœlBÕÌ…MMËšÝg¯(ˆ–ê6-à¾=›ˆ±f¶s»`ø ÒÖîa`|ê—]½ÙFJŒaøQ“?=…J‘€ºÛ Yk2 fùÃ1 ‚=Ç/©á%ÝÅK­ëˆZË|`qŸ&¹PÚ¡Œ@*ÑÞ™u[ÒjñØÒäÐ! ’å@jÒÌôG50s±×uÔô¸mÇuI>´U"e¦aÞl]¡öC¶ ‹ÐeZáu„®3$tõy“¯ã0AvµûV±+Íí]b—úpÔÖJý*) 0ß…}8’pÑ3hƒ0σuˆ öuñ¤åkP‹ã’´„x)qÿ/xWÖš4aAP×ЀŸGãË ŽAG” øAmøŸ¥qx+tï-Ô#jõkídëR%¹uê¥y×=DA05ðÔ%˜–´;©pªB²z4s¯Æ€5ÉË! ¶'ÞñØv_ãç Þ…ênHP *-‹–a¾?6Î]Ø°hZÇÆ2\p[@w?ÎÃr™LšC’T ójŽ:Ûš§ôÀEÉXÝÌgÆûâN8dâÉcxæ HÅªÓ ë»®WSœzý­z´ÓÉ¢ÉS…ȱ²üÒ¹NS+nÈš.׸ž~CÛ4Ó³SåÜ›ü øç ¤¥‚ñ¢(‚ÅÜswÓYZéý˜Î_·!šÞ }mf:›¥¿Ð]=ö(¨ºGA‰y¡`˜HØ+?ª^˜~»DЙ9E& Øòð%æ t§ØßPÜGÝòhÄà·.Gº²J]?-€y ¡:+Û…Ñ¿þ/€pµí endstream endobj 96 0 obj<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 97 0 obj<>stream H‰œWÛnÛ¸}7pþa?:1Í›D ( Äi1È2uQ= Š-'š±%CRt¾~6)Ê™t4}¨ª˜âÚ·µoÓ›ªÉ×é²OŸ¦7M“._² ©Qýÿßú§ ÿ ”ã+µo,ŽˆŒ bŒpN$ÛÑ®’?5kñ&ø!¥R£šW®¡9'A 4æj4¾+šl ŽšßÏï`–Ë—mZýU[ 3ÅPšˆ{ÛˆûšŒ´/âÈø"!AíHU6Z¾Þ£Ùæ1kßßÞ}ÁëÖ;­ùV]­"cZZˆxÖV|³¶ª‘8´¶ Gy­¦ì«ª Š3«ß‚óp›îz^1N ŒEÖ=o0ž¿‡:ÛdKckW_mvª6=‹öNÆËžh))‰è¢õûëö)«jØUå2«ë¬†tSÏP•o5”kh^2ئM•¿ûâ~…Œ9QT2—>œF„IÅC­‘4QŸ átŠ¡WLÈSйT("V§ „øPƒA¨B§M,{¨‹ñ÷ _\y5‡a‰¥çجÍbN"ô—Hˆš"æaRçôYC¢ãcYÇ?ºË%aíÏhpÀÛCΣ ‡¡ô J/Ì(ä>´Ú:\¬ü”VšÒ‚PnðQ:ÅŽRŒù" $´"TÅ=Pf<ÏhBÄ‚a˜Œ£2G\ u²3P%°ø^RtÏ2ádhwÌøº- ‡ ݇–„îCKBç᱃<…µ­©óð/$˜ëŠòƒ·;/ C‹ªÒ|‰N½ C‹ª&¡‚¬©†„r¨¦‹©!¡º€¹g»HB$Ÿ„îCKBçaGB÷¡%¡ûÐ’Ðyxì J!Žœ*t3G°˜\6Ÿxk!X Eˆ¥8Åå—€‡WDFÃàØ;ó ¬ˆ˜J*u Ú5á ó¡,!'\!…Oп÷}a¹Æñ%j†‘ÚwpÆ]G˜¨‡[–³®[œÇ¨ÍþV iut±å³ób\¸h¹îº((;º(cŸ\lóÀyÔá¢ìIlsÄyñüèpï8’j8½0¢‡*@Bwív.\>9!:•Z9_É3¹†¼€²Ze4%T¯E··ð#plþÈwÚMçþuÓä“y^<Ïqƒp,o­:²½'"ÑmpOYó–e4o%å*3‹GÿÁüÞòæÅ(aÌ +Ž†™0E0[&am1‚eéò¥[f·¨²È &,ËíöµÈ—iƒ ¶¨ySãϯ¸~V»´jôçzÝ)ñQ-þs}*÷öR- [Qòe4^¦›76½xî>We T !g„²86!Ùîr½C;øÄçŸáî~6¹Ÿß1èËOóÏï:·{r·OêRÅC«‚í.¬*^à^ eÇ,ä݆ÛFY){þ #gyþ0‡« ca0F+c’n³Fo§i±‚—´ZM–ÊÔY££XÃÕcò?§RÊ©ÔBæMØ̈£Îx|ë4“øIt¤öI­Çóƒ^˲hªr³Ñ”Ò*{õqw·–ÈìB‚œ)m‚&ÈË Rü;g1FÀÓO¤}¦™¿§-?$]Û¢‘¡²Y‡ùQV°ÊÖy‘7yY,®úÖ@&ìm0ÙnŸ|ÏfbÐ ¯u%Ñé´Î7˜Ñ'ìù±K‹ƒoâRåR¥”± ²«`/È‹‡¬ÂÝ·[û‚½}83¸&šà\":¿KÈk“š_ÿŸ '5_ý öK‹ˆœµœÿ‘—~£{MH\H}‰6öeôZ%º$´$ZŒOË|ëȨͰÃgÚ1wßW= ýʉ;J{.Îùª¸Ôøïo‚*@*œ<º,»Ñ­b·ÁÜ‚M^7&–Ùûn“©a6ö¦ ¡ý°î»C`푧z|LfwIÔÿ%;hsö´ëµf×Ô»O$}ÚdèÀCuè Ä)SOa]ƒß”oÄC÷Ö¯9¿ `êÊ'}½ž•º½ËÍëª+@ºl¦›m‰ÍWYÑà$€Ý{ŽÑ亩^—Ík•]ÃÓk«|½ÆÈÖ¯ºA`ïi‹û¤7†0ãšä¿(´¾šÈq†MbÜNÿIà÷‰Ô¼¤ ˜J}¾Å™«·ùÁ¸ü¤mœJý"¡8 ±VÉÓùßÔŠè_Ô AÏd@oì;LOGɬûLj™æ±úÞp¦ Nª§Ìýßez ¾†m-óL‚aUìbŠ$9[bÞô'ªÛ\ʵýàdèíÏI¸b‰})Ä óØ1æñ¾ò>] endstream endobj 98 0 obj<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 99 0 obj<>stream H‰¤W[SÛH}÷¯˜Gy Ës—ôU’* ,Å/x7Tá¥Ø2öÆ–ˆ$Èn~ý×3ºX£y!RFîîé>}úôø8N7+‘¢wïÆÇiê/ÖÁÝgÑú<žý÷ ñÔÜ„~º‰B4>9‰þE÷Ä“¶Ã‹¥ÍœØ\ ‰\JlƱ@Ÿ?|8ùxŠãëS4žœb¤ß0z´ÿ>¿…çdp2Œg3Œš­àt¶@ðç;üA³¬þý¡þ+†SxÄùñ\›»È%Ħ34Û ,4œý£ì‘ÌÞ>Ę+«ú‘*Ó”ÚB8Êær`]„i°Es ‘O¦è$ëMrCÀÀóDþkíîl6P¹ð\ ‰g6Dg ƒÕàl×Ö¾ ò‡ØÒE#fŠFò¨>%ž°™,wƒõ€zNåjŸú …l{Tª”æ¿å\ÅAà¢Åg«ÁŸ•¯2÷µ‚_8f37ûîøsmìî#(Þ3«Û*ró5û^™k;¼ù. 4xeê$¯Å×ú:¦C ‰tÌ›F(sÔuˆ,¯0ž*ON/>"ŠQ@9e*\UROãÉ+°äHlS7ÇÒÔý]qQe]Äz.U¨´™Ìj$¤?âhpÁóÂê1qÏöpÓÜJR?\úñí¢e€^üís0V]ÓÂuÓ-e%¦ Ev«Y˜~¸  Äã¶,+U‘àO~óÊ!T ˜Ó츎Ø̆B,%óoàÜÄ~ÍG¨à#ÇIÓ‡‰çò³ªÃ5/û3p‚MÅ-³ò㧲ˆÏ)Û±yZi£æáøöÉ÷dfi7º€¬è0¶gÅ‹ÉÉÃõtvq}u|Ù…ÞŠ\mêà†i‹¬¡Hc…¬ïhŒpâš(çV¥( Ò¬Šn¬’Ò6cm€e áÜ[k?Ai„¾Êú>¤ÄZ!zN £'5¿ü­:JÓ òã ÿ¦ßf4ü<û#w(*“®Aøý8°^üFc[/@5i³JV†(3Œª@¤ñ» ÂïðÞã§Åc q” [Ž†ÏöÓÜlûa –ò­°„ IdA-W“ÛóËëó.D8`RÐ†Ý &uGÒ@"îÁ ÛAì•$mÄBÑ„òŸ‹(\¢dço·A’¢¥Ÿú(ý0Y “Ím´óÿ[Ïá&=¢F4f¢½wKŒJ‹DÜà ;H9åY2î!ËÑ° ÓÑ´ÎÕóåpäX×êé\#¾% ·§^åy Ƹ€×ñ¼<ÅÀ¢}9LE ¹¦*lâ–ýµ„hçVºö©ó·º…ý!µþj%ñ _ÕD‚:}ŒöÝ›ÍvíG¹™ý†U¦ÑûáˆYºÑjn­¶‘¯iÅòåóBÑCr„*Ÿl“iÊ{Lº8ëP!„ Öv”uWÛ‰YqF^k­L†¶÷—”¼ýu|—õWÜY»<¨ ) °ó\€PÚÝ?Œ½¹¤tm©‡xÙúñ£*ÿ.Hÿ1({¦§SXÇS"›²Ð(ÐԸ씡´Žï†맷â`ŒöÐ1Gü(·S•/>¸ŽÂ-˜äjÈ+0ÝÍ@C`&ZJ´MvU´ L§˜:k`¿&á:¶(øöúï³›ãˡ¿¯»;.À’ä Ë,•™¦:ÕÆöÀRš ¨jr¢ZªdS(œuLNÞ®êMLA*%!U;EÉ+c“»oJ,㮪Wæ0×9ïЩí絤•3ʆ«#¤$o£i6I¥¢4çdpg¶Ç«5^‚0}†$é*dr¦dUeqÙ{T÷žg{0²ÖK×~ Ý’+‚ oaOž~Sž¹„aíåp|0€Eû42,l vÃv%åκ-_<¤ëTø%ƒ/à+z b…6%5žâh4XÚ(£5l"Pÿ%Ú,ØÂ@ûq‘ö'à¨2ád‚ý"’9Ñ„¤u®¡rýÒ „±Â¢œBüm&?¼ô#s?VÁ¼±)¢ï \uTöms.‚º6n•8ÀßwïõÂÖ㻜zß…A tê"—@LÊ—£…Ù'¶èÒ® ’‚Õv=îËø§i¼i×iØÝ„sóÂG0 aâUð=¾› T €+àdãùîCÏxíûÆeµ™Ì]½V,W×€^×:PýõÈ~ѳwdåo$ƒA\ÃÝ!=Ý>2?´37Ć¿5OhõQ¬â‡º%œ÷ì 3ÜÌœØu‰úÇeGRix`\íLæ%bXuãÍ"Õ]®»4ZéçnµÃAîW%½Ö]K?õQûa² b»'-²¿q#!ÌÑ“‘;°â¹˜`µdRí–=@’䵶Ü"]®Æ<‡E†á‚:Šµ#ó’þ<|Tm=ó*ŠÈUš5 '©NýÚ„KàØpYÑšåô ¢˜¾géW+ ä?PRsÕ—röZBÌăN€rIlNûÛ*­\¨É—)O© ­\U­]Ç™lí:­Ýÿ,;ä’•sn{EÒ¯>ßLþšvÕ¶ƒè ½ÊeÃl¥Y´X S¦ÁÒnz•í*ù€íÜ«8D¶ò^=ï¾ñ+PpZI©²^¸Ð-¨}-øÉr+Þ ]랺¤¶t{neRʾã=[ÖÝ¡äû+žÔ"–AESîEPÜ™©IaS[ª ì?¶£ùi­ €A<¸¼këê8ÍáÛ~XK»÷VônV¢÷äøæ¦E>»Œ7Œ6°ËÅ­Ó.ŽÀ­Ž€óƒQë¼QæðÕÎ zŸ^<œøq¼ â®k±‚¯‰ê’àAÕ<r•N´ˆë8 7?|-žçV+†=›‚ ݃ØùYcDˆÛOs·ÖªðV fžÏyfÇ7çg³‡Óé_·g§·]Ehgâ ¶ŠÔ>€;DÁÇs ¾#=ÈíaÜ®çÈUwa4+0Ü%Á" —Šš|X«¶‘Ÿ‚Û4BñsˆàdñÇj>kS{Uº†M7}ÙF‹¯›ð±²HaYNz·\ؾUrcj/cÚÀË6xñóMëbr2p­ò«œœ£ƒ9Ìv÷%ö² ›‡ÿ'½êzÚ†¡è/Øð#H4‰Þè6iHðЇI !·qi´¶®j—¿߱“´Iè^ Râß{Ï=÷\° šÜé>Ë2³qÕY¶Ï–Ìê>zül®Q§nIkôMi¦iWó[^$¨Û%l¤Õ6S²Ñ9¥ÑÏ^¸2IC^MÚüï¿GHÝ ÏÏøù€ž­ùBh±Vu·v+SÕ즾3®¯VrV ­AåÍÜ¼í¶ž{7ØûÄîVVffºR jâçó¹Ü*Ë!½• ´VFW¼ÎÀU2‡N;¤=ácõŒê›”c@i¾Ìù:wDy„´ F€Õ·¹¹ƒbΠ¢ÙViâÈ•Ñ{>w?7½YÔ¥§QŒùr€á§Ê¹ ÁÃIdŒ1T©B „p¢øb5·;â´˜‹ž¦'5†‘8À ºÝO…ôfŽP³Óébù;„$XÎÔLn—ù!ÖØËÜqÒîuö½@£Ërš4QÑŒOw÷£›»Û럎8i·åz¯¦—,„·È²ã(Û£üDb÷LÐ9¢å”f…¸ JbmåšlL[.¦ÅRä ­ |-̳Ü#7þÝjPmÃaÎü¿iñçK7Ùá–F10ˆ•úfƸ9Ò- Q€[‹•Ð…µP¹YšIkàvßbûb›Ø¿¬²L ³r¢E~AÄ«ËÜÌ^=¤Ö²¹hxáÃñ2(?V]Ôfˆ(w÷Ñn±ntw'1ª±g^Äjjô¹c~Ö—± ö’Cˆ°ï?T˜%é¤!`.øD/Ü–ÆDŽ_ ¹Q…yáóPûrÛ’À~ Ë †jþW g{RÕ-íeÉ;%·²— ’›Ös+µp¥èÓšÎ(–Þ¸ påæô€yp0 š>ƒ÷„ç ´È`"+h3gŠŽDûLf|ù,ú7,šœ$cuvhì¥ÇFÆÿˆtÓô³ #vê9ÛÐ1œµ6½g~`aa%K[_¾^ëb Ê€k­ùd†L?øC©µ\Gô¶Ä¿çÏŲ\öüáP¾’‡:S©G(lŠM1NA9ÄÄp§Õ-ý»¯7HãδÑgV/CüŒË-ÁµrQ/Ûé|Dm ­è·æ•¤^7å´z6¢ÑÓv ¼4¬WPÌ”VbìŸ ùMD endstream endobj 100 0 obj<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 101 0 obj[856 0 R 854 0 R] endobj 102 0 obj<>stream H‰¬W]sÚH}÷¯è™}Xœ2úSRÊ“*Œ‰‹-0›™d+IQ 4F($ì$µ?~oK$¡– 3!CŸûq[íuìϼIŒ./[í8ö&s5EŸZ£p…¾´F?V µî¼G?ðb? Pëê*üŽ>Wb›!Ç’˜ $8Á\ ‰J0ã–@_Þ½»ºî ³Ö°ƒZƒŽ…’wz<#ȇoà9:»µF# 4šÁ_G/Ïð‚F"–þÿ§þh o°EáÑÊžˆë`î ‡L©ÅÐhyÖ@磿ôy$=¯ _´,®OM©>šR,„­Ïœž5zA¬è3…Èw=t¥‚É|é­¿EÙAsEöë®;:Óµp¤1Î0D‡Z«³ÙYwi'/­;]àA§w ?Ϫ“¦Osᦱ*“µ]dKŽ·d’í¿¦jæ ½ïõ»·íAýÚ\ÃMüë6°2.©Ä5‚ †ˆ¨¦!†w£Þð¶Ý7ÁÐã` `–píÆŸЫPØq(ŒbF\VHfл<Üô‡7ˆ  ?ø/lÇ)´?na¤ Foæð"ÌÃÍÃ]÷þ¡=¸ëwá&(y”o]x(Co¡;77÷¨Ê> J:.ˆ‰- PÃ?»÷í~üç°ˆ|C,îÛXFç8@ÛÁ’ØE†Ú÷7ÝѸs÷Çø¡Ûy@&¨õm?F‘š„Á4BoZ¦Üã6vlYœçÛñUûÊ sdšãj1¢&iŠ¢‘2|œBH.µ¦lo½¹Þþ{„&s/xTÈ ~Äs?xD_Õ"|FsµVè—_Ì…#Ç©†dK!Lóld$9N6$åØ%Ü5Í37⧒pLl^7ÐÂœÓqâ!-†9;„zÍ@“ãÄC¸K—É¿1Ñä8 Á®`ÿäH“ãDEØàHµéã”CH þ§ÿU0õgÆu\R‹Ì%æÈÍÜØ— ž2k¥M‘©µúÔ˜‚¯9ob¹N¸\Bõ&^®£ æÑRhµ'*ŠT„οŒþSJI_¬\(tïÓdbµª Ÿ  ‹­áËÇ–^à=ª¥ bäGà¾VÊ‹ÁÉúROjýle‘Z(pº…J=¬¼`aµ å¼™U1(7øï¸3 L]aæR8»R0Z‰cUFÓÙ¡(V+pM~Ü +÷°u Úëg¨ïýÇ ;µLYŠJ¸Jg^Æ£L/âaÔ›!õÝb ]<לSO~¸‰Ð¨ ƒHNû“ÝähŠ]P¼Ô¶ï,™­•šbôa®´Þ^X»Srñ9ú”&= k´ s!’£~¿üínOû4¢™¿ŽjV-¡û;†›ÔÀE v‡^»ØåYú¿›Êl»JöMåUUSŒ" Z{Á·…³º,ªEñ¥9a’¤ÎÁÁÍ+”ñ‡á}ÿÚ”¡[C¤}Ž´’¹œ‹TäoWЊ Q¨}ßËJÔ SÐwªI\‡›UÚïµZzþŽ8ÕÕb57¾4úBç©Ë€hˆ;à,Þ»¦©ù¬ZT›{O»"*bç.A¡GUG`všD2êh¢åv¿ý£ß7eW­“Í’P’ÊÁ-YƬ—Gvº™­ÙšÓj:ñ ظ:Àa9Ê©PJC<¥‚\¶Ùï­œ0î*òŒlØvöË4 lÌÜ6;;q>ÜÌV«§ (TeNžRŽlÓ-#Ò\ÙV‘SUIécë/3l‰í:‡´½`šr†Œó™º;½´Ö@éÆ“µ¶…%Š•–ˆH²côJ~Õ¬qÛ¶“szxè9é•ž’Èÿ©jt‡W/ˆCS@]`‡†j¢dãøÑ@^ã¶ËÙ˜/WbVÂA30M59œ¸¸XYDª·Î¼n%Ø{6Û•pBÀaŠ\ HŒtXƺ-f*˜”ÙT¬‘X‰ö«™±”D.†%“sQì­c`7\°´2"µ 's£ÚqnV»dÆÁ©S;&8&Eµƒ;ß{¡rRÓì k”†Wo´Wqn“ZhønÕÌt`±bß[ø?±»DúpàRs¡ö^‡Ž­òPÙÛ*$n 6ÐÑÙãèä¼+4·‘ åº{08Tb—Ži¤·ÎT’do©ÞÖNý(sjr;f©bX;à^ü`²ØL³²ÔŒ£}Ú82ƒ¯b–Þ³Y"ë裱⹩ڎy(sëŸT{'ðeP¸êñëtOJõ XƒÍ"öM<–ùrµ÷„•dà¶,c}jL¼H]œs¸ h3ƒýχÝøý\4JƒUHX“ÖŒt$(ºÀ<Ûßñãebüé;SÖ´Fds„¥ÕÛƒ@jôV+LSÔw'=`\{³äÝn4ôWW@víÓ¥[’Ô&(„cç¥äñ ÞC4L‘zŠ1Èxæ¯!‘`§M ×ÊHX Û åøríߌ嬹XìÝ ­^YŽ(ƒ³X,ÐWµ¯¨ Wœ"‚Tâ«DðE÷˜éaþÄÆô0‘Ã]×ýRßµž¿Í]fÙ,†;òc(F<¯ë±tüÐí¿7”Uš·Ã‹†‡Yü31Ù5éÉÓ–ƒ²;¼õ06åT­ý¥UΪs÷V‚Ž“ùÒ[‹ô]­.»Ó䘽Š wãOíΨ7¼ý2^­ý§ S®Ea&ãºPÆ©ËF¼”‰…–…¥õªË”fþ•¯©hÒ9@C^„Ò±„¥ns/Çî®üK›d!}K f͆?Rš}y_Ã'…Ô"RÆKŒ´OQ)â@_ø+T*¥¯Ašò§|Ê´I[3§W&s“Sp(ÊíÂ,À4¼eVþ7´[,ûn{ÔEÿÛrýáÞT-÷ˆýb»Ø)¡›º`[Õ]¨¬½äØþ'7DþÀü†Ð7ŸYxìT•¬tK¬»´óŽ [àÀ2š’.)+É©^‚™-·'«Cú”]\ ߦ¹ÜE—˜YhD¬óعåQygÚ‚RÀÙÞczƒ+´‰”VYðSp_ ¼Åÿ9¯¢ÞA üWxÔ‡¢ˆöX÷¶dÝ“iâp%±Ð ]·¿©K»Î&}#„óîûîî;Ô4DÐè™BÅîTÁ”B/?ÿ…·AÚÍ«tïø~ψá[5«$äÍ(¼XHGòÑñF ãvˆ‹ 3Hß›ã8‚L̼lÔ `b”šQ^5‰Ú¥,Ù÷Ò/R;$´µÁ…~í-·kýw¿/ÒIÚ­Ò2Ž›ã IOÔÅh·½ËNÀPŠ>¥>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 104 0 obj[857 0 R] endobj 105 0 obj<>stream H‰´WÛnãÈ}÷W°/’cµØÞɖdzp0^Ífk`ÐTËbF"’òŒ7È¿§º›”H‰M_vó`Š’ɺu:§Æ§y™,¢¸„wïƧeÅK9‡›ñ4{€¯ãéÓƒ„ñutŸ¤Q™d)Œ'“ìÜÐÐ#>‡ÀñwÁ”Ïõ `”pá¸ðõýûɇ38_ÁøòÌýÍû# þüóg¼/Ž&Ó£ñtê…éÿ;/ßñÓ¨£>W?åø…8 oꎆ”ÆÓõцÓ){ÔØ჎#”U}Ë”iƈëúÊæühp‘–r3†‘_^_ÀD¦ñråߊÊÐA`è‡nõ¶vw>=Rµ] ¸à£#.äòhqt~‰iëËøZøòì∪ò˜üY#^Ê•³îl1Mßc„U¾?%i¼ÚÌ¥ÉûŒÝ6ãuñ¹ÐDúÎq|þÞ¤tèË!© ²~HȲËZ‡ ŽïѽRìgê:oÏT¸Äãa¨3}Ì’9|)d~ûY–·é"ƒÙ@™¾?†ì¡¼Mðn6´FB;#±»g B+iÞMÌèÂ÷ ©ÇXÏRË¨Ý é½$T3zílNi§í‹¨nhÐ6i“ìmΑoœÜs£­>¹†Åfàöqí †ÉpV“Ë\ªz€µY¿0§ÜN ž¡G‡d¥ð¬I BuÂÁ¥,Šè÷F¸]ÁÝf±9¬dz_. +GPaˆoÉÊ뉈q©ÙªˆEN¨gè‰a+õU‹8[݃´±±˜[ÚÃUlÍš£êÌBI)F­£Ý[TPÝÚµg‘b?D;–š͎ו}{·ã=ðz0«hK[ÑJj¸aµŽ¢b(¤ÜokF M·C*ÜVsS2ÆêÞŸ O”›Ã&]a×Õî;¶\õ¦G\g¢o]àtKÛ!vg «O;)¬|Þ `±ŠîQv G|ú*±ó+«ûrÈÐ ß‚4Uݽ#&°džRuLIO2Þwox4¡<Úu^`ÇŽØbÇíÃx–Õ!è00ºÎê4üB="œ?)¬{xRš±ÔH¹M2+X}X¸8ù?€eG9\b^?Ï€¥SD4°²… j„î*LxH„¸½6ðPçw&5¯Æ€?:Á%Uˆ´Ù@wÝg(‘uo)–Må@à‘à9eÁzx6Ð}‚±‡}<Ë<¶E¦a5&†R‡šmµ2‹VÉï‘e¶LtK²=¡âö • ±kÞ³l½Þ¤Il¼ª÷b\“}¨Èaþ”Fk|`µz¼dø(žTô×}¼ÝêÑCæíø³d~l;ïíµá¡/þ‚b‡ÁÀt7.Z¢5í5 û+ѳõT‚qœ/xEEXOs?·“NÏmµè^ŒöVÖ½zbßÛ¶Y®Nîd/×Qþ­ù#–e_ÒáÛŽŸû§G+ŽÓ8Þ¬7+l9KÞ¼{Eí iÜzÝMpè‘ÀçÃA­ãøÕ€6”†-u¾¯7|Ý3œ“@ˆfϨ‚–¸“­å:ËŸ —ÿÞ$¹\Ë´,LÕÒP$[{]ìáô+·÷©6T ó8KKeä"ˆ£¢„m¥=k̨2†±)ºBƒÊõ}ªB½nâ¼9¼–sWÍs?Qê"­×aPY*a‰pRÑ2-’;µFe4ª-o+i¬’1³ i6¢RJÕÍÞrœ¾ gWtN±ØË[®›a^¶,rvèÑÔVU /yU·r‰EZDq²JJŒ¥ÀN)6«²Ø5Û>¬G¸Ø ,D£Ù⥌¿¡‚ïË$^Â:zB ÇÙZB*cµÞaaå#øF÷N‘bT› !bÈœ/†¾{æc„[уZ×F©œ÷T±¡E˜•É|WÔó‰çUuD¡‹Í†%jÀb¿§ïžúºH¼©‹¸2;hÇ¢œÍå¢ò«¾Ú ѳª>?Á‚àÀ5ªï¾Ÿ]A;s¬´uQÔ°ƒ=tü¡Í}{¢LtªmÁœÚª› eé"(@ੇ”"Úä9¶Ëê餯Š=gf@¨…ZaxAíBhIZZ’}t¶S$ `žƒëhË.¹Õ~»1 î\ÏQ³žì‰ÌV‚¢g šu›ÔYr¢Óv–‹UYódæ»w.ß;°½·s56S½­6ö¯›A÷ùoSœs‘©Š²ú¦ú0EJõ‡¦,Í:=UâLL­ /¥Ñ­ü_F;Ì=ô¨¦ó'åc´ÚH£õÆjBF=/Þ¦íõŒdíή¯m¹þeÏCvà ™/γˆklÛ†ˆx›^7ŠÎ¨#W]§¼þ„ š|ùxûëé§/ç³A¥ßN’Ù[Ð!ôx60?͆¡ø73˜™ gØ‘ø-ȾI·k¨¸÷²TÝ ƒ ³áÉv Úz>ÍË•H©8-ËUÅnÆ“¬,³5|O±Ž¯£û$5käx2É~ÀM½o„ú(Š$ €qª;Ê—¯Uã«3ÀÌhäD'îkÁ· zàÄ)îgõ#2Û#BŸ>âóJœd‹êÚ$©œÕ:ße­ÂèËÿröœ  endstream endobj 106 0 obj<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 107 0 obj[859 0 R] endobj 108 0 obj<>stream H‰¤WkoÚJþiÿÃH«•àì™ñM{Z‰ô¤UV¥‰Úf"äš¼Å6ò¥)ç×ï;c|'‡æC0Æž÷þ<Ï;™Æ©¿v½ýñÇdš¦®·å+ô8™G{ô4™öMnݺ©…hryýDºcb‹"[315ÁtÌLÃD6Ñ1ešžÞ¾½üóº˜Ü¼C“Ù; ÉoÚ\èȇÛîá:¹¸œ_Læs éh¾†_ç‚Ïðͤkâó/q+†/X#p©Wºccf#[×1!Eóàb€†óÿ‰óôü¼1<¨iLœ*/‰8šl–8su1¸S¾C žÏn¯Ñ%½màÆß“â –c`:Fñ¶4w5¿¹pl™ QF1x‡ ó‹õÅÕ Â–ÿ&·"Á³w×ÂëEvòðIÅ] [ÁZ²L† ¦™2Ú®øÚ9ºüü~ùeúñóÕb»á÷‘¿ŠÔÉ¿ßýwqw1üÝÿWy·t¼é—^÷«½Ò#fB à£Åàzv9¾¾Y qž@}YœÁ°®Ù´5­“NëETzClì˜E~®CÄðø€üÐO}wçÿ%;x„¼(²Ð÷à«p¥iÀ– ¬›¤ðÚþ[¶^ó8AnÌQÂyˆÜ¥0+¸»ø!\ÉÀrõÓqT7.ÎëX7ä™G§ÄpV„Ty¡/u‹Ö› „‰´É-n’ø›p)œÿm1ÌãZ ý'ô¦«•þ­ô‹uw‹ŸžÂ·úœ3mŠu;wîqð¼å]aù‘-—C)¾Ǻ>@ÑZÞôÜÝÎ7hGOŒ†Oóÿt9hÔÔ+Z2oâªì'Ç.ýƒ«\L>´\&0ßÂÍ|uã`œíÑ~ë&-à©>BWs>•?¦:a­öëF;“iØ2 ´»äëHtcê€C>DnÆ3w‡¾•@†î&Y̦/RÑD„Œë%8Â,‹°XØhoC¼Ç0³˜îrz¬b“Š96„ˆlÀOÌÓÆÉ´#Œdà ßq/…Y:…=Är/ƒ»µ¾ß»á±&ÖYÃEmp™7–V’ϧå×éÝìó­b\luõ›élšcÔh›[ rü_¾!u€ÎY2ÛÆЉ5‹ OóR %ˈèV(•è¿oU´¢ub0ëb,Ùîºyœ?¨s»òÀ3Þ“½›Ör v:ÍÍŠ|WÍ‹é×UvS׫jKl ÒX·’úOгŸne{îO?Èç$q7íx¸I·Í·Ð徤IeÒ˜m4•IÚú+.¸0”àP§CGn¹»JŽ\HN.›ÒeÐx¬D……KOö‚O}’C’ò+ÙB§j4΋ÁéCcÃr°aVÑØB÷‡!0L|…e@*øÕ{«r7þ&Ì=©ãoìŽúÚÑ8r(ôŸY÷àÓòrzw§JxݼԔԴ[Æp¼(¶&yòèça+PË6@Ï SG×£îìÔ®i[è—\$Œ!ïbŽ*ã ×·¹lZÇ)éIË‹ˆÜ‚"–,ۦ𡒑¥)“B´àk*Ô–QÇiéœÅ±?Ü]Æ  Üð Tôú¯HWäa®\Aˆ,/Ajû V³ÿ.ßÝÌfBj) ÷í}Ø¥®p‘ë嘯1:"£yLšÌÙཿq‰>>᜞˜@£eS€¿–™Ä 7E cK Ë‹ÅâP"_aelj =ÕT\*”9xUR»”µó. ©TÒ¨M™¦Tf¦f¥+°±EñŠÇ‚Îb¾Ê<^Ó¯<Ž#XÁÀU6ðÜ,jï žõÃÖßóÅSÞ.ò¾ÃëI4–ŽwžVnb^ vY¾æËbM?ÆY'í¹ rwÀj†´™h9û"‰â­Ô—|äEY!¾…š£B…w.Jãâ¤Óžèn61߀b¹@t}srQR¿iÈ™LcHõÃ`òÍR‘Ìî?Üß^ÝÝOg·¯Tù „Ãe›6ÿ6áó§lEjaƒµgò*¤í÷ãf³Î|3Ò²ß@ÚÕ4¨¾¡-†UçÄýù«SC5I˜L–*ôÅ ÈñpÑÞ¹Î͹scsiì†ÉŽN„ô0‚}eû=Üù}¼–ÿè)EÉåÍ KáÈ48Ç躠HÁÍ—«»éÇË/7'Š¼S­›öó’“nmoc³a :M í!±<”2 ÀÔÖÑ•(T1(–‡S!Yw×ÀG3Ž¿7/”ž'Јƒ-R·|šhÒ|I¤X³ìjß½fh¥¼¸IY¦l" d¦š£žlô eGËRfaˬ[c<ËÙ·CÊU„Ý(YÙFóüwänI˜¬€ðÞAMúÖڎꉤÐÒZYäp™¸Á~ÇÑT㟇7ZSÕ­ÛÖ›Ö `?Ò¶¸?}øá¢ÎD£H,†àøò¶åK%ýNOúM¥2´å¼Ye&ü¤XôÊ°ÂïИýßèß&׃³ÊçS•d"±”G·N"3×yæ,Žâ}0BÀù°Žê=ebZg™´V{•ìÀ_=-*˜fº:é„©V4V?\)ˆ™@»è°»¸ V)!" [šR ¸¾Ù±-±k¾¶ŠzÔÕZ Ì^$z;å»|yêÞÉÆÅA5sm¢,Ãþì§Û¾bžïIJ±¬§‹Ä¼^ý±ä~© Ô0›&Eþw®—KüžÏ“¸‚»˜ÙrùéæÓôÇ;UŒf§µÖé¶Ñ:½õÄ观S‰÷â+ûjL@»°š˜KÒªèP)ÍÂÄÿ é&ÇfUo-0Ãe—æ}„b £8¬‚‚ÌÛžšÝƒ‚­³Ð“€%kU+“ *óT§>¹ktS@e¢Z™5b3Ø6ml›¢-Å0Ý^/ïy¸-ˆf<¸q›¥ùÅ^\L=/ ²´Þ¨„A “PéoñÔ{ǗϱŸòåÃCþ¢¼sww½fô΋½Æ4Iú„™Ø> ­r£,…¥èéŽ!õq#íKÑ°cÔÄ°“…ÑŸPAŽLQÄ#U !ÎëÜS3r¦§ˆP†­rë™ýê‡Ë5PW¥•ª›¸ÅƒMV×´\5Ô¬4F!oL>‰2yTúCj›„¿Ê)4ÈBßsEŽQž ±³2D5›ˆ€60íJŽd÷%‡ÐSåÈøOmÖ´ ºžÜô…×ML/6„g×M}c¦ «½_ŸŒ¶LUtª(ž®ƒ)ÙJl”àL¥x°OG™Éi<Ú`¡iœúk×KE8Ó4u½-ôÐãä2JÓ(@O“ùaÏÑäÖý¿Ò})p®ÓwrʯPˆ†¶ÿU¯¡9°ánl“½`Ì= ž‘©B,4Lôý€ád €B†è!d êNákŠ[ z–ðœlT¡µ@:JÌ¡õv~jO{CÒ\@»&ÀÒ9`À@€(ÜZ endstream endobj 109 0 obj<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 110 0 obj<>stream H‰¬WmoÛÈþî_1@¿P¹h¹»ÜåË5ÀÒå.àØHT´…e´´’XÓ¤JRN|Eÿ{g—Ôk¸Œ™³ÓMíÌ<óÌ33îyQ%‹xVÁ»wîyUų•šÃ;É×pëNž× Üëx™dq•ä¸£QþnXä“ÀƒúÄ“ #—>„œOP ·ïß~Ù{5÷rLÁ|¢°oˆ/R*ô©æ–ë£9'RúÌù™s‘U*…)GÏ/¯/`¤²Ùê1.Êæ oCk^$›os&g‹(4Xøà  wDB¡Îg.1lsq¯5À—ã‹_ñë :uø»ÆÛИ"^0cê“›¨ñ®‰:ð‰ü:êGNBÂt øUg— ·“¿i÷N­³cëü,æí#mÇ;’ø¢Á{‘0u ù…þ’wïFçŸ>áÝO?Át ½¹ÅE‘¨bê\þën|uy‰ÌNâ­NÙœà! £(2NTÉ£‚_Œ¹èû©c·âõ²Â8a³ým¨Ù]?®Sµ ÖbOô±çG’±:©0òÈŽúªf›J~®ãªREfͬìe. þú‡ b¢aš›» צoçs¤ ea±/=âùº@÷,æ·fð‡N ÎæpŸæ³‡$[Â…{´Zƒ§ý6$儇‡ÚÑF™fÒƒàü´x%ã{X25Ì¿!‹ª•‚x¹,Ô2Æ´êÞšg˜Y£4GÝÅËC iò ~¶úÕÎå–±Ï""dä·ŒûU±×ðˆÀ"nœpßÀGµL“erDKP˜—J»•/¥ªÐä,Ng›Ô4¡!ðƵºÑ«d(I„a5ñ{™ñ#½Pü 9ñÚ9n3(9Qýl5E¥êQeU\¯ãlUG㨱2ÑE¡'aÜl9p³Ãtª;mÌBÖ>:w$À“8*Ÿ˜x{ Ò6®Ž°Ú5ÿ(†ÂCPÝåOEj FXG‚º¸ê= h KDÁ‰;:±7ufy6ÛÃ=§ø¢ÂÇô:×Ðɾq TQø’T+_ÿâV íSR=OoëÜŸþ£!ÂQÉCÖÞOlLT&`צþŽ hՆߗÂcßX˜LV›²^—âYµ‰SØVÚ¾´q1Èi²È9ûòBØˤ¬JÝl.õ 1¿£*Ý}£dæ†3Üe€sF‚FÇÞQ„ïñô}ÀX…áÎ}ñ£1ͺtøê?›ä)N5Zôåc®]’ʼnü­fÁݹ&÷®E§šq6‡*~îÞöÀ³ø€èîHž\3TŒË.YjïVYò¨mÄû/’¥¨½’Û:¤§ öäpe8m§LQ!"éKˆîñåD9<Ч¹^(L² 5Ì×*ÛòfU¢§çIŠ½½´O™œýH `¹ízygh§%k‹ìà<ç*›!{–Ø¡|FJy–ü±‹­Ègª,•uŸäü‡’þKrµï¼µl#:8Ðù´ÉvÉÑûᮚëõ°î§šßÈúÔÑ£IžTu9šòÓÖý“ê³×o¶-3Ž3.’Dâ‚ÏíÍR7¶-H~+H=6_V*ƒ¢Ái“ÍQº7Žšë~‡Z´“ÄÅBidÔ 4†÷kx:q¡“… ,ÜÅß1-ð®Ž'Ú”†KëNL+‘;¾C®´¹A„¼f>øɘš €sU&¶ Í1!Ž ÷ ãj¶ÂÇS'^c‰}MðJqÚ€ûç.ˆûɸÀVÏkŸøKÖ.âõ²³ï`4j.‚ðÄÖI9 ÌU †Ü©tïìšš<ú½…‹vlŒÊ½®•ªªô—ädõ³%f¯}^·œ"Ÿ¶%ô—z€Éù§ß?L4¬wŸ?Œ?% Ü7XSI¥B­™—ðÆ=Nê96ŒJŽv㼪bÃ…w”WUþ·îäy­À½Ž—IW *˜;å_áf»L…8€!_C\aýçÁõH'ᶉŽÆGÁ²7š{<õÛ'¥íËCHÃQsÿ¢_ ¼fÉÍ ¬kA¤$ôv£äGÀ˜ËÿQÛçÁ endstream endobj 111 0 obj<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 112 0 obj<>stream H‰”Wko£HýniÿÃU¦åHN¹^PЛ‰”¤3=uº£3+mYÄ.ÇL°ç1£ýï{«À¯è)vážsÏ}TÝáIVD³pRÀÑÑð¤(ÂÉ\Oáf¤K¸ÏK ëð>JÂ"Jžž¦OpÃ|—(u‰pÀ‘ŒH×qÁãŒI¸=>>ýx½á×3^žQ°Wî{ "¼ýé×yï4è ƒ€ƒ`†¿ÀGü€ FÍ÷ßæV†„r\ÒjÅ|H<ÆçT@÷úpüeì±ÒÞ!>H©4Ví’ÓœÇQÆæ´×¿H ½€Gæ—Wpª“É<³ïyeè1D¾S½má΃žÑÂ÷¬.)²#dº7ë_¢Ûöcxe¾<»øˆ¯Wê”îWt-[a¡Ðœgá„1l¶«Êiåø„z•Ó.|]ËU±fóŒíƒÑm4V‚VpX”Cœæè0Ï Ÿ–‹0J0qîž-‘­3¥yeí;DŠµöy/Rk/@˜L¡˜ëLÏÒ o'òyºZLKs[KÒX:¬L2ÂkN?…10& ï:‡;½H üg¥=7‘¸yd–.ðÇ(¹'Mºñ]ÝÎøx›  Öa± Î8Q ¨ Ê-U:¢TyÇ{9Ôßǹ^†ÉJ쇈ïäß:îÖ…ˆsÌ=¾~Óÿ¤… ˆÔ2>P}[º·ÁïuŽÊúlÜæü HÁ$ÁôÜ…ÜT^[vzDyÒ†LJ³Kì5³\?ç…ŽðM/0¡ðÆŸz“D;VÖ5áºëÌrÓ“B“0wÅ&M€'éT7+îìû,~ä³ÄJpÁõ9t×eË‹•yÎa|'#/.OÇ÷c2iÈ1·¹6¹õûU¸‘‡‡D<ŠZVD>4V~‹—¯J]bt|ßW:ÄÇÕÖÇ:Ën­å5^Ù’¸ÂGêÜ'ÜôPkà§(™,VS Gùs>ÄN„±&óãFhU ÝŒ‡ÙJ,‘ oWÌê»_ÈÌáÄ•å+ëÌ~H£)˜PÆáw=FŽ6¢£þè)zµ_`‚Aß7MÖ`ýÓhÑïdÑÃõ}¯r9J ˜¦I1ž` ^Fã|u÷ mí”×ÕÅ¿{!턯(lâ¼ÈVxº¨Bk›R3ëä8xñ«z„•±?êÃ{£ƒfÞ Eš’® b«$übÎ ãOºXË7ê¿ßsð~_é6>¢lùŽòÖám²);Ùă fÌ:d³e†Y3õWIT ÞýU§†ý¿ðs>%ï¶ÉÅå3m~Ö7¤NÒWD27q*7 hå„õj“¢…S}+kâäáQHxM”ªý«•RV>ÓF©¾Å5Qr=Â¥š8ýY¦_+§7¤h§ž&ܤ•jN'á0â2G5èøë_¾œ>ÿØ¢d§ž&„"T8ò J®¡¤e§&8'ÒqØ[µìÔ‰UÄSÒoÊÉóo'Ÿ/þÛªf§ŽÂ}A¸/Ý·äå¼ÒóMd§–žåíŒõ&Ae§æÂ]Iðb­©ž…«EѬžìÔB¸ô‰ãl6Ø6õ.ÿø\\ý°®e§®Âqá+á¾UºNMƒs<ûb}\mŽv§nÁ©C<&Ê€4ÚTµ“fý(ˆ3¦T8:1 †äTµŽ‚{ÕxÆÇ´Ž,gœ(`GKZÎUG”*ïMnɼ€¸^†ÉåE òŠ>ÎqÔ5>ØÉ ?¾ò†ãi§¿]ì›þ¢D¥a:«`»É½“¶cQœ(yõ8|Oûñ؇¯ endstream endobj 113 0 obj<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 114 0 obj<>stream H‰¤WÛn£H}÷WÔ£-%M߀f”‰;£UVŠÆRxɱVÛìÚ`¹Í×O5Æ0tƳ/0éS§êÔéjç&+⹞puåÜ…ž-£g˜8aº©~l"pÆz'ºˆÓœá0}‡ <â PÔ#ÂW2"=×Å’º0½¾ÞŽ ç|s?¢P>QXôÄøú¯¼Ï{ðç„!á g€—7¼@˜£æïOó*ÃB9ÞÒꎊHŠ1Â9®{}„ÿšõØv½KüRiV-o¹Yšs⺾Yó¹×¿KŠh#¿ßÁ0Jf˵ÎþË«…NC4¸Õ—pßžÉE Ê\x ¤ q!‹zóÞ·{¤]^œ‡NLŽïGw·¸B• mxdö Qb6˜sîåï‰=óIÿ!N«¥“|e•ê6_Óðïv>œ( ½Îgîx+«ÇJ›±vè2â{»oã|³Ò‰0&š=N--¼%Ž É VPâÀ=¬c ¢ÿ¾Â:Ês½ˆ F0yú(¢|zá×p­ß'eQGüŸã,°€Tô¯(uéõ¶î§¸”¸»4åÑ ×,“uÉ%Ê.¡^ùÛ“Nžßâçb‰±üu@¥r}oÃzzk´ÅÿWƒ Ø»du¦W+”öÙzDºM}7õ ÿP˜küä,=¸gêáâD¨T¹Æ ` Ô¯‹Š^+Å­‹È6ŽñEÿÂRpÿwyIÏ'Š×>ˆ¬#zÕY vP“´©‰ú„Ë=\ŽZ7à3:¥¸öµò) êE¼Ž°\¦@fqMu`Æ-̼ÀÅmc'ÂQŠ]2+â×¨Ñ MyágfHmàJâÓyÀδÄcŒ“è2xÑ-wÜËw‰eA7!V³N ûÑûlp)úѦ€yšYÊn†YWN%5Þ_ç;ÔYGYM×B“µv5næMŒÇ­±™×JfßÎ.'ž¬/xp¥®¸ýnÍš»mYrÍPÒ,ÍÏBA×Í•¶}I˜ÚQêvV´“iÝ8PZ²±t—çñš7vyŸ”ó …ò†ãÀãNªDVÙÀmßW×µq¯oIgÝä,ˆu¹@Àkè“þý˪ˆa† ÉËzà÷Ÿ¢,·ŽHC°´Ë®LR’`71=âËu‰O»²jsqÐ^;_¬[ò Kô"v¯sÐOé+îËoqs/«3þ3ƒ#è-5ø²Õ°Ó. [¡ÜfŸ¹¡ô‚P@’à@Vr<Jʨ͉‡#$7oqìZdéË&'¶„´›ÌQBºªoŽgê¤ú¬+Æs¨{ûQÕýì¨îf;0ÉØò´™)·8‘­ð g&YÇÿ­Â[¬ÉB¾'pÛ’çÛCYkÕQî§U¿ÉŠx®g… ñ¦(ôl‰“ØĦE‘®aê„›œ±^ĉ.bÑœá0}‡ Ð8Ñía>Q1Ÿx $ǃ jxZñt¾¹S8bÍšŽ†' êa)Z¨W8‚‘`7ÉôKµü½™O|Q+Òyõ;ÙY¶i.:”(Áw'—×S^~ 0°LͲ endstream endobj 115 0 obj<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 116 0 obj<>stream H‰´WïOÛHýž¿b$¾éØìïõ¢^%BiŠ\QñU:Q„Ü`ÀwĉÓÒûëoìÛ Ùfr§æC°ƒ½ofÞÌÛ·ƒ£y‘Ý&ã^½E2¾OoàrOgp5ˆ¿ÏRœ'wYžÙ4‡Áp8}‚Ká-s "n™2`´`Ú ‘Linàêõëá›cè >Ã`tÌ¡ºãp×áÏï.ðzÑƽAsßâã1à×7ü‚x‚—ÿ)šã ã/y}%|Ät‘LJ® žôú°ÿU®'–ëàƒœërÕêR–KKÉŒqåš7½þi^¤ðYbä£óS¦ùø~’Ìÿ^Ô ½ Ñ”7õÛÜIÜ+kᣪ”V £cæiï¶w2´«¯ÁyYàÑñé|½®Î2ý•pU…UFk*À:ç&a§}ýؤwÙ·LÀþÖô/’Éì!Å¥`ÿ*~_Ƶ+VaeV¨6ÅÍ…v™ŽêB¿bì5ä3p:`éD]zq]—¬,”{.óy–ßO󻺪²SU͜³Ä20¹¬‡ñÏ=<ÌÓ›Çqºaµ†’õÔe8u.Ê7}•±o²ÅÜ®³Ý;Øý¡HÔÆHÖá¹hHîï~êNíü¼¿Úªpñ˜)|RŒÿRþç@À,™P}1hJ Ö—3ý3J`Hð‘`^6%x“`’/>‡?¦ðþñ„=”êP[œÛ ¸%;Ù6ûŒP³|ÿž"{muÊ‘ ¬dQÓipñ}Q¤“—yžeùãS)"!ÅTÛTÓ‡4Y¼LJ2T³¥ÙÉÙb2 Bz$Š¡kz>¥óE¹‡¬Cî ¸ÃÛyoÓ/ uÉ¥A:#8¹ˆ̧à¤@0ÙvS9A/ƒ)sça Íò¹$5³Ñ P|?O“8É¿fói>Ióâ°üý:þíãÉÑ›ë‹Óßß„‡UlÖ®u\a˜hÛ(´I},7̶2Êòlò8IºX$w)<¤ù]qY_¾éâCçA@’ÔÜ@¹íŒÛÓ6@-¼V¸µ‡`Ic"ËŒÜZ3’bWz€.ï×(YIQÚ§MºÕ#Ã?ã“0ñ$ý0Ö1­7ßNçPí•¥s[tßž}8ŠƒÀ$9AÅ<_þ0ÛëjÆŒ~Ðê$Q1:bÊn£M’tÁ¨ˆE[[@n}¾Á8‰ Ú7ª–O‡½É®æÄ´€Î»:è³lQÀô¶ã^¡˜Âü1? "’dÀpÏŒªa‚œIÒ„kï™÷MÈφ0¸(i~µçL›fÑÆW%M²Ž8óbkÚ¤áÔ®´ÁÏþ‚'¨¶‚Eª)PÓ Xý–‚ iµ‘L¶ÄîÍæÓ1Êvº€_ÑtM0i8µ–Ì™ŸP=EÚʵ“\Ó{ÕÞ{ót–Y#¨Ååã"_•úV=2À» 0i/×R1[wÍe‰Â%¨ Í cíÅþôJõƒÇ?Ešz-4íÔWˆ›±ƒIÒëòP×Å‘;âDByøYÁÑ;âdCE†±‚íˆC’å 󮋃e7’v(k™^éµ+?$QƲh¥ìŽüh’˜(í˜êö;ò£Iª¡”cQ·¤ ð‚!i„BŸ!»m`D€ž I ”ˆ˜ëtà2ÀN†$ ­†è4ä:@N†¤¸Q1ÛéÍýŽÜ¤@¢/ÀvØ‘’H4*¦maU´#7$!èaxÛJ:»#7$èUtÛÖÕrƒšÀ· ’ H#˜o:@(Á]K 涅¤‹n@Z)tË µ…$RI5üZb°ë¶¢@¢QÏô œK<évP^B ¤ù—B1÷L¾äÞ Ó¡ä6Úô£ãÏÜ#=Zñ+ØÊ[@H³Ë2'þ‡gý‘o5$]èD„Ûìú·ž‘ IšÛ,>÷×ÿçý I ºîR-I*c~hÿ‹ëI–?Û¼Ižš³@q|½«ïBa´D o᫾’wzvÓY`íº:B @K£ÅB‡`HJ#¤c^Qt†¤5-ò‚!©à‹ Å?‡`HzƒŽF Š{¡$%òÌ9Šw¡TýŒT;;ç£y‘Ý&ã¢;*Šd|ŸÞÀå`8-Šé®ñ÷Y ƒóä.Ë“rna0NŸà²qQ(–Ò¡IsÌF¸#àÞÍ-7pUG<øp ˜‡Nüb?gÆ;F‹/aQâo)ã²JlyÕ8iæ5WËäð¾ÌWâõJå›øˆSø^|ÓëOoëj¨ƒ K”XÕ¥TåœEJÖo”®¡[˜êë_•­›x endstream endobj 117 0 obj<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 118 0 obj<>stream H‰¬WïOÛHýž¿b¤|é²Ùß^GU%´GEÔø*!78©ï'ŠYDZxÉV½H„ ÄïÍî̼yÛ?Yé4žðî]ÿ¤(âÉ·änúÑrwýèi•@ÿ:ž¥Y\¤Ë úÃáònX¨I ÀPM„%‘Zi0œ!©‚»÷ï‡g§Ðé_BtJ¡üDaÖaâŸ?Žqw†Q§EDSüo4|ûoåÀ¨ýý¯ýÓ?ÊqI« ‘ c„s* ZtŽà8úÛâ±-^¿H©´¨å’[hΉRÅ|è]dE2‡[Ž‘®/`˜d“o‹xýO^½ ÙD¨ª§Kºó¨cÏ"4åYhRŒŽ(X'iç|„Û.ßú×ö€G§gøxu:Ûíóýp™å ˆ»MZ)w›Ä—bv/<%Z¨"zIÈZ _²(EBÚ°0ÊåO±p/‰£Nñ?Ã"¼X„&†7,’†º•ÅA"½Hx@¸iH ÛÓâ Q^$, A“{¦…iÏŠƒD{‘PCx“zÁÝšGàáñ—n¯•MJ@ËƋÄ„Õig‚Ñ ÉnëGèÅ„DÕYçš3Ù$ós€ƒµ7ÿ+ƒ:ëŠKnš„`¥Ñ·9¼ú“AÔ.é ÛP{ y€Ã«Ûµ¢$Ü%Ó0`j/!P%ÄEáÕêÚΞ]Î% ¥ {ù°ç]1”*þrŒn}⌧]JÝÆX[з!"¬xçâ¶ø]/áÙ+ Ê1¦ÊITñÔ“PSI‚*7G‡Ðq1­ŽÆñb5OPáø.úÔÊÛ.{Û¿ö¬ 'lW«ïy•ël…Òs1öp°²]zŒØŽŒÎì!¬Òlf žÏ×ÉÃf’@o¯€? \ä³y’Áe’ÍŠo9~ÞÌ‹Ôú×ѵkPkÎwqcýkÊ·sÞ®;sŽ–($! KðÝ.¦é<¸·Ð.?.|R˜mEQçHnW&6ƒ†UŠàFm×*N0ÁÕ Û.).X´[¡²ÕTÁºqÛuÄ+ÑÍq†ó¯Æu· ‚ Ø ‹ ´Üv#·{ƒ·ÊYØÿB…o–3£Ó[­§T¦1…ÝÞÏ¿œ‘x™‰]T»Å®Uòʲ}¾=~îÙa¼I‹¾B³ÿé1XÅëâ­ýL…ÄN«½äÿz^~çYã2»pã&_½mø´™ÛÙÏô@É.ÐÒi·ö2"8ûÙ…ÞÓìex4ú+ÛÉåeH¤½ËÕµ㧼H¯wz™f›G7•—/‘”5f´ Ÿ“y篷ŠjLOHr~™/VnN/£"BÞ˜Ó.|IÖyºÌ^qvŒG×ða‡ä«Õ›O=Àb=Grêuo8°USQ¶‹^c7ï·Âëî"ѸØ-QômÄpž}O×Ël‘dÅÀþý>úýóùÉÙýøâ—çîŽ^סEãl»N,/J4÷féb³€E’çñ,y9Ú!ÍàëS‘ä8ÝÁ)êÂKn„”µ÷xˆpgz]´^2#°Ê9tfÒK4WD<Ëû=ÊV\<­Z¤ ììW†EçÎÄK/LCÛ‰§Ë5”6³ÀBÏ÷‰?\^DNb/=hF¸~F|µjÙëóÿ¹K]z‰ G·ðƒióÒn—€WëóM_}ubyµ3׆°&«—i^ÀrÚLþŠ%¬7ÙÀIãÕé­ŽÒCöjbŽ¾…6i¹=ÙûKïöø/<öÇ ïÕ¬-‰4-ð'õUʯ¼˜s¼¼ÌžòêIŽBþŠƒôpRÊ«I9úeÓ4i]?6Û¬³ã$òkJtb?ûÀa¶^nV¹­[«õr‚ržä Ÿ²¥›YÒ<µ·Ü8K–›ÐÞ:ƒðêf245òÑòãp” Díwxµ8CÁ•w‚yõ8 8 èËhÙ6Zfß„“À«»z¦GëÕÞ Mþ•+ÁÞËB¡Çúºè¬säSî^"Áp¢«º‰»¥]€î:YÌûEšÝlòdrg×ñc½Ž¿Ïªõ¨|¢kWÚKLºJk1Ù•*:­æ!!Íl|cíŠÂK†Z©÷¢`ôEN|/qaT‘7ø°¾—¦àœ¦†·°¾ð^ja41u­”è%.ZËè^Rf@ì*` ¾Z²ð“u‘NãIa9NŠ2y€›þpYËÜõ#ëæú×ñ,Íbëå ?.á¦v1Å$ÃдÅ/2š*¸«í_Oa/l¶ ›ÚB š ¡Ã‡ðÊýÀÓÀQ^îg»ª½æވım÷€H´B²OâWÏE£å´úBEÕ+¹˜å*—\Ø'p@ ^=a§ÚþÁ”oÿ 0WLEü endstream endobj 119 0 obj<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 120 0 obj<>stream H‰´W]oâJ}çW””"mšþv›;RH¸Y®†hbÝ}ÈD‘‡8ï 6²Í$³¿~«âP»£ð`·ŸSýQçT N‹*½g|ø08­ªxö=¹ƒëA”/àfý\$0¸ŒÒ,®Ò<ƒÁh”?õ- 8n™2`´`Ú N ¦47póñãèü zƒÏg0˜žq¨Ÿ8<ô¤øõÅŽËÞ(ê ¢ˆƒ€èf€—'¼@T‚àþþÿUŒKòf$BÇ´'“’+ˆæ½>Gÿöxb…w‚ä\{Ôz(=´”̘ÀcÞõú“¬Já«Äȧ—%Ùìû<.þ* ½ÀM…¦y»¦G=¿¡«×‚ҊatÌ@‘ôî{ã)N»¾ .ýOÏ&çøz³:«éËv¸Âs…õDÃõ$k˜ÖëI®i_¢ŠWQ_BÃBÞ@üÒ§+I Dãɱë@¶KŸf0]>VéÉéãc‘Ü-gI猉HYæä†èkã{(ò墄üÇ‹"Ÿ%e™”àчb™e>†2cq–ä˾wÆ I1È€I·‰áÂÓð!ø÷Ù…oHø"`ÞàwaYwLò—±ŠU¬Â_T~@Á·x³ö`¬Ž„åB&äûžæH2³Þ`8úö³ÂótT$‹¤J½l–Õí<Í®—e2»©âçíCüã¡yèÊí×%c/ ”­Nl×jë8ß>0¯ŽýCW$}Áe†·B-ÖºhHêa g¡ÝÒì “hHÚa½¯mÜ¥þiHò`•`nszj–-2hb!‰„EëSëÓ±"i± Í’zX!™ã;V…Ú§å ËܧIGoµï›î‚$<&T,¯»×aß$M1N3±5£­QýúïPÄÙ_wIžVäOOi™|=v’J’„˜@3Ûr8äO’$ +ÁŠ¾$%¿ÁÆØßö%IJvƒ —‡c$¥´ÁªC»w®³Hio$V§úý¬I’tÁ`…¢ù;Y“$©‡ásö¬I’¤AãMÉ_°&IRí Ášºjg’h¬k¤>ìL]$$qÐ6d?hL]/4c§ùS¾›LØÀÔí[ÓAnÚG­·:~ÝÇŽ®âùâ1c!¬é£¢ÜD¼ÊúBRx›ÕÕý"«éŸ^6sXOljõëþ‡ãÕg죿Ád::™|Æ~TÚlá[“Û§c)úEZ%·iv÷N²fªã®°^§VkÉ_ ÛZëþo©êÞ’@i.ÖI1ŸdUòˆžö»®éådk®pµÄ•€?ãó¿øµZÄEõæé ©“ %³ï0’.)‡jØá<Æî}†-øcùè«p ¥âNc—f»¹Ib¥ÅŒl¸§ñì{š½¤³³·Vw3‘ôJYÅÂæŒÁÕϲJæû³ü”fËçN"M’,e4Óëãô%yLârJ¸Ý,>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 122 0 obj<>stream H‰´—]oâV†ïù#åf{‘ãóýQmW‚$ŠrÁµ–ö"E^0 m¸›¤¿¾sl&±ñl«ra~fÎŒ_ÏL2\‹y6-àãÇdXÙô!ŸÁM’®žà6I_ŸrH&Ùýb™‹Õ’Ñhõ7"Xæxn™2`´`Ú ^ ¦47pûéÓèü Éõ$ã3å‡û€~}ù®7ƒQ:HÒ”ƒ€tŽ¿¦SÀÃ3 Ý€àñüwüjŒK\òz%‚gÚƒ‚IɤƒðSú{䉊wŠä\Gj¹”-%3ÆEælðájYäÂW‰ž'W0Ê—Ó‡ÇlýǦ½s ­©`ê»Ksé Æ"ø2”V ½cÖù`>¸ã¶ËC2‰Ÿ]ãíutªí˦»"Ú åFÃv“Φõv“åÇêòdxu¹uå­%Ñjé-Þx/¤'á% ¯ñ±M|Œ7¯Hxe™—M¼ò=^9æ0I‡™{kP“ JǤo\Ò²aHxž6“-¹¦eÃ’ðÜ3ÙL¶æ– GÁ[<Ùf²½-ÙhÁ{Þ&ÉVùÃØwЉî3Ì*鬧ÐE»¢ßáQáÌZc”%áI2Æ°3³Ï¬P‚;I“dl gaŸYi¥Ð¤Ð ’Œm,!ûÌ©¥¯b¯äQ:I³V æw™¨(ãªÐ {”N’¬Å¢¢v‰•<8a*§Á¥“k…d~—W-‚V¼ <ècpš^9–«]V½òÞòÊgÇà$µš ˜ÛæTX眬Ã?'‰ÕxÍÄ^¬]Š¤Lã4³Ûžœþ§O§'$,õb›ì“}G²XÞÃäîËzQäwWËÙ÷î “Äl°ä»3sò´^MóÍ&ßÀ/1ï]l’’ Ö{.ÿç`’T¯W<ívÙÅ"iÜHlòvH|zÇ×ç?ÃçëϧÃËË_/.‡éEwäHJ7Xú5ïõ—$lÃóû×õɷ׳{²ÎŸØŠ»ÇÅòæ¯M>½-Õˆ×ÙK½Ê¾ßÃø[‚¿u:@¿Æ“:è˪B!ªc°ÿ4.ª%»Ì“^Ú{æü¡yÑ4ßÙt’Þ[yØ’W/Ì^<é5 m`ŽâußE'©_c§ ì!ÝSè$ýklìaâë·~¤i}?Ì«’:IåûÓ:iõÐIúÖØ'ðÖA«‡NR¼Æ>A·ÎY=tšœ¹d¡uÌê¡“Ôª°SP­3Õqº&‰UyÅ|ëHÕC'iUaó Z'ª:I«ÊjæZª:I« ûÙ:OõÐIZUÚ0Û:OõÐIZUXÝEë8ÕC'iUa½·­ÓT¤U…•ž·S=t’VÖ~Ó:KõÐIZ•Á±Ð>K¥’VÑS¦ÿÅ,eHZ•Î³ðã³”!IUbÑV?>K’R¥ ÌwÏR‘÷òê^é³Á<Ò:s`z¸.ólZD†E‘MòÜ$£UQ¬á6I_ŸrH&Ùýb™‹Õ’Ñhõ7» 1á° õø £º5¾Èâ³là¶ÞFr}¸5M‰Ú±Xÿ\ôNáÒbõKŸ££\–»­V;ìî˜Þw[|ŽqªÞãj^ÿ¡6uZÚÑV¹ÄáïÀ˜(¹ ¦µ˜òðl£ú endstream endobj 123 0 obj<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>>/Type/Page>> endobj 124 0 obj<>stream H‰´W[sÛ¸~÷Lÿú&mcš¸’ÜI3ãK6ëm\ç¢ÙÍLœÙa$Øf#‰2I{ãþú€  œtÛ[ sýÎwÎ9:®šâ:_6èùó£ã¦É—·r…>-Êút´xÜItô&¿)¶yS”[ttrR~Eq&¢„¢4åˆ31ÁJ Ž(‹9úôâÅÉÙ):8ºÆæÎÒˆ¥(Å8"$¦h±9˜¡ùâ_JnåÂÃ8fJªþH”hB"Î%su0;ß6r®X~ñæÈíòv“W_j#hdh£7¿Öê^.T,²TÇB ÊhÖEUòàúà席ÿ½Q¾8=?ƒŸ›è´îsµµ©Vâ®õQ%Y{­?¯žEqÚzýq– Ÿî«æVVh¿›­d3'|–Ïñ¬X×hþiñ‹2shž¶++p„E‚µ&ð]ÔœF¼×at!7eõ8Ç¢‚±à³JÞÝ•ÜÈm30áÆ#*PC¨Úس<â ­HªžÍ{uŽ!¾ƒ£HE”ª×ÆÆá¹{þÛh nfD(4zªÓ4Ñ$i›¾·ÎCWjJ4üæá6’8N™sç”°ttîÌ¢‰26:«÷B;™@‰ ¾S¾JŒõç•’fÊ se¼ëÝxG‰ã†9wf«RO‡ÇÎ NS¥mx¶VÓ,‹21<úNø 1”°ç„•bœ qp0N,Æóxd£w…i„gà"·,­ô´`+~XJÔ/%Oo+:Žiâ*²™p}œ½oòí*¯VhS®$Ú˜š"³ÉN÷(fbá*¶Ñó_î¹çë‘â•Ü€I¾~[Ö…$Sÿ,˜âPØyx"H)´f²a,ÚÝíªr)k?+Ö8ë¦1΀$h\¶ß¸8ëŒÃ¡@ºÆ=e•WÅ}ù¥bdŸ4J·22Bn— ÅÂ6Ä«™‡Ø÷»|Ûi>vˆÓë:™ŠƒR_æÛ‰H¦¡'6‚$óL†b£ñ&‘âAÚ(Êúj¾7¿m$;è"鹊<@\{"Ú61øá]§]¸xÿêõå«é bŒªõ˜Å¤•êxüý‘‰ â8U/IÒ™ƒ¼;ÃT¥ƒ@]©LÝ=©~*pÆ"Ñu¬Xeþ˜úr/SÕXÕ£žèÛAû5"ì«Ø$1ÖCUO6r0†ñ- ‡¤ æN+Ǿrå¨v‹{9Œ«†2¤ž¥½ ÆTh}I^ËxíÜ¥Ýñ"b›þÞik^_^0Æ‚k™T'qbXœEÜ&óx½nÊ|½Þƒe>­§­˜!÷p j,O´Óø)ùÝís þ¢®Çòp”pj§ë]œ<6²Þc`˜Â†…ñ?µŠ|@Ÿ‡VÙ̲¤E‹¢¢d/³áËCÉ›YªV>³7¹Úžigct5 jgÎÝÞ°¦ß›wÊ£,î¨çíß°aŠaœ¡”Û8î8Œó}ÀÙÓ0Ⱦ ÿO#÷€‚Ä34@UÜ.(—îïõͦ_ 6¬O?*õ:;-v 4>OL³^HÉþ6fóîª}º\ ù¦<¹B÷T‡ÖaI–ð{¸tKƒÆ¨n/’ÀFÀShás~qrøòÃbj a‚ö¢Ç¡Ýx2ÓX‹SÖ· ºÐžïKR˜ŸãÀêi‚µ.ÿz5ûðìò×—ïŽ_¿þý×Ë×Wó)_¾aLäq2R¢ívÊ嚯!ø6vÍf5‰U¶&²¾t­ ¨jöᬊ¸oTVÏ/'“fE?©0Ëx")ùÉ,˜TWTÊÔrºŸB†Áh l:=j‚0Àjòv³¼s ÙO*6%0s1á¢(äÓ~*i“‘Q_ت¨¿ z—/%*d³Ï¤ø09xñg0êxAXU²©ï\»ÂÄ2 o’ÂF³o€7 “ÉÞ®HÀÍw›NÒÉÞ®¦ï`,æ€ïY¢ñîJGÓ€'D­mJDDýYÞܦ™Z>úI_í,ŠÞÛ[ŒûMA_ShNIÍD»¿6X+_ö?tcN¯y\Ó±ú\aŸ)© 3R~œ-æ³Yþy-ÕHò#º›²z½w÷E%7rÛÌ1ŸÕ袹Eµ>äÛU^­P-›¦ØÞ@t?-~ ækÀxصx;€c‘h|cchg%K˜J£±2‰z'ëûuê0|¶¼•Ë/ ~R;‹ƒ‘jµ‹.T0O‡Šñ¸Ÿ¾OQ¾lŠ‡\y`ÛS ,̈μ‡ÔpÒï©]îv{ô„ùl(—b¦¦&Oî!âìôç—§ÿØçG˜<†òZÂ|ù§oÞüôúøÕû‰bfäO¤‡dd't½Îo¦H±é²¡}Ù$!eTQðšÛª¼¿¹£ÀQ)¦U²^eÐ?&è(žè!¯ ]§W³ZJg Ë:<±„ªyŒ(%@Ü$ÂzQèç5­–kµM3CðWóg  YnvÅ0_4š ªî·M±‘HB÷{DY×ùD»¼®U%Tº.  /~–WA¾¡›‡­Bø‡¹Vª‹X®P~“ÛºÑá”_wrÙÀ—å}¦È^éÅ m>ðéìŸmËF‚„¼³,· WÊk$óå-šŒÂ¡‘Ó›õùþú¶¬XO‚S+y]låêš ;Æ°2&Æ•#Þîf¦^ŠT·0ÑŽÐå}³»cUNë6|Êhˆ$å«UÑå6_OàP’¤n@Ëõýf‹`bÙ­óGËS«âúºFy %RæˆU¾O!7Ücœ™?H^ Ý þÅ,¢vtR~îa—AC§®"]–£Z„ËS_¤SO8Ãm€9kΈV8Q¬OS¥vQýQÉu晈gr{<ãOòÿH·`#݇-?Oy•ƒžÑXŒ¤ïKÌ só'Í7 ÓSpܨ  ï‰ý¼ŒÇ٪̌Wg®‹•B~%sÅNÛåí&¯¾ UÞäEgåº iP¨\¡ª) 'ŠK}A¯ËêFBÅ–@ fÈôО;§ù*¸ <9TzY­€i@¢¼«ÊœŒÑTÞYp¬ê§jfª¢ð± ™þd³¤Ö‘ØÎV)LVE yBsøáìç¢n`œc2ó‡«;˜Ž9Ô,i@8 mº3”c‚Öª~0Û×pXùõPÀÁÚ5<ÛÇ¿ý€¶à`q¼ñ•r¡~s4tx=+¿uÞ¹B¡•òvàNÛ‡wÚ¾”õÞس1ŸÆX Ãcç€ÏÆgëá\-;£³ç“§’¥¹ç‹/„iÀ;>¸¨è&µ|7i§NøÄx`¡¤q‡ÙšÞɵÌk‰þYNb0<Ü´ÁºÑ-™Ö GÉ™*žÀbfdW ÔÛËÔ%Aª!NSü{õúûù&ÔËáýt>$ %Ô0Ä1Rä µG]Òò°¥âl½Ø—DÕó£ÀäA4”‚O¹›Ô¹ø”æ‚–Û*q€5|àšŽxR5ñX軡N¡+b mB”€ÉŸ?I%rÁ endstream endobj 125 0 obj<> endobj 126 0 obj<>/A 335 0 R/H/I/StructParent 4/Border[0 0 0]/Type/Annot>> endobj 127 0 obj<>/A 317 0 R/H/I/StructParent 134/Border[0 0 0]/Type/Annot>> endobj 128 0 obj<>/A 337 0 R/H/I/StructParent 96/Border[0 0 0]/Type/Annot>> endobj 129 0 obj<>/A 300 0 R/H/I/StructParent 5/Border[0 0 0]/Type/Annot>> endobj 130 0 obj<>/A 299 0 R/H/I/StructParent 8/Border[0 0 0]/Type/Annot>> endobj 131 0 obj<>/A 424 0 R/H/I/StructParent 13/Border[0 0 0]/Type/Annot>> endobj 132 0 obj<>/A 295 0 R/H/I/StructParent 3/Border[0 0 0]/Type/Annot>> endobj 133 0 obj<>/A 294 0 R/H/I/StructParent 6/Border[0 0 0]/Type/Annot>> endobj 134 0 obj<> endobj 135 0 obj<>/A 306 0 R/H/I/StructParent 7/Border[0 0 0]/Type/Annot>> endobj 136 0 obj<>/A 134 0 R/H/I/StructParent 2/Border[0 0 0]/Type/Annot>> endobj 137 0 obj<>/A 292 0 R/H/I/StructParent 75/Border[0 0 0]/Type/Annot>> endobj 138 0 obj<> endobj 139 0 obj<>/A 281 0 R/H/I/StructParent 132/Border[0 0 0]/Type/Annot>> endobj 140 0 obj<> endobj 141 0 obj<>/A 321 0 R/H/I/StructParent 14/Border[0 0 0]/Type/Annot>> endobj 142 0 obj<>/A 363 0 R/H/I/StructParent 52/Border[0 0 0]/Type/Annot>> endobj 143 0 obj<>/A 304 0 R/H/I/StructParent 60/Border[0 0 0]/Type/Annot>> endobj 144 0 obj<>/A 333 0 R/H/I/StructParent 78/Border[0 0 0]/Type/Annot>> endobj 145 0 obj<>/A 272 0 R/H/I/StructParent 23/Border[0 0 0]/Type/Annot>> endobj 146 0 obj<>/A 369 0 R/H/I/StructParent 24/Border[0 0 0]/Type/Annot>> endobj 147 0 obj<>/A 413 0 R/H/I/StructParent 37/Border[0 0 0]/Type/Annot>> endobj 148 0 obj<>/A 393 0 R/H/I/StructParent 38/Border[0 0 0]/Type/Annot>> endobj 149 0 obj<>/A 297 0 R/H/I/StructParent 10/Border[0 0 0]/Type/Annot>> endobj 150 0 obj<>/A 378 0 R/H/I/StructParent 11/Border[0 0 0]/Type/Annot>> endobj 151 0 obj<>/A 427 0 R/H/I/StructParent 31/Border[0 0 0]/Type/Annot>> endobj 152 0 obj<>/A 358 0 R/H/I/StructParent 77/Border[0 0 0]/Type/Annot>> endobj 153 0 obj<>/A 407 0 R/H/I/StructParent 74/Border[0 0 0]/Type/Annot>> endobj 154 0 obj<>/A 254 0 R/H/I/StructParent 84/Border[0 0 0]/Type/Annot>> endobj 155 0 obj<>/A 351 0 R/H/I/StructParent 85/Border[0 0 0]/Type/Annot>> endobj 156 0 obj<>/A 262 0 R/H/I/StructParent 86/Border[0 0 0]/Type/Annot>> endobj 157 0 obj<>/A 290 0 R/H/I/StructParent 133/Border[0 0 0]/Type/Annot>> endobj 158 0 obj<>/A 400 0 R/H/I/StructParent 72/Border[0 0 0]/Type/Annot>> endobj 159 0 obj<>/A 302 0 R/H/I/StructParent 130/Border[0 0 0]/Type/Annot>> endobj 160 0 obj<>/A 367 0 R/H/I/StructParent 61/Border[0 0 0]/Type/Annot>> endobj 161 0 obj<>/A 279 0 R/H/I/StructParent 62/Border[0 0 0]/Type/Annot>> endobj 162 0 obj<>/A 353 0 R/H/I/StructParent 63/Border[0 0 0]/Type/Annot>> endobj 163 0 obj<>/A 278 0 R/H/I/StructParent 51/Border[0 0 0]/Type/Annot>> endobj 164 0 obj<>/A 437 0 R/H/I/StructParent 55/Border[0 0 0]/Type/Annot>> endobj 165 0 obj<>/A 341 0 R/H/I/StructParent 56/Border[0 0 0]/Type/Annot>> endobj 166 0 obj<>/A 350 0 R/H/I/StructParent 26/Border[0 0 0]/Type/Annot>> endobj 167 0 obj<>/A 346 0 R/H/I/StructParent 27/Border[0 0 0]/Type/Annot>> endobj 168 0 obj<>/A 252 0 R/H/I/StructParent 15/Border[0 0 0]/Type/Annot>> endobj 169 0 obj<>/A 402 0 R/H/I/StructParent 18/Border[0 0 0]/Type/Annot>> endobj 170 0 obj<>/A 308 0 R/H/I/StructParent 44/Border[0 0 0]/Type/Annot>> endobj 171 0 obj<>/A 409 0 R/H/I/StructParent 36/Border[0 0 0]/Type/Annot>> endobj 172 0 obj<>/A 326 0 R/H/I/StructParent 53/Border[0 0 0]/Type/Annot>> endobj 173 0 obj<>/A 417 0 R/H/I/StructParent 54/Border[0 0 0]/Type/Annot>> endobj 174 0 obj<>/A 355 0 R/H/I/StructParent 16/Border[0 0 0]/Type/Annot>> endobj 175 0 obj<>/A 406 0 R/H/I/StructParent 17/Border[0 0 0]/Type/Annot>> endobj 176 0 obj<>/A 315 0 R/H/I/StructParent 9/Border[0 0 0]/Type/Annot>> endobj 177 0 obj<>/A 397 0 R/H/I/StructParent 30/Border[0 0 0]/Type/Annot>> endobj 178 0 obj<>/A 283 0 R/H/I/StructParent 59/Border[0 0 0]/Type/Annot>> endobj 179 0 obj<>/A 421 0 R/H/I/StructParent 34/Border[0 0 0]/Type/Annot>> endobj 180 0 obj<>/A 433 0 R/H/I/StructParent 35/Border[0 0 0]/Type/Annot>> endobj 181 0 obj<>/A 430 0 R/H/I/StructParent 94/Border[0 0 0]/Type/Annot>> endobj 182 0 obj<>/A 425 0 R/H/I/StructParent 29/Border[0 0 0]/Type/Annot>> endobj 183 0 obj<>/A 426 0 R/H/I/StructParent 21/Border[0 0 0]/Type/Annot>> endobj 184 0 obj<>/A 399 0 R/H/I/StructParent 95/Border[0 0 0]/Type/Annot>> endobj 185 0 obj<>/A 291 0 R/H/I/StructParent 19/Border[0 0 0]/Type/Annot>> endobj 186 0 obj<>/A 282 0 R/H/I/StructParent 57/Border[0 0 0]/Type/Annot>> endobj 187 0 obj<>/A 336 0 R/H/I/StructParent 58/Border[0 0 0]/Type/Annot>> endobj 188 0 obj<>/A 328 0 R/H/I/StructParent 39/Border[0 0 0]/Type/Annot>> endobj 189 0 obj<>/A 323 0 R/H/I/StructParent 49/Border[0 0 0]/Type/Annot>> endobj 190 0 obj<>/A 331 0 R/H/I/StructParent 50/Border[0 0 0]/Type/Annot>> endobj 191 0 obj<>/A 376 0 R/H/I/StructParent 22/Border[0 0 0]/Type/Annot>> endobj 192 0 obj<>/A 285 0 R/H/I/StructParent 64/Border[0 0 0]/Type/Annot>> endobj 193 0 obj<>/A 414 0 R/H/I/StructParent 139/Border[0 0 0]/Type/Annot>> endobj 194 0 obj<>/A 309 0 R/H/I/StructParent 138/Border[0 0 0]/Type/Annot>> endobj 195 0 obj<>/A 375 0 R/H/I/StructParent 45/Border[0 0 0]/Type/Annot>> endobj 196 0 obj<>/A 373 0 R/H/I/StructParent 46/Border[0 0 0]/Type/Annot>> endobj 197 0 obj<>/A 364 0 R/H/I/StructParent 42/Border[0 0 0]/Type/Annot>> endobj 198 0 obj<>/A 343 0 R/H/I/StructParent 43/Border[0 0 0]/Type/Annot>> endobj 199 0 obj<>/A 412 0 R/H/I/StructParent 40/Border[0 0 0]/Type/Annot>> endobj 200 0 obj<>/A 385 0 R/H/I/StructParent 41/Border[0 0 0]/Type/Annot>> endobj 201 0 obj<>/A 342 0 R/H/I/StructParent 47/Border[0 0 0]/Type/Annot>> endobj 202 0 obj<>/A 366 0 R/H/I/StructParent 48/Border[0 0 0]/Type/Annot>> endobj 203 0 obj<>/A 273 0 R/H/I/StructParent 25/Border[0 0 0]/Type/Annot>> endobj 204 0 obj<>/A 404 0 R/H/I/StructParent 33/Border[0 0 0]/Type/Annot>> endobj 205 0 obj<>/A 361 0 R/H/I/StructParent 97/Border[0 0 0]/Type/Annot>> endobj 206 0 obj<>/A 389 0 R/H/I/StructParent 32/Border[0 0 0]/Type/Annot>> endobj 207 0 obj<>/A 269 0 R/H/I/StructParent 140/Border[0 0 0]/Type/Annot>> endobj 208 0 obj<>/A 383 0 R/H/I/StructParent 79/Border[0 0 0]/Type/Annot>> endobj 209 0 obj<>/A 298 0 R/H/I/StructParent 28/Border[0 0 0]/Type/Annot>> endobj 210 0 obj<>/A 422 0 R/H/I/StructParent 20/Border[0 0 0]/Type/Annot>> endobj 211 0 obj<>/A 305 0 R/H/I/StructParent 12/Border[0 0 0]/Type/Annot>> endobj 212 0 obj<>/A 303 0 R/H/I/StructParent 90/Border[0 0 0]/Type/Annot>> endobj 213 0 obj<>/A 408 0 R/H/I/StructParent 135/Border[0 0 0]/Type/Annot>> endobj 214 0 obj<>/A 316 0 R/H/I/StructParent 76/Border[0 0 0]/Type/Annot>> endobj 215 0 obj<>/A 360 0 R/H/I/StructParent 89/Border[0 0 0]/Type/Annot>> endobj 216 0 obj<>/A 377 0 R/H/I/StructParent 137/Border[0 0 0]/Type/Annot>> endobj 217 0 obj<> endobj 218 0 obj<>/A 415 0 R/H/I/StructParent 91/Border[0 0 0]/Type/Annot>> endobj 219 0 obj<> endobj 220 0 obj<>/A 318 0 R/H/I/StructParent 136/Border[0 0 0]/Type/Annot>> endobj 221 0 obj<>/A 267 0 R/H/I/StructParent 92/Border[0 0 0]/Type/Annot>> endobj 222 0 obj<>/A 276 0 R/H/I/StructParent 93/Border[0 0 0]/Type/Annot>> endobj 223 0 obj<>/A 296 0 R/H/I/StructParent 87/Border[0 0 0]/Type/Annot>> endobj 224 0 obj<>/A 398 0 R/H/I/StructParent 88/Border[0 0 0]/Type/Annot>> endobj 225 0 obj<>/A 348 0 R/H/I/StructParent 131/Border[0 0 0]/Type/Annot>> endobj 226 0 obj<>/A 284 0 R/H/I/StructParent 129/Border[0 0 0]/Type/Annot>> endobj 227 0 obj<> endobj 228 0 obj<> endobj 229 0 obj<> endobj 230 0 obj<> endobj 231 0 obj<>/A 431 0 R/H/I/StructParent 126/Border[0 0 0]/Type/Annot>> endobj 232 0 obj<> endobj 233 0 obj<>/A 280 0 R/H/I/StructParent 127/Border[0 0 0]/Type/Annot>> endobj 234 0 obj<> endobj 235 0 obj<>/A 307 0 R/H/I/StructParent 128/Border[0 0 0]/Type/Annot>> endobj 236 0 obj<> endobj 237 0 obj<>/A 349 0 R/H/I/StructParent 123/Border[0 0 0]/Type/Annot>> endobj 238 0 obj<>/A 289 0 R/H/I/StructParent 73/Border[0 0 0]/Type/Annot>> endobj 239 0 obj<>/A 230 0 R/H/I/StructParent 113/Border[0 0 0]/Type/Annot>> endobj 240 0 obj<>/A 374 0 R/H/I/StructParent 119/Border[0 0 0]/Type/Annot>> endobj 241 0 obj<>/A 391 0 R/H/I/StructParent 71/Border[0 0 0]/Type/Annot>> endobj 242 0 obj<>/A 380 0 R/H/I/StructParent 121/Border[0 0 0]/Type/Annot>> endobj 243 0 obj<>/A 396 0 R/H/I/StructParent 118/Border[0 0 0]/Type/Annot>> endobj 244 0 obj<>/A 236 0 R/H/I/StructParent 114/Border[0 0 0]/Type/Annot>> endobj 245 0 obj<> endobj 246 0 obj<>/A 228 0 R/H/I/StructParent 117/Border[0 0 0]/Type/Annot>> endobj 247 0 obj<>/A 432 0 R/H/I/StructParent 120/Border[0 0 0]/Type/Annot>> endobj 248 0 obj<>/A 411 0 R/H/I/StructParent 124/Border[0 0 0]/Type/Annot>> endobj 249 0 obj<> endobj 250 0 obj<>/A 260 0 R/H/I/StructParent 111/Border[0 0 0]/Type/Annot>> endobj 251 0 obj<>/A 232 0 R/H/I/StructParent 116/Border[0 0 0]/Type/Annot>> endobj 252 0 obj<> endobj 253 0 obj<> endobj 254 0 obj<> endobj 255 0 obj<>/A 368 0 R/H/I/StructParent 122/Border[0 0 0]/Type/Annot>> endobj 256 0 obj<> endobj 257 0 obj<>/A 271 0 R/H/I/StructParent 125/Border[0 0 0]/Type/Annot>> endobj 258 0 obj<>/A 429 0 R/H/I/StructParent 70/Border[0 0 0]/Type/Annot>> endobj 259 0 obj<>/A 332 0 R/H/I/StructParent 108/Border[0 0 0]/Type/Annot>> endobj 260 0 obj<> endobj 261 0 obj<>/A 311 0 R/H/I/StructParent 109/Border[0 0 0]/Type/Annot>> endobj 262 0 obj<> endobj 263 0 obj<> endobj 264 0 obj<> endobj 265 0 obj<>/A 219 0 R/H/I/StructParent 115/Border[0 0 0]/Type/Annot>> endobj 266 0 obj<>/A 419 0 R/H/I/StructParent 110/Border[0 0 0]/Type/Annot>> endobj 267 0 obj<> endobj 268 0 obj<>/A 263 0 R/H/I/StructParent 145/Border[0 0 0]/Type/Annot>> endobj 269 0 obj<> endobj 270 0 obj<>/A 256 0 R/H/I/StructParent 112/Border[0 0 0]/Type/Annot>> endobj 271 0 obj<> endobj 272 0 obj<> endobj 273 0 obj<> endobj 274 0 obj<>/A 327 0 R/H/I/StructParent 107/Border[0 0 0]/Type/Annot>> endobj 275 0 obj<> endobj 276 0 obj<> endobj 277 0 obj<> endobj 278 0 obj<> endobj 279 0 obj<> endobj 280 0 obj<> endobj 281 0 obj<> endobj 282 0 obj<> endobj 283 0 obj<> endobj 284 0 obj<> endobj 285 0 obj<> endobj 286 0 obj<> endobj 287 0 obj<>/A 420 0 R/H/I/StructParent 101/Border[0 0 0]/Type/Annot>> endobj 288 0 obj<>/A 362 0 R/H/I/StructParent 102/Border[0 0 0]/Type/Annot>> endobj 289 0 obj<> endobj 290 0 obj<> endobj 291 0 obj<> endobj 292 0 obj<> endobj 293 0 obj<> endobj 294 0 obj<> endobj 295 0 obj<> endobj 296 0 obj<> endobj 297 0 obj<> endobj 298 0 obj<> endobj 299 0 obj<> endobj 300 0 obj<> endobj 301 0 obj<>/A 423 0 R/H/I/StructParent 83/Border[0 0 0]/Type/Annot>> endobj 302 0 obj<> endobj 303 0 obj<> endobj 304 0 obj<> endobj 305 0 obj<> endobj 306 0 obj<> endobj 307 0 obj<> endobj 308 0 obj<> endobj 309 0 obj<> endobj 310 0 obj<>/A 229 0 R/H/I/StructParent 149/Border[0 0 0]/Type/Annot>> endobj 311 0 obj<> endobj 312 0 obj<>/A 217 0 R/H/I/StructParent 155/Border[0 0 0]/Type/Annot>> endobj 313 0 obj<>/A 359 0 R/H/I/StructParent 82/Border[0 0 0]/Type/Annot>> endobj 314 0 obj<>/A 386 0 R/H/I/StructParent 66/Border[0 0 0]/Type/Annot>> endobj 315 0 obj<> endobj 316 0 obj<> endobj 317 0 obj<> endobj 318 0 obj<> endobj 319 0 obj<> endobj 320 0 obj<> endobj 321 0 obj<> endobj 322 0 obj<> endobj 323 0 obj<> endobj 324 0 obj<> endobj 325 0 obj<>/A 372 0 R/H/I/StructParent 99/Border[0 0 0]/Type/Annot>> endobj 326 0 obj<> endobj 327 0 obj<> endobj 328 0 obj<> endobj 329 0 obj<>/A 234 0 R/H/I/StructParent 152/Border[0 0 0]/Type/Annot>> endobj 330 0 obj<>/A 253 0 R/H/I/StructParent 148/Border[0 0 0]/Type/Annot>> endobj 331 0 obj<> endobj 332 0 obj<> endobj 333 0 obj<> endobj 334 0 obj<>/A 403 0 R/H/I/StructParent 65/Border[0 0 0]/Type/Annot>> endobj 335 0 obj<> endobj 336 0 obj<> endobj 337 0 obj<> endobj 338 0 obj<> endobj 339 0 obj<>/A 275 0 R/H/I/StructParent 146/Border[0 0 0]/Type/Annot>> endobj 340 0 obj<>/A 379 0 R/H/I/StructParent 156/Border[0 0 0]/Type/Annot>> endobj 341 0 obj<> endobj 342 0 obj<> endobj 343 0 obj<> endobj 344 0 obj<>/A 319 0 R/H/I/StructParent 106/Border[0 0 0]/Type/Annot>> endobj 345 0 obj<>/A 392 0 R/H/I/StructParent 68/Border[0 0 0]/Type/Annot>> endobj 346 0 obj<> endobj 347 0 obj<>/A 354 0 R/H/I/StructParent 67/Border[0 0 0]/Type/Annot>> endobj 348 0 obj<> endobj 349 0 obj<> endobj 350 0 obj<> endobj 351 0 obj<> endobj 352 0 obj<>/A 338 0 R/H/I/StructParent 80/Border[0 0 0]/Type/Annot>> endobj 353 0 obj<> endobj 354 0 obj<> endobj 355 0 obj<> endobj 356 0 obj<> endobj 357 0 obj<> endobj 358 0 obj<> endobj 359 0 obj<> endobj 360 0 obj<> endobj 361 0 obj<> endobj 362 0 obj<> endobj 363 0 obj<> endobj 364 0 obj<> endobj 365 0 obj<>/A 277 0 R/H/I/StructParent 144/Border[0 0 0]/Type/Annot>> endobj 366 0 obj<> endobj 367 0 obj<> endobj 368 0 obj<> endobj 369 0 obj<> endobj 370 0 obj<>/A 138 0 R/H/I/StructParent 151/Border[0 0 0]/Type/Annot>> endobj 371 0 obj<>/A 428 0 R/H/I/StructParent 69/Border[0 0 0]/Type/Annot>> endobj 372 0 obj<> endobj 373 0 obj<> endobj 374 0 obj<> endobj 375 0 obj<> endobj 376 0 obj<> endobj 377 0 obj<> endobj 378 0 obj<> endobj 379 0 obj<> endobj 380 0 obj<> endobj 381 0 obj<>/A 384 0 R/H/I/StructParent 100/Border[0 0 0]/Type/Annot>> endobj 382 0 obj<>/A 227 0 R/H/I/StructParent 154/Border[0 0 0]/Type/Annot>> endobj 383 0 obj<> endobj 384 0 obj<> endobj 385 0 obj<> endobj 386 0 obj<> endobj 387 0 obj<>/A 357 0 R/H/I/StructParent 105/Border[0 0 0]/Type/Annot>> endobj 388 0 obj<>/A 264 0 R/H/I/StructParent 147/Border[0 0 0]/Type/Annot>> endobj 389 0 obj<> endobj 390 0 obj<>/A 245 0 R/H/I/StructParent 143/Border[0 0 0]/Type/Annot>> endobj 391 0 obj<> endobj 392 0 obj<> endobj 393 0 obj<> endobj 394 0 obj<>/A 395 0 R/H/I/StructParent 141/Border[0 0 0]/Type/Annot>> endobj 395 0 obj<> endobj 396 0 obj<> endobj 397 0 obj<> endobj 398 0 obj<> endobj 399 0 obj<> endobj 400 0 obj<> endobj 401 0 obj<>/A 140 0 R/H/I/StructParent 153/Border[0 0 0]/Type/Annot>> endobj 402 0 obj<> endobj 403 0 obj<> endobj 404 0 obj<> endobj 405 0 obj<>/A 434 0 R/H/I/StructParent 142/Border[0 0 0]/Type/Annot>> endobj 406 0 obj<> endobj 407 0 obj<> endobj 408 0 obj<> endobj 409 0 obj<> endobj 410 0 obj<>/A 322 0 R/H/I/StructParent 81/Border[0 0 0]/Type/Annot>> endobj 411 0 obj<> endobj 412 0 obj<> endobj 413 0 obj<> endobj 414 0 obj<> endobj 415 0 obj<> endobj 416 0 obj<>/A 249 0 R/H/I/StructParent 150/Border[0 0 0]/Type/Annot>> endobj 417 0 obj<> endobj 418 0 obj<>/A 286 0 R/H/I/StructParent 103/Border[0 0 0]/Type/Annot>> endobj 419 0 obj<> endobj 420 0 obj<> endobj 421 0 obj<> endobj 422 0 obj<> endobj 423 0 obj<> endobj 424 0 obj<> endobj 425 0 obj<> endobj 426 0 obj<> endobj 427 0 obj<> endobj 428 0 obj<> endobj 429 0 obj<> endobj 430 0 obj<> endobj 431 0 obj<> endobj 432 0 obj<> endobj 433 0 obj<> endobj 434 0 obj<> endobj 435 0 obj<>/A 293 0 R/H/I/StructParent 104/Border[0 0 0]/Type/Annot>> endobj 436 0 obj<>/A 324 0 R/H/I/StructParent 98/Border[0 0 0]/Type/Annot>> endobj 437 0 obj<> endobj 438 0 obj<>/A 484 0 R/H/I/StructParent 180/Border[0 0 0]/Type/Annot>> endobj 439 0 obj<> endobj 440 0 obj<> endobj 441 0 obj<>/A 561 0 R/H/I/StructParent 260/Border[0 0 0]/Type/Annot>> endobj 442 0 obj<>/A 562 0 R/H/I/StructParent 261/Border[0 0 0]/Type/Annot>> endobj 443 0 obj<>/A 469 0 R/H/I/StructParent 166/Border[0 0 0]/Type/Annot>> endobj 444 0 obj<>/A 591 0 R/H/I/StructParent 165/Border[0 0 0]/Type/Annot>> endobj 445 0 obj<>/A 644 0 R/H/I/StructParent 201/Border[0 0 0]/Type/Annot>> endobj 446 0 obj<>/A 637 0 R/H/I/StructParent 202/Border[0 0 0]/Type/Annot>> endobj 447 0 obj<>/A 607 0 R/H/I/StructParent 262/Border[0 0 0]/Type/Annot>> endobj 448 0 obj<>/A 608 0 R/H/I/StructParent 263/Border[0 0 0]/Type/Annot>> endobj 449 0 obj<> endobj 450 0 obj<> endobj 451 0 obj<>/A 590 0 R/H/I/StructParent 164/Border[0 0 0]/Type/Annot>> endobj 452 0 obj<>/A 534 0 R/H/I/StructParent 244/Border[0 0 0]/Type/Annot>> endobj 453 0 obj<>/A 564 0 R/H/I/StructParent 193/Border[0 0 0]/Type/Annot>> endobj 454 0 obj<>/A 709 0 R/H/I/StructParent 194/Border[0 0 0]/Type/Annot>> endobj 455 0 obj<>/A 690 0 R/H/I/StructParent 273/Border[0 0 0]/Type/Annot>> endobj 456 0 obj<>/A 763 0 R/H/I/StructParent 274/Border[0 0 0]/Type/Annot>> endobj 457 0 obj<>/A 563 0 R/H/I/StructParent 192/Border[0 0 0]/Type/Annot>> endobj 458 0 obj<>/A 528 0 R/H/I/StructParent 191/Border[0 0 0]/Type/Annot>> endobj 459 0 obj<> endobj 460 0 obj<> endobj 461 0 obj<>/A 498 0 R/H/I/StructParent 162/Border[0 0 0]/Type/Annot>> endobj 462 0 obj<> endobj 463 0 obj<> endobj 464 0 obj<>/A 499 0 R/H/I/StructParent 163/Border[0 0 0]/Type/Annot>> endobj 465 0 obj<> endobj 466 0 obj<> endobj 467 0 obj<>/A 620 0 R/H/I/StructParent 205/Border[0 0 0]/Type/Annot>> endobj 468 0 obj<>/A 462 0 R/H/I/StructParent 206/Border[0 0 0]/Type/Annot>> endobj 469 0 obj<> endobj 470 0 obj<> endobj 471 0 obj<> endobj 472 0 obj<> endobj 473 0 obj<> endobj 474 0 obj<> endobj 475 0 obj<>/A 739 0 R/H/I/StructParent 307/Border[0 0 0]/Type/Annot>> endobj 476 0 obj<>/A 664 0 R/H/I/StructParent 308/Border[0 0 0]/Type/Annot>> endobj 477 0 obj<> endobj 478 0 obj<> endobj 479 0 obj<> endobj 480 0 obj<> endobj 481 0 obj<> endobj 482 0 obj<> endobj 483 0 obj<> endobj 484 0 obj<> endobj 485 0 obj<> endobj 486 0 obj<>/A 719 0 R/H/I/StructParent 315/Border[0 0 0]/Type/Annot>> endobj 487 0 obj<>/A 711 0 R/H/I/StructParent 316/Border[0 0 0]/Type/Annot>> endobj 488 0 obj<> endobj 489 0 obj<> endobj 490 0 obj<> endobj 491 0 obj<> endobj 492 0 obj<> endobj 493 0 obj<> endobj 494 0 obj<> endobj 495 0 obj<> endobj 496 0 obj<> endobj 497 0 obj<> endobj 498 0 obj<> endobj 499 0 obj<> endobj 500 0 obj<>/A 490 0 R/H/I/StructParent 242/Border[0 0 0]/Type/Annot>> endobj 501 0 obj<>/A 491 0 R/H/I/StructParent 243/Border[0 0 0]/Type/Annot>> endobj 502 0 obj<>/A 665 0 R/H/I/StructParent 309/Border[0 0 0]/Type/Annot>> endobj 503 0 obj<>/A 713 0 R/H/I/StructParent 310/Border[0 0 0]/Type/Annot>> endobj 504 0 obj<>/A 535 0 R/H/I/StructParent 245/Border[0 0 0]/Type/Annot>> endobj 505 0 obj<>/A 547 0 R/H/I/StructParent 246/Border[0 0 0]/Type/Annot>> endobj 506 0 obj<>/A 579 0 R/H/I/StructParent 199/Border[0 0 0]/Type/Annot>> endobj 507 0 obj<>/A 721 0 R/H/I/StructParent 321/Border[0 0 0]/Type/Annot>> endobj 508 0 obj<>/A 712 0 R/H/I/StructParent 317/Border[0 0 0]/Type/Annot>> endobj 509 0 obj<>/A 694 0 R/H/I/StructParent 318/Border[0 0 0]/Type/Annot>> endobj 510 0 obj<> endobj 511 0 obj<> endobj 512 0 obj<> endobj 513 0 obj<> endobj 514 0 obj<> endobj 515 0 obj<> endobj 516 0 obj<>/A 725 0 R/H/I/StructParent 299/Border[0 0 0]/Type/Annot>> endobj 517 0 obj<>/A 767 0 R/H/I/StructParent 300/Border[0 0 0]/Type/Annot>> endobj 518 0 obj<>/A 734 0 R/H/I/StructParent 208/Border[0 0 0]/Type/Annot>> endobj 519 0 obj<> endobj 520 0 obj<> endobj 521 0 obj<>/A 714 0 R/H/I/StructParent 311/Border[0 0 0]/Type/Annot>> endobj 522 0 obj<>/A 657 0 R/H/I/StructParent 312/Border[0 0 0]/Type/Annot>> endobj 523 0 obj<>/A 759 0 R/H/I/StructParent 305/Border[0 0 0]/Type/Annot>> endobj 524 0 obj<>/A 738 0 R/H/I/StructParent 306/Border[0 0 0]/Type/Annot>> endobj 525 0 obj<>/A 675 0 R/H/I/StructParent 189/Border[0 0 0]/Type/Annot>> endobj 526 0 obj<>/A 527 0 R/H/I/StructParent 190/Border[0 0 0]/Type/Annot>> endobj 527 0 obj<> endobj 528 0 obj<> endobj 529 0 obj<> endobj 530 0 obj<> endobj 531 0 obj<>/A 520 0 R/H/I/StructParent 235/Border[0 0 0]/Type/Annot>> endobj 532 0 obj<>/A 692 0 R/H/I/StructParent 281/Border[0 0 0]/Type/Annot>> endobj 533 0 obj<>/A 741 0 R/H/I/StructParent 282/Border[0 0 0]/Type/Annot>> endobj 534 0 obj<> endobj 535 0 obj<> endobj 536 0 obj<> endobj 537 0 obj<> endobj 538 0 obj<> endobj 539 0 obj<> endobj 540 0 obj<>/A 695 0 R/H/I/StructParent 319/Border[0 0 0]/Type/Annot>> endobj 541 0 obj<>/A 720 0 R/H/I/StructParent 320/Border[0 0 0]/Type/Annot>> endobj 542 0 obj<>/A 617 0 R/H/I/StructParent 172/Border[0 0 0]/Type/Annot>> endobj 543 0 obj<> endobj 544 0 obj<> endobj 545 0 obj<> endobj 546 0 obj<> endobj 547 0 obj<> endobj 548 0 obj<> endobj 549 0 obj<> endobj 550 0 obj<> endobj 551 0 obj<> endobj 552 0 obj<> endobj 553 0 obj<> endobj 554 0 obj<> endobj 555 0 obj<>/A 489 0 R/H/I/StructParent 175/Border[0 0 0]/Type/Annot>> endobj 556 0 obj<>/A 567 0 R/H/I/StructParent 233/Border[0 0 0]/Type/Annot>> endobj 557 0 obj<>/A 519 0 R/H/I/StructParent 234/Border[0 0 0]/Type/Annot>> endobj 558 0 obj<>/A 735 0 R/H/I/StructParent 209/Border[0 0 0]/Type/Annot>> endobj 559 0 obj<>/A 707 0 R/H/I/StructParent 210/Border[0 0 0]/Type/Annot>> endobj 560 0 obj<>/A 529 0 R/H/I/StructParent 226/Border[0 0 0]/Type/Annot>> endobj 561 0 obj<> endobj 562 0 obj<> endobj 563 0 obj<> endobj 564 0 obj<> endobj 565 0 obj<>/A 581 0 R/H/I/StructParent 169/Border[0 0 0]/Type/Annot>> endobj 566 0 obj<> endobj 567 0 obj<> endobj 568 0 obj<> endobj 569 0 obj<> endobj 570 0 obj<> endobj 571 0 obj<> endobj 572 0 obj<>/A 488 0 R/H/I/StructParent 174/Border[0 0 0]/Type/Annot>> endobj 573 0 obj<>/A 723 0 R/H/I/StructParent 277/Border[0 0 0]/Type/Annot>> endobj 574 0 obj<>/A 670 0 R/H/I/StructParent 278/Border[0 0 0]/Type/Annot>> endobj 575 0 obj<>/A 539 0 R/H/I/StructParent 249/Border[0 0 0]/Type/Annot>> endobj 576 0 obj<> endobj 577 0 obj<> endobj 578 0 obj<> endobj 579 0 obj<> endobj 580 0 obj<> endobj 581 0 obj<> endobj 582 0 obj<>/A 440 0 R/H/I/StructParent 295/Border[0 0 0]/Type/Annot>> endobj 583 0 obj<>/A 715 0 R/H/I/StructParent 296/Border[0 0 0]/Type/Annot>> endobj 584 0 obj<> endobj 585 0 obj<> endobj 586 0 obj<> endobj 587 0 obj<> endobj 588 0 obj<>/A 716 0 R/H/I/StructParent 297/Border[0 0 0]/Type/Annot>> endobj 589 0 obj<>/A 724 0 R/H/I/StructParent 298/Border[0 0 0]/Type/Annot>> endobj 590 0 obj<> endobj 591 0 obj<> endobj 592 0 obj<> endobj 593 0 obj<> endobj 594 0 obj<>/A 551 0 R/H/I/StructParent 176/Border[0 0 0]/Type/Annot>> endobj 595 0 obj<> endobj 596 0 obj<> endobj 597 0 obj<> endobj 598 0 obj<> endobj 599 0 obj<> endobj 600 0 obj<> endobj 601 0 obj<>/A 618 0 R/H/I/StructParent 173/Border[0 0 0]/Type/Annot>> endobj 602 0 obj<>/A 480 0 R/H/I/StructParent 221/Border[0 0 0]/Type/Annot>> endobj 603 0 obj<>/A 536 0 R/H/I/StructParent 222/Border[0 0 0]/Type/Annot>> endobj 604 0 obj<>/A 642 0 R/H/I/StructParent 267/Border[0 0 0]/Type/Annot>> endobj 605 0 obj<>/A 586 0 R/H/I/StructParent 268/Border[0 0 0]/Type/Annot>> endobj 606 0 obj<>/A 674 0 R/H/I/StructParent 188/Border[0 0 0]/Type/Annot>> endobj 607 0 obj<> endobj 608 0 obj<> endobj 609 0 obj<>/A 577 0 R/H/I/StructParent 183/Border[0 0 0]/Type/Annot>> endobj 610 0 obj<>/A 459 0 R/H/I/StructParent 224/Border[0 0 0]/Type/Annot>> endobj 611 0 obj<>/A 460 0 R/H/I/StructParent 225/Border[0 0 0]/Type/Annot>> endobj 612 0 obj<>/A 766 0 R/H/I/StructParent 303/Border[0 0 0]/Type/Annot>> endobj 613 0 obj<>/A 758 0 R/H/I/StructParent 304/Border[0 0 0]/Type/Annot>> endobj 614 0 obj<>/A 593 0 R/H/I/StructParent 215/Border[0 0 0]/Type/Annot>> endobj 615 0 obj<>/A 450 0 R/H/I/StructParent 293/Border[0 0 0]/Type/Annot>> endobj 616 0 obj<>/A 439 0 R/H/I/StructParent 294/Border[0 0 0]/Type/Annot>> endobj 617 0 obj<> endobj 618 0 obj<> endobj 619 0 obj<> endobj 620 0 obj<> endobj 621 0 obj<>/A 471 0 R/H/I/StructParent 160/Border[0 0 0]/Type/Annot>> endobj 622 0 obj<> endobj 623 0 obj<> endobj 624 0 obj<>/A 619 0 R/H/I/StructParent 204/Border[0 0 0]/Type/Annot>> endobj 625 0 obj<>/A 548 0 R/H/I/StructParent 247/Border[0 0 0]/Type/Annot>> endobj 626 0 obj<>/A 538 0 R/H/I/StructParent 248/Border[0 0 0]/Type/Annot>> endobj 627 0 obj<>/A 768 0 R/H/I/StructParent 301/Border[0 0 0]/Type/Annot>> endobj 628 0 obj<>/A 765 0 R/H/I/StructParent 302/Border[0 0 0]/Type/Annot>> endobj 629 0 obj<> endobj 630 0 obj<> endobj 631 0 obj<>/A 638 0 R/H/I/StructParent 203/Border[0 0 0]/Type/Annot>> endobj 632 0 obj<> endobj 633 0 obj<> endobj 634 0 obj<>/A 494 0 R/H/I/StructParent 250/Border[0 0 0]/Type/Annot>> endobj 635 0 obj<>/A 495 0 R/H/I/StructParent 251/Border[0 0 0]/Type/Annot>> endobj 636 0 obj<>/A 465 0 R/H/I/StructParent 212/Border[0 0 0]/Type/Annot>> endobj 637 0 obj<> endobj 638 0 obj<> endobj 639 0 obj<> endobj 640 0 obj<> endobj 641 0 obj<> endobj 642 0 obj<> endobj 643 0 obj<> endobj 644 0 obj<> endobj 645 0 obj<>/A 630 0 R/H/I/StructParent 197/Border[0 0 0]/Type/Annot>> endobj 646 0 obj<>/A 578 0 R/H/I/StructParent 198/Border[0 0 0]/Type/Annot>> endobj 647 0 obj<>/A 463 0 R/H/I/StructParent 207/Border[0 0 0]/Type/Annot>> endobj 648 0 obj<>/A 479 0 R/H/I/StructParent 220/Border[0 0 0]/Type/Annot>> endobj 649 0 obj<>/A 515 0 R/H/I/StructParent 255/Border[0 0 0]/Type/Annot>> endobj 650 0 obj<>/A 553 0 R/H/I/StructParent 256/Border[0 0 0]/Type/Annot>> endobj 651 0 obj<>/A 658 0 R/H/I/StructParent 313/Border[0 0 0]/Type/Annot>> endobj 652 0 obj<>/A 718 0 R/H/I/StructParent 314/Border[0 0 0]/Type/Annot>> endobj 653 0 obj<>/A 566 0 R/H/I/StructParent 232/Border[0 0 0]/Type/Annot>> endobj 654 0 obj<>/A 671 0 R/H/I/StructParent 279/Border[0 0 0]/Type/Annot>> endobj 655 0 obj<>/A 691 0 R/H/I/StructParent 280/Border[0 0 0]/Type/Annot>> endobj 656 0 obj<>/A 546 0 R/H/I/StructParent 259/Border[0 0 0]/Type/Annot>> endobj 657 0 obj<> endobj 658 0 obj<> endobj 659 0 obj<>/A 496 0 R/H/I/StructParent 216/Border[0 0 0]/Type/Annot>> endobj 660 0 obj<>/A 514 0 R/H/I/StructParent 254/Border[0 0 0]/Type/Annot>> endobj 661 0 obj<> endobj 662 0 obj<> endobj 663 0 obj<>/A 552 0 R/H/I/StructParent 177/Border[0 0 0]/Type/Annot>> endobj 664 0 obj<> endobj 665 0 obj<> endobj 666 0 obj<>/A 639 0 R/H/I/StructParent 184/Border[0 0 0]/Type/Annot>> endobj 667 0 obj<>/A 477 0 R/H/I/StructParent 236/Border[0 0 0]/Type/Annot>> endobj 668 0 obj<>/A 478 0 R/H/I/StructParent 237/Border[0 0 0]/Type/Annot>> endobj 669 0 obj<>/A 570 0 R/H/I/StructParent 170/Border[0 0 0]/Type/Annot>> endobj 670 0 obj<> endobj 671 0 obj<> endobj 672 0 obj<>/A 497 0 R/H/I/StructParent 217/Border[0 0 0]/Type/Annot>> endobj 673 0 obj<>/A 512 0 R/H/I/StructParent 218/Border[0 0 0]/Type/Annot>> endobj 674 0 obj<> endobj 675 0 obj<> endobj 676 0 obj<>/A 510 0 R/H/I/StructParent 238/Border[0 0 0]/Type/Annot>> endobj 677 0 obj<>/A 492 0 R/H/I/StructParent 252/Border[0 0 0]/Type/Annot>> endobj 678 0 obj<>/A 493 0 R/H/I/StructParent 253/Border[0 0 0]/Type/Annot>> endobj 679 0 obj<>/A 474 0 R/H/I/StructParent 179/Border[0 0 0]/Type/Annot>> endobj 680 0 obj<>/A 511 0 R/H/I/StructParent 239/Border[0 0 0]/Type/Annot>> endobj 681 0 obj<>/A 568 0 R/H/I/StructParent 240/Border[0 0 0]/Type/Annot>> endobj 682 0 obj<>/A 623 0 R/H/I/StructParent 271/Border[0 0 0]/Type/Annot>> endobj 683 0 obj<>/A 689 0 R/H/I/StructParent 272/Border[0 0 0]/Type/Annot>> endobj 684 0 obj<>/A 587 0 R/H/I/StructParent 269/Border[0 0 0]/Type/Annot>> endobj 685 0 obj<>/A 622 0 R/H/I/StructParent 270/Border[0 0 0]/Type/Annot>> endobj 686 0 obj<>/A 472 0 R/H/I/StructParent 161/Border[0 0 0]/Type/Annot>> endobj 687 0 obj<>/A 596 0 R/H/I/StructParent 285/Border[0 0 0]/Type/Annot>> endobj 688 0 obj<>/A 543 0 R/H/I/StructParent 286/Border[0 0 0]/Type/Annot>> endobj 689 0 obj<> endobj 690 0 obj<> endobj 691 0 obj<> endobj 692 0 obj<> endobj 693 0 obj<>/A 537 0 R/H/I/StructParent 223/Border[0 0 0]/Type/Annot>> endobj 694 0 obj<> endobj 695 0 obj<> endobj 696 0 obj<>/A 466 0 R/H/I/StructParent 213/Border[0 0 0]/Type/Annot>> endobj 697 0 obj<>/A 592 0 R/H/I/StructParent 214/Border[0 0 0]/Type/Annot>> endobj 698 0 obj<>/A 481 0 R/H/I/StructParent 158/Border[0 0 0]/Type/Annot>> endobj 699 0 obj<>/A 633 0 R/H/I/StructParent 289/Border[0 0 0]/Type/Annot>> endobj 700 0 obj<>/A 661 0 R/H/I/StructParent 290/Border[0 0 0]/Type/Annot>> endobj 701 0 obj<>/A 485 0 R/H/I/StructParent 181/Border[0 0 0]/Type/Annot>> endobj 702 0 obj<>/A 576 0 R/H/I/StructParent 182/Border[0 0 0]/Type/Annot>> endobj 703 0 obj<>/A 742 0 R/H/I/StructParent 283/Border[0 0 0]/Type/Annot>> endobj 704 0 obj<>/A 595 0 R/H/I/StructParent 284/Border[0 0 0]/Type/Annot>> endobj 705 0 obj<>/A 544 0 R/H/I/StructParent 287/Border[0 0 0]/Type/Annot>> endobj 706 0 obj<>/A 632 0 R/H/I/StructParent 288/Border[0 0 0]/Type/Annot>> endobj 707 0 obj<> endobj 708 0 obj<> endobj 709 0 obj<> endobj 710 0 obj<> endobj 711 0 obj<> endobj 712 0 obj<> endobj 713 0 obj<> endobj 714 0 obj<> endobj 715 0 obj<> endobj 716 0 obj<> endobj 717 0 obj<>/A 470 0 R/H/I/StructParent 167/Border[0 0 0]/Type/Annot>> endobj 718 0 obj<> endobj 719 0 obj<> endobj 720 0 obj<> endobj 721 0 obj<> endobj 722 0 obj<> endobj 723 0 obj<> endobj 724 0 obj<> endobj 725 0 obj<> endobj 726 0 obj<>/A 585 0 R/H/I/StructParent 265/Border[0 0 0]/Type/Annot>> endobj 727 0 obj<>/A 641 0 R/H/I/StructParent 266/Border[0 0 0]/Type/Annot>> endobj 728 0 obj<>/A 530 0 R/H/I/StructParent 227/Border[0 0 0]/Type/Annot>> endobj 729 0 obj<>/A 482 0 R/H/I/StructParent 228/Border[0 0 0]/Type/Annot>> endobj 730 0 obj<>/A 554 0 R/H/I/StructParent 257/Border[0 0 0]/Type/Annot>> endobj 731 0 obj<>/A 545 0 R/H/I/StructParent 258/Border[0 0 0]/Type/Annot>> endobj 732 0 obj<>/A 599 0 R/H/I/StructParent 159/Border[0 0 0]/Type/Annot>> endobj 733 0 obj<>/A 513 0 R/H/I/StructParent 219/Border[0 0 0]/Type/Annot>> endobj 734 0 obj<> endobj 735 0 obj<> endobj 736 0 obj<>/A 708 0 R/H/I/StructParent 211/Border[0 0 0]/Type/Annot>> endobj 737 0 obj<>/A 710 0 R/H/I/StructParent 195/Border[0 0 0]/Type/Annot>> endobj 738 0 obj<> endobj 739 0 obj<> endobj 740 0 obj<>/A 483 0 R/H/I/StructParent 229/Border[0 0 0]/Type/Annot>> endobj 741 0 obj<> endobj 742 0 obj<> endobj 743 0 obj<>/A 764 0 R/H/I/StructParent 275/Border[0 0 0]/Type/Annot>> endobj 744 0 obj<>/A 722 0 R/H/I/StructParent 276/Border[0 0 0]/Type/Annot>> endobj 745 0 obj<>/A 584 0 R/H/I/StructParent 264/Border[0 0 0]/Type/Annot>> endobj 746 0 obj<>/A 598 0 R/H/I/StructParent 187/Border[0 0 0]/Type/Annot>> endobj 747 0 obj<>/A 580 0 R/H/I/StructParent 168/Border[0 0 0]/Type/Annot>> endobj 748 0 obj<>/A 549 0 R/H/I/StructParent 230/Border[0 0 0]/Type/Annot>> endobj 749 0 obj<>/A 550 0 R/H/I/StructParent 231/Border[0 0 0]/Type/Annot>> endobj 750 0 obj<>/A 662 0 R/H/I/StructParent 291/Border[0 0 0]/Type/Annot>> endobj 751 0 obj<>/A 449 0 R/H/I/StructParent 292/Border[0 0 0]/Type/Annot>> endobj 752 0 obj<>stream H‰Y§y´ëí'RÒ6fgdÕmj:yºªAÖï!ZõVè_~o"8[«p{<§ u†s&a… >vûÄÇ:-dž¸(<&ÀlP¸—?´¶}m®ûèćUrWúìÚ%RĢ앫”(‡Ð}»®ó^OÂÌ‹J‹ä⌰¨Í[1£ÆÆ úÃùl‹N+Þm$‚?Їëœo • ôGòY-›~ÿ3„ÐU&4ˆþHÎÅx-$µÑPé iâ€öÌDâLÕ*8,SáM:mÜbÒI xšøKÈsT¾òŒXÆ‹}0®sÃh B àEà$ÙFÄA­Œb/.<(‹ZÅþ“ŸWõ8Tuàd¹vgÍŽcòÝôÐ}³%üL}à´…«ÐÅ‹ƒ×þú‡æ³ÊÑê?ž>mµÉpĸiǦüyÓ†5»%| Rñµ {J›•ÖÒÆ´x³8x³¶gn,”·­[·{­„“ üø–Ör•ªÂJ{–y˜[dÊÍÇAä.YMD§øí¬ –«èƒ_@Í!°FÀ HD'4¡åÎ\µÏi Sy}1+Ä=M4‘Öù¤Pm”«0Çù ׫ǀˆ]ïÓžké ÍÊ»6¨1Â…„yÇçI8Þ—þ+}¿Á@H¾sçpõ "\Ê°QÉUSÔbªžÍ!ÄiPÁê´¡U}åÐKàu¹k"‰š­…àÛš°ÇB?‡ãÕ/œ¶ºƒ,ÑlŸñàçôâšxxSóâʶ¥.þÚvÂ6m Åè„óÆÅC2Ú0:§¢/ZQ‚iü$°Êj™Å(p šÂhLâ„I0ó,†Í–;L PN9O'pšâýEc|´ê N”ñȯÅl$´` ßÕ]Ñq^9Zð³jÚ¼3§x«¼2sqé2 9(§ŽËE«O(åŸnΣ•zž¯UÃaZÄ`H?Ðh4щê3Áæ BOxÉ¥ðâ%ô@X£sO&¨-ügw“Ž¶€'r×ø*`}ò¦$¯S†PÃ7Æü\$¼úö[¢ƒ–ãPƨ`øÙ 4߸÷2»GÐi¸×xÙ9OI&0­ô†+@b¡Öf"¡P"Ô”ÕÖÈù«NKóænÍ]ªTÄq•õ·kz¤†S» ê”êíûÓ3Ì™Âþ¤Õû$´®ŠUĶÑÏïõ^l'²X"ì¦"¶½·j~â iIò…s5‡Ž®PªÏ:ö¶JÍM%;›}±žw°· üDéë6n!Ü–œð¥3$ L®ëÇÛïl/ZQ™K RMêßOø|©„sñõ@º 0ôß:ÕrUù%˜E — <晩õâ2|0I¸¾zÞ¡8 ¥)þh¤\Ñã>RMÝê:q¥‘Ò-”B¥ë;wŽ?ºÅþýÑO½ŸÑuü溈†0t°7:áÅUvê²q[;—^(%®ÙW•¦¬?–åh7Ð&Ón™:œŽ¯ûNA={Q‘}ßÖœé’@†ŸóW\íN¹Þ/GÞ}ãhÝ’;tÚ!mÈøiÆœ)Ò:tÛm-P>.ܳåóJ_õ%Þ÷U5=ÁL¸™ôõ¥Ðò»FàÏ‘’’3²W8 ’@YK §  ƒÎ½ëš7Uˆ‡ ö-Îm˜j&$3‘›p×ÓþöUUÛG “ã³Ðk^ÌŸ®wÄqÅ_~_ð­£t«PŒ‰t÷2”ÓÃø¿=»§ïŸß] –3郞–q%œ½ŽÑàëaõìnä…Ñ1ëÖÄËP‰Šú½³ÂªB6±Â'ÂÅÖkÍ]ÒÃÊUª‚…¡¿ ìûd¼ PyK%b¿øoøA«5‚wz °ËYK±#4oLL÷éÁÃÿš4™¿Ñ0A&F@:Í7Md’ÚjkM>?§g¬¨ÁÐsi®h;aŽã4ãÿùŒƒ÷„Î&N<Ÿñ0¬m±‡ê‚¥}ÊÂqªÆ2:µæPõlQa–³#_QMî0tÓ®¾Gûˆ}Ú€‰¬„JAl»XÜ–Z%—|²UŠOM_oWÎmhˆ—’²ìYvEì»dù‰åÒTÇqK·; ´v[Ö®Þ ‰‘ADÚ¬ÔRÌòúB-Ų́¬—•=°th‰ù¶)jY&&ڦ壨֎%J3×kPJJ*zü.ýöGçοÏáwÎùþ>çûûŠ6·ß’J÷Â5¦ãÒÕîAnôBÄýõÔ¨«¸1B¸úús¦Z¡ëpYv–{<§N Ѧ‚J™uJYåZ†´ä¶ñMù9æt.*&73U`Ø艽é¨an÷=³<áú‡NG X#KNmÿ'™e#R}ç}ÈÕLn‡%(RÇôY…A¸x:”㲯ÓàÏ‹ç5!k#Q‰\ܧ·Ÿ.˜aÝè›$óF€%0%óöÝ_eåÍÖ"ëÉNž}ë2èz¹°­{2öPŒžc èr7ÒkõËšÅ:‰þ#¾ß¦£âÐsÐ{õæ5Ë×½øýqäx7*·ñ3šëíjH'ìk•FàŸ¦ôRIsa“ªíÄÚnYœNÜ"°c ÂæS>æ‹Ò‚ÉÉ°Ö_à5ØeãÚ®˜öU 3W&v°ØsdØ’ü5®„ËQ•|TåŠÒÌÕɺÂæfíÓIs?Ï: )0ö vX™d`Úw$™9œ½!9ì`µ±¥@xî¬7©Ø©[uûnUeqù “V‡³‹²ãÄk:ÿXÄp2Ⱦ{÷ÈŽu€÷ë‡ï=ט¢”Ñsq@c²+Ž¦¬ßÍT4…¼Æ"K§ é(ÂzÐ$¡f£øÍ ,^Çmã/;Ú‡yjG»d]Ô0ËÃÄ1i”2A™öK˜4CÊÎXΘWÕ˜/ä¶[,Z¸.¯b9£¿¨¿aäuöž½ÉõÚª{,†bfߟ/ùu#äAdÓš.{d‹¹d0¾Â`x¥'˜'¾WB„ÛON’Ÿb¦GêVÐc¤Á"ˆÇX0°N*îÄBÁ`8謂!Tá$/ÞR¢7Ã>À(îL_+!—*Ø) ÇH…N=‰UB °ZäiNSzâë;)Ú[jÓ«;šB|ªA3ch|¸Œ›Ê”PXý£Ìm)gÈ2Wú¶à¿R+‰ endstream endobj 753 0 obj<> endobj 754 0 obj<>/A 640 0 R/H/I/StructParent 185/Border[0 0 0]/Type/Annot>> endobj 755 0 obj<>/A 597 0 R/H/I/StructParent 186/Border[0 0 0]/Type/Annot>> endobj 756 0 obj<>/A 571 0 R/H/I/StructParent 171/Border[0 0 0]/Type/Annot>> endobj 757 0 obj<>/A 569 0 R/H/I/StructParent 241/Border[0 0 0]/Type/Annot>> endobj 758 0 obj<> endobj 759 0 obj<> endobj 760 0 obj<>/A 643 0 R/H/I/StructParent 200/Border[0 0 0]/Type/Annot>> endobj 761 0 obj<>/A 473 0 R/H/I/StructParent 178/Border[0 0 0]/Type/Annot>> endobj 762 0 obj<>/A 629 0 R/H/I/StructParent 196/Border[0 0 0]/Type/Annot>> endobj 763 0 obj<> endobj 764 0 obj<> endobj 765 0 obj<> endobj 766 0 obj<> endobj 767 0 obj<> endobj 768 0 obj<> endobj 769 0 obj<>/A 774 0 R/H/I/StructParent 325/Border[0 0 0]/Type/Annot>> endobj 770 0 obj<>/A 771 0 R/H/I/StructParent 326/Border[0 0 0]/Type/Annot>> endobj 771 0 obj<> endobj 772 0 obj<> endobj 773 0 obj<> endobj 774 0 obj<> endobj 775 0 obj<>stream H‰ÜW TSW¾YD¶&èŒCõ¥ $áe³†ð9l&!¢UÇ$ pÀˆ žt±°i,Ò@,NÓ„†ÍºDïWNģað¡öÙø €ÇÍväXb‡rè‹dÏKaö<ñüÓ"<Ÿ4ú¬?oO€m@ö‘&¤ð”rJ˜Œä÷LVzjA:>ÉØ»Q¿oÒ– ÑÀrZõSl¯Ù—#<´é­„çNˤ­ÿ¥ƒ$3< ÿþ8ˆ`uÝ̈:ÑS º.ÑCÌ)ºÇw .YöØå®qŠ®"Õ%6‹%÷Àúð]»gØ<À&ñ!|—åÊfqkÔX:&é¥ñ]; ÄÄvÝiÀ(`@áÌÁ×ýq½Ö͹Ö$èX{.©îy¬âPÓóÌÉn@#ˆ-UÔŸ˜{½öоˆ#+ç—7lÔè>ÅÜ_qeq¥ÒÏä±wùœ ®@ÔWGf9ǵdEÃT‚.°“Säý0 y¼H n3Êä,¸{" ÇÒl% †Ö[f[Ôd¾ÙH@µÝNˇ`aÝèÔ4˜Œ+âñd\;*”JUºV• ƒAQCáëk`ú¹G Å"äaØP ]ã% —ÿCüßß@éêÞgÎâNé|tîìÒRpJI¤²RßíüµÂ=ÞîcÎkZóÚŽ…ï8ýÈíÃ!÷oT>wëÓò—ߌû}ÓwÊ·W7Ì ¼9=Ó‹š<õë\ŸÎÙ‚ê2'Vq;¥ïÌRßÆÜÅgü3CÏófE~µxS}ʨwbü·è–Ïð[e)k•´trýúÈ3nÒSõQ+Ù”Ôo¤ñŠö^5›7üä’ö¢3l.ìàu,‰Ë Ø2øòÇ"¢â¹dë“q+ Þµ%öìï9¡[>ÅÕ :¼ö‹óÅ<ÿK¤”[Æ«æÖw‘Xy÷qß”o]¬ô²d>D,m¬X}™ëX<]¿àÀuaîŠ G² ñqKû‡-ó¯˜û,Ëõ½‡'Ÿ¡ümB#’íöy¯8¯¼íמ˜9«¢1±¼2ðŽxÒÿ_o–»øç4^îTøÖþ[_žàgçãy2."WÜF¤ ±Ò꟥ô<…9LJ×éo×o™_™Ty¡Þ{¢ù‚ ØPÉ—75¿(ÿ4ñ,½øÆiþÕ[ÖNwëi‡Q•¶WhÃ~XY'u»|Ï>¨Î}ô$^DZq³6­e$¾UØ2ïÄ»KZÚªê‹ýñx/Ë©eÛXºu¿‘­Ž~P¼!sýYâÚÇuSWýñ\R¼éCéôÎ]lçÚ:©}ùï>7ï¯ö·mÔÑ‘nÕÛÎÏ;ï³°‘sÍ-PÇÿ.õó¤/NŒI<=L÷Яéàû1ÒÀ°æ•Wÿ4"éûVkRþµlgIsqkÌŒš§K‚å!>ÏŽŠo_Üv#CáH”Jf`N·õhxÖpØ,6Û«0»Ê6s[ËnÖ;¶ê†z"·7c6Jhý/œúÛ#ŽÉ»ü*#”v«• f½jìÙtž$`zžÁb¦LIA¥¢+%‡aCä‘ö*%1,<"*"jædMø“'b ÝFq²|dH!C™Ñn EØN™i;YªL×0kØI‡  ¡šÈ–I˜¼–%k˜\Ž”Çb»ýD$˜sÌ4ZO€J‹ž¢`8”³‘´SˆBÞbÎÒÓf» æ‡É…˜cϱ34ræÍ®"Á=eB¥GÛmr/Ì£û(\ÔD–ÕnË’À| GìÓã^‰8ÚÉ.·/ç…o™G ߬"'Ë ½+ÛÉbúÊ“ïoÈúûMŸƒ/¬EŠ4ÁS{pn³ìWšõa‘WN›þщ¿ÓZÕA|£ÃýÜc=<æ°.¾u|çÖ`lEXæ´Ý§æ,o¸Zð=ïÚmU·½þËØYŽ«OìãÓ¦Û=Õª¹>g‰ 1׷Ʋ4ÚC(ºí÷5\õ‘a&ïX@ÿuõæê䪳±©™q΢;nº]¦†xÕÚùºöÖ%íG$Ö Jk~°è.g`Ñ=ŸèO6¥ÏäY wç‰Ê‡kóõ ðG|5øàͦ…¹GögïX£õÿV˜3íɜŠÍÙ‚M£Ÿu’~e?åq+SÒ²=:ëŠè³‰Gg[“ûnsA…¼ÎÉ»ˆ9y红ó®ˆËÆ&d^=¹\›Wƒ•–3‹[Z‚Í(ñ*ªúÛ e§iÙýaÇm1? kŒÿ…BròØõè«óc˜pY¬Ü~˜c¾üz¾ìúrØ.%EA\>†ÈóG`Nnd/Œ€1urz`MPÉ M;¨èÐÐQkœœ½¥NN½Öd¦ ‘ is¶Ù¨§ hî*&ÙŠ©’È&HÂf$$PoË‚fš‚y‚Q¢I³‘¶ ¨<ÃdÂHCÚ.´‰€=‡ðÊ/S/é¤ÞH3 µ&š°6FL‚ˆ&Åä2 -’¯7[ô Ãäuo=€z:Zð¶Æ0¬UR+rƒp­ %‰Ü<‚¢©¯ãì¤A__©†ED…£0êQ‡TäH‘bϳÑzÄJg& $(„0j6$\¡Q œ£4ç˜h¦IÊ£¢"ßp¡ÂbjA¡" õd"K•*µV§ Æ(ÔjEªWi`®Q&+ðUT¤&ôêÃÉx ŽÚ°LÀ SñÔ¤h¨©‚LKD¯¸¦Ëžˆ+ZD¢F«Æ•Úä±P“?J¥ÔBmc"ЩÔ8úc•Ú §¥ÂtµB©Å•*d‡¤¨Rµˆ6³®ù‰ù*‹âÈ⯪ºgpPQ0ÚŠ¨aU<]¹ú½Õé1Ö QùŽvvÎ ¥¥ T(dZœÚýB;‡£G¹+‘iæ~ ºLÞ?#"ã°,„… 1ªmX…G†…*»Á.3#8H–„ú]Á•&Ä­ Â8ˆQÅ ÁaBˆ …vM'…„$Ävg`¸*6º+gd‰ÝÛ ŽÀHÕZàjg);h­žþߤyO”*Be.O?¡­$—~T®–«%º›\Ȧ— "%;Ì%:XUx+èðÑÿq~$IÜ;’Êýä†ÃûÕC9VˆÑ¼žN³¸.f#ûvâÞš"DE[ Qñ˜ ÿ|º„®K>üJgÌéÈ%XíðÓïÜ£=©ít?ìÛ¿l³ií¡#ªê‹§”}Åëά•¸ê‡5,·x¹Ð&{mÅÓa³’šóŽëª­ó—»ì¾³dÊêù3ųhpžþÂÅÝ2öçºÆõŽªñyÝV|oÇã6.Õ>‰ý]‹9Y’25ÉÑfßÆœ7™›fš[¶™5Óö̯¿d˜Xepã±Aèò„ÿÁþñoƒ%:ݤPž‡ýéÇä£zYÀ¬ÞÝX87„ÿCÜÔòªËíÏÅÔ:)÷~gø@+{ùüý#ÕÃA É Á ‚( c ¾d‚z¼6šÞStÏ¡¦+šâcÂâ“ׄý®ß‘†Ë °´Þ ~UÛÞì ÏŒyœ_.«,2¶}Tb7Â)<¬.÷â†SËíórå_™÷ã‚Ÿ¯u⧢cìµÿ¹¢è{ñ×Zš~ 5¯NzåµjûˆSƒ®ÜÏ Þºú³!{ǯ”þ0lTröÿÇf™Á&£’(7«Øm¾Qõß~¶æž#¥ï…˜Å,´óïË^§ìý2vLZéÑçÊ¡{žµnÉhÌ.®·N¯¥ýNä’Ài…nôœË§ÊÚôÐæŽÆkÏõ¶æú–¨I7Î~U·òF¡YùÅ´Æ û~W £ô]ï“h×8ƒOöÜ=lÒ¸®.E¨2Xwd¤‰Ù ­w/ûç¶d̽”w4KsùLʃi7'›—dkxªkèó…Ä*ƒœÅ®ÓÚ K¯ú¿¥†pvha³Ããqoœ–dfÿÙ)+ßôÉ°À~ê/ùnœêö6¤ô÷ o¥§}õ°’㻆ÜjÆ´éKÿ%LÛ òÝ8 «X¿]|a°SÏ­P¥«)룢gا$~÷àæšW†CÝ ü›ÒjÄ/Û¸g©·ÂgHW‡)† 6†Ä×g K-Š[+“ÅãsÓ¾_¶óéu\ñÐÒFi›/Ëœš>¬æê!³¹}jV@òÝ›¢qéŽÛŒœÓm·>“ëÛ—¬ï•9Àå×3Ö{l¾þ´Ñ³uKYœ¶¨î É€/ä§aÓ´û—í‡pª?ñ<¡D*¡¼ú]ªÌï:D~‹Æ‰LÓÑ%µêÞ§ür°âÝa,Þ£Ù0ï¾½ïküÅÇüj0Ѭo™éáà/ßÞÝW˜Â °€P pŽLo8/^ƒXB?„÷±?NÁy¸Ž ŒH*bl‰°öÃlÎH¬wx¨£ÃaÌ!*€!DÀ>r \Á ç°gȆXü^ˆý/È,|B@Ëqõ°ÎÁ_à…3ZBºþ…ø8`E 8 wx{~3@…R¨Ä’"íì‰X)6ˆÿ@- °kÀê Û Ç…ËÔ„ÄñâEÖ—!글k='ñ#!ôKÖ¼cÄ2äa ڌ֣Ø!Oˆ‡Ã8² Þ(T ÐÍPqHa,V¸ÉhŸ/V¼õ[E!à xH> +Éò„¢jZÍ{K=¥žª;¿Åç¸Æ@‡Ö.†Õ„šÛ`;ìBÍ\ëO(ÐI¬‰ ±%®Ä‡ä‘Mä0yI'Óïé6˜é±)ÌŸ²TÖÂ^éð^šÝšk¢·˜„\ä\†žt@œ‹`¬8øRAÖå¢ä#{e(åÈg5Ê7pî¡´ÂCx„1Ç#F™„"G±!óÉâK~O"HÙMN’*rŽ\ íä)N­élêE}h]Cãi>-§´šÞ§¿ •s˜‚űX«eÙuÖÌ·€ â"¹nWÎ}ËupO9 ¼ Š%Äïï< qÓˆE1XÜ*æ£äNËÞI¨‚¯1JkÑ¿up šßmhð ÉÑâ3$ãÈûÄ ùGœQ–¢ŸI*Q“\RˆÉ"CH|FÚÇÔ´.¡º´‰dpW‰z`.>wÛŸÑÂ÷Èu:“,f!d)ò—AÂIìe£Ù¶ø¢dÞ$”Ünø•ÿ‚øú9£|ë$¯h¬„\ºº³Tô'ƒAIÑ#1i0,8#h¢³¹ÓÄ”ZÐjéqR¶R ›Íæèèa뻇f*uôHûoŒW{lS×ÿι×÷Þ8 Ø&Ç&õu/NHçEi^^rÛ!IšÄÙ<6;NX‚¶‚T`¢ŒŠ1:S"W•˜´MZ5¡®M§í8@åTŒåIû«!mÓ”ÇöÇ UE™Ö&ñ¾sㄤCÓ®ý;ßû|ß={î…¤ð1îŸÛ¸·Fé;øL¸Oþ*¿ˆÕ- ¿FŸÓÐM./[á=Sœ&ÈVz™ì^:»ô'á'ùŸ‘*ú1À’u)@ƒ¸âöägé ø~´üoñÜ =øÔH;ç3Ü{ßÅ'Í^X¤¥¸Ÿ¢ø9ª÷ôtÍßÕÙÑÞ¶ó¹­-ÍM¾o}ÝöÚÏ6íY·êz¦z«ÓQe¯¬(/Ûb³Z6o*-)6)²dñ­ÂZ_Be5 &Öhýý>.kIT$×)LEUßF¦& 7u£§Žž‡¾â©¯xêkžÄ¢úÁïkPÚÊ> ijŽì‰!1¤ÅUöÀà ^¬1„RÜnŒPÃö©ÊHB ³¾Sép"„ýe‹ÍA-8iö5@Ö\Œl1r¬R;š%•ÝÄ`he¸3KA)Ū˜C …Y•â%0ÁNN°á‘X8ät»ã¾F‚)mœÖË6{ i˜d²‘Fæ·ÔlÃBúœÆÞ’ m"y Æ„dœç°z1oˆU¾r×þDÄÎmÁØùõV§Û§U.¦ÓçUööHl½ÕÍÛxûÀXêéK¤û0õ8Š‘¨ŠÙè¹xŒ‘s˜RåwÂïjåþ&µ0×$«¬HëÕ¦Ò‡87Ž4ƒÑ“î9‡CŸÏßGXMÅ47ëqjñdhk¶ Ò£'¯TéjÕF‹¯!k±® lvÓæSRºž™\³œáιÈèÚÈ^‘ö®¦¦T¬$¦á=µóf²Ò©vtÃ+N0ŠMàŒL³¢`"méäzÏL‹¦¦?\ÚƒnÔ$ Écù8Ë×ÉÚZCû*ϼ^V_Ï—ˆÄ9Å» y§¯áDŽ´£  ãØ&ãM8ün7Ÿà 9ÆQ`gFb+² ãÎ9Л¼qFܲ°j)ßÃ-gV-ká WòU<¿Ê™R³ößl©Øžêd¤â˜'W쑨ÙSÃéDal#c¤{ûš­À±-Á˜à¤Ž:Ê‹òÀš3b%Lôà_2õDNVpU¢ö1K¢¥›Ýîÿ3(—ÿ”GäIX¡LÖéÝ(wm7”W’°`±†FÆö¥Óæõ6àƒ¦/wc»wùýÅFå˜1Œë¯âGxªòë ÀW;Ä,Ü5]…¤à'`Dš…]Rô g¡mcÚÞD›ý_*Ð7iG>úħˆD¡"ÆqÄnÄ÷#´~‰¸€±~Ï©pbœ7ýÊL{áY¤6ñ8Ä;P+9¡_¼ êj0ÿS !ï1†2¹šÇäÿònɃ>±†—¡F¼íÛe:Xû.´µ›ê W:€ùî@öó éïä0ÒSuÿDáÏØ÷ÖqÑ'<‚0ƾ za—0€÷w|ôçDF{9¢Eü)Þ“¶#ÏëoC>Žt}†0Ö‹ö]8ž¬uXø ö#mÂ~÷ „›äÇpéÐÿ9ñ1l!_yýg cžÇ±I‚yI"ÍHÿ…x¬ì…:ùD°ÿƒ«T؇øØá ?]Ó“ó„_ÁáÂslã¹€ûâMÚ¡@þ"Þ»*]Â9? >›oÈ÷È÷q¬† \‚$ÒAì¯цè* Ót•˜Åh¢< BŠCvA+Æ6b®1¾6ÐÖŒu(Ô¿»P¿A±Î&×Àj¼4õãl]XÃ#|ßx„ß9%—1æ8ÆwÓü:MßY[þ-ÁF®PÐÍ K.ÃÖ@9Øh-þjh !¸;¾i´/mÑ6ñ–6Í5¹\9Ú8÷6' sÕuH¶éÅ·®–Z›Ë_ËåJ½ëÛu®[³U®Ûˆ÷k[]¯û[]gMˆ(s¿ÚÙ:בÚ#ß9òƒ#çÅ6¨¨ÀY¶Y=Gî|°§¬¨¬¨-“#¿Õ;äÌoäÌ9ó-93!g¾.gúäÌór¦QÎxåŒGÎl“Ë›bQ6)%ŠYQIª€R–ËßÒ½|ó—IN$‘·¢Á[(oùFÇ'% ů;¶EˆÐH´—µ{#99?ÊÚ¼&ïe ™‰£–Ñ×sÆb9’çªsN~jÏ!ùs“[HAd\e£ZŽ˜ñAeÒz ³E 2Ök‡Š=ö[·µ£/ô”&Qh½O.»wý>y\ä8ÿø"ǮȮ·d®¢6ch3\›1´öjv)±Ùê8kåL¾:N®®é§ø{@B O"ì‰);;3®ªYýZá¡&1žšâ49É®i“!¦k!58õó)nh¡,œ Ų§ôÉÐ\@„µd(>Cd<[?³!ÝWÓÍC=ÿïsdœwYÏ3Í<%ã 7ñŒ3<ã Ï8¤ÃÓÑ^ŽeèãácÐ+´ØŒS•pºã½–£ÝƼu¹í¯:?¼ Åx—à{])‚›|_€›pÁpÓ&þÊW0Ù_ír;?$ïLT[µ^ð÷~åz™_`O‡8°’ùü=3gsµzãüœ¡ü¯?ÜÆ8i]ú3’œBIL `–L)A Ž"YL¨RêÚíÞ!Ë#ÿà’ÈòØ?hYòCÉÏÑÒ춺­lpmâ*,,ê&øOœ¾¶ÉßDÕ1‡C/j8LP%ªÛyw-÷¡ip©¥Ùê.w‹Ž/ïS=+'£ð¿s$xM·¶›úMïIˆd‘Pš£gôb ÷$Vd›I,3᧥HMAPD¸Nñ¥]èqL7‹ŠøŠT%»´— géñbµUvØ::Î+^ñ´åwHíVÔ"Zšá ~¬â§ðpña`Ñ&:^ZN.üóUÚÔ†ßsν7÷æ¶ùh²¦‰¦½iJÓï6I?Œf6b[­5ZÚns‚s­¦ZM›D± Û~­µc è‰Ì}0e ÔÍen°Á÷[aƒ û‘ ¤«c3×½÷æ¶ÃÁ”¡?Æ›sÎsÞsÎ=Ϲç}ÎÍ9@î†5¦Q®a™i¿‰ÿ™Æ£Ò fò23ƒyÙ2sª]u3§1eÈ”hLA„ßyXdºô_˜†;é ÏD‘æ5öË$9O.T-aýŒî 3±:'æ› uB9Æñ,Ô‰ñÀý¬P¦µ¹aÊ>§›µ¡#×ÈnxG_'*FMaž|/\§‡è$T4Ú–Ü‹·wUØòšaH``t{ÜùY ŠÓe€Qâ“wåÏAš%ƒê´º™?øÇvó~DßqµØiÁ‰XyMÀ×Ô`#Á&eærG¨^hI:Ì9:“„dé&‡ìµ¶çȪ«ÄÜ#åÈÝX £@¢Áú†º`ŽÜ‹•<­¾÷Ê4¼p‡±kÿUß×ÇðÛ¶Ïçó¶ÛQ›F´µ-å1»» ·mùî¨=bwEð]ã«Öß)±;]ååáPgWXüÕµ#×n­ˆµí]]ö°ÝYìggke©Æén4×ÛǶìÆ?ÝØü|=]åèò׸ªJV›J>¬ÞÑÔ>×ÏNÞ?ÚV]ÚòúøÎÔô‹þê·’ñªÎØêÚÈꆗúŽŽ0oáËñíë{é¼þ‡ùéQÜCTÁs±úZk§µÏʪ*½Ìc·Y-L[Õ¼Ë%‚ÏåòÈ—á¦â¹lw+¾Y{Õ§ÉW_½m©°­7уkÖ5¬Ç•–p­ÓÄÑ©­¦3Âå™ó9ª’”·„³8mÏúýK­û”:VUZêØÔà¯7[Ö`~R“vƪÝþZŘ«·HÝ«Më»ê*+¼ ÇÔ´5ÕrÕb†ó1gÖìâþÉXV$#ñœ—åèºyâ…=³Š&¯d6k:0™0F"1³, ï)1„[×s[ú¡µTTÔÃjšåŽ£š–Å4½««¨&‚'“¡¨ûeZúQÖVaîeý¬fvd80™eYàÐÉs&QdÄ,I”QIòŠÌ‰uxÞ+ÈNA@Ž×+™‰‰ãd‰gâÛ”‚ +¥¸ƒ,Gú>‘Ü%C§ŒK߶⠴Ã@ÕCÕ™µ´4ÎZŽßÀ²B&›%ýGlsâ"ÄDH€>’%Ù^õÉôª'Õ“XUO²êI÷¨'Ô¹>’QOaFÒúú¾¥·ð¿« ¾Ï€‘cÉžRÁ]Rú«WÚ1ÞÏc iª@Qh1Co-œ9»°pöÌÝP,ôÛMè1¶õ‘öÚâßFzŸº-< £kèV¦[äÿeú˜á••ûç«`|qñ mÅZsˆç , >‡­ÀIXSá#¨$— LÁB¾10Cÿ‚9Ä‹ ’–ÌL%ÆG÷$”‹ÊÈþ„OM¦²èR6¦ÒS©ôhv"5©L%÷´(=£ÙÑÇtjÕ¦ §’‡5OFéŸÄqÁH¤­³P‹²!™T†&öíÏf”¡D&‘>’Ø;Ð;ïßÞ8á“ZW˜)0Œ-I8¼Ò'ƒ¾~,‹ó!‚ÖÍ éÞ 8"‰åŽÙ‡²ú¨!|^SŽ`¾ ‘[?l‡FœgÁ˜>[ç×zïÃy“È/ý˜¾OÒZŒÎ¯p.^FŠ_ÀVˆ!ÊóVÝ£µÓ×àZPº´ÛýMôŠºûÝÍ_¬ÓÊù­ßýôàº^¼#ÊX•—#ÿ/âÚ endstream endobj 776 0 obj<> endobj 777 0 obj<>/A 781 0 R/H/I/StructParent 329/Border[0 0 0]/Type/Annot>> endobj 778 0 obj<>/A 782 0 R/H/I/StructParent 330/Border[0 0 0]/Type/Annot>> endobj 779 0 obj<>/A 772 0 R/H/I/StructParent 327/Border[0 0 0]/Type/Annot>> endobj 780 0 obj<>/A 776 0 R/H/I/StructParent 328/Border[0 0 0]/Type/Annot>> endobj 781 0 obj<> endobj 782 0 obj<> endobj 783 0 obj<> endobj 784 0 obj<>/A 783 0 R/H/I/StructParent 331/Border[0 0 0]/Type/Annot>> endobj 785 0 obj<> endobj 786 0 obj<>/DW 1000/Type/Font>> endobj 787 0 obj<>stream H‰T‘¹n„0†{žbÊD)|aWBaSPäP Û³f –‚±Œ)öíãí*…ÇúæöoR7§FI äÓ,¢E £TƒÁuÙŒ@¸à$0ƒv§`ÅÜk ®¸½®çF ”eB¾\pµæ ]w|¢@>Ì€FªÉy2þ}vžvÓúgT(T 8&¤~ëõ{?#PxwvWÀ³}ö2àª{¦WBI)M+‡ P ÿã £±ì2ŠŸÞ$÷tN+OŒ:âœñHcˆ¥u Î"½F*<¥Ç,PN½ÄÌÂ÷ä4M#e¡çs)]NE¤CÈänž[vßʯí%½É 6cœBA÷ ƒW@*¼}^´¬?ÉŸƒX endstream endobj 788 0 obj<> endobj 789 0 obj<> endobj 790 0 obj<> endobj 791 0 obj<> endobj 792 0 obj<>/A 789 0 R/H/I/StructParent 333/Border[0 0 0]/Type/Annot>> endobj 793 0 obj<>/A 790 0 R/H/I/StructParent 334/Border[0 0 0]/Type/Annot>> endobj 794 0 obj<>/A 798 0 R/H/I/StructParent 341/Border[0 0 0]/Type/Annot>> endobj 795 0 obj<>/A 805 0 R/H/I/StructParent 337/Border[0 0 0]/Type/Annot>> endobj 796 0 obj<>/A 803 0 R/H/I/StructParent 338/Border[0 0 0]/Type/Annot>> endobj 797 0 obj<> endobj 798 0 obj<> endobj 799 0 obj<>/A 804 0 R/H/I/StructParent 339/Border[0 0 0]/Type/Annot>> endobj 800 0 obj<>/A 797 0 R/H/I/StructParent 340/Border[0 0 0]/Type/Annot>> endobj 801 0 obj<>/A 802 0 R/H/I/StructParent 336/Border[0 0 0]/Type/Annot>> endobj 802 0 obj<> endobj 803 0 obj<> endobj 804 0 obj<> endobj 805 0 obj<> endobj 806 0 obj<>/A 810 0 R/H/I/StructParent 343/Border[0 0 0]/Type/Annot>> endobj 807 0 obj<>/A 811 0 R/H/I/StructParent 344/Border[0 0 0]/Type/Annot>> endobj 808 0 obj<> endobj 809 0 obj<> endobj 810 0 obj<> endobj 811 0 obj<> endobj 812 0 obj<>/A 809 0 R/H/I/StructParent 345/Border[0 0 0]/Type/Annot>> endobj 813 0 obj<>/A 808 0 R/H/I/StructParent 346/Border[0 0 0]/Type/Annot>> endobj 814 0 obj<>/A 821 0 R/H/I/StructParent 351/Border[0 0 0]/Type/Annot>> endobj 815 0 obj<>/A 817 0 R/H/I/StructParent 349/Border[0 0 0]/Type/Annot>> endobj 816 0 obj<>/A 820 0 R/H/I/StructParent 350/Border[0 0 0]/Type/Annot>> endobj 817 0 obj<> endobj 818 0 obj<> endobj 819 0 obj<>/A 818 0 R/H/I/StructParent 348/Border[0 0 0]/Type/Annot>> endobj 820 0 obj<> endobj 821 0 obj<> endobj 822 0 obj<> endobj 823 0 obj<> endobj 824 0 obj<> endobj 825 0 obj<> endobj 826 0 obj<>/A 822 0 R/H/I/StructParent 355/Border[0 0 0]/Type/Annot>> endobj 827 0 obj<>/A 823 0 R/H/I/StructParent 356/Border[0 0 0]/Type/Annot>> endobj 828 0 obj<>/A 824 0 R/H/I/StructParent 353/Border[0 0 0]/Type/Annot>> endobj 829 0 obj<>/A 825 0 R/H/I/StructParent 354/Border[0 0 0]/Type/Annot>> endobj 830 0 obj<> endobj 831 0 obj<> endobj 832 0 obj<>/A 831 0 R/H/I/StructParent 358/Border[0 0 0]/Type/Annot>> endobj 833 0 obj<> endobj 834 0 obj<>/A 835 0 R/H/I/StructParent 366/Border[0 0 0]/Type/Annot>> endobj 835 0 obj<> endobj 836 0 obj<>/A 837 0 R/H/I/StructParent 377/Border[0 0 0]/Type/Annot>> endobj 837 0 obj<> endobj 838 0 obj<>/A 839 0 R/H/I/StructParent 379/Border[0 0 0]/Type/Annot>> endobj 839 0 obj<> endobj 840 0 obj<>/A 841 0 R/H/I/StructParent 381/Border[0 0 0]/Type/Annot>> endobj 841 0 obj<> endobj 842 0 obj<> endobj 843 0 obj<>/A 842 0 R/H/I/StructParent 383/Border[0 0 0]/Type/Annot>> endobj 844 0 obj<> endobj 845 0 obj<>/A 844 0 R/H/I/StructParent 385/Border[0 0 0]/Type/Annot>> endobj 846 0 obj<>/A 847 0 R/H/I/StructParent 388/Border[0 0 0]/Type/Annot>> endobj 847 0 obj<> endobj 848 0 obj<>/A 849 0 R/H/I/StructParent 392/Border[0 0 0]/Type/Annot>> endobj 849 0 obj<> endobj 850 0 obj<> endobj 851 0 obj<> endobj 852 0 obj<>stream H‰TSkLWžÙ]¼ÖêvTFgVk¢¨ ¢ÆòXE—úaÑVÔ¨°‹n]º°@åe)$¾² ¨‹°ˆŠàÁê6> )b”àƒª–Xãk.Sµ?ΘËÎ’&Mon¾çÞ{Îù¾ï\šÒ¨(š¦ýb–G-›eÏvX-Ž £ÝföƧË-ûiäÉcýç“ÒO±ŸnúL¡¨‹ì8H¾·'k^é(M[³£ìé¹ëöYú™)ú°Ð°9 †ÍÁœ?‚ GðË Õ/5Û“-zSnf–%-S¿ê»»#ÝîØ–e1‹zýR›MŸàÍ™©O°dZß+Ñÿu¨,šÒRFj9µ’Š¦b©5TO%Rë¨õ”¯p£T”šš@•Q˜Þ@ï£Ïª|Uɪ[êXõ>õcõk­$¦Âµ¼X‰< FÚBŽ?J°®]çk¦@¾çC8ò8¯4ò¿§sg\âH.Gøœ¾Ý^}‡«ë9'¢CVóÁq“)9Ó}ך¦îêóÊE,N%j‡‹”²¡0Hv‹ '%$BDÊmy¦Á…Õr…?&áòrH„yÃ+HØÈ©’+ëîK òn¿ÉÌ€LüqØ){’î…''ç¦eðW3Rdq¶´Â,EùÓd‘ØGJ‹àÄ‹¼’ç êµÇë8ÏQÛ.´Á騱š»è² ¤óßZI÷A‚Ó'wûã%`ELsCQ}Áþšm£ûkn)7=Y`úI¤øÛ%š!]oùµ¢ž{tØfHb¤Ò<‰ÁýTbÖ½–À#)Ê߆ –€Ð9kýº¼žºD‹ýÃÆH:0™~¨àÔÍ}L|û7° ›àlè “qËôs Ô©+=7.à•Iaí;0ŠX÷B2¼„liÙ+¦Š)—k`"ÛmjŠ)ã‰o¹OféÊÞ€«ÏËNóLÕÕ¦âü‹Ó`’s ŒÁYȽ}³k ·`†e&ú¢®=ã¾¼¿©¬!oô±=‹~ °®Î[¿*é¸ËÁ3I]Áˆ©"k¥z”w½µ°•cÊAýªí¥wxÁ­¸¢¸Øô ›/ùäoŸ±%š[²·éºFeúH1LɤÕbù‘)vuõö5ž °xcðê®ûë X%&Gîò~·Ab{UÉfdû65-Ž‹Ø«V€Å×~ƒ,‡²çñ«j{Ó;¸Í'Îx&dž´é>9^-Ÿ„xÇ+üP)wVYnª(«®£Ã¦´Û-wV’ÙnxQC–9GÃGÞ;‡/—~†ÇàÏKÆjå!¿š™e endstream endobj 853 0 obj<> endobj 854 0 obj<>/A 855 0 R/H/I/StructParent 399/Border[0 0 0]/Type/Annot>> endobj 855 0 obj<> endobj 856 0 obj<>/A 853 0 R/H/I/StructParent 398/Border[0 0 0]/Type/Annot>> endobj 857 0 obj<>/A 858 0 R/H/I/StructParent 401/Border[0 0 0]/Type/Annot>> endobj 858 0 obj<> endobj 859 0 obj<>/A 860 0 R/H/I/StructParent 403/Border[0 0 0]/Type/Annot>> endobj 860 0 obj<> endobj 861 0 obj<> endobj 862 0 obj<> endobj 863 0 obj<> endobj 864 0 obj<> endobj 865 0 obj<> endobj 866 0 obj<> endobj 867 0 obj<> endobj 868 0 obj<> endobj 869 0 obj<> endobj 870 0 obj<> endobj 871 0 obj<> endobj 872 0 obj<> endobj 873 0 obj<> endobj 874 0 obj<> endobj 875 0 obj<> endobj 876 0 obj<> endobj 877 0 obj<> endobj 878 0 obj<> endobj 879 0 obj<> endobj 880 0 obj<> endobj 881 0 obj<> endobj 882 0 obj<> endobj 883 0 obj<> endobj 884 0 obj<> endobj 885 0 obj<> endobj 886 0 obj<> endobj 887 0 obj<> endobj 888 0 obj<> endobj 889 0 obj<> endobj 890 0 obj<> endobj 891 0 obj<> endobj 892 0 obj<> endobj 893 0 obj<> endobj 894 0 obj<> endobj 895 0 obj<> endobj 896 0 obj<> endobj 897 0 obj<> endobj 898 0 obj<> endobj 899 0 obj<> endobj 900 0 obj<> endobj 901 0 obj<> endobj 902 0 obj<> endobj 903 0 obj<> endobj 904 0 obj<> endobj 905 0 obj<> endobj 906 0 obj<> endobj 907 0 obj<> endobj 908 0 obj<> endobj 909 0 obj<> endobj 910 0 obj<> endobj 911 0 obj<> endobj 912 0 obj<> endobj 913 0 obj<> endobj 914 0 obj<> endobj 915 0 obj<> endobj 916 0 obj<> endobj 917 0 obj<> endobj 918 0 obj<> endobj 919 0 obj<> endobj 920 0 obj<> endobj 921 0 obj<> endobj 922 0 obj<> endobj 923 0 obj<> endobj 924 0 obj<> endobj 925 0 obj<> endobj 926 0 obj<> endobj 927 0 obj<> endobj 928 0 obj<> endobj 929 0 obj<> endobj 930 0 obj<> endobj 931 0 obj<> endobj 932 0 obj<> endobj 933 0 obj<> endobj 934 0 obj<> endobj 935 0 obj<> endobj 936 0 obj<> endobj 937 0 obj<> endobj 938 0 obj<> endobj 939 0 obj<> endobj 940 0 obj<> endobj 941 0 obj<> endobj 942 0 obj<> endobj 943 0 obj<> endobj 944 0 obj<> endobj 945 0 obj<> endobj 946 0 obj<> endobj 947 0 obj<> endobj 948 0 obj<> endobj 949 0 obj<> endobj 950 0 obj<> endobj 951 0 obj<> endobj 952 0 obj<> endobj 953 0 obj<> endobj 954 0 obj<> endobj 955 0 obj<> endobj 956 0 obj<> endobj 957 0 obj<> endobj 958 0 obj<> endobj 959 0 obj<> endobj 960 0 obj<> endobj 961 0 obj<> endobj 962 0 obj<> endobj 963 0 obj<> endobj 964 0 obj<> endobj 965 0 obj<> endobj 966 0 obj<> endobj 967 0 obj<> endobj 968 0 obj<> endobj 969 0 obj<> endobj 970 0 obj<> endobj 971 0 obj<> endobj 972 0 obj<> endobj 973 0 obj<> endobj 974 0 obj<> endobj 975 0 obj<> endobj 976 0 obj<> endobj 977 0 obj<> endobj 978 0 obj<> endobj 979 0 obj<> endobj 980 0 obj<> endobj 981 0 obj<> endobj 982 0 obj<> endobj 983 0 obj<> endobj 984 0 obj<> endobj 985 0 obj<> endobj 986 0 obj<> endobj 987 0 obj<> endobj 988 0 obj<> endobj 989 0 obj<> endobj 990 0 obj<> endobj 991 0 obj<> endobj 992 0 obj<> endobj 993 0 obj<> endobj 994 0 obj<> endobj 995 0 obj<> endobj 996 0 obj<> endobj 997 0 obj<> endobj 998 0 obj<> endobj 999 0 obj<> endobj 1000 0 obj<> endobj 1001 0 obj<> endobj 1002 0 obj<> endobj 1003 0 obj<> endobj 1004 0 obj<> endobj 1005 0 obj<> endobj 1006 0 obj<> endobj 1007 0 obj<> endobj 1008 0 obj<> endobj 1009 0 obj<> endobj 1010 0 obj<> endobj 1011 0 obj<> endobj 1012 0 obj<> endobj 1013 0 obj<> endobj 1014 0 obj<> endobj 1015 0 obj<> endobj 1016 0 obj<> endobj 1017 0 obj<> endobj 1018 0 obj<> endobj 1019 0 obj<> endobj 1020 0 obj<> endobj 1021 0 obj<> endobj 1022 0 obj<> endobj 1023 0 obj<> endobj 1024 0 obj<> endobj 1025 0 obj<> endobj 1026 0 obj<> endobj 1027 0 obj<> endobj 1028 0 obj<> endobj 1029 0 obj<> endobj 1030 0 obj<> endobj 1031 0 obj<> endobj 1032 0 obj<> endobj 1033 0 obj<> endobj 1034 0 obj<> endobj 1035 0 obj<> endobj 1036 0 obj< selection)>> endobj 1037 0 obj<> endobj 1038 0 obj< selection)>> endobj 1039 0 obj<> endobj 1040 0 obj< selection )>> endobj 1041 0 obj<> endobj 1042 0 obj<> endobj 1043 0 obj<> endobj 1044 0 obj<> endobj 1045 0 obj<> endobj 1046 0 obj<> endobj 1047 0 obj<> endobj 1048 0 obj<> endobj 1049 0 obj<> endobj 1050 0 obj<> endobj 1051 0 obj<> endobj 1052 0 obj<> endobj 1053 0 obj<> endobj 1054 0 obj<> endobj 1055 0 obj<>stream xÚìÝŽ7’¦o¥€¾eÿnÏx»wzÛ†í9YA²]ck-K‚\îí¾û%3ùDF%«TòNc0ø@¥ˆø˜Áßd’Áà"¢7Ûˆ„›Çÿý϶Å<ÈÔIÉ»´ó[Õ0ÈÒÿ¨îÏÔþ'ëø+íFt ã±ñ“Æ2Òªt² =ý‰ !í÷ŸBim]yÔ(ƒì©b®ûc]MÚ¢ý”òþXÏ'‡Co6·<2=·²¤ ²2 ¾H… ý¢## ýO)Ûž6 2ïiûŸó(Nèù´m¯PèZN»´Ýè·Q†¸Ý¨ôF¤ÜôVˆ»T;™ÒÐC'óh.‰ñFCh{ÚÔɶW³·¬ÆGÝú³šd%‹µ“yå=·,ÛHzn9ïzn½Æ#‹ž–PG©çVêh{IquOÐs«aoõ”Yö=·þû(Cªƒ¬»Þž[ i4jo-íeÊ=·ÖF{öîä>4r¸ [-7EØJÛÓ¦NÖ¼§Í7¡÷îN–NÝÔ› 1îc¥u²÷l'Ëv†¶AJ'K*zâh¹NöÜbÝ ¥ç–’ìÒž[o¨]ÚsË£.ì¹e݇gé¹å²ß^í«ŒâÔž[ѽùjÏ­ä2JÖ[«·Í^²>îBMet@o—Þk{Õž[+ûˆêíûÈYÔÒÉweueOÐ:ÙdhhÛ ÷ZôîïäÞ|Mo¢lc8J ƒ<¤±“G[ê¤îƒ gÙɸ“eu'{n}hïdäàãÞdÛNÊ ãNŽÜbo®ñZv2ÉNŽÜRÚÉ‘[j{Ú‘[Ö]:rËy'GnEö#·‡TFne§¿¬½8ÿôOÏþõ˜B¶›/Ÿ}ñòýí›»¯ßßÞÓÉ}Ù_nÿv÷¯·uzöåÛ×·ÿëå»cªɾþû»Ûg_ݽÿåÛ=í—oßÞ}òÉÐþ<¥ÞÈ=ÉM' DD/Í$B!D„H(¬(¬¦°M¢¡¹¡¹¡¹¡¹¡¹¡¹¡¹MÍyãñ2Ó+s™ Cž™†²AiJ€ˆ(¤}í2i2i2i²¥Aa$ÓD1"G<•Ð“x*T~ <ГŒ :: ¥›‚L=Z(†dÒL‰Ò)J§(¢tŠÒ)J§(¢tŠ6Ê,äN7… Ü(üÆS iy L)†UnÒ€$Sx…°ºÓãÝ ¡:BŽ—zJ¨)…Sö|jêÙ¨éFl(ÜèÊÜ·¼!)$V~"q&1½³ÑÛ|›b›}[Dë$æ°é„"*?ñøÔ[F2«›ðÔá=1?ÍkµÇÉ}¾h=1Ř/Úþ¹™Ä|ªÎ· HæÜë¢à)êUifƒÇ2¡/(X1Í …=™‚eÒ•F¨Ô½fô$ Â*XìñYæR˜¹—ù~uÂZƒÜS ¯( d!d*”GÐ#3‹Lûdz9Ÿ 5*òœOM=™ÖÈôN¦w2]i–"F̼’†á×W"Cðøf‰y¼‘i£ ­ÌÐÊ•Ÿæw§Ô‚Ï4x¦wø‚D¾ à©hu§Å2£72 ´3]™•§=JbzÂœ@úŠb*ŒT'òD2M¤ üHx#]µòøÌ4ÎɼK6r·L ÄLÌlùFæÞÈÛ ~*”‡ÞaÆîD%q¨dBrçãù÷‹C ™IO™ô6jª‘ḇÚì‚N”IÌìD›Äì÷N¤IdžšSA`Ò Ìl(,(¬(¬(œ#³w;šš‡ͲÍP'f•7†ÍÆœ°1Æ6úoJäÃÑ—-öÅ2Uj!ÔB(³PB!Í|…ûÒ†ZlFÐ,0_êž»"@LÍeÎØ}]F{ÊƧÿÄkNMÙ•(»’¾ÔŠ Â~*£ZîdÉb¾qš-q£ÌLõ²êЧìSúCš9ê4ŸÄLœçw¹d:ǘfº‰/l—Ì.È´O.ü¤<>W§Ê×¼+$ eNÇ3Oцlj:Aîô)(eo¥|j•=QŸQ¦$QflV]2bS¾ƒhü„*È·IõJ4x²ê0H0Ü)¦<Ŧ© ™Z$ Ÿ¬ðÔ+#2D¡<‚„’{d Å9ÅuI€˜Åˆä-¯D ÆW¸KМȡyõiÞ¨hžZOCQZJ¿‡¹ï„BÊCŸF†hšEÈ]È]È}CÂ[Àb@1?*k†ºð ¯ž2… %ÄÀ¥2ç^僨Âô…¥K1U©NË›bàg,‚Ç7žbòÔD:NÅôÐ,*–˜LiL¶fªt;;e ||•ï»²yìÄÌ‚«*s hflaòÉVaµê% 6±–§ 7ë†(ßîÞ–¤AφžÍÒ pc’Ùèу3À6ç„Þö ™·bYÌ@Ú|­¤Í¹°‡ìu‚½NØÕ öºNðÔÔ,|……¯°4Ë« ¹ ¹ ÙjQÑ\QXÑ3?R}숑!, šç@’ÚP8g›.!M$Ó@áõRÒ(š­^sÐ ßeá›+X ¥n&¡zæ€>ýÂZ]ª PÐ#TY¨² Y¨» YLá,|U4Ïá'¥ñ8Cb'Lbi(­Røâ «a!$,„‘°’‘°) ›Â°)4/kaÝ"%‘x¾ÂÂf¿WÇÒ 0V‹Ú㤡‚ìß;AÁ¨ FÂ>%(’„žáØ@„¥HOŒB-¹°NVÂZBX]{XÉ …Œ1ζ:a’A ¶¼ñ8ƒõO'xœÁÆ꫃ÁÆzL°x 3Á°),ÌÓ‡`úL‚éC0}K5Á"Ø@úŒ‹æ€fú ûª°ŠL¯‚1vø.ÐSÂy¥pª(‰öÁFÝ ÒÐ>‰öI´O¢}í“h–|@3íÃ"°h¦}íƒY£h¦}°ÛëÃþ±B3íòPX ËBI´O¢}0ûtÍÍÍÅ$hŽhæ}ÇÈ#‹c‘°ªìz˜ŸS¢Ì¼‰÷E©`P)hfM¼ ‰)ë“`têš3š™ºSF3ßÁÄw0ñdµÜ 439$&´Ä„Æ[Xu ëpaIÜ …"Ad{¼BÌ‚±~îšiLÒÂBºh¦1YH KëN ™ÆŒ4f¤1#ɾh¦1#iÌHcF3Ò˜‘ÆŒ4f¤1±¼ –7‰Ö˜L¹‘!™rÙ•‡&‚uN8OŽ6„-UŸ PX@sCsC3Hd™ù$E>µ±QæF™šYŠ¤¡Å¬ž6›šZC‹ÕG?Â9ˆpD"š¦EÁcAðX6¨³<¸ItÍ´!–IÁ2)춃¤`¢¬ŽÂnKmÈ&KØd ›,a“Õ 4Ó†-;fÚ0Ò†˜C;AïІl»:AïІÊ$Úà£ù(D> lè„-^'ÐÌGý °CöŒÂ–SØvÍ|غ?=4óQˆ|°$ ætá8OØ ûwÁ®.˜Ó…Ó@ak/lí;f> ‘RádM¯9†hÁ`+l9…­«°Ýeôâ­!x¡*`HÐ>Ê`Sl´*¾"‚§Šà—"x¡–mÁÖ-˜¯ÅÜQXG%ÖQ‰uTb•XG%ÖQ‰uT²u”PBöï»×ÚAð:°‘ïI#ð-ÀìÜ KC½¬/ó˜Á…M±°‘ÜZ„¼¨5C]áÊg#/lä…¼°‘öï‚_Ø¿ n6‚í]°óï‹“ /F&‡ÈÂŽ¾äè”YŒÄê4±:M¬NÓ\¾xöÅpvÛsyöÕ³¯n¿þm¯¾ûùùîe{ô/ªPìà‚\°ƒïžµ“ô7/*¦öÝŸv”cÏõ³_Þüx÷ê훟߼üéöÙWï^¾yö§7¯_½¹ýꇗïnŸ}öêû_Þß>ûß·¯_ß¾yõ懗¯ïž}ñìŸß¿}÷éËwüúÙÛ÷?ݾþÇÓ¿ÿåîíûžæó_CøÕ/ßüüíûWïî`ßݾ÷‚?Þ¾ÿëÛ÷?Ü~óË›ïÉ×·»ûæíߺ¢o_¾ìÔןÿ¾ÿûôÙ/¿¿ýnùå§onßÉÿܳºˆ¾þü³=õ—·}õó¡à«»÷¯~¼}ûËÌõ‡=×3¿?ôüþùÕ_»üåw¯Þ|ßõIèäô:÷—^ó—¯ï‰cçþåÍwoÞÞÝöŸïFë¼½;¹é©nßÿîÓð»?|úí£1ÿüêç».ì)»–/oÿýöýí›ogûM…럾ýé§Û7wë|ùË»»»^©þÓ§?¼œµ¼{ûí¬Õ¿½ùîöýÙAÇ£‚Œõùóí÷{-?{ûúõÛÿ{ûÝÿþnøGké?¦þÓ³ÏÞQ4ÚÐòýöêîõíþø'søáÕ;öP°É?¿úéÕÝÏÏ·› /žõd²Eí §Ijóp¦“ø r¾q7‰tä1þË w¢òPÖ9³Ù±²G«£ƒ£÷,Y*9:;º8zÏcÓIëæhqôÈ_ptttrôÈ×Îr]ÝN:Œ|ño£_øÎè“b³7‚ºôÁÑ{y8›wtvtqô^>N:nŽGïùâmãèèèäè=ßé†R]ÝN:íùâ7éhutpôž/N½ŽÎŽ.ŽÞóŸêvÒys´8zä;W39}¯_úèmiöKŽ.}rô(Ï\åâèêèvÒe”gnðŠ8Z½ç;_®äèìèâè=ߣOK;éº9Z½ç{ôi ŽŽŽNŽÞó=ú´îùýU÷|¾¨{¾G;·ÍÑâhuôÈw®fZtt2ú^¿ŒëZfÇ´ìš«¡VÝNz®;f‰𦞠ž‰žÙ‹5¿÷[öLñLõÌ^ ›gÄ3꙽¬4¢g’g²gö°L©žiŽÙgCcö0 «g‚g¢gö°ªËž)ÆÜë´ývQj³×dŸ/홽l¶(÷ŒxF=3ÊÆhŸIžÉžeSÛ¨z¦9fŸ#%8w_ž ž‰žÙK`¦ÏÏTÏì%°ý¾gÄ3꙽f•óLòLöÌ(™µö`vhÆÜï¹q ¦±\}F5;¯xf/›l==“<³—ozñLõLsÌ>‡²Lß'QcÔ3Á3£¬ñ÷‰Ô˜ì™â™Q6ûdj/›gÄ3£vP<=“<³—€Sžâ™ê™æ˜}^e{¶O¬s¿çÚ¸7ÇÒBö9מ žÙËÆÙXòLöLñÌ^6ÎÜÚÉè>Ã#žÙKÀaeðLôLòÌ^Ž<÷°¤%ØìpÖ1û kŒxf”à<*öLôLòÌ(Gâû kLõLsÌ>ÃÚyºxF=Œ¹×sã:¥&ºÏ½öÌ^6ŽØ³gŠgªgšcöÖÜÄ3ê™à™è™½8JdÏÏTÏ4Çì3,Žû kŒz&x&zf/9œ ¯‘â™ê™æ˜1Ãb”Ž€ŽQÏÏÄÁ˜ÛŒ1÷{n¿Êêdpî™â™:tç—K çßîKìóiâ"IÞÆØ°#ºŸ(<r[ªKšv•äm‘Ød}ôž²]OÎùr=™›hˆ×{Ê\8mܹ³›Ë•ëx•;’ç]fn2¶ÓP³Ý—Dnú4rMSLB½, —¹b¹¥Ø»€¼6r_b³aäÚcœý^ìH"ý¿Ï¿ù?7õ˜iPˆÏÿð?¿üä“q~F7?ûjœüüøì‹ïo#ÅDŠˆÅžo?Tñ±çÓ™þÿy>{¾<üüÑ<ÿ<âÆèo¢Óç4­“È"á¢v ÷/²Û—ÆßhOÞqç…®¼¾8Qú;î²\v^Ç)Ø!’]v·KêÉîÁ“{ªÿà›ñ† ÀKVí•úÁ»å®Ñ¯„^oØ_ˆ9º7FÇñ,£cv˜ÑqÞÕç£p^Ú§°…Â:‰,½J²=%‹DIX$q‘¤E’IY$õ*9Á(XÓå'ÊÃ=|Ü‹}š¼HÊU¸ã6oÄ×IšÁ%ØÐ&÷šI^$å*)V0†Ó}åP7—®¹¼ñðîcœ™ïN à<¼#Þ÷ƒ8å1@<¼#÷;q¿Ì/žÇ̤ä`Ò¿™¯äÈEáÚ'ÐÈÁð äð` |™#¾Ì(W` 晜 FB Yðä/˜\ØŠ\áêDÈÁ0„ZöP­^†ú°]%Õ×G1'xáñ?%2KËÌ ‚óxÄy<â<q8wÍ,¹÷ Кô‚¾ 5òñz÷áb§ú'MÏq½—ÄE’ɪGœ ž¢5Ïãe“äERI]$á‚é‘ld3Ö9ÿŒfÆd8,8!‹{EN’"ÇC‘³˜ÈKävaÌcÂ4ƒÄ¿t*Ó ¾ëŸ´ˆOZÄ'-fÃWašÁ'-â“ñI‹xOE¼§"ÞS縉 æÐÃ3A35ux&hfáê$õæIvø§FüS#þ©ÿÔˆjÄ?5âŸêÑOƒ’.x(Á°Ex3ðOø§FüS#þ©ÿÔˆjÄ?õÄLÁ?5âŸÑ¡ºl‹D‰.’°Hâ"IWà† ^­^Ò®“È"ÑE pal9I^$e‘ÔEb°5Œñ‡›lÄM6â&q“¸ÉFÜdü o¬¡Þà&ë%ºHÂ+‡ ¸/I‹$ϱ AÄ)2H¹æè‘udØ W¬¹a‹¹"ëàq¸‘FK#®¦'ÄØÁÇ3âõé°vèK®ŠF\M †'â ¹{Á`ˆÜÜ+õ?ÅE’I^$e‘P !àOD®ÒFåÃ…órTú[éfå+‡_³—ÔEÒ®’²-Y$ƒu…³§ÃX*W°%fOp>¢2{:‰.’¹ŽôpIØÓÀ´ë `šð’¼HÌžWI[™¶EB10ï6L»\ä ˜S< “=^ˆ'²Àtë@ŸÐŒ¹ö„ÂL‹.`s XáB3¤)L²ß†¬€­,4óËÃüŠ‰,`" XÆ1F…fL¬ŸÊ «ò±ÊÌ©fJ=1¬Ð|šO Õ Í@â8œ+ê òš9íqXXf” :š9”9ñ²8Œ±ƒ‡ …f_¦š9p±Ã;háÅãnaÁåËì¸Ìnœ®Ø\›áwa'Þ wË@ºÐ̧•Ã’h%ÜYîø–.ø]•F¨Gûô7¶Z“¶×Šö%fj·Ä´À.–˜;Ï4F“œGgF w§½$/’²Hê"iW Cê”0  ùè”0²D‰.’°h. ´zžwè"±sôðÂ;IZ$y‘Ð>vsþÔîI¦ÅKÍâ²xÑOÎâuÌqŸ|ò<°ElÑ[ôÀ†<°EìÌ;óÀÎ<°3ìÌ;óÀÎ<°‘l¤éÀF:°‘l¤éÀF:°‘>‘èØH6Òt`#ØH6Òt`#ØH6Òt`#ØH‡ÌÌ“™y²¡±1ó€`Ù 4ó^gÞtà.˜¡p¤[8Î}#\5;Q¯ÈxÙžÈxbXyኌDŽQ 9ð””ERI»JxiN¨=–\Õ÷Ãå³Ç)†–EBî¬"¸Îï%²HôaX¿>>„ë·ýƒþÊÓØ”ž{ïþ'ò¢ÐÙ°OIZ$äeçÚ§¤.’v•¬Èƒv¼}J ¦0.’´Hì¬Ýˆt.dhbÔpP†›ånˆ%`[ ØVL¢v׃»+ÊÍÅP¥˜®¼ ¥cj{ñÜ!)ꊭ¸-Ì9ᔄ‘1-’ü(jc¨‹¤-ÈŽÛ£Xô%¦//‰WÇ’^I0™Ì/C„H²à[xbFÚm–SRI]$dÊ×éÄžÌÓ°yBM²}÷P“úøä‰9IgœØ•Áp)q¡Å¹$¸ì¸ì¸ì¸ì¸ì¸ì¸ìï%u‘´«„ €pf‚ÀÑp2íRQ2oŸvÅÀ¤Y£!yòÑ7÷#B4Ø4PXN(kÍvƒŠ×1ŸY'cÍ B³˜ûO±fF #ðqžÅ€@!äÛjÎVñÒ+a>nGè¯!Ø¢¯¨£Äð\Ëò ² @P (à±JQHkžè¥¥.’¶ œn‹Äü×ô1Tl¹'ø©ƒC%SgØr¶Ü€-7óÉ3¼ÓÇ™&ˆ©³áB`â ÜŠ¯ªÒ)ÇvÊñßC7-Ÿ&zcä j §¥]%†êZÍCÑ_45¿Hó‰4Hó…4?Hó4ÿÇS"‹D ™Òô‹‹\Ó?h ’öD™5wGsuÜÌÑ’ÎàÝ%jD¬‚Áñ².&èD,5‹BU„ 澉fÖ. ê­Ö“`(†·ô‚ FÇ ®È­,]$a‘ÄE’®¨¹[¼ÂçÒB÷ˆ¡ÔZ‡Þl{é—÷ ÓvÀ´0mLÛÓ¶Ãþå³kØ¿€à èjAµÀ§)W‰A3J°M°rÒ®@¨)Ñ´ôë‰3l’¶H(+óW\‡1ÇÌñAôáb.®°¸\‘‹ @™Ê›+«ÙvÌ…õ!˜c4³vqÀÇíW,bÌÕ\XÍ}Õ\WÍmÕI(†]¯6¸dV3+ȲØ"q…[æ'ÑE® ÍÌ–óÞ)iK¦M'ÑEÍà››ÿ) WˆèÍÀži C†^àŸ7ë1BîKÔàÌ…—FÄÿÉ”wˆ /!w©`N+¦75«ÜDßýDšÊK¹P}ú=mÇaV3ïmpÍ´I<…N¯êÆܸ©Ý°¨ ÀõvEººHÂ"!¯îÃbw¢\²Ë([±ð+65Ã>`¤ýãÈS¼ßï÷Æû½E[ÐÚO¶ 6PîpM³s :\<Í"ù ‡'ýå,’G%>ùä¹Ãû8•/á*P³®•À.Ü°YRºˆ§rEOá )ë}lqå¬H9ðP<”åÀãDçÀÃKÒUl4yÅD¯˜ lèfw„ΛC<~†=@3÷¨8/QÎKÔf9/ñ’•(:]>èRLø¯t8®´k=] Ññ[Ôb°ç±Üf·û ŠOí ÕŽO­âS«xÐ*ÆuÅZïPÜÁò­¦Ù?èùR P}[$r‘ä;°¨Š£¨‚ê$ÙÞ-ă]g£ðبpÉu°ðJáåcˆô4Á„3OEŽž¯tü1Õ,__òcÃ9:þ¬§bx¥*>±NbmÇ Žu[±€;à{nüvó …Oïâzê$†’Ï(9áòm òfáÔªøÍj±‹Œj—%ù‰—{·—„«„=–tÅF¯˜æÄ®RÚ=L»ÄÉ[Œ#®â[«¸Â*®°Š+¬â «¸Âz†W‘q…âÿzÁàx³—A1»Ç ¤¯€áˆ?!ý7  ÷# ØÍ$Å#ÎÇH‹$/aê5ýsÆ# 39PΔsÅêï"X`‚SÒ–(ää׿—) èò5[(– û¿bÑWlüŠÙ^1í+ýù#ˆr À=¯³JzpÍ^ö¨0€€HPð\T±;ÞÛ5N}yÆi /Ä"7ä%„C½Ær  ±ú+È .–ï‘ÁØ}p’v•X(ˆóŠ»¥‘‹ÄîvÛ…í3€D0…m‚ò0n8aP”óåô@9OPŽ”cåáÃDù‚ò0n\ø ¹Ä±àð /žûÐ@Ð XýŠzA+œQ/h…3êEÔ%êE¼†¿ ªXýc¿bã÷!2äéXÉkäk¬ ûZ8us´Ú%®øàçÝ+v¬hÇ+†ÙV1Û*f[/±‚¨|U-2ö[#Ö ©ë)± 4'!u]zŒ¸Vg`, zxU Ö«ØŠ?’ ¦Íò¢¦öÚ«joèöhÈéåÛÇ­Åû LFãRl†.Àˆ¶‰ùl$˜}é?9ÜÌT sÇEjå–³—„EÂ(³RŸF†3pß Jh[$ò+ ±Àt®˜ÎýOu‘´«„µ“È"ÑEbŒâ"IOÇAJõ ÔcYAFV°’ôd+‰QÑX1#+†eÅø|Vš­Ø· ¼Nã|Ÿ-±—ªYGÏxLô&P/ÑEN=ç$i‘鉾t’ºH,>Ô¶Hd‘ZX$Œžs?-‘§è9'iKtªíñxUúx«øhL+>xNRI]$ŒÉd+²H(œÜ÷*.’t•0µrF`Ѳ”#† È¥ØíK¾‹ÌŒØ®±º˜‡çÉ‹ç‚ÍÙëJƒÊâx[‹ÐÜfpÇ` »X_hΆç‡fBwü—‰¦K`°øx¨°üXð0là^Ò®’¶Ý“ô>àJð½8ã€áÂî%e‘€ÿH O Uu°ªëa¬aOéUB÷¸8ikÀ´ôxä´z ¡Æ}‚NÈ"ÑKtµJ€…jÆN‰!U–å§zÉFPX:Á ˆ-ˆ‹`\ ìÄIê"!/Âz8‚L‰~à$a‘PŒpsý‰LAõäœF8ËqPI9ï.Z ­¼„,€}m6s`µ¬¶‚ÕV°Úºu´Ë!êh©ÿŒuãÊÂP}JÄ¢ÅiÊ"©‹¤]ƒß1È> ïŽÈãÑIÊ"©Ñ“E¢‹$,’øx0¾ühx> ­¤-!ü¶E"‡ù þK—ÀœÊ!™Æ¦x"‹ÿ´Ø›ì—¯¯ÐSn[0}/ú¾ ïKu È( –ç8 Õ-i‘ÐlpOI¡ MRh‰BK”Ø z¢é©W‰Å9äÃÆ9Le‘ÔEÒ®’¼-*ÈâÀI¨«NYL/)‹¤.’v•ðñ:£5~LˆHë>¸¥ °Â¹«pÜÚ 4×qRyx˜…² ³`ÃÌbK27œ±%Õ¢MRH lØ —Z‰^$fÛ0 7„›FR,ã)iW‰…gl–Ý|Ž¹Ÿ$Ù¦^ yJÂ"‰‹dÕ“IY$ô”Ũ´™ÛÂWžZŒ¯–“ÔEbáºHÂ"‰‹$-’|Or=àL" Ñ…÷ÆdÂYœp'œÅ gqÂYœp'œÅ n 4Ûzt[$òxxÒðk––ERjº-¹Æ;e:âr¡p¹P¸\(\.. — …Ë…ÂåBÙ•©†Ë…ÂåÂ_âõÅó‡d‹$-’5>i]$í"É:ð”üþu ÿÚ»'ÕkK%¾ ‰­’û).’´H¬ÃÊòÓÒsµ-}¹”§É£j›ÅcˆËOi‘äERîIFsüóöÃ1o™u‹yûyÛGÛoAoÿ+½(þ¿OÐÛ>¤~‹zû[ÔÛÿ쨷}Ø­aoA²@¥Ü*·J€«òq‰hÊT•–‹ælQµt‰£‹f¦"£\ˆ]¦"€§¼)}ͼE KùÀ¼h.¼·.1{ÑÌ[Ä}ÃÂùâYñ@8_<4ç ÁÃÇõE3o‘‹ô‹fÞ¢_û·wóÇí] y,°ïC„Ea‹ËOX&)=ž ‚'ƒà® x2¸(ÀÌ80<8D8àí?¸üšÁºHÂ"‰‹$-’|8lѨOIûG#Þ÷ÿ7Ûe˜;,_ì| 'Fù<™BŸJñ<Œp«ç@+/žÔ™÷f{˜!aÅõ¦ÝìqìUbñžÌãù£àÅGâ¦Ìî÷CýaòíÍrÔº¡ßÇ*^Û0ŽÄóäãÕé …#]|*]>Ò…§Ò•#>•®éä©tíH÷D·ÜèÓÃJ÷q5/Á~H•éêSéÂÓYƧ“`¨û;›ˆ4?=–µ<¤>äh{‘'‹ÆýÇíƒEû71­Ó endstream endobj 1056 0 obj<>stream xÚœXÛnã6ý}i_l’Ã+°X Þ¶h‘ Ö Ôȃ×V#Ž(J±ùûÎE¶ãlb…~ØìœÃ33<‰6ÖX¥•±xúß©ÈchžÊ8ž‰ÊDžIŠ—­ÉÊZ²ZÙL3Ö(ž±ÊáVh€rÁá”׉ ¯¼gç ¼ ¢ Î’‘œ}²Šž Ü,f6ŒJdX•πʚgœÊÀ3^åÈ3³æƒÖŽçp¨#Ïee ¯R^†¡C4¼-b˜’a–-Ê„ãqob 9À°…@¬Ã!Ä@r8ÌaÈáeç‘ÃÕÂãÐ'ª“GŽ@áZ!³rDÚÊz\HšÉqûĵ¦0²an/ùâ‚Õ\w,µÕ‰b O‰ ð„ˆ78´8à–”’ ­H¼!*+1c!0âxÄž ª@âˆÈ( ‹0†ac$Žˆ‰«†bÁR–Äf>áˆ9hJÐƬ «Ñbù%é-‹V"Ž„:(ðáöà<# ˜ãÃôÁ{'AGBŽÀl9"³eäˆÌ†e‡Äl9³eäÈ̆…Ìl9(§Y»9¢¾ e„ Ž¬¬é݆á¸Î€ew´)ZøD€å9|$8fÀ£užj• ÇÄ‘…Ñò*rDzvÅê’¬"ë rd^5Ÿ,ÜþÓ§ñ9Öo|‰Æµú:žŽ/Ç—7¤y~þ,.v؆]Ü°‹v äB-E\~oÚûjóƒßœÛñÄ®†7MÃ.yÈeîú>F¬Ò@l'ÝŒí í4™ãÓ¡6Ù§ûTßuë¦~¬÷ÕîPæîËÜã¡ûmÕþ×´oøeñ‹ÚvΠ¥Mb[éêhWÉ›CÂ?O]W}ï~²úËíâ="ÞKÅ‹Ö‹Ö‡a—8ì2¬R?¨Rô°ËpK0øúàÕCÇýª=ºª¬šœ®¦£«ñèj8ºêß[ý{|±xnžºñdñXmÖu5½]_wÊó"ùgÛûOŸªöqÙ®:^<£÷»d{®^U~§R)¯Ù•÷d @ÒòÄ BîA“fõüÀnY@qП:>ã ð[À¿ÕfSÕëúv±éŽâ¼àR)..—â^=VÆ%ás¥¸,8_Š3Z€¡hNÌЈH¼)ŠX¼-ö¢)ÕŸš£ÈÆËÍDëÍôÂÑÅÀ|bŽV”ãŠ%g‹%gE9®øá·pjŽ¢W,9+ýÆ•3öÊ)nöÔŽcE9P^Ué9P,rå@±ÈáÔžý‹©Ø¿ ŠCn`Ë…=Ç>ö–‹úø=þú•v³û²~ÿýk·ˆTð]°G½j2ëÇn]ßý–p¢’ÝëßÒXLqÍÈ÷2wjcq"SÜXäê'0†SC˜âví¤±èòã(}%meæ?ú¥»½ºýp×8p±Ã.0à2}X,«³ë®jUéñ c9Û¬oêñ´[´ÝþÿŸvMÄ_ͪ_´³oœT×M[)Ý#ÿ¬WUÝñð·zõbÄ›íǯ™ádf8…ùL~&Ú~íí/?ô“‘Ôiö+{NË»›¶yªW_šMÓÎÍoâòïj>stream xÚ¤XMoÛFý+{Lµvg¿ €Ôh´ b=>8–âQ¥@Q€äß÷Í+R´H+Ûƒè!wfÞ›¯åÒÆRZk¬rÄJŽÿze(°€KH,DEFT“²6²••%ÒÊfŒòäY å=›“U>‰àTÔ¢ãUôìî³fLŠ*{°®›µ )³Å­çÖ€’ ÊÔ<³¸4Ϙuó \ó \ó |}ó ŸÃ#€1à6q…ÛdØg#ŽÅYEZsÀÎAbÖyH‰½¸€´³wœ ß"“Å6+"IÂ"’ly£ÈJ&4Y‰fdÛz`8É¡† b Œ& ïÄ>‰-01çŒ8kɱm e5‰dŠ˜Yr âÈ êÀ¸0Côâ%* ŠTÚg±åRKµG4ÊFÉdFrì%#IÝ"0²c´è•ÓRè yŽ-F匴CLs5G‰u$‘'£·$‚e­ê¸U€ Ir€á¹ÜÍæšú&`'À’¿Œ(‡ŠKš-20R`‹ Œ, 20²D™òZê‹‚zÅ"(o¬XDH©m=OÒ9C‚+ƒ¨•ç„Áà[H˜ ‡"CÂhxÎÓŽ§E,€ŒX#D±F$±FŒbŒÄc€,Bâ s½ñòålp¥ÕûÙñϬñzvóë«Wg4í¥šÈäQSOûÔkú£&Â?Ѽþ|w¿ž<¬÷ˆôJÏnÖßóÍãÃvv}¸ÛfÍÞÞ}ß}=ÌþÞ?·ìVëÙÛý͇Ær±þ¸Û¯;Ó×ÛÕz{P?“ǃ߶«ö^ãNüµ÷¼,ðqêâÈ-»·¯Ë2o‹í²1¶,?áNõÜiÀݺIî¼Üqï2Kô”;™ ¸Çjêþ”¹žä­[Úóæ]qì·®‡iЋÝ~µÞ_¾oÖËî¶ëŸ^\ï6«ŸNnn[½_v›Ý~¹4W˜­æw»¦j·ã+·]¸«›ï?m×_¾ˆšiUÙ®ÉìR6]pmöÜF n›Hb‰äýÑÂêVÑš"PŠ3[œY_„P܇žûTÜ/v«ïMV—òr•7ƒ“ÊßÜ}جEûÝEüU™-6»ûO]ü]ù¼¹"mÂI ñ¾¾ri¶Xì¾-{·»âmÓ¡+1)ц+lÉ]ž|lùûT„<'_ràK|xÆ¢$Ô—„z;má —‹…~Æ¢q¥ .>cQȸR]÷\‡”\ÙBÏNäjÞkÊÅpœ#;˜#YŽ£Ëóæ¤tt”F5Ï dÿúü<ŽßüÀ<êá<ŽÒêïÓÝ3. Õn·g ÔmtÍt dG—‡rÓšdè•Ò=… yty©§5{=rö ¤]@†0­Ùƒì‘£3ftyIÓš¤ï‘3O!}]@ú4©Ù2͹3§­Ð#g§5{ènTsqwÿéa¿ûº]5Ó„Ó;y%OlãïâšÀœÝþés»Ä…œ/Ü%úœõÙÍëÌñæyÕì^fl÷jgPŽizô˜6o¾7š¦ú@÷ìF}Y=.<Ïé‰÷GKëÒÈ ¯Úˆ–@F´ËfHƒþR¾ßÛchwõÅuÓûÐÕ_ºöK –ÝHŸRÿýîëçÃgïøEüø©‘©1¢#[cäjŒ|Q¨1Š5F©Æ(W·®%ªzÂT5…©ê SÕ¦ª/LUc˜ªÎ0U­aªzƒªzƒêö‹ªÞ ªÞ ªÞ ªÞ ªÞ ªÞ ªÞ ªÞ°U½a«zÃÖ½LªzÃVõ†­ê [Õ¶ª7lUoتÞpõÆ !ðŠN endstream endobj 1058 0 obj<>stream xÚœ˜ÑjTA †_eÞ`'Éd2¥ WJ½(ú‚Rz£BWз÷O¶EªR<ÿEO³Ûü“ù3ß9ݬ ÑÖ› ±æ#ãÒWÞdj³)~DÓ¨ÜÕL+y7‹LÖÞ†e²J+“U±^&+Þ™ Å•ì-z%Ï^ÉÑ–TòjkVòn[2ÙzÛ‘É&ؘfvê+ÓÍšˆe~^d•ûÖQ $ë.E41/E¦ôRl\<_æ6]R1PÃg*r ÈPcÎʃ,$e5¢Z1¼`’Wí4MnØF„äY ŵÃ8"AYÃÕ\Ù Q9¨V'Ý­ÒâÌJ°r‰km|øF´S1QÃs“c¢†—sœ ^º>-O/h°†—5Vu¦uÕYLÔØEL£}¥À9÷êL[¯ i&ÅL›T‡Â†¦¦M«áÍ.´À´Y9h6Ê9è±QÎ5¼œã¥y9_¨1ËùBYÎjD9GŠE9_¨±Ê9سUÎjìr™í]Ñn£—ó `¥gÞ±R.±øÍU¶!*G ¼•ÂÕî±üH.¢Ú)–Ç)–5>stream xÚœXÑn7 üýÁ‰II@ mP H[mß‚>ˆ‘MìÂI äï;ä^Ò[×ëîòå<·;#JäH>‘”¸ÔBJ­(ù_)TÙâ£9°ÂUôÂêOi”VÍÁ,M;×"u: "æã0›«XŠQµ˜ÙJç ÷Ò{GäYFwr«e²“•9œÜ0»ÚœíuÄ<1?jÁÇW!À YBŠU áG8’£†:¼x˜›§D 1løx( w_¾bôZÄ Ä3ˆ1}YÚ+*_]‰·ª®è\…AP¶#)k(ÈBa¥5 E²PÀIB¡€•Ä“¨XV“¨=ÊÝ4ÞbY(–¯|48|d,Kj¸€û‚gE(Š7:P¬Ân …-„#»~mQ™ ö¨*–/mB ­Cc•x!:}$æ…WØG,|5£GÆAÁäÙMƒƒ!ÆÐ@ˆ1ëÙR2Õ-…Ôi…ñ¨Ç3Ãî¡àu ‹g£`{™£ d® Z°ª#BÜgÏNßÀÙ(T-?Ÿ^•vºÂ†ÀPþõ—Ó7?Ýܾ;]½ÃSõ‡ÏŸ?”Èq‰—ØqI?.Ç%ó¸„jBC '4 P”ð%L@ P”ð'|À pÂœð'|À pÂœð'|À ´„Ú~ðWMøÀÿ‹ž5ßÞ½ýüt”„ ZÂ-á‚–pAK¸ %\Ð.„ d¿ *Ñ$NÉü.Hø@>>øéîþÛ÷OKúqÉ8.™‡%ZK踄KÐÌ/Ä4qhâ ÐÄA ‰ƒÀ%~Xâ °„,áË\>°„lŸ^--ç\-7Ö3ýå××çÿÄëÑÎoÃ~§]=z}Þ£íÑy½ËÍ_pÃXî–Ï·ËÀ²Ü˜¡þñ»—/ ]ŒyúõóŸ×xŒÁã¿C_ðe“/—4Û¤é%mlÒìKô¾šíötÇŠ×6ysÅÓ-Þ\g©oòhÅ›ó~{Â2taÞSõó5ýÿiºÖÐþºýãÓÍÝíÇÛ7®ÿËž‡ØTÑ$à÷ëû¿ïîáÉNžíä=¼Õvãºô~›Îp‰¶ÜÔëÒþ Ü—Pàù”.gµ\ö¼Õ´+yË=o?]ŽÑí}¬é[™ŸÛ½ÜKÿc¯íá­Îóºko®oû‡%¯yéݹdiÞ9´½C,ËÛ€›É§‡ÿ_öeîéx³Œ-J´p(Ñ¡D ‡-œ³æ m´¯ endstream endobj 1060 0 obj<>stream xÚ´XMo7 ý+rnFI}A;H€ .jÔrXøàÆ×H²[l6EóïKR’××3B{ˆóVóžH‘‰#œ7Ö¸àÀ—ÿÑ8‹È8 ‚ñ6 ˆÆå&NÉÙ@²·½3„ì=Ï'dÏG!{4ò™•LôJŽ&&%'“@ÉÙ¤$d°&ƒÁ™œ„,Ï- €Q:0Õ¡òÙm—UÀ<ª"VütCË™ I´èxÉ–1…tõ( …d>dJ´YS¢Æ™’œÄ”Ä2%“ŒSrVä8š È3ŠŠÀx§‹d7¼ÓØï58ì±Aœ XÜðeãQØ OêA`¤vÙ OYf lCÝœ0­øØFÔ•¶‘¬Ø l#é*9>;U°¬+ŠÖ€• ì8Ø N.8'ŠŒ¢"4P¼Ä¨ŒPÆ"#]?Ô„G.%ÔŒó Fb¤9OlCªHÉ)b1ª‚m$Í[b ±¤‘ä ÐZ‰FÊ\¥Z‚™ë5VœD’F(±HÈÈHó–É`Ôbàâ˜Å'³9O€9Hr6¤Š\pdyYŒœ!}—$ì䃎ñkNǧ‡B‰xäTJ¦#—aV” b)="ñ*2™äÍ`Ä6$)/^ '\ãœ(k~Þq‰ çüFðë-¿/†³Ûo»ÛõÍp~#£2øòåëÐø th°CCšÐ¡‰šÔ¡ÉË5ÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQØQØQØQØQØQ8»äð( ›œ %6OKÜr‰_.å\.¡å’°\çJö¹<òÚ<&É‹%+mƒPí|ÉŒ¥¥S.gMÌ…Q*S%¾Ùl¿Ž_&x0“Gsx‡ Š¥ïTÇólÇ5ÚÒ¹Î5t´ÿxTã–gÈûÒ Ë‚|íÔÏÎJéF¤Ý>íÒM<Å;t®öçêP.:ãÙžÕ°ç'<+gü=Þ÷õçÝífým}õu<q˜ñ{OÏfÕ±[AÇvûtlX;4©C“;vùÙGXÿÈIÿšãöÙ+xvúêãçݤ½xpâË'Xµwº¹þ1©€ƒó^>äŽ+Àžöòaø„b¿"Z¾ÿ`èÐÄMÇá…yî^-ŸÞÂ9/ßÏ•þöîq âálúô⯫ãɧݸ5á¹ÞÿìN¾ÜÞ¬‡‹ÝÕv7ü6œ]ýØ|ß ¶·bû×Íõ8œmßÿQ„§ã§Ív4¶*ß®¯ÇõÎüâ^¯¯ëoy¬ÓÕß>=·{Ïqï9ýäùª•Ø]å\N­á]¹xlšÿd‰¡s‰ÿG|íQÓâÙ]ørí]äb£ß4€ P-è96¨‘\yTÐf†ÆÊ‘ë¶ ›ulÖ±Ym$Ü4Bó'4B³š­xg«©âÔÁûfËçムt%—3¾8™V7¹”K®Ò ^ÙcÃ#Ÿ°X³Ò %×Ö'¸.Q«…ípÆ»ïÐt,Úë¢}mã—j;ÄèJA€Ü–¹’]¹GŒ®”¨¶T„ž,Eçö»ÇOÊIºO_A.×xâºåî­ä‚Zîu,·ƒŠCÏd±\MêõrR°\!Ëõ¤âzA©˜Ê¥â8Ï`;íêÖ0ÝÞ§“]F÷Ë踌éŽÛ¿7Û‰5BáÙyÓ–æd>½ttyê;à>¯v˜9=Å+ÝkÙЧyÿ 0øx endstream endobj 1061 0 obj<>stream xÚ´XÛnÜF ý•ùvçF8@ƒvÑ  ÐÃN½1Œ&ë`³š¿//ÒîÊÖjGBûbS«sæp†I)”w¡„ä²þÏŽô?¸Õ@Pâ¢/b‹Å¨.ùÀS&1‚KĈ.g½Åë’°bvìt¨š±8¤*¹b¿TWªÐ“w5ˆV ®ªDŠ.ø¢÷’ Á‹ZbDH(_T‹ÿ„*:‰ÿĨ/m]–˺Ñ˺AñØ_¶XHVÉ|‰êvf ¬ŠƒR2CÈVá?²q²Fq9óeUOÁóÑY[ ˆlUÑ€äbÈú[f«*\Œ j€.&¯ {ñ8ÙîV¶t—¼ŽŠè"k€îY5TÈEc…¬¡Nd òj±FÕ} kTõY£jœPÂ,G\ ÇÙ“¬ÂÛJ!©Ù"9’’\ŠrØ¥d¶4¢\JšÙªâ})œ-Y-bK½/¬r`…³/¡zÊB ApÄE#M¬Qôüˆ5È+ƒ5Ì{D†Ï•Kl©.;”ƒF†Ã˜ Ž)Ç w+glÔócpŽEÔjv9y‰'uNša²œ5ÃØq‚Z¬Y-ÖQ#YÖô&ÞLF9Iò¬¡‰IÆ,Ž³Å$§K¼ÁL¤\Ö¨©K®\ G¼d¢l¼Ä—‚wT#¶X÷Õ«Õ%Gõ^’ùÉþcõaõöqûuýeõþžŸýíõkÕF\måЈKÏpO›¿w›ï›Û¯ë8Ì‚‡áe¼Î‚w‹û6t¾p!yóâÒy!r ìˆWßw›û1 Wq£h¬¤^v”7w?&5âPã×Û§o»ÝúŸÝ )u¤d*錊”w#d#ij;‘a0ŠŸ¦|øvû×úâón½uø³_}dÏ/¾<ÜoVv·ÛÝê÷ÕÕíǧÝêÏíƒÐ{¼[¯®¶?ñÍúóãví|Ç|·¹[ovÜ8øú—Í]w)wuµÃõ>ɸµ‰{ƒ#|»å¸þoÎùIß";W¦œ»´^Ý!¤Ùvýn» ð0 ä| ãN‘óïšK=÷"¹`ãÆV£±˜§Ãu­^)Òè;#tF*ý/±7RoäÞ€ÞÀÞPÖÍ©ÓzùÌÜ|ö̤Ñí:Ùœ jжÏmà:ͧ󀴀“pòü­°±Ê±ds´@´›êD4¶&Ïv ´d¯åÇð€‡6x1ti´Ç0;âì'a/‰ÌV3Ît¢÷œ ÄØÊ‘©ãXŽÕ‘Vr"p:ê=ãmlV›lp;yÕŽ7“-n^k:€mñ²I«^gÁmîj„·çky…’·Ý~WlöãÇè ³še†Fç,³1ÏvNßZÔ³îQ¯áLì6Ö½Ö]ß(Ñò@_ÛÐòÀ^–,2vñÌæ-2瞼ЈKÏpÓ‡™a|0ˆeË@¢ÖLJßEŸ†!«Î/àp”XPvÀDØ|n‡5´íÜæW^Àœ²€C 8u>ÛºT†Òn…z£ ¨Ÿó¨Ÿó¨ï¨ï NÎpÿÉ8ŽÃqü§T'r¹½‰Ëaܦòrb&œ·‹?ë3òu_ß÷åt_ôöÕáæÔÂ]É]øPâOÞ†ÉÛp¸]GÞ0jjzIˆÁ>ÑhŸ—ïƒÅùöÁFíbŸlÔ®öÑFÛL°Ï6j§¾ž,€þ¸aÛÐ\ÇÊý‡8z†{YçáÉσÇðAQ‘&r‚ŒÏŽÆ<#¤fB2B8C8êPQ¶UÚ¬‚í*RYâ™k¥ÙµºÄµà[Xÿ 0ý¯ù endstream endobj 1062 0 obj<>stream xÚœXmo7 þ+ú³$R/Š)°aE2¬X 샑YãfÆZ;pœaý÷ãË]Ηؿؼ©‡|DQâ…¢ó.Ô.¡üó¯"$²Ždƒs¡:ˆ:DŠ ñFŠÁa•¡]xb{ƒ.ƒ*'—«*gWr¡¸êU¨®¦(9ò"ð”D;–ŠHü>x™ €¥DâÇ@â7ð<e2`3 lfË*¨a¹¼¼C~L<‰YæCÆÈ(ó!c!£"«”¤’üxI\K*ñTu6£¢³‹^ÃHž%P)0ŠÆFþ \ŒŠÁ1Ú¤‰¥¢/¨§BP©²”«GÐÈ9¬ˆQ|ÉŒêUf $‰73†­HfŒ”Å?&?&¯x]cN:*«\u”1JÐQÆ(BD-ŒQÔ‚Œ2)KŒAÊFa RÖ8+Àk•ÄRR½ì D}WXÒT*šJÂFá\²x9[¢xÀnd‰·F(Ë]+°T­2FÒŒb!)“œWAm#«§µJ–ª­äk[¦ªÆKŒA%+)CÄ‚%õŠ’Ã`™“]Ó• Kº–¼ÊK’%äyS`dà”B”™%§1ÉÌä#1u,1F–x‰'ÅlzŒQdG/<ï(/ch Ù(îâôF’¤¦ÀÄ¡¾{·¸àl÷²­ÿX\ò¶X|âÆ”çëů·Oûýê¿ýâÓ=ï(/¯ß¿eϲ‚±ÕÕúq¿ÞÜOÛàYHé ¤|R9˪žáµ#Îv³Š^¬¤\tH¶w?&- ›¼a1xgqó9XJU–sŸœTc9T†›F.yÃj|±gä—íîûêÛ½øBïióÏ~½Ý‘µ ˜íøSoš(gtEåtmˆÕi–z óÔa†úˆ Ôó|i >Ù€Ö…Ò3U»C^‹P9Ú=Båî&¡rnOÛÔq\ÚHËaž:ÌSO3ÔG銖›™ÚÃÏZ-äâ5µkG›ªøs f1â°¶nÞe‰v¿“Jó+Æ8æ6ÆõV)šŸìâØÍþq®ýð¸Ž^?Ü~Y]|ݯv.ÿ䟙‹oëûÍâz»Û/~_\ÝþØ>íîÖâêoÛ»Õâj÷ù/3ü°úºÝ­ž-?nîV›½óüøóæîàI'žŸýŠÏ~Éö•Û]‘<âö¥µ ÏÆxÄ&Ã`œ§)cOƒq=b\&ó³qöGŒiÒã—„-õ¢.‰¦·xnNN§§‘áÙœŽ ä¥ôBíœÄ-þôÄÖ+L ûpr˜÷\®0º uÞîRª‡›ôÙ`©‰­'±`nlš<1M›ì#;²UÇÚe¬ý÷j÷ïv÷Ú·¡€xëˆzV)–×Åc aÐàÏ(Z›¥÷ë³´ OUᮕ¬’¦"㓪Aë°ä.‹õwâ Yƒ§‹Œ×רš ¥¶­o×1§`í²› ³ŽGÕ6¼Òß\"7ÒáôQrÂÌÅØbÂz_y®_ÚL Ïð.5zg°JgxgU*–Vï†,ÔOdE¼åÞpЯ/Ôºì³$êwýõÓÃj÷øe·~8²lÿÒìý«!Կؘ‚£õ ÙúA²O*×.Z|+Ú¾ü‚u8„oG»„lŸBúò6X w¸—8ãβóó-V» 3Xµ¬A«Ü‡y~²LY7I>¶ywpp‘‡=.Aj<óº>”`út³ÞS>.Í÷ÌúJÌgͧ±~ õ]ïNöñJ›´®æL»\ÍåÜTô“Ÿ¥m M‡ý2AßUSœxú0t=»0ºž] صŽoß þ`¥bü endstream endobj 1063 0 obj<>stream xÚœXÛn7ý>¦/Éá8½ EŒÖ¨ýTÁª½…(’!ËEó÷=3\îJ¶´ÞÕƒ¤9gÎܸ$×dc•V&R”ùש˜ø×+C2”Iž…¨,’²Ù²yLg«fk”s¬c­òšu,)DÇ©`dÄ«à™Â sÚ¨bd.›T 2•UÊ\ÈŽá`Ι-lhˆˆ y‘¤D,Á ãÙe’ `È 5Á¶u¢^ËNs LÊŽ“$ÁA™‚HP¦,³Pv–}ràp{æÊ,&¼þúÀ½$Š –Ç<8‚ !±ü7‘ð…׃#YãüG‹m¨YÈ“Œee5»–ƒ†”y,e—1«,Y"HAÆÊh9CÁCŠœ\iaOŠì›G¬/–Á᥼(ŒðlGԜݎ(lI³“H¬MâdG@dÙIHQ‘6‚Mó"@2†ó’ÐKFî^y\ÑÕ£çõ×Ýr³~Z/¾5¯IHÛB2—Ç”8苃¶š¸\>í–ë/C`i,T@ði®ÆâjJÔr1g¦G„5ÊE==¢hÊ“Wð42¢h‹žá*´K©¬?#0W›^*èXæµC»fêJÕ£ µ‹¢lI"¤(Éù±ÔƸElÂðÇìrñ}ó¼›}Z<5«åº¹~Xþ³SþµÇà•:Zúuñü¸Û5ÿí* &ßt®ÞõÚ@?mî¿·©—]±Ó¨åºü­Ÿ6¯/»Yz°{žËZrA¡ 5ƒDUHG²³Ç`O3ð4 OûÁiÊ'§/xGÝ3žŽ&O÷Ésæµ}§O%o°è'&©ÚMÙõ´þuÚksëÂ`n]>stream xÚ¼XÛnÛFý•ýkgg¯@Àî ä¢Fm @ ?(1Q$C‘‹æï;—%E)2Eæ¡/öPs;svv9KgÁkœ4Iþ{ô Á@ð,Dã@Tɸ ªl\U1Xå¬ñ6²ÆûÌ‚3¾ˆ Mð¢ò&ZvwÁDÏî.š˜E•Lò¢Ê&q/&{vGkrf‚)È*t¦HvDÙ ´M¢$Ô€¢$ LJŒL’”‰ÅÊo”0³‡>–I%±„Ì‚ØQŽ¢¥1ˆ–rÄÂ<åHI¢PŽLl’D9²FAAÎ(G‰E–16˜o zH¢? ñ)œJé„‹@n˜D"… )Rx/¨"=ËA#™Éé1J¶HA£DŽ”# ÒH9²zP€ìŃŒsa, §L]Él—À A’#©0‚„Á3 •¥@’dKÑáÌAJ$%®—– ½Ô–¨“¼Ô–-õräL9Bæ(¤@mJŽÉrZ2LÈy3åH ”DÌÒc™ra’x+-™ I‰ñQ[iœ—€{Èò5¬“Ê ’$•S›yd:-=zEJËíµ7èQì(G´òåˆ¤Ì XÊ‘¨YI¢)ñÒÙTnf‰rä,v”CxÚJ¾0*êjx3”IJbWL^7 m@Z…Z zófv©}eÍŸ³ù=ê©ë¨7ª[¡°ð0»aÛÙÝÏoßEÑÓ€E±t–,kž¹‰Al Íûw³Z5ëåúÓbµ›Ý|4Ä=)Nb)û 0Œ:Xö± bIc°ôýœúÅÉ5¸Kv°ç,{XBkºÎN¯!UdPJ®!Xö°¤¤XÂÄR­ÝO®a,Ö€vÀ²Å+–2µíA—Gú…=²°G–N ëYúaË Ä©5Xõs£üJqÝ©{5DsS£¶Ì|j¶ÿl¶'Ö5§zêÉ;_Î89Ü Ûü¿-^žw»æßÝ€·áM ÐLc|îQçÎt€`1izÏ„šmßnÂ_7Û/Íê;«xdõ²þ¼[nÖ_׋/ͺ¬ó‹0bu‚ÙU|é,¾¢™qÀ³d:(ÕÅ :>‰ÜR—ÏBƒÊ]<ƒ-Ž0;Ä–utc<®o"·´•óØ*oe›ƒC³Ž:8 ž ££ÈY_çù<6§¼7ˆíÞEG»IaØáRG®º“ô<í¹|ûòÜl¿~Ø.Ÿ‡7`»éìqí´:3 XGc‘½Ç"LJq‘ç4É*ô4¼rˆGf[’¬ÃxëÃâ’NóRD_D–|ήX¬‰äε—¼È+[ñÌÆïUäë½C½yˆœôî!òøJ½6s £ÖÁÇIÖùÐú•Ý Xg(š©ô•[ë«Íã·ïR5˜ßÐ;•¼?°nað¦:{&;¶—ºÏ’:òå~êÍN0½Û±áat@Ê®d&E}´ã­'ó‰E¶“HŒÓÓ8åqšr2vS™û¡7)LX×®oôn^[÷]û©›¡ë룞¹îÂÄòj˜ÛçŇæòi×lM¼°³;ªûrµü¸žýÔ¬éÇÙ³ëÅ·ÍËnö×v¹[®?þ¾ylf×Û»÷êyÕ¥®bh+†¶bh+†Ò–n+æ¯1jhÛ¶aÛ`Ï°–ZŽr+´®Ö¶¼ãpÁî?Ç”8tåãÏKc-q´¥iÙÞÙN[ö&¾PôžfOžkîô˜X_%¥LrÒ‘´äIN:/”tÖ逧ÞG³?ÚG[ºÑ–0`Ù§A†¬Úë¯ÑðŸ4èÄ endstream endobj 1065 0 obj<>stream xÚœXÛnÛFý•ý‚jwgöl´nƒ¸hȃáÕ¦m¡Ž$ÈrÑü}çBJ¢%Q˼Ø#òÌœ¹qgHïœ7ÖxçÀàÿhœ,ãBay’ñYÈÆÁù¶5ÙŒw=ƒé¦Àö‚A²c!˜lÇGsb!™ä™‹€) ¦˜ìØ°&¶Î+‚7%±ArÕ Hœ–kä5ëIÒkÉ_"e’3B1„åÐ’TØ0:ã™=IâG@¶‡Èù»Ä‘@âHQ¬Gvb…8r â(–à ÄQ=ÄQÄr ,YϺœwYW²‹‘„œ9‘ì¤÷ÌËŽûÄ@¦À‹2‰­D¢DIb$0Šn¤?ØT$£AüxŸÄ[Y3QŠ®x ÃÝ"OŸŽEì¦o«fýz¿ž¯;À‡ ëKu°RWƒªÈ÷žh÷LItÒMSäRýH€vo€3¾å>ì¹Yÿ»\« v#ÃþDw£ߪ´Ëi‡ùë³@-Ëþ,?¡Bmä= W¼à·¡|ÚÞŽÝ¢²ÿðËÝéjvß\*þ\>4“ëõÍߪxÙ<.×±­æ§ÅC³ØЮN¿[<´?ù®XÛ»-Ü[ã—³×æe¾h¦ÏóÇ [·1ì¢JG¢Š§¢â#(¶çŒÓ‘£¯*­à;:[:0t`ØÞŠÝ ³Çwµ¦ƒúpº¥pr¼år| ¦8^%U¹•—.Ž'•»Ñ|ílÃ'Ã6…vØêÛŸÈuôÛ ™ðÔ„ì£s½;jz°ÔÂü¬¿U}7•Òé‘áîäLíQ‚.2)WÄÑ;pD¢;v œòÖ髲8(yöÏèw«evcÄcêNûjõù6èÛº>XY[¢}[—î°ï²z?[±/>ksäþÚùûa½û°]Q*Pý4;ý˜ æ]]¶›dÎçˆüö©µú…BòåÛŠŒ¬~5uoؾ¼œFW¡ÊBîž Ô¯#ºÞU> í"UàŒo»1­;•v æ~0y|0´oV+í\ Ƈ\éÚ-Dý(¤Å´®bëêŸ$ÚÍ¥l]}XîÃÎ7Àû­ëôñ~rçªQñuM"‹–|«>£½¾ÀÄ»ñn…:ÏŸ÷>¡ì©LŸg«á“2w«º½¸¿nÒïpª%ÿ`]% endstream endobj 1066 0 obj<>stream xÚœXKo7þ+<¶‡XŸ@Àn4HÚ ±œxãV´¬É¿ïÌÜÕZ-ç`yDÎ7ß¼ø’1`”VÆ*ëù¿U)ð§ÀF¼‚”X a'ª4œG’BgH0ZY ,€²Î²`”Ó¬lP¹ SVy§¼c¸ñÊ'¦0AdRUì…I*:$µJšGTrŽ£@kæ@$)kY Ù$·³ßH~qŠLƒ‘à0’˜ “Ô,YM2ÂIQƈÂŒ‡µì­µœÀ‡“PÈ(8Ë–8\’1âðFƈÃK~(mà#{êˆ#€HÄ,ÇA!@"G,… I|vœñÙчŸ¹’^N$ #<}/}@b^or)HÂLD‰/žÒ‰È9õD„‰'<YbóÄá{à‰ÃFšðR_.©OŒ d>X‘H%ä1R‰Y¾&‰—ëš"ûGÁ –œ†¨¸¯G’t¥sÝH¹$’¢ËŽ#FD«Ðjs$I&£'Iª@eDo9òHAs-#qËXRÁ(^%âˆR#J&±—ˆ#e=âH‘½¢°¬–<'ORlP@‘$'ˆ¤¬á†E*å"“D‹Ù2R‹Zä⡦åfiIdIâò°ŠuZÆbO„j†q9 P!ýí&‡ŸrüyóíëvÛ}ß6Y‚°Øt2K<…4“˜6æ™U\È6L¢òeÙ\gOCÃÓ·´EOI?w›ÿúM+ ÙnlÛµÙnÕzÝo¾t«}57U;HOjþµÇ9‘’åc§!g&”̸SkèãOtŠÏå´Øfác"B^ÅNäÚYs2ÀS³t!ýsw“`"Mr˜³8Ï'÷ŽgÅŸÁ•y>Ñ‹Æ›q:”éÝ cœÅLGÿ¼¨éÒ8¤çú¨=8n/_WšÓzœ¶ûÓ[¡”þŸç›È~(¡†«àš¡sÜ^¾Áµ¦! Óî@¤6µB0‚Í>ØÁ1ð¤ãL¾Í¾?xXˆúå×›Ýù§m·QþLÏ®¨ÏWË»õìr{³ÙÎþ™½»ùÑÛÎþÝ,óWÛÍÞm®>dàE÷©ßtJä›õm·Þª`iàõmùÎÓb®|çé1б]Ü$:w,ÐùŠøBöf«þãýèêHüÂœ… 3Z8£sðâ¢ÿ¾p–üâK}Ò•åÏôu¥†4v“K<‹úArØÃ>Øë&x\€ÍÑâ/h}¥ÜÜècnn¶Ç,ûº­_ý^Wº£«P—½·u‰Èµ¸@ß‹Ê(ß…‹P¡¡î«`«PŸPŸP§w;„u¿»ö»ó…\ÅkdÕ§I2®n>¬ºS›ÄÙ3pÚO;4Å3º>ÖŒ£7Ø9ÀºŸ MÍdaÝL±n¦˜7´ã,ãwI|a*¢ðXxÌüq(TT„*Ä6TW¨®P]¡ºfG·³ÃïŒÜ©¶Iªm’j›¤vü‚*ýTû2Ö¾Œµ/£9nƒ·ÏrÃx›Aµð!L×ÍcMhhÒ35š1µ4ùÍ6h†&»ï›šÃµËK‘)¿Y¶ÓÍÁ»Iعþ`Ìš¸sÝU³ú‘ÚÞ-iÔ¾è7·ÝærûcÕ-~¹ìWËÛ_ë¿¿ûuW>¯‹Þoýªß,¼{—¿ëéÞËËßôËõ¸þ³©«ÏË÷ëîáaP«F¤Îædz¤Î—tÁÓéÊ7øZéšA~‘ "ý4Q¾¼Æt*‘Â\¢ž´mò]=Ä'4§k‚ŸòCWúÖê©>ÖÜ]=üãAËæ¸&ø‡Ólš“þÍëT×n “Q’¹â)žÐùóß„ÉŸå”_#É=´ráƒòNöÉ6yPU3“gæ®Zn–„ÏkØi×lÀ†æ¤YÀ4mú±Yv®¡‡4wÚ tSs(L̹J§×e>–Ó®ú_€¸Á} endstream endobj 1067 0 obj<>stream xÚ¬XKoÛH þ+sܽÄÃ!ç6ûF‹nÐäføà6ƶ¨k©‹mÿýò!ɶlKrÑCJCòãk8„༠èbÿäÀ“ÑE!’ƒ’…àG¨B2Qd"x‡Y˜8ò‚£(̼NU¿‹X„ˆ.Á É¥  !»”4—‰êrfô®ÁBp5 ¶Ð "S ‚l5xec³”í†"FavPl`|U°±:@'Ï”OÀ.‹—HAœͬ ¢j&ƈj‡’Z@Œ‘Ô)bŒ”õcdÐoŒ‘“ EÆ( h‘1JÔoüê½è¥Å‚ÈAðUp#¿‚jŽ¬²X%šÈ !é·*I‘o Dbi’G͉1(ˆæįQÑ$Ð‘Ä–Ä ±¨c$Õ,J“F^É4ó#£ðeÆȪYò_½¬fVUI$2/T-•L}hp`Ñ rpÐJ‹AËQ.R@ªEJ)‹. ÔZC6 Õ},Áqž‚¹ÅñW cDPŠ1¢ c$­?6ƒýS ÆÈ^ù#kMW©W­ÊÊE£Q£T]e ó¨—³fŸÈKz°&G ùe«Z?8`$L,çA)ÞRA\ Š·E¥#z]eŒÈEÃcÄ¢c$.e¦#I(‡2 Åê©¥£r…={6û…ëÙË®~={áò쎭b-òz?ûkùåÓn·úº›ÝýëŠ~}þ¼/“L&ȼpÑãå\˜¦\;‚,¸NLôá·³œa€“7OÙsÂeÎ9ÈçoÖ¨˜X¨ çkH{IvT/¡ŒxùÏìaùf½šýº]ßZn\˜½Þþ§œ†8˜Î+Òrg­¸Çß$lùÊDàA"p08p™s®}݉eÐŽ.h^½ cA»Ý>=®žîwßÖ«ùO÷ÛõûÇŸÛ¯¶›Uû²h9_Û§ùÜß°Eö·8~&š¿ã•çüåòÛöË®QõðîýÛ›ÕçÏŒoä¾£Bȼ=¿ ãù¬VCbN«À@Ô‚m$KU.™z™sÞ–ŒÉ]!`Ô¾wÓ*ÇbÓ8ª);ë{xm켃ÁØQºÌÉÝÌ® "]숵ïÝ´ðÇÅîÎ&¦ ­ÉN‚Ñ`õ‘xЛüi‰Ð„ †}¢¿,Ó³¶žµö\ç8l:ÇÅfqMçðJÎ&ƒzÉx1×ÙQBbS¦UÐÂÜ-£5 v„Ķ,þØ>}\­OÙpÛq‚öwÜï€TÏŸtý8Ä3E™RWD)îñâ)Þ!g⬵ëo–WO¼ƒ9K<À+FÕ¹^­ß9ÉíÜ`µvQ:ØDi²;‰ÒÉn%J—Å4ô®væBVšãdŒ-À46œÆ§±Mqá(ÎzCÊí™mŠÓ«TiGëbY é‘¤Æ©>stream xÚ¤XmoÛF þ+÷ ¬{ã½Ed[±"Þ$ ,è'Q3£Ž¤ÖþûñE')–eËÛ—„Ö‘|Èçx®pAE?Ë8îW×ÛÅ˶yfršùTã´r+2Íœ3®Áê™Åá’™Y÷¥M8úñ„».3ÊG.ë^ö;Š´óÞ´;ïCç2½ÝÖÔí•'MEÞƒ!÷`ö÷ Ìw3ÔnÃ(¢uñ]·3¾ÇH| ñI¶¨úe³º~^¬•­®6ÿ°dŠO%èØÛmߣ1œæóØú…¼w¶¹¦áK±Æ|ppKãnzwéeë¨4“–~ÛÎnôz<¨ïûÅ3µVÇ î볯ÛúE…™æûlµ|\K=wÿùeI[öÇæ¡®æ/7wbx^ݼÔJ7–MùÓÏî€Ð¯7‡ÃÆ™îB….Ô®É$¿Ón˨ÕOR| †‡!•jJåTÈë¼6K½ñ4…½]B†©›ÿ³K@œáH÷t‰.¿&H½Ñü@7ýô"ré’9Q,:ð¸Ó>r·[Ùìv€r¤EÓÐìÆ2PåÑ!WŒÔ2Ìg;Í®ŸC÷Þ‘õáÒÍ6–Ë–ë0ö¼HÐÇ&=Éç’ês8ž F%cX.=àN÷õj¨–wÔÅ?ôõ¢=‘ù?ôÅc\³ÏOS´Sø ¥Ì›¶i䋉|!o&¢ ¯bÚN!M¦Ê’Ù8izššÝQ;Àm™í¦i¡›íLW`ipß–ËN4í~Í/öt endstream endobj 1069 0 obj<>stream xÚ¤XÛn7ý~Äë‚1Ú´]Ôˆ¨à%V#Šd¸ ü}Ï —»+i%íº/öˆ;‡g87^l0VieƒqÊþïUvü?(ã2 ¤L’/QYG,$e³ŒdåÌ6I°ÛÊ \„”‘°(Y&>`yŒðZïÙ0|0>3‡Gð%p„$8HÖ†Rd Ñ1›G^ŽDGÖ¬À‘e,€\—1ë2rSÆ@nÊ(m¥çüôâBQ)/PüBX YF”Il!pDÇÖ”cfe‚r ì ‡”ŽìDŸEJ ´"!̚ɂäŒ`£QΊÇ&ç$ŒÑ!$20Èñi Ä÷”#’±Il‰à(öEpÄÈ«LàH2 ²Î%6($pdÈŽL¢ç‘sš-@x¼–ˆ‡2qŠ‹ÒlU‰_°,OœC¤Á=Áó‰g!˜ëR8û€482ç$ipä,z¤‚æ¼"¤@0P†” Ë …ÆcFCâZ"ÔJ„Ô«Wó×Èl ´z7¿å"5"ÞÍÿY­×«ÍãæËr½ûå—}ÅëRù-FŸÂ\#Í‹ŠkTÞ|ß|Ý=n7ÿn–ßVóÛÏ* ¸2äl+ƒw-¼ÐÀßÿzl‹fvÖ±Ç̘›³€c¦Â\a a^¼‡(Oƒ…)Fƶê웫íÃÏ!š&F‹X5~¨|¿OùÇòûÓn·úqÈw­’Ø‘ Ñ‹—Ä™ ô⢠lÊRÌd–ññ…²+&MgñSXBaÑ#X ]‚ˆ9Õ¦ô²Ì¶ôŠppV'ª¸R±æÁ{$Ù‡í³âAì$ã!éÄðæØ@J«‹a$M‡äɯÇ@ WŠ&Öú³}þ¶Zÿ~vj[ ú’gy»o n¤ÏâÇ@®8jacÇŽéÓ½ |½”…œÏ¸•á †A½‚½½ººm…ƒ¬¾û²|Z[[ð£9L…„©4–ƒr…Ä1rÞl%•ÃÅãÃjÉ—9n×Ë«o«Ín~µÞ~ü:ÿk~³ü¹ý¾›ÿ¶yx»yÀt¼ÿ¹}XÍožß(À«Õ§íóJQƒlÈy¢Î8þÕ7 ¿›d•s9ç›Ë‹@º ¦ ¶ ® ¾¢dä`ßeC°ìãøØp2>6n拾÷ {{ú¨ãYðõ„oiÃŒ~\nõXyà¢ra„4.ä—XÎ[ˆcTé·4ÐG{Ó65VC|N¯„ŽÌ%½ÒJHŸÕQQ^”u©-(\€¸ˆ<ÿõ9IqùZPÒFk¦úš©>T!V¡f|0’xŒ¹Ö:£[kƒ–’ü–©-ÿs;ãfç¹µÖ®ÌK;¿µaþ^{¡·c_Ò_öú¿-Ýxmj}˜ìÙ[rh1Ét·‡e—§ÚÝ˵·t°î²û®S¬…“\O±$_Ô ýBž5D庛kß…ËëÕØüOH쌫ÁÞöŠª÷©æ?ËhQv–`dÐ43pTÈqæ£éšBªÉ•òé•ö·§¿Æ;¦‡‰OóîO>ܶ†Œxé°ÔaÒȸgw2îfd{úñDF[Åí›·íç<Þ›!{lç–ò°y—h_Š§s:ÊC~œjcO1å!?iµy˜ÓÿÌÃf™põ;ÎÃζ¦˜š7áEì§?§•õ˜náÍ"O¦˜i(ÚýG˜3ïRå6:HO«O°ˆð& ퟗ¨ö^΢¦‰0ó26[ØÆÁºG)¹.F¥ilïÉìÔCTÅü'ÀåQêV endstream endobj 1070 0 obj<>stream xÚ¤XÉŽ7ý~Áˆd7ÀA6cŒd`Ï)Âd[ˆ Ë’áÈ€ý÷yUlªµö‚\4ÕݯêÕÊe|tÞXã£#‚üe㜾Æ¥"B4Þë§d|v"dC”D(†2AðÖ0 Ø;ÃYÀÞ›@QÎ^6Ñg‚‰‰Eˆ&‘pùdRTõlrP¡˜\Œï…LÎ8kM’²ÁYq+’¸Å‚ß^|Ž w>ê×dU\†Õp1ŽXa )‰‹ ŽàÅ ƒ#¨“ É $pĨ’äÆI˜ ŽUG&•À‘³xÀà(ú.€£è»€ Úú”N3@éÔr`I¶âñE¼’Gª8„ÀZ€GŽR IWp‚‹ø’x¯¼Ø‹ò! ›$§ú,DI܈âxÒ4GpdKŠÕwø)A­€£ñ*YCVkŸ$m¤Žœ×wdÈkE‘:]%'râUŠ´ÉR2ÄV5ÐJÌRôqÝ Ž õ…y Y<@QTïÑo$€ŽX„G‰…)¦¤ ˜Á‘½øœÁQ4% ˆØjÂ\_lvN"/Iû°°a¯]W$6$‚½¶tIh{í$‘Iû Ã[‚3š84¶dÁÐÀÀ¡ÕJ[²àÐ"' 1 IxŠÂIª,82‰e4ç,–8¤×^¼XüŒ‡yk^/L\ey·ú"z—¥Ø X§Éœ„®Ä”ÏL‘÷U1LI‘¯Õö©±ì¾~^o†ZR÷éG]|®r¬›ŒÊyNŸú0ÁÀÒlr6j‰bžâ Õ ‘Ÿ‘ ҙƒ]7P•iNÈŸ‘Ž…æ»ÐèlâþX}û²ß¯¿ï•j¾cKäðowßUâ©ÊŸÈÊj3¨Q«ã ’\U •rÊ2)~¶³yØMQ®2òI÷ü>hºŽ_¤‘Ôæ`›«FNíÃ’eïÇýìY58Nvk©G2éd%ÀŒÃMðÕJ˜‘·Pƒ <¢¢¶N嬥ß|X}œPÛ9øq×Tâ8Çãfõnýy½Ý/î7»wŸ-^­~ì¾í¿n߿ܾÇœ°ïhñf¿úºï^8Ëwpçþ~÷}‰âGÔñËÑã—ožÛj&GYa?qD|‡òT9àÓßûxà>àg­þ4ÌÿÐwÌmÌRÐuým#Ý. ççNpÀÚ Ï·-žvº¿Ùéµ_®¨Ð\•¥žéµÕÃó|¾8_%MQéç¼\Ní NoTƒe:™½ŠUøåŠv¨*µbr«!·Ʊª~ë *SС¡ãx ‡PÈö¡´<=ýr°›šuó¯åMí¬öôºR–#`;«?ÝïÞÿ¨ôK½)ä¡·uêîêíf=u„½, 1Ÿ.#%ßq®c\e,ÁùNV^ÂJ‚ 5V°„g÷ÜÀ]õÐw=Ò³ä¥xH^¢Óä!}FRäyí†tÕ|³ˆGÖM«çM“}‹û+q84¹Öú™È­ì¯eèøõîÜ!^öŸÝ%㫶õp>ríJËÔMÿZ>]Ÿ›‚/¥gÈ} r¼ŠÜ [òG­’ÓåP”6ú¥~%©÷ùNh}WÚ—înÐqwæóÕQÊ¥¥œþç(…pW"NÄ—£Ô"J®[Õ’+ƒ¡'熶Y´#m˺#@j@Út#ul«`É·èR[ƒÑj”rè¡ÏgòéâòdzËÀô›L¶Æ†ÉiyLÞekœ<Ú£Èy˜ÜODÊ¿œH´9ˆ>stream xÚœXÛn7ý~Åá o@` F›6°Ñ±ŸbøA‰…&ˆ,® 8ß™ár¥•"Šö‹=О¹¹».‚3Ö¸hÈÉ2‰ä¿7ô‡`œ¢qEH-Š ’gÁYƒI90UpÆ‹fth¼W ™ vœ7Á+&˜³ÑD’ \21*&›¤`´&#˜lŒÎd/`D–’HÄR–¨‘£† Oƒ7F–47L,%‰³t¢Á~ƒH`€¬ÄÌ` M•Ø%qKìãØãŒÁG±GA8R+ì#DñËpÊûˆ^žr¸³øðì#©eÏ>R–X<ûȨOÙGVú„1 ’›ú•[á œÄçù}Ê¡9¿’´Ó<‰$‘Jý0‰F`G¤Ñˆ”{§ ñI­°³˜/…\Šæb¬-RÒrIëÙhvUd¹à<· ˆ·XÒFàÑf}ʨÜINu9 tª›À j=’cÉ §8¢Vš›IYK샲DÀ©¢×†d°t[b¥Ý¸Œ5cI+³¢‘ÙGê"³ v„9¨†7d•—X *ECP~K,)÷ÜÎä¤nÉZ–ćô1!OKŽ¥BO+‹D,•Ø‡ű_~cšG²ì#HA…vŠªË`S,±ÄD¼{7ûû…ÁÖ|œ]–©ñš«ÉÉŠx3»ýýüüHj A&^‘wºXäJ”õ ²¿Má·h~Z,—‹Õ·Õ×ùr3»þ—\¨µK®pÓ~¿~z\,a´{^}ß|[¯þ[Í{èݹ«Š¢; “€FÜ ö€® Ò6ºœ*]犜ÊjTêì@]î¡Îy;Û¦ÎÅ>XÞƒõ2ì†Ò¤†!g·å-Œ¼¥p”·ë²s×ÀØ-°FqõaLßÕ¾{òê°:lÀ+ó¥ h»2’;f”ÇHpop¤üÅbYc[7µ5o?n~b¨B¬BªT!Uó%¢Á|Mùöbýð³}§¥B.·Lº^.}½œY<.V›ÙÅrýåûìŸÙÕüçúy3ûcõðaõÀøX?ãåH³›Íüi3ü9Q3Š5£Ú©‡šM´'€8µ¾RçÓ  «@l©Z¤©Z¤†Å½© ?öýbù£pY."-äÎü›Ÿé(Ë=fÔqÇgʲ ß¹,vFÄo‡•ló¢Ü@NÓKé KûÚÔI¯¬LoßÞ¶z˜›éyj 'éù®êÝé…Æ—…Ã!ì]ÏIe…{ß:"ö Û:bj'šÈò”ãÌ÷#»§j6a¹çŠHCö±+{ņžbó}¢¼KØ^­‡}wvAlRvº)ž¤.бtari´jk½âŽ^Ÿž¶<Ñ+ BŸÚN[E·Í84¹‰Ð@Næ'Ú®ùÑ÷–ñJV 9^ÉBîã¶8t‡ƒ‡w­-ì ‹¦ü„íé·µCß¼•ÆØ@Nù ½ü g3”·3•±¼Ÿ©<,軸²œNpåú`´kR:i¤„G/m{D%×uÎØéUªs‘™ü65poÔ oÔKoÓsý´0X÷N¯5í¥\z$aêCcAÇW¿K¾’±:µ‹Ãq /›Ïë—¦J**u2ÿ殟/›yêä´Ù¢AýaLUþš?ÿØlX¯©4T_á_¯B=*Œó7]Ñ6M‡¢mja«FœvÊÍ×ùEÓE©·ƒSÑ—*ÛØý~D’õìËQ–Àž`U?,  8HÇ bÈg8y;LñÌûÙÅÅú…ã gò¥ù/1ÿ¢?³÷õ%J¾h•Sê¨çtù$Âðz90s¿÷2ˉ²«ÊMòµNÌøx=àåüüïHQ# endstream endobj 1072 0 obj<>stream xÚ¬XÛŽ9 ý•|Átçf ÄhohF»£…'Z<4ÐZMb þ~JU_««Ð>Px’cÇq§}qÞXã‹#“²üŒÃ?Ѹ¢3Éø¨B6dU(†‚ lH1ÞšàUp&$¼‰Á‹@&2‰L bÙG“=‹L®êÙr"S² l؉@ÖpTÁgƒ")‹"8 +Äm[¿=éX‚TÄÊƼ†T éB‰ Nf±ÔrGÈ*#:áÀ„‹Eü†ó.‘Ž#±Ž#Ë/G‰:Öh"€Ž³ø'‹±ês¹ÍâA%\ `)ïI5öE5à8‘jLY5@4x÷Pdm F’Ùp,*£zŸ`>i¬8²îd‚ù\t6×0A’r$L0¶ ÌŠÃ6‘Õ8c d‹D ¡#Gâ=–@u9ò^Œædˆ4¦™t{³¤RÐYäRP+H ª±/àˆˆ‚m¤È¢%åŦPRw 8«Ž¬Y†@ @ŠGQà8Õu`ùÄši0,É,{Hº^ä+Ü°ÉÁiBs”WIs”Á«Ï\L /¼Ì$œŒ³‚-"#H–°Gu°GDCG”X±Grª ŽU‰U9¨.8²ð²‡(/§%Èæ={¶x.ùgq¬ÿ^Ü/õ”B„&ð›Å£Ý:ÿrñjý}÷öéûâñƒHcìö¶š 뫉zâE<§x_j¥PF¡3Ñ1þùôõój£„yŸðÀçT- H„à²ÛØÆfå~‰ GB#JÁw±Óø ´ëÍïLjKÅ…SÜžÀ¥Š£‰8÷q±âÜ8n©µT‚¡µ´BbR'X‘µ;×û*Ѻ;³W°:áÝ™làóÙÂ\•¥VxÝÏT‹|—ZçEn92Çèf«P¹¨r˜ukü¹”àÓÔ¹Žã)¸ÇÍêÝúóz»[ÜmžÞ}ZüµxXýxú¶[üº}ÿbû¨Û7´x¹[}Ýu.Þĸ¸ÃÞ.½ 7(TÑáÇ—#o:Ôâ)‰¸ïÏ<Ñ™3mÍÌ-ël\'¿’‡ª_ÓB™‚ ®¡ç,7³?…ÿ±úöe·ƒNSÈ% nˆw wOïô§¡j†V·^ Ó|ÊøÐ1á"ßsÍžkBÝQCâj9: Ïëõf³Þ~Ü~XmvG ¿oÀXñ—û:;UÍý›W6›gªÑϱ¥ÊVfªqU‹sCbÎKç*Ÿ¿®p ïo¹oÛO»OÛ·«ÏëQ–Zù™'±„Êf³ÔJZÒܤɱ¸–á2%@×K ø©kiÑñ…ê0šài^ôW•¯^Ž_U‡*uGËiŸuQ£^å™gÔ Íe†Jmˆr÷KF> ÚË«/ës ­‡ @ÕOe´#<ºSî‹xâó× ¼Šê¥—Ûí—[Ë–ÊœvLN£tÇpšïÚštf»íÇ©K‹3é>n¥Ñ0xÆâýCíà²mg'ô8‰zœ’‡§$íkä‹W‘|Cn=ÎÿÓ?¥0ôOƒíûúnm(îë+û:ÆOÀ¸ {µÁÙëWJ¹ÐÙ~¥ _ §ýJ¡ËýŠ#OS:¾[}‘";À÷R¾´ñê—v¸¸ý”¾ëÓ7}žIÜ7 nï¥Ö9nï%nï¥Ö‚vÜùþˆôz¾Ô_ r?xpýÕÛÍzj.Æxà ø ¹Ü„Ò/½{CÈ£KgçÆ–Ð^va麥`hÀxèÐ_ÙÇÒ¶†/%‡‚k9ÄÖö9ÄG9„‹Âv-ß}ýÕí2²¿¸MóãèÎ>K¾§“ÆÉírŸ¼‹Öò4˜Œ£ä¡Œ ÉÃ4rù!´7ÆÉóò`AnxW1Û¤ä^–ë¢.uºõŠ¾½ýO€̹R^ endstream endobj 1073 0 obj<>stream xÚœXÛnIý•þ»»«ª/Š´ÑÞPÐnwÕ=äÚý`o‘/X¤Þ"X< Ž»&¢r:@QöÈ0ŠŒûic£ŽÉú”ÎÍlœ¸® f„óž!nœF‡áÉÔðÊ^‡GÂk{ çëÓAõÒhxFáÉÔêÉ %cÕãföÕ“Aõd<¼4‚< oZõBlh¾zYNƒLó¨ÓÉ ¾t ¬×AB;ÛvßÖ)“v{æp}½Ò  4ºŒ ¡SçÌ“eó'Šî(’hšÞà–E‰£°TGC_¨ùR®Œ¡;u¥y28š†&Mƒúh3v®+ÏS á™zôL=y¦^ž¬°Vw—)Ë jèzâæ²Û§ƒ)ú~±x¥±Sóm¬ è-Ö¸»E”î˜Hí>j²´©ÉùÝa6þ\|ÿºÝ.œY`x;`é6õ:AWöA?üÄ-w»íοßüU‘)*ÀµXª?ù ïîm–Ù+ý*׫ԉ*¥;!`còSYòN¥ëÏ4™åÁ>ÕÕvïÀ9ŠõËAÛÏj½vnKo• i·¯ƒGCýæÓâëq·M¸¥ÄD3:¸£ä8™ßÞn~<Äf{Íô“¨\ÓÌ¿ëNòö=¥ÝØ}è…þ’Vw—€á ñÃðiîìC‹*bÅ~‘F׎sgLÔöáƬ‡]/ûë­àN`‚&QŽ‹ØgਈC\Ê Nq¯€ëìù 8û$vzW¤ÚòÛ_ Kç,ý“6ííÃ['ìªH—«¸MŽOÏ™x\úç}/부—ý"Ôo ¬¯úà²? ü yZ¬nnþ`’`[g endstream endobj 1074 0 obj<>stream xÚœXÛnIý•þèûEŠ"­µ·ÈÖ®•äi‘HŒ6Q0DY,9¿§ª¦af€fð >ž©ªS·ž®n§UZ9mœ –þzeL"”Iü$*kùIR6󓬜ã'E¹BO¬VÞÓkTÐüĪàÉ°…á x=¿ *fC ªÄv`>%–É*ƒ ¨<€ÓªhFïXe4;äPdD^~ ·M$•±šxÀa,ÛwYgùmJDÃKãÁd€29 ?M°ŒÀØ[ŽèH׃#fbóàHŽÜCô&É3päD^yp”HA+«9°`€# Ä™ NY8MȉF@ÖÙƒ@ùçˆ Ï ee=Ç §>‚#ò%‚#0Ôl(d9‚#r²#8"GÁ‘¨†:‚#Eb‹Td¶ 7læŒGpäLö8Š%{ ›4 é&'‘…þMP3Žu¡f¸ ”kX?–yÜpÌKpÌKiwÌKmç¹æ”bÉç Ž`ù-~÷¥3j~‹%ÊŒŸdÉ¡Œ™›²àG"*à(Žx©‘ × Ž{ê[ Äl%(#x­”¤¼åæ,(Pl¥(ï(6£±&d°:è-úFÀ¨› ø@¼Fƒ#¢©À#pp‡ Ž”#“i÷™ @®ù‚–ófþ :æµz?¿E‘Y‚÷²B~˜ÿ³Z¯W›¯›/Ëõîíۑ΂SàΫÍïÿUh ¼82 4Ô¸hש™×±YfëÂœ®æÄI}¥Z¶t¥Zz]lYØüeµ[UX­(²¿o<­ÖGRFÄž7ßv_·›ÿ6˧U³:F|1S|1R”’ZÎ ÍK=bždÞ‹ùx!ÖÀbÁ_“šwÑY[•ó/h,O–ò9Ó6l}·Tn¼á*þ,;~Œ-A6;ÆîaµÕ§¨ÿ8–³#¹v;¤ꪓ„ªxw³}üyl^*àâÔÔ.x çH£lÝŒó(ê?—Ïßw»ÕËqkØ4bœÚßN_·Dk/8I„¯û^}Ú¾4UÂÈIczÛ,â(}ž+‚=ïáz¿òõ*åjo¦©ðPÕ©ŒÖÛ‡/ËïãbÞ¯—ŸWO«Ín~³Þ~þ6ÿ{~·ü¹}ÞÍÛ<¾Û<⺹ù‡ÝòÇ®>InÂüæfû²À”0£ÙÃÑoŠ3šiýL?H1<Ïqfixàu¶W¯ œØI)fpžÈ'ÍŠ²_§¨¶x—ór¢-\¿}h.®¶Bm¢»wû×ÝâxvwjeØ|å !Cýž;4tJéÅÞó·.à¿î PjNÃ>§<w‚ï÷‚±Ö%š jb-P¬Æ¤‡d îÌÇžù} è'N/xîf‘ÛƒÃ/?­WSû2äTeØ™%Ï|*ûru7_ˆ=×eS9/˜jË Ô¬y‘©§!Xs+KC°ÖG¦‰F!S­M>/H'_=.G,û&Š£&Â^«u>´hhHî›ù^U?Îu}<ÙƒNh“»†ä€<é©ä½x|›\7$‡än*y>˜tMrÓ’’ljä&LÚ6yjHlæ^LÛ¦oHöO*2lå³#´ì˜ñða̽”é#_\èy’½CžéNÉ2`ÊÂÊá²cûÑ2ŸŸ°ÜÉ k‘å Îãmw glåÎØËIœq”³8ãÜyè§x(ûcÎÜŸk¦J»«¤ÃUÒiº4÷GÜW½„³çhI?uÿŽ¯Øóýµw |e(Ÿxk/\9OKºu*p§'d#72Ì)W2ƒÜÉLÓ¬v7tÑst¸éKùIRq$5qQañ_8¶ î|‰ÍÉös7…¢@t-ʼnÀKÐ8bnH(Î] H­£=;ßêwÎæ) ƒs‘\’qÙm‰¾‰ãOݲäSVW endstream endobj 1075 0 obj<>stream xÚ¬XY9þ+þ_åCBHŒöBŒvGÀ£y-ˆ 6Hðï÷«rÛÝ’>´û5í:¾:\UŽ3Æ*­œ1Nyùß«,ÿ“2Nˆ LvLDeIÙä™ÈÊ9&,Y£¼³LXå“aÂ)ŠräUÂL*1TÒÂUò‘‰¤Rž¬²À„œøÈe´eEÐo&(§`šUô²aÜ6'¦Ü‘HDe¼–o Tù–•!ù;†|` 6‚aD6Bo°­|ƒål$Ëv!fR-‘Ã$|°‘ƒ÷YY-ßHƒÊ,AFY#Öך̾µžµ•„"D;ˆlPÖKœð^(¤ Ä—`ƒ<{`ƒ’P°Än€ XlD+lÄÀvl$ÍÑ€«6I–q€ð ‰…tdôQ—Ü‚‚zk˜/âOø€óì´PH,VüàÐy±aÜ{Î ‡® °Aâ9à ħì`¨±[ÑqÔZd†K0‘K"FšÀ’M–X±ÒâQʨqÉJÜk‰AFÅͲ%ˉr\îÞjF…bôV†·¬Þä€ÌHžwrPpÞ[9… Ϙ-`xbÉóÄ™f¥> ô@ÁFHr ÑÉ)lD΂հ‘œhå62û‹JÅ!¶F+Ò¸¡  (”Å“'›ˆîæ¾Ü"­^n^m~;~ý¼Ûÿ¾¹ÿ[¡ðíéSð=ãn…"TDR'ò'D¶û3 °…Âk~`׸‹à/$â±È‡3IØЄ;àuÑ\E^゚Þ¿OŠ˜±ÈE0ÏJïê$,$ 7Ë"ñêÃöËî’€«n¡@Ãæî÷Ûw»Ï»Ãis»?¾û´ùks·ýqüvÚüzxÿüðÜ—oÜæÕiûõÔ}±7D›ÛÛã÷Ôã z^7Ü•<ÿëðåq©n³L5YQ­õÿ©ÚFÝ«ŽTU£Êx>I‰ñ|ñ8Ž#—Ô4nÛ¸i†{|Mxò09ªâ®Özå¹*w+•Û^yº¤œytÇsEå’0»™0£]I˜‰éà×dpN5yÝT“oD é[ œ¿eÝõÞD¹^ÉÒ'rÕúf·ßï¶û“Ü33nUÌŒÕOˆ½P¶˜°µ{};|:}<þ9l?ï¦l¸6J‹÷zÔ!'”?ÈÎã҃S\ÒúSZ)YÌšµbeDZ"†]¨Þ¡<á ¥›ËCÀè±ÄÛo_N'ϤY,U¡R± ÝÝßÿ¸`¥ sVï¶_¸Œ&€= ;ñ掵ûh*‰ŽúÂH¼æX^-bõz³D|%bä/¬W Û4W¹¼ˆ M ú%ÁWîBÈs|±èK«(£Évé itÉYˆ3FdÍᄊeœ PëÈóà*ù n±»åR[}ðWf^§ñ¿Ì¼p6—ò`.%sÑòDrVè°bäÍi&rM3QL¼a(÷a/ámà•2j©^¾VPhºÏ¯@SM§Ü×奌ãòfí[ _‘äuH¢A‚8•Sós •µ¢ðýŽkáÜ=oÇñBÍÜUL9÷˜¼ëõ´î—˜nrµYÔu’zÙ^¿lL5^©Æ+Õx%W‰¸2Ê“µSêÛçQ@?È#YX^ôÆß¾Ýï––-ùçÜ°rñŽ½ñ‘šëº+[vΫ®ó˵0ê0Ãh*£f®aÉq†±†¶lté©uõ c}¤t‘ëÚ›¾†t«¡tVCÏø ”zN3Á9Ò™û»’hRg6œm§ºo¾ŸíSQþͬ©ÌS2CÀÔËøIÀnŠs¸t—Ñ–¯măŽ0Æ¿¾4 n:xi‚s°?*?ïpm˜Xª"Çy`ð¢l 9]{œ¹Ñ»_Ö‘ֻ߿R“rߊãgΖòcIwoç±ô>Ø"gÖû0HŒ™ö!Npë¿ëO³õ_~LêÚÚ<èІ‰¼à“þ ´£Þ=c&8G ÍåKû¯ë6„æ endstream endobj 1076 0 obj<>stream xÚ¬XÛn9 ý}-Q%E öV$Ø Ú>m·1¶E]§èº@û÷{HÎØ_g²û€žáá¡x‘¨‰Èy)D|!¹ŠÙ…Ê"°#Ê"G%ˆÅ :ÍÅŒ?"ï’W!¸ìIr9‰eŠ.WSrõIv\ô »BBJÅ•šD¨®ª¹Ú„ˆ–Är ðPMG‚”áuðŒp;dAFø Ê.PRDTQ]ˆQí5Hú „!%Yþ…Ôde€…œÄJ{}Îú ÅË JR ¥©=pT{ŽZÅ2\ Mƒ—ƒ#Ï*$eËÑ!–â}N6éÛ,aW ˆ>Š„ Ä,–±|¬@±ÍÁGáe© æaSÞ28X#Êà`õ…ÁQHâÂà(,ñcpT/kcpT.ƒ£6‰ƒ£i„ 8Z_d1ž[`ʳ` ^UÁ‹ ¥¡™Še ,¤ÒÁ¨€ÿE‚rlb¯Âݤ9w“=ƒrÖ:rÖœKÅ°rH}• ÏÀQìŒÖ ä’䪱¯xÑ‚D£IÁñK^ãÜHŠXßF—‰§ åÛ²K¤ëEq%2½âRÔ*AâSÒêDÀRBjcôàÈÒTу##yÀÁö ê}Äb7•ÀQX%pT¯8*R M"ñ"5ñÑF¿ o Òy(¤/æ?¡²aÞ»×óë;ímˆpÍÚÛdD¦Ø¶W¹ÞÏoñ4bãÍü¯åjµ\\X¬6óÛ¿]Ö/_‚ëyVeÝHDù×ǯŸ—«Cµ8N-SË{jßÖŸ6×ÿ¬Ÿ—‡Úe¼¶Ù‚‡µ%ÃÜÊŽÇüíÏ[MêÂì­(áNan.ÛpsܲÈûºÓä3šÃ´ÇfQ*·®÷ý”"ï6“âw:p8æÝÒb8£9$¯gÈ[{BN'‹sÏd c{$=£¯hæz7ÞÚð ùKÕür´ÆÈáÔ)YŽž®:e—f%yo&貉~–.õä˜qœÏ¥ ‡ù ˜NL1·‰0¶ù‰°ble"¬¬Ž‰_3]ž¿`yÎy¢oznTrƒe·¶Ã›Ò‰2Ò¯RD!Úו³}?P¹Ø•íºsåLá ÔxœZ¸4» ÀY?ª-ì²ßò„È5;ˆº¨LláîªyjOÙ¥E¾öÀa(Ü^¾ö&×?°ÆÅùò„®‡Gýy¦—™£3ò€¨n§p²ŒåÈà~ ÒÆ@º»‹~Œ:ª›¾‹]\ öñª?ïG°ÑT¶îÒ¤µÇ4ÒÛ~©\òæɅ¶^âKÞ<ضKù’7–ä@§½ùW€ØÚ–5 endstream endobj 1077 0 obj<>stream xÚ¬XÛn7ý~D9¼A€mÚ@Fk4~ª¡%š Š¤ ü}Ï —»’-ï®Ò¼¬Ç«¹ñÌ…3ë½#c÷Λ¤ƒqN 6.:!¢!0H†X‰l¼ÕŸŠñ,ÌdM°^gB(B ™…ð†“ÁĨ›¤ )šTy’É$ )›³ÅÕì­qVyJí{‚¤”•Ä°‡ßD*Ç)*óV©*(• N%Šql#(üà8ˆÙœÅÿ1é;ØHpldR ØÈ1 Å*l=;T¹RÄþ%ëÅ{†lŸÙO'úpr,ú؃*¢…ƒ!RO™Ae•@¼zÀO*‘ §°ô¼x[‘@àˆƒHDØà,6"‰D„¨ÑF<()’6R僬>#”ë;Ø(AÞAŒJ‘w ÿZÖwP`ë;ë*Œ»,Ið‰quÜ B)U˜@á4Ò ?Å>ã_VO3T±â,@D-Åç ©òÁFJ* ¹¾ƒXx_¼ !ê‹(ðE3VÞ¤¬Õ4,ÈYGJyPE©`y¥”¢£¯yP(Ín/Q)&°Ä7 õ¥`# Vá šMR/!£¦@ÁF4‚…¬ 1C‘|6JTÙlØ"ùAPʇZe'€ç ªèÙ³å d;eÍ_ËÕ Ç ‰“×:½^ÞÔB–×ËÛí·Ã›ûoË›P«òîùshYåÓ!|/ï¿|Úî~{À'Öleˆ›£úT„fzã+_˜ðF{N§:@Ĺzhˆ¼~¿ù¼='ÐûÂÓ«;¨ rÕÊÜi烤SÈ›Ú2«àÜìºÃö OÜh®î¿)ÏÍnóvûi»?,¯v÷o?.ÿ\^o¾ß=,Ý¿{µ‡L\øåëÃæË¡û¿,˜—WPpG6/4¥àÉžZ »þYšCqƒæÂMóCâ€ÂƒèwHƒÇÖäí²°^QÁQSbý4V«ÚxFñ„o™m÷-?á•Îßœô®Í[iÂÉSâYÓšU|œUG"éR‘;½-ûÞàãQo¸Àp«ùK|• {ßÖ¼?SX|Ô|®|n‚¯ëfS|Ŷ(ÚEÛrÎÆFL…sFÿ ŒÈž‚CÙ˜¨…‚ÐÉÒq!u%¨¤ÌÐúÐí/ýybËA_†‡†ÃípðÐŽZi…vÞ‘Ѳ¿šì´¶»âöêþÝ÷êëQʲ Ÿ·y³ÛÎ…óóŸ ‡éirE®Ò†#-2Ç>.dXK Ž×*-Ê‘ÆQávÐh'Fœ'Î5ñF[²Ÿ`lˆÝÓŒ’5Ý;Í?dM9Íš˜V»¨œ<Ây¢3ebÕ™Ëç±N™{Î4®sŒW8‡q(þÞîvÛý‡ýûÍîpölGxÅq?Âç©N7pò¸Nát]+g:ŠAx¤³ËÊ™G8±Ã :K|²Ãœ\êö´®ß|ý|8 +>¾ z™;W÷Íßõ<ù•©—ClH¼üºÿxøp¿ÿw¿ù´=g¬ E.й˜‰qã Åâéq报j¦ÅV&WÞ<ˆ•)ÊìÊ,fW/Ì.ÄøNA §sëÀQu”ç àêbÒÉÅ>á`Í7ÝÃk`߯[¨Ò¹î¡B“8Ã3œ[šÇV.<FEÎÎBŽjerµ¡\Ú~'£;ÙÛÍgIªÇ")·‡jõÙ&r-³ÅHG1/oC†Ò\!]ã;¡üÔÂøÄäKµ­»`X¶sDÀWçðB£îƒ tSÕÏmv˜aÍ_j Zgªîâm'TëÇ–®­û9qÐï4SŸ³hšZ„)é"¬S¼<×?K3ÛA3;w´¯YÃäöö~vÌm¾-mˆ,mì,Ý ÚÅâ®;éѺãÖ:Zwœ®;ý‰UýÆן¤ÝHׯÚÏ­9œøw}f’ñÃÄl|´+ŠíÄ|T éÑÄÚ‡‰Ð>¯…ö…"8ßtÄ#ùÜflé7£fæÇ7£˜Ž8MmF‹¤|ÞdB"!Ä ’ëƒušÀ€Úщž`üO€ä¢ƒ endstream endobj 1078 0 obj<>stream xÚ¬XÛn7ý~D9¼A€mÚÂAkÄ}ªàÅš ²d¤ ü}Ï —»–m­v‘¼¬FË9sæF.Ik|pÞ'¿Ád’_6Ž‚ѸEH†l! E„b¨ˆÄ‚ÿ² ˆL AìÆ,B0lEl˜ E%=‹MLŠ*&‘ ¼5)©àà— y2¹(Ÿ7EQ>˜’Å1üsÖ«œ¶êˆOÆ9/,>CÊj«Hl2¬qÞŠ5ï|l HEr€œÀ ãØ*.QG²RG : Ž”d”Á‘XAÔ.'±Âà(N¼bp”ª_/XfHYìq4ä¼øÂȾˊ@úÉ«䟲¤‘×È£ƒTßÊTßyHš¡Öˆ"88 /ŠK‘TGÌâ*FÉ‹I;"#“JàÈš¡Ž¢þ%põO´ê_‚Vã•¢:ÒQ¸á’"àIà Ÿ’ð ¹w*aÀ³J¢l[׈¤´l%J •‹Ä–1µªjCÊHGÁ‘¢æÉÊQ´[Åž“µåQ4%˜`JŒ¹¡½["$­9(Ñ¥j%ô¢p`ýæÅ5k‚”’3è S‚“¾“9!“BZ Y²5äAõÀ‘½ZG±*8JÕ+˜F,zÿDÏ9Ãh^óêÕòr¥Õš÷u¢B¸Y^Iõåòzù÷ûׯ›bhŠ|ZñÌ §ï.ër âU]2:Í_:M²67MŸxD³Îáþg³ÝnvŸv×ÛÃKäXgz ‘ËÒtZ³'W7iÐÌc~íwË« 뻆H™;„—¸wéÝÅþîûs}o»ä­¨~hdv„›c¶ß×_‡Í·Ã«Œ£Jb'”Ú¾šNÓ´ƒ–=ø©eï"XéNC:ÌñM%Œss+ÎOÊAª~6’·¨èf{ÆA®æºÉY·z!W™êFGåÐ&9S&8s‰Ï45?34l}jCLÊišeÏ6=suqÅÖ©fņi¥í—8Ê׸̶Aê ´ý·Kȇý·1ˆ·ó!n>„æCü|H˜ÑXy²ò^\?lF9ꄳn†[i>$φ;½®zö¨•5­ÞÈÞvº7e6„íôꊦ°Ò3ŒLFîÎ.ýV÷<›ŸËf8Ì'zSס’Îx£Ç”ÎtšÒázÂéy" 4@™h+[´çЪu.n4VèéÚ"§»Q½ÊŽ>Îf8Ž¦ú½•câP48®âœŠj¶ˆÏf?·Üdw>Ô«íúvs¿Ù–Ûýíçå_Ëwëïû¯‡å¯»»?vwÀú™~y}X9toò=sq±ÿ¶"›Ù*x’³"G¼¹y¾ËômowUÏÊG½Öv°-¼#·Eç¢ÓyjÒ &ó)“ižÉá Tì)“e–É4 0YÜ¸É uŠOªTU)/äˆðdO*÷Uú –£K½åHô-SŠ½eÊö,£9ÓÒ®‰|o:¡Å_nÚ†Úê°r¦Ãô»»ŽØnGê¡·_ÞëmV'øö‘8Ý`w±¿êxö p·±Dß„î¦û.ßüP–§‰'úÌ'9Q ?ä™úvÑ}k»bnBK·ÄqK—ói*e¨%Ó&>¾<w·ïwËÝÎ9>»·’;°ªèl\¨ÙàG6ú+-9õVÏVz©¦*—Íq$ëÛÍÔ´3ÖhƱâ¨åK^`û¤™¯²ÜK.cöq‘щ’ýXÂ̓H=ŸÎË-ârF‘›b<¡ø¿bãší endstream endobj 1079 0 obj<>stream xÚ¤XÛŽ7 ý}-Q%A.Ú Áí"ÉS}p£ âxƒ­S$_^æj¯µcôÅæX‡ä!Eq(ÇÀySˆƒ|£+Q¾“ D (‹ø*Bq@Šå'/`` (`àŸ«€FÛ-tòÀBr)¡äRQ!; ª^™ê²‚£wY}Åàrƒ\!!ºêE=¢«I—˜³W¯‘Iû\DÊ.„ ”báˆL¡Jl5z–ªXãàCD Xªâ£ ˜„¢ É ¦R{(‰ Šc¤œ}dIKBö‘³è²£P$1)±¢¹L죪nb5‹ç|TÄR¦‰„,–Ù%€&)qúAÈA(Sò"ŠNÄ"‘8@ÅQt®âØGÒx‰}PTû eÀÔ k^ˆ}dñ¢‰Ï죢¬föQuS3'̃d-³yOâCˆ/L%ü€¯„”UæGˆj…!«.›šÂ Q3.æ­” CPc“ÂÄ*ºZ6QtKê\¦Â>¬Œ «‘¤*~ °ØÄ@Vö•?JP‰M•$ $¥Š=ù¨$öjrè G,i]15 ºÓl©åê¤JÈ{–¤šˆ„.y9 $y+øp$‘Ð!F]eyö¡±‘gyöAQWÙY¨ì#ƒÈÔ0óö¼x±¾ÝèQöîeî×w,³U–×o×ïÞüô–rúÛ­äW¡ŠÔ† È_:$xö? ©œÚ”†1 CÛfl ƒô˜FdêîöûÝáÓáãv|*6>oñ>v9ç1AÖ‚‘ǘ_Ïx°¡YH¶I2<|š#ÕP–¡_~ýª_–žlËÜ"c¿<*¶!?¡L—”§¹ÚxkçR‘` ]D¼Ÿ+Ns·¾ûÛY2:_Á8”ûòáñËn†ŠsÔÇÝã¿'¨³d=Dèd=$ò:¤ŽbXêÈU¨áyã3~Ý+Møió‰dr¼*wÞØb;yÀ¸J±tõ¼ hïT¥DöVU¹Ø{U7ÜŸPýÍnŸðžÌ{Ÿþ—ߟŸÿ¶_vçè|º.GKú¡ß5sîï·_Eï\%—ÔåDß„ÖÌ8UÖxK€_ß<|øqF¬lÒŠ ,g9^WUü®_\=ª×÷/Ès½ß¶ß¾»ïm¥r…ÒÀÐv¬à’úŽVߥ,*†h­¤„eh;éÚ½Ù訧ïà+ÎêÉÆvwQCŠV )µïœ A²)Såbs¦ögo“¦ÊpMÉy†ÕE0 W†Æ“•jТêAK3…+2GÝ,]³µ:„wOàÛÛ¯§Õt·ß¾ß}ÙŽë›ýÃûÏë?Ö¯·?¾׿>¼:|àWó*®ß·Çî°Ji}sóð}ãéJFPOT9âÊß?5ô¤q<¢Ób£cµM“4™&édšÔ¼Ô˜}/„^5õ¿ÀÄF_Ûï¤1³^=r;º™¥ëÝö¯ýni’øŠ³Ê gy µ¬°XžL–ûÊ å*à Igü•Ox?&¡©Ë3IÈ}ŠاՎxػΠ×\¢µ“fšLóZó£\ÑZH?æ—Ûr¯tšc¿Ü}/#çÎi¡ón<¹Êð¢óÈi'N“»ø)á…—‚TÆ  æ¥@þ[¸Œœ9/qi¶òÅ£j’~kÿ{œÙ3Ûqâ¹³ùÙí¢ÔÆíbZëq$Yá¬}u#ý0~Ûñ©ñüœÕþ@ÖA£ôB¨ë¤}U|²}Õ4¶¯ÿgûJ¸*<¹ž·¯Lc€] émÿ‰É×èŸvÝšì?ƒÐ÷ÀFnç%'ÿx ÛU[”<4Ókœ·¿T„J»ÈùKw-+Ï®ÊR00œ½ý'°ùpQMÃ?oþ4îñôÖÒŽ;7S.Ù¸Ð2.~6ô»|U a²#¹C ä” Ú½û¹|þ'Àà(é endstream endobj 1080 0 obj<>stream xÚœXÉnGý•üêÚz ¶#|’œ"è 8„-X¦ E’¿O-CR”ÈQ/Rqæ½zµõBRL9QJRì?§Þì¿$`QtS šÑv6£'ò'˜£¸K? ˜T¿ÕèÈ©±PRé.©ŠƒkjÊT£¥Vª=u§SN½“ “Ñôäjp¢€æAxL¤q#9CÇꌚ€ÄÝ5ËÊq]-W×,=CV án–jX ÔR"Æ`Õ¨h^X5ªÇɪѲsU£‰sU£W5ºGªB˜Ñjy,Z9ÌÍ-JVLBðDÔjŸ¶ѳíŠûӠǬ’HlÏ´îHÍžÕ`ògªÁ^þBÖ=¦Rü™jðgªQ¼ÿšÖìÏT£²Å\T£zªj4²ø4-lͲÔë8£ªFïƨZ°ÌÎPHnÎP÷Zr³‚®Q5}g(„À–4c4…0£iÙ+Ù"`Œ¦Rœa쌥SK!‘‡•8ò°0"®‘GWHäa3Ù½jéæ èHqöiê¢VuFI •¦ÊÐœÑt3ºZdͺ({„Ád©ÖŒ‰=4R«:N5§b[u¤ØŠZªaÅVK5*8W5ªu°‚j4çj¹iC_¿>{«Ó®îsúíì\…Ï.¢:öù÷³?W··«õÍúËõíÃÙÅçÄþâÍ›‰WpâùÂ7SÙÒËÄþ㧠‰Ú„RfcE·˜¡Xv¼<Ì¡l"‚]dø,2@šÀVàç›õçÕý«÷ôêÝûO_hl™—ÛŸ~HtµÄËyÂÈjÓ™/«ûîîg´Ÿe’“™ådf=™ÙNîFÓĺ°°S†› þðcýõáæný÷úúÛêÀ˜áf<÷…>]7Þ¡‰ÆÍÔPœm>6%¦Tóxñ/×?¾?<¬þ=+G¬›Ùùpwÿmuû&û°ã#¶Í¥:C6Eøøîî¯ÿf—qJûŠNqKØxžxÆ“êuGÍ'‚°;–Hm2Å…¿Ç"qô»]ãðw»O1âlŒŦ‘ÁPtY„nãèǤ‡êجìŸnŒ1v4_õñnbྕ˜ûP·xô"˜\†À`KÄ<– ï-ú¸¸ [€Çì3Œ5%ZHƒhtCGq,G ˆ{Ä÷ÞŠŒã¶A;¶"ñ$xýež‚£¹88êÞÝžûâ\¢ÓÇw—c¼<^ÈÃh?”¥>stream xÚœX]S9 ý+‘x§‰ã$Ž„€eµhv<툇îPbè Ù²ZþýÚÎõýPÛôÂHÓºÍ9þ8qœ;Kç],!:¬òŽ®’¼'R#;h+ÅAMbðzD1äëÈ¿à²6‚Ã,,—‚` ºT²èr:$—³.e'aÙ(®]"GUå"Þ½«(cà¼ôpÁƒxŒ‘-åq6!hJ‘ÓUœÆì€~WØÒˆ‘ØÒbu!ªôl‘¬rœ€š"r D]åX$.rŒäEiP-Ž‘Š¨€#’BFµ8F.’|âÅ«Å1ŠzN£¨çÄ1È«Å1(ŠçÄ1(«Å1jÐUŽQ³rÉ×LSe+K4~_%o„¨°•ecrdKua!@­ÄVQ.ïqÅñ&GÕŠƒ6ÇHª3ƒ!ƒxæ² «j…cˆLlq òâ¥p Ò>`TÜPU+)Úk•…_|•Úd!$© Z±v-;å±ø%V‰!ÁQ;”ŒZ±ƒ•ËN“ªK#k§¿´ý¨Úñ⥠&1Ä)yÉ@\‘îoåR°4MÊ`HÕÊ9qô ÑøÄ ×hµÊI¨âJ΄D#Þxit·–->n •“G‡•‘Ø’h’"jB5 n=LÜÔlqŒ$Ò7fQ—‚<Þé'O6ϸ¯XïÞl®\J›ëÖ”òùíæõóû?6×7,óôé!7Bî¢#&>~áí÷o‡Ãî¿Ã1)S]Ý$j“…?9íÞPš m¾¨=Œµóû–Vê¤Å¹TECýþ}ÿåðù~ÿÏ~ûuw„Îa‰þ´{ø÷þá×ÁÒ Ø\—K«)®•:Ó/Hk›Â"c ƒŒ¾+cñŠX]Jæ7ôK™š¨+ 7: uIº!R¿Œ¶#/”1 \~¥—å$Ê=%™Éð’«Jm²,ý,[ÏB]Õ³–èË[CMé˜.)MFÀ¥/?ï?ž¿¸ýrèRÓÏP¯Úm.Ðëva¾jË7¦Ý˜þû¥û×£›A“n¦¸nÿQ”vÆþûrl±óqá¼ãöÌÓ]Nýe?.#žÈ:Y²±›cHçÝ´¿q¹/£IwÚ÷T?ž¨`¸vNwû™JM‹2ºJ3GXgÒô4‘OHb'Íi:°Ÿr gÄIBþYB\A˜7¦Hõ´rSñÙ·Q¶žoô³mäÃy7²<íOŽÇËzÃXO®õx»ý&qÒk?ÑaíîîvûÏûOÛ»Q²Zaâ”)Uëøw¿™ ÕÓ ú`†MƒœM"}>¨oF-‹iYŒQ¢h†Û’Í°!WÈŒ:d“‰Ì3™g2Ï­†!)kwc <»Ñçv…\My/{·ýûn§èë»ííîënØ<¿»¿ý²ùsózûãþûaórÿáÕþ/8ÿØoÞ¶‡ás¨ôK6¨©R3¢ØÕ¬&"4#™Ñ—ž²Q³Q³Q/ìá ;á ;%oF¸@5 Ýd7MSù450ZæÑ2Ÿ.»ÓT0 X‰Í(}j°ZƒÕ V\¨5XžÁ .(ì‡'oá½…¾¤ªíX’KjDzCµ3cX¬Ë…F,ÖÅú¯Vê(üŒÿ÷4Îæ:ÍDŠËA³Dæ +‘òGìZ$uË!:=Pé ÑègÀ¼¨Î§{ƒðœüËb³bp8qüZÎlSë:±s™_ß äW"iö~ :Èem#r˜ÐGµý/À¯ÞÀ endstream endobj 1082 0 obj<>stream xÚœXÁn7 ýý%Š¢$ P ( øb´=µèÁ£ ê:Eêýü>’»;3ñzÂñÅËõ<ò‘”Vš: ¥œê(5qÑON£êgK…š’Št5z¢<Õ‰šùÌD“`¾UV!º¨A7Ô@Ü®`âÔŠ2 jkJA’ÚT êIªRÐHÒ•‚fêUÁ5§Þ•ß4 JÃ(jMÓ(À}ñá¨Ø+ad_ìFö0RvÛÚ.K]0cbWŽ Ç‹Oú¬x((6¯„i»Â°„‘-Œää¶¶Ë ÔÓDLl¦¨pyñ)AŸ¶,5Žn#²ÚFxWÉQd«a$í ·µ-«¶…ôøÍV5ÙQ©5·O‡/µí¨ë¡ýôeÿ¬~þ2»ýîœ×ô¼¹û#ù¸û-~Ñ|ž†¾<ýùüñÓÓ?O÷=¼D÷CèyÝÊ!4Bóýááó¿Ÿ>Û´«åü¶ˆÛf?ëZÛÈ;Á#Ô ¯_Ê~Ž›a«¥PwǶs)#Œì;ÈõR^™ÔÒo>Õ4ýÌoc_üÔovõ£²ÙÍOþfw×^ZD{:e8BÓTó!4Bó!´ÄÑiíJá?¸ú•Èìá—"“üt-2›übd6ûÕÈl9ÉÌ™‹o6—}s¿¸Ò·è« °‚Q‰Áj Ö°âÓïŽ&2.Þ…Ov= XCúäê÷f±ÎÕo!í.ë1ÃÈFöäj«8Õwp§Ð·+îøêj§kŽw~wUJöÁ5ÈÐåWz–+µ¯=Œ”0²í!ϧ-ÐÈ<ëñãý—¿ŸŸþ»RÝÙëÎßP|…ÛÞJ\誃fàÝŸýÕé¦ë퟾ÌêÍ—Mâ€Ï7øÐqŸþ†zúê‘oÖ󿲞-Û endstream endobj 1083 0 obj<>stream xÚœWÍnœ7 |½%Š‚é¡÷´·>¨Ñum M ôí;"ãÀ†“Zôi¹Ÿ4š9ä·;× ÖÛ\c6¡ýÉmtÞ4êkÚHâ‰5ZñÄÛäx‚o¾QÔÓ>†FcÓP“9v€ƒ=žpSŽ'Òl#i3±X³%;ðæOV[sŸ<{[æ;F›ÏG÷Í6gcîÃ'diƒ8ŠhÂÚ˜oƒ{ ¢¸2÷6¤oä Ñ`pè؇êFàÊÃ(à0 8XøÕ÷¿xû;ò¹‚è²öÆpʽ?þ}ûÇçw·ݾÿóúÉf®l–Êf}¼ùÃõ§î>=Ùe»ç{§â JÎI\F߆ ÀxÏ›Œf5Ø»™#—\rèïЮò4þ´û‚Ò7JOŠóÿ»)ó|ãl9ÑÄ”Æ_Þ;óÕqŽ/ÛJö]/=ÜSU“Œ‚&É’O?Ó”5Ÿå7‹pESŽƒIgš²Ð³—5YES¶>陦¬4qU“ö‚&Í6§~¤I³Ò£ìqMÙçãÌãš•e«V4ew÷3kVº—=®« É²»û™Ç-+ÝË7ªhŠîîëÌãƹ»ìq“Š&M–3[Tº{ÙãV™ã¶’åÌãÞswÙã^™ãÝÝíÌãž•¶²Ç½2Ç]’åÌãž•¶²Ç½2Ç=º›èìW‹g¥gù¿ÊªÌñÝÝiiZYi:ó8~ºßÿÓXYô¯Wÿ釻ßþ}z|¶531Yâç_Aÿ 0œlã> endstream endobj 1084 0 obj<>stream xÚŒWmoÜ6 þ+ú=Q”D ( $؆Í°  0`E?\›kôz)² °þû‘’iûò"ûKŽ¦I>|HŠV¢‡à¼‹ÐÅ¢¿Ñ•¤¿ÉA²ƒ¦!bT](¨BqT¼ÃTõÐW!¸Yy" ,† I…äR®¯²K¥¾"—Q“ìr®qŠ#¯¯DM)«ŽI½0¸R]¡ BtP=JÒ%k$ÍD0!bÅ"q•Šƒ4Hô"Q•ÀAnº RÓ¡j:Á ¦ n:ÁঌÒt¬ÕÒ*H5ƒ÷*%/RÕÉŸMDj:t!4]©é’ ØtY¤¦Óò7Ô?6`¤ªË‚‘ª. Fn:ÁÈM'Ôt‚AM'Üt‚ÁM'¥é´ÇQë—£°€PE_«K Ríª4¡2—b#Ô~P”±m#%‘jû(‹T´D1U©(š„ÂXÑX0bEcÁH#eEcÁÈuÆX0rV41Fªh,mXX0¨¢±`pT4ip1¿àal¼€A†A†Á ÌÃÀ(vÛä{í›M¹dš°PJ›x°‰‡ûv|ÀŽä…ÛY;‹²²3væ!õWØJ[)ÕVØꂸÀ­Dh# #Œp°ÙeÁÃÛv†€}0ævø˜{cƘ{cî¹ï3÷v–}±µ[Ê‚‡-ábK¸ô™{¶•Ì¶’¹ÏÜÛÉôl«ŸaÁÃ>dZ`nGÏgcž;ÌÏô_9?Ù4]s>ýd?¶„Õ–¾cyzɘ¡——/£ÏåÈrÁ°Ÿ%L/ûœ¦>ÝårꓤՖ¹c9ËK™.­”V–ƒâªrHð‰áÊrpœR]’³ó’eèXžf<®šåhçlM9¦û-••å(³)Ä>ɲڒ;–§O%fZ[Ž¼¶SW8­-Çl°C—ä¬ØK–±cyšñIJàÊr”°²³þXW˜/3è‘„ùfZ°ôËÓŒ§}TÖ®ÒÂkË1uºÐÚrÌÛ÷IÒjËܱ<Íxœ£áæ°\Žá®±¦8ù¬\¥Ó`§Ò% ¸Ú2>stream xÚ”XÛn[G ü•ý‚j—äÞ€ €›ö¡hŠ±-òàÔŠk@ CEÛ¿ïÇöž“ØöEâ‘fvÈYîE’”(Ä )qȤï:ë{I²%¤V5¨¨kÐÕ¤AL ¦¸ˆúqÑcå¦Æ*@²¨å»K(¬TC1 j¡š^ªIp -©§ÐŠ‚™B*ÁºI°„M£¥h"Œ¬cS®!é#¢†¨ª÷–Z$"2%I"*…0’j Ĩ †ˆªÁ”´T$ÐXJhdS$R5F©ÊÈШIÕ24jQ5xZTµ fNgh´®jO ÞU-ÃþȪ†¢)VUË=P2¿KDdn`x"˯"˯0"˳DlùÁLâbŒ34¤9Y”Q¡‘»2`•¬Œ Ò”Q¡QIHj14Z44Z14zT`Ç…FŠÆhè¤dŒ–™†gŠªÑ‘¨k(†©©kxa&u­DE}F3±X/6h,5h,ÁN^*êÐÈMÕ:i«º¶(MÊÕú»C£Z÷uh4ëL7Q5X­}):ÜQ>"|±vÄJˆ˜2D:¨ÎYB˜dD ÆbD¤hDJëö-’d튀«Ž’0€°Ñ !ÈàÕ«Ý4°hbx¿û)  ßéj]ÂËݯûÃa¼;þq}8¿~½å0:€6øà «90£=pl«xàÄÜ8Wß=‡LÝlä&ãÚF•ÕkGqÚQëàd¯e¤^§ERv#e‚Üfü4¦îÓ>;ˆ¼vÈà$§L#õ2-’“'ÈmÆ42î^;š×Ž±©zíX5vžYÝÈ2An2.O PVŸ,N;ÊX‰ÌN;dÕØ2-Rؤ r›ñ“qzWðÙ!Þ­´Œ•È¾­œUê,ìÑiòÙÝáçÝÕõÇÃ~÷æt¸üóúx÷þô·Eé!Ç1—‘F×ÈÇî i¿ ¼ÈÖÕ;ºÆeF¾8½WHûÕäE¦ rÛ[ãÓ¢sc¬Þãlu…‘ù™ÝüÈ2AnJW-ýEé+­‰·´±/ÊüüíäF¦ r[Ú¸[tï¬5÷¬­Ò é¶ºÛ É^$­ÆœbÄn¤øöãý çHv#i‚\O‘þ±àºq¤ýÜÌïÞ݆Eå^\:¦{x›ÒØ£¸Ï‹índ› ·¶T—-ÔtùŸ¶P]xÙÁ[²´ü#ða1hÌ1¯óÿ-SÏñ endstream endobj 1086 0 obj<>stream xÚœXÛnÛFý•ýqwg¯@ÀN4‹‰5ü ÄŠkD‘WA“¿ï™‘”l‹&õ`yÈ=sŸÙÝaðÎk‚wd¢çÿÁ¸™ˆÆ{ÇD2>Ùø*KÅe&ª¡\AxÁÌ‘ÞDb‚s`"˜äd)š™Ý'“­°g“ëòÅ+˜jJä7dM©ü†œ©úÆgDJøV;NT–wÉ8¶T%NQ1ŽHV+¨Âvk\l|p  K Ð=sèˆ"/@Gòlw€ŽT8$:²¸ #ဎE  £TæÐQóÂo-ó"Ü>kCteæA·lUäðÁ!þ¾° Þ‹¼*±Í±ØÍRð{‡@#[€GHby :’cŽ) td/Б³p@G‘,'è¨$¼ÐQ3Û’­!ë˜!!+ùÈTeÉ€ , 'W y‰Ê‚¼D?³ÍÕòçölu·nÞ,×xÙ¼o.¿6?¶Í_÷ÛûõÝŸ›ÛesñpõI9Ï—_6ËŽõÝúlÆâñ÷õíÞÓÇíâaoUTÏQŽjßY÷öÇúëö~³þw½ø¶l.ï!^ôûæjñiµlÞlVм6Ô|Øü'”“õ3´5âØ:ï]ë¼Å. â¯~{iÇ"±§ "©w9ï= üŠÎÏ ¹ÈGÊ—FñÕê{gcï=qáx×E7ú£ÎvÀ9w`_Þ¨5Ã2˜÷;ÿ±øñ}»E=rrnœ݈BBøœÃ(°„šâðAŽ8µ8šhbj£¨ e"[:M[Vmq"[™¢Ge«ª­ åÅùæöקé÷u¢yÎM‹F[mÎò+·CeÚ‹uDÆZz4ªô\TÑíöðvóðm¹z K*ÔO-Q—U¾›ßIù§Ýö>-€l_*€6!ÞNHHÇäNa:%õ>NˆÃÞNèëIõy-÷Í(Ozyd‚v×G¡³^ …®zo°ÓK¤Ðt£mH/nª¤¥ÝpýQKã`e,Øq0?v¸ok‹RÓÏa·];w‚6*•qhÝœ»›Æø“§(ãÔà h{R˜zdé6MS·‘¨‡6ùi|×2,$­fqŠÒIG¡‹-L˸”Ò^«Ÿì˜ôFm€”†‹,Æq°<VGÁ’;¼#Ðèm`m?®V“öAªãÐÚ~ò*åÓ®9I;ÂM¾UÕ¯UÚÖM» ]Ë熢•*chÑÍ>Ç=©ëÀÉ µºÙ;\99<‚ Ö¼ŒÜ R?L”~4*ñp˜˜_·»[”:[ÚʾúÐãXjËa÷8º¡ŒÃ£v\ËwÌ{¡Y•¹RЗ+Œ´ß0£6ç«Íç¯ýðÛ³®”™Å©²?кZfØtÏÏ7?¯•Æïf…gv›gŽ?vÄ2Ëé¦s¤vÇaõr¦_)Ž9Ú¾ŸSCíj‡¼:ˆÜŸhëÀÀæ­-½Èܧº>¹;*çú=e¹¯<Ž§åC^Ç ¦Ø›Aõxmömr©vví÷®[®õiA]<ê\{9þI ìö ÞCs—çÖ³ý‚à/D ´í}Nƒ¯Ÿ‡”p¶%Z©Î·µDh‰Ø­d×Iö{¶„çšk÷yDš«ÏØ©Í잧͕sçlÍÕ»íñ@ÅÖ÷臡_¨/[ÕáÕÔ&"Ø€­D:&ñ^xŽ endstream endobj 1087 0 obj<>stream xÚœXÛn7 ýýÁJ© hQ-ì#íS ?¨‘uì"u€öï{HÍm½»²&/6wö‡"5Zq ä¼ã¢ã ÿÙÒÿâE5’ ‰ÕÈŽ¼¨QqR£:*y£F¡àbÖ0„2j Q/BŒª^$Nؼ’“j^Ù¥¨¤T\ÊæU]&õBÔœ²Á_Õ WD)bt¥*8²«ÑÀâj60röÁÐV2xq!XJ±ÂJêÀ‹$M k”4+&tA°",1‹a-£,Ì,ÊÆààªlXV6pˆBÒÅGd’ñ 8²W_Gfõpd+Ê ›/8j0 U, 8jµ((¿·J&+›óHË—",óÀG¢†GÖ’˜¬¬¼¨3qÐj$í°mm€XáÑ`jkËàHƆ®Q2¶ ŽlQ28²Õ4ƒ£˜šÐ*YsAT­ÎÕêR #ôY¼éD1x{aµgì 5{&°šo‚Ió+–éâD•·TXE×£ÖêQÁ‘¼zTp$V kV ŽÍÙêýÆ&¾ Žêu½UÌ`ï±rÖtmzXãýjáéGöø‚T%¬¨˜‡4iÃJ­Ä°”¤Š(l8¤hd]~Ò1ãpBãß½;\ÝÚ\x÷±ÍŒ»Ã lo¿~ûøþý 3ú@Lãôoeb¦úÀ™šÞ Æ^Ó€¡^þõ{®PP´^Í›¶gMÈŸÎ uÌ/#ÃÌs³Ðãëßž>?ýyÿør6$¯>©O;È#òV¤óä ÐV.«OM¸¬iH?áÜA'œFÞøH'aÝ;gŸ˜Ö4ø$á-2õØDiEnºO—6åfHé"yÃN+’z…¥;ÈmL}‰-ÈÐmVÌäQRXq´oiœ(=Ÿ©:ÊLÓ(ó´Aá%²Îtð½VÎ58>stream xÚ¤XÛn7ý~ÄÛ 0£ 8@$O5üà&BÄ‘‹T’¿ï™¡¸\]LmÚ{¤=3g®ä¬btÞX£ &°ü†½ü'ã8‹ŒI„l|ÑGÅ_D`r„àa!ˆïL,öÞP°†²€}4É+˜LÊ N&;g“³‚‹)jÙ³)¶Ä*«åàŒ³0ÉCJÁ8g!EÅÁo—õ»dœ¯O3¤¨ºR/¬ ,O¡æ ¤V"8H€šK^Ø"8R+ÙŠ•ŽŒÀ‘5ôŽâÕ8J’xìÄ2ƒIìá·j…$]ŠX5Èøx§5!TÀGÕ(”åÑœ% ©ˆFrÆGõiò1‰÷dE=EÕ©zG oGÊ%÷Ù©.8²ú‡ºù¬þ!žhÇ r¾h&¡æ9©M°V¬d‚¤>çIÛ%gœU+h%—ÄçŒ^BèBð9 €Ð$»è»4§}”e AóH¨ñ"%!ª§ò8È©"á`p$+p<$í&˜ Y½bp­ƒ£°18Š²188Hl˜ÀYü“”Xå`˜·HJN‚¤ tY@©EÂG‚BBJ<«„¨!Õȵ©!•š:HÆâ8’t69¨%øÓOëóú`èZófývýòéËçÍãúöOÄ _]]ö`½" ÁªQü^ãׇ¯ïv›o»sJ¡*Ý‘­>miL³Ê±*§zb¨\î•å«,¿o7ÛÛ¿‰n 9£AŽ`_·ŸvŸ¶ÿl>oNÑôCè¼=ÏŒ!I§s.\ô@/Y%¤¼$A©& ½$–ä+:-C׬-CÇŠöËеä~4«)Õ&u?šÕZÆ굡Hå°Šƒ¡È…šR¤ÐzæõõÓ‡ï£)ÊûëM&DoÁà«ë§rº_ÜP7¸U« v<99,ƒÑ"˜^Ú‚¸­Ö>úWÓã}FÂx=¥Ã·üé:0Ùiƒðîçj箕ªg=Rª+|3cF߄ЄØjBjBnBiÜdÏŒ÷YØ­óHgî{ê:yì; ‡~„î{\ê{Ï!…‘Nò]ÇvÒ‰ïfQòyèG¯•Ì“¡ô£)Ò©õÙ!æâÙëÊ,ÛqX—È)¶Ûiì.7…옓É0&Ïä!yZØ‘y6#~HžíyHÎËÚ0”NžÊ’6¼ÃEÐ.‰ÜÂþÍì’ˆnØ¢yVF7 &?[Æ›úÊ4ýÁ…zS_­Nž¾ü‚ ë\2Ι:ŸÀ> s‚t¼!Mn”^¹|´¬M°×,ó|y:3ˆòÛÁ³;Bý5ãäîÁßôw£Ûú"y²¬”ðܲ"®r¹`¯…Ý|>c>-Û…÷áðÉ.$oŒµýÊìVd{zÙq»¹m><©Î.}vg×›šøºÞ°ýŸë·ae±{^Xo|¤U_د®¡òÊÆûú>"y….ïá{ »£6ËœŸa܇ix„q †‘ûÀyáiÆýRå…Çoà>š<¼xÈúòÐéTݧûòåÊ,3atr†ÂäÁEÍñÙ¹9¾ÎôóYgS™©GYN§²ÍÙÞHò£ÍIkºýšL®5³kªûŸU ¤&ä&”&ì7Xò­Å½kÌý<‰Î µübÔ†º9÷߇šâ éh¨#&öêê_ÓT š endstream endobj 1089 0 obj<>stream xÚœWën[7 ~=A-’ºP@Q ÅÖ­H¶m€ úÃmÜ.Xjž´o?’:Çç$^”£ýIhëûxE‡è¼ ÈÐÿÁ1êÿèI…ä ²CU`‡!©Pr½#dÀQ**ˆP½¦C¢è(ª£‹ÑŽ’K^õ`v)]*vT\6ä{¥8J'tÌvD®; ®¥“øìƒòIœöe@Fd‘ØN‹Æ¦§ÌÊ•àPOE'P²Sr@¹bB²S±¡9IlÄh\±‘¼²&ËNÅF²x%VÈæU¹¨ï’`Rnl^E±QÈN£dÚª“HõT²h§’~Èj#JþT‹¸†hþ%pH–1 ÉüK$‹Z)$ËUš‘ÄF´\%±‘оÉ )0ƒú’ÅFNêA¬Žâ«|%«98q@%G‘²q“#0Os©~ÇÒ4Vä\D²ºK¨DA¹,DÙ$t¬ñ˜D² ±ØfÅFôªOš‚´D‘Õšü¡dQ²ØH¬Í(†(£ÆVÄF6El0ª–"6Šy Å£Rì;ùèɸbܳqE)XCj:Ѫ_ä¥dÁšABWIX’%ø¢’¨²nJÞ.¨kÉ‚]‰¤×1™½{É‹‚,WR$Q`UHz½¢ XJöüùêìÒÊãÝ»Z>®ÞŠ,<‘WïWï^¼€Rï nËôOGÓñ ÓR÷ ù  Ðʯ@i6pÔHOhÄÑG|ÂGÄH_ÊT©1¬ÎêTñmšò§)íÄ24@ž$务óçææf³½Þþµ¾9¬Þ~•ö׃ÿà¥ÊÃe¼y eòÌ·càrîK¬˜ÜC¨¼ÔÑÑ3(Íȹ/d‚Þ°òü2^Âɳ)»À'1PœE›È™/önŽÈz¡xT›_fy…Œ‰}·ýûp½Ûþ³]Û´¢µWøh!4,ø áeJ™ò¦›ù4Úá žÕ7¿…œy¦~ ð¸×X*ûó¦É|ÃWHXhaÖóÑOѦfÏn ï{=U3ä†×uHîÍ Ö)úoxœuAlF©œûR§Mľ~©¸.wúXèíëÉ¥.x*Û¹ÊTŸ’¸`”œÉºYÁdžØí¿mnNaüÖ¨€„ê»Ð¸ý JivC³J ÈY• Ž¦ä;«„uc¶½®Ì*¦º3«Èui¶Êù¡BeI…êÃð^~9Åe°üÖ¬LY~P˜<Ô.Li g…©-•¸ó}„zëRî{/íÉ°ÇQW»<®À™GaÜuyÜy¶'6ß×<› ØHA-G~t€„Y(öëd4P&yœ ¿Kƒ¬o¦gmÊNџ׷ZùɧQù𔿮ïn‡Í÷S&Ò¥ý°Ò4ÑðÓÊäøq™*ã¥àÙ–}d¾ÞKƒžæï£ù;«¿OÒp>bótJ8Oߌežk«yþjwõcR0Cø¶‚p¢à~ê€ÏÜQ úøß uœLu˜p~t>Ì3:lªy!:t¡ëtÈqúýíúóæå—ÃfïÒ3¿ºx^Þ\Ý®ÞÖûÃêÕùúÇîî°ú°¿>\o¿þ¶»Ú¬Î÷Ÿ*ñÕæËn¿q~`¾Ù^m¶ûøóöjöÉ” Ÿᙿ¿âå°ÀÓ‹i™Šî[k8Ô£„ÞQ)4èý%øÿxûxdž¶kœŽK²–áÓî{“R*–S‚¯ßA~ öS¨Ÿú)±Ÿ’ú)6@• ÷SJ7%ú')ÿ 0W&NÇ endstream endobj 1090 0 obj<>stream xÚ¬XÛn7ýþ@-rx(Ø@ÓI[£ P †”XIŒ(Rà*@ò÷=3\J+Ù‘¸v^V³Ôœ¹sÈÙkBrÞD'¿Á8KBDã¢"²A6£Ùx›„(ÆGAa³QWÈDå!®+Á¤ÊMŠJ$ÃVÿbÃ,Ú)›ì”(&«=ÞšbÅ@ïL)b'XtɃbQâaµsb¶‡ÙÕ\Ÿ@U>6Î{•– ¤T{ª ,.©ËÁR:6€‚Nâu€Ž,Ž¦™u :Š×5è(YײÄK× (]‹Ö‹²§ˆ¬®¨$ Ìä"PI©h(¨¶ˆø‡$^FI€z‰ð!Ã’4p@GÒŒA(±ú› ƒY¤$èÈ$Rtdõ* ˆ§Â*…‘[R)’enBš‰^ˆ‚¡‚ÀÓÚǪ®yã}å  êZ4>ÔµŠE2CG$ÑÆY HlaèHj_†aLâe†fÉG†Ž¬ÏБ³è@ˆ}ÍB†ŽRù Àj3غ†‡SyÌNu Õ[`$iœ¥j> Œ šË#ƒF£àIl.`‰šÁ’kò@A£KÕf/¯,Z/,eV¤êØb[X<@PEÿ&’èeìœHYùØDôßlb¡l (1’Åæ/B£lºŸž£Ú­ìê¿g/°©g—µÜåýÕìõâëæÍúëìò=¢,kϞ݃ÐtˆŸ ’&@âtHšáéÜÑ4@ èY~€¼ú0ÿ¼xÀ ÙÀȨä&û‘h:dÈ| ®ï>Í—9"t9’Ñ.p¥½Š4&ñuÕçš-5ñÔ\y»Ë_ïó ©sGùÎëI48БºËåüíâÓbµ™],×o?Îþš½œ[ÙÌ~YÝü¾ºÁ¦„3?{µ™ßm†rö %~q±þzl9³È‡<Ñ„ÎéÌ^ß‹N=4…¼¬gã^X'·þíÙ-<#ž!Vßåéð‰â¡O´u‰ÈÁ  š–óBGj.½¨„ã6^é­DÊ@o%ÁÈ(AÔwý$×Ògeç˜ÍâR÷¢'¥·¹ú’q~l%ãd؆ á°ÍgÛ|v¶®- ÕózÇ;Ýð¶ámÃÛЈ– Û²aù”ha²'‹1–rœG›ö€´Fœºaàûw±\.V·«óåF÷eØï] æöÅ÷´IòÐÉûaþqÚô˜Ä®9 á¢M ´Søù—ÕÇÍízõßjþiqDÇ•^Zµ½^Wmi¢‘ü8ßœ}$nJæP[íãF‡UxøxsYûmþåófƒ:¼{WlGðÁk•>îT¹ybb1ºt Ìõ(Lvï(<^7±öWêØ!4¹ZDÛ#õ¨R²•âH™àùjËñ5®w ´J¡ØW)qŽ TëZçzy±¾ùvT WÀéz¤\9©«ft€úTþÞõæÐn ¾ôÆW–Ú¯íCÓÂ÷ ®BøDǤBSÍòÝ:Ú]6„>ÈXKÝù6M€¤é}ÉÓµ” ‰ýh§C\däKa» ~<Âv”ýþ{º¾ÇW¶®ûô‰Câíq„~u ¯§½£ÑµÀ'×q÷Iµ­—øÀXu ØïÏ«%Í٫ϸOŸ¿Û,îpšŸYå:_Þ¾_Õ+ôî~ýÏÝíævõþõÍböòîõ›Š¼X¼[ß-ŒÃ[^w÷qyßÇñ¾½º긖Òvß·ÍJ:lÙ;¡ñ郗çƒ)"‡Ý‘½Î\2Lú:LÈ`Ù= 8:Uœ&Ý—¸•\˜,ýÞ<šH'«¬3•×)Ø팙OµùécíO錵!‹û1H(BñÜ?-{˜)UvDžÙ£½ü£6•~¥­_nsbnsböã%·‰‘ÛüÎm–åÒƒoÚ¸ £Àï‹1ÅÝ7™¤Å-ˆ¦[fvÕÈîÉ•VܽByg€cÝÁ¬…”Æ¿ý¥Ö!óËVxû<ó¿C]I endstream endobj 1091 0 obj<>stream xÚ¤Xën[7 ~=-‰¢DÅ€[±"V4,È·q» ®¸оýx97ÛÉññö+tô}¼‰¤¤“JˆÎ»T¸Tåorä/º“ÙT¡¸P³ä"ªO,Dï@11¸„²#«Ó%p¢˜•!‰¥ˆ. ®Äìr[±¸âQr%)½ºBÂï„ÁE¢«ê€«Yüä‚÷BvÚkÀ^û*VØÓ@™Ä)µrpQ¸É³TÄv Žab*E–P¸ X"•Øª %b-IfH‚äŸ!£ØMlÃba7B)ÂE¶AA<`¥PBF¶AU|១‚08ƒ¡ÑŒè¢¢3KjƒÓ(ƒóªxÊ&cÔزg©Èj.¦(ZrdI3ÄYŽæ}N,%ű $ñ…!1GÕÂ6rŸ3Û(šÓÌ6Šú\Ø%ÁqX‘t3 Û¨Aü+l£êv²àÕ'¼æªdÁ+·°„Ê Ç W-\HQ5³Rˆê§@óÂÛ¶ ¼)ê*ÛÀ¨«l5ÏÄ6rkÄ6¬´8uP¼d’Ë $üT8u¬NþÇVL•mÔ" ©~Å?ÙO’¿Ê†BÒÖ• EõOêÜr_Y)H¹’„y¦%Ù7’ð»Ë/ —(K¼½2x!KÕ‘õ&ÝT-Ô€I‚!-iUÀ˜V¹@Þ¼™_pÅziéó+VÈû(â{ëpoæ¿/žŸv»åÝ/¿0áêŽQE–£Ì{ƇÐáßnß–†¹×ˆ âú]»,óÖ ®uU<ãvž¥^Oi€·¿¶.ÉØ1—€Z—tò4À0†c+@MVLµÕq¹yøižÝéSÈUof/†ÛÅÇ•%áýjñiùm¹ÞÍ/W›O_çί?7Ï»ùoë‡wë^pf©æ8¿Ù-¶»æ¡â,ÄùååæÇÉ\Ë8“¹‰fâ#;Á¿Ã}¤6 8žh“ñD¶º”œJ+¶Àü:·´Ö¾ØRé¶Ô2Þo©l¾©4dEöe"@‡„C$O걎 ¹) _nÃø{¹Z-×ë«Ý!PktÀ)cœa]Ž£Œ ÷†8f<Ç^å`‘q9Ô:dAîljÙÂÞ8¤×9Ã䄯NƒI†ù¸)÷'ä4è½êÔFxÝõü•þ"²†õÂ(»yâpñy·Üº<óó[öàbõøem ßO„¿¶»Çõ—?6Ëùõöö£/—Ÿ7Û¥ó ³™ò³Ÿ òkoz6ôb'õ•ðxŒR;Ó`¦|ÜïÖ‘v[i„v¦`§c0…RyqŒ&êÇhÊÿsŒbžñ) c´Ì(vn—vž¯´‡B9‘¤6ìzØjÄÓlÐ"8>Õ‹¯öÃÛ-Q]‰æ¾Ô}ó÷_œÍ‘¶ÀƒÛªyû¼þº{ܬ¿¯ù¸?@ïu:T#Âi+áç~Dc 0E1Œ„/w ¹òJøzŶaèB²k¯ÊÙ.¾*“]}EÖ˾]g\{ýU9ÙXåܤ´NIi°”6ÎsJ7ÛoËÕ1 ¦Áp¬LƒÕI°8-„xÂHñ0§£÷¶·yvÈN ½;D,öð±6ÛC“*Þ¼¨ã¡åI(:@ˆhÐ¥?yÑ6AÁä !mËJšÖ £ñ&öñàšAƒƒ³Ž^3JAî]3ÊÄK™< ;Ϋ—2®9Ûmzµæì¾øÂ=Vž™¯©û³Wž¡:x›‡¨öU¹ÚcTë7X©RœTª÷0©¿R> Mç ÑOGïí”ß?ù§VeüO´;ýâQm>è£jÃ_¿˜TÛhÞí*ÓýdC¬ìAwÎ×ÑùxÁ9†öŽmðÖö»y~Zn¿Ú>>Û`߬*že0µç³õu…“•Öë0•ÆXœàÃÊ$߇í çmÛ´¨ÎS÷Pê^Ç$jf)“’‘ºÙÊø›£<Ÿ’Ï¥ÜÉ'Tj¾g”roüpŠ?ÈM49 Ô³)ÙŸO g§/k5S÷þžBó)i"e ž¤ü+Àr(a£ endstream endobj 1092 0 obj<>stream xÚ¤XÛŽÓHýÁ¤»«o%!$F{CƒvG;mÏäÖ ™yhÙIlµ~;|þ¸Ýý~Îq¨ŽÝÂH|5 E‘ø‰‰¤/ãZW)D,Æûb\!þØ|ýt<¢ªc˜Ò`C“07}$ƒÐ¥Qׇoªs»Û¼Ý~Üî«ëÝáí‡Õ_«W›ï‡¯ÇÕ¯ûw/÷ïð¢ÉùŠVwÇÍçcû{õ*„Õ5|¬‰ò•i0ÀøÅl‹Ý•¹_êœù±sç{çŽÔ¹@x€ŠóXfQ?U%ÑñD–b ÐFÇJ Ç­`Ml\¨ ¾Ê|ÝÿT1­y”oŸ­3’-öœü:-+› J9rN\‹Ó˜ã‰k[]kejL­ƒ©u05}ª«f rÓé”NbžÖé²½Þ|ÙîöÛ»÷ÿ"ÁŸ|©#Dí97°äÏ$ôÏv·Ûîöï7;=‰e›4F‡Ý…fö‡ÐÖ®°mD¡1"F]!lâ¼·›†4`âºD¾î?û/ûÍÇíH9,W¤W¾+|i1Ë·%/5«ËÔÚBÕ¤–5r°OÉY§pÞ/ÌÎuÍóCˆ·›Ob7(åËfQ­mYïiYgl)qÊK[S—¦Í‹ëà Ü…kå¾Ò åb¡¬Tç7ÆÙ^±N%lw|ðo'Ê„¦3ìçIšü‰¯öf7eAe§¤8 =;94ܬÍjøY0«g5Ò¬FžÕh+ÆühPj½´´ â)¦9¹Øaó‚ÇûBÖÂ4ü–“Ÿì´ÞZïYºÍq‘¼ŸKÒ·IÒ¼çò-Ç §1¸ÏK(á#¦JÑQ —„^üRBè{ªQ.›£oým÷6䶰ÖËqáaŽ<âˆþ ÍèÃYƒ¼À@îgAÏBsíø«ëûï]‚í'à¶\p[—ýë3|ýUEb> z?õ³õú—Z#î8Zù„–aÍuX_÷³‘+'Εså‚\¹`ö'>º]Ô¥õb­WoU¹éa†]Ù¼Ùm—Ž(°eœòÁ½€ã•÷}~-=e3“×ü˜g+Ïå0£X™1O@¿ÀÏä®[ÔÏÛa·iz·T“O|šiÍ8¡yBº|a„žb]ñ±_bwÛO1OåÀÆLhžÆÒÒp¾0‡ö“ÁyQThM‰,ô‘åQM?¡yK*,ž.Í!;·Èît›?¹M·ÏíCÿ?«^:œ\\wØäË¡f6<^g”ëqÏ=Œ5£ÃÉõÖÎõÖÎ6TS®Oâ‰{n±uÝ:«0çÖÙÿ ð(o” endstream endobj 1093 0 obj<>stream xÚ¤XÛnGý•þhHÖXÈ.6kccÄyÊ@Z{²ÖZ¶ Ä¿dUŸê™î™öHû"±xŠ,/Õã Ë@ƒ/ì&1àöÎ@8{q Ò 1ȃ£l  .]ôO¥ Þ³û/pCpÅ€B®KaˆÎLHbªKiH®.å!¥Ê*Cf[r4ähKºn^*¡„ºd>³yæÔi Æsê5•ºæb^¸4°Ôí]V”«^؉éyR”mõ›½Ø‘½(ŠfLCÁ!V™ÚˆõŒ^mÄzH¯6b¶xµ‘ÄbâÕFj²b4®Æˆs6kAm”Ê j£³Ü Ôd~ýUߛÏz@qdž†¬(š „øýW|0k.ñuç(ƒo»èa$dóO#1˜µ¨6U†ÚH«62U®ÚÈÁ®;ª ˽Oµa ŠXS Æ*‰¢d ýã8š/É+*ÆMap"EEõŽô‚]»…¤‰¤CšIÎWCç\²5Yœ¯çÍjûŠÔ†¯I¨¹é|µ¡—çB͈¬6bÍ<ÝÞµ³é¡u;;¯]Õ¸ W_Š.ˆ%m±`KÍSÑ­ yËæÊÐ_3ÓL†ºŸ¥wnûåv=ŠÊH÷ D4„ W«HÿzJE¢H¨H’æ†"+ ­&EA‘†S‘*[+JZ+¥¢nþ¶÷Ëþ. Á_yŽqóæñöóã(ã’¯|Þ\_?üµmXo)]iX‚§«š\®4Eo~úI­¼ÜÖ¤á·V n6¯­'áÍ›Íï¿uE-Œ¦¨·®(PtëŠÚ‹š"çóŠ/´²5WLö²õ&ƒ¯[O5†¦%4¹¬i:rÓž4iæQóÝýýn·{ÿØÖ[j*eTùûÃç»ûÍëÿh-šh¹uô‘Nlz‚çyr)N.…¹óbyÔ5ýŠæñ1C×l7sú˜!5c~Ýx¼{ØÙß~Ü­¶Ž€nAV,Ħ/´p'Óiýj\­hyí¦”’²âu»~GOKhY ù²,ˆS »)žì§uá .aEsòekÃŽÛ´ïµ k؆·@ AZ%:ÿ}‡ÍvSW…éž\n*i*+wr³/9@h ´v­e¾@­z1Þß6·§‡…”-¼-¹†:„½oØ·§HÅÑÂÎÜïï·_?=>îþZºÜ<ö²î1»ËÔÂj/ì=ÆðR%d^]?¼û¶ˆ/;×Q𤽽jž^—ñÀùÒ …ƒáéñbθÖY3]¸-§öž´(µwdž½+ŽíÝXq¾4T[ÎíÚçnpë÷_Ÿwã}¶ü èo¾~Ú}þòöóݧ¥ú, ô!?É º¹HcÄï|Ñž¦#Í]JSÝpSª–.òýàÎ¥+…•K×Ìm5ÝSw[¿,¸Žož‘ÅNžCrǤinWƒàÚLîÒ–ážR’hû.“¾3X¦ÄÏäù'ðêGÖØnfñ{óþöÓü’/øøA®ÒÑëÿý"xüû+²¯"ý«:»+ºéC;NÌ„:~õK_oêÈÍWyz1¥x‚Αû)®o¿ìîïö»7ïïþÔO™ÿsñeû‡O™—>eZ;Ÿ¢‘Ý ²œ%ë‹Ê¼û÷-Ìué÷oz™¿^ÿSïÑ*2ø©ôïöìšýAô ôñe1§»”OÓ·ÁÅ6T‡@€ š¾±¡¡¡»’ƒY³f=Ìz˜õØÑcG’`"À„Ãçg.Çq\*´ð±DAZH”åX¢ÀcÉ-$~!™±Âø@7Ðwîût tÆÏê6ý˜©]ñ2+Ü<+˜§;²*µÌ8Á«üÒùå9|éþçsöÃ*òÿLUô“ÓüÉÿü¾ãî¿"$i(TY€ I\HÆœ•Tk3‰êdHP ‚"$¸ Y,H^)°ÞMì\Py„:#$/! N(BYvN¤…$KêÏr‡’±>úýŒ?øÌïgŒËáýv]×ó«Eâ?žáëýŽßÏõçÁæ$"¬ø…$,$8µäÅRšI¡>Ð,ÉL"ýKÞu XhN‚&'h„‚Ö(謂N/èô‚N/èô‚N/èô‚¾.èô‚/hð‚/hð‚f)h–°sÀÎ;ì°sè1d„Å-$~&‹ËLBÈÛIGh. ‡={L©L§ßÒ9ê)•[®ë)Nóûv§ù±ó㾬ñýTå ŸWù¥ŸŸžÃ}d”Ó-W8ŸáoÇñFO"Æ“ˆñ$b<‰O"Æ“ˆñ$b4"Fkbt$F§e´wF{g´wF{g´nF{gtuF3gtlFÇftlFÇftlFÇftlFÇ>Ĺ7Ži&!šK¸tI§‡™düõHRæ¬Òuà|t3 1ÍuÊA)9ßsét.NäB«Mä"u~:Ã÷«|ŸåYüÜùî _Îð·Ðf¨÷­Þéû4Àx!LÂ0!ŒÂT¡ñ‡Ç@}pa>æa>æa>Pÿ‰ó0ó0ó0ó0ó0ó0ó0ó0ó0ó0óá@’’2—ô!À²”¹$ÂÃÈ ‰,$n!ñs Ãgvs *’zÇ´tÇÊ\’h!á…D·ø…$Ì%܃é’0—¤ÒBÒMà8hÀ„LhÀ„LhÀÔðÍÿåmNñ endstream endobj 1094 0 obj<>stream xÚœXÛnGý•þo×¥o²„•D!¶„~ŠÅë@0kD–þ>u™³àÝíÉ ÷ÔéS]§z§{R 1¤2ëÿ«‚ ¡‚0e%YL Ô FùK €Š²CF‘‰«p(d#)É¡zL ÕY54Ÿ§…–u„b€uˆ@P&ED[ ÊI‘æ­ê‘$qÌÆÈŒQecÔ Æh‚²2X4<}d,9*ƒE#›‹FcˆFIÆj,Õ4X4ši°h´¢ŒF[lAE *#‘ ªŒÄ‘‘5­·T‰Q2ª‚Šq›øƒÊÍQR†, sVÓ¤ˆX@+)ËÂ’Ô- Á-N4ªÍ,ÁXÍo)6Ö4gY–R5JT5?Y¡­H¬#´É?DæLaA6KI‚l–’ƒ,C³*ÒJb²¢*ˆ-N4²9]E#'O„ȳ—†!ϾŠF5·ªhTsKJG -N4Z¶8ÑhMs©Ú¯æV•†Õ?Sl1°÷PAIÛY–Ͼ¶FÑœYgnIuiË ´~²,Y!Ñàf3‹F’VIÒ·³´… ÑȺS@Í ‰Fñ1Ѩ>&ÕÇD£ù˜h4«¾E5/]Ðgcš.ÈØ“'«Ë[fùïùë¿C•5ÆðbuóíÓfõüâçç¯V×¾‰uüåêêýöÃêú/i18?7~ª3?à—cüg~>ÀÏGù8óy9ÿ©ìöˆöüòÖ6‰ÏÌ\_Q¨¤IÙhšè÷õ—O»ÝæëîØlÖFN ©ýŸl»Ù¯î iÿ5\g»”^Ú·ðÝæó¿÷Ÿe(nÒeˆJ€Ô nîî6Û÷Ûwë»Gs¥‰NK iè´¼FN+§iRå)ö·/Û»÷÷۶뛟‚“ÓPpö` .Ìu(¸zp nœ‚÷-s«©-µÚ½–wá@õÁf\œ{L<¤â&ÓXuÁ]¦²8'wÛPNî8õ¸å´¼Nn?Õ Ýr«ºÑ¸¸Nè¦ÃPÐƱ:¡;‹ë„n:,þ…rÏ!­Å=‡º8;·_ÞÌ ³s÷G²#wxiväãÒŸitUd-¡ç¨1v¿eKM”\¬“®.îß~;öZ¶s©¿{äTé'l{-G?cÆáW4YÏÄ”‡úŸÚ’h†ýè¯ÿïÏÕ/vj‰~-0<] ³_ çñ³ˆ§>wщ71,Š¦EÑi?úPYš$Gom».fo’LÃ5Êè™æ·8ï:»Ç•è¸úÍKq‰~÷2Œ~û2Ì~ÿ2œýf¸Ž'<•rì’Ë¢è¶$ºÀ¢hÚ~´Ð–ÆÂÊ@Øžm•ýrk÷‹ñ=T=Ÿ2xØË•º^ñ‹³üå·¢Z´²Uª‹…šßÆ„ÚQ¡æ;«Æ¥B üŠ? µx\È·VÅÅBÓwƒ‡åãBìQƒ7Žxí_"¦™ŸõëõdÔ\Èy¡s"?4ÏÕ<ñdÞ£?”üàc<ú8§ùqßO¿”2Kß‘ù2"‹1­õ×½} ›çé¦ÜüÒK7XæÈ|¤˜ú¥¯êfþ–¡bœ¡ì€:àR¹ƒÒAí`2M?¿L)äïRèÛëF;ÉWxk†,äò!˽Zܬ_ßm,úúnýfóq³Ý­.îîß|X=_]­¿ÝÙ­~ݾ}¶}+ô³çÊ!ãånýy7!ijœW÷_oëÇØ3’Ó1—zÖ¤÷KngÔøÕü:NÝôXåR/FêÅð#ÒáZs/MêEOp‚Ñ-ànŸð“ºw >¡A}jê ¢|œ]ƒºÐÀ®]Oh@×À®'4 O Ý8áô–‡Þò@‡Oå2é]nmÊswL>íÄÿ¼¡ªB endstream endobj 1095 0 obj<>stream xÚ”XÛn7ýþÈ^ @Ú ha5’<Õðƒ‚ MWR§—¿ï™¡DîÚÁ}Ò@{†g.g¸äçÈXœcãI~½É^~ƒqňƥ,F2D ͆¢b‹a'`üÍAÀä ïLX·˜ô &dGIÁÉĤàl)¸˜”ÌÖd'`v&3™bÌlJ0{ã¬U4‚¶^áˆÚfÅ'ãdXVVb˜x FЋ‡wH؉êñðlð¿x rçƒz€ÃõG`õG(ꎨ…ôàˆE<8’Ö2€#i18BŽœÄË»BꎢQ¡ªd5ª€ò[ e gÕ£ÀÒ¨ð€œV5:´IËŠi]#¤«ÿyX9‰ ù¤8‚9‚#hÌQz¬ ŒàˆÚS,E %ŽlXàÈZñŽ¢]@㨠}XÁ°µÂdØj·@ÉÎÉÊ(Kª° $R%e(‰4Ë )±“UÐ2æ(¸Ì†½Ve¯¹epR8BR8¢öà˜ŽÄ‚C£8eÁpd%$ÊY;XÀQ£G!¸Åãm’ÌÑxï4ª’`©"QOše)°d õl‹X–T’Ð2ÏI-–épbyX¬8¼Œºl|¬OÁYÿGDaCu ŸdšÈ#÷իݨ`kÞí®L°HDÌ™V«æû݇·¯_?CÊà_Fb€¸­lGò ùÛáþþpü|ü´¿|au‹©9ûØ2ŠCÆw)ûÐeä*bÌg‹8ÍFL}õ<Œƒx9ZsqïöÔ‹¯}zd'³ä®›Æ±çid ×»qœÍ²«Âl– MÅaìÌÓH Ws¯Ïö’{ yº—‹ØÃ8öá<ÛKî*çé^öþ[?ÜIØM"ÝrÖý8ËŽôn.b9´ÕyGšFÆr1õ ÷a²/‹Y÷~Ö§Çî'ß rtiYÐ0ßÀÓH ×÷†Ù¹¤®ò`g}z–¾ }B÷Yh×½ÅIÓH¾Œ¼=#ë©Æ]õYLÛ“SÁ¯»û÷‡Ý÷ï¿î†wïþQËÙK¡~jhÙò|¿\!i„äSW¯n}¨G[‰“l=·à¾qg×'?ï¿}|<üû¸»ùÃÔŒtµ+œ¤4µxʧ÷¿¾=­Hùtv"9Mž¤‡³ Ø¥Ú<瀟ÀÕƒºÀBz²Ã<)UÒsqú~üòøùáø×qÿçá9wÌ'-ߞ›zR­+\ÿððûÏx\¥É[i¨^1:MÒ°Ò$»•Æ×[K§ÉCšPih+M¬¡NS†4©Òø­4¹Þ­M;Ä¿LS*Íf Ô›ÛBÎ5PE6‹@¯Ýy¡Gc¢*ƒ¼YõÞ¹ÐA›  DUy³ôŠJp~LT¥7KA¿ä¥˜¨Š!o.Öh¼!PCÞ¾#P½­w¢ñ–@U e³ôãBYn ãQC™CßÆ)Öï ²uëךúª3l§·qªú(3úº¬Ñß4§W>öÕX+0š»7òqð|Äð¾:رC+^^³¹êW–Ó©€Úéåú—óã3éj¹ë3¿àLCgêÎá‰óíù%Ø^SíEÒ¶ú¶·Ý²ífm·i»A›Ö6MMíMw—"ùr¤ýyñ1ûñã8~|!´ÿA• endstream endobj 1096 0 obj<>stream xÚœXÛnG ý•ùVsáÜ€À€ ´h` ê}0òàÆkG¨#²\4ßCrµ+[öxW/WCòpÈ3®¢wÞX½ &8þ&“<GS'ã<±‹‘…b\I,Tã3 Þ–—¼3!²²÷†»ñÁP-,À¯­,D“(³L*b•MŒå‹ÉY¬ª)ž=kŠ€"¶êØ^kb‡°pÖsÈ ÞDˆÆ95DØN¼Äíekû*zÕ¸X,¤ÊzäŒ#b=òØ©e=F$ÑF²¢ŒEÙ‰0r=NŽä‚*§‰õ"0ªg=˜¹šX/zã­g½ eÑ#ƒ2ˆ^„$©…SÏÛ‚”!Ñ+{=T H-’5ˆ–HÄ먣ל'`$±HÀH‚–€‘-gy-@Ê\Q. Rì³ä%C‹§¾D.øR¸ (—×Âd`ÔÈU"ÍÑë› –DÊ ‹p#HK®&xÉ$Ê”Tp‚0¯xH‹’’d²$ý-2ç8z$"D‰ª#ÉŽð’ÄR€‘%» @È…W+0Šð £ÞXªDZQ%ø Kì¹&Cβ¿š! ÙÁoÅy©JèCsýCBÉ áPs,áTç91qö #27‚Fb8¥”Ä©Š?`dÏFYÐà”2¶õáÃâÜD‡$Zóçâ"‚W/ONv˾½LíåÔ^.Íåúvh§8‰VC;¿’^á û38ŽQå¨ýFäüŽœCúÔÑo×OÛm÷ßvñé’Ý{t¥×üu½ùÞݪ¥ jÏâäæ`­`˜ Ö’Æf'ÆöÌÝêtŽñ´ÕJÚlYìÛ­¸µÚqEö çT¦ÉÉ$I’í\¦)ZWEÛ>~ø2É«sÔNõ ‘Œ˜ª©7¸|zè6_7ˇ—ûcqqýcý´]œ]?v÷ËUwùmy»5ñ0É–Ó¦ô3Š¤´åM‰)Óo~4ªŠKc2J*¡Rúd 1·É7ðÎqãˆVRû´úg»\¯W×ß»&× w m  @q6é->Q(*Pž Ô#Pleª³ŠÎ#Pj)›ÉÍ’‹öÉ›@AÉ@³É 7;í“¡´” 4› tÜjHÉ@³É óAÜ#C¶m %Í&C(:Ž@® ¤dˆ³É ³ãr»3’!Î&ƒŒQq ¹ÝHÉg“Hçâ‘ í‘’!N$Ã؉c™>rôÞ?éPþ|ºÚµã¡]ílh7C;Žëpœºtè2”sH÷ŽwÕÅißó_tìÔo.çörm.÷½ìÍåvhÔÚ¡Q;´Ø-¶C‹ïdmtžåÝpðJÁžÏ{ý+—Y:bV~ iQ­½\šC vã¼»…¾u›×›Cµ8Aíùdk9žÝØ91Ìq!ì†&ËÁ^[oè;Õ/ïèC™W}×ÔßëaêöÛ”¾¯r’¾°²(åÁK\m@ƒ’òBov¬}å<]y?@–ƒËï$aœdƒÄ©Ys49m{Fñ£tŒQ>ƨcT0òö#wŒ‘?Æ(L?×ÎíŒH)DïÔÑ ªŸÊ9 ü &ôçFòbÇÑL m †C´Ú<¹U¹©ý_þ†ê¯%þÏéåµ´}}Žv¸ùÏ©Cãú–ñåÃõ×îôvÛmLúÙ.>#¶ÓûåÝjq¹½ÞlÇWó¿6Ëíru÷ûú¦[\l>ÿ­†gÝízÓÛ[~\Ýt«­ùÉüðËê¦æeq×? œü/Àg:A„ endstream endobj 1097 0 obj<>stream xÚ¬—[k\G Ç¿Ê|vgt™ „€S 5NIH }0ypëk0vX6¥ùö•fö¿¶³ÞÓsL^líé'¤¹)' 1('œü¿„ÒÿkH‘\È!1»PBÊ]¨!5q¡b(ÊêB ÜÜœ(¹9™E,.¸buÁss!‡Ý7•»sª!çnÕBnî‹c(â_l¼fç0…f1™À¡u§BŠÉñlA§Ø%‹:‡³…M¹K75÷ÌÍæÔm%†$É=I2i|£t|c“²G&æ#G·ó‘Ç7óQ¨[˜Òs#棦þÍ|Ô챨ùh§æ£e^)PìzÊ&eOŒŠI=>Õ@ªKÙ¤½–@ÔÓ¥Õ¤ž/µPO˜©Ø'ÿf¡÷”Ùqq¿IÏ‹DÒkfS%©ÝÂ|(y–`Òâ~- ÊìÞ¬TTÔy–NªÑyÖ!TÕG‹ù¨ÍëbŽ¨‰“‹ùh½ ŠŽ½è%›T}¾¥X£qçU“º7ûcãä{bMJÖA=Òê½TœR9÷¶ªbRϤAE’ÇR³IÚ-ŠI­[Ô`ŸºE3©ºE‹AÆÜ,HÉÅ-šù(É-¬í¤ôœZKÝÂ|Œù6ó1æk¤‰ÏÒ™3Ÿ›/zÝÄ =÷MÅZÑ%ƒ&ïñ$RT—Ì9I·°ŸÔºEmkR‰0ÉBê®ìë§Oº÷©xáÕäÕ«Õ™Y˜ó>¬ÞeíâÇÕÛÓׯ}ø¢/qû惾ô?|2Å”‡žÓŽclØR»ÎþŒágÙV¡½q}&ĆËdˆUŽb>~¹ük}òy»Þغþ9®Î×ÿnOno®ïV·—›íêÝêíå·û¯ÛÕ››íÍÝõï÷WëÕÛÍùŸÃòÍúóýfòÎòôîj}· ?‘Ú‡_ï®v¿£ýê¸Ýo~ŽöÁΑx7GB=H!dB…¦â›âQŸcóœN“ÃÔ¦†mo˜>?;½; \‡Î¾§ÞÜ_}[½¿¶ û—ï‹_\Ûø]mS¬­?mÑêD´O ò0Ù: xÒ qI=»°ÌIk£»È÷¦6̈&cú®…~»üúe»µlL’Ù 4ÈúBê±õ©YB]Nƒ¶;ª»<7¶3;{n½ò÷zóÏýf2ŸBÛKZ2…±™ÏØ]fšYŽfûÈ•w64|Äiú<ôÓ\}éúZçÎA_Pê<®Hžè:» c5‰Î­gh/Èn%Ô27]i´™êìšÓü„Ñ~¡*êÜ…X榵_=±ûªníʧµße÷Æùð$SœR#AG'©Ç1㶽n‡^ÆjØ·ù¾»KÇyãš?5Ìs··¬ÿg\ŸŒëóÃfñXc}}yëÕiO*Zâó{ÅùÍöv}¨¾o€©.;b³L¯ò£Î×8}sÚ®‚Á–'§å>áéH¨Ó2u^¦.ËÔu™z^¦^–©×Yê¥aªþ‚©8¸Îßýrúã.lý‚6»£"®âý 5¶Œq'OÉ€ÛwÅí»âö]±¯Uܾ+Þ% ›Q¹Ü@n 7È ärÛ‘%F A`A!dB…r9œ@N ãm( är9ŒWšÈ2ŒWŽà•#xå^9‚WŽà•#2ƒÌ 3È 2ƒÌ 3È 2ƒÌ Ȳ€, Ȳ€, Ȳ‚¬ +È ²‚¬ +È8MEAVq Ž@É g3Èä r9ƒœA.  ÈärA?—ç`[ó‡Ûƒj‰ÛÉ='vW×ÍmR÷ 7×ܲ€›pu®,Ðåéx¥>Ò¥ÿӥݴ@7Î×Õ6?^­ ¸e®nÒC­~~|j= #/CèÊ‚Tðî‚2ë‚2ë‚2K[ » ÌRè.¨›,¨›Èü-BxþRZ {´nÿ 0¶§ endstream endobj 1098 0 obj<>stream xÚÌXËŽT7ýAÚUv•m) ¢,Dƒ`¤,¢, 4h’h@£Žþ>UÕs/(pL{—YLû¶ëuêqì¾R‰SNR©¤Zý³¦ÞýSö…&jê‹–˜C´'Ö©d¶¯‹¸0S*Ã…™Íœ ³Ùí.ÌöCX’´Ö¤Â-©†pO-‡ðH­ºpÉ© .”zqa ªw.% 7ZKMCCØbÎÒt–o‰(‡|·U`,ÃVÒB$˜•l8+;rרÅVÔÔ¨Ôj>j`­æ£Øj>$ÐZÌ$·š ¼b>4‹ùhØ XR]CÌGÌb>z€óѵA °Å|ŒÀ-–þÀeØ*›)¦@®d«@®ìõr -¶ ä†9«$.\ÕV\­Â5›Q®\͇òf>$7ó!Ü`Y+¸F3È›ùh¼™ÈÍ<÷@ÞÌGoÃWæcÔØõ>ÊÖÕ–3¢nDVt[±­†[î%•bm(ÞQÅa+±Ön¯k*-bé-•n mÕSÍ‘Ý>’õ¶û9Y£y,ƒ¬IÙíY²-×noX¿¶ìöÌ¥Yw{CRÃcqÐ籦ÆÍ}Œ~[™šýÙ?O»º°dSëÖ„¶2µá’KÒ¬ñ]MÊÖ¿¶’d‰$_ÙXD,’m.Z {=ioaÏ&#{„l4Ès D©±Þ÷ß‘Ó‹ÃSÛ±tøòy’ÒÏË—‡›ëž\]m²¼ËÚT\.ÛdÛ·d?Å[tÁ®,ÈÖ…Ê‚]^¥Ù…ºñBÝx¡n¼P7^¨/Ôë‚ìBÝx¡n¼P7^¨-ÔêFmAV/¯1-ÔêFe!†oÔ­´ñIv^7;Ë>³›/!Ù…ºå…ºå…yË uË uË ó–ùòZdZÈïåuóÓùrÙËëæ7ËeuAVd붲`—di!†…ºõ…ºõ¾ »P·¾P‹^dËÅ|æ7âKg¨ö|¹l ²ýòx[[°«—ÊÚhÎòûô×*öqýú´]~o>~8®ÿôâêê7×ò(g­g·wž¿Kñ¼©×Mýç¿T/3õ²«w Î3u~PߺóKuš©Ó®®@=ÏÔóƒº ]]TùáÕïÇGoOÇû”¿Ë‡›ã?§Gݾ»;¼<½º?®Ï^}|ÿ÷éðËýíéöîÝÏïßÏîo^Ÿß¾¿?îšOîÞïNñøãݛϞÂØÃ3Û‘—±§½ü7òmçá÷µ;*òÐ'i,}7\aÿiŒv…™QQÚ,˜¶aáŽPÄO8›£ÿ£¡Ï:D·Èû@˜¦žÊƒ9U™EöC—á,Jœ£3Æ+㵜á&x‡`ïfÆŸeãOí¨][¸ƒ²©¹Îظll¼½øšK¼ƒ†_·ëŒÛËÆíÒ aÁ;(gÛ+Œ/ƒ™e;)ª ”· 3SQ˜Ò«È˜ÃcO¬À”CŠƒÓT4°ÌÈŸ7òo 9wFÆ*fFþ¼‘¿¿¢(+œ³ çŒÁíBtÌÆÀ­@΀ÝäïçÑh`™10ï ¬ˆÚ´&¤Ãîœ2c`ÞX ìŒ;£Á>kà8ó§,tÉxžg MÓŒygàŒúÆ™Lûø<À¼oe¸›]œeƦœw2†“¡°Ê ïuð*©´iñ,0gà™·8ô"à ¬3¦¾ß@à}ƒ·äÆ‚FÙœq3ís˜MÍðÔ‚×p‡P˜3Ö&Ý KÛ`˜ Þ 8é댵igí‚ozxŽr©3Ö¦ýMuØÀxvS‡k±6í÷æŠffƳ´¿wPpfTÀ³ÿ 0ÚÔ¥˜ endstream endobj 1099 0 obj<>stream xÚÌZÝnœ7}=AG$EýEØEÛ¤› °†/ÜÍ4uëØw²hß~)ÍPv9Š={³7 g$Q䑾ϣJbP% ”¨)pånhH<Œ4£„‡QCMÃh¡ÉјÍˆÇtûHiÌg×áÀ)PÞ{h jfå@-§n•Àµ[50§Ü­Xj1Kbà>`ιu‹-õˆnÚW )Hl=†h–Cr)=†” }mfÕ Y{ iAJë1R Ҥǰd¤Xz #žh°Ob)üR2+y–¦Ǽ’jç’JH¹u.©†Teø¶Zé\ú¢Î¥ÓeíxjS¤u.*{’fÙ”\zŒ>¥RÑé¶Üch ™b¡5dü´…,µؔܓm…œsa›’kì1²„ÜFv-í%Ææ”X:rΡÐàœmé ” \YÚ‹P÷°ÉEj÷(J ‡Rk÷°¥–&ÝÃÒ^iTDÑPs£Ù¬±òRB-#¶ÔZrgoi¯•z ¾Ö±o•Bm2,6kÄ°¥¶¸ÿ.™µÿNC£ýwÙ¬Ú™Zù4NÙ>6;]­teÔK‹¡¥‘Û2KËøŽC…¯ÍbôD˜e1ò¨ñf1rßYŒ2re ­Œ:mcß­·GÏ_Žcd<Û–µfS̲þˆ±ïwŽÖ ‘:bOE±ùfZ‹ÄÄc‚õHìÕdf13ÇaÖnÊ0[7-ý¶áÖ‹q4j&ê¦ñûöÛÍ‹3"ûïÕÏ¿YÁfkú7›w~Ún^=ÿñÍwßF²µ±j:>’,;FÎ7¯ƒõH߿ݼ¼¼þ}óúCÃÏÈD†d4¢‘’#"cýx”Œõ8&ÓÜ[Ñ"‹È…QÊ —ºàR}õŒVŸ´Â‘Gp) .ÅרŠVK î^×þã\ò‚Köˆæ;64’a%}¹ã.ºà¢sïa»ÄÅwÿ—H€KZpIžÕ‚ò¢p÷º¦¡Œ¡z‘™Þ æVEÂûŠò .<A‚=ÐH?'s¡•ØM©$(¢P^ú$T»+áºÛ` Ü †õ^óq.¼ÒÝäb—"–ŠÈÁ‘™‡ÂK÷É” OBÕ+ù7@¦¬È¸Üõ[&–s†}PfòŠŒë@½HiŒ4˜ÔK¬+2.x 7ƒ MjH 8‚[ §W<‚'/1a‚dm“¬Èðt‡™ÑC¢ $AÌ+2®y 3Ãð²É3#¨fhEÆEá!ÃðdxõãT™¸ #mºg ן"LmE¦ÎUÂÊH¨›8Ãœ)8²i¥ÀR&0¬ x“c…™) ›h¥À’§šxÎÀÌ8¢ ›h¥Àâ Ì CÑ÷¤»‹‚n¢•ËT`(ú~•?vƒ¢¢šY)°È0ÔÚT ŽÀƒ‚AkÓJe*0Á΀·†ÛÄŒ2³R`™ ÌàžH+Í”©™ h¥rÜæ‘n†q¥K\çe I¡À;#ÁÇxRPðq¥KìºD¸á#¼r)þºWºÄy®Eà‰¯83 Ȭt‰§.Áwœð6AÝWºÄiÖL‚ŠµêRÝWºÄófÏ2‚oŽ¨ÁG½WºÄ<^S Ú ‚—ʨ€WºÄ4Cb`X¦ðÊAè 4®TŽãLy„!!Mx›¤‚ºi¥™45³Á[=Žøü;~å¶R`ª“ ¬ø àã05dV Lw CÂû5xµY)0M†/ù¨Âõ(à/m¥À”&0Ü&Å5ƒë,2+Ñ£;уO žMg“™•èѽ†SÕ?›EdV¢7ÿöB¯ßa5UDf%zóo/„ÏæŒ[jsA­½½©y &?Ùä/Çm©+Í›’W2ð^‰ÔÔ(ð’Í${OQÏdRW2 ÓD]¾S›O=नËG°é²¶¼›Læ É벯¦7Š álü,ÁÌý/¹ÆþåÉþ7£¸‘ÝP7’ŽLŽLŽLŽ9:rtäèÈÑ‘£#GGŽŽ9SknT7ŠÙ u#¹!n°ä†#WG®Ž\¹:`uÀê€ÕqªãÇ)ŽSgßy!µŽž„ýêÜvüYÄÙ7Ù‹ªm4Ñ|0ÿþâó§ÝnûÇîÞ_ÎÆO0žf®NG :e­žf_úútòªŽìÉPOzÂÔS¨žTõ4«'^}+Ô7G}»Ô7P}KÕ79ï·ýülü¼â°–=|v·ì@Ù¡³{eŸPvŠÙIgGVGVGÖ²Löê!t~ã!ÔC¨‡P¡"yˆä!’“OŽœ99rrääÈÉ‘“#‹#‹#‹#‹#‹#‹#‹#‹#‹#‹#³#³#³#³#³#ï_Ëx=®ï/B\”óô=ÚÅöUŽ{ÑI^üh¯3=üàÜܤ«ñ¡ÁÌí‡ë«ËëíÛ_/L®¿ 7~û2ÂÍîLç üîrw|Óª>Ù#?Ù£<Ù£>Îã^ÊÛiÛû„ª?A:¸=(‹7Ûÿ\þûòæú+^üh¯ûå´•¥ÓÜôI ™nŠâÙçÝÍíW"•ÓÖÓÜN«>M5øDÙè¢y¾ŒùÇÍíÇ‹«¯øÈ >éQ>]XàYú AmmÏoþno?]ükûì—ÝöÖ*þ›8Æž]]~¸Þ¼Ý]Üî6¯6//þ¼ù¼Ûüóörwyý᧛÷ÛÍËÛw?ï=Ÿo¹¹ÝÚ>\¸~¿½Þ…hÿvýþÞ§v÷ùalÖ“cÇÿ1t<9ò$ýÿšû֎௯ ã£}w8¯îÂ=·Š8Kd®Á”Âþµ;I·[ú&žï+Ìêéðû/åôòn´|9ú÷Û‹Û»ºô—å(ý¯riT endstream endobj 1100 0 obj<>stream xÚŒ’ÛJ1†_eÞ ™C2({¥´ˆ¨/PÑ;¥"êÛ›IݦºkØ«üË|ûÍäˆ ¸®©®r] % ˜ÈƒfóXJ ¤‰ÃDÀâ0­ª)=Jˆ ’=$«•:VO±JôPêêL)¡3ŒÄ&Hê 3h¨Œ€Je"¨V&…Ê(WÆÀêå+ƒår±9õ p¿¸Ä2›Ç‡ÅvµªÚ­ÆnUÆÕÇ—ãa½?6†g04ƒÁLè3W€†^õjóôc3ýan÷o»×±’fhâ³9½¡3#Ã%Üœ¨ç2 ŠízÿüÕÖ<¨Å&ÐI_ì„ú‚<-¸Ø&vŒÓi‚Ðð´ bÈãC¤¶C⟛ ã¸Þ}¾åºZ›Ü(íÏi¿Û| 0å‚ endstream endobj 1101 0 obj<> endobj 1102 0 obj<> endobj 1103 0 obj<> endobj 1104 0 obj<> endobj 1105 0 obj<> endobj 1106 0 obj<> endobj 1107 0 obj<> endobj 1108 0 obj<> endobj 1109 0 obj<> endobj 1110 0 obj<>stream Acrobat Distiller 7.0.5 (Windows) Acrobat PDFMaker 7.0.5 for Word 2006-07-13T11:04:17-05:00 2006-07-13T10:55:23-05:00 2006-07-13T11:04:17-05:00 application/pdf Intel ® MPI Benchmarks Intel Users Guide and Methodolgy Description uuid:f7798f57-e259-4664-8757-0e37d31d1410 uuid:6ef42105-9a73-41f3-bfa9-74c79c2adc88 Intel D:20060713155222 endstream endobj 1111 0 obj<> endobj xref 0 5640 0000000000 65535 f 0000021640 00000 n 0000021922 00000 n 0000023178 00000 n 0000026686 00000 n 0000026983 00000 n 0000028311 00000 n 0000031814 00000 n 0000032073 00000 n 0000035262 00000 n 0000035522 00000 n 0000036266 00000 n 0000036580 00000 n 0000036653 00000 n 0000039672 00000 n 0000039998 00000 n 0000040031 00000 n 0000042594 00000 n 0000042907 00000 n 0000042972 00000 n 0000045352 00000 n 0000045665 00000 n 0000045714 00000 n 0000047853 00000 n 0000048179 00000 n 0000048228 00000 n 0000052121 00000 n 0000052449 00000 n 0000052498 00000 n 0000056430 00000 n 0000056783 00000 n 0000056808 00000 n 0000070465 00000 n 0000070817 00000 n 0000084180 00000 n 0000084506 00000 n 0000100147 00000 n 0000100486 00000 n 0000113597 00000 n 0000113883 00000 n 0000116698 00000 n 0000116971 00000 n 0000119316 00000 n 0000119615 00000 n 0000123664 00000 n 0000123977 00000 n 0000124002 00000 n 0000126887 00000 n 0000127198 00000 n 0000130960 00000 n 0000131299 00000 n 0000134084 00000 n 0000134411 00000 n 0000138634 00000 n 0000138960 00000 n 0000163269 00000 n 0000163595 00000 n 0000177427 00000 n 0000177753 00000 n 0000191449 00000 n 0000191775 00000 n 0000206184 00000 n 0000206510 00000 n 0000218279 00000 n 0000218618 00000 n 0000241280 00000 n 0000241620 00000 n 0000241645 00000 n 0000243918 00000 n 0000244258 00000 n 0000244283 00000 n 0000246537 00000 n 0000246877 00000 n 0000246902 00000 n 0000249428 00000 n 0000249768 00000 n 0000249793 00000 n 0000252281 00000 n 0000252621 00000 n 0000252646 00000 n 0000255315 00000 n 0000255641 00000 n 0000258520 00000 n 0000258807 00000 n 0000258832 00000 n 0000260806 00000 n 0000261132 00000 n 0000273652 00000 n 0000273951 00000 n 0000276804 00000 n 0000277145 00000 n 0000277170 00000 n 0000280727 00000 n 0000281039 00000 n 0000283804 00000 n 0000284129 00000 n 0000286890 00000 n 0000287188 00000 n 0000289209 00000 n 0000289495 00000 n 0000293114 00000 n 0000293443 00000 n 0000293477 00000 n 0000296428 00000 n 0000296744 00000 n 0000296770 00000 n 0000299402 00000 n 0000299718 00000 n 0000299744 00000 n 0000302576 00000 n 0000302864 00000 n 0000304942 00000 n 0000305243 00000 n 0000307240 00000 n 0000307541 00000 n 0000308803 00000 n 0000309103 00000 n 0000310932 00000 n 0000311207 00000 n 0000313094 00000 n 0000313369 00000 n 0000315206 00000 n 0000315481 00000 n 0000316775 00000 n 0000317100 00000 n 0000320177 00000 n 0000320424 00000 n 0000320572 00000 n 0000320725 00000 n 0000320875 00000 n 0000321025 00000 n 0000321175 00000 n 0000321325 00000 n 0000321475 00000 n 0000321623 00000 n 0000321676 00000 n 0000321826 00000 n 0000321974 00000 n 0000322126 00000 n 0000322179 00000 n 0000322330 00000 n 0000322383 00000 n 0000322535 00000 n 0000322686 00000 n 0000322837 00000 n 0000322989 00000 n 0000323141 00000 n 0000323292 00000 n 0000323442 00000 n 0000323594 00000 n 0000323745 00000 n 0000323897 00000 n 0000324049 00000 n 0000324199 00000 n 0000324350 00000 n 0000324501 00000 n 0000324651 00000 n 0000324801 00000 n 0000324954 00000 n 0000325105 00000 n 0000325258 00000 n 0000325408 00000 n 0000325560 00000 n 0000325712 00000 n 0000325864 00000 n 0000326016 00000 n 0000326166 00000 n 0000326316 00000 n 0000326468 00000 n 0000326620 00000 n 0000326772 00000 n 0000326923 00000 n 0000327074 00000 n 0000327224 00000 n 0000327375 00000 n 0000327525 00000 n 0000327675 00000 n 0000327825 00000 n 0000327977 00000 n 0000328129 00000 n 0000328279 00000 n 0000328431 00000 n 0000328583 00000 n 0000328733 00000 n 0000328883 00000 n 0000329034 00000 n 0000329186 00000 n 0000329336 00000 n 0000329488 00000 n 0000329640 00000 n 0000329790 00000 n 0000329942 00000 n 0000330094 00000 n 0000330245 00000 n 0000330396 00000 n 0000330549 00000 n 0000330699 00000 n 0000330850 00000 n 0000331002 00000 n 0000331154 00000 n 0000331305 00000 n 0000331455 00000 n 0000331607 00000 n 0000331759 00000 n 0000331909 00000 n 0000332059 00000 n 0000332210 00000 n 0000332361 00000 n 0000332512 00000 n 0000332664 00000 n 0000332815 00000 n 0000332966 00000 n 0000333118 00000 n 0000333270 00000 n 0000333422 00000 n 0000333572 00000 n 0000333723 00000 n 0000333875 00000 n 0000333928 00000 n 0000334080 00000 n 0000334133 00000 n 0000334284 00000 n 0000334434 00000 n 0000334586 00000 n 0000334737 00000 n 0000334888 00000 n 0000335040 00000 n 0000335193 00000 n 0000335246 00000 n 0000335299 00000 n 0000335352 00000 n 0000335405 00000 n 0000335558 00000 n 0000335611 00000 n 0000335763 00000 n 0000335816 00000 n 0000335967 00000 n 0000336020 00000 n 0000336172 00000 n 0000336322 00000 n 0000336475 00000 n 0000336627 00000 n 0000336779 00000 n 0000336932 00000 n 0000337085 00000 n 0000337238 00000 n 0000337291 00000 n 0000337442 00000 n 0000337593 00000 n 0000337744 00000 n 0000337797 00000 n 0000337949 00000 n 0000338100 00000 n 0000338153 00000 n 0000338206 00000 n 0000338259 00000 n 0000338412 00000 n 0000338465 00000 n 0000338618 00000 n 0000338770 00000 n 0000338921 00000 n 0000338974 00000 n 0000339127 00000 n 0000339180 00000 n 0000339233 00000 n 0000339286 00000 n 0000339437 00000 n 0000339590 00000 n 0000339643 00000 n 0000339795 00000 n 0000339848 00000 n 0000339999 00000 n 0000340052 00000 n 0000340105 00000 n 0000340158 00000 n 0000340311 00000 n 0000340364 00000 n 0000340417 00000 n 0000340470 00000 n 0000340523 00000 n 0000340576 00000 n 0000340629 00000 n 0000340682 00000 n 0000340735 00000 n 0000340788 00000 n 0000340841 00000 n 0000340894 00000 n 0000340947 00000 n 0000341100 00000 n 0000341253 00000 n 0000341306 00000 n 0000341359 00000 n 0000341412 00000 n 0000341465 00000 n 0000341518 00000 n 0000341571 00000 n 0000341624 00000 n 0000341677 00000 n 0000341730 00000 n 0000341783 00000 n 0000341836 00000 n 0000341889 00000 n 0000342041 00000 n 0000342094 00000 n 0000342147 00000 n 0000342200 00000 n 0000342253 00000 n 0000342306 00000 n 0000342359 00000 n 0000342412 00000 n 0000342465 00000 n 0000342618 00000 n 0000342671 00000 n 0000342824 00000 n 0000342976 00000 n 0000343128 00000 n 0000343181 00000 n 0000343234 00000 n 0000343287 00000 n 0000343340 00000 n 0000343393 00000 n 0000343774 00000 n 0000343827 00000 n 0000343880 00000 n 0000343933 00000 n 0000343986 00000 n 0000344136 00000 n 0000344189 00000 n 0000344242 00000 n 0000344295 00000 n 0000344446 00000 n 0000344597 00000 n 0000344650 00000 n 0000344703 00000 n 0000344756 00000 n 0000344906 00000 n 0000344959 00000 n 0000345012 00000 n 0000345065 00000 n 0000345118 00000 n 0000345271 00000 n 0000345422 00000 n 0000345475 00000 n 0000345528 00000 n 0000345581 00000 n 0000345734 00000 n 0000345885 00000 n 0000345938 00000 n 0000346090 00000 n 0000346143 00000 n 0000346196 00000 n 0000346249 00000 n 0000346302 00000 n 0000346453 00000 n 0000346506 00000 n 0000346559 00000 n 0000346612 00000 n 0000346855 00000 n 0000346908 00000 n 0000346961 00000 n 0000347014 00000 n 0000347067 00000 n 0000347120 00000 n 0000347173 00000 n 0000347226 00000 n 0000347279 00000 n 0000347430 00000 n 0000347483 00000 n 0000347536 00000 n 0000347589 00000 n 0000347642 00000 n 0000347794 00000 n 0000347944 00000 n 0000347997 00000 n 0000348050 00000 n 0000348103 00000 n 0000348156 00000 n 0000348209 00000 n 0000348262 00000 n 0000348315 00000 n 0000348368 00000 n 0000348421 00000 n 0000348572 00000 n 0000348725 00000 n 0000348778 00000 n 0000348831 00000 n 0000348884 00000 n 0000348937 00000 n 0000349089 00000 n 0000349242 00000 n 0000349295 00000 n 0000349446 00000 n 0000349499 00000 n 0000349552 00000 n 0000349605 00000 n 0000349758 00000 n 0000349811 00000 n 0000349864 00000 n 0000349917 00000 n 0000349970 00000 n 0000350023 00000 n 0000350076 00000 n 0000350230 00000 n 0000350283 00000 n 0000350336 00000 n 0000350389 00000 n 0000350542 00000 n 0000350595 00000 n 0000350648 00000 n 0000350701 00000 n 0000350754 00000 n 0000350904 00000 n 0000350957 00000 n 0000351010 00000 n 0000351063 00000 n 0000351116 00000 n 0000351169 00000 n 0000351322 00000 n 0000351375 00000 n 0000351527 00000 n 0000351580 00000 n 0000351633 00000 n 0000351686 00000 n 0000351739 00000 n 0000351792 00000 n 0000351845 00000 n 0000351898 00000 n 0000351951 00000 n 0000352004 00000 n 0000352057 00000 n 0000352110 00000 n 0000352163 00000 n 0000352216 00000 n 0000352269 00000 n 0000352322 00000 n 0000352375 00000 n 0000352526 00000 n 0000352678 00000 n 0000352731 00000 n 0000352882 00000 n 0000352936 00000 n 0000352990 00000 n 0000353142 00000 n 0000353293 00000 n 0000353446 00000 n 0000353597 00000 n 0000353748 00000 n 0000353900 00000 n 0000354053 00000 n 0000354206 00000 n 0000354260 00000 n 0000354314 00000 n 0000354466 00000 n 0000354617 00000 n 0000354768 00000 n 0000354921 00000 n 0000355072 00000 n 0000355224 00000 n 0000355377 00000 n 0000355530 00000 n 0000355583 00000 n 0000355636 00000 n 0000355789 00000 n 0000355842 00000 n 0000355895 00000 n 0000356048 00000 n 0000356101 00000 n 0000356154 00000 n 0000356305 00000 n 0000356456 00000 n 0000356509 00000 n 0000356562 00000 n 0000356615 00000 n 0000356668 00000 n 0000356721 00000 n 0000356774 00000 n 0000356927 00000 n 0000357078 00000 n 0000357131 00000 n 0000357184 00000 n 0000357237 00000 n 0000357290 00000 n 0000357343 00000 n 0000357396 00000 n 0000357449 00000 n 0000357502 00000 n 0000357555 00000 n 0000357707 00000 n 0000357859 00000 n 0000357912 00000 n 0000357965 00000 n 0000358018 00000 n 0000358071 00000 n 0000358125 00000 n 0000358179 00000 n 0000358233 00000 n 0000358287 00000 n 0000358340 00000 n 0000358393 00000 n 0000358446 00000 n 0000358499 00000 n 0000358650 00000 n 0000358802 00000 n 0000358953 00000 n 0000359107 00000 n 0000359259 00000 n 0000359410 00000 n 0000359563 00000 n 0000359714 00000 n 0000359866 00000 n 0000360017 00000 n 0000360070 00000 n 0000360123 00000 n 0000360176 00000 n 0000360229 00000 n 0000360283 00000 n 0000360337 00000 n 0000360490 00000 n 0000360644 00000 n 0000360796 00000 n 0000360849 00000 n 0000360902 00000 n 0000361055 00000 n 0000361208 00000 n 0000361359 00000 n 0000361511 00000 n 0000361662 00000 n 0000361814 00000 n 0000361867 00000 n 0000361920 00000 n 0000361973 00000 n 0000362026 00000 n 0000362179 00000 n 0000362330 00000 n 0000362483 00000 n 0000362536 00000 n 0000362589 00000 n 0000362642 00000 n 0000362695 00000 n 0000362748 00000 n 0000362801 00000 n 0000362953 00000 n 0000363105 00000 n 0000363257 00000 n 0000363311 00000 n 0000363365 00000 n 0000363419 00000 n 0000363473 00000 n 0000363526 00000 n 0000363579 00000 n 0000363632 00000 n 0000363685 00000 n 0000363738 00000 n 0000363791 00000 n 0000363845 00000 n 0000363899 00000 n 0000364052 00000 n 0000364204 00000 n 0000364355 00000 n 0000364508 00000 n 0000364661 00000 n 0000364814 00000 n 0000364868 00000 n 0000364922 00000 n 0000364975 00000 n 0000365028 00000 n 0000365179 00000 n 0000365232 00000 n 0000365285 00000 n 0000365338 00000 n 0000365391 00000 n 0000365444 00000 n 0000365497 00000 n 0000365650 00000 n 0000365801 00000 n 0000365954 00000 n 0000366105 00000 n 0000366158 00000 n 0000366211 00000 n 0000366264 00000 n 0000366317 00000 n 0000366370 00000 n 0000366423 00000 n 0000366576 00000 n 0000366729 00000 n 0000366783 00000 n 0000366837 00000 n 0000366891 00000 n 0000366945 00000 n 0000367096 00000 n 0000367249 00000 n 0000367302 00000 n 0000367355 00000 n 0000367408 00000 n 0000367461 00000 n 0000367613 00000 n 0000367667 00000 n 0000367721 00000 n 0000367774 00000 n 0000367827 00000 n 0000367880 00000 n 0000368351 00000 n 0000368502 00000 n 0000368655 00000 n 0000368806 00000 n 0000368959 00000 n 0000369109 00000 n 0000369261 00000 n 0000369315 00000 n 0000369369 00000 n 0000369522 00000 n 0000369673 00000 n 0000369826 00000 n 0000369979 00000 n 0000370131 00000 n 0000370282 00000 n 0000370433 00000 n 0000370585 00000 n 0000370638 00000 n 0000370691 00000 n 0000370744 00000 n 0000370797 00000 n 0000370948 00000 n 0000371002 00000 n 0000371056 00000 n 0000371208 00000 n 0000371361 00000 n 0000371513 00000 n 0000371664 00000 n 0000371817 00000 n 0000371870 00000 n 0000371923 00000 n 0000372076 00000 n 0000372130 00000 n 0000372184 00000 n 0000372336 00000 n 0000372489 00000 n 0000372641 00000 n 0000372694 00000 n 0000372747 00000 n 0000372800 00000 n 0000372853 00000 n 0000372907 00000 n 0000372961 00000 n 0000373014 00000 n 0000373067 00000 n 0000373218 00000 n 0000373370 00000 n 0000373522 00000 n 0000373676 00000 n 0000373829 00000 n 0000373982 00000 n 0000374133 00000 n 0000374284 00000 n 0000374435 00000 n 0000374588 00000 n 0000374739 00000 n 0000374892 00000 n 0000374946 00000 n 0000375000 00000 n 0000375153 00000 n 0000375305 00000 n 0000375359 00000 n 0000375413 00000 n 0000375564 00000 n 0000375618 00000 n 0000375672 00000 n 0000375824 00000 n 0000375977 00000 n 0000376130 00000 n 0000376283 00000 n 0000376337 00000 n 0000376391 00000 n 0000376544 00000 n 0000376696 00000 n 0000376749 00000 n 0000376802 00000 n 0000376954 00000 n 0000377107 00000 n 0000377258 00000 n 0000377411 00000 n 0000377562 00000 n 0000377715 00000 n 0000377868 00000 n 0000378020 00000 n 0000378171 00000 n 0000378324 00000 n 0000378475 00000 n 0000378626 00000 n 0000378779 00000 n 0000378833 00000 n 0000378887 00000 n 0000378941 00000 n 0000378995 00000 n 0000379148 00000 n 0000379202 00000 n 0000379256 00000 n 0000379409 00000 n 0000379561 00000 n 0000379714 00000 n 0000379865 00000 n 0000380017 00000 n 0000380168 00000 n 0000380321 00000 n 0000380474 00000 n 0000380625 00000 n 0000380778 00000 n 0000380932 00000 n 0000380985 00000 n 0000381038 00000 n 0000381091 00000 n 0000381144 00000 n 0000381198 00000 n 0000381252 00000 n 0000381306 00000 n 0000381360 00000 n 0000381414 00000 n 0000381468 00000 n 0000381621 00000 n 0000381675 00000 n 0000381729 00000 n 0000381783 00000 n 0000381837 00000 n 0000381891 00000 n 0000381945 00000 n 0000381999 00000 n 0000382053 00000 n 0000382204 00000 n 0000382356 00000 n 0000382507 00000 n 0000382659 00000 n 0000382810 00000 n 0000382963 00000 n 0000383116 00000 n 0000383267 00000 n 0000383320 00000 n 0000383373 00000 n 0000383524 00000 n 0000383677 00000 n 0000383731 00000 n 0000383785 00000 n 0000383936 00000 n 0000383990 00000 n 0000384044 00000 n 0000384197 00000 n 0000384350 00000 n 0000384501 00000 n 0000384654 00000 n 0000384806 00000 n 0000384959 00000 n 0000385112 00000 n 0000385265 00000 n 0000385418 00000 n 0000388383 00000 n 0000388746 00000 n 0000388897 00000 n 0000389050 00000 n 0000389203 00000 n 0000389356 00000 n 0000389410 00000 n 0000389464 00000 n 0000389615 00000 n 0000389767 00000 n 0000389918 00000 n 0000389972 00000 n 0000390026 00000 n 0000390080 00000 n 0000390134 00000 n 0000390188 00000 n 0000390242 00000 n 0000390395 00000 n 0000390548 00000 n 0000390601 00000 n 0000390654 00000 n 0000390787 00000 n 0000390840 00000 n 0000399014 00000 n 0000399067 00000 n 0000399220 00000 n 0000399373 00000 n 0000399526 00000 n 0000399679 00000 n 0000399732 00000 n 0000399786 00000 n 0000399840 00000 n 0000399993 00000 n 0000400224 00000 n 0000400471 00000 n 0000400816 00000 n 0000401050 00000 n 0000401104 00000 n 0000401157 00000 n 0000401727 00000 n 0000401880 00000 n 0000402032 00000 n 0000402184 00000 n 0000402337 00000 n 0000402490 00000 n 0000402543 00000 n 0000402596 00000 n 0000402748 00000 n 0000402900 00000 n 0000403053 00000 n 0000403106 00000 n 0000403159 00000 n 0000403212 00000 n 0000403265 00000 n 0000403418 00000 n 0000403571 00000 n 0000403624 00000 n 0000403678 00000 n 0000403731 00000 n 0000403784 00000 n 0000403937 00000 n 0000404091 00000 n 0000404243 00000 n 0000404396 00000 n 0000404549 00000 n 0000404602 00000 n 0000404656 00000 n 0000404809 00000 n 0000404862 00000 n 0000404915 00000 n 0000404969 00000 n 0000405022 00000 n 0000405076 00000 n 0000405129 00000 n 0000405283 00000 n 0000405436 00000 n 0000405588 00000 n 0000405741 00000 n 0000406166 00000 n 0000406219 00000 n 0000406372 00000 n 0000406612 00000 n 0000406763 00000 n 0000406816 00000 n 0000406970 00000 n 0000407023 00000 n 0000407177 00000 n 0000407230 00000 n 0000407384 00000 n 0000407437 00000 n 0000407490 00000 n 0000407644 00000 n 0000407697 00000 n 0000407851 00000 n 0000408005 00000 n 0000408058 00000 n 0000408210 00000 n 0000408264 00000 n 0000408686 00000 n 0000408950 00000 n 0000410272 00000 n 0000410326 00000 n 0000410479 00000 n 0000410533 00000 n 0000410686 00000 n 0000410837 00000 n 0000410890 00000 n 0000411043 00000 n 0000411096 00000 n 0000411373 00000 n 0000411444 00000 n 0000411581 00000 n 0000411686 00000 n 0000411740 00000 n 0000411891 00000 n 0000412007 00000 n 0000412061 00000 n 0000412171 00000 n 0000412304 00000 n 0000412403 00000 n 0000412457 00000 n 0000412552 00000 n 0000412716 00000 n 0000412897 00000 n 0000412950 00000 n 0000413139 00000 n 0000413295 00000 n 0000413400 00000 n 0000413453 00000 n 0000413626 00000 n 0000413764 00000 n 0000413855 00000 n 0000413908 00000 n 0000414081 00000 n 0000414272 00000 n 0000414380 00000 n 0000414433 00000 n 0000414486 00000 n 0000414650 00000 n 0000414703 00000 n 0000414889 00000 n 0000415007 00000 n 0000415060 00000 n 0000415157 00000 n 0000415210 00000 n 0000415309 00000 n 0000415522 00000 n 0000415623 00000 n 0000415676 00000 n 0000415777 00000 n 0000415986 00000 n 0000416087 00000 n 0000416140 00000 n 0000416241 00000 n 0000416294 00000 n 0000416347 00000 n 0000416400 00000 n 0000416453 00000 n 0000416506 00000 n 0000416614 00000 n 0000416667 00000 n 0000416783 00000 n 0000416836 00000 n 0000416950 00000 n 0000417003 00000 n 0000417121 00000 n 0000417174 00000 n 0000417290 00000 n 0000417343 00000 n 0000417459 00000 n 0000417512 00000 n 0000417638 00000 n 0000417691 00000 n 0000417744 00000 n 0000417881 00000 n 0000417934 00000 n 0000418061 00000 n 0000418114 00000 n 0000418268 00000 n 0000418321 00000 n 0000418374 00000 n 0000418427 00000 n 0000418591 00000 n 0000418644 00000 n 0000418757 00000 n 0000418810 00000 n 0000418993 00000 n 0000419106 00000 n 0000419159 00000 n 0000419280 00000 n 0000419516 00000 n 0000419633 00000 n 0000419686 00000 n 0000419793 00000 n 0000419994 00000 n 0000420099 00000 n 0000420152 00000 n 0000420249 00000 n 0000420408 00000 n 0000420579 00000 n 0000420632 00000 n 0000420777 00000 n 0000420830 00000 n 0000420883 00000 n 0000420936 00000 n 0000421054 00000 n 0000421107 00000 n 0000421223 00000 n 0000421276 00000 n 0000421392 00000 n 0000421445 00000 n 0000421563 00000 n 0000421616 00000 n 0000421669 00000 n 0000421722 00000 n 0000421854 00000 n 0000421907 00000 n 0000422035 00000 n 0000422088 00000 n 0000422218 00000 n 0000422271 00000 n 0000422399 00000 n 0000422452 00000 n 0000422584 00000 n 0000422637 00000 n 0000422765 00000 n 0000422818 00000 n 0000422946 00000 n 0000422999 00000 n 0000423127 00000 n 0000423180 00000 n 0000423233 00000 n 0000423286 00000 n 0000423339 00000 n 0000423476 00000 n 0000423529 00000 n 0000423656 00000 n 0000423709 00000 n 0000423863 00000 n 0000423916 00000 n 0000423969 00000 n 0000424022 00000 n 0000424157 00000 n 0000424210 00000 n 0000424367 00000 n 0000424472 00000 n 0000424526 00000 n 0000424655 00000 n 0000424782 00000 n 0000424837 00000 n 0000424987 00000 n 0000425042 00000 n 0000425182 00000 n 0000425237 00000 n 0000425428 00000 n 0000425551 00000 n 0000425606 00000 n 0000425707 00000 n 0000425878 00000 n 0000426001 00000 n 0000426056 00000 n 0000426173 00000 n 0000426332 00000 n 0000426387 00000 n 0000426442 00000 n 0000426553 00000 n 0000426608 00000 n 0000426739 00000 n 0000426794 00000 n 0000426849 00000 n 0000426904 00000 n 0000426959 00000 n 0000427014 00000 n 0000427164 00000 n 0000427219 00000 n 0000427274 00000 n 0000427328 00000 n 0000427436 00000 n 0000427490 00000 n 0000427651 00000 n 0000427798 00000 n 0000427852 00000 n 0000427977 00000 n 0000428031 00000 n 0000428182 00000 n 0000428236 00000 n 0000428385 00000 n 0000428439 00000 n 0000428596 00000 n 0000428650 00000 n 0000428785 00000 n 0000428839 00000 n 0000428893 00000 n 0000428947 00000 n 0000429002 00000 n 0000429112 00000 n 0000429167 00000 n 0000429222 00000 n 0000429277 00000 n 0000429332 00000 n 0000429436 00000 n 0000429490 00000 n 0000429544 00000 n 0000439977 00000 n 0000441458 00000 n 0000442956 00000 n 0000443914 00000 n 0000445088 00000 n 0000446524 00000 n 0000448001 00000 n 0000449532 00000 n 0000451082 00000 n 0000452705 00000 n 0000454268 00000 n 0000455937 00000 n 0000457523 00000 n 0000459137 00000 n 0000460828 00000 n 0000462410 00000 n 0000463951 00000 n 0000465529 00000 n 0000467087 00000 n 0000468636 00000 n 0000470254 00000 n 0000471845 00000 n 0000473542 00000 n 0000475134 00000 n 0000476721 00000 n 0000478086 00000 n 0000479601 00000 n 0000480893 00000 n 0000482120 00000 n 0000483647 00000 n 0000484918 00000 n 0000486516 00000 n 0000487909 00000 n 0000489505 00000 n 0000490986 00000 n 0000492621 00000 n 0000494270 00000 n 0000495889 00000 n 0000498109 00000 n 0000499662 00000 n 0000501057 00000 n 0000502543 00000 n 0000504111 00000 n 0000505626 00000 n 0000507895 00000 n 0000508334 00000 n 0000508373 00000 n 0000508399 00000 n 0000508501 00000 n 0000508633 00000 n 0000508767 00000 n 0000508901 00000 n 0000509035 00000 n 0000509177 00000 n 0000509264 00000 n 0000513374 00000 n 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f 0000000000 65535 f trailer <> startxref 116 %%EOF IMB_3.0/versions_news/0000755014562400001620000000000010446343057014137 5ustar sthealeykapIMB_3.0/versions_news/Version_history0000755014562400001620000000010210446343057017264 0ustar sthealeykapVersion 2.3 November 10, 2004 Version 3.0 June 30, 2006