From 26c66a11ed96780e6f6e7246689ac05e95acf16e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 31 Jan 2013 10:21:34 +0100 Subject: [PATCH 01/28] Fix: Bug 701 --- htdocs/user/fiche.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/user/fiche.php b/htdocs/user/fiche.php index d260e8b4f60..660b9fe1cfb 100644 --- a/htdocs/user/fiche.php +++ b/htdocs/user/fiche.php @@ -326,7 +326,7 @@ if ($action == 'update' && ! $_POST["cancel"]) $object->firstname = GETPOST("prenom"); $object->login = GETPOST("login"); $object->pass = GETPOST("password"); - $object->admin = GETPOST("admin"); + $object->admin = empty($user->admin)?0:GETPOST("admin"); // A user can only be set admin by an admin $object->office_phone=GETPOST("office_phone"); $object->office_fax = GETPOST("office_fax"); $object->user_mobile= GETPOST("user_mobile"); From 7134ab55948fdb5c4f984aa1d3841ab251f5edd3 Mon Sep 17 00:00:00 2001 From: simnandez Date: Fri, 1 Feb 2013 09:28:02 +0100 Subject: [PATCH 02/28] Trad: Add missing translations --- htdocs/langs/ca_ES/categories.lang | 6 +++++- htdocs/langs/en_US/categories.lang | 6 +++++- htdocs/langs/es_ES/categories.lang | 6 +++++- htdocs/langs/fr_FR/categories.lang | 6 +++++- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/htdocs/langs/ca_ES/categories.lang b/htdocs/langs/ca_ES/categories.lang index 9c83c8c9ff7..8d541125ae3 100644 --- a/htdocs/langs/ca_ES/categories.lang +++ b/htdocs/langs/ca_ES/categories.lang @@ -90,4 +90,8 @@ CategId=Id categoria CatSupList=Llista de categories de proveïdors CatCusList=Llista de categories de clients/potencials CatProdList=Llista de categories de productes -CatMemberList=Llista de categories de membres \ No newline at end of file +CatMemberList=Llista de categories de membres +# Imports +CatProdLinks=Productes +CatCusLinks=Clients/Clients potencials +CatSupLinks=Proveïdors \ No newline at end of file diff --git a/htdocs/langs/en_US/categories.lang b/htdocs/langs/en_US/categories.lang index 60267629de5..da1fd9fe147 100644 --- a/htdocs/langs/en_US/categories.lang +++ b/htdocs/langs/en_US/categories.lang @@ -95,4 +95,8 @@ CatMemberList=List of members categories CatSupLinks=Links between suppliers and categories CatCusLinks=Links between customers/prospects and categories CatProdLinks=Links between products/services and categories -CatMemberLinks=Links between members and categories \ No newline at end of file +CatMemberLinks=Links between members and categories +# Imports +CatProdLinks=Products +CatCusLinks=Customer/Prospects +CatSupLinks=Suppliers \ No newline at end of file diff --git a/htdocs/langs/es_ES/categories.lang b/htdocs/langs/es_ES/categories.lang index b23acbb0ccf..7521b9c03dc 100644 --- a/htdocs/langs/es_ES/categories.lang +++ b/htdocs/langs/es_ES/categories.lang @@ -90,4 +90,8 @@ CategId=Id categoría CatSupList=Listado categorías de proveedores CatCusList=Listado categorías de clientes/potenciales CatProdList=Listado categorías de productos -CatMemberList=Listado categorías de miembros \ No newline at end of file +CatMemberList=Listado categorías de miembros +# Imports +CatProdLinks=Productos +CatCusLinks=Clientes/Clientes potenciales +CatSupLinks=Proveedores \ No newline at end of file diff --git a/htdocs/langs/fr_FR/categories.lang b/htdocs/langs/fr_FR/categories.lang index f0d0b515e80..49043d2e1a2 100644 --- a/htdocs/langs/fr_FR/categories.lang +++ b/htdocs/langs/fr_FR/categories.lang @@ -95,4 +95,8 @@ CatMemberList=Liste des catégories adhérents CatSupLinks=Liens entre les fournisseurs et les catégories CatCusLinks=Liens entre les clients/prospects et les catégories CatProdLinks=Liens entre les produits/services et les catégories -CatMemberLinks=Links entre les adhérents et les catégories \ No newline at end of file +CatMemberLinks=Links entre les adhérents et les catégories +# Imports +CatProdLinks=Produits +CatCusLinks=Clients/Prospects +CatSupLinks=Fournisseurs \ No newline at end of file From 9f7a06e04d0ffa8a1846cfd5de54049740571592 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 1 Feb 2013 09:56:45 +0100 Subject: [PATCH 03/28] Fix: Test not complete --- htdocs/holiday/common.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/holiday/common.inc.php b/htdocs/holiday/common.inc.php index 48e189e2599..95a6e0ee056 100644 --- a/htdocs/holiday/common.inc.php +++ b/htdocs/holiday/common.inc.php @@ -50,7 +50,7 @@ $sql.= " WHERE name = 'userGroup'"; $result = $db->query($sql); $obj = $db->fetch_object($result); -if ($obj->value == null) +if ($obj->value == null || $obj->value < 0) { llxHeader('',$langs->trans('CPTitreMenu')); From 72c5652a4a5fee38b11e26dd52712ad588a79359 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 1 Feb 2013 10:13:42 +0100 Subject: [PATCH 04/28] Fix: Holiday module update always done --- htdocs/holiday/class/holiday.class.php | 70 +++++++++++++++----------- htdocs/holiday/index.php | 3 ++ 2 files changed, 43 insertions(+), 30 deletions(-) diff --git a/htdocs/holiday/class/holiday.class.php b/htdocs/holiday/class/holiday.class.php index 540773d7da2..34b26421a08 100644 --- a/htdocs/holiday/class/holiday.class.php +++ b/htdocs/holiday/class/holiday.class.php @@ -32,14 +32,14 @@ class Holiday extends CommonObject { public $element='holiday'; public $table_element='holiday'; - + var $db; var $error; var $errors=array(); var $rowid; var $ref; - + var $fk_user; var $date_create=''; var $description; @@ -72,16 +72,24 @@ class Holiday extends CommonObject function __construct($db) { $this->db = $db; - - // Mets à jour les congés payés en début de mois - $this->updateSoldeCP(); - - // Vérifie le nombre d'utilisateur et mets à jour si besoin - $this->verifNbUsers($this->countActiveUsers(),$this->getConfCP('nbUser')); - return 1; } + /** + * updateSold + * + * @return int Return 1 + */ + function updateSold() + { + // Mets à jour les congés payés en début de mois + $this->updateSoldeCP(); + + // Vérifie le nombre d'utilisateur et mets à jour si besoin + $this->verifNbUsers($this->countActiveUsers(),$this->getConfCP('nbUser')); + return 1; + } + /** * Créer un congés payés dans la base de données * @@ -358,10 +366,10 @@ class Holiday extends CommonObject $sql.= " uu.name as user_lastname,"; $sql.= " uu.firstname as user_firstname,"; - + $sql.= " ua.name as validator_lastname,"; $sql.= " ua.firstname as validator_firstname"; - + $sql.= " FROM ".MAIN_DB_PREFIX."holiday as cp, ".MAIN_DB_PREFIX."user as uu, ".MAIN_DB_PREFIX."user as ua"; $sql.= " WHERE cp.fk_user = uu.rowid AND cp.fk_validator = ua.rowid "; // Hack pour la recherche sur le tableau @@ -415,10 +423,10 @@ class Holiday extends CommonObject $tab_result[$i]['user_firstname'] = $obj->user_firstname; $tab_result[$i]['user_lastname'] = $obj->user_lastname; - + $tab_result[$i]['validator_firstname'] = $obj->validator_firstname; $tab_result[$i]['validator_lastname'] = $obj->validator_lastname; - + $i++; } // Retourne 1 et ajoute le tableau à la variable @@ -601,13 +609,13 @@ class Holiday extends CommonObject { $this->fetchByUser($fk_user,'',''); - foreach($this->holiday as $infos_CP) + foreach($this->holiday as $infos_CP) { if ($infos_CP['statut'] == 4) continue; // ignore not validated holidays if ($infos_CP['statut'] == 5) continue; // ignore not validated holidays - + // TODO Also use halfday for the check - if ($dateDebut >= $infos_CP['date_debut'] && $dateDebut <= $infos_CP['date_fin'] || $dateFin <= $infos_CP['date_fin'] && $dateFin >= $infos_CP['date_debut']) + if ($dateDebut >= $infos_CP['date_debut'] && $dateDebut <= $infos_CP['date_fin'] || $dateFin <= $infos_CP['date_fin'] && $dateFin >= $infos_CP['date_debut']) { return false; } @@ -627,23 +635,23 @@ class Holiday extends CommonObject function getNomUrl($withpicto=0) { global $langs; - + $result=''; - + $lien = ''; $lienfin=''; - + $picto='holiday'; - + $label=$langs->trans("Show").': '.$this->ref; - + if ($withpicto) $result.=($lien.img_object($label,$picto).$lienfin); if ($withpicto && $withpicto != 2) $result.=' '; if ($withpicto != 2) $result.=$lien.$this->ref.$lienfin; return $result; } - + /** * Returns the label status * @@ -654,7 +662,7 @@ class Holiday extends CommonObject { return $this->LibStatut($this->statut, $mode, $this->date_debut); } - + /** * Returns the label of a statut * @@ -678,7 +686,7 @@ class Holiday extends CommonObject if ($mode == 2) { $pictoapproved='statut6'; - if (! empty($startdate) && $startdate > dol_now()) $pictoapproved='statut4'; + if (! empty($startdate) && $startdate > dol_now()) $pictoapproved='statut4'; if ($statut == 1) return img_picto($langs->trans('DraftCP'),'statut0').' '.$langs->trans('DraftCP'); // Draft if ($statut == 2) return img_picto($langs->trans('ToValidateCP'),'statut1').' '.$langs->trans('ToValidateCP'); // Waiting approval if ($statut == 3) return img_picto($langs->trans('ValidateCP'),$pictoapproved).' '.$langs->trans('ValidateCP'); @@ -688,18 +696,18 @@ class Holiday extends CommonObject if ($mode == 5) { $pictoapproved='statut6'; - if (! empty($startdate) && $startdate > dol_now()) $pictoapproved='statut4'; + if (! empty($startdate) && $startdate > dol_now()) $pictoapproved='statut4'; if ($statut == 1) return $langs->trans('DraftCP').' '.img_picto($langs->trans('DraftCP'),'statut0'); // Draft if ($statut == 2) return $langs->trans('ToValidateCP').' '.img_picto($langs->trans('ToValidateCP'),'statut1'); // Waiting approval if ($statut == 3) return $langs->trans('ValidateCP').' '.img_picto($langs->trans('ValidateCP'),$pictoapproved); if ($statut == 4) return $langs->trans('CancelCP').' '.img_picto($langs->trans('CancelCP'),'statut5'); if ($statut == 5) return $langs->trans('RefuseCP').' '.img_picto($langs->trans('RefuseCP'),'statut5'); } - + return $statut; } - + /** * Affiche un select HTML des statuts de congés payés * @@ -857,19 +865,21 @@ class Holiday extends CommonObject { // Si mise à jour pour tout le monde en début de mois $now=dol_now(); - + // Mois actuel $month = date('m',$now); $lastUpdate = $this->getConfCP('lastUpdate'); - $monthLastUpdate = date('m', $lastUpdate); + $monthLastUpdate = $lastUpdate[4].$lastUpdate[5]; + //print 'month: '.$month.' '.$lastUpdate.' '.$monthLastUpdate; // Si la date du mois n'est pas la même que celle sauvegardée, on met à jour le timestamp if ($month != $monthLastUpdate) { $sql = "UPDATE ".MAIN_DB_PREFIX."holiday_config SET"; - $sql.= " value = '".$this->db->idate($now)."'"; + $sql.= " value = '".dol_print_date($now,'%Y%m%d%H%M%S')."'"; $sql.= " WHERE name = 'lastUpdate'"; + dol_syslog(get_class($this).'::updateSoldeCP sql='.$sql); $result = $this->db->query($sql); // On ajoute x jours à chaque utilisateurs diff --git a/htdocs/holiday/index.php b/htdocs/holiday/index.php index b6eb71cdccb..4dbb299a825 100644 --- a/htdocs/holiday/index.php +++ b/htdocs/holiday/index.php @@ -73,6 +73,9 @@ $search_statut = GETPOST('select_statut'); $holiday = new Holiday($db); $holidaystatic=new Holiday($db); +// Update sold +$holiday->updateSold(); + $max_year = 5; $min_year = 10; $filter=''; From 4a4c7e9ca982c888bff986c25bfd2e6e4eabb929 Mon Sep 17 00:00:00 2001 From: Grand Philippe Date: Mon, 4 Feb 2013 08:54:04 +0100 Subject: [PATCH 05/28] useless file --- htdocs/categories/liste.php | 79 ------------------------------------- 1 file changed, 79 deletions(-) delete mode 100644 htdocs/categories/liste.php diff --git a/htdocs/categories/liste.php b/htdocs/categories/liste.php deleted file mode 100644 index a4527a56188..00000000000 --- a/htdocs/categories/liste.php +++ /dev/null @@ -1,79 +0,0 @@ - - * Copyright (C) 2006-2007 Laurent Destailleur - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -/** - * \file htdocs/categories/liste.php - * \ingroup category - * \brief Page liste des categories - */ - -require '../main.inc.php'; -require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; - -if (!$user->rights->categorie->lire) accessforbidden(); - - -llxHeader("","",$langs->trans("Categories")); - -print_fiche_titre($langs->trans("CatList")); - -print ''; - -print '
'; - -$c = new Categorie($db); -$cats = $c->get_all_categories(); - - -if ($cats != -1) -{ - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - - $var=true; - foreach ($cats as $cat) - { - $var = ! $var; - print "\t\n"; - print "\t\t\n"; - print "\t\t\n"; - print '\n"; - print "\t\n"; - } - print "
'.$langs->trans("Ref").''.$langs->trans("Description").''.$langs->trans("Type").'
".$cat->label."".dol_trunc($cat->description,36)."'; - if ($cat->type == 0) print $langs->trans("Product"); - elseif ($cat->type == 1) print $langs->trans("Supplier"); - elseif ($cat->type == 2) print $langs->trans("Customer"); - else print $cat->type; - print "
"; -} -else -{ - dol_print_error(); -} - -print '
'; - -$db->close(); - -llxFooter(); -?> From b492c7e75456107dc6e4083ff0541e8a2fccb894 Mon Sep 17 00:00:00 2001 From: Grand Philippe Date: Mon, 4 Feb 2013 09:53:42 +0100 Subject: [PATCH 06/28] fix some translations --- htdocs/langs/fr_FR/admin.lang | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang index f9ffd05c060..75518421e5a 100644 --- a/htdocs/langs/fr_FR/admin.lang +++ b/htdocs/langs/fr_FR/admin.lang @@ -313,7 +313,7 @@ FirstnameNamePosition=Ordre affichage prénom/nom DescWeather=Les graphiques suivant seront affichées sur le tableau de bord si le nombre d'éléments en retard atteints ces valeurs: KeyForWebServicesAccess=Clé pour utiliser les Web Services (paramètre "dolibarrkey" dans les webservices) TestSubmitForm=Formulaire de test de saisie -ThisForceAlsoTheme=Utiliser ce gestionnaire de menu force aussi le theme quelquesoit le choix de theme de l'utilisateur. De plus, ce gestionnaire de menu, spécialisé pour smartphone, ne fonctionne que sur certains téléphones. Utiliser un autre gestionnaire si vous constatez des problèmes. +ThisForceAlsoTheme=Utiliser ce gestionnaire de menu force aussi le thème quelque soit le choix de thème de l'utilisateur. De plus, ce gestionnaire de menu, spécialisé pour smartphone, ne fonctionne que sur certains téléphones. Utilisez un autre gestionnaire si vous constatez des problèmes. ThemeDir=Répertoire des thèmes ConnectionTimeout=Timeout de connexion ResponseTimeout=Timeout de réponse @@ -445,7 +445,7 @@ Module1200Desc= Interface avec le bug tracking Mantis Module1400Name= Comptabilité Module1400Desc= Gestion de la comptabilité (doubles parties) Module1780Name= Catégories -Module1780Desc= Gestion des catégories (produits, fournisseurs et clients) +Module1780Desc= Gestion des catégories (produits, fournisseurs, clients et adhérents) Module2000Name= Editeur WYSIWYG Module2000Desc= Permet la saisie de certaines zones de textes grace à un éditeur avancé Module2200Name= Droit de prêts @@ -458,6 +458,8 @@ Module2500Name= Gestion Electronique de Documents Module2500Desc= Permet de stocker et administrer une base de documents Module2600Name= WebServices Module2600Desc= Active le serveur de Web Services de Dolibarr +Module2650Name= Ultimatepdf +Module2650Desc= Gestion de la présentation des modèles de pdf (propales, factures, commandes etc...) Module2700Name= Gravatar Module2700Desc= Utilise le service en ligne Gravatar (www.gravatar.com) pour afficher les photos d'utilisateurs/membres (qui se trouvent avec leurs e-mails). Besoin d'un accès Internet Module2900Name= GeoIPMaxmind @@ -943,7 +945,7 @@ TranslationSetup=Translation setup TranslationDesc=Le choix de la langue affichée à l'écran se modifie:
* Soit de manière globale depuis le menu Accueil - Configuration - Affichage
* Soit de manière spécifique à l'utilisateur depuis l'onglet Interface utilisateur de sa fiche utilisateur (cliquer sur le login en haut de l'écran). ClassNotFoundIntoPathWarning=La class %s n'a pas été trouvée dans le path PHP YesInSummer=Oui en été -OnlyFollowingModulesAreOpenedToExternalUsers=Remarque, seuls les modules suivants sont ouverts aux utilisateurs externes (quelquesoit les permissions de ces utilisateurs): +OnlyFollowingModulesAreOpenedToExternalUsers=Remarque, seuls les modules suivants sont ouverts aux utilisateurs externes (quelque soit les permissions de ces utilisateurs): ##### Module password generation= undefined PasswordGenerationStandard= Renvoie un mot de passe généré selon algorithme interne Dolibarr: 8 caractères, chiffres et caractères en minuscules mélangés. From f084bbbb19bc43783e25ab88afbd225e93d75210 Mon Sep 17 00:00:00 2001 From: BENKE Charles Date: Fri, 8 Feb 2013 21:21:25 +0100 Subject: [PATCH 07/28] Update htdocs/product/class/product.class.php bug on list of childs of product if two products have the same label, the list display only one line --- htdocs/product/class/product.class.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index 8f91e30b257..8724671c20d 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -2186,7 +2186,7 @@ class Product extends CommonObject } // Recursive call - if (is_array($desc_pere)) + if (is_array($desc_pere)>2) { $this ->fetch_prod_arbo($desc_pere, $nom_pere." -> ", $desc_pere[1]*$multiply, $level+1); } @@ -2340,12 +2340,13 @@ class Product extends CommonObject $prods = array(); while ($rec = $this->db->fetch_array($res)) { + $prods[$rec['rowid']]= array(0=>$rec['id'],1=>$rec['qty'],2=>$rec['fk_product_type'],3=>$this->db->escape($rec['label'])); //$prods[$this->db->escape($rec['label'])]= array(0=>$rec['id'],1=>$rec['qty'],2=>$rec['fk_product_type']); - $prods[$this->db->escape($rec['label'])]= array(0=>$rec['id'],1=>$rec['qty']); + //$prods[$this->db->escape($rec['label'])]= array(0=>$rec['id'],1=>$rec['qty']); $listofchilds=$this->getChildsArbo($rec['id']); foreach($listofchilds as $keyChild => $valueChild) { - $prods[$this->db->escape($rec['label'])][$keyChild] = $valueChild; + $prods[$rec['rowid']][$keyChild] = $valueChild; } } From caf6fa2240770c418cc199a7d0d7dbf5f6faa7bc Mon Sep 17 00:00:00 2001 From: simnandez Date: Sun, 10 Feb 2013 11:09:21 +0100 Subject: [PATCH 08/28] Fix: Amarok login page issues --- htdocs/theme/amarok/img/background_login.png | Bin 98985 -> 13346 bytes htdocs/theme/amarok/style.css.php | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) mode change 100755 => 100644 htdocs/theme/amarok/img/background_login.png diff --git a/htdocs/theme/amarok/img/background_login.png b/htdocs/theme/amarok/img/background_login.png old mode 100755 new mode 100644 index fd6e78054637eb6730c3b1d7235341ecebe68b65..88594ffd7ca57d9271681be52291a74d08c1563f GIT binary patch literal 13346 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 z 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 M07*qoM6N<$f}S!NJOBUy diff --git a/htdocs/theme/amarok/style.css.php b/htdocs/theme/amarok/style.css.php index 28ba1ef2ec6..115a63d7e66 100755 --- a/htdocs/theme/amarok/style.css.php +++ b/htdocs/theme/amarok/style.css.php @@ -210,8 +210,8 @@ form#login { } form#login img {width:auto; height:auto; opacity:.7;} form#login img#img_logo { - width:220px; - max-width:220px; + width:190px; + max-width:190px; height:auto; border-radius:6px; padding:6px; From 28fa96b516e651791522e70347e90600ce2d1846 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 10 Feb 2013 21:56:29 +0100 Subject: [PATCH 09/28] Fix: Bad choice of template --- htdocs/fourn/class/fournisseur.facture.class.php | 1 + htdocs/fourn/facture/fiche.php | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php index e8be8c28323..ffc123fe2de 100644 --- a/htdocs/fourn/class/fournisseur.facture.class.php +++ b/htdocs/fourn/class/fournisseur.facture.class.php @@ -344,6 +344,7 @@ class FactureFournisseur extends CommonInvoice $this->note_private = $obj->note_private; $this->note_public = $obj->note_public; $this->model_pdf = $obj->model_pdf; + $this->modelpdf = $obj->model_pdf; $this->import_key = $obj->import_key; $this->extraparams = (array) json_decode($obj->extraparams, true); diff --git a/htdocs/fourn/facture/fiche.php b/htdocs/fourn/facture/fiche.php index fd6ffc2efe2..be8b7f6664d 100644 --- a/htdocs/fourn/facture/fiche.php +++ b/htdocs/fourn/facture/fiche.php @@ -2008,7 +2008,7 @@ else $urlsource=$_SERVER['PHP_SELF'].'?id='.$object->id; $genallowed=$user->rights->fournisseur->facture->creer; $delallowed=$user->rights->fournisseur->facture->supprimer; - $modelpdf=(! empty($object->modelpdf)?$object->modelpdf:''); + $modelpdf=(! empty($object->modelpdf)?$object->modelpdf:(empty($conf->global->INVOICE_SUPPLIER_ADDON_PDF)?'':$conf->global->INVOICE_SUPPLIER_ADDON_PDF)); print '
'; print $formfile->showdocuments('facture_fournisseur',$subdir,$filedir,$urlsource,$genallowed,$delallowed,$modelpdf,1,0,0,0,0,'','','',$societe->default_lang); From e5e9dc404bda4e1ab0a4078037fac14df6598189 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 10 Feb 2013 21:56:29 +0100 Subject: [PATCH 10/28] Fix: Bad choice of template --- htdocs/fourn/class/fournisseur.facture.class.php | 1 + htdocs/fourn/facture/fiche.php | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php index e8be8c28323..ffc123fe2de 100644 --- a/htdocs/fourn/class/fournisseur.facture.class.php +++ b/htdocs/fourn/class/fournisseur.facture.class.php @@ -344,6 +344,7 @@ class FactureFournisseur extends CommonInvoice $this->note_private = $obj->note_private; $this->note_public = $obj->note_public; $this->model_pdf = $obj->model_pdf; + $this->modelpdf = $obj->model_pdf; $this->import_key = $obj->import_key; $this->extraparams = (array) json_decode($obj->extraparams, true); diff --git a/htdocs/fourn/facture/fiche.php b/htdocs/fourn/facture/fiche.php index 936fbd08572..4b332efcc64 100644 --- a/htdocs/fourn/facture/fiche.php +++ b/htdocs/fourn/facture/fiche.php @@ -2010,7 +2010,7 @@ else $urlsource=$_SERVER['PHP_SELF'].'?id='.$object->id; $genallowed=$user->rights->fournisseur->facture->creer; $delallowed=$user->rights->fournisseur->facture->supprimer; - $modelpdf=(! empty($object->modelpdf)?$object->modelpdf:''); + $modelpdf=(! empty($object->modelpdf)?$object->modelpdf:(empty($conf->global->INVOICE_SUPPLIER_ADDON_PDF)?'':$conf->global->INVOICE_SUPPLIER_ADDON_PDF)); print '
'; print $formfile->showdocuments('facture_fournisseur',$subdir,$filedir,$urlsource,$genallowed,$delallowed,$modelpdf,1,0,0,0,0,'','','',$societe->default_lang); From 4d9f22c9092b63ab2f34104bbe3240204ebf3ae3 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 10 Feb 2013 22:09:25 +0100 Subject: [PATCH 11/28] Renamed "Salvador" into "El Salvador" --- htdocs/langs/es_ES/dict.lang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/langs/es_ES/dict.lang b/htdocs/langs/es_ES/dict.lang index bf0b59e3ef1..c0cd7042334 100644 --- a/htdocs/langs/es_ES/dict.lang +++ b/htdocs/langs/es_ES/dict.lang @@ -85,7 +85,7 @@ CountryDM=Dominica CountryDO=República Dominicana CountryEC=Ecuador CountryEG=Egipto -CountrySV=Salvador +CountrySV=El Salvador CountryGQ=Guinea Ecuatorial CountryER=Eritrea CountryEE=Estonia From 77c5eaa726a45765df3f8a16dc0c63f8379ffcc9 Mon Sep 17 00:00:00 2001 From: simnandez Date: Sun, 10 Feb 2013 11:09:21 +0100 Subject: [PATCH 12/28] Fix: Amarok login page issues --- htdocs/theme/amarok/img/background_login.png | Bin 98985 -> 13346 bytes htdocs/theme/amarok/style.css.php | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) mode change 100755 => 100644 htdocs/theme/amarok/img/background_login.png diff --git a/htdocs/theme/amarok/img/background_login.png b/htdocs/theme/amarok/img/background_login.png old mode 100755 new mode 100644 index fd6e78054637eb6730c3b1d7235341ecebe68b65..88594ffd7ca57d9271681be52291a74d08c1563f GIT binary patch literal 13346 zcmV+-G~LUIP)Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RY0UrtmH?$s1cK`qY8FWQhbVF}# zZDnqB07G(RVRU6=Aa`kWXdp*PO;A^X4i^9bAOJ~3K~#9!?OofF5OP=oa#Z|j%X*&YB>i-{7wQFGf+!;g#JO|fGSZ5N>s!+1{pvC!{EQru z1RQ-=rrdJ$;If$T6KF|{-pC7m_1g0MsQ5{K(ZLig|KobS9{%C&b`zWA>-B;G3_1x( z8NLOPAQEai*_cGlg$0i1oN=w>AWqVapkzyu-~ANY+pk!UNQi?gil1d z&JDW!j1a9NMNZ52Nv1a=MaXG4c;7(tJcnGedmy)3<)Q;Ry3Uhud81Pf-btRRB>Wm8 ziL^9BnDhEKC9=&*h8&|gg$PkR5^vIbzVFDR;*Qi$j?n`gR2v}8Nw!8onLEXexHaF6?nt71YdY*cd7<*$JkLHNeD3A4 zgkY_gZISc)-qLy;x)@7pLbm#Z7$Y62PJZ|A`}k0 zio5~peT5*!!Bhi;-qWO!qM;F@;F9-wipu>$?5}2z`^NwI6ZaC z`#EH{R8(F`h^m8pHWFg8+@A4jn#%=#0ahzGke&t zu?bE4iEI~W&bZ}V6!j=b`@_(qNtCDyl{n9^#zhw1ZaO>C8%O%G_ZcXWb=rTw{gJ1r zssy;18cG?Y-eQg@_f1<4y5H|mis^0Nz@?Z`D>^*4lHi!vmfjJ*DMG7(NH(RJ{^tA! zLR*H^cIuOgibiZIhe+03_|(QZVvW1Ctw*;hDf{8n8+pl(FLUGuZS;-8njuy0I%2A# z2d9Zi{FSVimF+jew?60)P4PMWMqntoPE3yF;5D7iA1NJ_$ih>aDM=uWG6&Y`WHkP$ z>Bj|GrDNSX0TJLe@38`W9>R)AWZurfNbVJQPPbjJSG(2ahPOnOhz=zkOev9NPTig~ z(%#1iTo-#MYlU+VPbA`KHSStHN*)~9OFd+cUmnM(9V^pDZ5{3MzUEC^t_gEI=lOiX zl1UVxmwd+=mU`>_(PcS8I;3?DwHv8v&oT~}v|c1VPYvTmi80mr>m$aW?^OLqy;wZO6i~y71GQ!S*X)~VMB4~3G$DZnu!=l~?a1QON zi_x6ImV8SAU2CKg&Sk_p{Mu)h+G++wWq68K33gbe6CD&I)%t3aCD;47qrp8w68UK8 zyH&34XvPcGXleNN9@>Eq*reexUz z95MQpHlEt&SzSz?X(e02XeADA`|xgWTJLc+pes^Q?{8 z8<|Mih?hdzCY?W zbH6vDT^!*6l_$4!M4l$wL&U8hMDX5d2VPn+c}oQG5Y@BYUFLn zuUqdXX%Jg@@YV}{M~-ZB*yGq!X=B=ePmcWE4$?5=s>L@KGZy}RW!SYF;49D;!7hQ^2l|R*lsR$PB6$|VSyYR7 zW0HjYl9+RN$FRrrjAmufnaqn@E0id2{V?uJ7^0LEdb%Pl^2o+;^0MufvBxV)t@)w` ze@B1&?TSNfZ#!az!8>TVsz{dSSjsdiF^=3oPMTzE@H%QmQjPxK|8}iEy5H|rLbmj< znYzg669p66GS9uSv_lS#hCXVvS$t)2}skdDmQ$}R65zE%$y&OEz zn>0c01#cPP)boso@w+T@)HFjngZ_covnWRnlobpV;dA%K$p|GqT7nPbF(;CPn^!hqg{A+YBhYj^<96oR%rR~ z7NSq$$>lJjqaVEne^k4){%)xPh4;Umrs@9)pF2WF?3wMMEks@fA)nfKe-`H|)k0S9 z?;Q2wpVk$}vaybM;+tD;zYkvJ#v8^GcCV^K(qIsm=2Fgei;!=(o0xn@lCAeu0^;1c zdAX=Paic^W4QbPGQ${Ok%l1|G@+lnL<`;|>(te|`w zjnbb*(;%XyU)C6@iG)jJUh+5ARTmP~D<#it#gR2e(spr2^GRE6Q1vPzBTZjXO?EKN z;n8-raa-$Xn{K?yiXPjDCt?a9>Oe1sKzB%57lUxUzr;CN@@G>@rv${K6N<(Ps0TP_ zz(l#9GqHe6=pJm`d*uy#S!QdM4q{{w@uKG=vf%vQtwS1CdW+tEJMv9T+)jJ+%iGVK zL#=$M^)lujMRVX4Ara9X zMXas!(ZY-5iZ6#9eo>t7*?eiF)C`xmjZ$i-p+7W??CH+SJV#l%Szv4gKBJyAPS&>j z9vb@df|0~>;&=oMgg9xNHRTwQU9BEQKa_+bue6_WRz{RyN#Z#gHM!*42x)Y=OXlfo z0=d!j(92n#+l4o!bRumiNp*gdDtFTc%+`0b>OV>gVy;#3USEFA`5E6T&wx0>nE@oCe#aZi zJdh)8&Sz*JG8~C(P6@x~<=n@95r>!jX3ym+-Xly7V;iyV-OABP_3ujVDIok_BR>*s z@3Rq>ihI9_-eoZANV(L>Vx+FG+%_$VwdPG*t>gKYhkPW+x#xQ%<`b33yp|0|(T7I* z3ndy~=3yD+mA<2ux4R`vAh1!!k*sU=kgGNw%n{f9n_48{`OpJ00Y-7Q(TN$U$s0-#kepC14|+Tv zCIZz~Qm;aKx*T#;(6r9g@*)!?r&2mM zdRnJ-bF>ZgJ7}Y>M!13$?o~&v13li^a2Ek@Bj8SY zbwwW^A89!QIhxYw&YB>k91q8#8c#$kNgy1=o8_*$t1FVqQF#z>L zBsahOjiyjEt0R_ol^O(EZyv5%XX$85f^d2-W3jk&L=*F8ShYMOg5*e~Ru`I1w&WY= zEc)dXisZ*jD9qaHml{@!0j_g}5%Z{}csR?Mjw~AqveP{0;EfYB4(|O?hhMv4fON8Q znS1Y?Y8;^VvB($Uuo1#lds}nhmJN~vktP`H250Mn6i!}1BJkRAScmVi{ArpdHbHx< zM{d;@f@9N=^_hW;(t)wn>3Eh;558LMN}4~(jsbZomd99(oNykHa^eu_imYpQJ-|9wHz@CCkNijOCyzG6;XTO&~MGtZnv9B zd6Etua0Py!qdqVZl!9MR~#MChqcTYIw7-4+*~ z?V-JM6$hqW_QNlEmUh}>{cbM@wh#%_`oyDjZz*XxqMVTCBymgIiq>mPl<-TyC-MFg zfO7Z4*;8Q2dptyad*3Hn;js5?>0T>b*jPWO#17R%oPDs&`H9^-J7RSzesR42VR^q_R`k5^<7{y6Q zHXuam{K*|)^j7rMVl3*#HS~NwLwP^XHR{*v6}n7MvH_L#MIi_{w2F?kWZYw$)*Kb3 ze3mZ328Uv#oQAeR_e3eBa^#4-dgrPgjrHj9=(l@mnVywo50*XQbp*0zA$*N?z)?J8dNutSNL2kB)v)RBGOP zvPCD|(&*8v^N`XjYSbRd)-}I}yl$4EU$V_PKg%+>NSmo=I+>;^%qq;XMR)D_gC6|t z&5@HhkDletK4_k2)7HW{ux0LfLmxHj&EW(4p6sL4@sRd}vkPI8Nsb&`PB|T0-S4Yg zD{v@iAv;gX){ZpN5d1pF)SaE~JOz|%9_*cWshp|j!JZB>pgRZj9{Ov&kKm|15(l@Q zQ3yG?gAdz;Jh>daq|Rl`9Gh4uJ$bAndG1SfdSvo?y$-*LL*9tN&`5)%73|G(bAn5v zYbR=2A&oL-%EGc-lk?rtxu%o@$dWWlH;f~-Cw(8NWq^52qi;e*COQiYYX&69*e1`H zWq1OdN8prTLtEE*lU4cqUayyF*`P$jv=MoT6I(RmQfK7o&$|&MHe~dODAy>uMsi%6 z7occFmWY>jM5&EGx`F8|;(PzC_KjUF*wfaV^&D$&jOtyjMYjuSZaT6#jR0(|zs-YJ z8k0bbG|vEG9dSrS3Yy(5H9B~r6ACA`T7FkMPb;Fd;*@A9={3jG$H#|TL1-I^bptN$ z=PuvVdPy~6KO?C*N#3h!MND2&CepIE2wpV#VOYWBK%r_r6LmCT4d`T zYuX!fIdUaK+NeUhR5Zdy-J{W`{=5}_t+Ld z5)e_2z1M!DW!k_)MaA-6lIgY*9dP3%Qu_{%oYRsnCg~TV=9JM%gA?4Pr!spY36AfG z9)Z@_!VxBWPS0weo*wOBC*q#TAB3+JCH8)Rh%OH(!8m4={SmjqRv~(skXj{GXko0 z5}f3XkkUI^ePw6camGB)nB6kDN#yA7voE_3XW~UqTq}@uN>9>8E!!uf>Zw-VUO04` zrVF)hs(2n2!2p7tG{(h(L{ z!>QU5&a)H*Lbpr}$G42qq6;tBvTBCL*)sZiy*AB(17m0Jr4|Bg9iw!SL?>&@2v0il zDZ$wL_j*p{Xc9}W(pM!6uSI0uQ+JYvJ@SDu3%yE{qSQ*sbH~vT2d|`nle_(Km-Lzhff)JakR94V zZ!zI>M|=`_cnhPIHvY_O;~HOX^v7|sTy|#JuAB4y?1cY(K239C%lGu2CY|T`@H=|H zahfLaXiq9?J_4WR1rS{C-m?kIU`7&)R;v*Xd~#ut>l8Bj{tEs0@k31*JwmBHrN`yS zG!Ch7v^qF?4)-b1qg2<{zhxd?4jPR#v zy1Z}PN=>XMk6#+GBN;JQGa$ka5f^GQK?O5_vY|RHfP0i_&w`8t$4&JJEJmZw(#QM>{X{EC|p`l;`nwB`*2BW4%Wf-W^`V3s6eGspZ?<-gx!( z^#xn4z-3(7?sgo<;w7Dc=7g>H@hq-5JUVzKQJsUZS4y9spT7yzyHQ%?WOMi(qhD|{ zav*fO-I{n|FWB7r?}+lH>-Bn(xaKg8(pRK3T1ApZqpBR(qog%_v_T&qAD7qbrDpI5 zCv#hJgdE;lqqk4%@7IpCRMrwLHl%B_x4wC_NLQoHuZOWNR*5Nnmy;^3BOP4(ne?58rjR(YYFl5=TEjEqL!%M|9<`dYu;Vb2kY#) zo&%H~``SBEY?;ZBelI;950Qgc)*p8E_iH6T%}TV zh(STAyt&`~E@LSh*^;>x57GU8S0e*%qwutRM2`%(8`RZqLTHDP5O(5`)G>+)#q5|%ZK<;@HJ*}nPada)ul6Nmew4Q^sPWG<2lfIjww&H}V z{1r8jup(cHL!FkF{}d5^?}MfCV3G=#^rD^{vGpvik8n_9SdmwIQfC}$TO^crB$XI(XN{)6i50Q+x=TxFI$<40i{jKRE>j+Q7@M|5eR1jC9 zBhEAoH|{*NZQ%~c>8xv%V3F35l-?kKgbqB{I^2=au8DC6GcI67{6?}6}e z$O>^2v1CrkIWjn++UOIlnnj{xV=3s52+<2*d-bXHoflUa@lUc zwD&Qi_Yk)x6Dg3jHlSkN816ieWM-PVH^>$<<-blT4&@@dV zLBx5}`vS!vtx*d?Hw@Jo(jdx+MgfS?hfM*&`@;jjXk>-C!LkAb;I+FrKo zpDd&25lEs$wwyUbYX@FqNYeMjo{gF+9hBj@S5xhGNbh@$$UUUF>>4TBXaN%k0M9Oa z?}_?LuZ1j4xoDNO?aB2Y|M-Xb3Q9U{<}Fyz!~k+*Hz`a|FEDD1cKx?4O|m?axHX|< z>SKTGwMX_AoN(UHjF`fe(gn)JPaJk$syEV%wAKprNM_u?%ibooL+Ye-I_iClOLL7U zN4>_0RxnA==ks#A-BgdR=jL7xgjLdLmsoq#PqY;~f}?9Xc!hGn0ggPS zhYe7RIUZrBgkX-E}&H;%O7`!kMsDH>-jvLdg`7fEA1GaSi0FG6JmhwRS` zX4G=gmN~C=dnD;0z}Wx*6N5=aK~%RETym4W)g>q`nB=l!Pib+oCQqs7N_44|Bx4Vt zS#a`hIFi@@9bL-7wRd2R??|^aNv8a`=X}54)tk6k2Q)NIllk%`Vte4)i{Cw@YqTP2 ziSq}~=kpsL_Hwvffq-N{vG;6GfrA9r_He(&aj(})WhE-LN^TOnDL>3J-=)6(IuU%#LXoC9kTI8ZBM==(R-=#rzFj{`e2&-3N;^Ak2DfVMG*(!V@A zGL~bfC;h>Vzn06zN70kE6P0eBXLTpW5m(UX=jXSS4q_DI?bv>fu}Nqo$K7jdy%jjE zslczVFA*If^Cvx@&p$jJ2hdBO!A;7VEuOiacQ$AA6o6;KI>KMJ@WvTZdyLB^_L5a* zT=v6($9bMFL_~iGbp5|u1u=rLXb`mqnMTpo)_0UfhNDK-)~h6m)7~wZ@n!=(f$i@L zPo>cg-aa~ro0GkBTFWE)Y6S_*+81>%OZubtN34)S=rNBlYEng3)qvb{`gZWjb9D*l zAsv)xPHUxt5VdlX>lq#_iWLy#ynJ``!iKZJt%mTIzm?Qqtv+h^Hl}I%UrGnzh&oC{ z;q{Kq-j&c6c)T3qX~oHVgumr*BHeb{!Wue-tl`h?+E->vL8pKM%`iEkB+2MAT2E<2 znMCes-+Of3+L1}>O>6ZPF~B&(Ol01o*XvbOo)&>X&y88r4bn zdh$Y|-cJc561%k1qx=0HGFr%yj=9F*Jw|n&91kbKaXA{qlH1-noyn7?X>u8bXhj!M z>hMtvUbFJ*3?osykR~p5BYf*_qBYN@+wJBix>*ahM93UMl^_MF+_Z;*^gR+Ah!JFy zK~CI3rDQJw0&QUR0-&cUT0%Bd7DRzWshE@ge8 zBbO>gj~+%jXj7{*?mjt)N9nEc!_^u^tE;59Ahh-fhEuQcE#bSQT_;3JP5?~juo!&Y$2W2?<#$l^rbo+ zgc~Wakm`6E$>9>mhAjd)c{^d}$)QO0nzzg&Tb~i(!rT^lmC6;pAfW~ymTh9Z1cVgD z+hym&)I;sCuC1>n9w~Cpbcye5Ko#L%uh%Z%djkuXvZAy!usjTBjR9-tgyI}CSQ=;0 z^ZD%R-Y5wci_5Wd*e%Poo4l<99Zw~B8L7(PW`y9CrfGup@VyE^scp|?EGACY-=t*& z8m+N&=m#q({BbtlZzpZFCg`0=YY0%%$dTLmN;=}RRb~mkdQzFKa@W{5$RLF;Na?i^ zv_OfT&nHWSgdzweu-AU$9uXdaE=q483%w!T6RZBP%2$(A0H_%uD`8qD{fipFcBb$f1rq z&OoDfeqm19=JHT4(yAdbWSRf>zyB2>?Gk$`d1kA#@Dvb?6sRE#x?ZoB`~40zsmMZ) z(3y0eXVLyTTH~+3{tAODYZ*&oGy^q8!oT0|VpTdh{5V3yRi5-+wrGJ)tFEKyE^-k8 z%D2(S$H#9EYPp%9MFJiwZ}#SBxygtCSWbMtpD;)2)9=-hu5r@x-H{`Cly9Tk?e<5N z&L}5sb2F_^UKaY}c;~vld;Pz;oM|-2=xI(_(NjS9kH_P%EVJZ=3&@0aB3J38(@sYwG01yEAkAlbT?y>Xo6{Lekf*e~y_O?$+Q+B? zQ3h-JZ>jcq+Gs6KI}iH6bBi7Z$~c@_a$LY?kV@96kdrR8mFe9=hFb-5*n` z=vF{1hHBxxYm{MC6Tg0*26zycye-(;(pO#&m_d>Dv)8|ocAE5hy{Z-Ip*;ZtV7Y;% zedjIra@#{hS`t(su2i+K&5dcv+W*K`cD7=W_Ubi9NE>7{=T}CS7gYB;w3e0XnSpP~ zqgQuZzdw6sEfJlSoq7+_v@lgVZbbCDT+ogf!Cq%F^~3CAdU&glqlL{eG{W=ozV?H_eI`-LJuxDX*BTmPl=vd!935 za9FGVqrauzG9qhmo&jLg-rzZSjVN`-XWv`D&%lk3Q;x7o5@1f_NaM~W_$B4$9A`*# z;*vQ{)6`UcWwo^N?Bz?9rroyp=zWq^5*ipg!dJHa&bf{j5bW0BXY}K5v^vk07QB+n zSrqJPEZMETwbj|RVyyIik|*0e2a8-7qa^kmXe%>`9`IX4qS+o<@^T>$#3#MF%~2TP zUoO~P0}+?qhz1t9ah25AD@RV!$q|DnN_GIMY-~rr1k+#Hc%Up8*eIKuoXK z>rhyh%B^|#`!{H9L~BKZxzdSm_!*F31|+SvH_tPijnElbyxdH0C0K+zN4a$rHKk#d zFE7PNE0#u$Zmj|#FPp_%xS&yiVgVv4pm0A|!ih&M+lm#=$TVbSGM zfAde)FUN60USxty!VdEX_E8lTO~J45T)I6AxoxdAGF!GI@>C%OlA(qfk#c^O~BH=y*kFo5wb^au^;lxp8V4)Q6 zmnKW!Hg@)WPd!swTZ$kOdj=k3jaK`i%jN%jig4aUvqvN~?>K7B>+#kc=~6q(b_Bi8 zu_!~-Y@TK%S8hylW6XPirSU!vzFOvSc*UUvG3MQ^8GWD_Xvtm9Qp4*;;O%x3e}_dt z))R1Ob6U@7ZbD-L`3Q>jz&^#IYhE!BIK3G9Gp&A7n zfBd*Ik%T)R?(VnX*;lY z`B`^;Oa~r=gHRkQwE}9rTklcuqje+9)Ps$jdT};#*UTQGi;nkJ?(M$BT#M|vfqw*u z5!(PDr(V*5WI*I;{u(-8IwaI`6?wU+K+|wI$rZ_Pj$~LPUoD3y{T|KzD{l_9*WO0% zousAf7VahvA!sPKM2IyY-4hn~$vBCP!O=Dnr3_W8LQRWkxZcA-SX_Z*?qTrinmGDq z_X5r0atkifTbF&z4ttrwMLE?yL!IBFD-B$y*d z21PxDip(KXB>T7>HFWG(JHUj z?=6Y4(lFa1Q|TOj4*gYv=6M~|IUf?fH_+Dr$lKwnRwMDY^tQOXnL}>rSoLtnMS_|U zxCeZYw+q3!gle&z&-Mmb4hqdcqvy=iVcP3hUJzb2TS5Bw(e$p1Lahg?BXl)a@5|*$r5w|-EkSb$7KR?}(vbD`=zCY6a8z`9yLLhC9 zs9~C>s;Y}@jax7G8u@xiO?-WQg(MVd*|*wj?YvN{s5l%E7w^_Shd8bcL-_az1TMW? zMkHa&GEIpH-($2}D>o0lvT|&53nBNEktC=QbCF0j@Cc)ofGo-|HJx?zv{V#F-7;v@ zo-!T}YIum|J)K@{#Q-OE5YGa5U&$g3G+w1h!mTmHT16lbS($;oEfOJTZE?(K>gzio+zN=Pm9{C-KLBwe$2r!6We_RcHX6_u8bx3;x$ z&m1`CPsl9>B$sQ5j&6jM08;v_MpqFc@BYbc9YpLZumjOuvT9d@B zj`(wZV~LRLbXuV25^iI>ypM!3C4dQRS*=ZIB6(aKe|S3{nGx?Ut--^&AXbpEfK0!ngQ{$lxdnmrCqG5 zlUnSw#PJX(5IiZmM3L9)RppzGA{uVMjkRQ%v0F zqR1-{5rJ$io5(f#qdBg0)OqGaB*Guc0=5o<*gv(_V5@#_o6_a>(72zW;Z?=pm z;_1amWZ~gk?)ST!v_LwNbOIcKQgseL%5ij#3Jneeua##SevZ+J(2EVM=ZV6bRI7v< zWg+L?BVPQ1FsxUHHJD51X+!3%_h|3^#>4(zPk_m3Q@<}U9}WDiQO3v(x4cAC>CpV> zA)T)7puKxNJsYKGpe=;LQ7+5*jav7DqK{?H>5wx}^7suD>E@@Bi>ph78l_UHb{RS9 zDzD|ck?%G@cJ|Uvo*Tn8oZ`Vb63TK_3JBI0l_as+Mr23NM+tT$uz%$2xn({|DYwK* zUVBgt@NyZO%T8{CvUIK`>CA}EU!o=QNOplf&m(KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z00DQ@NklLSVS_G{P{C>ai`Cb43 zp95M9?-&2>oB%}OYvHJh*Lh&hiK{uV902%rt`1d&9TfmjL~&ggv>00Z;Pw86&)+XZ z_;;+-{dE-!stR|<`+eX%3jUw}um2DJ^{; z-#X6|?vCjLJ{R7v1K;b5t94kZP;tC}{TKfH`2&Z*O2Oz2@Arw%)c|+YS}}bAYXPEA z;r9T5F)sXH|1bXw|NGw`{y0^qJ_m{@=5m}?@aNNDwZO;RUrSZ@ zdVZgVfB(H;D)0rE36}G@npKR^0RU1ezMn6wl>PJj9Dwjy=3378+UG)R0|0PTMeF?i zImUig{9N2ipU(&9dG2@fpa1-C9LEW>3Sa!ekHc`*1ONW>7Xa|T{`(jH_y7LGXBF$; z=fLmZF95)wPsjT-^gf}+XKJ87xcXbig8i(S)k>>=o5fo`9i4* zlL?5SsO--P0CO$?3km?r@1f%89e_`0RV?S>iE7a4u}OuWMHQtQOnJ~)tq@F{r=Zq~ zF&(M`vjU*-z57HxPIxSEfn!X-ec(J^=)D0D01Ndr{QWx4Q&4J!j0rP^Rerx>iu0@h z6lR922&@?1r=s@@YsGtceCA>b!NM5aTo6Syfs7t&v%-$W_auBKbMfHv;ygs=;&X^i zlKP%Wso_Cf95QBC$)Y{9&xbq6BXp zGl)1OUT8H%t%}cw8%Bkvj)M=^*W!PxLbaid319(m=x}_li8;ThR$_BGAO@_l|IH85 z@aNB;y?H(#U{2orJ{xb@ygg^d@&U-?&#nu-_kHU2#v5~t4zr5h`#$aG7_chnUZB2s zh^<&~?yzd`IbgM535ts^Q zEm+Q*0c-Fe5e3}AKkD$6xA%m*z!U%+(-*u=s3^u502IBC*v#DOV-Czd@c9nZs{6L< z!y&rh-eTeLuhk{Ma`Yikb$-5Du<}qBRxQ3JuGUc$7_u;&+c5vBwe0E!aZvADb~&z# z2j5r|pYO#@ABQU7yF$4dt5p@j^aT;FgHkjOR0n!shYG8lA_|v@q6YT~Us>5rl)?(mp-`Fo{hCBMbeDMs zcZpjX+|=SITG8N80Pcqm--h!=E@0g=)p`-@oy%-@jmHkA+py2T$nNi-(+A!D#(1;jN&V;W!MV zb)L9p`vxgy@I2wI>;qA2g^HjSfeSDuzmLXqf<^Uko;Z(+xtu4t2)-rS9|&r-d(mtC zQF`a+UhZ%dmX+>Uc`L6DKzUmNSiUgEfSJJO0ae}-TG$r!#`ojPG3I^fUDtpVV0Pb| zYAnGT0}x=$1)YE$-26Tr5Wr<(`GlxpjE=b`c5x_z-Wnhdg`$`Oh!#))7;mS!9A*cm zf4RnG*J=_DFmD~2%#4ik*&=)I%Z0n@n;vu*{~m|S;rp-N$;C<>V#Pga11 z*qjTWiw|u2f{pzM zHNiE3?1bl|f(Hb)mPQHA@~sFk7oaLEBm96AL#@VNLqVS-N}md#Alg}eg9Vr!5OG+2 zqk4OnNsi2mw?bW3r;z zxAR(9%P~A|rRBT7b$1-4Vn%B-=EPwVr@rAh0DyhrFhP$)wG`f3?gPDhyeAN^kcFZJ zeGC*^m~#S?o2;l}EiRBg9HlJuzMv|s3xtP{#(Ut`C~zN80cOBD3%rR01;rK*2t*lP z45K?_0VV~$7Up1UGllQx>TTcR#fS+k9}o-s~DTUmn17u@&pxSrsfkcPkZ` z9XKj{4)iG)gH?j6Vot@MPX~MkJ~04v9Eaii`QkXn#*BKOn5W^oMqnp`4#3KSFTvFY z+#Qz;uGb=g$tXIE7lH`RqhO4JqbmFGqoTLETfkDVD-UK>`aAF0b+^1u- zXnhu-Wv|sN9`+?F{60QAFS7+0){NWVqom`e!CLHtX9HjaUBS!PkH<1<>Gg;?G|$lInu%`ta~sjyWbi@nbZM4RT(sFXgOI1zK!=6%UMsSd405D_MCh9#E|>;L)N;R5e-A_+l%NEvFeP z-{p!cfHwCPfT!bXiH&h%o+kK+L$$`<(!EyB({MJfxmpco6=$tHI8=9qO@L3~A09$Q z?n?M-Y%8Dz?rlG7jqhU{(DTBZE;i-p09>$^25^Naqm?M@{$W?_ZikP~{ych1-X#Jo z_9Y`WI2@R+`@?2A%G;0&d&~)Sf$PMW4tU4=4fyCNhwdAg-|H?1P53j5}qw9@^ zEBjjoP^)ozumFI4-fgs7G;j)kR9Hoo;LlQwIbnf~_yT+-0xj@4VTB;l)jQ53N>X0i zoNgHKy*jHkJ2A$^#i`uX?hD0iZVj$&?-x+2;r*5ka&pShqxF_uUGwue-mep% z@3XZO0_!q>C9qN}bj%o+@J6Y{;De>M+|QFQKMn&`-sD{E4y?sncHIw$AX0*d9m6Gl zZ(xiC*M%{8yN@wg_Q3Jh_dXa*7tAM6u)pSX=k3=V<*XQUp$O2&!iZarKMMi~yEl)| zxo?!-2S;{d+;GMA*C7T@Ou|&qWyMP_Fk{bIt6`3gzL9L(ZO37PAqCZhH@@&%QP$^J z?pW)_M$Fh^sVJaaPykyGciqS}OLvViR)whJI0ztJ-vN`tLs*nmmJ~o{+@1rl%Fk4I zo4?-&52srBo<;HNUGX1xnDJ1~7SD?Oz*!_KlQ#lQdjg~zz_x-I|*K40z?leybvUykWBE@>kCDh0kP{B?uAqTujIVJc;h;)-j4 zOYxV+Bzju;1;?6qUp{#wWLc^4HL|yO0)Kmv$H;L=#rwti==*g-#P7b_9j~+Q(MdJO z=gUP`kBZ(5=V|EXaKB3S5ydGN4$)#G52SAzbp=h z8FMxTRd`C$J$XNP+wdKmM?EZ5-^{^)Pnix5P!%3dyS z7xxLlU{$vSeXt+V*gR`?d|D^*!VI6QK?4zmH~3=DI(oy^Y|mup0zTglKU{45t92B! zC^MCd*b3m~o|~%RJQUZZ`zG?i4OK+<&G4^({lXj#T8vYI<#?SZmM204S~y(M_`A!f}#RAmBV@0rh~7j(QlzSeULj zOrcd#pqOyHUMJ4ufEg=-(-gx6M^#iaj0s$AK*i$VUc9J`vpp*c381$g_5zpfIaZ(eMDOw{9m3J-HF1eYz!p}eJw za4qE}P~^dLc}yyv#40VU_E=q)4d%`nhq_i=ZQ|FPKi_ej`{ypT0%O7|HaMR5PvTG6 z9?Y@ei=LM z6_RvAHed9zQ`v8-JdnyD4Z(1pWsmUQ=dnvPEQ2q{>wMvRDbDi@9sp;yKL6LQBzOqb zIQhr!>o_X9Z-%S+E~~S((U_-Stw)=3;qM>bkZmkrRkYqWiGr06$2kdx_A%pNX?NdB zP#D+fD8`rEyF-cszEE~mJ>fp%po{S+hhms(VXOiq_$Kid)2L@B{QW{? zvHprhnVYfo4qFuv0%RK8kgGYy=xBWg_}U0sNdaCbM(aV?n(+>KShlMJ%Bn3VLwU<* zwFI1K{Q^2Gft(2J7O~u9up~yg7Pc2ru9HW?!)L@na8GjP13=UtoCZ~ay6m$5Nm3Fu zJP51%Fqxi=P*ynY>L}XwTIJUmaOZ)l5VSVY2U{K-ygsHYoUKz$q>Sp9|;f z*z-_T#pm0iXKc8xvB!UXa1t;kNg~;ACpGs8;*2TqLb6RVxUM$$BAAoNdMO;&d_EI@ z|9&w~F7_Ubu@*F6Er#E3;tyj^C>GKD<@kJKHarFPIAqTAz)@@T%$=1$^pZDQv7+dL zD_f0?Vfca~@QYQU#?5b5(0xD@FfF()axsYKtRR;-77AAWtX_h#$k7}`(A$U!hXhKk zMC_-NI0ax#*=T&NhB4;uU6aIBB=8QfjpE4eCN(91mK&`WK~srCW(F(q9xaRHm@^oE z(axzTs;$5_7DiWCReT2a&y)xM@(HU4S%s(@$V(hcA5?M2{e6$K;;aSVYwZoH#)=?8 z;A8=sDNa9NrQocxc`LOjJb`EB_Zo9lb<_h;Ftv@XE_J z4!HR9B;plLlMdf)4L~jmpQ-GNclqKNP?KsJV;s&*Ngr(Of_se{fiI!d`*hP79VG=b z|LJ4m{kq3jMG6^jp%*xhoFE9MCkctYnEMJsi}M5wLed5_e8kT(Ib!n(J?t@+z~;5L ztH-TegLc`0_iMBL?m20NtcBw^`GRWU%@a&M#AvgWx;fi9HA$S|eH47I1ydz~1}iWC z9!6u5!B-DOZw@~Uvv+8X1Lhhy&vj!JaP%4I@Zy0`)Huf-Gbn5xP!vH=mB1Wi-9(@j z&)+82Dy$C11Q}=HGy;icgQewMJaG06865xkxq9zpFKS*3QRO9wyjI`> zfyzHHn!GGDFd%nUO$msRJQx6(@D{!L+P%FBN1%{54|FZ@=Q>v7X0PTL!-A(kc4RTO zA9+z_o0HlMGgc@)Nm5!i&D-5#Z7Yf<@XeAtY2oD`Re)gfaP^6+v3Ji_b}Yv#q@mBv z%gU*~Z%qYoPpIAPETthCT7K6`)qXy;k#~> z!Jp3;_I?@ud=MpwqR0GH%P-Vo_}w4@tjFw113?U{;^O?$V7tShdY0gpjiPRI#ZGR1025#hM-d z_rndaWYZ+C%YV>rechs=U9Qboz~VR3+!|CWK5gJUIRkD%;qb!JYb}=6MUBs<^#G?*7$)fLLYosuJ)>F-!HgGF2**$;C;-M1=<;};Lcxu) z<>Dr$aLfuZBrEp_)GDz4I{M()jW-+T+fQX@vhz~aCs7*ruB`ST?8!CS4GBbkviit_ zE!&G~CAj^(1gQd)4U7XoOB`Tv-Hqu{&6cQ0ZxP&z!{HVR$zE$E=;tLW-Z2)*bV1WS zj~A}qP^;poXYe%mv-=|HYN>`$PWEJO4BtS!qToCPfZ_V`(q+{R_+)!zMPOH-TLw9T z(9`1v8ZzG;3Vd6YUB54iy^Z7zW@P2VzMQy-9HO0i;rzfJ! zzDn`cpybwyJ~Y%=b(iAvaq3$s8{p&OO)-g(OTT2(MB!wZwchViDEp#02}}h~dJB-i z5|;~5w=`BIgcwM*o^sS_93KCjs2?Ewwz?%5;nK4%m z>2Uj?6v}DcIYv_#e7+6uw^0oie2gSxsVs#v#U;o#3$ASaL<`_O%2>XW=>oNi zc}+4b^$aGwX;JrC@F<*lOD6UCIRir;M-i9N)i zEO;2-HgML1U#}kc%9m@fazhn0in@fjKo4<_2&KD;D*&NFm85PXCJB0TALQ88#(7le zl+8j^WnW%OLF*qJ#~CV9{HRb67tLrLLzI7S1%4Dre@+wfpaZB&P&L%UNHZS;X25yA zQEZ^Mj{4G@F)8ytbb|ZgzAzVp0otK{z^W;{R-ULMm}w<$!?peg0ccE?p&q~$A%J`K z+xkRx32CBixho+1(9oy}RTS>O%QU=SY*o{sw<-N!^?;QX5zPxHA@j}x<8 zD8+7ZQ3z`+ZU!;}4~%iesMBGlTMAk%`n5%REEfC!C%UYfqa1FIG0H>#PN9_gzzp(? zXiOiXZ8;0Uy|or3(Bjh!usCdEBBQF*-WMKlcAk4P+KTByCEy2@n6d;MAi)R?B%Cs2 z%6@%1`WTqKlWy)4W^8fzYtH9W4w$ZeYoj<$J4jC!-&2{y5$MyPm`f?Y)fJ;n!!@Xf zP{o| zNoQXaTCHfi=5nARbRQg9_ufO{c~2G+KqdbmgmA%ztOXdIe1KXDslZgf8MF-8Vt>ta)BQudPvCqVoY5BDth6jml6i;6uplM1TY}mNep%j7yG(b~ z!W$9*u3<0%TuF?>UI}IQ z#wA`j%U1UQMPsx{O7+A1C76!cK2bPRl=wm#fMivb2jXV^wH9OM1$e`E z`Auc_iuS#>TzEXDNm}d%8ONme!Rx(og0=L<4cwt6X7}o4UR~M|7A0Wb7d|}TY^7?*ozTQDwbhvZ$b)NQ^%Nj>Wp(`j_I9^M2)R>&*qXbx@ zm}8U`}xnpT8g6xS_|s%)=W$uqRW90L{(5Do*)wz8CpKGP@p7Qn6Ta}H^foK;g=+NZ_5*Yz6K}$&p(uYA zdNd6502Qw`*ec9{St!JDui;ywsH#|HZtaOtW4pZ@SShh;dhbKJ$71U_HK zp$fAD$0A8;gd&j7V{OMOFC=@FU?+|s$f*K$9*Wjj600iwsGBmVRv;hXeIA%AZ|ygZ z!%&N1eC94UNy7~}sW?_RrxN3FGM%yqz9b_}ZU zgc9R&oWvuJim?`S8A?@n_q}+?zFXmGz;`MkLCuLwj`Uim`mp-FxmDt}^MBCCpKd@V z7?V7Z+m21*f0rAhiJPnU1w}}S$HZAHR43LPF=2>9PIZH7(+5?m>A%oAzH_3rYg263 zy0MNVdi74O1x+>@QS|d909#+^t%VG_;yeag@9}s4h0o_NwH0%24abwE=st12-t_eQ z^@}XVw8|?6oeSUjoj5BEX5R10 z3DU0m3W}}=m*^km@_v)#ot*VR5ye{<{(KDY^ZqR9(KlZw#-QNm*RL~fXg=H5Vfe%x?g*yVtw!{9%WX*?CP0I^f?-vn3JK|{c$kvN)|Vq_n64C0CC$<& zTY=Q0YnWT8EWBQ~ub&7Yg|}|41;gzw=_Edn-K@K#DqL8tg)0|1^ceVj>BI1{iryV# z^&r%=;HR^-aVI^ugJribpkM7?RCHnEVdM)}AA7;3VzPJHRe;AKZ&d&vSbp%ZT*O+^ z-KeLTX1FS+5)*g@;CSCqe?q*TetZA^-~WdH{#WQLu76YooET{wxam}t0O_{j0x-Ix zXhZLl7uA@!9w>d69+dC4<>_-8=DI<>72{pk2hgWu+iKjcitbXsD8WsCTynffSoxGN zKvAa>kR&gz$6H>Xrl$Vzar7Y8S>SeSPr=g9bBvDR3%!vI`w5D3?;WktL%=Mx+2O}$ z#Y12diZ0bneYH~Xdc8PzHv!hKZP!hOl|K6KAMN@5>%Mkxc>_MT*WmHGw|Ba-woU~4 zeEC**Jx6#sPN^nn&G!f^52LZgD%jT9$(v39?YdSxTUG~i(u%AH5Vm|`IKiY#T9o?~ z!uXh&B@TqBm^eY8%$6MdMfzy+8Prjvpd7p@K3CsW5}ABum!-T}D=q*c1!h1WfCVZq z5WL?nm=QDSV*=tqGMTWj16LK)g9oz-QD^!R((>ap;Z&zk(fB&}dw(a}rRfVt5%>&d zoE3Oa2Vdd_MHW2~Cw&A|3lCkbn|E|z4kQ5q32mq z+C^aOU4rSiLP@#yy3+JG!|i!d>>*_jt;hRhrJ7^sR6}k7&jvdK$UABrT-3_Uz+{qC zmx|I_74D(YGo@b<`9E6_RMw3f}J%t%a<0_-*pi9b-0bz|;$fLE|u6xRsje19&}%TI5X7RXS*3 zyT$x`FT7uzK#}P;IKqCkp^%)q+_vG{d_!)pL4=KVA4&g}?a`0rsK*&hY=tcc@Q0P#gZt4!tDs7s!9K{z zIgh$oxtmr$5y1A^#HSQ+*&Krg5eZ~HKow%;a@}FXZJHX*Te zJb430n8_UDHu_M3d)ahO3Zd5BB1o8LZgR%j_Tg=;En!Vt=O4x+L4TzIC?^9RA!5V6|^Wb8jl1+K*u7x@Dv3L(yE!>O+=tD3B z+cTHOn84pp!&;PP`&#(@eg`@1fT%oJe+Bgj?)^v;kBT0?i|3JChY5T1&UVxdOwQ<~ ztt^b;51#{|=D0I>6Hjwm#55_b%6Y>REAdHA0xMz*6(qvff_o!@;XJ53F)NQT=hFTD z4=cCdVCEN0?D68&s8^ZOVa4(Jjy>IRCuO_V^Tq~3p1l^wr*qgAOqHUr|KorCYx9>= z-+mki-f#8}z9wot@O~2k?#2zSLbQG@y8S+#Tl3^BR&Yvz7nXSEX&a#}wNf=A1oo`5 zR9->6(DWKm#Vg8|*J1G2Nd{9Pf}DEk_o?{AsPa4t2}=cVl^CUj_ugWuwtLseI@ks$ z%fj+$Zal%;h|wB>It|l@tb+2OK#`phFeb4LT^?xn%~i0%^01g;rA)RBXi4yrf0vHE zZL<;Q1dikOQCv>nxjGlBS=fBh1t?vd=JLCWTMkG?4fMMnC+29e(0J&u6b#%#c^D?O zxs)R;%~SBgL&f5dI#0uJ;s;x&5Khm_Ii^$v*39o0&bd zBbS~B%UKmF2UHu1ov6p1-cuAbvW>k`Z2%#!2SyyEGXQG|-~MD1V)H1H^hJO(b29jS zUhfxbArtjK|H0jAon=#@&+|l|1Fw_sTt!i=z&2RoMUajiwixwv9t!{d^c>JEh4mH^orj=L9$v@6 zn{sY(vp|!5>jngCdmWA?tOtrIG`t`oobYi2+1m8#m~dpY~g78a;lkl|Mr*A>i;GD3Vsly0M7x zBhY7AE>SLzz35Vlos>&oJWx2TP-yebwwq&Y8St3NWmvn);4P{^3ykA1e7-?jtpQ9H zwgz-kUMN*U#g;zsdfTF}fzeqGvNpegpt*oH7Sx=CpCok@h32$CggCJpWycylaonD3 zElvyqO`bmS_wRs+pxA+{wHs6_9W&Hr-|M0=*@p{wO#xS}XBg2_6! zV=u>VHIkzIZg--R8IduNCZDMTNYT^#ef*4=o6gN9yi|PKtgSr-t5$%@YRhbG%Dff9 zX=K9w{X7Ugh9BO9HTeG1@xvnh`Onil$LGQ)^(E^u8Wa!9@U{tbeM}e~X0UU`u)-7) zv3T6!0lIJ)KT%7tmnO3V(u#{TRNa!`od)xe>Jp^VZBBSArHH=QNIBV7V*e+M+ul=N zy7mk`%Vhq1Bu%Iwv;zgAp=R6cxzvkz^m`2FjI6*>`j zS-T8PVal9gi1{E2nJ7llNI+Cf%m6T{P5pdasmAQ^-TzfkRYCWJ(+Q$>=^*PDPk`P|(%_=GX?c>CHj+ryJy*4_ZC(8G(`1vLMBP zgEx5%_Z&)7o@)ITHECxZ)e{` zm-HU&lcOB0K{;y9>T#F%G-V(sI^9xTEJQHucUPe08bp-TR!=QI9DT+r@Ex>}w^C3& zp&=_)JY2DVP-Tmx7eY#1CFGaf!0C=7MPjzBJ7MR2lx={LRN_uY07pLfcLzqDE`RYNw6# z0C2QUN9ml-q>D~&zBw0$jNqNDZCtS_=}vw`>OwdUEc@^sp@ypq8>Gf^IF3CJPZ3Uz zBq>tT;8+OexJ6_ckgHZO{fpKeXIvK5Bql*8YV{vXR{q^HxF&R|p6+{Ek`CE(&?hmC zamUoneEoU3QBQE#&Cq=&Jo_~6Roted2{P8>#M@X_J<~t87Q6A}Su^g7!{Kg!?y$-{-N!+R$W3s->`Ky%xzV0+% zUo@#`-hUW)s1)@0HJ=Np|4f3_o6@?-4HzRv^q@;kH9=l1IU4i1K-+@w(_0f>&p?>h zUQ{U(;<$^nVDwvupH4NSPvF2tYBd#iD`>XMH|Zr0#guUR>>OXtbmZ}^PV+c0>-+sb zB&SKcWfx+%p=+ab*yn;2P89CjG+k;H5N`0DTc8w-+(zMC;5)j z5xVuh)q)xVrwq3lek(Pf)_3_&M#twG;$>86?~e({*dU;n3cJP(p1SYSAPEb-Q?Qas z76Cz#-@jip{PZyA8cHC%mvls`M(DXHPzd^(JJW`Fkl+LYQQ8mSib^XhfExC0J+0zqrw>6S zJgX+?NWMT(fz<<_??nga*6|4mZ8JlkHy1(0qmAp^lad0iNSwaH>v0fa|KI=qMEe(P z!Ll&=&GCQFv2zU+D*|map8fSW6vDR>=Yt}gJ`496+0WJ+hFd6ViIL^zr(kI9B<#<3 zz-ol(EJ~AYve+8jbIdK#qWq{OWN`>B9x3-VRu0qfIi zLa8R<6!Q=BPb~Ctv$r(n>B)s|ANGdRbL7|oyl$h1&_I8#9yV7i`uHfTis9G0GMpov zb@B!}58XgjmWZ`RS~1AsfB*Ug)elW9H$B&JT_bF#>JEb7R768XM+V?|P)%pX67D?D z7?tYA8SJ)k+2!n37fK-_9g@%#@f3CRA$T9@d~3u&*1`aDK#afgh3*6yQ91sZW8eyM zSM`P0QQ7r5c?zQZ8Oh<$eIP9d&0WsQ?-2>W%z`MJip>;d!SFDE^ni_40;T0KDZ04; z2vzCTC(3~zIgS~xex7syvRE5)@gU49k1eMWquFDztmIhLw0`Z1Cw(ki_pQOt-agrx z*VVQwuS0O27kLSj1hf3-b$;>hzt=s9S?ggpHupG{2~GjY720xNfh9~|n<(`hEAs`F zA0|9f3|7Xr2w$@YKZV`{qszwAzGFp*Nl@=|{0RZZf~7xst%j>zD36$=<2do_O@T=t zBqsO{mXz&WLvZH)!8b6yG#2aJN-wK)?U7QPP7_qa{&UD1 z+$Uo07Kh2i=Sv1-mREVh&oNMK27->warpfGQlq^HR;gs*22h7@k;so*(G0WSuE0mk z&P%xC=5!>r2XtR{SW&=Uu)!)=d^)CAW1twt+! z1@tvhvR9rHa{z9Il;kxqXC<)+9ykeS#Vam`F=;wlL_#3uIK$R0HzlX6!G?^n6)nJi z24(nK=+jYT!F$J$oa{)9yhgM^%#my{i=UCGyuAu%R!D2N4Ljc53g#+X&j6*f&{-?~ zz1ENR1R+w|_)$12sn%^TSIde6DXN~wcuG{mF_;@26MN#6(}?ZQx7WqmOvm)CfUNE3 zkbKyyzUOjT}iMTjnvOPq-8 zdFtll-y=KVJWrS%yR^%VUW)B-iu4O8Aq7n%4y*%nGMv+4tPFDFPy8?%y{pmk1Nd;- z_-uC|pM$qax(vB*^nL}x|M`A^*PAcaDz587DT=>;{|2~u;uBtYY50NV`279L-uW6k z=lx0SSXR&gd_JFTWSOI;<2We&Obc%YyWg%@*(1wORG3)^4sRDnK+aorh{Xtz2S&R6 zURP&k!-GSw5d!H&pkBxV96d}jQurk?n?G+_bUk)r@jW)GLEeg!O8~73ZzDuUmE*6t z1#|M^2ye(Z=#~$RE+~g#tOc|gs5RN2qx(;MXoiozDqMh1YmwlaUU=Dl4CXSFh{6`b zEP(ebT~;7^gSZ=bTbccsyq3j7L7t+t654}s5?Z&9-x&P|nJ341m=XP@1!(uA%L=m) z(;z2842aR3zAt_FL(Ha6mY2CmQn zwI5^B-WsMjDvWe%2TEDA3(wG5NKB77a$CVLOtziXf-@6y-i$ooi`WbX;1b0!XED@hVl#_ z?Y+?~wg4g(we}mQO7m5J;XDmyBp&_#rF$CGLkE#9V;>WOn?*Rrf=jr3j|++dml(4~ z&Sx?mRTu32iVs%}Zz z8L9+U?tnyc4)_6YuKw%vCGU~;1p9~iz+b6PbWR_+@w$9N_|nO4$y zhcKs)V$neAV}s|UKm$28!NZH5ZaU-|>7HN9X4cW7-ITlv1P@`&2>VEPs6dz3mevZi zvow}cNM5Q3&+FqvErL=E?|Fo|ML}zwehl$`iLB3XJZ7GQI<4vX&O2qW#ZZjikx9tf zWwAG!s*VYlb$b=M;{V@2Rtvu0#`ZG&2W!2(`JdT>&%?P7N9+D@yXK9}f@oktW1nzB zFaiiWrtPFHD+T9SVP)d#Guj>Bp!B%@gA2bS*mOlZ;Y?5t9m{z(bjYhN&Dd|Y>-Fi!>8TRL~#dZ;n*YUmiI~j@zw^eR`B_J zP!Bo%w`I?PluULoIigDzykcR}bp1ZvHgO%B06?UN-mq)ow5^Z{sxmNb4yr z!W7(zy_x599F?a(>78@OEO~eWaxBi4BpHC4zPt+Vx=nZ6V&O-(LnkqI7(@bmwJNX- z#STnsD7E4^CW_c@&mfM94xf%%6sz2#q_kPjjp6dB2%P1sNc8$)65(?|hs4N_VAIH| z#@X6@J`JN*^!CB$>U(w%F?_zCm{m_KzapWgQUb07v>M6!kGSj`kYh_o!ixKXNFz8} zX3(Y`<>UcA2eThH_5gnXKtMU}76DVg#Tu zHwkC=XFlQe*#8?^a72kWW>yI+ddUu~iY`IVbRxBLc3h3*kn8H02XzP;V4BfIF7pc_E+mzu&v4OlN;{)`GX_D%t!}bD?IS8n41^+8@%5W?dp*Nb8Z@F?+u~` zdte(WddU}@+IK|Ca48Ha^_bV^)J22$pgDGngq@-VSL5P3tx3OwXWgc5T-pchJ_xTrxk+^f1?AAyggrMz<*r`MuV?dn~r4e3% z#2FZjyE6xTLTkN8j%_xV~2QdAg2hUys}3Q9skq%tH;cqwg>WK z%=S88tQtaqVMQ=%-JX8uS;HHl?!)Z;=2*~bp{HEn6~A7`{(1X6@#}Tq|C8S#)rhbkhr!2;)=sw# zd}`M-%<~%IoNR)kPQ%brSW$%a+SMu0Nw;1z!*tq~9)(1#6(ia-YAux`Q7v@kvBK6S zCoE^>qJGj}^WVh^WC_&oijYAovU_7%t(BcVoov)}#X0NEYbh$h3n(}Ey?`mU`3Is3 zowS#OlpQjg1S9w7_qYK-Y5~F*GG_mYVP#de;x+~uF6{WqOa(%YU9 z&$dk@Y7u-x)WiPDqO89`j-)nnT(s!tUKw?rG)oo57256Tx{>~B1=sh>6E%AxEsxU_F^q0y#|*+Y$wf5nC4uzx7~^Wm(NA9ho5&V=Cf^i>2ex{ z%7>Gtt96vHWvj=5)&rrAa`AW=O8iKIUgd{qX{IJ%@fP&S)LnkGN9hmJi8YK#*{0Qy z9e?+sx_pJ<3@1>tH?FP0v6#sGVIo^z1rp*b#0B+q(%F~85Y!S9bPHnHdW>L~>=C!f zP3hjgf^%Tb#z4(-I~LQ>13!>;701HQ6sITACo5}J;x5$$*SxEhqMXVkIxd2Htwktn z9~0w0A5whRz#shDA|N_a4P1S~ita;XjE>K@-u{7%9IJ6#O6b?`q+0iS2Ve;O)T{_f z1UR@GAhbu4(7=yXP@N*4u{i#i6BvbZLyIv)@BBd%Wb`qCa5Wk3nKl+5nm`zPa%$vL zeYF!|GKF;kEx761-+zv%3ncM?xAIvs_7|MqY5 z@?gk0t*`qR4X@ZbtZpLvBV2U``m|d$=nV6O2{DpQYZi)~gr0n=G|kY5>FGNTRvwfD zWBX{phh7d?z7G#A7H&eeBjM9LBZ*w=!SrhvZOKIZ#|+zNyT@3Ih`AheJZgQ?uP{=D zmII|C@(AXh{nIIW;&Tlg^(m-l*^Je<<$NCudzs_boaDhYqoQFR9{;Vywnm@kE%$^) zv6%WB{EIm#CAL{ZoWquBj(BewJszn-biZZ-Fo9Y6EA}?v@k~ZYgBe{`@592@z6^i5{_w_^0oz!XS2e{d%DO$gct0v$?-y@#6!@wr<+gu!(Eq=b zwJ#LJ1*XF37CkJ(0x$MOw$D~s=3lL2SlRDE!_k?>CZPej`W8Ih48)t5G(7`sC3pi2 z9uX}tyVtI5(@rZWGZJgV&2}4x3VWwMCasgi!x^W-yzEinn(ST9qrlg(Z=}zMNihc9 zrEd|6Rwx~o`xa04pj@OYMt|YHi$|Q&boNQ?Z@%!+@p%%6A~WDSXULLAl;>|)oXA(B zp1WUvH(3RdJVVMct(5$sL7yw{I&8HXM^yZIYq=w?uvn58YICEl;oN*Fu)@Z9X5M>m z_^*GZphUK=K$4al3a{y7w_)jwbBOLyXd1ArrI6+O7SBF)>%xNtM<%A=bFFQHd89Hg zKtrneB9%vMEA8?Sqkp09BOa=TDS$zg|pgEk42Xso(CEP7@Zj? zYXA(Y)ScWdVBM13S~-q|Jk3N20A4!|d_b*keZ9(nqLRxJ#-{4NTb%1^oB-4leN6oQ zHuQe&#Adi)t$F7nCM`M2`J8qocy4AmYZ&De`fD;qyx@CX(Gn%;u9FIU)Vpd6S~;!4 zW891M(=a+(2L`a}3hR1?(Abl0ry9EDSm9|SyuHS^%4_We7M^ajvhIsN#Ei0gz+m!^ zS?mg{=2%1tI_9{}9|jlaQFi8eD)-W;A#(w*YusA%rQ6jwBhRO2lFiskD=UKD6#Dx` zIi~=B{$87FK4wGf6@NdUKy!O=_7$TK7!JU&lV7S8^u}Pw-Lk|;Zj2e$UJG+x5LNv7 z2-X~^wL&6au0#taph&6|`u|;xpWDi9(M6Ac&i?0|w`nD)c1$#T8?{VYNG;E#S>Gu3 z?P|dhGmt2k)r5MVh^N-bNdmXjn-QlPCV`{R*cW3%q0DzyJF;M{Xwgej9%O`b8Gj`@l5{>7=63 z8kB7pJ$}%4AN>6|`Sa)GMCHy`U_0WEB;1D&{3C3Xnu{60BrAd2s08~k@PGKXpT*#T z&>wd2ric=C3r++m;+P2Uhey3$gjQxn3P#vfqv;Mkq5BSd+Yyxp{SIdsYcln>kBMT( z?rVpW|4)aW5+Wk1E~(KV`R7jeksp8?X8EBhpaSopfu_xnLt|6bOF>LRfHxHH_nSR; zQC!XNI^VGdsGvKKivPS1oVA39VFq$2e*fz?+V#blukD)E=fb~!{oYfXEahK^;d`}> z!FVKTlV?(XP@Odtu<2#F6RB6QZx{I!Nqn1wX+JJE`EAV+>u7BwRvNk9)@D9|OB;nu z%h_&aIH8K-b>sqI51s*`8H*+1ctSD^0m2cArCj(^6-6j#EUG96&>QEq1f3XdeVS0Z z`4C)cN#et;M<2682NzGf`sP)$WSunWm<_|rU3UB23^|gHY6Ln?`1ryH8BuEy7dWlZ zT03I5bAze;jF;l&t2@MT;{q#s$(06=*&ax^2lHmA#~T_IjOe+EJm@6EaE!ygn~X?o zUAKvBORkB9u`8Y1NhztTR>)x(owwJB8-rYg6NfQ!Egfh`gQd;6N4ilxBr1=Bc>vx* z|8TK_$gIblDSOPAOB}St$eJ6GM#PBnBpML}%!Pk{-4({5g5Es<(DkT5I5FyTg+^fT zU~B8g#3DTr03+3U_Q(q8P<4Dh9q;#n&!~r=L`IP!B;^K9to?_iL3c` zF3#_DU4Mc+#6z_;t|_0SJD-OJq3&nS#x|6d$kGhYgz^C1S4`qgUT#=+KXiax60S#3R$Xi)R zfvt8s(d?YO0-WH67L^^=Vnp`BIQ6E!?p!)6z#>OpQ!C&Zb+e&Ma)={bAkZk7|cTrgsE;_WHRou<7G0{UxxJWM&ot zzU}%)kcr{y3yu+9{4wgC6Tkt7gg^hI;)_%aiHO)Zg2J{Fv6Zb z6im=PQ_jBMO4;_^eg2e`CduPG)+SOQXu`LtqmUgImR1DIjyOSC0i@lu7Te<@RsUh~ zI0m^1*&nwyP~UameAlGaQxWHl8VWtuQUyJPP!$6Xl2k@-JUnB}<5MxSd{g5n?7)7O z0{ZFG?MiRNKJBN%LQGAz<{fKnzIv+VeAW#R{m8Rh4un}N|92RotkCSwe+ah5fUnnM zy0V)f<{H2;y6+Ju{Tf)RE&xl)J}5|<832x$ajzY;!oU!=Ub+*XLTfKvBd_;s;|M(L z4YMlF;{{Q{?_Vsh(Rp#uctltgF285@u91B0+dP9=1&t)9$CM1qp;kh+JGXfU7Qwvn zNUhH5tY`%ewnmu~Ktb0b;YxfaBGI)(@MC%m z%=`U4$Dk=Nfyk~>R2Rk!Ux5`f@y!m?h`^#P_KKG8sbHItJD3`DJYuynsw({))6mnG z!Gx;EF`^0zFg8szn>&p#7MMgd7d-=@WFO9($fRR#!w!Icf^?C%tB2%Yu=?;H>w+Lz za7OYyN&#eU@mjG1?{|vF^v)VcJxQbt)yj~Nnxor%R$*W7F-E-Rwaq*q$7KYocC_Ai zC~9H=1fCaWTpDC*vQkW0uOH5^*2Q4c=>s}$mnHiB&qpT46H1yv^!w>1RZ1b8mUL4{ z0S3Yf>7kq|C2XSQHZjn$Z)~*_zYCRrjLfQAg~TM?4mE;AMWHZb$!I!qMh;@|uLj&GN)cX%s6}{lKU=UqdEuN#4KBQdw?46xvsR4Jwrr8=xNty@LuF3->{%(dC3c^& zahMxOpZ_!}=`l{0pwj~X{?9k$ywnMd)`JA)ShI%?gKMIP4c>SN_LGC4`w&%ByDJO# zvKfX?9e-vC@VT$ep1r3xcWfOQlH}RaqP_2TYDStg{XLmU(HckjV>r%=ZIZIRK4Py~ zMmX~&tuUjcVyLL2FUJVyQ>((vI3G0nTp9}xXvN@e`1|)i+bDrnM1`9qKre!9HyB8k z+T8Zv)k>5>dPjsg@H%bx#p!D|d*7By$=Cws4nE+5jb1%wxLRzxq#$nM94n>O^-;;i zAF{&gYi*pvq9uBt43GSL1zI>qul7Rkbvp|slQ0u$l7)93iV9W^MJgul*svZiQA_9& zs-h1?DFQuGowk^#H#+KZZUBlD&)YgZ15vg%~uixip$<^b9e-*>Zr0Sz? za#jy7$6^QGr{Fvdf4?o9qwdYXv}4~q6&3w~@n}p{<`~dg(MR;>U~uW2c(D8y{*fok zRw$^!V_pIB&27pu)}J0J<>d?J@qz-q+$}A=R`fQOxwx^S_*D>ry0lL!;EK zCXvKaHoe$q-K9!;@%iM&&e5Yn0cROa0EYWBZ^}6p*VSRw!|+h!VUpI#N#WWzAsiSZ zNJki3=rq4y;QZG%(|pE=Cs>9hJMLK?W{m%I>H*{tc2St|woMqZZz&#j>CTG~O0|6r zY>>@Ym^;XRNhpll>Ma+%QY{%1iL1>Ww{-9pl zy6v#*abjA;VWC6-Y=xGIU%y^3ji6Dr{bzs#*yN5pR|#48{Lea{Gp8~ zLd$LUP9hJ0b1u|l;qTw;#+k+yd=STIG^xS+*RBezMDT_Oc9IcXVW64TZr-n`QUs&( zy{bkys>^O+d1pj*2-4#H5yzeSi>wgHl2x?Uv1-|Vj_G%~8RU>xsq2FM`SdMruv*Ajeys@kATcAyOb|sKq zU$7*4P11Yw;N2tH*l<_t`aarxztyT6MMVl%po|Yus6C8tykf7qkklKK4d^dj9n(JGR+Z03}W! z?Ac#3T&myGi(=@j?Gmle6=5fBGY8jF&ZkqknC`lbvY*uRPrv3`ka!r{@_V{f$zA!6Q>=Uh$UK3BKE!3djf)`;bts1XJnJp@_pWb zr&ek>JYu)p1BWOQDp|T)0X4`vvH@T%0$Z}}(awW5-?cD5BHgK}c0F;P*S^?#<6Qqd z`qumZdL2QEd(n=(b=0HY4oOzr(({DIUB~rmJuh_RJFi8S&fc@ z10ukj1E*EAK*du%nPV`|Hcsxoogv4zL7;oohVWLrCnht1PtuJa-h?quO5enE$*qS) zOH>&1h5s2~NxJgHz>0I!0i5CT6!Y{4K0qQGcRu63C$0v(U$#NQO!y(ls@o9e+nza) z*gSlPup)6mYZp`mefW-n|9pe)9o5&E5gQ-xVXqCp!C)Q`cZ6M5IkgCST#gCuWj=yz zfN#RR6ToX7X#K$sq>1jI|NOnV7bzPLT?oA#)+WBqtyQ?t`-Rv0H+?3o?EUh`Favm_Bx#y-}y{QofIg zci3trA%r|E!C{64-qy!~eG_5}fkJm5K;oUuT(%@PX{$g%6>Mi`0*-T|&DA2mZrxybDuHP>s z-Pi=@>xC;oz;{+#i$SkU3TmhT-tQMqcg)whU6E5;!plf;U931MDW|G6qtyC9OfB%k zdqPWn#Eda*xz7vdX((1ON86*u`+(&dTE4c?$lcBo@Xo04B8u}ATqDR<%x;5)*TQ)k zt`K!$RTLGx11s2vYOOnh-He~x@&tZzu1loZI_6!ft)GBd&P#ogk(I`v@+jNQ4q%L% z;T6dC5xIhp6t!T>H^~nOVbEidWO(Li130LH+7ik>@%j9v*8hA#3mt3J%8&B#*&e=?TAt=|?^}w;ky4k<*#EZ$M~a((FpPt=@Tr0a%f|V9n$hk@Wo2hw(A#&5mQ)4THSp`#Nj*v!Z1&(Te6A79$F*wm;m?@(@Bd6n%7S_B*C=9Tb58)13pTgQ`b&gqp=!F-2wPhud=X7Msfhsfl*ZJ1Kj;*6j2C4rWg ztwh3-$EL5_Mm%p7fB+jsB6nKsZC_P)>dsA102LQP|2nas~XBplEc zBRY+=8uxG@CSEZXF9PZyC`Qt0KzVpV&Nv9B<2djjK?SxHu0(zK#)y)D_5`+5Hl7YZ ziG4xnRbZuVY-gLm#^G&+x&sO8FXFF-B&YE+xHCteW2~*;&-LnFQkN@rn46Ri+e)Cg&$A>tSVW@D3(u4~{tNy;cYRP@OzlSd>KU*L6p;PcogWZIo= zul_~aZ4qF&?+T+98ah8uebF$T50uWk;waGOWp_U4^`y?-l3l`J7SSL zdGcw-5-Co@7mi?{_0qRTLy~BG4uXYo%Wz!Bo7n^OgwWSfwQQ#*UlQ$4Ebv&UR_PSf zx@@x0t{Q{Ycs%UbRqzNaDHt(MOaDiPapYl4Vi;CsoOoaxy>o-Vb|SFcyn%2ddY=Z> z7pv6eJK~*d%H!P&7Bqxqne;p8`?nk`BFOUZy9=zwf4l539$rL)YiaUkRu#0yL(Pm+ z4T@_P3XZ2qc|*h^`Z{me9&0sJs*3Yv5NoZdan& zVI}0i2R-T6(l`uOkU`{s=;CRcJvng*q*nDN^7x|o#!LwOOoax{zy-GA)@Ax{#+|u$ z^ggx;r-))kcD*VOVG5`G@yzVj!iN>Q&l#yQ<3^ZOFdt?pW`?V`&63=qt!;+pp7GUr z0QLvn_l`c3tx#jDL@O|8`Js4Bho=2KW7L;Oyrp0$bPMYDcy)wmN>y>z67*ih`=AeG zSAtmAy!8S1=+`$ec7>EY%ll1Fj#>Hj{cHzhtOvl|=wzkhxWuBr|HN~AIoBVPGVtY2+^CQ?ommGS z)sC+xs}oypj^hXnfGq{}4;qQl{48wC)L=#ho0TMPV9!Rk=i6H7eK4qU%pVfonw%|NM4%?}i#K zx?|pcb{eyG2SJ=WdthPChVv{TIO2O^A4>P+oakI_^1X#k*m)EbxfgFnUS}DbZn8Bh zKofr$f68s+mCC+A!28hX>6zbGePWHV`_iW|3lG7}UHpkDB~CLJOO-w)^qpZF=QkHY zYYmApHt?wt6Aqu4PL0P1)@S-a=<5|hFS?ncc@QU-lHQ0}nzMrXR~#C?H3F)N&w0j0 zsC#;I2h$LPIO<6NI&bQAi?4Dtds?;v9wDJO$ABC>*4V9MFI0`C{WjauY!3hFMg=ReeIS_J5HQ>DNBq6K-x zfVIq{+a{N^i6T|n(P!C}LH7FlK?cRyont))0WHY+pcq5(`(1H8#VgrDm|#VGm%E@I z61Gu1^p2Aim#A!8si()@bfJ)B1=uC`VKt{?&a%A~xDl~cghd<@esSplHHPkrBU6vf z^cFeo=;{?Ye!8Q*2Nle;|B7ny=~z@uG5dfLXE72G3T}lOEZ!rtL4F4?Z9WTqMFNLk`a6!W}pb87`j9cU$|QM z8jKzq6+YwN?;55gvIBVrIxGRZ6xPfc(O}NN!m%P6NqBl}SndkyAc z#C(-P!;>QD;q_<6gDf3hc-jj_iK?L#=n`Bp3CR&=wlOoKoZ^7`^LZe_nJ%$ z?7dz`&|?b@E0|sJepNCG=OU|btcNZkMzk#=vBDk6BS#))IO>XtL1+$y)l2^UqGOx9 zdax5)mpcYK$ynit+e5?fWT(Yacvx}M(rhhYEILAGwgkkmGGtc5K}T(44+)B<{v$~= zDy&B53U9&(Z9Ge*JlxCglAg$`(dn`-~cR*Kx z{pvja9dayxJ zuxf>4>~W;e1y{z1pRX6gA=F`ozc=Jgt{t%IxA^Z_J_t0DY0B zOd?(wIT0c{McS6f(o4fEN>(Al0QOcw)fKESQdp#FK z=?Ls4!dvFU{;II*u;@XzRJ|C^^EQJh=PPajik*tKsK8i4bJ5bTkfxD}Vinc<&K}qq z2tlvDS|=E*q4pDC<)}+T-5Cd3iSeonbMfZG#(F`wLCkrS2)ED(S_S&x0Z^+3mN_Nm{#+AS1%dZ#5B zVzc*V3*pdUzv3Ng1P)uL#PPa5_= zll}!x6?WIr4T` zQf+w)5UH+Kab4e-#SdK9jGLaf*XQpSC9JN~@PaSAWA-mbl%@CPzOAK~_=bLcMx0j6 zi#OdDbQ_*=;=SK*d_Et3y+}ey??Me0UUIhk1T@ocRexX##4V^2yjn+nX|NY%qs62c zr}D5wbQKZPG01i+5v9EkzOo{$BZX9oV`AG+d5lH>`@i0ybFaHS*vYkl6_^TK>i&6Y zR0_6Yb-@ZPrE-yDjvc91i((*+P2>lu=qE3KkZWLdvp|!2%J_BPM3zjd*&97);tzoL zu66)82`B8UWqTbAU#M$E(Q~8vc@y5aO(^o@j*4sD0|}R4^l6ZA_-lV=+n{v5GqN`W zsC7nlt5&vM0g@&*;-0<)*p_b!_WNU8c)ecmsaP)PqmcnR2l~=by!zu(<7ZoyjKS0i zTtJL(Lz$Yc*!b!2bhQq_fJ^1nE!qe;4N`vm`G0s1-dc{^ahOK0kw!J>E=~D;2XMef zf*BC#lt_FbpFU%*(rm(lr(Bc_D8x(f(BZ2HP+#!X_Q*|y*>u=EE0(#8K06|Hh=%~= z_S1j=dZEZ|J;u?d!RHy{j$_j~t0{2#ZZAYBM@3}PrwYow{lExR=-sYC)EK>^$0GZD zJ{ZTriep>=6s<)PaG$tBB=yvQUy+`BR@#VrdF|Nh)^ zv^rY=&5bhvZ(%K#v-k`RxfO~TTAANQNRLjl}m@~{x zVphJ%YkrHG#$s?vCQ>E+SVLaDnRa2_mWG`wH?HD7LKq}lF!bl|U#JMa*BAf#*MC2p zo_eqjXS^fb7+8^jGZ%5OIl~uo+yJhu^x%9)WyzqB9SAZO{VrTkVr*}PZcM4gVa24I z-;$!J%=!cX`~9|!UY-Xt&3^y-&7S(8fBJa>*H!R-9qd0_l#S7s%&D+2ahQvz^(}6A z{V2mSPAVz2z=<>M!F=r?P>r(qsAmWqPSgU7QUW*dAKv)2mM!U(>??hs=*dh#UmK*! z9{x$9$T48rJ-J8hc$R&O&MOB1RVD_%-mjl7EP0y=af3a-j)O3L z`{Caj0tpJ}vCAtW>k`bppKQR&0C`|3%hXyTU;|k7?&%YdD*~XFA0{279!Hj)_|6wl zp*^^nVfaM9dQ<=_(D{glb`OASk=Ym13V%pQ>Dr9@1}eblxXD#=tJ&N=Ze;?97LGSb z=aCI^=`P)q-b#Qm58o9kyQfT<73JK*By0*Xgurh}Ggn8@d1F4mBIDsSraMO);hKI8 zLboA#h{v#SJ%UY(jxFW=ByDzOq&5%O6azhzmsM}Nd^P$5Ue`>if5fj3s8(E^KyN)N z$EX-s4vf*zzSn~`&+4&-xQ&wLwWGbqxX4=Vo$Gt?LQ$;9V5D8RuXSf=dZatgn|4e} zf5%)T@SW$m8Kk}{ELC=V5KP7S?|*gl-q2ddalE(gxVO$*to8qaa8plx?O!X0{s3P# zc(wqmly$0+NRwl%on7bmOn8q)qU=qQOCK#ttiJpA?E8I$J%>0Z0FC_jCn+djc!Hh) z;5Km{$L4yU=YgUHJph@ahWGnGZzNAqUO6FZIP2V2&gq0?cECbMQAQ57ka)XiEULeMc3lSQ%CK#cPZ&*NOa_3|je1$PgyE=}uvN}4A5?)yt5p==! zP{OiacW_HelJlL`!rQq7<@f4s-}+Z?o7UaO3PMwSmZ6(l!1p6N4Ty)6JSJJP=kr-H zVH2VQtbYg3J+O7b90cHSgwS zkM}fe&xY&9N*HibLM54I8HN=)f2&6rp&HR?5%hKQ0d$+4-mQ)zjalS}O06DsOJu2& z2s!FHuogvGs(L%l!Z8=qc(`sHJG=qRbQnGuVpph_XiO7~ua-E3>RPJWB2v<$mv^P+J6s zX2LLFp_?hJLV^Tm;V^XiB6b22cBXSgtZ-mznB}Z3m`bu*j&zB&csLhfk5S<>NMp{m zAJt=Ja0J6ou3MtNCV@{tP%9v%Y|FIs2)s_TW$OMr*MdqAF9K$1TP)t#RQ?OH9tUSakG$)-Jl1@1{Qk~%t z0C0}G_v<6<%WI_AM1EVwh9Ad@Qi@1C+lm^Cp4L}=%ze6>%C-6QiC7-4AA+7_@#TUTZEPwpXV2Jtb*#Bf zKT1JhHz}sM{UK`R8mv2ty?0u7ZDWvpJ&*u&*WLDo;|k~a!QPB^V$6n9Dp_y=U?rJ~ zmTJKJV1$<|%k$|2bMbISn26MWpyb(BJ-sVaBfm{sBaE}w0QZ8PyfXhF*WkLT(VLaJ z227G{Ci@W0=TI}8bMYXv71rvS&Qbb67s3!XMo5W zP*Hx4bg}{&3uj#*L{R{Y&3{NuO$J8-z~}S1=gbk~Hl(7c@7|Kr7u%p=^5sc=9U(_W zm}B?`SjQN6zp>-Dnb0$~n@?6zl3sf|$d#Kv<2U9U82zShry7nVAgU+3uwBIRJ4_bo z`DZ^SI>{!@@3T!`!}gt?i1vedj2h8GU z^2Qb~DTueNv_rDjN;z*a;6Rjsp#qEXNeLeP7JQ^p1@w;T5=Aw^XEFmXEwXl)V*np6 zp&ol3dogDzwqMX=uAN-=xq#k0GzlxdzHR>Vd6b*)uh_9<9^hRy0!Apb2Xbzkt&G4xhB9@XH(AN~fn>*zkki|+iwJ`}Be zp?=08<=;w;5xmZ(ysaqNI8=t<jP9X$CXAqlb|!s&D38rs1Zm zvufUWe8#EM-=Q6~Y(`|7*d(hkNnmf|ynbM93VHs$IXLPoRaxRcFNJlx9&IUhSf(xa z-9n@i6PVD+YVO~E{_YqxhipTcT~UWY3FI9nxttWt)^AF6UmJi=@HcJjBy}RfipC+Z zbnMN454TMs*_O2bOymo4#yxUyjE-F@Ln~*zB>|Nv{Z??4m1PJ4DcupsJCdmgJp-o% zws6F)=kOsrhmFDq>_i#Fh)P4Hwib4Z411?YjX@}J{^26*a{z_uMl3TGzWPJ`NA5uW z-QzHfwqR8;P(r?Z$5y=#gOB%Cm*agZK3{@WnxI|UntQ~#ErsZvVACfv<+XL1v_#LIeu(ur9`S2oCp8h_rz_Nq zJV;s_Q8fVgcZ8A@#bFgA{w_TzfUo$*FM7N1xdwitZksH42Mj@q3WwggfHJq?riYZc zL?TZg?e50|YoQBMs3-4aFZlF5p56di$caaU-}(YPD#^RLz%~WRQQ>W4zi#7PVY}rp zyxElFJb94*{`IDO+$OFuF~XygRB8lclsEtDJmGUu=Ran6cPxw`j-{MA9l6JxII3*x zzNd)_MNoi^F`z-yJ)+m|qd#W%1TseJaCxeq{^t~cG+X|Af?$~CwlrDzTTVK7ku_<12C>=F``9wMi%5Rk%@dB}Qr!qGni4M068$zG39ooc}mLA5Fb#y%f~_d6vjLH zmcc4Z1tX---|shCmT!#48hl9rcD4_L3{0uBMkPX06eCU~umIUVn|qkr-tnO2KIef5B@f{LY|eCgFyyK$KgtiMDgm!*}m3 z_xIxs>;D7qs8w$gOl6+^e6%BEf33~y&z>>GGer%5{(d;W4GzK8I?mV0k}*ryG#g#K zF*HD?YBV49-D=&5Lb>RYY(q@Qn1i`E*UK>(w!zD76_%L5)3@$_RDJT(FVHcVL_EnV ztW{A&U|LX2p@aW>73{HGpR~Lx2AqfCeBC54vjg=ItWc_XY{ow12N-rolmY#k56~Ig zYK>Cu8xX9u!ZUzY*b*k5oZ%q%G|cbYGTOeUMI1d(1p|T3hwfv{88-2B&dv=vhK3z^ z_#T8Y9|6i}6GC?0qY@sY1FN80Wzm`pLDW~a-QH0$9L6UyI=L$LWXI8Ph7o+$SBf%MK;kw zBTi~gWeCJWXI<^UHLp8oF2W`KkxHE6nW6|F(ow^7;;dzZt8;evlt}%F7rYh}6TWOm zgTd}YDP4?KXxY;ja1N4)w1;`?o6fwFA+Z18kN56SIZ!L#JNj;5RO=xjaVfu~$@~I{pV6m06JWAHoogB)H0HK`BuUNVqaTWY(g57D?On$x<`TE^E5a__%4uQR=30%om`S;(ac1 zBBbH-y?(kY?*+Sdl5W~-S!DZZm-r|Wf+E?tQG(6K!7A(h%HQ`rb5A9rYT_NYZhsTL z+~FQpY?a>q8-17bv>f{mDXJ(MGQURxP&Hm84qjSCxPcQ)-tlGgHU;%Z1?4U7Kfm{gR)m#1?ZA@(NUZ|*%x#h854UId zq`oKdfHW$+Mn@kfZ^Y(I%ZXc%EztNeTOE@LwWU;iBP(t@(9Vt$W}J8I7R!|fF+n(L9mGpc?P(V)1ch^IS&^Q*zqypQs~+;^$r0kHKqV_ zr?cu&@%j4xxpN$t{sI?TaJSn|*%?AzJ(Ybd;oJAxr$3fQ={0d(jTO&I&w+yg)N&ME zjEoAx%_gh}m$s=zj)J<8iVY}CeFxCX1LF~$bK zGT7yI>5*NLrH0=JpY6?z<4u)9GQ{C3(O#8u@?cYe*||OQuC})KM5aq;_~~tEF*c~# zT9nplJ1$3*%VW3coA@O9Fr+El4(^IX9v>a zHfW_s!}1-qXBN&rJC0o=?W&+UpI1FXG$!{v|DO&?s<#FHh%n!@hc5+Nq{j@0^6+%L zFY7TU>kVxkoX}p2k^KQxJ&F2$JIqoL}ALnT}Pa?5%0d=$4c$+8i z$Sl5ov(mx`E~T(P_3bNg5Rb3RGPUT#MvLX1RLM4i(e2vTq;6?6{6 zdp#x<65Ih5_z{_X&WP~WVcWW!6##zR&i;tEN&!;h7S%|j9Fvog1U#)sP)YBZxTdVv z*TVpl-)q3|K1iF+ij3*fL3j4~!@hRTjxo!&6{lgv!tb|2%WEH8?^7|R;W#X`?2fBZ zy51UM2467d1?U+Yz0mGT;^&R_=rgadrd!addz0r(ya;ez{Z<=_KazEMfG!*OTrJp} z0oslkht`X{7cBh6mvLt4QE+m?(R++VuNG#t1IKaVJSMJ~oa~$eQMBt0ajC)WD31(> zS}Q#BDv-GY5C4id#5F@!wZclltZX5z9`6{7EfhOZy@#2iZDLCwGc3a9wr0AnMVsSj z6G{MMELZGD^!9DjJuz2-M37>p@yx-L*Su{%+p_t(i7t^s7IjM5`eE#lJZH|Fd za`t|aofV6*9>>i$h_P3zuN}L*jZ55NN8uRJ2e9gclw&aglx-26#*{8()TOIyMtNaP z_yn$baZ^sg5r@as2CNKR7cmlvc=6A7;5-HwV@R$AzD+Ju8e8qa5e17P7D zIHp4$5#@!Ma+I5gCEIP29YGk2B&AwQv_d2VDdZpS(rX)bc#NHUXPc2#61)V^nruIP zC_#f3Jr-tGfwl6`lskWLpumIUk#>4dKf`U7`>-H)7_i87xUPY-7W6Kgk=n!m;c2s; zprjTFp97D`u-jS>D5wXsHAT}0AWT55;B}tBG3h1gwC?k$Ano({+(C=6>3-vNFNRuf znd_qU5kNK@?XVYIX1o}V33JiR)E`S?0|T=#Q~f+D(4vH`LB#O1n#vb??lO%s&hl7H zd~*FDC{>OEupJxlaPaTzGXO`(){Q+s<#&Lj2)6B4>zyUD zSS+~Ca(v#oIdQbY3eq|poNr2sDwX8UNPR2`*!0gC?U8AHCek8a;D!X z^zpRDS_9QyP*GeX6pQiFbP4(#Ogf&GvDVR>9aVRhK~@+uf9zg}m zR}g?$Nk~ytGgus8wHQPJwYA4u?qu3w-;^0*d1oNx_elZF?Vm5VdvJdq+Q~ZfZH?_o zZ{FiKX7jb)pdz?h3oAGt&dUc{d)>Bhf^87WfY4hk)(5G>b2O|a51mAZc1L%|?_aO5 z4CBhLksbUy=FN=d=h{@u<(>*ki9r{Mb_4rwvG&tub?RjIhM%{^BfN5$`7YjXkiJl75YJ>QQkI10(?fb9AU^3z5+^W^FNa?*AFRHmKT2@chfOd6i9D*!^ z2Vj{g(|o4Hw#LJZRK%g>z#P>7|M~m9K~~ib^sV*XdnJuliT8ZbTE*{Qul?*ksXbW> z9@gx+#>TvF?>xNbwIC0y!6F?yBg>{AH`P6iTaf@}1_ule#9u01MB8M zv0z*UqIA2hW~SUK5v(B_WXZ(ZJzL*?cr5cXm34EM6F_P?wxF7gEUOXjIrK;Oz$VH+ z3@|edHY3UUpr8fap+$qn+c_$6f5bMg5YA+jxNL@C@4gpzg9O!;o9pv!@MXBJ5sbke z6lGGNhcBF=Ezfdr%!%*kLM!u!LM+Sjt9y7KNN~~5A2ab%3ZMn=m(h6`z*#F=zqS%{ zOqTY&hkO_87qb;}cf8+5{=Hz2IP;K9I(0^U^)d15U8#tJZda(@MtU2Qq|!!AeQf`{ zy$xK~wR`QgV$>$evD~DuA-xVlKOq)aiehRZ`W?wkwHSu22Z6_62Yv|Dc)_r=PK=2n zF=8%N9LG_Dmr&5I&PyV!!4AEdmO7I%EqlB;gcZsW)j`s*t&lZ%hpU9sbl_#@aR3^m zIdpW7N!z1pWTp8CM9nJjp=x9c)o>nytDZQ|b01V^rCWD$1xy7}==NmWOc1)un%nJV z-DHyEHkkNP4J4W@f>LI%(ij%P=7b)0c@t<^u*0^0eKkQ_1#c_Bvi*WG3^LPU-Q`Y6 zErP4xxN9CR>Vkn8dWK;A`NY-Qe$cEAQUylyNva!HaHp|DBJjwk1AuXjAPVVr>n&LS zCx;Fzl5M)F3u6X?A88q-gvXv19-85GxZQRCp#yMd+7b}ywG#7VII2}x>2xk({8W-spQD>Vg1nzL$!)u&9=&?87R?b64bKW^-7h04}(L~9YBmz$SB zT>}@PMBwQAbzsbTXGcDqqsGkS9S`ST4@Dm{#3)_vkpZy?+Lc1pqKrKj&98Sg{{iS` zCZuSAmKhudqcvGnd~0Fj8c*BqXU@gw6X&TIi*)hp!b9n|7KQLfsF+PeLqS|erRZ6(C zMCgJR*)KcIFMeoN)=wXHp9^xxE^W{?6~9LDLfaQQvhz%S#BM`c^IzF+_#i+ zviDjz&*O0(GF1O(UC;HUesV*Sv1r`c)hw0oahhPsw+ zbeyBwu@6UfH7l5FwAx;XF;BDui6t=8ZR}EQ&JHQrzjLg3o@wtDQP!_BbQwWC-NqVW z^noKxO7wy6ctoxfV|bmupEqO2nGV!*p&yhzyUfT+z(lMgsV~l2g(*sfB5`U1Z0fe#%)-V6~}25@$|<5K;OZ&H*{uA z+-ksEhvI3H^9agSE!&%4hmncd?;MD9&gSGrZn^nR%qAedN};K1tg{q*ZQqHo_HxMH z#1^B_4Jt3k`(5$*tl&qm;>f8QIC@#AQAdIdb#(7>*{#FiBSJ(Unb^$ zFFvf%ccgL#O(a`TGD>=JW;~~$58r@K54xkT+ZU~m2|vjIJHnQG^t;*^QJJ)>Z));& zbxa@l_rL$3wfD_6*f+s^aNP-5T9`D9IkCn>UBD$HES^jFuai-xMQD2^`Xes8kH$sV zI$Dk-Lxzggf0%Qo9=r(W|0)GzOrp&*^#&fJnzfx_Y5CkA<=!3EImTqGGTKJ3zgPc} z42Gof{v_yKgJ}Tn{soksOe<0&%`ahi5Ig#zGOcQ+@Kr_P&0E zuR6j|!-3_3Rnih`q5B|1b8tc4`i~p!M{Kqn=g~* z%Q44!=QjZGm>}fEoKDow&#@)#zTl(5=lR3DCb6G8ij2?1Zi=YyFEZT&&0HHjPk#3M zWpFR}d@jCJy*1*z-F-)WHLxUUjhz0gU9h6m2rR`~1AR7pGp%%VCfQ!|hs}}}ruWY1 z`LYFJ6;VTILN}R=l`^@F9z7(Y9NAzWJnxsGRtA0~GZ6tc7O9)%__Wwcnr=GGWGLmf z`PR&Nli8Z6(kXn) zhQo_4nR}d;&~#L-VvN4!&1n}-45w0m-dPciUiQuGQTZg@wVL8`ft8Hs7Nni9MBOgCoBp81tTo-zvg&$HcFP zT-+r5`?&`!K0os(Zgt=@n^IL#{nr1pq^9;Dt>+R@-@W=yFMh}Oy&a9x%kMl3RDMCk zaU2KSWqTsF?mMV40>*6^|1VwTr>MK)PQra0!ZhOln{EvU~BxK zPqM>KZYdK8f=`k-GM(i-Uif^2YkhK-TU7D+lpiHcwgM2oY?1q+?S3=dhK^d${6X9a ze>RbOUY$92BN9-vS{Re%Yq}IY%ld3xW}N6g2advagzQ5H4&eLw?x_cX%>qmskP?+$ z4+-enAl*jiflctp#nbx0YfP95E>N&yc2GBPu#_ERL(4TEGuEH$QjzA1O-ZVOf?q2!Y2uta&rnT48qL_j~RX=sO0U&-#|YPfVZmG|Zk@ zbQ{`E*N2@OqL(ii!I#L^a34ZbV1Ba@OMU&Iu>10efQ#S9+Wr#82f^7k5nn-Tyxm7z zkt7-c!#*(PD{hY#j-_|GwEgCym&)AtA8aX$7_ux$-Ep2owQcd%E5Z@o@o6{KS`SY07AH1W4rSN>3&3_J%Tzh zQ%M{8l66aL+50Q15m)iaxVo!Nyx$TeBH6U@40=ssO$#E{zyI^u>^lx;jv&6pX7`11 zS{SXYZBVl@jR%&M-Un7nU~m6Fw*Gb5l^jXZ1r-Lso!n7%=JNipI3pv~89}-OW|$vp zW^hKGY-!1?$jBXQk?w$9R6iA0BmU+JHb>5DH=MoUzQvWbGcU>z4#go5EkTQEek#9E z{HCMm#R^M4>Z%KYnGd_8fSxNSXxLa}RK9A-y`X2%hBSXelLZ(6%7barB8Sg{|f2gv6WKS8~u?lx0|VtNA-D#I|#%m;dW=1zT2VhvLT zRvnvFB;g;u@|TEe19OLr++(0U#5i+K94=H^jC3Pn9#|=vIO}#JPWAsKvtHOV*t9I$=`zxSzyJ9r(mHTi zQTm$R7`NanjVi|_ka8t3^PlhSe~#f(_Ct6+n1;1A{!HdO?IJkOhOP@2dfJ7jlA&iP z2`u%e$xCaGH1|2fbmDTfd_>eEXHWkInFL^zVkFR!g zRpZ>7829p<8O~mlP8|dxuOm2g_CpGPPDaoB08&j*%zh=r0XvCV&mu-F<}W0}F(Q50 zKyim=tpf2F^iVxg87VkV{&`F|?hF#Cg&6WjD`Q~{^I1Y`f)=vI*Q;ac^a0V#&l&hB7JWqhF$yj^v!Fj_z zh{D~J9`%82Hw=Lj-_c9z*_6*wcvYC%t0lbtGxjjmKv-^jJ10pJcTBh_-1S$e%c`mM4JA< zHf$(t5ji#Iz;*SU!Uv9>CY#6`V2PPicG*zYUITSaN%&k9O&8UOcJQ~T#rskAw|1BgSUE8#t4P(Ynyig8n%WwUE-Bu55~%I*!ZU+F9*3JHk!hQz zN}dV#J+nQAkx}@czqvJOwGtoiiKFu#_*^%MKx^SRc`{njUrL+I$7HD4HC+<)MD-n9pSjN~wfw)J9LY!z5}u@Ge|K_0I3` zY!xWgft?L&z3G8CI?YICNoEFkK-E_9UN6kC@z-M(&!sm2p4Z?Cv*#)*WYTdXigR_3 z_E56L5K7fsFH3uFKaR8?6Rf#ht6y@1(L6cmx+5!Mpm$aW_b9m)dCmi#7f-kY@B2#V z2-}Gox_FP!0-&DIBL%%~*{@m2p|UREEHnfC^Uof1_wpR-t&I3G55x)Nc=Ig49GI71 zeg-!%k4ndL6@!A@<06z8B+*vRgRH=mq^(*6vk1BvmN>o0Bf^?m;F{R`GgXz?FZ)-? z9`QxdQ$`;%wPap&nv~?sg|BF`DQe)N0m#Hz9sdN?|$IPTmOj_rlrA~h@w~l^Z;LeQ#~^zS&G`hQ;w)ERVX=-elO{cjx5e@LCFUGt&QHTK<@Umn(0mZ%WppsgAiG_PL0f@BFz!!Q2KPPl zvuYxc+Bw0-@&ONnK&`lP&)nzGDz4j{q*F1*B6-*S_O&-mU3kCWsI8%xc?>wbC#PNa z8_{mQHfoKYfcN{2>$*^+CJ`xJY-ld0UKz=4>(Q=BO+#0xB&8mnDD5s%9X>oo`smrp z2!HKH1!H{iku)^MaGyobwzNp~nDT;pFjhV)o^aXeBkv(lWs$>2!PqYkKWyWlYi8VB z2Ia23F$mtow1xLcN|6n0ZlBLyZvVNbGI>dD@RGEJR@KE@3oY73*Yx9Gfj8z9Ew0Wv zgPP0I_aFZolb!_R*4YAozI#>@6zur>Is9~WBTo0*RJ853<4KLjP4YDRr1Mvh!5B~6 zaLf`iTh99wd*tJZgil$M<}$ozlivL$ZJ3U@?nfj9)2S!LFxOsLK2Q8!3qFJX_v*4+ z+z&giOJ~JR8liy8eXb8z*msv~IoMu!40Iun%{*;K3fOBqbNwfkR*ILek0-8puU0Dh zQBp^7T@!0rnpqfawc)2Uy{t@2HZ!Qt4#G*dU4)Vm+e7&oT{<@W!v5uoo5SRgbk?s}-d#sPQm4TgBA6r}EBIXti#!&GE|B zGL2X*Gbn-1gU^LPtu+)BtRNQ`!x&8MZLMMCTuNyi5=o=ifBt6ZP5i!UGr_1R=3+Ru zlF#QL7RIaqN~$=yUhTLw?C6U^Ae8N+u0o_%{)0l=S?j;V7RdkZ`$%U+5eipI_gk1J z&8+m-b6vrGF{7)u7TZ?Mee>xn$k^+j{lF|h_kr4po_=jk<0*)_#*Op!@|U6ci(YeL zFSX?ygRVFF&7k7Sv(~Z)c#hdva zhB-co)M_mVy2HI5f~AW>p1CmQFW)ZBU_Nt+oCKXTNl9S^+WgT7^xYWpSQ)xG&7PN^ z^A6k^AJ*#p-o^0u-=qT5s5VoMZtKbo6^D-vI=+{r2)yA1}q4 za|3F_r3+{0Od*Cgx;lz!^f3e!Tx_aDoN*sS{qswbTzbUxW?9CGnf8w zIuP^mo&uu3KNC{aS8jXSEqbM&yLJ!Be8@+ms@Z$r>Mw6kdF;_8#Z%pZrhwu7e!&*- z-~aW_zZM6PnbE}J8xnr03sr~&|MTiN&I7ep*vq5Nl)vY3Y`e29&Cr#wu?Ccapb1wr zLbBJR8Exy~0}QzbdDSVimN)azn^d5C;_L_Rp}6iZsx2P4;Qe_t2nwl*;xp|+ObY6Wv%_Sl#MU^Gk16fV z;Z_E2gj$Nw1R8@vwWq0N-_zF0q0llXx>6r*ws3zh7HZ!2PaQD(gU{#k6N#txH>AHq z(YmEfwH=*y@9s&g;1ce6oK-ZlW-M<4}W52`j*5(hd!6u-UGmLOR-q!%cFvf-JK5^d{ z>>!I@{H3IBq2PV+Vz}4bt(Gv{RF`7T8z27+=eXT68$5^Kw$mOr+p@hKpfq=L@2ZFc zVSX3OW-BGP^fT~#YOy1)^t1e5?>BmvG*ZPg^Lo8eg{#-^MR#az6*?)@>BpH7dF<^0 zQ}Gwxg>*~31tozB1F4;vbKnB-e!WQDcD3MCMO!_qNJBx7;qhAA$fn2yqD{tjXh^TP zzH9|rqn!D(VpccNIAk*b?>wb3-1X%*=T~m``Zu)JQy`QGZvPUFqjEh7J)-fUlX1lJV_N@&8RJ!h*m;7d&|p;txE6`LwRNkz=^37b}bye;lA~! zl8IsB922uu_Wp}f;)sPhj+GA^OVB&H3$bdn>TSreGH4}wQX;ZLA3kZgiR}rN>qJJb zuzElJpLd{2g)VvwfI5pJD90w_j8?wk$@QX9@2;Qgj4xC(73w{RfjIX59HL?!@_;!hh zZ-|$knEW~66+XELpRWh|yk9SWFenTV50H4f7uy!_epOueN(CPK5#VSA(nvL-JhWsl z9sA-MbeEKE@+Fvq;D+lODWr)PWCKSY)ZrU0@>m)E5fRVd@AoH~ENRBzsZXqOWT*A? z0suGG`jaPRB*N@|Z~#NLI7$_eGY4f+YWEK4su1a@)o>iAd&GewrqZCovQ`eY4rd~? z&Yx|0#8-C*BM+j(OXBM7LVT7qvElv#|x$E%=-1O z&rhfSj^<&lD<3lRl%+Wr&`3S9Ia2gwo_5@7g(~v}O)eS?U|jND<#{>O);H`=Pn{sg?p=E1$(klbSh~8xfcKZ*p`%164=|Gy6D&^iWJ`nI4atnG2Xl(TlGjQ5lmAzF=)E~M7B1d z$Q~fJXfKwb_lE0M)K(t*e!);D&YTt91lk?mdEY2*TYaVtOELV{fBnf=CfZ|r-eU1e zzuqrSd2QhoRw|^rwjcb`b=z;2ni1PIhN4wVYi#8EJ+Wo5OUfgDV&=%43;xc7pQR^W}TyKI&MEYsgM2a?r97+!|wD%w=Q5oOXks(8#) zVMJMN6_{l5wO(O&Nwp#mdPD6U_})p2?u|BY0x%Ao2QW?0YR7T{P%Yxl$qho84`*M9 zoao%MAM#BoQim?z;qzGxw!^-Gw{C@jrrnXG@d;ElwrUZ2a_Iw4dH{as33KJPbHo=5UQRr~3Zc&|2Mr z4z)l`_N3SR2AK{ZSwbp~u&&V+p$S50B;3j>3l*&WSvBowDJr)Fqf)d)y|vpikFY@g zE7YM>yw3x=4DTZ7t>ZXmu3B1m2*m0s;uup=Ji*o$!K76Hi1BCj6(#lX+~N0Lp?*@A z5}(l{;u)LUzid$ifbC4Aq3RJT<>EnU)J9ZiK!(XF%3U%iEyE*-KmU3QCLZ}60V?-n zomx?f%Wq#SVN2LnJ%+1yj}j{nsA@lU;&1_KsrlMXy(#OR1G!TzF3~P~-9;}2MOCIB z)K(#@_ygO#!t!v@D(=7pUcP3#>h%blB|s$vP1BW=VKh_I^aPYb_Q04?O7ALk+_W#N zIj7+sur9d11CWLHaX8u9W6&+A%j))S_ThqP1B)Nx#_f$dyFzvV57b+=;rWSk;JP@Q zyRN}tRXZ>T*T$tbX!TYO3-=s2j?O9qH;K|WXH-=ROcrY6r8K0vBaqW0PBweZ07_u_ zX)X@nr*^wHLGy4zv*ngrbGT=5F^l0m53Y4g(ZKyb>A(}iDoh8awk-7v)l)~*t030k%aOb?+0YbxMLZNyxHU-v4J>7|-6OVFyvSiyHvYR#MvEnfe{rKR z=iFA``j@*Uxv3#DqPk?7apB7Vn-gOwrcUTO)2K40;{C@ZwYJboffa&DrcJa`@l}@2 zb5gb}C{R^=K6fI*L*ZB(U-~i0-s9>KnA1`i)@t*3@USY=Znzc?Dv6S6si$CZEgg8R z-UJ_2)L;%2{=MrVtWw`2wOSynVJJmAy>CZpt*k&I=tG?-T$Be!uMN_;9)2Cw!)ce7 z@vh~DpxisBaH`>G?i^g)E`*7>*6v}fhE`f|NWD*A3iY)d*KvFS3l>V{$JD#36jfv@j8s9Jb<@tK?_9zvllM=I%8OZ*+3Skv<>`6J-P{fe6 za$u_Nnaxey`WSOZoJC^KApNG4EdqO@&I#XqSXv)O8%u72ZXZ`IsGU>#dRD*rc{pB! z8FypE_Qx`A{=OU6S6Jvr}k)X;q2KW;_s75Y_79grE6WEWnk@iK~d_97_$ zd7B8ved9c7lV!x7K$hnjO+{%9OX)@&!w)gz&%PYveV%VLDLGTBO>keDk$E~MYHtq+ z>w-;I4CR5YW6+G?`dnT)6jV>;hAzTv+$8lWhB=&p*b6YJQK+rra@V9Pqt*VrsDBt2 zadwpNE3WH<-n&cFOL>TXqBkmAy;lo+PX7W}6;waDC)&}Hq+&L*oHCzObDHWF&+KUx zZ56CVO*bdoD@7tw3T*PvkQUSM$~?Pb?pxqsic{pRrylo3DevIKS^NQ06Et}Qd`3<| zS=(O9W)Vw=m(o5^b4Oi}WkUssn5#hCYRu0_GUx#~Uu5#PR`5Un^B)NQ@JqM{C7FxY zKx-X;{t_I$u?P2MuTIO`*^;@yFE%Ws5vUQ6h*qzkq}p(IMk_{nYW0_6rRz_wfzS6! z_=$)mD-ZuteM)T%?pRzK^Dt(vAEsfY9sVwL~L9s9wJ&{ZF%*e-Zu8U&COGFKC|GI zf?=NIQ#=#Xq5|~I&%ZJQ3Kpve)Xelt%r`9A0P@i5l*(*;s4iTE%;xhyfdeC9brMmo8G!7N@nXE@-PzZ~zoypi*MzyL3ke_$)A$I;_ug!m+NIGtiM%}_XD41&E zdXWWk4OZj`cC5%Kgy40av@JKmZE&L$KQs0Al;u8W3ioZE;qZjTl9%y(c57{D&BH{b zPP-(NX2n9ERU12v3^W}@lfYq^u0XF!uzPuwQ#!k8{myM@$`oa&ci%t;lgorj9Jri z8TcyGiJ=4CUd(T+g4g?mPQzdCV^3aV*IkHDB8al5Of)p^z{2z@XU&PZ$lNm@h)NBU z$=oM+2}K}JW6mR{W2BK0SwWn!CApD^{cRCJMXYI%7;+wX#ep0JYnW&F2{f5{%(aW# zdQ5}PgVI>{jcboJ>7G>cYw@7g8sL-{-sge;`JexjD^>vbT$&=2uxl^(XYg;NTCtk? zg9dbHT1q&KkDHi8>9X8WsD{gZ{H8#E`{DeE{vwTPLWC3f?s4Zf4W-2teQx%lbN);g z-Fxn7VeUwAz-)(3rH0_Xa@)}Q2G3NfFzde3EJ+d`<2L~+DluMM%b6IrN6`<=e>A=S zQp=u6K|fyj%ja&o%n$mSoQF_!21u8)9CN9B@sL?d z^jwSmY?RCanTXX^PV|+@CYksHdys9Y>>IP<9{dNwL5vE4s^a_oqLhlYCjR+cIFA#5 z{dqC+sxqK5%pFAv-ftzOve!%lLJ|CNi|7~wLr=WVO>!|cDE@aCf-T;rF`NnA0V|8) zG-TPZMrmlF)XS2$qSb=SZ#|lf1h+dQ1FpJO#ELyme-x-9{S8ds6}J{w7c}exbLxbu zI)5(KUxa9;x1c<*WpKetdODD^iQX!{2vwT@Gu`=EJ5rDSeiLl*e!p;@r@PUb`_JhZ z{LTwvqz9G4@t)L!`{~!gDK&^MD?Ye<+KBI|IHZyo{0Lr+pS#wI))e>PWx%zoCTEaY zhR%X)&$#fKlHXemA_vwO+-8NduNg4uSuxugl4&omzpV|a%a*wZr8d`DOtj`ujk9^1 zG;!Tw?mBr0)dDM(HgtEyiY%CKYsOr-?wg;(07e-puw#)XNd=1Bj=%r;qSb=GKNmCp zoS!&{;&a`P97u+Y!iTD3DvBsxM~4kAoW|q@(cUkXmRF0g2_l>0X1u;%7xzRA6BT$v z_o|KwDII6;G);ig)}`!#YAra9gCQI$c)z^DSibIXD2CbuCf7lUTrR+BlOm$2X%7y~ z`kaR4!jJ2^VWyZ`Q^Fg!p2!P24fWWAz~{;`BELDsn!N1Sjx3)88_z_WBT%UusFkes zn7$@=z}DmD{D_u-F3f?U z-OEyCHeKz%HtzBi#u!>HnF`&z;B&FGAGal5>U_O7yweA_wH6E)r!06@psft+ph?Uy z=D?VPSp`_AZiViR6a9ObBj(orJ{}vMA_cli&Y}bYmIc%la&$@I&)G@_v~a*o zEzGo)U|iFMSy{0@p{Ptit|>lxx^j856DZm%aF>GP@bDZZI(oz3+>j zwy>SZ9<)?Ot~)xKKWD=Pwb&BD4NDVE-dv4|Ubq`KBRI7Ps!#%)56Rl`WkJxTde3mQ zN<~;NDAKbH$k;7k^@x;<2L;H!@c-I@hrN6OBG!j zC)tZyk5VXX3G%f5E3osalaQZH#KO?RQaSSO3iT^h=o+MoZyy>o9 z7vC@d>KH!%ds=7dQ-JQ${P6Ge-pO069F(@cle?t);5{x8X=t2aH%MFl0{(vZ;}N!a z_9G>ywm9jnwL-kl<)l_IgmPGO`a4!tQff#8q#e*9S98Oxj@Kl4Vg_N4e?dZod`#^5o zQcDGWf-Gy z;O8S^L+CtwU|J%|YxxCNPr4Si4ZG*l^MD1U#FZ&F=h0yOOj&Jj2hNkGqr6d9 z1W~vt1t-pfbeX^Y`V0T{*Pn#DP$;wqv9Fg8MV;lap{y0Nb+!bQ1X8Wpo2&c;7Y623 zm#p$Yl-@IR!-}_dSdi*5S*lK_A~O+XVHxu!I|$A^|NKdeeXA975z#frjq6q@_(ILK zxR77AriL&uoj^WTp3oZId%a~w8%wR;Yiye=vUbv*2z3ug)7 zq&wYuXAH`8rB#!RK?~d~p_0XyEsQy*#j3m20cRor+wj`tID4d|TTN zPQ_wc@^Dq<^%y#?M&eCRbY*!wrz_bC0`XY_85K6n*Q~td5AU^WsbGR0H53E#6WLuw zQXy!z2#8)W7n;uMV75e&hH8V=TuUVp5>#04FcG|p0f126&!<#?|opA=d)%?LJ`N|o7_;7j$snl}n+ z#ZX@-u7dksXw4imU2)&Kcd*0%`f)&};rqS3Prf{5C=zx?ZX65+A5u%XFLn2kObbPV+R$7L7Lij;oC&bPhwjMougYvQh7X^YzC2Z1~UL-z}xp1!>}%3G9}tu^O0xtcIXg4yZ1F znCZmx&&E9570d?x8_nSPxdPv^D5i}ATg;q+s>msvm4*8+?(hx%x z-~0XE5$n@?UO&uC1;uxxCn!ePm@$9POtGh$w?>l!CK%rG-qc-LXr@5jo1Q$BZ$mvhrY;wSEzI!ZFP7U)eq*zlpu2MY zsDnPy>8nW|lr3Mis87WWFhEU84F|{r0~2$$9mV}H@9;U&^tfNQW5!*X$68p@MOl5L zGSxvEF6asOT^z>Le^mdSs<(YUR1;P%y%h{Il;AIhP!7M5_O}Ceh8Cy`*RI=DsUFzb zdxg#Q2t|ErJqSlJQ|RojWns1O{oW2kQa{ai%R1N5qQ_rQY9^{K%TS2pm^B_WsCAXw%kLCDp zfUDGkSvqqFeP~!pfHHUkyj&xs=0c_izE@W=&Ead4n` zbhy8SR46X|>d0lsS}o0h*6Crd@KTlXTsB|orFaCSoF_pjQiI?BI7r=8v$YZ8szc3H zbuG-oPJ6Ku2orJhL82O7fz(P1bgdQAsIxFMp!mA*=uBH~&GRc*R+oPGI4sYYEwRGj}4WFb%OJ`Z~Tr2_xw zKbEP+SU`KfPO{`(qFCdYkG*%jGv@i}ATxd3?91@ipO*_F1Zx#O;JPqw1{koc5xfr? zWj+p%U~W8DFw;+IDa2q)bpuGmG6z`1jOBe1u9Ji+yQ!}oU;cb>jgeRcDDZHYlWMj9 z^PjJm-GYAjD)6XiW|?~*QPMeiuPqT!w}(lXGB@s?WZe_5W~9LCZAxkRbGXuNM1=XW^B-7;dbZGbwlDnw427D zsXirdNdVFXe7+x-jc$lZZOw;dbkWffQ@6k1v4!Z}U3p5X)8}*HuRkyR&;R@n+VOv( z9S0L^dxLbt>m&yJI1XR`8vg!F=P*qC*MI*P#yv9Y{vMnS7~H0WYo9O-vBH&w{0jQY(6J z21uDjKM#!S=FH=JW9Y!^^}<>Of4%=O@1YjlcL9dseKxdO@VU%~#)10&KuW=9{LQV2 z^1JJ;P=V?JylRHtUogG#KmRjOYr{Xr3Sq5l87s37A z4=hGiFP)fEanI>5rDUm;8TJO8kW7}{ia!qImMs5WD9F*TqKLT}uxBh3V7c~!bk0hY z!78Zxw(8DeCy24Z(6YbJ8~hPwntMu}iHnK~sMZ&xns=&P*%EZ(1e%A2JP1h(EfM6s zcf9?U})riSWCLA6uOSj!`JTm(g_ww-Ii;8_T@ zI-sMZ&VOc{KbWSzL!g26>94GF(-&!ru$!wb2PMWnTB=~WcARA! zyw|p*92Zfyb+#JA3g{r~5j zZjhR|uA3HNZpYN5B z(ZIpmLjy9kz$#y)%>BC+Lm#XFlMJ)uHm73V$`tB*qRR1;`uo?L^M|-^t~v6czAjc* z{|v=_PZV%+W}aTux(_a!z;NKa z#i0Fg7|J}zss6tBf=wz7Tw@G6AbbIW;M|B4u}}1VYo?=Q+UtDUIoY1DOarc~ zdHElywZ{LajK~tC(?{san&QnpIOm-!}x zskCO@dtA4%o)uWd-C}?lQ+kiHqZvK+-Qk~ZVnve*_1`5t^-)C-f`MHBP-DTH>bkCU zEhg68W{O%w_;AS4vUkpnMdhaGNpQaJ0lZ&7vDdjxX@cgu1zkLdYN`0#mR!ABdt%mt zYhSQX#Hm8Um$Fu}@9UzBI>Jz;RWxvY8LH6U+?Dy53oy!?QEI9a=i$b&6&N$R28T|+ zR5-Jm-dC>$SY24k&+^ic|8Pi~>Aa-^h3eO{Gk&}`!F5|!1+`V!SgzQW2R_K{CiGd>*Bys%{CO2AjeL@0Du+( z5{b}7^7FB5mTVZj?OA8vHt?|ULoD_Br0lMLZ}y=a%LtpKz9y7xjsHzN$HeGSX!5&rkK%IfG=+$GjP z?O$Wlpv=ONVLtvV4OIm9&D?gzw9m)yx=;?=%aWx(v1diZ*L@SF9HN>h%c3-2ckaA< z!Nh&9$7I^_fDI*MuWyLTv%T1 zscB-}=Au?zL7Gp8<^c20`@{&{L0bfZsG_z5&4SOhBiKUzN>}2eHR&C=AAb*kX*5!m zr4XZBHY%H?1#%S6o;38c!Am6b@Q~I7XA8$*bFT)_R)f_EDGk@6m6zvx{4)ik5Efo+3U{hQpm^-D9C!YmVK1WF>$vS||xoI9GY5(}-J^ zUq{E%0sH6U;Ta{9qOQxZb3==-ENNZ|>P?`@f^<|sjfs?w&pjQ4>WFw5YOriw9TM~%779kmn1Ed^%G zTufn<&t0fSTt8u-oQ+Ie*X1kpnW{gj1>f%t>m8>DynMbF-mix1`*mcz!sftb`|zGl zSiA2DnBsULjeOJzn5RztCSB27_nW7QB4~g9oW3$?9Wc!us0}BcvOefCL@%c_?)2}?y$x$D!EjQ@+LJJW{ z%>xf25c9qj$HD3KoNRM=$S{zD6%SwPF$Szxlyc&G4JZCK2!Lzul%OyrWzfXh^j(n! zlg`7i7R(}OO{lKxg5wbUfBwJ!V$RI>eIAJ2}d zWYxof6TeJ!=i`M_FA!-{6&RA#Cf)>+82G5LY*BP%>y;Jab&uS~N9DvJHZOqQnTnkc z@+8wD7!}>)$A)sQAmT1X_4f7ACaW2aE->X9@S3{G!Y-1dB^VA6-6>XqFdLpX*uK|B zLl3P4Io6t)@WZXPd;uoLWOZPmO;V&iGUj{$r9_Q4cf*B70Dc-n2*}XTYI_+kLTjxq zPRZ{@Y;#ruOPt<&XF`qCiaGABl>5K&0<>Cv-&-(7gH$TZ)C`7(4w^@f^GwXwGj-Uc zusvDo`(T%mwugF4}v-A15i^eqh4Iyit1wdY>z@VJgs`Ry#54NwpzJ%DjYPuUoV0=7?)i&SH5nqVh&VgWKPX}}jF~~oLG4DVi1ET-e_k|im4f#x(xmq? ziRn6$z!`Yy&i+1rbDY3}AWWGq*!c)tz~Cfgq;KarsTFV*9F=YKA~ z0inaRR<2BoORha=>{zZ8!O zqme;ymhOo^4w`5cCWX$txM6MIz^zv-?-`|XP!jukTb95IDTWcb19M^801SAaT-{vX zFZ0@Pafhulr@TZcm3)Y6tLV!z`G`{D1MO(Q5VRIZuabSaNWte5(cgc0&l{y69M8Ob z;_Qq*&qydLurebYF9D)v6nBjK@-*2EyNDY%D!DPJN^2;Oj6`wV^!C7Cv!NBhif76@ z%DZ)bN$>i0+3vv?K@RrkwL#>9c|6ua449aFOqXcEeK%i2Iy_++J~toO&v#}^ znOA@<56!s@=gG*qIXkxyl_@$jNznoMe$j5rN`^y4Qz}!{@!`$0Fqp>d!{nR6GH_i) z*sm=$F+^z(WmQteZPZ6~BJs@p3!pm%J7!yrLb4*fWC|YagNpNvP0oSi)O^0AAPG&n zECX9j>vrXOVwYOqS(t0#9xDMNb5%y$6`IXr4c*S;1(bUSW4I?>9h0PW-xU3*v~Y&@ znLD(t&38O@!G;bLpI#H^y?$GI)+?1+g@Y=2 z@csOq`+cbm*Y`uZjzp%LUuO+@vxilcExMq!nuDOsRXk7bkA1kQQ@Q`uJqUa5@(CE} zXvU#u%z@OLMWDXkb7VN6utLoFR7+@O(S=?$17Ue_a>q^cS5MPZ>w@AO|7iJ+?f{hb zFBhlJR|uS)xp|So=VW;zQ_Lz#VaDHr-=>esrd295rx|QcJpE{rhb7;fTe?u*G{+ilNPUJF9#o1*o?je-!fG`@R4>avxc$Kxgx?!95X( zG@cliHIFN@1=k2v)ZTEO>ZwAMHdgbTGmnBc^9g+I-jgYg*A9|6&yJBH5OqsBi+SGs z#Cg6j?#mryG>E8F)FwFkf$t48KMmvXv!f^XUsaOH_Y}R{W1yL*_nN}I4^)Rlo(Ih= z;s*$WQaX;~^i-m_wcjj-s{pF*3gkd>P972s8!xu}#1CW1b+ZS)E=f#UB6MBU_&MUg9z#eyw^7P&~AR z>s$59bgJe%#<|SOKHiiws_;F`p_H0GS}%SKE&UX|vkc4RG110O?{pIjTn#wNgiOaXM+il%Y|NlmQN^6u$CZUFhB=Uq z!ji1jf+;Nb@6UMr^TZv32D2O2&Axa=bh3NE&72h5H%==U1JBl2Gvd1@m#x+MLjWR} zMDw(zzF=Ss;9E9~GU$-x#lh(1S_8P9TWxxUS;z?V);F#7g)iRb6mD;a_|KHvC)rg; zTx7i!Ol?2IJt{3VXCKkN42PYv3b}JdoQwzEF>>B3^3NP$Iw`^kAqQ3PLR}PNl#0Lp zym7vIl1NDJRqsi~Ew_|Oj+>b7D1)mAtau=(n^g7*<-KEgn$@x`i0r}EI$#`5*1BJU zwKfogp&horIPEdBC55dZcU??*IbG;iR<2YDQHsyWgiGd~#=K%Hc(mM(k-ks9d);i|& zFwV*zw6=ofBqEW8*Lh&sf!aHC4A^oSvVLF-_~J?*MpP-E&yChKtCjmZ7`N`<*L8CU z7$!9iF=q~>TRZc2Jx}KnPAU$W5N*DqWI9nPz--j{7w0V!MP_In7!%tfEG?@rqTqo! zFWh5f8yhAkKBkK6ZmybSyx!2_v>}(n>kjALp}0FexK}4IL3pV2BWX{jGb`wngS#XT z09sP?{6t!$o&RPukpb(^B+JKHP`tkM<4j+VgAA8*^hgH*EalLnHoZCqQ zOYtC3M|Dr5^s?2hFQ9-zfyK=Pw{L#im%_oLc*1a{QKn;IEglM-Vv|~1s^I9I5oEQY zF4B1OHZ2uJ8e5T4aCV-oGjBfqNydpVi=1>nL`-8^%1G690M~tI99BOLe6E|m31`{! zmM>fArwuD`fhCnMGFFJP$RM#PSaTr_I-I$kycKU<4f;- zOJ7^9IFA=g^vWR3Ys`nUF7(^XDToMag8>@W+m*EAtTtkhXNKdoUvEA{hI{ZqIA6P6 zc@B!=m+!6MzAc%Jv1ORvLIo3mpP!*f#Te?-{N=oSQl3Qj?cH0&fH^}#a21aQt4i7R zziGv>llOpGw6=2zY+?A#x7LIV!9B^>Z?)p1>RNmr*?MbnbdRt5JNNDb6o1bRtJ#6nt1{=X{3rl!%i!N`KI9aR>7`HJ%+S5~GjmQAd zh29#q=e0t|ph#j8#;}Gls?8|OS(Pty@CoJMm)3-X$~5nQyn@~uCWc2lQ}12-!r?vW zS@~hYOS{+W^c5=5Tg&hVVExP%p1rr~LOUu%?eQ}DRzlq0a2|ff?m^KQT!p<}f8ksV zv5bB;`seP^=_ob-JF|iF{DYx?d#o2X1Y->Mw)^Iw9*X3ZIA2qBqFrNd z`iZZ7diOAlF9$SX-WY@a?!cm{8m?O~27wyatvH6E^^S2}`2Zgsxb8dMYo-ri2LKVJ zsHcRTwcxrJ&cj*iL0vUNYZYZVZp@uty;qi-?Ln(4%`@)h2X+zyr#Yu@2xR*mT1nxH zIHzrT#lc9Wo4`sl%raPR2DH?5>GwTw-^0rNo^`VUG215tHzB;i{{H75j4|-v|JTCb|M`bHh6s)H;l`MP zIhZLY=gEH62VFWRF3)6S-&->y5X*4iilGBVxpNPM*wlfeACM-{absvfT@@(YsYmoy zTg-2!soXaOw z&?D<{`HIbjav?E~`Gy(k#Y=hV6;E4k?mO5ADQnYG#laxOtIEO+f`prw)q;8G3poq= zKwK|Bl<8pn-WTSr9Nx=~WkEx_(L5D;=tPnJ2!$~Q%@m=+j^x?2SMn6~XIu z;^pyN!KQ}?e=sV^lV@9XSOHUkmS+dp;&AF7dnzsu{awT`M_xOBqQy4CJnTS7;6V}2 zB1|0%wJ}#%6Q=E7_ie;>Gr^Z88_7V%$d#)O$CS#?WkoPVsnC?H`X04*eCEY6PO7uu z45|h1H#~5%VpYLk2NQDNZ)OaR#@)TT+R}95^3RBCFyJ^2%3Q5wwB}*pQKIm&tVv649bUBk5UR|1J+!b2^({jId3{TeeE}u z90zWf3{xv?DTaRW=Y8P&&lk0~M_R8>!aY!fr9Qm?pLe8TZpV;zM6v) zJdO4mx2xlNmeQ>k2R0P%zlv7{-6Oe3oaKaF@IJZU7T@ig8LnaEvqN1GJ~Co zB35>)!1cZM2EYv8?~UU)T@CpQnXD}!A|7hEXqg(9di!NtfJ2c5q;mFh_5&YZ4@Fhg zdp`_^DIAR zP@adtzMDC4w1WT4iPzcC+CiH0qE%N(pul-lh`d}tbK%dsqYvWE{`uZsQINb;rQv)X z4m*u7&D|#P#pGqyJht4-@P5DX`FvatK|zs}%2nif;xj(HFeh*IQFus_ZpD-A@aS`K z67ks&^v(gEK)ixmxW-5XoSE|)GLr+)=6L)`a}WUBbK&)V{eV8>01ruWpzwREc)t%S zE|0op>gGV1KyICdgP5QIF)oTdvg#Mt?b&F@%D+ci#rN|~2&WZw3M+pouC6LXCUjA% zD}|>sbm2S!|DC*4Z)kl}VwNq3NCMYg(A!F`yn4XJ(3wc{pvuIJvV|)TTr)?VXfnM_ zV-|g_m03t7(tbTW$c-0O1WkNsC?(An7I^~>J25cq^Sb%@HSN?H9A|O{#vGYSqm!{_ z-#Jn*5YgwuCDsW+ua5&e6pGW~C-J@2k!dpKJ$~;!vFAi=TMirp`YLl1isCTb`|FaG zN#yduG($0Cjfg?1ugHSb!{xlijbO#cvgTTfl~o3nrrZXNIq{#rzi3TUvp?=TW7w}$ zvawRTZ{E)MKa?Tg_rRYwtJKKDXjo& zt3KcFJ--RbIz2v)Yh2_xw%7wdHrtffPN2UGQck>m>R;e&BL2lLvdg_O95pDW=4xIu%kPD6o?+%ojEkR6PL&y`( zGn4728_I2UJycSUFjC%3)u+JDfH`~);UI>79C*LI+;%;FaQZ|V+QF%JR5#(U#3}@9 z3Q)Tw0V%Q>&0@&JVXJyJA5(-CcK)GE^uBZN%iGy@u!yqtx61y))<+$bH(acJU$v{GELDHRJ0`;;Qk;szPg$boSP9DR%-}nuLfhv{Sma% zJDUQ}kW+zq_Qy!98~^+{Cfd=v`;lwPM_W5Eg*I7Tr}r*`+KydriutV_BA@C|gyxxa zHNzx=GZ>C0K2*>B`98(Q&pL^!#8QD$8;K~D?1G__cxT@##9AY#;}1JO3iwR8;AS}9n~s-Xef^rbKcCLUzrKH?c6!4#s%B67NnCTKlCQSvdVz|wBSDoM zn$bCTJ#g#6i7(#IOX<)BcZC&y@Y#CA?|mME>*h-xtq@av8hRtR9z$NGlW&^PdnI5G*hyHJ<gNj z=B}QiH^NbZSgnith~+L%6eeGVyH6@B(ptp%1Y0g#WCLl;vsRwz)TJ1D1%}U`m?)(= z^D(J@z=>~}mWQMYSL?1ba3vt8&p4`=V>ryUh*^@306M@ji?c-O+48^?aT4zFM(dTjbty2r9rh?Gq%kvmt^q%3P{6(Y`~70_ zj?V(DYQ}ZNrlmH)ng%U^f)?4~H^Q`q6T2jygUBwf7*`UKL>kb@q&vV;^j&XYUDN-B{V6_|7E4FE-KhHo9X?%|Xz+pVNuEFs9Fi*TfB^t$~S zEyW=y&GCagoY~se9Dc4xBzP?wza6G7EV_Ez+eIC{Hb0q0+Fq~w3#(^7OmisOv3<_p z&lgAUxULUc?V0vNGNB-_1&c(|Jvx1^bvK+_}O= z26#khg0v336thw$iLcKJ9@R$}jGA!BHzSFsv=r_{ux1rHwkRi^s1=whnDYW~Vw6EA zmrdwBQObeOcRZ4VpVS^CirUt~atW^}a6iZ~f$|bpGDdk$??e22@_<6_O!`Q`9YZ0N zU%V)p`lj?j=rUC0gTVuRVT5JXfv5dNiMDDGe>K4wvVaNY&*a;bF%_kdxHE?0^2)1r z8iCA=w{MxOG9OhOp&vw(QJ>JVh2u)j-I|qxq?Yb5;LBxUy)qLg!7++JhxePkhCkciI?(WU^Iq$O$tIa`Ldo5=*8g zI9qcMea~J$)|2F`7qs(q;e??rmPW1D%!{|s&aWMS5-z)`1`WvOnvcG&Bb1f$NO7jk_UUQAhdI6ZVF#_{5${Fk zWNV!(&5Wmd?aac(_U&^Go>D7xrQuFsb*V0SiwNXPqJ>DtRdsc>c>vhext#G?SF zuwC63z%{eqfOH1Qn1gA|(~DweLgyo(~JB?nLkV;yZd@k2cP3R@Q6ce7#%)@My!m&1~!95J)9`4TD%D%9rhRDaB{CqD_xw5DkBpL>o*7q$L1Yo8~Z;NLLeO8ps z`mkTRE?<|SNrT;#-}28i=qee@wWs^e0yw(&V$+2o9$DQh*OXHHWvf32o;m#TIL>@A z?|XCHTPv7@AN+s)*UA0;MCRFv&<@RY-+;Vo^8BK5SpI*bEEID&r*K`0#T%&tc%Lif zxe-tHJWxypFIO6#t)MsL--lKlbU~U;3}?qwe7?-oi#|U3ZpOE3hQN#&1YO#2)iVN* zg9B58coMEMI`?_hwFVvb$U@}zIBwlLa9?fqgT|;}+nL9#ooD%Z$l=h>_2{odY1#7y z6i8c`cW@#Phj2FkeD+H9nS1cG;+oly{n(s9)oZ~R>j9Z@;;o0b1S?Y)a%ay7_ut8W zR3@=D{rT_a{@rXXcV!B$5witW8f+8zem7~jaHH3T_V;Jdlv79mGLNl_wM0xEzdp>0 z5Rldcuu9ahLp#!X__&qKd38^{c>K^L!MH8+U@H=lPfu4Bd#t@SFS|&%#yX#pM1bl z1n22$u%(_TThpWwZBeYmM2g?cMnJ1eKnZ-93F5#ypz6|QG*$-j;wyeaJ@(mE|Md`; zoZsYhyRhvM7cMQYB$ih}pYI2Fy(yn=%snWsG9#sk2gvs;_5lcE*#UVANp6s|a>v^+FhD@={@A>7kTZ?<1vii9L9G}9YWJI18sdT6*C z{lE7=>%NA&3>WeE%PqRWXv`Usz{n6W4uK0)$JIpQeZ~oNC-_X>{U(t-f;u`^UsGj zov}yOG12?sRTsI2Lw~2it+Vf)W3mi)!2Fza-hIBDY>#_k?&S7IP>7KlY`#1Sa&BmA zD<5#G>$>yfYbrI_g7^Xc`peURj-44;+|wY2-rwA|+yn1Ff2gQ~;`RCqV_NpKbaHB1 zVRx)KbtA1g8r&1A6YlC9yDH(rWD7`on&i4MhSa?lW+VnAvp&;}+XJT3AoU=((FdH* zay+WJT7cv14wIpOg%wB~P9zHlP;1Q1R|xHWv>KK!&4t!1?Z)@8^sEd&;A?;VxJucT zO-yaj@x{kE2C4(s-4mY{(9yp?a062aM8NKPm-A`hw5p4lO z1B6*%G5mvJ-SUuf7EhAt&PrfnOgb0MP=qN$wKsnld8-d4S;kfj3YTZjt@K(zJgeS^ zT+~NAN9|~sJoV8 zKO|b!3!iJC)vd!P>mDeDJK6J|6e|RBStfLRf%SHM|4PPPsHXaQ^j3}wk1t%)Tv5?| zmAJ4R=%J9+9(~zCP(<9?g*09iftAx&bq&|Gqow7U`BzvvruwW=|9yz0jP`x@`~u=j z$D=QdDYKLX)DFEqocyW~UeP+?sXobl4no=5kUzlnPvj#w*kRGS9ZJf%mS@E`Zzl$@ zI_@!Grg**Hn3(LhYhmmd3YG~9Z4B=Ap&6z{sy3O`hsfxLkj6FA3ll$-CFnH~RD4mI9`&C1FFp4y^ zs;E-YU!0|=8P49(n-Tg^3#{(rN8C&mw`+*1&Z7d?R^Y`3!O-w;C2_2$kM3=8(Nu1- zY>!He8<;AKt*8y?T)2HE^SvjgSJxyfP5k}O${{G{I20pES!jR#`I9K)^Q=B0<*AeF zC=WseDdbtAvcz|(?~_dG<@}y#Mqp#a6)k+Ofg&wqrK2@4RbZ$?3;EYVH-29OtuM@R zCsbn+y~4i80t)F)ML%%H*rF8kGOG0g*u=8q2W%R1hTbafTk(3ovbQ64eDCOYexPK2 zz2eF^g=&gxTkG%R0;VpH4Y-|WAFRM|NH;--x#ANhcOhFQLaZau~|i_4XvGA zVJ?0?&jDh-=*#sT0X8i)9ihEb`!a7bB3op21f(*B}Fc+QY7?p)!{$Nl3Z=!s0F6P zo3~c!yzUql0y^*1Y73^P1_z>h zK?l(KqQrLYp;z?TW8NILMg*H_x>$7?Y#7eku~dOV!p;hAoyCOTOVOpct_$yXXMm{l z>e#YW)Mn^0p&k=Q3y6km;TPM%Qi``G=Ef?%EK3c=Igs~#L#GpjZQ;BW_qb6?@f-vP zo4TLhAUHbd$p7=7%OlvL?|%}DCJYBI4OzLl#-XIc5^M5z*UCYnPFMDAQn4((SRQR%U_`K;(IfIf->Ar{IefsdTG_<)m#jax8g6Jn;Oe;h8 z9s6vZnlK9ZU!N|f;X}MOoYDr)KYWo2)RlD(u($_w)m;0TPFy!I?hE}8PkI6V{uBp? z0{w@S%hKunE@j3#mdP&2I*#%f80)a-i5-CuO!q`tHIC2cxUEYDF^TmbW;9>GE1H_4N6BQi0i|+p*qL}sGWzkDy$-7ykZs;xdEg)6&DT}tAG-Lp_U++<18Ld z>j9?jo{I>smg+^<6;$Bsv}>saqJk#E-We0NI^M5eoH~hbIoINeZQ8shxTAgSLj7cbB>lLm2!RtKmy=zXPuP;}X z;&h!Hko88DnRs-UQjHZS@3{Wi8-r3HGMsq(p|VdGKG*&8qA{zWLFdHXX0CST9GGMK zuESY&eLs|$hUn+$7~dv&of7e%HJ}uC z9oQqP+g*9BvR`lQK&`;gJL9?M-1_RB62xDm9i9Ck3`1)kDoq#8e)uivWwmnvp8H#V zC@1<6=|ra+lHfag2P)ch?g00lQO!u@hM~Dkvxr9`c>u_Hw%jvw=HOcZBLguls1fDy zI&%Q`*Pk~x5_6{bMwc<%vxFz!#U`bp*S&&CIdEnC85SLEScH*WH^o(RD*pcGn;Q4) zd*Qk#!zs;R_7~l0AaQpNkGftZ#Yz7w#MM0yNsKki{J>cI=33Zq*m#haR}?!NfxY&G zcuF%+t7W3`&WUjFN+}uPpt{iO%vS5{&W@;CJQH~V9M-`z_{0G(5qZ50ZR!CWy-~jY zx0`ONY@tnWl1{;=6Fy#Q;?sf!aq{5(H_K7P2gG471`lD69X7#ZvC~TXx8x`T@TmR;>7g6e=x~RTP3)_l&2o2>NBmA zdon(@yb_#%7fhVzK}K4@C70z+Slrn2J`P-ZZDC0Xp$9Sy69A4@a8DNF^ATM7`Ff8E z;2N$}G)sYnx#=l-%U@Sw@Q(MS-6lgd)G0>JL}P2^S_n9)S$+Cnr2xkZSPN$t)b`>) zbA?oxAlImtfRdogS_Gxj0^eL3J#Nll_|MvwQE9}c(U~Us8U2>P^+)MRzXsB?-io1? z=H5uIRd*)dWYy!*DBp9%)`j-DJXREkP-NQgdDla3X@hMmWEctgP<@@Bi zm?0?@wGy8L= z7kH3Sf5j@xdriJHW#_l8#amRC=lLykREYPHu?bSzjjYUs;uI&r`Lg{hSpA?8bdgRIrRpg@=r!f*Q|~fq&U2#j0D4ez7um^ zB;5KfYN2Ca!C-ti-U>EZ$oJ)xhr6z!_}^Q$3v?**#eWK=_H8V#T-=w#80Hl$Z~D{c zHz)r9#1AR%yQshX%PTCnHQLQSOT1NB8Q94@%7?clpfN7eB0~Z{ zj@M`-r7V{&JJHE$zOfPQ-nzu$@Z4-pTaX0`j0%3@?Y706?^A2FLe3La46n1{?~kE* z2A_EV1I*BmhU;!PI~jZD*@0VJ-L<{Z;#aG*3U~%t2tLwqg1w{Vo}4t?Qh>kS9hVgR z`Ez0nrVdBhUP^WL+4%Y2lYUYi(#aD)`n*^d#=&$RodZv@rqHV7n(;YwQ{$g4twI)0 z*e-(Bj@(+*+8pckNjlCmeWf-*b%`qZb>IAA!`bC1kG#3!;ceYXK%OUHg~@@>*sD3h z#azOCI2h9hk52SqV>@#?H8cph1bxEQ2u#yC)13xPH&xZZ z**aO7+`3k4syA&_9RJd@$9H(&x~WPcOtW1J=f5)#9s{rICWTmv_v5ITgD%L=*Jl@I z_*^S(?NSQ~JZc!OK9nM?Jb;AaM1rmeC^=sXW3U<}xP%exF`JM=8kR`&na_eWc^XgC z$HEJ;;QMt_)gi3HmSs6VhG6L+QRtz_{CsXE4mC!;#TLrki1**Mri^LB^_H9%4O8V@VxC zyr==KR41tvSL5;aN46JhN;2bg(qG?d!8HcH-74;XNp0+2A4T@zl>bf;p;OJo0OKG&&Ci!Z)Uu$|UkGH?|16$ByY^Z4_v* zGwocyPBfO51-#X}@Mk=0!Hou;9^he`vkn7OhI;d49}kXgp%QHjU~O?Q7I7$t`}b|j zV@-#D=avT&wI!BA=OqUf#W3kMt-aUZSh zc^tlurQoTi*on{RSsU)>0`R7bZ;XNNR_QSYy6S_8?Oco)O!kF&&rPff;ZmutZ{R`8 z8QgTO4xufX>u7<{C!=u0*3AsK*RblKf#kkYp;G5NR-3czITREjwu@*#tVhJYF@cFve_C<=BoFFfK-Lc|y%2=?N9ZZ|sSq9T=0hjwlCbYf*LC z92O$3ER)KY#&ls}p%+GxOKJN;fG~qlxHcU&Q9RB}Cme@WvJ$h!+mZuP_e7M1RtuVM z4(3!8C;y5guUQpVC*6=5RHbEbXIv;03AG=iR#K4LZoB3j+@uu2pLh3XjdPp+h&KaT zK9}*rng`{?4!u6MEUhl+FrSlf=sbSRSMC`&PF$CRS!x690HmUW-j~1LJ=2}Hn{mtX zLs_b;LWFKgmbqa_9y75Rj^_=W!_F4K4JZ2wMM31Ec^Na@ z^x~_lOsMtQz;U>^LiOReGuZNfNM$_Iys6exb!dc3k8L6G#SzuSnC%m{14Tj?@Do}Y z*V8OwsmXpK%Tk~IlgVzGa$Ab!&)pjxZ>Bc@!TZe| z!0B0mQ2~e#V&k(*+i}K1TWasS+l!+|ZPkNDd_Wf7h&dO|Qyju7EJt&NxWBjC%k%qE z=lOF=A1O(^Rm1@%4|9_{6g8vZOU?-JFV4&2YBH5L#PkT~bbM#zCDK z{U~!NtQO2MSeag2(dP6%WMom{RIKG>AmA^%)a37 zMb)0Up{&({vsa*Wl(S?`UtB27H)vu5vw9wa$E?GV_vu-vjWdC6=nfqT-^~WuEEEyU z=~3p=n3o~qiB1Lm=p07N4zC3y83@FJOT%#>6G+*wyIi)dT*LG(X)+OER{C5E%_slq zz;c=7aR{zUaEQ1JvE#ZJCXxGBzx7&cDJ_jGfK~;z-u`o(`Es?^Fz%6q4Wf<}f4vW! zub1y@8T)+QUoSb`v^2iB24Roabzx3s3XtgYz?G*ye49H|FV6~asmN`C8pw$;-%y8*-!5c?KsnFE3wWC{qmxslYkM$*-oxwrTq-JYHfai0KmYl z@HFGH*>^r*tD%;3*)9+4nU?V0A`7tOGsN{S*O1q>|9Y-?OZB)mRwPo0mAh_kOU{E* z@h}_Zf#TbtIS2mvR?K^(;`96YCKu9OR20;;kuU4ej(M|1o@y|=+-yamTn@|cK`~KW zF3SM8uSD#}%!IOK!TTm(KJj-iP1zR|D_x)Z2f0`}&XdBnW=8Ws4Cdyz(fW~We=LKE zpf&&EZ`;nM%x>HJ)Zq|_p(_E6)LYL7NWt7qX!u-pM_GAZe7r=T&*fDC2UeB!p?kLv z7gzKYP(;cOGFVdhtb1*3&mLiE)9-;SQpFBg_=S7yVklnn^FipO^ey$;fjY-8fkmLibW z(E`F!dD(^83qEBh!)BpZfpxZhQy-duOnKfBc==flW%QSa=+32_bIs`%^o}tu)Y@?? z=OH2d%A0=`N8o$FjraEVFf?)Pgxwy|cA=nSq2W9hX3UACq?^{1Y0_Czs0pMsywAok zhraSl+yNPu4!7wktVu78LqrwLsWS19CFSR5eJ80M;51qvtaoP?5V*9f@diQcvpvx7S?}~piG_#@~jU4^sgxod#|J~PE z*FEs(&xzg%i9C-NYHRrKzy9!`oXWK4rD#oao|Cxn`NWw87{gbwlf&4!{lX`}zlYwE z2u~?FM0~8N)VQW}g&{vb-bf;Xj^^=am754(3%<+Y&*HIHwW9$Z>0O)P^f}ZlGy7aI zgT>+QS&9UR#z7G;>-t5)g=-YN;MSrLiXaXi%+2l1X2lP0ZV%8pdJ}v;95x1*Vpo1G z|2bqa0A{B@e+O9;N)ylLE6!(B52D>1MDwA%Wo|@Z!Nt8iQ7JfG$`ns4Vq;jwqPZgo zzq)pr5xd!?lol%geU9Ci!>9DcZ{}q)Nj9p$-~W75(2~=twO`Jo`v(|)Z9kRU(P4MN zdAxp3!WiI5p_3{SgnEAgWuTV@)rKl}`r;!}`E@j?2Ki;>;PO1r9nSDCC`9v{n*RNj ze_mQnOQ54xMq~pEODBdp!DuSZ*MVlhH5IjZYO%&{-yf91X}R13IJ&#nm|9z9xxIH` zT&~2d1?H)~A{Bq%U&^bO(H*zKZarW+@b^ETWaD@1+zt$bn&BD)stfnH$(WOOfaDi%j;jFHl$vuwC(JkC_;M=a_Wt z%nNn1U+)c#s99c#c&bB(Ko15Ey{@IIAV7tdCw8$Pw%G-W;y`%6JDIZw{|j% z8$M|L)l4;My|Twoq}P!IVy3Okt=5|BXA2Rky`Z%+;)|=q@Ar#Z{-m2q=fwLpagQt0 zan%+z<>O0QOD!44R4ZWX$c%y7TE>F?Z_(}l{@3+o@ai;0S%PLx_$iNwcByGxIs1Wf z77QDl zs=i+ZV^zr7ft#_#;NXp$EEcSRB6Fav5oH#lowM&jV7U8Y1uM0r(JBt9Y1KDMoa9R} zbPuwTGWlIBR;Yn?H!~D))t#D^$QYl-eJvbRsUCtErFYa_Y*wIibe1lpmDS zb|0-Dy>(2uqIYf&etDeS%Wt0JF&GOh)U$8jR!>8(@>s{B$-P-8bGP z%Ib;_UMMm>UddflrKJ#rJz`JvxfJKiH%|_7dvYy;+9iiCj7J-6W86z&fsG1F==b)D z>CTmBZ#5&tbaGozBRJIPyc^31lq?)PwzVAopeey^wRnlh-Fc+fDhewj>_o{Gyk)k>A3eJLq_0&8|kk~0m>JhP!=x(B<8m(6RV$pCI##&GVSu!?J~rKyKr zf2Q*?h_*Z`4wr2IYa$VBozJiuC9#r z@&5|&hBw6u^?-z^YKbWd=}I4?FWkk(xF*V8o?E3lYy)1B2w z%k?;DKJ1(n)5fU}6AA}7v>;E6dFK}?b7#P#2qrf81IsAf7#-vO;B(Qo8n^i8`*G%= zVvWlWwN7cVmwxQaIA9FH#`hj5MbPTNb+^1tuA51*V+>ra;On7}Gb)~k6O5%Mzo_qb zpvp+{aa1tZ#Z3i#_nrwv-f&Kx=;*G_oLIJ?RU8(|L0FB7%>X&7w@DE_#-6YhfeMqL zOC>M9E%og~$wQr*`A*Nr(YBOTfEj-NlRN>;;sdvejvXzo3wZnRj%Rqm9A1+CdeP7; zK_*jaWi=0JgsjiSkrNT{`R)3%E_FFN2_>U-d0tX>E}uIz!)WkKRPGS8VAh& zV*ULOU!s3LSB7`gULf~KU(DbC{KMg6ZOP)x%~5Pj=C+$>15!M zYQ5eoWxIBJrgBTp%GPd(K{J5vbGziT0=fGHcAj{&;Z$d0z<@1b|bS5*!tz z>2w<|d-o@Bfhn=SIcCjPo@%M~@-iGnvIOVUpW6i91TA^@;(~`*&+$Phs6qkF=`m+# ztN7cKVPjZVrR5MT2{Y~o7-RfQy`>h^^F;<>uZc#F0p)Qt%$uvYvor6#w+g(DEU{Sv zQidC>M1@xb)zYLA(&}eUz=AXw1klTZm^o>bw&~QG0

0d^?QM}77PrwrDIJrIbo&m*3vD}LzIE4t)jJ8inm0>Y00}1 zoO60G4Hd1^tA+5&M0M~!kK{1$nQ)PPp~bsZ0Oj28fO9&iC|rK<@@4<)-7zL($|5Of ztsM*Brki+d6*NDcY*B8z3d0yPKTMM{Dc;!9%6t}E6aeS8e#fSUbODAqogau0fL zyRhl)Lm!f4$5fOLTixp(sBRAF$ANpS)B@OAIN}gl>laqC>W{=%SM1m)11of;fGHG> z|Bh#h=yC?7c9?PcU4*37S{u$2sWgn%XN>B31%}?6dl~+u{5Zb+>x!z#ho-e`b)}=B zB9$gkQzCp}#=KFbVJwo2a`s`9yoRBuWx64z0=~BDt>FEBVd%uWQtj51?I7*U+?>=} zF|Hd@J<5D7wB9`YgFW@UIcO_V9DDwhqEbFf_>EwGNA{xAJqbm&>^!~nrK8k_WfV_A z7wX|a%T_a_MQZbSv;rxQ$^W8_J%ej=kmnhb?&jNnhTq~Un{f3wkzzm|$TC}o+gIVT zylgM+U%?$SzsJy+6!0M4N?YF|%;6Zj9ZNq|`C?!8@C(%40y}zbO!W-J&5;lRK416t zxI2>Du#)X%V>!oI0di(?Fz^cseXX?{W=)=EOm zm~QV3<4CX0Nw_o6V~&wl?iA-JfWp|dIZ0$zHUADJ)qU4}vD9|AnCVLM(z*CD2JlJv z=;m;%)dOG&uzIuSQd#-=0PKio1W#d zUU!I|)=oBZoje}D(^G`j8`Yy>GOEJo_tsF+@tL3IBB6R@YH)0wuKUJuG7Lp)_dG;P z=Vb34|K~sdNu%1-_M8Snf@4q}A!deqD#lQ>wlH;|l^umQCyjZmR@`yx)n3Gm)dHgQ zMt~IT2W3V`&qS5(eiT7Vxua^H7TwC0PA=d)I5i#qP?mZ?mf|?W9MN$cZ~S?4AeO6} zRvG^2{Yh^T+qF;ndkp6J)ZH2^8$?u_I`eHlh%N3hm;-j4$r6nH=u{^E&Q)EfT~cSS zp@8xothyX@>L6(0p1DU3sV$=N@Dh9I#L*4+xUg=?Q$FS=R4DQky(7gojQwXHG zel!-L<(CpBDmvY&u$Mo5&`A*%ZMAdlFqUYW)ML$18iqD%E>eWX2)y)s_>4;aWm~pY z)AZGQMQ?)R=($BI4rb*5v}X+2kdpLa>N<+UZ<%4(yP(;6%#Rwzr2eH=pi1?FePPtP zTf=ClrymFsjEI&i$1o?wI&{wV6L#M2!7?Pg;n11bs5vF4(;{UPPFFxdV{JjJFmvzp z;os)U?#ahgJ}~MphKHMm2}hiE!ya!(n*+k0-7^g4oO{2#%)y{s zIrX+MXZ-1v9@FbK>hpUA>Fpgr*0Eih|Zqs)C_Z7|1vh| zOtB7=9s!-o>j)5#aL~{?`WPaqRXa zM0Khd+8+NrR|q=r#;)Pm{TsmPtM`RQal~LeSFpvv{dKeniA`I@$y;uQL7rPQ7h6`2YST9l%IoWn)_lrZ(}`@wWkhzK3~*Y z(c0yI{(QVYBmE%lJWns93f}J%pKJ0qjh#oWN!7V^0;ag`k``UGmZcI2JRAa%f4^V; z9~2Q*mgdiYowdPyLVx%TXe4KD7F_{qVNP*b94mf{-}sw~JLkgmN@LEI z_FZW;52;xcxA(_PS7CYoK9Sjn>?hS%Dht>3!L%1l@1NF0=fvmx!RvfMhT-pjF8uZ9 zr02j(^!ujBX3l~0IPy@f1$?m}%DZBecwtFqbE<)?8%c z8umg*UL3xL80u*%LZvWzJO;^TlE0^VRQ#Bh`+2rDm*d11?(c=`zG3SPT@CgbnFskk z8@?az^FOvw$|vQtrGR0k`hVfRuQZFq~O!5h;mo^LiC@DMD1MVYWzzE5!0jQ`C!31_>bmhxJ z4>;9_#c@+mPKBe-+JElat}^*UZvS*foex0k`C?A{A(*S<&!38;SJZx>Rp9!5@zxch}1Y&@)0j7VyvKgZCLj z#djY3Y&)m#xivB1lxchZfXzg8-S@SDusSg2M4J=08{3i!HMr?Ab~8B7^M@s|Z2p2m zog8Jx)}%k-wt=J9_AdimRA25lQSog8)sPu#5>=y7E7JY*t`*!gbgttgJcd8d%smB@ zjgWZ=-M1x_Kr>91Eeb2Y7CpKIs3LA?Pu8);2cHsKPUbUo(Fcg?_-2w*R}NdGmh90G z8)v7VUbn||n({gLmn@e+W*2Un`_6VYzoWrn}}`5!c@<;n=IF-!dH*9;xE7OIB z8ie~&^6J0`R;=Odz&&oCvl!+Wc)wnl#tMarVQ#9bYbQGU>X@m@6p=9uvm^-P=q+#F zP}Ok`QCFn0HmrxNLv_^GSH($Z36ftW6Y#3aH>SF5g}5-D7W+`DFJOv#sA9 z{CbxC*k!ScHMpV~B;qb)9CGeby)QED{$bfq%8D)nycFbr4#YPrf&T?$oD;TQ={f&# zCwhx=-OB?%J!5_GS_mpJhlk~HVjs9}4%+50v{Tc{->)O5^8fi;@c#4SaJLrNYopsU z%voc&ywa(+%y3=P<-CjlTee{#wKaeC_zc(fxTt(MIVS)9E>F&Xth)#4zhx&Kb8zih zl&knK)0KV3r@?e_-t(v$nY|)uhmZGVPO=5A>&EOHeqZ<4Vr)(n*+ZH2+$r<6^VJia zpzEQ7wXPJjkfyUs`Ux;v_ZNg=()J__-h^ZpsnZ%`nnAC`hWcz_esP z>LCQEwcvfeae4o?76-C6IKUHQi!*s0V<_mQ*U2FqBJ`LN-ck%`9oM+g0o>~JAunaw z2XhZCM~#liCDQ6X2tLdr&AE5{Za2uqGK(UFPXR_H_;X}7U?q~@Uuthh7N5<`_|t`c z5T_MZUY5edXBjA{Ia^IdYV9u?zaph)6rj*)*L!uIAhBFU6-VcRo?u;!elKhfoCmLMf%SA`lcb*GcH$y7du32N51L z*9dbLgHBtkm`>Ck>WQ|sQH`3~4`2T^&BL6`N&bCdr$v7zLN6SLYqc03JKL8u$yh>_8_3eSw!w(=j1gCP+$kxgmm8J^5Mf@ zWI-+WBT;xI%IjI-#KxiZCw%lbtR*uj5kC{PB)a^P_TTY5Dw;UrD3S%NHJoR|bv^b% z%Wxio6D%A4@*Q`STN%Uk7@XMbl$N%Z8fYwo&4GTL>|0jk-0xd70weGUN~oros5m`S zO^P`c$Q+k-;VAFq8jM+fXh3{O7qqlT&U!crB||zxTRtCsWo8(-^*QDmsw)LR=C|h< zgP+|!P-@406Kx&g5WP2G2}^bbZxXCcW%eydteT1xKr32bc%A1XT(Y2}GD>bB#pfQVr32taKu-ZZ z10EfLb_k>uxEj}og~eTj3sx3NW64{q&^OQ;j-#Wu##X8phI1%=@clR;qN$~io0GF0 z@+_mI&n<-0l;|d`SURyBbW?lrX}up7I-%k++!Yb+c%(b=(9qSkn8y)sYdHhM+mY|R zb19xu;2aS8g~1Dy-_snQy|tMmk!;sR=45M~;;HY2<8`JgG{tYXrPLQ|vcg=yQE(a7 z<2r%31VswH01-a8C!N2mJ5!fbI(sh4mQ)emE9V6~cPj32WnUkIHvZA_Am~1ZYD;nS z(@VN%59Pgcd0HMNbJH;=UauE=>mG+~%nxjuTsTfiJESW9{CS~?2aQV0zlXPRthqU; z?0rTBhocMbfn3|zGFVul-PL!EirNkweYy%SKJW$|@nZ9L=*Qt|yW$e*2D9Na7Rg(4 zOvN0Ee_Z7^=JM>gJv@pP>E}CB;6Zt8!MMJ_5>UljAUYw^F$;q=>#Mm?r=&l^RGDU6 zX!Z$o7XsyNwmAsCepIhi%y^5p%EQJ64T%fh zYG)?kBx}Ou%-{PT9LJfJgV@6RBy7VR|ILFwTFv5twG&d=Q_oc&n*W`l7y&BxJ+ss| zGhEk)GTZwDDQ}EI!wvaSi0dHgr=?8^3IIOa?(UP`7WlWL2Eg1*|x(pd^xZFrT6 zqqmflpGT+$E2J#^2f+Jmw8FaVw)r}kTc3^G;sw1P)sB;YCKwin1`hnr8Y{w zZ3ld&Ecem!#pM^~EdW@pqy{4A9Futort!|TRQV0%mWC_nl`XNYg`*L*EVZFYL8*e{ zD8NOza!AMN+u*bOew`3$DUfP&++0hzfr8V0!96aQn6~_Du{V!0e-nbt!zDKk+B5#v_dt=-ow*X8hs#oaiw;HqP*TSj~L<48N_ z*(Z!I$&wOL4e{{iD{qw@MGy}@ngeuk|Y$e*Kb#st6@9`s; zsYM{C6Od}l7IRJlYDCD4c)w26Cio)-s*2hU>OIzESV}n{x==0VGi({eZM>#yQ=igt zw{W=wa@;rIp|u(BJ=I-z6RPL0nad2aVUYjW!gJPhO^1iHt7 zSj!diaA~$wI%=hNjO)sDFZDp1>pn4;Bg+?se9|hed%3X5%h-@DhD`B@sblkuG21xs zq1;)H`=(BxU^=e-T#g$mrYgv&r`|elRc5%E{j3S&RH0r#y}JAR z^ToJtXFBi!X%!f*PApOr5EHlK7>f7%Kq+win*YpA2$LtVQ%j+In z@BbLIRgWImNk}Lzr1LXw&}PHAhz1PBHPw4%PVqnAn}Vkqtw2h5_h9j7Kya@Lm=8(yW^k)Z{C|t7q%Dr?m6u8 zpw7ZRw>O^d&3o1@|3FTqt*EL{Dd!Hb@ig( z&YjiGGQf(ZEP75xo6Wg^a-&BM+;pmN6X=M9-jcTkgm_!Lw8MGGQJgpG>FLs7ibAZ7gYSns6RNP6s3c6!u|FRLR%@3j+D-be0~`5Acf&iLiL0hX3wTO6eER=2$m_RPVj5UDt|sMm(o zDKcr5!VEKmdX9WlPM1GGtqU2d0JOkmp#}3^SWA7-$o7DDCSSTL5tm(Qv90XwgAbT= z=7{Tx%mx3B3(C*FnggujH)Bb|52M7ym5JgW_OH{U+D~2s|45Q{7Gg!(z<_RAg88!} zCEGrl@XSYUXflaf4pgB!vIw>AcMOn==SV)_v*icZhFlXrc>x(meiJn&X87lGE5f0yN?U9I7ppPV~Xip+#8qQISgrMzr;z}?S zuK}zr9%tXZy8No;!5S4Z%}|vS#Osmx)8p0`Ngs58JLVMEr27EOu|&%=;M7=(bGRb7 zZp&oYR>Y&6xeh}}J=I)NOGv`@PJ238n)>@YQ*SMYV>)iCl72Dfxi1aMwN#SX}MG&8Ra3jH06hoY-n)BCNs( zv&g@^f@{w;9GrP{7wr^s7R(HjtS#5!6P~dETwfkU{p@^4JBN^<_?OxW6oyzXU`|5^ zm`dYp2kQ+-cOlG8i0WVz5@gYB31`{q;M%m5<*dWU+G}yvF{VLX&k)GAes~{glM`@PxkHbi;o5#rvNE`>%dV#6o9tFUS zzhwP@LHb?sxn@R(f4(35U;p(7_XKoIL=yKHuCxnSgep)L>JhLK2ToS@i_#0G8J1E^ zgVm|}D8W>qx-zo?g|iM>z#Lz9{*k`B)S!a_t`PbguEB?CsW}V6*Jh?@XT$Q104X!B z)XS2)`t3~t6{`^5qUKUy(~({VR#$@6Dh?5-P3YqHxs=m)m4eTA;=lenQ|N_4*CHp{ zk?unVV2HPRZ+N|5*$zY%*6T{0#S=9@M;Lm1AySK1By3suyhY9dMM$rsVUEt{{y1@# zfO-hd^UZCHr&bOBoTN7NwyUR@lZcA9ge8MKr0|)lO|q2+`UAO7E+<`=yM=l;*Q_|l zLgED4%_%>#B7p^;XlOq%Tho>&;tY&2^QO;u?;`%!XX3y^ghHW%%Xqy?7{j1CX=w3b zQt|wOJq+V*95^gnkL)^3C%tZ&>3GO}H?%YS^+D8K>FA3;k88k|!>McB9JI8J;tInP z_4%@cE{kCLkV`}|J?1B@vD6>a34h-+Iqt;9_WUymdE~(6^NC7Ea2^Yyr0oW$&z3-p zT7@`#r!L>X7)mL`gnLV6W%ukMy={d`%AtbVD{61#{V6HQx~B6JDvB%XTI*?RjYjx6 zE74UTt7fU46YV)+-C-PMxyIgqmMN&cF)Pw0O>!22oqJbpYw=kNbs&O6;nOV}gk01; zt56Mz?MA~bn^3I@o=ve>%!I&A)KgVDog|d}2S0dqD!%v5U<3wqS&F~f*sJGSfidyG zzt4o=483zBmcSiwXe_T6bS;c~;`1dWG-%Wjx1QOBBDi&;hSPN^5?a@%xgMo1*Vec=G8$euPE>%&x4t`#AXIJkd)_X}zV zir)CVKQ0|SI5cowc)xFtR<5oR<6uQaQlRi0>~PX+=>0|?WaCAg6XB4wxMCn3P1ikh zUwZeB^I$6R@(sjw_Xnz3a=6iApDFeLf4a&lK%+}i^g*M_ax;wK@ISMM!AMiPUj*LlRxaToLL}F0}>_@ z`-6XV`Y^Qo?ayGPm*3Nv`k1H(UqJB#T+3vbs46gfzWi7NV^VW*-*s~qt0bI8Fettn z>Je*}1K^xBh~hlOWxq~ju2f}4RZ#1R6M%@|=WJMO;wqHdwK`H=O5Wy90Vcfn1A}K$ zHipgUsM#{VKf{5#rDe(Z^K;~BG<@p$dNo|pGx&togh-*_^~Wy|tD9weby6OYVb7el zX~GHoGO7>-DZrW2FlR}+$-X6H3t^BV#4$U4WeiQUle#^ViaPJr-PG`ZfwF22gi69VJ|f$@j|HuN=jxVL2=SSW4=#&B;fw>s zykR7?vmF)oo(c4{FCPI=Rp~vzgQ?A;%}?44Qvgf<3euDhhvA~_ZZ-dD%# z^#0vSrj{^9d!_Bt9uxgg&(YCDpoQv=o5oVq!k>YA>V;Y@DZ!$CDD=5~@O~qT8$v9@q{KM{1Y2(Y3v7wu5Py3^+)*yX1!zTjOscrtTZk^f)#`njrQMMc)gz(9riOhbG-kO@zZqf6G_HW58PG2Szo10lqzwPB8d z&*Z>5%yTA!S}DZ(ygxJn*`%R;)f{%y-@s~u(9iz0N}j7eB;OrBKgX8OJEA|_t2c<8 zuLYicxna2Gbgc27IF1wV>4^9>QIFP~(8?`F^zyugzA@Q^f)Lw$p8kRr?3)=WcrTo@Mfy9o<`* znD&OQUv)7Huyp+W*Fl(rY<^;ZB%bpNw!I_05^${6ngiYT&3GQgOL~Fzx$*3o$me=~ ztv=K&9`j~7%*unWZDEz^$W>CQmH)pn(T?VVteRVyB8v0pzyR1E87)tyb`U z&o8*Giuv~*>)qXV$NqiV#-!U^_*@^)wBRbbkAYe=U9u}H1!`hM9w}8!@S#}Cfw<99 z##W+M0c`UXTWhYV;a_vOVzaqolXERa4R>1=`c!%IaBU!9Umu9@Jwe<_GC}^~MN^!3 z8&hf*wwy=+NS0RQjuFf-H-cJA#d&H@Fw6Oq5#O~k@_RZY^E{fHC5V(}->oRMp;^!D zfrv$p^q=eQxb6sr*ig>T=f=@E!*~KdLna#Zqc}tsB7sKpi(qo{bclucYOxUDu+*i= z=0iSKO);@2&4+W5Y;9aN8vp#ev$X#r6gi7aWGz zMzjX>@$IvS7&&P1+gjbQbYt0>KQBvnpd3KI2Y`_!HxJMO!+{RA9OuE+qL%Pt@RpiN zvCv#$N1qwu5hNTHbN#+N^6^+Dw90vrK~lV9F0ocmbJ}nYbpzXGNIZ4)@%LxSkm>`H z$~lCpLYsQpF9k@P(*FYh`1yI^?uOHUkLS8HFzMm2jWsnNj{((+S0qVY;>y64&!Bm# zGAju4sw3?5%=wJmh*E%sic09lK#|I|)0lYxB%Nms^uYn(@D;@9JD^-PjH!_a){@?T}OnO>&rw!UR;j1m@}==bmiV&or2N zER72%(l*>jE_>e#*N@Y(i&Qn|J|8yWc=f`m=m1LN77h#O zeK-ImgmkxaE0oy}PRxo3z0pg0Xd>j~Y3N!`%&x>z@q?Ld12VUk-r<5rb1ypZ`@_}6 ztGU|B2Os(Xihe%C4$VcmE`8192_OhF&LS9C&i>za%O~6*MGxX6UF;ZfRho-njNalL zLQ}Y*fr(l66{hfQy5Y}1`p6Fr&b-f5SDTNC_;%~56KZX>J;(52U>_7+WYlxPBbTqZ zC3QWbsbwS2OngtwHDfD)9Nza$)}GfOU+*}{Mm!oLx7$zMNZU31JLDlPRUqEq7n`oF z@I&300U5dv5w>+@!V{DkYt^^79rtk8q*8qJ^q>dMs;o(Ykb_QwhE%J1TsGInDZLg~ z7E0$~Ar(a#e)4`(3sM`wvo9ZpqAOnJdImjP~n|^vFdv`;X38+hUWjvCn zByHA#0;{)s2_P9^R|KB?WWJkU7^~-BQw#M9we(!^^-z%tlGrw4F=ec=PJe$Y|uS z4P%oS!6AkC1Ag~!h1jx{WgWfjoZc4)CPEZ5HwX5xZSt8=VKzbD@Sa69_bR7*30EV*cRffdw$q1welWe1Dq2y_uvv1atXloc{FQ>G^XEVv zhT;!7Wxf=w)LOBYL4p_HL(XAXTLgVuuCJLco_Fst4R?^{?@{Xi46V=$rCwHl?41jW=!okpu}pfZCE zgMq`aKAbgy9o7kve6Up(dVELA(EG%BmOPZhiK-s!1yo#v!YSO;R0I)d3|5>gGa;j; zQ^sqB?b~WfWK|Z%^2F)BQR5t1i)R(cH}XDOF8{nPr(fGT6K2Ah!f)5JSXN{yQ}(EF zhI{be37HvwpbRvl-oT1K2c`N!YPnu-uBL29bI0O9sf{aC>o6nur@r6sFFI~U7{`!k zZB6~NOp7l$z=Uh5OMPRoRPwfs;Dy#WCAaP_vl%a|JPw^5UPwtdx#wdnh?8TvlVxiX zlDawRM+hO(6ZWV}(k84bcz-zb3XgxQg(Vqk4nG6>!HTo+11uG-Hok<*Ny5{Um0^w% zLvA*dE8o0e>S&I*HthN625Af^Pha!%0z&zUgzD8!i1$4!3=FqJ*&~IVuu_%vK zXYAWr?EW}_pjx<9`u@j2D~h8XJj6(wJ=1>7*Iki4 zSX#s1QZPozaM$t2428nAKU%&Vy6(9N;4aK%=zsKxF_4VyRb)f1#>*_rafQQXC?Q7M zxV*2en(TQ)vMSfib~)xiIu|}*q&rur1<C<@%Te$159`;B|FvTx>fD^mUP%V`L2O(YRQ|ihzi7&Lt9C$}KXA@`Uy9n)(M^J)%_+OUHF?vF$+EdQsyev%=%o7w zFLA-!BI96kVRHsl;93U;uwM6#S~#o~tV|KUt_#EaZ^n5cZ!25V4_#Wx`vBhWJD(M; z6|E@Vcjq8V1zrfH<~}CwGu4Xt7GTXyJ&JT)o8j)XKXfJoHi7Av)9e?}J*8`pgU2Qa2) zZ>drqp8xVSSBT8GQWa8GN`hlf68n6vmpZ!JMK70x-dFbrf{a3|&V8GMegx$U*a7_d z{X17RV=Wv-x2tS%I0tjy-{V0ycg4*G6b}e3wO}o}=ioyyo8FpL!LF0ss z*4TUQ1mQxV4kyz{3Jw#Kdh!_OtQpO%s`&MrJN7;pZ2QcA7|CqpaQnV5tad^qZoc{z zPGi^Z?Ey`67VX$~<_iXasgH^GbptkWPp1C{AA_45if^uKLNuJSJkaMfT&w4M64YaZ zpbCeTkni^5S)rUq$qGr`fH!>ot*TI0!7?wyJtDR8vlh-l)}*qQOu*w0nXBKx#Cp;5 zUM+~C@&4L>=iohKx(W}ES(~q+I5F+LqWG!Z*VY5Xnk8=hn8s6?Ctu9Mn7SsdW^`BU z9asz0S}T#=F`%4l!0xrn%(25GBGgncxUXN_M)WD0^y0(6^K6`ncqKyi{qPmg^!TNf zgPAWzq!4k1#}E@z9X`6g;1i*iOu(rKPG{|LdaOJV^*Av$~=aOc+dX`E{#gZm&tjP zx2EVG3L4dFw9-*IwRZR_e0yTTrcBMq{;bUP*gWW25!WX-EN|sScxRM(B+oQh=ZmCZ zFE(!XL3?0<3Zte|4ys<(G$gJo)=QC}78B)A@kP%!?vYYnGdQ}+AG|da`cXUVoI)wdXdp!JPA&~y+JsB2XEK!Vk6! zQ~crV<0f$C?zsJfpjvVHb4M)$M14lPJlx{K|M}NnxUSC6sqByq$V6)l0EH0vT8jb4 zvE{JCUzX5sNOZZ8mb^thaeyc$rkDKiq@mB}rhrFCQl8VW?1T43y08BIgX{Cg(KPcY zR1YRe&7MpNO1by;E3o^q;j+0fZb!w>j^#0<7ugn=x?R z7nNj{lmE2_`n>V+K9-2-0$kIv=NoT+cRKYlw*r#k7_}5n(JihdoE+|k*kqQCw*vDC zIFq3N{<^Ld+rYRf;tN?aF*gqSTpx=uZYwCq0<_{0=2Bo@i7?`vDN9d0T<JL%-$by+@dhn=)K(zaD8nPq*K&Med(NQRAYGYMf*yZf`7y zR0^gi<_4G}(s8v&{(SLp)KU@@q6ho^^Z21#a5VR(%fn<+Jc^6e)^Ro*=fUA3 zki*Sd1Vg!&(?$lM%7OR0u<8nRUJQYxGtcgUBMUBkNNJB&aGN~rp>EERz0Qi^(=b|* zqgohqdSsd7+c5ZZUmdlcc>OGfoLn8l3aZ<#hqq}ssE-d7950Rn_{(@4FAhqD%)Ys{ zHl>!r;hCr7z~jnNO zbio&p;`jSEL>nclN5!~DPLwnEJv93>kZOf#$OT{YBP}&0q-QO8@SW#LQq9^Ttv)7> zN8fxlhOM4%x^JaI6!`nEzp_V;AdZ-sR8OMiL5BR<*66q|wk5rO@c!KHZKr~>p1L)) z65!SL)z8-=z)}vso*1&I0F2NQTkYX%_!g|~2yt_5hC372q@~(lh^m_hnPH&+%lc2n zQaQ&!Pj6u%d{!byagiCJ9;dEiyflRH%|MhTDAbjTV|vV+1| z9dqPgmiVb(N_|LUx4D5Ssrz&b_L;3ce9UKE7~>4zjRuK#73$D)|Er3>{yOowZjaL9 zYV1iEf=!Ih!Ct2+9@E`fYLX?P4h}q*jr<^E!Wu9AGJ6D=TJi-{Bw2GsiXW!@Yg%#S zm@#l82*K)p3aoE))UbtS574D3Y#6kL3k<$Wg%4QcyOey{qE&jPJn^g?`0l=WT3WCMU(|J2tF{uhN>jhrykH zu43G|YVhm@kEow3FQ{jHcg(YblkhxbDc&+SdaWEn7G00FV!6SsLS1KY_|IO$;$A9_ z=CIMZV3if5XoIc?m|is}MNm|9SwvSCh3B7zUGw zCsl>5@c~n#Ci%!bqM3#gddbh9181_~4zxosy^1>8cKYSa!x;9lcf8!^&$$wm zVG9uBtwvwI`GnTdUQN8$_SItdb(IF{+^Yl6-HU{uqv_XvT*WY^!b(_+`8kYEuu8hj zKrMP4c4X)67nfZAm^2qxl1`kh;XVR1GBF)b7Q1?i#w>f@r@ta)=ZjU)2=@NJ-zc@> zKfizDI4LE6Umfi;(C>H71@2xwRd+&1b=$V3I1Je8($;9oDvFG~FO^%Im`~VXR^e_@ zHxMKQOgF8U)OElww&HSkpKrWBpPVUOA4BgicR7Yb(G5C|B#Ty!;U8|X_e;4Xs{Gsd zh1K)3WFAD_d7M+7q1oLgy}5(0bD?~cp4`2Xi$|Ho-C7q06}lydEmyD zfWsxyb^D6yY58px<*lSAApo!F+p%W8%3B}}N-I!H!-Ak4KX^@oQ^y=o-^lc7xj(;d z80Qt;1RGWQS017_Jo(Z5KH($o2W4y_dz*m#0YZH2pd&z@vQuyFSY zaUOtT@bYmjK}_Yb2Ig4l@z7E*jPRE0o?B$|AXTfDZBlB*Tiu4gUk$&0aVLD9UVgg{ zA=@DjZaJzjxoHVXDbT_sVD|R5tEZ4oYx9=eFGH}!8!|ldu6hRLPDUzDLV^@;0oMO= zdlo@+xn`{=+HttxjRqcOxGlWOf#W#*1Z_AM)nmueAf=$SwafguGEh`ha#|ac?kgv^ zf;OiQqDGcQ;Z6*{wk<#}#p_&DYsroG=X#{kJo~!kw4Lqsj!=}?2Up=RvDOJ~Cj~Jc zruq7LLB#O-;qVBsR61&5s77GNGU4{K*L9*3_O>s&ECCP>hY-tDmoYf;j;z9vXX9At z_jl=okAD)KGPPF%56*S1X#hkoD(>pD zKQG>UO7a1w&xk@Q9-%a?Rs82aZ}(NWJM@V83SqLMo)w`4ltPNnhITbY+EN3A@nU<+ zJfqWnae+#<(%=PWXoaSD$FL7T)s*brt4m}?|+L!J+{W;Pwzqa!m*SOmJ%JlY(kx%5bEmlY+fN8xU8cnE41S$ zUeXTp-L+PaI%_327VRL3_pFV&h}r#fx7!8TrWfZIF?>`R zSmxASZ{Nb<_~%?9<{W|G%DIw%|553kM@a!&sR#b`cgx{e_qe?9uM|!BxBYCIY+g`nepYne}8Zsrw?E6#M?9fcHp|X zhW-2Rzfo$*2tAvuSYAJ;w<~Un$O&UVG-XQD{GANvwEl<j?f=+czV; zPhVdiStY8lg5+SRCrh}ul_o0QLYTP)4xAK z1rFMF#|T%Z%c41S2CmE3+WpEZ`26|dt?re@ulJ4Xx=@OyXe}W!jg?3U?)dkyRTy)j zjxk_;PpVm#>eqh0Pr>0f+3TJ-Px9cS_xaqsc~3}&67ZLEy2~P)Z!YoMMcje-nBEFc zvcO~kzTdS+Dr=3>RH5y}>)2wPuXSA&+}+E$xlo1KdA+;(YjMRh>vj?bH6@5QCbIiH zvqut6gjZBA3%3-NQPGaccFFWKWm#X2q%PSM2V>T+xrXZUii`VojU-!h?3<=gHeFe7oUG}+>aBaDUnh(3Lp_@P)pc*Eng_?7&g$h+mPXOJsA$Xe@ zvJGzm9c3WM1W*$mQ)2C#W;J`Xdf2U4@$k{HXDLrXoiCSi1D9qZG0as^kDrt3tZ~Ck z@RN*xpROwf5Y&+Do#!(OJaEX->qVLW>pffp{qkHrOZVCJDJ}}ybel0{!!{O$H)gt# z-02GAt#5)a>MIW##Tb^dPXagU=A@}+!c0+dZ-Wob*5pg6)pg%Yd>O|<$6PyiAgTBJ zG3^heble`Crps650xghdo3$L^IEO<{3#NG{gVyb@SOyM*83`3oNoYa8Z`drjAEF?A z_&Vr6XW&cEXl0iW`@?kK1INLBax6nV`1@SzL$#X+yBe?ouFDBO!ok|sS$L`G&O57| z^DIY>2jh_F_@Lmp7Np<)0&qb2ezTqH*rF@8OHPqmhA|0T$s4X)npZ`3xgSi3EQ`JB zOppI#h;5Tm>SF?Chuh&bzsDlrwqh03s5pY*;H_UcS@}GdT~+Ag-4f(B0(kjhShM0_ z)$HwLJ^bKy#9O6GR-E{I9&8(jtqdRy)*-1z5vrm%P6nPZwcBm3F>FYvL2~eAXRU$# z8}PHy!ha^HRzdIT6d+C@&qILEL_5v|G@NJkfXDSk7*1G&(}lT9We;o99<*G|58FJQ z_X%cDU9hpS(bMEBtL_OOiQiX(wCYBjO@AQ-^X{Ehh@;EtQZqDR+VPxW2>EtM+7f>N zEk94D&9oGO?49km&zy${JgaYI3sF?vn#<2X=E7|>nP`h%wqp38wH+nFraHs&EnhRA zJT!{n-TAo|SGD0*&%l$My&T2!9fT@Oo!{JhtO#87=gL^IF(%G@?WayUCei2D-QD~( zogCy=^*DJYghg%%S3zk%_&I8VXDEBE5H+;phh!%IU6y0YS`miWE=^{^QyDo@_n`!p zJ|6e!Kv)7rC0%yp06cyDnhC<&B*%(|&)-BT!M~&`aLx&{?~FiZK5(nVpQ+)M7&~ss zWHhYt7y^sBUc}#92l0;8$!a`F2dWuNQOK3Y^OXOZt5DDYsmYng8vYAJVh|DCA}oDZ z^t*}g64&W#PPh}KAePleGU9?B+#i!%Se9c1f`oS8r?bB1tD?C34Hfpl(|iX#2bK-o z_fJ9GW6k6=t+v}TKs|%Ej2r|8@gLBnZ$bemrVLh1fBLVP{)8u1B^h-wXju- zUeZrD{yeqar2KGoBSldUg0WIgrR&05k6pH^f#bvA{;xjjq(aRr1pnw0G8Px?eV#K@^wWqpM=9kMhTI3jL_q*f$ zxq&tD>(|Gl$$dt0_f5Xiipw`pXDw+(j>E0CvO&9ns!sc$3t)C2g`Xe~6GHs30h!zc zUG_TneWk{G_78^rVD^rydrTLA^Q@Vr7wNz{_KhCpRPV^Yhr!En&@dbADJA_mDn4#9 z3GQ6??ZJ7ptvQ&^^ItQQhs;Krg+d(C=ioo{9;w>;=kGK141aDc+Hs(jh2v=W^&YAI zn&U-7Ow|<9lv?pRkCgC26|FQT)=VbiTp~>2v4x|y-2Tm4xg$=v2S3kC1Q-)X4J7-) za@hn`C~(qlD7x^T?3)cn5UezqO$?i;v-%6NFh|F)cL!ESDKvZKoTCifx3MkhlN*co zMZ4-!^xJT><*dh*h$JQpvFvI>CPP_t4)#7+%_*(W=dqJ~L$>`LMDwjG9CJFIS)8;} zQ?RCwkd_$-zA<4r4utu*2ugA5`IzZP_>)(eVjS@Dsg+P%9=O0Yy;YW)QuOW`k?R^c z+qs>+ppQQz1WXhi4QdFS9XV}zt0%i^WKTm1@>-c07#Rw!h<|>vW!Tf4Y~r^tiMtEb z1M~JBws1zE#IlFd&%Rbp;V3Mnp%$PW6Yz=q6l3qe{ zhWdnAVZP^%DYcp5^{Skz3Ubv$XWb4riHT?*6Mwy25(#yU0qwBr<)C>U{JZls{*V9r zJ1PPTmtmN1bXz+6jp@OTF-V*V`dk#oI5N!};Dl00u;_G0gVE7B&Ku=MJu6K;_@Rd@bBPl{ti73}0zj_YSX6ZCG~U zI4VYWZbbEgSm3~-s#yzTc1o;SU!!TkHHL>OGm)APxcw1i$(}nf=k^s{9?8_ie^XO2 z&?jAz*TtEWxfOOs_=dca6BzieEP7pXz8>>}u$|MwT#}GH-B=WS$hm;y=frvb<>|#- zXExDnEw~C?U-I}WdxjK_#XZa;K}xmZ^;2-3C(8Td2hk4A(ZU&Bs|~ohx=qNcJTJ~z z-QUy!Bt>NqRjgR3r^`}Ra==##Pem!!QCei{F*sG-dFR+^Ia$8d2B4xgm;O3-tJQ{D zh-0ot!zm3?D*p9%!PRe^?QlX5HZ@AF$c*`Z+LWd-%H*n8V2{-p~1=@H*P#=i*HmcGb91NJ9>bw4!@r zOgIjM#0>Q*xcC;NDy-8Z9_B0sW41VxTOjeeyX@Sw+s+xI)qnYG5VVJV?LNUA1|Ea3?%?0Og98vxFIc4f{gn3 zUnmA+i~p(&~CvDpTwfN zwbhYqMYxD*O-JO}&CknM{570^hbog%3o5meg;mU}xnL(sLUn}s8s9JDc z)Tb8-Zedt%EN4L1J=up}eQV{{Uh|SaS(HoQTxj0+ zOb?tPaCLY#4rhw+g_sU<48VdopcFD_2nna+j6QOq+n|Pg0PQ$EY|k!6Jd0Pm~g zpTF84Kt|r615|$r zf+_{2I5D?8=)Z{}*A&jYekeOHqNvVGDD{Mk1flL1(IOsbTKy$pWe_aR~TI&oCGvHazjQMJOt(jG`6g&{Qox zPwx0^2<~{~$2oe94-sb|MJsLXq8ObNoP~md0nz13K@PrhPaW4Ms2M*{kbpykTdgMY z9L-Yj0^#b=O2O~<8*2ft*Wn7qi9RO}JvlsqX5}#O*YEDhG-LbdhouWnWb5Xy>%v@y z`*ZO-_CKGVeuuLhTrG1OBuQoJW1`OHfEb#G!X*crn8pLW)q>CalL4K*+n0Ki5_eLH z1GYgKw$D!dKrNNS(LjRH!@n?%&-c$!p>9f2T^OZiy73tFhVZ4<{|d7SL_MiUR9^Bc z8CZ4U{kakW9=PxNFwV^DZ&8I=G+d?#d%3PBn4YFU&_>^ z`!LKUpJ^?GCM2?ZY5IQObWPd*>z6S<9WdC%;0cXD&qX58oYZDV$s2)+YpH)IbmM6u zX_ZxjJ`5(_bM=mCMcvHE??c~Pw~M~_i}cnm2^z<)}!LM?+xrY zCvVy4>!xiG$aXDSt~0rUa;Kf=y=ggoh2vnxdZ5TnWtOlcZl%J0#CPRe%6aB2BW~#( z!l|mzYTN$o4o_OK&F2(ER-LWjJepftIgo5caJyhj#87MD3y6{7m5f*~U!)wY!PYPY zPi`|#ZAdG)uLz47Id@U(91I#g2xE52Y2R#JORb40qsVE8and7Sy@&q;dA(Q~=YQ7% zS(^YHG$>YCu7#+Aao;GO-i*cAx9Mv*awTN1?)=Z`5g#A4;!?8Jh+V&kvnqY#gnE7* z7+M5s-;P;8Hv=NF7=6uN3KB@l02~9{Y}CYX9Ew(dwiR9jFRxhsXGR-QQv_0x4`dKZ z4UfUu+G?vUrhMq?fa0`HwCaL56ukS9O2md^`W`xy~sCas=CJe=7dd0)% z4c1U?Xy~wZqE+Iw$50P?j2N7ORu;OOi{kd%swU!>h6_#p^-po7)qoklgjV+eQdMCe zLv7Wy?q}XWMHSaYLr$#&!%E_j6^$E!`}xApM=0ikN^`Nz%~MfmhWWgs%Fyh`;Vwj` z@*D~LjDV46m?Z~Z-*#OdmX-;{rL?{Bc_b|_V^6nS124)xTHMW;>pt85{qew^VS4v0 zgha$fqxa$VVzLDnhKIHepA<8m3&vwWMO;iYAp+dDxv+`Vn=W;2NJ&dArOf6f=;j8r zT3|=R=UTbmGxHQ;Rg4Lsdv)?Syn_4pCE^J~(;t@SNOIy(t2|ixtY&-fUQG!4d!ji( zie3T^9N+JEV&82{T!Z?Svld+Upk~7OU5!4IGNj7+M0?!WDjlV|^3oV_AI`&aC|avr z=`Go9!lTO0!KB$^X2f=ktM2K;^9{(EK2K8>4`|`adrn?5G0QrS=5#N9=k?#eegih~ zzBny!H7uqq=~0Cbuh=6*a=+B!C*mH*AQrx1BDqYC^u-1aJ9d7024Yh2MXSgQjRIINRlfeL-MbY~WEiG^P z^%yYDIbm~pC?x@#0^n5@zdv!S2!{VNA{pkI>=#R^>>WKA)RwWLxPW03{c}TG#eH2| z``z|M?HzSNAsQ@1)?oKX1Iwh8sV)?hB>7@P5B>-IvFjl|+l<)~pJv zC@wbxy+7l>Y{&8lxQWWEHANo}XpQQB@f*y|Nza%6JX#9CrjvWW1wmX%(#qSiVyuNB zA8V)JXBARPRx8vIxB$gjbD_8!eR>EZZ{AQDCRrE5AKDu>CVus|D=OU;wiW{+ z+%Tg>JV;|b!;)aAT%;{cZ~lBdeWi*kDW{{Mm6F?9+(4ojv!YbRnk!4mF@_sS1OpZA zXqf%>TM+pBJn_cDSr6a`8BcXxoMcCMCtQm#Y>}Zq2MqjSqpUMwW26hag7`39*8@K>peJI8q@VPjTNrS+Pp@9 zo(iX6$6C*>D-Vy}`;Lg$gNDg=7P79Z>`BsG3adRnpjUh{) z;a1b_S(mL$idC6`FK2f@dzAL%jdMRgCMmS>a8KvrAw1xo2%C{eCe-aeL6q@eEyg-! z&|#mjMHuNA9oN=ZVybrhT z zfB()%^WX0a=W*iizkas2zz08qMX`>z8AqvG9_^x(DO8JvqmSDI=M>nshEuxkGTF8F z?CQ79b3M3>oJbWOI=632*6$DQ(LJza(klD_nVgN;1W{2i71w+v=YzI6&`Qfn%qGyz zLfm!)q{t4O;S1(5?_=V+??jUK`^IGx=W%2pD>?^ma}1oKRD`)H=Z1H*1{o%P%pmLivY@_C9uJAZK-(uFxvdJelYsvsSi*?-n@hc zs|$D*fa+%9Jte1HHT6vl@)<^-BYgn`Gx(fD6wTT2dzH8&twc2|k6}+Nm9QU`39Vb@ zC~3fwuR$koMCLJyR2)AiULMyq=EUnq({UJ^iav@v?)1@De`DXqAZzgM9q>K#byxJk zFw9uHnU!p@N>PYV>TPB?-BdE7)iA34=*iz|yL3hRgKs_%ZZ4L}{kc|P{X*52Yehn2 z#!)}N&O8h&J)y8f z(@72vORxcTWvt&$rgnMo{%KKdOqeV%HCl3#9%R(e2b>O$jNUI;YZ3hwk;tLmQq}ad z=Ol8NqlsN7E+t7gT8pEgBIzXtJPSHBPtf?8w6Z5`O%v|8XPeP;KeXMxCgK0szNWfy z%MIIcQAOxIpcHwgTJUS{Z3aJUU(KEV!;Tz4)-lmqL}aamt=1x&f8cYcBEYZr z#}k)UR;fjv{kE^c)vitS>55A(C1H6~aNs+P_1ef+PMIZ6194Ck30;I4ey3&XEZF zyp6{|eh~`}yNSB`yd88o0KAg;Q-z@nF_fC)euz$hF$;9uRvwS(J173vsJ#8>B2{*+9D*@z zx2I4_TzV>@b@z;S_0sTz6CeG(Pc07Kl)1 zp@kupQT_42rRb;kiGGtQ_?ZLuebG8B#B|rfDl(FAYBwjZ@5W?Ah1*~~wRvy_`@TBb@eoHnQj_K+9?BqY@@Wawe1@7vyVwU3c|K-rgJyoV z(->E#A_=f*PH9?LImr*^U~V%i$=Pa#^I(g?!*GkfrqQ=UNxWgWRwBN?J{Hb{yMJ3; z4;4NA&jPNS!mLUf4MQGhZJur-Xpv1m8A_lM9JjecKdPk!wKYY(M#3roDzuz3b9cTK=fBoVi-&`QX zLz?bDEW`ivfB#=xb&bmz_sqk4z5dP$AoLQ`CTc-SzZw3?1M#1K{^3El4Ep*zg;C4P z?(6FK=bsmT|K@z>_2Oi{wG)fZ4?Z7A{~ORcV&-1&MT28tI~+}rZ{Dd>0e z!KR^T#UZiC4k_ zwxJ0U;e-Xvz1in^c#P4=mo|wdo)Da7hhXlx+bqX_whnX;(YR($UZ6hqp)A8X z+Hv{|iOddU0t?W`E_-6=#kaKPDa|neOZ(bLH4XBp9|o!1XngSSs&TMv$m|b01DdvT4hU6 z8+*umEwT@a;Jz8vRzQ(omQd7q}R39I{uMj}_P5xqjopYYF&B<4SFN?KlVE<-Mq4p=RZvUggxLd#&c_ zM-tm9FX_i0tE^huUPC^l-sWmqRDlgVv>%dc(brk?@G>V8s{=V+Cj&pHrz*%gYI;q0v56~nIs80w1{5-M;>J4ANVb0caHyJ)k=jsW|ELdKRv*g; zYW9e>H}u<$J>HYsTc)6;r0L5SS|HBtpBocxJ zG7N&^1ezH3tdy>@w`M84Y+&?)_A05uo3leb12JCQqjK=L@`|_A(~o(1xN7%x;!22% z!X1Ex$v{PaF#IL%oyk$KwFB3km1wrUiBpd~d2I)z2wFSx!KYEJ;XIZ@U{|i>hOM0Z zs7N~S!i$os#W^xhFy!y5ntw0t;nah~wEy%fc#M@4ow;_q2R=*7r4-9aO*0OhRc zDyV%9-1k5^x0anwvpdBm`3v|IG$xIs`wGjtlUsd#XU~W%%M&g92Ep!!pVsOC2CfI^ zcK+G6-sTQgcHVicU#@F-Z+|Dj=WGY=K5^Y26s`Eruix~S&oChg+A(ll^mcPkZvZy% zV$Gf^x#;<`HE9c4*rQQ+QS;U~zuKo=_L6USI)l)lRWW+;_G;#Ba^0OOz!__~Fg06b>%9euKT#$&Nc0hy*#b56a51>{mtSq!cvK1kKlK&0`^b@Yp zvTy%-(3rE9vl|OA_hzD~0@Vq;_;$cWiWDQVZZs%*-*Rmx|8hGKVznSC%?PseXz=%S zI~k|=?CN=VtLF^_t#>^%27UwE`ambE7Ua?38$ZAmGHz_^C6ZD<5aCVuxkLiMxI>BzMdcpK8RzkgdS3leeWIU zQw{aFyC`j~K9~vf2FtO?p1-dSD7os_ed4|^nD@lNAK*i>5}29ZX(KrE1TvlF{qZum zlQa0I!ixzx=7Xe>)kbNOEkN|0GHy?rIawJ^PZTbVyJ&9(O7#i+v@aOzeu-9!n{0YA zZL2tcUO1X^S8W5OaUZU=p!oo^)(2F@ZzL^(c@5O_%!*)|yY%P6SPOOTjfr~5%1}Dg zB(@fz6L=uJ6dbs9xxPFU=2*D3cpLtlKPbwL&<_6)pw<*N_2D{x!S;uU@J02i5hjVd zw>7cm2St98X&J_~Y-wQVwsH+;Yvt{1E2@c^ZKSGTK9qtn033b#N>=`m_6~RAEleqx zesE1EOzka=CIF|EEgp&uSG0WeDL4zFR&i}&aq>``GJ&F;N{ICzTT)zvI!zWYp4Ht?1|^1E};+Fa<98Hbfi2q=~5m0Tu_U_ z#ZQ|rsigjh)NsX zDNatsi77v|_>7h6_l-Fe@AsYQIPcFJf4xq8yfCN6e_@OeTOFxCD789|uA>wtCsnPe zTG7r1g`{Vl;hTc%9#Gr-2J#5^dg=?hf%Ukd8IrlhXFm53CPN1;h^86NQDS!Sj6*w* z0I@KIC=;5>;e+eL#axyClg2eEQ+{f$*;v&QD^|4l)E;P!%0lKfI7a2 zvB62(y{K+el>eETPYAAl%uB}Z8ia9M9$ew<`W~V!Py1P!b_9=}KFjF}I>j|c;-Gq; z4#JSM`Yv|(x^IKe)NOrp`lSHq-;6)E+lEGi&qT~jkhzjiHed#~`22&~ zf}Q`T0`xv|HQX~4mJxHKRMfVscXFP=D%90J0s zmV?XQCwlA5vM|nv&ZBwN3fSsUIaoEi^YJ*246@}Q9@z$~HeB~7#cMIZZ|!gclWS*$ zCc5b=SEVa(ByMOKcD;6JY@OIfZ;E2?_>uNI6xSfNbU zPLN!QRTr8Z8|tEx*@ijXnjN*i{BWfnBSSIfu=Ji zwcxVhxr2ml)`oQAr7YJG#RccDn}?3!|63 z;nfpMc5D{yikAJd_-RS3G{jPtNk`Sks}J?a@8-YU{Rpxs5Lp;wq5W_$B>{&JmT62U z*4zo#DjUt@=9aS^0PcLacw!fv$L_h#!{x7M#CbQDVIFwTMPtbF`19^3`y2!}_>ELV zF#CXk?D@G2HVij9$-kpxt^SB1vm_S}GtAE3)8I((xz%$q*-q8v^vcIeWTLG0&@Kfo zg$V6PIzCVC=>PQ(@cQe=+kpnG}Wb$UsXc1TX$bs zy+t*5g)r-L^LcTmM0i-@nH`gJ1r=m#pvp^~6s3JhsM6rnm!dLmxp8XfaoOr(gwuyW zahpZS9}v*E1xqRD-SUOr8RmsUE+q&dnCmfY!3v!~@j(-*!ho_=m*LXNv0n)PKw9JK zY2}~ic4Ysc=U}v0@0{{Sd^OD}K9s73unMDnHqvOKWE=e^$yLSwI>TI^Zsew(*I&Th zuRLTvqo*Kgj)5V~`%uMLhPw}c@C}E&_@Le!;L%#a`?9ZqlA?;`P*1+N6Mc4S^4AUp zCHrl8phu-*FCyDY{hE5mfoMKh3=Dg$$ATIg|7_U6w1V}Z9fZ%EXAaeEwk#_zEFSK2 z(cM^R70mevP&mxeg<21sKd)@7=5)7ODGa_;;ZOvU+mGQZ#xbeA_*@?fiL7T(CKZev z7&E}7qYs4$6?$ti5Jhe7A*gBw!>CZ&?*ihKH)IrnO1ZmTc`+RsmJsv?tbf98xW zvu9*^KFeEeNdLpa>vdrM{uJDwG1l%;JQ2J?EcqT z%3ANcW|AvP!BIT4QaByXu!j}f7Ah;vQR3Z@eu!{N*1~)`^S$q?%Mn=I*+Y+ww|49p zU-$*ZUz<{-l-0f-`|M|;u>JAf2H<2Q9oRpg+5LQ7Sc_$EL)n^-)|{0O+&2$&8dPYt z*5%KGI;d;%(qs3YEdWdt9Cmh_62@O8xRGsPoLrCd5n2TNzt?0s4I> zClWBcKV;#j2n(_M=KkO2!21)c+Y4h>m**a=#Ege=dU(`vZ?@S8(P{uZL~G$8i?iao z3eK}V0!7)MpNB!)xkFiX^m+gOnyY0+7x|Rx$-lLdvJ&eeTR>}z6dwP*tKPFU|E2MMd^U?^rSB zm5`0_S%;%>8!`N6H~PQFoDff5u`wTs$qg$q3ZcnM2>nFtq-$vzMHZ%<1-2|>Erilk zDiP95h?b193T0WV97uK7nxhH&WY{RfJ{HW8?)|>eeeQ7iA$9zmsrwJWOK8*2lg_dh z3Co^NREmpA_)oy;f+1BworNpRvCvx0EJlF;J>W046!w^_OcQspkw*0ULvRY#z^sD% ze!CRcnR-qEHa|q0B8@-ALo=gVORa#zL*pSo+@j7y+MnT=QKiatF}2x6Y`M+(+McY3 zJCX2Mbu70Qnt^NrRkt+SY@!_;ijz@bIS946(0rqF9;ZLEHLIJyUq6n^bAanvGf+ll z;p&p*w?;b)o$APaZ(E6kHF?emg7bpDDk6N(L_SAkajEMn)eIT8j}? zXujgHebPLFL#AWHrx{|+$?P=Vc6}J;I2dl|lFiu+pU=ljYu(v^w%ug>B7X2X5B$&n z{M-Az;PA85%5qnW(`OKTEY7<;I#hgw&{e>oh0kTo^LE^ej#dR@9?qOWCAtP=y}Q;#TYG zL#yE7VZ%68H7Q8J`zJqubAljDV-56iW6quu?PVX2h%1hfGmP~?@4GB7g$&15SyAw% z=?Uswi|cWh2GWD!!|nUNc(}O7qN*^wwF=Cdhw1#4!|V8c;=hN>kLp(@T{X|85Yf<4=JKW~4Y~h*y=X~&y?$_> zr^7d+&*Sg(85h)$eVf6cg)5m>&hKdRQod4U80Tfls1FLv)-6!r(VG0B2=wW3kBkFz zUWFCNR)Q!C6aw4Qg;+47_tL?z>`5;l*nIUq$O5M&%w z9<5~i(7OT3va|Pz_jO}UzHp^90Fs=AfN{n;>ADwe-I!y#7^Y+!_xy}wNc?{P#u&}B z{LG=H95~PALoZQ2k0NO-TIF;j7zdC6&^V7D{PXwPkP%V5p3mG|sZx#5R<8br2cHzK zEz2Hw^JNaaJ9RBZ2s0&JiRL4=WF3kfGZ!$^0G=@KV&=fPJywsjIUlISm8oGXHe>cd zDHun^zyI@}2f$=}0YiH?@-pV_E%U_jb8=`La{6VM9)AW;^7{V=0HOGLD2{L@Bme*a M07*qoM6N<$f}S!NJOBUy diff --git a/htdocs/theme/amarok/style.css.php b/htdocs/theme/amarok/style.css.php index 28ba1ef2ec6..115a63d7e66 100755 --- a/htdocs/theme/amarok/style.css.php +++ b/htdocs/theme/amarok/style.css.php @@ -210,8 +210,8 @@ form#login { } form#login img {width:auto; height:auto; opacity:.7;} form#login img#img_logo { - width:220px; - max-width:220px; + width:190px; + max-width:190px; height:auto; border-radius:6px; padding:6px; From d2275a0bbd77e45b818e2f3f7896927367e8aa11 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 11 Feb 2013 20:26:01 +0100 Subject: [PATCH 13/28] New: Add param to show title --- htdocs/core/class/html.formactions.class.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/htdocs/core/class/html.formactions.class.php b/htdocs/core/class/html.formactions.class.php index 76e8fbc0f68..514ffb6eab5 100644 --- a/htdocs/core/class/html.formactions.class.php +++ b/htdocs/core/class/html.formactions.class.php @@ -135,9 +135,10 @@ class FormActions * @param Object $object Object * @param string $typeelement 'invoice','propal','order','invoice_supplier','order_supplier','fichinter' * @param int $socid socid of user + * @param int $forceshowtitle Show title even if there is no actions to show * @return int <0 if KO, >=0 if OK */ - function showactions($object,$typeelement,$socid=0) + function showactions($object,$typeelement,$socid=0,$forceshowtitle=0) { global $langs,$conf,$user; global $bc; @@ -148,7 +149,7 @@ class FormActions if (! is_array($listofactions)) dol_print_error($this->db,'FailedToGetActions'); $num = count($listofactions); - if ($num) + if ($num || $forceshowtitle) { if ($typeelement == 'invoice') $title=$langs->trans('ActionsOnBill'); elseif ($typeelement == 'invoice_supplier' || $typeelement == 'supplier_invoice') $title=$langs->trans('ActionsOnBill'); From c7a6ee492db155eddd1f5b319423cc9aade5c681 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 11 Feb 2013 20:45:36 +0100 Subject: [PATCH 14/28] New: Add push from Philippe to manager user hierarchy. --- htdocs/user/class/user.class.php | 235 +++++++++++++++++++++++++++++-- 1 file changed, 220 insertions(+), 15 deletions(-) diff --git a/htdocs/user/class/user.class.php b/htdocs/user/class/user.class.php index 5b018a768ed..5d0fd96f4bc 100644 --- a/htdocs/user/class/user.class.php +++ b/htdocs/user/class/user.class.php @@ -7,6 +7,7 @@ * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2005 Lionel Cousteix * Copyright (C) 2011 Herve Prot + * Copyright (C) 2013 Philippe Grand * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -75,6 +76,7 @@ class User extends CommonObject var $contact_id; var $fk_member; + var $fk_user; var $webcal_login; var $phenix_login; @@ -91,9 +93,11 @@ class User extends CommonObject var $all_permissions_are_loaded; /**< \private all_permissions_are_loaded */ private $_tab_loaded=array(); // Array of cache of already loaded permissions - var $conf; // To store personal config - var $oldcopy; // To contains a clone of this when we need to save old properties of object + var $conf; // To store personal config + var $oldcopy; // To contains a clone of this when we need to save old properties of object + var $users; // To store all tree of users hierarchy + var $parentof; // To store an array of all parents for all ids. /** @@ -139,7 +143,7 @@ class User extends CommonObject $sql = "SELECT u.rowid, u.name, u.firstname, u.email, u.job, u.signature, u.office_phone, u.office_fax, u.user_mobile,"; $sql.= " u.admin, u.login, u.webcal_login, u.phenix_login, u.phenix_pass, u.note,"; $sql.= " u.pass, u.pass_crypted, u.pass_temp,"; - $sql.= " u.fk_societe, u.fk_socpeople, u.fk_member, u.ldap_sid,"; + $sql.= " u.fk_societe, u.fk_socpeople, u.fk_member, u.fk_user, u.ldap_sid,"; $sql.= " u.statut, u.lang, u.entity,"; $sql.= " u.datec as datec,"; $sql.= " u.tms as datem,"; @@ -221,8 +225,7 @@ class User extends CommonObject $this->societe_id = $obj->fk_societe; $this->contact_id = $obj->fk_socpeople; $this->fk_member = $obj->fk_member; - - if (! $this->lang) $this->lang='fr_FR'; + $this->fk_user = $obj->fk_user; $this->db->free($result); } @@ -993,11 +996,11 @@ class User extends CommonObject if ($result > 0) { $result=$this->setPassword($user,$this->pass); - if ($member->fk_soc) { + if ($member->fk_soc) { $sql = "UPDATE ".MAIN_DB_PREFIX."user"; $sql.= " SET fk_societe=".$member->fk_soc; $sql.= " WHERE rowid=".$this->id; - + dol_syslog(get_class($this)."::create_from_member sql=".$sql, LOG_DEBUG); $resql=$this->db->query($sql); if ($resql) @@ -1009,7 +1012,7 @@ class User extends CommonObject { $this->error=$this->db->error(); dol_syslog(get_class($this)."::create_from_member - 1 - ".$this->error, LOG_ERR); - + $this->db->rollback(); return -1; } @@ -1069,7 +1072,7 @@ class User extends CommonObject } /** - * Update a user into databse (and also password if this->pass is defined) + * Update a user into database (and also password if this->pass is defined) * * @param User $user User qui fait la mise a jour * @param int $notrigger 1 ne declenche pas les triggers, 0 sinon @@ -1153,7 +1156,7 @@ class User extends CommonObject { // Si mot de passe saisi et different de celui en base $result=$this->setPassword($user,$this->pass,0,$notrigger,$nosyncmemberpass); - if (! $nbrowsaffected) $nbrowsaffected++; + if (! $nbrowsaffected) $nbrowsaffected++; } } @@ -1268,7 +1271,7 @@ class User extends CommonObject } /** - * Mise e jour en base de la date de deniere connexion d'un utilisateur + * Mise a jour en base de la date de derniere connexion d'un utilisateur * Fonction appelee lors d'une nouvelle connexion * * @return <0 si echec, >=0 si ok @@ -2074,7 +2077,8 @@ class User extends CommonObject * Update user using data from the LDAP * // TODO: Voir pourquoi le update met à jour avec toutes les valeurs vide (global $user écrase ?) */ - function update_ldap2dolibarr(&$ldapuser) { + function update_ldap2dolibarr(&$ldapuser) + { global $user, $conf; $this->firstname=$ldapuser->{$conf->global->LDAP_FIELD_FIRSTNAME}; @@ -2091,13 +2095,214 @@ class User extends CommonObject $this->job=$ldapuser->{$conf->global->LDAP_FIELD_TITLE}; $this->note=$ldapuser->{$conf->global->LDAP_FIELD_DESCRIPTION}; - + $result = $this->update($user); - + dol_syslog(get_class($this)."::update_ldap2dolibarr result=".$result, LOG_DEBUG); - + return $result; } + + + /** + * Return and array with all instanciated children users of current user + * + * @return void + */ + function get_children() + { + $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."user"; + $sql.= " WHERE fk_user = ".$this->id; + + dol_syslog(get_class($this)."::get_children result=".$result, LOG_DEBUG); + $res = $this->db->query($sql); + if ($res) + { + $users = array (); + while ($rec = $this->db->fetch_array($res)) + { + $user = new User($this->db); + $user->fetch($rec['rowid']); + $users[] = $user; + } + return $users; + } + else + { + dol_print_error($this->db); + return -1; + } + } + + + /** + * Load this->parentof that is array(id_son=>id_parent, ...) + * + * @return int <0 if KO, >0 if OK + */ + private function load_parentof() + { + global $conf; + + $this->parentof=array(); + + // Load array[child]=parent + $sql = "SELECT fk_user as id_parent, rowid as id_son"; + $sql.= " FROM ".MAIN_DB_PREFIX."user"; + $sql.= " WHERE fk_user != 0"; + $sql.= " AND entity = ".$conf->entity; + + dol_syslog(get_class($this)."::load_parentof sql=".$sql); + $resql = $this->db->query($sql); + if ($resql) + { + while ($obj= $this->db->fetch_object($resql)) + { + $this->parentof[$obj->id_son]=$obj->id_parent; + } + return 1; + } + else + { + dol_print_error($this->db); + return -1; + } + } + + /** + * Reconstruit l'arborescence hierarchique des users sous la forme d'un tableau + * Renvoi un tableau de tableau('id','id_parent',...) trie selon arbre et avec: + * id = id du user + * id_parent = id du user parent + * id_children = tableau des id enfant + * name = nom du user + * fullname = nom avec chemin complet du user + * fullpath = chemin complet compose des id + * + * @param int $markafterid Removed all users including the leaf $markafterid in user tree. + * @return array Array of users. this->users and this->parentof are set. + */ + function get_full_tree($markafterid=0) + { + $this->users = array(); + + // Init this->parentof that is array(id_son=>id_parent, ...) + $this->load_parentof(); + + // Init $this->users array + $sql = "SELECT DISTINCT u.rowid, u.firstname, u.name, u.fk_user"; // Distinct reduce pb with old tables with duplicates + $sql.= " FROM ".MAIN_DB_PREFIX."user as u"; + $sql.= " WHERE u.entity IN (".getEntity('user',1).")"; + + dol_syslog(get_class($this)."::get_full_tree get user list sql=".$sql, LOG_DEBUG); + $resql = $this->db->query($sql); + if ($resql) + { + $i=0; + while ($obj = $this->db->fetch_object($resql)) + { + $this->users[$obj->rowid]['rowid'] = $obj->rowid; + $this->users[$obj->rowid]['id'] = $obj->rowid; + $this->users[$obj->rowid]['fk_user'] = $obj->fk_parent; + $this->users[$obj->rowid]['firstname'] = $obj->firstname; + $this->users[$obj->rowid]['name'] = $obj->name; + $i++; + } + } + else + { + dol_print_error($this->db); + return -1; + } + + // We add the fullpath property to each elements of first level (no parent exists) + dol_syslog(get_class($this)."::get_full_tree call to build_path_from_id_user", LOG_DEBUG); + foreach($this->users as $key => $val) + { + $this->build_path_from_id_user($key,0); // Process a branch from the root user key (this user has no parent) + } + + // Exclude leaf including $markafterid from tree + if ($markafterid) + { + //print "Look to discard user ".$markafterid."\n"; + $keyfilter1='^'.$markafterid.'$'; + $keyfilter2='_'.$markafterid.'$'; + $keyfilter3='^'.$markafterid.'_'; + $keyfilter4='_'.$markafterid.'_'; + foreach($this->users as $key => $val) + { + if (preg_match('/'.$keyfilter1.'/',$val['fullpath']) || preg_match('/'.$keyfilter2.'/',$val['fullpath']) + || preg_match('/'.$keyfilter3.'/',$val['fullpath']) || preg_match('/'.$keyfilter4.'/',$val['fullpath'])) + { + unset($this->users[$key]); + } + } + } + + dol_syslog(get_class($this)."::get_full_tree dol_sort_array", LOG_DEBUG); + $this->users=dol_sort_array($this->users, 'fullname', 'asc', true, false); + + //$this->debug_users(); + + return $this->users; + } + + /** + * For user id_user and its childs available in this->users, define property fullpath and fullname + * + * @param int $id_user id_user entry to update + * @param int $protection Deep counter to avoid infinite loop + * @return void + */ + function build_path_from_id_user($id_user,$protection=1000) + { + dol_syslog(get_class($this)."::build_path_from_id_user id_user=".$id_user." protection=".$protection, LOG_DEBUG); + + if (! empty($this->users[$id_user]['fullpath'])) + { + // Already defined + dol_syslog(get_class($this)."::build_path_from_id_user fullpath and fullname already defined", LOG_WARNING); + return; + } + + // Define fullpath and fullname + $this->users[$id_user]['fullpath'] = '_'.$id_user; + $this->users[$id_user]['fullname'] = $this->users[$id_user]['label']; + $i=0; $cursor_user=$id_user; + + while ((empty($protection) || $i < $protection) && ! empty($this->parentof[$cursor_user])) + { + $this->users[$id_user]['fullpath'] = '_'.$this->parentof[$cursor_user].$this->users[$id_user]['fullpath']; + $this->users[$id_user]['fullname'] = $this->users[$this->parentof[$cursor_user]]['label'].' >> '.$this->users[$id_user]['fullname']; + $i++; $cursor_user=$this->parentof[$cursor_user]; + } + + // We count number of _ to have level + $this->users[$id_user]['level']=dol_strlen(preg_replace('/[^_]/i','',$this->users[$id_user]['fullpath'])); + + return; + } + + /** + * Affiche contenu de $this->users + * + * @return void + */ + function debug_users() + { + // Affiche $this->users + foreach($this->users as $key => $val) + { + print 'id: '.$this->users[$key]['id']; + print ' name: '.$this->users[$key]['name']; + print ' parent: '.$this->users[$key]['fk_parent']; + print ' fullpath: '.$this->users[$key]['fullpath']; + print ' fullname: '.$this->users[$key]['fullname']; + print "
\n"; + } + } + } ?> From 935f2d9bd8b3b8a7473f216fccfad4c2ea0a307a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 11 Feb 2013 21:23:25 +0100 Subject: [PATCH 15/28] Add TODO --- htdocs/filefunc.inc.php | 1 + htdocs/main.inc.php | 2 ++ htdocs/master.inc.php | 2 ++ 3 files changed, 5 insertions(+) diff --git a/htdocs/filefunc.inc.php b/htdocs/filefunc.inc.php index d5efaa8f22f..77df6da4f8f 100755 --- a/htdocs/filefunc.inc.php +++ b/htdocs/filefunc.inc.php @@ -106,6 +106,7 @@ if (empty($dolibarr_main_db_cryptkey)) $dolibarr_main_db_cryptkey=''; if (empty($dolibarr_main_limit_users)) $dolibarr_main_limit_users=0; if (empty($dolibarr_mailing_limit_sendbyweb)) $dolibarr_mailing_limit_sendbyweb=0; if (empty($dolibarr_strict_mode)) $dolibarr_strict_mode=0; // For debug in php strict mode +// TODO Multicompany Remove this. Useless. if (empty($multicompany_transverse_mode)) $multicompany_transverse_mode=0; if (empty($multicompany_force_entity)) $multicompany_force_entity=0; // To force entity in login page diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index f7081340f8a..202a7c0dfb1 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -584,6 +584,7 @@ if (! defined('NOLOGIN')) } // Create entity cookie, just used for login page + // TODO Multicompany Move this into hook if (! empty($conf->multicompany->enabled) && ! empty($conf->global->MULTICOMPANY_COOKIE_ENABLED) && isset($_POST["entity"])) { include_once DOL_DOCUMENT_ROOT.'/core/class/cookie.class.php'; @@ -754,6 +755,7 @@ else $heightforframes=52; // Switch to another entity +// TODO Multicompany Remove this if (! empty($conf->multicompany->enabled) && GETPOST('action') == 'switchentity') { if ($mc->switchEntity(GETPOST('entity','int')) > 0) diff --git a/htdocs/master.inc.php b/htdocs/master.inc.php index 41bfa6d3a91..b62ee1c9371 100644 --- a/htdocs/master.inc.php +++ b/htdocs/master.inc.php @@ -75,6 +75,7 @@ if (! empty($dolibarr_main_document_root_alt)) } // Set properties specific to multicompany +// TODO Multicompany Remove this. Useless. Var should be read when required. $conf->multicompany->transverse_mode = empty($multicompany_transverse_mode)?'':$multicompany_transverse_mode; // Force Multi-Company transverse mode $conf->multicompany->force_entity = empty($multicompany_force_entity)?'':(int) $multicompany_force_entity; // Force entity in login page @@ -141,6 +142,7 @@ if (! defined('NOREQUIREDB')) { $conf->entity = DOLENTITY; } + // TODO Multicompany Remove this. else if (! empty($conf->multicompany->force_entity) && is_int($conf->multicompany->force_entity)) // To force entity in login page { $conf->entity = $conf->multicompany->force_entity; From 82dda5723b9431c10b4d1ca04464ae806860cea4 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 12 Feb 2013 01:29:26 +0100 Subject: [PATCH 16/28] Fix: Disable autocomplete --- htdocs/core/tpl/login.tpl.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/tpl/login.tpl.php b/htdocs/core/tpl/login.tpl.php index dcf5d97ea56..60e8f79274c 100644 --- a/htdocs/core/tpl/login.tpl.php +++ b/htdocs/core/tpl/login.tpl.php @@ -110,7 +110,7 @@ $(document).ready(function () {     - + Date: Tue, 12 Feb 2013 09:49:27 +0100 Subject: [PATCH 17/28] Task [ task #711 ] --- htdocs/core/class/html.form.class.php | 15 ++++++++-- htdocs/langs/en_US/admin.lang | 1 + htdocs/langs/fr_FR/admin.lang | 1 + htdocs/societe/admin/societe.php | 43 +++++++++++++++++++++++++++ 4 files changed, 57 insertions(+), 3 deletions(-) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index f31cb0f741e..71673aca078 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -823,11 +823,13 @@ class Form * @param string $showfunction Add function into label * @param string $moreclass Add more class to class style * @param string $showsoc Add company into label + * @param int $forcecombo Force to use combo box + * @param array $event Event options. Example: array(array('method'=>'getContacts', 'url'=>dol_buildpath('/core/ajax/contacts.php',1), 'htmlname'=>'contactid', 'params'=>array('add-customer-contact'=>'disabled'))) * @return int <0 if KO, Nb of contact in list if OK */ - function select_contacts($socid,$selected='',$htmlname='contactid',$showempty=0,$exclude='',$limitto='',$showfunction=0, $moreclass='', $showsoc=0) + function select_contacts($socid,$selected='',$htmlname='contactid',$showempty=0,$exclude='',$limitto='',$showfunction=0, $moreclass='', $showsoc=0, $forcecombo=0, $event=array()) { - print $this->selectcontacts($socid,$selected,$htmlname,$showempty,$exclude,$limitto,$showfunction, $moreclass, $showsoc); + print $this->selectcontacts($socid,$selected,$htmlname,$showempty,$exclude,$limitto,$showfunction, $moreclass, $showsoc, $forcecombo, $event); return $this->num; } @@ -844,9 +846,11 @@ class Form * @param string $moreclass Add more class to class style * @param bool $options_only Return options only (for ajax treatment) * @param string $showsoc Add company into label + * @param int $forcecombo Force to use combo box + * @param array $event Event options. Example: array(array('method'=>'getContacts', 'url'=>dol_buildpath('/core/ajax/contacts.php',1), 'htmlname'=>'contactid', 'params'=>array('add-customer-contact'=>'disabled'))) * @return int <0 if KO, Nb of contact in list if OK */ - function selectcontacts($socid,$selected='',$htmlname='contactid',$showempty=0,$exclude='',$limitto='',$showfunction=0, $moreclass='', $options_only=false, $showsoc=0) + function selectcontacts($socid,$selected='',$htmlname='contactid',$showempty=0,$exclude='',$limitto='',$showfunction=0, $moreclass='', $options_only=false, $showsoc=0, $forcecombo=0, $event=array()) { global $conf,$langs; @@ -872,6 +876,11 @@ class Form if ($resql) { $num=$this->db->num_rows($resql); + + if ($conf->use_javascript_ajax && $conf->global->CONTACT_USE_SEARCH_TO_SELECT && ! $forcecombo) + { + $out.= ajax_combobox($htmlname, $event); + } if ($htmlname != 'none' || $options_only) $out.= ''; +print ''; +print ""; +print ''.$langs->trans("UseSearchToSelectContact").''; +if (! $conf->use_javascript_ajax) +{ + print ''; + print $langs->trans("NotAvailableWhenAjaxDisabled"); + print ""; +} +else +{ + print ''; + $arrval=array('0'=>$langs->trans("No"), + '1'=>$langs->trans("Yes").' ('.$langs->trans("NumberOfKeyToSearch",1).')', + '2'=>$langs->trans("Yes").' ('.$langs->trans("NumberOfKeyToSearch",2).')', + '3'=>$langs->trans("Yes").' ('.$langs->trans("NumberOfKeyToSearch",3).')', + ); + print $form->selectarray("activate_CONTACT_USE_SEARCH_TO_SELECT",$arrval,$conf->global->CONTACT_USE_SEARCH_TO_SELECT); + print ''; + print ''; + print ""; +} +print ''; print ''; + dol_fiche_end(); $db->close(); From 112526e8b1a11665af5b99855cf4a140ad0b8ab9 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 12 Feb 2013 14:48:12 +0100 Subject: [PATCH 18/28] Fix: bad translation --- htdocs/langs/en_US/agenda.lang | 2 +- htdocs/langs/fr_FR/agenda.lang | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/langs/en_US/agenda.lang b/htdocs/langs/en_US/agenda.lang index 3d180e7b747..2355c112194 100644 --- a/htdocs/langs/en_US/agenda.lang +++ b/htdocs/langs/en_US/agenda.lang @@ -15,7 +15,7 @@ MyEvents=My events OtherEvents=Other events ListOfActions=List of events Location=Location -EventOnFullDay=Event on full day +EventOnFullDay=Event on all day(s) SearchAnAction= Search an event/task MenuToDoActions= All incomplete events MenuDoneActions= All terminated events diff --git a/htdocs/langs/fr_FR/agenda.lang b/htdocs/langs/fr_FR/agenda.lang index d91f836d9b9..33555be6951 100644 --- a/htdocs/langs/fr_FR/agenda.lang +++ b/htdocs/langs/fr_FR/agenda.lang @@ -14,7 +14,7 @@ EventsNb=Nombre d'événements MyEvents=Mes événements OtherEvents=Autres événements ListOfActions=Liste des événements -EventOnFullDay=Événement sur la journée +EventOnFullDay=Événement sur la(les) journée(s) Location=Lieu SearchAnAction=Rechercher un événement/tâche MenuToDoActions=Les événem. incomplets From 8a72ff8fc22070882d013d32a5e9f3a1057c1ea0 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 12 Feb 2013 14:48:12 +0100 Subject: [PATCH 19/28] Fix: bad translation --- htdocs/langs/en_US/agenda.lang | 2 +- htdocs/langs/fr_FR/agenda.lang | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/langs/en_US/agenda.lang b/htdocs/langs/en_US/agenda.lang index 3d180e7b747..2355c112194 100644 --- a/htdocs/langs/en_US/agenda.lang +++ b/htdocs/langs/en_US/agenda.lang @@ -15,7 +15,7 @@ MyEvents=My events OtherEvents=Other events ListOfActions=List of events Location=Location -EventOnFullDay=Event on full day +EventOnFullDay=Event on all day(s) SearchAnAction= Search an event/task MenuToDoActions= All incomplete events MenuDoneActions= All terminated events diff --git a/htdocs/langs/fr_FR/agenda.lang b/htdocs/langs/fr_FR/agenda.lang index d91f836d9b9..33555be6951 100644 --- a/htdocs/langs/fr_FR/agenda.lang +++ b/htdocs/langs/fr_FR/agenda.lang @@ -14,7 +14,7 @@ EventsNb=Nombre d'événements MyEvents=Mes événements OtherEvents=Autres événements ListOfActions=Liste des événements -EventOnFullDay=Événement sur la journée +EventOnFullDay=Événement sur la(les) journée(s) Location=Lieu SearchAnAction=Rechercher un événement/tâche MenuToDoActions=Les événem. incomplets From ddf27b2c67131b85c96e79306d8618ba0c7cf617 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 12 Feb 2013 15:01:16 +0100 Subject: [PATCH 20/28] Fix Bug 708 --- htdocs/comm/action/fiche.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/comm/action/fiche.php b/htdocs/comm/action/fiche.php index 37b01f22f49..79500a94fd0 100644 --- a/htdocs/comm/action/fiche.php +++ b/htdocs/comm/action/fiche.php @@ -185,7 +185,7 @@ if ($action == 'add_action') if (! empty($conf->phenix->enabled) && GETPOST('add_phenix') == 'on') $actioncomm->use_phenix=1; // Check parameters - if ($actioncomm->type_code == 'AC_RDV' && ($datep == '' || $datef == '')) + if ($actioncomm->type_code == 'AC_RDV' && ($datep == '' || ($datef == '' && empty($fulldayevent)))) { $error++; $action = 'create'; @@ -561,7 +561,7 @@ if ($action == 'create') } else { print $form->select_company('','socid','',1,1); } - + } print ''; From 6ad617842d8d71530c5c61fe1863d253a96faed8 Mon Sep 17 00:00:00 2001 From: fhenry Date: Tue, 12 Feb 2013 15:31:12 +0100 Subject: [PATCH 21/28] Commit temporaire --- htdocs/comm/fiche.php | 30 +++++++++ htdocs/comm/prospect/class/prospect.class.php | 6 +- htdocs/societe/class/societe.class.php | 67 +++++++++++++++++++ 3 files changed, 100 insertions(+), 3 deletions(-) diff --git a/htdocs/comm/fiche.php b/htdocs/comm/fiche.php index 84987129be3..8b840353d8a 100644 --- a/htdocs/comm/fiche.php +++ b/htdocs/comm/fiche.php @@ -27,10 +27,15 @@ * \brief Page to show customer card of a third party */ +error_reporting(E_ALL); +ini_set('display_errors', true); +ini_set('html_errors', false); + require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; if (! empty($conf->facture->enabled)) require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; if (! empty($conf->propal->enabled)) require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; if (! empty($conf->commande->enabled)) require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; @@ -109,6 +114,15 @@ if ($action == 'setassujtva' && $user->rights->societe->creer) if (! $result) dol_print_error($result); } +// set prospect level +if ($action == 'setprospectlevel' && $user->rights->societe->creer) +{ + $object->fetch($socid); + $object->fk_prospectlevel=GETPOST('prospect_level_id','int'); + $object->set_prospect_level($user); + if ($result < 0) setEventMessage($object->error,'errors'); +} + /* @@ -121,6 +135,7 @@ llxHeader('',$langs->trans('CustomerCard')); $contactstatic = new Contact($db); $userstatic=new User($db); $form = new Form($db); +$formcompany=new FormCompany($db); if ($mode == 'search') @@ -359,6 +374,21 @@ if ($id > 0) print ''.$object->price_level.""; print ''; } + + // Level of prospect + print ''; + print ''; + print '
'; + print $langs->trans('ProspectLevelShort'); + print ''; + if ($action != 'editlevel' && $user->rights->societe->creer) print 'id.'">'.img_edit($langs->trans('Modify'),1).'
'; + print ''; + if ($action == 'editlevel') + $formcompany->form_prospect_level($_SERVER['PHP_SELF'].'?socid='.$object->id,$object->fk_prospectlevel,'prospect_level_id',1); + else + print $object->getLibProspLevel(); + print ""; + print ''; // Sales representative include DOL_DOCUMENT_ROOT.'/societe/tpl/linesalesrepresentative.tpl.php'; diff --git a/htdocs/comm/prospect/class/prospect.class.php b/htdocs/comm/prospect/class/prospect.class.php index 68440aa0b84..ec0454c4847 100644 --- a/htdocs/comm/prospect/class/prospect.class.php +++ b/htdocs/comm/prospect/class/prospect.class.php @@ -148,9 +148,9 @@ class Prospect extends Societe * * @return string Libelle */ - function getLibLevel() + function getLibProspLevel() { - return $this->LibLevel($this->fk_prospectlevel); + return $this->LibProspLevel($this->fk_prospectlevel); } /** @@ -159,7 +159,7 @@ class Prospect extends Societe * @param int $fk_prospectlevel Prospect level * @return string Libelle du niveau */ - function LibLevel($fk_prospectlevel) + function LibProspLevel($fk_prospectlevel) { global $langs; diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php index db147ffde86..7dd0a6b1ff7 100644 --- a/htdocs/societe/class/societe.class.php +++ b/htdocs/societe/class/societe.class.php @@ -2655,6 +2655,73 @@ class Societe extends CommonObject return false; } + + /** + * Return prostect level + * + * @return string Libelle + */ + function getLibProspLevel() + { + return $this->LibProspLevel($this->fk_prospectlevel); + } + + /** + * Return label of prospect level + * + * @param int $fk_prospectlevel Prospect level + * @return string label of level + */ + function LibProspLevel($fk_prospectlevel) + { + global $langs; + + $lib=$langs->trans("ProspectLevel".$fk_prospectlevel); + // If lib not found in language file, we get label from cache/databse + if ($lib == $langs->trans("ProspectLevel".$fk_prospectlevel)) + { + $lib=$langs->getLabelFromKey($this->db,$fk_prospectlevel,'c_prospectlevel','code','label'); + } + return $lib; + } + + + /** + * Definit la societe comme un client + * + * @param float $remise Valeur en % de la remise + * @param string $note Note/Motif de modification de la remise + * @param User $user Utilisateur qui definie la remise + * @return int <0 if KO, >0 if OK + */ + function set_prospect_level($user) + { + global $langs; + + if ($this->id) + { + $this->db->begin(); + + $now=dol_now(); + + // Positionne remise courante + $sql = "UPDATE ".MAIN_DB_PREFIX."societe SET "; + $sql.= " fk_prospectlevel='".$this->fk_prospectlevel."'"; + $sql.= " ,fk_user_modif='".$user->id."'"; + $sql.= " WHERE rowid = ".$this->id; + dol_syslog(get_class($this)."::set_prospect_level sql=".$sql); + $resql=$this->db->query($sql); + if (! $resql) + { + $this->db->rollback(); + $this->error=$this->db->error(); + return -1; + } + + $this->db->commit(); + return 1; + } + } } From 3eb485d52123662da44a8ffbc240a72306c00968 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 12 Feb 2013 17:08:21 +0100 Subject: [PATCH 22/28] Qual: Removed TODO, deprecated code and deprecated properties. This also fix missing combo box of contacts onto CC. --- htdocs/comm/propal.php | 193 +++++++++++----------- htdocs/commande/fiche.php | 9 +- htdocs/compta/facture.php | 9 +- htdocs/core/class/html.formmail.class.php | 29 +--- htdocs/expedition/fiche.php | 9 +- htdocs/fichinter/fiche.php | 9 +- htdocs/fourn/commande/fiche.php | 9 +- htdocs/fourn/facture/fiche.php | 9 +- 8 files changed, 123 insertions(+), 153 deletions(-) diff --git a/htdocs/comm/propal.php b/htdocs/comm/propal.php index cd2f44878ed..cc34443a622 100644 --- a/htdocs/comm/propal.php +++ b/htdocs/comm/propal.php @@ -38,7 +38,7 @@ require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/modules/propale/modules_propale.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/propal.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; -if (! empty($conf->projet->enabled)) +if (! empty($conf->projet->enabled)) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php'; @@ -260,7 +260,7 @@ else if ($action == 'add' && $user->rights->propal->creer) $action='create'; $error++; } - + if ($socid<1) { setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Customer")),'errors'); @@ -1174,7 +1174,7 @@ $now=dol_now(); if ($action == 'create') { print_fiche_titre($langs->trans("NewProp")); - + $soc = new Societe($db); if ($socid>0) $res=$soc->fetch($socid); @@ -1214,7 +1214,7 @@ if ($action == 'create') print '

'; print ''; print ''; - + if ($origin != 'project' && $originid) { print ''; @@ -1459,20 +1459,20 @@ if ($action == 'create') print ""; } -else +else { /* * Show object in view mode */ - + $soc = new Societe($db); $soc->fetch($object->socid); - + $head = propal_prepare_head($object); dol_fiche_head($head, 'comm', $langs->trans('Proposal'), 0, 'propal'); - + $formconfirm=''; - + // Clone confirmation if ($action == 'clone') { @@ -1486,30 +1486,30 @@ else // Paiement incomplet. On demande si motif = escompte ou autre $formconfirm=$form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id,$langs->trans('ClonePropal'),$langs->trans('ConfirmClonePropal',$object->ref),'confirm_clone',$formquestion,'yes',1); } - + // Confirm delete else if ($action == 'delete') { $formconfirm=$form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('DeleteProp'), $langs->trans('ConfirmDeleteProp',$object->ref), 'confirm_delete','',0,1); } - + // Confirm reopen else if ($action == 'reopen') { $formconfirm=$form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ReOpen'), $langs->trans('ConfirmReOpenProp',$object->ref), 'confirm_reopen','',0,1); } - + // Confirmation delete product/service line else if ($action == 'ask_deleteline') { $formconfirm=$form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id.'&lineid='.$lineid, $langs->trans('DeleteProductLine'), $langs->trans('ConfirmDeleteProductLine'), 'confirm_deleteline','',0,1); } - + // Confirm validate proposal else if ($action == 'validate') { $error=0; - + // on verifie si l'objet est en numerotation provisoire $ref = substr($object->ref, 1, 4); if ($ref == 'PROV') @@ -1525,7 +1525,7 @@ else { $numref = $object->ref; } - + $text=$langs->trans('ConfirmValidateProp',$numref); if (! empty($conf->notification->enabled)) { @@ -1534,29 +1534,29 @@ else $text.='
'; $text.=$notify->confirmMessage('NOTIFY_VAL_PROPAL',$object->socid); } - + if (! $error) $formconfirm=$form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ValidateProp'), $text, 'confirm_validate','',0,1); } - + if (! $formconfirm) { $parameters=array('lineid'=>$lineid); $formconfirm=$hookmanager->executeHooks('formConfirm',$parameters,$object,$action); // Note that $action and $object may have been modified by hook } - + // Print form confirm print $formconfirm; - - + + print ''; - + $linkback = ''.$langs->trans("BackToList").''; - + // Ref print ''; - + // Ref client print '
'.$langs->trans('Ref').''; print $form->showrefnav($object, 'ref', $linkback, 1, 'ref', 'ref', ''); print '
'; print ''; print ''; - + // Company print ''; print ''; - + // Ligne info remises tiers print ''; - + // Date of proposal print ''; print ''; - + // Date end proposal print ''; print ''; print ''; - + // Payment term print ''; print ''; print ''; + if ($conf->margin->enabled) + print ''; print ''; print "\n"; @@ -932,6 +958,10 @@ else { print ''; } + + if ($conf->margin->enabled) + print ''; + // Icon move, update et delete (statut contrat 0=brouillon,1=valide,2=ferme) print ''; - print '"; print ''; print ''; print ''; + if ($conf->margin->enabled) { + print ''; + } print ''; // Ligne dates prevues print ""; - print ''; - print ''; + print ''; print "\n"; } @@ -1213,7 +1251,7 @@ else print ''; - print ''; + print ''; print '
'; @@ -1580,11 +1580,11 @@ else } print '
'.$langs->trans('Company').''.$soc->getNomUrl(1).'
'.$langs->trans('Discounts').''; if ($soc->remise_client) print $langs->trans("CompanyHasRelativeDiscount",$soc->remise_client); @@ -1614,7 +1614,7 @@ else } if (! $absolute_discount && ! $absolute_creditnote) print $langs->trans("CompanyHasNoAbsoluteDiscount").'.'; print '
'; @@ -1645,7 +1645,7 @@ else } } print '
'; @@ -1678,7 +1678,7 @@ else } print '
'; print ''; print ''; - + // Delivery date $langs->load('deliveries'); print ''; print ''; - + // Delivery delay print '\n"; } @@ -462,23 +451,11 @@ class FormMail else { $out.= 'withtoccc) : (isset($_POST["sendtoccc"])?$_POST["sendtoccc"]:"") ).'" />'; - if (! empty($this->withto) && is_array($this->withto)) + if (! empty($this->withtoccc) && is_array($this->withtoccc)) { $out.= " ".$langs->trans("or")." "; $out.= $form->selectarray("receiverccc", $this->withto, GETPOST("receiverccc"), 1); } - if (! empty($this->withtocccsocid) && $this->withtocccsocid > 0) // deprecated. TODO Remove this. Instead, fill withto with array before calling method. - { - $liste=array(); - $soc=new Societe($this->db); - $soc->fetch($this->withtosocid); - foreach ($soc->thirdparty_and_contact_email_array(1) as $key=>$value) - { - $liste[$key]=$value; - } - $out.= " ".$langs->trans("or")." "; - $out.= $form->selectarray("receiverccc", $liste, GETPOST("receiverccc"), 1); - } } //if (! empty($conf->global->MAIN_MAIL_AUTOCOPY_TO)) print ' '.info_admin("+ ".$conf->global->MAIN_MAIL_AUTOCOPY_TO,1); $out.= "\n"; diff --git a/htdocs/expedition/fiche.php b/htdocs/expedition/fiche.php index 90850fce683..21289f60864 100644 --- a/htdocs/expedition/fiche.php +++ b/htdocs/expedition/fiche.php @@ -1443,12 +1443,11 @@ else $formmail->fromname = $user->getFullName($langs); $formmail->frommail = $user->email; $formmail->withfrom=1; - $formmail->withto=GETPOST('sendto','int')?GETPOST('sendto','int'):1; - $formmail->withtosocid=$soc->id; - $formmail->withtocc=1; - $formmail->withtoccsocid=0; + $liste=array(); + foreach ($object->thirdparty->thirdparty_and_contact_email_array(1) as $key=>$value) $liste[$key]=$value; + $formmail->withto=GETPOST("sendto")?GETOST("sendto"):$liste; + $formmail->withtocc=$liste; $formmail->withtoccc=$conf->global->MAIN_EMAIL_USECCC; - $formmail->withtocccsocid=0; $formmail->withtopic=$langs->trans('SendShippingRef','__SHIPPINGREF__'); $formmail->withfile=2; $formmail->withbody=1; diff --git a/htdocs/fichinter/fiche.php b/htdocs/fichinter/fiche.php index 11e1eabd782..b2db591eefc 100644 --- a/htdocs/fichinter/fiche.php +++ b/htdocs/fichinter/fiche.php @@ -1487,12 +1487,11 @@ else if ($id > 0 || ! empty($ref)) $formmail->fromname = $user->getFullName($langs); $formmail->frommail = $user->email; $formmail->withfrom=1; - $formmail->withto=(!GETPOST('sendto','alpha'))?1:GETPOST('sendto','alpha'); - $formmail->withtosocid=$societe->id; - $formmail->withtocc=1; - $formmail->withtoccsocid=0; + $liste=array(); + foreach ($object->thirdparty->thirdparty_and_contact_email_array(1) as $key=>$value) $liste[$key]=$value; + $formmail->withto=GETPOST("sendto")?GETOST("sendto"):$liste; + $formmail->withtocc=$liste; $formmail->withtoccc=$conf->global->MAIN_EMAIL_USECCC; - $formmail->withtocccsocid=0; $formmail->withtopic=$langs->trans('SendInterventionRef','__FICHINTERREF__'); $formmail->withfile=2; $formmail->withbody=1; diff --git a/htdocs/fourn/commande/fiche.php b/htdocs/fourn/commande/fiche.php index ee802c3dc0f..24ecd0690b0 100644 --- a/htdocs/fourn/commande/fiche.php +++ b/htdocs/fourn/commande/fiche.php @@ -1819,12 +1819,11 @@ if (! empty($object->id)) $formmail->fromname = $user->getFullName($langs); $formmail->frommail = $user->email; $formmail->withfrom=1; - $formmail->withto=empty($_POST["sendto"])?1:$_POST["sendto"]; - $formmail->withtosocid=$object->thirdparty->id; - $formmail->withtocc=1; - $formmail->withtoccsocid=0; + $liste=array(); + foreach ($object->thirdparty->thirdparty_and_contact_email_array(1) as $key=>$value) $liste[$key]=$value; + $formmail->withto=GETPOST("sendto")?GETOST("sendto"):$liste; + $formmail->withtocc=$liste; $formmail->withtoccc=(! empty($conf->global->MAIN_EMAIL_USECCC)?$conf->global->MAIN_EMAIL_USECCC:false); - $formmail->withtocccsocid=0; $formmail->withtopic=$langs->trans('SendOrderRef','__ORDERREF__'); $formmail->withfile=2; $formmail->withbody=1; diff --git a/htdocs/fourn/facture/fiche.php b/htdocs/fourn/facture/fiche.php index be8b7f6664d..571742a977d 100644 --- a/htdocs/fourn/facture/fiche.php +++ b/htdocs/fourn/facture/fiche.php @@ -2075,12 +2075,11 @@ else $formmail->fromname = $user->getFullName($langs); $formmail->frommail = $user->email; $formmail->withfrom=1; - $formmail->withto=empty($_POST["sendto"])?1:$_POST["sendto"]; - $formmail->withtosocid=$societe->id; - $formmail->withtocc=1; - $formmail->withtoccsocid=0; + $liste=array(); + foreach ($object->thirdparty->thirdparty_and_contact_email_array(1) as $key=>$value) $liste[$key]=$value; + $formmail->withto=GETPOST("sendto")?GETOST("sendto"):$liste; + $formmail->withtocc=$liste; $formmail->withtoccc=$conf->global->MAIN_EMAIL_USECCC; - $formmail->withtocccsocid=0; $formmail->withtopic=$langs->trans('SendBillRef','__FACREF__'); $formmail->withfile=2; $formmail->withbody=1; From 82fc8e1536adc6831c1420ae45c3edb1a9a3fd8c Mon Sep 17 00:00:00 2001 From: fhenry Date: Tue, 12 Feb 2013 19:16:48 +0100 Subject: [PATCH 23/28] Task 350 in Doliforge --- htdocs/comm/contact.php | 7 +- htdocs/comm/fiche.php | 34 ++- htdocs/comm/index.php | 4 +- htdocs/comm/propal/list.php | 9 +- htdocs/comm/prospect/fiche.php | 343 ------------------------- htdocs/contact/list.php | 7 +- htdocs/core/boxes/box_prospect.php | 4 +- htdocs/core/lib/company.lib.php | 11 +- htdocs/societe/class/societe.class.php | 142 ++++++++-- 9 files changed, 155 insertions(+), 406 deletions(-) delete mode 100644 htdocs/comm/prospect/fiche.php diff --git a/htdocs/comm/contact.php b/htdocs/comm/contact.php index 114fc6398e0..98f12489fea 100644 --- a/htdocs/comm/contact.php +++ b/htdocs/comm/contact.php @@ -55,16 +55,11 @@ $result = restrictedArea($user, 'societe',$socid,''); llxHeader('','Contacts'); -if ($type == "c") +if ($type == "c" || $type == "p") { $label = $langs->trans("Customers"); $urlfiche="fiche.php"; } -if ($type == "p") -{ - $label = $langs->trans("Prospects"); - $urlfiche="prospect/fiche.php"; -} if ($type == "f") { $label = $langs->trans("Suppliers"); diff --git a/htdocs/comm/fiche.php b/htdocs/comm/fiche.php index 8b840353d8a..397fb9da835 100644 --- a/htdocs/comm/fiche.php +++ b/htdocs/comm/fiche.php @@ -27,10 +27,6 @@ * \brief Page to show customer card of a third party */ -error_reporting(E_ALL); -ini_set('display_errors', true); -ini_set('html_errors', false); - require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; @@ -117,9 +113,18 @@ if ($action == 'setassujtva' && $user->rights->societe->creer) // set prospect level if ($action == 'setprospectlevel' && $user->rights->societe->creer) { - $object->fetch($socid); - $object->fk_prospectlevel=GETPOST('prospect_level_id','int'); - $object->set_prospect_level($user); + $object->fetch($id); + $object->fk_prospectlevel=GETPOST('prospect_level_id','alpha'); + $result=$object->set_prospect_level($user); + if ($result < 0) setEventMessage($object->error,'errors'); +} + +// Update communication level +if ($action == 'cstc') +{ + $object->fetch($id); + $object->stcomm_id=GETPOST('stcomm','int'); + $result=$object->set_commnucation_level($user); if ($result < 0) setEventMessage($object->error,'errors'); } @@ -191,6 +196,11 @@ if ($id > 0) $object->next_prev_filter="te.client in (1,3)"; print $form->showrefnav($object,'socid','',($user->societe_id?0:1),'rowid','nom','',''); print ''; + + // Prospect/Customer + print ''; // Prefix if (! empty($conf->global->SOCIETE_USEPREFIX)) // Old not used prefix field @@ -389,6 +399,16 @@ if ($id > 0) print $object->getLibProspLevel(); print ""; print ''; + + // Status + print ''; + print ''; // Sales representative include DOL_DOCUMENT_ROOT.'/societe/tpl/linesalesrepresentative.tpl.php'; diff --git a/htdocs/comm/index.php b/htdocs/comm/index.php index cc420c48d15..cfcd8ee121c 100644 --- a/htdocs/comm/index.php +++ b/htdocs/comm/index.php @@ -315,9 +315,7 @@ if (! empty($conf->societe->enabled) && $user->rights->societe->lire) print ''; print ''; print '"; print '"; print ''; diff --git a/htdocs/comm/propal/list.php b/htdocs/comm/propal/list.php index b2f1f8dcc44..4063802ffa4 100644 --- a/htdocs/comm/propal/list.php +++ b/htdocs/comm/propal/list.php @@ -322,14 +322,7 @@ if ($result) print $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir); print '
'; @@ -1697,7 +1697,7 @@ else } print '
'; @@ -1722,7 +1722,7 @@ else } print '
'; print ''; print ''; - + // Origin of demand print ''; $form_close.= '
'; @@ -1740,10 +1740,10 @@ else { $form->form_availability($_SERVER['PHP_SELF'].'?id='.$object->id,$object->availability_id,'none',1); } - + print '
'; print ''; print ''; - + // Payment mode print ''; print ''; - + // Project if (! empty($conf->projet->enabled)) { @@ -1825,7 +1825,7 @@ else } print ''; } - + // Other attributes $parameters=array('colspan' => ' colspan="3"'); $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook @@ -1841,12 +1841,12 @@ else print ''."\n"; } } - + // Amount HT print ''; print ''; print ''; - + // Margin Infos if (! empty($conf->margin->enabled)) { print ''; } print ''; - + // Amount VAT print ''; print ''; print ''; - + // Amount Local Taxes if ($mysoc->localtax1_assuj=="1") //Localtax1 { @@ -1873,55 +1873,55 @@ else print ''; print ''; } - - + + // Amount TTC print ''; print ''; print ''; - + // Statut print ''; - + print '
'; @@ -1761,10 +1761,10 @@ else { $form->form_demand_reason($_SERVER['PHP_SELF'].'?id='.$object->id,$object->demand_reason_id,'none'); } - + print '
'; @@ -1783,7 +1783,7 @@ else $form->form_modes_reglement($_SERVER['PHP_SELF'].'?id='.$object->id,$object->mode_reglement_id,'none'); } print '
'.$langs->trans('AmountHT').''.price($object->total_ht).''.$langs->trans("Currency".$conf->currency).''; @@ -1854,12 +1854,12 @@ else print '
'.$langs->trans('AmountVAT').''.price($object->total_tva).''.$langs->trans("Currency".$conf->currency).'
'.price($object->total_localtax2).''.$langs->trans("Currency".$conf->currency).'
'.$langs->trans('AmountTTC').''.price($object->total_ttc).''.$langs->trans("Currency".$conf->currency).'
'.$langs->trans('Status').''.$object->getLibStatut(4).'

'; - + if (! empty($conf->global->MAIN_DISABLE_CONTACTS_TAB)) { $blocname = 'contacts'; $title = $langs->trans('ContactsAddresses'); include DOL_DOCUMENT_ROOT.'/core/tpl/bloc_showhide.tpl.php'; } - + if (! empty($conf->global->MAIN_DISABLE_NOTES_TAB)) { $blocname = 'notes'; $title = $langs->trans('Notes'); include DOL_DOCUMENT_ROOT.'/core/tpl/bloc_showhide.tpl.php'; } - + /* * Lines */ - + if (! empty($conf->use_javascript_ajax) && $object->statut == 0) { include DOL_DOCUMENT_ROOT.'/core/tpl/ajaxrow.tpl.php'; } - + print ''; - + // Show object lines $result = $object->getLinesArray(); if (! empty($object->lines)) $ret=$object->printObjectLines($action,$mysoc,$soc,$lineid); - + // Form to add new line if ($object->statut == 0 && $user->rights->propal->creer) { if ($action != 'editline') { $var=true; - + if ($conf->global->MAIN_FEATURES_LEVEL > 1) { // Add free or predefined products/services @@ -1931,7 +1931,7 @@ else { // Add free products/services $object->formAddFreeProduct(0,$mysoc,$soc); - + // Add predefined products/services if (! empty($conf->product->enabled) || ! empty($conf->service->enabled)) { @@ -1939,17 +1939,17 @@ else $object->formAddPredefinedProduct(0,$mysoc,$soc); } } - + $parameters=array(); $reshook=$hookmanager->executeHooks('formAddObjectLine',$parameters,$object,$action); // Note that $action and $object may have been modified by hook } } - + print '
'; - + print ''; print "\n"; - + if ($action == 'statut') { /* @@ -1975,18 +1975,18 @@ else $form_close.= ' '; $form_close.= '
'; - + print $form_close; } - - + + /* * Boutons Actions */ if ($action != 'presend') { print '
'; - + if ($action != 'statut' && $action <> 'editline') { // Validate @@ -1995,20 +1995,20 @@ else if (count($object->lines) > 0) print ''.$langs->trans('Validate').''; else print ''.$langs->trans('Validate').''; } - + // Edit if ($object->statut == 1 && $user->rights->propal->creer) { print ''.$langs->trans('Modify').''; } - + // ReOpen if (($object->statut == 2 || $object->statut == 3) && $user->rights->propal->cloturer) { print 'global->MAIN_JUMP_TAG)?'':'#reopen').'"'; print '>'.$langs->trans('ReOpen').''; } - + // Send if ($object->statut == 1 || $object->statut == 2) { @@ -2018,7 +2018,7 @@ else } else print ''.$langs->trans('SendByMail').''; } - + // Create an order if (! empty($conf->commande->enabled) && $object->statut == 2 && $user->societe_id == 0) { @@ -2027,7 +2027,7 @@ else print ''.$langs->trans("AddOrder").''; } } - + // Create an invoice and classify billed if ($object->statut == 2 && $user->societe_id == 0) { @@ -2035,46 +2035,46 @@ else { print ''.$langs->trans("AddBill").''; } - + $arraypropal=$object->getInvoiceArrayList(); if (is_array($arraypropal) && count($arraypropal) > 0) { print 'socid.'">'.$langs->trans("ClassifyBilled").''; } } - + // Close if ($object->statut == 1 && $user->rights->propal->cloturer) { print 'global->MAIN_JUMP_TAG)?'':'#close').'"'; print '>'.$langs->trans('Close').''; } - + // Clone if ($user->rights->propal->creer) { print ''.$langs->trans("ToClone").''; } - + // Delete if ($user->rights->propal->supprimer) { print ''.$langs->trans('Delete').''; } - + } - + print '
'; print "
\n"; } - + if ($action != 'presend') { print '
'; print ''; // ancre - - + + /* * Documents generes */ @@ -2083,28 +2083,28 @@ else $urlsource=$_SERVER["PHP_SELF"]."?id=".$object->id; $genallowed=$user->rights->propal->creer; $delallowed=$user->rights->propal->supprimer; - + $var=true; - + $somethingshown=$formfile->show_documents('propal',$filename,$filedir,$urlsource,$genallowed,$delallowed,$object->modelpdf,1,0,0,28,0,'',0,'',$soc->default_lang); - - + + /* * Linked object block */ $somethingshown=$object->showLinkedObjectBlock(); - + print ''; - + // List of actions on element include_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php'; $formactions=new FormActions($db); $somethingshown=$formactions->showactions($object,'propal',$socid); - + print '
'; } - - + + /* * Action presend * @@ -2115,7 +2115,7 @@ else include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; $fileparams = dol_most_recent_file($conf->propal->dir_output . '/' . $ref, preg_quote($object->ref,'/')); $file=$fileparams['fullname']; - + // Build document if it not exists if (! $file || ! is_readable($file)) { @@ -2129,7 +2129,7 @@ else $outputlangs = new Translate("",$conf); $outputlangs->setDefaultLang($newlang); } - + $result=propale_pdf_create($db, $object, GETPOST('model')?GETPOST('model'):$object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref); if ($result <= 0) { @@ -2139,10 +2139,10 @@ else $fileparams = dol_most_recent_file($conf->propal->dir_output . '/' . $ref, preg_quote($object->ref,'/')); $file=$fileparams['fullname']; } - + print '
'; print_titre($langs->trans('SendPropalByMail')); - + // Create form object include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php'; $formmail = new FormMail($db); @@ -2151,18 +2151,17 @@ else $formmail->fromname = $user->getFullName($langs); $formmail->frommail = $user->email; $formmail->withfrom=1; - $formmail->withto=empty($_POST["sendto"])?1:$_POST["sendto"]; - $formmail->withtosocid=$soc->id; - $formmail->withtocc=1; - $formmail->withtoccsocid=0; + $liste=array(); + foreach ($object->thirdparty->thirdparty_and_contact_email_array(1) as $key=>$value) $liste[$key]=$value; + $formmail->withto=GETPOST("sendto")?GETPOST("sendto"):$liste; + $formmail->withtocc=$liste; $formmail->withtoccc=(! empty($conf->global->MAIN_EMAIL_USECCC)?$conf->global->MAIN_EMAIL_USECCC:false); - $formmail->withtocccsocid=0; $formmail->withtopic=$langs->trans('SendPropalRef','__PROPREF__'); $formmail->withfile=2; $formmail->withbody=1; $formmail->withdeliveryreceipt=1; $formmail->withcancel=1; - + // Tableau des substitutions $formmail->substit['__PROPREF__']=$object->ref; $formmail->substit['__SIGNATURE__']=$user->signature; @@ -2172,16 +2171,16 @@ else $formmail->param['models']='propal_send'; $formmail->param['id']=$object->id; $formmail->param['returnurl']=$_SERVER["PHP_SELF"].'?id='.$object->id; - + // Init list of files if (GETPOST("mode")=='init') { $formmail->clear_attached_files(); $formmail->add_attached_files($file,basename($file),dol_mimetype($file)); } - + $formmail->show_form(); - + print '
'; } } diff --git a/htdocs/commande/fiche.php b/htdocs/commande/fiche.php index ccaadefe2ee..03dde1a24ff 100644 --- a/htdocs/commande/fiche.php +++ b/htdocs/commande/fiche.php @@ -2418,12 +2418,11 @@ if ($action == 'send' && ! GETPOST('addfile') && ! GETPOST('removedfile') && ! G $formmail->fromname = $user->getFullName($langs); $formmail->frommail = $user->email; $formmail->withfrom=1; - $formmail->withto=GETPOST('sendto')?GETPOST('sendto'):1; - $formmail->withtosocid=$soc->id; - $formmail->withtocc=1; - $formmail->withtoccsocid=0; + $liste=array(); + foreach ($object->thirdparty->thirdparty_and_contact_email_array(1) as $key=>$value) $liste[$key]=$value; + $formmail->withto=GETPOST('sendto')?GETPOST('sendto'):$liste; + $formmail->withtocc=$liste; $formmail->withtoccc=$conf->global->MAIN_EMAIL_USECCC; - $formmail->withtocccsocid=0; $formmail->withtopic=$langs->trans('SendOrderRef','__ORDERREF__'); $formmail->withfile=2; $formmail->withbody=1; diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php index 4295e1f6fa9..bccac8d8354 100644 --- a/htdocs/compta/facture.php +++ b/htdocs/compta/facture.php @@ -3403,12 +3403,11 @@ else if ($id > 0 || ! empty($ref)) $formmail->fromname = $user->getFullName($langs); $formmail->frommail = $user->email; $formmail->withfrom=1; - $formmail->withto=empty($_POST["sendto"])?1:$_POST["sendto"]; - $formmail->withtosocid=$soc->id; - $formmail->withtocc=1; - $formmail->withtoccsocid=0; + $liste=array(); + foreach ($object->thirdparty->thirdparty_and_contact_email_array(1) as $key=>$value) $liste[$key]=$value; + $formmail->withto=GETPOST('sendto')?GETPOST('sendto'):$liste; + $formmail->withtocc=$liste; $formmail->withtoccc=$conf->global->MAIN_EMAIL_USECCC; - $formmail->withtocccsocid=0; $formmail->withtopic=$langs->transnoentities($topicmail,'__FACREF__'); $formmail->withfile=2; $formmail->withbody=1; diff --git a/htdocs/core/class/html.formmail.class.php b/htdocs/core/class/html.formmail.class.php index f499bcb6b68..bca6463055b 100644 --- a/htdocs/core/class/html.formmail.class.php +++ b/htdocs/core/class/html.formmail.class.php @@ -49,6 +49,7 @@ class FormMail var $withto; var $withtofree; var $withtocc; + var $withtoccc; var $withtopic; var $withfile; // 0=No attaches files, 1=Show attached files, 2=Can add new attached files var $withbody; @@ -428,23 +429,11 @@ class FormMail else { $out.= 'withtocc) : (isset($_POST["sendtocc"])?$_POST["sendtocc"]:"") ).'" />'; - if (! empty($this->withto) && is_array($this->withto)) + if (! empty($this->withtocc) && is_array($this->withtocc)) { $out.= " ".$langs->trans("or")." "; $out.= $form->selectarray("receivercc", $this->withto, GETPOST("receivercc"), 1); } - if (! empty($this->withtoccsocid) && $this->withtoccsocid > 0) // deprecated. TODO Remove this. Instead, fill withto with array before calling method. - { - $liste=array(); - $soc=new Societe($this->db); - $soc->fetch($this->withtoccsocid); - foreach ($soc->thirdparty_and_contact_email_array(1) as $key=>$value) - { - $liste[$key]=$value; - } - $out.= " ".$langs->trans("or")." "; - $out.= $form->selectarray("receivercc", $liste, GETPOST("receivercc"), 1); - } } $out.= "
'.$langs->trans('ProspectCustomer').''; + print $object->getLibCustProspStatut(); + print '
'.$langs->trans("StatusProsp").''.$object->getLibProspCommStatut(4).''; + if ($object->stcomm_id != -1) print ''.img_action(0,-1).''; + if ($object->stcomm_id != 0) print ''.img_action(0,0).''; + if ($object->stcomm_id != 1) print ''.img_action(0,1).''; + if ($object->stcomm_id != 2) print ''.img_action(0,2).''; + if ($object->stcomm_id != 3) print ''.img_action(0,3).''; + print '
'.$companystatic->getNomUrl(1,'customer',48).''; - if ($objp->client == 2 || $objp->client == 3) print $langs->trans("Prospect"); - if ($objp->client == 3) print ' / '; - if ($objp->client == 1 || $objp->client == 3) print $langs->trans("Customer"); + print $companystatic->getLibCustProspStatut(); print "'.dol_print_date($db->jdate($objp->tms),'day')."
'; - if ($objp->client == 1) - { - $url = DOL_URL_ROOT.'/comm/fiche.php?socid='.$objp->rowid; - } - else - { - $url = DOL_URL_ROOT.'/comm/prospect/fiche.php?socid='.$objp->rowid; - } + $url = DOL_URL_ROOT.'/comm/fiche.php?socid='.$objp->rowid; // Company $companystatic->id=$objp->rowid; diff --git a/htdocs/comm/prospect/fiche.php b/htdocs/comm/prospect/fiche.php deleted file mode 100644 index dc447122561..00000000000 --- a/htdocs/comm/prospect/fiche.php +++ /dev/null @@ -1,343 +0,0 @@ - - * Copyright (C) 2004-2011 Laurent Destailleur - * Copyright (C) 2005-2012 Regis Houssin - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -/** - * \file htdocs/comm/prospect/fiche.php - * \ingroup prospect - * \brief Page de la fiche prospect - */ - -require_once '../../main.inc.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/comm/prospect/class/prospect.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; -require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; -require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; -if (! empty($conf->adherent->enabled)) require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; -if (! empty($conf->propal->enabled)) require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; - -$langs->load('companies'); -$langs->load('projects'); -$langs->load('propal'); - -$action=GETPOST('action', 'alpha'); - -// Security check -$socid = GETPOST('socid','int'); -if ($user->societe_id) $socid=$user->societe_id; -$result = restrictedArea($user, 'societe', $socid, '&societe'); - -$object = new Prospect($db); - - -/* - * Actions - */ - -if ($action == 'cstc') -{ - $sql = "UPDATE ".MAIN_DB_PREFIX."societe SET fk_stcomm = ".$_GET["stcomm"]; - $sql .= " WHERE rowid = ".$socid; - $db->query($sql); -} -// set prospect level -if ($action == 'setprospectlevel' && $user->rights->societe->creer) -{ - $object->fetch($socid); - $object->fk_prospectlevel=$_POST['prospect_level_id']; - $sql = "UPDATE ".MAIN_DB_PREFIX."societe SET fk_prospectlevel='".$_POST['prospect_level_id']; - $sql.= " WHERE rowid = ".$socid; - $result = $db->query($sql); - if (! $result) dol_print_error($result); -} - - -/********************************************************************************* - * - * Mode fiche - * - *********************************************************************************/ - -llxHeader(); - -$now = dol_now(); - -$form=new Form($db); -$formcompany=new FormCompany($db); - -if ($socid > 0) -{ - $actionstatic=new ActionComm($db); - $result = $object->fetch($socid); - if ($result < 0) - { - dol_print_error($db); - exit; - } - - /* - * Affichage onglets - */ - $head = societe_prepare_head($object); - - dol_fiche_head($head, 'prospect', $langs->trans("ThirdParty"),0,'company'); - - print ''; - print '\n"; - print '"; - print "
'; - - print ''; - print ''; - - // Address - print '"; - - // Zip / Town - print ''; - print ''; - - // Country - print ''; - - // Phone - print ''; - print ''; - - // EMail - print ''; - - // Web - print '"; - - // Level of prospect - print '"; - print ''; - - // Multiprice level - if (! empty($conf->global->PRODUIT_MULTIPRICES)) - { - print '"; - print ''; - } - - // Status - print ''; - print ''; - - // Sales representative - include DOL_DOCUMENT_ROOT.'/societe/tpl/linesalesrepresentative.tpl.php'; - - // Module Adherent - if (! empty($conf->adherent->enabled)) - { - $langs->load("members"); - $langs->load("users"); - print ''; - print ''; - print "\n"; - } - - print '
'.$langs->trans("ThirdPartyName").''; - $object->next_prev_filter="te.client in (2,3)"; - print $form->showrefnav($object,'socid','',($user->societe_id?0:1),'rowid','nom','',''); - print '
'.$langs->trans("Address").''; - dol_print_address($object->address,'gmap','thirdparty',$object->id); - print "
'.$langs->trans('Zip').' / '.$langs->trans("Town").''.$object->zip.(($object->zip && $object->town)?' / ':'').$object->town.'
'.$langs->trans("Country").''; - $img=picto_from_langcode($object->country_code); - if ($object->isInEEC()) print $form->textwithpicto(($img?$img.' ':'').$object->country,$langs->trans("CountryIsInEEC"),1,0); - else print ($img?$img.' ':'').$object->country; - print '
'.$langs->trans("Phone").''.dol_print_phone($object->tel,$object->country_code,0,$object->id,'AC_TEL').''.$langs->trans("Fax").''.dol_print_phone($object->fax,$object->country_code).'
'.$langs->trans('EMail').''.dol_print_email($object->email,0,$object->id,'AC_EMAIL').'
'.$langs->trans("Web")."url\">$object->url
'; - print ''; - print '
'; - print $langs->trans('ProspectLevelShort'); - print ''; - if ($action != 'editlevel' && $user->rights->societe->creer) print 'id.'">'.img_edit($langs->trans('Modify'),1).'
'; - print '
'; - if ($action == 'editlevel') - $formcompany->form_prospect_level($_SERVER['PHP_SELF'].'?socid='.$object->id,$object->fk_prospectlevel,'prospect_level_id',1); - else - print $object->getLibLevel(); - print "
'; - print '
'; - print $langs->trans("PriceLevel"); - print ''; - if ($user->rights->societe->creer) - { - print ''.img_edit($langs->trans("Modify")).''; - } - print '
'; - print '
'.$object->price_level."
'.$langs->trans("StatusProsp").''.$object->getLibProspStatut(4).''; - if ($object->stcomm_id != -1) print ''.img_action(0,-1).''; - if ($object->stcomm_id != 0) print ''.img_action(0,0).''; - if ($object->stcomm_id != 1) print ''.img_action(0,1).''; - if ($object->stcomm_id != 2) print ''.img_action(0,2).''; - if ($object->stcomm_id != 3) print ''.img_action(0,3).''; - print '
'.$langs->trans("LinkedToDolibarrMember").''; - $adh=new Adherent($db); - $result=$adh->fetch('','',$object->id); - if ($result > 0) - { - $adh->ref=$adh->getFullName($langs); - print $adh->getNomUrl(1); - } - else - { - print $langs->trans("UserNotLinkedToMember"); - } - print '
'; - - - print "
'; - - // Nbre max d'elements des petites listes - $MAXLIST=5; - $tableaushown=0; - - // Lien recap - print ''; - print ''; - print ''; - print ''; - print '
'; - print '
'.$langs->trans("Summary").''.$langs->trans("ShowProspectPreview").'
'; - print '
'; - - - /* - * Last proposals - */ - if (! empty($conf->propal->enabled) && $user->rights->propale->lire) - { - $propal_static=new Propal($db); - - $sql = "SELECT s.nom, s.rowid as socid, p.rowid as propalid, p.fk_statut, p.total_ht, p.ref, p.remise, "; - $sql.= " p.datep as dp, p.fin_validite as datelimite,"; - $sql.= " c.label as statut, c.id as statutid"; - $sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; - $sql.= ", ".MAIN_DB_PREFIX."propal as p"; - $sql.= ", ".MAIN_DB_PREFIX."c_propalst as c"; - $sql.= " WHERE p.fk_soc = s.rowid"; - $sql.= " AND p.fk_statut = c.id"; - $sql.= " AND p.entity = ".$conf->entity; - $sql.= " AND s.rowid = ".$object->id; - $sql.= " ORDER BY p.datep DESC"; - - $resql=$db->query($sql); - if ($resql) - { - $var=true; - $i = 0; - $num = $db->num_rows($resql); - - if ($num > 0) - { - print ''; - print ''; - print ''; - print ''; - } - - while ($i < $num && $i < $MAXLIST) - { - $objp = $db->fetch_object($resql); - $var=!$var; - print ""; - print "\n"; - print "\n"; - print "\n"; - $i++; - } - $db->free(); - - if ($num > 0) print "
'; - print ''; - print '
'.$langs->trans("LastPropals",($num<=$MAXLIST?"":$MAXLIST)).''.$langs->trans("AllPropals").' ('.$num.')'.img_picto($langs->trans("Statistics"),'stats').'
propalid\">"; - print img_object($langs->trans("ShowPropal"),"propal"); - print " ".$objp->ref."\n"; - if ($db->jdate($objp->dp) < ($now - $conf->propal->cloture->warning_delay) && $objp->fk_statut == 1) - { - print " ".img_warning(); - } - print "".dol_print_date($db->jdate($objp->dp),"day")."".price($objp->total_ht)."".$propal_static->LibStatut($objp->fk_statut,5)."
"; - } - else - { - dol_print_error($db); - } - - } - - print "
\n"; - - dol_fiche_end(); - - /* - * Barre d'action - */ - - print '
'; - - if (! empty($conf->propal->enabled) && $user->rights->propale->creer) - { - print ''.$langs->trans("AddProp").''; - } - - // Add action - if (! empty($conf->agenda->enabled) && ! empty($conf->global->MAIN_REPEATTASKONEACHTAB)) - { - if ($user->rights->agenda->myactions->create) - { - print ''.$langs->trans("AddAction").''; - } - else - { - print ''.$langs->trans("AddAction").''; - } - } - - print '
'; - - print '
'; - - - if (! empty($conf->global->MAIN_REPEATCONTACTONEACHTAB)) - { - print '
'; - // List of contacts - show_contacts($conf,$langs,$db,$object,$_SERVER["PHP_SELF"].'?socid='.$object->id); - } - - if (! empty($conf->global->MAIN_REPEATTASKONEACHTAB)) - { - print load_fiche_titre($langs->trans("ActionsOnCompany"),'',''); - - // List of todo actions - show_actions_todo($conf,$langs,$db,$object); - - // List of done actions - show_actions_done($conf,$langs,$db,$object); - } -} - - -llxFooter(); - -$db->close(); -?> diff --git a/htdocs/contact/list.php b/htdocs/contact/list.php index 9b3ac059454..fe0187624fe 100755 --- a/htdocs/contact/list.php +++ b/htdocs/contact/list.php @@ -65,16 +65,11 @@ $offset = $limit * $page; $langs->load("companies"); $titre = (! empty($conf->global->SOCIETE_ADDRESSES_MANAGEMENT) ? $langs->trans("ListOfContacts") : $langs->trans("ListOfContactsAddresses")); -if ($type == "c") +if ($type == "c" || $type=="p") { $titre.=' ('.$langs->trans("ThirdPartyCustomers").')'; $urlfiche="fiche.php"; } -else if ($type == "p") -{ - $titre.=' ('.$langs->trans("ThirdPartyProspects").')'; - $urlfiche="prospect/fiche.php"; -} else if ($type == "f") { $titre.=' ('.$langs->trans("ThirdPartySuppliers").')'; diff --git a/htdocs/core/boxes/box_prospect.php b/htdocs/core/boxes/box_prospect.php index 802fe5ab071..254370a4395 100644 --- a/htdocs/core/boxes/box_prospect.php +++ b/htdocs/core/boxes/box_prospect.php @@ -89,11 +89,11 @@ class box_prospect extends ModeleBoxes $this->info_box_contents[$i][0] = array('td' => 'align="left" width="16"', 'logo' => $this->boximg, - 'url' => DOL_URL_ROOT."/comm/prospect/fiche.php?socid=".$objp->socid); + 'url' => DOL_URL_ROOT."/comm/fiche.php?socid=".$objp->socid); $this->info_box_contents[$i][1] = array('td' => 'align="left"', 'text' => $objp->nom, - 'url' => DOL_URL_ROOT."/comm/prospect/fiche.php?socid=".$objp->socid); + 'url' => DOL_URL_ROOT."/comm/fiche.php?socid=".$objp->socid); $this->info_box_contents[$i][2] = array('td' => 'align="right"', 'text' => dol_print_date($datem, "day")); diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php index 87695a771b3..4fb851ce4d3 100644 --- a/htdocs/core/lib/company.lib.php +++ b/htdocs/core/lib/company.lib.php @@ -42,16 +42,7 @@ function societe_prepare_head($object) $head[$h][2] = 'card'; $h++; - // TODO Remove tests on object->object. Functions must be called with a company object directly - if (($object->client==2 || $object->client==3 - || (isset($object->object) && $object->object->client==2) || (isset($object->object) && $object->object->client==3)) && empty($conf->global->SOCIETE_DISABLE_PROSPECTS)) - { - $head[$h][0] = DOL_URL_ROOT.'/comm/prospect/fiche.php?socid='.$object->id; - $head[$h][1] = $langs->trans("Prospect"); - $head[$h][2] = 'prospect'; - $h++; - } - if ($object->client==1 || $object->client==3 || (isset($object->object) && $object->object->client==1) || (isset($object->object) && $object->object->client==3)) + if ($object->client==1 || $object->client==2 || $object->client==3 || (isset($object->object) && $object->object->client==1) || (isset($object->object) && $object->object->client==3)) { $head[$h][0] = DOL_URL_ROOT.'/comm/fiche.php?socid='.$object->id; $head[$h][1] = $langs->trans("Customer"); diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php index 7dd0a6b1ff7..0f5e7051010 100644 --- a/htdocs/societe/class/societe.class.php +++ b/htdocs/societe/class/societe.class.php @@ -1437,18 +1437,11 @@ class Societe extends CommonObject if ($option == 'customer' || $option == 'compta') { - if (($this->client == 1 || $this->client == 3) && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) // Only customer - { - $lien = 'fk_prospectlevel."'"; - $sql.= " ,fk_user_modif='".$user->id."'"; + $sql.= " fk_prospectlevel='".$this->fk_prospectlevel."'"; + $sql.= ",fk_user_modif='".$user->id."'"; $sql.= " WHERE rowid = ".$this->id; dol_syslog(get_class($this)."::set_prospect_level sql=".$sql); $resql=$this->db->query($sql); @@ -2722,7 +2711,118 @@ class Societe extends CommonObject return 1; } } - -} - -?> + + /** + * Return status of prospect + * + * @param int $mode 0=libelle long, 1=libelle court, 2=Picto + Libelle court, 3=Picto, 4=Picto + Libelle long + * @return string Libelle + */ + function getLibProspCommStatut($mode=0) + { + return $this->LibProspCommStatut($this->stcomm_id,$mode); + } + + /** + * Return label of a given status + * + * @param int $statut Id statut + * @param int $mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto + * @return string Libelle du statut + */ + function LibProspCommStatut($statut,$mode=0) + { + global $langs; + $langs->load('customers'); + + if ($mode == 2) + { + if ($statut == -1) return img_action($langs->trans("StatusProspect-1"),-1).' '.$langs->trans("StatusProspect-1"); + if ($statut == 0) return img_action($langs->trans("StatusProspect0"), 0).' '.$langs->trans("StatusProspect0"); + if ($statut == 1) return img_action($langs->trans("StatusProspect1"), 1).' '.$langs->trans("StatusProspect1"); + if ($statut == 2) return img_action($langs->trans("StatusProspect2"), 2).' '.$langs->trans("StatusProspect2"); + if ($statut == 3) return img_action($langs->trans("StatusProspect3"), 3).' '.$langs->trans("StatusProspect3"); + } + if ($mode == 3) + { + if ($statut == -1) return img_action($langs->trans("StatusProspect-1"),-1); + if ($statut == 0) return img_action($langs->trans("StatusProspect0"), 0); + if ($statut == 1) return img_action($langs->trans("StatusProspect1"), 1); + if ($statut == 2) return img_action($langs->trans("StatusProspect2"), 2); + if ($statut == 3) return img_action($langs->trans("StatusProspect3"), 3); + } + if ($mode == 4) + { + if ($statut == -1) return img_action($langs->trans("StatusProspect-1"),-1).' '.$langs->trans("StatusProspect-1"); + if ($statut == 0) return img_action($langs->trans("StatusProspect0"), 0).' '.$langs->trans("StatusProspect0"); + if ($statut == 1) return img_action($langs->trans("StatusProspect1"), 1).' '.$langs->trans("StatusProspect1"); + if ($statut == 2) return img_action($langs->trans("StatusProspect2"), 2).' '.$langs->trans("StatusProspect2"); + if ($statut == 3) return img_action($langs->trans("StatusProspect3"), 3).' '.$langs->trans("StatusProspect3"); + } + + return "Error, mode/status not found"; + } + + /** + * Set commnunication level + * + * @param User $user Utilisateur qui definie la remise + * @return int <0 if KO, >0 if OK + */ + function set_commnucation_level($user) + { + if ($this->id) + { + $this->db->begin(); + + $now=dol_now(); + + // Positionne remise courante + $sql = "UPDATE ".MAIN_DB_PREFIX."societe SET "; + $sql.= " fk_stcomm='".$this->stcomm_id."'"; + $sql.= ",fk_user_modif='".$user->id."'"; + $sql.= " WHERE rowid = ".$this->id; + + dol_syslog(get_class($this)."::set_commnucation_level sql=".$sql); + $resql=$this->db->query($sql); + if (! $resql) + { + $this->db->rollback(); + $this->error=$this->db->error(); + return -1; + } + + $this->db->commit(); + return 1; + } + } + + /** + * Return label of status customer is prospect/customer + * + * @return string Libelle + */ + function getLibCustProspStatut() + { + return $this->LibCustProspStatut($this->client,$mode); + } + + /** + * Renvoi le libelle d'un statut donne + * + * @param int $statut Id statut + * @return string Libelle du statut + */ + function LibCustProspStatut($statut) + { + global $langs; + $langs->load('companies'); + + if ($statut==0) return $langs->trans("NorProspectNorCustomer"); + if ($statut==1) return $langs->trans("Customer"); + if ($statut==2) return $langs->trans("Prospect"); + if ($statut==3) return $langs->trans("ProspectCustomer"); + + } + +} \ No newline at end of file From 5c9950f4866bad509d37e378af9fd8d6900eabbd Mon Sep 17 00:00:00 2001 From: Christophe Battarel Date: Wed, 13 Feb 2013 08:55:16 +0100 Subject: [PATCH 24/28] prepare db for margin on contracts --- htdocs/install/mysql/migration/3.3.0-3.4.0.sql | 3 +++ 1 file changed, 3 insertions(+) diff --git a/htdocs/install/mysql/migration/3.3.0-3.4.0.sql b/htdocs/install/mysql/migration/3.3.0-3.4.0.sql index 0a5a4a94642..6f09732d0dc 100755 --- a/htdocs/install/mysql/migration/3.3.0-3.4.0.sql +++ b/htdocs/install/mysql/migration/3.3.0-3.4.0.sql @@ -33,3 +33,6 @@ UPDATE llx_const set value='smartphone_menu.php' where value='smartphone_frontof ALTER TABLE llx_user add COLUMN fk_user integer; +-- margin on contracts +alter table llx_contratdet add column fk_product_fournisseur_price int(11) after info_bits; +alter table llx_contratdet add column buy_price_ht double(24,8) DEFAULT 0 after fk_product_fournisseur_price; \ No newline at end of file From b372a8c5baa700264622cdce60486c88eb8286e2 Mon Sep 17 00:00:00 2001 From: Christophe Battarel Date: Wed, 13 Feb 2013 08:59:40 +0100 Subject: [PATCH 25/28] prepare db for margin on contracts --- htdocs/install/mysql/tables/llx_contratdet.sql | 2 ++ 1 file changed, 2 insertions(+) diff --git a/htdocs/install/mysql/tables/llx_contratdet.sql b/htdocs/install/mysql/tables/llx_contratdet.sql index e7dc0354aba..11381991015 100644 --- a/htdocs/install/mysql/tables/llx_contratdet.sql +++ b/htdocs/install/mysql/tables/llx_contratdet.sql @@ -53,6 +53,8 @@ create table llx_contratdet total_localtax2 double(24,8) DEFAULT 0, -- Total Local tax 2 de la ligne total_ttc double(24,8) DEFAULT 0, -- Total TTC de la ligne toute quantite et incluant remise ligne et globale info_bits integer DEFAULT 0, -- TVA NPR ou non + fk_product_fournisseur_price int(11) DEFAULT NULL, -- supplier price id + buy_price_ht double(24,8) DEFAULT '0.00000000', -- buying price fk_user_author integer NOT NULL DEFAULT 0, fk_user_ouverture integer, From 44134dec57668f4819d723720f0bf15c31af4d79 Mon Sep 17 00:00:00 2001 From: Christophe Battarel Date: Wed, 13 Feb 2013 09:50:08 +0100 Subject: [PATCH 26/28] prepare contract class for margin management --- htdocs/contrat/class/contrat.class.php | 61 +++++++++++++++++++++++--- 1 file changed, 54 insertions(+), 7 deletions(-) diff --git a/htdocs/contrat/class/contrat.class.php b/htdocs/contrat/class/contrat.class.php index ee422f4b505..249a4c9dca0 100644 --- a/htdocs/contrat/class/contrat.class.php +++ b/htdocs/contrat/class/contrat.class.php @@ -5,6 +5,7 @@ * Copyright (C) 2006 Andre Cianfarani * Copyright (C) 2008 Raphael Bertrand * Copyright (C) 2010-2011 Juanjo Menent + * Copyright (C) 2013 Christophe Battarel * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -27,7 +28,7 @@ */ require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php'; - +require_once(DOL_DOCUMENT_ROOT ."/margin/lib/margins.lib.php"); /** * Class to manage contracts @@ -402,7 +403,7 @@ class Contrat extends CommonObject // Selectionne les lignes contrats liees a un produit $sql = "SELECT p.label, p.description as product_desc, p.ref,"; - $sql.= " d.rowid, d.fk_contrat, d.statut, d.description, d.price_ht, d.tva_tx, d.localtax1_tx, d.localtax2_tx, d.qty, d.remise_percent, d.subprice,"; + $sql.= " d.rowid, d.fk_contrat, d.statut, d.description, d.price_ht, d.tva_tx, d.localtax1_tx, d.localtax2_tx, d.qty, d.remise_percent, d.subprice, d.fk_product_fournisseur_price as fk_fournprice, d.buy_price_ht as pa_ht,"; $sql.= " d.total_ht,"; $sql.= " d.total_tva,"; $sql.= " d.total_localtax1,"; @@ -451,6 +452,10 @@ class Contrat extends CommonObject $line->fk_product = $objp->fk_product; $line->info_bits = $objp->info_bits; + $line->fk_fournprice = $objp->fk_fournprice; + $marginInfos = getMarginInfos($objp->subprice, $objp->remise_percent, $objp->tva_tx, $objp->localtax1_tx, $objp->localtax2_tx, $line->fk_fournprice, $objp->pa_ht); + $line->pa_ht = $marginInfos[0]; + $line->fk_user_author = $objp->fk_user_author; $line->fk_user_ouverture= $objp->fk_user_ouverture; $line->fk_user_cloture = $objp->fk_user_cloture; @@ -856,7 +861,7 @@ class Contrat extends CommonObject * @param int $info_bits Bits de type de lignes * @return int <0 si erreur, >0 si ok */ - function addline($desc, $pu_ht, $qty, $txtva, $txlocaltax1, $txlocaltax2, $fk_product, $remise_percent, $date_start, $date_end, $price_base_type='HT', $pu_ttc=0, $info_bits=0) + function addline($desc, $pu_ht, $qty, $txtva, $txlocaltax1, $txlocaltax2, $fk_product, $remise_percent, $date_start, $date_end, $price_base_type='HT', $pu_ttc=0, $info_bits=0, $fk_fournprice=null, $pa_ht = 0) { global $user, $langs, $conf; @@ -875,6 +880,7 @@ class Contrat extends CommonObject if (! $pu_ttc) $pu_ttc=0; $pu_ht=price2num($pu_ht); $pu_ttc=price2num($pu_ttc); + $pa_ht=price2num($pa_ht); $txtva=price2num($txtva); $txlocaltax1=price2num($txlocaltax1); $txlocaltax2=price2num($txlocaltax2); @@ -908,13 +914,21 @@ class Contrat extends CommonObject $price = $pu_ht - $remise; } + if (empty($pa_ht)) $pa_ht=0; + + // si prix d'achat non renseigne et utilise pour calcul des marges alors prix achat = prix vente + if ($pa_ht == 0) { + if ($pu_ht > 0 && (isset($conf->global->ForceBuyingPriceIfNull) && $conf->global->ForceBuyingPriceIfNull == 1)) + $pa_ht = $pu_ht * (1 - $remise_percent / 100); + } + // Insertion dans la base $sql = "INSERT INTO ".MAIN_DB_PREFIX."contratdet"; $sql.= " (fk_contrat, label, description, fk_product, qty, tva_tx,"; $sql.= " localtax1_tx, localtax2_tx, remise_percent, subprice,"; $sql.= " total_ht, total_tva, total_localtax1, total_localtax2, total_ttc,"; $sql.= " info_bits,"; - $sql.= " price_ht, remise"; // TODO A virer + $sql.= " price_ht, remise, fk_product_fournisseur_price, buy_price_ht"; if ($date_start > 0) { $sql.= ",date_ouverture_prevue"; } if ($date_end > 0) { $sql.= ",date_fin_validite"; } $sql.= ") VALUES ($this->id, '', '" . $this->db->escape($desc) . "',"; @@ -926,7 +940,11 @@ class Contrat extends CommonObject $sql.= " ".price2num($remise_percent).",".price2num($pu_ht).","; $sql.= " ".price2num($total_ht).",".price2num($total_tva).",".price2num($total_localtax1).",".price2num($total_localtax2).",".price2num($total_ttc).","; $sql.= " '".$info_bits."',"; - $sql.= " ".price2num($price).",".price2num($remise); // TODO A virer + $sql.= " ".price2num($price).",".price2num($remise).","; + if (isset($fk_fournprice)) $sql.= ' '.$fk_fournprice.','; + else $sql.= ' null,'; + if (isset($pa_ht)) $sql.= ' '.price2num($pa_ht); + else $sql.= ' null'; if ($date_start > 0) { $sql.= ",'".$this->db->idate($date_start)."'"; } if ($date_end > 0) { $sql.= ",'".$this->db->idate($date_end)."'"; } $sql.= ")"; @@ -983,7 +1001,7 @@ class Contrat extends CommonObject * @param int $info_bits Bits de type de lignes * @return int < 0 si erreur, > 0 si ok */ - function updateline($rowid, $desc, $pu, $qty, $remise_percent, $date_start, $date_end, $tvatx, $localtax1tx=0, $localtax2tx=0, $date_debut_reel='', $date_fin_reel='', $price_base_type='HT', $info_bits=0) + function updateline($rowid, $desc, $pu, $qty, $remise_percent, $date_start, $date_end, $tvatx, $localtax1tx=0, $localtax2tx=0, $date_debut_reel='', $date_fin_reel='', $price_base_type='HT', $info_bits=0, $fk_fournprice=null, $pa_ht = 0) { global $user, $conf, $langs; @@ -995,6 +1013,7 @@ class Contrat extends CommonObject $tvatx = price2num($tvatx); $localtax1tx = price2num($localtax1tx); $localtax2tx = price2num($localtax2tx); + $pa_ht=price2num($pa_ht); $subprice = $price; $remise = 0; @@ -1016,7 +1035,7 @@ class Contrat extends CommonObject // qty, pu, remise_percent et txtva // TRES IMPORTANT: C'est au moment de l'insertion ligne qu'on doit stocker // la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva. - $tabprice=calcul_price_total($qty, $pu, $remise_percent, $txtva, $localtaxtx1, $txlocaltaxtx2, 0, $price_base_type, $info_bits, 1); + $tabprice=calcul_price_total($qty, $pu, $remise_percent, $tvatx, $localtaxtx1, $txlocaltaxtx2, 0, $price_base_type, $info_bits, 1); $total_ht = $tabprice[0]; $total_tva = $tabprice[1]; $total_ttc = $tabprice[2]; @@ -1032,6 +1051,14 @@ class Contrat extends CommonObject $price = $pu_ht - $remise; } + if (empty($pa_ht)) $pa_ht=0; + + // si prix d'achat non renseigne et utilise pour calcul des marges alors prix achat = prix vente + if ($pa_ht == 0) { + if ($pu_ht > 0 && (isset($conf->global->ForceBuyingPriceIfNull) && $conf->global->ForceBuyingPriceIfNull == 1)) + $pa_ht = $pu_ht * (1 - $remise_percent / 100); + } + $sql = "UPDATE ".MAIN_DB_PREFIX."contratdet set description='".$this->db->escape($desc)."'"; $sql.= ",price_ht='" . price2num($price)."'"; $sql.= ",subprice='" . price2num($subprice)."'"; @@ -1046,6 +1073,8 @@ class Contrat extends CommonObject $sql.= ", total_localtax1='".price2num($total_localtax1)."'"; $sql.= ", total_localtax2='".price2num($total_localtax2)."'"; $sql.= ", total_ttc='". price2num($total_ttc)."'"; + $sql.= ", fk_product_fournisseur_price='".$fk_fournprice."'"; + $sql.= ", buy_price_ht='".price2num($pa_ht)."'"; if ($date_start > 0) { $sql.= ",date_ouverture_prevue='".$this->db->idate($date_start)."'"; } else { $sql.=",date_ouverture_prevue=null"; } if ($date_end > 0) { $sql.= ",date_fin_validite='".$this->db->idate($date_end)."'"; } @@ -1610,6 +1639,9 @@ class ContratLigne var $total_localtax2; var $total_ttc; + var $fk_fournprice; + var $pa_ht; + var $info_bits; var $fk_user_author; var $fk_user_ouverture; @@ -1769,6 +1801,8 @@ class ContratLigne $sql.= " t.total_localtax1,"; $sql.= " t.total_localtax2,"; $sql.= " t.total_ttc,"; + $sql.= " t.fk_product_fournisseur_price as fk_fournprice,"; + $sql.= " t.buy_price_ht as pa_ht,"; $sql.= " t.info_bits,"; $sql.= " t.fk_user_author,"; $sql.= " t.fk_user_ouverture,"; @@ -1819,6 +1853,9 @@ class ContratLigne $this->fk_user_ouverture = $obj->fk_user_ouverture; $this->fk_user_cloture = $obj->fk_user_cloture; $this->commentaire = $obj->commentaire; + $this->fk_fournprice = $obj->fk_fournprice; + $marginInfos = getMarginInfos($obj->subprice, $obj->remise_percent, $obj->tva_tx, $obj->localtax1_tx, $obj->localtax2_tx, $this->fk_fournprice, $obj->pa_ht); + $this->pa_ht = $marginInfos[0]; } $this->db->free($resql); @@ -1887,6 +1924,14 @@ class ContratLigne $this->total_localtax1= $tabprice[9]; $this->total_localtax2= $tabprice[10]; + if (empty($this->pa_ht)) $this->pa_ht=0; + + // si prix d'achat non renseigné et utilisé pour calcul des marges alors prix achat = prix vente + if ($this->pa_ht == 0) { + if ($this->subprice > 0 && (isset($conf->global->ForceBuyingPriceIfNull) && $conf->global->ForceBuyingPriceIfNull == 1)) + $this->pa_ht = $this->subprice * (1 - $this->remise_percent / 100); + } + // Update request $sql = "UPDATE ".MAIN_DB_PREFIX."contratdet SET"; $sql.= " fk_contrat='".$this->fk_contrat."',"; @@ -1913,6 +1958,8 @@ class ContratLigne $sql.= " total_localtax1='".$this->total_localtax1."',"; $sql.= " total_localtax2='".$this->total_localtax2."',"; $sql.= " total_ttc='".$this->total_ttc."',"; + $sql.= " fk_product_fournisseur_price='".$this->fk_fournprice."',"; + $sql.= " buy_price_ht='".price2num($this->pa_ht)."',"; $sql.= " info_bits='".$this->info_bits."',"; $sql.= " fk_user_author=".($this->fk_user_author >= 0?$this->fk_user_author:"NULL").","; $sql.= " fk_user_ouverture=".($this->fk_user_ouverture > 0?$this->fk_user_ouverture:"NULL").","; From 4f33249c9efcc7c8423237783844e201fe6653d7 Mon Sep 17 00:00:00 2001 From: Christophe Battarel Date: Wed, 13 Feb 2013 10:35:47 +0100 Subject: [PATCH 27/28] margin management on contract card --- htdocs/contrat/fiche.php | 120 ++++++++++++++++++++++++++++++++++----- 1 file changed, 107 insertions(+), 13 deletions(-) diff --git a/htdocs/contrat/fiche.php b/htdocs/contrat/fiche.php index 9578bf54c98..7034f765d5f 100644 --- a/htdocs/contrat/fiche.php +++ b/htdocs/contrat/fiche.php @@ -4,6 +4,7 @@ * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2006 Andre Cianfarani * Copyright (C) 2010-2012 Juanjo Menent + * Copyright (C) 2013 Christophe Battarel * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -305,6 +306,13 @@ else if ($action == 'addline' && $user->rights->contrat->creer) $localtax1_tx=get_localtax($tva_tx,1,$object->societe); $localtax2_tx=get_localtax($tva_tx,2,$object->societe); + // ajout prix achat + $fk_fournprice = $_POST['fournprice']; + if ( ! empty($_POST['buying_price']) ) + $pa_ht = $_POST['buying_price']; + else + $pa_ht = null; + $info_bits=0; if ($tva_npr) $info_bits |= 0x01; @@ -329,7 +337,9 @@ else if ($action == 'addline' && $user->rights->contrat->creer) $date_end, $price_base_type, $pu_ttc, - $info_bits + $info_bits, + $fk_fournprice, + $pa_ht ); } @@ -353,13 +363,18 @@ else if ($action == 'addline' && $user->rights->contrat->creer) } */ - unset($_POST['qty']); - unset($_POST['type']); - unset($_POST['idprod']); - unset($_POST['remise_percent']); - unset($_POST['price_ht']); - unset($_POST['tva_tx']); - unset($_POST['dp_desc']); + unset($_POST['qty']); + unset($_POST['type']); + unset($_POST['idprod']); + unset($_POST['remise_percent']); + unset($_POST['price_ht']); + unset($_POST['price_ttc']); + unset($_POST['tva_tx']); + unset($_POST['product_ref']); + unset($_POST['product_label']); + unset($_POST['product_desc']); + unset($_POST['fournprice']); + unset($_POST['buying_price']); } else { @@ -389,6 +404,13 @@ else if ($action == 'updateligne' && $user->rights->contrat->creer && ! GETPOST( $localtax1_tx=get_localtax(GETPOST('eltva_tx'),1,$object->thirdparty); $localtax2_tx=get_localtax(GETPOST('eltva_tx'),2,$object->thirdparty); + // ajout prix d'achat + $fk_fournprice = $_POST['fournprice']; + if ( ! empty($_POST['buying_price']) ) + $pa_ht = $_POST['buying_price']; + else + $pa_ht = null; + $objectline->description=GETPOST('product_desc'); $objectline->price_ht=GETPOST('elprice'); $objectline->subprice=GETPOST('elprice'); @@ -402,6 +424,8 @@ else if ($action == 'updateligne' && $user->rights->contrat->creer && ! GETPOST( $objectline->date_fin_validite=$date_end_update; $objectline->date_cloture=$date_end_real_update; $objectline->fk_user_cloture=$user->id; + $objectline->fk_fournprice=$fk_fournprice; + $objectline->pa_ht=$pa_ht; // TODO verifier price_min si fk_product et multiprix @@ -872,7 +896,7 @@ else $sql.= " cd.tva_tx, cd.remise_percent, cd.info_bits, cd.subprice,"; $sql.= " cd.date_ouverture_prevue as date_debut, cd.date_ouverture as date_debut_reelle,"; $sql.= " cd.date_fin_validite as date_fin, cd.date_cloture as date_fin_reelle,"; - $sql.= " cd.commentaire as comment,"; + $sql.= " cd.commentaire as comment, cd.fk_product_fournisseur_price as fk_fournprice, cd.buy_price_ht as pa_ht,"; $sql.= " p.rowid as pid, p.ref as pref, p.label as label, p.fk_product_type as ptype"; $sql.= " FROM ".MAIN_DB_PREFIX."contratdet as cd"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON cd.fk_product = p.rowid"; @@ -889,6 +913,8 @@ else print '
'.$langs->trans("PriceUHT").''.$langs->trans("Qty").''.$langs->trans("ReductionShort").''.$langs->trans("BuyingPrice").' 
 '.price($objp->pa_ht).''; if ($user->rights->contrat->creer && count($arrayothercontracts) && ($object->statut >= 0)) @@ -967,7 +997,7 @@ else if ($objp->subprice >= 0) { print '
'; + print ''; // Date planned print $langs->trans("DateStartPlanned").': '; @@ -998,6 +1028,8 @@ else print ''; print ''; print ''; + print ''; + print ''; // Ligne carac print "
'; @@ -1030,12 +1062,18 @@ else print '%'; + if ($objp->fk_product) + print ''; + print ''; print '
'; print '
'; + print ''; print $langs->trans("DateStartPlanned").' '; $form->select_date($db->jdate($objp->date_debut),"date_start_update",$usehm,$usehm,($db->jdate($objp->date_debut)>0?0:1),"update"); print '
'.$langs->trans("DateEndPlanned").' '; @@ -1056,7 +1094,7 @@ else if ($object->statut > 0) { print '


'.$langs->trans("Comment").'
'.$langs->trans("Comment").'
'; @@ -1395,3 +1433,59 @@ llxFooter(); $db->close(); ?> +margin->enabled) { +?> + + From caec1429b1889acd26f2c82a6366bee9b676e3c7 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 13 Feb 2013 15:19:03 +0100 Subject: [PATCH 28/28] Fix: Uniformize database type according to page http:// --- .../install/mysql/migration/2.0.0-2.1.0.sql | 4 ++-- .../install/mysql/migration/2.1.0-2.2.0.sql | 24 +++++++++---------- .../install/mysql/migration/3.3.0-3.4.0.sql | 2 +- .../install/mysql/tables/llx_contratdet.sql | 6 ++--- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/htdocs/install/mysql/migration/2.0.0-2.1.0.sql b/htdocs/install/mysql/migration/2.0.0-2.1.0.sql index 94572f0378e..e2205b29953 100644 --- a/htdocs/install/mysql/migration/2.0.0-2.1.0.sql +++ b/htdocs/install/mysql/migration/2.0.0-2.1.0.sql @@ -75,8 +75,8 @@ insert into llx_cond_reglement(rowid, code, sortorder, active, libelle, libelle_ alter table llx_cond_reglement add (decalage smallint(6) default 0); -alter table llx_commande add fk_cond_reglement int(11) DEFAULT NULL; -alter table llx_commande add fk_mode_reglement int(11) DEFAULT NULL; +alter table llx_commande add fk_cond_reglement integer DEFAULT NULL; +alter table llx_commande add fk_mode_reglement integer DEFAULT NULL; alter table llx_categorie drop column fk_statut; diff --git a/htdocs/install/mysql/migration/2.1.0-2.2.0.sql b/htdocs/install/mysql/migration/2.1.0-2.2.0.sql index cfaa7ce105e..070682d3c50 100644 --- a/htdocs/install/mysql/migration/2.1.0-2.2.0.sql +++ b/htdocs/install/mysql/migration/2.1.0-2.2.0.sql @@ -143,8 +143,8 @@ alter table llx_categorie ADD type int not null default '0'; -- V4 ALTER TABLE llx_categorie DROP INDEX uk_categorie_ref; create table `llx_categorie_societe` ( - `fk_categorie` int(11) not null, - `fk_societe` int(11) not null, + `fk_categorie` integer not null, + `fk_societe` integer not null, UNIQUE KEY `fk_categorie` (`fk_categorie`,`fk_societe`), KEY `fk_societe` (`fk_societe`) ) ENGINE=innodb; @@ -154,8 +154,8 @@ alter table `llx_categorie_societe` add constraint `fk_categorie_societe_categor alter table `llx_categorie_societe` add constraint `fk_categorie_societe_fk_soc` foreign key(`fk_societe`) REFERENCES `llx_societe` (`rowid`); create table `llx_categorie_product` ( - `fk_categorie` int(11) not null, - `fk_product` int(11) not null, + `fk_categorie` integer not null, + `fk_product` integer not null, PRIMARY KEY (`fk_categorie`,`fk_product`), KEY `idx_categorie_product_fk_categorie` (`fk_categorie`), KEY `idx_categorie_product_fk_product` (`fk_product`) @@ -169,24 +169,24 @@ alter table `llx_categorie_product` -- Ajout gestion du droit de pret drop table if exists `llx_droitpret_rapport`; create table `llx_droitpret_rapport` ( - `rowid` int(11) NOT NULL auto_increment, + `rowid` integer NOT NULL auto_increment, `date_envoie` datetime NOT NULL, `format` varchar(10) NOT NULL, `date_debut` datetime NOT NULL, `date_fin` datetime NOT NULL, `fichier` varchar(255) NOT NULL, - `nbfact` int(11) NOT NULL, + `nbfact` integer NOT NULL, PRIMARY KEY (`rowid`) ) ENGINE=innodb; -- Gestion des menu CREATE TABLE `llx_menu` ( - `rowid` int(11) NOT NULL, + `rowid` integer NOT NULL, `menu_handler` varchar(16) NOT NULL default 'auguria', `type` enum('top','left') NOT NULL default 'left', `mainmenu` varchar(100) NOT NULL, - `fk_menu` int(11) NOT NULL, + `fk_menu` integer NOT NULL, `order` tinyint(4) NOT NULL, `url` varchar(255) NOT NULL, `target` varchar(100) NULL, @@ -200,15 +200,15 @@ CREATE TABLE `llx_menu` ( ) ENGINE=innodb; create table `llx_menu_constraint` ( - `rowid` int(11) NOT NULL, + `rowid` integer NOT NULL, `action` varchar(255) NOT NULL, PRIMARY KEY (`rowid`) ) ENGINE=innodb; create table `llx_menu_const` ( - `rowid` int(11) NOT NULL auto_increment, - `fk_menu` int(11) NOT NULL, - `fk_constraint` int(11) NOT NULL, + `rowid` integer NOT NULL auto_increment, + `fk_menu` integer NOT NULL, + `fk_constraint` integer NOT NULL, `user` tinyint(4) NOT NULL default '2', PRIMARY KEY (`rowid`) ) ENGINE=innodb; diff --git a/htdocs/install/mysql/migration/3.3.0-3.4.0.sql b/htdocs/install/mysql/migration/3.3.0-3.4.0.sql index 6f09732d0dc..093265e217c 100755 --- a/htdocs/install/mysql/migration/3.3.0-3.4.0.sql +++ b/htdocs/install/mysql/migration/3.3.0-3.4.0.sql @@ -34,5 +34,5 @@ UPDATE llx_const set value='smartphone_menu.php' where value='smartphone_frontof ALTER TABLE llx_user add COLUMN fk_user integer; -- margin on contracts -alter table llx_contratdet add column fk_product_fournisseur_price int(11) after info_bits; +alter table llx_contratdet add column fk_product_fournisseur_price integer after info_bits; alter table llx_contratdet add column buy_price_ht double(24,8) DEFAULT 0 after fk_product_fournisseur_price; \ No newline at end of file diff --git a/htdocs/install/mysql/tables/llx_contratdet.sql b/htdocs/install/mysql/tables/llx_contratdet.sql index 11381991015..ac4eea1de83 100644 --- a/htdocs/install/mysql/tables/llx_contratdet.sql +++ b/htdocs/install/mysql/tables/llx_contratdet.sql @@ -52,9 +52,9 @@ create table llx_contratdet total_localtax1 double(24,8) DEFAULT 0, -- Total Local tax 1 de la ligne total_localtax2 double(24,8) DEFAULT 0, -- Total Local tax 2 de la ligne total_ttc double(24,8) DEFAULT 0, -- Total TTC de la ligne toute quantite et incluant remise ligne et globale - info_bits integer DEFAULT 0, -- TVA NPR ou non - fk_product_fournisseur_price int(11) DEFAULT NULL, -- supplier price id - buy_price_ht double(24,8) DEFAULT '0.00000000', -- buying price + info_bits integer DEFAULT 0, -- TVA NPR ou non + fk_product_fournisseur_price integer DEFAULT NULL, -- supplier price id + buy_price_ht double(24,8) DEFAULT NULL, -- buying price fk_user_author integer NOT NULL DEFAULT 0, fk_user_ouverture integer,