From 52f8ef6c4610df319cf08f2790bf05aebec45b65 Mon Sep 17 00:00:00 2001 From: Geoffrey Aldebert Date: Mon, 3 Aug 2020 18:41:46 +0200 Subject: [PATCH 01/12] Mention new page --- qualite/1-preparer-le-jeu-de-donnees.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qualite/1-preparer-le-jeu-de-donnees.md b/qualite/1-preparer-le-jeu-de-donnees.md index 499658eb..b6978aba 100644 --- a/qualite/1-preparer-le-jeu-de-donnees.md +++ b/qualite/1-preparer-le-jeu-de-donnees.md @@ -76,7 +76,7 @@ Tant que les données de votre administration sont dans un environnement logicie Les bonnes pratiques à suivre sont les suivantes : * Occulter l’ensemble des colonnes dont les champs contiennent des données couvertes par un secret légal (se référer au guide juridique pour plus d’information) ; * Occulter l’ensemble des colonnes dont les champs contiennent des données à caractère personnel dont la publication n’est pas nécessaire à l’information du public (se référer au guide juridique pour plus d’information) ; -* Privilégier la présence de variables pivots. Ces variables proposent des identifiants communs qui permettent de lier plusieurs jeux de données entre eux (ex. Le numéro d’identification SIRET de la base Sirene). +* Privilégier la présence de variables pivots. Ces variables proposent des identifiants communs qui permettent de lier plusieurs jeux de données entre eux (ex. Le numéro d’identification SIRET de la base Sirene). Pour plus de détails, consultez la page [Lier les données à un référentiel](2-lier-les-donnees-a-un-referentiel.md) Il est également nécessaire de mener une réflexion sur la granularité de votre jeu de données : * Faut-il proposer des données fines ou agrégées ? From 60ad57e0e315de6745c1f76592bee4cb2ca9fbe7 Mon Sep 17 00:00:00 2001 From: Geoffrey Aldebert Date: Mon, 3 Aug 2020 18:42:12 +0200 Subject: [PATCH 02/12] Add new page --- .../2-lier-les-donnees-a-un-referentiel.md | 116 ++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 qualite/2-lier-les-donnees-a-un-referentiel.md diff --git a/qualite/2-lier-les-donnees-a-un-referentiel.md b/qualite/2-lier-les-donnees-a-un-referentiel.md new file mode 100644 index 00000000..7959da8b --- /dev/null +++ b/qualite/2-lier-les-donnees-a-un-referentiel.md @@ -0,0 +1,116 @@ +--- +permalink: /qualite/lier-les-donnees-a-un-referentiel +--- + +# Lier les données à un référentiel + + +Comme explicité dans la page [Préparer le jeu de données](1-preparer-le-jeu-de-donnees.md#cas-2-la-structure-du-jeu-de-donnees-ne-correspond-a-aucun-schema-de-donnees-existant), il peut être pertinent d'intégrer dans vos jeux de données des données pivots relevant d'un référentiel. + +:::tip Exemple +Mon jeu de données est une liste d'actions culturelles menées par ma région. Certaines de ces actions sont gérées par des associations. Il pourrait être intéressant de publier un jeu de données recensant ces actions avec un champs correspondant à l'identification des associations. Cet identifiant existe et est standardisé, il s'agit du N° RNA, identifiant national des associations porté par le ministère de l'intérieur. +::: + +## Avantages + +L'utilisation de données pivot correspondant à un référentiel offre plusieurs avantages : +- une meilleure formalisation : en se basant sur un référentiel, le producteur de données a l'assurance d'utiliser un format de données standard et partagé par un grand nombre de jeux de données. +- une meilleure synthèse : en se basant sur un référentiel, le producteur évite l’abondance de détails et va à l’essentiel. L'’obtention d’informations complémentaires se fera par le biais de la consultation du référentiel en lui-même. +- une meilleure compréhension : en intégrant dans son jeu de données des données correspondant à un référentiel, le producteur facilite la compréhension de celui-ci par des éventuels utilisateurs car il se réfère à un standard largement adopté +- une meilleure réutilisation : intégrer des données liées à un référentiel facilitera la réutilisation du jeu de données et permettra son enrichissement avec d'autres données partageant la même donnée pivot. +- une meilleure interopérabilité : intégrer des données pivots facilite le lien avec des données de référence fiables et à jour. + + + + +## Exemples de référentiels + +### Le service public de la donnée + +Parmi les nombreux référentiels existants, nous pouvons citer le service public de la données (SPD) qui contient 9 jeux de données maintenus de manière pérenne par des administrations. + +![Service Public de la Donnée](./images/spd.png) +*Vous pouvez consulter sur le site data.gouv.fr la liste des données du SPD sur [sa page dédiée](https://www.data.gouv.fr/fr/reference).* + +Parmi ces jeux de données, nous pouvons citer entre autres : +- la base SIRENE listant l'ensemble des entreprises française. Les identifiants principaux liés à cette base sont le N° SIREN (identifiant d'une unité légale) et le N° SIRET (identifiant d'un établissement). +- la base du répertoire national des associations (RNA). L'identifiant des associations est le N° RNA +- le code officiel géographique (COG) décrivant les codes et libellés exacts des communes, des cantons, des arrondissements, des départements, des régions et des pays et territoires étrangers. + +:::tip Exemple +Pour lister l'ensemble des actions culturelles de ma région, nous avons vu que le N° RNA pouvait être utile pour identifier les associations. Grâce à celui-ci, nous pouvons également récupérer le N° SIRET de l'association si celle-ci en possède un. Nous pouvons également détailler dans notre jeu de données le code commune et le code département de chaque action. Pour cela, on se réfèrera au Code officiel géographique. +
***Attention à bien respecter celui-ci. Par exemple, le code département de l'Ariège est le "09" et pas le "9". Ce type d'erreur pourrait entraîner des problèmes de réutilisation des données.*** +::: + +### Les autres référentiels + +Au-delà du service public de la données, il existe un grand nombre de données standardisées et communément partagées avec le plus grand nombre. N'hésitez pas à intégrer des données pivot vers ces référentiels dans vos jeux de données si vous pensez que ceux-ci pourraient être pertinents. +:::tip Exemple +L'identifiant unique d'une certification professionnelle est le [N° RNCP](https://www.data.gouv.fr/fr/datasets/repertoire-national-des-certifications-professionnelles-et-repertoire-specifique/). Ce jeu de données ne fait pas partie du service public de la données mais est largement partagé par les acteurs du domaine de la formation professionnelle. +::: + +Vous trouverez ci-dessous un recensement non exhaustif de différents référentiels sur lesquels vous pouvez vous appuyer pour la mise en place de vos variables pivots : + +#### Référentiels métiers + +| Nom du jeu de données | Variable(s) pivot(s) | Description | Producteur | +| --- | --- | --- | --- | +| Base SIRENE | SIRET, SIREN | Liste des établissements (SIRET) et unités légales (SIREN) françaises | [INSEE](https://www.data.gouv.fr/fr/datasets/base-sirene-des-entreprises-et-de-leurs-etablissements-siren-siret/) | +| Base Adresse Nationale (BAN) | BAN | Référencement de l'intégralité des adresses du territoire français | [BAN](https://www.data.gouv.fr/fr/datasets/base-adresse-nationale/) | +| Code Officiel Géographique (COG) | Codes et libellés | Liste des communes, cantons, arrondissements, départements, régions et pays et territoires étranger | [INSEE](https://www.data.gouv.fr/fr/datasets/code-officiel-geographique-cog/) | +| Plan Cadastral Informatisé (PCI) | Identifiant | Représentation de chacune des sections du cadastre français | [Ministère de l'économie et des finances](https://www.data.gouv.fr/fr/datasets/plan-cadastral-informatise/) | +| Registre parcellaire graphique (RPG) | Identifiant | Base de données géographiques de référence pour l'instruction des aides de la politique agricole commune (PAC) | [IGN](https://www.data.gouv.fr/fr/datasets/registre-parcellaire-graphique-rpg-contours-des-parcelles-et-ilots-culturaux-et-leur-groupe-de-cultures-majoritaire/) | +| Référentiel de l'organisation administrative de l'Etat | Identifiant | Toutes les institutions régies par la Constitution de la Ve république et les administrations qui en dépendent | [DILA](https://www.data.gouv.fr/fr/datasets/referentiel-de-lorganisation-administrative-de-letat/) | +| Référentiel à grande échelle (RGE) | Identifiant | Composantes orthophotographique, topographique et adresse, parcellaire et altimétrique des territoires de l'Etat français | [IGN](https://www.data.gouv.fr/fr/datasets/referentiel-a-grande-echelle-rge/) | +| Répertoire National des Associations (RNA) | N° RNA / N° Waldec | Ensemble des associations relevant de la loi du 1er juillet 1901 relative au contrat d’association, dont le siège est en France | [Ministère de l'intérieur](https://www.data.gouv.fr/fr/datasets/repertoire-national-des-associations/) | +| Répertoire Opérationnel des Métiers et des Emplois (ROME) | Code ROME | Inventaire des dénominations d’emplois/métiers les plus courantes, analyse des activités et compétences, regroupement des emplois selon un principe d’équivalence ou de proximité | [Pôle Emploi](https://www.data.gouv.fr/fr/datasets/repertoire-operationnel-des-metiers-et-des-emplois-rome/) | +| Nomenclature d’activités française (NAF) | Code NAF | Nomenclature des activités économiques productives, principalement élaborée pour faciliter l'organisation de l'information économique et sociale | [INSEE](https://www.data.gouv.fr/fr/datasets/nomenclature-dactivites-francaise-naf/) | +| Répertoire National des Certifications Professionnelles (RNCP) et Répertoire Spécifique (RS) | N°RNCP / N°RS | Liste des certifications officielles inscrites au RNCP et au RS| [France Compétences](https://www.data.gouv.fr/fr/datasets/repertoire-national-des-certifications-professionnelles-et-repertoire-specifique/) | +| Fichier FANTOIR des voies et lieux-dits | N° FANTOIR | nom des lieux-dits et des voies pour chaque commune, y compris celles situées dans les lotissements et les copropriétés | [Ministère de l'économie et des finances](https://www.data.gouv.fr/fr/datasets/fichier-fantoir-des-voies-et-lieux-dits/) | +| Etats et capitales du monde | Code Pays | Liste des états indépendants reconnus par la France | [Ministère de l'Europe et des Affaires Etrangères](https://www.data.gouv.fr/fr/datasets/etats-et-capitales-du-monde/#_) | +| Nomenclatures des professions et catégories socioprofessionnelles | Code PCS / Code PCS-ESE | Nomenclatures des professions et catégories socioprofessionnelles | [INSEE](https://www.insee.fr/fr/information/2406153) | +| Liste des établissements d'enseignements | N°UAI | liste des unités administrative immatriculée | [ONISEP](https://www.data.gouv.fr/fr/datasets/etablissements-denseignement-superieur-2/)
[ONISEP](https://www.data.gouv.fr/fr/datasets/etablissements-denseignement-secondaire/) | + + +#### Référentiels techniques + +Les référentiels techniques ne portent pas en eux-mêmes de significations métiers. Par contre, ils permettent de décrire une donnée de manière standardisée. Ces standards permettent aux utilisateurs et aux algorithmes de pouvoir automatiquement interpréter la donnée de manière correcte. C'est le cas notamment principalement des dates et des coordonnées géographiques pour lesquels nous listons ci-dessous deux exemples de standards largement adopté. + +| Nom du référentiel | Description | Information | +| --- | --- | --- | +| WGS84 | Coordonnées géodésique d'un lieu | [Wikipedia](https://fr.wikipedia.org/wiki/WGS_84) | +| ISO8601 | Représentation numéroque d'une date et d'une heure | [Wikipedia](https://fr.wikipedia.org/wiki/ISO_8601) | + + +### Partager ses propres référentiels + +Pour favoriser au mieux le partage et l'interopérabilité des données, il est donc encourager pour chacun des acteurs de mettre en place ses propres référentiels internes ou de les paratager s'ils existent déjà. + +Ainsi, il est pertinent de diffuser en même temps que votre jeu de données, la liste des valeurs possibles correspondant à votre propre référentiel métier. Celui-ci sera donc connu et potentiellement réutilisé par d'autres. + +:::tip Exemple +J'utilise en interne un numéro unique permettant d'identifier chaque type d'action culturelle (arts du spectacles, cirque, arts plastiques...). Il peut être pertinent de diffuser en parallèle à la diffusion de mon jeu de données, la liste de mon référentiel. Des communes de ma région pourraient potentiellement le réutiliser pour décrire leurs actions culturelles à une maille plus fine. +::: + + +## Le cas spécifique des adresses + +Très souvent, les producteurs de données souhaitent publier des adresses dans leurs jeux de données. + +Là aussi, il existe des référentiels pour décrire une adresse de manière unique. Le référentiel d'adresse se nomme la [base d'adresse nationale (ou BAN précédemment listé)](https://www.data.gouv.fr/fr/datasets/base-adresse-nationale/). Si vous partez de zéro pour constituer votre jeu de données, il est pertinent de partir de cette base de données pour décrire vos adresses. + +Cependant, les producteurs se retrouvent régulièrement avec une liste d'adresses très longue et il peut s'avérer fastidieux de transcrire manuellement l'ensemble de ces adresses. Heureusement, il existe un certains nombre d'outils pour obtenir une base d'adresse normalisée. + +### Le géocodage + +Le géocodage consiste à affecter des coordonnées géographiques à une adresse postale. Cette opération peut être en partie automatisée grâce à des outils proposés par Etalab. + +Le site [https://adresse.data.gouv.fr/](https://adresse.data.gouv.fr/) permet de géocoder une liste d'adresse soit via un appel à une API, soit via le dépôt direct de fichier csv. + +En utilisant l'outil avec un jeu de données contenant des adresses, l'applicatif nous retourne un jeu de données enrichi de coordonnées géographiques (longitude/latitude) ainsi que d’une adresse “corrigée” récupérée de la BAN. + +**Géocodage massif** + +Le site https://adresse.data.gouv.fr est limité à des utilisations ponctuelles et des volumétries de données considérées faibles (moins d'un million de lignes). Si vous souhaitez géocoder un très gros jeu de données (plusieurs millions de lignes), il est recommandé d'installer votre propre environnement de géocodage, en utilisant par exemple le géocodeur [Addok](https://addok.readthedocs.io/fr/latest/). Vous pouvez consulter des ressources sur [github](https://github.com/etalab/addok-docker) pour vous aider dans l'installation de votre environnement. + +Qu'importe la méthode utilisée, le process de géocodage vous retournera une liste d'adresses standardisées avec leurs coordonnées géographiques associées. De plus, vous aurez également accès à une information `geo_score` correspondant au score de confiance que le géocodeur accorde à l'adresse retournée. Cet indicateur peut être utile à garder dans votre jeu de données final car il donnera une indication aux utilisateurs sur la performance du géocodage pour chaque adresse. From 007ad94afdd3f4f3be86d582658d2c8d7248df0b Mon Sep 17 00:00:00 2001 From: Geoffrey Aldebert Date: Mon, 3 Aug 2020 18:42:28 +0200 Subject: [PATCH 03/12] Reorder pages --- ...-donnees.md => 3-documenter-les-donnees.md} | 0 ...nnels.md => 4-elements-organisationnels.md} | 0 qualite/images/spd.png | Bin 0 -> 108633 bytes 3 files changed, 0 insertions(+), 0 deletions(-) rename qualite/{2-documenter-les-donnees.md => 3-documenter-les-donnees.md} (100%) rename qualite/{3-elements-organisationnels.md => 4-elements-organisationnels.md} (100%) create mode 100755 qualite/images/spd.png diff --git a/qualite/2-documenter-les-donnees.md b/qualite/3-documenter-les-donnees.md similarity index 100% rename from qualite/2-documenter-les-donnees.md rename to qualite/3-documenter-les-donnees.md diff --git a/qualite/3-elements-organisationnels.md b/qualite/4-elements-organisationnels.md similarity index 100% rename from qualite/3-elements-organisationnels.md rename to qualite/4-elements-organisationnels.md diff --git a/qualite/images/spd.png b/qualite/images/spd.png new file mode 100755 index 0000000000000000000000000000000000000000..b513a7c3e82feabfff802d59bd12f6b2362a00f0 GIT binary patch literal 108633 zcmd42bx>T-+CNA_g1bAxLhzu$26uONcbDM7U4st6VQ_a3?(Po3-JOA*-0!{j-M_Ye zwQtqdo~o(o=ggVz(@#JC=?+(r6GuiMK!AdRLY9;eQG$Z{5Dx|QJ{j&k zowJg-5LCrD(IJHRU@j;t2nAIgi}+&r5kkW|NN74kL1DQ3{k&T@BmE8q^;RG$BB=6R z?<52Em&)AjLta0QvCM+Xj1240c}nUY)1G~Tz6{%LN)T4{lpvOfMm%l11g40_JH?1> z7eh_Yb5nm)+(q3*Q{0BC_WQH9b@ykV`}Q;sp4ztHYjD)VUdQt|;C|J4g2&vKU);r!?>NYGjrLzjUyC5bj*kAUxx!0!m!yTU(djX z?K}V(HouFh@kqHz)_;#OnJF+f-}Pk`&(!kmcObM{q570q=XN8IfhmOGGUv6F)goQW zV>L=HA2H7_YD)KgY=nFL49WknbJJ={j$M1adahRd=In-td~-|ACvAv%=WxotY<_txK*xQ zd{ob8bduTJ)^F7xjz%Ub4SnuW(VEEGEz%9NXpZ}>hnt@Qg@1^*E{t#|N1PiKXh#&R zl!V#nc30IAp~f6u0Yf9R#IP6Bd55-i5vTl7Nj0?zedzpUP*}}AA5|;6-jOTEZvejL zgT4jtL3-EHy6G+*YCPPMpL)t*8daAb4zj;v%)Ay;;$3qaTplu5(B*HF!r0pKNl>x zCPRJw57#pW7i_3#Mqp=jRJOaujT@HvyplWkhF1w)voO0uCx<5(VsmNgM+0?nd+D8u zmYh(=&ZHu62vJe>GIM?RVJnxEV#dyFT83ZSW6J6{ci6il4h<+>%NCF?0W1+#J0j+V|lt)LE6QwGjBhm7vx&Nq7t=*Pc@lnaB0^=-t%= zs@(F#9>I-(zjec;iy8Y$$sBkW+rwg-45VdoJYwD8j8ba$qAjj695dYk^Yc<+;qkIW zoU@$bk9#|=WyU}H_+t=r3s_E@Q8?j4FUq`B&8--wcwsoy!#!J?wBuo_eIwc!RlD(oAc zS4qe8jh;)h`&3=$iqQCj*jKW6T!o;AQY7+ReDoi!5VTNTj)ErMD(-LULzP&js2(x^ zYIIVjFl2%IPpJ2q)!Znkim4<_bu}p-M{A zd6Y@Mg`z}CrR+YJ*Gorh1L{kEf$7+_!#cJCR4f3Ct}*PUl(6M+Q@r{9QuK%?zf3X? z+Igouf$AD(f>Xtv$qB8EBf57LRP$s9tXLp-^+yMhR;L; zQ&(IyD|{&sw2g9EHG!jv!soF$!C+yqaW7%jA8{0tlc){G2KSIGwtu9?!kk>YwxCnK zgJn%c>zB4%%^WQC$zCCfY`rIc{TIJ3NIS<;*&QlLzN%F2RkBIWqGQHJ1P z?l7vXlZ@mDChlZ+-pu=Ct7{;#VQ0R{x1_t-E3D-p^n&1a0?8bG#B|bC@~FA?au72Q`(yoK>EH*_*$pDr?oOhOyECJw ze#4#P3-p>I1)rXec8i@dyY~9Gc&lHj(EI=}YEB!(v^*<~?lO)%yRqd0dz6}&k zNU4c3`OV8}=4Z*l+5c*%^(R0s*5z!~WAftf; zDh*p>GT(H+HOJ`~+j|B+(o|mwASWGzjXlV4+VXN%8@O40Na=spBEtyA)1k8@m!S&{ zuQIw4y!z$}*8=iOBb6uoFc{T&Jo{L@UV9JgYtQQVu6U${QNDlyqb)hksv*v&2ia_~ za}<}Iy=O(BA2=5IMXeURlno5M#b!@`H3RmMaRYBKKL#@gmVX{{r5bjR^=z6^&dAf_ zH$m>=*cAThmcG74zadQ9vN;TK#DA|(G9oo*(!b;}9@k5Wj>-~uGs;oG3(EeEtOunp zy8A@k8@gNYiJBN>C~2m{SA}KQ+_P357M{OoaK*9gK&GEkhDs=uGd_*eO7hb& zgxIoU3!a>~sL5Rl4PFxND<>;H_f4i%g%{Q5exS`NyG9)Ya@}D5AT$0} z{9YTq*bH&)n~nh}-Q>Ia_JMy4#xOp3{V@s~Dmek<9PvH34q`fQNoE`fBP2N=+t7)E6)Pf*2>HJFa zbB$v7#t*WWqW>9Xr^ zM-VlfPvgZ%u{i%2{;lgPDqz~R_hy$6a|Th?euhi2Z+*j&7D+mDR|H#*Qf3Z;$4s!V%M6>6tYOFq7Pw!(Q`P<|J` zPEsZni*Nmq`5Tt>lpioy`E1^QX!8<98qm&f?3Ka-N4en;0F-;xpy}EEM|N7sL5+L7 zW%dW`ge$eVN6!APC{dSrng6_tfXRjU7^vMwUo|tv?=9kGGFe7J|DLqUEH6S=n4NHj z_5mm>|7XOxY{S{O6YVqH-tjB+yp0Sq6T3E={h`84nx`jGQ8at{SiOvPf6vns$jte| z@SmZ814*&G50fFC^VVz5lT9H&a8-|Q~}2h&*KAfi2N2_ zuHY34V%qe=d2!DODYCwZ^DqRx7z!n+9>3#~)tF7+rLbRH=dS8ir_U}+G zC_};*7XJAf@7f(NL}Kgpkn$Pn1q@pj;DDF1J51h(`iDni5m$PgPf(j&zjm&FEa%SI zvu6_K8I$Jr8w{^fQpc|jbV?uC5d6D>6uIphCJC(byP&ymI#wL9&}mj2^0|-}>M^0` zSbwMRT+Xj?&5bum7{YU(;ZuaxirT#T2!;gAf3Hniv>{;hn_B8&>oarsH4orMV!x34 z-fv?V9dR2c`e3bjrU&I}DP4jw%Yd@Vk(BL~25ZE67b`2pWN+hSZ=;2=U;(n;m!u;R z%LfLXA2Ue2>zwxspRSd{!9V`hX%V*%+WvvO?1pW)%mxR|QSo@}%eYQi%YVA3daJ<#7}JO6@gLCn&PMu(O}+k{;WPxD z*QSloVl!9Vwf3kUmcqvIYRX=EaK9?N%{?(iHNSz}K3F#_)2e*XutmMq_myiTeG@d< zt&QX?Z6M&0UAEOOxT)VU2lg>7TyA`=0t?id(gDw4FM~0SbbL;OGM&b7YV4b~)M`Bl z2Q_Lv(03s%&5bx~j@LXZ(8fD+;foDCkyim8`So%?aMU7?KYtd|Kd&By4w23MV&>30 zQYYWug6k+b${JMORrjYOFb$VSaBv!pBjNrvQ|Jk$PdS`CKIwz*`6J=B5=*%~p1f?7 zhq;Ei7RD&b3l$|C^I2fV03&~5f^urg&l857__dM86k)zu{t)ZF5ttE$ z*6o?{N*D14EkK6cOP7H!88TUapLI&A9FE*UxMBx9g~*0OSG(CYOB^J?YWcDN9P9Zj z{bc4*hLy^Y+4v%98hKdm0I1rFE)Dh#BL}(n3aHPpy!N}^`SZ~t{+kup5LSGem1(4O zL}&7HAvtOJRH5L(rQcR;3bD)OU4CHU@w3Aa`zrCYgOkI&G79a8tXgyKawJ>G2#UE+ zcZ$!mHepxaw_`~)cxPQ-;d@$R4$}uXWj`!^74zDsH9p2u`?e^6n20AcXQG&S<(p_( zKpF#N&3I`~SE?lwx<(d<#KU0M?CGK?uV=688Kecpn>`ua;$s@bDTa)&2+D3uS!i?3tj`sL zp(KZ^?u)q@G=gRq0VUmu8Icd}a(t`B_f_sFyDH6~2aA(?YEeL6$MvgwhG%RlF{XV{ z}9=uMiX3*C-X$VzU^qZaV^TX|}TCFBl|G=k=B@F)6;`6E{Ld=Xi zthK;VpT8P>p6&Mu{hx`!F+sAyf6oyLO5pkbO+NYmQQG>y9R|MMY(#VI+#mL-d^|_~ zznS(AxIbGy94ZaBkmN7xznp-I?^!XYaCXWzYaQp}0Qmlzr?8g@o6LcS9bU+ulJ zZ`ZkCP*`JdYPfm@nb9j%FAzES)_11xeo_`S=1lV|N+CY3nIEbyC_a5wwVUAJm6 zkW=0C2Fl_3G)$ zQU~3Z?+2*gu7VcqgvHwLS356>gUPYEI4AN_$(zVA*QRLxjOPdWI?f0g6;_HZkpEKY z&d?++Psfv3g_eQdO8+426{|R|Uts5rb^AITq&>fxXTXkhZ(xJj9d$VUMXB|W7SZnX zb;f)!l1j~=DLP4|d=Gf-W?im+{W=YpW|NIVV`O5^WTCoPscmz9t9N|qx6wj(q14vv zFAB-8g(NO9xg1*47s@77cE~J6me^(E*1=rJX8O?a1&f`<|E?MorM@cEz%Mw8E1}VAMY0;s*TA~MiXF4N63LX%JvgkvZf@# zpq;rbjyL_l*IWWkREp(;-p>i|H6)i5#Ma(_iDEtotiXI0(%glru#lyUYaHyxzW*6V zDUW)9l*`JVL0qBqhCfrl?(_=;PBxbvLpws36XR&$am5K@bBAXeIJ6$B7pYkrpVnH@ zUKEfJX4grdAL)|9yLQ4`gLtHDFkG>jF!M-6K4&i12Wz^DYKPI-T`?lSX(N?4;U_`N zP}k2o+{yN*3GdbLTv4+rU#Iz+_=$-TQ)Z;@{T*5l?S>0MqtbASwx(7o(G*o@k>q)z zaeUnha2^QnEn`g1rrV<}zr+k7r_yHQ|00$i=9E!R3qGK*F14@|A`nfhVUrSQ9Xh%+ z_Wn&NF|bzCQ zS3o{I;hG_En!BYueu$2@Lc+pX{r3#k`;3#Q71=!uaCw^3BZ?DIS^n_Oz@9%uEth|y zS#fX$q}!`lk)qfo@@#7q!+N^qkRU$_42O~b8Ht~LcYF7HXV8(fC&>j5t}(rvO&Mw} zE-^gM?O5pg;G}8eXzt44{TRwshOmS%UY*i;p10^tf#KS$o1uIyF%f8}T)Yc>+P$V& z7)8}&MP5v+urD`7(ENc6p+`L4b#Jd;Q&K0)U=1rNU;5_tL%PiU<8bO;%vVBjSJ%~0 zUf0$4@ACk}g~gxDa%2QGP5E+JOxGUa6B-y1sgGk@mwruxqHNv;%xWAKJ`I zkqW6}iC(V*oqgn#Tmzz>r1Aj)L7fY_IS|pDn=m<90B*yQf!s6TDwe+o%mz) zqi9iNCDw?oj?ZI)3R%##{dj34JrH}Giss=Ckh*nHiinBk2MvMUCnah+pupXXW$1E= zFlY765+kBhdXYn+i{5Ix2oyP|fEtWG%TJI(;~ga=Lx^rh@z)M-Mp`Y((;sgN(K4B^S;sbvRu@SA!F|$DGe$wO zMPx8u5gT)XdsJNvAC7D(%X*y0BJW!HK|uTt4c4oq+t$Zq``}LGi{S@->s!I65xX*t zALP14%R%nRQNOD_I6IQhIoUx&Fgal4z@zJ3{2a~F-(vHOB44dJm+J68muV z$}prlEU+hJ9(}Q*IB>yIW$w2`Fr9t1iT*`@K1*UDDwNS0O7JA5gL65D&`RIM@A?QLY&HQPYjWuqvz)0ewpC-2OKakeKPOoUZJT z><)f|{}>8kYjbpXEe6o@gt0)1HP;&B4midptJ{RqIo7(mPXs#24ln2LFUl-O*R_yz z&>`Su)3c_jRSDv(2*^!vfhSZHRh7{>{;H2(&l)huOejv6k(KbA%Dk-Hs&LblXB=c? zf-{WOTl0tdK&uq>h~A#D?>*L`(A?*?+C$nX7DVsz%-}rfsVFoN*y2t@g|*MClA~H5 zIcnU<0yKNN#+!5x?YB75zSa1Ag7ydDC&p8m_8wf-PmkwD`@8h4l~GMU9e8Rj5~TGd zDvnkZ=|nysuNx653fE#_o;8VKnc%QUo{HrWhRRVl{fmt<_|zjj^{l_tdbd{@cC0f_ z>2c%;BPsNczYKIqiKWRwLqd)^>aKa4yVPK9o195J(u}~$AGcjwi>d822w@h4y%`W5 z-uiQ*KySGz`+=Z3)_@2Yp@h)<{ci+OdBp>T_`Tk$vQ3w_ss<1pC)==r4Yh=+?e$M| z2iD9)q~_z#%|Nt!zkqB;lcBunXOc>y+abm*Bg~&5Gmnq!nn^YsF%phnn@~NDnm&Hm z+f5FR)ZB!wXy8ROMTlT|!7v>*>&r(Z#*wQp6tEmvxWZ>nvj9#9EBVc2m&l5k*Q)h5 zTYR}oWMp1hvciRCCW7t8Ra&uvPJ?5Ul|=qnuZu((%~)Pz;xLaFWY^C{psQlN^HXVF zLQ6+d-juwlb4dGyqQpWCp%4GYnn7iovn;-cErSCt<Gb6J!A*N_@s z!J4F;f?6&o@&_oW$;=O$wQ1dr1Xp-Y@+2Tfir9sBM&vP7GG#7NJXM2{J#@CHe>(o4 z0h9dmc_MlQ9u{3jwh#>9LC?`_?q%V;E#-kx2LiKkXG&$d1iE4^JPGK<^}GJP)h$Fq z*U^cZBeLtovBRH?gm+X?962hOfQ>vz?GhD4=nRa=y!h_?+}%-D~U#C)hDs`MDcxj2Dp> zh5B$4#xe~k>fQyXEg29mIiK6J4W*^ZYKU9181<LPse zRflR_AE(0VOPoz4Pu1%ldjf92H(CiT%{*yqEDK;saK`-L4))&NZ#sA zGnT**jq!I?N2D{ufTl_R*r=U%&>s&Y)Is?HAuxTmwrXX@5*QKB zFm$&HcduAcZ)PQnU)dDw(}7n)dsMmHYsLt}+L2Fo_&Y`QOV4Sbm(=r=p@JRet@H)) zYB)l*!`GVC(9(Sq^OADiM2}Ban6zr6Dj1Ak<&}{s-bK?}Ge$G2A>d18BC;kbHbNm7 zH)RTu=Et8z*U6@3KnyKp0buME#juD~nv!OjfGm~qi+u?Vw5urdjaziJ*{Ovz^e0VX z2@XLvCb554fU2nkDK8@_7}J<+@nklQTm}*x1jU;Y5H>rsIiR3GA_O$MfH#zc!GORr zj50ucvuBI26c+R3m_V=3Cyf}{ZyP5crKH{kq4Il{F{mGZU91s?{0HIzFSb*F4D^!P zt5I(9Vsi^eKQ;$7*O)e~e=5`lBfiwI`KhjCvBUf)?PGk%F{8-RKKP!5Dz|_}%(`#` zfINq~UFiAp;eVdl_4yyr@i)qU?n6fV-@}pr+q~}o5cT~3?=TobW68u>)qvAROGz!rI~BnF1>72?+X~ z??aBU^S2SWABJT!77`%@CkCP55pcg)OkSYB``Z;7FB$|xzd&6lSAt_FB!>Mv9C-%W z)Zgl802Da}WG%adMFJpD^^Y(p{J-S8|HqpxYE}*NYA+U+mZq_&+GRKo-ds>RR29ca z@Q}YfAcaXlhWpL`JxqeQ*-Ur}CO8uW0!0i*uu482H=2y=CvceF^{MO2`!R4IpYA?Z z^UzL!*pk(=`Os3KvNM{`SSTSg+cf?}E(l@9+a?*g>nIReG#3O4`I9hB;mCDfG3a>T$V|^V2kM3TYW?d9EL_ zs-qB(0FoR&ik5;yol!`d+bmZe7xvA|bkrUA>hp`>hO$ebq0pEs)Ivo5h&;bThlk>R zj}{N%{13kiwD@l2+Nr$3ndMcTl%MI1X2#>KrL=Nc#oQ@MURhe`i%pF=taQJH~#PQj=0azu1QPG4H7EW;tqfT6jPTg{Yi6OU>iV`>^_FwCQfa zfV?UtrD~zsj{TyN(}l*?yl#?t!qGJ%?a%QPVxF|y`BpA3)P~tP#T;4>X2saFu!x~N zz;bXPY?0tnl9_(wo-bE0z$JH`JfCu2_=ryza64zvkOQg; zTssI`x4~duJ)H!(-oQBu^@S`G&(t*mkGacIR;2LzZ$m=EW(^^to1DBXt+^zvhIP)R zL6W86%R*)kP7WC3nH1~-5vvXrBM0}XO7533>6DEOm5+=GD;7IEXHMr)N1zhX@VJ$5 zvlG{=XUZ0HCZ%$l8}=0kC5MR7Y6)rEr@6@_?9B2{+Ag|tVFoWy)~p4r&$%d9gK-{t zM_ch3)-14o;>roHtTRfF$`73aKMu}(4T=hz-eSq0pP#=^?!31-=WF-8aq)IJpDOj5 zSO<6k7WS9o0Z(nW-&4|by<`vP+^s72_W(0=E!tU!?O9nX1@}Sg6UcrQZ%rgVdWZAY z4vm?Lx~;K3xg)c0ynq7j^Qc8zVtVqaHL@P>3HM9!6&iI^rxE)sU@vtk+Hm69btl|A z^x{)=cw;y?Jp1%<=ZXnuBq{Zx)oMF;fcJ#RyXTIG>U8i?T@*y*vBM?jaHlKFUZ5I($&aji zeR1xZ21epP9NVcz$w~TDubna8jN=m9KFUHhUJR`*hhPx}+XpT~DC;bi8#_dySsHo*Yly zW$}GFir$B1JejlK`<((3YkxV)?o!srdswaoo86x9)M}p}PTZtksWe{7yWn4{EHJlc zjjZ})8;er9avnwa-U4Pw+Gy*{$M!I@&73#2A|$*cCGQ=5C$6qoj3zbx-`|p&7P7Jj zDaYdgpu<&8oW{rx*i3^(!JGFf`ta(e6WqczBHErb_%mkCt)X~CG(}0d47R$QsOZJU zvo;K_w;#3L_R1p}_>&astociZuZ$bje|6h~7j%Z{*ZuJ3oFKpJXjU_N9ZKB{YIbn& zn^|w&0Ytq}a-mdGeri{_;=X=&e@RPz3R%Uxq=Jpfwu|1yc7Y06q8Tb5+(E!AU`5r# zqX8P^m#$htPa_9o4-gC83X1ggj~E8TkN{HLvJv1yXUOv+8*DSejL12@*kW-PRhmz_ znOd-Yf1j0-A40E>(&Y`;fz1H_UXnd0b0Wn}Up;ljF+@y8(bmtB zzrN{%6cOP2>Bd0uhpyc#B{31HhFZ%zxZlI@d9+_V>QS#6^0x8?%m6Rf~u z&t7K`;T6e`QK+qN$X%wtE-%0~Pq1P##Xbk9BqeBhFcwsoy|2fzTT8m{0tLwOlrZVo zRFsHiOkt1JyVj?$D3YbLe*Ww?b9eQ#kZyuf{qtw`h1uL%s^DOV!E;V7X9Rfbc;OH2 z$>5FQ7Mu=e7akamRAH;ShXwZ-VUi{9v88 zJ<8LX{xpoxwR~WaHHm{uys8GNmd@QhdjYfEpmHlAQwh)MDuBh zat87CU>j12M1tpUxj(seNzwCryU*7Lw15XdqIFxtsxgI*h-OyjiA;;*PBQp`N zS0L7y`CxCpEEvLFPN^2s>|)`i5IWwc8CE-`!h2YmA>=m6vt9iw<+rO6jABLU4@Wob zA^YOtxks}uhJ-mzl#CX)UhNTjkl4BQ= zZ^`|kV(CQt$8cc>@uYf2eeN(GMQYIXoy)i4p1m3w0+XE_=wK|5FE0K;ySs%1HB#LK zM?#z;c*wdEXgKq1Sc8bTt5RfPbx?$4Xn$>K(UKMcK}|{}4cGU&KQ~LmwL{pK<|8qg zHiJwemsEb+4Q;pSrMBmr+obVjC1SYqyE}XKtH4G>=g07er?!B3keLe(jZRj&zAx?N z)e9BFE%FXVK%nySnsmGE&svu)S(36x|43~GKPsVv`GmEA2-Ag{XhAn7L~bFLq~Ey- zH?yKE4l+UdRCG3YqUmsJa=_)`WHamD_c(LOnFUUZn)S}V>nYZLMT2taaRQb$LY!=W zQ0@IJfSsr5dyjL6v*CzrCNZBU-+1QydfA&VCm;3whIGdFX|SUb%(z<`tMjnciGq}I z(KSM`AcE{=K3!_x_WCrspqI{VdXx{3shGg#G&pGp4TIv{v2n2fT-e?Sq7bD-x>bsC zP&eH^XpL>Wc)e2QV?XL~(T^+aIuraXlHqGWc0}Vtf!KCbnXYmkHEF}hZ^|qi8M;#} zm?-^_PzZVoyix&(F2u($ZW}4BL}Be%e9oL6X9U5~p~Wu~#UDgm6B`CFFkX`$$(7hE zXBo;%nx~wCK6%w6tP#6dXl(&G*Z!yH6U`VyF9 z758<^MQs2Wnb*Kr$SWHpB^+o~n>YDjEhukEsG6B#xIJWaONRCQ^~9Rm-I)~_k*PiC zHiPzgn$1Pq$O=C{2~zzvroTod<`g~(e*=*c-}rTGNC)PIAo)J-roeP^8vJ&ixD!29 zoN&>8XdKVWJYYE)Vsw68f4m)d+#_2V>qmd9^5y3~2*j>bOQiw226!SNOgpH z_00uWI#Tn0?iHY{zR-V;KKSJBDl;_>elX47+sloTM*b)|XL(p49)oMQ79H|w4Q(&D z@Ksz*T3ZNlU4I=Kr!_9EyS(X74LEz&U#^Q#M;#b&_IAf2GTJxQ2NuQg z)};dSiWIfsgV)n?hDF}TS{^!47=gbQ^qu$!B3|vU(>(YF5}fQyBVJ(GiW#1Z*+VF5c62tP3(*D z&$;UCGtRt$Z-NH0NG^I=F-gGBC8Td#tL7x*PeVV&_ZjsXTn<<4JHdPD_T!oC&g&QI z>*wq4WGyDYe;W#i;9%pp{R%S)MWwdK@yzLX{?)doG-3Pvp%u26W!hF_8TVb#qRUKF z)MW{OfJSCUeP!MXhQin>4UpM+TD{BC>PCn#q8lSY760tBYGIi`urzA|cVic!@ITpw zCVim21CpHp5e8GynwKS_8(HHiD4VBE09nvTC!nOQ&G0l{d`PrM+WHP-m zbm{(Den_qNAB0{brC&J`3>=Cz?^H)t{h&b?OwuUqAVj9c)Z z{|Z8G;m#theyQ~r?cb)SJ9dHu$T{{}>0o%L#^2Iq2k|@|yHkZHbDCT5!IMHKw~i0muzc^klV=()&KoL+rt#N)k70JM2)H65GWm5fSS2 zOubw2qOPtEMmuSPg7N3b2=1yq!P84Pk{`OBN>DqGzWTuN`4rRlChr@`cY`x%)KSal?XIj2zT=#IlDEg8jW-+5d;OTRr%2{lu#MG( zeiXsgron8kt5~exi}&<_K5~So!yv`Y$tvlK!JX{4=;zV$yv$BNfy<5_*(B8^FVtib zz?71{z6S@DkC=;e;6qcxSQ>rN+m@;dPZbZjM@e(>iSP}UuKo3w5^ZNT{yd+>`Wu=g zn|lrrSrUyaTv_>j_@|rZNkoP+v3h9LC_sS~p)nmR+?;>0_{7n+)NpHg2Cq17o~1__w!G@gw1fkj>vf{4u_x9m*){vH zt*~h^v<(w$j9JS)!mou2xcV{Yk>r9qD{>4m0V;~LGbwt z!*WHOCY!d_8|-)$UsqD`xb>aFNA7F_C9#ni4(e4BX*Jt%bWaI9u%Ky;0u?1$*-uXh z3@K+d4N{pOkFIfixzfvKLu1E@CFerBMZ)_E)+j&nLdsylkZRh;74ZE;ROEyFJIV1qP)C(Zf>qnK1;9BPFGa4 zuT?tbPbWz=mDmgVT)Fv6{(>0)Oa|}iO1t=5#hN~NV#b*VAb3>*NgiMJ;|EYSZc9g* zc%6)vmg~1a+k4;j^$Cl0aQnWOiWTc*i7=6{*!;Cy3MP)n>n9t;QT`U=v*5gutYAN9 zWL}&}x=b<)|E1SNqa&WGJD30M5Zx4ET-pE+OK^@gOi8`V)QTLARRi?r4=pX@ajsli zouiD_rM2*7KgYi^0C?m3cZeM(j3i-IJY-_w)GRUgoV7%zxIY<+QEkhX9+dH&q}CkY zHI|qCh_Z}CUqo?Q&m>D@qm4i^NmEfJFqVRw7>P|5h2Z@?|uN5nU|A zMOhAC4XsC|n-i)02HvOut%S+ruj{ZM;{ZADvl|bbd0&qiXFc@h6WSB4+zt4+qntk8 zcD#X$yLJv`zr}!W$}3+E5ur05toYYM`T5*e2K~GrgZDdbPwvkN0y5WKW)>%W?5?(Y z(x74Oo^C5Q4sXH!!8~^y$;t7Zm7*${lEaz}E!+%&yrQY?_=Y#%SBpM=bgj++{|JVM zKPtXMo?zUW4qD-Q;Yq564P6F8wU;xb?8q4?4?BvC-niUNeY#-=1w%(A6o15{&wW^K!c1Kdu zfj~%vk<6rjmOyrUwq$*U7>FXD%F&>Wx*o=oPxI#Sbn6G`)An>df9!qZbK5iSlzQto z<`I{RI>fDa7=2KumKQsmN>$8@lne<k_0v9K2o7SrT0(tG?<5{pfB!<1uioQje{KB zP}3Gd_DPWO-)liR#x^J@Li_oG_P3m@S-a-YQ&g@!<9pxgq5r&WO$vr=9#b6R;5&PM zn6$g+yVrL|{w#0*Ft{kcb~T)LkMuC1{&dOrav9AN;`+Sod@ze^M<}Re*KGQN>c@HC z*s05AI^4x~-x;>8sM#DQZvN9LxuQ(6QzrAhKv5i2&cOVjbA3NDe3rSy7XU3I<9dyU zv#F_R>1{5{(*iiX-plR0+UCf*^ciKR((2v}f0~|4_-LwDyzvb1x_^($_ju8~0cdxe zym@x$LBf&Y`s-+F%wjA1>|2&@Iy78M{&W2ai( z#WqCd+UldElKBy~aS_C08dfaLSIR&3QunVq1S(0@?>bJ{Qat%?FOja@vXso*H9N9d zJwAwwgD*32TYbuztjK)MS{{?Kysf@^zMNe{!>%qoPkHIJUFYQu(%dv%_E%@U-Xs=R zo{?Vkyo&PNv#T#S1k+7?HXqm4$x;`9u;4&Ld*QGkTS72bReM`B|I#^Rc6vIX<#esJ zv7;k1Up(vwzEUHjE~?$?&3tDj$)kz-&CSx;L;dM~>#YF(^s1cvg&nx{7Vp+1#W0qi z>%7oU;^mbz_J)YpzTa9|PZd)9O-?>>SBC%;NCIOx`2XSq&eS?5`S%DC;$pKr`(WJ+ z^@<+0y3jDJcwqE`G~@`G=k|f&#$mWs!-_otI8t65{O~i7|8h#Ph~wDl+&Qb|5qoy4 zpRnI|f1GT>r&j*W{#Nh}rCxs$-*5JNT=0MMJ?XxG zvw!Thq!cCyWTkwO%zp~#rYoHn{=c(8Y-*UJGAGY?&c>rKadhnzS=cLqi=J_#G4+MaNj2m6a6= z39p8_I(4Bq+&xmUeC7Iff6Q8k>#_EmHv*LylZM{`|1Q5g|3>}50d;2D-Faa@-_%D} zVf^VxNHha+SBP)x9+w;3o#5wAD&Nb-XHrr&R}Anm`U~z`d3m1~Dvr(CM+jK7jQl@{ z8G7ZC!Vo3@jbLkb@uG3RP63RQ0ryYa8$QJy*>IwyxelsQR*+0G zcqMTo@&nW-od;H7$V8>&<(X(`EUT%=-|5fkH5={D(kO%Y*G;|m%|m$CTn$przTh9t zwD13BTvKScdE(FVjBl@szAALg$nx0El9zkl$0YT>N8Rtd+vlR_?_e>ad^9_SEvTl>5nS9I;5E>7-dHQCchZm|GCbOB68r2oq|;CKB4#J8@I=mN$eTm z$?g1dek1FzVe{9uU=h*lC%Nurtpp!SCQ>7Nf~;q=i>M+~ZqDWqGftNZR{HHJG; z2}o|IOTn-p2JNIyM{QFhrQ654ALv7Ox5MhFPlYJMp%3w%T`#%?$E2)Z^lwh`9z9{l z23NAU7dt1z2nK{6DKM?R7%8=|aZoC{z$2llE(r`1&`3KY{}Y!%{czYKBNr_(Ydr*2 z`@KDTQBl>Gmw!3)UR+(Z0%$=33o9#v>+8~FdM=;+49uMxWMaR^kr_r^T46_osp)B8 zy7uj%y!`8dtg$b6NpS7#^f|Cquj3ZPjLP4J7H(^4Rl!8h$n8n%cJqh&+~;-53&tB9 zlhe4tb`(O`--hqg2FlOfbQwM=H0OPtd-Z$lM(ljL3i}pX`8v}WlJixi%29i~D-Rpq zoOMG>Dk;{o<2V? zDk6`2)aT@Zu_LCk9)h`A;4^0}%iGPV335#KM5Cl@_MMPw_%*rTI< zxeT>c&*KkzwQDXjO`)W|g$)hpNp9*DD!F_`qh3#k>_rpQ_PzxJ3(v26&d{BH3ur2} zNy&ed(2{H+V6mq?f&c z(AN{`JhSMf7r%RC8h}&o=WVC)En|;k4jh}MB_(xvHdv@nCl6nRA%RLoSy}#sZIih~ zb#*o7fV=?gfh8o7$m0PpUtSi50)jh@2-!O(E8kuY4%*W>>{EH(%3lNZylPgo0hudY zPA@Nh0OGa7ArC+BMD;n?@i8kib*Wu`d}u}$mvMd{H<^f=sr#&x?h8jBo zVCSrKrwPCeL|jGF(sql`0m%%~O%SDTGi$vb51*PEQ0!7uo_Y8asZBrtRLojjM08(e zeucRA)%(kw3BSAvCcbN>{ZM_#DLLAG+Q?zLamtimGQ2fpXZ}o4-w$dPJHe~J-`b!1 z?#1cHHhehU-!9{Ql6_w9;`y7b2l+dhzpqaw@jnbV9o}mXqs8xVSMfh-I&Q$z?s9#bocBF)ARtW9k8aH^?wTywY9Kl9Cd_d56~(^1Qm>y4y-BGNBR>s8D64+k8b| zxind9?_;f|hQqiY5n*-KYOiHv#CN2opa2eLl4-x}cWhkcd@|4SJbbk0Te<#LxtAeT zQEIz-G2WHGn|_2CIU+|bdyE4Plt+DAl+EM6n^Hv7U(t18<1?ShRBTV?dwCSx0QXM% z`CS)0GIic(FvV8#rYN=T8!Wf=)u+@b%t_3`Kz+i1NOnnav7jZIk6jOy@X`Itbto$7 z*?K*p$8xKA9ni>7?9dFW*XykEX2D-(K^wDGi9^$eehZqSL z%A$`JNb93Kaz}RFc%!F5mbzZ%qyWVxTX~O{wEmiiALx?Os|89yLZu(I=Nb18oKF1( zqjROUEb#e-ONG%i@Ri5*=w~W8Lgb`qkY*oggFgt;QJXB%$bLftm`dOvS*#9f{Kt`Z0DWk^Ba6N+_uAV8{*)5_WAZ ztxKQ#v4>G}koW7gvhPLU(&1sj*cij@t!%qz->NSU*kEj*HTI*H7V0?d!??iwTFfoyfcmqK2o&4LrprQ*{Wm;!%jHojyuR z3NbM{5StAN73^$m^5tbXO(lv<_eRr3)^$T-o^Q@rv;E$t^2E+po3AI&0M~gT9dn06 zj*x8wuPO^&6E5iw53Ef5Yqq`0x*HGsKPj>fuI?@r5uZA~u38C7V!Xa9uxn?%C$5nE zzu0@Lpt`zlO&ACSC%D_jo#5_n!QFzpJHg%E-QC?GxCD0#p5X45UU}csRj1F_cYk00 zH&n4}!CrID;o}+4?A1y3$_GF{ePKllpIO<=E}+KbZ8SUUP0_|$uS*c=9c6PJi%M65 z$Ca5Odn2Oyb7+qED}B>Et8nY5X!vx0RjLp$lqQvz%O9z#NZDfEm0QbWDc?MYs+v#? zHI+u>!2Kfs>S`p3rDT&VBv&WntcbAgIs2hfS2M#3EKJfS_P;EDIp2Fubw|g}>r+8c zP}jnO;dQBb*=HVCx|hUU^ev(5aCupsu1D62nTiVB952Vs>eiT-GrKJdb93?RSfc6n z69%2e{E-n`!p(!7@^U9E{na{~i(TDMJ`SVhx>5&MX4i%-47pwJjQY{X_su<#lp|_I zX1~w5xL;Q>^j}xP{=DyRZ~2%!27oTQ9|zt&tk{7*XNpGe^CvJt(JO2Idd?~LwbUz` zRAJ8P^;&N(ZuoUk&UE#Ofcpx|W?{||d(90?V23l&Qmg*2_W_Jj)QLSbr<58v?D&1$ zkY#KdHIQhd>vBePDiaLXMCv*legt^JVIruB`2#2wT6&T~8mV2>p=Q;cE66|{y7_fhnq6f)9gJsJmm6y-Oa;#XRdsFJc?i$dop8u ze}dj4dh72KOXOHgQOC-i#$I-smFH)BG|TlVpJ;`yIcGYmeL%FJseO!l(*sl$WylT( zHJtx89M*X$4Rm+Bdb6?GXr)#w#qD-}7Hs$6+oNxHWSx7?_tEu;eQ!&i{_zDZkx;@z zDOFM4S;%63n_+Xr<${34=lHUQPm$zqjzw33chN;S){OCD?Qh8ZE1=j!Vi!W3tUbhm zimWPWtvOBs9u%RgwH@GZ6izM@mJ!|kjY7oum@gT#`16cv^O!SEOqL_nmwm^`#V=Fx ze3@FQ;r8hP#P%+Ozl*V@agr*E?#QU5apN%Zp!SWN3O`sb*8lfiUfc0*Sz22gRxYi< z=Sj(qiwlMOtkjNywfue+D`VGg!h5vQdNJJ5QS$58lGATE{--fmqL-CNo(ue!DV|b= z;!y5Sgk5JwL<6}6qHK8YKSvWXLXOwkah464T9=3MY{as(prh;?IO!gf#fpD$RGGmNk69V{C7%U*=>GXyk3j!*a-h0tTfMil@w-jmS z!kF_pQT%br9oUll$Ch-mk9m%jH+OV^NDEm>3lZKXe12B5ap6d%MR?9-R5xK__)zXT z@_P=X$!~I3%zr>@T(TYW`lfl@)DHjW((nfhDdUuGQoG~cBcYw|af>3y7UwUPTpyS5 zq(J@0{z_5#FbS|3B*1{fg>i{Ay!Z5)xjh>-Gki*-ygT~YNc0~0hk@n&?Y7I8xBk&C zJM~ZXO{cH7*Y_=+-uv3pOPS5-2gbI9&_8YZ(u+FiY7x*WQuFv3OIm8+dD**Mt;vP! zw8-6Jn8ke!z8NQ-Du$MG)5n6vl#HN5&Fh7B)A^FftOX@Zc`oyDA+-xO-|3@ zD3QD7=t;RrEG4*KJq}G31w9oF@4;B?AhsFR+~);!fQAY{f+^@?h&kPOv?Cy)Q{Nk?1W~- zcVQ_Gc;JxZo1iT}vHkA|&9!=UW)G+u#Nakp)}yE!d3dPmza6VAIPH(>y12+yR}-Zq zFP?4rdTjB(wr22zalqu=E39 z&ov~=P9giZ=D;&?iFQvmI9y}ms03?ENXC>EI-T33&+4M%xMR!Xzu1I;8*S`P|O8bAMJM zRW7Hix1%H8YxioQd_&&X^O{nC%U~oXvh1^n$vV$PR@cpx1JNH&-zZ?^PB!$%TNx>8 z*U7cp7Zml&*2ZmweC&DLh*A_6Qyx{TGd5#;d{W&^+M^G>l7i>u429cB>Svf%IHGt2 zTX$m8#t`~qW27DVIVMAKlkc}npp^YW|J``Cxeu`DcyLgb$ z2SXWqzr>E01eZto@=aAarY^7{o_*6^bNo9CWY*8NZth>S5Z11&<#_?g_Ti(HpAG4x zJOo~ffI{X`Ml~iBfr`GWI){qNg1Xw$^1^liVzTPt!n9Az_LBC9z-8ZSK!D|fhLX}t z=N7#XIcDwP%$4ukGTx!EGp3aL?QAj88&&lxE?#m5;@#^$C1r65CI|a&E_9m~z<*a9S(C}5r)t)0$!-k6C2WuhsoNNgSGLLvK-2;d#@>PBw}-f3TVCF-;YNYa zKZ6t{dl?WBZTQ)!dcx{zbnWDW&+Xx1)48rU&xS`r^`b+NdYLoUN(&s7u@$>YNPa+d zdpp#d3?UGk78kpOBI&;S{<$~<0?^CZ*qBVV6BwHPnexZS4WQ}5%s4Q*cfUSTC|#AG zkAq>BJ`^wn3gbU z$Ww~$gp?u%TB(F$HHZ?i?L#KIa6__-vO(RubiYAXPk;vo*_biO###qHo63%D(FfaH zyviR*D1AjKLYEn+`}R(@>F2>pbQ7sW?3^13@7n zaDvz!uHp|h^i|%JcB=aRyW+^5Kc@vn8w7-7B(LSNzF$-?=`wP!IlHm^Ogi`$arf-=4jss2@qVgr{+oK*&u;3J&Z1N!I2OOKr~rA$s!Mo_%~N|2J3^#?v)tSB zFrh!y`*L1hrq$RH{WNKZS?KC~&(W*tI6>d0=tIoa`@G2W=jqe=B_NyKcT2EtTYQM& zVyV2>qs-MeBmC@FjJ_VZQFpbz)$jMMTY{;fg{F;ODz5NDo3L%MJ*kJ}NU25_2JbX6 z#kz95>jsPT0wSA9?}O2Y%3aXzbak(pkqM!gcv7xHKGxPvb{{C@1Q7#Dzg}1z4G(JF z=X)QjV&|tVez%on7FvsOAw_GAmV|;c$|z+Fl&G%_;I%r!Mzl%I%aCLt$mLlI(!*OR zGVW=LHHMag!5OtoEhQ#^&grZx@)qrs)47xnQBhZK1yCGk>n%20E#4P7-G`1wIYGEa z96+On&2wQ?o#Zx+(?{6Dg9|ui%)h=I4LSZaR)I9(+rC>zXZvQ-0T1pOBXF8`Y7^_p zFDN56#7}B6b^%LgN@{*zCJplX+~lE5Y03O`$iqn<)GRnFb#qjZ_dYI3hc>cU; z-s#b>kpQvb&*Ntzb(1&F8jfF*pLHB&)LzOQK_-WviAY`~HBK8HaYUwEXJjS*qX>U> zYFDErlOLr-8w|+aB^Rytg`_E-zT-uEyBEIJxy|H^fAWcN6Z{kM)ENJ(+kh)QL=nAL z=l(-X4VWYRi$(>Ksc%0FhtdXo<+v`Qf9K9wejD*Xx#BDwSNEjE6O{%8pH)^vL1|HD zV!nH42eJ}E0?M-txJo)oW>3%njil%J;SzCKb}%l|SqCzJBYEP+QO+s3DNy*~#L*EK z`0u{z>&H44Vm?!td?y;zIRnL}f@w6awEsEo-(Lqh|AB96WywEm6r)BM7WDHp)x!?D+O`3YwhKpEu#QkP+PkVL=j7p9Zs8i~IxHzE!L^q8^o4Pw5GF zSV0%YG7E_jxr(@@RlUX731>qM0id;PvB)Tj2-sPkdDp`HqN#-ID#hL)?SbzcWD7V< zKc#<^1MAf>&jlW=3xz^h45WcjbTl#JeYyg{$dS{& z6^=2nPc^psVPQcTw`MAa+I{5@ z`i@(H%v9FShn={~AChNEps_|ZZ(P?%_J(!s+seu?aI5-$UMIj<0 zy12Lu4Gpbg9vmE8S5B2ta%-z-gnc|tQ$_Fxi8$qFI71bpxc$TIMP9gEwjvIS3G+?5Dt<$ADUYSH zO!!u9b!w4AX_}e#d87zIrlv|rM4%S^gH2oZ$J4j-boZ0$J-arcKNC%r*FZPdp>>P@ zN=Dza+J+5J3(o@ahYSe@9zs*!5)$ma;|2~j@wXzBZ$ul0V=D4enG&vy)b^aDy0rG! zK4=+2m*k3pGw%%x%4c-Z4#Cwf5-i1XhIyPfCIXR3WQG2w?_sdq4yWde-7hGBQfc5U*}|| zAG~WW8oebD@N&}P!saNPVUI%^%Anve5pX$?v&CY|gaQkGPaT-SU*BwH;k^N7Bggl= z9sEt--Q{{;CY2$c4Aw+3IXSsfty-9r|IfzFTkZwNakAn_43J90jMI}C)Y+B6aP+|k z)v09>W^PALopZa6?izk_Af|C`Ee_l41j{1@1E$|l#+*sFTVWk~`z|vx=H)cIPr~uC z=FW*XB>OshgGc_gFy})FkWTjnsM~*!ZX9x!sz3ns+*Wl-2nseS0hyi>R7Oa$kH_PL z*xV=^R+B@MWq3gcD2j`dLnhB-2%1jJsz*Q^@n6t_PUG2%gTqk7Aip;|P+Eno_UfRC zjrH}~JzX79tK#HwJ^k6TXzgWlS)awibSZp&HxQQW)TZOgKZ`Sgf@JKdFn|Bcmh6c< zWlRrAadQH7qV%h?(1ZAdP_SWzJ=}Q}>#h*WlInGrB+sI9$GA1xk;W$84?1C~we%y3 zQ`4NDDBgk@HCQ4;IP+&=M1R%@6NZWq5>aN|uZamz#acT^hV*HI%yE-Qpy_OO8V2K* zaCrX7xSDNw5I#l`N^M*voIjWETyG@L&r(|JmiH3MZSdw-sCfLoON&FNR zrYB}9t;nD@@f8}38x`1H)c7iFk^li%^cpvgCvg$dv}yqh%6hS$WetFP48@Hvh#T{} z1F-|NXxI;btFU-TZiK(4Fb^Rjo&h$iTQZd=8c&1BBtSCn(60uOQ**NmMw6I71%2Cm z-gsi9q>2tdC*VM)h>|Up7fX}R$C^D!(c|V?YGjO2LSR(;yf>lmb9WeDb>VIIY{q|cyy+%S?%6R!+Qm*| zSPyH?WK6WHaZ=jf8Zm#cqK;j_vIz^Rt!3@evXCC|mf-p;ReOs}h5(CWTwU{x+K}P; zwjB)*k0AN?*Ff{LC30u+UB@C2VSp!>Dgt6rTaU3`=q5RPjtPmdbJvP`LE!u?MpPwn zZ3B0c6jH8{iY!EHNEk7;iEfZw6vfa@LJvXOx)58;CFB^=To`Cl*A>)GU~nUg=QACb zLU**;xO}KssQ5)0aOg?}udlBl#!o`gv}#r6=H`-LzMRi@x^0=|%E`-1q!KH%CM2LP zpw(L*jQ4owczZ9Mm~%SAm7}Af1!|=*=tfMH6cy!doCN#4H8wP4WM(S%qhn!(&Xp^Y z>I;b|XJen^pz1RAz!?iPl-^byAb83{Z1x`apiS+CDP|;Ae(?L_ABLV178GYka@`Hq zTKNF)N$S)_O**LSXxr45ANjuY(Cd_r#KGo2An1-xcxz9@9Ow8)HOUQIGKce1;Bghy zcpi4ur*7#(KNLO@9ITy%sTnkcS;{)qu`@j?seBG}NbcYl&S)!8F|y%!3GXt6I;@9TjDP=xpe6eSCM z13kL_^prw(d=49lc$j9;^m>kojs9~ew|5R(0?=O*%RUN-2uuCwI^<9k4%AX0a;|e8 zOECNPkj`TEMNSTJDh^P&nhPgD#iFC5sb)cZDA9QVbWP(C{i1yMV(NAKO3vHk@$W+P{MmQ z8bsfgJ4&z`B~g5W1|xt6z_{U(C?rY7%VzsSQ>wdU$jk)pcinpc?y}MJtTD#R&Y&n4pHrxBD_&b#dE|c|R zQ8*f=VVx*u|6q{?Y%D;o)$Py5~!Gkq@yucp1O9_if(d!MF^IJP`q3yDTzGX;E3O;7qB z+YZo5dmdd1elLbgfZ1oy=Cc%KWZ)(tsH&(`>D2EYd}l1op;A5Gtb8aCi<~(G+?AvX zkW?t-4Eko@C&$-D;WHV&wmDFVWbk`GH+CzwuwEvkkPfZx9G*TVpvu=;?rCR0(iTH3 zTMxHxT0?3#DzX7w-Q0wLZNZ7}pK?iW{s2^`0!X`Zqj^V&I5zChcS2d-?`o@Rz0Y2C z-N-k6UfSioX^xDDc-%$^4o@|Ip3&;J$7OG>%+0N>tR$tSX=rGuXlS%K9*id>D4}P@ z8MCr-Q;9Td=@M|8TU%RO*p_p-9B-KMXWsY8Grk`7GQU6gPJ5pkNx5w%-|rEX`uur! z%58&>j=vp~&jFgWPOY0MUekP<^8CRP-Fq?nofjZay=-?#uw@(qJ`oans$Y3K0E_~& zx3SDF*KC$tyTzKCkx{}z`GSxymVhrrbZlXHF~9QHRC=Iijb1nIfzoY|n723I6D~)3 z90@98$EdbhNJg}p<}M@L{&PiiZgfxv;$a(rR~H4w+WYW;YDAG`3!WYC!-cQe-PyN; zhu+@X5dppD6MYsU53;>s!7PIM`YC!&ec6nUw z4gmp%E&#!Nx#;!X?(;vIFD={?i^McBHg00&SRNjs^uBLA>U}l&=?9MG`?@#b`|h+P z@F)E)_s{ z4NCZXd&@09whgRGqm;L_(Vj$@2^kIR?D^YwY>CZGg$1})Hb zo4J)&nhFTXyzhPE4}m{i2Tr*%?Ju?kl!K&T=Fr@pAwitq?yZ5S8#q+yz>3Ps-_x0) z4F$n=^rCQHm*1fut(x`m-LD77A|fIx#>WBk6^X@|V7COA!L#{B^)0g(TVO1zsHmu- z0d7pFbSj5yAat)yg6w`6mo{-lJpt&ey2GDDnOjYYi!bAX{}bcU0oXFXy1&5jM$^uR zpYX3&Kzrb)8>v_F5fKrz56yX{_zMAnGFDdJ z($dGDeEbG?40`V9x%*ms>EFeo5B+0iKM>@l*!kS-%KJ*+1_4rj=I6^yhOXDp*r4xa z(AS3rolx6>lmwa-e^U73`USuNff##v9bSWu=1ZbI50U}5cm_1C0kjJhX1Rs6MWlrXUW~ug$_$41dE0X-#p`lDkM=|D`1QRc`Q_DSR_NMD_ak4EM3EADa`! z7ecd0M)uMFVEIF$!tT>~M7)cQl*v0dIOypST7shQt;-986eh&H&m6(FAwqt@LH*K%hEK5bZ_Dm`KplMKhQrnUom6XIyA(nx(88n`^AYTKCPP+`AM)1V zj3YpQNWK41=`l!{!h^@Boggb-ltGnU-%_L-j)cJ5)ZlyiUAQH1V{3>4sgTwnevf!d z2+6i}Qdo7EV#Zb*$7boeZ4P(GDjgp>eW|T#Q!ZwV!#Mqwv&{cB(wDiYpr9ZvE&4D4 z@r1*Ay#uk{VQ)AnC@5)v-)JNT7)P~uINxN#GXzjicR#;fU|?d}ZuNLi9xq;9UDe|m zDYjNsRf&Wmc>`t~i$O+x6mb5l z9WEz7yT2`0X*L=TMFc{B+9je}?e$%(P&G$)rXNo)(~3gE5(dmT#NT;ysf~$S{E$uU zVxto^vDkxeO?~crXm0YnK|AcyWb2L?&Ao?4h?8rlG-nmG+kB0b|4s1J3E~8EG&6Y1sE8gnNliTJn}!YR^kz9<+H7Dv z@wlCfN+|)uBi7b*(sfI<`nd@S4c_bb zgF!(qCje+8Kbt~G zlM)eZaSt`?v^k!b9U8_X^ET&+W35$?qRI|1WpYv=K#Y)mH}-I$vwZ^iGOebtB-Nxw zcRr+>mL3{4R1Byt14v(>LI_v!p`O4zl1)4mt*7SROwWqoFptkK`0!GYlyC8~HN7{M zK~|GeUnzD={faTQGq+7+c$8*OBL0SLYN50Ersm<`8TT_}venfgw^pBH(im$icl%iV zOGt?T2oT~ZK!`gs*800%vnJBhk8sT7DYF2Lyi)PHPH%LOh@l`SE6MFuP*w9W-+G_G znum9~!L6`r9kvygXJKK;_ibd*<@dbY4lde{T4-7d8QwU}Dun)IQl!V*WhY=cHZj$n zm6GFlztJEjgLJx@=>x(Dm*#Z1wiXuFavV?oLAT(zzn#CZkG^qZ$c?lgQ1(enoy&FW^EkqP$!v2;jqQ4U$BIbvtphS&Rp}vE>w-=H zNEsB7HMa_I7g0#gTxWdgT<@(SVPmdyqv%fKthTeOF->R+tD{PKa;K*&1Ae7ga(v(RKoUJr8ro0JpXyJz?u!+qd!9+H3H zKykZ4n;N3LQfOWi$#&!1JL^ZJ=2>31QrCxB*zcq2W@f2{t8w~xQ8w8hmA*ftS@Db~ zQSQ==oa2e73nA{Cy(WU5vXDwYgE@;5lR!z;!OfG2_Nrd}*IQ%j#5h8ix|y-kbJrH z|KZAVLTYc>s|VDK@=TTEy>P$b-B6y6ROxc7;eUDTz|AbG3x2slq3}HQDiR zp(UKXwV_HuE>wf`@YTB6#e$>bse>nfk#voV6~WFXp7=xuO_aIMNtYF9V`9uhdZ|2s zYXLq%rmSTi6p5eT+a@}ve+z3#{09O@DbATQ_#X>PEvbW^a*==h7P(nbWOSfr@&i1I zgWo}U*o}`19(8UX9!lD?PXg;f9|3FX6Y}mo4LJx#EK#r!-ewU6_Szo7WjrKEXxN-~ zZ0)+9?E73+3$%quO}KNEgmLz4uu5B6QUOb16`enJq&_)AFaH&w7Rrq-oMp$rFQX4lcgHjidLC6Xv^UAZnzF~J&qrk&{Oj_>nIsBjP4ZD< z9DnqHCY;svh(>F5h7igJgj4|(BfvKYM_AE8u;+~kn!~t3{L=a0Fp8MnXX~|FB75Pd z0weE^>{(z4s-S=*B7jG!kaqJ5MV}}_?dR;s5@=hpwuBRkx7jt;fHg|^+Qb_$-T!Pt z>_d}>h*A(MnQr_h#!n%y--1UF!wAl2S|^hOL=6`w@K}4Eqea;0A-qsZ0g| z{HQDbVa{iy-CZZN3L&PRW7usqz(xTa?BYO!{t_<^cx0Q1m_!$Pe+Y@WE7Pr6D$LbO z8NSWu|N0abwm`7Es*u#e-7BnMAM7U-*uOWYkw6#&fW}AYzr1;m00rFt=MP(8zP{;* zzr2r?-+jZqlmq$Y`XRs`hG_@{><`rDd{~1MEgJn$4g&@m85#!3mI?84FLt#a2Hwkt zqF>+&bK(XWzJ?5NL3JS!8_~A1laV5ie;1t9fjs8I@>MYU>dRB)0TBDP8y$>@$CtuvkmyeAPki$;H^ft% z`+hY795(^e7S6+NPraW?IIn)zq6aCPT=uxU zwh!mNYbM2HjN)xJc$P`jzih>6yur|BR>Rg20WPnyz|c_YlNCC2?={EY1?*EkN07?@ z;wN>bb^CVgxF5dg&si~9PL;8~H*usqcH#~_LQl#XUp%%w1sJXb+UxZ+szus%6ku-#JVvl*FPrtLi<#`LR<~ALdmLjV`yJLLrRz-ww5$z{|hYdU|IYO>rh z2hQPf<)MX9;*&zn;GuOf~&DWDo1T(B)5&R#Q@EjBiRn#3~p*$O*4}T z!C{*k58u*o1A{X#GN%Kd7J@SthAbL1|L!FUf5TuZdDB1rLpep__sFog48+!pmw82w zm-UGqVySHCiV#e^gv#$x7-PQ1DQ4jSXS&r@Q>Qf?8K>oWD$U{V&T5_2PVWD@vpPGP z&^L+{{8lFk#Tqg1y4o-#Yzz5}?4SMnW)T!B!~_9>&-S^6Wq5(p!iy16VI9WnHT5%nru4e?J0uY$~ZULYZk z06TvKYJ|f|JFf7>0#4WfuJ$#CmXM$N#5P2@&_S$l50*D6uuQg+q%_|`Ctz)yOQ}zI zpzbK8D+0Lw zxs%GfqOB%^v-q4X)D;D7Uq~zoIk4hPCv3hXQNb+Kt&*F>|IE;aIHEqj|G?aojFXLK zZiNm#`Euh)rw)SRu5ImZMPe!dYJa(GhDz zl>pb$tgOT@69aSSoLWVQ5k)>1*ulBcGN;-4XIiWZ=AjwW%&+!Dsxeh{X&HiUc)mas zfW7^qD0tz~(P=o+xHT5kSbhcav)Gx}3DE0H ztzTgLrdxVUR*2st< z2e^-8@RrDR_$K*N3}t<-aR|zL#RN}qC`o3P!tyu_cOJi#HnY4D+@TNGBl;toLG?e1 z+pNd@>u%hXk=)?#lERRFC?YJQ#sz)tN3)echTToVmYf|V`yN(<0Z%K8Na{7Q`iy<& zj4QUJ&&U3Kj-Q-)JR1DBRnoRKq+H%A#jkcMs(nMOTzY31Hkg zwz#hsWqQN7;YO~yi$W8st4F^Tr{fiz{8d8Pv#M#-X%-GKq_Z>hPtN<4K$GI;o?DiEQY4MvB8}$4`X% zVDKg^NE%evS!Y}z07x)tJN^~x^}=^C0``WE*}BNN(ufn1^j8i3;+TUO2Ezc}GITIL ziBJCAJTGC8q5f1Yv(d^aOy}lH=3(8K5meM_$WXG!4$Z4VpX15UPtqYj8jzIo=t_EK zd~{^awye3_{U^crsy`}-w{F?W9an5Jk^sHE*`I>X(ZD~>kf4iC)TmA@+F1aL2So%g zz;cc@7Dz9*LT7JwzH03n(RqVHo^|VtCsr0zS__GEg4!PYt#ICJGMjv3L3!=&NsIf& zh2x|aS6WleR>O>Iu0F7F$3MtxV+&i;3qYG12)g1CjD0&W8Y`@N6K)MTR^eWG80--o z)uSZBYmI8^CF4kmV!6+{g~KBGWnYQR6y65%+|k|Oe; zJHn=w7fGz>LWM+sfk}eJr67T|TNhl01pw+Xrx8oPiuHc)7FhR6j;I~xokzSW+y3sM zVW;CVwY4T_^rktJXzwllbVO<_O|UPd3sGVq&OB$^U^>{;pPlS#MVy}yv_=&h5L<4j zAyNXH8&j{y)V3huEV#`dk>BR&*c9Vi-v#?Av(vgL`5Wb6aFvoIS;dj{3Bw zRIvfUmNjk4(hMsE=bz9N>ZL^KJY%?8?4C?lcVlY%ef$;Hz&n=y4r9{9gJ@&)O$mX_ zHHMiaIujClWLHa5KXKAb=s=^5V?6Cn6k7u28BJ1$IE;_f*z#M*cf9OhCo`J;-(g;b zk0yLoM}wVV%-D6i}DV2VF`a1A*VbsLrlDmk4QN zgGLeWA`^S%c_U!wzxQyIP6>~N9akTaVL=5~wv~`%N!UTrcmt6u$Dz|m9Y+76&SY~? zh^-9z>MzMer-w46pu=~BrJSUgmTylKLY+V*gB&r1Y8Y)Cijt@_e2{&hA7wwMyrSkJ z=0E1Flkt?m{!jY6^piN1?TH&q$4W2+63ovRh^K88VrY{!^kA8&mEb;1j}}X6^rd%K zlYIaK`1$}JMH17Hn5@nNwypJ%8E8JeegG5^jn=#Dhg0%gOA(AE`!?=BjM~)%ar}5- zPn8wl1uJX-G2}K(z(f*&}a2Vy9U8f zd0p9N@NrRv(1!MflI!zf_!6s91~gDi|36v7mD=K+c8Pn5c@oCDzg%iT1>c)&sJ&ql zOfmkxXY|U?zVw(Ju0Kgn#p3@2i}4>Bn1O$<;{D2ox%T96qj4qqM?TWHwU4>QGjuvl zqXJQQ7-%wU@l-0fVnbwkD(euj{adHIsd2HbOtjDeaD zRp%*EZBNNV-2aLUlAx;$u|#H(1^0GM@?*=4U?ow{B$D*x#-_v$9)SAKw<-K}elNS3 zLvB>WtD#en3RfjMn_ya;nP4_gmKnfkHuGNaAr)sMFXH;+phi>4ZYr&#aWXao8{U$f zMCGdU&}H+I^Gx%-7ExGHS0* zd?6MFexrl)Cc~S5IFeGZD@qFO=ku!9KU-kZeU(ITk z`2YSs^o@C8+ROpi|6Ke)B|7}K1e@suCMBQKEY`w>4duy@7a8)6J$^CL+d?KLKN^BDXui;8>NTZZmRNV&Cse z1II^}v_{X26=cj-J&XA4Cn@0Lv9y+eSV4%u669t5XkEn1HX$kt{-mWWMX|0dyXqj? z`Q7A!1y6#hla34GKTZS=o^?$8so}2pp6&z1N~3X967+-=OThjccBvNm*GX|>r9&cz zF$=zws&NF)vVtxIlu_hW-d-JLLXdvHF*i;qIt_wqj9(HtcJ+Dx)@W^WVm-F(&R0wJ zg0$de3ZdXzt zQLtj6_QU+oGbG#A8Y(}B=oj~5{d-S_&cHuK>3<~(qDD2(H1e~@DHhCs9zO7gP?jw* z|M?I9aV`HtY5(;%|8GAmavj#!Hy!nr)Or)M0Bh6wkL~ZM@mE5;#QFCgiGLazU|^z< zqjCL0!nZ~U_k>z{vI|CmhBu>Vl_JhvE}}op<|D}${Q07>`bWtlyaM8WFdcqY;>_a8pN23nOq7&$5gfk%06fq zd8EL$-EYR1NEwbz2K~q#12!8;U2~5a)}33}0}O`fKVEVzM#-BAV$oU}dSSGZuAOke zJ4slEx(srdqs^T_QivOyRyN6@4Wflr08FqOp4G`}D7;D*H! zwI_eMV=Pz;cK%1yP<}QVoI+)4e1wlTNvYUK%*33+7Vz19ymC^<@6o_0uUklHw)u59 zTSz&r&1=W}EMPdkws0RSiWp9tLRecMzm^@+QBgq?*6Sy5B^I(^i!vtp5=sr|*ESFU zNM?Or)<_c;ntPMRzsu?rF%r zgnT}j!R7_lWJx2ZBVhLWcr|Y-D-t_)_;vLip;f8P{tuorGxn$S->M-eTVJdU$j?yl zCjhuAFzZ>(Ke~!2YJM!CRr#ke7?CJ!z+(NG|4x#yLVcZM zvm7RBh!S8y#TstEYmA^gJdE5{(yyX>9I{+W|1(u_Q6cpk6VsKKnuV^eLI0ZOJSGui zo~}yOXpL$w;qlMPFt!hjZsN5%FKl=QuTjBPM(RJ(Ien%o-o~I)xYE*!K05u{t`ugI zR<`I5;o6g!UdsrMf#2i!k;!GV7R7~^Aj9&7qO-cxVXXTR+=qqRh{Zb{&gK;Zwpf+z zSGPPdKm{k+RiERD$Vav>rx!1&hg+EIs$m}E3$$p|VFipOgV;sMxMW~3>H3TASgdT;h&cR+7U5X!-C>{gz_hB3dv7VE&zPykN@dhZZhz4DrsD9SQOA z4hQ4O1qE{-mt&`~|Lsk(sT$+!v6=CD^k({1&8sAvyj9b$#Z0tNVsXC?m0BnDH5pr{ z34g@yzD#?*9vwowwX>wGm1K`L!KZ4PMUgXC*C^!tOgsGk-F_lnja=qj#ygu+VU#;) z?|`I3%%am-Chi%HNcA3DO-U)oEv2S`ER>mG8~1?5RMH?)vcqWImQ1`Wl-h9*))F}) zHB1zQmjz8CI$9qFxQ{~^=O1B3#_(r^@rRFElbDWqFji^8*mxh1-#?2j5YrN;NS%{b zD{>B~EY=4%x?-8yWVg`uj6LrOMn0gPC~?T@C2u&J4za$fRRj$PcgOHSO@N|1C7KXlUpzBfWoG|ms-cC#>YMzc-Q5IJBiSgvzzwzxQl}LGNUY)b z72J`O^M^@<%TUJpGbqHBM8ai2z|~Zj0tBoiAld&#-CG958Aa=w5eUI0NN^{(2Djj@ zjcXEI8iEH;aCg_>t__VtaCd0j-Q8`zoO7GiQRQ0#_UVE*z-~B#K zIr9W`yNS?@}K)#qTuDo!IGO|>jak7G`1(^45g2WSw34=X7e)U=!i@)@Z%hoADy z8NvFCxN`KGaRmuIYWzBdg}tx&d6Im}{{T--R}7l`lRgIcAPT*Tw6@Lo-!ka!+qh7~WZ^RffOUv(+m@ zq5F<0bGY^8ClF_caj?n7slsL}&mBwe_Uih{fJ*;11C1b>bzA?#S&*L{3bJu*09JVi zW`0xyq+88rcP{R+OR5j3JwS_L^v!@nGB-7L zwuYq;qU)K@`g(xLpvF*D>w@FR0)umU#eF5Y(^1@6Y*~T@hbdUvxhloPWyvl)yu60$ z91$tZ(8riJw$o&#;MxLu@3d=>9tHVtHx@pqXjBCjS1h$R#GIgBkPs@5XpM+75eXa|`8sMEUxKSdXc<>hZ-GZt{h6RY&q$XF z-5gaWrSS_4v4p>2%*g<_v3wR{+)p5`M3H<`6Ur9@h~pdVfJ@)}UPT18@dg5R+e7dN zN(-WY|HE+FR6DDP-e~3fULJ~NelbIV#!y-_U928e)G!_+9=C##_h6|14E4lKK(8W) z_Z5aVI&$N(Vz`L?yNbD6ZZ0a^&sm5YC!^h&;m)^48Ufq>Q*{_qN1}OjXMzXkcY#X* z>H@l}g+qi48h@T>JZ7L3tj2*_W5f$w?r&x&gn-f#Bf1L~buFjtN08qKT_>cc@`;q5 z5HgACAK=!v1u9ezg}_j0)zb!g%zjZ>XEyMh1{eiYq*%p3)q$U%`xo*ZK0@&}Y(lEa z;Af|r{&}NCUs6G}Tp7z7aPgqrGSqRtrh8jBxQ0w5gM4^oQ!N3ireq|8TlrR4a?CcE z%E2*g^B5KtUc?l|3T8zX!6u`%{Hk}t1DBPm4h77AZ^p93@CMCwPk|!;Tj8ASTp&a$ zG6TwJ3jbUcG~2a^b)Xwl3e!Gt1}E{mp6gYsbjph9r>oCQM4Hs$Dd0tt!o0w(dGt4% zXKHmHFigDqkx&7haeeCl6xQG>(9$!x8=-}WR}X5f*z()XKlVvc^v>YCdR5N{ z#Jm1=ODQT!jQm%t`>!!&5Gb&I5c{r3LR#YIGl1W*Ry+qFA+gIXfj0Q7KmSp#!97^# z29Cl4KKwtRm-&A~gY&=pKk58Zn3zj^BHq4wwTgs<2l!U}2N{#~@fBt<-!igg z@Z>V}ew@bsj3Ti58vSRzz&}W*&%1~qV7LAEeb)c^`=WrW&VPITa(?$umh@k*mpA{K zvj6$|<^BJAwCVqce+~JRwS|R6FCaSedF78xz(WC869ezz{_{vfR~!jyDmJmPv7xK0 zD-5iIAMo%<*vu3uROD-TECzo6%o@G`f*+9x;0-HqkssiC7t;ED1^$Zq^W(SAJ5*B4 z|6r=N|5q1@iNaqQGHwTqtPj})KHzNf55M|v@~r}1$iP|Bt5-qq|C_$;fAL|iRi3F8 zxH}TKt#f@_*=_lIH1X|U_4UU8n8?3If$j|uDgHJ0r=qR6u))f^7M7O9g{3^Pacy35 z+mF;1AX7t+tEoB3w zElBp&n2nwk{(o2<3;s_mRAop!l!KaDB9Q~)eAvM1F4E&}<$y-iV1K$BZ}jOrHU^nF z7bib&Ctb*4YpiM!gb09<=Dm4#R-*?~q3Pb9UOfX&@H-&6kdP>pVm{yyW5d!!no6#tjYJ^A}nE#5lz;%9lyA|Wd(N5t{ajipA~bUh)OCBNmGN|by_qr^Rc;`T)H@J>#SlfHIg{Ao%f9v1 z<+HwzNENZkb2&F1y4~UYYYJ6WUlTXBFZ@TiE1DLxuDcwluH-%JI*4|9=w%D;{0I%#FS!^DSH&%)H<|YvFM%UTtb~nToUk*+uLg-bQ4vFs|XN#c($Y_C{ej zif`(Kr^M3`@TlP8>GEbusU3IFs0VodfFWZ)ph~pg_ZZ7fTgD~%;ojPDIa9Lv0eRHx>>dUUwYOkrl6)B^XRgKLU6HoA)kP8+}qC@QWcy`{WNktz0{yqSG6z#DJwv)xH+bEg^}nNmYATW%Kcm zQE;7e4DpDut)X_fAjee7=HmmZ8)GZzB7>$*=NYH?{}p>0!gE)(z@WHR_iV*%f_owy zwyxHmK&+`zI%v>{CCJR89bLWo)N$ml{1os;Szpnn9j1S~v2xme z5#Pw&bJj(x-A5IabLRwP=iX0+7ACU)FryKlx6{zvvmch@UF`3Er}BZ$iAQiqQeu>P z@^cpw6FCP%j{F>SL)_!Xb3K@>)%u%WNm_xBq^O9hKX_GSQ<* zIML#jpKe$AU-bha@4EF+V7MJv`)scE(|1MxPq;BYrg zn#SYTDG7i}=tO>*%4PLudl>oS3;tGIV(XZD@~TI9rRyz$#j2_dqgg>}zky#tK%wdY z)<4P{Iu)lHW|J2xU2);;^Djo=vxeIV3pCmdh!#xF0y7{@!pQtGCT_5uEq1i|fsxc+ zvb)E4Z;9`OSVO1fd3ZL~tTa6N3CVo2-N8^tcdL14^qVSGk3T_ z(wdwUdxRhOvo4m${df-FySYFjgW9vxC_fU@_Wj8ER*xjc6$;5fVm?Qu!#&7H?u}Vm zZUmML3RV26Ey7QiK$_XvPRx{T7Vwsl^L*Rj_tn`G?gD3DCc!9r zEK^2@mf<{(t+Z^0y3R{ z?@t$+zhDyn6;h)?c3`YFCm1OC^%d#h$ra&>4)fTW0)aoOz&J&XG!{Oo_#X5+ojsMZ z4uZ;_U7U(PFZI!Iyy2-qgM*4F8bDY7-vC$fm7aURt_R$j3ql}2Zy29HUmiwKFL^u^a$I|w77V4p|tx?WhnbVT>O#< zO&-3iP&eE@XiT9%7>BhIY-^XRZe+s9E$ev- zpbf3-aw z%#FP;0Q$r+hV8l~u1DyCTS0G*Czqlj_R1LTx}3iAaUM7B_SIqHh44%2^??+N(53mY zZ`=**D53_qpwq`Is(;qAJ}3WTf%Q|H7B56$`}5 zw;~nQQ;BRcmR_kPS~LB6{@a!v?0WcJl{)_#$S0W8*(yxw=M)D-Rlx(04{K(vd>%a1`LeVs)@jPtPzoFgVCS4&k@1kZPQL7^cnYEMv(r+jrzme@~!jJU#DD!LVW`%yuK2mtIw1nH0e6)0VMEL_G8EpjW>99d?YE=Y{RTY@0 z;B%@t>WOWBE;K%ncj3b<&vZ(wwa1aHg@h7uS6r|Wb5k^QQmO)!^fVKzN5be^Z4<+T zq@|>W@`&m7>7708iX&|62U`}`yEiuZ1MeYgPz z>i{<)15x>8PWa+MSm|YXl-cv)Q-k4?L63`9jPuKA#p1(LHj4*j_qal{g}t@5mBhu? zrbr+$rs{Mlj{1Zf8}|eL{|aNOAVmL#^`X&kU8XvcJ;-H#vu~t$JU||q`oDzYvkZB^9sGt z*4K<*Km8QO44B9tTmA>SF*oP=xw$(c2=oSd)Qt0J*n#}3$O6xZ3+(E!#{Z$9h0Amz z&JL8{!e-mP4d$<|&=WC}5vK==9`?0GC@=E$&`(P5o7dP{AwN}_d(s>SAS1G89?%O&os^++r*uKq5vX0 zA40Z?s~@*fdUPgYfX2;hW3XfNh#x&4f*maznIZ0^)BiiCCrF%(cVaqN`mwaS0<2{Q z=J$!r`);wme=%_Ur4RH6Z(j?qSkzdJ@@uYZ!(P!U)yj{GM6UcN`WqhGDXFS94C+*s z%p4{nHg~?k8A_C+Jq!=*l^=#v7eV!I`Ar(gO2!c5U9)M4JEB zC&k2yrKEevioyNJ+lCu2;R8Zp`IloQ7SEke^;_x)5_JVWPMnHB<$fOwu9`l1T!AL6(CzVpRPyrZ)niY|EKpP&y@_p?-f$X^C zvhJ?MBjJb*A^xKW!vu(VA#61}5?p|YUG@4<%w*!D@t7WxY5-(^%SLHQ9(xQ8us|xi zvOmlh3vjOfMLa!%GN+XE+;PiwV{Z7EOs=l38JWo^XnD)f*%PMJ5GAY2G%zrDb12N} zwqCM(_&1BvfQX$4uy-wlueDvNEoi7hl*$DKtJ4+f21cYWuvm`Hqjm!^!g@))`Q}gB zqI~LAj~t~WDyhKdwRDrj9hM?#c_cCMY#TBil;_cCD5A)o^))S=6CvCg(fV3XSm0{& z0jISh^WK+k0?J^0b5*q<;+B-3rK%|a^s_pUM8Qn-iv&`?M@qxRQ0k`#b&X;b*e~&OeX0Ws zB5Gz9n1y2wafSGWxe?Hglb;{KwKMk@u*Y^9C z{{vNMzqXjjOxNiL(5>*EwtiW%Fp+gDA~M$5-)B}#*T?mK=N~iJ_PDh5;1y;Gm0NkX z+ka~7d)Rk5;?%wJ57iD`8P#c7JKqzh_&uhjk#Vs+50nY1^d;3dB#eS?*?Fxb-L;qa z<4maQ8}ku115pApOUaH4V+CBiB7TGxgH^aCZTqF$#2xRx3(pEWm9}6IRY_mID>LQrPr9mUS$WVh=ufXUH#&J` z_g3O5?sRd-tvHQ-%5`rhzN(4(biHOl7Q1y{VO2jK^O#0lbzFR8COfgZ_U_awfEEo) zKiv=0=GYNeO1`@fvil&7b2Fc|dtYpc9ZmmXloK1fTRu~;?Bth>m{f-ToybTCdLKeK z&u)iEr)0!|Fs;{p8o+3;QKEH?kgoA>LRuicELzu`D*8;CKe6lICHVOU^r*2g6+kS7 zpl;-|_&b~aFSV}Hw2GF}xthwfXlm_Zy99nOUCCqt)-K42FC`0u(WWp(j+oYZZTHzk z$wFzk@0h+Sd=w>HQ5$cod93=W8>A3%R%+^9{Oi5Kb5|y2QFs(luz2o-Sg#6I(clQv zocHEH@s*A^MHJBe10Ec4NQd7cp#(2= zH-)D6P2$fQ{rt+uo#}>>7;yIH2n|CODzpABjbSFgpj=qbVnFzawYh<(l&+ICFjowx ztZxLNkF8RPIld1s0HxqNC^c1LTq9HShwJis_J;x`Vt$RwmuKbEJOJkPm>zZ_@MA3y z9XG~Dp%|dv6Us$)>4$hVeO<{a4c$|N%c|uxyW7uBe@H1V4!t<<3ss^eF==Vhi_i;6 zO^Ff+_9w*YCiW-l)&{dm&5S{R`yB7m!?YWR)e2>4lJ~hFU+fQ4n)Y%|KEK8xjPu;h z6@T}oo4)Yom1}>^pngVUa^EysKC=3jNf*E=`vQ$ffgk$F#8RrD&>n8fVZ^^NiXu}! zcl%%sc>QrKCq2Zd19TV;ueJ3&zl=tddOtA+&w`?uTvymo6f8~oC*>%QoHAeVp`!?KQblj#Ij#*AGuWL*U;E*B z_3m{`8YZW7jO3E9+aK7Z=+YE!pRm3nb+Gx#l>)9@~q;lA&uO@M6SK~ z%p$ZQ<98|7MS=vhJ!^%NW-G>W;&T)Qsj~S$Y0IZ2ct=t)C%!s!1xUqeVxVXjjh=oJ zx3sh=DzYj?J5yO0>x!j{p^Of?{00I!XuBHOc&+6V&z&&Z7L{6-l}D5ATK8x8CK_ZK zR^KSgIfYaI8qdHC<}bKdt~z?3(^O2E;%P9B;M&UPPuA%l;TiEU`xj7ZjGQa9M>%om z=UpXkG|R;07XX_J+n@M1gPP@{Ip*!4@IW}I&oQ#wFrbUle@Z!8@YZ?0!Gj81UN(|G zu7sStTs?WCE$Xa{4OJA&w535DP4@Nx!?bDjoE|*SGu?XAhvT;vH!nW8)<6eNSucgO zN$}vvgxV~o8gdzFw^J6%v{+SFRTK8;$&`IAuR2maJ#B%%Nhj(AdRzPnG4sRkzpKaZ zhqY17%PTIi$zL@wj*BdkZ9(==Ac)CYAF|)NxS4d)*6Et?#BPt=@A4~rabb!602CLk z1lyad%uG=VaYyzu1vWIQ`4$jgd&rtbEe0Nid^MxxVj?K?2#2*j09nyj81%?jer z)|+FA0nN)LE9GFxwx`EBO;UYVnqOS-(i1=>54XeuKU_UFG}Vs*9OZD zqCGaeC*A9Tu%Vp*{X?P3ADbl#coQ<;dMpBisG8Wizn$#b$YUIbV6Y8L?_lPaQS~6v z=zRowDlbB*z8Ofz=jl{DdfoBk8_mU^nih#Px3ueZWrn6CghYqlgnxgZv92TMFkfux zW0&M4)hj06IKa8U{d{^n+t4dD$}8lx9DEeWKANA9CQDyh^npb)=j(6LcSuCE7RBi| z&Sx_xqYp^sbIi*x4(`Jm4s;wqz*%&v!b#)+wzA`ta2}HQ_|Tt@T!`@e*ynwqSLRC6 z@?m=AA1v-(pXmmOuW~L7styMfvz+hsy4tb;K7=&k8j9146Z4Dr535+vyh`LUZ@E{BMmZKODM+KW@;i<_ z?!zlv*cKrbq~>T{lM!6TUD8;mv}zlYD#UN3xg$O$4tCj4zxb$78yRC`BywM-sD$UL=Gu= zaBmT|@pzw%R-d%C*>q~$;l*G?Q98*#;_m$Z3aEq1?T4>#wF(2~@`VDZ9pExX7ow72JVD#Ho)ordQrOfR7~Tj)O<1di3t zo;wqFnCKT9>KY5RO6GKQb*fkN)oUCK9h^`#>jC1?c60ZYEBq$is~Q%K!fAs_6v9n) zwm{9>d3b#5wpD*Ra z0?@wC|D#xY`7T;`$?1kZj z$+A?d2njE@_rpYiR}cxF@XJQ-gIB!s=-Y-&NzMhX22)?6qK$P35Bfg`fvIKAg`1cA z=ekm1eX&Se!N$WTZ?6-j(H=#EALrBl1sNob7x8nwsw|1|nw+O~^E&$nlLf6RUZ>_p z8j9DpFKJi9q&OaX3yG~yu~Vdv>@R~Ww`%=9cd)8uUk)jc+o~S6fr6KG9P(UKj?p)`@ zR9jm(zETmAOr5=9EKq~50EMbjXl-Tup_Scb1#g_vZ6z^*=)u(kmRcBMWl^YEc|13uyecR_FPv#lbC>$3P{RB6I(RX-7veeIX&Mox;4&Jk1T!Atgr>+ zu8c~W*9GM+ja2N1Ki-$mVd%_lUtJLt&NZ(AA5U2qDgrP(=7rLGRKc;=Zn8*Ri{G}7 zyxlxEJKhfOry4P#q6$#N6ANosJDMD8dWBd*E^eN&;w|e(%M7ys z*Tcdm6w%tjpdh_8V zN1$$IQ4;o8?TTkYU`Ee$x|9{+Y{hueR8PMTRGbrjlvs;=`Lq$(Hgwz0a^804J9HxS z<1DbP`SB?e*Yn7IH~J?00g_4RXfe`pnQUv|c99<92QfGQcL2z=>|XixfEjy68B-eD zhLNcxNZ7aBQk{|vutRSL#^LvjwOH8+nF!mqy(vtN(f}XWLJEUpfyRbP=HmH=T!hdU zB(Ce*iPVR-#?4)&ia6q?N1z8gX{PdO?z3ypLCZZVDf@SaOWmgY7NOdcQ0YUtPDAaM z+oeY){+Y}Dwq}PLYNc!G#d?1frhkg@qlguXn5((IO@3196UcbS5TE2rt0ejlej%q$ zN=WPd?c*hb$vP94sGQYyhY1x0&e3dYoB3UQ#WVW`NLc=3sPJIQ;-CH`g(IA{CP1Q@Z_8V(11!9h_;H`t(L-l z9%pD`#K+6?sI?quxlU@6(@ny7Y!6Di@HW@a**+$#nNfGwO`r17*71!72m)Gc7Vp2q z%%?M5@t9>ZBhp{k=o*z-2uz!%o>0(bw1eg*y5x5qUF5oBW_~P9PqrL({(?(+)wP^- zi0zBw{E{&5OT6Lc;yv*}8Ps-r@%$)k^l|3S-8=feJJWROS-;HmKX|;6Ktw6$)OB#U zxQn|e^fom$1>7G2cglT`s;Unf0U-g<3Ik}4zB*$?K0ZE&ht^XDs(O0S3DFI=Pm5x` zSc;i6W>$j?vWnEE6`?KF-{fTSr^|A4iyHHpxht{?>+`Bq%IEekkS}1i%(Klon`2eg z^|t{X>oGnZu%4a)4w=MkylIo27#n~tiuW(51DFOnm>DGi|LZfO%n4|VNmP2V&&jK; zD&-QSISZ~sUx}3EG=R1^+)5$ZK_CgOhRI3dt=w4pO}x$y65my?8^aGIBY-qpnQDJa zvj>HkZ$19EZy-8BjN>&?w9LQBstMmFL3IU*E)~t0PPw}6EG5iMIT{fj_42$5Hr>N3 zN32ceos-j4r^;aHW8s0Ge6cGyZs7Jln9vt)KF!O_Mq=98e&}lgYuemvTpz7SsOuev zuK=*G7i%g&LQqc+NNA39AX)YYjvkNWlv02(WHtBz<_VxRR@#K0rvUFW_Nj>C(x->( zGTkO;z*P_W>rz5{F_9}=Vw%nKY3|DT-0q{odFK6WT4bqWYbwT1* zP+{#8$XVU|Zf4Ee`cXo!sps~|xXa^Kc%;Dje7JX#(;%tY(@GG!6DPV1s|UgPYNPm-4Gp@_kk<@%7%-Kj8$h96%tDmzS4{ib@td{q&d} zfK>nvY89L~`T9miggkCf0r{$O?Z|)F(UE^9BxdkOtVj+#C#M>3IHk%}0U%TxeFU-bu4NIk$KdnKnoCTjAFY zXqvAS1J;OXYi$jm!iy(xxwgZ9g`LXhiC-GS{hD;uP%Or4uln%~Ms`ty#Yub1#j>l_ zb9Q$LtjyNhoL107z-(^+Y8=^sz{h(6JP9QRgb%0^-6o&bIW)=)In8H*xE_v=!TIx) zRS!a4@L5w`)3AP*jY6CItDCn|>+6dy|K(=Xpr-0;gaaZwyiYEkFCMy|(|M+>qc@AE ztuG5Q%O_J5Tr-FHZaaqvpIHyCdkszmO$OVfJXk&2pT|SdS}wPjUtGQJ3?iA_hZ7$5 zP7<4IOUazwfq^5Pwx(JKfK@fCIo7e#W38OJz&NG<*ElU_h7S!6QgRYDB28Np6jtTt z`lWTeBqU@LpgS=)rX@qa%D`ah4WATay>1=tWb8~ej)QN96c+5cYz8CeQXn2+faSRx z-C#X^w^b72e8{xy{c+mx3 z&BCUE9RI01SAZ#EjPV3kLo=1Qs5IkzjOrf{2&^KmM`Eh=w^6V*4&mpW zIl)i1By8R*Q(IE}k-_+^?lV2UMP|&n8H&Sgs%kP7iDZ~Xn}0FY9H&qCqF$~tcb0y= zgdGhGue5sXJmH-@%ghU+=X#x)?VLQB49t*-MWirH?;(%8^^b-{c>eIejE1jcI zOts?5uJky>>K98Qp0fVdBL;{dQp&2T>;P*_z-$zVdJ2lNvWkk5)N|dTc(EhtgMEFp zeWPuF>vnQi7sPC26Yyj7JwHF!Z*ootnBuqNIhu-TvdNq;i}$maVp5YV2I6@6X^PUz z)f+iPl1I^gmbtw6-N53A zcyw@G2IRyiYznstEA1n>aj-58tnwJotKbq!gPaEK-)z6W^fy308s>9j5|PFBljkFb zBi2s{SbekQY|+YvOnaSm!Zs3~kEc8FlQ>jGzJPK$n+QAgD@QF)3Bf0xJ3XaTcv{CJ z+C{V>$8m>#T1RtNWiauu8~tGM$6-bU$q!{ds<9;OP0Ni_My{T?H}3si02N$%MC_m(tBNn zFQ%TQT4)Nnt!y=UC7tz?ns^;P6xz$Z9C{l*E=IC=kqA$mJZY~T)+xJgQ%k8rD^uF# z3hD_5AJFc|Z(gs*&V&4_z4beMU>|aBu|V=moCzD_BGY7FGZF=F`xgAt;yp5C@(mbm zQM-X&zjJ3_$eDgcc1lOgANdelZX5@5&K~@3s5C!>|h-P+3Dhv;m3+pVC2Tho@0i zq1dG6cKZ|PV*4*#$Mt4fFqRblPf+Gl!zPtlK)&}1;B&rLMrirh>CmH{mW0wJ2cd$>>IV2M4G*Oz-qy7T+r@{QoD`;m>wksr zmyxm+k$ByEGw-y!vxkbs%d*AP)_BhY7iQ0`--|^KC7?;Mk!X|*j4oWRlk`H`Y3jHq z(dIt&{KiSth2H&qUJ@9L1deFO1YM}6pjjaaeoB9%89`ld$2=%G|0yp;RCF8`KwiVw zoqWAe@Xu^j)!mzmosyFBX}ueHXVlEpR6`Tk?0%55u$-K44essj0VenK^o)xwR(SNw z<(r$id3o`Pi8(zf`}>E7hf`BiLp3#_x-R*xXRrn*Ho65DlguzBofe_1ziTy153xX6 zq{I{Gqqr8)qP{a3vhhJ>v?r!|!srtNRtz941f+vsg4Na%^npBbJ6+KlJmI~L`|8)} zdL2rzG6;0BZ&iU#%I|f!SyY5KX;C5p0!_~4ZqjiWlCn8>jE!%+izIrQ2vT8*Boef~ ztY0(w6qa$jU)o@sAtx(h7j|jbX7hCL*3e+N>?8v|v_zG8%3y?^_XoCAs>4o2>FpnO zw!QTc&x;3%^rb2U6VXEJ3ykPp{mdBwG#3|?1Eany#7$>K+X<0HJKvL{FSbXPyyQFF zqUwD7OuRW}(<7IRpa3V>0Y(Xg$&-ynl_Hp&iN>FEs>lx2r1M-PuOMq+M-=6HT#>E^ zGhmC!a^6gPR9i`%+jo4nE54w8WW+=d>Y=s}1k~VNmQZbOKu6z|8Q#2x&SC3eyp8Jp z^C&fa=Vfba+VK8iG4o2t{$^$S@gV-nj0N{lAj9s`dgOUBd7uf*#H5hOUb3R6chR1o z?Xt}Oa?ob#aooo2y^f&m;=%IdAUx8%@sN0O-+ou|eEu&xzw9T?qDM<_eC#I0Ydv!| zQu*g#Zq2-n7!q6ACkAL4#rIn&&5}z>l!CQPUiMpunQKlQ=VK$vtue0SiiYDcBlg)@ z6sos3LyS9ZCd$7nQR^M$gHe0avy(&vBCL8v*v{knRfcC3A1?0!XBS|jL;am$UsC`V zhfcox0l7gJ(D?ufU8zgLPOnXcG>;}APGYWj6>sUvrVDhSu#beIAl3^1)Oz=MQ{lP? z4i|t7f&nX*UXePX_tQ3`etey&5g=HTQHjn&24t;WKq;S9RaBInU0qpNpIcJ{9l3{5 z#P9DDII?ev?jsNyC6;Nm2st}wC@QMh*;#1gHzqh&7Z#T@H^-!U-fG=9cf+ST|55hM zR`xXbcDKiIry)+iSo_l9lb0BoSqhv23EBf!uqISd0|_f*C@yqc-;8d{XprZjF?wbN zJybcwtOX3JL$kEa%%qn0k6f16*(v+FE3eesybjRPYqu9N(g#P%~o^Tn4 zIqRgR>|Y?AbK5illBTm|v8{s9?36N~qX{Yy%meIs7=fxS1fyL%H=(g{zVvX6GUmv+JRe!0CCWBCg4@<7 z;YT4al4y{9V`7sLgEd@$sE_fd1a`%cXh#wCfDskNhFml*%A0I z_Vm@wLD-)@CP!SP5W6maW+6Z(LLtSKVqp#!PdatzQ>B#aAVMmcTRqTtkr*1wj59|{ zml#@NNm!1pVKBl_QEtV^T+u(kqBP7X5_#W4!&_llR$?pLG8^akTYzAMN|Tr;rRl3h zPi`{&phlwgtZKEFoc7^$u^__WcNgsDrbheT)&NL9rwpBeJr!@fnHI7cvc`Tj7Q(8T zeg^&W0RgU~aNXXvP#P8x@bdsCUs;dXfu{I9)6VV9a_1bQIpq$#9=pK>l){|h5$che z8KD+0z;2PxU^oEi{1lZ`w4|jsF>@JR`z!*TOEeNDey{4suDy_34qzCtNrL4TYRb%a zT8HWqOj-2R-Kfg5>f!PY2&AUN2?zinHD;VL%wIF;N;|<;r?7xQ}daN zi<66Utqo*lVPQjq{`i}+cqZD}c^kWgz8;tLZY-$D>`<$bKs?aH<(c2HCtaK_LR z5RgAVzaKWJ3F|U$77{kwLXdbsPb3Ow5cDcO+}x`MA?DegQA;WLkwk0#%_=vU)t;DW zN_TQCJ~T|V9gHvzdJE@<<8!RB@gs)2aX3`Qh;T(DudrdfKAmo(FcnpS+r)7}OA(IU z9|Gs(Y-5+-@}E^00FFG8RgAb6>HXpJM%~CrOxtxUdGm4hDA|@pE)z4I>+Y&X)3A-_ z<|wZFL_JLgxQrnF?fnZ~nHsNwe;nGYa$%1o@;UM?@MUL44bp7GO1`|2zY*(V= zYC`csnd}`dCMG8%Nh8Jl@$X(Q+~40PB_-uZMdDy%!=|Q;O-+xNn$Qhn5`cTo z_Sc7V0RaJrheT?<`prMjmRwd8WMo7*4Yq-d#KNLmdyY3SLSL(uZz~*LCf2kE72m#v+a6?`Fz!L6sD0OlIbuxXf_^&u= zS?tg*<`6jdlXSAbiof7riCixKe*5=jPN?bRn2zPgFTC|f5-qRM3_z|vw={?UO5lfq zs91_?1DCkGDiaDMP(7y%lpH91!0q}ut_Yg`eh??Auoeya>jRqspEfAlYmpDj(*C|D^AL`5c^U zMI+HE4x#vK)|QbzP>!K01HD%dFg9W;@!cY_;uUzV`oI$Qxo5)2ERZCT-qwu2>9iiE z`>eo8PsKzb@}AFecPw8ab*4jScaILOezUOOovnOIWqNI8l@feD!-C`+JQ&JAU$XjbBcTi@ zK0Zp|Xt}QKURJ?McOl`3|BoO4k6Y=vy9-VyCl)4cv}6!{yxXxqo(M^oMybxzdPic` zPk!$+3XgQ3u;QE?^QWGW;$q^a8|<=`v8APpp`jhJP&cn-(Om|hg+B7tHH&XL2oiXu zKG5ZpSm*1W*tGM;OoiEt1A}Mu2V+$aC-rx=f>_Od*Vj7VQdGutm)k!0PjE)Wf6PP1 zoDJ(+F@vxRC)*tA1fMXbk0Ntt9GE`S5Yo<>$9Z!+Ar%Cyz5An zjFCG^s^6GJMMZm$cNbSzfJk9FJ^hffTBN?Vwl*s(3jkSkpt17sy#EG=1j&&K)hzeG zVNU~qThpSiEX{vK)NY5r+hd5raOCk1z zB*BR@M)&>Z`R${CaY;z2@CW3FQW;qm?&3UaiV?Mxj{LrFD!3s#6@ah%?0V&V(u-pD`gBBMSa-Q3o@;eZ-l}_~X>!gk+)0Ytd9k z35@`@PjLEX9SJ?^=GpYW()#CpTZ!9s+!Mc28Smt&Q2xfp0vKePGo||VKljdJ3+PLj zfd)4TdxpOIjedFS1Z=t050}hwt-UJ|Eqok{H z1AieHuU6X{SvWR#(|HxTT^jEo%Q82pMx%9&})|8O1b9v<%4 z*499ML=M$57&)WqWqh*t zp7klA%-CX3?#NxZGy9OoDF%D@W}LRwWW-Qx8==L9i5?5-4r5uQN}V9?(xI*ti}xKF zjmbMzCU)f4juVKoG-dP?bBHLPE!2be`%t)Ir(KK9@+CQF+o#{BpgGq@M~)zWB}j8_ z{o{sfLt&CIal;&CQO1#CjCj$d|EISaE~(ZOo$Qh}776*saKg9C=-9s~{UX>#zdXW& zprN>5TCrbxNgbP}MOvs0{rZhrg*BFc#&G{cIkWjh;oV2Mhe*?99#sV7%i8v#&#fanb1dce!gCO5}|)6<%Y83MI7OZUJ+Cg%B3+1S`vUw^yU;6TW213=#R zUCK*ybB%i=(#PIU&j{WuHrXsS9xb?7ue7!Rkz&0&wE3aG#r;NIU4Oaqn~{|qgSl_d zMsK9;T=mve5r|b53|ze8Ga(g4^a)Z33lir{Rp8z<`4{#!aV>c7U3ik^j5SnU_9Gwt)-2-ooD9O;mwjq) z4gH$4tmOSXkpOaJeXFW>f}W@!oVN#iw%&bBbo)DiYJfn&o@)I0>)RytK7F_MQxU8- zcs4`JB`fx}<`;KqKPqZii)lH5~Incgh9ydaN`rn7I^6`qY`wy|1FfX7@mdcx6#PRB9? z-OWaRLh}PGxqLn-byKUiqp#u4u^Vj6ao;BcYCr4~Tj8PFH)79m|9L)q|mi>Q1Rpk@M9x$_I4f-+!x5R8+Uhicb6cyv-gpG?mmzAfB7G}dyF-@d#$QDXVq6<)vQ@kQBF^9KuYJf z)iWqg`g;^SVdpE>A#@p3%U7D6h)n%m8myM<9S^I2{zNKXL@;c?~nC8_WpOYhl@hT3(XKgee^DJmg{0obVI3Z?D`f}i;Yma4pa@*u;=IygA=x?> z)(J#_F!T+t`weYt06Z(k00O@IE;l$4nsw^|mgb7l6u}j?(X!BpHep2Rq$p&sA*=ldVv%9wRSE>FC)k3V0vF5 z={#k*JB?(MBNm5B;qfibCnZ$GLxUZg9)Q=?nLH|3ctFC66K+5S$Vq>NK{Wgw4;g{8VoyY##cQQEi-{>TMLuES;A>ZNANqN30YN|F^oPR1j1_O#v z^3S>KiA)T7#4zW;3yAM!B2nTCa?lgD6VZDfxFIwL4ewvPNht#+p~NlI@6cZf8vw{otq0ddh8z_w#^>HC;!S@8o#gC#Xo3`H3uBq z@J}h#HE)AY%<^yW#YaHDn?Xf)L_>$|kd9qX9*t);t4ibeJ#Chp@@r{(Mf zu2iU#;#I`Lvirw&qEWaMiQH>V=GP8)$?}9g0SZ)9Ve6O!fWC&H_3;My8Ca6BS#IfV7+SOf@dTmyM z`x(&%CTU$lMh;M8E~n30kr@joV6a&%1KeOr@&ayHwRj7EOZ8E{D$?ee;py2envku$ZC5A2Z`gFjKEt?wNiRM#Jor zTer0DP86UC+S9~d3_&LY?Nm{9E9TLtklh!h67%g5zGb46N?Dm{`X5^O-glhGLLOuy zX1~q{4cnWgK5F2T`k{Uj#KT2`6rgp+tA;5H1tt5e;DOLC7mI|(c6=rH2e{kH zN$|kqpfcB>%IOGFrGBf}mqrkMOL;`@scfylYgIW{Dujc&4oEu`p%uo+`5YF^k=jmTVBa6g)L3qGT7DG? z(p+BZnINCSx7=Tm<2q3mf1kR@poho9gu=%+pLnB9&Yh*=%HmlEa}cIpL+6^KQi*sm z9wSmb(=vimH0SM?{nW&r?GvfL%kl{PO8)I6;3*sT76)|^?M;wW)ZyWep%nhm$(D82SYAkm=>?=-c&@i z!v)G}!+U|Y`<=jU6NY+HzWKFY@2F^SDJSctep7{@WHMQp$B!LYq)KEw!0p`~XG1O6 zU#oMF@O+DwLSi#UC2XN1!&dEu8b=4pi!wjX~!J1+7 zTT-*slgg3h?vV28%0zF_S5B09mOa;>U%MJkD zNQLf}4`9`?=!!&Q60v1meq9&YHFmRlB|~5X6H8qTyekWJLF)6cZ+et2`u1Y(bB&cH zQ(Yp;BdVeLi)Wi8%4>hAK*wcuW?mcq4M$f=*LzjzZTE*+$9;&&n(eAmMNq@1q2-EQ zwhI*9dA1~O&zr%w^-=cM>)Tf1wLtKJy*)y+bxPiEO0XSoMTeiSi9Ye($_ol!zdbI@ z%sWWBCZIBLAn#_kypI*sy3ehQv8VFGhX$K-*0RNKXP@q7rbeY*-Ul{Y^pO2(aWeaAG&7#B&p*N6sE%W?Uc?|Uhbuvt9UUuME0Xdve2KQ&8z6}{#`Br zcJAgDHiFL2J>a!radbovP!$P%;91_>G6eT9aB`ZTnLAr+AT4g(E|4owq$@loOSW2U z&+*oSfI@xc(X`QBUxS86C*jdh(uC(+PQE2_Ia?g|8ml)ZQg$b!=|_v~)8pIkLu`=o zb{d6H%k$IrIFKO(X=_a>Guq1^9SsnU6`|Tf=IG{E=zF@g(hK6-uhbTQtiFIypcHeq zi<$#!))Y+*`x4>0w5J9`nmwb4YR1B=-2}HeQa7X%WF>!u`c{@ENEwni-G&A?NFKKEk zDbH(buY)GxZT3ickTwmfNN@KoPjCM*Hx@s3_M={oe0ptlIfD>}`bCTU*#+SRi)Pjm zhV|^Pr3i)jTO4>rT2bX)MdLN8!CeJ^S+a12SGoAkF@WY$7js$^@Ja(sa?@dA__k$b zixD7%?je*lC{5^pno9IxC7o1VLO;r{rAV;c8)h>jX#+~=T~Wl;4AxfJ0%uBvUgUPZ z3UwsXOAQ26peV=&-?Esn*VkplsXg%kYr|Ofty~l>!D{pe1MMmWpIC4raoOU;n9TVR ztH}ywbm8;}-tWtKrTJISOX6|Mm);ZY^A_XRUm0u9?WBy2m+h+Uk14m@YaLgHE=+Gr zITkh^&c8j{Iq$F0%bse+M_V7WRMx+nZ|{3IJ@rp>y>!aLdS5*z38vOR;yJkJdf#8k zue5A!gMT|9ulxE$Y0>ex(0u>hyOT-Y@*zeZ&+9Bph4l3>TirrR&~><#FMaj0=(noZ zb2^UhgUaOF!w!43GW#8PO9+OcIM_+aWe9h%7eu7De@L)ibA6ccoyKz^24u83%Xbc) zddQ{f))my6>eAH$7QG(u0Hw?=TIftM`(*8!aRxM$QgsAQk7^iC4Z_C(Z^mNWBkahA76JPBOCf+r7_hVDic=@NhSDW#+^T1W_rz*2wW9#?6q|7j=8D1N+ zZ{%K~(FqaHknM#)%HS$WaMaY1eA>`)DxW8(Ra#zZVQqe1YG%%-sp4`p6^E=!SVE{l zf0Uewsj=~B|9yB+nv=}7scLs+x0yYzZoh(KrfvZJf(?Xw3u%##EapX}+Ddu=C}2sAt`^q;HSUAHk` zZ-AiVavD=AWRUR)*-KQisPhLO9LJ15cZS1ObT}V*H@zMTHkHH5r*YLl0F zgI?QxYqNVg_qKmJU;p^>OHk%ws6t7mqg(XjnQSLAP;Ye%=L~64>1}FYGLznXz22+no-&B8(YxE(qua|aqSa;5saxVi1cA;CCK0?GNo379#P zFtlAt4)=X$@ga}PCWLWiD1Ew@l&26>tf}B!{#KaK5zi9crIG8P__d0bs*5wMh$Ar! zUt*j&SE{aM_h-ixXbmAwXl}(fxaiv#qZbtVhR5c_EBv0RCw0tpG_T>uZ8HrA)1iEU z9Wg|mvjLdt1+Mxq57DP-!04YBP**qowm>(j_mv@iF~QUXuui*X+*PyokhgdujZoPD zd^^N*!z&W!XGbNYA<5mVuoaN;SMD|5=oqgO%kf1Ho$TO{Uf^No!CGHF+`@d=3YVoj*|`+Cw`WfpdKhP7)6$bG-U zGQmg-%%&?N&gBLI)V)2@QWB=S!vEmx;tI-ssh`r)SwR1TT)`Pk9WWyq^wxEq_fv{? zg!!AYv$M0XK8;kJhYh6Tl+)zucB%=m`>|?nJ2Y_L3IfqkGh1_eN?iOH@ z#GU&oPUq87x>(KgnPPJ=3|^1vifk00HTHFODpvH09?-+1%47PeeDtGFd!SJu^0n-{ zUqNLA1d_6;UqTWmK`c#GTY@>Y1Wt23rT{Ewr91guwsbNid z+5hrv>854DrBhj?p0hIh@}u;89`f01!`BqW-@k$Xn(IlT#k&yL9T0I3Q?|H61N_~H zF>jf_YU%zF|B18(x;X9hR~H474J?gaJ&!A8wvA1qS~q$YC_(Ica@S^c<7=jNI5T0+ zy0KjZGdI4D#@7)OEct`b8=}@#BYYCdQEVh+O3oC{R32r>3h6~Nl3wHQ)0WOlkAB!Olvb(I(|Pcb0eNGUc{VhjXE-A#J^9eI)$R&V*z;cH;hW>8gfPZC4BrG|yM62VD9m-W`LQ*J zWqFwv+ZNS5#dt`bQU47{g!dQG&v?Ow^8uz8b}=ITacP*Ti#vP)(tvMh6=XCc*SqO6 zIPB~UG1JcNfsDLuf=WuP$-uOE>JDJrHLpoFktR>UOyCypvWdP3@f7nC@`dPrAzSVx zPsky&T9WhFBB`KQm^d=ZHsPn+*0C;lKN){1vrM zzE8Zw;6t>!J54xIyvR1dG8ueF&&Ea>OKvKt}KjPk4p)pZw@vwqROE2nBcvH zx%?g;UWW7xWlU$Is z%hhzA$58&SBvN2ofVrO}r?1gcq&?Ff3SlqqfVGmj;lvmh zTw!0Nw$#E~*UV|ck-z$Sn79UdVYz)3Zg^Nj&LpWzGR`AQ|0D2)P)rv zLRuSNTr$2p{eW|_5%OK-c3(z1DdG3~9t6b_-%LGug7OVbPj)D+5!4=9=VRyz7lt*D zGbv2TZeS#+^>kKGa;n)8Q)M-GBuYrYv-?2`-@>rcdA&Fshm}In%c6cb0Z^b=)X7@V z($Z2~t+<3qF3Vr-61{YGfQ_hkeBp0$%3s50<<>U7;E!yHm*4Zn=GzUMUkzs+>jM4o zXON{jvB5;SNiUfu+Y3&*13_TkC+KRkmx}YCa$r8C9bcK7yYRoZ$H{ozSs;0PDm7^H_5n z_RRQg)r1ZaEm`xk0a5(sSU7#u^o(1ee;l;h4>M?(0rWj)F{mevamPpd2HO3Wa$7jq zR02CSfC>1l-Rsq}zC7~v>N^Qt%alKpKp}#&7zGoLPJhQJ+-A1#Cq5?KFHRzCxgd06 zdH@3hso~I&TpF*_UhQ*@^w+5#%HNH}r`Bn_aE$!x6LXhbEz|MyzekpAf1t4X^+Sp6 zAP9?F#?ATTG!IQeM%p|^1T0G%%67`IH((SYn%0PM>)e9+b}NlVl|3x!VlN}om30>sFD^7FDaRV;8I z*WUNk1R_nzbkM-C<^{cn7fLic^DireHfQ+&ceAlZ*$BK&HGN|O{zF@Ju^SLw zIJ1xjfAbse@{_2!q%yF%rSgh7xr-t4#&-wl;a-G1gmEyBZfNo~&7wipYS>VU5SXE3 z3L$!cb9>;>nSahQggU(Q?sblDWYPQyU+ollyui1%KOF|E5Z?9JYDy*cR^<0_U zjf>P_-C9pjS@fr1Ch=eW>Zw{h8b&llcI6C?MVAy??ta&xO@GP73qJjodGQoxl>~F3 zk-HUYk%?4?)9Ay%KzlQ*BayKm*z67lby}7|R;^glL4sRyJCS^8jwG*VS2M2 z{kd_2xhk?HkrK7DlQ1ToG~13uyHZRqlbJOIK~yfuTkmPx(nw1xD3gbV>O@_~TPv%f zqNiO1b3p^8S(CVXK}`nd4#y*6588**?p$ppk7T$CvOQvw0Cs<%GakX^OJH4?aeWe9 zdi5fXj9SqY*M``q)Y=Th0XO5Q4Ezt3Spq3mso?rHu>xRA3#(2HQaTG_mXI|J z*Zr*B2Dzf|5D!h!nQeZtDK9*wy`}GMg$dv=#PfXBErgXw$Lpfrs!e6M!;PCrV%(}>B@3+@a z?H@;gF&0#JJ}Xs~jUU4xETPq+ee$G8C|>nfo`u5>R)Hv<2a#@QT_g({Q!KBg%eT@Y zdDAE+Gki#UH&Es*eXg4Ph`rX7l{%x?|ar!Ao`9n4o_n{yeY3c>r}o0u~3hpGO! zS%O*@gL1ncXzgjogsei}#X*}-k1?zYors2ERC$mxEF_xg)7-b^H-p@eq$|(h7&IbB zF_Tv-NWvCRwju{u-ZLFg%(AJBwOBH53R?;C4R;#(jge!)eF4|TM2q}!w97q#M*%xR z7Ms3oxluXA$m%~gvU|&^eS}8g2K+?5q1jrJW#h!GU7i)O1E$~}Wfg3Cvyq6hL{&e{ zNl$*o&xtikjg41c_v;<|N=%@r6Bir5dk9zeQpz}QEx-MqLLZz4MxfyN3(?AIsom+Z zVHxme)m;b?ObuYF{A@s~wm>8^bjv|Tl*X!5=BYz1_O@&U7lq(U^Q+y#=JmQAR`mws76&Ag;{X503@h^Ec?I>WIa>v#|Nz_Fy|2Ii!gBeS(pelJz#8H;C6qqnk z@BhMi2z~>|vE*9$uni_uUj)xs7JtE^HU38;xznfuqY31&EQjF!|H{N{y%HS}X zUk53pZ#xmjNu;M7C?FKZ2fi_dwCjq44P=-6iqWS(GL6ESKtOpO|Dv}Y?N{5Dsf;xc zH7BpJD=4idSVhz6GMjz?MUPE7kx94qS?OHjGMjv;6ymRD8s#wBryhz7p6pes!4#cS z5G5quX%M8!u}A*(a8=h{MLqDa8UxCFVvb0X-E|z?V?2qh&_j5AALuvA_VJp7otHlW zN5939!(t32Nxro7YWZ+|`3@9p0C-6i{)B|dprIlV{B(q` z#e1~IRqL)|Vqi__UN-GSiG&JtolbFnyC)KI(2t751ST#@QcH-`emM?1xLkaHg#|*d z0lhzz=@U1srSb1?q^5RPD1-T8TPxJ3tiV@f8aGEA{Aq0mi)T(y++wpeN1WK8r%|SP zcE+EL`V4JfG(H_ODYUAyq~`}4mBGx!Z}!k|aSR<=ity9}RD*_x3a>N-9B{ZMuKJ?)XP^KK!gSM-{B z8kzhqB^?1ppO*q%6lh)=&P+i_*djpmxAydkD5MR>5H%(0s1DQ_3sxix(@5?Y@WmcI_`>6hfdnZ@h(TCy?Vii$u8COzrt5wxymX&)jU)ZRXPz`DVjE6S*0NjLkJ zqxYO+7(iW}mcdP4G3R$XHNDx@rTj_OERNbAlv85Dp`% z!{5B$ywbkrro9OPH9f@RPmxpbju6<6>m>xXy-g9?clBH2wz#|;HgpwoFgvW6&$vq7a ztLO6NPK@_IR8^Nvk`R8zJkv6?T^9d8sF_%Z@S zWH}VrdxB)F708GiCA4Y{JPfQPWcsDg?QW86HiXhat^c>UE9`wy;b+cOb5l1%m8Xf7 z$QCAD%=}1|wxCNJ*naxD%>`TLD23qP)h2lQt#^_N1;!$#6kY(>@i^%o*Lzb$KWov0 zz;~wIrMK0}h{$DTOVd#w2^lYP6T|YDc+&DS{oO}_#M-qi?sT@T32^@< zFy42`kY$2Z_2h$DfFhw6UCpuN+St+2&8opB5t9Cycz9fdxC8np+A#(Su0nX5c)tso z$PNy?!p_<4yKt>Ve46)`j@ku*v#lS2%<-*Ul$F6U3)BXPU7UST<6k$8q8ArRs{%OJ zRB8yza*MpiJjZ4_Ekxpem?hd z>iiDgAW@n;S~7h^lpMS+t&^rsV3Woz3&(AL(}h^8-wg18SW(xUzA4Y~cFgxBf1)So z-vsjdPEucKF9xUSG2EaZaV}R;LA4kVY`Hu9L+&fT;?C#!jQy!7ZnSnOsQGNNY1H0} zeQ2myGzBX1pePWvsV&LpV-F@o&H{Kbp^-(Sm#{Ry9vIU9SW=Mqbi; zcjHt#l>_fW0yP{ko_HxKQ7}uAECB+GnB~hd=QeG$Eha7oh;jFsoc#K$2ieypQ;(AO z$UK$8-&%#$<+TI(1`tNg@o91dwtR6$L~F#B4u>dd@a64 zj-m!ue8yXbaQJ#;5tSp}=~8u#0g@XTvGp}V&k0=gKOgG*$oAeU<(RsxQ!$P%gSAi7 zs0IdCM_?#AQc%`|i_7Af%fsPA$>b9IP(x=DJtR>K2|LspG8QGp*HNG$00LAWVXgl` zp^V$Tex7c--q53~HbrTa_oyw~QG;kev5=Lp(T6b2jODVcW&Tu*pO2rpwqz03k$0%= z9isc7xvIlpm+NsWIoPr_+Rx&p>F?_BzxViNT{UuHUT>U>UX_cl!JO^A36(>sZvxQQ zuW)l!=vaKsyB`S@@cnT>b0ZAynT0XvOEE@&Dl!m9f{11cH zg;3bih#E-M;cVA}ud3_02UnZ#!xT#vlQ_z2W^}sOeB*fIA&F1WW}@CQi$7b@8jwB- zwYftc%kqFXsd%Of1#g{_jEQlB}B}Wg4w9O_(PG;e|CV12^|3d3p9seag|-H z;oJ@T3rH>^6d0y{VS@s4Ct8iNw0y8thM>t2GEqx)_WgEXRlE5+h5XZ`%K7K^dFmuC zUXf$S5#Ip17I^vWCo#0>@x91|1>~G*SI(GAeu@Q&DjAaPcx>F_vv`8N2_z5+kpBLM zag6{m42gF6C$>89mJfC2X6ME_+twLih0)OUsNUDW|7@AJ3SD5XlD`F^$wd?=%zjGhSo1hXzR-st0$ zm;HO*hz{WsCEQymAJDv+_(CgrfTxpR*guWTR(n%gp~~hFDx{%wk(~WG6yYJkCmde} zE^>Os2&E%$1Vlq%gN-ZF(ho$otVt|QqU$oRy+cV!vw=@e8X{jAOb!9TBym&t{{Yv! zg0qU{yrmbSJE;F@qy7u;_Nc(mS{g$CrvzX*g8o`yTgCq7^;N#$_AX@q2HF3gUPO5w zUwnMqSWX1z(7u8b&!Re+C}!9`(#HIswr8H$OEE7pNM#xKw)NY*wQ!;;(W6nHR~KYz z@EO>iFSn>fFwJ&)1Q~(QL2qnVruyM|a-)SAnVuwr3NUl0ha$E9w=NmRL^N*7O|ojXg!w|Cr7H2p_)crJC2@wDy_T2e5KIDp?i+uN~q>R2!g;qfYK+kV z3rNNpm#qrX-)d&(BJT74$CD!HR-F*WxL(6Gk|Bo%giV0F(M5d#axY8^U|e^TX3hp3 zpCCa~W?(+jsKq3KTaLxnh2qRA?b!r-tfP<(|0TZCK!~#MYJ|c7y`R0XY0u6)Fg5cU zU;1h;n?j#xK4x%mfyCNG=vO*GL>(bK=388$y2T5B4c&xuu@Uk(6sktH3j!_%rTH6t zJjr&NS?**hrv0Z6EWFbS3OlE9iw!xbUvi_mzsa67fXbaG*kX{7X3;kJv`$27Vn){x zQjsA75jftnb@MRNFjj7sGMTTjc|;=?nnD+v@fsyYol-!nj>(k>E!rRx30TJZeWtcb z1ud)VzK~^54?)8Xb8U*;DEb&j#?eR4?vqA2b1wy z0K}UmR;%`p(D^?-WH%m!4VdCP1j>T8-~DsYCkUFtou+Gsr@U2`@rpnE-p4Dj#G8+9 zoV_S3J>$6^0Z0^u-B0Bhx;Z~?zSkxzH(wlM#JqaWSLSUBtDHy=Tqk+U?EB*0{_UGS z$8vNZa2hQjEo^^lwp+{SFlx>qh;q46Uy-Eg%Q(eqrn|E{tiSZH%W-TMj`0zyT`N&N z$M)Ds9^m%!WDv#Fz$7x>(kwnzw+q`6XU{4L1Vo{Lq^PhmNJ~vnZQR$vS0uo#k7$rz zGw6$zbjepz`I`}#8w|C+NHZ}M3mc07`xR~j!MS&~P&WI-xBlzUa1%xRAUzTBy}bUq zwONq>xrS}UQ%KYrabhce%3-;;OB19rr>Lt!Vu5R4s58a!fkY4o^yz}e@D=9&P?67Z zzk>)!JFr6Ex#b{5%op(08D|qYPMiOPt9toymR6_u7>R+k@C?OqQ~eYrf1)icjSt<0 z8%7cG{5t{R3<8lAZaTwa^hnp>-4RQmnfOj3!J@m0qL#FfX#y$BD$s_WG#>txeSWrv+?!=fCnui#zNr%$L6A}y1 zp|(h>3@WyfW^uTz4O^q7bfwS)GZ~n<+L4(f{LhsNYWwo>;pGw@_}HVuG)S1lz*F&J#bCPPz$ZiDWWZhyFQ-Z?3oqR(u4^6o^ICykxg5 z>DeH*KW*hLZszkX#jH7OT6<^`!G|0Fm@~-#Y9ohev9CYGwSWU%orsCS8kZxENvl#{ zIl1lRx8KP*7|Js+(K|U3wY@c~Y`c5N-~II2W?2aeoE1X3i#Btxld=C^n4Kz6dudL{ zP3U&wkl=V~9`UqWi22X80Y0CJ0D$hP%j;4Aw^Wr5Qi1m&*c#g6W@uTSX;GUx-G#n~ zz0n?if-2oj{>i>T+JLcQAh@Gyi={1GX63n!bKYY)Z(#e>g1I28pOKrM5o}ziv88?+C#$^J?9RjbyqX*{LmcLj;)JWp6ZIedi;zerO zJCkLT`qLq^g7~yTk{mk;2TX_*gW1|-x!e{rU%VwfLUx!Z40R_YKGSvLQQRhJNSo)H$M8DF*A-W?hqd{Sn zRx;#E*GP`E0j=+`iRHa$b44oOxwh~#F44bi+(SUg!YqeOBI_gLTSX+qhN(jMpKP*6 z*L1Ug&M}M(?FqJza3#C8P$O$t19~MoIJ0QH7zXyjlSj*MN1M|v4 z(GQ?n7UWG+J%Tl&5`RR8KjH$&30=U9lWI>TXw=N-NI5( z18$tDVE`7aj(eC({+d`3Dxev}-CUKSFUwS8BTn>Fg0g=t605a@_=f(v1A&5zWeKkR z0_!85kCT@%k@Za1K_vq8Lj8RPnIi=wq`p`@d)Jzfw-$?hTkXpm^c!9UaUt$MvmrBifQ`2hW(ti z7DMkPILVuUtIR*Nxj(I%1aGYQFGf%ly1ZnvHL`Uf;n)I+i!=78anI0)tt-O2{X#Gr z`piPVPhqzJtKWqmIv_9lHyT8s0Dv!2AzN1MifKTJ~Q~w`~Sm>VOY;Ldpj@S7Ab;VA{qOaOM(9)N(TrMV3u?UVlTrBdlL$XTCwW!~Yk990jiBR?y_8K`SgF?$4-f;}Trw z7yl#8*3mzS*nv$>P5sTX6Tkt)fjILs-Xr$hdT;zjD=uOXy-++7G7_@g3+UCdmg)wY z^qY+>4Gwm;Cn0KaUDa2l(AuaW{Pa>hGdBTZG8Rg24~d1$0tbt)U%93^PQAQw%crPC zC9~2AGZLJUMNoT8G_u#H3@?+*6wvdRCdU^ipyGT~rkv)`w-W7Z+Mn^HVDmAqxF|+w zlT;xs_om^!t`2@Nxw%TWi$)m7U%NEDTiN9jd8jYEQ?vc`=+5&GN*+vGT%EssmBJ4H((3Qs^TYH#1_HlKV4> zj%QOvo|bxn9(mb>(0Z1fm?Oe28w@QjYiQ=ps-4Fj^oCmBM=N!+*)y_Q>j{66^#d}U zPEsdb#@%Eom&4)@Fg0r1K)m=6u{I{Sp_M^3sDILAD+OdAJCmu>K2xTW!Gkw#Y4c#j z0Dm3Qu@LC$qWpWT3=6t^dz2FhXfwEkD5vzU%tZCD-LtNy|d>lsC%wE2Q7MJhm z5;}I2g>_5MfnREy7GJo#J`r5yD2s+rm|Mz8iSBj|40L1IFuw+|=qM7O7P0CV^$;pE zG?>t1e|B*Z!)#UZ5j&?3u#B+g35jn=)8m6rVX7*df^N!bbQa6{zvniGeJbOeoUhcgq!B<}QY7RAE3D{X6Qt(>6ZP@n`&P?rfSpn-v;Vne){h184z-Nfk zBM=K}5;nF95VOP1MWj-)u3`A_dzi^^>an8#gY5s$%tlP_k&!CRF2$u&j7C~@$qZLy zrp3vQCi)TGXRWE7>AB46)u{RHr7QE5fmW(4XV~;la7!YbDK^R0EskK!?=adIK=660 zHP4e_@?AqbS@!guyfY^eVQ=8!et?m(S^o;oT|N6xLSh-kD|0gatoVk4ca9M~oI*z~ z-=kswx93UBW`j1adIdL7Sn=OoFYLR(#HZe_n1cK^s>f&tH+x!Nloai%*+f1Qafxq} z0P`GVf0%z*|2u6QNUvj1qNZz<_1|M>V))@upczgQuk>nbX%pN;N~~>7LVrq@>d%wkz^)6vmaiQYZvTS-@_jM@B|yBXOG2 zrNtT@#$6ptmE0|ZhXM?Zz+gBYrPabdmGL8{l?a?_=Xol)Xgm>w{f(yO5>lUk+p$gc z(nn>-IQf!jf5^uY$q9ABGL|lilmwV7jjxChcR?G&$|*V1-{A#lpEf*%j4yoTO25WI zfs5f{dus4r2_Bb4y5LT^KgpI9e^r~VeP&#~n0bf|lxC_47gWzFVt$Yj@NN}u@!Kp~ z++jCS)Q7ZBAV7FSg&6ih3CCyGHIfHa#gD$<6x(sLK)-NFs_+|T8ojpsYUR_`Un}o} z0!t)>`G@xYM+_Vy!KMHgP(1No&sc2FT-Y#yft3J2E17v22d z)Qf8~ygEPS8&Hwfu$o`|ddWl|A;W_B*X;59s&#;Cc@%>(OZwhliVhJrg)EKrsOBmQ z35RX&!=VXk35vt{ZWogF;esnLmvX)XDU#DmN&I&WwS)b@frpLqzg%SO2lL|r zvgj){o9;dbR)y1XnQK1i1VXuykyk>b zN9bLNm_~ZQ$LGh$M83m|i{?PLFqCQx^8$tAx^88+ z<4CEsIMbzv3Wo;^ke$pE_e1~tG5d#psnc7&~#cQdc z;!wbsZW06c_hs7Srct1(bQeNOp%2DPY7}pRlcfhAWR&9LhEVWz6gz3?tN)WMl0kkE z?^60?PL8DAj@08ZM*yV{@z#0(!kbpB4x#k_l0{}1HD0U_l}K<}8$p6jkQl|CG0a

_K$qMX6Pv?|0H$_LgMbI7O>zKc~ZM@urX&CidmiD1?W zL(EJdkK8Xy9<76v`q<{l?3t$)-XEeiRz-s_Cy5@!P2P1FntwuS5%#Zn$YEb9%CBGs zQ59(n=OHF`=#=E&snL_`|3%K-Su-+C;l1L@dob2iCkrW!?hV=D3&Yi4%*JE z`ge|hAOshh!UOj}i(uB0UKg*heetmB%BBQ)t|-Q1T?khqvoa9}ak7g{k;#kF4k3!Mn2}>h$G4DX)ocN>*Jqz(I>lgIIb}}2;2eB0 z2oxaPMf(EQ-3T3H7mb_h(6VXHDYiFl*FNubFbfTVB);FG4bv#T$iJ*R*x3KuseAiBnKZ?2dZ$Z%L{A>)HE0&1Cf1<6mCttUCQ0%Nin1;Y;Hf(HD(E2Zx?pNe-`%~ zmn32%uQ*FdhT*BIie_&()QNO{I0WZOa@1=$-)pe!ZVpbXl9ZX7q)@5oHUr0E2hru% zZPz+X2%Tl{qIP`Y^Up0~!_}uMRc_O28XRAgFF!gh{_r<$Q|#Khp&-8mL5Io>=W7)$ zBINL29l1TS33ZQ|>%50@xN7%+s+6w3N#o8FC$h9hmzS9H=9>+`DszH8DSw)_O&z^rpJ0i=!blyBWQ zU=L%e20+@7REFk}VH?pOO&42Cnmlc+ve!WbrDW%g>YF zpza!OW%qL$GIwz!aDMO?B3@K#S=4m-0IN7wFy%XTt6)-32=?hxanfHKh6KsXWJZDt zLTt;v&k7ew7=KiyR#TOBKTu;4q4RB>n^1}~b*;%%L$5oeZ5XX=p}OfLrZ0`1bSvdJ zE6FnSK7knnKpGN1>fsPCR09p;zVE!ziWzpjM^# z)O~Upg=72*VWTC5u|4i;BEcg@<;B0NNu!W>fZ5c_KAEVLxFs@VKxc(7DN?U56#V&2P*`pKVt1*NFpGHjmi9hGAe7^a{33xiQ8E8G(F5CML1h{x z@c`M{&-#MAmkrByTqPir28V}$6{#*m& zr+D%Tw{daa&g@|fX<~CbQaaI3-L%Ji&Qhtq)PPd`_2H(*Z(b=# z^!ZFE^5jr(~XJ+SVac#8fLyc0^20+Aq^417p^1eSN? z)wAQiy^jN;5-zL37c_k-BSdt5b^&bWYV-lcS!i^bv>KroDBS(5B8PoR!znjSc$po| zn8tw~izmkpZu`qA1UM{*5o>(tx1?_9>4u@Edt87|!mrY1TAd}^6mYvn!FNm)y+Z_4 ztbV_^0R2e%J)Ix+ZG!Cj$REfC-%I=-_TIyt?Kb=y)~agFs-kL-4wPu^t+k74ZDO>w zS7UFg*R3H7z zZHMn$62Ovvu*WL)J$DH4?tb>FZ3gl(^~I+Unk69(=a-y{6jUlq=AuMryDKQ^A`V6l zwT~<3eVg{3q+0g0{*IZ^zPerv`QGMTUsib%LEm4voQALN^ZRrS5N&^K-4-kMJ5MdJ zk?d-xaN+W(d-NX5_}u)3QnA?>gVB%~B7};pBdD?|{oc!8wk#wNna0TrID(Tu(CDYa zw(;kL*+j+-9j+=Z2R8wB+6k@u&<`upS(607${j>yD!W8KU%JiWBcG!mfuKhzo%WaZB@$N1sMyM3R2c(M;31M9;Lf8kZlq z2H;r`x82o3Gb75RpWOERaC!q9qP}jLfVTBAAGWc3?z-9W#6{!HKiY$d^lIWAV>-K_ z;H<2rp?)a^gO`tFtm4<7K4OV&qM+Rrdr8V0=^e#id9Tc&>xJB-SMnq8zXaWNayM_f zlM14AYWt@6*nOJp)(Uejr~gLJ5242IWLH$LvOadd&HQ^zF8KN3SXGyDn`~21(m^X55$jxG-dGa3hb9N$H zLBbaSl&JgV$P&W1*x|doLKrlEb2;e{igkxS{K$QuZ(w-n zLSByUqwQz(Cas)6w%z$3=?sA;6#}J>aks5+!emJ-8?r|1dDxrp;hJmRaepu~ud_r+ zJ8}ZOo*02&8ph~lZpXZX*4cjlhf1YA2~-r2?6bevsGK?~O4FtsKq;c{Fu6_s5W7H~ zz?ilWACzsyZj-qnz;;da&a#YGOMhtvzZ9uCQ92<}hkiP>KUL42wtMsFr_N^;;+E6t z&wWQ_eEQ|q7t~t0k}oVSQWd~M?pJVx{kd5@%ObB<`uB^?jo)kL`z7%@3tD6eitb?A zjL1L_xTL>-y_LV)C2gQwrpv&CiNE@{rLZNd^Uf0%fi7&N%w4>4aVw8vJ5I=cZruub z0%fe6JFgGna;lu#7c)UdKK$5sm+nG$@Ui5V!L}Krktb634<8@$VhCG?vvR(%w}(f1 z{*;v;q}@U}Xo(ml4pP;rCyzW~{3Vd1ZW2SJSfBFUn(A)ssP4dvv%ft72R{}qI$A^a zti)L7*Ei@x76LdsT|{-QWZvEGRU;(&xgc;2L<0jp33ETk%G_My$^PC@uL$RR#S0O~7Y(jd#D?dT3j3y1giZw&IjG!rUb1 zJ=Ae2lLXYWNWybh_C>dC%*!_ahepEd_Pt-Z{lW}>d%8nJgI3$+r6AodRHeyIzl;a^ z<6d}wP3jP!R(vJRzhsvd_As{NbTr~SQ~hlg!Wm8jfsq9ctG=h{?L&boQBM1>;^-L@ zaI(pqW+it5fTMIhsB11I3Zznav=m)`wqCh3@3((dqeN5`h@Zyj@_m7y? z%KaD4q*{!Oe1F1p&4mm?Y1)zvU`60ta->`z>>Z!%c4<^=+87Cv5Q@bLP#mHhY!H)A zCZtn37KlE5=Vh0^^_||bSKnJLRY|L7$gRxaiLU(3rikw}^=rx`sdvr$?*zoi?(P14 zb%&p?m6$%IOLdy^LE?bz&+2#kDv~b%!qb>N?`BdJi|2>FFFFyqGLjbV?`_lt@ZUJ+ z#oam+^+=h$vSk@J-sd1{lkm}Xm&QAiU&UdLdkPY#WNs6TV)}`to_&NT5?0c}tK(H! zJF;JT7?u;*qO9Z(4`;}=>hsj~7@G6+)V$0m<^jr9@1kv_@&n&elV@j~Y5z3>ye0WH z^2I7wj??zlix61L&Hxv3O-6(S`uEPOd&}*f7Rspy(aI(!E+4twPIV5DmTjh^8xrdB zuj>jq?h~`#sv_6gH|`uk`;f-2a-H|Npr=#m4MI3TIYDfj4I3?-;vB z7Iuvm8od55O$D)AfUB6q{SMp^k|zk5%V`X=jFRcGg6VO>8tF}@7?>9{6_jsMh zUA`|9C<=XH{qNTG5ST9bzki4${deVo{}H(L1_3ip{^z$sSFWcrT;B`aFz-n$h`d*{JDzQYtw|HGqoq}FwF3WphW>@y|c8-`Cx z+4gqA&q%l)0(G&+_xMxQtu; z`!cQn$IE;NUgno}A)=t(0-d>eu3Bh02$^llI{6(7=XlJN^K`Lj=bcl(KgVDrX7ag# z*TKfRt?q*pZ6oH*oveKMduCla-`L&*6CFDMI0!gz*U0;I;F|a%x4ypOSEcPJ+(kpi z;~-~syz$g{x*6Z+-|m+8b~1wp@(l6LXZtKcir6+f(a7Jr#szY+>qlcJoSJsJ-Py^r ziA)p{5&lA9BM!9hm^HoRqiS3rtJXO51$0i^4i&Sf_PZ_GP%MlHszrC}TTK{eYFv%0>FD-s$RTcXeg=wNQ) zI-Pr}=$tnA={RsnMSv6`PUAcTcsptjp0QuQyXzu`dUlF~sL+((;>fC3#Mb2J;16Ru z(9HEu7X9gjgN>&i>AZWQUhvi5vHlbA!~i9f>RY!2<6<8-u90Tugs6T04984$fR$uAQfQxZ~AaF{_{?=CyLSO_^bCe{c1L2pw3tnjI8QO z2%BQRf;`3b_7D_*(BH!uCi04&Pw^}5m)i*h9YZ>bq&({?{dGT5fR?80yIR2HK=Ko# z!iLMGU%3vAsBl$O^tZ86BRzyWwd7dY^q5yeF(R|zXl%OFW!iY*rcqJ= z$L)Caus1KH9O+m^2X1Et5HmYeMb1?OL|A;JNKPde(J3v~ULyRlKKu9)FZBcm@%=|j z=MztWdA}YWm`pir|49{)ceD+<9HBAtft}bSmAiLRkPz#(0QIN4HFD{ zRS@-Kh*{FpyS;1lM{VkK^ZHpdQ%=7LJvLO(y9aVB(jl1hWXkHP-Kuku)}W#?Fo;_* z>254X6!Y@^*oTMC9=$^4k)pg0L~2IvN$An@RwDbl=EnZrL0?lGJnIk@1>TF5UFs+> zC8PgOLbl+bOaTjEzcwe8xhAARq_k(7d|;!|&4c?jE~fo0?P+;KZV9ILJks+f-i2GU zK|B$rA9=0%K@hao`E1kf5gl8X3XWvYvJV=f(mUMaQKiI~kjk4#3utF|Q}*%r#p%~DAqy1547IP|w{GOuHsnHaw5MBho!uc97j_hMB6~B$p9mdxoC$(p0=*f=-y2Ocz_Lun z^sfXfjq`>HW(I9xbbX_I=)<*VYy3Z*f?f>$e6APz_LbF+?#o!V=5nDBWaj(QL25Z3 zTo6&4rP#ffw;2iq9txHU<&T##v7^b(c*D^&j7_->1i}I@x2!z|%3GQqZ*IzhNV(## z@^0y_(HVPFxTJAy;Jlv)9&q5VtVdpE&(F{E=oN-2Ee8w(*e4B$PyA@9-;5!apjm3* zhEw7=jD76M`w&c`#2KFJxK8)mepJ6nKGy?Ul8-`3f+6qyhiZl)TviLC*{Ga|2abJ` z5;9phgFp^hM8cILo5V@@nbpVcTPyjFb*z=FHh>jQz9V-3XKl0C4D}0k1wN&+t6%q* zZ!OaY+PMQec zmip_<&|9^40zG83zl+{I<>edt5ide;$kXQUmnx(lU!oXSX`K zuDS5}lej|ptkj?B-!fdc_+sUVzd%kodF39}r0`-w$L407o$&q@QOetCMllIYjDm>N z=Pb8A;eEbIER#6wvVFpG&wZ3vmWuyO^QhQ~F!!b}L?Vyuwwnjk63aAlrrwgU=IFI; z-eX|yr^T=6%U@=AZ6TtQC|51Evf9TJG35U7{|* z#vD%y$@&(6n={>4XG(iC_NQ55x3|AU11{06XmYZp0lwqtWa@x(w7oY^6o9qeoQY1< zmBcQ+Ge!Jmzq73u+#EGV0XOa2b)M{N&VSo-qUrFdibx@X?AK4$+Up6EPAbH&A-c4;ss)yWrdyPM1NOOUu}4nm35ZH@fDo!E2x@ zebW~n)2emi#-PY8cd4ysnu-_vg?;S#N)9#zULQDtML(Rd-{)RV3W!v0WMyXxk#aFbpf>LQrG*-xHFL~$agc3?ESTNu(Pv+ z0Mnf4UmxUPoCkB-=vbv}xy9a}Fa1jCEJWtd@q`TzL<-cQ+)#^MHRe zmGa>kpD;mKQp-Q?DeX{Vs}U4whoNFJ8YCf38WuuZS%0wOulMr4{v)n%Xk1};(ppaC z!&iwImv&#cSz7Mr+S%yMvz)~v(Xb!7oC*VN*1i0t^xl^LfRr-rt;}iUaY<@RI8h?E zDlf4ZXBwJ+!)Q^ST;AN;{AoH-TUE;xjg8O8R10#~j$JoDYhIQQ^wdOia++N(0;}?X z&`q9Y0DfynLrM(u8?v^I9o$}+Tt@C?)c>{Ct5q@5mrs$-+l_s?x$F104FiQ9U~4DP z7*)^GvtFhos4I9>E~Z*WJO}^hW2oJ0K=ROKqqp*xn;CN~JNTwUCu2Z>3s^}I>`{2~ zdH=FO9>XxgAtLbo0aJ>jZyC9N^B2vS+5w0_T6=#|3v<% zhFXGuNzE+1`;3tzAvExN=nK!#=d@`7z*t{)MfpCT!3i`P;e);!M8P5Gn!H%zn`+z% z+&nS}+rb9!7xcyTVRIMXCN zZKIR}0-}JCv6CY138vQ59_1f#x|dO|K8U`-&1na!V*L+uXsWZuSX@bWWh=^%6s7dG zsi?~T`A`6Umfg3@-049H>(X${a&((}O|-5j?ddQ6uNkA~+7f@`sM(ge z>1KFTikoLtVPzi?T~!`-u`+xjD^J4gnB$*eP{1;`k^6Y=V{PPvv(y5`?u|qNE-Wv_ zp@umv^Rl|Bxz3DoP=bEXy&a7QqdwB&e%q;&1i(0+c{}(}X=yLQ%XdTygT^ha0E3Xt zdGcyX9DuRBl#-Xvny^QWySV8z%x_pHU9~K>ix+j9STiXX`B}nn#w*tzXG}?RX*~j8 zEfZ#vFhM|7M^EQOzo{i(3^-t}meNss++NUEomC)sQu=+FRl0KIJHy8M9qZl?dLHA! zy!*50safc@{OUFlf{CP)qgqKv)m#qTil zkw&cw6IL2_eyff6hUrrGxR_{+B?we|vo4}0t|xzNXV2kpecAWPuflxBhM;KhYz@XC2!=e=xr(gXKAExP)E(a+zR!UqxPB{fgEt z)A8;3n#1+s&m$~>Hc&54bIz09&5$rk)ZbI&RTHTWk_u0k2oWjNVomT_9UZebm`2Xa zX?;cZiM7UmUS_tEl&?#Ql0KZWXD0@({3n88(l$Btg5%`xcUW1H7ICcRdPee`ci^gW z(mJmVkO|gqzUdAV82;azBGx5D7=J5V`7bMJA`BM6~tR477wf~3vwz`|E$$U$r z1%5HJMLN`uF8vwfQb7W%_mp{rw6Zh4AnA1aYa8&DN4KS#!rV2lk5){OLWJrgc13j0 zQ0wcOipo~W{y`PZ%=`A&Ejdd`ab$mM{fbgKObv%__~tgKvZ}pV7Ks=rbvzbOL0J-@ zl20xSOO+={C^3$KS>FKLnTL>aMxN<=*Vjep!MhB{0Dz?h6r32J# z4-TTEz(a_=_EiWL6)u9vy4=~5I@+bwyEh#p=lV>(>Jsi2N1$}c z>LY6%1&6s(!a*#>iAkx=eEnWuT*BLE&U;igsm`2kCfb-V+Smc}VS4TO!;H_}Y|||6 z9usd$oWHE)BDy&79yfJH{e)vLD%}Z_iN$?$?`I?UOJv%^T$VSah z80P{9M6{l!bJa!BS$fEbdY#UCk&{QU-c`{7M3Mll^;VavJ@192sL9O4;*F=Cg&;gK@T}{kj#EmcWVkyM%j;FQl?c=0L z!k_13H@9sIOK8x(Up%#itk|NBVsRw-4uz-TB;>dKye&MM?N*=2JsV8Nl~4$`F~0|# z1qF&Qq&xkK@H{KW>y=sC?Ayf1_pXmuyBotYvo5mc39{2B7Ku}XLN8L;)JU*{PqsKF(YCC&;T2!XXBP;Wl|6_{`~u`oqzFm-3_nk6VMphZV19Sr)Z~6y9u$bK z9hfm_*-jE*Hg3XTeYR**?MiJn{@Q*H`t9s>b${JOiGV4#i%aQ^4+-EtKAlxjng5WH z|GW4lWR6_ohDU*aIrBP*_uSzf6UR`;#+wc?xXz-o#j2#R4O3j#QOib*D6h%`0Cayi zVULl?w}Yq5G)TY>Sh06eew2)2x+5_y5gZR08D}eekV~s&uHTIF(`)ONJGiWUy*3WP zdo6pVsNK}lG?qc!6%rT`y04TVJLrzy!KmRUD8pe#u9MTw)8YBX@5jn*u(GN}XP6q< z?gK3#rvk!-2O$3*=;~knpKwy?YVK$J<{nK&`?N~7I4p`pJa^wQXpRHm>ujI&JSgV) z*!F5=_S3+vkMFoPcmpFj&srbNB!caNT?P^H%}+&ZAG@w3RX$2nQo{t1gesF0$BgOejzf>BuS0~@AM@V3X?qe!rIdNy%k6ElUsmwnn2>SAZ*n%LlFUdq4>b@K=0g0?{kDCiJjmI5KryQ?B7=~n; zmPgDQ`P8SiURXd@m$7^@^$72YKDmCD38mPn>q}7mbKw1qw!c3=DT!u*9rzY@;9vY7%jJ49t1^u(6*paMBnV}%B z0gol&31c6>nT|jvb{$z}5O5$>;uHZ?(_IL~ly4cZsd{<3JRk;gb$1U_JoQUoY|UJ3 zT}1bh6;u?|Q`^FcRM{MVt3F%Q9~9mgvO!-hMna&lL$eq?(|UGJf3)Puv7Ah!-^3(B zPjdOZ#Socxmo2h0YeJYh=56YiW70VOgSZ|lx71XACedp7=ulbOKKx;Ke$urXt0gvT|C`0|Xrk!F#mvk_|J|!#RrMcz4B;saLu3>ua=6=j z$KyiUg9cMhOJsL=jVs9-W}UFcT8N`815+%Yq|E6`b!%&@HrU6fH_QN|0o_c@XgXVk zBn^PSy>$C|OR)}+L|$HF0w%=HEJRc1@mLM*6qV3{!i-*^*IvE*B5J!2v5q>yBzA}_ zDrW7!H4OfyK6t8Onuf{h-6Ay=za01?S1Vb5x+(-f>SeHZZWkrd%I(d~QRoYklMF=8 zCTMC;F&&CTZvleKQIJxfGZBZ7h#&5|CEw3qx3BFOM@79I6n=6oTK9z?$XYEpg#@b? z^v9JKt$wEzI9*Et?2B>heM`=Z0cf3CY@Li`fvN$;W6t(9=V7Tk$ z=uC}wf2-49n(#P-XZE1$3lr?7X^_MfGJ^Q3w9fXnwv!yr4+ug6f4`VQHQH_-D?!hW z8u#ja){wj3PoluPDX#0;KD!x>3pu5gM+sHyAnd$`>Di_St?$8)992DW*dN-zMUc8m zbBm)PzW^zzk%h&@=;b^levSTsSS8d`)PlhxB#Q(eJ2@2$g`y*eC^10TVWCxpLy6E` z4dz*u&HA2dx@}dG=gC~`BK(ZqzLPG{sx%W;(FHfr~O6A`^Ix--m-0=VI(oniXNYvQEZ?-Oy zj>552o%-6Hrb7m&kJ9K)p&q*}d(EB;iC)BuMUKk{)G?BCy58PD^YTs>hEL6&UZ5mW z;Clt$A78b9Bi1^pkqZc5S1R<}RruF#TzBh{0p4M1+}`5=$?6|i@T+nY?z4wD*~LN+ z_Bl!%99XqR-S<0jdo)BpE-qvQ+^^7dfC9~%E&p(XBUUmXjxP0D39~_;4@-H>H^Ln! z61hg9N4O0C8Psk)Y-9G^ZA%!09g3lY9{d17&%rrGlVO?U?d|F)4?qy@W)1qCX$Jqp z2XHzTgrFb%Oz{CAJfjL^`5J>0)0iQRp^KuJArx1Pgt^z?MadTP*-3y$ zrOcW;b`DblZgE~?!boAF!0G1`lyA3Zc!DR6wYA5egU9PEluZ3N%%~Ctf9l#ezMvUz*Oc$+^}gH_RU95r*3qYm@r-h)Ezm$)Q=pHab0^&E&1HU!*(^X zs-Tr^!pYOKJachG1OYquktx6pBN?E+cDNYm{Bad(6M9yqimqF|)N3IG{eVGzjx?UQ zm71U$Fdt5S(E#}DiAjN*t?+d{4S+t`b8h?^EOn`YIbp(KUe>EM@p>khB0ZUl{lXZW z_sL1jgSma{;it@Cm*wRx7{8U39t(CyDZeI~&Y=-|K!e5&7NLJsUTh)lxqNM`#%D^B z=$_a6F01pJUaq~v|CV*J+wyN02Q-YXXUu)tzBby&9vsMhbQI&GNB0p7VjJmLyRDTy z6+ly~`qW5Y=ORbU2Yn+ag%6dE#+Js(Y3L35)Mp)kJDXMh+X%OI@YyKn=g}>zgB$|U zF;U@e9lo`3w*hmNfrcVWJkrITH2*#T%so(y0wdhDj?xKBLc*~ODJfeF!Nj-4qca+` z&tC7XKH^fk*O3p%mG%})|MRNnt)YZ?BUW78$J?9O+lScuLUaGmWX2{7fXeNbLCG z?P4toNTtkW0sA}n-~A2HRBhC3;oZeBpXp(DhlxbNF zy$O<&GhPS1<}U;{-+0qfTD1y8PG9b4a3zV7CQyd)k z0WnPr3yVgNJ#pC8Wf*n0>YF#ftIR2TE^>;Q!+!!C%2{H zVs;dn#%<{1+OPZ9ZFjbwI;R`SDDLZQF&}XIM&WgKf##6YJ6A85O_hdUM0gf` zEh;M)p&T(2yM=4M(c&0=Kk)luoo_0b7I?koeR|H{@U+I`?yp95+WzqjtU}*sT70kr z>sC_Ow%Nx#x)jHl+HEQQ<_{ZvZR?*K<8dmrLJYzH0Cy@PT*J)QQfIyz2i{8uvJ9!S zQI%RWRHSJ7Z3g}J_NKT;3s51S(VGw~Mvp)*wbwUX-Yvg+SZLau>5aKMjiXMeS_A5n zKUprQ<<1;&fJg{1bpL{+PxxnU?(Ou<4_lj?wh%}NasH@onTfHXq4&WOktZp4 zH5@)M6dirRUQ{|Ed;x$q}m- zxhfb|tYRona>GsEz-^QTYIBj{=d<>slX2}NPnSCwG)SqHz1+NCjLgmk_tkf zf86%H-b^Y#E0rQ7=6iu<{LNht>aJ_9m#-}xh`)STE)ve(qn1Z=SwvmyiWkxYI-pLr3{dgKEY6C&&+_3U?V|`&6NzbPY8zkkJRxi8HZ@E+{??p8q&Q>g~eLv z+3aMC2(}2#3$5Jm1DwE?u+Zn3`Dz!C`P;PhA>|7{TVE9}aEKRsSH&dldv?4r`dSU)v(_^lmq!u}GK4xW)6Vyx zUhVG3#xuabJ=Zs?cXrq*JOQu?xrHxfeMG85d`65i>|u>N6K${4O*r?lK~&EDfrtO_ z%Z}F`?$-7jH&Q*#nz1*%ot3N0s--SLd9SzCb7EXR6v!d&y{p=h(K*3pWSrumUYjgX zw;2{c;1jm9fv0R~xj1I=^P0h9ItyT@Ctn~M#_?~+b2I_@!py3qA09h0&Deu=cRu}Q zm%((Vr-ks0{27;qhJupDlFhy#N>kWDk&LZ=Z9RoT_LSIt=_k3j%j5PUlMm{MiPi4g z!ka=OE@AxxeBqU$wVOE>3EW-mFUgwAib=>P?QLk^Tfdzdrw626GzM>9OMCEL>CG%` zl@c?17k=pKDnS8);PqZ8_h(bPUVrrfkc0WrrZmi{-2o$W8jyk8T=ytl6hZ+AFMv!s zbiZ}gGvY(nlr2m&rZ=qSX+SaEk3qZv1QXtWtvwXRWnEN(GkEX2_}kQ7i2Y`RV?pz= zd1s*;u*R+ZziX@SetAgrA7ro1?Y7br3rOiECL{oo?m|LBuh5E$gp$CyYlCfV+Aa!7 zj!jIsySjb@K9Z6qwe=>Gz5zrG<7P7r2PZC9d!Tw%QW9X4_X$omGqP0x^5aKyDhZlZ5R&3{Z0giI&vt}qmdijC?Sj}f@_JDWEO<=5FssmOhB z6$qp%--X(ByrX3YVXMUg{YJsP`IX(vj#<+g&o~9dSOF2>?0fgJ+!IVLGBU0P_n>RT z`1Q5!D^lONvn@1kDgbg;YkE0^n58tupEM97guPVozyJIuz%tkm?#zv!l+aPK$cVY= zp0732QKsh?+coN=G@&hP$7{{&i1YZhaRzbZH#wC4_Mi5L)U7~)A zcKz{B4xO-MOLI175=3RIbF5E*b)fJZPlP9rdS%*e{akLTct>O2N2?SMq7p4-qJw&` zxwN$@4j(@Jw4Mw0ft{D1*?|9Uou89-%HUWwSv=irTW8CBt@>h~I()|*?*DOwxT&{y z?ckyY@7Wo;vphrBV={@Kpn<^i=_!l7gyu+{g`VDd4iJ?#4y8e+%1cVl&SdR;x_brG zQSM2|RFq2r$)@bbyRYt@v;G%fZf)^Adp6bNb@U5h=@%PRL2=&C=HU*g(>@*^_q}5d^gJ$}78TE4eX|G2CpN_pw^5+-AvuX3jjM8?>zV6-L-KLo*i_IjlhV7!B#mix`<>;PdPPhQPS7v>dtNJ&Caw{Md^*SUr|H z-V$?4d3r2oDd>tl*4aDnir+gwgh+cF`BC~Fc8j2W(I*+OeJ0cNL!{~V%QWPypZ((wZCfMb^M=R@Wv=R+ zJNs;85N3-oUl_{8MFN?+RgiBxUxUEDR#@+?(xYu2dGEb>xyFP9xGG`lDArwB}@ruMQ}q1A6ek{c%2+UE@Y~@;j-bPM_u)YTi|q7-)_Cd53UbNPLbKwA$TB2304e1`6hX96cSXT2=3Syt*aQ8L50m z5n%$boXzLblF=jH+P0q%JY~T3*i%fp*s0Ba?H6V#(=haOd$>~-T(U|ZAxp6+*K3U( z7b(m-vd~P#H{T8{Ved-%&$SqTw#MNYm@m>`jq4|P*Yz!FSJalY;9XerVtcLWQN3xc z+o_u?r7I=}dU#fezXEwQU&+i?_UM)HM zsM*ts#YHPuxNxq2-w*h?L@l|#)~90*P|VnXk$io7I{u4yQ1jSf6j?S9Dc z^!_G)TY%yezy;M7-+<@~)&rwB=}y2rCln$aNgGdTs0i1Fsfd ztsZ6n`gHZX&#kVyJPEVtQyK>hO6PeMbqkEg1!6L|1 z9v=(0;V%lRdbA}ag{7bEZEbBFf?6~~N2kZf9dp(W=LzX7he}MV02iYT_$I#^a)<8d z$r3|KBsthU-RHAOXDdf@lAYlx({540RuP1t;xsGAp)+UvC~=GrJO?%&ot=6nbRXbU z{_By1KZFX1ir&Eo)gD)Q0!s6Lin6i@({J4S2OsW16d={?kdw!4i9{T3Ho(oE&b-k$ zH7anBGBm_)iiavkfjx9U`V%_Pik-I3%JHow1Me)&(;bD|r+{4L-X>vW$Es_N5jPh|nndl8+ zN3sWOwE~UHLz!UwGdvMjC}NnQZ)stDR$g-vEXZ@k=yuXzY2rHY?wam)<`Yzkq;Fd`RKRwv!qE<&s$LU27_qi}eI! zqM+qG-{9y^cRcSgEgBcImD5gyZqRx+0bMMICcyN`_5y8F2fw*ZavEgIRJ9*ve|&h1 z2S91n@=C_(!?t#JNonM^vuZ#XKI5bR;3d-1?7FPkf~3_6@gNoue+^PbZb72uBrh`|2Oy8Xp;oX>qTlf1=%1Si5E1NXmDv% zVqB`wie@gD&K}Kvaf)+@;=u_Ql>dII*e8E?AV~Sab>92%5i``cH5Y%CnbEY{Tnnu8 z5l}&g=OqfmJw)7H$KkG*SYC~*S_J-J3ytyf+>&X=_&_cfFfE6Rc+b^t%G9$i4Gml` zYD=$l>zR}ox7dC0Crg~Pw1=Y|(VA;1>Ws3$G7~c2@wg;VWGCeC<~+!x4UFbZQcLPn zQu@Zb-IOOVepKoJ?}%1?AIRXwsCsmt{z)sZv)Gx7_Dkb4b(i{w`y|dUyHU!a6F-du zPwqTEjL-OruOAA%!92oy>YL@>7NO4x1hWWx5j)p(=z%TUCt{|993>Y2ZMt7Fe2@hbrfg zV<{3!3|OABE0n4cwzv`<1{1Oq1>h2WUJ#z;K0vl`wr}R!Q`i118Et00j-`%!8Z)u_ z6pKFneU=a1Df}-|?0f0;*6GQ7G^O87JnjyEe&fabzo<@|wwJ{m%hi@c8UDv!)2VL5Xapl- zF#<3U4@(&DvQWD!o?R*BJm8*p;bYtLyX^0Qt-QIjQ_y0Ru!NZVo>T@v`!JZPsvUTvU}l_w+Y%&- zm;X4;q1Dfv<_^8s9tAy*q>3#jRbwmDaq{@JmAF{H;tMGt)i=g(zODKEh6epk$u|pC z+c@$8;W|R9gzz|49{IZV*)XegCwCCd@<%5+Ys1F1;pZC{& z3?nkT)4pL%993R09b6!*{34XiwObH$VknwxXfh~tDSky}$dLR&Ta)}zSntG_HxhFO zj#7puh3YOKPpX%%^kPW=<+lijN(}OrtkUtd$*J0H0V?5u7PZ^SNk|Mcz-5Ej+lo6E zuQ;D10KNoJle`EHmQ#vACME#LooR7CqjHYz)@CMCT;>rSs1^K^_}e!|8K=WzdQZAa zj=!XxU^BDj{e^d4=jUSt*meSbZox_r%fZcj!tIi3YyfMiJ8&uhh2$N8R&He0^v^HzunZ)q~7T6&m~xK%$tzXI*edODL^UiZKiwkHv!rol@)mz@#&ZkyW%`Agvw zkmCHpnF=3`;S2J)IVt3TZ)sj029O=kEMpW^Ya+1K0y9WKsUJZ-2Mof0BY%MYs%f8{ zV-#3ERRg$>HtNqsCQ=<+w3Uk+uQ9`&ByQ!t{ZVBCsFgj8T}hyo^4L6$^T_tA+Kh;g zUE{^}MWzz*+zgi*f!C->~|PvVMrY4Gps{BJdYa`9HYAgIP=0Bt1~?L2t9k{n?J zxfk^(*QeJjC!&_b?%YUe+I!nz!D0E?E9-bh(s*Dxt)QY1s>p5vKy8lCdbJXClJv^J zltQS|W-Oncsf`^3UFr99%pMSRmo)M%&V_$oT(W3x_6rCI0A%3x5jIDgZVZ+PQP{++ z*SlfkI_>w+#ZMby@k!h~bbJORHR!%^g?BSMQjU(hZAl^!)YZU%fzG&|w?KjepmykX z@|@fLPKC|(PSL%J;GL5{!HMO&x+{;&#<EO2&f_Qh9 z7&G|rsI1LST9<$4JZdERPKA~@dt~T%R#m*q$EL2w{}M6CafAhAA^)1kMHzBRm&-|l*vIx4my8iCJ=u-4dG$U5Fa-PM&Kmc0SyUY&!5WJ!65Kcfh=t5zSW`(l<@_2|)N`zYP4M z)F=hB1mP#Z&sKtsfcd1N=FBhQi$lSW$%fTHRQuYF#Rymu5l~|NK4Jf!wa#42B8m?< z6-^UW8;iSiHhg7#+O%80hsd~JAI~e)dj6D9%`Nf%UA31S`KIPXU^g_~>xwty{BI>k z*^Q1BSMedW5pc5GF=bk->IIak8G<;*v-i2?IK z2SWil(Bl-MUF*OKpJ4$^oUO>w(i5&A>-aPEC8iQ9Aqx(c{eXwc7lHI<;+q?+kwI;R zUp0LFM!y1ptKXpe;EBK@0@4g!Gxe*!7ye@S4q)2+YeJLupR?3WNywbcs>_(%W(sQZ ztP7rWeys+(9*n>I7BG&b*;9Lu-7*la7F)YnppvQMfo%&7q)CJ0xuU1nm8MV=(M?TP zbD+yN^aX%R0W9alH#rn^EE1Z&#m!mEJr!{y@pG9keO@Z}Po@tMt6#?6Uy^ov&xZpDT(;HOd$V+-=D${ugWC6rEQav>n@x zZL~?_G`8B^1ky+=FZ8%58&ipPxdn z=1EfD<2MR+Lpj8#S-nHcY0w?wFgA$aK`~MtLcZr0jrl?kqiWH_^*$C1Sn5U^;z+g4 zrV0e|$1@T9$Das?O|PBu$v4mb7i;f#jR%asNTrwCnB;V@E;QYj5e&TbgdzR$cZ%9NaS7{*^tbZv3 zs(YKwwWf%PR_RSvK+vY%WT$ZV6PNlphkh;)i(aX{-Vmof(68_BA)LyXvs$}HO_wwV z?~S0vK@^=#I2Z+0433vlSm*OCiXF9m=2*%<9Bpk*(cC1>bh{75PuQ-DE`HW;2obF( zYpQl>0X-#Atur!cG>ErHn%yGpyA55@H8Bwa#$8#ATiRr00l>?`3w+=iv#<+RgTi z&)aBYOhha<>E&6gY^y>|A|lr~U9%Z}q{YQ^d%0W#CsIH!YIa2k>m4KUKWuqJO~uF%wC^O!WV5X*J-F3{8CaTgTc`J+dqAF+V_VkqPnWJ3RuirvRBFKA>U4rO@_l_rY|-r|$bWnUvm1b;Cv zrO)BkRxGO~A*AGqkoWkVOZt***oPxV|K$0yCTitd0BW>5bzZW}M7fgSqR6O=EBI4a+dNdW9RM{2n`m&y1ru{PNKvVJD!!~x9 zn>Jp#ym5b(O4Ma^^+2TgkiPuV>AYCFT4ee3LO;>5=jZfsS%B5$xcUVdt!(8%WZtP>*@BC{xa>%>l+_3tHvLR5S#a->#p`j z+ksIr-p8O8SMD; zu(x$Nv0w#DTU9Y7YqK@c_30U3CVNvCb2deG$l+dY88Yds4lRH=ui9#+LY4~3qS10( zRHDT4(p|pSC_I)?dD?&KEZSGuy6J?%wv>z`BIkS3W_c#;b4yk%(Wze~p+p#^ZpHff zBQqYL)c|bXq>IID&jWzLCI_``c+FZqUcB%mC3FzBzgd zsciAyr$a7(yY~|Dd1%4faQ;1ZkWA#U7*)snwqx`lv+Dikg7xk20*r(mGcD{I(9js$2da0B&bIzXsPC`KvA`w zs=e)Jb#YAuFEhth_6n%6S}2xqxHsB+C3Xt6Y1G*zlmoj5!3_d_gIpbqr$Rkc#Ag zYptJFbiTij9N!~*c^5ZiQs{Mf{m#_vY_h4Yak~s}{rnHg1>xV)oPeiqGq}#Fo^5sQ zF%vg}06fUY;3k+Y8FvxXvJDLX1A0iuC}beH2L}rT)1^+VUdJQyVIO$=C=^n{gl=jB zSvj|oVLhs_cEkxvKJ<)E(nUCJM$sMha1wC?B!zRPZmbtaVQ&poyp?igcCK;4B-~{4 za*9dRkbseI;4twRdb9U!d{0pRz^-AVHfm$2$dKUacZF)k=85WMS5qs7nZofcu+u6m z+j_xH%pk}ggl=ON@q0>TYhZ8gEneO*^Oo{U?FG}bw3rr~@gSV?>C4g?eAj!~p2_Fq)i(E{_WGOF?>Ajnm*EjA zX+)__cQuf!9xu=U61wYUX$0?F_3?BBe7)luc@pX2zOkda{wesw6lg}gsh9(Ykq*D# z;C+f0rSs(Way%}j^K3SYxM`_%IRXH0e4Yvh(z`ZaYi#Q2HJ5#IYu|*j@vN;vK3DHu z9jNoax4GP9RvoHq&NVpWy=4Fn37}J@`N$TS0gyD48#`1oclY;%T;8v$M_13mqQz_X zgzU{`Cyf&mmHC4|q%%0jc@b-0xml7j*cllZs)32GfkNZMPQ(5$K&lql35`T#W@d$v z{dswDvFTzfm*)kUt)ZSj2nu&1<4b_K)y{&|3o?PVmBlBakQ`UxU7WIF=B0u;i>zHk zaer4FYejXQ z-SA}5rC#%=yXC>_WjT+h=)%qUw-0yw_Vm+guJOqc-eXKiGEal)Lu39yRhQTM7cOZe zL}Vemc@^)Pa~tc!4Tol<>sdOTH?@c8H^hrK;e%2s#0Ng@r$L|9S5v*0(W-^F*#i#= znQxxE5fustj+j;@J||sH1Yge{L()T5IXSwiWB(Dv&m9)8BV^OX3b^SyX^q5d?U^PD(2~Iqv_W1odp2<3|(WqEw=ho2^^yceyFUM%~+wbJH z80_Ik5dhs9$psrGF6-V=U$a}%?*U-GCY4ydk1L-hD>xswGRA=fH8^R)1wa-U+%)mE z>Uwy%TzqsK#id_pJVxozc^#+}@^ZVt8w&sK@H&f7QR&+H=w&Y}RC6TA22{NUX#-;riH5C>g*!oVm*MP{*n`e%&(3HMa0JH9v^> z672r`jFjZ)c^`5HdDE(`Df;(Kd4RM<^)G}KaxoD9xu8o^8MTZkx9iP>ruFXbci@_Hg zd}}KkkLRF9DidTUrw7aBS-TtL<;ms0uXy#h=bqp*IpDVqr;9w%WwO%^E`AMl4?&Ro z{S|BFkHGD=4bzsuhX>m|{RR}Y0L<;74@@#txEK(TlamY0^p!1d+#D_Qxw-y+vGIPd zQS->P_i!Gbe(=6``y12u#>Iw0d>@NAiT2!TW9G9v@OSa@dZyP|a^Ds_YwNl@b>j2+ zL#N|vzCQvEEu*A;vuD!z(U+F`1-bJJLU6}@i=5NzA6H|ab- z*mUj=8NUAOzykpXzPw*S-)Z%{0vyzY6076g{X-E{`fA$)epR#V`rIs6EG~Yj)iE_q z)!E@Wm%?(j@#eBb15kvaS@t4kom<&xFjINR`Yoij{-&hzOs`nmb+ItJ>To(IYqM$l znbo#4uj^KFbhYwCy({0v=So)s?}gXJ!^Gw&Rnb7Aw4}i0W7-e?r%>iPxRMG~sYNb2 z`p92;0R8{GQF9JYPEL-_q!5wr?`yh-DK~Yqokq0_A9b_>NFIsQ@lKD=&x3N9x!2Zb z!6z??`v5qa2L~~w_g83r6?1ceoU$_bji8Xuckf(TBoyCmR3PGn9gbzWGG{BE-Ee;! zYs#C98oLXzy!>xpQ8%um!|im`d0(l0^&$*H&Jat6Seor}l}tQjUgIt9b~@=~Xd^Vi z%+O8vhwkbt3lh@EF}$LZ_L1x2AoOv1V2UsdLkG<={5zNFm!iK32eA7RNH`EnO8~Q8 zSeO?;XmKss?kkziBlui~QKqb-s4Re^tZDx$Z?p%L2#=5PMkaKq)w@swn@*S1oLX?r z>#(rC`nw1qJQH%;qem{cnCN(j4FX0jKnLTy8@FvRW%Ose04U=7`(l$q^pp8xga5Vb zjI^k?0@hpTg+3h>j~gdRkYkqjkQKNm9jz~coM){U?YF?h!sJQ|`H=6fhMS8kECxY) zpo@sko6g&R3qw(9u2Hjn2H`Hnas*sRi>G7t0r_sU3nli`|2QS!T0L9#+0uM+D=x{A z2IigeOfQJAU4eCpSp)XqTy zXx6OO%wg?6hpp>=0yT>W8AV43fR8RGfD4 z?RS54D%bLAlloB_8IrC@28xRZ{|Z~M+&@c6&rR06PRGuC_PhJeD&H0DyrppMuxDF`vADD_uJOAkh2|?=P#R)h;=8Pvt6O6^{yY3+^5@UF3~j1%%gf7< zL8;X9NCX^kI#YY%S2aK`>FnepJGT4v^SYL$K7n;Q=o)s<~7P5;c;5tyaE9`8Qa=W-Ex_$On7uQXZUIlC;S8PIQ-J`w@5641Sk2}9b zz7$%0-1ww>|9-%HTkhgjsJ^_^(N?+azRjH7CwkpQPU7Ebvq@vM+7O6+4WS?JI0>sD zdhOLL-adEJhi4Jo>`jjG+`6IXX7@Uv>g;;#$j-b0re!W3`y6EFv|i4V&pkayznyE} zmEp8)-e1X;E|(+5p45y`>85Z-wq(=$9mpIr+rtrOf%`jMgPX2mB9gu0i5@v%ImW(` zz(D9%Mq{rJ6mMT}rlm4AHmtSde_Zl7Xk{qf{5~BM(Qw4L{_(dC@ZH4rwmj+&Tr{2E zRATC*o$je$Gl50))$moJtlYO%E4H`{A~MoxlUT#T#)@2SfAos~xpfqP3EAymgKQt`2U#D0eokmQ?j}Jm zz5{is^sDQ*u7I?&)J)l;jt6FkoLKNDJfHg8>@MDqdm4?Lz_#;M`lyk~<)zMki*biS zyBF<9Aw!e>3F>*vXq+*LM-Zk<>Ntj8Br`pMv?YB4w?=Bh;d&|_x-mj7q%G!&>`c^D zp7TgJxXgjb$a6^4Op(05ND0~_gy@WhZZ%g#Th=+t{PZ?s5$jad36(Jjd)|4=<+uUe zW_!wt&%Idf?X)=hL|a5fq3}P~GtnAQ>i~v{j)or(&J8uu%G=vG)G5o=i6T2v=i|a~ zDrOW6!g{C^$e!+x{hGhpc5dSilG|%?Q1AeZZh(z*XLR`<02kdnTv8`6ck-%p{oTf9 z2o#><73wZxaRREP!xPq1R_l~VUscoB%Ry~tM%Mb;NDi@x234E&8l`=dJfX00s z=LZoz_QF3%0g3kmrU1zUkZ4P$`@kG`h?$(drB9A^-dxdbw!7SIdb;0B@o7H4g)FQ; zFBQ6YU$+pw+OLas@^g`P(tHoVz4YbWb7o4_jfkg<~DNs zbL=rf^aplh)~B{|LWd;Sl6bv7bx1tf__GSda<*?=+KpA>_VER>Rf^82aWQ(ikyNFX5N$D>(cCM5f|O*8H9uN1m%*3y*sh{`FEtMG z!6ED(n@JnFPxfqTDB(K@hoyzU@fH@X4nf;hJI!eddC}a@p0P|32|{ITrcy*dVyhB!mJO834};> zN8=OXM(Gn##Sq$APQ}GCfo2MPBL%Db-FwWz(n=Az)?2=9d=e5%4n@ZZvfsjFEH5eK zD2grPf}nt*MhwrO$|alU#I*Ql-PAefsCOl3u=$~VfVe5$WGxgwh2Z;WY~Du};xXfu zAL(U3UqGN&EsRHm&n*mhX!5Jp8}Uo8hF~OLHFDDHs0DnENT}WSrxJ2WUh8q=3!x~r zWJmbS-?_7s#_(#BmI){GVrQl%#@srR{5&^a)P_r%i8wH`j1f|Y9K_97*a)Sn5$6^! zQZLK6UkKh6=%M225kNz9Q+UqXQ?kd+d)p*q&Mh{KOg%1D+13t>O-I2Cu@uT!8EhnQ zxHGQe#i;J9X9BWXyeB_D-o^agh7v}R*^^agyg*=uT~jgzwQvF~=F)b2Ew8~Hx7KT0 z$BJfnBtA4@uD{C=F|EBP4;L&XVDGM)lkW?T6CY0XS?r&g%UO!%fX_H;u@$W zXo-H*-KpPT4K!J@XItGT25|Msm+|bR4X)(dK}9UPM=B||ofFRdhlM#piA~~eSqWQM zU3^+Uw~VKLU)Lv4Md|eu+2(g-b>=k?%)f!gvaWzbc_yI_lO2%Y)*3@UT^byl6~>y2IBA8URpuPp zo2^S=P>LfMI>XAUUq#$-w)h%f@4NyCyR^dQ=@JWm9rb>R6V?F7D%r%M1p14s$m zTN6ZSyL>Y?@~+2>Dns8ReNF8gZ|sss4^mE!;l&+^y` zJ|^EK zh^Tc^53%pl6aWyX1}L_7UXTOq+2su#GGl}c@o}Get}ZZ5T-5wT^qmx&qa;Z#QW#nO z;Luot(~dL5dj5L^ZZn5}7+xp{`Pl222RuxYy+zR|Bg-4sqgh>{1li9<&P+MeOkK`U zJRCvhM1|mdX!`u0qxN_$2IK#AXN^hE-NKEbqGvz12*;&k8s=rOIu0Z^r}(}1%HvSE z#U;Bv(9hP1rVPfVUF_)O>TFkeAdF4$@-JfuQK0JW?@$t10{2O^eF+ymvTl33a=e*f zU8}xFpKuyUc1uXN^{f)2O~eE7glwJHE__VKTdUZ>`w77!&+AwQshLLp zmbNc`LU+^X*J38m<@(^_%tl^easxEBr35o+%|w?*#`@kWcN__}bw1nbjBes8tA^nM z?!r0~AyoXnQC$rk&bLHZo-unK;cn!K)7s+YUgmfPJ*s&*FP!twA(SWeUz)g}pr?>( zC`UmWrek|`aEl6NiPoG9#Qrh>rw4V!1V~ig|FGRODH=2v)4I(X-S!o^XY3A~hP@&n zXMyOxuQW*xxdkMAClb7T#tT-*97aRQ(5izyWn31LLk>2lU&TqE3S}rH%9VMJ>KS3G z*KY^E=wwN=GiTYFAJoKXK`k^AkAM@e2DW78nVp09N!7G&o1~qKq&_o)&Rh@9#4mJ)4VF7DZmx%xByu!Rt?yVehSOdaj@G9%}R*QV>W`zT!uBW-* zE!pjQ;X4ETSCsilby|QtTiLF9b^f!f3;b3+85hCZia0=egnUG#MNMk-Jvel?GErOe z-WPKn(B{tfj)PV3_jUg~=-+U(@rSt}Kv#p&!8BYHHp+Dr4p+C)bHdm_BVXfO$=xy= z`gLn;qIrU^jfEM2H7RTPmz`?B1n)pl>}%!27@sc~^RH(*@715)n$+<>k^Sqr)%fmb z{*Hr`R&?XuHBPPnbtbHTor$OME8tAR1H=x5Jdn`1*yMxHEHSJFDb?ICF}yTh_9uvQ8~U)%FX#RQL6MgWjw+?{0m`A|`}P-f3&&gLG8?qeUinzuN%IIdHX4H4NJE_wbDO z1arRL5ojQC;$OxRuK&Logp-zhZ*AZ$S)elQAzYWYO(JUvOBhc|FW_L5Ns-ZnUNL2FSx9l-ugW*pFBT0ZCyw)q!rr}o=aGotU@lJk zRN#}8Fi=~3{~pkdxXTqzidBUkhiLlfK%1(=3Z5NIbOBlBLE41VcFe_&8sJ~2FB zY1U6(4Zg2zIPg2K5Go71$Z-N&bJJ|aXN4}u_j49k+NPQbE-gQU5OF#H)FBB3CR1`~ zy{B|@DSybBVg+d|5w=vxj8_6X!F!A7S@>NHxI?m)4|{n~oRGc^x2>v)d5&0CXM%Y| zgaJb*;|d53qw?P1FQoEm){l z;Amm$-^P-J$e>t=_v8aS;j^u4vX!v^*uaC@9rg{!Lo>_{G>R@d82SpDg>jT#eoY6n zX?g=mq0#Uul@mr2)vKANK~R3|C0LyN_yIR)9|uuoZ%TsQ8u7RT@dKeMj;~T3sptAV z7EJfxJHibbf5<2|_Rn!&!$pQYF~YNmipiJerpAxEXfJ z0ybQ{PwBTQzM*zq2W3J+;6Id#&QAK72acNrE#aU|ks{~vnvd#Eya3%H<8)3M9VL2P zD7gUZ>finSd1+_n6pVZX(hMkf*96tNp^K+7>@-58pU$le*Ry4*mv0bzW2qe7#37E_&+&+cOZ;{3I7RG@NbET5WLeii#?fm zUnG29ks*(v(>2GcKlZnlVi#bm_9g|%YeSd-Lh2nM`FCQmt%N=>J6d?k6|n>(O_+T+ z3Wm-yHq3kzr&~_ z#FuQ2=jLwBxX9B$b2jL3@tq&mtgB103R{A`3|P+t^-?PhWfgd%N|_9RjVjiug=SlU zCMees44iXEwZ7hpz#s>eZTW-t5#;-@J9`aK=OA}c8FnwI7_$9_5hH`C6)W-gKDCL) zfUk?o%=c%8Z7^rNK+14!Dm*{bx&&q}o9(t{ zP{!>oZ9}M_B%5bcf0E+`%o62Bf6HsJNQO!xn_0A|?y@`0MKIf~F4#@4`vpQzA>mJ9 zYNM$m`|BZ|!)sqwRcxl|dtQ$K@-M@b#_vIprSydB8JaO}NY9#*pQ(j8TKSL+Hzuh? zbAKPQlIf;T>ms7^?39Z*315te8kB0Xl0_Q((M5jJSo*xCu1Ic}VHfx2H(dbYjin2= zO|iltiWeg;a(_Cr!E4&*FBtn9RJL)oGU*aA7;648&>@g?W(f5~_(DcixqiwXOI1VS zYca^o{N=f^Y}GO&u%e*YxK6GJMpvS8G3-LTCh*z!iYNCQwT5el zS-m7o2khy3&QL$X0`@#HTVAc7janU6!?Gv`o*Z)Eb1mvTerhDQeJ5-%aP?X3FJEw; zrdB7G}?#io-0q=4sP7?TUs1Kj5|p(adegCPnx+xw|lrQ-mRWCHgDc0c9PS&lr;>Aw=7a-*1i1py`mpJ!%;zS| zYQE{?ocdPJ%d4gq{F6%(&uVzV#w6|l4reru!9p=9-{jQRI0iL3(xOL2;AJFU;A^dD z3>@)yM$S4SkLCt^#W*iasPhT>8AQO$NQe~OfqxCCjl z*I!{5YMn9q(sgj!?T@Li4qIZ-MrPGe6cY>*y_O5KshpZ~kYXAa9^VwyI9K&;et}1UqV`3jMaipjdxzlNwIzI*je^w0`;w47^3Y!^1W;ddjB=nC6KKoJiI{C-20}d&9WMnrs?W z$`%PICe0=Jc)dR;(Y}P!<}Ud0dK~zfpaC7ygvfunu&1pC)GwzM@Yrj=^%Xir`x2K` zSWm#@Ae$9t;xHlWrT@Y>CLtdg!hfh^TJ^{^o-bx`)iP=8*A1+J1}nV{Rc_l88pS{@ zSCWmE@6OTZG3!CkMDL@)^JI3IvLFNMWVKKAo3#69(6N&SZrSv0xzdJ>{dSgJKC8fN zzdC%y>|F~Rw%T@N0aA%ay;7S`PH{W`oxCr%hLnl3|5PG4*@`sVdWCaY)qU`N?w(|& z0F1_&dhUHzAWh5|Db_z8+LF|w8}mC!lI#U``%z6w?@9^M0%fT6t>zdEJ_hWkgu{+d zL*$6AghMAi_!tmjHr~S zy+Ln9-}2pNpn}drSyU(Sr-mDzl7A;5D;1J!*U*|>)}^I z{IV7Pd0oL;f1hi5;EJHD8|1nTS7U4Hh$Ye8n3|6$8(mwZo00P^IA}*6Bja}x_NgCt zQY1*YI2rVre2wa}WBQjRK>D=BPGZcL-l3LMtg&^;W7-Y00{Z0yC-pTRsi>*rU!AwY z?-3v1mIro_RU$M^2!!UpFkw=oTG!+2_nijhJ2L5E@g_BhF3==_Gmd}N?DEOsr|y<0 z_a!4rB_Lzp>keH&2icRCh%w(iBq;VYwO}JN2aQ%95_Oy&+4<+THx9s5wNks9q0My} zbZyebt#9u#_-gzZ6OIDXr(tYyEJY&=SCLtqgXjfo>T=AGi57&qvw<^tn+`#zq33p zA9^W1E@9LjvJ+4D!=!0`T2DZLa&`g%ppX?y1{R|#glu^m!{PMWFM`}zH&5ST)IqFh zaZ#xAeKLTt!KSF?5`z;{6ySQOV0G*RUk>W@&Ez+A1YgC-!H1SHMk7wzNHP4vD1E=l z8!hqkoh8XMQnLGBSECBwgDGJnT^BKS4>IPTXElI}Q^~y|ZBA@Lf93qu(gs##EZh~w zg{%aXE*-qt>vu*E=p!4NCEqJ=yW&TL_sK9@6ztGJihC^V^=CQwYky{|h^mY%q&`-V0qd zc-;!#56ZHN3FOe3q5#Q%Jxfd_hA{>-_e*M2sD2zh3uNM`s7ley) zHa67wsbzY`xb;z{_=G3wibFS(b*c)9n2mpjXh<#(7T>Mv`mbwgolpT>%Yw?u9G9$y zQMw7#HPk(Q*ppfJY_|xIXM%bPZcaY>x?XD;X*do4{9NLp#N#y61NmALVON zSUkDa7$~Dp(?$LDs}5L!z~&0+vqEhN%$?I! zd*Jh1_hsr}LrL_IVp%?`%PqbtQd<=^sebk5@D9k|pia#WNy8N5Q=~85(R#{GsOTD-=&{!LU@?ob8`YatOI|c_yQ-M!_;a zQ-T}`P6~{3L$-p4)pATm|G2YXG-EarRoj=(aX8{ z%utAVRto&~LT~S0n74Lof`I`4la?J+IP9~Q2AY++!{-X-bi1+uUyiP4USpyB7_Iwr z$!s?ycgJ@jLNCvDJK`PhMro8f;oG}3)Y|cIty)BWp;6}rQsXGaKSSj!sfePg&Ek1Q zn9PlrB!bTBUy8*Z;20kJ>~h%RbrC$0kqu))St2NIuuBfU@OG}%{`jLN#S**uujdh# zZrvEOoGpc9#l!aUZe2mMJb;*>U6Eek@7yti-O4u%9Di>@%?II5RGXE<9*6P}4ysa_ zVuKLL>fIKIvKU84K91uHWc9|P{|R$6-f6xHuR5;Pu$A@jVyHlG z!Fi>KWsAR#2QBv5|93_u9LqS__RoENji`9mMJXI8w80RB|5&s8qGqEDTCuKJ;i1WWViT(mZLfiTOk3PIo5B|_= zC4Vz2X}?lWHTxUL0lZgket-fbT+NErJ-W_xi}f3WxJT`Ns%Jtfh0H@Hxz!Oy{IfEa zK~}>{&NlZ|_ab_$%6G}fvN z;u9jfUo7eB^k$@Jpg#!2r}v^fuMSc@qCheF6hnl@{7agMHM%r>-a)Pn$!Sc2{O50+#7h|WfELXLh;X2wIbTlFTZDAlWqBgu|XZY85LPXz^ z<=Uu$DY;gbl?WBPq~8`64jf^rL;Vx%wl8*>109L$p^PS+_Zo?RX~HNG5=o-)vmlBQ z_&45szvI$^LRes-qu1gFZ3Zo1potr~%G8k{Us)p4iqx4wXm(E(L=ziHr&_ z9h9*+73(G-jcGPu2Fn<>^fN_PzdkWuJ=(5Gw>_=sW0ZlY7}>Gtd4ZBU@$|$TT*`H* zL#+L>{-hT^Ft5ZZ+~}3|6VX!Fk>ye?!6cRhna09Sx)|geRCI7R8bkU5t_rwBAI8{?dcf$~N7_nvV0p@McBJ5iS+Tm`=imd>{IrLMyk-{oOAq~Zs z1iUR#?jv~)1rVUE%+w11`p-QC@I7Ju4es}?4OIMFd#CFju6L4S+l_^fX{}LD-~>vb z3Joz9_d6r#Ih@JzBBt^ohQ+MK%&Zi<#nls-usHBk%6cCyorC7r=sW^bCXgarJudT% zo}JJF5bJ`K*WEU9Zgs_KOqS16xpE-Ey!p4ZdVaccwkjm);=GL!&QTwxS|s(lYEM;) zHf8?K&{g}2sLT0NW`HnUJfB~8^+g2}KHa1}DC6wcw^H{7p-aTVjlGUOC?U2-Mle;r zS>1_RsK~h&Wqop?IM9_KUv9DfAaQ1d&u~=CE=EG?v=W{jmYECFpG56rXecBH4oqf~ zvt7=7+P?0&A0d@ zP$CYE!&G-97cu{zy!gK?gRa*a=^=hL*$=Ioy?5Wcwi4yTsyspdX>`L+&tw~r+Se6DT z>sLkKK*mYsZ-^_mb%c%xu0F99a;3en|II)H8#{cA?7o)S;m%Lge5)X>u8Op6jT-EE zt_dn%H%T`DuTwsB*)Hv|2RqT0FaF8z;yNmsN)v{{2!6ENJS}>R3RXFOtjL)q#}@dS z6N#0B8g+$Vv2Zwe)x$bZ5Utn$DH6`E(U*{VG*y2}V+gHcvnCKH`|I{Hc!?`s22=R4 z_dh-sV3mXaYmZJE>?#p07-LTQmuo`X1x`V~S`K^<_jb`b_8H$LP>01J=fLq+f;RKd z=MT|R;}~BS^3aYLvHO48T~}|3SR9!wv|egUyX3h&&^gb`Z(S^&AYel50=4=ev`9>DoHso`@=GEVr zCro{HZWxKiPbC-d0~M4j7)iZF`cUh3?QZVJT$NaFj^%dY=`ea9`tc!bBp%|3ilrV^eG`Ug*A&hs1=o0!w5J{L8_3B+*zd$zmPG_xmWyu<#(IIJRXV(_M3n zZ^nBU3`8RjlTY?&qnMESLN0~1q6rldN#ZzXC+3FgV8H~@I{I5j!@iIKLm=uuEHI7N z4*BhWz9}HJsQ;5Sh@uE<=K!U);?>@c-CLurwgG%ShkR8P@!i(i>Pyh;n#SUvx3uCWI=bUp z%D?P1?Tp?7GX%i}yXXEevFxQP%y(e%?^YA_cJ`=AsHD46hh)!^(r%G3 z-FeJW=AiS&8{=2*W&}54RX|S!xy8g&w3e&bBpkxFX~46n@N;ZOlvab@MfqQ6-$J+K zRA3E%n{jmgsj02qJEeL)`kW2=#U9Nir8DU^=Y1OIdBWfUr<3MqJ7y@asxxP4pfAy? zu_a!5dE+OJK?|SDJSR_o6$q`>(zeuS*Ty6Sj=r%_8Ww&2Zsd=T`}58wE3%%Q$4=k3 zo%iLYX8J8{-#84gOc@hlk;H+X5nnkNP`$o^&tVaz#U6METS5r~%hdfPYGg&{oKX&P zcqX5$N?S|g(y8Kw!V|x%M-JXUfP?o(AH(J|wgfFxRl#@M_QHCj!f>^plkA6-#}hEb$@eWme)PZ`J(9i^AI~RNuZEWE z%B{z!E4@7#cfCyW6x?13P16Ovghe<@#}k5@dWV@6h&{L43f&FVsqv}mU5EV=<5sVp z!dFzMXO}avpjz1KHqThHr)$X1TIxTf%$E{7(!0bjk3Z);Vh1rSGA@5bAXdaFyPi_{3a5qj zjq;w26>4_Joh;CPDjywa)g5!fIRByP-9ycxN#gwNshmgnJ{wz8k3UGUWubv!W6{5X z+ufpg{&fK+TLaoU9U((pYFGJ6Xm(JaO>tW9F{l*$<1yT)&+P0p8Lgz40ENDJy4r%X$SRgDTZjMZfQ$Rmg)5rZ%eIDkRp~k;bsGitO@3A7zb?6>0 z42~SlfeoZUH_$OUjF+A%4OALG%yEF{m0fSbS)F2h);?_9PK@d)8dtoYb6NTNUL z%#%}i2t0e8_%CKDN&C}DbLp;-_sKuudK3HYU}1e3i2O9zB$+b%8l;0bRv;9_akj18 z;ja|&87XxfRs5ukCg8GgqT(QH0;Hg}Vt&H<6Hqzmk+C4n0m5Kg(f{=YptjIq5Zwfj zXki?9zVZx$U|UFNu)bXX^}fI}ax@SZ^#4=_;F&l%$T{_Yz9sN17WgM}#BnKgpwy6L zz%$}FkmmgV{|hKCWLSAJuubw-|Gqlx=7zNO&%h;#6EDE+!izqI!W4Tu55&b6w>w7* z`-8Go4Hm|70*ouzUi7#-hyV7wr( z__Dh()lNOzW6BPgCc8)mHt^MZcxzhaV~d{~wx*mH`^%nw+}&4tdqqbX*@_+16{YcJ zDY)|=e2JS7dju&`@e@wl%doQTQfgB*do}ZTh?2~`8a;oOuduI~cH^W=gmS@kaEKZw z8XMgRm&O`CNe#k5>_l&qPikz8D*Fuq{w;tHyzUDI7c@J zUCjLinz+*(82HcV3L*9gU0zz2#B5bA&*uDmYt~`w;qsL>qtjkLv`dPS;pN9Gmj(%y zS+xt6_P?K!)k>Q-dadxpEi@-wWJKy%(k+fPI$)(|c2Q+H_MC@D9zi>k2EUCbrI?K^ zn!`7!OG$Fzo{7B-f15FsVR>_3IKes#s^jtsL+@a**TOhQ4!Pct?Z#0cjx%OANodl) zTY0``{_x8GeU;O6g6|oBfQ-3p_K_GU9J-Sb~7cpwx4W{q%$z-Y< zKAxk9cUs@S4aonU%OFx=3OP{(XzUJ0y0V&S<;FcO)|aTC;~VSBBUU8=?bERu6b15G zxdBWYK6BQJ`^VX5;RgXBXZ;clD}wp!s~3ESQixDmH=0_to-QpPC2ki#B=g(FUVbNT z+NcV3yh0w~m%D4NGp5;au_OpFxl=ufmJ%I%!H?(!|rET;F-|NP0uia?<-Q;Oz~r&1@1SXEY;F@qBvRMq!%BB`?< z3*;ZXWQ+X9$IKxu1IhbKV#pfXMt8W#>UkshAYD$Fs%*};Jwy=87s>*Cr7IkB9d z^e2-^0_MWYbNVa~y;mT)1Idhr#+WJbD1ssPX+_CJj^Zj8w82Xmdry;sI`V91GMeL3 zs-XEpgs7C)($7NqvMRAIJQU}rt1Q}pFeya`r4_DyBjJ&EDM)2Q^->?D7PFLmHj_Wm zAM}5u%YO#AveHrRg*#__IggC}B^ZW|Q&l#~YqVMn{F+pD-XaN!@q;`9U`5L9*Z*Ou z)KLm`rGk}iQMUd4=2%~X*NioJ_jaxSLAfld4ZG%uZF^-;>lqCjpsJJMpi5g*xQ z-o~mwYW2DOoA}d}MZ3+cq^)6FF7nHnTf_aD=1tilm8{I_{`h9;qC}-HQU3A(^~InE zp33|)O?=lEG((#Kd9b?2jB&>e;}%YBg0!ownOnF8oEkJX)#a7XOdw!+(zbytb;98~ zXFXmlO4Gt{1IucICW1A>^0!(<2)S^5iN)2G$6FJH8-*@n7gkfV7yCugVrO>kG%F)S zPu%vTQNPz1Z}`7>AE$WQ6$s0 zhN)%5&JQ+~i*{^ltxq0!mY#Df(OSdGQshc$?q)w(oUmBvZ-$lkh4I?WSGHt~@zD(;so>7PSkp(b)Oub<^ypLbi`9&oy_ zYtvtO(lZWHd?MjW4`-vY9dRHk49zjrsMzhoqCUNrxua@YihaU!=aGwDx*slGlGNzr zL*r8OA{|LHCDQtmUYT1esA_&W!wJ{cQ_)%YFrNL~wGvm#eT*2bExydT|A?5)CASg3U4-06VRbsYYZVY|*RfUQ5T7@DD*C6) zJUDxrm+^9W;zx#&Z|==>U4rb#?hWP!6)alak1u-@)%9T zy4M+b@7w%xdM&B3zVp2PDJ|(XBzBiLjfiM5wKX~uxAn?V^8boE|9_^pIF7rIZiFIM zDPOb3^jNoVD&K~bV!mc533W>;BO&D5mWY;o84F<~Q)<4&l^W%i?_b6>o9;H+qEXn! zmT5EF{kV_&C-ivS^UM1@-skZ+=RD4Nyw7<(e>m@>MXdq#J>wUKodtx75C73Q1e=)e z>sq)AM_kzZ%5~7l`=UMBA$!HDgkscBa*@*SZCd65c~`r-vGU;V zo|DYP@M~3_!hqT;l1|y+1Z+X*eD70Db8h9vJRLJbX z*qfGHDqP&G0yz4B+-fRn+VPNy9F;v4b7TLq_1RYJE;03vUL85QhtTFwIkj#A#dK|q zXI^h^>%Jp1@60lZnCe?teLpmtRP~~Owr!S&Wh3U~M+@*46=@xOM@6A{CXc4YHQLAk zCu3l?YE9qqVrwTc-l04cyWD#8K1k1ahdBb0Nj7K#>AN5hNhdLyDseiffpdwKBUdeTjW)Kz=(7}g^^7lc=E*hQmBa70w80yp3G7zP z-07Ki`7!}mC+^bnaJfAO^=>-uJB^1o&BM!nS)(KAU)t@SRCSW+BFS8}_1F9Eg59-hB;dz(627-Ar5cbVs!a%pZ8mNo zdb}+jgve=vs!TGzI70$YwP{#y5_aP)t7nmkQ<+&}64a zfkkRC1T89h9z6}&C;*p0g?i)m4^NgQ`-imWMlO?UQf`LBk~fr4IU@r*;SLG$AF8zZ zJsww<0_ws7|K4r#RLi`HIXOMB_$j&GOY68IvIn$hQ2uq!zcX0;`-Ny*G90D z#lDN-Gu@PZ3f+i~RHJqUzjdbmOHV|*TsE9qiDt$2Ya?o(>}%&hu1w9}Fhf&2Qr8ca z16K&ks-z#k*nkOP$dUIn2%kma0%XjpAfYmsFhV|ezt<4#`4J`8OuCG%ta}EFtSDFr z83m_2=OS`?qD1}N*k!JteuJ!%EG)dT8>8E4S2sTqoW@@EocrOO=+dgt2y!X39X4tv ze#hUTBOSOg4*ds|4_Qv>Z#Oou!2ODPogaN02g5;ZAA1Qk${L}0F(Rqyq(!tFwtFNi zUN+3gbJaxYp=4NzZz;XV&O3i_<$+0v)->yx8;_NG9({Nqzm)9g0>?gjZKJQI?ut<6v;jeCUev@}IX_fZ zLTUz*;$${Y^Z1`&OK0+ER4Mc1ic53C2{x5$vptK(3ZGUVH`#9gwuPRfOkKm8w}flv zFQ&8tr;}<|zoZ`8xnCW6_!t;RYy=^!x=VSb+n2^d>GszNcTG=WpqC;m{2!5gbaW{! zR-(!IK=U|5(6{+?%^S?MC>UgH(V8KQUB*pKB*UUEd9DcRSEo)Nbf&Z{duSvHOSx#-W}j7 z{pkbV+iwV7?om z0UW_exz6xg3pZxGEOCv%vB731h*_AG(_1=Hfp_lShF~+tfFh3BCTwS_O3oflZ7ksB z!_}b3Y+!kS!dZ7|NO`To2f+G&u~JIn+PJq#0C@jvKea0`dmH_10u63WthFFccsSM_ HyKv_p>_Z;P literal 0 HcmV?d00001 From 4ddd0f48c0c4009e11b8a3e6ba444dea20d6dc3e Mon Sep 17 00:00:00 2001 From: Geoffrey Aldebert Date: Mon, 3 Aug 2020 18:46:26 +0200 Subject: [PATCH 04/12] Add dot --- qualite/1-preparer-le-jeu-de-donnees.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qualite/1-preparer-le-jeu-de-donnees.md b/qualite/1-preparer-le-jeu-de-donnees.md index b6978aba..61c7fb61 100644 --- a/qualite/1-preparer-le-jeu-de-donnees.md +++ b/qualite/1-preparer-le-jeu-de-donnees.md @@ -76,7 +76,7 @@ Tant que les données de votre administration sont dans un environnement logicie Les bonnes pratiques à suivre sont les suivantes : * Occulter l’ensemble des colonnes dont les champs contiennent des données couvertes par un secret légal (se référer au guide juridique pour plus d’information) ; * Occulter l’ensemble des colonnes dont les champs contiennent des données à caractère personnel dont la publication n’est pas nécessaire à l’information du public (se référer au guide juridique pour plus d’information) ; -* Privilégier la présence de variables pivots. Ces variables proposent des identifiants communs qui permettent de lier plusieurs jeux de données entre eux (ex. Le numéro d’identification SIRET de la base Sirene). Pour plus de détails, consultez la page [Lier les données à un référentiel](2-lier-les-donnees-a-un-referentiel.md) +* Privilégier la présence de variables pivots. Ces variables proposent des identifiants communs qui permettent de lier plusieurs jeux de données entre eux (ex. Le numéro d’identification SIRET de la base Sirene). Pour plus de détails, consultez la page [Lier les données à un référentiel](2-lier-les-donnees-a-un-referentiel.md). Il est également nécessaire de mener une réflexion sur la granularité de votre jeu de données : * Faut-il proposer des données fines ou agrégées ? From ce97cd494cd466a6a3c455a1310e27b61cb2306d Mon Sep 17 00:00:00 2001 From: Geoffrey Aldebert Date: Mon, 3 Aug 2020 18:48:17 +0200 Subject: [PATCH 05/12] Remove spaces --- qualite/2-lier-les-donnees-a-un-referentiel.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/qualite/2-lier-les-donnees-a-un-referentiel.md b/qualite/2-lier-les-donnees-a-un-referentiel.md index 7959da8b..a7103439 100644 --- a/qualite/2-lier-les-donnees-a-un-referentiel.md +++ b/qualite/2-lier-les-donnees-a-un-referentiel.md @@ -20,9 +20,6 @@ L'utilisation de données pivot correspondant à un référentiel offre plusieur - une meilleure réutilisation : intégrer des données liées à un référentiel facilitera la réutilisation du jeu de données et permettra son enrichissement avec d'autres données partageant la même donnée pivot. - une meilleure interopérabilité : intégrer des données pivots facilite le lien avec des données de référence fiables et à jour. - - - ## Exemples de référentiels ### Le service public de la donnée @@ -92,7 +89,6 @@ Ainsi, il est pertinent de diffuser en même temps que votre jeu de données, la J'utilise en interne un numéro unique permettant d'identifier chaque type d'action culturelle (arts du spectacles, cirque, arts plastiques...). Il peut être pertinent de diffuser en parallèle à la diffusion de mon jeu de données, la liste de mon référentiel. Des communes de ma région pourraient potentiellement le réutiliser pour décrire leurs actions culturelles à une maille plus fine. ::: - ## Le cas spécifique des adresses Très souvent, les producteurs de données souhaitent publier des adresses dans leurs jeux de données. From 8ec71122729963e359d3275e5ae31bb2f3d501e4 Mon Sep 17 00:00:00 2001 From: Geoffrey Aldebert Date: Mon, 3 Aug 2020 18:59:27 +0200 Subject: [PATCH 06/12] Update page --- qualite/2-lier-les-donnees-a-un-referentiel.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/qualite/2-lier-les-donnees-a-un-referentiel.md b/qualite/2-lier-les-donnees-a-un-referentiel.md index a7103439..d40f2374 100644 --- a/qualite/2-lier-les-donnees-a-un-referentiel.md +++ b/qualite/2-lier-les-donnees-a-un-referentiel.md @@ -14,11 +14,11 @@ Mon jeu de données est une liste d'actions culturelles menées par ma région. ## Avantages L'utilisation de données pivot correspondant à un référentiel offre plusieurs avantages : -- une meilleure formalisation : en se basant sur un référentiel, le producteur de données a l'assurance d'utiliser un format de données standard et partagé par un grand nombre de jeux de données. -- une meilleure synthèse : en se basant sur un référentiel, le producteur évite l’abondance de détails et va à l’essentiel. L'’obtention d’informations complémentaires se fera par le biais de la consultation du référentiel en lui-même. -- une meilleure compréhension : en intégrant dans son jeu de données des données correspondant à un référentiel, le producteur facilite la compréhension de celui-ci par des éventuels utilisateurs car il se réfère à un standard largement adopté -- une meilleure réutilisation : intégrer des données liées à un référentiel facilitera la réutilisation du jeu de données et permettra son enrichissement avec d'autres données partageant la même donnée pivot. -- une meilleure interopérabilité : intégrer des données pivots facilite le lien avec des données de référence fiables et à jour. +- **une meilleure formalisation** : en se basant sur un référentiel, le producteur de données a l'assurance d'utiliser un format de données standard et partagé par un grand nombre de jeux de données. +- **une meilleure synthèse** : en se basant sur un référentiel, le producteur évite l’abondance de détails et va à l’essentiel. L'’obtention d’informations complémentaires se fera par le biais de la consultation du référentiel en lui-même. +- **une meilleure compréhension** : en intégrant dans son jeu de données des données correspondant à un référentiel, le producteur facilite la compréhension de celui-ci par des éventuels utilisateurs car il se réfère à un standard largement adopté +- **une meilleure réutilisation** : intégrer des données liées à un référentiel facilitera la réutilisation du jeu de données et permettra son enrichissement avec d'autres données partageant la même donnée pivot. +- **une meilleure interopérabilité** : intégrer des données pivots facilite le lien avec des données de référence fiables et à jour. ## Exemples de référentiels @@ -71,7 +71,7 @@ Vous trouverez ci-dessous un recensement non exhaustif de différents référent #### Référentiels techniques -Les référentiels techniques ne portent pas en eux-mêmes de significations métiers. Par contre, ils permettent de décrire une donnée de manière standardisée. Ces standards permettent aux utilisateurs et aux algorithmes de pouvoir automatiquement interpréter la donnée de manière correcte. C'est le cas notamment principalement des dates et des coordonnées géographiques pour lesquels nous listons ci-dessous deux exemples de standards largement adopté. +Les référentiels techniques ne portent pas en eux-mêmes de significations métiers. Par contre, ils permettent de décrire une donnée de manière standardisée. Ces standards permettent aux utilisateurs et aux algorithmes de pouvoir automatiquement interpréter la donnée de manière correcte. C'est le cas notamment principalement des dates et des coordonnées géographiques pour lesquels nous listons ci-dessous deux exemples de standards largement adoptés. | Nom du référentiel | Description | Information | | --- | --- | --- | @@ -81,7 +81,7 @@ Les référentiels techniques ne portent pas en eux-mêmes de significations mé ### Partager ses propres référentiels -Pour favoriser au mieux le partage et l'interopérabilité des données, il est donc encourager pour chacun des acteurs de mettre en place ses propres référentiels internes ou de les paratager s'ils existent déjà. +Pour favoriser au mieux le partage et l'interopérabilité des données, il est donc encouragé pour chacun des acteurs de mettre en place ses propres référentiels internes ou de les paratager s'ils existent déjà. Ainsi, il est pertinent de diffuser en même temps que votre jeu de données, la liste des valeurs possibles correspondant à votre propre référentiel métier. Celui-ci sera donc connu et potentiellement réutilisé par d'autres. @@ -109,4 +109,4 @@ En utilisant l'outil avec un jeu de données contenant des adresses, l'applicati Le site https://adresse.data.gouv.fr est limité à des utilisations ponctuelles et des volumétries de données considérées faibles (moins d'un million de lignes). Si vous souhaitez géocoder un très gros jeu de données (plusieurs millions de lignes), il est recommandé d'installer votre propre environnement de géocodage, en utilisant par exemple le géocodeur [Addok](https://addok.readthedocs.io/fr/latest/). Vous pouvez consulter des ressources sur [github](https://github.com/etalab/addok-docker) pour vous aider dans l'installation de votre environnement. -Qu'importe la méthode utilisée, le process de géocodage vous retournera une liste d'adresses standardisées avec leurs coordonnées géographiques associées. De plus, vous aurez également accès à une information `geo_score` correspondant au score de confiance que le géocodeur accorde à l'adresse retournée. Cet indicateur peut être utile à garder dans votre jeu de données final car il donnera une indication aux utilisateurs sur la performance du géocodage pour chaque adresse. +Qu'importe la méthode utilisée, le processus de géocodage vous retournera une liste d'adresses standardisées avec leurs coordonnées géographiques associées. De plus, vous aurez également accès à une information `geo_score` correspondant au score de confiance que le géocodeur accorde à l'adresse retournée. Cet indicateur peut être utile à garder dans votre jeu de données final car il donnera une indication aux utilisateurs sur la performance du géocodage pour chaque adresse. From 06e894318064706e23bceae3bb82b7e770555169 Mon Sep 17 00:00:00 2001 From: Geoffrey Aldebert Date: Mon, 3 Aug 2020 19:25:07 +0200 Subject: [PATCH 07/12] Add Reference cadre commun archi --- .../2-lier-les-donnees-a-un-referentiel.md | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/qualite/2-lier-les-donnees-a-un-referentiel.md b/qualite/2-lier-les-donnees-a-un-referentiel.md index d40f2374..dafc516f 100644 --- a/qualite/2-lier-les-donnees-a-un-referentiel.md +++ b/qualite/2-lier-les-donnees-a-un-referentiel.md @@ -5,7 +5,7 @@ permalink: /qualite/lier-les-donnees-a-un-referentiel # Lier les données à un référentiel -Comme explicité dans la page [Préparer le jeu de données](1-preparer-le-jeu-de-donnees.md#cas-2-la-structure-du-jeu-de-donnees-ne-correspond-a-aucun-schema-de-donnees-existant), il peut être pertinent d'intégrer dans vos jeux de données des données pivots relevant d'un référentiel. +Comme explicité dans la page [Préparer le jeu de données](1-preparer-le-jeu-de-donnees.md#cas-2-la-structure-du-jeu-de-donnees-ne-correspond-a-aucun-schema-de-donnees-existant), il est important d'intégrer dans vos jeux de données des données pivots relevant d'un référentiel. :::tip Exemple Mon jeu de données est une liste d'actions culturelles menées par ma région. Certaines de ces actions sont gérées par des associations. Il pourrait être intéressant de publier un jeu de données recensant ces actions avec un champs correspondant à l'identification des associations. Cet identifiant existe et est standardisé, il s'agit du N° RNA, identifiant national des associations porté par le ministère de l'intérieur. @@ -13,13 +13,15 @@ Mon jeu de données est une liste d'actions culturelles menées par ma région. ## Avantages -L'utilisation de données pivot correspondant à un référentiel offre plusieurs avantages : +L'utilisation de données pivots correspondant à un référentiel offre plusieurs avantages : - **une meilleure formalisation** : en se basant sur un référentiel, le producteur de données a l'assurance d'utiliser un format de données standard et partagé par un grand nombre de jeux de données. - **une meilleure synthèse** : en se basant sur un référentiel, le producteur évite l’abondance de détails et va à l’essentiel. L'’obtention d’informations complémentaires se fera par le biais de la consultation du référentiel en lui-même. - **une meilleure compréhension** : en intégrant dans son jeu de données des données correspondant à un référentiel, le producteur facilite la compréhension de celui-ci par des éventuels utilisateurs car il se réfère à un standard largement adopté - **une meilleure réutilisation** : intégrer des données liées à un référentiel facilitera la réutilisation du jeu de données et permettra son enrichissement avec d'autres données partageant la même donnée pivot. - **une meilleure interopérabilité** : intégrer des données pivots facilite le lien avec des données de référence fiables et à jour. + + ## Exemples de référentiels ### Le service public de la donnée @@ -81,6 +83,20 @@ Les référentiels techniques ne portent pas en eux-mêmes de significations mé ### Partager ses propres référentiels + +::: warning À noter +Le [Cadre Commun d'Architecture des référentiels de données de l'Etat](https://references.modernisation.gouv.fr/sites/default/files/Cadre%20Commun%20d%27Architecture%20des%20R%C3%A9f%C3%A9rentiel%20de%20donn%C3%A9es%20v1.0_0.pdf) fait spécifiquement mention de l'importance des variables pivots dans le partage et la publication de données : +- D1 : les données sont un bien, un actif de l’État, elles doivent être gérées et valorisées en +conséquence. +- D2 : les données doivent être standardisées, définies sur la base d’un vocabulaire commun, +contextualisées, et combinables les unes aux autres. +- D3 : les données doivent être facilement réutilisables, partageables et accessibles à travers les +frontières des administrations. +- D4 : les données publiques doivent être mises à disposition librement et ouvertement sur +internet +- D5 : Sécurité et archivage des données +::: + Pour favoriser au mieux le partage et l'interopérabilité des données, il est donc encouragé pour chacun des acteurs de mettre en place ses propres référentiels internes ou de les paratager s'ils existent déjà. Ainsi, il est pertinent de diffuser en même temps que votre jeu de données, la liste des valeurs possibles correspondant à votre propre référentiel métier. Celui-ci sera donc connu et potentiellement réutilisé par d'autres. From 34db9eca1aeb0209ad6806198765a3d42e05b4da Mon Sep 17 00:00:00 2001 From: Geoffrey Aldebert Date: Tue, 4 Aug 2020 11:04:19 +0200 Subject: [PATCH 08/12] Resolve lint problem --- qualite/2-lier-les-donnees-a-un-referentiel.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qualite/2-lier-les-donnees-a-un-referentiel.md b/qualite/2-lier-les-donnees-a-un-referentiel.md index dafc516f..b418d555 100644 --- a/qualite/2-lier-les-donnees-a-un-referentiel.md +++ b/qualite/2-lier-les-donnees-a-un-referentiel.md @@ -5,7 +5,7 @@ permalink: /qualite/lier-les-donnees-a-un-referentiel # Lier les données à un référentiel -Comme explicité dans la page [Préparer le jeu de données](1-preparer-le-jeu-de-donnees.md#cas-2-la-structure-du-jeu-de-donnees-ne-correspond-a-aucun-schema-de-donnees-existant), il est important d'intégrer dans vos jeux de données des données pivots relevant d'un référentiel. +Comme explicité dans la page [Préparer le jeu de données - *Cas 2 - La structure du jeu de données ne correspond à aucun schéma de données existant*](1-preparer-le-jeu-de-donnees.md#la-structure-du-jeu-de-donnees), il est important d'intégrer dans vos jeux de données des données pivots relevant d'un référentiel. :::tip Exemple Mon jeu de données est une liste d'actions culturelles menées par ma région. Certaines de ces actions sont gérées par des associations. Il pourrait être intéressant de publier un jeu de données recensant ces actions avec un champs correspondant à l'identification des associations. Cet identifiant existe et est standardisé, il s'agit du N° RNA, identifiant national des associations porté par le ministère de l'intérieur. From 119467635122e030dca3014a1351231b65ed874f Mon Sep 17 00:00:00 2001 From: Geoffrey Aldebert Date: Tue, 4 Aug 2020 11:07:56 +0200 Subject: [PATCH 09/12] Resolve lint problem --- qualite/2-lier-les-donnees-a-un-referentiel.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qualite/2-lier-les-donnees-a-un-referentiel.md b/qualite/2-lier-les-donnees-a-un-referentiel.md index b418d555..cd7fd8e7 100644 --- a/qualite/2-lier-les-donnees-a-un-referentiel.md +++ b/qualite/2-lier-les-donnees-a-un-referentiel.md @@ -5,7 +5,7 @@ permalink: /qualite/lier-les-donnees-a-un-referentiel # Lier les données à un référentiel -Comme explicité dans la page [Préparer le jeu de données - *Cas 2 - La structure du jeu de données ne correspond à aucun schéma de données existant*](1-preparer-le-jeu-de-donnees.md#la-structure-du-jeu-de-donnees), il est important d'intégrer dans vos jeux de données des données pivots relevant d'un référentiel. +Comme explicité dans la page [Préparer le jeu de données - *Cas 2 - La structure du jeu de données ne correspond à aucun schéma de données existant*](/qualite/preparer-le-jeu-de-donnees/#cas-2-la-structure-du-jeu-de-donnees-ne-correspond-a-aucun-schema-de-donnees-existant), il est important d'intégrer dans vos jeux de données des données pivots relevant d'un référentiel. :::tip Exemple Mon jeu de données est une liste d'actions culturelles menées par ma région. Certaines de ces actions sont gérées par des associations. Il pourrait être intéressant de publier un jeu de données recensant ces actions avec un champs correspondant à l'identification des associations. Cet identifiant existe et est standardisé, il s'agit du N° RNA, identifiant national des associations porté par le ministère de l'intérieur. From 9b16cc2a430a08d24575db732d6084541f4f5263 Mon Sep 17 00:00:00 2001 From: Geoffrey Aldebert Date: Wed, 5 Aug 2020 11:56:21 +0200 Subject: [PATCH 10/12] Consideration of Antoine comments --- .../2-lier-les-donnees-a-un-referentiel.md | 51 ++++++++++--------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/qualite/2-lier-les-donnees-a-un-referentiel.md b/qualite/2-lier-les-donnees-a-un-referentiel.md index cd7fd8e7..9f1783be 100644 --- a/qualite/2-lier-les-donnees-a-un-referentiel.md +++ b/qualite/2-lier-les-donnees-a-un-referentiel.md @@ -7,8 +7,8 @@ permalink: /qualite/lier-les-donnees-a-un-referentiel Comme explicité dans la page [Préparer le jeu de données - *Cas 2 - La structure du jeu de données ne correspond à aucun schéma de données existant*](/qualite/preparer-le-jeu-de-donnees/#cas-2-la-structure-du-jeu-de-donnees-ne-correspond-a-aucun-schema-de-donnees-existant), il est important d'intégrer dans vos jeux de données des données pivots relevant d'un référentiel. -:::tip Exemple -Mon jeu de données est une liste d'actions culturelles menées par ma région. Certaines de ces actions sont gérées par des associations. Il pourrait être intéressant de publier un jeu de données recensant ces actions avec un champs correspondant à l'identification des associations. Cet identifiant existe et est standardisé, il s'agit du N° RNA, identifiant national des associations porté par le ministère de l'intérieur. +::: tip Exemple +Mon jeu de données est une liste d'actions culturelles menées par ma région. Certaines de ces actions sont gérées par des associations. Il pourrait être intéressant de publier un jeu de données recensant ces actions avec un champs correspondant à l'identification des associations. Cet identifiant existe et est standardisé, il s'agit du N° RNA, identifiant national des associations porté par le ministère de l'Intérieur. ::: ## Avantages @@ -16,7 +16,7 @@ Mon jeu de données est une liste d'actions culturelles menées par ma région. L'utilisation de données pivots correspondant à un référentiel offre plusieurs avantages : - **une meilleure formalisation** : en se basant sur un référentiel, le producteur de données a l'assurance d'utiliser un format de données standard et partagé par un grand nombre de jeux de données. - **une meilleure synthèse** : en se basant sur un référentiel, le producteur évite l’abondance de détails et va à l’essentiel. L'’obtention d’informations complémentaires se fera par le biais de la consultation du référentiel en lui-même. -- **une meilleure compréhension** : en intégrant dans son jeu de données des données correspondant à un référentiel, le producteur facilite la compréhension de celui-ci par des éventuels utilisateurs car il se réfère à un standard largement adopté +- **une meilleure compréhension** : en intégrant dans son jeu de données des données correspondant à un référentiel, le producteur facilite la compréhension de celui-ci par des éventuels utilisateurs car il se réfère à un standard largement adopté. - **une meilleure réutilisation** : intégrer des données liées à un référentiel facilitera la réutilisation du jeu de données et permettra son enrichissement avec d'autres données partageant la même donnée pivot. - **une meilleure interopérabilité** : intégrer des données pivots facilite le lien avec des données de référence fiables et à jour. @@ -29,23 +29,22 @@ L'utilisation de données pivots correspondant à un référentiel offre plusieu Parmi les nombreux référentiels existants, nous pouvons citer le service public de la données (SPD) qui contient 9 jeux de données maintenus de manière pérenne par des administrations. ![Service Public de la Donnée](./images/spd.png) -*Vous pouvez consulter sur le site data.gouv.fr la liste des données du SPD sur [sa page dédiée](https://www.data.gouv.fr/fr/reference).* +*Vous pouvez consulter sur le site data.gouv.fr la liste [des données du SPD](https://www.data.gouv.fr/fr/reference).* Parmi ces jeux de données, nous pouvons citer entre autres : -- la base SIRENE listant l'ensemble des entreprises française. Les identifiants principaux liés à cette base sont le N° SIREN (identifiant d'une unité légale) et le N° SIRET (identifiant d'un établissement). +- la base Sirene listant l'ensemble des entreprises françaises. Les identifiants principaux liés à cette base sont le N° SIREN (identifiant d'une unité légale) et le N° SIRET (identifiant d'un établissement). - la base du répertoire national des associations (RNA). L'identifiant des associations est le N° RNA -- le code officiel géographique (COG) décrivant les codes et libellés exacts des communes, des cantons, des arrondissements, des départements, des régions et des pays et territoires étrangers. +- le code officiel géographique (COG) décrivant les codes et libellés des communes, des cantons, des arrondissements, des départements, des régions et des pays et territoires étrangers. -:::tip Exemple -Pour lister l'ensemble des actions culturelles de ma région, nous avons vu que le N° RNA pouvait être utile pour identifier les associations. Grâce à celui-ci, nous pouvons également récupérer le N° SIRET de l'association si celle-ci en possède un. Nous pouvons également détailler dans notre jeu de données le code commune et le code département de chaque action. Pour cela, on se réfèrera au Code officiel géographique. -
***Attention à bien respecter celui-ci. Par exemple, le code département de l'Ariège est le "09" et pas le "9". Ce type d'erreur pourrait entraîner des problèmes de réutilisation des données.*** +::: tip Exemple +Pour lister l'ensemble des actions culturelles de ma région, nous avons vu que le N° RNA pouvait être utile pour identifier les associations. Grâce à celui-ci, nous pouvons également récupérer le N° SIRET de l'association si celle-ci en possède un. Nous pouvons également détailler dans notre jeu de données le code commune et le code département de chaque action. Pour cela, on se réfèrera au Code officiel géographique. **Attention à bien respecter celui-ci. Par exemple, le code département de l'Ariège est le "09" et pas le "9". Ce type d'erreur pourrait entraîner des problèmes de réutilisation des données.** ::: ### Les autres référentiels -Au-delà du service public de la données, il existe un grand nombre de données standardisées et communément partagées avec le plus grand nombre. N'hésitez pas à intégrer des données pivot vers ces référentiels dans vos jeux de données si vous pensez que ceux-ci pourraient être pertinents. -:::tip Exemple -L'identifiant unique d'une certification professionnelle est le [N° RNCP](https://www.data.gouv.fr/fr/datasets/repertoire-national-des-certifications-professionnelles-et-repertoire-specifique/). Ce jeu de données ne fait pas partie du service public de la données mais est largement partagé par les acteurs du domaine de la formation professionnelle. +Au-delà du service public de la donnée, il existe un grand nombre de données standardisées et communément partagées avec le plus grand nombre. N'hésitez pas à intégrer des données pivots vers ces référentiels dans vos jeux de données si vous pensez que ceux-ci pourraient être pertinents. +::: tip Exemple +L'identifiant unique d'une certification professionnelle est le [N° RNCP](https://www.data.gouv.fr/fr/datasets/repertoire-national-des-certifications-professionnelles-et-repertoire-specifique/). Ce jeu de données ne fait pas partie du service public de la donnée mais est largement partagé par les acteurs du domaine de la formation professionnelle. ::: Vous trouverez ci-dessous un recensement non exhaustif de différents référentiels sur lesquels vous pouvez vous appuyer pour la mise en place de vos variables pivots : @@ -73,12 +72,12 @@ Vous trouverez ci-dessous un recensement non exhaustif de différents référent #### Référentiels techniques -Les référentiels techniques ne portent pas en eux-mêmes de significations métiers. Par contre, ils permettent de décrire une donnée de manière standardisée. Ces standards permettent aux utilisateurs et aux algorithmes de pouvoir automatiquement interpréter la donnée de manière correcte. C'est le cas notamment principalement des dates et des coordonnées géographiques pour lesquels nous listons ci-dessous deux exemples de standards largement adoptés. +Les référentiels techniques n'ont pas de significations métiers. Cependant, ils permettent de décrire une donnée de manière standardisée. Ces standards permettent aux utilisateurs et aux algorithmes de pouvoir automatiquement interpréter la donnée de manière correcte. C'est le cas notamment principalement des dates et des coordonnées géographiques pour lesquels nous listons ci-dessous deux exemples de standards largement adoptés. | Nom du référentiel | Description | Information | | --- | --- | --- | | WGS84 | Coordonnées géodésique d'un lieu | [Wikipedia](https://fr.wikipedia.org/wiki/WGS_84) | -| ISO8601 | Représentation numéroque d'une date et d'une heure | [Wikipedia](https://fr.wikipedia.org/wiki/ISO_8601) | +| ISO8601 | Représentation numérique d'une date et d'une heure | [Wikipedia](https://fr.wikipedia.org/wiki/ISO_8601) | ### Partager ses propres référentiels @@ -86,23 +85,25 @@ Les référentiels techniques ne portent pas en eux-mêmes de significations mé ::: warning À noter Le [Cadre Commun d'Architecture des référentiels de données de l'Etat](https://references.modernisation.gouv.fr/sites/default/files/Cadre%20Commun%20d%27Architecture%20des%20R%C3%A9f%C3%A9rentiel%20de%20donn%C3%A9es%20v1.0_0.pdf) fait spécifiquement mention de l'importance des variables pivots dans le partage et la publication de données : -- D1 : les données sont un bien, un actif de l’État, elles doivent être gérées et valorisées en +- les données sont un bien, un actif de l’État, elles doivent être gérées et valorisées en conséquence. -- D2 : les données doivent être standardisées, définies sur la base d’un vocabulaire commun, +- les données doivent être standardisées, définies sur la base d’un vocabulaire commun, contextualisées, et combinables les unes aux autres. -- D3 : les données doivent être facilement réutilisables, partageables et accessibles à travers les +- les données doivent être facilement réutilisables, partageables et accessibles à travers les frontières des administrations. -- D4 : les données publiques doivent être mises à disposition librement et ouvertement sur +- les données publiques doivent être mises à disposition librement et ouvertement sur internet -- D5 : Sécurité et archivage des données +- Sécurité et archivage des données ::: -Pour favoriser au mieux le partage et l'interopérabilité des données, il est donc encouragé pour chacun des acteurs de mettre en place ses propres référentiels internes ou de les paratager s'ils existent déjà. +Pour favoriser au mieux le partage et l'interopérabilité des données, les acteurs sont encouragés à mettre en place leurs propres référentiels internes ou à les partager s'ils existent déjà. Ainsi, il est pertinent de diffuser en même temps que votre jeu de données, la liste des valeurs possibles correspondant à votre propre référentiel métier. Celui-ci sera donc connu et potentiellement réutilisé par d'autres. -:::tip Exemple -J'utilise en interne un numéro unique permettant d'identifier chaque type d'action culturelle (arts du spectacles, cirque, arts plastiques...). Il peut être pertinent de diffuser en parallèle à la diffusion de mon jeu de données, la liste de mon référentiel. Des communes de ma région pourraient potentiellement le réutiliser pour décrire leurs actions culturelles à une maille plus fine. +La mise en place de référentiels fait également parti d'une stratégie de montée en qualité de la donnée. Mettre en place ne suffit pas : il faudra par la suite diffuser, former et vérifier que les données produites intègrent ces référentiels et n'en dérivent pas (contrôle humain ou tests automatiques). + +::: tip Exemple +J'utilise en interne un numéro unique permettant d'identifier chaque type d'action culturelle (arts du spectacle, cirque, arts plastiques...). Il peut être pertinent de diffuser en parallèle à la diffusion de mon jeu de données la liste de mon référentiel. Des communes de ma région pourraient potentiellement le réutiliser pour décrire leurs actions culturelles à une maille plus fine. ::: ## Le cas spécifique des adresses @@ -117,12 +118,12 @@ Cependant, les producteurs se retrouvent régulièrement avec une liste d'adress Le géocodage consiste à affecter des coordonnées géographiques à une adresse postale. Cette opération peut être en partie automatisée grâce à des outils proposés par Etalab. -Le site [https://adresse.data.gouv.fr/](https://adresse.data.gouv.fr/) permet de géocoder une liste d'adresse soit via un appel à une API, soit via le dépôt direct de fichier csv. +Le site [https://adresse.data.gouv.fr/](https://adresse.data.gouv.fr/) permet de géocoder une liste d'adresse via un appel à une API ou par le dépôt de fichier csv. -En utilisant l'outil avec un jeu de données contenant des adresses, l'applicatif nous retourne un jeu de données enrichi de coordonnées géographiques (longitude/latitude) ainsi que d’une adresse “corrigée” récupérée de la BAN. +En utilisant l'outil avec un jeu de données contenant des adresses, l'applicatif nous retourne un jeu de données enrichi de coordonnées géographiques (longitude/latitude) ainsi que d’une adresse « corrigée » récupérée de la BAN. **Géocodage massif** -Le site https://adresse.data.gouv.fr est limité à des utilisations ponctuelles et des volumétries de données considérées faibles (moins d'un million de lignes). Si vous souhaitez géocoder un très gros jeu de données (plusieurs millions de lignes), il est recommandé d'installer votre propre environnement de géocodage, en utilisant par exemple le géocodeur [Addok](https://addok.readthedocs.io/fr/latest/). Vous pouvez consulter des ressources sur [github](https://github.com/etalab/addok-docker) pour vous aider dans l'installation de votre environnement. +Le site [adresse.data.gouv.fr](https://adresse.data.gouv.fr) est limité à des utilisations ponctuelles et des volumétries de données considérées faibles (moins d'un million de lignes). Si vous souhaitez géocoder un très gros jeu de données (plusieurs millions de lignes), il est recommandé d'installer votre propre environnement de géocodage, en utilisant par exemple le géocodeur [Addok](https://addok.readthedocs.io/fr/latest/). Vous pouvez consulter des ressources sur [GitHub](https://github.com/etalab/addok-docker) pour vous aider dans l'installation de votre environnement. Qu'importe la méthode utilisée, le processus de géocodage vous retournera une liste d'adresses standardisées avec leurs coordonnées géographiques associées. De plus, vous aurez également accès à une information `geo_score` correspondant au score de confiance que le géocodeur accorde à l'adresse retournée. Cet indicateur peut être utile à garder dans votre jeu de données final car il donnera une indication aux utilisateurs sur la performance du géocodage pour chaque adresse. From d5f1343b63f23875affc22a054d6d650fb312ba8 Mon Sep 17 00:00:00 2001 From: Geoffrey Aldebert Date: Fri, 7 Aug 2020 17:22:31 +0200 Subject: [PATCH 11/12] Consideration of Mathilde comments --- .../2-lier-les-donnees-a-un-referentiel.md | 96 +++++++++---------- 1 file changed, 47 insertions(+), 49 deletions(-) diff --git a/qualite/2-lier-les-donnees-a-un-referentiel.md b/qualite/2-lier-les-donnees-a-un-referentiel.md index 9f1783be..221d0520 100644 --- a/qualite/2-lier-les-donnees-a-un-referentiel.md +++ b/qualite/2-lier-les-donnees-a-un-referentiel.md @@ -8,17 +8,17 @@ permalink: /qualite/lier-les-donnees-a-un-referentiel Comme explicité dans la page [Préparer le jeu de données - *Cas 2 - La structure du jeu de données ne correspond à aucun schéma de données existant*](/qualite/preparer-le-jeu-de-donnees/#cas-2-la-structure-du-jeu-de-donnees-ne-correspond-a-aucun-schema-de-donnees-existant), il est important d'intégrer dans vos jeux de données des données pivots relevant d'un référentiel. ::: tip Exemple -Mon jeu de données est une liste d'actions culturelles menées par ma région. Certaines de ces actions sont gérées par des associations. Il pourrait être intéressant de publier un jeu de données recensant ces actions avec un champs correspondant à l'identification des associations. Cet identifiant existe et est standardisé, il s'agit du N° RNA, identifiant national des associations porté par le ministère de l'Intérieur. +Mon jeu de données est une liste d'actions culturelles menées par ma région. Certaines de ces actions sont gérées par des associations. Il peut être intéressant de publier un jeu de données recensant ces actions avec un champ correspondant à l'identification des associations. Cet identifiant existe et est standardisé, il s'agit du numéro RNA, identifiant national des associations dont le répertoire est opéré par le ministère de l'Intérieur. ::: ## Avantages -L'utilisation de données pivots correspondant à un référentiel offre plusieurs avantages : -- **une meilleure formalisation** : en se basant sur un référentiel, le producteur de données a l'assurance d'utiliser un format de données standard et partagé par un grand nombre de jeux de données. -- **une meilleure synthèse** : en se basant sur un référentiel, le producteur évite l’abondance de détails et va à l’essentiel. L'’obtention d’informations complémentaires se fera par le biais de la consultation du référentiel en lui-même. -- **une meilleure compréhension** : en intégrant dans son jeu de données des données correspondant à un référentiel, le producteur facilite la compréhension de celui-ci par des éventuels utilisateurs car il se réfère à un standard largement adopté. -- **une meilleure réutilisation** : intégrer des données liées à un référentiel facilitera la réutilisation du jeu de données et permettra son enrichissement avec d'autres données partageant la même donnée pivot. -- **une meilleure interopérabilité** : intégrer des données pivots facilite le lien avec des données de référence fiables et à jour. +L'intégration dans votre jeu de données de données pivots qui correspondent à un référentiel offre plusieurs avantages : +- **Une meilleure formalisation** : en se basant sur un référentiel, le producteur de données a l'assurance d'utiliser un format de données standard et partagé par un grand nombre de jeux de données ; +- **Une meilleure synthèse** : en se basant sur un référentiel, le producteur évite l’abondance de détails et va à l’essentiel. L'’obtention d’informations complémentaires se fera par le biais de la consultation du référentiel en lui-même ; +- **Une meilleure compréhension** : en intégrant dans son jeu de données des données correspondant à un référentiel, le producteur facilite la compréhension de celui-ci par des éventuels utilisateurs car il se réfère à un standard largement adopté ; +- **Une meilleure réutilisation** : intégrer des données liées à un référentiel facilitera la réutilisation du jeu de données et permettra son enrichissement avec d'autres données partageant la même donnée pivot ; +- **Une meilleure interopérabilité** : intégrer des données pivots facilite le lien avec des données de référence fiables et à jour. @@ -26,53 +26,53 @@ L'utilisation de données pivots correspondant à un référentiel offre plusieu ### Le service public de la donnée -Parmi les nombreux référentiels existants, nous pouvons citer le service public de la données (SPD) qui contient 9 jeux de données maintenus de manière pérenne par des administrations. +Parmi les nombreux référentiels existants, nous pouvons citer le service public de la données (SPD) qui référence 9 jeux de données maintenus de manière pérenne par des administrations. ![Service Public de la Donnée](./images/spd.png) -*Vous pouvez consulter sur le site data.gouv.fr la liste [des données du SPD](https://www.data.gouv.fr/fr/reference).* +*Vous pouvez consulter sur le site data.gouv.fr la liste [des données du service public de la donnée](https://www.data.gouv.fr/fr/reference).* Parmi ces jeux de données, nous pouvons citer entre autres : -- la base Sirene listant l'ensemble des entreprises françaises. Les identifiants principaux liés à cette base sont le N° SIREN (identifiant d'une unité légale) et le N° SIRET (identifiant d'un établissement). -- la base du répertoire national des associations (RNA). L'identifiant des associations est le N° RNA -- le code officiel géographique (COG) décrivant les codes et libellés des communes, des cantons, des arrondissements, des départements, des régions et des pays et territoires étrangers. +- La [base Siren](https://www.data.gouv.fr/fr/datasets/base-sirene-des-entreprises-et-de-leurs-etablissements-siren-siret/)e qui liste l'ensemble des entreprises françaises. Les identifiants principaux liés à cette base sont le N° SIREN (identifiant d'une unité légale) et le numéro SIRET (identifiant d'un établissement) ; +- La [base du répertoire national des associations (RNA)](https://www.data.gouv.fr/fr/datasets/repertoire-national-des-associations/), qui répertorie l’ensemble des associations relevant de [la loi du 1er juillet 1901 relative au contrat d’association](https://www.legifrance.gouv.fr/affichTexte.do?cidTexte=LEGITEXT000006069570). L'identifiant des associations est le numéro RNA ; +- Le [code officiel géographique (COG](https://www.data.gouv.fr/fr/datasets/code-officiel-geographique-cog/)) qui décrit les codes et libellés des communes, des cantons, des arrondissements, des départements, des régions et des pays et territoires étrangers. ::: tip Exemple -Pour lister l'ensemble des actions culturelles de ma région, nous avons vu que le N° RNA pouvait être utile pour identifier les associations. Grâce à celui-ci, nous pouvons également récupérer le N° SIRET de l'association si celle-ci en possède un. Nous pouvons également détailler dans notre jeu de données le code commune et le code département de chaque action. Pour cela, on se réfèrera au Code officiel géographique. **Attention à bien respecter celui-ci. Par exemple, le code département de l'Ariège est le "09" et pas le "9". Ce type d'erreur pourrait entraîner des problèmes de réutilisation des données.** +Afin de lister l'ensemble des actions culturelles de ma région, nous avons vu que le numéro RNA pouvait être utile pour identifier les associations. Grâce à celui-ci, il est également possible de récupérer le numéro SIRET de l'association si celle-ci en possède un. Il est également possible de détailler dans le jeu de données le code commune et le code département de chaque action. Pour cela, il convient de se référer au Code officiel géographique. **Attention à bien respecter celui-ci. Par exemple, le code département de l'Ariège est le "09" et pas le "9". Ce type d'erreur pourrait entraîner des difficultés lors de la réutilisation des données.** ::: ### Les autres référentiels -Au-delà du service public de la donnée, il existe un grand nombre de données standardisées et communément partagées avec le plus grand nombre. N'hésitez pas à intégrer des données pivots vers ces référentiels dans vos jeux de données si vous pensez que ceux-ci pourraient être pertinents. +Au-delà du service public de la donnée, il existe un grand nombre de jeux de données standardisées et communément partagées avec le plus grand nombre. Il est conseillé d'intégrer les données pivots de ces référentiels dans vos jeux de données, si vous pensez que la démarche est pertinente. ::: tip Exemple -L'identifiant unique d'une certification professionnelle est le [N° RNCP](https://www.data.gouv.fr/fr/datasets/repertoire-national-des-certifications-professionnelles-et-repertoire-specifique/). Ce jeu de données ne fait pas partie du service public de la donnée mais est largement partagé par les acteurs du domaine de la formation professionnelle. +L'identifiant unique d'une certification professionnelle est le [numéro RNCP](https://www.data.gouv.fr/fr/datasets/repertoire-national-des-certifications-professionnelles-et-repertoire-specifique/). Ce jeu de données ne fait pas partie du service public de la donnée mais est largement partagé par les acteurs du domaine de la formation professionnelle. ::: -Vous trouverez ci-dessous un recensement non exhaustif de différents référentiels sur lesquels vous pouvez vous appuyer pour la mise en place de vos variables pivots : +Vous trouverez ci-dessous un recensement, non exhaustif, de référentiels sur lesquels vous pouvez vous appuyer pour l'intégration de variables pivots : #### Référentiels métiers | Nom du jeu de données | Variable(s) pivot(s) | Description | Producteur | | --- | --- | --- | --- | -| Base SIRENE | SIRET, SIREN | Liste des établissements (SIRET) et unités légales (SIREN) françaises | [INSEE](https://www.data.gouv.fr/fr/datasets/base-sirene-des-entreprises-et-de-leurs-etablissements-siren-siret/) | -| Base Adresse Nationale (BAN) | BAN | Référencement de l'intégralité des adresses du territoire français | [BAN](https://www.data.gouv.fr/fr/datasets/base-adresse-nationale/) | -| Code Officiel Géographique (COG) | Codes et libellés | Liste des communes, cantons, arrondissements, départements, régions et pays et territoires étranger | [INSEE](https://www.data.gouv.fr/fr/datasets/code-officiel-geographique-cog/) | -| Plan Cadastral Informatisé (PCI) | Identifiant | Représentation de chacune des sections du cadastre français | [Ministère de l'économie et des finances](https://www.data.gouv.fr/fr/datasets/plan-cadastral-informatise/) | -| Registre parcellaire graphique (RPG) | Identifiant | Base de données géographiques de référence pour l'instruction des aides de la politique agricole commune (PAC) | [IGN](https://www.data.gouv.fr/fr/datasets/registre-parcellaire-graphique-rpg-contours-des-parcelles-et-ilots-culturaux-et-leur-groupe-de-cultures-majoritaire/) | -| Référentiel de l'organisation administrative de l'Etat | Identifiant | Toutes les institutions régies par la Constitution de la Ve république et les administrations qui en dépendent | [DILA](https://www.data.gouv.fr/fr/datasets/referentiel-de-lorganisation-administrative-de-letat/) | -| Référentiel à grande échelle (RGE) | Identifiant | Composantes orthophotographique, topographique et adresse, parcellaire et altimétrique des territoires de l'Etat français | [IGN](https://www.data.gouv.fr/fr/datasets/referentiel-a-grande-echelle-rge/) | -| Répertoire National des Associations (RNA) | N° RNA / N° Waldec | Ensemble des associations relevant de la loi du 1er juillet 1901 relative au contrat d’association, dont le siège est en France | [Ministère de l'intérieur](https://www.data.gouv.fr/fr/datasets/repertoire-national-des-associations/) | -| Répertoire Opérationnel des Métiers et des Emplois (ROME) | Code ROME | Inventaire des dénominations d’emplois/métiers les plus courantes, analyse des activités et compétences, regroupement des emplois selon un principe d’équivalence ou de proximité | [Pôle Emploi](https://www.data.gouv.fr/fr/datasets/repertoire-operationnel-des-metiers-et-des-emplois-rome/) | -| Nomenclature d’activités française (NAF) | Code NAF | Nomenclature des activités économiques productives, principalement élaborée pour faciliter l'organisation de l'information économique et sociale | [INSEE](https://www.data.gouv.fr/fr/datasets/nomenclature-dactivites-francaise-naf/) | -| Répertoire National des Certifications Professionnelles (RNCP) et Répertoire Spécifique (RS) | N°RNCP / N°RS | Liste des certifications officielles inscrites au RNCP et au RS| [France Compétences](https://www.data.gouv.fr/fr/datasets/repertoire-national-des-certifications-professionnelles-et-repertoire-specifique/) | -| Fichier FANTOIR des voies et lieux-dits | N° FANTOIR | nom des lieux-dits et des voies pour chaque commune, y compris celles situées dans les lotissements et les copropriétés | [Ministère de l'économie et des finances](https://www.data.gouv.fr/fr/datasets/fichier-fantoir-des-voies-et-lieux-dits/) | -| Etats et capitales du monde | Code Pays | Liste des états indépendants reconnus par la France | [Ministère de l'Europe et des Affaires Etrangères](https://www.data.gouv.fr/fr/datasets/etats-et-capitales-du-monde/#_) | -| Nomenclatures des professions et catégories socioprofessionnelles | Code PCS / Code PCS-ESE | Nomenclatures des professions et catégories socioprofessionnelles | [INSEE](https://www.insee.fr/fr/information/2406153) | -| Liste des établissements d'enseignements | N°UAI | liste des unités administrative immatriculée | [ONISEP](https://www.data.gouv.fr/fr/datasets/etablissements-denseignement-superieur-2/)
[ONISEP](https://www.data.gouv.fr/fr/datasets/etablissements-denseignement-secondaire/) | +| [Base SIRENE](https://www.data.gouv.fr/fr/datasets/base-sirene-des-entreprises-et-de-leurs-etablissements-siren-siret/) | SIRET, SIREN | Liste des établissements (SIRET) et unités légales (SIREN) françaises | [INSEE](https://www.data.gouv.fr/fr/organizations/institut-national-de-la-statistique-et-des-etudes-economiques-insee/) | +| [Base Adresse Nationale (BAN)](https://www.data.gouv.fr/fr/datasets/base-adresse-nationale/) | BAN | Référencement de l'intégralité des adresses du territoire français | [BAN](https://www.data.gouv.fr/fr/organizations/base-adresse-nationale/) | +| [Code Officiel Géographique (COG)](https://www.data.gouv.fr/fr/datasets/code-officiel-geographique-cog/) | Codes et libellés | Liste des communes, cantons, arrondissements, départements, régions, pays et territoires étrangers | [INSEE](https://www.data.gouv.fr/fr/organizations/institut-national-de-la-statistique-et-des-etudes-economiques-insee/) | +| [Plan Cadastral Informatisé (PCI)](https://www.data.gouv.fr/fr/datasets/plan-cadastral-informatise/) | Identifiant | Représentation de chacune des sections du cadastre français | [Ministère de l'économie et des finances](https://www.data.gouv.fr/fr/organizations/ministere-de-leconomie-et-des-finances/) | +| [Registre parcellaire graphique (RPG)](https://www.data.gouv.fr/fr/datasets/registre-parcellaire-graphique-rpg-contours-des-parcelles-et-ilots-culturaux-et-leur-groupe-de-cultures-majoritaire/) | Identifiant | Base de données géographiques de référence pour l'instruction des aides de la politique agricole commune (PAC) | [IGN](https://www.data.gouv.fr/fr/organizations/institut-national-de-l-information-geographique-et-forestiere/) | +| [Référentiel de l'organisation administrative de l'Etat](https://www.data.gouv.fr/fr/datasets/referentiel-de-lorganisation-administrative-de-letat/) | Identifiant | Liste des institutions régies par la Constitution de la Ve république ainsi que les administrations qui en dépendent | [DILA](https://www.data.gouv.fr/fr/organizations/premier-ministre/) | +| [Référentiel à grande échelle (RGE)](https://www.data.gouv.fr/fr/datasets/referentiel-a-grande-echelle-rge/) | Identifiant | Composantes orthophotographique, topographique et adresse, parcellaire et altimétrique des territoires de l'Etat français | [IGN](https://www.data.gouv.fr/fr/organizations/institut-national-de-l-information-geographique-et-forestiere/) | +| [Répertoire National des Associations (RNA)](https://www.data.gouv.fr/fr/datasets/repertoire-national-des-associations/) | N° RNA / N° Waldec | Ensemble des associations relevant de la loi du 1er juillet 1901 relative au contrat d’association, dont le siège est en France | [Ministère de l'intérieur](https://www.data.gouv.fr/fr/organizations/ministere-de-l-interieur/) | +| [Répertoire Opérationnel des Métiers et des Emplois (ROME)](https://www.data.gouv.fr/fr/datasets/repertoire-operationnel-des-metiers-et-des-emplois-rome/) | Code ROME | Inventaire des dénominations d’emplois/métiers les plus courantes, analyse des activités et compétences, regroupement des emplois selon un principe d’équivalence ou de proximité | [Pôle Emploi](https://www.data.gouv.fr/fr/organizations/pole-emploi/) | +| [Nomenclature d’activités française (NAF)](https://www.data.gouv.fr/fr/datasets/nomenclature-dactivites-francaise-naf/) | Code NAF | Nomenclature des activités économiques productives, principalement élaborée pour faciliter l'organisation de l'information économique et sociale | [INSEE](https://www.data.gouv.fr/fr/organizations/institut-national-de-la-statistique-et-des-etudes-economiques-insee/) | +| [Répertoire National des Certifications Professionnelles (RNCP) et Répertoire Spécifique (RS)](https://www.data.gouv.fr/fr/datasets/repertoire-national-des-certifications-professionnelles-et-repertoire-specifique/) | N°RNCP / N°RS | Répertoire des certifications officielles inscrites au RNCP et au RS| [France Compétences](https://www.data.gouv.fr/fr/organizations/france-competences/) | +| [Fichier FANTOIR des voies et lieux-dits](https://www.data.gouv.fr/fr/datasets/fichier-fantoir-des-voies-et-lieux-dits/) | N° FANTOIR | Nom des lieux-dits et des voies pour chaque commune, y compris celles situées dans les lotissements et les copropriétés | [Ministère de l'économie et des finances](https://www.data.gouv.fr/fr/organizations/ministere-de-leconomie-et-des-finances/) | +| [Etats et capitales du monde](https://www.data.gouv.fr/fr/datasets/etats-et-capitales-du-monde/#_) | Code Pays | Liste des états indépendants reconnus par la France | [Ministère de l'Europe et des Affaires Etrangères](https://www.data.gouv.fr/fr/organizations/ministere-des-affaires-etrangeres-et-du-developpement-international/) | +| [Nomenclatures des professions et catégories socioprofessionnelles](https://www.insee.fr/fr/information/2406153) | Code PCS / Code PCS-ESE | Nomenclatures des professions et catégories socioprofessionnelles | [INSEE](https://www.data.gouv.fr/fr/organizations/institut-national-de-la-statistique-et-des-etudes-economiques-insee/) | +| [Liste des établissements d'enseignements supérieurs](https://www.data.gouv.fr/fr/datasets/etablissements-denseignement-superieur-2/)

[Liste des établissements d'enseignements secondaires](https://www.data.gouv.fr/fr/datasets/etablissements-denseignement-secondaire/) | N°UAI | Liste des unités administratives immatriculées | [ONISEP](https://www.data.gouv.fr/fr/organizations/office-national-d-information-sur-les-enseignements-et-les-professions/) | #### Référentiels techniques -Les référentiels techniques n'ont pas de significations métiers. Cependant, ils permettent de décrire une donnée de manière standardisée. Ces standards permettent aux utilisateurs et aux algorithmes de pouvoir automatiquement interpréter la donnée de manière correcte. C'est le cas notamment principalement des dates et des coordonnées géographiques pour lesquels nous listons ci-dessous deux exemples de standards largement adoptés. +Les référentiels techniques n'ont pas de significations métiers. Cependant, ils permettent de décrire une donnée de manière standardisée. Ces standards permettent aux utilisateurs et aux algorithmes de pouvoir interpréter automatiquement la donnée de manière correcte. C'est le cas principalement des dates et des coordonnées géographiques pour lesquels sont listés ci-dessous deux exemples de standards largement adoptés. | Nom du référentiel | Description | Information | | --- | --- | --- | @@ -84,23 +84,19 @@ Les référentiels techniques n'ont pas de significations métiers. Cependant, i ::: warning À noter -Le [Cadre Commun d'Architecture des référentiels de données de l'Etat](https://references.modernisation.gouv.fr/sites/default/files/Cadre%20Commun%20d%27Architecture%20des%20R%C3%A9f%C3%A9rentiel%20de%20donn%C3%A9es%20v1.0_0.pdf) fait spécifiquement mention de l'importance des variables pivots dans le partage et la publication de données : -- les données sont un bien, un actif de l’État, elles doivent être gérées et valorisées en -conséquence. -- les données doivent être standardisées, définies sur la base d’un vocabulaire commun, -contextualisées, et combinables les unes aux autres. -- les données doivent être facilement réutilisables, partageables et accessibles à travers les -frontières des administrations. -- les données publiques doivent être mises à disposition librement et ouvertement sur -internet -- Sécurité et archivage des données +Le [Cadre Commun d'Architecture des référentiels de données de l'Etat](https://references.modernisation.gouv.fr/sites/default/files/Cadre%20Commun%20d%27Architecture%20des%20R%C3%A9f%C3%A9rentiel%20de%20donn%C3%A9es%20v1.0_0.pdf) fait spécifiquement mention de l'importance des variables pivots dans le partage et la publication de données. Il stipule notamment que : +- Les données sont un bien, un actif de l’État, elles doivent être gérées et valorisées en conséquence ; +- Les données doivent être standardisées, définies sur la base d’un vocabulaire commun, contextualisées, et combinables les unes aux autres ; +- Les données doivent être facilement réutilisables, partageables et accessibles à travers les frontières des administrations ; +- Les données publiques doivent être mises à disposition librement et ouvertement sur internet ; +- La sécurité et l'archivage des données doit être assuré. ::: Pour favoriser au mieux le partage et l'interopérabilité des données, les acteurs sont encouragés à mettre en place leurs propres référentiels internes ou à les partager s'ils existent déjà. -Ainsi, il est pertinent de diffuser en même temps que votre jeu de données, la liste des valeurs possibles correspondant à votre propre référentiel métier. Celui-ci sera donc connu et potentiellement réutilisé par d'autres. +Ainsi, il est pertinent de diffuser, en même temps que votre jeu de données, la liste des valeurs possibles correspondant à votre propre référentiel métier. Celui-ci sera connu et potentiellement réutilisé par d'autres acteurs. -La mise en place de référentiels fait également parti d'une stratégie de montée en qualité de la donnée. Mettre en place ne suffit pas : il faudra par la suite diffuser, former et vérifier que les données produites intègrent ces référentiels et n'en dérivent pas (contrôle humain ou tests automatiques). +La mise en place de référentiels fait également parti d'une stratégie de montée en qualité de la donnée. Mettre en place n'est souvent pas suffisant : il est ensuite nécessaire de diffuser, former et vérifier que les données produites intègrent ces référentiels et n'en dérivent pas (à partir d'un contrôle humain ou de tests automatiques). ::: tip Exemple J'utilise en interne un numéro unique permettant d'identifier chaque type d'action culturelle (arts du spectacle, cirque, arts plastiques...). Il peut être pertinent de diffuser en parallèle à la diffusion de mon jeu de données la liste de mon référentiel. Des communes de ma région pourraient potentiellement le réutiliser pour décrire leurs actions culturelles à une maille plus fine. @@ -108,11 +104,11 @@ J'utilise en interne un numéro unique permettant d'identifier chaque type d'act ## Le cas spécifique des adresses -Très souvent, les producteurs de données souhaitent publier des adresses dans leurs jeux de données. +Il est fréquent que les producteurs de données souhaitent ajouter des adresses dans leurs jeux de données. -Là aussi, il existe des référentiels pour décrire une adresse de manière unique. Le référentiel d'adresse se nomme la [base d'adresse nationale (ou BAN précédemment listé)](https://www.data.gouv.fr/fr/datasets/base-adresse-nationale/). Si vous partez de zéro pour constituer votre jeu de données, il est pertinent de partir de cette base de données pour décrire vos adresses. +De la même manière, il existe des référentiels pour décrire une adresse de manière unique. Le référentiel officiel d'adresse s'intitule la [base d'adresse nationale (ou BAN précédemment listé)](https://www.data.gouv.fr/fr/datasets/base-adresse-nationale/). Si vous partez de zéro pour constituer votre jeu de données, il est pertinent de partir de cette base de données pour décrire vos adresses. -Cependant, les producteurs se retrouvent régulièrement avec une liste d'adresses très longue et il peut s'avérer fastidieux de transcrire manuellement l'ensemble de ces adresses. Heureusement, il existe un certains nombre d'outils pour obtenir une base d'adresse normalisée. +Cependant, il arrive souvent qu'un producteur travaille sur un jeu de données qui contient déjà des adresses saisies. Il peut s'avérer fastidieux de corriger manuellement l'ensemble des adresses erronées. Heureusement, il existe un certains nombre d'outils pour obtenir une base d'adresse normalisée ! ### Le géocodage @@ -120,10 +116,12 @@ Le géocodage consiste à affecter des coordonnées géographiques à une adress Le site [https://adresse.data.gouv.fr/](https://adresse.data.gouv.fr/) permet de géocoder une liste d'adresse via un appel à une API ou par le dépôt de fichier csv. -En utilisant l'outil avec un jeu de données contenant des adresses, l'applicatif nous retourne un jeu de données enrichi de coordonnées géographiques (longitude/latitude) ainsi que d’une adresse « corrigée » récupérée de la BAN. +En utilisant l'outil avec un jeu de données contenant des adresses déja saisies, l'applicatif nous retourne un jeu de données enrichi : +- De coordonnées géographiques (longitude/latitude) ; +- Des adresses « corrigées » récupérées de la BAN ; **Géocodage massif** Le site [adresse.data.gouv.fr](https://adresse.data.gouv.fr) est limité à des utilisations ponctuelles et des volumétries de données considérées faibles (moins d'un million de lignes). Si vous souhaitez géocoder un très gros jeu de données (plusieurs millions de lignes), il est recommandé d'installer votre propre environnement de géocodage, en utilisant par exemple le géocodeur [Addok](https://addok.readthedocs.io/fr/latest/). Vous pouvez consulter des ressources sur [GitHub](https://github.com/etalab/addok-docker) pour vous aider dans l'installation de votre environnement. -Qu'importe la méthode utilisée, le processus de géocodage vous retournera une liste d'adresses standardisées avec leurs coordonnées géographiques associées. De plus, vous aurez également accès à une information `geo_score` correspondant au score de confiance que le géocodeur accorde à l'adresse retournée. Cet indicateur peut être utile à garder dans votre jeu de données final car il donnera une indication aux utilisateurs sur la performance du géocodage pour chaque adresse. +Qu'importe la méthode utilisée, le processus de géocodage retournera une liste d'adresses standardisées avec leurs coordonnées géographiques associées. De plus, vous aurez également accès à une information `geo_score` correspondant au score de confiance que le géocodeur accorde à l'adresse retournée. Cet indicateur peut être utile à garder dans votre jeu de données final, puisqu'il donnera une indication aux utilisateurs sur la performance du géocodage pour chaque adresse. \ No newline at end of file From 62a8e2f13ad64655f1da382ab2124f3968f5c52e Mon Sep 17 00:00:00 2001 From: Antoine Augusti Date: Tue, 11 Aug 2020 14:27:33 -0400 Subject: [PATCH 12/12] Retours Antonin Co-authored-by: Antonin Garrone --- .../2-lier-les-donnees-a-un-referentiel.md | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/qualite/2-lier-les-donnees-a-un-referentiel.md b/qualite/2-lier-les-donnees-a-un-referentiel.md index 221d0520..1ff6388d 100644 --- a/qualite/2-lier-les-donnees-a-un-referentiel.md +++ b/qualite/2-lier-les-donnees-a-un-referentiel.md @@ -15,7 +15,7 @@ Mon jeu de données est une liste d'actions culturelles menées par ma région. L'intégration dans votre jeu de données de données pivots qui correspondent à un référentiel offre plusieurs avantages : - **Une meilleure formalisation** : en se basant sur un référentiel, le producteur de données a l'assurance d'utiliser un format de données standard et partagé par un grand nombre de jeux de données ; -- **Une meilleure synthèse** : en se basant sur un référentiel, le producteur évite l’abondance de détails et va à l’essentiel. L'’obtention d’informations complémentaires se fera par le biais de la consultation du référentiel en lui-même ; +- **Une meilleure synthèse** : en se basant sur un référentiel, le producteur évite l’abondance de détails et va à l’essentiel. L’obtention d’informations complémentaires se fera par le biais de la consultation du référentiel en lui-même ; - **Une meilleure compréhension** : en intégrant dans son jeu de données des données correspondant à un référentiel, le producteur facilite la compréhension de celui-ci par des éventuels utilisateurs car il se réfère à un standard largement adopté ; - **Une meilleure réutilisation** : intégrer des données liées à un référentiel facilitera la réutilisation du jeu de données et permettra son enrichissement avec d'autres données partageant la même donnée pivot ; - **Une meilleure interopérabilité** : intégrer des données pivots facilite le lien avec des données de référence fiables et à jour. @@ -26,15 +26,15 @@ L'intégration dans votre jeu de données de données pivots qui correspondent ### Le service public de la donnée -Parmi les nombreux référentiels existants, nous pouvons citer le service public de la données (SPD) qui référence 9 jeux de données maintenus de manière pérenne par des administrations. +Parmi les nombreux référentiels existants, nous pouvons citer le service public de la donnée (SPD) qui référence 9 jeux de données maintenus de manière pérenne par des administrations. ![Service Public de la Donnée](./images/spd.png) *Vous pouvez consulter sur le site data.gouv.fr la liste [des données du service public de la donnée](https://www.data.gouv.fr/fr/reference).* Parmi ces jeux de données, nous pouvons citer entre autres : -- La [base Siren](https://www.data.gouv.fr/fr/datasets/base-sirene-des-entreprises-et-de-leurs-etablissements-siren-siret/)e qui liste l'ensemble des entreprises françaises. Les identifiants principaux liés à cette base sont le N° SIREN (identifiant d'une unité légale) et le numéro SIRET (identifiant d'un établissement) ; +- La [base Sirene](https://www.data.gouv.fr/fr/datasets/base-sirene-des-entreprises-et-de-leurs-etablissements-siren-siret/) qui liste l'ensemble des entreprises françaises. Les identifiants principaux liés à cette base sont le N° SIREN (identifiant d'une unité légale) et le numéro SIRET (identifiant d'un établissement) ; - La [base du répertoire national des associations (RNA)](https://www.data.gouv.fr/fr/datasets/repertoire-national-des-associations/), qui répertorie l’ensemble des associations relevant de [la loi du 1er juillet 1901 relative au contrat d’association](https://www.legifrance.gouv.fr/affichTexte.do?cidTexte=LEGITEXT000006069570). L'identifiant des associations est le numéro RNA ; -- Le [code officiel géographique (COG](https://www.data.gouv.fr/fr/datasets/code-officiel-geographique-cog/)) qui décrit les codes et libellés des communes, des cantons, des arrondissements, des départements, des régions et des pays et territoires étrangers. +- Le [code officiel géographique (COG)](https://www.data.gouv.fr/fr/datasets/code-officiel-geographique-cog/) qui décrit les codes et libellés des communes, des cantons, des arrondissements, des départements, des régions et des pays et territoires étrangers. ::: tip Exemple Afin de lister l'ensemble des actions culturelles de ma région, nous avons vu que le numéro RNA pouvait être utile pour identifier les associations. Grâce à celui-ci, il est également possible de récupérer le numéro SIRET de l'association si celle-ci en possède un. Il est également possible de détailler dans le jeu de données le code commune et le code département de chaque action. Pour cela, il convient de se référer au Code officiel géographique. **Attention à bien respecter celui-ci. Par exemple, le code département de l'Ariège est le "09" et pas le "9". Ce type d'erreur pourrait entraîner des difficultés lors de la réutilisation des données.** @@ -56,15 +56,15 @@ Vous trouverez ci-dessous un recensement, non exhaustif, de référentiels sur l | [Base SIRENE](https://www.data.gouv.fr/fr/datasets/base-sirene-des-entreprises-et-de-leurs-etablissements-siren-siret/) | SIRET, SIREN | Liste des établissements (SIRET) et unités légales (SIREN) françaises | [INSEE](https://www.data.gouv.fr/fr/organizations/institut-national-de-la-statistique-et-des-etudes-economiques-insee/) | | [Base Adresse Nationale (BAN)](https://www.data.gouv.fr/fr/datasets/base-adresse-nationale/) | BAN | Référencement de l'intégralité des adresses du territoire français | [BAN](https://www.data.gouv.fr/fr/organizations/base-adresse-nationale/) | | [Code Officiel Géographique (COG)](https://www.data.gouv.fr/fr/datasets/code-officiel-geographique-cog/) | Codes et libellés | Liste des communes, cantons, arrondissements, départements, régions, pays et territoires étrangers | [INSEE](https://www.data.gouv.fr/fr/organizations/institut-national-de-la-statistique-et-des-etudes-economiques-insee/) | -| [Plan Cadastral Informatisé (PCI)](https://www.data.gouv.fr/fr/datasets/plan-cadastral-informatise/) | Identifiant | Représentation de chacune des sections du cadastre français | [Ministère de l'économie et des finances](https://www.data.gouv.fr/fr/organizations/ministere-de-leconomie-et-des-finances/) | -| [Registre parcellaire graphique (RPG)](https://www.data.gouv.fr/fr/datasets/registre-parcellaire-graphique-rpg-contours-des-parcelles-et-ilots-culturaux-et-leur-groupe-de-cultures-majoritaire/) | Identifiant | Base de données géographiques de référence pour l'instruction des aides de la politique agricole commune (PAC) | [IGN](https://www.data.gouv.fr/fr/organizations/institut-national-de-l-information-geographique-et-forestiere/) | +| [Plan Cadastral Informatisé (PCI)](https://www.data.gouv.fr/fr/datasets/plan-cadastral-informatise/) | Identifiant | Représentation de chacune des sections du cadastre français | [Ministère de l'Économie et des Finances](https://www.data.gouv.fr/fr/organizations/ministere-de-leconomie-et-des-finances/) | +| [Registre parcellaire graphique (RPG)](https://www.data.gouv.fr/fr/datasets/registre-parcellaire-graphique-rpg-contours-des-parcelles-et-ilots-culturaux-et-leur-groupe-de-cultures-majoritaire/) | Identifiant | Base de données géographique de référence pour l'instruction des aides de la politique agricole commune (PAC) | [IGN](https://www.data.gouv.fr/fr/organizations/institut-national-de-l-information-geographique-et-forestiere/) | | [Référentiel de l'organisation administrative de l'Etat](https://www.data.gouv.fr/fr/datasets/referentiel-de-lorganisation-administrative-de-letat/) | Identifiant | Liste des institutions régies par la Constitution de la Ve république ainsi que les administrations qui en dépendent | [DILA](https://www.data.gouv.fr/fr/organizations/premier-ministre/) | | [Référentiel à grande échelle (RGE)](https://www.data.gouv.fr/fr/datasets/referentiel-a-grande-echelle-rge/) | Identifiant | Composantes orthophotographique, topographique et adresse, parcellaire et altimétrique des territoires de l'Etat français | [IGN](https://www.data.gouv.fr/fr/organizations/institut-national-de-l-information-geographique-et-forestiere/) | -| [Répertoire National des Associations (RNA)](https://www.data.gouv.fr/fr/datasets/repertoire-national-des-associations/) | N° RNA / N° Waldec | Ensemble des associations relevant de la loi du 1er juillet 1901 relative au contrat d’association, dont le siège est en France | [Ministère de l'intérieur](https://www.data.gouv.fr/fr/organizations/ministere-de-l-interieur/) | +| [Répertoire National des Associations (RNA)](https://www.data.gouv.fr/fr/datasets/repertoire-national-des-associations/) | N° RNA / N° Waldec | Ensemble des associations relevant de la loi du 1er juillet 1901 relative au contrat d’association, dont le siège est en France | [Ministère de l'Intérieur](https://www.data.gouv.fr/fr/organizations/ministere-de-l-interieur/) | | [Répertoire Opérationnel des Métiers et des Emplois (ROME)](https://www.data.gouv.fr/fr/datasets/repertoire-operationnel-des-metiers-et-des-emplois-rome/) | Code ROME | Inventaire des dénominations d’emplois/métiers les plus courantes, analyse des activités et compétences, regroupement des emplois selon un principe d’équivalence ou de proximité | [Pôle Emploi](https://www.data.gouv.fr/fr/organizations/pole-emploi/) | | [Nomenclature d’activités française (NAF)](https://www.data.gouv.fr/fr/datasets/nomenclature-dactivites-francaise-naf/) | Code NAF | Nomenclature des activités économiques productives, principalement élaborée pour faciliter l'organisation de l'information économique et sociale | [INSEE](https://www.data.gouv.fr/fr/organizations/institut-national-de-la-statistique-et-des-etudes-economiques-insee/) | | [Répertoire National des Certifications Professionnelles (RNCP) et Répertoire Spécifique (RS)](https://www.data.gouv.fr/fr/datasets/repertoire-national-des-certifications-professionnelles-et-repertoire-specifique/) | N°RNCP / N°RS | Répertoire des certifications officielles inscrites au RNCP et au RS| [France Compétences](https://www.data.gouv.fr/fr/organizations/france-competences/) | -| [Fichier FANTOIR des voies et lieux-dits](https://www.data.gouv.fr/fr/datasets/fichier-fantoir-des-voies-et-lieux-dits/) | N° FANTOIR | Nom des lieux-dits et des voies pour chaque commune, y compris celles situées dans les lotissements et les copropriétés | [Ministère de l'économie et des finances](https://www.data.gouv.fr/fr/organizations/ministere-de-leconomie-et-des-finances/) | +| [Fichier FANTOIR des voies et lieux-dits](https://www.data.gouv.fr/fr/datasets/fichier-fantoir-des-voies-et-lieux-dits/) | N° FANTOIR | Nom des lieux-dits et des voies pour chaque commune, y compris celles situées dans les lotissements et les copropriétés | [Ministère de l'Économie et des Finances](https://www.data.gouv.fr/fr/organizations/ministere-de-leconomie-et-des-finances/) | | [Etats et capitales du monde](https://www.data.gouv.fr/fr/datasets/etats-et-capitales-du-monde/#_) | Code Pays | Liste des états indépendants reconnus par la France | [Ministère de l'Europe et des Affaires Etrangères](https://www.data.gouv.fr/fr/organizations/ministere-des-affaires-etrangeres-et-du-developpement-international/) | | [Nomenclatures des professions et catégories socioprofessionnelles](https://www.insee.fr/fr/information/2406153) | Code PCS / Code PCS-ESE | Nomenclatures des professions et catégories socioprofessionnelles | [INSEE](https://www.data.gouv.fr/fr/organizations/institut-national-de-la-statistique-et-des-etudes-economiques-insee/) | | [Liste des établissements d'enseignements supérieurs](https://www.data.gouv.fr/fr/datasets/etablissements-denseignement-superieur-2/)

[Liste des établissements d'enseignements secondaires](https://www.data.gouv.fr/fr/datasets/etablissements-denseignement-secondaire/) | N°UAI | Liste des unités administratives immatriculées | [ONISEP](https://www.data.gouv.fr/fr/organizations/office-national-d-information-sur-les-enseignements-et-les-professions/) | @@ -76,15 +76,15 @@ Les référentiels techniques n'ont pas de significations métiers. Cependant, i | Nom du référentiel | Description | Information | | --- | --- | --- | -| WGS84 | Coordonnées géodésique d'un lieu | [Wikipedia](https://fr.wikipedia.org/wiki/WGS_84) | +| WGS84 | Coordonnées géodésiques d'un lieu | [Wikipedia](https://fr.wikipedia.org/wiki/WGS_84) | | ISO8601 | Représentation numérique d'une date et d'une heure | [Wikipedia](https://fr.wikipedia.org/wiki/ISO_8601) | ### Partager ses propres référentiels -::: warning À noter -Le [Cadre Commun d'Architecture des référentiels de données de l'Etat](https://references.modernisation.gouv.fr/sites/default/files/Cadre%20Commun%20d%27Architecture%20des%20R%C3%A9f%C3%A9rentiel%20de%20donn%C3%A9es%20v1.0_0.pdf) fait spécifiquement mention de l'importance des variables pivots dans le partage et la publication de données. Il stipule notamment que : +::: info Cadre Commun d'Architecture des référentiels de données de l'État +Le [Cadre Commun d'Architecture des référentiels de données de l'État](https://references.modernisation.gouv.fr/sites/default/files/Cadre%20Commun%20d%27Architecture%20des%20R%C3%A9f%C3%A9rentiel%20de%20donn%C3%A9es%20v1.0_0.pdf) fait spécifiquement mention de l'importance des variables pivots dans le partage et la publication de données. Il stipule notamment que : - Les données sont un bien, un actif de l’État, elles doivent être gérées et valorisées en conséquence ; - Les données doivent être standardisées, définies sur la base d’un vocabulaire commun, contextualisées, et combinables les unes aux autres ; - Les données doivent être facilement réutilisables, partageables et accessibles à travers les frontières des administrations ; @@ -96,7 +96,7 @@ Pour favoriser au mieux le partage et l'interopérabilité des données, les act Ainsi, il est pertinent de diffuser, en même temps que votre jeu de données, la liste des valeurs possibles correspondant à votre propre référentiel métier. Celui-ci sera connu et potentiellement réutilisé par d'autres acteurs. -La mise en place de référentiels fait également parti d'une stratégie de montée en qualité de la donnée. Mettre en place n'est souvent pas suffisant : il est ensuite nécessaire de diffuser, former et vérifier que les données produites intègrent ces référentiels et n'en dérivent pas (à partir d'un contrôle humain ou de tests automatiques). +La mise en place de référentiels fait également parti d'une stratégie de montée en qualité de la donnée. Néamoins ce n'est souvent pas suffisant : il est ensuite nécessaire de diffuser, former et vérifier que les données produites intègrent ces référentiels et n'en dérivent pas (à partir d'un contrôle humain ou de tests automatiques). ::: tip Exemple J'utilise en interne un numéro unique permettant d'identifier chaque type d'action culturelle (arts du spectacle, cirque, arts plastiques...). Il peut être pertinent de diffuser en parallèle à la diffusion de mon jeu de données la liste de mon référentiel. Des communes de ma région pourraient potentiellement le réutiliser pour décrire leurs actions culturelles à une maille plus fine. @@ -108,7 +108,7 @@ Il est fréquent que les producteurs de données souhaitent ajouter des adresses De la même manière, il existe des référentiels pour décrire une adresse de manière unique. Le référentiel officiel d'adresse s'intitule la [base d'adresse nationale (ou BAN précédemment listé)](https://www.data.gouv.fr/fr/datasets/base-adresse-nationale/). Si vous partez de zéro pour constituer votre jeu de données, il est pertinent de partir de cette base de données pour décrire vos adresses. -Cependant, il arrive souvent qu'un producteur travaille sur un jeu de données qui contient déjà des adresses saisies. Il peut s'avérer fastidieux de corriger manuellement l'ensemble des adresses erronées. Heureusement, il existe un certains nombre d'outils pour obtenir une base d'adresse normalisée ! +Cependant, il arrive souvent qu'un producteur travaille sur un jeu de données qui contient déjà des adresses saisies. Il peut s'avérer fastidieux de corriger manuellement l'ensemble des adresses erronées. Heureusement, il existe un certain nombre d'outils pour obtenir une base d'adresse normalisée ! ### Le géocodage @@ -116,7 +116,7 @@ Le géocodage consiste à affecter des coordonnées géographiques à une adress Le site [https://adresse.data.gouv.fr/](https://adresse.data.gouv.fr/) permet de géocoder une liste d'adresse via un appel à une API ou par le dépôt de fichier csv. -En utilisant l'outil avec un jeu de données contenant des adresses déja saisies, l'applicatif nous retourne un jeu de données enrichi : +En utilisant l'outil avec un jeu de données contenant des adresses déjà saisies, l'applicatif nous retourne un jeu de données enrichi : - De coordonnées géographiques (longitude/latitude) ; - Des adresses « corrigées » récupérées de la BAN ; @@ -124,4 +124,4 @@ En utilisant l'outil avec un jeu de données contenant des adresses déja saisie Le site [adresse.data.gouv.fr](https://adresse.data.gouv.fr) est limité à des utilisations ponctuelles et des volumétries de données considérées faibles (moins d'un million de lignes). Si vous souhaitez géocoder un très gros jeu de données (plusieurs millions de lignes), il est recommandé d'installer votre propre environnement de géocodage, en utilisant par exemple le géocodeur [Addok](https://addok.readthedocs.io/fr/latest/). Vous pouvez consulter des ressources sur [GitHub](https://github.com/etalab/addok-docker) pour vous aider dans l'installation de votre environnement. -Qu'importe la méthode utilisée, le processus de géocodage retournera une liste d'adresses standardisées avec leurs coordonnées géographiques associées. De plus, vous aurez également accès à une information `geo_score` correspondant au score de confiance que le géocodeur accorde à l'adresse retournée. Cet indicateur peut être utile à garder dans votre jeu de données final, puisqu'il donnera une indication aux utilisateurs sur la performance du géocodage pour chaque adresse. \ No newline at end of file +Quelle que soit la méthode utilisée, le processus de géocodage retournera une liste d'adresses standardisées avec leurs coordonnées géographiques associées. De plus, vous aurez également accès à une information `geo_score` correspondant au score de confiance que le géocodeur accorde à l'adresse retournée. Cet indicateur peut être utile à garder dans votre jeu de données final, puisqu'il donnera une indication aux utilisateurs sur la performance du géocodage pour chaque adresse.