From 09170c84d59c0bc9c8303bb1ba9da96deb29ec3c Mon Sep 17 00:00:00 2001 From: Simon_nimbus Date: Tue, 20 Oct 2020 11:50:57 +0100 Subject: [PATCH 01/32] added the pair files --- src/pair_wf.cpp | 403 ++++++++++++++++++++++++++++++++++++++++++++++++ src/pair_wf.h | 76 +++++++++ 2 files changed, 479 insertions(+) create mode 100644 src/pair_wf.cpp create mode 100644 src/pair_wf.h diff --git a/src/pair_wf.cpp b/src/pair_wf.cpp new file mode 100644 index 0000000000..00f3ad5aba --- /dev/null +++ b/src/pair_wf.cpp @@ -0,0 +1,403 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + Contributing Authors: Xipeng Wang, Simon Ramirez-Hinestrosa +------------------------------------------------------------------------- */ + +#include +#include +#include +#include +#include "pair_wf.h" +#include "atom.h" +#include "comm.h" +#include "force.h" +#include "neigh_list.h" +#include "math_const.h" +#include "memory.h" +#include "error.h" + +using namespace LAMMPS_NS; +using namespace MathConst; + +/* ---------------------------------------------------------------------- */ + +PairWF::PairWF(LAMMPS *lmp) : Pair(lmp) +{ + writedata = 1; +} + +/* ---------------------------------------------------------------------- */ + +PairWF::~PairWF() +{ + if (allocated) { + memory->destroy(setflag); + memory->destroy(cutsq); + memory->destroy(cut); + memory->destroy(epsilon); + memory->destroy(sigma); + memory->destroy(nu); + memory->destroy(mu); + memory->destroy(nm); + memory->destroy(e0nm); //Alpha * epsilon + memory->destroy(rcmu); + memory->destroy(sigma_mu); + memory->destroy(offset); + } +} + +/* ---------------------------------------------------------------------- */ + +void PairWF::compute(int eflag, int vflag) +{ + int i,j,ii,jj,inum,jnum,itype,jtype; + double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair; + double rsq,r2inv,factor_lj; + double r,forcenm,rminv, rm, rn; + int *ilist,*jlist,*numneigh,**firstneigh; + + evdwl = 0.0; + if (eflag || vflag) ev_setup(eflag,vflag); + else evflag = vflag_fdotr = 0; + + double **x = atom->x; + double **f = atom->f; + int *type = atom->type; + int nlocal = atom->nlocal; + double *special_lj = force->special_lj; + int newton_pair = force->newton_pair; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + // loop over neighbors of my atoms + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + itype = type[i]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + factor_lj = special_lj[sbmask(j)]; + j &= NEIGHMASK; + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; + jtype = type[j]; + + if (rsq < cutsq[itype][jtype]) { + r2inv = 1.0/rsq; + r = sqrt(rsq); + rminv = pow(r2inv,mu[itype][jtype]); + rm = sigma_mu[itype][jtype]*rminv - 1.0; + rn = rcmu[itype][jtype]*rminv - 1.0; + + forcenm = 2.0*mu[itype][jtype] *sigma_mu[itype][jtype]*pow(rn,2.0*nu[itype][jtype]) + + 4.0*nm[itype][jtype] *rcmu[itype][jtype]*rm*pow(rn,2.0*nu[itype][jtype]-1.0); + fpair = factor_lj*e0nm[itype][jtype]*forcenm*pow(r2inv,mu[itype][jtype]+1.0); + + f[i][0] += delx*fpair; + f[i][1] += dely*fpair; + f[i][2] += delz*fpair; + if (newton_pair || j < nlocal) { + f[j][0] -= delx*fpair; + f[j][1] -= dely*fpair; + f[j][2] -= delz*fpair; + } + + if (eflag) { + evdwl = e0nm[itype][jtype] * + (rm*pow(rn,2.0*nu[itype][jtype])) - offset[itype][jtype]; + evdwl *= factor_lj; + } + + if (evflag) ev_tally(i,j,nlocal,newton_pair, + evdwl,0.0,fpair,delx,dely,delz); + } + } + } + + if (vflag_fdotr) virial_fdotr_compute(); +} + +/* ---------------------------------------------------------------------- + allocate all arrays +------------------------------------------------------------------------- */ + +void PairWF::allocate() +{ + allocated = 1; + int n = atom->ntypes; + + memory->create(setflag,n+1,n+1,"pair:setflag"); + for (int i = 1; i <= n; i++) + for (int j = i; j <= n; j++) + setflag[i][j] = 0; + + memory->create(cutsq,n+1,n+1,"pair:cutsq"); + + memory->create(cut,n+1,n+1,"pair:cut"); + memory->create(epsilon,n+1,n+1,"pair:epsilon"); + memory->create(sigma,n+1,n+1,"pair:sigma"); + memory->create(nu,n+1,n+1,"pair:nu"); + memory->create(mu,n+1,n+1,"pair:mu"); + memory->create(nm,n+1,n+1,"pair:nm"); + memory->create(e0nm,n+1,n+1,"pair:e0nm"); + memory->create(rcmu,n+1,n+1,"pair:rcmu"); + memory->create(sigma_mu,n+1,n+1,"pair:sigma_mu"); + memory->create(offset,n+1,n+1,"pair:offset"); +} + +/* ---------------------------------------------------------------------- + global settings +------------------------------------------------------------------------- */ + +void PairWF::settings(int narg, char **arg) +{ + if (narg != 1) error->all(FLERR,"Illegal pair_style command"); + + cut_global = force->numeric(FLERR,arg[0]); + + // reset cutoffs that have been explicitly set + + if (allocated) { + int i,j; + for (i = 1; i <= atom->ntypes; i++) + for (j = i; j <= atom->ntypes; j++) + if (setflag[i][j]) cut[i][j] = cut_global; + } +} + +/* ---------------------------------------------------------------------- + set coeffs for one or more type pairs +------------------------------------------------------------------------- */ + +void PairWF::coeff(int narg, char **arg) +{ + if (narg < 6 || narg > 7) + error->all(FLERR,"Incorrect args for pair coefficients"); + if (!allocated) allocate(); + + int ilo,ihi,jlo,jhi; + force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); + force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + + double epsilon_one = force->numeric(FLERR,arg[2]); + double sigma_one = force->numeric(FLERR,arg[3]); + double nu_one = force->numeric(FLERR,arg[4]); + double mu_one = force->numeric(FLERR,arg[5]); + + double cut_one = cut_global; + if (narg == 7) cut_one = force->numeric(FLERR,arg[6]); + + int count = 0; + for (int i = ilo; i <= ihi; i++) { + for (int j = MAX(jlo,i); j <= jhi; j++) { + epsilon[i][j] = epsilon_one; + sigma[i][j] = sigma_one; + nu[i][j] = nu_one; + mu[i][j] = mu_one; + cut[i][j] = cut_one; + setflag[i][j] = 1; + count++; + } + } + + if (count == 0) error->all(FLERR,"Incorrect args for pair coefficients"); +} + +/* ---------------------------------------------------------------------- + init for one type pair i,j and corresponding j,i +------------------------------------------------------------------------- */ + +double PairWF::init_one(int i, int j) +{ + if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); + + nm[i][j] = nu[i][j]*mu[i][j]; + e0nm[i][j] = epsilon[i][j]*2.0*nu[i][j]*pow(cut[i][j]/sigma[i][j],2.0*mu[i][j]) + *pow((1+2.0*nu[i][j])/(2.0*nu[i][j])/(pow(cut[i][j]/sigma[i][j],2.0*mu[i][j])-1.0), + 2.0*nu[i][j]+1.0); + rcmu[i][j] = pow(cut[i][j],2.0*mu[i][j]); + sigma_mu[i][j] = pow(sigma[i][j], 2.0*mu[i][j]); + + if (offset_flag && (cut[i][j] > 0.0)) { + offset[i][j] = 0.0; + } else offset[i][j] = 0.0; + + epsilon[j][i] = epsilon[i][j]; + nu[j][i] = nu[i][j]; + mu[j][i] = mu[i][j]; + nm[j][i] = nm[i][j]; + sigma[j][i] = sigma[i][j]; + e0nm[j][i] = e0nm[i][j]; + rcmu[j][i] = rcmu[i][j]; + sigma_mu[j][i] = sigma_mu[i][j]; + offset[j][i] = offset[i][j]; + + return cut[i][j]; +} + +/* ---------------------------------------------------------------------- + proc 0 writes to restart file +------------------------------------------------------------------------- */ + +void PairWF::write_restart(FILE *fp) +{ + write_restart_settings(fp); + + int i,j; + for (i = 1; i <= atom->ntypes; i++) + for (j = i; j <= atom->ntypes; j++) { + fwrite(&setflag[i][j],sizeof(int),1,fp); + if (setflag[i][j]) { + fwrite(&epsilon[i][j],sizeof(double),1,fp); + fwrite(&sigma[i][j],sizeof(double),1,fp); + fwrite(&nu[i][j],sizeof(double),1,fp); + fwrite(&mu[i][j],sizeof(double),1,fp); + fwrite(&cut[i][j],sizeof(double),1,fp); + } + } +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts +------------------------------------------------------------------------- */ + +void PairWF::read_restart(FILE *fp) +{ + read_restart_settings(fp); + allocate(); + + int i,j; + int me = comm->me; + for (i = 1; i <= atom->ntypes; i++) + for (j = i; j <= atom->ntypes; j++) { + if (me == 0) fread(&setflag[i][j],sizeof(int),1,fp); + MPI_Bcast(&setflag[i][j],1,MPI_INT,0,world); + if (setflag[i][j]) { + if (me == 0) { + fread(&epsilon[i][j],sizeof(double),1,fp); + fread(&sigma[i][j],sizeof(double),1,fp); + fread(&nu[i][j],sizeof(double),1,fp); + fread(&mu[i][j],sizeof(double),1,fp); + fread(&cut[i][j],sizeof(double),1,fp); + } + MPI_Bcast(&epsilon[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&sigma[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&nu[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&mu[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&cut[i][j],1,MPI_DOUBLE,0,world); + } + } +} + +/* ---------------------------------------------------------------------- + proc 0 writes to restart file +------------------------------------------------------------------------- */ + +void PairWF::write_restart_settings(FILE *fp) +{ + fwrite(&cut_global,sizeof(double),1,fp); + fwrite(&offset_flag,sizeof(int),1,fp); + fwrite(&mix_flag,sizeof(int),1,fp); +// fwrite(&tail_flag,sizeof(int),1,fp); +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts +------------------------------------------------------------------------- */ + +void PairWF::read_restart_settings(FILE *fp) +{ + if (comm->me == 0) { + fread(&cut_global,sizeof(double),1,fp); + fread(&offset_flag,sizeof(int),1,fp); + fread(&mix_flag,sizeof(int),1,fp); +// fread(&tail_flag,sizeof(int),1,fp); + } + MPI_Bcast(&cut_global,1,MPI_DOUBLE,0,world); + MPI_Bcast(&offset_flag,1,MPI_INT,0,world); + MPI_Bcast(&mix_flag,1,MPI_INT,0,world); +// MPI_Bcast(&tail_flag,1,MPI_INT,0,world); +} + +/* ---------------------------------------------------------------------- + proc 0 writes to data file +------------------------------------------------------------------------- */ + +void PairWF::write_data(FILE *fp) +{ + for (int i = 1; i <= atom->ntypes; i++) + fprintf(fp,"%d %g %g %g %g\n",i,epsilon[i][i],sigma[i][i],nu[i][i],mu[i][i]); +} + +/* ---------------------------------------------------------------------- + proc 0 writes all pairs to data file +------------------------------------------------------------------------- */ + +void PairWF::write_data_all(FILE *fp) +{ + for (int i = 1; i <= atom->ntypes; i++) + for (int j = i; j <= atom->ntypes; j++) + fprintf(fp,"%d %d %g %g %g %g %g\n",i,j, + epsilon[i][j],sigma[i][j],nu[i][j],mu[i][j],cut[i][j]); +} + +/* ---------------------------------------------------------------------- */ + +double PairWF::single(int /*i*/, int /*j*/, int itype, int jtype, + double rsq, double /*factor_coul*/, double factor_lj, + double &fforce) +{ + double r2inv,r, rminv, rm, rn, forcenm,phinm; + + r2inv = 1.0/rsq; + r = sqrt(rsq); + + r2inv = 1.0/rsq; + r = sqrt(rsq); + rminv = pow(r2inv,mu[itype][jtype]); + rm = sigma_mu[itype][jtype]*rminv - 1.0; + rn = rcmu[itype][jtype]*rminv - 1.0; + forcenm = 2.0*mu[itype][jtype] *sigma_mu[itype][jtype]*pow(rn,2.0*nu[itype][jtype]) + + 4.0*nm[itype][jtype] *rcmu[itype][jtype]*rm*pow(rn,2.0*nu[itype][jtype]-1.0); + fforce = factor_lj*e0nm[itype][jtype]*forcenm*pow(r2inv,mu[itype][jtype]+1.0); + + phinm = e0nm[itype][jtype] * rm*pow(rn,2.0*nu[itype][jtype]) - + offset[itype][jtype]; + return factor_lj*phinm; +} + +/* ---------------------------------------------------------------------- */ + +void *PairWF::extract(const char *str, int &dim) +{ + dim = 2; + if (strcmp(str,"epsilon") == 0) return (void *) epsilon; + if (strcmp(str,"sigma") == 0) return (void *) sigma; + if (strcmp(str,"nu") == 0) return (void *) nu; + if (strcmp(str,"mu") == 0) return (void *) mu; + return NULL; +} diff --git a/src/pair_wf.h b/src/pair_wf.h new file mode 100644 index 0000000000..e4254f4ccf --- /dev/null +++ b/src/pair_wf.h @@ -0,0 +1,76 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifdef PAIR_CLASS + +PairStyle(wf,PairWF) + +#else + +#ifndef LMP_PAIR_WF +#define LMP_PAIR_WF + +#include "pair.h" + +namespace LAMMPS_NS { + +class PairWF : public Pair { + public: + PairWF(class LAMMPS *); + virtual ~PairWF(); + + virtual void compute(int, int); + void settings(int, char **); + void coeff(int, char **); + double init_one(int, int); + void write_restart(FILE *); + void read_restart(FILE *); + void write_restart_settings(FILE *); + void read_restart_settings(FILE *); + void write_data(FILE *); + void write_data_all(FILE *); + double single(int, int, int, int, double, double, double, double &); + void *extract(const char *, int &); + + protected: + double cut_global; + double **cut; + double **epsilon,**sigma,**nu, **mu; + double **nm,**e0nm,**rcmu,**sigma_mu,**offset; + + void allocate(); +}; + +} + +#endif +#endif + +/* ERROR/WARNING messages: + +E: Illegal ... command + +Self-explanatory. Check the input script syntax and compare to the +documentation for the command. You can use -echo screen as a +command-line option when running LAMMPS to see the offending line. + +E: Incorrect args for pair coefficients + +Self-explanatory. Check the input script or data file. + +E: All pair coeffs are not set + +All pair coefficients must be set in the data file or by the +pair_coeff command before running a simulation. + +*/ From c738d92e816e2310a1cf3e021c25858237bbd3ed Mon Sep 17 00:00:00 2001 From: Simon_nimbus Date: Wed, 21 Oct 2020 13:06:41 +0100 Subject: [PATCH 02/32] Added the documentation --- doc/src/pair_wf.rst | 126 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 doc/src/pair_wf.rst diff --git a/doc/src/pair_wf.rst b/doc/src/pair_wf.rst new file mode 100644 index 0000000000..e8955ebecd --- /dev/null +++ b/doc/src/pair_wf.rst @@ -0,0 +1,126 @@ +.. index:: pair_style wf + +pair_style wf command +=========================== + +Syntax +"""""" + + +.. code-block:: LAMMPS + + pair_style wf cutoff + +* cutoff = cutoff for wf interactions (distance units) + +Examples +"""""""" + + +.. code-block:: LAMMPS + + variable sigma equal 1.0 + variable epsilon equal 1.0 + variable nu equal 1.0 + variable mu equal 1.0 + variable rc equal 2.0*${sigma} + + pair_style wf ${rc} + pair_coeff 1 1 ${epsilon} ${sigma} ${nu} ${mu} ${rc} + +Description +""""""""""" + +The *wf* style computes the potential in :ref:`Wang2020 `, which is given by: + +.. math:: + + \phi(r)= \epsilon \alpha \left(\left[{\sigma\over r}\right]^{2\mu} -1 \right)\left(\left[{r_c\over r}\right]^{2\mu}-1\right)^{2\nu} + +with + +.. math:: + \alpha=2\nu\left(\frac{r_c}{\sigma}\right)^{2\mu}\left[\frac{1+2\nu}{2\nu\left[(r_c/\sigma)^{2\mu}-1\right]}\right]^{2\nu+1} + +and + +.. math:: + r_{min}=r_c\left[\frac{1+2\nu}{1+2\nu(r_c/\sigma)^{2\nu}}\right]^{1/{2\nu}} + +:math:`r_c` is the cutoff. + +The following coefficients must be defined for each pair of atoms +types via the :doc:`pair_coeff ` command as in the example +above, or in the data file or restart files read by the +:doc:`read_data ` or :doc:`read_restart ` +commands: + +* :math:`\epsilon` (energy units) +* :math:`\sigma` (distance units) +* :math:`\nu` +* :math:`\mu` +* :math:`r_c` (distance units) + +---------- + + +Styles with a *gpu*\ , *intel*\ , *kk*\ , *omp*\ , or *opt* suffix are +functionally the same as the corresponding style without the suffix. +They have been optimized to run faster, depending on your available +hardware, as discussed on the :doc:`Speed packages ` doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. + +These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, +USER-OMP and OPT packages, respectively. They are only enabled if +LAMMPS was built with those packages. See the :doc:`Build package ` doc page for more info. + +You can specify the accelerated styles explicitly in your input script +by including their suffix, or you can use the :doc:`-suffix command-line switch ` when you invoke LAMMPS, or you can use the +:doc:`suffix ` command in your input script. + +See the :doc:`Speed packages ` doc page for more +instructions on how to use the accelerated styles effectively. + + +---------- + + +**Mixing, shift, table, tail correction, restart, rRESPA info**\ : + +For atom type pairs I,J and I != J, the epsilon and sigma coefficients +can be mixed. Careful is required with the cut-off radius. +The default mix value is *geometric*\ . See the "pair\_modify" command +for details. + +The :doc:`pair_modify ` tail option is not relevant +for this pair style as it goes to zero at the cut-off radius. + + +This pair style writes its information to :doc:`binary restart files `, so pair\_style and pair\_coeff commands do not need +to be specified in an input script that reads a restart file. + +This pair style does not support the use of the *inner*\ , *middle*\ , and *outer* +keywords of the :doc:`run_style respa ` command. + + +---------- + + +Restrictions +"""""""""""" +none + +Related commands +"""""""""""""""" + +:doc:`pair_coeff ` + +**Default:** none + + +---------- + +.. _Wang2020: + +**(Wang2020)** X. Wang, S. Ramírez-Hinestrosa, J. Dobnikar, and D. Frenkel, Phys. Chem. Chem. Phys. 22, 10624 (2020). From 4f10ea3ef4ea0dc6277238dfff89d6b021a4fc7e Mon Sep 17 00:00:00 2001 From: Simon_nimbus Date: Thu, 5 Nov 2020 15:24:14 +0000 Subject: [PATCH 03/32] added the pair to the commands --- doc/src/Commands_pair.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/src/Commands_pair.rst b/doc/src/Commands_pair.rst index 70a6fe6e35..6213377102 100644 --- a/doc/src/Commands_pair.rst +++ b/doc/src/Commands_pair.rst @@ -261,6 +261,7 @@ OPT. * :doc:`ufm (got) ` * :doc:`vashishta (gko) ` * :doc:`vashishta/table (o) ` + * :doc:`wf/cut ` * :doc:`yukawa (gko) ` * :doc:`yukawa/colloid (go) ` * :doc:`zbl (gko) ` From 7ad8a9f103e5c3d6cf90167965c6ce43b8698804 Mon Sep 17 00:00:00 2001 From: Simon_nimbus Date: Thu, 5 Nov 2020 15:29:27 +0000 Subject: [PATCH 04/32] Added the pair documentation --- doc/src/{pair_wf.rst => pair_wf_cut.rst} | 52 ++++++++---------------- 1 file changed, 16 insertions(+), 36 deletions(-) rename doc/src/{pair_wf.rst => pair_wf_cut.rst} (52%) diff --git a/doc/src/pair_wf.rst b/doc/src/pair_wf_cut.rst similarity index 52% rename from doc/src/pair_wf.rst rename to doc/src/pair_wf_cut.rst index e8955ebecd..f495ef3b2f 100644 --- a/doc/src/pair_wf.rst +++ b/doc/src/pair_wf_cut.rst @@ -1,6 +1,6 @@ -.. index:: pair_style wf +.. index:: pair_style wf/cut -pair_style wf command +pair_style wf/cut command =========================== Syntax @@ -9,7 +9,7 @@ Syntax .. code-block:: LAMMPS - pair_style wf cutoff + pair_style wf/cut cutoff * cutoff = cutoff for wf interactions (distance units) @@ -19,22 +19,15 @@ Examples .. code-block:: LAMMPS - variable sigma equal 1.0 - variable epsilon equal 1.0 - variable nu equal 1.0 - variable mu equal 1.0 - variable rc equal 2.0*${sigma} - - pair_style wf ${rc} - pair_coeff 1 1 ${epsilon} ${sigma} ${nu} ${mu} ${rc} + pair_style wf/cut 2.0 + pair_coeff 1 1 1.0 1.0 1 1 2.0 Description """"""""""" -The *wf* style computes the potential in :ref:`Wang2020 `, which is given by: +The *wf/cut* (Wang-Frenkel) style computes LJ-like potentials as described in :ref:`Wang2020 `. This potential is by construction finite ranged and it vanishes quadratically at the cutoff distance, avoiding truncation, shifting, interpolation and other typical procedures with the LJ potential. The *wf/cut* can be used when a typical short-ranged potential with attraction is required. The potential is given by which is given by: .. math:: - \phi(r)= \epsilon \alpha \left(\left[{\sigma\over r}\right]^{2\mu} -1 \right)\left(\left[{r_c\over r}\right]^{2\mu}-1\right)^{2\nu} with @@ -49,6 +42,12 @@ and :math:`r_c` is the cutoff. +Comparison of the untruncated Lennard-Jones 12-6 potential (red curve), and the WF potentials with :math:`\mu=1` and :math:`\nu=1` are shown in the figure below. The blue curve has :math:`r_c =2.0` and the green curve has :math:`r_c =1.2` and can be used to describe colloidal interactions. + +.. image:: JPG/WF_LJ.jpg + :align: center + + The following coefficients must be defined for each pair of atoms types via the :doc:`pair_coeff ` command as in the example above, or in the data file or restart files read by the @@ -61,27 +60,8 @@ commands: * :math:`\mu` * :math:`r_c` (distance units) ----------- - - -Styles with a *gpu*\ , *intel*\ , *kk*\ , *omp*\ , or *opt* suffix are -functionally the same as the corresponding style without the suffix. -They have been optimized to run faster, depending on your available -hardware, as discussed on the :doc:`Speed packages ` doc -page. The accelerated styles take the same arguments and should -produce the same results, except for round-off and precision issues. - -These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, -USER-OMP and OPT packages, respectively. They are only enabled if -LAMMPS was built with those packages. See the :doc:`Build package ` doc page for more info. - -You can specify the accelerated styles explicitly in your input script -by including their suffix, or you can use the :doc:`-suffix command-line switch ` when you invoke LAMMPS, or you can use the -:doc:`suffix ` command in your input script. - -See the :doc:`Speed packages ` doc page for more -instructions on how to use the accelerated styles effectively. - +The last coefficient is optional. If not specified, the global cutoff given in the pair_style command is used. +The exponents :math:`\nu` and :math:`\mu` are positive integers, usually set to 1. There is usually little to be gained by choosing other values of :math:`\nu` and :math:`\mu` (See discussion in :ref:`Wang2020 `) ---------- @@ -89,7 +69,7 @@ instructions on how to use the accelerated styles effectively. **Mixing, shift, table, tail correction, restart, rRESPA info**\ : For atom type pairs I,J and I != J, the epsilon and sigma coefficients -can be mixed. Careful is required with the cut-off radius. +can be mixed. The default mix value is *geometric*\ . See the "pair\_modify" command for details. @@ -123,4 +103,4 @@ Related commands .. _Wang2020: -**(Wang2020)** X. Wang, S. Ramírez-Hinestrosa, J. Dobnikar, and D. Frenkel, Phys. Chem. Chem. Phys. 22, 10624 (2020). +**(Wang2020)** X. Wang, S. Ramirez-Hinestrosa, J. Dobnikar, and D. Frenkel, Phys. Chem. Chem. Phys. 22, 10624 (2020). From 30d976d17500422a9397e16711a7696c7696612e Mon Sep 17 00:00:00 2001 From: Simon_nimbus Date: Thu, 5 Nov 2020 15:57:35 +0000 Subject: [PATCH 05/32] added the pair to pairs style doc --- doc/src/pair_style.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/src/pair_style.rst b/doc/src/pair_style.rst index 887840cedf..d68b73ebdf 100644 --- a/doc/src/pair_style.rst +++ b/doc/src/pair_style.rst @@ -325,6 +325,7 @@ accelerated styles exist. * :doc:`ufm ` - * :doc:`vashishta ` - Vashishta 2-body and 3-body potential * :doc:`vashishta/table ` - +* :doc:`wf/cut ` - Wang-Frenkel Potential for short-ranged interactions * :doc:`yukawa ` - Yukawa potential * :doc:`yukawa/colloid ` - screened Yukawa potential for finite-size particles * :doc:`zbl ` - Ziegler-Biersack-Littmark potential From 33881917f7a165c1f23d3368ac5d77a6b5dcb185 Mon Sep 17 00:00:00 2001 From: Simon_nimbus Date: Thu, 5 Nov 2020 15:59:15 +0000 Subject: [PATCH 06/32] Updated the user-misc readme --- src/USER-MISC/README | 1 + 1 file changed, 1 insertion(+) diff --git a/src/USER-MISC/README b/src/USER-MISC/README index f98268762f..21e5d06786 100644 --- a/src/USER-MISC/README +++ b/src/USER-MISC/README @@ -104,5 +104,6 @@ pair_style morse/smooth/linear, Stefan Paquay (TU Eindhoven), stefanpaquay at gm pair_style srp, Tim Sirk, tim.sirk at us.army.mil, 21 Nov 14 pair_style tersoff/table, Luca Ferraro, luca.ferraro@caspur.it, 1 Dec 11 pair_style momb, Kristen Fichthorn, Tonnam Balankura, Ya Zhou, fichthorn@psu.edu, 18 Mar 17 +pair_style wf_cut, Simon Ramirez-Hinestrosa, Xipeng Wang, sr802 at cam.ac.uk, 4 Nov 20 temper/grem, David Stelter, dstelter@bu.edu, 22 Nov 16 temper/npt, Amulya K. Pervaje, Cody K. Addington, amulyapervaje@gmail.com , 31 Aug 17 From 129807cb7aed599f657f177e81d4c46677c11da0 Mon Sep 17 00:00:00 2001 From: Simon_nimbus Date: Thu, 5 Nov 2020 16:03:38 +0000 Subject: [PATCH 07/32] created the pair style files --- src/USER-MISC/pair_wf_cut.cpp | 403 ++++++++++++++++++++++++++++++++++ src/USER-MISC/pair_wf_cut.h | 77 +++++++ 2 files changed, 480 insertions(+) create mode 100644 src/USER-MISC/pair_wf_cut.cpp create mode 100644 src/USER-MISC/pair_wf_cut.h diff --git a/src/USER-MISC/pair_wf_cut.cpp b/src/USER-MISC/pair_wf_cut.cpp new file mode 100644 index 0000000000..2ca8ba4248 --- /dev/null +++ b/src/USER-MISC/pair_wf_cut.cpp @@ -0,0 +1,403 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + Contributing Author: Xipeng Wang, Simon Ramirez-Hinestrosa +------------------------------------------------------------------------- */ + +#include +#include +#include +#include +#include "pair_wf_cut.h" +#include "atom.h" +#include "comm.h" +#include "force.h" +#include "neigh_list.h" +#include "math_const.h" +#include "memory.h" +#include "error.h" + +using namespace LAMMPS_NS; +using namespace MathConst; + +/* ---------------------------------------------------------------------- */ + +PairWFCut::PairWFCut(LAMMPS *lmp) : Pair(lmp) +{ + writedata = 1; +} + +/* ---------------------------------------------------------------------- */ + +PairWFCut::~PairWFCut() +{ + if (allocated) { + memory->destroy(setflag); + memory->destroy(cutsq); + memory->destroy(cut); + memory->destroy(epsilon); + memory->destroy(sigma); + memory->destroy(nu); + memory->destroy(mu); + memory->destroy(nm); + memory->destroy(e0nm); //Alpha * epsilon + memory->destroy(rcmu); + memory->destroy(sigma_mu); + memory->destroy(offset); + } +} + +/* ---------------------------------------------------------------------- */ + +void PairWFCut::compute(int eflag, int vflag) +{ + int i,j,ii,jj,inum,jnum,itype,jtype; + double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair; + double rsq,r2inv,factor_lj; + double r,forcenm,rminv, rm, rn; + int *ilist,*jlist,*numneigh,**firstneigh; + + evdwl = 0.0; + if (eflag || vflag) ev_setup(eflag,vflag); + else evflag = vflag_fdotr = 0; + + double **x = atom->x; + double **f = atom->f; + int *type = atom->type; + int nlocal = atom->nlocal; + double *special_lj = force->special_lj; + int newton_pair = force->newton_pair; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + // loop over neighbors of my atoms + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + itype = type[i]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + factor_lj = special_lj[sbmask(j)]; + j &= NEIGHMASK; + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; + jtype = type[j]; + + if (rsq < cutsq[itype][jtype]) { + r2inv = 1.0/rsq; + r = sqrt(rsq); + rminv = pow(r2inv,mu[itype][jtype]); + rm = sigma_mu[itype][jtype]*rminv - 1.0; + rn = rcmu[itype][jtype]*rminv - 1.0; + + forcenm = 2.0*mu[itype][jtype] *sigma_mu[itype][jtype]*pow(rn,2.0*nu[itype][jtype]) + + 4.0*nm[itype][jtype] *rcmu[itype][jtype]*rm*pow(rn,2.0*nu[itype][jtype]-1.0); + fpair = factor_lj*e0nm[itype][jtype]*forcenm*pow(r2inv,mu[itype][jtype]+1.0); + + f[i][0] += delx*fpair; + f[i][1] += dely*fpair; + f[i][2] += delz*fpair; + if (newton_pair || j < nlocal) { + f[j][0] -= delx*fpair; + f[j][1] -= dely*fpair; + f[j][2] -= delz*fpair; + } + + if (eflag) { + evdwl = e0nm[itype][jtype] * + (rm*pow(rn,2.0*nu[itype][jtype])) - offset[itype][jtype]; + evdwl *= factor_lj; + } + + if (evflag) ev_tally(i,j,nlocal,newton_pair, + evdwl,0.0,fpair,delx,dely,delz); + } + } + } + + if (vflag_fdotr) virial_fdotr_compute(); +} + +/* ---------------------------------------------------------------------- + allocate all arrays +------------------------------------------------------------------------- */ + +void PairWFCut::allocate() +{ + allocated = 1; + int n = atom->ntypes; + + memory->create(setflag,n+1,n+1,"pair:setflag"); + for (int i = 1; i <= n; i++) + for (int j = i; j <= n; j++) + setflag[i][j] = 0; + + memory->create(cutsq,n+1,n+1,"pair:cutsq"); + + memory->create(cut,n+1,n+1,"pair:cut"); + memory->create(epsilon,n+1,n+1,"pair:epsilon"); + memory->create(sigma,n+1,n+1,"pair:sigma"); + memory->create(nu,n+1,n+1,"pair:nu"); + memory->create(mu,n+1,n+1,"pair:mu"); + memory->create(nm,n+1,n+1,"pair:nm"); + memory->create(e0nm,n+1,n+1,"pair:e0nm"); + memory->create(rcmu,n+1,n+1,"pair:rcmu"); + memory->create(sigma_mu,n+1,n+1,"pair:sigma_mu"); + memory->create(offset,n+1,n+1,"pair:offset"); +} + +/* ---------------------------------------------------------------------- + global settings +------------------------------------------------------------------------- */ + +void PairWFCut::settings(int narg, char **arg) +{ + if (narg != 1) error->all(FLERR,"Illegal pair_style command"); + + cut_global = utils::numeric(FLERR,arg[0],false,lmp); + + // reset cutoffs that have been explicitly set + + if (allocated) { + int i,j; + for (i = 1; i <= atom->ntypes; i++) + for (j = i; j <= atom->ntypes; j++) + if (setflag[i][j]) cut[i][j] = cut_global; + } +} + +/* ---------------------------------------------------------------------- + set coeffs for one or more type pairs +------------------------------------------------------------------------- */ + +void PairWFCut::coeff(int narg, char **arg) +{ + if (narg < 6 || narg > 7) + error->all(FLERR,"Incorrect args for pair coefficients"); + if (!allocated) allocate(); + + int ilo,ihi,jlo,jhi; + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); + + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); + int nu_one = utils::numeric(FLERR,arg[4],false,lmp); + int mu_one = utils::numeric(FLERR,arg[5],false,lmp); + + double cut_one = cut_global; + if (narg == 7) cut_one = utils::numeric(FLERR,arg[6],false,lmp); + + int count = 0; + for (int i = ilo; i <= ihi; i++) { + for (int j = MAX(jlo,i); j <= jhi; j++) { + epsilon[i][j] = epsilon_one; + sigma[i][j] = sigma_one; + nu[i][j] = nu_one; + mu[i][j] = mu_one; + cut[i][j] = cut_one; + setflag[i][j] = 1; + count++; + } + } + + if (count == 0) error->all(FLERR,"Incorrect args for pair coefficients"); +} + +/* ---------------------------------------------------------------------- + init for one type pair i,j and corresponding j,i +------------------------------------------------------------------------- */ + +double PairWFCut::init_one(int i, int j) +{ + if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); + + nm[i][j] = nu[i][j]*mu[i][j]; + e0nm[i][j] = epsilon[i][j]*2.0*nu[i][j]*pow(cut[i][j]/sigma[i][j],2.0*mu[i][j]) + *pow((1+2.0*nu[i][j])/(2.0*nu[i][j])/(pow(cut[i][j]/sigma[i][j],2.0*mu[i][j])-1.0), + 2.0*nu[i][j]+1.0); + rcmu[i][j] = pow(cut[i][j],2.0*mu[i][j]); + sigma_mu[i][j] = pow(sigma[i][j], 2.0*mu[i][j]); + + if (offset_flag && (cut[i][j] > 0.0)) { + offset[i][j] = 0.0; + } else offset[i][j] = 0.0; + + epsilon[j][i] = epsilon[i][j]; + nu[j][i] = nu[i][j]; + mu[j][i] = mu[i][j]; + nm[j][i] = nm[i][j]; + sigma[j][i] = sigma[i][j]; + e0nm[j][i] = e0nm[i][j]; + rcmu[j][i] = rcmu[i][j]; + sigma_mu[j][i] = sigma_mu[i][j]; + offset[j][i] = offset[i][j]; + + return cut[i][j]; +} + +/* ---------------------------------------------------------------------- + proc 0 writes to restart file +------------------------------------------------------------------------- */ + +void PairWFCut::write_restart(FILE *fp) +{ + write_restart_settings(fp); + + int i,j; + for (i = 1; i <= atom->ntypes; i++) + for (j = i; j <= atom->ntypes; j++) { + fwrite(&setflag[i][j],sizeof(int),1,fp); + if (setflag[i][j]) { + fwrite(&epsilon[i][j],sizeof(double),1,fp); + fwrite(&sigma[i][j],sizeof(double),1,fp); + fwrite(&nu[i][j],sizeof(double),1,fp); + fwrite(&mu[i][j],sizeof(double),1,fp); + fwrite(&cut[i][j],sizeof(double),1,fp); + } + } +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts +------------------------------------------------------------------------- */ + +void PairWFCut::read_restart(FILE *fp) +{ + read_restart_settings(fp); + allocate(); + + int i,j; + int me = comm->me; + for (i = 1; i <= atom->ntypes; i++) + for (j = i; j <= atom->ntypes; j++) { + if (me == 0) fread(&setflag[i][j],sizeof(int),1,fp); + MPI_Bcast(&setflag[i][j],1,MPI_INT,0,world); + if (setflag[i][j]) { + if (me == 0) { + fread(&epsilon[i][j],sizeof(double),1,fp); + fread(&sigma[i][j],sizeof(double),1,fp); + fread(&nu[i][j],sizeof(double),1,fp); + fread(&mu[i][j],sizeof(double),1,fp); + fread(&cut[i][j],sizeof(double),1,fp); + } + MPI_Bcast(&epsilon[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&sigma[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&nu[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&mu[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&cut[i][j],1,MPI_DOUBLE,0,world); + } + } +} + +/* ---------------------------------------------------------------------- + proc 0 writes to restart file +------------------------------------------------------------------------- */ + +void PairWFCut::write_restart_settings(FILE *fp) +{ + fwrite(&cut_global,sizeof(double),1,fp); + fwrite(&offset_flag,sizeof(int),1,fp); + fwrite(&mix_flag,sizeof(int),1,fp); +// fwrite(&tail_flag,sizeof(int),1,fp); +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts +------------------------------------------------------------------------- */ + +void PairWFCut::read_restart_settings(FILE *fp) +{ + if (comm->me == 0) { + fread(&cut_global,sizeof(double),1,fp); + fread(&offset_flag,sizeof(int),1,fp); + fread(&mix_flag,sizeof(int),1,fp); +// fread(&tail_flag,sizeof(int),1,fp); + } + MPI_Bcast(&cut_global,1,MPI_DOUBLE,0,world); + MPI_Bcast(&offset_flag,1,MPI_INT,0,world); + MPI_Bcast(&mix_flag,1,MPI_INT,0,world); +// MPI_Bcast(&tail_flag,1,MPI_INT,0,world); +} + +/* ---------------------------------------------------------------------- + proc 0 writes to data file +------------------------------------------------------------------------- */ + +void PairWFCut::write_data(FILE *fp) +{ + for (int i = 1; i <= atom->ntypes; i++) + fprintf(fp,"%d %g %g %g %g\n",i,epsilon[i][i],sigma[i][i],nu[i][i],mu[i][i]); +} + +/* ---------------------------------------------------------------------- + proc 0 writes all pairs to data file +------------------------------------------------------------------------- */ + +void PairWFCut::write_data_all(FILE *fp) +{ + for (int i = 1; i <= atom->ntypes; i++) + for (int j = i; j <= atom->ntypes; j++) + fprintf(fp,"%d %d %g %g %g %g %g\n",i,j, + epsilon[i][j],sigma[i][j],nu[i][j],mu[i][j],cut[i][j]); +} + +/* ---------------------------------------------------------------------- */ + +double PairWFCut::single(int /*i*/, int /*j*/, int itype, int jtype, + double rsq, double /*factor_coul*/, double factor_lj, + double &fforce) +{ + double r2inv,r, rminv, rm, rn, forcenm,phinm; + + r2inv = 1.0/rsq; + r = sqrt(rsq); + + r2inv = 1.0/rsq; + r = sqrt(rsq); + rminv = pow(r2inv,mu[itype][jtype]); + rm = sigma_mu[itype][jtype]*rminv - 1.0; + rn = rcmu[itype][jtype]*rminv - 1.0; + forcenm = 2.0*mu[itype][jtype] *sigma_mu[itype][jtype]*pow(rn,2.0*nu[itype][jtype]) + + 4.0*nm[itype][jtype] *rcmu[itype][jtype]*rm*pow(rn,2.0*nu[itype][jtype]-1.0); + fforce = factor_lj*e0nm[itype][jtype]*forcenm*pow(r2inv,mu[itype][jtype]+1.0); + + phinm = e0nm[itype][jtype] * rm*pow(rn,2.0*nu[itype][jtype]) - + offset[itype][jtype]; + return factor_lj*phinm; +} + +/* ---------------------------------------------------------------------- */ + +void *PairWFCut::extract(const char *str, int &dim) +{ + dim = 2; + if (strcmp(str,"epsilon") == 0) return (void *) epsilon; + if (strcmp(str,"sigma") == 0) return (void *) sigma; + if (strcmp(str,"nu") == 0) return (void *) nu; + if (strcmp(str,"mu") == 0) return (void *) mu; + return NULL; +} diff --git a/src/USER-MISC/pair_wf_cut.h b/src/USER-MISC/pair_wf_cut.h new file mode 100644 index 0000000000..c2a6b4ba0e --- /dev/null +++ b/src/USER-MISC/pair_wf_cut.h @@ -0,0 +1,77 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifdef PAIR_CLASS + +PairStyle(wf/cut,PairWFCut) + +#else + +#ifndef LMP_PAIR_WF +#define LMP_PAIR_WF + +#include "pair.h" + +namespace LAMMPS_NS { + +class PairWFCut : public Pair { + public: + PairWFCut(class LAMMPS *); + virtual ~PairWFCut(); + + virtual void compute(int, int); + void settings(int, char **); + void coeff(int, char **); + double init_one(int, int); + void write_restart(FILE *); + void read_restart(FILE *); + void write_restart_settings(FILE *); + void read_restart_settings(FILE *); + void write_data(FILE *); + void write_data_all(FILE *); + double single(int, int, int, int, double, double, double, double &); + void *extract(const char *, int &); + + protected: + int **nu,**mu; + double cut_global; + double **cut; + double **epsilon,**sigma; + double **nm,**e0nm,**rcmu,**sigma_mu,**offset; + + void allocate(); +}; + +} + +#endif +#endif + +/* ERROR/WARNING messages: + +E: Illegal ... command + +Self-explanatory. Check the input script syntax and compare to the +documentation for the command. You can use -echo screen as a +command-line option when running LAMMPS to see the offending line. + +E: Incorrect args for pair coefficients + +Self-explanatory. Check the input script or data file. + +E: All pair coeffs are not set + +All pair coefficients must be set in the data file or by the +pair_coeff command before running a simulation. + +*/ From 24aafc024b48eba9441989f443f0a132bfc3517f Mon Sep 17 00:00:00 2001 From: Simon_nimbus Date: Thu, 5 Nov 2020 16:26:45 +0000 Subject: [PATCH 08/32] moved the potential to user-misc --- src/pair_wf.cpp | 403 ------------------------------------------------ src/pair_wf.h | 76 --------- 2 files changed, 479 deletions(-) delete mode 100644 src/pair_wf.cpp delete mode 100644 src/pair_wf.h diff --git a/src/pair_wf.cpp b/src/pair_wf.cpp deleted file mode 100644 index 00f3ad5aba..0000000000 --- a/src/pair_wf.cpp +++ /dev/null @@ -1,403 +0,0 @@ -/* ---------------------------------------------------------------------- - LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator - http://lammps.sandia.gov, Sandia National Laboratories - Steve Plimpton, sjplimp@sandia.gov - - Copyright (2003) Sandia Corporation. Under the terms of Contract - DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains - certain rights in this software. This software is distributed under - the GNU General Public License. - - See the README file in the top-level LAMMPS directory. -------------------------------------------------------------------------- */ - -/* ---------------------------------------------------------------------- - Contributing Authors: Xipeng Wang, Simon Ramirez-Hinestrosa -------------------------------------------------------------------------- */ - -#include -#include -#include -#include -#include "pair_wf.h" -#include "atom.h" -#include "comm.h" -#include "force.h" -#include "neigh_list.h" -#include "math_const.h" -#include "memory.h" -#include "error.h" - -using namespace LAMMPS_NS; -using namespace MathConst; - -/* ---------------------------------------------------------------------- */ - -PairWF::PairWF(LAMMPS *lmp) : Pair(lmp) -{ - writedata = 1; -} - -/* ---------------------------------------------------------------------- */ - -PairWF::~PairWF() -{ - if (allocated) { - memory->destroy(setflag); - memory->destroy(cutsq); - memory->destroy(cut); - memory->destroy(epsilon); - memory->destroy(sigma); - memory->destroy(nu); - memory->destroy(mu); - memory->destroy(nm); - memory->destroy(e0nm); //Alpha * epsilon - memory->destroy(rcmu); - memory->destroy(sigma_mu); - memory->destroy(offset); - } -} - -/* ---------------------------------------------------------------------- */ - -void PairWF::compute(int eflag, int vflag) -{ - int i,j,ii,jj,inum,jnum,itype,jtype; - double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair; - double rsq,r2inv,factor_lj; - double r,forcenm,rminv, rm, rn; - int *ilist,*jlist,*numneigh,**firstneigh; - - evdwl = 0.0; - if (eflag || vflag) ev_setup(eflag,vflag); - else evflag = vflag_fdotr = 0; - - double **x = atom->x; - double **f = atom->f; - int *type = atom->type; - int nlocal = atom->nlocal; - double *special_lj = force->special_lj; - int newton_pair = force->newton_pair; - - inum = list->inum; - ilist = list->ilist; - numneigh = list->numneigh; - firstneigh = list->firstneigh; - - // loop over neighbors of my atoms - - for (ii = 0; ii < inum; ii++) { - i = ilist[ii]; - xtmp = x[i][0]; - ytmp = x[i][1]; - ztmp = x[i][2]; - itype = type[i]; - jlist = firstneigh[i]; - jnum = numneigh[i]; - - for (jj = 0; jj < jnum; jj++) { - j = jlist[jj]; - factor_lj = special_lj[sbmask(j)]; - j &= NEIGHMASK; - - delx = xtmp - x[j][0]; - dely = ytmp - x[j][1]; - delz = ztmp - x[j][2]; - rsq = delx*delx + dely*dely + delz*delz; - jtype = type[j]; - - if (rsq < cutsq[itype][jtype]) { - r2inv = 1.0/rsq; - r = sqrt(rsq); - rminv = pow(r2inv,mu[itype][jtype]); - rm = sigma_mu[itype][jtype]*rminv - 1.0; - rn = rcmu[itype][jtype]*rminv - 1.0; - - forcenm = 2.0*mu[itype][jtype] *sigma_mu[itype][jtype]*pow(rn,2.0*nu[itype][jtype]) - + 4.0*nm[itype][jtype] *rcmu[itype][jtype]*rm*pow(rn,2.0*nu[itype][jtype]-1.0); - fpair = factor_lj*e0nm[itype][jtype]*forcenm*pow(r2inv,mu[itype][jtype]+1.0); - - f[i][0] += delx*fpair; - f[i][1] += dely*fpair; - f[i][2] += delz*fpair; - if (newton_pair || j < nlocal) { - f[j][0] -= delx*fpair; - f[j][1] -= dely*fpair; - f[j][2] -= delz*fpair; - } - - if (eflag) { - evdwl = e0nm[itype][jtype] * - (rm*pow(rn,2.0*nu[itype][jtype])) - offset[itype][jtype]; - evdwl *= factor_lj; - } - - if (evflag) ev_tally(i,j,nlocal,newton_pair, - evdwl,0.0,fpair,delx,dely,delz); - } - } - } - - if (vflag_fdotr) virial_fdotr_compute(); -} - -/* ---------------------------------------------------------------------- - allocate all arrays -------------------------------------------------------------------------- */ - -void PairWF::allocate() -{ - allocated = 1; - int n = atom->ntypes; - - memory->create(setflag,n+1,n+1,"pair:setflag"); - for (int i = 1; i <= n; i++) - for (int j = i; j <= n; j++) - setflag[i][j] = 0; - - memory->create(cutsq,n+1,n+1,"pair:cutsq"); - - memory->create(cut,n+1,n+1,"pair:cut"); - memory->create(epsilon,n+1,n+1,"pair:epsilon"); - memory->create(sigma,n+1,n+1,"pair:sigma"); - memory->create(nu,n+1,n+1,"pair:nu"); - memory->create(mu,n+1,n+1,"pair:mu"); - memory->create(nm,n+1,n+1,"pair:nm"); - memory->create(e0nm,n+1,n+1,"pair:e0nm"); - memory->create(rcmu,n+1,n+1,"pair:rcmu"); - memory->create(sigma_mu,n+1,n+1,"pair:sigma_mu"); - memory->create(offset,n+1,n+1,"pair:offset"); -} - -/* ---------------------------------------------------------------------- - global settings -------------------------------------------------------------------------- */ - -void PairWF::settings(int narg, char **arg) -{ - if (narg != 1) error->all(FLERR,"Illegal pair_style command"); - - cut_global = force->numeric(FLERR,arg[0]); - - // reset cutoffs that have been explicitly set - - if (allocated) { - int i,j; - for (i = 1; i <= atom->ntypes; i++) - for (j = i; j <= atom->ntypes; j++) - if (setflag[i][j]) cut[i][j] = cut_global; - } -} - -/* ---------------------------------------------------------------------- - set coeffs for one or more type pairs -------------------------------------------------------------------------- */ - -void PairWF::coeff(int narg, char **arg) -{ - if (narg < 6 || narg > 7) - error->all(FLERR,"Incorrect args for pair coefficients"); - if (!allocated) allocate(); - - int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); - - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); - double nu_one = force->numeric(FLERR,arg[4]); - double mu_one = force->numeric(FLERR,arg[5]); - - double cut_one = cut_global; - if (narg == 7) cut_one = force->numeric(FLERR,arg[6]); - - int count = 0; - for (int i = ilo; i <= ihi; i++) { - for (int j = MAX(jlo,i); j <= jhi; j++) { - epsilon[i][j] = epsilon_one; - sigma[i][j] = sigma_one; - nu[i][j] = nu_one; - mu[i][j] = mu_one; - cut[i][j] = cut_one; - setflag[i][j] = 1; - count++; - } - } - - if (count == 0) error->all(FLERR,"Incorrect args for pair coefficients"); -} - -/* ---------------------------------------------------------------------- - init for one type pair i,j and corresponding j,i -------------------------------------------------------------------------- */ - -double PairWF::init_one(int i, int j) -{ - if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); - - nm[i][j] = nu[i][j]*mu[i][j]; - e0nm[i][j] = epsilon[i][j]*2.0*nu[i][j]*pow(cut[i][j]/sigma[i][j],2.0*mu[i][j]) - *pow((1+2.0*nu[i][j])/(2.0*nu[i][j])/(pow(cut[i][j]/sigma[i][j],2.0*mu[i][j])-1.0), - 2.0*nu[i][j]+1.0); - rcmu[i][j] = pow(cut[i][j],2.0*mu[i][j]); - sigma_mu[i][j] = pow(sigma[i][j], 2.0*mu[i][j]); - - if (offset_flag && (cut[i][j] > 0.0)) { - offset[i][j] = 0.0; - } else offset[i][j] = 0.0; - - epsilon[j][i] = epsilon[i][j]; - nu[j][i] = nu[i][j]; - mu[j][i] = mu[i][j]; - nm[j][i] = nm[i][j]; - sigma[j][i] = sigma[i][j]; - e0nm[j][i] = e0nm[i][j]; - rcmu[j][i] = rcmu[i][j]; - sigma_mu[j][i] = sigma_mu[i][j]; - offset[j][i] = offset[i][j]; - - return cut[i][j]; -} - -/* ---------------------------------------------------------------------- - proc 0 writes to restart file -------------------------------------------------------------------------- */ - -void PairWF::write_restart(FILE *fp) -{ - write_restart_settings(fp); - - int i,j; - for (i = 1; i <= atom->ntypes; i++) - for (j = i; j <= atom->ntypes; j++) { - fwrite(&setflag[i][j],sizeof(int),1,fp); - if (setflag[i][j]) { - fwrite(&epsilon[i][j],sizeof(double),1,fp); - fwrite(&sigma[i][j],sizeof(double),1,fp); - fwrite(&nu[i][j],sizeof(double),1,fp); - fwrite(&mu[i][j],sizeof(double),1,fp); - fwrite(&cut[i][j],sizeof(double),1,fp); - } - } -} - -/* ---------------------------------------------------------------------- - proc 0 reads from restart file, bcasts -------------------------------------------------------------------------- */ - -void PairWF::read_restart(FILE *fp) -{ - read_restart_settings(fp); - allocate(); - - int i,j; - int me = comm->me; - for (i = 1; i <= atom->ntypes; i++) - for (j = i; j <= atom->ntypes; j++) { - if (me == 0) fread(&setflag[i][j],sizeof(int),1,fp); - MPI_Bcast(&setflag[i][j],1,MPI_INT,0,world); - if (setflag[i][j]) { - if (me == 0) { - fread(&epsilon[i][j],sizeof(double),1,fp); - fread(&sigma[i][j],sizeof(double),1,fp); - fread(&nu[i][j],sizeof(double),1,fp); - fread(&mu[i][j],sizeof(double),1,fp); - fread(&cut[i][j],sizeof(double),1,fp); - } - MPI_Bcast(&epsilon[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&sigma[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&nu[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&mu[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&cut[i][j],1,MPI_DOUBLE,0,world); - } - } -} - -/* ---------------------------------------------------------------------- - proc 0 writes to restart file -------------------------------------------------------------------------- */ - -void PairWF::write_restart_settings(FILE *fp) -{ - fwrite(&cut_global,sizeof(double),1,fp); - fwrite(&offset_flag,sizeof(int),1,fp); - fwrite(&mix_flag,sizeof(int),1,fp); -// fwrite(&tail_flag,sizeof(int),1,fp); -} - -/* ---------------------------------------------------------------------- - proc 0 reads from restart file, bcasts -------------------------------------------------------------------------- */ - -void PairWF::read_restart_settings(FILE *fp) -{ - if (comm->me == 0) { - fread(&cut_global,sizeof(double),1,fp); - fread(&offset_flag,sizeof(int),1,fp); - fread(&mix_flag,sizeof(int),1,fp); -// fread(&tail_flag,sizeof(int),1,fp); - } - MPI_Bcast(&cut_global,1,MPI_DOUBLE,0,world); - MPI_Bcast(&offset_flag,1,MPI_INT,0,world); - MPI_Bcast(&mix_flag,1,MPI_INT,0,world); -// MPI_Bcast(&tail_flag,1,MPI_INT,0,world); -} - -/* ---------------------------------------------------------------------- - proc 0 writes to data file -------------------------------------------------------------------------- */ - -void PairWF::write_data(FILE *fp) -{ - for (int i = 1; i <= atom->ntypes; i++) - fprintf(fp,"%d %g %g %g %g\n",i,epsilon[i][i],sigma[i][i],nu[i][i],mu[i][i]); -} - -/* ---------------------------------------------------------------------- - proc 0 writes all pairs to data file -------------------------------------------------------------------------- */ - -void PairWF::write_data_all(FILE *fp) -{ - for (int i = 1; i <= atom->ntypes; i++) - for (int j = i; j <= atom->ntypes; j++) - fprintf(fp,"%d %d %g %g %g %g %g\n",i,j, - epsilon[i][j],sigma[i][j],nu[i][j],mu[i][j],cut[i][j]); -} - -/* ---------------------------------------------------------------------- */ - -double PairWF::single(int /*i*/, int /*j*/, int itype, int jtype, - double rsq, double /*factor_coul*/, double factor_lj, - double &fforce) -{ - double r2inv,r, rminv, rm, rn, forcenm,phinm; - - r2inv = 1.0/rsq; - r = sqrt(rsq); - - r2inv = 1.0/rsq; - r = sqrt(rsq); - rminv = pow(r2inv,mu[itype][jtype]); - rm = sigma_mu[itype][jtype]*rminv - 1.0; - rn = rcmu[itype][jtype]*rminv - 1.0; - forcenm = 2.0*mu[itype][jtype] *sigma_mu[itype][jtype]*pow(rn,2.0*nu[itype][jtype]) - + 4.0*nm[itype][jtype] *rcmu[itype][jtype]*rm*pow(rn,2.0*nu[itype][jtype]-1.0); - fforce = factor_lj*e0nm[itype][jtype]*forcenm*pow(r2inv,mu[itype][jtype]+1.0); - - phinm = e0nm[itype][jtype] * rm*pow(rn,2.0*nu[itype][jtype]) - - offset[itype][jtype]; - return factor_lj*phinm; -} - -/* ---------------------------------------------------------------------- */ - -void *PairWF::extract(const char *str, int &dim) -{ - dim = 2; - if (strcmp(str,"epsilon") == 0) return (void *) epsilon; - if (strcmp(str,"sigma") == 0) return (void *) sigma; - if (strcmp(str,"nu") == 0) return (void *) nu; - if (strcmp(str,"mu") == 0) return (void *) mu; - return NULL; -} diff --git a/src/pair_wf.h b/src/pair_wf.h deleted file mode 100644 index e4254f4ccf..0000000000 --- a/src/pair_wf.h +++ /dev/null @@ -1,76 +0,0 @@ -/* -*- c++ -*- ---------------------------------------------------------- - LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator - http://lammps.sandia.gov, Sandia National Laboratories - Steve Plimpton, sjplimp@sandia.gov - - Copyright (2003) Sandia Corporation. Under the terms of Contract - DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains - certain rights in this software. This software is distributed under - the GNU General Public License. - - See the README file in the top-level LAMMPS directory. -------------------------------------------------------------------------- */ - -#ifdef PAIR_CLASS - -PairStyle(wf,PairWF) - -#else - -#ifndef LMP_PAIR_WF -#define LMP_PAIR_WF - -#include "pair.h" - -namespace LAMMPS_NS { - -class PairWF : public Pair { - public: - PairWF(class LAMMPS *); - virtual ~PairWF(); - - virtual void compute(int, int); - void settings(int, char **); - void coeff(int, char **); - double init_one(int, int); - void write_restart(FILE *); - void read_restart(FILE *); - void write_restart_settings(FILE *); - void read_restart_settings(FILE *); - void write_data(FILE *); - void write_data_all(FILE *); - double single(int, int, int, int, double, double, double, double &); - void *extract(const char *, int &); - - protected: - double cut_global; - double **cut; - double **epsilon,**sigma,**nu, **mu; - double **nm,**e0nm,**rcmu,**sigma_mu,**offset; - - void allocate(); -}; - -} - -#endif -#endif - -/* ERROR/WARNING messages: - -E: Illegal ... command - -Self-explanatory. Check the input script syntax and compare to the -documentation for the command. You can use -echo screen as a -command-line option when running LAMMPS to see the offending line. - -E: Incorrect args for pair coefficients - -Self-explanatory. Check the input script or data file. - -E: All pair coeffs are not set - -All pair coefficients must be set in the data file or by the -pair_coeff command before running a simulation. - -*/ From 207831d7a0a40d6a0ed601fef37d36f1a3701ff6 Mon Sep 17 00:00:00 2001 From: Simon_nimbus Date: Thu, 5 Nov 2020 19:50:54 +0000 Subject: [PATCH 09/32] corrected mistake with the link --- doc/src/pair_style.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/pair_style.rst b/doc/src/pair_style.rst index d68b73ebdf..14e5f6a19f 100644 --- a/doc/src/pair_style.rst +++ b/doc/src/pair_style.rst @@ -325,7 +325,7 @@ accelerated styles exist. * :doc:`ufm ` - * :doc:`vashishta ` - Vashishta 2-body and 3-body potential * :doc:`vashishta/table ` - -* :doc:`wf/cut ` - Wang-Frenkel Potential for short-ranged interactions +* :doc:`wf/cut ` - Wang-Frenkel Potential for short-ranged interactions * :doc:`yukawa ` - Yukawa potential * :doc:`yukawa/colloid ` - screened Yukawa potential for finite-size particles * :doc:`zbl ` - Ziegler-Biersack-Littmark potential From 09f6d1fa57f08813216e70036acaa575955ffd3f Mon Sep 17 00:00:00 2001 From: Simon_nimbus Date: Tue, 20 Oct 2020 11:50:57 +0100 Subject: [PATCH 10/32] added the pair files --- src/pair_wf.cpp | 403 ++++++++++++++++++++++++++++++++++++++++++++++++ src/pair_wf.h | 76 +++++++++ 2 files changed, 479 insertions(+) create mode 100644 src/pair_wf.cpp create mode 100644 src/pair_wf.h diff --git a/src/pair_wf.cpp b/src/pair_wf.cpp new file mode 100644 index 0000000000..00f3ad5aba --- /dev/null +++ b/src/pair_wf.cpp @@ -0,0 +1,403 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + Contributing Authors: Xipeng Wang, Simon Ramirez-Hinestrosa +------------------------------------------------------------------------- */ + +#include +#include +#include +#include +#include "pair_wf.h" +#include "atom.h" +#include "comm.h" +#include "force.h" +#include "neigh_list.h" +#include "math_const.h" +#include "memory.h" +#include "error.h" + +using namespace LAMMPS_NS; +using namespace MathConst; + +/* ---------------------------------------------------------------------- */ + +PairWF::PairWF(LAMMPS *lmp) : Pair(lmp) +{ + writedata = 1; +} + +/* ---------------------------------------------------------------------- */ + +PairWF::~PairWF() +{ + if (allocated) { + memory->destroy(setflag); + memory->destroy(cutsq); + memory->destroy(cut); + memory->destroy(epsilon); + memory->destroy(sigma); + memory->destroy(nu); + memory->destroy(mu); + memory->destroy(nm); + memory->destroy(e0nm); //Alpha * epsilon + memory->destroy(rcmu); + memory->destroy(sigma_mu); + memory->destroy(offset); + } +} + +/* ---------------------------------------------------------------------- */ + +void PairWF::compute(int eflag, int vflag) +{ + int i,j,ii,jj,inum,jnum,itype,jtype; + double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair; + double rsq,r2inv,factor_lj; + double r,forcenm,rminv, rm, rn; + int *ilist,*jlist,*numneigh,**firstneigh; + + evdwl = 0.0; + if (eflag || vflag) ev_setup(eflag,vflag); + else evflag = vflag_fdotr = 0; + + double **x = atom->x; + double **f = atom->f; + int *type = atom->type; + int nlocal = atom->nlocal; + double *special_lj = force->special_lj; + int newton_pair = force->newton_pair; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + // loop over neighbors of my atoms + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + itype = type[i]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + factor_lj = special_lj[sbmask(j)]; + j &= NEIGHMASK; + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; + jtype = type[j]; + + if (rsq < cutsq[itype][jtype]) { + r2inv = 1.0/rsq; + r = sqrt(rsq); + rminv = pow(r2inv,mu[itype][jtype]); + rm = sigma_mu[itype][jtype]*rminv - 1.0; + rn = rcmu[itype][jtype]*rminv - 1.0; + + forcenm = 2.0*mu[itype][jtype] *sigma_mu[itype][jtype]*pow(rn,2.0*nu[itype][jtype]) + + 4.0*nm[itype][jtype] *rcmu[itype][jtype]*rm*pow(rn,2.0*nu[itype][jtype]-1.0); + fpair = factor_lj*e0nm[itype][jtype]*forcenm*pow(r2inv,mu[itype][jtype]+1.0); + + f[i][0] += delx*fpair; + f[i][1] += dely*fpair; + f[i][2] += delz*fpair; + if (newton_pair || j < nlocal) { + f[j][0] -= delx*fpair; + f[j][1] -= dely*fpair; + f[j][2] -= delz*fpair; + } + + if (eflag) { + evdwl = e0nm[itype][jtype] * + (rm*pow(rn,2.0*nu[itype][jtype])) - offset[itype][jtype]; + evdwl *= factor_lj; + } + + if (evflag) ev_tally(i,j,nlocal,newton_pair, + evdwl,0.0,fpair,delx,dely,delz); + } + } + } + + if (vflag_fdotr) virial_fdotr_compute(); +} + +/* ---------------------------------------------------------------------- + allocate all arrays +------------------------------------------------------------------------- */ + +void PairWF::allocate() +{ + allocated = 1; + int n = atom->ntypes; + + memory->create(setflag,n+1,n+1,"pair:setflag"); + for (int i = 1; i <= n; i++) + for (int j = i; j <= n; j++) + setflag[i][j] = 0; + + memory->create(cutsq,n+1,n+1,"pair:cutsq"); + + memory->create(cut,n+1,n+1,"pair:cut"); + memory->create(epsilon,n+1,n+1,"pair:epsilon"); + memory->create(sigma,n+1,n+1,"pair:sigma"); + memory->create(nu,n+1,n+1,"pair:nu"); + memory->create(mu,n+1,n+1,"pair:mu"); + memory->create(nm,n+1,n+1,"pair:nm"); + memory->create(e0nm,n+1,n+1,"pair:e0nm"); + memory->create(rcmu,n+1,n+1,"pair:rcmu"); + memory->create(sigma_mu,n+1,n+1,"pair:sigma_mu"); + memory->create(offset,n+1,n+1,"pair:offset"); +} + +/* ---------------------------------------------------------------------- + global settings +------------------------------------------------------------------------- */ + +void PairWF::settings(int narg, char **arg) +{ + if (narg != 1) error->all(FLERR,"Illegal pair_style command"); + + cut_global = force->numeric(FLERR,arg[0]); + + // reset cutoffs that have been explicitly set + + if (allocated) { + int i,j; + for (i = 1; i <= atom->ntypes; i++) + for (j = i; j <= atom->ntypes; j++) + if (setflag[i][j]) cut[i][j] = cut_global; + } +} + +/* ---------------------------------------------------------------------- + set coeffs for one or more type pairs +------------------------------------------------------------------------- */ + +void PairWF::coeff(int narg, char **arg) +{ + if (narg < 6 || narg > 7) + error->all(FLERR,"Incorrect args for pair coefficients"); + if (!allocated) allocate(); + + int ilo,ihi,jlo,jhi; + force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); + force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + + double epsilon_one = force->numeric(FLERR,arg[2]); + double sigma_one = force->numeric(FLERR,arg[3]); + double nu_one = force->numeric(FLERR,arg[4]); + double mu_one = force->numeric(FLERR,arg[5]); + + double cut_one = cut_global; + if (narg == 7) cut_one = force->numeric(FLERR,arg[6]); + + int count = 0; + for (int i = ilo; i <= ihi; i++) { + for (int j = MAX(jlo,i); j <= jhi; j++) { + epsilon[i][j] = epsilon_one; + sigma[i][j] = sigma_one; + nu[i][j] = nu_one; + mu[i][j] = mu_one; + cut[i][j] = cut_one; + setflag[i][j] = 1; + count++; + } + } + + if (count == 0) error->all(FLERR,"Incorrect args for pair coefficients"); +} + +/* ---------------------------------------------------------------------- + init for one type pair i,j and corresponding j,i +------------------------------------------------------------------------- */ + +double PairWF::init_one(int i, int j) +{ + if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); + + nm[i][j] = nu[i][j]*mu[i][j]; + e0nm[i][j] = epsilon[i][j]*2.0*nu[i][j]*pow(cut[i][j]/sigma[i][j],2.0*mu[i][j]) + *pow((1+2.0*nu[i][j])/(2.0*nu[i][j])/(pow(cut[i][j]/sigma[i][j],2.0*mu[i][j])-1.0), + 2.0*nu[i][j]+1.0); + rcmu[i][j] = pow(cut[i][j],2.0*mu[i][j]); + sigma_mu[i][j] = pow(sigma[i][j], 2.0*mu[i][j]); + + if (offset_flag && (cut[i][j] > 0.0)) { + offset[i][j] = 0.0; + } else offset[i][j] = 0.0; + + epsilon[j][i] = epsilon[i][j]; + nu[j][i] = nu[i][j]; + mu[j][i] = mu[i][j]; + nm[j][i] = nm[i][j]; + sigma[j][i] = sigma[i][j]; + e0nm[j][i] = e0nm[i][j]; + rcmu[j][i] = rcmu[i][j]; + sigma_mu[j][i] = sigma_mu[i][j]; + offset[j][i] = offset[i][j]; + + return cut[i][j]; +} + +/* ---------------------------------------------------------------------- + proc 0 writes to restart file +------------------------------------------------------------------------- */ + +void PairWF::write_restart(FILE *fp) +{ + write_restart_settings(fp); + + int i,j; + for (i = 1; i <= atom->ntypes; i++) + for (j = i; j <= atom->ntypes; j++) { + fwrite(&setflag[i][j],sizeof(int),1,fp); + if (setflag[i][j]) { + fwrite(&epsilon[i][j],sizeof(double),1,fp); + fwrite(&sigma[i][j],sizeof(double),1,fp); + fwrite(&nu[i][j],sizeof(double),1,fp); + fwrite(&mu[i][j],sizeof(double),1,fp); + fwrite(&cut[i][j],sizeof(double),1,fp); + } + } +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts +------------------------------------------------------------------------- */ + +void PairWF::read_restart(FILE *fp) +{ + read_restart_settings(fp); + allocate(); + + int i,j; + int me = comm->me; + for (i = 1; i <= atom->ntypes; i++) + for (j = i; j <= atom->ntypes; j++) { + if (me == 0) fread(&setflag[i][j],sizeof(int),1,fp); + MPI_Bcast(&setflag[i][j],1,MPI_INT,0,world); + if (setflag[i][j]) { + if (me == 0) { + fread(&epsilon[i][j],sizeof(double),1,fp); + fread(&sigma[i][j],sizeof(double),1,fp); + fread(&nu[i][j],sizeof(double),1,fp); + fread(&mu[i][j],sizeof(double),1,fp); + fread(&cut[i][j],sizeof(double),1,fp); + } + MPI_Bcast(&epsilon[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&sigma[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&nu[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&mu[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&cut[i][j],1,MPI_DOUBLE,0,world); + } + } +} + +/* ---------------------------------------------------------------------- + proc 0 writes to restart file +------------------------------------------------------------------------- */ + +void PairWF::write_restart_settings(FILE *fp) +{ + fwrite(&cut_global,sizeof(double),1,fp); + fwrite(&offset_flag,sizeof(int),1,fp); + fwrite(&mix_flag,sizeof(int),1,fp); +// fwrite(&tail_flag,sizeof(int),1,fp); +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts +------------------------------------------------------------------------- */ + +void PairWF::read_restart_settings(FILE *fp) +{ + if (comm->me == 0) { + fread(&cut_global,sizeof(double),1,fp); + fread(&offset_flag,sizeof(int),1,fp); + fread(&mix_flag,sizeof(int),1,fp); +// fread(&tail_flag,sizeof(int),1,fp); + } + MPI_Bcast(&cut_global,1,MPI_DOUBLE,0,world); + MPI_Bcast(&offset_flag,1,MPI_INT,0,world); + MPI_Bcast(&mix_flag,1,MPI_INT,0,world); +// MPI_Bcast(&tail_flag,1,MPI_INT,0,world); +} + +/* ---------------------------------------------------------------------- + proc 0 writes to data file +------------------------------------------------------------------------- */ + +void PairWF::write_data(FILE *fp) +{ + for (int i = 1; i <= atom->ntypes; i++) + fprintf(fp,"%d %g %g %g %g\n",i,epsilon[i][i],sigma[i][i],nu[i][i],mu[i][i]); +} + +/* ---------------------------------------------------------------------- + proc 0 writes all pairs to data file +------------------------------------------------------------------------- */ + +void PairWF::write_data_all(FILE *fp) +{ + for (int i = 1; i <= atom->ntypes; i++) + for (int j = i; j <= atom->ntypes; j++) + fprintf(fp,"%d %d %g %g %g %g %g\n",i,j, + epsilon[i][j],sigma[i][j],nu[i][j],mu[i][j],cut[i][j]); +} + +/* ---------------------------------------------------------------------- */ + +double PairWF::single(int /*i*/, int /*j*/, int itype, int jtype, + double rsq, double /*factor_coul*/, double factor_lj, + double &fforce) +{ + double r2inv,r, rminv, rm, rn, forcenm,phinm; + + r2inv = 1.0/rsq; + r = sqrt(rsq); + + r2inv = 1.0/rsq; + r = sqrt(rsq); + rminv = pow(r2inv,mu[itype][jtype]); + rm = sigma_mu[itype][jtype]*rminv - 1.0; + rn = rcmu[itype][jtype]*rminv - 1.0; + forcenm = 2.0*mu[itype][jtype] *sigma_mu[itype][jtype]*pow(rn,2.0*nu[itype][jtype]) + + 4.0*nm[itype][jtype] *rcmu[itype][jtype]*rm*pow(rn,2.0*nu[itype][jtype]-1.0); + fforce = factor_lj*e0nm[itype][jtype]*forcenm*pow(r2inv,mu[itype][jtype]+1.0); + + phinm = e0nm[itype][jtype] * rm*pow(rn,2.0*nu[itype][jtype]) - + offset[itype][jtype]; + return factor_lj*phinm; +} + +/* ---------------------------------------------------------------------- */ + +void *PairWF::extract(const char *str, int &dim) +{ + dim = 2; + if (strcmp(str,"epsilon") == 0) return (void *) epsilon; + if (strcmp(str,"sigma") == 0) return (void *) sigma; + if (strcmp(str,"nu") == 0) return (void *) nu; + if (strcmp(str,"mu") == 0) return (void *) mu; + return NULL; +} diff --git a/src/pair_wf.h b/src/pair_wf.h new file mode 100644 index 0000000000..e4254f4ccf --- /dev/null +++ b/src/pair_wf.h @@ -0,0 +1,76 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifdef PAIR_CLASS + +PairStyle(wf,PairWF) + +#else + +#ifndef LMP_PAIR_WF +#define LMP_PAIR_WF + +#include "pair.h" + +namespace LAMMPS_NS { + +class PairWF : public Pair { + public: + PairWF(class LAMMPS *); + virtual ~PairWF(); + + virtual void compute(int, int); + void settings(int, char **); + void coeff(int, char **); + double init_one(int, int); + void write_restart(FILE *); + void read_restart(FILE *); + void write_restart_settings(FILE *); + void read_restart_settings(FILE *); + void write_data(FILE *); + void write_data_all(FILE *); + double single(int, int, int, int, double, double, double, double &); + void *extract(const char *, int &); + + protected: + double cut_global; + double **cut; + double **epsilon,**sigma,**nu, **mu; + double **nm,**e0nm,**rcmu,**sigma_mu,**offset; + + void allocate(); +}; + +} + +#endif +#endif + +/* ERROR/WARNING messages: + +E: Illegal ... command + +Self-explanatory. Check the input script syntax and compare to the +documentation for the command. You can use -echo screen as a +command-line option when running LAMMPS to see the offending line. + +E: Incorrect args for pair coefficients + +Self-explanatory. Check the input script or data file. + +E: All pair coeffs are not set + +All pair coefficients must be set in the data file or by the +pair_coeff command before running a simulation. + +*/ From e67977377bc19bbab1c4e04fa79d78f5d4511d8b Mon Sep 17 00:00:00 2001 From: Simon_nimbus Date: Wed, 21 Oct 2020 13:06:41 +0100 Subject: [PATCH 11/32] Added the documentation --- doc/src/pair_wf.rst | 126 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 doc/src/pair_wf.rst diff --git a/doc/src/pair_wf.rst b/doc/src/pair_wf.rst new file mode 100644 index 0000000000..e8955ebecd --- /dev/null +++ b/doc/src/pair_wf.rst @@ -0,0 +1,126 @@ +.. index:: pair_style wf + +pair_style wf command +=========================== + +Syntax +"""""" + + +.. code-block:: LAMMPS + + pair_style wf cutoff + +* cutoff = cutoff for wf interactions (distance units) + +Examples +"""""""" + + +.. code-block:: LAMMPS + + variable sigma equal 1.0 + variable epsilon equal 1.0 + variable nu equal 1.0 + variable mu equal 1.0 + variable rc equal 2.0*${sigma} + + pair_style wf ${rc} + pair_coeff 1 1 ${epsilon} ${sigma} ${nu} ${mu} ${rc} + +Description +""""""""""" + +The *wf* style computes the potential in :ref:`Wang2020 `, which is given by: + +.. math:: + + \phi(r)= \epsilon \alpha \left(\left[{\sigma\over r}\right]^{2\mu} -1 \right)\left(\left[{r_c\over r}\right]^{2\mu}-1\right)^{2\nu} + +with + +.. math:: + \alpha=2\nu\left(\frac{r_c}{\sigma}\right)^{2\mu}\left[\frac{1+2\nu}{2\nu\left[(r_c/\sigma)^{2\mu}-1\right]}\right]^{2\nu+1} + +and + +.. math:: + r_{min}=r_c\left[\frac{1+2\nu}{1+2\nu(r_c/\sigma)^{2\nu}}\right]^{1/{2\nu}} + +:math:`r_c` is the cutoff. + +The following coefficients must be defined for each pair of atoms +types via the :doc:`pair_coeff ` command as in the example +above, or in the data file or restart files read by the +:doc:`read_data ` or :doc:`read_restart ` +commands: + +* :math:`\epsilon` (energy units) +* :math:`\sigma` (distance units) +* :math:`\nu` +* :math:`\mu` +* :math:`r_c` (distance units) + +---------- + + +Styles with a *gpu*\ , *intel*\ , *kk*\ , *omp*\ , or *opt* suffix are +functionally the same as the corresponding style without the suffix. +They have been optimized to run faster, depending on your available +hardware, as discussed on the :doc:`Speed packages ` doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. + +These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, +USER-OMP and OPT packages, respectively. They are only enabled if +LAMMPS was built with those packages. See the :doc:`Build package ` doc page for more info. + +You can specify the accelerated styles explicitly in your input script +by including their suffix, or you can use the :doc:`-suffix command-line switch ` when you invoke LAMMPS, or you can use the +:doc:`suffix ` command in your input script. + +See the :doc:`Speed packages ` doc page for more +instructions on how to use the accelerated styles effectively. + + +---------- + + +**Mixing, shift, table, tail correction, restart, rRESPA info**\ : + +For atom type pairs I,J and I != J, the epsilon and sigma coefficients +can be mixed. Careful is required with the cut-off radius. +The default mix value is *geometric*\ . See the "pair\_modify" command +for details. + +The :doc:`pair_modify ` tail option is not relevant +for this pair style as it goes to zero at the cut-off radius. + + +This pair style writes its information to :doc:`binary restart files `, so pair\_style and pair\_coeff commands do not need +to be specified in an input script that reads a restart file. + +This pair style does not support the use of the *inner*\ , *middle*\ , and *outer* +keywords of the :doc:`run_style respa ` command. + + +---------- + + +Restrictions +"""""""""""" +none + +Related commands +"""""""""""""""" + +:doc:`pair_coeff ` + +**Default:** none + + +---------- + +.. _Wang2020: + +**(Wang2020)** X. Wang, S. Ramírez-Hinestrosa, J. Dobnikar, and D. Frenkel, Phys. Chem. Chem. Phys. 22, 10624 (2020). From 1f6539934c3d85eec60aedd70c191a8e572ff7df Mon Sep 17 00:00:00 2001 From: Simon_nimbus Date: Thu, 5 Nov 2020 15:24:14 +0000 Subject: [PATCH 12/32] added the pair to the commands --- doc/src/Commands_pair.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/src/Commands_pair.rst b/doc/src/Commands_pair.rst index 2ca0e88729..f5b1ef9b38 100644 --- a/doc/src/Commands_pair.rst +++ b/doc/src/Commands_pair.rst @@ -263,6 +263,7 @@ OPT. * :doc:`ufm (got) ` * :doc:`vashishta (gko) ` * :doc:`vashishta/table (o) ` + * :doc:`wf/cut ` * :doc:`yukawa (gko) ` * :doc:`yukawa/colloid (go) ` * :doc:`zbl (gko) ` From d295ab929678275390054bac9d7d6cc0f399d993 Mon Sep 17 00:00:00 2001 From: Simon_nimbus Date: Thu, 5 Nov 2020 15:29:27 +0000 Subject: [PATCH 13/32] Added the pair documentation --- doc/src/{pair_wf.rst => pair_wf_cut.rst} | 52 ++++++++---------------- 1 file changed, 16 insertions(+), 36 deletions(-) rename doc/src/{pair_wf.rst => pair_wf_cut.rst} (52%) diff --git a/doc/src/pair_wf.rst b/doc/src/pair_wf_cut.rst similarity index 52% rename from doc/src/pair_wf.rst rename to doc/src/pair_wf_cut.rst index e8955ebecd..f495ef3b2f 100644 --- a/doc/src/pair_wf.rst +++ b/doc/src/pair_wf_cut.rst @@ -1,6 +1,6 @@ -.. index:: pair_style wf +.. index:: pair_style wf/cut -pair_style wf command +pair_style wf/cut command =========================== Syntax @@ -9,7 +9,7 @@ Syntax .. code-block:: LAMMPS - pair_style wf cutoff + pair_style wf/cut cutoff * cutoff = cutoff for wf interactions (distance units) @@ -19,22 +19,15 @@ Examples .. code-block:: LAMMPS - variable sigma equal 1.0 - variable epsilon equal 1.0 - variable nu equal 1.0 - variable mu equal 1.0 - variable rc equal 2.0*${sigma} - - pair_style wf ${rc} - pair_coeff 1 1 ${epsilon} ${sigma} ${nu} ${mu} ${rc} + pair_style wf/cut 2.0 + pair_coeff 1 1 1.0 1.0 1 1 2.0 Description """"""""""" -The *wf* style computes the potential in :ref:`Wang2020 `, which is given by: +The *wf/cut* (Wang-Frenkel) style computes LJ-like potentials as described in :ref:`Wang2020 `. This potential is by construction finite ranged and it vanishes quadratically at the cutoff distance, avoiding truncation, shifting, interpolation and other typical procedures with the LJ potential. The *wf/cut* can be used when a typical short-ranged potential with attraction is required. The potential is given by which is given by: .. math:: - \phi(r)= \epsilon \alpha \left(\left[{\sigma\over r}\right]^{2\mu} -1 \right)\left(\left[{r_c\over r}\right]^{2\mu}-1\right)^{2\nu} with @@ -49,6 +42,12 @@ and :math:`r_c` is the cutoff. +Comparison of the untruncated Lennard-Jones 12-6 potential (red curve), and the WF potentials with :math:`\mu=1` and :math:`\nu=1` are shown in the figure below. The blue curve has :math:`r_c =2.0` and the green curve has :math:`r_c =1.2` and can be used to describe colloidal interactions. + +.. image:: JPG/WF_LJ.jpg + :align: center + + The following coefficients must be defined for each pair of atoms types via the :doc:`pair_coeff ` command as in the example above, or in the data file or restart files read by the @@ -61,27 +60,8 @@ commands: * :math:`\mu` * :math:`r_c` (distance units) ----------- - - -Styles with a *gpu*\ , *intel*\ , *kk*\ , *omp*\ , or *opt* suffix are -functionally the same as the corresponding style without the suffix. -They have been optimized to run faster, depending on your available -hardware, as discussed on the :doc:`Speed packages ` doc -page. The accelerated styles take the same arguments and should -produce the same results, except for round-off and precision issues. - -These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, -USER-OMP and OPT packages, respectively. They are only enabled if -LAMMPS was built with those packages. See the :doc:`Build package ` doc page for more info. - -You can specify the accelerated styles explicitly in your input script -by including their suffix, or you can use the :doc:`-suffix command-line switch ` when you invoke LAMMPS, or you can use the -:doc:`suffix ` command in your input script. - -See the :doc:`Speed packages ` doc page for more -instructions on how to use the accelerated styles effectively. - +The last coefficient is optional. If not specified, the global cutoff given in the pair_style command is used. +The exponents :math:`\nu` and :math:`\mu` are positive integers, usually set to 1. There is usually little to be gained by choosing other values of :math:`\nu` and :math:`\mu` (See discussion in :ref:`Wang2020 `) ---------- @@ -89,7 +69,7 @@ instructions on how to use the accelerated styles effectively. **Mixing, shift, table, tail correction, restart, rRESPA info**\ : For atom type pairs I,J and I != J, the epsilon and sigma coefficients -can be mixed. Careful is required with the cut-off radius. +can be mixed. The default mix value is *geometric*\ . See the "pair\_modify" command for details. @@ -123,4 +103,4 @@ Related commands .. _Wang2020: -**(Wang2020)** X. Wang, S. Ramírez-Hinestrosa, J. Dobnikar, and D. Frenkel, Phys. Chem. Chem. Phys. 22, 10624 (2020). +**(Wang2020)** X. Wang, S. Ramirez-Hinestrosa, J. Dobnikar, and D. Frenkel, Phys. Chem. Chem. Phys. 22, 10624 (2020). From 6ba9ebe9b83a79743c7f8069661571ffd5e716c8 Mon Sep 17 00:00:00 2001 From: Simon_nimbus Date: Thu, 5 Nov 2020 15:57:35 +0000 Subject: [PATCH 14/32] added the pair to pairs style doc --- doc/src/pair_style.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/src/pair_style.rst b/doc/src/pair_style.rst index a5fbb824f5..d6dde6b336 100644 --- a/doc/src/pair_style.rst +++ b/doc/src/pair_style.rst @@ -327,6 +327,7 @@ accelerated styles exist. * :doc:`ufm ` - * :doc:`vashishta ` - Vashishta 2-body and 3-body potential * :doc:`vashishta/table ` - +* :doc:`wf/cut ` - Wang-Frenkel Potential for short-ranged interactions * :doc:`yukawa ` - Yukawa potential * :doc:`yukawa/colloid ` - screened Yukawa potential for finite-size particles * :doc:`zbl ` - Ziegler-Biersack-Littmark potential From ddcde9c2a57902b51c08415ce2df4d954b185803 Mon Sep 17 00:00:00 2001 From: Simon_nimbus Date: Thu, 5 Nov 2020 15:59:15 +0000 Subject: [PATCH 15/32] Updated the user-misc readme --- src/USER-MISC/README | 1 + 1 file changed, 1 insertion(+) diff --git a/src/USER-MISC/README b/src/USER-MISC/README index 538fdb7952..314fe6146e 100644 --- a/src/USER-MISC/README +++ b/src/USER-MISC/README @@ -107,5 +107,6 @@ pair_style morse/smooth/linear, Stefan Paquay (TU Eindhoven), stefanpaquay at gm pair_style srp, Tim Sirk, tim.sirk at us.army.mil, 21 Nov 14 pair_style tersoff/table, Luca Ferraro, luca.ferraro@caspur.it, 1 Dec 11 pair_style momb, Kristen Fichthorn, Tonnam Balankura, Ya Zhou, fichthorn@psu.edu, 18 Mar 17 +pair_style wf_cut, Simon Ramirez-Hinestrosa, Xipeng Wang, sr802 at cam.ac.uk, 4 Nov 20 temper/grem, David Stelter, dstelter@bu.edu, 22 Nov 16 temper/npt, Amulya K. Pervaje, Cody K. Addington, amulyapervaje@gmail.com , 31 Aug 17 From 11841bf638e9aaa27cc489efd1ea656f0aae1db7 Mon Sep 17 00:00:00 2001 From: Simon_nimbus Date: Thu, 5 Nov 2020 16:03:38 +0000 Subject: [PATCH 16/32] created the pair style files --- src/USER-MISC/pair_wf_cut.cpp | 403 ++++++++++++++++++++++++++++++++++ src/USER-MISC/pair_wf_cut.h | 77 +++++++ 2 files changed, 480 insertions(+) create mode 100644 src/USER-MISC/pair_wf_cut.cpp create mode 100644 src/USER-MISC/pair_wf_cut.h diff --git a/src/USER-MISC/pair_wf_cut.cpp b/src/USER-MISC/pair_wf_cut.cpp new file mode 100644 index 0000000000..2ca8ba4248 --- /dev/null +++ b/src/USER-MISC/pair_wf_cut.cpp @@ -0,0 +1,403 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + Contributing Author: Xipeng Wang, Simon Ramirez-Hinestrosa +------------------------------------------------------------------------- */ + +#include +#include +#include +#include +#include "pair_wf_cut.h" +#include "atom.h" +#include "comm.h" +#include "force.h" +#include "neigh_list.h" +#include "math_const.h" +#include "memory.h" +#include "error.h" + +using namespace LAMMPS_NS; +using namespace MathConst; + +/* ---------------------------------------------------------------------- */ + +PairWFCut::PairWFCut(LAMMPS *lmp) : Pair(lmp) +{ + writedata = 1; +} + +/* ---------------------------------------------------------------------- */ + +PairWFCut::~PairWFCut() +{ + if (allocated) { + memory->destroy(setflag); + memory->destroy(cutsq); + memory->destroy(cut); + memory->destroy(epsilon); + memory->destroy(sigma); + memory->destroy(nu); + memory->destroy(mu); + memory->destroy(nm); + memory->destroy(e0nm); //Alpha * epsilon + memory->destroy(rcmu); + memory->destroy(sigma_mu); + memory->destroy(offset); + } +} + +/* ---------------------------------------------------------------------- */ + +void PairWFCut::compute(int eflag, int vflag) +{ + int i,j,ii,jj,inum,jnum,itype,jtype; + double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair; + double rsq,r2inv,factor_lj; + double r,forcenm,rminv, rm, rn; + int *ilist,*jlist,*numneigh,**firstneigh; + + evdwl = 0.0; + if (eflag || vflag) ev_setup(eflag,vflag); + else evflag = vflag_fdotr = 0; + + double **x = atom->x; + double **f = atom->f; + int *type = atom->type; + int nlocal = atom->nlocal; + double *special_lj = force->special_lj; + int newton_pair = force->newton_pair; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + // loop over neighbors of my atoms + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + itype = type[i]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + factor_lj = special_lj[sbmask(j)]; + j &= NEIGHMASK; + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; + jtype = type[j]; + + if (rsq < cutsq[itype][jtype]) { + r2inv = 1.0/rsq; + r = sqrt(rsq); + rminv = pow(r2inv,mu[itype][jtype]); + rm = sigma_mu[itype][jtype]*rminv - 1.0; + rn = rcmu[itype][jtype]*rminv - 1.0; + + forcenm = 2.0*mu[itype][jtype] *sigma_mu[itype][jtype]*pow(rn,2.0*nu[itype][jtype]) + + 4.0*nm[itype][jtype] *rcmu[itype][jtype]*rm*pow(rn,2.0*nu[itype][jtype]-1.0); + fpair = factor_lj*e0nm[itype][jtype]*forcenm*pow(r2inv,mu[itype][jtype]+1.0); + + f[i][0] += delx*fpair; + f[i][1] += dely*fpair; + f[i][2] += delz*fpair; + if (newton_pair || j < nlocal) { + f[j][0] -= delx*fpair; + f[j][1] -= dely*fpair; + f[j][2] -= delz*fpair; + } + + if (eflag) { + evdwl = e0nm[itype][jtype] * + (rm*pow(rn,2.0*nu[itype][jtype])) - offset[itype][jtype]; + evdwl *= factor_lj; + } + + if (evflag) ev_tally(i,j,nlocal,newton_pair, + evdwl,0.0,fpair,delx,dely,delz); + } + } + } + + if (vflag_fdotr) virial_fdotr_compute(); +} + +/* ---------------------------------------------------------------------- + allocate all arrays +------------------------------------------------------------------------- */ + +void PairWFCut::allocate() +{ + allocated = 1; + int n = atom->ntypes; + + memory->create(setflag,n+1,n+1,"pair:setflag"); + for (int i = 1; i <= n; i++) + for (int j = i; j <= n; j++) + setflag[i][j] = 0; + + memory->create(cutsq,n+1,n+1,"pair:cutsq"); + + memory->create(cut,n+1,n+1,"pair:cut"); + memory->create(epsilon,n+1,n+1,"pair:epsilon"); + memory->create(sigma,n+1,n+1,"pair:sigma"); + memory->create(nu,n+1,n+1,"pair:nu"); + memory->create(mu,n+1,n+1,"pair:mu"); + memory->create(nm,n+1,n+1,"pair:nm"); + memory->create(e0nm,n+1,n+1,"pair:e0nm"); + memory->create(rcmu,n+1,n+1,"pair:rcmu"); + memory->create(sigma_mu,n+1,n+1,"pair:sigma_mu"); + memory->create(offset,n+1,n+1,"pair:offset"); +} + +/* ---------------------------------------------------------------------- + global settings +------------------------------------------------------------------------- */ + +void PairWFCut::settings(int narg, char **arg) +{ + if (narg != 1) error->all(FLERR,"Illegal pair_style command"); + + cut_global = utils::numeric(FLERR,arg[0],false,lmp); + + // reset cutoffs that have been explicitly set + + if (allocated) { + int i,j; + for (i = 1; i <= atom->ntypes; i++) + for (j = i; j <= atom->ntypes; j++) + if (setflag[i][j]) cut[i][j] = cut_global; + } +} + +/* ---------------------------------------------------------------------- + set coeffs for one or more type pairs +------------------------------------------------------------------------- */ + +void PairWFCut::coeff(int narg, char **arg) +{ + if (narg < 6 || narg > 7) + error->all(FLERR,"Incorrect args for pair coefficients"); + if (!allocated) allocate(); + + int ilo,ihi,jlo,jhi; + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); + + double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); + double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); + int nu_one = utils::numeric(FLERR,arg[4],false,lmp); + int mu_one = utils::numeric(FLERR,arg[5],false,lmp); + + double cut_one = cut_global; + if (narg == 7) cut_one = utils::numeric(FLERR,arg[6],false,lmp); + + int count = 0; + for (int i = ilo; i <= ihi; i++) { + for (int j = MAX(jlo,i); j <= jhi; j++) { + epsilon[i][j] = epsilon_one; + sigma[i][j] = sigma_one; + nu[i][j] = nu_one; + mu[i][j] = mu_one; + cut[i][j] = cut_one; + setflag[i][j] = 1; + count++; + } + } + + if (count == 0) error->all(FLERR,"Incorrect args for pair coefficients"); +} + +/* ---------------------------------------------------------------------- + init for one type pair i,j and corresponding j,i +------------------------------------------------------------------------- */ + +double PairWFCut::init_one(int i, int j) +{ + if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); + + nm[i][j] = nu[i][j]*mu[i][j]; + e0nm[i][j] = epsilon[i][j]*2.0*nu[i][j]*pow(cut[i][j]/sigma[i][j],2.0*mu[i][j]) + *pow((1+2.0*nu[i][j])/(2.0*nu[i][j])/(pow(cut[i][j]/sigma[i][j],2.0*mu[i][j])-1.0), + 2.0*nu[i][j]+1.0); + rcmu[i][j] = pow(cut[i][j],2.0*mu[i][j]); + sigma_mu[i][j] = pow(sigma[i][j], 2.0*mu[i][j]); + + if (offset_flag && (cut[i][j] > 0.0)) { + offset[i][j] = 0.0; + } else offset[i][j] = 0.0; + + epsilon[j][i] = epsilon[i][j]; + nu[j][i] = nu[i][j]; + mu[j][i] = mu[i][j]; + nm[j][i] = nm[i][j]; + sigma[j][i] = sigma[i][j]; + e0nm[j][i] = e0nm[i][j]; + rcmu[j][i] = rcmu[i][j]; + sigma_mu[j][i] = sigma_mu[i][j]; + offset[j][i] = offset[i][j]; + + return cut[i][j]; +} + +/* ---------------------------------------------------------------------- + proc 0 writes to restart file +------------------------------------------------------------------------- */ + +void PairWFCut::write_restart(FILE *fp) +{ + write_restart_settings(fp); + + int i,j; + for (i = 1; i <= atom->ntypes; i++) + for (j = i; j <= atom->ntypes; j++) { + fwrite(&setflag[i][j],sizeof(int),1,fp); + if (setflag[i][j]) { + fwrite(&epsilon[i][j],sizeof(double),1,fp); + fwrite(&sigma[i][j],sizeof(double),1,fp); + fwrite(&nu[i][j],sizeof(double),1,fp); + fwrite(&mu[i][j],sizeof(double),1,fp); + fwrite(&cut[i][j],sizeof(double),1,fp); + } + } +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts +------------------------------------------------------------------------- */ + +void PairWFCut::read_restart(FILE *fp) +{ + read_restart_settings(fp); + allocate(); + + int i,j; + int me = comm->me; + for (i = 1; i <= atom->ntypes; i++) + for (j = i; j <= atom->ntypes; j++) { + if (me == 0) fread(&setflag[i][j],sizeof(int),1,fp); + MPI_Bcast(&setflag[i][j],1,MPI_INT,0,world); + if (setflag[i][j]) { + if (me == 0) { + fread(&epsilon[i][j],sizeof(double),1,fp); + fread(&sigma[i][j],sizeof(double),1,fp); + fread(&nu[i][j],sizeof(double),1,fp); + fread(&mu[i][j],sizeof(double),1,fp); + fread(&cut[i][j],sizeof(double),1,fp); + } + MPI_Bcast(&epsilon[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&sigma[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&nu[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&mu[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&cut[i][j],1,MPI_DOUBLE,0,world); + } + } +} + +/* ---------------------------------------------------------------------- + proc 0 writes to restart file +------------------------------------------------------------------------- */ + +void PairWFCut::write_restart_settings(FILE *fp) +{ + fwrite(&cut_global,sizeof(double),1,fp); + fwrite(&offset_flag,sizeof(int),1,fp); + fwrite(&mix_flag,sizeof(int),1,fp); +// fwrite(&tail_flag,sizeof(int),1,fp); +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts +------------------------------------------------------------------------- */ + +void PairWFCut::read_restart_settings(FILE *fp) +{ + if (comm->me == 0) { + fread(&cut_global,sizeof(double),1,fp); + fread(&offset_flag,sizeof(int),1,fp); + fread(&mix_flag,sizeof(int),1,fp); +// fread(&tail_flag,sizeof(int),1,fp); + } + MPI_Bcast(&cut_global,1,MPI_DOUBLE,0,world); + MPI_Bcast(&offset_flag,1,MPI_INT,0,world); + MPI_Bcast(&mix_flag,1,MPI_INT,0,world); +// MPI_Bcast(&tail_flag,1,MPI_INT,0,world); +} + +/* ---------------------------------------------------------------------- + proc 0 writes to data file +------------------------------------------------------------------------- */ + +void PairWFCut::write_data(FILE *fp) +{ + for (int i = 1; i <= atom->ntypes; i++) + fprintf(fp,"%d %g %g %g %g\n",i,epsilon[i][i],sigma[i][i],nu[i][i],mu[i][i]); +} + +/* ---------------------------------------------------------------------- + proc 0 writes all pairs to data file +------------------------------------------------------------------------- */ + +void PairWFCut::write_data_all(FILE *fp) +{ + for (int i = 1; i <= atom->ntypes; i++) + for (int j = i; j <= atom->ntypes; j++) + fprintf(fp,"%d %d %g %g %g %g %g\n",i,j, + epsilon[i][j],sigma[i][j],nu[i][j],mu[i][j],cut[i][j]); +} + +/* ---------------------------------------------------------------------- */ + +double PairWFCut::single(int /*i*/, int /*j*/, int itype, int jtype, + double rsq, double /*factor_coul*/, double factor_lj, + double &fforce) +{ + double r2inv,r, rminv, rm, rn, forcenm,phinm; + + r2inv = 1.0/rsq; + r = sqrt(rsq); + + r2inv = 1.0/rsq; + r = sqrt(rsq); + rminv = pow(r2inv,mu[itype][jtype]); + rm = sigma_mu[itype][jtype]*rminv - 1.0; + rn = rcmu[itype][jtype]*rminv - 1.0; + forcenm = 2.0*mu[itype][jtype] *sigma_mu[itype][jtype]*pow(rn,2.0*nu[itype][jtype]) + + 4.0*nm[itype][jtype] *rcmu[itype][jtype]*rm*pow(rn,2.0*nu[itype][jtype]-1.0); + fforce = factor_lj*e0nm[itype][jtype]*forcenm*pow(r2inv,mu[itype][jtype]+1.0); + + phinm = e0nm[itype][jtype] * rm*pow(rn,2.0*nu[itype][jtype]) - + offset[itype][jtype]; + return factor_lj*phinm; +} + +/* ---------------------------------------------------------------------- */ + +void *PairWFCut::extract(const char *str, int &dim) +{ + dim = 2; + if (strcmp(str,"epsilon") == 0) return (void *) epsilon; + if (strcmp(str,"sigma") == 0) return (void *) sigma; + if (strcmp(str,"nu") == 0) return (void *) nu; + if (strcmp(str,"mu") == 0) return (void *) mu; + return NULL; +} diff --git a/src/USER-MISC/pair_wf_cut.h b/src/USER-MISC/pair_wf_cut.h new file mode 100644 index 0000000000..c2a6b4ba0e --- /dev/null +++ b/src/USER-MISC/pair_wf_cut.h @@ -0,0 +1,77 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifdef PAIR_CLASS + +PairStyle(wf/cut,PairWFCut) + +#else + +#ifndef LMP_PAIR_WF +#define LMP_PAIR_WF + +#include "pair.h" + +namespace LAMMPS_NS { + +class PairWFCut : public Pair { + public: + PairWFCut(class LAMMPS *); + virtual ~PairWFCut(); + + virtual void compute(int, int); + void settings(int, char **); + void coeff(int, char **); + double init_one(int, int); + void write_restart(FILE *); + void read_restart(FILE *); + void write_restart_settings(FILE *); + void read_restart_settings(FILE *); + void write_data(FILE *); + void write_data_all(FILE *); + double single(int, int, int, int, double, double, double, double &); + void *extract(const char *, int &); + + protected: + int **nu,**mu; + double cut_global; + double **cut; + double **epsilon,**sigma; + double **nm,**e0nm,**rcmu,**sigma_mu,**offset; + + void allocate(); +}; + +} + +#endif +#endif + +/* ERROR/WARNING messages: + +E: Illegal ... command + +Self-explanatory. Check the input script syntax and compare to the +documentation for the command. You can use -echo screen as a +command-line option when running LAMMPS to see the offending line. + +E: Incorrect args for pair coefficients + +Self-explanatory. Check the input script or data file. + +E: All pair coeffs are not set + +All pair coefficients must be set in the data file or by the +pair_coeff command before running a simulation. + +*/ From c6b8b9e8fe26308f0ee201a51c12d9fc90cffa24 Mon Sep 17 00:00:00 2001 From: Simon_nimbus Date: Thu, 5 Nov 2020 16:26:45 +0000 Subject: [PATCH 17/32] moved the potential to user-misc --- src/pair_wf.cpp | 403 ------------------------------------------------ src/pair_wf.h | 76 --------- 2 files changed, 479 deletions(-) delete mode 100644 src/pair_wf.cpp delete mode 100644 src/pair_wf.h diff --git a/src/pair_wf.cpp b/src/pair_wf.cpp deleted file mode 100644 index 00f3ad5aba..0000000000 --- a/src/pair_wf.cpp +++ /dev/null @@ -1,403 +0,0 @@ -/* ---------------------------------------------------------------------- - LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator - http://lammps.sandia.gov, Sandia National Laboratories - Steve Plimpton, sjplimp@sandia.gov - - Copyright (2003) Sandia Corporation. Under the terms of Contract - DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains - certain rights in this software. This software is distributed under - the GNU General Public License. - - See the README file in the top-level LAMMPS directory. -------------------------------------------------------------------------- */ - -/* ---------------------------------------------------------------------- - Contributing Authors: Xipeng Wang, Simon Ramirez-Hinestrosa -------------------------------------------------------------------------- */ - -#include -#include -#include -#include -#include "pair_wf.h" -#include "atom.h" -#include "comm.h" -#include "force.h" -#include "neigh_list.h" -#include "math_const.h" -#include "memory.h" -#include "error.h" - -using namespace LAMMPS_NS; -using namespace MathConst; - -/* ---------------------------------------------------------------------- */ - -PairWF::PairWF(LAMMPS *lmp) : Pair(lmp) -{ - writedata = 1; -} - -/* ---------------------------------------------------------------------- */ - -PairWF::~PairWF() -{ - if (allocated) { - memory->destroy(setflag); - memory->destroy(cutsq); - memory->destroy(cut); - memory->destroy(epsilon); - memory->destroy(sigma); - memory->destroy(nu); - memory->destroy(mu); - memory->destroy(nm); - memory->destroy(e0nm); //Alpha * epsilon - memory->destroy(rcmu); - memory->destroy(sigma_mu); - memory->destroy(offset); - } -} - -/* ---------------------------------------------------------------------- */ - -void PairWF::compute(int eflag, int vflag) -{ - int i,j,ii,jj,inum,jnum,itype,jtype; - double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair; - double rsq,r2inv,factor_lj; - double r,forcenm,rminv, rm, rn; - int *ilist,*jlist,*numneigh,**firstneigh; - - evdwl = 0.0; - if (eflag || vflag) ev_setup(eflag,vflag); - else evflag = vflag_fdotr = 0; - - double **x = atom->x; - double **f = atom->f; - int *type = atom->type; - int nlocal = atom->nlocal; - double *special_lj = force->special_lj; - int newton_pair = force->newton_pair; - - inum = list->inum; - ilist = list->ilist; - numneigh = list->numneigh; - firstneigh = list->firstneigh; - - // loop over neighbors of my atoms - - for (ii = 0; ii < inum; ii++) { - i = ilist[ii]; - xtmp = x[i][0]; - ytmp = x[i][1]; - ztmp = x[i][2]; - itype = type[i]; - jlist = firstneigh[i]; - jnum = numneigh[i]; - - for (jj = 0; jj < jnum; jj++) { - j = jlist[jj]; - factor_lj = special_lj[sbmask(j)]; - j &= NEIGHMASK; - - delx = xtmp - x[j][0]; - dely = ytmp - x[j][1]; - delz = ztmp - x[j][2]; - rsq = delx*delx + dely*dely + delz*delz; - jtype = type[j]; - - if (rsq < cutsq[itype][jtype]) { - r2inv = 1.0/rsq; - r = sqrt(rsq); - rminv = pow(r2inv,mu[itype][jtype]); - rm = sigma_mu[itype][jtype]*rminv - 1.0; - rn = rcmu[itype][jtype]*rminv - 1.0; - - forcenm = 2.0*mu[itype][jtype] *sigma_mu[itype][jtype]*pow(rn,2.0*nu[itype][jtype]) - + 4.0*nm[itype][jtype] *rcmu[itype][jtype]*rm*pow(rn,2.0*nu[itype][jtype]-1.0); - fpair = factor_lj*e0nm[itype][jtype]*forcenm*pow(r2inv,mu[itype][jtype]+1.0); - - f[i][0] += delx*fpair; - f[i][1] += dely*fpair; - f[i][2] += delz*fpair; - if (newton_pair || j < nlocal) { - f[j][0] -= delx*fpair; - f[j][1] -= dely*fpair; - f[j][2] -= delz*fpair; - } - - if (eflag) { - evdwl = e0nm[itype][jtype] * - (rm*pow(rn,2.0*nu[itype][jtype])) - offset[itype][jtype]; - evdwl *= factor_lj; - } - - if (evflag) ev_tally(i,j,nlocal,newton_pair, - evdwl,0.0,fpair,delx,dely,delz); - } - } - } - - if (vflag_fdotr) virial_fdotr_compute(); -} - -/* ---------------------------------------------------------------------- - allocate all arrays -------------------------------------------------------------------------- */ - -void PairWF::allocate() -{ - allocated = 1; - int n = atom->ntypes; - - memory->create(setflag,n+1,n+1,"pair:setflag"); - for (int i = 1; i <= n; i++) - for (int j = i; j <= n; j++) - setflag[i][j] = 0; - - memory->create(cutsq,n+1,n+1,"pair:cutsq"); - - memory->create(cut,n+1,n+1,"pair:cut"); - memory->create(epsilon,n+1,n+1,"pair:epsilon"); - memory->create(sigma,n+1,n+1,"pair:sigma"); - memory->create(nu,n+1,n+1,"pair:nu"); - memory->create(mu,n+1,n+1,"pair:mu"); - memory->create(nm,n+1,n+1,"pair:nm"); - memory->create(e0nm,n+1,n+1,"pair:e0nm"); - memory->create(rcmu,n+1,n+1,"pair:rcmu"); - memory->create(sigma_mu,n+1,n+1,"pair:sigma_mu"); - memory->create(offset,n+1,n+1,"pair:offset"); -} - -/* ---------------------------------------------------------------------- - global settings -------------------------------------------------------------------------- */ - -void PairWF::settings(int narg, char **arg) -{ - if (narg != 1) error->all(FLERR,"Illegal pair_style command"); - - cut_global = force->numeric(FLERR,arg[0]); - - // reset cutoffs that have been explicitly set - - if (allocated) { - int i,j; - for (i = 1; i <= atom->ntypes; i++) - for (j = i; j <= atom->ntypes; j++) - if (setflag[i][j]) cut[i][j] = cut_global; - } -} - -/* ---------------------------------------------------------------------- - set coeffs for one or more type pairs -------------------------------------------------------------------------- */ - -void PairWF::coeff(int narg, char **arg) -{ - if (narg < 6 || narg > 7) - error->all(FLERR,"Incorrect args for pair coefficients"); - if (!allocated) allocate(); - - int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); - - double epsilon_one = force->numeric(FLERR,arg[2]); - double sigma_one = force->numeric(FLERR,arg[3]); - double nu_one = force->numeric(FLERR,arg[4]); - double mu_one = force->numeric(FLERR,arg[5]); - - double cut_one = cut_global; - if (narg == 7) cut_one = force->numeric(FLERR,arg[6]); - - int count = 0; - for (int i = ilo; i <= ihi; i++) { - for (int j = MAX(jlo,i); j <= jhi; j++) { - epsilon[i][j] = epsilon_one; - sigma[i][j] = sigma_one; - nu[i][j] = nu_one; - mu[i][j] = mu_one; - cut[i][j] = cut_one; - setflag[i][j] = 1; - count++; - } - } - - if (count == 0) error->all(FLERR,"Incorrect args for pair coefficients"); -} - -/* ---------------------------------------------------------------------- - init for one type pair i,j and corresponding j,i -------------------------------------------------------------------------- */ - -double PairWF::init_one(int i, int j) -{ - if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); - - nm[i][j] = nu[i][j]*mu[i][j]; - e0nm[i][j] = epsilon[i][j]*2.0*nu[i][j]*pow(cut[i][j]/sigma[i][j],2.0*mu[i][j]) - *pow((1+2.0*nu[i][j])/(2.0*nu[i][j])/(pow(cut[i][j]/sigma[i][j],2.0*mu[i][j])-1.0), - 2.0*nu[i][j]+1.0); - rcmu[i][j] = pow(cut[i][j],2.0*mu[i][j]); - sigma_mu[i][j] = pow(sigma[i][j], 2.0*mu[i][j]); - - if (offset_flag && (cut[i][j] > 0.0)) { - offset[i][j] = 0.0; - } else offset[i][j] = 0.0; - - epsilon[j][i] = epsilon[i][j]; - nu[j][i] = nu[i][j]; - mu[j][i] = mu[i][j]; - nm[j][i] = nm[i][j]; - sigma[j][i] = sigma[i][j]; - e0nm[j][i] = e0nm[i][j]; - rcmu[j][i] = rcmu[i][j]; - sigma_mu[j][i] = sigma_mu[i][j]; - offset[j][i] = offset[i][j]; - - return cut[i][j]; -} - -/* ---------------------------------------------------------------------- - proc 0 writes to restart file -------------------------------------------------------------------------- */ - -void PairWF::write_restart(FILE *fp) -{ - write_restart_settings(fp); - - int i,j; - for (i = 1; i <= atom->ntypes; i++) - for (j = i; j <= atom->ntypes; j++) { - fwrite(&setflag[i][j],sizeof(int),1,fp); - if (setflag[i][j]) { - fwrite(&epsilon[i][j],sizeof(double),1,fp); - fwrite(&sigma[i][j],sizeof(double),1,fp); - fwrite(&nu[i][j],sizeof(double),1,fp); - fwrite(&mu[i][j],sizeof(double),1,fp); - fwrite(&cut[i][j],sizeof(double),1,fp); - } - } -} - -/* ---------------------------------------------------------------------- - proc 0 reads from restart file, bcasts -------------------------------------------------------------------------- */ - -void PairWF::read_restart(FILE *fp) -{ - read_restart_settings(fp); - allocate(); - - int i,j; - int me = comm->me; - for (i = 1; i <= atom->ntypes; i++) - for (j = i; j <= atom->ntypes; j++) { - if (me == 0) fread(&setflag[i][j],sizeof(int),1,fp); - MPI_Bcast(&setflag[i][j],1,MPI_INT,0,world); - if (setflag[i][j]) { - if (me == 0) { - fread(&epsilon[i][j],sizeof(double),1,fp); - fread(&sigma[i][j],sizeof(double),1,fp); - fread(&nu[i][j],sizeof(double),1,fp); - fread(&mu[i][j],sizeof(double),1,fp); - fread(&cut[i][j],sizeof(double),1,fp); - } - MPI_Bcast(&epsilon[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&sigma[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&nu[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&mu[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&cut[i][j],1,MPI_DOUBLE,0,world); - } - } -} - -/* ---------------------------------------------------------------------- - proc 0 writes to restart file -------------------------------------------------------------------------- */ - -void PairWF::write_restart_settings(FILE *fp) -{ - fwrite(&cut_global,sizeof(double),1,fp); - fwrite(&offset_flag,sizeof(int),1,fp); - fwrite(&mix_flag,sizeof(int),1,fp); -// fwrite(&tail_flag,sizeof(int),1,fp); -} - -/* ---------------------------------------------------------------------- - proc 0 reads from restart file, bcasts -------------------------------------------------------------------------- */ - -void PairWF::read_restart_settings(FILE *fp) -{ - if (comm->me == 0) { - fread(&cut_global,sizeof(double),1,fp); - fread(&offset_flag,sizeof(int),1,fp); - fread(&mix_flag,sizeof(int),1,fp); -// fread(&tail_flag,sizeof(int),1,fp); - } - MPI_Bcast(&cut_global,1,MPI_DOUBLE,0,world); - MPI_Bcast(&offset_flag,1,MPI_INT,0,world); - MPI_Bcast(&mix_flag,1,MPI_INT,0,world); -// MPI_Bcast(&tail_flag,1,MPI_INT,0,world); -} - -/* ---------------------------------------------------------------------- - proc 0 writes to data file -------------------------------------------------------------------------- */ - -void PairWF::write_data(FILE *fp) -{ - for (int i = 1; i <= atom->ntypes; i++) - fprintf(fp,"%d %g %g %g %g\n",i,epsilon[i][i],sigma[i][i],nu[i][i],mu[i][i]); -} - -/* ---------------------------------------------------------------------- - proc 0 writes all pairs to data file -------------------------------------------------------------------------- */ - -void PairWF::write_data_all(FILE *fp) -{ - for (int i = 1; i <= atom->ntypes; i++) - for (int j = i; j <= atom->ntypes; j++) - fprintf(fp,"%d %d %g %g %g %g %g\n",i,j, - epsilon[i][j],sigma[i][j],nu[i][j],mu[i][j],cut[i][j]); -} - -/* ---------------------------------------------------------------------- */ - -double PairWF::single(int /*i*/, int /*j*/, int itype, int jtype, - double rsq, double /*factor_coul*/, double factor_lj, - double &fforce) -{ - double r2inv,r, rminv, rm, rn, forcenm,phinm; - - r2inv = 1.0/rsq; - r = sqrt(rsq); - - r2inv = 1.0/rsq; - r = sqrt(rsq); - rminv = pow(r2inv,mu[itype][jtype]); - rm = sigma_mu[itype][jtype]*rminv - 1.0; - rn = rcmu[itype][jtype]*rminv - 1.0; - forcenm = 2.0*mu[itype][jtype] *sigma_mu[itype][jtype]*pow(rn,2.0*nu[itype][jtype]) - + 4.0*nm[itype][jtype] *rcmu[itype][jtype]*rm*pow(rn,2.0*nu[itype][jtype]-1.0); - fforce = factor_lj*e0nm[itype][jtype]*forcenm*pow(r2inv,mu[itype][jtype]+1.0); - - phinm = e0nm[itype][jtype] * rm*pow(rn,2.0*nu[itype][jtype]) - - offset[itype][jtype]; - return factor_lj*phinm; -} - -/* ---------------------------------------------------------------------- */ - -void *PairWF::extract(const char *str, int &dim) -{ - dim = 2; - if (strcmp(str,"epsilon") == 0) return (void *) epsilon; - if (strcmp(str,"sigma") == 0) return (void *) sigma; - if (strcmp(str,"nu") == 0) return (void *) nu; - if (strcmp(str,"mu") == 0) return (void *) mu; - return NULL; -} diff --git a/src/pair_wf.h b/src/pair_wf.h deleted file mode 100644 index e4254f4ccf..0000000000 --- a/src/pair_wf.h +++ /dev/null @@ -1,76 +0,0 @@ -/* -*- c++ -*- ---------------------------------------------------------- - LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator - http://lammps.sandia.gov, Sandia National Laboratories - Steve Plimpton, sjplimp@sandia.gov - - Copyright (2003) Sandia Corporation. Under the terms of Contract - DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains - certain rights in this software. This software is distributed under - the GNU General Public License. - - See the README file in the top-level LAMMPS directory. -------------------------------------------------------------------------- */ - -#ifdef PAIR_CLASS - -PairStyle(wf,PairWF) - -#else - -#ifndef LMP_PAIR_WF -#define LMP_PAIR_WF - -#include "pair.h" - -namespace LAMMPS_NS { - -class PairWF : public Pair { - public: - PairWF(class LAMMPS *); - virtual ~PairWF(); - - virtual void compute(int, int); - void settings(int, char **); - void coeff(int, char **); - double init_one(int, int); - void write_restart(FILE *); - void read_restart(FILE *); - void write_restart_settings(FILE *); - void read_restart_settings(FILE *); - void write_data(FILE *); - void write_data_all(FILE *); - double single(int, int, int, int, double, double, double, double &); - void *extract(const char *, int &); - - protected: - double cut_global; - double **cut; - double **epsilon,**sigma,**nu, **mu; - double **nm,**e0nm,**rcmu,**sigma_mu,**offset; - - void allocate(); -}; - -} - -#endif -#endif - -/* ERROR/WARNING messages: - -E: Illegal ... command - -Self-explanatory. Check the input script syntax and compare to the -documentation for the command. You can use -echo screen as a -command-line option when running LAMMPS to see the offending line. - -E: Incorrect args for pair coefficients - -Self-explanatory. Check the input script or data file. - -E: All pair coeffs are not set - -All pair coefficients must be set in the data file or by the -pair_coeff command before running a simulation. - -*/ From 4925243d7e0e4349f87f9d0a4003fbd77f913ab1 Mon Sep 17 00:00:00 2001 From: Simon_nimbus Date: Thu, 5 Nov 2020 19:50:54 +0000 Subject: [PATCH 18/32] corrected mistake with the link --- doc/src/pair_style.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/pair_style.rst b/doc/src/pair_style.rst index d6dde6b336..524581d2c4 100644 --- a/doc/src/pair_style.rst +++ b/doc/src/pair_style.rst @@ -327,7 +327,7 @@ accelerated styles exist. * :doc:`ufm ` - * :doc:`vashishta ` - Vashishta 2-body and 3-body potential * :doc:`vashishta/table ` - -* :doc:`wf/cut ` - Wang-Frenkel Potential for short-ranged interactions +* :doc:`wf/cut ` - Wang-Frenkel Potential for short-ranged interactions * :doc:`yukawa ` - Yukawa potential * :doc:`yukawa/colloid ` - screened Yukawa potential for finite-size particles * :doc:`zbl ` - Ziegler-Biersack-Littmark potential From 21cd69b5d7cb5047ce738aba0982b0ad1fbbe476 Mon Sep 17 00:00:00 2001 From: Simon_nimbus Date: Thu, 28 Jan 2021 01:31:36 +0000 Subject: [PATCH 19/32] Changed the header --- src/USER-MISC/pair_wf_cut.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/USER-MISC/pair_wf_cut.cpp b/src/USER-MISC/pair_wf_cut.cpp index 2ca8ba4248..79c60e90bc 100644 --- a/src/USER-MISC/pair_wf_cut.cpp +++ b/src/USER-MISC/pair_wf_cut.cpp @@ -14,19 +14,19 @@ /* ---------------------------------------------------------------------- Contributing Author: Xipeng Wang, Simon Ramirez-Hinestrosa ------------------------------------------------------------------------- */ - -#include -#include -#include -#include #include "pair_wf_cut.h" + #include "atom.h" #include "comm.h" +#include "error.h" #include "force.h" -#include "neigh_list.h" #include "math_const.h" #include "memory.h" -#include "error.h" +#include "neigh_list.h" + +#include +#include +#include using namespace LAMMPS_NS; using namespace MathConst; From 9ceef78becb72dee3e38596088a2b31607933fa1 Mon Sep 17 00:00:00 2001 From: Simon_nimbus Date: Thu, 28 Jan 2021 01:35:15 +0000 Subject: [PATCH 20/32] included inumeric instead of numeric --- src/USER-MISC/pair_wf_cut.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/USER-MISC/pair_wf_cut.cpp b/src/USER-MISC/pair_wf_cut.cpp index 79c60e90bc..fa301b55d1 100644 --- a/src/USER-MISC/pair_wf_cut.cpp +++ b/src/USER-MISC/pair_wf_cut.cpp @@ -205,8 +205,8 @@ void PairWFCut::coeff(int narg, char **arg) double epsilon_one = utils::numeric(FLERR,arg[2],false,lmp); double sigma_one = utils::numeric(FLERR,arg[3],false,lmp); - int nu_one = utils::numeric(FLERR,arg[4],false,lmp); - int mu_one = utils::numeric(FLERR,arg[5],false,lmp); + int nu_one = utils::inumeric(FLERR,arg[4],false,lmp); + int mu_one = utils::inumeric(FLERR,arg[5],false,lmp); double cut_one = cut_global; if (narg == 7) cut_one = utils::numeric(FLERR,arg[6],false,lmp); From 3ed1aa3a72099a7c4257f80e1947365f50d0447c Mon Sep 17 00:00:00 2001 From: MAC_simon Date: Wed, 27 Jan 2021 20:57:46 -0500 Subject: [PATCH 21/32] replaced pow by powint --- src/USER-MISC/pair_wf_cut.cpp | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/USER-MISC/pair_wf_cut.cpp b/src/USER-MISC/pair_wf_cut.cpp index 79c60e90bc..37965c7368 100644 --- a/src/USER-MISC/pair_wf_cut.cpp +++ b/src/USER-MISC/pair_wf_cut.cpp @@ -109,13 +109,13 @@ void PairWFCut::compute(int eflag, int vflag) if (rsq < cutsq[itype][jtype]) { r2inv = 1.0/rsq; r = sqrt(rsq); - rminv = pow(r2inv,mu[itype][jtype]); + rminv = MathSpecial::powint(r2inv,mu[itype][jtype]); rm = sigma_mu[itype][jtype]*rminv - 1.0; rn = rcmu[itype][jtype]*rminv - 1.0; - forcenm = 2.0*mu[itype][jtype] *sigma_mu[itype][jtype]*pow(rn,2.0*nu[itype][jtype]) - + 4.0*nm[itype][jtype] *rcmu[itype][jtype]*rm*pow(rn,2.0*nu[itype][jtype]-1.0); - fpair = factor_lj*e0nm[itype][jtype]*forcenm*pow(r2inv,mu[itype][jtype]+1.0); + forcenm = 2.0*mu[itype][jtype] *sigma_mu[itype][jtype]*MathSpecial::powint(rn,2*nu[itype][jtype]) + + 4.0*nm[itype][jtype] *rcmu[itype][jtype]*rm*MathSpecial::powint(rn,2*nu[itype][jtype]-1); + fpair = factor_lj*e0nm[itype][jtype]*forcenm*MathSpecial::powint(r2inv,mu[itype][jtype]+1); f[i][0] += delx*fpair; f[i][1] += dely*fpair; @@ -128,7 +128,7 @@ void PairWFCut::compute(int eflag, int vflag) if (eflag) { evdwl = e0nm[itype][jtype] * - (rm*pow(rn,2.0*nu[itype][jtype])) - offset[itype][jtype]; + (rm*MathSpecial::powint(rn,2*nu[itype][jtype])) - offset[itype][jtype]; evdwl *= factor_lj; } @@ -236,11 +236,11 @@ double PairWFCut::init_one(int i, int j) if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); nm[i][j] = nu[i][j]*mu[i][j]; - e0nm[i][j] = epsilon[i][j]*2.0*nu[i][j]*pow(cut[i][j]/sigma[i][j],2.0*mu[i][j]) - *pow((1+2.0*nu[i][j])/(2.0*nu[i][j])/(pow(cut[i][j]/sigma[i][j],2.0*mu[i][j])-1.0), - 2.0*nu[i][j]+1.0); - rcmu[i][j] = pow(cut[i][j],2.0*mu[i][j]); - sigma_mu[i][j] = pow(sigma[i][j], 2.0*mu[i][j]); + e0nm[i][j] = epsilon[i][j]*2.0*nu[i][j]*MathSpecial::powint(cut[i][j]/sigma[i][j],2*mu[i][j]) + *MathSpecial::powint((1+2.0*nu[i][j])/(2.0*nu[i][j])/(MathSpecial::powint(cut[i][j]/sigma[i][j],2*mu[i][j])-1.0), + 2*nu[i][j]+1); + rcmu[i][j] = MathSpecial::powint(cut[i][j],2*mu[i][j]); + sigma_mu[i][j] = MathSpecial::powint(sigma[i][j], 2*mu[i][j]); if (offset_flag && (cut[i][j] > 0.0)) { offset[i][j] = 0.0; @@ -378,14 +378,14 @@ double PairWFCut::single(int /*i*/, int /*j*/, int itype, int jtype, r2inv = 1.0/rsq; r = sqrt(rsq); - rminv = pow(r2inv,mu[itype][jtype]); + rminv =MathSpecial::powint(r2inv,mu[itype][jtype]); rm = sigma_mu[itype][jtype]*rminv - 1.0; rn = rcmu[itype][jtype]*rminv - 1.0; - forcenm = 2.0*mu[itype][jtype] *sigma_mu[itype][jtype]*pow(rn,2.0*nu[itype][jtype]) - + 4.0*nm[itype][jtype] *rcmu[itype][jtype]*rm*pow(rn,2.0*nu[itype][jtype]-1.0); - fforce = factor_lj*e0nm[itype][jtype]*forcenm*pow(r2inv,mu[itype][jtype]+1.0); + forcenm = 2.0*mu[itype][jtype] *sigma_mu[itype][jtype]*MathSpecial::powint(rn,2*nu[itype][jtype]) + + 4.0*nm[itype][jtype] *rcmu[itype][jtype]*rm*MathSpecial::powint(rn,2*nu[itype][jtype]-1); + fforce = factor_lj*e0nm[itype][jtype]*forcenm*MathSpecial::powint(r2inv,mu[itype][jtype]+1); - phinm = e0nm[itype][jtype] * rm*pow(rn,2.0*nu[itype][jtype]) - + phinm = e0nm[itype][jtype] * rm*MathSpecial::powint(rn,2*nu[itype][jtype]) - offset[itype][jtype]; return factor_lj*phinm; } From 0f31cfc554b63a23bbc9f7fe16d28e5683b46b7c Mon Sep 17 00:00:00 2001 From: MAC_simon Date: Wed, 27 Jan 2021 21:21:23 -0500 Subject: [PATCH 22/32] corrected the documentation --- doc/src/pair_wf_cut.rst | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/doc/src/pair_wf_cut.rst b/doc/src/pair_wf_cut.rst index f495ef3b2f..4236c2cf51 100644 --- a/doc/src/pair_wf_cut.rst +++ b/doc/src/pair_wf_cut.rst @@ -68,15 +68,12 @@ The exponents :math:`\nu` and :math:`\mu` are positive integers, usually set to **Mixing, shift, table, tail correction, restart, rRESPA info**\ : -For atom type pairs I,J and I != J, the epsilon and sigma coefficients -can be mixed. -The default mix value is *geometric*\ . See the "pair\_modify" command -for details. +This pair style does not support the :doc:`pair_modify ` +mixing and table options. The :doc:`pair_modify ` tail option is not relevant for this pair style as it goes to zero at the cut-off radius. - This pair style writes its information to :doc:`binary restart files `, so pair\_style and pair\_coeff commands do not need to be specified in an input script that reads a restart file. @@ -89,7 +86,9 @@ keywords of the :doc:`run_style respa ` command. Restrictions """""""""""" -none +This pair style can only be used if LAMMPS was built with the +USER-MISC package. See the :doc:`Build package ` doc +page for more info. Related commands """""""""""""""" From 46984f69ee7ad420651d33d2da6d052a7ede6e76 Mon Sep 17 00:00:00 2001 From: MAC_simon Date: Wed, 27 Jan 2021 21:39:52 -0500 Subject: [PATCH 23/32] Added the potential comparison with LJ --- doc/src/JPG/WF_LJ.jpg | Bin 0 -> 299129 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 doc/src/JPG/WF_LJ.jpg diff --git a/doc/src/JPG/WF_LJ.jpg b/doc/src/JPG/WF_LJ.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fdacb8e80ab6a3001b161ea4505f1c0ac6954346 GIT binary patch literal 299129 zcmdSBcTm&o_bwU*1+gG1U5QF30*Z8yxK+S}9gxtwiU=VFq$5P4h`Oc776@#qQbOoG zbcl2T0Vx3qJs5gPKp{v7=cD`kyJzO!bI#nk=Z`xlnMvLu$>;NywVw5?=Up%RU-zd$ zC*cM#1JHp3Akb~#3EH0lS?dR)9)ds!1V{k{0`YsTRxcuvj`>P<$J8qu7o<44#kI!FKx(w310Yh;Ax*G8K z-Io5{JUMhOax@xL#=ZFL$UiHr8zK82K?1x7m$}Bd4hVn_3LM}PII!Oe0s}odbl~^n z_s@Wr0|&Xd4;|*=J;HYs_yXx9&~+}ZgWOz)4*j~#fv3RdAZ~#}r!HLi-X~^cW)ZT9Ik|ad^J({{KDcAb7S-SkF9Oi&d*=t0_OAIVF9oI zj_m(7E?^Q49OUNa;^z4^t^)@HehplJ`_P3ehfn=s%5%@_^hK5Dyk~B_OD}CYB6$_b z5WMf*&nG0MIwQ^eHMHL&`+qmE(Em>(`@aVE-^Voux(OKB|K4LCxXAzB6@XvwPXK0# z-KT<%aUB4RiAw+k1#viXpbrP1@qzvyZ^tH_Z3c9&Wi8om|E1=japTK(G$h5uYS=Gg z+2JZ|pkhqUmbQ6kh$KFGx4g8hB2-JZrmi+o?)*zJ*aLG*cX62dL=2^>%wcjYXzwFV zVIRamI@JrZfVyDGh#R*A=3`II*6(sMTrw?VD#@`bQC+mVP$u#pAOUEv;YGIv&Jb7XrjsDS zxfP$-H%~A8#7sqC?Pkyoj`Ej$jdsz6T$aq_cN~&v2~-4Bk(1a zx?s1$0RJJ=NTN<~X}RY(!pGRu>GWfttXzWcxRbltA$KBx&!o-PM7{w(He zVQy|s@4W$5G@5#I%VJR3*U03})JgK)zBf)n-#tax;Bv~EWGN=NwNZdIOK`GBYu~bc z+17w>*vmudNoXL@hsm_)qbZi10~U#M*#2#gSr_@XQQru9(87?5da++mch5z$oJ0?W zE0ob)DmnCoS3qROy3k(Stm($a1{|J@bBEq{8cWzh?}I{LVtKzn-J(Z*I=%!>eGF=7 ztu-!o@$sOVM6h{iV{(c_3j6r%KImBQdhkrKklS*=qiuC$#g@jFhPw9T^IWu^#L)K! z#~&2~i0n9$NhWM`tRb=TRk*2#DMI6LT!Mw)=i;T*w4`#=pL6g2xPAz926X4Z{}FEo z_P_kky`4V+>X!C(WGi^DP+3!WkR>s{mbP3}TKUuqLRt9`R(JJi zn-?0xv}>zO1uxt*Q6#N`pcqi!^eZ9s~V zm3YVBaHo-??_}Bq66QZkdOlPU#%XBTI@LpLhtcb)-|B|%2@iQ}3Canm)pQ{?+;Vu3_6X!%GqVEd;zpU7t}siBiTeShL{ zftj-XiUY!8jI1iENWg8!R&TcC`xW)^U0~s6(@tl%y;&(zbjX-2u^+*fmwUt7A@R_M z3fR&)n3h)XK&=1OM#`B4m2jeEFCc?+&sv;VxZY12r*Bjz^}yFQs64~{V_pAQT<$f;=>fmn!DovIZy+-!?WN2 zKL?wG&!F8z4*%tO4qrKA0sGbIYsXBcR~@<4BAD zupweFXgvpUW8rZ}C4ca2 ziS9+-2Jy38_(%I*&OpDtWnGo9KE}*D@QfP?6IoelO^niIuTOP%4O6L8!wyP6o#KbL z9}Qw0*p{$dA0G&OJpn(V-v+k%avlif&`wv*iCWfJFw>KBRFPTL5}m8K^_syyGX=QN zix6@1>crbCw;T_USnp{N3)naHFAg_nP5%115&&@p_t3|L-PT3>$E;vF(yntUgZ}7z zG$Ii`g36HWnlO@_e@We(_8xHZY3$fkYzTbqx0A7%e$2uo4VdQo>ifS{wkfPbjk+m z>WjNG%ji!pHA;6L5_SBkgzktpwo15Uug9yJohg^A-&08!E*$iZMd@@{Wn~Q1!VQOy zr9ZbkfPZdj33|nSHW%Mr{&OjWkfMC(B=6nB_vH{iQc8xOC4K>?^gNNXAVFcdv5#pkhi=q?mcy{Ku&< z^68>O$y07sZ)ZC~4t~)!@;Pg^YLKW}JLDlC9r)qlQ4-D2>P$*(P`6dEQNqMR95T{2 z3cok6@%h_Ooc%o>1k{zsPtC*8cU=@N?_+C)?a?S2%P%x}^5Mh(m46Qef)E*qNcC&n>&sTdH_oYS~{|AbL-4zKa~dR$>=5 zM>pmFphQHQFXr?NAv_NqsVVj|uqwgXjWHLOIfg760PgL!E}VpY(4m~YhKwOa*NT`~ zn$s&kImCaq36I8^}|mAxv`JDv-J836Y0r2IldXdA~HA~<2& zE!altYr%1uczSW?>I$Dk%wQC5yS{pGsjThNpM_`B|G6EeDQ$E7I8k2d!MN0{RAC@A z0-r^VsE8}5sED;{_?A1`rdp7du};>gZCEA;*#=i7My4s{-|B;B*>H@V82&x0DN}4A zXWB~=iPG@7)~d;AbgS=9)pMHFpoa+%+A7*2zmz<=fd9UCqx+6EL7=3np;Ga5!IwHS z%bY$A5(|0f3ltetieCJP2wC=0w1hMe1nyzk@-2F zgvGXBtM$n21t44t77~WH#NMVo{?LsIKp%a1T!<<-R9uI+_Goy|Gm!dI&&A{I&x5{u ziS+GzQak46A0`GpV-yDJV4dC*4a19R9kT4x!qX${vo^qj-erl>`lvixL4Y}zVs9`4 zUa&7Pjm%kwI0D;dFNdRplDLrI)UPW$VWM>y>((I^E_EgD;UudyptViv$aIAwq z_5tbkJ)`%7Ww5%XB+JUerztLVl){S@0l_DihJ2Fc`~9vZMkLLdn$C|dKUIVObYJa; zWQRoWgIeOr(@T0l`f9y=OZK4#XLzcD!Cm>~56Kzy+5B4B162YtNA|wrsYl2`mK+ZY zbmfp`8A3hA6QMLPN8j#4IV_Z{c28pS3eF}w<3gxP)*bjE>`1hFI9wy~*VS>;OZH08 z>C*U7&0ZYZlNzY-EpkIo=+t$d7-4DrM`Yc(?i)0DWP97W@_wIoQ*UFH zP;9xMB&=rG3dq4bWmhj2#ne0Y5Fn~sUI`Z~GUk!s1n_ANH?FA_e2k3Q)7XMCh1r5v zX_&rt#hZqMYR92%)PPmg?u|AE2Lrjo3eFE4{gdBsW^3>4tS{3<>>OLzH-gmcFe*@FhDvPVeVrY*y*_vj`( zmM`T;2xbDh*8&IJQ`{i}VioDTeS_W2jmkfd-wQMX&#rjecN}S}wpH86o0JHCG^dL0 z7DZnDIGcOlnL{q&lZ)=CJC|9o=D&`ngF)Xx_R@WP1q@x|ui9|pqx7^%Z4a5Yq};Z!pv(`t(FrWpo*B@^RAfRhyB z7Ay+kCv%nO8~JFF#7LIac^WoUZCF2*K6GUV-DVK@$X?EvU2#PO)|JJexWR!7m8=y^ zhz|NbnogemQM^I|K!6T#pA;P0X>@G5c=ak{ox``8vk-EaHP6^?0iUjy&tj3cO7=4D zGS!nlurfYREeh4{RYox8?FKIl4foG*zEqYEd7if;x&fL|sDTNwtk!CH#NSRSVRWgu zFtLAP<*7zRPF%8E)rlttSMmB1PjWZ9u8`I9Om5M^er*uPlh+n-O+x#i>7^Ghp$zLf z!D9#6Q>5ZmZ5ykLH#$6<We& z=RO{Yea=f#=OHFDqw#jWawkJszNDDH0 zk2kuCz1vPF>^RW71|nZ7tWGU$^h3yKal`i=?|UG-r3tkJ6ns^#V=_Vc8<{OA3kMcI z3_2ZyX7F>wARN9zrc=A&RyajBID;jHmE6nbXt>WCr_GEqAj?SBn|hm>K3-CRh9T|n z--(ZEgO*e@tH{Fl`z0%lh#2L59SyW}QB(u6)|fg~3**tb6F1Le5`Q&k-4s4vK^OOK z+aUR74<}Abiek`5>lq{4O8|J>p( zFJQOJ2P#fZG2?+KzGZpYrZp?=CFtct1B?3svwUOD{3ZQPla5Pc2+Jal6{%?IY0SB0 zw_&k@VrdWCzp(?~h=J{!;TRvyjZq~(QFJds_*YQ*C8)2>OLt9OwK9q~?t5o|xPgp2BfWEz z$xv+OP4=HFHcbgwQAZ znW7=oxC=B`vYJ_TJ%46ud46*A}WSp?A4?ciMiLdD2y*>86P0z9jPe%?- zk7!Um@v7Ole-|avnFAKRf8ELv3WWM#C}eGUAH=6)trx!d%s)O94~=xW{0@%eO{3xl27P)-d!K{1tQEh{<3g+V;D`PRH2!*1U`CNaBXdP@H)cqA}UkNLEh^NgcIW#O9 z!3>mev1z3;5rAlTlr!l>vRXy#USI1SzD80@U-4d#e4D(Y z!<1xz{g;?BvpEaNBXc<;yAApwF0Qu1+eO=E{-}*C%DA%hQGI=iCtC}UREcBH0SAgI zk?p4AW(vuu)y_>%-VTnSR%?MVSN>(H=&_7z>3snnftyNJpJM0e3D<~a_Q^x^qm@bc zI5X2UNecysjeeY965iTYuhIuS@i^g<^RS6kcQ28{3uOO1W+|hgW#YFqgs*q`y*|_Y+S4YnE|y0os&oIah4~PAq?ORp-Q8;Py_YwfqQML! zz>I~rf?49s*x9K_@^o>P_UkY`UaUOp1ryz-?f-n&nlo^Ed7E>Vl-RajN%t;t9yHIsR2>G!FD#TLl_Z+JpCX`^ur6+E#q zT1qsX+7?t?&!$+c=~q*IP`kOE8$=0|Sa`NCX=n$`tR4e>et;qW3N#DnuW~y-XQYXnt5hFty_*tVhPP5mBCQhE zT^2_CDeELWB?*(0kdH37W>6@ILyODQ5O_N`*~Xo)A`i5=F*5T096#&g6#JY>6L5nL z)bwFd*)7r@v9dU!#v4Z)ybRf3x1`Yj?jlsJ2vtsKxVoMT8b$SlBq=^As%h++#}k5( zbW=>HWmLmF7CBjIAS;)ju|rmTDpAJ48NuBj7T^Ovt_cy=;(#Q-SlU2g58dhR2w^10^MH+Ymm14h@j|LM)ufWM@UxivD=S;>y(+eB z72~cY73_d<|BJ->3!n33*Cu2kut|o8d-h;#I1Ik^dH~Fz1Ado<>%G5nSX9sXmthdR z#45!(Fm-?D14EIYK8xML)ZsNm+I`~UEHpRKE}vszql<^S#e0pj(j{&;*i+w}{gGHj zp+9ll2Q|J*z~35(@qmpQn9?ob?ht&(1ORpbMbG|d3V2dvsdEJ+?^lk##@gtbhO%wn zo_&$hwE_=)9(uCSxN8gB3GjW0VRyOxc+o&D`n>^MC0Zpa5v+D=eMPpoF@f}wx;^VB z;o)fcf!46*gvrjkS}2TbNdVa3TNAdP(#KP0r#Zi@uv`21r%aBZ&audM;0f!|b6<#` zR#YoSl8jxu#l0sz)bXo%FvP~DK2T!fofLO>C%XWz=qaM)-qqWM=)__Om~jgj@rl0o zxEYW~*#T5Kk4KVoRP=6#8y43B1ca%eD`AmqEaSuTeb=1ti*&Vyq4Yf#F$D4q#~-7k zXjxz0XIeaMZfj)t3;ut&d-SM@tMzpDNb@|X*#}ADrgP$PjK`krQ+8&1X%%TyFo!Rf z>D+Dwt$4Z~y@EXva*8vE6ZZ=n%wj$Dn$|(Mo1D^!(AAhREPu7YzR~|SehZdUdf8q1 z;z!2CaWx)kzr6WK9kgOS)jx)+?!M|C?q_cSGfw`H&Z8Hg30E{YjpK_ckBB>)8g5_y zTE(%q^yhRMLw|~;{bALUg|&#;Ao2iCmOZv-dob%cBU|6a8~$#d#Y&q0b>KUYNWe^ibG)a&)a($a}*N@ydi5w)ykL|3^Q>KD#`{%F}?f&>OV!*01 z<>vds5Ru?6FUxtafvaX7fSho`{?`hqKxe%YLjnMT5DUbzT7zdtt^n-ppE(s{DUr!} zekl)Qw|$Um<>nMAad>4yj%y8Yukx6`*RuP*e`!6PH z{<6#P3Q!KRXV)%d@P#O*H5se$PzTn|+>AT+0rRy0mA%{;-tG8ywc*lMgjHp(J(dD6 zBOm2(M97x9zlF0fdLb(vu|e&mnAqIF=0T?;(inb!%yYoP_f>j2esO!9_U}8xv>$8bNwfKCy+?zs z9dasv4w1%f8>Sl9k90N}c(YTPA+Le(&KIc6;d?Tz%#s!&0AsLV<$LYkz~1PuAfI$= zyi&eL)KiBxyQwa(zfRn4C7@UDn;av)5eii0Kekla$L%PZ;;CkH$=UF7r*ta}9b!r7 zX4}FH*_Tvz)x(l){47^`jMDFItLRm8~O@w?R)dL?c$zTC_e46uQ}_ovIA^T zgcSdWi~HH*04nZZmctz~3}i|(&6QH))>t{|lAfxd`1^l#9k~%OgkOuFWXCjY zdt5Qw_NZ|^LybwkpPVlV1a_<@u{EP5p&k_HFl=Mp{Xd1bp*4pSVi+8W&-j}l5!;_RFnUTf3^ zh#)pK`eZUH;--hvuIZyL{F{RlrBrZD&Z^s{^s?GtkTEN{av+drMw9zk%uL*+F`KOM zwg9n!#suTBDYU~6<2~V|U9~>TweRO)Y?&<+)C~|t&sbGpOJC?iJrY_ ztSId9eT#|4l;U#lWw#DHsWJb7PN^}Uk<~ek+AF=rVoozEc=k z=u+beAQxi%HMQV)cH~F?H!@R*;Q2ILJwF3=MCskJ5wYmeVn>LAgVb7~P#O4fSRbbzKpZ^q_unZKYgen35nb zSvyyLp_Ywfj}Zo0hW!$O6D;f+doeZ{;WhWd>;!6YHyp^+i%S~PduJOEE;1id8#hz( zG@DN#0nGRv6mmDn%<2hf0vE@4a4Yrvlk3kqIEs3FB|MPOUjO%ZQrcV-Q@-aPanBU0 zOwsoU@?tq%gH8tDqL968d#FiyKIY3eGWw^sOZ#DMl?{Mu>aDYz|IYB8v3=yfX4&(Kou9gf+qMbL{*GUQH;2u6O$=6`}8A8WZ_6nGo~^VF*L`OjJ(C z0aYfWjV9rzl5??unR9<+-2~ta5JsA;L-+!_XQx(v0C;B4dNV!669}d~U2iUgchII* zZ!-H}BWv|H34zWnAqt5bz1_{JCz+Vch1oxu5Ai%{K2JQo0-l~*RM)e=y;hjjG@E}Yt!7DV8G;)bnltttv zYWHJ;4-@mf@YY1%4_O%v%if(8gLL>v$oIGh>nv}8)0)QagTy0C=-o3gS(G%-{Ibq-_zfvQk;0C)j!+RxZvmE4MaMm+ikKyWilf zOcx(%=d8^77mK!UMorMqJ;;PKOU7+&nIR@@hQs}1u>%7L0%F5)eBkv}^O}OV=-<6I z_U2&=sdtF*5jkRGTd6x=I@7M)X5BFsra!!Ya|crzFxy4MtgX7b`i(Hl``5<^WBjOV zXHi;?8&P>J7M->B!}RSBiB@pzfK`R86)lY=r?CQT1@g$^nl$!755XdwVX!!Ex-bO7 z1d5Bems5{_`H=#i=~y*oZr@=#n*jA-r@ykGu$uA`Cir>18lfA5$#YjPo6L9ra;+gD z&Ff)Ij|XFbG>96_N=f$Iib0K1heszZ{re}XtA`SF%@?{9f}E)O)X9AiB)k^+*uq&} zYUtsIb;~0X>ANzxCSCIM-1?aK)?=31?j7t^zy#`-sLIb8HCU1ctmiWhvh7fk>#CqD zElR_X64f#M9{CHGUIhVmow(8LyjB1h6F>YGS-` z?#>h=k7r#{q3s`a_&qNCrMRRQm>Z5G@fH`yC6&z6H4XuFL~Wa$nmMwoD3bdZLeB}; zRRzU`PK`X{0;Q>o9#;_5Eo9k%V%B(q>bx-ccTNSkJ}k0icjGY>(8~f?aW1dfwl3l) zc;5tGDLr=TQn{jyt?|;b+nCKHEVxeJM$a?IblVx?2p344&jF$dM#+j`?J#=7vM%`n z75fD{Z02RPEi11N#6BQv)$<0j)@~lYmUq7-ldOm5mJaaD=$-ICaQ<$yLPR_T4si|9GyALMrLc5T%57vM(%VnjMOc*}+bwE)8Sr=w zshtaI5-4v2vmVPXC#&52+P!aD_6;!}@|&X@UGNj~-c#H8i3{ukV7;>foj50ifCil9 zGd&*;R4B3(`r5!^)@)Cv(;K$*Okl`KfRUe73r>L|8NDg#?m>~YOM&^#lLFzx1Hlgd zlRBp#j>Kg3_gtvF-TKgnlp1e^a8GjF@UN|Kd_#n+6^!Z2!)knx$&X?qES%T9yF3%{ z*Tn7LZkN}m>*yOG_uzv-HW&qF_^GEm-wR1&SO?#Z|2f>tl*CcTw*K*d^RV)jIZO=v z(z}(;T@Wi0nR~T$gX{8x09C+cHEOLa*B2Lia8hvu1)pT|hDZu+)%{)6&WEhZ0IQhC zNY-qRP^__s5FjrAb)oq?&>9qLAC%hn z^yCgPcvrO0qZlb(J!lz&jDh*|y;pJxLMEFN%<49wdRrK&L>>83Z!y6@~ zc2k>$-vM;r7NGmNZ*Kzp>=8b|Km*9QID;+cueS5;gW7VrvFQ%44Dbo7jue| zdwRO$N7W7|tV{FW_Q>vvoTzYWu)ATQWmg}&9d~z(Qr$}tuBC;TvTYgL?6ZmtG>6ZK z;mkSmgyzXoAh#WziiV!`H9uNV6pMa(4+Q-+=;;ZgRPZ= zw#4UZUp?=W7;QiQ+*~y4km?_=lZ=h@psQwNeEUX;GdHXA%&@GB?+z$eP)U$XB1p^i z{Lw*exAK!p9J!sVy7vh-Wu%|e>CGur{v9QV4~_xOS$C>Xr2Ut)?HkY29f$E^WJR_8 zLwsM2&H1SH=A8|xi;9`hQG1wJUXIXlZ?GGf5Y{%!Czk|~f+;UZH2m6ljYuN}gbXObSjgCwIKR{f5VQ`&O*#$v-OQI$LA?`axMC+41O$dXht zNWzvyW~cXv{-IDB_hdvWPTa!TGMPs{pX{uJ-jvfWor`B;lw1WxWO+2J9?)eaPzERR z$-fa$-C!TYx`YWm*q!#v4FWV%;x(vbMxKAH5dFe|J0i5hmu_Ai^j|5$?^qNo#;+F+ zSlT%_PScU>(o8M2VC6@}a>(t5>}^uw9LC3J(gGvW)V*Q2rB(WSFAqZ=bJ|MX3)2H| zs>z%KSpW;;9*nS_kpKpNN8Be^Jw9)JGKQ6b zA4<+h@>)LqqvAile)kGMIHF3Wl!0nsK*`zqVfLQuRLGeFF5<0GkA z@@+OAz1{;V!aBF)1r_PJ&f}dkXOSO%OKJK;DMPDBh zttM|&*%_kjx(`xz4o3InmwPB(VWq80s`;ns-u+i00+2;3yi`-+w_ZIMEAm*IEysmE z^zHO+iv5eZIzEyOx(dd+T z;;2H|P~F=GzXBrBKj0(KX&RXY;cqe#!v^l9lBWy6C)pQfl)2a@^(>2=UurmjU~d!k z$X>K_%FT@uO#5y1_(mZ{TKLMhL2+ZIUIHKD8ohp7*vVaGw7{SC#K=ZwkD~mXlvOY> zuttlolcf||rx+^45cs@fiN;C=_}fkT=9Xr3q|Y7v?TYN#wbAC}rCt^K9>C6jOU=`V zfJVDDJuWKkm)5+t7iu5R&6evm?6P^`$+s*7kJnEsPN^&-r%@MHiudUGl(tO@1yGtR zyh8?3V%?dq%FALS#me9kgQ#jB%A5aEmW}`*mVarZgQGICl?+~%>;^$+%+DTDaCTHL z2vZHdQ=e-Rvt@CS-rXmcwUgN+->v{FRQ@z>>mfD@>r%O%{N1t3vfdeo_H)zJ!#Gf} zgN@-nrf`%GAAmjpF}nQ?&_-4?xWpepf$9fM*jJk~xK3FYNl^K#=B~@uy3aBo5GN-i zPkKWUK51mtee3=f9=Yu{Y3Utz&f3R-iG;5$+iVWL{bCFjmW=!W5C!hvf*42=5Jj9x zH>=-TjrfJmA1hx^LXc{1T zv!e#ej2$=g&%~LZM&fH7ja4iYAQ3Th@KXsLQ&njzXdprY$ASQE>_Yx)A4KYFPh&v> z-mncB^D|F7!pvF|!7as9;@0yatn=ek4QBkyX^b}FVn?e47h^J7r6oTwvRcN$ApbDxLULt7ZFF1r=ae~0P3BQqVQC>c3a$?4ETdq-Fj+7PZj=faws7ti_362R z+_jI&fjjob5#@~H@7Na_?gDEc%8PYkWir<}M?`l;u=cD$ATtocB3Ws(COj<8c3a~$ zW-rN)1{MqqUu&7wXpNHSeQIaj@UX5S7y&UZ83gL#1H#*Tho^#ht5lQHiiiGlIOM?o z;QzW@^H(|aN8tX2SS_uww685QA9`<3?1O|)&)(&VJHG~%;X3=h`E+Ap)yk|yLV}IH zPPK!BTCjIJTzg^^=3Q}*f7Y_UCS-Ag2z`y`Y{skjld_ZJB#$Uy%)KLByE&0*C4cm- zT-gg6JW){46Xn*w#SdQaJYs%Rxv3v4@NE|E)K(rgcM>>`Xr3v@VdU# zxL+LWE<%v&MItD%b8*R;ZrArg`Z$)%Nb5Nb zS{3{B?A8TV1i_*EDTcN_dUFd$$*N6-D$(rbST-}k7?V}`XU%~>#DjBOCSvDqwVanb zLx6NAyw?yRqL(r?WQDr}y0Uf((K17|xfhTu!Ps!t6Nfa&>uOr!gzUL7%=+5I4Ji7` z1?y+l&u*Ji{u2GTeeIC)GI42Om+C+r?`J0@&6WM2M-n_4?Z{Q36#_@!iSZb^MP4-n zLMR>ZmTiImrc04iYdOMGvE=wA zE1?ZL?OUDNg=!fQ81?DZ$|xWC?#Z`r7Y#<{A_C}E^F6Q)xa0Q`-S43>PPG`h{0;eT z1A?Hunml^9rYUXl>8?9gx1Vzw*CY)^<6b&~Z%~C>oLI6}9mTJK!w9->oeUXHD}yxh zaa07PTlzD>vHQ*%V7>-48oiuBK^C-zpC?gI57sAi=*;o<&P z=;;^OvbdPqGO8Z!4ND$4NMdsu0J#p$K#kWuYf`Dc z^;W^X{}r{3oS{NOmj&J=`oQg5oqoc&^_$g)+b=}wLQ!Ik};&^ zQoGvYCA`wZk~kIW*Kmpg(&BMm9Aq#b9w%JF_7Qgyh-WQ+)OsaWMtDPvo>}?|FMFvK zEH>m-{mE?prHSVsaEp1Pc)W#GA`;enIZoPX7W%aq5eC4T%09>=T5t5vL}*9xXp!CJ zfiB(m_o1VuVNun=|Ev@fLIaE5n>tR9%XHGJ0`@`io~JGgL_cS{C{)`F1?pYy%)e8p z)f@g{FP{JKQtz1=7)@sJKH4SQ5Z91vF!y_WKagcI$*iUs6j;iM?lX$!ur+6SSN~<;^)jHBH zAByHHwDeOjuy8zQk*;YhQk!R2rBnP3YB zi}i%SGBk5K*~63$0T=#UhR_O?kpeiE=-0#0(Yfw!OHO~|uDz8wCh|C{*rLiaahVn1 zKuEFfdK@Py*JiAwSgm!<522<>dPpMe;AyMEYRaQVftJ+CqkgV_Rj=eMzMcQHd`jW4 zce;7qp>9EoLvPL>Xj6`Hgh?gD7~M*^Rbh8=pvi^zFu^9QOh!UWkjbm>&7GMzI-AxE zegozCk#^Dz<*GzVN8wJ@pDSRg?}KaxE)HF&E=e#OSoM4FSs>Y1Rb3vl#2d48gEHjl1n_a(bWB=# zRV38apgL_!C>c4va1mDR_!_=#;9_&ZfzZ>@8XfpTfJFhlxUWw9uY4ucSBxo5=pKd z^T4Rm;((1W@*THJzlRS^#<8@&%yM`$cj3OX9nf;Gx$D1#5H>^k^U3P-$tojYaxKH$52XFr^O1)RQn9Kx&PryMF#LH=nj5 z&Gq{TJAYd-3lhy1FagSH*n(3Qdr3c>!qY?>Ww0`_TbNo_M8M2Khy==!e<*`_CQYD7 z4?OOag65n8ocwZS;uL>@<;Sl(ZY`#b8eYbo?sszl!%GVHKC; zu{!0uQ=WSSre`BpC1IsxIfoy#k1>mQo9j46a1E@H+wgJ9;{ z`TrVrI>R{|h%;eqr7*I`;Eb#^e$UlMdP1zs8TW1!bJ2Ig!F|x_dAOA z6@7*$exBU&*uYN~_IjDdB?Tk_m8o=Dh~1=rY4S8(XTsY@-n)7d+mD~^mfIK%9TMgzL98TZ#)Pk`Ejm)ns$J34_vi!|P8v}XhEXd1 z@qMc3C*Fy#=yZu;*iSvGHhijxp<;eId5knRMwF&WHDn}bC7LGRkFzaH{;;<`34;~g zD(*fvQRp8{)i!wk8xZGl!Xf9Z0lIF%gv=P{=1ea9^lT-+=BTo8xO`M86_JDTcT{7v z=g&km7&Jo`h!rs#?PC`4OBAJxff9k4Mqx3BW7MmS&F97bj+@bhUkzIv$~C@|?9wAD zYiwE<0qaP5Z{V(W%HqP2CNL8T5ty;J~ZW;}VO9~?(ub9NEL@QrPNpf&S=hqnP z#=zvdG@$0FxZh{b!9CmTb5GJ(-W{t)LIYV*yPDrO8%dV4VEx9+JDHLI#OAq7pI)*3nl6%Cti z*471#taSN-pX;G_e+V{oppAla;X#wbvEQPVYeY0O!G-3p{_QwGiWyc;EXn9*PZnh4 zWg}0Z9WAYG{SEjChQkwB)z)~a-&610V&kbH;;>S^U6xy-#gKMlU_N5#Ubv3jcX8CC zZkwjoPxsdJGie356dLuZP;S71mpJUuv|?5IuJhxqC)#A>I6tcKKuFXIJ;+BQq?zeH$5Ac*;D7?RVG4$8J(BNVY&RVers%Dhir&tQE z9|4K~Es2Sv=|wY@r!`*HU!5uBp9x7J20G#nqT@Lt<;)-W!rpw`Q(_NIbFSJ6ymYE> z3;nG%-oH>3X-`s5ibXB0#rPZ1$aNleXmL3?IjXIOPK)%BTrHoQmdVA4D#l=BoJ(&( z+Qpz;G+9HrZuiW8BksMUn%cK^VcgpSqN4O7WGlUk^di|7z`%w`mu>?I7jY{!UIQoK$q@5=fEuL zfaUFoy(6_Zet0|W*+Gr-MnYXws?A}NhwNH*qYvT|qJ55Hgp3Bp{U*q3K-*=`@DyO| z>Rq$Cta217BCP0Bi~NXzBy0hEG9?})q=8BxzWD0%!{zdXLxY|LrucdhtRFM;$1tq2 zUwW0Os$~(KmX@(7HDXFGEv~CLs#9sRRnF{~vxv@kHB z3Zf`gATTC%@S1V;@4>o#(YKAPy@+fjB!G_x=ULwx(nv{gJH?Ek^x2FDy(7DiX(Z`) zvw6o2q@yrvL$jTlMRVUAz4=@wOTJh+HGi>GqBcnnCC@_pC~$qS=J%}}D;2U-tyj;i zo#TwQaIb>b#zMy8n4=e8%IZFo*PhK~P3dEEfheGE!jTri$XnFyPB>rpoWLGWf)H`_ zZvol|jrMvR7i%EDpgpVvXR6&rPl{{lBTqWbVh8zajn`>wf3#ei>K4$-HXZja-*F@k__9)-zuI4f+AP7oeY`|Fo{r+s!`1rl$bW zSOP#hPWOkHisiSxfu8Isu={qbAqTZXH0q1}+&6?8%88z`7_OoGJ8`)@SPaZVuWhf@ z){FWUzcOG(FV2+y@*6dHqG&S6?+%J;u(bZS%e0xnBV`T})*d%34 z%QSx*u5BbsBEsL9URtq6)}^x;CaepD`Md^p5()WDj3zr_04|&Keryc1X4wNflk3^R zOWL&1Yv7oCzUo}*v6>BQ&E~P{&hqJVy58RJ+~b4d?|iQsnCce!jV;o^YXrlZ-tT$9<#snr~H!SRocmZ(0aC8he9S{`n*Isf8) zJ3#4*sLiMd>c(xlzc&R-a%WfG)sa#>}ilUu&p7qtyqEY!I#6hRgyzCi_n~Okslofq7lz-Hzq0zjqZR?z* z%(7hd`$r>AIz2tgG*~Bk1SWG(e__{zdAufte|G?Q#981Cbi0zH^F;9(Bg7>iE$_`GtoJGcqIFbUtoe? zg7ZX5_Z$VL&E)59BM2hzZQ#D~bsv6tEK3$*NQA|8X8YvKM+K;rgylHW<#F`FpBzpj z!DdloIEZlaJnm+*7jAt7GGw)eO6`s?73Ph(o;wO38ZJamq-b z=a@I6OflPPKi$3eK+K0P00SX@^|7PHs~B#i?mv_bH}8V=8TG5KNzy*E$^pA*M^*v< zHqmzx{i3`HJP&^EDn=N06j33USAzxVPk&2epTlv4xhm#sf`sUcjttp21KrYVIL%Jh zq4{smyNEQ}Xi|0a`z%+VnxqNU+jDt=nxK%u>~&s@zOum5c5g+NI;6#BHhXHI&qX8^!J>6A5Gj`97i^&%iVbz4{IH%xH+i{Fino}}8J4+AjJon9fK6@phX(@GS)oM9u zY2vblf=YiN)WV|(i;`N+Xcm~hGrw-W)4Ru)TOg#G4CePT&bEv#Qg#|p|03=_Gk9s9O=MqT zU$*}OjJK#!RQ;x6PqJ@c>*ZdKtkwCDyT{766cJVOghmNm`1n8_PH7d!n%w$CK9>AM-oasgv%nLFbK zi^0f^wJ)r)1Oe`Oa?3Bs)@$JTbixtvLmV-yT@RPU7W76)P{y0zeRnj8kGwvg(^IW_ zjE=Kwrfe=cQ+zN*>(p{Q<*NFptUmExDL3z@Z>qpQCWhKhN}TkQy6>3h`Cjlr8d{_T z$`-1EM2INhF;L=H-*2O-DOKrfJwsT>v{*+1X>};oo+8=qt*!W=uEG&Bm{}|Ve>;+B z9a-j;d++@#q5P-7h zKnU57P9(nmh8O@>4Ym;`ug@dfeSy*6~1gz!I$T$gbXVO3G+SaC816? zBaxx)qFuEGFjqM$DB5>Rljnpt%~j^BOoAJww4`_=q;2H(2)RN+N7YJx$W>(gX5Mfb zTt1+9Y4JhMvU#~xfT_7+2~MdzWcYCbK(`MebLo~usVsh;dA|>Ja-=0!jO!C7SLcP= zL6g4osCMY&_WVFn_yXXh<~W)1=rF}kM6H7N>n#@uBa!+g;e@+Y^%I(Xjja3DVUcTU z{_k9!|G0i1aS01`eHpHtl{&e$inEWH_O+XBsFe*_#)dxb-3~38O)!6y;!*tXy%MA$ zk`fdLrrZEe@jrM?!#$Czm;;KTB0`kfQ)fo%s^sjBrYM`dZSC54)|i2#K!byeokq+V zjf~pF<|)_P;{cfk%fp)6}YhVhz$_Mb{QixVrB_t_^ z{)(XP16J+!jZb(Ic3^x7%T)MfH*r)*3{iauZIQ7)@ZzQIklBWrJ}0ywtvUBq zb5g~aSI@gn>lD2u=iIWhs8GWc;P-=Ej0AkS%it zZS!o{9kNji;N$FXgzB-lcG~D~V;9Dy8KLc2^eJti_+xHz>zQtKg4i4n6!u;|Q`|!F zjnBhm>m2+YU>Z#rVBdVnVYu$@XZzmB8@*SgdisQ1uN78NWBG9sFk2>Vcgr$&LdsTp z+o&tmFGV3>g=LD-E_yvj4JhMB~SJ(3Mc5G5mqd$I8)1g_UFP%Qd+}^0JWt z*KylhHfY2`86%TDE^p|$d&AtS9U`$7; z^b-Z_0Z`@kvlR-my;;&`w8`jQf0|ymBM|GBxD|?%RyF;l;80l^<(T z?_|~piUvQ=EAk{F-WI_c5P9D6PFRHR@N5D+HNK_hX!%$RnIKg&q+AnUz4Zf*av2dh z5MTgYu~tCLFon2CV%3r*F=5w9CpK9OOUKzHBQOj#2__lVQ-l_k4xheoGRLexo_IdK z`1?d~ANDNKz5Au++-WaEsi?~)A6@P$kLwKWYAkMD^E%v}1E^g}=^;6Zqsk)H{MGxZ ze(3>#b2&qg(nRwi6)B3|tEnQeq; z&R%3?pJkUVtRR#(2^M|co7-K6cYAqx0DPKSlw7%6ayI4yZ&NCO*Tu5C8*e%>ga zIM7QJ3%l>~vFo_Jc9bjb3qIYpFx_fW`augsrNu3L=OL5-!(VPAfIZh&?FRk`CfjI% zIS=Rpi>=iI<88IZ2TsxZP~+ps3rGrVkjbx36Jw=)#={>JvwdK*zT3dgqC5+YDFhi$(PLFN-yvHa{O% zOWac~#5b5v&V*y<8bU1;`ZawX2Dx+AjlW+(3-{VQIv5nczBo<*Ov47w z&rNH$K@$k43=Noi6hh}G#1U zESsBw#D+bjEdy^TFl@v;mD@Y%;udk$tfe7&c!#KLf1Q3n>AU4t?F9Mwptgp0s`0uy z={E7UP3Q6~(8$0Ms)jSgE*)NB$?qhZVsuECgsWfvSz?#C9NQIUPm<;y&ePQ>0Y8*N zb6&HomLJW4Sj3mmAIAHX7|P7|zDhdq9)`6Jc;}0>IHEPxXIRRs>BW zrF_fZA&tYXGjJ9f_ZtvEmd(+nJ2&m;KKO3#P)(LuIqfYMM$RiLcJ062WKc|@dj(xe|M25JTQo{g&0Az1%mHch%LkpvS>9R6UB?(yy$E#v1v4o1e!VNk zE1-I7H$u-#19MG{!6t-*3;u6wiT$m*^q(K%OaxGTr3^k{DwEvKhmE)lGgW~a&IwP^ z!T2UylDW^0IM@Vm2+x`Nr8C}oTeW3#&X=z~EM3#H&6q7f2CEm_jc1NPB^8XjQu1(f z&<($oZF`50L48K)+13<7wu`4l{)QPAl1I*%|JNSWgz( zdjB^p6FPhtFd>e!Riz*qlY39m5_*+ zjIyF(h+KW|NsFOGpH-od`m~IkEQ8{r7#E1``wSC{OMZ#Ann%fcu%6x@?2&XF)^|3b z_HqFGCkLQJm@=8OV87|h05jEDZ(BIOZ8-Y25n>uNS7PTkKxa2MP;J?!GWrX1@1>=ej_+its_#a=PV`+9 z#wi~lo))Vg{PoRb{pbf9QzterP=6t9?GFG|C0xmj(=j|l!_h9bB2tp7+_~I@YN!`l zmr6bQ+~Gbx@5V87ZP zcMi7@!*OH&+#q4?y~ouT50<5M!1wJbDAB0Alhdjx8PNNp!5?kBHTKY^0s&07+N4#% z(tJ^Py-lJxYfQo|bdl%VT*uuO5O9v&HDYS&70c-l|Dc}N&f*FopK^qfe_L$%vL_fNe=(gthRt}1b{!0?f=_Vab?G@pi~lTCro zV~sY~25e!2sfeMnmhSb`6 z`2|~w-X^@Cu@K+MYs~rC*2t#ql>OS=4UBG>e7pJgS=krsn*57GdQA=}ws4-CCk&~~QICYFb!VF1u2A&xCI?VMLWMO;h<}sg%o5MF;JcwJX=N_m@Ccu_2nbRCg=rtJ9%{lRGQVtNZ^Ah3#hy7VDm!&t|G=sWb0)>gq9dhi=u!#^JGaA?T{8e9YX8AI?twUt_+0Fw>-CFXk?D8qqJ~N5s-kg zw1gGBn||6j85@ym3sSBqUi-X?x}t4fHnNWvcIXm}oB>24Fe1i-sgRv6=qw;z1o|4v z6!Qg|h$fqSd4I8i_(&!*lZnVS8XcVo%yX#`z=o{Zhl353dOXv5e^-nDIq~oMIfp?e zUlxrm>@oP4my3KiB~Bo9hV90{d#Y26;A_zX%Uzzo9spFrXeB7qTWqm(%o;UyzkBMN z+)-p_7F}pRS0U?e3~S0qt^(Ar(09uG2k=d8j^S5QE%aPwN(osrFhh5#yHI*vl9Ti3 zuvu|)u2VpxT|xq&?_=H*fKLrbp`ExnE%)mIKtGMn*I=Ykrf63uhNr7DGpLHB%)H=t z>~-6!`cbCH0?T;9!aG>rZ_cOot7@?L`n56`ls~ngzE*&ZL-gj}K#9_OGTvX0qow?^ z#Cw=tW>aD&(9@~m2Xamy(_7d4Kp>_Zi$hhW!v@vTmrebWtf?R|7&>Dq1OCuVJkb*4 zS(P%Cv>Yl}Jo?H>@6RRrS@4O}B zLQA4U*XiN5w%QYPH#Z)OSYyhE_B%}qz0@&^T3g*n;&z;cV{BVBC| z2&a>&x3YAor>;6((e4pv(m^uyA-{=mDbjh8qrVhbUu1DvhA?Lqut2lSPbX!~9#D1|8 z>tbtt>J@N5g^W{aTIE4#z?KbQZMP58GDT#S%>2*_UT6Kw3aqfjWur?a;LipRi_z`% zaGQgNP|cwG67HPlq|2LayBK*)NuOxsOKDEVMEb%*U4%NK)A2oTq&WcUo~h)O_eGS_ z6KI@tTv^8ukG!VeKJsXFBX@8Y2DtNt1EAlf96)FCB_a=NNmegDZYZYDN>~^ z((+B8`!l!^DLRMz-uK+I{7hm7H~b1W##*nro~Am7V@ECUA6|8}-4-3T#>J&nWr!HU zMhc#1?db!B6<-3riS?W*a;!2V=MO5Oqw$J~S~0?%nXf`1gxgx8mM^*fo)f)!`TbB= zp>R*7scRnpSRSxs_GZnz!kB8nIgp|fk^)f*eTk2B^MiT*Z;OB16F1$9eNUv;~Yh; z!;!a8V|V|4Q2&3%0T+G?{>ibCul__=YM$?j`rb;mJ-fw`3_m0^kl@O5XuHjvO0&Oy zG%^==jT0CT*nJ2YRxn!y{r^{J^A zec9_;kpmmq>&^{V>pCqIe6uYx4(=Cajqt|?9%_jRfq|yBMO7ZR7CXQT%AR*^xllIrmd7u`pW1p5^-|6%r zd)gw^=I<`vZI$#>jeR&LW(GZO_t*+P|{WH$VVFhqZ4#GChe=A#ZB?&M`VxU z#jyWaDd+v4mGXZot^bd4?_c)R%r&6r3DnFe{-8Ehx>Vd|5itBRIoD07it9io9L^=S z7|`QLKY-R^N-|S?p;>0iY{K9KWxMUw_gX4dCtMu=O*^9XgiGkxG`b? z#f3R~d(YUL+!#@nPTlxDf6aC5;^gTLh{oAJaJ+r6o=FGSHHYG~miR5Gd38D}w0yb2 zYT3fhyykszNo}vH&3J{H`HUj*k3;q=&=W8vKqAwZa0h(K&E&px-**BY+3tj?AVv4X zRfZYu$g@FJ{z?pyM;Dr#8Y_o8M^k?335@XdNK=|n!y=1NmD?gFr+>Wamm9-bM+`IpDehs(u&SC@=sYVaTDj?NPfj{F#DU$~U7&rC>RvaVnM>{5$Ds*@y zlIyL;eAyF#*oTAoc}8rQ)1?CAz(j>>EiSRWAA7RRqwkAnIqK__v>Q!U;MMn+4+4lq9e^X! zJCu-Wx>znZk{(X4)$;MlyJ=i?`&6j`CB1Ak)>gtEGQdw+v&h9n$eX591%7g@CVaOK zo+l<2^~q5~`LH{!fpvDR!?~lZatGV^pbUwy2vO4#h4fhoP1ry+ay*;;4qS2V@0RtC zrt{xKhs<4o-+m950Is=$N{HmbBBuUEgL(*k=C~h|bq!B}ZeraRcw%R-j0SID^|8RV z5$b+de@J_`p~g59tT7=kj(*y74AeHGwF(u|3yt675i$xF!K3BMGcsoCOCnr|Q$|{2 z89(6b<%P*U8IXZ>xJlOSHtw8h3;V!ExY4X#Wt@VSC9E%pejdnnu4yO|P9a+#80yg< z1O2KrhnBBkcT|d=VbS}WRq~^%8mJ^BCw?l=yuZCqml0Ic@7HgzTNgel{dU=TC~7<_ zB+;6lGt}smm2Hl>QsU{Tz-(Fxh#ch6-??gPWr~u5y=%}^7OC$h>U3(&ljd2YXsJ}d zpNzB=e?Q5=)h!EzSlXZeX)jp!PB$Zn$w%)4_)0yj<`x;mrx2t7)1LxmbCoboP0_i) z-h*c&)f=m-s3znKj6cFwO+HY&k|_2@V|(0UNqXiy3vthaxlfyP81D=^jToqryxT*| z=}x!DaZOy|3#*0?a_ERW_l~{2}r8KJ?{90$};(L#hu(r}{ z@GOF=2@1X%v9;DYpkb&Acz=`|#Z*;{sa;1QvWT^Y9#-l6Thr(d6pw23!}>2DVA-Xq`8S_5mwT3rM!1n>exw)Y4X>Av zVH^U6(Na^k#d-NviArRVVpLU($CP#MeV9}|F(jtAgc-~3K=A_`HhAdTNH({=FT)`6 zCiS9~SPH;C^kV%O6J0^e=sb&Bi9 zcTowqziM({dHAVed8WAp;FjUnhBFG&yfd!uU@LC6*e${w{s9r8>Xg zMtFhb-&5voTOaP-xBozoSU7#ZbK=~YJJ7pb=+nzm*{k$5D^UzVK4fl!=ga@od| zQ)_8gC|R2rs{KOuix#CG$_##61Xw%;v{dtijFHEf<`i^FMH2gM(Hacn(j5w4=n0zg zKQ-PeTmNj`d)~S9=o;VF8GEc71g}*h@4K4Bh)G5-Rtzz~o z!tLiH`!lB*wd2T%z1qFGzyj}~a#z}Sa+GSzMtN;j1K98Tf2{NS^`9>Y`A1jxFQbG5 zpaLCznJF^A4M^9kv$b96ac!=G6FwwXwLuj8*jCk_p4k~oez;cT)8VL8eQcju&Y+CC zMrARNf{{pF-a>5T!UaU|!hP5>c9@iqo?_gKIExh;&;!a&}f zlDh?0FIf{-&8eekGPB}k{hF1uMhrm}J2PbNl_-kWq{mU+hro2Wfyk{@1R-=SgqGBt&3u%Els@cPfarY5yc5v zKD$i3gOEnHw%YN!AzQT!kQXnPtr7UxC%rB!HHLhCxyaHReGl&Nu&YnDI`jLDWBzeo z?C-4HFNGK>~s~5 z{n;2z^Pxt>IoZ_2deq%rKyKDqUd%J7&YOQ@&L1+!evBA$ex?f^Zd{Ab7-^3XAzf;b z^cauo9;!E~9f$hX&>+2Viy zRXki`cmLx-|JOZIQ6Ofm#)=cC$t?zPIGP~dKP|YU@t`t}OHq+uDY@WDt3vxTLmwpz z_pCcBnEPsUC1uD}n1ojbv2V1?@pulcBJnU#u zd*6eX4x#H{0KV~9e*->!u@f})7Q{MJnNQfg)CN>w>sXIN)%B`W> z^=s%TJIs3adSJd9l@DMsAf%}_t`bz)gc8b1Y}tl?n0@QG;2}D}03!3&U32L%=sA9) zk9>KU;WFlW&b`EOX5BIB{X|t;miG9otUBZJvB_XKWNKi@D(y!+{Kt2B!`t-%y>=6s zS}TYwnA^S$|AU{#)3a2;~2Vh+LSHDnTSdtJn|+>+5uZy zF6JvYkIeSj4-%8gNGRILTwq!|J4p0-R`9WMG@Q5babVDl zrf&!}6grz&Gm?SURFaj~3rzKIh*{k%O#=j)x!}Fo{Vp!QjnCW_5Zj#}9c0>_2~nDVd-bZ#xQR?oQTeI)qn4;0^b z*>=Lw4>w6#{JgYALlQtLB0$3DZyssYcZA#1Bqn{WU>JJbCs*B3!;M-D1`JhCjm?-uC|m7k_CcTbSNEnt%(AZqnp(EJUd|<9S_jOHdKkJDW?jX(X{_mR z^x(s=&h|q*y@%n(?jux9v=L54`qCGvy9@ShDKQAGrmq^?CzwXm{X~4qDY{8Vc1k>6 zagZ;}r|;%?u;L3i&L+9pWA#f${ z{V@D?txko_OzupPnAzJ#x7*(r-Kn~YCS<1@k;&ls8Up1eje(+AA}9G?9gP6S0Zk3+ z6Z>9jyYVRhLOy=|m6S3U_vHg6DSTrDV;n-%^J-rHvcDe%XhXml<)#eTig;@3L{^T| zX8G7!{}wo$3-Ef?fbp8BwE*Kh=pnYNG2nn(CqBy70YOP5o6Vp7KU{uin4kns&|NYKqP54hCD1MEiyD*VIrNl3p;6N_0D=xl!)eZA@KlCnMTB z06y@xhO+5~@i_eb9$X7X_Q)|GQ`&m3D(S#|J@Dx38cxkCOoB~*-u_yIez~Y8Y?juN zOf0P-M@?imMCqH13(xbsQT5Ta?MbvPaIGxzr1(F3yem-iY-|PxIeTb3L@+ zDKFWomKG9?Z=CFd=qvw72;C?~$S&nip;mx6cRZhmJ}X29)QDNApBymc!V)lc%%VFR z(mDnKkv1zo4nLtja}aTE;81ZlXlz$8cz9raU_w{2hHt@VM$>zr$3%+NwGZ&sQkS#w z_RZ|K87FSt`UMC8Pp%$4Ykc*@GfsoECby8~znYh3!+{VmR9XZ30n2xwRL!Tfp`LkD z&mjcpk~b+1^lGYg7g(%Cs;4BXe1)3Q>HC7$0Ro_Lu?>5nT5aoTufyK8Y`YOM`Oikmu|52T!=9IF3lAJ>ghNg>oDjMXmil3@=WD zH%e8*n^Rq!9v%>YZ`*@?<~m@srvWfs$UegEL!SQ82lv|eeTd)zIuhxXNt6tSyBCB( z_EM4w{K4f9ZinAZYoFuN{HCm8wR4l(#p(9iGf(&IK{&BT`btomSyTAtl$T<5Pe3)d zrgGsnS71+|$vIDrvcbtN|M;Zb0%N{3x0cl)K>FC$W3flLzE{oU@b^)%*neZE=yiYJ zW7B-ZnX9M!%fDQ9nx1ktPP^)V^z;2}u7y_`0qshUhI-D&fBxQiTR`g8*pJ8PBIrBK zC<)B>k#(dlP*x1=eiF(3R|w?$$?@ol*$oObCMfBeNXxI%Ed}T>r*>LsW}7cja^aCR zD|KrQn!Gc){DhSseldgFNjLVkRMwFS<;mUA^q(9r$np@4nFHTGXh!k6POE;c_kbys zXm)bjQD2cHKT{u2x^3lDt=Q9R1#_CqowiN@)TRUf%By++_A}5SQzfwFpf7*bz5m2e zKhpY$;T@i>Pm@n~lIpHmANzBf)&BQ2kUalfwC5j@<-eXnjRFs&1UwNSo3in$h^=nl z{YFKcIdWahq;`%Bb?i9y)|so1L~CcF6OQ@BL^U zBWH>mQ)?3HxK+Mc;-WK*W6~D(mUDDIcex*X>$brS{@jBr#cFgD zn6X~3x>>4!l~qDjb$Ssq3emdX@P<`v$ftiTJGgo7Q%Z8S5+MAO^X?~y=b9gT5CzgW zecdvXcszU6yf)kX;w@#Bv+G{3ntMMfSKueczyJ~3t41`)@C_2ubiLxkP=6hdKvF`v zabe7*IuysHbhJewO&v#;zjukADD8ItnqQLF`LE@2=D__cbFU=!)kU+!d4wz3UcsnS z6u0=gQ&BhXh35+EyW%eGcaIz>LtR|!|dF~zO&QA`}C~iJiA*y8c z2vtZk<+7u$No<`azB9*7$B0392oo>;E!2=p7ZXLqes8#9}4vGqvdJ>5k>&h zsUJ|+;(?ROMvFPKGH@G<42^$1Y59jMf8CX&0TWWsJm}iA9(qw>B$Ue22^FMY+&7{a z=FP_pB1|Yj;m1qKw}QB}_ZS zk`kc;_b!{hiA>{4Q_?)2pQ&Z=M#=SVd@Rg9Jd@X_#K9xue&41?k?1+AcUe->%=$(9 zp%f)*PCO;jGKushQeG+#pr`tA=-f{VmqREr;{Xz3YO^x2)rrCyk~$ zPC2f`EG?*r$Ao*C8-I;_J9C@JobK1{QXwmpnWgQ>{^0x!x{Q!q!DwrH0#Z#`1aEu` zz6Mq;qAk|z4(zz%fPnC-9X?k-OYl;1R3NV_wfkS$eBh3LCU|M;iL~|M>E&K| zLvXjLshaO3WltBo~rYhinf04H&SA!p{TXC zV|E1#okJgcXqRzQ#mfp~jJ16yejD^>zR8nrcltWw!is=w)*?mcyEV4$zy>q8e!EQP z&2YLQz5u3R*l&)}(JC|5bo57UWiK76TiXBa&cknkPrq}?ikqF!W^b|a%)J)IHu^1V zqhto>T~nV8m)S~#8R;vlx<|OIcmBz<%L_QsPa2KlfS!>EQo3WA@{T_2P>uZ)x9KNbyod zdj6VLZpJ>OuCq}SVY651Kh~*JM;5Gqlv-(5)35Wr#zO1+NOQ^pl+AOIen8shWB$$p zCW=vyk5|h+X9`hISl83rsmF=(4ocNI{U%*@U`~XP__bN$&5rEQ*m2(%4V6yNQ`DRp z#b3kn`>L2?He*>nJ6%wljfzC=qoc* zSTR!p;~%{*c#wPF=b^B%b*PVZR#nW!WqC-ixv|1lkKDVWU3Kg(ffWayFEhMI zH(%r-rnI+QfeJD~3AcvvV7^FoY8Lat;{n1v*@}I|?kC4536+K@#oMB_F>^K!!Q49J zizC7Pg6sP>QQR&g_I9I14ZLQJ<4^|((`qH6k$7n2@Xll=_Em0hLween=TW zLkgmC9?HFD>2;atEdxK(-tKy#X5!nN_Q0il99;P-%>yiS?@U7-hn7h zg`aG#8jT}`5mxW#ll{co$ftfO*BF8cNi@_(m~U^ZzFwg{woh%O896LiuUKdn^LG`|7SOqTI(oYi7$me>wv*u)G|+9 z@g344#uK&45zQL(`r-rIrM+uQK<(+O?d%%t`i;dtcSZ(UIkUDQK6&E02~*@RF7VNq z^9P{nGn>!E*h0BZmE4)S5~sS{zC=wU`2;5GYxT>cK5xskDC=gVI+Bl17a=_6y5+m4 z)0WCc+#GQae{#5LRYIJ;Ire27FB zGflAII`LxIREIe!{Kp`yErEOCkHT#+9EOf0U&a|1Go|0*$<9afli4DWE`-kE&8l zGz2q$k6-Q3Tk<^-gE+%f9MYbq4=#pwp?H;QP-ob@bXgO8ZS$C>i+88vx99rfBTA|s zLy`K&t4Sj8B z-6C8od&N}23I+l;3te-gOZ#@9CezqLJWPH`+Cs8&DEp)?!*89qo!lZT-SI4lE;dgP z+ZYP#Wb?t~D$RW#R;)WFI-2h%ldAHg^sh^RD7Ys-g!Fu4d^D92j`mO!>8i?*hAPOM z(TLH**MKKQzb?&GVArxHw|Gb4~dBV+57B4le#5kM6II2~x_3j#0ns02a6P~qIy z*SQiVw*oki-VM~UVC{R`j05r&8WEahLq+@l3!mekYH0j_PcugTN;7(KOg_+JYF4Z7 zlv{VA&=N-`U5%po%h@B+Dd}$E3Y))}uq!lY%wgOv5#`%Ocywjuq}S#$WoA+)QC^em z4>j2yj(y)eI5Xk}@0(nFf+8#1ob6-<7tb#N~ zV5Qk1uc)`s*@PN_@-pM?6K(qBdso$ClFALh<=?Ysc7j4+ zu3cU8zvrBUsC-@ui^kgjz^U5|ZXWfX&RTkJ=NxF2f$>c*#=680TgZwuxr*%Fk;_ z5cEhs@+{qIjCV!Z(Cy4x_G}VW(juoF1gmj+xs>MEFyW(llyU2scaECU9*8K)w z06ssGamZ9HsTJ*g?xMtBm(%K8CGchxZGX_q@t2S6$6IT48{DOZjgmD7#Cj5+6rlflN{3W-W&d0fV>`>!*=bQajxgH95yW@)& z%ubk{a1+VCx40<)vFy6mqN(@h-FOLjV}s3klY{l9MP}1(XRuq`d}9B((RJB&)boSH zy3k~om;Cwto79?usFG{3=q8E(hqm{QYHEGgMP18+ zg`!9i5MrSS2&jNmi48EY0O=4)Y?Oc@(xin%rAZT|E~!EYJ+K5q=#efUAfZX92?A0= z5@|t_tUK3lpMCD#=ia-=-e=sKKVS_0V9d-pzwdp&=Y5Lg1i$4=uLOM4r6#|^5wpow z56`)r9=N7w_i^>a?=6KR$?49uT)e#^EHhCTu6ZPNq;z1T0aBC}$dF_3R!mfdvxU|p zc*p*MeNM4mfS+pI1R#a&tLqV#d|LQI5VJ0d%6K!&Usqq}f~59zyD0w=J<;8Gqz2n1 zON6>+m3r0f8k}Rg(3jJ5&okfPa9(x!s9yTKAAvjNw?S;(hY&;uq)J*{_M9LbMw%zh*aonkVW#=%tS&Q1DDJzb?$V!R}JciJ)ILfv+d9&uol4-y^E?TLpF*UeP zXlTfck6&C2g$%(0jl&AF($)*o@xATWiUa$Ldw{(}Gbl*BN;B2109rpa1L*_*2@D>P zaU>?tv55eH5ZK`GzcPcoIimIKko||jo81_GePfpTd{2TKTZ=Y#3Z==0)4;z6lk8ab zQJUpdaT$^dFBMqe7=3H4R~l6(4c<5IkXf2~h-;7vS|cgHTg6;B!EHdseyE^^?CZtB zYX%dPi*id{&NM*EG^MAdnz80G`?9}xzN5X3E`4@Z zg!`i7ssVfx^IiXF;N+>PzjUs)AF?`K=bwDTL#j3_tX$d2wXqCMZy-;+3p?kK7iE-w zZK4bddVHpbB4?ec(inFIVP2MKuNhNHS1PeB9TM`{W&;bGk9fp_O>mWQ*51z*<-Qm? zV)qW)%aTkGytA@EHj0RV(^(X7qMLhMn&BX`yw2TQPMo_mu7m@zKdA} zn~Mr71`gnQf4z|w21$AQ1`A{kQC$Y+UOh~Q@yVyiV*hyW-fPzyi-gi}<&Mznrol~f zgz-{MLJHJS&*d{Y8wd8*(alJ6>M{dD>kJ`lMu;P{Sahzlmr4WYt|3A>yzul!=u&)m3fZYiEov>S$F|v)yW$A7U(DD8v{r4! z5j?Gz`xe=BFmq_Gw&}p>!$TZ3MpSu6$V1cLKD)a+D_ZSYO4>WZ17<6K$%Rwwo|7rA z_Cdqy8S4)(FQQ$rB7~jO#1@514OKN553!tVxxQt!t^QKoKR_bE#T^DmnL8h80DUC> zHZvm%b>pEyX%#!G^H*!$hhWUz5f%IJ!Tjekg6-XTGD_UfPZ%_pS}ktN~ljB;p@`9R><4N&Ha zw~Xe#HE$Gi`0oRcVJ~O3xcLSK!FAxHC|#yzg4K*OuJBh8p~@Q?^#vLf10;1x9~t3- zJ9!!`*N^`20`}vM&|vQwC#%Lcnw~1yhDKsZ`6^F@4A&@ROhF71{V(+zQda4TcbD>| zxVWeka+2>Fh^1ZJrme2LR@FyJ3{71;F-n9(Y@smTG(!)V$Y?fjL0Y{m8fO zfj9OK%13wR38L-@UkmQoAbn@cEG8k{=a1=Z){fZ6FJ)QW8*Q$$^fFJW zy?DmR`D-fOD&PT{JUu%Fb+QQZKlh44Ins~|;6lD4S1xEIT^_Mm?Be&mpgtr^zTk9j zQ&mRe(C|(}=w_evgvNQgloi|AIUw;aH+y-%M8~$-%n5RRCfOdb;u`bsVqz7O?u$WwQ(1r`(y^gRFky5T2aAR!{uztpSE6td*b?XMywzx zNU`kLl+zY`vh)&H=+=LSJP#Vm;7FhQfth~|tGf_=h+95?N;^RN;7%OdrbEfx$S?kF zgS^A%&wDBNu4h-Q?|I4BHtt#_qXuutdAs!b!^J2|?PV6<`UZL^mhc(B{wzv~_Dntg zv5vpz_YY$_CWTfvlz9TgbHFMT20zHge2rzD3-2;F2CPCJFbgAIU2WzJ?N0MO5?A;C zzY1#q6LXON7ja4wJ4lVrZF)Y(euSZv>uE81IG3tqJUlY?2fppM!iMsiHXpqJ4^;7v z;+UH}!E>yj^_GS3JG^7ctm8ubyutK2Db6kL1r;R=QS^YW9;xd)6V|au*iU)PiZLB+ zzF!WG#4(>J2YSdt5iqr@KveQ7ys_a~k13qvoF?7lR%)ny>zJ2G*$-MB_Rb>^k|L|} z*^_0rLgwkWm4^VttKE{u_t&4U?BDx3+BO@QUou7fa*j`4COb@?81N&C3-{L`%5hU> z;?snUop51|SG6{Q!~Kremlz7o4Vk_s)A4C$3h+KN9Hi zrZ>MlD>3eK3F@zFmwW?d8tZ2fFCE3wdgT@st)%!hEj0Vq%Z`ymi`lOz{P@(Abwq}8me-{{o-$5y`f8`f zGTJ_Q$qFt%wG*sM5P6DK-qbFkP-Z8RIx)GV^>;J@tv}c+Oc|<1FSXtxZdS(Zk(ut2 zixI@_^eT5DnQQU`--MK&CIpkDxt>JeiSV+ z1~b*p@1%4pNIWcmP#@FzMzX`MSSu>=*lj$2QLZkwRQ%}BDO>Zj&?}L0ycYD3vz|wA)Ez%W*i9s+ZZIF70&#$uwQ_+urHpRCxEpkNHC$Xt=}W zJeSXv#eY4yHKlOPK&cjB7sRVJ>lMLVE3WT04iKXQ_qNtTWE?UOCiZe-&N!hATq1-2p3RRBYqw%PtsvCjIqzG>dN>U{HDbwZX^q+U<0x>mITshC0X*2o8g-MKi`EDp>S+bBmR}b* z;0dO6Oi%((ko`LVN~Z6+I#V*I06q~+M0kjs#b0&y0;>n%G7>Z_ORibN<2`WrWn6ON zNSag0U`m3BI7#VUHcs|K#i+ggP>2gkacb777yB6fI&xofiY4DQWA}+0UYUtYR0TN+V-h2zBrT$Ximy>z)SY*MElyM~uhKJnFqg;HSX^4?uhWesk#wS3Q>Y>x_{E=4y z9$LPi99L^)LZ4Jt?%jlJja&JcZToEOKK*v{z>fp-f=9Ha`My4xe@-7Sqi-XfIJ1l~ zfT|QLTLkE5uh_ZtSek$=hg!ub#M9DJdD;Q0sP|LCj_65vhD{&UA8ojhC5F-hx& zOz)kiEU~6Cwyq7Zu(~jmg9{Uh98p}bad%L$RjsfKN0n*c29kmW*I0aAkaVv)qK~1D zj#tX&nKUGsM+*@xd@V=bw~UQ7%IE$f1Y{0}=yiSWE-ZH`u{PJQ-c7rUW88jLYaMUm zWo4%0VyGHSu)3Onc?X0)gE=Slcqf1f{-JvA$BZ2U(A)0wqu}){zDRxVd7)U>6D+{! zD&z8QvSQCLr`iBAe6v3n8+52ulnL%!8;TD-Idb8iL03r+4NzUg zQXVju{FibUl3pUqg9>B;K;rs#>lb6BezCJHv)>q8V7Tgy>c_4dMjbYWdyq0@G4+> zw|N@IpX~1oq_(BFu4BIxe#gr1WiBSi#Wew$JF$tt5MT|{riFo5vE_}|)yg>%+){mS zoEKV~Me1UlMA?kAO0d0MWR#e5ZFmrr$%w8sW~LEi^*?%)tVyBIjx{KFx_c1LUtfp@5`B*qP=V zH0j@e^=(}L$R47twFptAfY+8bwh*n8-}-UXJ%YNE`k1*KsVaE~@6D4f%EwKmhNQ%$ zI+>3rr?za-T8cFgf|1 z4n8o>*>~w+=Fb+zAh&D<`oO-+Tl(c9h=_##iHt`-zXaX0{(@9_A3vaXm*E{Y&8bvT zHV1%p(>aJ5LD^&{sd2R7oz_1Aq)OLz&$^g+T``9mLUXdu7JW~{sfL*O=~X@ju2SGV zfFVV4FvZTn>NISIboob(1&qHzRCH;t=-MCLp85}qX*4!Lp6Ti0q^OnaE)c{#8L0r_EML*v{4+( zvC<&{`i%yTJ`>#s^*Qmj&=EEu2$d`t zO=8l&hb(P(Q4)5YaV+9gwATwRC4lUc8>qU-#-s5kByrPZ=T* zvW0BHO_+YOpk{Q18MwMS%?&^_IB5$E$2wZJ8_x&Cw82D?m;tb8z-WMx5DNH$J*EZL zHSNnxl3rk_Pgf3h!>Zjl84PeI=BN`}N34Td6kp6HZ$Dy<=1Mp0Uyr@=?vVTPeKp*a zOBuy4%+F;fK0e{$;V(1XT4+jhUW1-rQ~Onjg`#z_gb}PIgK_aQ&dMKfc$w5|_hO9= z`o%{iCgT+4i@CtY&{ntq_W^1z=r40Fu-yT!8Ae(jdSGf8%K9fO_xbu%P2E5f+S$&% zXG8kmsaBZ3|J&|Bjy?Z!&Cqe{`Il?P=cXCVKdu?6E>#UNwk}C2-Q$CRqs71QenHIq zdysUrf6dM~YZ+~X=0}~F|M^U3`sCXW$+Rn9Tvq7Ptsu3fjO;v%4fycv&-P3-h1BJy z`+N*HuwGEusDO?4BHP3F9U);#pl@>jL@>po$-l%oa^RZ0p1Bk8L+cAP*sDCzfZs~~ zG;D`2+cRZI4|kR$n@yFVdpzGnTm7Dl}F?z^*GCAhFeo~ z!BF1N&`%C*j9Xo7JG|4ERI}6ChsvJrI}N{$e(q~X^GlczEG*rBN|ZJnMb#D4pN+vc zYZt}k#AT-+f1#HHBdDakY;<2}%U}#^jjHe(aUs!1gYg>nyJpx?_c-d~kP3Y-c_;VW zZf_kr{bHuw=3-6rt0l+7Wfaq=U!C<~W8k_JwH?eo*l$+@Js-i1#XH`oJFvcfNmGa~ zeaSj~rOWh03^vL}{b`kGRJ(^ZD%`p4@q)gyI{(4`R=l-Z7tI&6rm+6X0k!`_bc;hp z8F>tt6q)vboIX*XrF1-c<^affKcUdBA2G1b3iE?k9VqW_1V4CIdqtznO|yEvYe|!3 z`+S$i`gfln`%LbdjLkkg68Fq3|$IW`w3 z!3iOz5*=i}Mxxwh1Fxz=q$1HS)5{#-DEcQ|R_y0_0yEOqX3=iHu>RBSg613M7W=;! znDzEH{p@n__V(MayT_fYVx(}7{jVdX|AjR4zYFRg{0^c_?Cf(BF%Q9lE4d0lqP!<5 zI`7csz-}blcxz5{?V1H`PPj*;Utp9c&XkYvt_Ys%93NL*Rokdl6Y>&k40*DT+9~_7 zzP|oFJr>ZUdxxvd_SWL@#5X{YGqCCR(LJ$zdI3qAwF%C(OX>aZD}9`dsmPZ=;2MK- zYHBBz)soRciuwCMUDZnsl9*Q`(E6z)but7wH`%v}*NAkbDT;gw%_25em`RLULYObz zQ`ss})ogOgF@Yyb-ILFL?Uic149$#^3MZTvOthMP z2ut7XiE1sEe)g91+l!#d#cR~hEFBHqm>-*_;KLF@rjJ|%y8Tompj&ymYCK&5kw^V8zbRx zI8w^YH!#pw`Lf;4I1}5i|FhAM-{j}L)wuQIZ7zZv)bg?^Xh!99SX03E*m`=^-J#E* zGr*n%s5|G=c&Aw&u^j0l-iR>AZnT+CA4?M~2C9ZMdwKs3TkF%#DZL)m8XEF7_y}5x zJ@jc@@<#1zE5`j8Sj#I3E6?iLyBoD1D2*$!xrvmOAM^rb;PX}q6=<_>TJW8)pY;`1bMv3&iG)#t+V5+n z;bGMMwG!8`aP_WSnWng&&e@Y=OVK*+@er0#B6juK&1g5mrLz^>Ih9aDlFF3RoGE}J z$`j)eMjI0|ek()TJ?0)Nj}OaJEStQ9Gm~_-TK+Bh=l_lZ{Xf6e2luvtB3=mCh`&0I z{)Y13A-#Cv;|`F#6;3gUI+Ra7$IU+hA?}|a!E)ko&Y`QV5*t+`BUO_;N3RA%i2pcr z1h7)DYRXWC>Nwt3rJL!64acRIZu)hb%ly-(O+DtFP1-+1mrY{dLd$NS0ovv$2Fv@y6#%MF{hzsz|9uCg|57ag1{o2Ti6FK-xJSPUVFAp3arV!8z()*@ zJVC6Aq|aod21(&{sU~T3fpyyM_lddm@#f@VZ)Hd=xmoy1VMbkNlLEuqsYSN5d$%@| zr0lw$rvem+^9pATG3$bbfPqpj%O{n>h(eha$X<2stq8_I$qU5nlIWmOjj1fnXuGFn zU5Z)#Z{NL0nEX5tU29S{`K7^-l z=Tu`$dln$I@d&H&OP!EXj2lcg$nv&an$M$`#|JO)r;}#DbrV8K*lv=cfl>zn_FGck z8GRM_SV!ZS*ZgLcU`>Kw`R$^MVx1o9g#965dWhf)=}$?g%7ev7a8l zFHTfRp5XBP;L3=KPFzfUAvTTev-?s z+ByV~dH(;=z8g3L+7tjeKY{L=s}2Hyeo98SUC;etgQLL79Q;Py&@p!$d3vqR&V8ia zK&ZCa@S%4}a8K86qj=QTUff617O2AU=U2<(CNkG%;FCX_Ht7BGl`S&?sYp)(*q zg1yHB3Wb5s<9+(fWT)bgvyiTmS$KcOTi!F0yBb?d=o6{#dRF-UQ(!an(!a&h+KJ}Y zf<5=cETn^*sC79kzOFd|gR`jLz6N?yM^TDQ|64W8sGT&Lj*tH7f}tZZWe!!ZFEEQ^ z6yhude(0)f{@7%9bV7QGWs&RHW`vBV7hbHv*)^kOPIJoN?`dYh_hkR<57Vg`N|D7B zTlu{utkvnbv@?cXmwwVkkLG2Pm`)_NCTw2o6JVA|v!@3Fb$@fz;9M|zZ9XH~N8cZ~ z!f?Q?SPgy7ld{_Z6EH&RKcvB8TII*bk)jU4Decf}5Soi|2U>2NK-cRG6-z2LE-=Lb zv{K#Y)t-CP4LGf`AQ$LT%c9he?9{C6%0*GJMR7?)_f(&jY5K<3rA2e!IB4ByNW(^| z>WFixDP4`N-orbt$g(A_YJX5+Hp_T3#TBJ)TS6V}-{HnvobFK(MVd%dZ^ zbpFJQiLY$(3Rs}|4z=V0GjpbI_qrmuZ)2xMq^*yrbU{lm64AdEsSak@}0LJyw7SW z)fpSGsA8JC>RgjVx?Nn8vg1!w$%?MFO3O~!u`^#aO&iSEeaM8-c3-xFQ5V<`StM$1 zMdoq`BYsYZbDpKv1}zg23Zr7AJndZ14=d!#CR@}@XG#57Xd*n{RPkA;C!`2>TquLj zx~`|%WIxoAO(k2Vjp3A?-pk|Mb0^{x7JZXbtzB#>YvSW7-tL+3@|J+-1nf%fKZZyD z<#zO6=4z(^`u#2LUr8X9lY@N39L~?I~47Is7Wmlmvi0w+E#_tvr z>v3W04`E&=J1wCu7e;CuD)tu7RK*y>d-ZgE18wAljDR|d_y|ZfjJdC#CmVClk%U7N z01jUJF1xh;vC5~XFZ?$J?>VPAXn}qI{Ynr1Z&<1Qmx?-|k&4hXxPUTX#&AwsETHpf zRc8Sra%ck3@aDZ?oF4&N8}Z;Uqt;+KwhGhWOy$DJ_6;M-`W?MCxn}z#=LI?n<4<8~ z%&jtaAMFlLD(jiPFIVo?$5#%9HzfN-K8qlPvXGPeql*fP+B`ZrVhL6DvsfJNXL8yS z(`=pcED}>4uHZlpJF=oX7oB-v1_L^_8JA|*nfl2`RHzd8h>T} zScZ<3l39wCeY};0d(OyS(XTyjcjCd5Z*^pUd#j`U{q2EY$u|!+e3CBVwXzCldt0PN zT!ewuDnI8|b%#^N3B$_2WH~Je#vHQ#q%kChGW~k-)i0Rp>Nr?1c)9cX^KyUvDK&mp zhn~|+uU^l&_ZJ&-SC5@P2Hr)|bGj$KpfrDpFV#02kF(OWJ>FbJQ;__n_MIMQ#phMk zPeTh8`frg-<2uSJqt1}q%^oRr2NdOKTW}u&)AJ?&;=J&yes1PhI_x`wEunZ@$k3Yw9p(Oa$omFT!6TjCe=sKaNNV zSs#AWH!DvN46(6=FF9MpI6wxB(glP6kT!9MiU@|D32C5xJe{UUPE`a(c$;^&I60TBbf9!92KCYe~Nw|h`hq6Q#wnNz{8MVW&cSJAk>-wdxnWt3U zwsBGWQAuh|Vto2{$ENjsm zf|PB6!t#o@1FQi=rN3PoOjTyi-gydU>63Xoi&iAo?k-VRRd*v$+QF`0`AcrRT8~!w z$g$U9%0!Mqy#1s^#rwyC_H2X? z6#ks;82u7j*b6Uxs` zJ>}Z$tYrJNf@$Z+Lpr0+N&!<4$+#;;4NFTO))|^-w#^mW0hJ6Ez0a>s5fSm`}Z7K`IRv3?=z1LUaqvz1_qMy%+;Ml|EE4o<6nc$%|o}eUQpeKst zVTQRMZN~R0PlSLxYFflG4kS*XbQV-(CS1O%_#AetUhZJ-AnjHqIP zxfU6<;jMe}qYCy-0klSwYj*L?ZsLUn-*c*hKtXmHO#!$w13yhhxjkCmVUXKdV@l&C zSdjbr#KCQ4mmZCNg{cw zMK_Y@qWe}TSMud;p=w9Ytt4s};9{l1tohU`H2S2vnKu}3+d9FhJbR)=afQeReeEj`V_|IKP(H3fw2=#(Mulwi^r-oSX21WuSb^Q+`R(?_1 zT|^m2?M+Y?NfI+p0ud)Tr7IBY$exNCT!ncrg|P0!lHTZ{?cI$#I|N8+btFBngYrRye}}PeagG*lRdOKCSW093dP?5`B{7_;`+~R_ZO@I-b*XnXb@nSlgS!@1 zZ8ce}v{O5A(Z?>QAp|~Xm0X?jEc%UI{1&N^0x#hN0b?5AT>t9k6JR|4>NUFm`<653 zZta0q=aU0FR%P!kWB5NsylcD7Nc;Oh5aI^=?*n1zIU)CLsJF~R+hQD-*adeIa-4L{ zY{tCjZ6ZXm3SUN*{LTaa3m5>kozqbU7SBm;#^-h!^aW_dD;pBXT|wy$&gOT=-Tb4E zQ@kx_>MCl7yZY!R{pl-|6;~4u(CbJ2vGdokoZW`qc$BS37R10?&ueC{q9Bdop#=y+ z+5$22Z*Q4mIy!)6bY%B0F!eF?$$U=3?_dA=Y^SiOt@k@au%iE;>!pX|nvuv9m%uT~ z+5O*3kI?sLezbVnx-OdA$}_ypg^|;(@0`bSWHXZ{&|)l$^%US@1=y#s!R76lLmeOr zW(URMi?4OT7>{Z6|EX_3ZwBj{7)8T>1a&DVN;8q*_aEwUMzeF4s+t$mFn zxpXr~sa65P(67h#QqdwqPP<#_?24;3!Z1wRP$5uJ4Q>q!%jq@pwb`4;OWYc$FDYp= z-p7_*Hd?$lZS(F$hmTF}Z&DGee!TP_o)=qdGJU(ZgJXYK{LLk0mH@uM|!GF%cx^Tb?V;VT14iPsxsG$oS!F;QJpbyrdFP7zr8K3@=O4XPTTr+{v{KDb_?3+nyZgu{-S&~a9^~BF%4g5BS?{s~do-`M zWT?ldrA?#7=;d#!cb%qY({o&x@J?m{BeU_5B>Io*)1ctGY1hQ2>ljcTGgP7D8wcQW zADRNvYSz3>?MKmPdEX599jgSY-iIAY0!WR3m{%jdY&ht00QiTCU1nJcGxrePI=3e4(pQY~}k zNs}a|S4_9GJ&nXURXp$du6*_CDiL-Vg<+-4kJ`IC7B!kF7_wR>;yGGw0c8Cb7N6x3g{!BkmE%)Y#v#2+V+%w2DZRiRfS1FPO*8KGT}$YTHyb4+C#)9~Y%~-U z?G6mPRfmVy4krvAbTU-O-zx8;t3CI1@|MkO zV)om51bUaF?h|!}>@3mU|Ha6VIJ`G+K3VWI{-*6(^0kH zoWq=I@Qv=_sKMfb52o)O_>{2xXZu_6^LFNuBa?G>wHrB^Yh|HeP4YPSS;_zCfDiut zpPI2MdP%0|6hh5Pyoftcx2VRA+}-<)ulmS`d0P`&YGZMGB5LOdS z&rOT)Kbq&9zWHR8tz-@qhDIlqI(XHc_ULOFL8>tDa#I~gHxO>=;*?-L*qeFZoASB; z(a{_If0|iFFD+5}D72qHX;P-9_uLv98ynKj)z#I#lyuxsRY*&}^e|cuE|+d(lPH?= z?ULM0gzVIFQ@h#TpfJSRE=T~=b~msE)S1WpgE5uWX>fL210QsY#ka1qZ?-0RqzO9* zU8SfJa9)@L`pEDiuSPrULyfx7-1jApW&-rI#k9`!iS%S+U!;1+g(e}hEfTsB_H*K^ zSSg{*iBM*Ts@$iLQLT;eFwip4wH*=y&Q2j<4;Wk7em#XHz7xrAV9hOPb%0I+()AZC zzIJ6bA&&Nl{y~4NMWH85hoNe16F_vSraAH1DKmbH!>^p6&@y9LqBwtH zPJ`Nzmfoy=V!r4=KPIHr=0hpYO}Rd-@9j*of}Xi@tS6E;NUsBfH9@Dn zTNQHGY+`PG90@3_-*;{DJsxkWeZP(0>;j>~OgY2CR^k?-UqM2z$5?g&SEe~6vYp`k zSS{opp};h#DSeHV3CO_2;j?7bjmCAF4X{{joNmEUGQ~%0vx_%<+a~kl9Q?P5?qFnPj1qT5*g=e_7 zOYds~au3b5IAGU`^4>+|`@m@VX>JjGp1att|68UpZ;xAQdyTXF!*NS%LEp%Q-{7&N zqnJ}n=U|gJU-|;-YClsaS5nluq`SOxDDr1^ph3ely!~Q+Z7y=?jGECGU2?w(Zh6hL`*cFaM?(~#{gF;q0aYjWHd@?W0(K%;sKEf zcLXuk7$#C>^c0*Vtr7qJoNj8aAX^;s-D$d`6dGAG((Hl^MiBID!u0xsH+&Fgwc`_3 zQ-jsvWy5ZX@ol_g;bP|iUYHmvu+O_u?UeD2QsdnCV%7fUm{5bT}{JFQt# z9rvwG=o@+AONfWR_^twQkRf$qj5ZE^sTWtA|05&r%4Cx0f_CYWL~cm-;#kRew_Aw0 z{bi9WlPFi2;NT7=+hyJCO}x_2VoMW|(%ax{UrbD}`QDJ`|42`&I-yW{StS}qih3U5KBojZD4)HMzXU$rnDLz*CLs%z@UnTNS z^zjE$2$taEa-TWdcFNE7DmTQ!lLqN*9cc4E5S(lC@oz))lm&20GKOl(ez0M+WT8R~ zo{-Y=e@EE8N)Y+pO>e&`IwXVN(%{yuRAn~JlbVwa`pbpufcjefj^nxNZ{0< zCQ?PmEU4UMJ9QaIv2?$I+vfNwxP5kz(}*Ua#{19aCqJE3zGpsalk4gkQAHy{tkA1cib z;w6k~u;!|k*$?d`A95rOm|S${*Un3$?Nmw@)=pH%IdydVdu{mIt=`&9 ze*j}F0p`kzLzLSuz+dcnLI*}Fw!!SnF`oofcSJM$ZMg4v2jRPK|M8e^WpAGW41kV1-bSl{D$Qh-%&a<@Ez97EcWqGGY!zZ{>h*F&Qxdc)i2}>ce0i z51pTzqrSd2aQ}Aa@#fL8O$c$Lt>h8~-eg!vJ+i3y_kqCHg8-qKC&89#%M;)TVJYme zHjGfSB9(C{_|DCbiI1v>_0_01E)3mb^4@s}KfF*oQk!+cRL^ttz}xn?-xowd6C44+ z;L%wWduD%jb+LI)BlAt1RXV;wF0936V|^oO5OBFo;+*Q(5eGJ({I$Ge%@+H1>=T_7 zQY>1?G|ZdI#eAC87~>o(_ck~+hP*IJNQ#+NY9_0z;;90rmQiZW^&krtfE=l8%}Pyd z8IJ`biLtdg74)DpL%BA4d5%V!icL3k_T(gbmHn0F6}zp2tW%$iK3WzR*F36tNsfNr zN-eGBv`K#$u3ycTTTPnJ#8g|*=l1o3PwzOex%1&(YxBh&7Q(^CT{6d*#Fw1MG|+E# z5n=PNV{7Q6%&wfeeCqyGSoiSOoPhVQsK`*8>VB{9&}rSQEKfJ+5;7?K^3=@QKnOU_ zuZg5F6)sJ_=Q;>(A}p*^774W``pvCBGa47LH5R5bwP;HaTce+MwABK{XP|aK;te05 ze>7f{OE*^ZCaEK4oQ2F)*J2$&7;o_OeuAYqduo>TK6V5=_6ak{F zo&o$pK!9a-Qy<}6+3>dH zLpMH|D*MdzdV6exx92U&v0Dwj-i-Yu#QUs35lkKFw3XcYid%JfoMT5>;cWqt52(7 zQPOy^JdzKk#J)q7R&Q(N|BBdYYAc5S7`Va11)Ks|PY?!fdk+M4hK_yGYFr|f zdO^E3TNc+hHc8u47HVs)OTDrcbxjx@1CQOhxy9-mxi4cDk~T+3u6g}uC4XBR!`qGj zU?7mKL-@Ly8gQTK&S~Z#j=9ehY>4T|q~p8NX8!?36uD&@o6^(1cYI}`Z*Z)Z+N`4Z zFNlv`cJ||1U$2>eW=)Sp` zmhnim!=P2B{iKOiGStMZyx#_o!y_(dyWnwEN9O4S+B7Dub_1gbV+N0xK7I()!nCgy z8%tCEc-}ba$mM{~S0y$p5&CK@3)}jkoW?8Vk3F7!xqUFr@NKQ(7&IPE_+INwZla9t zRjIW0nbj41-z&ggOLmT}YgzI3o|;D9>rynsiR~#^r&Q=Dd|3uCg(Jc2>x_257qWi_ zy6QPA^g54#=>{TXS9~v{o$fp=_9O}LWK5+FUi`egZ~SS3ypbUot8aPz_Qm><31iPz zJ2H8Lu8P0~`id znBGI{{~WZIfyIPI`EjdwXVJrRApM{PaAXZfo!7&xN({)0e#`c-mAS^o&I4Nb*+i@5 z4xaSa?blItc{JtzDf^mMIC{?8`|MW>{tCMkzh%2;v*hHY%dHao*+e*rTJ_2@9j}DY zS=7?5uUi=yEIdc;-w9my$95 zu(tSrZY3G%9o&@SBH<#nPP$kZW%`-YIqIR`5uSd{`?67&f zcSopj??OIO{54?5C7?S#(iW-~0lPVh44CnUjX@FoOK(2zhGQ-LY6%HasQ9!1gxRcF zF)}FKGEd|7iNNPrWq*hQV2pe}C3R+sFm2l)xd?X^wgjxpXMks2#1i5N_fX{v_8PTBK zF_YR-4OedIWU`0lvqypbIdoH~(N_ z=%<-IkW6=SEmC+@EJHk$FHv8TI1!Xtm?zYF&f%Mv_$nm0A2PmeY5(!7Q_2ik{u1*0L zZ;$U|wWwhyl-d47v+akJ?1~iitfUTkfJ>+rQdgINkiM}8_o!H3={~)b62qzkd{RKn zfHv8>2;h+ks-kiLu89Eh*`();1E9rXlK$eELY8jNXeol5rY;uF8CSGSt$6srR5X1| zT-R-CYb*DX%*^?E``kS>^$02rpGYo&vc(1;mI= zP0EecVY2u*B6+v!zhdSK0pf;O9(w$T0(*|7ZXKeM_a!Q&TYx$z2KRl-GUUCN&nUfh zs5P+Vi(<(webaMM!W$Td5Jd*p397;Th|iv9ZZAfDTFO>@`^bANQQH<9*Um)7N|-4D z)FSe)N(HHo$%K;81m>2ALc|*bQSV30t!JD;P`X&3?JjDh>DxM}Ec6;5Q?PhjxKw2E zC?*!AmNKvHzcRM9PF-)X!M*6?AXxq7(l=7g1qm&vNf1q1P{#6lqSnXPtn*=_ ze_CSy94l$q)U{CuVi88crINgDaLNBSoJXO}3qTQT#w@DO)#P3|#!ba|{KXao17A?! z7>nd>+IUeys_nOqYED^&XzIn$(@W8eIjb3Egp>+SE)ac>2sa4qhu7q`(NYrBz_8RVsL5 z9x+Qqp6!KG0ka9Mu4)d1xm}sBvw6WOC+r?8oe)-dJMKw~%*ly+pX=_%w%Aw?8(Ag) zAFRE1RMYAIFQ{WdL1hG_im3E%p@<+E3t&J%YNTcq5kd$NBoqnBj3^*=q>iCv1VTUv zQAmQcMEU?C(xnCx0V#n5G(-|I_cQnI+27qg=ev9Fp8bat{z*RNd7gKBmAv(Jyn0eaiHV(62gzvmtEl!ieuh3@j%18}_xbal%ZXaw8K39S z9bf=}jbPZsJuUmIM(j`(H{sWbh?e;oWoMQOwkD;%N$@Jt9LWFjvI-M zYOT;I%PzW};1P?Q!aUrJC5u#eH-LAKQH9g@@S=z;=Kht(+nuC~j$AVWi*YQ5w$ysr zvra4XUj2FKRLGm)ZOEjr8`ICMG@1-Ik2iiWmdb)kMdkRDkV;DRknOPP9`lctlm<$O zq2Aln+tG{R=-jhE+z`55*x$84f-6(&KNtrk=k26`w<4arYI(CY`C)0EqLRNt_yHJ- zVOHPry+tTeA^o$*2;m+g-Y|Zfm5y839j(qw>5Zb$UDbkfD2VRU*(6xs zMKc6fKA${HKeG4Tri4gVD53xE?e19kJI?YuhGvxNx5t#7_!>Naqc3QgQqoYATiK7) z%C8-z4X19C;uyh`A-jG|14gB>KR2?nm$J@%h{Olj0ws~G}R81xB6H9s#p z5ifur(Qjn=Zy1El6fjJkV*Ms2%7&;5TSyK^7$6Gg<#(U6m=mJeVJkspPlV(Y$tdp&-^NiVc zozBO5_~esle*u{-HJb0v!*)n3ul&)2tyO#Zad2=G*$`rqz>Ext2yS z%O0E11|rO9y=SwtH|$f|kI1Kn!Bvm!dv|R0Yax`ohe&4&YG>-TChCNC;!(yC#)JC; zaJk_93T`Pwd~YH>bg8yl+IpO#=JriJJk|J2j(YCp~-5; z(azCU%Altr+4)^JS9*haHcS~)2{!b}xmPl}F}4}*xorHnFW2E^rLLyVqgx(Y^KwIr zIn|{q74@jY@TecIX)LlvR;92&=%G`*z=ocT(Vr(jLy=X{HoT-~qJ4Atqm%KB4*&B! zajz>zm~N$H~wK1*cs_g$0>Y_{Lhtf**hYS@st~$kZtGsP5|Dtnxu|_VJr_wpm@*?M^dQs?@7r6uaJteBcRIkWt^) zdm&41A>`<=qgK)IsA-+wm~dxzi8~17!6Z@8+a`er0EO+^!KS(RbK zbyL+qLo3yJtiaRy=VY&`*xFhFu>&Myb+sHew!Ak>yk*;z$dvJMBKwl(>lU-qOM{{& zx4j|Jjj*bSEnS%W#@UlC0$Ntu86y}iw{$?s1aIJqu#JAiA4&kMIi9|<1&wHnWZd{S zns=Xp<_a0LkhNBlj}441oy3$hY1&BU+PoFvQ~WJkMy$`E?I}Xni&CFW7|Jn3ufa8= zKNlS>ohXuLpW5wr8;=t)`Wzy?{d+k*j7TEaP&v%4fMH`{VRLD6#eM_trT>-Yn*Wu0 z;D1L%5^D{RPLo00FVa(TU+~`;zxjs$o;i7O-t*=UaF1$)^Nix8)5^QxFYDtCnx*i_ z(V855GgIHui=>hg=F&x@x9XISMsAEvXJKKR!sizHnudM_=oD)p2R%3)BtH2 zKo3o=BdkJwPJ|K=6DSX_DxTT-`_Kz|km{kFyF7-H7oby%#(4aVZ&D`m)c5RqZ1Ai%+{v^6=GqAGi5`0 z>1AbEIf%X(%Cvjoi*Vn!X-N6f6DRum0t2aIBx2-`1>H_zdX2}SaRGt5-Hw+RE2FOo zJlImf8)!|S)IDV&h-1Ymm4N5y-0gJA(d+HX{e}EZ%sNY@$kLKXYXb3w`VaE%VT0 zQ&RoHxj|}Cn3S!LL*-yGebcwUMZFJB&j*?|xjjfjgRE79sg!iR+Vq^*K)r~GIB;k0 z(T~;tN>@>Ro)F!N-0Q8%UyADjE~)%>^!IoB{*ZonSn{UCE4_x*-wR!%n(7cx+tC6) z6-ZRna&*|nBNy179*qpeFF2TtPKj-n*Zsho>~y)h9`(19$thA7&r7}rd@LOIU|&L$ zv2%0SiF%-~@q{k|Zs5r?QK-O?C(C~#aNs7i`D^SJ{Ilntz*=pUE>8m;6=|0`V&_{N zShKk$f>(dljiaE+q&RkekYk1)@>(`{P^=wd7=e4*7?zEMc_Jv(T6?om+U#4GTCA*R z_+s3wVO-a_B{)9UcJonI4nfIhE)_ltaUVfC&pJ76Cp=r&MPdF{<35LwKU8~vAb;y!xxKNM)}VL7gVxg76rM{P z&a>ZkL3D}waz|YF#XIE-YY$#MvuynQEGj3+aUz8980^>JKj3hwttZ0PvEDUU+^P$> zf9wxR_}l8|xKBs5a3RZIhbL+V;&-jLL>%ng+Z}g*pptu1jv3;g?TtIb0*tNQ+|w6e z^7HsR0*g74zn|?yITg1+qAD4Nt^M@5??LL(5yrBN*VV|ZfA(N@4PLn=WAEdiC^AWR zM=k|)qU)!6%k}b3nLhk>UTl0Hxi5)mV5^McjmV>HsgGkq&F*^Nu}7Uhk$YM0{GAUB zVJ6?~fn4ptq-K|*(x)y!De?~bXZFb>S2C0d_Hx>QU%SN!@6wuU-)g%=;?oN$1Bahi zruO3bX%7Xr%*>Db$T}PVN)+HRHZK1pm|{s}zX_PjNPb}uykM2w9FILxaB{EW&GP4G zP%q?v`C36%%D4%flX!gT6{~AJW(SBQwEy!@?yfyGWHc?;KC8+|G3Tw!VvaI@cF0t& zQ2XQSN*hfhpjVsQ9Q3tC0oRng(OC$EHDEHzCav9&JHB&*f6rH04} zmA0hA1W(g9!=>J7MY?)fVlsU9FbMho9Y*k9pn_xYF1MIAW}Ckjetx}Zo&@cF`1Nvi z@zEhsVD(C|DmU*HE3&qTVhNIkPij45r3cx43Nt;9l&`9U`JWs|Nm*(Y$2sclL}tva zSk-SAW&zbf!QukC3ZkN|uWLDb9zoE`3B0ga-_X~O;`x=;)U4qU6|=o7>pc`IC>biy z-4Ll%0a<$}uw2T-qg$9!<_T*n@p}O1ZQ6ga6{8@Co-;leqt>BDF?v-lP;WbRWaN7h z@&*9bga~fniknD|tpK!IwLrgQlM(Bh;Zp4>URP4S=9MDrj4r1V%Qip zm*QQbt~Bwwu(mk|=a#P?cAN-8wJ!IZC~Ih#bbL3V^Uoe1eC+`z%vVcwC=WeaBGu^%Ji8k*h?r{7%GDyyb87dB*3i@xO!Ipg$-7NXb2 zFD`(P(w~uYAd#FiKZpnTywwY@2j_byJ!ys?C9UU^zYbjuVgdE$tm$Cda14Z{@Wj-M zv!3n9vr9y3=Q%tmo?LYtHCZJ=+8a3;#Q7QIonfP)A#un+KXRdN6w{=j@g=Ltw>Bcl zy=+_`-KgEK7Uf+&_VI#C5EuS$XQdoi?*X6ya)!D1{O)g9IC4+AArX$0MtcA*Zqmuv zy6BF9HHF3;LQ*=~k^obtJ~?6oi;XA3{Lk?oWSbf?oFdN=%ba65y#O_voe7FmYz@9{4TYtg^W2Hp_f*_$E za3Q~fLK!CkrSg+>=@~BoGO`~dy@~R%*uhO6zNpA7~iC+Q8`>^3GPicGjl0Ez=-_kNygcRT*DKNC7R6@t+j zHQA5~ZWI%$LmnSX)hexwf!nxkO%s822}xE60aIXAdI>F?b{g53E!o9WkR zKV54yIt?hOYZ_8LIr_-by70#&SJ2ZaAT4ue%uzwyJkd4Y8ldYn@KpZPMFELbfL9TL zd8aaY1$^Qss`Dv9<2rZ=-(hXgFo;q6tP1sjA&ti@n>vd)cU#^i4zGQ>@JsH8fA$pH z_xASKuEvK>#W$A*MrED9?X7#e)M(u`hoF|i56f?1SVmBnS~koLffD;51>5@Y!XseU zg1N``Uh3vZ3-1=a&qWr9b@!$-Oak_2B|VZo;|lD|dUFP*<#9-3$ZW;$Klq%j zmRf8%)@;aPC>A(M`SAP+RcQB5k+BGwzV}jOL4d>CVa>*rtE{OXgp7m327beUXVxTV zxpZ*#{=$GJiRx(I`!T{b$F{PJy?*Vmx1$}$(SMwBy6`S0c-Cl>lCN#tvSSL=F#7?@ zhqWcJ09`*_PV8B3sVa5KBq_KUod0E5FZl%Yf`UXC(wblF<}6S-NMh468D zJJMB5OK1IQ6)?Y=Zf8IGjmXnZjGXf6i?UqVem-HoLm7@vwdXyqqPcGb z*H@ojur!C8OIaAYqa5<=eJjfga9`}bKwKnLB&*N=9oQM(n2y;q0&Srk+U64)!e*Ql z1@hE7?}$|9itY)aT;sM~eNQg)naEN)@f#w*eTY((e%)iV#>x`(yxGyZC@Aoi7NO!g zjL>>&bB zC}XSDVCO19T!#(7)7}F=L0_6v>uQgiFAB05Rq4bYrW?gX^mc7@fh5skG}q7R&|6Qo z1L+O(GY>vqCjiu#`g$|kDea*nK1cxm>F~*vb4K5mpR!#>Fw1evz8&t^m)kUzi+ugm ztue*M{z5LvTtYQqeM{Gp9OZzsUeYhv=i_ebhJNjq(c>DI*lKR)T;HpDS&DFSt2EZydzYd{^`g?hkjG2C3 z@5l(B)t}JF@kX7*EwUI77=Q^<7ZW%pxVLS9msEvq^}?J+n+fuH8?Bqmx5fSVI?8D+ z-M3daKmS)q|6kzYNiU6ykG<#?S?uGt|2?o1^xmnu_b)(m>IPcB6;bo7;l0g|{0}-_ zk_iy0S=Xr@;o)p^*~lt#l~5odzx^xtHL-{^!&#fl;mI3 zC9YhZ%e8QO(L2XJeLwQVjI+`V{ZAg*fS>$bDUgBo>_A2vAN770v`xW2|| zJN&0rhU0C{0zK(8v}0*k!3SOKXV{P)YM%+xUNY%WM`nQq}+;rN_?lHE=a(gEVugaa#qYC#(*VR4kM=P5L1M>|P^I5G{b zJ=%+5H}}lFeLwGh*RGeSq_@{#X{iDt1ZzjvEqXRBMAwdXeRNps?ThaG}+Kw2Y{LG>m$Q0OCqKaPVqj&VJqWL7S;j%-Rj;g_*MP{c!iXV_I_GCTa4cRR`WyYiD2(_hC}|tXiqk5U8zHTaqa^VZ<4xwXW@ldhTsbvRcu%yKOKlmeVqJl} zKc&pzE_F#CjCuT_FWmYqi}7?Ink7pLZVY^t=;+pAy`LwM-2aS364#Lg*y}@_Fe4TW zdUK`^w_;=jDG(s!nbx)8wc$gK`uYhu>_APY^G!Jq76udvy0fT!O%_{0E2n|1_Ne%H zt~Ig-nAD6j1xEE9_$N$d`bli71vbQ46)LFb#|o$<*zEpYJlc)b@44hQijhD&je6^Y zBx6qXdD2^A2imY|vv$&n238<-e=otsu0~?gcWLRG7k`D&b<;b>YMg|fq4~i?R)do8(!9E3$DP18K1Z%0FNP+;wW{nKG(rkB%=yiGNY+$a5e zw)()<($&}>p4WFhIhR>;@6R@UrimY+udj~Qt`GQ$9AS~75lbHy^~>`F$mJK z*dL)2sl5P3)O-xf{lEr^Zeha@HVxf>~svG$IoB;RD!#;wY zR&d-SK({?F#evyGpD)`d%HCocbKbveOEsX;R`BE$rapoB@Yj)E`W8BT= zN;~#iT*&>d}$fxQgGj1{illPPvg z>K^SmS68v*@+)_cZ}R4|*I?Txag+Y;Pu3m(TQTxKgi)OkT=~ma%eahs(u$d~b$aP% ze*o-De(mqGyz?Nx9LC@DW3F6I-<|$r^3LZwlkJB63kx6K`b_zBY7F0eQF>+1B$&3A zM{3Dh=TD8VTL(K&;rUuwCOFWPEZ-|j34)FwawNF9>=)-qEgDdT6R5o->#nv+PQRQj za16r%-jPta9nu{awdJ@T$oXoh8UksAb|h{D^47;H{Wp5Q@R_uwwYza~#AOl#+j)?C7s1<}zqQ?1Oo$FYL8!qKCp%fR;?14K6_yk{&LJ{(@m;Y_KziAWR0(Q`^H6wP6}f&CPOoG-N)!JVOq3*w(9Qw|w{#BwY`q!5 z%VY)pW-TYU+*dFlC$i%Krfb^?rAfC>F;dm)%sZWr z0#zhD2r&MLQ4+!DjX8(Wpl}va()lR8DWIImyz{xc%EucVzBdUn)H$18(QXp0jM!ah zs;)K}C69Xm)hocSa_;#%jjg}gv`Hze9!?EU8-lIi4Ona6AtO6K0faUs@Aalv0;tWX z2+)cSvIh|5R-kew+?&s+Suw-erj`Wn1XAj8d8De9`YoT&%Z*|9pd;gu@$u|-I1C|I zH=uVTW99#F_RXD&&jL8KH6=Nvatm4|dFxI+kL%%BpV{ty7t9Ryt;S%t0hFe;R%hUP zzw9kAuRe4??XRu#I+46oecM^D$=h|=91cZKI9{bp$1mI;b}4YA+p=1iDS9E> zl*g6!+(qb}_6^S0DF!8JvjHkdU8@PBuah)t;;-Hg{ZAN2iOpS}y7(9qI1eFc1Hp6l zK%&1Upj6BWFir*(O2<3>_wn{OLR*=VGq6ljjAe(y?8(u<;q`JsDa`a^@pdC>Wb9E7 z9BD#(PWOq?);holGDH_RPZt4GDtuF1`4FsvS_fuC>x|}<9@aBOxSr23UK`E{>giou zv03Hlmf>2KPTc=eg1L-sg=6Qw{7cMD63I!34^xHLFukCCCgjNr!>pu^3A#LZzMRKw zV;+l%Yd?o=Q|BSy(=Uu2q>?5?c4H4}p=(741wP<|xv})^HGW!3c0t9d7Z7^QQJ>lE zseJu9iiIo0X&u~aXutfH*Zobhy^&$ZPr^$0e2w_j`>uyD06KL27f&#!u-;D1i4|D)l--eck2 zz8Mp2^=K5Q_))j7nc3T|`Wl82t|dPR7|cr%8j*x-@XXiZMsLGP(!L*p33I>;s-eIPLG!nP5brKhn~NT#?t659?2X_NzoMSodt+7jLurk4KXJ}DXXuaD zP0Hq3c2!=?x#+CzSlP#A!=5<}g@M66)KfQmb+>GfS*=@*$RNP)u7yQ7Owc_JW43O7 z^!*5us~Pdl$+njSt$jXp_r;3c?O0d$Z+`M?X}5`Tp<7p}v=(lno#FI@xp_4Ac2a-EL^eh$NiUEZ|4*ALXFZ z)RnUvn@juGfl4ZE*>Y2K-d+Z%R9_TE08$)B9y<44F8<}ccEi%XOTJk!xVGW_^)*Ta z!tO?H2`*)2$jPy%-Y7rpIZ1wfXTtB>%nV`B68?_T@$Xg|7qN-f%w0^9#o7Ns<%1_c zHX0wB(V~}^Ur&%urQ^Q<*`9= zS1|o2UbFbZ*f*xqSMLLaGP67y?w;rxH?TX+BwerP*Sb$@&29(tgW&MMpkL3{^hZLX zN1-npz`YKR%G-fPj&d-9MMdAGww1^qVFlo8lAAdp-sagUfWR72Ws@N3lIB+6`_GHWzU9aUn7{tif&eyOOF zU__`ik2XfxKpnt6rY!*d5fLp%wj_M~QdoEfm|7UluIn~+=a!GvLvr!C-==(g#g5py zVPk+>zjjp!^!{6~Sf3LJ`FXp*Xd!4LLu@w4fM+TToE>=BPS7*4JOBsy26$Xgh_nRe zuP1}$cgkCW;;fXfloP5}qQ_`I$HGp`R>oQWf*GnmVv?1ZvD5G4_~TWqp#_U$lHItJ zX_`~=GR27yA{x~Uj?+{W+CLXb@=_AeOhJH+Bl*`a^+;rpQg%pI39k1ITY=`rm(u>>? zLN>GskE>=NjiXom^WyYFiUxP?9yvF4{X|Q%OY8pQ-A8`zNIiMGU1ooV4*T{A^>n$j zXMcPB*PcCl+{6qL!}wiUb=J6}DS}b(xPI|_JXmMnzfNKasa998!0f2?hSkxkURtJF z8hszy4DXaR^4vJ@ig^cK_M6nVVnxd8b5iqi>77#Htyzyw%4_wOx?rzt;f4xyZ-Mx4 zd|A{n(j}JuLqIm%(rtqE%IS7#WD|cU|weP9}`RLk;xja<)dy6K59T)E~uh0>-RXDBj_Bui2#Qpsz z9eM{aclMo4UblK4NJ%|%udxBA|0jUI1E_QoOa0&e_^5j6k`Q{VcCC@BOz(9~=&j(= z{9@jDc5dlyX!0p{U2|Sv_82vP=2}GVTGADB`n91*dW?7mv5OAtNO38f}@CfN<#NbZp6A|0xRY{a@zE@BKxN zYH02>7P-2s4tY~M8d>BC@GnM9TI|Q9IF_!%h;>q!dX`kO zM$7}-^p`%N)@SK5EhjzYsi9`tN4<;HrIXu7ij)P9zXd7hz+FgAE|vCFy%*{BDBa$R zPuWVg_TWn&=9ORMXe)k{O?^6VLQv|mA4)4(Cn#wRJ9-g=;+?mWftAz=Xlgr81n}?k zjMv9=aZSc9dN1r}ww!HI%xIUIff7JLGunV$;*RhlDLbZu1cf`Mq6` zGyt*3K9J1UrS&{sBxgPtNQ)%x=55mB~eMLRmfO3!R1%8eF z1^bZWsf$@((#}$vEh2M3F&nYYm>_xfZn(S3|Enf~1P_3aON3(HLu<3eZ45a^ShBUE zl=EahSWv~a{vdKm?GT^Ct$GZiNKSq8v#;h0`XvGMtT_glUFBaD4-|R_Ps(RMI#yNs zIpp42^W+~b=zgMt!n&=fzs5sBd%YD6No~r)aLRF`w|Y9e2<9rYR432u?4^*Lq8x?G zuG?o|y(YsBc^3;?dg8AG+bmI)$+aU(TUZW=OrpDgs|}orpb_Rb?d#5-_B^}T6~pZ;z5hP%dem2fB=^(zY(9+fU>e{wJ)zd0L*=*1gS8g{P^ z8R+c0=sg&TlnLG;CpFuYE#t($*DQ}W+Sb2X^^|X{$*hK5PH)b`CFZ{d?75u-D`4aN zY)5!pVD$d6anH@3BRsH5?YaNk5PA(X$HRUO;NRXY0NNM&$;g!{@u z{=-r9bYJV9w1mG0PCt+Pt%(04s#E z8SO=~o(Of{!APOhl>A5}e3hdYpWW!^qt}lv z65cWOCMi!$Sc1U1HaqqgoFCvm0ioR9lK#E z#|gbqmFR6;vovqci#*xJ#6*M zeNy!9Kwjwyt!x-v^&6u(FI`wk1`HB23TABfFX=rjWH;Y6|7TBD6A|GZvP_68ANT1N z)nn%-)F$$~p!Mb=dFyt5KF=|Cj65$rv3iGB&vD~9bSRw9tOf8)o#U9(Q~{JQUw!%iA##NPM6;Kl&__VljniYonD3~vP>?1;{C2^<{`9Xf-Nt-vk*9wk827jGS5w=+`Y4(2FOn?q!fXB38ja0 zs>*8!8j~r_gr2hMAFkO|sSH!kB7&x}FHD&u9tWhjX^c@AjTeyu|iUL&=@i(8J|q zZ6J(imS?v7mf=k;MnYxbM_uS0qT)Z=7DTuD{!(T@htnDP{; z!b`ywYiX0d)(N~+w|8dTzDJFH{X;4p4yel5#7T$9mf>5`F4H~1gV-pp>XAN+-2$lN zt;{`d1ckQyF3nZ%D0=^y5@Y}8tz&8m*^3Q)Kq3YzeYtQ#`WRdLNxNIFGig8~rM)-j zE2QJbZs}K-%)SWZr1m%a4|SJE-;A6;=};Ufr{~hfI**w$?T>+jdTV_(mhYB&hG$&7 z^dVyH#4Y!V-b>0cnbjDct$Qkzi!`J40pdR1@mr$o7&R9CcS7sY#$)OubcGmPbVHVs zOfXY^+g4vlc}Yk|n3Vi|wq9r~P?;alluR*Y8>w^0&y$}=d*p_O#^94H9j{)s z%}~w_t8!@I2BQ8wnI>pM7$2EGOJ%iunQkOX3E$R5qZ##BE*$8yq^n`N)4Vc}z#P;7J#iZ} zUuLaex$oHfxpM1!UdO)tq-pKCHDQ?L=hqNAHMWs=uIcM^X@BI#<$Qkjtl?}4H5(UA zs~MTA0W5{XNb)6XWI)7~@d;Mw)RMK^~5oT9P7P@9u9*Qb`D#&srtR^Uep?gBK@ zd}qX?c~A-niBHAo4q6+CLb*||;Cx_m6SI0l0Ol6-B+S!NSyEU%XX#17MrVG#H@zU5 z2!G+{1H1fWdYIx4a5#Oyl0?e3cR3Is<6H5*X&wqu!UE)ZqWkhBs^8GCVk0vBF z^I0DK67Lo*sI}29&7>vBg?C^nQFM_dbcD8V34&NrscfW@0CYRke+Xsh(R^io>Ls<$ zbxN~z*mfiC$1*~BMl{x`OI6S{)gfBLY>lj%3xqXp$U8meO4=A7o2p*Wr)^H1&=(GR zJKh$@Oi|WeYZ2OtM@Rw0n0(I>^hM$2n7B4&K4E@FzpXKdPp_8%}@Z9= z6I>NiUGo)$07kbp4!F1me64(uIp+Y2DFBN8r}RT&0Lc4C@D8H5iI>^oJ&@V_C?JqD zqe;sEq)$yVpFw}-7+5QZT;A$AkV~ykMjxU*h9o0HzwN7l;}Tktn8pz55FhvWJC%fr z`xdYIJ-{h~T2}HsDw5dOJK|TgaPSK`4BjQ)jQmmZ15^SMXaM=U9CO}WbRwF6YY+rO zCgM~#en(A7|GWZ~rW>L4M!)M&(;@Ttj+SEsjw7g}hv4VEmIq^!u8vURgKT*U&qUy3 zMZY$dr&nD)!AZ=m`Mi4B3`ZAYAzPl0O}-BaFO1ZD!PTX%mk|`I^=wF*hr93e1b+wj zj)N>fb8i5f8oOl1TpsyUDp1j~`ANL$#_i`+EP#z-W#+C+2x zmJOBiLgGu>hzG6_y;90H78-Gk<6PM73x(6@tVc_zD;!-h-t1RD6b-yeNPi;thF1Wy&mDt0j4G z8Epj{@?iFcY@5+{CG5QNU=1a%Z;UnU)MGT?aVqmfOZEcT!7Y? z^D_}!?Jooge%wPm`U@5|iLS)+EDH_A=uS<+{q+R7^NduGG^Oq+YxU?{y!Q|%+i6_o zCVdo@F2inj``|jxL}+XLXb23+%(6e){ldoff}^(5K%V>h%=AKOP8QxEzBG~dBqU1k zW#-FB;a$zX-oF|G9!yU!sIA+Nt&HuAP409pO7-dgeWsDpOvPEI`c(NOkHO;#;K^RB z;=`=SJf)K8j5{-aO1Z!PMHvPYBfmR_j-%*eMyzN79Rw6vD}n+RnX`)pk`SON@C1rh z;2Lud05G|bjjqecPG~ygq}8L>0%?Ab02IsJnRMrUfw;t2I*nn@qV4dlmxp}>K^;+I zmCRqJScwSfYfWP>jg2WgwRJ80IFrWU;h7b__eM2B_c%uxw*ao_@#i77{Jye{BYKRY z7PMm~^pKNR`v$Pc4S_CEBoE9*Oy`mN#h;i|=zGv-Bp<(<^Bt-bY<*Dhyb9Bs&patU zA#xGGUkh@tEkh=Yh@Fg|(bqpc04yBep^oae?-ZH=F(jiN9zcjmWVgw}cdk3_&S(a% zZ~7nY*#c3%Im|TH*}G)9dWH?%HxA7u^!4kSkv6(?Z7`gHJYe7y=ADs~v`8x5pRxndRZXV5`o)W**u4MEYIRHoY3@awPqn1Z&kD+VF*VhwK5c4DL&r=TiR zB?bx|q>>MZOdfo$^=4Cm2R9Cz#HB;x%j$oo<{QK>KhoLko<;ZT>QHJ%3Vppj8O@}) z8iZW-QzB|z`(tUW35x^d+D?coIRX8e8#)9GbYVj*35*&f0(~%Dv&N&=htMj!PwCcE zXjm%vU)VlqO22jXG$7_+ek!xd5p^nw1tEJh-7=GccVY$`OJP7M-u0Lhev zg=k2aUy$eoM11U*-4aG1UfM^H#Mju(0L?!JoJ!2dB?5hRJtviol}2A3!v^~8V;>#O zO@K2FiVm>w`~1J|1SO*~C07-Q?f%+4AfwJen8fRM$#2sS)eoCGhJ9qQ^up~|eEVK{ zT`4lXp?)>bj6c%gau8ve8F-Muj}q*3{W_cYD|b zLV)I8Lb)ylps8r_;W};;e@D&C3~c?v#)Vq7`l3ZoqWe@}@td7zZ$i>!^4 z!Spj@y*C-s9V`2_6)ht~<^>2L&ll%N)p`~Dw}>YInpp>;cN>A2LY%!Qc!HhFWY$Tv+U))b zz`0AD4~9T#WX?nlAkj+%t|Zx7i&mGidV7$rAUZ362f%pJw{ah(ny&mZv+_7g<>=+D zTR=3bzr`&kR^Nf8t(89D=-c-{(l?b`C#l7jPa~{@%X3OqXiN67D?L=jPVav5bKw{z zP`}IMOMZ){8ZxlTd3s6o5U8m#0S+l+YO0O-Mk0d|fEVcC*Qngpc7F{)1DlbE+isPf ztm517ASqUNg%<>y+w)85)gtGA&$Dyf?T(5y>$AW^&(QfBySuoIllHd}7 zP4j*qz|2L85AUWSfZj=w@RzWk94C;1Yhq=Nq0;k|H+$G{z1Q;t{YHYsQMys3B}d7O zbAlI!!v@XfO+M%w#;{B)88`d7AkPBjK`b>CR^daxoL<# zXoY}2XHvYsoQ%Mn7raco*8JoeCiLc}eec217k@0`CpP+nqSn7HdIQc;@JNE(Y|Vu* zZgQ1VZN1@ZpWLgq`rGc5!S1Xn9X*8iPJ6B`mZC=cSK1q3EHL(nyo5K!!~T~NTGftO z=^?61etwTKmW^rZm`u(I#vJB?l3rz54#)_a{IZl1@r21*yQ3s3|812YtnpZWRS50a z`Ng=3GP169*d0>Mj{xllllFtr2t(tDFF!oizUV?K6HzgPc_d zoSvS1PIO9i_)^3|rM^QJxJ$u3w7Al}Hpki>DY&%6-dNKVdM-0-okjBX{7ZwNAb6&X zAt0#ui~&PVw0Br*0Pxr%pSJCB1$o-+MGCjP5l4J(ia+S>XZtB86T)RCe+MZDLKbyH zP02}~;}taCVT<70ECh*EofEcHmFBas;8t&Z0m%vt&!L5IEWwtxA;$CQ%3fJ|jqB5r zB3zn930rMNA1Yw{<&8esAefp{)rJa|=3h1|1+mEz%g_U|*LfKX-o+cEp@t~O{UR&# z%j@a$GbqvZyK%7SQa|6ARHq>$gpqo4wp-$dmn*JK)S=~?K8Mv+6hKEUTlXdO9YZPg zm`0Y$FBr$=P8t%|drURsI=jFVUEP~dp0@Z{CGWvA;DC`AI0%pVin|n`wftx1fIdy# zd_G5ljh|BK_O?qB`Egg@pE@^cBEi#6#h0W@Z(RBoM?RE}X z!|quhSDhNA4+zsYTP@%^UC5dAA7B1jG1ct^ciWu`t^iwZ*~%8qTf7t6>0HAJ>KP`1 zFgskylcdP9h80a$lNLdj_7Kn`l@Q4Xh$Wx#)Ne2Z|8D8$z<%%+RPq1VefjOqcb_Ta z$pp4v9`O|nsvMbqLD$>)XY@XSDw6G-ggt?V&Q&ptKX4go^NvnPmD7=fqBCLW=Rs#n z}-D@&Z_T5DX%vW5)B)&KM!j}>6xxybL`*jI=9;y&yzv1>K-;G;bS{3t*{0(emx_Z<_!C@?tV-z}*m6n6o`+~4{a<&We zYZ2B!UJrc)S1KquIEDFp#eK>OpTch-Mwx%2JjFP)%IJTob-)h+HjwQcp`R_SPWIT**?Gej9(iM z6s;-HF2|SU7Wj_AC{y4n(hr2D!fQq&^8#!+;8bkiOXDaW%u;KF143DVueo`qQesOL zBwrNxuVwyD2Rsj2KY%C_Yo)><;u;uOsAaoZRtmy%tJ~X;jVG)xp=EhmB$iszWuxC& z(TT=Vf+ep(YJ5N^yhe0!RD~1d!CQJ}g+#^8!$LRKP?`H|u%)YcjUfy4eodaPdCa>l zpYgs2V;pZ0g{ZS-p}*-bTUNTZ@;XHUraPKd;J9_kF2=75nYZ-)M;yyp8aAuezzgIz zlugF?58L58%&pJjZ&NdGBwVGv$##D?c7OB;Bf!r{^@6VHVdD>76QM8GZx!3;yO%7K zKqhx{CsPnj8Z|>rQB6L|W?6_P%_?N=s90?*X-;kJUkHcwZarx3^{LZ>N;V+WfNWz< zWX~_H#d1?ww)I?`^rRcVvw&5f0-(|QI(Ovp@X8Pctd#X(k>*JA(dhXBNw0|&x>{2< zgvZRB8_|9+|XF3L8oWf@m)myu@FRq|LwH@#@TyDHJN_@-p+6As3=v6WGr+8Bhp(e0~in@ zU1~-VAw-DOfP`cO0ckQ)$IzsAP)KM2GV}qYH)#n8O?mP;*Ip?hBod1jGtmiy0 z$y%)3x$b>k*Dl}v*{w3*#w*0ngNQW3LN2T(kt>|PzX<|R&p4uCWS`Q-7`_aCl29An zS$%1aE5b%ZH;XSIC4%!U$J7&}k>{Hs@^N30GGB;w=?nw;F5+?WV#va1z|MK2>S;t7 z>U-3ig9n*UQu2x~k^_hGsY)+O75bnX+r1!huJvg|c3!%&rJqHPx|J6zouc$7Zg(aA z>DJDjvkImMRl9bd2C~iu_gv)VwTfkCKKcL`nE2zGP+9JDl|k5= z$$Z+ZcRhiykoFxn=Udq#mtR&X_(F0#$qUt0Du3*x+zKseDbN|I`*ID!^8Pr)y>NB^ zl-@fk^A+%?+B_clhAw)1q#swFP(Czo+0L7YaL2dM2EQXM;_S%i{L!5dJY)EOme5c9 z_&-d>6#NGPT;JgeAsO{tQR@Cf!mFn4;-X-wMNCJF=|(r9cB-rLu0{HTdKNZrwJvtb zo^=od-MUeN#KG9x8Ao+ZVmB-L=Nw!dJ!PODYsUkTr`IOM&vCx}IATcTexvcAjY4rj zDc(aOht@&y$uzYfZ#ginml0>bOl+0~$l%cndX?ef_%Q;@Br#kPyD0@4DuMSG%yZ{> zu=2u<33b9tWSw|>P9*+1@4ev(bk3>##y1;xSspPsdlvORTlA}z%*CYdOnO^WDmlLX z24K8s#u|!gzQHiR+hIB9wPQ?z*OO9bQyxheXpG2)w0ic>Mbst~EbDIz1*`^xZIL%g z(n^Dt`*G>1##s0rR_3Z?O(MzPlwA!zi9WA|>IJfStJ?)~K8y2D32<)UhiM8x2z$^) z$^!Vtc?`lsT)@gD=sp)EvKlo`R+BMD0sk(DP(YZV^Fh z2?XEm!s4$sG>y$RyZv*Rx2#MXb<~D;k-m<&wCy_4QFY5FyA3Ly@}@qeSX)LETlwII z&B|Y0J)z6+$`PW>et>7S?c?^ePMy-g5-p>J4Y_tq3R z;QWLn=X&$ddPD|srPp*D@m9x`{VK#wG_?J~B=>{8BW)Mgdk1>Q5Ue>K^8!(GCX4^- z15bc`&O@KuHy)C~f}0U5)PAh>-_dS*rG|-2bemjZ0W6+GIO+Ald78FH)1JbE+g2TO z)YXCJFy{p1{Wx+zNub~9Ek@TWDb~BoK&qu+hU8uoH!)udm0F4S4jhnB?0M&8A7Z?| z=HlN&+$zcp!3w5NTd;u35%AjK`;ntsO-N#Y)>HP?2ZjqT?`TiK|W~3YjbHu3ZvxE?w&@)*5)a z)}~-VnAGA*>#&mfr)Aj$(2d7}bh0*0oD*B>7C>eU#n7bK$WDYHPMU2*59eRUfg_b4 zy$8z1I%U92#%uL01bm`kyz<)y2tf*t+UaoA;8lHOmY%r5gSDL!|vGGAOWp>)q=UP*aotq(j_)opCZz6aOF(8L=r8dOlGla^M?Z@Cyk zn;vMZtq|5j3?MJq3Dsjjwmz~j``Nq_{&|Gj8kkWz*QyIBGc_|fcY^Qy=E>k-JE*T| zs;o~mxk;HhxTHA)BBS*>!0hw&q@mm6&A%LYSf|m|8#5+{-ZpeOIQVtx7+a|MSf)=; zrNiN+YFE~b98(=%sL$yn$NzrlgrS2Su#tAH7irthL)n)657At)oBN}@kNT4OQ1CdI z1CIks{-ho3JlDE#c6Nq~=25tc1^7W&EulkTWA>hp3VFbF8zbzMeFZ2Lk7hQJK-|wO zOdI+btyRv_Lw4@M5av15;L8vrEkRGOXrJ>!n>6FPnVJI~PDLS%1oq_daK#3SS7W1# zK+$%}deLGvbmrw(ajp=7e{zE{^jXjW1WuZ9gMc`2{b8V)pW+pK^G0{Vz(qxwJ0X&0 z1P}l`P#Y}h{|!0)b>kD_eeiX!4^BfR^p=*WVrI;B^@4Q7u)ba%;NSk@%vy~fIjJ@o zZ8kq+fp}N-u&%J|l@kT~=Fj+~*krrdpxDXL4MVi?Ue@xKY;TC7v6iVo#ugn=L~!$S z_PIZf)Pe|F*f%3!`)w}w3!yFTBB-8o`*(s-?JS$6bNvVgu*&)A@WE}XWz#67z92Wh zs^PJ5qUot#dF5`U9a@r)bETfV%ELxSecGlqN<+?n%zU!Cz@^L@)$01B<(2IO2oYRU zR3&Q`D>vNb94poRSL)BdMP2xER#HKqz_|zxl+hvX7z0`FrQ{OMJk~=>;$&OQ{&L1` z+(@?EE%@gobU41bDg)Nin%F>Wpyp!7R<9M`HnL*Pp2|juOEzbYw6o|^?ZMA}({U;{ z8Y|RIxhl3S{iIYgA8u0$Y5A@>S)9((ZjI7jFY`~pNC)4A;!+kBOWlA(xwc1}b8Fo< z-dvS34U|DJC&CG+IX$&xyv375kfSF~aubUZAxVYmRk866j_QtxTom7m#2 zT$IpO=(Z^9uEt}_UayIsl^ z|1iRr@}&Kg(LU)a0rp;A+MMxtt&gY}DmR$SSll@~D_DQGy2D+Tf*SOFB$BB7;ZDvw z-=1gNS%Rhi=pIMc4D&Vg?hl^pivUxQMTBC(6j$(Q>sr}CU6+8TML zq%ZyQc4LwqqBw$M)qUV?R zJBCjesGYtiTs=K398S^bjvEIqP#4exBIjGmy2K69A4Iq z^#PwGu=Ur7R34RktGYounSUO6krMs+qxdJP__Foomtv4#bDvWVrRew(mfOvQN~WCG z48N7a`(0RElX5>qMx9Sf?$#u`!>LA0G@ z`9tLaw#CXxqfbFev+cVxb0%H~2<<4B7$NNM%~!h_zJKYPyXt(pVe_G3PE#%zEJS~( zHaY7k>K2`m7U*E|u6;1?RT9OwAj7%U86)5ZucU zmWBS49Ke+71ugp(3)w`xd|x%Ux@!Fz6x8-hVdun5*u$V(a?$Thh&S zY*G)a#xsn^w_C~%2ys{nI3hXDywvmkC~+kmk!qZ|D5?$C-N(g1p#zlAwvaqH)%10uQ5LauR3PLHE%dt#)a==iq{RZ@SE=gRI5 zQ+jGDy(w%-H*B&Hj62z8p}9RrMXJ%BDRkAF%U{NVXqF%(oCq&|vb@vT7v$sEPt4Mi z?X5`8QM0m436UOsm7*%ohMOvCH{!RzvM))VE3RrhwxymR&p+kFkw$&DOZWCJUYpeQ z;EIT$l?Bckwu^kIttF8o7Oq*&%s4tYb)YdveGBY1j@v1;Z{B6r4Q|65W^{M^vHxTe zeP;aOoVTX>Z~x*I*H~Jl+HNwWjI9dBf1mR(-|Z`?Jm)^32v-<9hnf*CDdbLoK9UP; zAqL5MNC%XtTSo8kjH)etsLo3Qq0zD%i1s=vOdfk(FxfWK`M`i|3ygOa% zfN+ir4fLpRLg6n*cku6-rJBP!nslO8#G@W5FJr3eH@7M)k}Ss@RO+yBh4oJpu6Deh ze)s*7J%5vT@ID{P%E2RVEA;f>ZrU)P$v^)YXE#cHf{2pz=<$Do*Idh~t&RXy@$r}< z^i}84B_Q_^tFL>kXYAp|>;c~U83E6~tb(6a8Al8bjAQq<5PWMa7z zgoT}x!Rh?dq3k$Eke)z-Vjr>uH!+JlA^^mCQoUT6vvU%7vjfIG$WtyrL`OOnY=X;Q z-wQ@|w*JD}oJq^ksGRluzFk>#Bh>uPmIIw(3avYIikpR-5#g;>!z2}Y)13E!_8L^j z$=f8&&$}S$Ag@)K)2mP)qHMHRs6aDC(h|91p|?l%jX=vJf_KcDhZ`>fB(t*WHy?5C zY&^dm5Pt9SMDtD7suNrDC0_U(-D~vQ7Ucd!g}XqV6y;>0N1W#i5jT7&Sk$)T&ecrX zh5FHMtWYR5z{>UaUA=-vBgWNqYi(y!O%<}1h) z^A;UPN7;O<^p>Wik)Ef?e({c@R$lg2v2nFN+?td|B<1M%6TS>GuzN5ND$&0Vk~g2r zbM+$jpFWNqg!u@bItI;rhIt8*>CgSF4+?~}p1H$Rf674JM&_+x?d&Xe$k}hU`-UtM zOB`BKzoJud=3n8o{;~VDvYPOno<16rfv< zd`-~1-^#|unYnMuGc^4z+Y%sQC|9e!fY}b;mSaklH*%gPix-=G4 zH58r4sot2UW~WhZrB+Y0Hn~oDL!o&s>5JGPf=&(#r}DON24@bwrXckG_rMC>mC6Ox z8MM*(w|kEs?qI%#K{{b4RKJE9t_S~95jsOiBsmvwMf zlh#B>*Ix5hn z`pef{Wx=n0!EcwjGNqDXIoW)hBgyY?+Wttm@=}&xS&F;Bg7Us?{vjQbF7DSn(A)Ox z%*(rET1MUGCO!4*M5RW}gk0tCaR@1nYOKLt9!q|D!daS`ka%ZtV7RI>58tOF1I*v2O0-#!^fR1>l zcEvXXQ-K7mmAq*!oHlb@ZNi)4Y!iRkllbLzuubZLU8z$KkCf4!k~0+V`U$4GbJ;{S-J z*ZZqp?F*THAo3?=NWE1YjS+VbN(Xy$oaV%}{-G*J4=U)i%9C$6mTqLx#i&{fhf zPx8wrC{SxGr6p^pHU2M^7wU!D#gZuu^@5`9%Kg-P^??elWauPr-7;}E7fjDb^Cz`( zYSTB3I0pDG*vXZ#=3@o?QJU&hA^T|@!|7gtiw^!Y_jnC!-=pVjE>Cei;L?9~asjXTa--2}bYqg}kHR?%S0{RmSh z#B@Ca8^<*h`OgG#uZJ$gz3Ik=Fl9=8eNj!y{aI!pV|hv?dlRmZDg%Rl^2)GA=hd_l z=VuFN;0C${)fBVeY$Q``7UdNN6isRov=#dUvek55UPZpQGZhM3*y1UhkHZ!~!xpKo z2Ca0v*??WXPnc9Ui+erlpgv%MlukJ9v;p1W#Jy7w^ROLrwT+3JUe|hX{-5o~R|&Mx zvcU_M$=K$`9fcD0q-9f;wccKM@x_uo)2DQUquH^w{_(;I_qs;PcbdwCo?9iEW+unI zT2zLGCRM3&CB?vQl%p?(^&&X;aM)iq1Lj~PeSI}-iJza~^}SyqSIrtv|FWN0>_lgV z&ew;24=F}R!eZ+?FkX!zA~sh0>a8+%%!zMtk@@}L#k0B*-3bGf!DKUp0ehp5WDPM9 zTk{+h;3`w_4>HfbJ^Ka-e{WR{wl`%9M&T@TU4|Z2e9_&0=ZmY?^(icJo$W=1cZ+Pm@NsDg#GQ;%JSKF8KP6cwcII^Y)zbJID1cS8yC@MMz3&>P&4MeAYgX z;;V)O74gUZ1Ye^qKhBeJMJTv98C5mSqtMrg*p-%fT7t4;|GWB&nf)#@X&ki; zc}UYnz-IoAo>BhSg7YCqFC=N}ED4?b9u7+B|1nr2Abq_xn$W*}8#AuT$v4-SN00MG zz~s=sBdo>z`KP#d!c97V9GUs~&o`qAh62FTdp~`koOBu0t$E#EeiUmjGVzUGwbdr; z5s<}O+MG|0f3kBzLi4bYR4lq(+^bj8?|>E^fO+)xUn{)0JF%LQ+c&na_8jH__9M0w z^G}jlzpxNosNjtJQQY69Ko|4z^FzPemk9~=&*9IG7tA=9HZ<iAQGBWX99Lig>VVC8wSf# zP0V#sUW@WdshD1)E(_&s$QL>|D*j8h5Nki0fjo=SbQA<-k_D(%8SsOm_PQCL#9Ys` z=W9gccg3^6Jlv|N2ml8$pq+vztS&yjH+A{0O>y9q@nTuh3(c&<@h9InuDeN-YAMq0 z%9ioAd7$3iW3+G5u~%WOFl*+ZAYV(N=MePLB1qIH^fS0n(7tSdjzy=n$wW3}|1P^e zg0BQ2{SK(YFLs!4e=WfMr1!1nN5^ zw{tv7J+l>t1FO&A#K$zUt~!lXiJ66&-3O6@??_t~ecLoopRKH|ZT}0lY2!ATwlmE( z0X}NJ>CH1<`_6r!sLGFgNyUF0M`8;#KjjrtreW?9*4_%_;4g=PPC7c}Icsz@3XSr> zxVeLf0}pqRpgKFdk0!^mDqFIzkm~Bg6(*H~EAwL&7Gp1_Lidlx{2D8+M@PEWPlOcG z!!FfLg#?w9ki`R~Og#O_V##)i8bnKU>YkCgqg}MtHNvNQ{wYquTFzPO0*fFM?AB)Y z;ftdPp$@jSTwqdstB-B;sFZ66OoxS`P9_=cdM{Ckc6H%84$$*)Xs3Hg*CNY9XOy2F zwk$PiCX@1mrzx`HJC4p}X6e}$mNxUtTzA12TW}pyvF4VHWOylRkoUQ_8@|`S-@zBu z;gvVrva0vx0Rhgh0ODceNFJ}0uY_)@PD~r!>1~+gOK}B90}OD0-|j5TGZ8V~`b#ji zO|qr!VbCC7ICgN|laVzt;3na3s*6ZdG;;C3mQ`kKWh**L$_PI=d}Lvl3U_XF*ES*Q zn#^c7`caDekB%oHoO%@+4FgR_t-VfsN&j0g4updfB9Z@T72v7@81QPS${iw|J1w z1cM_`xTOV}G${NGZ|B|uAncn+UOd%3@efc(X|S*(3dkH-4a1%ZU}WZi#g3-^#v&lu z=;OHDI5=|`&5@gGZ^{cUTeL9KXb64D+%j@cy-JReUd9;jcz9>8_t6DS`U~glHiEM! zx@b32tnKmNl(qYIy`3(IH0Ez%R6{ec!EN2hQR?O%M;SkUlh7tcLVV6&T&6|j@yGo5 zorLoQ_bsI5NA^QDGJ2Do1`wD#kyJr)3>V?;c42%mqa(WAer74|Or_T@a;9L)Z`Pn| zco|#vDo5+4ues~S(@Jw?bfBo{r}HUPl`fWn=3F7PAvR%d zJ2R^bCf(FC+?URy3M+Y`uUcJq>~CiAASQ*@&Y(G*Gq8rWVi_krMq=6=x!7*&rnRx&{g`< zX9c?A(d_rO?NivGW+f-a#IDwp!Y8yWgC%n0%KLcbEi=sGC{4wTuuWE=E+;ju)DZW5 zJPHW^-^O&G9Yc78IgT|2p{q*2aHq^3{_lwN;s19;`oE+l0XJv4BcC zXyMm^jW#;#K7IOxIRMuBu37`DOhKXGjBa~y`{Qo2B}hB5_O2%ZLeYkdbTo3z@N)2- zlR`Zmj@Zb+T&fPi7u z?`MK|jBm<6j>O@As$*>py?V@|QN&}L@46RHS4UNAP%q4*46#vL0cI=VVLtozq4n>& zO8<1c4Pn8mm0!^F$qA1a6-rgSF$K8_>ZH1)gJhor3#Cbf(+tex!LRQHmoxb1@WTa7 zfGcuy+paOrO~h`V zH}&;FC&O3fXPzN|6~7}?ocLYE7a#CZ!#DAias2L?#F!GRS4E{ZxZTdxfE((CI!Y?R zs*haN@?$dB!XU36#vWov>%aIDAEla-SyVXYlwx<}8QEvvUT-^n56*BNj&)e__OIj@ z-mzJX?&uCISK80leth*Da))_ugs;LwpsU4kS36|Ww+Zvok_3zNR_*SiPBW>Q}*bFBsM`0ei|6?f8L z!_SKtQ6(Q5Vi2dZUXVWO{}rpwODaFvE-1CS_U(o@4L*{R=rEd%m>+?7qeFsX9++Lcf8mKGJ;25&}0 z77Wei02&n#0Mv4B2HacSqLRcvP1D}-*KkU$BD-s(?@R7-e^F_lbptvQha6oO>a;#v;Et7 zLN2(0+UCC#dUDR-z)L;cnLj~;4!>u~Ck9qe6UWTQ$2$CxUb^z(cmu8~`%MH}uj|Fx z)a{RG%!}*lP&cON%Mq1tL2;Jj&%RRLZ9^?LF{wFCY3a!nM|!GiU{|I0r>$$-b#+@R z4=t0udv{F(-V@_UDd{jhM?Hn6x3w0IJD7Uj621*t2kU^%()Y~)WsWuO`UI(bOPrY= zPD(&JkC0{yn=<~U=|v4nVPv=llZ23KAJBLKww0Ho#-{aV(!)o!mklH?r}rZ>`J9WCV&U7^1zxgxShW z`#)OG0RmlMq>Wbyt~O%9I);t}6Rg?D1pP-$Bb9Qk7#Y?hS_m$aZd!>49^ZxsJbvq;ILVP0Qy!y%JjQG^It| z$<=jt#A`c=f|B`}W5^%2hmjGR$)J}$Ba4>~&R`hFu(56U8|>(p`m&2=ae9ej^W0y@ z<-u8qN<$JGL3U41s!M@jL!=;sHPso&s;C#Y=Zn>{^<`uxb|AK6)rEJycPpA&SS_0y zS~w_E`nJ_jyA8z_qs{pmo}~?|1e9q(LFVtd@^WO}?ASYv!2PtQE^6eUictFDI-xDa z0nBEl;zzaT6M;w7l1~Uf!B|w7M@!-BFLUSLN3{JJeuJD{H)|1GYWSqlt>3`r`rPuT zBp~-K4eFLFCdTz1gdgH;=o8eS(;bU zc>Smw|N2gx_T`Auw{P_GYlAO`!-X}!Bh$+cLnyO(b!kCO(phO4dqxh%RwKQN22hct z7c_XmVTxS-HG%?+<>uKFMO`Rt21`3J^v$^4I(Gq$_8DIZdS;~2xtI_42G1DB z6_YFLvL+MDCrGnko1zG6gR(N~R9sVIZx7g0ycd1!pArqheHk$YTb72@YHG{xGgxm< z{vHiu@M|L|ugn6b8f2VSPh7d1 z{bcT*bE@5JXx+Z!zG-jZv}bd=*+Y*#P;GFcCmxsr9qZRpi30qIH@7&=>+~ZIpXElv zgKG7bwvPxOnCTZ0M>J3fW8#FKX5Q$FhWddrA}N2HtXND{Cr;ea3SBF38wj&%ioZH$ zQynPG5#@#J`-8?7MP->nKIbsCVtodRBb(2H_xV0AQ{RIr^?5ObM(^N@@iO!w%u8O| z3XhMiCY_bHpn!0`!=iwPZBjMlCo>kl1&yhz3Vpt@)E2xQ(YgNM+cJ=%L@Mod9bTC? z)*l$yUGrW_TA@wFEB1wwkLJrm7Ss8s!r0Z_be3NZS5%o99ZU7$Jr2X}!+3vjFO+g0 z1A3gZMa90}EZjOV@l60hfUA|rRE@mu1APzVszekaLYS(T(AjcY5uMqW!ytDx>yUyP z0y!s5bqZ1s4{a6;+(O_w#+rT)l1wLEcbALB6${3_?)To_GXjGw%goIDyvWJ{Npx^y zW4&(7Uca~MIRp&@=(^n*!GRIQ(d)eYW<5rW)O}EB8_k6=1*bFakEk06BFLj8Zz;2n z0Eac%*JD1WK45tA8EH$mZ~96dskT0Ra+D?#D}_7y&>?gxxoH`N5yvXGVnTCV7Pfi| zv*sGpWqXxJEbA#+!POrj?iylK&=jX;x2p94llhe;!otW06Yhonzo-9!vJV#794djY zRQ{`@$&5t7QPE>*$CdwleEH`Gi+%jQmic^aJ!Qwd(ZAPkO?g8=9xLN!gq|?7mHZg% z6Sa1PlY)|0 z2_od8I_KS2Eh*HI9)<;h@sO+g&!e3G1nccQ>-}*g7IXh7H#6|4^yNpx{3(%b|dc3br%kD})(w#+%xbt-sEK*xze)fH!kUaQdFzwR(E_7f{x9_j4&_Pvyz*c52=! z>8diN8+Nf~v}CXT5YA}OGMokqfL!)8XIBmq43_m;3eEirE9{jsov@j6Ug~3Brdp!` z<8GcE-&4W6?=pTYTZ~r@dPHfEkH}8sx%CfTlIciCLp6*L_s5JW7k?uI>tVvCUcPWHUnu-&>Z|m*(cXgY> z+i#4`WtsJ-{hsOe&$w_ziVkWvRe@sMr(y~3NP^4PPD64)FFWWj2y2<1@Z=4Ff#wf| zT3iSL`xkNxLC*m<6e+)yxO#sFM)4>X_j#I?l}bcpz~x%Dgz7d@_vAyTO|O&&eZe`G zk>)d}R9Q+z6Y7nPIZXvChu0cIph{LN%hZM8wnX46?T?Dwle_}F9_!=l2=8&6K~k3jH;9E5|&n$g7{0?K7Czph#tEl$zS8(9N6o>{}vcxn=Kx6Az$SPYY<|P7r7x!BAvy#6maVLIsU8Q<>LHZRJxO9N1wQ#J?R$f+|^ zp$T`Hyd`Ggr_B`E9qk4>Et0P8T-xd(E9swNg)$aeHiQt`D(Ngx)*oePz(RE9oa9~t z3f-90f18u061X=)U_JC$`wvbVt-_P)JgiCfO5dsrIRWpHMpyx1teVYp} zKl#~o#wYIV)_#w}*#_&TQbl;VynJ1Hn7WfzWd(_o^w{V8d^eOD1T9#ZOG;PiB@YZi ztExQ|H6#cZz`e4I0rbF~!hKLN+p56DTXS#e1>a<(4b68-WL%t+y!F();;Mbju)>^` zxgXs~Su<-{u4UVE0GZmuNbLA0Z&6FJJ0r=Ls?m};r_*R7iD1MROUNq1`_!39RvEHxG@J)(0?~sK zXRh_Z`Ogh#)&S{Gv+HWn#WnSzh8%yW4BHO1TPe#nuu_XWEHiwAar$PnW@3ca(@>}% zD9A?}*bx340`#gE>N^Er=CJG_NAaV>w@c-t@Y>wVfD?1*=is-{1ae;R>H>}xtlUWx z8^ioes`YwtO&9qG4iPl4GB-OD+;0(pjdY`tF!u%@fU^0Oq~+Faxa;^_wWYD&)Nc&M zhA~r%2c?pBG|i|_3%YM7h+1hwf416 z5jO80g1a>Iw!)`N`jqTYF6h4f$*U25ubv!ujXKv^W`<378KV3h;hY&2Pz>0=TgyLZ z$WDt~0MY)dTO)y0u1>dkRIuu1czV>k$U_ae!B+#y7tDoC>gp1((T#gWY0O_9JrzJ- z4}WN-V`gPBwcK=&Iy1V4onf!U?fMuDmnne4g8eme;r612I+!o3muhV;_19CV!#jg7 zl?ba9kKv2(|0YNhJQIaIsh@i}RycG*vw*)oR)+A}P?{??vW=4{-uU?LNe4;|^kQs* zw?%8^kttw{7w!I&v>E20={xyiWjk{ko8nt*hEg{4aR@8y4=#7HP=V_7wqgZ+m1i%oYG{LN@q^oS=DgRG7&mVOV#noX-}_pPP2t{ zR)-p!?jFpGEn6VhYE1gt{=h{Y-ul@ulkvO+klp*OHzUGV ztQ*e#=VNbA`hPlZ%%ruBI;Ss9%o3f;2IQ(zY{!;ToIu&x$g*>>teNW59TEP=OX6x- znd?EXL<l;S5#+eADQiPcu4T)(UX$rU52-$umvy9OUh%c@f+;E+K2}wb4_U+VPv&z10b!7I z0lt6${$P%{z8+KHtVvI{7z?#1nmnFYkjHOd+`XjVyjz^{S4nG31OS25=G z_9>l*o13br+GMs6>*cQ#tjU#VIBPq(3_Y`7TI|`R5?AcH{=NHSIc;{W$u7ANRkssZ zvQ8|@4;YyN5!X3r>2$}a+`wygb((L@{Qa*#=-e*v#f)INbl13@;TEBl)Nx_wQS!Jo zWqq_I8Kqg>_s#AZmjk$iMkm1njpTCAdbytl6 z*%Od(!jXV1M|5=@UWm0)3yFThYJJC+a%5Gf}IZM#^jFa-lup+gJC$CKj{b(hlz zA@$%GI8gTmMlQ#40oX!fEd7GMtY-A$&PALyYbu5>j31*4ERO|XVm0w1Y~yGQ6Lxym zYl>#OAITPMKR#p^<%!c`a$Fww_0iV90*>GWjVb%;QY)$wC7QI{oN}r9Q`JNxDEQo5 z#P){zJ1Abst{fCIFWI=*kyaKP7p;z$jM45YRy4M-q-tcm;|k-Pft%pNfaVZkOI>(R z7vQ=xFtKouo(M86RPrakR{D2TmwCd@!BB`uSIH@L4&gQIY^z-GasHwuc|_l%z`;v% zIseU~Q!}fQMq$uJgT*^X`>$4($J&iC;5hS2Ys;FJ*|aM7%%BpY&(wKfx_;}jgoWCH z+^U57=JM9%LAt)JkqWA-Ck8vX|!`{-ETsl4la=iJ5XrjkfK-j5?=JB3r`W0s^@Q#6o6@;Iz_FsR3@V`0-;w0P2R*V=TqjZHEH#SYnIJdt%fqayZCN&?1M~Xr z)oEwk$gIJK(RT$7zdi3ux~X2)TZ7y|zBg8i^ttl=*7L!us^x!;G86OdWB!6O*6u2G zA}%1#BA}(#$Igg_SrnPXl_nHh*_1vQOy9r1Uea-+*j_;Qt-iCl<6jmUEPwUl*p7w5 z)ZiY*q~c@t&B5nie|;kj4=%MRI@2>$^X%+9s*^93A@1SXil3S{HA>41oZKLRZPYSXx6@DeCv!P{SQ|83f<_8cg7Z#IvR4h`8JE5-HxW#CJmrVr@;sLt8M+@jCag5 z*lJpX3@5n#IPw|8tnVQFgvP5)G+!VrR==T7<5fqz^}U&9i5I=Ti_GLi;vN;EnyQG| zvJ>Qai*EFmD#uEFJiB|*k~lcnC%PQ;qAmj|*ty(CTuzwteo{fSi*F2!b^Zt)Ec0I~ zv{kGR;6+4cx?f85@}96XRjO#r1c4Z17S7b54G0Osy(H`J?teUn^Aq@RTBMA%$3$%n z0eYg0(gd>(n=mOc*^8G&<(Y)TucSY#`D>Y@|FPMtrqh;uRwyhG>+{_R#VH|I-<;?- z7oxW4#Iq&qjZqC>8d088dho)8q~@gMCi1ejj>g5_ySwt>X%l`Q{GPuFtOtnM+5P)K zJ^0e@PvS*s`~l=~u*>Q$QeoPN!gqh}4nNvIi+EYks?W zdt6bS6r$b1<%&W9+6^Db_z+hV%|G>)Mc|+Q$dLz0C_X?|iTMKW#h85^d#YVEmiRQ? zyBrNWgO^{^v`>>nyf)78^+n6HFt+YmjBA|zxm)HUarYl|tIW8{)tYhjFrWV4Ccies zTm3lF`z<-8AhYn(mfWoAcZKOLm4`iPH)1MMH%DN^{e3nz{NJL(v2|XV z`i>Ad_DJw`K%(dx^@B+}oO`J_Se}WD(bu_#b(E%GS_Tk#!59X=oRI~ye52RR;#ICD zR%;YERKn`?mAy4S*)MOo%h;q=dw!Wx3UZ{+gDMJnskT|7ii(MHMoQ7Tjtgh6Gz3nk zC0SbBSV^P|rYJdD;XbAwQgi9Eur4ZDFue7&*LTDwmZRhO;|Ro10Z6>VhC~Hiy4eX6 z#a(74w#giCq6`<+40BDGq15xIFyFFHAX=K>869{LvWw|AuXQa}q?3Upzbfwr@(&NfLQRj*jl)uS6$8(v`bG9<>#~bDH#kR{F8kHLcC_Vpj z|HCg6+92QzTLSBz>daIpog~-Dxx!Tf<{7FGoFrSY4Jig-I_PArj>I#;#rH=8sTV=b z&D-Gg4lT(~;*wxn^TYM*qcwHj;`U*h-5m3Aj}tZ@TI%7;6j{|Excs%omX(FZq!ntd zy>DVm9%a_7#@((w7JXKyVfMgQ$tqrsh>dt&scgK9ql=YUDAr5lj3shKXK(SETVeQa zr11YBdQCUj)QRZCXKo|;pVDgTeEBAcwBu*wA&n-g3 zp^=4yiLy&Wni;xYYoS|uU_|S!tle`EGp(K}i(XTmFHz`ut25yjSvokdJGfiC-Mv0) zK9Na+cRwdJHs)@&#J126$3_BLgy?2T zVWvs()-QB)x@L*_FBCX~V256cCf#&x6m<}Ch<9!6-5xa3$Jhxz(i11cGYG@*Q~BU31G_x>`IF6$fI-YHB= z(B!NW?dH)<^&R386aJO~#E2Cip9jv=e$k7A`58Xk(PrrOjLIIUasthpM`-(%x=;T5#@mKIl*K%#eq*>}5YQ`y@sxh@<08x!87agUCK)+ZjmHUCbWcP?ev#9S1Jcg)1aiCqY8t0 znHl*GE(*n`9)TiQjDv3GPDVyrp4VhLRJ(hxT=h!?{}h;M+5eESe}#qFbmP3h_kTap z?hZI{w1K<(K80~SlM%KBCvWMEk@ZgL)LqV`evB8v&)xTVZx*O*oG;s6fqZj^QjpfTg&hJV03-68`cQjXyO~)ofikkJAHCC1|Y7FJlm7LlWJ2 z#3}>30-sq|d(o?6Vy?bfDB7=R0%p_O=Z0Gr5Z7n-V|rnSU+0{iLng*J=PVRWp~~If z#g=Ul18}84C&LW}s2*&(Gn8{)g82-2*4P4UGlE5D3dS4WFk6_%6Cz>f@i49j`^@CN zmObHUt7LGpF*sFuVdn@S&NQsen^mDK(k0p+5#AS-m(T&bF9Sg;>NXV>O^&^kdhhDW zeY#Cy<@dd#DMa2(5~|zEyvwCc{-34orFHp>I*NXUXP;~`VCi5PflOzCkre>7=Yk&k zeg=!sbAfXOcM-VC5R8VM+T@D_E4S5C$;gf$M0^%^*b07|M9Ya^T6 z+pxt`(fMEM1d6`YiD?GqajcTeW~W{912USeDJXJimu7myq05x)CU2vDK;YhA<7FAi zxt3aw=Wtq&(3{qwPwam*BMizuATdc21py!>4DF_~Gug70~iQyUtY*~Y|A1ePF zbMFDwbpGc5>M#x>AOZpcYAkdJsPvk#00IL@$Iw(n3>c8!LNZE~mNB%E7AXO#5lBF4 zqzi~hLXjXX2ucYgAP`8%+^@60J!g0S`@84d-M#nj@f<)7hkU~KQ=ZTByq@=4Smi4j zGOscw=PT(KKQ&!xvg|8goPnD#_VbOZP_o*1?pk40gh)$|y(k82GIb;@-b$&^$bfH{ z2g1wciZUXa0qH2x8ZQHwNw?XGi0cQLNG ziq_Ie%M0-q^s`G#OM~{56rj?8?vg5KnU5MA^abCGpt+LG2dMg$J&>qk6hFq%F*(#J zv{7S^kYQi-y?K)OzIyyhvZc8Q)h4tpos}WUu|U2D@TOswt{wMi1k_29R}CxbOwCfm1a{ixszkjwhW!o@S9}%^DJ{#{d~WUwyC5 zDgqD`uqw?d!Tsl=5LY5gYYxWq(rsbYA~uL}O;taaej`6SZB&v?rFhX)@Tiimrea_R zSQXnc@LBZfQhJ7KndrtaOQDe?TE^uE*3c2hgCx!kh|e(4Z7#%>S%!$TOHOn64}ix5 zP&*RgsIHlxl2ELh_b41+!0aLoI9dR)uR4h6H0yfD?#y{>0LAT?xk93-c-ZH5tNFhQ zPooZ-WVUGIimDoxd{!pH;O(iKQx)~0H=uY8xxKu5U-It1T-p#XT6nkT*pN~(1@9-W zl`ERyKZ6+8Hdq${M=EtLU*=r3ddI8;pr(uFYwT!2OL-v7CQx2Nu_!*o=ENa`@-zzkGw(Lm14g36bGwNlG zpHrAk$~`XB_de#9Nrk$VW44NG5jF6u-7VXsKvx3!)q?DX$xfZ4&x!}-&;75TcXtRRHN?h=-1^gxaZGp#6q<@ zhr;F-%aRE~$5@oN(8h#TZ#)Y#+c$Fr-P1f1^U~LmD{FnSPn_sq>?7r!q)~mnOI*9Q zr^?y&enRyaU z;k_ShzW@ovA9@`mjyMmOznk>hy3=|JvIDO@h(R9b4z!CE2%%Au9Dk-$2k?Y1avm|4 zNJT(Yz|~|XbdeHfPHOKq%av8a+67(Ogv^=7U!Z5RtHaZs+s9gst4wjr&G0=UZWyn* zmY0`VHC9le*Fb5>q)n$ID2W43<|pY7^?dw zpG)Y#CXnj!9kcPE!(7pCu=(M55-*2u9-UysJK}iVAj?RKk@eiS7zPUqerthxW#RAB zD3w(l(EQbARIZuS9M;tIVoG1tTUqr1#*g}@ms8$GMQc>$hAu?`deE5|kHyNU28{V; zWDD43wU9~ToZRK|rL&EIt=b;-pv`F~nze9bJgx$^OAZH=T6*$-`aoXjh43LzXHs^= zXD*O0Ha{#J4|cmoen94U&aJW&HArIL&^uvo$lJMRc)O*P9bLy${N?iU8+|i_9xg-# z_FUB-^1|g;pQPnlM%7vES~wDHlh<)4v+x$im2bK^=Yca7!I1$zegg&})+$+n9MGPv zLj#$(xzgD>@hA9|=7bKE6i1A;JBNzHigKlHhv)3<-X<|P?&7RIqZft~v8ChgtI*s| zGSwX)XKCuence_Qjg(KDY zBZ}tvG>V@c%u=b`qF^K}4=-t(`!$=$9fiEM23)1N{Bbl?ELZTLxs`VwK*6lnjxb2Q zR8%)w7&&ZooYhx|2stQgHwv#CwrsAYpp#nt=aR)(){L#LW~=;iAIC`J>ePwEZ8sj9 zF-+86tko}tS0W4vD|F%+Emsv z|9&qipOQNZLy8vpP1ig|w6f=_g#e*!;j(ZZzzEjZ8;()iRXwN)Z>bKY#W=)W56R^M8HOL4_JE>h zf(^ihhxKBX_kU>#Df}S5YD}rwSd%mJ1H1K#j&7F1m1%h3@1kFwq_8XL^QxQ>~Y2BmveBomD@^3=Yq7a(Jr$XU!wY?{Ji9 z>u4*a3Tj#6LoLAG8pEF%FE4Fe&xvkPH)ek_{$Nl|R8}-`oG8J-%KJ=x-9-ZY?O2)& z66XY9D6R@j5K}}jQ$7_kmtP>~pSXX#HUNgRSnz*Z0AayA=YOcFf*Rfwu+0-_9&b@; zQtdCwatBY%Ps&K>p^{Y)`aw}4@cChJ*S=`kuH%k~ilG6uhy6VYI6s)xfJk6~b>>jz z5XCOmYk&}l*3`Y)_o9cA{w1hUb5UWkIS|IaIhtf!uJGY?CX2m`t?#fKE*_KQ#GxoxBZeNw+Sq67&-l8B&23QcNuh zTO-X`Poj5n4^mnU+3;}CynGz(BT@okevk!$f#S0MIwZ=uJQpoXRucsLzR^#OAQlX7 z3#Jz-9<1s`F}O@q<71`P0Cyt(<>t_s2%OJ^_${CG0ZjQRb4{6|oV*K7UdNtiz`bRI zYnnishF6nx2(P|p`nKz^Um_xy=S@KSFVE;eT zbO2nkyZ~mUVfd}D|0n#8(82Q%x__^p>06Q{!i@2EZysbPg{hXPsU|qs`33U#zjz>W_|#nMj4S9!4VF?d^^wm^eCW(?s53q z^RqiZwveFR`9&A<_RN`unNa$1*5~)aHPVLkK?niUmd-Y(YSc6qJV&eKxi+mT59Bww zIKUcm5aaF?kB}`xKU!4=G_UmY$&6@et|0Lg@Y^qPI}9OTj9HlQbK5K?^Hy4H%G{=2 z%pbpAw$TDDZ3tam{@cPG^d{pUc=zGI$o~_yqw8FO*T6dj^q4|_*c`=AF_-7y zwy1eC&QZ6x*QF*rSHuR3Vx$Fh9}{KhyxxA+8u=CWyO~wkp23RrW>$XTDNjpkb;!^e z?<2lt^6XbFP^U$feMaG+{GiO#(*Ve8X!@NWMI-^p9L-I58_kkyOi>jvOS*U;o>|ty<&)n`927eyGL^2_JKXNftI+8TIWMW(w>J(v4SC;m7*Jc> z?VMDxl}-%NXMq<*%#^we!njA6>jl{r@2X!^tAto25RE@!%xdKiOO~P-Cb{LY%!?gW zH(rmHscp}qAKDf>Iy~M?x%~NZS45~>n}ei%MeRwYt#O=r$z7`wMlj48BUbqeRqC;P zgr*4CK5{?&Hprh47nVG4efl-YIsXwtVWNY^{ypqfl)+5ORAJnzcLf`^ z;f+NtVI#`2n`W|;55bpzylgDbD9`r3=bngB!kHntjPw*t0H9L>ZO(9CuC}wT@EQK_ zPG8?Ae)$_|aX$z6Vc0i{)p98TR*iTI!S4aXKDc|$Op9#R zKVzw^tFJJOWU+bFSJeu$meK0x06?Wf-byzvv8UywJv|2i}VxTwXLt>Y^qcdeGU z#|)ivmVM*?wYK|@67SF6G4BjcM1A~ses&CCMF6HXJbM5s5>o;!yQk-npMYX9o5lBT zs&|$uKkp*2e(~wA9@*fmQ@of)!9~1U6FBtS_i2QOkjvKXO0BydT-W6&r!rh_+j>p) zv78=led0+#Q<*=gZ-g{AA{W8_Z9+`y{XdY9vP1*W9o+0m8R)-!}V)RCwRynsfKkVKh zJ5n59^f?n@Y#!{US5aIBNnk3eXY(+H>SMp^%s>2aIVPaFETzi|InpbNDejky@;)`A z(X<%ii|wD_2xq%ds!;wyzc)HHYSm7!Oi(p!jCX9aMbCJcjB6}qeNv3pnKUZKFZ-%b ziJr-SzjNi=m3#wNps_4rZ|1fOnCaj3&aP{`JmD>qvl*eJvD%xdgyze=mTGpF8Gw6M zc=Ypz_bMovDyCyw zRAu1K37~+kBUEIQuk8Ky^1k@z(3`hZC*NPK zF``e;yv}cewwL#k>qoSkGjr3*jUN8#G%<;Q^pzpK{Tf~IS@40Kx+JGD-D}5#(11v2 zM?-fbM;Nrjr(yu377=;G|;v0UU~L;^|ze$%7;LZeh|leJzD*s?rLefWf?99 zHf6tUZ87Ek;lq_{DK&fdo9-9?La8TdoYx-Ms6gu_x8B=;DO2)whrd&w-~AQz{%h|r zOU0W`1QPfC2SpS>iraxS>GC#owpOACl0@B&HxdN$Q+1__}72j+%C?qjWj^VqZ1aeyB&Kqm=SFOgyJWw}|^p{Q0e zCA0X{Kv5`G^?6HDO0NG4Z3Q#LEt}9=JBXElq>L{WCIQ^%fM*ooFgnqd!En@LXmaV1ttL4a={1A9_*(`JrOq?!Zx?a85 zbHUJhdsiRQREqU39#eNF%H*`=q-0X8C`oyK1r>~p`{_2JVGX^DJpX*Y3niiEaFES3 z)YKODec8?{;B=B$Xa>MDomtlTGLEqRPATvN|3D4^nO04NAne z6EtT&xUb}5%y-Q%k2T(3%g8HuRu(>}Y*%hu6zmy3a5*T)vY)M^U)JxdEtivSo1hXB zfO*dS1N)kHZE^uS$+Kg~l4NTm%vnvZIAP4bPOQL+o{DLdhgz^`nLX*d{~emy zjg*;awW+!2GPx>Fg~|f=PE9#y0xMQc@J-r`%#p9)9OCBs&;?9VQmm)9T0C33 zXjyFbW?6*B=W6ljXTNs-ZUod?pB98iw^{=;==(t(Aw(ig{-6LUJ1i4wQ&O*?he}uv z(dC*xe4BFJOP(sTb@3AQ#o}$@ku#{seelxAyY}bpN0;gg&gNZ0$~{iO8912P79O$F z>9X0$RO-xxbzG+gDck0`X4uc`EQ7KZl7xgiK3f|rrP;j$n(kGdY+lX#^!Eyv>)7}q z8d|w$)3gJyOd#d(a}1$5duR3Fg{H9dK^FLWXXvg|>hT-d^}a?R40U=#Cv!u!T7%sb z`;%ktEerk1@~n9kRY}Nuf2q39;-(Aj{+Wy6N*Y%XfVJppG|$trgs#yv-XnHmG&z@y ztDd#NwGIkhd;&igEstUF&+M0-ob!y-gkpL>0thk*e!bg!))YOd*3(pa*IGF59>Qe4 z)zK*5+}YXweSoXw97%{)yO(!YLcmCJzV=h3S;Z;kTey@okf2I?a+%~`hlu;V(Udpih7SFVu#Eai5rY#Sy*o4Bwem;U*@{W}o)N96JU;U^(k)*fTmjn&9d zUx0Mt1;T6me`29&{++1ASs?;Q+6ByZ3x`0NWidp&;IffogOqz=$%@BA#!g|mi?1-s zdnHt&r>cSKaobfR%tq6z*`JtSwcfa19ddu6(rVxNg>nxLZU?1)Sp9It;;W=8Gs=Rq zM4GFDF#P-IFW4uLoggU)43+G`ut!OAN7{d4`KomVRdUXZf5)bnm9i?VMG?O-`eK9k zq^yNG_m~L@3%NH&4X#Th+Oe-2=bYOQefQvXOTo-C zK@mY3DW&C<44Lw)?jo8h# zp?O^MjJL_h@41$y_Su%?Q8?Ho<@`yU?hy5IYHr5V_<)q+^dm~@+Gw36aHrVI+dD7j zJD{8|D>jgqKmQ@G>}ap%{aKBBi=fpht{|Y3@>C+6!sU~m2c>wNFwz5jf4-(c9)i%J z?tt|KRtTYwwQXeuF;+W}LRkB;M+9F%Zx?bf+^NS%eq1v@aQ$nyUTcnHZpmbqSJ^UE zuu=hV4!e%ShXqeT<^B4nOAh>6cU83mQ6*p7y=kJcjV64e|6~B{k9U z%>~Kx(RV{!jv~O(g+M)OBBw9Gzo?kv1aOdMgWCW_?wh>Rb#ZEdf zx<|+<4?e`*;>ner$lxzrCR0IL~LFJ&dOZS zJUBDILdPATJpHg&>}&&4NM|5(BSKW)9>^KeTxQHXDTOFax3fLSMryLU=5`Zm@cHYq z==r7cqHu4TM+{-CC5uLb!GlE?EWNw-?_W8ZZat#WCU5cNXDz_f@WCElI%)z9CZ%VV zy)UYcD6_hpm6vL+Ca9|)g~Q`fWYo}MqZJB+<^`Bv6>rHtH{I5WM5N=vqpuYE!fNLv?2 z-%J^g%iWpu)5|Q%^{3wT>Ffu)gpGjx8@}$*frSk&vrwCI+PNkaa8lix$6N464g8Wt^_x>yW z;x#@KBdxE_P{GcV6$_`uexnZxdhjOVo|Rj*S=gC7e7p76AzKn`=WHp8eG!N-AR-@e zv5m*Wv%jmxGEXwYeTI*iG{#Ks3Q!8pwmIKrS_r4Sht$7rDv$ujJu;EL+~6VL;C!cY ztQ%F*iV8r+P#S@KX=3$*?>_ILz1QL1p?@6;5euE0ZCRh%4NEQdv&Xh$h!*yCrhCuT zp6&m2$YWyqV{}O3e+{kufAw(VMw8~21%y}^cb9_s>VBAkJjBK&=nDLP*2wh_ z$(>SJ*?WNMb4}DMdH%#c6&1N>P|Jn)QBteyqczv-$s@m_{puF#s(>mJ`YLmSaTV`iSxRw?1WPNh_sFPNTF_Qa(2PF z?CY2v&*(6(!eOR#NAvb#Tl*KR1lY)1+$mWWs`nAt9vo{xlHQY@Gqv<21W*@Wolo`82F{>Tqxdh zS)=c|PdJ7~R_9lHx&y&-zx$PXa|_=}TyRNVL?(^ucO?U^hy-%X9giVC5MFLSh+$zp zrB1U>(sXeVwCF}1LBJSc^9RYZ(w3$!taN7aucO>E;TG0p&$OF0etuO;6KVz)q2L## zgb@S%DxVesz2NmUZL4MC;D(z;<}}=IfAtF)rtf~)2FDM*lCdZiU|UAN2t)V>Q*K#% zOZW8aP7a80jsuw~IgT#Mn=Q_rm{EG+WvT9R@G97n$NDzdPeeUp-Xj(%{$})Rl6SYt zrjQ8LSg-fV97gms+3f3e0)ncz%4x{H0+kI}pO!zF)mn`JD;js(*oIW}o4HKd#BLNL zFy-sj_>*7xIBw_Dxqx!L;CDtn#bL#Qo5|Ntn9^OVLL>6#m*mAn^U`& zB4r4Xy~~x8TTy1J&ez#Lmumx~;gRl+)ND*_h15KhCYy;VmRojQpCHdE{gldbc z?^#V6XAitVflHijr2A&-U#+P+u2jk^9n(v`74kT|)kq0bKD0Ldo1wGA(^thCI=aR| zG9~mVs$Tn5jCcJwSdWm`$p$%gU4EzfNj1W zt!tq@zgQ#Z&!ijH^{fJmht>WD%Y`Rs{D<#fv~O*Sdh=iyvV%TzmrlIjDo|q#UhZ4C^rw)2VhwYQvDbT7g(BucbsDNAG9xlx z-Cd!TUFYX!9bBp#rf+=G{ciDLOdwQU>@8CD;Ov%xociUSk)hf>gG=rz0TPF4tGBA{ zR3Deel*bSI-rqz1l2W(q6=8HYd-2alq3~yeKDFu+V|K>t-zalYAzGc@1%M(dpsBLSv87Q7Y-uH#+)7 zm)6%0`!PYg$A6@Ze_W9u|8PSR+8O{B=_}M7e=7fu^#L9Mgq=sS4xVdzoMNdCcT2SM zzh>1gVB^CYBTb(nk0X2;A6^K>7^p2wt+Ic)9lXJZxW$0iJf8=f@87hF<;sx#zC*+g z>bar^s^pc7tO|A4et8|WZ=MW#gL~z93OwJ=O@}6F9i~ ztgq#Taei3|8T$(hXBKTi zF>}}TW5`Y0#ro_nX%qQgpsfSMQre{h8K5J6Ow#XbfIp0ow25O-=Y7>zfpKIzRJEgKZA6QQ3#- z7`YWBvr&ObDTWza^h4=AfIgFzZQz%%Oe_2HS^KsbXF?TDKd{kP3lodp2IOO(N+3IO zhJV0%eANtzIr-EoPYPGn*Ri>==dVMlJBiE6pE$Ox{NSANvia3##jpznt8Zt{pt~SK zetvgz!qrp_RmyiWS=4S=l)IN!E8v7vA%MR@5&xlldgNUE3*go{&UTuJiK^d z&)#rS^HfE_lV==sUFn4?D>C=B*VgJV|#6!dWCw4Z!Ly`ggD*V4d^UQ-7)E$5T z;3N4$sJ;LR&OOgU@6<5SXabslwLqMeSv5T!e%+RJn-SJE4*jl;6k@17(;z-wb^NHA ze6kU1o5TcJHD&oagH!B=1O2nkZcl)l{H93}S{p@+%d$cdkkkQ#6*-N0_6j+}HYLwh zjtK9?*pT<5J_Mxiy53uF!+rKVm;r|bG zU*A@+veG-AneH<|vGfd1hnWxTEIExBI*{AYcYqz~M4nLh@wnzc^aKhHBGqOdDW#iM zbKRqYqr)~=8lOG*ZYkg1a@%K|IaWfR2(7|}NTPDpI>F*X2_S|I_Lpx!`z3jH9!(#v zhCLmyfvGn7!wWfH<7;5s`MJR}HdS84wofAuC!F4S+4&yiM`nw1up?{%R; zLl%JNm4u@~bpP*>%u^|Tir2a4cN6mhB0|1*=m0vv9zS`Kl_x}BT z1?}#i3U@AVyDJ|_&6lJt81zYSF-%mYUB}NNM|FP|EhvV3rQo6;IOjdq5GB%WzENhX zsN>pZB?sR&B-RJWwx)Xla=Fc6R^z@8s+(s`DQ=Ojn3nGUO$XfHV>yjas_wxLLysSx%if#!GFqGxuox3ab7OVtym5sHr_jB2#HA zH|Op*KD}*zQE*bbCg)o&N`~m)@3ViH^AI@cP>{I>Af6>r*<3ygwk3CXw!Vz+KezD= zD}e|IV1!y9WvN**P(7*gx5g6^keVD_rU`LzhJ~G9Pbj3Gf!rW(Z1V|n@sFyH;NGS5 zhdz6-3k0khl*K&g(ihm|v_3wgc)dxvC+dU3K!yM0o4(wvDp_B-jF9B48pyHiD?W6< z#MBVSRt7HfQ(7B;7fA#AxC++K__wqcHaVfJS8sUH8J@>ToiEjNhOSlsRZ=gwTA5P? zRC{dIi-7t!ccG759BQrz#JG+9w94fRVP2nubYZDf>t{$QiV@_SyWWI>Ayc~3{g}TL z>w4$%9N3~WC$yM1MI{(+#)0v*p~P>urOcdW;Gdm5D(BKooaHeO_ILU2_Wj#V`=ARr z#5eGC3C`>6{bE$8%~DIKMHZlk5TvQRIxwE9>R&+u?l*wGo7w?^fTg1+J$GKPAWWiX zoOkO;tK`BNEz~KPu*T)jJb0GKz6(f-6%wm{kr285r0g9@uTHslC2a`xww~iaKY&+A z<+%}I4P@JtLizi-ga?#RYsYl=1PXBOG{zeQ%nwC%v}*uz&$JD`@M5#}kFA#T{-Q8P zsf~oztA#5Ko0BV0lg6Tz&|PR~Ic`N9GX#(FjD{OlkBXQHjOeK=A6p?e3|o{?d|fm) zB*@E^VQqb-75h^TWAaf(`;${vIqrRPJ3vk67ZNZ*P7+CpBH>(*$qUgs!DYxKOVtsv`0{dKWC$M=5}O_zBEuM;L$TE{<7 z!Gx7P+*NplW_5Zdwb^_H9(7})%{!{*0nyxm^u~jqD~`}&$ zzhVeHt|JVsm{OK^=ge8kg|I)MFsN#}zptkc##&{2q(M7A3E{g$ONylpB{ zwx(J3ew&Dy>Y!DeOcsznp;)@KAgdc@!|--{3W@y8czVd1_|KYB#cyJuqAeEq8-XX^j}vSx;k?dMTNY2@=zO5#iVR(SHpIa=(cO?KJ+5 z5CY`eO&Bw&w4a|%!dopXx@bbeu(YkABA;gaMr~_7@|2o8DR*^JEkCwUE}MXbbbdZ* z4-4ukH}Mf1+A^-}7zhl2zagT+_61*l{J%@8{F9D$niE$r4j8ZwszZ-7SBQE|>hVY+ z5r^MiWLnT5@gyH>F^=xXR^ZCd52B%C$P=AVNase}*$Z`K383X7#X!CI^Pd1J<|~15 z`wX4&5tYtQw|af!xr2U5ljm^M79oAdw{iDUJR6ss!b z&8*WK;71jVjf3=Mn#$yL3B=tpwTP9evE?u?F=mw4h0fnk{Bc<3_d_z6$A?a1%;pa1 zr5`9rSrRbt#`{^-jdd24kN!HOi$dpIL;(FdPw@y3N(A}*Yv9X-_BO$m4}Lq}kmp#n z^KD_nO(B>uT#VgF837aJTTY*ME|m)DdG`jku4)8Y-v74b>hN~2$DF0&@LS)v%K06* zJK^=8e=0c5Tk-aN`7_ZeE;0$owTYaT6)-y6E}rESn`xjba(VxQ{OXG(FK)%-cnSVI zZl^V_*Cn~*V@9}#AyZ#EKF$BMmO7tRyfIDaXI8$oXl&Q@!*Rjh@!hn7yD{PWtoP9> z>o)k)vqxgfpLThHz72ssyO(%Ajm+eVn4XfkllgWk@6el{+6RRO*Ax{R<_ZC-Qc2am zsM_38ZaY&`{L7vzen=^}(Y+`{hQ|$?mk=GoW{$s2aOgj)~ceS6V7)_OZ zhOUUCs8U9_s0V&ke%1JMx8G+?oOoY;L9^JZe{yDca6OV<+}7e21GMA#X9WactN`W$ zjVw28G+Vuo67yiVqgm$wg%**CogYN+Z7$h^fLfbos}C~%Ic*M+PO?dSu?xpDTk@WO7>yJ@|)sp`&nFHZoJ8k!?N$wGiuh6GGgO!>ZQilg+P~ zUuuP`g{VbR%jh!2vP^ST*ZSnrWsD*}pm%!sO4PHmah!E4h~?IVlX z;?tu!M@V(FnP=agb3D1DAcnUGeT%{43=xLh#ZrYjK!l@=?a@eVg2rmK zIUB(G7fL_>x*45Ma5LX<8Z!_Mi12zeIyQK2>0-Ey;~SKqjSE~cpYVcXA$ zlYFpQpQ)({vkFm+dNvR=repcWF3wQbQ>rc_y29$%@pQ`e7(lNCRd5}?*9fmk=H9Qz6*yTYalhtE6CuNn5K*)pl$!4P0dn`3pZ_>2Yc&oyP|Rrw6;cO2 z8O+6eO!@`I|=-KiR-dWb@68mj;x^y8aXHXer;uVbHo~V64Uk%XXmH1kC zpDRZi36k!VBwQL@c#8Ls1c@Oc-uc||aq6Cb{aukJp9zH50_qXg5>mknag{pbX~$18 zL91mWkc(XaN{>0fofb_RTwNjuBO-?`O}a~nDLJf8WRDC#sn5ftiI?(=d5Bu!cY3cU zbYJJQQ!BhK?A9f);_2|n>on=$DE&_j;VT(l_XVnj-}@zG1TV%<*q(X({?Mae?#APT zR06Vi_yJrzc#k%=_n=H()>b=XL+Tm(X1_&N04BrUQx;fG&&_&mVheRfV+(mDDQ0$< z$5!9zimIkNU`2PWu-Tl*jZ^=;X!svy!GA}9`~T7La+t$Lb&wAMuqRL*`rSnWb(rr~ zOC2v=lu;>@_ELU-=xu6?_L%`mskyZ;bX1@@HN;ZBBD-@|D=X5kChsv26RJkKw;4Vv z8Q-|^eYg7ER7+BNM)Wo>$QVd0!fOE^Wz&PFp%_!nIg&_Z3Q$?;++~%&@dUqp^n1|O zaX@F+SsN1YukjtvKY;Y(VLiwb3@q9JQqHpI1N@*jQaH-hQ)XUOEbpF3xm=o>(8^Ab zq8VJ%P};enm4c_^OuR7sm9Tpu_o`w=O@I>X+%f zOKo2Q%XjR{(#iGsoebH@PkuYD&oN88HG8hMmSrb1(lMEtIjQOX1uK^`qO^#yUkJo9 z_B&F9g}bjkaY0h1>{R)+D`TZ7@GMb{BRRy5;zNw4GhAtE3(!`>ScD+P%#VbNu6^HC==CY+m}sWDuV+y%a&$h?rP^_2z;RL@ z-&v3iH8wUI7^d1ehIExdGSvE-~cYbkx1t1$Kw^HDQDul)?Gr5dKZ z*nNlCblFAOTIGHwB_LY{uQPKA6X0Y009XMND!PUGrkVYEFL4rJrKr!tyB-2LkEeT) zn-d)XLlX*F*aroF;OPz zIj%Lrxy|)4K5&H(wtyc|GuSJl|4q-34)j*`HjFLLotmxlrVq^}1MC;J&Z!T72ocDr zK?iwx()iK5D|RT~A5vSkjaeI3ubE+S#3(nl9;66~L~Jae4fJ(4%Vmaz2)1?q(Yg9_ zi|n^TIkH_wAwMAxcXZ2K(T|F58)sTpU-<0mEvYLT)x+-ZwTXH&L#_|-Q_J$5&SEx? z?ic+R(u4UztSenSfMN~vQ!PlFPFxsE$vR!fImr^~5i^e$I9Z>k{!>)|p%U<~b%efh z4-JTnGLuzQSUm$x+R64C7|zCA?#y#)sG)`hm5z;80fpRCTfLhBaOy3;%PDQ+C0{Zk zP_LmekN=L3xJOZQElA0n;UA8hx-?%+e-J{4B~$}F$T2jDD9tfErgrqL|DD>})=^c} zL6)b_6ihsfJb0%eS&XoI!CAR;-`wjq()aCOhfD;nmFeAX&=#W!9U1NG6$>~$8Ooo! z*}9;J6Oa>oWnRF0X(5j-s<)o+8Y*|HIYa55&)wIP4?st_1IQs1U4Z>9m3`xlw8RU8 z?KRrY@bm^Y^`t$Sh(OnTc{x&D9b5NJ6LH(zG3as1xi4Hw z%6akig`@HVkDMAJpZssTA{@HKy9MOrd2b#<%_Tw_Bt8#M8S$JreI97D1z2S8hv7@V zpH_7i&ZeF+;mOo|JiUwxjFx7rIe1IEM9mC_mZYcDR^{50m$;f*dk$k6HG6mW^E*JweReR zJJhfk+&1E-MI&O8v%wSUNhwn>A9}cg8=z3vGu>l#3++fj2m|tSdhyR{mJ3cXH)4qI z{50rJrei7^cyX4mGjUN>g?Pp&oCsFsPWOpWr;U}gu9=B0`y_o%E#lfB}7A$F@hUBr~TEq4JzK zC#JakFyI><+9)p+h$G5618}YzOm8}D9wiE(zP#OS*J;`b+n^-z2C7zLCD6LK5iiFG zdG9XBa$BgDU97ET43!c}-L6p?H3WfirDtA-J#4a>LjPtdp=D-cB<|kio8nao~tsHSgc-Bif&W2QH5&X{x#q)2LV95Gu(;44%JS)B~dMC-klbI z9eQ$Bk5xV2X6MS}?R2xUjC28VJFd>GN{^3l0{aER@@2S-E5@Q4a+5G-FnGXYbwGw)N(PN9X}l$WwqRGIDW4Fy6y~$<-uG!V=?6i; z06|MKkOpi_NUkN;2MBnd7nz<9MPvc{y8w( z>NQw?r!`#>sLjY$a@~+~8ZC<6 zway@O+pPL@jGwKQlfTpZ5;S90rgNg>e#BW(QCrP`Q;)FVu8B%X`#c}V!niV%>YE>` z?&|i2C=Qqhx(=CdF6L%f8{=Oap8MBK!2eI!@c;R;oBn9j2_h*L%VVU@abQful`)5( z8A);!SgA~&E-oLD9sY(H-#9nS>uV$f=r-}dpvda-s+n``lyl?@aEQgIf9qhkc$Rjf zoHWd8YGohQrH^v?RsxB)VgmiYO&XZxC~fhzX{yyu%ZS|YRwl3+;87ib!HYG$gUyF{ zc<|zfU0H`J2hP?F7ovIfb^W=GPLW!wWFi+V871wfSSM`rDzx6l(F{MTEQ4c81v8_+f@Mx3np9~Bdu&*@F z^K{JEu+4XV)f@!3vqNqeTDWPIe3dv=6A7MuK9CJ;?m!Noy1+dR5XEyC$ovsj`Y6zc z<^dABqE~SE9q*ftbNAz73O(>)_3hb|qOoe|x9=@89{;AH^+&f04^NMg5~J@)t0q2t zu($ofN6z_qA%2)Pb@y4T9Ssicy2jW@AXuu-ShQId~3oxEqc>;OJOtQfp3II>Nca7-U!P~JXv{kFf0t`@lowNMjh#Q={t0heB_& zQf|zlxHo^VBVu6fzAe2YFdwq4uKAGrvHcn491D}2U93`MDNe!=zOMNmr2-Kl`C7Bo zP@I!>OJD8VnAY@NW>=T{xt3;fUmTY=T$I+3z(|cRsdsHh^Tr?r!@axOc^*RQ7aJ$V zi{U{Ln!gjZgQm}eg)4Ryk?V?4wXyclFUhy+{9K>IG&QBCUcABepY)DYGWuRVWS62Q z8Q2ej>FAULOk9{10`I_o+cZ7XG>^d^W?clX{D2g%T@9`Rm^pxU2;9(i$t#igp_bv& zH=%7+4$77`->od?}ap<*uuW zSoT!*&5rZQ0a81jpb%N<22?QcvSza^9pxP`uyV_KU~^|gc2?)q=n(OO-DdRK9#hSU za(~p|#_Qsth$u!vuQ<~g1`++Am_fqyoZCqI>c5OsGhGv@=$B*V;F-0NP~eU)Dsu!bm%EAM*ER4QQA0Wmlsu{AZpbwDp zXf5EpgZT#jbH&D^D)oLrXiMa-o7UQVAE`0SZaKgS6`|LQC)il1uTmiB9Iw3`c@*@d zm9c&Olk-ZmRTL5nAfgl zRyL(>Fek@1KMTd@APaG_ zXqjA_9Ys5baF$8Jts+(F)3w#hB@oz|NfuH=%ze@tMxW7;Y!8B!Is{MPH_+kHs%%}K zO0pv{cYF6^`claS_pL@dr|g>Xsl{Tfq_#SA#LDe@t5xB3_AOv79Z++X82ataQ+GMQ z%<4HX;QJkW03LOMM~!ggOhyTShoWt+2{E#|CB|^{=VaGBNjIIJoz2Hs-PBxz{r!^~ z#cncc0dCgq#{6~T^5pIE7GbDZk|zDvgA(IkA|Ew?j-8Wp&MU@$}rC{hhKZyPI|t@9I?WxzCP{9PnIE*4?_LxZOx0bRG2oAC5>uP+TlyO5qD5<2YL zbl*NucE}UcY_%^W|?+->8fLw19N}JI_3X`9s3R0{J;C< zzrDj#H{e+K1i6Uj`eKdn=T@UG`u_(XW1m2JJ#=9IB9JX_0tTkxgE&TnUwu^mM0km z!0r`0QW_e>0dVCy!%ly8U~MVf*ll8B%l|#MrLv`povjwBT|P4{jVs!n4y$EGm~BY^ zuL=|OYm~d*tjci$_*p7cOmed(!VLgK%xS#z;4`{X4)5-kxiY?i>?`~sBR!-h*Eph4 z<*L%BQem^_nCbY|)ni3Bb@CgOIj%dd!`#B>pe-Y&3!5O}=4z7xJ$`Gk3I*9w8Va+i z=6;ira#fQ<3ezd`>`sqk0Av)$(%*C=GH{6;kNLoFmfRCWEF8OzIcX#mSklVV4S;Qq z%$nr+sv#9u4NPV!p)j>0iz_@0^#1X9CkMLOOEg3bNdB8IuIjjCCHi}i@R6131lQ>u z*XsCnpNOV$lJ}GThNy=3GWwnoI37MugwLD)(Tq(TKE*j}w z;r%va*6NxT3K-Hwp;Ts^dc=^hfn|jv1=_m*6V>ICu&B;J%F;@XjoGoF_R~<|%LOLF zHW#|3Y`XGo_2%!0oE1L)_Z<;?Ko94XNnxtFihO~kSA$yZHaqU?k+W~ifXv|}59Y>+ zKljgEm%c6~0m7{Y4sJ+2*B`p)JHfRLov20DXK zDmA6A7@uRbyxa~HVMTJ4F8UV6@0yHP;I=2>Mlho0>Qbm=LNd z!U`#rRew9O*{CAV zDhJcJ9saW1TlxZF))AfF#jj((5Jiz0C{ZphNVj+O!!PlKg-?&-h(<*MZa@?_LA9EJ z{B8jdRUpH&*kmaKbBnZ3C_py`$M4EYq55=S)TiKAnV(r2g=PyHDUISZOYPdPjh6Fn zqBFxxc8A$5@^)$1fdp^A?dtU*gf&&;l?zZ*XP#Y5Td+w82~J%w*L|Y1-kZuwNBfO8 zSWm^h^7#mId1-ulJJ655#PB{tYvyHH6{W*Xd3#5hnAp z!Yknvjh9C9`F>mlhD;6oOKl`L=0D5362-XEY0YxY$-7V>xwNY;zZ|b{-u%#2i*@yl zw)AvQB}0l*&t#N*w6+Upyle^>6yd&Yb^#Q5j+6k)FND;4C%Yx7xU?O&DdTg++6P#`({aQ2lb_ z4HqS!La%}is-u;~$$E>z5pOvxZ`H%)vbWW-<|e@u%@JwY7;M^|NJ82pt+;bY8H zR%N3dU!uAH!;c->3VUf_qqoCXvg*hSh~Z%)+|+_iyiHR*M)So9;-;yGV0J{vQu@fO zX7-RF@k@59gT|`bxFjQ3dFb4%33o{tHt-x78y|voo8S2683+}~602rM~BmB_#siy&NDy1ZH2AZxGh zlz2#=BaIlm;AkZuy#(Iq(S4%lqy1$B@;oU!6&+hR^Tw%E&!kJU$sz}rcR5by^L{s% z@9seo-g+W|d(wtJNXr;_4fA0bGFwNrLCIX*QS|4|GHa^7Mj+xEJ>)Ol>Tc;Tlt13h zS)M@HU@4bj5dWLqE(fD&!XxsTp__zp)XT|<#&Q(^YapjCfjFcA%YkvReIFIimF1Yz<6d!i=23ipANSD6CaQ)Q zRM$o96+WS3Wo-XtMpQ`PpT}hXF=z~Uwc>Ih6yZo}vELqA4Mh{GMyu==g8YL0WQA&= zA*PxO0Rx6^6f1UCh*P?4)?Naz*ylig9)MR>>$#RW;;ax5$xza)Vy-oCzck(TlQfSB zNt#<#F}b@C)n;DEYImUH)_xsgRL@M%Uh*3LAQ&F-T8!)n`uod%LK=<-%EP*2tfG`r zeclAxUU(#-5~nbNj`AH#x)i)54wcCA>+iygnDDk*Dd!9=m7XY4Mh**Q>9)%Mv8gS) z4e)KAr+o-yDeA7Xt{+3Siy%k;oQrws@hs2C(bm*-;hw`w_`T~re-w`TrPVn7SP%QY z9tQkSmi~(k>&cZ)V@#HM0-iJU`*r~%z=^LyS1oVwdh#qg^2kliH)ZB`o~d=dZ*xRc zTZI_AyZiQTCAv*6nz#12Xj%k?KTb{mP~zi4T4H%yy;s;yD@?Ps5VPtUZd_QS*w`$T zp)pLpJHMd~hyRl8BXXq3)Wv$b;u?yUCdDg?nV(H)J`)v}IUT4AFK;yvCGb^NSOx6z z`G?N%J_#&IUXdrlcs(?GSr#t^;u$^~t)7hv151#T%5{y3=jboqKcL2Dn9tGgCgKu( zJqs8x0cE(KUgPa8Qb>uDh}q;=NnE)_Y-HWtK>_XuZnx^J(9?Z8h62P=;ytw{LK}Cn$V8$pM?^8H<4%TzP^E-+&>eV%wnPRMG&A@O>z>vDbf1^j zKH~ZVGSmEKYX(~zCj329&26WPSy9x*txR*z*Aq7~l)JP~7izu}$#i0}0*GVqsPmmJ zgJP*(ta{TeKY_EERKG2`1!H#yEwq)wrlFz&>Ugw#@Mo{tTNoM5G6%m0O5R*ec=n4D z_X=oR7&dPH_C}Urk`nlALxO9WZP3E^Y@k(*%*FX~ZvU^b{r~;+^uLqif4Qzl%s6L{ zGCNu?9%#&6k`v??0MHB-_dKiSWAELP6n{OSLuhsDvv2BYi83jKnEMg@b%+lp5$%F=O^vfz~2uPbSpsWxDo^c(99lw5+KdwIgB&XbIbvHtCtqWc=f%U}$C8PD)O= zU;Y=_-1xwF2fMWw=%40gp>CVdLdqtMYQuZgEiB#rZC&Kj(sm1}eft*+mkr!w04o`p zxZ-cV6osVwK1II!#u+~TCD2H4MhT=FTC$9Oi185?%`}LPExb%|cBZt8G!gJNH%~() zl*@*kJmVw)trs$+O2Ivg^$VpvH zU5d$44t%H5tC*++YP!#X|$d zrZ^%8?*ZilA{el=P~ei0vcvuaSuunFt2BScdF702LPX{$$7D`cjL&%dCM#(UGWoFx zp7r-x3qd}Z<*>G-azf2URkoG;uS1~)O#cAlw4sIm02*lDfydI4cB~ZT3dfty0YJSH z5z>;`EK)YcrS@y6WuTz@GAZj-<#v(|AIfG3zq}nS^XrgH{J^;#$h68W(uj6cu7(w< z*?H+Bxe5>#j*@hWr}*Ds-a;=rlMAYUG^o#BH0fs+E@%)G8;i!Q`EcJhT#y zlqI8icTSOWwuVV%n7)0F@>y-Z%nB;xNDNE6EXdb^BpRVq+)I~rLIZ_nUmtjqmEEEF z$x_uy?!3a6+dn#SC^ObF)=F!1*W)E49=+AI9?~y2e=r+eUTRWwskLi`y*|PP@YQoY zn@1rlEw#JrFot-=qmArVR5kM*6$05q>o$GBbYnz~bR$K3j9yLllE|Es!C7{nnLj(; z-aG}dJl?D75bauj*iv$_M~s&!mkFE>(%1TEo6p=;)m^m69F5$ z;N7BgEl~%TRxCl7Ux!!*yshYn1k~JXP_5eZ3Xy`4LY`ptS!C*b8(J}N>TY>Cc4F}B zXUu~!?PFVgm+X|@1YYd(OHpqeXL+dMcS$5&4Z+L({o?76pqgsi#x$VfssRfo zrX?hhNU)7?5E{eMG@R$JEaspNh%G=P3g63>1w?g$OdfSkO|2-`D8ULs?M~Kc6bRF9 z`tTajmt=RFmGLku;!gjGa>keer}q5{k>7W;RL&P-1re7{o>x1rH2c2tqvx%(49evGv}gj z7#;}B3ABS^TK+J)w&1Sym2!-(jId`M|0n+O10t!Gf$2Di&(_%tw#VD4c-LGOoJhpd%pR=wrQY1$XHov4TCL3-=8066_5AK=FHPP+k z=6Zb4h*2|^;cjB?h(#mWfb>ypHJ<7AhweCgQp zb0z-MTd^QwvD{GZw;oUmjdIZ$)h1Tfo(fRUk%Aysf}1vSnpR=@ebk`v^laBLu(@gQ z{@171j~xMe(3&TV&Rm~+ZV+<-l~5pC>7XO5e8~{4eXYSQAR&rD<4+(Z0M(QhSmn*O z;hE)#2&dU2+zXWHZjxdRL#Ku=K+S9jd%wKIo5`g-olbc5t<0^k;6|s6i2vGJMrv|a zd~oot*MeeSm}Hf^FDVtDFRs@slwK)r>Xe$EJ846)^}m^iTyrcl%1JA=J$0w#lE23G zy8~>qQV*k@d!mT3Id9c|6F|9%q2{tYM2r<~*V@T{e>}xnWr6|qsSv)#^~kZ+N%!d@CgTlih( zw(1sJY`C@7W=v_Gt2!tQo32^v<_YX4XC@S`hh|$iuF$4ZGl(^h(O^oQIjnc!MRtQZ zo)ErV<`hi`a<7cIS^8TELtqKe{O7;=HNW{F0Vxh^sG!!-XV=x{$}{THtm0`q=SLBI z3|Z5xwMfic?XhHusBEFIYadOUk}qwK&oW=l2gWh9L*UUEvsJ=}_)LupT{q5je8t9f z(ayiK`!w86d++e&gLY7Su2Ea9W`+^Jq+S=fG{!;H!|b?JKp-&YEcU2&l6}>7a9Q)q zH6!`cZc^lSk29KITvw?<-(KIN_wi*t#IN38p;jZhPsWr(q%*0HWybZszQ@#=`s_4-{o?K(eO(F-D2$ewXss0?i-rvQsY{F+O|cy;NXKJ zxH3@c|2Nz8|M!$k=+F6M!J7Ij*Ua93555-NX?QI((h#ILv9~m8|NGhAK4pqotcU=I@+8Fp|^A-94|BGpVo%f=nbMm@sH zNQ*8v|2u`dbok`aLvK#%iR<;W>dBNG%HjW%H-c;#-vL@eNeY`@(;3qwm7<6Vx1yEd zm6%}0PyV~WE%oL0Uc2l6=-FpV$k(B;*~(^ENm&h>!0!yh4k=yJNg!meVYD9Y|5OQ3 zJMzCT_20`Rur$c!Pk{rXBysHf1tc-Z;L~~sZ%rkDod1&LI;DQS=kI9F^YenW=akIq z0yQpK?7t_#m&>iADs@xCtwI!~RMt)ROPxw!9L%ib6(t;{9u`!Zn;*#AdEbNs(Vvlb`0{0*!p zj5rz(=Pa2vk5H889LSzSy~dnGp65Im*1Ef)zM-8GGb28R1Evy53op)E1ZV}GhUWpL zVzc4ccmGVLi_?pZ9muk0HTj|HxQBJ#ej(m`a?mZe!o;-F9JI$Cby4coiOIo=_jl)- zfjy@CGJ_WVKXCv=ZHy*rE)OH5l^aFd5@GQFlP(+O~hi$Wrt zseszpbw)tbk&=u+D$wXzL5d6`u2CDHM$2I+K{t5jL2O3tGq14x>EfyE;IaL{F_$VI zh3zpb6+@4ApM}%QpuDE(c-!e|LvnDO%Hzl1b7~uy0mcJ&&{_M3ZB>7V6=jw+qlQ}2 z#nzDalRb^N)hv%^`7@koVyz(YFX-^{;v`v`M_W^5;Az%oyLT8&MXb@E7eYjL5+p_H zhjA9-c=lvNaCME}*iR=;PhxsbYDL0IqvEG^966u8LKDAGRUg!58VLMZ{J$E%g^Cs|!|x*NY3&A`%^Yz+muM4gffe zk##of@?c#$9mRbJFunQa9pwx!z}so?jEr+{Y~;V-oB*|8V{Z#c8*=vXA>}L=>rpYVAm) zP=I{_3`zqhHj0SPuhLUY2<8E&eT!*q8tQ4K|DR@Wo-IzhTLvCGn}{cB95G|J#qaQl zXqAYLt9~!S#^-pl>w0w;1MGreX1t~rSo0!Pm`U%Im8Qx+hHV2awlUiC)$vw+R)hd0 z%WM{)TpDvFG#B}kd+IGC&WVgz{JM?#Hcks-9F?EH&YNpV8*f#K7F%~*q??D4HY8(C z_y)?1wu8T^r**2UbwP`(>Rq2Koa}5;UCVxvS^GE*J^G`demi`run5la@X5uuyuQ?H z^f6ugxl_4gddVNyK2RiR<@oiR9_c|ZAC)8CPfFMQNUGQQ_@lDv@{_5${zIr_F^-hS z{iqUP75qSf@W4uSH8~6|FfQ!GgFMC9!s-!YKfgiotPRQtOd6cb2`<`c#c?Mt< z=AZxE5?tWbt+vd{wtl(ntnXH50(LERuD{gc!zU4Odw_QqXY8yCG=OY_!d#fb8B2Dl zA*Fqna4=hqw?*te!pU}aAzM?c-91t;4gH3>Vfj%ihURaRcYZ_a+ z1PGA1{B7_;!Z_oP63xM~n^FQ z7{MG*JIIOfPrUad^=!R#e4_4JV(%Yg#-8hZ=f5RaE2~tt6?*!J0d8f;tyq1ca)3oP zl?VgmzB?AMkCxVOs4)sgDZ_NjXKu6X^aZn;YU zRsSVJ98i_Bfmc-`9`f=^=s&u0rk(cjPMiIgg`2W3a_DzY==IEBvH!4D`48>#o5y#0 zKZqx*2j`yFj4Ifa)F+BZY@=lbJj!lp$2ptn&&W1^JR?WehJ3})Q&%C6HqV*yaGB@e}t}9^BVruw1<@w9-pnCJA_g&$JKa z8iY0iQ!}xD|||f z(=rR~NGYZ?Xj$@2b5bYNQk|+v4b!XTqti9FLW0@M#m2nkWkm&A+CtL0q(-d&cnBkk zdkVysLbXP5wYX%;QgX{2rUg(Pi9yx)tWiU#);!A;#kN`TWm(vG1;XlnFZ9 z-=)d?(1vl`C`W0q=fbg~wR)FGT~JdcJ%y&qz0w<~j`$eFfM6P;rQMokmx3>*+JYYj zhh13kjryAsgdcg79_kqGA%OrOCZ{vgY7&vBfv&=1;Ix`R$g&VwYtx&#$Ci|_0igLa zpOqnxqdS5KwVy4OPhr98+o2iapeZ}puI}@pVSHK%)IP>FW5r{V?QG)kw%^WUs&^74 zD25n}mK&~i+sIx>!hRWC7UG^{(EFIpED&1}aBW4g!#Obe;5r}M`Uf#jH;X3FiQ$<% z$ZF@x;YSf+v}=&oug*6R(sP29`Ed2!zrF^T(`$2^SFPUdx(BfRyQ~XH;f|yv((LHU zdPD?FE!{peA>z~t zK^ovq2fP8Rl!#6Nz(@187_nKE;XOlyg0eZ2Tp6K0(Id%Ys<#`eW0#!Ao0YozmJLj_kA3(J zVLvX;;-#B)=l$+6W+6vpcn-?AS5{g?2z*hkGP-n;tZ(?HqtqA8g7jp}eJZR2#D^3E ze4be4)(m&td2ZK;gMS$8FH&P%SVpF8n%|X1se9;zB)vB9RxpBWZc)6fXw%afRr>yt zsWy*d#HFp7ne{z1EDAsMXr@yCz5zs{3m9HdM>;yBDLbFN)0&dOh&=ZXY&DkQIryZYk1E?N&ii(AyKIX66$s~d^_w&|g?1I5*AohMT!_;lu{o6xhk)dDh_jjtm=PSrb^Ued zk#!t^AR+>$pg>pGuh{@tj5fpxh9hBK+I4wfBL<;V_@k7jueEyXyT4sWT6ZP4&%hx^ zLgw8?XJ_jxBv^K?nN4jio=~S0q$-;VFPV=x4mXSIQ|uJ#ez3Z@qpYgq@n-JvKVO2e zS=2J+y0Voj#XmlL^Lb_SsjNC1Ug3Rrq!f&D>T+!3f@rv;De1YL)5QooslKxb17$Sq zv)*c#yN|*j(pj$B7CS#r)kU%zr48<$aJq{)4I5~5{is*wcP11{Q@+CnO2(i9RBJ@D zJi@7#HO+p+C0jGBnO+TbFQ7v+elpU-6^%EU*9<#J;dmnubsE6_y}%J9eF+ndhEgtg zbN*-Y16k!}uxM2#IF%!6)wMUC01WbuGR)$>8LRZ@-BcaCnqw_8A41vQdQ<~yGtjCY z%~}w5Q|-H)3^fyY^`CP4$GvoxYKxG>H@~}U{4k?FeuSbx5bi9iHTSWsC_E&S;eP$o z6O`a0t4gDvl`U@6aJ*w8TB@qp&P<8AR-5OK9`62H^3FCtsdFURCbo457yGzvNzb*n zIr@1y8&EhqF2k~62LL$ne*lFUR4d5X7?1#dbbt+LbefyKY0Ao-5U7a)0*t_If2&J0!(6h-|Vq-|^a|>B`p+|00gxGB%VjJY=$G~Vpd#~8KlG@Rl zOD~F!?g#t7Z@#N<{wRI#39hKtLT5G`?bQ4htdhM4U^~GAEJGDNKr070Nvddtz|ixu zysnpK3d_qV>)Ne{u9rT&S$Z(8xv;PpN8c0MxR0V);F^rxz16*sucw7Qkz4lo)}^(8 zxn_k5o+fbR9!*z_gtw}p?^(~zH0e#JU`d$mB%hA{gPH+j`(`d zh^^h202%;cV8Pj7Y(n<#h4csY!uP=%6Ky}4LC@3E(adC<-6ysIo4Mu|C(TX55d8!Y z9T$nsszWv+$D4T%{=>b1?3a}=I?Gn#SbXIQAcu?<=sG1uoC~a6nw~Ma0Ity$(o|30 zX|fQa&Wgt2pUc%JTeFG@nT{FKsyU@9Ic|jnbC?)hX~NtY|GRS+G`vi)N%ubY(|0;; z7ZO!&F&Uk$?ek^7-bBT@RLNbouL1RM5d6Zy{EmY7lpM~!`TTs>Ed!%;E{ z^48r3dM;t?kiZc0!xBd-klxKKVqKdboaE)6dPdin_gEXJ4xaUJN8DvOQ=`unH_U4Y zw8VuqNM6&m0$OgBYBJSJyl#_mW`t%J7d-7-dDLEQcPsB1@AvYNm$1=lHB;RogKg3-62BUNI-9=h%Y51-q1_Y^UIGsO~0VQ*ZVOI4ehhr2s&b zq|+?}em^K~Kc^}fEjbUj+e%?|==C1yeCpNZ)c4Tg;v@3`_4T@_9jqWbhvBbM6^r{l-R}x#eF@Tnqcf(Ii3SzQvd7=-kl>l|l@SaiI&E+0fCPFV%hD^S z;ntlPQQfm20rtrJ9O@HpBCEpy6Sv56pkq5-u4lQ^k?){$O-FB!SB9O$9%MHLF7~5n zlWGxnV<$T$O4-JxyidMrd3X_igk2m+cftFbp0aDdV_x6B`!UFsLoRW25Qg;|B&T8> zg_5kN?sV^>ORp0Kb^9e6D?5McIjft6R`Q5lDl#+=DIf5V|E~ft{mH+T!6)IK>jw$y z=ibb{JjygVWh(u#(VWm&ApFSe=~8^P?Td8iKn^7T*f7R9s(Ht90BWC|v)pNFza-v; zx#&8{Hb|Ih0GF-n7C1=wF#*FIRgO^yvv4z@i7)ryOl4<)BJaKs2QVoN!Dnxo4cw_%j z=35*06~Z=<%Z5d*Ol2cTH&#^M89!W5eBwT}75u%n<@la`Iy!a8^puipd<)$c^lg^Q zJHfy)(W6Gd%YSSS*iH!use^2g4$#H{ONUUv@t9akRv09qzL37G*k_Mamw!)TQM1zW87>+~Vs6*IlA&k=U0_ z@%LMllPSi8_N$(t<8JMoZ4xosIKKv{Sfe2^6tM!=PijSo?JDOE(L-75Zo4U3+J zLds&ih4Nq~BO=QP*IxjIh37LAe-{ft{`haPFx!>{0qn2Y!5oc)bfdG>%@goAFe{fj zE3^D^W3#harEzSo{wpEjWY*kZ=O2(LHF56`xmL{di|K*M!{2*{v97h#iea#>#1ysAX_=Cz(Qv)jIzx> zH*Me-82Zc34Sf*#2-z?Ky(MHOCMapK6uAIYAj-{0P_356hY{+m?Ee6tZ~r>vH+Yyk zIx849_)3RDY{v=1PjyzTA+F5bQ8M z?FgCZ2_5o~p-R^jX$ya_%I5SCB#r%2Kv!EDq_2(bWk+PECE~)w`uPFSNP_EI(gWa% z4#q%^XW49wP-8*=gKE7B^1~hC_JRbptY3*mc6V3{v-UsDIKwfY)~S`I1LXEGJ(efq zR?!slJi71B+n4W(N}tOFdMPm@F7`2V2`+$Lf=|&-1oR+Rq_JC9Yi_Q-0IRJxt+2Qt zCT@aHwNSQM*v089ES#&IXZZqPMxfVzzY8^2?NQ^~#lv|zo8Kch&%C}QvlkHa<}$%I zEU(99WOr4CJv8dJwb>8Tl`aVBpWL-|nRK%BiFPaA$nqeR*?_+s05i_#cK@O@0p7w> zcSBaqZ>Aa;6aWHRLWGFth?`Vd0RX*u+6V*y6)ho#EhphsgD#}Hv7P7}4_Rt-0-C}$ z)nVRBcv2SkCR1l@Q*cUO$#nRI9dbusIr&WT+eC6=Scuik&*3Y`?>Kz~zh-tshPFuW zXiml^Owrfb&AE@38mS-R9+WcaLAMcjDO>B)r7_{r#XWNHjH?H?V}>0RYg>7?IvMk^ zD(5W&YkdvW(~99WmLo=FZ>vmYGpZ1?>{|>Lt?U!+8EEIrTOuCoOjUQoT-UkZXT!iKHnfSqChbo@%=o5jY)` z7*IHQiyJJ!5dt*tzw~)>c`vec=5u_m|M@oU8}hRn;X?;~%JXpY88zUkNea4<^V)%T-Lem>PsQTbX5V;(!-q z?Fn#vDh``kYobd{eP{}Z07;O&+8ZTh5jI+$Q?(rR!@O^(uj$Ifqv{LbdZ9J$B>{J6AVWh80c zrLla(N8w-vxr+R08$VIICt>TiVP(olX<(Qt3sW^HDU^t|7Kz3n;2;R32d>S|_bXB( zx;KRp>Wr#bI*exAbf|s^A;3_y`>IiCbe@*v_{Wfuh1|y>Lj9x7DikemthbZ*@-Qww z0qP*$m3wQzetE<)d%CRXl9FCs7xsm>fbWlZ<2Z2WgNIt%r?|4h(Vy!;&M*6ij^*2G`mn;di>`L0eD1^(eUo zo_(TkwlZXk0cni5Eiwl7wxR>Um|YvR>ge>IqVE z?1H0~w;dXKeWcVP1FGvxO3xoC2v1Vfmh3aPYf;WnSWuy?=D9ZiB+pgHnw(<=5ZH%- zXEK^6QJrPW5a5W`FkQZe{veinz#^lQGrSl5p*JKeZ!#^3wc@YE`@~zqMNJMV8;+X_ z2qb-hbqhRgx0Z~@5HO?kcd(9;gOw7AWa0PsOZ4p$3$a#R8SjZ=rdlPs=N1gM@{il% zFIu1A*BRGJY&RPUDAB{X9BS zV#r9EswUQr&Who<-JgeSo`H`I-XO1WEUR2tQJ=yi^U9BBR#tUKJdrexD`|bCPJ0P~ zDXIjt;2)<9g)9qn2WV1JJbJt0aqo)^;8Ou6uRm{%AHV(pI4TJtzYeW65~6M!VI8w{ z)S`SX)U!ZZ*1Y1KoU56pXTMxstIB}A2j?2y4svk#dryIji%oJhQ+{70S!UQ}nPH*% zj03biTY=y{SB9e7r3i9IFru6w_Aykeg@?&O4#%9PCbLA1Xj|qAKxZTy=%APP=~W4y zWs@rgm=xoaGgGe90)h~~tWJJhnR&<`|H*nhRq9lY=f0!1OklSY2PB=RQT!}}B;`P^ zX`{*MC2@Cx!|VK=$a7%9UieG=O7}{YZHC|1qU-gJu@0|d;kJ7cT=mBU(b8e(;%mJq z8QJ3!!t*jn-+G5`$5w@OzgBl;SI&0o5}0R+f@-w~&COvi!~m-;?LEx-$41K({SztJn zT;`%GcA2sqUVRhF7fUXitsHG!-gQ=7qta1vTT^@jSe2pDEHYj+JdbJon-({_c=DaQ1ZIex5zj$XZX%uIWva!Tk3%4E|-iF!2^;u+yM!(PJyS~ z;|+jhZaxKmvu*aM8bX|EuKj9;ZQC#&h(l_^6+3k^vm(YwNx6;0U1L=%ZR*GBvy|oW zzz{FYGkE*98~vyX?HoY5xUzo-Zk9nG6X4lF^u|dtilLoGCLVfi4xI;4;!m-k++`np z2(9i-FUh)3e-~2u?t$X#qIb0W?`TjXV*!C31gNvo>~)*@5<)4@TH3avNMLP^lqYc1 zn$Iy;$+kq|T{0A0WbqciU@)BSDwQEG*`4R=AJ;a^x~6!Cn7W~n=&tkZx-Tc2y*c3t zt`C20^raK_gnG`)LDS-*b8T6F-H{oG#>zmJzx7d$ZvLe%+;DlTl6k!reL^m<#026>h?@pcFbO@ZiX|&PsELPnZ*+k<3s=ae>G zXqPB71-5+l`kNaKZ9M3f5+j)bYi{2rqx_nhSzA zI=D(7U;pWTqP=t>-9bVx&PgMu%(O`NrbtqJ`sH7T#5>NR1Q~ny6*{MELEnDa&L%&h zYk|K4W|r%iZG(N+bE6#-T<@_K)i~JUbr;_pQvap2M3i<6-14KW>zD zzL$^N(KAz@KdlvVytA&t)T^vQ_41Xr#q>Ekx8Lb*xAH%cca?sQh7<_{arnji8UEZN zRkI9Kdo^lqQ%Vpt_gLn!seKGnxb zx}8!QeG(ap;;0VQ&+|GXW_@=nkZ2ImMPjk*=9yB_?_(ypr#8C|vf`OFFbolo}z)dI-}7Rcy# zBPEb4-D9zjj1{y$!sCZW}+B?tAuGBq@iM zw(*5@U z7YO-UC_jN?$X?7jJTAUgVl&yuf4)zn7K#QskC!;|v}pr&8`IBNk^}Y{@n(SYss8So zTChW7`wpKB@N#NJv#0%Q{8Xaql>E}FH_`$fYFr2k1@YOb?rTyT=xTJ#*612>H*GP2 zfK{0RP{8!{O_rfX3rEz988}Zi&62*ZH@Nn)Ffm!v7?7lNc3BtL+neONtya6Ohdo)_ z@l)T}ut^x?M%$AD{od3BxKi8;Ax`G%zU3xcTV3jRK#nbQ>9f_d98v2zfeuhSdYmIX z$y{LFXFI_K-06-fMVzbj@u#7i)oyU7PUikHX*8_=h9gi?)#uHunjC49mv~u1az59T z4iTgl`{}yY1iSByUwFx>4U8Z`<%TW8o}6zT2_DOSA?*Leelg8&s@B5RWd^a8wisSg zQMHEz0GZEUAg&zXxR-&#^sKQgw@p^E@haO8NhSeZ#Al0iu};i6mjm2i^qu6a`4j=a zysNd1aojVTvO)^=bA8vM{>I;@`rj1Gq92uiE;^#-eQhi=QfD}P)Uc}DfBxanxgX;ABrUxx%73bBRcAZTETvzbp+h}n!2WraCi+%$nw_TirVcTIg# zew*%4zx^!utpDlrr-Qe*K3zOI;`K&Xq#UotF&Ud}Sl-;4-i3CtCwdBJ<(x5EGgV3U zo6*WQCc7w6_O;1nW22S!CH>nxYvt@eP_2E&M-H&ulPoe5h)&PTI6SN(HVE!PbBf(* zNd)oX`9xk4<}q=#2JzOkz|+gAptWwQL;S82c?_cRMBo)ZP<~O!4E2a{@#~(*!RiJ+ z7Vo&QorV(g%BybpYucolMJ~?KG z*HjgJbI$DQ#S?|fy}hlnurs}%=8xZ^=DVyc6T(9A|AVvl3TrBh`$nCyH;~?mO7GH( zK*j=?Fa+rm+9*;Z9VAFdMx;oW5MZQ5YUojVk8}x52t_&xO?pBz8eqKUM(FcnJjKGEBQO z$qf?tZMXdS*t7bt%W1YRu&Yw7u@XL0vSX^Xq^!4Xs4Lrbs`8H>d>9L=naD)%43^pc zsGdnjZ}-^v2j}3MvgfigOBY5b_D&B>4KAK}}vf1NKl4?l+ws(m@S`8+e$C$Fh3&bVQ&%%i0S>M57$ zR8?4&X_llqCBAbQ+nNH~%;?=uX9b`ElmXpO6JY6A(|#mjoY|Q&3+LB7R37v8E2bd*R9i}SDEj_flMu^uJyyY zNO`nFHR4lojqt~a_u`}eapu)F2pcqlEU|4>xV2&?KxovS8{SraDUJ(`grONx=Tv>6iDY57$&{_lY5RDL&sAG*K1A5*XO6lg@C69oe_;KnguObyL62K ziufdlB(ZS2E*4%>KHcI|WJzOCt~l0V)MZNaGzK#yDP8&s zEeyW6+f7M}MqTL|I%#i8kan;-1BOTmB+xEgt>1jxFW7T>-n#0C&!x@Ep^3HxQb-@+ zc~QQ%Jv^sAzHqpoKDJ`HRYz);3qTB?TM?heamI@&4P*{~yLif0{IN0AZkMSLz4gf@ zlru?ZbmK0+SZoF`Z+$>?_~AMTY#;Jf-`m#vWG~pVjeSsSxak z)bd>9>r>xy-UIM*)2t&3vp;}t_@9g(5KI3&!IGTs0`a?dY3fvc9jLtY#ZmgkM8O9D zV!ne{_pCZD*zr6Q@Ao@14ESxFF;yAjDw54Y1sS;TOCOfXa-RQ#cBciPs;_HF50)~w zMDE@oSmdQ|5so>7mrQ%{Q!GQ~j1RDXy1-*@MRz;Z_EgYXEk1LhgqxYc3QWiC07C}rYpJN`IBf}G18yG<6qqJ!vp)~eHv>4LHY$S+1 z>Sdb{L$9uxYPomJ$I!TiDMsj!qSW2b!PQ_-M-){{K9}j$v{*4G-+ZiU&_|Frm#u4~DSYy1$3YXkbK&|_=fD9x(}NCx`JtLm(fQo2S+ zluzrUx%3^I|rC{2t)1C{LXpwkDXW z6A-e#c%67b^N7?Z9kRYDRuY0Kt$Y{3&SwwUfBof5|Jp0e_$pzU@g@i;PnvFZd45%3B8l9%(tuf!JFjH0q4_vyo$ zdcKG46+9#zH<$vTq%2kz?NKc(B z9Qcq;3~^M{t;zzw9-c}$Wz#;vVHUFh+a){At?P8IqiCmZn5FbM^(0Z0qF=RX;wPGy^<6;V8x^=ZFHH{qTA)r-NwUejp%pZoWz|8A?fk(v$X7hvB3fl+! zbKVNQ@4M@T1}Sk~YPhVIMKeG0T~l%S9@16ZvL)~hnI_a%|MV_gu9T*tl}tO>-+!g4 z#f`^(2waV42x)F{s<3b6vK+Bj-F{%sCx(2#atu53`W<)TBatUN@;LEP6ieIG)*KKw zELJCHtXL$;LM*+7tNgLW@K-^>I~kt4b(vnJGd74=@Zyo_H)#(1l<`r^-3Kz~(U+;Q ze^q1krPv;U6bDNrX=3JoOiM$LXD98;=KKj>;*_));|v=}4=~EJ%)_nCQ>k?HMMxixZ`Cl7#V4@aY{{*L3Tcc1r}pLu4Bl zJ#y#cQ?Rq>Z3cUEi|LXG0!EoI%~@X87inuv4z`;qP}MQzF`Dz}+YZA?1q%ehMryL) z;}9+59A&KUeO#s~mSe({7Q`9r=||ay7?4$BU;6td?F!qEkt~6u^oBQuOm?UP0@; zQ<(8Dp@J9xLuW!e0C5EYb~|}+^j|(>iJk*pR71G6GA;n7nO*aD=-m-=VzV2L(o7Te zq;4YHx^;5r`GL{djcL;BZMAQCQM_rcO?x)pC*PG~%l!Hzb<(_39aLTIlW5G5?F^7Fo40Z)NwjHWYy>h^;5u|drU28bxr2x|BE@kdNY z#|f^o<$*Jy{K6x^Se5#t+voQ$Ref5v*-ACrQazf(!ndjMC4T;{wuBgHnzh%|-uz^2 zYv$@p=FFtSi}8H^qFe!X8!hpoO#g5!7J3D}AHNX*=!zlIa~{WgvFiEnRr(yXf5`v2 z0u)q5ZMUY7d;ndSW#M6CXRy#U7`o`xna!`>^|&S@5~$=!=a4znrwN_LFB$G_oa1h3 z6BF9rf^!o8-0nQLQRtPC+;(5Qa<`w$3z}gb+p|9(_)Ew44Jas7u9V#~uvF)|S(Q+6#JDihT#M`pLDU{mJ zQhzd|WjfZo--eIPxIeXb(GzB3e){j3^)!GTZVRF#!COCyQHsFBF70Mu<+MRSl~A+$ z*(q9IIsB)i^SOCBX2AL0_JtcBcUG^*1rgTu`RIlf0SF&e!_FsBp^;p(#{@MeIhaZ{ z&g!SjuA)16X4>pWKB1M5_rPOsO~}x^E8CBy9(U}@2= zrHdh;fYToycG`vE2y8wY+tzhrNu!6SI~`llme~1zI4xx7*qKZ zE6FXJS0CEE5bRaqBNvF_gbfDR79!X(<03+CeMzNFS})G(tqqD#Lku_i)8t@;Y57Oz z{(kcJBdeY#ufKZBHtJniHOnbr^WeoKn;r{G202Z?Ila2cGC^LX&f|}OKQrhFWsVbl-$*^1*80Up(z*G**6vu2k(=#7< zxPCOuXpP1^%XG1j@%fgkz1%WTu62Ew1=O7czP&#V8HhE`E*(H6zJ^U zYOr;4Rjk+dg=TJC!9r7NAvr}Rv}O@6=NoPwc(Ob_K4oNF^fTmkzPF}S z9m3)zexBe$Dyc{}6C&bm(<^e8O;cKFmP@d78B_y@wWwLr4A#7C9s&48r2O^26bX-k zmnD1?K062eLsfmB;=WHi-dmL{Z&%_PX?bW^CJ5+$;uek*CBHi>Fo8ZDEbA zXISOeXKeD|b-zG;Zt?Q9N=zA`3EQ*VIpQ?0+2M87rtND~?$e+GId5yEbz3yz((Xv4Jk*09&A=$z&O-|-t9v_7ycYj_r)hk<5~gyQ zXC$)Y*{AV!s_&B*hN@gv(`lfqhDEnqji$3@%~B!Ff$`6eNf}b++<9x}z64%Q;yR6b^S#A_&V6$b2)Z+HaF%Xp;1`}}kVp&Tu_U>C-F;@d2#)F#}7%SqweqSWszmV^Y;epjFH&v zw`#a5P=Wf5J}t+idG~pgRlUASs{vNv+50~grA)VnuAQW{Xs1!$LW)~raG0w5eWmr^Tn0-u!VpKdK!kIhTtdk7~Gro9_T`=1;8QRl$4A07Xm zxw6o`Hq&3gM0{STmW((Woi&y>?0>>=_Q2mDez3Gk)c$K+N%#B9UjO}`ox{T*Wbly- zQaJZoKd1xcmGjpI+^@?u%a}H=QwSH{(O+Qi+&tSpCTm%7*{tM#8ymN_wP;PMj(@hT z?*ks%4-V4o=)fI*k8X8!)AOANV*nAB7$5m(;LJDy7SKZ6$}N8u4ul&@{2*o%(EDil;|0GLB}{yUQz;Uh}0494AGeh`F{d(mkfJ;5x3TP`8% zj_LjfJ&OOW;o@aoV*Bug>XqocPj@;)uW4Rkx}}lL{f^Y#*n~P)r_v-$Q$sQ39@g|}MK>^fLqT-Hj$5TdwGQ!Buk0E?Hn+_y)*QkD`>`>4aj zczYpgf$qh=l}#P-0%TnioP_mn4U4We)_x^XuQ7e{X31`xQFeNoe@v>oC+Ghz(6VsD ze)wjHi!C)d?+zO92dS0nv7ectP=_wk_oIvZCZ52jvV~c3)$$5DA0J14vTgIbCcHV~ z7r(f^g7d{@VM4-jLaz_Lfi6^C(`d-**X$xg**p{e)VP2vHJF>`M}c)c`k=;BEFon1HH_iGwPn_YFa)f;(OLS$k-c+=?Q;)D{yUdLVJpeCc!Dl!mX>}upa)jFGm-W< z;bhH3M%rk5;p*`PrqCkNdZrz70nN=cJf8+h16@1TrAI~b=O8SrGQ2VzlV0eqm(vnQ zZ39*zFJjJC8mhN~~Bmj)$Jl7^ws^RtU6q zb@`+w+qkh_Y<=D3XBbcagWtk)h30_EfE{|(IP@a{#u2*$l`+&XgUA)&!fZLj9ww?i zSu(JEXmI6i>={dg$2?Yl{Pv&d>lx+PpCM556da(wIa?^Bu_B}SawgcT9{BLF38?r_ zNeo+M{17`OF(Q6fVDs>}5tJ6v;&c-hSF>nX(U@;z2nbz=+h_7na!EU_U zW}@nP_uaPLdh(C@1!8eI5y*mn)YaE394(~Jk-U_?{y)+oLXEIHpLZPk!`W8&f2Iq} z>OcL$|1;V?76y@0fJ6G{U?zoSEAc)u`efPNhn3Sp@u@o*E2yfbdimOs1-G4kqhsPn zZ{e^Vh*Q&?;nvy;KS-vNll!*bP45Su%Tc1n@W=}TFr$j50569h8 znEBN!wYB3cGQ$R2Q<*NGDAtAHY7<84t7^vSVixgNJ6G+x*N}1DIiQi-``&RO9J}M{ zSFQHNFAWNE3R+n#N6YrxP7sZ*jdocP?zI`qj^BbF?=L5`7Nq_x+^GPmwSHqwgN&2u zPJ9ftMr1%_LkbwL;Ia4oJuf0-@Bv%iMqfGUVhrkIK)marGbl@87;DnJ1>aBUf_5_CQ;j1P^qJ%r+_h-Z$SyT<@Bv2rof zr+bV>-%pjeQd)@0i`2Ya`ZY^fLQ|_&tLL#rmaeHCkcHJ?+O<*oQ6>+L8kxq@d@68` zybZzO7-18iqZHqHC%}}$+_d^P53Tyvz3yzv+oh;rkL^z8wk_iRivH~DRV9(PZoWRQFJ(@$5@lMx`gJwQn4!IEz?m&!M78*?t|@O31` zX1wG0OyGN(-f=??KE$$~f7CLWqP>?aG(gnkqD@9Kk(Bgbou(W^qstwO0rC$Q=i1b- zfto50OF}H{D|ao2NBnoE!VW0ChBakKn{e_Hu;Nc41W`J#pp}HVTLx~9cMfBJHS}XWLaUFwRn1O7 z=UKPVso#b@w*4G=Rz?X|$vJWWe=UY(wEg^heHwjUMLAoGvXa@7udxn&Qzm$jbYp_F zxPqUGT?jrF1LSwwv^PH3+vl|rOHeBG4fPKm1AGvmhYtHBm9u#TUj>c5WyG!q*l#)Y zmn`*Oy&rIdytY>!Qg{iys~C>6Xz?syU~vwQhO%>|)J3=;Z64_Nf1kv)X*BfMPR8c& zt?V7Ct!Vvq2j%sCkM3>-60gd1S zqeVbe*rqjEabCvBn%R!JUzlHJxhV zi#p5-Yt<(6EXg(|2`<`v%KI>r8SkRO1H4$GFSak#4hDoM2VPEI92BGSZ41$C z_Uea^5Sq%@Z#`@?i{7?D+ut{uQTh3}`R(oWSkc?hR@7h9_qhvYBs~9-XYnqv8a&Q# zeGK+BPg0`}Ui26$xyHG2*(*)-9Q_z`0#l_jqMmE?p2g7~3WNR7)~ZG^ccYuf;*jIIW;ef6e&hSl($gQh_Osq)!Hv|0#INEkro)aX&bP zpan}O*mU@OTj@*%Q;oa6uOT=azxUupkiGCBAg*@qn<4xq8V7 zJf*_;M(MgSfGh!k3}WMA*f2QY_4DF4emhU6s`;cm@t7+b53QSCR;vZ`sp=-b=Z8r& z%-uvLE70&wYPz9WyViA9_jPN<1_h@sO0~+i4K`R5zRgTAk6g}|DcUOJ<1yEF1!u|m}H{O z#TWfs0UrQf)^wOLjUem+4grA)~m`9v?1R z^p;m2ovY*xy`Lw`Cf~YHYvllG)3wpCF}68YykjJk0qbR8>^2^t~zDW@~JaI$X0v)9XrFUt>Apz|TO zW#2QMXoi|RI{)l)$aMfsw#~1-YvZzY`O+ia5q?i}JS5ERCx|kIS7czYcqt`y^a$}o zlc$gD|-7QK?6dnj9?NQ}g(S z>Cq^It$cD`0a#q*!aPKcqt~x|7~GSMd6M!aGO|=Dmu3pLmbxE;Fg6y%>*e6(+>6X3}P*&~~1$|f{IEey+!O2dTwQH@kB%=hHz ze12$k=L$V3`aSFdSB0Eag;W~7=XR>L_ArO_*q!85kI-`~hTQJs3Nyf_HIjG^O>Dhe z>{zcne`pL|?bMscFM*FLc<*BsT}3; zcRe)MB&uRska7B@hx~wu0%#+k=iToy!m2_A_pW(edk0RN_+k3l6ChvP#8pF^48}2* zgl$hU$K!;Ju^!9TrAyjSvsM2Vi}(CV2X-1DV_)qWMk5H2}7_=)L4;j^ybdDzCCyyI1ZVlntR1l>#Y?*UR_?%#@ruU z@rv`w5cF|u0vs7_!!bPd1bBKiz}T!H*jSOkpe(hXd}ME$pQcc)v*j9H1HlN-FgXS6rWqXP8frNj#*8K<^xl%R$*9koc=IjsfvYQjYWzShjVc*;p1!LFn{) z=Sj?#k9pVwn$)&H$+rU4VhVd)%k?6|Dp;kM`%WM!nm#KvWgDMkto9Dt0a6`&60VeM z{CVeEzATmyOS2M;#WaOfa&j-pY>U%>x(E&hZe`hT!c;I_M=^uOYoG9S57xD9*h>Ct zFm5lujvOzTkj1kz5@nhKLw4EAoSD;gT-egm#S9>yDQfiSNtXnrlwg>eZbuj1NqYq! z#dIu*qyGGQ@1-r=Ab4)kP(a|}^y?cD=St)U#x2^}u9tYfFuhUVCk<&C4nX z^+Fn?+YN zJd1LW$`{^T;h(CzYCTK+R(cq0s#j7CtfBS|?hQoO5*=s)4_hZdaSR7SiuM63S+6&| zO?s2#eEX*{v@&yA&f4p9d1Ou8ob0auZy$g27n6Re`=T^5G=Fh2dgE~l`IE)+h|HQm zHEd&k@7LzqOS@tGy!R^@%xKt|KgIlHEJ21)V9~funbr$&A|wggUD9=6?)U#OY%{7r^)X#_T3`gq1xP!Hh@9r`=@(P%6Q<}r9BZcV=WSzY*wZzsfL(%X79n?FB9a- z=Y|C~UBjhvk{b2eno7U&`y8v+i}N@7tW`o_iaAfy%}V0QRVYynEl>VqJz=-;b(=_? z+V2)YOAeOVs)y01*8vR!oH)AO)`0-byx;zNMoH`q;LckKT9wBj_0i2R|JRn0PIZ(V zz#8yECOn_y?roNFK3;qf0%oEJAIKUsu_1EtK2kf+Q>;74z(5g!CCx2tx)!V zNB;M8oa3ZW{~S~ECr(RBUV^gL&q8n82_WD$hIk^9O^8*&@t~=;G9seU>h;4968)k2Y1YvF8ncd5NBtH*xW2kv}47^Jrb`@3>IIK z;v=<&&gn_GB{7jniNCb|J(J==uk>9`89r7RSQhrup8dcf@P}`iDVRhe_gB=sTo2{V z8ZW07R=h$jT)`&HWcZKt=4}2*fDGFz8UW7ZAbq|yFr5Js3EN)S^AhFmd6^2}l&<>l z_pp7{*g0PpeRqs9yn9MA*&QhnJ*hyx7(JOUaWp{;zoe`*|FDCajjBKam`*Hav3K|~ zFSh!wj(oQ53^NAB954QM^-p?E3UTxurosH~(7$ts&*uJ1!H?>B&IL3BiV zC!QAtG$g}qZBY`8!`OB7T>uVljvmLb>$(*h-O5%Y@gS9GJ%v=#jc@8h<9voQ))YnO z*pS}x+@XY} z-ZzlCEy0f;@e+IdziqL8*UpFJVFkn>&Z(l>w^Ob1QbnLG=4EnaMz^up3x?+}pA#P0 zBUR!76%nNt`Ai#c*^M0;&F6qPZSSkv;?D?uEj*36a z%+peM$}ni*E%yb2Cq7kA`?)i4i|;2#_u!mJlk@mxqukG{xPU0bR{0E8hGg|f(BKfOs`cpIp2 zf7o&abuZU*;@!eJd_Jz^$#8&M@jARPvb**qa=W7ItG(^)1C>YQ4NuHnhnXEx;lk2t z!U1~E#Goc!V`IZS-l=ofzXvu!YL;?w#ase-*Xi39m8TPU0kDfHQ~csqA;A;Rf2!Qi z5S*d;0J1I7r&sQkdVWF~jvwm%wm2t7$$>p<=A#&GK)3hBP8PpY*G zS?Jf)fu;MuXc3`?Oixb))6*ksxPq_D34|x@QGOkg*1r}@A!2c6Y;xZnP}~I8&bT9)svVx)&0ige#71Y1dUxx#ldMjJAQ0V(sYb z&7(E_txoXjuZ|Qah6a&{fH!&kl1wP_%usLPZF*Tz=BZO9uY<;yTut4;>r6F36$}fJOPA zBrEEJ0Z3vqfJ!lAoc;XonHz_g2t4;OmshDhB1g2Iflkgv0*S}3;Wvkw{dcc!4znTO zbhb&2s>_8s+#e4T5oB(_6$X2XGf+B1A8JMj`CdNb-YwJhKeuGP&DYE!WWoBYdwbgc zJ*GDOyN=g2rm=GbUQ{s9$WX_$E9#m7s}MMe@;bJoJ9j3~Os6f5Ovh{SvEb`1;HPd! zgP}A~xVnOjg1-E*!dKcOZz;Uvq*{gQ1BO$iyu$X*PA!R>DFvl>XE&M9*lP?Reba1S z_X1#de%OcQ8_)kprAvH7j2eCLD1xV`)EFD;vZek`lODo@FmikTEp(p0NM8 zR7bXv7L*IxVGdNn@UYc{dTxjNK#E@#6;t-Bc4ZECoJ^zQ`==nw;K^I5u_h z@Z+hNqaiiBriYs8OI>wzcukw&=`cO%h|+Z`PBD+FOo1p+%$6a|0ou^n%3l(pp?m%* z-Y~Os+cGkD8xcY!`~Dqf1os{`UntDGAZumt(q1`zC3CZ9H!n@M+t3S&ucvxpAAUA{mKyzzpE+5BVBQ@8fV@-a&NzuoC$snSmSjb z0rEt^69E(e!{brFvkC7y9TmON@{wspb&3abwka`1_bqE1;~>oUEK}w}SH?uy#pBzn zo8*RZlsetuaNF3XZDM=wMJ{6y|K`A5@N~(TA^$Sge$Y`k=a;uabC2v}ZxyI;%TY?K z?-|6K+R+#h< z-;wl5$>&*PVfNSPyTaAHuKI=VV|1~mYJ&Ko^kV_%2A~p9Zqo@{J$p36_;s@X=?qhb zF4FJ-|4((o=kxK=Mgqx>C57&_h=!@Q3K@;GVJnP8|9IWVuqpgo#BRZQ!<1spv)0ut zA5(}wVOYZaN9>!3rIT>W?BD*kYex#OJMR*yq{R$OZNSVQ-r{keGmN){>Uu%PlBe8U z4&;XxTj4$I8ap&ILEXm>#N&cod5WBdk73=Wm)n0vEQJ%3q7*CHCA&sD_gQd${af85 zUzFd+Ti&sa!yj4msg}JD1(l3F!Iz%Et$gVfItL^(x|CkG??TeQXN>F@&ZYyLooC;} z#8AI=nstOBHtZLs+Z5?&V{_t!0&iQHu}Y5WR6kdEuG7Y8FIPgx<1B{Sf2hkhUb+SW zp)5rdnm#@-sn{g7Em7<_VKzJTJaK-w8+`5fte-*w@7}Clclmay$E$=B%G;+O8(EJ4 zN#ZV>{mIBhM`t4u>f9CYL`nWx%^PmXJyu;tSgWRwExitoQh5`x(~zG65s|- zp_x4B++9q%aQ>Zv48tv9=9FVjW%aU%sIp?R$o52=^}VQQ2<}W*B(eMSoxLj))R8DX z@ZBc$TCZ}aQFIkR+|PyQsOqeCjCFlY@i44AtAyMlXDz72e}qh}Up|#Mh*^rEvq#uF zWKt12+LhpQ4WZ&0s}_kKIsGjC>{sTos9Im(2V{{IN^JisRJ1K7XZ?FdhqM@lKYJTM zKX&ZKfJ6@wJc7ie!vnfhq_;PhrWx}=yZQS=MDYqT4Z>&7a9IvtnK$CpjFvCBCsbD3 zyTA68@J5E}j}~8=HMvv{^NO|C!;uS|`Ap^e^P{_0$3L1co2P*U-VZBvJd^RKM9RaU z)3pZDpkdIxob!dRzi1JzE+?{OkV?_f+jo1x{DC9^r!n*RiNfsbjw| zA;%L6U?8&a#By?Uz-h4q12xBVFg;gpRNVDIT8<4$=}P?KYh2s z3!kcOD0g{ZqkLl`j49&ux&)B{CpWe#cTss3S9j1gow9y;K5GEorg6&fbE!X!XiC5m-OVM4+wPn=Jr=J4pdq+v^ z;J#0%3T{({E^nwUMOvO!{xxpUN|z+OoOMyjW1W z0EFy3D|CLnP4cAdRC42#oqjNYosrsRXRvKLl18^gZH4>tP&{=0=C6Tqc|_k$k5Z}d z-G~&!l%|`3^+&QNchHe|qgeH-g^LYxm%9YA1%1Q2kO7^3Uy5xitaZQPE08hWJhFb) zN>kIR7q^`Mp-Ms7xT*b$Apw==8E0c9uDoA$kyp@Is7>^W{Wbo`!1xEcU#8>U3O#-W zulrJ#fp>a-T zt#JYjg5jK$cIZsc@xrK1bEq;jO*BCeBAyS^Eddp{{4}(|QI2d~o!)%5V3~D1{XVj0 z(^{%!5l`3!A{}ucWyHaFc9Y8f@PGWx{-O$SMP!YF#qY zP1@d9x&Eg zrt3O;S1|MC!}IdGs($73kE~YW1}!67{&`>YPp`1|IPDpd5JgXrH^ih+QoOWudoQgv zhIkiVvdYRkVb&D#AlqC5Gr=gTQ{KhVxCBK&ECbA=toG}fauz7_d4tB7o1S0eDoDPg zUd$+|=?b+U;cXMumm!^m&>s5uOGgJk5);EGnI9XaPBNSZa&zmO)%K`CuL`CeGU z8Zu%jwq*!(t6T6;6YV+!=b-OWVPZ>dSK33R&ExIL%%iyO4k#<8+M3)?ePo`x0;{0q zi#jh80W=T5luQekO!|z!(58i)Sb6wt?(iE5w5XtCD{4|;9Ns?29CfV=8eQ`! zO7L2KBxvRNbIT?nOZnU>;mx3O0!(eUFDlv6jL zlL%a7Z<5iskQvUP4$Qa4Aa0B-e<6vPKm+lZULS2q8IqzLgBCAEeC_wTFmt~?`Olrf zJ5h+2-%iCC)f{il(#}RAXt#H;iK-md1qFELVg)mev%p6@!W^7T=Ag8o+a${f9K zPOl6DNmVkl(hE_S31+1-_y?d+HA?na zqh-km`nYU=-6D$Q%y%Z#^PkxnS=ua2y-qG}qO`1(WK(wK z-~-i;Cocc6iTe&E?!(F7q{TKckFz`a=IKNe@%2_EyxZH0NCLQWH{jPlKBO4-7onu- zt#ip(xxZsnCANfiro_{X`-L#-xxSbL0UT96nAfb`qT~{}z}mx6pX`}cc&SO-)fNiO zr&0w=aceO9(&{oBcLSe7fVH*AGu$Ei+afcc@4-wzdrUi0^_{cqpk>LS=f^a;F8LXy z5)-SA89t+&D6uJ+m3v33T<3Kss1oz$zh}1Bmyiznvgid~O2@@s?~$)#{7T9Qu#h3y*sMk# z1AglPI=*@3O`)j!>0W$=^aCq>8Sd(w)eSTGB){IjntF;zGGD?{9XT&buCI= zCrBl$Suda!id)l_c+`_{1@{xTru7x+n9_--zt~9+x;=+_ctSj^u67do-1F~$$$YI`A5!(i z$vson8g_$aLz-pomu7MOkkKYf#bu+X%fob>tf@}<^G*@r7O1J=x9W(m325Z#+OIU@ zju0yy+{Rz)dzNNh7TC1gH8NwC9$(|zBI(1&LIEtH^>?IWaSRX1U5R6^g?GcHYP?OD z={n^d+49M0wxSYG-=RS`_iP^~&&}*dzUCeDfDouTk?31fj&KgS^JQXsVr zlCAwDY;`}QOZNIm*JN%~XD`RV+Lb^B{s+@FPRyHt=36gxzisZr@iT^0CbwDdNi8F~ z>s{FUrRT0WAf{3N*Wms;e_$(yr*BQ$cXPvb4mZu|&VQFQYA-5}Q>N7e{(NDHmfK@p zsd1WSnZK;@LMS>7Rx3^S9klj_f=XSFf5Wn5v00>QB)ek8Hf;&Gf_=72f7UmeP~!8} zLuFIaYphDg5nb% zgxFs8Sh4Z|j~h8Q)2lm=vM}RWx6M6GPs&tqnU8&|QvVE`eMa#%dlT=b4J%lZsTbSN z3f`9b<>6ciMf8+gpC4U=3bAk;mO!`>#?{pVU zDK_3OTxr`YNNtC*sZFEi;9BB%vr+o~K<9e>LEWHUZ1>46ltsKWrNr<~Ka(JYYac1w zIw_P*CZCpE8S%{GwsJSQCwEUmCV#e^ zR(^(q*l%K#22!5B*q;B^WAf_j7k{1LqYy<47;Devo7Vh{Q(C-T?LqU)=Gw}iB;_vV z{!*HH`;x93!PQ^Mx>_)%9pZ&kMcm3aUi8a6>>)kn^6up6YahpwJ?)akk&egv$?mm%af18Te zZ8uxJ`zV19QsAz?svp|jw`ZI-Cpg|$rZJjuQRaKSb0!DL`)Xcdmg2$XV%o$ z4XK!;x7X{+%nwYN8kEz=Nv!jjZwZY5;OoQP@HYWJc>n&N1%dw^1$+>_*k?N1!5`aN zS=t*Ifnx!hoYUWUp*Cp~`kP*GjYGvzPTSd&9MscFj}oblen9<25oA?G_vymiC|rmD zY!fvTp3-;U1U;wBbo14v{pwEnTDv+Y-EI87LAo|nJy>r3E}2nV$V>ESSkvAEhe%vS z*?8Oh$i|8B&S9HTBUN6Tu1QVFqYoisL0CvUuo>0LfIzO4&-w=N}dT)p&{ zgGIOCcw%IJd+DaledFyvJSK*N)v9j20uvh`;^lSC7;SyG|BJNu4r+4!_eFJCP>M+J zU;*hwdX+470R{x5_aGuQ(p!)~M0!`M)Tj`8Kzb(v$U_VO{A1E}X9Jmp5kQA`L7K2OQOT3#*+7ks-y zulQC**ax`b&zZ#+UL1%bvV&Al4cupEkJfZm z`xGWuM$sY%6dg14Sa$p{;=Ol`KlXEV+v-$_kpDv7lv(QMq-r(A5?9OKs9HW-^Y0*p zc-dB#LPqgc9_K{GuetNbommOL6WS(^!h(bIp|0E-YwJmV63u>-i)qNf!ub(5!70T6 zg-X`FtOl#o*Hi%D?Ucsp8R&L**XE+KbSq93R!ZZVUt44w$NuZWV!V1@fOP;`=Fg74 zk_{>-jOT?REbzxGAlwKOP#CJtLW&5p?qE2t`1?W?OhpRqB3W36ue`ar4$;ddfN!|I z)@v)wbWl)<=ZEbDz)sKkSNo;YD(bA{=3iE}6{IA$mG4YWC2rP`8gN*m2R1C^hI2AP z^*sF_<0}vuiJb{rw&}_UM=+2b&U9Q9L#`2jw|^>u6hkd2U{rU=g=xS2OTEetkyZ&{ z!)9y~o!s|d6rckY`5jnSCvKtpG2F0pZjo6TFP~T+ZHRG>!zuE~cM2AG z4j+KsGiS=^n(J{`_vtHaiyB5-ctO5KTaYw*l5shx!kVWgSOnr>>?LS$ISenr|!9E zmnl;(&^D0JK08$fu{>??U#!GxR71oCGs;?XGLK9yfq9XxDDv&39r-g|3M}sEGx5B# z8#N<-go!=fH%>W9IZp_=YeS(Y=a#uPcuE*<~UxY8<`MS21k;J7-Eg`Rm*jweK^61OtA6+UBEoOF7Z7^mM>7b-b+ zpnn;mNbC(=+%{-zNK}%yI-0W2uz09u`JuU?r7_mh!vRnR>+UTcTei7Z2DqCHz5K*! z45WBZ-pa|BGM<(N;v~6@&sUq23&-Mlm6ZcsW*H8tTkuPGAWo{C4K5BCKp3c8Q)|W9~T^8+zy76Dzbmpmorc?DK&DMH4S$Rk^ z+b0zZBH#dyx{0>_7t#?(b-vi6c86 z0CmilfET+Qz;Z(Kl%}w-5iW8Ogc#NB5gWov1V`_;DhCr&mKWbU5X2vVpc9f(QoeCR z`cEe1zWIry;@o}bwgWt;wvrIB+LG@1LZHw(m)@DWn%Xq&l0(%VgST&K;?r7f#1&t?MNqr-c2dqe_E`XwM#5k=D)hzG}D84ym- zPm97Se#^l=`Xu29gjSJOfS;YvUJ_>0Xa0xnoK~D3a3hN;RI}Kh&q3Wixi!_rL zbco;{p8^lDue9c~TEU)+u;z#vn44<6xU5WseoiTPqg})WC%;wJhp(x)*`t?Z&AS%W z;Z<~lK$49Rs}mh76Z0)r)y%gZOLZyfoz?l!=_CjD057WxcHyNz%!3%Xb zPdz`(Ytltgbn$9SJW(A4n^$UI$o)U8`ONXKUM7vP@_Zpvmeu$FloVX;hNth$hy2L9 zne*PU-nM2V?vKWTVj)zSxqNqk zBm7zC_ud!ax-adwy&gP;0_6X5Pi05hC?%dVS=r8KB~eA!Uie68@Qz>kVCuJJ3b3y) z@HS7?d1f?p&ZEz3PJDmDf8+K1)YRB`4{<7)4!r$3^xH405b`~(x-q@aEkABp=1K_h z-x`osa`*eKPc|<90*|eNr!j8d!R@g+8>KoWwaXtW{YBy< zr3@3sCH6}Be2=n@(j1JK#4_iP<`#xM7%w5JJ-}x`!a-qOCS*8IES-;-9vC9lZR13C=rhHP@$o+-#Vg zYAV@0RY*e54h5HN&0^N-a|<`8OuxNsY;A9EN#?QAF~4h?42z2~6nU@HBKFn_p}@lu z-(`S%PW(+WFV{6U=)`}SD6(aO)J5ug(a3q`&Z2z_iqoCa9tdg}PnO^Ma!Y8kS^ z4ggQk{wn*yY~tc45ItQ#&3?Mu$`b9}er+6~<>p^bN-!NPsCh_z0|%WcQ=CbBb~R9C zV}uaCd4SOrb=n zCR3!s415L@9&`h73d1$ZbY?nC^Qgjmam2hWY7oPCvOlmx;vrd9&fdtU~zL2W3*$6?}{EV z;)_Ha_03v4UoeAuxU!qXcpPv|fD`ah=(tWtYpci(FOO*RV|nd%e#C>0)CYwuQMY;Z z_>2;z;1U&{sinib=AW*QC#|#9y$~vFlHcYn~#v3L=H$wZT1vjpjL+uQqb3AZw zlT{Pf?%T9Ek?YP38f%pOzNp_MItoPmR2K7yflsyb#LBjs za%ZRH(+1Le67f5AqJ2}Vl@dq3g_CLucNrt&I#IA>vT9i8f$@lssJ#P+@b9P1EFE?$ zqQdOd2GLeOoeKTejC3OduP3&KjQ|AU6EYNBBfN8dCIf#(Hd+?IfiF{}MhlEN;_wOl zobtLB?`}cr_HSBeqi(|Au3q~dTxLD7zo*wdhzV_=ERZgBGv1^a4-2EnF+E)S?CZ(i ztC;K+C(B57nUs|LjAgqWB9}XtvbwdDZ3GUF4|UtTmy##1Q3On;p`&( zK2!^Dg^fe8OG)D2e@f{<-Kdbmhy{*8>~Gc=t(@z06e^i(3ZK0)%`lBzG+#}$Fnc|o@gdt2|U=3w|81_|gvJY{LR_4b*ddV1?)`UfGm z0rm#JOIuU8-5U!Zi&W%^>TEPBF|EOQCNjp{7E4WCqlwJBmuBmx?TM-h|72);1rDSa z8BW&46^>G`hV<TFf**|Kj(%tbE$jXPamObzkVbez?!@&qI)}D^ zc(P9D%@Tf<4(IabN0B&V(}D{`B~0%bZyT4frhcNAr%hp>%?$70^f?3K#?CIG!=C4QIIN)y#lF8^TY?R| zBvBKbV>zo4H57tgn?%lTr#ruC5T7?26cKiu$qX$5ZW?Y+7opjeHJY6*Pv=1y;#YM(b zorZSu*swmyXr($%t$gY|x+4wvL)J#sPIaCYM9B3L!$4$ ut0istBTqy8>#=k8kxO#@o$6oqZeOSjj*WdPGsm2!l@=lzVsOPo@AwkS&!@u* zZK8&0%Gd>Y&2l%#75EvI-{b71nmj&UjtFH9=Bv>*M$^XV+#i8^gnCwCv`2CMg%-G( ztH|H|w0ebiXIcknM1<(YP3%nD9&Z7@G-OAkKy_sJ)Hr;9g{GI0cYxb*eMzTjhAZC=U zC!_l)wN%WVC0G5)l;K)U8l+EHphKzVXdw8Ok1e3dB%XENV2>|ti0X2bYs`p~u634= ziA4*?4j;6(mlMix2Binzio^_#QVUZyPJycsP|ExT7>q~4U&Op5(}3dK?uivlzS@GAXCyd0s}v*9WcYC`)AksiT4 z{!JSGQ$)mjJf*w8{I<$>lP1{I#%an|6jA^03qO+Z<>@J8(2)t5tzcn>lYjbI27V;6 zF4&OEtrdH3*)?k+GQU`URt|EzH7LC$87Z@F71fw-A@K8lj%24fn?Na%stf5D&k;j9 z;)P9F3Qj(m%9k4EI!_rMFPMN~qU`}f_d*1^!8!s3)7+2h_ytMZ-PR!jOcH;UE&n7{ z1f;F~wvR0_M87r~sE#+ibV)*O!J>C-$?S+Ww?srlr1)I-GdZA>%2Q_ry7ALeJ?v!+ ztB%X(&2&qf(%wG;J$vep?swdLV*iKIJEzh8x=tPUbY3 zq|HL0eKS^8cZq`o3PV0QIz3KYd3M?Mf?LWj4kg@$`C?Maz%C}ukwCh_@ruA(irI=J!Uf4o<=eKbJhF|FO8`2qh%ToJnZczt)m?^jdUZ|h zLfo8}n|su%QUY2(3HhTPg3a!R?~58g%T?9B!SfR{!XG$ci`m`*sbwGhd{F zsGShpR~-t9g$&tzJs18*;M4~u{+0AY7=)#Y=*L`Awtu6piZHsU{+w~|>rCiDLgOQ& zD^)7`^C}nqlWzZeoVo@uC~r`7U{}yv6f>aq#3r<})sQN2m2ps(2@2neKEu+5k|6Y! zLCD_v@J~_H)2Z5^pS$u{Mwq`Yd;TZbtbca7OHD_xy@wdLjV-LG8W~nUVp6gB>L~$z zU31zks4~mIE7{c`Ik_zh7Qlt}Ke4I-zZU>*6CIC{uu8I`B4F)oPNxOmpXs%h8;oIOQS{Z3tR8fQ=1am?4LT zruUs`aSC%&s*8r_5MysqzxB@~L*~KNin~?I+a7!&{lKkHpc9l}$vgFZ!N!XGxXZs9 zj(TMAUB!xA)1kQD+XKCcr40#I?K-{jKA7wBgX$Hz980sBHTQm7hqfJ5klgHOMae5` zCoWYRQFH)}JN&e)4O9c&X|Pmk3O0K3W%zY4Sc-8~6MSxrw1wZx8$PWo^4*!XF&aIo zNdMB4EI+)-q@6I-G~s3~`*P#sY~sw_&(f>nhRp#rmOAfGAeypX!3Cd``ey-`)vn;` z&cY55m~~)Qx8&fTcDDJWtk~65#RNS>MF)7;**jd$Pz-3O(QqjV6x4@#@KejUQoKR_ z<>xh_!DV!xT*$SMC0n952Zbf-NThCpa(8(@Mgdv3w0q-NJfCd8Y_>B~JPY4jKkJ%i z(Xw|afR_>OrLd!yJ+7scj4+`0P*(w63HK+*Bt4=j+TU~$qp_e><|Z=JSHH4XkXBHz z_8BWPdt~M{Fso^{YLsdmh&Fp-SojGX-0!mANxXV8!d zRBdD!K&aaTN0VmDO-p2t8_$!Lq@z3M@e&EEi*)C4tsDd|wxQk_pt5?QuXIL^Z>5QjII+ zoUS$Ld1G6K7=#0L7LJ<&t?hPJ_+h>JE~1tN*$MfeP1b+X8i0@c7kDpRSiYcg@m!Qo zvVIOYea*eDU)*iSR5{=LuZLP7kArB4I?)2}o&cqsMrX#ztvJ%c1t9p9=$=HmsdK~) z{Cj9>515(yAY?2H+l!IyZNG6|pk_iWduki8#DsW&*S!jGP69VVxZs7|d%i%9C{(D$ z?YS%e{V7wziM-P8og}IHWh2=F&AAIzM?2v z`en6;*&S^nWu<8l&X<+49_|XUX@U5Sn>gk$$2)<3-8z4VbV!OsRskWH#QY<3va%N; zyE4-D>MtJb4YDSZduytBKUQ#j-*3pOi-phDw0c|)W;GBRT)t55aW&J4*MH#h9f=;B zHRqPCg~ijI+Un{VzhL*tq2|SN<^~Pe!f{J;+d_SHQrpn4w0}f;G~bpQrrrlsP`gld zd71Xix;|cKs)*;#_y7ml6aLFndzOn2Fr0x>>@2Jh!6{Ov<%8p!7dN_3HsWX(`Mvan z2rhV0hnb)ulKfV4DeIR^pxD;D6xIAGE~SK))1p5W%E-Z`*Ei}`h%k$;W9NC>79Pr=CYV3Z3=t%WwG;1C70oc_9 z`JF|`v;Yr6(Z}-(iZx_#*1fs-$^>0-Aiz6DThe>03L5l2cc_Z$WjG9iS2ZJR~gkHmSb6$=;cauqNfB7-6!Us)7pL>6M4qiab>4qnSD4v3xe%0_gszlxN6pl?|)RV@I^;=gD?st|u zO;`UI!)fuTG^Hw)W_OQwIl>3!JbzeM6mrmoW2~gRfE84yeI`q>`gbajas4h~9q6hf zOB_ccIGJ_LItA!k?eT7Z9LxSgv`$GD>4F_RlT>MJPffirdOKXGFHIpxgx?>hjf7l7-Z1|Q!&YlEuH?{GO(-}M* z^)8dwG>UL~O3mFqR|8MH`*#@bKW~5k(-+Fa^A_xK6ShWir*O9SO$hUY%H7+f{-KIr zC#_&SpQ#+ciq)u&}na8u7c>NL&gxvYhhr2zDyb`M99L13pd~UHZvL zNQ$o|&g*u!FLeqq3ia7Io=n+Vkgf(rXt!=i@qVikFloE4#bBB>EE}(9lZHcUGv`Zq zdxs+x2`CmBb%AvpUYLGPPRClEztsGdsykC$_lwV^Qcfd7JNJo|w#m$XxAml0G7dX0 zgNddBWXa0t)%O+hfV<%>X`A0@KY0U>+^NHJ-I=+^&Piy`?wzgAlDaE&ot#0K1IZ}! z>nQcV0;JWY#;4rpm%hZNsrX8(-!|&N6%^v52q<_`2oB;Y-Wn-;Rc$3`q9Rg00 zm-NwVZ*ZE!4=FpQFJecqJYeUBxW(J$dJz2TZM+t(GC>qqr~@@=91sXE5t|@X%|B*) zq-tiqq-#+RO!@7x?*m{zb^?-~Et zrD$`C>7kPojFwXM(1YIV4zX+sJ2D6bu_bj)_1IS_#XEvn6wR1oyUogCx~9uOu^89i zXq7rw$hPRPcgo&QNUmOv=)*@j_SZBiRq^)Mfc)*$7x}Ddzs9HbEnLl%9dyngb?Vfj zo=xn#$!*gaA4++6?Ag`SHY9mhob0*tE7|D|mNjb`G^Kh!VMU8{D?^IWEh*Jd%^5izK>?bVr(rS#wF0vADMRFbs z{)8?2fVdAz)yI^fChf+t{T#fd(3sScUGL?+pYSZyvDWBL=OOUS|lktOCI?EfrIYs)Q!H-R)n$l%` za7rt9IUh;1TAIbNgD?K5`eX0TmnXvhF84 zp7DWTPt^DQqvyc_TR46RcxEV}e2Gqe*Hg`nP{_=Qb<1tx*i{g4ff$(-EseCn@ddkJ2ZCzbU43~E<2 zGz}s!mPxW3YlVe)B|iED;~j5k14LE|c&qP8Yoh=W`ok5|sf%R?e4C+vusB6(DdVIQ|t=S&NL~=l`zG zyXm9L3$*?fZ-w#d_2o)~t;faXL<8L(iweIFD~pM~o~bSl6T%J- z+_5IohpCc#6UG}+39x>>96@{^85|9+Pw5&QCETa-z%_8zvRY*LtAY5M`IY#py&MM~ zvvk|^G5pgS#^_{2!vbncWNnkHQRTq($G@WRl@z8j>h(V2Fwb3@ofTjT<#ja;;`*Hw ztI`|Yerv&2`-=u0B*>1yXSm&Y5SVbY$=QDNQ-e;*`eXWscm6s<&_waFWRw};DS#ut ziF8o;VPIi(&Bb198coAF{ubJwCU|0;<#Rl;azpkU$R>H}E>{-qM|nBa2)k~ZrUhD# zuN1_qC^`3d<(LWxq^*4)NzLE+`FL)6Se#Hq|A5W3b>4B~xFM8EkGM^C@ZdvrCPiRx zP%b%L(-#98+GvT>kswdsx^j@G{T_MARPvu%_KhXXX^TDXa_6QY@IhkZi#SnE8T8 zS~viZ3O^(ObzLEsh?=FR6$wtn=_kz-7e?#mMyk8nF?MTE40=GV$}(Hj^*St|NFuA* z|G+eMv(^JWw&C9*TcXIJ+b|?L33TM4Ipo2wWsC|}SAPpv&TU3du2B^LS4QZCcs1n^>Dkoa=ZPQU2?$Ie2}w@jHz@ns$O!23VpAX zTe|s^JJs|wJ+9Q;_8}imV51@USNkSx^l0&$?!CNY*S->nQcL%tVB6IBT+o(5O>#r) z422Ha@d)6PM!~a2%Vxm%4m2x3_T#vFlYF!3S}-0@$%=$Zo}$jmM4)2YsTmtNj^F4u z-$#J)l{{AFUqXEk2{uL@>LT^*Q_pzz*%mY1Z7>UM3mC_}{SXh0n#q7Ep*u8moQcm@(OgRlRCXRb=ftDX~+{vjsAXbL$j2(7(?bZ6J?tYh|-}_k3oFClnLz=velj47X@r&R64Kx z8Lgtq-KNqd2}3=?h6x#RrtUgD?C7O>9aN#tby8gr;u8m-see?QK1zAN6Wvl1Yp}?m z2y3cv_Q-#RI8N4^s@-7U6ixI!&uw4kN+ur_TU*iA|MaE+WcQIL|um*P#{ z1ni8Nzd#-O_Jnk8H>Au`{GvIs78;@tdG=_er;W2?*_Gk z)ch;rK*;;>jhy5(MefQpA(3qtrN@g2riD$(sjT~ArO)Cg)m@|jg548Le4~&j=_9QAHhFs_QPesn6KM$nn#^UY(WfP(0+Y>UtAstd~n(>c%(qe>*ZHZ`-s^ zsreLZ@Q&C8;)7KU+rH1bpA@7TCZ;1sG8d1nD~@8V>yOd*=JfhB2DIqvlp7n$j0q?q z#b9|LCw#^2UY0e+LQ~Hx>6gVryZ_ckc9En{VJ)H>jGToaXHuz?0;iuT0e=b%CsDYd z`V>`x6)Z2Z^A-6xZ|OiIl= z&g(j7VLLoxRbVz&@k6gbtxOeGfuu`spdiK9Z~yE+F!r&%NazN+;XPvHnsNfkba9iX zR_C^ZATD8dXGl=pZDa_u=lBN-AS%cbXTm$h$O+Dyxc@;oweDA=v{JwyG}NIb3fVK3 z$1XOgE-lJUnjS?JMha^XK0Q;e(hi(NrA4?9Q{VBVIA+c#3R^|Bo3Oc2M*Ck<0(?QWPqNaoQ zmHqG4>2a5RfG6SgFOvK$khnyj_+i({Pezet5I5RR~do%Lt$9(^Fmd3Y7i{upv&=xR5()D7mKXdwx^{?3bv5{I)c zuhmT52QRyMl-`XvA&64p!8c?OT1@bm9&4{mAO<}#jX%_oZ?FyL$h=z)Z zsQ_rGWCG10D&oi-0qISb8#xU6sh|8pDWgkIiNqpfSZNCyD0?_jiau-Ik3Y25bBObu z)OziA|HrGVGI7RD`P|A$H6=S);X>yUW~bW7!jAuT)%>5vOo7`W(}0Kzw6k%>2)_xR zTfrvSkL}f6$pZ?v=rm&FkR>x9sVGdHA67wpNJQdI=Eukx(C>SK>EmZsE4E!9xN&2>e=_xt zlv-r(Gs0=d`^@(Rr}rdZv}c@uCT{$!`{i}YN5n9)s#%ZR=Y80%{FL}3E61$sgL1D} zhhu+^7pwOYBN^HzAKkmM;QS~}LKmU#lB;1-5(h+ed>TFgYRoB13GkXklAp}0I65`; ztJS&k;a?}>tJpS`&wy1?kXO6%o!D|L_j);R)hpkV>+>=cElC#2(D zROt_dH7UoDZa_aQguSV~nyi7}WJ-6&P;`o~?Z_uZXS~yX2a)_3*GXlzNG6PJLr6m9 zZ%Kb&NDg_2tgVTMSHRnOiC~7f!$5b^&rFi{ zZqBY=c$$hIfV&m5AJez~k?~wjT&T8S~vXHpi694JqJw zg2d^>;iL9%r>3rbjA1jBGkGRXY3;H1%8V3eO6(<&ly=;uYDt{sP?YE0XuZ~oXg%ZaUi;MI}bweyA;BN^tiX3fgFGzFwR_`MtBfx1aPz3Crp9W7lSc27MEbOMrlFY`gdEJ&^2wtGEQ++;@=ne z!OK|NDn?vYsX0PEy9Zm#kF^6OhkZTerScQKQU$3_0O!I{n8BLfC)C>EQR^mPUe}}% zC^5S(xA^ykJjZqkVxA5603)>B#WJ-?GW;_>Y8?RRf3!X=9y{{(D%sf@Jt7t3&+0_# zM3JBK*hBg%3pRLL`9TT!xb~Y4Y(LMPZjvjNK4p>kBxGSTlTq}AK^CSnkO;oD77_g{j047Nb>pJve1>ks=|hrE-1zUDYQR4k#kkt7aG4;S zy14*LqL5`9cS=P%hd6HC7#=2lwAsn1!@z&1dw_M*%-~c1h7O&X9`MxlfZivpo21^7 z?RhyBG_t(QPVlIOxB)7A-Ted*=5El(13pH4RH&2(MW}#=XWm@D_~%u*SkBMv18lYB z8BvRZUK$!kF|w7#_&IlDFY_NOPJSSNG(Gle6(_AIt}ItfeeMQc*ixQX@N-e2IFN1h z>yJ~pFr2qcrL^EL#XnKggS?M&zP|@j!l~Ne&BD5 zR^!<+vt&OQHJZW-tbQM)1D58YlMgBXUr9CbmN_mobG~i->*M&Su!<)D*6r?lerb16 z7zPVf`|?dIj_{svZKdC{6lI?dm+mx&YG>w&OAm|ppa3gmhMj}xBjc@pC4?#lnj`iI zqMhoM2r@IuZR{85&AUhaQOOU_L%Z_x5%vFo2ZRF9y!qf*o@`QMSW4QX1Q)X*ev3}e zu7}Wqk7Uz20arYHGD1WXT#mYeeLnJI`{;EnBiR^RgY5*-FIm-s__03tZ6q_i7~&p! z=N-AGo5q5~<$LQJBY?7(AJD6+PX7$_U?5Tr`VR)PK{&k|Qu6qyaFT(iTX(sQgBhFe zB6W7JuPr5m2#!H&qY9kj4om*Nz{Jv{r%IrgG@lATh<1{ffeNIlX^~vi`S4^1Wmde< z-fW;RO6XGnYZ4}n?JDaPUQZ>12;+-d8bFXYs|bIl;B+Iv2FIS zulUq90V+eoE#Mb2gP-RhzsHbn1$XOd^?JlUCl-Xgm2Rbs9M99dU}s4BH_CbPUwLMK zypgHH$o@4|yN!|UQgP2L+vK>WzEHHyZrYrfE%D@OXr(0RPTu6F$4tS~Odlpwl<6-P zjJ=l2%}UG7&9RlUO)-r1dTptr({jtJ)hgA4q0UTqQLGO(IG$q#Q8z!^8`bSSwC$l@ z23DEO9K6(7{T^JHdOg8qB>@UwYiuAbMIjwTTFpwWZTeOi%i?H))5^%-vpCg zLKAd&X=@9AYwNqc0`dnkwy#Sbhi5fE=`rej^lL$zF0B?n#5OQEZ$db6+r2C0d{)xW z#_R&=XF8o;?(NW@QSDGcSnlr}0x39w#Pk%oeKpJJj-(3+#qYj-Qg%J; zdS?D#lZF48S@GX-hALp9127sT*i!;dUWd#l@EkbE z@ry*qFIPx)m}N-vdeD(>FjwoRqX9o=HlKEZs5bD12%?3gEM}!MT8;oJ$Sne$xV$LQ zVHO8ueso$KaW}`+wk06SIP?(Ji!!xsGlKIDju>}9MvDSbm^-^nLjZ-r+m9iAv*md~ z+UnBeUi|Uilcsb|>MgiVPagY2zoQQm^DM>lmVynpdVQ|6jCh)4-qj>h-_C?lhfW`_ z%HM{Qv_@M%!zpEKp;1%bBR44mE9H`wzMj(EIM)0KOy=Y3Z{eACu3Aiy>31;PzuF=| zM?RYm6Y_ge)ig&iau_Xec8|}$bt-RAW+eJai!Ngfw+_}y6kVnSa{?x#rq1OuiG8WB z-@EWKzoCgnritR0-sXv4(Srjk^kz$(*izXR$-{)k$s&*%GIKY`G} z&w-+5pB=Js2Vn(Z?EIX0ylg&#_SzHj%6qqs{nMuw@#-3qcS5fJ${yhd;=4KfnTyLD ze|cJ55z>Vjro)mtpAD8YDd}pcq0S!Z&Om02ibN)J1d-rik;Vw(aVW(LkPc|EORWvrH4z_-V)f_~>sd(u*I+E_S-3EF60%#Lf0LFofr)$9o+~Vgpx>u^vUI zt0_{PQIUh=H*a$yhggEJ-;j{LEY7i7&z7!uQ>5Ea&-ThMG5mBITq}CGOzU{wsN166 zPTM-C{_9#Qafabq(TMQ9Dhqc9qwI7PX(z?h``o8;`|&CHf8zT7{d-)3@4I;h#0w1m zN)Swb(*M4fThuAQ|F!|sLr2HkCJzPQTrW&XF^Kg}%`%8Jb87<}MfHm@LX{r`hCL{( z_EfqJV(+p6i4g~yVLW48;ppCe*)(3KA1kZFjwbqi#mDr5#sH1^;Z-c>y_gdg_svyklwXVJgu z_G9zZm=`He$Wi&4Q9D@yIPCSM*>0e?jLopb4GjxWIMo6gj%kuT=zsFxS~EKX_1L19 zLjS(-S8F7c6)xX-a>K9dL^k&tF@s@=5jU^+K{Lnh_o5U*LT*Y}d1&>MW?;IRX1$_X zWo*P#1wYgpF`ri+IZ}P&DnUxQOJW<`MR2wgM++x)w<8>7ZfKJRh{@-}0*v1_xRqkG zwkYq>Y6|>%dbQvx{h6hs=jVX7+MY2|>ni|6sj&dcIx5rH?$B|J{C4J;u8&P)eN^yB zG$LT-fu-4`e9Jz_w;H<5u|A8NkAqz+_x*|41#osIgaIj_OMsJ{#MB*f*GmBe9t?Eg zeV`JX$SB(P1>j#iEz}Ld6X+X6zK){xu8-mDHiPu^%U}FcPlX0}>L;GZ40hf>?PS~q z2EB=}A*7t}RXl47kV%Mnv?V$XS~ZQ`)=b3AsnNFWmHf+9;6?WmqT zU;xT2TfO{98@;n$P4)V82<}+$O&2fQM?y*clZYTt#`1tt`Z~v3AM}>`Eo_5Z#jMe% zVAKfLehfnRJ??Y*^BVfUcvC*5&)r-m%nQ_Zxr7&H6MT_pAa&$c(0A@amIs?mjE_f(E^U+1|J9z4_eOYv0UWh#7Rldso21k`O;T%yB4xa#&e zREZs4D(8YL>sPY9_+fOoW>f6<=aOYFi*}e5*I9|tfY?yufGr+Nx!G`Za9-rs;t`Fk z*Xr4}y)^F%HCdY@&vi97^m@ceV=Ps>;58!ysKydMhIY6%c3eN-ck@Fg@?Uj zjIg%Jn@W_8^=XDX_e;Cxx=aioiU9HZuBnBkCg`xDs|(uqpLLlUn7HbpIg~Ue4;n{~ z(B~X#Ed5p1T)%vYIBSFOjvlxxD;#!rfFiL>dw`~iT2Gg;us!YkFj}<#DA(h+)paYj zhnmfU^V>rMM^?);l$!%b^kfMMKM)Z3XGuOGv}l+H!&ca?P!hMP0PBKa}K5M zn5=G?Om#Ul?i9+WX>mk`vnf6PT?9;VL{zA+l|BPmxRYOi7!_4+ER-IBPvFt}?i-|W z?fpfM!cG69dQa+}NQyMBp!62lPa`B$FIPowb2MKsms>8sPcwnr6L8tc%^7bR76OmS ztd)HyAoitu9B1-m(3o9mb4u_lO>rhw zai7UDQOkk;2W%E=|NoE9{|P_+=Ls5o5Y9NqNX4rE;rZvR*V$hP39z&hUA((d6Xd;t zS|9L_}7Y@O+e$Hy~rt; z!t)9cNL&WkoDfG3@+Wmc`UaY$#3iDhd`K zumQP4TsX^MtZ64fMn}o(&8dJgdDt`M=$+x((L3*B%LM!o#k9$Av>wf+IEWr%6NA(? zF&0v}oUwq3`v=InmRv?0!C~u{c1ntW=(|Xhq%xMl30S(?vij6ZY=sScOHsZ{H@1&B z?#u^QYENT+^C=o93MayX3g&BV=5+3@e$Lk2%y*G`nH8Lsni3@gvC4AV3CyTXWzCR{ z^?p`N$RCl{gB)t*KJ3{n$l)o@l^+t=ZJ}PX0(8)N^VG3+RU&c+5Y=Ac0n!F+3Da@H zRm6Q9kSqFE&3LQ$@<=sPBT=})3xWwapGa?UqM1+Ij~1d0S!(-3mD-5a61%RBJvcK5L!kTX?WTXiCiqh)-S3LGO*n z#qShs0Ah*x=^UO^WW#IC(EkC>{qKgAJTT>^D)k1}c`kA}831*(y7XtZS7^SDBw&F^ z@D;{cmM&Y4SAI*8$4fT|qaVN5Ek!LcAVl5J3l9OF@22zXEZ6%>a24vhQ$sB5YBjb# zSsb0~Zs1Y}4;lhQ$p(;v28GqifWbB0+4p_}DY{Gp5BDkCD z>*oY-&+yMEF?Si`d8^f2&@b!rNH8qvS_sg=S&i&Snw|ct&Os6mQ@c$n>ugSnuGMFN zH@k7KbXh*-c8aN6q8srj)xn=XHXeiew|sY(;@AnOxz&(&S;rNKF^YwbC1f;^qvK&o!r$XlZE7&`pLGnQH60`)d~xpZL#OTjCEBp8uPJ@NNoa4 zg4u3<`CI;ny>A0LAH8uXKHAUnj6UEzVVQc&I8(#8 zI9-T*ew^-u@*}l*LYm5qo{M&QV9CTl)%Pre4R;pYWcY;rfVv}IR4XIx5IU7M??81$ zUZgxMq9~lVhFm14%QCb@y+y)CA_AJ@|Gv=L8abuhew*w#X9g6Z1T?qGSVC>P+~^f$ zy6?EzN)O_?LsD(Ny_Z=a~s&d$c2xdia&+^HhzsydL&=BaLm=fB!6tnw); zKe0oKom|R`p!p^8C}@dC=mb{?MzVno)Eqxc_(1z0-nyC)RN@L&(BGpQS;7tAR_A;GW96 z|IO=wX|T&JSf-a_?Mw)EvJFg}3t_i11naR(Xf634{v@LbVPs=pLq^0fs zV01G3D^7yRlNVGJ(I;w}9&Yos>1l~^el)t%0xB$^S5UadJ0RUzJ|LqfFZwJ;GO_0c ztDRvoMlY-AQ9P2_BkUgc-SkIKJ%k2Jx8mn6RJVD-cD!NW^3> z!Se2r*p_Rn>Jqf}FnA3Mso#9sM}JDz4hcMMXr26jXnXIdCewCbSjU1iQHpdTBGP+@ zNJbq%K#25C29Ykk1u0SKU8zdTAOxgFdKH9Fr1utTLX)0Q1BA?ZX5RPRXYaN4-e<4# zeP{7U7O)6;lIOm!`?`Lu#$txIVobCg{UBlimXG6Mz=u4U-n??uBbcQi}aX=89l`wxQdxX!UTV@yG`%+@XCQH5EXZ09c%r zf!eUlytIt1OQ_C{sHG#&r%PjyRmP^)gOb2c9UlV)uO?&!LeN8ScLF+s?gduTTijxp zweaMF;p$czxbEN*8Adwd2r$j;6e$>3Ct0*{>IXKVsWD&LUYuFBx{zXv#j?DezrdAElc}ZTAt|%ic!b>EsH?BKnD(Gei(by{5twse)q|b-jLXDq79vXLx};~3&B41{28K66YN45( zG@zoxZ0?pbN#pxnVcR*9_+np5Wd(DtG8{V&_ZI2`0%=Ik=(Zf{v3j2mxJDiq2wahv z3%YqG=@}WtrS`T54hubKy{*_)6-M~Pz+gv;n`KDX4}AyEf{6(l#0%3%W>uV)z2Y$l zOK~2gVSHYs?S2g4I(NCl6n3L-gH-3Rf3Bf}!gg=4x8O^J4%li|5i@R=+~6ZyLhW-X~Kepr7SQO4Uze zz^Z-m9?Nw$jTt$vj91t}g<0;$G$n$EPTaq{Pw#Y^ReO<7Hdwo)aCF>e`e=hUq&o!+ z%J_`oRAD3M->cjN%Z?H_e-N3slz>J0grP(4xYv4!IZxQv_H?6w{MS?kIIy*u?D@>Q z;O&c+K@4Qxmih!29S!_%Rpfgl1@{86epMi3K7zvbvsNCP82jl(;w$A?I7~l{IFhIO z;GHZ}-@Z>Jf{FaAbGfZ?xk>7vp5@0n(VI-u<4Hw9^4GJNi68Q}^OQ->BhIlfD}z+N zvpsI0h;9?kt_*jr1~H_2EI8rs(8v|pN(M1;@Z2M%Ms;>2)+BJsFE>x!j{5GgUYq)K ztkW*lI}5!z0+=;R7nf(Tz@`v0$rSpXi?kND&O#ShH7F|R$+xIDCWF2-jZXCq1-5mYT~@N;}xO}>-9S!c0x1{AYLn*Bs>6hI+mZ z_0-wMdX5~pGoyUnUVd9ku3D?jnAc$M@?L3-3lJ8LFOGMj*Vhl}70EOm%F((V8Z@^t zO#xQ?(yTX-SOfJe!ebBwj{V%g;#Gg|@ z>vWkd{91y?AIa5s6t94VBkWb*8byOIL76X8oRI|c#7IzeA^FY_<>rlV7jIRmtrQ99 zZ5(dsCRwI#(pM2J4!%t&Y){KzjSS%pdQED;H@V8MQf%>1mT8jt-6V789MK7|(h|c} zY;dMt{nro9Q`#oIncwn!a?-2IQ+IkB%>CWXo}_xO4iE>yu$QUQFu zv(9|nlfUC6hn}!jXd3|B)f_$w#5tY3jTXky&yzcM15JIAjHF1tcsce}g+lGZ`+N4M zmQ3H4efIRc+Ugqwd-dYJrE1U|`%&(vYUVGCi0DHXph@7Pdt(U)ZeBs7@pD{y=e~4) zlW9cr*#1={>X`0vlGA=I ziZGAWbJm>sxh&Y?dhaxy*V969hQIIS4s$ZHO51|pNu{& zyUYDUE2FD*%4CL)akV>QyRaRYjB{6Y(liPB5P0L5N>;< z2Lf#j(FhiaBW{yr6O0Rxa5jWsuhG#IhZ#J%7%{-K^06lwAYluQZ>+sljyz%NdWVRDhn&9*|`hUB9jS z4*30fY1HuC@$^+4>D$rk*8_o5+DR`$k=FTMH-0{S_^aZNr9(czui2E+TGm>AQje{3 zO&%$1Y{YIJzb+danJJCZWceB2Z?3Cf2qgRdHz+jm`o~zkr3ilkpPkxr`ofOmnkE2)P zL`nm{bIPcWfv%X|nvQJNs+fi4Cb;BNm#etxpO;>q=_cm?%yoM07n^UYZc{N@ zohjm~pj#Q$^z=n_MO6%~3%oyJSD)>Jc9pzz$9OiiV2PR_s#2>bD9I|Q2tzg}q#sW1hj}l#c?1<_492F!mhZ_0_ZjsI-fqy(O;Smcs7$WJO{o@{DNL_)-+|L| zVcUZ6N{;kn*{?HUP6mB~c&UcGHsg4j8sd!4hT)(W*64tv9xMwPr&1r!o%G3;F|HGy zJS#xje)&#p(qzIQTv+DZ=@LFPb?Ek}H+p4a+|xW$EbZx_D{aeXo@>FEr^Tj={YOt zic5`^(*7I8oZ<|Wk1y9KvWPZyguTRD>v<6;^b+)w8MZ^V2vK-2qmM z?p%{D)P0^)Q#tc{4zF=oo^B5N3ne9`0tAqZb!qv^8)nzbh_K7aBOVXW-Y83)>9F*% zfPDG$4Q=~am@lSL{)DcP(ViM#wt_s+;k<~5Q^BOMrjPNIT_L_Kkk(N0f1-?I_<(pd zG;6!$zAZ<{Ilw1&x!)2su&i!Gyd_hkz$U7)fE)nIpIA48Jt%|maKEy;nV)wpZpeGiL5?diLfTPRs$=bRP$9J|p2OMl z<10}v;-`cMh6FeVO9j(&usAPXv@W9ZboqcIVbHpdJ`&~h!t-N9R&FF_%+*`hvaCUY z?Xgg=m!`NoZt*z!q7dSQCW$C?seB8>GsKdG2(e3rZ^Z4J#!ATsc#(M8C6n(^y2T!^ z;|yes@6~WLK-QNrsj5rEE}jdh1N$!EsC(lOag}7DHNu;;(05VSLjb8S&h+7QZ92FN zvPL@B*~@5r4lFlau9Lbu=zKxW8>?WYuxx*Au^+rq1MZqJP7~nl94*mNqo9aghezzDxE1n0nY$g)cW%hmJ_cr zsu6{|VL<7{#j%7~bKtl{iAg^yXL?bVa$xT^@1k|~9jJ@o#E>`q;)PU^0oB`Hf})VY zcjTeTq25I_S>ii@;zqY51zBk@#hq1l*;_KTk$&oh3m%NceI=XVS*woW&#qB-VmQ+Y z6F2lw#wlB)_}2@AUg?!&HlPqd5pBOAmU68{>PSQ9<|IJv1)&d8DM@XN>_l=FOvnvI zD`Z&pryWF*SqRZ?)nSCRoZ;e5CnvP#Ql^T9;*$Jp?m1~4S_Hq{0>~51FWO+E}UvQm=E2A-flr6egl10)iA*z z^G>K&EbTH@Px46!j9pl-q6~dZuCZTHCzroAZB)>sgfADL(I%J0MY_DzMI^iR&=$9; z5$cdi1ewv`So|U>A-x<3Df(6iq?ut~ck+>qNabk@;>5==_5Swr$78#{LupBm4aF+i z!4kO}>3SG0sUClYlrmVg$6jQ!2u80E%wqv%O$c2ND6r3s?`~{rOer=jD6+Xf>yko;HC%q5G@FafS_c@(tA*!>t6@iXrlC zzGG@WN*G|Rv0Lmz+95vYVZFPrda{6MnYO=|KMzCuSGA;%eFn&&KM$K0VE+!88KwZ^ z_@%F{1a)^VprJPdn-HXl5H}Er(yw}%1j;An9s=tb@W5P#N33^PD-i8=LSdvn10pkw zF^Fx0KOyn+Ppocyp(bjPTT;Br*Cm+K#b2sJp*q0m+q#f9BK)y1S8ZL_T*Em(YYA_g zmQIh5S{o*{JSpVNc|cP~upnoyQJ{aQy9$s7gut7H!~k$0^5TmHXRIx5?Tfa=V4D#F z7s6=asUM&+V{uu#yw}(Hu|n*ZQ+Iwg-BCBm6)o1)nDl$cPIWAOjz2%p(reBLoBGTr zxuq~0?zlPl+i|CsmnJu3oivEhV{2eZUq$jD+AI-ni6nvac*N2lusba@z+&KBTBIRs zk^+cOErLsH%%7JW(UGbmb%eoIyqJZ40yGB8zgjaH?~Wg$vYa=Yb;;ppJwUv2W`)@4 z&=}^WX#-!qqp@q%%VM9GnNcoYJxWTC^@3{SQZ8n+;u@S9pKB_Ah~s)Vy{{#9zd^|$ zCBRu-A=b%TO;g<~a>t$g=oFCB0hb_>B>~g0AZrl+UVs1bag219nBbtE+gWG5sxdHn?J>f>t_f7{%gEx@*IzHx z)fGvTPF3t3IG-e)mL`YePsNW+^kWlu6oCc<0=ASvl0+qTe$(BV0Wlo$k{zzDFVFC& zKJD{7uzQ1fmA_?Zy|-t_!g9^2+*&I!?YU-;9GhU5FW*ZPt)RE2SL6hMZVqMKsnk@K z@`E|~Ri`G6jyUgVZD<@DP;LMK(N&9D;O*9)qYP(stoQ#VzM9u{C_J zSwJDQ8g``ze_kXztD;Hah40d9A#QD|ik`a_ep%Pel23MEGyAaEE77P|sbh8k+&_GQ zKl6CZ4!(R@AXd3=KhC{r5%@JG#`9f48FOZnlViGqXz+Z%s~sV$suP|MfBfe(!T$BrfKmT8RbsBa__`1^ zI;-m*U=CQ5uo)n}b==?mmM@-_y?p-BIbD2k#9TY|e85~UBmJ26x!d34ekvUDV5&~H zwGT{ld1K_8@#N-CuxssJS#47#q(AU@y(&f`5yY{L3XBa{pK5l857+Hpt64~1M&8EG z^xS%*2}$Q3$VB09=tJj_vQ`#4!oa`gzM!g)0IM8+I#VHD=Y5|0rbji^QYww#f+me4 z$0B^0a%+%3vh&Hg3TIrdz7$@x#{dq#slXmy7!__Q&q@!wOattQzqQ)d$}n}qDpigX zN$$$!&GjzvlvMbubYTn-{GmV{fd^4Z&jH?N+SqPT#PPV)r#VkZ(*W;VO#7`I7>qT# zeFARTdcg`nFU%lLN*|=kKhAsuolk^*PYlaAoJ!KF>htz2hEx68RG(osE|_7GV@CT! zk3Dfw%>#!RhTZW>eGfxMil#c+$iGG-FS2kn>hx2G8L-K6aid8tTKxmsvU!(3%qDDtj!RmWt_ zz}t5VAYMr;T9dsG7YC(A*UG|wD5irul;4LXhbbyV+G3{74uY*wid|{G;ce}54^a{> zY+Z(%=jP>~E`%>9P+ju4v;*6aqGaYLX^QZF)_&O}R(p8-=y2LMAX9pEYFnSV`ZsRWxp&c?7P`SC~ za{jsC3x_=!+m-lj%N=nX?`@go%uyG`xWB&& zw7$7PY8Qn$)WMvJ4?^fKs7YGs>=(K$IVznuA4IsMy=18>PHyjJ&jwd*o(iyd*1pE= ze9c*uN~c{p)foSpQb{Lqd*x>S0mI?R&+hZv&1OVf`R~Boar8X8nB?#w*e?r*gHb^x zhRBb)m%bhp3A`PEze_((q$Y^d-hPB5>QRQ!T}p#|4A$R7)mbACzI56^o&a87AQIpD zj_tXn6IO0z5}-yy-jpG{iv$uw1gD*ewWYoyj=W8iWGVu7e}C|x<18)L)!l|GV|84W zhp^S@hV|hX*p?S@mpJ9`W?xSLY3@pQkiwT4*w)P^ZQ@Z}GJ`T_+VphdCTtBhmAlNi zEPgPLUW#2s)~4}Uf<^i&yP=d~X^8Mm_$Dca)OxrV6Ox2{44awwPD;E%rd!%&?}sN- zi~d$jV2GG*gp+k%b>G&CtnDJ@;*D*xE~%swm!>{P6oxg?KqDCWo=(#eNHO;Wgowp>yM;GEoP{ z7kTX67kMfj_zi<12B*;WrO(S+kldqVs{I@Pd8PO#q5S{;0W?%c=DrIYx2{4iDwM8V zNG$QLgm0Xyk%jKRtc-gvdEKjfm1ecpsBNZ?%mjN~=X>FnQ*3JN=Y!ZHvn~`gp|^aF z^bZjv`MKM`a{#m`uNy$tHWOZH^%pKcK+gO_k^Sl|FHmXdN#wN(y$fJg2_dO$1agY8 z4jj4r`<7JA7L1ULMjOtgb8*X)7 zoVlVE2xT%20>|?c3ll?bZzOLvmgSV-vhS*Sy5iA{K@g6i=u$c4)%lIrb!5@jNFISn zu$-?`scLvW+}{i((o?PucYSI|pUYp#SWj}63L;k@`9&DSnDJNJh&mX@eNOh71)?K!jpXeq8%CVrg;C{AZffXQwE0CyVi2VC(--QHgxB3!QnMtN1nfajGtnk8kU&hPYxKd%O(aGXKi-IL=%f8#wfG z6dI`Dzw4Ce?=133%w1g1uxM~ko!VPIy~a&Uu*k7&M@cE8U^e+n_Cirn-%=}9hQi=8 z3Zlzrj{; za8RLAk75rFJ_oj-HYm`JwLofGF`)1qNg_Ii0w(Jakx?0diA?+agBh|CArKdwx>A}k z6jj#D``JPvvKfQ}(QoLf<}M>ao5oYv<`B-Y{LBuXyA$Fzb#;C#i;nqayX96Kdj3w{ zDrI{Efvsyv0_myNy9O-@#$M@I&zKXwJL5ju^Sa=njL{F28W>QfrU5Gg0kxshQ;#x_{>uT((E5@4Y$n|Z!eu)i9 z61UfRc;C_Q+YuIfc<3MabD?+ZH$w?FuNvmLhBaKEu8!Np=WmlMe{8S!?kV*&X>6a- z{KvBS@4sUJlI&5C{RG790j0n27&zfhur4=VqWD0T`shHU2hi@sRDXt9+wQO&nNWho zlJQs@I1z~bfH@5wKaNUU_+T#KU9fYm=_CUJ4SJR&RG#vS!^DKFU<7mv8@ z<@hX*m1()06G!!QvDW9^ZZ2f4Mf!PkOIpn-niIJO2>Pz^j=J&zLOMkY=0%h=Y?^7-u@q7o@R5YGcX;c$L1yEQc9Qkd0y#g$r3&PD4t4j&<9$oC#@qt zI>+&DS1(Z3x0myFSP;yW{eis)V0jih7LPe!%p9VvAp#_m?Hg5M&LU;0q+|c_m2>Av z#4ma!VP)p2mO@>4&bL`tM|5Vz!Y~lhW3)AU$A&uuXcZY*>m@H*2NiEi2~n=cV1nF>L`e&}ed3mZ;=D=6RQAnt*D1S5ShH zN3(WVy8|i61T3JZrP!zxCnZ&l4Vf4a^xoGXw-L@tHwh*;1I;VTj1#Q1sr2*Lh3Z7< z30|>YVfW_*9(%4iS%WK_iQdSKV1xwd#XpafdJ}RY4>@(leS_8EJ3be}U3>bijj6Sr zt`4^D`~&0r6*$|78#x-bBZfH>1Myup`(z#oP)ufF_;*~%vXo4myYX?gi}JVw!-4Hj?eGpFRWuKuXA8epjat&E5s@a(6u!n~l|4Q{6lNBFG?AQs ztouM#M7=Ux*t1BtOgJf92y^xnefS1&@cHFGhr|BEBJ4qugwn|@5ZutV$WrDWJxLWx zN7lF~@SV1;BP3$9vrV%l+M@&M5?SM01i2sB7H#BkRnU~#;C^xpb*M^?+gFUqo*o7Z zZvw6i<_eJ?J*TdE_^Hr}O9iy3Fp&M<6Ly|)bM48+{l5O>8dS2otCsd&-bbT2kL1A$ zQ}Co2kZtG9rK*+_tRLWu*hc0F48yt>QKD&f?c`r%pKd<-WOZs=E!0 z9y4PlWaA08$;6@h|GZT7)pYK<701`JS_kB+G!hI++zUfiIqaZ-6{F*XEJ)`9Yu_4on! zRJ@GxaHj*?+(C@z+>=a$&ULmqaSd>6gp^`X=4HyX$9g34(cVk|MzKYrKcm0dd}zPf zP{h+O&_oO{r6H};LfNe_Lb#xoEb0Eb@Ota)*C}38=_`sMEI5d8zs7tqi0d2h%E?? z@v!c*o>Z^Go6gA|XC$Q6$;{Lhwui94|(J}6Tl!Qg#ws(Fg1DP6mp=_g9}+kf_7dC2t_|Bt7_|8~Puf)Ps_ z45yD7b|TYeDW3?e=hG142N3NIW8qTur>7yC={MqLO(RA#TzjV|+!~)-V(6Q;I7Qs{ z_R}$I@J6dIv-7_pJ`C*(MU7S3I=qkwO0{;%TkMAe{t!#>-j>7v-n*4 zgO}u`NXo_!q42xL#uH6VvgzV!I@bH<-qt22%~`<{eQbf`b1~&b<6ZJXtd3}{x%F%V zB=Y3u$A7YKKtS{yS+4e4m1jMYdSUj47*e3!EWv{u#E##e$ z8yFN|Y$82b5I^n=NQ)>O&VFO?C!NZ1$(sC=sPc{5aA?=-iH=I`VtC~yObD;KT6Vm< zCstO{G_h#)TJb}VowHxWv2in#-&FdXi|c1RT0p>WPht%Mgcq>$o|~DvBx?{dkNYpO zz*e|{6Z-49MAmi?6NSqqjPp}a)cOcn%7zGehM#`?GGoy=8a$QCS1Z-cm4MaSP;hk> zQ>xLgO-~vnrdwzUJycqLfKovC3C|U2DizFUIjd@_Th=0)BfrTh-T&6>o@R|EFi_}# z>+~!!x1x-LYWLnA>d>(Nd1>sB;SJ)Z+#>T9NA}0GxsN+w81cbg`y>a;_%P>}$yG8f znm_CFg3YzjPd0f_g@Hy=fLwAlta+srj}|k@&fiQ#W^ASM3*4Xes%zYC5M$vV5K$b| zxBMF0Dm$Ba3{0!99s%#LF{Kkhcn19iMp8L8Bw6r;myr?{CP6$wrbJgfsRV!0@x*~Q zV{{s2FQ;o+$m4&t-*8C@`SyffuJ2Nhh17GqqrdbxYC;j=b5*elX! zEQm=PXmQ&Aa!{SDr^$aKKPiq;JB@nAqQn*XIVJYr?$-YV3Hh&?3}h^1DF$*Iv4lh4 z27^AS7xU@fo_{>C;-^`Dn6EjaVstOX_|8o6^?jr1#NiL#?j-L4*^v-!Rw z_nXnJR(nkon@7Q-2`L#dYgwCGI|_1~`z2l?ooaz4bK0rqQi$|vYD)ILQA3Q?P9boN|e@2%vfy4=^WE+RDZOt zVxH%9QB;~Adz3*tw|PY9-xgZXbC4R{rHJzA+OPmaJC5YSu(jtX;hw2*<(63%MJ>Q) z{Y)uH0}L8_avbJi^-4}yR;GosM=`DCo{>=FG<-!>(31zIo2tybaZZ!sSuZXdko~&G zNzJCH-c_bB+2@OtQ&P+R@HY*rm(R1(m?=Y za^RjK^H(iCadMLDc)FLgTestK8a-jN!B1C5+~-<3|IF|xHb zbY3P=34fo&G%j>gTUULb=qpS&M8|wz+A=8#%QhX3XVo>Jh@sP)6JwhVaeznu6dJ=L z3D0{!USgd7wFI(FksB;(_xN=oRczZGzGhVFLpgtOIIm#Fd*n?}f zA5=nk&VF5A++2J|xo_|6#v*`W+b$0KJZE14wAv5UB7Nq9kBp4_|JbM(8qg77(?qcc z@c|24g}`MEx=0VQTh^$RvI6LbT~)^cW-t337wAR~k#tT(q4!=Du+H+QNxZ^pW9rg9 zd?t9r_hRY_QHXUWj1zg*>4e*a|~*C*^9 zhHxx7zfYO^?^ZwXyDOj$)qBHW{#<8@08zIF1^33hzK--Qamk=GAY4$6XR7J8OwfQY z&aYFqznYtwVcQc$PZXFmn4hAu->_txSAQ`mGXG}oBRCpXY*c2RFQkvsr8y|l&tGLT z2z!y4vM$&qWYq*qAL;dqn}YNc*dM5+*|Sf2XW)PSF5O%x+=iC{Nc!C`?2Bv&aITw- zsjrMBSgiB&bmM85i;aqu1lt*tpHd83|MDhErEmqs z!RGbt4V%gsO>cZ*R2D!>5x?zb;MbW6;!6H`szIbZMI#+-OP{ zdAXxn>hR!I`gt758;An~l2bW92R$U&Ed6`a1q2ze3dK{~@xzF;A zLV-P9W3Q~0b@_E68M5p$k1T%iR(+x@o}!2sU5+6kl{>UqKCK6=DYw{se6iVcUTn10 ztD8+DRU;~XC#EpG9SAL^56{yI7xux;PCYu{{cq%4|M#Q9zt2`wNkJh^q})RC4bl{X zpgO7ouOVHwJQ;C2Jnxi)c>Lo)`hVD{{$T-1Dx}Z=$d2Ip zMJr^x7vY?Ep%>&#=v^$|&x*(wdP)yI<7t7Bf1nqEbY z4TXK2S_YK1@7-74C|>d_QUE#&W9{G4di*S0H%|Wk;D2Fy1N}qb>&C7J72b0z#>omb zKYLc&>XBLL{#obH!llVcB2&A`yo&Uf9-`BUPwV1qi*k?8=tY^Tyw#l3$P>^fcV&2b z+nIgAy~e1ACGIZ4F$wol7{_u0uFcL*o!WfDNwK+eG`oH8%~mpq5U&k3A6_Y5j#>sc zG7FX1SZP&@{9d0?>M1K!f*05phB1HHpSbWore62PEnH_HsP^>x(h5w^k~g+Cebzb%XJdQnpn)-UqBt#~9&$mW0p_7y>R1&vv)CvgJU zJ6Q6*@d6`h1h>dEV;^8`;Evy;p8Lt0DOOXNbNQW-fm@{O(8no%XV=k1K!WqWzMqPT z#CdpUdAqTOpqAYDP9s!Ip~5Tid!U&; z1`Vdrj=>O@?BRJL`^{YT^@~aA-3$it~YYuM79^bg}yAPaIsv3;X{0%RC`t$qP;-40KlmsQnu|%jP)0533!XD=vbY|a{9E(}k19>~nyr>yofU&thQXjeqF*#j%H8{zhI`*_TQJKMSUf*tR$?g; zi}bv1gfR<#Hl)x|s>(yJe%rFL?Z$mD@a}Q&e z&B63I1jEEY)iqtk(nZ;hz*i6k!l3DTkLXlX)zjx_z(A}ZTUpX@%T{Uv2t4!J7MEZV z)Pn%UjwA?7ro5N^ce=|he=28h17n(&Ycrc5S3+c)4y`_8w$ZC{aMMHg?kUH#eR#LE zS%!q5rG`6>o5nvuM}BG`;Y9BnIr%MM!GlH(ftJ8Bgvf9iQG9{K?Z;)W*_;)lRxFiL z8^;C5@w&=*8a7K~PN7~8qjhR+?r3C10^juS(pe7_6gq}c081oSmx>Vj6L~I97Vd_B z!?)hClT*Z}T`ycWCV@~3}Va}jo< z9d07?e_~ZLf3Yy#I15f~EHyr!99FOREV$13v8qZAam~J=)*)vNPF`2;m-QqkBs)j*q!Ck2%R)yimnb(qEA$egla|Q0o0WJf4(xYIgBEKKO&wNW zm9ughL(p4ii4bN|z&`~Up#UsZ7ppo-rG z&dpL3mAHL~E1D$d&iha|2Z+bop9bwWFO#--me=hNhF`2^BKbfz?HQboHcR zH4G99)8HJB#Pp9ZRwPvEa#i?MHro}4%bxlGd>gEH#kT}~%S~Byy zU+UAAEZZTJ_K!4k-?_lu(Y!Xr7SmOT^ehuLn~)D7lB)yOY;#GU4GF}~#|C+ikyM_# z_c9V_3c|P3tsKx zVUT>)oPc{c1Xk>@qVLpex?6651d7gkA|A)bY7kXV8-5U{<~$PT2;Ca(upjHPCyxs) zN_XN#28?|d1XwOoruM1HyZ>VOJZvRcBboZdqtE5Y%9Rb?o+U062vMyw%v)JBd3vLT zhcFmbRxbR z6+Spa?>yDw+02YHk*U%H@}wz9_BuI+n~JYf)r1C!y57cdFHrg{g3o)uvI(Oz)4&Oe zb3qT0a+^ABHEft1SkodsS+a$i6u1Pt{zsSw4njq8!FZnDcoAtIooD7$vf6=|C=hEg zJSh93ep~e6e!PCm@TbA|=D$d7pBK z0~aV!(RwUsTw|fj{o)N`OW$WkS)b6OagGqk^dq|GO52 zYHg9stU#f$Ah;Y;5uRH){Xv}SLNiY5NW1|^0F8+=?&w>Z%=CB&o3k;|S|Kb5^ujIx zsoz-RGGMh+STS5yUKq0<$Pl%xtI|V~xmx^Ug=m(>EBChd>)u5{Q)6t2xsw(fm|x`p zdfTdPd^J_{z6hQXC9ys988qD50YkxPZo_TbI4vWhAy`(t`wsj0?-H>HmqqN8E>S<-bSdn9$8}Jqz`3{@90Wuv#XaA zL^wL65~iP73r&=#v|?L%LOy`h&@-A#<)BcK2`^^3ewqC(eBlmZOB@}B?#lAdGAptDQ}KC>GtN8$4KXU(Bvlp?=y?Q4NbW*^zRbOTs$2fRww;8rP}=W06`Ag3or!$)Gf_ON0P7 zni&UrLcvp_k<`bV)Jv~2BBlGJ`GUAVX3U2cnDe{Ut+8@!iXwGQJ`&q*w}OQ}XBYSo#1T zVyCe%q4ryeSeviYK|DMOOw{T*Ab_{VVJN5{6RvEyR0has?k8#2HZ|1_wlv%RmG%5T z>MH+}!TA5^@BW5=ZWU5)ygj#Bd3jN_#H;(OE9N+gWU6VoM9A#B+!Lp`^3teHe$~OD zM`6s4v!*10*y!h9^;-LBAIAXtSB8dN?2t6f%uqw{@s5isL=2E)$gYA|2`b!U*4ququ2gl)Zn!|3f&;F zH8e;9xOs<3I0rnG6>fn!F`!_r!42=m%!m)dQ42b+Lg<2SMp*`@QO;;vD`iJy^|bEY zZr%_~P^b1_#Ogd*h&i!v#?}o^WIoqvQgx}ln4ZybxSW=tEtp?es|1Q3}RYQH(p(`^-vqy^n}0W80qUC=-`o?A@Ar`W|y(>dnI4j z0CRcnM7pQ2GlW54cu_ZA(F30#pNo-C_0L-I;lH=Z%VdC7&}Mz;Dt&O=d-3J) zM{brX>KyXtrB^>{<-fuzrmB%)cN#b6tzu)F!mGljN!Ifc8G>b2qIAi@;rcG|kN3ze zMBxMr=!QYZU^6c44}wy;)F6;=tu(}`(YBeoq33P1*=Qtn8Yc97RV#uQkQSjHO=j^! zx>ZB79`P_-)Glg(eYwPM79Q6{okHoya|BqR^y*=x<+kRru&oy;q2L$3QnDKkOl9GH zI2x!_7v}Q25-9x>ZmwR~1K_2%@JJ>C#B=@H;S*{YUZD+eGUQa(j)mhBHhURp;FE0p zPWNQ2(aB3i%@x$|`~xP}9PUx;BTmNJXom5NGoWS4F7O|xVPhl0R5-S3^NFRi+*+`15scmV2r z^p6P-)qy*JoO1(PAn@?(MVcx@@#$p7Ez*;M#qWK;xFT+oHJXU(HA<=Ef}{t8<4oJt z?+32Z*f|Y0>ABAer`?CqS@4n#-tWy)H&ma2;e7WxPXU50_TJZgtHlegx~xDfcqL2O@QUL z+5NPbJ{KSJx{}vTwKJ5DsF$g;btX**ewF8`O=h%DZT>aa`sdO8e?MF%0sbA=0OHoW z3euBfzF~Wk8KK_ETKS@|8CoE-(J0d|eh3PeXC3|_3btAP;d;WExdCz=ifm>aGoRbi z>vFGADy{Z*ZX8-u<%P$FFP$-535^$ZxMh;JBWUBGq@F;NHML9pxPEn|sBTXWV=dFU z-y@t-Bs2)wU>G*|N#6m}>>o_$CRX(;+O}~aB@Ly_vXyVLBe`wA)*xo3Z?b1=8YF3WhYxz2FHwyEZ@4V98y6efr| z_XeT?xz&rNww>B z7*ZziuVB5F8zMt-AUD#OI8JTgE}v2C#H38NxV3!`5 z*~FPZW&RptjM8|G=v@$X2!zYYXUN(BMefBNlm6hBZOVniG~wTLWsFz=iFDx^ZDdVx zRw7wPvpX(Z_F+$!m~xdhF^Q!1;pSGM8au|A^fCCY*Yx-(vaG%?ImN*?7Zqy^@>d( zgGjF6U8i_GG5M-}P9XD_SrcoKR@#K_xQGnV=4{mXn}*{;uI1dX-%Yx{226x_&gXs*QWYyCYC zWKAPp-BFR!@MwiI2!?p~ab?U{^*Bf1=1_5ct zl5KYg$Gu>(k`N=+ z7r@Nga_a&;c86N$EXLxJWikYRI-7WxsC%2uCZuiX6{a9L>&{lhxYM!?bi6GL%zRBF zK%>h?7tY=t8hw*L0s+YR4T>-RRc5y=&r))fzX*#JWyEr{QWI3VwN(bswPYRdzQYMqT^cI8W`XzXQyUr*_Huh;!W;Ji1_>9f%8Rc)IeKG z%hf-{wybehB|YU-dIv?;bGHXQ9sgfw3_=EoLY8OQgaCM;gxyyT{RNuJS(c_Y;Y?a3 zcgJyprG(_NES{G7Fi5n+mQ}bY`FX99H{`FQ3Qe4v`CjS0j0L75G6Vh^?~cC z?j%mhvCnYKQqqlfNRt~S+pBYGLbo2nd8Qa*BjEDDel0) z`JO!30T8EQS+p;+Jx!7wqU3~77OZx*mF6Vn?GluWq8&c}_aOPcI0n`4{``rYgpJkX zs+=kLW6O1+!~xZcBe&ObaCZ3MUk8Sa%as+$(hl78-i47}s~?~&8_rfSj?PKx%#VF9 zx1Gy>lEeeBV*CCPz01-Q=(Do7g#bY8|C`SJ$RMu2BMYnBA!h|19{_67)qZd)nkyO> zbT6wqC8*9?ZEL!onIwxnrss*TX`aT|h{TtD(DdMX$oTdoKEr{QIMC|0OLv!kN$p(q z7ltMVRm=~gEi8Z*HNTQgK5!19xoT61D5d-qjRwwEmeX@R*3>fw#nv{bEhhsEj+P+C__I!xYdXcju{I7X9wHbmuyvp~fQ!AOBof`_xFa9eiu)<59hP+jP1sMf zrk7X$Kv~p_5-W&iC70_+HLKCLg2-%sXETUO(4Ux@xexFaO@_FIJ5OtE*`wor{7x2kLmE61mi>V01d6nYLe~II#VK zfkjYNWJd{^e(<}&4G7#VIH>+NT{Mua1mwuoCeXX&EgcB@hb$`K#{2fIzve!ki}e+J zZO*J5Vj*1gY$XZNILsSRax@TPbA5#AH)-W_B0#n zo8BC0s<@uV=2a4r70Phs;T2jHX{^%}&OdMT21h7&D6dpcGVbz;a3y+C22T=StRQaD zrWWfg@j&f$$9A%9arEG+8PdVPV{Y!RO@O(pGKxO=oG2sJ}BPF0bCB*PxGkSMiW$2ycw_9pR$1 zesd^Ez>fmWK+5aWy=E1+bi|9LDG4~OA@4h7nuZc=u}4+rat5<6a4bp&C_dV zQGgvQKN9*W|8qO*(jE@xKcTF$|1&>k@v0n}eGW=VUk=(KL>rUkK2^x}&Y<5r>a()G z@HSG;jIOhiJ>1d_(wYtoq)Ecb%h5dWGa|hMo@xp~G2dSM?1g0k_P!3At`HTyy0tf7 z_KyhK=0}S8b-m9y0L&%ZX)UIgh_=9rB3=_Zgg=vpt&QY6AKXSFVNTv2*@-U$?qp1Q zE8DF}`Zml<;zRq>)Lc6umrjMTy!V#=Z^IIj=leS}LS#Nswnz_`B|3#H&0B!{#stLW zj_XvJiTVKn8`#!&ejJe}!aw=af?Gp|Wpiy?%Q*UHklfCWNAFCPSmcd-MUAiGRoUZa zQ{`LsTl!U-Cp#Z$ev2dvPl|HM(jJu~{OB@e^3)LyJ*uaqlR@?r19@CT4au;T)Y`cq zIQkPqdE6lmfA~2Qt|GuekmN&JppVJD{S1Y{QfBXb0UAi{vGm!#m zFZAaw+t;w0>6gAdTV-#`XV(4TiR}bx#8|?OBOGWKP`+tiH(mSc;rkwN@K-}a#55Er z5N)Li0@{OJjb!Sze0H^YkrkjhX@_j|;){fUrQ6Qthi`vMKj>`!|LP6?$x8dr$JW0v z6IMJBVvnJ6O@D@x9xcu|Yl&)Q6;YOt-cU*qrIb5IffT!Pdjt29tvrdk+PK#)_&hln z_y#tau!h?T9@6?v*Byqp3I6W%WCG~^w9z;dM_iR_LJsAZR(F72`ka5O?FwdCj{??wt&U@>g5PItRO>pEqQnEZJ} zBt$ON_*2aU)tToF?It|D=k7t@(uO!so&t$hJewE}zq@Qq7Ky-U@}c3zi}oDYJ86C< z$$?^4zlBIROkfv@|6K;}R2Y95!E;TKb+>+8$c9&m( zNXzCofJoXvMh*f8d`jL14i-+O9SK8{NUu?p<*Z9M_C<2UkxHuVEXB0vxWU)XRZD_Y z-5#V2rU}7MhKG-hNywAJzS529mcSUQSgGx%dURw}{cCXGZ#wR{5sa9sZJP9kF#T6$A^9idsph3qv>d$tii9

Z&un>X()=;BbaKUyZC|rB;cVrf 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

-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 CtoM!p literal 0 HcmV?d00001 From 191a91caa251b1cfdd1937427e91b6ae805aae61 Mon Sep 17 00:00:00 2001 From: Simon_nimbus Date: Thu, 28 Jan 2021 03:08:53 +0000 Subject: [PATCH 24/32] imported math_special --- src/USER-MISC/pair_wf_cut.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/USER-MISC/pair_wf_cut.cpp b/src/USER-MISC/pair_wf_cut.cpp index 02a91741cf..68747272c0 100644 --- a/src/USER-MISC/pair_wf_cut.cpp +++ b/src/USER-MISC/pair_wf_cut.cpp @@ -23,6 +23,7 @@ #include "math_const.h" #include "memory.h" #include "neigh_list.h" +#include "math_special.h" #include #include From e3cc058c74b67d0fee185b6c2e0ef4ecc623216c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 28 Jan 2021 03:43:56 -0500 Subject: [PATCH 25/32] reformat to have shorter lines --- doc/src/pair_wf_cut.rst | 37 ++++++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/doc/src/pair_wf_cut.rst b/doc/src/pair_wf_cut.rst index 4236c2cf51..3547522157 100644 --- a/doc/src/pair_wf_cut.rst +++ b/doc/src/pair_wf_cut.rst @@ -25,7 +25,13 @@ Examples Description """"""""""" -The *wf/cut* (Wang-Frenkel) style computes LJ-like potentials as described in :ref:`Wang2020 `. This potential is by construction finite ranged and it vanishes quadratically at the cutoff distance, avoiding truncation, shifting, interpolation and other typical procedures with the LJ potential. The *wf/cut* can be used when a typical short-ranged potential with attraction is required. The potential is given by which is given by: +The *wf/cut* (Wang-Frenkel) style computes LJ-like potentials as +described in :ref:`Wang2020 `. This potential is by +construction finite ranged and it vanishes quadratically at the cutoff +distance, avoiding truncation, shifting, interpolation and other typical +procedures with the LJ potential. The *wf/cut* can be used when a +typical short-ranged potential with attraction is required. The +potential is given by which is given by: .. math:: \phi(r)= \epsilon \alpha \left(\left[{\sigma\over r}\right]^{2\mu} -1 \right)\left(\left[{r_c\over r}\right]^{2\mu}-1\right)^{2\nu} @@ -40,9 +46,13 @@ and .. math:: r_{min}=r_c\left[\frac{1+2\nu}{1+2\nu(r_c/\sigma)^{2\nu}}\right]^{1/{2\nu}} -:math:`r_c` is the cutoff. +:math:`r_c` is the cutoff. -Comparison of the untruncated Lennard-Jones 12-6 potential (red curve), and the WF potentials with :math:`\mu=1` and :math:`\nu=1` are shown in the figure below. The blue curve has :math:`r_c =2.0` and the green curve has :math:`r_c =1.2` and can be used to describe colloidal interactions. +Comparison of the untruncated Lennard-Jones 12-6 potential (red curve), +and the WF potentials with :math:`\mu=1` and :math:`\nu=1` are shown in +the figure below. The blue curve has :math:`r_c =2.0` and the green +curve has :math:`r_c =1.2` and can be used to describe colloidal +interactions. .. image:: JPG/WF_LJ.jpg :align: center @@ -56,16 +66,18 @@ commands: * :math:`\epsilon` (energy units) * :math:`\sigma` (distance units) -* :math:`\nu` +* :math:`\nu` * :math:`\mu` * :math:`r_c` (distance units) -The last coefficient is optional. If not specified, the global cutoff given in the pair_style command is used. -The exponents :math:`\nu` and :math:`\mu` are positive integers, usually set to 1. There is usually little to be gained by choosing other values of :math:`\nu` and :math:`\mu` (See discussion in :ref:`Wang2020 `) +The last coefficient is optional. If not specified, the global cutoff +given in the pair_style command is used. The exponents :math:`\nu` and +:math:`\mu` are positive integers, usually set to 1. There is usually +little to be gained by choosing other values of :math:`\nu` and +:math:`\mu` (See discussion in :ref:`Wang2020 `) ---------- - **Mixing, shift, table, tail correction, restart, rRESPA info**\ : This pair style does not support the :doc:`pair_modify ` @@ -74,16 +86,15 @@ mixing and table options. The :doc:`pair_modify ` tail option is not relevant for this pair style as it goes to zero at the cut-off radius. -This pair style writes its information to :doc:`binary restart files `, so pair\_style and pair\_coeff commands do not need -to be specified in an input script that reads a restart file. - -This pair style does not support the use of the *inner*\ , *middle*\ , and *outer* -keywords of the :doc:`run_style respa ` command. +This pair style writes its information to :doc:`binary restart files +`, so pair_style and pair_coeff commands do not need to be +specified in an input script that reads a restart file. +This pair style does not support the use of the *inner*\ , *middle*\ , +and *outer* keywords of the :doc:`run_style respa ` command. ---------- - Restrictions """""""""""" This pair style can only be used if LAMMPS was built with the From dac0a685e108d00c7b83f54165a5d9f599c750da Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 28 Jan 2021 03:45:15 -0500 Subject: [PATCH 26/32] remove dead code --- src/USER-MISC/pair_wf_cut.cpp | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/src/USER-MISC/pair_wf_cut.cpp b/src/USER-MISC/pair_wf_cut.cpp index 68747272c0..4f03f2a66d 100644 --- a/src/USER-MISC/pair_wf_cut.cpp +++ b/src/USER-MISC/pair_wf_cut.cpp @@ -66,7 +66,7 @@ void PairWFCut::compute(int eflag, int vflag) int i,j,ii,jj,inum,jnum,itype,jtype; double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair; double rsq,r2inv,factor_lj; - double r,forcenm,rminv, rm, rn; + double forcenm,rminv, rm, rn; int *ilist,*jlist,*numneigh,**firstneigh; evdwl = 0.0; @@ -109,7 +109,6 @@ void PairWFCut::compute(int eflag, int vflag) if (rsq < cutsq[itype][jtype]) { r2inv = 1.0/rsq; - r = sqrt(rsq); rminv = MathSpecial::powint(r2inv,mu[itype][jtype]); rm = sigma_mu[itype][jtype]*rminv - 1.0; rn = rcmu[itype][jtype]*rminv - 1.0; @@ -323,7 +322,6 @@ void PairWFCut::write_restart_settings(FILE *fp) fwrite(&cut_global,sizeof(double),1,fp); fwrite(&offset_flag,sizeof(int),1,fp); fwrite(&mix_flag,sizeof(int),1,fp); -// fwrite(&tail_flag,sizeof(int),1,fp); } /* ---------------------------------------------------------------------- @@ -336,12 +334,10 @@ void PairWFCut::read_restart_settings(FILE *fp) fread(&cut_global,sizeof(double),1,fp); fread(&offset_flag,sizeof(int),1,fp); fread(&mix_flag,sizeof(int),1,fp); -// fread(&tail_flag,sizeof(int),1,fp); } MPI_Bcast(&cut_global,1,MPI_DOUBLE,0,world); MPI_Bcast(&offset_flag,1,MPI_INT,0,world); MPI_Bcast(&mix_flag,1,MPI_INT,0,world); -// MPI_Bcast(&tail_flag,1,MPI_INT,0,world); } /* ---------------------------------------------------------------------- @@ -372,13 +368,9 @@ double PairWFCut::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, double /*factor_coul*/, double factor_lj, double &fforce) { - double r2inv,r, rminv, rm, rn, forcenm,phinm; + double r2inv,rminv,rm,rn,forcenm,phinm; r2inv = 1.0/rsq; - r = sqrt(rsq); - - r2inv = 1.0/rsq; - r = sqrt(rsq); rminv =MathSpecial::powint(r2inv,mu[itype][jtype]); rm = sigma_mu[itype][jtype]*rminv - 1.0; rn = rcmu[itype][jtype]*rminv - 1.0; From ef351bc9a6aab0bbc1b06ebb5b7f1fae46e28b01 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 28 Jan 2021 03:46:09 -0500 Subject: [PATCH 27/32] simplify using the powint() function by importing the MathSpecial namespace --- src/USER-MISC/pair_wf_cut.cpp | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/src/USER-MISC/pair_wf_cut.cpp b/src/USER-MISC/pair_wf_cut.cpp index 4f03f2a66d..daa88bc822 100644 --- a/src/USER-MISC/pair_wf_cut.cpp +++ b/src/USER-MISC/pair_wf_cut.cpp @@ -21,9 +21,9 @@ #include "error.h" #include "force.h" #include "math_const.h" +#include "math_special.h" #include "memory.h" #include "neigh_list.h" -#include "math_special.h" #include #include @@ -31,6 +31,7 @@ using namespace LAMMPS_NS; using namespace MathConst; +using namespace MathSpecial; /* ---------------------------------------------------------------------- */ @@ -109,13 +110,13 @@ void PairWFCut::compute(int eflag, int vflag) if (rsq < cutsq[itype][jtype]) { r2inv = 1.0/rsq; - rminv = MathSpecial::powint(r2inv,mu[itype][jtype]); + rminv = powint(r2inv,mu[itype][jtype]); rm = sigma_mu[itype][jtype]*rminv - 1.0; rn = rcmu[itype][jtype]*rminv - 1.0; - forcenm = 2.0*mu[itype][jtype] *sigma_mu[itype][jtype]*MathSpecial::powint(rn,2*nu[itype][jtype]) - + 4.0*nm[itype][jtype] *rcmu[itype][jtype]*rm*MathSpecial::powint(rn,2*nu[itype][jtype]-1); - fpair = factor_lj*e0nm[itype][jtype]*forcenm*MathSpecial::powint(r2inv,mu[itype][jtype]+1); + forcenm = 2.0*mu[itype][jtype] *sigma_mu[itype][jtype]*powint(rn,2*nu[itype][jtype]) + + 4.0*nm[itype][jtype] *rcmu[itype][jtype]*rm*powint(rn,2*nu[itype][jtype]-1); + fpair = factor_lj*e0nm[itype][jtype]*forcenm*powint(r2inv,mu[itype][jtype]+1); f[i][0] += delx*fpair; f[i][1] += dely*fpair; @@ -128,7 +129,7 @@ void PairWFCut::compute(int eflag, int vflag) if (eflag) { evdwl = e0nm[itype][jtype] * - (rm*MathSpecial::powint(rn,2*nu[itype][jtype])) - offset[itype][jtype]; + (rm*powint(rn,2*nu[itype][jtype])) - offset[itype][jtype]; evdwl *= factor_lj; } @@ -236,11 +237,11 @@ double PairWFCut::init_one(int i, int j) if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); nm[i][j] = nu[i][j]*mu[i][j]; - e0nm[i][j] = epsilon[i][j]*2.0*nu[i][j]*MathSpecial::powint(cut[i][j]/sigma[i][j],2*mu[i][j]) - *MathSpecial::powint((1+2.0*nu[i][j])/(2.0*nu[i][j])/(MathSpecial::powint(cut[i][j]/sigma[i][j],2*mu[i][j])-1.0), + e0nm[i][j] = epsilon[i][j]*2.0*nu[i][j]*powint(cut[i][j]/sigma[i][j],2*mu[i][j]) + *powint((1+2.0*nu[i][j])/(2.0*nu[i][j])/(MathSpecial::powint(cut[i][j]/sigma[i][j],2*mu[i][j])-1.0), 2*nu[i][j]+1); - rcmu[i][j] = MathSpecial::powint(cut[i][j],2*mu[i][j]); - sigma_mu[i][j] = MathSpecial::powint(sigma[i][j], 2*mu[i][j]); + rcmu[i][j] = powint(cut[i][j],2*mu[i][j]); + sigma_mu[i][j] = powint(sigma[i][j], 2*mu[i][j]); if (offset_flag && (cut[i][j] > 0.0)) { offset[i][j] = 0.0; @@ -371,14 +372,14 @@ double PairWFCut::single(int /*i*/, int /*j*/, int itype, int jtype, double r2inv,rminv,rm,rn,forcenm,phinm; r2inv = 1.0/rsq; - rminv =MathSpecial::powint(r2inv,mu[itype][jtype]); + rminv =powint(r2inv,mu[itype][jtype]); rm = sigma_mu[itype][jtype]*rminv - 1.0; rn = rcmu[itype][jtype]*rminv - 1.0; - forcenm = 2.0*mu[itype][jtype] *sigma_mu[itype][jtype]*MathSpecial::powint(rn,2*nu[itype][jtype]) - + 4.0*nm[itype][jtype] *rcmu[itype][jtype]*rm*MathSpecial::powint(rn,2*nu[itype][jtype]-1); - fforce = factor_lj*e0nm[itype][jtype]*forcenm*MathSpecial::powint(r2inv,mu[itype][jtype]+1); + forcenm = 2.0*mu[itype][jtype] *sigma_mu[itype][jtype]*powint(rn,2*nu[itype][jtype]) + + 4.0*nm[itype][jtype] *rcmu[itype][jtype]*rm*powint(rn,2*nu[itype][jtype]-1); + fforce = factor_lj*e0nm[itype][jtype]*forcenm*powint(r2inv,mu[itype][jtype]+1); - phinm = e0nm[itype][jtype] * rm*MathSpecial::powint(rn,2*nu[itype][jtype]) - + phinm = e0nm[itype][jtype] * rm*powint(rn,2*nu[itype][jtype]) - offset[itype][jtype]; return factor_lj*phinm; } From cd6ebec652d2259de47d98bda45eea5f2c94afea Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 28 Jan 2021 03:46:46 -0500 Subject: [PATCH 28/32] fix incorrect data type (double vs int) in restart and data file handling --- src/USER-MISC/pair_wf_cut.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/USER-MISC/pair_wf_cut.cpp b/src/USER-MISC/pair_wf_cut.cpp index daa88bc822..d29ae2a4fe 100644 --- a/src/USER-MISC/pair_wf_cut.cpp +++ b/src/USER-MISC/pair_wf_cut.cpp @@ -275,8 +275,8 @@ void PairWFCut::write_restart(FILE *fp) if (setflag[i][j]) { fwrite(&epsilon[i][j],sizeof(double),1,fp); fwrite(&sigma[i][j],sizeof(double),1,fp); - fwrite(&nu[i][j],sizeof(double),1,fp); - fwrite(&mu[i][j],sizeof(double),1,fp); + fwrite(&nu[i][j],sizeof(int),1,fp); + fwrite(&mu[i][j],sizeof(int),1,fp); fwrite(&cut[i][j],sizeof(double),1,fp); } } @@ -301,14 +301,14 @@ void PairWFCut::read_restart(FILE *fp) if (me == 0) { fread(&epsilon[i][j],sizeof(double),1,fp); fread(&sigma[i][j],sizeof(double),1,fp); - fread(&nu[i][j],sizeof(double),1,fp); - fread(&mu[i][j],sizeof(double),1,fp); + fread(&nu[i][j],sizeof(int),1,fp); + fread(&mu[i][j],sizeof(int),1,fp); fread(&cut[i][j],sizeof(double),1,fp); } MPI_Bcast(&epsilon[i][j],1,MPI_DOUBLE,0,world); MPI_Bcast(&sigma[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&nu[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&mu[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&nu[i][j],1,MPI_INT,0,world); + MPI_Bcast(&mu[i][j],1,MPI_INT,0,world); MPI_Bcast(&cut[i][j],1,MPI_DOUBLE,0,world); } } @@ -348,7 +348,7 @@ void PairWFCut::read_restart_settings(FILE *fp) void PairWFCut::write_data(FILE *fp) { for (int i = 1; i <= atom->ntypes; i++) - fprintf(fp,"%d %g %g %g %g\n",i,epsilon[i][i],sigma[i][i],nu[i][i],mu[i][i]); + fprintf(fp,"%d %g %g %d %d\n",i,epsilon[i][i],sigma[i][i],nu[i][i],mu[i][i]); } /* ---------------------------------------------------------------------- @@ -359,7 +359,7 @@ void PairWFCut::write_data_all(FILE *fp) { for (int i = 1; i <= atom->ntypes; i++) for (int j = i; j <= atom->ntypes; j++) - fprintf(fp,"%d %d %g %g %g %g %g\n",i,j, + fprintf(fp,"%d %d %g %g %d %d %g\n",i,j, epsilon[i][j],sigma[i][j],nu[i][j],mu[i][j],cut[i][j]); } From 8260fbd344bfa6e11c28f8a0b9ba3ea2d02880a0 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 28 Jan 2021 03:48:39 -0500 Subject: [PATCH 29/32] add unit test for wf/cut pair style --- .../force-styles/tests/mol-pair-wf_cut.yaml | 103 ++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 unittest/force-styles/tests/mol-pair-wf_cut.yaml diff --git a/unittest/force-styles/tests/mol-pair-wf_cut.yaml b/unittest/force-styles/tests/mol-pair-wf_cut.yaml new file mode 100644 index 0000000000..359c6d7006 --- /dev/null +++ b/unittest/force-styles/tests/mol-pair-wf_cut.yaml @@ -0,0 +1,103 @@ +--- +lammps_version: 24 Dec 2020 +date_generated: Thu Jan 28 03:47:32 202 +epsilon: 5e-14 +prerequisites: ! | + atom full + pair wf/cut +pre_commands: ! | + variable write_data_pair index ij +post_commands: ! "" +input_file: in.fourmol +pair_style: wf/cut 8.0 +pair_coeff: ! | + 1 1 0.02 2.5 1 1 + 1 2 0.01 1.75 1 1 + 1 3 0.02 2.85 1 1 8.0 + 1 4 0.0173205 2.8 1 1 + 1 5 0.0173205 2.8 1 1 + 2 2 0.005 1.0 1 1 + 2 3 0.01 2.1 1 1 + 2 4 0.005 0.5 1 1 + 2 5 0.00866025 2.05 1 1 + 3 3 0.02 3.2 1 1 + 3 4 0.0173205 3.15 1 1 + 3 5 0.0173205 3.15 1 1 + 4 4 0.015 3.1 1 1 + 4 5 0.015 3.1 1 1 + 5 5 0.015 3.1 1 1 +extract: ! | + epsilon 2 + sigma 2 + mu 2 + nu 2 +natoms: 29 +init_vdwl: 13.331701868543 +init_coul: 0 +init_stress: ! |2- + 2.5178354370947517e+01 2.5642248474815997e+01 4.2120178706774510e+01 -6.3752199820262074e+00 2.4423821790103029e+00 4.0948131051558949e+00 +init_forces: ! |2 + 1 2.0952781234870946e-02 3.8845446670745600e+00 4.0266101185891161e+00 + 2 1.7887164462329612e+00 1.4609613965099468e+00 -2.0999998459119902e+00 + 3 -1.8691796751627372e+00 -4.4796677668687161e+00 -1.7170104063474256e+00 + 4 -3.8589820127510022e-01 8.0372789351205343e-02 -2.7929310936892798e-01 + 5 -1.2955829232072852e-01 -2.4706552738630230e-01 5.3701075594699055e-01 + 6 -6.6148738809131027e+00 7.1811520725339770e+00 6.3379187807855732e+00 + 7 -1.7981150332175785e-01 -1.9777540538053207e+00 -1.2725481634272681e+01 + 8 3.7391579476987608e-01 -4.5422703098451167e-01 4.3004390815756706e+00 + 9 7.8558519258875970e-01 8.6126695536264386e-01 3.4956293730696517e+00 + 10 4.4874125886822629e+00 -5.8119138927398062e+00 -1.7734559280979514e+00 + 11 -9.9403778094523679e-02 -2.7520368302139697e-01 -4.3804356637156183e-01 + 12 1.0868312455520435e+00 4.0910511978376651e-01 -4.5424665758568461e-01 + 13 3.8952669951265123e-01 -1.6043031845021499e-01 -5.1542590980086338e-03 + 14 -1.6611954727058934e-01 3.3384477515331905e-02 -4.1278689987033085e-01 + 15 -4.5653517060236324e-03 4.1957529431250451e-01 1.4273175604750324e-01 + 16 3.8705064540182841e+00 -3.0790107392412147e+00 -8.4106346959871434e+00 + 17 -3.3157104185347768e+00 2.1771887621745951e+00 9.4592735301519415e+00 + 18 -1.5492810751018058e-02 -3.2610168906092168e-02 3.2838321862976375e-02 + 19 -1.0221075635570953e-04 -2.4819963720238802e-03 6.3588088449151167e-03 + 20 -2.5170248769922246e-03 -3.1219689267982533e-03 2.0971562342533825e-03 + 21 -8.2441875163539302e-01 -9.3159913536522632e-01 2.7408941662865209e+00 + 22 -1.3111629321445617e+00 -3.1620494060282150e-01 -2.0559535894812671e+00 + 23 2.1151339870601102e+00 1.2713008492411884e+00 -6.6308294784684352e-01 + 24 5.0599831218561930e-01 -2.5174724379982512e+00 1.3636099540694366e+00 + 25 -1.8335394725098328e+00 2.9153335061855473e-01 -1.5462990744267575e+00 + 26 1.3115091747032070e+00 2.2039747754639123e+00 1.4641348730469819e-01 + 27 5.1192148870411813e-01 -2.7035848557139470e+00 1.0102720504380645e+00 + 28 -2.0671223896069999e+00 8.9019054155521471e-01 -1.3998051355791850e+00 + 29 1.5714660756357337e+00 1.8277974648852422e+00 3.7915040903844482e-01 +run_vdwl: 13.3325799070269 +run_coul: 0 +run_stress: ! |2- + 2.5226505134166011e+01 2.5665098713276272e+01 4.2052612927488731e+01 -6.3480044192300973e+00 2.4548005748737984e+00 4.1205804855222423e+00 +run_forces: ! |2 + 1 2.5680403549306934e-02 3.8827166426800459e+00 4.0194469167946600e+00 + 2 1.7880086746222570e+00 1.4633410618480136e+00 -2.0917783930712170e+00 + 3 -1.8746243827554767e+00 -4.4803529797494974e+00 -1.7183386746157114e+00 + 4 -3.8419882068706390e-01 7.9679467451782574e-02 -2.7873843176033536e-01 + 5 -1.2933215119796876e-01 -2.4678741398042314e-01 5.3604662977634610e-01 + 6 -6.5911667151219158e+00 7.1628788517392143e+00 6.2986239762979812e+00 + 7 -1.8049056720639833e-01 -1.9732770892371352e+00 -1.2664364406289327e+01 + 8 3.4117839418858381e-01 -4.2686258225758750e-01 4.2905525151899671e+00 + 9 7.8492784707757846e-01 8.5653579701851090e-01 3.4886297945287605e+00 + 10 4.4990483538894663e+00 -5.8243793398035351e+00 -1.7801144827973929e+00 + 11 -9.8434450383760988e-02 -2.7265166825530213e-01 -4.3384298520494036e-01 + 12 1.0862014078554925e+00 4.0749467141919393e-01 -4.5810984874699312e-01 + 13 3.8840851136656979e-01 -1.5918511941530258e-01 -5.0435188450808476e-03 + 14 -1.6498465402555887e-01 3.2555700014858351e-02 -4.0969046354316158e-01 + 15 -5.1746183244565733e-03 4.2030050245425560e-01 1.4369692057790906e-01 + 16 3.8716092530809463e+00 -3.0834565917976824e+00 -8.4237297910920166e+00 + 17 -3.3183293718136500e+00 2.1837078960805343e+00 9.4702404317304740e+00 + 18 -1.5490237139094618e-02 -3.2605923516534234e-02 3.2842553892020329e-02 + 19 -1.1022993717618882e-04 -2.4919998809809947e-03 6.3698702514743471e-03 + 20 -2.5070784591324888e-03 -3.1118152231195575e-03 2.0924415709628569e-03 + 21 -8.3146680786849725e-01 -9.3100084977990383e-01 2.7490008132217891e+00 + 22 -1.3200074013367948e+00 -3.2075876797175989e-01 -2.0624746416557977e+00 + 23 2.1310227732736915e+00 1.2752677600846360e+00 -6.6466450635212104e-01 + 24 5.2174019224112633e-01 -2.5432192692104154e+00 1.3836830641468214e+00 + 25 -1.8640901009223221e+00 2.9226034502451703e-01 -1.5724314889166486e+00 + 26 1.3263176769235392e+00 2.2290027561589696e+00 1.5247509279036245e-01 + 27 5.2006996521896620e-01 -2.7148614233414463e+00 1.0110231119667439e+00 + 28 -2.0796779375288135e+00 8.9431296914727643e-01 -1.4054509798002364e+00 + 29 1.5758720714205563e+00 1.8349484122988167e+00 3.8404847995470470e-01 +... From 9c630d9906306c801b41deda89b128ffc74fd2a4 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 28 Jan 2021 03:59:19 -0500 Subject: [PATCH 30/32] scale down image --- doc/src/pair_wf_cut.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/src/pair_wf_cut.rst b/doc/src/pair_wf_cut.rst index 3547522157..75cccd7a96 100644 --- a/doc/src/pair_wf_cut.rst +++ b/doc/src/pair_wf_cut.rst @@ -56,6 +56,7 @@ interactions. .. image:: JPG/WF_LJ.jpg :align: center + :scale: 33% The following coefficients must be defined for each pair of atoms From 740ae28e3d2b6a8b35f98f6ea32ab77870502100 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 28 Jan 2021 03:59:30 -0500 Subject: [PATCH 31/32] address spelling issues --- doc/src/pair_wf_cut.rst | 2 +- doc/utils/sphinx-config/false_positives.txt | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/doc/src/pair_wf_cut.rst b/doc/src/pair_wf_cut.rst index 75cccd7a96..e69b982d8a 100644 --- a/doc/src/pair_wf_cut.rst +++ b/doc/src/pair_wf_cut.rst @@ -48,7 +48,7 @@ and :math:`r_c` is the cutoff. -Comparison of the untruncated Lennard-Jones 12-6 potential (red curve), +Comparison of the non-truncated Lennard-Jones 12-6 potential (red curve), and the WF potentials with :math:`\mu=1` and :math:`\nu=1` are shown in the figure below. The blue curve has :math:`r_c =2.0` and the green curve has :math:`r_c =1.2` and can be used to describe colloidal diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index 7e55fe3638..21582f11f1 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -692,6 +692,7 @@ dmi dnf DNi Dobson +Dobnikar Dodds docenv dodgerblue @@ -1232,6 +1233,7 @@ Hibbs Higdon Hijazi Hilger +Hinestrosa histo histogrammed histogramming @@ -3406,6 +3408,7 @@ WeinanE Wennberg Westmere Westview +wf wget Whelan whitesmoke From 51ac5e34eee0e8cc1745ba1c26319b2e484955fb Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 28 Jan 2021 04:12:39 -0500 Subject: [PATCH 32/32] make name of include guard consistent with file name --- src/USER-MISC/pair_wf_cut.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/USER-MISC/pair_wf_cut.h b/src/USER-MISC/pair_wf_cut.h index c2a6b4ba0e..d69efdf006 100644 --- a/src/USER-MISC/pair_wf_cut.h +++ b/src/USER-MISC/pair_wf_cut.h @@ -17,8 +17,8 @@ PairStyle(wf/cut,PairWFCut) #else -#ifndef LMP_PAIR_WF -#define LMP_PAIR_WF +#ifndef LMP_PAIR_WF_CUT_H +#define LMP_PAIR_WF_CUT_H #include "pair.h"

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