From 0f8c2f12d8354f6899c80e4a723fb1247565fa76 Mon Sep 17 00:00:00 2001 From: Alexis Fourmaux Date: Sat, 15 Nov 2025 19:58:51 +0100 Subject: [PATCH 1/5] Ajoute un style pour les raccourcis clavier dans marpit --- .marp/themes/catppuccin.css | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/.marp/themes/catppuccin.css b/.marp/themes/catppuccin.css index f49081a..f738ee7 100644 --- a/.marp/themes/catppuccin.css +++ b/.marp/themes/catppuccin.css @@ -163,6 +163,21 @@ header { font-size: .3rem; } +kbd { + background-color: var(--surface0); + border-radius: 6px; + border: 1px solid var(--overlay0); + box-shadow: + 0 2px 1px rgba(0, 0, 0, 0.2); + color: var(--text); + display: inline-block; + font-size: 0.85em; + font-weight: 700; + line-height: 1; + padding: 2px 4px; + white-space: nowrap; +} + code.hljs { color: var(--text); background: var(--base) From 765bfc3297c7c27f3a978567f2c118a420041592 Mon Sep 17 00:00:00 2001 From: Alexis Fourmaux Date: Sat, 15 Nov 2025 19:59:38 +0100 Subject: [PATCH 2/5] =?UTF-8?q?Ajoute=20JS=20-=20Activit=C3=A9=20et=20cour?= =?UTF-8?q?s=20(WIP)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CIEL1/05-web-js/activite3-js-bases.md | 213 +++++++++ src/cours/CIEL1/05-web-js/activite4.md | 66 +++ src/cours/CIEL1/05-web-js/image-1.png | Bin 0 -> 41581 bytes src/cours/CIEL1/05-web-js/image-2.png | Bin 0 -> 32259 bytes src/cours/CIEL1/05-web-js/image.png | Bin 0 -> 35800 bytes src/cours/SUMMARY.md | 3 +- src/slides/B1/web/03_javascript.md | 451 ++++++++++++++++++ src/slides/B1/web/images/multiligne.png | Bin 0 -> 49386 bytes 8 files changed, 732 insertions(+), 1 deletion(-) create mode 100644 src/cours/CIEL1/05-web-js/activite3-js-bases.md create mode 100644 src/cours/CIEL1/05-web-js/activite4.md create mode 100644 src/cours/CIEL1/05-web-js/image-1.png create mode 100644 src/cours/CIEL1/05-web-js/image-2.png create mode 100644 src/cours/CIEL1/05-web-js/image.png create mode 100644 src/slides/B1/web/03_javascript.md create mode 100644 src/slides/B1/web/images/multiligne.png diff --git a/src/cours/CIEL1/05-web-js/activite3-js-bases.md b/src/cours/CIEL1/05-web-js/activite3-js-bases.md new file mode 100644 index 0000000..c0fd4e9 --- /dev/null +++ b/src/cours/CIEL1/05-web-js/activite3-js-bases.md @@ -0,0 +1,213 @@ +# Web - Activité 3 - Carousel de photos en JavaScript + +## Objectifs + +- Développement d'un carousel de photos en JavaScript. +- Le carousel a pour but de faire défiler des photos de bâtiments pour le site de l'entreprise Numérobis afin de montrer aux visiteurs les projets sur lesquels ils ont pu travailler. + +## Validation +### Livrables + +- Le code final +- Le compte-rendu de l'activité + +Le tout dans un répertoire avec le nom suivant `YYYY-MM-DD_TPX_NOM1_Prenom1_NOM2_Prenom2`. +- Le compte rendu peut-être livré au format Markdown ou PDF. +- Si vous choisissez le Markdown, attention à bien livrer les éventuelles images et à la validité des liens + +### Résultats attendus + +- [ ] Le carousel est intégré à la page d'accueil du site et fonctionnel. +- [ ] Le carousel permet de faire défiler 4 photos en boucle grâce à deux boutons +- [ ] Le carousel fait défiler automatiquement les photos toutes les 2 secondes +- [ ] Le résultat général (hors animation) ressemble à l'image ci-dessous (options incluses) +- [ ] (Optionnel) Le carousel permet d'afficher une photo au choix en cliquant sur un indicateur en bas de la photo +- [ ] (Optionnel) Le carousel affiche en haut à gauche le numéro de la photo, et en en dessous au centre son titre +- [ ] (Optionnel) L'aspect visuel du site a été modernisé + + +## Ressources fournies + +- Documentations: + - HTML + - CSS + - JavaScript +- Cours de JavaScript +- 4 images à intégrer dans le projet + +## Étapes + +### 0 - Préparation + +**Objectif :** Préparer le projet + +```admonish travail +- Repartir du résultat de l'activité précédente (ouvrir le répertoire dans VSCode) +- Vérifier que votre travail a été correctement commité et qu'il ne reste plus de fichiers modifiés mais non commités +- Créer un nouveau fichier de compte rendu vierge +- Lancer un serveur web de développement (`python -m http.server`) +- Ouvrir un navigateur (Firefox de préférence) et se rendre sur [cette page](https://localhost:8000) +``` + +### 1 - Découverte du JS + +**Objectif :** Découvrir le JavaScript et afficher du texte dans la console + +```admonish travail +- Dans votre navigateur, ouvrir la console JS (F12 en général, ou voir cours) +- Démarrer le mode "multiligne" (firefox uniquement), qui permet d'écrire plusieurs lignes de code et les exécuter + ![multiligne0](./image.png) + + ![multiligne1](./image-1.png) +- Écrire dans la console le code suivant, puis l'exécuter : + ~~~js + console.log("Hello, World!"); + ~~~ +- Vérfier que le texte `Hello, World!` s'affiche. +- Écrire dans votre console le code suivant puis l'exécuter : + ~~~js + function carré(number){ + return number * number; + } + + console.log(carré(5)); + ~~~ +- Écrire le code suivant puis l'exécuter + ~~~js + var maVariable = "Hello"; + function maFonction(){ + console.log("Dans la fonction"); + if (true){ + var autreVariable = "World"; + let variableInterne = "Bonjour"; + console.log(`Dans le if : autreVariable = ${autreVariable}`); + console.log(`Dans le if : variableInterne = ${variableInterne}`); + } + console.log(`maVariable = ${maVariable}`); + console.log(`Hors du if : autreVariable = ${autreVariable}`); + console.log(`Hors du if : variableInterne = ${variableInterne}`); + } + console.log("Hors de la fonction"); + console.log(`maVariable = ${maVariable}`); + console.log(`autreVariable = ${autreVariable}`); + console.log(`variableInterne = ${variableInterne}`); + ~~~ +- Modifier le code précédent pour exécuter la fonction `maFonction` +``` + +```admonish note title="Dans le compte rendu" +- Quel est le rôle du javascript dans le navigateur ? +- Que fait la fonction `console.log` ? +- Qu'est-ce que `carré` dans le code que vous avez écrit ? +- Comment déclarer et appeler une fonction en JavaScript ? +- Comment déclarer une variable en JavaScript ? +- Quelle est la différence entre var et let ? +``` + +### 2 - Choisir quelle image afficher + +**Objectif :** Écrire une fonction en Javascript pour choisir l'image à afficher + +```admonish travail +- Récupérer les 4 images fournies dans un répertoire image dans votre projet +- Supprimer l'image `home.png` (elle est remplacée par `building_1.png`) +- Dans le fichier `index.html`, remplacer la balise image qui affcihait `home.png` par le code suivant : + ~~~html +
+
+ Projet démo 1 +
+
+ ~~~ +- Vérifier que tout s'affiche correctement (comme avant). Corriger le CSS si nécessaire. +- Rajouter les trois autres images dans la div `slideshow`, encapsulées chacune dans une balise `div` de classe `slide`. Vous devriez avoir les 4 images à la suite. +- Modifier le CSS pour que les éléments de classe `slide` [ne soient plus affichés](https://developer.mozilla.org/fr/docs/Web/CSS/Reference/Properties/display) +- Créer le fichier `slideshow.js` à la racine de votre projet +- Ajouter la balise suivante, entre les sections `head` et `body` de votre `index.html` : + ~~~html + + ~~~ +- Écrire une fonction `showSlide` qui prend un paramètre `index` représentant le numéro (de 0 à 3 ) de la photo à afficher. + - Récupérer les 4 conteneurs de classe `slide` dans une variable locale `slides`. [Fonction à utiliser.](https://developer.mozilla.org/fr/docs/Web/API/Document/getElementsByClassName) + - Grâce au code suivant, modifier la propriété de style `display` de l'image d'indice `index` : + ~~~js + slides[index].style.display = "block"; + ~~~ +- Modifier votre script `slideshow.js` pour appeler votre nouvelle fonction et affciher l'image d'indice 0 +- Compléter votre compte rendu, puis faire un commit. +``` + +```admonish note title="Dans le compte rendu" +- A quoi servent les div de classe `slideshow` et `slide` ? +- Pourquoi cache-t-on les images ? +- Que fait la ligne `` ? +- Que fait la fonction `document.getElementByClassName` ? +- Que fait la ligne suivante : `slides[index].style.display = "block";` ? Aidez-vous du debugger CSS de votre navigateur +- Expliquez dans les grandes lignes ce que vous avez fait à cette étape. Quelle sera, selon vous, la suite des opérations ? +``` + +### 3 - Afficher une seule image à la fois + +**Objectif :** Réussir à n'afficher qu'une image + +```admonish travail +- Modifier votre script pour effectuer des appels successifs à `showSlide` avec différentes images. Que constatez-vous ? +- Il va donc falloir cacher les autres images pour n'afficher que celle qui nous intéresse (celle passée en paramètre). + Pour cela, nous allons utiliser une boucle qui va remettre la propriété `display` de chaque `slide` à `none`. Modifiez + votre code pour faire ça. +- Vérifiez que cela fonctionne en faisant plusieurs appels successifs à `showSlide` (dans le même script). Seule la dernière image doit être visible. +- Complétez le compte rendu et faites un nouveau commit. +``` + +```admonish note title="Dans le compte rendu" +Expliquez ce que vous avez fait à cette étape. +``` + +### 4 - Changer d'image dynamiquement + +**Objectif :** Ajouter des boutons pour passer à l'image suivante dynamiquement + +```admonish travail +- Dans votre `index.html`, dans la `div` `slideshow` ajouter deux éléments `button`: + - Le texte sera `❮` qui représente ❮, et l'id `prevSlide` + - Le texte sera `❯` qui représente ❯, et l'id `nextSlide` +- Ajoutez dans votre script la fonction : `showSlideRelative(relativeIndex)`. + Elle fera appel à `showSlide`. Son paramètre `relativeIndex` indiquera de combien de slides il faudra faire tourner le carousel. + Par exemple, si on passe 1 il faudra prendre l'image avec l'index suivant. Si on passe -1 il faudra prendre l'image précédente. +- Dans votre `index.html` il va falloir dire à vos deux boutons (`prevSlide` et `nextSlide`) d'appeler la fonction que vous venez de créer lorsqu'on clique dessus. Ajoutez l'attribut `onclick` avec un appel à `showSlideRelative` (en passant 1 pour suivant et -1 pour précédent). +- Vérifiez que votre code fonctionne. +- (À ajouter dans le compte rendu :) Si vous cliquez sur suivant alors que vous êtes sur l'image 4, que se passe-t-il ? Idem avec précédent à l'image 1 ? Pourquoi ? +- Corrigez votre algorithme. +- Mettez à jour le compte rendu et faites un nouveau commit. +``` + +```admonish help title="Aide" +- Votre nouvelle fonction doit calculer le nouvel indice et le passer à `showSlide`. +- Vous aurez besoin d'une variable globale `slideIndex` pour retenir la slide affichée. Vous pourrez ensuite ajouter `relativeIndex` à `slideIndex` +- N'oubliez pas de mettre à jour l'index global en mémoire dans `showSlide` +``` + +```admonish note title="Dans le compte rendu" +- Que sont `❮` et `❯` ? +- Expliquez ce que vous avez fait à cette étape. N'oubliez pas d'expliquer comment vous avez résolu le problème de rotation des indices. +``` + +### 5 - Améliorer la lisibilité des boutons de rotation + +**Objectif :** Modifier le CSS des boutons pour les afficher sur l'image et aider l'utilisateurice à comprendre qu'ils sont cliquables + +```admonish travail +- Dans le CSS, ajouter un sélecteur sur les deux boutons (via leurs ids) puis : + - Modifier la [propriété `position`](https://developer.mozilla.org/fr/docs/Web/CSS/Reference/Properties/position) à la valeur `absolute` (attention à ce que vous deux boutons soient bien inclus dans la div `slideshow`) + - Modifier la proriété `position` de `slideshow` à `relative` + - Modifier les propriétés [`top`](https://developer.mozilla.org/fr/docs/Web/CSS/Reference/Properties/top) et [`right`](https://developer.mozilla.org/fr/docs/Web/CSS/Reference/Properties/right) des boutons de façon à ce qu'ils soient bien de chaque côté de l'image et centrés verticalement. + - Modifier la propriété `cursor` pour changer le curseur de façon à comprendre qu'on a un objet cliquable +- Compléter le copmpte-rendu et faire un nouveau commit +``` + +```admonish note title="Dans le compte rendu" +- Que fait la propriété CSS `position` ? +- Pourquoi avons-nous changé cette propriété dans `slideshow` et les boutons ? +- Que font `top`, `right` et `left` ? Dans quel cas peut-on les utiliser ? +- Expliquer ce que vous avez fait à cette étape +``` diff --git a/src/cours/CIEL1/05-web-js/activite4.md b/src/cours/CIEL1/05-web-js/activite4.md new file mode 100644 index 0000000..484119c --- /dev/null +++ b/src/cours/CIEL1/05-web-js/activite4.md @@ -0,0 +1,66 @@ + +### 6 - Effectuer une rotation automatique + +**Objectif :** Changer l'image affichée toutes les deux secondes automatiquement + +```admonish travail +- Lire la documentation de la fonction [`setInterval`](https://developer.mozilla.org/en-US/docs/Web/API/Window/setInterval) et celle de [`setTimeout`](https://developer.mozilla.org/fr/docs/Web/API/Window/setTimeout). Choisir celle qui vous paraît la plus adaptée. Justifier dans le compte rendu. +- Quelle fonction (déjà écrite par vos soins) allez-vous appeler à intervalles réguliers pour faire tourner votre carousel ? Ecrivez le code correspondant. Utilisez l'aide ci-dessous. +- Validez que votre code fonctionne. +- Mettez à jour votre compte rendu et faites un commit. +``` + +```admonish help title="Aide" +- Nous devons passer une **fonction** en paramètre à `setInterval` (ou `setTimeout`). Il s'agit bien d'une fonction, et non pas d'un appel à la fonction (qui ne donnerait qu'un seul résultat) ! C'est `setInterval` qui se chargera d'appeler votre fonction à intervalles réguliers. +- Mais pourtant, nous avons besoin de passer des paramètres à cette fonction. Il faut donc une solution pour les passer également. +- Deux possibilités pour ça : + - `setInterval` propose de prendre des arguments supplémentaires, qui seront passés à la fonction (voir doc) + - on utilise une fonction anonyme qui ne prend pas de paramètre avec la syntaxe suivante : + ~~~js + () => mafonction(param1, param2, ...) + ~~~ +``` + +```admonish note title="Dans le compte rendu" +- Justifier le choix entre `setInterval` et `setTimeout` et expliquer l'algorithme que vous avez choisi pour changer d'image toutes les deux secondes. +- `setInterval` et `setTimeout` permettent de passer une fonction ou un bout de code sous forme de chaîne de caractères comme paramètre. Qu'allez vous préférer et pourquoi ? Pensez à vérifier d'éventuelles problématiques de sécurité. +``` + +### 7 - Segmenter le JavaScript et le HTML + +**Objectif :** Lier les actions des boutons directement depuis le CSS pour une meilleure maintenabilité du code + +```admonish travail + +``` + +```admonish help title="Aide" +``` + +```admonish warning title="Attention" +``` + +```admonish note title="Dans le compte rendu" +``` + +## Pour aller plus loin + +### Bonus - Sélectionner l'image à afficher avec un clic + +**Objectif :** Ajouter des boutons pour sélectionner une image précise sans cliquer plusieurs fois sur les boutons de rotation + +```admonish travail +- +``` + +```admonish help title="Aide" +``` + +```admonish warning title="Attention" +``` + +```admonish note title="Dans le compte rendu" +``` + + +### Ressources diff --git a/src/cours/CIEL1/05-web-js/image-1.png b/src/cours/CIEL1/05-web-js/image-1.png new file mode 100644 index 0000000000000000000000000000000000000000..5e5f95774f6396e451ab8e9061000035b7cb1919 GIT binary patch literal 41581 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%0D2f6bfv}Y(NDv!J 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 R#FM+XMMuQ0k7`#)3rjY$9i literal 0 HcmV?d00001 diff --git a/src/cours/CIEL1/05-web-js/image-2.png b/src/cours/CIEL1/05-web-js/image-2.png new file mode 100644 index 0000000000000000000000000000000000000000..d5872a4204285ca9b792507b8178b552c532bf29 GIT binary patch literal 32259 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 +section { + font-size: 28px; + text-align: left +} + + +# JavaScript + +--- +## Généralités + +- Organisme de normalisation : Ecma International +- Définissent les normes ECMA : + - ECMAScript (Abrégé en ES) + - JavaScript = implémentation de la norme + +- Versions ont un numéro et un nom par rapport à l'année + - ES15 = ES2024 (version actuelle) + - ESNext en cours de dev, 1 norme par an environ + +--- + +## Documentation +- [Guide JavaScript](https://developer.mozilla.org/fr/docs/Web/JavaScript/Guide) +- [Référence JavaScript](https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference) + +--- + +## Premier programme + +Pour écrire un programme en JavaScript il suffit d'un navigateur web +- Ouvrir la console : + +| Navigateur | Raccourci | +| ---------- | --------------------------------------------- | +| Firefox | F12 | +| Chromium | Ctrl+Shift+J | +| Edge | Ctrl+Shift+J | + +--- + +Firefox a un mode multiligne très pratique pour tester + +![Multiligne width:800px](images/multiligne.png) + +--- + +### Hello world +```js +console.log("Hello, World!"); +``` + +- `console.log` fonction qui vient écrire en console + - Un peu comme `print` en Python +- Il faut toujours ajouter `;` à la fin des lignes + - Pas obligatoire mais source d'erreurs + +--- +### Mode strict + +- Toujours écrire `"use strict";` en haut de votre programme (première ligne) +- Évite erreurs silencieuses et ambiguïtés du langage + +--- + +## Variables et types + +--- + +### Variables + +- `var` = variable globale au programme ou à une fonction +- `let` = variable locale (à privilégier) + - n'existe que dans bloc entouré d'accolades +- `const` = constante + - Ne peut plus être modifiée + - locale également + - Si variable ne change pas, préférer `const` +- On ne déclare pas le **type** de la variable +--- + +#### Nommage + +- Sensible à la casse (`Nom` différent de `nom`) +- Caractères autorisés = lettres, chiffres et `_` + - ne peut pas commencer par chiffre +- Convention `camelCase` + +--- + +#### Différence entre `var` et `let` + +```js +if (true) { + var x = 5; +} +console.log(x); // x vaut 5 +``` + +```js +if (true) { + let y = 5; +} +console.log(y); // ReferenceError: y is not defined +``` +--- + +### Types + +| Type | Description | Exemple | +| --------- | ------------------------ | ----------------------------- | +| `boolean` | booléens | `true` et `false` | +| `number` | entiers ou décimaux | `42` `3.1415` `0x3F` `0b1001` | +| `bigint` | grands nombres | `9007199254740992n` | +| `string` | Chaînes de caractères | `"Hello"` ou `'Hello'` | +| `Object` | Objets (types complexes) | | + +--- + +#### Valeurs spéciales + +- `undefined` : valeur non définie, la variable n'existe pas +- `null` : pas de valeur pour l'objet + - se comporte comme un `0` en contexte numérique +- `NaN` : n'est pas un nombre ("Not a Number") + - se comporte comme `undefined` en contexte numérique + +--- + +#### Tableaux +- Les tableaux sont des listes de valeurs +- On les écrit avec des crochets et on sépare avec des virgules + +```js +var cafés = ["Brésilien", "Colombien", "Kona"]; + +console.log(cafés[1]); // Affiche : Colombien +``` + +--- + +### Opérateurs + +#### Opérateurs arithmétiques + +| Opérateur | Description | +| --------- | -------------------------------- | +| `+` | Addition | +| `-` | Soustraction | +| `*` | Multiplication | +| `/` | Division | +| `%` | Reste de la division euclidienne | +| `++` | Incrément (ajoute 1) | +| `--` | Décrément (Retire 1) | +| `**` | Puissance | + +--- + +#### Opérateurs binaires + +| Opérateur | Description | +| --------- | ----------- | +| `&&` | ET logique | +| `\|\|` | OU logique | +| `!` | NON logique | + +--- + +## Structures de contrôle + +- Conditions +- Boucles + +--- + +### Conditions + +- Permettent de choisir quel code exécuter en fonction d'une condition + +- Structure `if...else` +```js +if (condition) { + // Faire qqch +} else { + // Faire autre chose +} +``` +* On peut utiliser aussi `else if` + ```js + if (condition_1) { + instruction_1; + } else if (condition_2) { + instruction_2; + } else if (condition_n) { + instruction_n; + } else { + dernière_instruction; + } + ``` +* Ne pas oublier les accolades `{}` +--- + + +#### Opérateurs de comparaison + +| Opérateur | Description | +| --------- | ----------------------------------------------- | +| `==` | Egalité faible ( conversion implicite) | +| `!=` | Inégalité faible ( conversion implicite) | +| **`===`** | **Égalité stricte (compare aussi les types)** | +| **`!==`** | **Inégalité stricte (compare aussi les types)** | +| `>` | Strictement supérieur | +| `>=` | Supérieur ou égal | +| `<` | Strictement inférieur | +| `<=` | Inférieur ou égal | + +!!! warning Attention +**Privilégier l'égalité stricte** : l'égalité faible est source d'erreurs + +Ex: `3 == "3"` renvoie `true` car la conversion est implicite (mais dangereuse) +!!! +--- + +#### Valeurs fausses + +- `false` +- `undefined` +- `null` +- `0` +- `NaN` +- la chaîne de caractères vide (`""`) + +--- + +### Boucles + +Viennent répéter un bout de code un certain nombre de fois + +--- + +#### Boucle `for` + +- Ressemble à la boucle `for` en C++ + +```js +for (let pas = 0; pas < 5; pas++) { + // Ceci sera exécuté 5 fois + // À chaque éxécution, la variable "pas" augmentera de 1 + // Lorsque'elle sera arrivée à 5, le boucle se terminera. + console.log("Faire " + pas + " pas"); +} +``` + +--- + +- On donne trois informations à la boucle séparées par des `;`: + - L'**expression initiale** (`let pas = 0`) + - La **condition** pour qu'elle continue (`pas < 5`) + - L'**expression d'incrément** (`pas++`) + +```js +for ([expressionInitiale]; [condition]; [expressionIncrément]){ + instruction +} +``` + +- L'expression initiale sert à initialiser une variable (qui pourra compter les itérations) +- La condition est évaluée : si c'est `true`, alors la boucle est exécutée, sinon elle se termine +- L'expression d'incrément est utilisée (pour incrémenter le compteur par exemple) +- Les instructions de la boucle sont entre `{}` + +--- + +#### Boucle `while` + +- Exécute une instruction tant que la condition est vraie + +```js +while (condition) { + // instructions +} +``` + +--- + +Exemple : +```js +const multiplicateur = 7; +var n = 0; +while (n <= 10) { + console.log(`${n} * ${multiplicateur} = ${n*multiplicateur}`); + n++; +} +``` + +--- + +#### `break` et `continue` + +- `break` : provoque la fin de la boucle dans laquelle il est utilisé + ```js + // On cherche `valeurTest` dans un tableau `a` + for (i = 0; i < a.length; i++) { + if (a[i] === valeurTest) { + break; + } + } + ``` +- `continue` : provoque le passage à la prochaine itération de la boucle dans laquelle il est imbriqué +```js +// Affiche les nombres pairs +for(let i = 0; i < 10; i++){ + if (i % 2){ + continue; + } + console.log(`${i} est pair`) +} +``` + +--- + +### Switch + +- Permet de sélectionner une instruction en fonction de la valeur d'une variable +- Syntaxe similaire à celle du C++ +- Attention de ne pas oublier le `break` + +```js +switch (fruit) { + case "Orange": + console.log("Les oranges sont à 60 centimes le kilo."); + break; + case "Pomme": + console.log("Les pommes sont à 32 centimes le kilo."); + break; + case "Banane": + console.log("Les bananes sont à 48 centimes le kilo."); + break; + default: + console.log("Désolé, nous n'avons pas de " + fruittype + "."); +} +console.log("Souhaitez-vous autre chose ?"); +``` + +--- + +## Fonctions + +--- + +### Définir une fonction + +Les fonctions représentent une suite d'instructions qui effectue une tâche ou calcule une valeur +Pour **appeler** (= utiliser) une fonction il faut d'abord la **définir** +```js +function carré(nombre) { + return nombre * nombre; +} +``` +- Elles sont définies avec le mot-clé `function` et un **nom** suivi de **parenthèses** `()` +- On peut leur passer des **paramètres** séparés par des virgules +- Elles peuvent **retourner** une valeur avec `return` +- Les instructions sont entre des accolades `{}` + +--- + +### Appeler une fonction + +- Pour appeler une fonction, on utilisera des **parenthèses** + +- Exemple avec la fonction `carré` définie à la slide précédente +```js +carré(5); // 25 + +// On peut utiliser le résultat : +console.log(carré(5)) // Affiche : 25 +let maVariable = carré(5) // maVariable vaut 25 +``` + +--- + +### Paramètres par défaut + +- Si on ne fournit pas un paramètre à une fonction il vaut `undefined` +- Si on veut une autre valeur, on peut le préciser dans la déclaration + +```js +// Si on ne précise pas b, b vaut 1 +function multiplier(a, b = 1) { + return a * b; +} + +multiplier(5); // 5 +``` + +--- + +## Ajouter du JavaScript dans une page web + +--- + +### Code interne à la page + +!!! warning Attention +Comme pour le CSS, il est préférable de séparer les problèmes et d'avoir le code JavaScript séparé du code HTML. +Cette méthode est présentée ici pour que vous sachiez qu'elle est possible mais est fortement déconseillée. +Utilisez la seconde méthode, qui inclut un fichier externe. +!!! + +- On ajoute une balise `` à la page HTML +- On met le code javascript à l'intérieur de cette balise. +- Dans ce cas pensez à entourer votre code JS avec le bloc suivant, qui permet d'attendre le chargement complet avant l'exécution : + - Mais inconvénient, la page est bloquée le temps du chargement + ```js + document.addEventListener("DOMContentLoaded", function() { + // Votre code ici + }); + ``` + +--- + +### Fichier externe à la page + +- Préférez cette méthode. +- On ajoute la balise suivante dans le HTML: +```html + +``` + +- On utilise également la balise script, mais vide cette fois, en précisant le fichier en attribut avec `src` +- Votre fichier doit avoir l'extension `.js` +- le mot clé `defer` permet de charger le JS dans l'ordre dans lequel les fichiers apparaissent diff --git a/src/slides/B1/web/images/multiligne.png b/src/slides/B1/web/images/multiligne.png new file mode 100644 index 0000000000000000000000000000000000000000..1180fd2bc4f2ddd75dbe0d412cd5e044bff3c6c9 GIT binary patch literal 49386 zcmZs@1yq&a);)}f(jg#7BOIhVrBgVBbfsly%X}xTqE)VVDo{+;Ke1gM*gBONFf_w6x zUkq-Mz$u3=5_!#Y84MvW{ zL>v+Osq+R=e)h!8Pweo2f5SiTJpO|G3BoGY8A~k}QNr`M{9@_$JIVj?CH#8uF?*`^Ypc`u}QuyuBzgqr=RQZ z*VcABMugu-sL{zkn5%Yma)N0+@bdCj+sK&78y_bAkn+MH9T0G1nVQq)zmi6zg8yd+ z{Ccr8${<;(sUrPWQ4KzS>U5ZrWp5({i+o@mHFAibP3NC~Zo=Va8~2S!8blk2?60Jw zefzlRc_d))$MdN1>g(69Wa)oIQ)y^uu2~6F>?ScV!e75mrNN7}+Bh5>;|`3+S)85C z%FCKj2%qsMZFx~aK>@hLW{0(|AP|X=#5@a4-=e zp^|d7hNfnOc159fb!S(X1sa!c)33_P!Y*ay!<`k@i>qJN)ou@7)wCQFeSIERhYRWH z=>zJ^Jv}{_2XnPL`LqLvy-?}3Q0Mun96c}NvK~nn_C1qVBKGBFW$~`KV`f`}iMLq= z>TZaL-6bVRjcKx0%lYb7Sf6ELndGhBMaj-DF1C)0K(#6ArbMG^CD_^7?UsBlFAvOI z_oqd$bS{%;WfL=+52+H3-(ivbjb>r2`N>JH%~06x*!Va{z3>h-bbH!KSX_e;YfTzE zDd|2fZMC&kgidFjl$e;`^K#y)Vwu{0WB=fQ8q11Ju}C-HWP+l}wXC7Ri_Kl`jjgWk zpNV|VDCm=JlUjmd#!~l>C>Z=7xW;+K0dw3JVH`65h(d)xzxtJnPudJ^c-X;jtpEQdBw}*KLu49%ByxJCW$auUMXkK zhE`xukVU_Q5Y%u!>uDcIfQ}lNxQPjsZIp#mbab>iJ+_GbkG|HH7U38;Wk)(Drlx`d zLuuHkK;+eu?_+BK;)f3_`-&8l>7@K_$Cq<v=0xOjq@ ztkcH)*$S{%SEl4pHdcqX^_5nW1$#$iuLxdydfW~sHw)K4?KDiLlnh_nGRvxzn+bi# zSMPR$y-QgRep-HVpr;iQdQ3_ZMA#k8>}O>y<*BQzlv7j;$=~zZKXW5#Y;1%;Er}-> zBCo$gW@ctO4L?AkJ3UAt5n$C7o@#5)kwe?My0`?qgA)@Q>-p@=%|8>G=FPKdjw3)q z0uVpC?)Mm!KH-kkY}@v+97+P8=Hle^PMpEG3nt~IrKJUh%~x9CpD~=ibzHwbKHeT4 zmXeX#i=^zn_WIGsepqU)>1AXTrLo_>h3Z6b$!6=%&LZsUiV1~P2;S5bE2?}4x0d+! zW4Kn%^73%x3mC8P8*Xl97M3rB@ARt`wkv)9Joh%*dF3-N9YS8S|AEU|%GTQY@QAF& zA^n9w&zc~K?3}4qWpZRBE5JE^{(`BDm(z?_xgSiWR-9V*7O>T_!USgIM|z9bJZC@HS9}kboffPNVJiHt6`+cPb~2NameA z%HO1BVR~{IyIC_rjYCdh_!KLfBrkX>5~Cg|s@dVT$i#?jV04UacN{T_C=+5fu?%`l)g#7m2 zUiX=1+>C%8*=1QtG8K|76l(FV>pj>Or{ShtLnwS~WcOOcx9`_mxV&%PK-ahM`PrcU zL-=Tzm{E{g1HZ|nLX}-^78VwM{(&u2jy76a+Jz?X;PUc(js1`N)4j8^9$~HK0A}hP zKVpvXZ*|FIVlGx%Rod7b%pR()FO7`2A7~X;`T1=P>4QN3a}UoFHLCO@LOjiR_zA{a zG2)8VHDuIr2bT&KmHwws@z1X?J31I%B7Ig=RNS`esF6qHe72tCHzAn!GcK#_+IqI4 zHa|Z*H#cw+&p3pwSDBCsIpNJ=j#2WCInTj#=^8+UrKUd&FuQ4ALm6`nU*E??z0Q`F z?+QGTC*lLJ(b1{v^3u`}I;c6?)1-fDxok>N5k@1{iEr3gsixjfo?Ht@`&u>02vREO z>3FUvzwi9)>?U{ugG7)D*2w#t825O!s+~Vcz>m|{L;we;zy6Uhn1? z`<#U8KYz|dj#N}wsO#!Fl%4Ez8{vEZ^f#)#gTul0_WgExgr4`s#KD{@`&(pxnIDiU z>zUiXZ@fS0W@Kc%yu?s3a&n09tVKmZk%H|X9bH{Ly4EMeoW?L(Yz_YLbO__Ln!LEA z8$MPfBU|e03-$K?lbLB^?$xBzR0DRds;a2jHzgwjSH@^$w7GwLIj2%j5EEWke-PNspBl;tKts=@8~+SNop)iJV!MBQ)_zLBvpb$wqFNk~Cc zGw>aBdXDegx9>$oXOR#;(wiUj>Mszu-@K_xT`_faJxUe3sj70B{hD>){{{l7sHnI& zKi6&YdKm#T$O>VcZ+M%To?hPUyF8rg6^+l9m7A-{5QBz>mU=g{xcI@|etIlQ-iD$a z5;|t)u)pN{3DWED4Bds-mh2Ja6Y2~b4l`%1;uTF<3BP~7h6;7vU0tC%}Ab8>QsxCuda)6p}har0GDrI*r0^`;Gb78V`y z##(h29F$@^Y)Jo}$e*gK_ne#K1B*x=b*!m_`k|qYBOz|X13|F1HW=Vys`OJ6Gb=0C z6GK&X^$5{aOH%T9`Sh)J3-6i?&nwf7bz*Va;a#lFgYoI<&%4#_!4cR9_#ekKMp%g| z5Lz=E@kyW1^uQy*`E^Tux_mc$={UamXwFbwRwn3viVKBNQBiSmRqeXyB12(;f%2tj zu8Hta!-YD)g2Di^4h{;c_>nL}mKA6$+3OQS2i2)nD);ebi|Ageu=wceTAY~Zt)t^* zV2z_?y?~9um-=9V5}cF&F_%#Doh0KkAuUOOUF(9t;^8VUSJM{}MRds46RCqE%ejTUZbnfAM6TZ4`p6tzEyeG7^Yt0v3?ljw>_!$o}I; zA;)zd80PwEXJX<4n`TCAY)#2A2VpNQ?pItC6T?-<$ez9P9rkSbWbc|fv}ES(BQhyz zt@btdtn4G<*PPPWyo;ncie(OKfZe!eL@3Cx7Ts-+q<;|#!Xsf6@=%$W6hXY~7UV!w zg&kjA+1VYVg)?hqD|1*;!slfw_uykxuRhJp};LAg!;j5mJY(jusgpP;*(F8KAr7mX}MKo13Ge z*z0=F&QRIdTtKBuxovD}dXifN7~{oW-XXm$fUEwFw2>_k0RVb+N+uT;(rar8I#JNk zDWOVpmR_%F%FFv7{=6k2(FHj{w-p3>(Xkd$A@D=R*9Imj zBcrXNq9QL(7O@3rlTr8kjLgi~SoN;1yv-XcFG#UYu4c7u0Qe4S>S|D!IXDLT`|APz zA-~I628tJ88@KKJe2oK+h`oca5|jS?v>WOZ@dXvFN@2#7a9c~(N{J81lvqf&w?IAB zeu0zryLHmgp5p*FQO_+ygKINa)mT}%u((L-ZfbIXkM!Bk54A>zUgaG={uIC+^#YBM z(GP0+?(V^Pd3oMmUN>GMl9KoyG;!6XRsJQ{@_H~N3=DUg=;@gmGT!KjEu%E8v%CuFhxK(d;9axLLfM&_6N7_#>C}}? zoiKz#jMqp^XD*i3)=I^D76F1phPJbGyjlSs#5o%BcafXXCFn zUhCVyIzCgck9`jEzAJ0G*(3_fLtun()z{S#hM-Odlh>S_Ad~rAzt%I|k@vk-w%o;o zK;1m@vb-cEC4EnOsS#QiNaAyrjXb-WX9)(p_-=!EXo z@s;*qyQK#g0y@jXecQ`lPdY2h%ZrPe#9_u_VgX&_<}d^idp=&?wbfNIv35{i6s=mO z)Muxr083;-f_J2_>%E^(H zl1jjaiZaEf`!Bzc<-y+<4%H724`20snJgL(gN;5sJgKlXG+JZyUw$Xv!^>Nz5Eeph zoAR87l*$hWD!=4M^oNKGlFX-`QD_e0%K_Q{S7hl~ZnjFh8Ipe}wJkuIKnF)hH9ABP zV8@@h^X^mijD7G41tKF$aTv$H@;znfRgyDwNbkfj|ER5S4QvOaM2812?hG_b*}RO5 z^A9h-9_IJQ7BgvJ6`VA+wJ1`I-_G>)Y2^}kMB$#Ep_Y|n4wDjCp0BTmU7s+})5}Y1 z$#F7J8c|cc`@K3}OEHezY@bT}Rsk2_1YkL!fKfN_4Moe&12o4%k*KY82UKJ*`DhaG z@6}b0+jC70Ryn|7?4)wXi<^DnUa|;ycaNlZBl~M>X$3_SX7rDbk1OSi&zC}win{tG zsS47G1p4dlr(#lyi ztiC=v{-n^KBzaB4Bwz41%`GfYQAWLpl-J(3{LV;~p#axq-tbKpj}ye~{=O*I{P{VF zl&~Z%i#8kKUhwWN{mcwv$#7S}!HMo?lI?QzJg*Y!qQK+CbeVQ&Y@1Sh$>02z3H!3( z;DB6Mc%W1Cqp?xU_fgoX!t#TGrOBy1Sy5J&X{}f3JNdA`$=&My0s+4nJy%X#=SP_K z$jWoZvqs_H&*p)08W4b&ed50p;Muo^N9LR;1uH0O`V7Cf%5Gam^9dLe4i2myi9l^H zSC>?6E0aT)osU3*3?49u?%1^AP;dXRRux4-pEc$TxJr#MkiG^r*HccAayp;2en2heix z-|c^NJz6x$YC#KW1BT1RuciASJVAE$v#I6>&dd81OkcP2ZN)su%G%o9a_dvv zDytkZJ;>ss!`m>TFeE`a*zwt!`c=I(vu@p2uGyBvCzr+!w+!J)q!YKH1Dfi)@}UB5 zGw{^ZTfzMtmzS6SaN-Waet(;u60rAF^GvPQxf2(NN^!;o02Wytug7+QMg9 zG5;)lk#OIEPDC^p`C_!QbE3Puy0DN^z#H-BfvSQ%2d64$O~{RulEdr9m(Klw`=y2N zfm^BhTdEfp^72FS#rJ{g1(^wo^PvMh6^XXGmtb>R8n)bUx*!QMa>#Y9niUg1SVJW; z7vpT5CXLi>vRAL#LOI#;nYGyApxDZteqT{pQy;RECbj{V1IQF9k1r^+0qLw(tma*w z+LUpunqFnhF^Q?Cx4OD|25^>^R$IZPVwP0h3K+=qpyVg>s!BC>+cSPXBGx5*Pl(#H z+S`;wbx_ddG?+-w>&Akg$O~-ZQlq?hh4DUwT<5(hyW#CzMOezj>w&qDOHKHXW0`4I z*7sE+GM>!l3?y#wz_2nyVtIy?6%o$-J6INwg^^I;zZ1S5?Ua;^1FXv&jSmXz?CgvX zg=y3%yz_Q|K{U0s`a4lKEBR_X}Tzb9QjBDP@^OD*-l3DkrPs zbD%{cVoy)cJSv#0sXd2*9;P4(<@dT;lgVL4@o4SnrY6737K8Ql^POKz>09Y+=>3Ac zAR+k!exY=J9v~+rWlTo(I`Y~8x|+JWyuCfXxcIO}_BahZm44>tj&#WE+?+)^q_4l< z(}TlR(f)8h+=2ND;f-y9e)6};zZcv^d=K&op%r*Sl$03(0Y)CT82r-koEwP=3G8ex zN&LB%elKomO@vg!Jt%D4OunJ>y=Xf%a{&jn4uX1WWd&$=xdrDvJc9M9y`fwT2 zlP7tFS&oiPjofh&kjfyD^hO2x5A8w5D$Tkz3Po!)$YHS&TEZj?HA;ra#WJrz!IxkZ zT@%ca?{*!kM3*KD`@2b;kgv0%q7%U6c_qIHSZhv?;YqbjFa^{wk4GUiqEF_Jyg>d4 zV=VJKJ}PJD3n%9bGz^S%y!T+uc4?4}87ryUm4p~Hu;$0cf~WK|CNFEW+A%Kfn~d%* zb6t|Uk^qOWQ~mFRVPGdQGn?}Bdks-ed*ScxE$!)vsHN+4W~wYJTkt={>%-!Egx11h zyD#5V7#9LDI^<%%hR>#KI2ImzKB0bw0lI6OkSAGit>+`Uu;WX-socloL+85dZFsyR zVto}A9hD41dWX#c&D|bxQwn7kX<(kK<*FzxB~DDlnifD_Vj1eoWV-&6as@1`CK3N^dCoaB(V@;31Km& zc6Lkp52u@#2YmhkVlj-NGBR`TbY;?Va^mV@5NrXiE@;rH8zqI zQbodGplhZ(eo>f{<90c-MNCZG-qt2`w_i@e#|FVp1~Pb7Z7o|<>Q9I*V;<)3!nM;F z;N2Y_k^-?aS7ieno2f$O0}C@FBhNiGnXFr@T7~V64XSs^2t-7`uDzPXSCzFqo_L46 zL}|>if~IVG8W^N_e9unkJ{uTf7KVKWUO`LC@Yk300{m{kF&@6f1yXsui?}e(<4=Z2 zes1kM*!pClMGx8ABAwbk*(f?F5I5Bo6{)WasO6J*U5lo>yQjvYBHkRclTn!x00TWg z)^=rXW=6l}xDfIJ2j|W{H5jNyU_l3>ZZJ@i#BC~io10`Ljb`#@9n`FBZ(9R{_Rnn? z=vj%T_VmlhYRk0s_0?r(+ks3HO_d_Yl7fKw~ViL;2|Ge?fZx+^LpBhD(j1vSMOl`uh5oyVYch69OM5>he6V4%=IE zFtQ+^(lm&T>>w%7j_6z}Gc4nqr1{*YztSl^m zIR(_8Qf_kB*S4jlrG*7CU4o=8BfT66Q&)Kn#+OI`o(1q(4N}qjOotYnFdT?Xx^{;xFMqG8L5S?> z@9w@@?-f1Q$`&LUuY`bm9MQrCriGjw2a#4D`M4aUO*-))()21o!>`UxgYe82WClyoYafPA=GvN;uwKo1nm5Gew!IReRE+T zi{3w=!Q-8juU>3pVR3eTkCzx5TP>RUEka)SM{k~LKG4;cyOY78dVD-QmggCh)ir%- z6R&4&vl9|@1obblQw4uLdlo!H&kKRFETN7`A}c)yqV^4z0ScBZneJ@Mm=+#A{a#yJ z_IET9-Nn=OUS)>74qPd0gjNCH2Yw&dBpwIDdB<=*X@8R?$wsaxoktSP?;xv@%qI<&B;!7a?|;!Ok|{@c~l@GCh0IFv|h@AT2|)BQAV;sgLfDGmkJ6qz@w>Q~8kwX6 z{T4}f$B8f>cijc&i*TYqH;YjKpCI|u3TcMpRQ;EWG)l{IbKMOLaw;oH!k$i@T&8eI zS3DW%OrGphFSdWTM65!C%Nms?4OU+6{h}KnE?_2MJ)`ahh-i?@@(Bv)mL`JI18g8? zlKC~i1c`BTSEpUzgO%Rje+pFCu8r-_oGE_`%uvk2Zx!G7%|>XDE5_g6`kt=S`Y)pd zrUBs#T05Yj1iYriMBQ9WYo$?34&-M$nldpRDK?s*4J6W*3F^Pq>%2%{k^yJ<_70Jk zuYQE*ga0zyn7E=iMR8WvW@_q-2880!P%BMM2_U|_|2S7H1^@Wrtgenp3ilEpAL#n9 zXgix;rGpO+cQ-en;a;d;taLK$S6yUnY1x*fU7Z#7?c4Qj-ekKGDd>O!n0OXGnbgrg zl}^HqK_)o6u;97Y^}D9V4lzX$Svj4Z3Ynv-AwAv7+&m*a9aZ304XTK40NlcWoZN5e z4f3DKLj^RK2mNX^(Vz)cP~Zh0I`ST11Zd7LkRh@U^-PC6|HMKDwM0)>gbDN60-LR> z(%IPbP_z(nKDh%U8vpF{1Cf*Kx4WFO>Y}vt4UmpBxP73r1A{4*YKUU#%#QiF%)8a7 zD5$D(l9H3-$pD=Te6fRrL{vP4wKRuXHGF2ZgSptk(%aRO>(0)tyW40$$Us@=u(FWm zQ3z3tS6CQl;iwiJkx%66-_TlUnE8yG*%@kNX|)G>^T00yj%getf$1LwUGKj!lAX;g z)Z8+wRT;-xxbm5-ZhpQYJp6s8V@c7Whpa3^8A@_zC03UV*1QAJ`--%%yQr#9RCn^G zmZ07d5b)(bfRqPN6-*bEmnY-x-S_jSRSs-wJ4EkGPE+Rvav{cu8{f0%&lhVPlv5Q* z-#UJ~wdUpFDN}cnf*Ca7=VZchgBhZa5pc?%3~o!BIkJC+fbQ|hTKCAC6pc?MRaI|4 zZUX!EZ)e#mZG>S&9%gQLL=J_`tjfwQh{7^NQ_U?c0rg}wli_U!{5R%$X!mt z4t-W(AppJU-d;^|tRz152KSGB=Np;oeFJLytDQ1A@?+rVxwQTB=ZCwyJ~eR^yMDt1 zQBq!@zqh@eaWgcLe3>T{3~Han+<{>q>f-#ozb$o4ExU5k4zUbYM6=i}#zE)q)|UL= zQ4S)y$|@4>O*kA=lTLIG!~+$s~h%Qdi(UTEf6*8HM`hq**w~IjN3QSPZ|ss)+&XcXD289 zf~N-%Y`>uW#^$(Bg7g+JOgJsg_!yg-uJ%1)?!gB&-qUhE#I!0_EBy~J2A@6^1MF~y zUN6jndb8FTI`I1!x0RLEhT~0#(kG2LxU8^nxFd7EkMr_^~ zKdd_zf~hXhRcQuH!mjxb*JA2%FT%y=*t(*k@VXxUv=e*A>R{9|HC0tbeCJ<{DSt<} zY~||z8R4>*9Z*vFK0R&H-rkOmj;>v0-TAc3)Q+I_l-lo;$0t|bi_WiIk_uBhaqYw! zxCHZ~XnzN z!L=ktu=_k07e-Pg>~k!Y!@z)bZ0(IvD=MtRs1+j~I0JA9|M?uhZW-YK$O(S}`NE)!~(h;4g7_dP6>}T~s zLF7=`)61Yr$Qxv=w5R`lW&DZ=!m!~wrk3?*NTw*tRM3v0@|v5tCQ~8B2*kpYIvMQu zG2&kWO}+$XelO(+AZfj*R4ELntt_d?Ld#vo){*qzvw<>{l%Q3Xpp})JmqHQgL72LzXMDYnT=cTlxf~KRRPNR_ zea-%~{e_WHgJbsispp>Iw)yK>zNdxf783Tl49G&2k*#RQ2JTs8&p&>*kt^j;GIBUHqT^_xLNYPtieG z@GC)Aag1={Wd-AnZ0tL15VP$-D9PAUM`3g%!uhGDqVnl3G_$f?+tFLaY%8+e*gmFA zZE1R08uPF3*KzQpAcn(w$DWG%SeST67@ao+80ok{cwbUQ6{G38_03%cyI>ss{JF69 z>d(UXITg_ys_0S1aA4$8vss$)Dfo2xFW$)??LGSE?~5WwbScxhH#P5D7FXiLzhckt zke!!?^eznyd=a2!7Ou=f*jL(a5HEUZ?sii)qXpqIl zO`af(E7xtwgh@E>`OCbCN;k;vXc8*<=+-@OPujh$Y_#@R3E|zUKf2T|;aFY5e?djs z$l`J4U&5QTe1&kOOu6PsJVCYnF+Q0QodMrN2wY<)OoOBhOPlS+e>vmd3IFeG+C+Qu z9YUH5IVp{dl!C-hzo0m_EGfMk9mYa$x~{!x2+4d}`bJi`3!ig#+S|zB_;FLSgc_UX zSa4_ils5QG9Vg1mO#SGH$pc|2ziaZLDRrfIU?6J2jphY&BxF=s#mMRryo|MbTmDT} z@z0-sdOOa=DARrIc~FX+GqRD)wy0p@o?naRW|ubX4;^^yh<@GAbeyB(j5QMwHQO3$ znI3%+EpolOAMV*^G>W2pU&O=Yc#YDDn6Q<9JCJ1>LJCiyuVS-xJjx$>^)2j(h_K1X z`aUgiBNQ)2sD!*|W;UJ1L$jtW;E@P8-*U1MytN!N)81Vx4QAH&;NoMqe)l^$XA=bY zrfD1z5vcp9BScE2sWQxd;t5`{Q=fSu1k7>bllwe`%A%1PlC%EC*YRL{fDD+m=uUxiGUSs16 zvaoryww-!Yu5B@fhz%C)EeNRBpS54>@yPuYONXSYH&q~v$dfocLv0wE;Gc@WnB@4ABN_CmMU4gl%n5V|5E9nqKp13k;^Onxj)_^Og|pCF~) zP2KrfrsLw@@3PmtbI7K+kW!eRFhK8%b2YQ_`3|O8mq_U0!76GOqTaWT@8g6kmRH(* zYVoW^e0+x5?@2t!GDWAb9QILvqxG>c{zix=!PH8dKS>k<`rStj&H##s8X+ zvt%~$F)w$gP|S_vml4)L_F4qLEVm9f63?pFghKdlVLkJ<~El%KHsuOXF!~ zR?s|%IHsBgaaiSHQgQrGpT3oIjTr?=u`lAV4buDAO--*4=GO^S_=%_3P_DX@MNX~< z>fkX86UtN-75y4Sy}oh%MW@hoHp2r9y-Ph0?KW$g(Axl%YD zd!?|g76cxb_))W7`FZ(Re}ML*`n>0U0_Gm-DZus37TV-;As{tGysf>DYIkq%IR6|a zli9eY9u)LwBxu)IPmQrjiECC{v%t-AEu_qzCxlI|wBUAy_STnE?e_y#2t+CMI_2!X z7#;1w+^{a}bc8fJh(wtN3SuS((!|AbT^aB0@8O12^|iA#8gl+SHohjj=Kk|4JoOY< zAzu#8g|?Jk=3~LbbL%@SQ zgBKPidh!Q?EY$q$#f#9*0a3yMe{pe!(=+W9^htz!>Nik^Q``%U884fbs=-cFa;SnS zRCak(mK=qY$|0it2HeW*$mH=aU|o56PStgJ6TfO{&UZVx!n#d z=wqAh|GL|<@EVG1y^E?#Kw<7jy^^~8sEOwJg*IO`8d-zvXTXNyol2nZQb};=Ju~J~ zg~fS^#7R6Q`^#inaHI@=|Gbbl$hDC0LBJyQgPb5qi>y5t@&hb{4u0(9ewP|LU?Tue ziwo8uYu7&&gZd)Ab|9IEaPdvelciW}3IU0O$*R0UCN#7|B0@|42V3KBYCpyO0N_5D^NU!bNd9Y6 zhp}JPDM);X1LWw2?QHY~z7pJDOwI}1rNf*sj&CL+pzO7X%+8tWy9K4f*Aj&cl#+vO z*&mQM`dFqTEr@@4!7&1MT)4||LHjilIY{ZfLll-*NTACxricp86tD!p9DpX%HssVr zz>e{t;XJiXcE&&uRs11-3XZIV!G?i>jSa=-M-VE3kOFRKZ0xi!xfok^{zMnms@nK4ZjLfjWlv~6pqxrl9&mma7AOF2kn zJ!J3v*PaE2*VvbknY(AHc^vDrvfuUeyN5}`3*J;qHN-R8NZ$5*W;R9Ri5C<0O$Y{^6& zbF)7a^g7FO!Xuh^P*G-7Fp@vat*^x@v0JF>+)A|;YCDs|)GEKFY2JX4zi{Kr%GydH z6P=wi*0%}vFM^RFUR|V}2HBg5wH$Z(DZ*b0%#M(j9_!?KWxeookYQx9a7R~nArz1C zLsFYyU3Gv%bo>rhXy#n?5s=e_MD^@kE@lP>G|bFPOF~lkR{vU~+1cBM2LDf=mhbN= z!9jmR%vj2FW&8c?O&%#wVC+>J!$%gO3~R=)-~#?sIDwKd;?tv|*|&jfu8 zMCRYrTyJk_U1`iLuVsblw!3ya6V*$5N_y#(xH337b#*IJ#}aSdTu&eDHhDK83UbwW z7G)B%^1l|u^F$Ft(7Qf zLDfhfA|dBx_9#@y-e;NqqPG7OQ<;OrVX7~t3NJ$;bDN%Cw&vIBMp5t=6zLzliu0>3 z|4K0vQ_{id$>`dc|BgvhNhLJ5-_AS&&s@JH!B>H=|8?71S14m z7zFNWQ(sSN3Mv-Ue#wmCmXr0dGY!g&(f<{1l(<2C#-LYG(!twrBc+PBqIM;l~rLZB=u)mD-OSmy%0Bt*COouiNvpYx8h%MJ_g24 z6O*Jz9JF{}U2E!m0dcgkb{riE^q$itOLa>Qor_&^j)+g*F5Q40-gC>!3bC=(nOez{ zM8C#{uDbg_D#$}prLjW=0t0mNJ%bWnw0*_X`*)h@xa<$Vz{e(e=v6$hcI@c=p>}V7 zahq;VKlzf>D^hBe8h7jM&|_@s3elUaJDqLUezv6La6;xq1Sg=OsNnxOA84S4Q{%KF zEi0Q)MbXjKrLL|&>EdE5g}u1ggpSVL-E|oKL-qR3w?3(^y85U!AUMg>wxC&`0QB-j z4Rny`)gWPE3$#p3nYn-8(b<^^_CAJLzcZ-`h=JEIaa&s-clXS$wHCjC{Y)gx2!7uO ze<_G&9fxgyjLp8^3Ij+-j~51!5QRTnJUk6%@_3|3lOrRQX7ZEE%g58xi9tcX2+w|c zKtOOg`xIG8pB`X~yM)ag$R)w#Veb@?n?4Qpic!4ZnVBoclFWXN?#U z#c`d%(RF6(3VoI--)4QNIE>uyN)vHwh$jKie|DV(haQb2%hC`4_K$O3dSyh+8q16? zzIIZCL?{r`9EYFdN_c*?Uq--e9Rh03!u&eQ9j{;D+Hbc-P}Jd53!nedOS)sxuI>|r zM~e?P%wp}2Kh0jWuH8a$Ra!-r77%&;8_DZ7mgvQ-UAt2yD4b`Fe*C|s|W0m&pVK^<7Vb7jAb#7Yb^imBpD)TBrO5p2a_5q$SjZ5RaKy^XEorY1woFNC4E`Bo|`=g z#x624GAzd7ze8TUtQ23H>2;&S?KA0*k$>|nEaS~)F9r0AIQF<*f`-}M)<>u4jt+C# z4-8>*G%5KJR3Ykezsq#y<0NOjBA)HK(+KXCV%ib>N@0C*y{XxTBbZLgeUgk9^%lycVsc2mt1#0HMj5$xj)>!>q^e2`o@ki zNKkZGud^V}$6KvE7vojkZl2SUKfidAlxq1TlvReJzmst$EOuwtXRPZG)E|IYhxyec zo&S(B$poDv0!KkEw%v-Vnf0!@<<0ojE-@?mZIje@4o`4~H-}%z6nk-I6;LvTC?s$# ztpP>t`Zgi?cRA1g`p^BYIku(r(Zv%^Z+)j4n8N#0T zX0ip+3}gY2RQjBpcjX~F+|Qo_#c=v;8sm2gBctIE1~6ZC*$hlN#( zQy^bFsz9+{zkUI{+7BO4bMc-d27~EI(4l{KArAZ8HTnT+xYiX7PH*Ivwg7jqr30yC zN|ct?A_u#tpB@Pr850><$Z4D96bhZmW9;66LB3OzI2i2$M4Bn@l-=>8h4yTef{DLh z-1(4ieSN!s?mn8Z-IN+-&(879&DE1)ScqBJ&c!(Fsae_C`8qi4%vSdP{%zCqIA043 zKs+;Hs})TJr`K%lj-=ne|BzMU{!#1WM{T>}w5%+(U)HIAMaB#ja`ZAOes%RXx$^^+ zW;7U>Xl@#ILVgsJ7ch(8!uR*eQ66)u_>4ZyD3hK~_rIz;>WUKpmjg?cz6 zSKK{UHJ?6WdsH{wBqJp7E?Pu6C%Q;Vx#CH{{Pr!Wa$V_a2kC`dqJ#ZIddLnnaXK?P zdb64x`E8&FsYqrcWs}UBo4*-j?cevNVtmwZMBM>_I;80cOc1XD*0lHY!uqG(3?cG7 z?;e$cB`Fz>5paC{s>AUtaq&x3XNhMGcan;$qMbW7n9qH38182W?kPD-fzfe=j&?}k zxX8`s)7r+?873(sG^#vqZgj6G$6`#(d&i|DkwmpN*P&4T20YD{v zKcC{yYftV9asxC;bCOi9&ZV*0;`!gadDxw>sIH*e`VDThbe6rNnI~Y*E+hncazgLn`Eqa42G+ao=w84Dh5vi-s>IdK zMMB~wVYdi7@?!@4&kSvRsOW_53lIIu%15PScj5&#F1NrQEI)ibezqWLoh}@O*qHh4 zuJ-)*w#i4OQ=RC=(D*g}$InrydZlHEUI2CCAprz^S)FoqT6P?7{&oO%7Yp}WTTnf}eQ zpc=I;;sk6rcuSN#)~})`maaZwg@1ti*UZNLSQ&pqBD3n>XtaMN)_0v|h?vbPvkJ1Q znT@+y&K{t&33$xt6{hk$ILFbpH9hCDpeLu%~0)nk14bIS4&jiG$^+1W~9p?7@^BV zJEpYo^>^BQx4Muyb4NNtmIRQj4n&D0UW`1Bj#fu6K0+)K@m~+aPg4?1$p2a4!r3=9 zGd;Ahu$aILY9#q)*x5-H9uDK=tP~V{01xmaJ>6JGC#{O3`ywJFgouO+Ohw#XU#GW# ze|2`Al9YtTII~tz-3_o;=k5u{{7{{*8PU+zR@e2`q&VSo*$1dg;$r3OM~)5cFx<(M zQ6G-&m5D7XK@yNvHVgktBpe+b%gY?ULn41Tlk?rdjTu0oU<6ED(%!!2-QQ4ZF^iP_ zcxlZ#y9>&$jizSad3pIqF6(IsHq>d#Ax_N?6Duwsfn!p%Le?8r#~z#1{gANvp1+f``Jy-!VKr>6By5HXoX{Y{qP{NvGGF+M#Ee@&J*&kTM=6p3OqtE)8}!qTM4FNL05k$x!Hcb z#{mK@&~J`>N9qGQRG*N{3j)pmq72W=DWe$3`OliyQN5Iu_)}9$VETQo-nCiw4Kr=6 zf`WZ?9^w8>l&Y#T@?C*eWf2%;_|t*IeS3SmwyH)hZ;HaM2@_VgjR>97m+MOI9-bE2c<%1#E$V=%yXW2I`T5O_cRl7a_D@|dEEtyykWgO!geQro z7w9?p^@4s-JRTEZUgBl{)f-^02`czo@Vg&js;j~OEb#JYjUpIB03ZzJ`M5|v$22kV*($_VCrpMA^>F1uS}X9F?Vyb0q=f)xS4Ty;b^j}(fGFV5jWBdeH%JaCB^`pKgb30hiYQ19Edm0PDk0LT z(jY^3NJ)3+{0?}p*Z0a@-}|oh`}1APf`IK&$l@Yd7?eBZ zk_r{a@&{4S7ZDmfGEi+)_>M&si$d6siF#4eQL&F9Ab{0AE=CIs%)N|_?FMv!%>cNZ zVH@BO09zuProfOh@TZ)dSzySA-VOx+qoWI;nK-&>N*iAC@GTF|L%q9GCZ)pBai3db zpzUl=07F)7oY2r=X)0SDy^8xwwTdgc=4*T~Xj&O;#l#NnE)pXP{5(o3tDxFR;3a;| z%j*K@=GZjY@in)&`MDYN6Nxm@a+!UQRuS_$0C#6ty}*Ogqh_>PN|wxC61e?NPS7Exy#=(IHBe#_ zWPSrWq^{ltZp)}OVJ!0zhrb?yfR*0D09Xj@O{#zki(HTl508L=PRMgBgn9)MM)Uc?eZ&h#Ip`0{+_4zIz7sWG3R2 z{d!b$1$uu8G^1`pZ2g<2If3^YYzsNC3Zb3QNC*syY`NPJp=jHaT?pOV1Yi&>9JKEW zI4}CS%LdJ;MpPz`r^{$wv}o>3mvxtd!59Zo@i1{r^6{>|WB^&~RkWHWHFAI(yDNFa zNb&t%QgwYbysW#6ORsD@057uc83gEZka07@Y(mD^SWZ>7X})Ix3aJKnFKFGqogl0u z7XhWFPEmfvP~nCD6&`GZNXnHR}BL30xV4=O!=G+Ce_0`Qlotc_i z`jz&3tQf%qwn-~%vg+#T9I6)gayf-hn$ORj0Gx9mkGTXnu@W1b3f?c#tP0@Ifkg#e z5^&>urCfFFhjAexY~2rKkqZl?CMFYMFYhmrcr9b_I7GKSvUb@ksRdcsOdEdJ8#K_` z3TBvqdx79;si}9(_9}oV&M^)510X|LdAZ8#pb!R8Bt4-`edlOu)G(91LeS8j?JPFU zFD}Xyf*HBK<>0NCLo6caK4zWj|ghe0E6_v>dY8Wv7+R!!*0~6Cg8IOV96DC&MgE+34j|mA1pc%6*?=EaH5FZBe zzT_neOGmbk4#sm=UNf-7C(_Z|_eQhy7!kr!s*MByi^LY1EQ1#S<>Yh#TgoI&=tOy) zG#UMvprxgSp4Lo3;?uR4VuxT#?pp`0v70xLPGs{ZfSIV@W}-|_)a8SA5`dUUt|pqm z9uMXxRob0odjhm@)MmkEb#B1%e4%9<5>RY~KEL?KIh=%5Sry~0dElZE_cUmW?35@; z%L}Y~bP3*S4}N0FH}7N2*VZ-gDlIHDh#v?&_m~YX1(wl0(7r3i&TbTc)QG$m`FP|U zKd7D5_+iW*AF9z}Y%hw#!?@CLo$tCQB;16dOvi(4OjEr8Fy@-z;-tito9-iAI7C04 zhB2hQlDsuY$ikE2JgNZ{1CVAH&>loJOT2`3^kpZA?4ip zpDzQn(kTUhVf`!$UbwllEx1A)9!uJHP5zG#l2Zsn?^{C?22Df_x+Mc%IhTf;=b!-%kI8RbL{Yf`DpcTghA1lQT^G$x>!LpvQ?p2Y4qm%h zW@yZM(p&+GdUgZ-yaWB8IPah&^zyn6wE>}1k`jOQjlUFl4)xEH7kHS1{^YVNdUj^K z%jm6lQ6}Xe-OJo1^eW##ai604;t!VO=jVNi<%~6FKMNGaQ{bH#6S49+D8`c}%&TE2 ze*lB?KNb%b!L}w1=;*M51%(ZkZ|6|J#)VN(kY?stf~_4AhyDF{WwSrM-ye-D!U3pZ zP=}6D2dqZsTd3eo=8V4d`RfU3F_&8b?eV9tJo&V`91shm9|r6^*uzP;%(?TwiVajp zppbJg6B7}J6D_a7gX|hkA8U(-j& zGts+|PgOg*lOmk#A8Za!)s8JfZ)p#v%%ejw!i@iOAvL%X;)Jk?^d|*UBsXxefTMxH z%pcQoHTcs%Yhq!YW8sN+f0jyp3z@4^kht#%x2wRIrM;KYKm#i&D|>HPS(Lwa+ip3z zlwMde;BRjZq6PPm6)y0Qj%4!jld|^peb>?L)UoE>n&-fOR!RqJysO#}ngnJKu;n0J z+Xff?fmF|-{`rzt7?AI+a>IfS5j6J-L6f93+JwA;&WquK@VI4TM{jD^s9e$?t^-lXNQ57K?y)Z}2e@87&Da5D0X^W!C1Wn?`Sn? zq>1Ijl{J@fl`TxnWpfdu4qNmLUAqa=>r<~VNICYNs{}&x9VX4gpyrF^m#Sz42FkTY-yHg}28N zMk`fopPcA**DjlQ(mXr3X+p`Z-0o1`)M@O|b5GFQl-2~XdLC*NThD>JaYgszjkLR{ z4Oc@|45$=p#OUYRZ>zmpY<|_kSSPtVbH%}u%j2Q9m*}3(=r`Gc1p7CUSJX$dms(gSu{$1qn@2#(B<2g zciUphyAkWj;VKu*)}HT;amtU{=RwiRgC3Q%+vYU9(e8kRy<&R0PQfnv_y)BS7g}%ze>u> z$IT6zl>sVlo>q{i#*l-k)ao{K?Mb5-{f7bxv!SR{!)#c6wqLKWJd-&lu4MC=KAtD5 zD}UyX%uoO3FGccUTW->Kv>1D{s(|_+MT+F+(g!=i4E=Be+Hn6{sq~9XO{x{~sjeyHD?f;0|7-6m=?z)(mJ~oZz8OC=Q zV03>I$ifkCg<{rAw&;PZe*M6Ed{c;3VV1C zSBbVCwE2#@pqQ;CEA(0zBF#qI8-y0TDL%Nq2ZFKunz-1;*DcCUgQ>}Q#rxylaLsc4 z7&*zF)6Um1swMN0{O=bk?PnN94dNV$4aR5?BeIMNZ?2cHe{H>4HD2SJSo{D@v=w}D zNwFgJRSfjd5gp{llcN>NSuY`R^_f>k^Wf9k@KwwZWnhLb-=4hN?h6;?Sq^S^0}c0I zeCHtm!~v|QW8njBXBhr~W_%lChi2olCk?f?!o+fC!bA4AmlN~Me83Er#EaNIx%dHX zxVWlw?~$iw8-CQyYh`!u)oF)JjDYtNz8`tPVeWD$U_U!~LByU_Nhstq`)Fj$$lA=X zFSZ&YbpN6(SdI6m4o2E9rOnu2<-=W@cLCE^_zj{_e9Z_vCqs^iZGO&i4&Pn$_P(ajxMIIOZXbzRf~| zMI@~^D?WwZB*+bylk_BPbXpln4)d_91ZPE2{cYBBoo$|DWyKr!VVRn|%*2hh8%r1= z%FX1vw`@zThtVFoqC`V8>7Lfv3AY~<$@8ybZe7)80HVIME z+sdJtD4x3N1u5YOu_o&MoXJNK0ZHtE6uR?G)JHMo7rr{>aGSQ za+TGrnD5nMn4BaWv%Dx;Y=$(iot=Nb(Q!wWZ5Cymng!N`nBT>H3HeaGhaC=!lTc;; zAaqQIli%7P=GoAbRKLXkg&Y4KT7PmX6m)%a-?#~`00^W3O^R9EdFkmOaQ1?+I4{pb zi&_Q@KE6;)!e(%*56~jOM!Ma))i?gYGWb9hdXtv9_z92^w1w zuDlbz52L=So0}}xJTiEN%z|0AXGKsz?sy34w!ieVn3&FMQ-Szo%+* z>1*;*dYS^{;#Dhr1aJli;9tK22@{)K!g&qK4x|v$}$^DlCR#RZnhj> z-vsV9i`x0f?2ZWuyf_T{iRJV66p2ks;K70VL*gP!St>bvHrbk$c?21ef?vHoLsiW# z0(Q*E2nlZUsi`rx)(5rZ>FEL!X*Don0|vz&UrgpQi>$@f+>*Ql+J(;j1vhFGsW{%l zrNEi08L}2W!!6<#$XKy&lr=@%;<;zMRMonGtSmg#v6hzH2E zQFEx*1!@$U32;2X8+LO&k&9#mgj~2k%cv_y`9knwh}b={zAq-cO7O;a$hzz&TH$M! z-dEYkiEuR5M^0t#&TuJ`$Fu>!3%^!XaE(MQK+l?iaX-DR0C5m%yQ{Ab zvtmJ0x&^8vf+uARaPtnhF7RqAUYN?mttc?<3L4e@usY*0a>et`|B92otwCaM!%TGc zvp~d2#wS3b(HKILdy=x=R1Qu8C>ZD}{Pm6PxF6irhWhV@fP zm4o_#m=Qg4(e2jwq@)`M&DXy)TqQ3=tcqY~8j%<;H@4%!t_b_OLpdkYEf%^s5TbX% z{fGz;x5L^{9^WhNYgjknnOKxUlm2ND_jdfd?ZkKAx=s4K;Yz4`ci_PmdG`F`ijTU6 z8;$FO6&jR;ox4XPL>(JmUNgleDQc*a^zU1qi1T)6QI8F;eJ+B{&Hg}OTx@y2JqStW znT8v}?^fIY#6NTZ`SD&72d2Qb!bZ_(Nxo%IrWcmg9%1h2cHfiuFNpnKjF>~~#^-A^ z4U{%AkOO6bhu>|HH&iVy8aLghAAs07sa z910)?PJer(bkUgwo+*a98AN()w@llygR(oCW4_yuji}u25_7X^`>dI?-*#l4#I+V- zv^c`-FrKY~oJzx{@G+chcy@)7Z?fLPoZZz6h=!Z*&1^A`wR?e}4FW@5nRBHq7dgB8 zV&$;WO^h3vv^0Qe$hYG)E0mNjH}Qo272mz%w*`bOVzZM;oHPOHjKN8pYdRZ72|UOs zVm`JJm*%YR+tC^N8~v}IzBNDE!8PQh)65 zgJJ5Pi3jIbW14_F9w7(cWL1tv;R2Xi2@k%Snu^`u{6-Tnznb5m?>h8K`mOoszR7#8 zl@Zjb*$w+wjt7A!y0__v-NSfE^eHin>_Ky1tGr6-e)#?dJL!uN!!-5k`&|PsMq|O( zIS?Ls&Ss9X%E>IceZxRH#O!%~y$~8_OL6y6wQI1gj|iNIbNK?j!Pd8vb&qZ%x~h;X zBh+I1b$Z`f^aVUVt#jGCdAFXIrSLkwD*N@Q%B>#kn%Lu3u3=Z-cDmQpfL7ARi$V)_ z_sMsZ$jN?oM6TGpS#1gSt5wPu7VO%hGu!yGZF}sF@$gY{ZNePEN&o8j`0U%ymfYGK z#2kBB*;`A!>edLytkQ3$ZVTKUjKXd`o?EccM;1FS>syGnq-ObDr>Q4DNOLRj+27YG zuDHLQ!nd9E^a&;Zasii}d+(v+J2BMa{JrIPvxOt(lnA?MCU3P~H2JFe4vEP^iLJl2m(muxPo(ky4Z$v@j#ZnMQ zpS`wP6$4{lXvN{taIT~E#3j=(W%;1&r@T>vxzOy%?8Q-+(lj@_`rYhbZ^UU z7Wz-2y*2M zJ*~|?nL+*M!{>aR!8-*9?>XE@#j#`*|1GFJhw5%CToFI#8v=yV@3d#dCt)G{bLEe= zQ2(o^^9}1&r2kT=CGbwCk9`y0z?rK3uEaR7kBc!xK)J|)hsv8<@3MQ`=K6Ex=NB;k ztEWvXgOUROQm8@j&RNUcx=+`{U#Fcr%Owu5a{}cOWIEd(|Es4P+=<2Tum3cYkIdrG zjt;{YPiP*AD*#=l#`tSjs5amWJ3bhhoLKe`b5$wF5S;ug7`&tZub%!tjQ#&G(f=9v z>8btC!2g|l_@9BFM)i-(#&L2c`pGjDZ;BXj^zqOQi37-AF=Mq$X(~ibs+B%1{M7f1 zx=StY{G|<=AHnqRm@H2b>R?>ugTssYc_VPc5oY^{&idwP2`|}*2I*mnH`X?Ym`r^H&BxG9*?g`OZwP2MlE}FpUrqYRr zP=OtBrR#*$3Sw1_5x`HN2QRc33&gRH{r+}fO z>_u&6c~a>$a#el9a<{2@IUA|DG2ce2XHmiPoO8n>qDZ8m0rOqA1O_{tx?<@ya9X0d zD>jd?3X>$ocWcS7Q;LjYTuf!l>srXBj3Y#^ zAUxw}3gvFXbFa!~+{N7S@XT!vX-Qp6SGIbPv#a3q%?PWZZ?eg>tF(G60O}vf1T>tM zZAV_G3b9bm5G~A}WdKn)99__3g<-o^Y|;CNux@*bBvoJ7?3-vJ zl?)$q^U{(s>CtuNY`o*Iy2P2?knth3Ok`*Oa4e)ApDKx)p!TRyE9;&nU*;u#+ z3@MPpoecPI6WHCYHD-t?hAeLO`t>tWl1 z9(`c-#(s#xOg&zUq(gXymiWCxv z2v0jDyt9};f)i_2(89zp{QaYtyiWg92~ok;qJTd`#-oXReMdtUzr`rzEzmXu+YV>p zfdp0y!SdF=R`WW~xMdeBelR83R9<~3cO@_TzNW&^fodz0xowhJ(YU=;y6pLdU4{zWf7zRkRRtY&>?);HFjIebR7HF(F*+ zTq-dpXJV5-1J|A~kZ`S;9AU41NO)-jy=$}efsVJbgEwy$sm#NhqhQ{;%n&chskA!s z7IrK0;KTF%xmLm_WWAeN_4e3J_&&?nIq<2KXQ|&0CNV{{q$cApj#rC}J}J@~)4d8LyX1!F|}H(twFNn)*99%(I5(%jO?$xjv|57@gUQ8^2ko5vMb>y?#D)=RzTG zl|9r!yvoUx;R6iE(3u~YIKjoo!A8Jb?wz_$()>4fG@eB=QL4-=Z|wI5R>m8RPGjmr z6vz^quxhg=Sz%3z_oNJvu`o^UHCOf@GX5>sxE%~_mf5P+*mkQc?VdYyS|SL- zaGM;w?-T_^a*%N*z3kwFbMWc+L(#vh^WIia8_S)+pQ+3D8+a7V5GD4q%>X~(sBYSj zSw5Ga%xB%TnlywWzKv&85g6+CqHEPV`-z&b*agUZT((8CoB~>oK6VwV!AWTXV1)~G zqu1)5`WlbjzOS*AMIEdKbIQ!A%J@!>>MZ^{{MY7za|F$QDxG*NKC1*PyN;Jd)RQ%L zh|9JE+#A=&j{`hg!O+%F8@#$_BZ+a=*<-nL?(PqAv{%ZRWFD?Ob}(V`a9~-}%e7B~ z=0;8de^St`q4I@GNDqrtl?8EI9l_Lw|H1Q_7zbZg(i;n9IkQlOnKsxw*it-ofb{V< zcUAq5333xH4uzcXS$%_tXogh(sJEE15D*v;^dBFl?9zw2$fw^oRP#`PdrxjH8SL)R zT?3|dv{4^=Gu-9kxM7lyRF?2A!P|z+WmOi+s3sqQ9MOsGcer&PUdQ!QpM|^6eWCjv zhGi(ef@Rk3tck4rORc+&s~5Et%z zBJ)=zZ{^sif=8*XxRHkPesF%@Knm|Bf@#P{aedqb5666QP!%31v6mjmq=;z~nSQ`y zNZXNIMl#cM?=%SfojcJMf)nXxd&=}^DRj!H>NCS!_AhvFzq#T?gR#+(*yooD9PJJ1 zQaXqbT>`1mEU^KL3Ih>v!I-%7gpikeVK2Z*@4;+CUJ63B$P7K2>+{si+zpYhK3mH1_vxU~n_D+OKV38WI7=_)^YFxL5xdSBeg>tu4 z%(c2io1Wlu=C*|eavFJ3YeEwi^+>QKBgIT)aq<(l90{xi&g_Hf;1?!M zz=LSQD-7{KT!X|MWXmniDtg1_sD95ecQ_;C$sRti5)qM9P_cH+%-HLqNEJ-iKE6-qlbyKt@ui?%kA-!XRaWbrftyFY zp&wMq^=1W_BE*yst=YkGY3V?`vUf34N$jwR0hVY9$gfKTIIQ4fHyO{v^k`AGg!nMN z){iFUNu5BkK57W?YrVQ1KgGiHFfdVoTW|Pn`vwSS1ylgBycaXPo6)CfF?A7TMfD7~ zOb2%jRSJ(16)kFa)Zwnu!SP<%3bsO*eWyWFs0}*>RcA03chY*>-c3I#?W_>DOl3Ik zq|EFts?0MC*0@XiJIDkCN7{RXG!0@^mL0E(*)TP;vS@EZhn%qKw>0@|??bGH4UZhfM0EPQ$6e+wl9V~*JMYkCY z9*_esixXJEBm|sdb(YA}&6(qGBce#7gq(+kviACTDlb*8FLk2C6?y%G^+`bt26uzm zqAe`vjP@_62pKR>jXv|Y!>a?hh`4Ug(P#D5n<|wrlVar`WzubN&z6CKQK%}p0Sjd` z>#Nx2w)RfPR{E&yEUUtqM*u#Se`HIyl>`q0D)e_U6NA+GQDjh!9qsSt1bFJVqd`qn z#(zBgJCEvjRY+W3#<=)Q>6B~Q*Wbm-Oa4ca`(HnN2D$XvpPY)8CQlD=d%rW}BiVeW zH_-cUoqhH-SfEI$wx=Odz<^W19ZjUpGL$!+dKcB%;&-m>~E}1HL|9l?`>d z`3X3a=O%7tiH3OS-pnL?V*?4Kyx;vF75)R|x*Y_SA#5=Ursu=_oFqJYVT1PGj)zcX z8E4%(NWsPjJ}ZmeK>L_+26nW7a=z0LV9&B8@H?oi0_c5v@q$aqd@9#oT~!TO5V99~HH3P{Y9XLGo zIGoI&&Vh*oV!#p>Mg&r-D%0+0h($G5&EE2cTX$K0*^KlJr7j}1>{nsUFNK_z)rSfk z!!qmym5+v^)k$<%e3+sV2(MJm-s*iZp_bvON_CQm;h=jl=JbYs!9+bFdH>F)-wuRs zGj7UYgD{)hvM!WT0=$0XiPtY5pT!T?R);$1Gwr--Ir_rtLK(yotU!WG6;%liP`C;;(#F4sn0A(Cyvk`9NmP0B!Q$<{Bn9Gu&giXs9TwJ%UowlxICdSC z6wGcnudCGwC@hIQnCx3sn?96UaVEkp6^VF&Y*W%rEL%el&PC%&yReaV?@I?Ed9$FZ zrxs3cVCTILlRN`!AHFy!a16V08`88#pKWlD%%}rI0;e}{2gUHr3ZX}zCXdWn96;W{ zA6?Q#3Bs-Dv=fgsf#W)KiGk4k&qT6%IeG6pk6 zgJUuZpr>^4=#}pTZjxAc{|c*!fdXZeRn_yq{5i938ku_CBifmk?! zQwA(rLGzg=dyR_YW%utUFz`x4L<-C4nF)>i_brHz6ZscLvdsp&tYr1zvCU*w}4;roNSimRn>ZrhbKB%5f2s+c7`;4z|A zT}fb)+2R)2a9=upE-*Ao$(gNv{6K$%ArO#kp|G80T-9oJQxI2220X-`5=(Z6@~%E| zMiiQc*Pe5{_bOwrY=rR|Y?Egy;Vj_u?iy^-fFmb+iD2z@!-21UR+hxRcn&u^j&+%Q zim3U2B*XUIV|+%6U0eXt3DoTkys@h?HAKx<##>oM+wOlbCpDRIiKuZ z$V)-IuDZ>LoKa;1vVJxdD7J&v_hKSNJkQ>R8z3N=q-T$MpT!9=+CWe@7)b&6UFidK z=!Ev?!{>4Qhb`kJ496>BDc+gU7Y0T8LZl%VTHjk``>Wdi`b}q*uE72joAG_jWgy2z zGyzW>>p+$*qw3ke6ql90fAlgZgWmq&^;ck$T9<;L`{Y1)m!3mq@LCAzy1gk;23N9* z`?!lvgt!D-KgK$vrVF-%Hmv|0*~;b5BceWIM|2H@?o|axq&X)TW3%gtd5OZvC_;3 z=(B)tO$&7N7}5jWRfgJtS>Ol#=xV}{kmZ%@B*DSG=K`Jx*qm%{q2FoQDq|s77inbG zUsM3R`x}eI_xM|3LtIwvd{Nv4CRIR9a2)|x@J&!vp9q~-Icp`{4b4~LABvD*DMT_4 z9~71J6Kb;uDhw}|!n|&NBD$RotS9~62>^RbYvmE{cSnPMD)`>#j$&ztxD@Oa1Ml@E0 za#m=><)k4OALQcJr3G$){0qzHn_ZF*;7r0AHoC-DXl^2B*OVEEl$OHoXfVrcJ-4~z zO|_X0WsR8z35(Ie;fo_*56|Og!-+uD{e(nC)6`FWanV2o6@LBR5wJCg+gm>(ij2eP z!p4|Rd=IijA2=q$o}AmRE8$Xl>Lft;IcY{t41k(~#T+R6d;`CPI(EZYMZMgB#O=3* zdH(DL@cjor0WupP{m>Kilt_s#lEL2>*r}`PZs@>2OIS1;gWRzS5v z)m=i>dl|b;L*2r9&PRZ3MFigO%LpR9=;Ah@R<}}0Zbk#5zAu-WxMXiC1AX)C*ngV+ z#KkfvzOgU|KX27~9xCD}m&5rs20^S z;&iQbnH;r?@?^hU!kxSjX@=s$M!@tUBMz@r-!M}bVp_-=2Yx$j-Iu~Bc zw$cy_dXT`2&qAJHFaLVgzxhMZsIhX1kzxzGTERj>sWr(8N$&sxKDanOSquE9RKBs`x!u)aKe=N~fKAsGmL z`Ul_)z^@qDNz)f1pvv+_gIG74s89h)@zCQoZ2fEUs_4a3wS$hlK^1HS0jNTR-d$fB zE%~Gg5gN{2muNX7NPEaY@KXiV6>Rb9kPfBFie~Y;RVv+`fuQE%2zxxEV)5JxDW zB(&fzI2`|+4}yA^W5m9>glp?k9GsE+p+Egx93OPfUKxahvN>6yL)P$Gtgf{)7r`tI ziBg+>t#4KIvWyyX;J_g)hEv9fcPzsqz!Q;c<0fAJT+Pi|(8r2p4baO4R4g&m9+k(^ zzTYa0XB9BE@@&T6u1$f$AE+AAHUS2ku!o}9!GT4UGaJZh2D&wL;ZyF`K*|T*Y%;(( z#dPOfm9@X>Z;#=h8(7<>U>)HoU69006X3%i$xho1s3QR2=j9fQjAwg|cbnyG$`UEM zEUH^SMRxVS3t@>4RhX{A4@UA6Rq+s2QIjO4TL4rP;aIouIb6XsAYC260$Az9MU1Uy zkf`tXmfDNu0OPr zPRKBV9OMo1Ss#2xOGNPo7|>sM`PO6EI^}zw265!O2~Tx6c#Tlu7dD4-#Mpy{XT-3I z*9=Jf055hjujV;j+9pydhe`&(K7n#0bIO|6WtpSACoCDF-nlmsS`$qT!-;)ndkKSg zVp`TG?GV!)yTfm))Zizv+miqI_p)a0QgT{Gy2nnzA|D(eq*vJ%iT6wU-X$6-)x`WhaX-N@AiUN8Aft<*;@LAeIEx!lRzKmz3yUtci!7HxHD#j~_LZ8{!$= zip0dVu3RI%EAV|+wQgMic63o%hZ%uXc)g{aJ0I$zo4wOS<9YqGBjGH_egZWLNts0x+mxE{TInq# z|D#Bn=Kbk0sH{aZCB0vwU3)%cDuW;Vz7OX9{k?A0{lRGQPls03;k8pXYca<)AkA){ z6j4GfCh=`EL^lw)i^ej0G3aHEG2bzyUCW`Wn7x$~SPPO)8u@AYtQ&yq1QcZBqz-#v z^(LAO&u|r}dT=#92x%nnp4objTLN!)V%Zg7f_8T`#m=2sX;sJK^;`DWDMN4ds1MXzu-O@*4@cW>jrRa*sZri)nmyNFu=}xb7*BFYB{n2LIF+^@a2Hg?~JabCqd(`TGnf8 zS2HVm>8=1z)OwYqVEz4w@w+TjA+zl9!~?z)H|YK{(aj(_hN(@!I(zL~YTz_`Ll3Yc zix|*roUFm))vwbQ%sQ<=}ACUeG-+BJktM;$pzPDh4G<% z3C{8bfHtj}jHgiNkFt{zrOkeky}(IDwi^-*LJ{^L?;^lef7WCFUisa*ydm{V<(Dtv zrTw+puruYy3FvNaJz=pd0|SqV`p4pys#LDU2qd<&ng*UNo=wLvGrk@O*77ryT;lFQE?LVGFac@lMA0ide?)>He4hdSU|-MS6W z*1HM)>n$$37eELD2IHr(UE;L->di5IXt88?Ehxe+`JNO+rzka`YbTvY6-jTgUs4AY zHOECVv#s}iZ#QBwvBT~F(s;!TU_Wo*#1}gRfGjJ0prldSlS3f%mVBBY^ckInO|@y@ zv9Zi-S5U{U)g4%4AH3tX;c~Mq+GS3vmJIiE!>uiUd_NQ+Rx$p@D_(JfDL_I7VjJan z+8uS6Lp8j#fxX0q<~Z}bUd{wrv6gyk%0L3N9Z{+>?IbX*P_2rd5%oc8uFkawno}<8 zRHcvSlbGvmg)1I&7H5Fn#+vL+XqyyJowj-4U9y}S41^9cSpc@BbCB$`#`!|Yk^gnk zkTj@$mN_#wls_3#DwwnMd?8N%57hvI0BGkPh#pb!!%F`KYmhG8%|G1p+xCY(WPoQ9 z^~|~NYYvHDDOz$@C8YNG+l)QJyDNoWE- zs2*uBl`E=7w^Zt^Uu^ zqsMI*7Wk}Jv-y%QAqcoD$}@lv1QkM1kP^K(2`D;6)`$8`7Td12(vYQS^)Y3WfEE$H ztWfq%P)P(`D^2d-Esnog!>of&s+QO7^>IV0SOZ(|reDe}f*|CXY~hqIoNTP9G{df# zX(VUqMLC+U@KRIR8tosj9#}7+_Anvy00XeXLd!*fVggoZWoI|>LD}-!o(~E7!`aii zBBLf~!x>rFs%8xYJqMtxsCs*EWo-{RH0jm2RBG9h$~^=QkJUmu>%oUax7H;c`ap$* zHjp}tZJ+^)15|fZN``mbkCeit>M}upO)It^pgpEP9Oeye+)MJw7Xyli3>zvqWqmK` zuibe@7e_Ltat4_hESCZb`Z0WLfwYv)Ctwtq3uB9d{_SUt{w_JK z+2Rx^)-DOK3{{}j0)u0Pxev|>Dj~YXOo)0w0eLIAQAR?05tF-0tU_bYQqV;cx($}} zqiIWOEeUHH%g0!EeoWSq8E#oj_9ZifEn2063pBb};Lm{eCp|o5G6UG-4BbP=i~uqB z3f#*wUW1@r2-^&kumJ+l!|~iLK-L1jOC269nDF9WD2r9a`8UUmhE(ksKaS<^bs^v^ zKq+^-+fI|8H$g~2;j8LNDn8j+isAOfX2l{q3)^CS%Pw2Le0+jT6M(|)*@C#wevdg7 zloHY{=%$LdS3#{_mFcA8L8d2E0eRpYw11xYv{%DM(8WJG@qM~^pQtFUUgkzEl?|{gS9p(eCdJ-W`SuM*^-tDx5@Lu?xu5vH?qg zU_NO{c?jJ;R`f5RI-M9%ia8@UO&Qs?;v=ipN}d^h$o&ji zD|Dx)zoRrTO%a$F45K#wBm4im>j8)NuaD^r>g!+Y#~HTv?~m!X0tzsUf2$wAu{ZzC zF`dDD{cHXBZO{ymSO5B$eoNu0G5)oFoH5PwuaD`B!Lfg@AOACBVEF&~nEq$Rzz6^T zG-KnpHL-sCUb!n08IF%~#RL+@cJ|-x=rR774?AgY`NjDc6;bo*`!Nuo2VH*KN>JoC zC(t%>zKZwq=ObmUF0?&@(=k9_J1{l)cdO0QeEn{|LE6Oe=6IFS%q7WU*NXUycS@lK z-?5!0R}xymJHa%ZFCCa%{L63m4+e4{UHDoIMp7lu8z@X`R(6l|)w)h#EBCppR*cP& zB;B%oF4=TC!go3i`!`q7uKW6BcNGLZ=UScF2VoI1nALkRlS(7KACs1+ql$k;CkdmI z`Pq*+jh0#1vXh9$5I(6nSwo}HY`!D;mmO*cbZ{d~RC^bXWyjKG=Te`ktpwtbD+<<1 zG!3-f@gk#p6o^rbLU^~i9}S;dWwk@;vSXRuhU<*~XPSLasV+5Q)TBvn6(>?|BslW`;l5{33ZJ6(W9#uw-qxtgh#hhc1uz`IT9@)92!TP z_ouGa?FB+BSp!Kg-l?RjVhltyg*>%GB%B~Xgen*SJ-GudFFOl_D?l5LVa-&nbOzBrvCtvLrG?k}P_y<6Z4 z)Hrkh)vevDFn3rq0^9$_&~cKgfTq}Wh)4anHccS5K!OpvzjBb23YKj35;n_wFgo2L zay|SVlFd>E@>Y6{@!9&T#gb%a&N_PPj?z!7?8D1jk9W(UUKw{*THmFs1lJ#bzh7}3 z_QGJ9c)YROauMv4o?=B;_3-T%huaKlV*KnsCMHitgntQy7YeDDj^j^;G4o;{<)qQo zLws&W7N+cS63>1a}hcPn3&O^PCa3!N($^+~7; zg7RW~Zh?E2igC~-6IfGnY8^0d`ksVKZ zAH0vCL}WpFt(Z;A>;4f-#g9o@~jiK!z|Je;wy%BC+4!VtczK%IQ?d zaI7AUzCh8u7Cwtx=*HGE&@$U z3kj^(f_2`|5f!QU+JiGNI6}5?aZP8y!4ulc%~>UVI*EL`lD~p)za8_9MxO>^|8pp} z@f-UFkF{v$cwqY~K2&`ceg5)l2i8<2Iyi|Mk?EciU20aWJUk?NdLD8O#Cj+f0a->9 zD7NMLk~%0ddf$?}2vB8q0b?czBQF)m8lGbnRc$(zg%Fx+K%Gd3wr`T3$l<<84q?(qVVpV^*ug}&w44l zc@v)PrCsB~l3Vg4|*OEkYinSf)x@K1-BZA3tI@@m@OI6F|4+{R0a znU0|D@TM#lpi3T|Sj!=-^)SfsX2c4jPtu6QzbbV5Wq9p9_~zH+2Yz2bYxK5UCb0N; z>(EtK$;ka9UAmT-EtgF1nJ@7_W{bH`CWC*%{vXxOb{1pNnTd-!hO{u?aDzmPZDOkt z!OGcUtNXm@pI2TT$wJWTB2V+>Id3-$pPL$Hu0pp?Sk{bawbKB9R9_9D| zl!H6VU;-P^g$>|`##Q%Ev}>EBK`Wt6Nn;;IB=y2;^WHeSE$spqk$4<3#!dN$UY*XT z|K+ED6bp*3F}&Tkcrwm+57EI-kEeWZ=c;KM<3tI zQRmKgeL0ywARbuDA6$k6H_Y(-8020t_z&YAvgI8;5L+Vy_c)X(Q>CTRH9%AZBYO&; zk&&jb{@Dv)q7gAzL+eSEcvz59!59dRW6zfTZa;fs1!7tkaO4i9^L_ju@nN&N)+WMh zk&-$zftbUI$?xg7RyFn*e|+!BsKVcMw4W(Y*7m?3c&W!Mz(RLk&>tLupi@wIE=9Hn zxOU*wXmzRvXTR(w1*!B<1bYj8-k!&}f@ z^A`j+xyNkM6XjoqBW}Ek;-5`P99(?(5>ElIxRN*d_5396{B^()=I?@EwXP~en|nJhs@V%PpoPmHV$5pzz(6Wr|Skk1Hw|6 z@DCF@xqIN3-1E2YhF^jYxP3ua<~z8P;Lj@%@+$r#Q~#}R_!qEy!ajRWsrdeN2f@ij z6Mt92KVKdH9|8gWxGF7;ufPQqe-83TgRX^N^48y2o?jAe(4!q4ddP_L=bBG19r%S_ z_&*kHMI6WVbHCy>>t|@lUl$SmidR7=NyB=$*hT6;*L-@z#J^uOD~%(#dE(EDE>2nv zenF?F#ROlh%Tt<1lKHh3H^;d?hkH%JT9DQXKO{T?y3hX-LI73~^++KVr{2jd`K?=9 zDl#e9f(ga$6<;EBTh?Ai5Auaq^i8`PMz7rWsE2lcIstJVk-lb!&@AOsCcYf?fn`o*QB4dUEgzFR5FyI?{Wxer=qB2IxZe^NC zD1=f9=|jF5o-$d>^iUKU<=sj?$~U1%s8CZP->IxvWAiZ^?=@xVc{<*szu&`g?62M1 zeVzAto!5E(e&=;w=S_%B*s@W6y7W=*u7nR!54WGm35dFNlbiCSth;v%`x>Af6CL`# z?e;As;$wg&R(0t)Gm|l+lW`AJ0we^cQJM0SnO(9s&Byvu3){+!0ygv-V>Y_CJ8lLb zwJ@LzfX?C@CyK8dx(3CWVOykP)ibMmRSHnec-A|>5GoR}$C)aly!>R^Or+xeV9>6> zS$2h02}b^`)&v|zKK*<;%QE6ibnnw6?Ytne9VfE44gzaffqoZGyb@w%GfjOkXn&Fx zYK<(hAOo=d$t}rAFC=3i^DB&X0j2hH*~G2Caz-M|1_kXs(z-IbfsrIr#)C3%_t#1o zr**+OlPnxG=#c7@ud!4bVo#cM&Nx6c`la>1GhAF54H~zWlFJMV83QT%;{D+9?``Wr z!5N>u3JdA?>A=5;+dp_Ycz4<}8L)?%cxNdwxndOfr4ap3mOC8$qAs7f+h^22tp8-# z7TMRxw!=gn6XL6Z*$7k^N!Exn&1K;oaoebW(lWNJPf3c$CIw4ifXgjMe&brLk{ zvmA$#HC_#6_+xw@tbu$kl&2n0k7-aHz|{mC)VbW@w}()GJ&iV;D58|9L2?oiNeS|Q z)9RVId6fEPSZZP(^vZSixlM?DZxqx~2SiKe& z??%|>N(h0M$5S&GabzC_>t-_4&0HG|Rv$BCDQAu>u4*F0eXQ&GSjflU%-3gvKONs} z%18V!dQ_{_dOfV?u=k9sZwLJizB^2Umjgg|Zr{)yzqjtZ><0m!etBlMp}h^~azZ_o z+Zq*Uq63bJf$H_71dC%-8!gclz~(@8d`vIukFf_Vcc+#!T7TPdpxkQFLXUEdsaO3p z?_ym_2OL!DzfXPA8dXv`_@>hd#t(I8Mg=A|l!H3%vn6UZutTot*{|W>36t z)$&OKd@sb?>l86l;bLT8``aO$vD#OzDLAe(*N3#}etv#i{M0rP{Fu25#!HUS*;I8S zw!MJ=>OTERh94-yEyqyqFaQw-d=ehBaSL^m<@lw2y{b^CJy~1woSs(xLiM(_ab~L2 z7Vs*%dby_!s9QVSj)4+j&D2~~+YODSJ7mKcEWPb3)@pH@j~oZpRc8!H@{_@h`6)EqYqTyPgNcSaPmF4vNKi+D-64;e!?~c;7(C z`1Zb8YLxFK=htnvRTXTv9yyX#X}sk?$YS8TzH=@w_%p84ch2RmG>3C#PjxRAM2WOg zuvsw&v^b{$?~czBb%QZTs7_9Ve|AI5*x7nAt#M#Px`~^Ef-x+em}(~bw4;5Ztt*@x z+$ZuJkhwEzslE~w*f1)P0fdbBm^{kC+Int4#hWh0g!6Dnx>^wYI|N$^!c7B0Ru-l_ zyIUN<em0!{JOpc`SoC2~%C+%_hix;++`?`U?{cn}P$#nsJGD`K@LSK6ANTwNVTYQ^p zK4f&upn-2WEF@gng8?SUX0}8vNOy&Y*8rVZ z3W{c=FY5$0^y`LOjHattW>Cv*Xwa>>)$}Y=Tu%GRFtz81LP1v~J$FPbs#em|kC$pm{hIb5<>@MG2TALm-ax%;%5@ATyaPus+*~A~E9-{(+ z=r~nr0Xb;Jfbg+XwjWnhY=)b9|1l)*eI(Z7;7(-o5P?hl?S%saFd3hvwSgwVxCABK zHNfsC6iF+C*^@E{b`HkbXlGfTyouzK(hDoimwm84-=~#3hDen<$4JEFB$~Zc+5i%b zBBIL$jdQ-!&P`d-HLq6Gn~2~Q;7_PrK(Eg7@ahWnj+CN;<$t{G<|r&9S`liT$^A2` z25|+fwfiUBQ)(w;AF*zMW-n2o+!Unz;H0yG1~2?|F^=jCeP=)ep%&wngsFN^7%3=p z{6uE&A=Q=<+=7&#qf`LE*eBd?fC`6%*U`P6IG*$QKDF$zBFvqVK`r(6tuG$4#|36ZCE?n{UL?ziYAH?=&OjINol}4XVqhcWdTatvT9Rw4u^mPs?^U zhqZ_UJiFw*$NoOVkWcdC2ox>UT`v^#8T8~Fqq!!S$nLOuv34A8+N4K8G7ePNH{|6k zFB5mvZrr;{OB83?RA2YBb20Ydi(uWI2HGRC0i(}6rbm4|%J$Sb!w~53${@K*$OvuJ zZ5ab)1XR{18^H95Tp%e8E{QA<6_Z>diGitmZ`uZvTz(0OTm-)PcIl=l+3d?rk3U7# z#gK#-A3P8xlVXBD2rgHiTmbb}KRb*Otr8_iAx*yC3S3FEL6apPu8Ky#QJ>{^FiI9uAZ; zFmlhZbroq=5EnF>Y~XuuB^jL)j#P%eX%E~}W7!Dzl)7m0US0GX0!r%)QPdmRE2a}M0Aa>5i%)(8pxjZ$hQ6hspkz%QwN*u}?i zcK-1TesPAEn4L`(3bOByUsQX4Rj0pD?F)Z#hF3-p83|1-Xa6s%y&*4gX zz2EQgB_SNiS{`i-L+EHD<}g1*lg5`v>ZwKn!|Ylqqie>d!Esk literal 0 HcmV?d00001 From 469d7ea021e21e63e8b9680bf32e69b86d3afd20 Mon Sep 17 00:00:00 2001 From: Alexis Fourmaux Date: Sat, 15 Nov 2025 19:59:56 +0100 Subject: [PATCH 3/5] Ajoute sujet d'interro python et Adressage IP pour UFA --- .../evaluation/evaluation_sujet_3.md | 97 +++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 src/cours/CIEL1/01-bases-python/evaluation/evaluation_sujet_3.md diff --git a/src/cours/CIEL1/01-bases-python/evaluation/evaluation_sujet_3.md b/src/cours/CIEL1/01-bases-python/evaluation/evaluation_sujet_3.md new file mode 100644 index 0000000..21a20c5 --- /dev/null +++ b/src/cours/CIEL1/01-bases-python/evaluation/evaluation_sujet_3.md @@ -0,0 +1,97 @@ +--- +puppeteer: + format: A4 + margin: + top: "0.1cm" + bottom: "0.1cm" + left: "0.5cm" + right: "0.5cm" +--- + +# Evaluation - UFA B1 + +## Partie 1 - Python (10 points) + +#### Questions (6 pts) + +1. (1 pts) Quel est le type des valeurs suivantes ? (types possibles : int, float, bool, str) + - [ ] 2 + - [ ] 2.4 + - [ ] "Bonjour !" + - [ ] True + - [ ] "17" + +2. (1pt) Donner les deux types de boucles possibles en Python. + +3. (1pt) Quel type de boucle préfère-t-on si on a un nombre d'itérations connu d'avance ? + +4. (2pts) Lire le code ci-dessous et répondre aux questions : + 1. Qu'est-ce que `calculer_age` ? + 2. Où se trouvent les paramètres ? la valeur de retour ? + 3. Que vaut `mon_age` ? + ```python + def calculer_age(annee_de_naissance): + annee_en_cours = 2025 + age = annee_en_cours - annee_de_naissance + return age + + mon_age = calculer_age(2000) + ``` + +5. (1pt) Quel opérateur utiliser pour dire "différent de" ? + +#### Exercices (4pts) + +1. (2pts) Écrire un programme qui demande le prénom de l'utilisateur et le salue : + - Par exemple, si l'utilisateur s'appelle Jean, le programme devra afficher `Bonjour, Jean !` + ``` + + + + + + + + + ``` + +1. (2pts) Écrire une **fonction** `moyenne` qui retourne la moyenne des valeurs d’une liste fournie en paramètre. + - Par **exemple**, `moyenne([10, 20, 30])` doit retourner `20`. + - La fonction ne doit rien afficher, seulement **retourner** le résultat. +``` + + + + + + + + + + + + + + + + + +``` + +## Partie 2 - Adressage IP (10 points) + +Une entreprise souhaite relier ses 80 machines dans un réseau informatique. L'administrateur choisit le réseau 192.168.1.0/24 +1. (1pt) Donnez le masque de ce réseau +2. (1pt) Donnez la première et la dernière adresse du réseau +3. (1pt) Combien de machines peuvent être connectées en même temps sur ce réseau ? +4. (1pt) Quelle est l'adresse de broadcast du réseau ? +5. (2pt) Est-ce que ce réseau est un bon choix pour l'entreprise ? Justifiez +6. (1pt) Dans quel cas doit-on utiliser l'adresse de broadcast ? +7. (1pt) Si on souhaite découper le réseau en 8 sous-réseaux, quel sera le masque qui permettra ce découpage ? +8. (2pt) Dites si les adresses suivantes sont publiques ou privées et si elles peuvent servir à adresser une machine : + | Adresse | Publique/Privée | Valide pour machine ? | + | ------------ | --------------- | --------------------- | + | 223.45.52.12 | | | + | 172.19.2.21 | | | + | 172.44.17.0 | | | + | 127.0.0.1 | | | \ No newline at end of file From fb199616689a68026154aebe2c6f72f39a1ecee8 Mon Sep 17 00:00:00 2001 From: Alexis Fourmaux Date: Sat, 15 Nov 2025 20:00:09 +0100 Subject: [PATCH 4/5] Ajoute interro de cours sur le web --- src/cours/CIEL1/04-web-statique/interro.md | 63 ++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 src/cours/CIEL1/04-web-statique/interro.md diff --git a/src/cours/CIEL1/04-web-statique/interro.md b/src/cours/CIEL1/04-web-statique/interro.md new file mode 100644 index 0000000..ec49188 --- /dev/null +++ b/src/cours/CIEL1/04-web-statique/interro.md @@ -0,0 +1,63 @@ +--- +puppeteer: + format: A4 + margin: + top: "0.1cm" + bottom: "0.1cm" + left: "0.5cm" + right: "0.5cm" +--- + +# Web - Interrogation de cours + +##### 1 - Expliquez ce que permet de faire le HTML, et quel est son rôle dans la création d'une page web + +``` + + + + +``` + +##### 2 - Compléter le code suivant pour avoir la structure de base d'un fichier HTML + +```html + + +<.......... lang="en"> + +<..........> + + + Document + + + +<.............> + + + + +``` + +##### 3 - Expliquez la différence entre une balise HTML paire et une balise orpheline. Donnez un exemple de chaque type. + +``` + + + + + +``` + +##### 4 - Expliquez ce que permet de faire le CSS + +``` + + + + + +``` + +##### 5 - Présentez la structure de base d'une règle CSS en nommant les 3 parties principales \ No newline at end of file From aeaa11bd5cefbbccea13a91bc2e12bcd61d83316 Mon Sep 17 00:00:00 2001 From: Alexis Fourmaux Date: Sat, 15 Nov 2025 20:00:22 +0100 Subject: [PATCH 5/5] Ajoute AP sur le travail collaboratif --- src/slides/B1/ap/02-travail-collaboratif.md | 100 ++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 src/slides/B1/ap/02-travail-collaboratif.md diff --git a/src/slides/B1/ap/02-travail-collaboratif.md b/src/slides/B1/ap/02-travail-collaboratif.md new file mode 100644 index 0000000..8471c3a --- /dev/null +++ b/src/slides/B1/ap/02-travail-collaboratif.md @@ -0,0 +1,100 @@ +--- +marp: true +theme: catppuccin +paginate: true +size: 4:3 +transition: coverflow +footer: '' +math: katex +lang: "fr" +--- + + + +# Travail collaboratif + +--- + +## Outils de communication + +Jitsi : plusieurs instances possibles +- [Framatalk](https://framatalk.org/abc/fr/) +- [Jitsi](https://meet.jit.si/?rCounter=1) +- [Autre instance](https://jitsi.ungol.fr/) + +Chat via Matrix +- [Element](https://element.io/fr/download) +- [FluffyChat](https://fluffychat.im/web/#/home) + +--- + +Outils non libres (pas forcément recommandés) : +- Discord (Attention à la vie privée) +- Teams (Pas très pratique + vie privée) +- Google Meet (Vie privée) + +--- + +## Outils de travail en groupe + +--- + +### Documents + +- [Sur l'ENT](https://enthdf.fr/lool#/) +- [CryptPad](https://cryptpad.fr/) + - Chiffré + - Markdown, présentations, docs, tableaux, diagrammes.. + - Stockage + - Pas forcément besoin de compte +- [Framapad](https://framapad.org/abc/fr/) + +--- + +### Schémas + +- Sur l'ENT : + - [Carte mentale](https://enthdf.fr/mindmap) +- [Draw.io](https://app.diagrams.net/) + - Enregistrement sur divers cloud +- [Excalidraw](https://excalidraw.com/) ou [ici](https://excalidraw.framalab.org/) + - Enregistrement dans votre navigateur uniquement +- Cryptpad encore + +--- + +### Code + +- Plateformes basées sur Git + - [Gitlab](https://about.gitlab.com/), [Framagit](https://framagit.org/public/projects) + - [Codeberg](https://codeberg.org/) + - GitHub (mais chez Microsoft) +- Code en temps réel + - [LiveShare](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare) + - Nécessite un compte Microsoft ou GitHub + - Extension VSCode + - Cryptpad + +--- + +## Autres outils pratiques + +- [Partage de gros fichiers](https://enthdf.fr/sharebigfiles) +- [Manipulation de PDF](https://stirling-pdf.framalab.org/) ou [ici (plus simple)](https://signature-pdf.framalab.org/) +- [Trouver un créneau commun](https://framadate.org/abc/fr/) +- [Autres services](https://degooglisons-internet.org/fr/) +- [Trouver d'autres logiciels respectueux de vos données et libres](https://framalibre.org/) + +--- + +## Demo ? + +- Cryptpad +- Liveshare +- Excalidraw +- Draw.io