irace/0000755000176200001440000000000013640644063011343 5ustar liggesusersirace/NAMESPACE0000644000176200001440000000276313640575001012565 0ustar liggesusers# Generated by roxygen2: do not edit by hand export(ablation) export(buildCommandLine) export(checkIraceScenario) export(checkScenario) export(configurations.print) export(configurations.print.command) export(configurationsBoxplot) export(defaultScenario) export(getConfigurationById) export(getConfigurationByIteration) export(getFinalElites) export(irace) export(irace.cmdline) export(irace.license) export(irace.main) export(irace.usage) export(irace.version) export(irace2pyimp) export(irace2pyimp_cmdline) export(parallelCoordinatesPlot) export(parameterFrequency) export(plotAblation) export(printScenario) export(psRace) export(readConfigurationsFile) export(readParameters) export(readScenario) export(read_pcs_file) export(removeConfigurationsMetaData) export(scenario.update.paths) export(target.evaluator.default) export(target.runner.default) export(testConfigurations) export(testing.main) import(compiler) import(stats) import(utils) importFrom(R6,R6Class) importFrom(grDevices,cairo_pdf) importFrom(grDevices,dev.new) importFrom(grDevices,dev.off) importFrom(grDevices,pdf) importFrom(grDevices,rgb) importFrom(graphics,abline) importFrom(graphics,axis) importFrom(graphics,barplot) importFrom(graphics,boxplot) importFrom(graphics,bxp) importFrom(graphics,grid) importFrom(graphics,hist) importFrom(graphics,lines) importFrom(graphics,matplot) importFrom(graphics,mtext) importFrom(graphics,par) importFrom(graphics,plot) importFrom(graphics,points) importFrom(graphics,strwidth) importFrom(graphics,text) irace/.Rinstignore0000644000176200001440000000006713640446260013651 0ustar liggesusersvignettes/section/irace-options.tex ^GenericWrapper4AC irace/README.md0000644000176200001440000002606413640574461012636 0ustar liggesusers**irace**: Iterated Racing for Automatic Algorithm Configuration ================================================================ [![CRAN Status](https://www.r-pkg.org/badges/version-last-release/irace)](https://cran.r-project.org/package=irace) [![CRAN Downloads](https://cranlogs.r-pkg.org/badges/grand-total/irace)](https://CRAN.R-project.org/package=irace) [![Travis Build Status](https://travis-ci.org/MLopez-Ibanez/irace.svg?branch=master)](https://travis-ci.org/MLopez-Ibanez/irace) [ [**Homepage**](http://iridia.ulb.ac.be/irace/) ] [ [**User Guide (PDF)**](https://cran.r-project.org/package=irace/vignettes/irace-package.pdf) ] **Maintainers:** [Manuel López-Ibáñez](http://lopez-ibanez.eu), Leslie Pérez Cáceres **Creators:** [Manuel López-Ibáñez](http://lopez-ibanez.eu), Jérémie Dubois-Lacoste **Contributors:** Jérémie Dubois-Lacoste, Thomas Stützle, Mauro Birattari, Eric Yuan and Prasanna Balaprakash. **Contact:** --------------------------------------- Introduction ============ The **irace** package implements the Iterated Race method, which is a generalization of the Iterated F-race method for the automatic configuration of optimization algorithms, that is, the tuning of their parameters by finding the most appropriate settings given a set of instances of an optimization problem. It builds upon the race package by Birattari and it is implemented in R. **Keywords:** automatic configuration, offline tuning, parameter tuning, racing, F-race. **Relevant literature:** 1. M. López-Ibáñez, J. Dubois-Lacoste, L. Pérez Cáceres, T. Stützle, and M. Birattari. [The irace package: Iterated Racing for Automatic Algorithm Configuration.](http://dx.doi.org/10.1016/j.orp.2016.09.002). *Operations Research Perspectives*, 3:43–58, 2016.
[ [bibtex](http://lopez-ibanez.eu/LopezIbanez_bib.html#LopDubPerStuBir2016irace) | doi: [10.1016/j.orp.2016.09.002](http://dx.doi.org/10.1016/j.orp.2016.09.002) ] 2. Manuel López-Ibáñez, Jérémie Dubois-Lacoste, Thomas Stützle, and Mauro Birattari. [The irace package, Iterated Race for Automatic Algorithm Configuration](http://iridia.ulb.ac.be/IridiaTrSeries/IridiaTr2011-004.pdf). Technical Report TR/IRIDIA/2011-004, IRIDIA, Université libre de Bruxelles, Belgium, 2011.
[ [bibtex](http://iridia.ulb.ac.be/~manuel/LopezIbanez_bib.html#LopDubStu2011irace) | [PDF](http://iridia.ulb.ac.be/IridiaTrSeries/IridiaTr2011-004.pdf) ] 3. Manuel López-Ibáñez. [The irace software package: A tutorial](http://iridia.ulb.ac.be/irace/files/irace-comex-tutorial.pdf). COMEX Workshop on Practical Automatic Algorithm Configuration, 2014.
[ [workshop webpage](http://iridia.ulb.ac.be/~manuel/comex_workshop/) | [PDF](http://iridia.ulb.ac.be/irace/files/irace-comex-tutorial.pdf) ] Requisites ---------- * R () is required for running irace, but you don't need to know the R language to use it. User guide ---------- A complete [user guide](https://cran.r-project.org/package=irace/vignettes/irace-package.pdf) comes with the package. You can access it online or, after installing the irace package, invoking from R the following command: ```R R> vignette("irace-package") ``` The following is a quick-start guide. The user guide gives more detailed instructions. Installing R ============ The official instructions are available at . We give below a quick R installation guide that will work in most cases. GNU/Linux --------- You should install R from your package manager. On a Debian/Ubuntu system it will be something like: $ sudo apt-get install r-base Once R is installed, you can launch R from the Terminal and from the R prompt install the irace package. See instructions below. OS X ---- You can install R directly from a CRAN mirror (). Alternatively, if you use homebrew, you can just brew the R formula from the science tap (unfortunately it does not come already bottled so you need to have Xcode installed to compile it): ```bash $ brew tap homebrew/science $ brew install r ``` Once R is installed, you can launch R from the Terminal (or from your Applications), and from the R prompt install the irace package. See instructions below. Windows ------- You can install R from a CRAN mirror (). Once R is installed, you can launch the R console and install the irace package from it. See instructions below. Installing the irace package ============================ There are two methods for installing the [irace](http://iridia.ulb.ac.be/irace) R package on your computer: 1. Install within R (automatic download): ```R $ R R> install.packages("irace") ``` select a mirror close to you, and test the installation with ```R R> library(irace) R> CTRL+d ``` 2. Manually [download the package from CRAN](https://cran.r-project.org/package=irace) and invoke at the command-line: ```bash $ R CMD INSTALL ``` where `` is one of the three versions available: `.tar.gz` (Unix/BSD/GNU/Linux), `.tgz` (MacOS X), or `.zip` (Windows). If the package fails to install because of insufficient permissions, you need to force a *local installation* by doing: ```bash $ mkdir ~/R $ R CMD INSTALL --library=~/R irace.tar.gz $ export R_LIBS=~/R:${R_LIBS} ``` Once installed, test that it is working by doing: ```R $ R R> library(irace) R> system.file(package="irace") [1] "~/R/irace" ``` The last command tells you the installation directory of `irace`. GNU/Linux and OS X ------------------ Save the installation directory of `irace` to a variable, and add it to your `.bash_profile`, `.bashrc` or `.profile`: ```bash export IRACE_HOME=~/R/irace/ # Path given by system.file(package="irace") export PATH=${IRACE_HOME}/bin/:$PATH # export R_LIBS=~/R:${R_LIBS} # Only if local installation was forced ``` After adding this and opening a new terminal, you should be able to invoke `irace` as follows: ```bash $ irace --help ``` Windows ------- If the installation directory of `irace` is `C:/R/irace/`, you can invoke `irace` by opening a terminal (launch the program `cmd.exe`) and executing: ```bash C:\> C:\R\irace\bin\x64\irace.exe --help ``` or if you are in a 32-bits system, executing: ```bash C:\> C:\R\irace\bin\i386\irace.exe --help ``` You can also launch irace by opening the R console and executing: ```R R> library(irace) R> irace.cmdline("--help") ``` Usage ===== 1. Create a directory for storing the tuning scenario setup ```bash $ mkdir ~/tuning $ cd ~/tuning ``` 2. Copy the template and example files to the scenario directory ```bash $ cp $IRACE_HOME/templates/*.tmpl . ``` where `$IRACE_HOME` is the path to the installation directory of `irace`. It can be obtained by doing: ```R $ R > library(irace) > system.file(package="irace") ``` 3. For each template in your tuning directory, remove the `.tmpl` suffix, and modify them following the instructions in each file. In particular, * The scripts `target-runner` and `target-evaluator` (if you need it at all) should be executable. The output of `target-runner` (or `target-evaluator` if you use a separate evaluation step) is minimized by default. If you wish to maximize it, just multiply the value by `-1` within the script. * In `scenario.txt`, uncomment and assign only the parameters for which you need a value different than the default one. There are examples in `$IRACE_HOME/examples/`. 4. Put the instances in `~/tuning/Instances/`. In addition, you can create a file that specifies which instances from that directory should be run and which instance-specific parameters to use. See `scenario.txt.tmpl` and `instances-list.tmpl` for examples. The command irace will not attempt to create the execution directory (`execDir`), so it must exist before calling irace. The default `execDir` is the current directory. 5. Calling the command: ```bash $ cd ~/tuning/ && $IRACE_HOME/bin/irace ``` performs one run of Iterated Race. See the output of `irace --help` for additional irace parameters. Command-line parameters override the scenario setup specified in the `scenario.txt` file. Many tuning runs in parallel ---------------------------- For executing several repetitions of irace in parallel, call the program ```bash $ cd ~/tuning/ && $IRACE_HOME/bin/parallel-irace N ``` where N is the number of repetitions. By default, the execution directory of each run of irace will be set to `./execdir-dd`, where `dd` is a number padded with zeroes. **Be careful**, `parallel-irace` will create these directories from scratch, deleting them first if they already exist. Check the help of `parallel-irace` by running it without parameters. Parallelize one tuning ---------------------- A single run of irace can be done much faster by executing the calls to `targetRunner` (the runs of the algorithm being tuned) in parallel. See the [user guide](https://cran.r-project.org/package=irace/vignettes/irace-package.pdf) for the details. License ======= **irace** is Copyright (C) 2010-2020 Manuel López-Ibáñez, Jérémie Dubois-Lacoste and Leslie Pérez-Cáceres. This program is free software (software libre); you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the [GNU General Public License](https://cran.r-project.org/web/licenses/GPL-3) for more details. **IMPORTANT NOTE:** Please be aware that the fact that this program is released as Free Software does not excuse you from scientific propriety, which obligates you to give appropriate credit! If you write a scientific paper describing research that made substantive use of this program, it is your obligation as a scientist to (a) mention the fashion in which this software was used in the Methods section; (b) mention the algorithm in the References section. The appropriate citation is: * Manuel López-Ibáñez, Jérémie Dubois-Lacoste, Leslie Pérez Cáceres, Thomas Stützle, and Mauro Birattari. [**The irace package: Iterated Racing for Automatic Algorithm Configuration.**](http://dx.doi.org/10.1016/j.orp.2016.09.002) _Operations Research Perspectives_, 2016. doi: 10.1016/j.orp.2016.09.002 The **irace** package uses code under the GPL from the [race package](https://CRAN.R-project.org/package=race) is Copyright (C) 2003 Mauro Birattari. Frequently Asked Questions ========================== The [user guide](https://cran.r-project.org/package=irace/vignettes/irace-package.pdf) contains a list of frequently asked questions. irace/man/0000755000176200001440000000000013640446260012115 5ustar liggesusersirace/man/scenario.update.paths.Rd0000644000176200001440000000240713640446260016611 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/utils.R \name{scenario.update.paths} \alias{scenario.update.paths} \title{Update filesystem paths of a scenario consistently.} \usage{ scenario.update.paths(scenario, from, to, fixed = TRUE) } \arguments{ \item{scenario}{(\code{list()}) \cr Data structure containing \pkg{irace} settings. The data structure has to be the one returned by the function \code{\link{defaultScenario}} or \code{\link{readScenario}}.} \item{from}{character string containing a regular expression (or character string for \code{fixed = TRUE}) to be matched.} \item{to}{the replacement string.character string. For \code{fixed = FALSE} this can include backreferences \code{"\1"} to \code{"\9"} to parenthesized subexpressions of \code{from}.} \item{fixed}{logical. If \code{TRUE}, \code{from} is a string to be matched as is.} } \value{ The updated scenario } \description{ This function should be used to change the filesystem paths stored in a scenario object. Useful when moving a scenario from one computer to another. } \examples{ \dontrun{ scenario <- readScenario(filename = "scenario.txt") scenario <- scenario.update.paths(scenario, from = "/home/manuel/", to = "/home/leslie") } } \seealso{ \code{\link[base]{grep}} } irace/man/removeConfigurationsMetaData.Rd0000644000176200001440000000176113640446260020222 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/utils.R \name{removeConfigurationsMetaData} \alias{removeConfigurationsMetaData} \title{removeConfigurationsMetaData} \usage{ removeConfigurationsMetaData(configurations) } \arguments{ \item{configurations}{(\code{data.frame}) \cr Parameter configurations of the target algorithm (one per row).} } \value{ The same matrix without the "metadata". } \description{ Remove the columns with "metadata" of a matrix containing some configuration configurations. These "metadata" are used internaly by \pkg{irace}. This function can be used e.g. before printing the configurations, to output only the values for the parameters of the configuration without data possibly useless to the user. } \seealso{ \code{\link{configurations.print.command}} to print the configurations as command lines. \code{\link{configurations.print}} to print the configurations as a data frame. } \author{ Manuel López-Ibáñez and Jérémie Dubois-Lacoste } irace/man/configurations.print.Rd0000644000176200001440000000144713640446260016577 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/utils.R \name{configurations.print} \alias{configurations.print} \title{Print configurations as a data frame} \usage{ configurations.print(configurations, metadata = FALSE) } \arguments{ \item{configurations}{(\code{data.frame}) \cr Parameter configurations of the target algorithm (one per row).} \item{metadata}{A Boolean specifying whether to print the metadata or not. The metadata are data for the configurations (additionally to the value of each parameter) used by \pkg{irace}.} } \value{ None. } \description{ Print configurations as a data frame } \seealso{ \code{\link{configurations.print.command}} to print the configurations as command-line strings. } \author{ Manuel López-Ibáñez and Jérémie Dubois-Lacoste } irace/man/configurations.print.command.Rd0000644000176200001440000000155613640446260020215 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/utils.R \name{configurations.print.command} \alias{configurations.print.command} \title{Print configurations as command-line strings.} \usage{ configurations.print.command(configurations, parameters) } \arguments{ \item{configurations}{(\code{data.frame}) \cr Parameter configurations of the target algorithm (one per row).} \item{parameters}{(\code{list()}) \cr Data structure containing the parameter space definition. The data structure has to similar to the one returned by the function \code{\link{readParameters}}.} } \value{ None. } \description{ Prints configurations after converting them into a representation for the command-line. } \seealso{ \code{\link{configurations.print}} to print the configurations as a data frame. } \author{ Manuel López-Ibáñez and Jérémie Dubois-Lacoste } irace/man/testing.main.Rd0000644000176200001440000000204313640446260015003 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/main.R \name{testing.main} \alias{testing.main} \title{testing.main} \usage{ testing.main(logFile) } \arguments{ \item{logFile}{Path to the \code{.Rdata} file produced by \pkg{irace}.} } \value{ Boolean. TRUE if the testing ended successfully otherwise, returns FALSE. } \description{ \code{testing.main} executes the testing of the target algorithm configurations found on an \pkg{irace} execution. } \details{ The function \code{testing.main} loads the \code{logFile} and obtains the needed configurations according to the specified test. Use the \code{scenario$testNbElites} to test N final elite configurations or use \code{scenario$testIterationElites} to test the best configuration of each iteration. A test instance set must be provided through \code{scenario$testInstancesDir} and \code{testInstancesFile}. } \seealso{ \code{\link{defaultScenario}} to provide a default scenario for \pkg{irace}. } \author{ Manuel López-Ibáñez and Leslie Pérez Cáceres } irace/man/checkScenario.Rd0000644000176200001440000000302713640446260015147 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/readConfiguration.R \name{checkScenario} \alias{checkScenario} \title{Check and correct the given scenario} \usage{ checkScenario(scenario = defaultScenario()) } \arguments{ \item{scenario}{(\code{list()}) \cr Data structure containing \pkg{irace} settings. The data structure has to be the one returned by the function \code{\link{defaultScenario}} or \code{\link{readScenario}}.} } \value{ The scenario received as a parameter, possibly corrected. Unset scenario settings are set to their default values. } \description{ \code{checkScenario} takes a (possibly incomplete) scenario setup of \pkg{irace}, checks for errors and transforms it into a valid scenario. } \details{ This function checks that the directories and the file names provided and required by the \pkg{irace} exist. It also checks that the settings are of the proper type, e.g. that settings expected to be integers are really integers. Finally, it also checks that there is no inconsistency between settings. If an error is found that prevents \pkg{irace} from running properly, it will stop with an error. } \seealso{ \describe{ \item{\code{\link{readScenario}}}{for reading a configuration scenario from a file.} \item{\code{\link{printScenario}}}{prints the given scenario.} \item{\code{\link{defaultScenario}}}{returns the default scenario settings of \pkg{irace}.} \item{\code{\link{checkScenario}}}{to check that the scenario is valid.} } } \author{ Manuel López-Ibáñez and Jérémie Dubois-Lacoste } irace/man/readConfigurationsFile.Rd0000644000176200001440000000257013640446260017036 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/readConfiguration.R \name{readConfigurationsFile} \alias{readConfigurationsFile} \title{readConfigurationsFile} \usage{ readConfigurationsFile(filename, parameters, debugLevel = 0, text) } \arguments{ \item{filename}{(\code{character(1)}) \cr Filename from which the configurations should be read.} \item{parameters}{(\code{list()}) \cr Data structure containing the parameter space definition. The data structure has to similar to the one returned by the function \code{\link{readParameters}}.} \item{debugLevel}{(\code{integer(1)}) \cr Larger values produce more verbose output.} \item{text}{(\code{character(1)}) \cr If \code{file} is not supplied and this is, then parameters are read from the value of \code{text} via a text connection.} } \value{ A data frame containing the obtained configurations. Each row of the data frame is a candidate configuration, the columns correspond to the parameter names in \code{parameters}. } \description{ \code{readConfigurationsFile} reads a set of target algorithms configurations from a file and puts them in \pkg{irace} format. The configurations are checked to match the parameters description provided. } \seealso{ \code{\link{readParameters}} to obtain a valid parameter structure from a parameters list. } \author{ Manuel López-Ibáñez and Jérémie Dubois-Lacoste } irace/man/irace2pyimp_cmdline.Rd0000644000176200001440000000163313640446260016326 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/irace2pyimp.R \name{irace2pyimp_cmdline} \alias{irace2pyimp_cmdline} \title{Command-line interface to irace2pyimp} \usage{ irace2pyimp_cmdline(argv = commandArgs(trailingOnly = TRUE)) } \arguments{ \item{argv}{(\code{character()}) \cr Command-line arguments.} } \value{ None. } \description{ This is a command-line interface for calling the \code{\link{irace2pyimp}} function, which converts an \code{irace.Rdata} file into the input format supported by the parameter importance analysis tool \code{PyImp} (https://github.com/automl/ParameterImportance). \cr The best way to use this command line interface is to run the script \code{irace-to-pyimp}. \cr To see usage of the script, run: irace-to-pyimp --help } \examples{ irace2pyimp_cmdline("--help") } \seealso{ \code{\link{irace2pyimp}} } \author{ Nguyen Dang and Manuel López-Ibáñez } irace/man/defaultScenario.Rd0000644000176200001440000002712113640446260015517 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/readConfiguration.R \name{defaultScenario} \alias{defaultScenario} \title{Default scenario settings} \usage{ defaultScenario(scenario = list()) } \arguments{ \item{scenario}{(\code{list()}) \cr Data structure containing \pkg{irace} settings. The data structure has to be the one returned by the function \code{\link{defaultScenario}} or \code{\link{readScenario}}.} } \value{ A list indexed by the \pkg{irace} parameter names, containing the default values for each parameter, except for those already present in the scenario passed as argument. The scenario list contains the following elements: \itemize{ \item General options: \describe{ \item{\code{scenarioFile}}{Path of the file that describes the configuration scenario setup and other irace settings. (Default: \code{"./scenario.txt"})} \item{\code{execDir}}{Directory where the programs will be run. (Default: \code{"./"})} \item{\code{logFile}}{File to save tuning results as an R dataset, either absolute path or relative to execDir. (Default: \code{"./irace.Rdata"})} \item{\code{debugLevel}}{Debug level of the output of \code{irace}. Set this to 0 to silence all debug messages. Higher values provide more verbose debug messages. (Default: \code{0})} \item{\code{seed}}{Seed of the random number generator (by default, generate a random seed). (Default: \code{NA})} \item{\code{repairConfiguration}}{User-defined R function that takes a configuration generated by irace and repairs it. (Default: \code{""})} \item{\code{postselection}}{Percentage of the configuration budget used to perform a postselection race of the best configurations of each iteration after the execution of irace. (Default: \code{0})} \item{\code{aclib}}{Enable/disable AClib mode. This option enables compatibility with GenericWrapper4AC as targetRunner script. (Default: \code{0})} } \item Elitist \code{irace}: \describe{ \item{\code{elitist}}{Enable/disable elitist irace. (Default: \code{1})} \item{\code{elitistNewInstances}}{Number of instances added to the execution list before previous instances in elitist irace. (Default: \code{1})} \item{\code{elitistLimit}}{In elitist irace, maximum number per race of elimination tests that do not eliminate a configuration. Use 0 for no limit. (Default: \code{2})} } \item Internal \code{irace} options: \describe{ \item{\code{nbIterations}}{Number of iterations. (Default: \code{0})} \item{\code{nbExperimentsPerIteration}}{Number of runs of the target algorithm per iteration. (Default: \code{0})} \item{\code{sampleInstances}}{Randomly sample the training instances or use them in the order given. (Default: \code{1})} \item{\code{minNbSurvival}}{Minimum number of configurations needed to continue the execution of each race (iteration). (Default: \code{0})} \item{\code{nbConfigurations}}{Number of configurations to be sampled and evaluated at each iteration. (Default: \code{0})} \item{\code{mu}}{Parameter used to define the number of configurations sampled and evaluated at each iteration. (Default: \code{5})} \item{\code{softRestart}}{Enable/disable the soft restart strategy that avoids premature convergence of the probabilistic model. (Default: \code{1})} \item{\code{softRestartThreshold}}{Soft restart threshold value for numerical parameters. If \code{NA}, \code{NULL} or \code{""}, it is computed as \code{10^-digits}. (Default: \code{""})} } \item Target algorithm parameters: \describe{ \item{\code{parameterFile}}{File that contains the description of the parameters of the target algorithm. (Default: \code{"./parameters.txt"})} \item{\code{forbiddenExps}}{Vector of R logical expressions that cannot evaluate to \code{TRUE} for any evaluated configuration. (Default: \code{""})} \item{\code{forbiddenFile}}{File that contains a list of logical expressions that cannot be \code{TRUE} for any evaluated configuration. If empty or \code{NULL}, do not use forbidden expressions. (Default: \code{""})} \item{\code{digits}}{Maximum number of decimal places that are significant for numerical (real) parameters. (Default: \code{4})} } \item Target algorithm execution: \describe{ \item{\code{targetRunner}}{Script called for each configuration that executes the target algorithm to be tuned. See templates. (Default: \code{"./target-runner"})} \item{\code{targetRunnerRetries}}{Number of times to retry a call to \code{targetRunner} if the call failed. (Default: \code{0})} \item{\code{targetRunnerData}}{Optional data passed to \code{targetRunner}. This is ignored by the default \code{targetRunner} function, but it may be used by custom \code{targetRunner} functions to pass persistent data around. (Default: \code{""})} \item{\code{targetRunnerParallel}}{Optional R function to provide custom parallelization of \code{targetRunner}. (Default: \code{""})} \item{\code{targetEvaluator}}{Optional script or R function that provides a numeric value for each configuration. See templates/target-evaluator.tmpl (Default: \code{""})} \item{\code{deterministic}}{If the target algorithm is deterministic, configurations will be evaluated only once per instance. (Default: \code{0})} \item{\code{parallel}}{Number of calls to \code{targetRunner} to execute in parallel. Values \code{0} or \code{1} mean no parallelization. (Default: \code{0})} \item{\code{loadBalancing}}{Enable/disable load-balancing when executing experiments in parallel. Load-balancing makes better use of computing resources, but increases communication overhead. If this overhead is large, disabling load-balancing may be faster. (Default: \code{1})} \item{\code{mpi}}{Enable/disable MPI. Use \code{Rmpi} to execute \code{targetRunner} in parallel (parameter \code{parallel} is the number of slaves). (Default: \code{0})} \item{\code{batchmode}}{Specify how irace waits for jobs to finish when \code{targetRunner} submits jobs to a batch cluster: sge, pbs, torque or slurm. \code{targetRunner} must submit jobs to the cluster using, for example, \code{qsub}. (Default: \code{0})} } \item Initial configurations: \describe{ \item{\code{initConfigurations}}{Data frame describing initial configurations (usually read from a file using \code{readConfigurations}). (Default: \code{""})} \item{\code{configurationsFile}}{File that contains a table of initial configurations. If empty or \code{NULL}, all initial configurations are randomly generated. (Default: \code{""})} } \item Training instances: \describe{ \item{\code{instances}}{Character vector of the instances to be used in the \code{targetRunner}. (Default: \code{""})} \item{\code{trainInstancesDir}}{Directory where training instances are located; either absolute path or relative to current directory. If no \code{trainInstancesFiles} is provided, all the files in \code{trainInstancesDir} will be listed as instances. (Default: \code{"./Instances"})} \item{\code{trainInstancesFile}}{File that contains a list of training instances and optionally additional parameters for them. If \code{trainInstancesDir} is provided, \code{irace} will search for the files in this folder. (Default: \code{""})} } \item Tuning budget: \describe{ \item{\code{maxExperiments}}{Maximum number of runs (invocations of \code{targetRunner}) that will be performed. It determines the maximum budget of experiments for the tuning. (Default: \code{0})} \item{\code{maxTime}}{Maximum total execution time in seconds for the executions of \code{targetRunner}. \code{targetRunner} must return two values: cost and time. (Default: \code{0})} \item{\code{budgetEstimation}}{Fraction (smaller than 1) of the budget used to estimate the mean computation time of a configuration. Only used when \code{maxTime} > 0 (Default: \code{0.02})} } \item Statistical test: \describe{ \item{\code{testType}}{Statistical test used for elimination. Default test is always \code{F-test} unless \code{capping} is enabled, in which case the default test is \code{t-test}. Valid values are: F-test (Friedman test), t-test (pairwise t-tests with no correction), t-test-bonferroni (t-test with Bonferroni's correction for multiple comparisons), t-test-holm (t-test with Holm's correction for multiple comparisons). (Default: \code{"F-test"})} \item{\code{firstTest}}{Number of instances evaluated before the first elimination test. It must be a multiple of \code{eachTest}. (Default: \code{5})} \item{\code{eachTest}}{Number of instances evaluated between elimination tests. (Default: \code{1})} \item{\code{confidence}}{Confidence level for the elimination test. (Default: \code{0.95})} } \item Adaptive capping: \describe{ \item{\code{capping}}{Enable the use of adaptive capping, a technique designed for minimizing the computation time of configurations. This is only available when \code{elitist} is active. (Default: \code{0})} \item{\code{cappingType}}{Measure used to obtain the execution bound from the performance of the elite configurations.\itemize{\item median: Median performance of the elite configurations.\item mean: Mean performance of the elite configurations.\item best: Best performance of the elite configurations.\item worst: Worst performance of the elite configurations.} (Default: \code{"median"})} \item{\code{boundType}}{Method to calculate the mean performance of elite configurations.\itemize{\item candidate: Mean execution times across the executed instances and the current one.\item instance: Execution time of the current instance.} (Default: \code{"candidate"})} \item{\code{boundMax}}{Maximum execution bound for \code{targetRunner}. It must be specified when capping is enabled. (Default: \code{0})} \item{\code{boundDigits}}{Precision used for calculating the execution time. It must be specified when capping is enabled. (Default: \code{0})} \item{\code{boundPar}}{Penalization constant for timed out executions (executions that reach \code{boundMax} execution time). (Default: \code{1})} \item{\code{boundAsTimeout}}{Replace the configuration cost of bounded executions with \code{boundMax}. (Default: \code{1})} } \item Recovery: \describe{ \item{\code{recoveryFile}}{Previously saved log file to recover the execution of \code{irace}, either absolute path or relative to the current directory. If empty or \code{NULL}, recovery is not performed. (Default: \code{""})} } \item Testing: \describe{ \item{\code{testInstancesDir}}{Directory where testing instances are located, either absolute or relative to current directory. (Default: \code{""})} \item{\code{testInstancesFile}}{File containing a list of test instances and optionally additional parameters for them. (Default: \code{""})} \item{\code{testInstances}}{Character vector of the instances to be used in the \code{targetRunner} when executing the testing. (Default: \code{""})} \item{\code{testNbElites}}{Number of elite configurations returned by irace that will be tested if test instances are provided. (Default: \code{1})} \item{\code{testIterationElites}}{Enable/disable testing the elite configurations found at each iteration. (Default: \code{0})} } } } \description{ Return scenario with default values. } \seealso{ \describe{ \item{\code{\link{readScenario}}}{for reading a configuration scenario from a file.} \item{\code{\link{printScenario}}}{prints the given scenario.} \item{\code{\link{defaultScenario}}}{returns the default scenario settings of \pkg{irace}.} \item{\code{\link{checkScenario}}}{to check that the scenario is valid.} } } \author{ Manuel López-Ibáñez and Jérémie Dubois-Lacoste } irace/man/configurationsBoxplot.Rd0000644000176200001440000000155013640446260017007 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/parameterAnalysis.R \name{configurationsBoxplot} \alias{configurationsBoxplot} \title{Creates box plots of the quality of configurations.} \usage{ configurationsBoxplot(experiments, title = NULL, xlabel = "Configuration ID", ylabel = "Configuration cost", filename = NULL) } \arguments{ \item{experiments}{Matrix of performance of configurations (columns) over a set of instances (rows).} \item{title}{(\code{NULL}) Title for the plot.} \item{xlabel}{Label for the x axis.} \item{ylabel}{Label for the y axis.} \item{filename}{(\code{NULL}) Filename prefix to create a pdf file with the plot.} } \value{ Box plot of the performance of the configurations. } \description{ Creates box plots of the quality of configurations. } \author{ Manuel López-Ibáñez and Leslie Pérez Cáceres } irace/man/checkIraceScenario.Rd0000644000176200001440000000312213640446260016107 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/main.R \name{checkIraceScenario} \alias{checkIraceScenario} \title{Test that the given irace scenario can be run.} \usage{ checkIraceScenario(scenario, parameters = NULL) } \arguments{ \item{scenario}{(\code{list()}) \cr Data structure containing \pkg{irace} settings. The data structure has to be the one returned by the function \code{\link{defaultScenario}} or \code{\link{readScenario}}.} \item{parameters}{(\code{list()}) \cr Data structure containing the parameter space definition. The data structure has to similar to the one returned by the function \code{\link{readParameters}}.} } \value{ returns \code{TRUE} if succesful and gives an error and returns \code{FALSE} otherwise. } \description{ \code{checkIraceScenario} tests that the given irace scenario can be run by checking the scenario settings provided and trying to run the target-algorithm. } \details{ Provide the \code{parameters} argument only if the parameter list should not be obtained from the parameter file given by the scenario. If the parameter list is provided it will not be checked. This function will try to execute the target-algorithm. } \seealso{ \describe{ \item{\code{\link{readScenario}}}{for reading a configuration scenario from a file.} \item{\code{\link{printScenario}}}{prints the given scenario.} \item{\code{\link{defaultScenario}}}{returns the default scenario settings of \pkg{irace}.} \item{\code{\link{checkScenario}}}{to check that the scenario is valid.} } } \author{ Manuel López-Ibáñez and Jérémie Dubois-Lacoste } irace/man/readParameters.Rd0000644000176200001440000000752013640446260015347 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/readParameters.R \name{readParameters} \alias{readParameters} \title{readParameters} \usage{ readParameters(file, digits = 4, debugLevel = 0, text) } \arguments{ \item{file}{(\code{character(1)}) \cr Filename containing the definitions of the parameters to be tuned.} \item{digits}{The number of decimal places to be considered for the real parameters.} \item{debugLevel}{(\code{integer(1)}) \cr Larger values produce more verbose output.} \item{text}{(\code{character(1)}) \cr If \code{file} is not supplied and this is, then parameters are read from the value of \code{text} via a text connection.} } \value{ A list containing the definitions of the parameters read. The list is structured as follows: \describe{ \item{\code{names}}{Vector that contains the names of the parameters.} \item{\code{types}}{Vector that contains the type of each parameter 'i', 'c', 'r', 'o'. Numerical parameters can be sampled in a log-scale with 'i,log' and 'r,log' (no spaces).} \item{\code{switches}}{Vector that contains the switches to be used for the parameters on the command line.} \item{\code{domain}}{List of vectors, where each vector may contain two values (minimum, maximum) for real and integer parameters, or possibly more for categorical parameters.} \item{\code{conditions}}{List of R logical expressions, with variables corresponding to parameter names.} \item{\code{isFixed}}{Logical vector that specifies which parameter is fixed and, thus, it does not need to be tuned.} \item{\code{nbParameters}}{An integer, the total number of parameters.} \item{\code{nbFixed}}{An integer, the number of parameters with a fixed value.} \item{\code{nbVariable}}{Number of variable (to be tuned) parameters.} } } \description{ \code{readParameters} reads the parameters to be tuned by \pkg{irace} from a file or directly from a character string. } \details{ Either \code{file} or \code{text} must be given. If \code{file} is given, the parameters are read from the file \code{file}. If \code{text} is given instead, the parameters are read directly from the \code{text} character string. In both cases, the parameters must be given (in \code{text} or in the file whose name is \code{file}) in the expected form. See the documentation for details. If none of these parameters is given, \pkg{irace} will stop with an error. A fixed parameter is a parameter that should not be sampled but instead should be always set to the only value of its domain. In this function we set isFixed to TRUE only if the parameter is a categorical and has only one possible value. If it is an integer and the minimum and maximum are equal, or it is a real and the minimum and maximum values satisfy \code{round(minimum, digits) == round(maximum, digits)}, then the parameter description is rejected as invalid to identify potential user errors. } \examples{ ## Read the parameters directly from text parameters.table <- ' # name switch type values [conditions (using R syntax)] algorithm "--" c (as,mmas,eas,ras,acs) localsearch "--localsearch " c (0, 1, 2, 3) alpha "--alpha " r (0.00, 5.00) beta "--beta " r (0.00, 10.00) rho "--rho " r (0.01, 1.00) ants "--ants " i (5, 100) q0 "--q0 " r (0.0, 1.0) | algorithm == "acs" rasrank "--rasranks " i (1, 100) | algorithm == "ras" elitistants "--elitistants " i (1, 750) | algorithm == "eas" nnls "--nnls " i (5, 50) | localsearch \%in\% c(1,2,3) dlb "--dlb " c (0, 1) | localsearch \%in\% c(1,2,3) ' parameters <- readParameters(text=parameters.table) str(parameters) } \author{ Manuel López-Ibáñez and Jérémie Dubois-Lacoste } irace/man/buildCommandLine.Rd0000644000176200001440000000307513640446260015617 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/race-wrapper.R \name{buildCommandLine} \alias{buildCommandLine} \title{Generate a command-line representation of a configuration} \usage{ buildCommandLine(values, switches) } \arguments{ \item{values}{A vector containing the value of each parameter for the candidate configuration.} \item{switches}{A vector containing the switches of each paramter (in an order that corresponds to the values vector).} } \value{ A string concatenating each element of \code{switches} and \code{values} for all parameters with a space between each pair of parameters (but none between the switches and the corresponding values). } \description{ \code{buildCommandLine} receives two vectors, one containing the values of the parameters, the other containing the switches of the parameters. It builds a string with the switches and the values that can be used as a command line to call the program to be tuned, thus generating one candidate configuration. } \examples{ switches <- c("--switch1 ", "--switch2 ") values <- c("value_1", "value_2") buildCommandLine (values, switches) ## Build a command-line from the results produced by a previous run of irace. # First, load the data produced by irace. irace.logfile <- file.path(system.file(package="irace"), "exdata", "irace-acotsp.Rdata") load(irace.logfile) attach(iraceResults) apply(allConfigurations[1:10, unlist(parameters$names)], 1, buildCommandLine, unlist(parameters$switches)) } \author{ Manuel López-Ibáñez and Jérémie Dubois-Lacoste } irace/man/irace.license.Rd0000644000176200001440000000054013640446260015107 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/main.R \docType{data} \name{irace.license} \alias{irace.license} \title{irace.license} \format{An object of class \code{character} of length 1.} \usage{ irace.license } \description{ A character string containing the license information of \pkg{irace}. } \keyword{datasets} irace/man/getConfigurationByIteration.Rd0000644000176200001440000000215413640446260020067 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/parameterAnalysis.R \name{getConfigurationByIteration} \alias{getConfigurationByIteration} \title{Returns the configurations by the iteration in which they were executed.} \usage{ getConfigurationByIteration(iraceResults = NULL, logFile = NULL, iterations, drop.metadata = FALSE) } \arguments{ \item{iraceResults}{(\code{NULL}) Object created by \pkg{irace} and saved in \code{scenario$logFile}.} \item{logFile}{(\code{NULL}) Log file created by \pkg{irace}, this file must contain the \code{iraceResults} object.} \item{iterations}{The iteration number or a vector of iteration numbers from where the configurations should be obtained.} \item{drop.metadata}{(\code{FALSE}) Remove metadata, such the configuration ID and the ID of the parent, from the returned configurations. See \code{\link{removeConfigurationsMetaData}}.} } \value{ A data frame containing the elite configurations required. } \description{ Returns the configurations by the iteration in which they were executed. } \author{ Manuel López-Ibáñez and Leslie Pérez Cáceres } irace/man/readScenario.Rd0000644000176200001440000000244613640446260015011 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/readConfiguration.R \name{readScenario} \alias{readScenario} \title{readScenario} \usage{ readScenario(filename = "", scenario = list()) } \arguments{ \item{filename}{(\code{character(1)}) \cr Filename from which the scenario will be read. If empty, the default \code{scenarioFile} is used. An example scenario file is provided in \code{system.file(``package="irace",} \code{"templates/scenario.txt.tmpl")}.} \item{scenario}{(\code{list()}) \cr Data structure containing \pkg{irace} settings. The data structure has to be the one returned by the function \code{\link{defaultScenario}} or \code{\link{readScenario}}. This is an initial scenario that is overwritten} } \value{ The scenario list read from the file. The scenario settings not present in the file are not present in the list, i.e., they are \code{NULL}. } \description{ \code{readScenario} reads from a file the scenario settings to be used by \pkg{irace}.. } \seealso{ \describe{ \item{\code{\link{printScenario}}}{prints the given scenario.} \item{\code{\link{defaultScenario}}}{returns the default scenario settings of \pkg{irace}.} \item{\code{\link{checkScenario}}}{to check that the scenario is valid.} } } \author{ Manuel López-Ibáñez and Jérémie Dubois-Lacoste } irace/man/getFinalElites.Rd0000644000176200001440000000201713640446260015303 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/parameterAnalysis.R \name{getFinalElites} \alias{getFinalElites} \title{Return the elite configurations of the final iteration.} \usage{ getFinalElites(iraceResults = NULL, logFile = NULL, n = 0, drop.metadata = FALSE) } \arguments{ \item{iraceResults}{Object created by \pkg{irace} and saved in \code{scenario$logFile}.} \item{logFile}{Log file created by \pkg{irace}, this file must contain the \code{iraceResults} object.} \item{n}{Number of elite configurations to return, if \code{n} is larger than the number of configurations, then only the existing ones are returned.} \item{drop.metadata}{Remove metadata, such the configuration ID and the ID of the parent, from the returned configurations. See \code{\link{removeConfigurationsMetaData}}.} } \value{ A data frame containing the elite configurations required. } \description{ Return the elite configurations of the final iteration. } \author{ Manuel López-Ibáñez and Leslie Pérez Cáceres } irace/man/getConfigurationById.Rd0000644000176200001440000000167713640446260016476 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/parameterAnalysis.R \name{getConfigurationById} \alias{getConfigurationById} \title{Returns the configurations selected by ID.} \usage{ getConfigurationById(iraceResults = NULL, logFile = NULL, ids, drop.metadata = FALSE) } \arguments{ \item{iraceResults}{Object created by \pkg{irace} and saved in \code{scenario$logFile}.} \item{logFile}{Log file created by \pkg{irace}, this file must contain the \code{iraceResults} object.} \item{ids}{The id or a vector of ids of the candidates configurations to obtain.} \item{drop.metadata}{Remove metadata, such the configuration ID and the ID of the parent, from the returned configurations. See \code{\link{removeConfigurationsMetaData}}.} } \value{ A data frame containing the elite configurations required. } \description{ Returns the configurations selected by ID. } \author{ Manuel López-Ibáñez and Leslie Pérez Cáceres } irace/man/irace.main.Rd0000644000176200001440000001035513640446260014416 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/main.R \name{irace.main} \alias{irace.main} \title{irace.main} \usage{ irace.main(scenario = defaultScenario(), output.width = 9999L) } \arguments{ \item{scenario}{(\code{list()}) \cr Data structure containing \pkg{irace} settings. The data structure has to be the one returned by the function \code{\link{defaultScenario}} or \code{\link{readScenario}}.} \item{output.width}{(\code{integer(1)}) The width that must be used for the screen output.} } \value{ (\code{invisible(data.frame)}) A data frame with the set of best algorithm configurations found by \pkg{irace}. The data frame has the following columns: \itemize{ \item \code{.ID.} : Internal id of the candidate configuration. \item \code{Parameter names} : One column per parameter name in \code{parameters}. \item \code{.PARENT.} : Internal id of the parent candidate configuration. } Additionally, this function saves an R data file containing an object called \code{iraceResults}. The path of the file is indicated in \code{scenario$logFile}. The \code{iraceResults} object is a list with the following structure: \describe{ \item{\code{scenario}}{The scenario R object containing the \pkg{irace} options used for the execution. See \code{\link{defaultScenario}} for more information.} \item{\code{parameters}}{The parameters R object containing the description of the target algorithm parameters. See \code{\link{readParameters}}.} \item{\code{allConfigurations}}{The target algorithm configurations generated by \pkg{irace}. This object is a data frame, each row is a candidate configuration, the first column (\code{.ID.}) indicates the internal identifier of the configuration, the following columns correspond to the parameter values, each column named as the parameter name specified in the parameter object. The final column (\code{.PARENT.}) is the identifier of the configuration from which model the actual configuration was sampled.} \item{\code{allElites}}{A list that contains one element per iteration, each element contains the internal identifier of the elite candidate configurations of the corresponding iteration (identifiers correspond to \code{allConfigurations$.ID.}).} \item{\code{iterationElites}}{A vector containing the best candidate configuration internal identifier of each iteration. The best configuration found corresponds to the last one of this vector.} \item{\code{experiments}}{A matrix with configurations as columns and instances as rows. Column names correspond to the internal identifier of the configuration (\code{allConfigurations$.ID.}).} \item{\code{experimentLog}}{A matrix with columns \code{iteration}, \code{instance}, \code{configuration}, \code{time}. This matrix contains the log of all the experiments that \pkg{irace} performs during its execution. The instance column refers to the index of the \code{scenario$instancesList} data frame. Time is saved ONLY when reported by the \code{targetRunner}.} \item{\code{softRestart}}{A logical vector that indicates if a soft restart was performed on each iteration. If \code{FALSE}, then no soft restart was performed.} \item{\code{state}}{A list that contains the state of \pkg{irace}, the recovery is done using the information contained in this object.} \item{\code{testing}}{A list that contains the testing results. The elements of this list are: \code{experiments} a matrix with the testing experiments of the selected configurations in the same format as the explained above and \code{seeds} a vector with the seeds used to execute each experiment.} } } \description{ \code{irace.main} is a higher-level interface to invoke \code{\link{irace}}. } \details{ The function \code{irace.main} checks the correctness of the scenario, prints it, reads the parameter space from \code{scenario$parameterFile}, invokes \code{\link{irace}} and prints its results in various formatted ways. If you want a lower-level interface, please see function \code{\link{irace}}. } \seealso{ \code{\link{irace.cmdline}} a higher-level command-line interface to \code{irace.main}. \code{\link{readScenario}} to read the scenario setup from a file. \code{\link{defaultScenario}} to provide a default scenario for \pkg{irace}. } \author{ Manuel López-Ibáñez and Jérémie Dubois-Lacoste } irace/man/irace.cmdline.Rd0000644000176200001440000001015113640446260015077 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/main.R \name{irace.cmdline} \alias{irace.cmdline} \title{irace.cmdline} \usage{ irace.cmdline(argv = commandArgs(trailingOnly = TRUE)) } \arguments{ \item{argv}{(\code{character()}) \cr The arguments provided on the R command line as a character vector, e.g., \code{c("--scenario", "scenario.txt", "-p", "parameters.txt")}. Using the default value (not providing the parameter) is the easiest way to call \code{irace.cmdline}.} } \value{ (\code{invisible(data.frame)}) A data frame with the set of best algorithm configurations found by \pkg{irace}. The data frame has the following columns: \itemize{ \item \code{.ID.} : Internal id of the candidate configuration. \item \code{Parameter names} : One column per parameter name in \code{parameters}. \item \code{.PARENT.} : Internal id of the parent candidate configuration. } Additionally, this function saves an R data file containing an object called \code{iraceResults}. The path of the file is indicated in \code{scenario$logFile}. The \code{iraceResults} object is a list with the following structure: \describe{ \item{\code{scenario}}{The scenario R object containing the \pkg{irace} options used for the execution. See \code{\link{defaultScenario}} for more information.} \item{\code{parameters}}{The parameters R object containing the description of the target algorithm parameters. See \code{\link{readParameters}}.} \item{\code{allConfigurations}}{The target algorithm configurations generated by \pkg{irace}. This object is a data frame, each row is a candidate configuration, the first column (\code{.ID.}) indicates the internal identifier of the configuration, the following columns correspond to the parameter values, each column named as the parameter name specified in the parameter object. The final column (\code{.PARENT.}) is the identifier of the configuration from which model the actual configuration was sampled.} \item{\code{allElites}}{A list that contains one element per iteration, each element contains the internal identifier of the elite candidate configurations of the corresponding iteration (identifiers correspond to \code{allConfigurations$.ID.}).} \item{\code{iterationElites}}{A vector containing the best candidate configuration internal identifier of each iteration. The best configuration found corresponds to the last one of this vector.} \item{\code{experiments}}{A matrix with configurations as columns and instances as rows. Column names correspond to the internal identifier of the configuration (\code{allConfigurations$.ID.}).} \item{\code{experimentLog}}{A matrix with columns \code{iteration}, \code{instance}, \code{configuration}, \code{time}. This matrix contains the log of all the experiments that \pkg{irace} performs during its execution. The instance column refers to the index of the \code{scenario$instancesList} data frame. Time is saved ONLY when reported by the \code{targetRunner}.} \item{\code{softRestart}}{A logical vector that indicates if a soft restart was performed on each iteration. If \code{FALSE}, then no soft restart was performed.} \item{\code{state}}{A list that contains the state of \pkg{irace}, the recovery is done using the information contained in this object.} \item{\code{testing}}{A list that contains the testing results. The elements of this list are: \code{experiments} a matrix with the testing experiments of the selected configurations in the same format as the explained above and \code{seeds} a vector with the seeds used to execute each experiment.} } } \description{ \code{irace.cmdline} starts \pkg{irace} using the parameters of the command line used to invoke R. } \details{ The function reads the parameters given on the command line used to invoke R, finds the name of the scenario file, initializes the scenario from the file (with the function \code{\link{readScenario}}) and possibly from parameters passed on the command line. It finally starts \pkg{irace} by calling \code{\link{irace.main}}. } \seealso{ \code{\link{irace.main}} to start \pkg{irace} with a given scenario. } \author{ Manuel López-Ibáñez and Jérémie Dubois-Lacoste } irace/man/testConfigurations.Rd0000644000176200001440000000234113640446260016276 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/testing.R \name{testConfigurations} \alias{testConfigurations} \title{testConfigurations} \usage{ testConfigurations(configurations, scenario, parameters) } \arguments{ \item{configurations}{(\code{data.frame}) \cr Parameter configurations of the target algorithm (one per row).} \item{scenario}{(\code{list()}) \cr Data structure containing \pkg{irace} settings. The data structure has to be the one returned by the function \code{\link{defaultScenario}} or \code{\link{readScenario}}.} \item{parameters}{(\code{list()}) \cr Data structure containing the parameter space definition. The data structure has to similar to the one returned by the function \code{\link{readParameters}}.} } \value{ A list with the following elements: \describe{ \item{\code{experiments}}{Experiments results.} \item{\code{seeds}}{Array of the instance seeds used in the experiments.} } } \description{ \code{testConfigurations} executes the given configurations on the testing instances specified in the scenario. } \details{ A test instance set must be provided through \code{scenario$testInstances}. } \seealso{ \code{\link{testing.main}} } \author{ Manuel López-Ibáñez } irace/man/ablation.Rd0000644000176200001440000000625113640446260014201 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/ablation.R \name{ablation} \alias{ablation} \title{Performs ablation between two configurations.} \usage{ ablation(iraceLogFile = NULL, iraceResults = NULL, src = NULL, target = NULL, ab.params = NULL, n.instances = NULL, type = "full", seed = 1234567, ablationLogFile = "log-ablation.Rdata", pdf.file = NULL, pdf.width = 20, mar = c(12, 5, 4, 1), debugLevel = NULL) } \arguments{ \item{iraceLogFile}{Log file created by \pkg{irace}, this file must contain the \code{iraceResults} object.} \item{iraceResults}{Object created by \pkg{irace} and saved in \code{scenario$logFile}.} \item{src, target}{Source and target configuration IDs. If \code{NULL}, then the first configuration ever evaluated is used as source and the best configuration found is used as target.} \item{ab.params}{Parameter names to be used for the ablation. They must be in parameters$names.} \item{n.instances}{Number of instances to be used for the "full" ablation, if not provided firstTest instances are used.} \item{type}{Type of ablation to perform, "full" will execute all instances in the configurations to determine the best performing, "racing" will apply racing to find the best configurations.} \item{seed}{Numerical value to use as seed for the random number generation.} \item{ablationLogFile}{Log file to save the ablation log.} \item{pdf.file}{Prefix that will be used to save the plot file of the ablation results.} \item{pdf.width}{Width provided to create the pdf file.} \item{mar}{Vector with the margins for the ablation plot.} \item{debugLevel}{(\code{integer(1)}) \cr Larger values produce more verbose output.} } \value{ A list containing the following elements: \describe{ \item{configurations}{Configurations tested in the ablation.} \item{instances}{A matrix with the instances used in the experiments. First column has the instances IDs from \code{iraceResults$scenario$instances}, second column the seed assigned to the instance.} \item{experiments}{A matrix with the results of the experiments (columns are configurations, rows are instances).} \item{scenario}{Scenario object with the settings used for the experiments.} \item{trajectory}{IDs of the best configurations at each step of the ablation.} \item{best}{Best configuration found in the experiments.} } } \description{ Ablation is a method for analyzing the differences between two configurations. } \examples{ \donttest{ irace.logfile <- file.path(system.file(package="irace"), "exdata", "sann.rda") load(irace.logfile) # Execute ablation between the first and the best configuration found by irace. ablation(iraceResults = iraceResults, ablationLogFile = NULL) # Execute ablation between two selected configurations, and selecting only a # subset of parameters, directly reading the setup from the irace log file. ablation(iraceLogFile = irace.logfile, src = 1, target = 10, ab.params = c("temp"), ablationLogFile = NULL) } } \references{ C. Fawcett and H. H. Hoos. Analysing differences between algorithm configurations through ablation. Journal of Heuristics, 22(4):431–458, 2016. } \author{ Leslie Pérez Cáceres and Manuel López-Ibáñez } irace/man/parameterFrequency.Rd0000644000176200001440000000346713640446260016260 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/parameterAnalysis.R \name{parameterFrequency} \alias{parameterFrequency} \title{Plot of histogram of parameter values} \usage{ parameterFrequency(configurations, parameters, rows = 4, cols = 3, filename = NULL, pdf.width = 12, col = "gray") } \arguments{ \item{configurations}{(\code{data.frame}) \cr Parameter configurations of the target algorithm (one per row).} \item{parameters}{(\code{list()}) \cr Data structure containing the parameter space definition. The data structure has to similar to the one returned by the function \code{\link{readParameters}}.} \item{rows}{Number of plots per column.} \item{cols}{Number of plots per row.} \item{filename}{Filename prefix to generate the plots. If \code{NULL} the plot displayed but not saved.} \item{pdf.width}{Width for the pdf file generated.} \item{col}{Color of the bar plot.} } \description{ \code{parameterFrequency} plots the frequency of the parameters values in a set of target algorithm configurations. It generates plots showing the frequency of parameter values for each parameter, with \code{rows} * \code{cols} parameters being shown per plot. If a filename is provided the plots are saved in one or more files. } \examples{ \donttest{ ## To use data obtained by irace # First, load the data produced by irace. irace.logfile <- file.path(system.file(package="irace"), "exdata", "irace-acotsp.Rdata") load(irace.logfile) attach(iraceResults) parameterFrequency(allConfigurations, parameters) } } \seealso{ \code{\link{readParameters}} to obtain a valid parameter structure from a parameters file. \code{\link{readConfigurationsFile}} to obtain a set of target algorithm configurations from a configurations file. } \author{ Manuel López-Ibáñez and Leslie Pérez Cáceres } irace/man/psRace.Rd0000644000176200001440000000527013640446260013625 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/parameterExploration.R \name{psRace} \alias{psRace} \title{psRace} \usage{ psRace(iraceLogFile = NULL, iraceResults = NULL, conf.ids = NULL, postselection = NULL, max.experiments = NULL, elites = FALSE, seed = 1234567) } \arguments{ \item{iraceLogFile}{NULL Log file created by \pkg{irace}, this file must contain the \code{iraceResults} object.} \item{iraceResults}{NULL Object created by \pkg{irace} and saved in \code{scenario$logFile}.} \item{conf.ids}{NULL IDs of the configurations in iraceResults$allConfigurations to be used for ablation. If NULL, the elites argument will be used.} \item{postselection}{NULL Percentage of the maxExperiments provided in the scenario to be used in the race.} \item{max.experiments}{NULL Number of experiments available for the race. If NULL budget for the race is set by the parameter scenario$postselection, which defines the percentage of the total budget of \pkg{irace} (iraceResults$scenario$maxExperiments or iraceResults$scenario$maxTime/iraceResults$state$timeEstimate) to use for the postselection.} \item{elites}{FALSE Flag for selecting configurations. If FALSE, the best configurations of each iteration are used for the race. If TRUE, the elite configurtions of each iteration are used for the race.} \item{seed}{1234567 Numerical value to use as seed for the random number generation.} } \value{ If iraceLogFile is NULL, it returns a list with the following elements: \describe{ \item{configurations}{Configurations used in the race.} \item{instances}{A matrix with the instances used in the experiments. First column has the instances ids from iraceResults$scenario$instances, second column the seed assigned to the instance.} \item{maxExperiments}{Maximum number of experiments set for the race.} \item{experiments}{A matrix with the results of the experiments (columns are configurations, rows are instances).} \item{elites}{Best configurations found in the experiments.} } If \code{iraceLogFile} is provided this list object will be saved in \code{iraceResults$psrace.log}. } \description{ \code{psRace} performs a postselection race a set of configurations. } \examples{ \dontrun{ # Execute the postselection automatically after irace parameters <- readParameters("parameters.txt") scenario <- readScenario(filename="scenario.txt", scenario=defaultScenario()) # Use 10\% of the total budget scenario$postselection <- 0.1 irace(scenario=scenario, parameters=parameters) # Execute the postselection after the execution of \\pkg{irace}. psRace(iraceLogFile="irace.Rdata", max.experiments=120) } } \author{ Leslie Pérez Cáceres } irace/man/target.evaluator.default.Rd0000644000176200001440000000525413640446260017324 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/race-wrapper.R \name{target.evaluator.default} \alias{target.evaluator.default} \title{target.evaluator.default} \usage{ target.evaluator.default(experiment, num.configurations, all.conf.id, scenario, target.runner.call) } \arguments{ \item{experiment}{A list describing the experiment. It contains at least: \describe{ \item{\code{id.configuration}}{An alphanumeric string that uniquely identifies a configuration;} \item{\code{id.instance}}{An alphanumeric string that uniquely identifies an instance;} \item{\code{seed}}{Seed for the random number generator to be used for this evaluation, ignore the seed for deterministic algorithms;} \item{\code{instance}}{String giving the instance to be used for this evaluation;} \item{\code{bound}}{(only when \code{capping} is enabled) Time bound for the execution;} \item{\code{configuration}}{1-row data frame with a column per parameter name;} \item{\code{switches}}{Vector of parameter switches (labels) in the order of parameters used in \code{configuration}.} }} \item{num.configurations}{Number of configurations alive in the race.} \item{all.conf.id}{Vector of configuration IDs of the alive configurations.} \item{scenario}{(\code{list()}) \cr Data structure containing \pkg{irace} settings. The data structure has to be the one returned by the function \code{\link{defaultScenario}} or \code{\link{readScenario}}.} \item{target.runner.call}{String describing the call to \code{targetRunner} that corresponds to this call to \code{targetEvaluator}. This is used for providing extra information to the user, for example, in case \code{targetEvaluator} fails.} } \value{ The function \code{targetEvaluator} must return a list with one element \code{"cost"}, the numerical value corresponding to the cost measure of the given configuration on the given instance. The return list may also contain the following optional elements that are used by \pkg{irace} for reporting errors in \code{targetEvaluator}: \describe{ \item{\code{error}}{is a string used to report an error;} \item{\code{outputRaw}}{is a string used to report the raw output of calls to an external program or function;} \item{\code{call}}{is a string used to report how \code{targetRunner} called an external program or function.} } } \description{ \code{target.evaluator.default} is the default \code{targetEvaluator} function that is invoked if \code{targetEvaluator} is a string (by default \code{targetEvaluator} is \code{NULL} and this function is not invoked). You can use it as an advanced example of how to create your own \code{targetEvaluator} function. } \author{ Manuel López-Ibáñez and Jérémie Dubois-Lacoste } irace/man/irace-package.Rd0000644000176200001440000001374013640446260015065 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/irace-package.R \docType{package} \name{irace-package} \alias{irace-package} \title{The irace package: \packageTitle{irace}} \description{ \packageDescription{irace} } \details{ License: GPL (>= 2) } \examples{ ####################################################################### # This example illustrates how to tune the parameters of the simulated # annealing algorithm (SANN) provided by the optim() function in the # R base package. The goal in this example is to optimize instances of # the following family: # f(x) = lambda * f_rastrigin(x) + (1 - lambda) * f_rosenbrock(x) # where lambda follows a normal distribution whose mean is 0.9 and # standard deviation is 0.02. f_rastrigin and f_rosenbrock are the # well-known Rastrigin and Rosenbrock benchmark functions (taken from # the cmaes package). In this scenario, different instances are given # by different values of lambda. ####################################################################### ## First we provide an implementation of the functions to be optimized: f_rosenbrock <- function (x) { d <- length(x) z <- x + 1 hz <- z[1:(d - 1)] tz <- z[2:d] s <- sum(100 * (hz^2 - tz)^2 + (hz - 1)^2) return(s) } f_rastrigin <- function (x) { sum(x * x - 10 * cos(2 * pi * x) + 10) } ## We generate 200 instances (in this case, weights): weights <- rnorm(200, mean = 0.9, sd = 0.02) ## On this set of instances, we are interested in optimizing two ## parameters of the SANN algorithm: tmax and temp. We setup the ## parameter space as follows: parameters.table <- ' tmax "" i (1, 5000) temp "" r (0, 100) ' ## We use the irace function readParameters to read this table: parameters <- readParameters(text = parameters.table) ## Next, we define the function that will evaluate each candidate ## configuration on a single instance. For simplicity, we restrict to ## three-dimensional functions and we set the maximum number of ## iterations of SANN to 5000. target.runner <- function(experiment, scenario) { instance <- experiment$instance configuration <- experiment$configuration D <- 3 par <- runif(D, min=-1, max=1) fn <- function(x) { weight <- instance return(weight * f_rastrigin(x) + (1 - weight) * f_rosenbrock(x)) } res <- stats::optim(par,fn, method="SANN", control=list(maxit=5000 , tmax = as.numeric(configuration[["tmax"]]) , temp = as.numeric(configuration[["temp"]]) )) ## New output interface in irace 2.0. This list may also contain: ## - 'time' if irace is called with 'maxTime' ## - 'error' is a string used to report an error ## - 'outputRaw' is a string used to report the raw output of calls to ## an external program or function. ## - 'call' is a string used to report how target.runner called the ## external program or function. return(list(cost = res$value)) } ## We define a configuration scenario by setting targetRunner to the ## function define above, instances to the first 100 random weights, and ## a maximum budget of 1000 calls to targetRunner. scenario <- list(targetRunner = target.runner, instances = weights[1:100], maxExperiments = 1000, # Do not create a logFile logFile = "") ## We check that the scenario is valid. This will also try to execute ## target.runner. checkIraceScenario(scenario, parameters = parameters) \donttest{ ## We are now ready to launch irace. We do it by means of the irace ## function. The function will print information about its ## progress. This may require a few minutes, so it is not run by default. tuned.confs <- irace(scenario = scenario, parameters = parameters) ## We can print the best configurations found by irace as follows: configurations.print(tuned.confs) ## We can evaluate the quality of the best configuration found by ## irace versus the default configuration of the SANN algorithm on ## the other 100 instances previously generated. ## To do so, first we apply the default configuration of the SANN ## algorithm to these instances: test <- function(configuration) { res <- lapply(weights[101:200], function(x) target.runner( experiment = list(instance = x, configuration = configuration), scenario = scenario)) return (sapply(res, getElement, name = "cost")) } default <- test(data.frame(tmax=10, temp=10)) ## We extract and apply the winning configuration found by irace ## to these instances: tuned <- test (removeConfigurationsMetaData(tuned.confs[1,])) ## Finally, we can compare using a boxplot the quality obtained with the ## default parametrization of SANN and the quality obtained with the ## best configuration found by irace. boxplot(list(default = default, tuned = tuned)) } } \references{ Manuel López-Ibáñez, Jérémie Dubois-Lacoste, Leslie Pérez Cáceres, Thomas Stützle, and Mauro Birattari. The irace package: Iterated Racing for Automatic Algorithm Configuration. \emph{Operations Research Perspectives}, 2016. \doi{10.1016/j.orp.2016.09.002} Manuel López-Ibáñez, Jérémie Dubois-Lacoste, Thomas Stützle, and Mauro Birattari. \emph{The irace package, Iterated Race for Automatic Algorithm Configuration}. Technical Report TR/IRIDIA/2011-004, IRIDIA, Université Libre de Bruxelles, Belgium, 2011. Manuel López-Ibáñez and Thomas Stützle. The Automatic Design of Multi-Objective Ant Colony Optimization Algorithms. \emph{IEEE Transactions on Evolutionary Computation}, 2012. } \seealso{ \code{\link{irace.main}} to start \pkg{irace} with a given scenario. } \author{ Maintainers: Manuel López-Ibáñez and Leslie Pérez Cáceres \email{irace-package@googlegroups.com} } \keyword{automatic} \keyword{configuration} \keyword{optimize} \keyword{package} \keyword{tuning} irace/man/irace.version.Rd0000644000176200001440000000052713640446260015157 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/version.R \docType{data} \name{irace.version} \alias{irace.version} \title{irace.version} \format{An object of class \code{character} of length 1.} \usage{ irace.version } \description{ A character string containing the version of \pkg{irace}. } \keyword{datasets} irace/man/printScenario.Rd0000644000176200001440000000155213640446260015227 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/readConfiguration.R \name{printScenario} \alias{printScenario} \title{Prints the given scenario} \usage{ printScenario(scenario) } \arguments{ \item{scenario}{(\code{list()}) \cr Data structure containing \pkg{irace} settings. The data structure has to be the one returned by the function \code{\link{defaultScenario}} or \code{\link{readScenario}}.} } \description{ Prints the given scenario } \seealso{ \describe{ \item{\code{\link{readScenario}}}{for reading a configuration scenario from a file.} \item{\code{\link{printScenario}}}{prints the given scenario.} \item{\code{\link{defaultScenario}}}{returns the default scenario settings of \pkg{irace}.} \item{\code{\link{checkScenario}}}{to check that the scenario is valid.} } } \author{ Manuel López-Ibáñez and Jérémie Dubois-Lacoste } irace/man/irace2pyimp.Rd0000644000176200001440000000651313640446260014635 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/irace2pyimp.R \name{irace2pyimp} \alias{irace2pyimp} \title{Convert an \code{irace.Rdata} file into the format supported by PyImp} \usage{ irace2pyimp(file = "./irace.Rdata", normalise = "none", outdir = "./pyimp-input/", instanceFeatureFile = NA, filterConditions = NA, defaultConfigurationID = 1, ignoreUnsupported = 0) } \arguments{ \item{file}{(\code{character(1)}) \cr Filename of the \code{.Rdata} file generated by irace after a tuning run is finished.} \item{normalise}{(\code{none} | \code{instance} | \code{feature}) \cr Normalise the cost metric values into \code{[0, 1]} range before converting to PyImp format. Possible values are:\cr * \code{none} (default): no normalisation. \cr * \code{instance} : normalisation is done per instance. \cr * \code{feature} : normalisation is based on features, i.e., instances with the same feature-vector values are grouped together and the normalised cost is calculated per group.} \item{outdir}{(\code{character(1)}) \cr Directory where all generated files are stored.} \item{instanceFeatureFile}{(\code{character(1)}) \cr A \code{.csv} file containing instance features (one line per instance, sorted in the same order as the list of instances input to irace). The first line contains feature names.} \item{filterConditions}{Only extract data that satisfies the given conditions. The conditions are in R expression format.} \item{defaultConfigurationID}{Index of default configuration (starting from 1), used by ablation analysis.} \item{ignoreUnsupported}{Forbidden configurations and repairConfiguration are not supported by the script. Set ignoreUnsupported=1 to ignore them and proceed with your own risk. This may cause some unwanted behaviours, e.g., forbidden configurations may appear in ablation analysis's path.} } \description{ This function converts an \code{irace.Rdata} file generated by irace into the input format supported by the parameter importance analysis tool \code{PyImp} (https://github.com/automl/ParameterImportance). } \details{ The generated files include: \itemize{ \item \code{params.pcs} : a text file containing the parameter space definition. \item \code{runhistory.json} : a JSON file containing the list of algorithm configurations evaluated during the tuning and the performance data obtained. \item \code{traj_aclib2.json} : a JSON file containing the best configurations after each iteration of irace. The last configuration will be used as the target configuration in ablation analysis. \item \code{scenario.txt} : a text file containing the definition of the tuning scenario. \item \code{instances.txt} : a text file containing the list of instances. \item \code{features.csv} : a text file containing instance features. If no instance features are provided, the index of each instance will be used as a feature. } } \examples{ \dontrun{ irace2pyimp(file='irace.Rdata', outdir='pyimp-run') irace2pyimp(file='irace.Rdata', normalise='feature', instanceFeatureFile='feature.csv', filterConditions="algorithm!='mas'") } cat("See more examples in '", file.path(system.file(package="irace"), "examples/irace2pyimp/acotsp/run.sh"), "' and in '", file.path(system.file(package="irace"), "examples/irace2pyimp/002-TemplateDesign/run.sh"), "'\\n") } \author{ Nguyen Dang and Manuel López-Ibáñez } irace/man/parallelCoordinatesPlot.Rd0000644000176200001440000000367413640446260017244 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/parameterAnalysis.R \name{parallelCoordinatesPlot} \alias{parallelCoordinatesPlot} \title{parallelCoordinatesPlot} \usage{ parallelCoordinatesPlot(configurations, parameters, param_names = parameters$names, hierarchy = TRUE, filename = NULL, pdf.width = 14, mar = c(8, 1, 4, 1)) } \arguments{ \item{configurations}{(\code{data.frame}) \cr Parameter configurations of the target algorithm (one per row).} \item{parameters}{(\code{list()}) \cr Data structure containing the parameter space definition. The data structure has to similar to the one returned by the function \code{\link{readParameters}}.} \item{param_names}{Parameters names that should be included. Default: parameters$names.} \item{hierarchy}{If \code{TRUE} conditional parameters will be displayed in a different plot. Default \code{TRUE}.} \item{filename}{Filename prefix to generate the plots. If \code{NULL} the plot displayed but not saved.} \item{pdf.width}{Width for the pdf file generated.} \item{mar}{Margin to use for the plot. See \code{\link{par}}.} } \value{ A set of parallel coordinates plots showing the parameters values. If a filename is provided this plots are saved in one or more files. } \description{ \code{parallelCoordinatesPlot} plots a set of parameter configurations in parallel coordinates. } \examples{ \donttest{ ## To use data obtained by irace # First, load the data produced by irace. irace.logfile <- file.path(system.file(package="irace"), "exdata", "irace-acotsp.Rdata") load(irace.logfile) attach(iraceResults) parallelCoordinatesPlot(allConfigurations, parameters, hierarchy = FALSE) } } \seealso{ \code{\link{readParameters}} to obtain a valid parameter structure from a parameters file. \code{\link{readConfigurationsFile}} to obtain a set of target algorithm configurations from a configurations file. } \author{ Manuel López-Ibáñez and Leslie Pérez Cáceres } irace/man/target.runner.default.Rd0000644000176200001440000000450713640446260016633 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/race-wrapper.R \name{target.runner.default} \alias{target.runner.default} \title{target.runner.default} \usage{ target.runner.default(experiment, scenario) } \arguments{ \item{experiment}{A list describing the experiment. It contains at least: \describe{ \item{\code{id.configuration}}{An alphanumeric string that uniquely identifies a configuration;} \item{\code{id.instance}}{An alphanumeric string that uniquely identifies an instance;} \item{\code{seed}}{Seed for the random number generator to be used for this evaluation, ignore the seed for deterministic algorithms;} \item{\code{instance}}{String giving the instance to be used for this evaluation;} \item{\code{bound}}{(only when \code{capping} is enabled) Time bound for the execution;} \item{\code{configuration}}{1-row data frame with a column per parameter name;} \item{\code{switches}}{Vector of parameter switches (labels) in the order of parameters used in \code{configuration}.} }} \item{scenario}{(\code{list()}) \cr Data structure containing \pkg{irace} settings. The data structure has to be the one returned by the function \code{\link{defaultScenario}} or \code{\link{readScenario}}.} } \value{ If \code{targetEvaluator} is \code{NULL}, then the \code{targetRunner} function must return a list with at least one element \code{"cost"}, the numerical value corresponding to the evaluation of the given configuration on the given instance. If the scenario option \code{maxTime} is non-zero or if \code{capping} is enabled then the list must contain at least another element \code{"time"} that reports the execution time for this call to \code{targetRunner}. The return list may also contain the following optional elements that are used by \pkg{irace} for reporting errors in \code{targetRunner}: \describe{ \item{\code{error}}{is a string used to report an error;} \item{\code{outputRaw}}{is a string used to report the raw output of calls to an external program or function;} \item{\code{call}}{is a string used to report how \code{targetRunner} called an external program or function.} } } \description{ \code{target.runner.default} is the default targetRunner function. You can use it as an advanced example of how to create your own targetRunner function. } \author{ Manuel López-Ibáñez and Jérémie Dubois-Lacoste } irace/man/plotAblation.Rd0000644000176200001440000000175413640446260015043 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/ablation.R \name{plotAblation} \alias{plotAblation} \title{Create plot from an ablation log} \usage{ plotAblation(ab.log = NULL, abLogFile = NULL, pdf.file = NULL, pdf.width = 20, type = c("mean", "boxplot"), mar = par("mar"), ylab = "Mean configuration cost", ...) } \arguments{ \item{ab.log}{Ablation log returned by \code{\link{ablation}}.} \item{abLogFile}{Rdata file containing the ablation log.} \item{pdf.file}{Output filename.} \item{pdf.width}{Width provided to create the pdf file.} \item{type}{Type of plots. Supported values are \code{"mean"} and \code{"boxplot"}.} \item{mar}{Vector with the margins for the ablation plot.} \item{ylab}{Label of y-axis.} \item{...}{Further graphical parameters may also be supplied as arguments. See \code{plot.default}.} } \description{ Create plot from an ablation log } \seealso{ \code{\link{ablation}} } \author{ Leslie Pérez Cáceres and Manuel López-Ibáñez } irace/man/read_pcs_file.Rd0000644000176200001440000000405613640446260015170 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/readParameters.R \name{read_pcs_file} \alias{read_pcs_file} \title{read_pcs_file} \usage{ read_pcs_file(file, digits = 4, debugLevel = 0, text) } \arguments{ \item{file}{(\code{character(1)}) \cr Filename containing the definitions of the parameters to be tuned.} \item{digits}{The number of decimal places to be considered for the real parameters.} \item{debugLevel}{(\code{integer(1)}) \cr Larger values produce more verbose output.} \item{text}{(\code{character(1)}) \cr If \code{file} is not supplied and this is, then parameters are read from the value of \code{text} via a text connection.} } \value{ A string representing the parameters in irace format. } \description{ Read parameters in PCS (AClib) format and write them in irace format. } \details{ Either \code{file} or \code{text} must be given. If \code{file} is given, the parameters are read from the file \code{file}. If \code{text} is given instead, the parameters are read directly from the \code{text} character string. In both cases, the parameters must be given (in \code{text} or in the file whose name is \code{file}) in the expected form. See the documentation for details. If none of these parameters is given, \pkg{irace} will stop with an error. } \examples{ ## Read the parameters directly from text pcs.table <- ' # name values [conditions (using R syntax)] algorithm {as,mmas,eas,ras,acs}[as] localsearch {0, 1, 2, 3}[0] alpha [0.00, 5.00][1] beta [0.00, 10.00][1] rho [0.01, 1.00][0.95] ants [5, 100][10]i q0 [0.0, 1.0][0] rasrank [1, 100][1]i elitistants [1, 750][1]i nnls [5, 50][5]i dlb {0, 1}[1] Conditionals: q0 | algorithm in {acs} rasrank | algorithm in {ras} elitistants | algorithm in {eas} nnls | localsearch in {1,2,3} dlb | localsearch in {1,2,3} ' parameters.table <- read_pcs_file(text=pcs.table) parameters <- readParameters(text=parameters.table) str(parameters) } \author{ Manuel López-Ibáñez } irace/man/irace.Rd0000644000176200001440000001160513640446260013472 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/irace.R \name{irace} \alias{irace} \title{irace} \usage{ irace(scenario, parameters) } \arguments{ \item{scenario}{(\code{list()}) \cr Data structure containing \pkg{irace} settings. The data structure has to be the one returned by the function \code{\link{defaultScenario}} or \code{\link{readScenario}}.} \item{parameters}{(\code{list()}) \cr Data structure containing the parameter space definition. The data structure has to similar to the one returned by the function \code{\link{readParameters}}.} } \value{ (\code{data.frame}) A data frame with the set of best algorithm configurations found by \pkg{irace}. The data frame has the following columns: \itemize{ \item \code{.ID.} : Internal id of the candidate configuration. \item \code{Parameter names} : One column per parameter name in \code{parameters}. \item \code{.PARENT.} : Internal id of the parent candidate configuration. } Additionally, this function saves an R data file containing an object called \code{iraceResults}. The path of the file is indicated in \code{scenario$logFile}. The \code{iraceResults} object is a list with the following structure: \describe{ \item{\code{scenario}}{The scenario R object containing the \pkg{irace} options used for the execution. See \code{\link{defaultScenario}} for more information.} \item{\code{parameters}}{The parameters R object containing the description of the target algorithm parameters. See \code{\link{readParameters}}.} \item{\code{allConfigurations}}{The target algorithm configurations generated by \pkg{irace}. This object is a data frame, each row is a candidate configuration, the first column (\code{.ID.}) indicates the internal identifier of the configuration, the following columns correspond to the parameter values, each column named as the parameter name specified in the parameter object. The final column (\code{.PARENT.}) is the identifier of the configuration from which model the actual configuration was sampled.} \item{\code{allElites}}{A list that contains one element per iteration, each element contains the internal identifier of the elite candidate configurations of the corresponding iteration (identifiers correspond to \code{allConfigurations$.ID.}).} \item{\code{iterationElites}}{A vector containing the best candidate configuration internal identifier of each iteration. The best configuration found corresponds to the last one of this vector.} \item{\code{experiments}}{A matrix with configurations as columns and instances as rows. Column names correspond to the internal identifier of the configuration (\code{allConfigurations$.ID.}).} \item{\code{experimentLog}}{A matrix with columns \code{iteration}, \code{instance}, \code{configuration}, \code{time}. This matrix contains the log of all the experiments that \pkg{irace} performs during its execution. The instance column refers to the index of the \code{scenario$instancesList} data frame. Time is saved ONLY when reported by the \code{targetRunner}.} \item{\code{softRestart}}{A logical vector that indicates if a soft restart was performed on each iteration. If \code{FALSE}, then no soft restart was performed.} \item{\code{state}}{A list that contains the state of \pkg{irace}, the recovery is done using the information contained in this object.} \item{\code{testing}}{A list that contains the testing results. The elements of this list are: \code{experiments} a matrix with the testing experiments of the selected configurations in the same format as the explained above and \code{seeds} a vector with the seeds used to execute each experiment.} } } \description{ \code{irace} implements iterated Race. It receives some parameters to be tuned and returns the best configurations found, namely, the elite configurations obtained from the last iterations (and sorted by rank). } \details{ The function \code{irace} executes the tuning procedure using the information provided in \code{scenario} and \code{parameters}. Initially it checks the correctness of \code{scenario} and recovers a previous execution if \code{scenario$recoveryFile} is set. A R data file log of the execution is created in \code{scenario$logFile}. } \examples{ \dontrun{ parameters <- readParameters("parameters.txt") scenario <- readScenario(filename = "scenario.txt", scenario = defaultScenario()) irace(scenario = scenario, parameters = parameters) } } \seealso{ \describe{ \item{\code{\link{irace.main}}}{a higher-level command-line interface to \code{irace}.} \item{\code{\link{readScenario}}}{for reading a configuration scenario from a file.} \item{\code{\link{readParameters}}}{read the target algorithm parameters from a file.} \item{\code{\link{defaultScenario}}}{returns the default scenario settings of \pkg{irace}.} \item{\code{\link{checkScenario}}}{to check that the scenario is valid.} } } \author{ Manuel López-Ibáñez and Jérémie Dubois-Lacoste } irace/man/irace.usage.Rd0000644000176200001440000000060413640446260014572 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/main.R \name{irace.usage} \alias{irace.usage} \title{irace.usage} \usage{ irace.usage() } \description{ \code{irace.usage} This function prints all command-line options of \pkg{irace}, with the corresponding switches and a short description. } \author{ Manuel López-Ibáñez and Jérémie Dubois-Lacoste } irace/DESCRIPTION0000644000176200001440000000415113640644063013052 0ustar liggesusersPackage: irace Type: Package Title: Iterated Racing for Automatic Algorithm Configuration Description: Iterated race is an extension of the Iterated F-race method for the automatic configuration of optimization algorithms, that is, (offline) tuning their parameters by finding the most appropriate settings given a set of instances of an optimization problem. M. López-Ibáñez, J. Dubois-Lacoste, L. Pérez Cáceres, T. Stützle, and M. Birattari (2016) . Version: 3.4.1 Authors@R: c(person("Manuel", "López-Ibáñez", role = c("aut", "cre"), email = "manuel.lopez-ibanez@manchester.ac.uk", comment = c(ORCID = "0000-0001-9974-1295")), person("Jérémie", "Dubois-Lacoste", role = "aut"), person("Leslie", "Pérez Cáceres", role = "aut"), person("Thomas", "Stützle", role = "aut"), person("Mauro", "Birattari", role = "aut"), person("Eric", "Yuan", role = "ctb"), person("Prasanna", "Balaprakash", role = "ctb"), person("Nguyen", "Dang", role = "ctb", email = "nttd@st-andrews.ac.uk")) Depends: R (>= 3.2.0) Imports: stats, utils, compiler, R6 Suggests: Rmpi (>= 0.6.0), parallel, knitr, testthat, withr, mlr (>= 2.15.0), ParamHelpers, devtools VignetteBuilder: knitr License: GPL (>= 2) URL: http://iridia.ulb.ac.be/irace, https://github.com/MLopez-Ibanez/irace BugReports: https://github.com/MLopez-Ibanez/irace/issues ByteCompile: yes LazyData: yes Encoding: UTF-8 RoxygenNote: 6.1.1 SystemRequirements: GNU make NeedsCompilation: yes Packaged: 2020-03-31 08:07:18 UTC; manu Author: Manuel López-Ibáñez [aut, cre] (), Jérémie Dubois-Lacoste [aut], Leslie Pérez Cáceres [aut], Thomas Stützle [aut], Mauro Birattari [aut], Eric Yuan [ctb], Prasanna Balaprakash [ctb], Nguyen Dang [ctb] Maintainer: Manuel López-Ibáñez Repository: CRAN Date/Publication: 2020-03-31 13:40:03 UTC irace/build/0000755000176200001440000000000013640575065012447 5ustar liggesusersirace/build/vignette.rds0000644000176200001440000000033513640575065015007 0ustar liggesusers} @G,uQu1Je5[O0|L"hdp(-Ce2<#ۤd 09juUϔE1F5罞XB; /0$ zboe[MF,ۺ;U|.fl\c{i3 V⃆gAH25뾟iѳirace/build/partial.rdb0000644000176200001440000001633413640575061014577 0ustar liggesusers]su_~"%Kj(BQ$ҠHZB.MbGY mN|'e[JŹ阊+Ĺf*bWRXfgvfivUP5|Mlc>{{fۛsFFrûy3:$jQGNjıר5;GtXGnxAS\ndXcV__\^vvC {Mh_5 HyˮE0ESn놵@lQKkQ7o"{< Aݷ(Ѻ7lX^ d 3lhE.V?}ZRJ>{kT/ GbKL[kkPuxS|}~_C`$j=u&uIE!e l(g# 1v~#Qz0RzvӢym"PJ0Zv)3piez1$(j{4bG2}niCH`ȣ Tx)ʁ&Abb 4pcHa2݌V};>?!P~3 8SI(vU447a!O`;H2i?!PRjfWα&%\;3G$F} OSYQI-s}E)kt/ymsss,Cw<3i~b<1u?v2睛.UVziYTK;v*_1ꒇAnE4l\xv-ur\k%jk)TX-av|bi!ӷ5M<* 3q$+X nA~ԭ;FNG/mi=G{ &Bߝ#Zy;4\Ynyr!dc ֢^a  &}q~?I}g𻱿Hs_ۖE 7>}~iRe"[l3Ciwkui34I&-c{颋Oy0 Nc4;,e&B}aX:~FZvc0NY W23V)z5c2]/@CU.MҐG5 i : oe`(UC ڃlӻ3K{4Z m3״:S & ƃz\z:eyMxwM*mbx2]-X,ػiA)nsRW|`;|P(V(f(XU2/a%~kK7Wa8A^Ozӹ,qAtR "B~z( W@n8+WFs9~ͨ(sWn\#7,}(uI*i|g얲#,ݝ\ZYXsP2eL 2y2IV,V[Zm4;!K&l(yhyhuL9,%ߚ"Z5]#/GcX3,e/xvUs: 9K9Y`l6Y0⋜eIJjnMY*Tx QiVU/%%뚣n8KQA<B4B [!+W@+4g-{"JuZfKsֻ~%yO[g)\ñ[ܜ@^%l4dAM%T,5-OpJJs$rRn&7lQA̎ S(1Nzįp"8ZC.뱹,P0`Ucћlz/"BT!?$^ܓ4BJM2J"'"zWy"~lfoK@.l=Mnxۜo1{,rT]IOSP:-f ,X7j(ҶVENV6q+|7=1:*Ă~[/2-^;~fb<:/TٰgX̜|Y~Gp@'= *|{K0Ns~0!nbew*L_?_! Vx4c"_"%Lij/{ZؔnXx~~ijoզ<099oPțB"B*2=Kȴ--=|hݹukzLܾ-oS2\bi\b7PuY@ڷqt"]K)/cEZ$9J.pIéSg2O1kn"@Wn4`foia ڇLoq4K[t#PuN 0u답2إ҈SnA,lΪ_|g7_@@K.)I"?=˙lVyig,60tLO?MYMO>lNGQQ)4/btXucE,YOnQ,6PaW*# o\ RE E(~1X5tv`duO6:r4)o{T-I,388Pul!X{5 mbt'1o˃Y6~CL#J'/،Pu)JI~pyہk9Hsb zJD`r^B8B>_'(?:ʶC7 S^G@g=ƚVmX]~ZmnLҜTjM5 :@'LMBHBl@q9d@}tf[)fSUjڈU!G eyi L*1[ϡ-x'ɖDP4Ny_A@3ъvOU-J_i˥+ſ*]oz A$gLOZ֡=ck(l (Z*#^׬5ctc-?&uDz6jhYӄ?[t>o5xmo~wtT˓VAN"=LBW]8?߅ W37Kqs{Ҽ"VM|h{$Niz^{Xd}Ybb ?jOv< 2QxV :SC)kğQ?H(j]sΟ]s~ 2^:g̬ n6Yٝ?S ,Dztiqq:j3de .c{9l!\ ќm&Vqb &H,,=+XsH_ʄka걛_GiQgEr~f9q+%\|fDs[('}B\2 k=a1Ob;M°u[ȾTipeѵGRH lOda}=ǝƟ=eP@c{.{8`D׈8Ǖyg'5^3cwnnR`=t۩E쨻Yf¸{]Ȭ1iKcU5m'aځ]M:#~XٜQThA~* 9?zG.t{v(mPuOȐ \x)ˁzBwP@O`[];H7A}Uci'"݌樂D]T#>H]TУN5Y?&Pe [IP&>{}!j\܏Z+QhjnwiIb=|7)!R>B葴ۋo-˥xGniudž[sQ\X"=ZuVCìv;.#UjՅ>"7Lt;F:5g^#BBd?pCSu-ndbB'߽*Qm6)3<:ƪ b?QOz5I-h&cfFޑ=2@ai#0/ffV8=74ѧdKFnjR3 a9Cl'dbUԙYl8qVU]ϱC]iD0njWi̊б|۞(}NBs:!aN vB!&ob;N}ӆ&"<>؆GEӏhhX:D"[mڛJRjenw1 ,_=ĥCamQ.XK{9NGokJAܣƫn6#bR.,0vW۴,[ =3'5p:fO.=oz쉕vE_i~IQN,J;|D}+;Mn} v\zqrLp`4{]PvG^$Xk b1 u*! ma/o|ha!;B\܅ן=崁F/,]ƻ.?gbunSshPEwe>d\g7*Fg*wfި'˱qh3f;.%U^\XSgyxqn_pEBep^ʀc~|{'a@|L:D?~Ǚ?dw{_rRVFsH_«~AAVߐ{>P %LޔᏟ,#AC(a\ytcuieY,Rdyo[%w.r"8//r Tx٫;ó 9."@7e@߽4jx$VB^@΁֕{H/pF,Դ;p s(r8_yYirace/tests/0000755000176200001440000000000013640446260012504 5ustar liggesusersirace/tests/testthat/0000755000176200001440000000000013640575066014353 5ustar liggesusersirace/tests/testthat/irace2pyimp/0000755000176200001440000000000013640446260016570 5ustar liggesusersirace/tests/testthat/irace2pyimp/002-TemplateDesign/0000755000176200001440000000000013640446260021774 5ustar liggesusersirace/tests/testthat/irace2pyimp/002-TemplateDesign/traj_aclib2.json0000644000176200001440000000045513640446260025047 0ustar liggesusers{"cputime": 32, "evaluations": 7, "cost": 0.611593, "incumbent": ["n_templates_middle=1", "n_templates_delta=1", "n_slots_middle=10", "n_slots_delta=11", "n_variations_middle=30", "n_variations_delta=3", "demand_range_middle=23", "demand_range_delta=1"], "total_cpu_time": null, "wallclock_time": 32} irace/tests/testthat/irace2pyimp/002-TemplateDesign/scenario.txt0000644000176200001440000000045613640446260024345 0ustar liggesusersalgo=/circa/home/nttd/instance-generation-conjure/instance-generation/experiments/maxint-50-log/002-TemplateDesign/target-runner execDir=./ deterministic=false run_obj=quality cutoff_time=1 tunerTimeout=999999 overall_obj=mean paramfile=params.pcs instance_file=instances.txt feature_file=features.csv irace/tests/testthat/irace2pyimp/002-TemplateDesign/runhistory.json.gz0000644000176200001440000001722413640446260025542 0ustar liggesusers^runhistory.json]ˮ7+ mc3+`ˍ<u%+7OEymˎb0>?w_>__?}׻?/?o_wn/~ݿG>w~?}&%3YeFlwŻLԙ) /yK\TNL~oʉ*|+.e&DU$V+ruobX(qj❪*#i4<  F;Ւx]"HYqU]$R)3>’ >>sFtu;%3j.܉ύ&\Y9!4^UM=ӊzM&H9F޿8yɕ zg\DJ>h&l CuPܽfZM[Ըp>o*K,GU' ^`"^K]Q9Q{%'ex{E.ߗ_FoO@#(㵼ޫEyI'̠_hhZ6+bIu/.7k k,b+[¶eV^;1{5 k/}`XYphaKV @U$,K_GHĂ\qK]UmѓbU[%"iHU׍Y6^ÿ_t,DFͱD5,kD` c"rpQ,k,+櫁%oF 8|U[[2sBR5_ p*a/eQNu+3:͊%/V0bqBnRo%#n/"-^U$ SY`d*փN +X* :cHȲװ P ceŚ`e%CǪ`@,ǢʄNT0U ό_Y"w̘T@.UDz)5[xԤO,\lu!@k Iջ4v!^8Ab-]ʱ\O^9|x6LՖOf'5Xu^pNFnRՕen 0WZQ@.kVV_·[ %%5uY㕟زiKAZεbޢ{H?BT_@`ō/:/蠾>ur \L]rcN_p֨ Ǜ/=V\e-.a n-#ya )[ VW+^M W`uVXxXQ>(\eRU5fqw:Me*jJІH'XRRׁz bnoqF/L`|zhŬf,ۤ3db3"[RQ,%UF R}#&kWeiWLgEu߂[vK-Zx.D= yK1rXIEO]2,kʲ^0)m( UK.A$:tYdA% +Lu6AEreACt%]<鋞"Nm Ӑ{44r)G^b`ՃֽrE}F_7ý.= Q=nuVT&lqC:L Ǝ1DMטRO^ 5_’0jįOSL;_.mFY+p[3eL""w&_+, h!-ݸa{zlTk?-6s1ב?xAQٲ J|D .lc,p[P ~apXQRƯK0D!8h6_.Ϟ.V&ɿlϋ,}J61]ps6h*з@5g[m2U2/cB {~gݠ1DnQ2XbuM~dn Q/]V-Js Z>rDAaf Z?KJlT331c1ZSh g.W~U[G;H4`iˮ518ވn Le=tq1TiyN-YK,$`nI\qײ-"H*>.`ɳhPJ:7 ԛn.BupT!@phтjֱfW,d/4†nP|x͏~q?}۞JO\JtOMjډ߼{{?^~×_?_~?~O?IRigյVĂ rkU$XP5RՄt5 ٳ\oE_.džt-!$'TĚv'F7)(_oWW._SO5G+^F)dtKt&bBr7kzJYrF')fəNNoAIs3:-F{I3ˀI2Uw YF7o2e'xKdzX  fv!x^u eyyz5)H$پZ !6D MH>"v4`yXb짵$=oRJ;2b>'_s F+={ %; h=iK \pGT[lF+f!:qbU#ȠIg -$#:.F>G@rs4@rKOQ2b}HRt1H<GFG&lw<߿c_t;0 Z#>6Akxx$h7 Z#p'"LzgX77?Iv.j_C!˟$M!=-,ފx{kc$@4M;}ǑxG8, 84V4-JlhV…O@6K 5ݺ=%?+7A7eS;_t^xW3ty&{5HAөyC,מ$@/%jLg Vna#pBk%h5dGrGIAswGF"J|Qeߍbpy<|6xyЊ6xļ ^̖{Wp*6U6:X1oDY1ocЮ F FDs$&弙{rtRr^DݗO_0Eԇӣ"hvĞovd.%uNJQ{Ӟsw,9f|:{/I崡=INPT=Ѭp"eed;ZnElzfWg6Ϟ;/OUG~}*wҩ\xyZkAV2_VFeA5~#oiBJ0:B>;H橻KYvA9ސɫM _uҵd) amNQa{#F@}{#hV|Yu*h2 -|r;dJPEz\HY=DUx; @8#= qoN എ郳:=CuCY?42e8 } P?j̿-~h]8r5(;zwk{*]}lm#;} vABg8֟DW>ZlQn#bBJ8vshpt+ox9y9ѣ9p2=ҭphVsR3oA!9fG{osnIK`S 8E3{3UaP?k0hs 4M)hH;Ɣ4Έ 62(TVuHYQѥBLO0Y3 `S_a ^ހ__wp|G4ysF9JApmNpN p Nl5 >99=ipNzUYz=ΒJ ~|x:eY[g}:h}c'Q< ץQM6zW< ݣ!F#IT5F>gwtu1p-$:odB !XKSp#/E >? < I6>E#lʮF,zJ%J"@Z +ô` C@+ ].e&gm*~cC8駇TUڄ ijvEo<@IOp6}'P||/])*ԇκ ;hF& IxaP2HwΧ>`]-͠ xi@Y0ڼ\d Fh1"P~ZeƢZkjxIRB82TjCOZGCR-RtNMm:NuT: '-7:=i%|X JόCC8ՐSsL^]?4p}'% N)M@gȩ ! 9J FpBoSU1e6<>L?Wۓ'puJKc4_;F3wM_lOD?k4>H{!Zxg{o؍)6:JO&cK:QuwV7·`xϻFVD3%c_ȗjY O=6qF)t_q:rLt$`dQp#|!cۦȒ HLH13 wIt9A,̋Oag]\AKObhE YO+_~N%+ܼF(Ywz,և=Y2 ӖdM؋D>h>$zdr>馺 F3D?$ ۼzShi>).Ѷ4#C"CD 30uy?rVli~+üA LgGBɠ˜^B*F\-ѹQZk&גϧ4Л1N|;2iJ(<(aR,t"CsAWCO)E[/MHb t\q?!N#[ F NS*O=m]tyl9W3n*rڅLoR(p_HȰr!2хbAz䫜WOܠ̆g:ӣ;#Vǚ]>c''\l~dl_tnyS!M]ܓ>`)ԤхFzh]=$) O=i3. +W!|Cz7o='=0$Wzz w 3p;Oo*-0Th\CeQ\tq =sWrz:"K-6N.YǞMx~}=K2xyw}.Z+HªE-Ŗo~ŀB-(/6j6%gC/Zy!ʊz\FD{nN {Χ+cinn1iRΩ2:4^,dCsj3p "GV*BLhN> oEi]Zc> hci̊% s)'bj,m5R)KgCH=5(EVQs#`X7=Yu0>-knl0r?ħEh}b4~(Q IH*1d|WNN@z]!!aB&ޑ4韚8 bBҤjiOi}{YOMOMOM4-fa?5n?5ӤjOӤj:I|S$tdE£g$st,t= w +{JuIMp=;P(.Z];<oni 2MV$]B`[DOkX|yNr9<7C&iKlHk4IfM Z`B$md6MM&iD"mE4n6M4I4MҦ&i|&iڄRt'.Z7v q;.BqЋa3U Qneaa)[rJoMh:M=3z/SKDpAKoHGU=B%p[;"쿒U,nQPxn8{~qCrh 1n Y[a }<&nS>4Bȡ Fǟ1=yE/z[CkOknbTVm_C ۜz/ֽ n\mgt|6ɱH(dtڽZvhip tGCbi'6洤xQZj1ц>R#A<ܧ!$s$X d[?TrntY&X*MHOc㠄Ԅ `Ʒy:o eI<Ć6x0-B/po0=3l4nVS>xZPVWjNgDs |ZހSj}_8\v]irace/tests/testthat/irace2pyimp/002-TemplateDesign/instances.txt0000644000176200001440000000000713640446260024521 0ustar liggesuserstuning irace/tests/testthat/irace2pyimp/002-TemplateDesign/features.csv0000644000176200001440000000002513640446260024324 0ustar liggesusersinstance,id tuning,1 irace/tests/testthat/irace2pyimp/002-TemplateDesign/params.pcs0000644000176200001440000000041313640446260023764 0ustar liggesusersn_templates_middle [1,50] [1]il n_templates_delta [1,25] [8]il n_slots_middle [1,50] [2]il n_slots_delta [1,25] [22]il n_variations_middle [1,50] [34]il n_variations_delta [1,25] [21]il demand_range_middle [1,51] [17]il demand_range_delta [1,26] [3]il #Conditions: irace/tests/testthat/irace2pyimp/acotsp_1/0000755000176200001440000000000013640446260020301 5ustar liggesusersirace/tests/testthat/irace2pyimp/acotsp_1/traj_aclib2.json0000644000176200001440000000362513640446260023356 0ustar liggesusers{"cputime": 58, "evaluations": 7, "cost": 33371218.4285714, "incumbent": ["algorithm='mmas'", "localsearch='3'", "alpha=3.8", "beta=4.71", "rho=0.27", "ants=39", "nnls=18", "dlb='1'", "q0=0.43"], "total_cpu_time": null, "wallclock_time": 58} {"cputime": 58, "evaluations": 10, "cost": 32743608.7, "incumbent": ["algorithm='mmas'", "localsearch='3'", "alpha=3.8", "beta=4.71", "rho=0.27", "ants=39", "nnls=18", "dlb='1'", "q0=0.43"], "total_cpu_time": null, "wallclock_time": 58} {"cputime": 382, "evaluations": 13, "cost": 31385289.6923077, "incumbent": ["algorithm='acs'", "localsearch='3'", "alpha=1.6", "beta=7.48", "rho=0.43", "ants=28", "nnls=22", "dlb='1'", "q0=0.69"], "total_cpu_time": null, "wallclock_time": 382} {"cputime": 492, "evaluations": 15, "cost": 31721217.2666667, "incumbent": ["algorithm='acs'", "localsearch='3'", "alpha=2", "beta=6.19", "rho=0.52", "ants=36", "nnls=19", "dlb='1'", "q0=0.63"], "total_cpu_time": null, "wallclock_time": 492} {"cputime": 636, "evaluations": 19, "cost": 31670552.6842105, "incumbent": ["algorithm='acs'", "localsearch='3'", "alpha=1.92", "beta=8.3", "rho=0.65", "ants=38", "nnls=11", "dlb='1'", "q0=0.84"], "total_cpu_time": null, "wallclock_time": 636} {"cputime": 649, "evaluations": 21, "cost": 32294021.6666667, "incumbent": ["algorithm='acs'", "localsearch='3'", "alpha=1.85", "beta=8.34", "rho=0.46", "ants=32", "nnls=9", "dlb='1'", "q0=0.89"], "total_cpu_time": null, "wallclock_time": 649} {"cputime": 674, "evaluations": 23, "cost": 32803908.9565217, "incumbent": ["algorithm='acs'", "localsearch='3'", "alpha=1.87", "beta=8.3", "rho=0.43", "ants=26", "nnls=12", "dlb='1'", "q0=0.89"], "total_cpu_time": null, "wallclock_time": 674} {"cputime": 682, "evaluations": 23, "cost": 32371424.1304348, "incumbent": ["algorithm='acs'", "localsearch='3'", "alpha=1.74", "beta=8.16", "rho=0.49", "ants=36", "nnls=11", "dlb='1'", "q0=0.9"], "total_cpu_time": null, "wallclock_time": 682} irace/tests/testthat/irace2pyimp/acotsp_1/scenario.txt0000644000176200001440000000043113640446260022643 0ustar liggesusersalgo=/vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/run-02/target-runner execDir=./ deterministic=false run_obj=quality cutoff_time=1 tunerTimeout=999999 overall_obj=mean paramfile=params.pcs instance_file=instances.txt feature_file=features.csv irace/tests/testthat/irace2pyimp/acotsp_1/runhistory.json.gz0000644000176200001440000016450013640446260024047 0ustar liggesusers^runhistory.jsonKe9 + 9Ίqg = HlPW.m<;eBDf#\uH-W?o@ß??_iO۟w~_?_bl3_Ϳo_l/?v?ۯ e돇>RӏǨ?>CW`m统܏~| o "߀?>E[ \1} ?%x_r;ZO?~k/.t?0oo,Og̘zXϳ?~%_LXx}C_п88?Ц=T ))N?>ɗ>ͣv^|?~t?>o6an^?>>L%=mVy0׿}T'y?SA~^(n'w|wsBa<ܡ%w\}A seLi;l9ww8 W5_o'_0> r1>>MK+y:?u :koo^]2| vO'RcKJ_?{Iz;N){wQ3TC}E+_uߟ7X3/G%ʥn^KvmMwI2ު{WkYO}_7+ 3w" %?;Cu5n:ƏSKjߋIo.|ހjrŷ{8Ih ߛ?*K]ch/w/ LN߃+;y)Da~_0Cb/.?\/ksuȼn^G|,"u,̫ WӍApIb_ R^d>Q1C ޼og|/t%/f$7铷z q}tؿ\Wy( e8]]SOǟ'D^»JO^0wd=Բ-\*C8t=Iޏ9Lw5!+CP#Ӡy흸226Nu`akv9ݛi6e,#Lп wku@_RYtc䆸|慾̄aw9],=ݧ+=.C.d7nӻ7r/MOC̷; N#z9:F~X+R}82/[Hhj6WFz*{`l(_.A#̷n_>2{X`}<ԯ`xP. Gy[eG [ߎv?1uٻpo%{}鷔4>BXUϋex(Ƀ8zu3ns_( Y|U.DFv~szY[ebHyf+>1:%}G= +w߽ߊW=e<{pC' Ӆ5to\e _fyR/bA|ׯ碂ѧˍ~{SlV[ǔ{yCuc(?ғZ2-bJ>&߮^G? X{`syэ M+~;ǡh2]]8~~=NPtaUaq_-z;Ȟفwޓ/xNjmo5C2O`} ձ)a'y5v*9~qobd__L e>>g^xC9pjg0߿p7DD_ L?fnPI"B=.d6oXKEў]uJݐ̣2`B Þo_C!x'xKO os:]rOd]܅p S#I޻޻o}N4:3r/eQ|X4OyBsSzwBݍ<"N`¬u-Gy^|ثɎ=+yk\GJ]/:x=w7PilbR%\,zPp]}'hn GfG=|&<}:}Vg/3x7 =^t R?}0/·cyW@CU&E@28vMJй}loDfc@7ҽ ;"ɛÀQծYlj(+nyPGKBLc=>KDO iQWz7fqp%_TöC\~|_ҀxBUl8ޛnOvPRd?2mtEwc8OӾ0F ~M绹8FoVBdĔ__Lܐ쾏;KtlHqņ;=Č=';**v x7d6L2՞?w6h~HPtוx,} }.s=esoQM76D*w7$03~]<,~H,:۫1sWiv2 c&ړ;Rϝ޻i' ҇=-a4{7Lb|`r>wc9ο7Nmfk~*O~+ _O䯘y[2VE*Z:ӋY^ox6:`vO&%q6T{\YXΣiL4 +6yw{S輶۾b_8+y~ɳ"&oɖYAQ*w#6Fj}ލ c" 1)$u~3=fG<}Vx3vgk}^ ']]ܾhPxhs }[IڷUlnwƶ㌒wn$" ɏ B'?#K5 @7/z[a W =Ba\#r$0ZPfrԫ!Be2wA^^ԏ SIb|O{46?MK1mwZwy\ .Cq@+>I_gt<҉j6W`ZE2 {܌X>}=bY[:.H\{1ZǻjX=ojZ+iߣ#H.~7-;Y:,CvsI;G ><2z#/7.<'}{7_46|M{rŐ,02}1cVʃ'0iG7w;{!vswB e(wj>0'M>NnGou75(ű{gŗ{>4VvcUf  }y<2vqߺ<,B1!w72l/XM)- W{78ci쿐Yc =+MD!)"[Xa{(zTħܵo ʁ?Q|#x}-N.[CO"2Y4.}I>MdT_}`kPNz*^'JD!l cj~ ;n7Q14>-gT|K =-cVץntуCbnb7=*9]"}`A_㉢w̰xixzEߪi=_^zC^tGd@d-O-oK}[oAm{@=i{?ab+\uf/LJ2|{p=^]`z1v۾Jb{wX7.쵳Xέf__ՙ@iz7 F 7e?c;&/-?w} oW!?)B"InDW/scp8uw ]|Ѥgߐ^tڨm?e^wKϨgfƦEw}NPk(nQScʬʏfzfI~[/>һ23wLxGzI_y<.󰝰?W5D/9Շ17 oc'1D^~{~s_7ӄZw ._7롗7ALއtWM6=#s[~m7.Xݼӣq&0ۂtT#n^_LzyOX?&P\:ba~P XOGQu`2$"Q9L7̱CsJJ_nW=$DbŁj`ki返!z_L7:07)|D5;1FEsޯ5WDqq70iEhC*׳{7 =n4D$+w9)t_ʰn'AB? cgsX/e )0G!{[Iweٟ4< +Fv]qOLJ)QF?FaY3hu75 GQ0j6pLGѨ1Ҙ-4&wsM&'oE(nR%_q`ӣ&t?hƩXuקTM0.P{.3kǣMo!tY+}~"rE!wM^.1WF cJeJލG- "%?pO_'ԓymw\+(}F]&D=> 5nfqjidN ~L~ֈ%LjCUwH$z[l/5@=4A|0RIwEI~gq,IpMF=/OLS=b~pn"76gA8EwcS5{YǡKB9wTP<(ܽ/kw WDy9#]nPy+L_qG=tAע+:ČokOft_ݔC(`п&FYfN PjA^\4v,qpʾ F;y7q?p:~N(0tggq)wu/=38OVnQ !&EM +kciP wp+8zp(PdzG/s{Amp[ ̟b ;a wgw_1g4W92{x;_>܍Q=zB㐬 (u?3'ԽQT߰s գ8 uҡ 47O7P}I_&?`K#{<Ѕ-P2ߐpl{}ǣR8^5*r0ad?2CahLu~)׏ԑYXX_9v*(VؓYe^|=njW3@۞~Ѡ۹zTJbfC/pPzIܐ:z}"/q"}IjQ|}o^o\ȋE_;pRj^W@[n90ոA5G 4w4Nǽ?.}K5]={\?WWQ> <~wW0/zd㎵Ap߾3׍>l/#}_՛ oܦ~rrPC:VJxz[˔8B0UtGw MY=:UF!>~L|隅Gw ݿpQ4i諚0|xj19(2=cw*U/@y]Y'_ɸt;WXy=wsU\P#ѳ? D)55# T=k ? >O oM>YW=:4|)CˎU47Џ0t|;k_[f9{Ip _eTP~}&Q_V$N7 2cM3fnYUd(JS|U 8%Cw]MzdcGz(QJ0o *);,3|^bE)Ww7mR>TGF'U=S]Qh<}ۀ9|+'wV B\JݕY@IM_= 81'ܰq-K̴`ʗK@muSЇ0חdd:u[p0~ \N~r1En a= #~ ϱÁQ#? 볠:~+SkW7h Csm,zގY=q57%a/W|q;Mb}r@ip7X*[?,Iy, De`ī ^Zfok}{ޞu^_JgI#_| xʎ χޟL֟N3*V7)pjc~Suϟľ4tj00=]$?3x ^q횫G! ×N t7 `=(\~x:zD/ s)N|[K I~u}w /nY~0a9%5dtu4r/N,֣u1}bJ f=SF$q|(vF|ߍf=Ɍ͐ 3F ތ9 e=2#/=AOh1PV0;n:ե_ȀQ\te`#KR'^ Jk5`ޯĻqgl?Џr> C=+\; ֣ F}asW^>-a_]#>z5zlN`kp䔛G{=uH\{dZ~{)OXzc^H n1^_qbp4`ƒP:dޘF"8}5fL>~w\ӋnU(ulIe tsWnP`e*|Bpʽeyx1LsP? ϻ#8ye/Ac\QZ̃n*W2I7 /s+Dt⨴ӊk|>"@a|>d#xOqa_Ex"k̸MʕYCv׹-\wZp&k|3AGPtP][C=pW`u|{!ܿrWN A_Z7@K8-|^ ԎV\x@~&d؁7df.\O 8e :'3󁬷vO&Z 59븄sVpjƱ~( 2p]>Xla;ӱ3zW)aC nU#W1>|'};IT(k:%$.jbyxE՘ ljϳSWﵤ %2SFX.DǮơKKIݓc wIdxg7|Qr2:+05jsc>pok 58jsW3)=y\ 9o^ ?)zݞO]!4`ZMCuU nzDTNFxeM ؃KT/>z׏䡞׃依_F'x!#[Ž0nzGzcrח)vMz8lFP{.64$ws=W?nRDp6{)3V>{oaŌK~z|WM תCM+q:,85&R_c6 #-Y܅w9c~yZ,Vtya9!ɣ@DɜNr<%K=z`ƪ{cTٝzFqb *u8ظ~tLws\lg#l} = OZG.x$h 5ѡӯu.N^Yx}V"A?{8<(8eR;Ç 7*WI $hv U|9Oʛg~u<)3l{8\vHNuong^5Z6-lж~Rp~kqEm=W p8ݸ0\5jJn~Lm}}2FK`\F(;Wttfv `ZrvoL|.?F<5 B~6Q^ hG@+J(I }̹든U=X'F-3^F]CQ__ AsLfgz\G~zy}CqOy?o#QLPUIw_g7,cq/'/FL%ox)ľ:v0<^ҎûT:`n1Pm8(4١2]}/;8|xv(mq 8i.6i?s_oJNamJܗ受[۽\s}xkP ߇L f{QzdÓA0Ckc'Ɨ Wpocf, .7 N*\`a /S~₥חDzcJ:D(ݷzycpl,\Ag-׃OK9tIqmse{r${2rXGɯA:AvM&x;M/7nu⃓`qq`M[tQ0vōq=pBGfp`1^6)}2bx V ,\•١Mj5I":/T o#w(p[ف;NJ0fYpi0fT^پ\ y ($xi.ôIt!u\\Kg)S`#ú^};Xa D 1;nOϧ'8}E> ˖1I(xÎZ6<)tbx llti{Fq`ȉ!qũqi9#iGyc2VپPt_?}o_?_ǿno o??o?ooo翶Ƙ LZw?f[k??F#d]]0|]U0\Uy(Λ_(j#™h%0~e71TSh}{1F-:ǽKt 3+79W`b69C$ 39v|-С/Y[> p!V @~}-oo;-N:!Idf.z+zČZkoSJ!-+u‘~=.Y1$A,[/8wȁl:"OެinKm)$(j"n"p\S\cZ n)7kjGz(jukrR 3[.RS['Oެ+P[gl=`=חvj*:e#ڛ5bd=^|pJ2~z(5CdjVߵ7kf랐8ܯ?fR&{07K7FMy(`DE(s*uZ dZ?dD՗☿5Dȁ|p'Rz cp@9C#Hח@mr SCtCdmrNu-&W] >䪍%_-&ߊ@lk%T 7s5tec)Xo%x zFBvڟ'ƩN4pثƫD:q&TJpOYgЕ]ɹq~] ]*l-y36V@T}\غrtx<;CWvP ]$c\³CEteW Nz1Q 7E6am*C=t嚢|qu!x*+WW#~"䃭{=teONY|\Z"L&ϼlњLQPbTC޸*(6~a:Z ĥq8-E:ȇCO"ɦ @c-5@p/>bLD}Cps*:ty$(}Е[f\Dk֯Tɵ@`C_5teSs-҂-=th%|a1.jzR{=TBW+36a]zl2MՋZT=߬85tjkrZzƊk2+_ *]chCG߬o->mrU$;kL\2!-E!|Y|~=hMN]!rNjʄ kqLm=Q2l}.x\Hr?f!Z4!@^2:\ IIz oS2&2ZjʶqyVޤ|%F=q_`5 HNZ 3[S䃭G5Tdd0RJ 0XJiC倓4yõ@s &U;36 *z+ Ɗ`&6I\C`[K) @`,%}fFѢM!]OEB\K2%\N&&WK!\M0KJ5ۊ^,뽠aȭC/Ukt%@ q蕼w8 s-\ȧgSqe 0$kd K}Ȃ LonɄԒ7ҽj!`JN_c>XA9:.+}dp 08lZ Y:8!k_$Z[4[:e F6c8+`-H/8t-9)>}={K:ܰӫ́m06SrTNP/ Y1td York>%g m Fҽuٶ=g$ާ7AS RRmA t[|$*9EAZ ք\ 8QB%sd0`%k=TX Z$JBpKWC5*'\:r cv . _,=vJ*!Y)ǍX𺢞+GJP2z Ћ*lӍ xv-J-+%TXS}n9tos 9tW]X*l)9Wһt6Cd2V/ƴKz- ҃ /5TؒkǦct-TֹxJ k]!k_^=TئEjD pKC 6awc-;ޒM'=7_x''MPa]JU<6QC5V+nŒl b͔ZJ=L6(K V(zt8]zȭג{`[zl#QPpBm\ e$=TX_Bt-TX2ZN:.z7F Y)-LmzȂD] 76zyfqk9j8&6G|ٓE\QC8i}\Bn-){Fz N/yNoJ`z8)*(jVG_ǜ֫[e|16r^7 ^c&omz:`-`9ޠ!:|v2<7e:T-^ObZН|a)Kqvpzx; ݫIj86帵8.d.D ~ n3ōm7ŪIKiNy|ua,=D=.Ypz^YcM5~0eۦ6 ^jү% kq̇s 8[|FȺ+T%A!1*,-^*!+Ty gtȩry VU5jKמ1Y0yf| m0~N'D\yj}*l%ol5 0;Y5TK̂.*lM ~z ZZ\o NWK0@ڻ N\01 [5\ SUa7fou޲@8*lJifT6e2bR1kªa6l]w,X0-MMgB^ kM-~p n 㬀 > N!jD]/)h'_l v̵\ 'ǀ7 ,5tqԖiC`E08KOxae~=t> ҃5&.cZSwL0o], =tqf_1@pSK%0j_K/&kqǺ[N \b Zȫ>] ]QZh*C` 8jmI0Xxo0~wx1 t=tq |GtO֜r|)8=Y&HWp8J(xkJoFA&a 7 ְJqfDB1Rcp8Kњo9UV/s5C!,xSцZs7h+t*+,g|  FqfrWl0ңHEɤ*A,$\,-wfM 3KϾ"HӕދMGKhC!+TCxW]{1S]n´!jggSZ* KN!4 @5y{Ko s̸OBxo w5]wޮ11}>nbmę UXFBx֦QCxGt%j|Q{SU%- Z{ @-=菂Ej5 O!\jH] =ZQ 3g@viaJO&W\ym=(#/qKWCE|m-j1*l yeE=TئBo0]o{-TXMxp-O7y0>=ӱ6䪠B K iZѻ*lm+$D 6F;;z:˫ K UkzA8۔]Pada; OWCǷz\kH8>%M'aMPa;z|ak)dAA B5T E'H. ,] ҳB5Ts18oieqB)T8zPhiTOA/>Rzkᩰ& Bmϫ1/ǵXs%TXK 5lW% 8lU)pǥ*lV0*lLx} K)s Ŗ):Ȝ6[SA ]p՜8hmYjζQ8I` W#*%oXzɄ/ӊ>ౢ"*l C5g|d5hP)=ԧ}x >=t 08n 8+`p[[*o8w-y*,WYo A*l*%<]%-AЄӛ1B<1BNzAٟr&}6r6ZX!5NA0ih?er ֟do@#>s*xJA?D ]<ࢠr.Y\:gpJ^-tRlugqQB51fdmV{?<X S^-kOrkfWI08u6 nř3Zw):|7z\VKل;5Uʥvf; YꙴPaq9ذǜ W%Y06r v^\i9^IZ1ٖ8ޔ/ rr)8k   oѳ[*& V166ah3z?YzXqZJ5 _ dd]fg>Y,Botl\+` lڄ &-޶,RkqL;B*ZC< PpKW-U7iW Xcm0 OI -ӫ5ha}7Q&A& ,-]6j8+`-O=ZxA 99dpb쓕zFj D 9wcq L7$i 6 )Fܧ!'7&@O5!'''ZcNNK6a QCNlo` Opղ=4CND=ܗ+e"rr[K&3r3ԻCNvQd#PR_,M_{̄Sųrr-RZӋZ۹rr.sčp367AɣxrrKl& > Bt 6I.z8` \9Fq\81%%EnrsA 0Xn\V7ONoM▮ӛsu`p"KWZ8.'ypz=ho¨wz/&oo` ,7{Oe-^o ,] 5o=!o{KwA g>#@XL)-T\m‰*l1U"{eBt5TBٔԫ K DK}mS DM } 6ܠ kJVPUCu58q BFojZc;|<}{NJӓw5TXl4r)->] ֥cD ք:0LN:D'K ۔ť/T[qY9'wXŻ"X{&ʔTZ ,2*Z.o8tΕPaϴU!`鹵2uobB&^,%TX[-@Q 9_)kj^āhz!Yj; @nmXjQ7B6g-] [(=`aE B;LJ.8i6S]cE5TX(X 7 K/diiB4C5lptp k%rȽvl SK:|}C D9%TXޫ`,K N/jZcBu5dIMRrW볏RTd`kex*l07szB!l­͢&8K_ dbJ'tc* 2{X3FK0xR;]6X:7ҝk6߀ީ`_@BɂSߝR.N 8C_-Jˋզz  "L"NZ\ct ̊Pǜ0JD.SzbեԹ*u9ie')ix)]k̼H\^D1\m-٫mW{KYP(]:!Ie@lPe-i/ȭҋLD+hO»&\a Zf{̌TǓ=G kj<'z*<+K[ R<^%A>o!xɠ!N)$AMpmLPN*Wu1 jsXBC]ȴ~RjLëLNܹ@RzxmH;?p#NZ!wX dfƂk xj-91e|Ȏ{,슨˥3=ȴ sE0[='e1)l}b*\$hTD]Δ[@5Z2>ȼ4GޘpxSJ Q uY\RC]VQP !njۈrZNpc/ֳ~̵A/ @ř"#85SNd2 Z d "؈ l’|5;ld2&V!W¯29Y{PZXpZ Hsg칔h2y(DCu *ȼ?lĵG5ZW$c929{L޸ZUPiTC&_@LNQu?Lx z8؞ԳU'b锫5o;6\-CUL+V܍h!p&ܯg 0eSpPi_PpzˡDb SNGg빉de;f:8rz˾qcC]1FAtl%,\yӭ!@M7ʨti|[FA&&.VrpCI6w0=eƸȇ08UD]$@>xvJu:)؄k8-eW @M7c|8F>@> %rٽ`K(z|UZ {,{v+*!ʚ([-29s{G! e]5Dd(ςEQ֛T!J="lOsyͥz y@)"-!R+_ dg:(K(z|$߭'ʲ"Ư੮ƯkP|JZ d>nsgy6a] >FFuYKOWP.o6e5v^C]@)Ke2NB,Z *zab}z }QC]PWd?W u`U [!cM pX jx=699֭Ÿ_5VwzVVVUdZc6G!eru*(ˡڂC]nzނ]u9'WZ sc j>pI W3DԯP%*rd34/!Z|eZ s^LWulZ>bq_lů"겫੮[`0nb:FN7 z../2SMWKuّJz,QPɀPs 9rnxШjLP[p8c.AM` *zZ\m-yΞ@w-qIVX)"rb<3PKH vj MWg}(>žeۆ:O}azεR!@>北C|W-s_5ޠ([Zݡ@uTp̵@:Z s+xjuB!<D˖&mMmDE'.2m(RqZ fyjx j)Wk>hkP?1 4zˑE.KY djhq)@>tF$ 6\KRSe,M-9ȼ3gwFE(wFfZz՚4nzl, zڶ\EUf(:1Cn*RTz e}ˍ ַ@*_a'W{ơe\śH*Vi-OZ2%_E76\-Ƨl'Q`U.l@h>ȇ*Ld-YuOr7\-Tk7G5Ht6ϯyj\\s)֪xjb׍\ƮhǶviieo{Z dZK5SLt4ŖZ$k*N-] df)3!x@-NWlZ,7(x~9@M7pZ sf4Z s\Mp{O{c<f` ^`b W˗P!W^[2'.S% VJUGL욦FLxv=1*RH_A3TєB z_BQD]v"kٌmNPS[?;DE󀗃Qk΂]um1ǟ_Me#._-=e`FWQ%9A^bkxȸ>ebq!p}.-G4UJ<RNsQS Ò"y)fH}Z ӊzk|x7\pXć-"w B=Dros 1ߧ|;9my՚uEpEhC+Ya+j&2˨Ze=!"=# d8\|É'U/LUik;@K)[?9Hu=##\tV-]0=/)VL/2"U2MF{|Mjm3|'ގolzf_B"dxfz/X*ȧ6 WQ%ٗC3ct8l-eb@>՘W '&=tsƗ.23Mu j&-|2&8LZ$IϤES>=Nr"i9[ dmgZz&-b`] dƻ\q:Z sٹgҢcMv=e$xgkdMZXzWͤ@>Bx[AѤñE7KO6kDy/P2W`|( ֓Ƙ]߫cpY dv")Z ޤ7wC8U`bJoӵpf\s1S'ǩ74xJt#D WQ@Po(,2ZZ {hQ@>"P6\-^ň_-=Dh@a1lDQc@v VGeKx7!ʺN] djθ'VzK7a'pȉ|;*"l_5C5DYSCb@a|N`z&e=DYl8D=DP`Z ScoRT:ʵ@>G! C;Vjn<gNiKe9\h D1~C QK9Y-L:@Z&zAJ;|ӆ1 o湡[:+` [P1H@1] |ZAK}>F^VicIףe8q}rʰz/ғ:q TS.7lࡢWܢg؂>YZNͿak̋@Rmk̋@1{\u2lъ@; [Pο^ d>YEgW0YU*K,U Z,RhMig35B1ǥ+q?47&K1L߁Kה⋞6be27liԭ3sv jįZռYlDϭ~Ƶq2m2jn,͇5hn}n2FVv#{ r+A|6P(M vBUP@3 jj 4hmD((]o<\ dfupg4eh@􌂖+ؓs߯k# ~D(h c3 - nzFA}OD(/gkhQ~q?gZM5cU%V >Գ6g7fԛg7z6?+8gJUa _,,#@U pbN/174isp۸F\-ka̬)11p:-Ѹr^ dEḂ.b =Ԕaj)zzl0 WFYYX~1)VKr+qaokCE!({6Ʈf_]˰7ݲFaoc߁6:A]q έb,Ť R#yv-d'=z9ESߟd:(:њK2']8.76O$c.)%kMwxҋ7+zxPd5yDV[u=Y)~Eg=RcyI𪁯}%z,<#s1YC!@kB0s՚ X3=d(S=X3 i1yP@@;j)5WX d)d#zFr5V[ ;AQHnL[fH.+Bzf}%L3L@歑"@~5jЛ Id,<!iY`W3$(cw*  {W _5CҩſNx;j %i@>M&xb IW+gH'gH:\!i_}5 #)XI>fHڑ*!iRmt&\pgj$h7k/616k5 ℛʖ䍵@f-$ !s3Wk M}7G̶k ɥDrTGF6ސ=.jM> hl3hcUW!D>D| ltqϮgDhilrz@>nAe۔l9+[|#Kg %q !Cެi|bj-鐫5=]@3#%F|t΍\3,j*% 6{Fli-ߟ٣F1O)'A>Ag [/u ZZ&ݚF.wKL& KۘI0zIs[ d^/M @XJ27[fY( z |4| J8ɋ0RS(f<)>a &g87yVB) l %[]|,r삄]pn%܍1F\W=n#zs)O5-8: j+~ JFQpn 5vr7G {I!@ԨQ878|t}~8דWxWԲMdf.3^E3)[ȼC'6a}:>>jM~8_-=bR&p\X}Ó+y՚Lȸ3 Ox!(+6h@9#} mn@, ֖oqf X6[fM!=Zx_dB1YSƒb^- nqoFk?T3 J.ͪ@pѣ l %E6Fnl__5}⭳8TOc"xFތ YU ˪RiVrO#Nu!327tXwS7neUVIkFOz|٬*~F'UC6Eb6j򒇜<Т_\퍠;L۫f|T_ni@kc2>h,c~^/z\Nkë'!2*FG!X[H!,#, LE+j-&a\!>hakspȜ'@4x#Љx_Zt$P0/ҊrtasxT0B2d.Ps#OC\VEymDƒ5TkL&(] ZnKqLö~!2q0=i >ͥD󘦹)"(/ے ^AQ$JcC<7I'6FC9{bM  [ ~1]NqV7 mc%2Hg񻥷Zcdg-yD}x=Yvy솛=*!RcyUyC^,bt(N|KvH>ݹZ׃EU&zbMUSר&=zy犯Y|fyY»֣GЕRa+$TLLS\{c>z}= Ě6-;ըVpdf yKz.Z3c'N!@&^\2.&(R/t@d3 1+&E 0X qZ "x_g.Mj'z kE6aYtp @XCPzak'2_7 B0Gئ}m>dԉ\ n#zDL:G-7nX`#|s*܏Qqƀ")'2WqI9:sKcHIPդBNѣR0H]E*.}V.<a);AƮG%xʣ! G6"xԨBũzT\b C4z h"C?X+ Zzr,gVIQYf3q=[ďףY| ;v5b&oi@LRvd@Zf| ! "z(kp| 3.͚CC0 U2tN:`CnlxݫhQ2 WȴZ1>{jMH&-F%G1qZ zgܱ+ZYڊ"'>L=x)YfhMY_bZ.f-b*ZgA`  -Z԰˖n֧Ƭg@&rX @> *_yo=`#|/<`T4 yV2o!k"䃔atPрEZ7ki3{"FWр[RІWkxh@>zpFh*~Z~z $INh"tPpf-kux5#ͭG| d^5 V|3y{BE{.7kV @a “@03+N)r&GqՖdF N7a7bWkF(ax{(R܈9z zD'1S V5%69#p"i6 ܺ ku*6XdQJd$PLISȶ" K^c#Bnq [p= q\->Ȍd|8IT=r1z^k-Z`Xp7kS6m8&wy`KgG'bf+l0u~t2p7F"xoȋB&z*denL_(֑a5rxZ Jd.xHE50k͸QVھѢv@\ +x6͵䃱"(^kQk݄J dˣ1$#kfS::Ȭ juqEIJ)JVEIr"|+JƂk=BGtX9RnHJ \ lC#IJ&j}{ .Y(:3̉gFOW_=jj"GSi6e &&W-lJQ~u6;̚h6mHxZ sjS,_vp.^_gw`#,!z:""ͦXH)\XKfࡖͦ/ oNX|$J!@f$zI 0X@ A@RٔMWrlk65g'"m @&2.[^6ZfSƇY7YTnI@W8mTwjzk :yp7֣ɱfquotT++Ҟ . r A{$A;ABPMUPRdMѣT*G!(٘*OA?6y;8_Yg䁬\-aᓸ^3Fl(_@LG=daZS+Kk53֓X[u=1U?]Gk 4j9 \ ;=`S|0v&;L(^h$\o)zx_M5P_ d.G$\{|`}՚sF<> e4G_#yg-Ia ˜uKN!cLYw\ѣ=ଦ @Y dJ!Hbs Ef} $|{Éܗ5.il !) 1xbSgWQ@^)K)1 GgD%x=bv$#QbECC,hlTzOTOZeN1ͩ(߬iNkTOɩr$a !!jT>' 7s*py @hS^-dlInBGkLxJOUY!8揖EP]/(Or6^tI;|y$sIw3Fy#[?~wX:[?FSNd^?15 AⅠ/N O>HN:^d5nۓYB[TdAGH5JkLs&͆W.YӜ0 *sO)6` MO(69ŚTɔtȉLs&w- [ϩBqlT z_-.j^ѢT@؜%gT{\ba{kOˢr)r*ܯYB8%fCufAfiBjqo~ihH^7E5\~-O/Hh_ܽc\7k2;D`BN2!f\.oÉp^KudD1 ެB@0~zn[2ܒ3̩4>tȉLyJX fn@j}m׫屢T<u/xȸcC\͚:ZsBd=FЛTS-1!;dǻ;jrF f)c,H)^d2*gkLiMy<]cbt˲y&N5e:8x5 `!q )!o|TĔN6hMt2JOk*lx8Z'~Sˤ/KY7?.YTe"B\h6FFЛ n"z m&b 'Y 0l5ͩR%{9 SL QҰ&9U6^-~+k-xH_wOGE\ Tm@>H[v@bEz%#:(pG%4F,05~@sQ0[/џ$9&2wi(7poryxdp}$[˞d75<\\Cp'MzNqӾam|9n UW\}}帾I 7Mѣv m/12#r\,>Ifq9n&G;pյ@>UqSף]kIFXWA*)D0lU$H7KPS^ho['Z?MYSN NDJ%7]05S8aH@kp}&@.XS"~)i,"hFLf͚zH!>SBƂ'ztٲ ߝ>UF@XbZ7uO=b&zp=Oes-FcSx[d}r1sTc,dZv0f}S\TDipQ$iDUG'!J$ \_CLdh,څ>Pz ,ϗ_ dZ?VB"K`A!Hp,u(O4?<[ף%\3@MQt@Ck=~#O,`|5es[Oep , V:m8>qd^?&RT.Od='2п4 cS w͚Ttaf']zlNHs0;iSQf"_o>FANߓag'KJ׿Z|Nd\?s4zlִ,tmz&rshzG!7q%/bqµ@L>mG. \U߬yh 79E[1&GꏺZQZ֋otl {,oxĨG޳RWFiQ%'z=C LoQQrhQ5?ۢ "_%mI.p}CŶxsÁcrMEbf;ȼEEW */24NZT#i&R2NX C=+y|jÉkk U#im*c^]$sn"y\[vÉz2קS{|҉0R49|->8 SKg{ 6a{ҙ2C)&{'v᥹@X)SiO:cp|t f"ULʪ!@f=iob@{T}EmZz=)VT~)&2̅\yOdL=EG`zk]9U*WC`|N"S/IoA|ӆW Ӝ*x^'57DQ$iIј(\X/Ex^t8[!@e >"0u5s9 ~kz#[;tUS&"%:K@4)Vq_ aᚅD\Crs8J@8Xeb:MA\p3W$.VqL‰p{&K8}͚d1NF\.'S ۮ2hkW] @m=WfN)_&"q`, t4̵8>H:H./YӈXavaR\}{nttRc'aI'%z;'T[“N@ju`W(Cp̉m#!8椓j ^%q^V#ffɩ8Ǐ~ۈ1TՈ >#fFaxA; BzZ s!X1"߬!mp"8udW@ψOm²>YqRW?5|I N_{A>b'>s` Wp l*Bq0a}'nzEL.jym}=6 å@f95 "x=rĦ,Y\ '‰Y+`QUD KSlTGAm=i <@؞tLz \Ȃ! 5M_0J>7'.WbJh(/耮"Bl*q[_˩Lׇ^ d..Ws=@>H:++ZC֟-:Sѯ9b}^TEZolNl끰9( l"_A Tɪ& Zg9 Ν brA$A3aas*j=ċL Zo+.W "S)۵  =;wK%~%k8|5u"r\@-Kt@'Y.R2g5-K)oԋ 3@[27p'hYBўds$be ~Eje .ҫֳE(g׳j .KsC=l6òK?trDm)i*ZaGJc,)hY"|14JV13aQb𦈖 l陯Wd H#ݴO%.DXnKp->)HT#m\O B@N:֭ d @[Y\m͚ٺ V@zd] @xXpZ g//17f-YS/B o8Fv*;Rlkr۟,Tvۊkm0uI~goH鶃t=FYng<߻r;m* +o8ࢋYg)CkD9n @d] dR1':DRE 'Oqɫ 076X:+F >ƺ;N3c7:F ^__MeC<@m@(cƶr 'FN:~|-:< N,,*Z*B gHp& m& @J)A=K|{'zȘ!utlF5*$ 5±!#"ztJmU1i Tz=mr\ dZ+0FW o* NhdċyX@z|  yo%F= qVɩE|j#F%-˭^pS$Jh{Rl1Z/:"yFޓCl  7lpS_yQ_ d$a;(5.߬iJx'<t 6M ;;~=V,(ȩ,y1FV,op \NE.%c'|/Tض gɋ.sk#6?Z$ hl}*=G:G:q 'l[ۺؘR蔺l2.{RByOzG3Oi{CLd۾_D{*cv{\C(?T#ٴ$U_E\)!=A"Jzz s~]YLfbpH&HK %_ףRLV9/؝fMmngۇ`E9%|҆l.A ۽fM C3mw0,xl 3|N 9U'22NZHT\2ɩ( )!'2b!&A>&HJSgY/W^cV [ aG+'bw_=YLekߪI@L>bupjWNx8]o,/Ԋm[c2C=5E&M: p '惮FFdU o\R9|^Y/8rgb ˤ5o~C.Z$[! 1Zp"iKmYA0٣*{[d4 @XLL sgcHkC=jlxNH <9p w&ۂRl8^2E^#&^s aSDAT!/YCeZ\ ~͚W'´vLr<`KgsX0?>zٜ*֒pz lNmg6`[W_&X!bs*OO1?^b9f,;$@q"d\-)lnK6;^ҳ𙶵@Hk @K掛"ATb(R`Z d^uHm@N>.p`m"zDJzc]U*R ZzVKug$u EbR,܋cTK;\'ȴO)q?]Ɇ(|mhW]8C= "_5_~m诅To4ǥ8X@bT MA= }"mh냀#;<|H:994E/\dG^b\ sC$ S#rmeW'?Gi.^uP$r0ΒRP,.Yz {E>u1'}|:G٠WbXBL:GFh!@>p|)~/ Ro"S֣o U& Z cן;Dnu=֝KRڛ5Cqpoxos68;"-e[ci=܊ 9 U@zd|uEk|I '+rnd͚fHl5yHl5XfxtG0$Q,g)#' ,~>%Ȝ_c^\|^|>DJS㓞uz|^}Ov > gL :!Zs&Â@Km> קlOS&PLOECGrۃL )3s&\h-y I'JseO6ڟ!D|m$g/ӫ뵚0„z HMdd)kjʣ[FN1!k?f'Cc #eѳ.!XZ&#(Yp @؜O92,62>ClCNUq c*1$E(X$ !8gơE U|g"IBx=j)xV,FWW$KI|^g9/gճ9G`)@H9==±6z2"ןWj܃`,m-g_@o=#B8Y=#&BZ]5tJ k蟞cZϊ!ap,%sSMsnjDp%wFE֟2r"S5D!8>A&,kaQkZ@,65_4R6Gyհ!Gj֫C3RR&e 8hM cb/ q-E^|f!"EIF́Vv0S\ 'ozTf cUVѳ(| 8O:c;peT=u͚93x:=r+Pٗ\U;NS^rVDſf}2L^%3y5@xQOr#x t8/\^c1yƺC!k9DdV{?˼wX:;G9B>zF9')8~GfjH` ,|jǫ Paq/xb)@dThE\s:Dy&cl8/(0MxaNz]B%r"SrYg 7uMt8u%";gճ-#92k/"|=+9xkRINE| 29Xw1)GOe ֕%Vo0aIExES,dH. |wp T!ɔ[ 숳XLo!7ϩ!k>%fOr 80Yu"7z lN,. Ȕwc39H{4h2]ubTwX:ۧJ_;9xAt"> as%z l*D|W8l8}*[R8 Ez);%(o.?=68IG0/YBv#oBwWYӜ*$hi!YAG?=\OTsaa5&_0W"g9U5d+ zs@^?' ϩ|R S_J8?7kS5 ^_"LNeb>bŵ{Ta=>*8k9U(^*$HOrjvWS T[?$ΚT+LwSZ4^ͩ/xtN4R2v?YqpUm(!fDF#J@.Ef RF[:Zղ5MbA0Ua. ֳ(6@>SYJ8bC9ċ|mx +lX0 Y L=+SL}^ϊz/ֳb*%6 0*ZㅂCNdI]|:m hYCײl15td!P%x\ a1A[D:(Z5YpWϲ0: m8T`+ :ǧ=/ $z֣4֣`q[W|9@}=.fͳhYbBxh=^ GfAJz>}Y/\d/b $HGʱ,~/q5QL۔WGK*ZbdRo- 7Pyf<__OW׳T\a*ƱDx^]@mpgGސ_OȨL^ɨ~Ȩk-O1g;4nR$EgԳ"Y`zG:\FDɨ7Rbs\?ͲB>$0˚$^fV47lXR#TC9/*^XS.h5}!j dXwz 8zwwEAoc޵@t Jwq8tZMoִEysp" ]k& |)88RVW/e z[2 @RVI9h 5j33p|?;;;~duhY{ mOD}56 @؆HS/<Ѣ)MNM:BiiJ &R1"M JzCo^p"L$\YBKvot~܅^#k跸Sg'GJS"EEpÆW|d8/p LĚPq T/IJ 9FGYBC_E>AQdnMM7=t\__=fbzznk沀k_+QP] dZ+M㡯 8<ȧIDR 95QЧZol F@ _Ʀ{ȉ̥$ \Է!C\(]HgV\D`CK](?kBѳ, (sjxc!@&RB`APͺ_X/I̯I0:Vzz{j)iߐ0YAWd͚ m$O>ǥp^`\]Q6X:f!NdRSyc2qSsO1q3=[:~+Ѭ?^㓜I^_WC﹔qpU*VZcPQQ> c$S yYBK^0Ȕrã8>N(:@> op" 嚜9<z lu6aK'pK':</TSxmëo-xwCŕN唀qV:){Hid] ^d"iI~SUrSxi;~˔r]90Sq '´K8f MO6X:/L @K" s2!xOs*SL5ȴ'6Y6SU_ih{QLXE؜FQcrdJ<ճЕ),f-`q-n!Z~ j!o4MNDZ@oKaoK]"艨Z @6au Upm oc9EI^M)7<,w<8F6YO"`Zd!o+U >bs$bqPIGދ9.%@fNxq,_%X*ڭLzWUMd=n5yfWGN Ks6(߬8l͇ȿ '^dpc m1ٕ%Oc D~0r,tz l1bNP |9&یׁGFH  8K͒%"l1/譯2W,hp 9%7Z^OqI,NdLV̊z<9O$z\7((ɭm\n8拊[)# d*octuΫK ǡE+X̶GPړppvnln+^hX?pѯϸpX?M-) ??wk7<ڄ Z潒)gr6`܅qZp!@&vv-W_l7yIl~^Jkq|K4^CW Kǡja/瑱'YLMx^ㄥ˔aeld=cqicBk^\߁(u.7D a= V\4'U}v! H끰,S,&-| &Kt a5Y"ExHɄftJ5dio!&2VV)2l⣇yn6J_fq˔q B/4Y oB?N%Xꇼ4YLߥ!7^1@KW3E9艂spp51) RT4N H.9 Zkm6L*dHfhH Y d: ^jZTc#1fH$o~ppv|,pν @ts7dq @fzynjip Y?oMƉoִcxe ݷf`{|KzR46zfA?g= JzO^jǘt/H5~E>qb!z^-[ dڃWp ![|my0JC,}҃nt5z9>xi˱t6L^LJzg[5z9,5z9=|IU|lk۱璠G/'Rj;B5z9x|` vTH 8O9G!2T5ly[d=U%s nj4>@;ߢ ZD ^ Ne{9Eӱ߬9ErEoj,bKgp Q唷bwlR4|8k=^c Vox= s6YQ /m8vϸ)) Zl7hԆ`ŌZ[ 3!w:Pm¯u0NY@O0NL^cRrhzPZr8kÉ0%zyQ\9ْC @CNK"Cu IW+9D[ ''DDZRr5u9+qB-\ dRrd#>-9,p\EISZX*[?/9=[r(൬C{k mWN-YӒCYUPȅ{0ؒC,UUQrXe9'#`,ˡŋ'K&c,,JJ@,P1n}JO6C䐂`@}UU]w6-2+9ԒN %΃]bX% *rZ65fÜ9Ra7 yF͆9WL0kwrƗo•Xbeyli1G&koִHo ҲM!O|ʗrotd끰Eќdfr5 3끰E lTluT!ՊkoXBFr͚=~`3tJ*2 =CnT֘|L;ո-V Q%:l'ahEKm S+[U:QC~(ӲR'PV@Sӡ ,oQ eAG~4> j K%- n_o!Tg\-Q^m!{́|h!@gtJɀLug^t:B- ζM|j=a[8AAzAp}ŵ N gM_@B8(ZkuX 6Z 7NΞtLC[ovI 2l1]螅CbYok14ӫP =f)TAd=~H_-v-Y#8Z IkLa Kq"a1DׯT|H:qpmd)3|}"+.f-riCxdE&SFH7aՌ|.x|z<]cjւs߬isSNZR 0~`l0rfd> @> wxԻWpץCCP"Rbw6YO =.@#^qp lyCnև~apBb ~aU㮿Y\I6fTvȆQ3"C)+O 8Mny0Bmعݍd-2ɣ<ճrp↫FZ\3r-OZYtF ЯpRZ3gXj*sgɣhK m$$SqM⛎7.Y$ yn8F,hĘj4XK %C,dHpsL]NSH,k` Fm{>1O }MyHh9ȇ\=A;Z&d|lbrDËNj$ކ`k'&:lypGM{搇׎\ݦZ_b_] =;>]dVr *EJHj Wk ,r͋JCp̼: iq^%ҭ4^Ѝ^7pYp7kc7'0EI -툘s,d9 'aŮf",<^\qŬ  (M,65$onp  .V@Y'\.ng/%b 廂b#_+m8v͂N`G+/WӎZTV^;ѳLY8xčB<ȼז\xbe5JYS8PűY WdB< aRp&. mxXjE9=y\wÁDWNj@Tjbk5c,LdVjO|?†Y GcF 돃%ll(!]j@awKR% _ՀRL l r F!Z;@z= T$Zol Ȇ 4׀d<)fhzabM=DhH"| QdV* zToGhjm΃B| V?nĻPLR={^PճZpKW̕ C-5iCd^ HOWKPqXEixлyPeR 7uTl=j}Y@ء6JM^-`8jQU_ P[ ak@)xT[K0ȬdSlXP.( 4ֿXPWui ,p5LUSak@Z꼥@< k`dg)y (,]\{5h3'r_%:0XPp րڶ ғ׀jxz`t"끰JNay@1TAfq[Jɜb"SP^~`Vz/ր9ůV=x#iYl ,Kɤ\}".Xʸ8Xmgրb(ŮXa#:A^\s"RL!tŷ>)Z})|d}|~H*t`_R=y3t*\iл+h6;֗6a_ 3L%Sn\bw'\{YH)5@dm5>^\&vbgFpO3'{x =اb.!E0)3*6nR5 nz l )dZ,85 K#pkoִ@f 7j@feAлPs'=Y,O|L}tB?/2@1 _-N!DŽOPmCLd*@ٮ׶@Pz/ C|H5@-@9Ǵç*6G~7A@b14B>Nk@rx)v3(iY\;r~npZ sdRs뒀Ifk@t"&/ܓW:) !tB(nW:iŇvAPZb1ڑ. ę6lןG񡞂n%x-˫yՀ(PR s;.11\Stv[;B`A | JPoZ(?@ڑ4)W* &_7kjd| 8w-i \zbwȖxJ;!k`xԀ(t;BEQpċYσDO!85-.ګE:ݐ3e= R PMe\Cy3FRmA\Kfb-}!C?cljZ]kuJN!Mf=~!K6Z9GU} ˜tWqG/`G! 883o0Z33oS_0%y-ӹXX}񵚙OCYtN)K 7d|<osUeϮ^F^\\ ϵh+-<׶4p5:_{:$Zx9Eᖠ^Gd0<ܛoaĢm?gޖ8@.Ṛ|_i . X6P&Pz-6^}.Ø=0!QSzx[xy^=x\]X cjVYZM4p׍p|~ ]-^iṺ;ZM<|̵W^dx+5c{Bs9չ7 _l3<,X\ jx~=|\]1&fjBK>jxd.}- }O,Ï^ ? ̥V/o3х~Zڟ 2 R+`\<煟Sh-ƻKnvH%88?MG$W-~|嬿>Iȟ?ɲCR޲$7 ]Lt,CfğCaϹ;Mj[/~T>$ϟ-մ ijL"6n7F[د!Ϲ eM @[ɖ ]]s۪yC<.C6#/Ĕ9 morZ : ?wȧ}>CG]sn`p7oC|͙;ən0s;$kAY l~ml(q r.S-^t_,i:OLOTm~biC>%E,~l]el4_ނV^#!}?oaxnu_6wk-!k}$o5$*jOu{f۾߬Y` 9ȲT95Ц\H"{lskϢ4iY!;&m}VBw8׼m#V| 1jq*^?̧,]wHli^`s a?sv?:6eod=Y1T%͛S^?Tp{}Ԧ l "|"klq|]sާ^A%-OHRqm:-ͷDl 9 IlRLzrW̥oM+I~(hh>*͕?_MˉO/uh36wGs2-.~i7Ô4qt麯_L}s5'qҋ% ͉H]&ݏbC95CbRMmm6^uVo(u7ZҗϘ?}/˘-m?I>$#{M߳v۷&PPӫjN _?戼څ:=Z}ird0|ZyT}A-%aڤқQ/g=QY(vOTo' ^YhqMn_Nb3p=,{%VUhoE_(OOF=-d`&eW6fx>-+nת]->ܶOiS.G4o;uF vs4v~F~ڥ+wc3,$kigF?mdt#/>4E0K?0^Z@ŗ&1fqk0݁پ.Y?al^7gjaM]7ߖ7?Q^8>[~,_JubYZ$apBU>޴|(]ݠ+}n;BL޺F+K"[8@^WoŗEW[~uƘo/%m۷mw>'m &ss9`UzS]d m/|83: ox~YblTƮ.+k%Q|v#W>Լ})9_s߯жWf~⋭v]v%eߚ4CvGCE/0*|+_Clo6~t-5\=<+V8rs6Ck-7CMhQpxS<ĺq[R:m[0_[Ohm(HMuL}~/=!]Ru~䏎:ڒҗ@WWw%P[q}2~݋tsd{tQGKUoOJmk@6e鑬7\m:֏5XۤZ|,v#bw]E5; 䋖b>U#pL=w|8 ]Nob}2^짖J۶ ]vŲMjxoE7vF4WC4V;\gmθRv?*(XvX;ZIٲ7 ?S;R0`YwVJ+kۋmwTgC% ֗n6[{"+C<+SQWХRl5D-}=fP](=팶 .zqa[ʌ]qjs`Mތolڟ5c|jGmo Swz~ *ݿٶ)ڲZ[$9lP홿mc8N˷/Ą!+& ?~xmJ>?h =sD -;v9d|S=I͏﯉oz9P.׮ޥJ_@A9}h+梮lS/4tl@غ0n;is3]ߞ1%.$9KWnPu/%?.y~Ď#k9uS޾1GHK^=wazu}$Div~:m^u7?;F1Igz\:Zs[qΩKRb;r+$9D8[Za/x; VcG͡[%=x|y)7^;upM7PjR%,P' s%+Z$9Dv|Q: Ytk.z턣墭 1_'EΑ.tOxy1H2} 2·e9;?5@{=-suPS~"L1tm'{|?o i=b߅i;P =LtvUm6KŲO›C>u-zm>J<No_Jha6>J5ּIs+vM0~a(|^ݖtm+XIT3m"O2#m  }Qkr9P2z?%"&#BLiuW-FC-m"Ş+=wÌ-o yue?m\D/жkbG['͡ B>eekIOCއ6oLf40iQs #B"__7>rRz][iii^E1tviK1{k%WҰSQ,;V+oݽMVV¹`ͮm;/Oj#ԥT/׺u8wZmV_OڛCz}~nW{VlIse\jKi'1o ԮwY5%ŷmޥ^7RYZ]asT謢rIsrA;L7[1V|A= 6Ag5:8>*s73Жٶ~R٘clu򷴘/b4Is̅\۰/O\M'YΡoO6k'5 t:oD+vZױ/{,bzor}m/V&ډ SU?76Ԃ$9[^XScj՘G,`WlIsߋwۣ3> p| OLڥu򊭌yPg9d[;gQE~~҇гV}h/~Ifs wnw[|I+&9y+]vWǷFL| 0 ql M27ŘV_{˜NcG&v}o+N5hü?iqZZ6okEB'!]#q˫n5VOIsȯc+5'tKi|u9>rAv1v,$oE[RulIs+pG7ĺ~Ïo$9M3\GvVu_`ۊa03{x|}λomJI}u3ǯ_8Is2GnA~zcOCsWdc?/ؿ>yƄtc~XLJ9.)'!V{={cmv&lo\w5}z+/h<΅~wv-˾ ]YQl7YGz[7i{q0_/|iNi`(4>VyS7t{3k?Wy9DXMTkŢ}`኎? z#UT#~wzo/1529:Y{١wʇRyvClmf,˯vECoV' om`Bf,Yiw.w,ݨ_:¸W0.4Oc:" ^;__YZ{|j;ȑzd>Ie4ܠ'šnDKk?I[)mnWnٺ^〟~I;pǦC|:el=`/pDZS=ѣþm<#敛HԆw:9y{}OC |]F>յ9MU^Fol(:[dyR z'1 oF'sEK<06U>9Bkxҫ9,zC:Կ|14,$9w$&:-eFbJ7zIOt[(6X [`7惾aE;M孖s>|V#u[g/ph>ʋNIVtֶ 숰U1ۧ1 oCy[oc}߀6ŵﭸMƩ ju$Y8>\wW'ٶ/ۍYCZy};ffh;m ug^T7Z-/]-X=vF79B_ES|qL'/2zpu7'g$[LIH:_WO1uz3zocQ;:'1*ѢپNuk[>Jg:~k_ڏ!~R3;I{2vx,ޝ;dӞQgg:m?%m˺v-sUXtv="ThC$oO_{Z3W? -qnОz/au:qnnUOA_;i}/̀7~6pmФ%0XzY,3ownº??ɝ@,K%@ҕm߬~)U)L6?Aɫփyx[%޾RۣTX Jw0g_GF ׷l/DKc㒥w@+9tNч'ҡK?tgmbڤV[uwhjFK;'=T}snm_MAZ'U!ήvYWԺc &CN`hѺުSX+#T~0^'C^Bt`3hGùtcTl݁IK?閎],Þ-$Wq$ «IVyF@~m [r2ҁȻutlF$}A[nKT5!;27v(u;.zxvJu훁i!I7ٴMR%8퓰#t+OtjK][il&ʛ#z:`Ʒ'6~J+h_O⪃gSktB{E:J:Lokgx0m~C;9H߾|+guޜ݁۷]E27ȭTUPm8mJ:󰦞EW쓶.xw<Rgx-uh7ҁ7b.[:~@ ~->s:BI?I>dIeu٤;(ZoOnhx5 fnɾ?3m3yqʿu G^6;Iqu7Np:*_ JJn7lo=.=zwҝ9s{綴"V^=B׽p@w>_ zuΡ;0mcBtLh-ӿV>-{k봎 @3:BN'ZvY'IFuֽU65ppr'ա]֭:g'2FhS6B> Iן-G*ո~CT8ٵ5ڻm(K=hc>B'@!=4͇IKޫ^^=z\o_:r1aža=L5~)4ԞYX{,؎k#+R}7+lICg/,i^>~14)he]C%{6FϾ 䣂' ]D>ꋼåcGiEm&tQl6z@ {ڸ [%j;'u&Qm71v?+]~Ơ5=侾=jO'ihu[1?}FI\[XrGS[wu$'%܎{mfY^Ygu{0^#r8۾M[^2ں%*͐ʫ3*߸MrsC>;u(Asبx-']kOέھ/0Ieuh!ڧ1zL>kv9:GuBWߤ~NC| T=kw=^q9SZ}Ve?j|%ЙHa,+u|Ubg:Ҧ]>%31[ ֘莚!U:Gߎ9 9LObomՊ|5|WZ})]ݵ2z9WuaS?޼EPZ_p}s;;ݻZQz:W鵽ʯbK5Ê@®gJ ty:e|^+JtMVWXӝN>NF[v)Wr"uZҦAv[-b%ao5f=PZ}R[w&fNn:k~(?PvGy?N:tvp3٦N&ZߕÝ mɶG>L:7pЙcuSڧgx0E;5Iu Fv.BWlIuPp^G}kJ{)wdXǮqǂj#xG¢}m2RC*&\ڧmO`蓼ߍޠK!_dETG:w?[n"{sZ#HK$)~Z3^[؞AC?駎w8pИ2z{WFUx{Qt |OGjp1W^»c$t_P1씵IuLP/츂x` ^8Ket T.g6I>~q% /X;F9i-5ƳVies;6x7uQu;+~0_i\^;V~R_4OmMuCeW};cwV9~˪y ʫVA sܾxQ^߉JP?{jF_mF~eGٖQu0|Bk0Q:F5uWᭁ唖sy-KĨ}ڴV@߸mJit`ѫʺcޅhT۱bI5ϽÇ쀾c5¬~}OJYm?I:Yua5%['t$[(֧Z/L!]ҞaTjb&mV8(HGiY#?)(꺵i?E|gq}}12˵jJ>QiVm &tWbm.hôλ6Z#ju\]{kmQSg+&ֽ T3^Ŋh{[GU>"uq:]~ >鸎GvzG(;Obfqu$ZIo]v:X5˚gIh;pࣼF%+}:zngpފGV1wmʑ'X;}נ \CWy? ~q\ߜ,=#\+Nu75edZΖ6{>^%QSS?ޢݶΫN6JQn08ZX+ [%Z}oR癴;}fsm~E7 \GBo;vtf jrvoL |Q}|#ɬQp]#]Qɯ h{~G+J (vwtmI;H >5XNnֲ0*e 2׶N:>]Ua#&و3\(o44:@-'!Gm۳? G_Nܕm= |Gt ԽYwY.Y[V8w'b>u(r0ZÝl j$IF^,I:d k}̽=<#W~3g+ dgg8ьv1=s^oi;d~nolQ6%Wqvj4Iv?u_oNN_mוm4>ɱg]+6b ta+mMyrӠf׆5ӺxDnF8SlKil[޳b%櫟SޔpxT_Qk뛩UP]I,w`>@y|k׽f7gTY֨)-[h5p)kϫ3_;֚fkOngDIN(FWfY4q-Ϋ i{uOdS|%_>y?<#L=(qglqcFrQIIV:=xoyVnjd%Y9ҺX?y.Lغx#Z7뱑ghfzGp̎@9:k¬w_i^_%iPocuRqFz(^$bVCGs1*zq離-eh4rJwIvX_cMKK-@I~Ahn'/oVbX4)e[J\Uu~}k]9]#Wwɨ{3};*nYfԋ5`qqm`CձK"6(ng'$̿Mrۋbu̺~E!6+BwG֙ehڱlLG5F;g%XGC|d7b]j?J{~FlQ3YӬqhW'3oYmWBdM{ IGuu"鸾ѹF,Hɨu}g<'YVOgqĵeFؗ3Zќ̯c'Fr$ĊeKe}>8l{/fy4^;{G:?hD~hwӀ6נQWNݏM;"6x}3o/#cVlPtJ(˿?_?+ek.$??w?O?Oιx_LZ] .ǟ?Mʆ2_OW?//?xx$x>_/!*%r9)Pf?+!OێO-dzwRpn{iλ9$>%'pb.h+ c9KCA=7N!D:9DW{sBI5O-g8M^pEp~{{b>aApM=T{HHMT]qcSåmw$!$e{=wl#,9dv2Sr(š!!"{}H@BҐ6vΥ ~'vR4durAR Ow١|QE}d/>c>aviw6 ҃tI߳F$#-vrH>]'9WKVNׇ4~,Xhz4Pb Ӕ||HD;فjB'z쀬 D8پHy䀲B}FI! V[%&mwiD!=`o]vf9 zp )UE9=%5,XS[WUFgs]Opb+\ԫ(^#y7;{!;褠U94qEWN.lrIwi Ղugw&;_|}hR X҈6ߙ]*$ۛ M8 aya)DM< 7x>>f|ٜf! @qyIJ Uyd$s^@)2TsE> m i&ODPehr)WC)ヹMRT7c+%j*:=!H*qĤ'yc 5aTfxPHcމsv Nb`8H Wd~?fmv}N,BIb0=Ǿs5DzPD,Wc.YڐCLƉh.+Rc > J"fBKAfgNDlDI"+{4=-1\&bS=%rGړDlcT،LɎX'byD=dm'L),pPQ 皇͎=E̞ICW̎Uv{O4Z2pDJ] h"A bK4uyHH"Ť!bu|!_ PsN\Hi Q#54`rT"!9؁D<"'!TQ<diKF 1$BT]Ea;GW~;-~lI( i@2J>淝{mD;NI9%KsI]F{$:9d]">Qg.{JDO! B`u'-hf(QV`3AsCDCTW7b0gDSRU6yȮ r#4kH < a6OHqO v  $GHڈ6-3-\B<3ڀ R3M bvśn+3).a׬'aHJoW$m 6D+ xm%"8.z ì>IcZÆNCO:>(`S{KxIA%< ;5toy' BxI>2C(UdZ"a?(a%jI"{3ڈ6!yNS]vgPGaBJnhHF2tψh+1 \bPm?Dh©JI** oO 0P ڧgyI8&\v_"&_q(Y6F=;e9z}F@ۉ.cdyXH*B6 8Q* 8kr=Q!f*Ъn}mH{4 XOy]Nk\IΥxm6rP<"GX4NĄ&5pF"qCDʪYr_h 0ދ>xv~ibuJ 5ll*zg=DDP#sgT|5]W(u=#IA8\.׻6=KRͼFJhtÃjȡ뱄dѰDr܋ i(]pv*4Wܰm]9֌EJfDTZkaa%i"*tuE\;v&tX0!lNR]6sY'iMDT蠀t Q<)!PTψhϐ gMDƺp P86!P"0={CFڮP~&=7 1gDSLz%'aF#4nG)sDG(!sk^^%@GW}S'zTnv=գV<=dmbzAT_y88O Vv!҆\b>)J;%UmUc{3"!2U nm{$2ƋHHeb4'$^Koh\Hd 9Gڐ6CP%y5ه_N-7R]?+_&r~'ny![N|nhÐSNPi4-:9wm<;G\T\Zf=+^9e+GRւzX&"MD|>ѥ &R{q$Xt'+h!US6WrZuyO1G4GAŕT잇 ::-ۡ$5,Xٝ) ǒjpٞ(| hXwOPj_y>&z~x(' J>b!mW|ٕjh;{ 2ֱ3dOӁCaitdwSMWym(rșS FXLy:ř\(lGSk/qRC4Cy.E"ik :I,T(w3hCWͩVfzFD;UQ6 Lu.iNТ8DKDwh"zzâ!!1= _Jgl_硧c:sBH!] hs")"=dSCO`7($COwX8e&;熐]cԐqIoG0J.}FD{6P<#>1vR2'k=#>1~Sɞ->6"S$tבH\_5j@!k ^DU&FcXwůV7no'ծyQ M:v%2ۅB*/Z;FY$zEOH 'Oxm\I)o SHV}PDyMHHrFE{$&o컴yʦ svśn+1d PR ;7֨ى74V mT30h"A!!- =5L$4H>u+dg\_ybPņ!ͣ4w2G.! RϘYRV ؝h/9e:o'g*N1#_XW=`og(vZY*Й t$/,ҝ!m<^QN`/瑸R=m߱*./#<7JH#AX3ϗ 鷃 3zs8(= J_ R+)Hc}o * x9x>-B(·B&+!ԴsCk)߰PZUB/PVΡKI>)+CUr)މ3bZ2wl&VDp|LAr,lcC?dĚ'\f .ʐ9!5ݞNj&RVT QOJV쎣Fc(S 'hd .iz `GLUȹf_FgL{*/*Cq#"L IgD}GKgW\Jљk0 G5Aa0c4:V"eDzCDCul#%z' hSpj pF;ÓHtcQCE9MEP|7D4.$bt]5j?^Ҷ:T'v+k#Ft 2Yиxm"6 \:%piQO5⨭_=$+ nPOYo#_ADv xA F-v ghDcP (i% <*$/rq=(bfʹ@B'D!)9<O;`<&.&y{<,{} ;P~Bh'{޾>QVP?p} h2o~< Z'y[jPp=Y[̧fީH d~V+",yv,&-6 6  kچ%y 4P]zRDaG&Az{P<#(PiߋB MV$spi٦VPi]R)䃝xCH [p8W734H!GnzFD۶K+: ;1\+*{ڈCJE5 Bnid9ANJ|f\$c(?GPkz5B!"bUHą4՚Qf30 CR9x)>6Dzj=4TZ_#9l_y.tx{z}Db08uv?ᎁDZBV5G4˖LF-IKihdOG4@ )\g疱;۽Qo8Eü ˞T83gPUغ>Q0RJg_sۧGp&Dhp:SjP9ܣ(EP, gA‚CCv!A#ZYm85)^8`]Ā?>i3D#V)S(`O Eg# "1U6 KihΈ(hFTbsmDۈ!$Nm^ !x"̍-cDh3> nbWp- HΞ513 A$IQh`5b"쬌y0]Ὂ/zf<;5"sg :Odi.cŬd{ @tAPp ȇ0zzC)Q2D]4ZcИp}O8Bgx _Hڲ?H\ރ'y}CHD2%?HKQR v hlk}MCvPS/<\hKSu',dhWm:Uz悝 y&,8C9վHӰ%kL } UI3u2B~G0#H%"p-4hTpN*berTg@k lVDw.f/1:oװYX,Ȃqg'׆T'{}lµmg;}m ˑM@6Ac(Qiq2['T_7aKAҢ(,Wt}B\3D|wKc=yOJj'bpWnKgs!T;:Y9iۙcUDvZSчS.Ğ] $yU"6yۜ"(kKnZu砄X󌀶L1jaH=7 o9<"*!!m?)0S*|CKkix۩:_83V!m_E.q$u*>mUЋNogFNDḆH NCF<ޑ%x7<|R""s?(:m0+ P MCئ}1Jr`{V튣9Vq?~B^tH'P4*ƒvBv^'y8Y4 ;ڈ3icO,nt٨h"JUNEh&J7ЏVvRI搦?\c37qC< uLdHs/.%"19lMCdlf 5ڀBH@-H>1 .h#N$ϙxUsv hHN)fT҇M3V%Wd#ih(sP,%i%«^Y:]9D<6ϮR(@9dVxKy!y9o p$к6-{Ak5woزT9F_ vF%ɑ,UJf0&»XGc=jtVb$[D1 Il\ݐթ,v.TQCJoD*"J<׫Z(y3∶ g.?)YFg)zoMx=BgD&ֱ h鹐_ } gD(~G;" ÃG~Σ[N,c4 YMTGdZtR4"!145#"'VJrԛGXS9/V:G'Vn;dG9;?TŞ&Tvd qGDùK؃eƼwEuTkD9a8p) 8g#F磢"4ҊD:=D c̎{Sk{Y+žQ+T-Rw4 5&)UI+4L^ R*'y]QV'lxqD;֘93L4!Q9njngXS >dd;JQ+eTby.J{QE;\6%K$;5_@JJv& 񌩂.B4Hv h%S? jRoTRL{d:|Ϣ.P!h"qAH0Ue$q1]e[{H "J5r fݵw{~fQKdNl83qH<зt1gQOJCX]yr(yU(>&Fj& Сtng_R@ 2@;G㚂`gi}~WI]L~m@;= KNk7Q Ԥ5ǒM$/9 Cr<z/ <mk4$'><Dbr2h !3(fUNF!"Z5o9#rYp$3"y!/Yͣ hTV(T$3Fqg;d>e^yMϢ)_X&b7aay/NAK1ϨYaő˥֤`g4\I>s>(,(.Ǡn3L SJ=vϣ;ræ>;9L%CsG-Yai`郖#`8qC@#$^ ߌM:2'mo{HuH_l]SlB;/9g'R.Qe'*YJR %]6QiKOYͼP 9>W]IwNUgKHd%_Ph7 !Y=`r=vCD;kC $`7A h$# )P}#(t1e } ^ET2SS4B~̣I!'9{D,nйx? HQK-Erh'4sZxC<L&.vLRq2|'!z9\8Dvkk3&. T: Ԭ=dm7bѰ 4jojHDvq"O<͢^36m R&!_lG^IcH'8빒mEڈvxK8BrM WH^ Ζ=M((C|+ޮ# egB *'"g! U3VqmJZuV\Lyފr=+-)(oyx tҋ(SkRv|씋BiԆ(q"Gu6.\u!}qsGK!mgSÕTBx_k(GgEXC"qd8=!D׉d7 #CP"tv59%4j /B/Ik46ksԁ;m?M"wsgiWHp.:¯%;ڈv^p"CitC<ޣ+9v hYc(NDrvR_nk#yX)**qCH#P\K]qC@#qlD=} -q8ɉ|E%1(pڈv y_a?ş콢Dg~f;//Y4vj hݚxrwRKDvk~ Mu+c=Bj%QbqC Niπtɧ YJ<#OXXo🽲Hy8@wYψ#}Ht?|FDUi Wjtی$<#mYD,P!B5z{➇ ]9yJD2S\g>EQ7ЅP#VIFThx2L9Ӽy d!y/*HFB !|^:#TI{UB{\49/ki8 1PSnhPAGv Ɂ<qFDL-sDРŻN9ޝ>SѠS'74zq:!$`-Bo8EcJS^iؕz2 *O)~ÁYT;JGH2-2*VnxCD@~GEzR< .+I~#$cjb* Hj8S_삩kyʿPEg?G( 8)fQ+=(JA2p%f@{uPK{hrԕh7^>Q.r$ia'q4\H!K0_Ep2~ "Z^ж & #4Wzm@;_e 3\oWtá ̣P3"~wo,'Aj(mgY>},x)*5\ y aq]wm@iA=8G -cj7}og|,؅VЎ7IA*˄d '4P" mWB9-) qnh93!u73|ikU6R/4ucNR{2PFZ>(; s5J=t1;:9ȴ8idiVk#ڮ#|E-Nٱ ";%\g\Gz h|e@J"'PLё)Q]osC9gL nh8 >{G w8ۉ8$:E]:᫻)(<(b!rNX۫ώԒOyoQ BpƯAR'Z|{KyhpfO|31c|QHBZ9|nvC<#P${Lsk"za%V4CYpWJ(kn֜ y"9+̹RS Zq&z-B6{"M2ͣP]А8}\Hgs̊ X/B[.,=pn=P`0֓(jר'rd6?c+Ȼ!h#賽s!֟zBƛaϚ)`F'{Z8fEniZsf_d8Ӫ$gpMGP=MCYρAQۯy|GIqv"8MIQB["0x\F(ZsgD*rE$N󐻋"Uztmڈv$nµ6јř2J3VZ\՘(QZXfO (! n[A]Pp)V9T,!CFzBSOy|Nxb ! 6EN!ab(3j ;ꞇcROr6OÃNeҹ;.~m@8A~ㆈFyU} "T^u{FD;(8ݹ ~=i^3]WGs|BF('Ht fGtq.R[82嬞xJz|O S*p}@;qVoO P:2LJɮɃRs؆݂C4: N N,/Z2PHHJE~ Z1p;x6 tqɊ=C.2Dj^]K,U%m\_Ј ‹a5a ̩`"Xxn8r(3f}s[hӤ|7Zُ4%ń qmD;G¡^H_g@ 4]9z({S4 HX\4$h3NkN L!R% 015t"ÁtRuޡ6:B*$pOJI#$=(1 :k1j}n8EcO> SOt!A{O_K4:JLa,:b.Vg"tME^:spp켳2 C 0:WDBO Y9{qQ=< J^Iltdx!RrD{aSS Y=uCa(ի]ctCH#jFU27WFψhqDOԮ󐠋xnn _ɟ;eNh v  (r8D]j*)qWv$S1x%Zuƌ <7e//V7D4 i!$A )fQIAUna@# |0ڻDgF]G(S74-\򑭺I) C c1X0imstiDh\hW4@46 RIݞRq}D8xǸ[0Zv kR8m3ЅK)qa!^5H G45bemٞ桩sIDq o P*p}h+Q]Wu؝oXA>׀9ڟاEJ N y{s3] O[HŅHe޷rx38o K3Z7*'tUEf#C3x.o]|.JBvl7 ˿rb_%=\v{ĥj:ښEF^Hdr v"An$xA}D aY.'0B#g)^gʯ 1Zr 9J=bDT4WR6!y(#hЁ3VMh:%ٝh3yNzETPV8ymg;uN .QI/yyp8SuhnGFBFN<]B!PY[Z!!m'Y5ƜSR1vrP*9.J8 iM4G> v0(bk/ϯ b2ZEƅHʈ]_&LZDBɂe˞'i%W,е$vk# Gi|u'nRd:bǡS\FgM$ qԃT"MDZR6G; lE^5V9b1T\p-N$ 61?^qpETdxB<:>fD DG\2,\v.T5&Z <ㆀFK|vN37x2B BJPbED5k^\{@)@ T`9!E9^-nEHpo~d8'Zp ފqqDC򉩂DN\E)29T]*yp,Ul;)60] Rra"G88KK/ ;ݸ$b/&sSkg"A"rNquH!D8H@.'$;␶0=+_br nHN춐M$:b$*\JvS#9;JWwo" EE]Gnpöp\@ˉ6D ΢e=M$(RR[̂C*6'Scw((HH!ў u}jt(1G'Qj '\(J "OYP4k?4JSv{hjzЍK(r|{ev"MTIBX$IGR3O 8Jq9]pzUl^<6#P!BWyQw"g]£ Ҿ&b6副MF6Aph$!d'( iVgRk#QJMVj/Sow~Od ? 5"B6ϴeC"NY_=7LD\O%gҵ)oىx#>1ی~&zQe@5Gj}fkAKw8&"T]юy;`!ܴvCݸ#a&:2w"ɖ0qtpX kCRlY'hgZ̢l4;`;.\Y x+J)"/~+̓\ fPT Nj!cgcٵSFp˵#Q(F{j9X_ڋ33D,um0B6:QvX 9h4,;S Ǥ0 M}VZ/nv!maz'ɉ,DvJ$:=#F䔥yöh9dX+ӟL4yaR>ڈvO!F@(dH>d!V$qrö||( URˬ9yX4Ρ~v:!mf9uSi:$ՎM/nN10g:TT{HQr3YRH*Vڐlu\2zesX2q2~RNRQ;g?I1{`aW_vr`L4{~NĜFWl@4sG$A޿9~$$NƳoc=}  .Ddp 9#SNA~hIy[T@ψhGQA-F}"z;Rɋ,q%*X v+ߜcYeߘ> &KdSR>%7DkcEPڐ@W@8NU+m$ ,H!^ &fWL3c (ctّ K;- 87=emf괖wds/]7t zNLD\`=݉]7oѸ3Do=44ƌQwwCJ>Wɏ9ID E%_~Mxi꼥aBi)ó ޞ&gpH;%ŝi(G2a~SP ;6k_ (&bCBm vvmv*&sInuâFvAC8c/e'"#'Q᛼6qCL (Y|6,PC dvZgh%ƳВ s!( i AR@؋k#c6ԈC-}öېOU haUs* 𐐶_(G1'ow޺6.ׅa ɕ҂ewþQvXE]-_oi+ .٭/iEKN8+0@6=혢.$Ԫk#lL!"B':pjf:BdzWR؞*)r<=%ͧESTeڀvO!,!$!+`%[:ݰ6KmjDn %'<; ́V™}}7ĵOݣڈv^|ձ6vö/5h9ClFEsJT#ڄ Mr }Ѷޕ@^_Ѷ%0}HU{:=Eod"V: T 1+ta3B't't>=)9Ou7qlV+zN_jfӋծf!a%TWCBڢ8DoK,]JDw=MBq|x@%޾8HLTh"4| %_aog)VE߶ΑO4UDVZ!abȀzJB>K|û4<@.fO3+K wR(QSkMv>y;]­m ]][ Qތ>}e8P[3ԇ$}G |eŋy~#X1T %{ڑy}ᘝ< ?IFnI1׆#/b3"s nLp9D {\R.lT3J$u7υVEړZ5 <$'^gQ"rЪ:\0;Eϩ5-~[vfZ5H"  g.ډ$/t:#_:DȀh 5뉧̉h%3Ba8>e8k#=5T< Lv_Z׎Z J[\vwHYoxmnrm@;ܴmxv89x>mI7='qk(Tί }d5=[Đk&Rú OPS8{G~@Ý)g@׆L0 HIDފpCdP$M*4lpEÉ'̋Cں|`R;$]юR^VīD<Hv_vXU@Hn&R\Ō`ןù >P=XsmD{~pI˴(v"':ةO7l1R,q1HITj waqj1;Ɏ&\ń"g؏D+3lN9ܰ6F-N2NP|v4Ddfa8xYVɞ6m4t 9mKU2Pi%J#vKRDJ %5Ple  yLWO Ȯ ie̩wO p"gT١D:\QK#!MgG/?$@7}! RCVi;;HI]u HǓy|#'$T*Ai_O<(M 8E%,O㡞^q2Pg\Nǁ=<]6ĈioN$)g'fN[Chpt,k6}DVHS0BV\"3_Vq.kVY&#H)˖B j.i Mҝӎh@hQ̚ݵPպșE=7L!y=ʤjw(E2 A .'iHHTDK3" Ec ~]3] FxîN5"`bLI*D|;vvC&?syuɲy&޴QkHLžJ1^i%:Ǹ?$=YRN]D'"N89Pىәɯa>ڐv~VN1.*9q)ěTcawp?oF%f!!m3VvN1 i39BHgT) i;^$jȏxcqkaY8=C"8`״ Ịw7Q9$ Ms8'BdrQv Zda&bB`À\2'ߜovwPpo3dGmׇ݉ JH]Q=dTNeC#v]QOP{vVi`ǩT*D4J=_J4zFH;vR A.!IJ"]hbSljdy'ׇ4^$xKN ezEqDE ;vHIKH"Ft}9;\{aҸ_ "Z )ܒ!\-uvo n؂JsDsĒ(_7ײJL?Rv:]pNR9 {`F 7 LTe l7/s F'Qڑ<\H(Q.(#y[egw_Оv/϶Gaamhp%՚k*gs[L4%2Lj jZƛHt$UlCfUWL3Hj7ϸ6+}XCA4UmoLc?! AJ?PZx4؃9"7D4>{W0Bk>q=醘mH}ƟҰRKW 򐭷^Bc';Ī6)h͈(HNa#V3ޭ;߳=%'γNd1}1תWD%TS57W/i3;J>X}?#pF#ߊ!hWݰƎt?^jnV'QYwCHHکB׆cu'H<[L|7ȏ'|AҎybVZxHO9J[8tjjtC@c@7 |@vrXy8+V{a1(.T,BÎ'ő1I&7R}AMA>xDb+);U;6; ԫWmrEp~m@;s!I@_Tψh[l2'V*Ĭ:؊)\bntCH~5%^IhwϾ6R6D\Hv+zF)I%٫RV edBe_B jPPcD|"٢#E 'eS26_vDOh""wȗd"*rzb 1kߚkp)=) 30򌘶s\Pa"$ ^X\Y5Ֆ0J}Hta &cN$kFs,ugnɚs/qM$k%;B04o#JU@"jmsM@+y8ȃ3϶K\µdq2c++ryjk~K)z TGB @ܵl""ˠZ;qYv$j l5quD;D\uYn]#H’DJ־Gd6aƳߞ3d7Rԩ/n&[ NuuH;%_s48!$kΫ!/h/;OP#n"!v4>QỤN|O=&kC!}r;AڟHOawv٧H);JZ<~F )<WcPqۆtC(%%UMg9_B:vD"-ǓzɵmR(Z #asV9B6\J9dEQK8Oљg_f#g%g\J!#͖0f6FJH rBtI2r&V]q.dW&'a#R_+5[^vS_rDAʑ iԢ)ҎݮOxm&Oq>UogpƄ skD:`,α"rpCHc0GIEA[5ywmHB`-x.X/iGbCVBIvk|nXdZ4A;wI٧T%MQn i$WšBb'ߐjʈ|;bfilPfoiŪ eV7?#ml"E쟂aj& b+9 4/.X#{H'֪x i':69:<:2IU$.v=IKACBvqDu"m\(|(M48U,Kv> Nb=;⍷ݓ=6"~S'Dc(qߞ`q43TkCN$6YԝP<8gGxIBJ;]Y giiNP&i(rWO։dJ%*TJ8H Z#wفġ8/3m0;iI#rr`ZQ1g\Ҟ/fBScO* 0ʢ5=Q*-DEgiwp5a5C^}5;$:]Ql_ewU!m$8ɜ`ji^9=)j'CI)QG;D޷{.E8b7~FH{B*p)wah* >;z)T .J*|($\ƭ*ҝ$Vg7 3gDq]\mH۷R\F74V9}&)ǘp4nI_J\o";Q2ኊ.f.H.}g8CumT]U o㉈9q9NPv+IQWf~)hP#R*N1[DE3!q8Xc#v~ۮe'R ꂪp6$r*'DV{lҘT8_7<>t$:bC6F M9lvCtrv^feJ7$Ot;,jXzi&%zIR2]Ӻni2D`![ƨ<4!ܐF=ㄍ*dހ=REAgWz(fq|mH;R4{A醈97/w_jܔX]IkWF^}5, k_bLg]I3qМͮ녌C7Wl{kcȮ1tԋ>TaQiՅ$(ϱ'44H)Rȓ"=,{H{Oh\s\x@I?}CnT*i,CViFIDNsvBq(sOE8DyUhDZ$պ4։k] kC{Yj$qˊ'DA~3"Ssެ҉kjM4N Ş'zY=V.;t*$#r(!G\zkNda=~=J6v`q(ѕOGoHwCRtk*9O9IۤɇƢbTsHݢm˖KQxC@N0 ]IRD^\sr=F'/DX0%JqNA8aEN@\EއF^M )bjL~iTqbFc81"ƅ_*ٽ1hsNh  |Eڙr儐y t]-c);qCLOT9 !Kj͛ CĎ)'O<ހş N <-.GN ! ܴ!>hv6 !y^X]v.LGsȀ n8Lc 6]#Ur23Db[hhJΣEz䆈}LC}N'Ū;uMn$|f&&e".]@zmD{J.E,"CN-&gCBo| DWr"i"]\bO'h5Uޱ4"=;̣t(iZkNulrS'ׇ4pHCnhX+z6xAi!<*_d()/ytG& 4t}Hֱ *i7L *t>7l]TweiSŊq&;1e#N/N|$Olї{AP+N0R&JlIMb"}9j c&m]'@wB㪘=;L/[v$}pȵ!Va\Xh"m9D1;i󸙣"Bb| (xټj=TjL qfEدCT)yh89P`/&d"vψ.g޴iǬ$@ 9D7jVCQʎ#-CMB.c( jeӋ'Ϊԋ +.xx]RðQQu Izpn694bD F|ݗQ-EsXfR0LLH8Q!1 %FThƛH6VrگډH F=((Wa"cJh.53wnil TJ\=iZ2(j7!1 K:)V+niB!DQI 'Zwb%J"QfU܉&/"9!0-MgP"DJBI(I%lC3)˕/UIR(U;2󢄫' ,j%dfL+ (Jf@.,p! !Mnv \IY8ثyCH#TڽQnxߴ$)Q]tCL xGq)7fNWNQ+?dv*@:W )n} o(8Ko1 GDC4V%~f!Efguv^bDT}H !:x/辒]mHY5Khๅ[ī"xrՄNܲوPQ ,4s! F <\ݥZs3"Fw4Ք/+3Hɴzig,TQܶD>"&ܴwbxŻnJRir': "TBy^=5\}0n n!qqϖ~tlw@ġCiDtiD;b) "g) v@BPJ>!UE繸3-ڨQn@ܻ,c9ڭoTg&(--^̟(QO&A})=d6{LZD%.Dds'@$Ҋ @ T9J"Zݷ| T!?|G$\VBwJ\k$0ȩOAx\)HkThH|pOj3,_\ KF'ǦD>C!d^OuaC Jև#Q>&rĤT`ѪY{Y]9Co3gh&ToTltB2%&*"1;3)b"3JDv@%Y5SrGQ,vQDdpV 1ͩz|AAQ2WѮF}Py r/f 4%ȵ l=²7 i/)% MK}2h//w˙/vLwIs7ljtR/KΨ6X&Ch37p6 4aO 9ҏP#0ʉPHuR*SHn&R-^J$>"dXZB E}LŵPJP-\zȾ8!l'دF8XTCҎܥ( 5V7D4U2)}n'Մ?'R]rCLc 8c>Q\H$+M *-v;_eH}/NdX*+ PH2! ^}FDۃE4(Ht"MWm-iqpƃsWnL{a1g@TB=9LH1_='"cV$p+3Us,]0o8Hc,nWd;I tsdZ0AWT'nf2۱^&2\1'nWpƅnXGB?z;f'IRMҴ4{' eߕ/RL>Irv̅'i|RAV<+]ogSZ@IYyʦۻf}45,H'h74TvQ>D Md'Ns@ևmٍ ɝhO䔄%*b8q&rJBa_PIAK8%9js |7Uy%/ L:$nrY|E>J'vh]k iua#%PK3mVk!`(@IRb8ݟ,Kt7z5]3{mD;:dAp57Gv)_/Nw,"8DJCvގz1FvI'^(niBd I/2 7!M$}^QZ0Nkgjv8H%fWC74.? N/90.Dҗ{!|cqbvBK\ ShB =%'̟ƿ>& T{IyqF@8DXl<{>~ +V9g_BC2* Ra"kj]Bia  ͍o3 kF1 !˴9A> [ø'>0M[ ^N$\Bq_{H(X4Tً7v駒"RO4'R.fڢ5v#5\D4w)*j9_ ZJEs-]E~JE)()>,ϣ\tBEpʵ!^lRDZGH'hGGi{}]Gfn9#SDҋg1#_\@ NaKo L"yCH% Tpkً7NI$|Ȩhu Sv{I9 P5'V8%DJJޏ6\ߞ] O i4}bygw!fI( hu38[vp8aKsmWRI؋oCoiĖ1nwwCHc +>ӧ+lߐ/J I9N<.=!]/<\PHTg),eRGi&;"KCx*U4^!(C(# 'T} eGCq 1b>~7)7q4TJ(] Z"<kdU\ܚw敄D!H ^k5{G37<"t͸BI s'<\TߎI.¢S4]ȡjџV!E4G40 $_J~TXqj 'w@RW>HاҖ p?.BIE'>↘6 h"CnH@m^9/!1m+WUD4ϋƈ:)ԚN/w8&}O(i,%V{+e&5(nzmH;Z-(vB7|ZF}bJ>A t#'yz:5sP@QO4'r?RCq0O&r?(m ~/M~@;јKMRNdHO i`&cDwLj K!ŕsfvJaԕ 6^*c9Ktp.{=v$3h=_Z47E L|k6D؅B`ݏ#IRHVB٫}~ eCVh)@}E<^Qni '0gf 39d %!Q2 nzCDcZ" 8/[]7aHD5jdP|GD5!֨bv|mD;R@}l(,ؽ) nN TjEIk6pOx«\DWɱOT39( (TAtYmZ(}9%;KzS\6BR9Y2sQwШ8wU%ᏘPy;5J $PC 8cɲ)ATEY;ᆘDZIE"74&EdqU)ԟG;놜7*qyRQ ;]vk X0B G݉'iDT"aŊ֞fLÔToikT\9zQiEhj>F6 _,=_2,%J@9I #D_[+AL|y7ϜD RHv0U\T̔!7lɁ3kP` BMG+K&{k&_+_:1ㆌ7*SNUtyYr68JMEloX"=|/*jZdmܳ=7"=J=i"kQ!_6lBcsHGD*E$= 6PJP(%Sy\\H!!Rv7!B|tQckpò%Yt‰rB *ft}^<4wƳinwJ5#|e"f:ȮTz_Ԋ6^|vB K FQ91@NȼxmڑJb~JH꼅~u"eplڱ gsbr񆈆!stGB%2)|" 3C$?ҰpB]*:_Dn!9gpCDc*W,%AY>ڐ6 iE~8hԧfq q6 .q$\!aPD19;ɕбXz;/!!EiҜ"CxPLcEIKDvIyی ^e%57d1a#: %̮S$I mN8ܰHCE ='~SGIP>$8*$!W!!m9]Q$vE n "dt)vM KFi^K)7YbBd 4G'nX5ENl3D"ƟQlj\&`;[!@:,Hku`n"#PgF<(q 0]i(8d7]) gU_>pȮ4DIN gjto"HgU^'rRK䁈ȃ]{pmH{Nj2d9EIM!Nz!EQo9QJ3 @A}n9eʓО&rR>`'$oi ͹jvDNjq g<$mZ4풊:"ap֯FJ[1;IMq#&{a&/5 ʋyNd^ j 6)2J*}rC@cFX矟h䦖җ?3T䆐ƽA~1YsJN!/(5"G# YI蕤)P1KvIMcM7Ԕ7Kj'}Q8O~CCPl&08nd, d-C|EJ| 'do!((ܺ!@#ɒvX`6 -JB(H!W'v7&wH>rن:GW•V'3t k]BlG9t9\uFq'zBtEJ_ 2ѮA Z։7-i u fK )zbMdѕiLNOd%^䋸o֝\hGBXt!!'_f]ĊIxvAd>QaZ()#Tcif?;rؘ;/)Ҹr ! A)':s9Rh M䔤")DYE9#I#ߒ$a[6ǔCv;"ݲ)͞cC%4B:lI-}&隆I g$gc'~RR=eH^M<ǎ iLOU9g(Rz%s"琉%.( zYS>T-|7݌gZ,h1cS\fߑfqްxsѾ&2xy F\!"?AUMR󌈶MZ(83Ĺ6fSE(UH;&`3R5^4xG".L!T+ف԰Q 2Y5~IvuBېPH8uCHcb'KIϮ/! M". 7 iHH!| Op9=Zڞ˜r`r^Vvv4($0U+R`–Vc׾ߊn +4HBȔ4,4H1>diC6vUN>Q_X0_2y)p! h(+*&"ٻaq?QvQUp;h<؎,w\JY!].p/j_Ҟ$ίJ 4t*mh&W%OC7D4lI2r4䓝 tw)FDA4gWcǝX#*'NP51s@CYiPSCx i(kTr]Υjج4Z}ʾ۾c&]Ad_K;6&7e*pڍ'nH % }RY< i̋wEyNcwlCOQxx]rΟ)hOyc+EXE9>emw*xHD;'+ KxIڮDh<!t$ 0.P |'xP3 gTĺr"]?ecXUTS@g.hSfcB~nȰgI P+yjhbM:6;H!~FpOhC+SOP&(D}Ę*g<(qWbH8I*t|LHү"$'v{|7,\US~ Зv)a+ګDi!{`;ڽ.oƕ_A G«t?&dUb <)D|u -y?r=;3إޫ%Y=7\?e!ğni2"g|FH|HyCF 4 >8"GtBK69F &XLd K͉)EoKzmH{@#Y('[ ](za~{PD\b*j8O0wTsk*1DgR l&rvSkCIKgם^JcS R 7fz"j wM RVRK9atxDe0dibdU ](7З BEN7 -$]X{_N2>s&dw}@# _Q"Kd 9䁽]2.gﲋIq9o($O J2 #!dg7t!-%_cr&-@*q{k#qY|vbŻnMJ )5l.oX2՘C@c*Jr X]e~Cjؘ9^v9 ! jBrÆ V"sш\ vBࢉ_NHI\>JJ7\鸓اݰH#6ZrF>Eplp/ ^|í4d@4$}f'eD`XJR!݄ڐcn yv!PHAI~xmW4ҢATv 4"JqC-'v74o1@I!+]I!/WCNGOiGLUG;{PLkA!q'iD7=iMHݎ!!M(]VI{'e"RTp9=T Udp>=$NUCA8$mPqҷY£hFzö^U' !sǕp5a.;/d! wm6$ƃ|c i@c>`M_xو5I꓇S2GCRz4zDBm(nh̙*Bevg y|~B%W@BqvgqE.QgŽ!-md@Uw;:* #v_&! ՗/)R"$7Љp  CViBO>kY9{ߚm$OG=PQ|wg~iQрDq;przFI:HO߄, q"P5 9`z 5:B$b0!Ȑ #+ˌRE-^v1?uqս8Н7pOij|]eB )8A"Ã4裍!y1Ni.ѽ|_]./ .jQƈ:(zdr\4m|+ӑRv_i>+}p>Kۺ-mlP_^D/{SGc@z *bVn/LA?YrkVFRU,ϬQ|,, _(AoBy?iQ /4M* ^ĆyaaZi>;(}p~HӾ_?ZTX唞'sA~z7w \sõ!Db‡/e2jhZ4WEFF)̩'<^H/!WgB[E忥q8Q!FB#;;>H zM} ,}rQA7!CτktRV~aq y& Kiw+"ȇd{|Sikoupv-lTm|ylGR#g !MKC o6.xg%4Pt3CgHS JvQ'sc*7QҶ" vMpϛ2%F҅tv4I],LA߯V@0XND\]a+䏓k 7hBzN脀$,4,^ Q/:?\_o^kme0+"@E_4_ƉUK hvϝ_ҨBӿF-(xy~H`r͍e7Q$I~7lUCiWYX Hw*HO `mx!%y)/!O+S}P+J\ XVĠ{.ؚUdCӡa?i;j~]x"WYCUn-yكНrC4t!Y^Iٔ6Bz) ;Cofw.wԵDxbn|>]:8=]$G`:%$*Bz 畽Rfd P*|>@4 ș ]rF/ʣ4I)Lc:H:Bȷ>4 d|sUBzMջw+"z~D/R\RL0b*W_4j{!Un)̓CmhY048xBPNk22~m90~ CCffgv?.pCvܹR{!=#—m!;HY.5K{5X{gȪ088%^ެQA/#|syB\J$K g<@$o: TڼK޴x[7퍒~v7 ta2tH`6/!b Wi:V#0!IWX3 Zxwp Ral9"(=QsG8"oM&7x2?_蒝Lj0[Dž;B_ c{!=L#pSAn:~yd~:H/m*cT|ZMj_<@kCp~P1CG$i3+ea~~Wj5B~]DcAGϽ D^]"Yc]'-VHVQ@'h~zwED;.ݣ<"^R&2j㎷$@DϷe#"Yv~dA3c8ߖ %09!>8yl@:9j -s-3Nt6ĥp= HnAGIW"z ?i_14&mHFs\n[ (G7I IMYqIE£w⽥H{!= H \ݴLU0/TS=DijVu~3Qw\y?а*H0Gjl: :ceGF|d8gV?;W$)4!Õ6!JY; HNij'2&YT-PmRB{P3 8,/yUΘ4+ran'\NJcׅ,pJj$Kn s'@z Qʪq@o on"e i+e4qMD-g%U2>,xn, C-[6cگ; /B^?4̥C*D5[(4tnhICOp(XKsW[kbYћpE $E4zQdPpe TɢbWiՎȜk+cP_(B24+#yL|bz o-XՁl=_v8˦[7WNp<:˦r>2ŸcE1A/Mhm$".uoʑ(i5LʂB>i4̗Qdžy)ۂͿAŠuEmc?y"2eA>ysH o$Y^?LPBy!M= IkH2*^o9H ztj񴅄v/'AJnI_P {5Ҫ2X)PE ڗde@S$'Y4Vp\pXo.EŻ.\QdeA)AGwKȔQ/ދ#jWN}Jz$ ]8YGypKB/kN-zI/ ^Ubüx7e,d"B+ih\-nw&?E\_ ^ћ mU; rdR#F)Mz|Â|1pp }>~oM<@=?S"tW <>Hjq<=;άypBOmEH:] S ^[41w4GusT=@[%c\`PBi'R[ "Ű^- M'=d{=^GkpH.3!Zƽjyi^Ja=ReuɧgF\!C]!=82%[28ƒ<]X3P %8iA"&&Y-dVsZ5|X. @veuD+=)8IHq͢V]7 z*1uI. $˚8rA {~i^4(tquoHpVyvw/% 7abyձ0纸Xʶ_g/W$;ht(A븅msEV~F)|L/¿FMBw{,ӹ90?􅡀[sdJu]PGEk% XxjB2{^k7¯)G-~ҹ'ٗEN[p@zX*\8(K٘m2ȟtAӿiBpSa=Ioŭwׅi!g8#:|wvA@h^AA} z }swn^H1>Jop&>4Au1;)z "!sC>8Б.lV35༟X.# F i>؅ܹף.Ae C$?K.:/Lqɻs R~CJJZd< ap||2A R ]C:489~ p=>@4 `].'' NМoW3m2 /,ό<:]SU|dr-hCsXK.K?&瀐omxiMF5Ҥl z ]h3qD/>^^C A@=b\šNA*tk w!= łkq7=Sǯy[\_5_* J$ 9kʣ޽ D"Z~[<8WQ=L[~D쯁<.XYs/VßKs2iYw`=)6CF)= X#'6>415vMbP>4M]Q;%K G*yiaOq wxL#j=ocZe4b+@QH˘, F䧟>8ɚmGiu4U}!;Ƣ*`-o* )k%5H/ *ZG>; 2ԅw zw6*,HB }FӊWspkHGŻeNiDzx>=͂à!:^rFwUs'+;HX"kWVN `DLj9ޮ7s@j[p.W.9lV _ ]rFozJgF8;HWs gj =@CJ˵; 2VryEͅZ@6[w z x^%8m) /k$BVqP8swGҟViUcrD@ppp}@Vrp_&EކJo+IAP7NYyNU5&"_sQLG g'imtv+Q4)"$z`֫H #mP8|;H!Ue?@4 mY_>$zP_byHOxjN=nJxwgmz@ sTdslXW|o.zG9c/f9bƦB$њcXa.=9yWkndԕP#|nl1Ez^Hόatgey~pJRC SkxpF#a \J'曯pC3x} ^/?iۋ5s?|D^d* <)c PQ:m zyӼ4*^,#z^HB(ǎ^Bi8e0= ,_FOs}wL?ieAZU>8\I9RqZV,=8@Z,"b䟥N5<͘ށ腄c.-3g tst$J ]+:;Ԏ+ljtozR; T8Pp(ܣtJm_q".T+{rUdk.D/"zvӼh7K*R,FC.n+Hր~[#VqR:DS++=sD|PxxqX~JhPxpԎh_e{MR UqB?˘'rN;~DO;~\=@bBqA"*7GbnϿ,Je+ml E*;![z\/lvo7jhsP;߻p'EhQ"J8!!JMϧkXxjtZ.9'7Z~SH:%zH2Pa%EHwmAH4  X_rJoSOƕfpU<x-?B"Fp>%`AMuo>ԩV8-!ƞRO8%D/cOdi }WK'+ӹk>ɡxn4oS ׺,m29#_v8H]*b6$y%+(Q5Vz~Oi#ks9x^66,h'Cc<"]߶^Vm[^c0,(^;k`*Z3ה7Az7!qjra jKBKћR]Jw@zDA |H#)w zaB8;[(<("Gp&  1qX-{+` #j|JҝeӼG, GdfCaCH/U$yE2\Q8K 4h"y/ONrVdK dj'8QWe)Z:z/-nudՃ>dFtFԨHc-tޑq6`,ߝLPnb. I#)(y8hiKϧ}O:HUͿ\œA:ʞn7Ҭڂ͍FȔhn] i> އYD^?]u)>47Dcp\K^ڗƟۯXPF- B#;+Vf Sρ0ҎD}PWZ(aca$ip9R,̣mOc[S+j]ov C9Ww-$HM!# ' ҷD;GJT<? rP!|BwXg/X?8Y@>z[oS [)9]n9;A[I&^fYXr/yY0ghp-x$"HCF'8wΑV*Tn;p|@Y%^[W%,y:|]S wj*>x51zSPskQ5Cz5fk.yڿ+.]o1œTrK\o, FQA-(teF݃{' ˚Z  GxS'ƮKu) 9>ܪKDca PNiܵ?s-8fcAn+.JA56*b8&$N# s{5c %uX7 mRvy M8n歹jmظרth, H$!SDojXUU7*ҧJ9.ꃾqY4 ]i=Bz) Q76/,)=#}dm"D._W ndݫ"V_~%"X/ǶBk?b @%VHe! /fO*rKYCj)7߻GIUM4Xk W}hZ~E(ќ+džyeh!gC&g !WШ$8Ņ̋ KC%Q0|9ڿ6xe,i%=׆?HPYH3zS%o"md{apPh$(D#KBӊD+?f+~̯sXXhb S+])0aw VH/ :,X&s[FVYAr+ Vec502x71㪶=Y? !Gi>A5+R] 6Ex\Ú@ z~HzH*%.4>):l7f?x){x,/WnbŸG7vX)yͱi8+]Zӗsz>EHhoUS:{eь ͛7iާp/ I/M:rh qcd!\ccb`p7+:Ƶ;~-ԝ~y {ЊҧKK7b%VlA/n/a8&y*^K9Sn"i%^ҿFQȂp9/xei,geptf__?n_fHOY}T_w'RBʽd:/(%֊o%]{^*K"{Ι2G6M3+e2 v)2I,Z7܀VO+V=gK:p)Μų_~*xlDQDŃJ*m8Pjټw@n*Eڵ7%]Z|b`V9";8wU[0|Hwdᣦuƾ8y{wHz DSe 0#k"Q:z/KqiuDHin\jA~ZVDfH/с{uJSP7mpjM @jigɛ#u١D޹~@Z8 A4D^Hi!zEhvfXu73KhwϏm7C_|"xY)E5~va#>`FQÐjBoq1{xI+i:&FR ~H4ac%H{_=!L4VӪ}_\O7@+tL%L@h_&B:kEQ>}RA&+ J#:ErOj<=NE匐@tKS K[ޝ ߡ5EBD58k )4c֮QͷI9ȷ2Qoa$I %ppqqg^U}wLʔ"Q<1Qi^ @ 5zKN- PT]M |A '4Ӿtt8""NZҴvdkUҴvw׹#K1ľ; =/ ݊ +8r] ƅҸPE9I u%vxeXxbtX本nC3sV~t7Cz;ΎYzz38b,]z[ΞD5Y9- "BMq$]@8HՆ!Ew$~1BEo0Ho;ѻDD?H%4(|J_Bv< yQ9aSBCqA誽p'gY;F{K=*-:-;lv}(?GLT+BCiWdЁ-j Ίt6 K 6TܺoȨ|eit o^Zə8П7 |3f^7o?nh>0"GwSZ1֋¤wiu 1]niO/P?" +wܼth?MVk S9"AӾڛY`.'RqcWtVzϯi^RA"ĝ;=r3eA`@6 E1lv%{=Ni: ..P:!4owAhx( 5Бׁ(Gr+s.0 ~^yIȐY)`w\"Rqy"|O_|ַKB;,sI@КW<DCI{Hw?x ԑ[zI{q`BLm \2e1|AASB)`u׽5| Z?8iVA8N ,;Ǟ5đ.^|;Ȟմ N)ϟIΟKBo ?8ipD0Xk)aœ;fU?Ku6A]AAk"{w&i9~tPfVfr#dwA':YNWį_APLJ|FWBS^H$ܹ" %Ij6XĥcHoc 9P5_z-T+e.QcKQhk B[qkH/ZBkE|Zs<ᆄI`/ d 'v"Hn> !,x]ğgqOTo֗L <|pƦORBuYK 8_BeeR4̓짏XP;8*(84ͤ"%Hh'R|uq^كl@YbȂvdypVC;w@z* ݹ|ʝ[Dn'w: m'wA Wt|[BÃ;F8^Aڃn7E,8%")slz(6rcSWjW[<9 igwL Q 4XӅ$W(B[^'+DVzQq*(k ̨!~H|rSzϋU#FNO,rK ڕ0x=C2;s&lUnòv p)'+aB%2|YF4ݩ[]|yNC"OC,Vgrrak?dժH'Jw* jb |+GC%9X¶Czq$W"nzit:r w{!=e6A9@:b9ޥT5̞V!`=orޡ]GV`稨U7a=luZE0Tik;dpaEH]GAMj +[!=d ur9pyX1ch!=e 4fcaa)tD:ZO)α)]u-!B#üjRb)-e(3>Fʄ~LӲ*ue\jaּo[kHjp/a/Uc)ihH獅ϓK%/7Zed v*ґ NOl@z)AAcs _ YBU 5k Ga d'0h+O+Cʄ7AzPo8jYl\VKGB;=?J J#A"xaY;fp:Dc H*BaZpK5>4 ˏk=@z(zSY\NV]4- 5Ļ&%AěW:;v`.ϥ!遯_%%S ժ.?JP;Yk[X;Ⱥ 1ҥ~FǸ~}tuWe"h ywuN z]9ɻ@*?"_2rئ{԰3̻*mϻ"wC{I{3UE/9%}AַP4>ɸdՃk^Żon)*K;wC;WPXɛ/~@V\1$])=g~zj}ށMeȄJ[ݛP)^#k'UpAVub|msQ@†~.O\B++C!MSԨ* [!=M)lu+lxjkd0==AWjԾ2jf#,2mʑgQjw zIF*,\i!LȊ0OYe+ۥ,Ce+2;RE|9<'ۨyW܁U/uhXHSӮ-Jf_H+J\rHo} "P)PAݏg'Oq<"mE^Qo'  9 l݁1<ZqE QP <[3|i>ap {c{!XB5o3WJϟEV8*-7? ~ʑ ғC4QD. ҿJHe]f6E1BJ+|h>кjuP \9C`JVKѼ~w!YJ^-S`cBhtZ P)=%=/+AlxC 5_si>8 W^4 71R.^?ўb<=!~擥 +UJ8KW?tΗt$`Pqe}-߹>$A`/ dJqMDk|hޛE 0\eEo 9z>J10d,6ߺܔu.U ҊgQ8iهKC|pHuR%`nDq r//%eAccJ U|z~ߺiO`w YQ o~H󉍟7!>VDDTI [!|ݲpЧ{g6\+6,_)s *N<a9Ms( Q^vpJf@ʩiN_ar*@>6 za}$B!e̛P ^;GQ%\ba7iM)i"U Mg~=H4z&Um[ =W$GdS]r4i!Rx7/:r%0ր-ؗ~i^cV98¸(>S犅;LA)6X| QXkW4-A ET:|S]ـ =OH5H, ^n^eWށi 707>m!t)de| E J+g7vh:MODΠ%_sԄ˿G~Jv\1hT&:sMG} QE4 ~g܊3|V| 5b:Bȭ(KNxfqA r>ۏhcٰ_f~q`E{Ѕ|/Ǹc/ (N )eFBr?i`h"`z!˳*w[ ؊*u|6~ Ӫ7։s֒|Љ]ҝ4pp4WLIQp Ќ>MQYH 0.8^DFXHDr'7rW-m)YNL-)Y@V)HZAc{"s;Z+lFo; l}Ech>4 ?*H}M  -Q"z h~l@,M)4c$=B9yyp^6 O]hގq9Z^k/v8V%\+(F~ _ZRqMM=Ӣ*CI*:FEBV݂ fHOqA,HTEsNY.]//|h::BH M Xp@{#F%J En. @eةtXfMl fo5U )b5{c"=xK Quzah&{$R*U tV`총Zb$NȹXC~@R$h@R""h',?؜Tp(aKt Zm_Ճ;s5eBj= AZf^"åWď7CzTS4z+7H؈%zpL/ݩ>4t*쇩fO#z >'>>fq+gumyAbHH+rD?8P bښ!zww_`{s_{CHoB?Fp{?yO};=%Oy݂#8Ah LD;+6Z`1H[>4AH w@zɒh wa=f1ѐW|ͤ[j< u݂C￀"i˫ nو{;="Jk]h#DEarw\>vAd>j~EQYMIi5W{>.Tkաb"zӝvCb[/9ǖKCbC!ye=Gꧏ+8E⻲2J^D@ QZB`8H*zD/u_ cZGԶJ^/#Q^JM Qw߹sXG% UBntPUHf)e4f,#u8{?XD^>Nq)=7cYA|>}Q"-<@[22[ ŠcTz R/.h`?B iv$Hea,?yYV%Vzz9b W^ncJ|^$õs1o*S,V%p~{̊3슝#ڢU T%=C=Zn /U_]s͐zו*.cE󟆹5P<}A3m[58mU}u>_浻>8]/8gsmHɅœ9&(4XpMjwOSU75B _gz.eR*f7@V?wg-5~%}K/ydkw2T v;|d}pDSqH4>ߢ!c7A~O&TV.4/e5r{,>$ &1nOGŸK~ ܩtԓ|ae?mZf 2BM(-*R|ފ%ߜ=o!EftGΙo$&xb Vљ= }Yu0R/p0ܼm L %* >vKG"+t6A{thAXԱ ƾUf q7 mB-;|@J~ɶžrH:oT |bFnqh-9M<-{k<@cHԟjl~S }L'0W7a:t X9%v"O1|VBTw^V; b@ 6.1|,I96+E^vVV|Q\,‘ ka~(J];-o0?c+KBR5 t~9o"ޫ^\5 CvIz8?YG3dA^rG3Ҽ"pF h";; QpL{e!O:ɣNєHEC.c+I.woBt +eyGz{ȓՃLj:X^$; =P}Gq5l豄C0oK"޴R)X,1݁U@jڗySh$}"-?k(u̞NB$;5k~ Ewz 96/!+msv@h aaƋ2 TH~HJ!"DP@U)N_ܰvgZAiLg+($so9UՌtY4ඕPo"|vFJĥuAL5l{4C)Tca>XiX7i g56_ ȃL9Yh P䗲?8y Eh?_N2VE\!.x% ƙϼn:Bʴߒ>p~B 5n:R1A.1dkAǑfH{hFX *xu)z)sy5<>sZiŏePTc./ڂE|D*EpFB^H/ծ865Q, 7(V}dȽy8m(eJiBA_s{.Kˆ_WyMa>fN dUnEOi[|:MQ3 i="H]i>V=vAț*0 .޳BPs];&Tq[q?ZY&7t {YCk𫐨_i[52Ksmu^#_7Ѥ `E§iJAp•;ܛt$iy LT@^hƞˍQtܺKIX`|'UF^1cڪ\svgվsi:~>wz۠p9G.,'fvy@[;.A,C\ZkuUv;LU Pu^pd$|bHct {|pHKq3.Ba?yυ{!jr3asHp@ '!U˨ ᘤ^%\Yq~CO"[ ՠ=Lw|H(5o}8(^*~7g7 mt%AE]\D/=cgS`*tX  $ǞK@)P\n sId KzK{9T婢t$3RV7_i.w NvjVU%8[g B/l/B@Ca!suã‹NH[qG mdg_rW'"18q4+5wnĦlm=?RuHSw#6V(^] ỿA9k(S@ZM?>[Ӧʨt 0AZl{jK'_ͷ'}/ˎ[3{4QG4صLjn^u=Zk߁ukD<` 9!RQG\:*ּD:Lz%/.Alxr&Z#.@zkŸP 6bȇiw'?4_rso/ERڹ~a^JZWHS$ipm C%:،eK.K9ΊÈfDV pAJP~ "ucDaCD|zn~4>2|ۯxZ3>8YUs.-p2-85ox~rp$^?Yȷ|Ӽb.xX6AYU2-b#;:2ѝA▏ֽ!%W!,I evQ#/!=Y@Yr%:J#7A;x zkzvny, Fxstmi6 )]rk@|:>-|-u j@]_)\ﷄ57 v$^oy`gA^Iȫ*^(ּVduTȰ nl­.2p͸Cuśjm[RoF!)&.Q26Cz+ l˅sݸKԆ/{bOh̙N[/Oe`X~S~3W6^HK;C$},LK7itzR h{s7 Y\}e;KC=B|?i3:L$1%"I!͛I#\:B2?68i7 Y_$$b9MURrݑNV-OISTlP_i7ڐ ]xaS]'A4Ԡ#p. 8l;{J@t kx'"WQ,hx)߻ ˻%޽! .eIGysv Ԃ4IqeAW$Oݴ-h6))XtP_(E)U8>F”1H{^BB2AbBxIX֫WPpY"@ VpPjPp"H>o.!,r"ޤBz)r9%({<6JYцH""1gE'yZ|B-@Vq%B?6̫\4 ʨ~HU.  !w@zPs" J㉺Ӽ%a p2)>/m2&TWVyE3qP]PJH2n];%,Fm^]ظ[vPpZG07ғ#"C8n\¯B[NB""CKmse!iނsBufU.ڪ6☗uj,xur"\Y؃\+Rvs|YӄƒH(^qV,` BQε2C-b"=j8'iU\bR0/s|g yׄC/b: %Ū>uF4ӲT[i jL8YKЅҽ3 ao,] ]zb慮'Mb]mWz,5.WV[7DCPGV.A25jX0E_Xf{ʙ Pؠ#!c.*?pmG֒tBWB-`]i>ݴF,Lo\*܈X_VD/uL(VW(޻Bv|,724碈UA6K~ɇ2υzE&& s19ï|B k C(|kVԈE+~˷\j#T܅r~Hq3Do7Ɇh+\=c9ɂCs6~aqM{^[[:&7Q]ΥtGBTbFׅnZa !otOzcD) ?Mq%*WsybXZB*~(F{1g>nX)8p'Wo< 鹀b]Y}R[i#IO#/Pa=1Gs ;+U-dƤ\ uep\>J^HOUuڕ^ mn1vDϐ9hW&}r X^P7}DPuA>8YMkF\?QNiD휚V` C~Hfl;"5*N3K0=I4`^yE>wR;=tJ3 \khs2[\+/\ڽM:qOmU}?% S;@%Ջ0GJG9]u?^ [Cf㒛<@& R u.Xlhm0a:Ts-U!Z~ItxhpȠN>wӪieU8Ci+5gUg \_r@ v\>~7  apkϴEA8Xl!MZ%X)D_ [\??Ji/ĪnGgKo{kw`5E/uBǝ7]y]D ] u- 90̰Kor.y) p[i׋Dk,o a*[pZ\ӡyXZwU HpPzy[Y \"&D_rZw\8G?vT?7)x & W2; =M;N7P!|e!M@` C(!0͋]SPma,AZ [*]6ot ND7_0\R[i{p1 pF~iHˤ "M7EdIu>ouz x tZ5Wc8ⅳHYӛ~gjم\;sɍ{r GThգ=Zqyu={W~֨F;flEO  tw\ֆ.ϙ\n͝t iB+ℭ+=EN-XF9˭Jw J?.b!?Շz2CB=L;қIz^.JSz]zVӺ/c%ԲT:l4EJ75;h|[" 4]T8g|٨"uبދ9{T. 4,==|7-3TKD1HTzs\(Pn_ 5sh.Ew~gAB% e3*TtP8h|Y [N+(\;g|;RQ|z `/C#J|e1:м9q9-NT`E-]>&&ޘdK$DQi)zYE#gPF)/:'"Kǃs k Vj{=FsB)_>a t|>g~Ti~p/a2ʯq/wuQaTlt/c^A؋E!A:!{sdDpr5N(g~GZd$Ι_UT: h|;e~WbzXXg.FH7〞c>:yj596߸#6S572Um =]wyFGp. Gt΄sE\;ۗ>FC% *-* J#e1"z! {H"ONq626߹ǸgĹkӑTg5P[i/gú#عWֳ@zA "diw8gG/"5\^@OaW<;gG/Z|㞂n\i4nUzZ3ΙrΡ E2k|i8gyL9k,k?M9 h$O탦iDڣ)+O)BA!v >9 %L(Bw:iAIzp/V;$=?LrҜ ](Аs3!C^BzDc05HtFUF 5GRU'Ztd?/Sз?mqHH%ҊxiF2:K$,'pU#pȠlirace/tests/testthat/irace2pyimp/acotsp_4/instances.txt0000644000176200001440000001325513640446260023042 0ustar liggesusers/vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1000-1.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1000-2.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1000-3.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1000-4.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1000-5.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1000-6.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1000-7.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1000-8.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1000-9.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1000-10.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1500-1.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1500-2.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1500-3.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1500-4.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1500-5.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1500-6.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1500-7.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1500-8.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1500-9.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1500-10.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2000-1.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2000-2.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2000-3.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2000-4.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2000-5.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2000-6.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2000-7.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2000-8.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2000-9.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2000-10.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2500-1.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2500-2.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2500-3.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2500-4.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2500-5.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2500-6.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2500-7.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2500-8.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2500-9.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2500-10.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/3000-1.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/3000-2.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/3000-3.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/3000-4.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/3000-5.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/3000-6.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/3000-7.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/3000-8.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/3000-9.tsp /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/3000-10.tsp irace/tests/testthat/irace2pyimp/acotsp_4/features.csv0000644000176200001440000001367013640446260022646 0ustar liggesusersinstance,nCities /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1000-1.tsp,1000 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1000-2.tsp,1000 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1000-3.tsp,1000 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1000-4.tsp,1000 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1000-5.tsp,1000 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1000-6.tsp,1000 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1000-7.tsp,1000 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1000-8.tsp,1000 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1000-9.tsp,1000 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1000-10.tsp,1000 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1500-1.tsp,1500 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1500-2.tsp,1500 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1500-3.tsp,1500 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1500-4.tsp,1500 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1500-5.tsp,1500 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1500-6.tsp,1500 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1500-7.tsp,1500 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1500-8.tsp,1500 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1500-9.tsp,1500 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/1500-10.tsp,1500 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2000-1.tsp,2000 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2000-2.tsp,2000 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2000-3.tsp,2000 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2000-4.tsp,2000 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2000-5.tsp,2000 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2000-6.tsp,2000 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2000-7.tsp,2000 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2000-8.tsp,2000 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2000-9.tsp,2000 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2000-10.tsp,2000 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2500-1.tsp,2500 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2500-2.tsp,2500 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2500-3.tsp,2500 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2500-4.tsp,2500 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2500-5.tsp,2500 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2500-6.tsp,2500 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2500-7.tsp,2500 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2500-8.tsp,2500 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2500-9.tsp,2500 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/2500-10.tsp,2500 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/3000-1.tsp,3000 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/3000-2.tsp,3000 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/3000-3.tsp,3000 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/3000-4.tsp,3000 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/3000-5.tsp,3000 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/3000-6.tsp,3000 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/3000-7.tsp,3000 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/3000-8.tsp,3000 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/3000-9.tsp,3000 /vsc-hard-mounts/leuven-data/307/vsc30746/ParameterImportance/tuning-irace/ACOTSP/data/tsp-rue-1000-3000/3000-10.tsp,3000 irace/tests/testthat/irace2pyimp/acotsp_4/params.pcs0000644000176200001440000000061113640446260022274 0ustar liggesusersalgorithm {as,mmas,eas,ras,acs} [as] localsearch {0,1,2,3} [0] alpha [0,5] [0] beta [0,10] [0] rho [0.01,1] [0.01] ants [1,100] [5]i nnls [5,50] [5]i dlb {0,1} [0] q0 [0,1] [0] rasrank [1,100] [1]i elitistants [1,750] [1]i #Conditions: nnls | localsearch in {1, 2, 3} dlb | localsearch in {1, 2, 3} q0 | algorithm in {acs, mmas} rasrank | algorithm in {ras} elitistants | algorithm in {eas} irace/tests/testthat/test-maxTime.R0000644000176200001440000000214013640446260017045 0ustar liggesuserscontext("irace") withr::with_output_sink("test-maxTime.Rout", { target.runner <- function(experiment, scenario) { configuration <- experiment$configuration tmax <- as.numeric(configuration[["tmax"]]) temp <- as.numeric(configuration[["temp"]]) time <- max(1, abs(rnorm(1, mean=(tmax+temp)/10))) return(list(cost = time, time = time, call = toString(experiment))) } time.irace <- function(...) { args <- list(...) weights <- rnorm(200, mean = 0.9, sd = 0.02) parameters <- readParameters(text = ' tmax "" i (1, 50) temp "" r (0, 10) ') scenario <- list(targetRunner = target.runner, instances = weights, seed = 1234567) scenario <- modifyList(scenario, args) scenario <- checkScenario (scenario) irace:::checkTargetFiles(scenario = scenario, parameters = parameters) confs <- irace(scenario = scenario, parameters = parameters) expect_gt(nrow(confs), 0L) } test_that("maxTime 500", { generate.set.seed() time.irace(maxTime = 500) }) test_that("maxTime 500", { skip_on_cran() generate.set.seed() time.irace(maxTime = 1111) }) }) # withr::with_output_sink() irace/tests/testthat/test-targetRunnerParallel.R0000644000176200001440000000422513640446260021604 0ustar liggesuserscontext("targetRunnerParallel") withr::with_output_sink("test-targetRunnerParallel.Rout", { test_that("targetRunnerParallel", { setClasses <- function(x, classes) { class(x) = classes x } # test that targetRunnerParallel works with arbitrary instance objects. targetRunnerParallel = function(experiment, exec.target.runner, scenario, target.runner) { # get our param settings that irace should try cands = lapply(experiment, "[[", "configuration") # the instance is always the same for all different param setting theinst = experiment[[1L]]$instance # we check that we have instances of correct class expect_is(theinst, "foo") # fabricate some random fitness vals ys = rnorm(length(cands)) ys = lapply(ys, function(y) list(cost = y, time = NA_real_)) return(ys) } n.inst = 7L instances = replicate(n.inst, setClasses(list(x=123), classes = "foo"), simplify = FALSE) parameters = readParameters(text=' x1 "" r (0,1) ') log.file = tempfile() tuner.config = list(maxExperiments = 40L, nbIterations = 1L, minNbSurvival = 1, targetRunnerParallel = targetRunnerParallel, instances = instances, logFile = log.file) confs <- irace(scenario = tuner.config, parameters = parameters) expect_gt(nrow(confs), 0L) }) test_that("targetRunnerData", { targetRunnerParallel = function(experiments, exec.target.runner, scenario, target.runner) { cat("a = ", scenario$targetRunnerData$a, ", b = ", scenario$targetRunnerData$b, "\n", sep = "") # get our param settings that irace should try cands = lapply(experiments, "[[", "configuration") # fabricate some random fitness vals ys = rnorm(length(cands)) ys = lapply(ys, function(y) list(cost = y, time = NA_real_)) return(ys) } parameters = readParameters(text=' x "x" i (1,2) ') expect_output( irace(scenario = list(targetRunnerParallel = targetRunnerParallel, instances = lapply(1:5, function(i) 10), targetRunnerData = list(a=1, b=2), maxExperiments = 500), parameters = parameters), "a = 1, b = 2") }) }) # with_output_sink() irace/tests/testthat/test-similar.R0000644000176200001440000000244313640446260017107 0ustar liggesuserscontext("similarConfigurations") test_that("similarConfigurations", { parameters <- irace:::readParameters(text = ' n1 "" r (0,1) n2 "" r (0,1) n3 "" r (0,1) c1 "" c ("a","b") c2 "" c ("a","b") c3 "" c ("a","b") ') confs <- read.table(header = TRUE, stringsAsFactors = FALSE, text = ' .ID. n1 n2 n3 c1 c2 c3 1 0.5 0.5 0.5 "a" "a" "a" 2 NA 0.5 0.5 "a" "a" "a" 3 0.5 0.5 0.5 "a" "a" "b" 4 0.5 0.501 0.5 "a" "a" "a" 5 0.5 0.5 0.499 "a" "a" "a" 6 0.5 0.5 0.5 "a" "a" "a" 7 0.5 0.5 0.5 "a" NA "a" 8 0.5 0.1 0.5 "a" "a" "a" 9 0.5 0.49 0.5 "a" "a" "a" 10 0.5 0.5 0.5 "a" "a" NA 11 0.5 0.5 0.5 "a" "a" NA 12 NA 0.5 0.5 "a" "a" "a" ') expect_identical( irace:::similarConfigurations(confs[1:10,], parameters, threshold = 0.001), as.integer(c(1,6))) expect_identical( irace:::similarConfigurations(confs[1:10,], parameters, threshold = 0.01), as.integer(c(1,4,5,6))) expect_identical( irace:::similarConfigurations(confs[1:10,], parameters, threshold = 0.1), as.integer(c(1,4,5,6,9))) expect_identical( # FIXME: The output should be already sorted sort(irace:::similarConfigurations(confs, parameters, threshold = 0.001)), as.integer(c(1,2,6,10,11,12))) }) irace/tests/testthat/helper-common.R0000644000176200001440000000045013640446260017233 0ustar liggesusers# This file is loaded automatically by testthat. generate.set.seed <- function() { seed <- sample(2^30, 1) cat("Seed: ", seed, "\n") set.seed(seed) } test_irace_detectCores <- function() { if (identical(Sys.getenv("NOT_CRAN"), "true")) return(parallel::detectCores()) return(1L) } irace/tests/testthat/saved_maxim_bug2.rds0000644000176200001440000001547713640446260020310 0ustar liggesusers] xU@ d`IWR]u{ \@@dGIn;aQDT긃"3:O EDqfWTݺmӭ>}Xշ*sqZbic),*)LvWS^;[,.oxE^zIJJj3%JT-n|&컴c ##8]2ɝ::77szbTCzWƞٸ'KeU3*}C̵e9soC}g#8Gp~3o*fU^r|v gѱ2}^D0gPe~:ơ6e/ޔ̅{0d˯TYW_<>5mwi:3OĨ݊T>6S~0 >K qi3(ks'+':RxI] ^_o3_}Mkw>΃z  #WBW<3دgd};qXT |Cs> q 4M<#/}>҅}'Թ5q\=z]oˍǀ!qS2 U>ga dS`}a߫ė1#8盏qLD !nT0/Q>t>WS?Yy\ 'p5yWnTuq!uhx?Mda6 O^[g#@L\݀*qn~_O[Li <1ay;JE{ߚ6?ҖYc[Я pA#E8*LA|埔< I^4wѐq_;.j_ᶔ!nsx<(GY̯4/QŝkrǨ>q4GT:<*~7Gk8?@/( e>Kv*_l?o󊯨W3a>y R>4TTe+lfT rrWv-)JSO|/u#ʂD׹5؍ Gk̼c-i~oԎG|ษUrVs#ߵےES9/{z-*ϥP{S/1}au=kf9 78D 5ՙqS7ȍ9鸨Am;?̚TcbIh&< ~ PuK'&y71߆~!SE<]AX+RA_<v+D_7Bio+.2sQ{|pqG݇swoFnMŴ>_8d gy.-uԚ9N<EòSJrߤOZ~^zXc-xʐgIZMy߀]}Ft9[:㸟=k>BN/p?C`'~z <0룝 ̇ YZqQ3򇃯'sy9)6š.a;?r䡦c 3<3TY('\f@1<_;nߌVs>pZJg>R-8J~y)};_|l98no?wMMە<|=@NgDM4Ty -u>-- |OiG\Y;'ʧzܘS|@s='<\#8^r~>;|^eօ:8!y7>>iţ. -跇w|-*s9A\e[|j[K絟ʻsכ.1 >YvSNC * Wqjp(>eTGu9΋H߀&YyI37E?D\m?$KۭN_ߧk&_6 ^5&lJհNGsˋk`_ʚO3vo_ ?n?Nvsx6U/7K+pD|I8Ë>#wEA/**.;\*>8lN?j+A>z {|B;"J䓋~fR|An7@y [^77 ̨/˰n/Lm0]լ _Ŀ[$<~$X'nsu#>4ęj+7wq>by^o~}㐗& 50 VRG|z/|:{“LMu/*x]{N|rYUx CAߞ'lߐ5;뉢y}Z7p\DijY̓%ѫ|oRFm(Y:pzdI;U+WPRuɼ h7nƣxvnM%޴QdN~|7Σy;~At cD :1At cu 1:[pnícu 1<:Gãcxt 1<:W^ëcxu 1:W>çct 1|:O>çcu 1:_~ïcu 1:F@#ct1:FQcT:FQcT:FQa*nvKحzحح-CS04) Mah CSC# 04C# 04C# < < < < < м м м м м | | | | | - - - - - U2JV*Z%Cdh 1.!K¸0.!K¸0.!K¸0.!K¸0.!K¸0.!K¸0.!K¸0.!K¸0.!K¸0.!K¸0.!K¸0.!K%ˏ,ȿ#;enuxCk)}+qe Kۍ۹{W5%lH}𾯯w$\s}F^18o\35g-urak &tGǟw/8!c~YS^8|-_Z8MF:oܘoRrY/,d q{/sGw|~hᅫo_KHvtՁcNz`ӵ l5h7 ~OU]sfL5EWvhSӆ} bNE9aШONki]{ [󗒂?|מ3=?s郧_:gSodĮCm?kwz+z("sOZ~3nך,>y7 -lmݷg|nYO]xؙ킵 u².>vA:8vƳ?36S3?Ǧ-/7l3dL5gus8?ߨ}#_/L}glD톹7vv]s]=f|(W{'7{ڝ>j Tg~؁(|Cz=>&9{ʫ%KbqC3ro3ni;nMuûvU9C/ukXzT= =}@m{>dcЭiF |`Yk#}KVzzU[XŒv>Mњ~.JBY!+i]j"5SAivB}K&oKVY}C* Ǣ`u8N͟~W%Pa/0od^ҞL5DѺ T8 Nj œӮN':0> (?=3DU(3?vڇ۵CQT%xx(Mks(MC[.ݖ_P篇ҴVRSD$rڽoSC!5?hN?Q-Ek9hϋɑyj܄R*&gP<^0'J5scCiz|0 B hϒh`"uOg?5.fFret\D&$MLuYθP}IT-WH@aC2,'^YV?օ RDy(69CHCF;kcrC{s'ha??~蒌~v"F>>OG /3.A?};v1ӈ~C:lvpFB5AbT L4&C*0y`~>JrPʙhY E${ JοҜ"<r\cሖuU+)a䰖t~j#Cp}(ث4Y|3Ya]GbuDT뢛Ju 0|ëTjֆ391RmU멋ih=\և\Rnj E4-IU3:k`Sdj.'Q{!cܩ>=zRC1F 2;FO;զEp2t,#Bz"}٩*b0&IsbZ] j*w -M?8zu1tϼ pC꧰>lY1zqM0W67hxu!Zkhi8ٸ3M[4yhr}id*jғb`M$\0IG. 覮Lj8?QM&IO[cx~5g#tQ--=zmjo*R4^ &UFpt`C h|"``D]3"A5PJ;i8  [&5Zd.P+V7~餳g% FC刉irace/tests/testthat/bug_large_new_instances-confs.txt0000644000176200001440000000050313640446260023060 0ustar liggesusersp pe pm rhoe alpha beta dest nodes prob 181 0.185 0.260 0.855 0.128 0.958 0.649 139 0.158 123 0.149 0.297 0.724 0.115 0.785 0.520 125 0.031 160 0.130 0.277 0.748 0.109 0.810 0.535 92 0.077 143 0.205 0.330 0.742 0.167 0.786 0.658 105 0.130 131 0.118 0.242 0.742 0.165 0.929 0.663 142 0.084 irace/tests/testthat/forbidden.txt0000644000176200001440000000117513640446260017045 0ustar liggesusers## Template for specifying forbidden parameter configurations in irace. ## ## This filename must be specified via the --forbidden-file command-line option ## (or forbiddenFile in scenario.txt). ## ## The format is one constraint per line. Each constraint is a logical ## expression (in R syntax). If a parameter configuration ## is generated that makes the logical expression evaluate to TRUE, ## then the configuration is discarded. ## ## Examples of valid logical operators are: == != >= <= > < & | ! %in% param1 < 5 & mode == "x1" (param2 > 6 & mode == "x1") | (param2 <= 6 & mode == "x3") real < 4 & mode %in% c("x2", "x3") irace/tests/testthat/test-path.R0000644000176200001440000001621113640446260016401 0ustar liggesuserscontext("path.rel2abs") test_that("test.path.rel2abs", { # Try to set wd; otherwise fail silently. old.cwd <- getwd() skip_if(is.null(old.cwd)) on.exit(setwd(old.cwd), add = TRUE) tryCatch(setwd("/tmp"), error = function(e) { skip(e) }) testcases <- read.table(text=' "." "/tmp" "/tmp" ".." "/tmp" "/" "../" "/tmp" "/" "../." "/tmp" "/" "../.." "/tmp" "/" "../../" "/tmp" "/" "../../x.r" "/tmp" "/x.r" "../leslie/" "/tmp" "/leslie" "../leslie/x.r" "/tmp" "/leslie/x.r" "../x.r" "/tmp" "/x.r" "..irace" "/tmp" "/tmp/..irace" "./" "/tmp" "/tmp" "./." "/tmp" "/tmp" "./" "/tmp/" "/tmp" "./." "/tmp/" "/tmp" "././x.r" "/tmp" "/tmp/x.r" "./irace/../x.r" "/tmp" "/tmp/x.r" "./x.r" "/tmp" "/tmp/x.r" ".x.R" "/tmp" "/tmp/.x.R" "/./x.r" "/tmp" "/x.r" "/home" "/tmp" "/home" "/home/leslie/././x.r" "/tmp" "/home/leslie/x.r" "/home/leslie/~/x.r" "/tmp" "/home/leslie/~/x.r" "/~/x.r" "/tmp" "/~/x.r" "e:/home/leslie/x.r" "/tmp" "e:/home/leslie/x.r" "leslie/leslie/../../irace" "/tmp" "/tmp/irace" "x.r" "/tmp" "/tmp/x.r" "~/irace/../x.r" "/tmp" "~/x.r" "~/x.r" "/tmp" "~/x.r" "../../../data" "./" "/data" "../../../data" "/tmp/a/b/c/" "/tmp/data" "..//a" ".//" "/a" ', stringsAsFactors=FALSE) for(i in 1:nrow(testcases)) { orig <- testcases[i,1] cwd <- testcases[i,2] res <- irace:::path.rel2abs(testcases[i,1], cwd) exp <- gsub("\\", "/", path.expand(testcases[i,3]), fixed = TRUE) if (res == exp) { # cat("[OK] (", orig, ", ", cwd, ") -> ", res, "\n", sep="") } else { cat("[FAILED] (", orig, ", ", cwd, ") -> ", res, " but expected: ", exp, "\n") } expect_match(res, exp, fixed = TRUE) } }) test_that("test.path.rel2abs for windows", { testcases <- read.table(text=' . N:\\\\tmp N:/tmp .. N:\\\\tmp N:/ ..\\\\ N:\\\\tmp N:/ ..\\\\. N:\\\\tmp N:/ ..\\\\.. N:\\\\tmp N:/ ..\\\\..\\\\ N:\\\\tmp N:/ ..\\\\..\\\\x.r N:\\\\tmp N:/x.r ..\\\\leslie\\\\ N:\\\\tmp N:/leslie ..\\\\leslie\\\\x.r N:\\\\tmp N:/leslie/x.r ..\\\\x.r N:\\\\tmp N:/x.r ..irace N:\\\\tmp N:/tmp/..irace .\\\\ N:\\\\tmp N:/tmp .\\\\. N:\\\\tmp N:/tmp .\\\\ N:\\\\tmp\\\\ N:/tmp .\\\\. N:\\\\tmp\\\\ N:/tmp .\\\\.\\\\x.r N:\\\\tmp N:/tmp/x.r .\\\\irace\\\\..\\\\x.r N:\\\\tmp N:/tmp/x.r .\\\\x.r N:\\\\tmp N:/tmp/x.r .x.R N:\\\\tmp N:/tmp/.x.R . N:\\tmp N:/tmp .. N:\\tmp N:/ ..\\ N:\\tmp N:/ ..\\. N:\\tmp N:/ ..\\.. N:\\tmp N:/ ..\\..\\ N:\\tmp N:/ ..\\..\\x.r N:\\tmp N:/x.r ..\\leslie\\ N:\\tmp N:/leslie ..\\leslie\\x.r N:\\tmp N:/leslie/x.r ..\\x.r N:\\tmp N:/x.r ..irace N:\\tmp N:/tmp/..irace .\\ N:\\tmp N:/tmp .\\. N:\\tmp N:/tmp .\\ N:\\tmp\\ N:/tmp .\\. N:\\tmp\\ N:/tmp .\\.\\x.r N:\\tmp N:/tmp/x.r .\\irace\\..\\x.r N:\\tmp N:/tmp/x.r .\\x.r N:\\tmp N:/tmp/x.r .x.R N:\\tmp N:/tmp/.x.R . N: N:/ .. N: N:/ ..\\\\ N: N:/ ..\\\\. N: N:/ ..\\\\.. N: N:/ ..\\\\..\\\\ N: N:/ ..\\\\..\\\\x.r N: N:/x.r ..\\\\leslie\\\\ N: N:/leslie ..\\\\leslie\\\\x.r N: N:/leslie/x.r ..\\\\x.r N: N:/x.r ..\\ N: N:/ ..\\. N: N:/ ..\\.. N: N:/ ..\\..\\ N: N:/ ..\\..\\x.r N: N:/x.r ..\\leslie\\ N: N:/leslie ..\\leslie\\x.r N: N:/leslie/x.r ..\\x.r N: N:/x.r ..irace N: N:/..irace .\\\\ N: N:/ .\\\\. N: N:/ .\\\\ N:\\\\ N:/ .\\\\. N:\\\\ N:/ .\\\\.\\\\x.r N: N:/x.r .\\\\irace\\\\..\\\\x.r N: N:/x.r .\\\\x.r N: N:/x.r .\\ N: N:/ .\\. N: N:/ .\\ N:\\ N:/ .\\. N:\\ N:/ .\\.\\x.r N: N:/x.r .\\irace\\..\\x.r N: N:/x.r .\\x.r N: N:/x.r .x.R N: N:/.x.R . N:/tmp N:/tmp .. N:/tmp N:/ ../ N:/tmp N:/ ../. N:/tmp N:/ ../.. N:/tmp N:/ ../../ N:/tmp N:/ ../../x.r N:/tmp N:/x.r ../leslie/ N:/tmp N:/leslie ../leslie/x.r N:/tmp N:/leslie/x.r ../x.r N:/tmp N:/x.r ..irace N:/tmp N:/tmp/..irace ./ N:/tmp N:/tmp ./. N:/tmp N:/tmp ./ N:/tmp/ N:/tmp ./. N:/tmp/ N:/tmp ././x.r N:/tmp N:/tmp/x.r ./irace/../x.r N:/tmp N:/tmp/x.r ./x.r N:/tmp N:/tmp/x.r .x.R N:/tmp N:/tmp/.x.R D:/./x.r N:/tmp D:/x.r D:\\\\.\\\\x.r N:/tmp D:/x.r D:\\.\\x.r N:/tmp D:/x.r D: N:/tmp D:/ D:\\\\ N:/tmp D:/ D:/ N:/tmp D:/ D:/leslie/././x.r N:/tmp D:/leslie/x.r D:/leslie/~/x.r N:/tmp D:/leslie/~/x.r e:/home/leslie/x.r /tmp e:/home/leslie/x.r leslie/leslie/../../irace N:/tmp N:/tmp/irace x.r N:/tmp N:/tmp/x.r ~/irace/../x.r N:/tmp ~/x.r ~/x.r N:/tmp ~/x.r ', stringsAsFactors=FALSE) for(i in 1:nrow(testcases)) { orig <- testcases[i,1] cwd <- testcases[i,2] res <- irace:::path.rel2abs(testcases[i,1], cwd) exp <- gsub("\\", "/", path.expand(testcases[i,3]), fixed = TRUE) if (res == exp) { #cat("[OK] ", i, ": path.rel2abs(\"", orig, "\", \"", cwd, "\") -> ", res, "\n", sep="") } else { cat("[FAILED] ", i, ": path.rel2abs(\"", orig, "\", \"", cwd, "\") -> ", res, " but expected: ", exp, "\n") } expect_match(res, exp, fixed = TRUE) } }) irace/tests/testthat/test-sann-irace.R0000644000176200001440000000636313640446260017474 0ustar liggesuserscontext("irace") withr::with_output_sink("test-sann-irace.Rout", { ## Functions ########################################################## f_rosenbrock <- function (x) { d <- length(x) z <- x + 1 hz <- z[1:(d - 1)] tz <- z[2:d] s <- sum(100 * (hz^2 - tz)^2 + (hz - 1)^2) return(s) } f_rastrigin <- function (x) { sum(x * x - 10 * cos(2 * pi * x) + 10) } ## target runner ########################################################### target.runner <- function(experiment, scenario) { debugLevel <- scenario$debugLevel configuration.id <- experiment$id.configuration instance.id <- experiment$id.instance seed <- experiment$seed configuration <- experiment$configuration instance <- experiment$instance D <- 3 par <- runif(D, min = -1, max = 1) fn <- function(x) { weight <- instance return(weight * f_rastrigin(x) + (1 - weight) * f_rosenbrock(x)) } tmax = 1 + as.numeric(configuration[["tmax"]]) temp = 11.0 + as.numeric(configuration[["temp"]]) stopifnot(tmax > 0) stopifnot(temp > 0) res <- optim(par, fn, method = "SANN", control = list(maxit = 10, tmax = tmax, temp = temp)) result <- list(cost = res$value, call = toString(experiment)) return(result) } ## target runner ########################################################### target.runner.reject <- function(experiment, scenario) { if (runif(1) <= 0.05) return (list(cost = -Inf, call = toString(experiment))) return (target.runner(experiment, scenario)) } ## Run function ######################################################## sann.irace <- function(log.param=FALSE, ...) { args <- list(...) # tmax and temp must be > 0 if (log.param) parameters.table <- ' tmax "" i,log (1, 5000) temp "" r,log (1, 100) ' else parameters.table <- ' tmax "" i (1, 5000) temp "" r (1, 100) ' parameters <- readParameters(text = parameters.table) scenario <- list(targetRunner = target.runner, maxExperiments = 1000, seed = 1234567) scenario <- modifyList(scenario, args) scenario <- checkScenario (scenario) confs <- irace(scenario = scenario, parameters = parameters) best.conf <- getFinalElites(logFile = scenario$logFile, n = 1, drop.metadata = TRUE) expect_identical(removeConfigurationsMetaData(confs[1, , drop = FALSE]), best.conf) } test_that("parallel", { skip_on_cran() # Reproducible results generate.set.seed() weights <- rnorm(200, mean = 0.9, sd = 0.02) sann.irace(instances = weights, parallel = test_irace_detectCores()) }) test_that("parallel reject", { # Reproducible results generate.set.seed() weights <- rnorm(200, mean = 0.9, sd = 0.02) sann.irace(instances = weights, parallel = test_irace_detectCores(), targetRunner = target.runner.reject) }) test_that("deterministic", { skip_on_cran() # Reproducible results generate.set.seed() weights <- rnorm(200, mean = 0.9, sd = 0.02) sann.irace(deterministic = TRUE, instances = weights[1:7]) }) test_that("log", { skip_on_cran() # Reproducible results generate.set.seed() weights <- rnorm(200, mean = 0.9, sd = 0.02) sann.irace(log.param=TRUE, instances = weights) }) }) # withr::with_output_sink() irace/tests/testthat/test-bugs.R0000644000176200001440000000651413640446260016412 0ustar liggesuserscontext("bugs") withr::with_output_sink("test-bugs.Rout", { run_irace_from_rds <- function(rds_filename) { # FIXME: For some unknown reason, this test doesn't work in R 3.6 skip_if(grepl("^3.6", getRversion())) scenario <- readRDS(rds_filename)$scenario parameters <- readRDS(rds_filename)$parameters scenario$targetRunner <- function(experiment, scenario, filename = rds_filename) { saved <- readRDS(filename) row <- which(saved$instancesList[, "instance"] == experiment[["id.instance"]] & saved$instancesList[, "seed"] == experiment[["seed"]]) cost <- saved$experiments[row, experiment[["id.configuration"]] ] if (is.na(cost)) { print(row) print(experiment) } expect_false(is.na(cost)) return(list(cost = cost)) } confs <- irace(scenario = scenario, parameters = parameters) expect_gt(nrow(confs), 0L) } test_that("bug_large_new_instances", { skip_on_cran() # FIXME: For some unknown reason, this test doesn't work in R 3.6 skip_if(grepl("^3.6", getRversion())) # FIXME: Convert this test to use run_irace_from_rds() load("bug_large_new_instances.Rdata", verbose = TRUE) scenario$targetRunner <- function(experiment, scenario) { saved_instances_list <- dynGet("saved_instances_list", inherits = TRUE) saved_experiments <- dynGet("saved_experiments", inherits = TRUE) row <- which(saved_instances_list[, "instance"] == experiment[["id.instance"]] & saved_instances_list[, "seed"] == experiment[["seed"]]) cost <- saved_experiments[row, experiment[["id.configuration"]] ] if (is.na(cost)) { print(row) print(experiment) } expect_false(is.na(cost)) return(list(cost = cost)) } confs <- irace(scenario = scenario, parameters = parameters) expect_gt(nrow(confs), 0L) }) test_that("target.runner as string", { target.runner.local <- function(experiment, scenario) return(list(cost=1L)) expect_true(irace:::is.function.name("target.runner.local")) # Test that a function can be given as a string. scenario <- list(targetRunner = "target.runner.local", instances = 1:10, maxExperiments = 1000) scenario <- checkScenario (scenario) expect_equal(scenario$targetRunner, target.runner.local) expect_is(scenario$targetRunner, "function") }) target.runner.global <- function(experiment, scenario) return(list(cost=1L)) test_that("target.runner as string (global)", { expect_true(irace:::is.function.name("target.runner.global")) # Test that a function can be given as a string. scenario <- list(targetRunner = "target.runner.global", instances = 1:10, maxExperiments = 1000) scenario <- checkScenario (scenario) expect_equal(scenario$targetRunner, target.runner.global) expect_is(scenario$targetRunner, "function") }) test_that("ordered assert", { library(irace) parameters <- readParameters(text=' x "" o (a,b,c,d) ') confs <- irace:::sampleUniform(parameters, 1, 0) confs$.ID. <- 1 model <- irace:::initialiseModel(parameters, confs, 0) confs <- irace:::sampleModel(parameters, confs, model, 1, 0) expect_true(confs$x %in% parameters$domain$x) }) test_that("maxim_bug", { skip_on_cran() run_irace_from_rds("saved_maxim_bug.rds") }) test_that("maxim_bug2", { skip_on_cran() run_irace_from_rds("saved_maxim_bug2.rds") }) }) # withr::with_output_sink() irace/tests/testthat/configurations.txt0000644000176200001440000000056713640446260020147 0ustar liggesusersparam1 param2 mode real mutation 5 NA "x2" 4.0 "low" 1 NA "x1" 4.0 "low" 1 NA "x2" 4.0 "low" 5 7 "x1" 3.5 "low" 5 6 "x1" 3.5 "low" NA 7 "x3" 3.5 "low" NA 6 "x3" 3.5 "low" 5 NA "x2" 2.0 "low" NA NA "x3" 1.5 "low" NA NA "x3" 4.5 "low" irace/tests/testthat/bug_large_new_instances.Rdata0000644000176200001440000001526113640446260022175 0ustar liggesusers xe'3 "F@9&Q6bb4SmRu׫ n]#"+>JTtE׿]\XYW]]g2;B΋ywy}L2skg " "l3lCb (U*Jr mzC"/T M>Rl79i J^#;Kj.NCCJ(iWgP UL+-RZTfZH&4NYrhnecl0RzHh*Aq"Տl+|OT?G^qJ'ɰv:8ͳ݃RRڕ?\" 1i!<.KdB4lh>kqz=!Kgz=P 6&pVAAUǮЈץl$Z xf1ϸ^a&W~1i`lND#r#a`p/0*v!@ޯko;9A^`DUpD1q}ث"vا"E#0Gň*%s||FE2hB:`;N6 iޅI-wHm@`l?8ڐ[X98ڐ]#wHm=#=2yljԆyg~0yljԆl 끝:DjH#` sB臣sv7r`iDI/zDjH{Y4$<80~+'R&~LwHmtDŰLq"!oU1wHmf70 'R&^/zT2yǍ+/2yljԆ K'o%wHmޟv+'Rϟ @#,.;N6d~`7+wHmx}#nDjC~Ծ{e u'R"1ϫ*}X98ڐ/$?yljԆ@Lq"!{s)('R&?|]\wHm;N6L.cDjÄMx(wHm>`Lq"aOG5ٺv~q"a2yljԆ~ }d''*#qDjþ0,wHmCE臣GyljԆ}U'R(}}`X&80j ;N6LN`W\98PT{;d \~8J'F臣`vX/wHm}EX&wHm@ 2Q&80?F('R&^'* (@(wÛl=I )wHmȞO$ ,;N6dד 'Ry;N6d,2yljԆN, vőwqLA/w㡶C_ @?G`0,wHmH#8 F`'/wHmط:DjC\2yljԆ}@%wHmv'R^&8ڐ;}ެ2yljԆwHm1O ϪF2yljԆl=uqyq"2!C^:t>E6a'R&/Wv'R ~`Lq"!hve ߏ2yljԆ $yGylj2c"~ $~@$~@$y8D? HD? HD? Á$g_|/$~@$~@?{t$~@$~@?{t$~@'Ã$~@>q)D? HD?H!~@$OG HD? |~HN~}R=^SLJ{^D?$'yA? L|00GCrć~{^:>á!>ph~;nw<@n9MoxxHC_:f?A?Pן H4A/1i'mJTlR亱r0$*HBV$*!R^FS4e)3MUД4e);MQ 0Q 0Q 0Q 0Q 0Q 30S 30S 30S 30S 30S QA5*FըTjTP QA5,TB5,TB5,TB5,TB5,TB5TJ5TJ5TJ5V;hIbIVa6a6a6a6a6avavavavavaTjTRJQI5*F%ըThd9KX̒,iaI+KXΒL3rVʙZ9S+gjL35S315S315S315S315S3153S3353S3353S3353S3353S33 V*ZS`jLU0 V,L,L,L,L,LԬLԬLԬLԬLԬLlLlLlLlLlLLLLLL*Z%SdjLU2JV*[KLl-1[KLl-1[KLl-1[KLl-1[KLl-1[KLl-1Ik Wm{ 9 bpE'j{i@1F@K iːhr[R;Җ.miҖ%m%B6,FK[T/W=9dK[!́T p\!94!꒘C$f=hgCp˃IE lS m@TE^>Ēd@[@X@#]1]2>Ke8 \AĒuIY =2ι ziplbKBO>B\O* *SNurA;G`~(S"|ż9!LŘ~hqɂPABpL.R,0+B\mqq,bh; 8<U3k<υxA# bȆ㉧F5U1y^b, p|A%}&^#63dɹ VJrmo ;w-qqMzAb!G懜sɼuK拌"h#to 9O_y% l+PY҄1Yg u?S_m2Yzte_>"Lm7K?>aк9](0g%_PWUoc.^nwvq -n>kU?\v~WFnyɤr߾w_}{coE/myO;S'o~]/? cEJ~>O yarǧO>8lji—~Pt'^r׎=~=fm]zYYq5CO6jٸ8u,eo>%雕Oy|PTg}Um#Skr/8sѤfZ|Srg?|nsm]y掜Fw ^<WT}ָOcR7y>ONO)5홲mh'vohV|ʐ\8:J^|Ʒ Q-U+< viݒ҂߮)bzqv9fsM}tcrԵY~zs+K~7QelG1daװ_>qͪcxyŽһ᝷F|u'W zכ9֖pC/ j?>=d UɎyyO=ߴĒ֓~W:l4p#W^z࿌֔zTžWyg^ GpUeUwkƤ-7v|p-/{knmk9_ySg{yȗs+9n̎1Ǭ߹ʷ>'Sg~Fu |9dZH[uNw}u^t^3 օ_C/-]U捎%YZd9L; UƘ^z'^8cm{g̒gzœx3,+g3Uy|ZPݪ.}>|"_:z{/WULohv@ ΐsbc@:^H| 6^gZ^s'^vSUd Qhw*-KutttYwsUFO#7{rY{& CF4: Cs[^1`\jll6<>X/<-74Hju!qHuϔt-Wyg#v Ul S.FڲL*l@QF4ڛ< McTGqh{SRq?'ktrFE$) 1>mIC\*9AytYpF{}8:1_0j ọ*E=K|>rM >DJp0i[^O6뎔6WKGHɈe ))PȧĎˑ=hTS4=Y m|!J3Tg j&e k Vյi&_8/"'ҪEMǖ72)K`Y;m[]`?#ĭ4L)UœXXIFKz*2I./IvNJ6S$::VXdW؆C=Cˆ(߄.ۛD$񽊶'0?${Қm]#4v `P}}9S'#>+ ;gwNwDtU* k3$r301%d($"pIb%I4$#I$ZHK>$ IH$ڄ:/o3*^'C}V?mZCYO]Y\; O!P_-#[XYopz] bound) value <- bound result <- list(cost = value, time=value, call = toString(experiment)) return(result) } ## target runner ########################################################### target.runner.reject <- function(experiment, scenario) { if (runif(1) <= 0.05) return (list(cost = -Inf, time = 80, call = toString(experiment))) return (target.runner(experiment, scenario)) } cap.irace <- function(...) { args <- list(...) parameters.table <- ' x "" r (0, 1.00) y "" r (0, 1.00) ' parameters <- readParameters(text = parameters.table) scenario <- list(instances = c("ackley", "goldestein", "matyas", "himmelblau"), targetRunner = target.runner, capping = TRUE, boundMax = 80, testType = "t-test", parallel = test_irace_detectCores()) scenario <- modifyList(scenario, args) scenario <- checkScenario (scenario) irace:::checkTargetFiles(scenario = scenario, parameters = parameters) confs <- irace(scenario = scenario, parameters = parameters) best.conf <- getFinalElites(logFile = scenario$logFile, n = 1, drop.metadata = TRUE) expect_identical(removeConfigurationsMetaData(confs[1, , drop = FALSE]), best.conf) } test_that("cap.irace maxExperiments = 1000", { generate.set.seed() cap.irace(maxExperiments = 1000) }) test_that("cap.irace maxExperiments = 50000", { generate.set.seed() cap.irace(maxTime = 50000) }) test_that("cap.irace targetRunner = target.runner.reject, maxTime = 10000", { skip_on_cran() # This sometimes fails randomly generate.set.seed() cap.irace(targetRunner = target.runner.reject, maxTime = 10000) }) }) # withr::with_output_sink() irace/tests/testthat/parameters.txt0000644000176200001440000000070013640446260017245 0ustar liggesusersparam1 "--param1 " i (1, 10) | mode %in% c("x1", "x2") param2 "--param2 " i (1, 10) | mode %in% c("x1", "x3") && real > 2.5 && real <= 3.5 mode "--" c ("x1" ,"x2", "x3") real "--paramreal=" r (1.5, 4.5) mutation "--mutation=" o ("none", "very low", "low", "medium", "high", "very high", "all") #unused "-u " c (1, 2, 10, 20) irace/tests/testthat/test-irace2pyimp.R0000644000176200001440000000541413640446260017674 0ustar liggesuserscontext("irace2pyimp") # Avoid bug in testthat 2.0.0 test_that("irace2pyimp", { skip_on_cran() check_irace2pyimp_files <- function(outdir, origdir) { # Print it for debugging if something goes wrong cat("outdir: ", outdir, "\n") outfiles <- c("scenario.txt", "params.pcs", "runhistory.json", "traj_aclib2.json", "instances.txt", "features.csv") for (file in outfiles) { outfile <- file.path(outdir, file) origfile <- file.path(origdir, file) if (file.exists(paste0(origfile, ".gz"))) origfile <- paste0(origfile, ".gz") else expect_true(file.exists(origfile)) expect_true(file.exists(outfile)) expect_equal(readLines(origfile), readLines(outfile)) } } # acotsp example 1: convert irace.Rdata to PyImp's input format, without normalisation cat(". Testing acotsp_1","\n") outdir <- file.path("/home/manu/work/irace/nguyen/tests/testthat/", "irace2pyimp/acotsp_1") outdir <- tempdir() logfile <- file.path(system.file(package="irace"), "examples", "irace2pyimp", "acotsp", "irace.Rdata") featuresfile <- file.path(system.file(package="irace"), "examples", "irace2pyimp", "acotsp", "features.csv") irace2pyimp(file = logfile, instanceFeatureFile = featuresfile, outdir = outdir) check_irace2pyimp_files(outdir, "./irace2pyimp/acotsp_1/") # acotsp example 4: convert irace.Rdata to PyImp's input format, with normalisation based on feature-vector values cat(". Testing acotsp_4","\n") outdir <- tempdir() logfile <- file.path(system.file(package="irace"), "examples", "irace2pyimp", "acotsp", "irace.Rdata") featuresfile <- file.path(system.file(package="irace"), "examples", "irace2pyimp", "acotsp", "features.csv") irace2pyimp(file = logfile, outdir = outdir, normalise='feature', instanceFeatureFile = featuresfile) check_irace2pyimp_files(outdir, "./irace2pyimp/acotsp_4/") # 002-TemplateDesign example: using irace2pyimp with filter conditions and normalisation: # - filter tuning data such that only configurations with n_templates_middle<=40 are used, then convert irace.Rdata to PIMP's input format, # - the cost values of all configurations are normalised on an instance-basis cat(". Testing 002-TemplateDesign","\n") outdir <- "/home/manu/work/irace/nguyen/tests/testthat/irace2pyimp/002-TemplateDesign" outdir <- tempdir() logfile <- file.path(system.file(package="irace"), "examples", "irace2pyimp", "002-TemplateDesign", "irace.Rdata") irace2pyimp(file = logfile, outdir = outdir, normalise = "instance", filterConditions = "n_templates_middle<=40") check_irace2pyimp_files(outdir, "./irace2pyimp/002-TemplateDesign") }) irace/tests/testthat/logparameters.txt0000644000176200001440000000071013640446260017750 0ustar liggesusersparam1 "--param1 " i,log (1, 10) | mode %in% c("x1", "x2") param2 "--param2 " i (1, 10) | mode %in% c("x1", "x3") && real > 2.5 && real <= 3.5 mode "--" c ("x1" ,"x2", "x3") real "--paramreal=" r,log (1.5, 4.5) mutation "--mutation=" o ("none", "very low", "low", "medium", "high", "very high", "all") #unused "-u " c (1, 2, 10, 20) irace/tests/testthat/saved_maxim_bug.rds0000644000176200001440000001545013640446260020215 0ustar liggesusers] |OʢȢTmf2i2YeE(Ble\(nCT@®Cq၈ UosLA~}=9uaK?wS.{-u|7[|]SO_oH/ym;c؇8?|p5q]p{mZAFʟLjQ׈}v\uH{kro./}Ec} ^o0FC$.?qc"*w Lhܳ:׏xn["IaWH-bފ~0_uy9oAGC_j )񼺾iQ'28m;̿ Ox^DoW}yNF|>ݿ6*>&[z3g9Gsjs\^b@ mW,g3ߛ0?'^^;ڣ]zBχsx?[.vŷ]38BBX#Dӿt'] C(ݯOg"RBDoqgZv#@~`GbU{yJ_n2 ok86]Qjtf>tz!Y*$}z|mCsP~GqzuoIX؊G ʾ kGP; [Wg_Ք7hHl/K4|v kʣ^KlӃ0ΦA2nMSaNOiZ3n `7):Dli'}IlW?? {yxjΨXWKy(Ô%TO~bx[nr/i}K_K<ǡ}a&";?nadYvݬ}q>L?O6]ZS97j/DYR`(7^k b|qi&!nS??蟟NY'8l?5~6U??8~GS/54O"0?E)j7Lݠ]s~_WoOˡ?̀kj:o51⛹61/"?[F_hCqkvȋ]C,m5s w@?Ú:K)Uz e~I,?~sa[ 4u|7@ _lA.'AA~meڀRϯHa3Z>׻R'z5#OmO|t2?D057_MiD `bĶR[ýr?7z}͚uѦqK66cud"lgT'PV RCЏeHaz>z^N,3O[wczT4ՋJlq:8)XZoq"u7Aƿ^b-{j{,PŧJ~AS4VX bxz8i+u8 yeW&'/AbQWi+EдUE*N8:qiFļd}Т fnhM:_}mƭ~E*0X姄#B: TW|@[m #aX_5`H~o@70ױq*˯xn8 /ilNۀ$~͝q~ϒp7:,í=}kU'ƭoKW |KO&mZ?QzhIuunu2muDqȿsBg_8ܧíLR)*ؙ0R[}9L/I\QqQf?ר1om~ja~H̸eփVj䷇.0~$lk_qv:~q{0}u9j>·DNW+BxOhќ4?|Om=&kuW!?il)%ۮʌ׸qAoI0a=Js:wZoĐ C>ILC~lZy\/locj#z`(zF ur)k `w2|~BPί1?ºi{uCk!p%]04&1S1gsfh/1[Rb,{&?y132T 3錿#k[4ue#ib~qf]ȏ"e8bD#]RAb@D=ym- mJ}%NOl/gߊ1,LR.1Ey߁vS7c ,;=C} _glZiSzz9v.p }1k<|Z?bv8 / #XWiяv`_-p+|Kk<_x|` L}%ݣLD~YϾGQ̳hw&|^O ߅zٕI9p(NrU nGvz$!4rGNzGnzG^zD1$!Q bHCŐ(D1$!Q pP pP pP pP pP 'pR 'pR 'pR 'pR 'pR pQ pQ pQ pQ pQ 7pS 7pS 7pS 7pS 7pS P P P P P /R /R /R /R /R"QD1(F(EbQ"Q`dm6vhg;tC';tC7;C/;dhvfghvfghvfghvfghvfghC$&14I MbhC9999999999yyyyyyyyyyZC+bhE 1"VЊZCc\"1.HK$%qĸDb\"1.HK$%qĸDb\"1.HK$%qĸDb\"1.HK$%%:RcX:x= uvѡ5\.emh5ja˛r{_yo=m^‡dumMMOujVwqn5MF|,ՖЃOKL%'g\eiG[{r='v51}D;z^7(3gN_|I^=(oW-X+RtMZv\FNVkR'n.'W]Z;n:wW[woh@𯓊>s x?}8}-->Sׂ7x~~ۛ7]vNX=kG!-|qd7-mӝKvN.KMfL_דy`Moϼk{93}M|e/uLt9CeGO7Og\7O ;7d7>ؖC̼;Gnzm[>2lywٯkֽautɥ/wK} tǛ7?dmO+xҍ#W/\Yj&޺ON+/]4õ{ŽL68gGY0;YW/|v/v>z>啣.wtx)tEy c}w*_+7nǩMulh0l˭dP(o%k/x&uNcFܲ[6f۴gEvOlμxI=DJtj½6ϿuXq36_ō^?ҦbS/⒭dܟӸo}΂99#_۱(Z'6l|ᕣop-NN5Pr}yjD?˂vfgonWmym:||jˬL*{&sS:ҡΊmk<9 l?oROΓ UE}!3ҤGbҭN80_R٥:&"'eP>jUQEPq$\+  pUU&Iq"v3\Y]ochpr@:Z ʮ.+BC,)n˫#EjuWGƉz߷0$+|TꅉW+ÕU@nsQT d9"V˸Rt9?$K9s/ۯEUeX\n6v7\2jy:ݺ?~. { sk񰝆#UQ' xTIO&ai )Qc}P7 V N L*_jL8R\ D|IxIKm$THvj_$+)~ǭXmlDWӭIWr%;I7%QyD0RI h!L 0) { which.exps <- which(which.alive %in% which.exe) target.output[which.exps] <- execute.experiments (experiments[which.exps], scenario) } irace.assert(!any(sapply(target.output, is.null))) # target.evaluator may be NULL. If so, target.output must # contain the right output already. if (!is.null(.irace$target.evaluator)) target.output <- execute.evaluator (experiments, scenario, target.output, configurations[which.alive, ".ID."]) The reason for that is, in some scenarios, we want to normalize the output of the algorithm, so when we evaluate new configurations, there is a need to re-normalize the output of the elites as well. So we need to call target-evaluator again. However, when recovering, the files needed by target.evaluator are likely lost. We would need to call again target-runner. This is perhaps a design mistake: We could simply do the normalization internally in irace or create a separate target script (target-re-evaluator?) that only people needing something like re-normalization will use. As a short-term fix, we could implement something like: If recovering and target-evaluator is in use, keep elites as elites, but re-run target-runner on them. (Perhaps we need a new .irace$ flag saying: first race from recovery). #6 ------------------------------------------------------------ Sometimes system2 does not say what exactly failed or what command was run when something failed, it just prints: "error in running command". Can we provide more details? #2 ------------------------------------------------------------ A parameter like: a "" c (0, 5, 10, 20) and a condition like a > 10 will return TRUE when a is 5, because a is actually "5" so the comparison is lexicographic. How to solve this? - Fix 1. Check if a can be converted to numeric, then force it before evaluating conditions. However, we cannot know for sure if the user actually wants to convert a to numeric or not. Imagine a = "+3", then a == "+3" would fail! - Fix 2. Force users to use quotes when defining categorical and ordinal parameters. Hopefully this will make obvious that these values are strings and cannot be compared with other numbers. This is already documented in the user-guide. ############################################################### # FIXED bugs ############################################################### #1 --- fixed at revision 1590 $ irace --debug-level Error in if (scenario$debugLevel >= 1) { : missing value where TRUE/FALSE needed Calls: irace.cmdline -> irace.main -> checkScenario Execution halted #5 --- fixed at revision 1343 Paths in the command-line should be relative to the current working directory. Paths in scenario.txt should be relative to scenario.txt. However, currently the latter are also relative to the working directory of irace. Example: $ ls test test/hook-run test/scenario.txt $ cat test/scenario.txt ######################## hookRun <- "./hook-run" ####################### $ irace -c test/scenario.txt Error in file.check(scenario$hookRun, executable = TRUE, text = "run program hook") : run program hook '/home/manu/./hook-run' does not exist Calls: irace.cmdline -> irace.main -> checkScenario -> file.check #3 -- fixed at revision 1101 $ irace --version (or any other unknown parameter) It should say "unknown parameter" or something like that. #4 -- fixed at revision 827 $ irace --hook-run my-hook-run doesn't work. One needs to use ./my-hook-run #7 -- fixed at revision r882 ------------------------------ When using MPI, if hook-run exits with status 1, the error-handling does not work correctly. It should print the hookRun call, but it doesn't. It prints: Error: The output of `hookRun' is not numeric! The output was: Error : running command '/home/mascia/tuning_paradiseo/experiments/PFSPWT/tuning_2/./hook-run /home/mascia/tuning_paradiseo/experiments/PFSPWT/tuning_2/./Instances//90x20_5 402 --sa-code_definition%ps-initialisation=1 --sa-code_definition%sa-algo_choice@0=7 --sa-code_definition%sa-algo_choice@0%7%sa-perturbation=0 --sa-code_definition%sa-algo_choice@0%7%sa-acceptance=3 --sa-code_definition%sa-algo_choice@0%7%sa-acceptance%3%sa-cooling_schedule=0 --sa-code_definition%sa-algo_choice@0%7%sa-acceptance%3%sa-cooling_schedule%0%sa-sa_r_initial_temp=1.0607 --sa-code_definition%sa-algo_choice@0%7%sa-acceptance%3%sa-cooling_schedule%0%sa-sa_r_factor=0.6901 --sa-code_definition%sa-algo_choice@0%7%sa-acceptance%3%sa-cooling_schedule%0%sa-sa_r_max_step=562 --sa-code_definition%sa-algo_choice@0%7%sa-acceptance%3%sa-cooling_schedule%0%sa-sa_r_final_temp=825 --sa-code_definition%sa-algo_choice@0%7%sa-time_ratio=7 --sa-code_definition%s Execution halted Warning message: running command 'ls *.26602+1.*.log 2>/dev/null' had status 2 which looks like the master code continued execution even after the slave died and the error output from the master was lost. The truncation is also a problem. In theory, the following program should reproduce the issue, but it doesn't: #!/usr/bin/Rscript # Load the R MPI package if it is not already loaded. if (!is.loaded("mpi_initialize")) { library("Rmpi") } # Spawn as many slaves as possible mpi.spawn.Rslaves(nslaves=5) # In case R exits unexpectedly, have it automatically clean up # resources taken up by Rmpi (slaves, memory, etc...) . Last <- function(){ if (is.loaded("mpi_initialize")){ if (mpi.comm.size(1) > 0){ print("Please use mpi.close.Rslaves() to close slaves.") mpi.close.Rslaves() } print("Please use mpi.quit() to quit R") .Call("mpi_finalize") } } runcommand <- function(command, args) { cat (format(Sys.time(), usetz=TRUE), ":", command, args, "\n") elapsed <- proc.time()["elapsed"] err <- NULL output <- withCallingHandlers( tryCatch(system2(command, args, stdout = TRUE, stderr = TRUE), error=function(e) { err <<- paste(err, conditionMessage(e), sep ="\n") NULL }), warning=function(w) { err <<- paste(err, conditionMessage(w), sep ="\n") invokeRestart("muffleWarning") }) # If e is a warning, the command failed. if (!is.null(err)) { stop (call. = FALSE, format(Sys.time(), usetz=TRUE), ": ERROR (", paste(output, sep="\n"), "):", err,"\n") } cat (format(Sys.time(), usetz=TRUE), ": DONE (", ") Elapsed: ", proc.time()["elapsed"] - elapsed, "\n") return(list(output = output, error = NULL)) } candidates <- list("x", "--xx /home/mascia/tuning_paradiseo/experiments/PFSPWT/tuning_2/./hook-run /home/mascia/tuning_paradiseo/experiments/PFSPWT/tuning_2/./Instances//90x20_5 402 --sa-code_definition%ps-initialisation=1 --sa-code_definition%sa-algo_choice\ @0=7 --sa-code_definition%sa-algo_choice@0%7%sa-perturbation=0 --sa-code_definition%sa-algo_choice@0%7%sa-acceptance=3 --sa-code_definition%sa-algo_choice@0%7%sa-acceptance%3%sa-cooling_schedule=0 --sa-code_definition%sa-algo_choice@0%7%sa-acceptance%3%sa-cool\ ing_schedule%0%sa-sa_r_initial_temp=1.0607 --sa-code_definition%sa-algo_choice@0%7%sa-acceptance%3%sa-cooling_schedule%0%sa-sa_r_factor=0.6901 --sa-code_definition%sa-algo_choice@0%7%sa-acceptance%3%sa-cooling_schedule%0%sa-sa_r_max_step=562 --sa-code_definiti\ on%sa-algo_choice@0%7%sa-acceptance%3%sa-cooling_schedule%0%sa-sa_r_final_temp=825 --sa-code_definition%sa-algo_choice@0%7%sa-time_ratio=7 --sa-code_definition%something-else and") # Tell all slaves to return a message identifying themselves output <- Rmpi::mpi.applyLB(candidates, runcommand, command = "ls") cat(paste(output, sep="\n")) #mpi.remote.exec(stop("error", mpi.comm.rank(),"of",mpi.comm.size())) # Tell all slaves to close down, and exit the program mpi.close.Rslaves() #mpi.quit() #10 --- fixed at revision 1919 ------------------------------------ Related to #8. With --maxTime, irace assumes that target-runner will report the time, however, this is not possible with --batchmode. If you are confident in modifying the package sources, you need to add a check on scenario$batchmode before checking the scenario$maxTime condition that you quote, you need to handle the case where that function returns no time and you need to handle the case that target-evaluator returns time and how to use that to increment the time budget. However, targetEvaluator is called again for elitist configurations even if no target-runner call is made. This means that we may double count the time? In the meantime, I would suggest that you don't use --maxTime for now. irace/src/0000755000176200001440000000000013640575065012137 5ustar liggesusersirace/src/iracebin/0000755000176200001440000000000013640575065013713 5ustar liggesusersirace/src/iracebin/irace.c0000644000176200001440000000025113640575066015141 0ustar liggesusers#include #include #include #include #include #define R_CODE "library(irace);irace.cmdline()" #include "irace.h" irace/src/iracebin/irace.h0000644000176200001440000000344213640575066015153 0ustar liggesusersvoid *mempcpy(void *dest, const void *src, size_t n) { return (void *) ((char*)memcpy(dest, src, n) + n); } char * concat (const char *str, ...) { va_list ap; size_t allocated = 100; char *result = (char *) malloc (allocated); if (result != NULL) { char *newp; va_start (ap, str); char *wp = result; const char *s; for (s = str; s != NULL; s = va_arg (ap, const char *)) { size_t len = strlen (s); /* Resize the allocated memory if necessary. */ if (wp + len + 1 > result + allocated) { allocated = (allocated + len) * 2; newp = (char *) realloc (result, allocated); if (newp == NULL) { free (result); return NULL; } wp = newp + (wp - result); result = newp; } wp = mempcpy (wp, s, len); } /* Terminate the result string. */ *wp++ = '\0'; /* Resize memory to the optimal size. */ newp = realloc (result, wp - result); if (newp != NULL) result = newp; va_end (ap); } return result; } int main(int argc, char *argv[]) { #ifdef WIN32 # define EXE_EXT ".exe" #else # define EXE_EXT "" #endif const char file[] = "R" EXE_EXT; char * const extra_argv[] = { "--vanilla", "--slave", "-e", R_CODE, "--args"}; int extra_argc = sizeof(extra_argv) / sizeof(char *); char **cmd_args = calloc(extra_argc + argc + 1, sizeof(char *)); cmd_args[0] = argv[0]; for (int i = 0; i < extra_argc; i++) cmd_args[i+1] = extra_argv[i]; for (int i = 1; i < argc; i++) cmd_args[extra_argc + i] = argv[i]; return execvp(file, cmd_args); } irace/src/iracebin/irace2pyimp.c0000644000176200001440000000026013640575066016302 0ustar liggesusers#include #include #include #include #include #define R_CODE "library(irace);irace2pyimp_cmdline()" #include "irace.h" irace/src/install.libs.R0000644000176200001440000000053413640446260014654 0ustar liggesusersexecs <- file.path("iracebin", c("irace","irace2pyimp")) if (WINDOWS) execs <- paste0(execs, ".exe") if (any(file.exists(execs))) { dest <- file.path(R_PACKAGE_DIR, paste0('bin', R_ARCH)) #print(dest) dir.create(dest, recursive = TRUE, showWarnings = FALSE) file.copy(execs, dest, overwrite = TRUE) } else { stop(execs, " not found!") } irace/src/Makevars0000644000176200001440000000073413640575066013640 0ustar liggesusers# -*- mode: makefile -*- EXE= iraceEXE= iracebin/irace$(EXE) irace2pyimpEXE= iracebin/irace2pyimp$(EXE) all: $(iraceEXE) $(irace2pyimpEXE) $(irace2pyimpEXE): iracebin/irace2pyimp.o $(CC) $(PKG_CPPFLAGS) $(CFLAGS) iracebin/irace2pyimp.o -o $@ $(iraceEXE): iracebin/irace.o $(CC) $(PKG_CPPFLAGS) $(CFLAGS) iracebin/irace.o -o $@ iracebin/irace.o: iracebin/irace.h iracebin/irace2pyimp.o: iracebin/irace.h clean: @$(RM) iracebin/*.o $(irace2pyimpEXE) $(iraceEXE) irace/src/Makevars.win0000644000176200001440000000074013640575066014431 0ustar liggesusers# -*- mode: makefile -*- EXE=.exe iraceEXE= iracebin/irace$(EXE) irace2pyimpEXE= iracebin/irace2pyimp$(EXE) all: $(iraceEXE) $(irace2pyimpEXE) $(irace2pyimpEXE): iracebin/irace2pyimp.o $(CC) $(PKG_CPPFLAGS) $(CFLAGS) iracebin/irace2pyimp.o -o $@ $(iraceEXE): iracebin/irace.o $(CC) $(PKG_CPPFLAGS) $(CFLAGS) iracebin/irace.o -o $@ iracebin/irace.o: iracebin/irace.h iracebin/irace2pyimp.o: iracebin/irace.h clean: @$(RM) iracebin/*.o $(irace2pyimpEXE) $(iraceEXE) irace/vignettes/0000755000176200001440000000000013640575065013360 5ustar liggesusersirace/vignettes/NEWS.txt0000644000176200001440000005230113640574420014670 0ustar liggesusers# irace 3.4.1 (31/03/2020) * `NEWS` converted to markdown. * Fix CRAN error on Solaris. # irace 3.4 (30/03/2020) * `irace2pyimp` function and executable (`irace2pyimp.exe` on Windows) to convert .Rdata files generated by irace to the input files required by the parameter importance analysis tool PyImp (https://github.com/automl/ParameterImportance). (Nguyen Dang, Manuel López-Ibáñez) * Initial configurations may also be provided directly in R using `scenario$initConfigurations` (Manuel López-Ibáñez) * Rdata files are saved in version 2 to keep compatibility with older R versions. (Manuel López-Ibáñez) * Fix invalid assert with ordered parameters: (Leslie Pérez Cáceres) ``` value >= 1L && value <= length(possibleValues) is not TRUE ``` * The `irace` executable (`irace.exe` on Windows) is a compiled binary instead of a script. On Windows, `irace.exe` replaces `irace.bat` (Manuel López-Ibáñez) * inst/examples/Spear contains the Spear (SAT solver) configuration scenario. (Manuel López-Ibáñez) * Fixed bug when reporting minimum maxTime required. (Reported by Luciana Salete Buriol, fixed by Manuel López-Ibáñez) * Fixed bug detected by assert: ```R all(apply(!is.na(elite.data$experiments), 1, any)) is not TRUE ``` (Reported by Maxim Buzdalov, fixed by Manuel López-Ibáñez) # irace 3.3 (26/04/2019) * Fix buggy test that breaks CRAN. (Manuel López-Ibáñez) * Do not print "23:59:59" when wall-clock time is actually close to zero. (Manuel López-Ibáñez) # irace 3.2 (24/04/2019) * Fix `irace --check --parallel 2` on Windows. (Manuel López-Ibáñez) * Values of real-valued parameter are now printed with sufficient precision to satisfy `digits` (up to `digits=15`). (Manuel López-Ibáñez) * It is possible to specify boundMax without capping. (Leslie Pérez Cáceres, Manuel López-Ibáñez) * `irace --check` will exit with code 1 if the check is unsuccessful (Manuel López-Ibáñez) * Print where irace is installed with `--help`. (Manuel López-Ibáñez) * irace will now complain if the output of target-runner or target-evaluator contains extra lines even if the first line of output is correct. This is to avoid parsing the wrong output. Unfortunately, this may break setups that relied on this behavior. The solution is to only print the output that irace expects. (Manuel López-Ibáñez) * Completely re-implement `log` parameters to fix several bugs. Domains that contain zero or negative values are now rejected. (Leslie Pérez Cáceres, Manuel López-Ibáñez) * New option `aclib=` (`--aclib 1`) enables compatibility with the GenericWrapper4AC (https://github.com/automl/GenericWrapper4AC/) used by AClib (http://aclib.net/). This is EXPERIMENTAL. `--aclib 1` also sets digits to 15 for compatibility with AClib defaults. (Manuel López-Ibáñez) * Fix printing of output when capping is enabled. (Manuel López-Ibáñez) * `checkTargetFiles()` (`--check`) samples an instance unless `sampleInstances` is FALSE. (Manuel López-Ibáñez) * Fix symbol printed in elimination test. (Manuel López-Ibáñez) * Use `dynGet()` to find `targetRunner` and `targetEvaluator`. As a result, we now require R >= 3.2. (Manuel López-Ibáñez) * All tests now use `testthat`. (Manuel López-Ibáñez) * New function `scenario.update.paths()` (Manuel López-Ibáñez) * Fix assert failure that may happen when `elitistNewInstances` is larger than `firstTest`. Reported by Jose Riveaux. (Manuel López-Ibáñez) * Fix bug in `checkTargetFiles()` (`--check`) with capping. (Leslie Pérez Cáceres) * Clarify a few errors/warnings when `maxTime` > 0. (Manuel López-Ibáñez, suggested by Haroldo Gambini Santos) # irace 3.1 (12/07/2018) * Use testthat for unit testing. (Manuel López-Ibáñez) * Allow instances to be a list of arbitrary R objects (`mlr` bugfix). (Manuel López-Ibáñez) # irace 3.0 (05/07/2018) * irace now supports adaptive capping for computation time minimization. The default value of the `testType` option is t-test when adaptive capping is enabled. Please see the user-guide for details. (Leslie Pérez Cáceres, Manuel López-Ibáñez) * The package contains an `ablation()` function implementing the ablation method for parameter importance analysis by Fawcett and Hoos (2016). (Leslie Pérez Cáceres, Manuel López-Ibáñez) * New option `postselection` executes a post-selection race. (Leslie Pérez Cáceres) * At the end of each race, if the race stops before evaluating all instances seen in previous races, then the best overall may be different than the best of the race. We now print the best overall (best-so-far). Elites evaluated on more instances are considered better than those evaluated on fewer. (Manuel López-Ibáñez, Leslie Pérez Cáceres) * Last active parameter values of numerical parameters (`i` and `r`) are carried by the sampling model. When a value must be assigned and the parameter was previously not active, the sampling is performed around the last value. (Leslie Pérez Cáceres, Manuel López-Ibáñez) * R help pages are now generated with Roxygen2. (Leslie Pérez Cáceres, Manuel López-Ibáñez) * The user guide documents `--version`, `--help`, and `--check`. (Manuel López-Ibáñez) * A return value of `Inf` from `targetRunner`/`targetEvaluation` results in the immediate rejection of the configuration without any further evaluation. This is useful for handling unreliable or broken configurations that should not stop irace. (Manuel López-Ibáñez) * Numerical parameters may be sampled on a logarithmic scale using `i,log` or `r,log`. (Alberto Franzin) * New `target-runner.bat` for Windows contributed by André de Souza Andrade. * Fixed all shell scripts calling functions before defining them, which is not portable. (Manuel López-Ibáñez) * Fixed `--parallel` bug in Windows that resulted in `Error in checkForRemoteErrors(val)`. (Manuel López-Ibáñez) * Improve error message when no training instances are given. (Manuel López-Ibáñez) # irace 2.4 (03/08/2017) * The output of irace now specifies in which order, if any, configurations are printed. (Manuel López-Ibáñez, suggested by Markus Wagner) * Several fixes for handling paths in Windows. (Manuel López-Ibáñez) * `readConfigurationsFile()` now has a `text=` argument, which allows reading configurations from a string. (Manuel López-Ibáñez) * User-provided functions (targetRunner, targetEvaluator and repairConfiguration) and user-provided conditions for forbidden configurations are now byte-compiled when read, which should make their evaluation noticeably faster. (Manuel López-Ibáñez) * The argument 'experiment' passed to the R function targetRunner does not contain anymore an element 'extra.params'. Similarly, the 'scenario' structure does not contain anymore the elements 'instances.extra.params' and 'testInstances.extra.params'. Any instance-specific parameters values now form part of the character string that defines an instance and it is up to the user-defined targetRunner to parse them appropriately. These changes make no difference when targetRunner is an external script, or when instances and instance-specific parameter values are read from a file. (Manuel López-Ibáñez) # irace 2.3 * Fix bug that will cause iraceResults$experimentLog to count calls to targetEvaluator as experiments, even if no call to targetRunner was performed. This does not affect the computation of the budget consumed and, thus, it does not affect the termination criteria of irace. The bug triggers an assertion that terminates irace, thus no run that was successful with version 2.2 is affected. (Manuel López-Ibáñez) # irace 2.2 * Command-line parameters are printed to stdout (useful for future replications). (Manuel López-Ibáñez, suggested by Markus Wagner) * Users may provide a function to repair configurations before being evaluated. See the scenario variable repairConfiguration. (Manuel López-Ibáñez) * The option `--sge-cluster` (`sgeCluster`) was removed and replaced by `--batchmode` (`batchmode`). It is now the responsibility of the target-runner to parse the output of the batch job submission command (e.g., qsub or squeue), and return just the job ID. Values supported are: "sge", "torque", "pbs" and "slurm". (Manuel López-Ibáñez) * The option `--parallel` can now be combined with `--batchmode` to limit the number of jobs submitted by irace at once. This may be useful in batch clusters that have a small queue of jobs. (Manuel López-Ibáñez) * New examples under `inst/examples/batchmode-cluster/`. (Manuel López-Ibáñez) * It is now possible to include scenario definition files from other scenario files by using: ```R eval.parent(source("scenario-common.txt", chdir = TRUE, local = TRUE)) ``` This feature is VERY experimental and the syntax is likely to change in the future. (Manuel López-Ibáñez) * Fix a bug that re-executed elite results under some circumstances. (Leslie Pérez Cáceres) * Restrict the number of maximum configurations per race to 1024. (Leslie Pérez Cáceres) * Do not warn if the last line in the instance file does not terminate with a newline. (Manuel López-Ibáñez) * Fix bug when `deterministic == 1`. (Manuel López-Ibáñez, Leslie Pérez Cáceres) * Update manual and vignette with details about the expected arguments and return value of targetRunner and targetEvaluator. (Manuel López-Ibáñez) * Many updates to the User Guide vignette. (Manuel López-Ibáñez) * Fix \dontrun example in irace-package.Rd (Manuel López-Ibáñez) * Fix bug: If testInstances contains duplicates, results of testing are not correctly saved in iraceResults$testing$experiments nor reported correctly at the end of a run. Now unique IDs of the form 1t, 2t, ... are used for each testing instance. These IDs are used for the rownames of iraceResults$testing$experiments and the names of the scenario$testInstances and iraceResults$testing$seeds vectors. (Manuel López-Ibáñez) * Fix bug where irace keeps retrying the target-runner call even if it succeeds. (Manuel López-Ibáñez) * New command-line parameter ``` --only-test FILE ``` which just evaluates the configurations given in FILE on the testing instances defined by the scenario. Useful if you decide on the testing instances only after running irace. (Manuel López-Ibáñez) * Bugfix: When using maxTime != 0, the number of experiments performed may be miscounted in some cases. (Manuel López-Ibáñez) # irace 2.1 * Fix CRAN errors in tests. (Manuel López-Ibáñez) * Avoid generating too many configurations at once if the initial time estimation is too small. (Manuel López-Ibáñez) # irace 2.0 * Minimum R version is 2.15. * Elitist irace by default, it can be disabled with parameter `--elitist 0`. (Leslie Pérez Cáceres, Manuel López-Ibáñez) * The parameter `--test-type` gains two additional values: (Manuel López-Ibáñez) - `t-test-bonferroni` (t-test with Bonferroni's correction for multiple comparisons), - `t-test-holm` (t-test with Holm's correction for multiple comparisons) * MPI does not create log files with --debug-level 0. (Manuel López-Ibáñez) * For simplicity, the parallel-irace-* scripts do not use an auxiliary `tune-main` script. For customizing them, make a copy and edit them directly. (Manuel López-Ibáñez) * New parameters: (Manuel López-Ibáñez) ``` --target-runner-retries : Retry target-runner this many times in case of error. ``` * We print diversity measures after evaluating on each instance: (Leslie Pérez Cáceres) - Kendall's W (also known as Kendall's coefficient of concordance) If 1, all candidates have ranked in the same order in all instances. If 0, the ranking of each candidate on each instance is essentially random. W = Friedman / (m * (k-1)) - Spearman's rho: average (Spearman) correlation coefficient computed on the ranks of all pairs of raters. If there are no repeated data values, a perfect Spearman correlation of +1 or -1 occurs when each of the variables is a perfect monotone function of the other. * Many internal and external interfaces have changed. For example, now we consistently use 'scenario' to denote the settings passed to irace and 'configuration' instead of 'candidate' to denote the parameter settings passed to the target algorithm. Other changes are: ```R parameters$boundary -> parameters$domain hookRun -> targetRunner hookEvaluate -> targetEvaluator tune-conf -> scenario.txt instanceDir -> trainInstancesDir instanceFile -> trainInstancesFile testInstanceDir -> testInstancesDir testInstanceFile -> testInstancesFile ``` * Minimal example of configuring a MATLAB program (thanks to Esteban Diaz Leiva) * Paths to files or directories given in the scenario file are relative to the scenario file (except for `--log-file`, which is an output file and it is relative to `--exec-dir`). Paths given in the command-line are relative to the current working directory. Given ```bash $ cat scenario/scenario.txt targetRunner <- "./target-runner" $ irace -s scenario/scenario.txt ``` irace will search for `"./scenario/target-runner"`, but given ```bash $ irace -s scenario/scenario.txt --target-runner ./target-runner ``` irace will search for `"./target-runner"`. (Manuel López-Ibáñez) * New command-line wrapper for Windows installed at `system.file("bin/irace.bat", package="irace")` (thanks to Anthony Antoun) * Budget can be specified as maximum time (`maxTime`, `--max-time`) consumed by the target algorithm. See the documentation for the details about how this is handled. (Leslie Pérez Cáceres, Manuel López-Ibáñez) # irace 1.07 * The best configurations found, either at the end or at each iteration of an irace run, can now be applied to a set of test instances different from the training instances. See options testInstanceDir, testInstanceFile, testNbElites, and testIterationElites. (Leslie Pérez Cáceres, Manuel López-Ibáñez) * The R interfaces of hookRun, hookEvaluate and hookRunParallel have changed. See `help(hook.run.default)` and `help(hook.evaluate.default)` for examples of the new interfaces. * Printing of race progress now reports the actual configuration and instance IDs, and numbers are printed in a more human-readable format. (Leslie Pérez Cáceres, Manuel López-Ibáñez) * Reduce memory use for very large values of maxExperiments. (Manuel López-Ibáñez, thanks to Federico Caselli for identifying the issue) * New option `--load-balancing` (`loadBalancing`) for disabling load-balancing when executing jobs in parallel. Load-balancing makes better use of computing resources, but increases communication overhead. If this overhead is large, disabling load-balancing may be faster. (Manuel López-Ibáñez, thanks to Federico Caselli for identifying the issue) * The option `--parallel` in Windows now uses load-balancing by default. (Manuel López-Ibáñez) * The wall-clock time after finishing each task is printed in the output. (Manuel López-Ibáñez, thanks to Federico Caselli for providing an initial patch) # irace 1.06 * Fix bug that could introduce spurious whitespace when printing the final configurations. (Manuel López-Ibáñez) * Fix bug if there are more initial candidates than needed for the first race. (Leslie Pérez Cáceres, Manuel López-Ibáñez) * New configuration options, mainly for R users: - hookRunParallel: Optional R function to provide custom parallelization of hook.run. - hookRunData: Optional data passed to hookRun. This is ignored by the default hookRun function, but it may be used by custom hookRun R functions to pass persistent data around. (Manuel López-Ibáñez) # irace 1.05 * New option `--version`. (Manuel López-Ibáñez) * Terminate early if there is no sufficient budget to run irace with the given settings. (Manuel López-Ibáñez) * The option `--parallel` (without `--mpi`) now works under Windows. (Manuel López-Ibáñez, thanks to Pablo Valledor Pellicer for testing it) * Improved error handling when running under Rmpi. Now irace will terminate as soon as the master node detects at least one failed slave node. This avoids irace reporting two times the same error. Also, irace will print all the unique errors returned by all slaves and not just the first one. (Manuel López-Ibáñez) * Forbidden configurations may be specified in terms of constraints on their values. Forbidden configurations will never be evaluated by irace. See `--forbidden-file` and `inst/templates/forbidden.tmpl`. (Manuel López-Ibáñez) * New option `--recovery-file` (recoveryFile) allows resuming a previous irace run. (Leslie Pérez Cáceres) * The confidence level for the elimination test is now configurable with parameter `--confidence`. (Leslie Pérez Cáceres) * Much more robust handling of relative/absolute paths. Improved support for Windows. (Leslie Pérez Cáceres, Manuel López-Ibáñez) * Provide better error messages for incorrect parameter descriptions. (Manuel López-Ibáñez) Examples: ``` x "" i (0, 0) # lower and upper bounds are the same x "" r (1e-4, 5e-4) # given digits=2, ditto x "" i (-1, -2) # lower bound must be smaller than upper bound x "" c ("a", "a") # duplicated values ``` * Print elapsed time for calls to hook-run if `debugLevel >=1`. (Manuel López-Ibáñez) * `examples/hook-run-python/hook-run`: A multi-purpose hook-run written in Python. (Franco Mascia) * Parallel mode in an SGE cluster (`--sge-cluster`) is more robust. (Manuel López-Ibáñez) # irace 1.04 * Replace obsolete package multicore by package parallel (requires R >= 2.14.0) * Use load-balancing (`mc.preschedule = FALSE`) in `mclapply`. # irace 1.03 * Use `reg.finalizer` to finish Rmpi properly without clobbering `.Last()`. * Remove uses of deprecated `as.real()`. * Nicer error handling in `readParameters()`. * Add hypervolume (multi-objective) example. * Fix several bugs in the computation of similar candidates. # irace 1.02 * More concise output. * The parameters expName and expDescription are now useless and they were removed. * Faster computation of similar candidates (Jeremie Dubois-Lacoste and Leslie Pérez Cáceres). * Fix bug when saving instances in tunerResults$experiments. * `irace.cmdline ("--help")` does not try to quit R anymore. # irace 1.01 * Fix bug caused by file.exists (and possibly other functions) not handling directory names with a trailing backslash or slash on Windows. * Fix bug using per-instance parameters (Leslie Pérez Cáceres). * Fix bug when reading initial candidates from a file. irace/vignettes/Warning-icon.png0000644000176200001440000012750113640446260016421 0ustar liggesusersPNG  IHDRXPStIME""NbKGDIDATxx4z/Rދ ҋޥ "vD+Ҥ(* (H]AEQHoIH=g7ݙI{}J ٙ7!H,n$ʶ&[J -LW2DH5L4z+rS0?N?6^Ex^DbMAX5BZ^HQ|GQ "yUfRī A,ED jZ-hf*"x~Nϼ1DLa9.':*;7= =DiE|aSc=QέD}, o[BL"bh\@T-2@ZH 3b+Q+ïrq dG> 0 o F46^dgVWҍD-Ƌ,c5 7'@#?Ǖ__%-&L25Dq)DYYH2D!=U*t1uc>߻#>ݓ/̧:ߪWo3gTWRU}@d$  ARBKڰ #j:3Od+[qe1Ѭ0y$o(3K&>ףǰ{"&{dG&Uy$ "^rdي(["A[f.#eXl8g WW;ҤOuLp\ICyVWqXJ#2MՑ+s:`%q%]Kt$Q *#⪂Uqùĕo5*%86>ψ>%,8"cE}*򙮭V3kf%q0DmMK޺U#hʭ_*VWi-A3!*oY@ACDUqMt|y`D , )U,~5*+L#LիM%Z\I/[SxVF\mp _@T$-QPW?$QpjJpW{c[vo%:l=(ڥWvIнvȦ$B$1ψ(rkPB>6U|k6aY:=oΕD'`Yyq-ۈ( SWf輍8ss#-|g,>?.$ #t8r`/U^h9W1w-^wiR+VQaD UվBmm F|4 ,G^h b!"#j[HmanjbO8|]RWq:F1 IT^UP{7<սy-,-yS`-uc9*DV~Ip;jW,:5k29mǸ2|)%qe8h2ofzVɶM̱؟x+xktJJ(%Qc*NxR|\VW?/lo}ٗ0+tHo>ҨzP\.v~O*C8t"NSž-ՍqZl7UZ9)\yVWo 1 2T8 *W|իrw&<ޱ]W֙nmxcP-A3WGT$ R^\UW u+C9$i`Jjm&L8(ڮa|ӓ3j(;~UY`!+/<1v㭙2(DOV a 8 ʭel\\Y\XKY h &~I*Vnq ,*vM ո w+c_W̧$ &z$ ST^1[1{ÇFCW`=`%q%]ItQ *#ДmDDŨ=䲵5D+%5{իFE%q&ιDVaf! QW`{` `+ϱ5Xvlk0~`]ԝgɬ$E%joX%A8J4H/Zڰ6C+WN[6JPXW_BT$hz"o2˃[Kby_~_W{PW 8" Q4Oձ?8cЧ<{^ycp%ѵjDuL"H1CU\?; %y\,>xoc\zyDK|=LOA,eAA|G;quA qc>KxϑMI\ Q7*MxD#Tn Vի[7%[\FX1mWU08B?cQET̙b5nM_3O?q؄*.?,$ C[p~T^Xl1c'JvqqzexwGޘ&uBJVQaVLXUXߋ,L\NW׫$uG,'J-/Uq5$?r\x륄?9c޽|g,VwΩ$t K!8r^*תb}>v+?Q+WvZ}qt)DL"+?\GJTHQڕ=ngMٸ~p6-ӭ%_2F4̷ 3|GTŕdfGf/}:۷q}=ƕBN)}:%qRN &&U0"ڪ + /~X%q\޽w>1 hWaeĕ|4LW‘ ;2H:*Nu>>5{Wg+-V7ɭ$ _'jXepDz5QU\IWs}9Wq]/6xN-yMP-A3&:Id $3[JP*{(m9nϝwqŻw3|o`XFI\"C[pdPFU\m ӝWF=ÎCe\Icn+rC\]^ۙ7e̠$ޣ:=iX%8d@DQaes#׬۸]wO渍+#6yD{ܬb$1;`*Mq~WN+]*WI\MI`Ƒ$!"fMqiT=㘽{/6+Z&W3]Z`[+L\JtQM*#H"DU*v?`giW7;v1X]Z^I\!O[Yp@M?́|[ c#Jز 1{JJLr/&UJ#HDD=զxTUƵŕ9rG[KzE}j ~At Id$rn%*vdHոxߏ+V +޶G]r"ĕD|=-@^}`|6{`8vZo1΁n:ۭ MJI\-w _JT$(f+QPUq<|qt=yիK\RZDK|= ": >׳帺 єJذ 1[rdSWq>M$J  "jZի6iG~oՈWxW\DGz &Kv!u-Aod=-խKqqexQĕ$ dU D0-UWYl1c"7neK]Jz{[^&uBW\7 b;ʸH[[KZ+#4+ްyz?ρշCu)+ֹYʁw`DiDLvpKHr\x%WDฒ:֮+z+mr*83 2SzSU\I]ճ}8)>[Qrb`h۔W$(+N lYN,o wfʡCzY۳"׮ub?-$ M% x^U\X7>`vrPm\ɰ5k8vtOӸXzu&dK.݂I`' Q^e\/Y`{%Wvzg$Wtrĕ%DQZVIa Q9{+eKl_qe1xre8b$quNlTGI\~J*xGH "b겷VҥKYcW6ҥ|!q/8)VUŕhۇ}? /^1s?KrC\IOwjS(+"UDVz\CU\}_ ;_|rJU/Z7?uWzWp6d><ڲ(DojcPkqu}HWHy+V+[q%u̟ϡr)q%gUWq:&iXxuj zE[se*⊿yBǸ2<ڢ`{KD'`Y" oyjW;d=-֭iC\%r\9]|R`]՞w/$_ %H[N2Uq%=Ѻq}$+iGs\Jzs+^&Wae՗uV1aލt* ,Z`{W WIW<r4 =/(+9Dݬb;߳(cjs>ߧ帺KB\%Y\3)_+WrPWÈVaޙ}-[=V`{>sVԔI|wGq%=޲hkŮU1GqUTT&G6r`ݞ5%W7F>g).l{JSWVaFC%"6+[C!WW>wGq؋<^l{˕TW>&xY(@.Uq1 Owne}g! qq%꾸9s8v ۸rֹxu jkn&URw0d3SJlZ̿JqexghӭA#voˇRWfa"*K˗vWaA\x\2ϚWWm(+7^&4x')D\}*G׵0a8滝+_ٳ=mB umS^uX' -AT$ V cUzwys tOJeqN%ZD[Y,! gEj\]u;d<+#W>Wc7/ʁw u}3^*DI\I/5AH'BͼU|gkk΂Oĕ +Uĕi֋=ƕ8? ZANd' !uXU\m s:XlWL!>xTvL̗uWs][YUDL0xITl Z9ݸqI\)N#njXE`i8/V+BT$ B_mUq=kfr`ݚnƕ ++V>WN'OkC~[2O?2*Lw>^Z*'4>>bqa\s̄wwxWiR+;߮G$$b\v*{5x>JӸ2@J^ !ngAF\}NXZ'-Ur\?a2x$/f)ʡ$ !hXe!8P&Uŕ:l Goل={i=eW维͟E pDUL"Q (CQ1WjGl:=s2*ĕ\*.JQW Œ8#P[ZXk#CNz0#IJ;~_c\МK-Ώ3D3f&U0[6uVWJ5dƕVJ*?cb#׮*qw9|pqexJpN7Xpf`Vet-AiR]-Uظ\ak\ɏMṄV4+0yxK\Jad08CH"&+^=חco3;} M;8k\V|EC^hkj?%:_Idm6*vikk0|t=JY)r5K=#Jr:~<}\tOJDVaf)XD@}>-._z2t+s8Qu}DZcnV\[%xnO$J q` J}Uŕl^E-_bW2uENTu kWN~0C\KzlCʛD8cV"B4ܒ>_`oW;!K\Q\9}-U|7{DI\L [DHQW#Z~c~q%J*k q%JE\4՗X\|e#^l+>w۽帺0vȈ-Ǔvq%u{W:=x_%uۆDM0g^=*zuw2JHT(&G<܃^qYmĕVIW[y`b#_;J(>ߥǸݪ1/Ng&#Qq*Jx4DO\JދJ>ƒ)(:s`utcJp* 7XqfT"vjm냃\_)J~;^}/1ulg;4ٲ(\~DM0gHzEU\IYճ}UW2+髯rLux~@WaWNIGT$ )G vKp[|yp/ˁukʻŕ?'q5Q\9}&=.)$ G[pUJzM#q쮝ŕ}C}W" cFzNI\4էzD MaRՓ*bl G,TZeiw5.XU\/3O*؝2UO#f+'8XCND o 7 };[oOXS\ɰrW<]\Q/ȗW.ٕĕ3DOVa<9"ƫX2nu[WDD :UQ5WRWS9D֣8l *.*RU\mϑCX?_\IeB>G~7Fq%WxHާǸ:7 ++D3|0@VUq. Oոv|K~fq%}~8_tk0~`jӄJ6A[KS&U0Z^uv*?.fk=rǕVWR?D~x(c\YYI\O'f+7DU&9Uq)Mп {Jk*?svq#F8ܭǸ2\C^W=oXeqF}k:Eq%=\իrŕQQEC[M %q%|&Ug$MѪվӼ+VWK27k|/FqÇ;Twqu]3JSW#,83D|K+/=Pŕ8tJ|SKX4%ۚr⋚DmL0g(իJJFSҶV./~:! RkWǪ)+7Gp?d9QDWTզŕA֒  ĕV>WNCW>$>%W|= TWsUŕ&[~usǕ +emfq%~z kR`k>/rJ68S!(7q&=bkkܙŕi⊟yyPc\Iϴmߕ-$ G%g D"AA|G;quavJ~)C'dX%S\I [z+̙% v#bXA8s#"j-AUZ|~q%Y>/pVqC8)qexJpo!DL"+/\ì"zDTڒ)_~/,q(&,,+>&'O'KXoppsphVqTVdJzZ^6X"~\HjK,ɗ彮_ŕӧtX ٔĕDM0tĈzGU\Iխno}jJ<>dw3dWqeXzu;/_#_+#W}8+gw q ?ywN3N&jYp]*!)JE\n˙CX_\!pJcXY_ƕa6m̍W:zeXA%qe,2*̄3$"Xq& Ov|r\]{q;١_\?Fl|~WU,,woكϵm1r}a ?$lNI`:nJC#}_\\w~X7%ݷo wxa!W/=v[UcZE%qe8;7XqDd=Q&QTib*l+)?hkg ʰ\r|]/,xo>[5Us&hKFVYaj 5ynիr̺5WFX%e\ɟ+gE*m _S{]}uc-swzW -YDI\#̷ L C("{o 򩮭z~_\ɏ&C^.Xދ!Y\qnۭ+oc\IO>ـȐ>AqMݖI`15PU\IW(mk*/+lٲVFqB|U\9ڕ;X[65+++éD?7GpFH!ꊪژ>_r\|goĕ +Uq%gq%wXiӦ(hNΜgKrڥ _nc\lkNЖ#^#83Wx;o?ֳ0a8vzJz69yqeG9;wY\XGOlLkʼnjDV ֋*ڙ?;s>/)Ngap|FWFXq\qNNomqpWJ|=ΐv: >ۣ帺0vȠ򗸒ae%ǜ@٣}`LkWRGǎ|uq%=d^)c3+QW*Mx#z^U\IT-ok/+7o&8 34cVq"CӮ:dCvU( @E\9J[z &gJ<"T9tpO_\-\/ v>ʐI(.f4+6<ƕyĕ+D|0Θ`}KaexT\,7WC` oGwq%۷mY\+uy^j?7=aXE8kj2+gWs[RB`iƻ)2y۵sֺի]¶*V9 RUq6$h9n>VF\aq%Q?ռys_+nۖ">Ϸll5?_fͬ$tWZ6W SW\X2*̀3)wj[ymS#Cݸ2WJyyy8{, ?j1-OzSMOӤ*fsQDML8aWmT՞ ~q`K0ܦ]l<ƕbi%qe8hUpF&"NuS񅾝~aK\͉5LDnjWN|/X ,ٔĕ@&UF gV@Gһ[kl_L?/""Q+SLZ/E#[,թx_ 5oDsU58R4kJ*=CXNLaq5>#XɓGzwԿhׯQ\9mޜh>KH%q7ţ>tU gX@D\DLvKpu@帺6r0;l/!H(QBյQC!CJg1x`k׮]",Q#mؐZ+ɦ 鼎1 Q{*) -"+Jel^E-qe,oDDX?S⿈<ǎ*Xĕ4qqes {D?7Gphz"z;oe!Cz4帺9uJ?'%Ǐ:~WplkKrڠ_jj!s\ Do{Z:^}*9DZkVWN>}ցuԩ{1Pn|B\Iz VWiDJ1"8b c"n ~?;W}2)c ğs`]IpFq'z',REĕXd> gd Zg{W_~2%ǟ X2z.z\Sq%=q^)a.DL0gfW#TŕTYx~q%֭d u99>noǕVE\Iԯ1 ֨3Tĕ'`Yyqf{\uy+Í3qֻcO?e>x^۸ʘ1cgϺ4+~qurzd=$ _$f0%JzU#p캵ŕs풉~Mʙ3gcB:u8|ʕWҿR؊nJtQ}*& Yw%jbKh~q%=w]vVp c\au_\կk!wLq%qe8y*2]ʁ35AF_jMH{帺WPWLXXUL}qAc|=ƕY2+68z%~ѪJK*6܇,/Op3!00PVZ'jW\ӈn XjVq{W>DL"+?`QaT[nΞ/e}}Ҹĉ+##͓O+d˖M/!x݄ŕZJ:WN6vѼJen 3 իuJh`AXNnlVB 2L|y,W"֬1kgHU:֠6M:![t ѝ:DML8aˈpjbKЈ% lCO/]b_RJZVw|ݻÆiWNkujy\:ٸ=J*qC*C8|%DDXVWkR Xl+t]א[i:}E>p@՝oPc\.ΞUI\'jXep&k&+z5 $+q%}XFz$⊫UZ5\1e!~]gŕtDUM"BUiQw2Pr`ݞ٩帺6r0;6/&S烌1B2e,J?eWDI4 |S4 @zSŖ޲% Ǖ +;q%\QƎe`͝;^lXõ+[{\:٨*VWq%Yʍ3; YAE%Uq6]Z8 {eJL>]R~.}w`iW\vTP1qeJp(ы&UVgx@!"i'Qz/ǬX_\C~3_]t UMWFXx\IVX3-'/4B8SU1[w{ܶç_\}1co!w+Vtz.-ժ&f0 $e QUZIWnmz2t+1;w2{O2,BT4|4x>3QG*% WUŕt_2V/俻~/СCZ1__=U:bq%Gi|ZeW\VU\dDBʛDVIz"A-qWc̙3ZEe_Q6Fq1-tW*2F4HիW)+?=a}}X?]Bwt֭[ ۷o'`,J]۶iW\4;ďg6X',c[VD$J q%$jm^]4_M "EhXOx( T1 T-Sĕ D'`Yp%(eQ^OTՆ,8tpOquk›G1mPE\Hu %K'An-Y,KbK{+yeJ8'f0=ex۰2JWFۇU+ƕ +gm`5pDWIWFX%b\IK j{N[g$8޿nW"oXń*FQ3qH[[Ws؟СVU_F?rsZ(\8ߨZc\9_-YTI\!Zf+' AFDQUqJ|yO'quVĕPsU`W#~4+Cx?ϒ)A[f oXe!BYU|>VUŕy~X#G*3U\F+c)VS;LT$ HPWg!,_\͙#3:0n8k [ WFX)+КULm-^%q5)ΑDlfĕ`RͬyvJ~<5`ƌZ(y?!MJ#~Ω'j]q%=V:J*a?&#51 ℁w͸2,jkk0ŕqBXoVTsϞZŕ?e++ñqTU\b,(3jM|_otEƕVvJv8Nu`XSL?n\ɰJ@\9?\nWd\IOȖEI\ŭbq_gaЩpXYzyWճ}8EŕZݻ q%eǛoWqF--s\Iը +#slnj&UW[DQuWU\mɕC>;ՇaׅOߵ /qI`^z|FqexzeKu≚@^%qe8h̸햠ኀ>ٹ帺6r0;V2ʈ+9/zֹs x%,%Kz5=ƕha4 |#jD$J q%UDUŕtoۣ>P?^e`kX:5 (vU\ުX?q:!Bl8+ñD{ݬb=+ _%*벪Z.-_r\yI=cE;&&Ʃ*U*m?x%9w2K2P+WsfWW^"4^RVյ~ϫr̒/+D߹u`=CֱcǴ+itt4OhWҨ2^2O 5oeEtbQM*+ j"bUնmm O_\͚1G8/p:VbŴ /jXѡMjWתVXҍUW-tUWR8KD0t ƍkW HvU\._c\9cRJm!DM"+0PVuU+#eLϗW7Ǿ_\ɭ={qeX:EVN̙3kXƱxW>d\`iWkUqX" uX1d>WR "櫊+ϱ_/.s'|zw,FEEq̄ ŕn ( G<58XI\M+H-IT$J@ C"jGL]\Is^RJ`KZVI) \a{7^ǸrZo-RPI\<gR{;oe"8`9+4u\X'N"~,a|iWRXGG&UZ+)ckpT9+#)ϑ)*>o~)&"#"8N2W\V*I*D#hYp@s1u-AY2q̙θJiD|>t֭[;F#vbiWjTWeJЖÉ&*L+#Bim`tvqfDxx -[hX={LQѓ'kWR%( g*<-$DI\D L0W!4d%QsqhA[3jW.F\XRPҘ+Èe<^*ĕt,9D֣" "vK87ơCzYᆬ]\9wJ%?qa)?)4 ŕ=ƕʼ+ q f0#LhMJz}ss1˾.b~vKʚ5y ,1>)e!ԪSJpXŏ+;DV ;~WTREmm F@9yyaUB }`Ǩq ~c5* *WNE,YTI\&*V.\Sety+UiR]+t>໛7۷XqT\kǎ)vJ*۵+ó5~5sM? :T!"WWCOԲu+u׮%J`kd5lKn"4紋+idRq!ez*ZO TWqDsU3Rg *'*-A͹sr]\I#w1Xbu/9q2n?0Jq ,yU,xVaf\#@.Uq, Ovie}}``2ʏ*F|lnbmB' x񢶫WvKߑY\IcK]2Ve6WqοېI`l QW˕55gvq%ӉXYFÔ=h֭78' ,e=ƕUywbhݬb=+>l".{;oe:}Z8 =J>o7o.@"+*ֻq% ߵKU,L%hf|= `ՇJzq]s~/,Z&dXH\Ŋֵk+%m?VlٴY&c[һ#GjXQJ:J[<)(PI\I& -LT$ Xo }`+_wѹ?M(?K: (b͓'QuRyqe@>%q%/|h¬{[A"~RWWmW_SUX&͛7u`w0Ka`Ŗ(佱<V>V2J֫2j -:V)ah+QW+7>CJO;/4,6}:{1l!~`]1kY˖W{˔PWoBT$^Auy+õ2{Xc_/Mo7nX,ۄYǎj޼ۃ 2yyG5 *z c\.~(2|htZbJTgۇ_hWq劥JۄW^ҥKX^*ŋ eZU,ŕ`[V|zYM(a$/"aPW 泵5(s0XHSoݻl>1s` 80EoZ gpl͚z ?HG5? WWXq C"갪Z&:;ӫrڪ_xT~WQ˗םYV+mf͚o^J̻?(|/UDBk-syX^rY dHu\GG^&UZ+ɳ5VKSJj@gZ* _-F=eƕCgMX`A z/W=hwʈ+鵫W9[7x#KླྀeX+W`I+Tĕ1D#hYp YB_DTZ53i?/|/ []sU\)|g.vJmBJ*m`Mwk{^`E?3.7quGxwT-KJ#{j>VǭA#ϕ.ɝ3A[LB@Z`|ib?5o\jt|ghwQ "bğ{ʕVRo*V 6>Ǔ^ݞ$|XssU? ?qk0~\IWCB8D MaAT qmBjh/Z!i\ЪG +#+i3.$IM*V6=>ֵ9n] "]sVFXX[d@Ji[Kh%qeF7X9q ӊ:*V }:ͫX^x'*rjg\%v`:޿ 7p{RlJMy;_z`|ᬼ#kn~p&˫W.+9)a3 *# Dd98o{N5W:qZe%7|&_;wr`%6?~X{n*ʕ+էOUL|"O6ko?,ĕX҃ Z%q%Mt2QzW@/TWrdС^~^\X7ZTI$k\Io `_&zw6:䗫W=h5+;ʕK ,V{ +wqB\IgῪWzuRWpUWBgj[=ޡHI\ݳh{c&OL?C/_v^0GVro*ևsᯁu)-ۓj{xH'MJ:?r/WYŕW#*ԩln+M$JPWUwܓdkm\yIZ4'Y\I9¡ &ꫯ6Uի,yi0ꕝ~X`oRWN_!f+(b!Q&VgU4BWVHܕ۸ V58zۉW'k wۄbm޼o^W;Wɵ=hV]Lm|RXNeɔ{ 7 Ը2fj2aekW+ClU*HxG3Q*Vгg#Ke`麊?e\e̘oVs]`P!="vUbĕ[`۲yzuuBJa>Cxs!*%W+OQG㗫{o7Tʫ\q, ψ^g?}'YQv7k׮ϴ+vAE_g} |:5v*r_rELؗ&WNuUSFDfx!2ULh~}+gl/WS]ȕk~Kv3KkLh)M'Xsέ+$X?>Թe-\m(Wv\|!rU-X^Pdh0E1Qԑե7Du+;??(~-l0di_ʗ`%ޝ%oKFlO #ԔY$>MN"WBTwR8pڊ+vQE_g{Ӵ+g6U;5MߊP k?V !p8W+ʱv-j|(2+JQ^IDĄ"(4kΝ,:+t, LG$ʋWKgD݋G|Bd$+pYPi%F V\C/2_rE2˟u }H^}^ܻ J 12QlMOXJbi$Mb%ɕT^V  N"LkE½w-ջrWc|wLYv52BTHvf,}6b4:ңܮ`QN̞iRgBv4Lf% !rfuw8u-Rv7ᗫͲxS.u+IrlMk.E^Pd]HQ!l6~- j^*k ]&6rFaЅree-'S\IFh+p"Wߊ+ʪ!ճuJgwULh)$+%%4rmJxYk' LۻF;S"r(OV32UJ;.:u>G9QrE)؆_& 7 Ct]]u,_8-XbB#LF4h`v|2>ا){Wr1L$W%»zұR"Bd$+ pR4XH?jcrAwX VLk,[//re䲻) ]t1`5ip+Orez%ܮ5t»R#Lٻr+ʖ |Ec镝MUr zK!*;/Rl&B_OA /WYwE^-K\KPm]QM#X:u2U4JxP,ʉ'fv(\Ik%Wfx~H~B=ew_8V^ %W%jH|IezWWjRb }52d}21ZnWJ|w[kFPkE|fؑ%D$~^)V*܁X|P F\ ?M/XݛZc43.W,eIJ)KT+ɚ?ik̘1}UnRjO g5+g؞n(:ߢ1~?6o03Y2՘ wb8V^&J(痫q͂`k,JU,51ewQS,w_ ֲeL#X>AQv+_ăkÇ JH^:\QK oJGd2"R?-i)rEiSDb7j ]02KTxO?mXb-53t;ӣMٻ$XclLr X7ƫS%Vr%1 QaܑX搫yZVO;/W:. ܂勲;oS,Q$~m"XrbjA5K9oMٻzžx+ʙfaB䪚vE`lpgchp((+ᗫ#(k)w{3 Pm])oT+ɢNpp)룏>2\)rzG@\Q*w◫1}F6!XUYsqGL)OHEKAvmޕ+=jA{E|h.+;N+`l\g "WO8692 wh8=Dn#*J6ު%L|h SXKN,ew5(TEFe :uJD+r;s<$X;2gR\Q6D&E^AI4+2҄ȕ}-U('NTk[m6rկuzW]#|` 9UTKzM!X^rg4h镨xPz-uLۻr/;ScAI(Jar<܍0*;3N%WíՔafq%ڣH|qYv7WxbUhhcdYWzEă`}xLٻr+,Ѡ`QjSSx(WvAt0Be2wl89!Tߗ 1Qե%,sa'b Uv{5*KN8ax*++ӥЮ\izWGũ\٧XJx!r%1gs13QrE9۫\iR;R<3kdi 22dя)((ȒQ+WzF^Mke… %*&Yv:#*dM2Űr]p+GF^8}xU*@R'U=%K(g P >_"4NFJAp'cCqQrpr5i0YjeT/w,_ƄFbE> V˖-.WA +]y1lY1xqrfrfB(DQpGc4B\Q._meT.I.{挋`2&˗Q+Z뜚7Q3\QlkzW<( #v(\I :Sٸ?,D("%#X@u48\D$(_7Xb= 6gKiQvc~g!dN prG4h長x"]/Z`ޕ\Ilg8U`Qމ[=a=,#X p+zC\}F8uӫq KӫVi񣲂-bSx׳"Y"EK-]BCCʕ+u+_ȕh+Qv%нzwI(yrctHVތ5$W+:jfR;»/E'&u]Kt]/bfi-5K;J/ٻҺAJm'Ug725ZU>5X+K1˕U}Ɓ

iJiVZ 60KX+ޕhPJjA ^>u ooQdR`Q2,]9BJbBkd\%q)JVEFkSF Ŗ]w^͝nX: KTLȻKk],=D]v܉333*88>[nP+HP\}1R[nJE9t1hR\Q6ƆTJ,q1\rF!B=Ci(Tݙ_F7,LԾ]C\Y~b):&4KT睅"%KIxdB?ΥKqᲲ2"S񸰰Ϟ=^*UZV+bW5cȁxZѠ3_5Ha^I9 "QG/9.#Yy`pDU{¯ZVlL痫cV,ӻ[' `i݉e)Q/$KhʖHԈHr-T3RA+D8S< ֚@|8Y$ԯ'DXx=-'|v"D%Wl6|yd~%~g ژWewXF,ih-[,V\"1ҳ"XC?cޕ\IlMf*-/jG\nV መ^ Jn]/W~]( (|fvJ=Fb%B}劵Ԯg4h镚xӧve]˕r%.@:Ss1feσE.Wdž.["5&4KDT+Y-Qg?JD4Slu7*[SHv9Ta.JT!rU-Xx:BXI` pFB0%W˃񕱃WZ[cTlЗ"6&4KKT(RLo)WF^,{Mۻr+;aoI+ _$V\UkO+ރFO%֒z5i0QjX|f^拤jX y%KmdE|-[,XL WzYW~)˰K[SVɕġr%?7 ? B<75L08^("!_>_:XbOr] b EOލ(YjDUDKϟZʕ޽+3NƃΜظoL12Q •%'BJbB)DQ`pM֋+ʅ=jXw˔)W:Z}1ZIxEKo}S+HP\ {z%>sajvsY"dEy sWsV(i[I,!,嗫8M]}Ϯ]髲X zKhU}LZŊej#WV^:8}(ðDYYV,Ѡ`Q6e +mWbIu>F(%S+*W+BC{4L^l1L\]v7_U.?[$W^]nđw2|ez%1.yzj!#X0 8 R޹-\Mo[wu, W>i ަX" ZB032\Y`(tvOr%q 3K(܀!rE,0 8`1%WSc] /jb .YDKlZxVzʕAQ+#=qrV!1̰Dy䊲*†+L%I "92G]0کo%)^ݫwXcTl|0嫲)?BQOp~ be bzr'9{Wnf{r,\QNgl^2UHÀhp(--䗫i#&іX&(3 8e.2*dy-R+^j~_\+4J`>qo.62QZx^h`ٚY_\ٙ~)V*F>#"uUk$(2< 4i84xW˔)_ϙ(TxZXz }%Y-OH@{{{yJJJxЙwƒ` )oӫ|ތR%Vr%12՘ QwWo+ʩnWA,[Uǎ8Qv7r]; J*\c޶m~'p޽qII 4AAA~M6xxѢE1Py+rG4镞OɕľѠ`sldžk0YloAgQr~=~ӫi)7G].Fb)YY%A+V~Z2C&MycQbe ^],ĩݻ(.呫 ӫ3E$dt$Ɓqԡ4BDi[I,%? |7/`hy5nFֲѦXzE,-M駟ɚxȑ#^JXIDF^B(kR\IE2)MHCCU b ̣DSEeR~2(LrA8>}FewXQ?$'2T-^٢3<ㅋ;䇟Cڿ"JRSju4(zzjSxsB.+9^AIٙnGVz:N^sMe$>G݈TEk$(**_2?Zdev'h)»RTOSv؁ u+wbbbo(U"VzɕU]^I[hr)6:SO1Ѫa CI{8R٣ jto|#fg>0i%"*Qz,!hz!DrL =V"ʗѠW,{}@S؝5tyq[z%2bC_E՗ j|E$X>ygEֲS,EZ$KihѯMn*V ;MĊ%4\,ky栿 Ǜw$WdlfXU/IU$(V(D,xv"Dm66DȕQwh)P; "YjE~ #WʌrG4hā?ce,̉M \rEBU뗻!#X% 0Mf+er5y(QnR;}sQڽŻ_S,#Jhђd~ 'W鸢BXDJޕk2imaȕġ9+Ξ^Xre~* 0kӉ+RŽѠ\QNe'l6!rEy UFNL~u)WTG-L>ʱ+>EQ)BJ7ђdk٦+ +O]HUq^Uϔ+w, y O \Y"D$ ^ab0"PF\- W -ӻ|3/fbMX#C5k.l#?M#zhU*W< EFV^I|e9{W!!6)t0?CK V K$+2J*+{v5Bj劲44d+;yYxUr D!*+#j ~7^U]bΦ+S,B,d,-!h+, ~ѠWket H+ʱ»Qxk6Be$+Ƿ`G"Qj%deՌ1zzW"']rCOS,Gf,ڹs%+==]XYEZ]SkLUjOˉ0Ven^JJb>8"LD(ZbGL^lrB= "XzJOdFf9jٲ(rW4Slk+~;C/e+/b"R?"DFV ! Hhp(lӌz5y(^f\gg,)/B4KN:wl95jp\ ֕U O aޕ'_OV< V%]i»3 HV0 }w^5 2}+Uq1ƴQӫNyX&*qYB»K; IȐGx K/UL|!WzDui-7YWFLٻrO‚i"N,+*WDk+CzA!*ozR\Qz5eRZ*NYb(5*%Y"#CEٱckBʗrw օ LMٻr+q\rEGm6!ruV#Bؐ""A/ }4,26|f:q!4rTh$R+ZeeedM4y4\A]5 LG(aUNN"Wڨ0J#x"FkQr4$_7?D%2\yXBHH$[ekرJMߊG*C4W^62Q9$X5Qa\rE9Mx>,[S;Be f$n-ӢrVӫ.5IU%bU%Yk ZjX +=zW0̦N &{+'{i= @\~12H\bEYoL?jee5s~:y!T[xU]d-ٲcsk>W^\+ӫ xETJJY "2r% .F\I Gu0 I{}(\p\ :+ZloSg (YZD~,999 &Vf+(u`Sʎ M1 r*X'ǂljf53ws(k[0p@U N7L>z:}!4bT(ZX#CѢh"UII rѠ'o+Mٻr+'# {]SȕDv)L)8ZQr,,8a(fX&*u#_Q ,4EeW^ eU li{Wr%yx(>*WՂEy9!wn?_olR];t !ˌ,-%B(soذkΜ9LR%'VF+}Þ~c +%k4,W 4P@C"Be$+)jLZJ/%3OfXb$W N B_IPOڶm 1\i5X+w B4;,DYWYOdex%8>V\ID}0̉+^OE_҇_vLYν\E޵H^&[o& ?#UQQ{FDNDʕ/A,WNc8>6)tDʞR%VrUA`GcED{GFQ~+ ~Y>z.~ }-Y"YZDa%+;;*Vf+ W9M>w%B< Pz*r:T/YʝRbA)U<(ZN?zW.-j,>%Khy{pմiS|I!bW$\A]G;fޕ';DA$.D$"B= LJ^ :SqWG~_ϷYw"X|.> )YzlQ~mnݻk*Ube4hЇvDʝّbzg!di l9KCB'Z[oe})VF+}ñ5 g5+w|+n,,QBJbB 0BDŽʞ]Wzk vmT\y\M.YYZEKlQ<Νucbb*==s=_ħN$TJRX\Y=[Ԯ$X ٚ<8Q?D~!W)52WHQg"V-W3k͓-LTI4 a_XZ%Kddhi-g۷/Y3gδ3~xhV)\P0JQri _=]Zw&WosٕQ|!Y"Ci7-s!V+v+vNI[4,Xw"j!BTYFΜ{merUCa>KpѬhKx?6oH(rѕ+Fٖ\&#W⢙W5(D9 ,B`5"ԅb{Or5?[E}4^`8ȕ`IBCDPdFz%_ZLϋW W0Rɽ{eFk-I,W4#t6)L--W  #(Z Ӳd䪆,po{|qաpQթ+5l k2x |?/+bBmj7auze'L` ³!jw!4YFJ Vȏj@| DUɕDo׷ChrFUޘJ N I>4YʇpڍSk-fO#2Usע93TrRRS!)frp㳦pNGOŇd8xL$3j;mG0nbdvv0m0_/f!CLG$v%%0˕nZx"WS޿Ed5(G\!G VлR,IdZ \9/9g2\9+TPN}]p48)ÉTW8.Qϕc Hq = IUbmɰW"= 얈we;݉sC히uM |6KDfS-QlP`;P`;ʰFᮬRs0WVʰB"6eXEZC¢@|\)VE5GG=107h+ ֗Z#Ag. >e F\"Wʣ`NNYdrIxjj*F\m\\) \Y!μ+wX4pلe2BiP*T`r8_֍ejAruA\U!WU"AN ^q?!Uvg&@+5ӫ*KN ~""DyJPZhBJb BX,!W"MD(Z8? J,+?9?iUv:g: @i r&(W_ +F ~+/+v镝4;/;Xy+{z@a!V^oLyWck2QJU*߽]%]MK4D"䪮>s./IJM) ?&"ZFM-WK'A꿢j]j2\I3qUmR_zW"JлޕRzWKP]( m&oѠ$W cUEr iQa) #@jHPba꬟KPj7m6]E]ADYY(k"AgNǂdmP_*"1'J({ZI"M[jޕvij o=ҿv]w.WvȽ{JhНI X-i*#YiE%y5,p|uh[ ,һBϥv]i/oRiKлLG((W^S%WeУ 03M%WSwu^`(,,eL\j$W [bI& jVLDF}n\S6D~ Jr|ۯJeл,5E}KлeZKjQ:V"='BJbwxCrlDOl6݈~rua(,eL2QX&R'X%WSABj_"4XF 6#G3E嫖MNGCwD-Rjrq*W{VXN#T&#Y醔־Ċ(|mHb{MѠL4ſv]A BT媢"…ȕĽ=F{X\Qz/W#{:л8CwD!л[ʝ&WNu85?(D(kBd+P^P"Sj%6e7/O5Ov w%Bw+.ozWuw.Wȵ j)V!](%WˣOzeL2QX& Da*ɕ`QV2-:ImHXkGFV !)B+v58q0VD!g(CwD}ܻ+] ^AINU=)Aq!Wv"t.f2`C"Uڷ<>_6z!Aqeuqe~-sF|dNZ=fdjW #9Z#J(/W8C CwD!]ɱ>*k4,W@!r5QxgBd_ Dz%6ךC zWL`}~.eLڍػ:}z&bgE\HPmQb%A(Z7zգ,eLzWL2Q,e+BBAg:IG"z@h`}YQrE9ҡ \5 ,`(<zWY& 2O$vUEGR,B-e$S@?"Ċ|0qETe2QX& Da(,eL`DyYH)reP-Vr%17h_L6EӫA!g]2Qx3weR"ýFrE9^/ ?d "W|P;EG%SGk1Pj +]AʯD[j`ǁf:lgM|( CZ0Ū`*WU$, 8q4xWSX& Da(a(,e_&`hY(υh+IVcBrI\Qwm?{/lR;`_K-C zW~]&R;Ա56yz%Dȕ-Qbe!Xh%֑/\UL2QX& Da(,@f2\!Q"AOE5W8ar0"S!W _l zWL +x3<zW]ɱ:<]9(OI³m6r%qB3(jz_\Q4-^MGA ^R;`h].CDհ/1Y$6 +P*%M`o%42_ ol :s^~1,oq1]"X&b>rEхz57geл,5d}Kлef.+9:yzEr"% O&W Ew"D_4ղH|}hL2QX& Da(,`]@ɉ^YNCXX8:%*W}-G}C zWLzWлe:лʰP+XrE+G;˴ĩ58y(Zs8CL4ſv]2QX& q6\I!*W:A$#`5Q"E\Q.5rH0|}L& ve'9@c\a-ƸhFS^όOpwz;P??3<vxbݮJ?g頯d*O/.zVsKtv-ɕe[::ˍ;;x\C+]%nMv.|Y-mtr-:p{KWKsޙ$N+m9Ɲ2izV4s -ӼT;g$yA;EzAw 4vPNiڔ8,LQ<..39vJ3Y24LNf-NIdK4p%K"6 %]8Df}Wx"Avݩ_O4WR%w )IvXAgjq?/bTUE䨧VZHqP.ahWIreSGf;#Lvg-&9V0`ㇸpUb`yre;4ڝN#`-~tg!->v~pgDoW;˕A=\=(пGwUWrr镜\ݫBLjɕ镌\)NJ+9^W䪕 0!W\+r镜\+镜\^JNLO+߻`Rf܋9+AM+]M$NbhA!hA!+V%VrE3-XO#1B"WODT hA!hA)Ok+JGsVwn"W ײ D B4 D B4Ѡh9.V\~IA`-F-'7;!hA!hAͦo(.rT6ZJbqX>7D B4 D B4Ѡh@R<~i5XѰS(GHdo$(G0 (D B4 D B4ѠhpkB,~z8r%v"JC::I.׈A4 D B4 D }+xR@POqUc$\P3"V+g> _=ſ\jh@_3)[CSC!6nnr1B2Eyx3+6Ր렀rc5FDG-rYWCkYȖhP5rdIdPՄU.;dX)~5PA},H4~G걐?s&H,HJSJbI!dzs8$b刖'ƕjegD4 vHDEF?tDX3?P1*FZZCF>`} .bV-d F yYȋ x #yx232WyG #sd <,dFg>Ff0 Lcd S$&22A#V1+ N*&[ [(WqFzՋ:.WOk'\=rI$W-Wtz 4@ZFVw4[u\^$Wρ\i'\(WqQqQ W*+I`I ruE\}rIިrFz4ռ:.Ws5գu\fi\M(W\q.f+Jq>B"OMԷ2\oeF2RʌreHHHX,Pf2;١ev(Cf[I@|"Bm4V:y05"Sev(CPf2;(WPW rEDrltu١ev(CPf2Nru5U#!7P:ɂ2;١ev(CPf7z2KQ(1HC$7D~2;١ev(CPf7b2 ) WWHVw"So}+o}+[A VF[s/BoxΠܳ#/("ZI,or}+[A Vзgj8B V_S3J/ Wзo}+[Aבޅ+ <{Ԟ* зo}+[A V:/:ŊRDAF:EI.S t-?PX Cay(,,塂"Pr"X7!M"t}?XIn+Mx 'qP  + A /32_yA 3{cY<#VFNR%QBG?6B_BI-Շo&z0dC77QJHB&?Ӭ d}cz57_Ґ,|; S? @/hM)L%vSjZwY:}M8SslhB!Z%xxC]zUp8p8peIENDB`irace/vignettes/section/0000755000176200001440000000000013640446260015016 5ustar liggesusersirace/vignettes/section/irace-options.tex0000644000176200001440000004363513640462604020327 0ustar liggesusers \subsection[General options]{General options} \begin{description} \defparameter[h]{-{}-help}{help}{}% Show the list of command-line options of \irace. \defparameter[v]{-{}-version}{version}{}% Show the version of \irace. \defparameter[c]{-{}-check}{check}{}% Check that the scenario and parameter definitions are correct and test the execution of the target algorithm. See \autoref{sec:execution}. \defparameter[s]{scenarioFile}{scenario}{./scenario.txt}% File that contains the scenario setup and other irace options. All options listed in this section can be included in this file. See \IRACEHOME{/templates/} for an example. Relative file-system paths specified in the scenario file are relative to the scenario file itself. \defparameter{execDir}{exec-dir}{./}% Directory where the target algorithm executions will be performed. The default execution directory is the current directory. \begin{xwarningbox} The execution directory must exist before executing \irace, it will not be created automatically. \end{xwarningbox} \defparameter[l]{logFile}{log-file}{./irace.Rdata}% File to save tuning results as an \aR dataset. The provided path must be either an absolute path or relative to \parameter{execDir}. See \autoref{sec:output r} for details on the format of the \aR dataset. \defparameter{debugLevel}{debug-level}{0}% Level of information to display in the text output of \irace. A value of 0 silences all debug messages. Higher values provide more verbose debug messages. Details about the text output of \irace are given in \autoref{sec:output text}. \defparameter{seed}{seed}{}% Seed to initiallize the random number generator. The seed must be a positive integer. If the seed is \code{""} or \code{NULL}, a random seed will be generated. \defparameter{repairConfiguration}{}{}% User-defined \aR function that takes a configuration generated by \irace and repairs it. See \autoref{sec:repairconf} for details. \defparameter{postselection}{postselection}{0}% Percentage of the configuration budget used to perform a postselection race of the best configurations of each iteration after the execution of \irace. See \autoref{sec:postselection}. \defparameter{aclib}{aclib}{0}% Enable/disable AClib mode. This option enables compatibility with \texttt{GenericWrapper4AC} (\url{https://github.com/automl/GenericWrapper4AC/}) as \parameter{targetRunner} script. \end{description} \subsection[Elitist irace]{Elitist \irace} \begin{description} \defparameter[e]{elitist}{elitist}{1}% Enable/disable elitist \irace. In the \textbf{elitist} version of \code{irace}~\citep{LopDubPerStuBir2016irace}, elite configurations are not discarded from the race until non-elite configurations have been executed on the same instances as the elite configurations. Each race begins by evaluating all configurations on a number of new instances. This number is defined by the option \parameter{elitistNewInstances}. After the new instances have been evaluated, configurations are evaluated on instances seen in the previous race. Elite configurations already have results for most of these previous instances and, therefore, do not need to be re-evaluated. Finally, after configurations have been evaluated on all these instances, the race continues by evaluating additional new instances. The statistical tests can be performed at any moment during the race according to the setting of the options \parameter{firstTest} and \parameter{eachTest}. The elitist rule forbids discarding elite configurations, even if the show poor performance, until the last of the previous instances is seen in the race. The \textbf{non-elitist} version of \irace can discard elite configurations at any point of the race, instances are not re-used from one race to the next, and new instances are sampled for each race. \defparameter{elitistNewInstances}{elitist-new-instances}{1}% Number of new instances added to each race before evaluating instances from previous races (only for elitist \irace). \begin{xwarningbox} If \parameter{deterministic} is \code{TRUE} then the number of \parameter{elitistNewInstances} will be reduced or set to \code{0} once all instances have been evaluated. \end{xwarningbox} \defparameter{elitistLimit}{elitist-limit}{2}% Maximum number of statistical tests performed without successful elimination after all instances from the previous race have been evaluated. If the limit is reached, the current race is stopped. Only valid for elitist \irace. Use \code{0} to disable the limit. \end{description} \subsection[Internal irace options]{Internal \irace options} \begin{description} \defparameter{nbIterations}{iterations}{0}% Minimum number of iterations to be executed. Each iteration involves the generation of new configurations and the use of racing to select the best configurations. By default (with 0), \irace calculates the minimum number of iterations as $\Niter = \lfloor 2 + \log_{2}\Nparam \rfloor$, where $\Nparam$ is the number of non-fixed parameters to be tuned. We recommend to use the default value. \defparameter{nbExperimentsPerIteration}{experiments-per-iteration}{0}% Number of runs of the target algorithm per iteration. By default (when equal to 0), this value changes for each iteration and depends on the iteration index and the remaining budget. Further details are provided in the \irace paper~\citep{LopDubPerStuBir2016irace}. We recommend to use the default value. \defparameter{sampleInstances}{sample-instances}{1}% Enable/disable the sampling of the training instances. If the option \parameter{sampleInstances} is disabled, the instances are used in the order provided in the \parameter{trainInstancesFile} or in the order they are read from the \parameter{trainInstancesDir} when\parameter{trainInstancesFile} is not provided. For more information about training instances see \autoref{sec:training}. \defparameter{minNbSurvival}{min-survival}{0}% Minimum number of configurations needed to continue the execution of each race (iteration). If the number of configurations alive in the race is not larger than this value, the current iteration will stop and a new iteration will start, even if there is budget left to continue the current race. By default (when equal to 0), the value is calculated automatically as $\lfloor 2 + \log_{2}\Nparam \rfloor$, where $\Nparam$ is the number of non-fixed parameters to be tuned. \defparameter{nbConfigurations}{num-configurations}{0}% The number of configurations that will be raced at each iteration. By default (when equal to 0), this value changes for each iteration and depends on \parameter{nbExperimentsPerIteration}, the iteration index and \parameter{mu}. The precise details are given in the \irace paper~\citep{LopDubPerStuBir2016irace}. We recommend to use the default value. \defparameter{mu}{mu}{5}% Parameter used to define the number of configurations to be sampled and evaluated at each iteration. The number of configurations will be calculated such that there is enough budget in each race to evaluate all configurations on at least $\mu + \min(5,j)$ training instances, where $j$ is the index of the current iteration. The value of $\mu$ will be adjusted to never be lower than the value of \parameter{firstTest}. We recommend to use the default value and, if needed, adjust \parameter{firstTest}and \parameter{eachTest}, instead. \defparameter{softRestart}{soft-restart}{1}% Enable/disable the soft-restart strategy that avoids premature convergence of the probabilistic model. When a sampled configuration is \emph{similar} to its parent configuration, the probabilistic model of these configurations is soft restarted. The soft-restart mechanism is explained in the \irace paper~\citep{LopDubPerStuBir2016irace}. The similarity of categorical and ordinal parameters is given by the hamming distance, and the option \parameter{softRestartThreshold} defines the similarity of numerical parameters. \defparameter{softRestartThreshold}{soft-restart-threshold}{}% Soft restart threshold value for numerical parameters. By default, it is computed as $10^{-digits}$, where \parameter{digits} corresponds to the \irace option explained in this section. \end{description} \subsection[Target algorithm parameters]{Target algorithm parameters} \begin{description} \defparameter[p]{parameterFile}{parameter-file}{./parameters.txt}% File that contains the description of the parameters of the target algorithm. See \autoref{sec:target parameters}. \defparameter{forbiddenFile}{forbidden-file}{}% File containing a list of logical expressions that cannot be true for any evaluated configuration. If empty or \code{NULL}, no forbidden configurations are considered. See \autoref{sec:forbidden} for more information. \defparameter{digits}{digits}{4}% Maximum number of decimal places that are significant for numerical (real) parameters. \end{description} \subsection[Target algorithm execution]{Target algorithm execution} \begin{description} \defparameter{targetRunner}{target-runner}{./target-runner}% This option defines a script or an \aR function that evaluates a configuration of the target algorithm on a particular instance. See \autoref{sec:runner} for details. \defparameter{targetRunnerRetries}{target-runner-retries}{0}% Number of times to retry a call to \parameter{targetRunner} if the call failed. \defparameter{targetRunnerData}{}{}% Optional data passed to \parameter{targetRunner}. This is ignored by the default \parameter{targetRunner} function, but it may be used by custom \parameter{targetRunner} functions to pass persistent data around. \defparameter{targetRunnerParallel}{}{}% Optional \aR function to provide custom parallelization of \parameter{targetRunner}. See \autoref{sec:parallel} for more information. \defparameter{targetEvaluator}{target-evaluator}{}% Optional script or \aR function that returns a numerical value for an experiment after all configurations have been executed on a given instance using \parameter{targetRunner}. See \autoref{sec:evaluator} for details. \defparameter{deterministic}{deterministic}{0}% Enable/disable deterministic target algorithm mode. If the target algorithm is deterministic, configurations will be evaluated only once per instance. See \autoref{sec:training} for more information. \begin{xwarningbox} If the number of instances provided is less than the value specified for the option \parameter{firstTest}, no statistical test will be performed. \end{xwarningbox} \defparameter{parallel}{parallel}{0}% Number of calls of the \parameter{targetRunner} to execute in parallel. Values 0 or 1 mean no parallelization. For more information on parallelization, see \autoref{sec:parallel}. \defparameter{loadBalancing}{load-balancing}{1}% Enable/disable load-balancing when executing experiments in parallel. Load-balancing makes better use of computing resources, but increases communication overhead. If this overhead is large, disabling load-balancing may be faster. See \autoref{sec:parallel}. \defparameter{mpi}{mpi}{0}% Enable/disable use of \pkg{Rmpi} to execute the \parameter{targetRunner} in parallel using MPI protocol. When \parameter{mpi} is enabled, the option \parameter{parallel} is the number of slave nodes. See \autoref{sec:parallel}. \defparameter{batchmode}{batchmode}{0}% Specify how irace waits for jobs to finish when \parameter{targetRunner} submits jobs to a batch cluster: \code{sge}, \code{pbs}, \code{torque} or \code{slurm} (\parameter{targetRunner} must submit jobs to the cluster using. for example, \code{qsub}). See \autoref{sec:parallel}. \end{description} \subsection[Initial configurations]{Initial configurations} \begin{description} \defparameter{configurationsFile}{configurations-file}{}% File containing a table of initial configurations. If empty or \code{NULL}, \irace will not use initial configurations. See \autoref{sec:initial}. \begin{xwarningbox} The provided configurations must not violate the constraints described in \parameter{parameterFile} and \parameter{forbiddenFile}. \end{xwarningbox} \end{description} \subsection[Training instances]{Training instances} \begin{description} \defparameter{trainInstancesDir}{train-instances-dir}{./Instances}% Directory where training instances are located; either absolute path or relative to current directory. See \autoref{sec:training}. \defparameter{trainInstancesFile}{train-instances-file}{}% File that contains a list of instances and optionally additional parameters for them. See \autoref{sec:training}. \begin{xwarningbox} The list of instances in \parameter{trainInstancesFile} is interpreted as file-system paths relative to \parameter{trainInstancesDir}. When using an absolute path or instances that are not files, set \code{trainInstancesDir=""}. \end{xwarningbox} \end{description} \subsection[Tuning budget]{Tuning budget} \begin{description} \defparameter{maxExperiments}{max-experiments}{0}% The maximum number of runs (invocations of \parameter{targetRunner}) that will be performed. It determines the maximum budget of experiments for the tuning. See \autoref{sec:budget}. \defparameter{maxTime}{max-time}{0}% The maximum total time in seconds for the runs of \parameter{targetRunner} that will be performed. The mean execution time of each run is estimated in order to calculate the maximum number of experiments (see option \parameter{budgetEstimation}). When \parameter{maxTime} is positive, then \parameter{targetRunner} \textbf{must} return the execution time as its second output. See \autoref{sec:budget}. \defparameter{budgetEstimation}{budget-estimation}{0.02}% Fraction (smaller than 1) of the budget used to estimate the mean execution time of a configuration. Only used when \parameter{maxTime} $> 0$. See \autoref{sec:budget}. \end{description} \subsection[Statistical test]{Statistical test} \begin{description} \defparameter{testType}{test-type}{F-test}% Specifies the statistical test used for elimination: \begin{itemize} \item[] \code{F-test} (Friedman test) \item[] \code{t-test} (pairwise t-tests with no correction) \item[] \code{t-test-bonferroni} (t-test with Bonferroni's correction for multiple comparisons) \item[] \code{t-test-holm} (t-test with Holm's correction for multiple comparisons). \end{itemize} We recommend to not use corrections for multiple comparisons because the test typically becomes too strict and the search stagnates. See \autoref{sec:stat test} for details about choosing the statistical test most appropriate for your scenario. \begin{xwarningbox} The default setting of \parameter{testType} is \code{F-test} unless the \parameter{capping} option is enabled in which case, the default setting is defined as \code{t-test}. \end{xwarningbox} \defparameter{firstTest}{first-test}{5}% Specifies how many instances are evaluated before the first elimination test. \begin{xwarningbox} The value of \parameter{firstTest} must be a multiple of \parameter{eachTest}. \end{xwarningbox} \defparameter{eachTest}{each-test}{1}% Specifies how many instances are evaluated between elimination tests. \defparameter{confidence}{confidence}{0.95}% Confidence level for the elimination test. \end{description} \subsection[Adaptive capping]{Adaptive capping} \begin{description} \defparameter{capping}{capping}{0}% Enable the use of adaptive capping. This option is only available when \parameter{elitist} is active. When using this option, \irace provides an execution bound to each target algorithm execution (See \autoref{sec:runner}). For more details about this option See \autoref{sec:capping}. \defparameter{cappingType}{capping-type}{median}% Specifies the measure used to define the execution bound: \begin{itemize} \item[] \code{median} (the median of the performance of the elite configurations) \item[] \code{mean} (the mean of the performance of the elite configurations) \item[] \code{best} (the best performance of the elite configurations) \item[] \code{worst} (the worst performance of the elite configurations). \end{itemize} \defparameter{boundType}{bound-type}{candidate}% Specifies how to calculate the performance of elite configurations for the execution bound: \begin{itemize} \item[] \code{candidate} (performance of candidates is aggregated across the instances already executed) \item[] \code{instance} (performance of candidates on each instance). \end{itemize} \defparameter{boundMax}{bound-max}{0}% Maximum execution bound for \code{targetRunner}. It must be specified when capping is enabled. \defparameter{boundDigits}{bound-digits}{0}% Precision used for calculating the execution time. It must be specified when capping is enabled. \defparameter{boundPar}{bound-par}{1}% Penalty used for PARX. This value is used to penalize timed out executions, see \autoref{sec:capping}. \defparameter{boundAsTimeout}{bound-as-timeout}{1}% Replace the configuration cost of bounded executions with \parameter{boundMax}. See \autoref{sec:capping}. \end{description} \subsection[Recovery]{Recovery} \begin{description} \defparameter{recoveryFile}{recovery-file}{}% Previously saved \irace log file that should be used to recover the execution of \irace; either absolute path or relative to the current directory. If empty or \code{NULL}, recovery is not performed. For more details about recovery, see \autoref{sec:recovery}. \end{description} \subsection[Testing]{Testing} \begin{description} \defparameter{-{}-only-test}{only-test}{}% Run the configurations contained in the file provided as argument on the test instances. See \autoref{sec:testing}. \defparameter{testInstancesDir}{test-instances-dir}{}% Directory where testing instances are located, either absolute or relative to the current directory. \defparameter{testInstancesFile}{test-instances-file}{}% File containing a list of test instances and, optionally, additional parameters for them. \defparameter{testNbElites}{test-num-elites}{1}% Number of elite configurations returned by irace that will be tested if test instances are provided. For more information about the testing, see \autoref{sec:testing}. \defparameter{testIterationElites}{test-iteration-elites}{0}% Enable/disable testing the elite configurations found at each iteration. \end{description} irace/vignettes/irace-scheme.pdf0000644000176200001440000005432713640446260016405 0ustar liggesusers%PDF-1.4 % 4 0 obj << /Length 39 /Filter /FlateDecode >> stream x+2T0BC]C#S]SC\.}\C|@.l( endstream endobj 3 0 obj << /Type /Page /Contents 4 0 R /Resources 2 0 R /MediaBox [0 0 380 239] /Parent 6 0 R /Group 5 0 R >> endobj 1 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./irace-scheme-simple.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 7 0 R /BBox [0 0 595 842] /Group 5 0 R /Resources << /Font << /F1 8 0 R/F2 9 0 R>> /ProcSet [ /PDF /Text ] >> /Length 4301 /Filter /FlateDecode >> stream x[ˎ% W:t  ĉ;'dd5y!o!aս31>XEQɛÿt$C:C8~q!{Hgr|C|:}qFu ͝Թ0vF/K˅;υsw΅*(^qD}O}.5ޥ;bzn1ljsG2o٬ͫ3Gݴ |? m_Um3K%di>.ӛ쎚ӛn> +tkK{ޔvr_-fn1 +odYcoMtZ((7KRo :P^\U30"^)66q6~^'N2v2˅{L_׌1߈afTΨDz8>\׌R4/#PQ! F-V'jwB%Top dy7Ob;Ur7 XX4b ZilmVnA#}$[aaS$` LK%G&%L)|ӎm9+d:XB!M5RF)(ӘH*ׄȭ`7 =o&fST,|K11P:1 6iރشa0jսlTePB*MFqүbr4||xW]'#X2؅%#v#Dyuf'D;QB}@'u%8S9l`o!;r $ewG1-e,H4)a=eƦ^ F7PX;Ɯ!'8~>֝+vs= e=MjГs(0_ NQs-V PxE*=|e!'-櫖M`4`FOFCJXN &w\p7pw>_5nlpg[ V<5\^3r `wʣyBr N7 ݱ{L}]F P*n\qmn`&@0M =Rᣖ92(ȓcȈh]KS8%#P:@p:32ox^2QԣCAdo24q'8K653`ub酉g{Κn߿Bt$t^4d+i qhVW桛1(G,.RӠ3cV܅ƗB;wwqL1{NyS;C_pRi8ə OQg G$.t_*&׽}zy3>)X9^M}bGKVDJ( N }nPwca߿~~w7A¤0 ؝`'O$c+B]㑌Se"08J둎x#QG)'ɳc:S<[1쎠7;ocNh #!iR n?hDs×ry̶/ 6=jA\oϗ$ X;OwI{iyq=_25nKSNIɽ*t7Hjf9Ӝc&𬖫%Y`']^2b씆C*yP|l-Kr Bpc#ǖrz ))t P߹R(`ڕ⹿RH9V'b༿z'+!^ t0hjPgӢ A=.K6\`쨊uq3.+㞊 D#i+gM6E7f"4iu.vx]!XEf'5̮I8͠Шe7LMF3RdB{Ǻ Qsnj8꧔Wa`*#4vzZӸ48S&1b[ F T@AǺȭEV+' F#q&>҈3:>#^zj!i<ϋX0=xDltF_Ŋ!((r<" +((R^n=hFy46`HCX ciup݁:}X7k#/H2/e_5(~&+W1 Ò ̪00',̀yA(;М0l),1H͆ 0*t+wL8&V'ذwϠ&Q&Ԝ8*SrρA YFN&d`uӝ6hG}AAS8qݴd f,>nH?136΄ACYZ:șj"F"*,*jܘ8{z3 L ;rTT{G{diFG< xE>6n!7({;R;8$j2Nް`{ FxmX2Jh0 &*0w[h "iㆥ> $#Vcn&l0Qatm083dX׊ESޑ2n2d̢M t( } >8-ae0%t\.IiSK!ARqf\6ZѩcVSǚ-"]?%P#TQQv8s 5tnQ./JK-eSMQG;Gɜinjٟ9.=r_Fl4(!&Q\(ͅDIc]Po|Z)K)q(tTP8=n0Jjt;id\Дb;2O^&YL[+.dVlʈoA)%Ju#07q (QȠp/P (A&ٕ.K+F;< V:Y댫mxGPi.F+rj;,Qdy`Dệ>/r=Gj{o&܈&D?Z0-Z7ODSr\p*IɎ?)Tsl)F` endstream endobj 7 0 obj << /Creator /Producer /CreationDate (D:20160720164806+01'00') >> endobj 8 0 obj << /Type /Font /Subtype /TrueType /BaseFont /BAAAAA+LiberationSans /FirstChar 0 /LastChar 18 /Widths [ 365 610 333 556 222 556 556 500 277 500 556 666 833 556 722 556 277 556 722] /FontDescriptor 10 0 R /ToUnicode 11 0 R >> endobj 9 0 obj << /Type /Font /Subtype /TrueType /BaseFont /CAAAAA+LiberationSans-Italic /FirstChar 0 /LastChar 17 /Widths [ 365 500 556 222 500 277 722 222 277 556 542 277 333 556 556 556 333 333] /FontDescriptor 12 0 R /ToUnicode 13 0 R >> endobj 10 0 obj << /Type /FontDescriptor /FontName /BAAAAA+LiberationSans /Flags 4 /FontBBox [ -203 -303 1049 910] /ItalicAngle 0 /Ascent 905 /Descent -211 /CapHeight 910 /StemV 80 /FontFile2 14 0 R >> endobj 11 0 obj << /Length 305 /Filter /FlateDecode >> stream x]n0~ CMBH$f8tQiCj8޾OJ=Y,١96քՏ{ciyWc̹6*ܭWCX<ۏUŲb > endobj 13 0 obj << /Length 302 /Filter /FlateDecode >> stream x]Mk0 >v; !Ц-8!~mC#}%eusl ٫U jx 2smTG鯆α,zy 04˒eo6?^x`ًGƸ9*}: %ײѱl¼?)5j\w \1_MdQ*TKqN\$&q./ )FQy:$>PԿ&}|$Dgʟ"KA^#. { ƻqxi=cntJ7nL endstream endobj 14 0 obj << /Length 16 0 R /Filter /FlateDecode /Length1 11508 >> stream xzkxS׵#%ɖ:?u,ǀe6l [,$$D^GـcAqG ߍN-h+P#VC;Ip } 9h/c_Eo( L$or[<3Qǧ;Z7nhq7_FWvjQ#VWUVZ|Yͺ ?/לmJ3uڄ^Vq,C0*7;9[f.R@B 9onEL]RmwHJIiQjTD7 uf2ㅶLc"=}r^PMi%7#w;:?Cp:74I-[e@Ü*3[߱ [lwOP XK{POY$,2馜Nr-pwa66l^c||+@< ҩ0?gfBC> shukd\ Um-7l`/ ԙӒys_D]w¸ܴq*7G"QF4ULelvzaÊV$ѵ<@oܼZ rW"jMk@2[3eZ$|`cgTZLjtL{B%J(B5mDg^SBP)4 $B-MRhYJC10AcGelk0Q1f9ּU)xiɞq]t$n}\TjdV}Vjf˦T/2@4P2Gg*곘l}^>suP@V^K.<~+\q#y<Γ?Yg;o~z="ZD HdgrNt q^JKԩP;l-mevr+)g1^l_ $K"064f &aMejjUMfKQͼqzxVV祲QHFRǻb Xx[e9%+Xo*fU혡!zېĕh01)%'jq-eYfWvKaJE gػ f0AYn`Z0a}bm1alXf3te̖ٖz, x5ātzClȜdC ߝlyZRjykM1 _Y 9Fk2߽˼i[?gvke֮\[X&dlYJx.` L-GBR<.cKYFR'XVG e~'yxbR5Sq}NYYSMF!ph^ܑBV}lYiR=_uNx/g?ZG0yh3?#c]yNɍq43t\gR*s:x]|iLxNrtIxeD-el}t֒aY@b*R9#Ldltv>Z@^m\3sjK\IEXr}7lin3smBP=HrY6V?&#$YD\ԃʘbm|6TS%\I c*'G98&Ch 5 rҀpsk8@ rH\]NN** xf%PJꉦ `Y)ZVpa+] rvteФ`J;ޠJZ!Pa&%OsCU[-=ai+%+{WLRO݊ esz3ZrjQS~:7fe![ |hmw)}7w3oܬDoImaVHޗ4fĊ ( hi{<ȃ oH [f&+S|u O7Ⱥ㩓c^gu.~w_pKڬ{–u;V[:ۚVec{Z,FɿִEWtؔ/߶ȱ+ڻJ* tmM{ķk+W\ x?b1+@J>Ǿ̲Ź)RHJ\| s #N ıjn, kU8G In&k4`]vljݖi3Σ\o.'ۓѴLV.'?;25_=?>tmC"]Kh2ã72XpL ZSN23L>aB"4A͘fF!Nӭ@Pk4;!T=(B-0oN2t^"Y2uq=45*,Nʔkx nD!aĿ_$9kv޷b߻S6K?StM.,]vͤ3k01>2y>A2$wXZJVfT[+ 84KQ} [>Zv[;HJ"F\̍#]W/n{vǵk ~|liok%WDVҥ[m8 g-ΊlD&ȵ~bpT ܔ\~KOͿiN [0m;~>ry߾i߾z}󁾊㎿c.W˶8Z#RըpP %/!SM!Ѹ6GbLra5DפksJsqr؅J.No0ieEK#eX:^,em|{WO8k[M;JkI's;)uN ==ߣq` {KLLR=6 dPp.]"86#'Ǎj%U 1FiS(cȜQɈ$0NWi1N3aeF@N3VÅJ #'c-+Ws QʑJJ.V@ p0z[)IqHp툒Wjj$c֮Xr8hz ØW~ya!YWy( L9 6d`.#F*A>tP'D s ~ 3c c;y3f}cP71>YĬ;ccҗ%}~RBK¤pB`ҙN2jVGl]t6=uq V㉜y$V[wgMO6^В d⠅sO5^"O{5n)iw\~ýHsG>cV_\=|?}ԥ";x7:۬2s uG]5sQ͟y6| +y `Ch31:O ob R%Ly&*"0c4@eo#\%d0wos˹*Mc\1UHBΨ 1PMv/ڍ!0Aj @0u49ȓǣ WApyQn±`]Xq( ǣ~> '16MGa(LPS, Ea-aGa/Fa5?Ga *dGa-agp,Z~( >Pm 8: EBYiJaOpy%BPUXc_7g6߰y ^!@Շ@6_ zHv-?ojk 9%h ?G(TzQ)K7`A8u{z $Oۅae?YȌ[;!F=4;Ю[ߊ2򌬘3K۔~"^ =~)޶*~e~C?@Gg?JӚ[n˾H0_xm4+㘕71ױp.4Yhb5uuU|3WO?2NX3郙+3Wgiƾ9L3J?L̴7iaQnһi5]mO|.4_cZϟO,s95 w3'gY<7F㵫1cLdyZ,333++d˯ˎx/STԥSp(tuMHiߑ#G''ؓ8816A&' |p0stCLMCrSNkKL .\f2u3,eL[Z--Dj)_Z HnL.3N|yIƜ8,Mm2m #l2i.>-ڴڀvB{E;U;vU@89|ONnXΫ74j6һ)ȨsKOt$ 3N5Px^8 QS) bp.8zo8 Y"A( @>Ci[!7Bǟ endstream endobj 15 0 obj << /Length 17 0 R /Filter /FlateDecode /Length1 11236 >> stream xyxSו=~Zz- ۲-Y-Ho [&e,ABh&BB ]%M@"C8@'o4v2[N~|{}5Igfgog9s9sKL 2EX" E&B!97!vcaJ&v|#!\!J~辡5FOeF+O KOQ*)f%̇#8ƓhQ%؊أ$!c}$Jb(yy?ODʭ'}GFbh;!ɴGAv"N#3@^N> 5}-HuF%S/=,T3EKV,a|F3~vTX%"cOo|īT#cU=6߷?.[{yEҺ-K{{e]{斮Zrl|Wспe ׹RD:10U8*XfZ2=}k=_tqM _@ <(-kM&;hjlX6˄ x]r ҚmUV5fk|";w.&у}Yu}?u\=SUˋd8XlBʎU6-e|ԱI@amXqO>_)y宾&|Vў jp~6uVڲKJ6?JP7њ]UK3u䖙nMK66X7;0  /Ybjq6Cφ0'&^a3W0+2]mk"րm,_'dE\Q)C|) 2pBnaW$SfvpCUNO >. AR\QON辭cu [4f5lƭݏֻpKHyAE,(0ukl5n73^4*I%+5djk9`O9,MNtzNkcͩ͋F \e&n10H.A\jтZ!x7^9^/ފr!^C|J¥pywD?Pށgq*wy^iĖ\W?7VeJl2Bl7;yIP3j#ՠ){3C!ބFQü:h՝]q:]a.)# s(bϷ,h)'zuy6#} cI#5;L^kU饭o_?߽ z Bo-K폭\m psHqJfҢd'Uh@C2\ 5͎ c<2w.~W9(6ɧzzBhJY#|yϾ~7I*~$OZ_36~" +M}#;kX,/;b0([ĆQQfxtrotL\hji(ň F"$Fbbgd<ޒ 4IT]L1|1uSt2NIeeoP_P 9OD'82.vumDt=!C[F[;G-Hv#ۀr#L"W/%»I@]//(_1c)KIȲS#n蔹_ yq Fld}wpȲ-)1Ӟ߅R`Phf_0O4F'1JcxjWsLO1Gۆel]Kʐnie24&d?F9߉/e|O{h\^C{1/ǀNѻЙowQxZ!y&CGeoԝ#8#ݩiڽ,r=/ƚd7x;"i%n^y8kp&\ H\O.'7؍7ݸ|' ץm'O]WֿE*_ֿ^vktͷ"p-cokv| }a | Տk~Vdk⭩XivbGclfe@xuf2Ͽj΂ 5Vi._qU''3$;30/|9]xl,=;gZϜ>s }*VM<pY%5nÛ@.}ov!*:<~?»>ar 85~}$`-?"a@-FKt4c#c )=Wx5N2 z&UxKE%q|!6wtr>["3c0P?vߎwA *h ~ @DP]XgA%U}[*֭-ΪqzJ;Ƃֳ̉Hv\AgBGtvFjZ ]m n,T nՆ?r;J9 /gBjkK@јx 3sevnCVP/l xV!& i7+)30 tuz> endobj 2 0 obj << /XObject << /Im1 1 0 R >> /ProcSet [ /PDF ] >> endobj 6 0 obj << /Type /Pages /Count 1 /Kids [3 0 R] >> endobj 18 0 obj << /Type /Catalog /Pages 6 0 R >> endobj 19 0 obj << /Producer (pdfTeX-1.40.16) /Creator (TeX) /CreationDate (D:20160720164946+01'00') /ModDate (D:20160720164946+01'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) kpathsea version 6.2.1) >> endobj xref 0 20 0000000000 65535 f 0000000250 00000 n 0000021747 00000 n 0000000133 00000 n 0000000015 00000 n 0000021686 00000 n 0000021812 00000 n 0000004853 00000 n 0000005023 00000 n 0000005262 00000 n 0000005504 00000 n 0000005706 00000 n 0000006084 00000 n 0000006298 00000 n 0000006673 00000 n 0000014287 00000 n 0000021644 00000 n 0000021665 00000 n 0000021869 00000 n 0000021919 00000 n trailer << /Size 20 /Root 18 0 R /Info 19 0 R /ID [ ] >> startxref 22186 %%EOF irace/vignettes/irace-package.Rnw0000644000176200001440000045602113640575054016532 0ustar liggesusers% !Rnw weave = knitr %%% DO NOT EDIT the .tex file directly since it is generated from the .Rnw %%% sources. %\VignetteEngine{knitr::knitr} %\VignetteIndexEntry{irace package: User Guide} %\VignetteDepends{knitr} %\VignetteCompiler{knitr} \synctex=1 \RequirePackage[dvipsnames]{xcolor} \documentclass[a4paper,english]{article} \usepackage[a4paper]{geometry} % It saves some pages \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage[english]{babel} \usepackage{ifthen} \newboolean{Release} \setboolean{Release}{true} \usepackage{calc} \usepackage{afterpage} \usepackage{algorithm,algorithmic} \usepackage{booktabs} \usepackage{tabularx} \usepackage{xspace} \usepackage{amsmath,amssymb} \usepackage{relsize} \usepackage{fancyvrb} \usepackage[hyphens]{url} \usepackage{hyperref} \usepackage[numbers]{natbib} \usepackage[nottoc]{tocbibind} %% For autoref \hypersetup{ colorlinks, linkcolor={red!50!black}, citecolor={blue!50!black}, urlcolor={blue!70!black} } \addto\extrasenglish{% \def\sectionautorefname{Section} \let\subsectionautorefname\sectionautorefname \let\subsubsectionautorefname\sectionautorefname } \usepackage[titletoc, title]{appendix} % Fix use with \autoref \newcommand*{\Appendixautorefname}{Appendix} \usepackage{tocloft} \setlength{\cftsubsecnumwidth}{3em}% Set length of number width in ToC for \subsection \usepackage[inline]{enumitem} \setlist[enumerate]{leftmargin=*,widest=00} \setlist[itemize]{leftmargin=1.5em} %% FIXME: listing is very limited, we should use 'minted' \usepackage{listings} \lstdefinestyle{BashInputStyle}{ language=bash,% basicstyle=\ttfamily,% numbers=none,% frame=tb,% rulecolor=\color{lightgray}, % framesep=1ex, framexleftmargin=1ex, columns=fullflexible,% backgroundcolor=\color{yellow!05},% linewidth=\linewidth,% % xleftmargin=1\linewidth,% identifierstyle=\color{darkgray},% keywordstyle=\color{darkgray},% keywordstyle={[2]\color{Cyan}},% keywordstyle={[3]\color{olive}},% stringstyle=\color{MidnightBlue},% commentstyle=\color{RedOrange},% morestring=[b]',% showstringspaces=false } \DefineVerbatimEnvironment{Code}{Verbatim}{} \DefineVerbatimEnvironment{CodeInput}{Verbatim}{fontshape=rm} \DefineVerbatimEnvironment{CodeOutput}{Verbatim}{} \newenvironment{CodeChunk}{}{} \newcommand{\IRACEHOME}[1]{\hyperlink{irace_home}{\path{$IRACE_HOME}}\path{#1}} \providecommand{\keywords}[1]{\textbf{\textit{Index terms---}} #1} % Simple font selection is not good enough. For example, |\texttt{--}| % gives `\texttt{--}', i.e., an endash in typewriter font. Hence, we % need to turn off ligatures, which currently only happens for commands % |\code| and |\samp| and the ones derived from them. Hyphenation is % another issue; it should really be turned off inside |\samp|. And % most importantly, \LaTeX{} special characters are a nightmare. E.g., % one needs |\~{}| to produce a tilde in a file name marked by |\file|. % Perhaps a few years ago, most users would have agreed that this may be % unfortunate but should not be changed to ensure consistency. But with % the advent of the WWW and the need for getting `|~|' and `|#|' into % URLs, commands which only treat the escape and grouping characters % specially have gained acceptance \makeatletter \DeclareRobustCommand\code{\bgroup\@makeother\_\@makeother\~\@makeother\$\@noligs\@codex} \def\@codex#1{\texorpdfstring% {{\normalfont\ttfamily\hyphenchar\font=-1 #1}}% {#1}\egroup} \makeatother \let\proglang=\textsf \newcommand{\pkg}[1]{{\fontseries{b}\selectfont #1}} \newcommand{\aR}{\proglang{R}\xspace} \newcommand{\MATLAB}{\proglang{MATLAB}\xspace} \newcommand{\eg}{e.g.,\xspace} \newcommand{\SoftwarePackage}{\pkg} \newcommand{\ACOTSP}{\SoftwarePackage{ACOTSP}\xspace} %% How to use this command: % Parameter with one short switch: \defparameter[short]{paramName}{long}{default} % Parameter without short switch: \defparameter{paramName}{long}{default} % Parameter without switch: \defparameter{paramName}{}{default} \newcommand{\defparameter}[4][]{% \item[\code{#2}]\hypertarget{opt:#2}{} ~~ % \ifthenelse{\equal{#3}{}}{}{% \emph{flag:} % \ifthenelse{\equal{#1}{}}{}{% \code{-#1}~~~\emph{or}~~~}% \code{-{}-#3} ~~ }% \emph{default:}~\texttt{#4} \\ } \newcommand{\parameter}[1]{\hyperlink{opt:#1}{\code{#1}}} %\usepackage{showlabels} %\showlabels{hypertarget} \newcommand{\irace}{\pkg{irace}\xspace} \newcommand{\Irace}{\pkg{Irace}\xspace} \newcommand{\race}{\pkg{race}\xspace} \newcommand{\FRACE}{\text{F-Race}\xspace} \newcommand{\IFRACE}{\text{I/F-Race}\xspace} \newcommand{\PyImp}{\pkg{PyImp}\xspace} \newcommand{\iraceversion}{\Sexpr{packageVersion("irace")}} \newcommand{\Niter}{\ensuremath{N^\text{iter}}\xspace} \newcommand{\Nparam}{\ensuremath{{N^\text{param}}}\xspace} \newcommand{\iter}{\ensuremath{j}\xspace} \newcommand{\Budget}{\ensuremath{B}\xspace} \newcommand{\Budgetj}{\ensuremath{\Budget_{\iter}}\xspace} \newcommand{\Bused}{\ensuremath{\Budget_\text{used}}\xspace} \newcommand{\Ncand}[1][]{\ensuremath{N_{#1}}\xspace} \newcommand{\Mui}{\ensuremath{\mu_{\iter}}\xspace} \newcommand{\Nmin}{\ensuremath{N^\text{min}}\xspace} \newcommand{\Nsurv}{\ensuremath{N^\text{surv}}\xspace} \newcommand{\Nelite}{\ensuremath{N^\text{elite}}\xspace} \newcommand{\Nnew}{\ensuremath{N^\text{new}}\xspace} \newcommand{\bmax}{\ensuremath{b^\text{max}}\xspace} \newcommand{\bmin}{\ensuremath{b^\text{min}}\xspace} \newcommand{\Celite}{\ensuremath{\Theta^\text{elite}}\xspace} \ifthenelse {\boolean{Release}}{% \newcommand{\MANUEL}[1]{} \newcommand{\LESLIE}[1]{} \newcommand{\THOMAS}[1]{} }{% \newcommand{\MANUEL}[1]{{\footnotesize\noindent\textbf{\color{red}[~MANUEL: #1~]}}} \newcommand{\LESLIE}[1]{\footnote{\noindent\textbf{[ LESLIE: #1 ]}}} \newcommand{\THOMAS}[1]{\footnote{\noindent\textbf{[ THOMAS: #1 ]}}} } \newcommand{\hide}[1]{} \usepackage{tcolorbox} \newcommand{\infoicon}{% \parbox[c]{0.75cm}{\includegraphics[keepaspectratio=true,width=0.75cm]{light-bulb-icon}}% \hspace{1em}} \newcommand{\warningicon}{% \parbox[c]{0.75cm}{\includegraphics[keepaspectratio=true,width=0.75cm]{Warning-icon}}% \hspace{1em}} \definecolor{LightGray}{RGB}{193,193,193} \definecolor{LightYellow}{RGB}{253,247,172} \newlength\macroiconwidth \newenvironment{xwarningbox}{% \setlength{\fboxrule}{3.0\fboxrule}% \setlength{\fboxsep}{0\fboxsep}% \begin{tcolorbox}[colback=LightYellow,colframe=LightGray,boxrule=\fboxrule,boxsep=\fboxsep]% \infoicon% \settowidth{\macroiconwidth}{\infoicon}% \begin{minipage}[c]{\columnwidth - \macroiconwidth - 2.0\fboxrule - 2.0\fboxsep} \raggedright\footnotesize % }{% \end{minipage} \end{tcolorbox} % } \begin{document} <>= library(knitr) @ \author{Manuel L\'opez-Ib\'a\~nez, Leslie P\'erez C\'aceres, J\'er\'emie Dubois-Lacoste,\\ Thomas St\"utzle and Mauro Birattari \\IRIDIA, CoDE, Universit\'e Libre de Bruxelles, Brussels, Belgium} \title{The \irace Package: User Guide} \date{Version \iraceversion, \today} %\keywords{automatic % algorithm configuration, racing, parameter tuning, \aR} \maketitle \tableofcontents %Load files needed for examples <>= library("irace") load("examples.Rdata") load("irace-acotsp.Rdata") load("log-ablation.Rdata") options(width = 70) @ \newpage %% %% %% %% General info %% %% %% \section{General information} \MANUEL{Some things could be taken from the intro of the irace paper and reformulated.} \MANUEL{It would be good to mention that not only opt algorithms can be configured with irace, we say this in the paper.} \subsection{Background} \MANUEL{I would add a paragraph defining what is irace (a bit longer than the abstract above) and references to the literature so people can find more info. The first reference should be the irace TR.} \LESLIE{Here i guess we should say why tune an algorithm is a good idea, and why using irace is a better one.} The \irace package implements an \emph{iterated racing} procedure, which is an extension of Iterated F-race (\IFRACE)~\cite{BirYuaBal2010:emaoa}. The main use of \irace is the automatic configuration of optimization and decision algorithms, that is, finding the most appropriate settings of an algorithm given a set of instances of a problem. However, it may also be useful for configuring other types of algorithms when performance depends on the used parameter settings. It builds upon the \pkg{race} package by Birattari and it is implemented in \aR. The \irace package is available from CRAN: % \begin{center} \url{https://cran.r-project.org/package=irace} \end{center} % More information about \irace is available at \url{http://iridia.ulb.ac.be/irace}. \subsection{Version} The current version of the \irace package is \iraceversion. Previous versions of the package can also be found in the \href{https://cran.r-project.org/package=irace}{CRAN website}. The algorithm underlying the current version of \irace and its motivation are described by \citet{LopDubPerStuBir2016irace}. The \textbf{adaptive capping mechanism} available from version $3.0$ is described by \citet{PerLopHooStu2017:lion}. Details of the implementation before version 2.0 can be found in a previous technical report~\cite{LopDubStu2011irace}. % \begin{xwarningbox} Versions of \irace before 2.0 are not compatible with the file formats detailed in this document. \end{xwarningbox} \subsection{License} The \irace package is Copyright \copyright{} \the\year\ and distributed under the GNU General Public License version 3.0 (\url{http://www.gnu.org/licenses/gpl-3.0.en.html}). The \irace package is free software (software libre): You can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. The \irace package is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Please be aware that the fact that this program is released as Free Software does not excuse you from scientific propriety, which obligates you to give appropriate credit! If you write a scientific paper describing research that made substantive use of this program, it is your obligation as a scientist to (a) mention the fashion in which this software was used in the Methods section; (b) mention the algorithm in the References section. The appropriate citation is: \begin{itemize}[leftmargin=3em] \item[] Manuel López-Ibáñez, Jérémie Dubois-Lacoste, Leslie Pérez Cáceres, Thomas Stützle, and Mauro Birattari. The \irace package: Iterated Racing for Automatic Algorithm Configuration. \emph{Operations Research Perspectives}, 3:43--58, 2016. doi:~\href{http://dx.doi.org/10.1016/j.orp.2016.09.002}{10.1016/j.orp.2016.09.002} \end{itemize} \section{Before starting} \MANUEL{I think this could be a bit more detailed by defining what is a parameter, a configuration, an instance, etc. but ok for now.} The \irace package provides an automatic configuration tool for tuning optimization algorithms, that is, automatically finding good configurations for the parameters values of a (target) algorithm saving the effort that normally requires manual tuning. \begin{figure}[t] \centering \includegraphics[width=0.6\textwidth]{irace-scheme} \caption{Scheme of \irace flow of information.} \label{fig:irace-scheme} \end{figure} Figure~\ref{fig:irace-scheme} gives a general scheme of how \irace works. \Irace receives as input a \emph{parameter space definition} corresponding to the parameters of the target algorithm that will be tuned, a set of \emph{instances} for which the parameters must be tuned for and a set of options for \irace that define the \emph{configuration scenario}. Then, \irace searches in the parameter search space for good performing algorithm configurations by executing the target algorithm on different instances and with different parameter configurations. A \parameter{targetRunner} must be provided to execute the target algorithm with a specific parameter configuration ($\theta$) and instance ($i$). The \parameter{targetRunner} function (or program) acts as an interface between the execution of the target algorithm and \irace: It receives the instance and configuration as arguments and must return the evaluation of the execution of the target algorithm. The following user guide contains guidelines for installing \irace, defining configuration scenarios, and using \irace to automatically configure your algorithms. %% %% %% %% Installation %% %% %% \section{Installation} \subsection{System requirements} \begin{itemize} \item \aR ($\text{version} \geq 3.2.0$) is required for running irace, but you don't need to know the \aR language to use it. \aR is freely available and you can download it from the \aR project website (\url{https://www.r-project.org}). See \autoref{sec:installation} for a quick installation guide of \aR. \item For GNU/Linux and OS X, the command-line executable \code{parallel-irace} requires GNU Bash. Individual examples may require additional software. \end{itemize} \subsection{\irace installation} \label{sec:irace install} The \irace package can be installed automatically within \aR or by manual download and installation. We advise to use the automatic installation unless particular circumstances do not allow it. The instructions to install \irace with the two mentioned methods are the following: \subsubsection[Install automatically within R]{Install automatically within \aR{}} Execute the following line in the \aR console to install the package: <>= install.packages("irace") @ Select a mirror close to your location, and test the installation in the \aR console with: <>= library("irace") q() # To exit R @ Alternatively, within the \aR graphical interface, you may use the \code{Packages and data->Package installer} menu on OS X or the \code{Packages} menu on Windows. \subsubsection{Manual download and installation} From the \irace package CRAN website (\url{https://cran.r-project.org/package=irace}), download one of the three versions available depending on your operating system: \begin{itemize} \item \code{irace_\iraceversion.tar.gz} (Unix/BSD/GNU/Linux) \item \code{irace_\iraceversion.tgz} (OS X) \item \code{irace_\iraceversion.zip} (Windows) \end{itemize} To install the package on GNU/Linux and OS X, you must execute the following command at the shell (replace \code{} with the path to the downloaded file, either \code{irace_\iraceversion.tar.gz} or \code{irace_\iraceversion.zip}): % \begin{lstlisting}[style=BashInputStyle] R CMD INSTALL \end{lstlisting} To install the package on Windows, open \aR and execute the following line on the \aR console (replace \code{} with the path to the downloaded file \code{irace_\iraceversion.zip}): %\LESLIE{Check that this actually works on internet says that this: \code{Rscript -e "install.packages('foo.zip', repos = NULL)"} also works} % <>= install.packages("", repos = NULL) @ If the previous installation instructions fail because of insufficient permissions and you do not have sufficient admin rights to install \irace system-wide, then you need to force a local installation. \subsubsection{Local installation} Let's assume you wish to install \irace on a path denoted by \code{}, which is a filesystem path for which you have sufficient rights. This directory \textbf{must} exist before attempting the installation. Moreover, you must provide to \aR the path to this library when loading the package. However, the latter can be avoided by adding the path to the system variable \code{R_LIBS} or to the \aR internal variable \code{.libPaths}, as we will see below.\footnote{% On Windows, see also \url{https://cran.r-project.org/bin/windows/base/rw-FAQ.html\#I-don_0027t-have-permission-to-write-to-the-R_002d3_002e3_002e1_005clibrary-directory}.} On GNU/Linux or OS X, execute the following commands to install the package on a local directory: \begin{lstlisting}[style=BashInputStyle] export R_LIBS_USER="" # Create R_LIBS_USER if it doesn't exist mkdir $R_LIBS_USER # Replace with the path to the downloaded file. R CMD INSTALL --library=$R_LIBS_USER # Tell R where to find R_LIBS_USER export R_LIBS=${R_LIBS_USER}:${R_LIBS} \end{lstlisting} On Windows, you can install the package on a local directory by executing the following lines in the \aR console: <>= # Replace with the path to the downloaded file. # Replace with the path used for installation. install.packages("", repos = NULL, lib = "") # Tell R where to find R_LIBS_USER. # This must be executed for every new session. .libPaths(c("", .libPaths())) @ \subsubsection{Testing the installation and invoking irace} Once \irace has been installed, load the package and test that the installation was successful by opening an \aR console and executing: <>= # Load the package library("irace") # Obtain the installation path system.file(package = "irace") @ The last command must print out the filesystem path where \irace is installed. In the remainder of this guide, the variable \code{\$IRACE_HOME} is used to denote this path. When executing any provided command that includes the \code{\$IRACE_HOME} variable do not forget to replace this variable with the installation path of \irace. On GNU/Linux or OS X, you can let the operating system know where to find \irace by defining the \code{\$IRACE_HOME} variable and adding it to the system \code{PATH}. Append the following commands to \path{~/.bash_profile}, \path{~/.bashrc} or \path{~/.profile}: % %<>= \begin{lstlisting}[style=BashInputStyle] # Replace with the irace installation path export IRACE_HOME= export PATH=${IRACE_HOME}/bin/:$PATH # Tell R where to find R_LIBS_USER # Use the following line only if local installation was forced export R_LIBS=${R_LIBS_USER}:${R_LIBS} \end{lstlisting} %@ Then, open a new terminal and launch \irace as follows: %<>= \begin{lstlisting}[style=BashInputStyle] irace --help \end{lstlisting} %@ On Windows, you need to add both \aR and the installation path of \irace to the environment variable \code{PATH}. To edit the \code{PATH}, search for ``Environment variables'' in the control panel, edit \code{PATH} and add a string similar to \path{C:\R_PATH\bin;C:\IRACE_HOME\bin\x64\} where \code{R_PATH} is the installation path of \aR and \code{IRACE_HOME} is the installation path of \irace. If \irace was installed locally, you also need to edit the environment variable \code{R_LIBS} to add \code{R_LIBS_USER}. Then, open a new terminal (run program \code{cmd.exe}) and launch \irace as: % %<>= \begin{lstlisting}[style=BashInputStyle] irace.exe --help \end{lstlisting} %@ Alternatively, you may directly invoke \irace from within the \aR console by executing: <>= library("irace") irace.cmdline("--help") @ \section{Running irace}\label{sec:execution} Before performing the tuning of your algorithm, it is necessary to define a tuning scenario that will give \irace all the necessary information to optimize the parameters of the algorithm. The tuning scenario is composed of the following elements: \begin{enumerate} \item Target algorithm parameter description (see \autoref{sec:target parameters}). \item Target algorithm runner (see \autoref{sec:runner}). \item Training instances list (see \autoref{sec:training}) \item \irace options (see \autoref{sec:irace options}). \item \textit{Optional:} Initial configurations (see \autoref{sec:initial}). \item \textit{Optional:} Forbidden configurations (see \autoref{sec:forbidden}). \item \textit{Optional:} Target algorithm evaluator (see \autoref{sec:evaluator}). \end{enumerate} These scenario elements can be provided as plain text files or as \aR objects. This user guide provides examples of both types, but we advise the use of plain text files, which we consider the simpler option. For a step-by-step guide to create the scenario elements for your target algorithm continue to \autoref{sec:step}. For an example execution of \irace using the \ACOTSP scenario go to \autoref{sec:example}. \subsection{Step-by-step setup guide}\label{sec:step} This section provides a guide to setup a basic execution of \irace. The template files provided in the package (\IRACEHOME{/templates}) will be used as basis for creating your new scenario. Please follow carefully the indications provided in each step and in the template files used; if you have doubts check the the sections that describe each option in detail. \begin{enumerate}[leftmargin=*] \item Create a directory (\eg~\path{~/tuning/}) for the scenario setup. This directory will contain all the files that describe the scenario. On GNU/Linux or OS X, you can do this as follows: %<>= \begin{lstlisting}[style=BashInputStyle] mkdir ~/tuning cd ~/tuning \end{lstlisting} %@ \item Copy all the template files from the \IRACEHOME{/templates/} directory to the scenario directory. %<>= \begin{lstlisting}[style=BashInputStyle] # $IRACE_HOME is the installation directory of irace. cp $IRACE_HOME/templates/*.tmpl ~/tuning/ \end{lstlisting} %@ % Remember that \IRACEHOME{} is the path to the installation % directory of \irace. It can be obtained in the \aR console with: % % <>= % library("irace") % system.file(package = "irace") % @ \item For each template in your tuning directory, remove the \code{.tmpl} suffix, and modify them following the next steps. \item Define the target algorithm parameters to be tuned by following the instructions in \code{parameters.txt}. Available parameter types and other guidelines can be found in \autoref{sec:target parameters}. \item \textit{Optional}: Define the initial parameter configuration(s) of your algorithm, which allows you to provide good starting configurations (if you know some) for the tuning. Follow the instructions in \code{configurations.txt} and set \parameter{configurationsFile}\code{="configurations.txt"} in \code{scenario.txt}. More information in \autoref{sec:initial}. If you do not need to define initial configurations remove this file from the directory. \item \textit{Optional}: Define forbidden parameter value combinations, that is, configurations that \irace must not consider in the tuning. Follow the instructions in \code{forbidden.txt} and update \code{scenario.txt} with \parameter{forbiddenFile} \code{=} \code{"forbidden.txt"}. More information about forbidden configurations in \autoref{sec:forbidden}. If you do not need to define forbidden configurations remove this file from the directory. \item Place the instances you would like to use for the tuning of your algorithm in the folder \path{~/tuning/Instances/}. In addition, you can create a file (\eg~\code{instances-list.txt}) that specifies which instances from that directory should be run and which instance-specific parameters to use. To use such an instance file, set the appropriate option in \code{scenario.txt}, e.g., \parameter{trainInstancesFile} \code{= "instances-list.txt"}. See \autoref{sec:training} for guidelines. \item Uncomment and assign in \code{scenario.txt} only the options for which you need a value different from the default. %% MANUEL: I'm not sure what this means. % The names of the template files match the default names of the scenario % options. Some common parameters that you might want to adjust are: \begin{description} \item[\parameter{execDir}] (\code{--exec-dir}): the directory in which \irace will execute the target algorithm; the default value is the current directory. %\item[\parameter{logFile}] (\code{--log-file}): a file the name of the results \aR data file that produces \irace. \item[\parameter{maxExperiments}] (\code{--max-experiments}): the maximum number of executions of the target algorithm that \irace will perform. \item[\parameter{maxTime}] (\code{--max-time}): maximum total execution time in seconds for the executions of \code{targetRunner}. In this case, \code{targetRunner} must return two values: cost and time. Note that you must provide either \parameter{maxTime} or \parameter{maxExperiments}. \end{description} For setting the tuning budget see \autoref{sec:budget}. For more information on \irace options and their default values, see \autoref{sec:irace options}. \item Modify the \code{target-runner} script to run your algorithm. This script must execute your algorithm with the parameters and instance specified by \irace and return the evaluation of the execution and \textit{optionally} the execution time (\code{cost [time]}). When the \parameter{maxTime} option is used, returning \code{time} is mandatory. The \code{target-runner} template is written in \proglang{GNU Bash} scripting language, which can be executed easily in GNU/Linux and OS X systems. However, you may use any other programming language. As an example, we provide a \proglang{Python} example in the directory \IRACEHOME{/examples/python}. % Follow these instructions to adjust the given \code{target-runner} template to your algorithm: \begin{enumerate} \item Set the \code{EXE} variable with the path to the executable of the target algorithm. \item Set the \code{FIXED_PARAMS} if you need extra arguments in the execution line of your algorithm. An example could be the time that your algorithm is required to run (\code{FIXED_PARAMS}\hspace{0pt}\code{=}\hspace{0pt}\code{"--time 60"}) or the number of evaluations required (\code{FIXED_PARAMS}\hspace{0pt}\code{=}\hspace{0pt}\code{"--evaluations 10000"}). \item The line provided in the template executes the executable described in the \code{EXE} variable. % \begin{center} \code{\$EXE \$\{FIXED_PARAMS\} -i \$\{INSTANCE\} --seed \$\{SEED\} \$\{CONFIG_PARAMS\}} \end{center} % You must change this line according to the way your algorithm is executed. In this example, the algorithm receives the instance to solve with the flag \code{-i} and the seed of the random number generator with the flag \code{--seed}. The variable \code{CONFIG_PARAMS} adds to the command line the parameters that \irace has given for the execution. You must set the command line execution as needed. For example, the instance might not need a flag and might need to be the first argument: \begin{center} \code{\$EXE \$\{INSTANCE\} \$\{FIXED_PARAMS\} --seed \$\{SEED\} \$\{CONFIG_PARAMS\}} \end{center} The output of your algorithm is saved to the file defined in the \code{\$STDOUT} variable, and error output is saved in the file given by \code{\$STDERR}. The line: \begin{center} \code{if [ -s "\${STDOUT}" ]; then} \end{center} checks if the file containing the output of your algorithm is not empty. The example provided in the template assumes that your algorithm prints in the last output line the best result found (only a number). The line: \begin{center} \code{COST=\$(cat \$\{STDOUT\} | grep -e '\^{}[[:space:]]*[+-]\textbackslash{}?[0-9]' | cut -f1)} \end{center} parses the output of your algorithm to obtain the result from the last line. The \code{target-runner} script must return \textbf{only} one number. In the template example, the result is returned with \code{echo "\$COST"} (assuming \parameter{maxExperiments} is used) and the used files are deleted. \begin{xwarningbox} The \code{target-runner} script must be executable. \end{xwarningbox} You can test the target runner from the \aR console by checking the scenario as explained earlier in \autoref{sec:execution}. If you have problems related to the \code{target-runner} script when executing \irace, see \autoref{sec:check list} for a check list to help diagnose common problems. For more information about the \parameter{targetRunner}, please see \autoref{sec:runner}, \end{enumerate} \item \textit{Optional}: Modify the \code{target-evaluator} file. This is rarely needed and the \code{target-runner} template does not use it. \autoref{sec:evaluator} explains when a \parameter{targetEvaluator} is needed and how to define it. \item The \irace executable provides an option (\parameter{-{}-check}) to check that the scenario is correctly defined. We recommend to perform a check every time you create a new scenario. When performing the check, \irace will verify that the scenario and parameter definitions are correct and will test the execution of the target algorithm. To check your scenario execute the following commands: \begin{itemize} \item From the command-line (on Windows, execute \code{irace.bat}): %<>= \begin{lstlisting}[style=BashInputStyle] # $IRACE_HOME is the installation directory of irace. $IRACE_HOME/bin/irace --scenario scenario.txt --check \end{lstlisting} %@ \item Or from the \aR console: <>= library("irace") scenario <- readScenario(filename = "scenario.txt", scenario = defaultScenario()) checkIraceScenario(scenario = scenario) @ \end{itemize} \item Once all the scenario elements are prepared you can execute \irace, either using the command-line wrappers provided by the package or directly from the \aR console: \begin{itemize} \item{% \textbf{From the command-line console}, call the command (on Windows, you should execute \code{irace.exe}): \begin{lstlisting}[style=BashInputStyle] cd ~/tuning/ # $IRACE_HOME is the installation directory of irace # By default, irace reads scenario.txt, you can specify a different file # with --scenario. $IRACE_HOME/bin/irace \end{lstlisting} For this example we assume that the needed scenario files have been set properly in the \code{scenario.txt} file using the options described in \autoref{sec:irace options}. Most \irace options can be specified in the command line or directly in the \code{scenario.txt} file. } \item{ \textbf{From the \aR console}, evaluate: <>= library("irace") # Go to the directory containing the scenario files setwd("~/tuning") scenario <- readScenario(filename = "scenario.txt", scenario = defaultScenario()) irace.main(scenario = scenario) @ } \end{itemize} This will perform one run of \irace. See the output of \code{irace --help} in the command-line or \code{irace.usage()} in \aR for quick information on additional \irace parameters. For more information about \irace options, see \autoref{sec:irace options}. \end{enumerate} \begin{xwarningbox} Command-line options override the same options specified in the \code{scenario.txt} file. \end{xwarningbox} \subsection{Setup example for ACOTSP}\label{sec:example} The \ACOTSP tuning example can be found in the package installation at \IRACEHOME{/examples/acotsp}. % Additionally, a number of example scenarios can be found in the \code{examples} folder. More examples of tuning scenarios can be found in the Algorithm Configuration Library (AClib, \url{http://www.aclib.net/}). In this section, we describe how to execute the \ACOTSP scenario. If you wish to start setting up your own scenario, continue to the next section. For this example, we assume a GNU/Linux system but making the necessary changes in the commands and \parameter{targetRunner}, it can be executed in any system that has a \proglang{C} compiler. %\MANUEL{I don't think this is true, since the target-runner script needs Bash} To execute this scenario follow these steps: \begin{enumerate} \item Create a directory for the tuning (\eg~\path{~/tuning/}) and copy the example scenario files located in the \code{examples} folder to the created directory: %<>= \begin{lstlisting}[style=BashInputStyle] mkdir ~/tuning cd ~/tuning # $IRACE_HOME is the installation directory of irace. cp $IRACE_HOME/examples/acotsp/* ~/tuning/ \end{lstlisting} %@ \item Download the training instances from \url{http://iridia.ulb.ac.be/irace/} to the \path{~/tuning/} directory. \item Create the instance directory (\eg~\path{~/tuning/Instances}) and decompress the instance files on it. %<>= \begin{lstlisting}[style=BashInputStyle] mkdir ~/tuning/Instances/ cd ~/tuning/ tar -xvf tsp-instances-training.tar.bz2 Instances/ \end{lstlisting} %@ \item Download the \ACOTSP software from \url{http://www.aco-metaheuristic.org/aco-code/} to the \path{~/tuning/} directory and compile it. %<>= \begin{lstlisting}[style=BashInputStyle] cd ~/tuning/ tar -xvf ACOTSP-1.03.tgz cd ~/tuning/ACOTSP-1.03 make \end{lstlisting} %@ \item Create a directory for the executable and copy it: %<>= \begin{lstlisting}[style=BashInputStyle] mkdir ~/bin/ cp ~/tuning/ACOTSP-1.03/acotsp ~/bin/ \end{lstlisting} %@ \item Create a directory for executing the experiments and execute \irace: %<>= \begin{lstlisting}[style=BashInputStyle] mkdir ~/tuning/acotsp-arena/ cd ~/tuning/ # $IRACE_HOME is the installation directory of irace. $IRACE_HOME/bin/irace \end{lstlisting} %@ \item Or you can also execute \irace from the \aR console using: <>= library("irace") setwd("~/tuning/") irace.cmdline() @ \end{enumerate} %% %% %% %% Scenario settings %% %% %% \section{Defining a configuration scenario}\label{sec:scenario} \subsection{Target algorithm parameters} \label{sec:target parameters} The parameters of the target algorithm are defined by a parameter file as described in \autoref{sec:parameters file}. Optionally, when executing \irace from the \aR console, the parameters can be specified directly as an \aR object (see \autoref{sec:parameters object}). For defining your parameters follow the guidelines provided in the following sections. \subsubsection{Parameter types} Each target parameter has an associated type that defines its domain and the way \irace handles them internally. Understanding the nature of the domains of the target parameters is important to select appropriate types. The four basic types supported by \irace are the following: \begin{itemize} \item \textit{Real} parameters are numerical parameters that can take floating-point values within a given range. The range is specified as an interval `\code{(,)}'. This interval is closed, that is, the parameter value may eventually be one of the bounds. The possible values are rounded to a number of \emph{decimal places} specified by option \parameter{digits}. For example, given the default number of digits of $4$, the values $0.12345$ and $0.12341$ are both rounded to $0.1234$. % However, the values $0.00001$ and $0.00005$ remain the same. Selected real-valued parameters can be optionally sampled on a logarithmic scale (base $e$). \item \textit{Integer} parameters are numerical parameters that can take only integer values within the given range. Their range is specified as the range of real parameters and they can also be optionally sampled on a logarithmic scale (base $e$). \item \textit{Categorical} parameters are defined by a set of possible values specified as `\code{(,} \code{...,} \code{)}'. The values are quoted or unquoted character strings. Empty strings and strings containing commas or spaces must be quoted. \item \emph{Ordinal} parameters are defined by an \emph{ordered} set of possible values in the same format as for categorical parameters. They are handled internally as integer parameters, where the integers correspond to the indexes of the values. \end{itemize} \subsubsection{Parameter domains} For each target parameter, an interval or a set of values must be defined according to its type, as described above. There is no limit for the size of the set or the length of the interval, but keep in mind that larger domains could increase the difficulty of the tuning task. Choose always values that you consider relevant for the tuning. In case of doubt, we recommend to choose larger intervals, as occasionally best parameter settings may be not intuitive a priori. All intervals are considered as closed intervals. It is possible to define parameters that will have always the same value. Such ``\emph{fixed}'' parameters will not be tuned but their values are used when executing the target algorithm and they are affected by constraints defined on them. All fixed parameters must be defined as categorical parameters and have a domain of one element. \subsubsection{Conditional parameters} Conditional parameters are active only when others have certain values. These dependencies define a hierarchical relation between parameters. For example, the target algorithm may have a parameter \code{localsearch} that takes values \code{(sa, ts)} and another parameter \code{ts-length} that only needs to be set if the first parameter takes precisely the value \code{ts}. Thus, parameter \code{ts-length} is conditional on \code{localsearch == "ts"}. \subsubsection{Parameter file format}\label{sec:parameters file} For simplicity, the description of the parameters space is given as a table. Each line of the table defines a configurable parameter % \begin{center} \code{\

bOV]U>EoC`,CWx!cj}=A4(5'EVf"2(9=\|n=LDH.YJ(H%W۰F%dI)N[-M3A}N,I5jZv,OͥP",ܦI _\¤y.r>^Έ^Sd9{U{`H`=P}Vο މ+%8Lئ#J0tN)OR(%I_'.몭ⵟ6 67g1K+z+_*>\Xeʖ_ CAdTf[߶uG~sDզN_4<˪F7nl&_He~^oendstream endobj 1045 0 obj << /Filter /FlateDecode /Length 3196 >> stream xZK1@NV 7 F[8ÈMWá/N=A1tNwWw=ZoVe!W%KǛ77+WAB%|+i*LXuU{{j/WWEtʭnnX\ :Y7/֪Q zc-JŋZ| > Z A,`馫0,J+SytkgVt⑥ QZ^M{wUߜb؃^IShKnMjhY j\JUz퍀hxFg8Kߴt4m^<J oo} FM qI-g Yџ8򯁔i;7?:1%54E*cdaN 舮 W4ݱPqx҈ue.Ǟt_mzWY *؂w8p(=*'^ }ݿZElL:JP)~s痂͈sAQJxٗ'׬S׏r1@ -;o&cQ#8R+cPGQ3wp, ĵE'C8`qet(4RM{)?Z::0^#X^e@00<҄HpN!m 4) e-v>x$q~8ȹX-?B+uNy3EMҏ*^rV 8^ZbC{  <0 #nKDrSz ]mN=u Mi<"a1c|(Qf1p|5 xPFь~C0#apƥwh`Pj)[Q%lJ;021PBllDO1p`}ȳQ}R1flDi8 /kDL:h 06P\Fq8Lpя; &b>LJ2i* 0`uܖLd%̠1P >IKP #`CʜlW n) жZE4vZErb.^gj.+Z*iҫQʹfԍVLfzd =I`0p|K(o `G65a̎dS/I'QPO *2#0S+K | ڙ@M~8*.3<:x_d]+ h[ `~GEfH1V^aS$l9A WG-U<^@͓m^Om\*JWb0 u_L?1!ŁnK君%M²瓼W!^Ry[_w<6 YӼv[iɷmaA;/?6EN"/Yk෣CTnBOpҍ>7v״DV  ܦS6G&Nj~ PVVPmr`^&p܌%]B_U2aWcJ#1ߓV}Mx*I~Zp!nȒ"5fc%r^$@IDʊqS4NlzN I;[gJ咖p2)јcs~K > ,9Сq)#!C9{~> R4Bqi[O]tVY/_LCU`c ;4* 7IM_,qC[%0=' w]]0[]j#$5NJ36$q-q< MTFMNGâ!9?Xl,%H+~L\X I|}n:!f)^y8W{!G}p=Cx ]ْ[pm_@!7gU% f<3F׽Ca`\ؗe E=r%?cg%0n4U:qS$hW KLƤI9u_leuX *;|GɘWvO|fCQt!nۆ<>\\~I7kx?^=Ttr0c/5R^YH($w>d )qC4/6<ʧ:淔Vzgg[c5䷉[L2Χ~=P#(d5!( EJT˒>z˨<'|k#(qyB\dӫg3> stream xZێ6}oC"-w*ެubOE{:ˤ/q=U$%G؞1 x"UN*Ť|sPv<\Tů?Of%5nRvr"_rTU\n.~*VñYjtʺVMs(v'ƕVgb/~/LGd'=Cb1:Tp؟|t FV*VFevt\bw}j| uẅ0FNJz[mqlնYu؟m~7E x~bYli+-ՔGgnN9[7uKw%0F$8|I{zyɥ!c lmm)D˪.ɾB0 ,Z zվv0A?ݽY_[ymKB%m 7~y7 4Q3iC10cx8SFԢ4 F?Q#J Yz3j> F caN(~E-2EK( 3JsfotŦa$x.BZ,Vv~\7Z"X{ؽGrXVӿ6q@J8T1 'Jm [Έ [I/ha!ayjj'ͯޙ_!X 5(#\6)E A!2Jh'ڶI`&O0o~=^7GVRGRޮDy`ʻ8  tG]HrFuIA ET!o~ňH81vB=qYM/|>"xz"!- "k+MBbajA%!}.w>tp+CY7mhO}<S15)&wkd)xIS.-'wV\,:W#j`au͹4[~ӀI^:0mR|MΌ,0ж94隳‚8C5!K(QL)2y>c^?:IT)?QI(P]dȡjD)sM$֔>T0.ҩJPۡԨ*b%lfȌVa@6`D;pweuRKq9 !u&rS{k˄$ANlA}OT[5V'垒x|0U&7:x~ܥ笔f5|hl:JvGӾ45#{t z,=+lă,ɒcv8¨1V[3>=T/=@f>b@d>ۄG65q߉x` 7X_5c| Xu7 q79n @n(v1@Jk#H*2lYi)ss F$y3%veaRͲMCP BFy!'‘J<;Ia,1/t:W֙8gCez0~5Xq"VT%t*tX0`rS|**NAl]RFe?_Lsot&x,FzhoM|vrsȮ@ܺ(#*r"3x]e|SƉxoRMJx[4ԃܪ#xB=etJ o*!+GuwUȳgICpҀ(׃Bi06(n0+ ɏmw+k3Mo>킗M/0ܚ0_Muf=endstream endobj 1047 0 obj << /Filter /FlateDecode /Length 4214 >> stream xZK)9g-O qA mvFvw-w٩II=0-,Ū*MYMxv|#y펛?a78{{ÃƇB6. x[)˲(sV2Ί?pK{7oosEY:QuW1SӢn+a4vUQ*/|50wM+{E6te `č*+Arf,LoE}v|`A9/j뺯CZj#uB*|lo+A/Fa($:i+_YѽdJ+ƸhnTyë>/eթ3ěPc imJ:4qEbHv}f{4IG;੢]tm*Zk`~Qy*VotȤט Sʃ 'rCa U >tvX~\aɞ4q%v5^ ?yјlхtlmFP5=dOt/RO`AH-̇3 8Z Mr%88X`Gۯ9*p]p,`NCz0O$ a*K-*7r'Pq`%(oáނ7LlHEo ^I({+x3:sҼx7# &hLJjGސƽ҇";-W± "oDRLp" BxF%aˆiݢAIPM (P87FΔ 1*y ũ/==kZ>d=ǦdApH3Y9oҳ+d7h.Vs`D,v3IJ΂ 4̬3AMězhwTd(rP3 s4[-Ӌ&زqTDh7j-<-i_8,*YxK0)1NA>0@=+fjkQ0 cÿ`a*yjS?^bFzz݁X24A=tGQ Pi<h+Hȧnɂ.zf Z F/d ugRܷhB u9EG,qO ZD?Q<*fg:s XC@$~Xˠ i% X'֋Hlx'D.>SQP`iv=YY8o2 ==]f㯀j B)0C74{&>ۋ)%Y`;`dMsBExhYOHKsHB8BH%O`ö`x!VFKS<5KJJquH| QVz#V&][`(ljSH鄁J$0a3K03DJU(վ-0j3皎_y%1)lGhF#̂vP,aQ8r9<ݞTpyiJ @xV$Y,SK:L<׀N2Z0Km:0K@?~~cXS[+ϵ0~NKX?B*QHܠ5ͤ@ {RZX2{;Cdr$3!h*ݦm :XtZ~&\ eut5X~_,$yۜ8wDSgpm 2@ɧJ(ZEm5q^iJHn%.Kc]TJ}:̩57xaχM%o|^a:.*3)1dxSti..haw5K"!QOXS/mO=!-D O.uvDbťȀi,?nw7#:c4M iEܜtM YMf0jhy1̢b1h724;ߔ5a DJq<+[#@J Ekd >IXZoǔ:;\O?} >^b- z9n`^fX|qX D%N#L9J)E+t?" o(l6/Ѹؒb@C}]#be6^gr(7} čwdb_d c5iի_<`]rYg2}C3;˲0FXcpS ȲWkzA` lTH΁A'ġbMA6JjK3zϞiLhir! KBoDhA5R^\}H/лƾ_Uʉг: #Y+(0̓ݕO8bHxSCZ$zw}:K-&sd>劓͎'%aXf &fsnNk=4fv3U>IOSH#}np3x7O$3ž?؉''Æ,XeZ[d ED9K~ۙ<,ҜWHLSU@4oN6)]}Yapڦ]bM9u˛1GhUH6~'%@P]]Ut^<Hh|\)nI^DR. 1Iz5:ߘ~y_Mendstream endobj 1048 0 obj << /Filter /FlateDecode /Length 4259 >> stream xZ[sFv~oÔ^Iq h픓T*&mU!A(|t7.CPlnAїssNR_xN(// 폛!:߸Yi7W[)\*\eixܗ]y^>J>yEҜeWe?UlZ!>ݩ \ [T= fx53xܦ\Ň//vmʥ֩"loh 3бx* |;z-u!.D&"aCknX\ĩmi('v ',2A(`*\ 펄KiD_ G! `(q?OUe\e:}W}.&>W enL"\M>j0(/\HK,i^V+t*_1ˑ.zMW wC}jˆ^jH6-֤x쌄 DwHп,\`'iܹ\:VovpʯhR- *Hf.$ak[^\ۂR@U9lF$4A MJ$o6€~$0s"./Gs)ߗ{BxH[iɚuR~ٲc!? }5M)hDr{j6lBHޞ\MUᣒmCweT[ZNo[|}0&6u|ͬH7=*ߎhX>!V6Hdx>þ 6tH4'T1ɧɒoVeSe;6DJt#]f'h0x~^L p6EPkaBplMB%ǪcCWwaPXޥq!Da3Xޤk$EHTA^d[~”V΃HE᳼kDY<-%kEY ,:#cZ JHKyPɧiq_=k5=I›O5t%5p`.~uEsf~D(!Sl 6fR~=~*c%ItOi%m /u>gPkG.Oxߝ|;y}^ũ5k`=S+x$39'?{&MRWC[?D1*|Ÿn$IlE\aMkOp[<Ϛ]ct:<\Iy;Sv8)Qnw`uH>WIDC(6gX1˙;_r |QηPufOnǡ}u f0)!.G阘U!uva#T /-  )thF.sz@ քDq=Z@MpV bJNq-K]ހ=;F4SlH55D@`sI^*TKbvcw\d(N91!d ee*CbȢ>6`M@ -5(\A3 %f>_i)-mIm~;3{oJәc#O>9q̀+sp5+2ILJJ'rh@>lM#v?=iEj#9C f37 QȕgErrGP°KjaS$y$zDna&Oȭ=>z.(F,.8hlu{ 5V?'YJ@fڹT.0zPyWRqxjgBYd*އci0(boiZD"5MD"4w'JaYLTB}}i:Vh;'$s#P"j؇ s ;8\ҒƁ\~ssNQ0ędεg榅c4?;u&$@<"Gp~Fʛ,_T=q@L3p M/S;*T$⌢B=tNs+;xvI`ߗl@)uM$hȥ̜yMxr*ăs,ٱyF<̌#fK~"ڬ~6LK84|M;F< quoKm :HH/Os&-u-c|~1 p)!y<gĘWc6PBDO&["3?=tHrBru*RRzBP$؃`Ya4Z)7K !TDYh[b*OOQhu ^2HIbDmtrO:PG`CuEfq4P_yo:iQGCkB律tpS'b埗W>>qP^GyB;踙WTbd? R+(fRgMe}Ť7La7 c.VQ͌4Ogה U;W `jvmЦЗ {GYw3r tpľJ'GiVɽD,Q9f67|cgss־:oK_He״pk6?9 @7+x$ \4y {Bh2[ڠљ}2xוZͧYWfBv%ZA2Gpq+YW6xTPA?p`)eZ, z$7Nd?S _s.}7U._NHxê<ر/;uLoFZI萅TErmF^S4Go$@_ `&HAq*`'':'xui<{J)^A }~-iDtO?>oX@ է+5t9 D+5t *#z 7jo_ɡa89Gu2_맒5<⽶pĕ2Z]e`Aڞa0Qft. ijZE| g8r=Af0m#tu<Nx 13s7j9䯘*V_ >*πdFl[l*v;k.y@h6Z*7Ŧ.n=rG):H= 'R[8md߲HK""|owr,^d)0"KuUy _NRnΗ9-FCSk-f|ni84ˆD!c6AeWf28~ az@j>{l~̆ D&"Lt_`"*^,yH`N]5n=\bKkU g~C)D! H>!QkF%>,|[3Ď.=0]bqs3W'_. b" 4?=k|J ^<N( H' W `Yv͉W|MXGEg%f[>10J, vr<?}\Ws$#" 6v*9_kT!p%3pm?CZ Mv۝O,%lW`\C>VۦuWoñyc;J0 k>pv<"endstream endobj 1049 0 obj << /Filter /FlateDecode /Length 2310 >> stream xYn7xA6RmH ]8$H0ⱒ,F^P-E-M>VH5"Т">}"YAj[.ME:{ۮȼ<ӅgB8s҂qAq6ٟ/\Hyh&YDxU<-.w:/ V]-x|^pvUar:'{yvykHcfkv{Nk-uz|B,.},a0B'}XIc^^肜jqig]/'k'7꒝ry Ύc0C`=ws^nIBx@ O9!%4lg'Y镗r)ʎni#NVaacۓ)?N(`'Q'/īo˦ٵז27KNN'{y}n\WwUs͒WB_%+~9<唃ɢr[Wmٮn?Βj#L$Ӯ٥lv?UUs-}vQ"AR7da;فX??˫M56OȊFX(L=PBdʊX'GgeUZ2A8Jyazmj&\ zdKdB`spz:Jq/iCPV=Ȧ&Yz;&m:zSMueYUwIa׻&)4Z Z}^7l[M7Yzj]բ| aLCp-e R vHaskO YZzB !Ec_i EZZVm>.p.L$U2rO k~Avy'9s;voV|yʲP1+GP>T}Ӡ]Q Ѿ! /ph-/;CXgmfc̨245#j3ȱ*_T\dbi LD nhsTL WyV n5-^9"-J`zT]DR'AK(P:6-=w?oNi=-gCM{fC1k]xbabTCuj!T.8F?VO$LCY>mCI \ sJ}SͪɃSvK2}KT-l!Cu!7uWYZQtӆKUC=?:,7$0Їv'^HR(l!r07'O( tLV:e>wj>vImv\VT4fyjFȘ6!xZhMݸzj\хF>j%`fDD6$~h]6jWѲaemV&x·wniO 28  HNfg9|a< *-qQt?7K+JfH-Mn x?/x{ >5Rk^ DLIe^8b1Py(‰IGZDtԲ<زLuqpcRC_NtQ(OcK&cjȁ  $0Sv8A bH .~aNӴd h*̯E98 Zn8$Nt|*1R$23('Q4$-Jc8 H`5P9S)Kg#Twh`:݆/-YEq/"%xV>txkPg&n/rnKRg3C:| X@sf=9aYf@ F"M4EtȵvRP>9ЁAHUƣm,dabg=&=ܕ]Z&Zv顥DGȾJ_ *w*}x l94.PwWǏi}7S:chVs 0nƬC:Ka_o zendstream endobj 1050 0 obj << /Filter /FlateDecode /Length 2620 >> stream xY]۸}ocP`bnQ h ӧdfƻ4d_s/IIxЦa$|\\/W/Jmw*ϼue^V,rmtg[lfZy2]~m %i">$v_qzqUJϔWj]_q%vms;uհo+)3_Xzuwe-ɼsBn~J\ ojvٔ7ias_7eWa)CLthꝨwmIf!:uA@~::)0{Ӧ" qs0mꪾ؞Bgtg,K# NYggIg)pdQB`ěQ!oϞ_6[- RD}{/,Ev,$"'HEZٿpX |kǤvu5ktăj8*̎qN)(̧L+R۫)x 27/Qxն4t֎)E1CaR/ă:f]PǬ+],d畖lҊ&j[Y}hpU ;>P6qAT <Ε@JKF n2lғa2 JR)jOq zgCI lYܟW?x+x h2@dWTBA`f˱V5KYd\PuwӧpzQƝ s?Fft(\eªwS)}R%MQ4=5M-ѦJUEf-+qa`F*-#:séM{^bOX⣋EꊷPmSS}+Q%K%.T怑1W.E6D G ~ac*Ӧ@I{ڮ2,47wӾMkY5Rc A ;6=&%XG ##-K%ˡn7Yφ`q!6v t2n` 4%uV)<'NJRpPA-Exl IZ?>grP} -c}:֙+풲_X (5( ZϜd֊@pxIp7\4T48[_y* ;?Edyr h^K \R7q2;MMsf*Y[iXcc2ZԐll^m;J/-~҉2deʠ%~RD.+dx- P S]A%)1/t$&C{A&萌.Q.Ver6-{VeE{t .jю_s]0C@=C{ocė# 2phCmmZh[;˄H>ic7PK&ZMڛ;7_6 0&I`$IM1,| Ztm (QH*N0,-,PPAy74g.&Y'\ܹ@ VjOc./*&-oB~it9ektMcUK$LvJ: &~Yux< Z| /-gISܥ7V`9h~ňSoCRtGU2)N %%a>eM׋nG}+M\Y$FM<)sf('ynay3V!>u%:ϤO×`0}˒:/qm^ࡂ>,)2mz{{0y^ Pej tGF=:×㥸Fǫr@9QCz3CylZ/Yb 8Z0&(ΐx=#o ˫%>T@ L?u dP)?E&יvMm&jH7ϫgWendstream endobj 1051 0 obj << /Filter /FlateDecode /Length 4848 >> stream x[[:r~?4vDN.dpr؇"tkfe,uis| 0-J,U_UVM-V oqi`3[U7J7nJKikV SyJ)pPxw#hU=p kKVvupL R,Xnqۡ?o揷7uÄ>PhDZ+cg+Xh}FBF5&+z_[-f+X)KF\i](ƌ TR"HM-uWf8~8ml#u6q{5'|u!{ l~{ik0O>K})4| B,껊E~o4$mv<cw N3I$iOQ)Y±nc_Gpp 7"|WW)!Zkz>7Z9ue~MA*b`Hvch\ dq TO$}~+_;Gnvx!~Ҙ\Qz#v\D"NWO~KS=xkҗb8U_Vn(',aF*R;wá?Whւ~dHk mBTbsM5o߬_7JX逜HCh@0 j{:z -IGmGPJM/13\MA#$`/av3/pPA>,Sڐ׸۸!OqWސCt,G-Pd(>9oS|ڴ\^$ZL9{_i8WbؤcG:\XRJ|>dY ,z,a5 @|Ra 5g4)&(c+[x5}GWMcD O) ϰ l+)(l $ *rы lQq\9}'H39=X٘ğ jaNt#<,?@B2$H4ma@)tcm&v,|G4-m>È)g%,7]^\0.}r "!ix`SJi0saIؘr!R.Ô w.k x d8ϘX},~b|^;{WIeA0t`X($QX=8uQ1 uh.(*r'a=T9Dä9!ͦĈZ# oMƳ~菐}\{^_PbW׈Q10tGxEmNîƄU3ǗNh^͆YBs߿YGihieg@#s0'ϕ]hsQUF8٦2Yo(M-_tү]aH1$4,|B\ `u ^DF4AEy5idBi$#<&9=(|P+00Vv44qqd<\C,<74!CB6Iz^ a.Ҝ'őB|ic, !䲵0LgKy2$803BBPD,eK9DB>{ߏ] aL  D.xF,I.Ğ"@aBLu߷ы~JY@i^BPȋZp%_bjm5bNDgF/5c! MzpFf~b>i)V9["+uIlm,U nZRo įUbM fa7=/_/ ׮QAZ9E`憡=_mH-uV ܀v/5}n,ﻯi8]+H܊F l|m𱌆hGJ@gQAq2ĺՆzaufL!:&`pK0kya4EyIUs;ӣHp2_Ot%i>=pm;@+rf1!sKl:$!(Ei}EB$3c?4BMQ̘t0YZ{`C* B(tla9#GpW\ Hyohg֑AݣY ЌλXskOv]je՟;fu>֪42eJ[鯹u zwsK.Em99MIvVpwGhu+DW: uK~ſOy5Ȧ}*2}м̿ ]Yo b mM *ܥr:e?aە|D< m"r4&!F"zeg/~t?a9N>.t8vmrל X[f oth  ~7k<6bDj7-sxy? $9y[/^ś'('WqJLrXnw\KS?}/Ru8,{> stream x[K7rɾnPH!˒c=:kfǨ];3(TI#$_~+_|ΥY  NՋz+h" k-W3_8_ /ʺr/v/rŹ짥WU] e]J8,6!}~V8l}n0Ŗ`Xr*eF3vqW]ݶ0U͡Ǻ7}wWyᎄ.뢮w5ePQKܺJ{\T tM۶˫|b Ne +y)+`mޱv=i4Śؾ[@q+#+aOA;@c M7gMnI,I v@p5}[Q+n@/VdgF.6vlJq RkTfR -oa%* Igݤo r6@ 3NO7Pi`Hl4OU̓ӒUcqNB_I}a9І*q'AzhS;FCkf]svZW³61 P4cIt8֢vЕp엶u;5 zTBIW~{Zqhۤ2"lpصSa )ߐR-OhTBhphBd*Xw0[ fl64 v©ȣ]8H"#~`JddEeS@s6dx,2\GTuUkHԚ66̕XQh9uo ^Mpz;|/cB[_AK詿1eV{+Ÿ0_nvw)FH aY>`Lw10_MY#]K~4bl/Sl^Rr> 9įΙ`nZRc[+ZPG*վ UGDHJI>"inA8\v(S۲* J8?t?dBmWU٤2GI52T^WLZ^mV*l  @"`jp74AppT+2aNiu0T U#tSo n<X ҺNиs1rrqs@l?tt?a|UBF "JkMn-Jj৽ k>V% J%[(ؤ]k@eNaTKt>"&.s}' y֡`Zu7Zp&t07CeQg3l*Q  7xM# Rg S*gXt>ԋ,P _d&Rk'K3M~]@:A&ꀨFf =V.H|F(y\wJ Hwc )ע9 MbK:a×Ygg.*t?Dր zB3%E.1&'Y๛pT> d;3ɨj6DjD̙ XKm#.Y 0ꞹ!8粿nc س%b)@L>@XR n,eNa q̶E 2Jr$}OJ&M%S}|6N 8H"7/׼pYT`()7d42IT`*>#0;)0| %iA>>kX ,cĂI) --M[s`W5fФT >FMȪ e"SN-LFbHe[# FGO;Ix/&Vˡ}#n?{5R0KKA~,APc1d5 #[S~[~ >I8S?Kk)SJea{srgWٟx}v:,$sp4"Egd(c,]+ Nt71 un!>9YRnr7 v[!* w=Y};fz,Ճy7|2x$iJԚFkuMv4x8ȧ~zN S:+&f31{|R+ϛ!iy|:S[þ]([__c&{`nnٗ[FttqZ **qSpm" M>']]ۇ #jM; 8[}b}@3E:m@J߂~Xð2]@x_Y@1Fʝޢ a D^&BM6QvmUpg xF[&=`&}Ͼa1 ` K{H(!U1||&=ϒj*X#?{݄pC])u*( bxr_Ϧ?O%, [$dhӛ dB壘=kgы(Ԗ$%D ?FkXRtwmxM6g]*ԩH(* <"a%;Ҵm oS0]K^ہGP01w]#t'pT ?AS HGOoTH.ɩ2m%턄]OEJ|ĝP-^R\G1d|l_+Q&R9{v Z,ȷp5kSIъsH|2=n㉇!*O-p$MgygRp4: I^s5b-N33N}gv0H@6Ix+Lğ{%!`|U5b6g/l pxӌMu}:GjBI:ffTU$+j{CC\{O'HZdT%>PKp) r9(ȶW/b^IVѲ4 nnoO ix2S6>$ncy0eOIӾk x0 f1-+uMwӍW.]Jp;J q |%=j!mē3Lf[Jǻw,PAħ~O91=`h:lpr_@D[n;O:WI+x%!5]? 'Hfʱ+F@+!t_>U@gO=V ?g!"%yR*P`pʡٺ[Pv6GYZU9wA8 1R̓g)>;1JJX<>`*JGnV  -`0&Q10TVT>O;5Z=i|׾(=^r[h\}Ҋ|9G_ r7(L^pI៸@NJJ=><^,^G"_\ *lG:׭P._IHHQA,` xF;5yb/|/ yl0%F-˙{MՎ|" ypendstream endobj 1053 0 obj << /Filter /FlateDecode /Length 5109 >> stream x\nHr}/l?,C2/d6cax=2 *JEo]$/+KԶ$aUbUpBUX_}xl?+ڬdߊU䲑reTM=\N"/2ۜkYE!M6qGE*wN=^q2k߯o}ΓFٴ7Ѝc-[^?\7u[UK$Tc>!LO&+p^5MؒkAluʉ{Pىz糩ޓZθN$"צ\7%biB 1ߟ~<3TCz4]TJjn*aNC[ۆOP\5qQgaxm/RBJ\ J"PZCsدq`¸ο oXsjnMwl{BdX\ɉ FJQ)+-uZPln زɶO#_UYY֗# ~ dQ8d6V,#B0fKڭfB4cYX8UPuY%VeC\ (A_H)7#4+-&+8^PlIA:\Et_ɵc y"x8}vW HS2}Ulc d! ysNJpލXuԜڗk\s}@ΡR ;,o|O+lєPEM1N ӀP2GW( P%otסg-2c)m˜mg\G>Ǐvì U1/a >Zf45Ec̞U6$Qdm =x:`ƌ@ד0T$7f)gm =@Gc^a%6›`O Vb,_hCkQ+g/OP kRX%)m,i@>E=UIB#H,8!H*^#&7"%$pTܞ۴f$≥Lv$d̓ڢLX{~MOCDAS%i*+ ;p-$vB˸1#]<\JRs2;.Vkܳh16EBZTdկKE$ps/R3I}{L;3J߇Q՗\ IW7@y.*gVVX!N{.pOn?cD,b lކUUҲK/I`(f+$τu[[V9x︄驚\iS £~RߎD|{혗x6> !/UGHv>ۓ#24ٞ}ǔN!te}'#WoǼ+̋mo9l):Gdwнkۣee9wwp.e_>.o<}F4Yp:m, JT㽶IZSU`ᖒkyHp d!{~X+g*X,vҶIE1Şƣq 82܄˥ M@% ~mڱ {{:O v|e MfJzfmFPLUi[SjOQ]*iqYsX\r>ôS9:8U~8]V/-N} NOJB(8+BF~M$1ߘA8,Z*UyN̴ :E&My{M ߆]A8+` ک- KS!&/gv@R<vϜT ve 2N3TfX?3/>Ǩy w‘>TGco) -1LU?ۍ1lvfASw[_LZ&&%c,iMRVٙ7Ho`y= m EQ @O+XFYDz6#Xrjx&Hє MQyf]W)v\O4]O\8yɇ;E4eXxW:m=gݘ::""̵s{''ގyɍgL@h4eRɥ6~%9GO$ Y&/g, `Jhe:gܼ/*ó:ӧ&mTkT|hoGC)+~UfVе+ܐ,EL+AhցR]u>B^єyUtwY6X'@T %Fyi]z-.*'B6˵˼y}6?/=]A9۷P<:?e]ӱ)wm@@Q.&x@> ͮ}ph5La[RDd h%b+oOq]a6-\sBBǂl~ýX,d3:XV&>V1*58&zStHUf۞u-D|Swp{*6n:Kkǵ&e3}hIH㟻 sbQ$Ȟ}IK7CJ1KSMk>,b@kT"/L ']A*QXWHW1'DJ(@J7:Keլo(_8)k(`[QFgGp=ܙLHҦBkIqJqo-~:BŕފڰE\i瓏^#_NcyKXaUf 9;qhJ.Fi v iHZ|4@tgNghM0qi% R\UmgTS?Ғ۞~FBWp>oPw:uOM‰kP;Bi[d|A yt0Q%u M<5%*rLMN] G :XMˇ,stT9ΐ\Ew|͊J9W_U L8)JIwlǕ CPzaG"2uTF5DǶZQ\,uCǔ Z`0;xؘ=Xt8ȘUmos8IUFV/ϕ.w'H;d%HZ8kp,o8pXe0ֽ$K\wOm+a؀/[]*znn3Nz&7M8n>C.& {߳}3xw){ PQZ &$t׍cECu<)վ,XEL.P8N9cQ,r*"/|rvH ]/- AV&*\ׄ^e_I 3 !3(A|x6Q#3* o ):? }>'`&|v :9%sO cOġe|*+x4#LkصTP7>4x \P}ya e?(/=cpJtB`sz8tpjrZsRΏ"SX^s[aj%qrZVX;e~J ..)7$PtΞO!G%=W8,X{UܐmB{}ž:3_6^OxH|Pѝ ^,(8ݕI"u+hijclo3j<Þi*/E~',;vnV*od?\줱l}B!QF_6ۢkc[Z} y[STZ1)endstream endobj 1054 0 obj << /Filter /FlateDecode /Length 3489 >> stream xZێ}_ 4 ޭ b8 ,-"+=.᚜?glR\],}۩SiS|S__]fs3\.8=KxEH7l./XVe\]oqΫl6H+-a=wxxI^1msܾŷ_򮄉pS7ȭ- 7XWVxs ҬBz٬W@%9V?}"ѱo@<͕v~٩kfYVe HkIvm&.,=&[ wi%RmvAd:}uɥ͹pΡKK8\ Ia*C81 /JEwZZh@l%lƑ(xR6?K:ŗcU45] 3sMV9v4Joz@XoKx]پA{lFhV]ⶃr 'pj0 rj$-1+BRh%̓s[ܡ~0Fe pC?7hP@tpWEaB̂Gڱn4ܳCpl#MRӮc>7E1nҴdmOAv@37D{(b}:;jRѦZ/JWMhrRo;702T(]`C)(>e;6$҆4 xwÐF|*33 FÅaKCwVlEdDhD۟Gиޚ__D&lTtR<`-4=q!iïEؤ* \ ϚԐUbE[ad*4ؓp018B+7myJw2@@'$ LnLHOۭaׅq6=̧Ӆuһߚ%@, tuz~\i |=O.T]uzU ,c]*ܾo1puMM>I4=$`0b8%J32V ֗6={8]R*ܔ*^zZ6n#k|9,M{|"¤W-AլJ*cD#{}s]瘒Bb,\ *ˤWy'' E"+T}j+:ƻ!% A` v+D@@Q DM vU q dt ,Dz m:F%|wqۤc IqCv12ANِQ mebҒh-8?4ӼL`|d 6*bC .V\BX69?6cZ(^QR4$&d. ʡ^a_3i_-Zut-ë^3ٙ zo]1b'ۛ[*wMsl|Pg !T88ݧf9&?+ 4cho*4": OyaHmU/sQwgX̡>1pJoC.›{Xc,8Ԭ:,j"&r޴TRRQ{B/W`{E b9t7OCe%d^3ESr>OUKDt b2˦YYG?PLج0c$5nXIEjhv *jjDBh@/Mvd) F ŽnZjt$oʶ^t A!kku DQH ս aO9F9%\XUkqˋO?A|ᳵy\z*H-yJϗb_; D$rh%0Oa]n |dA') |{B*l1"JPKb}UCs{acN.e;0ٜV-4+®ʹT6t4 ||իWG+FRIç^ \p҈S]e?L{[{= R|yDRjC'#n!ьq2[ y_M$_.*s*Rڮb YA8jE,W <<( !}b+ C[sP/BحL^$cÏNjYvx5x3!"^5jnwM2B -/`I'`g]i|O kn\3Cec*=U@\p"[D#e2~\!@&NI6>?u!җ%A)AnV,Bm(:iT.uXZ99vٕ ω"`,k%'=mieA' ʉ(m?P}U NXIs:a1UkVFV .IgZ,8ɓrO)GXv?O CfL< S}}pʯ@@3pAE>-h͉Ӯ؎kD q8Tw\|xy_W;>oEJi:g[;0S~K9.ʅ" T7V~0gja7c: lJ=I;UMsJ%7]]> stream x[K8r_t[b/\floxލ"v#f6,U %֐R[//J۳ݎ: D"VUVퟔWO]zNVcWMԺ^?X MWTeh?7ReUY667v<cdݞm'=TSF~n/|r*iBS<7C]ݱNk|)bZ?73 :k*^FlVeu0@˛QL-ҾG:ui+E;uiXdڡUrK[tq \ h).+cͩB]SOB)[k`UmBp6Ʈ*JʫP6CW+li\6g@S=.>":dSԮ4u4; mFy}P46.p=n-L0EdX F} |2ʔ[{e 2f4swl ʆf!`i`ֶT>|N*|U1>ϧ~<–4 op"mp;@?gZm 18k?yڷ8.vc'MѢ{*P+dĮvx"a][83,AM6T]Wj&)c Pqtx!RƐ5ܒDE`MX7U]5M : \Nt+ʖ>xW ([fቻ fTe@tJI]z_7|Y(1X%, l2ƗނJʺzpK]-.t&&}:.ūC7ōШ/g4@8=ʔZ %XFfa2%ͩ?&gJP#@= H ˟ޭ#u(cm1>(͍z˼kxtUh/ B }&M^?`+WڰY|v(|ՠbԵϮ;0džP(O44xF-;qXxCǡINC;#=CZwCF2oIַm3f;ydPՀōH2N/im7fP,% xm5E؀EsMqYXIeKTVbC]v5H@V BD SU"Ҡ^}{@| K-V*hE˻̊4E8RPTBSy0z*ۻ3iޥeYм C`6%.-F ]~f\܂Sۥ&`{&@i[ Udt&@~-(@]ZspCQS%@Q%A* SKm\Xš+愔;Aٷ(# گ˙ܒ6&Ҡ h~>/R>vy. %XraEL0E/sO)✯r@j:ZC(=iEZpgM9k@q2Cȡ=ClI[<>PZZ.1gFY(%iYAh$@n[ !G!4kIm(qY P %bLfESL)$1&C6:AT\x"^],#& 7.tC(Md|8ui\cB'`R_UEdRaᣆ8em0Bw'C`)v<~tXR5Yv؞e\bCJ| %/+=7yE)8Vΰob؎$ۗbkTvehwЯ_묾%N#F%(W6(S{|Fq~Sh{Yk26e(> uPt|+%z&'qj'rx@)1y5Z:ȏ,} ~e"ӼL/S|S|@J'u\!M.vlи|2_]mMV 0`ĕ,w4Q iނA+ifoA :nԆi0ךm;pFi-vmfeBa*E :Ӏе?Dyb: {D?4` AW#PYo^*u5$]U`PIm=l,'*% 32vGUjo- }ȅOGhAu1wCT8+Aw|߬VR8G{h*hVU9*`7D5p=.&Nlĵ|UedW CЮM Z8X@_GSs+4щ)9! |q:uxإe|);uKmJaJBAh}/*Sruk  L(32֚Br2O|`Oay+^6(EQ]*òyx&Ѓݘ v3N8^I!pyD J ws'C\Sr jN{*;U<ǹ+}@]Yp6H5t:=Ͽ}4qH "燲팆( @ZW!F>C@з]O-޵mؽ!.}u(X.X'䩺j3G'bk Yc#+6y\FQX[lv)-@[V,_ZWӍYFC=ʙr ȹ> ?Dاl|#j@ЁxYH@ϷSN;9@5m{:v?fMkx~ӭ %>8bjXϋX8gbc0t@kװ9|{VK 4ID'5{2"5"ߢT K8*鬯ag:Mʋ Xԉx̢\aIM̄Sh&9 >"7rQqp2b4n ~Y8>fBC T;h#)^/X eK>#Ё Ba'\/Wfm::f =dtfO^ Сs9v_^]V@Ve]_S7N!żd>66.b/Br  ]H^ҥXz!՞7,dd6jVM.|pC.l|yMA7w\GzXU@-鬐8|= tkS8FQF-95䑂Lz5Wvn8哦~Cz9NfA8FLrY4WX\&1 ^iP rp|Yy؃M $h<4kW|+p,ABS.Rv!/A wcg"(AcPqоb ͹V_!N`" ZW,xk ݿ2 Ĭt]A?<^RrxCqfI l"j`*Çje;91/ ױ 6HJ ^j(E)G O&iӮx$2#ѽd1Gw!-5Xon4Cw n#Ol0uMAYEؗ/䈈r,3/>θJ}kۋ5B*}Qy5@^?e$MH[R<.3q 8Ic}|9Ǚ xΕot1 Tn<D4$:2radP8Ų4ӹxH 9"ŦA!Eg:Aes|磑40(jY{iuUߘtCG><-6a{×U,{|~Oo򐴰{#rx*D3ޘK*WrHo|wT|r/3uS!SLG0 \e˼Y:/chp0k m7nQh^D@LJ ɯZسt7BPs~},:[M.%Ŀ{HQ2O7®S( %a)Dm:Zqs$b~D;vL> stream xZKq_Іnf9i *?$Z:BwS"kI֌fg+ VWw9LD_f]U]?Pv2U qv;~W|]ZʝSUzxd۽We.q_CQCUVʺ"tN6+ +[csV7rQeUZ=`%!|Y [ z7wJ] VƒE*uC/ҩR\-s;Ncs=)nVRhSpJ3ǁ2T)"ħ(.S8[3_ eWRSs e41}ӴEjQ)Sq ]C0[m02IhBlF;HF+GƬK),nQТ=wżdڵ*|l(-(Z]:/[sQ6<.; _O/}.Rd~1JS&d8 #!0~;M ,C plDUZ2!1X Wi 3|'uB9qHu1 tPB@Kl,ұamVȠ} DZuB~tB], *2C~`͙(qSs9O F5^2Mƅ$k3'(!EiOKK5 Xk_89\v\›1ת(|68-FG?ų` : DziH6xb*>t^Y9Ĝ~& `% φ2l1_8L%t nێB߾ 4 、ct ,ړu"h%y}@@^WQ˞0Yu9Syl8.nA@0OQi,œ۟#f?n1BzY sM: *xZ͜'`tERtZ6PKŽMC#%Il^Pm_4 k9S)$ TFR+SwĻ8/rfsػn=Ɠ {Јq<#IyAf&cķK;7O]6ζH?Cd}z cXglX,1P@EdTrͰARqo;i[=y  F1WÜtd)p8͆4ǃfH["=ҥ1\NnպKɉQJ\!20>Mt9}-0O˧KBG2j'Ͽ+"4ܵ&2fFS5P38T6'RQLX?FXБ%f3T#%67oNj߈G5 -$λy8"$:kEq>SMT5 U4B3* K i]tz.ݑGT :$ 1uLD8CH- {>vFQfȲ %Z*xUwYrL+i)/${DՕZEUU/n5) QDh"";C<,^pX. 0S_zӏRCR+m滒چxo1:f^K͍l.`7.~!Io#iTvKY5ڸl6W̚ 7cdN!yƇKKl*2tK -gni3mٶ=hs\Gۋ8Im4w t3HzTcȷuX|HLxsH^bb&i b]myFXڙ̒ OR1fʪykF$f Sf| sgoTJB,?ЏۛMS9p2&=KM͒(՛!ݣ2k6 2Ap. %Y wI{^bi-[”67,9z~sQ̡,ĥM|sΫG/D0ssik|Xayg*JOu+_5.Ey:nk/ 6v[06%wX71疕F*_;P;[HgFU>M*}M= U tCih}5]^|OLL%}BG瞖0aF+)F$d4]gZ윑26cZ٤Dq H8@5n;t Uцc1c/O#༐&eM;!78*CRM^7? ¼ۮ29Geh'%uՎjH,X~'",bfxFהr>7k8p 4 HTdA1v,$M|;\u$8'#Ym&vHfN:eS/h-@֑%*:J;D.l: ĉc?,9dUc]]Po^0D欩a5ںf81'SsϤPm F8Һt([&Z_0(ΩG>|]l¦9X6q:jN/(!5ܣ)aJ_<}{ E.uJh|8R_z- Ci:~7|+z2=V4g7X+M k%2'piLԔ}GDho324Io /6NTTڃl۫kf?p#|쑵4$iibο WS,fr?#OekeKS0a Yd˿jG4(¯>MdՊ:t7ŐY^y1)S8:sOj[}\TK4Ne yV&.#ս/dÏ Xv1"ԨOuDK0ERC|^IW&ӎ41$>4% 9|0#zqZo曾\/*qrȾV? +Q S۵?OwL 2 ]2/jq̯R; Zp_2{}o~_ߋ/%pU]auWh苂IM5>yӿT|opY{ W̢}JHX$ɜ O~$h"m11`BKT)d<4'Hex}%\eJ`; |vy}x'Ĺm><fځ@l]u`p#7_R_&I9&Vμnm1o 8O c@Q07(YӞ09@H<-z"M?ԇg C._-ºݦ x/$h Dal[tO駻R5}3H?L^8<]xH#I_s;'q2:6;F3UDiT`t<;/-wx9endstream endobj 1057 0 obj << /Filter /FlateDecode /Length 4138 >> stream xZnFvFz/g1@U f f$ckVPݔDll<@;RK_dP:Uu9~- y[_+pS޾p#m蔻}|Bd"xy=(R*15?Ŧ{x>6#v%aACU04ϻ&Kcz3H̊:3:Rqj_u?/6MNa,mW^kw'1p'U*ִpIWi}ėy@XQ{u#28w0YFT~<\lKԔoH/x2{so؃SHAL`ltym[׾w>{Y6`+[ [8UM0+ R9X:#fxPK4tnZgE;i4:mn館-~qG:t>ڐrӃFZh~Vt`ftX1 TlJ;ڋV4-GD_&#Zб<̌}KZUePlWjCF+.  ,M&.{1\ ǯ@q/%{^||^:˧b20H ^ |A/hʗ!rzrKkC_I-DJ6j6-`D OLn+w'5B3pw]A /`C a]0AfiBP."_ZzF@"8F`켝K],# .~$pPS%駜AHlN:ʪ7n^5Kz V3|@@8:@O/ epɣB/6G`^4Oց"l rtbb%U8}wjg s)t\sCS VrmfOFp֗4<QCf( 2򺔿` 'Ʊ't:rUWМwDO:DK0AǑR,BeГ\u.y`Řk s^Yuu3?` ѩ2xa<‚G̺)i/g8\ ^SA2F9r^4!+fZpʝT 0 1@#4͸hJwaPaI*%'}k|c>20 uKORbRᰣ,ų&ҙkeYM.#]̼A9KRḯSÃɒO]JٟI< ȏD31?/-@zI>'4:Y᜷S Oº=Mwܡ#9HKq עDPB9eE2993`儇m"ȟ˔]s]Trsm.۽B?-,emѱ(b J`!^h73t$JrS)l#TB(@!} $Xu*EGi\vIg_Wm^ J/'An8f_Y>TM]Ҽ{.=zCl//:ҕ<+mW ~=דIa XWb![,ș& !uT0"[l ]@% Z@%dx酎 [lExn E`%ho:(c# &BF*h-J15.llvG2﬙rEw`%_IRuէKfo%:n?];f<"y M# Ծ5 o4'Yt2ijvi vyU\ot,ć}<}F {buyݥҪ5si)>%tz |s_ci1(la"Wʒt}?߲u H%DZ7` 2-߲pxw!KՓ 6#Iɐ;+gK{ClLؑ2,f؏ul$px#7m kBмp8<e|TaZ'pOD~{\ bX/"6 {86d||f |!QyzG0](DyfHKOBzq =Ʉ/3Ȁxԩ~=@)隂t|v2uH4eQCJb.p`Ң{#f"%}۴]I!鎍v" Nrʢi[(:}MG\("le i>W nA>K/p ܚJ:{jɒ2]kIkFZR(֛`c-=a8LD2ڦt=k5!="bw|ZQD~I yx7uғCej:m6<{8[)3A.2a&cCY~K+•vpm6ڸ8yv@{)dR2>(9}~bG]iwE%‘u<\-Rui}2cvu Y2*{eYMVAZtư' sL o ^{q=mS37."k][7|0Z,`: 1'@%G @W*CEݱ.o j']20|"'Ä Y-C<Zb܉ǥUŷ%b +܎BpG}n[DI vP ijѣMN տ(Knbh:t!ɍ_JLY0չ9]:+dNr M55!Y-mB}d<`%<8}n钿d̍NaڔZr:+o]a֥(-tTPgZH3 O-NXiA·[]6l,}-UCkIԠ|Ec& Q%-Aendstream endobj 1058 0 obj << /Filter /FlateDecode /Length 3316 >> stream xZYo~op"@8ž:8EA@s|ǐqla:w"gL٪(fwٟ̿0k )gWa1Ys̈"ͮ6o3cc\e?̋Zij+ͪ\¨`n?xջ0Q:m}A˝ڋ`sa]j "]n~{;q+k\sF"̚8gLSs 2M%ebqMu[]I3`ЫpbׂVJ} ouwUx(u+nogn)7u% ަi~IP;nvÖAYݔKc)&5O+X-N Oinq#AWMK0CAM^*\)f6l~6,D;sF6ɍ:R-SQ,WRǙlyd=dgwKX|zo~/ǰ7_xPYeSBeZd)7UW54`pmk@*&;-nN36.Ɍ9Mf[?io7FQB]8UmOQqc\g:_HlPMl!95WJQ'k#g7 n\&}" 9A׌p.`Iz]M1>3X{3G?9+d܌7*wi׼MGfJB^s1“/oCr)I< z>kUwǍv>;mi/Fuډw!WiBg۩Hi}Zfi(\V).ׇ: )i?%<#uOdFG> EwR\XBϔx?~~__?q; neWmu9VPcFxkz͔-ĖiA:]Wc2tN.Ij}߆6AwwmbS$33f*E=) ;wzMXg`+YFj7=Xҏ 蠺km>Tfj}<cXІ)" N A[tĕ'pA |Hs|>zAP؁ǨӬهp)fN@ρC BcSdW=Pe\: +nȳDs.(g b@=|UFːr1& g:Wq@N͍#}!QjA 3N%Љ `G_ ~?Si0[89- [J[ҙqyĊt wo;Y W۠9\ũPsi%iN皴h.<5FHqܳ5FKpf q23=P]x.xyH6H{@1,)F\0BhqZ;}.1=L))) 4GE28 Yb3?@3.Y6t9{3-B{OR=d'"̙8T@TKKmfGŋ^l( j'GM@srۣ8":$8nSk+I ;s/&gbBpne>^UIC䂧 b}nS<$Qq1 oV F@Nգ2Ji`/.l~ӄEJ8Xޅ ѾcO7tvn*3-` R?,YZAa4@r}j"d-rv9:q)>N[QvI *#HMնŽbW[ Q6lG`8fTirhP;4 X+S'}cOF%=+MЍ+n=@ x#b@N.sIVpU!7նzd[ c΃.vr_}D4#nFh'I<A5C*r]GvK)7MZm`leM 6j$4q.\aUmDWRAڛQ,iϧNzqn`][w HAͻjUwa!)BmUOHxH|3eOyHo?z5cv_~۷rxD6N,d2~&! Geݼmoա n›SfrA2۪aX❲F9)VÊ9a Ğ,}SOm^~OώhO*wE3*mr6GKN[XTmQM!=%s&c3fI M׀8CEPv3s:qf0Dw-S1<`z,+GMiHO,CfB6B@Mnbqؘ]n|9_nX+e3FZ?{ZJ1*I4Gۃb઱ V.CzP:#FcLG-oP˞%P=w NQ83X3$z& Hc >< Z8vL庾O]?gԔ\$B_nuu'}%"J(nğS[!!F*@f羮uоȱn=Et(5~_5K5Kgd^Q)!M T Ar?x]./W:u/> stream x[Ky~@NNnMĮrq%ŕ#q4tIԘ~|HgU^@ݘWE.VoPvnAWq[h"Ziv, ;\ z#+os (2A_`sP׹O4k*rfδRI_ZI2Wx>uuΪ0Y[Kd : `NJ/ou *rmLϏU3| \ pa:A GM8?B[I'}ki+n}V&upj%2'~Ş}|+a|?s WYW zfAg`QC}M3+&ý|[` Y\0`ȋ a_%"رnTT*"'A%Xl@T/-e-vHyF͆^Go%b xDMݣ^xCڲ%:&rj؟[45ʔ`ذ} 5U?gF&ZH' ID@K>LN=G+DaZdv>-7d{IA5M+ !?&.Cup`QM*O$a0l :mܥ&~h9+zLR#ʠ;USnܟ""):%^VF4+ GJ@U[%kaK c~+=PTj}7Zr8jc?E~  &dJqD&:Ӗ-nvHCgo8Jw<4* ;/ 0xoǥ*Nm ЗK_- I@՚@+u u ij>3 6*A.Ɔ~7Lyq wӝ5s|gG[cw) J VtcKCr(pI8Pı}^NJ$v(f'`V`IYDs'dCtpS1V8ES/EL'sXNH@r Hf:]TQjpU& v(/ %gny_\fJ%=)@~Cz/g:䷸itμ"1KPjN=u~zїI7O0b =LSlv ڋ$ `BY6L1s?6?Te/w ''[txNX&50 bbڤܣz##OҀ 8vy66a4bw0$8Xtj=9ys&yw|1l\&"!r,tD/3VPfCO?5гiCx;tKx}=l(sv2_^֠Hɣ JNKq 'IE_ETdW.0ǰu?hL(Ƚ-I?\4K^MKy'6cVRo+8!s4ybic8S ,i9IʐR?* UUfk$9vT/}DLiAXi <Ǚ7SUgrPߦ:%<,gF_kOzAWϦ- f;=Im+ t>/VCr+}_L/BDm5j1v2!%'It)& cٟ[wVԴ}lԊYe%t_^/}}ޢ`iӨYa|R@.DxSno=K20b6u>f~*!D30u]q8̍ '4Hھf{qҁ"J'.㑯ĒTֱRDŌ㧱`udbbon4@!PN5&vGt{,[8'HW8M'V?5}#&*{4ꮢɤX<΂Rv%Eɝ 0hXA?仭'j'h?_*fJ)?¢ %-)}Ǝ ވ X>1 ,)@3q NRz׀t|:Se>vlM} R rVbmPo(RTM1Όv3b8+d!@S+` nB`Q&: ylvoȁt{՞C]G>k>>z|Zgv\휕W] )xuˀϹxsXka[N<$˃W`ϕX*=ZhNn-1G!mľP:` /,aJ'w'{_؅ROoDvQLA՝ sW:aS}L*YKQx,bPBz xfQR5΂S9gXBT?~ DZ6:>q4*txWB&|6~o]CzKHGWW7:߿?/ݡMWwPAd0//SEbdt}3O+OmQDs\Kms6^zyy`bH2 覗=⪠rJF2ݮQ|_*ٟyvخG d'^tOSw_(MŶn-Odk|ɓ@,`O6XJ.276@*+. _7endstream endobj 1060 0 obj << /Filter /FlateDecode /Length 3369 >> stream xZے}7(U|0%˜L]vr[JyrpxYdsz.pJKZ`Lt>w7\};+w3ӟf^CZ,~ 1,=Xr.T=ZxYx=aVeYâ,J0m)rտ׫ѡm\% 錝_8c0כv[W-'ngO_W='d2\Hƥn>LL>XR/I]%9ٰc=&3_\*_J֮!~Vrv,BjH5jhYa/fj,DqVi!a (ЭtõvW}E*9C* J+VӨ ,JLEf#*knbЬj_sٶjR)x-.qXMYY(JLI?\'L%Tt~n@[olW)'B &|&'2t<] [fx[ Š9>DpEȳSrNv; KRf9N`Omr&~:nivXҥ՝RPh6ߥd]9HV삫jNM|:A]PhSX} ]J#׬K>QAe=i!a{O]PMB2y1VπVf4]Xm}K%w㬛O.3—v bO,gM4+rF.-k}cL>~) *qpN'0L5* ,9R*5Z0T Ц1 !,v # .Xva_y ^SSg -ӨTi^6䷼TP( 6 KS So8j2m' V暃X“뇢#@q(AzAtFvPk*$]BE zij *PxyQ I_ڳ9SΟf]s۴F2Dg !5a"|i)h'.AbDG{K26P^Z-CAǏ#"2 PiO),cbO{Cn?;ep4QTy0A_c$-@(`sdqeS"ءR$1G(I@u$YAdH'0⛒\Fu7e`QX熺G $w4u#k@%28+H#iel ̺5ݯf֞FzS{fw3J; YP V.;;4`0Y`@S2ܠ7`0_o<"@v2ހid`e9:%Y5$QTLimӁφ=)5.(2;¾֢ߺt<\+7DT!"bS:$k)^[Qzts`_r|8nŎֻj bLB-$vy\WOW-.; U">YEpTǻ=Ǿ9bPbKmPsMHFNT+$tKCnn}|-ߥ c.Jl_ Iwd@Yٮu3gְY-yyr0a5PWVK#xn|0T'}V [82tƽ&l[QO,fZqzBHyw~tL[Ͻs!MNf*%Ϲυs|hBdPIgCSoR(BS|ae˝75Fw!/XDd^Vr9!& /gKEFb7gW#Q]7ا}=yJhͩHs=+s9KDd՝7iYqL0]Wv<%"UBQIUܚhu?攌-/XrGe؊]/> stream xZK7lTJ4J.{+JI0A+qfcLIkr4-*,h7y,=f_15e]X9! u,qKñ/8s صunKv`}] wΡt)DzGd ,%ѢZhfE7 G\m``;mΉ=Y*FeNV#t OL &ِ I^wXIߨ跅EjfjLVS*:A_dh (eȳ`gDZbVF+$C 'yC[@lػ= 0zzSZx2zz&=}V̨JLo+. 9$.dUzɳtc3Յv33<<ɳ΋|x)vǏ<4]mvHT?$Bb&;Ix(*<-w&z\B9,D餡܈ Oi`,"#e _{aaFm=@t'H-~hB w!+Zyho櫾v Ia'8`?vix0͗pJ"D,TVJ"*g]r({z;pm(i=L pMt|d`eѧV,|;-"U~/>CHɾre !ԕ>) !y,}`#*#FTl^]F,`#@RS2h7 7SpEa^r|_Cti?#ntҏȴ}SN#zEϫjFdj% 迪E %2PZl#3GDI_Bhm{.C[h$G,<4tuFOxp-SSM` J^O2(Dp:ρwN!Sd.G'3ćnj3X< dDvT!Z~)Ҩ)ɲ[Cg7oϦG??# ?;M(G9.,ݿEⰌ6%f| *]n6>:2% dľ~CH=}.r b&ybť hFg E4*zzߟox99Sk+5g$ ?RQ> ~&:xsHAJ?d4jn߉511CP9} "5mb-^?[;6G%TOtawgJWg ^;钥զf]-"-B%>,M&q2_ `hjum;Rΰ~wt~NᦙNŇmQ6}/àaӥ ۇM3Xˮ=wKJ:ׇf;u"M?tec/9cc<PJ[b}L4?pendstream endobj 1062 0 obj << /Filter /FlateDecode /Length 2971 >> stream xZK78ni+dޒ.`d`@K LIW \9 lV*,W.t}o}A[T5u3Lw.r ܴeacͬ(5׎ur6-ɢ,9;5l?M%rSv]nv&,Vquޜl3m<glu32}E±fYcffwj=N3eQj0.&__Rz[j><,*rH;mŎM-fzWCb67e6͌q1eR\E:pbZq[8s%1eaePha\ *j՜vsLp)|JJRݓnX7{i>]pVPޓS{_X ǕA|ORS *$b^ R9aHJN!FUhAn%!"dd#l!ES4qw8)1#Isf|/'2RqҎȶG"xɈ-4pВis7d&ːλMsW^DLyiE! 9aʴs Jܑp?(0 L+{m)0 +ܧA@R㽶[_PCG,:1K"Ηrcc{xIʩ@ )t0\,& yBY@r"<bnd-_KQM"m& /9[W+5žElTi?N9O6̡Ð|z.a۾T(BrEq?rBF@HwiEz> l T)P>}PmV-B*.8MxFc=, jp2daD|#Ȫ4nʍt[nP6Nc9;*}Ⱦuu¬d^IB8kP}f}|t|?^&A"o *+}1,^I=̋K {wHoy#\2a=Iaս8#q \s'2\Q} _6$olnծ7nLx}OzB P޲[毇,!GJؒqjϚ3bG)Vy NuYYei6Wf.3ɨ [Ol?\8zu 9AMqd#C5K#?'Z9 *1DZ %\OWbz',eYr_;DZLbf[0]j_:ʺGY.(6 y 59Fag͋~(q=Jpbҧ3߿z`H^A?MyPpysKq%U?>6A4z.b(xSRг~hztM/o8"?T| C!ce(#\DMB ps~]u kKお[pt @FϨFC%2sp$WIF@ >^B!џ .E?hmE?e; endstream endobj 1063 0 obj << /Filter /FlateDecode /Length 3940 >> stream xZKܶ]RsĤ4\PU*ޕW+YIŖ+Eqzg1Z95t7Ir!F_ O4ۓ\٪?IgN8}H=U]9qs9 IHcz{={47"IS/2k%iH4Rel_C6=~Y,F~ZE#paMUd+fX'l(Js60cزz;tbsjUCmfYغINBW ld!e"[\/auWۧ }Q| Vo&f\&R@ DM/x ε1X O즡JZVCr-dx'iE5$)%zur_ЁܐoGҿ7E2> AuOM ?r^@vA#B1)-*ͻ ͝²uAP DJ0]$tjax#J%ذR vvPEV{ rLn'3a0AzZİ-'Ti089훣@A łq4X>R0XR=h"h(y)v9ׯ@lݺ4{.|5woTxپhh( h|Mf4U_}DxPϹSlڣy'OOtU)WB΋Qn$þgvkC`_{T 0산IjY!&-{H՚CGzNbJVK ^縕#tSUw? SYv\}pӨbYQLسHj}Q᤼b>xkfE ~X]u'Eo?~X)R xiIt  *aB~nW#n];BX.IDG"08oUS{ܱ|"!&Ќ;G4%i({b  FSg2}քbdym.3eՍ Ƥ*~2ieRN}IAྔ%Pт UƄ>ZI& j(ٓr@FFr̚L}=(#g_u绹#B/!Ytn L@\M8C:`C^]F1 {)Ɲ护M73& rhl\XK)TD1 tNE5_VG zZK+nAB:jg(?#WQ3h$`͔ƃwLf>iR<S>0>NQ=L<_]DPGv  =mCI}a9 [ֿ iSƣ='WNEˠKVw)џp1V||?_}a;^C>ly)b/Om(J87LG ǹJ#Kˋ 0h>3tfsr?HM>kG2pѮԔؗpY=oCмos 7OGڽaO_8rQMU ()vԻT#%fvp<D=C-M=)e0Mkn.Ft獬(c\EGϡӱeUJ.N L3PG㮚9.k p"ҵq:|#_?e! 倳Nx>0(%A{sJr7]W^O9gPhyliftC.# 7V|\ˊ5 VTzlDt> stream x[Ks۶7d%8cx?Nt:j7%Df+EmmY޹ۻ7Zډ C"s;Bo"iD_}qNֳֻ73Z=mtj̨, 5KN#e,&F -.]cc8Lh/(-9DPʔ@Z|$n12f %a B(r~%Ä( Pк}mO; paGľS3EDV-0d^9s&93m~'Y4&R"I^M#ыDxLܻpQ UVY׿{w' k&bnZ6AYpZ_KWIw0P|淋 0ENt7% ˔ҝTc(fE'0҄X\vzdHUoն~6FVUӴH2)JGj[\ >xZ5d5:˟}hO==ӷVgKZEoEk7@[֝N}am69uܦ56miö,K<s-NQd & 'Wc(Jif|aӓFu *ĠZXo;a=e<Sư4K),(w@Pܟv r9 3Tɿ^~,VU;!#?>1X$ʌ~A4[X!}2W$V3^6)Sв^+WEsפk5aXՌg< -vI"g.ZLKP0~ky)&8ai=A)mz=VNHB VP 軱@pjt鲝A9 !N5G.8u]8$FeLJ/{#!H&w6l6G T_νpÌz m^YM>-eUlE!ꝉqp u=?r}d4LrB5EHn:E˦2 Ц[xk)j>B!W5-űjn͠d_>]VP҆'!O?fLfǰ -Z՞ sn:pu5U9JUXl' 5BErE\xf8V`nXEC| (C/4*15*Lo' @at hWac.G0GblR۪-Do͹RfH7fZGUcHGh †k4prE)]Rxϲ`f%"s -.tWƕFn '.E^5!|r?@tOW ʄZs٧Ɯ@fY"V91mUHGXzZ뼨3UYmW/GJA,PM8#(Gjʨ`QsOEh,z_4~.K4C7i(?65[>^LAve:/ ;6 GWIl]q:<*4=ǎH%Xkb_x 5@hPʖ?k7΁  6u`uXi (_1V6gt|P|ˍpQ %; +gyJ'*Oኖq[鳬*Mo'HmPčAjX_ ޔ"ǻ@D0eÈFvMkyW;D" .צIK=Rbe@7QSdz;~r9z Qoc'L] O-Xi:[bBUFTf'ٞ z-G6Pkz> h!oB-D\47y6Ʀ\Is%<h1!nށCJToz<΄mqoC:37.=:4m\0OᜌBsJ㒤ET$i4J&l9~8C5~8տ2ç)s WF}Lendstream endobj 1065 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 10419 >> stream xzt׶cH (E !!j LleJrQ/-Kn ik Wr{J^K,iosˆΝ.f-~=**ϰPN([ska DiS^eрg@pЭsuQ=C/< 7w=Naa*ʌO.4%y_~IRLO}kF̺Y3I6ڼ ;6:'na-.ٶ4aYɫ^X?7ˍc^a9jc~?=^88 ?` ;n}P uu %764fJM;C#5 4ltNj)$h05e]], 6IQ#5,:'{Aֿ NCE|jz+1 r2sX@ *H&y<f{/z3EE@\U|U\pߦu Ujz rg\`KҸuje&N;M%Uե]&@Z@V 3R SK#+3AWxQ':~[fIO|O}3HnvxQeDmLn Z/\QEϯE\XH\_I!xG"1eyٜoN}crs 8x3P9kSg],m9q PWwe 4$Ys܎r)"@"N÷'ͽ )ԋL>;%7C F?{<[$26LO*>0zAK=xnx> A\FG{ Bo@cVy>ྠ!ղcH09y ?=qO2&UjZKש4*2qKN>ďJuSnJ~@9׺``Cw[ ܣ=WZFqh-Z-v ^l6` NU=Nů>`núK/we;?{ {[)/" mv -VHMrE+p/4(UXx'2րqAnM L38N|Bz=On~A]ؼ@RQZN gPk=H5aRG/:v9C&%̍yuܘpHXN45=xRS)qbd"рeQ@FBkw8̶>5X1WOZ~8/s~ccCq@k C?j^_zƿ*IٓAp5\̔GOB%plbJ̶f'p0!% &̮"Ge"*"=ؼ _Ȥf߽5܆EC(:bKq%ݖ22% k )6S租X}!zuuO<8gP|Ojeq?ϳBHh8 7)|ks#~QJҙ l|+:_UdB7=0gF%R$G"1>2 TN)4}Ƣ0pEm.#F*;yӸz@ t&m7˥2wQ9rg*)ՎyYFHVќY[jJ񾭋W\dLZl.Åv4k4A2r&ٶd#m,) RnX4[ppsƝq;cm ~Oi H*$=ކ#7 ,E[qaz8/$̱ozZQFKz|5=#AGYBZDr?9 ђX, cI 5Q9iRՕ}4$@dsA WGa\' &R-{X R26ANd1.c1M`ńzGk8j&$m;6j"w8nnoB8JZ$ꘓ`]hrzky$ȏJd>UE8?e‡xa ڎuma5IDԌK_OIa^_c'j$B(ۼ%|qhX0]$8Z//zQm՟`h dȴy:#2S8ӠҩT**UweÆ'h.pa'O$a8|. '8El12DDmT# 7.*I.Juwczl,i_T+*m#" ̪U7oSX KކңeGˏ B\ȫTj%+!>`釥ë씐Ap}G- ǿt!lV{| #a'ܪqxG_۔%=)^ d 637D9ͭ? W5mP=^(Dj!j*GbA5j&w=&k BvZ1fd$~?@jd&X)QI$o gG)8e|PCTdk1fuww$@UJMie:9#6+yv%)BK 2K_- ŰW` phzgmWa)(K3sA ZU]W쫡, z.^q8nN]#U4tF ~ W݇T>*`'4]tNil _MqxӿJ[ Wfܗ0.H\^WQu:oSEES^p.z.;K\%RwIڤwEެ^qh<Ԙ0 §/1v_ 1& >@9 BC2;dj7 9AFw^:)4j]tN UYy3^;: g{ ^79^WN^-x+{,3Kpi G_`%2 `ܵ/Ƃ`!^DmKOgQp G#*`J\ڸ—nކtO[TBobT'ɚ^qj:f8Ylc7DFͤb|CMmꕛGϙ%fV6',N`zlEdS~-C53S)tFTou{xom34_r7x$ rv( mDZsiyn< 5W3 i(s\'9.P.PSC9\~\q, έ9ĠN .6V~a8R$^S{T[_Ϡ:r[v~ԤL˰3R(qo$@FMu/XO FO{֨zw7zu}?Ywfa`qe}l >twW& ,RC*;1 L&FZHi-rus5hl}ߊ ]BwBv"?.)5e_; I mr<&7$=:ZiTkhJj,WQ~E;NGG8~~Sh7p&A9dS˴gKӬrZP*ZQqdf28pLHN.PN\?5WojێXTS]ض76VUٜͅxn-डq[0:ƎFCzX"iXLNrm'5RwWO'* ȩl^Q:Zy*ҷH۾0(:_a#γr,*%4aZr:w`DZ6`;ofu"= È?>)+{Of0>9p9FxK]Њ&N_0%mxю6kS ̰bZG1wwUo*mY#h4o۵qv_ +p~plu-y[#iRF,/ϋƏE|6ViBnlW50r5| 6 ZO}[?ۅn4y4R[.$Z3PL&cCFcZC;+Sd]情hMێep]GJ٘UM-9EKyt,NZosCa겸ٶgg:2!z/b#ڝʷjl;R` pY]bU6[vFQJ,ZtRꔼFNXm |z3fװ*T[Y9ˢ+2b%ML%l tD|nn"Nu.t˥_ZmBतY܆[0$+*ڒcϱd\ DF$P%|S>7Cs|B3HJ%=ϣlFj/dRU"87)۷EO!a[ Nwf;`gQH#?'ncMQ /S`uMEVTIjhQ4pF Kܛ:=۴D<ci$8ZwT4W֠ *f!Hs9FPo/\y^K?&?}U 8hUA=*#q99f>`)ǔ mD68y9YjQB{3`0t>/pBAprã'/,p*^HNg5kr&q W.kk^:1(`m)ڷUæ3R4?eh̩f+fÈ՟Aᇐ|0ڈb{Fw>Yԑ^4$ɟU]]Y^ +{C"`H5p<Eq6 < 9 IR*_ -'lowsE/ Cr)Zh Bd#$ա>Ia=} FU[QQ[YO|Y:wc_%RpUpq%d!MvMy"3/['T WQL!tUg]B*S隆,}j`23)>Wm9P9pCpÞ.M}åKWPU@iX<&FgT4XvЁ⃸夸EDO,-t0pw@؞ϡp 8WjvTF +O5,IZZ" F/Ԣp|#ȁK e3fC^Cw0̌z-9ZRPO7fm^}}O\ϯWa'+VT@`l:Xj3%m`vp&¤Нcښ qD-kh 8~Pic[Y9}ٴM E2Q-mTK*@-Uvwf/²²/!Ǵ^BcA?X ; cEnGr^49Mjޗ/[d4J&Z fO d2fm fTiѯnRO3O@?HkwIo@nB9HNK1՟|!|f{K9(3;4wog_޳lǷ,vc.T+`&5vʚ7Oz䥛;_|'~r fLܒ c^*V^0Vs3\p%"!?9q~KY\OwgށGy-{v.ւI5d erꄙOXmЀ{Ϳ>> ^9`iв) AuePՁº@NeJ87zb_9kyq:QRR{#}ā]Ou6A.o+!< P/!%ۭ;"WPxPecp \i=ߕ6χnv ؿ?5ŭ?RYɭxK`vҒk8u@ac/OvzdQfrBUVuQfֆum.|:]?g٦2JhRvv-DOn\b{ޥ^!7`ȊԲv],9˼GɊ߹޿Tyel b˖6Ah:Gۡ[~j˼ '7|q p.{8vٴ/&fp}yo)n"p`o1WnuIJNMĸRQkH7iòb&H:7=vWP\^s׀j]/aP/-R?ߎpHd?C7VD^/g1щh>ꆺi42%htv6s ,z`^=k H]|!};aWaUV*ky{ezyx!96'-p& MFhYP#s[Xe8r֩tƥ÷,F\8NaNj8 >ƠmfDCQP[]]k+ QG(>pێ˶SaGTVi)OT(rn/ MW~1p!_NtO'dYyXϨc*[)*Lߴ4\|$W+h|AF |)gC 6Գ)^({s}ziFeTF'OSEv[:&puuzݒ;lI C?q8Z(@gy*K M+BVu lح A7endstream endobj 1066 0 obj << /Filter /FlateDecode /Length 698 >> stream x]MnA=%{E(`h,Ƌ>UEoD-G=t[o~\~[O׹i}8ͷϤ6Ov.}/=߽{}|>nWah㱭rb>gζڎXəqf8%fpE:hMh4M4ݩiwMc7 qnDC Л3@ Fjk&kFjk&kFjk&kFjk:.밺N::.밺N::.밺N: :p.N:\p!`A`\p!`A`\4!QPЄDAQ@E!BؐԦ$7%qnMФDIQB%E MJ%'G=JR$?=*QZk[%o[EoZk[%o[EoZk[%o[EoZkɋ+O2|=\}i֘_}tendstream endobj 1067 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 10954 >> stream xz|(q%AE,( Wi@&{4 )7"$,]W=;,}wK ;g9yyfs=^_^ɑ#Gr)쑹/Ȋ3ۯȻ7i O}{7j~fݰ̿ )|eA3+֬Z \+oDO~ð//T1)j ^JW͐)]3k欟a 6-j٢Æ1R)gFs~pCc?Gz  Nxl˞xm(=`as\al6-babc$l( Öb/añelD{aObSWi3tl6{=Fc/`wb]kX>blDX rXOp~6b `㰾x `΄#{}<縞y. Rds/m]bq~ǯwVE?g?v7OyGr tB"+.'~f}A'̃F<3'ӬlA!1t$IWKI"]UAq)(c~9ywBkf< "5 ] NZ;7 V8]Î/yh-1'keuoLIg<]wxZǗROhƱ `ľ0?ކ=S*ZWYQϟW2zý#8 @ܴcsАd#ccDR򕛤gpDwSC>!ڄV =Iu5ׇ5Ldz mN@B⯿C!U\,)@;qcYTɀ5 [/ͷ'bs_Q/eKt$Mw8%[‘]pp:;aBF$ _AQ|E#W S):-aR1[:+"_g+xBf~$"wDr]-!m\\V ۛ͹~)g9Ĥ/z i" ޮehd]JdZTJQD}a0C1'"'p:P#+ V#0ҳ80Xt@O XԵ@ hL@ : Ms1^4&]8_d+~{Qza:Ο|xhh\, A 36= ԨTi@d,KK%lb(kL, B]Dc^xԹˊorot(^FkQ% *љ9PX i4 H){4V+w ; _qS'%C(nИ_3;MX?Lb s0S. ^czjjr[dm͎xH(*#1T^ 1lqY`c" XY%Ijs j%.2^Jt7p: ֽ:@5jT!&}Yv;-<Ͼ1>؝غK~8 >whf2o$^REH߰A=dG|ҁO$qH*U ' m;@C%CR&T%,s2}cLJ{/gS#b(![$:=p.0+XRaNM}VXdx'Cm+5bWBT)QZ r%;{f9ɐk:4NB1pf c( Mh=`[#IE^Oъ)>1~ R\*0WHs-Yƙa4GhH ngF΁"tdlj(#pq O}'c=ܺs&ރ.g_b1BM63 Kn@d8xZW"IŹ}kTh K.\Nel$eO '4Vδ]Ǧ4NC:m\MEGt@SԒ%/M$V+jy7sኺ"ΨoG9[S"y[6jTE`@⏲GXC%Rr]i^^R%\Fd1Y^/K%bF'hǜ/'/`%ۍg[i2Jh .FA)+]-G>驗7?>4c:sN] DrwŕAr @хWݢ Vwʝ(hP^# k5U @0Sk9x9e+$ / LƢ!͸QE ?">"="9Q 'r^\P\n+pҞxϬ4W}йC?3GYau$E# {+sh{b^jqʕ_HHp4R m@47Mt}wm<~,k;CPOW!l6a-RR`_bvRNP <'bdBxB#uSq 2ɰ?'鋗h~Q~\LUTS_q)='SmI;m.ڲ @ rypQؒ,%^Nln=c2fcH$j*Sl \9mY|7L@ ${%$K*Pn3nEz7"ȒD2 @$,g OjRˀ oӧ[T CZQ[ I`&`T:'s߻ x09[Ofֿ0JCOp}~҇v"dR▔YMkX0i=͋ u>3)q"W[ br2fG5{tA9pԾmC尮CwTQ)֛X};ٛ[cݶm m`7hn-sIf֢η).m;joR;0hӑdV*E>M?sm=jE0<'hBvhFdc5}?7'ת\GօI6-rVgn44eiԕ{Fd sTj)3 w۟o ?&YGv"ADb~eM[>wFKԥ:ε!\7ho!y#{;vôkk1#\*m—4Poչ]Lw}u} xNi/^e]R|>h)[$-77WZV .Bs!}ջ(S]N N$H#~Z,wh2vsPM-Fr[<}4 Ih:&Xj|XR 6Sa@/ l u#g@FV Sjg[j]&%jzBmﯧ ud^b!G8C;k >rv[2.g%2;eaw T%MǮ.Dj,- 3`io#)aoټJm=m?H $7y7R3#q!gۃ:GK5T)6Mtd-ʪ| ܎'EIQ~VLwȖ^9f-Q;FAd%N1>KiohUj*[S4}J~3!ITx inspԇޑ 'o/>²'70Ayflj7ݕvG:@)MHVL4ue+w)gح3&; kQ*Mj-m8$" ">ύ ;}ȑl@pr %\3DbML&q_#O:"/A= 4V\*2J'B#j7..ak9Ս 0=ɦƩK1c,7П-(kCrD<ɋ]G6nl̿>ˎ0\n$qAL=Yrj1H e(tHh.Vet}Mv +<~ ;N^ȱ)WjLA\( 8;}"^&A|ڨ +ۥJ(n! C ^Tw)-[@ ;<?gOny7ݾ%$7 |uL>j@Qzd0T5@#d?0j2T#:uBE?tmf~ ] HF#MJ}b:նò{F4I =1+p#̛s[.>"rZ! H5r'Nӭl J%hYxS)Wt=#8q\V' wV$'UOIHo=r2 MEJTV# oqjp^At %E%Ѿ1΍RFG|' p:Qg DIN];ٱűIS!!21T{R…|6݋pB#$:ӂrVkIzq~*Zl,NN0N)hɚؤ'dp=+Du0!Ւrꝼ<>MU\/f?eTs86Cj6%7\P"4YPuʚy5́¤S%%Ex .̵(851O1mRBx7ra\M:+[m䎪7֕9'1i kËxc8b4ejzp泄WSG3NCb v'yry̠T+K(mSVW=} } &AEHJlo1yQ. y a|Hp(P'`Zhg/B8oz$om`tt ^,EdOZS E'~qj}1 @UV xQb8N%SlA@1@MV&j#^gэ-P %|X }x"!81RUt"@v ֧͈3"޵1J}ӷT{BKx\fg6$6Hx}y*M 6U.el :z者&95EEdePTO;yuuqʸlM%0܏tX ᳇O3+o?$3ͩ ʋ?5DFw dG}i\fSMUKJ Ԑ)sWPq92mDK 9˝4oE ,%YtjJ-FbOMd;- )T>d! x n?p( ml_Z Jԏ'5`&ɢSTYT@V'WT3wwB9iYm בK~z"?(!MUԦ οwy݈/,@fƌ4 >Zh*~W@l)Wײ7!UGxeH,!.U4$bM^4.>:OM2j*~ACKRjYD@mb3@U} oآl.:P#0*ju9/Y]K K|$2XVx+ (/Zx,6f@GpJܶղojoa* W vw"u!f;jY3'ux)Љe|*H5Z'Ħ)Ay L|ؚ9_tA3J'?xp,#\uSqW/CȲ T8[\`nON&]j3F"yAl'DO=ކ}t؞%u݁¨(g+!(y*$4,ƚb8DvYr}izvn಺l$k͠w1Gޝ|ֽo~wr,A0},9oxkH{X .w~obE_0/- uI?+?OX,)^G;(_[DRߟ@p7S+ חsTf.i\(U$ae…|9ؑy3jRZUgL2pu& àiZ{~-lY$~%D V3c׉xCKȬ][-#b/RnVWlu|-˸;u23馴L Ξuq-# sʅ5h`8x9 Dku){DziZ(9BkفvDEA|=#L}ktHo["Dػ4#EәZzU\BoAjB:܄6" e N_j y$%Ƚ̘Cc=(}rMJ4\ gȡai^kiyx:fdmO/|mi72MouՇfHѤ1 &^$\Ҋ_޻~\Ef/`r8{:g⋓_8q2rfO-&٤R,[a-("^vh\KmKnp+#SWrTkY3X<菑 ؓn7ȔT;JZ֬*p#nFC3 J5XM,|;p6md7G)yRt 2hC8h܌ G%+cUʘڣ 'GHe_rL9 &H:fx٧[k!Ŷ=ێڏ;Z=VSxM7{894OA̤U"du4t99~ a/V6ZneA毧ܤ.FBW ^Fš0witi-wԜ{?Ssmkjm \Q'QyD*(eUrYۢ#ۛv 7:i=ιnsָ+%s'?fBWj,Dꀀpпo= *=|gUnRI]X|KC&1L8I](2Z~R>>;5j R`,6AU [u}Ώ[?8huYᗆs[d<}$ [҇9N|u|"7pF« =`a `9 9ݭ>9ڥpmQr`oرpɓCNTjZ^@3ۘ3b(6WIv;wslORȢ՟yו q ^7G(u| oJLTGL^Y/k 0UjYR^ +@#N>-hK-r 'K TIjAHo$t;`GU"߉`<EFTՑ*d}`S T(P&,-6t2LDuIXͪD[iUe} 8C.)M5gĎƅf ֭Z`SXPqe@x#x(|4B+.(T@bWxdKp,.`(FP" "VO,1E@b%g(<%J?(C#.e2X]- #wK{v)~] y!oH*6hÒ?A37!yH#l3pgE.އнs°endstream endobj 1068 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 8087 >> stream xuZwt_!{vٰ`]m2wlEBfƀ&.Fop^7'y9y;; n"˻i5͝3gGrSrpinCޱױyS|i ͼ&Yke˝K+*[|nG@ |CM/H[_&_(m+[,_XV|U;V1gca```JՂ5 l (xQ&KGł  ^*xM` R2A``@$`@"($YP/M0W@ ./;`7EK7}q5μm~P7m|z݌zџ~GgZpcua]wW Yes3r|LX.Tbzv l6)C CCm|:=1"H^{d z>n#6ݖ̿|Gi;eG?z N;ء*nWJe+-: Z|R~) *]BW"Ǣݱn+Y6`-CoďX`HNJN.wa@p5<yua+iZnxJWҒ&!kL%\^RR%]i/u 5w\8'˿iQ݂hc] c~4N9=.X%=&uFW5d= 䙮3 -k,nDM{\~w4< G[&'Lt{/>@bgSqb{PXXCjr|̙}x?nhrYq.ȳW~C~JE+^oբEO<pIn,,! t./6 ֤r79뿠{Eˑ+zg"uȿ<T5XfOytZ;쉸¤[qL0Q_eggMN"X=ں Ht'gkxZ!m&hWWm`6pqS1 ;|rUXIfUMYtDhf X/C4]i^qqIxBQ%(i%0._Mxl' u;L;5ʕ%j, z0[ fѨ$Nt7ǐQxjr,:3vph78Ggg"%N#&ĩw7YdL[F!ʝ g7) FJjeWvMkX| O$\lќVoӳP`p 霜^-;Lg:fIMnsFidk`R\2,+A'g;B1(9f/o+6+pt;=)p }JC %W;ĸa!yw`l07qOK,r!'-}%'.~Hr{\0^UzVkg':;=wPTB"{_Ȑ=:3FALf U09 Z(=YD 6-mL~W?fPQ bKؤ&E[%1#M6 -j2>J41 n'A$!5 c'CX*WN)1,N?A?Ius%,a?䷲z;%q B4b9]M>R1mbnad'ͦgq\a6LJfVũC?=9`=D*ŨiС0˭ Y[H+#@ Y 2ŐBPv~줁gI3WMGzc&NE_{q{ [ljcrq2[olg(KN*4MfLu+׬%, ޳3p/fDw)Kl`|:a ̀/9ȄWhPD>;xXTw Q ),[6ItVl*zU^P':vY9܇A1F!{Z \JJZ@7I[s豄{ PؕY=l P;u;;Ï_~_9k,RP[ׅڼ2"o}(5o ˞ϼM> K1KPnQN2=q/;ȸ@[E-_$Z\ݷ7T@'вn4Փ!CwMs-i{=x=c۷3j/i+~DO?>dlVJc\/GR><ʖB\ E= u`suE(:bt ;N̹*il3 TByufUp/(Rhi),G."|/ v!I#78cmʤ >WV+dj47˟n}>oia! EGMfyjߤ|i5XUm{\^~vb"E K?W5oݗtE=Td,stuںkX} \MS!|Ƿm}p_&7ϸ~ˬqJU2 d!M' UT)YVW %VMlfl皃 pl0=BG 1jN]P[*]HT&E}iH`$0;?Dglj-̲:,ΞSގtژj`MLn=yg` nӧ]{I^jRUldfg;NDDO>; Y" [ ;juX3ѯoJl/lTR޶eX7ڲakm'0KqGMYIW^]|UЀD^,\> /H+ .gLFF{ѡuh wZ!thlv!wTۨE|=eۥ @l6w^-\YnԘӵBHp$3I?N:3ݕRil/ZMVwUͺfB͇" 7X(QѬPU\+ 8 0,;3C. &+'xuU .Rrxi9 ~$ඥs4xW6 1;bJ7m%*u+4?#6#@l-X^z7Vn]g*(֍v-:,9&߽cF1/LFנ54ӭK++ 2]?pOSWrZs ݻځu] ;ן8Ͳ6.gA&~[倩{O{߬}`җzӯ 7 [~<-Bc[x6Vku1nvf; s$Hg0I: RG vE0;f<|jh-Dh|J`) hz uaK)V.b/t$w/fN nmw`c FO)|{$b)`kFI{bl瓂̚}]w=yK3dKtzk؀,>ȕHQ6~9#oMM GlOfL} ֤ukKpR48A$l,nj0j5*;v! 塩_^D<|Y<P eMnPBS ( bA Top;h}", sbkټH+'aS5!drwbJiA8w-{ BmX`1;ڙ6'F5LEDdd7:LsT/%1U˥X>F9ZIډ#0MT5/q;лW [̹'Q/l}֨q0n x&2nlil7!J1. H:B @` tNJ;pffz,% NOr0l"{gd/{/DV׊)Pi)R'ɇƋ;a jʮ}H Cc ݺݲ l7 =ъWYIծmC^X:{1ʠ4z&S"!L'&vT" ߏ|;㔛OnkFmٸe W*<8<2িE&Z('6+c+VE qO ǻb^;?*S=:WƯs ),gˑhfMi7yI݁ =M['Fs9Xݷ{#n,8TpSЍ!,EkNҢdǸ)xXxR5.e GcE3<}#8r._v> [k`MšLZeCsta$I#2nF+Oy44:M@'C7 1Sj+V]Rn61M`$-^rt]E9B!|^Mt78*FsӮZmj[\*A V8ݚMz-vM>ҔۡB _^K>?ܧGwQFe:ҤAi'CcQ:zX:Evtlo{T>Ra5wwz;Σ^ *|6?;.h"C \o'u>M/RPcg.Nb_j"Pm.,U77'8.LXsӪQXOh6c{b{}>'?؜]j_ӐEGpvFN]GCE(8-/Ϯ 7fZZ?.ٹ'(ⱦ]פ`:hh%Hx ?AG$(&S[< 8>Ȉ;259^jo]McG%l>0qkeEty 5Tb> .̈k~pm_#͟*0rXFUdy#z?MLn=׶jȧ(9 莉΃lb' [PQަ9Dtvw)ѹNm]v`^{{ 2/wgUXD-'dGW:ƭuJ6G+S&N_||G{V<1Qza/r~w t2﹄^Ǫ,o،pfq8#tǭ7UV("yǷn7RNL gv1I2Fq=W)apDM2kt1 B+kyߞGW+- =D !:bUOr_˖Aqoq~#MzSO؛;fhUa6kf&-f{/c/bp)^X뚋-95֠ ^<f7Oimc̻kU,:j]><-]8_BTWa(u>WTGo=uG$lҝwfN~bF 4,n[._jhCiz*Ob=1Im;[fyY1Oh:{ HKu{{|g芕/m_/剠(/{w:w=^=b(7P{&1:!MaXN%/&tIW'dCogT$B(:bob Lk EہTc4)W}#B JK=a9,SWo,77n6n8ȥӌ.Ȅ܃GZnX$gCe4 s qkHy+Mo~rQ1WԼkj7q2_(_M \B3qB:q ~A~+n uH#9[IVjU&#B ~C']C8iZl c݄rWtMF|~!QRKJZPJ]Bmc1&Z{#&ٙ|CD#*w/`m>(ʖt Y`x_(F4O@_c|oH@)4;LN?nϢ!V]j0;Y6ư4m;:='֯䦬DqZ-7P/f /f&p):~q =fnSʵۗ K`YI0tљe1Peޚ)'qo_työzH[4pˑi]!/-9SI]v|qfrtvtVIo4J&Qmd?}-E^hY#O)6kC;49HLo ⵃCޗ5ny9G0pIP* _hF[[[TaMfc_]Re3}Cw]ᐁ7Ʃp|ӧ^[QBMb{qiUp6uC'hЇh:J,Wyny>]s͕ҲW8bN\ljmzڰ) 096JMh7 cO"S[ E(D7, PҸڗg B:s.۔Fe]ֵ}mQ,q'I呃Ga'٨1HsO#ȓ{A\kkiZRV+2veLƯy~?|ȞkDSO):c*F3p'88=3 > stream xXKsFÔ bFrXr\) Z6Sa{ HSvt8~|| 7gk.hٜه3Nӣo=eG.qF,#aY&s-{ލ':M4_D9\]1LJd8'7.OD3V5!,Eܑ9`ǥ4+#X[gu5Fe:@eOKiXX8Zv3m]sr.Ul쮪jM3|2 I9lIDža3M8H`춅Ki1_o:x0HF%+6qZnrZ6d]qe&ٷh!Aɮ|Բ~P5ϢUdT+~QU LN&65tz>`Wf c nK#-@ŚUw-}+&Psi0 F<|Qʼ-2_'2r[jwX *jUe^ WEI]M8ȉWq,Kna&"뭄-G 4ֻ p_ѯl/}fVG& t3/IoggoB[LRtafgK2}ն'ͺNz9{to}L?J1]vjxb2>{B$2sK`<}>sWI-ۈ4? N4]'qs/^n>YU4|^5Պ< +o00,#]u޶y] VICV)ckNI!5E(p=o=(- LK Yk мeUj l^ZjJ5Pš4i3*QH!;(> > 0@^2 xqt A>x.f߼ei 5ncY| )jq\CC0o=et#ʠ*Gˌ\G ) @|,bQn}!63T歟^ЮY}70w`-8.,N!-d1$P2!WuѐrR4XXQvFP6}zޓ~*8 <@蕪#S]A4Ro] kOKdjNq_ڙ+X pMpg$33X-1xx9%3$9%I@~= ׹}`\܀8& f{=4tij꫽:C@p3D0f;,OK=RA/# |=͎#V\RaqE}du 1`0H\z n)Ke w py (. ڤ;0SP8G0{:tƫQ蘚d%} =@kr?lŦXa:}PL&A'YR\~[<$Ǔ%F(udyM`? ޝ ?Puh#I/Oxi!OD1ڛm 6Ck_kݕ:W)`S]O3"ojP&U@aL$wq+qPP^xL"#N*Thnb=UY(K@/"Ӧ`CDR.;XAdjSA~4a eӆfoNH;/lopwJe$uz<"Υdq͠i6/]+ < )Շk[yPƄ!Fv N<Ĩ;6ZRe= @K*`_-*"fIidt t@N"vY xn.+>U&_0gh#Z]RJeCRhtHYA˃;#=L)w=rId#h“:=96|D]71?:ii4qi@$zHZ@Q"@gr-X3L&) +Hg}GߟV endstream endobj 1070 0 obj << /Filter /FlateDecode /Length 4551 >> stream x[[F~￰BZج{U“8/dY /ZbwkKd[6?{STKNŁX:Uuߩ:mRlRпw|̈́4 _Oz+"Ns=c:En\/~Mɝ364y_.\:[OOƅ86?0kj_o6U={pEιNg&6CezJ"Q6 .&W }|j9!Tv?!ɥ…!Y3wm#y%aXvd qә)rgX1lȬ۪" -;+Cs<[/7u}xV} ":+w4l5R+W/_?ů<MfNaş~~QtJQ,a6wR]Vuٮ leˣa-+dT32%Tt*(ϧ3XmZWNC͔3)r.;]U2[@FC,K8 W:yD/M^h]ѵ`r8{M;ޭYnnxVݢpѬɜya@_DOi*d6+ofY^y1ß* =Yܶ].7y=#+r`w^SY5we@lTY>%+&~ OBT9 蝶$ڨoxZ '{,oeBC"mmv^7w IZ&'Ba& 3XU̫u\'AQR3<"zFsS\>G n^JlD+!$!h# ;j`,7y$I 7mU.b:\]8ob.:$YE&uG&nnŞ<8*DIdR҈ axLG||+/ BrnX"+wwlH<+ls̫΂p'QC.(V滽nfnZC2a~y;cL6G!/}gL2iHP,Q!F'p،e $ugfAj }ۙ Bi%DD h0v#n甎B%^}wV*m&v*M>Mt@B AA{ *E8t_ds G/r^c<ĠRqQl #pYC4G[/?,Z$t&| r,&kk B*,!PM_WW"JyxlcG@c}I߯Yh=s"?KOaNʫ?j'˧'RuǑFŽ. gZ6>B$''/oI$vX<'nG!(EVVPOYl7" Fqw伍Abff|~;ńo\g0_dU%?:,4?WS>4k;b,KkF^ϧInЉk)E8QڮpJfb8V=L0J|-Nj/c֌ e''ݱZoOY捇>'tP*sslPz |wvCr)2laO|OJ ]$cyFxIdV]nDXX] >iXVZ";B(`+G>&: HE-A5{ATj[jAi#| UZٵ.{T)IB62Xi d|y_~uuw>!/[%ZCxOLNy =7jdn2AgO{ݯ~^?qyB[•l֏T_jNO9H$=G1bdmr(<6s,u6@ѾC?@fZO31\8[Ff,n@w?ꌕRj,>]+)*5w~u鐽/^>c v'tF>ǰL=rI-\9D.7csp!P\)jғY{9W$̏}ez[ }%ӹ&5OJ>dgхp:z@ ˜åR!_v]T9OmdaA>ٳFƐ>j@<5˭#`h`budZp-_NCoQ^Rz z7ܰpjN tOrp~[}]ViRA9x%'UYyla N%&]~胚}WTئ*\-U&NMlUb!nU.0HUZ.V=܅{<*[fyY>{`x6Tqj$ݳI;蚇5U$1km\348W㛂Wio2_Hk$4 /~s,{:fxqdX^ x~>P=w7} (rK7~sPf~c`Hf%ݻjg!YI[ЍuC6k|/Nf_CWkU\S01;6 mžJU{tA!WuUnBJgm(S-`켩W:W:uhX۩"n[WBy _|Eꕝš@t(󭱲&lUC7ԠD,HOeZbx]'<΅w<4Eu=yOnܿf;^!}J' }.N$5kV0Kƒ;75I_IqyAx>yX-dU}I%7ogEUv7/s1@ZKѩ)`IXdžթk˾bupJ>Eg_'#ru7<NwEu6қ'vXfw%"ޣ|xUE*c(Yl"/*JQS >2M1_~ؿ6SAUB UɽLz Pʱt 1 8淙J<=KLՈJ|B(Fuo,Rk&/zDQuR/eMO|*wF\lfƕ̥R^:3Q>8x)UOݥ98u_{OVz)R%)WCxN`' `^)0"Az6SJn72:7`" @M f[|fK`W3@ ;68}sܲ! ?:;Ttbfr &u36TYx/'yN"hݝ)vF:'; _vdhw\ÅSN ~GX9P a>Kr=W´60hI@i0E\X$gC]2wj?iuO[‡}Ic5h^ ; .ՏWu"LhKWS\?蠡endstream endobj 1071 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2116 >> stream xm{PSWo\,Fݢ3чuƪj  !N:3h)1oS҈CaKaH4Ku`a&'ʡUQh!VZU9WkdHQѝǺ~M؜JݒuGo\WRfW)$MYgqj씭Veq%Tb}gy"7EUElR$mnQvl Q,fl{e QC5v]g+W_*:{`\! oa/$u*A`5tZIDEݷ87( !:|\]:4Hxo >&TU4^ `sȓIxqb4ĪD5! =ijԤx ՟YHpg&$y0ewp 4 pLJA%zň7z|y1nىkȄ7Nt9."u 暧{ <'{V(DG;3pMX8}6PfS(Yj8 @I%nTΐL|6lh5Meftcd@.420t ]H_ p5d*`)df("9+c&-$s l=4r(|-P0~k (eI)67R0ϗu:cO{0XGQo"_9Њ_\$D/PEb % Ӧ&}*ӫ)TfM&eG )}USh;mH~{m~_mik6h3++z!յ#p2ZXGIbq<2 "ª[g9S2Z2p.H j1;o/XpezfcD|l[‰ b ;%/(c?w5ѯA¸ X[N(L{~vz έ̦B!Q9x(2&!mW1eBȟɁ9s..[ gNjq gB)7@9"A]dQ섧E {Jph4Usidy|vHsקNu yER{L㬣_u4AB헢aO# \﫠li7 M,Yd@ }翷BYԨ.E% EVSPt6*ENjGV][]ʥxI`- ȸd,sV^e?뮯==02r!YhGr0IpK_x=,-w *hЫx9ڀBgЂ . sKw-{%d 'Ӛ^S#}$mz)+xñUG4߷IPɋrM {]JW!Ǩ?te[<35_YH0A 84endstream endobj 1072 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 776 >> stream x]kHSa߳s^m^4s$C7b삦)y!gy+mJssݜn:syټoVԇYH֗"0JRCͯ}|xxÏB!DQThvjrIv!V"l'M"q?\"\J!?hX#BzXSY}^U)QVgi*u lDGP*: bS7$RI_@KT"&E;aov)d(Jwo ;sT?zQ323e{Cߓ3yFμoߤ#T]VK1 D []!vg0 nG|KLv=kr]R'dH1ٕ__|ӽF~J  m5!5=uQя;s^+/s8e"w{9k{ر15[7ӗ銪&;6Xn6Ⴍ52@R|(' pН6'ϋW o,r'D]' y&IϒIfm%6ܡ޸z^i/To$ !dw8LJ' tlmY& u ѽpPd?wU0ixqaӄ]He~*uK]zC<06<81R;2h2;mڙaOpaR!y(B> stream xXyXSg?1p熖4S۱uo֊j]( "5/de !UK[+c*Ӫ\Gp/`;;}n{y{y0 ճfϜc7xwrwwO$Ƅ9ͻ)p@Tzy %xOM^T3wA\, IZtYjZz ;;3wZ.v C6%4Y/ijZ9b;]b2 B>BiAFsiAUsc9@5}{2e$2lveLDj8F^_іRoxgxxw>_Ampܻh216< M-tfbqzy]x6~=PNʹCP7ZTF4&\UTIە2eJ6~<\pxx?C>~?TCf'3IAN &Q$LJ1ct횝'2hmC#߫ύ޸=9*9O N)T-O{syl"G AIJCGlN  z U jY5䠉z'wbP EMTs:1Tt21?_ 0k(A:U=η &Bݴ.`tp@(s`ϳ *Q xH,:343^X͵0y^=rm\@[5m#|$Am oETK:V*nd* (C"ضL{,oaP]i3t"d.T!`|Lm̄`)ғUj</h% 9=C4*l>IF(Wp[: cT0GmѶ):fG&ƈae,cN" ޷%QS|hj&U`ɼB[d!7ސiJlZkj A{y,uYkTu&y Wn=8q| s#:8鞄W uRZdfQcVJs>​{CA%eD8Uw@N 'LK(81 <fttWsu0DY_{Fn4pjjXdxF ׎ t2\tɵ;NHnxvB7;1%LJd8`& DeTKv+ÅSeK_al츶 :`?<휂PpG-T+fIPKCEhxۨC !2Nw9B[5B / lW7SDRUdS&qdsZi fmƒy((77Ƭ1C 0P&?x|ϯCV{#дO 2[Z[$ a6~;)EϠ w< .Õ-o8E]仰 xé:z(2g;uɨH\Q==M#ʗUY'IfrB%,ۚցC^Y\L_r"[_w>? #?DclYΰ?`꭪H( ƸZeRX_GCg070O<8bC_ /$kYV6[> "&BBsMu iBR:  i HLOvU;*njZɍ~G}Egz"xA]jdb6@0iyF- Yqn&`ފBj&N\{=Զi̶dǟ榞~zd$6 μ  hwWZZ7E (TfL*exc'ڛ`h7LxSCYRI$k_Kr풮lPt.ow "Z:ݍ .p8V*|}EVU8(Mxj\Rlfnx[iA=_FbE!{Ūpk1S#ax铸Qq#Scަ$̰9Tb0((Qke. .ER(eG\\Hk1V3$f9x?"YOf'KFp^xsxLFQ^:༢FU*YSGćLz_?*on~RgF58_8r{T}X܏YJ(u N<,?qw-))I̞m7A0D\B:g$Ë#T!K&D^u2zQR*j :_HKƗxr0mm L4.u4-TΧ wb n.<9f-G@)[Y^3u5/[°*ւ򊒲 H%4 %N;' MrccE@A-$Z|ze-xԍV}O^z|ҏPҿO>!` B%T-@#;EDg y࡚kYX4hzp;ĩ?@'|)k̆\?݊xIؙQK"砉RPL~}KdE)ZF7BEz Յs,YsNo &xgυZֽ4N`7ru*n> T4kC׃^ېlrBdFy(QjQ I4a:/"nʙS@ h4&x(ͪz4| * o74\ +GB]9w9ࠋ)jA1%85zVqY[rҰ3;vCq~orcW5vե9pYJPHNSIpX)֨ҫ J,S)Nf5\0ilVC_Mťaf4|Pt~péhv+`.E{Z2&uRb.Jc3D^Η-qE{qXg z߰'У!Pe k\_@^H?\ ]].)>>QD8ZnPpEaq1i|Aہןhl*-eaP~K6x= 7 #ޓF~z<%զN]ri(6g{1CnnG,KFbwlhUcO('RrMA8J>RT-  "'pU"wze zm / )cmRnJIqp^DvLbb]YW5rNT|%n78.` ' jIL)jG=-pfTЂ`%ܽPxT"ԫ23ĂVڬfOۊ]X *s+2#intP5_OrXN_z.-Ho|gB0iԬ*#/X3ƳgS \Kb .V/Lޜ;q'JUbAs o?nytHo{tTA)>+BEdb(Xґ°:,pM C8{f?~u0Ki)J\ Jj%Z]%;h+{eaMIQtż6uL&SnR5YeX3db/w6xe.ǟrmL1jlHJdd&;﹇k!g4c}/lע7_9+4^EZ&)Rk fGɃh7 y~Z(D]I8Cص{M rqLHl:[r~RIPPP"w(=}Ǐ_m [ۂ;Ee=+3ORO1T ZcE?qШ8g8,CA? !t}POWVC̀[$F]8(RA42EEJ*RzXݭUmà]Ĭ$Wfm\RBHސ $*I.RF|0/]4j8A7JՒendstream endobj 1074 0 obj << /Filter /FlateDecode /Length 2696 >> stream x\[s۸~oȃ5J܁iٝMR/>2p# I%{Xd q9sp.H([$ڜ5zqS%T:HPޜ}8c,Q^\=aIR.ˆZ_jy EY^ sͮLȫ/~٫ds(|<0]$ M-L2A8n0K-~tK+Vʮ=|NzA%f7gN":6, 8虱"#^xOPAy=rB[EӜm ymf$-گ?H#ƔNRpLYe~AK@jN|U3`Q;+MX7K ᫂o~泛gu0_ܛ!$q3lX N>);!g3 l{y}F2]yFst+w;Z9r<L`ǀ9*~~]_mMJ_ NR:1T,F\vvXV'{8 J%e0A=0ǩJx2cm>s% hVQ%e޴ql0nߐuq<[{`)v 3yd\gRw<'p]wdDqm UV/=~-]z<ËȚ]Bm (ͨ _P#tQxrR#W1 vGK6[M7N;`9ʱv}LRH.o.suC6~xDNZeGOy$ mHqSK:S-o-NI~Sxrck%ec0G6Ym?pYŋA/eܒM4CV"Atm0 4txL<( : 1,(.,_?!`s%%ZQ&?үjkxun?@c}SYnS"lu־4K.E_ۋNx' ?1e'>׋jtxL~%5pSx׽wKb $91 ֩Вn<%x͓Ėd-v Z@Mנۋesxހ%CH'KvWrx~0)AѺ/e+T!KoPŏp}i Eـq. g`s%v$62nȼ 4eڵ1 m羌x0rMi'h>q3s/fqaLuV3׸<ј2hrфᔫю;@twU9ˉ7y ͓DNHzg#}OsM:ExN ep.~pAi^j7՛z|Ak^17a 7v>dSO}:cĢ3 j/ f>,7i- 5=|}Q}+L0/`8\x헽Um7#9(Ǡ{{'%3CG[vN3KmW ƇQU_}N#EUe]>E϶n.UҒOA0w[i+LIz?8UP|W cLh2#ɧ;ȨpjaЄ||I ڗ{HG-4Vp+#^*}%$e@rw$$@~&, 5SLjC_BOX+2bYb*!޹Խ]G gE?J)"QʐD桟@U]m"](jw3ݱ wA+ CKtuҁ"ݤP Nn\ ?[7m|V8*L)+MM T:O˳<ۇfDb u0i!#f0|1Hga߰bG|! ޞ1]wd6QsZ;5iSvC=p;#W"0:LLɻ[ӫfFaendstream endobj 1075 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceGray /DecodeParms << /Columns 44 /Predictor 15 >> /Filter /FlateDecode /Height 44 /Subtype /Image /Width 44 /Length 292 >> stream xcd 0bUXӳ(O6*PE1(*cUIe߈bQ`$5Wp)E)}[1o4 p+⋦xQ,ngMŭbBSL#M1Ii4$gaW,SAlv3tv: *Py U"A1,$(6=`l$_HP.Ibj 9|3 L^H+ +[au.zbfyO΀?^?xl2Ғܟ>ddx'IM-endstream endobj 1076 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Height 44 /SMask 1075 0 R /Subtype /Image /Width 44 /Length 1084 >> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK,," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?| Iq v?Ӓ/nG,EP0B>kW{B7~cmF7֚ׯp;pn5C`K1G^kz ^Ssp6*ͪw|9n=GUGh9V_z)]Ggv,rX}i+iST࢏>Rw ($'PgB۹ʎ7J|yw-͜oˎ-Ɂ`cmo>!l'ȪWsH$*0AXƅ8˝-Ku$+zEendstream endobj 1077 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Height 44 /SMask 1075 0 R /Subtype /Image /Width 44 /Length 1084 >> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK,," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?| Iq v?Ӓ/nG,EP0B>kW{B7~cmF7֚ׯp;pn5C`K1G^kz ^Ssp6*ͪw|9n=GUGh9V_z)]Ggv,rX}i+iST࢏>Rw ($'PgB۹ʎ7J|yw-͜oˎ-Ɂ`cmo>!l'ȪWsH$*0AXƅ8˝-Ku$+zEendstream endobj 1078 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Height 44 /SMask 1075 0 R /Subtype /Image /Width 44 /Length 1084 >> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK,," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?| Iq v?Ӓ/nG,EP0B>kW{B7~cmF7֚ׯp;pn5C`K1G^kz ^Ssp6*ͪw|9n=GUGh9V_z)]Ggv,rX}i+iST࢏>Rw ($'PgB۹ʎ7J|yw-͜oˎ-Ɂ`cmo>!l'ȪWsH$*0AXƅ8˝-Ku$+zEendstream endobj 1079 0 obj << /Filter /FlateDecode /Length 4244 >> stream xZKsq/h 1' {Q#icVѿ?W7 @22~Jq]_Pz;_U۫_5_]_7ec{>e4׵JWYݚ*+#[]qu5E1[S[U}`-6Xvx-н)~]H.槼u^ 4J =H]Lw!\Vs!4؈놉.(བྷ(㜦,׻" q}+D4W!i4qҺZ" oi0\`lqz(W~vAws_sE}4<⾙ vaM-ΘbGC+i2+VD[USJCܮ);=򡧹m$ۅKq Pt [ub/T+uoM]t4 MǕ?8/߻Ro% @%YcS;,NrFf#G)J -[5Լ&~F-樌zhDϩkѣAĠde ?`nӧ`GonGfp>3::$_`l8GYDp"lSJ4`npPr̼vFhA)XQѼ@dz0J-Gqjj%f'9;ϝh=k=qz*<}9d]}>x2'! ƈs YNⱝ@sƵ MFlq_mlbn,! a)@i/Ks80_#m2ÖV!|6,MGׅ`U!}u1rǎC@{q+&~yьY,v's ľۏӓbCۛal,UL%9a&w4#(L/0)ROP7qXۘZd+š3?Zo1#ViK+q1Fe}$? B7ө_cJC2v81hT5cM%$=Ivӈ?}è(QnT*Pu2-W#ӊHb885Tޥ~!ׂ)$0~3](0:{*sആW84{9VKb;gՅ }x a_!Ez<7[x+njA'! qKjkBgH&W' ctĝ57<> oZn;?‚nj4mO/Q@X!iK#gW0Ґ ۄF~&ƶ_րO'Ua\=~+_XNi"YN 4-0%޵q\k..aU=CT+VNn8ahuTZ}h7p'1jRa 8wq!Z6 l'X>8H;w7'VV՗0EH?>BczShysXϾ7pbz`.`X&]@ڪ3ـr5N!i<.GBhpB;#Sqϱd0jJ׷8k-|#M A{DBO _ZX4MEVI֢],zhmm.hyye3u G[k 0PC@A!UDaȇwyȋ~A+@ׁ5T14m/ڮ(hb1DGoπϰ)%ƼZPYpu M?)}t-3iZ.Y6}ʬ[Ŋ7u8(DA+FUsݼ v.G=͉z΂*jâbk'ùe-ʆZ[dy $TٖTV>фg d2S_ΕO&K߾TRDebBȯAY0H ! RR^(6Mu!7 j}N(3%3Gi: aۮ!@U/$d$ \ݵ+}- NĀppkXBW%YLG*#O&8jjO!Fw?tXv皘e%BFhFFlU5F r:SlDjr]7EGDC?n9#w@ U1!HnPzz<Bo0cF^6?0`#2Cx9 NU2Sxw&=uXgbA.܅sy͉!c+]ݲ.YNlvhidu0n+R 6r"F^\'  uA 4nD udĪȏAr۟&p' vXp"뛺}*PkAN+ ըv*_f4h/0:38{`2]zzdz3Aޠq(#D_Ayλ':;^;g" oZ~ T[Jd0#Ɵ+< K0x7;j](= urS:›\DZÊ*gwKm  O dE(W;:amC(p~& saãٿ3#qLJOi5s!ULhι~,@cmwå6ԚN>d!]$yکp_ ]VMb;GwPミwPEo"AgȶEN飓 1񜏿(?Oo|х@g ̃ [Md^J\ifeuš~DP\V5 ]Z[-eM~~]Ϧ C1Cx .p4ؖ`t)*`fA~YQV ;ِs _x*9Eל.det /_qV+/SJZ0#^ϵ h+?>̌A G7͏݊zy[Y£/ *Eb}2_vtr|L|!ؑ0[M %W1 "m836E6W* q6 ` %,B(z +#kxLendstream endobj 1080 0 obj << /Filter /FlateDecode /Length 1688 >> stream xY[o6~oȃ' Y*P]u:4uʒ+MwMS;ky0%|;w㘲ql5Ƅ/QL5Lj1z7b~Ə8Xj5($IDX;FƩ&sF!&p!ȦΊ^23F /6fY. #Y{2R,~ ۆ(C@ss:ҙ÷ĊIͻۦs aEф0Ue\;p[[Kfݷ$-ZWbC\UU +W 7bG&L 3092m`~MC[1r)3Ètxp`GQ/dN 獏dNKS;O2H|hߡ-ͧыQ<)HLf2,Qq쭿!r25/d(S׃.}iج 19i%봮=[tl'>+bMWi3ƒ,MԾB ,3x N2{ @5d!,̪ݐzF3}F1F#0ƒpDP͙ R6Q@aʥsڤ{C.AZHNt~.9$w ] p:řå"2#dv ɽ"Xv&ܒ@e"9oL`/ 8+W5&`6J<+\R^)>>g| ]*_ Q4PCU(}5V;~ $2.C t] L!9tXNrW&qj6 oo v]'B@"o'1=#o$160ayMb%JewCGYʴhxwHP0 AJx">K~K@nAh&]39΂g.7 `/8"/Q  PPx_j*.j`]g*c)ơoBG S0! " YpK(+~?ضjK@Ysp-xGpeu(M o} hL'>ٶ(~J2(=kQʐ_uO[ AOn>춪/$\f9Uݸg"wx`T> stream x[[oƕ~_,T0a݋YI ;Nl 0,8ݔĤK~KYc0iުNsUU77 eWwǫbuw+AW~|EUV+VΥʩ"e_d~%\õty>m[Yu-guoz[om}^2x?>)Tj>ۮ݇R ߫ntU%/T*PLnI},PJ\~7qGTE ae.06]cPMQfjY츩U״4ZzRB䥁9fy,5 +,_RQ\˕..1NUW_^)04wgBJ|2 xpgw-ȍ̍ (R\۟mhQ8l]4u&̚#ԨV/]+6c_M{ FIE߷嶺6sm!-X-ka0a ϟóyɇ@{kDzpBX@p `?_,: \ӹRSJ^箜 z:4࠰;|SN/I; KiZ0[%k/"鬮6HE!lvos|𷧡>Z@4Ս_AږkV]D&j*jHe&#uέ+ ,9W,#-O'/*$A zRQA`7XǠE><pv-ggpa-kYX{v$B[[Ǿ~82,Q ЉS:<&H^|$쳲eQ6 fpjA23x-ϡq:"GAZC,xO39[WZ†W-6./0+JiAw?FDlƢs;eQ.;G*l<S ǐ|йDxl#@CTR1<(dlʩkSB^>>Bx]|;D0/}X@$ dYHOBDš> yщʂΨiwYs;^-2%~ndv@ n0>E]pQ̩f86@E^1aȯ+b%y&=o`v_q,$$[ˢEmhK,Cvcg @A K04CMq/a,1I<,V {j} A3:7=>^s3B)bBZI\y[ ]xxi"!mr:A揱;2 tDHy $O>Sb/j ȬNB4´):6=QaXImb=|lbUVQ% @nljd3cXTz\_T"Z=>t+FHcEK jQ)ۚҠ.j\,};Tf¹yLgD:zr`L"p}Z(}3f;|6@'LMܱjẫq(h"OVCM= ~P0O:lg&Twƹ[|>tvcH?QZ.{Γ H&2jf`;/u$vr%g/!&Pbh>6(dޜzdd1jb?p Ƹ ${v=~ИQΚd(Mq FFJnė@d!X&-ҟ/B]E,S>JXkx OdŲޕTsr.IYr39z$ft8ԋ0"qeb z#0TzXF5I{HPsSwFl'1v̏`f >ٴ㰡15+m uvg񇶏tN$&*x5mliVaq˦ܘ .iT/E\*Buv2j]StE }iD,H ]7=JLDq8!ZޟDjˉ=}ދ}Ҹr0CٗdIcsrQx$Lî-Lbc[](mw]@Ù~ ɣC=TcQ\j!xN2@q#aM\ԬӭX3żx%sPM!$Dy^&x\*PMXsX 2cXwg\'k0 P-Ʈ-5KW>iPk;f`Ho&6xJu|ltqO cXP0,c֤}EC);>RISn?/LD<BMVs4i:6u IYxֵ)#5|gQ nN@=çv[ys J"A85wKQJzL -E ^N|8:Jq?xѐE+ eR ̝QCm3KշVءa>·n yh,UcA;kU J΁{n<!pITPZqտßb}Ք _UE@;5g3}6@]u;Uw%o6۞5P"]DO> K]S,7pvSNk e@w?DL4aS$}8<-|ҍP)%[ݡ/y8u}jt0[c7j@%ߵ>G֎C¸س!B{+pcr U]5kKCkwC-T\eC(S lbr 0Ln~G֔|I;`4 ]P&Kt{?Upfoy!|Z\> stream x[mƑq~ ,0x7vALJ=\dWsY\3$IiF٩&EQÈfuuu),XO%a}_޼)e"Im8siaYsQ7پM @y6݉Lm8?=Q]|g;so}|f_6i}tLQy!K(`VAO,p( ] "{JhNvxR ʪ9n(i'nX,M- fWQX9*~3(*dowmgM[#MI &uKIK/" JHy ?RF[2KiM˿ɔHv%Dʺ츣N=) YBk"?ʠ 󊤈R\1|fȕ5n9^ܨB9Um]$Ɂͣjl";qcA> T}Ӈ{"<`ՁFS@+Qƥ!oK1[D(a._}5M0ŢqL;H|ˋ~W_q?NZB@dCnoj&WPڰر;a/9=T{8$-`y t}4邜֬ q1n^ʢ_;B^O ad! tq ^&{Prd-j )D })ȧP%6e[͇9(W0fj)jrwA~kE1ˈgJA@ QJ2?IE qD &Rq''B^IWɡ%? fF/(@مgc^ؽt=.M1A4L[ R <*Bt.9ai 2E<5!ЩEKk\;ZVzqŋ*IHΪqPùՇE՚CuHNƟ8RIPL%paR`9qVA3Q›sSPd-#{;-(Oގr(a](ܓhELK8Z)T"1-3QLp_v?Cz`l4(̒!2:m:zMH7Яprf"܀qL/A9UŜi΂&suH$zv!ĨX8.|IrQ'x$@(Ѝ1tY v %kbs<<B)v$?)R-JP*%pRs%g!/(7gR\p@`ϝ ȋ/rEbv` u̡NP?9㩀#P[աo }g4W >m+rYJ8U"`]d%M q~Cxqs*OcXBlb!.{4G9!Z<叽7~Peɯnn^v^{\ U`Xw0d '^f7ŝ_ᶢ١&j F5k@hSFX:uiX@+N"{bZ``HY~^&.]D<[8wOe\:s%E{C"3\B "1:į6$\1hñ]P/WT#}@ - Ai)GTvkL^L1nxV#r(t܅Vrʣj/H)@:Kݠpl.S`*Q+@ " aCȒW:`TddIp>V qdM3eic kSH?袧؇yRi)da 7jO 2&|*<;') j3 9p1E3z+HW&Q͇0~7BērTثvA | 7:dh9֔֫P"3=X_:R,q'&r6]ٷ.fߐQ[s:Hy@wװ XiJhGLR 8lSzPz~BVcTuPI`)]]4GRBDž֟WW&6 m~* OV0ȰJAKWpQ;b^QJҨd#zSC_2l6e_wn&5$/00۽1*tA (MD} >Wz&6&k XGI0]yDJ'3@D xH@C}JM"1x݇ 5&Vw%`y!<OuC~BBȊ;N*e `|Xɜ|,ōug'5W?v mGSLLI#4#-Qp>t.,(dԷb>&C‘^h::fxAsQq#r~O)؉j(˯gtP&XDKV2Ǿt|>SKTp/3(F3hYDp#=\` T~XAH)Ѐ(_ {#xW#M0;4=#Ҫi[?CHs[jn~C%}/**c E\nmz+g%~J,qEr'{~@[ #GM1X"\eIgfe=Gվ~6 4JT5ǩ]IW8 Ha˜t>4$-Ga|#igC G>@2!fx}t\T#L@p(\pH;FT+^*obΎO)o7h=0DT9?(Nq+i9F&N81u /n ']6Õۓ+Atwǣ06!wyuS%sv1:=#W>16"3Cէl&O3(> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK,," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?| Iq v?Ӓ/nG,EP0B>kW{B7~cmF7֚ׯp;pn5C`K1G^kz ^Ssp6*ͪw|9n=GUGh9V_z)]Ggv,rX}i+iST࢏>Rw ($'PgB۹ʎ7J|yw-͜oˎ-Ɂ`cmo>!l'ȪWsH$*0AXƅ8˝-Ku$+zEendstream endobj 1084 0 obj << /Filter /FlateDecode /Length 3032 >> stream x[Ks#7rr\+h8ɦ^+TFc>!ߞy`dQv iŴwNbz=y"i3_MxN]IzW/;Up|5ޭON3Ҡdm=X͖嫎Dsޭ{HGh?y"ZOQQFLϿ &ݕ+&^(vqG T[~JN3*+ qvV}NMؘGl}MNZF&^49eVeN7&p s1G_YaSWXrv~s.w:9O=̋ yN!{?0FF Yju-lP 5Bb?)$!@ٚ;k!u,֍ȋ \:Ѫ;i1;ٔf}Um Y@1hb{Kb{(WmTVo˲j]wYHeVXܶV}CZ|&Ԣe$u.7 'Su%{eO0\F0˲,{WIN[Gl\=DLQ## Ȓ!,bT02hwBLrr5!w#~9_wTOWS\e9를ڴą\jW'P%JX ?(ṑ"ߟib(ûo~~o1 io b \u$j%FZ!7n\u׋j6/!n] cЂ6Ia~۱?/'eLs|BTJR%(7+Tgn{;}0/8S%|9_y@/q>0Ãe9G_:!ߋ,5-^aj ,3`M iஅiy_ {5c Y$6ivUmVR/u`9n_-b<10ٳAW$0+OC2w}ס&…׸"=u iRoV} O%VCqbom4B<ջV돭]4l[Uzp4TeMEoa*zWidp$i0IM6OM=ujݱn!R>,̍b4G9ɾ9oFJ6ֆ=$։qڢF6 5" síBpǜ!J3cU b X\蝎WB mX9 Zxgb |N6aݴ }?mȤ]9u~/X(>5m1KN18'Ⱦeٔ9,拢hEEt6"/K+n #ˆA :l:N~PC}L-NFV0rwy9TXꊈ<ʰ={;}Qhb]gr 7xdM%16endstream endobj 1085 0 obj << /Filter /FlateDecode /Length 3012 >> stream xZYo#~oH30g鶓'0`ћvR#ie'WsܵvE 8GUu}u0+ 9+_xZj7^ۋ.$ҟ4TP"T*]>ŕ{Z"JAC|Q)Q?m,z\^|Q&D~֧8 0J?|ooLT> 靕 L}dEYVҋW~s, mrKyt\^_8\֫B:y;#Қxvuw^[իUz9Ƅ+|a˒U}yג] bk7kz7s[U1OFMmo~9=vy]Y "Cw=M BeZ@`$}\M!,ihsa颚 ]#=GU bx+ panZ II&Aqࡣ0|*RA8zL@93fǰ>kgx,[)WPz9>eՙv*4Ԯ{Ӹ@护ʋueKKLesbX, :@α͆ƒ0/Ǹ Cq1@'f,jfJ8#70g隋, Zha1#Xͧ9LRhc$|4ox= OM7 `[Y,c1R'MPJpZBD)0`$gWzHĪe- ⚱hw6-TuﲫCiƩ;}F#a|N\dgQ'x3"BQ x: tnc<PJFt2rH9 qI1>cJ౲_{RVVp(0xkl^/yc#8= z%l\0V` Y(NlL4TC=бU3"SNƐGA]DŽYkF5ʰs7UJ1U s7tAmO2YL0qN9f{I/w$G0T}S/StkvaVAdm_hږ+*fMqL4OkTZ"*<_C6\{joꄗwgM+s-U&sd`"4T;sX:WT"7HeⶍE4IqكQON츢&Xaʲk%Z"^d±:6Tr2]aybb:oy0O]-Sŗ#(gaH.h(=ڈǮ~ycv1tHJ|ͳlǑlǎjDZ wBv~F&v>yV ? aSJE c;MF\ &NhH˘H윛%CꪂZ! !Bd c)}D|cϐ۱Ocdžt>svzVxYx#l]܍/" }/QM(9q>M"N驝NI4TNMaQ Rj$2HW>1gQtHO44an#h4-/Og*~p@wtinA|DbRJi5ɞj$:SC'wBh;yJm}OE-^5[j3} PtPJP/bFE.? S+!{7ؤLF-ؒb4O{oqJ,7],r˞R[ڗtr2 O*=lևBaeRx}·()=x 6|UGܛ* N7 uVa&+)zypǨJ(:rË'}AEbKN+@U‰Y5l I<Ή$بWjRkڃn{PA֓VKG{0ڲ׈a^n[e]]>]4UEĨvXo$s?Ҥ@>dZHؔ_ ͚D8< xе˔8IڛdrEfSE 8?,}QoYJ̢&}lʫ%4}}$̘_m?Y% O b}TC1H>r0pA(c(\pendstream endobj 1086 0 obj << /Filter /FlateDecode /Length 3647 >> stream xZmo6PNm=4mW9Z\I7ȎEg%QpgcQP(_=8|„^v/#"Q^:ﲅu;F:8˕U˕:Ibͮ w Hߤ֏(7\ 0VУіkbRF"kuD KnrYFn5Ig0[Zܐ.HFYl/*zN?R5:,DPNr>0y:Eʋٖ}om+]$X.C-RwJcVRaa#.߾T닾JMfm@'Ȧ%K1N0Z  N KI)Q k6I;fS&8^0M2K%0<®}{tArQaZ9FXH݂)F cmu 7B +B ?EqB qMHj- $ )wмCEŅT?n-&Ls $#L>DX.PXQ %YWxL**o ղ𰖧զZ]9)$ۺm&Yon7>ҷVh$l OPv?SCNF﫮O,nTT#.Fa7\ X _n _VMA5wwA6˶lMAvNU F'uϧ{w4m`cc.vдȐ?dQNRb.tYA Ta͂ +(/\.|\)p K7u $`R.IE.ʁTkݦ)1WZM5KsEgѿwK볯%mEײCu2WIF&@3&d*&q' (Hzս`¤V9w?y-w]Cer ӰE6ad_+ -Nuy@~>Ŕ'1wLb Vl^,&3 \Uv:p8cHvy .@H4#|90$(?OXI, y8&=5&=.pj،@=H HW@@YccQ#/8b__SFΒF@ɳ]_=!M*a]dP i(:%8QfTrTE~MVd/> >Lq"nU|ъ_HpJCoĄ/uGhaoн{47KvXŧN}Zʰ=bg$ٺL'iUFu1eHRѩVDp^ 6IaMº}/0O>)_ 5IjOe3GMmüĬZc~'~xGUhVxg@n+J!Vv.X${ߛ`,2gI2 u&+(d- uf]ZX(3,.n{goрJg =9<F mVfF5G8(S+X!|7KyуGno8:G>j[t7j\SO]@XD]@#MmƸl%n[(j!xN}>fY_}V(HC"m1o X&O+|f%T jւˡ, ;PuQ%l9l.<7"Zky*H*  pIU}3joYqGx5 'w{#ƞ@BPp[;ng=pBA('+<j ls{IRS ATLɉYjqHVWx'$`=$X(,uMczjc cp^g_7>¿N<̫7xx5O.}. z[4XXM gsۺ2a.,OIv2y85(>=!bgܒA8_.(rBGb֧gCK8Xf0,qunrI;tm.,T!2*LPaXjju5+ǟMB {i]<*(6#L :ě>v؇1)b[G]UXwW$ oq">a7IlK52UOP=ad 6EXߪOkkߪ7I6BWCBm S;+ٕFR,~'tb0׬+?q74gvKg7{ٷ)=DGX&nNxh^HtX=yw #13E ^(*W=}̠6KoX Z(pֹW8TN:bU镬 RE =衦o%WIKodBeCx) *Ksn&}Gg AVrPwwCc/m/6r ,] |@1A|[q2,LؕS&lI0h TM48Nʠ;vq\x^Ɨ˲Kivг~aii(pT@^Wtn(X9`B>gi&` MC$Zx-x"'V/j E mdѿnC7s@a`(6T:{8b}lc6gD8endstream endobj 1087 0 obj << /Filter /FlateDecode /Length 3691 >> stream x[oF{\R{͵^6XItE9Np7%2ȖC͎~SW,ON(Wwk/pn`dJRn K-1CΉєWb5ÛAJ0D L%|''f5hSj2vJЩ6ag~;CKbj8%!PdfHNm*VѱdNN^ٛGs5x p"hk߁^JD*iPmEW Ny\ϴ}S-IK$mO,2D͓VyGVZ{.E$us=-r9)e'_Yn6o .`?eSu/Og=*/"] Rʶ_2eQJڲjM%_]e;0Y2y˿iF֗F/pc)Uaf9/i> b3l]Έ0ϮjAtAN"m /~z=~^C1"`mtq<RTUE!KEc_)<>F1q*Cp-)x}bI|޿+i)Qogmg1Ν`j |70x4&^rӞ0we {ԄiLrA!!hh~P j)&:JGO7uX-,PuX2I d4cA}7DAid2B " :*aǙ%V׫V 1 ,My,!|r!uHk}J&YlY3jGL%CGR15Cem.m2xd}Hɺyɹg^$<|*P,']EIJI\4?G!X3cVp=JDC()L24+@OTſxU~ULk"EK\@9A{$cYG]j" d?Du0k5Ӷb!W( K+<ES R֢ 4͇!<3v#rL'yWe~{ ;\:u4"44gI |mI A1mL%([e=R{a ϶wtve} k8 e0"FF|`qcx1S.2k (D4ϰÈS,gx_Hgc i7ڢ tCl $Qc:T$%P=κ?rI*;!I:#|HTVɻFl}M/fS; in|$܅z2|q=kbE-eʁN, h :+D$_q˝&F|R++ / J";[|ʔB>v+̿t r ޥyASp (u<2z505(LOy?IŶEsZ y;i|uΰ$j-}j{+"bvpT~*`<&fC^! &Ҭhb&~|{krW͙9cWs)<`w'b n$ )Dk[Ǻ l e ʻTy 5(dѱ /څy@ĻLVfV]UVgEb^!_%ydlC$tZ|Ez9jv[q żg_8y^+PbAx>tU2uO;3/')~2A[ <%􎂆b9o&uEiQ] BcXPxÒߕj*͙ [I#9f$ɫ|UThϘxNz pT.+cx7Nq4[y*(A܌2?<!/XXn>Tku*M_4vkw\BTʖ'f`R}PӴJ޿.Bd9ޡ) g_dݻ>Ь'9D'm{Ur1tUr-jLߟ6|I?sU_ZKBlM#H{#+6r (jߔQjU\;{:ƚe.jyڼlf޺*"6v47 1Cq_m1l>C+a%\;݈ځ[3lfX 1 2OkkˣXs}%QkglbD_ 66>)?]/'5.ހc =73U'F䧻LWW*rZ]uՍ۫[ U}p/iK6[Ex2ǒبvh=ޡ~0*QxdbSJ3u>b{R/~UN<[Й qaԟ/k]@`U/ /u ^OIVżyx-92]E%%cKв](L3ɜY7%s^shSyjl)XR ~ӓ3dp~1X&TVӏJvwGAuaӃj$su6`QӺfM$i@42ƸDמ0endstream endobj 1088 0 obj << /Filter /FlateDecode /Length 3557 >> stream xZݏ<-tq։bhڢ@ Mb}ڵ[v$9{wfHJכ=@QZ9$eg|wK3fqˌyϿY!e3_=\>/\&s+~M>4-,VM;[ X,R,疕\Ӿju,Y׷usmُ_OMbgj?,6V o"sb% c/⾿^k/˔%WTue.6L9l؁s~0pQVq\:gJÖJkZ fml{|F.0snBrn±*:USe s8!RYq#]y `|)'│U.nDywXj!: w@ 86U_>޾sz.o&&P5ĕSn-tdH7%Q-2EčwSsYV);اr$ {<g + '2j0Kn+|͹0 W@%v|ߠz,8˱=vop&Ri[ $Ix꿭f?L"WlpZ*ȹ1^sGaF4 *Mbu[# f4G_oʾJ^%7Klu5:rG~/Y/ІKVva a,wuS_ \5u~TjU۶Z:Ksx h| GllY䙱ȸu+^*z kLyZ NnаaD50fZ&ќБ+Ld5.Lv= t8OvUw禎8iba`S𔊮&S e`]+l09:Gub Ɗy[w܃Utge3k7O(i@6 \S}n"-'~lWL wSL.GzU.tV)@(yVtRw/ZHw%>(F 41doSs 3"k{WWJ[SNamPx Wd"oQ̸B;@Foif4j,1[S JAVyI̮ްB-VJA2:e@e!>m|.9 ҉ گ0 0KV\chu&F%XZRwlwʖHCL^BT_[;]$G˪ɋ97 MC5& $@%M ANf{Y7f璃Ygvh0^gŸg3b*POlksv̈́d5RKQd2$f o0f|}IHث4,8M@R/| a,@+􉳸e!ġB9!9L2M"TL޲crt}{Z>3#Va &IBySCY,6GuBJ>rM`~8rtޤ'Rrvr8>eUl{x3pAj&m'LmиD' 2H " gW56x><Lˁgf(1=q>=A~L=b{h7VKP3@*4yĬ>KWx[a{6+r0Tda?~znD&%}^V=@(\@!F5r?@) xt]}̞Ӷ0*(ti}h!f ;44cp5SsxsGY/F:Ϻeܲ,M/Υ+OtU0 &dr\6AC е螡eF(Q h\!$]W'/%85HBCp.vI! `{-v y]hA Ḧ́jKx u nC $.!2,ϊB4HMVk//҂JKr+iPGCfmƍ%XϤSPq ~pXC%ސq Z_T K2ޥxpʽІ9"Php!!|_Z_k`W@-z@P#WTXCQ}|̗WC0KS̯MQqN4C\sW~770A.9PZc-YLxIy :vyBO]7l3.1.b}+qqn5W 6WH\ o_Tj%ƃ_FMO' x7ia!:E(;t1kx&#?Qb }|@MBmFx 4Ce,JHӐ=+LQPӾг--mU-~Q=tythl{E嚡yRuMgp8,|9]8Z((ir<\ N25Ez Q[i _N5C~=qfз#R,7D xe o<-g Jjt Cj /kRҀv;_2O§,@ӥT8tfBb}i]Ş9c1:BϨ `&fl]g`'JQjL-1RO:R찛2<~> stream x[Ko8oCb.\M6{n{*-͇ۚKj/ij*X4PNQb"Jw_J|WV?]?/w\*eҮVXP ک!Ǧc;coj6u .,US֗Ueal6Pj>}%LQ?MG7nG]?5y*nE?K%<$_·C=ӕ+s="lV᾽9Rz ݃x}{<@JJ2x oUI$SOPة&hUQM&*Ϯ_h@CОrgj^V\WnG *!LicRy2#ZU1 P@sxN8wG\SL:_6y;#U{O4/]=ޯiwS^z`tIc(aDT!@ļ/0>OGyeJ0sPy"82`י& 0=G ~XKҲ}@@39k'=~%F\%fI4!3p'g=<~}Rrq=k$P̍ԪT^̨ߌkRҘE]޶d)fF"C=i qpU(?wYU!EHxPf"Gi!O<@Pjk WQD@wA??\-+ylI;@BULƌ ZL6o/4+7NǮu&?~zSF NdޟWނM$Ă $y[|Ȕ {mZz[g\BoQJXas.g,SKPYq,7 Q`{H~i N"#9eCЌoHxHi i,m=Л*N<~#s+z t 쌂bЀ>`M5!E+E^1姃"cn2ŗJkJ}3DgswLnC?o9 *(T8I=0TN\S?=$}C,매SIٰpeX Kfm9iԜ\nbgS, Qi2R)_SV1e=C^c.<0IgoNCβ:;ѹXՈ3sY6 2Vy0کpkp,.t6o9%N=S lc 3S^nH$ҒV[3=j0* xo3(F]{jN-][ʮai$B6m{n$̗ žO玉at&y׷Bsc(ͶocBR$|9f13DEUc9$2P5g1jROw) Ln ҵ+Gl1wh+SxVm,3#O(xlek`oĝYq5 *MD幺xڏE`ֆ"lOMBB0\KޢZ+kF\;*Pu2Lh.5 '#f(x:wM|z 8o#p~ =ܸˑE8ms.(f LMvPfp"aĸ1=/f M6![bCvqT$9U:K_X.U ElՂ sq:^1Ŋfs1~L6Mb29 "QE3Ml}6,M23o &'}D/8R0ˉXQ0k?c)h)v!rb;F4Ǫ (p193aq}W ٗfOmIfH!$yǍ1BRӢE1cWȗʻ@\!:v`^* t2(s)uE]gHk0Œrc:e%Ck9kPxɕ+2Oȅ"PTP|b"=tRHZ*pm)n,S̝d0['l#O42 X(u+n҅'l9~K~#x^K?6cy8Mi S@|P Jo#}xIX~U\ Ң[VV.zT2>?ՇM 8(FAwIƊ ]>6Sahf [vfMXQi+2_6MP-fx'œ]2%>ljQ,-jN;$؝|Dͤ(qC_k1sJGvh)OȻcnN02_).nR >lU Mb_PklT{ݨ>:꺎"0mv>Gq*E/kwaN$kg,L?NsNp#NsMgt^퀘%ev|1) VFN{;GA]1j~R2~T緺8 u ԥϐbdڝjkN 20T oH^eëvO}q2 u/FDžݓOMg4Rs,19YߟZL1KOC> $tهv3L+ Zqyu;ؾ'SUAytubԅ*} H(*# a.nF&2t7!0rryR^Mʗf_n%v\$QS5|)$ݾQFЏ``n)kvb _zL}WWT($4r3bt:>}̜bҔRWgmsIO#缾Ah,;>){:zOOM\F/$lE‚XaHRp:+o5etSM15C㴯6m4XOPjaM\f,u@+PɌDlܒ$y߫4BDN{;?T#LfIZp?3^xoZ9&b~ (TK o`KtW4|yu,ScL t%^B:6J_{d I 8Lp,Iyڗl4Kxd:_eR4Ō$҈PHd[ُamixkKQāz|^W!m)ZYyl!tBz{rA"`A^5ŋ3N,`Gx(rFo4 i-Ѕ%5JR%j0]R1o8iv.~ڔYn+JQ*Ak[ˆAA7tOP*E;aFS$M*bya.'ki}LӂRԦǥB/P;9Q-$IswrkEV~'I7ؒa3Kb[b`%fGO>sLB7,auɬn"RJDÑxC0xOp7;O :.H`ܷ¨~L1~\Gc7A?#\#st٥OAPep2" QkzG[V dendstream endobj 1090 0 obj << /Filter /FlateDecode /Length 5527 >> stream x<ے8v J rطƛ8[vT0ρ5c{hw\خhvNeUnu4ucT濮_9tB`쇱ݯ^^[{Qh+ͪFV%hW}C[a^(-WtYܬ\by-%MsrKS;~y˧P.d mpiO 9jlE$CPئ^ӆҩZ&;h l4vvK@2mqx'D/ C^q G{kh?n~ոMXxJz!#ns Mr*/XɈuc &⠁ 7BJ v"DL=|۞צz Yڑ_MTDi(Lr%~{2\@:Xr\-4l6eU;t^1 .qF5a@`tե:p"$d~gDDmdp]c4Wj}Vt9ځ 6CRi:=k M~ߥKT?x*jqEmä`Y7{;DWV'~ܐZa\pb@Z7D-bņL$6DSlFP{m5+ٹO?z0HN%{<7kț78_l! T$؍,U7G4dU )Y-\}9!Rg0,PXja=axuq@}%ֵ5zG o/93H~5զ0}XnkMR| U uYH3f6ht5tlo'&*\^H[!U1& /; 63lK#*Ë8ق%sl%˪[k5G}r~qa6*-Z3vD(AT0:Ab43@bm'?sy5$:(h#3;LGt.Mٽ/M =I JLb_9h+w!S iێ%"'WlblE ʞ֕U;0:7Ѝ>>{SzU[F FcSqTz%\}tL a| C$d*HSDc~Xmr-H ň% >\:cGcd30x$l[ui,kz^]U:{0O񱺺B&ƒ#86!0LF0BP 6 +%y/zC-gjW?_z<0Lg0#0dN#( !<\"G&CFQ0 q@`1=Sb s@) a0O; !2BbCv9Cx\,Do/*7I /ѥYB0F^2P˼)`uCi-j28G^! R1eAS4Xa\߲929seGLt)~5.-Tp%wY wtE4|)}4=h8w,ฑ@_+ip_P4`BfnjG*)#vrU4-qhwt]iԇe#Ϊ#JZY NR( ? em晏2]|SQθ<ćF\5ḮrPow1f/l)oMT7wJ,hVGRL  K>Y!ǵ l64(e|7q_ G uwbS eQl\-tm35+F@$wNO"d-gtov町<[A*JlBv&¶w#W%1K\lmܖ:lIBalqV1gXi '@txŬIzNf'%>W3WA)Bi!yb/AI cD>8Q|27 6٭Q̹v{=V;%ZTәS(ؾhL]K9rvy08\[&|Nx{B jq4e=*IT`95@=TSt,IJilpbhQ_g*ܑ!dc }!9_K@V['溇KX cVU>LtK;azqLyО0 j繎rEI}V̛zD&H|$!l'α=iq0ZT `t6+"!~{Q4Srވa aUbM<yg<+c͏0 b &0"s .ґ9 x%A )wEKԬˇdj:7W}%&6k|q$mE+ݲhҬAwS?R_S!;ubEsn UT z5F*܅-GP'&Q67%*6$rL*5\6rninK@ zjߒIkΛP逖qLF6Q&<1,]P]iu +3c<|h8 hqaKk,|9 A?-Yuؠ3[HZ灧ۥ^VJCS@z>'J3;kLg^6?W73hvKM&fN&9F}a4EڴVNM@F0#NA)5$k ,M\#0q0ia<|J6`ԦL oYg SJɰ91 ֎s 7 !c$cj aMpW^Cv1uAqŃ[KQIyEwr4q5Y6_ک # @2P6"=}܏l"1ϳCGr ʘy>1ZC_ہBR#rw],K,n> X@^P!i^|yn"C*K~҉IA\ h GM8:>FjS0Hl"{ь+vHPB&Ozs`&''*3cǶ KB$ 1vf8#>.Qsn94~OO\5PV^ |5-m̉^kp͍q6[]]S-#'W}r(:}Aq%-+8B.^9\Ŝr DS mNN#w.Lq~+J蔽Y`l$QƢE W0cU-E\*P^ZeJ"xy2%'f E]I~T5bϩFVUy zVJ#tq8K`>Vy%>X\\b _B囨)CO}9Y*3}dpࣂKӇ8_˩ю@gTa_Ԧ %%:]iw@jqm/ AZ[qpFsO ĉpP2`2d~-U*qEj-刎;tWi/oT՜\Џ&g.",yݍ!Xca DA:ϓh:vT8!ď:ӣ,1~>cQk4j}98R8.3/,t AM3?~zZ oj%he_M+vIyo盀Z*(D;:ҡ6A'm1u@]X)kXD$Nq!yE@H;($L Ii;mv-JZO9ԞeBQk dQ}=`x8zF" -XJP@ Tk_YՇט,ήoW;;v#'8na-~|]AzOi  ='`_Rgt9d.Q+$A۱OvLS7vxݬȥ%U v-}K;vyGؾ={bya>^cܶc?aMEܷzWp")غƔi ۾'l(\h 3ȴ*ap7qendstream endobj 1091 0 obj << /Filter /FlateDecode /Length 265 >> stream x]=n0 FwB70) .钡ED"3źCg~l/חkZvվҮB̞L%5Saկi/nHܝw@y.ݨpJ_IcQP۱(Ѭ `ά# `ՠƲZ'և(UuFF`( J(P()Ld5eV].:ռ`8:Ϝ)uUu%6u.Uh~:Ҋendstream endobj 1092 0 obj << /Filter /FlateDecode /Length1 11688 /Length 7586 >> stream xz tS׵9+'ɖEֵ忌d, s e9, e[2`ٖ 8`Cb'eH(i!HB/>m&ig&+m&.Lt^Kg+|^5ozkk;>#aP<C 4"Y ͆n=ܳ3,\v6>A$o^w!5׷mtKDy]=GAճݳ<{x߅Pm_tIh v o\mCi`(|!mq5_M?C{}ȈF@tBs_PV;}4mt=w.Gz^@/E(z AIQ,|}V6;`ԭQ蝯WAOAitci C08&@ ěfFȏw)Gt?D`sm=^/ Phj73@$y LJ?;`VZNO!$յ_iZfu= zW]mͪZ(_|YْmqqA~^n%;˜j 1FX`T\gqu r^Yໍ% @r)# ]p["҂$ UjqPgk-yvAQ5 )H< YYCKd%ɮu]o*6RY\bbH. Mjb M<Vfr|6#+}qq`UXFQ)jdRPAaxzyZz}Ɍ3uz\h 4f-ujm\0N!,cN/JQDt{]55;?7mt񩸸:0Aso̐]e]W?NֵQNj&\ :-Y+22Fp4+Ny u"5EpugE..ʙ[)glнٸm\fsz-u>yi.E'')#2튬V5@;@.:IS5r z,u]ߝ@X\,oiZ$_tJKUO[dezR۔.nFF]=^,ԍwFL,mcR!5Zkpr U^x[ܕ ;mЖ%K6; 4PU.KQ&5-m-m+DT[wK[FD m$iAUU\ |tpJCuUІ3м4! uڨPpqkSQԸ3ڳ"bl!:0PYL.dP/Si m/Ȓ΍GrϣkrvM( uf\^P]y04-Q,o ai>Ct?[\>İ<>%It/m;nioR!ɸqc˪ŐVMY) _vAUS9k YP R"EPM($.wG2Tw,SkYENJwF*JWCddq]ʁeZTs눿tN"_ZWF^BڈXI92{#qЋ#܏P? ޏ= `!HNrPR"a{0PCD`Q(̡t< ~% θ5Ȁˢ0pC6F8dá((F,4Y1d0A LqfR" 399U?Da *`Ga-bFX* ǡ{Q87H?, %%˅u^  =6am"F!NMXݰnʖB %Lx*u? z`ho6P?",  Qxdm-]#@(b`Ph _?|BBǦ-[=~ @8;vB:Zȶ`~Mpd((a(8UwY[Opx!?۷C`eDv0"2BӆF-8g/5` oZzC!=@UއQ BxY:{F>( hi)~xTRkm+Q Mh-P>amHn7w+PNAK`շ(=@TŊUߤ᛹Nh,Au=Y)ZŠd@ )ғz!6H|͈M0O}vKG<9pԟł^B0>]>T\J,Q^ 8ipۧ?6SsOTMk0!ŏ~e@66EvQ *N=9F|ע̥#;fz7;o}(je׆ m Oc0fޖ;o96)5/6+qJOMn☦X*0OWj^kymڙk\gfKYK,ҕlUW^HW\W]!^i'iO9Mp}w* s~yܴ4w>e>h7־5ל]{'e"eq!'^_!ӯ\~_vL/]~48E짂.;>w,9G#dS{O;̔<%=EƞCcdrOO\ M:1ŏ<9!Ap<*34Gj`]Ͻ%MnsJ[9 [ʴe ZejK׷]FcLShU{8a(lBFx !`X($0`#›(9|Bֈz7hաȇ(us&kF)UgլftJ}Ru!)9J>V_UŔgsYDs9]˾6(_!54#񖖦ϔڗx^+z켲ĉt|F!Ql1.$0DhH*6V.mSm̊cJmfBvMʨLulZ(4|d끵\ͯq襭kfmfh27/[R)<X_Ez^SHHg.H:e4,L1Ͳ>Wx,<9!~'feO\W<g纛=iY#Zq:1D|䎌PZ7{3KJFFx9rÅxd~k_@sWu;%y>1?9j>;x,+뙔Ꚏ(^_5zjF-wDr&򔥭NH00\WVf,n| f}vcM+.4W}=7ndpCI/!;ՏHG@c1$/fa>%-e4@ 2%v3%f$ WHB7CNḪzm:IzA=FBd\zzTOm\N!)f/iWzɼLTX2[^JXI=[t,)A L|y&v(AN ^TI7d*Lr[7wRv鞽^P&XV >;#1L:S0\1.7A6mLJkPwœ4Fi6 MN^5|`30jNREae5KaOLɑtfѺ &^pV2蛣ݗH>yrQ ǘ=>1coReu$w]}MÙ9@v%6G?ɛv\ho3*;Mvn*{egv8?U'z~;GoD梈H6AVR$"H?۷0"1/w?o$EQ{-:YhaFqUd"fxI$+i_19C^jV4R9( tIEjV4$"[<(/lPjHa1205:P[qxNH;?UKNZ_ 9!0Tw,(,b%N'iKDl1D.=R("uqەaְPEs7mm#}UI4KCU|f% ߻ڭ,uEO=IJ[sv^ꛊJ7\FĮAyt+HhV0$(Fӑf^E w&0>\YK/N,pb?d}{JU:pɅUaΏB9[ӨTwYEYYLZKNĒKx"x\,?]Wr)ɑ#=6o!''v2Kk%*HC)2>epѦ.1=,[qs|$^F;'%ZGqPGQ&T}*mx6GMU"4#!4fHs1f`SI C1ݤi*&CGND/z^&tЯ/$Q:iOL Mii(cXHEo뀓'\R;vFh*z|f4ꓡj/>=p<ƒ[ڄ'eJ]krIsܾG6> stream x]n y H/ݥMӶ T9 xaۈr}eS{Y'm*.i.X%趤N5/a]y;=n{Z:#@ŧug<Ljߑv1ŽTvu@l`=Qpաvd=:Q `ڽpuF쑕P4SGd]ߪ{ړ8=ePߴ9%5st? )1endstream endobj 1094 0 obj << /Filter /FlateDecode /Length1 11412 /Length 7329 >> stream xz xSו=Gd¶ld[l˶0?22`caX'M1!:%I@L|,Lɶna:n enZ=IoHgvgoot;s9s=W6BLv*sXmN&q˄} q+sB]cnGH!D(ɿ,BH{8\Y🠼H\5wW3!KwFcBG')}XE /-ǣce6ĿFɉx8PWmM՟N ^M' LrRpKUݬ&zGr@>$er ɗ%N=y"NNw?M6EΑ*B(jF6#HC_!3# ?'AD>"_"\C˃$Ϣ`')0ϒqC$UlCQL>#wyGM,=?M'#d-=^d鋵 y]=Ԩ39Jvaly:!ϓ#hc9̛twuvnڸ!%.hnjl֮Y]S]WZR.,w9W8YI0:F9RpE_ P ŝQ$Do!"b&)!RS &Ԗ(`k{QW ({fQ~1  Qެ^lJɬN!휜w(e@l~ :(G6E6:&ҤUMZ)P!qSs&ߛ6nlΰ+9>‘bgs@Rz7U盜g㜿z;%M ѽ33A韉-Nt&lZd=L"knC69Tlթ;rF(R[tT%/j&t?4'$.sDy{d\Xj-K-7;q6ÝotLJNt*&;9nk|= V 2_n^vH]fL b]5oCtƉb3ПBbI&+"KHf|#ڏS4ҬLsNgfF:#JT7$T/hLs*y̮mJLMWl J#6,8#h衢+ΡhHnNlb[R ׈ bgc-ֲ:_ńW4Tk7!Xs i85(rB6G#3,c ujhǝi QHԗY4ň3qcQr\u݆,tq`B)[+Sh斥fqF wPΔ@ȄTm)gg0Wgf%alg-3H;ötpWcI1nfN8>+έ71GvE147̺-HPJD:(7%BVN!(Yc4AI >8KYcܿ zg{h+z 㬛F&뜱FYlzJOU+?0c 8?*Qy82@Koibjr"eX"/&n&p"1{K)-X|d8t816 {hͭ~ Nd&yx,&Rq?D&&vS|3K)JIƽcLb=.2ٿHdỂ  ;DQP GR(~[$,)})H(wJ6!uDbI wycd SxkѺ?ߩ-#?EѺm@|9 SUI?ݬopԗMΒǒsKPd'9Gѩp)=q.[QboE6KR)ƽJ`P46<2O4F0J'nsBO(1GۆlSGU>s䁔RC~ \AcʜB*2p>7<4 ꡽1/ǠNЙowx!EOkXOcK.e#8#j])ڝ,rxƜdX 1sxRN \篃:LgmnA׾کkĵ^x'WMWmW'N_Uie._r+tſ*x%eok/wb-}v>XYNǵ ~V`{Yinr[ i+o0s~5} j^e<# 2;30/"pF>NOfӭO|ӿpkNiA LR6, ^MKXE$ ~u,_vNl ٟ?_:~8Cmr` 86q8cG-{.=,/(=M GaSG=ţ*hn~#‘KGa>3ӇamHBk%M*4L cA#ciŽ^^ x=N4F=Xɂ8Y6L 6%Yj?ۭB1EnЂlXAj8Za,oCglwFEz7U,l=Bǥ:v Ro@^k_lgԞ^lqS/d_nȄ6F6t7ύUڐ'OlxyV[=Yl. X+2 t*nH7ۅza_' Ჰ(vM`1slWS/veu6ڷʪ2޺-2 tƼ\z 0ZIcO"${ * I6Hh&I J'@78%zۇG:I+ZQD{((}Y8x9q'QY*jϩYs, e)sjf9av43 N, ݟ{_4-^emlZ,C+`/ #'LU>73sRBݖMgYC 0`Q%A tϨ`QD*Uw: YmMRa >7ζRvS+3Gz5 (NOIGjyk\Q@\OWA9u,uVEfG+VUgZ3~XΞ$vsrMߴk{_y&\Fўrf=*vuo W;2_=y\ raJՖՃٕ50X `y1caG+2+BL2iL{]WB]U$eV%.x\&S;44|: `D$ 8ӼI M=`124" t+W"\b04Bh,[β>7T)9Q/ݳ[X۰rPcڟYU,*Dkk]Emk^kfigdVwH#wm44VUyebVQUr="2rC/eW@%ɒD8a~VoؕAC0"6@Y54gYۀ)*o“lh0;XD%@9EH灓?S}GlFYep) הڤ)}؈~؊NzhKP?x?{?,5c5J3Dۛn$'KyAIᨹ⁋ݱpP{gҴ.79nBp}e~\޾^\M]lj|xf2yxxWy0T7Y'ɖBaA OV58Yr6O]a *7]tӸ0 lzA1 &c6[Mn~}=#jm\޸׳W nc.'kKZFKB"Ԫ֧===]Ԫ RC:MX9.q G~N j.t-\%-\Ђt: S'O<AUՐg ~_wniWi.^ <ՠ}VYy,/)*V4['a!~jAmеԬ`46֚<`00W1лX֙:GP5Gہ  W^潙8d880yKp!?R_z8g}9,$ C]bK6s˟~ZV=j2p8oN򒔦efjAM-}t F gV)eg0g%rps,\ k:\m;9ސcc2-mi'0(:W9IeQ7&F<ȪFΌ)?kdհEhHӱ4_F׵CڳUL *cG|*sqm-g/l_~{ _r4V bC/rr\RvrFs(++MM0BɪWԌ6ꔠ$c\ys1 ^m'!y_%(6뒖;C.޹\B+znFKƘJy{.4\; / Kl^w672}KG_):k&8uڷΨZy++MejfNVn#)$G$+p&"z!-qLA!|Z)rZfH3`6 yftӠ@#M`,q \V͊n;!K a]q!vX_[N)~͓fy9̰CSqnג`T:b2I%Cw:Nѓ^I|&\Lx*{?G̖e\9Leㅿps=/.<'N;CAg9XY0eC4߄!endstream endobj 1095 0 obj << /BBox [ 903.865 2539.86 4818.61 8079.72 ] /Filter /FlateDecode /FormType 1 /Group 487 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R293 315 0 R >> /Font << /R294 316 0 R /R296 318 0 R >> >> /Subtype /Form /Type /XObject /Length 5770 >> stream x[Mem5jV_=湪XAEU'L 9{_O, ZȾE~۲]w˪:'0#|-ÝM{zsIWlٵObjր?H:9U`浭K8gU.y}\L;"ǫrH |zSqHH]׺zjnn)/g9MK^Д(=q{/~6N5}9y?O ެc>-WWe_y3z|[ɚkf{V3sn?T~wq}7+mNLv߇w_, Hm1r$xW: @?mn>bzj{՜'~3%ZZn\c/RZ>͑Fd_|{5^kV{6譗?|'+Y}xr(n q'~|y ?Jc!u(0s?5LGc(=Ofs 'ރw>=2rO} %G.3LWxg@zٝǂ{F??PF)K}r>~-:ݧ=]vsv3vPɮ{eyrv_קw<{gz5D/)r`<l'e`|FDI%g}g|R7dG7`7<k$po]ZR!Ar\/o%B V_4숄 W`O)I֔rx[lZI(3KJ&FIADq5 %;hI7ÓNsςff (bEH).Vt *.΁ÅQX 雥HldԔ/ñQ{"9܉c[ 4]|k++h Βy/*x.;~- Tp=#cك*籵P2.8ƭjC+$8*pٞ?&+ 2w'(*7qE.%/29pX'q0'ߛpQA%5a 6-n2"X;rNW .>B .$qngYn. ppVid"EFU*қMRtAqtG@o$;V[e/iVT`8*Hq1kmoKRuX?Rx(}pHG5(kdA\<ѯ7 숍 .c.h%=BE;h s#xdD~Ō "c! &Z$7sipqXbiDEf6"įrt̎'i SlwIY`G$lF|e ucJ) {uȌv^> >~eڅ> oDp  [͜x1+}-.,srVh:L*q#mLA~VBJ]|`tU%Ð60w07,*lPkg; "R  Vc){h? [OL8dk[D.GTZ[8D-Qe&u:>m;Jp{۹Ku?fseKY@R3b[t+ng̲,D hwR ̕lЄBP '̏bVÉ q?O =hP v^`^,1İ&yv` 1oV"'!xsKc} sqcDe2㺥m2W$ IIޝiRq jSqj_iiq@q٘ ޽"Vv9*QZOh㳳=sE58,88уl|67kNUӣ}*#vTŪKreऄ D<`ƥf/Tljhr $e)*^ȎYqS&+4q95VdMQ@nOUtJ;f6M83*^{i&#MebdÕ_|~Ep,i}y3Wд`'*ʯ"3r tcUoggG,wݻG_xڹD67Ԫ5C.8wVdo+UJ3+kܒ? 7ɂ)64n4lPt'!BGV^|:iZ*5АwҴVSU8s_oe=wڀVڏWo`* ~mfĊ-kknLwvB/U۞,J  XkY0-`X-q_9oVwGv5zG+S͏jcRZ2kP/Ժն P$oh*NS`֊P,Ggjh9v T-+k홽O-k1g]z.І~1p~%6L^P[jwKx1U޿KNo:@NZ 2bn+endstream endobj 1096 0 obj << /BBox [ 1726.29 5836.14 4226.46 7408.62 ] /Filter /FlateDecode /FormType 1 /Group 487 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R293 315 0 R >> /XObject << /R298 1095 0 R >> >> /Subtype /Form /Type /XObject /Length 65 >> stream x+24723T00634Q025034W04573P(JUW24VH/3,\ endstream endobj 1097 0 obj << /Filter /FlateDecode /Length 3592 >> stream x[K7@(<wdvPl-#rV˘/.>g~R+i\À5쩪*ٰ⿓W&v9Mny3`R/Ca( QZp .tvx5J#m%3Yap1Pr|Ŭ+l3J:8 gz;`~d1B ]4AXqlh8/ȟ//ƊD} Vٖ%)]6bVˎtiF Nb[m>ߘ(V٦4?|w>}Wr}(T¥Ί`U&E U 6P峎]嵲N-!'Ȑ*5%mm1i-B؞Neɲn+X*{/@HV*{Tww0y):1l&oP]lɽl!/{s'j f&S)V<ߌB`M"EWIvMt5D|:(~u_gJ,j]͛3;m ^WPJ >AN>N2ЂS JTЃS;UJ^ojxN\!g>p]{r~"WEƊ9΄ $ْ*u9+-Jc$K W#b56?&cGf:NmQ!x%pЭo? Qd}V#*;|cڳ#csj]1FqY)"b6i?1$GD0O-x sd vD$z#UP(p''FDZ"9iT[l`bM,|p;"t*S<_"sRz~,$\U} Gx3=J'xh#n)Y1n(޴DT#Lb]oZo)b?f0kRX;ƓzHM@pnT eȡ9hOQtΖo:vaRɢ]],t Ǹ&cCˆS\m )KfKI*@>Cd.V#+e:Mi"Ŋ^0hxgz!'>6vSɦJETҹ?VU*ޝ\#8,e FЉU=ŠVJ{M񝒎}Nҫen&V[qc,]\4fKӵ>C?U'73 `Du^(Y1o'DE}"c],iM#T=n >||N8%ʙJՏoSJ=.E4rjk2 !3?=,-@%yK{sXfqbv"Vz$e˦ӑNͶ{Y{] y:^$8sD"6I`f3yfA*M4 A! irڷ~=W7H%ȫPI)yA?Jyea2 Ld3y ?M% MR[Y=>>ypRFfK74I>6TPl xJ{"uKy(pt2&.{=[ Ԉ!r\]ի]Gu+B)!eL`H ~ǜ :d&`RhSl?;`RLOnQnD+!-N';<b#; ;9wwrV--sjc[ ҃c *xʲ\kG81!_>3EM=7~]67[.DQS٨"ez~SiՅ&$@ MHmI|&d97!sV҄ qZOۄJuׄ sz&dBJ$VBzQ組cF,CTL*Nk\0;AUZSC*+dȞy?85Iobf'"[*ll @Btjf|f̫Qbw.vNJk Je3_l/!ӒwX&IŐD7sA뚁ER[UQO36M\Rך˺cJp8E\OXmpgK]uX~&;KN͗OcI '4Ǫ9qnHUE'ٻ`ed|0WŋirefoZiAbM~ hG-zOOGMy -$8C+_ QTmz3,?LaHdxe`LT1ndVjw(Wr zp!k ^ 4UEiJ]$w_^YR;dtxSpt`řߍw0vYdڕr_ԓP1n#/TѰ[faDzIn4El;zEQiruL)zm`F Ta'[@78hoD@{"p0Xz撦$ͼXͧ&F@3߿yo-:~3 n[EB"NG@D%}$f\!O|fI,~0K $ng䈫"LT1f =.wggWWWe=r>}$8=tHY #D{ ,XAdk/SSendstream endobj 1098 0 obj << /Filter /FlateDecode /Length 2481 >> stream xZK70Prhbߏ >Ĉcp ",wv_搲Ṵg-1^4buWWWя\n&VjW='CׁX)%wRZh]uhTۉ 竟& ˉ ri*JURQhzXa<(.(&(åEkT)O*^5"EZ?2EYUHy;yCF7R #VZ*˕>/=i 8Ã($\EC .e RpXu(%m '-^pꑌ@[uM)B5dHJFɵ \5LL 194w17|b߾5bWhm7 clpȞRr뒫t˒Rc=reʽzʈK{ý/:ʈ IaXpuΙׯ-uFě\o{j53b5t`f|!,/~:CǨ"K\Fچ+C@]=>t ͖pmcb#zCjIb˶}`MzD'2HfěNN(Y(R^`-6MK`'gH–_O^k(i;֬yҹzυvm 6}&e nc?DPzyx]4H)׌ ȡ#{9*h2(0u8>m##T4{ri9+J_Sw@E$VgzS6qdmdBrI)46Cj{:X4hX j89_.$!Ƒ Q^;B#z [>Շz ƲJ߱$66i}, V\\FTxH@H`~ݔ$d\BY:Nw O5NOgQ zmDU=H+ wXf$F`Hʌ$u߬DDDč1\cbJ>WG @TNStob)W"W._BU**ΡʧD}sw |7R}VHQI!D<)OD=ذU6Z^đץ9KZ( ^|FyhDFn,iƖ7ש&Dg=aNCK8HY`m*v7o #.[cv[l 6ʐ2ٹwgȡ8v *\oAsn92TnVT0q,kB@hC)#<%-Khcz7-م|uYnTmT!>IT&'!hO9v~$JF)diPJ*6Kȏ`?VbB]0!/]Ezrcxj2ۂixԍ;g8X]bػrQq2vѳfnҌ&kʲc7cTg®敐z.XqlgZ n3fVv =΂rIMSFpwjZ ?9z,gHLw/QMjy,-bK<= 5= C`6:FL Tߧ'U,\/lڙ,ZGGޥQ4=y6Pv8{2J:Wh»+l"ij=O# Nmd'gtDzB@*ohsyWO}޽~}#ϛaj?΃ԟ*#\ѡd2jW2-Ͳ}c)("_XM*c!L?{J? |H)S٭@3IS on]Qmtse#zeLUzF~im#9c#'n`M fx-Go25Ym.峺xuZRi["p{r?l`V 5}wArMNT*;Yi_uh}o,$k9W`CMiRaHo&endstream endobj 1099 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 346 >> stream xcd`ab`dd v 0400qt~H3aӇUA,Cnn/}.]DQ9?$H7?%(O!81X!8(3M)?'E$5/%5Mc1&3g7aaӗ>)z]RoW}?#mNw_]f{M͛ڱۜYwMn>jDҹ)g6he,{MC)k> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK,," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?| Iq v?Ӓ/nG,EP0B>kW{B7~cmF7֚ׯp;pn5C`K1G^kz ^Ssp6*ͪw|9n=GUGh9V_z)]Ggv,rX}i+iST࢏>Rw ($'PgB۹ʎ7J|yw-͜oˎ-Ɂ`cmo>!l'ȪWsH$*0AXƅ8˝-Ku$+zEendstream endobj 1101 0 obj << /Filter /FlateDecode /Length 2727 >> stream xZK (^lːH2іYn>4="٬WU_U7a&|?\]Hw N,Q-W ._f.N*1.NkV L*? ^uTvzku_0Bx.fV]]ˮ$M-a綬xg؏SKo>$NwY~;[-)[m+P%Uv.û7,o77ߵ7k.?Eޠ*֠.ps+,M ^%6&c/bv7lpFRZP).hFk(g.+R{ª~ab譼}َ 2`[s4S*J،ɫ_Qe3Q$2W& ZvLdh|` Z#Q T~enLbɖ[a)ȸ=ݹA+^mJc] |W4Cًc#]OJ}&n} [Djk6v[Gu Jl 4> EA]ADտ¢x[7f+S(pŸ_;H,:RXGҼ;]U2h7,uyQBt"1Ae~}Kk'FφgMrHeCزu>@6c_0poZbe|n R"Uӌ*_mw^U3_= PiKPig£hzP@Kq9 хb<!v8 X"K}%i CءځQBڲ,vf[C'<|{'&#Gl+qڋcIx"w5 r XV#%̤1Չؾ>sыC5),Ȝ~#埱ǵE49rbQjJ $KSMZJ b2'jVGFCQ`8pʪfQ=0Ȭ2bdAޝ,//^"Ub0IZȘIO Y>{m4o{ZVv;g3G'iݍ;@շO8᦯pD%jt+*5 ZnKaWR Y0R&b-8xy{+Du+_FZi`BZ9459X=U4Rs#xjfG)\T<_) <]r,I[8:f{cVm2 M`dө*>^As(I֨jˁްLgj_ĹV㶟4#`'CEgڟTݠr*.=`(*Rjgd?P3{0t) Qn5<[f5KlI]ܰgo5N9]hW77ic"B04p;o@&QA,Lڇu=\ OL'OXZqi'=jq.3=<'m> s $}%Iu>M aOyXO"H:> stream xXwtTU!R$ρ{誈 EAb(-!';-{O!RCSAMĂ(Gs;?NrrNwON ѷQRRřLx?} w8iaչewOsWكR8oSʑg?Q}JJ̨^xe򺗥 1[jBX"]#[+_W+7,ܸfŘyTǏIw b1X@,$^$*EKbOtb 1XJSd2DnHK_Cn9eL%0A)p=oa;a/[kB ſPDpu-/rxgW]<a=Dz}R6/{:/y=.- <^$E`YXd=XľX8 Zn@2ZrӶ?WV r@h̍|̑s=rƳ MYt+% -  Z XfY:w "Z&,7Q(RuF . `RL&keбf/^fhoN<1tW;oG~>H]F%DCBl]Ӛ0l\vVem&J%dRh4&mSY\hn"r$B,+][bM}d(p^ъ<,-Gq@Ham;!OhͪD&KWשia$N_FVKp>m T48<ʗ|U`W>öQܙQLY`A!;)n qt(2P2NASK{"~C` sqjxcS7ß? |BE@&Ld W '͞˸}pr~pC9y^Vưf)WqdDRߕLIXaor Սa4@# ʧr>=okc[7b*Lhƹ^ɪ}Q(ˏ0d4)RH-z26-u[Y,77|YYescG>O0g~>EL!lVW VhTFq ,[aMEdܗIbV>D%*S1KiNyzkPMV;^au6Dd.ќEnvYWr%v͸bN74&f?#g蝋?1?oemJh̦cI @9ub4C7N8UCLߠ.7\]C(|v7*=?m#!mJ]R6 3\ a`sKpn1nprd):BPOYԴI>&3gU0Gݷ{yk5/eШuW>Gwlg1S@lt4@uBus9l<##--:r|8OбwI:ؔ`M@E bP[hmlhhuX0n*ua}S=ܓ8 n3n"NnZ XŔ}mNp~d >8q{t,[ף>kݲ&@.^jҪ7}:U_9oz)D]snܥRvE//wXWr]P):ءi-WNgWbaӘNl?rU: "TC>$ʱvsWݽ?{uj"~UPq2sU p HN+PءvGISPt,]N*E=U/ZA8*[^Í:lF(Qm[*ۂ0 U8z`]MT%I2&ÂeK$4!1[ O (S>E¤!3ګs^k SbbToD7ݸg> ݰ){[s^OA7TZ * 1mz>h ޘꐐy` b"Y02 [֯ p3e!i\?8N,1@#V7$4 HFeY2.f~"`*!Z @tXGx9'ovucnHJEZyNoTX]mq.첈 dDNb5 ;'(>e'I&M|eH^@[K/Kto7Og~#LI||(s=RlOg"Ma<-(0B\L v_(5od,)u<`im~ͻKٳkBm"en_4@9iJP'? xWfN$c(n8mҐ o"0rR~q+Y?3^4PT\2 >6>7Be2^?'җ&u10 4j*SZE]a\YA睫]8븽 򐖴4&ԡ7_7^{k~y nnn )M6en2DŽ<G00^bVm@ȸe eCU.Ǫ+cp ähJpyor"L%}0EQ9VQo^bKW{Ic-G%׼5'W~cFA<%Uka΅;c*=7jiʵ)c<5xm&;t3g I_`߈` ܃<^4RlDQ8؟*6B77x+[Y;nQT+H5*%"*{M'wT\/䅱DԶ8U̽^[BߤjTk qѱoVpjWG Qm[I?߼FQ'"ڤx8Mʽj?{;h(D!|ހF*`Ű0QA}*^ P4Mxu9r #*6eʰ:a ,gѝy3P@;V Xjz>*MeI2lXzvmrZ+ [caЄ==?nj)^r=GQt_:<JnT4@1Tqu+[NPq}k펦& ӽhZp7m÷0KO G ]endstream endobj 1103 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Height 44 /SMask 1075 0 R /Subtype /Image /Width 44 /Length 1084 >> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK,," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?| Iq v?Ӓ/nG,EP0B>kW{B7~cmF7֚ׯp;pn5C`K1G^kz ^Ssp6*ͪw|9n=GUGh9V_z)]Ggv,rX}i+iST࢏>Rw ($'PgB۹ʎ7J|yw-͜oˎ-Ɂ`cmo>!l'ȪWsH$*0AXƅ8˝-Ku$+zEendstream endobj 1104 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Height 44 /SMask 1075 0 R /Subtype /Image /Width 44 /Length 1084 >> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK,," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?| Iq v?Ӓ/nG,EP0B>kW{B7~cmF7֚ׯp;pn5C`K1G^kz ^Ssp6*ͪw|9n=GUGh9V_z)]Ggv,rX}i+iST࢏>Rw ($'PgB۹ʎ7J|yw-͜oˎ-Ɂ`cmo>!l'ȪWsH$*0AXƅ8˝-Ku$+zEendstream endobj 1105 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Height 44 /SMask 1075 0 R /Subtype /Image /Width 44 /Length 1084 >> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK,," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?| Iq v?Ӓ/nG,EP0B>kW{B7~cmF7֚ׯp;pn5C`K1G^kz ^Ssp6*ͪw|9n=GUGh9V_z)]Ggv,rX}i+iST࢏>Rw ($'PgB۹ʎ7J|yw-͜oˎ-Ɂ`cmo>!l'ȪWsH$*0AXƅ8˝-Ku$+zEendstream endobj 1106 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Height 44 /SMask 1075 0 R /Subtype /Image /Width 44 /Length 1084 >> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK,," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?| Iq v?Ӓ/nG,EP0B>kW{B7~cmF7֚ׯp;pn5C`K1G^kz ^Ssp6*ͪw|9n=GUGh9V_z)]Ggv,rX}i+iST࢏>Rw ($'PgB۹ʎ7J|yw-͜oˎ-Ɂ`cmo>!l'ȪWsH$*0AXƅ8˝-Ku$+zEendstream endobj 1107 0 obj << /Filter /FlateDecode /Length 3602 >> stream xZY~ߠ=8a,w+}yrI; iHvWWUu[B,8Iov/^ e7_\y߯aTj`]/\Sr]irn4GyZr}uqvRJ{VOڮ7dǶOu[xTw˕tE2C O@jGoy db%tq;cc>.ȿ>~:xi=Ф fV Ȧ)4yv)ban3cz &/]\AU/I]sXre`/RCƪ v}ovC!N" 28kiXIa/}Y$~a$nN8;v{ znAs!+Jf]TXveά#WIĻCJH@訂tP5K`@12ܖu"I-jCGALJ =l_{"аAX]fk҃ x h2> gMIByr`_ӈ0 e|ݔjNR&Ł/?]BraF{TZP@P&aga˓'B)ru&sjq_ +/Y0nBj(=Ğ7^ܮ{]X퓍"*E$f þ'!Uu]s0:PZSx4H=z198F[u +9ؾ4bD|@[nTPN0qǂNn]U$+ޛ'* txGl!%ǽc*s 8u}U5o8 *iu%{Cp̓hu>} I]M!ֱ=eP3 >a(pu@/톶8l32d/zf+*+2\ üu7=y~/@ldj ?B5fJhȮ i,r|od\ahK+Kz0L̥O:%_&(Ї^NJ!E &=(QͮBĘHbY#)&8AZR%UuorFh\_o=2 Kvs0U`N vKkьSJնځ `Wlʎ$XU1dnʞu`Xڈq#kI+!T3]`2=G h1O$;mb*;[ݶ`is.wXBH@Pq Ύ(_bʲ_9i݋L`N8r?UljͭzAyI֬a' ձhQmu@ Tit<$+BUJ_ #So}8|l5aX i `"shIR,G\EX`SmS BSɑT{ sBD!Ҥ,ҰpǏ;[jƴdڗM}&F:!g8Wre!`(x*dg<뷛?,{]'q /JʢCkđXV]–GOLf% )<+(Q:cӫQ1 fc 014trcg4q|(gق( DCe i!m*?(<w9P /Zg3JmD?5UD̋b'hIy B31XucQ! ~l_6 A ͍ɀjXbB.OPcol#Y{{A!8"ߪma]-)0YF!$F5V\L_:zm! me c~0gi( % ^bYs`ZGo#i%erAAJ@.V|`:^xjVy˃ 4E NN$\BSwʫ/,G*<&Qi(MzxЮN^S_n!: AݔIA aAT%ωY9 KvW*FͰ9*,t$| u@eCt8Mh T7ۋQc0PeDR;>P(GlJ(AΟ$GB]_*1Ӎ. (@1Z*CϜ(x16/ەIJ]Mw5_1 1L7@ffh;Pda*BN?لT:vO4@SFnB0 /gTC@z7o>%YnVG=;^(%LNJH{ӱpL8QLKT[$- Aڷ4GcnrSǖbn]0*^>B{|n WU\QcTyL1D{QA|c y +ݙI4:5MHss퀏L/q{wwCS8#(gͧF,<.muư <.$J.a[F[XX/ڳz᪐bJ:ը/3~K#$(pA6=:aq=MFD VMwě4GSBh:*Wzt_>Fc [~Hx _^ﰧpwGN Dӫyo 2=V3josuU/i xﻯ$Vț%zXN ff7*cߨqC[6J)X\3UN 9pZߗͨx8zqD]mϑ& q;%@0qlrkt#\Hc>Ex71js=v{[usETZ=>NN>z=ױ sZ5qKS5 F\!MB5L)3Tt_rA}κW,mMQƒ)cNNZxz"m_5]ަ.nX K_돵I.D'>b)M e'p930{?B'4u(I 5I83HXG:ɷ!ȹ;.ƎxS|s'Dendstream endobj 1108 0 obj << /Filter /FlateDecode /Length 4780 >> stream x[Isȕ/ DF' /Պ|HHB7 g-@]%9bB@o{_UXUo7 ]=77>aDХVnnXP ʩ¬n7 QUe%ue*^(0z{kFYWV+] ?(}fܭc[cG eq|!ew)qQZKmoM[wP+-\ҋ Vsso?wfѕ-'aM1{J?7a Cj*~&-uO3lfae4RvTn\V 3Xzxi: p\`a hU5{8bFe,oTLJdt%5{5ZJ_H ,HENyU]0/v_ i16񚨐iMr8X7FEaE}m؟d8M$DVǦkzЧgt<aRUDv*ʻ f`gPOt<(H Y>U@ʐPp+Qw=>Xe\>8 }KA(GѠv60G&dټymKњZh ublH@Pm7 `3hKv*(O9Wmנ,* R]@ (Q{c;sϐ͘DqJx.ug4d!P9 Kԣ1%cGw&/4 ,>Ocü# BE A)>|x 6GBFV-^oO2oozSԕZ/pTN GK,j_o?c?6S6c}]g24Tf1r zU!X?Y9W)of8F.\x[d>*>9*}'im pMlw(AB2ΠFҐ.*SBFQq+lia~} 5PUo'1ZRY}Kb$58sτ̀ /rV`ھَCN| Ș@#>~D?wF hܰm:h~MF#`!I8\nQ裏vd e*>B8H%  y .+H:r|IoZ I8N( EU-`):f,5P%&.r[3`d0q0N >hNtLZRGyYUAkIY 4H_ԙQj&Sc8b#?1䕈&aR$ 8 l5FPU~J;>QP}0^VE'`@8J=^.˕zqj,Z4mtfeN-@V+/X uWq2۳IA;:rԗ!9oZ7h}aIAU~mcmwLVRZ(ڷvt!ELșyXK 05!ulD"g4(zk9q&ML_)^ &M7Ǫ eRO@ NQ5/QA.,`5WSu{z3.abk"6RpsWAUJMBPR j<Wh2"gk̋Ł[F m`=1kx,fÜ2c'&DP^ʨ5o残J)2G4"q*yQ{,DxFG~IBPJ5zJ`a=1s@)5[eρM>u*JZedhUHZ6ǹ (]@yac 0ʧm`iJiChPh-y)v^R׃[| .eiJ9]ʟ T΂1Nq"J IfO_I&pTRL>Q݁/%eQ.<hƙwŷqG P6?fF}t  1DUn~?eCFOFտklZd% P1ɖS~aDrg)ML(vҳ,M>Oݔ2YX*E 3A,0 pk'_WyY".15& 0N}ٳdt*ina411{:g=)H\o.]- )μC@h@@ w6fH荏[E9 j0.R4 'sV%ѱ$ґO897sff$͹ T33_p]uk׹ҒQ$d>~&Tȁc OH, /h+LPR0~}YLFEtP㟳I",Gcv{]aE!X2*VVÉ 4dd[ܭ^ٞaQrfQ}lc{Zp`.b}81ctS>\DFˁwYT@f( (-AAc\w⥇ ?ܥb "*_  lY_Q#f1]O4fgVӛ/ʕT2Q[ -f*G)@!_|Al~D.KI\[JR&N)#LN`\@ lA@6< QEzʅ!UyTiMgnMH<VХg/8YC$Vڝ+zeGE2fXŌ8~}3c:4ܙ''؆ȑTmjDON9#Ln@.kGUOr.@e8;Qn)QfnqyTLr!>S ̞+ى$J\ceeLi;ziv)Nm/7}!*oQa۷iBQn cȟ}kBc)U0'z)Y5$Tɣv)"?́D:kgBqe|ADV2xaI{^C|<ȲI3Jd'kſ\c$ƢTsQX:L] kf#ޛhQmt||vD.YTClN`u VPqr1O>Է`RhC$x00Z1!܇Lu̯lNc&'.7x!A|@!Uz",GY}Bt{Y r:ܘ@?=|;",WhyJ.:7 k~:CvF+I1]ˤhd~j$yhg]E J/|7Ag {Y6|%rXxzum,XЂbLf8W7-.l0ɴJxo(х{n\}s,taaxH-Ou'ތw%Y(0[ [?Fғ8iMΖsqBgW*c=| )ËC*@R3xun+SOr+oI#h:|B}I8|7MRuv%e%AIӖR/br ^6e6 $pTc.I9qsgè?ůVFN'9_դ)dgxTjrAWOznL0mE~)~o<y-b}dq"]PCw5E`Fw%'yQOa&^bz՜ ] ZHt8f_o+Pendstream endobj 1109 0 obj << /Filter /FlateDecode /Length 5159 >> stream x\Isu}MgdEH!C*\ P5[Ӵ,$r}-WUV?Qzݏw^z#tTӫǧ;V1:i *cJBUPJ2>2E}UV֤bOu6~苧\Y)Wɐ]?`2{ћ>Bqjwi`*kO狥>?(I?he9v8+36Hb ]QKLH D4.pb %a vC2)`-c^媿%w:~~=o!aT(P@m{jLǃHXeu9"ҵݽn Q@UynYP5AWԛ`s+%wtoPA.,iXW35D]5 KoݲuGbB$4/Vtɭ|$r2 s ?.3$%N!@>>$2Kn tP\tT5|Iv 3fvm'k|_Bņ@߷?/0/?'M=rh7QA_p*+[ƶ |p<~hz%&AAm֫t$lE'h&]>7% B1n{@ +x`˜ᜧN+YQ8UrDOoPQ'd;6poa[B\A s9y ,4Z-kW8-&]C&Gt3H ҲL@d(uװi,#8pˌQs|c14T97)h^#.lfH8H.i 5 u+x@,:FiđBYDq4o]o-0E WoT9FTD͇/݋hE#;A;TlgHy 5k"-8YK-A>^ Wr޽NwBW>Ek-B`^'PX٥nUE|9u83hzaMor5i*jҢ5ssW0RF7 >J-d#L[SL y]=bje(6@LLbeeЃWsql`@-á-h=NFGGd̿V*?4sttMPAb+QOYF3E` K|0r U:^e4:{~,4.bۉY4>)+q?ڂ/r^h߉rИaM@+Q<]\,Z؏wpՂO7;XpF"T*9aPFfpkގќUf+o~&]D@XC_"вQX¡n=31lO+ZA+gݠmαa>hÜ;#!xId$A58AW9Cλ}}^Ƒt[%`%}K@VQ(zT[X5`ۺ !{Ŋ͎:bo!mUʮcL]r1=ÀS+G6``bd{a׮(L߼a/J}%mb++ptUF!@x7Vہ詸t)3.\~:T*% *̙p" ⯳Ff0 صI9 nWo9!?,@6紨B( Bɷ0Qd`I0%4  Fr*R8Us^eOI!P?=g<`$/cO{^x8v^79J w W?Bw~z6P2SIDh'k0Tc#h*?u&˵켮v9fqxns)~npѐ>pB*`B@hG^O{(oaM36}h9;XVT'yCZc2̎ѥ03#k#z U OMJDju7k(Y$UELtL'\2MF}:DleRJ3g**ޖ"+fq Q 终\U} hf;j]a u5hsJe -V-r lk?̫ =ȔX/W ۻ~KQb}tWQ+` W#8@TY2=rCKt]=:Jmn/sx('-AG.z?%1'[h2HW&g@' Ro/Su0S9 Ӣ@X,̮?8JKٱ,ѩͨLAJNthU}]' kWbLPL *\Vp<[֒t -؍֠]X=$^HEk6ZdW rh1Nqnmz%_9XH?5kABPF~\Ջ64ZR! 8A;2&fL*z u! ǂḵ^o!Er z]F#ɰ=`k~UΣVcH´s" pf"PzF7\5LQ* s{꾥8<h8Vy5 G̝XVc/COj^=/M5~|7(5 _ҙߣc) 8F=J]9<&Ȫuxlw\ 3}k,tAEs2l>i8mPQ)|qҊ\ LE'C~ ?ÇHX%| $1Ň@71D'j{bk?/|SLiGӦ 7G x:Q(K?+2h%Vִ lѝLsR41q]5(P\;޶'&χzXWm/K7"m>L5j|V?XZ n`dl9|endstream endobj 1110 0 obj << /Filter /FlateDecode /Length 4033 >> stream xZKopB%~;@ 6pĘ YgFcRz}CҾlc#6U5XTZTwNxw_/ҿ~{LC,VK^Ԧ*CCyzRJ2ղ*+7mO i*=%Yץ.vͺ]6f赧i—L%MݴywɛqeUWeTTKB>]Ͷ˕1&jPd}('#mҦIXT9e+ѣ͒7$X)31ׇ*[V/NF`!յ~ 9K]]Gɐ>sZ_kإ*t@S^N|PazaS]]/|W3!=!C,6K_᫧sל ~Uӵw$4ñ_7ݦ䷮x{ZM\2% LiLHVꔨ|Xjvp`a%Vi̶Q^mUxnl. W]0Z)틶=?F]/a1^ˁdom?5u硺h8[hfPcŢ]V.{77wC7k XB !fn;Ri Pl=}<;sTWAqxlzxsyk#"+v &d umy@ ?!Dlaev B1'&8-C"L&_ENoY`g֍1s@Ńe)fKhv#,޲-)slЎߩ])=Sۓ4~wqi.U9kQ^sa4԰=C ?f.\9wTvʐZlYfL81G)%J̑W9f I)JGA)Zۮ?ݷ6ZԌ.~˸fQo/d@aj45'%a! w5ͅnePl8C_iJfkjxRf,ē޽(=.?)-mʼnn*O J3- ׾DN LCT*kMF1 {nQ0>5zѺfx yCe. @hEs>=ϧBy v ϙ2p{KfħO>3.)F0OkQ'KJQP'\ kޢz:ugA̖5'>ހ+3:$C'P3ihx)$b $rlҨ+L(Tӌ 0e ^ta#Pb ⑁LY @*,{ }0L~(DpsЫP{K lM}EYγ+(]OW"WDP) ji# u=P#IշclϐK5gԪ2[ʙ!5Ǥwtzi/b> }0\xI³3,Fn2>|]./2ӣ+}3|@F]"ևV5U0& d}>L?]^[Art~׮}a#L7:pH/>9i"md;^ W?|#eW)WZȵ1P>{ 5RaNV7wZf…H?6w\tgʦ/${tO)]&v=;d}oVޢc>! ' Zy5Z1{C1٭i)t{/ɔ/85_jo=A;7(7d P9r;R 7N^>+;˦_ΰ Фݗ$F⥙ 9r0i-~ƣ\a #_=AQR|(Cp4#rN\iC֞XHÁ3W6.l%<,endstream endobj 1111 0 obj << /Filter /FlateDecode /Length 3655 >> stream xZ[o~oz(Taќ;gv6Evd](-"'33%Kv2<3s.Ogoݜ?zM.1D*5Ҏ.·bT\z)GNyrq[mf|w|z9;~W| *7uqd'&.guwG*{'D)`DXKF!roCcYfwcr_24hglێ'"/ eDVsafwz\*|]?rzՔ.mZsUfPY5k1.4 `YJtOhy^z^lkk ]IFy!mVO]Z_={~yȵ/ 6f_atYe&~hr:/*FK$i2Qjx#sʑ+,ن7?:4+%%}qNlV`wj'iɢp.%Wy5K8-iۥtkN􎽳 7Ph+{ 35qRN `N#i7::ԫ\Sŏro&cB{0u9 %;.N9"ZrP (F+BJ \ :7x,U抢Y0E3_~FW9&GB w–GC^( ^onVvNQX՘u82;4Rŵ\e͆1N_  *n̰Ws S +#j;hSr}SǓV)Kd`m/DO7i0&S&qO>#氰S k&ex;2xdFdջv5v}hu@VX5P2K!uQ̦ͦ^Yv+Hez'^AJJZ RϭE .}n_:פ8alRy li]øx 媋(S4 $%4#f) 2[6.jmF%XO&G3hU!h$9J#]GirW ؊cZYYpSp- "")wx-wx}9kcNa4`{2Y-&<2G6%IN;v؝Ws Cu*A;$/fͮ{XNj GrvlԻP.dKUY^f]WjQwMIZHX>ss5w .olv1O(hDߡzl;I.4Hh$E_;`3"4J˼, ':oK9kt|ͥPj$~RSKͰF3E؟ 60?8dxW>_VŬi?=xRl9%{!v9KNZ]MWPoìrLV#([i+l#'z_C1H͞q/-{r %c 6V)[E )YHjy&{2VEdQlM e~WJl3sYCLޣUҽ,TGPOF ֡hJ U}~йN&U#lZ>3 ]2m )JibNȇ(JD Y?H{3#(D G ʹC͹7h6+RaP–fik]iUM=mWؗAI?'y-ee: *eݡP!ޛ];;1j$4ÓԧMa gI!~1æ|&r?% ޽8y$2? wN߰ ??p2s\ITim\Mkgl {$ B -Ӟ)jY'65Uk<>WGwB\~S1JsN~|NE/ RY6`#c#7]zb:Z!zgFgt Gr!"[#E_-AI-ϸ-4F?2ꑞ2A+.9'AXf=#'O;6ue%lG.:oC QF8y,4@ B:8EBF"[lf *kf[FkhBb% \~|,6}B/?RK7IA;ؔx= ~ xtDgy? { ӻtg]˜' tjqB>f GޛW}..:z^PC5 Y{PX ]Á!Qicy&Q:asw ;]#;_JMuնiNLg:kҋCb GaC| [|*D~N]x\A\/wH(>gHD&enlronEU_]>]-hm}BQN^zS-%e.wT񺺩 Yr7=s,uBR>,)Mi+vuGCDp+ФjBή7=&ZTY+fN!җFgqT!giC"B`rpChkRCfm֩Q0OdGF5z) Cendstream endobj 1112 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 7315 >> stream xy|JJClB eQ BCiK{{$iFse=R:ipdQTǁwwg}4Or?uá8 ~}ߟ=k,f:9'a݄2W(e,{4rQ&:6zQ/Q8q1)a7Ņ%N*-9,64,^(jX߸+V%NZN1}a[·Fl;=1f|f~w̝oN@QQ[ש$j5NAQSԛ?Fާ| jZIP*j&EfSku;z]j5HmQTA<).5Q/S^GT Ԍb(-wN>ww0| >R'fs.e{`GƎ;;bBe^>Kʲ6vm素Ȍƺjt28~]pRX졃~7şD|xms/l5^/gWbFmTk`jXp;T. CJ4Ʃ|ȷ(t7Wn{Ej)jwIxn.(U3 5HOϰi%hGY{X8'b)}cL}>Ki`Qchj"} >U@c0렣k9*FG=h\{bWH! {Կ zܜ %lmlɼSzkZy܊ި_w=}6A A/GW!3yn!3y ^B"2A Ł؄p$\}!:4e[mMX)Q+ģh X=]UM. .e;w~?r_1sG1_,g6k+"LҒ9 dZt,W&֊Ϙ!׏4WOjRmʢ4[)6 OФ̂E;-?SwVr>eѫG*(*+]ɮLP-d˕JQrL"qB#7*u`6ȧu ϖ!?/pk7LF.gp%AG8_篈9~/ KW JAmTe\3`W.R(oر[6xX@z::x c2i$͐v )W S j] U SΖ,,vGNIɺCB''12+Ļ5W-$ZIueεD&>[XфRhv`P`A9ipn㉎35P(ϑG} :q+cjQsq4u%" lzb /5R"ߑ])S x,tO\|w-T@_a8_au@=LUB[aCTj*՗Ze"CkXĆ Xa*o^Y~qnւ܌(i0amF-AeLȅ4ExW^G\7:箫5^v #H#ɫ36h=37Eļ3$+ÃS"B!^ʸrF*.[cʮ80jrޅN%2h3 ډjbzh*Yiv 6<fͮ Am_t,(Cyjy؞VR,ͯLwkWZd idtf895%59>F*r0z󻈃_v */F~i4չ;.cSZ 霷B{PmlαvJ#׀#clmhL}N?荆h̟eE Qߐ`>1TI r-i;&$-(6T} @"qݣ!|͋1WcW!Ŝ0L4ÁrOQy3= GiN?gr#54 L)9>=2dl J1zRZ0am QᩱO8#uoz6Wk mUnWɸԸ O\NΣrqO3x99FW6z),Jm Q#dkp nַ]қͅ`eKr:KDl~!_oTRg7#O/wC%JC=Jg/8 ~wPD΁,u6Qjy˜n0 ט2MiU*VGT~Mh"_gқ&͓o.S3 O ×gKYKeh(FirW4vYҬ\AkZ -elG>x\&'mb3Kt $PU T;^FM Xزl}O~0K)kj2KExǻhfvpL-69,t:'fszpWZt@0bqCXTą!KPegkWU]_r3z@<,5-7[Mjd|:vP)E*|2y"pf$j]Vg#U-n]Cr4 /ܴ!cH'8q=~G߿v §Vs rybIF|1iT% zm~o7\N⶯yCt/A,̤uׯ~ f__[쯀F8zaׇc"K+L';#{'oL\~|g;Nn Y<*G=[7َGW]t!qߦJ,%bob 6>,sAs>J%P}~`TAMb{/PRk{áֿli@j]k{P'{\="!ЏP4}!6a@?hf# $\S6Y4q&1Ogh(qV"7W^ܟqqxF4jfro8#KN'DkId_u6ha 魆B{Qy g&5ٰh HJc*3jڢ#Fd' *tLM+@Wa`,zjZ Lݭi7L_WiwU[X%3S(" '鷜Æ c8E Kע8>^&F;nS)nλJ}eQ#w@]͢4{VՂk o!..AQhA ?(ͯTkI.kӤJAnB"ɘV68/+p{wi52ā44~Ri5E\ /z}f68/Ϗ6@qSs[Yc_UDXNT\$׋VnHއUUpQ>9p>;Wh.hj=ͲM,.K5=2ɓ]H$?r!q'| ]B7;[oJW(TUTBt$,2)="[9ېmꆽkhpheb`}<ؠAc#)>+hU$j#!gXE쑬>Ѽy_tvfbf.PuOLJg*e$$$EJL~z٨qYl($bʓpnkH>c%K* /ndtoh8ӝmxD@9tcK B!X֌L&$%) u"Z9,0+.2]>ο*1It W[`p 7hubKT4{L؃_N)̜&uBnK}JB_I(:=ˉu_jwcz)!rpOOᶪA].зx(3C٬|B/'NkO՝fɗ'ؑ16<t"x\TTlx\W\rkEL$_ܝ"#wwϖwjOG.l!U"~Mψ^V?߸_;' &Z* >r=XYwVVhC.}P*I }NN N ‘DC > ~s{/+ $3㏇h9?OhgmD"6쟧KUO")Rk&roYRu):k;~aӴ׶,,,÷&b[t5 A&mIZWMr9iRĴ]lY~^Lxp^iSdK(^EӥX* kitVL^L-ɛ*R-ؐB+pQ=o:y*j砾kA8,74ⅨC!8h(SyxDjK( \gN5'"IX;<>A8Ux fe],WK"ҭ~ɛO͖ jj n*@G$B$'QS)Ṡ!$v:S9(tKw>OJP|́':?eJUəR,O>tlsoAci4 F74yXQ,ޢk"QH$JKK$|fIL$B DUg,Iv9uďg& r <"0FT v7tSl |y˳/ ~8owuQԒLmF^`xцhٞ&F[IsK&ڦY\(0vhg#lw"I4rM5ђezM`IA-q=mv{ryM2h ]K C=׎i1͹.QZSޓAo>W+$ ydwιsߢZRwEߑ}c-tm!ODö'P_@oH;!_XX]=Ѷjd;^./2zH2?pŷx> stream xm{Tw'DfFm}d̂fm mvW++"R^ o^Bn @DF hkURںUZ[κݳgϞ9{?WDL"D"TEȶ +<~^yb&'¼$fnX[M9ol 2,K$ Pe&doɈONߖIߐ?'A0/gfn&ߖ؞"b!N("@;W"XA$BUsb+1GKPDhhk!~^<:e۔qޟ/t*2-G&8wZ{L\ʌ4٭5յlmU,;U*KШ$m.jHKnLW+yRםX܊p\Sk7dC:TTUDH>0$6?bʐ %Pl*~қwx jƧZwΤĥ>̘,[[`D| 宆5= t sL8 E-Te֤Ԗ5l9]i9/P;c jPާ=\Xh_iT@A}a>U/.,Ҕje%ZmiqYY\ATp=k@t I܁swTIAI(Ӂ,v>D5\nY}~!Y(EQ8NDk2S!oÊxjcfΑˡXx :1ˎ ] P[(fA)fL#Up}YqQy>X=#CQ;Z//#ȡB-I%1.\x5%R̕Uj_VWi1m[phoiѱ#.v 8~*(!D:'B]R닔x[~f.K҅SY$yC}{$m1Դ=x;E/ >cbCx.E27uf7)'0F#{kӇdRGp4"]L]{vToUяwvvA-O<߇IEhhѫ_)#{` q ~0)\qqCm)Hɤa'Lڥ;ܙ\Pkf$ʝGX]zz:6R(5z\] rVMΓP VIiih= Pv~O7]\Q\Y D{}\ =xqN"?`0wzC(p>mTס{f~x25tji7t 1)D + +C C us|;Mւ N)yFg.e*ؓr &Z_szsVBKA!6);5/ָˣJ$=K Ii yyC:[dfjE.pRd OQ̵>4H*)w =ܯ2T {4n{Fm cv׀ / >}zTqYޥ>SkIo>2CsA u,-+i3iZlY65РV|A,z]dK$իj^[jh櫋z?nTf&O"ھ4*"Y%YRVЗ [5VˆT?fX7DB |W{MDUIX9}]OYx0g8! |Wvm$?R871fa hmny,/ޟ.&{l*AҒendstream endobj 1114 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 7649 >> stream xytSWu+e 5 e$n001Er.}Žl0%B$fBI$y$9rodL&f&ޯ}{{Qޔװ-KvCƽmIݿ5q[fy_o-|{ڢ^-jLm6SR[T(5JMQ3TA-fRrjZAͦ9J**GSkש:Mj=E@^(ť^)DRaxj8DQ e~S;ɷEB&9zl\ãe#642g / =f|s^z:B?DQJ]h)>"Iܢ/5zP8Pd5Lf;!] Ή5a,!jm-jZ@VMx:wy"X=M;D4>@и@χ<{ (a.7V+XN<Ò[,m4VU;N?v!Xr i]|*nCؑ?;NM.G0p@ !ɪ1³v E ,]=ՊF"zù˳vz㑨ouđ#U98/ _To~qΎv\; b$"4){3c b3[3pDMym%u ​hB {Eyg^@[䟀(@̎fƮetR](P09xx̂i#Qހz˹coƒksxFQU .3.$aZ$/iX̗J:VAjUmk˹9(t3..4 @؋FwxPp<-a8?>H:{P+BonI N2x VqUk BBy\`,jBQ `ţ$Dy/wyuZ{I.xvKLv;BP0,ڹ=.*g3la1WѴ؂^2w%|J my|/b }ތTi??ozB./4|B~BZ^|gΈj }ʶr … heHDhMM?kʞ5{{ѬNFEdx]͟o_{ȹ14zn>zK02:@ȅ61o[Muʞ޼kp*%ZB:䋽T~Z<<s3.ZN2G=UY)YZHm8&$$"]Q끜VFH ^<TW]X asM.T_#.T˥JԂ uJPDdv-k`5[Ue?ϖભgjZcX@!<`M)8 jВ,:#"pLOX4i8Qٳi C,jjYtT=&N"ybE>Oc!Յ}܏`\dT3\^ M\eƠ0)}eΥm˓JhKQc|xj{٤ L94EJUgDݢȢ,YT_BNޙJDsNm0FEb)w 3saJWMv M7 ,+d9,z0[*l$6[-q lՐ4 ZK]*}%Q kM9pL*s('g.E-tsO$g KƜ7뮠>eVg,PX j:@%*[@Agu,JgB{[ZF#lŒf~jUS%ҭ-u]<ʰ5|ΣݻID_ %Y Dsy V!$'DwYiVd:#"wT6(Y)\VOǾE>X#Gdmu1ɦ"끶"oۮdJImdŏ#[%u *RGy>Ww}<]&7Z߳C@j{IPkxE%<){r͹ TT[+N"ׇ3V娶T~Ǜφi: r2_ s!x"OctaOZh( ؈",r=S)}>i/sцn鰱ؿrID&ٹzGHX0OPA[P/ѕ(`DK#!!19RfgCgcGߕǯ3[6RE'؝H#rO|h=C{]A;bbFT ')OTtaY\2`3V 詑{sk';+m=ٍ &IWXJ J25*,%AʫZm6ݲ;H@.؄SqdzOG#E<*3k@Vf ܏T|.2P'٦ <4xl] zgЪP:],_Þ7G I[ X< C~;v10K#Dc&ݕխ{^Wo:׬o,0xR^{v"Bf;MqO&dbeUBؗ<\xk}]u[;KۮtO &գYH 62[GWuCQCu$ż)k `94|¢zF4 @~OA<h'z^bLgV/|)ܖ氕Z/ 3SjFݨPp{ aq qJb\#L,ވ~"s.i{S13 ;fFꢞQ }x9″%?pcvf6vwhfb-j^MKA_ -aC̡WP7r>:oW3QRzȮk ʨίkhL5R$9j-YE6hK' '+W.0jl*:,rԅB(z@uMywBΦU3oO߸Nm_ZyYZ*_Ա8a!3 -E{= Wi)+kaQL:Rv u9Q+`<;}Hۅcb`u49ʴec{OX+S禚cs|('?Mԫ\G\N\;pk󙐦UM ˀqQ)Ӑj}G'-*}vD^H20^Ћ|4{{_G hۈ P["ĵ'G`7r97*RSm?Ʒҝ֦fd;"Ʈ5*'Unˏv~-=.@o]'ێLW2IET,xF4-5F"=`//^+p [x4(Xi)ìV󅟾l +L%SE3v]Rd4Z-WB&Ŧ6Fvltl 1(EH>4y)ّ52M I h+JpTv` JXw6'EmM}Fdf%>B-j_Ey*ʪȏd3f!Ӭ)Osf!M@v?3ngbX\!uRI`|d2З]֬ NasOKOiA7kѡ\ y]t $W,lu<CgӚ`V6|6~7ʝ:cyԣD4)HhT/isY[-Y,[V/~(ыG9Rx-5UctTo)mpQҢ-k3=.S*d>VW-j?=݊q›Z̒dzf[sFh4RtLUBy J|K-*dTGZЫqgCb/d4Md\٢ĵN;}@%mNVi{H.)+ ZI:^@g6Grj tڱ..uy <Qcb` w~}s2תC`5ǖ]Hbs n>ڋ3c*N5vө\1u`ptЮ?T}X۶ΪαTXٽG԰UO$"MLx$Cju@ _5q\S:,\ >y@,RîsHiKo?ּٙ01N&D qXbKci \h}GOm-\Ъ-9.U(hZ68sВD~ C)1!&[|{k./4 ,Oou 9 .嫘ƤΌƄAH{My[\.4;~Hso慼SBkr!- 0#kAŽ(9a?p;[魱ɩS]RPFhy4 MY]K̢ zﶾj'EmR/Sȴ]a*AiT@``UFjTT;jKJ)9И_\bv'?&ot4{ON{=| mE'@gh9K}?:XQ,'2%g9:[kڌ|;#K޻l?|UX>X޳2Q>"u И>#wnJݒ+1Nt]"4MazXqZNF$Ҭ ;H߆э@Νo&` rX04 4f8K gmѧ:;e TC#쇓ʪ+˫7*Psα݆H0hriGr n|N|NZbF$bYz+Gдv sldb|pƘ'z&M+\'j.Yg2㽭&d ؔf͡Y2;;ͻ 3W,m~(׹;:#c}^{fʛQ|VQԠ6j żҌջ=@8us_%H܊^ /c"LW i_l$ljۗ3㛬| }x=,݋'@Ϝh9Sס]*$!Kč Ե_)W JQp<ËD$ɨ_@(rzN@k;w*Ure6mUZza3s~L՚tDyTRv.=8G[#Yt\av-^x)f4MC\bhtZh.ym(Pj-tdFF:>lZ&7xcmm9N86o3HA ^nLؕ6EUwХb]=z%W<ϫ×+Ő&W'jolhonH4K|HVi*PCa}]+  £hH2V&PSSR 2Zh)-KZ<1 -h@ݞ\S7Ѳg'h= Op@* 9=oYx ù&Ó1?~r[SOQB*˹1p}[ۍU]z 9)9 Oxz&>FIKh;-O/1tendstream endobj 1115 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2444 >> stream x{PSWo$QIozvHAZ">! O  / $P@ Z*ՎLmj[$;_sg39seVν2le^LZl>^˼~hpt;6YBG'Ժe9" JJ+MNɖĦ VDwquuxE(a_+ әN 89*N-XvlzzoHR8%YJg4.=V$JI2EtX$ߧ|,NHI"IATR0+&.Qfq "I!V]ŸAC,""A/&lۄC&*Ǭj=loQzfM 4rs;6ƶvʬp0l3wBVSH4wYnV:ۣӴC+?TڽbnI>ӟV;u^D\ x] @Xd?ɛ~$ry'/V gu@7O?x*‹0? hèHhN9%Oaup DF[d[$b`wFD Q;ۧNӡK<y*jIӒ`nD_v0¸01}!GCt &u|k-W{Fj8z wb}fvWd/Dw%"i\g߸~4xWֹ 1jj626c@ð4rSbU*a搚AmVV\->?FzR =yǩ.IsrbFJj>ah+[X,ľF-Rչ.m|V[=1F}Yտzz#O["rD35q:B MlRDeQws^qe-K Htkb ~Tz%t#lr#0 W~:|N|;sppj -|p!iEu0xv-CAgұPWl4lyjM:ZH:x9Q  gzs`ñiCqKG WDKv6o mcO@[v[lT d op.>ޅe2PBRC3Ӂ|l$R<0O^ 2b݂<43pfCq}F[QN^}&BH4aZpFA9g*FCkk!>?Vnj#;7g`=z#~F:) 2 mQG4Z k K:d ]Y =7ǶK˗>Yp8^cƊrjRP.UUWkkhمnCh1?cb^9`v@B!ΙM&`-5!e5⋮Q MeA>'? &h{#y8yOG,':ֽ3l SMN#^P Հ|#2? -YY-)tۂy;Uf3ɳmaǛVYQ|4ej"-We~ @YRVVeS6㵀E=MtQ,)/owCV ߐϥ&Ū2z|ׄeՌN)lcbW uqꟑ]SMR)dӸws@LY:4zo#JsZqBzzݔΞ 'bendstream endobj 1116 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2329 >> stream x}ypW8&0Uj%aי)C#$4-, ,ɶlY>}ږ-$d6vHp{mL &=ou;]tz䏝=f{ZDE;6= \ĭ.5/^-UO+Ő+Q Զ)ŲD"uQrm5y6m*\7=Y#STV+rYMVx9_]iyʵZN~zۚy:VOV/kU=Vi󞯨QέH]iU:P^[a Me ͏߷uۖۄ^i9l' [݋EU#rb++,hzIY/XZ2󥁥x!GpX1V|G[զ;0wFq?"|)\c O,a<S_1eA-Y45 @ngl %Rd%{NEp |hfс2(*EѶqS\!a}DQa $sf߇YрsBTJ`1Kb$r'GNM#YfK>eq'=n Byd5+&wƒKN_Gr=o);:QCI|, Nv|4];ϖUWP@Ogݘ~yZfKm]ZVќL'sْHF@2{;<>V7%ҷ&xDZjxK֠Fа[ǖ~Ŗ#1#ZWO9 WH{HPhkt-td^(i^o?ؠ~p8EhTՕ ܜ&E|-ơK#%d9;:w+ OYޛ7h%h?w `j`3$*[`X693Qy?53/Xlo SB4£1OEzb+1<=8H:.g@r(U`[Mv_;tX]fRD(dUV<m')I>R׫TL&JoEop?s;gIl e6b)p'z.+P :^ SH$cљr9kq6r.0B!:z†>[H3{Sa!%Tm:7^R?Z>xK"> Ǥ`5sb{ rVks,bO9$ {^@⥼s\4L+ɱ<3'\mV V]B_'nV0uUJ]ZD=v1 88۞V*Iq!wEw Q_DXh+he="y_Ǐ2KZ&U;/1 }-WqH`9Ӿ7O~M4\Q8E5"t`ջeYRl 'kendstream endobj 1117 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 7532 >> stream xy XW}vUi\:P3UD4j3&F(F Ҁ MoznfmFРq5ɾ;̼v3b_|`Uu*Jܴ"fygs N >,8y[1n?-YX0: p8v?ДeI{s&3dA,\T,;:'wžV&]b҆䔘Mi3dnĬ˜.gN$Gģ1b#1!6S4"xBL'qRbNDrIb1x3XE!VOk:b=1xK# > AL$FD&1&dNA!C gXrط#3<$KϠ#8Q2GCQ]460~exd|=t>buDKȮ&L8eqW3Kؙk1i+>5$Aba sq␎vAu| PY kAI96UH%v,鬭&!yT5KrF[ .aJ_>O+YEϭAlܷ*(DDX(pz7(87_"KiT_ET|iK笼_H~y},\K]m/2J6d1brCןwTVڋZs{z_# 3s{ ZS^^QپS@Thq+"$abA$;0]Ituʃ!.yrH;(Pw5SY^YZM[Hڡvh#7kӺL(qJsǹN֜NOD+jx#=p&˭4*ٴrBޛ(L,˔*Yrw?е\>&@|%΁\oa{,>|}f7w4]BiJ5_[kxs՞i9v\@!'fy}Py7ہ>FgbMQ(%Qd90W(5yL(OE%U떨F)' ,YhZ*u @^=N{tfnB]s |P'C?|&/`LE2h nrOWSC?}tq}.6;3(ǴU25N$āS!g&xlGlbZfZFp)z#?™e:R( D#gME{z磛go8!"7J]fuAL%J񎧍&fP 'C/"\CUP\,*AhAJ5T?Z>[k&<0°@ bb9 V_u4@o[§(1aPЧ}֤!MIۓa9?DS p\K A$VUs!<$0$RK7n^"J)NɀM-N8ؠnS p]f:!じ`5Km&5Wپeo=`9%b6D+sYS.6x6~bk`-'OA~GȢV8IPB7߻QSZsz͠;F%5 7F|BM^Zy59\ҖKqd65L<$oPJ0).c[H]SX+rZX'kiKٰew~٦瘹S\7=8{{VdTBajoQACuVȜrhU+PQ`b:uQ :j nxtڷ:vҭdQQ O@ekƙW7mY]@u3:)ݹ=UЃZp>йNFmVym 9U}8Z#)J mRԂ~L4P\轭pzE/_'ڴxˉrPURSE(7逎.ݥ;p89#~:LP|t }vH*rq8pLيL Tqstj`P HDpONhjx6j`@ @Gqwio&HBnbr6c8sCڠR hZ(il0hD%@%>(ǿ[;XzvOt1F\hPENԄu Gtjo6M&5N% :9'$XOlwzMth~c"3Zp6L?VN<8L.uu}]u4 %$goR>Sܚi(o(.PS$}zpvZb:qrh4rB|827?cf,&+3VkjN՞rm]U_lCbϯ2)ʺjcQFEr%}c1^mT&RW/W^StTLm0L*K2}EUc=gsU"^)>4]^E[[\{=g4p(Gm+.#\k Y {`B#f]{5/rk7g(<}@éFLٟ}ЁٌT.)#]Ypd`?SQE{[ڪ}5\;L-+vzD(CÃmp|LD}>*PcTtYT{\\xzHxJlR*o܃9nĭvTxڭ"ptp%Uf-W$Nyuwb+m_V깞kv $1x0~Ыvφ'oskv b3_C9Vm{Yx ;af0%+uh7_^uzXp9s,ъLfXSyO/*MEr]\ݳv`KaƖ6P&^cJS"2WĊW;*%A4+r yDž=}4 o?<{֋7ֿe"q@#aD#QKƫp]w5oC+y4-D<fp(9|D V+˚|o?](H(Ky㲟8n7VUT`r_%cq;A.i 8b8=X+aho%-{ZQ`x]N 8vŸ.X!.㯡uWJ_`EU*`9o5r.3 TmSr 9nP$ʜUhrj4_[* 6 gqC֫)f( %hZv #E嵒K/~欵̀Ш'hF*ZY+aJ u5 S@ ?7h:+{a.ϥTWq䎝X0CH4=~]K'+23G cQMה}!ުZePq_ںd+ Xn*7C` pJ{pU{@Xet-F\;>*zn ;chzy  "t5)))g;Vc3sPJGïH`D+W^9]YLݡe2Nq788CzNQN6c[%5% {>l5[14Nu!]brl8N蠡&A钁͕*{5zcK@aQpZ0rbRsX+rU¹`.h |b)Eh Q <FCp&lKI8CK/cM8'F,qI4)gqv G =H7Q:?tL43]awe>T|o4uw%FPDU+Zr +{9hmD XOxSG NaBFHnWMQ6SMUv1 ӡ(bvh-pk-P7>|oZ˪`wCD/4z4)^@ah~W-u;]vh5z%** LN(,g FNSc?{ :3ݓ^Zv=6#&d:AaT9H,+hLf5YN;\#jK_Hؑ!Tɒ)` jT_KHPJ-+7dm^S+d$5:C ;X-_X-RE5wwp$ S%Nߺ.Y,̤@U;|;en0[MƤb +{ p MdA&Hq05OzmH%RrV9,sGnIIJO=ӯD9haj,-md!?# =9`!Srȇbx}C^E ~pwjpGSFeZ E%xyP&\:V^Mtm0 dzKOq7/0 H~3l7_ȱyve#}1ܪ*öYB9%2ELh5Z宾 = VGW*:)5딇oq>8ZmrNʭs*e&AɔR\mm(eHRÙ3՛\|TE( 2E?3ZRd1f漖?*77_R+].c>:B?P꾺:ć &agng1@G)L'5iN!1:k;so}ϸS)TsWpk[ VޏsGLe{SHʤiK ɴa!Ѵ$O9V.//wȹT)r5)U)22lFnfn>:(~⢘;ƻq'Sb߻T?_;y0U ='R;_ L^Wn/p]GE1g=SD:g5 |}-.mz]E>mECiՙ@jV":g*2ID_k\[id'|R-:$;dlh]?瞗Y'[ #&5#tŎ "?W՞%Tf#me_r=}.GmҔw_{X=.58oF#:.h%Qdq6bkQPR_q缂&GKӓv-HJg/;GvC>QyD \vx3\ºxt-hNMv*(:} >C JvFI$: #-z 2D+MJJLW3 }CD8nmmF̓&h,®V +z; ^@`5a+!"` 7D bQ!ݟzmYSV4F~ cn^>qihy To$uoj a;&0`?g;:uS>DӣXFA#%ɴR <=J-qz(shlþ ~+ళSJaYä$+Ta68@% qXƼI]`_ 0VVAk Y9Zxe#32222T*>yJζd_*itwJ'SM SɁSg.[w4Q&G͌~Th _~kߑ]:GL{a[K~D{U>bu/9ADbyZP 穱^5d;m$If=PHGnJ邷yh+K'p.@ĞY8HKvM|u--5Y o~*{o݀ l&+,a8a_Aߟ#w%0j4F| {B:Rb(,.ԥi%UhXGI kMؕMU%ri8TqJ;hE9(+6x?Lm 7 ?Hpo^ln(?!_ WU4XqrYX=r4^e6_@z A QȪ*^N[Ѓ.~>*%Јሏ  . _0 ;`FswKVE@8a*B_PTۄV<@/a5z'vӛ]UaQ(/.)h88%x~46L.o3Bz,@OlZ-8VŴƮs1RU)H+|{ ׬1h10&m~IQۙKWo!CrHȶ:\FRY4<?O sllG*umu*I #RU ald4Wm0FDFg>"< X-Z}N m*AC`1O_Ϥ Joظ\nu898 =! #wD#4ԽqfXtepW3\ę†Vo]-* rA7@Q.yr9fZA>wYxG`"POw_θcK[RNJ}Ph)'Q,u>fTX# endstream endobj 1118 0 obj << /Filter /FlateDecode /Length 207 >> stream x] <o0`s`zp#8Щ1>IVa~9 w>؄ GTz^3ȪtE֢\lÈl'}mׁt JXCU6@(6E7@ddmh D֡h iDVK}V(;t> stream xu_h[UIvL;6f le"hiE[g1c.5,I{5 Il) Ede*/87Q&}~="FtB89uۿM9tʘTw80F:o7I['q?FbS\4u{8$}fb)m>`B^#HO98ppZ/N/E/x8nӧywlS4RJBEs 2+ (@%sOuKbVMFpo ܋)@hteA.#I:f–~ٽߐȩ}uȂgбDT5꿌Mw7a͊_6tDqjz/mcQ>(?b98rصh?5(A_Ӟendstream endobj 1120 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1274 >> stream xm}LSWǽWd\Ȕ^Dd D2?"꤂f,@JA ,E0/gtNgL9u.-9$֙,7{Λy9IEQ3T2/IM # ͕b?5>%O@+V>pEH)ߍ`v41HBQs3KK*+4BNd61 "tUo,Ah-C(mF!ZVL' R1|U itZ|FrP3 xuP@F㞺C9 u';-?f*5 =! Or%QM~ɵiz"]Ya2ӘAR5&lgԱkEE)O⸻uXJxr`W&ނ4D2u }-+>ێ6tmٴukO(\dÌ`TMp' > 0bͭ;^X4XӰ0DqxfF|)pdR#I$md˃y|sΡ7{ԓs ޣfgok:r;SԢe.o$Ș^x|; G<$U "em$\S ;y9'ɺ.( 'V>B%06pka~}ll&ژͮw{FQ_wF4g CO=Q)00=ls,WmzmmmYcuE.*'_hqf# tCR`^ A+ٝ>ӼD%NHH|n)-X[6#f>7ר5 0; O07̀~mkk)EUal^/P]"6@ôt&F]?GJ^S9aIƒawn6&`=l 喲:H{X*3}Mߺ:/!$mH{T`75\;E텼!skkCD?0~\B%-WjvXxTt8S{b}Q|" V[ Ǭ dPpEҢ5=cJ'=ƃDؼͯ^8Ƨq/|[OsWT.|<X&>ﲋ5=͇ :J7|ߟxue=S9QrAEfqĹ3YCu2endstream endobj 1121 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2633 >> stream xyTSW_{][yFkcXiZZEغ 2RQC@o ! 1aE[HF""VmŢuX^ n(<=RUq՗? vӡ(${dE8˝O%If!:{tjc(KADv-  ޙݘt0l=Z)!ӯ)R{iO'x/s 0zMiM$iiف5Pax-GO{@}&m)rN+QMr+ JngT/Eesojv̯ëHt!!W|;0! :7C<q"+uysPd7VlGn[z9|^ T<.uU>xUq \Ɓb+7F񕲆]ȍ\5˸V1@9Z[< nWPJa -xs;nΗZ|)aU.ԁlѥd MKQwO|pVh͛E?yjg4 'H`f[vsS2vd # J řl*+7{^nxR< >3,2c*~L"YK2B#[ LJ4lɶ (ʖ}AɕnMr{|]u\%bӃJ~Ϡ&nY}U-mr)`֛sM6]&O577:ɍqZ-kK+~Kϒ+qK}=%[8|Vf]T A0.DތKy27gv p_-d`by +2h8E}p?HR!%iY萡Ю VԚݰ1޼md،B&jflFwQdЮi7eh}B@PǮj LF;t3:3c']Y\v0kV7C`߹ yWvMڵ~JZr[L4|g"(cHTp|s omiNir;Ds{Xؗ'y;\us[- Y-(/ח&.'`986hBO{uýzgsRQDYug߃~nn;+WTks8S* {pq7G9m9tLZ$P.+\Gtp1~_,a/7ZkVr^Jf.;E&LvZʃe{(Pf:=c옹L9{/ʍ-}_a 0*gSj419c %{}HƱ hm8РW7`}]j'#L y2O@ 8&\%h Ɏ,5 Nbendstream endobj 1122 0 obj << /Filter /FlateDecode /Length 678 >> stream x]=n@^ DɀӸH$E-Y.ř)#j>=y^avӭ^nsy}yߦݨv˩^ߦw4 4is ΌA<1AK hs'"p&hFg hZ4 b0jk&kFjk&kFj :p.N: :p.N: :p.N: :p.. Zsk!oAok!oAok!oЄDAQoss`dd`dd`dd`dd`dd`dd`dd`dd`ddb!$XHj)ɥ$IBb!$XHj)ɥ$p)`XXHi)ť%o[EoZk[%o[EoZk[%o[EoWJvu/.8~>|T>>vG\4˕/Lp:endstream endobj 1123 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 10403 >> stream xz|վ u%&*D"]:H34ll{&B)RI@+vk;{ |}l3ʷ99X999-hѨF1)雫E׏I&}|!`.x{]g.grsr ;R}|N I*7lnfXoL._JS*Vʝ{?]0C8Sfxlɺ9s6ּ7-ؼxQ%eK͑Fƌ}fܳ{N8q/<1_zIO]9z5555555k!kkIbS%YKYCYX`Ma g-gMe``cdMcb͚Ú˚z555,k9\xCsIYYXl֣,1V/V7+*dp&Ecz EVr 9 Nn~'t[ W̅cijݏݯ_P=pA[AY3< f_?:98?{彇볠WY'KʨW(%gˀ7; `|'f>qh'?YЧW 3i/~eDFJF~=*98ck76z(mn[%c2O٭pb;'~3$_RJQ@^G[]N#]p` N[)%+abX9|Nթ"s:q7c6У7ctFwI*40(ONs|UXqOFhQpȳ`GiG^|Rы} q<| 5ܪ6A/ؗJXW5Pp {QeO-0#X t.߄s|^&EX2tµ8mh@w2pX/Z[NtM(kˁS97yZLT"5q vbJUcP]s~ jp9"ŢdgRtwL(C8fӽ^y+zIyj,\Ku+SR-=0F\'UKkoWjjr@0\!,m0) #ĸ .ir.B1^-^G!xeuai67xϤx vhݑ}:0aUJE+ )%ؿԿYlJ%%C\ٙ]S^=%};<Ӗs uB[f&? ĀOi> {\!1w'I`3فtJ#s&UcFv-y2{̢|(BlvH|Id4{S ~11pz]3xÀa1t[PiͺBLI(^dh׫Ry 'GuG OӚtOaZP\o*fuҶIJ (naM[Ж#732sqUh Tzk8`Y RR7'k,{katB8߃!־}msАD-y R\W? m|0vKZPC-ٗ*ȅh@j7AVЗ˱={WH6 4{qz ͔^k/}K g9~S@g9:kl]S1i C#,c07 ላpepc;%p@+0*8߁j;Ã98d}0b5ݫsrZy0^+b!d]Ԓ1,-JTͫ(O񫋲a'e56MӟQW#אɍ5gs>3}-Vn^+`OCQphf g,U(DԗsW>=e[|JJ^%//|]{74ǜE@1fERYZWT쫮nwLdLZ@@x2CPx+;03uF8D27=1=a͸> /IU @WƝq9#Z#%;-GZKad> _Yf;iD*?q/df$Z'g Iwxg]q39f̶η޻UUץ~> }lK/SSc>4_a]wGzkd*h5uu5ހ aI?E 3 J]!WbV!miB|ПFc X H)DG`nvbS2'jYb8xQ4`z!~x˿Ob 2Lz+"K+8/3^0+z_B;VVVХWޮK?|;EjС2X%S %Q7Q49 a#˽H?Ή` %Ec |s/S6k[$QCP4wh?N,̠U3bꖧ{'#^DB'`a  N4YuJOyBm]bP蕲UIsQN]gˢD J OSAxxk/mk2T Ñ2 qO@IZ?C<]8Vm`Ո|^zH~PzHnl\13+yC9:`#6b905*uM>5v buŒv i჋0n5 *"k63q8nּ{;ppptPs@ mz*&=pץw[Ķ]NTa 8(2i/-/K\j~g[܏`. 8Uel“X\)#GL~@G܏%&d^.5=hQ=$zDhU{`{-ԵAMk3v2/AvA&*R$`vS/[nz<2d(W׾s\ 0.5iTMoHϜbkAt?},\x>t࣭{r˖!au߄Z!h< ,D)*RcC J/KK j7W(jl%ő5ǥԭn iJE:8\XSƀʧ6^Ru~CPPx3:R!6HEB+-?nhmAllu$-IZa/2"b n,[߳9Cg .ٿOmm2C@FKtMgngX< %L[ |pR_``,cLq ؁TX*%Rom=|Q %ʤ+Q )2lB>} >'HzSŌFxa@W5(^ TEpzb6~0{JS@LJXr1EA_K=?Ŷ5QdCaPU+)jL7$y$Z^P=r6_̅l8xq >tnm4L+=F@٭8Z2+D:ˁOI(lK!%AW+HS᫶{Kxz'\xK5+v[jj-3h g eh )Qқr^xWEQ%XX6`%DU_9c{d3 >(ä]/Cn gAU 2-BN4kua{G,4ycA@-&|$u~.AS O Ĉ¡s Yٚ^w3Oic׽]Ay2L(e !,f|Y6`|!`2P9Kl]֪;JX{L> A.NHXf -cW,Gro%E3l'q_[f>O9ܞs `Wd'ѷk+٪G=`>< m=IO΁0 ?y?wG2:O9 ҉Q1]+>eBd8k {Veܑ}psNFlw +-R򭬯U)I>,?UBa@~ Dl]qWW4_ g_YĒ@s!o_~LL ˸"NTEy˅ac@Q`U*vT7u)Xmִ=mKG ;~ȶ 0~/0mVDwTӃeGͦ+@+4K 3Mse6z$n5_V Teo*;JNOxOآBUYY;y̑j@FIp"@$I-ؓ;c:u7Džo'Bz`_N\B[5o ރn]܍d}/o;~\S_ߨ(STe5E$iozOA!* 0k@JpWX;UDV܉\Ý(33}Zͧ ]5t>B}ZL I:4Htwlw|.\}}]pis7FYPB"kd33u{F$0J:kf/\4} @a\}2J__ޯ74 C߅ vG:Vze7 SF\^"芻H,ԟ/wDdz8؎g=CJↆxw#L~8[n! 8kVW7bڿX?)M"Oh1YgJ\@*> sn x[ufvN֖2pt.<vn'( Ш4 QX!YmZrOQU񊠺Ɓ%f}.G3Y> g2ܙUAVwln  m+m.V5'=_L%["]:4{qG)<? xeHP:b+?90羥۰F'|7omp\[Ρaj.8ޟ.@ vG1K *.K/Moy@cFI]}ugίa}ؗt7ěP.V?~S/”gN*nr'}p>rO"{)@QDҍ-dE>uXS'qʩpuXZVS *ҠjʋWJ^+F?D{4& :ꍀp }~/[xV)IATo#/*r p io, faHb=JK \nm jZJ#P5Gŵ&RsKoADkh]\ԖcN/î78rܠ-Xtf @QODv]~X+Ɔ؂A*:%ؿ̡E|m'|ճqYAV?}ss]rE3:YbgxC߽DaTb +" uunvhđ.P D YeV[A\[Sk @@Ohcfb"{SIdS1(?r .L/O:#`-P~#u2aG4:f;%.^K~.:_ '!Mp6=8~f}1GD!Up4QX>z0g<'ϞtieY\W !=3"R%jyCb|LKQ{0Z`$tE6dko6?BxDJ2%rs5csma# P/-MwC2ANߗռ)ҡ(q\ShpݖO:Usߪ= sm$Hh4Fy'*-|Mt`RX ^:5 y5b>v3\0[y˖ˈ鞗-tQ}6wu;]Gb[EtJTa1Z !YX-޴j23P#OL=]zMѡOr=ño>c'XPidYf)Q0mf- %_.bW<:g$lX4$ns~ Zzվjio Et/AxvqНtE׽;is!C,KH"jDl_/+*dg.Ո`@dյ)/?7B+IuQD嗫WޞFjuz<MRڨhgSlYTh!]K,--A8Ѣ5; ;&2ѫM{4c[ @ 6u2H~]z!zkE&>Z\bӦmfmIR~z>8ApCJۈ}{ am좳1,0fQꓦ$1!UPbn`Λ﹔d;%E'=Ly2/ɠ > :9=h i@ N~?pH ^(=̉1Ki! X^-$jjNl|oS`MH#M<¨Pt=m'e!dZH N|u |a/{9@ZAǬDž[2Ȍj9q@T>W2ҀB^!L`aO.pk?HydI!{o1SpL# m<0B|CT\ `} mp4(""3Պ )Tf+u@"QI }B6KbI%BB7z&6@UWEKҠ< Pac(Z5BpLaY@L&7IݾܪkU2>S<;zŏojgu)i&B a%͂;ŅC2"r8*˂x2dF Oz?Xendstream endobj 1124 0 obj << /Filter /FlateDecode /Length 176 >> stream x]O1 y?"tЪj&b B4U,;Y?2e3ΛKXF:<@jճt;@󫚑m]%*I Iǹ쬕[5`?$隭-T ۡ+%5%>RxbQ 7Yoendstream endobj 1125 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 437 >> stream xcd`ab`ddds 4H3a!msɏ N/gu0w,!R{\VFƼ>ʢdMCKKs#KԢ<Ē 'G!8?93RA&J_\/1X/(NSG<$C!(8,5E-?D/17UN=0霟[PZZZWRP`dEk‰|aӂg2ً/)鮒󂭺hQyS|B@{2Lf];w2~w};#۳6 Y]- ~g9Lı*qNj}Nuo?]u]'O5IxO%l姳ýg>20"Yendstream endobj 1126 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1225 >> stream x%{LSW{iū"Nna. A1˘26DPq:@- m>biElC-QmDp8bә,KΖ?';! aAd죒]1*ɯW wU.XE,ۺyѥ#ɕȺi! $UvT1JE='ɗH7n,)lX~dK#*2L32.shV˕ gWqw֭E"5xPWr]L3Z652yh*U7jJԵ dA,ljVD%(%=y)!$rr2`S+˷#z&"Q 鞀9)?6qS߁׫†XsJ'1ה>`9 pOC!JUO=EϠ^2 x$s1WR5/Mib_}aG,`fCN#zI;x5Jm^ lkc U|7$@69h}+ҙ? s)th.g/ T+`տpc2G 4NӻAwZ8yE~ Y{sq_a(; _?5g0{\'m=`'_XGTkZ!?\T"qa5pA|qf"V&g&u/JOg0@BgF7[8MIɽ@e ^֎FΊ6S(j`CAP>Y7ǙZD#6e5yy,1.mnuݖ?o)D#wg D'qFդ2ud*I;E.Q+ ̕?}ާ梹w?t`;ٝ C/A|eAd/cs@84\,iO;E2M ҌӨ4jMKHJ'i\["ӶOvV^?:>" M({:ZF#o_7Ѽ+UXP9E]PCa9Q|ޚBSi4"oL 8"[x-~ǰ/X (8? 0[ ]!RcӸaJ~ yi0Bl\\xj%baI΢S7/W7endstream endobj 1127 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 388 >> stream xcd`ab`ddds4H3a!?VY~'YyyXV| =U{xfFƼ&ʢdMCKKs#KԢ<Ē 'G!8?93RA&J_\/1X/(NSG<$C!(8,5E-?D/17UJ=0霟[PZZZXQÚ5K_{hln(Z0g),pmlnN5^lV۷*[n+s,/Q[ݠ{u߹<4'|˴[8z}WYz3_ӦMwL\OXy8Oa`endstream endobj 1128 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 575 >> stream x_HSq?7emY{r"ic"&%rQ]evzCPփe%C\O z(H1!CC[|pEc\Տ`h^nZ.k+.GsMM[3J9I} b lN;2b58)QIU|~r6**RHFĨM&$Q#U#j=Y 7V&*m41\")$ G{UQ!AKTbW"* 5Ex1dDJԘU_)yj9aj?svNjIy7I-a<])ura$&V)O^U~f gvad۠߇4;thdޡb^Z;|ͽRw:}KSλ3 u 6ʆ8>/wXN;$dC. N]c㙟uvY=yxv瞑m8X)sm@`Sy AVa\!I,d\JZ\@lQĄT~gs9n)W?endstream endobj 1129 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 583 >> stream x]KSa3mLd< f%,c3B-γM&KG=NIFϔ ]@7IiEdW;Hk.ߛF ԛ,f1'DL<,a|Xij+6;o5go"&dBȌģO؄iӲAZ'AmBi!n{lY$? KjQў`7Q^.q G8_ unR[F0/R5I;4.qr(/ T8.H%RtdBi(؍m‘p Eͽwm|jvv, i\^`NJZq6GJW h}m8'i@SIlU!a.M-i[CtZ H)nŭr{f "&ev'<,=[w `'EyZngTk$ܼj"^[\Nq BO+wU+W&2% zg{$fEb (IrPtZ%5P3>.W: /3endstream endobj 1130 0 obj << /Filter /FlateDecode /Length 161 >> stream x]O10 :"0~ 8ʀ0%:t8K结ϲ=(ul"-~H0XT5`e⬃M'l;jԥ=4R> stream xcd`ab`ddds 4H3a!aVY~'YXyyX~_#=[{TFƼvʢdMCKKs#KԢ<Ē 'G!8?93RA&J_\/1X/(NSG<$C!(8,5E-?D/17UL=0霟[PZZZWPhb?J3==SuX(7!M.ꭍ=Sz'L(WBs>ykendstream endobj 1132 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 533 >> stream x]PAhAi6nS- $sJRP,FM6I6L^(Eh&Hދ7 "KqB0Z B"yza< cЖ{l^3GC$ al0 Vn?=Oh%S-f1 Gx$29&:UP\Z)jA!tN& Ng1.E )rHc#,U}U͠Yy (eTҕWB.Ÿ׺L 'cQ-H wAo  CI\.Sq5(@X1*a)b[?*Yr5%Ig9nY1I͵/*dBصV{h뒗|z,|A)k7\|1>G wU+r{0v{eL{ږEo ke>h(.sl ǨdnVm!ijRԩ~~?endstream endobj 1133 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Height 44 /SMask 1075 0 R /Subtype /Image /Width 44 /Length 1084 >> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK,," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?| Iq v?Ӓ/nG,EP0B>kW{B7~cmF7֚ׯp;pn5C`K1G^kz ^Ssp6*ͪw|9n=GUGh9V_z)]Ggv,rX}i+iST࢏>Rw ($'PgB۹ʎ7J|yw-͜oˎ-Ɂ`cmo>!l'ȪWsH$*0AXƅ8˝-Ku$+zEendstream endobj 1134 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Height 44 /SMask 1075 0 R /Subtype /Image /Width 44 /Length 1084 >> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK,," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?| Iq v?Ӓ/nG,EP0B>kW{B7~cmF7֚ׯp;pn5C`K1G^kz ^Ssp6*ͪw|9n=GUGh9V_z)]Ggv,rX}i+iST࢏>Rw ($'PgB۹ʎ7J|yw-͜oˎ-Ɂ`cmo>!l'ȪWsH$*0AXƅ8˝-Ku$+zEendstream endobj 1135 0 obj << /Filter /FlateDecode /Length 4923 >> stream x[Ms8r7b_03vxYEpP%Jduo/?JiuɡH̗/w"*wExw!"[]+.|KY..o/·/\cy]\er Qfv,͋4ه{]0B2v:>s]Џw*zm\IKz:ZfU[nobOx_b:Bw>upn몛ͳio受v?/ Y8]((0 -e~Em}q6xa}zR'V\z)y5@զmڪ4_KQ4Qt c rgl$9OXi ]W}HvӁndӪ4Z)gͦC6eYC3H3jҝO@%u^v6O)r/"0ټo6we咆Ry^Ƚ)"zdr) @a^TNt&xfϫPVJ e$QΆZꅱOGR(B8,gd>W⫗˩\ 5ˈ\^jy$|$<ˋ%έGb PjH^lU.*9'R:c"6[*[Wjд'Olnx6 aeނZLR_a[a 4DHC2TN@vlǒ2KD. 8ge?N됧!ȐRfu~È!㓘1'f:X]w~z 7ءA~j9KzLvbڻtO&ȺuM RYYkU^@'벏Ql#YE @d1x#yzA-x y;҅  32Bzz*+0 TdU (4+B/_T0o! OC Pmx_\U-$ݓs6U2k{ɚۡ#?=ɳiu}JhE% ao}>MZfUJ_5FsTׇ>T%'=-&vg͹Zc CˀU{W?{H|e,f"D*CKٱ +e9t] GdpCX"G#E`r) i7 ƹ͗+)xµvl V9\> ǰS٩Kc)¢4oucP~>:#CU']Ig{rѠ8M=9đb=.iDxȢt d>>]]Ww'=BC,Wh"FbϚ:`s3^YE  p@b``ه$lݟ光k9L];:Ʒ_B~nvTLhUC2VT5gDJܼ iaŬkP.̂*j߅[@›tñ9Eaeָ4ܦ\ꩣe,TL NcY Q9#XAFִi`S*Zϓ%p Ϫ2:|rz8Oz3P_)Ӈ }h|#w՞\Y0C^ }mtĎe0ὲ]M $ː zs[ / kI6k(cCb8$չ^#)s"&O͗ - Lz 8[ [@CX^2ʰt>hUT3A+%=98RXYqęC+5x h`0ͨT@. KL [ kuQqvUn=-4FnRWCEKU4mn|> d rtiL~v2Zʖ|*Z]"^> &7wCVYT jJ@9¨[KD)\Z\y 2S!<Z.=A fm/ݺ5H^xXLND0ƆzslfdvTt&b51: F*vդ1gĄ!k(1l`{‘jIVOZxd,K.X]٧9rcZ<+X.<̒؎~>l6 cI&yBGf+-EzOu@:yJY,=<$K4J+ 6]Ŋ=N(?i\@Dp A=?ZcCyo_zNll_6i@j[(r1ۦIwІ}gJ[E{:OH: Cbx%XђZYonc ZG@56N i"DLG(@)f{s*mø 68h[ ~M_wEi;cM1ؒlJĈ8NU~f&[`4iͥ %Nޘ &};@PxyMrԗ*c@\b999IWeȎ⚁@̌3ءx@)4O뿸o͢1 %XHO6=U8pQZDCֿZÇt??\w?h`ߴ~<+O!V]J/RRJH?WUc.K= HNCDEyhit.I̾7ӛv<`ӌp ;gÐk K_60 iC}!Dc>˶Bg99 Iqn[ Jjc a1MNh| ^cWY­T&tku" V 8 -[h'ZLa<0uZ҄ERJ\0h__y"L-'N}BȬoۛp Y(Xy8.ʠ&rxB w1sY?l$ctU6Ie}8tQEiAuЋ3;Z/֨cM^w%'L2u89c5J5 uIPRN=̥9xWH5TîB-2RD&z C)je\Z&E-{0mM_ѐ·YN lj53吝*amF$>;I82 KRB[ JNc*Յ-`~ⳟ\0HFLnXjQtn=i!\?ڣ":i<L1"K)dd D p8 mb}v`¯ Kΐ9-ZoWΗ;{ &ήwc0Hh4z:x ԘE oףx",Cq_nFxx |O}sׁ͋ҭV:a-0-{漢g6(v<_(5 ,q]/r*ŬcsQ[;'\~4X!"~~tTeNI QPCƀET)RUf V9 vSr5{a=4E 4Fendstream endobj 1136 0 obj << /Filter /FlateDecode /Length 4829 >> stream x[oȑ9 :8@$؝0>L̈c~vɦLyǛ1`_â٢\yτ^lb׋o,&,\4׋ ߗ-̹alaD[Ň+UyXv\;UFT=vUɴɝr% ƳC[\6ά^dݾz { #9ȶ{jU\n̙am?N@ǰu%dKj•҈ +nm59Z TjZK8H+r`94uWXB4@rVMrQHZfUv+p ݻ*>l\#m[84]UIԙ\* nuHcxA״[wPw@y`dAq+e貦W<1C_7H#0(m1|SfNOz9>>Pn}3o>VRϵ* |i[^ÂBt<J,C&hlQ NGOFZ~\C 貒 hҷ_i`+KeyX*XK/+~ӖY xJetJ—kϛM %܄5N{v^4?+j;*]G5<e .'eQ2@i$adIҖvp`v;,0R4S/Pb5" 1Frk{|%yg\vO '6o ⧷̒zxJ4ךYF˻iZ@q* !D/%ST@e:YOKS@<^f{,Y85 כweO%"}gqyU=1v617mR_a>1aA:@zJRV,Bi %2h7M3RlqƁp,J*_JH-mn^yA-vO mET]WnyBBc,踵ҀX~&br` N}yMNx(f>:ՙqU!@02xBէ,~ڞ 9ԳQhT&>q]ܫJ?6~ @' 4Tc|OM7a+OAR8qDJF1>ZE C`4\>.p 罩M ~fp3>YMAOepApeh׭-dϨup$!+AÅ+_ikk(l&h3..mUt´xzƑ w@AD{lū NaD섧I!2S*j0 I',oWk9,~dN13#2S$-@AEx &sDYvI]%gQ7$7"w PRjuֺ(Y" T:A?HHqBݕSY͊Wx3 *gmEv]O QI݄nsaSwFA+h0{Ha=wW꾾^[yB|n_JFEzXO@,67>AyFs =h+ĈcX@.] c#XEA~܇ 4h $ 9!wonO  oh;j܆-xߞmcV$ws* 5r!nH'(FDQ^a`-q.S W6|ݯgUC|/ *u) &iͰ.@Pư{Sv 1/L@hY1^ gT Xyy<džVRx )N0-#8fX#rӴSH$W$le7Bh,K FC=-h,YYJӌFX*;9C$فO+8ju}6fTKAM\2CPjɌCdJ k8l2`w-?9)[ 5%ˎa N`RP:$zDD88M&}k։ƙɴ< 9G:bG)>6{) ,MśLr+CLn _bΙ*MǶr^-AC]7&Kct.i,=V0+[fS|",\HngpFqwKu_x uSo!g)L)=0xg8.fwlrNъKVHycdlOf'-@5dR2<{ L) Ad}^J* #bŒt\OϘD'p"JI-͛9%F-+81$F%\ b8i x61KY"۱HddKt&zL ²_5UF8 Y?e|r\:}?nLu(K}'ӓDG!bwF!B 4ĥze8m M57@׀0?(I͞,ƪ[eJL_"B \M }[ %7i&x ޹(<b(/-Cee``jq\! 9"d[]Bw&|o/hp T䩺ITp )`>P LTc.IPH.8wEl„_~|0Y.#Ë!WY:h JsutΤMC6hߗ%X]6٤%gK 4\i 3ht*Vq\>R:FL!*u];Q_-B3UrJ~zKj_XNl2lLۇw_&:Ov:/JpxOb]!qnPL]ɠ_9pj;Պ2piFN‡6a&q?{ͅh) ~} d_dk[jܗCh΀OZJq#/IiarywC_NflؾrTs ƼTr>uST{~qh%rDBKʯ^dk CV()?xx; tn #i3ʓ?j`6Tw_m#(]&ij@Zx#=ڪ: &p%Ige3Ǘ5==)Cp('|\5 =uY4Cl<^|wW%-lB*n˕fU 6O,ؔF\ o`i՛7M3ݼֻ'xT`ȊFZMac&&g]lsAje>cDҦo/ οendstream endobj 1137 0 obj << /Filter /FlateDecode /Length 4066 >> stream xZ]sȱ}oJ> oY l6dkJ%T "ake{g)RWrEO̯<ſ["]z!$&&FOɴ)E,'g+5)u9'׫wfzg6VAKN|:@eڕ>yM97ݑb$v졩hSh;{CwwF&T! Рe( w+ĦM媄Z^҉ꎴ"c~\ҀJm?owk^w۾^k%l+Y\NN/-s X=ˬp&:щ./о@ONȢ oT37:sx|˸z~K6Y]ܢ,/~޷䦱Ѹ }Q ɦGhF*7A\q~]3u}X6zr0g@ZH86 |Hތm &;E7dQ!!2'320,S++zg):}P[ 22ZruJ`b)TQݚybq%ªU+Ғ" qxh ; }C\QIKC\m( pH-ɇh: !:2iJ =bzX\ač qX\.3lFq<+r= 0u'QҗI4K}@\>PX`Ig,$шN $vMq7F~>8/ϛ\~sdq*o߾Gx"^5])@hj%k tBn,GQL{jj3+i@,LEn !XAHpW:& ,E"GZ*n[LJ Pۮ@EeȽC"ˎ7ш<"q3Dk˻%9U.=W5HP@I)ΚB@\}K7bh#XA<rW%mge4.M1&|m#lٶA v.u4_HPPLemĢ ?? r7i&`1(|"(mҚgLbA|m9}aLlRS/8C1v8Bah( s4>rF@TAhj| qNPOP cxn<øzAsH6FB3[ݎSɮ\,̇ep{ d_eIg*v 9Րz]wψNf<;D]CēU܆#ea`u[͎ uD{N8)*!>:: 4m* ~ó$:;T|Λ?vK$i!bS96[\yEݥG%oxˆOֽҜS\0NHuP7LOIjJ*>4#9//BT(pѐ{𛰂W:⡂U]mq p 6LBPc=og^ѭcz%֒^!_sUiQD_j1v<;Qõʿe"['afIBlGͫhq/m=B^Z}z^d\DBF,S)9)ohğ!e-/uR_N58uTb\V BlM6GւV@<5-RT o8{icMcEƻ#-JEg t8k;P|!+01 hʳi?P'.lo)gJH(˸3~RA> _ Fu7̡+ `rl!Fɖ$Y^D~\j׏=Q%ZG$9o% GaZm3SCPo-FLS\RD:e7ɱ#Qf3Zt#CSI".B*ͷ/?'aᙑ x/W5KPVʹ𖬅0OH^[ApJV 1E<|C5oS rC:U ʴޟ{vķ÷Oa/Kzcc^B ۠;x4f  /g}() cKFEeLk{0dcX5r0噥ѩC.M;ZcI:]j#'M"mSbCf\H+MDR`"w½#gqi^RRR!Y* ~6ewb?1>nn~rPJ0@NBydt9Mc~}@O>vyD}n${N^}`&RZɸ '& ]ED(.YQα:>XI(Y](7tXv )-z^>ԑ?颱VzB=ǧpVS^W3 v)bժOWO_2" tt2' o h"C`svzzV2ch>iUހYա4zn.6Ukfa/#SċX B+-[>q{g`NVX7!8,Y?l溜|endstream endobj 1138 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Height 44 /SMask 1075 0 R /Subtype /Image /Width 44 /Length 1084 >> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK,," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?| Iq v?Ӓ/nG,EP0B>kW{B7~cmF7֚ׯp;pn5C`K1G^kz ^Ssp6*ͪw|9n=GUGh9V_z)]Ggv,rX}i+iST࢏>Rw ($'PgB۹ʎ7J|yw-͜oˎ-Ɂ`cmo>!l'ȪWsH$*0AXƅ8˝-Ku$+zEendstream endobj 1139 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Height 44 /SMask 1075 0 R /Subtype /Image /Width 44 /Length 1084 >> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK,," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?| Iq v?Ӓ/nG,EP0B>kW{B7~cmF7֚ׯp;pn5C`K1G^kz ^Ssp6*ͪw|9n=GUGh9V_z)]Ggv,rX}i+iST࢏>Rw ($'PgB۹ʎ7J|yw-͜oˎ-Ɂ`cmo>!l'ȪWsH$*0AXƅ8˝-Ku$+zEendstream endobj 1140 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Height 44 /SMask 1075 0 R /Subtype /Image /Width 44 /Length 1084 >> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK,," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?| Iq v?Ӓ/nG,EP0B>kW{B7~cmF7֚ׯp;pn5C`K1G^kz ^Ssp6*ͪw|9n=GUGh9V_z)]Ggv,rX}i+iST࢏>Rw ($'PgB۹ʎ7J|yw-͜oˎ-Ɂ`cmo>!l'ȪWsH$*0AXƅ8˝-Ku$+zEendstream endobj 1141 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Height 44 /SMask 1075 0 R /Subtype /Image /Width 44 /Length 1084 >> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK,," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?| Iq v?Ӓ/nG,EP0B>kW{B7~cmF7֚ׯp;pn5C`K1G^kz ^Ssp6*ͪw|9n=GUGh9V_z)]Ggv,rX}i+iST࢏>Rw ($'PgB۹ʎ7J|yw-͜oˎ-Ɂ`cmo>!l'ȪWsH$*0AXƅ8˝-Ku$+zEendstream endobj 1142 0 obj << /Filter /FlateDecode /Length 3433 >> stream xZrŤ LbA©,ĩ)W,Jb2C*uoN?Qpi O7UUf,_]LٯWLrʮ.x\9RUrnu?[_ (KⰋ.^94o[*Z,+qi¹RtkUJR\r@-+A%nrY̞IriŸizhlϋ6չ*ciCo.ξ?3ܔa})sP(<)eҐ>ǦNm"X|FeF7!I;|=e!DqO#0S%ڮ=o^ٹއ`g隡>ô#\%L"zPo` yIeÐT hLp Ms<+t面|b)d|jMП5?%YJ4* /aQg^zP JG)P:ZGPn]ьւ[]\a)a낂Cwa`{TԻ#lƠ V:Yp՗N\Ǯ l(ܳ=7 Y+m', ɟRX%ZV j-.Ii6GTJخ5%*= ],bbTGUn`3k c ]T\5;W*Mಉ~t|^Vp-Yx*a1?1=J_ RfTd-fg!klS2 gaaZN0{~’`iWgkP郬yf&{q.]ߋ· z ݞ,EX}sFԸ$7x@wozhƠ-dǍ4&n\B$AV3pv=o(HGK}2φm3v~?Yh06,q3|5ҫ/ ,gdtPQBϔx b/ha06M':^bU/ IB#=ǣ/[Ӌ* I0:;s7gۄT$8`)6a;C8~lr܁,]:mR+Wp 8Nem?u :Ǘ>zv{W5 f٢"]Zr&vK@sn]U X פ粼⃨7uQr w/: 7Tm!vR-z5W;JYY<tIu%A}yidlP1tИ, U>E̻>lgiisiBXRzľG?\j@kW,g e%='VM݅ O)Wp.n.IjiYQD~@F$OjCyIې@ IJ*Ŝ5lĤRޏBV,r7gG\z"^t:X]Rg/d0ɊrZԓA[l@aD!-̵c#&XQM# "'dC\m1ͺ?aKW3 K7xoq1A_fp|]T%4-tʺʀm?T/nZ$HXEt [QѦcA&y H 0MYφEż ui=Y[$T8/嚶ƿN>cKJ:6?2"~{v9C)YDZF,Jf7GDrB}Z6owWqF.<?vHr%|P_,*Ӌ8-C4=)q"a ofن qX#&"DaS(Ts>'}B_gP<$eI>'B C~2&F{e<cݼaLA`)*,74(xycxʶ5փ6*]: UV6|>lއ5(8ϋw}l8tt1@QmWW@7l| ª{ ,P*.I 1ZIg!%z@6x b)jr=˶?yu1:"KƻL#5BnӦ)Zm`fBra5;t [2P)ц2n|`!Lnm߈Y̥7敋BPCAk3]:&9:U 0fQ%nw74`=v s\;iD혔'hJͲpa0~>_ 8 `թJ Wzi#Å"wsS'.Jcbێz w29^x2 FEW;_ڟ`- J,q | '>p}~{Ͼ ieNS}Z v|Cr317gj e1 $;Itc9."XKXc*m ~QcdAR~K9iPtMV24:[(b񣂉"Wl9GTKcuO3Tљ|[ܘc s( 5 -V5^c *.2ha"-+TKV~Vy~^Q] JvˉkmGޔ ;d$OQkЈ9a2 ۨ8YF?9`B=XиP}թL%-Ƽփ)O8eWɘ_u"w##=JYv.e#&yt/@@X!UN{npjSssࣾ cDk%~li$Ƿ&w2f~A /5:= 5sI-lŐTZ!eH%mV}0a+)FHUy;F$-dS)'!''CX3X'3.ܥPU :ܗ]E69 QO 8هo?OTf{)?m~ҝ-0ԚZJZ<>Z,6@IrNm(aYi %p[>Y. 0<XiWEe2 REiGfEzef$r,Tz%endstream endobj 1143 0 obj << /Filter /FlateDecode /Length 1870 >> stream xX͎F|!@Zć,#1t}%ΈD)N}}jvMfcƋ9dwU}_5R__eX./ /aCW[be\:S{ RA|":~<7}Wͩ=$s#KZ+#Ϻs)Rmf.рl6OZGՄA[zN/*#s\` @1ykŚ]= PruGj{& ]=0D?,KMOPGM32^\5FWrfn0l IRhT,7\=Rn%6Ғd JP@  l{u!~vd::G1PᆬtѰ8=D}ioC*|EJ"jk3?3&$/U=Y6EB p_ =\~r"c9xL` xw8NxIZwK(0$[MQفUf  +itA''27IVh9%=F8#`i1r#J8} X|_@_0 {%bgv2W#hʈ5Rd&]!䞑`]nɮ:wUGq[s_Ci*WH& s3EGEɿ#UPREVe$N.y^ {z;+d>5. f$ ׄ5`BW T8qQNT8*ևH:0`y]"D!ءтj}ɋj>e#u!JHfx̣+iv%Gkbg^g̳"6jФB u6x-d&ǘġDcCGnüOe3ffqOYHi!Yz,_0M-@[N1fŋ/h@8C4cd?8&R]״癣1ӽ.Mst;*9zoK> M; Dณ Ztg_۷t|$q P4h $qvU"$/Y85:O,G1"$F?*QFV:c) pG_> stream xZr#}7JU5j6r5=ȑDj/i`CqW֮A @ݧ~ 1Pv~"Xos;\BUA5w~.`F xHYϿ]BTj If֢ -]^E0-r.BpÙSоyv\`Fjt[&D~xτQ?fRApI+B?R;/jH/BNDx~~n7ُ3>A A[ e$%[U iqޱծؔͮ޷\hV6iLl׬Zw_f y;ukG!.;D 3$HU&LUCFiVRfT`"1X7#r8RL9!C5 {)MY79f([7?,sׅu*AɅd?K%h&*SӺ+qj}OMsTLmjrgs ր@MtkiǖH4%ķV M񄷊{@k`D_"W:!! IDL`Sߞ=#XCD9F\2^o%M'K<8uU:vPf!V5w| mbr 5.q).OҊqeTy.Ry֥ ۖ5&TiP G)rdLBvƍԹKCHCq{ȳ8\ 9ڟ/pyC.ětN)] "JElDn`ϣg?p T1hUޛ҇j±T0WWϺ;.`}=ܛ*l{ U"6EnL"v102[xI|DC\Zrc~_0&r w#8%ՔňKG>=mY\%nKF[p+F^TS:~5X×/F8K>Ŀ ֡H@z*;pLURu&3i=Zʉ.ؑjb۲dX iZbW#A~jGA-;گRf< dGٔx2$Nkp]U7a< =22B*orUݺb[(ZKKƫšs|fA@n_O@5,uljH(|+N{,E?\ғ U!|!~6sIܜ><{ݞTh;2}5|D~i?VF||TMHǂK+=A> % ϼ㪫YHX\})z*mxG.\M_Q.eT5iu*=\s(CfSNGM$u i\0X:)D~endstream endobj 1145 0 obj << /Filter /FlateDecode /Length 2773 >> stream xZ[o~oȃ計f~ vHbE A- rD3!ȉiCr3ӜQ>g_ξ{ϥ_736}y[rS{0Y\^Qa9[ɨ~~~;#[)aqfFw宺-붉Ե0yE.[8'K!= 5-]{WGxR2z[MDQ4|7CU7mQKP+9v!,,ђ7tT\)-p2z jݮl`3lQ;EmgfIL  I[x+I)J+RG #mܥl #[|5 AC mֽU՛5e0e%+Hה)H\,F,`lrj:ig7AK)<$hHѽvZo ^J*.DA Cl/ۢM"ȾAğgh嬞]öPjعbR&j+gW^*-8.<ߛclNbo&qukT@;p2_$,ӊq<$yXq8sq{wSI_/&=M0uy6S LlD hKXy%Ւ AԯbHA /3'[i$srGo䞟ol2gba ҎB.X^y h36f+.LCE魄XsIU}ؗ?)9i=&)P^I)'>JZ?ZIy_|ZYz6eƤ R? Ϙ<P1-UǧpcoX=P ~3\п(I'{ ң& #-]GN{}]dN H !U ljNlC_ AGXUo0h!3ic@F-@JXds)?)=)Ô2]D#nNj9i j*D6bjẠFX|KГ1ɦ]ǰsCޘTiY1PH4ڜD |)t߬Y*/c:xhנRei52{% 2Kd&p:W\Bsj1dڞ%Φw\FjJeAA-Ӊubu{3:Q.fyJl]f]Ů>KJ}BB)Pbs\o3]U6qRѶ;[,9&|n1KVDntn[&-*:G&wSl"xyՐ^­9@D"s$0XW^{<;~4^D^"|9nOca?@r꟦8A)ϤS:B HjAK9KJyS#*AP|[{+Gvs.8 6?]i!endstream endobj 1146 0 obj << /Filter /FlateDecode /Length 2696 >> stream xMo{o9 \;M!M-$z.yFc+IПI3wxQ!Eo( (/_ߜ.?) oՋ /(ZXB-d ҂B(\HI$P/ +L-_ߜ\ aB9ƹ5\XirK勒3R nmiu*܄LR 'np9QB=͸sK\2o8_~8 hzwrW~@tdV+]T{[*!:#:- ZJrtSp:W^ 6Rĭt!|ܐ(;9$a<.QQ#!ߝ|R.W'+! 9Ƚ}v7}"ٳ]o fH"(XwbծzTK3԰-MV׬ut ߜ2\AQ^3ӹYb. D(+u H:+Xy㔮pv4M5TmF E}{> ,9g'e|!h-úEՂ؟t omӤD-] ELD|aa]w͜quEgfD d,r԰.GLJ̘:9($yYxvZSȍ)MCшs\({7F?`0'2RA8!㹑@Dͺ°e~hd4)vSm˱|YI==*8@!wYBԌP !Z[H) H5O-Z]{Y]6hw:]KM}0!5CnIdS mSSw=mJT,\]=e17-%_& f@ @4-,oifm#$ B3Lϱ;yJ9Y~ v_O'ajP }:CI7F;:CIW(S [B[5=a:n}m9 s}&D~vCg٥9nC8.ccIj:!/ٰk2SkCgdžtJY]I#_$ P7B[HDG"ޕFТ˄, ۃ/_s -)Q54=is#zm %DƃGDH#ڌo:6~_]=ͬɮPNk @P iftTODBbHTW` Z~],ͪ]r}8! U”eV&2|]Fvs$]c &͙Mӟp3aVdyB۵gGq E!-?ɚ-3?DdYEoh E1zQ^\T}Ap_rףGt Ci!Xhji> 7QmM"yatlP45lh:k{M' SNPf?=+ZnP^cVBՐT} +? sXendstream endobj 1147 0 obj << /Filter /FlateDecode /Length 3048 >> stream xZn}o @" `;b AÊ]V>zzx3XT:ԻN .Ԯ:.-jжAN9#;ic][(?8/q!.vsFAnPF!*,]B)~8(Mp_-RuN@IOPUkeüR;S_(ME;ZliUI/i|C@[tH]q>;AygE>B)0: 6v~Zh:BKgc=pA$ !QJ ga*ɀY"R$XMjI]u_:S˥Jw/,gSSF[JSH*QVn2AsA`!`$ah$iŚj_T[ƫyLT˝8t*]5c0JS$T%pVy [-+c,9n$C (ARbG-պ*U%O󈆨OeWu0R֓5=FSTYy*s^ nel4S%)ZE,Z,IZjqW%Ֆ꾤jSIb$#E,c蒢+*E}I(9DfOF,ɈY,Z,IZfqZW%Ֆ꾤%`tg@u)CǙFD PAU6,ڃMlH Hrld1P%Nϐ3KfZt(j*V2ʪU$:i֋ e:?h\mY$)r +-YӨA>]u 0.qw߄Xބ&ѹ)Rvdc,TM ݓLr&=s$}zA ~AAG]P DQC H&fjG кYXDF^5%Hg!/$} }^N?~$iDvW?Ki=c;Nx_dCwe<u^a:fcE?qbZ>t-@C*%r)8yuJ|v2g)}b& <2T ;^1iQl`@gCem.Z*W}4:Ix@ A~Ѹj`0 3NWɇoaa|7\;.ޗm&l$ub9T殖$SXs=|^/Cdh7PX}&Yq}uM*D*5l60m. t")bPw`(m_2k E.N$bCb&k2} P=|RjbIg& EShZUyE;*3,t/ FF%I0anWc{y^y;[c@Xb }BCD*77T7F^rE77/k]JSLч}tKw}5I~V1AHq_fyVj{M/"9/MթA3B.l"9sJgcL*j.T@JmVҭcu{u6T .mkNIwYZ&`S}hsİ?^6WG(trG(iJ+>||l $A nr8)#ěo๘~8$71;]m6eB9i+i4V`t3=8Hpw,үKyc֧%U3ts_o#/V:}djsszJxzz$԰#}4(SOyyūaS*f}ZnÊD4[{`Tc 1ef3nHbhp1"FN ~K|ٓEI/A7W7hxy 9ڼoRi3^Z^jf--AրQ$jJʼn*tu;|wŸuDmH@@\}Nh"-& -_F-$;}!u>$=D)N+>H"F}9K*63;d_MЉM<г 5gF$x% :!si[K,6 ٫pendstream endobj 1148 0 obj << /BBox [ 2254.78 6712.04 2297.2 6754.47 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 164 >> stream xݏ B1 D{O L|d$:`/@B (X|" .uwvY3t'VJH 7Uq(&=(pI`]ʇoMꗧ(&jBlLܘ}$:;z 7_ Eʛ6xǍ7eYendstream endobj 1149 0 obj << /BBox [ 2226.37 6302.76 2268.79 6345.18 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 164 >> stream xݏK A D9ENtҟԅt@PP^i"W*)I/Pf FdbQWgP L%c $| J +g-o> >> /Subtype /Form /Type /XObject /Length 166 >> stream xO @ ='0sMD A$$H+PxO~)K/PfЊU%+x'0%bCZ>VF8S5TMB䁍m}("&3onbfJ%8pQR[31~wpJqXg87deendstream endobj 1151 0 obj << /BBox [ 2227.84 6289.05 2270.27 6331.47 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 165 >> stream xݏ AETAT`M=XF71D=ؾٝ-x~0Ȁ JЊU%+>x;0N'aRZ+NŃsZ1VH|Fͱ(,37EX\~{pJw1hGwd7endstream endobj 1152 0 obj << /BBox [ 2218.56 6337.38 2260.98 6379.8 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 164 >> stream xݏ 1 E{O Ly$:`P>N(R͡ )1E) db'C P@x[)VY ǘ,Us@3tE@2fn~B' %FSxר׺GKcendstream endobj 1153 0 obj << /BBox [ 2311.59 6625.96 2354.02 6668.38 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 166 >> stream xݏ;1 D{'0'Nr$:+X $d?a+Pkdz9$NؿF9 ٜ)>x;A-Qoˢ"(*JnURJUPʮ`eZ4=%ļLa$ ("&9f_lO.PHD=wu/a %aendstream endobj 1154 0 obj << /BBox [ 2313.19 6566.86 2355.62 6609.29 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 165 >> stream xO 0 { O`b' HIԦ8<@BPH(F1Ox#Hd9Sp%RD9u> >> /Subtype /Form /Type /XObject /Length 166 >> stream xݏ B1 {O c'v2P0 !OO )<8^a҄)BQ,ŀ!Z |`H_P6w $[զľ.$B&%A1hW%($wj7>,.dendstream endobj 1156 0 obj << /BBox [ 2221.32 6476.41 2263.75 6518.84 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 166 >> stream xO 0 { O`bv H48'_ A(ZBAQܜՙ'CDĨDt-\XpJEb+f%iCUQcYW Y>9 vsGZt{q1 UqWZox0d=endstream endobj 1157 0 obj << /BBox [ 2190.21 7244.74 2232.64 7287.16 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 166 >> stream xݏ;@ D{bN`lg @ $쒄Dų.iB;q%G QY '8Rpq\,f8{cU3ɪ,YÏŸRJ >]L)F7Hg*lENj:xǍ7dCendstream endobj 1158 0 obj << /BBox [ 2637.07 6565.76 2679.49 6608.18 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 166 >> stream xݏ;1 D{'0Or$:+@B (>Y+Pxg> >> /Subtype /Form /Type /XObject /Length 168 >> stream xݏ;1 D{'0; 耂`%$vq g6$ <@e+) Jt!V|w`A-E ]-6 ղPrbR0ufY.-3?EH6(CH#WŜbR6\jp7\k7>>dendstream endobj 1160 0 obj << /BBox [ 2590.89 5891.94 2633.31 5934.36 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 163 >> stream xݏ10 Ew'0O'@bPA%$<> >> /Subtype /Form /Type /XObject /Length 163 >> stream xO 1 ='0;Ht@'8 $`}݇(\<}7$ <@e+) Jt!V|w`A-g2C);޺FV+NܰEfl$_> >> /Subtype /Form /Type /XObject /Length 168 >> stream xݏ10 Ew'0; ؀TP $`Mih2o!su (1r2 < QUrC(:V +),B.UGaʲ(NNL"8'HsYv4y]9'^?)qWߵ6q#aeUendstream endobj 1163 0 obj << /BBox [ 2616.9 6734.3 2659.32 6776.73 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 166 >> stream xݏ11 {/Xb'v./@ p@ 9 .w7,=HCPDc $V7G䂠<x"ug3xkbBD>> >> /Subtype /Form /Type /XObject /Length 165 >> stream xݏA1E`@;'0q.> >> /Subtype /Form /Type /XObject /Length 165 >> stream xݏ AETA8xSML4QNѱ_@RRC+6P(nN3%xBjJx6.T*F"("><U*]d&Π*&gv?wv26#` u'0n9}w[x*Hcendstream endobj 1166 0 obj << /BBox [ 2588.43 6514.16 2630.85 6556.59 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 164 >> stream xOK B1 9Al$mO Su߫c.0af'_ A(ZBAQܜՙ'CJh3ޚ*i!Tt3\Wށ8gJ(IڄO7cTd&TL͍WŬX~ztpB" :6q#a&:dendstream endobj 1167 0 obj << /BBox [ 2587.63 5999.36 2630.05 6041.79 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 165 >> stream xO 1 ='0c'Ht@'@B (X].M;\AWbC͞Ų+ 0A=02ys *MkéfƕMxR(cu3~gߏYفE2>xȘZ?;8@jʎ\;?^5<ҡdeendstream endobj 1168 0 obj << /BBox [ 2943.23 6517 2985.65 6559.42 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 166 >> stream xݏA B1 D9EN4Iԅ ( o'R^dVO$ Z(nNLIq i+ u1.(͌v6ʝ]ISWL#> >> /Subtype /Form /Type /XObject /Length 164 >> stream xO 1 ='0;Ht@'@B (XNgjW wЪ9;S|7HxT ]RQ*T%(H,Ĉ탧Lb#3ѡ%cVgrůb2<+z- N$nMK[{?Bdendstream endobj 1170 0 obj << /BBox [ 3027.84 5977.72 3070.27 6020.14 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 167 >> stream xݏ AETA33T`M=XF71D=ؾl6-xP$DYQ:qdjT'|w`!sNTB3ޖ17N̓EI'. F+)f7&G4Z''W =SJ F7>>cdendstream endobj 1171 0 obj << /BBox [ 2940.16 5943.84 2982.58 5986.26 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 166 >> stream xݏ B1 {O Lq2P0< $`}~" .>w<@BPPd51Ox#HQ%w۸0J1!83%\M◇@ w*CǬX7fTfꠙh)EK~{ pB"yε6q# eendstream endobj 1172 0 obj << /BBox [ 2952.21 6187.83 2994.63 6230.26 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 165 >> stream xO 1 ='0 耂NpH@8" )N$) #ʔG<N _&X%Uua#BaQxT<„ԾZv'3؅JY2:nbfN$7αxNj#dendstream endobj 1173 0 obj << /BBox [ 2949.93 6636.59 2992.36 6679.02 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 167 >> stream xݏ 1 {O LO2P0 NB (X\tA .os^IIh0l9)#3%OxH1%StUÝJʔ\u!%XzDN$Aa+ۉ,  X IV ˼#\o`պ֬ۿz=|fcendstream endobj 1174 0 obj << /BBox [ 3021.02 6499.16 3063.44 6541.59 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 166 >> stream xݏ A DsW ?TDp@g`gV$ @ѳ=RX~^qcuѕ2^M،8UHe⠤P.d]x;,<ׁR~yRl=8A!UO9?n-dendstream endobj 1175 0 obj << /BBox [ 3015.73 6313.03 3058.15 6355.45 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 162 >> stream xݏ A "LfzE`;2:!/m9e_aRG|$6 K,' ¤j$nbZ{LCeڕ5hTWޠz DxA6ڏ7ID w%oa tbendstream endobj 1176 0 obj << /BBox [ 2889.36 6428.94 2931.79 6471.36 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 167 >> stream xO 1 gLI 8IH ֧=N#Ö؛C Jв%+>x;0* =zP)YdiTN$w +~4ZhʜB |qs,-frN1 7|޵.#\Tdendstream endobj 1177 0 obj << /BBox [ 2896.19 6055.81 2938.61 6098.23 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 162 >> stream xݏ 1 {O $N2P0 NB (X;B(\|~gsq|Y )dbj 7!V|w`A33%4*HF`"#,:ůFa; ϰ-R2k`5T|Ե< ]endstream endobj 1178 0 obj << /BBox [ 3356.7 6550.2 3399.12 6592.63 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 164 >> stream xO 1 gLi 8IH ֧]cyز{s01_(*k!NfJ|w`!JEjp&5ь|PnĶRD*љ\[ . ec1肹bLBY z׺u[=Mb-endstream endobj 1179 0 obj << /BBox [ 3325.03 6193.25 3367.45 6235.67 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 166 >> stream xݏ;1 D{'0IND`+!\D .l)&_I -[nN1G 3gB6lXE$QȕV'SUpLyth(&qK> >> /Subtype /Form /Type /XObject /Length 165 >> stream xݏ A DsW SP NB h=godg6$ < 0RG^ CH&(8'YW*o]Ja!ƉG.\VƉbWI;</Ōrzec9pB!ht|͵i#Rcendstream endobj 1181 0 obj << /BBox [ 3258.62 5970.83 3301.04 6013.25 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 165 >> stream xO 0 { O`;v HIҖ8RH8,G70DĂ3#(Z)Ҩ́BDLŅxQja=)' J2KFM1Xww1 !޵.#idendstream endobj 1182 0 obj << /BBox [ 3284.93 6288.74 3327.36 6331.16 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 166 >> stream xO @ ='0/ 耂"P>% Fp:pxYx'왒,Ċ3 O 4LQ*LhƙLԿ1*ڇA-cUXkgGR]k]Gdendstream endobj 1183 0 obj << /BBox [ 3357.74 6615.32 3400.16 6657.74 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 163 >> stream xݏ 1 E{O LN<P0 NB (XSta sȜq~bDQ:(1r2y! " ކMR2N q\WbcBFsM$vѿeO1bS|ε6q#]eendstream endobj 1184 0 obj << /BBox [ 3333.14 6462.64 3375.57 6505.06 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 164 >> stream xO 0 { O`L 80@@O*gSf!u Ydg<'PL1lPoݧ(qBUs g& HccEL%:Y>"t_<++ul+F@! 7$ջֽۿ{=|cVcendstream endobj 1185 0 obj << /BBox [ 3309.29 6321.02 3351.71 6363.45 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 163 >> stream xݏ @ {O &@  H@䔄(\|{9cHJB+%C 2F`J3 {PeR1ԄD8 5,Tj"b7RJ`xepSCR.N~?fo.PID C?F=> aMendstream endobj 1186 0 obj << /BBox [ 3370.29 6379.38 3412.71 6421.8 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 166 >> stream xݏ 1 E{O 'N<P0 NB (XtC@YoY2/x@` SIN1X2M>x;0#G̔o'sT-5d.:j "q:0EˉݮE~y  \)oչֲ,{=|ABbendstream endobj 1187 0 obj << /BBox [ 3361.68 6008.65 3404.1 6051.07 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 165 >> stream xݏ B1 {O c'N<P0'!OO @ξ. B0ŒQ b xTHũ^(VJyXCr*_>V q6Lyr, AI3ES|^~{ N"j _pSR,&dendstream endobj 1188 0 obj << /BBox [ 3598.17 6535.93 3640.59 6578.36 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 165 >> stream xݏM 1 9ENӤ w : ( oP࢔/9d8ʬd^'$()Xyށq&=$&d¤QΕSsh!O+9ueGwI*1cW Ÿr$T- koNdendstream endobj 1189 0 obj << /BBox [ 3726.13 6189.74 3768.56 6232.16 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 167 >> stream xݏ 1 E{O e$:`P%(\> >> /Subtype /Form /Type /XObject /Length 165 >> stream xOA 1 yAl&m_ xS>`QAPP~,K~Cf&3]'ARRC(e7ٙA3J.\bx. )yV#BTFf:8tⅤ!W~,xVSv 71h{dendstream endobj 1191 0 obj << /BBox [ 3708.05 6064.11 3750.48 6106.54 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 168 >> stream xݏ10 Ew'0; ؀TP $`Mi<|g!IPf`h qDus]g<{I9jS"ŀ!)S%PB&B#"41&&9L`ϔt111}1;ڗۣ T7|ε6q#adendstream endobj 1192 0 obj << /BBox [ 3593.13 6278.23 3635.55 6320.65 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 163 >> stream xO 1 ='0I&@ 8H@\D;1gjS B+YdG< Ϡ^3eÐZ Gj4i$# 2եA= &8H*wsϊNPID 7]ƽݻ-jlcendstream endobj 1193 0 obj << /BBox [ 3638.02 6731.6 3680.44 6774.02 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 165 >> stream xݏA1E B;'0q.x;0.\ы Մa⩠1qi|C]5oh6dendstream endobj 1194 0 obj << /BBox [ 3675.89 6493.38 3718.32 6535.8 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 163 >> stream xݏ AETAT`M=XF71D=ؾW65i8=ʬT mN\QݜTbx LnR:^j4K`HG(I$ՉF`kyLs7'Z s> >> /Subtype /Form /Type /XObject /Length 162 >> stream xO A ]+0~v ȀNpH@@,co! J17'TNIP 'cZB" 5h!8ȤB5UmJW+Tdϰ #sF`@_?m&-\y7\z{_9endstream endobj 1196 0 obj << /BBox [ 3725.52 6491.78 3767.94 6534.21 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 162 >> stream xݏM @ 9EN3tN ShAPP^=>K;e8}ʬd>x!NAIPR|I k{lP$r&ύ 5LA:UN0sll4\ܩYYgny#ܠ}y#` endstream endobj 1197 0 obj << /BBox [ 3684.63 6051.02 3727.05 6093.44 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 164 >> stream xOA@ ^ , LhMԃﮭm<2 0C  !e+"SdLAy!`깐(zHmd&-^Rl8SV;ĶP}&2񱛑bo$u70j]k_f=Z[bCendstream endobj 1198 0 obj << /BBox [ 4001.37 6512.38 4043.79 6554.8 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 163 >> stream xݏ @ {O r D $`}.#a e8<ʬdE!v\P< T:LaFQRFg1I+R|r>ϭ, oNn8%Q)ASۆ='njk^boendstream endobj 1199 0 obj << /BBox [ 3981.75 6128.13 4024.18 6170.55 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 165 >> stream xO @ ='0g;OD A$$ 'Fp~]n ) U J)3rv$x?ꤎ9H3^*jRE_p9P惃/F$Q1PMĄ;X:LDy4 D <]=lަbendstream endobj 1200 0 obj << /BBox [ 3955.5 5950.85 3997.92 5993.27 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 164 >> stream xݏ B1 D{O N2P0| $`}}a V$ @e+) Jt!VW`!gA+I/& cDg)ɇFY(M7Tk`Fq|p|T>ApS\Jdendstream endobj 1201 0 obj << /BBox [ 3994.54 5997.77 4036.96 6040.19 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 166 >> stream xݏM 1 9EN4'ܩ 0耠.-e#{4gsdPfdhł89eA.Ċ3 1tBQRN5> >> /Subtype /Form /Type /XObject /Length 168 >> stream xO[ 1 )rG'S?< .x?Baf$_eV1BP=:A .Ċ3#X)MRۊQ#TlL*Д3 R${9f5AВH|9q3':< m1 G|εm#a7Lcendstream endobj 1203 0 obj << /BBox [ 4058.8 6649.45 4101.22 6691.87 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 163 >> stream xO 1 ='0/v 耂NpH@9 .[DpeV -Y&nNAP }'䎗~):.dHZqbbYX)HWXˣ2ڦ2 X +h-G'Ȥ:7eΥoa 3nHcendstream endobj 1204 0 obj << /BBox [ 4058.18 6437.36 4100.61 6479.79 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 164 >> stream xݏ 1 F{O '('!OrGX"K^<8Ad5k!F0# #[$/h1'vTѕBnXH>8T?פ-bsws'@ſ36sPpSϹ.%wt`'endstream endobj 1205 0 obj << /BBox [ 4071.34 6315.61 4113.77 6358.04 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 167 >> stream xݏK A D9EN餻O S`AA]x}Gp JjsȒYx%NAIPR'cSu x[MR#(Y>sIX(bQWXfn|7Ɖfʊ2n 6/&𓣃 &p|յ%q#dKendstream endobj 1206 0 obj << /BBox [ 4075.22 6425.13 4117.64 6467.55 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 164 >> stream xݏ9 Q "'YrN-<Zx}0΂GH_6,<@,0JTbGMœ+>x;0+oMsd':pmb wAQ #^)Ŕӣ TR]kkGdendstream endobj 1207 0 obj << /BBox [ 4037.83 6026.23 4080.25 6068.66 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 164 >> stream xݏA1E @S`h.L .X<9Tp~Y(ZF(nN0'bOxUHކMaFvv%^x5 +%.E\I~2Sʋ"RE \Hv7$?n|=|~?dendstream endobj 1208 0 obj << /BBox [ 4393.5 6550.32 4435.92 6592.75 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 166 >> stream xݏ B1 {O LN2P0< $`}"Fp8HBв 椌g<dbFdNɁ\Q55zcVJ)sb],נ Tbcv7֔O.PH$wuadendstream endobj 1209 0 obj << /BBox [ 4406.16 6152.11 4448.59 6194.53 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 167 >> stream xݏ B1 D{O L8v2P0 !gϹV;g ) 傥FIQ)#1%xgPDh왲u1BZ1pFM)O֕_fjua|;Ĕ;Ɔ꼸1swC1R =&8Al_w?n-dendstream endobj 1210 0 obj << /BBox [ 4391.84 5914.07 4434.26 5956.5 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 166 >> stream xOI A yAl=ԃԃ߷Yl|*TV;pIIHxP2왌-3% x=F]Uj^iYR*QX)`&B Cr0s1M$+~P.Lj|9)8DqSR8peUendstream endobj 1211 0 obj << /BBox [ 4327.39 6047.02 4369.82 6089.44 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 163 >> stream xݏA1E`@S`h.G6<@RʆVQR7'edu$< pYГWPnH5*< n$<\,j8c1c[tŷb'@#70bϾ<>m_endstream endobj 1212 0 obj << /BBox [ 4426.45 6273.68 4468.88 6316.1 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 167 >> stream xݏ;1 D{'0Or$:+@B (>^]+Px#سyvx$> >> /Subtype /Form /Type /XObject /Length 164 >> stream xݏ P {O 2P0@@ Vp>oKNp)EH񖊡#[0x=FRxYtDMU*h! 1sW׽bÓ2?o)FM|$ȃbxaOM% '0njk_f^IbYendstream endobj 1214 0 obj << /BBox [ 4339.32 6490.12 4381.75 6532.55 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 165 >> stream xO9@ e_D< HH Fd 3g67 aTÙI +F9z]f*VqTfUA ]]LlA15(V./&<*E~[tpB"`׹վ{ FHcendstream endobj 1215 0 obj << /BBox [ 4361.89 6283.02 4404.31 6325.45 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 164 >> stream xݏ A DsW 뽭 ('!Gg!KPf%KT5R +>x;0A I o߆[ yHU\4VR( 'В36vGxMd RH]k}qO/a<^endstream endobj 1216 0 obj << /BBox [ 4407.88 6405.27 4450.31 6447.69 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 164 >> stream xݏ;@ D{'0~ND HH FF(\<{Nx P0葌-2/#&Uu3V.T)o8TfnnNkr}Y7A{ pB"xuQ GXaendstream endobj 1217 0 obj << /BBox [ 4423.69 6043.02 4466.11 6085.45 ] /Filter /FlateDecode /FormType 1 /Group 711 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R717 712 0 R >> >> /Subtype /Form /Type /XObject /Length 162 >> stream xݏ @ {O w( HH sQ.$@72/x0  %<&D,< 8R #Q-fꔭra*#Qž}=27p'ؼ)t<(gAl6\:p|C]k}qO/a^Eendstream endobj 1218 0 obj << /Filter /FlateDecode /Length 31757 >> stream xK&q%_q `IYIYTf~<,"dbgOscv[so}G墳o9>x/o.}soy4[﹥q|7KJx}y7:{_:ښNM}rIeWqS\~YvN5}\Դ|_j35}\7Еo-3l.s ?3>r+*s>z:x:o~Oyӏ?NO?_iޜә=*zoӯoO_0~#gMoh`y=ZO??z׾z:™o|NZ?Oj=5^to#wΧ?w+??^8}w̓/ɨRy)ut^Yj~gGvѣ%/ʑ,eK)Q`n^ȩ﫧Y3%v^>:J9}矻ٕ>WO|x嬊Tsg<:lBgr̼~]MB .~FSY4iUe2ƺu|v)>[Z|w3hT؅?yzmw,wl_~ޛFT|oM?^Qw;W7J!%MדUBR*YʒR%Þ,y)US/o䵔Y_vԯvE[X?u:fzj}{|qng)S9yYϴ:{>+qo?7G]r3~m擑ץnə gE|]Y%y?J]Gʳ~>}Y%y[_wk=ׯQC U?g_STqvndr:{0*_gq*B%M!w! ^ wG]֟8 }aP ϏŚ>[cS? Y>TK N9*vq?g)g]grZu3htn\?#Nc5g೚{S}s)YZ2 z ?4g~$gaK0P4dc4{iBӬ@kf79$7$.@9jީ<?//wʄj``wLH.2s L?Ts3d0q$ܑΎqxԫ}`m >YϙQْR4ifFG2Fv$ Jy =cWQgْ=j@^ϭh摼o%뒌vỊ{dyuba=gi.^>KZCōjR-+r+h-GҼ\| 2Ҵb9on5#}| AU##h C3a֫aw\SRd|I 0%-ЀdY#؜F J d5Ъ7 I@ɹsZ []x1(X5ojIB;3PiR`Mr}Q=UԴ>Zmq%[fȭ3+1iV۠%4H:J 6}VY4Of$7N|>+к5՞Mzjq&I>wpfx> pf^f[H*bt:3l4|lt4) >SHx_dx;P(\,bIW50503Vʜj3v43VK׻8)E.z4#G\lJR]вmޜVexQ%;Z9c:ӯ_$z_VhcT0j}6|?g933. 'Ish 74o--Y~&Og.؃ i:^/8PXxAԁoXT.GT5[oho(8a-LJZ9 $Z %wSQ44 lKI;i^Լ#8%+R}MD%iXmhJry^ |LGBlm7zSVdS'L@V[/®>\OYΪd`3P$>ces-U|H JC*@5yR8-V=sRlK&H%غGM3UOZr$ӽMzj93e{gY9N% SpK0&a I&{ֿZ˚5/oO?g~=94#1`jOP=Zئ{9u#9Z(G=suN[H `jE՞TU\6,JQ ~hi^+es6:NJ3SIH(l$gӟ,oW-t>K,ʚg TՃ ג (gӱq㮄zK4Mx^8Gc=r,ӵѼ& İr.JU|NX-IB3ő+X D(~81a5uϞ#HW`s>ΚtPRItǔB:==H7ֲV-qckۙg[_nmܾkPsI >g;s >$ LCKimp;5Er`/OMh4Nlj@=tnN-v41_uNö<`s;jN{srhsғVBQv~f^*:{}DD\gq_,N^f5o{-s g{ބ\ꎤk'nؔy.G{o.YhjŽ玤z]M\)Vs$w.JN3ԪxNŦ)j&,NWmMl4'=;e<[1mV1}Mꓗ_oщ[yl}]!D肥3B^Ӿu=q`:uNJLԁR6]dTΊ?}h%z̿bEп覻5uXNY8;k-ƙ}eJg8np͛16w Y.O;*nޙeae;1Pm^ܚ9EozƥjV-]:ԊIÛIդ8RtUS1 ^1q`.M xzx:v6b9FdPd>-)1^t6B5Ba ; 5Ew(7K6%^ Ih!fdI|S{wfy@- pvv۩YRW }Pzϒ2Y%Z'T`BsP5ݡ6:Yjn Ut6ېW Y% Q@%'C _$ϸ2tcT]LE)3C\M0,f(-/m,jr726e 'dWԥA`0jpC=$ר@Z܉8+H0(lxY[edi@eoLE372zd(V#sh#h3a:bтtWV3P^|uTOt20]Oْ,dʰ+Fh4 fc$3NeY0[I@ml5xf iA<@^+զ wUd0l,յ363T&_%p4\ns-'Iy<.A/-d./hjY44ewܻ5=V6H,ۘ>aKUb 4YaGܔt/ c5<_ ؖuM,#8NIgzZѕЧvώ0T`Hai YUK:Y4=9zϥ-* t|"(qm]dRbcZfݑ~-UӺZ KSWo=tYd2|E,t fj 4#0CE]25ﮱ=,!igj5^|6~eT⫚fQ;&v?`٨uG =z}cEP_.XAe @,3}8F=& cF#6p291)P"n VM [`=e.-Z2Ea۔1 ,JwJbB<=,p(3Jp(nD=5v]>kQv(opi|#QƋ!s+ .%;<؁?S]]jD$7NX-*3%jܦws!`rdZB? aZ3p0M=Ih; g`zTqG 索"!{ROAVimgs4 ۯ&Wjxj=?qvOfe5Z(,m ֩qjZ'i 1܋n}QMam5K`U779 (,xP nJdƢ.ZX:n|agh|Ǟ(;AOT:Czɸ%QEjxhǺDϲMsC^'Q::[hܨ2m( ۛ&.#9Wqtp޺uim®HS׶LhM~\Xku.dMvt5Mj2O"C!㣨[Ɩ͇*.wZSϸΠWѿ/w\f#%1cw|]bꓥ#]O:mPIPi.#I#h$)xpkBbg/W^I~H(ICbU~Xۡp]FZ+&XA+b%bwj>U X{G3w`d̶zv-ZxncejxuÚTpXٺ=fv,1a.KHWNzrJ%e +CGXCE2HݏXn PH;+ևtdM+WOA VԦ]Fѩ;2!v ";rHtP[scoJb=/Lѽ84:n{^9yKYÎ[dItbS/v5Ɯ)T1\q޶X(@"h{&a>II˪f 4ncɰ5)ɪPV´6Jy]Ƥ>fmiij{B#蔭賺=\^u⌒²VP[l=[ Tp{ڔLB:ai9U^1ZLa1(\z#zZ ı sVmXK ̪6\G%%A(nFdX"uɼiA6| =;gIpaD4 3 k\OOB 6%~*0BtHG9hGذBq+Ia$J&)R{4wӈĢs@ÎN%۰U˂[()w$GnK kCDKD+@ܒeXc\vZ.]x3Trb`U5NZ3С4Y8\fU5+慚+ŊD,Pp XYrUu r9AgU0KWɸFOW:Zg1 -ȸv míXm[zT[{`#^iT3$K^u" O:TynEIa0eak@+YZr$B$E:S& v?C61Q!掘ӂ=x$ GzFT8r nXTqভkH\.B{RJD ]J((ӜbAGT]aJVB{ĄT'ϟ(!0[.oLFķ9xC ^m \i#׶@W;9;*#PBj9Ta R+ѵiȵ"zv8t1A@MW}^+ASh1HW &(FK@Hn"q^pQd9 D+U+o/P %"U]EEf{BuiFq3W;U"cȩ\ ]djf y30QO– VPuhgAE+p4\dhmTNKsnYIElû3=T-hȶWh.~IK ,;^I >*HޭjbzpW$/gv6#taIZB.\ e@v c0V|D1giRjJKÛu'="hii޸|gDV_[Vޛ[vt芠MZ\ =m⊭I2?G+;֘ ,0,)[s@| HQ6,`q8EԔP[2!h7m:Zw^4`'mZFM$^H@CYāQT0٦KІ=+)=EvTǯ o̔W\klA iw({)x{Ӊ!$+*Fgw6 lkzBcNrڟ tB8~" 996CR@-Yɱr!=ہqt!AnEP#&1<{zVФ~[;{zc$DU[9x3MkRWP؊>"|#aHU<+6W*n8I$ѣWnHC.T٨Xm) nū d b? ]yv@CDj#ғӜN"ғӂEpdZ=ȍII`DgC(:DordNvi-X*W2 D%{$]ɱ:>$~8+Rg;C@!![_upF֡ (󺠍<2>(ߋUzl?O3=xO3)$GaHitٙo!ooI$GA`l/'zɍҀMVuV*Ybb=e:-[㈦JXUVAS!\}kYg \4"uʸNeV) $in$I㩺^󔉉ڶ.V.pZo*ڥƇdZT/{`]u &Iy$ΦX"'H3۰W79&Z0l]7>92%aE >438ֱ2}dv 15]"/!3E-ͯhmI6i g% %JJfx^V5zwA⹝ @AI30^23@V8l;/wn3H#]:؛IÇHOG o =_Ժ,I#FɋI\nRHtA6!DI#)8&x!a&&Fd s~s$E݂<yrԜlNEyqi6+!LꮹLa"\b!g!M^倄'A_U\VߘlBCߚaQ̶$'sb};JLEuN.YBLyƋ^LQ)ËB|gjJܰdaªh рmL>Tm܆6z -ȷOv<{ ۆˍ##ӧVKH샼y] JA4IS :I@SӠiC<6E{b;JCf z)[%nr_?k1pa%o\Ɯ9ۈmݔyzZY)Rd(N H:B IMO#|@)"؃@2x $]@Ss-T@hM'eU>h9n(uI .ɣJ=J]ԗm}.KЁs9s6s#R-3܂ o6L zC sQʴ!y)EuIJue< BrKmd|ɖį_8}>=gҧG_f7Dˮ1O<\%_u*`P(7Mn_zesM>  s@}pXޮGR%;<\O NE ܨkf>AUhO#vk%e@IQM^RfO>D O4H^ޗ$MY(PC*+brY=MC5A:ǡꍈ LޘYJ'40C ґDIH)xf;y{coI VSNiSA G#| 6(|OR_ġֵw|<["\ sp %B@hAS;]NfXԑߘƲM|̶r#:܂:&PAdLap.{9k)TF$IcP<^x!0nZr+Î&]~Ld#\t؈Z0K"mV`8iqH;ygþIm nt5f#CW)Is˅FNtX:P4R$Y"p’4-62&Dј!#'Qߦw>c!cT f*Gj-*oīo}2/ݾMx5#D @ʂ`1Gi;'[v`%;Ad&cD\*l&N!MtMo9iHWY:4$1w&Ҋk:?R;EҾKB{5BsmItl_Taq5U y\' Rh][gö#7T`M/j4{z-ML!u:2Z^%ָ: ZɏmeU3[W؋Tdt @Fװ̥iH$k؊TrijgĢ7X8HEQa^ }&lRY6'vh{qֈ(?>s'4HHg P[*L}r{M$ @u4h ꅟӐaE=JkJC!qł=Ih(f)S=tHD!/of8WUIToL&;4+h>7CP'%b4DƎ槤#c& 奞I\,%O13K;ٙ I^%ucR- :Pd4qu1 M,(GJoPn ƛ#QL m.],I{+%r%Ww)xXa+#%6 <(k8xJ"v'g "+ȅs?pWDSb&y9ܖ&E\kI/%t)kbN^#>Ar7˿._پu"`lJsV=rYDz5LKw8`.O8oeʖm+ }}:}LIE ]7z(:ᕔh2Mb#hjڷmzEfnEQ'O9הy%ØᜏSunw\vfm&S2eN6_MaWxrsa&$xa뚻|=ǀ#i@]QJXx\vjT\Cq"{S98ϓpDK rX4Wfrf9'KG{ }V%gc>u 6>Ky>7fr%# f|z[Բ%-%ڴ[fs>d![]jXPWuY\avb &~mA>&~ qO3KRcUS`2OUsjCe=hbwXI2cu" [N{bYK(LɁrkX (gԀm(OJ /#-f:%RVo޴4XujaIq_sf%y(/W 7A[^a܆g'ޢMڏ*ueb@Ȇ%ҴΡx`6Bߋl*IKDSNe@Vxmh\hgs3Vp^JR\f\e.^x.F8>L* ~u,2$Hy~۳ϪM$0 S\[;$7J|e;- ?r`&E#3ofy~1])Ktb(%f`/E)cyi$yiȟAAj$B[jN/2*!jX(G yE2&Yg>s6[;VU MK~$<_ 7 #|׫woFQ'x9%ư}?do%S!% @q̯dih;ӜY\t>M.z`qMId )ISP߆2^tL(qe=̝`zтg$/xnU|bM;a[.&nurb34U@;%~B'\L96E{==2 XO3WbM~wLћ(‡,?=݋]&C3hD"(6{=~#Y!s C f8~݀Adh OqpbQ}FTjv~ |br$ J{ L`b |7#H떼Nm0)|p~K,fXR-'3ŸXүKݒA3%y.[rƳQwjsj^E.ɣuf T)|<7o\#2e|z2@Q,<ԓzQgΣ%/G%Z盷POQL=Ցgv&W3GA \oa\Tq_.?*\ 'l~wGHބ}~FkO~PiD|@Gk>.^_ǀ. >}JI6}\%溴K/4j] +DsE,'ԇ7 ZWZ¼˰zfr|(uC]XD^!=?5GMu lOrnh~.6{Z?j$()/RxyA^\ "e<-+ #DR`;4a2&%-/AhZ T}Y[+Qun颌O-Ӧ8}kʄS,0d݁)]F'ջy .$[<7dikbEYCҪBXwm,XLܦN϶ !V(H#Rlǯ0^.b~1t0AjN-B7tI< f "pGA=ZH '?qaʐ8"H R5}A #!HV TOtY@]4KE2~kDvKUDh`v;*[5k0c 9K $o=VRf R$pOY!dめlٳb;[ק}{B,VS7kGAIFҁUCY6>B{9 4gD;s2u=c}tJXL੎Re0޸X%ܟe2e9\ iLA0n^`[FM3]N/"=;>&ٙ&S?\$g'Fm*{hRx$AHb ERH F$g kw^DD#$e ՝le{kE*B@` Efc..vj֫I\Nm `>bd }SS2nthR@|IGqE_C/ q8]+L2&PAEI!Q,ģ!.3]ʦOSgJѣ.|J aڜkK"tMI@b36Ai ŚK,)!]!R14PT"4ȠJfDP"eoi%PwsƀAXX% 0$QqO< crZD;D!ju(RB]Jh 2/uU\ zy@+޾,J_*ң9(JBKGsMGyGun (KlfZ VQ5i+UFeBl&hԨ8¨p,NXH̆*@&oR!(يe cy랚(|`/Ȇ+RX5*#,μ5Ɇ9&Hl3@)ě:GrP :e@AċxHPNOe37Acbd9Zp~T$S8}+iw^{0m9" e^G$h]/IP[uڝnV|2ueh=2cvD8Ꮄv#+WHcPkY&T߼ՋNX{j .eB0hr,ž6'3l$V9Qiev,)+9]XyQ6IIrPmS!f= ٺnUZ0wvsLpn0V1rvLrQ(gsVLՈ^:mbp3UVqakqQˡ#"fk}3bU 4фInAb%mF7o(W`’`2/ɒ 8:5bEbg5(yWo^D)k:-bI".W]շ9I j-:qb)M.J]b)MȬ\p"6xBma2%cm 7^ K9/ )I,l)@KAl$ץ<ٮ Ws&1xA ʬ4eXh)^LϝCO3krEf1{%3Q96".EЂ@m$ w.iQ~*0vR"S]هd]8OH뫤 ҊYn.ȜګJ/:T"ZzCȿ]PِL-[kH^h?B^9IAVOsa8C> gP#?.r5 H3H?. YDZ忠;ͬOW Oo_0_0:~oCy"_={$L9W1xͿN(%*R>G! ^ܓ7{ /\> YZH~܅_ȯxq-\\s)fg T[/uNIreR:q|ߜp/Ȯ dW̘yBɝ8$ʯeKch83 TH?JYj*ԣTH`Q/o ɣԗ_G_9¬eIZ`L,{o0w19718,#3c׳%/)B9$/ԈGU4r!,ojsv^*U0]QĚOU9F3 =^\~(һ2X^B[_{5MkPӥ{((/`@QFI}aKl?0yN&ʹP$t\EYiv~r\-2 Yp*M)/`Z,В.H . )@$h18.F{r=zQge_s(xYOGbF gk&MD+iqge ɀm]+H?'*HT3*+(O9ؙRUP.W_^ n0]9bS֎Bk^[u2[L]ft=x(qxMud%ɾrrK*;U*F"HK7Ѹ%UQn,a\9h<"'* ϤR{ۖFU ]F\ߝdtH}Dd)%D2(U&I>>"F:$N:X5|&\ve(:WY|2/0'0ޏt܋$Ȱ b[){*=ps^[m("E|hm`+#@IiLYEl4YGn1g!yXY9&]dRl=]&=>o)6 T:<ޡT";{qK\'jyHm<+ f14B)%Ja-ax4:*S7Q8Ү aor!;xǹz) L s T`A/-gf[UTLkQFENl R`1n5n5Ǫ 8fN?Eu,P+WHj$uʍ0'a}O-;!DRS0\LΫxF;EYΜY5 <2lN0}V(V$},MpZ<2jتI@[LGn6J2'{k/;fWVm퓌I3-RYValbnzꤌ3qS9@MA*fr`;A)@ZL2b.S.j$93%XaYk.&*W~v& ^j׷}ITn~Mɍm$Ѹ7}p: ML8:73r,1N IH6% I*#uĔwj!a dcؐ\q)+WHNLB[N_  0c-nkF0i䢜 p+6Ā0vDn!c,wPMsh`jSI2y_~?I!j(mxo@BOzȁv+tuQ^>_t<9 rMޟf-6]HOe.xu8KY<|8 ]yƌ|Xog=ǃ*boV뷗 4ts"Zd|^c;Hm{wkF[;ҪfVͶ59ϯ"D92=g;5 m ]/MZZoZHDzQ8m[m!'it|{AIIWm8+=a~N0"A}9bTG'qtj:fFg@quicg&~NNI%yQ;#dzIe NF5v`>,z!#%[wQ@YY56P` /R1ѪO0«ߔN K=Z 9RUO):k~xu-aTzQgG>#w3)mH?bcsה_rDj)ȕP)./ y;]&yvő$O+H3ISRx%kdͦL$yr>?i ) ꝲ/-nLQq,C|25hӨ{m7N]0UN!̸MqY6 h43f.ALNe~j&Nv, V9')0a7,䩇,,r m&Sgϴ|=XԵdI^~A=QseYٲlt) k3^ϰҠGmRB Jdk r|Rxd \ĂF{XO7v&aЪāmgmB#$EGm:%]r>v@.9r:_v9%]6edLgK1[{!Yl-ɺk!XPpNI%e& `|$pT+`z;`.zJQ;Kq?2h#x {вtaS}C#}ljr|0F26?7!O^Hꃑ2a rL1z&fJtFz(C XƂt,=]0 l*t M* m5C}<Ci\JtUK?EC_:g{s PN#tqBH$Imђ O9uE` cD$4JJfӦCڝoVȡ[CD~H87tFDQqTD,|=NGD` 9L[Pq ] }0<>d^Q$\Q@F9a$z# Aeʮ9se_DeU⩆ZX[CrT) C dܐZҍfq]<)u|M#FX쉫&s(RaDcU 5p2ÍLi{5Ì*g- :GkDꙴ]zTv nbZօ e}?ͪUc6U5gNݶbEC\ee e5^b' ~[_y4R٪+N2&rԫ\6oK|.07@>/1-A{^e,U fz]j4(&r8s<}Z']LIBCkFb8R9R:Td LaeuZ4>f_h0T6^\ƙv)j)TԎ9ŒZU*s}.,ۍIx))^JIm\X$IzlF.n 0pit/RoI'lF`v̸afkˎ ܖ2$c;f8myGϒe^0iRn,""xCyUQ8'5dQP<&=^ jE4endstream endobj 1219 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1787 >> stream xTkTT=3w ̺sG V,fx`,#o€$f)m #y%hq*661X]>KO3?cֺw߷EHlD"CH&7Ő^$[<W0FonID!lgg汳#`0BbhUr1KxHK7(~G#OEPJvFNFrS4LmݑT?9A#8>swVA#)9eSZz.[PڄCQ$B(rBQڀ6pDș (}%zOt&掭퇶ġ2$AR",ͬa>he0Cgt .KB}=Iec7/75\/'`f"lIrWR a <YFDDITO5) /?_F$Xj[rm@ٳ>(Oa| (JQ6DC)icZ##=挦ؾ0`ˈ`ec0] ^ yk?} +Sx?;6%ĞhƷǚ2nxv%2RZK*~9xy%09)1]do6}}Ka >(&y2Ee 6!`Vb̒+U6BS-~1 + q3yOXK$"PfNl扜OLΊIxW힦<~o뼁oXw#Q4 pQcUo Z`ѴTJ8R,_lH{Ri|L)N{4dE6T7;՘('[onwx Hn 46= ij qM8=]vD]ͩx 7_j|a}d\U:|IqOmoG=~B>֐S.;s ';1K74 rW5?$vvWD违 endstream endobj 1220 0 obj << /Filter /FlateDecode /Length 2733 >> stream xZko7߰0ZD\EHAѦ,el\΋gX%{x/8vB0{? DaLB:Ù2/*]f)ͭ*ng{L8p:0UlgR|a̲dpiYXe5 - Ÿ)`Т%F[W$4ϴ># :d!i]ӭW5zYtV3x.<\rB " '^gy\ ^n \mM)V}=qtn[6a3I1Ćp15kvҡ%nVl=rnl)-qN}Z2Yjǀͣ3{ۓ9yTfr0Xlfn]fϼ˨K-#3#K&V&0a>lAgmvlOhkI?[`õ4t>}kl{]iף*#tt Epy! @ ӊrsXP nusYKjn7ٯ3ŴOV#xIw} 9Hub ]Ek&ͧ9!Xh.eV$t!=].0Յ2 n1nۇ ;=2jp7ڥz3 /irڸD~ݹU7Y[( $U|WE thCk l13:.ElCL&^n.7Bsѓ/')!`1XއX߇#8%=qS.@ZLP-O5ʉP/ A!HD:45>Tϑp#E. \c%Cvs,>Cd6s Q6媮")6t390cv%$1H#Z߉FH炼vQ!{UDmng8emK46fSDp>ԖrT/B1aV1UStW]9ckU }QZhmĭhqz ljܻUwo.ܘ3Bj=$E6oC0çl}H,9en)RS]5$8Pa%dN^~]0:|@(sjo qYryʔG:vl!8l9G9=`Q\ԫv~7iNh$u-ŤQؚ:FSU|.T|?h$(ADrpXI4.CgrIM='㐟c xA|b Y DNCM4>!EpTpK,]9?P^2dE&2Q)^!];]3, ,i yRKRBӑWnq{W^|)హ L:$eɉR%c㌻yr1'6zmv>h?;`eUOiMŤ-Ml}q̎`P;:hA6w:,7,YIϦaLr|>wNw7i<3plzǴgȧơ=Oűjr<휷ܯ| x}.$$[Cz^]1JƋ,&MM}ի_^NP Df-|A]~!"B+SUX+[Aa? MWMTm{X|sݗQPD:EU_rf%Yqq!I\ymq!mы~іDUewYw+F_ښ".'\Z;KovCQ^4ަt}jY ̣^o];1e*-, 1>_T?ZFY&P۵T'ӕv%vhu;pTu&Aei MRc,#KL}|.T]ǜ4.ED]P6TWrY"[7.(&JH؂N]?Ÿ-nnH~fY_UvU #ǛO Хr 9^][A\|_^VL"ImM%OؑZSD0!eWսJM5Kʤ&q{c'Z[DRkqjI/Caj8(XuobqvRmso)V&X3^n6#8.VǦz7jCKZ]VO&fdt]GZnendstream endobj 1221 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 282 >> stream xcd`ab`dd v 4400qt~H3aӛUA,knn~'Ȩl䜟[PZZZWZW1?5 ˾_<}a0o-[ ɽ翟g6;S'wf-Youq~?D'-[Կ`iGg5mv7wert~-0{Nό~v-ܒޫoendstream endobj 1222 0 obj << /Filter /FlateDecode /Length 3244 >> stream xn#osU"L e C1&r7y.WKW5EdFWo_)ؔw\|DŽ~'tqӄg p!r$eWOunz\w]v⪢Ԑ/߲rNUW/f ^;-Iֈњ]}lv&~m]IroWۏaxY+i%֒*Wd6}|l]: NVn!O) (zrk6MQ]A9wxN4?: 2edQo=fLgI8GcXe@ Gl9ҀA7릚͵rwb- 1 #qoՂ[&./ww9otXb~6Gl7 /fpa |1|—ݰ?0XWQhyM!:%j"]zb}ihi͓߮2eZMv/Ģ}=(w5v"^D.~٧e EP}wp!ԁ Iﳆ K||y tKX|Wa%{` .|)hƺlՅ4#x6మmWքWi Y 1DDi4>xw.Ua(ş] V/B\q7ioX0]132W"_͢ 0횕 B{ϦtR/7MB2O>[ 7Mӥ/NFV9^ޯ__aR "l [& !j- }8c*OS +P-jç]3 Ӈ K.ӯ&i+m V o֓E™4cM+.12WRTqLn.Ex:_̀3"*| SVrq: >%U @("RJ^clvbr 5s)6dT9اc:)4ۦaр-sL8]T( ޣT])J?AZ? 8v@b / U7%ЫK**C4NG:dCB$E\v!] bCP,8c1.+>5?#< fmg!PCUYU@1F3Mv`tF؈q7c2L0=ջ 9#!y8)rUv3}Hn2~@u +Rt&OLV֚Q 9%oӓn6]>s6} :p @,3T,^Qiِ[PjbJ~WoMQ3"A#|7u y "7Xe]~8QHQD]"L|ݮ io4ʒr!#DKή8k SCP$ABF@U+i2ؗTE`bm_CR<I,g9&Bp\2Vc #*'zJ"Q͢ebmIv>\ݨRAh*5KnIԭ#mH.36@ӮŦoOE|eL7'?\9ptr7t1z˰EhAQwTmDщ@:n23f^h^iy5f?g~:~Kɽԡc+! KH ~i v B+W؄j/ԵP?' !4=&z->w,[އ~ b*A)%Lr f;hп=֟f$ Tt ,E_7L'YH4$( SA5joBA8g+q#՜Tǔ=M ǨZ3 ƢG0O/U#^pyBs)VPP(]!J[M$+5֠!e;Apc225zR!|=RJS6^jc[S*B1=xsls;'p Kq!IF\-|wܕS )`9K)я>,{΀:l/N;3l(Sm泙s q`w S81v<)ǜ .)De&@a|E hS)qٌ]= W8ee+Fe zܝ8]8FLh' 1Vef&;>k40(Nқ Nb5ەwo4 G9%Խ`BpaiDbkꝘ>儈$!\i*6GwhT@%.ְ C8G^Y9éovv֜Sxebnv7rѻua7]B.["?l=148/)=QS\]R/vzliFf„",R;~w`$6fN>. p?対ƨ >ڃ^Rʏns~<=q\W>ZEoܽJ ŧ2FjneC8:l'k{ἆq@ ЏGzɠʪ\C bxҙuF3xnfc99ln 5O_y70V?.v瑍߷k߽p) ~r¸q(8>ZD!F~;/Rendstream endobj 1223 0 obj << /Filter /FlateDecode /Length 3827 >> stream xZݏBm &vࢱb-TKˮk̐ܯsa[ '?ߜ}K3Y6gdyד|3 (;7LfWg[Dy漟6gس\x4]A<5WFbsw2Y[~ {ZG8W_TjB>eJ z8c^zݖt;96LVM/3'L\VnUm/a!F u_a*o?%ƪ[UKC]ڒjnir-B>*k{ǂ-[M\NY֛Ui':.Ѕ Mt[)R.uH!w5 LLt~ jPjnc`7_-A׆vhzL<f:vSWq?<~^v_UubvE"ж v{1r![#߷V=>M,hoޔ,ufFҸk ?:/MJlMfF8O/Ir ^B!Qy79kU 5dE^fܩ| o6uo9u0(E6x@=xVKpQi)aHY+t^m6%!P04.=` ^m4Z`zYma&m<PC- K |5E yt}Wa(CnԅA>ݑ[4K8׺h'qcֆ%ɒdve(yWI˳3tr{gV+3P|3'ۑe<]"4L(ۏ# 8ޠ!?Y~yRlzգ2T_P60UگW_ξ39\m!2|퓗/a <&rƊ nAbFd0$CrW`$Qijsz1PL1k$oӅ]%ـcCrl8 اNJ:< xx[9/ ,)d4) j{Kqc)f)B  ;OrVmB1nRY!ycy"d E#ѐ5kua)ڦm&)F`lQSna::M| _mGPdjVa=tѴ̈́m.'iCpU;L) h#ʀz,@>vȅ^GD!cE\^Eqͺl5<).MM5AAZj}Ī_BV;j~=h/> $9s)s >.L#=\(WBpKa.0Mn\y\O~y%?mg<{:v~?|rw0~ϟ>!mpA|W ROᘷ ^ޟN)=ԵZ NE=jƫL9ie h>RS206.áO[[lQ?^By&w[yoyIipO9S4e! C$1|)Tc \(qT%QrSܜlf`Q*Ns __ ^}arclM 8IQ KJ 8c* X>cNb0vw+ @^fl DQ8?P:na=߭@$#k=jL %XJf (4AM+q3qwZrAK<M%\2^ -<7#Kj"<\*3*0#K@vTK$В v"֥ն(DgUЂY-Î똻f qYMN9F{u<^89g,jz"ĭuKfhSTji.]^OӁTlD$/tT&@cL8Zgr1%(wpZBf?&x֜%[7!q\h}o&j/E]H0@@WxO~:{rMkɖ uތH4~ʽe.l6%ZTQa7Մ )endstream endobj 1224 0 obj << /Filter /FlateDecode /Length 1985 >> stream xX[~0҇r5-1Lf-&i t Xi,yEj.oǠDR^{v@`\0 p8 OO!M[9 ɇI O?~PB)fiNY¤OSb?Ab$„, 3zOtnn__b i?Dзu^mģ[몖#Rt8{w_Nf$a'0e~ !wSL &<FNxXVvdS\~ ާU_eGwb#`sSJNi,]mUvhD_M;` AyYΊ.~"%O`^Uoc#ojya78d1=s&lG_(DˣgbMȴ8\tX-.!ldպ~(M.!B6-QD{=78`v5 F(Ay!h3@DЈ$AJM]b+6ڃs`a0+4[ P3G(0ގ,z D0 -EqRJ\]n,XmRu[2Q䇃0Q ntjf i>/k>;{Щ蔝GQ( G76mh+R#U;ԶCzFJEܴrK~L@Ϧ1yTblLl,B lˎ$ (`pd6DfOLOrZe.*sڡoA޼r5kڪrx!X&iQ5 v)*K!96^J׷`7SwZԢn)0 aZlA~_ OOK(!dlCS136*W|z_OnN-%W?4fk5f7h[7ʋ9mw<"%YM=W֕0‘^z (*`mr 6YC/LR4zl߷`W[OoGj#ܦQ%h/[] ^1RzVk-oA)sI0 r}k 'SzF;Qi}PV5QyQkGj:AgoRd$AKW9H/?s#$XZJByctOh[?7?x]^ھC;(Tڮ]aaޗO61jµ@}}W}I @!H3=)KR{c>Χw7zOÛep|jHje5L6UOGJ#Ro{/SO4Lӯul)+3d{87A5r^oV4^uhk{O> stream xYMo#Wȅ^Xn%d0b6x! 9Zmsc?blmlիWUԯ03vqur/ru_.%1yPa\EAYeAQu'rMXAaRdh\8 Bz蹤&MK}O jݰ{JxH"#t~"@iſ?.VEdyT.WQj0;g5{;h;yXdY6ʅ(qRV_ք塚f Ṇ̀8RKj5._/(,F֧s"h:qP0ӆߢT4:'aT+!gVu97ݣ8FD}A&hG#yՑl~IѦ%k|d E@[$ׂ|9E =MSi`P{&%ux# d?aU4^peMÊqRQyDz,U_0*~I9z?&ܐwDZK{D|XǥFh WKQ]wQRQZ,R}!{jV߁Onpd mBi#ALvCWyY{hhK;iA۾iMT$\I{!r t3!#i\˵cEt!]zy@2TQ#y7:P^O4I )hCM Y.$\T'VHjJOt@N _+_~G nۜiJHlxkܓ3JKF.yBT[l?ҖYCޓf 6`84HS 93.NaəΐYk{-yߚ n!Hdpq]/^4&'w)F 8뼜=>ZjG S"1FDЭg> Kk(`JFg3豀bM; &JOIK{o[i$(?Q&}kX2fH{)G)R^ -"5@&;(FAh]lěGpLO,x(DB5m4 yi8 FW|F-lzy+U^m=1h @[l <\:CWζmR#:i F8sY˔sqhsplN##By'4d:smQdЇz?ƣ|C;2lk *-z<+Wu*wskT N^5px*ee 6;`.$8`;0EҘM6$ R-w{b݄b jXoȦUH'抏9luGa i;$g껮yrBK?> stream xYnSF~,E;R^4^l h;R2#}"y(l1ȅ#<o-[m3^vl"ZݭV\q 0_nr?NtܕpΝmzV)0fkY@H}JʆġOt 3?'y8jGb>@f2=VLJzD+O25579Ѧ`ҬI=*;֌q߆'~G2?2v~ȷDo (/! Y81_qwB}wQ`zٹM3+c/ 9'%9zܝA L6~ zA;6r\pTPVf4 o:Vo0G |][ d<2 }'OT|3zl0 CaҭvzY@ xh1Ÿ.က)XGL3٢cȫ=ǀξe:]ct+)rE[VVcM57c$)wr: м^PkjPAE#yP +&S3~Ge jhPȵe .Lt񰫾jsLu20Ih, c[`ۀ]{S.m5ol]{N<W}nj0 9GU#lbg7:D5X6|@'z ,S~%KJƺ4,%uINPQҐMO: /o/7\Y\mtxGOHx ٕm* Qom2{ٖz4[j!2PJ~|a49"Uf5!4δέz*tEq~RddƠ]QʒG kܩt_6m2|Z~}뷳#$FaXz9зQEλ5oݒqH7#G$ sh{-LG 8*H\)8]A4~ʍ+ &"А񲖍һr{Kv񥨪LLe[w2dv/49y?\|- -Ly{ֳkK A\Pfz뇛%ixu܊ ;-^!뮆L3 C̸${y崞w%W eª2TUDzOJaE~z-e+p͔Ȼ\$[L 9Uonx<%+Q9Q*=M_wiendstream endobj 1227 0 obj << /Filter /FlateDecode /Length 1925 >> stream xXێ6}WirV[yhMEӢXZm&PRv7>EQCi`"s9sfM]brp&t;0+-W$i$MW"I'tULk&Ofs\wAM#u|xHլ ^,3d}ۯ咦<%RiŐՎ]'}R!ɺLmh.$!kZWLga4]%iT5FzzuPgɎ~dh sR4Q k,3Fpڣ}{ttXWJErcO^gfD!tyJsp:b'DyfvC}L<܄4"q`⢪̲SEYE@N\O<$?vqMLB;cv\ t۟Dsuᆲ*Ιw sP*eJ^S2׼Ԙ!Ls#X;AK2)'? HGO[!s$\]]-OVZȲ4wT2Q_ld.# Bˢ(SԏN Iw3Y-ߜ⛼Li-/•f$/Rjr Bmk?\"]\H;ߠ 1moǐ$6kaIV)TnӅ^XC\MQcAnxŪ[A>ix9eqF/1,YUK[lIT^4#-ņoIkjM 4oR9*m:d>274+R`Ƃ#9,l\XYsGbt"5ܗ̪l\PZHyZ)v:-J/pNk9wsb*c^<F^UyA\ݏ!wSdFQ^!*ŵ= VP m@V/!zbSH%JKu/i#Q!-&8Mճle)H\`z޽>Y)jlv*ᢷg{[,3X)dwRO;}1EWHXaYyJ;Ua}.JGoZJ 0 U0bdmc/.c?-$,پ4F5j Ud(2: KkhXu[2PoJi5^}rPiI)0C oܩ=4Mwh(tHJj*+ /^T_DATkdc,kA fas ` Æ蛉0xspHKNoX @bRB8P!k"9xry(7|̤]bvK F |w~2ΡjT9ͰV] i9S#${87 ig[;”'NxȎ٬L8!"//^w#`@w H,z؍-LVQ5Ǽݞ[k@̭}K|1i(Ŕ1>H }3к8=B Ke[3buj∵nj{@T0mZо}l7)2]ۮUR+[T V8;ӱG ]FUXjL=UZ6ܑs=oρO*5gϢy*U>} Dݽ9Ƭ?-|`RJ8+z2/#֜-y4MN s EKaX|5>endstream endobj 1228 0 obj << /Filter /FlateDecode /Length 2103 >> stream xX[o#~ׯ6ٹ_hf+ qSJb=3T8#{<=$gx8,br.wfE\^3QcsVdKy!ZG , N-{p"+<-]ol^A2)E-àTu,LfÈ|=(#0NruUHX1́U|__iŹAdz@x4s\,9+܉1_/>Aw֩)ۀIi9i:q ǥ=`ݘOkh?=[5s9MUluz5{eBIOg_,sX:}+Cݼ|ͱ%~O YibޠkZ}?)֥Is!>>Sy|swe^e`iو(>zjX:̴hul.ћ;͔1tV'63 t/.fyM?e{*"_x.K)jP+Se'-O^r[-ADޡu7Qlt 0SԊSO᳦1hPK1?ˊr5ET1YhB%o{+DoJIhwli?tӣ%aۀjubVlbbt$4{w^!Vݺ:vH =5as?Zw„-JQb.&6 #Z*m6K-p"r/%}(_^yɎ>8Mql tMرjs0(+0`hg[I gȶ ̫ɜ(+[lqLDQQї(vF!uz"saUYN.|6 zA:㎵hⅉ#E\)AwAiBzij!:9k5y%Be&/7an!yz(2SҩWh޻4ɰ?wݲ>SP̙1 RAG;dx#Z;OuX$tEYh{n VcdSӱ͡|礓7 ôGI9}SQ%@<ó#{'iH.ƆQ#"~뮲ttya&ំ u/\`TVHtD`2q w9(?a<ʹV(ȍ*l+q!G׶:I9bLN$*+T3gh:KKL dB>G%zQEDž~Ablp:-ܾrBF 6i=9=[^>Prg,TWQf!wL,s1Eat; kwqE Mc#t`!E#V_} w08eep7>a?fM/(oegY6zqd?W2endstream endobj 1229 0 obj << /Filter /FlateDecode /Length 2159 >> stream xYn}h8B/,Y VsN֞=3-&CևO+_^jaC \nzz_:8iY7͹BűFs%4x t\<Ɂ߳,$lg/XM;ތߤziܱQG~B- *s$񂵓Ç0IכxL akŴoH(%S6G0b0&#/5B7 5ob|%¬J=eXWnX!P S^99wP0jc]T딼 SHF;d04J"/YoVo~ u95#*.u@+;~(4frQ-jha>YSPnLuʒ4K\ /KP׬e4f`q/hS^ɲwhqM4ya3} ."hkۉȁ1<7C ək,Y: ,Jg),s=/Z[44=&gb4t>u4=.Q7oXiuk˞۟aO7d8~AkìR=;=@y1DD|hPzלz׽Xr5f(Xy?UrRqv1wtޞӰIFr}7dpNǦ~KH%| {0쀨n@ѩȦ es SB1t+BW$@JIܐs $ z T"dG#)1h~ )iBkY~K'Іc5)>T0{ή)Z@l=|<Vmc6dٱ9!8hV Ѱ`tjȻ%g,_ݱ']t`/3LB7 ҍ cwJN @_ ̖'vC`5hIˀ(S[Df7@VIbT뙖R.V 0î[@F-5dLj9٠Fm[r:q3Yv;)mux=~:"5b gW4&AB\tTM;c:Pǻ @]/^J98/,vVfubEiY{yW2\[Ʌ]A Zl3|lk4W|@t4gqѲ48>{Pd$N}!a$wtFmB;C)t sٶMoXa{. `ꨥa6[h&VmiP)IXgBQ 'P}'_:=ˆ+ЦI]sqL:6 8/B r.r ө-њSVk$'-Z+:Q,Uә41Z xp7wkV lfx=tZ #a}|.ˮ) CYT}FǪ16-oiʒc\<;1EM}?wc>u/()tli ᬶq 4mM!r{T$Q˙#;C9N4:ŇN#ym2L !&?6XҎlSBNUwږ a7GMe+4*r1;),^BĆs j mu؟V iƱЫkeKR4b Iw@`2RG|z< )f ֚oL)sumqYdF,7VV+&'OZ},'@)ʦ(U3З5V,&ءa[5tƲeJ+aBsw30(:H r(#\*չ4q0M4Y,[4C Zo7۝k"_ w/ =S\4n{k?J׹C!P=7In"1=Sfendstream endobj 1230 0 obj << /Filter /FlateDecode /Length 2145 >> stream xY]o6}ϯ0҇*E#@.fScYD%]RooEICN7M3gΜ4\ɟwydlsW_φ_n, pyBgyAYMf[|RNǧ!A5) VJ~} uJQëHkJKZoRgp|3z/27J/s#L٢֌m⤠.>>:WsWb>o);q=RB~S/$uZ<~˯JY77yͳ Щls@C:hNgۜauH^P.n)\4GM 'UE[l>}ø%v}]/0QgŖ]C2(U`{&@W? *?|₉ʣuyu/Ѹ=Z٪mQWA1]M,;J/O& jgaG_s8|<7[ؑ@9e"}Hv 5 wE) ,ex\cD^lmQm՗!]sdMv xtS7R1I SK7:l:rpוLg";Odg+C]C&o*\;^Q2v.}>@,Pym*}§}㲺D^QӉG=2,NoV7 XY>Dzhz`byz=҂`?M"sbJ% DGͷYº'UOÂr_bSRY5Cxt[NRy(1# REd=3_CI6)?`ܒ47ݵn n)<70err.?O0= q{X+꠨Ur0~7Y \m$Eq(d7S+?z(AF93{3 E$`M+u͐~UQU9H)tpvAyV?`[ xeͪ7* c$Sh> stream xWێ6}Wiԕ-6$>LK\$*^oؿP7ʻލb-93gΙ]qiwwn/+_V`M<]:^#7! ]Ο<  2g8k =sz]ݸuo=J$Zb7Zeĸ<Ȥ]h{wYOcŊmƱO9/av1_Bq=swnF'x8=w>&G\RTHϷ*ծ7k4=iѦ̼> stream xZݓ۶P$*뻻HP.vÉ$]oeUlU_;޼xÄ^w7FW- ^)Ww7~2[Ysʈ"έn7?dfaܹպ ɬ:kۦ}HL7 ht\XւVY߅agdLu>|R0Y63V9S9+8{JNNC>TC{uNyH~̮.RaU:?'K>$wkЏsEY/CV$]dҬ\4׸F0jl.6CSȋBd!,a Y}ZGe2XpQ̩9Ô.ϚSl}}7k 2{@RJ`U9 }gXfy˞֐4eІ= oU( 5w䜱s)x!P*U Nځ4hlOj \lvrٕXr%F$.1ꪁӇlWמ]PW8]%{:9lټP۾,$BŲ/'8MI?y'GN&ė&p pYP_.}H 2g8|0iX<,EcwU*V(An8Eu~Ju䒴FwݴAROӂ?1ٜl#-ئV~VF$2 v_pScpɯʐ?Σ/>>˳XtV8oz)2`Ly=ߨNɴSG (>0FwOIp?&2Q*[֚( bh(dE9Fˍ\dǒN)K|Hdk=?j2F,#BI-hRX*CvNI̓]Ka|>c1a,о:B4y@!y G2aYXUi8FJ)' C-Vks{1 ];CL ez2)]T9X |{u{MKP۠f@2`= lΜ.CgO-^oUeiV'C3f(MD(L} > N1\v6G=D쀳i&ի~F:qvbpj.1߰T'7#r>#O0z7_Ya2-l7GPn"DdBF|s 3rm Vʕ :~YŢb#(9Nc܅1V!"vWJ6LxP"|Jg4I6yZKo! `HIϧۀA>:PX&+ 6*pMX%r(s[ʜz_u `ei"\"mVRܰ l=ݲ1 ϼ>3YP O d8.izESy_' ePX@ _>q 5jyUݏبN*^ςs&]b#B{؜R/ 7OA8*x \yNʶF1$`.vD3E ;x=}8ۗ=:f.gE.morص ]LofO߃Avidc/L$*|@hH/RX1 ?hx 2xǗo*BZ!w52Lxl=xr)#` v(5Qe&%E{/g3RHPxGq袉@a#niJ}B6vdVné,WK"N̹ }2_Π戾4s ޺.5\$`% \qtڞi@Rw#@*|F*tŋum^qmŧdizP IQL1(~{?skendstream endobj 1233 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 253 >> stream xcd`ab`dd v 600qt~H3aӛUA,[nn˄~&(土[PZZZWZ&` ƞ1I?Peϝ>۷_> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK,," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?| Iq v?Ӓ/nG,EP0B>kW{B7~cmF7֚ׯp;pn5C`K1G^kz ^Ssp6*ͪw|9n=GUGh9V_z)]Ggv,rX}i+iST࢏>Rw ($'PgB۹ʎ7J|yw-͜oˎ-Ɂ`cmo>!l'ȪWsH$*0AXƅ8˝-Ku$+zEendstream endobj 1235 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Height 44 /SMask 1075 0 R /Subtype /Image /Width 44 /Length 1084 >> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK,," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?| Iq v?Ӓ/nG,EP0B>kW{B7~cmF7֚ׯp;pn5C`K1G^kz ^Ssp6*ͪw|9n=GUGh9V_z)]Ggv,rX}i+iST࢏>Rw ($'PgB۹ʎ7J|yw-͜oˎ-Ɂ`cmo>!l'ȪWsH$*0AXƅ8˝-Ku$+zEendstream endobj 1236 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 523 >> stream xcd`ab`dd vs000qt~H3an)SUA,Inn?& }SQN9?$H7?%(O)?'E$5/%5M9/!!l?; F!Ƣ33HfߓSCwС.31|› _.jႎ<م7y s}9K{~c5{&ǓW^l({';M@:U3%۵<5߻oN6R"Zw¸嘿o#[P8`g՗9 W;P-!gYvs=Wt/Oߥ.H"[ U 9I݉ Ծ?W߿lM=\;wy _S@47\"𭇿ug/XwyO7C=S>8-9(4i6s {0;_Ӿ,;f{r\y8cIendstream endobj 1237 0 obj << /Filter /FlateDecode /Length 2610 >> stream xYksܶ_~0U\<ܤH*ee'Sw:\.V˚Kd~|/+QrfyF& ܋s>MG'D϶99 OT OdS8K"O-K'qⱄI/b{ϡKс'@#,|["/ M?n\u|'^qǒƶBlE٦m^F&pUUky7C;pZQX_șY^^+p] ,:ù;t$ }Y>ť?8Hg~%cޤe' $ 1-R|9tYη[5+L@Cqs5{64ߍ6:Z<*P2&|.Bĵk6E)@mDf|2=XJK񧈒Dx-6ycv8YȺGjަ3,-W8a×\AbȪ^[keQ'oQWDm;oS\2(pJJBհn.Y/0P^@\v",/3Q6.U+ @9{x;|~|Z7Dxs:Wr|rv~ٰ>_n98FHwǖZթvאI-!-_YcoEV#cÂtF"3X[Mg\M%2#L OZ#ޤ]]K`m:G f2CӗMPVd@= )n 9LeΧwqww[ew^<-{T;u4ۃ;y;ÉKk90R DO*{VH:PpG0;/(x@oj{]+G| ~m',Rm^(hZ4 {\|ίZ5"]B6CM~a?jSN-_Tܥi7u)VJ( KRK#a%e _2 7=+EE7X#Z. ~` x$R!`)3/R[\8oghg6&_.u'k,8Wy˫obf B'¯\^BTA2Zbed@g Ou[]3`l1mgQq>h89HdEHK4ܝDi}a=6p-x="So}?F }>di:?y19[]=&:ݫ_p<@{)a \ s)^ ^#a ktj4oR ,G ^3cnu$W,Ibc bae&\$c5h}ic 0# Ca{|P3GDwvujrpX]I3㫤}JMb;y"oK GX5[nMV;ǓjG)4\+SiH몆㻹!)*87"Ib1mRϾsiStuVFW*K1PO U6uZ~B%1ͨv莥TJP b4ͤWcqEX=}abF˱'}"* OiP͑ԳA<㓱 f> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK,," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?| Iq v?Ӓ/nG,EP0B>kW{B7~cmF7֚ׯp;pn5C`K1G^kz ^Ssp6*ͪw|9n=GUGh9V_z)]Ggv,rX}i+iST࢏>Rw ($'PgB۹ʎ7J|yw-͜oˎ-Ɂ`cmo>!l'ȪWsH$*0AXƅ8˝-Ku$+zEendstream endobj 1239 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Height 44 /SMask 1075 0 R /Subtype /Image /Width 44 /Length 1084 >> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK,," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?| Iq v?Ӓ/nG,EP0B>kW{B7~cmF7֚ׯp;pn5C`K1G^kz ^Ssp6*ͪw|9n=GUGh9V_z)]Ggv,rX}i+iST࢏>Rw ($'PgB۹ʎ7J|yw-͜oˎ-Ɂ`cmo>!l'ȪWsH$*0AXƅ8˝-Ku$+zEendstream endobj 1240 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Height 44 /SMask 1075 0 R /Subtype /Image /Width 44 /Length 1084 >> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK,," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?| Iq v?Ӓ/nG,EP0B>kW{B7~cmF7֚ׯp;pn5C`K1G^kz ^Ssp6*ͪw|9n=GUGh9V_z)]Ggv,rX}i+iST࢏>Rw ($'PgB۹ʎ7J|yw-͜oˎ-Ɂ`cmo>!l'ȪWsH$*0AXƅ8˝-Ku$+zEendstream endobj 1241 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3784 >> stream xW pWnc= n $@Ȑp&W!I |`:Z,ɖ$d-NssD8$ 0 ̰R'٪֖\u{iDDZZZ7sr^zyܸ?/&{$[_$r89w M񦏄݀nz9ZtuB^.&Ϫ/_\KE~HK|㟧"W3gi0؛&a/4L 3P? B pZI_<׿^;ɹ/M7ݏ%D9Qb+#gU.Xa`&@%41^;aZ/i{i˜L'5e_'@GcCGZE U&oz#`˷JiA̷߈THh{Ќ+Ho"74;a&}M9"S_TH?;}Wgjb$ຄMu>uHĵ1J2H9FFmen+;ɐ'mu}å(U v1BD7hxu ^7T1~&p ͋ɒ),1UU;x@{$0llFsx$l>&ΙBxWd=QW(0qq_Ag'zF/Wz̆ 5uՇ5~ 1{$|-O vЇOH3U4Zv[ 8@wfmL)UQ֐ڣmVpppn\Dnz#|rżRG"*Peh<zڕgO6 |/f{3QJfvX)uR* X~ WP[[YZmgHR1)|$S"Y"7kdmwm,mxC8j#n^*/-p̡FХNY:OHD@#`8!rRf̖؁OE*Bl-@V=ê r`Jk ,t ,6cdi?OOɾ"9u X$R]`/;{zѻ|.ȥQ+(8Qwx D.eMX`j#x̽TyRg3b8[f af&vgmGqhsK_o1" iKVknvAFU٫d$ jϭHFHWN! L΍V{8/}LX@kb殜:{v8?\*\,o<"D^}'vѸ D(+ܤSWh[sA^7x9)D%9&l@)>GzL yqeB`6\K ~_$rKQ,HbU XXO$[5&uiӢZҺ̋xʔ5w{ ÷>>׵ޮ91wurrJ֮zҤ=RґrRcV55b`Ut*^Ǘ Fds+=;qPP7C+sNŸm~f]r;q8IŮsV Օ>le5讼JC5@UtGGQ y4q"/[42~VZ!aRc1o+.k/.ZL'mJ7S89,o.|ۊŠntYQwLCрu'9FcqiJ+A/u`]u\?Gbj+WmUӺj;p* E򕬹\YǴ- Ufo>|ۯ|["%z/ { `c- wTcL2{Y*oA]j^ERW{A ?!j8.Fvޡ!TZZO&64$J1_ B-\,sbZQʼnN8$%8R*>}=g1o T˹%I2d.PSwjT8샡$tJ%{ !r5<>,8R&K._Jv V9}}B?p8PXS#ac*)(s;U f Bס9^hrWO4dġ:9D2 L dR!(5s ~Ȳ_zHz/h;Bl=d5 (|LǸoɸ:SWˌF|R'la³f\Ik wW(X)f`=3Ӡf |1ӌD(pW|{ciL3n:;RxO]uΕ7N7~"D2J $bVw,6u18;RK(e  f+T%VZMV *i,1>(;` f7'g^8O"G^龩}2 ?`endstream endobj 1242 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Height 44 /SMask 1075 0 R /Subtype /Image /Width 44 /Length 1084 >> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK,," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?| Iq v?Ӓ/nG,EP0B>kW{B7~cmF7֚ׯp;pn5C`K1G^kz ^Ssp6*ͪw|9n=GUGh9V_z)]Ggv,rX}i+iST࢏>Rw ($'PgB۹ʎ7J|yw-͜oˎ-Ɂ`cmo>!l'ȪWsH$*0AXƅ8˝-Ku$+zEendstream endobj 1243 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Height 44 /SMask 1075 0 R /Subtype /Image /Width 44 /Length 1084 >> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK,," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?| Iq v?Ӓ/nG,EP0B>kW{B7~cmF7֚ׯp;pn5C`K1G^kz ^Ssp6*ͪw|9n=GUGh9V_z)]Ggv,rX}i+iST࢏>Rw ($'PgB۹ʎ7J|yw-͜oˎ-Ɂ`cmo>!l'ȪWsH$*0AXƅ8˝-Ku$+zEendstream endobj 1244 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Height 44 /SMask 1075 0 R /Subtype /Image /Width 44 /Length 1084 >> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK,," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?| Iq v?Ӓ/nG,EP0B>kW{B7~cmF7֚ׯp;pn5C`K1G^kz ^Ssp6*ͪw|9n=GUGh9V_z)]Ggv,rX}i+iST࢏>Rw ($'PgB۹ʎ7J|yw-͜oˎ-Ɂ`cmo>!l'ȪWsH$*0AXƅ8˝-Ku$+zEendstream endobj 1245 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Height 44 /SMask 1075 0 R /Subtype /Image /Width 44 /Length 1084 >> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK,," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?| Iq v?Ӓ/nG,EP0B>kW{B7~cmF7֚ׯp;pn5C`K1G^kz ^Ssp6*ͪw|9n=GUGh9V_z)]Ggv,rX}i+iST࢏>Rw ($'PgB۹ʎ7J|yw-͜oˎ-Ɂ`cmo>!l'ȪWsH$*0AXƅ8˝-Ku$+zEendstream endobj 1246 0 obj << /Filter /FlateDecode /Length 2671 >> stream xZo[¶Qk|f.b6=(QjKޑq3M'0`pH~3?,wsWp!Etow{AH^k:*/BXFDڋ,*u Jt~+VZ/")虢Q3Iջo.%l1 1J9J* }*+_#@۶24]{x;14|iY{8nw]5 0BIm޴^'_N,*-5)bE/)e=>OUdP: cE͕ k+1*\1ndӨ3J!!DFjt*(RO$PRIaD ˎsA̙j(J#O^eS'.~ +'VK[ES$KF'2QzQ# ,łyO2eO ˽Y1TO~yvzli>hVO]H}.:׼gQO~b hI>ߩUCm:m%)پ-QJH&A٫Avkz@Xܸ XӉDg\ =uL}A0 |ڜxy? @0@\vkpX]01?3Za&! fS~K|@ue[?ܵCҗf0?,C6\8I Gr,Cj1G6 k'`&7=ѓ=ӄ+*+`tiGP͟v+\*J݇CbV*ܐNTGɹQ+ñz߽}~$Nk.\>4z%)iǒS“yv9nc/ufN2YoHuI1_̞22̀A-*i$r66Ǽm6]L775,s!I;wJybN hH1iM$XĬN592q 5mWrՌt){g SDEX?WRYh|dRː@5;pyo-EyO¼  ɒF-wD)cR t"Ǵ əRyp =yIjdgXHU w 9R\Q( %炨oY%pȍtz |%|}v,r/4CoZLCVRj"5<)P,/ eX@*PG=OPܻC+ާ }tw%bbAKJ̃zDY*JX_0Yח-2vlm 9dbsUa A Us9E *)]7He(*%=}A#,mEQf hk <WzjT 9֐h2,CamT<8>,n?gܧ}5oCnj̧;ǩtL'(f@F YFllЕG8HcBM)SzO_3V[|&mV%m ȓa™75=SH__-@q|M6ut/vyja#zN6ح~*g@_bD1/m)endstream endobj 1247 0 obj << /Filter /FlateDecode /Length 4474 >> stream x[K6i}P2FK؃^Gx±1ѭ{,W2I~J6" L|ybx? e]xNEos\|!REv\AʅSMCXwr]9Iۻwp^Wc;. js}n[KK]KՈxvpָ~6hjŇ`]?OڜOo.};ϧzZ׍pqh t+U>H'ϗÖ]9[+!`@b~GeCa?>Ui.~j7s%9x8Hy Hbs{ҷPw2y8^N 4Y}aMeu` ljO-| D&sa#EYmvxRiLjH +,~o.@iYPmAѠgPSx/ΗR ^GCWL:qh&?c2/hru2]̔%d4.r{ߑJP{\^JE*A68lX'Gy< !3AҦo ;%ؚ;Ek1{O _RNdR%L%ɔCqY"t⇼]%}RZ@WK=3Zyz%*dL %6Yc9B -s{M<(uK) X?n۱`TZ Dcޣ-G`k}[ˡ*Џb8pU!t*8 z FK"ez8P?@0'{8qšx"?kEuJ7xu~c( 7C!qN\Pz Fysيowf׼nw& ꝁ-Mo76³Ht?7(2 ,9=O o 7M-Ήk C:xDEq׹*֓d/_TA5oϟ0{w^ ֳbO 4X@PY뜰l1~#0 Q4 8>67}}<~#u 8Bj3S %o)CY_Gʨk$gX70"_Xaf8*jR iUT DEKϗa^?"_L_鑗jGOÆy7&Ibٗx'cA =>" &HiPe3 4J;D~348z0C7 oe"j/il'LP~S1/9wb[B鮶X v`|6= |$ق!@K63W 5'`=@F_&T|lU&˨Q Y%1KT10PD Lba_!z,{W+ 5)}`?fw&|;Ym§ QIo},/\=td)cvL5t?3[zg RLNM`C9b 'rS ~4v$(/B;Mvù5S Q~(ƣ[L YH[0Ǯ3)qH8 %tEK7HRv5}tDa? sKcI"I8 AΛUiJ^Iv{EJ3FwJO`pLA* BCIK ~R &TqpJ214'dpPQ.L6OV %74}H_U➝x$;8O`x|x5$eç b*o"Y݌i'u2> rDwXhߝ#fx8f"0dD|*וi_k \\R]N)XXOPC8Nt@sH.q(a棦,K2j[5ut1NHv0t\vX%DQ,)tH*fpxvbzcO*4V H-0kit},­Բ^2-LBZL.l!ٕYV[)"H,8Gc~[Z+7纘#4\/509#Jbbi5Qn|vU]SR ̉ ZBd\?@ ?hRF4rؔcKvUV"lJMN|. )z;'{RC qb2roY~tRB$2}sȱwB "PIN4F Y" /q#шւ~F\w:b:b)#D (՘ǜ2 3, dVI WhwO&ǓU z]%c2l$ $W_H$un`OEcRT'QoE8u@) 6/ՏdढM~GX3>ǎ퐶P = j>IZX3z? J<20s8M/dz}~l&@z"vUewWfTiE PwK% 1GB`l-8b,C]zo;ٍy>EU"]"\d=>vmv+*MyodڢxRQw<\+)Mr#Ժ}#I('p}ICJ,1koN\!W,ag=~}FXGHUX#EAaam0rmtGRsFi˵^[*-6,kuLs3Ƣ5r%_Vcbr0̩f@YUY.J} tI!̕a9hn|\Va5UDlTY[1Ϛܒr6ulǔ=Batr,S@\ǩM~os36vÉ>,6ʡ,{cXQ|GE Z9KBE˭/TnkGn}F}a¬bl,*<+"N9kvn xKKqj#y( MYmTm\s~VLBv8l6d^h 2LVe N{l\ oCxMrcc_q*i4~Ma. xn'fSmwU"ԡ6"iRi(w?ݶ,WÏ~_'2hԴ 2OyxvqF-Gu̧*dX!#IO/C3[C\CMNcJǖu̢OW8$%fѐeѭY~mli9BÞzQkendstream endobj 1248 0 obj << /Filter /FlateDecode /Length 4638 >> stream x;ێ8 Y {u>u}أ K/g챟lQvPٯkB4yh` YAq<c +*ș 8AQϭb%KulFA  2,vplhn_g.`A퐯7ZjI48&xRYݿC )ٮ:UC} 8wIn`9^mNMw$}!^n#e[/!O2<.`#]ȫܴAvAA}kǧ('P ťj PJ)}3JEQ+@ZX;N] "Y8 IJC6ӣz;<( V|mq\LwjJ**AuW@%~=+!~a\U R%abV[;#5:UWDOAT;tq=WOK/gBAwexg؏53ш#FA K4=zBOhKJI TP!K5mc$L3$9%uk{6PdGxBp?m Q"{ oBR- +a@`үxa({=@e# /ƒm r~ 0K4%t֨C`6B;t TBNi!"w^KgTBjHKHCNSJi()EܶUBR$8%GiT?[3,B/  ;D'z<`,~v1WN_yx6}Aftר֖ڮy=b$8Bh BJ'ǐWCdםOqM ZuwizA_u uh7 ce_6\!RO WKEXcW'rXoukbWJj‚FxrU̡ߍ6ylr?NޱJMRcR Buy2YէP:hpPvFv=WL]GCm8X/A/??CynIUG[iRrJQ|L3Lq́w"f3*hTЉzx -fT)N6ݒk݌sU@NRC ⬩;9+?1kRRX^H.LBK]e^p};-y>օ/^xPMq3/o(=;2CR\v IQ [NO<³̽(<ݑړʊ I~nv\BFӔ`[!;qh9_1`<:DV"Hދ6/dC3–$Q=!Pu3þ]ߝwjB'E(2E)s4Cz:jٹ\j3y QŘ",]}䅈K^SEÁeɳvsƴHʕ RS~߼~__?|'eːV.d mv}NE.nct*!=_J$DlPA!M,\:'؏bO"%Coj` Y>~C-WvÍnJZȩNU!N˨Lܸ뉒~174Bئ]VO´ʺ|dX y?cWoStp8g@rd4#yIt+jȵً&fb`ƨ`Mָ4&xS9ewmۭc;:䜔 (< m# ,$oI LwC~MN9+48EI` ?BR2p䶿y?tmN >]lC1Ietu#Ǎ9Y$iE8rE|}R,4Q%G߄m5 $v  T~}u;>ӱ k#3ӜAI_tGUmu8.H0O4Mً[6\b80Fr[X-2pc:S:OBR3#fx[\"V u:P[*އ4^dtJX1йҖ^m>YB~E0/zW@& e˰Ql+8e@*PNH8۴1.A r=mz~'w1j i۰%_}x܈xYtg›QWe #<7hFkx+yۼ@oECskB_R-[nVFWqO`?&WfVNUu6_zT~ϚK^h 9цu5rȳ&GW~:%`fDjKD _ sn]q+Ξ5^}h"7>k򥫢ox&ZDS](FVic(\Vc=K WG6NQ?NjB⁆x-.ztM2C0Ԋyi %0=RƼ])籃O_m1\!<0Y*^Iۑ?w14n%KDgusHX5ɠ&6ks$JLz|h$ņ?wIQvrg!/uNtԲ#qiːbDKB4_O0A$DnL>@K4D,TS}m.*ǛSj;D}}g<| .1FB;4@BGfګ7O]+&6!/`Ǜr|g?N~of䢳BT|nt7m:(. >Ј"壿"4Z\G r"ͻ~9OAc&Ԡ3=Qu_j endstream endobj 1249 0 obj << /Filter /FlateDecode /Length 2394 >> stream xXQ۸~oȃ{ !֊HJA@nI.PdzueG8XRdw9p$go8 8zGx9z7jtFKdz<|'Hqg˫tMf?MjID`l1bM~,saJl2R!9|=쯷 9wG9ߦa*iw 0H^Xf-_ټuOY L]{d$V鵋z-bݑHvV~fWa(sʄ } |)>o(* mpHWA&L(;>G`Jܕ}T*km;]m̢~ bľT*/ߑD a8(e5iM!\ڼzMkެCj2K? 'r^F('EAU]SH~,q`-Ib ooMb筫^};΢s R+j֞H>?{_rU&PߤХ&/ U֨q ,i-mt&y1Cs Dp$Բ/0$0=C׉K ^&{49dDx{NS #=ؚQkk!Ͳ VFn{XLp QpRkSt42W C N:lj& QM `?M~Alƫ|wo9eVR r!EX 96AbC7d*K# ~E{E;iOd@iy<ĮM[7UIa Vuo2gu7,h ɢGc s2䷓"R7,&jcȉ' *;l JeXv w)rOVD=yEO¶Ҭh&qQl͜kw mN&Es/>IMC]>tbWbE$km4k>#:;C\wLLXy90`5ȧ7'DQqBB5qJwMl6;..޷eV<W]gsO;d}y6UnW٢[hϡhl͖ZJWF՞l]54nлlŮ!J}z ZiMd77۫`^[uP\` *{ק].=ߙ=v>b0,xыyZdMsSR _Λc՗ULJfoR Ոd2- n6{^/·m5B.rc0Z.&m#No}P>tKڞ.endstream endobj 1250 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 6713 >> stream xuXXT׺=#pα&2)&3^[Qc,1Q# E"H/a:U0,(*Mbh_^?d{=h}AZZC98Ѝ˷Ι7olct@XǯRז/{kr(4plxO9Ch~ N p3=bSą%Ǝ[:K?(jG<=V$wI~6|]"7e9sߝ M&ERuDj=5@M6RoSjFmR)?ʃISTECySj%5ZEKQQk(j E).ţP.+FSCaT >PN!o;E_9я@&5 <0aHfd"G]|5GWùy[=7yyc1ƜpIrU6ɭ=m[cc}S''Dau鲭 Ն:Epx Ai{A;OiVoAm6qs_c @^RY0N؁&n?\VgC$ <Ӯ'ㅶO f>xi kv¶歵h ΃~aQ6>K^G-}Ve۟RHm Nؙ K0;Jf4s,@C`~_yeUdpAGէvֶpqia:$+7Ą%ńg0ZlIhE{Q9ì0ƀ#y„% }.39M~ t$UK+U)#͎I'h>ݼʾ%`Tmw EϪTa2&T/1),q|V?/7Ya6͹+?R&sC}谬ODHv9&LN@zEt!WevNvM9վ\- fݛ8p$<&w40󳳥(^h544bٲam_C1%u}6`~׿ e.@deZ1")$LetCٽ2B {]"Gs ޓV^KA~ ڿ*(Nҫ:;IKLA~6J-k5t.[I0BE`tZ~H(-{E!6[&Q RdHiJJK FAo vord 64z`J쏪@Qm0 [3ecwn#DsN ڏ>^i:} 6+Tf>[{=%S}?Dx;L3􏥧:9-mv5aTߞu.kxuއBLe7]/) SX\;iy/:ΚNs= t"1NF+ L,Glh^ލJpCb>ߞ$U],`'xˊbe^P~6ʩ f}KO7g10͌v~{7r-noT[k rԨIX J4=?C\sY%tJ{YVN}?fjsֺZvNNghP*0w:Z}꨾P-gմ6Ӑ2{7x6gjjo0.jok@-*m)ȶD[]Łāy)d@)+5`́:S]ND DGD kak2MK/dp!18)j>[!P[ 'R |ey]|cN{;ͩMږrq|'o|/!MGACSe!Ftj*B]> \2| ;1ĊJG$z mvSҭW%Hn(0qJoThjx产PjTkPL@&yw0`^oE*#0bcDEjbkeтtq8 rk rpS6;8yȤ ]2"`lb! Jj @oO2Q/D3(gb̻>,qϔ!m> `Fg!kd$H3Rb֭$\&df-),J`7e  nalٵQ]b;U迩'Z]]%ɒ6Apϋ6#".*+wp^em `1lx Ơ/BF$-bBIpryŚ69'Ir.Zݢ2@lc;|Gx 8_^j;@'W\,ȼH}vޗ'=A:px/ !\.4bl8Z1{>GQ2s2Cv'[Z7g'-KP"!'ovNV H7}:F_ pA`D612{z"vL?RX_v ipH0_hΜ r `1vɏ\M+Cخ6PyZ'{ !˺6 ;0[]q/E'$D4G#iЀ֐ :0s\܏m~LxW@킘H]qM &{;T s"':Ƽu(b>ѿx+b'!E W+䏓]/dWya6W:d: ?QJdƲfknﳣRXl2/O!xж؊!yC&0d8`{aƧt-/unHzFӅeGJrLnMBKhP#9Ke׈!$Xu.ρF?8Y)1+* %vB|dnX2AG&q/Vb/K_w PO!8єt;`g}6*–+OjTT& OQf~A"OvĤI \ 2d$`a/[}+>#ދNۖtBƚ(XqSUw6b,ZlO,T0܅{&I"KX{HA ?];c DY1,4 vaZ}" F" CRTJxK&u;bLY] q_0t\fl+d=b"V  JHȉ@P@s!U99y ,oyJtW1=-E-5Ո(>Ilt}u…;WmN]D Ltmޣ |G$^sjN'3+r?%lLZVylV`x:p$y`/EǻQVz p300FT%6m73Fr WWcQGϧנ54]6IY e_sށpS+)6'XM ~cKIts{m?G׷isZ{tˑWO?oSNd?"Z mCןe5<JuG;zh Z" GNqy;%; RVxz4ٜy*~4(wq|R+4IeIIe1򶗇 3CA5IGpۜ O`!n%*KjP;5""E QnE_zd//vGX+F>=d<4{d2 xQ,)IKmPZT5ZT˖04aȽ"> stream xyPW_3ݍLM9Ps5$n (Ѭ A"(\*Qp\okAQ<ɪY <ТzIe?^}}_ lEQA;6_~}_Ice&WeۼVy=߲/bQJ6.ˀ{P3$ť8'ƥu >r(VBv[nKN,-/W#FkQzA(mChzCN>BD`E,!3Ll9Iӡ0=-͈/֊wf?s7 -ͦe@T7CAu%VM7B*u1X%le$hely3jNWuF$ XVyLQ LNSGugaԞ77vDɀ!b@xy萷WH+t253s1;|/'ef(dq7qYH.y#2Q/nc`6\{a@8+nj79^TZ?\8ɵ&8v+'kfp X_3n~~A9q8sKO7 T]YDc'*&`uT/utiH\w0=JO L,~ˈ8,W ln>rcg{o!tcrA*Gݱ+iZnZNJA|v6F\ Fv97庣QmTWj %+E  gz*JJp=nU[T{`:;~EQ*ɯjt &]-`ӷ﯁.ZwB˟ϝ( kW/=(Q/¾\~ET`dә ]fAH/'ᦔ${Pt!| N k5;dTWUjK۫Ov8GB[d06=$+L~ ,09s55=DR"q 'ZN|+9HQc{jdTxfz+Cp^I+M./b^%wk_vLΰx, \# ӊ\Tdԇ ܝ[y5sCWyg9٬"+Yg~]+.I-ޢ@imBsBKΗ]ԤJԥjӱXS봅)cp2N6~UUrPԢnֵh8> t";?5~vd4qL&UNt?&KոFW L/U2u`>w> j׍Sf`U#¬ȭ-1w gE#V4#2#lVgY7Ս}`si`TΟ-}nY3|U¥C'jtb[}ςB !y{mP=a!P^,%cAT5b%`"$bɋ}j2%+}` q JsLț?hQP?C&Hgc_Gv6gQzro;I[ɕtcx]ľ-DUpkɀL냲2<*:83^c;cNઅں]*ھ9QFy΅,<=O>`A p|$Vk K3FH,1UN-|]e-B_endstream endobj 1252 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 785 >> stream x][LQϖvwU,"ۈNQ& %&J " *QrE `+XBj(_MPQbA}!0j2K.>43dAJbfN!#9aCBZVH1aFjޣEII?Zpet40?H0+N*-ﵙs Ul+4AMr D(.* sQTXf zBe M!m'l^k {:tNwpZE=;Y\_WT0_ǜ*|#Dq_ݰPmq {u>KCJV=PF5!IvÂx jH< [:o%g!S,(G T͡'xD<(%o`8j`ҟHTWw x{V5\1c's-c/Ŗk /b< M}0"Н_S/}wYھ._Z;4-/'zn!#Ï:k=,:uyV4)bTlMMCb@Z[ARNMY$u>y|CQ'o'ni׹R.)31_/ U>$>67~Ǭ2?ӻ˵A0Ujā,y/om""{ཌ]2t)W |"c0_h`|}$r#7uC ܡyܰ-s USendstream endobj 1253 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 6427 >> stream xYwt_!kv>0l֬v\@ Ŧ0 K HB]:[f{mhEQ0E`C<{$3̀ipIyyOY$дR8gR"}VXQ_b^Zָy*A˛BZB{l⪷ּns}Cټ?% ?b=*f=zUz& ͬ-X[YYX+XXY+YXYYo^baeZz3F"T4RV>Vk6Iɚ̚'h?XlV_^u?&U _GbWGS&~tѣ 柺rO[2M|aĹWH4`&[;T8:k,ˬ?):7{LzsOoFOIfݏgrw\~1 %F$ tğNbRqr§)'|ʶ}#P !j- ^J'af235 bLnQ+PAu؊ K|IOF—ky'S! OW]yWahk i)|ЄVawGN{{[=MS -nogA&|.ix2wGٟߠn6ؑ=e]YЌI:!Pp=m;=3[C8~6|bQ\ +΄3qs-0qr4Q[Nj٦V/rOÝB:hykۺ4-NA ]e /2f2 w vݧ[bs_jYV-I/"l/`0Hwcnjrgy572rw`b\.h$|˄:$&`'aYߣp֯ox|_K}5]-ƝxIO<얫@uuW?Lr,៳+70kB]T9ˣpGI|x[5B@N+D0('Ԃ j$p!paK_FLar7* U]rWQqL%3x (,̓q8DR'Ix= jLIS"]c=L; `1f Q HED:|:ؖƯ̧H$KT p.py,/OW@}1DT@ P}kD#EJCѓQH7I!SDگ][\ipDgV6Ъh 9)iXޗxqƲ Ie%1Zx 1i |WmF^ۼWNt!'q?[ iyέ?ng{/7Ft5ޒTX7tO-Ea5Z T.[=g+|zҲFG|߃iFˣoR#uQaS$@l?R"$^^gzgTIC ن k~ԟރ  ']eurI! S]>8gs\;ٖҧb@#r [jy̺Zcp> |"*9I*$oQYe-‡Wog9 4)5z5|ґ+~o;Hweb79yF-N!ͳy^4&)k-BSyePOqB3 ݒe`ع*# }7EuMTOʶJ6Mv<$nq N*7_)|ʘ岺ptPD,% D(0J%t+=2unH*#3nb;ec 5ǐ4*x˥`;a`Ϳ> ,zE40P2 ae. ZmNp-mֳt hE[tx>.w|Sz~&+x 7]/9`K7Ccn:R3afڥu VSoI}}dvx:xv#W2d2#٣X|K-/xUs FDfJA*mejz1]l:T|gp 5 (_Q1ঙ)7R-Ol.1UP6HiH۞$]aXs>O(cRR04tf3kz_bG6 d" ^})ވP6 7FAoƄC]& v܆9W2] >s OXin`+[sJP-.$5 |G@[#i\ap!J D{{ZQRKH+uuf`ŀ"Zؠ83| 8p5.jkVQF$'mr۠k> 1c3""q-j3mV3Zv|H cǕ2wt"P˴8fURiX"a9-xt\) 3 [*`?#$9M0kQ% bm:\&e^ H6#vPzd9+bsX+Di'”!g6.13V0 1z" iFU)58_^ nƒ N);n@uo^\} H^Sk,4m"6h5Mx/Lɢ1"TO(2JFK-DKWu ͥp.3َV~A'@-W]fOԛbz|NASܾ`h\!61SFb&}Ϭ1.3D|t6+,{QQ6Th8đ AHD]kr3%p[PYp ][{BXC8b3 <!T{~8A~S{ ֍΀w7K`L4^Ҥ{y6ބ* !;戻p~Ԏbx[ExVӕ gjΝ>0vAɜTYf:AXrla<]nq :pY7wO0/bZA&.A0ܳ0vpDvM+UJP=ܲ)IQ$[JqcuJH_C-%kD|7[^ŖD/NkvIuJf becӾ*dJo,Ctҡ={wo#+BLjNBӭm'%D,f{*4nඊsYra/׆] bg#i$֬cO'*+&P|6i7\9:ҫ"P%g KQJs,#Wܰ}$&vk-MQL-&`,Ddm1Ä%ዹ0m,_ap)$qB`.y2)OHw{YZĸ9,5錡^ޢsk{p%L"hڃv$˰>(Smoj h,mu& ɳ9e}5Ra,9]ypbOr=Qd 1:  U4mNb% \ܳ-tg7\ 40 qj#C!j%ԭDZ;۹\uHؖGq& _ΉV͙1HmRuLVW!-=LCt\]]X"mEB0l"EIΘ8K" 46% ţQQxreyj o#3l.NC ?MViT?;;ww|/ÿ8x|:'b`jZ^sRMjiEm>Ԋ\ u0/s!=)eF̍T@xm78|w: +/pM]P<׺Sgh:&wNVó:Kú8;Sc}6a]=,^C//q5u Trr ("f܉E@,r_;w|ݸݜ%?.8F³\;7֛I];rmѰ7q<{t4`ӂW i>wo`K@#DPQd!Urzޫu=@Yw%¥jZtDzwע#8QrθrcƎ~x~^؛Io8\z^PE(`FѢgNi* <sZl*\EkI/0cL99D%ǂHj{G*+~  xlV3gki 䩚[c+Y6)cJK h, 5` +ƯrǦ> stream x]kTa"8Dx̖Jxsk2r X337^ ' A`м y0)NtVmո>ao H$qVŮ\x3[|*@Nj,Z4lK=Bp`CKLP H$S])&M_5=6[ EF͝7E/E3$F(Ɍ„1SiL83OpI HWK LMUv2!21Y-ޗbҥꔹk+`%Oy.܀8Kt7O}4SiUqk=]hZutAjJ;w8x\;L7G~l;a>I~ptcrh }NzQ%@[Y@9;oqeU:8=[t@8~QSNqXoOX2ި'-sM@.~/TtjӖqC>(f"fAš"K!Tve%gF |FhkK4y{͹uw]H[(( SUeS$Y/lAmߛ.XPAdwo~MrTŮSj MX'#(+s}{f7߯~pu?\q6[9k'}( / 펌5InOÑ£YO8C[1v{ ?ġh6%͔Zl;Nqn!{/`5Tq\'=6X-h-(4ΦTf}{Rq{Va^>rog)~` T6yG gdkuT5?rӟH<>֐u\PAjkp3xA/&6"F layai9$,oטlf Hxhb$ {m&bg] T U;N՜c݌43U-? 9>@/7J _׺>m7>h*Gr9T`W+2NUϻ|g@@p"~a8ܩnUIMF8s+/a=H&248aWmK6Rr>#:q1KVٲV8YYmv [szIq/ψN%iMmtC3P_:3TUUJ?F{E#Gx|PeL߀91.8J:P?s5Y:-z o.iRqa;v؜v' *Qaꉼ|M9+uIܮoJ n6}:&vz[._Va.7SJ_;NQM0%kbO>[!c=HEƖyԂ( Gkrx#'D]ոg1ntB:ݛ!|>CqJPB\YLHHK>7d4v5@vϋRbU8烤7$endstream endobj 1255 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 765 >> stream x]]HSa߳{^fF##2QDeT*C\n5#fZWq\ t˥favEMYEBA{u@P>|&gJ}S%z) 9g߆}l$)N -Rr5YL* :]MqVWSvPL1%M5ap @A)&_*RU}DRMݙsk>-[O*!]#Pޫ"c3K_C+H~t,༦M]Xc߿{l%{TQT~"v1qc FA\fyan1-wF1Fa.;[8 cUkCDKAPmyniNd{*X7w >h 4x)Tm+,?ȧG3nVyl1>5F= PJMf܀*z C̰hz띂SaҦeߪ._w9| .1j@nS^R ߆B8Ive'%FNendstream endobj 1256 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 990 >> stream x]mL[ue{WWUؽũ3e>uc`P^ ;Ŗ- 2A`0dĹDCn5Qq2>\v!x_$'O~yBTioe^bTRՔ-PxRĿP5 ||2 vEBl8<T7 &C>8PZO)*ӧJϜ'߲ E!I)#ڎv^ Q?ujU%~TA ]7̐2q8Z=Q7񼮥VvwxD].3VA\M.0Ŀ b6Scty="8[Vben3usdථ-"ay\O٢-g"!y>OR펎r\+˾|yHcSCgǴQ1Ƃ /_ś_AGg^F>D2w/8lTmMm4qT1/ʌe@@’S@J>/¼[[KZR,ÜMvbbwcdZy$}NHw+m_1_~%?w!EyS5F# }7 KH&uPvAnUCCC)%kYrD;k{}K!inVwVuV =-6hSLGŀSB ̓5H-A85Z؎?8}pd_qkEbʼnm.(,4N].q]\qOigD_MgWiX>Na0rXa7ߵP{>1eBD 6Ҋv]ga1!"Y-/igU:wXSEŔK]p\u X f VnO݊пVendstream endobj 1257 0 obj << /Filter /FlateDecode /Length 161 >> stream x]O10 N.ZUm?eB:g_/Wv #z|QD`ѱP5ige⤃M'STSvjK745$ڪZk;Al=0yƮnpJQ%FT*c}|)X!T*endstream endobj 1258 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3237 >> stream xVkTWDE*EKy(Q5;W >QB@qP;Qn:D'ii;;k>콿oߡ)aMӖ!iYi)I晳dGKIdrid$kx5vգ)M/q]|k@vNanfzF,/Bߟeɠ -+;GΏT%ϳIRRE\ \> )0%<5"mMTzFfLj,Osz[BQT$EMiR*/jKQrʟ VRLJIQAT05 B0ʋ "Qʆ⩱@l)OM&R)%RV*eAͧz]B7E#ɲd{,>h !_(/a n㬹\ %g>|xp8u}#F=⽕jUU 6rX)Ӓv-}F[1{e71`R#*>(t[[T!*z*˷ojGdjÚ/W%s:|!vШI颀<p Vtp !lU,^4qxt̥ ZwK ,!A ^n MG b#Cҧ lեmy ~u b9fkMjUdx/47 "C"YtaՁe9NɹzӜwZ[&V pkCL >8aQҵwc(Z"<3#"{,Q0vW9- $g` A[Ft{zX+Twϒ}QQYN~!8J^œ`YiR|L^%CXb+wWpG&}S'|mCçD>5]ErCՙN=/gwn. .+s6٬K:r/!X@[r3?Ys.VTr){?&齪>E\nT?PbTΰ+ziVwOpLx*`@i:ֻxMaqP>U[Ȗm?N3}}c__b9BFgn8^?a; ۃycs'"mY;ۛ?kjF|4ZNګI I tFX~2cNRL cy~o:i+7>d4T*I <0}SZER'=h#ކ?+0cɌɢ&c# t4ҤcBfu}~cSufOt ,Ë"8UO0A !(>]lv {Eܳ %CZGZʫpHhQvJI%~PPkL =Rݰ2i(dnڲ 5^G9<OUfa,`ı||Vy 50ƌ0 ZaOHIvĖxg8:>&Vִr9,O]>%pM坭9̗W/nA0#˅| t̯X5;[OxiMq9f=Wyjrʼnh 7t%-Zx)llZ{ 9 L6U0bC/CElM'1HA&'SzQB/yxW"2]YN@)Y[;q5O/, 9љ !-źs-4Vxqxk+Qo,w)U kf\[ \Is߫=}7|n۽ i! |<{15<&/b+ V*N#wWu- j[ZV1o)S2CKzTӅPZ2qq 9 _"U>L|-^^w+pr a>rFdptPgLfl&<[lV>EO+[{I cX L~Q??k=mÉ0z~;S>3v(tLi͞_9q q|Wfy[n &nOh"wAtv*L8\iH@ nZZ!1 aLi)s|Y^69L wK* Aޟ]rOY]$)߂3|'ŧlV%R7I_{ Udm7BX~EʴՁ=Eغ⪨{Yn |frٺ4~yk)_)9b2>³H<߹5KP BR)3xσS.^0հdT?NK0=$[~@j_Dm0^O ˃g> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK,," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?| Iq v?Ӓ/nG,EP0B>kW{B7~cmF7֚ׯp;pn5C`K1G^kz ^Ssp6*ͪw|9n=GUGh9V_z)]Ggv,rX}i+iST࢏>Rw ($'PgB۹ʎ7J|yw-͜oˎ-Ɂ`cmo>!l'ȪWsH$*0AXƅ8˝-Ku$+zEendstream endobj 1260 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Height 44 /SMask 1075 0 R /Subtype /Image /Width 44 /Length 1084 >> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK,," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?| Iq v?Ӓ/nG,EP0B>kW{B7~cmF7֚ׯp;pn5C`K1G^kz ^Ssp6*ͪw|9n=GUGh9V_z)]Ggv,rX}i+iST࢏>Rw ($'PgB۹ʎ7J|yw-͜oˎ-Ɂ`cmo>!l'ȪWsH$*0AXƅ8˝-Ku$+zEendstream endobj 1261 0 obj << /Filter /FlateDecode /Length 2340 >> stream xYKo#70pr:vt#6lVaD$|*+|=)&  {WԯgF_efH8ʱ i`Vsͬ*ub=FHnt3Fq.֫3kH+#Q)K+=2jWr)cgR@ZTȥڕ\qיT2,Κ[^D[!֣a,H͂^)=FKÒ{Se' 7a?FD U/lCf5Ѥ=*"Z)KfQ0&G|JHࢃb,<;hBe^_bU wz{j:G}O  -diP1#11 Ɩmc.P w:8yҬdlΕ8~5ԋEHנ.sW6ժn I.YU-ޥmPǙ-nAcB?er@>J{wQͪ{D9%fZS655+eb=_S~w>:^mdR%ɱ+z)jՓ.zI`|#FZa4;,R̎@3U#]y{x%S:Tt̢0E:-53;M6w(^ZY -2 nZD(#ߟhC\60 1%J1f M'3z"7Ó 'L+aV^LK6t'MŠmʸ@L][e{Cb%v׉A½f QP Xu^1dSDH`/?#o Fa<>\oQkW1\kGquaĚW a{ı9̇4H4.Ml>/왢|p6QP)&QQ -(XB}[ޡ0s=Bv0"*9Ç7ܨ>)$}pF_y)TL6.>Uf7vT48`/a>BnrAݠV_s>Gˡ~H qIgJ -W j [Q{(z ;LaorSӛ^_-t8(qt9%}$69`_Jt/&I] .ʡ;_Csse94e8T5~P2LXb~`Un1Ch$y끥A᝱5H . m)}XoAr`ÅP)2eŠς ;% *x,pufrXBgڸrS2 \Y> 3> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK,," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?| Iq v?Ӓ/nG,EP0B>kW{B7~cmF7֚ׯp;pn5C`K1G^kz ^Ssp6*ͪw|9n=GUGh9V_z)]Ggv,rX}i+iST࢏>Rw ($'PgB۹ʎ7J|yw-͜oˎ-Ɂ`cmo>!l'ȪWsH$*0AXƅ8˝-Ku$+zEendstream endobj 1263 0 obj << /Type /XRef /Length 672 /Filter /FlateDecode /DecodeParms << /Columns 5 /Predictor 12 >> /W [ 1 3 1 ] /Info 3 0 R /Root 2 0 R /Size 1264 /ID [<73388c7f417411657b1f7acfc6224ed4><183a7f319ab9779537c357088ef22113>] >> stream xKhQ$L2ybEBq Wn| (]e#Tp&i EE]).D*`bQFQ'8I(tq8?BM2 lH(8mGq3F# s&sᜳ yM# Ma8lsƎsᜳ !sN \'sNW88G99K# 看=pN'Y8O]ƙI)0J?87=r]Iv%4LME4b+.] ~Ol5Fpz}d{ϙBu\?w6nc6ߜ2jnS'$Z {29a`԰?¹l+G`Oj㞣mx5'57%T=&oJ=C+r:ؿHF 0̀cՓ}M)ͭh~Z_uBsQ;Ժy nGi볔ߏNoTqnQ\Y5v;8kz5Lڼ_3OSv] V1rJELDOvwJnfz>vWIb>_ endstream endobj startxref 531035 %%EOF irace/inst/exdata/0000755000176200001440000000000013640446260013565 5ustar liggesusersirace/inst/exdata/sann.rda0000644000176200001440000005325413640446260015225 0ustar liggesusers}X=RQDH_@B/DҤ ,(]QQ vDJQDQ ]y߯,$'ɝ9do{C!!M%pТܴAĦ#(ޔԴxj*4-O!,:BYɔJ"&H$Sb2OZgseLnKw,*4%)1}QiؤDl@fp8_?W hj C"Џf B1z&xCU! bd %kPA2-ǬaSYz/?X NOXROjZ3[dHEi ^QӘ,-IGp#B#bKCcEdf Ŝ)jZ {'6]TjJltl".\2,qa.s)@mX D$QmpM<9I,>oZ vU 61JN 1.5F&74OܖhDRbTltZ O6G>~P uJf ^E Rh mz p(mzꪯ[ޥV9y~_=0*> Iz/wQAOᤓ+AOʢ;e{:&?v}2ov8^##щw6!zBJ =l&cۊBS黷'q:AM^*m*cAϳ ׬'iݰ2/^0^!{nHpo~) z&*i0&GSlN=P zNF뿌EVgnMВKu&УuG\Ex=m"emNXz٘Z[zNT* zUd|uqz9ۯ:ѱdix޼!Y 1z ꥒuS"ln]=1ZYtKEe$%Pȉiz3RԋQf)zщ*rh+4\))C(6%l"a 5l,wc" \mBi.6nXJ$MO8 [=A_Ec.ݪQew.} By'/th nMppg9hKud/ղ F#c#TK\Ce'Ҧ16I *9%BNKL`=g4h ~㓢c)X2a5"],EDK%SBM/"f R,UlY%QI)᱑DLi1zShe$XEd* mľb"iRi{1ƭd$WP$%<-ڍNǔB-(oTb8.=))x T@h|9ҖO~lb4~ BOD]'S#b"1Ԥ(72,Y1}tLR|$n5Z3Fr@>  <c>t?@DR"Q҃2("H'FFIVӅ'%FdʰgL<~mR2) q2moJDL >rD|l8eu1$]#]sIYq)p|8sʹ0r0 [wd@+[mHqܘ;dޖ0Lq pͶXj@?nĿ3A铛%N?=KJPi~Ό<@[=X|Zd,#,܃ ֚T⑀#)ɔH`L,QDfzvO|_I gmS(1܏C* %B9|0>) (rn"H νwl{#Jؽ.Yl,G"y+L.[˄m,{nL;vQ^ΨgO?9ckWO?LqPS': Ou-x04V^|z{#90b&x{t)AP!_q9H9i  |wf{r?ٻ4KyPvpV :֜zF4jo9~}ΤCT1ql@#Ah_jp.e hhfh~843n9/'NBVY@>pG+eA׽[a.ϠKI o%ܹQTviKO~SQXQ(>}j䞛]] *O}~%xnepdAs֖?[@N0H߆)F,dxp1K8ks((ܪ ]n0g#tm🽿I(s͒AWxĵ.Qރ;TCsKI9?sl%"N*M~ĸyOaVs (-PtkP4ؗ ]QN$jgkoOvtb4S+ƶGz}6n(3?,Pb`Z8vRܪ|eH\eJua'A2<,T?/ Hyv%md/p眳V>֗x?(=q4PmӮf8zh" ?Syꬂ?BG]!Jm$p.wD`k.梃 Z/KS3[ Ҋ2Yo[eLG[:x,(BڞMtb'\-SJ\ jyJy([%w'6(u4zDQ<=Fwð3mPHP2੻L\a=W TO+҂{e!PPQ rHl0W]ttP\S v8X?cOTyxuo~n8un0߱J8ٗ4t֫ -P(܌}#g _/Y J>- \uSz ܳl܂ׯL:ӧq3vsqPZiyv@hæMp ,*(vxM3 ů4 qq j$i~e/^2w!h(Yx7P&tdETPTf 4=8x.E}PbDkk {ϡ]@nO|>:[sT7zK蘒kg?_v*W=ؠ6zH8ap+5V *BeV݄3=V U:#A}7 nWt|^R6;5KFgz xP6 vnV2ovtUp TN<8=Ri=(QT Oyz؂볞@ǃ9$ !yKx*.//uPBrnAJ9+r&51΂]*QZ,be܍-@AF}e LC=S, :\ 4,8\{Lٿm<>PLOʝ|:S J $B ;WAI %OgV2>Q/ }C 2  W. wjG| q~b O-w>:}˭| %g~Qj&"~ ]PrmN=7 vZSpp](u[Fʹ^/ _j\93 GYje^?-`A%Tɞv_44L 5$WC j9S~8~W>pTݠoP[dx٧΀ule|o|*J$@kGDAgdkwV%J[Vai/@qӠP7{^gph '9k_Y:p{W(${K)O*rR;BOV&*(cD+x7#Q7h_4ls8^Z_;Ur\+8*V(tVQ4)?Vꋲ?jnl#2}G;} x\i=uSG`?=xsI˥ƕWKc-եSf~\?w>P;L}.K =dIUPpT.-4z VT?"KzU*DCqc<( {ֺx{xgy Jsv }Eq:7vZlt*˟|068)T=XA#opa (|!bx:zu=x,ezpʏy*#x O WrУu Q ܚ\x`i{z%h5m2^ZJ??n-ǟS)i+;Ig޿owZ92ت7ʹ;HtPCwt#ɾtv_/j@K㭯\S9 T6*'r=b+GLc)G/4աO}o@Ͼkm»!1Fpuڸ4]g,Qz8GTX 1}8ة:,˺ܞ6uLe hR [ ww> jF-\*6_ǫitdB/nL].(~/>(P{)l6  jG[M nM: ?|qabD?PH]p0(1bwD Zƣ3r&X9`pfD2нk@W(7` XirUx%pqg;9\m:9ױהOV7: 朼: ɥ[|sAơGudIln1Om7~Yc4ǁS;f_ 4Zmr| 5{ }5F:8wpiP@%ӾJ4d<|jD)=0tޜ0P"Nѿ oyUSG$>Zu2}6(iipnEԔOSiU{aoP]V!4 tE1O*v{?BT? T?Ĺ#*s(s'& ڝ%KY*&>ͩ9UM GۅTQTOI,8'+|~!pQ6'wY 9kHk,w(jyo,Ai~n 7YT IIJYۧyiL@>\]32\mT ,H/;/d]4- g)s_RH|{ qKV>8h+^~o}>[ DyG;/Lz,x>FºbkΜ/] %[g/ yTjxm({jpĦ} Bb_P?Mp;湗x[0ǿ.&ܲlvg h?nVX%j OhzvׄTktd?)9/oQ]km w.:k 1-W,L9Yr0(@%5$.[b|A[jshs ϗى3Uӗ,j/lr .n~JT){&&3ΔyDNYح#pI\w_~pYWw|9QTܝͼrۻL^S'Pj͉~ e7/ի NmM6ט3y5SSiI2vM'+A3M~́5BWp)NYPk3cLpcrpJnF=c>T.tץgCo\63羔FuG%7q$οӜ8H\5M\2WKFUrW@׍b7 `޸mĵ4X[<8r4*(VϕUoEz,;mZacP 8fG'JC}Gx7[+4xnz38[[!yB*kONpuGWzsvP&dJr\F.7D_Y=t=J.^:r3z?TPb|s(:E;V~A>uڃ]Y2"UA٠fZ"#{qIMXҊO`Osub4;} ws%mZP 8vdɭ3q5FӠШ8jԅe=Wksٟof{@=ss z  h!YxO#66ǣ]DRHkq u綂Od?;65zSc˺N:VvKz5ʹ8gͦ^FHfG@)ʇD[BM JPd#0or%M^  3Aⶤ\उs`z{@w?8-(!5M/.7˩ŖFAMGׂvcԼá<PLMؓ@dSh4L XM3_Z: 4ŭ TW`9ps5ss=.Wv#8M>rs{ei`}5@ iDp9FquMB/T@Mg.C,w<>|& hAmP»L׭!8r9H\85!qM~HEUELE1 <ܷ7//"qn}|O 4,Zzpuʳ?_/۬p¼,+p9-4Nh'7sϗC!~/A1c>FJsѮ[D|tmꞬjnாg9PbcS@Y/Ww</ i;a[`_bܮCWzNtvk|l>< /r['?/!?jx>O{T(a\46p\635eᇫ.9W"@?䴎BJ&hl!eπ`@d|e;!_pLPΏQ f[\B{HLJx4{p̚py{u_)މPBOb ( 7<3wO(b*u¼{|#r3OA6Ϥ3%^yUap;}=P{#Mcu}/5 kq>$ M\迩e>.|(~WL{"8lg7h*NhHF9!POZpc(Ib3YxippU'ƃ ky#z7SeKj?uΥ2E߂5KASB#cOu۫Mw',95L<}C ~ 盺m_ר2p}Ӯ=[GWZnx7.Se֬[+ ,8ۺPxG:wNMNJmP\q–`2#{!1jAP=6p!}ݮAQ;r(Mx& 4\B(0"4Ȫ%^'fl[o L3u:hTr%iP7U蒫WPLpLWdԢ((axzQ, V[~JKjVzW( ;R13X۹kv.&J>(uXH[{\}tC`oMMpkU`[oUg0gz:rĈs V#3(%wx_fa|=m==n\|š58i5ж©`%z6PȢ8IAVPc%Rc?IāmʊaϲZ765=;hoOfPeRY JWPm xvMy&|KA͢QR'X *:̶C Rxs`}͙2;iQȭx ~r1m38/sT]2עF5ԃ.C=(!1g;\7KY dG!ԮۡWm e]W񙠁t2系] JjK-'/[OCW'8i)I7pxO-Pd˩1+3cxnj13cx 8!as8!as8!A9H8 $spA9H8asF8asF8as81as81as8 as&8 as&8 as8)as8)as8asf8asf8as89as89as>3j2$fԈ5fFMQSfԌe0 lL6&̀fd3`0 lL6C&!͐fd3d2 lL6C&Fbl$&Fbl$&Fb1ٌlFL6#&͈Fs o7_ 9ArAr 9A7@r 9Ar>{98?\((( oOz^z?  zߊޟo+8o>+Jp߁ c?=#@P.B} !4FhBs'">Xe!@1d J۠-JۢJۡ=JۣJ;#J;J;3J; J+J$Hs@ȱB؍11Pv+ gbW>T?;;JJ{dҞ( b Br/$Br/$Fro$Fro$Ar$Ar$Er_$ErQ8ɧ 9)H~H~H>ɧ"T$HHHH#Dr"9GQH?B$!jH?B$Oۇa "y !y!y#y0#9< A$A$Ӑ|OCP$EP$E0$SAʅ!Dv"3Q}2OFɨ>'dT?GQ}^dTWh\2WH+9zEkg GWHD alr 9Ar 9Ar 9Ar 9Ar 9Ar 9Ar 9Ar-$x ~ZBhqn1Ҍ|OZ%%P0JI!ScQ@lb*AAiшĨx XHFtIF7S ־>[Q3s./3F楾ktx1}ev9'z:Pqv'$E4:'Qhyώ 6W"V2ލc嵊 )GJb*z^6Y.NǪq~~Z,)%_&ʶ"s[Gz|W]Ƙ[k۳ܸ9k}[}^;wӢZ?ʕ }O+ܨ$tgL^|6t+x 'z'>LYoqݬY=^ВG-F 쿶P:嚌)n4Mlz]/p%Zzj5^7l/2ds5>Z;ދhirAwŒ{l~Ty+^]fեt{cBg=Wwb䧮:+zKbMc'6Wx h5VR41=^~Apٙo5mu=|w봥 sUS뿝RkZU=wǎ:pe{FEtV"r6$kZ)}" ƑKydE޶XpS룬'd8h"_q[ņ1aJf\jr%˴ݒIygQiβ uB6zIT=Pm^x)~DD{xvf<վtrs-Vg^87gmw/fy(^i[#V/yQ\ӽa!ܧSd[Lۚ&5zWYTכF*4dD٢{:ԔovljdO>uH?MjDҌśoSްC!lc°y @̐/B)JO=Ԓ[6gk-fo02rp)}ۑ2qjb\HR?vq{[7X'|j_ 6oRFIVnk6 uέFm%qG[,z_}R_Uf` +f{1xďm ]Jus '㮕?D|O/5m׭~3֌0t9_H ϼHVZ"6EcoV#8/KT4LT]r^BJ9r6^:5udC3U#n^g wqX|ڕgŒV/^oeSwlYW2ׅ\YQ/|l;YPu#u|zNQS-._+ |[|"v_;*Ŕ3mܖe{He9Z-rk_Iolj7_2K=8{'X5'>}uhᾭOeOHu{vX 1"jP^J`ʴFj=(Qbbq~{Ihcm&ˈ7ozgIŦ%~B^y2۾"R z;YBT}u11O%UXZh/\Q|͕#Z=[{Gњu: W:iP+7kC!WPݏ̞|ʳx(h3]~)<>],2HiCޖ&;e0c u/WnhӨ\|Ƽ_Yi?\lLVQ5yÓW&gjRFv?Oz HOic^>L$Rr/h]l;Gy uU_?9-_%O W Q?e@HZ~!mf N ~hcOlS=OL8Z^@&S?u@S!"k?a@?EI <@-wO__K7!}V?@"E _E 0P_ИTQ#^ ! LBz""dG?Sok,el2K=И. 1>̐>ÑA: CG@R@6D6A&PـnG 0-}]7EA!\F8dKMEq#!FrDRDcFm)!EB:0E}h\mmCׅ*53қү2ҭ]7)*lE ]Hwn6fN6"H?>H6ًno|K=d\i|'0}"{A'c}B"Cz4Cc^>_jHHhl<6HWhLZH?1OA:A"#}x>Gq4 vm#[٣"!]"یDA, و ,ٌ>'9@#}9"{m3Sكn+\Ů@dSNs+wĉ6^3o{-yF |mvsˡp0n% ,f9,b-err_L|޼kjq=+r8k#__(J5*DՓ\6Mi*y\XCZQȅnQ3=M"m34ZMx3MךKD}ϖm$U-Yn|j/:tV67/#fX;tL3S7cӣ.geV^kt([J%9AפֿL"-_Iv[Y~k\N-Ζ?ɩ]L.7dR;D՝s7>~G5,n pOӴxoҞe!YdAJi3Qv>Wʧ䳛u%}|w?(kZ=]QʚOd1AOGZXg~|Hv[sW+8*:ݪ/n0JR:%7\uޞƎm9ydžY;3 oVyF*nYKh:oP6QӦV O<>ZbX΀pG)6)FTissÏ iS)/}|zhdv?-Plϔ n*Iyp񧮔uȌW:A}fEX3/׳#5ҐKϡ*)kȭ/ V5FfzT^;{緮{f&6Dl6uhzU#Y+=ҦMyq͞tU }{%U|jjMvrS(/+&+|=Kd'Ԕ=}NR",'t;mo$eGz ER81dwJsaF\n?;_¿\Z>Ǝ"Vmϸi!u{vT %G0%in"9NL?? EēSS)IuRh qnR)-^7qՈ,ZE-M.M&ZG(zH.<޾! #Fm([SY#F.SEzzZePy*7,X*>ƢcPy:8xsڦP53dP]Կ HM>⤷c8tG~dzt[aO}yr>V9]^k`y"oȇo)'V{^i_dYҌS 7E>U#1L[w8=H[dAOK}g:#il:\;y aO`CwmWoq5'jwoo![}ߝ?[?vN3O8L~c88_!^oh97[yĿǯWWô)6$40}ӏ ~k2Qf~3#0G%Q}qT_/Ķ[ w{?v9^O]ζO!rߴKw ?q[ sB 8.4߳}t0V!B"BQ/BAֶYM 1Hau0]#̺J"@(P 4B)61.ahd%k ?  (<(c X{,A=I04K" 07{(H G<\ i00p@`>Qd2KPBAoOOJN&%$FR{Asu^T]0p/IP;:<"WEu<ʣ۟gaiWuEj_6haۇ ZY}?:{bgCFm$.'FƩYe&I̯c>7ma~{(̅Y}9sZxA-`> iˡ|$.{ZX?.t> WyɅ% [b,yIO0a}Sb-مw]y%X(:o1 nf[}BgCQY,:ǰ;O&0{(N`h"KyH6'ѹ} A_y5low_/;b/b u9V~@ ZOо_f_b%CUcg]07L`_:%Q_38I$0쎉>P%0]&ڣs }viDP{, '0aw˒w̧-\I v'ͅr`wg>.~O`p,x`v6$jYw~֞k vXp]-Btr$0GO1҆4, ̃]G;qqL.:b C 9Âk B 4~o0=7ȰfLr+Ώ=@=(intJ<ʑR)vo#JE"Ӣ&IJIr$ X,݋H8!6'-%=6ϗI$$7剧PȱF @G70'!MbcNQ"hvǚJJ $:J2#),BW/?K뱻!L쪄hG * TA5j!FPBC$F 4Eh‰1l!@1d J۠-JۢJۡ=JۣJ;#J;4J;3J J+JOBI(n(((=''J{BX~ ɽ ɽɽ}}}}ɧ $)H~H~H>ɧ"T$HHi @$@@$D@$D $B $B`$H)0C3 4$Ӑ|"y("y(!y BT., !*!VdTQ}2OFɨ>'~8Ψ%(caă3Q{9 ܬ]J Dg8G'"H`&ÃPQ{#7 ] G2<&r!v$ lOFzAG{rGNƏIX|Fk7%}( aJ7 }q_`FT~>Dŗ8Y>o1p [I0=Q&Ɲ83_19#}Vڎvpb~4tj>ju:Ӏ.BN3>"PăHQ(? !?C'rh\)(1HU"oa5 P70@8n̯aA0g@xNa<_϶5GB؏?UEYS潑pҴͫ'?^Ty^wNJ[c/Acwo֏LunPmxf F$Bn胞ʊ%@Mt蟵Y:{uhNG̏wt\tpc(67<2CޥTr {%C:Fo #'\ 'x_z>3GDҟbHN ƴ[CţgCcFwvB;[A6Bn+xk 'ӿ ګ .2'Ъ#&ރ~4~4D*B_>UxHO"iV<4ڢA :/]DniۖQrMSyT}[89Ӯ磇 l*tS&Y%xz틟,7.&,=3kT!OI7Onն!L>phD N*6Fצ_ munx#;C.vZ[ʺEgUٴ}k¡=?14INN]rtߧڅQǹ[ِ>il:w:݆Ϛq}j́X@w_Ks!~ߌݯbjrkr9{?U;g?'eC,;bral xsGzzz$2"XE1NRL[ 3c$ zB- FP)I(-멒n:%%G(L2Q 9>ށ, fy|5rKžt%FʐSZQ8 ċ?+zCirace/inst/exdata/irace-acotsp.Rdata0000644000176200001440000005151613640446260017124 0ustar liggesusers]X>zʁMÊ"^8( w hG &5V`QݽM<3yez@ 0 MSSc#B۴ly"ZJ͡9Sq6%!䤭 R{3ss|r^*2'WLTLOn~.Lff(|3Jo^fH囒ȗgd+r|i)JEn&)rT=] )@VcUhW&yo㛓Pʳ2K%ϖg(rmbQ GoV^DU±6 ?`t#ޖ+NQzgJE6nOη01b50Ai,IT砆qV/q406ĵ}NqjnK ^[ٱu6N~XY,oooooA=gy]AKs'BHdeJNHKJR(5Ā1,aX '.ZK le9.쌸)RnTIT9iF$Q-.:IJTX2qNHqz"I0UkI4vtdMEP8B e){'Ĩij9V$T&txRPZBy5i$eҨ'H" 3͗T.=S&O)SPIFV MLL 69ɹԚj '*65[4"]^{+)m)2-# 'HgebmPL2a"p{%g²+eQ+9n&OLOKN^'D$EL[Kdff<陉<;1)?=+woMS3qLtsÉDz9rHL s%V:}V$RvN0{nW {{^Q'}a ooZ#'Hq4'HA3oQ~8`Mi!(IMH\ǀT3\!`Mi6{*Os)dC'DO[>z'r[J-4Ip[@#c L,_lwmk79\Ŧ-Ӕ-ӍY1 FWL)gĽBGkN0 p"!'!z4}:nGC*}Ie nl-qh]# lԍ+=3}A]*{zwH&"TZ7/.6u\y.g")\!ކs.Ќר- @.uܛQwL<)3Coޤ4EZN|*dR(pr46hAG1qeLkeB?yvQT;yv>q:IO_kel6`Q8VOteuCgWA6(Q p+СGC?y{g ?Nե3dꑍ_ 0r#Б6э)|ȿ% ZP<eU𢀺.h>͠맲]\ēwczVY1" Vn1(:<*NlxV.tl'݁ѫS |\;ǎᅠ3o"+x\;Njm]ݝ Gz̃Q Eem;1)7Ա`' 7! kh9$C-SV}zh03\3t;1. e@= H%?Nt*|+,}މ @~=r]Q)7EDgEpr kE/e4^5(`~.gաYn'R_A\:oމ?~ʇg|V0Ww߲^/.L_!S.tY\ϳmx-iTD~m9WVJ.t?"WE0PpW|;qͦ˓ң gܔ|':-m~BU7P_E/BDc~xnrGd"ApBu^cEmAB9`j;ѡ_xթ\ܲ%СVDǠe?n*Oqe+euGYxC:TQ|yWlnEonyJ:4ѠmcTs]q~k訿NuYxS@|ane{Vp+8lPW \v .huQr /+8;gR T[l.'.j Q(qzr/S7N!I]`}J4tɺɻ?/X5gYu$C**\Wƾ:1^X G7`[EPR1`nejMuc鹿wxC=jPV:x-StZ7$huI(Xk_G'|Aj05Хz;~R^T:5P]c%uuc5KIw;5zn&S+^'O"Ήuܝt.qtʷ$Wu!ZPF/Uץ_3g`e\jfQ >?_:m-<&ܣòO.S=.PIW #KOΤ/=ǴR/}@}WB.P7sϿSsF4*2/3}^~gz:Jz~е.څAƔN?:N(S~g0SxUB_CT ud qTI`u-SK((!q_{/ Pu;@LJ ?뷂h:wPDPx^aM.+ǃ$W}XV`u^BU/[C]2!0]ذx~ jH+֓>dB -zAKk?2uŠ(: wN}<_$X/)!nBF`^pK~hVE :m"+\? >`(z 6!kPGաN=' yBP^~N9'D ['m@=֢x!J"a{`)`9oC}__y(T@CC=InEB[,2?HTBޏa$E-iﭹ/b p˗c}6u=-zZEՊ?H+ 'tR@SF>ԺOCg-Zu~st~W4YqWbaQԱ osO/\tVnbe#`>?Rl8VsFzSPRCG^6# Pg\c|xtBCGO,: =>#|:5~'RR:"'k^URcz :i2uE@G;:ek3kjPCwBmtA,کb] t kX}~ԱvLEwJHGX}AAS՗ZQt~3X'uLCZ1St X<my|ٸ&~-*ꐛkHjrPtt~fߍ=QUR$Cӛ)( C@>?WѪ5~wK=oPaK>8V P5* r 4mӠ`ߚϏ?v!]˖"|H, CVOuD!KcP}j(\9^I}#(Zoȹ%VtsUeoo z.ҵA o@1z:ZX?Mx#VOQ:q-eQ(rNgj^ Cod|2(:*:,6 HGㅅzuܫgʵ#>:=7MӪ#^I5ʡzTkK*N9-+:zF'Ժ2%ܷ*Ϩ2sE¯Aةo @ !m`9G~Vho]t/u$џLGӯXRI,`?t@'R|OI> '!k~̙?s&f$̙9 ` $t_(> f1!f8 3bCp1!f8$ 0CpH !a8$ 2RCpH)!e8 2R#`8#`8#`8@#d8@#d8@#b8 #b8 #b8`#f8`#f8`#a8B#a8B#&~~?{*fO%쩔= `O 4=eY6͟egY6͟egY6M̲Y61&f,elbM̲Y6 &a$,elM²IX6 &a٤,elRMʲIY6)&e٤,e `X-e `X-e `X@-gНGg@ЀԎ4%hi@ЀPh@Ѐ4 Ѐ4 ĆD9z} )0 ߂B| }8S:k(Q$B_ /E٣=٣=c=c=c=c===!{?P?C {˩n:Uq! d샐}0F>ه dC}(% 3PKp}Xփyqyv95k|8?1Z qCa>ه#pd/B#D|(嗣r_Q~9/GP?O7P_C}<|>^oJ-ż ܄bȞKDEQom'~zn/=S>W"Wb黉rI c^>߯I~PA- h@Ѐ4 h@Ѐ4 h@Ѐ4 h@Ѐ4 h@Ѐ4 h@Ѐ4 h@Ѐ4 h@߉@` QunrB3oM;x+B\E<7-S",Ӕ9re3i)*Di8YBJ6i lh.?G̾S_[}O* 7K;iγ_nWZLǽM˧9Ng q>xѢn8_8۲? x__yC\?~aȥ{ucĘ!?;̽+ͦ񜩠v_??օM1]st1O=q޺ԼZHFK?ܜ5mJeѫWOuپ,z]ٔU{OzQTactaM||־;չ߼w31sX믖~n3|~kikw.n%4/KmɨUA 7r8.ig]}a|~-~oiOC _1j.ۗ_jTLCm:G&wWeQBj0e%-};(GzkڳoyorƒK?ϖ-"Lm*J7׆FYmI|?_9c ,<}Bİ#ǞX6fS_go-l['vN;9uLSp`UGVod}~IȾū|寍\Q8ᾰ]Ww8/+d˞_~DlJ' :yno%G6>J~حǢEgەi/+Cdy\xBsvVz3~L9-h-@5cTK fN9/*s+Δdm|MMM*4ržc/,^d<1[c'niٯ,;a#O6t?p"hrݎ#w(y΃0ctbVKdE;{ukӣB5`E}wڻǔeEam<:ꯝc2{~\\!%^D: qi” :̳;ml34sh~c}'iZM~g6A^0{rDt{| vٖ?v3T„[k~cV t`?KTH ^`GcWlJ:feߐZl0`%?ZPN>mW<@mَ/u]McΘ{n'ܟU"vor/8SNj}-iD첨Rٸ+.]n>"Ф+IF>]]lizѶV#:qֵ,ښqCmmYυc<"=sabfIݎ$;ټ<ϟ/t=+oL,uvV?/\~q:Ii;cN38|~X}ɕ{nn8~厭7vd6Mр{~ 7"xn!b?swy iByǙq~ ޳=jޫ^k,=ȵ3St3VE;=^.^EL뜷h~M6ߧLWků ̡bӭxa#w.vzQ:\N=׾QH\zdiϳMuS+-sf[]Vg<ägg,E)M|GvĮȝ_Zo|q=E1mϻu mTGw({HS獶zk3֠yҸ6G~vEox?O+S&fu=}8vgLaR 21rG??;5Kٷ<;U$}{~^\&rql̀ӟ8V\u$?mԩiE+ PQzQ_o:yb-!u^St;%|xI)Fp(̕g(r}jyJK-|B^Aʭ@.aMQZk3@,Q.ׄS.gIgZs|Di 7G&(=0ByxX8̃Xs07Gvlrc9θLn9f܌'\֌w+NfMǾDqOܶ6mV^Lye6viq>X,nu׉hmW6873nP[F=hף \ow;h9&׳uy|dzy=2oN9hNo u!asluUM \p!w˥ٱNvKɤTMmX⧳C&z(fM.8vKIEJ{blR6erp{WFd|١ a;dMnHѮn^Ic.tKq >Q+}lfggM?=~ӫ^$yW>b^m\>,$cg:zF{V*%d~i261=YFK ^N&tҰu1#Ϛ ?dό{>mwNz=@6dBSS5&}_䞷ۥُL 5iwlm[ _s &c}4n^W7=~Ҕ >r/ImgIgc#Vw۷<1 E+JLs$e磔g(rf\H`^BtyNbI\Or6_PL&lRfKSb[`l9D#bRde(T*xZ$*Lh2SG'X3nhةp;ǔgSv<db=jZ3Q]t|b{#doLM;Hj͐#By4-yKpVhN :OA۠|mQ9P Dmʩ?E)+ AaQ`7B" /"{7>@5EZz"H?{# >5?#E\DKGc&(%T߇>C~0Jp(JK lM/R__鶿%_:ՠ.1. H_"qe.#k=\i)?q9f_ɨ0 Cq)`*{HطFpfKpLSQ[Bޜ\P OZD#%,.$ͷxY.ʵge&E4S %sOi5UI]#F\_WżZ-BP#QMe)(KùjYUzԓ \65Vja^q3L*1cHPD*Ԋt^ ݫR$"[pFV2kɣ*MNkZ2/̔D9tINKW9rئIxʈ O[8%% (3dvܖvQENj_UfBet%ʕ\QBL_3lQZR+Uto6Tsj+ꨝY<_k7A.LP'uȐ+"Ӕ<M3isTj:9)n_4 owZR??mɣThtuȳ͒g(iQ3zĸ@NQb[bԆJGBN+;sRWFxv'^¶:+)%5Ju:[;|BJ"6U!I,ҘsR3UI"4cedf+Dr(7/STe$(sܫW^sS HJ5zpգaA%G-8G?tGW^Kt @@΁ 1D09.Qܻq^gІ\Xr1iFs2bԩٺ'!1b\I6Y~'zW*,/> d?q3?I Q~d/Kc~|3c(45Ds|䣰BmP jތ#;`^}4{tvw$6=SD) 7ۮV_DR#Yz3r@TI~GTHBwdOTf/}Fx<"o1 B@#p4!LdKyk>]|syzJfvZnj<(OQȳSyzVgNPsLf2_TJe:>7''Wlr$Tћ ",}d]{b>~]q'Z;‡IܿkxTbZ_Ya6ܖ1"[4x {a dcїZ:dRrpj+s}=^w"דT?vJF/锠'~i3ڝeDw'M:>RN0jNbLhy#2k Z*ţJhJLMuT ăJh JhdzSfco9+ţR<+ţ)R<3U= z<[3>P{|mt,1Ӧ+^Kj{,}=RD HW"fEȻ''aB4͓AtlŽCvBH $1B P8 ;0]P+ wEn( |; @a؇pO7(‘(½P?½Q Q$B_ /EȎ2ÌhdFdAdAXdEXdEvC8dC~!{?d?Gvto@Ȏ D>! d샐}0F>ه dC}(EȎ Ca> ه!pdÑ}8#{!J/FCr_Q~9/G(O@P?O@P?ODD?ODQD?OB`~j<R.Ӵ32sl):V*Or-ztHZ.[Vs9jW{Yc&%R]GGqU:Si Uv7Uf|{O*o8\jYuy~O5'>#J'b&Iʉ% ؿIRۤGjLZ մIuI\T-ȮLJoꜼe7Nb=uNV7;s}rR}M ɍ}I"љMIs=tH)jfbϩ.e߶%^/zj1_6? yy g-d76K| ϖWnito=盇ci]i+*y_H(qG_G~84_v]F\1tQ1v\k.Szv--H-O Q#3`4ՃI3 I\N<[~:4+ئ3ճ[ƻP}tsPiwhNK>k?+."Mg/#i9 *ך~ēe/it4A!)Ҭ:tz٩@˲Au|3l W_1Ha oNaHwߟfL8yxmL鉥dpjZYA6ٌH r2@nkp l@]ZzmL./@R[iOTP_`, ZG_Aˎ$f$qM]}T"]R?3gt!C<\: )O }]ExɦM'>OW@`\$ZmϴX3LBwiTHq,&\@;q:ީ`J%tOݦo\$?Ѹ߼rWIz@\֞I S"GzJe.H%w~FtҽE&gmtЂ4y(#`F2d={T_W.9UqX9{d} iv F CIWY\O`OґEN,MF&p]{oz%M7٨-Lts5Jv_C6 ;.`#s˵S2:6~*N6>JOI[.>Ĺ 1|!sHx-j }CpM3pҹ=]&O#0!r1i/+8ސn#J4ldzڥ|_HQ?{7wHi(ѝIP؟͇y.z x8v Nu$Qץ߾N6k 4>g"_z͋%ӋI0<8Ż܎[%IVtjJy.ts-W=ǃzy +%C> .Gͬ M6.IOu0S˱%w=QkΟ7?~HͅWC6=u% ?/p]q)列jzuCU(5D7GeW2(r 9d0AK>"nqGg7q4j?8M7דy=4/^!.ۊ8w뻌ZP J5^#q^7{ [Bp0'V /;___x_X'ވCϕ*4aL8LS'ۅOw<>:tu畏o_)׃CCK _/xuՊofXWΏgQ'Dq?¸=p϶\̃֏I\?fQ?܎y?a\._NKq}?0/W/]u'֋)?@Kxza;օ-B0^@^ż ~r n'\T oisy-1x`F?2!x[cmkkjo'Jw\9 n{Rw}ϠTJWoӷG#nҷո{}_j%{1|τw䁄y~>*)>Y'>UBJǤC?!UU=F?m_GO-r8 ^Sx{cUK q @mJ'aI>'%Js57cHcs>:+۱V M* o^:{>x@C-(\zOew^b |AFa~ p 6]u_<~ ^6!ҏK ϭftA3~~_)p{mC!o1^v膚Bl_Ss`b}|l^S 2{t*o[񫜤Ra,z~_y>$h+ڲ'M*PZ3w5s}_'jdnzjߦUs]X29mU!6׉2N?bÏtӏǏXDjǿ?.?[Z*~T֎:157Лa' ߊ)ΞP^+?-jw Ss5FTQ9PkziP_^ĩ=;KBIHwIJ=ېylC)uJCioZ_w(/_3t| *.M bybyױ8y𐟏@t3~ԕo t|u:f/_Ua^yߖC7Rj~si$'(Þ~̙?s&f$̙9 `Θ+1g!f8 3bCp1!f8 0CpH !a8$ 0RCpH)!e8 2RCp0 G~*`8#`8@#d8@#d8@#b8]A Gp1A Gp3 G0p3`#-p0! Gp a8Be~~?{*fO%쩔= `O)ϲl,?ϲl,?ϲq>&f,elbM̲Y61&f,elM²IX6 &a$,elRMʲIY6)&e٤,elRMl,[p̲l,[ F1a9R?ŊY5S~Θ.L-E^<@+!@b|%DA{YKEATX^c"US ,L`6*v>W=M+.=!OSNUay ʖClI TC0$W H}֣cGkXoS@>X~Ɛy ,WtKjS 6K΀y][O*$OAP_G0:[aaPGxGc֯ 8W G0LFrܧIJ꟫Gp+?*1It0m{X(Nfyfz " ,$[L?&iz#2?%§eNB)Nëv;AI";ȣurHC$w?#ێLamtJuHh6! .Rׂ:MSg ^nOirace/inst/bin/0000755000176200001440000000000013640446260013067 5ustar liggesusersirace/inst/bin/parallel-irace-mpi0000755000176200001440000000647413640446260016470 0ustar liggesusers#!/bin/bash ############################################################################### # This script launches several runs of irace in parallel in a SGE Cluster, and # each run is parallelized using MPI. Execute without parameters to see usage. ############################################################################### set -e set -o pipefail # Find our own location. BINDIR=$(dirname "$(readlink -f "$(type -P $0 || echo $0)")") IRACE="$BINDIR/irace" # You may need to customize this part according to the setup of your own # cluster. QUEUE=long #MACHINE=opteron2216 #MACHINE=xeon5410 #MACHINE=opteron6128 MACHINE=opteron6272 MPIRUN=/opt/openmpi/bin/mpirun #PARALLEL_ENV=mpich_fu PARALLEL_ENV=mpich_rr # This function launches one run of irace. irace_main() { # We would like to use $BASHPID here, but OS X version of bash does not # support it. JOBNAME=irace-$$-$1 exec qsub -v PATH <&2 exit 1 } usage() { cat < [--machine MACHINE] [IRACE PARAMS] Parameters: N an integer giving the number of repetitions of irace or a sequence N-M giving which repetitions to redo. EXECDIR job M will use EXECDIR-M directory (default: execdir-) as the execDir (--exec-dir) parameter of irace. --parallel number of parallel jobs --machine MACHINE qsub queue type, e.g., opteron6272 IRACE PARAMS additional parameters for irace. EOF exit 1 } # Issue usage if no parameters are given. test $# -ge 1 || usage # Number of repetitions of iRace REPETITIONS=$1 shift START=1 if [[ "$REPETITIONS" =~ ^([0-9]+)-([0-9]+)$ ]] ; then START=${BASH_REMATCH[1]} REPETITIONS=${BASH_REMATCH[2]} elif ! [[ "$REPETITIONS" =~ ^[0-9]+$ ]] ; then error "number of repetitions must be an integer" fi # execDir (--exec-dir) directory EXECDIR_PREFIX=${1:-execdir} shift SEED=1234567 PARAMS= while [ $# -gt 0 ]; do case "$1" in --parallel) shift; NB_SLAVES="$1"; shift;; --seed) shift; SEED="$1"; shift;; --machine) shift; MACHINE="$1"; shift;; *) PARAMS="$PARAMS $1"; shift;;# terminate case esac done if [ $NB_SLAVES -lt 2 ]; then error "--parallel must be larger than 1" exit 1 fi let NB_PARALLEL_PROCESS=NB_SLAVES+1 for i in $(seq $START $REPETITIONS); do EXECDIR=$(printf '%s-%002d' ${EXECDIR_PREFIX} $i) echo "execution directory: $EXECDIR" rm -rf $EXECDIR mkdir -p $EXECDIR let RUNSEED=SEED+i-1 irace_main $(printf '%002d' $i) & sleep 1 done irace/inst/bin/parallel-irace0000755000176200001440000000411613640446260015674 0ustar liggesusers#!/bin/bash ############################################################################### # This script launches several runs of irace in parallel. # Execute without parameters to see usage. ############################################################################### set -e set -o pipefail # Find our own location. BINDIR=$(dirname "$(readlink -f "$(type -P $0 || echo $0)")") IRACE="$BINDIR/irace" # You may want to customize this function. irace_main() { # We would like to use $BASHPID here, but OS X version of bash does not # support it. THISPID=$(exec sh -c 'echo $PPID') # It may be faster to use /tmp. exec 1> $EXECDIR/irace-$THISPID.stdout exec 2> $EXECDIR/irace-$THISPID.stderr exec $IRACE --exec-dir=$EXECDIR --seed $RUNSEED $PARAMS } ## End of customization error () { echo "$0: error: $@" >&2 exit 1 } usage() { cat <&2 exit 1 fi echo \$TMP/irace.stdout >&2 exec 1> \$TMP/irace.stdout echo \$TMP/irace.stdout >&2 $IRACE --exec-dir=\$TMP --seed $RUNSEED $PARAMS RET=\$? # Use command to avoid aliases command cp --force -R \$TMP/./ $EXECDIR/ rm -rf \$TMP exit \$RET EOF } ## End of customization error () { echo "$0: error: $@" >&2 exit 1 } usage() { cat <