diff --git a/content/schedule/_index.fr.md b/content/schedule/_index.fr.md
index 93b286a..f260569 100644
--- a/content/schedule/_index.fr.md
+++ b/content/schedule/_index.fr.md
@@ -16,5 +16,9 @@ draft: true
ICal
+
+ ICal
+
+
{{% /hero %}}
diff --git a/content/sessions/10_est_une_puissance_de_2.md b/content/sessions/10_est_une_puissance_de_2.md
index 927db3c..c1b8f8f 100644
--- a/content/sessions/10_est_une_puissance_de_2.md
+++ b/content/sessions/10_est_une_puissance_de_2.md
@@ -18,4 +18,4 @@ Le code barre est une invention qui a radicalement modifié nos sociétés. Sans
Mais comment coder les chiffres de façon fiable avec des petites barres noires et blanches ? Quand les contraintes matérielles empêchent d'utiliser le binaire, l'ingéniosité et un peu de chance ont permis de créer ce produit, maintenant présent partout.
-Nous découvrirons les détails de ce codage, et comment il pourrait même contenir davantage d'informations.
\ No newline at end of file
+Nous découvrirons les détails de ce codage, et comment il pourrait même contenir davantage d'informations.
diff --git a/content/sessions/3_techniques_faciles_de_manipulation.md b/content/sessions/3_techniques_faciles_de_manipulation.md
index a498df0..0cebd31 100644
--- a/content/sessions/3_techniques_faciles_de_manipulation.md
+++ b/content/sessions/3_techniques_faciles_de_manipulation.md
@@ -16,4 +16,4 @@ Qui ne s’est jamais fait manipulé ? Évidemment, on est tous allé à une soi
L’idée de cette présentation est de vous ouvrir les yeux sur les relations et les influences entre les gens. Je vous exposerai les mécanismes de prise de décision au travers de 3 techniques simples de manipulation.
-A la sortie de ce talk, vous devriez être moins influençable et maître de vos décisions (voir même manipuler les autres).
\ No newline at end of file
+A la sortie de ce talk, vous devriez être moins influençable et maître de vos décisions (voir même manipuler les autres).
diff --git a/content/sessions/_47_ans___ils_nont_toujours_pas_remarque__.md b/content/sessions/_47_ans___ils_nont_toujours_pas_remarque__.md
index 58ba441..a78e81c 100644
--- a/content/sessions/_47_ans___ils_nont_toujours_pas_remarque__.md
+++ b/content/sessions/_47_ans___ils_nont_toujours_pas_remarque__.md
@@ -23,4 +23,4 @@ Pourtant, codage et sénioritude semblent loin d'être incompatibles.
- Les cheveux gris sont-ils un Handicap pour la Sécurité de l’Info ?
- Le Cloud doit-il être « Arthrose-free » ?
-Et surtout, comment se fait-il qu’à 47 ans je vienne d’intégrer l’équipe Devops & Tools de Continental Digital Services et que personne ne m’ait encore rien dit ?
\ No newline at end of file
+Et surtout, comment se fait-il qu’à 47 ans je vienne d’intégrer l’équipe Devops & Tools de Continental Digital Services et que personne ne m’ait encore rien dit ?
diff --git a/content/sessions/__lunch.md b/content/sessions/__lunch.md
index 1691d1c..fa4fffd 100644
--- a/content/sessions/__lunch.md
+++ b/content/sessions/__lunch.md
@@ -7,4 +7,4 @@ tags:
speakers: []
draft: false
---
-Bon appétit
\ No newline at end of file
+Bon appétit
diff --git a/content/sessions/__open.md b/content/sessions/__open.md
index dac975f..7ae9f7d 100644
--- a/content/sessions/__open.md
+++ b/content/sessions/__open.md
@@ -7,4 +7,4 @@ tags:
speakers: []
draft: false
---
-Acceuil, Thé, Café et Chocolatines
\ No newline at end of file
+Acceuil, Thé, Café et Chocolatines
diff --git a/content/sessions/__party.md b/content/sessions/__party.md
index 53a91aa..6dd0208 100644
--- a/content/sessions/__party.md
+++ b/content/sessions/__party.md
@@ -7,4 +7,4 @@ tags:
speakers: []
draft: false
---
-🎉 Party time
\ No newline at end of file
+🎉 Party time
diff --git a/content/sessions/__pause.md b/content/sessions/__pause.md
index 47f1363..2bfa3c2 100644
--- a/content/sessions/__pause.md
+++ b/content/sessions/__pause.md
@@ -7,4 +7,4 @@ tags:
speakers: []
draft: false
---
-Pause
\ No newline at end of file
+Pause
diff --git a/content/sessions/_numerique_et_environnement__ou__on_aurait_pu_sauver_les_abeilles__on_a_prefere_sortir_un_nouvel_iphone_.md b/content/sessions/_numerique_et_environnement__ou__on_aurait_pu_sauver_les_abeilles__on_a_prefere_sortir_un_nouvel_iphone_.md
index 059bbfb..f10fe91 100644
--- a/content/sessions/_numerique_et_environnement__ou__on_aurait_pu_sauver_les_abeilles__on_a_prefere_sortir_un_nouvel_iphone_.md
+++ b/content/sessions/_numerique_et_environnement__ou__on_aurait_pu_sauver_les_abeilles__on_a_prefere_sortir_un_nouvel_iphone_.md
@@ -25,4 +25,4 @@ Tous les mails de votre vie (que vous ne lirez plus jamais) disponibles sur Gmai
On arrive dans "l'âge des limites", pour le numérique comme pour le reste. Quels sont les leviers pour basculer vers un numérique durable ?
-Et si malgré tout on décidait de s'en foutre ? 2 degrés en plus, c'est juste un pull en moins non ? Non. Par contre c'est 30% en moins sur les rendements agricoles pour ... 30 % de population en plus en 2050. En 1970, Dennis Meadows modélisait sur les ordinateurs du MIT un crash du système planétaire pour les décennies 2020-2030. Pour l'instant, c'est cette trajectoire que notre monde suit.
\ No newline at end of file
+Et si malgré tout on décidait de s'en foutre ? 2 degrés en plus, c'est juste un pull en moins non ? Non. Par contre c'est 30% en moins sur les rendements agricoles pour ... 30 % de population en plus en 2050. En 1970, Dennis Meadows modélisait sur les ordinateurs du MIT un crash du système planétaire pour les décennies 2020-2030. Pour l'instant, c'est cette trajectoire que notre monde suit.
diff --git a/content/sessions/_votre_api_web_passe_t_elle_le_controle_technique__.md b/content/sessions/_votre_api_web_passe_t_elle_le_controle_technique__.md
index 1069383..872d699 100644
--- a/content/sessions/_votre_api_web_passe_t_elle_le_controle_technique__.md
+++ b/content/sessions/_votre_api_web_passe_t_elle_le_controle_technique__.md
@@ -14,4 +14,4 @@ draft: false
---
Nous savons tous développer une API mais avons-nous tous bien intégré les problématiques d'environnements et de cycles logiciels multiples ? L'opérabilité, la gouvernance, le versioning, la traçabilité, la sécurité — et bien plus encore — de ces API web une fois en production ?
-Durant ce talk, c'est plusieurs dizaines de points d'attentions rarement évoqué que je vous propose d'aborder, à la lumière de retours d'expériences provenant de chez Uber, Stripe, Facebook, ...
\ No newline at end of file
+Durant ce talk, c'est plusieurs dizaines de points d'attentions rarement évoqué que je vous propose d'aborder, à la lumière de retours d'expériences provenant de chez Uber, Stripe, Facebook, ...
diff --git a/content/sessions/a_kotlin_multiplatform_evolution.md b/content/sessions/a_kotlin_multiplatform_evolution.md
index db8ec29..fb37168 100644
--- a/content/sessions/a_kotlin_multiplatform_evolution.md
+++ b/content/sessions/a_kotlin_multiplatform_evolution.md
@@ -10,4 +10,4 @@ speakers:
draft: false
---
Have you heard of the code-sharing feature in Kotlin, accompanied with "Write once, run everywhere" slogan? Among its users not only libraries and frameworks authors; there are some projects which have already adopted multiplatform for production. Their applications, written in Kotlin for *both* iOS and Android, are published in stores.
-With this talk, you'll get a brief overview of the evolution of multiplatform technology in Kotlin, concerning the tasks it's evolved to solve. How it was and how it is expected to be; what has changed and which tasks can be already solved with it. What are the facilities right now and which real projects already use multiplatform?
\ No newline at end of file
+With this talk, you'll get a brief overview of the evolution of multiplatform technology in Kotlin, concerning the tasks it's evolved to solve. How it was and how it is expected to be; what has changed and which tasks can be already solved with it. What are the facilities right now and which real projects already use multiplatform?
diff --git a/content/sessions/a_la_decouverte_de_la_realite_augmentee_avec_arcore.md b/content/sessions/a_la_decouverte_de_la_realite_augmentee_avec_arcore.md
index 48fd45d..4e86aec 100644
--- a/content/sessions/a_la_decouverte_de_la_realite_augmentee_avec_arcore.md
+++ b/content/sessions/a_la_decouverte_de_la_realite_augmentee_avec_arcore.md
@@ -18,4 +18,4 @@ Avec les annonces de l'arrivée de la réalité augmentée (ou RA) dans Google
Au cours de cette session, nous vous proposons de découvrir ARCore, via l’utilisation dans un navigateur, des applications natives ou des moteurs 3D comme Unity ainsi que les CloudAnchors qui permettent la persistance et le partage de positions d’objets dans les scènes de réalité augmentée, y compris avec des utilisateurs d’iOS.
-Après une initiations aux concepts liés à la RA (meshes, 6 DoF,...), nous présenterons les différentes fonctionnalités d’ARCore. Nous discuterons aussi des différentes approches d’utilisation, de leurs limitations et avantages au travers d'une application de cartographie 3D en réalité augmentée.
\ No newline at end of file
+Après une initiations aux concepts liés à la RA (meshes, 6 DoF,...), nous présenterons les différentes fonctionnalités d’ARCore. Nous discuterons aussi des différentes approches d’utilisation, de leurs limitations et avantages au travers d'une application de cartographie 3D en réalité augmentée.
diff --git a/content/sessions/allo_paris__ici_san_francisco__et_si_on_codait_ensemble_avec_vs_code_.md b/content/sessions/allo_paris__ici_san_francisco__et_si_on_codait_ensemble_avec_vs_code_.md
index b1942d5..6fa2795 100644
--- a/content/sessions/allo_paris__ici_san_francisco__et_si_on_codait_ensemble_avec_vs_code_.md
+++ b/content/sessions/allo_paris__ici_san_francisco__et_si_on_codait_ensemble_avec_vs_code_.md
@@ -16,4 +16,4 @@ draft: false
Vous aimez VS Code car il est simple, intuitif et qu'il fait ce que vous lui demandez.
Mais saviez-vous que vous pouviez coder à plusieurs dans VS Code? et même permettre à une personne tierce de jouer avec votre débugger depuis l'autre bout du monde? Saviez-vous que vous pouviez avoir un client slack dans VS Code, et même un chat audio?
Et avez-vous exploré toutes les possibilités que VS Code offre quand vous utilisez github?
-Nous verrons dans ce talk tout ce qui fait de VS Code l'éditeur de code parfait pour faire du code collaboratif.
\ No newline at end of file
+Nous verrons dans ce talk tout ce qui fait de VS Code l'éditeur de code parfait pour faire du code collaboratif.
diff --git a/content/sessions/applications_de_brainfuck__langage_minimaliste_mais_turing_complet.md b/content/sessions/applications_de_brainfuck__langage_minimaliste_mais_turing_complet.md
index 35eda98..289a14a 100644
--- a/content/sessions/applications_de_brainfuck__langage_minimaliste_mais_turing_complet.md
+++ b/content/sessions/applications_de_brainfuck__langage_minimaliste_mais_turing_complet.md
@@ -15,4 +15,4 @@ draft: false
---
Brainfuck est probablement le plus connu des langages de programmation ésotériques. Ses 8 instructions en font un langage Turing-complet avec lequel il est théoriquement possible d’écrire n’importe quel programme.
-Et en pratique ? Après une explication du langage (avec 8 instructions c’est rapide !) on verra comment j’ai utilisé Brainfuck pour les qualifications au concours d’informatique Prologin, sur un problème de parcours de graphes !
\ No newline at end of file
+Et en pratique ? Après une explication du langage (avec 8 instructions c’est rapide !) on verra comment j’ai utilisé Brainfuck pour les qualifications au concours d’informatique Prologin, sur un problème de parcours de graphes !
diff --git a/content/sessions/authentication_authorization_starters_battle.md b/content/sessions/authentication_authorization_starters_battle.md
index d20a6c7..69e30f7 100644
--- a/content/sessions/authentication_authorization_starters_battle.md
+++ b/content/sessions/authentication_authorization_starters_battle.md
@@ -15,4 +15,4 @@ draft: false
---
When you start a brand new app or service, you need to think about how you will manage authentication and permissions. But if you are like everyone else, you genuinely do not want to actually think about this. If someone else could do that for you, life would be great. And this has actually happened, you have the choice between several boilerplate projects or authentication/authorization libraries. In fact, you have a lot of options. Which one to choose? Let's have a closer look to them!
-At the end of this talk, you will have a good overview of the common existing solutions and their benefits.
\ No newline at end of file
+At the end of this talk, you will have a good overview of the common existing solutions and their benefits.
diff --git a/content/sessions/brace_yourself__vanilla_is_coming__back__.md b/content/sessions/brace_yourself__vanilla_is_coming__back__.md
index 32ffe9c..df74ebe 100644
--- a/content/sessions/brace_yourself__vanilla_is_coming__back__.md
+++ b/content/sessions/brace_yourself__vanilla_is_coming__back__.md
@@ -17,4 +17,4 @@ Dans un monde de saveurs complexes et sofistiquées, la guerre du toping fait ra
Durant ce temps, loin de ces vicissitudes, la petite saveur basique vanille fait son bonhomme de chemin. S’agirait-il du héro de la légende, succeptible de renverser le destin de ce monde sans heurts ?
-Sache, voyageur, qu’elle est déjà passée par nos contrées. Laisse moi te raconter comment elle nous a permis de renverser notre vieux roi, et tu saura enfin ce qui se prépare pour ton royaume.
\ No newline at end of file
+Sache, voyageur, qu’elle est déjà passée par nos contrées. Laisse moi te raconter comment elle nous a permis de renverser notre vieux roi, et tu saura enfin ce qui se prépare pour ton royaume.
diff --git a/content/sessions/comprendre_le_role_du_noyau_d_un_systeme_d_exploitation_en_creant_un_from_scratch.md b/content/sessions/comprendre_le_role_du_noyau_d_un_systeme_d_exploitation_en_creant_un_from_scratch.md
index c205966..d7c51af 100644
--- a/content/sessions/comprendre_le_role_du_noyau_d_un_systeme_d_exploitation_en_creant_un_from_scratch.md
+++ b/content/sessions/comprendre_le_role_du_noyau_d_un_systeme_d_exploitation_en_creant_un_from_scratch.md
@@ -23,4 +23,4 @@ Dans ce talk je présenterai:
- La réalisation d'un secteur de boot avec une micro console
- Comment gérer les interruptions hardware (clavier) et software
- La gestion des appels systèmes
-- Un système multi-process simple qui va permettre de découvrir le surcoût des changements de contexte liés à la programmation concurrentielle
\ No newline at end of file
+- Un système multi-process simple qui va permettre de découvrir le surcoût des changements de contexte liés à la programmation concurrentielle
diff --git a/content/sessions/de_java_a_un_executable_natif___graalvm_et_quarkus_changent_la_donne.md b/content/sessions/de_java_a_un_executable_natif___graalvm_et_quarkus_changent_la_donne.md
index b23c0ff..1a69d9f 100644
--- a/content/sessions/de_java_a_un_executable_natif___graalvm_et_quarkus_changent_la_donne.md
+++ b/content/sessions/de_java_a_un_executable_natif___graalvm_et_quarkus_changent_la_donne.md
@@ -19,4 +19,4 @@ Plus maintenant.
Entre en scène Quarkus, une stack Java orientée microservices qui supporte vos composants favoris (Hibernate, Vert.x, Camel, RESTEasy ...) sur GraalVM et HotSpot avec une faible empreinte mémoire et un démarrage rapide. Tout ce qu'il faut pour tirer pleinement parti des containers.
-La gestion de la donnée est souvent l'aspect le plus complexe : découvrons comment Quarkus gère la persistance avec Hibernate ORM. Venez explorer le live reload, notre vision de la persistance avec Hibernate Panache, l'indexation full text avec Hibernate Search, l'environnement de test, la compilation native GraalVM et bien plus. Quarkus se vit plus qu'il ne se verbalise, attendez-vous à une démo détaillée.
\ No newline at end of file
+La gestion de la donnée est souvent l'aspect le plus complexe : découvrons comment Quarkus gère la persistance avec Hibernate ORM. Venez explorer le live reload, notre vision de la persistance avec Hibernate Panache, l'indexation full text avec Hibernate Search, l'environnement de test, la compilation native GraalVM et bien plus. Quarkus se vit plus qu'il ne se verbalise, attendez-vous à une démo détaillée.
diff --git a/content/sessions/developpeurs_en_reconversion__developpeurs_quand_meme__.md b/content/sessions/developpeurs_en_reconversion__developpeurs_quand_meme__.md
index fbc357e..c2b8379 100644
--- a/content/sessions/developpeurs_en_reconversion__developpeurs_quand_meme__.md
+++ b/content/sessions/developpeurs_en_reconversion__developpeurs_quand_meme__.md
@@ -15,4 +15,4 @@ draft: false
---
Ces dernières années, les "fabriques de dev" et autres formations courtes explosent. C'est un fait, tout dev a été ou sera amené à travailler avec l'un de ces jeunes développeurs.euses. Mais qui sont-ils ? Pourquoi une reconversion dans ce genre de d'organisation ? Qu'ont-ils appris lors de leurs formation express ? C'est fiable ce genre de dev ? Comment puis-je les intégrer au mieux dans ma structure ?
-Autant de questions que vous vous êtes sans doute déjà posées. Pendant ces 15 minutes, je vous présenterai mon retour d'expérience en tant que développeuse provenant de l'une de ces écoles de dev et maintenant développeuse Javascript depuis 2 ans au sein d'une startup Toulousaine.
\ No newline at end of file
+Autant de questions que vous vous êtes sans doute déjà posées. Pendant ces 15 minutes, je vous présenterai mon retour d'expérience en tant que développeuse provenant de l'une de ces écoles de dev et maintenant développeuse Javascript depuis 2 ans au sein d'une startup Toulousaine.
diff --git a/content/sessions/devops_at_scale.md b/content/sessions/devops_at_scale.md
index d58ff22..868c2a9 100644
--- a/content/sessions/devops_at_scale.md
+++ b/content/sessions/devops_at_scale.md
@@ -14,4 +14,4 @@ draft: false
---
DevOps is everywhere, and every new or existing project is at least considering to follow its principles. While implementing DevOps for single projects become more and more straightforward, it's still a challenge to have a coherent DevOps approach at Enterprise level.
-Let's dig in what it takes to achieve DevOps in large companies, with Airbus as an example.
\ No newline at end of file
+Let's dig in what it takes to achieve DevOps in large companies, with Airbus as an example.
diff --git a/content/sessions/four_diseases.md b/content/sessions/four_diseases.md
index f95504f..6d040d6 100644
--- a/content/sessions/four_diseases.md
+++ b/content/sessions/four_diseases.md
@@ -16,4 +16,4 @@ draft: false
How a developer can tell if the system is sick just by taking a look at the input and the output? If you'd like to know that (plus you like standup comedy), come an see! The treatment is safe ;-)
One approach to get familiar with a system is a long and intense reading the manual (and to run an eye over the source code sometimes). Another approach is to take a deep dive into the data model (often in the DB) and to surf the user interface. Both are natural ends of the system, the legendary Input and Output. By examining these ends one can check if there's good digestion or if guts are rotten. Careful examination can confirm "common DDDosis", "malignant stringosis", "regex diarrhoea" or "not-made-here syndrome".
-Unfortunately, sometimes developers get infected in their prenatal life (meaning: at their university). Let me invite you to treatment. A laxative one. (That is: a sequel of "Passwords. Do you keep them safe?")
\ No newline at end of file
+Unfortunately, sometimes developers get infected in their prenatal life (meaning: at their university). Let me invite you to treatment. A laxative one. (That is: a sequel of "Passwords. Do you keep them safe?")
diff --git a/content/sessions/introduction_a_la_programmation_par_contraintes.md b/content/sessions/introduction_a_la_programmation_par_contraintes.md
index 8fd5e0a..3c8c733 100644
--- a/content/sessions/introduction_a_la_programmation_par_contraintes.md
+++ b/content/sessions/introduction_a_la_programmation_par_contraintes.md
@@ -15,4 +15,4 @@ draft: false
---
Quel est le point commun entre un jeu de sudoku, la planification d'une conférence et les déplacements d'un commercial ?
-Quand on souhaite les traiter automatiquement, tous ces problèmes peuvent être résolus par un solveur de contraintes. Dans ce talk, je vais essayer de vous faire une introduction pratique à la programmation par contraintes, en présentant les concepts de base, puis en les mettant en application avec plusieurs exemples de problèmes connus de tout le monde (ou presque), pour finir par un cas plus complexe sur lequel je travaille actuellement.
\ No newline at end of file
+Quand on souhaite les traiter automatiquement, tous ces problèmes peuvent être résolus par un solveur de contraintes. Dans ce talk, je vais essayer de vous faire une introduction pratique à la programmation par contraintes, en présentant les concepts de base, puis en les mettant en application avec plusieurs exemples de problèmes connus de tout le monde (ou presque), pour finir par un cas plus complexe sur lequel je travaille actuellement.
diff --git a/content/sessions/keynote_close.md b/content/sessions/keynote_close.md
index cae650b..714603d 100644
--- a/content/sessions/keynote_close.md
+++ b/content/sessions/keynote_close.md
@@ -7,4 +7,4 @@ tags:
speakers: []
draft: false
---
-Surprise!
\ No newline at end of file
+Surprise!
diff --git a/content/sessions/keynote_open.md b/content/sessions/keynote_open.md
index 6ec71ca..7c82c74 100644
--- a/content/sessions/keynote_open.md
+++ b/content/sessions/keynote_open.md
@@ -7,4 +7,4 @@ tags:
speakers: []
draft: false
---
-Surprise!
\ No newline at end of file
+Surprise!
diff --git a/content/sessions/l_histoire_de_la_decouverte_d_une_backdoor_signe_oneplus.md b/content/sessions/l_histoire_de_la_decouverte_d_une_backdoor_signe_oneplus.md
index ff36f8e..97c1295 100644
--- a/content/sessions/l_histoire_de_la_decouverte_d_une_backdoor_signe_oneplus.md
+++ b/content/sessions/l_histoire_de_la_decouverte_d_une_backdoor_signe_oneplus.md
@@ -29,4 +29,4 @@ Lors de la détection et l'analyse de cette faille nous aborderons la philosophi
Native mobile apps
## Format
-Une conférence de 40 min
\ No newline at end of file
+Une conférence de 40 min
diff --git a/content/sessions/le_burn_out_agile.md b/content/sessions/le_burn_out_agile.md
index ef500bd..b2e143d 100644
--- a/content/sessions/le_burn_out_agile.md
+++ b/content/sessions/le_burn_out_agile.md
@@ -26,4 +26,4 @@ En 2019 le monde de l’informatique est au bord du burn-out agile.
- Petit historique : l’évolution des pratiques sur les 20 dernières années
- Pourquoi ce bordel agile ?
- Finalement l’agilité c’est quoi ?
-- Est-ce qu’il faut revenir au cycle en V ?
\ No newline at end of file
+- Est-ce qu’il faut revenir au cycle en V ?
diff --git a/content/sessions/le_design_de_l_erreur.md b/content/sessions/le_design_de_l_erreur.md
index 8a4e48d..85debe6 100644
--- a/content/sessions/le_design_de_l_erreur.md
+++ b/content/sessions/le_design_de_l_erreur.md
@@ -22,4 +22,4 @@ Mais avec les architectures microservices, la distribution des traitements ou un
Que fait-on lorsqu’une erreur intervient ? Peut-on compenser voire gérer l’erreur depuis le système pour l’utilisateur ?
La réponse a ces questions se trouvent autant dans la définition du produit que dans le choix technique.
-Un outil bien conçu est un outil intelligent qui peut faire les bons choix au bon moment pour l'utilisateur. Et si on apprenait ensemble à concevoir nos erreurs ?
\ No newline at end of file
+Un outil bien conçu est un outil intelligent qui peut faire les bons choix au bon moment pour l'utilisateur. Et si on apprenait ensemble à concevoir nos erreurs ?
diff --git a/content/sessions/le_troll_dans_ta_machine_____une_courte_introduction_a_la_pensee_de_jean_yves_girard.md b/content/sessions/le_troll_dans_ta_machine_____une_courte_introduction_a_la_pensee_de_jean_yves_girard.md
index 5f2e330..f7853f2 100644
--- a/content/sessions/le_troll_dans_ta_machine_____une_courte_introduction_a_la_pensee_de_jean_yves_girard.md
+++ b/content/sessions/le_troll_dans_ta_machine_____une_courte_introduction_a_la_pensee_de_jean_yves_girard.md
@@ -29,4 +29,4 @@ Dans cette courte présentation, on s'attachera à comprendre pourquoi Girard es
----
-Dans le cas d'un créneau à 40min, on pourrait donner quelques pointeurs sur ses travaux plus récents, et expliciter en quoi ils sont porteurs de nouvelles avancées pour les prochaines décennies (réseaux de démonstrations, géométrique de l'intéraction, etc.).
\ No newline at end of file
+Dans le cas d'un créneau à 40min, on pourrait donner quelques pointeurs sur ses travaux plus récents, et expliciter en quoi ils sont porteurs de nouvelles avancées pour les prochaines décennies (réseaux de démonstrations, géométrique de l'intéraction, etc.).
diff --git a/content/sessions/live_coding_musical___vous_savez_coder___devenez_compositeur_avec_webaudio_et_webmidi__.md b/content/sessions/live_coding_musical___vous_savez_coder___devenez_compositeur_avec_webaudio_et_webmidi__.md
index 89650f3..506dfb7 100644
--- a/content/sessions/live_coding_musical___vous_savez_coder___devenez_compositeur_avec_webaudio_et_webmidi__.md
+++ b/content/sessions/live_coding_musical___vous_savez_coder___devenez_compositeur_avec_webaudio_et_webmidi__.md
@@ -22,4 +22,4 @@ Après un rapide tour d'horizon des environnements de codage musical comme Sonic
Quelques samples bien choisis, une pincée de séquences harmonieuses, une bonne dose d'aléatoire encadré, et hop, tout le monde se mettra à danser ! Et puisque la musique c'est aussi des maths, on parlera de musique générative avec des chaînes de Markov et des L-Systems.
-David Guetta n'a qu'à bien se tenir !
\ No newline at end of file
+David Guetta n'a qu'à bien se tenir !
diff --git a/content/sessions/machine_learning_avec_des_allumettes_et_des_cotillons.md b/content/sessions/machine_learning_avec_des_allumettes_et_des_cotillons.md
index 4f4028a..45248b5 100644
--- a/content/sessions/machine_learning_avec_des_allumettes_et_des_cotillons.md
+++ b/content/sessions/machine_learning_avec_des_allumettes_et_des_cotillons.md
@@ -13,4 +13,4 @@ videoId: null
presentation: null
draft: false
---
-Dans ce talk je vous montrerai comment expliquer simplement le fonctionnement de l'apprentissage par renforcement. Pour cela pas besoin d'ordinateur : quelques allumettes, des sacs de cotillons et un peu de pédagogie sont suffisant pour mettre en évidence les mécanismes intrinsèques de cette technique et pour aborder les enjeux et les limites des algorithmes d'"intelligence artificielle" basés sur l'apprentissage.
\ No newline at end of file
+Dans ce talk je vous montrerai comment expliquer simplement le fonctionnement de l'apprentissage par renforcement. Pour cela pas besoin d'ordinateur : quelques allumettes, des sacs de cotillons et un peu de pédagogie sont suffisant pour mettre en évidence les mécanismes intrinsèques de cette technique et pour aborder les enjeux et les limites des algorithmes d'"intelligence artificielle" basés sur l'apprentissage.
diff --git a/content/sessions/modern_forms_in_react.md b/content/sessions/modern_forms_in_react.md
index 5cc972a..d6a7030 100644
--- a/content/sessions/modern_forms_in_react.md
+++ b/content/sessions/modern_forms_in_react.md
@@ -12,4 +12,4 @@ videoId: null
presentation: null
draft: false
---
-If the new React Context API and Suspense killed Redux (they didn't), surely Hooks kill the need for a form library, right? Well, not exactly. Managing form state is more than just holding your current values in state; it's about sync and async validition errors, and much more! But that doesn't mean that Hooks are irrelevant to the situation. Hooks make building forms in React easier than ever before.
\ No newline at end of file
+If the new React Context API and Suspense killed Redux (they didn't), surely Hooks kill the need for a form library, right? Well, not exactly. Managing form state is more than just holding your current values in state; it's about sync and async validition errors, and much more! But that doesn't mean that Hooks are irrelevant to the situation. Hooks make building forms in React easier than ever before.
diff --git a/content/sessions/mon_p____de_voyant_moteur_est_encore_allume___comment_debugger_mon_moteur___plongeon_dans_les_entrailles_des_calculateurs_moteur.md b/content/sessions/mon_p____de_voyant_moteur_est_encore_allume___comment_debugger_mon_moteur___plongeon_dans_les_entrailles_des_calculateurs_moteur.md
index fc080d0..224fbf7 100644
--- a/content/sessions/mon_p____de_voyant_moteur_est_encore_allume___comment_debugger_mon_moteur___plongeon_dans_les_entrailles_des_calculateurs_moteur.md
+++ b/content/sessions/mon_p____de_voyant_moteur_est_encore_allume___comment_debugger_mon_moteur___plongeon_dans_les_entrailles_des_calculateurs_moteur.md
@@ -20,4 +20,4 @@ Les moteurs des voitures modernes sont des systèmes informatiques complexes qui
Comment ça fonctionne ? A quoi ressemble ce code et que fait-il ?
Qu'est-ce qu'il se passe lorsqu'on fait une "reprog" ?
Qu'est-ce que signifie le voyant moteur allumé ? Comment débugger tout ça ?
-Soulevons le capot (électronique), analysons le matériel mis en oeuvre mais surtout le logiciel grâce aux sources des calculateurs "Megasquirt" et allons explorer la face cachée numérique de nos voitures.
\ No newline at end of file
+Soulevons le capot (électronique), analysons le matériel mis en oeuvre mais surtout le logiciel grâce aux sources des calculateurs "Megasquirt" et allons explorer la face cachée numérique de nos voitures.
diff --git a/content/sessions/monitoring_ovh__300k_serveurs__27_dcs_une_plateforme_de_metriques.md b/content/sessions/monitoring_ovh__300k_serveurs__27_dcs_une_plateforme_de_metriques.md
index 97356ca..2f6adbb 100644
--- a/content/sessions/monitoring_ovh__300k_serveurs__27_dcs_une_plateforme_de_metriques.md
+++ b/content/sessions/monitoring_ovh__300k_serveurs__27_dcs_une_plateforme_de_metriques.md
@@ -16,4 +16,4 @@ Comment faire quand on doit faire le suivi de toute l'infrastructure du plus gra
Dans ce talk nous racontons notre expérience sur la construction et la maintenance d'OVH Metrics, la plateforme utilisée pour monitorer toute l'infrastructure OVH. Nous avions besoin d'aller à des endroits ou la plupart de solutions de monitoring ne sont jamais allées, opérer à l'échelle du plus grand fournisseur Européen de cloud et hosting : 27 data centers, plus de 300k serveurs (physiques !) et des centaines de produits pour accomplir notre mission avec nos 1,3 millions de clients.
-Venez pour entendre cette histoire de séries temporelles, de solutions open-sources poussées à l'extreme, de clusters HBase opérés en limite de capacité, et de comment une petite équipe s'est appuyé sur une poignée de solutions open-source et une bonne dose de code maison pour construire une des solutions de monitoring les plus performantes au monde.
\ No newline at end of file
+Venez pour entendre cette histoire de séries temporelles, de solutions open-sources poussées à l'extreme, de clusters HBase opérés en limite de capacité, et de comment une petite équipe s'est appuyé sur une poignée de solutions open-source et une bonne dose de code maison pour construire une des solutions de monitoring les plus performantes au monde.
diff --git a/content/sessions/office-hour-01.md b/content/sessions/office-hour-01.md
index bd1823f..faa34d6 100644
--- a/content/sessions/office-hour-01.md
+++ b/content/sessions/office-hour-01.md
@@ -7,4 +7,4 @@ tags:
speakers: []
draft: false
---
-Venez poser vos questions aux speakers de manière plus calme et détendu
\ No newline at end of file
+Venez poser vos questions aux speakers de manière plus calme et détendu
diff --git a/content/sessions/office-hour-02.md b/content/sessions/office-hour-02.md
index 216eb22..91e67ae 100644
--- a/content/sessions/office-hour-02.md
+++ b/content/sessions/office-hour-02.md
@@ -7,4 +7,4 @@ tags:
speakers: []
draft: false
---
-Venez poser vos questions aux speakers de manière plus calme et détendu
\ No newline at end of file
+Venez poser vos questions aux speakers de manière plus calme et détendu
diff --git a/content/sessions/office-hour-03.md b/content/sessions/office-hour-03.md
index b32236b..77a6140 100644
--- a/content/sessions/office-hour-03.md
+++ b/content/sessions/office-hour-03.md
@@ -7,4 +7,4 @@ tags:
speakers: []
draft: false
---
-Venez poser vos questions aux speakers de manière plus calme et détendu
\ No newline at end of file
+Venez poser vos questions aux speakers de manière plus calme et détendu
diff --git a/content/sessions/office-hour-04.md b/content/sessions/office-hour-04.md
index 49a9fb6..0ebefc0 100644
--- a/content/sessions/office-hour-04.md
+++ b/content/sessions/office-hour-04.md
@@ -7,4 +7,4 @@ tags:
speakers: []
draft: false
---
-Venez poser vos questions aux speakers de manière plus calme et détendu
\ No newline at end of file
+Venez poser vos questions aux speakers de manière plus calme et détendu
diff --git a/content/sessions/office-hour-05.md b/content/sessions/office-hour-05.md
index c684416..f903d42 100644
--- a/content/sessions/office-hour-05.md
+++ b/content/sessions/office-hour-05.md
@@ -7,4 +7,4 @@ tags:
speakers: []
draft: false
---
-Venez poser vos questions aux speakers de manière plus calme et détendu
\ No newline at end of file
+Venez poser vos questions aux speakers de manière plus calme et détendu
diff --git a/content/sessions/office-hour-06.md b/content/sessions/office-hour-06.md
index 09674bb..af4da6a 100644
--- a/content/sessions/office-hour-06.md
+++ b/content/sessions/office-hour-06.md
@@ -7,4 +7,4 @@ tags:
speakers: []
draft: false
---
-Venez poser vos questions aux speakers de manière plus calme et détendu
\ No newline at end of file
+Venez poser vos questions aux speakers de manière plus calme et détendu
diff --git a/content/sessions/office-hour-11.md b/content/sessions/office-hour-11.md
index 3fa7ce5..baef01b 100644
--- a/content/sessions/office-hour-11.md
+++ b/content/sessions/office-hour-11.md
@@ -7,4 +7,4 @@ tags:
speakers: []
draft: false
---
-Venez poser vos questions aux speakers de manière plus calme et détendu
\ No newline at end of file
+Venez poser vos questions aux speakers de manière plus calme et détendu
diff --git a/content/sessions/office-hour-12.md b/content/sessions/office-hour-12.md
index c039884..75465a7 100644
--- a/content/sessions/office-hour-12.md
+++ b/content/sessions/office-hour-12.md
@@ -7,4 +7,4 @@ tags:
speakers: []
draft: false
---
-Venez poser vos questions aux speakers de manière plus calme et détendu
\ No newline at end of file
+Venez poser vos questions aux speakers de manière plus calme et détendu
diff --git a/content/sessions/premiers_pas_avec_un_microcontroleur_et_google_cloud_iot_core.md b/content/sessions/premiers_pas_avec_un_microcontroleur_et_google_cloud_iot_core.md
index b5cc387..918a0c8 100644
--- a/content/sessions/premiers_pas_avec_un_microcontroleur_et_google_cloud_iot_core.md
+++ b/content/sessions/premiers_pas_avec_un_microcontroleur_et_google_cloud_iot_core.md
@@ -18,4 +18,4 @@ Google propose également sa solution : "Cloud IoT" basée sur la plate-forme Go
Dans ce talk, nous partirons d'un microcontrôleur neuf ultra connu et abordable, et notre but sera tout d'abord de découvrir comment écrire du code pour ce composant nous permettant de récupérer des informations sur notre environnement.
Ensuite, nous ferons en sorte que ce composant envoie ses données vers un service Cloud, pour enfin découvrir ce que permettent ces solutions en ligne dédiées à l'IoT.
-Pour l'exemple, et parce qu'il faut bien choisir une solution, nous utiliserons Google Cloud IoT Core, les concepts restant similaires sur les autres plate-formes.
\ No newline at end of file
+Pour l'exemple, et parce qu'il faut bien choisir une solution, nous utiliserons Google Cloud IoT Core, les concepts restant similaires sur les autres plate-formes.
diff --git a/content/sessions/quand_les_rates_des_ias_nous_renvoient_a_nos_propres_biais_societaux.md b/content/sessions/quand_les_rates_des_ias_nous_renvoient_a_nos_propres_biais_societaux.md
index ed92b64..2a894a1 100644
--- a/content/sessions/quand_les_rates_des_ias_nous_renvoient_a_nos_propres_biais_societaux.md
+++ b/content/sessions/quand_les_rates_des_ias_nous_renvoient_a_nos_propres_biais_societaux.md
@@ -19,4 +19,4 @@ Cette présentation propose des root cause analysis sur des exemples concrets de
Nous verrons notamment que l’éthique peut directement être abordée au niveau des données et de leur préparation à l’apprentissage. Nous nous concentrerons principalement sur l’impact des statistiques des données d’entraînement et les transformations à appliquer en pré-processing (métriques de fairness, améliorer la fairness sur des données annotées), et nous montrerons comment des benchmarks permettent d'appréhender l’impact des méthodes de fairness sur la précision des modèles entraînés.
-La confiance et l’équité passe avant tout par une compréhension de la prise de décision par l’utilisateur. Par conséquent, nous présenterons diverses méthodes pour expliquer la prise de décision d’un modèle boîte noire (principalement des algorithmes de deep learning) et mettons en garde contre une mauvaise interprétation de ces explications.
\ No newline at end of file
+La confiance et l’équité passe avant tout par une compréhension de la prise de décision par l’utilisateur. Par conséquent, nous présenterons diverses méthodes pour expliquer la prise de décision d’un modèle boîte noire (principalement des algorithmes de deep learning) et mettons en garde contre une mauvaise interprétation de ces explications.
diff --git a/content/sessions/rockin_in_the_angular_world.md b/content/sessions/rockin_in_the_angular_world.md
index a2056b5..8a0f70b 100644
--- a/content/sessions/rockin_in_the_angular_world.md
+++ b/content/sessions/rockin_in_the_angular_world.md
@@ -23,4 +23,4 @@ L’accueil d’un nouveau développeur·euse dans une équipe est un des meille
Nous vous proposons dans ce talk un retour d’expérience sur quelques années de consulting sur des projets Angular au travers de cas concrets :
- quelles sont les mauvaises pratiques à éviter ?
- quels sont les choix orientés et assumés d’Angular pour vous éviter tout ça ?
-- quelque soit la taille de votre équipe, l’expérience de vos collègues, quels sont les principes d’architecture à adopter pour améliorer tout ça ?
\ No newline at end of file
+- quelque soit la taille de votre équipe, l’expérience de vos collègues, quels sont les principes d’architecture à adopter pour améliorer tout ça ?
diff --git a/content/sessions/rust__webassembly__and_the_future_of_serverless.md b/content/sessions/rust__webassembly__and_the_future_of_serverless.md
index c9dfe8a..352b597 100644
--- a/content/sessions/rust__webassembly__and_the_future_of_serverless.md
+++ b/content/sessions/rust__webassembly__and_the_future_of_serverless.md
@@ -21,4 +21,4 @@ serverless application platforms, combining two brand-new technologies
together. We're also seeing a lot of growth of the Rust programming
language, and its close alignment with WebAssembly. In this talk,
Steve will talk about Rust, WebAssembly, serverless technologies, and
-how it all fits together.
\ No newline at end of file
+how it all fits together.
diff --git a/content/sessions/rust_as_a_high_level_langage.md b/content/sessions/rust_as_a_high_level_langage.md
index 05005de..fd3b679 100644
--- a/content/sessions/rust_as_a_high_level_langage.md
+++ b/content/sessions/rust_as_a_high_level_langage.md
@@ -22,4 +22,4 @@ The focus of the talk is fearless concurrency. Data races are a pervasive and un
* predictable performance due to absence of garbage collection
* control over the memory layout of objects, which gives you extra performance if you need it
* module (crate) system that, at the language level, prevents dependency hell
-* additional correctness guarantees, like the absence of iterator validation or strict control of error conditions
\ No newline at end of file
+* additional correctness guarantees, like the absence of iterator validation or strict control of error conditions
diff --git a/content/sessions/the_freedom_of_static_typing.md b/content/sessions/the_freedom_of_static_typing.md
index d9edbba..e749ee9 100644
--- a/content/sessions/the_freedom_of_static_typing.md
+++ b/content/sessions/the_freedom_of_static_typing.md
@@ -17,4 +17,4 @@ It's a common idea: Dynamic typing gives you freedom to do whatever you want, bu
This isn't entirely false. Yes, it can be quite hard to write a Rust or Haskell program that compiles, enough that it's a running gag in their communities. "But once you get it to compile, it's probably correct!", the joke goes. On the other hand, when writing Ruby or Javascript, you're free to call functions with all sorts of things, and then runtime errors can easily slip into production. That said, it's not as simple as a sliding scale between "freedom" and "safety". Neither of these terms is one-dimensional -- a language feature that restricts your freedom in one way can actually free you in different ways.
-I'd like to demonstrate some interesting language features in Rust that make it easier to write code and to express concepts compared to dynamic languages. Features that don't just protect you from shooting your foot, but give you power that's only available within the rules and "limitations" of a statically typed language. Even if you're not familiar with Rust, I hope to focus the examples on the features themselves rather than on the specifics of the language, so come by and let's talk about being (type-safely) free.
\ No newline at end of file
+I'd like to demonstrate some interesting language features in Rust that make it easier to write code and to express concepts compared to dynamic languages. Features that don't just protect you from shooting your foot, but give you power that's only available within the rules and "limitations" of a statically typed language. Even if you're not familiar with Rust, I hope to focus the examples on the features themselves rather than on the specifics of the language, so come by and let's talk about being (type-safely) free.
diff --git a/content/sessions/the_rise_of_the_web.md b/content/sessions/the_rise_of_the_web.md
index 40ef2d9..cc48d02 100644
--- a/content/sessions/the_rise_of_the_web.md
+++ b/content/sessions/the_rise_of_the_web.md
@@ -19,4 +19,4 @@ C’est ça inspecteur. C’est ça la bonne question.
Si tu ne les as pas vécus, viens découvrir l'arrivée du Web, l'histoire de Netscape, la browser-war, la naissance du serveur d'application, les débuts du web dynamique et la prise d'assaut du JS.
-Sit back, relax, and Enjoy!
\ No newline at end of file
+Sit back, relax, and Enjoy!
diff --git a/content/sessions/un_distributeur_automatique_d_argent_de_poche_pour_les_enfants.md b/content/sessions/un_distributeur_automatique_d_argent_de_poche_pour_les_enfants.md
index 1d00b5e..45c6767 100644
--- a/content/sessions/un_distributeur_automatique_d_argent_de_poche_pour_les_enfants.md
+++ b/content/sessions/un_distributeur_automatique_d_argent_de_poche_pour_les_enfants.md
@@ -19,4 +19,4 @@ Avec mon épouse nous avons commencer à donner de l'argent de poche à nos enfa
Pour qu'ils puissent faire comme les grands (et parce que c'est fun aussi :D) j'ai conçu un DAAP (**D**istributeur **A**utomatique d'**A**rgent de **P**oche) qui leur permet, le jour de la distribution de l'argent de poche, d'insérer leur "carte bleue", saisir leur code et de voir la machine s'ébranler pour distribuer les pièces.
-Dans ce talk on parlera d'Arduino, d'impression 3D, de carte à puce, d'électronique et des problèmes que j'ai rencontré et comment j'ai pu les résoudre.
\ No newline at end of file
+Dans ce talk on parlera d'Arduino, d'impression 3D, de carte à puce, d'électronique et des problèmes que j'ai rencontré et comment j'ai pu les résoudre.
diff --git a/content/sessions/webgpu__next_generation_3d_graphics_on_the_web.md b/content/sessions/webgpu__next_generation_3d_graphics_on_the_web.md
index abb193b..a054714 100644
--- a/content/sessions/webgpu__next_generation_3d_graphics_on_the_web.md
+++ b/content/sessions/webgpu__next_generation_3d_graphics_on_the_web.md
@@ -12,4 +12,4 @@ videoId: null
presentation: null
draft: false
---
-This talk will give an overview of the WebGPU API that will provide modern features such as “GPU compute” on the Web as well as lower overhead access to GPU hardware and better, more predictable performance. This will allow for much more graphically intensive games on the Web and boost performance of frameworks like Tensorflow.js up to 10x.
\ No newline at end of file
+This talk will give an overview of the WebGPU API that will provide modern features such as “GPU compute” on the Web as well as lower overhead access to GPU hardware and better, more predictable performance. This will allow for much more graphically intensive games on the Web and boost performance of frameworks like Tensorflow.js up to 10x.
diff --git a/package.json b/package.json
index 356eea9..2f7908a 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,8 @@
"author": "Igor Laborie ",
"license": "Apache-2.0",
"scripts": {
+ "generate:pdf": "node tools/pdf.js",
+ "prebuild": "hugo",
"build:minify": "node tools/minify.js",
"build": "run-p build:*"
},
@@ -13,6 +15,6 @@
"html-minifier": "^4.0.0",
"npm-run-all": "^4.1.5",
"plop-logger": "^2.3.0",
- "tslib": "^1.10.0"
+ "puppeteer": "^1.19.0"
}
}
diff --git a/static/schedule/schedule.pdf b/static/schedule/schedule.pdf
new file mode 100644
index 0000000..f11f424
Binary files /dev/null and b/static/schedule/schedule.pdf differ
diff --git a/themes/devfest-theme-hugo b/themes/devfest-theme-hugo
index 641f66d..1c1c7ba 160000
--- a/themes/devfest-theme-hugo
+++ b/themes/devfest-theme-hugo
@@ -1 +1 @@
-Subproject commit 641f66d2731adacbda7c7b42c53da79a4ceae9ac
+Subproject commit 1c1c7bac824e50d7fa3fd3de2e5f9ce09a285c36
diff --git a/tools/pdf.js b/tools/pdf.js
new file mode 100644
index 0000000..73b5fc4
--- /dev/null
+++ b/tools/pdf.js
@@ -0,0 +1,57 @@
+const puppeteer = require('puppeteer');
+const {Logger, LogLevel} = require('plop-logger');
+const {colorEmojiConfig} = require('plop-logger/lib/extra/colorEmojiConfig');
+
+Logger.config = colorEmojiConfig;
+Logger.config.defaultLevel = LogLevel.Debug;
+const logger = Logger.getLogger('pdf');
+
+(async () => {
+ logger.info("launch puppeteer browser");
+ const defaultViewport = {width: 1280, height: 1700};
+ const devtools = false;
+ const browser = await puppeteer.launch({devtools, defaultViewport});
+ try {
+ logger.info("open new page");
+ const page = await browser.newPage();
+ logger.debug("opened new page");
+
+ const file = 'schedule/index.html';
+ const url = `http://localhost:1313/${file}`;
+ logger.info("go to", url);
+ const pageResponse = await page.goto(url, {waitUntil: 'networkidle2'});
+ logger.debug("gone", pageResponse.statusText());
+
+ const toHide = [
+ 'body>header',
+ 'body>footer',
+ 'main .hero',
+ ];
+ await page.$$eval(toHide.join(','), function (elts) {
+ // debugger;
+ elts.forEach(elt => {
+ elt.parentNode.removeChild(elt);
+ // elt.style.display = 'none';
+ });
+ });
+
+ await page.addStyleTag({
+ content: '@page { size: auto; }',
+ });
+
+ logger.info('export pdf');
+ const path = 'static/schedule/schedule.pdf';
+ const format = 'A3';
+ const scale = .4;
+ const printBackground = true;
+ await page.pdf({path, format, scale, printBackground});
+ logger.debug("pdf done");
+
+ } catch (e) {
+ console.error(e);
+ logger.error('Oops!', e);
+ } finally {
+ logger.info('close puppeteer browser');
+ await browser.close();
+ }
+})();
diff --git a/yarn.lock b/yarn.lock
index 20ef5e2..0b2baf3 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,6 +2,13 @@
# yarn lockfile v1
+agent-base@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee"
+ integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==
+ dependencies:
+ es6-promisify "^5.0.0"
+
ansi-colors@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
@@ -14,6 +21,11 @@ ansi-styles@^3.2.1:
dependencies:
color-convert "^1.9.0"
+async-limiter@~1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
+ integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==
+
balanced-match@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
@@ -27,6 +39,11 @@ brace-expansion@^1.1.7:
balanced-match "^1.0.0"
concat-map "0.0.1"
+buffer-from@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
+ integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
+
camel-case@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73"
@@ -73,6 +90,21 @@ concat-map@0.0.1:
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
+concat-stream@1.6.2:
+ version "1.6.2"
+ resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
+ integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
+ dependencies:
+ buffer-from "^1.0.0"
+ inherits "^2.0.3"
+ readable-stream "^2.2.2"
+ typedarray "^0.0.6"
+
+core-util-is@~1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
+ integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
+
cross-spawn@^6.0.5:
version "6.0.5"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
@@ -84,6 +116,27 @@ cross-spawn@^6.0.5:
shebang-command "^1.2.0"
which "^1.2.9"
+debug@2.6.9:
+ version "2.6.9"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+ integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
+ dependencies:
+ ms "2.0.0"
+
+debug@^3.1.0:
+ version "3.2.6"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
+ integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
+ dependencies:
+ ms "^2.1.1"
+
+debug@^4.1.0:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
+ integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
+ dependencies:
+ ms "^2.1.1"
+
define-properties@^1.1.2:
version "1.1.3"
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
@@ -119,11 +172,40 @@ es-to-primitive@^1.2.0:
is-date-object "^1.0.1"
is-symbol "^1.0.2"
+es6-promise@^4.0.3:
+ version "4.2.8"
+ resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a"
+ integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==
+
+es6-promisify@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203"
+ integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=
+ dependencies:
+ es6-promise "^4.0.3"
+
escape-string-regexp@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
+extract-zip@^1.6.6:
+ version "1.6.7"
+ resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9"
+ integrity sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=
+ dependencies:
+ concat-stream "1.6.2"
+ debug "2.6.9"
+ mkdirp "0.5.1"
+ yauzl "2.4.1"
+
+fd-slicer@~1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65"
+ integrity sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=
+ dependencies:
+ pend "~1.2.0"
+
fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
@@ -134,7 +216,7 @@ function-bind@^1.0.2, function-bind@^1.1.1:
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
-glob@^7.1.4:
+glob@^7.1.3, glob@^7.1.4:
version "7.1.4"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255"
integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==
@@ -191,6 +273,14 @@ html-minifier@^4.0.0:
relateurl "^0.2.7"
uglify-js "^3.5.1"
+https-proxy-agent@^2.2.1:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.2.tgz#271ea8e90f836ac9f119daccd39c19ff7dfb0793"
+ integrity sha512-c8Ndjc9Bkpfx/vCJueCPy0jlP4ccCCSNDp8xwCZzPjKJUm+B+u9WX2x98Qx4n1PiMNTWo3D7KK5ifNV/yJyRzg==
+ dependencies:
+ agent-base "^4.3.0"
+ debug "^3.1.0"
+
inflight@^1.0.4:
version "1.0.6"
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
@@ -199,7 +289,7 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
-inherits@2:
+inherits@2, inherits@^2.0.3, inherits@~2.0.3:
version "2.0.4"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@@ -233,6 +323,11 @@ is-symbol@^1.0.2:
dependencies:
has-symbols "^1.0.0"
+isarray@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
+ integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
+
isexe@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
@@ -263,6 +358,11 @@ memorystream@^0.3.1:
resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2"
integrity sha1-htcJCzDORV1j+64S3aUaR93K+bI=
+mime@^2.0.3:
+ version "2.4.4"
+ resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5"
+ integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==
+
minimatch@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
@@ -270,6 +370,28 @@ minimatch@^3.0.4:
dependencies:
brace-expansion "^1.1.7"
+minimist@0.0.8:
+ version "0.0.8"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
+ integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
+
+mkdirp@0.5.1:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
+ integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
+ dependencies:
+ minimist "0.0.8"
+
+ms@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+ integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
+
+ms@^2.1.1:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
+ integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
+
nice-try@^1.0.4:
version "1.0.5"
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
@@ -356,6 +478,11 @@ path-type@^3.0.0:
dependencies:
pify "^3.0.0"
+pend@~1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
+ integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA=
+
pidtree@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.3.0.tgz#f6fada10fccc9f99bf50e90d0b23d72c9ebc2e6b"
@@ -367,13 +494,42 @@ pify@^3.0.0:
integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
plop-logger@^2.3.0:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/plop-logger/-/plop-logger-2.4.0.tgz#b6032529842f1bf0394fc5a6791516e00314a2a8"
- integrity sha512-fl/VXih1xs3/O718lH9wo+P8hTmFRynh+Y3yPsyYHo2ub2AhuwvqcQkS8dBusK7HnK1uJW6riqONd8GHITivkg==
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/plop-logger/-/plop-logger-2.5.0.tgz#3a80cf4edb98cc6c91a83cc39ba6eff9343308cd"
+ integrity sha512-sudMgIddrxQYw/UpLWjK//CcA4kCCTr87OWTPlf8gLCoBni2vodp5BbhCH6lMXXINUD//5yPmA9jAMwT3tUSCA==
dependencies:
ansi-colors "^4.1.1"
tslib "^1.10.0"
+process-nextick-args@~2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
+ integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
+
+progress@^2.0.1:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
+ integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
+
+proxy-from-env@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee"
+ integrity sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=
+
+puppeteer@^1.19.0:
+ version "1.19.0"
+ resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-1.19.0.tgz#e3b7b448c2c97933517078d7a2c53687361bebea"
+ integrity sha512-2S6E6ygpoqcECaagDbBopoSOPDv0pAZvTbnBgUY+6hq0/XDFDOLEMNlHF/SKJlzcaZ9ckiKjKDuueWI3FN/WXw==
+ dependencies:
+ debug "^4.1.0"
+ extract-zip "^1.6.6"
+ https-proxy-agent "^2.2.1"
+ mime "^2.0.3"
+ progress "^2.0.1"
+ proxy-from-env "^1.0.0"
+ rimraf "^2.6.1"
+ ws "^6.1.0"
+
read-pkg@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389"
@@ -383,6 +539,19 @@ read-pkg@^3.0.0:
normalize-package-data "^2.3.2"
path-type "^3.0.0"
+readable-stream@^2.2.2:
+ version "2.3.6"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
+ integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.3"
+ isarray "~1.0.0"
+ process-nextick-args "~2.0.0"
+ safe-buffer "~5.1.1"
+ string_decoder "~1.1.1"
+ util-deprecate "~1.0.1"
+
relateurl@^0.2.7:
version "0.2.7"
resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9"
@@ -395,6 +564,18 @@ resolve@^1.10.0:
dependencies:
path-parse "^1.0.6"
+rimraf@^2.6.1:
+ version "2.7.1"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
+ integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
+ dependencies:
+ glob "^7.1.3"
+
+safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
+ integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
+
"semver@2 || 3 || 4 || 5", semver@^5.5.0:
version "5.7.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
@@ -457,6 +638,13 @@ string.prototype.padend@^3.0.0:
es-abstract "^1.4.3"
function-bind "^1.0.2"
+string_decoder@~1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
+ integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
+ dependencies:
+ safe-buffer "~5.1.0"
+
strip-bom@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
@@ -474,6 +662,11 @@ tslib@^1.10.0:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"
integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==
+typedarray@^0.0.6:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
+ integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
+
uglify-js@^3.5.1:
version "3.6.0"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.0.tgz#704681345c53a8b2079fb6cec294b05ead242ff5"
@@ -487,6 +680,11 @@ upper-case@^1.1.1:
resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598"
integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=
+util-deprecate@~1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+ integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
+
validate-npm-package-license@^3.0.1:
version "3.0.4"
resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
@@ -506,3 +704,17 @@ wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
+
+ws@^6.1.0:
+ version "6.2.1"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb"
+ integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==
+ dependencies:
+ async-limiter "~1.0.0"
+
+yauzl@2.4.1:
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005"
+ integrity sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=
+ dependencies:
+ fd-slicer "~1.0.1"