From 4f59255032c4ed5a024a5b1a92099640a1a3378b Mon Sep 17 00:00:00 2001 From: Alexander Dubovoy <39504104+ajdubovoy@users.noreply.github.com> Date: Fri, 4 Oct 2024 19:37:55 +0200 Subject: [PATCH 01/47] Upgrade to Ruby 3.3.5 (#475) --- build.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.rb b/build.rb index 8b54d713..db68fec2 100755 --- a/build.rb +++ b/build.rb @@ -1,7 +1,7 @@ #!/usr/bin/env ruby -wU PLACEHOLDERS = { - 'RUBY_SETUP_VERSION' => "3.1.2", + 'RUBY_SETUP_VERSION' => "3.3.5", 'NVM_VERSION' => "0.39.1", 'NODE_VERSION' => "16.15.1", 'GEMS' => "colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2" From 726af32aa4e41a52a91b95d7278ed6739b5590c2 Mon Sep 17 00:00:00 2001 From: github-actions Date: Fri, 4 Oct 2024 17:38:09 +0000 Subject: [PATCH 02/47] setup guides generated --- macos.cn.md | 8 ++++---- macos.es.md | 8 ++++---- macos.fr.md | 8 ++++---- macos.md | 8 ++++---- macos.pt.md | 8 ++++---- ubuntu.cn.md | 8 ++++---- ubuntu.es.md | 8 ++++---- ubuntu.fr.md | 8 ++++---- ubuntu.md | 8 ++++---- ubuntu.pt.md | 8 ++++---- windows.cn.md | 8 ++++---- windows.es.md | 8 ++++---- windows.fr.md | 8 ++++---- windows.md | 8 ++++---- windows.pt.md | 8 ++++---- 15 files changed, 60 insertions(+), 60 deletions(-) diff --git a/macos.cn.md b/macos.cn.md index 8f3a1432..a063d140 100644 --- a/macos.cn.md +++ b/macos.cn.md @@ -386,13 +386,13 @@ brew install rbenv 运行下方这个指令,它会**花费一些时间(5-10分钟)** ```bash -rbenv install 3.1.2 +rbenv install 3.3.5 ``` -当Ruby安装好后,运行下面这个指令来告诉系统使用3.1.2这个版本作为默认版本。 +当Ruby安装好后,运行下面这个指令来告诉系统使用3.3.5这个版本作为默认版本。 ```bash -rbenv global 3.1.2 +rbenv global 3.3.5 ``` 然后**重置**你的终端,然后检查Ruby版本: @@ -402,7 +402,7 @@ exec zsh ruby -v ``` -:heavy_check_mark: 如果你有看到`ruby 3.1.2p`,那么你可以继续下一步+1: +:heavy_check_mark: 如果你有看到`ruby 3.3.5p`,那么你可以继续下一步+1: :x: 如果没有的话,**询问一下老师**。 diff --git a/macos.es.md b/macos.es.md index d9ef6523..6d1f64a3 100644 --- a/macos.es.md +++ b/macos.es.md @@ -406,13 +406,13 @@ Ahora estás listo para instalar la última versión de [ruby](https://www.ruby- Corre este comando, **tomará un tiempo (5-10 minutos)** ```bash -rbenv install 3.1.2 +rbenv install 3.3.5 ``` -Cuando la instalación de ruby termine, corre este comando para decirle al sistema que use la versión 3.1.2 por defecto. +Cuando la instalación de ruby termine, corre este comando para decirle al sistema que use la versión 3.3.5 por defecto. ```bash -rbenv global 3.1.2 +rbenv global 3.3.5 ``` **Reinicia** tu terminal y chequea tu versión Ruby: @@ -427,7 +427,7 @@ Luego ejecuta esto: ruby -v ``` -:heavy_check_mark: Si ves algo que comience por `ruby 3.1.2p`, entonces puedes continuar +1: +:heavy_check_mark: Si ves algo que comience por `ruby 3.3.5p`, entonces puedes continuar +1: :x: Si no es el caso, **pídele ayuda a un profesor**. diff --git a/macos.fr.md b/macos.fr.md index f979e580..cd843eee 100644 --- a/macos.fr.md +++ b/macos.fr.md @@ -402,14 +402,14 @@ Tu peux maintenant installer la dernière version de [ruby](https://www.ruby-lan Exécute cette commande ; cela **peut prendre un moment (5-10 minutes)** ```bash -rbenv install 3.1.2 +rbenv install 3.3.5 ``` Une fois que l’installation de Ruby est terminée, exécute cette commande pour indiquer au système -d’utiliser la version 3.1.2 par défaut. +d’utiliser la version 3.3.5 par défaut. ```bash -rbenv global 3.1.2 +rbenv global 3.3.5 ``` **Réinitialise** ton ton terminal et vérifie ta version de Ruby : @@ -424,7 +424,7 @@ Puis exécute : ruby -v ``` -:heavy_check_mark: Si tu vois apparaître un message commençant par `ruby 3.1.2p`, tu peux continuer :+1: +:heavy_check_mark: Si tu vois apparaître un message commençant par `ruby 3.3.5p`, tu peux continuer :+1: :x: Sinon, **demande au prof** diff --git a/macos.md b/macos.md index c48e750f..0961aceb 100644 --- a/macos.md +++ b/macos.md @@ -445,14 +445,14 @@ Now, you are ready to install the latest [ruby](https://www.ruby-lang.org/en/) v Run this command, it will **take a while (5-10 minutes)** ```bash -rbenv install 3.1.2 +rbenv install 3.3.5 ``` Once the ruby installation is done, run this command to tell the system -to use the 3.1.2 version by default. +to use the 3.3.5 version by default. ```bash -rbenv global 3.1.2 +rbenv global 3.3.5 ``` **Reset** your terminal and check your Ruby version: @@ -467,7 +467,7 @@ Then run: ruby -v ``` -:heavy_check_mark: If you see something starting with `ruby 3.1.2p` then you can proceed :+1: +:heavy_check_mark: If you see something starting with `ruby 3.3.5p` then you can proceed :+1: :x: If not, **ask a teacher** diff --git a/macos.pt.md b/macos.pt.md index cb88187e..3af1c16d 100644 --- a/macos.pt.md +++ b/macos.pt.md @@ -444,14 +444,14 @@ Agora, você está pronto para instalar a versão mais recente do [ruby](https:/ Execute este comando, **demorará um pouco (5 a 10 minutos)** ```bash -rbenv install 3.1.2 +rbenv install 3.3.5 ``` Assim que a instalação do Ruby estiver concluída, execute este comando para informar ao sistema -para usar a versão 3.1.2 por padrão. +para usar a versão 3.3.5 por padrão. ```bash -rbenv global 3.1.2 +rbenv global 3.3.5 ``` **Reinicialize** seu terminal e verifique sua versão do Ruby: @@ -466,7 +466,7 @@ Então corra: ruby -v ``` -:heavy_check_mark: Se você vir algo começando com `ruby 3.1.2p` então você pode prosseguir :+1: +:heavy_check_mark: Se você vir algo começando com `ruby 3.3.5p` então você pode prosseguir :+1: :x: Se não, **pergunte a um professor** diff --git a/ubuntu.cn.md b/ubuntu.cn.md index 2b36e922..2e509ec3 100644 --- a/ubuntu.cn.md +++ b/ubuntu.cn.md @@ -362,13 +362,13 @@ exec zsh 运行下方这个指令,它会**花费一些时间(5-10分钟)** ```bash -rbenv install 3.1.2 +rbenv install 3.3.5 ``` -当Ruby安装好后,运行下面这个指令来告诉系统使用3.1.2这个版本作为默认版本。 +当Ruby安装好后,运行下面这个指令来告诉系统使用3.3.5这个版本作为默认版本。 ```bash -rbenv global 3.1.2 +rbenv global 3.3.5 ``` 然后**重置**你的终端,然后检查Ruby版本: @@ -378,7 +378,7 @@ exec zsh ruby -v ``` -:heavy_check_mark: 如果你有看到`ruby 3.1.2p`,那么你可以继续下一步+1: +:heavy_check_mark: 如果你有看到`ruby 3.3.5p`,那么你可以继续下一步+1: :x: 如果没有的话,**询问一下老师**。 diff --git a/ubuntu.es.md b/ubuntu.es.md index 4ef0c80b..b5186856 100644 --- a/ubuntu.es.md +++ b/ubuntu.es.md @@ -380,13 +380,13 @@ Ahora estás listo para instalar la última versión de [ruby](https://www.ruby- Corre este comando, **tomará un tiempo (5-10 minutos)** ```bash -rbenv install 3.1.2 +rbenv install 3.3.5 ``` -Cuando la instalación de ruby termine, corre este comando para decirle al sistema que use la versión 3.1.2 por defecto. +Cuando la instalación de ruby termine, corre este comando para decirle al sistema que use la versión 3.3.5 por defecto. ```bash -rbenv global 3.1.2 +rbenv global 3.3.5 ``` **Reinicia** tu terminal y chequea tu versión Ruby: @@ -401,7 +401,7 @@ Luego ejecuta esto: ruby -v ``` -:heavy_check_mark: Si ves algo que comience por `ruby 3.1.2p`, entonces puedes continuar +1: +:heavy_check_mark: Si ves algo que comience por `ruby 3.3.5p`, entonces puedes continuar +1: :x: Si no es el caso, **pídele ayuda a un profesor**. diff --git a/ubuntu.fr.md b/ubuntu.fr.md index 85d756b1..47e19e5e 100644 --- a/ubuntu.fr.md +++ b/ubuntu.fr.md @@ -379,14 +379,14 @@ Tu peux maintenant installer la dernière version de [ruby](https://www.ruby-lan Exécute cette commande ; cela **peut prendre un moment (5-10 minutes)** ```bash -rbenv install 3.1.2 +rbenv install 3.3.5 ``` Une fois que l’installation de Ruby est terminée, exécute cette commande pour indiquer au système -d’utiliser la version 3.1.2 par défaut. +d’utiliser la version 3.3.5 par défaut. ```bash -rbenv global 3.1.2 +rbenv global 3.3.5 ``` **Réinitialise** ton ton terminal et vérifie ta version de Ruby : @@ -401,7 +401,7 @@ Puis exécute : ruby -v ``` -:heavy_check_mark: Si tu vois apparaître un message commençant par `ruby 3.1.2p`, tu peux continuer :+1: +:heavy_check_mark: Si tu vois apparaître un message commençant par `ruby 3.3.5p`, tu peux continuer :+1: :x: Sinon, **demande au prof** diff --git a/ubuntu.md b/ubuntu.md index b83f82f2..22715a97 100644 --- a/ubuntu.md +++ b/ubuntu.md @@ -419,14 +419,14 @@ Now, you are ready to install the latest [ruby](https://www.ruby-lang.org/en/) v Run this command, it will **take a while (5-10 minutes)** ```bash -rbenv install 3.1.2 +rbenv install 3.3.5 ``` Once the ruby installation is done, run this command to tell the system -to use the 3.1.2 version by default. +to use the 3.3.5 version by default. ```bash -rbenv global 3.1.2 +rbenv global 3.3.5 ``` **Reset** your terminal and check your Ruby version: @@ -441,7 +441,7 @@ Then run: ruby -v ``` -:heavy_check_mark: If you see something starting with `ruby 3.1.2p` then you can proceed :+1: +:heavy_check_mark: If you see something starting with `ruby 3.3.5p` then you can proceed :+1: :x: If not, **ask a teacher** diff --git a/ubuntu.pt.md b/ubuntu.pt.md index c8d2e1da..0f43d86a 100644 --- a/ubuntu.pt.md +++ b/ubuntu.pt.md @@ -418,14 +418,14 @@ Agora, você está pronto para instalar a versão mais recente do [ruby](https:/ Execute este comando, **demorará um pouco (5 a 10 minutos)** ```bash -rbenv install 3.1.2 +rbenv install 3.3.5 ``` Assim que a instalação do Ruby estiver concluída, execute este comando para informar ao sistema -para usar a versão 3.1.2 por padrão. +para usar a versão 3.3.5 por padrão. ```bash -rbenv global 3.1.2 +rbenv global 3.3.5 ``` **Reinicialize** seu terminal e verifique sua versão do Ruby: @@ -440,7 +440,7 @@ Então corra: ruby -v ``` -:heavy_check_mark: Se você vir algo começando com `ruby 3.1.2p` então você pode prosseguir :+1: +:heavy_check_mark: Se você vir algo começando com `ruby 3.3.5p` então você pode prosseguir :+1: :x: Se não, **pergunte a um professor** diff --git a/windows.cn.md b/windows.cn.md index 41e277c6..dfbcdfdc 100644 --- a/windows.cn.md +++ b/windows.cn.md @@ -895,13 +895,13 @@ exec zsh 运行下方这个指令,它会**花费一些时间(5-10分钟)** ```bash -rbenv install 3.1.2 +rbenv install 3.3.5 ``` -当Ruby安装好后,运行下面这个指令来告诉系统使用3.1.2这个版本作为默认版本。 +当Ruby安装好后,运行下面这个指令来告诉系统使用3.3.5这个版本作为默认版本。 ```bash -rbenv global 3.1.2 +rbenv global 3.3.5 ``` 然后**重置**你的终端,然后检查Ruby版本: @@ -911,7 +911,7 @@ exec zsh ruby -v ``` -:heavy_check_mark: 如果你有看到`ruby 3.1.2p`,那么你可以继续下一步+1: +:heavy_check_mark: 如果你有看到`ruby 3.3.5p`,那么你可以继续下一步+1: :x: 如果没有的话,**询问一下老师**。 diff --git a/windows.es.md b/windows.es.md index 88722cc0..67643a85 100644 --- a/windows.es.md +++ b/windows.es.md @@ -913,13 +913,13 @@ Ahora estás listo para instalar la última versión de [ruby](https://www.ruby- Corre este comando, **tomará un tiempo (5-10 minutos)** ```bash -rbenv install 3.1.2 +rbenv install 3.3.5 ``` -Cuando la instalación de ruby termine, corre este comando para decirle al sistema que use la versión 3.1.2 por defecto. +Cuando la instalación de ruby termine, corre este comando para decirle al sistema que use la versión 3.3.5 por defecto. ```bash -rbenv global 3.1.2 +rbenv global 3.3.5 ``` **Reinicia** tu terminal y chequea tu versión Ruby: @@ -934,7 +934,7 @@ Luego ejecuta esto: ruby -v ``` -:heavy_check_mark: Si ves algo que comience por `ruby 3.1.2p`, entonces puedes continuar +1: +:heavy_check_mark: Si ves algo que comience por `ruby 3.3.5p`, entonces puedes continuar +1: :x: Si no es el caso, **pídele ayuda a un profesor**. diff --git a/windows.fr.md b/windows.fr.md index abd51967..41dad643 100644 --- a/windows.fr.md +++ b/windows.fr.md @@ -912,14 +912,14 @@ Tu peux maintenant installer la dernière version de [ruby](https://www.ruby-lan Exécute cette commande ; cela **peut prendre un moment (5-10 minutes)** ```bash -rbenv install 3.1.2 +rbenv install 3.3.5 ``` Une fois que l’installation de Ruby est terminée, exécute cette commande pour indiquer au système -d’utiliser la version 3.1.2 par défaut. +d’utiliser la version 3.3.5 par défaut. ```bash -rbenv global 3.1.2 +rbenv global 3.3.5 ``` **Réinitialise** ton ton terminal et vérifie ta version de Ruby : @@ -934,7 +934,7 @@ Puis exécute : ruby -v ``` -:heavy_check_mark: Si tu vois apparaître un message commençant par `ruby 3.1.2p`, tu peux continuer :+1: +:heavy_check_mark: Si tu vois apparaître un message commençant par `ruby 3.3.5p`, tu peux continuer :+1: :x: Sinon, **demande au prof** diff --git a/windows.md b/windows.md index f606d499..f6c123b6 100644 --- a/windows.md +++ b/windows.md @@ -971,14 +971,14 @@ Now, you are ready to install the latest [ruby](https://www.ruby-lang.org/en/) v Run this command, it will **take a while (5-10 minutes)** ```bash -rbenv install 3.1.2 +rbenv install 3.3.5 ``` Once the ruby installation is done, run this command to tell the system -to use the 3.1.2 version by default. +to use the 3.3.5 version by default. ```bash -rbenv global 3.1.2 +rbenv global 3.3.5 ``` **Reset** your terminal and check your Ruby version: @@ -993,7 +993,7 @@ Then run: ruby -v ``` -:heavy_check_mark: If you see something starting with `ruby 3.1.2p` then you can proceed :+1: +:heavy_check_mark: If you see something starting with `ruby 3.3.5p` then you can proceed :+1: :x: If not, **ask a teacher** diff --git a/windows.pt.md b/windows.pt.md index db18c7df..308bb781 100644 --- a/windows.pt.md +++ b/windows.pt.md @@ -969,14 +969,14 @@ Agora, você está pronto para instalar a versão mais recente do [ruby](https:/ Execute este comando, **demorará um pouco (5 a 10 minutos)** ```bash -rbenv install 3.1.2 +rbenv install 3.3.5 ``` Assim que a instalação do Ruby estiver concluída, execute este comando para informar ao sistema -para usar a versão 3.1.2 por padrão. +para usar a versão 3.3.5 por padrão. ```bash -rbenv global 3.1.2 +rbenv global 3.3.5 ``` **Reinicialize** seu terminal e verifique sua versão do Ruby: @@ -991,7 +991,7 @@ Então corra: ruby -v ``` -:heavy_check_mark: Se você vir algo começando com `ruby 3.1.2p` então você pode prosseguir :+1: +:heavy_check_mark: Se você vir algo começando com `ruby 3.3.5p` então você pode prosseguir :+1: :x: Se não, **pergunte a um professor** From 95a383245bf9eceb4a3b00ddc561c438269818c0 Mon Sep 17 00:00:00 2001 From: Alexander Dubovoy <39504104+ajdubovoy@users.noreply.github.com> Date: Fri, 4 Oct 2024 19:49:02 +0200 Subject: [PATCH 03/47] Upgrade to Node 20 (#474) --- build.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.rb b/build.rb index db68fec2..cb05e6e4 100755 --- a/build.rb +++ b/build.rb @@ -3,7 +3,7 @@ PLACEHOLDERS = { 'RUBY_SETUP_VERSION' => "3.3.5", 'NVM_VERSION' => "0.39.1", - 'NODE_VERSION' => "16.15.1", + 'NODE_VERSION' => "20.17.0", 'GEMS' => "colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2" } From 55b6f89e4c4ccc1b857f6456a2b74fd862f69fa3 Mon Sep 17 00:00:00 2001 From: github-actions Date: Fri, 4 Oct 2024 17:49:13 +0000 Subject: [PATCH 04/47] setup guides generated --- macos.cn.md | 4 ++-- macos.es.md | 4 ++-- macos.fr.md | 4 ++-- macos.md | 4 ++-- macos.pt.md | 4 ++-- ubuntu.cn.md | 4 ++-- ubuntu.es.md | 4 ++-- ubuntu.fr.md | 4 ++-- ubuntu.md | 4 ++-- ubuntu.pt.md | 4 ++-- windows.cn.md | 4 ++-- windows.es.md | 4 ++-- windows.fr.md | 4 ++-- windows.md | 4 ++-- windows.pt.md | 4 ++-- 15 files changed, 30 insertions(+), 30 deletions(-) diff --git a/macos.cn.md b/macos.cn.md index a063d140..847ec35f 100644 --- a/macos.cn.md +++ b/macos.cn.md @@ -480,7 +480,7 @@ nvm -v 现在,让我们来安装node: ```bash -nvm install 16.15.1 +nvm install 20.17.0 ``` 当这个指令执行结束之后,运行: @@ -489,7 +489,7 @@ nvm install 16.15.1 node -v ``` -如果看到`v16.15.1`,那么你安装成功了:heavy_check_mark: 然后,你就可以运行下面这个命令了: +如果看到`v20.17.0`,那么你安装成功了:heavy_check_mark: 然后,你就可以运行下面这个命令了: ```bash nvm cache clear diff --git a/macos.es.md b/macos.es.md index 6d1f64a3..a4b3b229 100644 --- a/macos.es.md +++ b/macos.es.md @@ -507,7 +507,7 @@ Deberías ver una versión. Si no, pídele ayuda a tu profesor. Ahora instala node: ```bash -nvm install 16.15.1 +nvm install 20.17.0 ``` Cuando termine la instalación, corre lo siguiente: @@ -516,7 +516,7 @@ Cuando termine la instalación, corre lo siguiente: node -v ``` -Si ves `v16.15.1`, the installation succeeded :heavy_check_mark: entonces ahora puedes ejecutar lo siguiente: +Si ves `v20.17.0`, the installation succeeded :heavy_check_mark: entonces ahora puedes ejecutar lo siguiente: ```bash nvm cache clear diff --git a/macos.fr.md b/macos.fr.md index cd843eee..e3060afa 100644 --- a/macos.fr.md +++ b/macos.fr.md @@ -504,7 +504,7 @@ Tu devrais voir apparaître une version. Sinon, demande au prof. On va maintenant installer node : ```bash -nvm install 16.15.1 +nvm install 20.17.0 ``` Une fois l’installation terminée, exécute : @@ -513,7 +513,7 @@ Une fois l’installation terminée, exécute : node -v ``` -Si tu vois apparaître `v16.15.1`, l'installation a réussi :heavy_check_mark: Tu peux alors exécuter : +Si tu vois apparaître `v20.17.0`, l'installation a réussi :heavy_check_mark: Tu peux alors exécuter : ```bash nvm cache clear diff --git a/macos.md b/macos.md index 0961aceb..8f353d1c 100644 --- a/macos.md +++ b/macos.md @@ -550,7 +550,7 @@ You should see a version. If not, ask a teacher. Now let's install node: ```bash -nvm install 16.15.1 +nvm install 20.17.0 ``` When the installation is finished, run: @@ -559,7 +559,7 @@ When the installation is finished, run: node -v ``` -If you see `v16.15.1`, the installation succeeded :heavy_check_mark: You can then run: +If you see `v20.17.0`, the installation succeeded :heavy_check_mark: You can then run: ```bash nvm cache clear diff --git a/macos.pt.md b/macos.pt.md index 3af1c16d..d9531822 100644 --- a/macos.pt.md +++ b/macos.pt.md @@ -543,7 +543,7 @@ Você deverá ver uma versão. Se não, pergunte a um professor. Agora vamos instalar o Node.js: ```bash -nvm install 16.15.1 +nvm install 20.17.0 ``` Quando a instalação terminar, execute: @@ -552,7 +552,7 @@ Quando a instalação terminar, execute: node -v ``` -Se você vir `v16.15.1`, a instalação foi bem-sucedida :heavy_check_mark: Você pode então executar: +Se você vir `v20.17.0`, a instalação foi bem-sucedida :heavy_check_mark: Você pode então executar: ```bash nvm cache clear diff --git a/ubuntu.cn.md b/ubuntu.cn.md index 2e509ec3..13121b37 100644 --- a/ubuntu.cn.md +++ b/ubuntu.cn.md @@ -456,7 +456,7 @@ nvm -v 现在,让我们来安装node: ```bash -nvm install 16.15.1 +nvm install 20.17.0 ``` 当这个指令执行结束之后,运行: @@ -465,7 +465,7 @@ nvm install 16.15.1 node -v ``` -如果看到`v16.15.1`,那么你安装成功了:heavy_check_mark: 然后,你就可以运行下面这个命令了: +如果看到`v20.17.0`,那么你安装成功了:heavy_check_mark: 然后,你就可以运行下面这个命令了: ```bash nvm cache clear diff --git a/ubuntu.es.md b/ubuntu.es.md index b5186856..6b83457b 100644 --- a/ubuntu.es.md +++ b/ubuntu.es.md @@ -481,7 +481,7 @@ Deberías ver una versión. Si no, pídele ayuda a tu profesor. Ahora instala node: ```bash -nvm install 16.15.1 +nvm install 20.17.0 ``` Cuando termine la instalación, corre lo siguiente: @@ -490,7 +490,7 @@ Cuando termine la instalación, corre lo siguiente: node -v ``` -Si ves `v16.15.1`, the installation succeeded :heavy_check_mark: entonces ahora puedes ejecutar lo siguiente: +Si ves `v20.17.0`, the installation succeeded :heavy_check_mark: entonces ahora puedes ejecutar lo siguiente: ```bash nvm cache clear diff --git a/ubuntu.fr.md b/ubuntu.fr.md index 47e19e5e..137d2b17 100644 --- a/ubuntu.fr.md +++ b/ubuntu.fr.md @@ -481,7 +481,7 @@ Tu devrais voir apparaître une version. Sinon, demande au prof. On va maintenant installer node : ```bash -nvm install 16.15.1 +nvm install 20.17.0 ``` Une fois l’installation terminée, exécute : @@ -490,7 +490,7 @@ Une fois l’installation terminée, exécute : node -v ``` -Si tu vois apparaître `v16.15.1`, l'installation a réussi :heavy_check_mark: Tu peux alors exécuter : +Si tu vois apparaître `v20.17.0`, l'installation a réussi :heavy_check_mark: Tu peux alors exécuter : ```bash nvm cache clear diff --git a/ubuntu.md b/ubuntu.md index 22715a97..87307891 100644 --- a/ubuntu.md +++ b/ubuntu.md @@ -524,7 +524,7 @@ You should see a version. If not, ask a teacher. Now let's install node: ```bash -nvm install 16.15.1 +nvm install 20.17.0 ``` When the installation is finished, run: @@ -533,7 +533,7 @@ When the installation is finished, run: node -v ``` -If you see `v16.15.1`, the installation succeeded :heavy_check_mark: You can then run: +If you see `v20.17.0`, the installation succeeded :heavy_check_mark: You can then run: ```bash nvm cache clear diff --git a/ubuntu.pt.md b/ubuntu.pt.md index 0f43d86a..9050ad15 100644 --- a/ubuntu.pt.md +++ b/ubuntu.pt.md @@ -517,7 +517,7 @@ Você deverá ver uma versão. Se não, pergunte a um professor. Agora vamos instalar o Node.js: ```bash -nvm install 16.15.1 +nvm install 20.17.0 ``` Quando a instalação terminar, execute: @@ -526,7 +526,7 @@ Quando a instalação terminar, execute: node -v ``` -Se você vir `v16.15.1`, a instalação foi bem-sucedida :heavy_check_mark: Você pode então executar: +Se você vir `v20.17.0`, a instalação foi bem-sucedida :heavy_check_mark: Você pode então executar: ```bash nvm cache clear diff --git a/windows.cn.md b/windows.cn.md index dfbcdfdc..204d7b72 100644 --- a/windows.cn.md +++ b/windows.cn.md @@ -989,7 +989,7 @@ nvm -v 现在,让我们来安装node: ```bash -nvm install 16.15.1 +nvm install 20.17.0 ``` 当这个指令执行结束之后,运行: @@ -998,7 +998,7 @@ nvm install 16.15.1 node -v ``` -如果看到`v16.15.1`,那么你安装成功了:heavy_check_mark: 然后,你就可以运行下面这个命令了: +如果看到`v20.17.0`,那么你安装成功了:heavy_check_mark: 然后,你就可以运行下面这个命令了: ```bash nvm cache clear diff --git a/windows.es.md b/windows.es.md index 67643a85..8564e6c7 100644 --- a/windows.es.md +++ b/windows.es.md @@ -1014,7 +1014,7 @@ Deberías ver una versión. Si no, pídele ayuda a tu profesor. Ahora instala node: ```bash -nvm install 16.15.1 +nvm install 20.17.0 ``` Cuando termine la instalación, corre lo siguiente: @@ -1023,7 +1023,7 @@ Cuando termine la instalación, corre lo siguiente: node -v ``` -Si ves `v16.15.1`, the installation succeeded :heavy_check_mark: entonces ahora puedes ejecutar lo siguiente: +Si ves `v20.17.0`, the installation succeeded :heavy_check_mark: entonces ahora puedes ejecutar lo siguiente: ```bash nvm cache clear diff --git a/windows.fr.md b/windows.fr.md index 41dad643..559051a5 100644 --- a/windows.fr.md +++ b/windows.fr.md @@ -1014,7 +1014,7 @@ Tu devrais voir apparaître une version. Sinon, demande au prof. On va maintenant installer node : ```bash -nvm install 16.15.1 +nvm install 20.17.0 ``` Une fois l’installation terminée, exécute : @@ -1023,7 +1023,7 @@ Une fois l’installation terminée, exécute : node -v ``` -Si tu vois apparaître `v16.15.1`, l'installation a réussi :heavy_check_mark: Tu peux alors exécuter : +Si tu vois apparaître `v20.17.0`, l'installation a réussi :heavy_check_mark: Tu peux alors exécuter : ```bash nvm cache clear diff --git a/windows.md b/windows.md index f6c123b6..49903b8d 100644 --- a/windows.md +++ b/windows.md @@ -1076,7 +1076,7 @@ You should see a version. If not, ask a teacher. Now let's install node: ```bash -nvm install 16.15.1 +nvm install 20.17.0 ``` When the installation is finished, run: @@ -1085,7 +1085,7 @@ When the installation is finished, run: node -v ``` -If you see `v16.15.1`, the installation succeeded :heavy_check_mark: You can then run: +If you see `v20.17.0`, the installation succeeded :heavy_check_mark: You can then run: ```bash nvm cache clear diff --git a/windows.pt.md b/windows.pt.md index 308bb781..0b681738 100644 --- a/windows.pt.md +++ b/windows.pt.md @@ -1068,7 +1068,7 @@ Você deverá ver uma versão. Se não, pergunte a um professor. Agora vamos instalar o Node.js: ```bash -nvm install 16.15.1 +nvm install 20.17.0 ``` Quando a instalação terminar, execute: @@ -1077,7 +1077,7 @@ Quando a instalação terminar, execute: node -v ``` -Se você vir `v16.15.1`, a instalação foi bem-sucedida :heavy_check_mark: Você pode então executar: +Se você vir `v20.17.0`, a instalação foi bem-sucedida :heavy_check_mark: Você pode então executar: ```bash nvm cache clear From 0fcf9e701f33b0c29e6ce764b666ec868f6474c7 Mon Sep 17 00:00:00 2001 From: ElvisDot <43215015+ElvisDot@users.noreply.github.com> Date: Sun, 6 Oct 2024 22:14:31 +0800 Subject: [PATCH 05/47] Update to ruby 3.3.5 in check script (#477) --- check.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/check.rb b/check.rb index aa975b23..1a8c87d6 100644 --- a/check.rb +++ b/check.rb @@ -1,7 +1,7 @@ require "io/console" require "json" -REQUIRED_RUBY_VERSION = "3.1.2" +REQUIRED_RUBY_VERSION = "3.3.5" REQUIRED_GIT_VERSION = "2.0" REQUIRED_GEMS = %w[colored faker http pry-byebug rake rails rest-client rspec rubocop-performance sqlite3] MINIMUM_AVATAR_SIZE = 2 * 1024 From 3cf20feee2f5f37ce8fbffe1aad14303d7161849 Mon Sep 17 00:00:00 2001 From: ElvisDot <43215015+ElvisDot@users.noreply.github.com> Date: Mon, 14 Oct 2024 21:03:50 +0800 Subject: [PATCH 06/47] Version 3.3.5 does not end with p (#478) --- _partials/cn/ruby.md | 2 +- _partials/es/ruby.md | 2 +- _partials/fr/ruby.md | 2 +- _partials/pt/ruby.md | 2 +- _partials/ruby.md | 2 +- macos.cn.md | 2 +- macos.es.md | 2 +- macos.fr.md | 2 +- macos.md | 2 +- macos.pt.md | 2 +- ubuntu.cn.md | 2 +- ubuntu.es.md | 2 +- ubuntu.fr.md | 2 +- ubuntu.md | 2 +- ubuntu.pt.md | 2 +- windows.cn.md | 2 +- windows.es.md | 2 +- windows.fr.md | 2 +- windows.md | 2 +- windows.pt.md | 2 +- 20 files changed, 20 insertions(+), 20 deletions(-) diff --git a/_partials/cn/ruby.md b/_partials/cn/ruby.md index 4e4c4e3e..e0671a29 100644 --- a/_partials/cn/ruby.md +++ b/_partials/cn/ruby.md @@ -23,7 +23,7 @@ exec zsh ruby -v ``` -:heavy_check_mark: 如果你有看到`ruby p`,那么你可以继续下一步+1: +:heavy_check_mark: 如果你有看到`ruby `,那么你可以继续下一步+1: :x: 如果没有的话,**询问一下老师**。 diff --git a/_partials/es/ruby.md b/_partials/es/ruby.md index edc414fc..537a93cd 100644 --- a/_partials/es/ruby.md +++ b/_partials/es/ruby.md @@ -28,7 +28,7 @@ Luego ejecuta esto: ruby -v ``` -:heavy_check_mark: Si ves algo que comience por `ruby p`, entonces puedes continuar +1: +:heavy_check_mark: Si ves algo que comience por `ruby `, entonces puedes continuar +1: :x: Si no es el caso, **pídele ayuda a un profesor**. diff --git a/_partials/fr/ruby.md b/_partials/fr/ruby.md index bc2c927f..98a5a915 100644 --- a/_partials/fr/ruby.md +++ b/_partials/fr/ruby.md @@ -29,7 +29,7 @@ Puis exécute : ruby -v ``` -:heavy_check_mark: Si tu vois apparaître un message commençant par `ruby p`, tu peux continuer :+1: +:heavy_check_mark: Si tu vois apparaître un message commençant par `ruby `, tu peux continuer :+1: :x: Sinon, **demande au prof** diff --git a/_partials/pt/ruby.md b/_partials/pt/ruby.md index f5da83fd..26aecbb5 100644 --- a/_partials/pt/ruby.md +++ b/_partials/pt/ruby.md @@ -29,7 +29,7 @@ Então corra: ruby -v ``` -:heavy_check_mark: Se você vir algo começando com `ruby p` então você pode prosseguir :+1: +:heavy_check_mark: Se você vir algo começando com `ruby ` então você pode prosseguir :+1: :x: Se não, **pergunte a um professor** diff --git a/_partials/ruby.md b/_partials/ruby.md index 3e9668e0..26206ecd 100644 --- a/_partials/ruby.md +++ b/_partials/ruby.md @@ -29,7 +29,7 @@ Then run: ruby -v ``` -:heavy_check_mark: If you see something starting with `ruby p` then you can proceed :+1: +:heavy_check_mark: If you see something starting with `ruby ` then you can proceed :+1: :x: If not, **ask a teacher** diff --git a/macos.cn.md b/macos.cn.md index 847ec35f..93343921 100644 --- a/macos.cn.md +++ b/macos.cn.md @@ -402,7 +402,7 @@ exec zsh ruby -v ``` -:heavy_check_mark: 如果你有看到`ruby 3.3.5p`,那么你可以继续下一步+1: +:heavy_check_mark: 如果你有看到`ruby 3.3.5`,那么你可以继续下一步+1: :x: 如果没有的话,**询问一下老师**。 diff --git a/macos.es.md b/macos.es.md index a4b3b229..c23dccc0 100644 --- a/macos.es.md +++ b/macos.es.md @@ -427,7 +427,7 @@ Luego ejecuta esto: ruby -v ``` -:heavy_check_mark: Si ves algo que comience por `ruby 3.3.5p`, entonces puedes continuar +1: +:heavy_check_mark: Si ves algo que comience por `ruby 3.3.5`, entonces puedes continuar +1: :x: Si no es el caso, **pídele ayuda a un profesor**. diff --git a/macos.fr.md b/macos.fr.md index e3060afa..40a6f5f8 100644 --- a/macos.fr.md +++ b/macos.fr.md @@ -424,7 +424,7 @@ Puis exécute : ruby -v ``` -:heavy_check_mark: Si tu vois apparaître un message commençant par `ruby 3.3.5p`, tu peux continuer :+1: +:heavy_check_mark: Si tu vois apparaître un message commençant par `ruby 3.3.5`, tu peux continuer :+1: :x: Sinon, **demande au prof** diff --git a/macos.md b/macos.md index 8f353d1c..48f8ad24 100644 --- a/macos.md +++ b/macos.md @@ -467,7 +467,7 @@ Then run: ruby -v ``` -:heavy_check_mark: If you see something starting with `ruby 3.3.5p` then you can proceed :+1: +:heavy_check_mark: If you see something starting with `ruby 3.3.5` then you can proceed :+1: :x: If not, **ask a teacher** diff --git a/macos.pt.md b/macos.pt.md index d9531822..f5ae1f47 100644 --- a/macos.pt.md +++ b/macos.pt.md @@ -466,7 +466,7 @@ Então corra: ruby -v ``` -:heavy_check_mark: Se você vir algo começando com `ruby 3.3.5p` então você pode prosseguir :+1: +:heavy_check_mark: Se você vir algo começando com `ruby 3.3.5` então você pode prosseguir :+1: :x: Se não, **pergunte a um professor** diff --git a/ubuntu.cn.md b/ubuntu.cn.md index 13121b37..a1718f2b 100644 --- a/ubuntu.cn.md +++ b/ubuntu.cn.md @@ -378,7 +378,7 @@ exec zsh ruby -v ``` -:heavy_check_mark: 如果你有看到`ruby 3.3.5p`,那么你可以继续下一步+1: +:heavy_check_mark: 如果你有看到`ruby 3.3.5`,那么你可以继续下一步+1: :x: 如果没有的话,**询问一下老师**。 diff --git a/ubuntu.es.md b/ubuntu.es.md index 6b83457b..ba615650 100644 --- a/ubuntu.es.md +++ b/ubuntu.es.md @@ -401,7 +401,7 @@ Luego ejecuta esto: ruby -v ``` -:heavy_check_mark: Si ves algo que comience por `ruby 3.3.5p`, entonces puedes continuar +1: +:heavy_check_mark: Si ves algo que comience por `ruby 3.3.5`, entonces puedes continuar +1: :x: Si no es el caso, **pídele ayuda a un profesor**. diff --git a/ubuntu.fr.md b/ubuntu.fr.md index 137d2b17..8ad9c2a2 100644 --- a/ubuntu.fr.md +++ b/ubuntu.fr.md @@ -401,7 +401,7 @@ Puis exécute : ruby -v ``` -:heavy_check_mark: Si tu vois apparaître un message commençant par `ruby 3.3.5p`, tu peux continuer :+1: +:heavy_check_mark: Si tu vois apparaître un message commençant par `ruby 3.3.5`, tu peux continuer :+1: :x: Sinon, **demande au prof** diff --git a/ubuntu.md b/ubuntu.md index 87307891..ddbf0c56 100644 --- a/ubuntu.md +++ b/ubuntu.md @@ -441,7 +441,7 @@ Then run: ruby -v ``` -:heavy_check_mark: If you see something starting with `ruby 3.3.5p` then you can proceed :+1: +:heavy_check_mark: If you see something starting with `ruby 3.3.5` then you can proceed :+1: :x: If not, **ask a teacher** diff --git a/ubuntu.pt.md b/ubuntu.pt.md index 9050ad15..d9cee957 100644 --- a/ubuntu.pt.md +++ b/ubuntu.pt.md @@ -440,7 +440,7 @@ Então corra: ruby -v ``` -:heavy_check_mark: Se você vir algo começando com `ruby 3.3.5p` então você pode prosseguir :+1: +:heavy_check_mark: Se você vir algo começando com `ruby 3.3.5` então você pode prosseguir :+1: :x: Se não, **pergunte a um professor** diff --git a/windows.cn.md b/windows.cn.md index 204d7b72..924b6dbe 100644 --- a/windows.cn.md +++ b/windows.cn.md @@ -911,7 +911,7 @@ exec zsh ruby -v ``` -:heavy_check_mark: 如果你有看到`ruby 3.3.5p`,那么你可以继续下一步+1: +:heavy_check_mark: 如果你有看到`ruby 3.3.5`,那么你可以继续下一步+1: :x: 如果没有的话,**询问一下老师**。 diff --git a/windows.es.md b/windows.es.md index 8564e6c7..030ce444 100644 --- a/windows.es.md +++ b/windows.es.md @@ -934,7 +934,7 @@ Luego ejecuta esto: ruby -v ``` -:heavy_check_mark: Si ves algo que comience por `ruby 3.3.5p`, entonces puedes continuar +1: +:heavy_check_mark: Si ves algo que comience por `ruby 3.3.5`, entonces puedes continuar +1: :x: Si no es el caso, **pídele ayuda a un profesor**. diff --git a/windows.fr.md b/windows.fr.md index 559051a5..b698a6c9 100644 --- a/windows.fr.md +++ b/windows.fr.md @@ -934,7 +934,7 @@ Puis exécute : ruby -v ``` -:heavy_check_mark: Si tu vois apparaître un message commençant par `ruby 3.3.5p`, tu peux continuer :+1: +:heavy_check_mark: Si tu vois apparaître un message commençant par `ruby 3.3.5`, tu peux continuer :+1: :x: Sinon, **demande au prof** diff --git a/windows.md b/windows.md index 49903b8d..edbb3cb4 100644 --- a/windows.md +++ b/windows.md @@ -993,7 +993,7 @@ Then run: ruby -v ``` -:heavy_check_mark: If you see something starting with `ruby 3.3.5p` then you can proceed :+1: +:heavy_check_mark: If you see something starting with `ruby 3.3.5` then you can proceed :+1: :x: If not, **ask a teacher** diff --git a/windows.pt.md b/windows.pt.md index 0b681738..c5068e60 100644 --- a/windows.pt.md +++ b/windows.pt.md @@ -991,7 +991,7 @@ Então corra: ruby -v ``` -:heavy_check_mark: Se você vir algo começando com `ruby 3.3.5p` então você pode prosseguir :+1: +:heavy_check_mark: Se você vir algo começando com `ruby 3.3.5` então você pode prosseguir :+1: :x: Se não, **pergunte a um professor** From d5f165e311375df6a10cb9bad53b3a280bc2f86d Mon Sep 17 00:00:00 2001 From: ElvisDot <43215015+ElvisDot@users.noreply.github.com> Date: Mon, 14 Oct 2024 21:04:13 +0800 Subject: [PATCH 07/47] Change ruby-version to 3.3.5 (#479) --- .ruby-version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ruby-version b/.ruby-version index ef538c28..fa7adc7a 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.1.2 +3.3.5 From 8b65dc4ff9a7e56c10db300bae1c8d1fe20d45c8 Mon Sep 17 00:00:00 2001 From: Edward Schults Date: Mon, 20 Jan 2025 14:56:58 +0100 Subject: [PATCH 08/47] clarify kitt onboarding guidelines --- _partials/kitt.md | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/_partials/kitt.md b/_partials/kitt.md index a1a154b2..39908173 100644 --- a/_partials/kitt.md +++ b/_partials/kitt.md @@ -1,14 +1,8 @@ ## Kitt -:warning: If you have received an email from Le Wagon inviting you to sign up on Kitt (our learning platform), you can safely skip this step. Instead, please follow the instructions in the email you received if you haven't done so already. - -If you are unsure about what to do, you can follow [this link](https://kitt.lewagon.com/). If you are already logged in, you can safely skip this section. If you are not logged in, click on `Enter Kitt as a Student`. If you manage to login, you can safely skip this step. Otherwise ask a teacher whether you should have received an email or follow the instructions below. - -Register as a Wagon alumni by going to [kitt.lewagon.com/onboarding](http://kitt.lewagon.com/onboarding). Select your batch, sign in with GitHub and enter all your information. - -Your teacher will then validate that you are indeed part of the batch. You can ask them to do it as soon as you completed the registration form. - -Once the teacher has approved your profile, go to your email inbox. You should have 2 emails: +You should have received an email from Le Wagon inviting you to sign up on [Kitt](https://kitt.lewagon.com) (our learning platform). When submitting your onboarding form on Kitt, you should have received two additional invitations: - One from Slack, inviting you to the Le Wagon Alumni slack community (where you'll chat with your buddies and all the previous alumni). Click on **Join** and fill the information. - One from GitHub, inviting you to `lewagon` team. **Accept it** otherwise you won't be able to access the lecture slides. + +If you haven't, please contact your teaching team. From e43875127f62e368347db1d538a64f5bd79549d5 Mon Sep 17 00:00:00 2001 From: github-actions Date: Mon, 20 Jan 2025 13:57:10 +0000 Subject: [PATCH 09/47] setup guides generated --- macos.md | 12 +++--------- ubuntu.md | 12 +++--------- windows.md | 12 +++--------- 3 files changed, 9 insertions(+), 27 deletions(-) diff --git a/macos.md b/macos.md index 48f8ad24..646963f8 100644 --- a/macos.md +++ b/macos.md @@ -678,19 +678,13 @@ curl -Ls https://raw.githubusercontent.com/lewagon/setup/master/check.rb > _.rb ## Kitt -:warning: If you have received an email from Le Wagon inviting you to sign up on Kitt (our learning platform), you can safely skip this step. Instead, please follow the instructions in the email you received if you haven't done so already. - -If you are unsure about what to do, you can follow [this link](https://kitt.lewagon.com/). If you are already logged in, you can safely skip this section. If you are not logged in, click on `Enter Kitt as a Student`. If you manage to login, you can safely skip this step. Otherwise ask a teacher whether you should have received an email or follow the instructions below. - -Register as a Wagon alumni by going to [kitt.lewagon.com/onboarding](http://kitt.lewagon.com/onboarding). Select your batch, sign in with GitHub and enter all your information. - -Your teacher will then validate that you are indeed part of the batch. You can ask them to do it as soon as you completed the registration form. - -Once the teacher has approved your profile, go to your email inbox. You should have 2 emails: +You should have received an email from Le Wagon inviting you to sign up on [Kitt](https://kitt.lewagon.com) (our learning platform). When submitting your onboarding form on Kitt, you should have received two additional invitations: - One from Slack, inviting you to the Le Wagon Alumni slack community (where you'll chat with your buddies and all the previous alumni). Click on **Join** and fill the information. - One from GitHub, inviting you to `lewagon` team. **Accept it** otherwise you won't be able to access the lecture slides. +If you haven't, please contact your teaching team. + ## Slack diff --git a/ubuntu.md b/ubuntu.md index ddbf0c56..7b7aa487 100644 --- a/ubuntu.md +++ b/ubuntu.md @@ -631,19 +631,13 @@ curl -Ls https://raw.githubusercontent.com/lewagon/setup/master/check.rb > _.rb ## Kitt -:warning: If you have received an email from Le Wagon inviting you to sign up on Kitt (our learning platform), you can safely skip this step. Instead, please follow the instructions in the email you received if you haven't done so already. - -If you are unsure about what to do, you can follow [this link](https://kitt.lewagon.com/). If you are already logged in, you can safely skip this section. If you are not logged in, click on `Enter Kitt as a Student`. If you manage to login, you can safely skip this step. Otherwise ask a teacher whether you should have received an email or follow the instructions below. - -Register as a Wagon alumni by going to [kitt.lewagon.com/onboarding](http://kitt.lewagon.com/onboarding). Select your batch, sign in with GitHub and enter all your information. - -Your teacher will then validate that you are indeed part of the batch. You can ask them to do it as soon as you completed the registration form. - -Once the teacher has approved your profile, go to your email inbox. You should have 2 emails: +You should have received an email from Le Wagon inviting you to sign up on [Kitt](https://kitt.lewagon.com) (our learning platform). When submitting your onboarding form on Kitt, you should have received two additional invitations: - One from Slack, inviting you to the Le Wagon Alumni slack community (where you'll chat with your buddies and all the previous alumni). Click on **Join** and fill the information. - One from GitHub, inviting you to `lewagon` team. **Accept it** otherwise you won't be able to access the lecture slides. +If you haven't, please contact your teaching team. + ## Slack diff --git a/windows.md b/windows.md index edbb3cb4..cac0e40a 100644 --- a/windows.md +++ b/windows.md @@ -1209,19 +1209,13 @@ curl -Ls https://raw.githubusercontent.com/lewagon/setup/master/check.rb > _.rb ## Kitt -:warning: If you have received an email from Le Wagon inviting you to sign up on Kitt (our learning platform), you can safely skip this step. Instead, please follow the instructions in the email you received if you haven't done so already. - -If you are unsure about what to do, you can follow [this link](https://kitt.lewagon.com/). If you are already logged in, you can safely skip this section. If you are not logged in, click on `Enter Kitt as a Student`. If you manage to login, you can safely skip this step. Otherwise ask a teacher whether you should have received an email or follow the instructions below. - -Register as a Wagon alumni by going to [kitt.lewagon.com/onboarding](http://kitt.lewagon.com/onboarding). Select your batch, sign in with GitHub and enter all your information. - -Your teacher will then validate that you are indeed part of the batch. You can ask them to do it as soon as you completed the registration form. - -Once the teacher has approved your profile, go to your email inbox. You should have 2 emails: +You should have received an email from Le Wagon inviting you to sign up on [Kitt](https://kitt.lewagon.com) (our learning platform). When submitting your onboarding form on Kitt, you should have received two additional invitations: - One from Slack, inviting you to the Le Wagon Alumni slack community (where you'll chat with your buddies and all the previous alumni). Click on **Join** and fill the information. - One from GitHub, inviting you to `lewagon` team. **Accept it** otherwise you won't be able to access the lecture slides. +If you haven't, please contact your teaching team. + ## Slack From 5ec53db38ecd8606efc9848d63e9363b16619799 Mon Sep 17 00:00:00 2001 From: Jules van Rie <89742340+julesvanrie@users.noreply.github.com> Date: Mon, 7 Apr 2025 14:52:32 +0200 Subject: [PATCH 10/47] Align Windows 11 and 10 WSL installation (#483) * Align Windows 11 and 10 WSL installation Starting from Windows 10 2004 (May 2020 Update), WSL 2 is the default version of WSL. The instructions for installing WSL 2 are now the same for both Windows 10 and Windows 11. Adapted the instructions as such, to have a common installation process. This will: - make the setup easier for remaining Windows 10 users, - reduce the number of cases where Windows 11 users started following the Windows 10 instructions by mistake, - make it easier to maintain the instructions in the future, - make it easy to remove the Windows 10 instructions later. For this we now run `wsl --install` in the Windows Command Prompt (cmd) instead of Windows Terminal (wt, for Windows 11) or PowerShell (for Windows 10). For troubleshooting reasons, the instructions for Windows 10 < 2004 are kept in details, just in case. Adapted EN, FR, ES, PT. * GHA: Build guides on PR * GHA: Build guides on push on every branch * setup guides generated * Fine tune indentation for Windows 10 * setup guides generated * Revert changes to build workflow --------- Co-authored-by: github-actions --- _partials/es/windows_terminal.md | 6 +- _partials/es/windows_ubuntu.md | 35 +++++--- _partials/es/windows_version.md | 73 +++++++--------- _partials/es/windows_wsl.md | 25 +++--- _partials/fr/windows_terminal.md | 7 +- _partials/fr/windows_ubuntu.md | 33 +++++-- _partials/fr/windows_version.md | 72 +++++++--------- _partials/fr/windows_wsl.md | 27 +++--- _partials/pt/windows_terminal.md | 7 +- _partials/pt/windows_ubuntu.md | 28 ++++-- _partials/pt/windows_version.md | 75 +++++++--------- _partials/pt/windows_wsl.md | 25 +++--- _partials/windows_terminal.md | 11 ++- _partials/windows_ubuntu.md | 32 +++++-- _partials/windows_version.md | 73 +++++++--------- _partials/windows_wsl.md | 28 +++--- windows.es.md | 139 ++++++++++++++--------------- windows.fr.md | 139 +++++++++++++++-------------- windows.md | 144 ++++++++++++++++--------------- windows.pt.md | 135 +++++++++++++++-------------- 20 files changed, 578 insertions(+), 536 deletions(-) diff --git a/_partials/es/windows_terminal.md b/_partials/es/windows_terminal.md index b521e912..6a6f36c0 100644 --- a/_partials/es/windows_terminal.md +++ b/_partials/es/windows_terminal.md @@ -6,8 +6,10 @@ Si estás utilizando Windows 11, la terminal de Windows ya está instalada y puedes ir a la siguiente sección :point_down: +Si tienes Windows 10, instala la terminal de Windows. Verás que es una terminal moderna. -Si tienes Windows 10, instala la terminal de Windows. Verás que es una terminal moderna: +
+**Windows 10**: Instalar Windows Terminal - Haz clic en `Start` - Escribe `Microsoft Store` @@ -32,6 +34,8 @@ Si tienes Windows 10, instala la terminal de Windows. Verás que es una terminal Cuando termine la instalación, el botón `Install` se transformará en un botón `Launch`: haz clic en él. +
+ ### Ubuntu como terminal predeterminada Hagamos que Ubuntu sea la terminal predeterminada de tu aplicación Windows terminal. diff --git a/_partials/es/windows_ubuntu.md b/_partials/es/windows_ubuntu.md index d23a40fd..2981b48a 100644 --- a/_partials/es/windows_ubuntu.md +++ b/_partials/es/windows_ubuntu.md @@ -2,13 +2,13 @@ ### Instalación -:information_source: Las instrucciones que verás a continuación dependen de la versión de Windows que tengas. Por favor solo sigue las instrucciones que correspondan a tu versión de Windows :point_down: +Después de reiniciar tu computadora, deberías ver una ventana de terminal diciendo WSL está retomando el proceso de instalación de Ubuntu. Cuando termine, iniciará Ubuntu. -#### Windows 11 - -Si estás utilizando Windows 11, después de reiniciar tu computadora, deberías ver una ventana de terminal diciendo WSL está retomando el proceso de instalación de Ubuntu. Cuando termine, iniciará Ubuntu. +
+Solución de problemas para Windows 10 (solo si es necesario, consulta con un profesor) -#### Windows 10 +Si la instalación de Ubuntu no se reanudó, primero intenta nuevamente: abre Powershell o el Símbolo del sistema y ejecuta `wsl --install` otra vez. +
Si tienes Windows 10, instala la terminal de Windows por medio de la Microsoft Store: @@ -34,6 +34,8 @@ Si tienes Windows 10, instala la terminal de Windows por medio de la Microsoft S Cuando termine la instalación, el botón `Get` se transformará en un botón `Open`: Haz clic en él. + + ### Primer uso La primera vez que lo abras, te pedirán que: @@ -47,8 +49,6 @@ La primera vez que lo abras, te pedirán que: :warning: Cuando escribas tu contraseña no verás nada en la pantalla. **Esto es normal**. Es una herramienta de seguridad para ocultar tanto el contenido de tu contraseña como su longitud. Simplemente escribe tu contraseña y presiona `Enter` al terminar. -Ahora puedes cerrar la ventana de Ubuntu ya que está instalado en tu computadora. - ### Chequea la versión WSL de Ubuntu - Presiona `Windows` + `R` @@ -77,7 +77,6 @@ wsl -l -v :heavy_check_mark: Deberías obtener el siguiente mensaje en algunos segundos: `The conversion is complete`. Esto significa que la conversión ha sido completada. :x: Si no funciona, tendremos que asegurarnos de que los archivos de Ubuntu no estén comprimidos. -
Chequea si los archivos no están comprimidos @@ -96,7 +95,23 @@ wsl -l -v :x: Si la conversión aún no funciona, por favor **contacta a un profesor**.
-### Compruebe la locale +Ya puedes cerrar la ventana de la terminal. + + + +### Comprueba tu nombre de usuario + +Escribe esto en la terminal de Ubuntu: + +```bash +whoami +``` + +Debería devolver el nombre de usuario que elegiste anteriormente. + +:x: Si dice `root`, **contacta a un profesor** antes de continuar. + +### Comprueba la configuración regional (locale) La "locale" es un mecanismo que permite adaptar los programas a su idioma y país. @@ -125,5 +140,3 @@ sudo apt-get update sudo apt-get install language-pack-en language-pack-en-base manpages ``` - -Ya puedes cerrar la ventana de la terminal. diff --git a/_partials/es/windows_version.md b/_partials/es/windows_version.md index 8103fe96..243daf4a 100644 --- a/_partials/es/windows_version.md +++ b/_partials/es/windows_version.md @@ -11,62 +11,51 @@ Para chequear la versión de tu Windows: - Escribe `winver` - Presiona `Enter` -:heavy_check_mark: Si las primeras palabras de esta ventana son **Windows 10 o Windows 11**, entonces todo está bien y puedes continuar trabajando en la configuración :+1: +:heavy_check_mark: Si las primeras palabras de esta ventana son **Windows 11**, entonces todo está bien y puedes continuar trabajando en la configuración :+1: -:x: Si no es el caso, no puedes continuar. Primero debes actualizar tu versión a Windows 10 :point_down: +:heavy_check_mark: Si las primeras palabras de esta ventana son **Windows 10**, verifica el **número de la versión**: -
- Actualizar a Windows 10 +- :heavy_check_mark: Si dice al menos `2004`, entonces todo está bien :+1: - - Descarga Windows 10 desde [Microsoft](https://www.microsoft.com/software-download/windows10ISO) - - Instálalo. Debería tomar como una hora pero realmente depende de tu computadora. - - Cuando termine la instalación, ejecuta los comandos de aquí arriba :point_up: para chequear que tengas **Windows 10**. -
+- :x: Si es inferior a `2004`, debes actualizar tu versión. -:information_source: [La actualización de Windows 11 está en curso en este momento](https://www.microsoft.com/en-us/windows/get-windows-11). Esto significa que puede que esté o que aún no esté disponible para tu computadora. +-
+ Cómo instalar las últimas actualizaciones? -:warning: **Si tienes Windows 10 instalado, no necesitas actualizarlo a Windows 11 para hacer esta configuración**. - -### Últimas actualizaciones + Abre Windows Update: + - Presiona `Windows` + `R` + - Escribe `ms-settings:windowsupdate` + - Presiona `Enter` + - Haz clic en `Check updates` -Una vez que estés seguro de que estés usando Windows 10 o 11, instala las siguientes actualizaciones. + :heavy_check_mark: Si tienes una marca verde y el siguiente mensaje "You're up to date", entonces todo está bien :+1: -Abre Windows Update: -- Presiona `Windows` + `R` -- Escribe `ms-settings:windowsupdate` -- Presiona `Enter` -- Haz clic en `Check updates` + :warning: Si obtienes una exclamación roja y el siguiente mensaje "Update available", por favor instala las actualizaciones y repite el proceso hasta que diga que todo está actualizado :loop: -:heavy_check_mark: Si tienes una marca verde y el siguiente mensaje "You're up to date", entonces todo está bien :+1: + :x: Si obtienes un mensaje de error diciendo que Windows no puede aplicar las actualizaciones, por favor **contacta a un profesor**. -:warning: Si obtienes una exclamación roja y el siguiente mensaje "Update available", por favor instala las actualizaciones y repite el proceso hasta que diga que todo está actualizado :loop: +
+ Activa Windows Update Service para resolver las Actualizaciones -:x: Si obtienes un mensaje de error diciendo que Windows no puede aplicar las actualizaciones, por favor **contacta a un profesor**. + Algunos antivirus y programas deshabilitan las actualizaciones que necesitamos y luego se muestra un error. ¡Solucionemos esto! + - Presiona `Windows` + `R` + - Escribe `services.msc` + - Presiona `Enter` + - Haz doble clic en `Windows Update Service` + - Coloca su `Startup` en `Automatic` + - Haz clic en `Start` + - Haz clic en `Ok` + ¡Ahora intenta instalar las actualizaciones nuevamente! +
-
- Activa Windows Update Service para resolver las Actualizaciones + Verifica el número de la versión: - Algunos antivirus y programas deshabilitan las actualizaciones que necesitamos y luego se muestra un error. ¡Solucionemos esto! - Presiona `Windows` + `R` - - Escribe `services.msc` + - Escribe `winver` - Presiona `Enter` - - Haz doble clic en `Windows Update Service` - - Coloca su `Startup` en `Automatic` - - Haz clic en `Start` - - Haz clic en `Ok` - ¡Ahora intenta instalar las actualizaciones nuevamente! -
- -### Requisito mínimo para la versión - -Algunas de las herramientas que necesitamos han salido con la versión `1903` **o superior** de Windows 10, así que necesitamos asegurarnos de que al menos tengamos esa. - -- Presiona `Windows` + `R` -- Escribe `winver` -- Presiona `Enter` -Verifica el **número de la versión**: + :heavy_check_mark: Si dice al menos `2004`, entonces todo está bien :+1: -:heavy_check_mark: Si dice al menos `1903`, entonces todo está bien :+1: + :x: Si es inferior a `2004`, por favor **contacta a un profesor**. -:x: Si es inferior a `1903`, por favor **contacta a un profesor**. +
diff --git a/_partials/es/windows_wsl.md b/_partials/es/windows_wsl.md index 2c938a20..c5230f2f 100644 --- a/_partials/es/windows_wsl.md +++ b/_partials/es/windows_wsl.md @@ -2,21 +2,17 @@ WSL es el ambiente de entorno que estamos usando para usar Ubuntu. Puedes aprender más sobre WSL [aquí](https://docs.microsoft.com/en-us/windows/wsl/faq). -:information_source: Las instrucciones que verás a continuación dependen de la versión de Windows que tengas. Por favor ejecuta solamente las instrucciones que correspondan a tu versión :point_down: +Instalaremos WSL 2 y Ubuntu con un comando a través de la Windows Command Prompt. -### Windows 11 - -Si usas Windows 11, instalaremos WSL 2 y Ubuntu con un comando a través de la terminal de Windows. - -:warning: en esta instrucción, utiliza el atajo `Ctrl` + `Shift` + `Enter` para usar la **terminal de Windows** con privilegios de administrador en lugar de simplemente hacer clic en `Ok` o presionar `Enter`. +:warning: en esta instrucción, utiliza el atajo `Ctrl` + `Shift` + `Enter` para usar la **Windows Command Prompt** con privilegios de administrador en lugar de simplemente hacer clic en `Ok` o presionar `Enter`. - Presiona `Windows` + `R` -- Escribe `wt` +- Escribe `cmd` - Presiona **`Ctrl` + `Shift` + `Enter`** :warning: tal vez tengas que aceptar la confirmación UAC sobre el cambio en los privilegios. -Un ventana de terminal azul aparecerá: +Un ventana de terminal aparecerá: - Copia el siguiente comando (`Ctrl` + `C`) - Pégalo en la ventana de la terminal (`Ctrl` + `V` o haciendo clic derecho en la ventana) - Ejecútalo presionado `Enter` @@ -29,11 +25,10 @@ wsl --install :x: Si obtienes un mensaje de error (o si ves algún texto en rojo en la ventana), por favor **contacta a un profesor** -### Windows 10 - -#### Instalación de WSL 1 +
+Solución de problemas para Windows 10 (solo si es necesario, consulta con un profesor) -Si tienes Windows 10, primero instalaremos WSL 1 por medio de la Terminal de PowerShell. +#### Para Windows 10 < 2004: instala primero WSL 1 :warning: en esta instrucción, utiliza el atajo `Ctrl` + `Shift` + `Enter` para usar **Windows PowerShell** con privilegios de administrador en lugar de hacer clic en `Ok` o presionar `Enter`. @@ -64,7 +59,7 @@ dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /nores :x: Si obtienes un mensaje de error (o si ves algún texto en rojo en la ventada), por favor **contacta a un profesor** -#### Actualización a WSL 2 +#### Para Windows 10 con WSL 1: Actualización a WSL 2 Si tienes Windows 10, actualizaremos WSL a la versión 2. @@ -82,7 +77,7 @@ Cuando se reinicie tu computadora, descarga el instalador de WSL2. :x: Si obtienes el siguiente error "This update only applies to machines with the Windows Subsystem for Linux", **haz clic derecho** en el programa y selecciona `uninstall`; esta vez deberías poder instalarlo sin problemas. -#### Coloca WSL 2 como el Subsistema Windows por defecto para Linux +#### Para Windows 10 con WSL 1: Coloca WSL 2 como el Subsistema Windows por defecto para Linux Si tienes Windows 10, pondremos la versión predeterminada de WSL en 2. @@ -114,3 +109,5 @@ wsl --set-default-version 2 :information_source: Si tienes Windows 10 **Home edition**, la feature Hyper-V no está disponible para su sistema operativo. No es un bloqueo y puedes continuar con las siguientes instrucciones aquí abajo :ok_hand:
+ + diff --git a/_partials/fr/windows_terminal.md b/_partials/fr/windows_terminal.md index 47342319..84ade98e 100644 --- a/_partials/fr/windows_terminal.md +++ b/_partials/fr/windows_terminal.md @@ -6,7 +6,10 @@ Si tu as Windows 11, le Windows Terminal est déjà installé et tu peux passer à la section suivante :point_down: -Si tu as Windows 10, nous allons installer le Windows Terminal, un terminal vraiment moderne : +Si tu as Windows 10, nous allons installer le Windows Terminal, un terminal vraiment moderne. + +
+Windows 10: Installer le Windows Terminal - Clique sur `Démarrer` - Saisis `Microsoft Store` @@ -31,6 +34,8 @@ Si tu as Windows 10, nous allons installer le Windows Terminal, un terminal vrai Une fois l’installation terminée, le bouton « Installer » se transforme en bouton « Lancer » ; clique dessus. +
+ ### Définir Ubuntu comme terminal par défaut On va définir Ubuntu comme terminal par défaut de ton application Windows Terminal. diff --git a/_partials/fr/windows_ubuntu.md b/_partials/fr/windows_ubuntu.md index 7e69acfb..c11112a0 100644 --- a/_partials/fr/windows_ubuntu.md +++ b/_partials/fr/windows_ubuntu.md @@ -2,13 +2,12 @@ ### Installation -:information_source: Les instructions suivantes dépendent de ta version de Windows. N'exécute que les instructions qui correspondent à ta version :point_down: - -#### Windows 11 - Si tu as Windows 11, après avoir redémarré ton ordinateur, tu devrais voir une fenêtre de terminal indiquant que WSL poursuit le processus d'installation d'Ubuntu. Lorsque c'est terminé, Ubuntu va se lancer. -#### Windows 10 +
+Résolution des problèmes pour Windows 10 (uniquement si nécessaire, vérifie avec un TA) + +Si l'installation d'Ubuntu ne reprend pas, essaye d'abord à nouveau : relance Powershell ou l'Invite de commandes et exécute la commande `wsl --install` une nouvelle fois. Si tu as Windows 10, installons Ubuntu via le Microsoft Store : @@ -34,6 +33,8 @@ Si tu as Windows 10, installons Ubuntu via le Microsoft Store : Une fois l’installation terminée, le bouton « Installer » se transforme en bouton « Lancer » ; clique dessus. +
+ ### Premier lancement Au premier lancement, on te demandera de fournir des informations : @@ -77,7 +78,6 @@ wsl -l -v :heavy_check_mark: Au bout de quelques secondes, tu devrais voir apparaître le message suivant : `The conversion is complete`. :x: Si ce n’est pas le cas, il faut vérifier que les fichiers Ubuntu ne sont pas compressés. -
Vérifier que les fichiers sont décompressés @@ -96,11 +96,28 @@ wsl -l -v :x: Si la conversion ne fonctionne pas, **demande au prof**.
+Tu peux maintenant fermer cette fenêtre de terminal. + + + +### Vérifier ton nom d'utilisateur + +Tape cette commande dans le terminal Ubuntu : + +```bash +whoami +``` + +Cela devrait renvoyer le nom d'utilisateur que tu as choisi précédemment. + +:x: Si cela affiche `root`, **contacte un TA** avant de continuer ! + + ### Vérifier la locale Le concept e "locale" permert de personnaliser les programms en fonction de ta langue et ton pays. -Vérifions que la locale est bien en **anglais** ans le terminal : +Vérifions que la locale est bien en **anglais** dans le terminal : ```bash locale @@ -125,5 +142,3 @@ sudo apt-get update sudo apt-get install language-pack-en language-pack-en-base manpages ``` - -Tu peux maintenant fermer cette fenêtre de terminal. diff --git a/_partials/fr/windows_version.md b/_partials/fr/windows_version.md index a26ad2ad..3af635ca 100644 --- a/_partials/fr/windows_version.md +++ b/_partials/fr/windows_version.md @@ -11,62 +11,52 @@ Pour connaître ta version de Windows : - Saisis `winver` - Appuie sur `Enter` -:heavy_check_mark: Si les premiers mots qui apparaissent dans cette fenêtre sont **Windows 10 ou Windows 11**, c’est bon :+1: +:heavy_check_mark: Si les premiers mots qui apparaissent dans cette fenêtre sont **Windows 11**, c’est bon :+1: -:x: Sinon, tu ne pourras pas utiliser cette configuration. Il faut que tu mettes à jour ton Windows à la version 10 :point_down: +Si les premiers mots qui apparaissent dans cette fenêtre sont **Windows 10**, vérifie le numéro de version: -
- Mise à niveau vers Windows 10 +- :heavy_check_mark: Si la version indique au moins `2004`, c’est bon :+1: - - Télécharge Windows 10 depuis [Microsoft](https://www.microsoft.com/fr-fr/software-download/windows10) - - Installe-le. L’installation devrait prendre une heure environ, mais cela dépend de ton ordinateur - - Une fois l’installation terminée, exécute les commandes ci-dessus pour vérifier que tu es sous **Windows 10** -
+- :x: Sinon, il faut que tu mettes à jour ton Windows. -:information_source: [La mise à jour Windows 11 est toujours en cours de déploiement](https://www.microsoft.com/en-us/windows/get-windows-11), ce qui signifie qu'elle peut être disponible, ou pas, pour ton ordinateur. +-
+ Comment installer les dernières mises à jour -:warning: **Si tu as Windows 10 installé, tu n'as pas besoin de faire la mise à jour Windows 11 pour continuer cette configuration**. - -### Dernières mises à jour + Ouvre Windows Update : + - Appuie sur `Windows` + `R` + - Saisis `ms-settings:windowsupdate` + - Appuie sur `Enter` + - Clique sur « Rechercher les mises à jour » -Une fois que tu as vérifié que tu utilises Windows 10 ou 11, tu vas devoir installer les dernières mises à jour. + :heavy_check_mark: Si tu vois apparaître une coche verte et le message « Vous êtes à jour », c’est bon :+1: -Ouvre Windows Update : -- Appuie sur `Windows` + `R` -- Saisis `ms-settings:windowsupdate` -- Appuie sur `Enter` -- Clique sur « Rechercher les mises à jour » + :warning: Si tu vois apparaître un point d’exclamation rouge et le message « Mise à jour disponible », installe-la et recommence jusqu’à ce que le message « Vous êtes à jour » apparaisse :loop: -:heavy_check_mark: Si tu vois apparaître une coche verte et le message « Vous êtes à jour », c’est bon :+1: + :x: Si tu vois apparaître un message d’erreur indiquant que Windows ne peut pas appliquer les mises à jour, **demande au prof**. -:warning: Si tu vois apparaître un point d’exclamation rouge et le message « Mise à jour disponible », installe-la et recommence jusqu’à ce que le message « Vous êtes à jour » apparaisse :loop: +
+ Activer le service Windows Update pour corriger les mises à jour -:x: Si tu vois apparaître un message d’erreur indiquant que Windows ne peut pas appliquer les mises à jour, **demande au prof**. + Certains antivirus et logiciels désactivent le service de mise à jour dont on a besoin, entraînant l’erreur que tu vois apparaître. On va corriger ça ! + - Appuie sur `Windows` + `R` + - Saisis `services.msc` + - Appuie sur `Enter` + - Double-clique sur `Windows Update Service` + - Définis `Startup` sur `Automatic` + - Clique sur `Start` + - Clique sur `Ok` + On va maintenant réessayer d’effectuer les mises à jour. +
-
- Activer le service Windows Update pour corriger les mises à jour + Vérifie le numéro de version : - Certains antivirus et logiciels désactivent le service de mise à jour dont on a besoin, entraînant l’erreur que tu vois apparaître. On va corriger ça ! - Appuie sur `Windows` + `R` - - Saisis `services.msc` + - Saisis `winver` - Appuie sur `Enter` - - Double-clique sur `Windows Update Service` - - Définis `Startup` sur `Automatic` - - Clique sur `Start` - - Clique sur `Ok` - On va maintenant réessayer d’effectuer les mises à jour. -
-### Version minimum - -Certains des outils qu’on doit installer sont compatibles avec la version `1903` **ou une version ultérieure** de Windows 10 ; on doit donc vérifier que tu as bien cette version au minimum. - -- Appuie sur `Windows` + `R` -- Saisis `winver` -- Appuie sur `Enter` -Vérifie le **numéro de version** : + :heavy_check_mark: Si la version indique au moins `1903`, c’est bon :+1: -:heavy_check_mark: Si la version indique au moins `1903`, c’est bon :+1: + :x: S’il s’agit d’une version antérieure, **demande au prof**. -:x: S’il s’agit d’une version antérieure, **demande au prof**. +
diff --git a/_partials/fr/windows_wsl.md b/_partials/fr/windows_wsl.md index 691b8934..b6a1ab73 100644 --- a/_partials/fr/windows_wsl.md +++ b/_partials/fr/windows_wsl.md @@ -2,21 +2,17 @@ WSL est l’environnement de développement que l’on utilise pour exécuter Ubuntu. Pour en savoir plus sur WSL, [consulte cette page](https://docs.microsoft.com/fr-fr/windows/wsl/faq). -:information_source: Les instructions suivantes dépendent de ta version de Windows. Exécute uniquement les instructions qui correspondent à ta version :point_down: +Nous allons installer WSL 2 et Ubuntu en une seule commande via le Windows Command Prompt. -### Windows 11 - -Si tu as Windows 11, nous allons installer WSL 2 et Ubuntu en une seule commande via le Windows Terminal. - -:warning: Dans les instructions suivantes, utilise la combinaison de touches `Ctrl` + `Shift` + `Enter` pour exécuter **Windows Terminal** en tant qu’administrateur au lieu de cliquer simplement sur `Ok` ou d’appuyer sur `Enter`. +:warning: Dans les instructions suivantes, utilise la combinaison de touches `Ctrl` + `Shift` + `Enter` pour exécuter **Windows Command Prompt** en tant qu’administrateur au lieu de cliquer simplement sur `Ok` ou d’appuyer sur `Enter`. - Appuie sur `Windows` + `R` -- Saisis `wt` +- Saisis `cmd` - Appuie sur **`Ctrl` + `Shift` + `Enter`** :warning: Tu devras peut-être accepter la confirmation UAC concernant l’octroi des droits d’administrateur. -Une fenêtre de terminal bleue apparaîtra : +Une fenêtre de terminal apparaîtra : - Copie la commande suivante (`Ctrl` + `C`) - Colle-la dans la fenêtre du terminal (`Ctrl` + `V` ou en faisant un clic droit dans la fenêtre) - Exécute-les en appuyant sur `Enter` @@ -27,13 +23,12 @@ wsl --install :heavy_check_mark: Si la commande s’exécute sans erreur, redémarre ton ordinateur et suis les instructions ci-dessous :+1: -:x: Si tu obtiens un message d’erreur (ou si tu vois apparaître du texte en rouge dans la fenêtre), **demande au prof** +:x: Si tu obtiens un message d’erreur (ou si tu vois apparaître du texte en rouge dans la fenêtre), **demande au prof**. -### Windows 10 - -#### Installer WSL 1 +
+Dépannage pour Windows 10 (uniquement si nécessaire, vérifie avec un professeur) -Si tu as Windows 10, on va d'abord installer WSL 1 à partir du terminal PowerShell. +#### Pour Windows 10 < 2004 : installer d'abord WSL 1 :warning: Dans les instructions suivantes, utilise la combinaison de touches `Ctrl` + `Shift` + `Enter` pour exécuter **Windows PowerShell** en tant qu’administrateur au lieu de cliquer simplement sur `Ok` ou d’appuyer sur `Enter`. @@ -64,7 +59,7 @@ dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /nores :x: Si tu obtiens un message d’erreur (ou si tu vois apparaître du texte en rouge dans la fenêtre), **demande au prof** -#### Mise à niveau vers WSL 2 +#### Pour Windows 10 avec WSL 1 : Mise à niveau vers WSL 2 Si tu as Windows 10, on va maintenant mettre à jour WSL à la version 2. @@ -82,7 +77,7 @@ Une fois que ton ordinateur a redémarré, on doit télécharger le programme d :x: Si tu obtiens l’erreur « Cette mise à jour s’applique seulement aux machines avec le sous-système Windows pour Linux », **fais un clic droit** sur le programme et sélectionne `uninstall` ; tu devrais pouvoir l’installer normalement cette fois-ci. -#### Définir WSL 2 comme sous-système Windows pour Linux par défaut +#### Pour Windows 10 avec WSL 1 : Définir WSL 2 comme sous-système Windows pour Linux par défaut Si tu as Windows 10, on va enfin définir la version 2 de WSL comme étant la version par défaut. @@ -114,3 +109,5 @@ wsl --set-default-version 2 :information_source: Si tu as Windows 10 **Home edition**, la fonction Hyper-V n'est pas disponible sur ton système d'exploitation. Ce n'est pas bloquant et tu peux continuer à suivre les instructions ci-dessous :ok_hand:
+ + diff --git a/_partials/pt/windows_terminal.md b/_partials/pt/windows_terminal.md index 700491d7..6678ad28 100644 --- a/_partials/pt/windows_terminal.md +++ b/_partials/pt/windows_terminal.md @@ -6,7 +6,10 @@ Se você estiver executando o Windows 11, o Terminal do Windows já está instalado e você pode prosseguir para a próxima seção :point_down: -Se você estiver executando o Windows 10, vamos instalar o Windows Terminal, um terminal realmente moderno: +Se você estiver executando o Windows 10, vamos instalar o Windows Terminal, um terminal realmente moderno. + +
+Windows 10: Instalar Windows Terminal - Clique em `Iniciar` - Digite `Microsoft Store` @@ -31,6 +34,8 @@ Se você estiver executando o Windows 10, vamos instalar o Windows Terminal, um Assim que a instalação for concluída, o botão `Instalar` se torna um botão `Iniciar`: clique nele. +
+ ### Ubuntu como terminal padrão Vamos tornar o Ubuntu o terminal padrão do seu aplicativo Windows Terminal. diff --git a/_partials/pt/windows_ubuntu.md b/_partials/pt/windows_ubuntu.md index 59f44724..0b8955f4 100644 --- a/_partials/pt/windows_ubuntu.md +++ b/_partials/pt/windows_ubuntu.md @@ -2,13 +2,12 @@ ### Instalação -:information_source: As instruções a seguir dependem da sua versão do Windows. Por favor, execute apenas as instruções correspondentes à sua versão :point_down: +Após reiniciar o computador, você deverá ver uma janela de terminal informando que o WSL está retomando o processo de instalação do Ubuntu. Quando terminar, o Ubuntu será lançado. -#### Windows 11 - -Se você estiver executando o Windows 11, após reiniciar o computador, você deverá ver uma janela de terminal informando que o WSL está retomando o processo de instalação do Ubuntu. Quando terminar, o Ubuntu será lançado. +
+Solução de problemas para Windows 10 (apenas se necessário, consulte um TA) -#### Windows 10 +Se a instalação do Ubuntu não foi retomada, tente novamente: abra o Powershell ou o Prompt de Comando e execute `wsl --install` novamente. Se você estiver executando o Windows 10, vamos instalar o Ubuntu através da Microsoft Store: @@ -96,6 +95,23 @@ wsl -l -v :x: Se a conversão ainda não funcionar, por favor **entre em contato com um professor**.
+Agora você pode fechar esta janela do terminal. + + + +### Check your username + +Type this in the Ubuntu terminal: + +```bash +whoami +``` + +It should return the username you chose before. + +:x: It if says `root`, **contact a TA** before continuing! + + ### Verifique a localidade A localidade é um mecanismo que permite personalizar programas de acordo com seu idioma e país. @@ -125,5 +141,3 @@ sudo apt-get update sudo apt-get install language-pack-en language-pack-en-base manpages ``` - -Agora você pode fechar esta janela do terminal. diff --git a/_partials/pt/windows_version.md b/_partials/pt/windows_version.md index 543f2377..db41920f 100644 --- a/_partials/pt/windows_version.md +++ b/_partials/pt/windows_version.md @@ -11,62 +11,51 @@ Para verificar sua versão do Windows: - Digite `winver` - Pressione `Enter` -:heavy_check_mark: Se as primeiras palavras desta janela forem **Windows 10 ou Windows 11** você está pronto para prosseguir :+1: +:heavy_check_mark: Se as primeiras palavras desta janela forem **Windows 11** você está pronto para prosseguir :+1: -:x: Caso contrário, você não poderá prosseguir com esta configuração. Você precisa atualizar para o Windows 10 primeiro :point_down: +- :heavy_check_mark: Se as primeiras palavras desta janela forem **Windows 10**, verifique o **Número da versão**:: -
- Atualizar para o Windows 10 +- :x: Caso contrário, você não poderá prosseguir com esta configuração. Você precisa atualizar. - - Baixe o Windows 10 da [Microsoft](https://www.microsoft.com/software-download/windows10ISO) - - Instale-o. Deve demorar cerca de uma hora, mas isso depende do seu computador. - - Quando a instalação terminar, execute os comandos acima :point_up: para verificar se você agora tem o **Windows 10**. -
+-
+ Como instalar as últimas atualizações? -:information_source: [A atualização do Windows 11 está sendo lançada agora](https://www.microsoft.com/en-us/windows/get-windows-11), o que significa que ela pode ou não estar disponível para o seu computador ainda . + Abra a atualização do Windows: + - Pressione `Windows` + `R` + - Digite `ms-settings:windowsupdate` + - Pressione `Enter` + - Clique em `Verificar atualizações` -:warning: **Se você tiver o Windows 10 instalado, não será necessário atualizar para o Windows 11 para prosseguir com esta configuração**. + :heavy_check_mark: Se você vir uma marca de seleção verde e a mensagem "Você está atualizado", você está pronto para prosseguir :+1: -### Ultimas atualizações + :warning: Se você tiver um ponto de exclamação vermelho e a mensagem "Atualização disponível", instale-os e repita o processo até que apareça que você está atualizado :loop: -Quando tiver certeza de que está usando o Windows 10 ou 11, você precisará instalar todas as atualizações mais recentes. + :x: Se você receber uma mensagem de erro sobre o Windows não conseguir aplicar atualizações, **entre em contato com um professor**. -Abra a atualização do Windows: -- Pressione `Windows` + `R` -- Digite `ms-settings:windowsupdate` -- Pressione `Enter` -- Clique em `Verificar atualizações` - -:heavy_check_mark: Se você vir uma marca de seleção verde e a mensagem "Você está atualizado", você está pronto para prosseguir :+1: - -:warning: Se você tiver um ponto de exclamação vermelho e a mensagem "Atualização disponível", instale-os e repita o processo até que apareça que você está atualizado :loop: +
+ Ative o Windows Update Service para corrigir atualizações -:x: Se você receber uma mensagem de erro sobre o Windows não conseguir aplicar atualizações, **entre em contato com um professor**. + Alguns antivírus e softwares desativam o serviço de atualização de que precisamos, resultando no erro que você vê. Vamos consertar isso! + - Pressione `Windows` + `R` + - Digite `services.msc` + - Pressione `Enter` + - Clique duas vezes em `Serviço de atualização do Windows` + - Defina sua `Inicialização` para `Automático` + - Clique em `Iniciar` + - Clique em `Ok` + Então vamos tentar as atualizações novamente! +
-
- Ative o Windows Update Service para corrigir atualizações - Alguns antivírus e softwares desativam o serviço de atualização de que precisamos, resultando no erro que você vê. Vamos consertar isso! - - Pressione `Windows` + `R` - - Digite `services.msc` - - Pressione `Enter` - - Clique duas vezes em `Serviço de atualização do Windows` - - Defina sua `Inicialização` para `Automático` - - Clique em `Iniciar` - - Clique em `Ok` - Então vamos tentar as atualizações novamente! -
+ Verifique o Número da versão: -### Versão mínima + - Pressione `Windows` + `R` + - Digite `winver` + - Pressione `Enter` -Algumas das ferramentas que precisamos instalar foram lançadas com a versão `1903` **ou superior** do Windows 10, então precisamos ter certeza de que você tem pelo menos esta. - -- Pressione `Windows` + `R` -- Digite `winver` -- Pressione `Enter` -Verifique o **Número da versão**: + :heavy_check_mark: Se disser pelo menos `2004`, você está pronto :+1: -:heavy_check_mark: Se disser pelo menos `1903`, você está pronto :+1: + :x: Se estiver abaixo de `22004`, por favor **entre em contato com um professor**. -:x: Se estiver abaixo de `1903`, por favor **entre em contato com um professor**. +
diff --git a/_partials/pt/windows_wsl.md b/_partials/pt/windows_wsl.md index 2a4214ef..cf411da2 100644 --- a/_partials/pt/windows_wsl.md +++ b/_partials/pt/windows_wsl.md @@ -2,21 +2,17 @@ WSL é o ambiente de desenvolvimento que usamos para executar o Ubuntu. Você pode aprender mais sobre WSL [aqui](https://docs.microsoft.com/en-us/windows/wsl/faq). -:information_source: As instruções a seguir dependem da sua versão do Windows. Por favor, execute apenas as instruções correspondentes à sua versão :point_down: +Instalaremos o WSL 2 e o Ubuntu em um comando através do Windows Command Prompt. -### Windows 11 - -Se você estiver executando o Windows 11, instalaremos o WSL 2 e o Ubuntu em um comando através do Terminal do Windows. - -:warning: Nas instruções a seguir, esteja ciente do pressionamento de tecla `Ctrl` + `Shift` + `Enter` para executar o **Terminal Windows** com privilégios de administrador em vez de apenas clicar em `Ok` ou pressionar `Enter` . +:warning: Nas instruções a seguir, esteja ciente do pressionamento de tecla `Ctrl` + `Shift` + `Enter` para executar o **Windows Command Prompt** com privilégios de administrador em vez de apenas clicar em `Ok` ou pressionar `Enter` . - Pressione `Windows` + `R` -- Digite `wt` +- Digite `cmd` - Pressione **`Ctrl` + `Shift` + `Enter`** :warning: Você pode ter que aceitar a confirmação do UAC sobre a elevação de privilégio. -Uma janela de terminal azul aparecerá: +Uma janela de terminal aparecerá: - Copie o seguinte comando (`Ctrl` + `C`) - Cole-o na janela do terminal (`Ctrl` + `V` ou clicando com o botão direito na janela) - Execute-o pressionando `Enter` @@ -29,11 +25,10 @@ wsl --install :x: Se você encontrar uma mensagem de erro (ou se vir algum texto em vermelho na janela), por favor **entre em contato com um professor** -### Windows 10 - -#### Instale o WSL 1 +
+Solução de problemas para Windows 10 (apenas se necessário, consulte um professor) -Se você estiver executando o Windows 10, primeiro instalaremos o WSL 1 por meio do Terminal PowerShell. +#### Para Windows 10 < 2004: instale o WSL 1 primeiro :warning: Nas instruções a seguir, esteja ciente do pressionamento de tecla `Ctrl` + `Shift` + `Enter` para executar o **Windows PowerShell** com privilégios de administrador em vez de apenas clicar em `Ok` ou pressionar `Enter` . @@ -64,7 +59,7 @@ dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /nores :x: Se você encontrar uma mensagem de erro (ou se vir algum texto em vermelho na janela), por favor **entre em contato com um professor** -#### Atualizar para WSL 2 +#### Para Windows 10 com WSL 1: Atualizar para WSL 2 Se você estiver executando o Windows 10, atualizaremos o WSL para a versão 2. @@ -82,7 +77,7 @@ Assim que o computador for reiniciado, precisamos baixar o instalador WSL2. :x: Se você encontrar o erro "Esta atualização se aplica apenas a máquinas com o subsistema Windows para Linux", **clique com o botão direito** no programa e selecione `uninstall`; você poderá instalá-lo normalmente desta vez. -#### Torne o WSL 2 o subsistema Windows padrão para Linux +#### Para Windows 10 com WSL 1: Torne o WSL 2 o subsistema Windows padrão para Linux Se você estiver executando o Windows 10, definiremos a versão padrão do WSL como 2. @@ -114,3 +109,5 @@ wsl --set-default-version 2 :information_source: Se você estiver executando o Windows 10 **Home edition**, o recurso Hyper-V não estará disponível para o seu sistema operacional. Não bloqueia e você ainda pode continuar seguindo as instruções abaixo :ok_hand:
+ + diff --git a/_partials/windows_terminal.md b/_partials/windows_terminal.md index e1af6707..cb879a61 100644 --- a/_partials/windows_terminal.md +++ b/_partials/windows_terminal.md @@ -6,7 +6,10 @@ If you are running Windows 11, the Windows Terminal is already installed and you can proceed to the next section :point_down: -If you are running Windows 10, let's install Windows Terminal, a real modern terminal: +If you are running Windows 10, let's install Windows Terminal, a real modern terminal. + +
+Windows 10: Install Windows Terminal - Click on `Start` - Type `Microsoft Store` @@ -31,6 +34,8 @@ If you are running Windows 10, let's install Windows Terminal, a real modern ter Once the installation is finished, the `Install` button becomes a `Launch` button: click on it. +
+ ### Ubuntu as the default terminal Let's make Ubuntu the default terminal of your Windows Terminal application. @@ -47,7 +52,7 @@ It should open the terminal settings: You may see an orange circle rather than a penguin as the logo for Ubuntu. -We have circle in red the part you will change: +We have circled in red the part you need to change: ![Windows Terminal JSON settings file](images/windows_terminal_settings_json.png) @@ -61,7 +66,7 @@ First, let's ask Ubuntu to start directly inside your Ubuntu Home Directory inst :warning: Do not forget the comma at the end of the line! -Then, let's disable warning for copy-pasting commands between Windows and Ubuntu: +Then, let's disable warnings for copy-pasting commands between Windows and Ubuntu: - Locate the line `"defaultProfile": "{2c4de342-...}"` - Add the following line after it: diff --git a/_partials/windows_ubuntu.md b/_partials/windows_ubuntu.md index 62f169c6..3473bd62 100644 --- a/_partials/windows_ubuntu.md +++ b/_partials/windows_ubuntu.md @@ -2,13 +2,13 @@ ### Installation -:information_source: The following instructions depend on your version of Windows. Please execute only the instructions corresponding to your version :point_down: +After restarting you computer, you should see a terminal window saying WSL is resuming the Ubuntu installation process. When it's done, Ubuntu will be launched. -#### Windows 11 - -If you are running Windows 11, after restarting you computer, you should see a terminal window saying WSL is resuming the Ubuntu installation process. When it's done, Ubuntu will be launched. +
+Troubleshooting for Windows 10 (only if needed, check with a TA) + -#### Windows 10 +If the Ubuntu installation did not resume, first try it again: launch Powershell or the Command Prompt again and run `wsl --install` again. If you are running Windows 10, let's install Ubuntu throught the Microsoft Store: @@ -34,6 +34,8 @@ If you are running Windows 10, let's install Ubuntu throught the Microsoft Store Once the installation is finished, the `Get` button becomes a `Open` button: click on it. +
+ ### First launch At first launch, you will be asked some information: @@ -47,7 +49,6 @@ At first launch, you will be asked some information: :warning: When you type your password, nothing will show up on the screen, **that's normal**. This is a security feature to mask not only your password as a whole but also its length. Just type your password and when you're done, press `Enter`. -You can close the Ubuntu window now that it is installed on your computer. ### Check the WSL version of Ubuntu @@ -77,7 +78,6 @@ wsl -l -v :heavy_check_mark: After a few seconds, you should get the following message: `The conversion is complete`. :x: If it does not work, we need to be sure that Ubuntu files are not compressed. -
Check for Uncompressed Files @@ -96,6 +96,22 @@ wsl -l -v :x: If the conversion still does not work, please **contact a teacher**.
+You can close this terminal now. + + + +### Check your username + +Type this in the Ubuntu terminal: + +```bash +whoami +``` + +It should return the username you chose before. + +:x: It if says `root`, **contact a TA** before continuing! + ### Check the locale The locale is a mechanism allowing to customize programs to your language and country. @@ -125,5 +141,3 @@ sudo apt-get update sudo apt-get install language-pack-en language-pack-en-base manpages ``` - -You can now close this terminal window. diff --git a/_partials/windows_version.md b/_partials/windows_version.md index e08f0a06..af046097 100644 --- a/_partials/windows_version.md +++ b/_partials/windows_version.md @@ -11,62 +11,51 @@ To check your Windows version: - Type `winver` - Press `Enter` -:heavy_check_mark: If the first words of this window are **Windows 10 or Windows 11** you're good to go :+1: +:heavy_check_mark: If the first words of this window are **Windows 11** you're good to go :+1: -:x: If not, you cannot proceed with this setup. You have to upgrade to Windows 10 first :point_down: +If the first words of this window are **Windows 10**, check the **Version number**: -
- Upgrade to Windows 10 +- :heavy_check_mark: If it says at least `2004`, you are good to go :+1: - - Download Windows 10 from [Microsoft](https://www.microsoft.com/software-download/windows10ISO) - - Install it. It should take roughly an hour, but this depends on your computer. - - When the installation is over, execute the commands above :point_up: to check that you now have **Windows 10**. -
+- :x: If it is below `2004`, you need to run an update. -:information_source: [Windows 11 upgrade is rolling out now](https://www.microsoft.com/en-us/windows/get-windows-11), which means it may or may not be available for your computer just yet. +-
+ How to install updates? -:warning: **If you have Windows 10 installed, you don't need to upgrade to Windows 11 to proceed with this setup**. - -### Latest updates + Open Windows Update: + - Press `Windows` + `R` + - Type `ms-settings:windowsupdate` + - Press `Enter` + - Click on `Check updates` -Once you're sure that you're using Windows 10 or 11, you need to install all the latest updates. + :heavy_check_mark: If you see a green check mark and the message "You're up to date", you're good to go :+1: -Open Windows Update: -- Press `Windows` + `R` -- Type `ms-settings:windowsupdate` -- Press `Enter` -- Click on `Check updates` + :warning: If you have a red exclamation mark and the message "Update available", please install them and repeat the process until it says that you are up to date :loop: -:heavy_check_mark: If you see a green check mark and the message "You're up to date", you're good to go :+1: + :x: If you have an error message about Windows not being able to apply updates, please **contact a teacher**. -:warning: If you have a red exclamation mark and the message "Update available", please install them and repeat the process until it says that you are up to date :loop: +
+ Activate Windows Update Service to fix Updates -:x: If you have an error message about Windows not being able to apply updates, please **contact a teacher**. + Some antiviruses and pieces of software deactivate the Update service we need, resulting in the error you see. Let's fix that! + - Press `Windows` + `R` + - Type `services.msc` + - Press `Enter` + - Double Click `Windows Update Service` + - Set its `Startup` to `Automatic` + - Click on `Start` + - Click on `Ok` + Then let's try updates again! +
-
- Activate Windows Update Service to fix Updates + Check the version number again: - Some antiviruses and pieces of software deactivate the Update service we need, resulting in the error you see. Let's fix that! - Press `Windows` + `R` - - Type `services.msc` + - Type `winver` - Press `Enter` - - Double Click `Windows Update Service` - - Set its `Startup` to `Automatic` - - Click on `Start` - - Click on `Ok` - Then let's try updates again! -
- -### Minimum version - -Some of the tools we need to install have been release with the `1903` version **or above** of Windows 10 so we need to make sure you have at least this one. - -- Press `Windows` + `R` -- Type `winver` -- Press `Enter` -Check the **Version number**: + :heavy_check_mark: If it says at least `2004`, you are good to go :+1: -:heavy_check_mark: If it says at least `1903`, you are good to go :+1: + :x: If it is below `2004`, **contact a TA**. -:x: If it is below `1903`, please **contact a teacher**. +
diff --git a/_partials/windows_wsl.md b/_partials/windows_wsl.md index ca753f73..19982978 100644 --- a/_partials/windows_wsl.md +++ b/_partials/windows_wsl.md @@ -2,21 +2,17 @@ WSL is the development environment we are using to run Ubuntu. You can learn more about WSL [here](https://docs.microsoft.com/en-us/windows/wsl/faq). -:information_source: The following instructions depend on your version of Windows. Please execute only the instructions corresponding to your version :point_down: +We will install WSL 2 and Ubuntu in one command through the Windows Command Prompt. -### Windows 11 - -If you are running Windows 11, we will install WSL 2 and Ubuntu in one command through the Windows Terminal. - -:warning: In the following instruction, please be aware of the `Ctrl` + `Shift` + `Enter` key stroke to execute **Windows Terminal** with administrator privileges instead of just clicking on `Ok`or pressing `Enter`. +:warning: In the following instruction, please be aware of the `Ctrl` + `Shift` + `Enter` key stroke to execute **Windows Command Prompt** with administrator privileges instead of just clicking on `Ok`or pressing `Enter`. - Press `Windows` + `R` -- Type `wt` +- Type `cmd` - Press **`Ctrl` + `Shift` + `Enter`** :warning: You may have to accept the UAC confirmation about the privilege elevation. -A blue terminal window will appear: +A black terminal window will appear: - Copy the following command (`Ctrl` + `C`) - Paste it into the terminal window (`Ctrl` + `V` or by right-clicking in the window) - Run it by pressing `Enter` @@ -27,13 +23,13 @@ wsl --install :heavy_check_mark: If the command ran without any error, please restart your computer and continue below :+1: -:x: If you encounter an error message (or if you see some text in red in the window), please **contact a teacher** +:x: If you encounter an error message (or if you see some text in red in the window), please **contact a teacher**. -### Windows 10 - -#### Install WSL 1 +
+Troubleshooting for Windows 10 (only if needed, check with a TA) + -If you are running Windows 10, we will first install WSL 1 through the PowerShell Terminal. +#### For Windows 10 < 2004: install WSL 1 first :warning: In the following instruction, please be aware of the `Ctrl` + `Shift` + `Enter` key stroke to execute **Windows PowerShell** with administrator privileges instead of just clicking on `Ok`or pressing `Enter`. @@ -64,7 +60,7 @@ dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /nores :x: If you encounter an error message (or if you see some text in red in the window), please **contact a teacher** -#### Upgrade to WSL 2 +#### For Windows 10 users running WSL 1: Upgrade to WSL 2 If you are running Windows 10, we will then upgrade WSL to version 2. @@ -82,7 +78,7 @@ Once your computer has restarted, we need to download the WSL2 installer. :x: If you encounter the error "This update only applies to machines with the Windows Subsystem for Linux", **right click** on the program and select `uninstall`; you shall be able to install it normally this time. -#### Make WSL 2 the default Windows Subsystem for Linux +#### For Windows 10 users running WSL 1: Make WSL 2 the default Windows Subsystem for Linux If you are running Windows 10, we will set WSL default version to 2. @@ -114,3 +110,5 @@ wsl --set-default-version 2 :information_source: If you are running Windows 10 **Home edition**, Hyper-V feature is not available for your operating system. It's non-blocking and you can still continue to follow the instructions below :ok_hand:
+ + diff --git a/windows.es.md b/windows.es.md index 030ce444..ac24765e 100644 --- a/windows.es.md +++ b/windows.es.md @@ -62,65 +62,54 @@ Para chequear la versión de tu Windows: - Escribe `winver` - Presiona `Enter` -:heavy_check_mark: Si las primeras palabras de esta ventana son **Windows 10 o Windows 11**, entonces todo está bien y puedes continuar trabajando en la configuración :+1: +:heavy_check_mark: Si las primeras palabras de esta ventana son **Windows 11**, entonces todo está bien y puedes continuar trabajando en la configuración :+1: -:x: Si no es el caso, no puedes continuar. Primero debes actualizar tu versión a Windows 10 :point_down: +:heavy_check_mark: Si las primeras palabras de esta ventana son **Windows 10**, verifica el **número de la versión**: -
- Actualizar a Windows 10 - - - Descarga Windows 10 desde [Microsoft](https://www.microsoft.com/software-download/windows10ISO) - - Instálalo. Debería tomar como una hora pero realmente depende de tu computadora. - - Cuando termine la instalación, ejecuta los comandos de aquí arriba :point_up: para chequear que tengas **Windows 10**. -
+- :heavy_check_mark: Si dice al menos `2004`, entonces todo está bien :+1: -:information_source: [La actualización de Windows 11 está en curso en este momento](https://www.microsoft.com/en-us/windows/get-windows-11). Esto significa que puede que esté o que aún no esté disponible para tu computadora. +- :x: Si es inferior a `2004`, debes actualizar tu versión. -:warning: **Si tienes Windows 10 instalado, no necesitas actualizarlo a Windows 11 para hacer esta configuración**. +-
+ Cómo instalar las últimas actualizaciones? -### Últimas actualizaciones + Abre Windows Update: + - Presiona `Windows` + `R` + - Escribe `ms-settings:windowsupdate` + - Presiona `Enter` + - Haz clic en `Check updates` -Una vez que estés seguro de que estés usando Windows 10 o 11, instala las siguientes actualizaciones. + :heavy_check_mark: Si tienes una marca verde y el siguiente mensaje "You're up to date", entonces todo está bien :+1: -Abre Windows Update: -- Presiona `Windows` + `R` -- Escribe `ms-settings:windowsupdate` -- Presiona `Enter` -- Haz clic en `Check updates` + :warning: Si obtienes una exclamación roja y el siguiente mensaje "Update available", por favor instala las actualizaciones y repite el proceso hasta que diga que todo está actualizado :loop: -:heavy_check_mark: Si tienes una marca verde y el siguiente mensaje "You're up to date", entonces todo está bien :+1: + :x: Si obtienes un mensaje de error diciendo que Windows no puede aplicar las actualizaciones, por favor **contacta a un profesor**. -:warning: Si obtienes una exclamación roja y el siguiente mensaje "Update available", por favor instala las actualizaciones y repite el proceso hasta que diga que todo está actualizado :loop: +
+ Activa Windows Update Service para resolver las Actualizaciones -:x: Si obtienes un mensaje de error diciendo que Windows no puede aplicar las actualizaciones, por favor **contacta a un profesor**. + Algunos antivirus y programas deshabilitan las actualizaciones que necesitamos y luego se muestra un error. ¡Solucionemos esto! + - Presiona `Windows` + `R` + - Escribe `services.msc` + - Presiona `Enter` + - Haz doble clic en `Windows Update Service` + - Coloca su `Startup` en `Automatic` + - Haz clic en `Start` + - Haz clic en `Ok` + ¡Ahora intenta instalar las actualizaciones nuevamente! +
-
- Activa Windows Update Service para resolver las Actualizaciones + Verifica el número de la versión: - Algunos antivirus y programas deshabilitan las actualizaciones que necesitamos y luego se muestra un error. ¡Solucionemos esto! - Presiona `Windows` + `R` - - Escribe `services.msc` + - Escribe `winver` - Presiona `Enter` - - Haz doble clic en `Windows Update Service` - - Coloca su `Startup` en `Automatic` - - Haz clic en `Start` - - Haz clic en `Ok` - ¡Ahora intenta instalar las actualizaciones nuevamente! -
-### Requisito mínimo para la versión + :heavy_check_mark: Si dice al menos `2004`, entonces todo está bien :+1: -Algunas de las herramientas que necesitamos han salido con la versión `1903` **o superior** de Windows 10, así que necesitamos asegurarnos de que al menos tengamos esa. + :x: Si es inferior a `2004`, por favor **contacta a un profesor**. -- Presiona `Windows` + `R` -- Escribe `winver` -- Presiona `Enter` - -Verifica el **número de la versión**: - -:heavy_check_mark: Si dice al menos `1903`, entonces todo está bien :+1: - -:x: Si es inferior a `1903`, por favor **contacta a un profesor**. +
## Virtualización @@ -166,21 +155,17 @@ Normalmente ya es el caso en muchas computadoras. Verifiquemos: WSL es el ambiente de entorno que estamos usando para usar Ubuntu. Puedes aprender más sobre WSL [aquí](https://docs.microsoft.com/en-us/windows/wsl/faq). -:information_source: Las instrucciones que verás a continuación dependen de la versión de Windows que tengas. Por favor ejecuta solamente las instrucciones que correspondan a tu versión :point_down: +Instalaremos WSL 2 y Ubuntu con un comando a través de la Windows Command Prompt. -### Windows 11 - -Si usas Windows 11, instalaremos WSL 2 y Ubuntu con un comando a través de la terminal de Windows. - -:warning: en esta instrucción, utiliza el atajo `Ctrl` + `Shift` + `Enter` para usar la **terminal de Windows** con privilegios de administrador en lugar de simplemente hacer clic en `Ok` o presionar `Enter`. +:warning: en esta instrucción, utiliza el atajo `Ctrl` + `Shift` + `Enter` para usar la **Windows Command Prompt** con privilegios de administrador en lugar de simplemente hacer clic en `Ok` o presionar `Enter`. - Presiona `Windows` + `R` -- Escribe `wt` +- Escribe `cmd` - Presiona **`Ctrl` + `Shift` + `Enter`** :warning: tal vez tengas que aceptar la confirmación UAC sobre el cambio en los privilegios. -Un ventana de terminal azul aparecerá: +Un ventana de terminal aparecerá: - Copia el siguiente comando (`Ctrl` + `C`) - Pégalo en la ventana de la terminal (`Ctrl` + `V` o haciendo clic derecho en la ventana) - Ejecútalo presionado `Enter` @@ -193,11 +178,10 @@ wsl --install :x: Si obtienes un mensaje de error (o si ves algún texto en rojo en la ventana), por favor **contacta a un profesor** -### Windows 10 - -#### Instalación de WSL 1 +
+Solución de problemas para Windows 10 (solo si es necesario, consulta con un profesor) -Si tienes Windows 10, primero instalaremos WSL 1 por medio de la Terminal de PowerShell. +#### Para Windows 10 < 2004: instala primero WSL 1 :warning: en esta instrucción, utiliza el atajo `Ctrl` + `Shift` + `Enter` para usar **Windows PowerShell** con privilegios de administrador en lugar de hacer clic en `Ok` o presionar `Enter`. @@ -228,7 +212,7 @@ dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /nores :x: Si obtienes un mensaje de error (o si ves algún texto en rojo en la ventada), por favor **contacta a un profesor** -#### Actualización a WSL 2 +#### Para Windows 10 con WSL 1: Actualización a WSL 2 Si tienes Windows 10, actualizaremos WSL a la versión 2. @@ -246,7 +230,7 @@ Cuando se reinicie tu computadora, descarga el instalador de WSL2. :x: Si obtienes el siguiente error "This update only applies to machines with the Windows Subsystem for Linux", **haz clic derecho** en el programa y selecciona `uninstall`; esta vez deberías poder instalarlo sin problemas. -#### Coloca WSL 2 como el Subsistema Windows por defecto para Linux +#### Para Windows 10 con WSL 1: Coloca WSL 2 como el Subsistema Windows por defecto para Linux Si tienes Windows 10, pondremos la versión predeterminada de WSL en 2. @@ -279,18 +263,20 @@ wsl --set-default-version 2 :information_source: Si tienes Windows 10 **Home edition**, la feature Hyper-V no está disponible para su sistema operativo. No es un bloqueo y puedes continuar con las siguientes instrucciones aquí abajo :ok_hand:
+ + ## Ubuntu ### Instalación -:information_source: Las instrucciones que verás a continuación dependen de la versión de Windows que tengas. Por favor solo sigue las instrucciones que correspondan a tu versión de Windows :point_down: - -#### Windows 11 +Después de reiniciar tu computadora, deberías ver una ventana de terminal diciendo WSL está retomando el proceso de instalación de Ubuntu. Cuando termine, iniciará Ubuntu. -Si estás utilizando Windows 11, después de reiniciar tu computadora, deberías ver una ventana de terminal diciendo WSL está retomando el proceso de instalación de Ubuntu. Cuando termine, iniciará Ubuntu. +
+Solución de problemas para Windows 10 (solo si es necesario, consulta con un profesor) -#### Windows 10 +Si la instalación de Ubuntu no se reanudó, primero intenta nuevamente: abre Powershell o el Símbolo del sistema y ejecuta `wsl --install` otra vez. +
Si tienes Windows 10, instala la terminal de Windows por medio de la Microsoft Store: @@ -316,6 +302,8 @@ Si tienes Windows 10, instala la terminal de Windows por medio de la Microsoft S Cuando termine la instalación, el botón `Get` se transformará en un botón `Open`: Haz clic en él. + + ### Primer uso La primera vez que lo abras, te pedirán que: @@ -329,8 +317,6 @@ La primera vez que lo abras, te pedirán que: :warning: Cuando escribas tu contraseña no verás nada en la pantalla. **Esto es normal**. Es una herramienta de seguridad para ocultar tanto el contenido de tu contraseña como su longitud. Simplemente escribe tu contraseña y presiona `Enter` al terminar. -Ahora puedes cerrar la ventana de Ubuntu ya que está instalado en tu computadora. - ### Chequea la versión WSL de Ubuntu - Presiona `Windows` + `R` @@ -359,7 +345,6 @@ wsl -l -v :heavy_check_mark: Deberías obtener el siguiente mensaje en algunos segundos: `The conversion is complete`. Esto significa que la conversión ha sido completada. :x: Si no funciona, tendremos que asegurarnos de que los archivos de Ubuntu no estén comprimidos. -
Chequea si los archivos no están comprimidos @@ -378,7 +363,23 @@ wsl -l -v :x: Si la conversión aún no funciona, por favor **contacta a un profesor**.
-### Compruebe la locale +Ya puedes cerrar la ventana de la terminal. + + + +### Comprueba tu nombre de usuario + +Escribe esto en la terminal de Ubuntu: + +```bash +whoami +``` + +Debería devolver el nombre de usuario que elegiste anteriormente. + +:x: Si dice `root`, **contacta a un profesor** antes de continuar. + +### Comprueba la configuración regional (locale) La "locale" es un mecanismo que permite adaptar los programas a su idioma y país. @@ -408,8 +409,6 @@ sudo apt-get install language-pack-en language-pack-en-base manpages ``` -Ya puedes cerrar la ventana de la terminal. - ## Visual Studio Code @@ -459,8 +458,10 @@ code . Si estás utilizando Windows 11, la terminal de Windows ya está instalada y puedes ir a la siguiente sección :point_down: +Si tienes Windows 10, instala la terminal de Windows. Verás que es una terminal moderna. -Si tienes Windows 10, instala la terminal de Windows. Verás que es una terminal moderna: +
+**Windows 10**: Instalar Windows Terminal - Haz clic en `Start` - Escribe `Microsoft Store` @@ -485,6 +486,8 @@ Si tienes Windows 10, instala la terminal de Windows. Verás que es una terminal Cuando termine la instalación, el botón `Install` se transformará en un botón `Launch`: haz clic en él. +
+ ### Ubuntu como terminal predeterminada Hagamos que Ubuntu sea la terminal predeterminada de tu aplicación Windows terminal. diff --git a/windows.fr.md b/windows.fr.md index b698a6c9..7cde3703 100644 --- a/windows.fr.md +++ b/windows.fr.md @@ -62,65 +62,55 @@ Pour connaître ta version de Windows : - Saisis `winver` - Appuie sur `Enter` -:heavy_check_mark: Si les premiers mots qui apparaissent dans cette fenêtre sont **Windows 10 ou Windows 11**, c’est bon :+1: +:heavy_check_mark: Si les premiers mots qui apparaissent dans cette fenêtre sont **Windows 11**, c’est bon :+1: -:x: Sinon, tu ne pourras pas utiliser cette configuration. Il faut que tu mettes à jour ton Windows à la version 10 :point_down: +Si les premiers mots qui apparaissent dans cette fenêtre sont **Windows 10**, vérifie le numéro de version: -
- Mise à niveau vers Windows 10 - - - Télécharge Windows 10 depuis [Microsoft](https://www.microsoft.com/fr-fr/software-download/windows10) - - Installe-le. L’installation devrait prendre une heure environ, mais cela dépend de ton ordinateur - - Une fois l’installation terminée, exécute les commandes ci-dessus pour vérifier que tu es sous **Windows 10** -
+- :heavy_check_mark: Si la version indique au moins `2004`, c’est bon :+1: -:information_source: [La mise à jour Windows 11 est toujours en cours de déploiement](https://www.microsoft.com/en-us/windows/get-windows-11), ce qui signifie qu'elle peut être disponible, ou pas, pour ton ordinateur. +- :x: Sinon, il faut que tu mettes à jour ton Windows. -:warning: **Si tu as Windows 10 installé, tu n'as pas besoin de faire la mise à jour Windows 11 pour continuer cette configuration**. +-
+ Comment installer les dernières mises à jour -### Dernières mises à jour + Ouvre Windows Update : + - Appuie sur `Windows` + `R` + - Saisis `ms-settings:windowsupdate` + - Appuie sur `Enter` + - Clique sur « Rechercher les mises à jour » -Une fois que tu as vérifié que tu utilises Windows 10 ou 11, tu vas devoir installer les dernières mises à jour. + :heavy_check_mark: Si tu vois apparaître une coche verte et le message « Vous êtes à jour », c’est bon :+1: -Ouvre Windows Update : -- Appuie sur `Windows` + `R` -- Saisis `ms-settings:windowsupdate` -- Appuie sur `Enter` -- Clique sur « Rechercher les mises à jour » + :warning: Si tu vois apparaître un point d’exclamation rouge et le message « Mise à jour disponible », installe-la et recommence jusqu’à ce que le message « Vous êtes à jour » apparaisse :loop: -:heavy_check_mark: Si tu vois apparaître une coche verte et le message « Vous êtes à jour », c’est bon :+1: + :x: Si tu vois apparaître un message d’erreur indiquant que Windows ne peut pas appliquer les mises à jour, **demande au prof**. -:warning: Si tu vois apparaître un point d’exclamation rouge et le message « Mise à jour disponible », installe-la et recommence jusqu’à ce que le message « Vous êtes à jour » apparaisse :loop: +
+ Activer le service Windows Update pour corriger les mises à jour -:x: Si tu vois apparaître un message d’erreur indiquant que Windows ne peut pas appliquer les mises à jour, **demande au prof**. + Certains antivirus et logiciels désactivent le service de mise à jour dont on a besoin, entraînant l’erreur que tu vois apparaître. On va corriger ça ! + - Appuie sur `Windows` + `R` + - Saisis `services.msc` + - Appuie sur `Enter` + - Double-clique sur `Windows Update Service` + - Définis `Startup` sur `Automatic` + - Clique sur `Start` + - Clique sur `Ok` + On va maintenant réessayer d’effectuer les mises à jour. +
-
- Activer le service Windows Update pour corriger les mises à jour + Vérifie le numéro de version : - Certains antivirus et logiciels désactivent le service de mise à jour dont on a besoin, entraînant l’erreur que tu vois apparaître. On va corriger ça ! - Appuie sur `Windows` + `R` - - Saisis `services.msc` + - Saisis `winver` - Appuie sur `Enter` - - Double-clique sur `Windows Update Service` - - Définis `Startup` sur `Automatic` - - Clique sur `Start` - - Clique sur `Ok` - On va maintenant réessayer d’effectuer les mises à jour. -
-### Version minimum - -Certains des outils qu’on doit installer sont compatibles avec la version `1903` **ou une version ultérieure** de Windows 10 ; on doit donc vérifier que tu as bien cette version au minimum. - -- Appuie sur `Windows` + `R` -- Saisis `winver` -- Appuie sur `Enter` -Vérifie le **numéro de version** : + :heavy_check_mark: Si la version indique au moins `1903`, c’est bon :+1: -:heavy_check_mark: Si la version indique au moins `1903`, c’est bon :+1: + :x: S’il s’agit d’une version antérieure, **demande au prof**. -:x: S’il s’agit d’une version antérieure, **demande au prof**. +
## Virtualisation @@ -167,21 +157,17 @@ C’est déjà le cas sur de nombreux ordinateurs. Vérifions-le : WSL est l’environnement de développement que l’on utilise pour exécuter Ubuntu. Pour en savoir plus sur WSL, [consulte cette page](https://docs.microsoft.com/fr-fr/windows/wsl/faq). -:information_source: Les instructions suivantes dépendent de ta version de Windows. Exécute uniquement les instructions qui correspondent à ta version :point_down: - -### Windows 11 +Nous allons installer WSL 2 et Ubuntu en une seule commande via le Windows Command Prompt. -Si tu as Windows 11, nous allons installer WSL 2 et Ubuntu en une seule commande via le Windows Terminal. - -:warning: Dans les instructions suivantes, utilise la combinaison de touches `Ctrl` + `Shift` + `Enter` pour exécuter **Windows Terminal** en tant qu’administrateur au lieu de cliquer simplement sur `Ok` ou d’appuyer sur `Enter`. +:warning: Dans les instructions suivantes, utilise la combinaison de touches `Ctrl` + `Shift` + `Enter` pour exécuter **Windows Command Prompt** en tant qu’administrateur au lieu de cliquer simplement sur `Ok` ou d’appuyer sur `Enter`. - Appuie sur `Windows` + `R` -- Saisis `wt` +- Saisis `cmd` - Appuie sur **`Ctrl` + `Shift` + `Enter`** :warning: Tu devras peut-être accepter la confirmation UAC concernant l’octroi des droits d’administrateur. -Une fenêtre de terminal bleue apparaîtra : +Une fenêtre de terminal apparaîtra : - Copie la commande suivante (`Ctrl` + `C`) - Colle-la dans la fenêtre du terminal (`Ctrl` + `V` ou en faisant un clic droit dans la fenêtre) - Exécute-les en appuyant sur `Enter` @@ -192,13 +178,12 @@ wsl --install :heavy_check_mark: Si la commande s’exécute sans erreur, redémarre ton ordinateur et suis les instructions ci-dessous :+1: -:x: Si tu obtiens un message d’erreur (ou si tu vois apparaître du texte en rouge dans la fenêtre), **demande au prof** - -### Windows 10 +:x: Si tu obtiens un message d’erreur (ou si tu vois apparaître du texte en rouge dans la fenêtre), **demande au prof**. -#### Installer WSL 1 +
+Dépannage pour Windows 10 (uniquement si nécessaire, vérifie avec un professeur) -Si tu as Windows 10, on va d'abord installer WSL 1 à partir du terminal PowerShell. +#### Pour Windows 10 < 2004 : installer d'abord WSL 1 :warning: Dans les instructions suivantes, utilise la combinaison de touches `Ctrl` + `Shift` + `Enter` pour exécuter **Windows PowerShell** en tant qu’administrateur au lieu de cliquer simplement sur `Ok` ou d’appuyer sur `Enter`. @@ -229,7 +214,7 @@ dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /nores :x: Si tu obtiens un message d’erreur (ou si tu vois apparaître du texte en rouge dans la fenêtre), **demande au prof** -#### Mise à niveau vers WSL 2 +#### Pour Windows 10 avec WSL 1 : Mise à niveau vers WSL 2 Si tu as Windows 10, on va maintenant mettre à jour WSL à la version 2. @@ -247,7 +232,7 @@ Une fois que ton ordinateur a redémarré, on doit télécharger le programme d :x: Si tu obtiens l’erreur « Cette mise à jour s’applique seulement aux machines avec le sous-système Windows pour Linux », **fais un clic droit** sur le programme et sélectionne `uninstall` ; tu devrais pouvoir l’installer normalement cette fois-ci. -#### Définir WSL 2 comme sous-système Windows pour Linux par défaut +#### Pour Windows 10 avec WSL 1 : Définir WSL 2 comme sous-système Windows pour Linux par défaut Si tu as Windows 10, on va enfin définir la version 2 de WSL comme étant la version par défaut. @@ -280,18 +265,19 @@ wsl --set-default-version 2 :information_source: Si tu as Windows 10 **Home edition**, la fonction Hyper-V n'est pas disponible sur ton système d'exploitation. Ce n'est pas bloquant et tu peux continuer à suivre les instructions ci-dessous :ok_hand:
+ + ## Ubuntu ### Installation -:information_source: Les instructions suivantes dépendent de ta version de Windows. N'exécute que les instructions qui correspondent à ta version :point_down: - -#### Windows 11 - Si tu as Windows 11, après avoir redémarré ton ordinateur, tu devrais voir une fenêtre de terminal indiquant que WSL poursuit le processus d'installation d'Ubuntu. Lorsque c'est terminé, Ubuntu va se lancer. -#### Windows 10 +
+Résolution des problèmes pour Windows 10 (uniquement si nécessaire, vérifie avec un TA) + +Si l'installation d'Ubuntu ne reprend pas, essaye d'abord à nouveau : relance Powershell ou l'Invite de commandes et exécute la commande `wsl --install` une nouvelle fois. Si tu as Windows 10, installons Ubuntu via le Microsoft Store : @@ -317,6 +303,8 @@ Si tu as Windows 10, installons Ubuntu via le Microsoft Store : Une fois l’installation terminée, le bouton « Installer » se transforme en bouton « Lancer » ; clique dessus. +
+ ### Premier lancement Au premier lancement, on te demandera de fournir des informations : @@ -360,7 +348,6 @@ wsl -l -v :heavy_check_mark: Au bout de quelques secondes, tu devrais voir apparaître le message suivant : `The conversion is complete`. :x: Si ce n’est pas le cas, il faut vérifier que les fichiers Ubuntu ne sont pas compressés. -
Vérifier que les fichiers sont décompressés @@ -379,11 +366,28 @@ wsl -l -v :x: Si la conversion ne fonctionne pas, **demande au prof**.
+Tu peux maintenant fermer cette fenêtre de terminal. + + + +### Vérifier ton nom d'utilisateur + +Tape cette commande dans le terminal Ubuntu : + +```bash +whoami +``` + +Cela devrait renvoyer le nom d'utilisateur que tu as choisi précédemment. + +:x: Si cela affiche `root`, **contacte un TA** avant de continuer ! + + ### Vérifier la locale Le concept e "locale" permert de personnaliser les programms en fonction de ta langue et ton pays. -Vérifions que la locale est bien en **anglais** ans le terminal : +Vérifions que la locale est bien en **anglais** dans le terminal : ```bash locale @@ -409,8 +413,6 @@ sudo apt-get install language-pack-en language-pack-en-base manpages ``` -Tu peux maintenant fermer cette fenêtre de terminal. - ## Visual Studio Code @@ -458,7 +460,10 @@ code . Si tu as Windows 11, le Windows Terminal est déjà installé et tu peux passer à la section suivante :point_down: -Si tu as Windows 10, nous allons installer le Windows Terminal, un terminal vraiment moderne : +Si tu as Windows 10, nous allons installer le Windows Terminal, un terminal vraiment moderne. + +
+Windows 10: Installer le Windows Terminal - Clique sur `Démarrer` - Saisis `Microsoft Store` @@ -483,6 +488,8 @@ Si tu as Windows 10, nous allons installer le Windows Terminal, un terminal vrai Une fois l’installation terminée, le bouton « Installer » se transforme en bouton « Lancer » ; clique dessus. +
+ ### Définir Ubuntu comme terminal par défaut On va définir Ubuntu comme terminal par défaut de ton application Windows Terminal. diff --git a/windows.md b/windows.md index cac0e40a..6f7df8da 100644 --- a/windows.md +++ b/windows.md @@ -66,65 +66,54 @@ To check your Windows version: - Type `winver` - Press `Enter` -:heavy_check_mark: If the first words of this window are **Windows 10 or Windows 11** you're good to go :+1: +:heavy_check_mark: If the first words of this window are **Windows 11** you're good to go :+1: -:x: If not, you cannot proceed with this setup. You have to upgrade to Windows 10 first :point_down: +If the first words of this window are **Windows 10**, check the **Version number**: -
- Upgrade to Windows 10 +- :heavy_check_mark: If it says at least `2004`, you are good to go :+1: - - Download Windows 10 from [Microsoft](https://www.microsoft.com/software-download/windows10ISO) - - Install it. It should take roughly an hour, but this depends on your computer. - - When the installation is over, execute the commands above :point_up: to check that you now have **Windows 10**. -
+- :x: If it is below `2004`, you need to run an update. -:information_source: [Windows 11 upgrade is rolling out now](https://www.microsoft.com/en-us/windows/get-windows-11), which means it may or may not be available for your computer just yet. +-
+ How to install updates? -:warning: **If you have Windows 10 installed, you don't need to upgrade to Windows 11 to proceed with this setup**. + Open Windows Update: + - Press `Windows` + `R` + - Type `ms-settings:windowsupdate` + - Press `Enter` + - Click on `Check updates` -### Latest updates + :heavy_check_mark: If you see a green check mark and the message "You're up to date", you're good to go :+1: -Once you're sure that you're using Windows 10 or 11, you need to install all the latest updates. + :warning: If you have a red exclamation mark and the message "Update available", please install them and repeat the process until it says that you are up to date :loop: -Open Windows Update: -- Press `Windows` + `R` -- Type `ms-settings:windowsupdate` -- Press `Enter` -- Click on `Check updates` + :x: If you have an error message about Windows not being able to apply updates, please **contact a teacher**. -:heavy_check_mark: If you see a green check mark and the message "You're up to date", you're good to go :+1: +
+ Activate Windows Update Service to fix Updates -:warning: If you have a red exclamation mark and the message "Update available", please install them and repeat the process until it says that you are up to date :loop: + Some antiviruses and pieces of software deactivate the Update service we need, resulting in the error you see. Let's fix that! + - Press `Windows` + `R` + - Type `services.msc` + - Press `Enter` + - Double Click `Windows Update Service` + - Set its `Startup` to `Automatic` + - Click on `Start` + - Click on `Ok` + Then let's try updates again! +
-:x: If you have an error message about Windows not being able to apply updates, please **contact a teacher**. + Check the version number again: -
- Activate Windows Update Service to fix Updates - - Some antiviruses and pieces of software deactivate the Update service we need, resulting in the error you see. Let's fix that! - Press `Windows` + `R` - - Type `services.msc` + - Type `winver` - Press `Enter` - - Double Click `Windows Update Service` - - Set its `Startup` to `Automatic` - - Click on `Start` - - Click on `Ok` - Then let's try updates again! -
- -### Minimum version - -Some of the tools we need to install have been release with the `1903` version **or above** of Windows 10 so we need to make sure you have at least this one. -- Press `Windows` + `R` -- Type `winver` -- Press `Enter` + :heavy_check_mark: If it says at least `2004`, you are good to go :+1: -Check the **Version number**: + :x: If it is below `2004`, **contact a TA**. -:heavy_check_mark: If it says at least `1903`, you are good to go :+1: - -:x: If it is below `1903`, please **contact a teacher**. +
## Virtualization @@ -170,21 +159,17 @@ For many computers, this is already the case. Let's check: WSL is the development environment we are using to run Ubuntu. You can learn more about WSL [here](https://docs.microsoft.com/en-us/windows/wsl/faq). -:information_source: The following instructions depend on your version of Windows. Please execute only the instructions corresponding to your version :point_down: - -### Windows 11 - -If you are running Windows 11, we will install WSL 2 and Ubuntu in one command through the Windows Terminal. +We will install WSL 2 and Ubuntu in one command through the Windows Command Prompt. -:warning: In the following instruction, please be aware of the `Ctrl` + `Shift` + `Enter` key stroke to execute **Windows Terminal** with administrator privileges instead of just clicking on `Ok`or pressing `Enter`. +:warning: In the following instruction, please be aware of the `Ctrl` + `Shift` + `Enter` key stroke to execute **Windows Command Prompt** with administrator privileges instead of just clicking on `Ok`or pressing `Enter`. - Press `Windows` + `R` -- Type `wt` +- Type `cmd` - Press **`Ctrl` + `Shift` + `Enter`** :warning: You may have to accept the UAC confirmation about the privilege elevation. -A blue terminal window will appear: +A black terminal window will appear: - Copy the following command (`Ctrl` + `C`) - Paste it into the terminal window (`Ctrl` + `V` or by right-clicking in the window) - Run it by pressing `Enter` @@ -195,13 +180,13 @@ wsl --install :heavy_check_mark: If the command ran without any error, please restart your computer and continue below :+1: -:x: If you encounter an error message (or if you see some text in red in the window), please **contact a teacher** +:x: If you encounter an error message (or if you see some text in red in the window), please **contact a teacher**. -### Windows 10 - -#### Install WSL 1 +
+Troubleshooting for Windows 10 (only if needed, check with a TA) + -If you are running Windows 10, we will first install WSL 1 through the PowerShell Terminal. +#### For Windows 10 < 2004: install WSL 1 first :warning: In the following instruction, please be aware of the `Ctrl` + `Shift` + `Enter` key stroke to execute **Windows PowerShell** with administrator privileges instead of just clicking on `Ok`or pressing `Enter`. @@ -232,7 +217,7 @@ dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /nores :x: If you encounter an error message (or if you see some text in red in the window), please **contact a teacher** -#### Upgrade to WSL 2 +#### For Windows 10 users running WSL 1: Upgrade to WSL 2 If you are running Windows 10, we will then upgrade WSL to version 2. @@ -250,7 +235,7 @@ Once your computer has restarted, we need to download the WSL2 installer. :x: If you encounter the error "This update only applies to machines with the Windows Subsystem for Linux", **right click** on the program and select `uninstall`; you shall be able to install it normally this time. -#### Make WSL 2 the default Windows Subsystem for Linux +#### For Windows 10 users running WSL 1: Make WSL 2 the default Windows Subsystem for Linux If you are running Windows 10, we will set WSL default version to 2. @@ -283,18 +268,20 @@ wsl --set-default-version 2 :information_source: If you are running Windows 10 **Home edition**, Hyper-V feature is not available for your operating system. It's non-blocking and you can still continue to follow the instructions below :ok_hand:
+ + ## Ubuntu ### Installation -:information_source: The following instructions depend on your version of Windows. Please execute only the instructions corresponding to your version :point_down: - -#### Windows 11 +After restarting you computer, you should see a terminal window saying WSL is resuming the Ubuntu installation process. When it's done, Ubuntu will be launched. -If you are running Windows 11, after restarting you computer, you should see a terminal window saying WSL is resuming the Ubuntu installation process. When it's done, Ubuntu will be launched. +
+Troubleshooting for Windows 10 (only if needed, check with a TA) + -#### Windows 10 +If the Ubuntu installation did not resume, first try it again: launch Powershell or the Command Prompt again and run `wsl --install` again. If you are running Windows 10, let's install Ubuntu throught the Microsoft Store: @@ -320,6 +307,8 @@ If you are running Windows 10, let's install Ubuntu throught the Microsoft Store Once the installation is finished, the `Get` button becomes a `Open` button: click on it. +
+ ### First launch At first launch, you will be asked some information: @@ -333,7 +322,6 @@ At first launch, you will be asked some information: :warning: When you type your password, nothing will show up on the screen, **that's normal**. This is a security feature to mask not only your password as a whole but also its length. Just type your password and when you're done, press `Enter`. -You can close the Ubuntu window now that it is installed on your computer. ### Check the WSL version of Ubuntu @@ -363,7 +351,6 @@ wsl -l -v :heavy_check_mark: After a few seconds, you should get the following message: `The conversion is complete`. :x: If it does not work, we need to be sure that Ubuntu files are not compressed. -
Check for Uncompressed Files @@ -382,6 +369,22 @@ wsl -l -v :x: If the conversion still does not work, please **contact a teacher**.
+You can close this terminal now. + + + +### Check your username + +Type this in the Ubuntu terminal: + +```bash +whoami +``` + +It should return the username you chose before. + +:x: It if says `root`, **contact a TA** before continuing! + ### Check the locale The locale is a mechanism allowing to customize programs to your language and country. @@ -412,8 +415,6 @@ sudo apt-get install language-pack-en language-pack-en-base manpages ``` -You can now close this terminal window. - ## Visual Studio Code @@ -463,7 +464,10 @@ code . If you are running Windows 11, the Windows Terminal is already installed and you can proceed to the next section :point_down: -If you are running Windows 10, let's install Windows Terminal, a real modern terminal: +If you are running Windows 10, let's install Windows Terminal, a real modern terminal. + +
+Windows 10: Install Windows Terminal - Click on `Start` - Type `Microsoft Store` @@ -488,6 +492,8 @@ If you are running Windows 10, let's install Windows Terminal, a real modern ter Once the installation is finished, the `Install` button becomes a `Launch` button: click on it. +
+ ### Ubuntu as the default terminal Let's make Ubuntu the default terminal of your Windows Terminal application. @@ -504,7 +510,7 @@ It should open the terminal settings: You may see an orange circle rather than a penguin as the logo for Ubuntu. -We have circle in red the part you will change: +We have circled in red the part you need to change: ![Windows Terminal JSON settings file](images/windows_terminal_settings_json.png) @@ -518,7 +524,7 @@ First, let's ask Ubuntu to start directly inside your Ubuntu Home Directory inst :warning: Do not forget the comma at the end of the line! -Then, let's disable warning for copy-pasting commands between Windows and Ubuntu: +Then, let's disable warnings for copy-pasting commands between Windows and Ubuntu: - Locate the line `"defaultProfile": "{2c4de342-...}"` - Add the following line after it: diff --git a/windows.pt.md b/windows.pt.md index c5068e60..30cf0d0f 100644 --- a/windows.pt.md +++ b/windows.pt.md @@ -66,65 +66,54 @@ Para verificar sua versão do Windows: - Digite `winver` - Pressione `Enter` -:heavy_check_mark: Se as primeiras palavras desta janela forem **Windows 10 ou Windows 11** você está pronto para prosseguir :+1: +:heavy_check_mark: Se as primeiras palavras desta janela forem **Windows 11** você está pronto para prosseguir :+1: -:x: Caso contrário, você não poderá prosseguir com esta configuração. Você precisa atualizar para o Windows 10 primeiro :point_down: +- :heavy_check_mark: Se as primeiras palavras desta janela forem **Windows 10**, verifique o **Número da versão**:: -
- Atualizar para o Windows 10 +- :x: Caso contrário, você não poderá prosseguir com esta configuração. Você precisa atualizar. - - Baixe o Windows 10 da [Microsoft](https://www.microsoft.com/software-download/windows10ISO) - - Instale-o. Deve demorar cerca de uma hora, mas isso depende do seu computador. - - Quando a instalação terminar, execute os comandos acima :point_up: para verificar se você agora tem o **Windows 10**. -
+-
+ Como instalar as últimas atualizações? -:information_source: [A atualização do Windows 11 está sendo lançada agora](https://www.microsoft.com/en-us/windows/get-windows-11), o que significa que ela pode ou não estar disponível para o seu computador ainda . + Abra a atualização do Windows: + - Pressione `Windows` + `R` + - Digite `ms-settings:windowsupdate` + - Pressione `Enter` + - Clique em `Verificar atualizações` -:warning: **Se você tiver o Windows 10 instalado, não será necessário atualizar para o Windows 11 para prosseguir com esta configuração**. + :heavy_check_mark: Se você vir uma marca de seleção verde e a mensagem "Você está atualizado", você está pronto para prosseguir :+1: -### Ultimas atualizações + :warning: Se você tiver um ponto de exclamação vermelho e a mensagem "Atualização disponível", instale-os e repita o processo até que apareça que você está atualizado :loop: -Quando tiver certeza de que está usando o Windows 10 ou 11, você precisará instalar todas as atualizações mais recentes. + :x: Se você receber uma mensagem de erro sobre o Windows não conseguir aplicar atualizações, **entre em contato com um professor**. -Abra a atualização do Windows: -- Pressione `Windows` + `R` -- Digite `ms-settings:windowsupdate` -- Pressione `Enter` -- Clique em `Verificar atualizações` +
+ Ative o Windows Update Service para corrigir atualizações -:heavy_check_mark: Se você vir uma marca de seleção verde e a mensagem "Você está atualizado", você está pronto para prosseguir :+1: + Alguns antivírus e softwares desativam o serviço de atualização de que precisamos, resultando no erro que você vê. Vamos consertar isso! + - Pressione `Windows` + `R` + - Digite `services.msc` + - Pressione `Enter` + - Clique duas vezes em `Serviço de atualização do Windows` + - Defina sua `Inicialização` para `Automático` + - Clique em `Iniciar` + - Clique em `Ok` + Então vamos tentar as atualizações novamente! +
-:warning: Se você tiver um ponto de exclamação vermelho e a mensagem "Atualização disponível", instale-os e repita o processo até que apareça que você está atualizado :loop: -:x: Se você receber uma mensagem de erro sobre o Windows não conseguir aplicar atualizações, **entre em contato com um professor**. + Verifique o Número da versão: -
- Ative o Windows Update Service para corrigir atualizações + - Pressione `Windows` + `R` + - Digite `winver` + - Pressione `Enter` - Alguns antivírus e softwares desativam o serviço de atualização de que precisamos, resultando no erro que você vê. Vamos consertar isso! - - Pressione `Windows` + `R` - - Digite `services.msc` - - Pressione `Enter` - - Clique duas vezes em `Serviço de atualização do Windows` - - Defina sua `Inicialização` para `Automático` - - Clique em `Iniciar` - - Clique em `Ok` - Então vamos tentar as atualizações novamente! -
-### Versão mínima + :heavy_check_mark: Se disser pelo menos `2004`, você está pronto :+1: -Algumas das ferramentas que precisamos instalar foram lançadas com a versão `1903` **ou superior** do Windows 10, então precisamos ter certeza de que você tem pelo menos esta. + :x: Se estiver abaixo de `22004`, por favor **entre em contato com um professor**. -- Pressione `Windows` + `R` -- Digite `winver` -- Pressione `Enter` - -Verifique o **Número da versão**: - -:heavy_check_mark: Se disser pelo menos `1903`, você está pronto :+1: - -:x: Se estiver abaixo de `1903`, por favor **entre em contato com um professor**. +
## Virtualização @@ -170,21 +159,17 @@ Para muitos computadores, este já é o caso. Vamos checar: WSL é o ambiente de desenvolvimento que usamos para executar o Ubuntu. Você pode aprender mais sobre WSL [aqui](https://docs.microsoft.com/en-us/windows/wsl/faq). -:information_source: As instruções a seguir dependem da sua versão do Windows. Por favor, execute apenas as instruções correspondentes à sua versão :point_down: - -### Windows 11 - -Se você estiver executando o Windows 11, instalaremos o WSL 2 e o Ubuntu em um comando através do Terminal do Windows. +Instalaremos o WSL 2 e o Ubuntu em um comando através do Windows Command Prompt. -:warning: Nas instruções a seguir, esteja ciente do pressionamento de tecla `Ctrl` + `Shift` + `Enter` para executar o **Terminal Windows** com privilégios de administrador em vez de apenas clicar em `Ok` ou pressionar `Enter` . +:warning: Nas instruções a seguir, esteja ciente do pressionamento de tecla `Ctrl` + `Shift` + `Enter` para executar o **Windows Command Prompt** com privilégios de administrador em vez de apenas clicar em `Ok` ou pressionar `Enter` . - Pressione `Windows` + `R` -- Digite `wt` +- Digite `cmd` - Pressione **`Ctrl` + `Shift` + `Enter`** :warning: Você pode ter que aceitar a confirmação do UAC sobre a elevação de privilégio. -Uma janela de terminal azul aparecerá: +Uma janela de terminal aparecerá: - Copie o seguinte comando (`Ctrl` + `C`) - Cole-o na janela do terminal (`Ctrl` + `V` ou clicando com o botão direito na janela) - Execute-o pressionando `Enter` @@ -197,11 +182,10 @@ wsl --install :x: Se você encontrar uma mensagem de erro (ou se vir algum texto em vermelho na janela), por favor **entre em contato com um professor** -### Windows 10 - -#### Instale o WSL 1 +
+Solução de problemas para Windows 10 (apenas se necessário, consulte um professor) -Se você estiver executando o Windows 10, primeiro instalaremos o WSL 1 por meio do Terminal PowerShell. +#### Para Windows 10 < 2004: instale o WSL 1 primeiro :warning: Nas instruções a seguir, esteja ciente do pressionamento de tecla `Ctrl` + `Shift` + `Enter` para executar o **Windows PowerShell** com privilégios de administrador em vez de apenas clicar em `Ok` ou pressionar `Enter` . @@ -232,7 +216,7 @@ dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /nores :x: Se você encontrar uma mensagem de erro (ou se vir algum texto em vermelho na janela), por favor **entre em contato com um professor** -#### Atualizar para WSL 2 +#### Para Windows 10 com WSL 1: Atualizar para WSL 2 Se você estiver executando o Windows 10, atualizaremos o WSL para a versão 2. @@ -250,7 +234,7 @@ Assim que o computador for reiniciado, precisamos baixar o instalador WSL2. :x: Se você encontrar o erro "Esta atualização se aplica apenas a máquinas com o subsistema Windows para Linux", **clique com o botão direito** no programa e selecione `uninstall`; você poderá instalá-lo normalmente desta vez. -#### Torne o WSL 2 o subsistema Windows padrão para Linux +#### Para Windows 10 com WSL 1: Torne o WSL 2 o subsistema Windows padrão para Linux Se você estiver executando o Windows 10, definiremos a versão padrão do WSL como 2. @@ -283,18 +267,19 @@ wsl --set-default-version 2 :information_source: Se você estiver executando o Windows 10 **Home edition**, o recurso Hyper-V não estará disponível para o seu sistema operacional. Não bloqueia e você ainda pode continuar seguindo as instruções abaixo :ok_hand:
+ + ## Ubuntu ### Instalação -:information_source: As instruções a seguir dependem da sua versão do Windows. Por favor, execute apenas as instruções correspondentes à sua versão :point_down: - -#### Windows 11 +Após reiniciar o computador, você deverá ver uma janela de terminal informando que o WSL está retomando o processo de instalação do Ubuntu. Quando terminar, o Ubuntu será lançado. -Se você estiver executando o Windows 11, após reiniciar o computador, você deverá ver uma janela de terminal informando que o WSL está retomando o processo de instalação do Ubuntu. Quando terminar, o Ubuntu será lançado. +
+Solução de problemas para Windows 10 (apenas se necessário, consulte um TA) -#### Windows 10 +Se a instalação do Ubuntu não foi retomada, tente novamente: abra o Powershell ou o Prompt de Comando e execute `wsl --install` novamente. Se você estiver executando o Windows 10, vamos instalar o Ubuntu através da Microsoft Store: @@ -382,6 +367,23 @@ wsl -l -v :x: Se a conversão ainda não funcionar, por favor **entre em contato com um professor**.
+Agora você pode fechar esta janela do terminal. + + + +### Check your username + +Type this in the Ubuntu terminal: + +```bash +whoami +``` + +It should return the username you chose before. + +:x: It if says `root`, **contact a TA** before continuing! + + ### Verifique a localidade A localidade é um mecanismo que permite personalizar programas de acordo com seu idioma e país. @@ -412,8 +414,6 @@ sudo apt-get install language-pack-en language-pack-en-base manpages ``` -Agora você pode fechar esta janela do terminal. - ## Visual Studio Code @@ -463,7 +463,10 @@ code . Se você estiver executando o Windows 11, o Terminal do Windows já está instalado e você pode prosseguir para a próxima seção :point_down: -Se você estiver executando o Windows 10, vamos instalar o Windows Terminal, um terminal realmente moderno: +Se você estiver executando o Windows 10, vamos instalar o Windows Terminal, um terminal realmente moderno. + +
+Windows 10: Instalar Windows Terminal - Clique em `Iniciar` - Digite `Microsoft Store` @@ -488,6 +491,8 @@ Se você estiver executando o Windows 10, vamos instalar o Windows Terminal, um Assim que a instalação for concluída, o botão `Instalar` se torna um botão `Iniciar`: clique nele. +
+ ### Ubuntu como terminal padrão Vamos tornar o Ubuntu o terminal padrão do seu aplicativo Windows Terminal. From 5e1a74c55b4fa1e4674506e2a9086885b6854ea9 Mon Sep 17 00:00:00 2001 From: Jules van Rie <89742340+julesvanrie@users.noreply.github.com> Date: Thu, 24 Apr 2025 11:08:51 +0200 Subject: [PATCH 11/47] Fix Windows Edge browser setup (#485) Extra pair of quotes breaks the setup. The browser does not get detected. Aligning with the other browsers. ES and CN were missing the browser setting completely. The $BROWSER is needed in the data-setup, which uses the web setup partials. --- _partials/cn/windows_browser.md | 1 + _partials/es/windows_browser.md | 1 + _partials/fr/windows_browser.md | 2 +- _partials/pt/windows_browser.md | 2 +- _partials/windows_browser.md | 3 +-- 5 files changed, 5 insertions(+), 4 deletions(-) diff --git a/_partials/cn/windows_browser.md b/_partials/cn/windows_browser.md index 987c6105..6d6faca8 100644 --- a/_partials/cn/windows_browser.md +++ b/_partials/cn/windows_browser.md @@ -71,6 +71,7 @@ ```bash + echo "export BROWSER=\"/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe\"" >> ~/.zshrc echo "export GH_BROWSER=\"'/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe'\"" >> ~/.zshrc ``` diff --git a/_partials/es/windows_browser.md b/_partials/es/windows_browser.md index 3e55b081..ea228fee 100644 --- a/_partials/es/windows_browser.md +++ b/_partials/es/windows_browser.md @@ -58,6 +58,7 @@ Para asegurarnos de que puedas interactuar desde la terminal de Ubuntu con el na Ejecuta el siguiente comandos: ```bash + echo "export BROWSER=\"/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe\"" >> ~/.zshrc echo "export GH_BROWSER=\"'/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe'\"" >> ~/.zshrc ``` diff --git a/_partials/fr/windows_browser.md b/_partials/fr/windows_browser.md index 58084838..d6e3e173 100644 --- a/_partials/fr/windows_browser.md +++ b/_partials/fr/windows_browser.md @@ -58,7 +58,7 @@ Si tu obtiens une erreur du type `ls: cannot access...`, exécute la commande su Exécute la commandes : ```bash - echo "export BROWSER='\"/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe\"'" >> ~/.zshrc + echo "export BROWSER=\"/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe\"" >> ~/.zshrc echo "export GH_BROWSER=\"'/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe'\"" >> ~/.zshrc ``` diff --git a/_partials/pt/windows_browser.md b/_partials/pt/windows_browser.md index 542dfe9b..a0a3f8dc 100644 --- a/_partials/pt/windows_browser.md +++ b/_partials/pt/windows_browser.md @@ -85,7 +85,7 @@ Execute os seguintes comandos: Execute os comandos: ```bash - echo "export BROWSER='\"/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe\"'" >> ~/.zshrc + echo "export BROWSER=\"/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe\"" >> ~/.zshrc echo "export GH_BROWSER=\"'/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe'\"" >> ~/.zshrc ``` diff --git a/_partials/windows_browser.md b/_partials/windows_browser.md index cf2faaa8..da430936 100644 --- a/_partials/windows_browser.md +++ b/_partials/windows_browser.md @@ -85,7 +85,7 @@ Run the following commands: Run the commands: ```bash - echo "export BROWSER='\"/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe\"'" >> ~/.zshrc + echo "export BROWSER=\"/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe\"" >> ~/.zshrc echo "export GH_BROWSER=\"'/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe'\"" >> ~/.zshrc ``` @@ -112,4 +112,3 @@ exec zsh ``` Do not hesitate to **contact a teacher**. - From eb724cc01080e21bfffbcfa121912f22db3b8fc4 Mon Sep 17 00:00:00 2001 From: github-actions Date: Thu, 24 Apr 2025 09:09:03 +0000 Subject: [PATCH 12/47] setup guides generated --- windows.cn.md | 1 + windows.es.md | 1 + windows.fr.md | 2 +- windows.md | 3 +-- windows.pt.md | 2 +- 5 files changed, 5 insertions(+), 4 deletions(-) diff --git a/windows.cn.md b/windows.cn.md index 924b6dbe..dc64e86f 100644 --- a/windows.cn.md +++ b/windows.cn.md @@ -689,6 +689,7 @@ sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install. ```bash + echo "export BROWSER=\"/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe\"" >> ~/.zshrc echo "export GH_BROWSER=\"'/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe'\"" >> ~/.zshrc ``` diff --git a/windows.es.md b/windows.es.md index ac24765e..0db509f8 100644 --- a/windows.es.md +++ b/windows.es.md @@ -712,6 +712,7 @@ Para asegurarnos de que puedas interactuar desde la terminal de Ubuntu con el na Ejecuta el siguiente comandos: ```bash + echo "export BROWSER=\"/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe\"" >> ~/.zshrc echo "export GH_BROWSER=\"'/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe'\"" >> ~/.zshrc ``` diff --git a/windows.fr.md b/windows.fr.md index 7cde3703..5d626629 100644 --- a/windows.fr.md +++ b/windows.fr.md @@ -714,7 +714,7 @@ Si tu obtiens une erreur du type `ls: cannot access...`, exécute la commande su Exécute la commandes : ```bash - echo "export BROWSER='\"/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe\"'" >> ~/.zshrc + echo "export BROWSER=\"/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe\"" >> ~/.zshrc echo "export GH_BROWSER=\"'/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe'\"" >> ~/.zshrc ``` diff --git a/windows.md b/windows.md index 6f7df8da..c7332cc5 100644 --- a/windows.md +++ b/windows.md @@ -758,7 +758,7 @@ Run the following commands: Run the commands: ```bash - echo "export BROWSER='\"/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe\"'" >> ~/.zshrc + echo "export BROWSER=\"/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe\"" >> ~/.zshrc echo "export GH_BROWSER=\"'/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe'\"" >> ~/.zshrc ``` @@ -787,7 +787,6 @@ exec zsh Do not hesitate to **contact a teacher**. - ## GitHub CLI CLI is the acronym of [Command-line Interface](https://en.wikipedia.org/wiki/Command-line_interface). diff --git a/windows.pt.md b/windows.pt.md index 30cf0d0f..72af6f64 100644 --- a/windows.pt.md +++ b/windows.pt.md @@ -757,7 +757,7 @@ Execute os seguintes comandos: Execute os comandos: ```bash - echo "export BROWSER='\"/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe\"'" >> ~/.zshrc + echo "export BROWSER=\"/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe\"" >> ~/.zshrc echo "export GH_BROWSER=\"'/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe'\"" >> ~/.zshrc ``` From bd34d0862e62854ce18d3b16e3defa42397df04d Mon Sep 17 00:00:00 2001 From: Alexander Dubovoy <39504104+ajdubovoy@users.noreply.github.com> Date: Thu, 15 May 2025 11:35:51 +0200 Subject: [PATCH 13/47] Fix localization error for libyaml (#487) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add libyaml-dev to non-English partials resolve https://github.com/lewagon/setup/issues/486 Note that https://github.com/lewagon/setup/pull/456 didn't include the change in other languages. We shouldn't let that happen again 🙈 * Add the Mac instruction too --- _partials/cn/macos_rbenv.md | 2 +- _partials/cn/rbenv.md | 2 +- _partials/es/macos_rbenv.md | 2 +- _partials/es/rbenv.md | 2 +- _partials/fr/macos_rbenv.md | 2 +- _partials/fr/rbenv.md | 2 +- _partials/pt/macos_rbenv.md | 2 +- _partials/pt/rbenv.md | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/_partials/cn/macos_rbenv.md b/_partials/cn/macos_rbenv.md index 7108dc7d..491cd676 100644 --- a/_partials/cn/macos_rbenv.md +++ b/_partials/cn/macos_rbenv.md @@ -26,5 +26,5 @@ brew uninstall --force rbenv ruby-build ```bash exec zsh -brew install rbenv +brew install rbenv libyaml ``` diff --git a/_partials/cn/rbenv.md b/_partials/cn/rbenv.md index 35e53bf8..8177cc4f 100644 --- a/_partials/cn/rbenv.md +++ b/_partials/cn/rbenv.md @@ -14,7 +14,7 @@ rm -rf ~/.rbenv 然后在终端里运行: ```bash -sudo apt install -y build-essential tklib zlib1g-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev libreadline-dev +sudo apt install -y build-essential tklib zlib1g-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev libreadline-dev libyaml-dev ``` ```bash diff --git a/_partials/es/macos_rbenv.md b/_partials/es/macos_rbenv.md index 03197a66..397cf17a 100644 --- a/_partials/es/macos_rbenv.md +++ b/_partials/es/macos_rbenv.md @@ -26,5 +26,5 @@ exec zsh Luego ejecuta esto: ```bash -brew install rbenv +brew install rbenv libyaml ``` diff --git a/_partials/es/rbenv.md b/_partials/es/rbenv.md index 713fa681..85519dea 100644 --- a/_partials/es/rbenv.md +++ b/_partials/es/rbenv.md @@ -14,7 +14,7 @@ rm -rf ~/.rbenv Luego ejecuta lo siguiente en tu terminal: ```bash -sudo apt install -y build-essential tklib zlib1g-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev libreadline-dev +sudo apt install -y build-essential tklib zlib1g-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev libreadline-dev libyaml-dev ``` ```bash diff --git a/_partials/fr/macos_rbenv.md b/_partials/fr/macos_rbenv.md index ce706df2..a6297fe8 100644 --- a/_partials/fr/macos_rbenv.md +++ b/_partials/fr/macos_rbenv.md @@ -26,5 +26,5 @@ exec zsh Puis exécute ensuite : ```bash -brew install rbenv +brew install rbenv libyaml ``` diff --git a/_partials/fr/rbenv.md b/_partials/fr/rbenv.md index 89f285bc..c52c84f0 100644 --- a/_partials/fr/rbenv.md +++ b/_partials/fr/rbenv.md @@ -14,7 +14,7 @@ rm -rf ~/.rbenv Puis dans le terminal, exécute : ```bash -sudo apt install -y build-essential tklib zlib1g-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev libreadline-dev +sudo apt install -y build-essential tklib zlib1g-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev libreadline-dev libyaml-dev ``` ```bash diff --git a/_partials/pt/macos_rbenv.md b/_partials/pt/macos_rbenv.md index 6d65b36f..bbebe544 100644 --- a/_partials/pt/macos_rbenv.md +++ b/_partials/pt/macos_rbenv.md @@ -29,5 +29,5 @@ exec zsh Então rode: ```bash -brew install rbenv +brew install rbenv libyaml ``` diff --git a/_partials/pt/rbenv.md b/_partials/pt/rbenv.md index e0c23d06..d3135514 100644 --- a/_partials/pt/rbenv.md +++ b/_partials/pt/rbenv.md @@ -14,7 +14,7 @@ rm -rf ~/.rbenv Então no terminal, execute: ```bash -sudo apt install -y build-essential tklib zlib1g-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev libreadline-dev +sudo apt install -y build-essential tklib zlib1g-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev libreadline-dev libyaml-dev ``` ```bash From 2c2f4c967a3baf119f6de3ec93ed8c4baf958708 Mon Sep 17 00:00:00 2001 From: github-actions Date: Thu, 15 May 2025 09:36:01 +0000 Subject: [PATCH 14/47] setup guides generated --- macos.cn.md | 2 +- macos.es.md | 2 +- macos.fr.md | 2 +- macos.pt.md | 2 +- ubuntu.cn.md | 2 +- ubuntu.es.md | 2 +- ubuntu.fr.md | 2 +- ubuntu.pt.md | 2 +- windows.cn.md | 2 +- windows.es.md | 2 +- windows.fr.md | 2 +- windows.pt.md | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/macos.cn.md b/macos.cn.md index 93343921..8b17581a 100644 --- a/macos.cn.md +++ b/macos.cn.md @@ -373,7 +373,7 @@ brew uninstall --force rbenv ruby-build ```bash exec zsh -brew install rbenv +brew install rbenv libyaml ``` diff --git a/macos.es.md b/macos.es.md index c23dccc0..6aef019c 100644 --- a/macos.es.md +++ b/macos.es.md @@ -393,7 +393,7 @@ exec zsh Luego ejecuta esto: ```bash -brew install rbenv +brew install rbenv libyaml ``` diff --git a/macos.fr.md b/macos.fr.md index 40a6f5f8..c8b89ee9 100644 --- a/macos.fr.md +++ b/macos.fr.md @@ -389,7 +389,7 @@ exec zsh Puis exécute ensuite : ```bash -brew install rbenv +brew install rbenv libyaml ``` diff --git a/macos.pt.md b/macos.pt.md index f5ae1f47..c563c744 100644 --- a/macos.pt.md +++ b/macos.pt.md @@ -431,7 +431,7 @@ exec zsh Então rode: ```bash -brew install rbenv +brew install rbenv libyaml ``` diff --git a/ubuntu.cn.md b/ubuntu.cn.md index a1718f2b..3ff4e408 100644 --- a/ubuntu.cn.md +++ b/ubuntu.cn.md @@ -340,7 +340,7 @@ rm -rf ~/.rbenv 然后在终端里运行: ```bash -sudo apt install -y build-essential tklib zlib1g-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev libreadline-dev +sudo apt install -y build-essential tklib zlib1g-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev libreadline-dev libyaml-dev ``` ```bash diff --git a/ubuntu.es.md b/ubuntu.es.md index ba615650..ac046f35 100644 --- a/ubuntu.es.md +++ b/ubuntu.es.md @@ -358,7 +358,7 @@ rm -rf ~/.rbenv Luego ejecuta lo siguiente en tu terminal: ```bash -sudo apt install -y build-essential tklib zlib1g-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev libreadline-dev +sudo apt install -y build-essential tklib zlib1g-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev libreadline-dev libyaml-dev ``` ```bash diff --git a/ubuntu.fr.md b/ubuntu.fr.md index 8ad9c2a2..7b83d091 100644 --- a/ubuntu.fr.md +++ b/ubuntu.fr.md @@ -357,7 +357,7 @@ rm -rf ~/.rbenv Puis dans le terminal, exécute : ```bash -sudo apt install -y build-essential tklib zlib1g-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev libreadline-dev +sudo apt install -y build-essential tklib zlib1g-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev libreadline-dev libyaml-dev ``` ```bash diff --git a/ubuntu.pt.md b/ubuntu.pt.md index d9cee957..a92837fd 100644 --- a/ubuntu.pt.md +++ b/ubuntu.pt.md @@ -393,7 +393,7 @@ rm -rf ~/.rbenv Então no terminal, execute: ```bash -sudo apt install -y build-essential tklib zlib1g-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev libreadline-dev +sudo apt install -y build-essential tklib zlib1g-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev libreadline-dev libyaml-dev ``` ```bash diff --git a/windows.cn.md b/windows.cn.md index dc64e86f..ce44a435 100644 --- a/windows.cn.md +++ b/windows.cn.md @@ -874,7 +874,7 @@ rm -rf ~/.rbenv 然后在终端里运行: ```bash -sudo apt install -y build-essential tklib zlib1g-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev libreadline-dev +sudo apt install -y build-essential tklib zlib1g-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev libreadline-dev libyaml-dev ``` ```bash diff --git a/windows.es.md b/windows.es.md index 0db509f8..bf5d3add 100644 --- a/windows.es.md +++ b/windows.es.md @@ -895,7 +895,7 @@ rm -rf ~/.rbenv Luego ejecuta lo siguiente en tu terminal: ```bash -sudo apt install -y build-essential tklib zlib1g-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev libreadline-dev +sudo apt install -y build-essential tklib zlib1g-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev libreadline-dev libyaml-dev ``` ```bash diff --git a/windows.fr.md b/windows.fr.md index 5d626629..4b5764fe 100644 --- a/windows.fr.md +++ b/windows.fr.md @@ -897,7 +897,7 @@ rm -rf ~/.rbenv Puis dans le terminal, exécute : ```bash -sudo apt install -y build-essential tklib zlib1g-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev libreadline-dev +sudo apt install -y build-essential tklib zlib1g-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev libreadline-dev libyaml-dev ``` ```bash diff --git a/windows.pt.md b/windows.pt.md index 72af6f64..69a88d0a 100644 --- a/windows.pt.md +++ b/windows.pt.md @@ -949,7 +949,7 @@ rm -rf ~/.rbenv Então no terminal, execute: ```bash -sudo apt install -y build-essential tklib zlib1g-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev libreadline-dev +sudo apt install -y build-essential tklib zlib1g-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev libreadline-dev libyaml-dev ``` ```bash From 28a421d8ea6c09381e8c8d570f278204b8c405ae Mon Sep 17 00:00:00 2001 From: Toni Panacek Date: Wed, 28 May 2025 09:58:54 +0200 Subject: [PATCH 15/47] Remove zoom references (#488) * Updated english readme * Remove all references to zoom, including partials, etc --- _partials/cn/macos_settings.md | 1 - _partials/cn/macos_zoom.md | 33 ---------------------------- _partials/cn/ubuntu_settings.md | 1 - _partials/cn/zoom.md | 29 ------------------------- _partials/es/macos_settings.md | 1 - _partials/es/macos_zoom.md | 33 ---------------------------- _partials/es/ubuntu_settings.md | 1 - _partials/es/windows_settings.md | 1 - _partials/es/zoom.md | 29 ------------------------- _partials/fr/macos_settings.md | 1 - _partials/fr/macos_zoom.md | 33 ---------------------------- _partials/fr/ubuntu_settings.md | 1 - _partials/fr/windows_settings.md | 1 - _partials/fr/zoom.md | 29 ------------------------- _partials/macos_settings.md | 1 - _partials/macos_zoom.md | 33 ---------------------------- _partials/pt/macos_settings.md | 1 - _partials/pt/macos_zoom.md | 33 ---------------------------- _partials/pt/ubuntu_settings.md | 1 - _partials/pt/windows_settings.md | 1 - _partials/pt/zoom.md | 29 ------------------------- _partials/ubuntu_settings.md | 1 - _partials/windows_settings.md | 1 - _partials/zoom.md | 29 ------------------------- build.rb | 3 --- macos.cn.md | 36 ------------------------------- macos.es.md | 36 ------------------------------- macos.fr.md | 36 ------------------------------- macos.md | 37 -------------------------------- macos.pt.md | 36 ------------------------------- ubuntu.cn.md | 31 -------------------------- ubuntu.es.md | 32 --------------------------- ubuntu.fr.md | 32 --------------------------- ubuntu.md | 32 --------------------------- ubuntu.pt.md | 32 --------------------------- windows.cn.md | 30 -------------------------- windows.es.md | 32 --------------------------- windows.fr.md | 32 --------------------------- windows.md | 32 --------------------------- windows.pt.md | 32 --------------------------- 40 files changed, 825 deletions(-) delete mode 100644 _partials/cn/macos_zoom.md delete mode 100644 _partials/cn/zoom.md delete mode 100644 _partials/es/macos_zoom.md delete mode 100644 _partials/es/zoom.md delete mode 100644 _partials/fr/macos_zoom.md delete mode 100644 _partials/fr/zoom.md delete mode 100644 _partials/macos_zoom.md delete mode 100644 _partials/pt/macos_zoom.md delete mode 100644 _partials/pt/zoom.md delete mode 100644 _partials/zoom.md diff --git a/_partials/cn/macos_settings.md b/_partials/cn/macos_settings.md index ae84ab98..dc209d71 100644 --- a/_partials/cn/macos_settings.md +++ b/_partials/cn/macos_settings.md @@ -44,4 +44,3 @@ defaults write com.apple.screencapture location "${HOME}/Desktop" - VS Code - 你的浏览器 - Slack -- Zoom diff --git a/_partials/cn/macos_zoom.md b/_partials/cn/macos_zoom.md deleted file mode 100644 index 9c5a1c8f..00000000 --- a/_partials/cn/macos_zoom.md +++ /dev/null @@ -1,33 +0,0 @@ -## Zoom - -为了让我们能够线上的交流,我们将会使用[Zoom](https://zoom.us/),一个视频会议工具。 - -:warning: 如果你已经安装了Zoom,请确保它的版本至少是**5.6**。 - -打开[zoom.us/download](https://zoom.us/download). - -在**Zoom会议客户端(Zoom Client)**下方点击**下载(Download)**按钮。 - -打开你刚刚下载的文件并安装应用程序。 - -打开Zoom。 - -如果你的Mac使用Apple silicon的话, [你必须安装Rosetta](https://support.apple.com/en-us/HT211861)。点击安装(install),然后输入你的用户名和密码来允许安装。 - -![Install Rosetta](https://support.apple.com/library/content/dam/edam/applecare/images/en_US/macos/Big-Sur/macos-big-sur-software-update-rosetta-alert.jpg) - -如果你已经有Zoom账号了,那就用你的账号密码登陆吧。 - -如果没有账号的话,点击**Sign Up Free**链接: - -![Sign Up Free to Zoom](images/zoom_sign_up_free.png) - -接下来,它会跳转到Zoom的网站让你填一个表。 - -完成这个表之后,回到Zoom软件,然后用你的账号密码登陆吧。 - -你应该会看到下面这个界面: - -![Zoom Home Screen](images/zoom_home_screen.png) - -现在你可以关掉Zoom了。 diff --git a/_partials/cn/ubuntu_settings.md b/_partials/cn/ubuntu_settings.md index d2027869..305c3d4f 100644 --- a/_partials/cn/ubuntu_settings.md +++ b/_partials/cn/ubuntu_settings.md @@ -48,4 +48,3 @@ You must pin: - VS Code - Your Internet browser - Slack -- Zoom diff --git a/_partials/cn/zoom.md b/_partials/cn/zoom.md deleted file mode 100644 index 6a6d9add..00000000 --- a/_partials/cn/zoom.md +++ /dev/null @@ -1,29 +0,0 @@ -## Zoom - -为了让我们能够线上的交流,我们将会使用[Zoom](https://zoom.us/),一个视频会议工具。 - -:warning: 如果你已经安装了Zoom,请确保它的版本至少是**5.6**。 - -打开[https://zoom.us/download](https://zoom.us/download)。 - -在**Zoom会议客户端(Zoom Client)**下方点击**下载(Download)**按钮。 - -打开你刚刚下载的文件并安装应用程序。 - -打开Zoom。 - -如果你已经有Zoom账号了,那就用你的账号密码登陆吧。 - -如果没有账号的话,点击**Sign Up Free**链接: - -![Sign Up Free to Zoom](images/zoom_sign_up_free.png) - -接下来,它会跳转到Zoom的网站让你填一个表。 - -完成这个表之后,回到Zoom软件,然后用你的账号密码登陆吧。 - -你应该会看到下面这个界面: - -![Zoom Home Screen](images/zoom_home_screen.png) - -现在你可以关掉Zoom了。 diff --git a/_partials/es/macos_settings.md b/_partials/es/macos_settings.md index 10d1290e..2b923c2a 100644 --- a/_partials/es/macos_settings.md +++ b/_partials/es/macos_settings.md @@ -44,4 +44,3 @@ Ancla lo siguiente: - VS Code - Tu navegador de Internet - Slack -- Zoom diff --git a/_partials/es/macos_zoom.md b/_partials/es/macos_zoom.md deleted file mode 100644 index b4b8185a..00000000 --- a/_partials/es/macos_zoom.md +++ /dev/null @@ -1,33 +0,0 @@ -## Zoom - -Para poder interactuar cuando no estemos en el mismo lugar físico, usaremos [Zoom](https://zoom.us/), una herramienta de videoconferencia. - -:warning: Si ya tienes Zoom instalado, por favor asegúrate de que por lo menos tienes la versión **5.6**. - -Ve a [zoom.us/download](https://zoom.us/download). - -Haz clic en el botón **Download** debajo de **Zoom Client**. - -Abre el archivo que acabas de descargar para instalar la aplicación. - -Abre la aplicación Zoom. - -Si tienes una Mac con Apple silicon, [te pedirán instalar Rosetta](https://support.apple.com/en-us/HT211861). Haz clic en instalar. Luego escribe tu nombre y contraseña para que corra la instalación. - -![Instala Rosetta](https://support.apple.com/library/content/dam/edam/applecare/images/en_US/macos/Big-Sur/macos-big-sur-software-update-rosetta-alert.jpg) - -Si ya tienes una cuenta Zoom, inicia sesión con tus credenciales. - -Si no, haz clic en el enlace **Sign Up Free**, que significa registrarse gratuitamente: - -![Registrarse gratuitamente en Zoom](images/zoom_sign_up_free.png) - -Te redireccionarán a la página de Zoom para que completes un formulario. - -Cuando termines, regresa a la aplicación Zoom e inicia sesión usando tus credenciales. - -Deberías ver una pantalla como la siguiente: - -![Pantalla de inicio de Zoom](images/zoom_home_screen.png) - -Ya puedes cerrar la aplicación Zoom. diff --git a/_partials/es/ubuntu_settings.md b/_partials/es/ubuntu_settings.md index eead3876..50901d79 100644 --- a/_partials/es/ubuntu_settings.md +++ b/_partials/es/ubuntu_settings.md @@ -48,4 +48,3 @@ Ancla lo siguiente: - VS Code - Tu navegador de Internet - Slack -- Zoom diff --git a/_partials/es/windows_settings.md b/_partials/es/windows_settings.md index 5fb353d2..090527e3 100644 --- a/_partials/es/windows_settings.md +++ b/_partials/es/windows_settings.md @@ -49,4 +49,3 @@ Ancla lo siguiente: - VS Code - Tu navegador de Internet - Slack -- Zoom diff --git a/_partials/es/zoom.md b/_partials/es/zoom.md deleted file mode 100644 index 2b5a2733..00000000 --- a/_partials/es/zoom.md +++ /dev/null @@ -1,29 +0,0 @@ -## Zoom - -Para poder interactuar cuando no estemos en el mismo lugar físico, usaremos [Zoom](https://zoom.us/), una herramienta de videoconferencia. - -:warning: Si ya tienes Zoom instalado, por favor asegúrate de que por lo menos tienes versión **5.6**. - -Ve a [zoom.us/download](https://zoom.us/download). - -Haz clic en el botón **Download** debajo de **Zoom Client**. - -Abre el archivo que acabas de descargar para instalar la aplicación. - -Abre la aplicación Zoom. - -Si ya tienes una cuenta Zoom, inicia sesión con tus credenciales. - -Si no, haz clic en el enlace **Sign Up Free**, que significa registrarse gratuitamente: - -![Registrarse gratuitamente en Zoom](images/zoom_sign_up_free.png) - -Te redireccionarán a la página de Zoom para que completes un formulario. - -Cuando termines, regresa a la aplicación Zoom e inicia sesión usando tus credenciales. - -Deberías ver una pantalla como la siguiente: - -![Pantalla de inicio de Zoom](images/zoom_home_screen.png) - -Ya puedes cerrar la aplicación Zoom. diff --git a/_partials/fr/macos_settings.md b/_partials/fr/macos_settings.md index f564f0cc..59277722 100644 --- a/_partials/fr/macos_settings.md +++ b/_partials/fr/macos_settings.md @@ -44,4 +44,3 @@ Tu dois épingler : - VS Code - ton navigateur Internet - Slack -- Zoom diff --git a/_partials/fr/macos_zoom.md b/_partials/fr/macos_zoom.md deleted file mode 100644 index acf51776..00000000 --- a/_partials/fr/macos_zoom.md +++ /dev/null @@ -1,33 +0,0 @@ -## Zoom - -Pour interagir quand on ne sera pas dans la même pièce, on utilisera [Zoom](https://zoom.us), un outil de visioconférence. - -:warning: Si Zoom est déjà installé sur ton ordinateur, vérifie qu’il s’agit au moins de la version **5.6**. - -Va sur [zoom.us/download](https://zoom.us/download). - -Sous **Client Zoom**, clique sur le bouton **Télécharger**. - -Ouvre le fichier que tu viens de télécharger pour installer l’application. - -Ouvre l’application Zoom. - -Si tu as un Mac avec un processeur Apple Silicon, [on te demande d'installer Rosetta](https://support.apple.com/en-us/HT211861). Clique sur installer, puis tape ton nom d'utilisateur et ton mot de passe pour autoriser l'installation. - -![Installer Rosetta](https://support.apple.com/library/content/dam/edam/applecare/images/en_US/macos/Big-Sur/macos-big-sur-software-update-rosetta-alert.jpg) - -Si tu as déjà un compte Zoom, connecte-toi avec tes identifiants. - -Sinon, clique sur le lien **Inscrivez-vous, c’est gratuit** : - -![Inscrivez-vous à Zoom, c’est gratuit](images/zoom_sign_up_free.png) - -Sur le site Web de Zoom, remplis le formulaire. - -Une fois que tu as terminé, retourne sur l’application Zoom et connecte-toi avec tes identifiants. - -Tu devrais voir apparaître un écran ressemblant à ça : - -![Écran d’accueil Zoom](images/zoom_home_screen.png) - -Tu peux fermer l’application Zoom. diff --git a/_partials/fr/ubuntu_settings.md b/_partials/fr/ubuntu_settings.md index ba8e737c..bcf5dd53 100644 --- a/_partials/fr/ubuntu_settings.md +++ b/_partials/fr/ubuntu_settings.md @@ -48,4 +48,3 @@ Tu dois épingler : - VS Code - ton navigateur Internet - Slack -- Zoom diff --git a/_partials/fr/windows_settings.md b/_partials/fr/windows_settings.md index 62fd4c77..aaf93163 100644 --- a/_partials/fr/windows_settings.md +++ b/_partials/fr/windows_settings.md @@ -49,4 +49,3 @@ Tu dois épingler : - VS Code - ton navigateur Internet - Slack -- Zoom diff --git a/_partials/fr/zoom.md b/_partials/fr/zoom.md deleted file mode 100644 index f04b3652..00000000 --- a/_partials/fr/zoom.md +++ /dev/null @@ -1,29 +0,0 @@ -## Zoom - -Pour interagir quand on ne sera pas dans la même pièce, on utilisera [Zoom](https://zoom.us), un outil de visioconférence. - -:warning: Si Zoom est déjà installé sur ton ordinateur, vérifie qu’il s’agit au moins de la version **5.6**. - -Va sur [zoom.us/download](https://zoom.us/download). - -Sous **Client Zoom**, clique sur le bouton **Télécharger**. - -Ouvre le fichier que tu viens de télécharger pour installer l’application. - -Ouvre l’application Zoom. - -Si tu as déjà un compte Zoom, connecte-toi avec tes identifiants. - -Sinon, clique sur le lien **Inscrivez-vous, c’est gratuit** : - -![Inscrivez-vous à Zoom, c’est gratuit](images/zoom_sign_up_free.png) - -Sur le site Web de Zoom, remplis le formulaire. - -Une fois que tu as terminé, retourne sur l’application Zoom et connecte-toi avec tes identifiants. - -Tu devrais voir apparaître un écran ressemblant à ça : - -![Écran d’accueil Zoom](images/zoom_home_screen.png) - -Tu peux fermer l’application Zoom. diff --git a/_partials/macos_settings.md b/_partials/macos_settings.md index 55c0160a..73593d35 100644 --- a/_partials/macos_settings.md +++ b/_partials/macos_settings.md @@ -44,4 +44,3 @@ You must pin: - VS Code - Your Internet browser - Slack -- Zoom diff --git a/_partials/macos_zoom.md b/_partials/macos_zoom.md deleted file mode 100644 index 2fdc36a2..00000000 --- a/_partials/macos_zoom.md +++ /dev/null @@ -1,33 +0,0 @@ -## Zoom - -To be able to interact when we are not in the same physical room, we will be using [Zoom](https://zoom.us/), a video conferencing tool. - -:warning: If you already have Zoom installed, please make sure that the version is at least **5.6**. - -Go to [zoom.us/download](https://zoom.us/download). - -Under **Zoom Client** click the **Download** button. - -Open the file you have just downloaded to install the app. - -Open the Zoom app. - -If you have a Mac with Apple silicon, [you are asked to install Rosetta](https://support.apple.com/en-us/HT211861). Click Install, then enter your user name and password to allow installation to proceed. - -![Install Rosetta](https://support.apple.com/library/content/dam/edam/applecare/images/en_US/macos/Big-Sur/macos-big-sur-software-update-rosetta-alert.jpg) - -If you already have a Zoom account, sign in using your credentials. - -If not, click on the **Sign Up Free** link: - -![Sign Up Free to Zoom](images/zoom_sign_up_free.png) - -You will be redirected to Zoom's website to complete a form. - -When it's done, go back to the Zoom app and sign in using your credentials. - -You should then see a screen like this: - -![Zoom Home Screen](images/zoom_home_screen.png) - -You can now close the Zoom app. diff --git a/_partials/pt/macos_settings.md b/_partials/pt/macos_settings.md index 06845234..87003c54 100644 --- a/_partials/pt/macos_settings.md +++ b/_partials/pt/macos_settings.md @@ -44,4 +44,3 @@ Você deve fixar: - VS Code - Seu navegador de Internet - Slack -- Zoom diff --git a/_partials/pt/macos_zoom.md b/_partials/pt/macos_zoom.md deleted file mode 100644 index 3dc4644a..00000000 --- a/_partials/pt/macos_zoom.md +++ /dev/null @@ -1,33 +0,0 @@ -## Zoom - -Para poder interagir quando não estivermos na mesma sala física, usaremos o [Zoom](https://zoom.us/), uma ferramenta de videoconferência. - -:warning: Se você já possui o Zoom instalado, certifique-se de que a versão seja pelo menos **5.6**. - -Acesse [zoom.us/download](https://zoom.us/download). - -Em **Cliente Zoom** clique no botão **Baixar**. - -Abra o arquivo que você acabou de baixar para instalar o aplicativo. - -Abra o aplicativo Zoom. - -Se você tiver um Mac com Apple Silicon, [você será solicitado a instalar o Rosetta](https://support.apple.com/en-us/HT211861). Clique em Instalar e digite seu nome de usuário e senha para permitir que a instalação continue. - -![Instale o Rosetta](https://support.apple.com/library/content/dam/edam/applecare/images/en_US/macos/Big-Sur/macos-big-sur-software-update-rosetta-alert. jpg) - -Se você já possui uma conta Zoom, faça login usando suas credenciais. - -Caso contrário, clique no link **Cadastre-se gratuitamente**: - -![Cadastre-se gratuitamente para ampliar](images/zoom_sign_up_free.png) - -Você será redirecionado ao site do Zoom para preencher um formulário. - -Quando terminar, volte para o aplicativo Zoom e faça login usando suas credenciais. - -Você deverá então ver uma tela como esta: - -![Zoom tela inicial](images/zoom_home_screen.png) - -Agora você pode fechar o aplicativo Zoom. diff --git a/_partials/pt/ubuntu_settings.md b/_partials/pt/ubuntu_settings.md index 72693948..1dce8026 100644 --- a/_partials/pt/ubuntu_settings.md +++ b/_partials/pt/ubuntu_settings.md @@ -48,4 +48,3 @@ Você deve fixar: - VS Code - Seu navegador de Internet - Slack -- Zoom diff --git a/_partials/pt/windows_settings.md b/_partials/pt/windows_settings.md index c9124bd7..c73f03b1 100644 --- a/_partials/pt/windows_settings.md +++ b/_partials/pt/windows_settings.md @@ -49,4 +49,3 @@ Você deve fixar: - VS Code - Seu navegador de Internet - Slack -- Zoom diff --git a/_partials/pt/zoom.md b/_partials/pt/zoom.md deleted file mode 100644 index a1b3f3e1..00000000 --- a/_partials/pt/zoom.md +++ /dev/null @@ -1,29 +0,0 @@ -## Zoom - -Para poder interagir quando não estivermos na mesma sala física, usaremos o [Zoom](https://zoom.us/), uma ferramenta de videoconferência. - -:warning: Se você já possui o Zoom instalado, certifique-se de que a versão seja pelo menos **5.6**. - -Acesse [zoom.us/download](https://zoom.us/download). - -Em **Cliente Zoom** clique no botão **Baixar**. - -Abra o arquivo que você acabou de baixar para instalar o aplicativo. - -Abra o aplicativo Zoom. - -Se você já possui uma conta Zoom, faça login usando suas credenciais. - -Caso contrário, clique no link **Cadastre-se gratuitamente**: - -![Cadastre-se gratuitamente para ampliar](images/zoom_sign_up_free.png) - -Você será redirecionado ao site do Zoom para preencher um formulário. - -Quando terminar, volte para o aplicativo Zoom e faça login usando suas credenciais. - -Você deverá então ver uma tela como esta: - -![Zoom tela inicial](images/zoom_home_screen.png) - -Agora você pode fechar o aplicativo Zoom. diff --git a/_partials/ubuntu_settings.md b/_partials/ubuntu_settings.md index d2027869..305c3d4f 100644 --- a/_partials/ubuntu_settings.md +++ b/_partials/ubuntu_settings.md @@ -48,4 +48,3 @@ You must pin: - VS Code - Your Internet browser - Slack -- Zoom diff --git a/_partials/windows_settings.md b/_partials/windows_settings.md index 2f433ad7..8a3a016b 100644 --- a/_partials/windows_settings.md +++ b/_partials/windows_settings.md @@ -49,4 +49,3 @@ You must pin: - VS Code - Your Internet browser - Slack -- Zoom diff --git a/_partials/zoom.md b/_partials/zoom.md deleted file mode 100644 index 055ed753..00000000 --- a/_partials/zoom.md +++ /dev/null @@ -1,29 +0,0 @@ -## Zoom - -To be able to interact when we are not in the same physical room, we will be using [Zoom](https://zoom.us/), a video conferencing tool. - -:warning: If you already have Zoom installed, please make sure that the version is at least **5.6**. - -Go to [zoom.us/download](https://zoom.us/download). - -Under **Zoom Client** click the **Download** button. - -Open the file you have just downloaded to install the app. - -Open the Zoom app. - -If you already have a Zoom account, sign in using your credentials. - -If not, click on the **Sign Up Free** link: - -![Sign Up Free to Zoom](images/zoom_sign_up_free.png) - -You will be redirected to Zoom's website to complete a form. - -When it's done, go back to the Zoom app and sign in using your credentials. - -You should then see a screen like this: - -![Zoom Home Screen](images/zoom_home_screen.png) - -You can now close the Zoom app. diff --git a/build.rb b/build.rb index cb05e6e4..1fa80ed6 100755 --- a/build.rb +++ b/build.rb @@ -9,7 +9,6 @@ MACOS = %w[ intro - macos_zoom github macos_command_line_tools macos_homebrew @@ -35,7 +34,6 @@ WINDOWS = %w[ intro - zoom github windows_version windows_virtualization @@ -66,7 +64,6 @@ UBUNTU = %w[ intro - zoom github ubuntu_vscode vscode_extensions diff --git a/macos.cn.md b/macos.cn.md index 8b17581a..bf851286 100644 --- a/macos.cn.md +++ b/macos.cn.md @@ -6,41 +6,6 @@ 让我们开始吧 :rocket: -## Zoom - -为了让我们能够线上的交流,我们将会使用[Zoom](https://zoom.us/),一个视频会议工具。 - -:warning: 如果你已经安装了Zoom,请确保它的版本至少是**5.6**。 - -打开[zoom.us/download](https://zoom.us/download). - -在**Zoom会议客户端(Zoom Client)**下方点击**下载(Download)**按钮。 - -打开你刚刚下载的文件并安装应用程序。 - -打开Zoom。 - -如果你的Mac使用Apple silicon的话, [你必须安装Rosetta](https://support.apple.com/en-us/HT211861)。点击安装(install),然后输入你的用户名和密码来允许安装。 - -![Install Rosetta](https://support.apple.com/library/content/dam/edam/applecare/images/en_US/macos/Big-Sur/macos-big-sur-software-update-rosetta-alert.jpg) - -如果你已经有Zoom账号了,那就用你的账号密码登陆吧。 - -如果没有账号的话,点击**Sign Up Free**链接: - -![Sign Up Free to Zoom](images/zoom_sign_up_free.png) - -接下来,它会跳转到Zoom的网站让你填一个表。 - -完成这个表之后,回到Zoom软件,然后用你的账号密码登陆吧。 - -你应该会看到下面这个界面: - -![Zoom Home Screen](images/zoom_home_screen.png) - -现在你可以关掉Zoom了。 - - ## GitHub账户 你有注册好GitHub账户嘛?如果还没有,[现在注册](https://github.com/join)。 @@ -694,7 +659,6 @@ defaults write com.apple.screencapture location "${HOME}/Desktop" - VS Code - 你的浏览器 - Slack -- Zoom ## 设置完成啦! diff --git a/macos.es.md b/macos.es.md index 6aef019c..447dea1f 100644 --- a/macos.es.md +++ b/macos.es.md @@ -7,41 +7,6 @@ Por favor, **léelas cuidadosamente y ejecuta todos los comandos en el orden ind ¡Comencemos! :rocket: -## Zoom - -Para poder interactuar cuando no estemos en el mismo lugar físico, usaremos [Zoom](https://zoom.us/), una herramienta de videoconferencia. - -:warning: Si ya tienes Zoom instalado, por favor asegúrate de que por lo menos tienes la versión **5.6**. - -Ve a [zoom.us/download](https://zoom.us/download). - -Haz clic en el botón **Download** debajo de **Zoom Client**. - -Abre el archivo que acabas de descargar para instalar la aplicación. - -Abre la aplicación Zoom. - -Si tienes una Mac con Apple silicon, [te pedirán instalar Rosetta](https://support.apple.com/en-us/HT211861). Haz clic en instalar. Luego escribe tu nombre y contraseña para que corra la instalación. - -![Instala Rosetta](https://support.apple.com/library/content/dam/edam/applecare/images/en_US/macos/Big-Sur/macos-big-sur-software-update-rosetta-alert.jpg) - -Si ya tienes una cuenta Zoom, inicia sesión con tus credenciales. - -Si no, haz clic en el enlace **Sign Up Free**, que significa registrarse gratuitamente: - -![Registrarse gratuitamente en Zoom](images/zoom_sign_up_free.png) - -Te redireccionarán a la página de Zoom para que completes un formulario. - -Cuando termines, regresa a la aplicación Zoom e inicia sesión usando tus credenciales. - -Deberías ver una pantalla como la siguiente: - -![Pantalla de inicio de Zoom](images/zoom_home_screen.png) - -Ya puedes cerrar la aplicación Zoom. - - ## Cuenta GitHub ¿Ya tienes una cuenta GitHub? Si no es el caso, [ábrela ya](https://github.com/join). @@ -733,7 +698,6 @@ Ancla lo siguiente: - VS Code - Tu navegador de Internet - Slack -- Zoom ## ¡Fin de la configuración! diff --git a/macos.fr.md b/macos.fr.md index c8b89ee9..367d28f7 100644 --- a/macos.fr.md +++ b/macos.fr.md @@ -7,41 +7,6 @@ Les instructions ci-dessous vont te permettre de configurer ton ordinateur pour C’est parti :rocket: -## Zoom - -Pour interagir quand on ne sera pas dans la même pièce, on utilisera [Zoom](https://zoom.us), un outil de visioconférence. - -:warning: Si Zoom est déjà installé sur ton ordinateur, vérifie qu’il s’agit au moins de la version **5.6**. - -Va sur [zoom.us/download](https://zoom.us/download). - -Sous **Client Zoom**, clique sur le bouton **Télécharger**. - -Ouvre le fichier que tu viens de télécharger pour installer l’application. - -Ouvre l’application Zoom. - -Si tu as un Mac avec un processeur Apple Silicon, [on te demande d'installer Rosetta](https://support.apple.com/en-us/HT211861). Clique sur installer, puis tape ton nom d'utilisateur et ton mot de passe pour autoriser l'installation. - -![Installer Rosetta](https://support.apple.com/library/content/dam/edam/applecare/images/en_US/macos/Big-Sur/macos-big-sur-software-update-rosetta-alert.jpg) - -Si tu as déjà un compte Zoom, connecte-toi avec tes identifiants. - -Sinon, clique sur le lien **Inscrivez-vous, c’est gratuit** : - -![Inscrivez-vous à Zoom, c’est gratuit](images/zoom_sign_up_free.png) - -Sur le site Web de Zoom, remplis le formulaire. - -Une fois que tu as terminé, retourne sur l’application Zoom et connecte-toi avec tes identifiants. - -Tu devrais voir apparaître un écran ressemblant à ça : - -![Écran d’accueil Zoom](images/zoom_home_screen.png) - -Tu peux fermer l’application Zoom. - - ## Compte GitHub Est-ce que tu as déjà un compte GitHub ? Si ce n’est pas le cas, [inscris-toi maintenant](https://github.com/join). @@ -729,7 +694,6 @@ Tu dois épingler : - VS Code - ton navigateur Internet - Slack -- Zoom ## La configuration est terminée ! diff --git a/macos.md b/macos.md index 646963f8..39fdd997 100644 --- a/macos.md +++ b/macos.md @@ -11,41 +11,6 @@ You can also have a look at [our cheatsheets](https://github.com/lewagon/setup/t Let's start :rocket: -## Zoom - -To be able to interact when we are not in the same physical room, we will be using [Zoom](https://zoom.us/), a video conferencing tool. - -:warning: If you already have Zoom installed, please make sure that the version is at least **5.6**. - -Go to [zoom.us/download](https://zoom.us/download). - -Under **Zoom Client** click the **Download** button. - -Open the file you have just downloaded to install the app. - -Open the Zoom app. - -If you have a Mac with Apple silicon, [you are asked to install Rosetta](https://support.apple.com/en-us/HT211861). Click Install, then enter your user name and password to allow installation to proceed. - -![Install Rosetta](https://support.apple.com/library/content/dam/edam/applecare/images/en_US/macos/Big-Sur/macos-big-sur-software-update-rosetta-alert.jpg) - -If you already have a Zoom account, sign in using your credentials. - -If not, click on the **Sign Up Free** link: - -![Sign Up Free to Zoom](images/zoom_sign_up_free.png) - -You will be redirected to Zoom's website to complete a form. - -When it's done, go back to the Zoom app and sign in using your credentials. - -You should then see a screen like this: - -![Zoom Home Screen](images/zoom_home_screen.png) - -You can now close the Zoom app. - - ## GitHub account Have you signed up to GitHub? If not, [do it right away](https://github.com/join). @@ -770,8 +735,6 @@ You must pin: - VS Code - Your Internet browser - Slack -- Zoom - ## Setup completed! diff --git a/macos.pt.md b/macos.pt.md index c563c744..5e30b2fb 100644 --- a/macos.pt.md +++ b/macos.pt.md @@ -11,41 +11,6 @@ Você também pode dar uma olhada em [nossas cheatsheets](https://github.com/lew Vamos começar :rocket: -## Zoom - -Para poder interagir quando não estivermos na mesma sala física, usaremos o [Zoom](https://zoom.us/), uma ferramenta de videoconferência. - -:warning: Se você já possui o Zoom instalado, certifique-se de que a versão seja pelo menos **5.6**. - -Acesse [zoom.us/download](https://zoom.us/download). - -Em **Cliente Zoom** clique no botão **Baixar**. - -Abra o arquivo que você acabou de baixar para instalar o aplicativo. - -Abra o aplicativo Zoom. - -Se você tiver um Mac com Apple Silicon, [você será solicitado a instalar o Rosetta](https://support.apple.com/en-us/HT211861). Clique em Instalar e digite seu nome de usuário e senha para permitir que a instalação continue. - -![Instale o Rosetta](https://support.apple.com/library/content/dam/edam/applecare/images/en_US/macos/Big-Sur/macos-big-sur-software-update-rosetta-alert. jpg) - -Se você já possui uma conta Zoom, faça login usando suas credenciais. - -Caso contrário, clique no link **Cadastre-se gratuitamente**: - -![Cadastre-se gratuitamente para ampliar](images/zoom_sign_up_free.png) - -Você será redirecionado ao site do Zoom para preencher um formulário. - -Quando terminar, volte para o aplicativo Zoom e faça login usando suas credenciais. - -Você deverá então ver uma tela como esta: - -![Zoom tela inicial](images/zoom_home_screen.png) - -Agora você pode fechar o aplicativo Zoom. - - ## Conta GitHub Você se inscreveu no GitHub? Caso contrário, [faça isso imediatamente](https://github.com/join). @@ -768,7 +733,6 @@ Você deve fixar: - VS Code - Seu navegador de Internet - Slack -- Zoom ## Configuração concluída! diff --git a/ubuntu.cn.md b/ubuntu.cn.md index 3ff4e408..c0f75c84 100644 --- a/ubuntu.cn.md +++ b/ubuntu.cn.md @@ -6,36 +6,6 @@ 让我们开始吧 :rocket: -## Zoom - -为了让我们能够线上的交流,我们将会使用[Zoom](https://zoom.us/),一个视频会议工具。 - -:warning: 如果你已经安装了Zoom,请确保它的版本至少是**5.6**。 - -打开[https://zoom.us/download](https://zoom.us/download)。 - -在**Zoom会议客户端(Zoom Client)**下方点击**下载(Download)**按钮。 - -打开你刚刚下载的文件并安装应用程序。 - -打开Zoom。 - -如果你已经有Zoom账号了,那就用你的账号密码登陆吧。 - -如果没有账号的话,点击**Sign Up Free**链接: - -![Sign Up Free to Zoom](images/zoom_sign_up_free.png) - -接下来,它会跳转到Zoom的网站让你填一个表。 - -完成这个表之后,回到Zoom软件,然后用你的账号密码登陆吧。 - -你应该会看到下面这个界面: - -![Zoom Home Screen](images/zoom_home_screen.png) - -现在你可以关掉Zoom了。 - ## GitHub账户 @@ -664,7 +634,6 @@ You must pin: - VS Code - Your Internet browser - Slack -- Zoom ## 设置完成啦! diff --git a/ubuntu.es.md b/ubuntu.es.md index ac046f35..f624cd03 100644 --- a/ubuntu.es.md +++ b/ubuntu.es.md @@ -7,37 +7,6 @@ Por favor, **léelas cuidadosamente y ejecuta todos los comandos en el orden ind ¡Comencemos! :rocket: -## Zoom - -Para poder interactuar cuando no estemos en el mismo lugar físico, usaremos [Zoom](https://zoom.us/), una herramienta de videoconferencia. - -:warning: Si ya tienes Zoom instalado, por favor asegúrate de que por lo menos tienes versión **5.6**. - -Ve a [zoom.us/download](https://zoom.us/download). - -Haz clic en el botón **Download** debajo de **Zoom Client**. - -Abre el archivo que acabas de descargar para instalar la aplicación. - -Abre la aplicación Zoom. - -Si ya tienes una cuenta Zoom, inicia sesión con tus credenciales. - -Si no, haz clic en el enlace **Sign Up Free**, que significa registrarse gratuitamente: - -![Registrarse gratuitamente en Zoom](images/zoom_sign_up_free.png) - -Te redireccionarán a la página de Zoom para que completes un formulario. - -Cuando termines, regresa a la aplicación Zoom e inicia sesión usando tus credenciales. - -Deberías ver una pantalla como la siguiente: - -![Pantalla de inicio de Zoom](images/zoom_home_screen.png) - -Ya puedes cerrar la aplicación Zoom. - - ## Cuenta GitHub ¿Ya tienes una cuenta GitHub? Si no es el caso, [ábrela ya](https://github.com/join). @@ -689,7 +658,6 @@ Ancla lo siguiente: - VS Code - Tu navegador de Internet - Slack -- Zoom ## ¡Fin de la configuración! diff --git a/ubuntu.fr.md b/ubuntu.fr.md index 7b83d091..c08a4309 100644 --- a/ubuntu.fr.md +++ b/ubuntu.fr.md @@ -7,37 +7,6 @@ Les instructions ci-dessous vont te permettre de configurer ton ordinateur pour C’est parti :rocket: -## Zoom - -Pour interagir quand on ne sera pas dans la même pièce, on utilisera [Zoom](https://zoom.us), un outil de visioconférence. - -:warning: Si Zoom est déjà installé sur ton ordinateur, vérifie qu’il s’agit au moins de la version **5.6**. - -Va sur [zoom.us/download](https://zoom.us/download). - -Sous **Client Zoom**, clique sur le bouton **Télécharger**. - -Ouvre le fichier que tu viens de télécharger pour installer l’application. - -Ouvre l’application Zoom. - -Si tu as déjà un compte Zoom, connecte-toi avec tes identifiants. - -Sinon, clique sur le lien **Inscrivez-vous, c’est gratuit** : - -![Inscrivez-vous à Zoom, c’est gratuit](images/zoom_sign_up_free.png) - -Sur le site Web de Zoom, remplis le formulaire. - -Une fois que tu as terminé, retourne sur l’application Zoom et connecte-toi avec tes identifiants. - -Tu devrais voir apparaître un écran ressemblant à ça : - -![Écran d’accueil Zoom](images/zoom_home_screen.png) - -Tu peux fermer l’application Zoom. - - ## Compte GitHub Est-ce que tu as déjà un compte GitHub ? Si ce n’est pas le cas, [inscris-toi maintenant](https://github.com/join). @@ -690,7 +659,6 @@ Tu dois épingler : - VS Code - ton navigateur Internet - Slack -- Zoom ## La configuration est terminée ! diff --git a/ubuntu.md b/ubuntu.md index 7b7aa487..295aa3f0 100644 --- a/ubuntu.md +++ b/ubuntu.md @@ -11,37 +11,6 @@ You can also have a look at [our cheatsheets](https://github.com/lewagon/setup/t Let's start :rocket: -## Zoom - -To be able to interact when we are not in the same physical room, we will be using [Zoom](https://zoom.us/), a video conferencing tool. - -:warning: If you already have Zoom installed, please make sure that the version is at least **5.6**. - -Go to [zoom.us/download](https://zoom.us/download). - -Under **Zoom Client** click the **Download** button. - -Open the file you have just downloaded to install the app. - -Open the Zoom app. - -If you already have a Zoom account, sign in using your credentials. - -If not, click on the **Sign Up Free** link: - -![Sign Up Free to Zoom](images/zoom_sign_up_free.png) - -You will be redirected to Zoom's website to complete a form. - -When it's done, go back to the Zoom app and sign in using your credentials. - -You should then see a screen like this: - -![Zoom Home Screen](images/zoom_home_screen.png) - -You can now close the Zoom app. - - ## GitHub account Have you signed up to GitHub? If not, [do it right away](https://github.com/join). @@ -727,7 +696,6 @@ You must pin: - VS Code - Your Internet browser - Slack -- Zoom ## Setup completed! diff --git a/ubuntu.pt.md b/ubuntu.pt.md index a92837fd..be3c6445 100644 --- a/ubuntu.pt.md +++ b/ubuntu.pt.md @@ -11,37 +11,6 @@ Você também pode dar uma olhada em [nossas cheatsheets](https://github.com/lew Vamos começar :rocket: -## Zoom - -Para poder interagir quando não estivermos na mesma sala física, usaremos o [Zoom](https://zoom.us/), uma ferramenta de videoconferência. - -:warning: Se você já possui o Zoom instalado, certifique-se de que a versão seja pelo menos **5.6**. - -Acesse [zoom.us/download](https://zoom.us/download). - -Em **Cliente Zoom** clique no botão **Baixar**. - -Abra o arquivo que você acabou de baixar para instalar o aplicativo. - -Abra o aplicativo Zoom. - -Se você já possui uma conta Zoom, faça login usando suas credenciais. - -Caso contrário, clique no link **Cadastre-se gratuitamente**: - -![Cadastre-se gratuitamente para ampliar](images/zoom_sign_up_free.png) - -Você será redirecionado ao site do Zoom para preencher um formulário. - -Quando terminar, volte para o aplicativo Zoom e faça login usando suas credenciais. - -Você deverá então ver uma tela como esta: - -![Zoom tela inicial](images/zoom_home_screen.png) - -Agora você pode fechar o aplicativo Zoom. - - ## Conta GitHub Você se inscreveu no GitHub? Caso contrário, [faça isso imediatamente](https://github.com/join). @@ -726,7 +695,6 @@ Você deve fixar: - VS Code - Seu navegador de Internet - Slack -- Zoom ## Configuração concluída! diff --git a/windows.cn.md b/windows.cn.md index ce44a435..6015ac41 100644 --- a/windows.cn.md +++ b/windows.cn.md @@ -6,36 +6,6 @@ 让我们开始吧 :rocket: -## Zoom - -为了让我们能够线上的交流,我们将会使用[Zoom](https://zoom.us/),一个视频会议工具。 - -:warning: 如果你已经安装了Zoom,请确保它的版本至少是**5.6**。 - -打开[https://zoom.us/download](https://zoom.us/download)。 - -在**Zoom会议客户端(Zoom Client)**下方点击**下载(Download)**按钮。 - -打开你刚刚下载的文件并安装应用程序。 - -打开Zoom。 - -如果你已经有Zoom账号了,那就用你的账号密码登陆吧。 - -如果没有账号的话,点击**Sign Up Free**链接: - -![Sign Up Free to Zoom](images/zoom_sign_up_free.png) - -接下来,它会跳转到Zoom的网站让你填一个表。 - -完成这个表之后,回到Zoom软件,然后用你的账号密码登陆吧。 - -你应该会看到下面这个界面: - -![Zoom Home Screen](images/zoom_home_screen.png) - -现在你可以关掉Zoom了。 - ## GitHub账户 diff --git a/windows.es.md b/windows.es.md index bf5d3add..9b908b34 100644 --- a/windows.es.md +++ b/windows.es.md @@ -7,37 +7,6 @@ Por favor, **léelas cuidadosamente y ejecuta todos los comandos en el orden ind ¡Comencemos! :rocket: -## Zoom - -Para poder interactuar cuando no estemos en el mismo lugar físico, usaremos [Zoom](https://zoom.us/), una herramienta de videoconferencia. - -:warning: Si ya tienes Zoom instalado, por favor asegúrate de que por lo menos tienes versión **5.6**. - -Ve a [zoom.us/download](https://zoom.us/download). - -Haz clic en el botón **Download** debajo de **Zoom Client**. - -Abre el archivo que acabas de descargar para instalar la aplicación. - -Abre la aplicación Zoom. - -Si ya tienes una cuenta Zoom, inicia sesión con tus credenciales. - -Si no, haz clic en el enlace **Sign Up Free**, que significa registrarse gratuitamente: - -![Registrarse gratuitamente en Zoom](images/zoom_sign_up_free.png) - -Te redireccionarán a la página de Zoom para que completes un formulario. - -Cuando termines, regresa a la aplicación Zoom e inicia sesión usando tus credenciales. - -Deberías ver una pantalla como la siguiente: - -![Pantalla de inicio de Zoom](images/zoom_home_screen.png) - -Ya puedes cerrar la aplicación Zoom. - - ## Cuenta GitHub ¿Ya tienes una cuenta GitHub? Si no es el caso, [ábrela ya](https://github.com/join). @@ -1253,7 +1222,6 @@ Ancla lo siguiente: - VS Code - Tu navegador de Internet - Slack -- Zoom ## ¡Fin de la configuración! diff --git a/windows.fr.md b/windows.fr.md index 4b5764fe..94420e42 100644 --- a/windows.fr.md +++ b/windows.fr.md @@ -7,37 +7,6 @@ Les instructions ci-dessous vont te permettre de configurer ton ordinateur pour C’est parti :rocket: -## Zoom - -Pour interagir quand on ne sera pas dans la même pièce, on utilisera [Zoom](https://zoom.us), un outil de visioconférence. - -:warning: Si Zoom est déjà installé sur ton ordinateur, vérifie qu’il s’agit au moins de la version **5.6**. - -Va sur [zoom.us/download](https://zoom.us/download). - -Sous **Client Zoom**, clique sur le bouton **Télécharger**. - -Ouvre le fichier que tu viens de télécharger pour installer l’application. - -Ouvre l’application Zoom. - -Si tu as déjà un compte Zoom, connecte-toi avec tes identifiants. - -Sinon, clique sur le lien **Inscrivez-vous, c’est gratuit** : - -![Inscrivez-vous à Zoom, c’est gratuit](images/zoom_sign_up_free.png) - -Sur le site Web de Zoom, remplis le formulaire. - -Une fois que tu as terminé, retourne sur l’application Zoom et connecte-toi avec tes identifiants. - -Tu devrais voir apparaître un écran ressemblant à ça : - -![Écran d’accueil Zoom](images/zoom_home_screen.png) - -Tu peux fermer l’application Zoom. - - ## Compte GitHub Est-ce que tu as déjà un compte GitHub ? Si ce n’est pas le cas, [inscris-toi maintenant](https://github.com/join). @@ -1255,7 +1224,6 @@ Tu dois épingler : - VS Code - ton navigateur Internet - Slack -- Zoom ## La configuration est terminée ! diff --git a/windows.md b/windows.md index c7332cc5..3189abc4 100644 --- a/windows.md +++ b/windows.md @@ -11,37 +11,6 @@ You can also have a look at [our cheatsheets](https://github.com/lewagon/setup/t Let's start :rocket: -## Zoom - -To be able to interact when we are not in the same physical room, we will be using [Zoom](https://zoom.us/), a video conferencing tool. - -:warning: If you already have Zoom installed, please make sure that the version is at least **5.6**. - -Go to [zoom.us/download](https://zoom.us/download). - -Under **Zoom Client** click the **Download** button. - -Open the file you have just downloaded to install the app. - -Open the Zoom app. - -If you already have a Zoom account, sign in using your credentials. - -If not, click on the **Sign Up Free** link: - -![Sign Up Free to Zoom](images/zoom_sign_up_free.png) - -You will be redirected to Zoom's website to complete a form. - -When it's done, go back to the Zoom app and sign in using your credentials. - -You should then see a screen like this: - -![Zoom Home Screen](images/zoom_home_screen.png) - -You can now close the Zoom app. - - ## GitHub account Have you signed up to GitHub? If not, [do it right away](https://github.com/join). @@ -1311,7 +1280,6 @@ You must pin: - VS Code - Your Internet browser - Slack -- Zoom ## Setup completed! diff --git a/windows.pt.md b/windows.pt.md index 69a88d0a..a0c497e3 100644 --- a/windows.pt.md +++ b/windows.pt.md @@ -11,37 +11,6 @@ Você também pode dar uma olhada em [nossas cheatsheets](https://github.com/lew Vamos começar :rocket: -## Zoom - -Para poder interagir quando não estivermos na mesma sala física, usaremos o [Zoom](https://zoom.us/), uma ferramenta de videoconferência. - -:warning: Se você já possui o Zoom instalado, certifique-se de que a versão seja pelo menos **5.6**. - -Acesse [zoom.us/download](https://zoom.us/download). - -Em **Cliente Zoom** clique no botão **Baixar**. - -Abra o arquivo que você acabou de baixar para instalar o aplicativo. - -Abra o aplicativo Zoom. - -Se você já possui uma conta Zoom, faça login usando suas credenciais. - -Caso contrário, clique no link **Cadastre-se gratuitamente**: - -![Cadastre-se gratuitamente para ampliar](images/zoom_sign_up_free.png) - -Você será redirecionado ao site do Zoom para preencher um formulário. - -Quando terminar, volte para o aplicativo Zoom e faça login usando suas credenciais. - -Você deverá então ver uma tela como esta: - -![Zoom tela inicial](images/zoom_home_screen.png) - -Agora você pode fechar o aplicativo Zoom. - - ## Conta GitHub Você se inscreveu no GitHub? Caso contrário, [faça isso imediatamente](https://github.com/join). @@ -1307,7 +1276,6 @@ Você deve fixar: - VS Code - Seu navegador de Internet - Slack -- Zoom ## Configuração concluída! From 5a42be9da8ed9c941d74af6ed3936a167b21af0d Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 28 May 2025 07:59:06 +0000 Subject: [PATCH 16/47] setup guides generated --- macos.md | 1 + ubuntu.cn.md | 1 - windows.cn.md | 1 - 3 files changed, 1 insertion(+), 2 deletions(-) diff --git a/macos.md b/macos.md index 39fdd997..67ebbc13 100644 --- a/macos.md +++ b/macos.md @@ -736,6 +736,7 @@ You must pin: - Your Internet browser - Slack + ## Setup completed! Your computer is now all set for [Le Wagon Web Development course](https://www.lewagon.com/web-development-course/full-time) :muscle: :clap: diff --git a/ubuntu.cn.md b/ubuntu.cn.md index c0f75c84..f153a288 100644 --- a/ubuntu.cn.md +++ b/ubuntu.cn.md @@ -6,7 +6,6 @@ 让我们开始吧 :rocket: - ## GitHub账户 你有注册好GitHub账户嘛?如果还没有,[现在注册](https://github.com/join)。 diff --git a/windows.cn.md b/windows.cn.md index 6015ac41..c7d156fa 100644 --- a/windows.cn.md +++ b/windows.cn.md @@ -6,7 +6,6 @@ 让我们开始吧 :rocket: - ## GitHub账户 你有注册好GitHub账户嘛?如果还没有,[现在注册](https://github.com/join)。 From 6ae59fe52eb212c82066e8fa118b20788df301b0 Mon Sep 17 00:00:00 2001 From: Alexander Dubovoy <39504104+ajdubovoy@users.noreply.github.com> Date: Mon, 7 Jul 2025 11:56:59 +0200 Subject: [PATCH 17/47] Switch to ruby-lsp VSCode plugin (#489) resolve https://github.com/lewagon/teachers/issues/1780 It seemed to work for me locally. The only thing I wasn't sure of is if we needed to do anything to make it play nice with `rubocop` but maybe no...? --- _partials/cn/vscode_extensions.md | 4 ++-- _partials/es/vscode_extensions.md | 4 ++-- _partials/fr/vscode_extensions.md | 4 ++-- _partials/pt/vscode_extensions.md | 4 ++-- _partials/vscode_extensions.md | 4 ++-- build.rb | 2 +- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/_partials/cn/vscode_extensions.md b/_partials/cn/vscode_extensions.md index 7c22e412..8b53779f 100644 --- a/_partials/cn/vscode_extensions.md +++ b/_partials/cn/vscode_extensions.md @@ -10,7 +10,7 @@ code --install-extension ms-vscode.sublime-keybindings code --install-extension emmanuelbeziat.vscode-great-icons code --install-extension MS-vsliveshare.vsliveshare -code --install-extension rebornix.ruby +code --install-extension shopify.ruby-lsp code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite @@ -22,7 +22,7 @@ code --install-extension anteprimorac.html-end-tag-labels - [Sublime Text Keymap and Settings Importer](https://marketplace.visualstudio.com/items?itemName=ms-vscode.sublime-keybindings) - [VSCode Great Icons](https://marketplace.visualstudio.com/items?itemName=emmanuelbeziat.vscode-great-icons) - [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare) -- [Ruby](https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby) +- [Ruby](https://marketplace.visualstudio.com/items?itemName=shopify.ruby-lsp) - [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) - [Paste and Indent](https://marketplace.visualstudio.com/items?itemName=Rubymaniac.vscode-paste-and-indent) - [SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite) diff --git a/_partials/es/vscode_extensions.md b/_partials/es/vscode_extensions.md index 6ef2181d..6ea0adb4 100644 --- a/_partials/es/vscode_extensions.md +++ b/_partials/es/vscode_extensions.md @@ -11,7 +11,7 @@ code --install-extension ms-vscode.sublime-keybindings code --install-extension emmanuelbeziat.vscode-great-icons code --install-extension github.github-vscode-theme code --install-extension MS-vsliveshare.vsliveshare -code --install-extension rebornix.ruby +code --install-extension shopify.ruby-lsp code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite @@ -22,7 +22,7 @@ Aquí está la lista de las extensiones que estás instalando: - [Sublime Text Keymap and Settings Importer](https://marketplace.visualstudio.com/items?itemName=ms-vscode.sublime-keybindings) - [VSCode Great Icons](https://marketplace.visualstudio.com/items?itemName=emmanuelbeziat.vscode-great-icons) - [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare) -- [Ruby](https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby) +- [Ruby](https://marketplace.visualstudio.com/items?itemName=shopify.ruby-lsp) - [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) - [Paste and Indent](https://marketplace.visualstudio.com/items?itemName=Rubymaniac.vscode-paste-and-indent) - [SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite) diff --git a/_partials/fr/vscode_extensions.md b/_partials/fr/vscode_extensions.md index 33a34b1b..395c96da 100644 --- a/_partials/fr/vscode_extensions.md +++ b/_partials/fr/vscode_extensions.md @@ -10,7 +10,7 @@ Copie-colle les commandes suivantes dans le terminal : code --install-extension ms-vscode.sublime-keybindings code --install-extension emmanuelbeziat.vscode-great-icons code --install-extension MS-vsliveshare.vsliveshare -code --install-extension rebornix.ruby +code --install-extension shopify.ruby-lsp code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite @@ -21,7 +21,7 @@ Voici la liste des extensions que tu es en train d'installer : - [Sublime Text Keymap and Settings Importer](https://marketplace.visualstudio.com/items?itemName=ms-vscode.sublime-keybindings) - [VSCode Great Icons](https://marketplace.visualstudio.com/items?itemName=emmanuelbeziat.vscode-great-icons) - [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare) -- [Ruby](https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby) +- [Ruby](https://marketplace.visualstudio.com/items?itemName=shopify.ruby-lsp) - [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) - [Paste and Indent](https://marketplace.visualstudio.com/items?itemName=Rubymaniac.vscode-paste-and-indent) - [SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite) diff --git a/_partials/pt/vscode_extensions.md b/_partials/pt/vscode_extensions.md index 76c89610..35a72b17 100644 --- a/_partials/pt/vscode_extensions.md +++ b/_partials/pt/vscode_extensions.md @@ -11,7 +11,7 @@ code --install-extension ms-vscode.sublime-keybindings code --install-extension emmanuelbeziat.vscode-great-icons code --install-extension github.github-vscode-theme code --install-extension MS-vsliveshare.vsliveshare -code --install-extension rebornix.ruby +code --install-extension shopify.ruby-lsp code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite @@ -23,7 +23,7 @@ Aqui está uma lista das extensões que você está instalando: - [Sublime Text Keymap and Settings Importer](https://marketplace.visualstudio.com/items?itemName=ms-vscode.sublime-keybindings) - [VSCode Great Icons](https://marketplace.visualstudio.com/items?itemName=emmanuelbeziat.vscode-great-icons) - [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare) -- [Ruby](https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby) +- [Ruby](https://marketplace.visualstudio.com/items?itemName=shopify.ruby-lsp) - [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) - [Paste and Indent](https://marketplace.visualstudio.com/items?itemName=Rubymaniac.vscode-paste-and-indent) - [SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite) diff --git a/_partials/vscode_extensions.md b/_partials/vscode_extensions.md index 0510141f..dc94403b 100644 --- a/_partials/vscode_extensions.md +++ b/_partials/vscode_extensions.md @@ -11,7 +11,7 @@ code --install-extension ms-vscode.sublime-keybindings code --install-extension emmanuelbeziat.vscode-great-icons code --install-extension github.github-vscode-theme code --install-extension MS-vsliveshare.vsliveshare -code --install-extension rebornix.ruby +code --install-extension shopify.ruby-lsp code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite @@ -23,7 +23,7 @@ Here is a list of the extensions you are installing: - [Sublime Text Keymap and Settings Importer](https://marketplace.visualstudio.com/items?itemName=ms-vscode.sublime-keybindings) - [VSCode Great Icons](https://marketplace.visualstudio.com/items?itemName=emmanuelbeziat.vscode-great-icons) - [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare) -- [Ruby](https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby) +- [Ruby](https://marketplace.visualstudio.com/items?itemName=shopify.ruby-lsp) - [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) - [Paste and Indent](https://marketplace.visualstudio.com/items?itemName=Rubymaniac.vscode-paste-and-indent) - [SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite) diff --git a/build.rb b/build.rb index 1fa80ed6..cff0752e 100755 --- a/build.rb +++ b/build.rb @@ -4,7 +4,7 @@ 'RUBY_SETUP_VERSION' => "3.3.5", 'NVM_VERSION' => "0.39.1", 'NODE_VERSION' => "20.17.0", - 'GEMS' => "colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2" + 'GEMS' => "colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 ruby-lsp" } MACOS = %w[ From 0e22b46ecb4968e8b264187ca375be447cdcb5c7 Mon Sep 17 00:00:00 2001 From: github-actions Date: Mon, 7 Jul 2025 09:57:07 +0000 Subject: [PATCH 18/47] setup guides generated --- macos.cn.md | 6 +++--- macos.es.md | 6 +++--- macos.fr.md | 6 +++--- macos.md | 6 +++--- macos.pt.md | 6 +++--- ubuntu.cn.md | 6 +++--- ubuntu.es.md | 6 +++--- ubuntu.fr.md | 6 +++--- ubuntu.md | 6 +++--- ubuntu.pt.md | 6 +++--- windows.cn.md | 6 +++--- windows.es.md | 6 +++--- windows.fr.md | 6 +++--- windows.md | 6 +++--- windows.pt.md | 6 +++--- 15 files changed, 45 insertions(+), 45 deletions(-) diff --git a/macos.cn.md b/macos.cn.md index bf851286..4e56f4f4 100644 --- a/macos.cn.md +++ b/macos.cn.md @@ -142,7 +142,7 @@ code code --install-extension ms-vscode.sublime-keybindings code --install-extension emmanuelbeziat.vscode-great-icons code --install-extension MS-vsliveshare.vsliveshare -code --install-extension rebornix.ruby +code --install-extension shopify.ruby-lsp code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite @@ -154,7 +154,7 @@ code --install-extension anteprimorac.html-end-tag-labels - [Sublime Text Keymap and Settings Importer](https://marketplace.visualstudio.com/items?itemName=ms-vscode.sublime-keybindings) - [VSCode Great Icons](https://marketplace.visualstudio.com/items?itemName=emmanuelbeziat.vscode-great-icons) - [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare) -- [Ruby](https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby) +- [Ruby](https://marketplace.visualstudio.com/items?itemName=shopify.ruby-lsp) - [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) - [Paste and Indent](https://marketplace.visualstudio.com/items?itemName=Rubymaniac.vscode-paste-and-indent) - [SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite) @@ -400,7 +400,7 @@ gem update bundler 在你的终端里,复制粘贴下面的指令: ```bash -gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 +gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 ruby-lsp ``` :heavy_check_mark: 如果你看到 `xx gems installed`,那么一切正常 :+1: diff --git a/macos.es.md b/macos.es.md index 447dea1f..7a853dcf 100644 --- a/macos.es.md +++ b/macos.es.md @@ -145,7 +145,7 @@ code --install-extension ms-vscode.sublime-keybindings code --install-extension emmanuelbeziat.vscode-great-icons code --install-extension github.github-vscode-theme code --install-extension MS-vsliveshare.vsliveshare -code --install-extension rebornix.ruby +code --install-extension shopify.ruby-lsp code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite @@ -156,7 +156,7 @@ Aquí está la lista de las extensiones que estás instalando: - [Sublime Text Keymap and Settings Importer](https://marketplace.visualstudio.com/items?itemName=ms-vscode.sublime-keybindings) - [VSCode Great Icons](https://marketplace.visualstudio.com/items?itemName=emmanuelbeziat.vscode-great-icons) - [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare) -- [Ruby](https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby) +- [Ruby](https://marketplace.visualstudio.com/items?itemName=shopify.ruby-lsp) - [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) - [Paste and Indent](https://marketplace.visualstudio.com/items?itemName=Rubymaniac.vscode-paste-and-indent) - [SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite) @@ -427,7 +427,7 @@ gem update bundler En tu terminal, copia y pega el siguiente comando: ```bash -gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 +gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 ruby-lsp ``` :heavy_check_mark: Si obtienes `xx gems installed`, entonces todo está bien :+1: diff --git a/macos.fr.md b/macos.fr.md index 367d28f7..eba290ed 100644 --- a/macos.fr.md +++ b/macos.fr.md @@ -143,7 +143,7 @@ Copie-colle les commandes suivantes dans le terminal : code --install-extension ms-vscode.sublime-keybindings code --install-extension emmanuelbeziat.vscode-great-icons code --install-extension MS-vsliveshare.vsliveshare -code --install-extension rebornix.ruby +code --install-extension shopify.ruby-lsp code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite @@ -154,7 +154,7 @@ Voici la liste des extensions que tu es en train d'installer : - [Sublime Text Keymap and Settings Importer](https://marketplace.visualstudio.com/items?itemName=ms-vscode.sublime-keybindings) - [VSCode Great Icons](https://marketplace.visualstudio.com/items?itemName=emmanuelbeziat.vscode-great-icons) - [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare) -- [Ruby](https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby) +- [Ruby](https://marketplace.visualstudio.com/items?itemName=shopify.ruby-lsp) - [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) - [Paste and Indent](https://marketplace.visualstudio.com/items?itemName=Rubymaniac.vscode-paste-and-indent) - [SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite) @@ -424,7 +424,7 @@ gem update bundler Copie-colle la commande suivante dans ton terminal : ```bash -gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 +gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 ruby-lsp ``` :heavy_check_mark: Si tu vois apparaître `xx gems installed`, c’est bon :+1: diff --git a/macos.md b/macos.md index 67ebbc13..5899431d 100644 --- a/macos.md +++ b/macos.md @@ -167,7 +167,7 @@ code --install-extension ms-vscode.sublime-keybindings code --install-extension emmanuelbeziat.vscode-great-icons code --install-extension github.github-vscode-theme code --install-extension MS-vsliveshare.vsliveshare -code --install-extension rebornix.ruby +code --install-extension shopify.ruby-lsp code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite @@ -179,7 +179,7 @@ Here is a list of the extensions you are installing: - [Sublime Text Keymap and Settings Importer](https://marketplace.visualstudio.com/items?itemName=ms-vscode.sublime-keybindings) - [VSCode Great Icons](https://marketplace.visualstudio.com/items?itemName=emmanuelbeziat.vscode-great-icons) - [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare) -- [Ruby](https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby) +- [Ruby](https://marketplace.visualstudio.com/items?itemName=shopify.ruby-lsp) - [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) - [Paste and Indent](https://marketplace.visualstudio.com/items?itemName=Rubymaniac.vscode-paste-and-indent) - [SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite) @@ -467,7 +467,7 @@ gem update bundler In your terminal, copy-paste the following command: ```bash -gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 +gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 ruby-lsp ``` :heavy_check_mark: If you get `xx gems installed`, then all good :+1: diff --git a/macos.pt.md b/macos.pt.md index 5e30b2fb..f5ae9fe2 100644 --- a/macos.pt.md +++ b/macos.pt.md @@ -167,7 +167,7 @@ code --install-extension ms-vscode.sublime-keybindings code --install-extension emmanuelbeziat.vscode-great-icons code --install-extension github.github-vscode-theme code --install-extension MS-vsliveshare.vsliveshare -code --install-extension rebornix.ruby +code --install-extension shopify.ruby-lsp code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite @@ -179,7 +179,7 @@ Aqui está uma lista das extensões que você está instalando: - [Sublime Text Keymap and Settings Importer](https://marketplace.visualstudio.com/items?itemName=ms-vscode.sublime-keybindings) - [VSCode Great Icons](https://marketplace.visualstudio.com/items?itemName=emmanuelbeziat.vscode-great-icons) - [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare) -- [Ruby](https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby) +- [Ruby](https://marketplace.visualstudio.com/items?itemName=shopify.ruby-lsp) - [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) - [Paste and Indent](https://marketplace.visualstudio.com/items?itemName=Rubymaniac.vscode-paste-and-indent) - [SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite) @@ -460,7 +460,7 @@ No mundo Ruby, chamamos bibliotecas externas de `gems`: são pedaços de código No seu terminal, copie e cole o seguinte comando: ```bash -gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 +gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 ruby-lsp ``` :heavy_check_mark: Se você tiver `xx gems installed`, então tudo bem :+1: diff --git a/ubuntu.cn.md b/ubuntu.cn.md index f153a288..c99ebbe9 100644 --- a/ubuntu.cn.md +++ b/ubuntu.cn.md @@ -63,7 +63,7 @@ code code --install-extension ms-vscode.sublime-keybindings code --install-extension emmanuelbeziat.vscode-great-icons code --install-extension MS-vsliveshare.vsliveshare -code --install-extension rebornix.ruby +code --install-extension shopify.ruby-lsp code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite @@ -75,7 +75,7 @@ code --install-extension anteprimorac.html-end-tag-labels - [Sublime Text Keymap and Settings Importer](https://marketplace.visualstudio.com/items?itemName=ms-vscode.sublime-keybindings) - [VSCode Great Icons](https://marketplace.visualstudio.com/items?itemName=emmanuelbeziat.vscode-great-icons) - [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare) -- [Ruby](https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby) +- [Ruby](https://marketplace.visualstudio.com/items?itemName=shopify.ruby-lsp) - [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) - [Paste and Indent](https://marketplace.visualstudio.com/items?itemName=Rubymaniac.vscode-paste-and-indent) - [SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite) @@ -380,7 +380,7 @@ gem update bundler 在你的终端里,复制粘贴下面的指令: ```bash -gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 +gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 ruby-lsp ``` :heavy_check_mark: 如果你看到 `xx gems installed`,那么一切正常 :+1: diff --git a/ubuntu.es.md b/ubuntu.es.md index f624cd03..1d2e3e42 100644 --- a/ubuntu.es.md +++ b/ubuntu.es.md @@ -65,7 +65,7 @@ code --install-extension ms-vscode.sublime-keybindings code --install-extension emmanuelbeziat.vscode-great-icons code --install-extension github.github-vscode-theme code --install-extension MS-vsliveshare.vsliveshare -code --install-extension rebornix.ruby +code --install-extension shopify.ruby-lsp code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite @@ -76,7 +76,7 @@ Aquí está la lista de las extensiones que estás instalando: - [Sublime Text Keymap and Settings Importer](https://marketplace.visualstudio.com/items?itemName=ms-vscode.sublime-keybindings) - [VSCode Great Icons](https://marketplace.visualstudio.com/items?itemName=emmanuelbeziat.vscode-great-icons) - [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare) -- [Ruby](https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby) +- [Ruby](https://marketplace.visualstudio.com/items?itemName=shopify.ruby-lsp) - [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) - [Paste and Indent](https://marketplace.visualstudio.com/items?itemName=Rubymaniac.vscode-paste-and-indent) - [SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite) @@ -405,7 +405,7 @@ gem update bundler En tu terminal, copia y pega el siguiente comando: ```bash -gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 +gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 ruby-lsp ``` :heavy_check_mark: Si obtienes `xx gems installed`, entonces todo está bien :+1: diff --git a/ubuntu.fr.md b/ubuntu.fr.md index c08a4309..e5f39786 100644 --- a/ubuntu.fr.md +++ b/ubuntu.fr.md @@ -64,7 +64,7 @@ Copie-colle les commandes suivantes dans le terminal : code --install-extension ms-vscode.sublime-keybindings code --install-extension emmanuelbeziat.vscode-great-icons code --install-extension MS-vsliveshare.vsliveshare -code --install-extension rebornix.ruby +code --install-extension shopify.ruby-lsp code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite @@ -75,7 +75,7 @@ Voici la liste des extensions que tu es en train d'installer : - [Sublime Text Keymap and Settings Importer](https://marketplace.visualstudio.com/items?itemName=ms-vscode.sublime-keybindings) - [VSCode Great Icons](https://marketplace.visualstudio.com/items?itemName=emmanuelbeziat.vscode-great-icons) - [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare) -- [Ruby](https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby) +- [Ruby](https://marketplace.visualstudio.com/items?itemName=shopify.ruby-lsp) - [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) - [Paste and Indent](https://marketplace.visualstudio.com/items?itemName=Rubymaniac.vscode-paste-and-indent) - [SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite) @@ -405,7 +405,7 @@ gem update bundler Copie-colle la commande suivante dans ton terminal : ```bash -gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 +gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 ruby-lsp ``` :heavy_check_mark: Si tu vois apparaître `xx gems installed`, c’est bon :+1: diff --git a/ubuntu.md b/ubuntu.md index 295aa3f0..a30ea55a 100644 --- a/ubuntu.md +++ b/ubuntu.md @@ -84,7 +84,7 @@ code --install-extension ms-vscode.sublime-keybindings code --install-extension emmanuelbeziat.vscode-great-icons code --install-extension github.github-vscode-theme code --install-extension MS-vsliveshare.vsliveshare -code --install-extension rebornix.ruby +code --install-extension shopify.ruby-lsp code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite @@ -96,7 +96,7 @@ Here is a list of the extensions you are installing: - [Sublime Text Keymap and Settings Importer](https://marketplace.visualstudio.com/items?itemName=ms-vscode.sublime-keybindings) - [VSCode Great Icons](https://marketplace.visualstudio.com/items?itemName=emmanuelbeziat.vscode-great-icons) - [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare) -- [Ruby](https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby) +- [Ruby](https://marketplace.visualstudio.com/items?itemName=shopify.ruby-lsp) - [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) - [Paste and Indent](https://marketplace.visualstudio.com/items?itemName=Rubymaniac.vscode-paste-and-indent) - [SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite) @@ -445,7 +445,7 @@ gem update bundler In your terminal, copy-paste the following command: ```bash -gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 +gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 ruby-lsp ``` :heavy_check_mark: If you get `xx gems installed`, then all good :+1: diff --git a/ubuntu.pt.md b/ubuntu.pt.md index be3c6445..047f4267 100644 --- a/ubuntu.pt.md +++ b/ubuntu.pt.md @@ -84,7 +84,7 @@ code --install-extension ms-vscode.sublime-keybindings code --install-extension emmanuelbeziat.vscode-great-icons code --install-extension github.github-vscode-theme code --install-extension MS-vsliveshare.vsliveshare -code --install-extension rebornix.ruby +code --install-extension shopify.ruby-lsp code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite @@ -96,7 +96,7 @@ Aqui está uma lista das extensões que você está instalando: - [Sublime Text Keymap and Settings Importer](https://marketplace.visualstudio.com/items?itemName=ms-vscode.sublime-keybindings) - [VSCode Great Icons](https://marketplace.visualstudio.com/items?itemName=emmanuelbeziat.vscode-great-icons) - [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare) -- [Ruby](https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby) +- [Ruby](https://marketplace.visualstudio.com/items?itemName=shopify.ruby-lsp) - [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) - [Paste and Indent](https://marketplace.visualstudio.com/items?itemName=Rubymaniac.vscode-paste-and-indent) - [SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite) @@ -438,7 +438,7 @@ No mundo Ruby, chamamos bibliotecas externas de `gems`: são pedaços de código No seu terminal, copie e cole o seguinte comando: ```bash -gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 +gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 ruby-lsp ``` :heavy_check_mark: Se você tiver `xx gems installed`, então tudo bem :+1: diff --git a/windows.cn.md b/windows.cn.md index c7d156fa..8de2bb13 100644 --- a/windows.cn.md +++ b/windows.cn.md @@ -495,7 +495,7 @@ wsl -l -v code --install-extension ms-vscode.sublime-keybindings code --install-extension emmanuelbeziat.vscode-great-icons code --install-extension MS-vsliveshare.vsliveshare -code --install-extension rebornix.ruby +code --install-extension shopify.ruby-lsp code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite @@ -507,7 +507,7 @@ code --install-extension anteprimorac.html-end-tag-labels - [Sublime Text Keymap and Settings Importer](https://marketplace.visualstudio.com/items?itemName=ms-vscode.sublime-keybindings) - [VSCode Great Icons](https://marketplace.visualstudio.com/items?itemName=emmanuelbeziat.vscode-great-icons) - [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare) -- [Ruby](https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby) +- [Ruby](https://marketplace.visualstudio.com/items?itemName=shopify.ruby-lsp) - [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) - [Paste and Indent](https://marketplace.visualstudio.com/items?itemName=Rubymaniac.vscode-paste-and-indent) - [SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite) @@ -914,7 +914,7 @@ gem update bundler 在你的终端里,复制粘贴下面的指令: ```bash -gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 +gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 ruby-lsp ``` :heavy_check_mark: 如果你看到 `xx gems installed`,那么一切正常 :+1: diff --git a/windows.es.md b/windows.es.md index 9b908b34..5e60f99d 100644 --- a/windows.es.md +++ b/windows.es.md @@ -516,7 +516,7 @@ code --install-extension ms-vscode.sublime-keybindings code --install-extension emmanuelbeziat.vscode-great-icons code --install-extension github.github-vscode-theme code --install-extension MS-vsliveshare.vsliveshare -code --install-extension rebornix.ruby +code --install-extension shopify.ruby-lsp code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite @@ -527,7 +527,7 @@ Aquí está la lista de las extensiones que estás instalando: - [Sublime Text Keymap and Settings Importer](https://marketplace.visualstudio.com/items?itemName=ms-vscode.sublime-keybindings) - [VSCode Great Icons](https://marketplace.visualstudio.com/items?itemName=emmanuelbeziat.vscode-great-icons) - [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare) -- [Ruby](https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby) +- [Ruby](https://marketplace.visualstudio.com/items?itemName=shopify.ruby-lsp) - [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) - [Paste and Indent](https://marketplace.visualstudio.com/items?itemName=Rubymaniac.vscode-paste-and-indent) - [SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite) @@ -942,7 +942,7 @@ gem update bundler En tu terminal, copia y pega el siguiente comando: ```bash -gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 +gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 ruby-lsp ``` :heavy_check_mark: Si obtienes `xx gems installed`, entonces todo está bien :+1: diff --git a/windows.fr.md b/windows.fr.md index 94420e42..a397babd 100644 --- a/windows.fr.md +++ b/windows.fr.md @@ -518,7 +518,7 @@ Copie-colle les commandes suivantes dans le terminal : code --install-extension ms-vscode.sublime-keybindings code --install-extension emmanuelbeziat.vscode-great-icons code --install-extension MS-vsliveshare.vsliveshare -code --install-extension rebornix.ruby +code --install-extension shopify.ruby-lsp code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite @@ -529,7 +529,7 @@ Voici la liste des extensions que tu es en train d'installer : - [Sublime Text Keymap and Settings Importer](https://marketplace.visualstudio.com/items?itemName=ms-vscode.sublime-keybindings) - [VSCode Great Icons](https://marketplace.visualstudio.com/items?itemName=emmanuelbeziat.vscode-great-icons) - [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare) -- [Ruby](https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby) +- [Ruby](https://marketplace.visualstudio.com/items?itemName=shopify.ruby-lsp) - [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) - [Paste and Indent](https://marketplace.visualstudio.com/items?itemName=Rubymaniac.vscode-paste-and-indent) - [SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite) @@ -945,7 +945,7 @@ gem update bundler Copie-colle la commande suivante dans ton terminal : ```bash -gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 +gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 ruby-lsp ``` :heavy_check_mark: Si tu vois apparaître `xx gems installed`, c’est bon :+1: diff --git a/windows.md b/windows.md index 3189abc4..7295b9d2 100644 --- a/windows.md +++ b/windows.md @@ -525,7 +525,7 @@ code --install-extension ms-vscode.sublime-keybindings code --install-extension emmanuelbeziat.vscode-great-icons code --install-extension github.github-vscode-theme code --install-extension MS-vsliveshare.vsliveshare -code --install-extension rebornix.ruby +code --install-extension shopify.ruby-lsp code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite @@ -537,7 +537,7 @@ Here is a list of the extensions you are installing: - [Sublime Text Keymap and Settings Importer](https://marketplace.visualstudio.com/items?itemName=ms-vscode.sublime-keybindings) - [VSCode Great Icons](https://marketplace.visualstudio.com/items?itemName=emmanuelbeziat.vscode-great-icons) - [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare) -- [Ruby](https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby) +- [Ruby](https://marketplace.visualstudio.com/items?itemName=shopify.ruby-lsp) - [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) - [Paste and Indent](https://marketplace.visualstudio.com/items?itemName=Rubymaniac.vscode-paste-and-indent) - [SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite) @@ -1002,7 +1002,7 @@ gem update bundler In your terminal, copy-paste the following command: ```bash -gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 +gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 ruby-lsp ``` :heavy_check_mark: If you get `xx gems installed`, then all good :+1: diff --git a/windows.pt.md b/windows.pt.md index a0c497e3..70575b82 100644 --- a/windows.pt.md +++ b/windows.pt.md @@ -524,7 +524,7 @@ code --install-extension ms-vscode.sublime-keybindings code --install-extension emmanuelbeziat.vscode-great-icons code --install-extension github.github-vscode-theme code --install-extension MS-vsliveshare.vsliveshare -code --install-extension rebornix.ruby +code --install-extension shopify.ruby-lsp code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite @@ -536,7 +536,7 @@ Aqui está uma lista das extensões que você está instalando: - [Sublime Text Keymap and Settings Importer](https://marketplace.visualstudio.com/items?itemName=ms-vscode.sublime-keybindings) - [VSCode Great Icons](https://marketplace.visualstudio.com/items?itemName=emmanuelbeziat.vscode-great-icons) - [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare) -- [Ruby](https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby) +- [Ruby](https://marketplace.visualstudio.com/items?itemName=shopify.ruby-lsp) - [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) - [Paste and Indent](https://marketplace.visualstudio.com/items?itemName=Rubymaniac.vscode-paste-and-indent) - [SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite) @@ -994,7 +994,7 @@ No mundo Ruby, chamamos bibliotecas externas de `gems`: são pedaços de código No seu terminal, copie e cole o seguinte comando: ```bash -gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 +gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 ruby-lsp ``` :heavy_check_mark: Se você tiver `xx gems installed`, então tudo bem :+1: From 68b2cdea203c455fe41be83a3c5049646c5c171d Mon Sep 17 00:00:00 2001 From: Jules van Rie <89742340+julesvanrie@users.noreply.github.com> Date: Wed, 9 Jul 2025 17:51:18 +0200 Subject: [PATCH 19/47] Set SSH default in gh auth command (#490) * Set SSH default in gh auth command Currently students have to select the protocol in the interactive questions asked by `gh`. The first option is HTTP, and regularly is chosen by accident instead of SSH. This remains undetected until late in the setup, or even later, and then requires several steps (especially if challenge repos have already been created). This commit sets the correct protocol in the command, so it no longer needs to be set in the interactive questions. * Format gh questions as list --- _partials/cn/gh_cli.md | 14 ++++++-------- _partials/es/gh_cli.md | 16 ++++++++-------- _partials/fr/gh_cli.md | 16 ++++++++-------- _partials/gh_cli.md | 16 ++++++++-------- _partials/pt/gh_cli.md | 15 ++++++++------- 5 files changed, 38 insertions(+), 39 deletions(-) diff --git a/_partials/cn/gh_cli.md b/_partials/cn/gh_cli.md index 6b3e5c6f..6953ed25 100644 --- a/_partials/cn/gh_cli.md +++ b/_partials/cn/gh_cli.md @@ -11,20 +11,18 @@ CLI是[Command-line Interface(命令行界面)](https://baike.baidu.com/item :warning: **不要更改下面指令中的`email`** ```bash -gh auth login -s 'user:email' -w +gh auth login -s 'user:email' -w --git-protocol ssh ``` -gh会问你几个问题: +`gh`会问你几个问题: -`What is your preferred protocol for Git operations?(你要用什么协议来执行Git操作?)` 让箭头`>`停在`SSH`前面,然后敲击回车。SSH使用SSH密钥来登陆用户,而不是用用户名和密码。 +- `Generate a new SSH key to add to your GitHub account?(生成新的SSH密钥,然后添加到Github账号上?)` 敲击回车,让gh帮你生成。 -`Generate a new SSH key to add to your GitHub account?(生成新的SSH密钥,然后添加到Github账号上?)` 敲击回车,让gh帮你生成。 + 如果你以前生成过SSH密钥,那你就会看到这个问题`Upload your SSH public key to your GitHub account?(上传公共密钥到Github账户上上吗?)` 上下移动箭头`>`,让它停在你想选的SSH公钥前面,然后敲击回车。 -如果你以前生成过SSH密钥,那你就会看到这个问题`Upload your SSH public key to your GitHub account?(上传公共密钥到Github账户上上吗?)` 上下移动箭头`>`,让它停在你想选的SSH公钥前面,然后敲击回车。 +- `Enter a passphrase for your new SSH key (Optional)(输入新的SSH密钥的密码(非必填))`. 输入一个密码,然后写下来或者记住它。这是保护你本地私钥的密码。然后敲击回车。 -`Enter a passphrase for your new SSH key (Optional)(输入新的SSH密钥的密码(非必填))`. 输入一个密码,然后写下来或者记住它。这是保护你本地私钥的密码。然后敲击回车。 - -`Title for your SSH key`。你可以把它留在建议的 "GitHub CLI",按`Enter`。 +- `Title for your SSH key`。你可以把它留在建议的 "GitHub CLI",按`Enter`。 然后你会看到下面的文字输出: diff --git a/_partials/es/gh_cli.md b/_partials/es/gh_cli.md index 3ecd5e6a..73f28e78 100644 --- a/_partials/es/gh_cli.md +++ b/_partials/es/gh_cli.md @@ -4,6 +4,8 @@ CLI es una abreviación de [Command-line Interface](https://en.wikipedia.org/wik En esta sección usaremos [GitHub CLI](https://cli.github.com/) para interactuar directamente con GitHub desde la terminal. +Usaremos la GitHub CLI (`gh`) para conectarnos a GitHub utilizando *SSH*, un protocolo para iniciar la sesión utilizando claves SSH en lugar de la famosa pareja nombre de usuario y contraseña. + Ya debería haberse instalado en tu computadora con los comandos que ejecutaste anteriormente. Lo primero que hay que hacer para **iniciar sesión** es copiar y pegar el comando siguiente en tu terminal: @@ -11,20 +13,18 @@ Lo primero que hay que hacer para **iniciar sesión** es copiar y pegar el coman :warning: **NO edites el `email`** ```bash -gh auth login -s 'user:email' -w +gh auth login -s 'user:email' -w --git-protocol ssh ``` -gh le hará algunas preguntas: - -`What is your preferred protocol for Git operations?` Con las flechas, elige `SSH` y presiona `Enter`. SSH es un protocolo para iniciar la sesión utilizando claves SSH en lugar de la famosa pareja nombre de usuario y contraseña. +`gh` le hará algunas preguntas: -`Generate a new SSH key to add to your GitHub account?` Presiona `Enter` para pedirle a gh que genere las claves SSH por ti. +- `Generate a new SSH key to add to your GitHub account?` Presiona `Enter` para pedirle a gh que genere las claves SSH por ti. -Si ya tienes claves SSH, verás en su lugar `Upload your SSH public key to your GitHub account?`Con las flechas, selecciona la ruta de tu archivo de clave pública y pulsa `Intro`. + Si ya tienes claves SSH, verás en su lugar `Upload your SSH public key to your GitHub account?`Con las flechas, selecciona la ruta de tu archivo de clave pública y pulsa `Intro`. -`Enter a passphrase for your new SSH key (Optional)`. Pon algo que quieras y que recuerdes. Es una contraseña para proteger tu private key que está almacenada en tu disco duro. Luego presiona `Enter`. +- `Enter a passphrase for your new SSH key (Optional)`. Pon algo que quieras y que recuerdes. Es una contraseña para proteger tu private key que está almacenada en tu disco duro. Luego presiona `Enter`. -`Title for your SSH key`. Puede dejarlo en la propuesta "GitHub CLI", presiona `Enter`. +- `Title for your SSH key`. Puede dejarlo en la propuesta "GitHub CLI", presiona `Enter`. Obtendrás el siguiente resultado: diff --git a/_partials/fr/gh_cli.md b/_partials/fr/gh_cli.md index 4070c41e..36d4988e 100644 --- a/_partials/fr/gh_cli.md +++ b/_partials/fr/gh_cli.md @@ -4,6 +4,8 @@ CLI est l’acronyme de [Command-line Interface](https://en.wikipedia.org/wiki/C Dans cette section, tu vas installer [GitHub CLI](https://cli.github.com/) pour interagir avec GitHub directement depuis le terminal. +Nous allons utiliser GitHub CLI (`gh`) pour nous connecter à GitHub en utilisant *SSH*, un protocole pour s'authentifier en utilisant des clés SSH au lieu de la fameuse paire nom d'utilisateur et mot de passe. + Elle doit déjà être installée sur ton ordinateur grâce aux commandes précédentes. Pour **te connecter**, commence par copier-coller la commande suivante dans ton terminal : @@ -11,20 +13,18 @@ Pour **te connecter**, commence par copier-coller la commande suivante dans ton :warning: **NE modifie PAS `email`** ```bash -gh auth login -s 'user:email' -w +gh auth login -s 'user:email' -w --git-protocol ssh ``` -gh va te poser quelques questions : - -`What is your preferred protocol for Git operations?` Avec les flèches, choisis `SSH` et appuie sur `Enter`. SSH est un protocole pour s'authentifier en utilisant des clés SSH au lieu de la fameuse paire nom d'utilisateur et mot de passe. +`gh` va te poser quelques questions : -`Generate a new SSH key to add to your GitHub account?` Appuie sur `Enter` pour demander à gh de générer les clés SSH pour toi. +- `Generate a new SSH key to add to your GitHub account?` Appuie sur `Enter` pour demander à gh de générer les clés SSH pour toi. -Si tu as déjà des clés SSH, tu verras à la place `Upload your SSH public key to your GitHub account?` Avec les flèches, sélectionne le chemain de ta clé publique et appuie sur `Enter`. + Si tu as déjà des clés SSH, tu verras à la place `Upload your SSH public key to your GitHub account?` Avec les flèches, sélectionne le chemain de ta clé publique et appuie sur `Enter`. -`Enter a passphrase for your new SSH key (Optional)`. Saisis un mot de passe dont tu te souviendras. Ce mot de passe sert à protéger ta clé privée enregistrée sur ton disque sur. Ensuite, appuie sur `Enter`. +- `Enter a passphrase for your new SSH key (Optional)`. Saisis un mot de passe dont tu te souviendras. Ce mot de passe sert à protéger ta clé privée enregistrée sur ton disque sur. Ensuite, appuie sur `Enter`. -`Title for your SSH key`. Tu peux laisser ce qui est proposé par défaut, à savoir "GitHub CLI", appuie sur `Enter`. +- `Title for your SSH key`. Tu peux laisser ce qui est proposé par défaut, à savoir "GitHub CLI", appuie sur `Enter`. Tu obtiendras le résultat suivant : diff --git a/_partials/gh_cli.md b/_partials/gh_cli.md index 4a367334..0322b84d 100644 --- a/_partials/gh_cli.md +++ b/_partials/gh_cli.md @@ -6,25 +6,25 @@ In this section, we will use [GitHub CLI](https://cli.github.com/) to interact w It should already be installed on your computer from the previous commands. +We will use the GitHub CLI (`gh`) to connect to GitHub using *SSH*, a protocol to log in using SSH keys instead of the well known username/password pair. + First in order to **login**, copy-paste the following command in your terminal: :warning: **DO NOT edit the `email`** ```bash -gh auth login -s 'user:email' -w +gh auth login -s 'user:email' -w --git-protocol ssh ``` -gh will ask you few questions: - -`What is your preferred protocol for Git operations?` With the arrows, choose `SSH` and press `Enter`. SSH is a protocol to log in using SSH keys instead of the well known username/password pair. +`gh` will ask you few questions: -`Generate a new SSH key to add to your GitHub account?` Press `Enter` to ask gh to generate the SSH keys for you. +- `Generate a new SSH key to add to your GitHub account?` Press `Enter` to ask gh to generate the SSH keys for you. -If you already have SSH keys, you will see instead `Upload your SSH public key to your GitHub account?` With the arrows, select your public key file path and press `Enter`. + If you already have SSH keys, you will see instead `Upload your SSH public key to your GitHub account?` With the arrows, select your public key file path and press `Enter`. -`Enter a passphrase for your new SSH key (Optional)`. Type something you want and that you'll remember. It's a password to protect your private key stored on your hard drive. Then press `Enter`. +- `Enter a passphrase for your new SSH key (Optional)`. Type something you want and that you'll remember. It's a password to protect your private key stored on your hard drive. Then press `Enter`. -`Title for your SSH key`. You can leave it at the proposed "GitHub CLI", press `Enter`. +- `Title for your SSH key`. You can leave it at the proposed "GitHub CLI", press `Enter`. You will then get the following output: diff --git a/_partials/pt/gh_cli.md b/_partials/pt/gh_cli.md index 3fed92d2..ed592419 100644 --- a/_partials/pt/gh_cli.md +++ b/_partials/pt/gh_cli.md @@ -4,6 +4,9 @@ CLI é o acrônimo de [Interface de linha de comando](https://en.wikipedia.org/w Nesta seção, usaremos [GitHub CLI](https://cli.github.com/) para interagir com o GitHub diretamente do terminal. +Usaremos o GitHub CLI (`gh`) para conectar ao GitHub usando *SSH*, um protocolo para fazer login usando chaves SSH em vez do conhecido par nome de usuário/senha. + + Ele já deve estar instalado no seu computador a partir dos comandos anteriores. Primeiro, para **fazer login**, copie e cole o seguinte comando em seu terminal: @@ -11,20 +14,18 @@ Primeiro, para **fazer login**, copie e cole o seguinte comando em seu terminal: :warning: **NÃO edite o `email`** ```bash -gh auth login -s 'user:email' -w +gh auth login -s 'user:email' -w --git-protocol ssh ``` `gh` fará algumas perguntas: -`What is your preferred protocol for Git operations?` Com as setas, escolha `SSH` e pressione `Enter`. SSH é um protocolo para fazer login usando chaves SSH em vez do conhecido par nome de usuário/senha. - -`Generate a new SSH key to add to your GitHub account?` Pressione `Enter` para pedir ao gh para gerar as chaves SSH para você. +- `Generate a new SSH key to add to your GitHub account?` Pressione `Enter` para pedir ao gh para gerar as chaves SSH para você. -Se você já possui chaves SSH, verá `Upload your SSH public key to your GitHub account?` Com as setas, selecione o caminho do arquivo de sua chave pública e pressione `Enter`. + Se você já possui chaves SSH, verá `Upload your SSH public key to your GitHub account?` Com as setas, selecione o caminho do arquivo de sua chave pública e pressione `Enter`. -`Enter a passphrase for your new SSH key (Optional)`. Digite algo que você deseja e que você lembrará. É uma senha para proteger sua chave privada armazenada no disco rígido. Em seguida, pressione `Enter`. +- `Enter a passphrase for your new SSH key (Optional)`. Digite algo que você deseja e que você lembrará. É uma senha para proteger sua chave privada armazenada no disco rígido. Em seguida, pressione `Enter`. -`Title for your SSH key`. Você pode deixá-lo no "GitHub CLI" proposto, pressione `Enter`. +- `Title for your SSH key`. Você pode deixá-lo no "GitHub CLI" proposto, pressione `Enter`. Você obterá então a seguinte saída: From 6840bedbb0bd51872f47ebaefb36848914f2a85b Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 9 Jul 2025 15:51:31 +0000 Subject: [PATCH 20/47] setup guides generated --- macos.cn.md | 14 ++++++-------- macos.es.md | 16 ++++++++-------- macos.fr.md | 16 ++++++++-------- macos.md | 16 ++++++++-------- macos.pt.md | 15 ++++++++------- ubuntu.cn.md | 14 ++++++-------- ubuntu.es.md | 16 ++++++++-------- ubuntu.fr.md | 16 ++++++++-------- ubuntu.md | 16 ++++++++-------- ubuntu.pt.md | 15 ++++++++------- windows.cn.md | 14 ++++++-------- windows.es.md | 16 ++++++++-------- windows.fr.md | 16 ++++++++-------- windows.md | 16 ++++++++-------- windows.pt.md | 15 ++++++++------- 15 files changed, 114 insertions(+), 117 deletions(-) diff --git a/macos.cn.md b/macos.cn.md index 4e56f4f4..dc227050 100644 --- a/macos.cn.md +++ b/macos.cn.md @@ -205,20 +205,18 @@ CLI是[Command-line Interface(命令行界面)](https://baike.baidu.com/item :warning: **不要更改下面指令中的`email`** ```bash -gh auth login -s 'user:email' -w +gh auth login -s 'user:email' -w --git-protocol ssh ``` -gh会问你几个问题: +`gh`会问你几个问题: -`What is your preferred protocol for Git operations?(你要用什么协议来执行Git操作?)` 让箭头`>`停在`SSH`前面,然后敲击回车。SSH使用SSH密钥来登陆用户,而不是用用户名和密码。 +- `Generate a new SSH key to add to your GitHub account?(生成新的SSH密钥,然后添加到Github账号上?)` 敲击回车,让gh帮你生成。 -`Generate a new SSH key to add to your GitHub account?(生成新的SSH密钥,然后添加到Github账号上?)` 敲击回车,让gh帮你生成。 + 如果你以前生成过SSH密钥,那你就会看到这个问题`Upload your SSH public key to your GitHub account?(上传公共密钥到Github账户上上吗?)` 上下移动箭头`>`,让它停在你想选的SSH公钥前面,然后敲击回车。 -如果你以前生成过SSH密钥,那你就会看到这个问题`Upload your SSH public key to your GitHub account?(上传公共密钥到Github账户上上吗?)` 上下移动箭头`>`,让它停在你想选的SSH公钥前面,然后敲击回车。 +- `Enter a passphrase for your new SSH key (Optional)(输入新的SSH密钥的密码(非必填))`. 输入一个密码,然后写下来或者记住它。这是保护你本地私钥的密码。然后敲击回车。 -`Enter a passphrase for your new SSH key (Optional)(输入新的SSH密钥的密码(非必填))`. 输入一个密码,然后写下来或者记住它。这是保护你本地私钥的密码。然后敲击回车。 - -`Title for your SSH key`。你可以把它留在建议的 "GitHub CLI",按`Enter`。 +- `Title for your SSH key`。你可以把它留在建议的 "GitHub CLI",按`Enter`。 然后你会看到下面的文字输出: diff --git a/macos.es.md b/macos.es.md index 7a853dcf..b737fb35 100644 --- a/macos.es.md +++ b/macos.es.md @@ -218,6 +218,8 @@ CLI es una abreviación de [Command-line Interface](https://en.wikipedia.org/wik En esta sección usaremos [GitHub CLI](https://cli.github.com/) para interactuar directamente con GitHub desde la terminal. +Usaremos la GitHub CLI (`gh`) para conectarnos a GitHub utilizando *SSH*, un protocolo para iniciar la sesión utilizando claves SSH en lugar de la famosa pareja nombre de usuario y contraseña. + Ya debería haberse instalado en tu computadora con los comandos que ejecutaste anteriormente. Lo primero que hay que hacer para **iniciar sesión** es copiar y pegar el comando siguiente en tu terminal: @@ -225,20 +227,18 @@ Lo primero que hay que hacer para **iniciar sesión** es copiar y pegar el coman :warning: **NO edites el `email`** ```bash -gh auth login -s 'user:email' -w +gh auth login -s 'user:email' -w --git-protocol ssh ``` -gh le hará algunas preguntas: - -`What is your preferred protocol for Git operations?` Con las flechas, elige `SSH` y presiona `Enter`. SSH es un protocolo para iniciar la sesión utilizando claves SSH en lugar de la famosa pareja nombre de usuario y contraseña. +`gh` le hará algunas preguntas: -`Generate a new SSH key to add to your GitHub account?` Presiona `Enter` para pedirle a gh que genere las claves SSH por ti. +- `Generate a new SSH key to add to your GitHub account?` Presiona `Enter` para pedirle a gh que genere las claves SSH por ti. -Si ya tienes claves SSH, verás en su lugar `Upload your SSH public key to your GitHub account?`Con las flechas, selecciona la ruta de tu archivo de clave pública y pulsa `Intro`. + Si ya tienes claves SSH, verás en su lugar `Upload your SSH public key to your GitHub account?`Con las flechas, selecciona la ruta de tu archivo de clave pública y pulsa `Intro`. -`Enter a passphrase for your new SSH key (Optional)`. Pon algo que quieras y que recuerdes. Es una contraseña para proteger tu private key que está almacenada en tu disco duro. Luego presiona `Enter`. +- `Enter a passphrase for your new SSH key (Optional)`. Pon algo que quieras y que recuerdes. Es una contraseña para proteger tu private key que está almacenada en tu disco duro. Luego presiona `Enter`. -`Title for your SSH key`. Puede dejarlo en la propuesta "GitHub CLI", presiona `Enter`. +- `Title for your SSH key`. Puede dejarlo en la propuesta "GitHub CLI", presiona `Enter`. Obtendrás el siguiente resultado: diff --git a/macos.fr.md b/macos.fr.md index eba290ed..4ba9244b 100644 --- a/macos.fr.md +++ b/macos.fr.md @@ -214,6 +214,8 @@ CLI est l’acronyme de [Command-line Interface](https://en.wikipedia.org/wiki/C Dans cette section, tu vas installer [GitHub CLI](https://cli.github.com/) pour interagir avec GitHub directement depuis le terminal. +Nous allons utiliser GitHub CLI (`gh`) pour nous connecter à GitHub en utilisant *SSH*, un protocole pour s'authentifier en utilisant des clés SSH au lieu de la fameuse paire nom d'utilisateur et mot de passe. + Elle doit déjà être installée sur ton ordinateur grâce aux commandes précédentes. Pour **te connecter**, commence par copier-coller la commande suivante dans ton terminal : @@ -221,20 +223,18 @@ Pour **te connecter**, commence par copier-coller la commande suivante dans ton :warning: **NE modifie PAS `email`** ```bash -gh auth login -s 'user:email' -w +gh auth login -s 'user:email' -w --git-protocol ssh ``` -gh va te poser quelques questions : - -`What is your preferred protocol for Git operations?` Avec les flèches, choisis `SSH` et appuie sur `Enter`. SSH est un protocole pour s'authentifier en utilisant des clés SSH au lieu de la fameuse paire nom d'utilisateur et mot de passe. +`gh` va te poser quelques questions : -`Generate a new SSH key to add to your GitHub account?` Appuie sur `Enter` pour demander à gh de générer les clés SSH pour toi. +- `Generate a new SSH key to add to your GitHub account?` Appuie sur `Enter` pour demander à gh de générer les clés SSH pour toi. -Si tu as déjà des clés SSH, tu verras à la place `Upload your SSH public key to your GitHub account?` Avec les flèches, sélectionne le chemain de ta clé publique et appuie sur `Enter`. + Si tu as déjà des clés SSH, tu verras à la place `Upload your SSH public key to your GitHub account?` Avec les flèches, sélectionne le chemain de ta clé publique et appuie sur `Enter`. -`Enter a passphrase for your new SSH key (Optional)`. Saisis un mot de passe dont tu te souviendras. Ce mot de passe sert à protéger ta clé privée enregistrée sur ton disque sur. Ensuite, appuie sur `Enter`. +- `Enter a passphrase for your new SSH key (Optional)`. Saisis un mot de passe dont tu te souviendras. Ce mot de passe sert à protéger ta clé privée enregistrée sur ton disque sur. Ensuite, appuie sur `Enter`. -`Title for your SSH key`. Tu peux laisser ce qui est proposé par défaut, à savoir "GitHub CLI", appuie sur `Enter`. +- `Title for your SSH key`. Tu peux laisser ce qui est proposé par défaut, à savoir "GitHub CLI", appuie sur `Enter`. Tu obtiendras le résultat suivant : diff --git a/macos.md b/macos.md index 5899431d..385a6031 100644 --- a/macos.md +++ b/macos.md @@ -243,25 +243,25 @@ In this section, we will use [GitHub CLI](https://cli.github.com/) to interact w It should already be installed on your computer from the previous commands. +We will use the GitHub CLI (`gh`) to connect to GitHub using *SSH*, a protocol to log in using SSH keys instead of the well known username/password pair. + First in order to **login**, copy-paste the following command in your terminal: :warning: **DO NOT edit the `email`** ```bash -gh auth login -s 'user:email' -w +gh auth login -s 'user:email' -w --git-protocol ssh ``` -gh will ask you few questions: - -`What is your preferred protocol for Git operations?` With the arrows, choose `SSH` and press `Enter`. SSH is a protocol to log in using SSH keys instead of the well known username/password pair. +`gh` will ask you few questions: -`Generate a new SSH key to add to your GitHub account?` Press `Enter` to ask gh to generate the SSH keys for you. +- `Generate a new SSH key to add to your GitHub account?` Press `Enter` to ask gh to generate the SSH keys for you. -If you already have SSH keys, you will see instead `Upload your SSH public key to your GitHub account?` With the arrows, select your public key file path and press `Enter`. + If you already have SSH keys, you will see instead `Upload your SSH public key to your GitHub account?` With the arrows, select your public key file path and press `Enter`. -`Enter a passphrase for your new SSH key (Optional)`. Type something you want and that you'll remember. It's a password to protect your private key stored on your hard drive. Then press `Enter`. +- `Enter a passphrase for your new SSH key (Optional)`. Type something you want and that you'll remember. It's a password to protect your private key stored on your hard drive. Then press `Enter`. -`Title for your SSH key`. You can leave it at the proposed "GitHub CLI", press `Enter`. +- `Title for your SSH key`. You can leave it at the proposed "GitHub CLI", press `Enter`. You will then get the following output: diff --git a/macos.pt.md b/macos.pt.md index f5ae9fe2..221168c3 100644 --- a/macos.pt.md +++ b/macos.pt.md @@ -241,6 +241,9 @@ CLI é o acrônimo de [Interface de linha de comando](https://en.wikipedia.org/w Nesta seção, usaremos [GitHub CLI](https://cli.github.com/) para interagir com o GitHub diretamente do terminal. +Usaremos o GitHub CLI (`gh`) para conectar ao GitHub usando *SSH*, um protocolo para fazer login usando chaves SSH em vez do conhecido par nome de usuário/senha. + + Ele já deve estar instalado no seu computador a partir dos comandos anteriores. Primeiro, para **fazer login**, copie e cole o seguinte comando em seu terminal: @@ -248,20 +251,18 @@ Primeiro, para **fazer login**, copie e cole o seguinte comando em seu terminal: :warning: **NÃO edite o `email`** ```bash -gh auth login -s 'user:email' -w +gh auth login -s 'user:email' -w --git-protocol ssh ``` `gh` fará algumas perguntas: -`What is your preferred protocol for Git operations?` Com as setas, escolha `SSH` e pressione `Enter`. SSH é um protocolo para fazer login usando chaves SSH em vez do conhecido par nome de usuário/senha. - -`Generate a new SSH key to add to your GitHub account?` Pressione `Enter` para pedir ao gh para gerar as chaves SSH para você. +- `Generate a new SSH key to add to your GitHub account?` Pressione `Enter` para pedir ao gh para gerar as chaves SSH para você. -Se você já possui chaves SSH, verá `Upload your SSH public key to your GitHub account?` Com as setas, selecione o caminho do arquivo de sua chave pública e pressione `Enter`. + Se você já possui chaves SSH, verá `Upload your SSH public key to your GitHub account?` Com as setas, selecione o caminho do arquivo de sua chave pública e pressione `Enter`. -`Enter a passphrase for your new SSH key (Optional)`. Digite algo que você deseja e que você lembrará. É uma senha para proteger sua chave privada armazenada no disco rígido. Em seguida, pressione `Enter`. +- `Enter a passphrase for your new SSH key (Optional)`. Digite algo que você deseja e que você lembrará. É uma senha para proteger sua chave privada armazenada no disco rígido. Em seguida, pressione `Enter`. -`Title for your SSH key`. Você pode deixá-lo no "GitHub CLI" proposto, pressione `Enter`. +- `Title for your SSH key`. Você pode deixá-lo no "GitHub CLI" proposto, pressione `Enter`. Você obterá então a seguinte saída: diff --git a/ubuntu.cn.md b/ubuntu.cn.md index c99ebbe9..48e448e7 100644 --- a/ubuntu.cn.md +++ b/ubuntu.cn.md @@ -166,20 +166,18 @@ CLI是[Command-line Interface(命令行界面)](https://baike.baidu.com/item :warning: **不要更改下面指令中的`email`** ```bash -gh auth login -s 'user:email' -w +gh auth login -s 'user:email' -w --git-protocol ssh ``` -gh会问你几个问题: +`gh`会问你几个问题: -`What is your preferred protocol for Git operations?(你要用什么协议来执行Git操作?)` 让箭头`>`停在`SSH`前面,然后敲击回车。SSH使用SSH密钥来登陆用户,而不是用用户名和密码。 +- `Generate a new SSH key to add to your GitHub account?(生成新的SSH密钥,然后添加到Github账号上?)` 敲击回车,让gh帮你生成。 -`Generate a new SSH key to add to your GitHub account?(生成新的SSH密钥,然后添加到Github账号上?)` 敲击回车,让gh帮你生成。 + 如果你以前生成过SSH密钥,那你就会看到这个问题`Upload your SSH public key to your GitHub account?(上传公共密钥到Github账户上上吗?)` 上下移动箭头`>`,让它停在你想选的SSH公钥前面,然后敲击回车。 -如果你以前生成过SSH密钥,那你就会看到这个问题`Upload your SSH public key to your GitHub account?(上传公共密钥到Github账户上上吗?)` 上下移动箭头`>`,让它停在你想选的SSH公钥前面,然后敲击回车。 +- `Enter a passphrase for your new SSH key (Optional)(输入新的SSH密钥的密码(非必填))`. 输入一个密码,然后写下来或者记住它。这是保护你本地私钥的密码。然后敲击回车。 -`Enter a passphrase for your new SSH key (Optional)(输入新的SSH密钥的密码(非必填))`. 输入一个密码,然后写下来或者记住它。这是保护你本地私钥的密码。然后敲击回车。 - -`Title for your SSH key`。你可以把它留在建议的 "GitHub CLI",按`Enter`。 +- `Title for your SSH key`。你可以把它留在建议的 "GitHub CLI",按`Enter`。 然后你会看到下面的文字输出: diff --git a/ubuntu.es.md b/ubuntu.es.md index 1d2e3e42..dc5e1ecd 100644 --- a/ubuntu.es.md +++ b/ubuntu.es.md @@ -176,6 +176,8 @@ CLI es una abreviación de [Command-line Interface](https://en.wikipedia.org/wik En esta sección usaremos [GitHub CLI](https://cli.github.com/) para interactuar directamente con GitHub desde la terminal. +Usaremos la GitHub CLI (`gh`) para conectarnos a GitHub utilizando *SSH*, un protocolo para iniciar la sesión utilizando claves SSH en lugar de la famosa pareja nombre de usuario y contraseña. + Ya debería haberse instalado en tu computadora con los comandos que ejecutaste anteriormente. Lo primero que hay que hacer para **iniciar sesión** es copiar y pegar el comando siguiente en tu terminal: @@ -183,20 +185,18 @@ Lo primero que hay que hacer para **iniciar sesión** es copiar y pegar el coman :warning: **NO edites el `email`** ```bash -gh auth login -s 'user:email' -w +gh auth login -s 'user:email' -w --git-protocol ssh ``` -gh le hará algunas preguntas: - -`What is your preferred protocol for Git operations?` Con las flechas, elige `SSH` y presiona `Enter`. SSH es un protocolo para iniciar la sesión utilizando claves SSH en lugar de la famosa pareja nombre de usuario y contraseña. +`gh` le hará algunas preguntas: -`Generate a new SSH key to add to your GitHub account?` Presiona `Enter` para pedirle a gh que genere las claves SSH por ti. +- `Generate a new SSH key to add to your GitHub account?` Presiona `Enter` para pedirle a gh que genere las claves SSH por ti. -Si ya tienes claves SSH, verás en su lugar `Upload your SSH public key to your GitHub account?`Con las flechas, selecciona la ruta de tu archivo de clave pública y pulsa `Intro`. + Si ya tienes claves SSH, verás en su lugar `Upload your SSH public key to your GitHub account?`Con las flechas, selecciona la ruta de tu archivo de clave pública y pulsa `Intro`. -`Enter a passphrase for your new SSH key (Optional)`. Pon algo que quieras y que recuerdes. Es una contraseña para proteger tu private key que está almacenada en tu disco duro. Luego presiona `Enter`. +- `Enter a passphrase for your new SSH key (Optional)`. Pon algo que quieras y que recuerdes. Es una contraseña para proteger tu private key que está almacenada en tu disco duro. Luego presiona `Enter`. -`Title for your SSH key`. Puede dejarlo en la propuesta "GitHub CLI", presiona `Enter`. +- `Title for your SSH key`. Puede dejarlo en la propuesta "GitHub CLI", presiona `Enter`. Obtendrás el siguiente resultado: diff --git a/ubuntu.fr.md b/ubuntu.fr.md index e5f39786..05151993 100644 --- a/ubuntu.fr.md +++ b/ubuntu.fr.md @@ -175,6 +175,8 @@ CLI est l’acronyme de [Command-line Interface](https://en.wikipedia.org/wiki/C Dans cette section, tu vas installer [GitHub CLI](https://cli.github.com/) pour interagir avec GitHub directement depuis le terminal. +Nous allons utiliser GitHub CLI (`gh`) pour nous connecter à GitHub en utilisant *SSH*, un protocole pour s'authentifier en utilisant des clés SSH au lieu de la fameuse paire nom d'utilisateur et mot de passe. + Elle doit déjà être installée sur ton ordinateur grâce aux commandes précédentes. Pour **te connecter**, commence par copier-coller la commande suivante dans ton terminal : @@ -182,20 +184,18 @@ Pour **te connecter**, commence par copier-coller la commande suivante dans ton :warning: **NE modifie PAS `email`** ```bash -gh auth login -s 'user:email' -w +gh auth login -s 'user:email' -w --git-protocol ssh ``` -gh va te poser quelques questions : - -`What is your preferred protocol for Git operations?` Avec les flèches, choisis `SSH` et appuie sur `Enter`. SSH est un protocole pour s'authentifier en utilisant des clés SSH au lieu de la fameuse paire nom d'utilisateur et mot de passe. +`gh` va te poser quelques questions : -`Generate a new SSH key to add to your GitHub account?` Appuie sur `Enter` pour demander à gh de générer les clés SSH pour toi. +- `Generate a new SSH key to add to your GitHub account?` Appuie sur `Enter` pour demander à gh de générer les clés SSH pour toi. -Si tu as déjà des clés SSH, tu verras à la place `Upload your SSH public key to your GitHub account?` Avec les flèches, sélectionne le chemain de ta clé publique et appuie sur `Enter`. + Si tu as déjà des clés SSH, tu verras à la place `Upload your SSH public key to your GitHub account?` Avec les flèches, sélectionne le chemain de ta clé publique et appuie sur `Enter`. -`Enter a passphrase for your new SSH key (Optional)`. Saisis un mot de passe dont tu te souviendras. Ce mot de passe sert à protéger ta clé privée enregistrée sur ton disque sur. Ensuite, appuie sur `Enter`. +- `Enter a passphrase for your new SSH key (Optional)`. Saisis un mot de passe dont tu te souviendras. Ce mot de passe sert à protéger ta clé privée enregistrée sur ton disque sur. Ensuite, appuie sur `Enter`. -`Title for your SSH key`. Tu peux laisser ce qui est proposé par défaut, à savoir "GitHub CLI", appuie sur `Enter`. +- `Title for your SSH key`. Tu peux laisser ce qui est proposé par défaut, à savoir "GitHub CLI", appuie sur `Enter`. Tu obtiendras le résultat suivant : diff --git a/ubuntu.md b/ubuntu.md index a30ea55a..93686f79 100644 --- a/ubuntu.md +++ b/ubuntu.md @@ -207,25 +207,25 @@ In this section, we will use [GitHub CLI](https://cli.github.com/) to interact w It should already be installed on your computer from the previous commands. +We will use the GitHub CLI (`gh`) to connect to GitHub using *SSH*, a protocol to log in using SSH keys instead of the well known username/password pair. + First in order to **login**, copy-paste the following command in your terminal: :warning: **DO NOT edit the `email`** ```bash -gh auth login -s 'user:email' -w +gh auth login -s 'user:email' -w --git-protocol ssh ``` -gh will ask you few questions: - -`What is your preferred protocol for Git operations?` With the arrows, choose `SSH` and press `Enter`. SSH is a protocol to log in using SSH keys instead of the well known username/password pair. +`gh` will ask you few questions: -`Generate a new SSH key to add to your GitHub account?` Press `Enter` to ask gh to generate the SSH keys for you. +- `Generate a new SSH key to add to your GitHub account?` Press `Enter` to ask gh to generate the SSH keys for you. -If you already have SSH keys, you will see instead `Upload your SSH public key to your GitHub account?` With the arrows, select your public key file path and press `Enter`. + If you already have SSH keys, you will see instead `Upload your SSH public key to your GitHub account?` With the arrows, select your public key file path and press `Enter`. -`Enter a passphrase for your new SSH key (Optional)`. Type something you want and that you'll remember. It's a password to protect your private key stored on your hard drive. Then press `Enter`. +- `Enter a passphrase for your new SSH key (Optional)`. Type something you want and that you'll remember. It's a password to protect your private key stored on your hard drive. Then press `Enter`. -`Title for your SSH key`. You can leave it at the proposed "GitHub CLI", press `Enter`. +- `Title for your SSH key`. You can leave it at the proposed "GitHub CLI", press `Enter`. You will then get the following output: diff --git a/ubuntu.pt.md b/ubuntu.pt.md index 047f4267..cb1a87f7 100644 --- a/ubuntu.pt.md +++ b/ubuntu.pt.md @@ -205,6 +205,9 @@ CLI é o acrônimo de [Interface de linha de comando](https://en.wikipedia.org/w Nesta seção, usaremos [GitHub CLI](https://cli.github.com/) para interagir com o GitHub diretamente do terminal. +Usaremos o GitHub CLI (`gh`) para conectar ao GitHub usando *SSH*, um protocolo para fazer login usando chaves SSH em vez do conhecido par nome de usuário/senha. + + Ele já deve estar instalado no seu computador a partir dos comandos anteriores. Primeiro, para **fazer login**, copie e cole o seguinte comando em seu terminal: @@ -212,20 +215,18 @@ Primeiro, para **fazer login**, copie e cole o seguinte comando em seu terminal: :warning: **NÃO edite o `email`** ```bash -gh auth login -s 'user:email' -w +gh auth login -s 'user:email' -w --git-protocol ssh ``` `gh` fará algumas perguntas: -`What is your preferred protocol for Git operations?` Com as setas, escolha `SSH` e pressione `Enter`. SSH é um protocolo para fazer login usando chaves SSH em vez do conhecido par nome de usuário/senha. - -`Generate a new SSH key to add to your GitHub account?` Pressione `Enter` para pedir ao gh para gerar as chaves SSH para você. +- `Generate a new SSH key to add to your GitHub account?` Pressione `Enter` para pedir ao gh para gerar as chaves SSH para você. -Se você já possui chaves SSH, verá `Upload your SSH public key to your GitHub account?` Com as setas, selecione o caminho do arquivo de sua chave pública e pressione `Enter`. + Se você já possui chaves SSH, verá `Upload your SSH public key to your GitHub account?` Com as setas, selecione o caminho do arquivo de sua chave pública e pressione `Enter`. -`Enter a passphrase for your new SSH key (Optional)`. Digite algo que você deseja e que você lembrará. É uma senha para proteger sua chave privada armazenada no disco rígido. Em seguida, pressione `Enter`. +- `Enter a passphrase for your new SSH key (Optional)`. Digite algo que você deseja e que você lembrará. É uma senha para proteger sua chave privada armazenada no disco rígido. Em seguida, pressione `Enter`. -`Title for your SSH key`. Você pode deixá-lo no "GitHub CLI" proposto, pressione `Enter`. +- `Title for your SSH key`. Você pode deixá-lo no "GitHub CLI" proposto, pressione `Enter`. Você obterá então a seguinte saída: diff --git a/windows.cn.md b/windows.cn.md index 8de2bb13..4c24947e 100644 --- a/windows.cn.md +++ b/windows.cn.md @@ -700,20 +700,18 @@ CLI是[Command-line Interface(命令行界面)](https://baike.baidu.com/item :warning: **不要更改下面指令中的`email`** ```bash -gh auth login -s 'user:email' -w +gh auth login -s 'user:email' -w --git-protocol ssh ``` -gh会问你几个问题: +`gh`会问你几个问题: -`What is your preferred protocol for Git operations?(你要用什么协议来执行Git操作?)` 让箭头`>`停在`SSH`前面,然后敲击回车。SSH使用SSH密钥来登陆用户,而不是用用户名和密码。 +- `Generate a new SSH key to add to your GitHub account?(生成新的SSH密钥,然后添加到Github账号上?)` 敲击回车,让gh帮你生成。 -`Generate a new SSH key to add to your GitHub account?(生成新的SSH密钥,然后添加到Github账号上?)` 敲击回车,让gh帮你生成。 + 如果你以前生成过SSH密钥,那你就会看到这个问题`Upload your SSH public key to your GitHub account?(上传公共密钥到Github账户上上吗?)` 上下移动箭头`>`,让它停在你想选的SSH公钥前面,然后敲击回车。 -如果你以前生成过SSH密钥,那你就会看到这个问题`Upload your SSH public key to your GitHub account?(上传公共密钥到Github账户上上吗?)` 上下移动箭头`>`,让它停在你想选的SSH公钥前面,然后敲击回车。 +- `Enter a passphrase for your new SSH key (Optional)(输入新的SSH密钥的密码(非必填))`. 输入一个密码,然后写下来或者记住它。这是保护你本地私钥的密码。然后敲击回车。 -`Enter a passphrase for your new SSH key (Optional)(输入新的SSH密钥的密码(非必填))`. 输入一个密码,然后写下来或者记住它。这是保护你本地私钥的密码。然后敲击回车。 - -`Title for your SSH key`。你可以把它留在建议的 "GitHub CLI",按`Enter`。 +- `Title for your SSH key`。你可以把它留在建议的 "GitHub CLI",按`Enter`。 然后你会看到下面的文字输出: diff --git a/windows.es.md b/windows.es.md index 5e60f99d..6f36c57b 100644 --- a/windows.es.md +++ b/windows.es.md @@ -713,6 +713,8 @@ CLI es una abreviación de [Command-line Interface](https://en.wikipedia.org/wik En esta sección usaremos [GitHub CLI](https://cli.github.com/) para interactuar directamente con GitHub desde la terminal. +Usaremos la GitHub CLI (`gh`) para conectarnos a GitHub utilizando *SSH*, un protocolo para iniciar la sesión utilizando claves SSH en lugar de la famosa pareja nombre de usuario y contraseña. + Ya debería haberse instalado en tu computadora con los comandos que ejecutaste anteriormente. Lo primero que hay que hacer para **iniciar sesión** es copiar y pegar el comando siguiente en tu terminal: @@ -720,20 +722,18 @@ Lo primero que hay que hacer para **iniciar sesión** es copiar y pegar el coman :warning: **NO edites el `email`** ```bash -gh auth login -s 'user:email' -w +gh auth login -s 'user:email' -w --git-protocol ssh ``` -gh le hará algunas preguntas: - -`What is your preferred protocol for Git operations?` Con las flechas, elige `SSH` y presiona `Enter`. SSH es un protocolo para iniciar la sesión utilizando claves SSH en lugar de la famosa pareja nombre de usuario y contraseña. +`gh` le hará algunas preguntas: -`Generate a new SSH key to add to your GitHub account?` Presiona `Enter` para pedirle a gh que genere las claves SSH por ti. +- `Generate a new SSH key to add to your GitHub account?` Presiona `Enter` para pedirle a gh que genere las claves SSH por ti. -Si ya tienes claves SSH, verás en su lugar `Upload your SSH public key to your GitHub account?`Con las flechas, selecciona la ruta de tu archivo de clave pública y pulsa `Intro`. + Si ya tienes claves SSH, verás en su lugar `Upload your SSH public key to your GitHub account?`Con las flechas, selecciona la ruta de tu archivo de clave pública y pulsa `Intro`. -`Enter a passphrase for your new SSH key (Optional)`. Pon algo que quieras y que recuerdes. Es una contraseña para proteger tu private key que está almacenada en tu disco duro. Luego presiona `Enter`. +- `Enter a passphrase for your new SSH key (Optional)`. Pon algo que quieras y que recuerdes. Es una contraseña para proteger tu private key que está almacenada en tu disco duro. Luego presiona `Enter`. -`Title for your SSH key`. Puede dejarlo en la propuesta "GitHub CLI", presiona `Enter`. +- `Title for your SSH key`. Puede dejarlo en la propuesta "GitHub CLI", presiona `Enter`. Obtendrás el siguiente resultado: diff --git a/windows.fr.md b/windows.fr.md index a397babd..3a3fe588 100644 --- a/windows.fr.md +++ b/windows.fr.md @@ -715,6 +715,8 @@ CLI est l’acronyme de [Command-line Interface](https://en.wikipedia.org/wiki/C Dans cette section, tu vas installer [GitHub CLI](https://cli.github.com/) pour interagir avec GitHub directement depuis le terminal. +Nous allons utiliser GitHub CLI (`gh`) pour nous connecter à GitHub en utilisant *SSH*, un protocole pour s'authentifier en utilisant des clés SSH au lieu de la fameuse paire nom d'utilisateur et mot de passe. + Elle doit déjà être installée sur ton ordinateur grâce aux commandes précédentes. Pour **te connecter**, commence par copier-coller la commande suivante dans ton terminal : @@ -722,20 +724,18 @@ Pour **te connecter**, commence par copier-coller la commande suivante dans ton :warning: **NE modifie PAS `email`** ```bash -gh auth login -s 'user:email' -w +gh auth login -s 'user:email' -w --git-protocol ssh ``` -gh va te poser quelques questions : - -`What is your preferred protocol for Git operations?` Avec les flèches, choisis `SSH` et appuie sur `Enter`. SSH est un protocole pour s'authentifier en utilisant des clés SSH au lieu de la fameuse paire nom d'utilisateur et mot de passe. +`gh` va te poser quelques questions : -`Generate a new SSH key to add to your GitHub account?` Appuie sur `Enter` pour demander à gh de générer les clés SSH pour toi. +- `Generate a new SSH key to add to your GitHub account?` Appuie sur `Enter` pour demander à gh de générer les clés SSH pour toi. -Si tu as déjà des clés SSH, tu verras à la place `Upload your SSH public key to your GitHub account?` Avec les flèches, sélectionne le chemain de ta clé publique et appuie sur `Enter`. + Si tu as déjà des clés SSH, tu verras à la place `Upload your SSH public key to your GitHub account?` Avec les flèches, sélectionne le chemain de ta clé publique et appuie sur `Enter`. -`Enter a passphrase for your new SSH key (Optional)`. Saisis un mot de passe dont tu te souviendras. Ce mot de passe sert à protéger ta clé privée enregistrée sur ton disque sur. Ensuite, appuie sur `Enter`. +- `Enter a passphrase for your new SSH key (Optional)`. Saisis un mot de passe dont tu te souviendras. Ce mot de passe sert à protéger ta clé privée enregistrée sur ton disque sur. Ensuite, appuie sur `Enter`. -`Title for your SSH key`. Tu peux laisser ce qui est proposé par défaut, à savoir "GitHub CLI", appuie sur `Enter`. +- `Title for your SSH key`. Tu peux laisser ce qui est proposé par défaut, à savoir "GitHub CLI", appuie sur `Enter`. Tu obtiendras le résultat suivant : diff --git a/windows.md b/windows.md index 7295b9d2..da041576 100644 --- a/windows.md +++ b/windows.md @@ -764,25 +764,25 @@ In this section, we will use [GitHub CLI](https://cli.github.com/) to interact w It should already be installed on your computer from the previous commands. +We will use the GitHub CLI (`gh`) to connect to GitHub using *SSH*, a protocol to log in using SSH keys instead of the well known username/password pair. + First in order to **login**, copy-paste the following command in your terminal: :warning: **DO NOT edit the `email`** ```bash -gh auth login -s 'user:email' -w +gh auth login -s 'user:email' -w --git-protocol ssh ``` -gh will ask you few questions: - -`What is your preferred protocol for Git operations?` With the arrows, choose `SSH` and press `Enter`. SSH is a protocol to log in using SSH keys instead of the well known username/password pair. +`gh` will ask you few questions: -`Generate a new SSH key to add to your GitHub account?` Press `Enter` to ask gh to generate the SSH keys for you. +- `Generate a new SSH key to add to your GitHub account?` Press `Enter` to ask gh to generate the SSH keys for you. -If you already have SSH keys, you will see instead `Upload your SSH public key to your GitHub account?` With the arrows, select your public key file path and press `Enter`. + If you already have SSH keys, you will see instead `Upload your SSH public key to your GitHub account?` With the arrows, select your public key file path and press `Enter`. -`Enter a passphrase for your new SSH key (Optional)`. Type something you want and that you'll remember. It's a password to protect your private key stored on your hard drive. Then press `Enter`. +- `Enter a passphrase for your new SSH key (Optional)`. Type something you want and that you'll remember. It's a password to protect your private key stored on your hard drive. Then press `Enter`. -`Title for your SSH key`. You can leave it at the proposed "GitHub CLI", press `Enter`. +- `Title for your SSH key`. You can leave it at the proposed "GitHub CLI", press `Enter`. You will then get the following output: diff --git a/windows.pt.md b/windows.pt.md index 70575b82..fe00dc15 100644 --- a/windows.pt.md +++ b/windows.pt.md @@ -761,6 +761,9 @@ CLI é o acrônimo de [Interface de linha de comando](https://en.wikipedia.org/w Nesta seção, usaremos [GitHub CLI](https://cli.github.com/) para interagir com o GitHub diretamente do terminal. +Usaremos o GitHub CLI (`gh`) para conectar ao GitHub usando *SSH*, um protocolo para fazer login usando chaves SSH em vez do conhecido par nome de usuário/senha. + + Ele já deve estar instalado no seu computador a partir dos comandos anteriores. Primeiro, para **fazer login**, copie e cole o seguinte comando em seu terminal: @@ -768,20 +771,18 @@ Primeiro, para **fazer login**, copie e cole o seguinte comando em seu terminal: :warning: **NÃO edite o `email`** ```bash -gh auth login -s 'user:email' -w +gh auth login -s 'user:email' -w --git-protocol ssh ``` `gh` fará algumas perguntas: -`What is your preferred protocol for Git operations?` Com as setas, escolha `SSH` e pressione `Enter`. SSH é um protocolo para fazer login usando chaves SSH em vez do conhecido par nome de usuário/senha. - -`Generate a new SSH key to add to your GitHub account?` Pressione `Enter` para pedir ao gh para gerar as chaves SSH para você. +- `Generate a new SSH key to add to your GitHub account?` Pressione `Enter` para pedir ao gh para gerar as chaves SSH para você. -Se você já possui chaves SSH, verá `Upload your SSH public key to your GitHub account?` Com as setas, selecione o caminho do arquivo de sua chave pública e pressione `Enter`. + Se você já possui chaves SSH, verá `Upload your SSH public key to your GitHub account?` Com as setas, selecione o caminho do arquivo de sua chave pública e pressione `Enter`. -`Enter a passphrase for your new SSH key (Optional)`. Digite algo que você deseja e que você lembrará. É uma senha para proteger sua chave privada armazenada no disco rígido. Em seguida, pressione `Enter`. +- `Enter a passphrase for your new SSH key (Optional)`. Digite algo que você deseja e que você lembrará. É uma senha para proteger sua chave privada armazenada no disco rígido. Em seguida, pressione `Enter`. -`Title for your SSH key`. Você pode deixá-lo no "GitHub CLI" proposto, pressione `Enter`. +- `Title for your SSH key`. Você pode deixá-lo no "GitHub CLI" proposto, pressione `Enter`. Você obterá então a seguinte saída: From f6ed6519d7ae0a19ec1c5d0c1d12babeb25f5647 Mon Sep 17 00:00:00 2001 From: Alexander Dubovoy <39504104+ajdubovoy@users.noreply.github.com> Date: Tue, 5 Aug 2025 23:18:00 +0200 Subject: [PATCH 21/47] Add Herb VSCode extension (#491) --- _partials/cn/vscode_extensions.md | 1 + _partials/es/vscode_extensions.md | 1 + _partials/fr/vscode_extensions.md | 1 + _partials/pt/vscode_extensions.md | 1 + 4 files changed, 4 insertions(+) diff --git a/_partials/cn/vscode_extensions.md b/_partials/cn/vscode_extensions.md index 8b53779f..45b4a632 100644 --- a/_partials/cn/vscode_extensions.md +++ b/_partials/cn/vscode_extensions.md @@ -15,6 +15,7 @@ code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels +code --install-extension marcoroth.herb-lsp ``` 你安装的就是下面这些插件: diff --git a/_partials/es/vscode_extensions.md b/_partials/es/vscode_extensions.md index 6ea0adb4..d4d2ffed 100644 --- a/_partials/es/vscode_extensions.md +++ b/_partials/es/vscode_extensions.md @@ -16,6 +16,7 @@ code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels +code --install-extension marcoroth.herb-lsp ``` Aquí está la lista de las extensiones que estás instalando: diff --git a/_partials/fr/vscode_extensions.md b/_partials/fr/vscode_extensions.md index 395c96da..5c9da2f7 100644 --- a/_partials/fr/vscode_extensions.md +++ b/_partials/fr/vscode_extensions.md @@ -15,6 +15,7 @@ code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels +code --install-extension marcoroth.herb-lsp ``` Voici la liste des extensions que tu es en train d'installer : diff --git a/_partials/pt/vscode_extensions.md b/_partials/pt/vscode_extensions.md index 35a72b17..e930d7e5 100644 --- a/_partials/pt/vscode_extensions.md +++ b/_partials/pt/vscode_extensions.md @@ -16,6 +16,7 @@ code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels +code --install-extension marcoroth.herb-lsp ``` Aqui está uma lista das extensões que você está instalando: From 2891d3d8536ce0f3a42b959b825419fb62f33825 Mon Sep 17 00:00:00 2001 From: github-actions Date: Tue, 5 Aug 2025 21:18:08 +0000 Subject: [PATCH 22/47] setup guides generated --- macos.cn.md | 1 + macos.es.md | 1 + macos.fr.md | 1 + macos.pt.md | 1 + ubuntu.cn.md | 1 + ubuntu.es.md | 1 + ubuntu.fr.md | 1 + ubuntu.pt.md | 1 + windows.cn.md | 1 + windows.es.md | 1 + windows.fr.md | 1 + windows.pt.md | 1 + 12 files changed, 12 insertions(+) diff --git a/macos.cn.md b/macos.cn.md index dc227050..3785c2b5 100644 --- a/macos.cn.md +++ b/macos.cn.md @@ -147,6 +147,7 @@ code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels +code --install-extension marcoroth.herb-lsp ``` 你安装的就是下面这些插件: diff --git a/macos.es.md b/macos.es.md index b737fb35..164fcbff 100644 --- a/macos.es.md +++ b/macos.es.md @@ -150,6 +150,7 @@ code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels +code --install-extension marcoroth.herb-lsp ``` Aquí está la lista de las extensiones que estás instalando: diff --git a/macos.fr.md b/macos.fr.md index 4ba9244b..f94d170d 100644 --- a/macos.fr.md +++ b/macos.fr.md @@ -148,6 +148,7 @@ code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels +code --install-extension marcoroth.herb-lsp ``` Voici la liste des extensions que tu es en train d'installer : diff --git a/macos.pt.md b/macos.pt.md index 221168c3..a50f80f3 100644 --- a/macos.pt.md +++ b/macos.pt.md @@ -172,6 +172,7 @@ code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels +code --install-extension marcoroth.herb-lsp ``` Aqui está uma lista das extensões que você está instalando: diff --git a/ubuntu.cn.md b/ubuntu.cn.md index 48e448e7..d4cdb047 100644 --- a/ubuntu.cn.md +++ b/ubuntu.cn.md @@ -68,6 +68,7 @@ code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels +code --install-extension marcoroth.herb-lsp ``` 你安装的就是下面这些插件: diff --git a/ubuntu.es.md b/ubuntu.es.md index dc5e1ecd..5e322d4a 100644 --- a/ubuntu.es.md +++ b/ubuntu.es.md @@ -70,6 +70,7 @@ code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels +code --install-extension marcoroth.herb-lsp ``` Aquí está la lista de las extensiones que estás instalando: diff --git a/ubuntu.fr.md b/ubuntu.fr.md index 05151993..8ec72114 100644 --- a/ubuntu.fr.md +++ b/ubuntu.fr.md @@ -69,6 +69,7 @@ code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels +code --install-extension marcoroth.herb-lsp ``` Voici la liste des extensions que tu es en train d'installer : diff --git a/ubuntu.pt.md b/ubuntu.pt.md index cb1a87f7..746db60a 100644 --- a/ubuntu.pt.md +++ b/ubuntu.pt.md @@ -89,6 +89,7 @@ code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels +code --install-extension marcoroth.herb-lsp ``` Aqui está uma lista das extensões que você está instalando: diff --git a/windows.cn.md b/windows.cn.md index 4c24947e..a0877b45 100644 --- a/windows.cn.md +++ b/windows.cn.md @@ -500,6 +500,7 @@ code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels +code --install-extension marcoroth.herb-lsp ``` 你安装的就是下面这些插件: diff --git a/windows.es.md b/windows.es.md index 6f36c57b..af8ff411 100644 --- a/windows.es.md +++ b/windows.es.md @@ -521,6 +521,7 @@ code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels +code --install-extension marcoroth.herb-lsp ``` Aquí está la lista de las extensiones que estás instalando: diff --git a/windows.fr.md b/windows.fr.md index 3a3fe588..fbe531a0 100644 --- a/windows.fr.md +++ b/windows.fr.md @@ -523,6 +523,7 @@ code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels +code --install-extension marcoroth.herb-lsp ``` Voici la liste des extensions que tu es en train d'installer : diff --git a/windows.pt.md b/windows.pt.md index fe00dc15..9cc102aa 100644 --- a/windows.pt.md +++ b/windows.pt.md @@ -529,6 +529,7 @@ code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels +code --install-extension marcoroth.herb-lsp ``` Aqui está uma lista das extensões que você está instalando: From 6cc298c994c99c5e89a8a4e73c77731e1658d8b1 Mon Sep 17 00:00:00 2001 From: Alexander Dubovoy <39504104+ajdubovoy@users.noreply.github.com> Date: Thu, 28 Aug 2025 13:13:42 +0200 Subject: [PATCH 23/47] Add ERB Helper Tags extension since it was removed from ruby-lsp (#492) --- _partials/cn/vscode_extensions.md | 1 + _partials/es/vscode_extensions.md | 1 + _partials/fr/vscode_extensions.md | 1 + _partials/pt/vscode_extensions.md | 1 + _partials/vscode_extensions.md | 1 + 5 files changed, 5 insertions(+) diff --git a/_partials/cn/vscode_extensions.md b/_partials/cn/vscode_extensions.md index 45b4a632..b32ed835 100644 --- a/_partials/cn/vscode_extensions.md +++ b/_partials/cn/vscode_extensions.md @@ -16,6 +16,7 @@ code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels code --install-extension marcoroth.herb-lsp +code --install-extension rayhanw.erb-helpers ``` 你安装的就是下面这些插件: diff --git a/_partials/es/vscode_extensions.md b/_partials/es/vscode_extensions.md index d4d2ffed..7c571186 100644 --- a/_partials/es/vscode_extensions.md +++ b/_partials/es/vscode_extensions.md @@ -17,6 +17,7 @@ code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels code --install-extension marcoroth.herb-lsp +code --install-extension rayhanw.erb-helpers ``` Aquí está la lista de las extensiones que estás instalando: diff --git a/_partials/fr/vscode_extensions.md b/_partials/fr/vscode_extensions.md index 5c9da2f7..227c493e 100644 --- a/_partials/fr/vscode_extensions.md +++ b/_partials/fr/vscode_extensions.md @@ -16,6 +16,7 @@ code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels code --install-extension marcoroth.herb-lsp +code --install-extension rayhanw.erb-helpers ``` Voici la liste des extensions que tu es en train d'installer : diff --git a/_partials/pt/vscode_extensions.md b/_partials/pt/vscode_extensions.md index e930d7e5..c11e6262 100644 --- a/_partials/pt/vscode_extensions.md +++ b/_partials/pt/vscode_extensions.md @@ -17,6 +17,7 @@ code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels code --install-extension marcoroth.herb-lsp +code --install-extension rayhanw.erb-helpers ``` Aqui está uma lista das extensões que você está instalando: diff --git a/_partials/vscode_extensions.md b/_partials/vscode_extensions.md index dc94403b..fa1eae77 100644 --- a/_partials/vscode_extensions.md +++ b/_partials/vscode_extensions.md @@ -16,6 +16,7 @@ code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels +code --install-extension rayhanw.erb-helpers ``` Here is a list of the extensions you are installing: From 3a1d61adb7ffb13f0ca70339263201e7be0c555d Mon Sep 17 00:00:00 2001 From: github-actions Date: Thu, 28 Aug 2025 11:13:51 +0000 Subject: [PATCH 24/47] setup guides generated --- macos.cn.md | 1 + macos.es.md | 1 + macos.fr.md | 1 + macos.md | 1 + macos.pt.md | 1 + ubuntu.cn.md | 1 + ubuntu.es.md | 1 + ubuntu.fr.md | 1 + ubuntu.md | 1 + ubuntu.pt.md | 1 + windows.cn.md | 1 + windows.es.md | 1 + windows.fr.md | 1 + windows.md | 1 + windows.pt.md | 1 + 15 files changed, 15 insertions(+) diff --git a/macos.cn.md b/macos.cn.md index 3785c2b5..e7898571 100644 --- a/macos.cn.md +++ b/macos.cn.md @@ -148,6 +148,7 @@ code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels code --install-extension marcoroth.herb-lsp +code --install-extension rayhanw.erb-helpers ``` 你安装的就是下面这些插件: diff --git a/macos.es.md b/macos.es.md index 164fcbff..ce0c59e8 100644 --- a/macos.es.md +++ b/macos.es.md @@ -151,6 +151,7 @@ code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels code --install-extension marcoroth.herb-lsp +code --install-extension rayhanw.erb-helpers ``` Aquí está la lista de las extensiones que estás instalando: diff --git a/macos.fr.md b/macos.fr.md index f94d170d..6e51dbdb 100644 --- a/macos.fr.md +++ b/macos.fr.md @@ -149,6 +149,7 @@ code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels code --install-extension marcoroth.herb-lsp +code --install-extension rayhanw.erb-helpers ``` Voici la liste des extensions que tu es en train d'installer : diff --git a/macos.md b/macos.md index 385a6031..61c827a2 100644 --- a/macos.md +++ b/macos.md @@ -172,6 +172,7 @@ code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels +code --install-extension rayhanw.erb-helpers ``` Here is a list of the extensions you are installing: diff --git a/macos.pt.md b/macos.pt.md index a50f80f3..25253127 100644 --- a/macos.pt.md +++ b/macos.pt.md @@ -173,6 +173,7 @@ code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels code --install-extension marcoroth.herb-lsp +code --install-extension rayhanw.erb-helpers ``` Aqui está uma lista das extensões que você está instalando: diff --git a/ubuntu.cn.md b/ubuntu.cn.md index d4cdb047..73daf3be 100644 --- a/ubuntu.cn.md +++ b/ubuntu.cn.md @@ -69,6 +69,7 @@ code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels code --install-extension marcoroth.herb-lsp +code --install-extension rayhanw.erb-helpers ``` 你安装的就是下面这些插件: diff --git a/ubuntu.es.md b/ubuntu.es.md index 5e322d4a..2df2427a 100644 --- a/ubuntu.es.md +++ b/ubuntu.es.md @@ -71,6 +71,7 @@ code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels code --install-extension marcoroth.herb-lsp +code --install-extension rayhanw.erb-helpers ``` Aquí está la lista de las extensiones que estás instalando: diff --git a/ubuntu.fr.md b/ubuntu.fr.md index 8ec72114..91dab2a1 100644 --- a/ubuntu.fr.md +++ b/ubuntu.fr.md @@ -70,6 +70,7 @@ code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels code --install-extension marcoroth.herb-lsp +code --install-extension rayhanw.erb-helpers ``` Voici la liste des extensions que tu es en train d'installer : diff --git a/ubuntu.md b/ubuntu.md index 93686f79..e14fc3f5 100644 --- a/ubuntu.md +++ b/ubuntu.md @@ -89,6 +89,7 @@ code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels +code --install-extension rayhanw.erb-helpers ``` Here is a list of the extensions you are installing: diff --git a/ubuntu.pt.md b/ubuntu.pt.md index 746db60a..3493651e 100644 --- a/ubuntu.pt.md +++ b/ubuntu.pt.md @@ -90,6 +90,7 @@ code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels code --install-extension marcoroth.herb-lsp +code --install-extension rayhanw.erb-helpers ``` Aqui está uma lista das extensões que você está instalando: diff --git a/windows.cn.md b/windows.cn.md index a0877b45..4b3c129d 100644 --- a/windows.cn.md +++ b/windows.cn.md @@ -501,6 +501,7 @@ code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels code --install-extension marcoroth.herb-lsp +code --install-extension rayhanw.erb-helpers ``` 你安装的就是下面这些插件: diff --git a/windows.es.md b/windows.es.md index af8ff411..b38b0709 100644 --- a/windows.es.md +++ b/windows.es.md @@ -522,6 +522,7 @@ code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels code --install-extension marcoroth.herb-lsp +code --install-extension rayhanw.erb-helpers ``` Aquí está la lista de las extensiones que estás instalando: diff --git a/windows.fr.md b/windows.fr.md index fbe531a0..00c36333 100644 --- a/windows.fr.md +++ b/windows.fr.md @@ -524,6 +524,7 @@ code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels code --install-extension marcoroth.herb-lsp +code --install-extension rayhanw.erb-helpers ``` Voici la liste des extensions que tu es en train d'installer : diff --git a/windows.md b/windows.md index da041576..e18f0f1a 100644 --- a/windows.md +++ b/windows.md @@ -530,6 +530,7 @@ code --install-extension dbaeumer.vscode-eslint code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels +code --install-extension rayhanw.erb-helpers ``` Here is a list of the extensions you are installing: diff --git a/windows.pt.md b/windows.pt.md index 9cc102aa..a239e0c2 100644 --- a/windows.pt.md +++ b/windows.pt.md @@ -530,6 +530,7 @@ code --install-extension Rubymaniac.vscode-paste-and-indent code --install-extension alexcvzz.vscode-sqlite code --install-extension anteprimorac.html-end-tag-labels code --install-extension marcoroth.herb-lsp +code --install-extension rayhanw.erb-helpers ``` Aqui está uma lista das extensões que você está instalando: From 22469d8254d21e86bd999c74bc8011d1fef3763e Mon Sep 17 00:00:00 2001 From: Jules van Rie <89742340+julesvanrie@users.noreply.github.com> Date: Thu, 30 Oct 2025 12:35:52 +0100 Subject: [PATCH 25/47] Add locale for ubuntu (#493) * Correction typos in French * Move locale from Win Ubuntu to CLI tools partial The locale problem also happens on some Ubuntu installations. The solution currently sits in the Windows Update partial, but it makes more sense to include it in a partial that caters for both Windows and Ubuntu. The start of the CLI tools section is a good place to do this: - It fits better with the setup actions we do in that section. - It is still early enough: the problem only gets triggered after dotfiles. This commit will automatically move this in the right place. No need to change the `build.rb`. The next rebuild of the data-setup will then also include these changes. DA and DE setups do not rely on these partials. Also corrected some typos in the FR partial. --- _partials/cli_tools.md | 30 ++++++++++++++++++++++++++++++ _partials/es/cli_tools.md | 30 ++++++++++++++++++++++++++++++ _partials/es/windows_ubuntu.md | 30 ------------------------------ _partials/fr/cli_tools.md | 30 ++++++++++++++++++++++++++++++ _partials/fr/windows_ubuntu.md | 31 ------------------------------- _partials/pt/cli_tools.md | 30 ++++++++++++++++++++++++++++++ _partials/pt/windows_ubuntu.md | 31 ------------------------------- _partials/windows_ubuntu.md | 30 ------------------------------ 8 files changed, 120 insertions(+), 122 deletions(-) diff --git a/_partials/cli_tools.md b/_partials/cli_tools.md index 67e149ce..0fb198f2 100644 --- a/_partials/cli_tools.md +++ b/_partials/cli_tools.md @@ -1,5 +1,35 @@ ## Command line tools +### Check the locale + +The locale is a mechanism allowing to customize programs to your language and country. + +Let's verify that the default locale is set to English, please type this in the Ubuntu terminal: + +```bash +locale +``` + +If the output does not contain `LANG=en_US.UTF-8`, run the following command in a Ubuntu terminal to install the english locale: + +```bash +sudo locale-gen en_US.UTF-8 +``` + +If after, you receive a warning (`bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf-8)`) in your terminal, please do the following: + +
+ Generate locale + +Please, run this lines in your terminal. + +```bash +sudo update-locale LANG=en_US.UTF8 +sudo apt-get update +sudo apt-get install language-pack-en language-pack-en-base manpages +``` +
+ ### Zsh & Git Instead of using the default `bash` [shell](https://en.wikipedia.org/wiki/Shell_(computing)), we will use `zsh`. diff --git a/_partials/es/cli_tools.md b/_partials/es/cli_tools.md index 2544dcf5..7808ca7b 100644 --- a/_partials/es/cli_tools.md +++ b/_partials/es/cli_tools.md @@ -1,5 +1,35 @@ ## Herramientas de línea de comando +### Comprueba la configuración regional (locale) + +La "locale" es un mecanismo que permite adaptar los programas a su idioma y país. + +Comprobemos que la configuración regional por defecto es el inglés: + +```bash +locale +``` + +Si la salida no contiene `LANG=en_US.UTF-8`, ejecute el siguiente comando en un Ubuntu terminal para instalar la locale inglesa: + +```bash +sudo locale-gen en_US.UTF-8 +``` + +Si después, recibes una advertencia (`bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf-8)`) en tu terminal, por favor haz lo siguiente: + +
+ Generar la configuración regional<>/summary> + +Por favor, ejecuta estas líneas en tu terminal. + +```bash +sudo update-locale LANG=en_US.UTF8 +sudo apt-get update +sudo apt-get install language-pack-en language-pack-en-base manpages +``` +
+ ### Zsh & Git En lugar de usar el `bash` [shell](https://en.wikipedia.org/wiki/Shell_(computing)) predeterminado, usaremos `zsh`. diff --git a/_partials/es/windows_ubuntu.md b/_partials/es/windows_ubuntu.md index 2981b48a..22d77bff 100644 --- a/_partials/es/windows_ubuntu.md +++ b/_partials/es/windows_ubuntu.md @@ -110,33 +110,3 @@ whoami Debería devolver el nombre de usuario que elegiste anteriormente. :x: Si dice `root`, **contacta a un profesor** antes de continuar. - -### Comprueba la configuración regional (locale) - -La "locale" es un mecanismo que permite adaptar los programas a su idioma y país. - -Comprobemos que la configuración regional por defecto es el inglés: - -```bash -locale -``` - -Si la salida no contiene `LANG=en_US.UTF-8`, ejecute el siguiente comando en un Ubuntu terminal para instalar la locale inglesa: - -```bash -sudo locale-gen en_US.UTF-8 -``` - -Si después, recibes una advertencia (`bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf-8)`) en tu terminal, por favor haz lo siguiente: - -
- Generar la configuración regional<>/summary> - -Por favor, ejecuta estas líneas en tu terminal. - -```bash -sudo update-locale LANG=en_US.UTF8 -sudo apt-get update -sudo apt-get install language-pack-en language-pack-en-base manpages -``` -
diff --git a/_partials/fr/cli_tools.md b/_partials/fr/cli_tools.md index 18b15ab2..1fbb3d2b 100644 --- a/_partials/fr/cli_tools.md +++ b/_partials/fr/cli_tools.md @@ -1,5 +1,35 @@ ## Outils en ligne de commande +### Vérifier la locale + +Le concept de "locale" permet de personnaliser les programms en fonction de ta langue et ton pays. + +Vérifions que la locale est bien en **anglais** dans le terminal : + +```bash +locale +``` + +Si la commande ne renvoie pas quelque chose qui contient `LANG=en_US.UTF-8`, lance ceci dans un terminal Ubuntu : + +```bash +sudo locale-gen en_US.UTF-8 +``` + +Si après, tu reçois un avertissement (`bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf-8)`) dans ton terminal, veuillez faire ce qui suit : + +
+ Générer la localisation + +Veuillez exécuter ces lignes dans ton terminal. + +```bash +sudo update-locale LANG=en_US.UTF8 +sudo apt-get update +sudo apt-get install language-pack-en language-pack-en-base manpages +``` +
+ ### Zsh & Git Au lieu d’utiliser le [shell](https://fr.wikipedia.org/wiki/Interface_syst%C3%A8me) `bash` par défaut, nous utiliserons `zsh`. diff --git a/_partials/fr/windows_ubuntu.md b/_partials/fr/windows_ubuntu.md index c11112a0..00ee9ec4 100644 --- a/_partials/fr/windows_ubuntu.md +++ b/_partials/fr/windows_ubuntu.md @@ -111,34 +111,3 @@ whoami Cela devrait renvoyer le nom d'utilisateur que tu as choisi précédemment. :x: Si cela affiche `root`, **contacte un TA** avant de continuer ! - - -### Vérifier la locale - -Le concept e "locale" permert de personnaliser les programms en fonction de ta langue et ton pays. - -Vérifions que la locale est bien en **anglais** dans le terminal : - -```bash -locale -``` - -Si la commande ne renvoie pas quelque chose qui contient `LANG=en_US.UTF-8`, lance ceci dans un terminal Ubuntu : - -```bash -sudo locale-gen en_US.UTF-8 -``` - -Si après, tu reçois un avertissement (`bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf-8)`) dans ton terminal, veuillez faire ce qui suit : - -
- Générer la localisation - -Veuillez exécuter ces lignes dans ton terminal. - -```bash -sudo update-locale LANG=en_US.UTF8 -sudo apt-get update -sudo apt-get install language-pack-en language-pack-en-base manpages -``` -
diff --git a/_partials/pt/cli_tools.md b/_partials/pt/cli_tools.md index 6055f814..a4cffe91 100644 --- a/_partials/pt/cli_tools.md +++ b/_partials/pt/cli_tools.md @@ -1,5 +1,35 @@ ## Ferramentas de linha de comando +### Verifique a localidade + +A localidade é um mecanismo que permite personalizar programas de acordo com seu idioma e país. + +Vamos verificar se a localidade padrão está definida como inglês, digite isto no terminal do Ubuntu: + +```bash +locale +``` + +Se a saída não contiver `LANG=en_US.UTF-8`, execute o seguinte comando em um terminal Ubuntu para instalar a localidade em inglês: + +```bash +sudo locale-gen en_US.UTF-8 +``` + +Se, depois, receberes um aviso (`bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf-8)`) no teu terminal, por favor faz o seguinte: + +
+ Gerar localidade + +Por favor, executa estas linhas no teu terminal. + +```bash +sudo update-locale LANG=en_US.UTF8 +sudo apt-get update +sudo apt-get install language-pack-en language-pack-en-base manpages +``` +
+ ### Zsh e Git Em vez de usar o `bash` [shell](https://en.wikipedia.org/wiki/Shell_(computing)), usaremos `zsh`. diff --git a/_partials/pt/windows_ubuntu.md b/_partials/pt/windows_ubuntu.md index 0b8955f4..cb9e6854 100644 --- a/_partials/pt/windows_ubuntu.md +++ b/_partials/pt/windows_ubuntu.md @@ -110,34 +110,3 @@ whoami It should return the username you chose before. :x: It if says `root`, **contact a TA** before continuing! - - -### Verifique a localidade - -A localidade é um mecanismo que permite personalizar programas de acordo com seu idioma e país. - -Vamos verificar se a localidade padrão está definida como inglês, digite isto no terminal do Ubuntu: - -```bash -locale -``` - -Se a saída não contiver `LANG=en_US.UTF-8`, execute o seguinte comando em um terminal Ubuntu para instalar a localidade em inglês: - -```bash -sudo locale-gen en_US.UTF-8 -``` - -Se, depois, receberes um aviso (`bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf-8)`) no teu terminal, por favor faz o seguinte: - -
- Gerar localidade - -Por favor, executa estas linhas no teu terminal. - -```bash -sudo update-locale LANG=en_US.UTF8 -sudo apt-get update -sudo apt-get install language-pack-en language-pack-en-base manpages -``` -
diff --git a/_partials/windows_ubuntu.md b/_partials/windows_ubuntu.md index 3473bd62..5d5326a2 100644 --- a/_partials/windows_ubuntu.md +++ b/_partials/windows_ubuntu.md @@ -111,33 +111,3 @@ whoami It should return the username you chose before. :x: It if says `root`, **contact a TA** before continuing! - -### Check the locale - -The locale is a mechanism allowing to customize programs to your language and country. - -Let's verify that the default locale is set to English, please type this in the Ubuntu terminal: - -```bash -locale -``` - -If the output does not contain `LANG=en_US.UTF-8`, run the following command in a Ubuntu terminal to install the english locale: - -```bash -sudo locale-gen en_US.UTF-8 -``` - -If after, you receive a warning (`bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf-8)`) in your terminal, please do the following: - -
- Generate locale - -Please, run this lines in your terminal. - -```bash -sudo update-locale LANG=en_US.UTF8 -sudo apt-get update -sudo apt-get install language-pack-en language-pack-en-base manpages -``` -
From e3ea342ad039bbb8b7da9bd5d49f61b31ad83cd2 Mon Sep 17 00:00:00 2001 From: github-actions Date: Thu, 30 Oct 2025 11:36:02 +0000 Subject: [PATCH 26/47] setup guides generated --- ubuntu.es.md | 30 +++++++++++++++++++++++++ ubuntu.fr.md | 30 +++++++++++++++++++++++++ ubuntu.md | 30 +++++++++++++++++++++++++ ubuntu.pt.md | 30 +++++++++++++++++++++++++ windows.es.md | 60 +++++++++++++++++++++++++------------------------- windows.fr.md | 61 +++++++++++++++++++++++++-------------------------- windows.md | 60 +++++++++++++++++++++++++------------------------- windows.pt.md | 61 +++++++++++++++++++++++++-------------------------- 8 files changed, 240 insertions(+), 122 deletions(-) diff --git a/ubuntu.es.md b/ubuntu.es.md index 2df2427a..d10c6cbc 100644 --- a/ubuntu.es.md +++ b/ubuntu.es.md @@ -104,6 +104,36 @@ Eso es todo. ¡Ya puedes continuar! ## Herramientas de línea de comando +### Comprueba la configuración regional (locale) + +La "locale" es un mecanismo que permite adaptar los programas a su idioma y país. + +Comprobemos que la configuración regional por defecto es el inglés: + +```bash +locale +``` + +Si la salida no contiene `LANG=en_US.UTF-8`, ejecute el siguiente comando en un Ubuntu terminal para instalar la locale inglesa: + +```bash +sudo locale-gen en_US.UTF-8 +``` + +Si después, recibes una advertencia (`bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf-8)`) en tu terminal, por favor haz lo siguiente: + +
+ Generar la configuración regional<>/summary> + +Por favor, ejecuta estas líneas en tu terminal. + +```bash +sudo update-locale LANG=en_US.UTF8 +sudo apt-get update +sudo apt-get install language-pack-en language-pack-en-base manpages +``` +
+ ### Zsh & Git En lugar de usar el `bash` [shell](https://en.wikipedia.org/wiki/Shell_(computing)) predeterminado, usaremos `zsh`. diff --git a/ubuntu.fr.md b/ubuntu.fr.md index 91dab2a1..9ec00d4c 100644 --- a/ubuntu.fr.md +++ b/ubuntu.fr.md @@ -103,6 +103,36 @@ C’est bon ! ## Outils en ligne de commande +### Vérifier la locale + +Le concept de "locale" permet de personnaliser les programms en fonction de ta langue et ton pays. + +Vérifions que la locale est bien en **anglais** dans le terminal : + +```bash +locale +``` + +Si la commande ne renvoie pas quelque chose qui contient `LANG=en_US.UTF-8`, lance ceci dans un terminal Ubuntu : + +```bash +sudo locale-gen en_US.UTF-8 +``` + +Si après, tu reçois un avertissement (`bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf-8)`) dans ton terminal, veuillez faire ce qui suit : + +
+ Générer la localisation + +Veuillez exécuter ces lignes dans ton terminal. + +```bash +sudo update-locale LANG=en_US.UTF8 +sudo apt-get update +sudo apt-get install language-pack-en language-pack-en-base manpages +``` +
+ ### Zsh & Git Au lieu d’utiliser le [shell](https://fr.wikipedia.org/wiki/Interface_syst%C3%A8me) `bash` par défaut, nous utiliserons `zsh`. diff --git a/ubuntu.md b/ubuntu.md index e14fc3f5..1c121934 100644 --- a/ubuntu.md +++ b/ubuntu.md @@ -123,6 +123,36 @@ That's it, you're good to go! ## Command line tools +### Check the locale + +The locale is a mechanism allowing to customize programs to your language and country. + +Let's verify that the default locale is set to English, please type this in the Ubuntu terminal: + +```bash +locale +``` + +If the output does not contain `LANG=en_US.UTF-8`, run the following command in a Ubuntu terminal to install the english locale: + +```bash +sudo locale-gen en_US.UTF-8 +``` + +If after, you receive a warning (`bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf-8)`) in your terminal, please do the following: + +
+ Generate locale + +Please, run this lines in your terminal. + +```bash +sudo update-locale LANG=en_US.UTF8 +sudo apt-get update +sudo apt-get install language-pack-en language-pack-en-base manpages +``` +
+ ### Zsh & Git Instead of using the default `bash` [shell](https://en.wikipedia.org/wiki/Shell_(computing)), we will use `zsh`. diff --git a/ubuntu.pt.md b/ubuntu.pt.md index 3493651e..a60321f3 100644 --- a/ubuntu.pt.md +++ b/ubuntu.pt.md @@ -124,6 +124,36 @@ Clique na pequena seta na parte inferior da barra esquerda :point_down: ## Ferramentas de linha de comando +### Verifique a localidade + +A localidade é um mecanismo que permite personalizar programas de acordo com seu idioma e país. + +Vamos verificar se a localidade padrão está definida como inglês, digite isto no terminal do Ubuntu: + +```bash +locale +``` + +Se a saída não contiver `LANG=en_US.UTF-8`, execute o seguinte comando em um terminal Ubuntu para instalar a localidade em inglês: + +```bash +sudo locale-gen en_US.UTF-8 +``` + +Se, depois, receberes um aviso (`bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf-8)`) no teu terminal, por favor faz o seguinte: + +
+ Gerar localidade + +Por favor, executa estas linhas no teu terminal. + +```bash +sudo update-locale LANG=en_US.UTF8 +sudo apt-get update +sudo apt-get install language-pack-en language-pack-en-base manpages +``` +
+ ### Zsh e Git Em vez de usar o `bash` [shell](https://en.wikipedia.org/wiki/Shell_(computing)), usaremos `zsh`. diff --git a/windows.es.md b/windows.es.md index b38b0709..dc0123eb 100644 --- a/windows.es.md +++ b/windows.es.md @@ -348,36 +348,6 @@ Debería devolver el nombre de usuario que elegiste anteriormente. :x: Si dice `root`, **contacta a un profesor** antes de continuar. -### Comprueba la configuración regional (locale) - -La "locale" es un mecanismo que permite adaptar los programas a su idioma y país. - -Comprobemos que la configuración regional por defecto es el inglés: - -```bash -locale -``` - -Si la salida no contiene `LANG=en_US.UTF-8`, ejecute el siguiente comando en un Ubuntu terminal para instalar la locale inglesa: - -```bash -sudo locale-gen en_US.UTF-8 -``` - -Si después, recibes una advertencia (`bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf-8)`) en tu terminal, por favor haz lo siguiente: - -
- Generar la configuración regional<>/summary> - -Por favor, ejecuta estas líneas en tu terminal. - -```bash -sudo update-locale LANG=en_US.UTF8 -sudo apt-get update -sudo apt-get install language-pack-en language-pack-en-base manpages -``` -
- ## Visual Studio Code @@ -555,6 +525,36 @@ Eso es todo. ¡Ya puedes continuar! ## Herramientas de línea de comando +### Comprueba la configuración regional (locale) + +La "locale" es un mecanismo que permite adaptar los programas a su idioma y país. + +Comprobemos que la configuración regional por defecto es el inglés: + +```bash +locale +``` + +Si la salida no contiene `LANG=en_US.UTF-8`, ejecute el siguiente comando en un Ubuntu terminal para instalar la locale inglesa: + +```bash +sudo locale-gen en_US.UTF-8 +``` + +Si después, recibes una advertencia (`bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf-8)`) en tu terminal, por favor haz lo siguiente: + +
+ Generar la configuración regional<>/summary> + +Por favor, ejecuta estas líneas en tu terminal. + +```bash +sudo update-locale LANG=en_US.UTF8 +sudo apt-get update +sudo apt-get install language-pack-en language-pack-en-base manpages +``` +
+ ### Zsh & Git En lugar de usar el `bash` [shell](https://en.wikipedia.org/wiki/Shell_(computing)) predeterminado, usaremos `zsh`. diff --git a/windows.fr.md b/windows.fr.md index 00c36333..998c1e00 100644 --- a/windows.fr.md +++ b/windows.fr.md @@ -352,37 +352,6 @@ Cela devrait renvoyer le nom d'utilisateur que tu as choisi précédemment. :x: Si cela affiche `root`, **contacte un TA** avant de continuer ! -### Vérifier la locale - -Le concept e "locale" permert de personnaliser les programms en fonction de ta langue et ton pays. - -Vérifions que la locale est bien en **anglais** dans le terminal : - -```bash -locale -``` - -Si la commande ne renvoie pas quelque chose qui contient `LANG=en_US.UTF-8`, lance ceci dans un terminal Ubuntu : - -```bash -sudo locale-gen en_US.UTF-8 -``` - -Si après, tu reçois un avertissement (`bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf-8)`) dans ton terminal, veuillez faire ce qui suit : - -
- Générer la localisation - -Veuillez exécuter ces lignes dans ton terminal. - -```bash -sudo update-locale LANG=en_US.UTF8 -sudo apt-get update -sudo apt-get install language-pack-en language-pack-en-base manpages -``` -
- - ## Visual Studio Code ### Installation @@ -557,6 +526,36 @@ C’est bon ! ## Outils en ligne de commande +### Vérifier la locale + +Le concept de "locale" permet de personnaliser les programms en fonction de ta langue et ton pays. + +Vérifions que la locale est bien en **anglais** dans le terminal : + +```bash +locale +``` + +Si la commande ne renvoie pas quelque chose qui contient `LANG=en_US.UTF-8`, lance ceci dans un terminal Ubuntu : + +```bash +sudo locale-gen en_US.UTF-8 +``` + +Si après, tu reçois un avertissement (`bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf-8)`) dans ton terminal, veuillez faire ce qui suit : + +
+ Générer la localisation + +Veuillez exécuter ces lignes dans ton terminal. + +```bash +sudo update-locale LANG=en_US.UTF8 +sudo apt-get update +sudo apt-get install language-pack-en language-pack-en-base manpages +``` +
+ ### Zsh & Git Au lieu d’utiliser le [shell](https://fr.wikipedia.org/wiki/Interface_syst%C3%A8me) `bash` par défaut, nous utiliserons `zsh`. diff --git a/windows.md b/windows.md index e18f0f1a..c16aaa4f 100644 --- a/windows.md +++ b/windows.md @@ -354,36 +354,6 @@ It should return the username you chose before. :x: It if says `root`, **contact a TA** before continuing! -### Check the locale - -The locale is a mechanism allowing to customize programs to your language and country. - -Let's verify that the default locale is set to English, please type this in the Ubuntu terminal: - -```bash -locale -``` - -If the output does not contain `LANG=en_US.UTF-8`, run the following command in a Ubuntu terminal to install the english locale: - -```bash -sudo locale-gen en_US.UTF-8 -``` - -If after, you receive a warning (`bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf-8)`) in your terminal, please do the following: - -
- Generate locale - -Please, run this lines in your terminal. - -```bash -sudo update-locale LANG=en_US.UTF8 -sudo apt-get update -sudo apt-get install language-pack-en language-pack-en-base manpages -``` -
- ## Visual Studio Code @@ -564,6 +534,36 @@ That's it, you're good to go! ## Command line tools +### Check the locale + +The locale is a mechanism allowing to customize programs to your language and country. + +Let's verify that the default locale is set to English, please type this in the Ubuntu terminal: + +```bash +locale +``` + +If the output does not contain `LANG=en_US.UTF-8`, run the following command in a Ubuntu terminal to install the english locale: + +```bash +sudo locale-gen en_US.UTF-8 +``` + +If after, you receive a warning (`bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf-8)`) in your terminal, please do the following: + +
+ Generate locale + +Please, run this lines in your terminal. + +```bash +sudo update-locale LANG=en_US.UTF8 +sudo apt-get update +sudo apt-get install language-pack-en language-pack-en-base manpages +``` +
+ ### Zsh & Git Instead of using the default `bash` [shell](https://en.wikipedia.org/wiki/Shell_(computing)), we will use `zsh`. diff --git a/windows.pt.md b/windows.pt.md index a239e0c2..bb739a08 100644 --- a/windows.pt.md +++ b/windows.pt.md @@ -353,37 +353,6 @@ It should return the username you chose before. :x: It if says `root`, **contact a TA** before continuing! -### Verifique a localidade - -A localidade é um mecanismo que permite personalizar programas de acordo com seu idioma e país. - -Vamos verificar se a localidade padrão está definida como inglês, digite isto no terminal do Ubuntu: - -```bash -locale -``` - -Se a saída não contiver `LANG=en_US.UTF-8`, execute o seguinte comando em um terminal Ubuntu para instalar a localidade em inglês: - -```bash -sudo locale-gen en_US.UTF-8 -``` - -Se, depois, receberes um aviso (`bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf-8)`) no teu terminal, por favor faz o seguinte: - -
- Gerar localidade - -Por favor, executa estas linhas no teu terminal. - -```bash -sudo update-locale LANG=en_US.UTF8 -sudo apt-get update -sudo apt-get install language-pack-en language-pack-en-base manpages -``` -
- - ## Visual Studio Code ### Instalação @@ -564,6 +533,36 @@ Clique na pequena seta na parte inferior da barra esquerda :point_down: ## Ferramentas de linha de comando +### Verifique a localidade + +A localidade é um mecanismo que permite personalizar programas de acordo com seu idioma e país. + +Vamos verificar se a localidade padrão está definida como inglês, digite isto no terminal do Ubuntu: + +```bash +locale +``` + +Se a saída não contiver `LANG=en_US.UTF-8`, execute o seguinte comando em um terminal Ubuntu para instalar a localidade em inglês: + +```bash +sudo locale-gen en_US.UTF-8 +``` + +Se, depois, receberes um aviso (`bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf-8)`) no teu terminal, por favor faz o seguinte: + +
+ Gerar localidade + +Por favor, executa estas linhas no teu terminal. + +```bash +sudo update-locale LANG=en_US.UTF8 +sudo apt-get update +sudo apt-get install language-pack-en language-pack-en-base manpages +``` +
+ ### Zsh e Git Em vez de usar o `bash` [shell](https://en.wikipedia.org/wiki/Shell_(computing)), usaremos `zsh`. From a42c0cef30f6b3001522fc2520607b3f406c1232 Mon Sep 17 00:00:00 2001 From: Jules van Rie <89742340+julesvanrie@users.noreply.github.com> Date: Mon, 10 Nov 2025 15:22:09 +0100 Subject: [PATCH 27/47] multiLinePaste warning has been renamed (#494) * multiLinePaste warning has been renamed Adapt to new naming convention for Windows Terminal settings. First step to fix https://github.com/lewagon/teachers/issues/3545 * Add the disappeared comma --- _partials/cn/windows_terminal.md | 2 +- _partials/es/windows_terminal.md | 2 +- _partials/fr/windows_terminal.md | 2 +- _partials/pt/windows_terminal.md | 2 +- _partials/windows_terminal.md | 2 +- images/windows_terminal_settings_json.png | Bin 61797 -> 142682 bytes 6 files changed, 5 insertions(+), 5 deletions(-) diff --git a/_partials/cn/windows_terminal.md b/_partials/cn/windows_terminal.md index be22686a..dbdfb625 100644 --- a/_partials/cn/windows_terminal.md +++ b/_partials/cn/windows_terminal.md @@ -64,7 +64,7 @@ - 在它后面加上这行: ```bash -"multiLinePasteWarning": false, +"warning.multiLinePaste": false, ``` :warning: 别忘了这行最后有个逗号哟! diff --git a/_partials/es/windows_terminal.md b/_partials/es/windows_terminal.md index 6a6f36c0..4de29ca0 100644 --- a/_partials/es/windows_terminal.md +++ b/_partials/es/windows_terminal.md @@ -69,7 +69,7 @@ Luego deshabilita el warning para copiar y pegar comandos entre Windows y Ubuntu - Agrega la siguiente línea debajo de eso: ```bash -"multiLinePasteWarning": false, +"warning.multiLinePaste": false, ``` :warning: ¡No olvides la coma al final de la línea! diff --git a/_partials/fr/windows_terminal.md b/_partials/fr/windows_terminal.md index 84ade98e..6ff3b26e 100644 --- a/_partials/fr/windows_terminal.md +++ b/_partials/fr/windows_terminal.md @@ -69,7 +69,7 @@ On va ensuite désactiver les avertissements pour les commandes de copier-coller - Ajoute la ligne suivante après : ```bash -"multiLinePasteWarning": false, +"warning.multiLinePaste": false, ``` :warning: N’oublie pas la virgule à la fin de la ligne ! diff --git a/_partials/pt/windows_terminal.md b/_partials/pt/windows_terminal.md index 6678ad28..9161c63f 100644 --- a/_partials/pt/windows_terminal.md +++ b/_partials/pt/windows_terminal.md @@ -71,7 +71,7 @@ Então, vamos desabilitar o aviso para comandos de copiar e colar entre o Window - Adicione a seguinte linha depois dela: ```bash -"multiLinePasteWarning": false, +"warning.multiLinePaste": false, ``` :warning: Não esqueça a vírgula no final da linha! diff --git a/_partials/windows_terminal.md b/_partials/windows_terminal.md index cb879a61..7a94ee07 100644 --- a/_partials/windows_terminal.md +++ b/_partials/windows_terminal.md @@ -71,7 +71,7 @@ Then, let's disable warnings for copy-pasting commands between Windows and Ubunt - Add the following line after it: ```bash -"multiLinePasteWarning": false, +"warning.multiLinePaste": false, ``` :warning: Do not forget the comma at the end of the line! diff --git a/images/windows_terminal_settings_json.png b/images/windows_terminal_settings_json.png index e285bdac4b7c64b61f1748bb5563d66343e007b7..2b076f1cbc3658c5d3c06fe8164ca60973eb1711 100644 GIT binary patch literal 142682 zcmd43Wl&sAxA%=pumDL2?(XgqgWx0(B)ARk?(Xh3Sbz|MySogoVQ_bs0S4!t+;?)_ z=hS)Xe0V;*_3SE&+U#lA-MxDCTEF#g!ju%Gu$~b;gM)*^lK%MqGaMXpCLA0R1{wUzz_dThoW+;q>Ji@y5 zL7&!txNB9gQU3GD{z&;dqyVoDn7ClA`n@{z@1>=dxCa}Bzn4y4&VQbTx<>hr{(VA4 zwa)uYDB^Fs(9ju%-Tyxt^1poSPJI-&P;VCs3u-6zZLih+XFNBVa&jE-C%gtLfOmZNT+ERQBgp#a++5hR1J+IPuV;IByHA{wA`7`1F zbWSVkg`+iB_$<(F(DQiJ5$rA7{!hn0P8GubDDJNvvB!few2csM@+z}DC-i@&HSW9O zn;quEHWP5Q_X9x3$AD)kz_$yNue~NQrW7OmpWmZ}{KD}n{!M+!cI$QNmlz#>O@gx@ zLD^UtSR^-sBsUAiB0^5sHeS}+GXLrCzU@0uG--Q1AD`;`_ejRZ#zrP4n$2Yz@ACN1 zuVWBPMwBja#~!@c$kiAAW07TV{`Zr79#QX@ zV|}pb8eF2WmB^V$W|2Et|3=2>&O98%T4W?-k~HvTd- z+&?CyeACEObOp~$BR(|mjGW1~-g5Ix=c}lv`{Uvza0^qZKka0=5L;@i?x%`Uhqpz> zAJfqK0<+F=OIyI#`LS3W389rQ7}450&pvC2viKvDk=x~Kq@)Z{)5axHQ>mX;Gl1!j zs;>C3l3Xxe7`W(k4lrA~8%w}34Ki^%MYM72>U-N=Mtqv79JD-HH;9H)>T=u3{Og-Czu`vt4iiaPeKD^YGJXa3ZKnXGqq+ zN9XB=NaW?ebE6bQ<*PUw2(s2l>vX`06`(=tr`zi6JcOzbQUt%T0OKx@2{b14CKRd} z=L*sLS&RpUuU%th4=mvuhGBB*(kt1sWem3#yF#~k$qtOwtnXSO>U=f?Z=fSP$DcSI z%{MS4<{IUkY2{6xQ1_AyBfZefA|y{gLHScfMDWDP1)5zbr6JDG?^A0>suU3o(1amVwjZ7)LN9_rsKc6cW#8-KefyC`@JUZs$%+46b zVsSOCtF4W9Xr<@-P~m(;b1N#Gv|xip*#Tl0i}T@1N+cj(z2-dlsN7G3A|jaNCtg-c z@{!Uk!aW|iKEEyETs?QWs&@rwv=)cBI%_WmutC{2!*rcHv#Ge2-I4`;Ml0CXX-C7( zWdy2>F&wJlgsL_xUke%Ttlqk~ZEGI9HhJQ=^s?h84zSrS%7*615{qw4t_Hoe$1be& z95XX_pMGOyy`HPzy60d>QMV1ZCD6u9L%*TCym*HtRZ^RuiBFb}56z5@1njRebomdH zDm!LHB6?`p_FJP27ejDb!irp)N~*t+NUfPgdpd@0Nj)2B7W+voa%c^>!0fPN39=I& zMX-IEJ&VMgc^~m-oy{O1XO=gpf75Zzs`PqSLYkx%5EX3ePp%2tZ09R1#0=`kYQZQGl5 zj7lWLGz-+~NBI=5mDL^=iK4f43HK6U4v!$zTc;vppf*J@pZ091H!{r4lhwN9X{86<}#&; zV=a}1+kq`mx3{%kZ)ZNpX>mm>0OYDm8WOq4SAMRxR7Y{=vyu&$EqytP;!h7cILV7} z(EcE$&b!zCv5v)QO9eR-ddOtb5o>EncKlAz#}#$TIjj5?64|&98n=P+I**ZSVXIp&nczf`(D3?wZMJ{U#f>mwYN)MoIc6(ksou?WC4TEKi20?ASuZlxAD>}5qJ8>P0d}0#c9uq zoD=6*&+_k<;>7`09=v#*QgK@Xz12bAl`VF34WK8*fwrFWQ)09ngn> z##tF<)`w9#8#EZd$3z6A!S6VbSKDptWf9}{u3vYucrdq~BY@^wee}-IY*2ylk5S#V z=I^9&3$?v1g{%#1Ed}^wuFav?-&wWCei)yeJ=RN(*E>PUB5Q%Q57f7uPO-SQ&cNG5 z{uR%RPwZtTzp7l^xQ~eQysLbq`tH|XH8tSy-k-jrUiDmKL4CSqOVHICD_1+({z&N? zHCq3Hb5^MD=@lTdAqYG|0#uOIKc5_ll%4Ntc+wbKJkqsoL$Ji<9NyJ66l(rE``s@b z+v2H`?V(E4KfWe6`sGXG3pDXhAIgCqJMpf>789bFwNRsIoD<{hG?QzS@=?htAif$@ zR5pldia2y;5rp>^?HxZ*F=qoob0QsWNgLb*RpK}uDaUpWTFLUpPsffM zF2NUDb>{63B=t`G%OMZ_*wJ5`Gr#t7xS70CbaQX1>#sT`S>K54Fn;t4V)1a~6Qm!} zyBbI$ad+e?#(Dkb+*hZ2Z%42RTTIE>9#uMFeYU-Ow$7NGCf)#L_Ce@^@)sA9j9`;K zAN{$r-FiM@X#E!(hz0%;ACrlWPqL_hU#mq*!ii^TzM&6$+%)m<5dl$H$o+cpXP6bV zT%0;OwC5)@U%#A;w17u)d41ew+w;E3rDL%!PkS)ZDB;PSiV+~`ZE939L}4QXIAb0# z+7hN;vE%vn3&M*4Gu({gDIxOOv1$>rQ)5q*1JnH5P@C#hpZK@zwMp^O~Ulnlj zZ6uzYb02Myaq1iei#De<-w_)cbUS~FbRs@j?}E8v>L8Qog#py?XYFe@zsjTR{7S>B z?h9UXm!KY{`)w3^4KF%?OC$T@#-?1iHXv{{2Wymitbg662+VC#w14tKL(KE+rb@AY zRl6q~|3k_5bM#5-v0bFsjcPOjBGP2h(?<(_I6=+t)yCayvIi()LtFu{T;{lQmfyv; z2mAR)l|_{qve&Nkag=awBuiC`t>w9Neb3Dh`?trRDPC4o4`{^6u))Q>kF2`NfQ2E# ztZ~)JSV<1&k!L-q!{%^b6pks}5@y+dCJY4l~L^ z1e3qRu^+ZTc-(=Aw&%mkx_4Vlo3x4!7lp=op1;Kp(Mj z@~wntvNCpO1^^|HQ~qfgFF2C>^O}j{|1xZ1L5O8J{b3bn$+_n!J%L~FlH?28shz-TPvhZfsRKT%l1vFoK`@1j)mwkF1(J@KV{!7{;P*H& zy07PErV+t^ti@hbY5eBdPoP9;Lyk4Pyf56!ep+L#sWpU0P@S~K@(b%ncLP}_6L`xB z$MzMCYJR^3cftZ*`>Rr}+g6I4g7VrT)e+6QT0U)Oc&Lp@U-k~S`A2dpVWjn$$(b#E z?OP!STUIFr`0GilMZhL^nDG(kR&Tt1(k*yus%Pw%3w}Ac zxa0Af#Am5)XD1Z>cSefy``Ct%)dG(5*VcHB?Z-ogv z4gZ-Wwr7v4{g~~yukc2YIX)B7{XXX6sk;)-j6@*!!B<^ITv8l8LamQOH z``~Uk*+oQtaz0!Sw);DdrLdU!+28>0!E9YjzNS3>nualuGaw~v@P&Xp&9~MwmM0af zOSYd8ksRE?5RoLokH$}aavNqwn21z4Qxx3e?v@017A>vqkM@db#$sQCrWm{CE%t?D zPgUUxfTC{30ZB=hjih@mcd-Y7v6nkDRep1O*XwFibxo60uQ<(J1x6TY=&5m<5!350 zddEn13DDUxI#;#>@gMiPd$PQ0mJu(m_uk9kKy;I^( z0H00)a~?U10cn!4Bd_ES50NbDO`4%`#;B*X=GUJ^dVeC45i2ALqOZiUUZQzRvKZ*8 zQBMi(sACypgTKe`!J+MdJ+{Y7BPu<&{oKH`#PqaFnC>A{9^r*n_zIg|oRX|&9zr4J zB{p7eNcCpMB8=<>Jw$?7ucc2sn!Yfr86?^8n*;7@WB8WUw2fb-Z)tR)ldrRAPSjjS zh36(<_0RY2hulFvdwzL!?a+QW)|WDq%A3tj`jjow@6+Cv#Vd{Bc1kbVyH>2T%)j{p z{(7R|X~ePe3Q_x3YN9|;$u2!6=2xDMV^rG~GxfgQ&VsuwDCwGcT|9E{sXF+wI6?h- z0Uq#R`X}EtV=8;!AOWmn-J#wI^g-O=*qAPG+<$54EQ!zINEe_ZIy}o*7LW|_X|9Gh zCF6__R7;sGiV)P$>lbJetq$pFj_fdeY^&upBEQ2MUv4B*E*Fe+wFct87Dr#l6ayY6R)Tf=gO?Ra=Y*R*UWPy;PG zl}M8M=r=CC;NoNG*7IM3n1l5v?-o;~kuFK4m9$r~)q1!O;#{fxEwAg3-rn1ge~)pB zE1uKoMY_8yig*!tGOWBlc@!=BTQrSPtyFV#E z2lBEuqBTO*zMrL;WZakrKc!@&C{shE)@mgG8{ zKI%&qXE*rOaXNV0P@Ju`Csq;9{t18P?AJ;R%z@egtj5-hXwfgQIje%}hci}lYb2BK z8BwF~$l=?r;Z1PbywLsI=8Q%)yOtL}cchH_C4AIs1-WJy?>wLBMFVV|Xm`!$YlAye zR_5!ag;7^!XHNx(=hJ(YHD@^8w8-CTzLi$J>ZR8xxhH-8YiR2sJtiy+46nd^BPH`a zj?of>{;HDSb)9R#vLy%XA1)uc{cQ`kkOLyJOTi586;Z|ZG(a~ zNUiXv^esDZ_1=H1ys-)v{7pu)8r=optG6B*+K(kQCB0@4Oc|N5!kANMjc_H9DvZ*b zJ8147W_8SvE!otfyVK1cU5}UsvGUVlU0Ccz=*m`?9Y=4mWN`TBfl4qm^DQ@Ax9$Vy zNWM0AwytO%GSBhq^Dvh#d~bQ-VJ*Zs7Ogkel8$hYlIBG_fHOu-3(GK49`wg}p`d`G z+7q1N6;3y@1*mbn?pUOX$7hluo#jrup|f$LLywFaIckT@^UpHjQ6a_KrEf!|`dM`&ECqe!KU`@GLapndYY;8Xfr7IWih?@!$U~3?8B#;rv&Qv(xW|dpm3L=^$dtv37ET8R>r}D>IL$#j$ zn^apE8p42{lB%ktbDaj8M0)54xkbTfg%|O4Kj;S-!H-RUnV2z1^?b1=2#ow*D-i#t z%efDV73fe@;^m4!&&2*URfvYe^ij@0_!=S2lKd5ja)^q``uNF)Z-o?Ip#K`;x@}p* zM)7BpQ48nFEXe9Y_W&?G{NCYWXpn(h26U6n&7ZJoT~?T<5l7+Z)vBO58U(}@Dv7vu z`2UrOO2hvl-Enju-k20MW20YqyKyI=q7dO1qGVf^(voq~OGvA4~;nOg<-F-<1_L(py$RSFyHguG2Jr(UXJo zGb2`QJTBk)2=c49284dSOgWgedGz3hzW1dT4~fL7uQXp$uy5fN{`P0Ef79-nBuSLa zA=%0u*KMWoSl|<*4u>tAfI!ITOg=XTP6VtNjCOLjXR>y z8SpRHYc(z8juTbKc1TK@u=^nQEbOGA#KGiMjE(qcq!VLgD%YgYw@-uN7z~VTrJhQWyd(@d+ z*PqJZ^;r*~Pw~=v1#B0P&RFjiH^iv{npJQ8#78xHYo-Xaup=gYz& z=z*+3ly6+Om`1beqfJA7?A^CMis=}LE#IQ;)YAWPyKx6W{-Zi^SfhsucZBEgA9tF~ z;TsP=u{6BK1 z?1BE}OF+toEZgQ|)TB={*5A@u9Lnc^gI_s27KayKh0DqDP4Ecze#abBj^Oqd5)U#7 zK3d`L)!vi#(ev;Kd!p8KWnXZJ25nR@l`ZXy zDG`p=s%Z*z;;-kBVIp8(MD<)UFZsWn-wkCh@G+LsI zxA?u%p}kY3?5Yr9PL&ws(|AAwV7o^cc1yg?%kLGt%k^bfSSN6Lw4+rPc3g9w57qGswLxY!m%Wm8o zwCNcyH#k&1Fv6V@p$V#)<5bDmDMQJkM|LEWnmcs2ViysyG| zd=YmxT0MN@5bT7@?h)HxC<)0EQrw+MeFJxzXd>!8zO-l6YMR;h4OEZwP1HJ3QDj6<%s;ing0hKBceY zHk3v{q#E|+_En_NN5oIPnx{h0N)~J8o5oxWp1NxzGG~W+#U39;6{a<(q-vDohwbXs zWQtZz8+H)p7-=?XK!gG-9>F@M%jS$5Pa@gZ)_@K|6VYAuzENGN)Po4*!`_0v1l6V8 zY2SEK_zgbpkwrf5RD8tb0Nsp_w^12mk!nlziW|LnwMN2I-ozHaTAWkyaht#`3X!$g zT!f&m5?bZ3Bh{C-D5lF?u?mPF&Z~(&c|7$cOK^ID%#{$kM82HfTm{;zUzDquc{d~d zY}a>iVvmkDH?HfY5n5(m1mh-)OMxGnkbv;%3#M~ds#N5j3H@#LO^&YJr8R_4bghz$ zk{Nt#@FtO$b!eEq?X|KQ#dTAATpQ5$&R7M;4w2HBq^tO^WtyK{Q+2`=CqJ8b{EhVF zUIaIE`DgzNsKYS`CJiRL;SbMuQ@ifXZ5<9W&zlW@rdxg)O|BGQ8*v#E!_l`W zoN?J)9p!5y!IKA|pMFk)mA^1qRn z{cO)|&S)HW$+?oAaEx4APDX(hK`d<~TVY~p48y-Hulf9wgsY+~H~2Vv6dZ9_c5I|+ zL4KdA3{{_@j}24yLxO*lS>SCHUQmX9ws&D)Ys^l=M|`y87}9x4_3S7g66h0GRes*^ z2!qOFvpRmO{f19N)auV|N+6AcUhA@(sW+JCj=1^;c<9@edcVrOeRr5F)Y$d!IxP>e zQ?{4`y8EaFr%Xpz>MN>7E^y&)?!00=ju<+Sl@Ps24Z=%i(9#ccS{FvjAkHvI& ze{doz?Xe8pwe5T@_LVOqPji_TYH>i3GiNF!*N{L#oJjV>O)gGgBWG~!DMDU)OMHWE z3f?YsZ1kvc%Kw`=(dOnrl3r9MHirv}lo za18OZz+;gl#aMZ+U3lp_lhUiPbpC_{WVI9p)fcY{$Q#{O^#(+3f0h}}v6lzhT@IF5 zMBIB}xb3a&Z32f;CI__dpP2y$LRYc7mk7l8GHa!aHd7F<@q{@1%uYz?&$ei&?xdR8 z59ol_VU>Xh#vs0m^Sv!LW1gx39}AuX7h+~C(hCZGHfmxPJ?t|($#D^fZqv_ojfoSs z3-oIjZDT~S*@K~+6OxS4uy{J_1?Um#oK`NF0oy_xcA)_p4~|x8S88v$B6Owcm{svnzw928WNK!O2J6XYc|L z#VWCT;;keCjPM`*;&KxcYLy-h+Bv;Gk*j@htB2y!E7wx>TtqKd*l4M5xCh}^tSf6K z2>;3<*bsv#%6^mB;SOWI=2s)m#d%tJZPa1UkQuhFqxZ-_vne)PuACASnYSKnA#v5l zLYjPsRW;VD)hyf#f;{O;GiAR~Ebx?_$@-@S4rWV2|8rlFXlo6fX)-)hluV5N1+{6d z3|~He%?yU2`N4g2S{XjuWlSRvl4>i2A-ZAeEz_(x#^ViH+xoRgA8X<2$Cga^ccRGI z^!CMqduwM)kdjO|py+8(<%nhw{(cmX+D?8*FF7QR``x1av>5uc+Lmq3%0(hLrNP`< z{QfgX4xUdR$jjEneT1{l+8-2Ez0{44tXq^FZXEr%l?7mtkL9*5-0Xl`ckPlVOGbp? z$xd(PNH5Fk`j>*BZEVXs<*vJBRZxP1;{2k4=Vyrc19chtW>PfZGu(Iysracutk$1^ zAfL`D!lIuRmry@BNFZsHo{WA6l4GIifY)GI#jhcp2_v!!>Z+_t=n|BTgkaxl%AHNZ zjW8TZ6sv+Qk`a!#R`5$9QzHfR0;4RYaW0AP$~uibiqf1G!ejl|j%xeI?k490MfsNu zZ6Cg!gDajU9$6l@kW_6xZuJP}&9T#@3n)6phX@S$UE?`D!B7J9G?mCOS>?x_$4_}v zqlU^%%`5#xC+%%R&lL&7H9kt~x#>6B!&OARdn7B{la$L7CG?NtZs`j6YEy>Ws<$d) z$KStC4n}>dJQ>^EL>xgdg+dA&kIw3Mxz42#7G_ja?)kh;!OiF-HH%xkO(K9rvn+0e zQ;P$!uYY6j&%ZJ4xr4&3s+OKYiyA6?Te6<*QToELud!FHr7_CSpTOC8b2${#i0^j~ zqY~-}^_N^S7Mq8fTVfh|)^Cg}W($L>2!lI*T7B|HxBqxlv{{ncF<%*=aplg`h%GWB z?VJ%fMj#%8ld{#?Q49Qd>68{jRHrQ=tGf}Fmwyb3`6YjS(&z-HYI->2n|FFvu!Un; zW9z0Bk8jeuB5*m#?P){Bx~Ed~5>NLOLK2+9I|fBq zky%<(#p|;uR7x>kxnzSVmm+C;8m#YjZ;v1dwzEfHl%GviN3imJkmZ_D*rJXp5MuKS z_p!Hz7>T)AKg+gsO#$NXF!CdgQ;Oe-YHys>ME|%bZ+B-PHgGc{tBJ<@v#Fkm{YIuh ztvprsBkDcXnOj&mF|21Rux412sem8GVNt)G{nL=sSlKAh?a520E(Fem=?=$;NRis` z^>g@46c}qJB3tP7wg`KE$EL7Jr1-A+X|Uu(OZ!wC;D#+Flx9Bx;N1~xAjd(I3Xq?P#HeI*O`;A#Px27pblUQTFyWAL&d%gTaoOpp1T!))N zS>|B7f@j#!qGyWK2fl*r_Q9fBXk48uTN-_&2J*w*qE#B^sciU2@jG!-3q}I!KhtC% z#IWm$yhS$5!{ui+(KD)0;p|c8L9XE(+0@;gl71Pqge<}bWFVH{ld4m%im|}24E58F zlG_0q^1eXV$&mSuNCDJ5Nqbk%)_0zUDk9%fpF~Xv`0f<4))RB~y#J^v^x99-4f`&R zl*CHuY}2U%I5GS`7CUPDy62y)?7*tbLtv{Y>_obbh zCV8AwHq7S|4jpnpNKqyYetSjAT~}y_NrNl+!+eG3ge$CHYKHT1%p)|$feVp~BnTLOQE+HB2 zD&a-C3y#3c2T1lTGu*<+Vthk-#j?x#Mv3Aw3rV&D)PAG?<;Cl#oI45re}&XYH*;wF z9KI`ZUgK7iGJg~9+lK!k;M7KRU;i{C7@3+OVM9GPlZT%{rJk`lk0)DiEK4|DyB&{4 zOGy0D-PL*Py?5}x3EwFBkSrr7{d6&qVk~Pk86;(Up}v)~zYgZKa+Wi$+nHOcmUed! zFs3BvUZGfg z;tJR7=KZD6c+@aYa~|<7g;8QdL1Uf6vqRN+IjtVnOcC;mmpfIA7Z~)rsAS%1D_i%Q zJN(T&zbKxl#kBcmFs+H_<>a=L=dp9bA;9@lRC^%7Gp*|jZH2Kl{;6+uL!oIIH?|K< z7R5z4QwdqCSA#73EOk+jijTW(v45i1kD0$-eTyAhn|)g+F5ox4AVvq(DvC3+1Qv)epxufz;8k#kVryOZD_y1$}%=l|W-CxMtMSe*1E# z(WKt~!YG$8kzY_|U`&SA_{LGTqcQG~S-Q;yi8&MGJM_p?H=zn1CHW+}im9jDy^JcA zP*ZnXsiYb!wSCN6;?o%H%e~!1KW2E>CRgv}U}m))qsh&{ggO|}@9OeEi!CrSV*=FV zPZ^u6VsxH++S;iSyo3@6To1Y*mVts&5&=HakAkQKEbYzTHbri-AEWZhXEZ{-Wle8f{b=J~WK0EcVk7 z9K%^^!`)YCs}vgnNzVlSeEeeo<1UNS45i;PyA9yHLn0>;KV!QRYEU5XK7TJfO<}U> z(ozS)g@c3D9UQ>zp>}rIM|BYY=LM;pzUNeHy+=4ZF*^G-%98a}Gz51ka_;yX%BF8M z$#&31WzTE27So=MMe+f7V=tbOEl+b+kjb$5SL+;=n^XNu+l}#R(eZN@X=jyNt(*cq zm0HNs7?;_Fsboy{`}Gq72pDt&ru~bX_T}->|D*eb38()b$HI-rLHIo8xQO3}X&5@@ z>Hm)0XYv10i*T;1Js?VwxEFTVoq5La(fE>`KDL{rkBbjk=o!ul36lh6feRO&0|qL?zu~~ zejHJ#86t7-Iot;;!6+OVY;C?jXB|TPi^r6bEB#W)vgE^@a%I#^vuVDc{!0A_r(hYb zXN89(YUgYA?%m>idLXgKY2n$#HR6Ymm5mu;3`(Y8Eb)`jk=jyhl=o1*E=6lfmVT5D zHQ^aCwLSG05o+PRn)sZ+U@MJ4{piO!19LN*yePBoX%0 zI;ezCAI3-%9o928|K^B5j4Fl1#FHK3|BiKtkf>RasQ=yg zTrI1^JEQ|O^*$}ethOJGHJRcUWH^US*95h~!Arf=qKHxCOe6v_%>DDNL35xISs_Hs z+MD1~_Tz1Ni|U99VjDnTXq)3>F3yYZkjbBlbB5aeQ8)q3QruT{nrIj`Y0#0x4F
    G5t%~TPXB@x!3~iS#haBYhFPaX1p7~`Qi$`xi!i#@*AQm^gQxOpG*%$D6 z&=ksG^G4&5=)M}b%*D-4cm*GMNZd=REv#xa6K+ouWHKNC?2ACf5Y-uX*y&#V!En60 z5XNS8Us-Fb^Rh%g)7NKJUXBzTaJ*J}W)oe>4pD@hE#qiBx}kpn!|RN7=_;@Rz3H5w)-W$CDD81=^u){>NZxeSp&OVYnOfa{UBZOkCFJv5C?liqn+hI0N%H7c*BPX*27#^+Y*c@0rNaOXHQ|HL49i5)(gx!wO* z6XB`g`FgRQ-_XOkq@_Yu1HG{QHnINk$~bCgP_nf80|gZ4cx3g5bIlcRy zg{>ks)M`t@%ftO*_0OG@DIP~xK25b@hpqd77G(~$S${^?HhJ^4T>RVmR#bGlnVn-@ zMm@i3g)dDGH6FU70@*`yiqHWajfp@~S=YT~v{#rBFvNz=a`%AuS*$X;VR5_C?){61 z%owXn`IzwSr{Xe8LEbXq}}k&K zq%O2}-zelMZQ;gE-Aw!`2qN`4wZ)NpBVGgfLsU)nPi${fvJeTkF$Hw#TzdLc zkbMqvC_#Q-yk_Q}yI_WI)S^E`ZRB+M^&ccua{zp#*(nK3w=&mS?-p!BM;q_zjP29may*9-S#c@TI89}Nj@IA z+OL~tku7Dn;g)J6jMnxGkDkQWaahkS3@<$*?=bsznD$*kT5y(JH+%?Tv2f$@^f|Be zJ{vJGjQollko@*vM+taoIUNto^952!7drNPhbni{w69doaoFfxvKM?0WVeF{bB_G= z12jZz1e>`ceJUQPg1PM;bQ-(iE8*PQ6 zy}D-!zm#q+X_bE`2yk|Tm84z*Te{L$rjk@X1w#%rCS10ehuO=#Ie+qH+R&7w#l>9! z2InFGVuXhzS~e)IKSf21#%s|wAB8tuH~c6stV{y#+52s?5ZS)j3{xC8OrX4^^{ic> zt*Ei&F3M|9VFRVb0Uf{*BG^K(=QI;%+t{t`_W`%qm80{yE2;k zQGDpiEhEk6CUJ@YrqaA1orrNg=#V_^6KfRv1#v*I%?+K(_8Dx7%1EwH)Dj zq?>)~&RwO5^#(|sr*U=g=y-)HGnNo{3(sEao}oKaH%h+TMQulVW`puU1J!k_wtmFP zyW>%0<8ZQR$LBO88tjL)Lp~jI*Mx$Atw6p!0x3@|x7k||c~aw6pJs`LhZ)nbP(yrF zCvM-_*0ni#H8gvN*`&_&gP_#;ST)GaZ&@DkDy%qpO^(nLpN|B{-XiDo()zH|YY8#; zTP(yWtd)0DpyKC=5OIe%Q*hv8=d5jP!Yx_C6R2TT@YtuW;#i$hFVEpn2~blRZ3!}j zUgT(F*lre7n?;>1dp`^|!#a5t#wrqA`FmNKIh48b}5-q`kAi9DZhr7sbR#RlAh)sBqkKSR`4Zg@Yul!(Z9?WTwYat{C#b|hv)sY{TR66LG5 zw9X$HVb=RCCZw{Dvu*P+_X4Z(O;9GVyQt+{a{A=;<+l(PlL+eU!ph5rO7{6>m5_GC z@K{?dk=ZXt;x@Cm{hC0Xrx@_g6=_{rC<+WgoAGl zo+@WF77jro(ilb7J)OI>ul##}g)?>{@P+X3g4Ix?9?9EU3u^$!%NJTr6#Mex+tIsv zmN3Dz*gbsp%E#_|F?U>V%wt$C4m$JUfaJ*P?fC~lp(lU^^bIDUkFCX+?tHl&;hjqY z@CM6+&)RNIY|HcVix9Vqx0Poc^kg`e;h;ZwQmirY>hQ*Q#Y)jcxi0S8_sv@ib3%ETaU*#veiYvv3MNgWSUH`t1;rFP}yqH_TejE7Ksaf2Fsv zZ7kkQG!>j34$rLodL(P@>wD7GXhuc=%5&QrXC!nXBx*+Zg}NfcC7 z#e8SPit$T!LRsdXHR0TA8*7gkGvRil;zluFV0EFJ_q*wxd>$X{=KzAe;?&r6rrxr`kcn5)vKe_ zIwD^#*wgCnOE>@%mQ8umkkhkuHRXJOov3L!6gxh1!RBxV%lYr)K4)bv-*_k^#oOg` z`K?TVT(4+@8y`6EcSei!GhspTZ><9vo!IDnh^)^meEd=`tk~4gwOB6cytRG`hFW!2 zTY2ASR1&oF3-UAkM(YAG9Z!y+>1Q5=BiTrS_>L>Ya*M7l=E7ET`W@q@&^HS3oPnZE znLRE)lYRD2KxuXE4kLy{-B!YlB08Ez+LJ@y&}-YqHoIxsfbR=+YG2&S5Ad~Xy*$;f z4JSkPbQzyl)lTsssMyEYyl)=snLf+}zaM$DC%#Xp6 z=aXV)+fw(wkM}lRyFZU0Pm++nS+d2IvMbHTfO)4)=^2>zv3xd`1NZ^ae@|!1hlmv+ zZM{x>pX0l9r9)Hlk6fP_GE6iSHqVhhEZvHBwgi_nF6;s>tCO4kHv{1|*ZVbRHJyIc zI0&A@51Oi<++W5^*OZ)PdcWedY=sY`0HE);?`%A1opCwHr;X%{6-M1&~e zPs{V#M>M+fhS7+Hw`EgbGRL&v=)bRluW-2UpW6qKIX|YGS?WKHX1+GtV->n&oT~HM zShESs3@9AFSI@xOI9JC?zu^R&K3{h25uulRdg(*75)j9m*!1I55b0feX%rjNC}cQT z1^mS);kV5EW?6I9M(2G|!aR7c3!wEY7gOp|=B3i7$ff(xmm0DfHDTL3aeO}n#c1P^I;0u_T z<<7$5cYXSId3}E2z|xMGgB@3NO7F1cX(yaR_95>8WwVKspG;4}j&QjFrrjl58-f~> zYQMJw0Hij4t)8Rj!|6*cpBM6#$X=eC)txb(#_W$!g9G`WqI;wW>HUEvbPxa`>_C)_ z$a4^>xOG&!Me8TsyydgR>qkrl2dmImCCbpOb}-Xz12AlIx3xoI83QBsMKp9g0S+ z&_8z8SFqTO@_@(VU{Ci@p=h z=My@}=zD75eH44`WXP^0xV?Ah@#`ynqZ!)wY7M~ZMLmFK_Je1BoT!%LAwveybJLQ6 z0<_(>Y^%0M;=Jp3`Lt728Ww;H-m0GwRqc(AF1o+es$s!jJ~bbSXRQgjjZU;4@QIb? z!UF4M5Q*GlBJ`kwoyd!XM=vvJ-{IKYEbm;mfe383`AcKtewr(`!X3%zz;T!lV+{wo z(jDl{#v7Ayv+85W0~J?th%%1(8a&PhmjeVUPg8xbE&g$`@?P2MVE8T=NaYLHgwqxT zpX{KSk|nzP_%3IihcLSt>U2V6jkK@m)fYbGt~N7${x65hV=Vv3yu{0DO_~6DozR|S zbY$SQwQ2J& z*j2KuzPN3SMCtg{ALb=Idu~7#A(eg^ed6U?3#<6MH(MEmW}A|!@YJ^^gzqJd zJN@qcXSD&wCs60xoDags*O#V`(9vj^QhFo0E#O-DZKPeXhcnaAR13L|724B}*8t3> zfmD(sVW@lhl?7QaI;P zV#YC@i635*hjdv)D={3p)S6?pbQk5ib6w1gy0M1It`+;jrVLOiVt5bG-p{XPc{-jM zX%^zE4<&Dhg`0|bFt%~>qHe!`Nb^X$6SpCDGE8Y5*>p17)PnQ>*7#)7sguPr7V#B{ zL;qTF_t?fL+ghepCmNIHXDP0LaHi&1j#?=KI`@+^K_)~;$3|gZrw$;Tqd~EBa)azc zI&~Bi?%4QKI><{ohT!GQBdgKl91cfM}~@}QJ9c2rVU4n9jRO(UMiZH^+S4x zZ=3weAHlqdb3nXF9MRu164IX`NeUSpIQhD$vg3a7*jDPcNzjUBff9X)qv5sK^#166 zAw9uS^+mig$ma!H+i0~&yJ#llrCxI-xzESQjlJX2y~CAs#=K*|1VLj z0*k^C>J?+vm?|7RjaJG`uJRdD9qIE{QH?tzDyfx)H(?H$Zp{Lft_UY&+}@Z`72nTv zWDWNCTVik>M}-ID(%S@YB<2Q4Y2?EVpRf(Hlf7a;4$}7#h_+*Up*gX6tjJm0;3)Oy z5=d3s^~yLb0FMbAku>qj}~7Kuz1s^m3X2?-?PN)`Xt4aM(|J~0$~EW{dltN7ZNLHZ17o9l4pH^ z-XfC|V|RYd;SdoB2>Nlf>K!-n(Kkca&D;qQE*cUanSN>6wcIFOkA{(^aG$Z}MHvB0 zS3L&BnWB;|`N$GXgNJaeFc(OBo;mZ=>TocRKcKwjSVxh&@KnU+@d)wzQ4uSJN`KtZ z$$4|;itVX?L7SPV#X)rA(JMnA;9a!DCC+$oC1;6h}!x@^*%|Jp^F;IE&inwh6S0 zJLuo}a@q6He4omhOc`wZiZ(raM9RB2n~ZRjl)r1Qo1CLQ*gWD-e(Rh+&i-T8V$HB;?|bfj-&cIE&y~)c;hP)+IYf3G zL@Ji+Mas1}e9&;QR-N~mZn0Q0SR+cp16hngns@N1VF&R~Az@0Q{iwY8G2(`9@f@lY z$&ga^;SDxUW#tZ|E4XB8K7(X#zy!n}*Vj$QsaAWJ*grMiq19svNY9uST!!DXUMA#4OT-@}s9q!Onp z7O^5I&}7wbqyg95#yh@Zzq|(vD9Wa&id948zYXa)`dH_|Fu#)}NcUM_}(b6Hkgp)kq9QHVF#bFoBsbbxXK|)J9<@#-R zBch8G4NDi4?Uq{qylJh6fqHUgw~7)@IV&7a~PbE1GdXEKY zSkgUnSq92sH=I?|^wZ0_?2e$b7VsWB2J3Z_WlzANk9D6OOzk$L1{SQwLT~~gHD?o9UUnvKP3Q!gHTMl z&FRFFBTY`cF%5@ovC8X)o4t|RL38z?V7+JBkVg_9wq zh-JlmB7!!obC^gFZDQhebJ@njD$M%L<(UWj)(gJIMwzB_m_T5ywSu^u;GXMYYd#0c z_>YQW|J|tcXE$d)^A$(mcUVjYgqz>J$ihihG@7ns-Ex`70QDY=J6NIWJZm*%ZbTF- z?`zrpomFzTUbEdA;k76-w<-5Y!}orAE9UR8*E)%~bk57k*{I7&YQ5c>)+J3Mp0Zcw z3f`bEyz0|SFx;bX!3Up@KcqIV{rNz>Ay&$6%^E1TF;DeK&mZVytTZMQ4C^O$na(i) z0?&NAduBTO&-(;=zBF&(o|IEc(b2Vh8f$32xu=(R@Wp(*6y{3i_&UIogYT5ZqH&MuHgbBN$>X&%Iu^f@jtjFGsO@j2 zmfH=>D7SaR*Z}>Q7<#6pniqa;zOZtU*w^B7K;AV!*kfb#wY$iA`&7eu=0fi`T*vK| z!MFA+TU>(4L_yS3>Kmwm1)=bQ`sS!Tx{_eO&bG(IOQ`MOR+-}MqP7Ot{4++0O-<~a zZR!LFO^4(dWOjZd%+mm)L2#j-eZ41@OFb)%zWZXz8n=hqXnEl1#xzp@DqYJJyMRUa z>gdOiRaZ07>-84fjE{wL+VQ&mD2TxJ5#e99zTUHjHw7K=dzMXZ3K3I_W#Z9?Yq@#3 z=rhg5lC2-m)3K*p(_~mO!3t+mJl__TEx)kCu>wTGxa9XBSYrguW(h`>2c1L76uTa$Sytevj{?mJG? z5u)~9z09kN>&;K9tn4XZwuU~9&e{93-^-xUPJn2ET_faX1OA|I? z_@&vtNM5o~A!a}&(}5&1A19nN)Qz-YF#qQ0!_ok0mB?0j=>}HFdGadZ<1)uvJ@V;G z6iIJpIK6zRooN%FZN^t4V+~(2}3)iaJY(B+%d}@*u1dBaYB4|1NX}_4&NUA9Rv|p5`)%LX(!l1!t~(inU*it!&)ELm@wV`xcbwH?nxk&*U=v45viPi=v^@g6FJE;f-f-K3W^vW`q1>@4TaVin$7`t}r55Gpr1q)G0ao|mHg6JV zkA`VTpeBr_DbNA1Tcd?kvbZ!9s``kge8a*%9tpKIij= zw(GHil5!51h)_=1j#B%8QHD>qcqUX6tunQq<;|?QVYVBcoTwEf-Ag^LfmIP1uRtyhC%HljiZTj;P>@lEEOuB8&p#wvOG# z0whQ-jz`P(y;D@Q3v-=~B4sHu_ia*-y@$QUk9nSNHyip(Pe49|? zC%J*_t;F^co~w{bc<|u95R?x4{@!3vX6AFwWI~Ipbt=RSRI>q* zi&KxaRl^kP;)Q|o?v$uEmFC^7TkwSrSBPK$iaw2)9T7L&e%W`B6v*?Exu$Y{Lh!2K z?w3$iA(For_BKNs`DoR8IiDl>HoC9QU#i_~Jh5uMnD6$an!FrZz=Do4Tvt`$#cFmg zV*0AVhExZMP|(@c#OTEtn}wL7KWB~E$UqoF<{niOM?3$gxGiP+`OMIw5R2_EFYLBB z2YswLkM?ALk;MFW8w2*=Td4UT4K#){JjnKU#Kz`kO?m|G$5mPr*I`K>&5!AyL;kc1 z?{`tR7n?$}VoT*`aYB>W2z9VROjZDO-sEH4734~=#0Y>D9F(ofVZBq+Y@sy#!Y zc_<1dO%d`E)$AqI>;jjGdx9mKi=j7il!+9HrGXp)0p3z27ns|6W1{V@lR=0cK+Qb{ z++W_f1HR-}SM8=Ou#hlC(TeM=B?zdbIR+Lzub%8a+0BqKZIOR>MZ&o;8Md=*rr-d% zpozlsR`>j@5M1e`Pw?-0RN}}u*NX;g35Il6YNe4IUiR0}PVs~T z@DJD2Ve|}b&*{~luga(RBJ<=N?^z)0LsAy6wXElyHWow@eRdG~dTqRNlAA7}4P>?4 zp8l@!(S;dWPVc|hTH2R26%l;S0rg z;&TIBZ_>=r0Pw{8iPi$`Sm2QC>j{dnY}yvrvd~&6J;Uml#ma_LwTsAZTU|gxYsJ`m z597@W)MQxX(yRgDbJj!TisB_}*EJMM!3~nAO0Bot+fl-T3q`RB+m|kz-!G(_*;3+? zcgD@gCzN&)PGD18LTm4H)vMIT>8vJghie@5IwT>wsTU7LUC`U7uf#?O8*WPj`Vq#F zARz-bsG0K8qDOmeo5^l5F+?^qgI!qx#sGnFc3N9_aW)uGB3GP0pSQ;Us1(%YKio7ee7<1xz4uL6d}gv)gH&;HAi|`iC8~pZzi>#qY6Qq zr1}gt#G%fSr)}ZSbQZ%DcOInQ{Uki#;uvw&f;uCfN`!C-6NnUVA6&EzKz3{X9-t{l zhpT4vadzf?k|s-rZO{`guDUJH;zU_%RuFle+**h13dR1qZa2GYY`>Ek)hoS)K4n3% zr;QYI^6=}G{Rio0Bt;3Ysu5ZudPV1TtjN4hCXabcYZ00ph@&Lh9t8dTK|8&T*ce}=#pWj5Dg^`F; zXuDu4DgA8qdzhrDvTz~jUuI#0)yk8IKit>NoW2EE)k6 zU#?LmnP#RhzRfy?0P)XdgE_BqMf1DVGMH3J3PnBi?CfMEboW|=MhWYEKnVTlk#%~!6{kd+2U?%KDK4L+U+Y$dVgI> zD}y*5vQBv0k4#w1xkZ;~sfs$)p2QM&ak&!Bv`MvdqYN; zt}d9R7EAWcPq}#PD+#a`=oQ}jhWSbr+}8G|;H3B>5lvO2_2Wr#X6v(6eR+XxrDRla z(y$8*hhYDWCEBFQ`jQLQVW#^Uf1B=uTZC%Mmz<(qvqarJHY61w7>mRSI68b7w&19HUHf`L!}Fpu}jpFuo5QITsUY zUl#ryn^I~}&s<@iJt-k#vOBr3FXeiYMbWQov`FD(0{3*lkPfGi;o)lAm_UlzRM%^n z>946YxvG`N?#w~wJwb2?F_+8sKCg@mSM2Ms65MA))H|IcG<)CHj-un+RE((ZN=BNK zZ6a7r)UIycHPk5q*A9QM5_lZHwi4ZYYG_MZ#=|@PfuOiKj0Iw;^IKS5r5S6+;f8J4 z|2-*~sVc~Lb8gaCG=#U=!7cI@#oB5=ns(}!r#m&hEk3ezHe2=+J|kVa8rNw0R=efL zirbxgTOVwYNDricrc&Ex<#Bu-Zt&#!tf&&RTEahGLk-Zy$`Qzk-07VwN;Y4rUkj_x zh&*27d&MeNP5@w{OhR;VXmNHaU~lYCsDL0&id!Nu(fkpw1K6n7=`6TWH13bN_NoY* z-Z}{hTcOYSnqhmnxrOPvVJ~k^?k7$FV*fa0Z8QG8@ow6yoe!)1Z!I+g%XyHr34pCS<9C+(*k5ogds52F=k~H~d_n2FHPt zvssB76l;uLlVV)^nkQ(dCm(IryWUuj?|rdN35KrR6v9B+BDdOHS`<0-!mT?oYc6Gz zJeQ&unO83WQ_wD?U-=#T5BneRCzS?;aIR>0rpHd{@`RYIeNnZ$ zpU+Xv-u@VM?u^uJqA&_dp|V3_)^(wJg^x(gC^!M}2|&{O%5n zjP%DP!iyf2d^|}fXNsVeU3myWjZ&88oAB;~Idcuyy=-*8dlvtyEB743;&X5Rga=8x z`FO@_y)Y1^XTlLDaICSa)R7nT}%371yL zW}(v5v0~i@g5HSfdQ)w}TPLu%V$;3k8K`k1t7}b|;L5%pxl6l_eqR4&AL*l%>&R=c zXISt2eZGmT*0d-)QlKE7^eWmB#&ZPQ0j?Q=D8Tt>xbEKj<`zeVw(^y+X#2Z^7DZ&A4E=An=Ym?QpCTD?9K=7em@8|w`c7r;zg@g6_ zV&F#pORCEHJ`wr}lpXwt{sLfDyL9ddmAVOdBKdIME;i%E>BVY|0;e2xc=i+1;rzz^ zYhef#)!SDA&rBT5u{syR%V6fAT33?AMzt-uyt4+D1h^4ev$)Q@VGcO^R-0cF&jZ-E zZ#0GYxG+huId0%j?Rj`=9W3tTgB_0?P`xg%&*09r9G1XBpIE14RpTR(mS`>m)C1I~ z?~^kTKUSz;4=)FCj+v!Ml;OV1i8}64`T*M~)Z1Acm{ z+>5Wk8lr3wf6AyH#*GAdlv94PBKHU=r2n7P|H^kDn+RAeM@q~cDcx@THGof-Ap^o1 zq9I{j6!yz=C1D59g{JpIC;%%4IO6<2LVgjqb-4ea;7u=8^dDoEZ1NpZ2QdPRP3{=>h_wC1|SL#;d}=$r@YR{}J7W zR5@|WieBHi-_$qEPH(TL@y@n@FV8iS6fioPIRm_kya9yaEl?#nU}#~7q|7tHbKvfP zQ@+do@slwTiOc5FRI~M&GI$HO4)g_hr{heAvdCgokB}rHTh- z1?L`9cjd6xSSgpY12{;QF>fvVZ!I?l+>Q8MXUjb9RRk}{gn5mZ^gPaOY{~7dFC3gm z{xeu$yLK!Z==qt(@82mA$rum;0xsHM?%HdU%|^XXjvury8eBi{wOTd45zUUC1k@)^ zB8At4gvm7tej(km$!P{Vbu~>aS3}U)VVSdCv%5MifHb-zB=3=2SsuDo59wzDGyy`D zoCTLFfc&bG{nI%E#<^M;y`CYvgh<4TWx;Nuv=2M=I>jH4jLQXU*==#>ZdTNhbdVqj zBBJOm>wBZa=#R6V049y{#kX&NBmVC=_uG#Jdjvru%q*Q&n`=5ewa_Y<>UyZ|D#5+A z?Dsi^W{Fe5Z$r4Z6CZUh+=z)&x$m}R@npU>gWYeM82)DS|Gwa<#Rif|uP#h@_K|Mo zhcDrgJ$<;iOy`=9U{S@_+MOkq0LqKu3rahc27G^etF>Kj`Bh>0UE1yrL%zOJ8xZ&X z+8{Nem1H!av^?sA9mY`H;J8Z@CjHO#*9d*0;DBH-Jj5zN7c zaRdT+a&(ntv*HOa^USCw%FBY+NH4EHKzBKZP9&;B4?W&~-5 zcW#z2x5+JM39Oqc?t;zO7K?L)gpqrc_QMwfy^}2;13+UQKi^1Q^ThTHizVJOKD7{; z`tG+{UFAj!YKW8nx(=bVGN2LX$y`WHf`~@q$AMIo??zHNHe}r|S*tj_69>vWzL2BGq1j*_nK z&9TZaDc?G&DQGX%iJRC^zBjR{lg7`kdsD;vgqzM^(b5C)S@}jpLRoT1|AdBgVjD)C zwTN@r7s|pAO}DQN(eNm=sVnFUY|n5jvezdU`KBBVeM9BBmLv-M@yJ#r#4l9?9wKQa z4&EWSIHt}nDJJ&}Q)1i(-w&_a&N`L%Yor&}JaUKXYY198sa?b*ibRo*mo>W$Qd({C zxjCYD3<;sdB=@g==+kHmPUN7hil%8KpLtxxK27#Z@dixb9Vv!2XsNPE3a+dUKl=5aMxJUGUy}hG2?AR1JOmAblIc<11>3QL9m9^!}+A!lQ6~ zqMtHPy*5duu=4c6s$KiV1h8ZcrnemZ#+`1P!YB-tNDZL))So#3n`Q7`+veHK20$d8 zbO)2 z!y_CvqgNKj01n4h3|%>MosFFxYH9kCNm;InbEmp1ejVGWtc&9xT9!MhGp;5|w8l&_ zUR-26U!)fRnD09ORc$hhpJeV*)Uxj=?{4_KbdJf$XPwy-!;E70#E$%qonv{&>Onea zPaY^EEq6NcFlng!*5wF=d2EWGF&Nbd|KLNMdSShhieU(qEdH)BO)tLz^%2G}Q@Jag zxDYp=#)M;elDj6x>fJop9&_ezB!8lyK@a2xy7VszMA4t7>k7t65e|C2>bYk<3Ilb~ ze2#t+_2k`yr|Ga12lw~1y#DT{ITC=;a%Z=&xLh!n{1}W&W=24#X?cdPRUTL+rEbiO{1QAriaA>|0VoKL^1WOWbpgL;fINYpr|S*o*^ut zB4;3mR2ZN_s?L&fPVTUz@5x+#64SJLu1!wSdRHcKdf6@YaE_q2Bh(s86!cFcJ0P(_|apkgPPKYl|>qLj~z zt$+SiN#Q*Yr#%V{p?7TcPTKyws;huv;}w6YvA|G~OfK?1Odxb-roMXQhF~kvXv-1M zSgsrDukLC8tO`pG+e#QO*M!v#0KZttK64%3iM5MY9#DrV)T=Xq1`L4vXUZ4|#|5~Aki{FJ8 zTDi-7V*Z5Nko?y|-zU{M)AqIx<>5BOdQm zPK*p%*>E%=x=~L=vvI_uBkSEUhOP&a2M$4M8~2)7R-W8yV2K|}3Fxo7W%r0HFS*90 zH7TKyO5&zOr8S zzPK&d?(V9RDJ*!3F z(NEN#(L#mRHhgmVOdYkFa6K1xayA;WQPhUvsL+cQ|I#D*pmt!EEiu}Xg_e0+n_tA9 z^6ChoZF6UnN-m@gBMI;2GjHmYp(>5KsAUZyLu3ZV*zlw!9S{$#`$p+nr>@lSB!Qwt zWj(bUJ~7hkSL;<6q;pAH<1y7iaGY41pC>WgAdLxazBxQ243xf5OM|tse%-zg0976O z0lLQ{lAPh2k9OQh3F<6>voi;Ljij<0g&uW_>Zgw4I93N)>(_^|M#jByS!R0-;UErW zWw`9d6uF&6Pek)ySm()CwrWW5UPq`+b~{u1vd!Xi9@(zLcL2IMxsYbLC*K-2oTrUo zlNx1CLA_8J>~BQqYTfiwkLclW6p1_I%wJf@Eh!+GNRumINd(FB#Z0xK#yM7D z9Jqz&F_|+K6wKK*`y81#nTRDN&DB4bi+mrYYY8clyU>#3uV5G{vlOcAT~q7Hh@-H{ z%d`|wGuVw&_p8xMBYONY3+vfUeAxW)>&#>Bo_X$P~> zw4_Bt;-!1?%-yfaPu~S^!`$bemiclYEzHo_nP;)S?)wMxbKq8l=vmThFk>IaVcJGR z?rB9r1l^U=mdxRlbGdsgTzp86I?hX)>#77PRM<%dJ6UU>9MRQLut4I5Ozx3f_d+0S3ZZ(O%VIFSHfRl;a98~ zN2%B!!y^A?pqs24|H7&)Ay;x#D;1lc*6_ZMsxM-(v~x|NbPmW}ECpo%ij|O~SkEVG zhqZQB!6)2d8Hs=)@Wt>DC@r5(=u{CrV>7=|eOHf+l)dWpJv@dL%0{WvA|oJN7g}0? z&DL(2(!9?W@pTOE&3u0r=3NJh^Ktk1N|sOO(jdHTp9EMv6bqen$npR zu7WkzMzCOcm&ymGMjbt)@fBu)YF+}%f)t%@&yW%s(gcHsm6h|NdRbia9LIWUU-p=s5<&L?>&aKc96xe2n|T z+c>4Nl)kgnqLW22ezVFeBjUIo^!zgz@(#M?$dZQ0YSWu;X*I_ZgEN6Rk*SSAS|2e( z4#y&Mo0We}Lc;8|cxVHe-BOc$L{Gop8#?s;cIF&5f0&c%@Ps>MhFmG9`#j*_B>Z}I z;6f`=Q!lf>-I40AJv*Xq_-!vE5EU~Ai#=`a7%q}S5AV&WZhA_AzAF&<^y`Hof*9q6 zrrOJE@|2-(#U{{Ip!J9X`8LnN#FnSyvl3f{nNE7N6nv~x!|h06p{8rT^2jr`ou&_P z@5o>*3t2m?)gTR^X;s~HmRoE$E4>ROwmLLqPj<8&C*E;bIH51FLxb9PGF7%O27}JPfGZa^5uw87AsM^bV(5vCvy^20FifSLy{hj zutI<0%~smvc7{dZTB%cvWAyLsCs3N(^Ez72vRYHHR!#c_HSmDDFTNL$c7{_Vpoo3o zbvtWJSX4(qS*38m4$jcmr#3I$ol?1|@v@6}jevzgA0B)-w_8V?upgJG-!BmTzE*KHS-?ohbo>-= zoch#2o~arYVYL*jOnS92v&O-%e;sYiwDEI{T85ZEzO!E?eu#MM`@ky4owB~kDFF31W)lSJlL!vWb5YFg&UplQhEbR7%b`3$i zdSsr1$e{FSOX4+J@fEV;UrP(nqpu{Mm0ufSIChv}#1Dx-tw8~Uk>9Rx_*p6Y^I3F0 zf@I1PyJXHQqCQe`jzsrCkii*D(EBIvbALsir{;tO6uU!m2Wkm%L)T@ZB>H+P)!y@f z1*?6AI;Q91+g+VIEZA1(&8w<_L^#`uxBmc`1sCn?jKz9*7fwc7?9Hbm$l8J>Zv_Eq z>(fY|a#r$hCtn_Jtj5tkB4KpKRmiP^!f`%Y%E<1Jp(4OTAm+ zRz6EF29qS z#OS|>(Ittpdpyv!Mn=xDfk>Rs#_-4sWL^V7UHdYEvb}iRU>st;0HP8)05Y`oQS68% zD$v7$Y~{8g;G8ecHYCEeYk(X(_w2{TI_n}9wBs^cvnmQNb#%SJ^Q?n zQc>&9?MYr6=M=Y0I_D~|W8F-6%OiYXTQs+Qrh>HlWGF-&!Rb)+Hdl^5yq1W%cA+cG zpLH2pPthToUOBa?RGuz~(O`tDORlSEnVY$*(q-fB4z}>I+&nxANKlJ|5#EI+f$-&E z-G5+-Nhj|l?zF~a3LFc z4t|}#K+*Y^|7cyA+{-Rk%^^2tC8h>=7)Js4TK&7v8GESh&+MvxM4rrAY7%7XY%Q)^ zB(-eC36J~e{T8;;^|mj|6uc#2GvVaKyIN$xHWsZ4!p|smFjw)s3ct&(4FtZk%-_K$ zM8xPQNqyN&{8bj}sJ^=qRJx1rT?5>K?wGB1r#Y-pC(YRXEsXUJd30*?2YIw;PHC!i zM&s(NCO4So8}vDQ!CbaO8p>v9pvO~-xa3!LysriOuG^HS1y z2#1v%yjPDE%ojf&b4YR^xk+V#sq^ujS>jqwSMzK=s~?y3`i0k}jw2Y_UTt8HRar-2 zM7U(xpat{gwiJC6(ogbakz`9~D>;c912dC4G- z+xAZQ>8I=1Y?k7QvxO*!i01CJS(|&G^={n%!rjcTZ8DbX(1C{3V!C^--xmQ)T@A7h|{Um)`YYG=TQwSxN+)?$24L6l#w+%Ytp60?2ftX zz8-ZhKbR0N9R;y13*y1P$9b!dR2#d>K3a_Gr9tGz$e+#(1UAzE z45U<{u$?Q8Ue+ony>8&oJ0w!Ir~Gd1n?9X)1^}%X@TOxbIi+g=LIjA=l=HTw%X4ay zOs&WmfE?9Xk`K+*$CAc5@otp$_Vu;vZQF^o@SX0|CS+O0cP|5p83Z5+=d_OJM8<8F zuCK$xe{^{?TdvLTRu+yo!47oQD}N)aDRLbN5FJ7bCp$##LSh8$Zd-FI<2V*)5vJ_< zPrK?@Q|w zq0*m(oHzN{u*6j2C@o5;iCer3Kt>%*leIw8e;T#ZzRdUj&b!#!yty?wn#1+>4HgXp zL8M?vgt_v+iTn}fz8ooQ#GDcH>k?mTuk`ZBZBY4YBOB3%RByfwe+raYK|ZMsyRDl` zwmcaKurL#A`O94?Cc7`t&&^mfA<>qv5DZcrB?MKa$!~l!2AZGdC0(Uz4qcukxn6%B zalk>k&p8PneIruEa+k6Ij)})H6R%xE%oX>I++}JQlh+}rfSi4O*V5`JyVjnU;EvIc zODeps^BTDJ72ey%1b3>Ih_sho0W%tvR`mRm(CjV6HSS;WSBYY*`vQzVJrw>+F27O( z9gu>G{?oyB0u?3Y@m&{RQ@lS}nOdH2|I!KfKU$$aFH!D3B&N5n@lp7lvckn>#X#9D z`1YNrUfC7v*S`0w*{cBRUH{+JK9#>({bp^d{Pp&)&-~YIe*fPR`xV{<>@|Z1&h!>A zmz5EkQrw5@jM+CtMI|;-0FF_h%%Gi5b>e2??>>AoDgX=XEzQGQ2p~H`0)pz-{TQok z0j0ed5>q-e#ms{NEL6KqE_HWd({2kU*6h_EEb5AiGz(=y-V2%T@s3J-2>+yL@+$&A z3wDq6PRsvVj>~!UZ6`Kt|1^`JT7H%HB2FIg8IMf)qcz=1oB(FgfXh45YpP$Vji&R; z`!p@ty=oc(RWUgP;<3cvZej)hC9u~Iy2oqe_5r0fiVEd{w^xAKK3sF{`^78 zn^YM%0>pCwz)Wkf0r`Rd6@#WH5F)SX7*V+3YC($I`EJ8VJIB$7Zrx1~`}foWUh`Fk zrx?pJWa7F!xKOJ;7yk`VDPISVIE_Y%8_ zseid^pO26@`RBAInx8nNGb)d^2=G3<=O^@N1zi=UEbkJF{PVR!uZO4P?2dxH-+dMy zn*P+7?nWZkJW=Li1_H|deY_(i1{Dmo%0^Cs0FX(cp0w&)*s}qQQ{ep#!{q>%Cs$`H z^6rid8I(}l9PcM>ZS+Oy=7t?(74!QM~%p|t|=I&d|t0?GfcU57_F~oMHHHQ=eDOrw5Qw^@dvYh@) z*1CV1I7wuEuKy2{0_dl`{PnLA7W(?0kYL)rv2FKI`AAS#gwsH!?e7+=pR$V1A0VD7 z918I`6UyR~+mw{dI${H|k>UCrZ>~F!*)L|OxWY+Q_E!tv*WrCz`ieC&x+ZaJMI3)+ zHxkuuQspB9IwMSWoFB7&7VlqwIMYh#UAFwD51~1>Ybbgn;&k~#q_e816i~x1Luv#q zJk4q3sme$C+Vb)r`_0~mM9ps@4`_eU6H?|U=fHF2NhEV3D;A_I)#!{iywImQq?J1)- z$JTn=w0DVW4I_2Hrni&5zv6!JQ8;Di2#^2xvn!Lo{JY@?CT!C;>@fOZy0OZ2yB3cw z>tuKlD+m!!@IcHMug7uD*szzn9DOr|-=TpI)Q*9i2^;kWY*cM16(!|_AW!-G63 z(og&z@D0)Di+@;rRCmphlf26ciwaX~A5QpbdzYg%u}xbn`Qem0Bp%{08J+~0GZiuR zI>zFhviHj(0L6V{q>HN0_uQW``gqdr?QzctIuu|!YzR$70n0@`c@jrRD3Fe>uSyD= zF1v$c{Z9pcibP7jf|$;G{Y+WN-Vd$hbR=v-jAd9NhN=&?Z<9LCd&3U5p_spPp1jq>nC{zDnDZ}5P_`uVX@viRfiw?r(*i?$alz!DH1xOUN z%yc9~^XQe>>i`kV8ZdTwl?nUKc($M3?)GnU0hl2X1%V$S3Yy+&%Gkaywrin~%jev5 zWDQR!1{?|YQ#2)4@?&ZDvzU651;LX@Bhz zYp94fDdI2a?~a~`IzUs^tSs2(WkLAX{Hr~LK0#`5>n{y8?`r{&zE_gc{ou5ZFB(tW znY}!4l;A_e(B>PCaw(_M)4w5(T&}>^AbN>n+NWi)7|v2Gp^aXR40bGtLUgQut9u7k>rfCv6yIl#lN}v}4Y>_xl(Hdi=HLp2C z32^ho4KZuZcxN}Pb?@Lszm6=^|6G*^2eb~p0jsi!!PILYc}FzdkZoS|^S?a`uF8hC&8oe#T~hkrqv89;r3 z*7o9D)?Rqm@5(D(vRYZg;1`&JAezH1*|Y3FHzAS8VJyIlvW^TM)V>7faol?73kdmK z>vRIO5OOk!=|8|#!ukrq|E-AaNvlV0)*@dZkJuD{r5$# z=4bw8TL1d!f6Lzclkxra=>C6C2K{w^zg|lI*A1gSYu9e9BX`Z)F=j9$Zj(;($I{;~ z>i>IR4b;&F65Ec|hr=zB@-Rcx@7X?O)olUw5vTnf}k>{U5#( zU@lQ17Fp4@{F12s9xA&Kz>w}2;Y$j+cO&ZVOhGQ`xp#YOij*`QLb-(O8_q@J{n^hu zKKh;FeSND@Jn;x5EeYn=t#7g(^Ak){2}_!l3I{U3dGsicm>-?%tHFnRc4A%;qfb8t zqP8N?%_7^OcdUk6Si!H^%X@d<^RAlI4#I48-E|GECR6H%1{yYm_i+4hma6A28TS7+ z7^p12e1tTqS428133@+u!_koF5+<2SJ|%9hnG(qOd;jbSkroG~T?NNE4{cNq-RIjt zn4bEMf{N=9Qg?9R8Xq5j^yra>^golm2TMNTpP5Is%=vG_ zJM?eEE0URR&nO`+jZZ{mO7_p?j+y|h<9}uz@Tq_K5zd4EIJbA7_&=TgzxYR9Nl8gh zOR`C=k&zMAw{KNmzcwIqd}+$quSw6Hl3*W&fd~N~Gs$ff`33ME1j!y$*poq-f?Ql? z?l}N9q2zVXKw0Qn1SD+u7K9UJC$02C;0I1|jYf-fGkHgGV==zI;aItgn~oCfHD6gQ zh&;)h%)&3E77uf1c4(`L zBo0gSR zLCx!IN8!}T|2(fo<2J9jRM7@wq@3t*LwKNXfT~wu_dY*(_r=`8;LY{hfrn<`bG(?B z1K#$Iw7k~~C|3DZiW{VFdlj&svc)HY(_VEdEpU7s{`JQiU?>E8WcCVba4PO zXs+ecPT6P-5no+pFDnh)+=C^ zvWVw4FPkcY@zkG z!tur8@q3HrFxthby@xfsMsPEq@b~$*!czj-f99|TFufGss{3#mt%Ol$tJWym z4<-!m2qPgpn?GP8Dwu!*C`qdgI2t2Ele%x#L_YDrb$T=hsO5CKvWcQ)qWXl3BPOir z%5UQvUY-m>xOALiyb?SSBagU?*C`2~Rlz*x`^COy(fw z!Q*wW*Rq}bupV>2sp&b@S@@6BBvO;j_!a}$vp>&K>FZ(5#H9ycSP@j;I6(y zr~@X8ZA>}0++q6h3unhwnL;NM!ojx*aeML#pmpHS#z8sVwYq~VS-Hwki>9nN7xIG8A|pA?Pd?pdQRT z@EG?~Br*c;GnF(q`e0c%L&`-1D?|Ub6kzcmA)}a#y>KtCA!VE|D(U@22x;%E(@M-`GFR>InU5y znY2hDX3!0B*j(lq2(eGXc^6mCB@2~^#SU6eFw9%k$g%psBuYvaG)J*tjqiSjJX#p_ zXWsNU%87$&x2e32kW5RZ(5yZQ>b<{M6?Y`NDAKuM?}QR1yRm}WDg-eyBF6*?j_UUk zQ+7O^AIj-p#~+CqY~Pc28O?@R=}MIz9eF3nlF5(G<`^TsjZ2}m?$(0Bo$fc2m^caW zxv~)5K1WH{9lDZnALbZ)9D5XhQSUE#H1O4e^XMEs0b*F3wx^Ued`Tgns9|Gy7#@R8T zsKU*uyXRd#Qd86pF278G8*0)?4++{Ni@sVf0IwUtXyRHYD7(B|REjjyYKg1_?7Pm} zy@E!F{@!?8vhOaOdXEdKjZk#Gov>QFn`hb3YR~k&^v2G4r6UbOr~81nW4BBlA58a0 zjH`_o)D9Eqa7Mt*{$R48GFs<5cD=~sG)}@SZ4T2hihZ5jOOEHa-Hh<=Fgms+>DyMu z+h^6Gr;Wv|%4Artzv%D6prvuAow&gIp&glbbNT_M@#nF$1vvLQ>bSZB#NcF>bn!I% z5F%0~LJ~0q+o(eqv#5Zfm0lCewNQtq{!5AqDH=*6y{9{2QlO8;3kk%QDW{jJrOQ}$ z5JY5rUMt+@^DD2M8?VQnQZ(B1jb4tfSlvT7$`}1cs`4b_Mf$WiGdDp_3gEuid$VDs zmO?!Wm54vGt|Pv<27H5GQ08B0(gWiC-v>&{TG`g<)H72tg-?#ED;6iZ^^-<~>l` z5P9wL)R4#oi+4#gZp#EuI)T-5!FGjC6Vtd@K1bx+m=VwS&RLPtb`%%E zPPx~jMfiU^o*yB0nkmh%&EO*pku1;%vEgHhp%es@$2R2N25oLqTHShd<(mtF2;R$N zLuFk>zKuEepAM^FgesC@RA3+Rvo3ft7*9Pa0e>8jzB;J?Y~L&J&Y^ACtZHwzWm+++-$&z{;n zNWo`b*>&*=pzqXgO1GbLmd4|+i9x(9H=kKu8Z^P(-JvK5Qn&@Da4WRW0#M>wkTb727*@% zmPF;e$QHG%&|H!#HLEkIZb7tvh?Mn7^EqBiw0~%wxIM}n1KZ?U`) zMIP~^A8BAqlws^#A0s!Z&XQ~?-EaTe<(!263v8R<(!Y?Oe4kufA68_|J!LNM&XQB6 zqtcJ6rL?c345qbr+*YIwstp}x$ua~8xCG5s>fSG>v~!tH_n1SaMFKf5HOTY5vkS_<=!*VtMCebMDq=MaPN4 z&gR0~cxb!+&(3YBF*&NB1l{Aw4SjRPo&zqroQL2`a3x#MiYb=y;u$B5B3dXh9qSdH z)mJJ|=AP+yFI|kUKC7A!Tr`|)Yd&VHUe0B3XmVd8CE(J;9=w%&C2~Ju)fjL~~p>PqN1FoJzcB&;1*Yh+kQU&d6T7zK{7;$tZ%boa-_c zp#0v3QNpq_;cw63-*xkI$T##`D_AGuFGF5B`MS6C#L-e%&IwIhY>LF>q|)c1*xL*M zKDbpc;vBA5qxqMux%Fxyf>d=Z#u2b;+?ImM)>Jv3pXKIlwcca{>H}BZxNAav5W;_& zqb%kkT!cC-!9d%Ngp)D+x0h6o6o-Zv`fo3vVst&u$wTKbFu;1?^b4FecySI_Sq9Ea z@X7kfDk9+VH+US1QIfXCwS8##Z3eC%4I1RsH83Br+QSa%w%v<;w zF`=YtQ3HjGM1~iYVGG#vPD->v%H?bJy3G|v(B0Ht+es+xUmnn;S4ojOYu&f4=gp?q zF-2Z;sy_+*-;iPc4fGBF1JDnw&blHC9(bJ`OZ3-zFQ7rs($6brEB*_qL@H|ir<|t$ zWA4!Z-c9@8_)-7mkF#;2R#T6savq&@lOlgpbFvlq|HX9w?>#One(|W{!OJ?_a5{V6 z?doPoUbb9k*QT~S0rHwqPf<=m&2fq6_fp4ynPuqH`L?Tv&(F_P2CUT>z}q6Ke^CIN z1BI&Awpmj|%~Go0&X#Zl5sBKFp${*bUKT0JYS<(X-+ zCkj<7U4q0aHsgd9#jjNMOmS2%BM3w4hyAH+0!rVY%Wnhshp3SPtW#U9RRXVajW6831x ztfUpxBOH9>R+dz^XrohtRi?e9$>XG-mPP&!Vh-`ENn6`~`eqR%nQr~5KcRX>*nz_t z`wu>U7;0PcOwORQd1+hO*40b*8w*M-B|7WcfP^9{H(8hjm0D%aM3mk_=J9u3uF4$z z{>Q&WIOiT24S8rqv5&ZoXee_{3|mHw0aGF|e_6{={b5l_Nl9fnsy?fTNc#T1-IFIz z%JQ9<5t~pT``%W5!6jO3*;d-%ww{8&p!g_AO5)Xa)myi+4MRj{eyv zWuq!082|4-Hyo{^+NJmwZz#4@|ITrI^8!LtBBVIKGAms3Jt5@$oz@U5Cp_iyZ-lj6?kOJvNpLy0$o^!f_MtrEd0tMChaMpZaT=d#a`$os!n`X8=q zDL%IC7I%<5q?{L(N_}T9#y_>{1loxR;yiehX8Cy(ph`H zvo?(PP6X=COG*nL^2^=-n##yXAi}v8tWeKkfc^@)KLTj^m|uFGsfnUaB+x(X3R7lF z^od0LeRW+T0<~?3wq}_-tC}wN1>HNHMIDF&@T6eV3ZJXg>@A+vXIP4 zRJ-?qZeW$dIj`2UZEF6_OC%B5XMri6o0cAn?f3iYm9^V5l4sMqI{!fS1p92nlTb-t zKN^>Re{52~Y^IyH^bwP$BjOISQQychrrhLBsdj20-{wQgBDvngxGiXcOQxux#Yw!xvr73y zsM`+QbeoT4z;BU+glg@@gEjwBtsroME>oHoc}}^2OxZa|F8UU`@c2#W!W~lt^8rWC0k`%n6mK#pYlY72<7;QxoS_&@vLdL>Nn z5ON#KY;S1xuHfzADF5GJmJx`^;FX0Nx^uh77nzJWcZX5eSoT(%tiNnc zR#p{p2_NlQYoSB7v8>r+4;X< z+E)UKzvv@14gUuq*M{IO`;v0?f;^2$x{-_nKEyyy|GvlX1jK+iUa)a&YRJZjy zjc#})#lOA@Ie7-(7~3EpVcwkh{RH|?_}&aL$^v}!V4zjccQ84dow_9snnwu@HKIGU z#owbeYhii$a%2a;ZgXAyd}Z0XI}d*X3<_e7iW)ob*E>r*YSLDI9I3c>A;f(EyBb_LH0#qRe%R zmNNKzkcCxqY=-iJaj?=Gg;~>(LECmH{7#Hg4I63gzQP*81bl-iRkT3ua@y-Toz)@- zalam~f@BtzX*kmAy%kK|DYknkAs^6T49^G-fc1pWx3;Pdj?p(EEw2Z5@y%1GMdQ!Z zYkeG4xVMh-<wF|_R$~}~$p;P(InOFn zX1QT6`QWyzWW9CQQb@{Ij#eXHFo6eUV!i`PtIMZhVGaXjqD~a-D6-Yp!xm=D=EvzU z9iI^q_*u!KAiJ31W0O1Fs5HqTAP7)e{vk_miLvfp4DvnznxH9mo~5P{KURmXa6Ks! zD#*UV=r%vSoMZ6Y=j?~cwzx=Qp9%DYu}?YLQ5a~nL<6q{(T!$4^H?X7`FP}xQXZCWIUd>09IfeNs(dbR@UkkhUq z|Lvx@_nBgm4E<9^Y%Ub=H$ovy`Zh#0?+&t0%a%O;jqvDW3e2qtT^Q^W^3KN+BQ`{C zbUp7e)5b8?z|QCDvMhwW`7IJTc87srYTeyx~d^*V$;qpzSIY8pj_7L?~YL z=Uzd4E0D9kM?b73bYR!SBHUSZQ%Jnxs|Pz50}rVPjb|Mx1DQ6ky-&c_C^XTp!M8Ny z6rQ;38=Q|qI9-CB6r+s>)=eL4fM?fr*qHmn6M2y8*K0(I3tfmr36kCgCWD4C5O-M? z&)5E8Q;2Xyg_T26Da&sN^L7kLcSeQd5Xj%hR#j|+bcsu^4rsLynOEkP1*^tqQ@+T? zTKfHvyN^Z{;D)~|b=dy$EZ+w{-$@qwC}lakZ; zRu%@*b8=$0#uPBP=op8f64Q{6A2SAbv1iZkAIh?VfSfVM;|2B>a>6fJ5w93TZqj~q z`ZM`w%gsxdxBRF36>^R!y?=p_hH`s6dR>payKfgJM&NUJIBTuz?X+t zY2RK%PyiylHmiOe_KXe`aGUFL34H!|V&ZW409Ck|ukyrXq!r0@nboamh_9fRk1+Fo zD4)d%HqW|Jv4Ye+XKa=rX?h{+C3uCJ;ra0$^#%c5wWjpZK%=k84aWA-OB9sPuS>?+ zs=cA(1s|zPM8KlS5fsKwB16{ix;p#01%@sA7_uyTJKRGg8;dVCGa$cWsuikzZi$N+ zV6?RKcp1qft->PqxKqQ<-`&e^p&sq;(j5`p0`Oh;3A$UkN2zFGq%(k zR>4N8lWiJQGY3tipJ+nahK!|jql!kA5%|nZ3gm6=RKK^Q0@ZQDP8JHf=|A~9=?9K* ze$@r84wiL`V|LDO-7NqJesP8iYbB-a?oI2ueSGAs#MqVX#Lp@>C!3jcq!mnjliarM zruxWVDLomjopa=BtH3iPW|}3%%)vivjq~msB*F4)W-V^(*~0Y?{Q?|!35zzLJPt+Q zjxuQ#21nU`GIQOtWt;4qBP56$sa^KH@$L$u++ld;OPL`I1!$yeWa#r*UW zg{M|cj|Z)Xn9{lpW^{JCdVSiEbin5A>sdY`eKb$|{#Z=S>OsRc{A`3r;OIW2QNj~L zhL*%BYu9gw>uOf|!&n4`0_^1bmT81m6mObdqBvn7nKuUN*DC+lFP@$&4|_w(k-;h2 zRlJ=cJ6A-lAo|x@T}#?tRW8o>tyzw59dTOEfjr)et{WHwL9Cw}TgK7l#9(0QCvgWR za58`*XGPwUnA-c!jD9EHQO57y*jNx<+w~x%kPn>)B41E352?n*A-{0GYF-6z=cKft z+5xg8nsZLij@;UWytsKs zMW^$Q3!3rRvWQdA?D(qvMb4leZ7!KNFuLyuu!VTJr85c#$1+eor^lC_qig|0DWa<} z(2D*m)AH(Lhvn8N>zbH4H2ua7)#w^9_9nT-<0Hyp{tZlX%$7pG1Mz9XUy@rX4Za+y z3Om1AEu=KWrpD(S+*^6=LM&JG=i>Uv{IHRoIBOq=I7>NUVe6KKGe`{s+}IOBP}wXoGZaKFwiCtQcp;F@({#VKM^#^HLI(--Ov2Dpq4ZFFQkQq)7(8*iSDFw|y>A zZ%PZ#gu?fk^WE|Ya975xZU$a%$8^+|x%q{tzdqo)JMS`=*OCSml{}rh(KOtlC_D%< z=NIG|SNx@uWWPQWyV0~~*YC{A=yv;6^K~p@As;mNXEH33sr@p5mYV%gpI7!z=B`IL z-ut(^)N`A|flW-$lqK$235;MKC?~Xgi)F!V$+JK1vtB-yB`&M4!1i18t+2$+af`oR<$io z9~wL|bZ&T=xf1}#(PhCDEkC2b=leP=`KGF>-ys8ZYhLDjtp0%=hs`%4=`h#hUL2Nc zN&%V1UTy(LkTw{n@Q7VfTG6BN`>6{0OO{Nf$*D{>(Up7}hZOKaQK3HCmy4T;j)m^N zQ84buOEI^xZuUd+vH7blXZ_xTCF-K(te)Idjf2AwJpcpK+1xc;TEI_b!WnTOn<`-+ z;J;s`d@Jf=(hI3bco-bdS$`lP*=c!vE6RMcx^b}55=ZECXh|QHqewGQ$+9@-TQ=>o z`_PyMy_Nc@JNP;8Xlcz+_RUOSXS-Rd=bcr_j3V6%I;<{eV~q>0l=Sv`Dgah`SGZ{%Jj5H58F$dVE!K!Z zcBlVmsnEJTHpdaUw~uRA5_WdZI|jKgplOeZ#xdZMcDEI1RL;s{knu9cTKWjNAarxH z0n&NG0Sni8vImb;*}RSJfs2#VTMpSRkB>{pFDfL4jG$;7JCcLNx?)v@>mL@KV{bTE zkB(3tTjPp%w$Id|Xh!_r8A32!bHg(CqhN4gLrYlChxxXq@}VuiF+&6*783wj=J3aj z^~eBp+MxxD)xs`AirW{!s}*=tNh@PRCRwiKVQB54yO+GacOaP=@3v%cqGN_+P2J38 zx;qXoj_9+1Vx_~l*7uEo@}}&j&E_8KboWE_E2ltR5s7RKNf+|v{)1?gbDc^eQ4{8< zH$5=`Ny_7$bXeA9=Aa6`eoAmxO%zUJZRKLpwq4Tr7dbSY>=8r&$aesH1^GD`YK?8r z=Og&BY4v!W2$67IuzQQ(hFfE^K9ija!Nd*_(k)BjBxC)))NT%BYb1Rx(`p&wP9K5| zCLC81&2dRDd;)pWZp)CWuMtXV7bw719RJL^w~g~5vGn4$7%AK$FGb20A>+MoMA0}Nmr%s z=r6sp7HkpnEU?*j+^30JmB20%E>!Srwiku5Nl)A3i_1&pEU7IX}e%pBZz+=3>lb|sOC)TnLNZLVv zBwEN8V2NX%?Tvv*ROP+9;g9z1SVxC|10!Nc!B})Y?gKh2nZ)YM8XjD6yez}me7vty z_?n~;rD;zig~lu8{5+1hTE|w``B4+31_nv`)hPzg6dRY`_Ft*2Z($A7%Of;>8J7&s zr6{8>q|f}=P3L>FF7(O2=~->WrP*Gc zKXJ-*y+p{XDLbfuI!l@_gB0H9jbrP>=)1He;wSYC2M^ZhwQn}CF5TlFyR#7i{W^}M zAIPWI2c}HVgwI#)N*os|s z_7Eb0r$5wr(~}2+X?nGc4+cXxC9BDObu4sgQ)40oA(F1WpNP9Hqj|(pAB{N~ zgJuz(Pa+EW+qHTlovd^}>_0M8k_bln>J3{RcmLjl#d~ES0$#Nb`=bR|f#QvT<=Yy&Pr96o_2M?x7@6(W5w#|hI#xQ+#)eva z(v_&X&#==s$|WkzU!H#bij0Qur}D6wJzwpO#9X`?Y=~i8u~EQbUz%stm}1SD8pwf0 z;L0k?H?-77T&%A|m#trzoaKQ`s?xr~@3 zP1Ir9CQn@N0cey;Us3y+mcrQ?vGe6ZW%70%RzK8qXLO=v(E3u^TH)CKbX1>9 z2r2I2pVdiTrqdXH6N7dYz#8A@G$7~eD;*l~XHoRt64O%hDdxP(u-6AkawK$g7M~`C_TIh9o^h+ZXsrnK0z|`!ki$OvUkeuSVGdzT1*`JV?9}*f0JP?UP^c4+#ax)AoqEGQD=K>B z)bC(UerFX=aexrsd# zoHYSw)EoZ6T;bnFC5ucuq@gqD4iN}lW|j4@?fzI33#})gxTw^8UQC;SFWxvdS^o$- zx;#^JRwBt+6~7O;()j9qBF!pxNX-X_bn(d5Gzw~o^AEXqbe!E*)x)8*#HUUYVv<7kDLCuswB`deNuMkGZYz35#Lj=(yj3hbmZyGYh{Z8WLxb@ zm9&h9+p=8GN0KD=U;}68xlsXlrV}NGXv(Q5v%E zmnhPuzJ6Rq(>HCJ!L^&`4#{c!Zd7^=;W0TGL`7M5yu*6=)11-5=1Gy5NH5iE?y_L1 z_xGd&Vvhn(SB0fa3lo%x?+jx0p0|YeUa(TX4)#K-SAUzN84ba0t3rq@jhK$*e1m6tWB6XyljH#?f2f<02 z3z6Wm*v)Z*gBKK5>tN9s>8Q8nWF&jJXi} z7WaZ5KNY!xUH~3Lv#x58@E~UNy}t2L%u^4l7v%D<2v9=s8?Vg3hE`tSSaOIyQ`5&( zHLDLn>#sg+6d3WsP>C-2^URxyKUem*dPxY|%!ylw35TX&G%e9%)WLL&%y$}K1`Uf= zSAJt+XKZF`NMo4k47`}c*@t`iDL-X{wc@*1w?odZ$S$KKbp0&D2ITCkZ2G3a$ z5NXl76-b(Lk0#xvImKD@)?R*=#!Zc_UszqiDB1Zb!f4*K!CAnJz`yx|P^0^Gyi}>I|UO1NrkU3+|h6oB=nuEzY?h zMNz>EhhM`WH*v2DWOiEunwn@R9)eNzCkWIb4-&$Y8>0=3A2rl6(7|;Mi2)R z61EEJU9Bm;c-6XkV--WE^neMRM!Tfy=pNj@|Yw#3FUglQ3bt70BAoyf8r`_6IPu-}AOs zZu4hkP^kYWQX-NW1xU?(!smb*)# zy{?EWZO(x(=5rT#In$hzk;^BK>U;1mk>YD^9@QtjMdu4){m+AKlT(FSv!vNn&a%Ywfr7VueC- zMVm{dyA}ZOD**f+t_ju_5_*(lWHr8>6X}2FxjTexCBjMiSeKU8s*;up$#Ll>ufGbCn*f#DoW@A&({LQEvp7b{Pe&#j2_UMNmx1}TsJ!Z~&8>s+JgI?~q7 zK^5d22T1pwLW-N};o)gR%X9)qWf^tj8a?Y-VAIa6r{!5=Z%lNaqpq0t+L=dbL)fLh z7jeD$Lr=54Nv~x$@C*DDpHG)%`?+f$BrX^aQOdZp%|V? zuG%~l-_$mzfocqW}r1n-Z2DkztuP#DhyQH zANNzM|B8)@m~SdiJ^w?{rt4NiOy{sXMQ_slfF_3*+ygts1Ue!#pE1A8-yQjbR)Y5c zcupey+*M=)uKp)JAIR9X#}1v!!4Fval-#qDgD5#U-XE+o9w~lo zq9G(j;y>$Xeh)UTJs^)f-iay0#Ge8zK41=)SbE*iR6UyKHLgqDJT-!sI{kVL8*Aw0X$oo93 zGyuyM?Mn21x@43gY3$KdfzeVQ=)JK6ER4`?7l{h@9XRIT6d!i?9|OG2>RrBlB2?$B zZOBN0Y)T(X+M6+@P-SBx^!c^#35FDlzhIlb@p$9Uua?2Qb|h0rtC0dZ`64l7kQ5h5 zm(Ae5gRFk1%CViG?B1HV7y*<|&>aNRjE} z#MV9WpteJL|5CPDf3#b&~Vj63ahK8}2+8DftviE85A+<}QHwISE&WO0A1S zw`!`~i9#jpraQ*Ks+rp>?b43(+cn2VB79qF7f_ZJL=Jh8Xw1=!+JoQ14{DK^3eS9ZU%%PcPzcy_EX6+R_`S(u~@y`OJ3cx)!_~B*q%H$8rqJThg@oP z-8|jaEzq(~IUqDCXg1;u0!45-c~iK*E|q9Wm?fPKGE(_`b0S%y1#IM|k-5Xea53Yg z3fdGH(YSgNF?RbM2L&Rb2|m(({6O_OvnwtL{-l*GD#!rU3{b!&Mo!Ljb@sbM1bGyoJTsLx|k6h;-a8ww! z_QkPZ%kH!}+Av+>XZuMa*v{^u@BMvIFq!-9zzTsCwP2Zh@0$6IslZWnnSy$6TNR8< zX&{MU$j1$(Qd}Uc&L*G3>8LfsP`M=aw;yrmH(H5>8LoU}6KF+Si?;iQlRGYsg^xO2 z)yDNbHLKW|4jf&7tjxi`u>!~GiQf1?^j%_f1O?)4Zv=hTK^Asi3aXy-TCbss6>S$! ztvJW2#dqi#W(LO6HI24{Rx(9Wg^hTSVDR%Qe4A6K^6#vpG@+}eBiTmOpK-N!8=vlE zhqbMW6MhAz5iIMtEDApJ^A@Zz`_e(Zoal)&P@Uo2QDTDg7UlVoc$fTWOiZyUW&LqT zxlHbhpri8FY>%HtjhkJ>Z_6| zmM=QiRYMFe&)36(N=OzfwG(sp_#hG*NTdd6Ku&ZSN%4WdguWAX92Ms?cy3Jt=;%>!j{C%?<* zxP&O+gp1bb?A~_0STjh|b?Vc5U&yMo>?nmEaiuTHC2;WYeTbNnTsgDYKDxBzhhx|~ zcd+@E@1T&KL{r?MIaY!E@~2;ewGnQwwbR6#SkEat;&g|tmNXM*nl(P2cfu+K4t(-pYTzA^Xx(`l2Lu5RMThdDkfdcVxK?*d z+ND0#(C6|pxtB2BB^;Zi~XB(h#9u!!^5PcEOzB9e+8g=j;fbH}o zxZzf`5>bi&h?-VgX55DN?xIf`Zi!RlL#UqWOW=JwWCk4)QHV`N-c)OB0$7BeGl6)B zQ-~oN$i=IUBV52R`Kbr%z35;|V6DK`>D%QUi5C6hdJ%o8bq2brOWKyyW3OzEwMfrR z{<4FMZWX|qp{zIW2Ta3HTvLu&B9giV>Bn#NQ6Y}8wO87X_@aUobXF4@EB8O}Pe48n z%;$c79TVdZ_td-y2Wz-g(geE0@O2g?NLrR2=SokVgSWEFy?n97L=`JS;yu#^6Xd?m!E+KP^?Sgvh0*Y3gRxXwuoUirPnrm@Tcd|eE zY8{ptTEkm^er(s5IC0@c!!qq2aAs#`oYjB7DrepBLz2c6tUV7k4rLeHdSLY2U^)NE zSCBMrzavcLrBN40B#C7O{>W`1#vK~XbhI;u6-ctI^ZZ9)nkxHn_Rn&Y2QY=|&D0`W z08_C9rn|c~Mr=z;p^Sn3OghJlczdHJeQ4^cbuz>yz&F}k3=Jj_bX}d+{%oL&8+N{Z zfzO7J*8IvU3#D0AJaAai@i-ba1K!;(?3oi=t>Co)UUG+}BAP-M7MmI!tZEv+`W@bw z*2$5vL<{i1v|gLT2c7F_Pkf6}GLImoV0oWqu^}2Ej)7E`-cBVXZ2t;yX|byTRRn@U zvQKaQaTp2-okHoXbE}muOEU6)UOOZ~KG392WFU_)JM1^0QpXSBncs}46Zx`?qJ^XP z%P+2Sq$*msYU!C;GzfY+!i*=)#d4TT@TYg$(tEevT$4OZI5O; zwm!YKc-Di6k9Oy=LjVEn&Yb6?(Vylim+<|od~sepldd~Qmh}M+WIQ&Wd*1T!QUkL- za}_^*yc)t7+(Nvy&fOfvcD(~$-pWgX2V*SXY+AvTl78Qg-KX0f*`{CZ7LEf>tmrNp zkU{Cmzt5B#XXL)937SjplMk>Ta@DLKUsXj<4OU%A(3MWJ>v)&jIAyF&XP&2yez==h z+*qPqD(;sfg$~Fx7nQQqsXyUVCs8%CCYw%9=zI__DxjjT9Vtu>%-^>+4nAM34j2__ z;T~IIT!HDvbfBh;F0@9Kpy5)dt? z<>DfvwFCr|t5~0-y_veG_Y*(!UU9!|tyG_lvj==}Oo_40k3Q)7eqeZTlrvIS;BpXz zOa6`Diit`_-0S6U54ZvTsDR^oo@K_cnB9@~%Kk9LI30`}$8H&SpUT|8B}e4oW>~b! zbI~e$5sofLWFPG?bz+3w=KtpmmMl%zvv2(D5VXw@l@lEJqUdr;r&zE2EuxhG!rCAN z4php&OZ>&W42Ve)UEF|AT;Nn-ZIg@=!#kBW_@e3+rI^Ho&s_Come!Iu&9~4-3{naK z$gO!Nf3}kO1}VmcA)jQ@@bvG4AEZ~?R8~h&5>>TTE$v3(x=#CYJtoddnL9aGYj3)w zvk8fD60xsT)>l7)bA}pE>g7L~s&*o)rh7<|Ohq*0cI-1WdGO4dNO}iV^t}sk#A!w! zOv`~&>PJPZmiL*urVLdza@*dEN5|Glzr)v`J+P@0i_ds*3;?H3#CX50p9)}DXmWjO zp#js_SYLU3PD~NmFWY>$%CHk)Y?MFjbZGNc5XC&lo`($l1@HA#M@L`Zp1VB6-aq4X zd7BK0L9Sougy~jb>R?!fM5R;3$ZE(TtheGmjX&y^ctRncj81ZWw7 zr~`wmtHqELqP@!BEs`D@g!v*vws<8gCv&3O2OZ*FSjzCUZubI~3Sp|B|Xv!cnxF>DtaEhPI0rxeRR5vAa^}d*=wO*yO*y zT&3hoh^uICfR7`eWzAInd^)tWS#C_Z8n{z`Ao6%a>-O$ikdy78@OQ3gFmI}V^>n%X z^f#DLei1M)3Wr(r6(Z0KQUhk?)RWhOCzS~ycO_)Y3H2P%snH!oE>!bE^c>uqyDUTU z`LX#{HrK$aEt*_I#ZnjQ=!$?H@?Ci1ZXSj^>bt_Sp&^sN4qxuTjQWolQY3ph#CtiH z^-jISPFLGHK1~Tv8BAau;`cr`i=co9R32DPLBUAdbqr-!8I>Qn!imtCqPjV#jD)7+ zt$z0{J5~CnhGQSLn%%@rVtxY)K5cN*@O3FDfT0~eQ03~i12g1<;@y5k7~r$dHUK$c zf1MZeDWRrPnz-&MRwrFi`q7rSP`UKRSs7a;#w0D)nqt+Rs1B2>5eloUGbu9y1AB4O z5y^*4nXNUwL9yRp%D!vlE%botD#=cS(nqY(iPt>Y(PaJ(5Ph((m-}IUu{8pKSN=YJ z+2yezNX+Bau0QVkU^_@U&QlnCt(!C6))RTh%nN>rn(V9o>N0ohPP*3qm8hsP`%4RG zg82aJY?hf~>r8uocj@-`d|hXPX17DW+0vFXoUN}yoNeF~GUp+WDuN?Gertqze)Rq0 zO=gc?mFF>7i27n%D)-ZQAti^2o_nSa3}%^;*4(fAxbTzkaO*KWw80szTQDrLcOaK} z!=UvpI2xe7&b_Qu;-3YlWuPQoymzFGRT#Ct3W6F)yhqHeqwc-L;C<-2cvGu%Rtw~h ze)H4l7Th;3+^X1bHqojPOKnUzE^9=PY6qPQ zfXtl{V!y4lUnlw?=*S~$??OyO>-Kbq*X(acGfi)UN8>cj7L?o;+pYM_!`6+`+v2?N z?Nw=t!wH&6A;HYs%u963OJLqB5#mujqwV*jD|>cz0PTCydl4sKdcPmX*~O{fp{4m` zpi-aEhv7q7rPlG1Lz`*YkCXycV7NF_u$I2{BGZvVw^+SQ zw`F4~O&--CWx0ul*m*a{688PAm-EU>U9K#?=A#20JGcTtR^U8D226v`;TO%^(hq`#Tu9Y8qp6!!y>HO$z76UJW?$K}R zr)OJY_SK@>eFas+`{l~!8a}Y72v$wZYpS@2*~S#hLOi!USisnFVXtD4*5ADw*$)<; zwSA7tei`bW!~HY^5RtIvIRC2Wa}$XQhT%huXUnh@j}Du4=`XdA~lL zVR;I7GH)0Uq3!GIAlR6X7Y}NDxMm+M(RYTo^Ge|2&u7}^9!SV5Bst%w;~>DcjU3ICu{Qr-7B%sa0}pL4*vD z=F3NybL76y=9}L{YRP1U^swHe(vJ zaE->xHDaSq$~w9+ow+dUq}TR(2?r=h*8h}a@G|YqdG{M8Gt#!b&FOE%wMs65TIP+u z;Q9zOf&@IqKvW5};WXN*&6oe8 zY;ydI{<0w!;K#Yc;qJ4(BABk(vca=U?vM;CS^I4Z9r9@zr`o^7s3?4bkP?O-skT+f57tEg;X=C{Qob?YU+$N`<4Zy?uRh;6#Z4GD1 z?-l83X6-+BrVu~z+PJ(tLy`DdDy}mUijt3BxBOz9Pn~zcpIdAI6HZ7ea&$8=L81f2 zlg}(R`SvbCu?WY_cP>;#m>}hQgV$qGz3jhR!dr??m*1dkts7zBkI!9TM3DN_B5t!{ zkv7JJfMJvJgjm_}t*<5b(??q?Bmnw`r)x&@Yp?Ab9%oX2?uF5q5yCAZP@m9-+VbgE z^{4I|4CI|{E1_1qn;@6r^a(;-x~EMt3ZF94%9{Z(5fb3rtE;1BXrp=UqNMT5?-K?Q z`0e{DR3rv=R{mA>UGq>4@+7gDwX3J*0d4p!FUKVZ23qh7pBr^yvR&+{sREcKtsIU$ zb8`4bxRxOl`u-t2U%-&Dxe`Vyrm@NNt4R{(Cp^ly1*y_Sz39*1jDYj4yv)rM%-d7G zwPcE_4D+MnSfh3|!n1!@t@7|T}4oWg!TJH&?Olb$D=TVw%u*STx?yrjsh4?`AcCBU9aKZVS_ z*5<2ull+J+2i$-nYi}Q9N`9GImEXVNtwyTozRLYPyEf)U(FnL=excr(gRV7Dby19v z0t_wsmA7Bjctb}sX$-588SWkxuyIv?Q9M=#FxkZx5 z#xOa&5zz{k>=`-{Pk9X~oj>9=wp9S9sz1{0JzhIwLZeSb2idKAj0I0m*1#P=Bx?)v z3pq$ysJavNQLG}SGUIP+U69|)G`yGGcWuob<-r-5Q-}gKRE?QGI*nyvb3X1C^r7Bj zYB@J#skgIi=}Aivi&g(GIZG6;6?3!n5iP;@RLYH$2d;PdMc;eAo?Zx?n%|s%2%|YU-Je=UDv$OW(EXCCn zX9JfA*j7hsm&z)a+@;A%R|Pf@i+*6MsGAb6Z&zArdrSpA{Km-1$UtN=ibCKkNkYod zbhA%txm9ss-oqPTUsX=|h?`k-vsVY*(P{^yzm&MSv~;NFM@^@~hL6jl?4Ff|sNk9YgCK99 zXep`^=IM#6e(;K+o#e^SAN+ZX3eToUm_@*M;B)Ayx%_LF)*Czi`nQHh+F7LUy1@Y( zLUsL1{og~oKO)g&weTF9=6_W3ZQdEY2&WRI`huQt{qT0XAAQEsM{a51L%$@ca@g|j zrYn>KR*V|H6LYTaGhIISgIaQ&*f`ri`W}G{p{C^KIFx3$YeKd~2>+%q^XAF<`?nak>xj zd6l(DhiJF*Ip(XRSWrmZ7p`#@I^9egFQJ{C@e@S-Q%VQ4krBzUbve!lA07VUtNIK^ z=OiygRCsmuu-j0VYkg6EFKqHd*{G{{1+;S1VHxA(B9-!TXY5K^l{|SQ%;J2kXeqFu zbw!^rZOhxKth)?i7y7sut)>u_>AaFw;o~0ytmw`-ymbU(;O@#q*QzjfnjCp# zM~T^v)u$LU*G_`WYc8mr9R(>Z9PaNPiJfn+(UYzpECzJxs>*NFjENs*j+({M^i44F zhb1?erUJ5z0RK%g_tVk&7s&|%b(s>s?oy)DCBMOA41y{2sm91gmm|<$FZ4}EY_wam z8H&By9@iSasSDER>v>S^U`;)z5+9xPWzFDrzy~_}haCNT2HHflsf?nZuduCny9cpP zL&%hLg2$f5zbB#1#JRz7W6LgelA4_E!ySz7;IfU_{ke$3O&6)Z3`Uq(A#YB*-X@9& z+^ZE?pI$U&bD*}_oMeG5JHLKfP5ZYzx8Dso2Ev2>2EcYA?sXV&qBg++8&Lwo^v6Lh zu2cExc+EDT+LOXmNaE%xLC`~m<@eIQO4k3y+*^i4+4XJTAOaR3Ass3y4MV3Wf^q^o}r#5r=}WA`CY?}6t?Ze zKLA;RAI$lysxJ>zJJ8B(nnILUYUD+aJaz-tq6oEA3CkT$N+kr%$V9AZK$jj32X2}Y zUOJpbdy$={y3o=gHPtULx||$|z6ssoQS;_eUKEbU#TOs^-W5ewZkSOWCDOe}=DxN+ z6{qXIP&r!BPd;e$Iz7xi#3!~~6Hro5YJag_2_1c%(M4!l~R6 zjJslgzvi40HTXcyi;!ESbJ5=BYT%nyZ`z*|1_k;13nDKv5zbmMZkT7qeUt>gs(P8X>OLFZu zL0N=;|QM=y}zBY?E*YA>fO#=IT#vB-f zX+3n4LEUqNplr`9CDi1HAl5QMyT{lbFdwf>C730&!!w#>5X%W~}^DLV?3wC6CiF>e!lxlEF zRabEM=U&>&XolIkAKCGr*UjqVwncv5PoUXQ>2UO?oN>33I0Dxw`bT8vW+ zYq9c9)i}-6!i*f$INA$m4kB}AhsXGA8z`}jJC3It zW6VD^@f^T}HyXpGS4S#ZhGG9`(0}GFT3dLHuhy33L6%)?LQbwtDWC^4xp}){_`Xc; zjUwik4y%Q`j?y1VI=-TwD3lH1m>!NpNj+X5@cJHWl(n$q@ul5pP6MN56;L%z9!k8O zQ;HtBc1gG?`vBddmQpCcCW033M@+1EK|%QXHI~mMb1G$eztz6)FkrG|dlJbs z`r=@qX{>S&EAdNy<)0i4PA}Rfob#udIB}0(cp$*E~z}1``wvFN$Uf8g()g{%aJ~eWqT9nK^1Qf|Fse7)ec_U%n$s zG#XO}b5Xlp<^*D2z&GE{L_lToGB}5Nm)wBvw>P3OZ01xkCUqn%;c4?p>aE1agfjU| zIl4d08#UQ#7*HU0a5zR0Dmhj>kc_ut|Ao=l!x|HDxQ7of~7*GZCk^r?QV}ar1EhMEwcxV0$C@ptv^-fqNsO` zp1ehtwEAlKnf>OJHKle+9D0P-9Kp%N68%<~`@pxBLmb@BS@8S)XG zYTAQKvN8ubr!-^5v+r*`f+wh(G6Q0Ayfi8+9;2G2086uq#At{&p-i3xQM}AAqcdK4F z{M`;M@Xs#OIeP{3!dc%j7^obwM_c_pC+6XR>gD#C!_Pyl%O7bnJ>xr`LApiX)^{zl~iC5Eyic|!}{24=#W#dr5SZ=wE@y1bKh{F zG6=B$?wou=or+~o?!wZtvV7BZ;zCAF#Hs;~w~GWM<`!Pbb{^k~H_NRqB8)@?)G|Nl zx&B=7vp2tE&F5=_xZJ3b*_bUE4Li=*xBT$iq*=onY~f4Lp6hHw%HH` zxBf=8WDu#tItW@AWV@qXyd>&c|XXF0!NxoktG zK2^3N;tSjv1Jg+fW(wSz!N7z{jxL{qVAmsxN>FC5pF0_nf+fw zkRLpw0CDmdZNV~v1rV3xTf|pc&$wa##g>~P$7jn!a+nvzPrir4f)iPv&3%5A-kFSi z>$BL>lIl3~3zHdA4D2n?N}k^xS^Bf)E=;8fD~Q{EWU zhDXk~#)s=q`Er0bZHxaFlK*vUNKEDYzs?q>l+A58{|*+m=_{G*68;~T5FIqz(9qD! zIf3$;?3|p!($f5_tagFzph?1nDi&sH8*_eL+7|D)>I@Xge)0rq>>QGq+XruSb%J$` zv-J&*m~ui;?8yzM6qIM(rUjJn^YTGXww$l@5>6VmMC(r1M;;%}d^x&F^)T0d(@k4- zy2oH$+Qm8`G1o3gyjUi<;_8NtD{m0alSyJ-dxmOlFB$qxhZ|wwiKRa_egE1O zz_bnj5^UC^tuJ3sy3&ZB7_BbzWecJkI_0l@QdRWjOAW3i(9Cz85J{2>xCAk4m=uyac54Mv2*%Gntqwz3+Wzj=Q%a6`n0tFL;z(W4B$&+5ejrPAnp= z9BRNBs%<&2r(E8{VV0Z}`Ii6J(S0Um+mb>e%H|0!l^vcFkl?TTsh#j@>U;9}%XkIf>BXET<`&1;Vl1FLk(6Z^qsC zfu=AJBD8cjF9z1%$V__vCt$+u^mVBfyQ^7Nzhp4aMBNXOPXk4NAWVdrDEcm8+BWv8--!%4Sf^LF&k9 z!|%9G1)S*C7XQT>@D_p=xbW&YzSm!EdO6f|#guLV?$bAE7(-C8Ma?dj@PPQZggIx^ zos!Irl5VO}+NVJ-2!~`K{I&z!5!8E1?L`nqPm7OlKp}=d7n`51AaoD#58-tGp+IB= zRJ1-7=sT4$?1=8a++7{KZ1Much|9L)BIT@nyL^pdvn1#Qjl&y1g0rgT%iBr}PsN6W zfM)F|hjhMp`P!y^%V`5EDJSL$qW`IxIoGIrO)>P{Xoxfl3Znwxjg0 z=nx}C!Vkq&orGTT6BGAbAlIQyI3W18`U_?PFQt8L@QJ~p@firQ*GdzJ*#rc8nBnXV zHisB%3K;t1+PBJgpEiXVj-q_2PSbx0RIptDcogy&0EbX~dEQZ9aXJis+;FKHhB2Mm zZwLz|pc`XG6H{yhHBl{1H$CzwuH#v_D*$XvD8OqPGmYcHF7AzT5{NrFgwpMy_96!%t`Ts`IdnW=cT+X2(4)C1K zr1wAIRE1QpTcd54|4ZaqF_AWz)V|H(MK>^Yv^YV953!{U1OWc^TZTYr z4G&H-!t7{>gn2eip%t-~xwrCVokZxMpiVPJHxRA-13d@Jpv!BvP??cn3+_)OiJq*3 z4E$yk_fCBf0h9mLoL~IQJ^yPe`9PQm&ao1SQfJ6pEc01FUmsB*l3K?q`0G8JUP^{| zJ%pLT4Goy@$ln<-^l$uh=_4~$(pn@P`;B>tw~hHJ!QOmdWa+LtsU?ql32s9*ocj|> zw|mMC!#KS*#8y3dU0W4w{U-BJsa8GsBcW)@J6SJG+B{&x7Sr=)1gJH1cG^D?(gus! zpkGkk;tXNOMeDCC$jXw7Qq3kFoW8v5D{Kyjns6Ef^4RY2T9 z-Nlnu{g<#-!SIllfS1B3?A;AVySz^@5@t-lCj`?(qrhDuNDM{M~7^ot?&7g%? zJO6PtUF{|?Li>ko=JGy=;KBANhPpFq8;wl{TJfGZjETGb)tBnq_nWkK$Kei>J%7T- zFn5Q`b>Z;9FP7nyiN5iFE0)g)A-CY@@%4kO(3Mk*b`VVTr8?P(5b3ziXg%7;}jwfJ^g$D z)5W4(X)3Y;>H0b?p4B<>1LMWo@A?VHcjCD(7+F)?5JXHCy}K%@4nThq7Ae6QL|S=4 zQV?+DM7tEw>+&@z-tuqDaJRi6+}L9^GBXAW($YE(A(3aPnE}9UvAd~adnDFlw(!g( zaT%d->~=UfP3bCQHg!I_Y9moh3x;qbt7m1@z)}f{|$LlwHewh_n(A zs|(Q0umTGf@%tQ3^A5ForT$J<-Y!Xi(p#n8>}iyVcL&%pC#~b+=yit7-FHA4|E2pB zq{m;TqWymFB2+?z2jhg(GKY|2*y-se)TJ+7qP^iBp=s@kYkR@%%Uq}RJPL=)YSgbW zpkZ{G?yU_vqHf3FjGwv)bf|5(SM|U-6xJaafQtF8X~}qSTbOyMO$fL}-J4Z z=qn%qLSQs9N*I$jwM0e8?aaB=r!slgONODCyA}yzBV{{^x}fD=PXHFJG+N&E^b z(q&Hl+IMW|XRRoWy^z@KUQ>p~^B8>`m-3L}bv4^qLg^-!2V`$2Pzh~;o|Jf~L69xj zgerCaFfcG?lQXldR%&>}bktr6cb|)Y`I$lA5^7fXHCu|)hw)J4K#5QCG#jy{%xudA zK4~G>u3(3&@s+n~_mU|(K=;L^7Kt!qeIq$~f&ClhSN3(bOD<4i=^y|fGmD%j3TYg- z3`}`50+lF5H_kbZLKP~xZzz15OZr(rW&H0tbCP&{ zX{`JN0F57g^x+!dA0+Vg16tR|`e$a`UOIRd6Fk2Jq&A>Wx22Q0B18l5Fb^iDD^A*6 zq@PTsJg<8Ec)ufCa?fxVf5UNrfETUD-1{loJH~{{3<7VSb?xpbt@gysxXe)oi z1|O4YX|W>)AH1TNp&sb4b}_YNoc@X44}xP0hJJvTTCUb#VoHeY`z9na&>-uQkIJ+ObAS^WspJT( zN3oey9DF}RNgoRof4=xQE4+DOHE2kRWS@#7lFLihO+vd@o_zXVJWqb{y}@fxXc)=| z)IJ;adu0j>V{>l;k`tdVY6Z$VffBNbM@J60R-r&`Vjp9{vkKw zUv7Nk$Ce9s*i-lkC`gzG!dan0gZq@111b4_bLox0D>vZMRou;@&_}MOM zd)E?Dc(x>!D33ZFFM<9*u>QI$mav412T$lQ@Y*|C%`sIkgH=Ov&gLr_u774hJ zOz-*^!d^Nn%gG0#RHgtWPp$${1Q8%rkBAGkPD#CL%q>vieulqEG=8#}; zTdO-V;BF)PGGsBF`;(qxyB@;aI-C-mse$YW2h4=hf;F{1)gSg1;!}d$Fi)x4b<;=u zuC>iD1SG31Q&E7@$}KZkYipOZ46~)CJ=`Bk+LxA*aOnGUSelFTa_FhNUgdG%)cP!) z2+%!A?f9cUdjgVHYFS?~e3#RBTmprs+c-D9eSL{#(s91AyPuedY+Of6;IB$ipkTN9 z$eSbn!1jW>?aG!M$m;3a_bpFaEEsv|G=jTC_M(r< z_tXlpz`~Wt8}xy!W65wrsOt8+%LBHUt-GsP8W#+}#;eYiL&n$OmMXRY*}FlFCHUw# zPZ`eiGwAmb)6wgl7tduESR~&5+;k48-X3D)Fky&Y9U(3KfT=6M<(WEb=iLs@$@|0& zlUvUxzFFLlHo)u)@vG>3Uu&4tNXsEGhoS!>x}o>H1ON>giXU8ml_H6Re55UeFmS7BKk2CMX*1=AgyWpgh(S?O;);}Gz2Oyg^}9BQ<5|Wo8J{T{gp)^Srd&ELsIyuk&z#DlD_XIGN|L45FuXQF#MrsZ?{;OFXn^F zzOk}s6_1F&@ONUA2O-Zm=HM84F>}EjW~&+-&m6XBDs^A3fNOI(mTDiPaK{n(b?g=6 zXsphWKoNrdEa>I9piS&v%?-xk*`D49n7}5P{k~5#e?C!;;Oxh6#E{ICWHhn$LoIbP zZg+TpSa01x?%`-1NBCH=ujwyg&RLs!WL148Kdi*ZW6CCNBI?1zAACPoyh)-?O%!h+ z@2p1Y?;&w)%)yydkM%V+Q^wwM#6TBV>)La8y_ zQYT&7v(b&a9t@Pc9WP&Igj(~*Sxu*fL~XtVuZ<&&^t=B91jtQGH&cJu>P%?D@UsJ0 z2!sTJj6Zd$7pg}@nWdHOzZX0

    #Xnb0+u<61_p$>KP@ShpjK{=!i77eYU8A+NyB0AyaXPG4T5OaorCql?Vi_j z{2{0~89CcV)T;p;T#4owge^@FA5E98mSgvhq)eAAJ(S{ej>#f{UgSrsqB^Pfu+~3A zGnDY7f#c_j;U77xZh%SRjj->I7Fz9K$LMv}urKX=3@#k+7t5L1WO+w%${w?uvVKC> zJmRhd5#9J!XK929T-?}h6@MvRyVRkypT&23eN01pu|C)r$p1mkP_qkV`2gw^6YGEJ7cNQFC=vTCMkUOtWK;Xpi|-LFl?IEeIdo>LAf6hPD^Vr+%as%0{jY- zfmvkWx{Z>3@MAR&{hk^m8HK!fsXY1kriah+rb3dQ!(vinW069^{fbmt1ln`0Du+|8 z*J?8N{*D0GSK_7Nd_HWX-tg@8%jj`HN=_vhq?(~uaQ4(hO^e($%lu5T*nHrW zX~Z}$I0bUz681jipgwYN<_dzNVH%NGKaIrN-|-fuJP4y%QS*O-y=x)Qp5x-(B4>1k zW$LX!rYN=-8IU3Kq+37+^E!-HZj_+f5Hv(3nHz54+*TUsdcb=+8y4AENxr0acgEsp zP4V?nRHWH)cSSMjYQv{cNkH_ID0&Q8e?$-+s%#Us19p3lFmasQfRZJ799f$ziP~6YU3ycA0#c))d3g_Aj_c+BjM({!tEJt{=n=^ z;u2jEB-u_PDUp9aq}2Dj+>PO5Wh*~z zBJ@E!LVCbzLeH^ThDj#iTKt0yO3POGK|GCd*efC0ZYjhngBHbY(Fh#CoOiB*=w~XE zp{M>+yAv3U((o3}r*hrd|whR67Jx?C2c<4{)GWvimfiMXyB z?Geq2EwZUN^J-Yu>ubY0-o&3q0}e$Ot6a;035_??(m+c1-KD*BVdSAnQH=Yb0pz-Wo3;z0LRt*&~kkxW;ROpM||Ma^0894Yxa5d%NG z{#ed)5%I@lXR$iW{nu9#%Eu!A?&UKDxKXYyR`At(Uez!eB=?2r_#EC*)7qq zAIxq8(es>=NCkpRRCj8k+-C5L#Rwr7texI5Pkc3kMG57S3&uWagJ{}jNv$h+_o>f! zFO{&#^pUNLNsHY0!<$W!{4&^YJ@Vi$L(SIXQpFChbv1{_xMdRfRO2gm()~!ft~;f^ zJCVSR*W+JUj|lef#0!Qizj=t4Y9FFL4_LkO_Gr$ZvKK+Pa;D$v_&nc(rDs%mm8Agm zpI$}s@R$rk*>4Vk=AGx?OYZI3FlRTdB`w($*O((7uKAg;egL3CPVB0~G%xDRD-Udh z2#AtQ=5BMB=hvl>%lRPG4>n zEg7G-R$lHBk1uKDmq{Zc#mqh+59U`NVUS+5o8en3yFBvvsY`|63k@`aK43Z<(iyuUCN>Juj%UmpWzOTXa%_>*|=voUNLtS!1e9( zHaeHccYapMv#md05ZSLN|4}EhiNEzLLG&`x4@xTb~q zZ8p_oCjzaw?h_}mZ&*Xwtv-ndN}Td>+h_%M9Qi`Wb$pYC(i&w_of`+$CtYS<1YeVR z2hSJwjqq&+cP~(Xi!EC0V#0)GXeVRR)g|eh^~kT}2|Gph+KIuD(~w!ZVj_!(w9J$i zxzgx_Oa)uoS99iNJ1r_K>BRE(Tm8?Cg7||Mowl6n!y2(^@5+XmFPuph<`VgHF7a@6 z#P+WCNhn}?tLJ}5Cdn$>dGTDEuq46wTZ*5T$GAXtNba1de>*m6by4Bk^~7%R)rAHp zSxF}O+pGfh0YMjQjnW)do}+k=F3QQmU;xRG>RuLcM|73Q6*`u?oMBoEe)*wF1Yuv^ zD18WvSa@r@wL|LdZK;~@l@MbgNeZ7B7_(YL=12PZO(yu5N z@cz`0eA!ceGV(U9z`ye6typ{f0AbnwL4+ln{)|Ythp24Hn7uD3_1IK=a%aMUCdd$c zDdLMI^voKY3?Kh>IqJ7y=C+&9Axc#B@7ZxFrGGAy$`-jiuFYsvykjp`wMgfoqb2R| zmiHOl9>No1x(5$lHojsIK|#4YmJ%2HqgXb)~5pJ=42qw4LgPs4Ty2^ypg@XZaRxWl^Ul)A=MxZXP)Ud#$NE z8xF+*D(++4-lE2u59CK_OJM6Jch$GWLtE#vHl-PU^JuH!!lR+u13t@%Jg_ zp6@2Lx77-Ax@k2-EM;nrFf3Nqv_I;e&29wEO^Ntg(Kzs;eNs$ZDCQ2~nUh_%P)*X5}wx5r6@4$*4Us9)e|6(Z6BFd_@1MV=91+ z4Ca-Bo*X9M@K9CZk4rZRlEsQXK+Y^`PuqCd$MfS+=YfemdS^Vtsc@ z^U!#jZAratjBtaJSEk3=Bsv&2xl|(BMa^;A63~~LgzFt*gJ;c4#U;Q1=t+J6C$~jL zJ76oSs*?#YOb_w%j}MpThvTu`80Zz+OyU8P6!*=j_Fa`s;f%Hs{$di6Zi;N;&lz`5 zqB1O3eaF3dL}71>7~S&s^z|x4-4oQOAP3tq1@&h*RR_Wa&@$t;z3G-7)moUK+6`eZHyNl#QX;*hV zC*`j1_WZGd;=Lfd=!sW49!sc`iw~aPb_YI;Sw1Q(Lb%69XzTQ$*NCn=f)hgMU@&yseQ>`^~V3#blpOA-&*5)nV3;Evk&P!De%~h@`GP z7t18{(c3*&U02MaGfLhi^GA_py-~_ZxcHyigm!J7g>H2;154@_-xE=OS+TdBgLw3M zee!P4D{(=eX~OW|M?km#Bh;>~%G{`ju(h6}Ya_#9!qw1wEWmPa|CXlr#N_ZS!Y3-* z2kT6jcVvdnEX`%6ONxBw$cLjvVFC}Hl{J1W{jEeBv3_0($b7e^z&jKb@fr5 z9F@Pn*Gj~tW@l%&)?!i$Nre{5KtXj6rl$=|KGN2{ow5*ZN+PZ7Z#IbZ;9yqmzjGL!5bG%|lNT zb>8oaW1@{j&Mh*UpE;f!!BxV2s|mh-S-U4Oe>k9@bbxSU!PgbUz-kKCy!pxiZA%WW z)fJcm)j|yjpMkzo-ixHc@0v~}`U3r7;@C1^3e!4m``4j8tS$^>utT?*F3p2>1H5-a zm~-r))`jhyrMX02`Xtm33Zqn}CvzJnKLj8z0JG)QpGyvl?ghV}kpD4-oA{z&hn{-3 z@8~9ABa7SqOnC}7Ma6G%ms?Bi9JA+4>*dcvKj5!<{;;f70skB_~>bv#9Q z(Pt?ucWh)+*}=d3y!KF@s#7%|7a`?tM>$VREhKnMjEk?Diprk!56|>GVM{JCFrGa3 zBBrpYEe9JHgT)L_p-D}Bc~inu2d}7;C!k#(9Ulf-M`UOBR`^2xYG%t-x_+|Qf$Ao* zN^oX!G=$zH6SEcQmhFDgXKd53of6bam&=Iq8_x)upfDYbGs_?cTHPN&u&&+eBs4`)P`Q@2ww6Z zBBsK64XJNdcjC9Gf%l%X`)WU?=S}z&Pp`!j%*a=oWj3sO8mK?txH2>OU5OIt+o#VF zJz+>Yd&vY9?({IjQ;?&D(yX)nb2{x$bbdrD=ltMfHI_ALZAmdEg?|?F?oky9hGe{E>HMB^?f}-xnyf zHIyMudepxe8QusCgRw}2st1F`B&L>hn?8>5%Njb6ME)ir;Y~^YKfvDd@(RA%}1jK-V%}LcETD%Jpj5TkcnfLq&M@*RH>- z7iGtU3(k(^o{NIavxn#(^!b_lW>5in1~y0-&=%L)LWkFmh1UqIO>@Gq8?hCln2udkkl4(cXU zRK|6tQ4H&QguJEZa!TdXXfXtBU4=2Y-K4|A`WGvb2Z~OW%w0ET-(E;S;iJX{Pr{_bf7x@RxOy0)P_0rv3;*2whPx69%Ft+mmrF#%1 zCj3G7m?TyV#E>JI- z)1==?`b$UdXW2UxGtOMP^)VdqOfxor@y}zyvK(F&$clX#SCvvh8^X7zpigt z%^X}(T?~vrvIepT5ifk3_JV#>0Ke;~tLzb>X8vDIWC}&7IA~Kp0{6j7RDgW5e$}ijAZqt-Al64Rtx>h7q;h9lQPBb~ zGom9=AEr=bp?%T^R^z6uE0;VIjPE8rn^`Z=Ia$}|7t){0oBN9@_AYVnR~*E-yt~i8 z3iAyZAO`>0`Cgd@!aS=mf=D@*iF;rHKWW%t*aTvX|3`TWT<-m`=BOg~e|bz|>DT{P z=oaw4?%!C`|F@{E4Udd}Q79JU)Y7Ycq&pu6ia)X`!(^*W`_`}KocDj^pqAzXJPkZE z7F3{k+rm3}4UOlw8?a%m;DEtqZt|IPD40ZRS;*rLA$#pZGbt62pS7@9_&9hhBkDWh%g=ylQsy zIr*A^1Jfs^8$aydX;i`gO~%t<`YXzi&t&4hwg04SNa3;a%&er#o9=(75s9U`oYYD& zIj4x7bt_)`r{Md+Vrg-XqRb}G`#`XB_+*23rAwPjB;n=LKEkLCW4IZD2>ke;D;8fP z{h3wuQF~oBwZ;7law8K+Z`Gx%_hwuo9*WtQ048pj(G7XKaa;|#MfGx8gZroRk5AEl zi^7n9*cA2Dj3VC@oL>75D%?zQ{wGs)VH3FO9|A9kMo{2A(mKBd`c<7v>|#;OF2YqL z8A@s*U)+DTz*2PWM=`S>JiiaRNnlZx%AqCHL!;9sbDl4_QtB@>hlhm*r{*J%j-kk; z3pml{h`&@791=-mZQlN*D@=b+O~Oj zj|Zn?k@1wT)R=i3@F32Ie&vUJNVs{uHEu?UE9x002>*PvTM#i;w_%+-)`fh8U7-y> zh=}&u6guU;6j8lPhx!V{=FXCBA=`7R>*V$OHo7~3K(93v!C>zftd%uz3G^U1=lwR?{P|X;eb=uNWox4qck%`DJimAZIEqiI4EJwY zJmoay#=7TAK>r3nR(sqVcUOITMhuu^GYD4yfY9NrCL88xH01eP`pXY^n<;l$FEuW2 zm78afoHFwh6|1=aNEuyo5PtlSG1As-q>Mi0u8$$%`t-x8$F440@@-ot@RxGBI-6_4 zG>_1bSM&<-h`Y=d!KkRp=Civy%LlRcbiIKXT`|OX3F7bGew2Rofsa|~^~((u#%w~R zasrDFk>6@R`hBph5Pl^5QAw%$o3c1*&PxqKoPMG=7!2JEk7x`!@s^{X$HsoHJU;95 zQQ&kkqx<|mp*b_EPw3H^3pBX_GSIwlB?9R+uE9ir(1mWad!dw%B9S{6Qw$k0kt+F`;Fx6cI^p&^P){!=N5=^N!{~yj;Oo->KCu#xaw4?oEUxE=dh6#fD?0j z+DE{Ll4;N>AzPLMcX)r}kDcQixQNL(<~yohCd-`(O7?3$pt(|S?){+vBv&w+UEOXH zb)P=L=+kWVxDpfb>mcqvKtjh>ir!x=8^f-seZ>Tw@c*OK7yAjU?@D(pePF)XQd#qj zMf>b{8a4Eh7i~GZl)AWzSNZh~71yA_r_Tiy*M|e-^ELC(5@^WVZl0gX0X`ctD~Ls!g(EMG@KE0yuiT{l8<@>(?wl-T}o< zdFT$;()qfK#Mp+V)d27;vRri+v`AT&MQod1WQBL7W?GKF^)y6l#6z*S)w zn|p-tsB9gHuJ`;7t+fbtUaFOcQOmqD95y3@u=~|@N2oM5IF1z^1-nDB4qV_MYVs47 zaXa3W{El_rR@N`LX7S!vzJs^7vF@>I$bA)Yf2cnJO0ka6QBxiU6x(Xl-SFikr#0(Z z9&m}z{9BYz`Q5XHoY}Bb-L8nsR-4P1$`$r8cX!$EyuNjigL7}}2Iv4rqx@{pb3X4^ zN>Ml8TB{~4DRFN71!Qb^2R-F)06G*EdMcU?2kkpt;j>L_1sg9~N^4(ytLYAd^3OU z;XBRk{&RYu4idI-JIq#Z^VV+8Lq+>}8=-0`76( zttbf}{7mfglcj+)rn#TliRK|T=MRuvzo1S7*T(B`E|)qF6%Th*$wWHj#VW1$$*ej- zGB3xqz>WWWhWnS=B@8s?^R)MrgF*Ge38PI$W!nFY&}*K#z+PIZt{Gc0MVj5uMFT79 zapRww$XUh+yAef>UnK>XlPiH(dlskJu8CgTX@^}Sb>mCg&)-C>PQfuBUZA|tKRiJs zh~2bOtA3zTsXwvcB#MF|xieLC&}SN-o02>$U(?Ard~cvVx0$Z|&pC6&j+L~4b82() zBTydYBA2fg=O5%pU(a7{?c}lUSJ;h`iHe`*7SIY|C)LITVZT$q`L?lle8IyzXLKg9PPO zfZvC~0AqjqYe{Cq&Tai4o&#)+40iwNodqZs^YWxIVlzae5r=f3Pc4MhWkobDK(TLr;+BUEx zzY*QCN{9Xay(fHaSBLA`r+a>mBC=AwRTVvN%0eTs@x+vDG=w++f&-B(aB15wOqUqZXn}E&W{qcir5J+l#eQT0F^9hKG{`BcnbS!ew&*idd8V_7W zTTIPjE}Y7^5^o*T^sd8ftjc-siItO!U?2Es0pCeSi}2{67I=4@Jyq`}iB3(Y2ot4* zfq#2FCYi>qO z?UV^`xZ{y96OE6r9nbEsWW3tttV8b_Fm%$_g4a$b#B&^$X*Pm3!N(g93*${bNX20W zahLH7AU5NlqtJtqQFZ!NJWa@kF!`y>*TX8h_*p{q!IcO05BNqW;2CS#GTJ9doyZdx z=M;sq0nuMom@eyuIQ;cTV{zJK-h0_y)dlr6B{dzYBG6*@XpqF&`5az`(FNQ7G9mmf z%CCJ!zj;d}>YstAA4@_w{lnVa={ot+?fR3+wl~F;pUSftf{!7YMq9;j;WIUim%$4S zIF+jb#(-s@+Rw`HuhbUB?w_AGxyEa4xG7bCmBR@)>cPC?_o@gF9Zbm&jd>^UozOcE zB<7%xLIPdvj#kurddI#=p4*?qW2KQ5ZyU?E9AQRM3>7RifQqtq793hNMT2jOPFEYC zp7?RzT|M|_Z!SbJRZD4wf0M_h3CiyUiIziEmctJ{$C$mM{cdkwq7yC3eEoE*FG4gW zx)zqF(u_HZvL&NYF;tAt`cE5}eD|xs3BNk<#QHJf<5MjK+=eF@cPVwgU?M?#TgY8s zbq@*nUdDfa*fMNy0Zqs8+l(L-5JgY!r`W);)>{DdF5eef^~WkD zptb+^`2X)e${FE2GgS8G8~6hLceuf|2x%q4#XV$0bmxbLhv#Nze@#mxx0=Gr`|tfW zO1smhu9c$v(_nhpKcC=X)VigE9d*^`3*NIWB|i_NU=XSQ5nTJ?o$PC?{mAwWfn90y zsc(4-$JE1^3}df$YjlelD@L8y*k?{8ca-uh%0rsa#K|?x+G#Rj~^~cJ#n==$nsn=)NACZ!`UE&3rZmjI=?dS9;GL7`93IA@N&PlX5JT? zjM`E{HHW-aG=J!%B5^Q!d}UcXp>kH?I%lp&2@RHl^h-F##ji3rh>#ob2e%YuH+wcH zldsD)EB|qz_~+v(40~txgK&H2Lsef&PPnoaEYB&ePTtC}v}iY0UAFbYSSh({^3lbp zOGP=R$Kx2X*H>1jYyAGwp;b5)dxG1K8BeAMgM@RRcI{J)FrB&O_&xQ7PyxBIcCxZG zBAmocnRapkQEat5sDVMjxZqxwkRr3OQkI1_p+DZ%hM7ZHWsU3X1)dF`_MpjT=^afH zdXoP6qJ#wT4a4J|x(f3JzaN;1f4VLq`9T!7%u+DO=5(st z-2Ce;jOo^cs2N@U8?#YJ8;03D6X!8fclu&cU)^Z!KLBe`}NUmyp);Ig{QK-7KO_HpDy;=c1ze7` z3<0xi#ZUd{R>l(z+e>xdDDOntZa=yQK zC#9a$AQ`5IX>7xAt#!uYXI3|_dY8wYgyd_pHkeZKPw3aSScHs4Ak|QLR3SMeO~R=t zw7t5G!qsCmK=x|NQNYVxzM$8d%56fZewhVarayMcn*s0G1D|fhDfqs6`=+NxfF@DV zc|c&qIX2xL!4*~fMde{waZNyG#@p?wfaEoSRMlX;X5{fhWhx-V;bo&0vkZMyiRNtx zF7pn)qS

    oSpuiINWAXS03GdI6;h{Cfu25x|X`CFY5E|SX$YM2w0w^BU_9jq^cSJ zl!|jQ$;>;@D*)5*CWsU%^8fJm)=^P*@4r7KAq`3nC9NRcDIg)GBAqgXFfim$LrRHs zNQX)(-QC?tcQ-TS(0N9m&+~jf=ey2to!|GYv(Ej;ELb!5zVF@FzTU5EZxY$m>_J+J zwv#vUSFP$x-LqEg1r0(ClQ-HC{+c_i;YJ0LegT1cbAFSkDgge(FGaagn7}ZpP2^d*`?}aXM{g1)l*Xix->MxoP^jaaB=CB z7*5%@c=+RL7j8Mbqoi6bX2Oo`Lap02>sohOxl?#}i(*8^Y zilx;%W2ui%g1PUi^Ktl|^48#_l&31N;(yyJ^t+fdpt9L?3>AzLZ*#(iQ#VH8FxIcy zNox1B1XBuI;SkoVLSxpMsypeIi7}f>)7j5ENF2-Q9y6QE+nMXrGe{^L9@0%hy@qmZ z=#b8X#F6Tx5p5HGMq0(Hp^>nMx`(q=Z;e#UjjEhxl`I--g5t=f%={{cj%#l`Fztp) zijvTC50EE3@x}z6pFH8{*)S==B9&NwzIpB%T)s8P-^-thzXPH@)j7 z1Y5G>E*9rayj$^`&Vz!lP3zece+0A+WW@ByCB!)nzbvP_9u(sHVNs^=Mkoo_TVExp z-x-=~#F3WTak!7H;|o*Jn!3FrcLH5kDdiW@Jgk87vS4T6&iF`}^0s0L3}j0q{lScj zMNRGfd%^@S$GaHaYoVwT0)beGht{$v(wfAV&t0wI3=29}vC&MfgkAfgBHJ|6;D;=t zJRz5{9y|>ZUay`}w_~v!^>uj51z$|v2mlG0y~h>P!yVFQUX4fMM6Hn z6}X74TH9i}epTW>qET84SHL=&FL_fiohti4dQL7#9L~^#j7g@43S|`Nb&M)tQLgNj zAcM^v_-YA!rAcV-z67WH_?;*zF>SAc7rjk*Gg8s8w<4~uNtOjUqe^Pz5;od)uI7w+ z*0rSA`pnu3Ufg)U!}9?=Zg(QQ2~uxjM_+PbQqh;uCS-7reOwppxzUMF@e5XeEMc6N zDVKpwCL!QAZiN%}Grcuv0eA<)`##WJH8x4P>!KkPbB!T$`QXg!gdwu226+^pWnsuCO*;|LaZ`Umb#?i{cL=J#1g{?}mP>&yc%r@wWOT)l zKdQd=0}W0bR$r~Jda;GKanI?iKkuz?JCr=t8Cdkw6Gfe+lLU?)fkLSN`X+48OIdOWJ+o!pX0 z)Xqd}L%D(tH5%CE(lEUOpWlOq{PAQ#F+xON_Ndfw;QGKd{KY|hQ-5auST85mN7JNt z+P6DuM=A&89}5Q%JdbFW!b^6OlrP!VDn`b{xPx}aV#H5^no?0#vARiA*mcDO`GCDt zZ{xvcFiOTjf(Tfz9L)IL8F&CN5pF_<<-Viu=G^N6l(>iDBLo4=%@1v&Lk8emM@)ZN zZM8+ZQcprYjVu3N5?th}M_;QFMD@-{J!iaa7$I|nVZ-3-cR6&*bQwKG)yChKQvgoZ zEH9~ZkGf`67)!uQUyAlallm@9_W)|C_W`6!6ie4&^L&ZHW?P%VC+ObFqkG;h?q?i; zPCp;f3{v5HvU-bxjYM?p?S2$>26qjw8-=@@H-Znc2_8n+nRfPH7djb8FcW05oT~aw zw5CerkiM6cPGQ5WIVE|(wr=2Lxw(<6q+c8OAUKo_UVlGPIvuFJyvw($><}gRl7@CPMHU4%ZO?Ls`S8iZrpr>UKOvSs=v$yfQ`G z=49P=BDrd!m@%q0Ql0*E=bMUFj^bV4a94>daP#^XGQ5vQP}W9}$I0^)O`SdAK}0j^MRS zaR7|#`pkBdKa4E1{<1+aYq^MGMc!whFcS%w?#%Pwlsv{|@P7C3K!v)s?e1F#wUwvD zqcXc&tby4Cb@1cYMm=Sbgel#9=OGnwoRmTZrUY z6rVTy%Mhy_a=#X4eX^?g(uK-y!0>%iUA$*`xux{n^Z2TMVaU&YzsshXft+KB*m z0S5k_5_Zc^FVCx_%ExRT;hDK%bP|E9p8-@bmE-_X^# z&^}-^+$7iK%n$XOElKiAZD*#ise5vEYm1f7!S!9Zxd%=|+rwFenyxPFK!fs1r0iT+ z!613}(Rk9f%Xsa4GhQj9_*Jn3| zHfJnV#3JQmC2Qgf4R)_~Ogp=3Rnxxq&#dv457xsq_ix^OZn}*gkVJ}c$d!`l| zQ$MhPr-^D!eH*GbQ^5rzhaPkaBJjx-!5-NgFTQqN@2r{@%D!tpwmvqFnDdP{2~%$~ zFYIZzxMAwhXG?D!l2t*YO69b&mV-vSl10p_C{Jf9Y#Aeq7W<=dEm~6rTjf{@%=b@9 z3jh;=FCam~U)J}h+dcviIe}xHPs+y?QCh(Zt70*~W-I_uEcGeTC6qIoVZNNHy57GA zZ^zrQZUE9z_`N&{65O#^0S!n;O!BRS`-_*a*blC4h0yj{kFyDX(KXbrEwURgU+(qAoQes37q)x#%yDLu3!)78 z4vQ0B*X!P2JgH?Z42OJJs`98U*rlq}BJbfvUt6xS9khD6P7cHf+03e;U6~L_lm&ht zI6SrZh>r5P*Y(+fgWp7bIPG|qOJkzwt>mJ+8NJgQ^=N)obQ|dcCZ_?vWOU7I>UUop z%@FbldW|TyI0EVo^L&*-{RQzZT?VyZt0tHg%RYxu(VR(_H_5-Ih#ndwpA9_PJb=X0 zvDdAK8O{+~43S^8M;D~Uzr8-{*t7URBV7_5GIi#22{?;ePZu$Z=bdSN3Zi};<(evD zmwo)JY%q&PT-E!*GLW$bDrKQY)5BCOAoQw73`7=G6zRe+Kl-pGqo!V>V6EcOY_&vjmAOKj_jM=GT2cF=J}vS| z(D0^>a!qfpo?Y*a6Z}$lYS^;|pPT(pYjgzuUU+L8t&?;~0hCc*JGcn_Y)<+>!1O_q zY~Ll{b+#a)5aRP(JrZeGCRo4ef)KXLv+H(0k8=(766X$&<6fpN&TQk%YSTU3IB{R%Jb>sz{H8fx{iUS9o#181Lm_ zNQh@Cs2UP);d<7fD_dpg2JzB$cq#xQt8Uv|iVhfRdY#&C$;u$Kmc^r}m-}2LjJsdY zQy*S>w(q)$L5<0_Poz-VW+j=+{Rl)ftdQv_&LM|yA|CnnM53^?L`y1&l z+DD2y2EyN@!Dp0J-tJ{A?;vL_cU6gDyUd_xY(ra(Y0%5wX9v8Dr`(sC(y$1;V%o$5 z>)H;Hay2y_EISAXy~zB$bYOyYgg+u7%oeIa|K9e=C)@|ejx!#+7{Rz{jjjGT1Q>ar zdy1R#*Wu=b-x#!^w;;IKZbAM0tgU^AyqFUX5UvU;{0kUBdU*a61cU8hUGW$5IK9vp zSYh9WB_v=4JM$E^_u>}go=qa@3}Zn$Db46ES5jxj4NX^^@my}HciP{zL75_KE+`kk z$o&s-lfn)kRZ*Bl%+^sQzjZ)_u0^yp-2m8oVosZAwU1H!g1oYNl zDf{RK84_e%EK(X<*X#sk+^df{0?pQw(Miv?oyA#$Q6e zd;bbuxdJKwaVqFhc;S&mKYM;YF0vLZSUP_+@aP8J7r9{0DYEP{PTcjv`|AT zU3I6;zFt?M8iGO^%*-P-vfY`I;ov(_1W7^+yd_zJNvp6$xyD4kLP>ZnP*hJ$wPpBY zhXG&uwJ;x6AYV?Jl!N#4G5t9T+Jv63YF$1~PRYy*HZiL8P4vYNKTJfg2V?RI%v&s? z95YMikaMZOq94a%8(^|+21Uop40+)$%f1UxW+Q|c5bu#?2w2V#;eR-e>qAm z6yvpcOM+PY2m(`GT#%42M$a$?9jm};NtJiu~ymi{`2m~f>+ks#w; zAv_bUGGw9+>#lg9D2e#Vf0s4Og$~ zM#d<=s*=Y`juea1Kl|e?oWRHj_fIk-JxnmQ$(!cCJc((4x&4X|b(Q3$cH!AWg%TfM z#!8%j7`k^9v)Z^#92fgK33`CsRFtx}rs(eZ*t|%YD<9V>lfryX5VwyWiNj`TY&A$i zY6cWkM2yqGSCv9(L{@6I7tFy8SrgbeKa5ewvk6~+N0r8qACAOk{`E2@RY^h{J zksNtHL|6J$#%g5bL6;sRQ`b`@Sb$KxvyP^_#{Os6!-SksqhHBK#Y`v+*2 zzJL7r7O%A30tmH@#r(=OAy)XgF>7!q{5Qo9I$4v>Hwn(t*b6Cdii9J*sNW`)iWFP; z*6RTZ?&!a`Qxil(zF`MD&E&lTJjk6XXZX@viA?j!alY)NIIn@SU8?vCEr>qPB{?V= zg{^nXUQM!-nc&>-Di83;xaa*+e7N{Xn4gmd&84G|dck~aI^6SfzoFW%G8xA)S8hA^ zy%tLP{2w_Wx5YP8qtxUVa5>ds#CPRNa!E&f^4PRt-Oc0F#{{3b0G7iF)b8UX!a{nj zR%c#b$qjbO4mFbG(z@)I?g}$?l3#j3g?>(Bwzp=#jaOxPBL;#gTYaNf-fAoi^}lV5`sATnJQ9O`OATd{LGqRbN<^!{#zf&{H-VaeI|nolTl?!; z{hiCuvM0uUuRL3-V_JsDlaAXc?|2796aG;-+`j+P?NEJ2n+A|~ekJTW03N>cM8OIn zd=&d3P4k~Ju|`^5t1pLMNZkP!2IEiz;(0nm{r^d09GOPe^90YZUo%=SzgDXLPq+R3 zGEe^Z^2)fmK4=K_buXt^Vfa6{nPwvsR}+lbK#hyJn7-#>X_@_(+=To|5wf7idlNEl zB;y8T4q=YzQjO>M3U8f6%6^QCX8!Yn$d>RkczzPlf0SE7vTS@&`LkpA-gvV1pBI(; zR^GF56H1;gHJCX4_D0PoE>A?Xb{{mGu2dt-l*vG<5PoD_vU(07?`zDh{ zX5mXzQ{=o1V#}$P|0|&4@Av9~Agx42!+mFaT$H8qDmP0);Pi>Z2_A;Mz1j6c-U7tm zKm0WR6W$W1VV?_~{wbCD z669?)KbOP5)B=4$M5pfak~`P2#40!H&;OG7 zkbQ;u(nwCOqq%@Ixbk6rQ3z~-suIkYg*zd01y0s3m+F=|a z?yaQ%aHN0AB$`a++uxca+dqwFP+>#h-KkN9SY{Qvx;ytrw5-$}Ulo`q4Ji7iq){MYpi`IH26M#~gP@;@!&_wevf zuH^o=!{*Uugd-Sr8TyYni4-Pfkd`?ss^-nr;uAE~h&__0m?PH&?(joePQu+ND z?z|oU zF`Q{3=b?sU^Tl10ho~}$%VAeFM<#&;#?V)V|1kt9Av-gT;~i~JK;T}_07zAr`S0;; z=AWACIB7&yp@sUdCyb0gfBc|lW$m7ImbJox&5%sK`R7;3kskjoP1|B`_wdmE--8bF zTxevI`RDq-E0Ifc?9my?+y~Qr`%e5cUmpC=cq>EqCm+bS!Iki}Hb0{~zM`U?5WTMI3~)KK(_W z_o`Pcb*QX)E9%XLAoX7sr&OmgcqL?zoXy3K%&O$h3zPRW!v3Q^D)Xfo{D#h`hXW#2 zq#Y!*K+iMCTIQO3BG)_fHp+0LWe{}iuC2GB}MSmrlNn+muTTmi|XcaTU z#Jky~+6q}qj<>JXEs1%uk8Ixz-aj==S*OyHw|YaF%{&xb*(gbZ1G2*yLV2-QUsGvR zUsMh}`=iVgC`YNJ*l((DTVf2EXCsfJtmu}uSfc#6U@i#Fl?*#rA?#GpJwKoIb25+< z+EfSh&QhL7BW3)xqj8-{HR|5cIEolfgt4ZrOkxu6M^_6xvzW@gWa6Ir?!mq7vzp=Q zoc1RaflA#;p_8Y5YYu+5D)ovsIZTU8%udd7)mb$9CEq>MTg zbc#_BBaO^R|6>iC`|lVZWFuSCuuH1?@fp_i6Qr!48vJJA);*BUx~xD^=m=bCjV*J0 z)@=u{RXDazbxM{YPSQ@NkQ6Dkm(wEJZ@$Ok)$jfJsb3!=EBAT%kiBY6QN&Dx>G2?4 zXrJ}@-GFORDEo8C_#czV9Fo!M#rNGl8|}?UgP!jTyeL)Y=8FZEtS$FMIFHVM1X0Jn z?c(*ZL38-#H?4O)$$vRrQi;RF!5jB_>Sa;Y*N6@UOrWb*;S|0xFy&0mY;)XC#j%mk zo)i1P27o09^8X^Ww$@(y=9TYZFSr33+wor}t6T;Jo^2D{psqro7R zrl(j~MHzM=v`Ee8v62$2Oq*B`c%SKJlv(SlOA$cdW?uFGs|3 z_0L}y9(A_{rx3;xPMexumX1(r6E*6fQfAUq6+i;c=fkzjk=t(ae;nn37ypTZ0&lJKFE%?JR%GDk#)Yv^Cj(mzD zG8>k3e&#Ydsvfn~l*liA)EYi9ck<1guI#DA@N~EL3eytJi$sVYOor_}LrXR5wAGoB zWDF4CU!^az9l2rA9ly|ExtF~ZK%1N4i2Fu_Sk7gwm$C?ZmBk(O?g!iF-7;YKC7dc)}ey4fM zqCUcm=x$rxJ%5XwuWIj*lTx&GHnWAV_S;PX0BLQ!fp)h|NM?kQ!Q#7BHX&;{DGGAz z4H27J$Jw`9i~%b=UFVC4bDshAsx%ABQsvTUM=Z)Mgia-bDaAVH73rgd$I(?zVm_Cn zc;ljheDk7Xr$g@n#r~KnLSkj-$1xig!5W#+)J?jzdzvDQ*->bKyX%JIlln0sBKiyo zP*usYJ%jF0oq+TU2X?V?N4J&b2MK{$-j0cgSpqV6KQIzOrK#DQUZApRBW4xgb4JkN zYH$4T*lp!j#W8ZvWN|K7$Lm{+DMDQLw3X~EQQ}>@ha9n`VVpcI7K*T&leQoMeT_Ot zX5paY?K4QC`OiLf@ViUy-zAaEA7%0%2%FGY)gip5$ljXI$J2}|TYCDVzqlwpQAFWJ z?QajW{h0N(Obo3`&Tlp$Whtw$#yK6BQE1+O{PL08E0nnf^zAR(ykF$wmfIx$u z#ctN(yP)=a=cT(YnBPfY=7l(zIWl7Vb2FF0^r?8iPkB;QZsAy}|56hA0gZmYlh0GL z@dox2E38K}z%i~^#Vzg1T(6z0fzp7mls3X377{0r7+Pv^Wm(vFME3>!bOt_?zEg)% zW7GU`7&(>A13Lz;A1fj8Z8Mksr=lsnx&67(VCTVO`qZyjKFY^EZlcw=Szny$ns2djnxQdbV32}uacTI&rkTNb za#p8l+myP`*|)>S^yc>3GGIZFlGwxA!&9(eQkNB4_L7TR*6L4RED!Ra~pYqx;Y z=KIG!m$RbkPB>=!Ym6a;&NR-PA784olDs6op7iYb$S2@LNF|t@)QHYDG(AA7fBemm zD_#bKRximkGrfcaM@eVa54mBB|i;F$DwAKv)knOfuC5cZq)FyF$Kk_=>xcM<+ zjk!A*e>-;+E<{fhrcZzG@D1ZSX|A&2Q^Pz*6}W$0qB`L%LKOCwYpsq$yQ8TR3E4e5 zp%ec&bJY6C61?(FmPXgzhokk2NLFK2sHTxD9rf6jM9a2)&;5y=id+8}wJ$l2)OsW9 zcO151i@{;34b=pcnao{V@8k+{*OI>3{mu^P0ni|h>k-|?g!X9Tyf4oCy9%b&S(AeM z?)c@|?u>QsMha4LwI2)OXDEHj4v)4(vW9DId`d`+K$HH1>M(v2#7) zy5_bLi!AFMbC6~U)wUoO5)4^cxqBTwoPL_(zM_IMRyd|s``kEqxAhIkxcRxI+vta! z?g!)UYC;#nKPDprLt|?tzQzKc z%2VPZUnNPoa62$Gy^fKc)vwoi`C-qBR&;I-UF>+h#Hb_i!DJjaJ6GolC@$p4EzRmX zrXklJF-LN$;ycj6lnK-ftvJiMonW1Ax@TRzptzc$yWrUtRF_si!Ol`Q1m-YRf-pqR z>qYoTSaI|%r}}E``)F~?AXk)HCn)vUF5W>95hA$p=6LEnmPnUW7`>vdmWGEh-Rz{j z2$6#Md}~CAEQWWQ*&egx0SSpjz)`3mxA!PfLJ(Ec2yPPhD0Tv>45s8ji;}Y2wC!vx z66)r}oL6ZZv#1HdD z*WJ4irO>97=^nzohBbvW+fes_N_VHPNIYtW_V|%(oZb5_pzQW+6N^3OK+EOq*gt@k z73L7d92=V>_L@(9GPnAY3xQjJpIw1vpG0ZEJX|4A1m#JUw2Vi@@`_Xet9wAgyRwn) z0;`)yO0N{%EdlOiV#4ve7&ipFSt|&n=srS;Jcr0^G8Fk|sf$TDqUB9ykkdT&Vv=OM zD@zv%-nu#M=6s9XRf>cv`P9Qy)IN40ES-m;JFD5?JS_6avTjcrBPjjq@C8LCNyS>n zdo6vL?(Ic%cXOF1M=O(}qfOJZ7(^b*PE!+=JQf{_n~}ROb)xW}Du=foc-mkDck^1b zHFE6kT|T?1*lCM(b!Du1?8|l5)1(r%*ER5_XpAIjcCOCE>ru4!Gy5u@&7x?Iv|o|i zM11yL^MWtFb>P$XJ|pbro^LlsQaoUeG|^-S92yXs<*v4V_4|i2&cbxq^xijK1!>-N zV=&2$K|*W+de4GofZM-7C)wj{!S9 zFZ%wAAYX~ktvr)j8Y-^e=TO#Tk7@<%2`tXCpoz)To!Fz+6VZ2)?~4w|2U}TvcS!fm zH%$;C{R3-_5R`8Vq=};LOyy#_4pWA{t-JV$DL_AYA5MfYEW-lq+` zPZQsLm;#52<1UFoQH-sz&jJrbg%a_sh|f(H^u`5cIc zmg1=(Ja#~{D`-2gKn(V8F*V}SR-;w9*Apn`g!HDUG8QFtvg$TSbPIQ*0h9PU9H%;1 z17=*Q{L0tHjf_e#hr%T-9NZ)M(Jg)Xg59<|1+v(F`)6yP8%9exAo1|B@FtCSG=Z6TXSp+4s%836XI@ll5$U)?NmzP1Z#qnP&e4X2C7+JWPZj3|9H>(J2^MiAQDx0wyC@b?0KE`PCIS)w461JN@Oc66F#5+7WW%s_fX36&T ziM+1OjJ@U;g=FSm$Hb)%nhnn;=p2o`*}TGEjcj%g<$8{GF>;x%>(txy=Gw|~s_AWFAiWmp+Ff&l}sh95@h^*@+ zpfB_5H}iVL&x)P`SK|Cs@F6(-4UUH+Z=9$DoHzHYCSB-%@QpB_d@-Y|iaR~r>B;nO z4_|bjf$DC)Rk-?Q{&PUT+F$khZVG~VW+|t#6kLx3yb-Jjzd{I!8kK-Mx3fEsQ_K2%4a2oIvHjfxq|iLpF>b z8%AVmIF3uLF({pm>kcokkUyvH$(ok_8go$E!0$>U2^S#-j zJb(8`+LxvXL}1$(+@LuyO#+jb4Fe#u)3AGF5nTU$FZi+y8@uKUoxlg_)+dWM-MT2? z@cPr^Z!1&A(QmMqm8YYi?yT9k{(AbB$II(DWuH+!L&A1+o)KYCOiAETw*-=Uno(A8 zcrO#~(5>TckWZhF1P|z}&Zi&nf;Qx}Y%f`%^L2$n-WkH-wR|BfG&Zk2W6q8AW&3y$ zZpL-dg_eM2QpNi>IANuC0(2Czjy5Qll=^NbUz{`Jug{?l>S4{-6)i-oyToz9knJuw z>Nj8i0-Bu$%d{2V@3YC|C&~%dX{-WNZh)E}KXGU}w>{!rL+FIZ#id%KwKal8H#%LD zPS0GbEXcK%2Asy&{npjKn0dwYWzqqAo&!_2{(&$Y}b4%k~84@`=b6~)2hCaZ9Y110K+de3JazqWx|$cYfF=+RFe zeHCiZw*5_h*}%buv!5=hhrHe;B|Pbot#Lm^7=e)=jf|4bmu_1V-YzVrLRykEWTXLw6KqrYB}8Y24K&b>2SyCGN{wfgGKZ! z0kskhW^wqx2-?)75pnrMIkbG%EW`^`XCRHeCfe0d+AkUw_tu=Vf>m+a^a=X6rnD)g zyV3oOB(wkYPU=?emz8UZp>I+2;Wgz!!LbpIKL4M`M4KAvS?x=dX;D|FxlI#*F-}@|ia@Qgh3*+^MdXELLR=o=wCzsjG>~NUV)MEIHbdU9T0JH7f zgNL6HJ)9VNGbOsY?^&n!28YKp=|H*J6p);>~q=%()h;vB+Q~ z@%mM3srZ__35Z${*>qj3kL{>6?j?|hLZ<8CZ!%OjovXSCe~d!4!3exi73vk}t4@E^ z+eopGewHZL zxo1Z^mSEMO?^D9oljMbub%a7q&l>JB#04GDB5zj(&UB=>je*~<@y*=Wgw^)eve6T8 zJn~+-3qT~0(C?G#UwGtbVk8;-AG4*X2S<_N42Y8mV@NWMLKtn+Sq>PFY{JX0bo+TsM0iW4(LXY%%*UAkqY5l7T>j|hERlQ_F zcJ@x@6oR%rK|%wC22wqU`ARk zv|~sXPr6g-3|{P|vhD*SprV`!or#77&J8jaDOk#Q`8KQ-oQ>mF?egnxl0TNQ``K9P zbWZbR@a<&V7=NT*b?ao;lACb9S_J`vq!oR6I}E}3Fjk%0={_^EmKMvcea#*A-LKm( zU&s}Z`6GS9ux<58Sc-$DyUpC|rIe>?*=BH2Yu&Cfesal`4hRa{M$h7Gqkr+I93!s$ zW8K4Q^mR>2b3s}FS%0|_@wD%a|D5}f2Wc5)gzj$-$dTI>_R}Y;Z>AK>&v$;R+*#r4 zHhgC8xS7410frWYPejo0p|4j}*I<=Nx3ZVxb(!Z(#JA57?(z-#`|>#7U0QcFS0yA- z6ChMh*NjBWU28h1h5?R#PYHR^< zl{Q`T3jH9Vz=N&Z8Y=Kj&e#A_* zyBH#3f`DyJ1}%I_&&?0duF+UI71^$E9`eB8qw%j1Mf&@c2QML`Lx~}3ujj6&4vSc~ z1__P{4oAuT2GXNsb~Q*9y>=xRlYWKrRF1Nfsxz`aBa-bLCE=OxaH_Ivb&Ou=}3CuNg7%~KqOD;Jv>2T*K_G06pWtyJv|n)pR43)yEoy zYcg}--7&67)nFk?cY+V3ukK43=leL_EP}7>W z&2pY?x?PsQULtafm1ydb#}_(mPlTTOSPp4A{-pIQ)-V}#JbjO7r))M5VASF@Um&4v zVvSDhalxoKYG2wInV+rZlk(J@^vO4h^fbhzc3wy?BAh~fr2m{+LxHjp9pQ3ds-D4= z!xCV6?y$_3j{#*n$_(Ni)4;dTXzdh_x1Ao4?H4R#pA#?oXbPGl#1wW<3=194gNXf5 zk0Xvt71^zwqAG#R$s1j)3%fIak+&QB1wLtpVkrB#&^?3cgR0YQBsViSB%1^pxeFtA zTU(Ni9X84Kjnn&Xhdh21`iIa7)SXEiNS7G5Yl*iEUyA9C)iJ<+l?9h#zKUsj@Mz9uG3U@M6Ei8ml$>S+Xz6(_;c5%lD!3A=4N6wur;MqOul=Z z14py271IRcYK=U!g_04%houveLuru*tHl?2uXr8RcxnDJB2Z>2Z%AI=uLK z?3NY&+O%H6-p*L~G4G_135-|L4z!1oOE064&bZUnp#*r{wbI!^wKp40u8cP6HCV zwkWdg>F7uX_1HD(XwpUSH-}wIDXnk@+>DesF9MU;p_kT5isQ*l+aM<_J4CL0qlS$f zzM9E*a~c}WQ>A#%6=;|GON$-MAG~OT{Uu@<#aR@YuN<68cp&e@-xtzzd2#i(K}V!8 zdXz1PM&IrGSe2I!F)SzwLZ5kz`_ks_0~%_dQDfP|2s1DJDr;$xVHJF!PJ(i^TB#8S zn!<9V!ZQV6?<$ON*I9ZlcZt#|;;E&rKE5h$q*EOoXAaXn8)3+Fg*^Vn5_j>2G3j6h zQ!aJ`UgYJePe+T%VB<}oL_xB9+vOiArIC-mg$uu#bBT99s5p4B7Kz-(HQ>x@ zqCx0k1N$=}u(JU^((oXlbHNf|&OqOhs-vAc0d4;2jrn_yK7yYl z7&T?Jz?o;7U>qP|W%`K4PDJR|E?!Mhje{(AlY>XP1a9nf`BCgu;HK(p4VXyk*`z$Z ziJoU+4C7R0`PSg64Y{{$!SLhvktVw>5z~3cGqo$+*Rz54%FmWptz42N9#nfLDf5`v z>E9{`Ejlr9D`JQ=Oqv07EeZM&a@4O^+Y)8gC#!gesSN3W(;QGT=L^IZwT zmRh_xFq3$cLnL)fkrmaZ3@;a~v$l1j94G*fG#Y|k;7{}JJiHfs0ht^!nvzg8GE`KI zB~!y$&0A=y-eX&-frOVW=Rk@S6WhYvyfJ_z@a6+zdhG^HKQgJ(rrw2>lG@dkuPV2D zb|XDbY}!LO_7DGm%qbv5?@iQB4{OjmooCf0A4Ff-OyRm0Yi4XM9Heb~ypgW_?DB#S z0#}U5hYH)hFV)R$W0& z8!r8}A0kBwXKIaZ+(U|~2wsAzao4kVb(>TY7D$+Feb;(Dg8{kmT-t)Ar!AE}hwP?G zsUY--%-EdTALHtrLRN+lB=!p^f2NyLN>}!;bgv1Jl()-F#-VL?DD~i`sqnUFei{bLa7c$g!od z+|B&Ht}HRqPuBSEJM}uABNugL_+QJ)auo6h$<^QJ8FmGvKrkL6ddmdS-ldt{<75gs z>r~r!bp`;j0IX^yb+i(83z}tiOQ^g91B^9=3A8iM(TRhmp87AhPUQ~zos07JC~qGb z_NhwA1-UcQ7g!3Nr)TI|hM~f+&0D00iy@T1_Yow6k^M2Mi3cg~lrtMm~iy?H~u1hmQOX+j_RTqM2!C${o_Ey!!pmCbptq0j z)sKqLCeyACoFYzs^ACNczo$Xs(mX#Vi7`a8aTQO5BT3q^ec;{tqxd@;rgGR-*9(o} zgfr~Tdj*bGWQ5hs;3_AUPQzTy2-!UJN4L@KR2vWVZ408I$pgQb%R2~~hxOt244nTG zN!^SuVR0SR&VblIv=k$EGGlgbk{GcGV>a35z`VPpU(2m~j=`$s)uxN0FWlR_By%4v zJ3u55AElI^bR0}9Pq-9XKXZHqJ`ZdLbq^(NNVM%B*6nbtf{#SIIW60k1P>3FT?Xk; za`(F^LJMeaGmO*+_Ew0Z6sL!)xe-ZnAK5a0wEEK+`Y%EgPRdcdooTC6*?n{rx3+c4 zc>wow8ChEmrz)3oWK^TIg^T+hK^coQN>R;e`e0>?KJ_cTt(v?x)9Yw}m4BPcU0FX~ z^UykVWB+WRHsP`$i|G8epGOzmYA%ydIT!*osF8ATnfgB6Bv*-R?$P&w1tJ8_UZ)v4 zz7p7-z$y!)XQ?1Rm%pSwwIxh`pUg^Zm^jzW*zSL`fJRzxi~_`DHgS%6#w?UyNB=`C z!SCdIFuu7*4Zahe#PF+#vI#&1SB)zPQc(b^e6oWil9&;isd#dcslLh+3$qd=*YRqZ z$FfDn{E1=%dmXB11>1no`PXFlFh!s8k5LO;i9gvhlg8WW?4v5TqV#>Mt)|GkB<=p9 z)hj*fFG%RdLK9e-iFSdWwvvPTTqm(xgTKTQ@9v{pw1#PO(>?E2-Z!Dz@RZ(6%O)&`v|~cW_don5(1pk( z1QWLf<%i*3SPcLu(kZ`%=PUI_)`PN99;th!P0gy^sZde$XZ?^~MKi3<{vFiDapR}k z#dv_H4bPbtLam#u-x+Y70+usBBuRl~3| z=U*X*R~Nlqqk7Dt$K=z9RwEa!3sUm+m6fX7hWdGjWldyH$Pn+a-24eLP_E-{xPpij zr!eYndqSt!8NFy@+;k7KyND_7jmar8jOW{4eeVKZ5s$BQrc3X2fui z>u$w%&;K2MPbT5r`NLgfTSFnjezj3?(P&?i(_|DgM;ria?0(zJBY68Hnn!#f7&{XcJ0af;1i=O0&lE%(jrJBXd=^aM!Ft83daBZcp-p!Z6E5;bt%(Qx^u z--paC?&XVBRhFAg^nMlX5OoDIH9D0FI|k?^c>O`SI7&+mw2QYiA3qNu+~-w#c`4&g zU{$@Tr&Yw%vw*m7t;S@ip9 z+Gd&RXF~A$H`{okvDzg)bjved;NVd*1bN$L$2UCdEr-1@FGmwxKFQu<0eeH|NV)Vz zzVA6M<(j$#R{1UyBEoZr?-`R8=ajje5+D`bOl8OW*fx`Udv)NAY~dzLJn_w*#m<89 zI+!Oq(c|u9<1>aD@e~26`#7QSE40(&HC@sqqBZ5aTpwVY{(fU5D>Br8qMRyLTQkti zX1YzB&l%CN2<1L_N7wuXFmvmvN?Fz_1vn^it_oHb*)xu{`g=v$(c1oPhCwRTK6aQ4nt1?gg?-G}}OPjL9H z?^xjr`84rOBQ8{xdV$5z}-Ln z3nHb=v~v30*XwAJ^`r0psjz4%$m)=1F7@ho{Mgt@0dkpPBS~?cf!xU`7THxigB!e3 zk$5M(e{1IOLT>TGM9PvYzIHBiE|!IE?)<8IPt$??dLzfZ96nw`wa+v1Ly?$4 zoo=S0A?(=d(BpgqFe!fc2<8GKUFMRDSNq*8-)Mw9s&2K%UWk)AA;&Jx9P|886D|V;EfgSoxJhTz$}s zFT$@r_w)}j*`9i^Od+++M`b&(WJiozW56jb^1t=yFWR3nI~--+3HJ<(^-Z4s9QeU# zk16bEkA;}bc3PK-20g|)$UAm_zu`f4Ap8pa;%7fEGR=p*5;Y0h#!iHuRQwpI1@fy z9i)+G&s~-*4Xdg!_w*VU-#0jKE;XcC+Kh$R3xy^iDR+BJwjp6_0%7b&mZh0P=X6-L zBDuZSRgZ%8qwo8Yw>)e2TavE!Nwtv?Cx1L)BI{l-4?N0YD3cdfXo6wL;n2%K|5aQO z_*`kAdw=yfL2B{W-;H-XpT*gM7NJ#WsauFBCsBAoODQH;F5F(GqVXuhY%xV_+O-Sd zNwOvYpNr}X8+1RVBH{<0OHC(P(oO|-&s5|`v?O&QCH%B2?%oETRpB#AgaNwc!0EJO zS)IjwTnd8uONRk zPh;xe0ki zgHP5o`*@ao?MRKt&u$1h%YO(uRSV$g4~*}6sGSNk75dTZl|PZTU?xbW|FoaBt7Kln*oJo;f?Q2)1&YpkUe2tI<7NVaShyp2l;y;LD!_>+7ateNu zrzSx__u(2F2(t4ppCXiDO|^(kZ#~g zl3{weD^TDAQ@?TkKp_Z7ojav!)^|;!lKZ{J@BG;y{~vS|F)?eTf6!yIGMg{vCT!8L zbSHZua!n+ea~Y+J1@V8mUMF}l)o@zgG)>c)+TXi8)?BpAb&Xr#^w)ON>A&G&&Sa66 zv50W-y0?Di^UF^G>stWR)4o$=mcbZe-rbDAZeEu*MwRPMy2rvuCfh*vzf>%8DEfW% ze98Hf95Th<*Z*A>`L8tpe?+kS^)ATI|J4Rz2FBowml>?&qnBs)|HjJ=(EksaW|!~~ zgSO1#a0a{^8H-3pJJ3v;O2_uD!3l_Fn5=_x-&;Ur?^6!e9B8 zhwdcu!v#?F6C-(7j?sl9bTCr=;;X#*_B`>FL7rhk_{wz+U#^?gi|yv;|3p{Nvz#Y? zTmI0a0Fe!dwRlLo^VU3pWFg9INsqMcdmhQR58rw$kk45NHajwt)B>)&!>u*rg@L`x zWym$*p$=Kpc}VDbcV`>Vt7?MQwXKjhMhg4C=f!`C4D;56BCWxm;CRyYy|d zAG?*@o@b5x_piHfChOK!AI387chJYxp%Cx>2$PNR;B_;=on@GeTcd zHbmeI_1w7*LhnSe-??G`gd*x^#J@BXQhg@tJ-tNZvM`WbrvOl6V;7iutdyIgQj`^{ zC4yiROI3yMeo-z`_3BY>4}TGw1HQ!gI}{KO|7!suu}#r6pmssNV1*XDbGK(l{RZg~ zyU;;#o+fc#?&`?;e%tseWART^MCDwJ((|~RKA-E;_(eB4!Q%F*r{o?`FmQ}dhpq)< z%aZ?qb}J(GV)%>c^SClXZ01 z0o85Qw;t;)lP)*TyZ$af$Yzu*4uFw3O|v7pj-xp7X{AyUaj++;y$#81l^R(;pJjUz zKQi~#!Fj)``u+qnS4HKWCF=kKhkUS(p954wezsD}jDd!C5H_I_Ih2ZiyfHjY zVo*RvB`IhN)TvY{`kpR#!T&8P5KLxgmgHfD=}POEHoVfLDWij0|4F?iwhO>_ zk12H!!P7|T%hs$gl^R(#RfO#8EqyaiZKUb;s<(ugvR?5KA8q1>6F&VRZ;MY|)^=a<~1fPOGX8L6q+N9IIus#gd+i1aw$PG4v zNN3%`TN2K)-{Bq=G66h&5UG#T*wjf`uDDgWg6qz77epM*&mLE(Ia@35=cZI6TfO6#weP*HrAMAl0cRot!v+;xzu-EMG7+a^F?Wo2Lbc=8}Z- z6N#aumKE=g=(UXbCD|Sshz|u!i1o5z-=%AYwC+1rvh*?SXb`=+{fy@0T*mu(puCnVD_<8x|qj##iVOpz)bg^3G8`x&shmk za^nZCfr@*5wSyO^PqP;f$UX!f;B8$j`mp$=X}4TW1)Y@1NLg_Zh75HIw+>&_>Eyk| z>7G>->6#oIq5?{g1zbR+!=bTL;L=U>`m;fq;G^_H#`kww*W2R78+W){<`RY~7idb^ zi*%W+1^B8hP+Qd;Otsff^EQtInOJox$qven+$N72K70dI$&-9t2cFv-zqqO6KaRnXN6a(TGoTza? zHOL$AdEejYBoD~)I0Zh?5f%Ad1zF8#j;tD!sraZSyDZ*FG6SzCp6_4Bs@sm8k@j{v zrkCW?=3^Iacd1ZsfI>(!5xyc?t!f5SrD#x16SAT1ku-xWeD|bvNhJi+-Drr08ZWd5m>mgc zC@Xsq*=)H8PA4l`MsB`4u(^uXTsFP!OEf@kUh)AfL6iRjOYk16Z5y_wxL^>(?&`g! zu8g%j`NNXRq%j3Wt}!1(!+ma`@yp(%U&6;41|^!TsJvciSId*Jqa}m;4X)1)W_*o?h?_jX3dp>w0v{;$$Pa(TbySS8$RW^u1DotdyoXq@2^6K#jXG{v9 zky=cjLka9S`?hB(qzrn^z*XfUzjnLc+9>a9T?ZY}^m|A4NGnq>uI#i;`Lw-x8r?mO=YlG6FS$Q$@V&7*kOTFfL3fy zs*%d-B{<5zTVN(yz=rMaHc-{c6;-zIO^JHtiSDhAw>RayE&hkF0@b3K(Io5K!1sj= zuLeQjMZq;W5AsSDneyg(!UwJdebTLTXR4I22X{Av`CY*unRc{{GrxunQv$V@6?B$T ziA@VNt=*JE8fY)VRulo_nAKftbnsZaPt;VqhW)IL2{;Eh|E~!>q2qNX4pRyJcG1xQ zXl37y?(iV^g!vP%vyjyAte^M5-LzQ=`Oz5G4cGz^RdSIc&1Zd@!+*?K`Tqm~ma){t;Z( zwd7PBC7exmM!AT{3(i2jf~ufK)ul z%u?EDv-UktS zsl-zpY2V^gq@tdD%bNPsC{b`}UV}Ogkm942H&we^RU?bMZwV7hy0$l-9X3NcCldA9 zwd)?9KL4(Vfz=~Fd!V`?q=*)Th0V8C;%DVvE48v!qS@gx5=E?ZPh_Y$jLOv#k!sv@ z%=}b5B>5x-WIIfI+o{v%Xjt}=OKX8vv5ZJqg?gE5may{Z1#{Qwg9*+c99cr<=HlQZ zYuDz^oUB`Y=Rm{)~6{Zk?i)7uaOpI`b(Bu*x@JgC>LB_TU53T0X zJCddtN7x$5B;!3wQlYFtXX-IuD{ldajb-$Jl;SJyz3pz76Y|;W(*X|g^0OBmFX$aa z50}$%%cn$?^?Wd5H!U{%JZS{iMEvF9tlTVA2Sm2!2dvr$r;ZazE@LLZm-qu74o|PZ zGv89O(tL#9;zHLKjo$q!fA&^WmSPj>LXCW8GfQDfZTrP%6qBHZrZ$c7=J6bCn^kZj*vg#F3MTP~pK;{X4M% z1JyE?wA6o{rljDNCV>XsZEyKvjATj9zarE)&1a+XE_g#>cqZ=EwIiTEEO+if6cGt-W+MIKk9XQRS5^ z(iZ8x;_bnIzJ=M~O(y1{7C}=RkjL zy_;-J9h`*ZYb6F5QTb_LiW*)fU8&{lACU5vA34Z8%!L~KCx}2fD@gPc@XNo<;EO6t z4F`vW`Xuw)azD$fi+k$+;SVCafF{u{q&qG3%d&c~yXTNmMRPG`%l+jTnX>h7#DJJL zrY8fm+Wh&~3|dX}%mQV~(~m2^X}?fdBv#uM;HH(Q zrAlVuukZSX+aK0V3w~L7><2XMAq@bk%)yI)J>St@A7{lfC*@~P ze~AC2#G@rQRDZN?U1|HR#+f&K^w&w*S{&$izSqKxk*w~MTlJZ#z${n@FlxuUw}+9r zn0i%(F*^)N4n$%-pt82R-1$tf{sDWXVY>e8!=VY6c#Goz}lnwPEgF)bzOh6B}a?=k+FSA}$l< z_pgmI_OLXECfDtszk#sp$&*3aiJ^7fvu&pZ{kjbDRF}c?*ph&6EfYFDjW3g{Y>b4Y zoqVH3GGjjfH(X@Vwsz9cFs(i%YU#4Dokr!L=_*M_ta2YR3|<_u$EQtg?eVCx&091|er{)dJovX;@Yy1#i?D77KgZv(6+OA-fFb*Ic*TJ!|aXILMvV0op z)#+BE8tA9De7vf0rRj_?6Vf#)nx&ZBSj#q&_`roqn<`5_iD?Jgy_I$&Fl+V&6sVF` ziMQwts%@qmzg0CJ%kxAx8@#<=0d|mHIZ{Q^UHy2be}{TY#b)ZhKwKv z1wNx6GfHtF2bho^nd9Wd!y-Exqrxg7Z*!~f+mB(7rk1lTTZHDtNTw;+`j#uXioK@@N@Be@cq96Ur zP@ZtH7JMS{Nj>!}Td~*-4ZFyECV)OjP44^>XzO1Zb$!@x!_*j~?5xc;b0Hq;SJyt{ zeKz?q+lH)T0B+A%t7((XX`%T*#MO}=DVZnV7x?dZ@ZVo=lfmcRD^z* z7wZ@3wT!Y!&09e4=i|+^?;mvnVtLj1U=v3}q<3JdYuV02rcA#{vc!VHKtZmIU5II4|Mf{NC=Y;)B*{Stp#wt*-ycr*V{uq`g)p zVCu(V6MC7U=UrCClTlM&6cAdk$T!aUW-)wz7>pimC`U6F%4Suoji^(L1T}{ZNaZQY zV^?Z)6(*kvNJJVcKGaw(--zFC{LmMeTH!7iUdk2niru(}zuea)LFS<1`1x1%iV^8x}C=DV}g=(91M;PZyTtbR zI&1Z5iPBeT{P#vC5gsITRVbwHRsFNZ11w^DF6jYnM`3}vKXe$L3R`U)PN8L(pV!U*fK+y z#q(zTT+7?%N*}F8GMTA2N2GLR)7nExF**o+QNYNSWN*{P>+&E^bPSy(8&Ww>X} zlpM9R?UVI;moRzC*zt@4cX(DlMcah)Y`&RK^zjm#u3VY(VMwSt`tS0(N4e|l1oRJoZAl750D?9ews14aean`7iX(-RwvAb%!Nx`&t$kxQQ+o@aQ|j}!QhOxjv)yN z8rU@m`%YZUZuy{02h1lX_Bvg9JB|J}`vFumE0E0QCeHe6XGYCtqTkIUWy@oE?+(}6IKo?G5+aclrcF$?>SRi@Io4% zlpdA#9eS&07R}`|&bUI})K59t`T=K`<{q z6H(2m(+`-1?mU1cZI9KukkoQ?=c6kTUkK8e#M<=C{QRDx*F5z#A~avq68=-Twxh$f zz{6d1jlxIbJs}Jwuqi5}VagIJQ3Rgt7&yu)N95KVu-OwSav}bn+*T5jcd3h;jK>7i z1$L|FN#&BN%G*-*XrObV06#t7Ci#Nnc1|4)s?x_rNo4ny%*n3$B=*~1uVtmwc0Ev zph`?DYm=yZ0besP9+YmVPQP=P?rE-T<_gQR(t2zl$o#l~+T+moGDzCbs@r7HEdd`5 zucXr2Vtm~kjgtQS;e#|{7q%>TYBFyd_D%4dTC76S3|c+5RX}rEV6U&5Y@-|B1L4S< z$F6avfK6<1crJU|k%A(Zh)6)_{D&eZAdK!4iX0n>8lZx~ zl2aTo)RvYO>lqp)tmx}3pRYbq6FhA{2?M9(3HiW>horZMrb<@u$uk0;B|4_3I@oth zA2;iVH`DO9K`PghJ=NLvGfIq&wmuSSk=?hA>(8(02B$*MH*3$1+9i_X-U3(h)T4h z++pyYf3(Dgb>Hco+~Sobbb^advyT50&^r0bO>CFYnA_`z(T-u(3e&~VbJk598f*yw z!n#HjMpO|&BCCryM(2xUTth4_F6=A)JP|B66OzgoQ?TiYl3ps8QN7T+#C7#;tG?x+V937E|0l)r3( zszlWHr8Ue+M;`^&MM{zQjr@Qj(G~}>oS&iH`PMvCAt~85m>wlJ?lzuWtq0(4*DbNd zSe^UIs=ds1+xK?XoQKC$AF(MkC^(;I|K+k&I zGfd1iIb^9d>0&>`qoSn$%Bovu*!mOUQs*3|nu2{ou$VFd^wfn9rpq_Q6{Qx5o}pNK zZCBpYwo!s}JIAk~AGrwrx;{GPQ#OicoJ{t3E zwr;iBJohrE6cmAs3!LzZprBR5FiYkwCnK4q0I>(oxSH?0;?ofD(ysH10_j$RWV@9V z-q|aefapG)psd^t?kKW$>Uoyb9ezQso_l90sge&-!o7$$c{DiqBgM)<$gV@e<|*_B zWA4};g?Fnf{;%|QnGDX|IE*=Q152gcqGzQxQ) z0|>afJ=MD=Yi=h!gttV9?@t)N5_KY71Z(IT%886KM3dH`fW@}t4CsuHqnD;P=^Des zN#z=X4z@a!A9&OmF4(2`!L)B5!t{k|FCbnUEk&9 z2dm>8KOEL2`y@$pr;5M%Cm5`m9M>Sk!?&Ev#7s~j?`4`?rMU7Pjq`E#|D^=?q37rM zRu^3|$z>daL%u9d4l zVB?!dRC|XimJ#@Fsg`W;tz(}!LggI3|0wo~P4Ng1-urkm(*npA)j_A^`?rR58Hu2k zy}sRJlCxQ!f5Jce^t^&@so@ly?}bwNBF*lxxGiU`ykk{ne}rJvYP-=J!9?VJhmtha z9M3hM$X+)`ix@+9USp2{=~PP=*TaRvdhXb+gnIDrCLBIL9ob=!41j!=aA0H~Z-F9f z+%~&L_scQ8JWHP9)OmCTf$j=!2Iy`2E|Uyy$;%%S9f%8)cCmWwrq35u=jz?ATDCz= zS`mC3?2>cQ(=SD#z7Wv_49B$o>{@lUwltO@J=RH@w(orzUi=8Zy7XTMzDgfjuZtsZ z^I_d%Pqq(lkH`&)6VN>5NT?f25`8W!7EoCdoVPGh$OBwe(&ge%Ew>VZ{6c#oa7uBuC!|g4jPs=jj;LyeJ;$FT4Y8Fg9gR@pSJ(9dj$nQ*Aoo0RC;8%3 zZW$vyrH{sjLH`Vs+vm~{fA?0d)EHr~LX3(}$LTYSDie$D1Op;QX0D6-h1w-n-HD(uVcqy)yh6#viTR$sXRaRU z7N1vgcTE=V5z#_<67=`hWCSh9pyMqZTue4SG8sB>kv)t7XUIgs&z#d2gkFL$rRlpf##p&}}*hdeFEiG_{HQk*5;hx}wnDE0wk(NZ%YUqmYs>?#2F5F6hd z*d->BHl=yiSmrDd>PE#}lR55F2N*06?W|5re!zk7ugD&$=df_Wi*EOjstxgWN?ra(4Qibgl% zaJq`ybP4Exu#tyZHp+u!6T|2SYr;qhDm^ZK@DJdZ2Pvft2L)d|z$D!|Cs6c5C0NkZ zY5CMNMd!Rm?K77UnAd)x6Z#GnT=u3iA9wlGXz3)7q5i5fbobgJRP6MKQuVjcec_WQ zH?UvKN3`nCfhaH~9RNwnHDUf>da#BUXMUgyk9-=<>fu*xKjM&;!qGk~x0zeZXJbthF?9nhCv9PWOsQB3$JeT3mu~!}!?} ztXrfita6sDeA(?@dMQ_ebi`9Y6OA{GT6pxxE5Gg5nqoOuRtieEV?JIa=*24R477^R z_dU}#^Vuu)Kw9~fi-m|J#KWc2z6b!jX zE}ST|(j8IdZnrl^FM(+(5xMt&u)X|w>%IA(@&BKD<^Ss|_G;c&ya-Mlxml8ZZ((=4 zbKj0=x;Sy=fGCdPDoDo?rTn zV^T2u3XKf_t||JBoxC*%Is_YNvbv|pMX_f@s2AoHJmR5&N5r$;|cso^W6BJ3wD zT~eDdF2>_;hkx{OWrx+MtO?74y<$S4|D19doG0@0D!(R;o>u3t`Nfwg4?T@8JC<3* zzdzm_s$W=pUUDq2K4s1K4y#7BF?2-#!yPL$+SG7CfAkVQA!(6^H;Bx+Ge@1-e=PD9 zJpep=3zjS&Ic<9*Q&6=(Dgx2Z6G)xUahO(p!>s0!aX4-PCD$t|tWizL-2N!qg9FFV z$T&~pdL-2=m7%ysI~)#2{ct&bhm=M>2tQx_+gsI(uwuVs!6u#d@2Y0i%d}NK2vs(K9lJe0+>TrK z@#sfS|F}_nf5E9k84A%n`E~Tv1fK_0&26SGIBY+#Hr+yN*$qw{X-)^pyadpD-QEd3 zVOZ)#m7cB_rE=#eBTG@RgFf)DqDpUbfIvuR=Ehq>9ZJ2H$T@s5I81_D0oh~$KzG^) zWk_cr{}VQ;HD>j`2xRG~D{GeirPcv#H$7<3lsk+dlT#3v zOO>f|N%1nn7qod*pz9B=dM8PWH5=BKi<4{4ElSyl4wUsQ{gh}W@af);+sEIQzzUe* z$z^z%>w&Ho=jximtyKrh2W^)q6%T9_A4}CflNLnqO9g!I;a(js#H}1$&_D;cgoEFo z97fv9enOq0+4}xE0G+jHwvxu&)cZdd}Ag9 zv;0#1PZ!anIk{Fswh@28C<=I%R}EC}mrs|uT@%+R8%yWySrTS+AVyuzRljZi&Jeub zQEtAm?C>2Zw(pS%pS}CIGN9Sa@6~LzU_LiCPtifS>Fy;)y|U5k$k0!LL+Tnd6P>Pm?&v>AD@=r>eJA8bRuY_o7>BW zqHJzw4jxV!12-wMv%<_f8bJ2W&plAO+{o)+rp$ux_5_t#l&He{j-YMZyQAacG&Y zwj-Z7qDi&|g(n%w4#U5kqf^UV-EAP!$hb-?HA?;K@JrzLpZ#gdAV} z=K8w*5I>^Q8+9D$eI3B_bqUb|?$8cCXzS@dk-ZFXU1Pcb@4F5J$p6-H0ZpMg=VN)j zS1dTaD_gXQ(e~J_^oFuJRt`C@&ZXYRwdMD!n4JOnnQEJw=>+-T$FI|l9vQ*-Lj59- zG46@%E$cv=&L6ynd^-PA=0%8nBs_iCCol8f*LGW{+B-^jOe?N?Nq4vsA^u$0XY+34 zvxs7gjZVOWNQk62YmrNJzb{cnU(IWHRU~B#E_Hy2ta!o(Qgiesd1kcW0N9p4o4%wA zUdZS<{jXR`r0afy;h$&*JsbkgN39fGW`$Ru|G1SEson)+q>dYaIrE+ zmk4H>OMy!de$DAM_j3l-x5E`1JiGum0pw8DVoW)e-K>BY?t_;+UPd>nG^xV=J-+)C zUTMkpeD$Z*(~48xR0=|q2c4cZ8<3uIA1F*M_=e+qMtl|}9c|AI`qbSzGfvkV&xD=z z-;wtz_xy~b-FnBqT&4v$gn=ALemC*lgm2*oh!N>Fp0(!^O7vE_v z@O-R(Oo-E5qJt7L=o=5AbXvxjy+hd^a@C z9)MRHSsI3?&KUbo-ezcl;e7SS^}eK}=04_gastJ=ypfXhef8Hrs*3GPFi6g8_EDGl zHhV7$VjW7!>aLQF9cMo+{6aofLi$xsh_eS?3MBUXs5+a>-@xDb@B6jr*WY(Vzz@@# zzRj`@vvTLV?plF&lQn<%IQoT`5DjM&{qr37vqr4UXlhtKS$boPVB;uPvB?BxCEIiH zC0FE4l3WQ$WPb**i1-n2*M9_-zT;8b2ibt#^1R+h5yI=njt zouk)C?BB6#BEZ(!6A2cNBXII!Pj~Aws`J1toM!aIeuon$&P?^l07nN(3 zx5?(LcWU~oM?X4nDd)zvUT^<3SW0!sYO0}oOVO1#Omz1E{b}jI-n-XdC^{A--N{B^q?)BM(VT&O|&p%agaVF z-`2vKZCSkYi6h~+V&Ygc^~jE|C+E~an3JKkrp8*G(#K*eHDa5^hZhA9s?i&$D%7AC|eHzec@ z*$t^|CfN0aUZo%te%N={=h7sM{?bIPpEFLr))!D9d5yuP7P*Lthfj8Wed>+5Nrb1feEXTn$eEh%78gdsi$UKf09={0O`c(&FBgxpX zqju8NgwR~K6~9{WAoBJ7WK7!DwC0E$7x}pDN}iig;~Dd{0nC(Rr+OJE{?=Web*pLZ zHze%|*zd6Nr{pI;j-?fJGPL8`Cx?#(K1T_@iJ$kS54?N!TS-*Kpj&xcqPmjejBlq! zfK*?NEgDw}KAqRdDe>3wj=|Z`nwXl}r)_3RhlhtJELXK}{ zxI4s)H8d-o{w8!%SJ>xURYL`MP;=1JGevfos@v8hiI9e4K|~%r7E6#So?@TckyN)} z#gDjg!A%XJu{4(oPDGHtUfBYLp#-z1prH^#61c4;-CtF0xts^H!ED(dR z5i!;cKCcQ>eNDxct)_1H#FU@n%^81!VT9)hqp{U0qoEV+(@AYV^YKDjee5%>y^)E- zuXz61HfI+hCq?rUXY(&F}T#od60NDEu#rdt(BE^vVx){(IUOYIi{j( zMzFW~`#Cq7mDrU5N?{?LE-NZOM2)%S+M7+urcm5}4jtAk{9|>*DILCo!9F?U+j(CNurU0FaHMv_sfC;1ElI+DEuf%(>lNrV z->sbtCyCcZo4DAr>lRu`pslaA|G%iy;08ETfBkx@bBPMoO>Rsex`tKa+dBj<&Fyk&qT^uNYw*nc-*+9&_h+V*!(VOZw-?{-X`R)6mGKffFX z0_Oi*ftVP4>jwE>L-K!kJpF&UAjkLYY%U#2%4aMrUn(kiD=I6C4JYH*%D_XWwAL~g z8&7u9*}u4A_nLPsz8WQmWUgQxIv}T^-iGQuh+Gdu*Rbav-za&H?V%`%KtDUe*8N-c(CqPM*Z? z;{9xXda@N`vwNDxl{wys{8@IWdxpis-^}Hg#2pa#BwNnIl=O)@&AW*p`oV9JnW~>a z7}g)UBlw3?kB(8q-ly)yEFgUP@%lF|q*M@;{L52EXTNT}3yPeiMh2Aq>sUX5zfoe{ zGVo;i)$<_9e8z^%r21mR;I*)-;^eyA2vvJ}kG1)L2Z=vO4(2YFKR5XZU32q%%X=V7 z>=anMSrY)3s-|pTPjMt0CUVrNjJh=RxvXlhe0MVm}t=F&U)Rq`_XMJ+6EhP97a=FdA5IMQD3_ZF=XHBaVw-358 zKE9@p)*G_M4o@koiiFpJgUo8|8Ob!yto{8SI?gnvBCd7+UOt-QHna3&nSoD(<7wS{ zlW8hoI`ev8)1$4%c@FizbpPPU4q!<)bgN5^22Mfb>{83-e!e^x!z&fuUZSzEi?4n9 zHsB{5%KDILgGWD#SOsR?k*y0H3DM_6yCfbzEV`)^3lCzk|GuB^MqUJjk5C;~ifl0s zy_YIXuKlJ>vxVOybO42uJi%tL+O;r{!Z9y-2OS$L(%0ZDar>x@|4d6q zStg20jJh$TNL>p@v`#`f{G%`#Vl!5P-Hw2B9gehM<-F#L>wSK~rmLqo*Sc4yl*2fq z2z)s0d?K&CoK?W((pJQz?&YRTyKz}HM?rNHeL{7Mdu)z>I&KTk$a`lIkqbKt%7iA! zn*lSe`XIQvp*BtWm5t2Y2ONYnw0WP`?;I-HtxcumcOZE#95M}#X%A!n^nR^5>bdN_ zsip%GOK?&1=c{VW1j29KG9n`SH|;B2l#*bPgIpEyM0ZM_;umFSk#R7m4I zq@R2l8+B%$7ky~W!zYWM<5ep~Y7u+hMwmeIrgBJbXz25a$w|NJ6qP^};=zn*URq;Q zYEq*>J zNF~?5=t?zR5#xpjci&jx460(!<3{cdDu`gG+f-{(8xM#${estddH!x_>TsW{c<0PJ z>h7g@z-5#<||FmEH#Qym&utYv}ZaHey3r z<DTP()(7te^t@1x?;fdm{PAN@Bsphw*CIm{_SxE@$MUi17U5BuTylke1}=L$_+9 z+7k&Ha9tbk`liR8fAHh^Y1(^4`#WMA{9DP>k9}1c%*<@0z$JXf6-;Mnsn0qL+}6_| z*eyo*cE+0OlSfB{)i?TnI}!P|0bBeu`aWSVhDSVX2s_gn_s?pMxeF1>EnM*_kzNT{6NG9jR+yB7PZ8ogXt-{O~g8 zxsbXD5&Y)#%AKl`QD2J}RC@93M8v7WPn(7s{=M8wq`72^-?FIWUZKx}fA&anf$nE+ z%CBxF*cTAlZ`ZkhF5zj@UxqgP~;|H^#=8{-e zipRn)C!4Q^GRxB%9maHi_2$!FPJIv0@wJItF00z<(s4KnobBQHZobM*eKwpJ-Rw#KhOLv_U8i4^#Oj#b3 z)L^T~4R=A|Brn9!?5ru=7SepL>QkUCCYqXpX>=7JqL&=Go7OUH+0h^AZo8n+&72pj ze(&@%F-)j&=Cs=YhZ=tIz+(xMa^d3ZD(n%4^v9+`9OBgsyZavMM?L()>kC2@Vw}z= z_GZWJ@k|_Y^k+6Go@`G((fSXE2NRkCC9ztTNe=hZ=q9p{L95FDiGWmfZZsbe7bISC z8ChLds`s98QuZ#6>xaronH_$HiFb;orDSg0uf^d#X!CCORc}&^L9HK2 z>?E~Wr7mB68B^pc5?cAbWnZERN_33je6qij*tKG{7K3r$q{Gq`Cc=dSKS~?iDPn>Q3>Xp~9HT2O# z71vS~)6E@mvx~Q^p^{=I8NM-Ajix_TO8M6@4?dp2<6EOJy6A=Vdp*y#5H&_FC$n~9@n}DU86rNnZ?BsZcc6S zG2OWnJ9jsClN@e2z%BS!D2^7bPY^iy9yk z`;ZWiHq{76t3&f8{@Bnpqd#~}9n21jYO3;Za;Dw2oX9RluV^W?m~r^w>|Aa4uG*tm zLsZ*@lZNbtPE}v6DIkZx+vIX$p`+kxV14~DEW~nc{bIQ{FZmiA2Tfc>^$t=aEhp)`Mu~Uws;0{%8}_ab+8k7m?3F4 z7|<-2DwIXM?QSjS_b5X3-9+cl*_^4+39Tm#CvgIEMWKOZlxX*QMHZsAy_uf+$C1e- z*90et@%rx&3+A(}Ep{KRF~n90`$4?qn%(rnM@hn)2_fkPy3j8DRP8D-Nhx~W-+U z@7f=Hjac9(YjAr^JW$+K5usqh4Oj8m-;;innyKCF&ZvPQ*I;E z(Z3GR4B8R5H?tKG<4JW*1F~&PituUjszBY~TbKJ;2#G5#F7C z@F1jk?D@+tV@Us5z**hWw zu=|~xt1Rh>>oEu|O%b9CH!@FjO@N!3ZGCN6SMMorw&d?Z(g~-a*F3JucBxQ-3d2kq zpO`daekPgtBy?-a28iP_mx_Xk;d z>dP7!z7E#Su!p!3zV8{?m%lXCVJDKo`Ypl#b*Gr|u^3&%XI070c4-Qv zw&r)=?JT->;!qeKw{mAF)Pu`w$XD4Tw&t{lKQD2Tv5Kq(8R#d{DAo7THk^s~EX4MX z?q6+ea&Xwiy{o3>i6|^KlUnN(yNmTgzsl@9>4KcbBD-v_KQ5)VsALl~5)(xk?y_O& z_RDN7pZ0e-^WvZh$diMwP~wr$mgp%b%j;?H>o5Ooe{apco|$&Z=72HoGCB7SG$y5V zJuB!7^QslH3(OLJM(N_5PgML4>7W&@i+NveR+5Ns?F8v=q4=oOb{Z1uk{82YCS>Oj z#0(TDbxbcXW;6)Sq6)Cp< zxIXfm_U*=+`noO>mB`FBZPx+fO|NlFue5houJ@dj zzHhke^OYzs%w(dINlV%DD-oDV?nKRxO}slL{$k30J|`x2;zroi0Cjr_XUqX3?hLnn zJm6?ufrC+$`gd)T3;grymzv;GX86P_%F*Rc4@d8^3>4GQk_5pkI@e#k4B=6^m zSzZyZ<{;k4l4X>YaM?CSf_O}CBF(mB<$0v{LHHTEA3|DE{(4FjFk`anI93*K@}?B4 zJYZwr7Z!QQX>eAzrFxNeHam1a74PFQXuMCh<{ifl?iQ%qCzGB;ll+fE>mwoq70|0QnmzV7dhh&1@6FWEkj1>hVvE8S6 z_M}zl~fAV2%iLe#&RIp7+AZjPeMXrB|P{mZH5QG8lg&@i-1BK{G55D@`) ziPYYQUst?!Z^{5g@rv^H`Y>so<4GcZl<$B1o}NzPF+}V=y5Ne=M-A7OIGad+#(e+o zCg@xVHg>~Q>Wd%^LzlhGV6U4{5u4CT)qif}@&(X%y8|J$SH7T)jaNqGYA+)0w)5t3 z;hmc1_fhl#*s!>>g^r!m=vM7^=|R~4Tu710-Jh%oaAt2Qa|#FlxeJd6y@7kw|Hy-1 zP~q@qor>ZezQ#Y_21M%Ijg7eN2!=PwL@EqQPcE|l!pa$`M&RuH{)uMypFz~hxx1N+ z4bkG^Vh~h1;oy&;X5}_w5~ku$+nCKu(E7)v3yVh)r)Ps3FE?fWx$MZzSm3wK`_!s< zg8ZIAsjm0Xu!%^KD9!S>Gu4AM(5Ff+Qnomq{UV$<64Je;(b@kh$cNt zi-P!gvcA5)o}r;CCvDZ=2y{VFn7D^SG8*Q)9mrupN@4%Y^UhnouML6!oUsgd_8-*Z z4<<}Br}VGZ-2krq|2OXYUjWUu!QcH2ZjOSYsIBM1NcRhs@Ot{}ASbgXz%l;Mhkku#1LanbivUwX=jrXW8jp6=<8>k49--fh+uc-< z1J1)-SQPg7ywgp`J2Tj>(YOKV&J>^|BDmELjL4l*?C?C5x>q9WzwR8_fIH~I^o%us#w@am%SgIq9cK)a=j!+Q?1 z2~O2_K{%u}<1nBr_o#mg(n-}1%IaSyIT-m8A!YjOy)ZI1P%9`hLxkejA0AlFU-rrA zX|tdnHQ4C-tPOqkDSuiN;JxFeYm~%cyu8#*`t{^wlD`9{1cA?s6=k3Dep-YeB~)-i z>Cff=S|n+75{c!59*u|yar=q}tO!^Mwh!=!%9P;$Yho1xW8o4ROVZ)Rg42opV_g@w z8vh?L1QF5QUw^I^^C_UtAC@8heEB5n|9jry?qN6qx5EBc&w@5l5`Stox04DUHi7|k z`tWE8htwsbVFso(I6}gD)^&H&?8qxnU3I=+D)t z*m;dg0@mOpa-j;kjroxF1aaMp0()nZ3PetU_!bEz&|H%odq4i53e7Sw;f=kZ;8`aj2i z`8q`gHWa~s{Z+>Id%FNkNg32%EYm-e_Wu^Cb9bN6g0r^c(K{gE#@z6s=&OQ3`3*rnar|s?Fs%obH@DyU z?zW-ucKqR?kAvkp)akfGyQZZr^h)Qg^@wjT-dW?F%pBN~5ex$K*oWtHq#r$$ouldG zrLjBF8Hh=1ttW0SWa!EYi3CvntF}KDR7EE12Hjbqe9M97OY2y`}B8dOVvW>*c38k1|leg4gyv94d zd9L#?b@;d#(?twSz3<$q!SCINNa|dMKJb3wkW?DdOPN>Y1^mhO8nj~)^YkUHcHj5q z#;d-=nxe~R)CI3RTCUv-`IpWo*>%_}8?-R3!W)g#nIS_r-j$%qGAHP!h-+x&T--sAJqqy$wTv%P zMCge8>M(f|$< zkki8;KxVn1s_N~R6NtCa-iNp#%xA>aS8x}AH(oi~oz7nl*wV*Sg36sxfoMj)Q!qeV zVrX7c-o&epMcQ{wKP}n~uYN8PL&A4nt@djNm6-tg&rdS^wfMJf`aym1q;@eoye$NT zU28u4pf2vshOw3eoR0kTtyR3`^qkm$809h@^mD z5Z|`3qRFiJo0L1_T46T$av!U3tJiq*FYYTFIqSRwOQv;u*E0PF#%os`)Li^!tzJM4 z`y5m0YM9{c+wl^vx$d~s>T_dJ(ZY?*kR+Ft)*%|yg0}*7#*djvR7F*vrxpA8!gHx= zzyh|j_>s&}cpo0TxrM(67x8X1X<=Fmi)6P|}adHa(kE&UG7x+SX+Y z24faydksuYdZ5v7ZEqJGPMj2mvq~*yOzjGwYCTIwx@TN|R(vPr1>gO-=$=l^>>hAu z4pZ8K-@1pnr^G-UI;mAjc03^6CRQc5bwU`pO=$?XKnW*`H~A3t`h0R>JL2{Xy50Wc zusMwwQ|E1HS^|LZkCUWMEV=pltt-w-(_#|uXb&4|nm<_;(^{&dl~GElm*Rfs`guc9{O!8wSOn6s=)GY<~C+efOZ|RP-D41!;hbNYhlmMBv^~=0U z!QidbcOGLyugEAqw2eeRYuLBK=#=&t7vCKl5=q-p-Dc?CeCCwk_^m4Mjrjo%B8y1sOf$aL zkNkF*-jJw0fR>X@FeUjt9ZzhjICi&=j?R@EU5D62NXy&s zR(IKX_jSnMs-?J>z>@n@cK~Il83@$s=Ta>_+aGbSq#xWG_&R@ByX8{Fls{Kk^)P){ zbYT0DH**qRGgV7AZ+@8G7u=yD^5HVw>@Q0w!QbNIBuL(#nUC{Cq(b{fcEi3FW)&K1 zzGG%LVvn$9SlRyAr{dB13`vuYwa~H^AEN%VW%2bag=m=k?$FB5R@`#Vq($oDFI?97 zL`c)$g5Mm?e6K4TP-dYLO)PdYLV_;en%&bJgbt=#vJP__BZpjvlXnX~d!Wu|&t}rh zZE^wpXfAJ1qDAB4|Ar~byqNbaj&zZxvk6SG58Pi77d7TiJNKrJQjJ_kdFeV#yh#TijwQ({>u9cM_@U zmT2C=Hjgz?l2<~TX^idl$A!fM7&^Cx#aip76T6guGChjeahjhITlGpF^n@gIp4SG& zSFMn-{n8&yG{3(`aClPn0HFCkQYju+AU_fjFCZoIY=N??S1=40q-bX;LBJt(PCKn_ zIfGm@AHJNmmnd{xuDSi*l<_!ToJzmmV11g)AE_5z9nW2u`eMz-)sf#s$}43fs{n29 znE2+Tvb0RYRIYggnWM#-5?a#r-l|no6OX~Y*7(~B*cAlwW>?U4pFT7zh&LA%gD$7> zn`Bp+Thd66d92#9!rJF%i*(8|o-y~oHBt}fqRQ{#HjxXe*!Wn;^e+}isj&au9!<~y zc^)qcDDCMd#N}=8gAD2Y4)!_29NvV6#G!{|ll^!ReW3Q)LeWT12^(UM=dv9@U5hFp zxGkt8+}zVJ+qTXxkSK;s<01c+5LGA;`Sa!RBPY#zpElImWQ;w4>WZo)#ovKbx}BxNyN`3Bcyv9rs|=v5#-ZdhR# zxB_|{#S^;OjNfvnWsMv_9=TCyA0~KtuVCY*RjM*5W2J z4KZ>GP-&}YdXUxDQq%JY zO;!^uD!f!e5H1F7^If?GXz=Q;G|r4T$cv<#guO&d}H5NDYARo>+~$Mz0|?js76HE zWpBiABFV3Z68SH|FOjlhpQB=0xn-+uO9-(ny5SkL0D2un<|a${Q2=@fc`#x9y9lzA zzk@6B5OXDJQ{U&@iEfPJHJ5ovX6nsT4W~L@R8%6PCs-u%&uSh0@X+j3+GGs>sHLgm z)YzxBVk-iw6%`$<8+R;ZL%f1}0UqR(&K<*6$Zajc0X z+&t6C9V%{cfSFdVzl(kFb`VJ@n|=7U0MnU2eeOcKiVTN(!ZE3CvM#2VW{_F@TNiJ`aE&b+9Z_BoA#W~u{zel@&k_NDc& zor>l(ntwD9<(Z30k4(U@{pGekWGweouKgsp7uS^5CcRt&NheE{ekoDG4|EQ1lj4-- zI#j#f#%@WA*MxD>&BQ;{J@bGE$lDFA9_++ghUwPCLRZ_|1PsVwaG}v46blD}%JG6; z9eEn?su7|7j%+)W%*~pL8Z|5c-I+EwZ&zfZT*r<iHb|*LG@bV-uD~&hlBeyQf?S&xXV2*A5Dk zQA#8^kHY0U=J(u(M}wc{C(e|48jDgm4E z&)WjSftHCT0`Cu_9E`$Mj5h(54)yf+UfvJB>SRpy;`Dj<_UY3yD+fG{L!$K@B$V~N zc>~5PCw%Ij)-kKc(*HuF?U>^D9&67!(xKwj!bpY%(szNb znV1QnbbsdJes*IEtEL4VnGfAuEx zF~?tLVwG|8Z{Ww_rC0_M!hsO^PsXPud5A59;^}v%2A*X$F}c60EU-^b8p)=|u!as# zayV}V-r2_TPa1tz)gM?*AkU@ft` znTK3eW;k@eNyO0o;i#j4;VR={A5a)V%OVh7*HnIWLRe*N7^latRf>8zjNb$~FzyFr zUG>cvFUF(6Fi<5EELu~MwjhCbQ%O(NU0 zZd#lPj3sZ+Bt_a+AHFr`TB2E#!%}E+Jw?U;d4hcvk~FYnJ)6xCzk)~AA%AFkoA#+6 zcUv%Qf5xi6zXNW1*`L)oYZPnr8OzsoB zE%|B6^qIO`b^!~QqO4QYpkhP;|7b1Bl1T@VZ;C;LyIWNm$XHo2gWTWsp;w4XrnouHBu8vh$6lN%h9IjFFEe?qr8KZ2E{+Zeka-??#de5muUQ zZPNFFdd@yH--vnrgD%jZ5;~rSsI_RiI8&Z=`GhW5iQW?auEa$obWSm!q>j`*u4^N= zT}Is~`)bm!IH&X=@>#)bY%laMb`x<$j&E`4%>a3FkR@F|{7Zgr*cCnG=lS=a?Rn7Z!ZleigK>BB9?`0AF8tragl;+gQgnz0(#R@8ZC}T zCoQ0@t-Jj`cJ~xL-)yATdC36#pVqUi>8XSmY5fpsJ?+(Rdt3TWo^`3V&!9A#Q!eIH zkT7WPL$Jkdnuo>d8v0a&5#{tSg`qJ1+fS~S8`pSV10cAGRRU-P?XW%NID zh?f`Vh{2@ay6Retlf!OOw!J_j#`N*qD$~~DtHKXqlCLwN6qj=ajp7(KwtK@FF5pVX zmaNcv8=nBu^Tz1eZ|G6SZg1}P5}E3wawfpy6}c&Ax+{HNENmFYu5g>eD~6l=o04Js ztvK&-TpWQitJm7G?%ukh!C!^H=K>+v^&pO4f1jn%otXtlG7=&p{M2rYs_Kak2n0o& zU3QFajtU*4|GpFeh5z-T{q9?;)?gxfvf~c+vtsA!&xS=Qze^rFhW}4c%>O58`aic& z3S3)Ro0!3>vDcI~D}A3RvcDJ}fFoD%y@XFS>h6|ZU;oWVjp9Cau=4*i0OewLqI{VT z-+o=)>&)}fia*@Z{|PekM_LEyTHH7SAS6UJAn5N8eZ10SAS*FOh>bIOTV*C^Fru^{Sq2TTv5ARyVk7V?okxZfF5n3U*Di(gzb3 zP7{Zmlx;hv-S&QNKSZAcp>AOu?Ba2v!Z$N61)BM>VJ@|$iip5cdTCCPKG=r#!tAj~RcAjx@*d7oR%u8_kn1hwNWvL=ENV@3iB2$}lS7CQp0r<@k)lMWuJlB(-@W3;9ly!D^J`#UD&1T= zf6Cs?8W75Cf}Lda7cNXao$r_^Tvo3u&RrUN>_4l08%~SVc^miYBEb#|pF!+GN&^MG zw)-r{5wmcsFc?zj6Z`SqXE)z#@XF5%z93yXxRuo_mv^iW6QBPj;JM7B9_Mbik)D+z zEEM?Q{W)=;fb*7sF8^L;MTDv1WJ&B^arxF+(Ztg%pRJh@)?`9Z`E-C?a*jgD?p3E( zHvMDR2m{O4y!0vrn0F|on|D=N5qaq)m+UiyWSS)BNSV;UP%MR|1-1Y!2puxWej#uX6+1bB$6wMm27h1aF6XePEC(XZUVws%hu*x> zIuI=7yzsenDY5^&Z)C<<#3gRwv*SJ6yEDF-;L&iQ(sVDSp6Lk}w-}X8WYme^p)*r-0=Mdnhi1n@9>3J_sQLo+F?prZM{R|o8U3K zu)H&FI#0T&`;P%R@lEBkfto1@_)^FH%!Yp}+J0{g67ST)?NGF2@&Q@Gy zDmgUUU*m}{kk(apOD2#11H6MQ1t(G~+^&m>A6PcS_W#lw*cy_lSyx=R^x;_1Y-Q`~ zJlmDN0TmIiu{@Ymd`(PeW5xTIK)paJc){$fk)CXN5F^V3+PIDr>!m4yf79W7OEiqf zh599`KEB~#&qzp$uZs~ryhldKmh*rL-y-gez%0YJSVNK%(HlYR4)z|@T`4Q?z|l80AsUQ}^jkM?QDU{Ro=wBzArQ-vy!=oA%l_TwVZ(F8a<&=?Bdizd7(5;{_~S`S z7aYFm;$Xw0Un!E^sEH!G8{QQdI@73I;@%ySXXqfyo=P#A6>ABf1iu=t6sLZLTB4aG zDtT<|YQR(Vmlj{cq2TTWlTu@RlIz~WceO22JQo%es<6gQY1~HMnRxAZuVB9{?KKz- zYiG5&8nQiM>Hdr{Livq$No4oX3MIIl>*}CT_7;k>aNfOZA|Ws@^7=q}J*NEqEBZQ) z&2)jss4X$I;rp~{-g2xm zfSO~CF`e5ptF<=T)L{BHf_vporB}t$P%Slu@1njrw;AI5g_iGRsETeKaIEW0!Y~EmkMtfp&wcV6HGIPU z)-YUJhQ^%Wab7IP?2p8ejLR|JlGr62@9;Mn(l*X$H4zquSGsIYB5eDP!|cK79!q4@ z)>N2p6-sXX{dPDXk>aJWU-QE9%ysRZv-Soe3^u(tp6hapo>U$jfA_h()5OTXWVL5{ zohkU7?K$TTam+it?P$>E8FB4^*QfqxylGC_7ONH=ZT7q-gX&pUSIO{hNU8BUqcQDM zx}3JNwUePnvw=B7h1{lG9Qs#}G|E+sH8b)aY|P1gbf}fqHmOBU23H;|UX^nbxkei&!QtZ=TRZ_oyQu z?sZ&7>TSYGrp$n|&QMcE3=T`~%nm11@uZ-V_L{r*>GKZ_pVn?Q$@$nDPFZiha2I$7 zSUzHu7Z@cxchdXPI5oSi!thUK%IYv0BP#w{nH}P5>5MGgOsEqsJ}|L3+@T(L+m8+u zjhGo3g_OGAb_qDWraA4LESJ}#+b!65#N58<#`h=n>e`gx(ghcZhL57AR$1RBn@kv$ zbm1l=AK)CS-R$!@B_epZvR855rQL{zwbUM=<emF!|Sn7n&91W3eX%J`<@&%B_t0Z*u(Ixsc<_~`zVy|d&`q;c8>HLI| z@Tq85mFO%Ge@@pnU}$qO)ro?T!m=1{1l%0)m7)Bk)`sP$A(OmkJG?N-bTHXV6i`CA zCub+yp-FjkTmCid&ccXyCj?696ZC}De3)M@s4Sm%pgyL_!18c-W~f3tuc}$*l2tV= zY@f&XM$Y))SAiHJFl@b|0&R{<51AMe3@i2At!q-nE3LTh)L>Lg-3@J)`C4?fJqm$n z-Z{CDL6b#B+hvpBBN9+E`${AN?P+#Nmw1dMvDT9ki;}-YjEfIWB8{dz1SYSTgpk~{ z7kqUIUoBl81Yy$yj>Bl%%X6&Qh^^KstX)U8RxI4qdggnSY!Mc7od*|zw#fLY6n3Pt zOrjsR_Zd4UZipPJ0jpG*%@x-BY@T`W#5a!OuRAvVKXbfL_VEpkH`A)d1#)@M7n9F^ z>>O6+pg!86Xf}Gt+Xq9UI-8xT`ngg$HwbK~Wa)Pe$A{qvhL8Y1`ZaTE7fyc1rJbi< zbP!QtHbbnBy4?|W^IO<_Ot%3hRm(aD1<)VCrrB;ZX{3MKBMEZcJZ>)P-&r-hu#-IF z{t7{Cw!SK$m`lrPD_qhuHQ^={28XTaD5xw;k4QSwxc#lY6MCm-4}y^K+!miVmC`GJyo6Na0K}&hv@vgEvdy zE#0`bv1dV>1(ud8`IBoH!eE-EGPWnhU9{?wIIXDy z^3y6lhXAa& zd(Vri^4rAQA2C}C+G+y7+@s2@S7<**rPMyMwC_TUyb%~Qfw#-j4tPkaPC~n`*c1(= z)w`{uZ%#Rn_#mBy95lm?KO&v^0tsp%3GJ?gwp-iwQ9~ehA5+?6U%WnP2u+~Rpd=KTCYx@ibZT+@L~G3-lF(?9 zaNWvBvZAvAF6X>Ty;S29@)1kz#`Ln__aEVX6j=(-x3+bJk|iB|NTppncb$i@^8A$! zfp;IBj7taAcm*=|nFp34B{N*!hPmk%HcVz(PHoB%dcY{H6&@O!OxC2fcI~w`u2GnJ zjx#1R+q$r`mf+@OoM$Asja~^l;8;p$qJH(J4{88HkZ4+u{7vm!JLzB*{F{&XFOmgZ zJO>D+x*Z>J@q9OL6$0!(!ogvbJp=oqHT5trmT&QW>Slh#}?xd?(DL#`)&xa1%({pMvxkoI*s$Q>0+lXm& z8e%hV<6a(2D(sby*uL{(99L(ldAlsH?UJkOzi+!|xn59;kCcJ2syHZAL~b@v>=>DS zQNJd*|IF*cA=GfW@P(9V(+bihE4|&Q^XJ5E6md*A?b$P0Mn`=YW=fB`<9UJyK|i{a z7aH9^gb$O&zg*+yh~>~)1}LYk0OmIudZ`auNXF}L81OY5^(CUk-wm{~C$+Gc(5{W$ zvUPP)w5Bri`|;Ace+uNI<#g;sSO7MvjeUg$@77b*!5c6A=vq_K`QR1su+!nmf*#0p zN@jbBjKQc1yWvurZ`W4j?`Hx)Wa{1hoNY80JUM~U48==v^unrA5YfbXK zHd=Oq4Tk*FxT>?%S+*@BPhj%r$*&io^CYs(LDPNl zf?-iq{gei9!^?vO|N6BDN)IIh1GKI_JXYQiW6EN?^V+`ANoiX~@7lBISzqHo z@rN0Ejw@m*CLBv@OB0mB`cEkmO$RtK+kj#xjlCPevCaOF|<+;l+6Hw!-ZnpCLHD|^!Z$s!=!RbA`h&6MFHnXnVu z*lsw(e8k95eUjFBOIuT z@s^;}eDV6~(fVj#xz&ID%RaProblWe1%9s@vXu7 zngF9D=6Ivb2E%?QsG`-w5^aj|fH43-1GU)A&&S@q&dmNnxKy5ZKDV7qKILf()6yD# z5iecXozGCFYr;*ZXn5FV0Z2jL^$eZfMlnf27DIHKx`$i?C{?9RU-K_!aEPgRe62!S zTHK)#`HZ}3@P3*foWx6^&>YcaQQ2mFqa#bV4u|_)QkLi2H7{?oZ&G6Vk06Yf_U%rM zes0n(zXkRSj7U#~+DLUZg^}+~dCb%-ZZ8xz-j2}{hOr9t)YQsSq4|$7m5Q@Vg0ZQ# zQ(Sh2oTi={-^Q|2p16Z-_w7erswC`b{Y1qmtRV(#ikDn?gF)mnIiOn=Ss`)Bk4a1qoSa5d^98U$hHClkM3it=ds|7-6 zT1Q{3vN+I&Y|+SPrr9=C7vvAK=u9=OJTNrQy{uaCA6XdCYcc@>v@H6wnx$M;L|VQm z2bup&W)=Ay8p#w$w60`ecsbb}wkc5afIdi4x%iZlux;<`CTwd}kh!Wat1;rE3E*7e)XWV*E`B0IxTXgk;;Mn7#P&jh{|uT<-mBj9prl zJk@mF3o_YR+BxC-ZWEc*6k;noc7F7FaFi%qkcl*EyNFgR2qPsbN}AJi5Piha#&?Cc zFHMZPp5t^UB8EYLjm;l%k%(Ao5o5=Rtdo_h0YX45Z?LGL?++3Avqn!){IEjT+TiqG z0DAfJmzT#szfZ0`pN5c^k6Ti^al)r}MS<0;wn%$fQGqD(dFSfwS~~w}c2_gx8b
    8u+zme5IGyL~k50>J=tyyCuT4nx;wt!2tVShY*Ud8iW6hTf zlU_@MeXyChA{_)866RQ1g=fd~(#a=?2FSt?j}CQ=UBRA-f?N zaXJ;L6Vcx(hOet0`jfsyJG$+g;;C&WVM|(xj`%7AZPOdlxd{~=J)6$t_IB0h!EkWF?=PV)lh!9vsOe|hTb25_}KB{;dcO~?m zVe90kf!mYLLt{GZKtfYo-`x&_@~sc$tM86)np065sp9gcXHqBd%oj+zj+C%hbNIQ` zZYIllUyZ-r(YWohoDtqsPmPs-bmI>nOaVCXT>mIt|Hmp5b_tALX2J=OrS`z6v zO6wZg$8Zie-_1$|a{ufYA=mXALbP#x6dLuqCeEd|Vf#X+p>O8Tn@HU{LBU;3Qf@sn zonN#~Y!|)`_XNo#Bm-*85Rp09FNZ;q^e=k530Bn|KRDw_n4#m|@Ep_hnkr-%?=jW< zmFm{qYVG(qhtI^SIFAwOZCWYV+>HJS;1cr|{}{dWTtsnJaFXG=eWns2VT^ATghwhU zEM_RhnnjOQm0&Fwy^wb*jEt{SH~hUfIY~v;W}{P{|NXg-#jc=qp@rvav9$PYo_fQC zW=bfb#>eP#@k=u9FXH<4Me6xZHr0Kdg^vv{xp=xT0)o`EO+J4VKNe$ZQrR%LjC>{M zach4pvpXDE^)bm^o_!|5K!0s>+6Zq5IzQg`BZR3< zivWtW6zZ$+gJ<wL@AL1;Q^vJs``ge|*(cja?;MCP>shX~y#OODt zUrZ+_RRc-Zbso#h^#jnQ7gH#GwkwD-amxqOgNjPaD{1`IrX8DD4_7y(v8d}Q7jie{ zFnVRh^*7?smBsUS4v6Q3*@sI{aSSh9oJHZUSaj8!4=}9G0~Fpn@650Nd_{~>^_`Zp zD5)Fil)azw8xV|xVmx?6zPmfG4LQYvPpavA9+U3^Gs22bO8j$2*$8S#Gi#rk+}^k1 z@^E3MfbLUH@H(H9v9N6nd3m5^>rKtu3wU?P$ zY*n;^17Q!-5*PyLzG+IQvFfdFPOfczU=rBo@xnwWLyYenHvk^4p5yHQYy&wNKa;tP z8T*q{L&>@<80f(fqqB-46&?3(%Qv>wM+!;XGw=vZKc&ZN68Z1ws_O3Xn)4U2941OW zbxfD|-w8LB9_&bg+)u&C*V8X=NQ=vDF79u7hl=N{J_Z0zj|=Wck5DMlw{*_2%PBdg zYu$={LUOsY3z9p1{@ zO;Xnx3VFu0!$yM7L83MYzeMkMPS(q*W#g>WVTwCVuF>_=(zRY(2(R>d-aX6elXWV^ zzvr9-NP8(lvH7;@PKq8i=Rfauz1qpmf7U|5&y zasZ#_d+W$C#vhwfPlaQ8N9-A*&oS>4Q_1un+&?I}?)9jNe6uuP6T z&2_hqO~JJs?}cH%CKB9p5}C+0ZyM-KtfK0U=bb35dfdPZ4om`;n0l8QFc(DYbgM$a z(d!e8=^%6f@!+KzGbo4C-bNzq6j6FzK;Gf+KQhwY{Hz^i0Q%i1%b40>&TLPxHf-x= z^&?+gC=i~)0gI1Qn=OsvZNv432hCLGyu!-2ud|bPmX2q-xH^ZKuus?9I7=^OtO?$V zyfcxpKc6b87su0;t@V+$ZSjChz25skt6QzAWg`%23{KALTx1)XZNh=2?yi*h>00;~=0G{EzIe}L0#)|#lryHAq|+#Iz5Okw5bG)8dgh%L z^>P(MQ7>k-_Cd3H5wTINd@cM{iqkgNll}LblQ`^-w)t=%gaxA6vJxam={EO z>CbDUlb~R3N$MmTFzbY)?T38Oa{((K8c}Z&FmShQE{uztG@(?)#c-sb)eyHKd?gS{F8drMe(xv;`_f>8{9iMaR!$I@4CL&IZl&sCGr zOFHdt+d3;O@qU?Gb`1{vQq0ufEgq_8kIx)F9-gIqW%@aVuNvQ|jk~dszDQkp!C0_% zeOm3tlAQXL-`dU!iTZYRSm<(!l&BI4jMLrX@mRfJm}DuEn;xOFGsJM=`;-uAQGWAX zz`^PiOz6Z=p~3GRU4^o6Hl#LfL5c4k4(J)1wnOk>f)pM31b3wKmpTrSnP#pIoJwJ` z*&Iy!ZpMRA`SGfwJ{qzP?+ESq%MQZDcAvjQoUELONk9#<;!I5s&H0BGXj6YtMMq?5 zJ9}4egkM}JE!DuRse9Uxi8?S7wLJlHFU)A6Q9BIkH)I&&sFx3V(-W?YKxqL$=m911 zZ-%lNXq_9dwoh)Pflk~n6KBFuW0AHFLLK}$Pf}mUM)158P(7JbS20{rzNJ7EmED-( zP+E#y&U6oLPl+{scQ<4L&Rxj1y4|DTYJEz`_YHt?GF4p|t17?4^2jSZSsnI1^N~_V z)1rdv<2}zW$HW*B&7)?=qinlNfiUOqLm4P`UJr8pE>grNgkJ}#1vC(8^x^=&HkPJ} zQPqw??3uDtU)L1-g(5ds*Y?TR)nWV7A9QuV_C@h$Us^JYToL|BOZayr1tfj@I{dSvCfxDIrk6tU>KumN=BVEr8VLVMYDb@C;OsE5=XVH-7D|70FqZLAPXAY4jaax5n+066A z(;V~S@<18sO6OCe8T>xTar9Xr275QTTp*e!7X`-i3A}8)*RU)}@W0v}ojN+n=QS1$YA8uT>>jFARQZ2M+s!^JLKAYyU8fRs zV_(|fW)`%6Se}}?Izo6CZ8}@+XjFd8?-mTU6rg5Pl}AJtmmfqHb%`5$Z{~}0ZHz-$ z{Sxt=3%g+(XsWq+(qP-!P0_AX>YhXFZSyo`Z3rwnMr8A~8@Rwc)LOkpA)EVFLRg35 z=a8GWdNYR(MUsrWskTo0_!vr={8vGXnds&#K6J;%|aK`}kjiRo&D{8vNPW)y9crcZAU zd@xvdRC7YL#K%9nY1d30e^6Mc*40F^ue{ zc&@d)OmZLmA^vo-Nmi7}kxEn53d8H7zp2h7TDp6GA((CI8DhQ*60fopo>9kBl6}~@ z5s9ERIDc-zb~ZVqu6{rt3X#5I@+uIM0f>wuI%}`R zkYJa{K~+j8`-y?xzQ5i+WqY1J#m#?6@Px;hkbX|>?TjVOwnS^g2#Z4Rleq$N?04>L zQS!~?tzYJ@*i8y?VEh_nj%v;$(jPeccxsj8)-V9{d$2zB1yaT`ZPXvEY$6-gT0u}q3Db@||j zf&jfWRQR0J%V_;XUs3-beMk%o=O zlXF?m2aLK7Dp_Do!O8BBB~7IWX7RY|X+EyzyxCsma<^{$FJlCe_Eku#W`byF^b4T=r&dO%2?I6ueRcel^ z3pRfe?ji5yrpFVe;+0azSs=&O&&_%7sE^0V#I3 zV_k8QDc8T~W)xS6vbfw@^L#~XxC7{n6W3?3ep>)X!%oVTtTbC{(Az_f*cVLuWD8t` z$GPZY_e#0Rd9(S`C2k^A)z3CCV>w4ZYD1wij|U~Z!*@K{P9{P6JVZq7S6AyaxR*G^ zgZ$5nujWXc4}fM*YuiW)x8b*mH7$nn$ajd&=v~t71_RGC9~rN&PyN`<(T0%7leL>7 zSx&=@ZZ*VqpUWqTHaKq6ENy|K_x<0#IKrx;3 zQ#J4-76H6FJq(*PNiE(dcZ%lPu=3;w*(CyC29Wp}_3-S&5IoWx=Z0=;mCL%FJ6R)7 zbRUT4U&*}|(VuglFo<_=(`<@8B(2TaN54%6MZpWuMIK$&n7u4McNv`nSeEb06h_m_2l1ut(+nps?oZBkw5 zL@e?4vIk>c-UhqXOB0f;5fGQStuPIUnNb7o`o{(%_H@turV~O{N$iA{WM|>F-zEZ> z@5+>mf8|j8icP+|a^UD$$xi(5*w*iehu_ElO@BJDwEa4Mr5xXNy_x3338p<1U@g=J zF6!4|C;va0T>ni?3A`W`6>WDvaaM3kFj8VLeHpUBU||31r8&&EJH70+FNBlBUV1d4 z8#G6wCzmFHbl?nlNLAUd-Lwzv-vUa43bdCX=w$xF`=K{udQ4xJ&|pkA!V3$J&XTN6 zRBE)MsnmL#eu``I*Ptnmp2rYfB~>Q0Qzaf#AqxHpII$Zy%?6s@ygzUHx{+@;%$D}{ z-+bn(BHFq3qhwCLK`aXqBd3HT+0Sh-_R67HPW~?VR{rn%ZdShi^sraI{4Lo92x}m3 zU{o$e2*I;c^Y&?#Q>yqNIVfp3^FLY3HC1<$d0ytfaaem0Nc+z7in}TC_NiAIZ*=pp z>t`>Pg|(2b@BE7!0^GG%w9?DPJ6rDE33wbLA38q@aEWbCG=mULO;kz-ss#@ylF4HBLnUZ zt=&73_+5_hJj?Uej66RrN%`w!w7Pzi zxZJ<{SRm??E;USzI|DZ;q2vOo`M_m{)GJcryQ3+ulD}A8G-vAc^)XV^oNV@_cIiax zd?}<$3@^{q9r(}g2SSS%((3&AKiBME{%38-tqmL0Sm` z5s{E?5Tr$fq2r}=|;M9fT24EID3@$8|N42I@dXWoU{L7U(9Cj z#hShMTI+e9`*TxuyDQwD6G-f!yAs=p=GaXK1x(>-ORXHU3|oJmgsGp3uU(c=6bDc+ zEAy`gYfT7E|N3Oydr!uQtnO&j&HW728fOrz zCv@aDvGh2*{$+4EpRmp!SdpErim86u&U#pXCxC1`_CtIvQ^-I;OYH82J{407DWm@4 z3#|lRuhRk;wzVLICsRn&6@|9?7a5(kqs=7fx$F5b0$hDu(ndXvrYw8RBytO&foMV&xDp8$|Db+0^*ax1oJ}t1W z$}>9}HJ`Gfc_mn+3x+_-&C1twjPdgca*>DZw zm!4gkpSu#Q0}OAjPqZIRQR8T2pIZJ*M=r?%f@F_6mO$|FidS-=2kE}FTD&jHeh#(a z08#Gcu;rb&?q;LxkONJQkfz*9LX_dnLZYvVuXft)Mas8bIuQUx^t5wNfBQY#1uOlj z>+5XO`-PM-UBR`O=yDASoZcfl4YFRmDObNU#m5vpzI8nVV$|&Y8gIR2DUCiIJ;|`q z*+6XaVLW_S$kV*^AGE}c9Ooia&dmLT#{ZedI?ah$|EfGm-(pQ3l>Ehg`jS}BB<_N8<4O<`y zd>dNN@N>rf+3W=767L`Rhn;+QC@${5^-sy{OY`ZV*@L?4e zySSAz!*Gw;@gQZGo0fO$zb7{39I_CiaOIfN&%IL(wh-pv0@&zwgTZ!%yDtw?`_@rD z&J3DU)zuvxYGmK~xX*@a%~D0f=P6GQH_>eYFxEchvWL;8i`8c-^FQy@Z;mKqnFoN< zHC_1DE-hkg@@^2f?6J6+(adCp4H{q}6nsM5TW&nX-IcRLIvt;3hvhifZSje6$z_a$ zBDwPg+>b29EW+YpP%V65@4Miji>c|z)*$6aqued&lBlI?ml&HLja!Y73xBh!rS(da z>va4PQz`X3;uSwBpXJbL@+YUaZ;es_emA6(T3_LR``v7znk5T@b9_esAky-28@tTX zVw#b$@_3{dqT8G@FSJuxL&zM#b9NHbPR@K4rhajhVORSG-CZZIMwRgFAaZ}Ee{W^u zIv8@+Hs)o)gMSuIw|+T7B)vbmbRKrM3;%%INh>8=PkJ9@^)4BrcPtitaib zzJ$0dlm|q+y+m^#bQ-?nk6-ytpC87TK`mH*AU%rur6)p6E5ES4o;tX(R;VTfq%5IX zh+j?+ZwRRxUYR|5WiN}FfO_VBJ@L!075mECJboQsmGPxHdEKazMTj2h^TVUNj=%;g;b;EEn zd3edlL?t_xg(FvuMrQl;)as}q1RKX~OPA-@$7s%fL?a(j`2LPY8fqHm1;!?zr?6dS z$rc@RSpOS)w80RtyLmaFn{+qYfB&9zwzj+ofn~jSdFcJzj)bP~I{}5>qD){p*KkPz zPi?x%8HoH*1Lk^Hdg+{z!Ttr(as$J*-2Mhoq~VKtm?$O+DWdUgvKl~3YYV2bd8@+pHDwb>0xs%`hMkP7}iy#4nJ7KueCaT2_cEZ3{S ze&{*cRr%*|EDf~rrK|zHUyns5#gyzXzTi+TOR%kTSrc=XpN#jJqAK}DKbQ-rioHMv z7$xu59A^A^0z2$7|3hvl@_Ows^4C9eLyW&|F}|YE2n&a_quX8XtRNP|x(Nk83W^jD z>K8#nV-k=Q6aJ*j<5=bhzhNX9*I3}{tvV+UCS3Q^n!j|83B4rKN>Y3rS~|wkHx*zA z;!yV}^^F<(I_xFGfg?vVQ!1#BE;{ED%LQQ(*-6Og-|YNqp~MtgdO{Km(z|B51l~{f z+#ABdf9NJ|IU3rRp$diW=ETeDO`@P->esh}3RZR)XG`rta0k3CI@#w#>Y4;8?7Z<| zIrJi2J*lew)_v)P`_`}9&iN+$GulrnN4b4!kf(H;n&&Q3Fmm@3tKn9L>FKV?1%}|A zD84R9J!e;0Yef}g9;DzVf?p{c~% zd}uDYxjDDcB^ibz^p8*kDS z;u5vfd{K8KPJbQ*k&st7WF~r&M9cqD<8h*ZOkd4hNxS-dz@Dr8Yv%}$D?8>hI5he; z!!?KkJ|wu1_l3X|FX7e@QIWo{DxJokK{g|HK<01O+iwP_%@Z8tTS{adr~Uk4(Dh%7 z$jedun`z$I6BLRHzglK<3+rI>+f*?|6>iCy=AD~0m(AsGrstyGUO%&;!M>WnsYgF+ zRs91$`GZQ@MqQZd<)2H6Ejt61(PCn)?daZ{F>^U&SgSjz<6}|7cMt2A~Y}2q$xY zf*RVQjag&!Bntsn`(^sC5@%NzTA+em?whNbNTGrkGP$nWAC8o&jiNPN+TpIZGFLT0 zUo!E4LJzVV$WzOtstJ&1l|-4($RF!?mLI4Q{Hwi8K?G0#jgw8sktk}VW4DpO-94lv zQe1w3H0e{Biipq0K^d%V?u zRZrH{0(~CV8?Q2X^%pt8HQcjZZ`)vThj6&5Tdzj5YcIFpzh-NhiUMpcn1#SHQL7II zW{K^PsQ4wE0dH?1hXSWk9V^ZsQUAs-f(X;OFi&H`LvR=joqcPcq2S|eDgT4{^KY(J zGN}cFqIi+5zIkA~EjS#2a((Q1cbP)oGGmccNn)1=R9ALGSgJ01;h$QR`2MEBf>iz2 z*4FNiwzc_v|DKwkAF#P;ZZ>9@$-QX=8JCC~bmvf>=2gYn!r_kp$gnM#(APAI|D&2c zDv(q*$l#?FU~I4t=DQ;bze!3xD=VRkhcWi;wy@M==bA(Q z6bLAB07$Yws4CpsDL1I9)41QLDupc;H^XH_zH0^}$3b^<{m$NL&x0sokpI8ar!vxX zUelbq_CK^Td~;pzX3ja){@Y-Qe!9{BQUTyUAAO`lX+5MXi>G5I&8l*-D1-cd_F;d7 zTj*6wfR3&J0u}P}1YKUubZ~4bgs4EvZQVGj+4Q#qNpSBfmD{$(#?O*q@tg!93FiJx zXF-&^ORmd5=$yULfM?TtpLZ`vydX_YpMcKzk>Av!Qo<6?>Zy#4L$XA>&dB^+kTDR} z4KJ~pMl*bXTEXe|Bv*!#5qbJlu`s*b?zY5rrlo!8{5tSSaDWlQ+LM0UwTkok$RwGV zz5MR@Yrnq2STBe$CL#-WK2UeY(M*NYkbnQBdL!el>(N$O4IwymdD0=_wG@BDE2f^K z(~WbT;4Nv_9KnKVoY7a;-!hySV~e*RIz15*;@#e+1kl%mR7-(Bs^6Fq`4hruOlBo| z@0Wy~ z5-%LN`tomwY~tFdy`uRoolfP<_mjzbgPwrHuM=GitugN)=t|6$zT&G?Zppwm;$#06 z<)m88Wbt;&TkWT^#n8^%M>}_K_Z30<-ZUVy+s#+mD2w#=U$SZny$7E=-R~qtlvbWz zW~(j})piKhdC_`|>ycY;9r)B03L1&;3xxF(Gcs>qb0ofV*+(mKsQ-e+6n`oLc*gK0 z+QjtIqOF+ERr~Y90~)?@=td3Rj8Hb2s97#1ia#`QNEa<^D*At9EU~U?xX81> z)8Nkuc+?LJHC$K~u;f)4JWW(n=OOL1b0q>>cCr~U)jkO^;}{o3yj-|x3Khs3sA)DS z@>V3a^KC6Rx#U8TE^-W9oUCWOpi|6zh__=A9(+EF&Sg%1Cg7|@3oMq2gW{Kes6RvV zAsT4({4QC5)%1@&$kU%<$h*cSTjmLBlz$I}aX0|b(B|Fe0L}IT5BIH6X|%~5Hd4bQFB_}iYbJD$FTDz_=RsGfVy`Kh$4Q)zefXM zCi9^HTmXakbUK%k0j5cVN$~18*#5OTAh(LM-kq{v z-16P8*xp(3y)M4cLkl(aBqbrPVTqsk3iTuKO$XTphi>Klro}O*eF@o3^qb&Mu1{r- zuvlxhO;9q&_U(2XxIe+&d$#~4imNFT!Bw57ZY6hqJo{{1@O!~K58wM@5wR^)Le>V} zj&24}tp&lW04IG7~qVVUPSwLz|hph4}Pps z1mK=<8f~8svp@+Tl>UGMlb)}2mH#zjRi`g3=n%=Y2n;(XG^~7Glz>nYIoGo6XsZ|@ z9YpZ#+qTb=Iz$ z=R-N|{@OkjJJIiktqdUGZwcKx%TyZL)!4NE!q$vOUMdd*&P3@G6Ekxn~o>H`jd?Gr?KIQP$)L3Tt z2Dkcz59~mQP>%RrR|ZgLOD5daAO4ga;RzH$U)d3Wlgca?^p6BeXTPT3Pfup20H44$c>2!o;#eOKQ>8*B(Y=G7@zKMkKa41aS7Zic z@y$KV6JTYlYQCV5#2x(Osq`xTrc&)c6V;4$R9qoiyXg@J-^I&#Tpotw_m21F3`!0z z8S0Mo<5bUov^ONRbxC9uIjg@g>W}`gI;iA&g@aY$_9IN<(b-V?jFIwnsC)wp<8xlT zeaZdyQGC!$pJwub?f&ayIFGdxMZzPL9wX-3SGGrRd(iT{JF0)8=;RIe+0Qn6F93jL z@j**yyK=p*mi>!~wo5X(o7EV+uKI0!-J=7M9QyXieOWW=ev{QdECbLr zj_y|8FCB_Kvc}||t3Ami8v_KNT7WQ(l5)PoK$E68q`Y*@YT!cm?}h%5nwW%yb`b}M zvWyIlfq{X(k&$|B0pmXsc8X#JOoA6X<$Mo;CBuHU0(0po&rO&w1N%4gBlHDb#B4B< z2&3m6p8Sql`VSPF1K0|Pf!hhth6hME@jKBn3OXli2XD&Je>m+`BLu{=zY|5k8+S+_ zc<}@D0#@{*I}=3dr47GdK&}553@S9MzX=n< zpva4wG9KZLI*V789NKw&S{~3&Ick$57Be$D&_TI0>RZkr9^@m(XUW`m6CMGrBx%}2 zYN*5YuTLmC!LdeoI8R*#8JGhWTg0fxbEQ|to62SMEJ?*lPr!wqZ>U6>E^Q{N`xV^4 zYKJGx?0>B(65iSn_T!o?m#55w)0grP@fMz@^c z`4*TiIe5+O`QV9I1bP=x65npx%NoTKYjvy;dk|9te1#iiS-Ye}*iaKWAfdfJd&22@|KLv4 z=;xUB>`f#wYop4~te=q1LMDF8R&EyCmBEQd!&aER6@~s5Df2-#7^dg?vtCE_bv%(r zUmDeX)^8`-+RAs`)BX3M*vDL+UJYt4gg&bdwuMIQ?{OQhUW? zHdi6RuO|V|Uj3ka*~P%;5V4iKy*N`k%9Mv9#}x08e>VpRFL)^cJcqkNhxAu*h>mfd zJs*D+Q9am3hwU|m#vE@acUABTfW4VZ$K4vwP{0Xpa!s=9zegcJ^S!w8&O+C8TMNK> z7$qXX?}cDkX1l2KR-k#L7pIYdB=McJJ(}32HpU0VS^L!ai69tv0n`USHqJL|9lYH_ zJ^|H>VaZv$ipf1|NV0s1eMm%@tg#qf*37U^0n9s~a_~N6qW*2**&Ja!?PF*`J@78s zx6~zLo<7Q7exPFB4T6+EXCC6{e+dX6r$olRd5y16susUqI7yNj$&;;C51)-_7n} zWVpu(o30QX&BOa=DsAUz=1DL9fob_J>nD*P9a$64JUR_M%9%_}$IHil+&p&GG_tN6 z-@j>a+-Rx|tFS}Z>az!xC8~&7tqJ;u$R zm_^)ocX+;qLdIBZHlGFKQtk&YAAdpRDpR_C5T_XA_0e286Z@Piky=!38GOA&sjoRi zHo7`1ue?5&1sV)M`TwzoCt0GJWfu4_*f;lPqFiFgt%VY*!pP-!nSm2oG6o}iC1d@Is{dK}IW zsa33I?g<*0Yw%KAwcS15Tu6M%WBN?5Uaql%g#+LY`W~g|Rq+Bzd`_Uo=qFGi#~X}C zBhW?8rDyIS`jmVLlNBO@p3YBk@NL+Uu6cH2@jlbnnTNN9QsFPdg~pODos2%AyQPsS zJ*RDRpY#^}X1ruaS9s6Gk%&+LLMaNyZrKj5ULzm3yqj(&LdDj8JilFYC1PT-w0-rx zj;)4Sv!(Y3@ec~&WZjcJDb8+3&v`jM2QX2y8v3bT@Otms_-j7Fo>C^SY-cr2bF%n) z0tnqKcr))pZMPJkaKxuLy>18YDSX1ZK1*R6T$Ioa)ZnH$zi~#o$$)pNe=1q+^BuvS z&a_$9tr59{u@g`=Zl_|~4YWN#Zy<^9Q@!E~@V^#g|Ae7kiyDi>mcty+KoVjZgwG4D zuQ3v_(eL4Al`Kx^ia+B4^!9+V*=iQc{2VEbP=3f7nL*_HkQfI*wL$jSXP=S*^ye0p zI!8wCcWAgZflh%}m8zVUbps6q?`wK*!PzDbM~#7q!9w7iIbb3>5LbnjtybX}BixuI zR5*%8n{d8}K^RP`vk9kOQY~?$j)hCTlzs!U*~xxzui?t`ON$;VRxnGlvF8XQczPCh zwCCEoe)X*?wXCQibl}PInSyJh@hWQW+sgG7gj=M05(lsGp*pC@Jja>yFK$1k75GIt z7W*HA2tkF_KNdWNzvBcK3xDxXIP7#>5!1!MT!OtsORtW9 zw1%4HRg&D%L3dDK*kt?Eyy{+ihs%w5of;SSQW7$;Y2)c`2s0n{{8*4RMtaeiu_U24W?rA(WJ~?87d7!G_==$T_V#|^ z=xm7fo6Amxj5;f#aK2d$oLoYBP{qE+Ux1VJQ^9CJ!;RV4);|ttbHdNx zaY*FH{|=dUycPaU%WmxZJcZV`8(f)fb(kWd>bJuY)_A34U!b;9?DhPx+P9kjwv|EY zLNvyBnc))yG<_@kUdO0Q))5@f^tGe4+X%oJ8qZ+PLVs`R`{r~ErqBeOVB%1ox(v`d zaa!r(!AuhU-~0R-kZ12+U_iSv<|*p20~U^WQIo`g+# zllm-S&%WsjJUn6Zs|t(<*5seZ*>3Gf!c9p?utb?m*!}D8o=mdsrx*hDg@0+izcWBrgUWig*VD7so zvcYNk4>VXE+|kYel5FyANzqeT3@x7Yt+Uv~LpVG6`YUQT>N!-)IR%Z`2^+;@rr(`=}Ryr_A!63Etf@N1UyNik%*h9ohJ z=D|qO6fC@WemJS}N*1p#7KY`qn{|AcpZqg&@YkbJttB(Pp%=oA!lOVKB%A~$~w+7l<{=wCg!tTV&Gt$4PoH-16`LbZEzOO-HV>Ld1pJR)Mo^&JX5+EffNP}+1>*65BHOfW8;q} zBHX4NWp_4QZv#C)Pa?F2lLFsJ8d;qYx3e0m0vk7h5oNm|#M`5WGpWrA8;3f~Y!dB6 zsH$n=<|jox}-Op{5izuBDN)gmxI)TKfBkwPDJjLK?J+EYC2}UV zvKmV|@u0ft^g!L!=1#JFH$IG4r;c+g-M?&YP*sgPTSz`omc<((p!aR4S5fYwo!A*H zY;wA_5Z`+u8TRp2;%lDEne>*?yr(tq!Lx0{lhfhFPkDC)$oCdo-qCWgmsSZ$!&NA< zYuoMT?3YU)(Md|ig@sd@ZU>R^y2m5E+!M9ntg9| zb9NWOVXXr0+*PHBpo*e)D{Z%zFWsu`sRg$F18Cr(jHcn804d9TBP`K>wVOcN9RVsgLX~DG^_PB6*FSexp!J3k>OEr7)MMUJN1%P}i z+Kan3e>P+p3C{<*NMCZICGf*+wY-ZQNvdm;iX?8W`KooO^UU@{BPjTlcKR3awL&~z zLI}K$Sjb5J*V4&c4ujj8_T{97FsZ0L#AVU*D92rAfS&(&MP`E9qUgkb*T8r$whEBdpq1E#6RA#ptqO1}oW zQyKI9`mAvf)Ase7uG(VCds=XK1Xl--eJ*Y%c~xUIo+@2B*UJ;)rMzYQXkE6}Jgq!F zrZ9G)3b9hZG5D|TrH^ha)*}w@Nm!&HtXtw2-%1;bq-Gg&n~XUaXRLhg!NS9Az+HaR zm|0C`mTzL936|cikl2c5MH*7*XKjRG(tVLkxB&^1 z!ekKQlC>Mt1tg_Ww;x8pJQ?>BGHNWOPr3F+&CIsylj=(JMo{h~T_=l_A}hI6wbqa- zxV3Q#BhHlqHdPG@u4@p#-;LKj{G36zD(mq+52`l{#EH)A(9xXJq_(vS2Cp$i#&pBI zS7%4H5dpI31nrSIIvN9?epId0^pX`8p31(bT*)##7=ND5WWm|Sh^UT!Ya-U6gJU~0 zcWbF3Ykk;RZL3a1qGu`W!04Soe|KL&GnPj|W!LQJz7fSo-DK#)!)|zVhS&t8_vNf! zdw_cllbliw&Cg5*aDXa&da8nurQ#s`n$2f&p{8Y1m`sP#Iz1_lozLdo@j3zYq;su> z&pN^eb`WMm7o@a}CQ1Ix?UXFxG7?~JYmz5_+fg+C#KX7joLRF|cs%Kq4^j(aY zZ;4Vw=WuJ2**UrJOtF>QHoans1wjqw5>vBlrg{{@+RcX&B6!5BeQ2wL5GPEixrrVu z>`^4!=w`KT>WriOk&xSr`xdhGbaK0@iRS^()$=cZk1$f&qlbXE zE!Skr2H~*2+=9ie6v_2*=oSyHWCf0_ho%2LBN^5U%HXm2YJ<4zX7&f+8Eu-A`^v_Y zD}4_zC1i#+=^72lIBgp4X}f_=Wb4RMRR%62MekhKD3msy#Dq!2EgXbMl5jw(4GU*- z)J5XP=jSqS{#q)$dUg0iAGoTvT^aWgISX2XBE^P0*;fqcq=5O~^EEEXF0#ybUs~SMaw~8P*T-*Rgn#;| zk;3OoQx0w5kW%5-&-W|EP;jpMXqlvQ7#dXkz~$Q1+&kut1}!ApR8mW7%q_?tq}67{ z|8`5RUNO#uyTl{s4YPpphpeo}aiqd+Kh31HytLFmKx5OH!DAQA-w7fJa%_VkYop9@ z@hak>A+fq;qg;!d`G&Ku;|$3(E^^}VY;+M3_%aT^Rzhmn^Qf-#+wob;PjbiWQdD-> zXXSzK8?E5=n1P|8RuQfi6iE1&mzQ_0v$v#~ee&Syzp@J2kbpaN5}FSN8wOPbeKm$U zzGHMRV$V=h4GUYf{Dr(|>mJ&!mX;3WxYmIlla~b0@uv=zv_CGPR1$(j3gmYVY;p2t z#GM?5`+7WO)!cPX%nDX+t@f8ZZ*%6~org(n+xHicSOAcVi&yEA_W=aBjG0o!yCawL zP6uZP59j41qw@3F>Arg!*V^u|3He5_>fr=K5|Y^&`QqUFA^9L_;SQUK60w_kG(TVQ z!4k3oBmS`0Li3hMNAVz+L$2-CULTk@xHQ1G*Cp?8C?2bv&G_|67H^rp&1b(=+`^Zf z+u_&J4lm~h^ZiB|huP?Sh{oCBd2DH4eXeRW)im5SMw)zl8dAmxA9sAqP*+mbD)?#F z_Q|;^QBB$WczFQZ!rjSt_HN$_xJGm(Jl)qP3Cg5~#Bw-c!VPQRD0ixi5fp5O*y2NW zVqswcyYOdW)A5#LVUom&fLa!M@gZ|1)q_sLrJ?4Dqq+AENWOh}AkEj1z7cDz5~#;K zPQm4)7#%CI6WHAIlO9ZS8m_sFy^`114}7oaCuiKkY;UYIFrDp|e7n2WEiOt%W*s>T zDt|YJ6rD#8eYcA!Xvyp?yjB3)YP~1Ur^S<3(n@(Xbgr}`hZNwwwW48aZGY{1?)(m?D-d3#VuNrB-1`Zr zK~RG!$F|}2{@iyJ+8tMT~BCg?b+HVBGBg^>u*wX7?f6 z=f0a=&zR@7m^b^aIH_zmyUz^oCZeu}+E_%_aNa}n^1_GL%W!YbwnqDZ{~Di-hilD( z5aU?wcIJxpxDEEo*G}PfsL=@6Jhy@Wgb*ILWLH2d=Le3a&Qmx@7R+^^QwQC&^V{bE z;=3$Dcs$$q;9n_NUPi7E`p>_;6XL<9vPlz)C3v*+;oO3OKCNpuE27&(P zGc?`1iC)Hit;DINFi~6t*+2i{=JWritGtXWXmfo0;97=&mI2jP3*`3@W>B>19U?Q=yHIV(klB1c*Wh_B8^Y2@sG4!2T5^~YI>wkWOSn5t2Yk^I=Q zgpsMYXc!WDwRBHOZS2o+Xk+vuMk%~L{fHTEqva49qcjc`ILxo1aK#|6{Ax>kgV!Oe z`$Z#(fUBaQCZea*YNp&_wjc<-c?{0O5v*)%%qm#SN`Ni$2iTgw0wQ$ zZE{Y>^IU!{txC-)kI4L;OL^u=vp?5GyL_5@K)Z$qpP=l+|MM%M%>k{yAIJaAXYk;< XIt82im06=Q>Qs{N^pn6%mmpq97n0q$x;mN>ypnr5U71GlX6PsB{oek=_IZr1uU%1f=&S zH4-`qG1SoCO7xubd-vY=fA@V4KR?3WYwx}GDszrG=9me2tfoYIk@g}10Rid52lAQ( z1caZ#f94B+fg?XJcr<}uXD#om-X|a^i6l9Cb`Jb~)9it!Dgl8fI|0EUc ze}T&h9?IX>cAxm!FsU~@dU|@gPvv8KJc{j|G(F=!;&sP00W_Ay0u zToSx-1+)L8#_CQP_=%F-?6gH6k(~iOA|Uv|^24|P?C*~mnPzO-&WJ(AJ7r>(91_;LR!A^zZ(@>$=LJLkF+Mfh1+=NX4W z=-c>CZq9Wh=6!!(6d7{5zjUS8e)el|aj~x&hwJg-gwA!D;p`(Sd;_@3QD3&!7gTFl zb91vya*VuQ#oo@2u~^Ij7ydjp4x6g4_3~*^WN>ht5br)5eJ-rkFU&fyZM!%tkKwAc$g2S^*u#>>v-`&6@ z$D<@*`=g88d*|-Ei*K6+@DU{co)OgHYzVB`_k_FMo(3|0@hHG*N$-@Rr+;M)S2@|5izu1(bQ=>nV6(|+p$*m#Q1T&E zko=T%)$e4-_jkG57JH{_MOWx1lIoHzudluPKq)KR*p1Q;w5+P&i4&4C^l2PuDeIPE zmmYoUl+yE^iu|QCF?bZ}@O~&vzLzmuA%sdPltkL$THi_5_my>DzAkO-xOqwCF?8+M zB&h3u0l~(I5)v(X%*a_6Mheg=8`=}a3mxcaQ4R6^=6RXZ7gI*vWp8#& zHrZwWqM<$iB+ydOMrcTz&9+ljvTG_Yn9WtSYV>-kgEek9VUF*$jxnq{Q9x{D$dMsY zNLyP&b?*M)LoejH*0gMt1obQ5MCsa4ba{B%AZJk+mO*94Uzr758H^_4L-6ZT$=)C2oZ>8!vu_R&HC4@LCju&#C8MK4rdF!nWl{VQrsFneG zi_;GbEs| zG!Uq3{(MJRXOpM7EZS|Y3SP&i=Te`*=pwz$^X~XLgZSmR>Oz}C z-GorSPySrG!H+r|gZabNCv9$cj!N=1AgwN}|;NhRj7>vO<&3wpRZbv*DV`Xcql(_@zE^8e6SzDQ^kdPRbc>cbrD^i8wkx<3kw^ zKp?ZVYOUw|e(LkyDM04)%&U$670ioYmTlaKiT27`OR#cy8=tCA6^D`wNEF%_cXh#f zCtAj&`CA^0Bc{`4{jDyMR3b%%dBD74opWT*8u~P(LrOxeE)lmuD#J9#hJut=bdCJ# z{K?ZhIIr6ue5RRpwlcN}qw+~dA-$pe})nN-QdhuL&7hyxE3|w4lC#y>uN|eEhhK*}`Rnghszf?S5{}4_c_B3-^DelEAJtWM33hVOMmk$!kWLa}S0sqxabjB0iXRpj zCFELgs(9va_1bT1u#A_dInjxh<*)g*Up!8hdT>|Jl`p8T>%dfS8=9a;Nvaj8V0^2$ z{o8Danan$wrQE)>lu1m)bbqZN1H;|2$3hLEbv-_*;!atl`ndlw!i2+OqfiN&K8!is zA&HXTwPk-mdel?!~)Zk-m)oFz3bjAQ$5ndOFoWIKNaCB!Yp-a)a$8Ah} zt1_c2Xd-LnlgqmT7xtO@46{rYsDFM3=e+*n>sPx`9!s<;^&U>%amohvE2Ekz7M?#> zsw$_Z)=6T;Qjsx`D7IT?IkF6&EGm9`;lXq_Y)^62vU(R7rI%QrPblSzjxPJEqouMcC5pw^&8Ey#J^vHA!UqgPzfzRJ09!k=sbl6 zU;`~(HV_5f3EmJ?9=0yMf@*TcF@5;?iecqzMYy_;)PqzVL_!KGFHY=LL{M2+5hBqd ze}uTBP$pxo-`uDUdn=1*)UB%}wl_DcRy5-)7Mcxs?NQ2&oOdWN zF7vYY@SZZbh-&2Mj9B~_Fy@!<*7=iJ=laRDPqpe%xxYYCW!~vKRb0M;ThIr5Pc;_f zP|9+N5l!}25>|g;M?MAf_iR|LHx`2Zk%df?r zil$pRmv>#hU4aZ9`!YQ6I# zd1k;>Z$kcJC zbxdQ#;P6MK2b+{Ld+E2bX!Fe$w=S0uDz+`QQRz7J;Kn3NE(PR3yMMyhyF;^Kb@8ik zzj$PSnza@aV!wfM??`7frZjFi=_B!85V4x2@G}fsmH-Q|s|Ia9D*HpHBuToSBo4Y- z6T+`RR3A)H3pOW)iC@y_l4Unoi7T)?pL*eIR2}kaAgcDai$4>_&vYP^3=`uYinn&$ z@=}`Cd+Q6)bMfTg=P|qdeiB)$8oQW>^-OqDu$8h^aq=m+=w!J|4XH_Qnj7GXUbD(` zz3h3TaLL->t^&bi9oAKzRNMMXs5vFXooFcDg9aiStSEy1 zQ1X3HCAzA#NW4N=k(=I&e0}rCrOJhH0ta*f z1eVCc+OPPr>(>9D;1AIz9=5YhCx8ncp0rh+>n18J-(&uT+BN8Ed6B$+zqcm_YUhcr~nW z?)X2T>u+>U@CVZZbPG;{pFdz7!1mvN|BYn-Cp`ZzGXCAR#cef&=Y}Njqa;xSo1<*@ z&vhCfL^TB5=v!v@UMm{HXy1ztR3`bF$DiJzZ|c*9H)dfT?#5esSf(x{d&hX^3w|F9 z>@psBaTx6@gAc=6+)(oKM-B!bL>)d=|DX!$TZe@vrv%B~)HK8qJu` zV9BJe1Pze%G4u!xznF?Z)%^o$vzjR`J$1Dnx}IJC8>|CN$%5FumKG*Fa`y--ZU8es z9`nn%JnhWmqafmUI-+|hpJ2jtkub#u(}S*{|7dN0*5$zalmq>fO3o+1m3c6?!+78l ze%Njz&`NMfKD)n_z@v=^Nu29q+k4jTlDYsaawhv8naW|GUTf+L)V6nvD>a34bsi=tWXViLh8cNVX2)!=PP{dM2>XhMpRy#4I6n% zzgAWO1tzIiI#yHzl@iHty3_eJj$piTEp}r?X7kI{h;>?q9JEa|2U-52q9{hy)ke+c zuuH4C{O!AgLfu3e>pWKjog(Blk?Qr^+hO-yYn1q`Pr{E#9oQhqu3T!`Rg2 zsBA3fhQY(68ScwE>wvX-|C(qNqp;3bTKbyZdX{66x}A=R24s-Z$`LPzebb4*x9^Ke zn)jM6C_#%krM`!aNuAPNVuw8FpJi_{#?om_zHs6e7AE=9;)niOtrSPXZ7!Qo*As+= zL$wiH$&i7QikjAtd*z~XWaFaz%C!0qwFYevt+|*wc+Vky^cHq)p3&NiN zcI4H3-Ga$B)Nx*2KkOF6BB#jqJS1idKGQeM*;$)#vM5JF4xo_j46)l z89)!*H${|fFzi+Ig%e_&4k#;QZaR9ZdjJ5+=u6-33>kd2SOlkm(1zNrqcg&Awi+{9^l(MUakD530ucsVo!Qb*jw&~hy+C|4 z^?vKIzc zS;n5uxG(DOhA5|1Tm2rgkbBLA$Wzx=Edxt{LXtS?&C3>ilj_zq5;n8B5L7bn(A8vXR!*tZzAFiem*!@u<7! zxE}j%>Ww!S2iy$SJ8qeHIYqDU-Az{4F^C89lwzw!x!==g9QV1z#D{2Q4iH3GM>ZdD5qp3_QqaF1XXBf%U^q>5qqbfnIxFKsxjK~*vG-~O)%^|5oso> zFlIO}RnO6SZ=FJ6@f$#^Qta2Js=9Yn;X?PPl_amA?7a=CYNGeggcY%S*o`h|Z$;f8 zV|td_Il#*Q>;>D4=R`3yBSHS1m!3q`q<5J8+=t{@&X(ecjC*j7TZp>7T?`zP_3ev$3oy1LdCWIx5&?{M+b$xF=VTZ4{K;(NWJ{v(z}K z9pqHSM@fdtBbKa0hYZFo`LZ~NYMR+vJMTYEw2jxcuM30}xW$j$Z`?%%n-NT5TVlz* zXQ4~lWOpt0%a@LK9>P~{OL(0xJAe_Y>yq5s(uRLT<&jFf^W4?nh?m*!sN6OZDAXp( zJi{+uax!UIgCv79SjZS0o~Uo^5e~F3;fCNQBIZ`z*HyuO@1zL z>_dv4ui`CW_*BL$O6j_ie;Ef2BW6wiL4`ClxPCjIyvzLPwS6=fq-;!OzM^6dY>H|{ z&z#{7^f7XM1quVya`8n#v9L@{`ON-|@RZad7KCl|VLCL`o6{Fh~L-FT$k9>y4 zEyYeZk|jhEzMs!DR+CzAYjMLA%IIDl2~wEY)!x!yq!CgFTh55w*6UvS!!P@iKXMA zp?az&iN4Fqvfy6#tAPg6@uzpSnGl=mq+SP(lQ<+kGV0(TE|o3!{W&v>|5*+ran{fI zbHT5Nq%;lN^e?bw8Cdxi4aM&>=RbWH-eY0;Xjr>cg%Wr4?e$4Jx2D#%28_)l2R@)RnrD@6VmHy zPP&L$r*-9SS_x~s8`i7eedTO#QOBCck4kHl?rQ;*0ZrT8OpJ`mtK@x?%D0{MpDihbnhr2$IHV`RegzPZu2ejA}8Pr2;hx^eDeFBh2j}klmuzZn9F9-0IgRqAHiJK ztjsC(i(j$3Z0YxLw+TjXQ$onD7ZSWthNoUS_9+;t7Qa-0oB7{?87>O_Z+z{)`0gL( z6L&A%zWM$8zg`Q_B;)zOT>vM%_tq4qmCA=+>Dvy$gmgD~%%tM#i2=yIy%qAJ01yRc zQbzspl!1L}e+8qjB$)^J;mJwm@Ka~F`1dIn`|i}FIu{2cx?y}wK)WCx!Z*jOl&qix z5r4EOpOZBUW0cn;d1%MoDCM|Yld;H`>NaY%rYg6M=GUz|b`=s~p0tQW2JA-6^)s3` zI=--TBqOzO+HeINmy+hA3&h6)VV2iZrbkOnVh$5>t_MhV^;;wa!+yv%6W|EUW2>T& z?YG9a;o^jQs&qcZpNboE1_##QGd=C2;#4U;(g$|8J8%R@pRUn^LHAm6%+E2XvL!`2 z`Z=J{?3R}8w+ULtIG7zzM4>e7L71NaxH4nHWljwEve3%#IWiKCbJj%@jh#G0mCmF9 z&lT`OddY-6>J8iOkuUP3Qy#vxb`!}NNa)Jvu9N*vFD%DUW&C1 z7xsfq>?()&XccEi`>ovy&m|*_D(yP&Evx6k1$*uuQzGnJU=aLlytAu9Vnw{ZX44M3 z7~+4^w`I(gPStMiU~}yicj$Oynl( zZCmKXNV9g=2c@<>=^P$&{ReTU$-?67z2nIVp+4Plb=@xKjOSl#eKQTqXpHt)**_T` zg~pP0>5AJND5I@u8jHw?4RNNW2(|SRJ15 zIAhnqHe6j1XBqFMQh&I>Zl97iHZJu-0y~!wj}^Um6QT7=YIunmF+-R+cNOBbpP>`v z8WgC$?xR7tTh5|=)fP?#3DSzW!XICon^N&4rr?RtJ4b-w=V%~fa_X&PUO#-9ndAbn zxzh}$bvLlH+h@&Sp3-II?C>{`F_>IRB!+ zH(X+o&oXmKf6B&-MTusy5$m~r-Yl$$PvGFezU$05&#f^kvktZBgg6q~jA^g0^-iQI z2h;^`!mz#Fd$)m&iAEio3Ngt?X*epOYd{xTjw3wp`gCR^LIxGnVQ*zWPA zNClD0{xwH4G?B|`(!wlP6knptktC4tfm@}Qug#H2_(tg1z=Z=;4ao!<=SJ+if*tl5 zBWL!3$_PHzq`>5j7pY5S*j$@bL|sQCoO)vTsgbUPn+1OtARyh;9i1MooNbNW7{k`S zWxQ*fvcOY0ENkTv6IbIi2)~J%t6mRPQYxDMvPInyk@H4c7FJh0YOeqQsDs{< zZxhuuGozKg&ow4L$NDI=#>OyyHxa`G zS}owWW_sG0ru1vLxFE@Q&u~gWWILcLIcTQK@4oI_kIcE*rf9;hwh`p(s|7JN8Hh=< zla23H*NGgg$Ll9LD@6(-wh5|43UIX2JH<5SkybrAgLm-?MBgzy%_4fWum_m0V>?25 z7cJNnQ+Ne@3%@@$UpqrZdS=6o29oMF&i{UJ%LpC2)hiU2Pr9aTew8}@?ek~x5&;7j zF+x0o-_r{gLlZ3yw2M$WwG|&Mx%sXgU2gJp8Sh{0oPxy$_>WVyNfk&w7r9B*V_Zq{ z$ll$!=D6o%mKQ0GY*(rrP0Uxdt}Ea4W0=si)s)`xSU-Ol&Yn_$bx?gc& z2B{MA4WC5m%roa3TlZWGd!-z++%uOw^GNJ&$GbZX5HGELy%Z2oKD^=T%g{Gibwu|i!=xc=IuacQ@S!2$_msD!<7 z`uhFg%0ywueWBGP#YBi_t)~^(&#oSqF$Hv3 z2Zc>mg#X#m4|Ex#?~MfRh?M;O50NR_pg}i#bs- zfuv8^o}^9G!#Ls6f{pl=5Eh-FRoP}@rUMVQ*vpb{MID@##$~)|ko*!55l9WfR9THY zEno_lB|;_s9M%VZzc6CiHn;ipdhG6{2$0=ev_iL z0cwx`?#AuS7Yc2UP8p)ESZ9rXgEoF>p>e-Px~KtfTRk7eiNLvDdK%3|IEBjHrZg8t z7WA7BK@3HAfSt_f-=Ap|7s*2kg}LS1eMGymvRcViWo37zRaKr-FfUcZIa~lVfRYSljfQ_hKf42kONbg z;}s7Yv?hGo0)(2`fuHm@=~rk$0;@Z|w)odC<+hi%X_=%?v9p@{*Q8bLI_M|69S|4R z=7WnW;Y%NJDd~<(_PgYHOB zdDI?Dh62e}#eh1Y zu%!~a@{nGmKfwII=E84n4YvvTidFd-?-yL;=Kvlk6Sz3yiQR@{|M z`gxO^m+K~v6Ks#NjXwJF&RowVNWFVgSQx$%p{d~67S1E=Dbt?R{o#`_Aa{QC8ftCS z?x1jDI&>m}3t{H$*Fg=j@E0wum|2MArZm^G6QVx;P>0pd>_`z^Qx>teE~yh*vo$O4 zmF8N50YVR3@81>9z!Cdv%G#JAHJ|icvaR(~32$BJ=e*h3qFGF4`9UP&L$Q@(T!RUI zRasq&yPM*Eac#z1})pxxRlA%wY$hQ@+vPJOQihM1H4_$t3O5Tparkt#_ zIFlp4kv)VHzYCw<{oH%wmoz&ks#b>rFGl!bV8&$J!1EX+OS zY;&XC$M8DTo%}pL#Qg&oLLM_{=VuqILg5d+<3Hm>6(VxF+smkFG{3%G1>raP@%_Ih zS5qDut26RNCl7K>1xu1e-&zD3Ax0sCkr^u+`LSPlypxVMiXybN=;v3cN^~OC!iF^9 z&BB+;`?ZN;QwIPwmZ(;MwE;16C=2%f4;Ri5;qpQ_N1s4d6~DH37?kc%=Ni4R4@T$u zTloy32!nBUnMXTLeMU!LEHU)9v2E5bc6u))HETr~zn<$VDtWWBeBc=Q{2oVPI^(vS~-a&p%P@sX@=n=^F~PP1n{QBRlMg5H(7`ZGvv>T^pmLZdefzxoGyjLY{_FU+-zI`_gipTzNBjMR%;j z>xnN5yJrdcwZ7G6i(^Z>d?>LB=FZ0ZuKWI%ww)f2X1#`4Y+-fhsST!>5mJd?mrqt@ zzlI02=E^lKU&`N$!-m+_vWtq26-W4x-XAfL3@HMWMcGpI%-iDA3)JNKsMSk$2|s@5 zgwfoMh3##=p41X~a$pe?V38kQgJiE&vspuqy(bJ4*y7%Vr#6_T_R zRqnwnUeTeb_(l>XWps1GU=JM6gS2?_b!7V@ra&;p)7>QQS9Y<`LsGqyD`#gTxf+cK zgV8F0m%}Bp7bGqC_4SA|7>9S>XWq_gILGl>?PNhS*!$qZ_~sEQca%2278|FuY*yDb zD~zSMU?bq=#Mu0@r)@WnRMRGxkoCbu*>@?I_`G_}?H~98C63%{btfgPJ)8F_NGw0R z{T5lWIZSCU)pzhoAkXjcf;s$$bD?4+?KWhKaW) zi7NTEK4bHIR#Hw_$P^`jvdRB#Ul;6#he@K{?$jJkJX8UcCjs4DH4gKyy7aDXdbP2D zHs5b41aRoXiJ4~grAGW%=(h>4_9;c4jxOzv2fHyLT28paM`ww{&~@>>F9g5_Fnv;~ zDJ*gl0eK{;M)yfNlAj5}o(&{sod}gQP40c&Z{!ds1;|boRY=oJMkQJn-V^O+Ta~20 zCawCu%Y?v(pQysVLjS^o#3J&NubeB~KB< z>s46Kjq*T?(pgX7&a}RM9gg@|vA>2`RYlS=Pf_W(yenBRjch#nP$w!VHk~d?Znj=3 z2QLVp^x=Y3xV`IC%ElRT(!B#F1jB^+3!pTxYK}Kr5^=~^eY&`kSd67C-Dn39@qKdt zS3_%Q&LHFdrQBy~b@y#Q5O6S_F^h=2LHD1c*7N5;?mbIzmX}B+uAZLY7ezYp<;<0x zr{9z!cze65gdsKj7rqXqF>*VfvC;v|tBCN4%g7NqIC zuQh}@ff}&2aVKY=7pP`;*n?YtQDQ@ESP%Jxp`+4}MHRGqL20T@ZOn*MWWEW{lVTGO zOOg$oL>6TJO`Bey!wUp}2DbI}ITE}`0H_th&XHWj3k7f@Uy`dlc(DLELx6eE~1IWHSno*3lqj zg2@RR5dLl_A-4Ca{cF=udP_(~<~LuP*R^y&*~;cL*7R`qnpcOjnA;jk{!te?bK%Vu z8u+FU$r&yG21B*-JZy1D&icN9Glg}mR*$-4uXL9LKHHq%;3AzW0}}Ai#!hhL@X69$ z2Nm3l0r}!>OnCeLT>13r-3ia3w=E%qKspN~hR>`)D0fY2YwcR$9NQCR=ry3cl)?&MRe>yy+b=VEM)6$|GcMDU&uSKDi)c({K=lgTQ_<3D# z`F%u3xlL?A7Y}Yrv&rQpTZ#R-6LBayYy`xIiXHSoUn&)Jav9_^ymgA4*{~_RtU0;x`6%Ups505qw_&qJD&F5U8})iVx@|q$LwW+9 z$?_-$TDrWftnM}I#pM6?%f8ULF(A6o6AsIOxue0#`B&9&2eXqjNe+Y!M+x6J#w}BD z5|-%$^Ys~YbA~fe%l&wLOni9q{RKa3=4y*&=iQWLv6Wb@am%|a%yY{X%jX8re>TYB zv$JNO1Cp*eBPw9m+}E%$T9Tx9s7WD7)NRSSXvBk%Dj-H+$!L>`dgk1h7CvL}g*X3m z!sP+Xp-c8APPKJQ&whA(&y}0*hKu2|PyJ7UiZJ_>t*Q|yLg`S1H2h)qJkx%v0U2|3T%@XZ#;3hd(xehD6Lg*SVu)>~eE(&H=2BGx=}_1vF>q ziCb<%m=JVaK>HZneR7=}t5kKM6@P&g=Ua|W?I}0-8bKi?wLSUs@mIKtw1o;ujL(`bm zl|Yp1wCFEGB;0pbJZGI3AhTod5IS87*}sGVR{ts)7Ra&3gsR{{~8Lznd zXVe4NVv^z0T#uH}hKrudUMVeOUQBpxN=}dI!VnfL&hljm$+fzfyFn}GB153C1kjq24@CF)L+tRwx_+mO^>EYdz^Q+;}s~_jLP)b1c#g@M%2X7YHT}<+>T>0U# zbAwpc)a^KW@0jsUYTem_rC9uDl0~BWwy;aUh2WEzxg?u+P6VIAseRqv-A?Sz;ZGU7 zRvV}k@wDco=t}HZ=Uv~uPai*+dDOMiS6E(_WVAjSku~c^pexuv9|pHMUr5Z7xI7BX zS6zy9w~bd<2)}O7P~+qv!vz3jlIvjHWzVNwhPqlVZ1AluJoco4pac4eqJ@=_rPOy( zUYl!88bG;P3Q<+UjIj3gIL4!5`Fuk7|3|Tf*3bR%M%}*GxWp>1R7A(TORF+30qdFg z<$gxN-p&3_$hqF4@&4V<1JXv_-W$)*s7cWn9Mg~{)K|}rQ)Ka(eN_11iau;HL0Ba2tO=$g15e_9L?tT3EmRTr&vS6Amb|eNW7EwbX*~e=l_=BD>BWd!A z*-T4p#E93biuCT!j29I*NA9)^rY6-K7%vJbi2Dyu_!>8wMjt&^Q^#aNIQBOXQqsrp zZER8Jia=Hf)}~qQQ;K(t*CLsBsZ%J@;gdKgsrx|44pO@7*yqOWLITYAuGIi#)V4B#+}NeOv@vuCk5bR|+X!(^Iei=(Afr**H; zN~>Xv-QyP3WsXd9QphPQH@{!qSXf!&Td(|8Y`-ZIX2v}c{DztX;#Rwm>j|qG-T>2Q z;Ja29nXV<%soL1EQ9cQ`*|P#Fhi12=_2PxvmXP=RlytOe!QYBa4l}2#l(L{LB0#j0 z(%3nnc{M75>h6G`wN17li2?RFtE|uQWLm<_?rsU`qq-!|PINFDW$c^JlS>v>-lw^T zmtV}wEn89Aj}CN2XgH@_c$izadyhQjm&_O&UKs-bl@2yjdMm-PGM{SCsJw5;virlg z3}LTWIfpA$#vNCeZj`6Yv`c8acgw;lAcsUQZE!SN6_ERU^xndXxqd+t;+D)?nbWVq z0m}M{j->ZZ!U^)vQqx~4W-NGpk~t`KTGgVj|MX7O2uXuE&b8FG@MUbA9?@QJEQ|0J z7lgEoDO0|dgG=>Xes_3Walz{j5IeSc2lRwnzP6w? z;FdG>D;=o0HwL;?#ZZ~pIWPEZp9$gb&sr5-7x6J65T*Px)&KDuVZjw|fIlZ}4lI%C64VN*T96B-rq5NU?Bf>1fiv4D6w%`^Zg9a4Q5D#qH`Wkii z=@Wfz#+pUP%2ZTdIG?e>o#KI%>AHnU8Qpn-SE228CXZB}q61;63+~jA^oKSG#gV;@ zs+H8=vvODhb`9eV=V24TqiBy)y%uI>sqpeoWJoPbIpL9V)B+B2Ip^|)FAC>zY6vhS zSzLEtP758`gs~7Bngw@kV{2={I(E#9t&{HsUP3qCl{z1QA$`$B;}M&Xsa<`4TOb@k8h)&NOwU!`I|2K3uiWH#Bx zQ;CMjkInydfZ*T0{1)-z0XJUN0WuWFQp5nCKgn`#k^-O`*JA+j@$!v(a3%ym`*_JI z?x7_nO@HC#9{+dT56mz4X>mJWJpT))KCHLYe?#Vg6OaIq?9Ezg|EnCQBLtNI2_H8U zHBj;$Q!c-xbh%h-e%DwIs{omq*90<*>5KYx)WY*{Rc{LPjA8J#i zjaH{VKk~-i6?AeaAUH`zZ8B3eqdPCG(v2*55@eReFn^thsn=zJ!BXDnF+^SKt#L16ECpJxnh0wY-FAAKgk$MsmNKXR}^AS*0 zbS1tHD3L+#ua2(3G|f@W8kN`4zI@%Gs3S#=F1aw_PCrUF97Bp7vRd=ODUtj+q;yyb zIH+-V2Qy*>2Ni4v|5?N|$#M5>NKp&mw$S)$p@Gx2@3;k0zTE>dVFJq+3y#NjfNT|% z;^{ySJp8FL3um)2(qTp2?0|ZlyMm0fNi+V?i}Xz}0H`WGy#0YVPtw)Qt;pm$Iif;( zyMjxk9Oad322XvQT;YPo06E?Jtx+dOk}1LI7A7o}&oSU&j1fFhJmK|?JW#S&LS$im z@#lUUS!^eVRR4U;REcWFVr9*p#dC?l*ym59fIxcpoBD#U%AtogLgF8U_Gn=4F77=+ z=}QJBBr~M2VR=(&uiHe-dC*T#uTe|KCIC;F0-WQ1iB}?M8`N18PHIYkDhb0O7l#hb zYoPWSH%yFx$tTZ&pu7&Usn7reEopNumIimCr)G{Pgj3W%B#2)|eZV!v71>ZiRDYCs ztFx-XE10Ce&|pX>Z}+1TKVST)TUR? zPwgS({&}Qf_QUu=1`Fdcd_77GXbq2Gdx!Ve|dJpCgaSlwYn& zsom$$q{lY`*BZfz&sY61?f?Cm|5iT(=;!@Qi!DMNe_@Lodsvb8)3Ul`6`Ly&xT=4g zzsL&ZXR1v|JtN`HFAXq@z@@J z_1{%1|548JTW1WO_&=7Szh03Wrd>Qz^;r(NdEsjx(di=AOa5t_H^4Ma6MI_6-}?F= zJeH+4Z7&uS{t-jQ@-jtHW_W7QHZ=eR}2qsW^Ve5V&& zGZk}+-gX+*a^q@=tSR`I|9+L{p{~|ZKt|ENaJEHHy$iN#!eaVYmccTeR2YBwm>Mg? z3y~Kzm`tcB^?Yi{g|GdsxxViD9G**Lz8Am#81MPFw=@`fEiCTA@yB$_GM@t(;P?&zEyz_$?R(bF)SaMBLff!bL@G=2+V1 z&bhCcG!4UxO-|8Q0{TWPqmc|N?rM71Kq*W3MLilwJ0#RrX%mUt z7tHM;;xavDg8}Ze8w)3F+zGcOPeB|6g($+8vIVC7Uf(n-+LAW&i&?o&nR3|}#$!Yo zNP;T_#L=|}Yfw;O_`BZdD;It3^~z@;jO;a9e|yUFyB@+RS@_u-Z6XnztUv_>6F$~g zfm;@tRJA}??a&OLwh3#DN7VuKa72yIqn$oKb?q!kyb%IZC~-bQWt3GU+j)5rSB{|I z)Q1H12*z-sn!v02>?J`)!EQG}exN#oe-fJWjU~L%Kr>9F0ft%NXFRm&7UjcF0uE_% zup&Y|u3bUpB_ys@VQmB|KU+{X@&n==1Om9I81t$?H+hdItQpyLzn|@e(B9?n%mN=VHaG^lHq&ncVp8GNI0L_zdIt&V2nBGiV-v7&WLO_;H~~m7Fr}O z?O(-}PAO-l(9iD{k&uyWK6CvOnMQ1dwG4qwl<~^-FtDGGVYY>Q1T=VgIPhmKLz$OW zgL^Z#X2Q27EB{=)p+w$1z2tlln47B{xISi?kI6K5I%`E-w)yTk`1 ze6d4^v6FWVYe0Rz|0_XA+C!Y@!6g(_l>V!UOG498o}JYlVjiJpjxql!F?pH|%sJHQ zAlnKLe{ueQhyp4)B*-fIwr@aL@CK)Pkf+UXmL#{GTfTsE9vfp+GVb;`#}S8+FL>6A zoDWKIzXGvEs_)RrXdOcx4!vhP-d3Qq4}OYSJp@hvUqA&uBY|5rxTgQ>#(1s{GzV)p zA^;TW58ZM=EzbnL*fzu81y6LTK6cCC1k&%f$B+KRKgo428ii%skdWg|Q~#aW!t!d*6e&PjVsdhQuiP z0(F#EZ2?r{SZrXP*5K?G)ucF3)7+AIvVIG>8YX!pnQdO&!-sgvtFJfW007P_!To2V znSa03L2FBkUaALlSk(rqe-RN@)TdK$sDl$O;_Ng*k~Xd(-p(k&sn7r9LpWbB9vjLI z#C;QjyxEiD*k>I*ynSkvib;pbK0L@4L$1mZor9ifSJ;{j49{;u)97h1k;jWpwNr|uTI+&@N z7)}dqO&+=ZXOZe{u83F#gpN68R|Tp(3x);*NY=g zaqAsd_9}1oKvL3uzKOGEV<9Cn1u!aaV}ByVpz^qY6l7~d__GA@HWj?*|K=`!B3VlIg-zkCq6;8Sy9nSKS0x z|M@N=oca0FL!5p2^NQf?AMp79t^c@r{PRw@;hhgHdXuvHlE7IW-!dCv z+qU6ti%2LXA|R+BAt)dqAzM%oDd}cJI)-j$zyPEXDQRixjsYA*LApB!hHi&$zH1Hc zy6^pb@AJp|d-p$^A0snsty$~3&ht2r;QQ+kj&D)uy)m>Mo)SlT&cIOVXWt7~rdE7q z0G&R!0;05NozUTLx8i58^|p>soYtM4$Gxc)h=FwC_~*t5yi#Oeb>SNfnRbyMj{ram zR;v>Zxf*|p|JbSOpI7f!*98t;um$k8x-3Noz!H7YA#6+_|U(Nyn{adb_oBb z|I;D-Y6hVTl9sl8*yGsvN)dn6p|9&AB`mRl-%*v+BO$Ynka8hapYYeZ+lNEbe+x=Qz_ED=8_tVyIb9c>0CmD_iQ{ zUR{IDGSyJ=NgZ!4I8O^vgmvL*{6rmkOX&WBo+NKhQwXrbgLzoLDCqytP5x>-k%<%& zL?pJSDI1F3+ejpapRnQpPj?N~{m5x-G$bp+`=^NF_3B`i?xF8;e!5i-M$hZ+_m79& zB~uWrMj{fL{XqE+r8>V8B*ic4-j@5dIq5G8{Lg+=D9!u`b4`vb4-d}oMgYSRr|>z+ zTON-gj%heb^%C^;{EkS7CdF)BM{DK)4+pTn1(QPK*9@0@a4h^5xLbVZwsaP!l&w6v(kzoaY zw0tlH;O>lj4R+y`@AMv=$ThU@31TEuK>b+;DMt9j3B@9qoh|*l?ZL!K4s0~kw*NXh zX7u{f&aigS;FGz1WRn)OIb)#qBFg`RARv3W5+5Lar9;tg`aEuG=~0hXUcw4GW6hdq zSVqc2j3Q~&;~|?gQs~Rv685%S1S3&g3Uvz4?!r6_D3CoT#FEyRj!<>E5Q=_8$B)-p z4B2YBd_9H-n>KL3Kx)_0qYJo4T^kvCFZ^rsksyiBu{AGEWpK4^!|(sFe7wPF%6*V4Xa+%bQ`XgM7{M0a5ClxM2J8bE{@ zc-VIMZY+DwM3qGK4~wZ7Nn*n23%H)YoTsAM_A)*+-G~iDuQss*Hx!bTP~+ID`nEgM z>eI5dSOYW#mru8{0D!U-g7oU3brAnm@5x$(M-A_f%F9kW`;KctzFJ5oRQ6rqsd1;P zu9W!8Lgm)($AhX0uXv79zZI6IA=$mQmV?}(r6c6@ydzhxvc)VU=>0y0WkYT`J)t%E!LxDgpcGx=5;@l(|o1NzuXy%y0XC6 zkZy5A8uQUYH!@D9aPH`;>qvs#3XTH2^02A{7-GPR_*wslQc#mu* zcrjm!_MX%RM3F$zRMf@K|9++~WZNdOM%Z1k#L|%zppn87@dKNxqj~>2a^HXWYk`5ej~XTWi@L)dqTm%G<%BTT?F;x*21!)Plj)($7r z0vRr~F4w^2HAKCc`0XSNOFRvhmvpcfpPAjzB>4ykl%gNJ@Z9Q3)MtZn_M;2beiQ^= zP4Czs6-RRD?8($46j+<_i)bH>1DuwHMJKUb6vFrW^4I`sZ6meZ&pd8J+%Wibu`mso z4frh93R7Tm#;I6vCmakAVR1Zuhow{-O35<{IC$auof1`XvVN7VX7!UJ@4vA#f0$U% z#ydzg4&GUdVwZoUiMD+Xr~*-wofg3O=}9L~g;Gyw^kTkdM1n@NZE2ICu%Cs9IkrU* z@VHy3GrtmeTh8LHh7_~FBUCt|UK25eFtVs8`Be+N8$Xt2*MPE3#g09mA|f1~EnBY# zNJ1FVz)GyuLyxonY>_haV*TwRPs0Pw8j_-M`>7#k;P_O9et(sc_n_6_xFTaf>m{~T z@R%)qD3ZW*~4!>3Nv5OsChD*013n#Uvs$^3|U;w z>tUhoXQl9y6H62GldyP3L6I8LBMHBY^EXm?=L5{6ZXRPEm|Yd~27;*Bgt%EdLp^ov zVTy2+_Nsv+S%AS=-jC9b{xs#$F)Qn*sB-pE0vpdOmkBi`2=`Sh5xzV}HGDyCk~tR0 z6wR+?WqF}Sk%ASMOKY1q*BM2Vx*Ykyo$~3Pz$?Rb)=mVHWpX5uO<3>J>G9knc#E=M zu-Kowr1oPUQ59{0n@@F8xuX?dMu$`zI3K3wIT1t(;gk`QPKb13;-Cn*3WrZy*{%$x zezp-N$?66c_xHRImoQ_ed%TpRC7jt)odmc=pX!@^@iC&72(^zj&eW}+`EXp|a*sU57|Hq;bK%b9*^8NyStC&>i2pVwDB z!9yr67cGmg;LAOzuGn*{iRiDA>oAQ+;C+~YF@cBCh7w6&JLjX@XtsMkZ-*Xg4xx;! zlDl|M{H%YS6`B);pCfLmU3ke*bY=` zg_(37ehO%XG0AOi=+sv*Lm? zeDkH`4|L&y`-L~xhk4W7eL*z}Du3{IV3TeB-FL_&@a^^UVx=10A<9rmc^%y@1J$Fi zs2PBhY8FzY$Ed9utgy#B7+8-Un*R0AEW&@4s)QpR+vOwdVBXBdO*#DV&(8;>QmC~3 zN8Jqd9e>u}#})4%Jk;yx&kgI8$9?DDySgVb$2|^M=DSa01ugIdiJQRb@Ei6Pw_#eM z9+snLd9vkVn}wPBUBbTmzkQWvE+}rT0k)=AkBpwFT^T&}J3>B$>rLRXcc6#O3-~}0Gv3%&7^|dl7^pvZ&!c#c9{CiH9`;6&l@93 zS?5Cd#(xOjcq%7Zp#dA8J-bp_I#d$@EDW;C-Y4ViuCB6oh0JRmO`thWfUDr>0;nvC z^ywetz#%32g}{I^9Vg8AEao;ay=qBVWOnE0pW7HNLwz)&HYMo3;mn()LN;d7B3Lm| zD5gZtgIDi&%d@WZ8pf$navipN_gbel07Kckb6B%>W;^AGRs0&e*2fp%GZh?Ha#>5& zM2P|^V}(C(=(SO;@#6OcJ&&nSV~`D-dBuVzjUQh5Pl78R`Orft5~s6>)LXn9&fXcH zJ@{ap#@!0pV^KTJq>7-B$jfCNXu6~o`N2T<*iV7{h@6&eM#x*nH)+CbA<%yJ^s%2o z$;0-drHIQ1Or>)i=GwKru@3tRiE=%G?hyx{;iB&g^f)!=vfz3ho}qaU=II*zoxN3a z+ElV8W>xnBSf|Ri1peVHkS(3nLIFKvYbS?Yq&{1lfi`37qf@a3?GW6dH(q7YA%}SS z9R5+jaPu@~l45qcKD}hcngy*k*7ik=_`@+=Wn!+;ymzIynoe@DDOT?2b zJY2j#XvO0UoYu&Fa(&Nh(C{r2$PYX>6;JrW#NkC%X0_8J4kL_wDx;OO*gDm^>8#r& zhalSZkUHle_e?*~qSb{TzM_?VB=;OB`mDMNXfV40O~j@%KeR2B)R{E}@ud?Q=DK<8mxvF6xa;6-VfyPSFt8F3ckBaKmSo&Pit^q#hT^*|PiwJS?>G zG&|ZYCG?#$si(WH7@f2a1a&rZDbtQK&;t$M_LoeNcYu$1L1O$LgP|(RncH|f03RG1 z^()@uQdbnHoL&OI3n1%lZjJl2-Dxpr`VSw2L#CCGYEZ|)gG9UclIbfJQw%10 ziSjO5atIU(IR&y4n?kjJXAXs9ZS&9RL~frVJwa1V{XpU?6YuXElnD#WR|vx-E46}e zr*iF{|FZN=<2!{iuIGogF16Xjw2S7@huhjbaQ9;LObSdMS4ow=fp^WokFFeW)%;KWo|~W!%`*;+w|n z`wtk!Fs`>%Q)Q5C%A$?5paVQ(8WDHpGXIDpu`o6Wt^0kr>{B z6o=BSi0FCA^BAWKhXdc_SNXnin0`#oUn!Hr3ck*IxDj=lgJ(U8dUSt-)6=g|>|_MH z??T4?aGk5-isKPT{FHqR;gHWy%(*xN_l&vyz71$O&Ldr)s9t4eDTKI zdT{KSlFwB_32z)koZs6tB=Wls5(xVs1`YOps`Q16getsTkb=A&^et&XqgTWjk=iz> zVJIV>P;q~7zq3m(!9izFmx@I-+soA8)7L>dI`qy_CVqHER~Lw7LefdqSF9U{d- z?D8Nj+d}6`f;vsP4Y`}xg&R_ocd79cNvvTsYc3DQF>?WDr9}mVO!Zrgb9v2 z)Dth$3u}q?GpN2v0qoPjj`|FBXNCJGtf?23D&PUh)6Hvxs7r2oeE#fQmkIo1_RCte zvGCH)3Te?2voU8A8!t})Vht8tMv}sI6P+c7E>{_q|I{H9t=Bqe%p_{H&mux$%KZ@q zDL*x6Y^!9tYfXJPZkBJnY7ndUCDpuO|KFPVt5fQTxf3s!mn8=(p3;beiwabK%Mn=5 z5RU&=(YJ9qUPzkiv6_7UcrG#1ws2QF1a+SweqZ8)Wb+Py4f zaBQ5}Pr@{jf7iesUpF=$_YKna@ zQO1B!XpSjt?(!Zfy?VJP!oU(64GHKGbt6hb#2Q-)WWLbyWD|7HeI(?bQQ!jYhzozV z!e-`x^#Z#^g}GTGip^F1hem9k_{c>eVl74bVM7jqe5>#kZ04@`sGoqVi~1sm_}_%^ zRg$Ser))2G-O+PW2F+?PB<;5I@hbPR6o*S+qYxa@lLUJAzMKXAw+QOZG?(4a4rziF zSlSR?aPeCUhtS%*N1+|)J8LC`EaOB4TPqJ23+lQsZr6>mukoV#C^x*Qe$|d8T6d2N zbCRK?+p3N8_77=$D;jmRRDpu_!tD=Vvx+&+T4rm)=Ei+wll-O@zw_PGq=vv{?(5hg zl`Y6EJVUI)q=s)iubl}$gp3u!6$fd!22V~8cWEP{2?q};CXrJ=oe3gnl)Ze1EaD~U z68#4uLyv`)Hf_Yl2$!`y1qOfwK{(MqdVvexLHQw-$h>Xt3r!gsO5e*^dguHWaT!yuy!o6tb z$OeA^03@xeE*m#tY&UR;!ePL}c_=8dq;m5>JVc11e~&|P1QWH)Ws+l7Wj}Y*(X6-c zhjDCL!o(vfws@XwU^u+dK3H^uMDAtLbezP!T>%H~XH@7L+)XbHg({tJx6$kAkg^A+ zZ>A>q4j}qa6XOpQtWWoGeX)(*Lmg3G=3E0n1hj9rbB+rY3Gd*dQ zOaQLiWgYVPq}wX4Bm9-Czak7ZZwAa_4sxkB_}$k8YOKKdosokfe?Rfc{*!*Z2J(r=GL z@Uo6@8&}EKd)5+PMk6itXxgWDoV|!GY((B&C=H(3B$yt!^Lq6c>y&nfi%Jik}ZySg}>qzV`-794EA zc-OIR!>+cWZ^Dp2ciKh8mZp&-DPofc@uJb9J)z9F;;9#Rae5{F$$p&5*GORW*K6(t=~(mN z)DiF{t$Z~drk3^%N0oCcX+alqT;OEKldB#nR|ih?X{q+z*CRnYslAL zx4TU_pXD1uSUp%)d=+7FXG%Sl`F{JF+wLuNHIb{d4$SyAC#)!%g_u%C5&f6U-7l*7 z8ZLz_Cbqo$YKR6MN-4Ko7Py@P4%?v{Qdj!-vHgtPvQj(B^Hpa{Qyc(Yw0kg@T_1QG zR?jsvi6Q=yaj)n;_dXE2NKr-3k=o^L`sS@|U-?A~+p4-Ui&o0RO8F}xS+~mH*O#v< zlsX1>EWMMd+*zRKo=%-RiR@4N%E_3t&{$gGc3ITEPJ49E>`ju~(!Et+k`?p7mMP6% z+3fPMd7Ut7)fu4*gWLFRM_uk>Jo(+*w!X?W@np|+ShDS+M9tWk)^`B`SFem>r)$GZ z^b=1dZkqywp{v*44lyYrXnIw}8=27XyXmcCsRYD2#ZHfGcQ)@;O^?OR|9&d`mjt~p zm&7Fqxm#AEJ7(jm;?M47+LVdXPIZi}>kHB*jxm}wpf*zkqV(-_yeK`~Ez%%AAlWXq zPW4VGnx7G|H)wBXoT_=Y66tVhCiD{7WlXK@3@r<%eeBzp=D3sw`M+z^?IO3+^6XQL z*a7u&qbeI!{@Y1BJhHNP%ltc0FOsovCaKPSK{H&xB4Cc|tcI5Atjq2u=8Yo4r1Q<7 zhjFXA(+J^Qm4A!!dLf(U;tQ@)f3HKh14msv^i*;MXJ({SQAlb_3Rk^gZNq#G=;#(sp_b|!( zv}A7|@7%^bW_7v}*R*2ZX&3s6ISzCj@%xHN=Pn(3S^A#C)GM_q0@|PAD;9ClrUj=i zRbq_o=qLIaX(VPxiIgzD?T;_zj_ZK!OF^@i&bbv?5Z}skHGB2MlOBmr1fWArDPE~s zcR^;>{{9CXJ*!wD!4D*Jbi#YX_Ff}(tvL9uC0%5Ef9!T28{te}wAVhMPSnp#9mtf3 ziqBVQBryVtc$bSnA%suXkGOE|D@afJyU098(^Q&eGU%8voUfXA%i$y?Z2l^ z>QBnAjUY`VGO~%q)a3IzN2Xa~FTpMs7Eb^_&^JFP8+Du*j=P68_6Pd~+M&%6SEsnC z9w%>ILr(9UGN&h7RhK#elCJccalsEi4Lrki5XJ0VAiD4i(|~w`&zRljy|wdw4-Fi& za2XSvL--UT;-mhy@qlPQ&{P%*#xY$w2?XSCpsGB#9cz!6{P>u?q2ICO2*`vyhNkTh z?N^SwPRkF2qc-#E7n0t|^^IREA$d;Y+Ufe+Zy#CeZCTCZ@6n&DUE-+&f0LkjXGhmq z^>|oIL^n_5^X?o(vvpd&Hek5yUdF&l&3yNk0Mqh^JCYD{W81sN@fyMKGaQmje`zoM zp)2tqIsOyzYy$k`_76-Dz_iC?mcJ7PJ`?=nXZ#wO11163g#Y`O`0Ija4IDql=e!aQ zfQ}Rx-WJ|b%g z62f5fzd|}0puOgDSJ;Z6Z1U*@?ky6r$bo9>q=37JW*GX&?6%d`&Z+S?{lC$>?>Xac z?B(w7F+d-QKantV)G|*M(9r;cu*2Y6z3#YMZsJhJ)*r;;>7R!oBG+OPr+ZFQhcvh8 zuU>%Y0>?luhU^%<0_uY*C(B>>)$n~~?4J63aZF(w7fF1Fr`+drZaVwt@mCLjZDrqV zE38EW+if7{t+I?1T&wLXnJbD1Ze#+Z`If#>TgSRiM6i(AFBAJ?2$<~pX203HZE;HC zIENmsciV0yCGf4UfJqEy{v|>@H(M04z7J5zgNxL%Sf=t;@KFVWb6w)mhs7&FEq^Gw@1nd3 zy0I6)yzn=0t045T3$(8N8%yakvc-To3g%UPfT94}32i%;*JRp&+Y;@F?1rDA!UeEb zTEFavd+xPT7-#$dVr%jRf98-!fcpYq_4D6GEW1QD)=Git0EP3H)>~$lvG6aPDmFT81r{TL_W)n?WKIJn7>WtAe1yU(;5}7=DGk zDaD?!ky=%}(Lb<9C{ByQi$e-0d>t>Ad9UnSddNc7@up2BG1mdR40sn0upbkh0kv#F zV_+7L&YnKrZCHH`30-;IZ&ASj_`M=54dlzl7n@|!%XTuOKV!4gcI&8d8|nz6mM{4% znr}tzf!9Di=vdt+fta_WejB(L5msUBHV3BPVp@rNE{S@p(3k8#?i^it8)mqFlcn^f z1F%&)?PekU8Tr9+bHFz@e2n$iMgAS3UAqN<`j=@p4RjRc+BR;YyCvkbO+$}5?$@ct z1Lg{LHn6~*^_i`=Wxv;JN_hd>Vlkbkczu=tFdp9V8e~WMEun~_zLu05g~Z=p6m*-K zK6~dum89VhbZ8QhnY8d4dz!(E;CI)2zM_s~MfS|~3<4H%ANEn8elZ{+BR$p=O$u)1uoP?NRTCKUPYy1jv1!Fr*bGdr4oh37%4+V_`4E zDB82A;mcpTbD$74!3p>d9glT283tEl-val?LDCg+K>@nf@hrO^K3yWQKNW^Zo*_1H z=kS>u3XT1pwsjx~%Hk`o7;*~N3@a4ZG1M?Q!%+q<0e%Lv66$9OnX&`rebr!0gfx#= z3g8JhP{(+JFcheMbpNZaT*@gFFg_Wy9oA=hNwju^T&k6iO|UYh7)MGQoh zE^jN{z$HAS*tM-qz0AGE1Sqsmr#82g$C#EFY#Ek5RIk|D`*}O|rQ#z(nh}W( z7VsG#v!UP&pt}R4>5~u(7g}|+u!Ijecr;C7T*0i)7)D$c17bjU2vO9S|KgZItCQ+uK+h{dP2xsgp7(dQeU6K`vz&q${0(H0|#3B<$l*=-eK=~JIWDV#r$j?`sEt9iyi5!-($g`Vy zJrg$_|K{fy$Oo7(4f*sW^IXhe#!AUMQ9!dQuRnuP4uj@@peRl4X(jxbhc<24wFpPW zCiw;WR4AEEs%zBmHrD^9PT)V!m}v!p!^MZZEni-2ch6`8MjljYHN4|Qk0xM;Hk^`W zigs>mPtK7B-ZRQ+GETS77efI5HCNOAO}W@D9s0r}$G)G6(b1+{TrT3ngafw5Nk?I= z<7dG`a(Wz+Y|B2%+-61hmM7{IW(M)5hM66Z!4}484-DJMfHED+x{pjP@yU2AK*$5wi9d!d$?T7l@q}MsLHFJx zf}2wJ0`R;#ozT1YpFevv$y{usj1+N{6#W@Bf2?W4S9VBBKsDk+)kte0%Aix07-Ccj`#TzNim*Nd>Q8?1mY@gvX=Sg!Y#)3b!y#% zK!qw=bU%z_IOLXjQ=FLl5nu_S0(qBx7lR)9<|dLB!|>U!#|%kFMzj=hmANXJ3Z}O2 z62;-Gnm&!#Pgk5H;#KFh5p(7Qc+&MT1M)jy9vyoUk%`#Xuoug0dSu|pM3n+^EHB064dbCsfX3;ti@s2NaP;b2^V1r}w=d(k1hzz*zNy<7*~c3!f&pza+RI^i zHPhF*5ybJ__m@CG_NYR#M&b(G7btqlG&S|9BevcC?$A)?@oU$jj|PckjocNOl8#_F z4e%B&Q{7XXierfQi0|{3a?u zomZSbEBZ`rUG)3cZ3S8$$(Fvun9g@lyfpqUpn7Fe-Fbr#+UDX+L8}OUf4pZ=KU;51 zOzLw2FPsxm_DT>2ui$GW&X3N<5Eq>{ZdD{orByT6MduhOgyRRpL!z}GFS#J z;7NkVnd$>LiSL2oo^&;(0t`D7WH3j9!}I!%mun&h(7DLg7dfO-(nM`H!3c#K0Peah+E%ePax_1Dtd#P2vfATn0Sb(*#6r}k+F((28 z_G#vlsG^EqkMQS^B&vJQWL@>|uK7#%Hd>vc8B41RU0MbEUf7(E7k>AFgY^=&1vTW% zs~5yu#K>1s6*;c{W3Y0f&i{d}mTK1%4t@jn5}qy_)*VA}ls(+|iJ=N`lG7fyI0%Ov z?>i`oB+I6&AEn2Q{*8n!NcbS+8YM3UmMu3MRglYy65{%u0Z}wX)O0bz1lbHb3gvc; z>>>v#)4u#@BVZBRd(bd2I2N@U3sp|3q3=#hn@*g=6LK6^4a>hltRUY(S>Nr9l(dS^-Hc zkUwt?tv3YuE2t;Tr^i+lL>Rc3KjKD~Hs3_p=K3D)Ug)cN<*N zK$PKO)w19u!W$m%&uE3XC~@-N1IGNq(S}_|_m}UMQ*gEF%IO5Ku5Qzn5=HvS)?a<+ zyHdqR#io*^Oa#TqupKHEwsdG6rL#WI;#Ln>xkAGX%X+8qtSE#DU6gGO>}RH;K7vew z=WG zr3x*^CByyYB@93l1t?oODob4@vjBu_uMZ+}+LmkoC8u|+Ur8$4$B506ye8QT?3PUY z{bj{U9Oxp_h1a30sKL9UJk{0Ca|4the)~bdr4t?=rPuDN2PKD+iq1N*tW6J&{U-6V zEw1X)5Zn-iHL%%t&w+f8g|=mN!8vSn6tuO*j`$2E7BO9MQ~m8XD^1DAkCXtYU^N@q zZ0=Whf)@KLyu&#(oOIRT8StMqCiW2%cjax4i})~=w~rz)p^Qk4cA5xj=j__^Z*Zk* z3+%Zp`c$d=&E_c(+c2y4&}438wM-C6o=^9zp_FRY_&XlYoEsn)H%lZWI3C;c<8?I< zdyuPb7DSq)PXTONPw65P5HoV$m)apx3ef~9DR`m(!DXmW(`<@~Bp@WI3JnnIQv5y& zYRvSE$UgE*FGbDOD*^33RrMj8OkibfQqoG2We@q!X@B9U-ym}5q2CHLVH!9Rl>%qk za@|1TX{Zk+#CQNE?7Md(CNx26MQL4vStIQO8jhrOEi;M{xBi-FN3Ev>(cI&kICgYG zof(vUpsnEyKSd)AQi(el2Jj&jvkf1NXlopz;otKn#R_J10lWdL$^ZN|;~Q-=lwWOl~z@&G*gaEf@`UYj-=^kku^eaeIdk z_cY3JOWO_;a_j|zLaqc4r{&VK`x)-1?2LW2NZxylv?}_ zD>f~ih3vk_RWh__GW`y)%WZJVu{>fZvsIzj);_tVKhoN~G`qTTSi2a&RLFn^8scvx z-x-gZrJJizml!<7P!nDU1=d?tlb`_0<<}XW#3@%4a*PfXE|lwS56dqqf$6UwQEv>YbS*q9UU6sHOf&B$-rlqM4R=H9UE3EA#kx#UzJ7DYak zk5JLlC;@afGbC>SYMHNmE|}MDLF0SMJZ(w777@+XEE8W(^(M=ElE;WsW{m+E#j#4b z07&Lw`Jsz30;Wd@VzQ+T#LetQ3p56$?V8^JzuQ20f4%}c-D6%qXy9GA#!_7AVku)! zUIoJbT4A5w@c9>O8qwX2hLRu=YiRHHRVjoI)AzWC`Tbq25TXxIprc2K$Bl+hQ#2hr zXXmDem%vSvOV)L#K)sD=S%+s%k#f_P*r2eY?_`dTb@GzH?Xam6Llf<<_X1Lf9tg-h z{dT`3QP26YS?t^>$CuqoqQU1Ay)Q=%THi?m!D_F7(YJhN;QH2i^E8ygBTtp7jGX^S zK2mgGC85E4;M^UdE~MH18Rph|Hzb10gVg=!ijSp#!&`Wt92hJ4j}BmY&jVP7Jwj~h>sS=r;ypdrN0diF z6`+Z5V5c8pTlS3{Z+QYIsMhshS0{H&A5A_l5Y-4sI%;NsZ7<4Z1H7&$q*EaJUF6U$ zm;>LEu_l+_bob~zi&+QR>%X7;lO6B(Vu=2bqDrIZ#(e>#<69p-_mM&tp=L|mtzSgL zu(CUbn=x~D&^$So!16t)^YV~WL6IiWg#WgSMJYb^gki!a+lP+WrG3voa<%l_eZi6= z;6f}YD&?L@NMQLH5f76;@vHotyN%A+IR&N@9l`YcKqpq@>QKGL=LuR#-uKRMrTlL` zt~U;SbA^V~>;bXPm0n{M1ENCfhW%nsOEpnN`kPyKIh+OayLU2D{w&IjIYKaG#7W zb%YNGSIL+1?r_|&()#g4uc-_e>QxLR_r~Pc_1a#OV`|MkHP4t7RDZQ)P;Fh$P`W^6 z0Pm9w8lIiczwB=QeFjB{d$NMJ>A?^5{<}|s)S*!G0yz}?P2r6H6@(fd{{T%2@IOI) z5&j3z?EDLISH3guXZcT094jXLzXzkAm~ku{WHuca#c4RMkN+(=s0XKNBe+DuPGCt+KNXDQTGep3Zl>(cR5O>Px41pr=8M5glmF4e%}&2#K@a|n zg8u%w+<`bCkU;-IXM)1|fj9v0AM^(zOt=mH*vOo9|0kp#RfnbbRjFQ)K?oJpr%qp_ zfXO^F!?>I5u4Gf5l7-q-{A0$ggdp%47zCCCz$O>SD*k$fK4V*aWq(|51!mD@J_SKk zXIl}Tf4$>57WA585Ih0moyeKrKkwvZ_N+ZX-+-}C-u zq1BBSVS_W4KbCq!O(pcsc%0Xax%}s>J39&Bq8?r~Z>xEL|BAu*)>hniB|O}%n)vwU z{NpNeFaog0U?9mXp;g&^QW6zmC#pmS@zSnN$9!)i>w0?`k zp9yrpOkmXk%qVA?4EMbAPwju5Vfll?+K3lc_z~|vAnv~(0v>pRZWbU4CdX9m%2Hdg z;{P7H)2gvjJk&GG7v9{p+i6VJ@7lf-6fIjrS2u6x`fZo1+GC%KD0;8N{pOuZe>RI1?MoRqjWtts2JR@E z_J2SYBE>;y;rKsi<%GCco&R*1lndTguCp^b)u07y$dT*VepF>#DZC9n2b9)T{qG~#`|AE@ z;J-D0B+6^CMHmVS6GjGqNQQOolqdr8P4pmiov!{OUL-r8|HGfvQArQ7l>yiBedX#l zWVB@;m23CdvtqHu$ZV+5GAO3FuVex>nY%5}35OG5dtcg}0f5i3)4GFM)lv8L%sUK^ zY2@QZEpjt%L(%b*ouYsHuAo_ zA1oTYlD)TEYHJrY_Osl^)qps;r`5J&y{48xyC+5Hpf43JLct;3Q|_0`YX*0*gg&Jh z@IBMVeS5(~BZNW$N+fLsDK^@ZCyko;R<>FAmzE7q^s_D@H~OnE#!&<5qj*GYwZmtn-`HjiB)3J*uz1;e;xUfNl5fT`VkOe_7=iVi zwb2E=&7)<=P@Dsu#%?LNB*M2mw7FY6Vt1UO3FC za40gMwSy!E$&16nQbE)-Q90k@(*)nXKznZpFNK%}A#to+6uNlAEtH^l<3^j>R147b zoXAP7y&X>Tp!_b#HUQ-^ty~pEZ$7SSo>%<~gj0m~mu=9%Us+Te_1aerlPZM$$J8n4a z78N9#p#UH&x8)zpxHN(1)qsTnoR$7DLMk~3<1;sNhhe>xAtk)>!jMj>pMu0u7-?0| z2jJF5@C1Rp1cM}BfrKo!=<`fbW9Sna!Q^iS zG)1HkHS)1hz;%yMi;;$CzP_{PNJSGB3a+hmrRQmoWMLrc{`rox(^orPTKqSjKSO73 z0~3YlQthV%K|Pmctat(}1d4JY0UFHl=9!M);GrDlsdrbTKZqiLmTq}5u#FfzjA~kC zu^=+nfKW@RQ>$ASWC&jtt^e@EW%-qlkz>)F$PJ5HzICSnfcOB>Ui4+@^9=IxYk{iN z&fz=Ov9>9{{0fH4m~UQx2`nDMAq+KpBbO8^tP+{%i?;`h?UR$8eC97esTbPcbAXVd z;SNeK-lOTkO|u*MZE+6oTbK%{wv-Sc>OHyUTz?o&*`6 zw>>f8X?>J#wr%o3s-lB^luEKI=LUYkkU7Il zDG(cE$l3q4>@PgU$#$++AftKqTCZWPV>O0e$1Dkx*PcGzDLyj-&5z$-9n$E z$gKr&alk(;W)f zO1NZE@SWm{CG~Hbt;s{*VsfyV^*Z*!s-~S8eo-v43EN&bjhr%k!1>%6Pz@ejFoNoE zXu4p5TLKopI97C;yTH9E;3C{_gH-AvKcK*XAd$K2=m7f4Z2()3F`_}jlv*2JxZfh~ zE!9+_!mOX&R>GUI)OmK1PvAm6vywD$9A)shvTmK$M7S4iqEpjnLv>9NL5m^Tf=EqjKqvo&2BOMa4QnsuB88F8z zw_Dj8(JCVJGCXBfW%|T>xk-|N*9>HB)4kDMJd(=Eils@0@r{L!0MXLK(;@rc6=^>& z$?Got590mwlqJ3>CkI<(UMbEQIF5C_ipX97x+oAn8V@EEFN1QQ@q1#;qBjz)7X8lB zw)YmAEJGtk3$x&~!$K-(^RbW(Zq(cMhto;e90ddoq-Px?xk-%#B=J-o|bl6{J zy;>Uts2?}b>okVi-*eG}FK9$dbDr?CYy+EM*=^53+w^pQ(u2wmabj{mxHG@k0B-1? zL1Szslc#0Y@5S)U>G?sP+wouTbBb6c)5 z_GA0u5N5P5CqWQrPxUx%)ufMj9c|C~7;e4H6~L3(oNb5!5zjO+p9b?x*KP;RF{}V` z&Q|H9BWujt?>qv?(jjy89D=iUfoebQm41)%7cGxMa&U`!-{9-pu&-qAU-a9~=u_b( z8-RR@2V&BrrWf|Z((KNw!-bhF+t*2Idxep`P7oVAEBsIwrU(Vt8cx0?ROG(k+~-64 zgB_STNVkzLSwXQ|uU(HvOn{+(YjZ`hXpk8L^#6>QjZ>7zAzJHFq`oW9q_JZq$Nr0R zMKZq$*?d}f`7*YBE`Iwm7%ENEX(|t`Kt*2Gc8?$#Y|D$bbQ@hU*K95|HM0ArwYV|& zf${9j9rFjp5TKERiOWM0G~==_2=u&qxv8~F;jbAGMn(#|Oq(RK^w~!P4mK#!UwQA& zYl5V(52dL0e3{~iIl5YiO#LylMSY3;_EvJE7|QODD?%S;>ABrdeuEF{SxL{z=GJ|= zhF=g2L$}`q(e+fr$0nZ8SQi0E;L-L@bXCHAd@+3*(zv`Z4u)D2Q2*!r z>Sg~4CH&cy{S6`c{`QYP=WiZxc;hVaM*qoxQfB5K?__ucLLXSzb-45#SOM=?VM%th z`R8Iu_?bd0?Nh%s+a31{Y9v&4sUG8mZg`&7(|`5VQY_5I({w?$1ZrXIBbymC48|MQ z_f=W_hry$D=K|`1qaYZu-C()p;o%lpTS%7zvdedrp{g{(K2^kyo)cICxW%s>h17yx zsrp^uiTB!E-yjDFKIK8qtE@94z8+x_@V3s2A_GS4ps7N`(s}UpbGYG_RE!M584R3# z2_>(}rHQn038%MitSHwc5+2X5x0=HjWRb})T@Hf{d^u#@o*OhTFI(S zb_dfvkjvKR)nW}-(@7zvxTR6>)V;)X=J8^63RA!nDuv1W!P%*Dvl*k)?XR_$~a*zXC-|7moPTT0>#1O@6g9|b`yCqEg z-4Jgi(p9>0Fad!1f{s>@7`S;!i}p|Lwec}q>`|>!4G1L&^ULL|)^kr_{7ec{X3J*b z!eR4s{w(eN~LRaBj*{+UM zZVry1h41=T;7)-`efgo?4XK$3Ug~v%2;xP$(nksfoonpN_ZvDq!45*h>KJHX2~zcL zO!T4Xrvxed43=p$UFZ^Q6m*%YJZGIwxg>E%QYQ5iG>i*bxHD0Jz8$M{D47R9j@@Y^=$UXR#L> z85s;_!Hgf^0yU*oqw(%1$Y~HJ@ZR+Y>7`8I9-Jek)n^v&=bd|Q2dZBqL7FW|?E?CW z>ev2=AFv&RA1%UWTO6HU4UGEG&Yj!ar(smUYp_T_a2>=>vG>*dWY^1<68sn|{1DgU zQKNm2yAm}kofuf6xsN>_T|_3GA}`U;Zrbl9EoRs6Bpv_{8D5CKMpCpkND}P?B0V2T zKg-*dmwnbW4d(Oj<*OjQEyvA*Uw#L=0U{Mbsjo|WqxC&WwV(0}dpnl2t!rbn+pS6OWYU2(oF8>i}7R&)tG473S_%>h|$ zFWm6gd`p<@F9L&p%Y4K#wfWVnDRZcTTBc7RXrs=(DOOo0P}sG9>YW9j5oE$`UFQ`i zWif69%(-hFfQg%d)qfKJUB+8Rh5RgyrLrY2xhq6jD-5=9?FPm%eRsZ$0V+`w)djZ2 zl}4xyzu64K^@x|y-BqXI-kd$T2`J4V9D3^edaZSB3l}n@cWIOInvSYP+dcluDa{!| zSXjntOV~uy^X}74tJhn?kjf2H!K2ciqlzO}t2HZHB%hVuzTvINh|ajgwKDxEOjd_o zQQ;}3qlvy@pON*JA28XYF4T5?QT}9_aS$)F-IcK^>2-zK$lSfMFl%f_pxSb1f9k4P zWuX+Oh(LOz%}9|{*#3TjFhl?7SCE)m6YQ@qRSv{Gx%E#X!30Dft_EW?3#s?u0fjw_ z|K`DYSuB~Mo5j606|K9cJ35C;6FcTAXy&Z_*V)m7S;cef*EOOY_aT-<`F3D>{V1!J z>fGY|y7DWSB?;K3ATutJ|Am@A1ke#8U^F+FlKuT%NHJpv;-y=tg8N9jT##}bc<**x zO=)h)(;Y+Sy~?{gOWB~Ae~WFgd6dNMM5(2S?mB?yR$-+qhups0O2h6=M9Cp7`M{GJ zaV;#J3bqkyEs@tX7+NBgS@5l_))5eHkROAEF2-2Ns0@O_2gZn~+xmR-O3cqJiJ}$z ztn~?LK=J7+W_rDF86KoxB-jz9nMwA6_VDUubtAcJi4Idu9InrlfX|iPE`7_kWxcST zw>J@Svv#yYW^h8=`-gOocEe%z)-7pQ1!0U_79)_|mnNy%%0-J2&a!I#g8z@Ww~mT( zZR3Ua-Ub$-2uO*5fV9#j2nZ-CEjc3H-2a zyx&>ptnXXv^PjyJ3{%f@-}iO>;`-5DSD8NCDH?^x*4czgdv}aKTk!znu<*JgYAFJ| zM6?qOKKK=lK{GO@PeG+zew`9K2!f1(hE|zwM+O?a5X-uSye=Y>x3YwfJAMNu`-03L zvn>zOh^mz3)F+K7xi}78--=*7)uTKY`T9Fo zmGpnM_wh{)793spHSZxn_>nW>N%eFUZj_f~H*>iE+#6@Y6<=1vMd9Cs;rLqEzL=0` zqh{ip9?{1_SJuO87Z+Mt2B*};gW!A3+E!BIz!Y0k<60b>9B=tAriuWS;9@6a9S;#sVS0=ttClPM6@~R`o zJenSHfcH|#xyKxZbvah<;*hJaX@$v_dVs3?TZm5mt{lok;c(ozt z2n=9HR4Gt!IbY2%d~z^AiLzu9qAv*MT;5f3$}bzHwN)@<-R;nXYT6ZSzKXNmjyxV( z5A9tOq*{VO{6@QGCJe}D-DoHxGtkX8(7_j#s24`y9C%LM-~MnFL4kF}I2Ci+d#7)_ zq}(swY(QZ*Vo^r0S?RlmFDr_n$sS2-kla%)6)!A`w3?~ziX^en6LUPasft(k2zWFyKbAtF=HoX**2 zHg}bmxsRl<^fauZBjEjpXGxAhcD|+nE$zMLGsx?Z0WY?7t5u|5@E>Grr8xM*x%RR%xdh)HQvl{Ic@69_VvY?CAS zw3S@b_U@tz)%T91(2c0MqLtwvA3S%xbLwhqIJS%Pyd)wNI&LdK=XfdeB4qcxwFv0m zHHh+Yokgc>O|~ZR%JEw)6ip0}k}6cKC;ilZqEC$mG;wj=*G5<h*<;!796Y^A@PMB7$_wM$UxBqZ9(q}K>Kc6iM#NhF za-mhvo+{Mx*{PKLEs*kpr%kS3huHeeoy)WK2=FnX_H@$ziWX&Sw4Lk|U&hJ2*3A{`fi?OdL?G_jLC8NN4hvc06A!Y{{TF6tJl(J`YV{@qSuoL6Mh2qE z2j`_}>n4`jl*C{e&%bJzC8gnN1rXsiUefS{5`p=Av!>SB42=hcR#r_Y0d}nj;{b@S zA#0EC#4dOIM2<6Swb+git(JO909q^+Hf$besxu7}gvnOXxxr|@3tUcI zco1q=r?};b2SbN0DPo>8rLS(H^Oyj?^hGznHWk& zgv*;U^>|%lwGPJkWlhvm8;~E_H-d(9hwYz^iB=(*iz^~eDZG)G;=;R^Vt)JMf()OU zfc#ronT}8Gl9vcBTu@~YkyOpU!*Fv(L-(o;iAmvRFPpdZ!_U9(Y2{K9mk)W)`FAUM zYh$Ws>?T9`pEAqccqDV=BT@53NXN63CmOodS(bA72ZscXX)n?3^@g>hp4TZKi~Jg6 zw|}QHbYZyLW__C7FaBc(cXpe#xRwljQQQougWJic%W%4f`2sc%Kjc<~Z#BGhgk=z2 zq}{$l%lKImUN?^jwDr-XTA|> zth|$cZjTdMLuH|{Ki zb7OuU33Tobbaz_vRTVBA=$ZCkzJr)!weE z|H`)xU@0l_JQ~Xn1PNA)){$Wr_rtjt-OMKOHg!ndr_8r zP#7wThZR-ELHHZ9^Ue3OZjr%$XxAwWL7ZdN?;}8*)Rr0gk>S1uKh(k5HO%ia3mr3> z1se;enG)6!LQY#-PVV%y_Yl`isL*gLW7D`Yj0V->$19y)P5{rQ-o$Eu!#Z(l^Ymo- zk7rdM%18I2dE~serkJeVOjx;^Rbi89p*Et^<^31eTGjL~XSrf%jq^)C568PZOa)<< zV{4sbnHakUhq!#}PIP3sGo&ZOK{QHT#=-}@D}VKX{x4U4OQ9WfkW+rXqpQ99!j#Ur z9A+`dt2Jq<5r>;#Sp5AMc75|uD}sk|?(i)I#e2UxhnAa!c%yX9DCz0Q!gfm5<*d|H z-$8mX;>5{#IMDZ+eHVKyMa%h_bA-Qb{Ql|6l}~fsLuAEe^ibE`sp1b10Mote)TvH; z@ax%7nJ)G7f++UpoF;>4+|u0d>D zA@792(9VDI3H}Af{UbV{M_f9S+W_?J$=~xjAO8xV1h5>#jlU%eAI=8c|7l-86OjDR zstf~<#X8{f**;c@FBhsldkFTeH5VV2lM2k~T;9hNy^s=cQpd-mbc7F`YF^kC1f4`( zycvyLmfihu1!dyYCC?oB(9?OxFJDf~RBJa}T=we`h9Vpw@@jd(C3C;q25BmYjLk6w`7KjR7WJpo3P+td zgf#Xc-bX-dc@Wxlh}@sTQ70N|rafp9`}7`6J^+9GYk+w~nvNk0)i_(eDDkvH7q{1Gza4nv7JOdVQ25aRrG&C` zx=ZcC26f`3ihL@$+rvXX*EVR_uTZ+P*#--bj!=HXje_YWt4SI2qacv5iq5P%P|bJW z^!mA|g@WuKx2^GV>kD|8pkKvVK~Gm=`UT4JOrDWB7@y5?|2b9|2?jMxm1*VF8Xj`) zJ!`0stu+dT5vCNLc;^Cde!HT`lGu|IRD+~^gW>T61zN;D8Z}NC(DMRZL=p(Nftl_gnK(;z?<^PMFx zA(b@NcTLc5TZG&m*Bw#DSk{R<;6NMxg zCil&rD7Ct~bK@?Ml$EE@yvUS>@xuE4l4fmfKCrl4_ESz>sk)dEpAz;!JF+Dk>GVD= zQ?v+-smM`iXIZ{QYiL?z`^-{gnPndNY}oxMzl%`c#|ZW<%!g8rb~I^HSoMdSeO4gV zWu5KS?`WH=tLQ}w{LaOVvl6Yg+k;e9*OWzv1&O9$Q%a*+9 zC*5a9?$P?t-hN#_B+}@wtC;MLedvJms}HqDhc2v$g~E%%jCzCYEk?W646W&*6c(DF z=_@y!bhmhyt7~#Z{EMtn;$V$lI&+l)Q6|I3Dn>*bEqp1q&t~tupKk*Bl@9-0cKij! zd7GshtS)*9!OHp~NEeDzus7DcnGm&&Go)_~NG-|2^ixC&)CjcCDHnQc4fA6?zcSB# zq$JbCeZeb1&wQfjYMiWQgnN)0IuyNiMLk#^neEm&n)Frt$)8nW)%44Ad>zETZ4K*g ztIKI%>NYN+F}UA#&F08F6?p;cQ?}NrA)H#Fc+>5n!U>N*iKnXWa+~=DUvMUlR&Wy; z1nEboXR{hsaJ^i4;frd_PQI{7z8rGX?c0z2RbFY$)@u~KKeSvTK)&Ia-zcFj-?hIl z4u}uR+B%$!N^ezNy9=Cxnh-i{sT{Ff~EZq8&Rj|nlqWBo_jqpDdlOf6kFC&JI^RolKftTsK?KcyzX91W`ZOxJHNGc;Y{Y94a1i&Kv*Yl8K2Tr#<-VCYgn{mDA)%V-&sPQK^qzqlSjg!ETWGzn0XDPQcxQe* zHAVL0i{Quv1A@S5sJVQxzZx77;QX9F4&J<02gu~ zxsOD-OKABM&1kP}5Ew{wh!uvU&fKe{eKpCoEa5bAH@#ufWbBKRm@6#sg-0CalPY_O zz2RS9intJV!ndP1l3k?%WPN|@?|r);o_}Rk;;%DQX#{_U)=Tsb)vLkYSWIv4J%49j zwxaPnZ(dGzn@Q=w%2w=y9`|PVuOaa0DeU|*0bx@EOgf%(pa-J)Y#3V_^xq%>Yj4Y(!EprxZAc>hr~;4XIQbRuXQ zt3aIqZWerbRCWWBAK81D>K5AfRxYFWsxA~?gUDWL!#O6BX7xV|M8E&8x}oC{s?Y7jrBbxFm zo9xT_HRgF}bX&H(3-3x-c>X-4+m?-6xJYLEdx^ewz{pr~BBL5Q^91g&34DUPp>lPK z>3()~XSC(4>J?qM=t}8YVzrNa6K&`9Sun8;ffQ}_lKT-+7)BjFv~@x_CaNwiy};on z^Oj7xrY(0k05N)HQW1ig6!mr)doz2QKU~ri-H*TQmDR%fCu@=e^qRso{+xr`OvH4G zMPZj5M#Srw?>s_k`Gq6yZA}(j=(V2k%p@=YJVzn!#0OEHHy~;d zTjJrZ+d%L^0=ad&(VgfScJ0tLUpmGoW-?}uq>|q}qH5{N3>yq*=y7ncdUYS^MR$U& z*ufwudQ1g1P0fiFYlzgGUlyE7Qv6es?8l$W`kI@8B5qfR2vU#uA&4!avdnc78#8oO zwMUyBzq8Ttq_x}a)zCFS!qj&)DRy25kVt7caE8ql47kK=Uyn)RZ|6BT7T4!T)e+9+ zKU^Sc#)$x5$PTrWoI(Coj;;~@(ch$6vsZ6`0G8}(geiSaKMV-37lydioWru1gI}jj)D)69%>JN;LmTV8hI6t3D3`aqG6` zy=5z6;=+ik{3z==(-fmBb1X=nszFLTkoZVakzH;g2!>nj6~3=}*5b^04Zsvk&LcVa za)*$}N+efN(<*{0T;t~=tGBJgM@Ko<9-cULhz76`J|BBPYO6wTohuCIx(6a%6XFU! zcjA0`jV%w-brsZ`5*syZixaz?0kG!q+>@Nsb=WfE%AJ7RH?GH=*Lt)@47>9e$tGHW z#CV)LoFU+Rj+q`cMQhFSr|C;0m#7s5d{lb40K4f}gg&D<4;lDi06yuGH54 zX$4Rto!K0q=&CSGs03kFfvx-ecsYu?`t%R&7{z;9nYK(rWR@)>&=vHikgy<=@)56J zfj_y)kx&ue>VCxNQwC$MQRom*-nwBe1*Ep9EgZDAsQ6_!OgQNZh(MB?Eem#q9R1vrrjO!o6{O9MzXsKK%eZOrIXhr#PBcAq^ZZu31X z3?YuC?KbQrL8x)3_6urHJg^l9Ljd8wiw48b5QF7U&nt{IG#{?SRgb3d-#F|LjHAZT zjf-1^>tjQu>{jR2&3XU{b^ckI@Pj-|t9Z+e>(g$Iuo=C1^}jDAMJ%ouKnQEf&p~>o zo)+$y1byrHPKVfd8N)qc>vE=ysDSdpgmp~BC#q#D0cTQ(xw;D@f=Sh|Q4pNWw0G$l z!6J=0lo3}_yUkxK6enWRVs<f|}6(?3MDrf&^3NRQh3ak~*UM9w%5Ro7H;GI7sX za@$pF39it((+R`1|IodZSih$P^$7v09{ef~!Z6%`Xu6H~;JxtL-Y-$DMYqReMLfE2 z?S7{z3AZ-HJ3|T|lZo#3u3CZxnZ;ym?=+NKSD{lz4$*y7s7S9DU)mO#p7*RHxSS#I zwPl{aKMirFbp(}?^aWi_hd!msd@yaxyJ2a{H~A1jxJ;r8ibRE!P+VX9j7AN8yvTD~ zOm44yx``wE#PhIn3-*|y}lDm z22>jn%pF|>1D8=cX1O-fehQu~%S`2$b`THBkWDFULybkJB?8Bf(|6TtnqJRig4^HO zZ85r)pL^$2G`SoLW+&r!j_$Zn>(DFg9s-AT-zHpqhVd(OwfO2BlNby|a`*He8)x26 zu!o$?8k8u+cd0>V>LN2!p9~Ze#+}mU5oWCP-E3eqy9r4Jg)=BT!Q`;ITzOgxiHVvR zksn>VI^)-PU>&UuQ*LHM19vhOIjEgeDlctJiB&84fWNARw&!UMWi4Ns%UG?bQKqd} zRVbacu&sHT=&8B8TWXlxoyDRXVs#rJe`+T8T$4#UdIzA^O!wFLKeal;f9l?v{3=(Z z{o0LEjx~=r7@p(a0;hsN7#yo; z4J=9g7}Lug;y%aLMa;2G`DwXj1neGV z$J3XJBd>(28cwAzM?4t8Qe8RQM5-QLy-QON$S>@5Tv6*&@A`gfbi4L>1tfYp6d;+U zeLQy0^(gdo-3;4;l{CeO*FJu#*Se7WJZEL94YisUAN~;_dktK99p%mgB5$&qJXuq? zr&px^UY}^Xzb1 zeKq$Q1?xYbfsijK5u=}XjA{NhNm10`W9gyLpRG9x4)~FR_*a_H513ZaN$J-2#Sc@c zGG!toDGW4!n*u4y za5wmQ?{kUKAqVwKMQ#%O?R%18M+9UJo(SzK+S%^TV39v_&z|EyRefj`tY#oBVo zNMb%4nLPYxtuvQf6FcJh_}Tje@Y$C14M^l#XE|AN2AIIRo9gB-@EgJ3t~wbuM1J}1 z)M>^X(tT`O=*8K~02qu*4R{LOyZh#zAFUnTiDl(sa%c| z+2v!EZMca_20qcVPXa#d{_Rk>DbDKqP~?Q2`snc!4*@%H)!rkoolVX;`>cEauN-~< z+xw^Jact57YS9?X-a$9lIy)$yeL47hB4)a-!S?azKT%omMr)olX~+7Uyap(-pfUx# zZ`$GPv48$1tN8ROi7&NyLCdGJALBiCy`h*gKicmf{`$c`BU%6DWb3-XgQr(W;9>st8-1wXA#s)Y@r{4o+8JOaU+Qf%89KSo zmNszK`r_}$X>!P$roX+P|4k+OZ(#bWI@Iq!Kg9J=ZdKD%KhV?T!uy*F%7uXP75u~B zKU!EO6YsI07jso5>ohcHeo6ddpvVF=fTq(jBqQ?I%boqO<}WEK7#Q@w_4biK&Y#^I zzwoXCf2ao&o<-0BgA-k?=99( z^Yw8T0EnY%FrfWbO)&yBbzHQiX+VHYD;RNR?p{&!d^4LRRU9L8EO*tRv1CV2ib?A?5U&mi@{4?j_ z)YhDDpy%j5<3`ic_wCHTC(gN&Kv2&Xh`KgKg6);Q5OCt*b$=Y!z%%ei(^r8^_@K~d zd)0IMBxeF(_q`T;jqXOln2zuOl0Pe)L{dK=>FLAIY$+t^SCnhpfNYVyu?l^1?omHr zB{`fQT=-QLJ>HxQu|LDsW1lL^$jwv!j>wxt_3IyF zI?jpEHFR<)YA(+JNW}$md4U;xZ1I5@WTDOKY9>JK!WWipd%QDQCG1~>kY*tkxck*y zU|x{D5H<7`dMo7A>?&i8do{4| zbWROI>uWNcEb=?3YQTy{xwA zQ%IjXV+Lyk_4BfNCql>Gw4`I#;3wW^$IG5bsFZmH_4(p)j~>vC;4F4gmybtxP|Lem zd={8OM|Y^@r;bG;k{o0U4`@pjN9JmM`lfIgCKtU@%sXW2^Cw_x=4{U$NC)C9%)?+EGy|EClqV$A|T9MAOU3+oH8aBBj zegs0rK(CnsFAKqp^r9Mu0%39|i>HGQs2h#q{$uk z1e?2qT&EegJ3KsDza=7tlRr*NaHMR6V8ewBj9qRw)^CMLJq@3eJ*fW_vQWWiu91Iy z3%?OIQhb0qOvC!H02M+|_-Uo&5?^L~oCPU4EL}pXsF^IZXZz5P%GoW6A10BM@=g7$ zq|3=2U}hT%F~IG3_BrhXZ~@#iSJ>7S05Ma4%xI1IV`+78cd_&VTPPacaC2v$R!h~Z zWOJav{^VgI!rJ`FEqcIS?A-R^0IT!o#;H((?ouy@ zpv_vUPu@8)eHFk>+z{MfNcm3i$K}gCR6_jpNW;0t%E)Uh=Dy0{krFtW7P^V_0bZwv z!x;Cc+K1nhco4j$9KzNyrXJ4w#5%o}pe-+D6PY(L?WTMSJZ`)iRAd!SjK_!IYP*hR z!Z?ig+4z%5q@+fd6~**?>VyOyek767kd$nuB|8bR_j0=o(%XpdVnQ@X!B6Sug!eNz zwl=<49i~gTK0bUv+M{KlsCwP?v3EnTAjT$CZyJ3Ee9w4b*Z&5jpi((Dw%Dys@>yT9 zR!cdEh0VQYx>uxB4XWPC8`gW}GdAL?N!2;iV|&x4x-Va8Qu_7C>qwpMrl%;+)o4IP zWdpT!{8jNR$139w7AKyLngN^_1sYsBs+(JJ&g!bUX~pA$%sUMpDbx4u%R}}|+rN#G zf~H4I&(%~tZR|7)u-0wGmxMsI4!m1X84EW1XnT zoRe-6D=?*d)!4FoeN_Ex86Np5`}?MOa%MDh0x__aR_C>0F4|ek`X%{=oLc#rWw`un z2Lj%CCDyTjkU_G(iL|j#{B-Ft+SF=9EuDmq$0$L;R?i|MNJddU`ZbQs@cxg?JUP~w zEG<=rRb4JcRL?~B@yE`m05+Wld=I_ZMhACG~98Jn{FC^hMj;Q-ARK06&icfsmJb=f;!f0U{0O-U1=4uBtT+1U8{# zg&j?!r?z_IL(ibrV27Rz{NB4x?bHRVH2j?hhDRr++4TW-3b2jvpO9w3drPSUDeQ{g zmwKCG2$MVnV8ukv6d(ZR7jtuZ`^3gu@~1vJyQY#CcDu|iU+>VW7{jOTP{NCh^E)g{Mz{XSF@`UcY;9%Yueo^ z(v{-K&9LPi^3jAm#?fUW4}0@@188tX$H#P^;YkHqe^G2jJVUie37ZfC**2@2^}Iq51aO0y|*@%Z;6NJ1OHmg6s-$C?TtWo;Gg|M5C8ah@17+ z#JU`JC=K_E>v5vbL#$}2U?E3d$+14M>hOCgWm9~v^vBXZRp4J4 zBwprOemPjafih^W3J|R80VSq}q)|(UysU2igb4eZ;L-c18eA69yh9-`AsByLQ(UyW z?{#nltS2A-0kHvh556L)0;OO5F~cPZ{(FE-I>HS??&Bv+fM0=1keubgid(s%-`z{! zwy^A)x-J2~?s?Fxf4*gTfI7X*b2Rt8?cSHD!KrWT zXs>&ZOZO6fNA|nw9Z0B2#R(ojS%#7Aw>ekIcf(*VE(Y^O_fM zW#@{~z7y-XmN{0{qIV7tB)a$P>bc=vQJ@~CK5*D%pIOm@s)T^|C6{>eQhnFnS4bS= zXa_3OqUP-2ezY-VN>{P^1&`6qlh=($F9c^EH!*JyYMljBgJOt%q}LkVTUYq2+>vLr zn5EIcgx#UPafm=WY`p4^)569cfBAmO z77>*8Syy^}f_Y?PvXT3W=6nBSfLnNuY7Y5*z})=26;NPYORXs0*{Po(9M$xWSq_fW zs1!v6F7{G@To11?ZtS@*BJ)R!1HqXOmbv!FBln>gXI zJMV3@eI=$%E}S{V^xZYxk923PxlhXv4tO+<3-a6Rn(GkjIBix0;%?;eTQkq(#wzA7 z;kes*d{`St=W5t#$dhrNmu{5_hnfYGh{OC0(qev5xtHMhhBW-vgbKf)n^-k;o}eBz ztx#3YXGRmE6?m`_1yTUYGCBPt>iUmD;a(R|CQjjvfMIC!`3A3F*!tl??5#TcPCv!; z_CR)=<)Hnh(ns()1LUdu4cxzMon*K5+Sd$ONEH0+){&+nqDn@aZgp1*AupC(cSf|$ z8fnLr)e}wYol)t4hPx^a%@dc!_>FSPQ``=h<+i{k2`L(L1y$39uFpbL}*JVK=f#!-(y2=n>QF&M0F>hICFRp|B4LF#A-5wL)-&df` ztV(=)xYA`R*j~(?W9xBxoP6gmIzXBH2~*#S;G!NG1cK;Tx;17U83h`y(M*k=j5$g-WNd@a{1fu)c(TSL&eLHw zlr(r$#b19fddDA}$esR)14E@(s?rmpKJ=7@WwF*7Wr@U)*g8D!m(17%5=eic5dewC zHq^gt5eMTe7JRR5`JXY9n2$L4>E~demKhcn)GVvz=Qrk@=`R=4c8tE@!YF8Z2%>e{ z9SaA)6A`@-@ny90%382VU8FsMS`P6ut4~-ehoHdLZ*HM z#)8dSDn2}PZ9lT}QU)B$o_ou^s+dp`3);+@xtIE4M=byx8@|y|nqZ`4 zQ_M&ZT;OHX9)acH;~oFnYYSU7$}CXg?ArPyPjU#cOapHy+%ob5SoO>27Va%iqQ3@& zK~qdG^6(QO6Ri~Sxa!TH_ML!pb!g~8hX9}ibyN3m}S2ceZ zWCkb5C1OOES6ONqa0Y>^*Wwayrcj!a@=(L~X#jkHxHd-m9@1>F>aFu-#^~xHY$)0k zwh4F{8XMUU*7^-RujAHP8Hh#HYI?ea?PPL?WPBs2L047ghwKpxLZ-{|Mks4iiig0n zd~=*_A34ir`6LDP^V=!oQm}FZW?=y-ldj(CiXCCgm2a#Q0yF2sFlqSX92jGkKRpbt zV;KDKfxTNx8%z_edqlnLdA@~oy`5jBQ(xY`0kbdum_gm--cIf7=I2^drLVtRapKwX zb+)%L$jjz5je*}=jt2-c$NU0sb%du}DG*ai>+gQr17Y1`0=KTuoZaLqqHtUrTZCGW zUc@&?97I@6ON96lNF>aYF500tdQ6*={QPh`>7Idy$(|~tG2UbHW9bq5C+(Pnlv9L{ zw&Wf9fJFv@3Cm>LuUMd&a&E&Nv@XZ4*p=T0M3&5YxZFud-%1o0ioIjAur|-|D?iL5 z?o)~+n7t7gYi?@LMpWj9oh4)IvC}KK83XaH?bs1UFEgSplBPemd)dLx-XkQ}v|MYo zTSN6K={LJ}yXQ<2z4;rNE8WvDejCMyFwLk z*XokHZUtket&vDmAW>bWmq9!u&7d<$_!OmCanag0vB>vXyfbqf^87{^<_@s-T<>As z)7;`R_1!KCfukOx<*){Ec#;?pb%BM8Pk{R5&uD7%d>0R(vc^|Mbig76 zG$%mhW^_m?80*{eFfh)13xp8hi;0|$y(4)4ovS8U$vG}DS&rUY@{tut*OJRVawfgy ze3S?!!$|}C9+EoFzzwA<4at((Xj_4{H1i~+LETZIW7RjaZ;3a}=_Bzi*JO!Tuyfx) zL77N$-L@@>;LF)WbEi!i1q0m#x9lb$KsTSJA+OS*;>{b0W3+Gcx$LpT;LY|N02-U%I{ zXY1*v$}FsL>D8hmz&?fALi&SC*b(rN7VoEx`TT7KE=m`{?V z$Bc6XKin1_{N6k(pLj{znrA6W$JsF1`Ff=ww&FOSvT}&BKe@$qj zGTNrP`0_DEv&<<@x#UGJ0d|Kv{>c#;Wi7<1F{%9zkovq#AbU(`Lh^&+9rd}O-hKX^p0^Jrs?LPhM}k1$r7ec$y;Av zD_QK( zbf2lYG?Quy7w&0Kw_f6wjb>TnegOPkC0m`r4cP6~_X8z)kJ9Wy3qoY>+SHhH(`9Og z5wY(9?*px-So>(dt+{#W(C*H>N3q+yq*-WR??ampF;mY8mt^0~x@X>PUngPdZ=d(} za|kvOm@epJ23o1Ql3x7^)?WIx{D=kJqmO!Ylae*}zqC0nsR*@b5!>rSeTKJuf&*^T z?!HaA9RWe5kae@Ft=RE)NJ0~!qiYJi3f*0p<^wBIFse4-VzoyO9K=g&xMy_mwKq^q zaKOG#3!LpxNw~g?=H}d0E!o<#g}pTs%r!IoU{LpI0~rN%nvU;=!aD!jA5*C5%IyrYW{0UWpaU?QwVZ2h3mIC}PvfeUQcy^tMDt#6#Cg?#rV z)Q=|F1g>cNE<5HPZ9RSB4>(}AR5E+nH+M05hMPg@yJYlB2*Zcbd!yd2xkBGidD~O8 zVrrJa2UIPevp56$fwu5Eqy*~`n#%A=;TC7tJ7u5QoT0n|Z4SE(i9ill$Z%Y84awky z#dMc9+(a)vx#s@N9We0mnd9U7#P0g_B*&`$De2TjNhPbSdIsJnhQBSWXGXJ_$HH4C zKku-&h$EDdeaEC|;p6JTf5fMwe+6yUG4X8)tcnkx0^{x; z%YzKL=@VpPhIOrTTYJs=bU$hW;m>Q}-4mYX;YTnb-a(y@O=gvNxRruYzq=eHu&|OO zOgQa!j$lGRI+5RM*VnRvk|4oz6IFd!?Qk+-!TD_$+RGoQVv@?>?*BZo%zCwN>HD26 zFz)w^&rC%DK669rmw%wUH)~G?D5>^d)>`+Kd|!v}?%3ACQxa2kl5sgJjvb(*J_+Wg zpN($+K<@cI?;T>dHRxhL?v33UL^Cdo9`(pAsTSnq8#orItlXVbHaN&|U7?X})ve^s zX`F)T(SD1G2^%ij{4)Tja?H3?C6qR}+7i2-g<0(S$>U;@!t z7fQ#d3OIvdiZ&gpWcZb-^4DXouT@Jf7q7_CPIe_+#2Rh#inIML zO&;>9C#DNgH>sXcUAMT?Fwpdu&*!vhI<8SA`P;*u+mOxX2&7h&i~+)-(IDX27EjK zC6we_th;?;zq!oRc+q^1cw1B^Q33=x7~*!POM#)hhccFeMfd=)BRf6Sd-G&x!#=rQ z(d`_}HkU+4=6Ex&v5$2!s_B%lwoC|gwVa8XqMcXO{vzcnt~(He-u;qgSkuIad| zpx240fAs5FueTj?BF5}Ty6n$jC<6}>Dhv{LLxLB9dG-&$vvmRho)hMIEz-d>d*8~P z7Z1f(@qZu0-MBX)T~@C=T?f^gUZKD!LW^_^LE&;Z8HBr7jQCt+&9FyuHp&$+vrvjK z5T6-3d0MUq-Vs%};n6g^glltTKQMQ#3tv0ajo@3p523$k!~cIRIVW{HamB$>#8sJ` z3NgC%mgcY7hSQ9FyH}Ec_zDPlDJ%2~XjQ{)tFZlADi@TVHWy(!HGsBDq6G#N`}A*H9uxhx81RcQxwQ2_(ES zT5LHe9tv;Y*gG&+Rxw&U8u=QAzw5x&q4lqY)>0^5krxg03N?%5T=qSR1R! zy;774j5)RIHVPg#ztNjmN?GndB)}S+#QtChb+I2BQE=xyiImHA*m^lzleUiozR>C4 zS+mgqkG?Cm0&DjM*N)cuSdA5ohTIW{MkVeGt1h8@x8&f)*msy!AyJ;XFgPJ5i)h>L zY8~^nWR;VY8tEeD{GTB^oWSPMBd%mHoq?03S|@W+vUzx5@Z9Al{bRBuNhub zARtCSUgPAVD$$J?mmJNQ?o*ei`;Tcez84f$5V9%B9XB3PTnFX>A)iwOeIlCdi zI3i-26FLl@LfaSVnYLy(euZOeLK!~*UPbUApic{ZF^Rx2yVqxH%a=`%9_^dz-s2!n z$Ma^6)0l){H|>m-DVuJ2QRSpMuV#hvP&H_kpgUK^WCoF7cDdp`dD?5K70NfE&cf$Y zv%xdoLEIM$!bp*zbK9{*s>|M3Z$l$CaK#29bYQ&01Wz%k^N;gUjCqUCRf2UZ0UwP{nJ+2* zXxd;GtdsAPHDtW9{>ah@^;m1o-H1J^o`5t-&2OvZj@XP}p-OY$FV7!Pbacx?Et&kQ zluewZFE-h3_83bO`CF7>Dul)B_oh0S<;)Gh=zW&N36}+R=)#X~#RpH!`r0T*6FeL0 z-wODi+A9;Q*!!m6glJlPZ!WWwr_~QUZrq;X#*cr+Qwg~3vx^9}UbG;?|G8l%BbgF( zo_0sTbLTv24oosxBMA<;g`;k;!h`F1{n=6W2SUf${TDbizP=mO+^bB1NkW6!vUcXV zoi#nrt~2O53vh3m8WW@4@pSm>(ccQa@tT%1#^bY4ur6|IK*@!=> zo2EceLPy`(Nu+pElQ~btU5@O$*2J*9d{Om7~mVSWY!=E5_`tJ$C*zl)}kg7E* zI#MhF<_Vwv(BG!~#X~ocq1UQb52`l@*p>08SU4ni+FK3(N`2cDuu{LR?^sX2^dir! zdd#CWEYSpI_&3E7bcJmj&Kabd_fGj&G zPwSEXyn|Q~G>J^4Bmgm!BZ2IQp|Rt9O>2tfP%$e$&#t+Cys*Y_KpH=T9-t4C&e*Jj zTMeg{RRECVqXK=Rdwx02KHz;AT@DD4o^Zwy24lYGd*Ho_OUz*SSCM?iVB-=2pq6-~ zy>Gb76i5S8WOTJWO0#VL90deMVdd|C4OS-C*(nt#0|Hl1KK23>1}K0O|5UersIQu) zKHZ@cz=q$W6kT}Euh3!D<+Dm&-5T58aS0U(~ErJv3JoJ9!MNb|^?m6Flyogk(mm-reakIn`#5Rr^1NxplaQfmt+!R1wr-j;F+ z^n8Yem}%I2GZo>TUk3h{C95Xmzw9nz9UC^FnqEV*8AcFqF(XX@Fdxu#cYCle9^5!w z8C=Ydu3wzloySEnj#4XDa-1l};TH-XTdK!-1%}w8;p(*Ms~Owb9D$#Ugq`b^v~OvT zH12)tN0~!fPX`Y-BH=}Tdkr33b$M)}-Y?o+-zSpl9TV5S!YeC5=pWjwA^1oiiieQv z-`%lqn_!U6qlO;r{=-peEAZKtl}t;)2OCblV!Tobu?AwDC{@ej z2R|^fKifrzI8*^{odwMtc@P!1n)pKRs8rOe;>$>o{a-$)=d6g+`$F2m06b$XC=y8r z$SQx-*oDz&(=+utegy*<8W$+J0sy^7xqsO?0UDWtb4qViI;mOMc>M@CaW5(>J^7`j z851B>fyAX+1V7JU46ul!8{eG)s=8!B1WU-b@vBI26v^%1cX=a61cV}hd{cQV-t?q6U+xkS3^r!lAVECPTqQr+XSp14J zVobq-Bgbuxg{3Lw=LG4r3b-?A8_TIWgs zU<^Jp3jlAlEBToUMqYbty|cy=F6a5lOLp!vliGJ%Um|o!>bwFgJGgH@^pl!5zhc)hj@d@_<5^8|*2t_#{$JWk zb{a_08Gt4v@4uU+2h03JE)=r#svSu-UBGeQ6=IWE&z1*wi&w|KipGh^tb9z)GOHhS z)S1+8LiN?|MLgJfR#@t#O%Ca?o^UzlFwRqwcNOGGrlXrzx-IwM9I$u+*wJA9EXd*P zzyjFFU^u*X;&K6C0y?fBDW=)?JU4V_@Qh{E*P~EO;=rn^dqw^UNOHCCP@Z0Cc_|a#*eP3e12c-g=Uceg*nt!a?bQ-u^41D;+ZnwOz4}i-)vX6!T`~CgQk?)Jd zBRrz#0uNYJY`%8+sTOb;bYAMZoWdQ!dZjD6_~)8`oLZf8SFh8Tf7<+`xhtE)Kk{1E z9*MjR8q=#~f3&+PJF%iTE_TA~AogD?BD?bsiT?!cjp}TIZcPB%zxGGeYLUK8R~vy# z5H|~dyKk2?^BM3mSJUPHAGoai{_yjcSZn7)&!oP|+@5*%#4O&Oi$TiCz-F;DoKb#~m>j;BqnGX#p22U%h&;{Ku)?h3j^-8_Oq zD*EnP(am*t#7eGYloU&Dw*8cP=Gp2i2ZPh~_5=4k?0wf3{Cxec-0M<4`SCTOQL*)# zPoD-(2e05)*>_I*cgoy|E|lHq~3n=myKY+V zs*Rv#fswoKoc5!+uLPDYNpaa%<$4u3iL~%W#k!;Rz*}BjUSEsPUIRSO@={dYRe{;7 z%090EHilaSrkXul^9VQsvGrwXmuS&u!FY4=uNx*$UA7~K9n_8o<{97>kMRumobQyD zLfT)T8;BY}@eJLO3| Date: Mon, 10 Nov 2025 14:22:19 +0000 Subject: [PATCH 28/47] setup guides generated --- windows.cn.md | 2 +- windows.es.md | 2 +- windows.fr.md | 2 +- windows.md | 2 +- windows.pt.md | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/windows.cn.md b/windows.cn.md index 4b3c129d..b13f6fb1 100644 --- a/windows.cn.md +++ b/windows.cn.md @@ -469,7 +469,7 @@ wsl -l -v - 在它后面加上这行: ```bash -"multiLinePasteWarning": false, +"warning.multiLinePaste": false, ``` :warning: 别忘了这行最后有个逗号哟! diff --git a/windows.es.md b/windows.es.md index dc0123eb..29c29099 100644 --- a/windows.es.md +++ b/windows.es.md @@ -460,7 +460,7 @@ Luego deshabilita el warning para copiar y pegar comandos entre Windows y Ubuntu - Agrega la siguiente línea debajo de eso: ```bash -"multiLinePasteWarning": false, +"warning.multiLinePaste": false, ``` :warning: ¡No olvides la coma al final de la línea! diff --git a/windows.fr.md b/windows.fr.md index 998c1e00..dc485399 100644 --- a/windows.fr.md +++ b/windows.fr.md @@ -461,7 +461,7 @@ On va ensuite désactiver les avertissements pour les commandes de copier-coller - Ajoute la ligne suivante après : ```bash -"multiLinePasteWarning": false, +"warning.multiLinePaste": false, ``` :warning: N’oublie pas la virgule à la fin de la ligne ! diff --git a/windows.md b/windows.md index c16aaa4f..b51ef7b0 100644 --- a/windows.md +++ b/windows.md @@ -468,7 +468,7 @@ Then, let's disable warnings for copy-pasting commands between Windows and Ubunt - Add the following line after it: ```bash -"multiLinePasteWarning": false, +"warning.multiLinePaste": false, ``` :warning: Do not forget the comma at the end of the line! diff --git a/windows.pt.md b/windows.pt.md index bb739a08..601a0fb8 100644 --- a/windows.pt.md +++ b/windows.pt.md @@ -466,7 +466,7 @@ Então, vamos desabilitar o aviso para comandos de copiar e colar entre o Window - Adicione a seguinte linha depois dela: ```bash -"multiLinePasteWarning": false, +"warning.multiLinePaste": false, ``` :warning: Não esqueça a vírgula no final da linha! From 1449548c539f98d9a372677a31c1e4fd4aa65b11 Mon Sep 17 00:00:00 2001 From: Javier Cuadrado <65590523+mantecajc@users.noreply.github.com> Date: Mon, 17 Nov 2025 15:00:26 +0100 Subject: [PATCH 29/47] Update web dev course name (#495) --- _partials/cn/intro.md | 4 ++-- _partials/conclusion.md | 2 +- _partials/es/conclusion.md | 2 +- _partials/es/intro.md | 2 +- _partials/fr/conclusion.md | 2 +- _partials/fr/intro.md | 2 +- _partials/intro.md | 2 +- _partials/pt/conclusion.md | 2 +- _partials/pt/intro.md | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/_partials/cn/intro.md b/_partials/cn/intro.md index deb57cc9..50582b3c 100644 --- a/_partials/cn/intro.md +++ b/_partials/cn/intro.md @@ -1,7 +1,7 @@ # 电脑设置教程 -以下的教程将会帮助你为接下来在[Le Wagon Web Development course](https://www.lewagon.com/web-development-course/full-time)全栈开发训练营中做好准备: +以下的教程将会帮助你为接下来在[Le Wagon AI Software Development course](https://www.lewagon.com/web-development-course/full-time)全栈开发训练营中做好准备: 请**仔细阅读并按顺序执行指令**。如果你在哪一步卡住了,不用犹豫,可以举手咨询老师:raising_hand: -让我们开始吧 :rocket: \ No newline at end of file +让我们开始吧 :rocket: diff --git a/_partials/conclusion.md b/_partials/conclusion.md index 56f70436..4c3896ee 100644 --- a/_partials/conclusion.md +++ b/_partials/conclusion.md @@ -1,5 +1,5 @@ ## Setup completed! -Your computer is now all set for [Le Wagon Web Development course](https://www.lewagon.com/web-development-course/full-time) :muscle: :clap: +Your computer is now all set for [Le Wagon AI Software Development course](https://www.lewagon.com/web-development-course/full-time) :muscle: :clap: Enjoy the bootcamp, you will nail it :rocket: diff --git a/_partials/es/conclusion.md b/_partials/es/conclusion.md index 4fbb06a4..1563848a 100644 --- a/_partials/es/conclusion.md +++ b/_partials/es/conclusion.md @@ -1,5 +1,5 @@ ## ¡Fin de la configuración! -Tu computadora está lista para el [curso de Desarrollo Web de Le Wagon](https://www.lewagon.com/web-development-course/full-time) :muscle: :clap: +Tu computadora está lista para el [curso de AI Software Development de Le Wagon](https://www.lewagon.com/web-development-course/full-time) :muscle: :clap: Disfrútalo, sabemos que te va a ir genial :rocket: diff --git a/_partials/es/intro.md b/_partials/es/intro.md index 7dc118ed..bdd99f21 100644 --- a/_partials/es/intro.md +++ b/_partials/es/intro.md @@ -1,6 +1,6 @@ # Instrucciones de la configuración -Aquí abajo encontrarás las instrucciones para la configuración que tu computadora necesita para el [curso de Desarrollo Web de Le Wagon](https://www.lewagon.com/web-development-course/full-time). +Aquí abajo encontrarás las instrucciones para la configuración que tu computadora necesita para el [curso de AI Software Development de Le Wagon](https://www.lewagon.com/web-development-course/full-time). Por favor, **léelas cuidadosamente y ejecuta todos los comandos en el orden indicado**. Si tienes algún problema, no dudes en pedirle ayuda a tu profesor :raising_hand: diff --git a/_partials/fr/conclusion.md b/_partials/fr/conclusion.md index 25e17c64..24152545 100644 --- a/_partials/fr/conclusion.md +++ b/_partials/fr/conclusion.md @@ -1,5 +1,5 @@ ## La configuration est terminée ! -Ton ordinateur est prêt pour [la formation Développement Web du Wagon](https://www.lewagon.com/web-development-course/full-time) :muscle: :clap: +Ton ordinateur est prêt pour [la formation AI Software Development du Wagon](https://www.lewagon.com/web-development-course/full-time) :muscle: :clap: Profite du bootcamp, tu vas assurer :rocket: diff --git a/_partials/fr/intro.md b/_partials/fr/intro.md index f641bd3d..91f7f138 100644 --- a/_partials/fr/intro.md +++ b/_partials/fr/intro.md @@ -1,6 +1,6 @@ # Instructions de configuration -Les instructions ci-dessous vont te permettre de configurer ton ordinateur pour [la formation Développement Web du Wagon](https://www.lewagon.com/web-development-course/full-time). +Les instructions ci-dessous vont te permettre de configurer ton ordinateur pour [la formation AI Software Development du Wagon](https://www.lewagon.com/web-development-course/full-time). **Lis-les attentivement et exécute toutes les commandes dans l’ordre suivant**. En cas de blocage, n’hésite pas à demander au prof :raising_hand: diff --git a/_partials/intro.md b/_partials/intro.md index 7d52e49c..8e48185e 100644 --- a/_partials/intro.md +++ b/_partials/intro.md @@ -1,6 +1,6 @@ # Setup instructions -You will find below the instructions to set up your computer for [Le Wagon Web Development course](https://www.lewagon.com/web-development-course/full-time). +You will find below the instructions to set up your computer for [Le Wagon AI Software Development course](https://www.lewagon.com/web-development-course/full-time). Please **read them carefully and execute all commands in the following order**. diff --git a/_partials/pt/conclusion.md b/_partials/pt/conclusion.md index 0d29a34e..085b0565 100644 --- a/_partials/pt/conclusion.md +++ b/_partials/pt/conclusion.md @@ -1,5 +1,5 @@ ## Configuração concluída! -Seu computador agora está pronto para o [curso de Desenvolvimento Web Le Wagon](https://www.lewagon.com/web-development-course/full-time) :muscle: :clap: +Seu computador agora está pronto para o [curso de AI Software Development Le Wagon](https://www.lewagon.com/web-development-course/full-time) :muscle: :clap: Aproveite o bootcamp, você vai acertar :rocket: diff --git a/_partials/pt/intro.md b/_partials/pt/intro.md index 57a5fc1d..27ea334a 100644 --- a/_partials/pt/intro.md +++ b/_partials/pt/intro.md @@ -1,6 +1,6 @@ # Instruções de configuração -Você encontrará abaixo as instruções para configurar seu computador para o [curso de desenvolvimento web Le Wagon](https://www.lewagon.com/web-development-course/full-time). +Você encontrará abaixo as instruções para configurar seu computador para o [curso de AI Software Development Le Wagon](https://www.lewagon.com/web-development-course/full-time). Por favor **leia-os com atenção e execute todos os comandos na seguinte ordem**. From d1e9a54e1847043e66ec27a8a9c0403cc3050f9b Mon Sep 17 00:00:00 2001 From: github-actions Date: Mon, 17 Nov 2025 14:00:39 +0000 Subject: [PATCH 30/47] setup guides generated --- macos.cn.md | 3 ++- macos.es.md | 4 ++-- macos.fr.md | 4 ++-- macos.md | 4 ++-- macos.pt.md | 4 ++-- ubuntu.cn.md | 3 ++- ubuntu.es.md | 4 ++-- ubuntu.fr.md | 4 ++-- ubuntu.md | 4 ++-- ubuntu.pt.md | 4 ++-- windows.cn.md | 3 ++- windows.es.md | 4 ++-- windows.fr.md | 4 ++-- windows.md | 4 ++-- windows.pt.md | 4 ++-- 15 files changed, 30 insertions(+), 27 deletions(-) diff --git a/macos.cn.md b/macos.cn.md index e7898571..7843fe3b 100644 --- a/macos.cn.md +++ b/macos.cn.md @@ -1,11 +1,12 @@ # 电脑设置教程 -以下的教程将会帮助你为接下来在[Le Wagon Web Development course](https://www.lewagon.com/web-development-course/full-time)全栈开发训练营中做好准备: +以下的教程将会帮助你为接下来在[Le Wagon AI Software Development course](https://www.lewagon.com/web-development-course/full-time)全栈开发训练营中做好准备: 请**仔细阅读并按顺序执行指令**。如果你在哪一步卡住了,不用犹豫,可以举手咨询老师:raising_hand: 让我们开始吧 :rocket: + ## GitHub账户 你有注册好GitHub账户嘛?如果还没有,[现在注册](https://github.com/join)。 diff --git a/macos.es.md b/macos.es.md index ce0c59e8..be20d830 100644 --- a/macos.es.md +++ b/macos.es.md @@ -1,6 +1,6 @@ # Instrucciones de la configuración -Aquí abajo encontrarás las instrucciones para la configuración que tu computadora necesita para el [curso de Desarrollo Web de Le Wagon](https://www.lewagon.com/web-development-course/full-time). +Aquí abajo encontrarás las instrucciones para la configuración que tu computadora necesita para el [curso de AI Software Development de Le Wagon](https://www.lewagon.com/web-development-course/full-time). Por favor, **léelas cuidadosamente y ejecuta todos los comandos en el orden indicado**. Si tienes algún problema, no dudes en pedirle ayuda a tu profesor :raising_hand: @@ -704,7 +704,7 @@ Ancla lo siguiente: ## ¡Fin de la configuración! -Tu computadora está lista para el [curso de Desarrollo Web de Le Wagon](https://www.lewagon.com/web-development-course/full-time) :muscle: :clap: +Tu computadora está lista para el [curso de AI Software Development de Le Wagon](https://www.lewagon.com/web-development-course/full-time) :muscle: :clap: Disfrútalo, sabemos que te va a ir genial :rocket: diff --git a/macos.fr.md b/macos.fr.md index 6e51dbdb..b34f96ba 100644 --- a/macos.fr.md +++ b/macos.fr.md @@ -1,6 +1,6 @@ # Instructions de configuration -Les instructions ci-dessous vont te permettre de configurer ton ordinateur pour [la formation Développement Web du Wagon](https://www.lewagon.com/web-development-course/full-time). +Les instructions ci-dessous vont te permettre de configurer ton ordinateur pour [la formation AI Software Development du Wagon](https://www.lewagon.com/web-development-course/full-time). **Lis-les attentivement et exécute toutes les commandes dans l’ordre suivant**. En cas de blocage, n’hésite pas à demander au prof :raising_hand: @@ -700,7 +700,7 @@ Tu dois épingler : ## La configuration est terminée ! -Ton ordinateur est prêt pour [la formation Développement Web du Wagon](https://www.lewagon.com/web-development-course/full-time) :muscle: :clap: +Ton ordinateur est prêt pour [la formation AI Software Development du Wagon](https://www.lewagon.com/web-development-course/full-time) :muscle: :clap: Profite du bootcamp, tu vas assurer :rocket: diff --git a/macos.md b/macos.md index 61c827a2..602b6e18 100644 --- a/macos.md +++ b/macos.md @@ -1,6 +1,6 @@ # Setup instructions -You will find below the instructions to set up your computer for [Le Wagon Web Development course](https://www.lewagon.com/web-development-course/full-time). +You will find below the instructions to set up your computer for [Le Wagon AI Software Development course](https://www.lewagon.com/web-development-course/full-time). Please **read them carefully and execute all commands in the following order**. @@ -740,7 +740,7 @@ You must pin: ## Setup completed! -Your computer is now all set for [Le Wagon Web Development course](https://www.lewagon.com/web-development-course/full-time) :muscle: :clap: +Your computer is now all set for [Le Wagon AI Software Development course](https://www.lewagon.com/web-development-course/full-time) :muscle: :clap: Enjoy the bootcamp, you will nail it :rocket: diff --git a/macos.pt.md b/macos.pt.md index 25253127..ccef250f 100644 --- a/macos.pt.md +++ b/macos.pt.md @@ -1,6 +1,6 @@ # Instruções de configuração -Você encontrará abaixo as instruções para configurar seu computador para o [curso de desenvolvimento web Le Wagon](https://www.lewagon.com/web-development-course/full-time). +Você encontrará abaixo as instruções para configurar seu computador para o [curso de AI Software Development Le Wagon](https://www.lewagon.com/web-development-course/full-time). Por favor **leia-os com atenção e execute todos os comandos na seguinte ordem**. @@ -740,7 +740,7 @@ Você deve fixar: ## Configuração concluída! -Seu computador agora está pronto para o [curso de Desenvolvimento Web Le Wagon](https://www.lewagon.com/web-development-course/full-time) :muscle: :clap: +Seu computador agora está pronto para o [curso de AI Software Development Le Wagon](https://www.lewagon.com/web-development-course/full-time) :muscle: :clap: Aproveite o bootcamp, você vai acertar :rocket: diff --git a/ubuntu.cn.md b/ubuntu.cn.md index 73daf3be..a673e082 100644 --- a/ubuntu.cn.md +++ b/ubuntu.cn.md @@ -1,11 +1,12 @@ # 电脑设置教程 -以下的教程将会帮助你为接下来在[Le Wagon Web Development course](https://www.lewagon.com/web-development-course/full-time)全栈开发训练营中做好准备: +以下的教程将会帮助你为接下来在[Le Wagon AI Software Development course](https://www.lewagon.com/web-development-course/full-time)全栈开发训练营中做好准备: 请**仔细阅读并按顺序执行指令**。如果你在哪一步卡住了,不用犹豫,可以举手咨询老师:raising_hand: 让我们开始吧 :rocket: + ## GitHub账户 你有注册好GitHub账户嘛?如果还没有,[现在注册](https://github.com/join)。 diff --git a/ubuntu.es.md b/ubuntu.es.md index d10c6cbc..ce98ea6d 100644 --- a/ubuntu.es.md +++ b/ubuntu.es.md @@ -1,6 +1,6 @@ # Instrucciones de la configuración -Aquí abajo encontrarás las instrucciones para la configuración que tu computadora necesita para el [curso de Desarrollo Web de Le Wagon](https://www.lewagon.com/web-development-course/full-time). +Aquí abajo encontrarás las instrucciones para la configuración que tu computadora necesita para el [curso de AI Software Development de Le Wagon](https://www.lewagon.com/web-development-course/full-time). Por favor, **léelas cuidadosamente y ejecuta todos los comandos en el orden indicado**. Si tienes algún problema, no dudes en pedirle ayuda a tu profesor :raising_hand: @@ -694,7 +694,7 @@ Ancla lo siguiente: ## ¡Fin de la configuración! -Tu computadora está lista para el [curso de Desarrollo Web de Le Wagon](https://www.lewagon.com/web-development-course/full-time) :muscle: :clap: +Tu computadora está lista para el [curso de AI Software Development de Le Wagon](https://www.lewagon.com/web-development-course/full-time) :muscle: :clap: Disfrútalo, sabemos que te va a ir genial :rocket: diff --git a/ubuntu.fr.md b/ubuntu.fr.md index 9ec00d4c..5f8023b1 100644 --- a/ubuntu.fr.md +++ b/ubuntu.fr.md @@ -1,6 +1,6 @@ # Instructions de configuration -Les instructions ci-dessous vont te permettre de configurer ton ordinateur pour [la formation Développement Web du Wagon](https://www.lewagon.com/web-development-course/full-time). +Les instructions ci-dessous vont te permettre de configurer ton ordinateur pour [la formation AI Software Development du Wagon](https://www.lewagon.com/web-development-course/full-time). **Lis-les attentivement et exécute toutes les commandes dans l’ordre suivant**. En cas de blocage, n’hésite pas à demander au prof :raising_hand: @@ -695,7 +695,7 @@ Tu dois épingler : ## La configuration est terminée ! -Ton ordinateur est prêt pour [la formation Développement Web du Wagon](https://www.lewagon.com/web-development-course/full-time) :muscle: :clap: +Ton ordinateur est prêt pour [la formation AI Software Development du Wagon](https://www.lewagon.com/web-development-course/full-time) :muscle: :clap: Profite du bootcamp, tu vas assurer :rocket: diff --git a/ubuntu.md b/ubuntu.md index 1c121934..95cca0dd 100644 --- a/ubuntu.md +++ b/ubuntu.md @@ -1,6 +1,6 @@ # Setup instructions -You will find below the instructions to set up your computer for [Le Wagon Web Development course](https://www.lewagon.com/web-development-course/full-time). +You will find below the instructions to set up your computer for [Le Wagon AI Software Development course](https://www.lewagon.com/web-development-course/full-time). Please **read them carefully and execute all commands in the following order**. @@ -731,7 +731,7 @@ You must pin: ## Setup completed! -Your computer is now all set for [Le Wagon Web Development course](https://www.lewagon.com/web-development-course/full-time) :muscle: :clap: +Your computer is now all set for [Le Wagon AI Software Development course](https://www.lewagon.com/web-development-course/full-time) :muscle: :clap: Enjoy the bootcamp, you will nail it :rocket: diff --git a/ubuntu.pt.md b/ubuntu.pt.md index a60321f3..52a3fc16 100644 --- a/ubuntu.pt.md +++ b/ubuntu.pt.md @@ -1,6 +1,6 @@ # Instruções de configuração -Você encontrará abaixo as instruções para configurar seu computador para o [curso de desenvolvimento web Le Wagon](https://www.lewagon.com/web-development-course/full-time). +Você encontrará abaixo as instruções para configurar seu computador para o [curso de AI Software Development Le Wagon](https://www.lewagon.com/web-development-course/full-time). Por favor **leia-os com atenção e execute todos os comandos na seguinte ordem**. @@ -732,7 +732,7 @@ Você deve fixar: ## Configuração concluída! -Seu computador agora está pronto para o [curso de Desenvolvimento Web Le Wagon](https://www.lewagon.com/web-development-course/full-time) :muscle: :clap: +Seu computador agora está pronto para o [curso de AI Software Development Le Wagon](https://www.lewagon.com/web-development-course/full-time) :muscle: :clap: Aproveite o bootcamp, você vai acertar :rocket: diff --git a/windows.cn.md b/windows.cn.md index b13f6fb1..4004d495 100644 --- a/windows.cn.md +++ b/windows.cn.md @@ -1,11 +1,12 @@ # 电脑设置教程 -以下的教程将会帮助你为接下来在[Le Wagon Web Development course](https://www.lewagon.com/web-development-course/full-time)全栈开发训练营中做好准备: +以下的教程将会帮助你为接下来在[Le Wagon AI Software Development course](https://www.lewagon.com/web-development-course/full-time)全栈开发训练营中做好准备: 请**仔细阅读并按顺序执行指令**。如果你在哪一步卡住了,不用犹豫,可以举手咨询老师:raising_hand: 让我们开始吧 :rocket: + ## GitHub账户 你有注册好GitHub账户嘛?如果还没有,[现在注册](https://github.com/join)。 diff --git a/windows.es.md b/windows.es.md index 29c29099..8ee80d1a 100644 --- a/windows.es.md +++ b/windows.es.md @@ -1,6 +1,6 @@ # Instrucciones de la configuración -Aquí abajo encontrarás las instrucciones para la configuración que tu computadora necesita para el [curso de Desarrollo Web de Le Wagon](https://www.lewagon.com/web-development-course/full-time). +Aquí abajo encontrarás las instrucciones para la configuración que tu computadora necesita para el [curso de AI Software Development de Le Wagon](https://www.lewagon.com/web-development-course/full-time). Por favor, **léelas cuidadosamente y ejecuta todos los comandos en el orden indicado**. Si tienes algún problema, no dudes en pedirle ayuda a tu profesor :raising_hand: @@ -1228,7 +1228,7 @@ Ancla lo siguiente: ## ¡Fin de la configuración! -Tu computadora está lista para el [curso de Desarrollo Web de Le Wagon](https://www.lewagon.com/web-development-course/full-time) :muscle: :clap: +Tu computadora está lista para el [curso de AI Software Development de Le Wagon](https://www.lewagon.com/web-development-course/full-time) :muscle: :clap: Disfrútalo, sabemos que te va a ir genial :rocket: diff --git a/windows.fr.md b/windows.fr.md index dc485399..1f2968a6 100644 --- a/windows.fr.md +++ b/windows.fr.md @@ -1,6 +1,6 @@ # Instructions de configuration -Les instructions ci-dessous vont te permettre de configurer ton ordinateur pour [la formation Développement Web du Wagon](https://www.lewagon.com/web-development-course/full-time). +Les instructions ci-dessous vont te permettre de configurer ton ordinateur pour [la formation AI Software Development du Wagon](https://www.lewagon.com/web-development-course/full-time). **Lis-les attentivement et exécute toutes les commandes dans l’ordre suivant**. En cas de blocage, n’hésite pas à demander au prof :raising_hand: @@ -1229,7 +1229,7 @@ Tu dois épingler : ## La configuration est terminée ! -Ton ordinateur est prêt pour [la formation Développement Web du Wagon](https://www.lewagon.com/web-development-course/full-time) :muscle: :clap: +Ton ordinateur est prêt pour [la formation AI Software Development du Wagon](https://www.lewagon.com/web-development-course/full-time) :muscle: :clap: Profite du bootcamp, tu vas assurer :rocket: diff --git a/windows.md b/windows.md index b51ef7b0..4240bf36 100644 --- a/windows.md +++ b/windows.md @@ -1,6 +1,6 @@ # Setup instructions -You will find below the instructions to set up your computer for [Le Wagon Web Development course](https://www.lewagon.com/web-development-course/full-time). +You will find below the instructions to set up your computer for [Le Wagon AI Software Development course](https://www.lewagon.com/web-development-course/full-time). Please **read them carefully and execute all commands in the following order**. @@ -1285,7 +1285,7 @@ You must pin: ## Setup completed! -Your computer is now all set for [Le Wagon Web Development course](https://www.lewagon.com/web-development-course/full-time) :muscle: :clap: +Your computer is now all set for [Le Wagon AI Software Development course](https://www.lewagon.com/web-development-course/full-time) :muscle: :clap: Enjoy the bootcamp, you will nail it :rocket: diff --git a/windows.pt.md b/windows.pt.md index 601a0fb8..48525122 100644 --- a/windows.pt.md +++ b/windows.pt.md @@ -1,6 +1,6 @@ # Instruções de configuração -Você encontrará abaixo as instruções para configurar seu computador para o [curso de desenvolvimento web Le Wagon](https://www.lewagon.com/web-development-course/full-time). +Você encontrará abaixo as instruções para configurar seu computador para o [curso de AI Software Development Le Wagon](https://www.lewagon.com/web-development-course/full-time). Por favor **leia-os com atenção e execute todos os comandos na seguinte ordem**. @@ -1282,7 +1282,7 @@ Você deve fixar: ## Configuração concluída! -Seu computador agora está pronto para o [curso de Desenvolvimento Web Le Wagon](https://www.lewagon.com/web-development-course/full-time) :muscle: :clap: +Seu computador agora está pronto para o [curso de AI Software Development Le Wagon](https://www.lewagon.com/web-development-course/full-time) :muscle: :clap: Aproveite o bootcamp, você vai acertar :rocket: From 9f03158d78424fa92912e7f7a59bf11116d18b55 Mon Sep 17 00:00:00 2001 From: Javier Cuadrado <65590523+mantecajc@users.noreply.github.com> Date: Mon, 17 Nov 2025 16:49:40 +0100 Subject: [PATCH 31/47] Update README.md course name (#497) --- README.es.md | 2 +- README.fr.md | 2 +- README.md | 2 +- README.pt.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.es.md b/README.es.md index 7be869f3..f83608e4 100644 --- a/README.es.md +++ b/README.es.md @@ -1,6 +1,6 @@ ## ¿En Español? -Guías de configuración para el curso de desarrollo web [Wagon](https://www.lewagon.com). Elige tu sistema operativo (OS): +Guías de configuración para el curso de AI Software Development de [Le Wagon](https://www.lewagon.com). Elige tu sistema operativo (OS): diff --git a/README.fr.md b/README.fr.md index e29ca0c3..7c7c3045 100644 --- a/README.fr.md +++ b/README.fr.md @@ -1,6 +1,6 @@ ## En Français -Guides de configuration pour la formation Développement Web du [Wagon](https://www.lewagon.com). Choisis ton système d’exploitation (OS): +Guides de configuration pour la formation AI Software Development du [Wagon](https://www.lewagon.com). Choisis ton système d’exploitation (OS):
    diff --git a/README.md b/README.md index 9c79560e..91c3aec1 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ Clique sur ce lien pour accéder à la version franç ## In English -Setup guides for [Le Wagon](https://www.lewagon.com) Web Development course. Please choose your operating system (OS): +Setup guides for [Le Wagon](https://www.lewagon.com) AI Software Development course. Please choose your operating system (OS):
    diff --git a/README.pt.md b/README.pt.md index 2ca38b32..2baeae6e 100644 --- a/README.pt.md +++ b/README.pt.md @@ -1,6 +1,6 @@ ## Em Português? -Guias de configuração para o curso de desenvolvimento web [Wagon](https://www.lewagon.com). Escolha seu sistema operacional (SO): +Guias de configuração para o curso de AI Software Development [Le Wagon](https://www.lewagon.com). Escolha seu sistema operacional (SO):
    From a73d30be922505d1b5f461407922cbfc537f4777 Mon Sep 17 00:00:00 2001 From: Jules van Rie <89742340+julesvanrie@users.noreply.github.com> Date: Thu, 18 Dec 2025 13:22:24 +0100 Subject: [PATCH 32/47] Add partial for disabling AI features in VS Code (#498) * Add partial for disabling AI features in VSCode VS Code now by defaults activates all AI features, and students don't disable them. This hampers their learning experience. This partial explains how to disable AI features in VS Code. We also mention that later on we can re-enable them. Working via the Command Palette is the easiest way to do it. - The settings menu option is in a different place on Windows / macOS. - The menu option opens the JSON settings by default, which is more complex and error-prone for students. Fixes https://github.com/lewagon/teachers/issues/3503 * Translations of AI features partial --- _partials/es/vscode_aifeatures.md | 17 +++++++++++++++++ _partials/fr/vscode_aifeatures.md | 17 +++++++++++++++++ _partials/pt/vscode_aifeatures.md | 17 +++++++++++++++++ _partials/vscode_aifeatures.md | 17 +++++++++++++++++ images/vscode_disable_aifeatures.png | Bin 0 -> 76280 bytes images/vscode_find_aifeatures.png | Bin 0 -> 46548 bytes 6 files changed, 68 insertions(+) create mode 100644 _partials/es/vscode_aifeatures.md create mode 100644 _partials/fr/vscode_aifeatures.md create mode 100644 _partials/pt/vscode_aifeatures.md create mode 100644 _partials/vscode_aifeatures.md create mode 100644 images/vscode_disable_aifeatures.png create mode 100644 images/vscode_find_aifeatures.png diff --git a/_partials/es/vscode_aifeatures.md b/_partials/es/vscode_aifeatures.md new file mode 100644 index 00000000..08d9626f --- /dev/null +++ b/_partials/es/vscode_aifeatures.md @@ -0,0 +1,17 @@ +### Funciones de IA en VS Code + +VS Code incluye muchas y potentes **funciones de IA**, que son una gran herramienta una vez que ya sabes programar. + +Dicho esto, depender de la IA demasiado pronto puede ocultar conceptos importantes y dificultar la comprensión de la depuración. Una vez que estés cómodo con los fundamentos, sabrás cuándo y cómo usar la IA de forma eficaz —sin dejar que haga el trabajo por ti. + +Para el inicio del bootcamp, desactivaremos estas funciones. Llegado el momento apropiado en el curso, las volveremos a habilitar para que puedas utilizarlas bien. + +En **VS Code**: + +1. Abramos la "Paleta de comandos" de VS Code: escribe `Ctrl-Shift-P` (Windows / Linux) o `Cmd-Shift-P` (macOS). +1. Se abrirá la Paleta de comandos: una pequeña caja de texto en la parte superior de la pantalla. Empieza a escribir `aifeatures` hasta que veas "Chat: Learn How to Hide AI features". Haz clic en ella. + ![The Command Palette at the top of the screen](../images/vscode_find_aifeatures.png) +1. Esto abrirá la configuración y te mostrará la opción "Disable and hide built-in AI features ...". Marca la casilla delante de esa opción. + ![Check the disable option](../images/vscode_disable_aifeatures.png) + +Más adelante, si quieres **volver a habilitar** las funciones de IA, puedes seguir las mismas instrucciones para desmarcar la casilla. diff --git a/_partials/fr/vscode_aifeatures.md b/_partials/fr/vscode_aifeatures.md new file mode 100644 index 00000000..4b8554ba --- /dev/null +++ b/_partials/fr/vscode_aifeatures.md @@ -0,0 +1,17 @@ +### Fonctionnalités IA de VS Code + +VS Code inclut de nombreuses **fonctionnalités d'IA** puissantes, qui sont un excellent outil une fois que vous savez déjà coder. + +Cela dit, s'appuyer sur l'IA trop tôt peut masquer des concepts importants et rendre le débogage plus difficile à comprendre. Une fois à l'aise avec les fondamentaux, vous saurez quand et comment utiliser l'IA efficacement — sans lui laisser faire la réflexion à votre place. + +Pour le début du bootcamp, nous allons désactiver ces fonctionnalités. Au bon moment du cours, nous les réactiverons afin que vous puissiez les utiliser à bon escient. + +Dans **VS Code** : + +1. Ouvrez la "Palette de commandes" de VS Code : tapez `Ctrl-Shift-P` (Windows / Linux) ou `Cmd-Shift-P` (macOS). +1. La Palette de commandes s'ouvrira : une petite zone de texte en haut de l'écran. Commencez à taper `aifeatures` jusqu'à voir "Chat: Learn How to Hide AI features". Cliquez dessus. + ![La palette de commandes en haut de l'écran](../images/vscode_find_aifeatures.png) +1. Cela ouvrira les paramètres et affichera l'option "Disable and hide built-in AI features ...". Cochez la case devant cette option. + ![Cochez l'option de désactivation](../images/vscode_disable_aifeatures.png) + +Plus tard, si vous souhaitez **réactiver** les fonctionnalités d'IA, vous pouvez suivre les mêmes instructions pour décocher la case. diff --git a/_partials/pt/vscode_aifeatures.md b/_partials/pt/vscode_aifeatures.md new file mode 100644 index 00000000..6e13671a --- /dev/null +++ b/_partials/pt/vscode_aifeatures.md @@ -0,0 +1,17 @@ +### Recursos de IA no VS Code + +O VS Code inclui muitos **recursos poderosos de IA**, que são ótimas ferramentas quando você já sabe programar. + +Dito isso, confiar na IA muito cedo pode ocultar conceitos importantes e dificultar o entendimento da depuração. Quando você estiver confortável com os fundamentos, saberá quando e como usar a IA de forma eficaz — sem deixar que ela faça o raciocínio por você. + +Para o início do bootcamp, vamos desativar esses recursos. No momento certo do curso, os reativaremos para que você possa usá-los bem. + +Em **VS Code**: + +1. Vamos abrir a "Paleta de Comandos" do VS Code: digite `Ctrl-Shift-P` (Windows / Linux) ou `Cmd-Shift-P` (macOS). +1. Isso abrirá a Paleta de Comandos: uma pequena caixa de texto no topo da tela. Comece a digitar `aifeatures` até ver "Chat: Learn How to Hide AI features". Clique nela. + ![A Paleta de Comandos no topo da tela](../images/vscode_find_aifeatures.png) +1. Isso abrirá as configurações e mostrará a opção "Disable and hide built-in AI features ...". Marque a caixa de seleção à frente dessa opção. + ![Marcar a opção para desativar](../images/vscode_disable_aifeatures.png) + +Mais tarde, se quiser **reativar** os recursos de IA, você pode seguir as mesmas instruções para desmarcar a caixa. diff --git a/_partials/vscode_aifeatures.md b/_partials/vscode_aifeatures.md new file mode 100644 index 00000000..55f6730a --- /dev/null +++ b/_partials/vscode_aifeatures.md @@ -0,0 +1,17 @@ +### VS Code AI Features + +VS Code includes many powerful **AI features**, which are a great tool once you already know how to code. + +That said, relying on AI too early can hide important concepts and make debugging harder to understand. Once you’re comfortable with the fundamentals, you’ll know when and how to use AI effectively — without letting it do the thinking for you. + +For the start of the bootcamp, we’ll disable these features. At the right point in the course, we’ll reenable them so you can put them to good use. + +In **VS Code**: + +1. Let's open the VS Code "Command **P**alette": type `Ctrl-Shift-P` (Windows / Linux) or `Cmd-Shift-P` (macOS). +1. This will open the Command Palette: a small text box at the top of your screen. Start typing `aifeatures` until you see "Chat: Learn How to Hide AI features". Click on it. + ![The Command Palette at the top of the screen](../images/vscode_find_aifeatures.png) +1. This will open the settings, and will show you the option "Disable and hide built-in AI features ...". Tick the checkbox in front of that option. + ![Check the disable option](../images/vscode_disable_aifeatures.png) + +Later, if you want **to reenable** the AI features, you can follow the same instructions to untick the checkbox. diff --git a/images/vscode_disable_aifeatures.png b/images/vscode_disable_aifeatures.png new file mode 100644 index 0000000000000000000000000000000000000000..83e76f7f376f419b447abf435cefae5ede5af93a GIT binary patch literal 76280 zcmeFZby$^Mw>}C;BPAt`luAp7Gzdrwi*5wz?po3UBB&tUA=2F)f&$Xrp>#<1`pxD0 zeS7b-_kLgf^IYfrxUR)otmm2YnK9;wd)$LC6(t#LOfpOa1O#k3S*d3T2stG=(nrQpE%v8Kt4THh?+&75W3L@&}oVItbcWwBfd@D%UTF95edDOibG&l z0iT(k9wD7~1!hNWhiEapz>ze1aSDSKd^tQz&_hVaiy`nxn01MX$}kOLzVia{ScSJLzaWL0C?Ilikc%LS_FpmWSH8S~APe$Yf)?T$$P1FLHw` zUc`6*Jc`@QMnUOw$ZXY3r0X$}>EjR`VfG2>lJCggVhk77;_Aa67^jhojQRZj+~$*? zos-nj?H5>?0oheKA(sO`JY-i)NOsR;SRz#hCR1$ z5u@L7q`4b}pg{~hU!_E$l9v`R5r5`H92nfpDH6!KnmAylrL8rE#Bpx^v81y>NX;Jq z8ExO^PJIM^&szu!DUqzxw^|>m$C-m*Qe5#0ju zew(%fq8{ReICU-VMH`+6#*9qkC#Sm?jcz(IkWj!Qy2qk7JNA z?qO8knMNRz=u#0-#~zbxk+`2;G02dIR*!`()-kBN&h@&LFdoOc6?Ok{JVu2Plpo0e z`FSlCc%kZMS4$R~oV zyN?%99kVd6w}Ulj)T?=>^`?%0A3?&E|YYxAAxbaf32J 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

    CnMcQSHSki4J^+<~NSzq~j@##soIQ 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 F{{hu_rjP&t literal 0 HcmV?d00001 diff --git a/images/vscode_find_aifeatures.png b/images/vscode_find_aifeatures.png new file mode 100644 index 0000000000000000000000000000000000000000..e86ab2c40648571af964c13d06b27b9cce36c224 GIT binary patch literal 46548 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

    {?ECP1~!6DMp%+B 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 literal 0 HcmV?d00001 From 69c35420c768aab924e2417db0c72afd1de2468d Mon Sep 17 00:00:00 2001 From: Jules van Rie <89742340+julesvanrie@users.noreply.github.com> Date: Thu, 18 Dec 2025 13:33:07 +0100 Subject: [PATCH 33/47] Note on Windows 10 security (#500) * Note on Windows 10 security * Translations for Win 10 warning --- _partials/es/windows_version.md | 4 ++++ _partials/fr/windows_version.md | 4 ++++ _partials/pt/windows_version.md | 4 ++++ _partials/windows_version.md | 4 ++++ 4 files changed, 16 insertions(+) diff --git a/_partials/es/windows_version.md b/_partials/es/windows_version.md index 243daf4a..63ca4f55 100644 --- a/_partials/es/windows_version.md +++ b/_partials/es/windows_version.md @@ -4,6 +4,10 @@ Antes de comenzar, necesitamos verificar que la versión de Windows instalada en ### Windows 10 o Windows 11 +> :warning: **Nota sobre Windows 10 y seguridad** +> +> La configuración del bootcamp de Le Wagon funciona en Windows 10. Dicho esto, recomendamos encarecidamente actualizar a Windows 11. Desde el 14 de octubre de 2025 Microsoft finalizó el soporte para Windows 10, lo que significa que ya no recibirá actualizaciones de seguridad y podría poner tu equipo en riesgo. Para más detalles, consulta la [guía de Microsoft](https://support.microsoft.com/en-us/windows/windows-10-support-has-ended-on-october-14-2025-2ca8b313-1946-43d3-b55c-2b95b107f281). Si tu equipo no puede ejecutar Windows 11, considera cambiar a Ubuntu. + Para poder configurar tu computadora, necesitas tener **Windows 10 o Windows 11** instalado. Para chequear la versión de tu Windows: diff --git a/_partials/fr/windows_version.md b/_partials/fr/windows_version.md index 3af635ca..13d21e49 100644 --- a/_partials/fr/windows_version.md +++ b/_partials/fr/windows_version.md @@ -4,6 +4,10 @@ Avant de commencer, on va vérifier que la version de Windows installée sur ton ### Windows 10 ou Windows 11 +> :warning: **Note sur Windows 10 et la sécurité** +> +> La configuration du bootcamp Le Wagon fonctionne sur Windows 10. Cela dit, on recommande fortement de passer à Windows 11. Depuis le 14 octobre 2025, Microsoft a mis fin au support de Windows 10 : il ne reçoit plus de mises à jour de sécurité, ce qui peut exposer ta machine. Pour plus de détails, consulte le [guide de Microsoft](https://support.microsoft.com/en-us/windows/windows-10-support-has-ended-on-october-14-2025-2ca8b313-1946-43d3-b55c-2b95b107f281). Si ton ordinateur ne peut pas exécuter Windows 11, envisage de passer à Ubuntu. + Pour pouvoir configurer ton ordinateur, **Windows 10 ou Windows 11** doit être installé dessus. Pour connaître ta version de Windows : diff --git a/_partials/pt/windows_version.md b/_partials/pt/windows_version.md index db41920f..4e2490dc 100644 --- a/_partials/pt/windows_version.md +++ b/_partials/pt/windows_version.md @@ -4,6 +4,10 @@ Antes de começarmos, precisamos verificar se a versão do Windows instalada no ### Windows 10 ou Windows 11 +> :warning: **Nota sobre o Windows 10 e segurança** +> +> O setup do bootcamp Le Wagon funciona no Windows 10. Dito isso, recomendamos fortemente a atualização para o Windows 11. A partir de 14 de outubro de 2025, a Microsoft encerrou o suporte ao Windows 10, o que significa que ele não receberá mais atualizações de segurança, potencialmente deixando sua máquina em risco. Para mais detalhes, leia o guia da Microsoft: https://support.microsoft.com/en-us/windows/windows-10-support-has-ended-on-october-14-2025-2ca8b313-1946-43d3-b55c-2b95b107f281. Caso sua máquina não consiga executar o Windows 11, considere mudar para o Ubuntu. + Para poder configurar seu computador, você precisa ter o **Windows 10 ou Windows 11** instalado. Para verificar sua versão do Windows: diff --git a/_partials/windows_version.md b/_partials/windows_version.md index af046097..9c08817b 100644 --- a/_partials/windows_version.md +++ b/_partials/windows_version.md @@ -4,6 +4,10 @@ Before we start, we need to check that the version of Windows installed on your ### Windows 10 or Windows 11 +> :warning: **Note on Windows 10 and security** +> +> The Le Wagon bootcamp setup works on Windows 10. That said, we highly recommend to upgrade to Windows 11. Since October 14th, 2025, Microsoft has ended support for Windows 10, which means it will no longer receive security updates, potentially putting your machine at risk. For more details, read [Microsoft's guide](https://support.microsoft.com/en-us/windows/windows-10-support-has-ended-on-october-14-2025-2ca8b313-1946-43d3-b55c-2b95b107f281). In case your machine can't run Windows 11, consider switching to Ubuntu. + To be able to set up your computer, you need to have **Windows 10 or Windows 11** installed. To check your Windows version: From d7658d3eb0834a8e21e5be8f49d8fce7a6a36567 Mon Sep 17 00:00:00 2001 From: github-actions Date: Thu, 18 Dec 2025 12:33:15 +0000 Subject: [PATCH 34/47] setup guides generated --- windows.es.md | 4 ++++ windows.fr.md | 4 ++++ windows.md | 4 ++++ windows.pt.md | 4 ++++ 4 files changed, 16 insertions(+) diff --git a/windows.es.md b/windows.es.md index 8ee80d1a..516c94ab 100644 --- a/windows.es.md +++ b/windows.es.md @@ -24,6 +24,10 @@ Antes de comenzar, necesitamos verificar que la versión de Windows instalada en ### Windows 10 o Windows 11 +> :warning: **Nota sobre Windows 10 y seguridad** +> +> La configuración del bootcamp de Le Wagon funciona en Windows 10. Dicho esto, recomendamos encarecidamente actualizar a Windows 11. Desde el 14 de octubre de 2025 Microsoft finalizó el soporte para Windows 10, lo que significa que ya no recibirá actualizaciones de seguridad y podría poner tu equipo en riesgo. Para más detalles, consulta la [guía de Microsoft](https://support.microsoft.com/en-us/windows/windows-10-support-has-ended-on-october-14-2025-2ca8b313-1946-43d3-b55c-2b95b107f281). Si tu equipo no puede ejecutar Windows 11, considera cambiar a Ubuntu. + Para poder configurar tu computadora, necesitas tener **Windows 10 o Windows 11** instalado. Para chequear la versión de tu Windows: diff --git a/windows.fr.md b/windows.fr.md index 1f2968a6..82e67c7b 100644 --- a/windows.fr.md +++ b/windows.fr.md @@ -24,6 +24,10 @@ Avant de commencer, on va vérifier que la version de Windows installée sur ton ### Windows 10 ou Windows 11 +> :warning: **Note sur Windows 10 et la sécurité** +> +> La configuration du bootcamp Le Wagon fonctionne sur Windows 10. Cela dit, on recommande fortement de passer à Windows 11. Depuis le 14 octobre 2025, Microsoft a mis fin au support de Windows 10 : il ne reçoit plus de mises à jour de sécurité, ce qui peut exposer ta machine. Pour plus de détails, consulte le [guide de Microsoft](https://support.microsoft.com/en-us/windows/windows-10-support-has-ended-on-october-14-2025-2ca8b313-1946-43d3-b55c-2b95b107f281). Si ton ordinateur ne peut pas exécuter Windows 11, envisage de passer à Ubuntu. + Pour pouvoir configurer ton ordinateur, **Windows 10 ou Windows 11** doit être installé dessus. Pour connaître ta version de Windows : diff --git a/windows.md b/windows.md index 4240bf36..c11a8cee 100644 --- a/windows.md +++ b/windows.md @@ -28,6 +28,10 @@ Before we start, we need to check that the version of Windows installed on your ### Windows 10 or Windows 11 +> :warning: **Note on Windows 10 and security** +> +> The Le Wagon bootcamp setup works on Windows 10. That said, we highly recommend to upgrade to Windows 11. Since October 14th, 2025, Microsoft has ended support for Windows 10, which means it will no longer receive security updates, potentially putting your machine at risk. For more details, read [Microsoft's guide](https://support.microsoft.com/en-us/windows/windows-10-support-has-ended-on-october-14-2025-2ca8b313-1946-43d3-b55c-2b95b107f281). In case your machine can't run Windows 11, consider switching to Ubuntu. + To be able to set up your computer, you need to have **Windows 10 or Windows 11** installed. To check your Windows version: diff --git a/windows.pt.md b/windows.pt.md index 48525122..dfe15f46 100644 --- a/windows.pt.md +++ b/windows.pt.md @@ -28,6 +28,10 @@ Antes de começarmos, precisamos verificar se a versão do Windows instalada no ### Windows 10 ou Windows 11 +> :warning: **Nota sobre o Windows 10 e segurança** +> +> O setup do bootcamp Le Wagon funciona no Windows 10. Dito isso, recomendamos fortemente a atualização para o Windows 11. A partir de 14 de outubro de 2025, a Microsoft encerrou o suporte ao Windows 10, o que significa que ele não receberá mais atualizações de segurança, potencialmente deixando sua máquina em risco. Para mais detalhes, leia o guia da Microsoft: https://support.microsoft.com/en-us/windows/windows-10-support-has-ended-on-october-14-2025-2ca8b313-1946-43d3-b55c-2b95b107f281. Caso sua máquina não consiga executar o Windows 11, considere mudar para o Ubuntu. + Para poder configurar seu computador, você precisa ter o **Windows 10 ou Windows 11** instalado. Para verificar sua versão do Windows: From 70661a2cd10d2f2b33e194e26aa289126e9a3ce8 Mon Sep 17 00:00:00 2001 From: Jules van Rie <89742340+julesvanrie@users.noreply.github.com> Date: Sun, 4 Jan 2026 19:25:56 +0100 Subject: [PATCH 35/47] Fix image paths to work on DS&AI setup (#502) --- _partials/es/vscode_aifeatures.md | 4 ++-- _partials/fr/vscode_aifeatures.md | 4 ++-- _partials/pt/vscode_aifeatures.md | 4 ++-- _partials/vscode_aifeatures.md | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/_partials/es/vscode_aifeatures.md b/_partials/es/vscode_aifeatures.md index 08d9626f..db45b329 100644 --- a/_partials/es/vscode_aifeatures.md +++ b/_partials/es/vscode_aifeatures.md @@ -10,8 +10,8 @@ En **VS Code**: 1. Abramos la "Paleta de comandos" de VS Code: escribe `Ctrl-Shift-P` (Windows / Linux) o `Cmd-Shift-P` (macOS). 1. Se abrirá la Paleta de comandos: una pequeña caja de texto en la parte superior de la pantalla. Empieza a escribir `aifeatures` hasta que veas "Chat: Learn How to Hide AI features". Haz clic en ella. - ![The Command Palette at the top of the screen](../images/vscode_find_aifeatures.png) + ![The Command Palette at the top of the screen](images/vscode_find_aifeatures.png) 1. Esto abrirá la configuración y te mostrará la opción "Disable and hide built-in AI features ...". Marca la casilla delante de esa opción. - ![Check the disable option](../images/vscode_disable_aifeatures.png) + ![Check the disable option](images/vscode_disable_aifeatures.png) Más adelante, si quieres **volver a habilitar** las funciones de IA, puedes seguir las mismas instrucciones para desmarcar la casilla. diff --git a/_partials/fr/vscode_aifeatures.md b/_partials/fr/vscode_aifeatures.md index 4b8554ba..0be35b53 100644 --- a/_partials/fr/vscode_aifeatures.md +++ b/_partials/fr/vscode_aifeatures.md @@ -10,8 +10,8 @@ Dans **VS Code** : 1. Ouvrez la "Palette de commandes" de VS Code : tapez `Ctrl-Shift-P` (Windows / Linux) ou `Cmd-Shift-P` (macOS). 1. La Palette de commandes s'ouvrira : une petite zone de texte en haut de l'écran. Commencez à taper `aifeatures` jusqu'à voir "Chat: Learn How to Hide AI features". Cliquez dessus. - ![La palette de commandes en haut de l'écran](../images/vscode_find_aifeatures.png) + ![La palette de commandes en haut de l'écran](images/vscode_find_aifeatures.png) 1. Cela ouvrira les paramètres et affichera l'option "Disable and hide built-in AI features ...". Cochez la case devant cette option. - ![Cochez l'option de désactivation](../images/vscode_disable_aifeatures.png) + ![Cochez l'option de désactivation](images/vscode_disable_aifeatures.png) Plus tard, si vous souhaitez **réactiver** les fonctionnalités d'IA, vous pouvez suivre les mêmes instructions pour décocher la case. diff --git a/_partials/pt/vscode_aifeatures.md b/_partials/pt/vscode_aifeatures.md index 6e13671a..ffd89d63 100644 --- a/_partials/pt/vscode_aifeatures.md +++ b/_partials/pt/vscode_aifeatures.md @@ -10,8 +10,8 @@ Em **VS Code**: 1. Vamos abrir a "Paleta de Comandos" do VS Code: digite `Ctrl-Shift-P` (Windows / Linux) ou `Cmd-Shift-P` (macOS). 1. Isso abrirá a Paleta de Comandos: uma pequena caixa de texto no topo da tela. Comece a digitar `aifeatures` até ver "Chat: Learn How to Hide AI features". Clique nela. - ![A Paleta de Comandos no topo da tela](../images/vscode_find_aifeatures.png) + ![A Paleta de Comandos no topo da tela](images/vscode_find_aifeatures.png) 1. Isso abrirá as configurações e mostrará a opção "Disable and hide built-in AI features ...". Marque a caixa de seleção à frente dessa opção. - ![Marcar a opção para desativar](../images/vscode_disable_aifeatures.png) + ![Marcar a opção para desativar](images/vscode_disable_aifeatures.png) Mais tarde, se quiser **reativar** os recursos de IA, você pode seguir as mesmas instruções para desmarcar a caixa. diff --git a/_partials/vscode_aifeatures.md b/_partials/vscode_aifeatures.md index 55f6730a..8af297d9 100644 --- a/_partials/vscode_aifeatures.md +++ b/_partials/vscode_aifeatures.md @@ -10,8 +10,8 @@ In **VS Code**: 1. Let's open the VS Code "Command **P**alette": type `Ctrl-Shift-P` (Windows / Linux) or `Cmd-Shift-P` (macOS). 1. This will open the Command Palette: a small text box at the top of your screen. Start typing `aifeatures` until you see "Chat: Learn How to Hide AI features". Click on it. - ![The Command Palette at the top of the screen](../images/vscode_find_aifeatures.png) + ![The Command Palette at the top of the screen](images/vscode_find_aifeatures.png) 1. This will open the settings, and will show you the option "Disable and hide built-in AI features ...". Tick the checkbox in front of that option. - ![Check the disable option](../images/vscode_disable_aifeatures.png) + ![Check the disable option](images/vscode_disable_aifeatures.png) Later, if you want **to reenable** the AI features, you can follow the same instructions to untick the checkbox. From 2bde5786331823d6cfde10508b9e89d5819480b6 Mon Sep 17 00:00:00 2001 From: Jules van Rie <89742340+julesvanrie@users.noreply.github.com> Date: Mon, 5 Jan 2026 11:36:22 +0100 Subject: [PATCH 36/47] Add AI Features Step in build (#501) --- build.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/build.rb b/build.rb index cff0752e..08882fe9 100755 --- a/build.rb +++ b/build.rb @@ -14,6 +14,7 @@ macos_homebrew macos_vscode vscode_extensions + vscode_aifeatures vscode_liveshare macos_terminal oh_my_zsh @@ -42,6 +43,7 @@ windows_vscode windows_terminal vscode_extensions + vscode_aifeatures vscode_liveshare cli_tools oh_my_zsh @@ -67,6 +69,7 @@ github ubuntu_vscode vscode_extensions + vscode_aifeatures vscode_liveshare cli_tools oh_my_zsh From 4b123acd4759e9dc3d7d5a436d251e2da87ba083 Mon Sep 17 00:00:00 2001 From: github-actions Date: Mon, 5 Jan 2026 10:36:30 +0000 Subject: [PATCH 37/47] setup guides generated --- macos.cn.md | 19 +++++++++++++++++++ macos.es.md | 19 +++++++++++++++++++ macos.fr.md | 19 +++++++++++++++++++ macos.md | 19 +++++++++++++++++++ macos.pt.md | 19 +++++++++++++++++++ ubuntu.cn.md | 19 +++++++++++++++++++ ubuntu.es.md | 19 +++++++++++++++++++ ubuntu.fr.md | 19 +++++++++++++++++++ ubuntu.md | 19 +++++++++++++++++++ ubuntu.pt.md | 19 +++++++++++++++++++ windows.cn.md | 19 +++++++++++++++++++ windows.es.md | 19 +++++++++++++++++++ windows.fr.md | 19 +++++++++++++++++++ windows.md | 19 +++++++++++++++++++ windows.pt.md | 19 +++++++++++++++++++ 15 files changed, 285 insertions(+) diff --git a/macos.cn.md b/macos.cn.md index 7843fe3b..5e451285 100644 --- a/macos.cn.md +++ b/macos.cn.md @@ -163,6 +163,25 @@ code --install-extension rayhanw.erb-helpers - [SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite) +### VS Code AI Features + +VS Code includes many powerful **AI features**, which are a great tool once you already know how to code. + +That said, relying on AI too early can hide important concepts and make debugging harder to understand. Once you’re comfortable with the fundamentals, you’ll know when and how to use AI effectively — without letting it do the thinking for you. + +For the start of the bootcamp, we’ll disable these features. At the right point in the course, we’ll reenable them so you can put them to good use. + +In **VS Code**: + +1. Let's open the VS Code "Command **P**alette": type `Ctrl-Shift-P` (Windows / Linux) or `Cmd-Shift-P` (macOS). +1. This will open the Command Palette: a small text box at the top of your screen. Start typing `aifeatures` until you see "Chat: Learn How to Hide AI features". Click on it. + ![The Command Palette at the top of the screen](images/vscode_find_aifeatures.png) +1. This will open the settings, and will show you the option "Disable and hide built-in AI features ...". Tick the checkbox in front of that option. + ![Check the disable option](images/vscode_disable_aifeatures.png) + +Later, if you want **to reenable** the AI features, you can follow the same instructions to untick the checkbox. + + ## macOS Terminal Theme diff --git a/macos.es.md b/macos.es.md index be20d830..4dcd0e2b 100644 --- a/macos.es.md +++ b/macos.es.md @@ -164,6 +164,25 @@ Aquí está la lista de las extensiones que estás instalando: - [SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite) +### Funciones de IA en VS Code + +VS Code incluye muchas y potentes **funciones de IA**, que son una gran herramienta una vez que ya sabes programar. + +Dicho esto, depender de la IA demasiado pronto puede ocultar conceptos importantes y dificultar la comprensión de la depuración. Una vez que estés cómodo con los fundamentos, sabrás cuándo y cómo usar la IA de forma eficaz —sin dejar que haga el trabajo por ti. + +Para el inicio del bootcamp, desactivaremos estas funciones. Llegado el momento apropiado en el curso, las volveremos a habilitar para que puedas utilizarlas bien. + +En **VS Code**: + +1. Abramos la "Paleta de comandos" de VS Code: escribe `Ctrl-Shift-P` (Windows / Linux) o `Cmd-Shift-P` (macOS). +1. Se abrirá la Paleta de comandos: una pequeña caja de texto en la parte superior de la pantalla. Empieza a escribir `aifeatures` hasta que veas "Chat: Learn How to Hide AI features". Haz clic en ella. + ![The Command Palette at the top of the screen](images/vscode_find_aifeatures.png) +1. Esto abrirá la configuración y te mostrará la opción "Disable and hide built-in AI features ...". Marca la casilla delante de esa opción. + ![Check the disable option](images/vscode_disable_aifeatures.png) + +Más adelante, si quieres **volver a habilitar** las funciones de IA, puedes seguir las mismas instrucciones para desmarcar la casilla. + + ### Configuración de Live Share [Visual Studio Live Share](https://visualstudio.microsoft.com/services/live-share/) es una extensión de VS Code que te permite compartir el código en tu editor de texto para debugging y pair-programming: ¡Instalémoslo! diff --git a/macos.fr.md b/macos.fr.md index b34f96ba..9f716260 100644 --- a/macos.fr.md +++ b/macos.fr.md @@ -162,6 +162,25 @@ Voici la liste des extensions que tu es en train d'installer : - [SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite) +### Fonctionnalités IA de VS Code + +VS Code inclut de nombreuses **fonctionnalités d'IA** puissantes, qui sont un excellent outil une fois que vous savez déjà coder. + +Cela dit, s'appuyer sur l'IA trop tôt peut masquer des concepts importants et rendre le débogage plus difficile à comprendre. Une fois à l'aise avec les fondamentaux, vous saurez quand et comment utiliser l'IA efficacement — sans lui laisser faire la réflexion à votre place. + +Pour le début du bootcamp, nous allons désactiver ces fonctionnalités. Au bon moment du cours, nous les réactiverons afin que vous puissiez les utiliser à bon escient. + +Dans **VS Code** : + +1. Ouvrez la "Palette de commandes" de VS Code : tapez `Ctrl-Shift-P` (Windows / Linux) ou `Cmd-Shift-P` (macOS). +1. La Palette de commandes s'ouvrira : une petite zone de texte en haut de l'écran. Commencez à taper `aifeatures` jusqu'à voir "Chat: Learn How to Hide AI features". Cliquez dessus. + ![La palette de commandes en haut de l'écran](images/vscode_find_aifeatures.png) +1. Cela ouvrira les paramètres et affichera l'option "Disable and hide built-in AI features ...". Cochez la case devant cette option. + ![Cochez l'option de désactivation](images/vscode_disable_aifeatures.png) + +Plus tard, si vous souhaitez **réactiver** les fonctionnalités d'IA, vous pouvez suivre les mêmes instructions pour décocher la case. + + ### Configuration de Live Share [Visual Studio Live Share](https://visualstudio.microsoft.com/services/live-share/) est une extension de VS Code, qui te permet de partager du code dans ton éditeur de texte pour débugger et faire de la programmation en binôme. Configurons-le ! diff --git a/macos.md b/macos.md index 602b6e18..df73acf9 100644 --- a/macos.md +++ b/macos.md @@ -186,6 +186,25 @@ Here is a list of the extensions you are installing: - [SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite) +### VS Code AI Features + +VS Code includes many powerful **AI features**, which are a great tool once you already know how to code. + +That said, relying on AI too early can hide important concepts and make debugging harder to understand. Once you’re comfortable with the fundamentals, you’ll know when and how to use AI effectively — without letting it do the thinking for you. + +For the start of the bootcamp, we’ll disable these features. At the right point in the course, we’ll reenable them so you can put them to good use. + +In **VS Code**: + +1. Let's open the VS Code "Command **P**alette": type `Ctrl-Shift-P` (Windows / Linux) or `Cmd-Shift-P` (macOS). +1. This will open the Command Palette: a small text box at the top of your screen. Start typing `aifeatures` until you see "Chat: Learn How to Hide AI features". Click on it. + ![The Command Palette at the top of the screen](images/vscode_find_aifeatures.png) +1. This will open the settings, and will show you the option "Disable and hide built-in AI features ...". Tick the checkbox in front of that option. + ![Check the disable option](images/vscode_disable_aifeatures.png) + +Later, if you want **to reenable** the AI features, you can follow the same instructions to untick the checkbox. + + ### Live Share configuration [Visual Studio Live Share](https://visualstudio.microsoft.com/services/live-share/) is a VS Code extension which allows you to share the code in your text editor for debugging and pair-programming: let's set it up! diff --git a/macos.pt.md b/macos.pt.md index ccef250f..2589db86 100644 --- a/macos.pt.md +++ b/macos.pt.md @@ -187,6 +187,25 @@ Aqui está uma lista das extensões que você está instalando: - [SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite) +### Recursos de IA no VS Code + +O VS Code inclui muitos **recursos poderosos de IA**, que são ótimas ferramentas quando você já sabe programar. + +Dito isso, confiar na IA muito cedo pode ocultar conceitos importantes e dificultar o entendimento da depuração. Quando você estiver confortável com os fundamentos, saberá quando e como usar a IA de forma eficaz — sem deixar que ela faça o raciocínio por você. + +Para o início do bootcamp, vamos desativar esses recursos. No momento certo do curso, os reativaremos para que você possa usá-los bem. + +Em **VS Code**: + +1. Vamos abrir a "Paleta de Comandos" do VS Code: digite `Ctrl-Shift-P` (Windows / Linux) ou `Cmd-Shift-P` (macOS). +1. Isso abrirá a Paleta de Comandos: uma pequena caixa de texto no topo da tela. Comece a digitar `aifeatures` até ver "Chat: Learn How to Hide AI features". Clique nela. + ![A Paleta de Comandos no topo da tela](images/vscode_find_aifeatures.png) +1. Isso abrirá as configurações e mostrará a opção "Disable and hide built-in AI features ...". Marque a caixa de seleção à frente dessa opção. + ![Marcar a opção para desativar](images/vscode_disable_aifeatures.png) + +Mais tarde, se quiser **reativar** os recursos de IA, você pode seguir as mesmas instruções para desmarcar a caixa. + + ### Configuração do Live Share [Visual Studio Live Share](https://visualstudio.microsoft.com/services/live-share/) é uma extensão do VS Code que permite compartilhar o código em seu editor de texto para depuração e programação em pares: vamos configurá-lo acima! diff --git a/ubuntu.cn.md b/ubuntu.cn.md index a673e082..f8fb513f 100644 --- a/ubuntu.cn.md +++ b/ubuntu.cn.md @@ -84,6 +84,25 @@ code --install-extension rayhanw.erb-helpers - [SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite) +### VS Code AI Features + +VS Code includes many powerful **AI features**, which are a great tool once you already know how to code. + +That said, relying on AI too early can hide important concepts and make debugging harder to understand. Once you’re comfortable with the fundamentals, you’ll know when and how to use AI effectively — without letting it do the thinking for you. + +For the start of the bootcamp, we’ll disable these features. At the right point in the course, we’ll reenable them so you can put them to good use. + +In **VS Code**: + +1. Let's open the VS Code "Command **P**alette": type `Ctrl-Shift-P` (Windows / Linux) or `Cmd-Shift-P` (macOS). +1. This will open the Command Palette: a small text box at the top of your screen. Start typing `aifeatures` until you see "Chat: Learn How to Hide AI features". Click on it. + ![The Command Palette at the top of the screen](images/vscode_find_aifeatures.png) +1. This will open the settings, and will show you the option "Disable and hide built-in AI features ...". Tick the checkbox in front of that option. + ![Check the disable option](images/vscode_disable_aifeatures.png) + +Later, if you want **to reenable** the AI features, you can follow the same instructions to untick the checkbox. + + ## Command line tools diff --git a/ubuntu.es.md b/ubuntu.es.md index ce98ea6d..a57f5bc5 100644 --- a/ubuntu.es.md +++ b/ubuntu.es.md @@ -84,6 +84,25 @@ Aquí está la lista de las extensiones que estás instalando: - [SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite) +### Funciones de IA en VS Code + +VS Code incluye muchas y potentes **funciones de IA**, que son una gran herramienta una vez que ya sabes programar. + +Dicho esto, depender de la IA demasiado pronto puede ocultar conceptos importantes y dificultar la comprensión de la depuración. Una vez que estés cómodo con los fundamentos, sabrás cuándo y cómo usar la IA de forma eficaz —sin dejar que haga el trabajo por ti. + +Para el inicio del bootcamp, desactivaremos estas funciones. Llegado el momento apropiado en el curso, las volveremos a habilitar para que puedas utilizarlas bien. + +En **VS Code**: + +1. Abramos la "Paleta de comandos" de VS Code: escribe `Ctrl-Shift-P` (Windows / Linux) o `Cmd-Shift-P` (macOS). +1. Se abrirá la Paleta de comandos: una pequeña caja de texto en la parte superior de la pantalla. Empieza a escribir `aifeatures` hasta que veas "Chat: Learn How to Hide AI features". Haz clic en ella. + ![The Command Palette at the top of the screen](images/vscode_find_aifeatures.png) +1. Esto abrirá la configuración y te mostrará la opción "Disable and hide built-in AI features ...". Marca la casilla delante de esa opción. + ![Check the disable option](images/vscode_disable_aifeatures.png) + +Más adelante, si quieres **volver a habilitar** las funciones de IA, puedes seguir las mismas instrucciones para desmarcar la casilla. + + ### Configuración de Live Share [Visual Studio Live Share](https://visualstudio.microsoft.com/services/live-share/) es una extensión de VS Code que te permite compartir el código en tu editor de texto para debugging y pair-programming: ¡Instalémoslo! diff --git a/ubuntu.fr.md b/ubuntu.fr.md index 5f8023b1..1ed1f7fd 100644 --- a/ubuntu.fr.md +++ b/ubuntu.fr.md @@ -83,6 +83,25 @@ Voici la liste des extensions que tu es en train d'installer : - [SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite) +### Fonctionnalités IA de VS Code + +VS Code inclut de nombreuses **fonctionnalités d'IA** puissantes, qui sont un excellent outil une fois que vous savez déjà coder. + +Cela dit, s'appuyer sur l'IA trop tôt peut masquer des concepts importants et rendre le débogage plus difficile à comprendre. Une fois à l'aise avec les fondamentaux, vous saurez quand et comment utiliser l'IA efficacement — sans lui laisser faire la réflexion à votre place. + +Pour le début du bootcamp, nous allons désactiver ces fonctionnalités. Au bon moment du cours, nous les réactiverons afin que vous puissiez les utiliser à bon escient. + +Dans **VS Code** : + +1. Ouvrez la "Palette de commandes" de VS Code : tapez `Ctrl-Shift-P` (Windows / Linux) ou `Cmd-Shift-P` (macOS). +1. La Palette de commandes s'ouvrira : une petite zone de texte en haut de l'écran. Commencez à taper `aifeatures` jusqu'à voir "Chat: Learn How to Hide AI features". Cliquez dessus. + ![La palette de commandes en haut de l'écran](images/vscode_find_aifeatures.png) +1. Cela ouvrira les paramètres et affichera l'option "Disable and hide built-in AI features ...". Cochez la case devant cette option. + ![Cochez l'option de désactivation](images/vscode_disable_aifeatures.png) + +Plus tard, si vous souhaitez **réactiver** les fonctionnalités d'IA, vous pouvez suivre les mêmes instructions pour décocher la case. + + ### Configuration de Live Share [Visual Studio Live Share](https://visualstudio.microsoft.com/services/live-share/) est une extension de VS Code, qui te permet de partager du code dans ton éditeur de texte pour débugger et faire de la programmation en binôme. Configurons-le ! diff --git a/ubuntu.md b/ubuntu.md index 95cca0dd..8a128321 100644 --- a/ubuntu.md +++ b/ubuntu.md @@ -103,6 +103,25 @@ Here is a list of the extensions you are installing: - [SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite) +### VS Code AI Features + +VS Code includes many powerful **AI features**, which are a great tool once you already know how to code. + +That said, relying on AI too early can hide important concepts and make debugging harder to understand. Once you’re comfortable with the fundamentals, you’ll know when and how to use AI effectively — without letting it do the thinking for you. + +For the start of the bootcamp, we’ll disable these features. At the right point in the course, we’ll reenable them so you can put them to good use. + +In **VS Code**: + +1. Let's open the VS Code "Command **P**alette": type `Ctrl-Shift-P` (Windows / Linux) or `Cmd-Shift-P` (macOS). +1. This will open the Command Palette: a small text box at the top of your screen. Start typing `aifeatures` until you see "Chat: Learn How to Hide AI features". Click on it. + ![The Command Palette at the top of the screen](images/vscode_find_aifeatures.png) +1. This will open the settings, and will show you the option "Disable and hide built-in AI features ...". Tick the checkbox in front of that option. + ![Check the disable option](images/vscode_disable_aifeatures.png) + +Later, if you want **to reenable** the AI features, you can follow the same instructions to untick the checkbox. + + ### Live Share configuration [Visual Studio Live Share](https://visualstudio.microsoft.com/services/live-share/) is a VS Code extension which allows you to share the code in your text editor for debugging and pair-programming: let's set it up! diff --git a/ubuntu.pt.md b/ubuntu.pt.md index 52a3fc16..27da5eec 100644 --- a/ubuntu.pt.md +++ b/ubuntu.pt.md @@ -104,6 +104,25 @@ Aqui está uma lista das extensões que você está instalando: - [SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite) +### Recursos de IA no VS Code + +O VS Code inclui muitos **recursos poderosos de IA**, que são ótimas ferramentas quando você já sabe programar. + +Dito isso, confiar na IA muito cedo pode ocultar conceitos importantes e dificultar o entendimento da depuração. Quando você estiver confortável com os fundamentos, saberá quando e como usar a IA de forma eficaz — sem deixar que ela faça o raciocínio por você. + +Para o início do bootcamp, vamos desativar esses recursos. No momento certo do curso, os reativaremos para que você possa usá-los bem. + +Em **VS Code**: + +1. Vamos abrir a "Paleta de Comandos" do VS Code: digite `Ctrl-Shift-P` (Windows / Linux) ou `Cmd-Shift-P` (macOS). +1. Isso abrirá a Paleta de Comandos: uma pequena caixa de texto no topo da tela. Comece a digitar `aifeatures` até ver "Chat: Learn How to Hide AI features". Clique nela. + ![A Paleta de Comandos no topo da tela](images/vscode_find_aifeatures.png) +1. Isso abrirá as configurações e mostrará a opção "Disable and hide built-in AI features ...". Marque a caixa de seleção à frente dessa opção. + ![Marcar a opção para desativar](images/vscode_disable_aifeatures.png) + +Mais tarde, se quiser **reativar** os recursos de IA, você pode seguir as mesmas instruções para desmarcar a caixa. + + ### Configuração do Live Share [Visual Studio Live Share](https://visualstudio.microsoft.com/services/live-share/) é uma extensão do VS Code que permite compartilhar o código em seu editor de texto para depuração e programação em pares: vamos configurá-lo acima! diff --git a/windows.cn.md b/windows.cn.md index 4004d495..721a3aa8 100644 --- a/windows.cn.md +++ b/windows.cn.md @@ -516,6 +516,25 @@ code --install-extension rayhanw.erb-helpers - [SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite) +### VS Code AI Features + +VS Code includes many powerful **AI features**, which are a great tool once you already know how to code. + +That said, relying on AI too early can hide important concepts and make debugging harder to understand. Once you’re comfortable with the fundamentals, you’ll know when and how to use AI effectively — without letting it do the thinking for you. + +For the start of the bootcamp, we’ll disable these features. At the right point in the course, we’ll reenable them so you can put them to good use. + +In **VS Code**: + +1. Let's open the VS Code "Command **P**alette": type `Ctrl-Shift-P` (Windows / Linux) or `Cmd-Shift-P` (macOS). +1. This will open the Command Palette: a small text box at the top of your screen. Start typing `aifeatures` until you see "Chat: Learn How to Hide AI features". Click on it. + ![The Command Palette at the top of the screen](images/vscode_find_aifeatures.png) +1. This will open the settings, and will show you the option "Disable and hide built-in AI features ...". Tick the checkbox in front of that option. + ![Check the disable option](images/vscode_disable_aifeatures.png) + +Later, if you want **to reenable** the AI features, you can follow the same instructions to untick the checkbox. + + ## Command line tools diff --git a/windows.es.md b/windows.es.md index 516c94ab..f123613b 100644 --- a/windows.es.md +++ b/windows.es.md @@ -509,6 +509,25 @@ Aquí está la lista de las extensiones que estás instalando: - [SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite) +### Funciones de IA en VS Code + +VS Code incluye muchas y potentes **funciones de IA**, que son una gran herramienta una vez que ya sabes programar. + +Dicho esto, depender de la IA demasiado pronto puede ocultar conceptos importantes y dificultar la comprensión de la depuración. Una vez que estés cómodo con los fundamentos, sabrás cuándo y cómo usar la IA de forma eficaz —sin dejar que haga el trabajo por ti. + +Para el inicio del bootcamp, desactivaremos estas funciones. Llegado el momento apropiado en el curso, las volveremos a habilitar para que puedas utilizarlas bien. + +En **VS Code**: + +1. Abramos la "Paleta de comandos" de VS Code: escribe `Ctrl-Shift-P` (Windows / Linux) o `Cmd-Shift-P` (macOS). +1. Se abrirá la Paleta de comandos: una pequeña caja de texto en la parte superior de la pantalla. Empieza a escribir `aifeatures` hasta que veas "Chat: Learn How to Hide AI features". Haz clic en ella. + ![The Command Palette at the top of the screen](images/vscode_find_aifeatures.png) +1. Esto abrirá la configuración y te mostrará la opción "Disable and hide built-in AI features ...". Marca la casilla delante de esa opción. + ![Check the disable option](images/vscode_disable_aifeatures.png) + +Más adelante, si quieres **volver a habilitar** las funciones de IA, puedes seguir las mismas instrucciones para desmarcar la casilla. + + ### Configuración de Live Share [Visual Studio Live Share](https://visualstudio.microsoft.com/services/live-share/) es una extensión de VS Code que te permite compartir el código en tu editor de texto para debugging y pair-programming: ¡Instalémoslo! diff --git a/windows.fr.md b/windows.fr.md index 82e67c7b..2113a752 100644 --- a/windows.fr.md +++ b/windows.fr.md @@ -510,6 +510,25 @@ Voici la liste des extensions que tu es en train d'installer : - [SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite) +### Fonctionnalités IA de VS Code + +VS Code inclut de nombreuses **fonctionnalités d'IA** puissantes, qui sont un excellent outil une fois que vous savez déjà coder. + +Cela dit, s'appuyer sur l'IA trop tôt peut masquer des concepts importants et rendre le débogage plus difficile à comprendre. Une fois à l'aise avec les fondamentaux, vous saurez quand et comment utiliser l'IA efficacement — sans lui laisser faire la réflexion à votre place. + +Pour le début du bootcamp, nous allons désactiver ces fonctionnalités. Au bon moment du cours, nous les réactiverons afin que vous puissiez les utiliser à bon escient. + +Dans **VS Code** : + +1. Ouvrez la "Palette de commandes" de VS Code : tapez `Ctrl-Shift-P` (Windows / Linux) ou `Cmd-Shift-P` (macOS). +1. La Palette de commandes s'ouvrira : une petite zone de texte en haut de l'écran. Commencez à taper `aifeatures` jusqu'à voir "Chat: Learn How to Hide AI features". Cliquez dessus. + ![La palette de commandes en haut de l'écran](images/vscode_find_aifeatures.png) +1. Cela ouvrira les paramètres et affichera l'option "Disable and hide built-in AI features ...". Cochez la case devant cette option. + ![Cochez l'option de désactivation](images/vscode_disable_aifeatures.png) + +Plus tard, si vous souhaitez **réactiver** les fonctionnalités d'IA, vous pouvez suivre les mêmes instructions pour décocher la case. + + ### Configuration de Live Share [Visual Studio Live Share](https://visualstudio.microsoft.com/services/live-share/) est une extension de VS Code, qui te permet de partager du code dans ton éditeur de texte pour débugger et faire de la programmation en binôme. Configurons-le ! diff --git a/windows.md b/windows.md index c11a8cee..cab913f3 100644 --- a/windows.md +++ b/windows.md @@ -518,6 +518,25 @@ Here is a list of the extensions you are installing: - [SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite) +### VS Code AI Features + +VS Code includes many powerful **AI features**, which are a great tool once you already know how to code. + +That said, relying on AI too early can hide important concepts and make debugging harder to understand. Once you’re comfortable with the fundamentals, you’ll know when and how to use AI effectively — without letting it do the thinking for you. + +For the start of the bootcamp, we’ll disable these features. At the right point in the course, we’ll reenable them so you can put them to good use. + +In **VS Code**: + +1. Let's open the VS Code "Command **P**alette": type `Ctrl-Shift-P` (Windows / Linux) or `Cmd-Shift-P` (macOS). +1. This will open the Command Palette: a small text box at the top of your screen. Start typing `aifeatures` until you see "Chat: Learn How to Hide AI features". Click on it. + ![The Command Palette at the top of the screen](images/vscode_find_aifeatures.png) +1. This will open the settings, and will show you the option "Disable and hide built-in AI features ...". Tick the checkbox in front of that option. + ![Check the disable option](images/vscode_disable_aifeatures.png) + +Later, if you want **to reenable** the AI features, you can follow the same instructions to untick the checkbox. + + ### Live Share configuration [Visual Studio Live Share](https://visualstudio.microsoft.com/services/live-share/) is a VS Code extension which allows you to share the code in your text editor for debugging and pair-programming: let's set it up! diff --git a/windows.pt.md b/windows.pt.md index dfe15f46..c81810b1 100644 --- a/windows.pt.md +++ b/windows.pt.md @@ -517,6 +517,25 @@ Aqui está uma lista das extensões que você está instalando: - [SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite) +### Recursos de IA no VS Code + +O VS Code inclui muitos **recursos poderosos de IA**, que são ótimas ferramentas quando você já sabe programar. + +Dito isso, confiar na IA muito cedo pode ocultar conceitos importantes e dificultar o entendimento da depuração. Quando você estiver confortável com os fundamentos, saberá quando e como usar a IA de forma eficaz — sem deixar que ela faça o raciocínio por você. + +Para o início do bootcamp, vamos desativar esses recursos. No momento certo do curso, os reativaremos para que você possa usá-los bem. + +Em **VS Code**: + +1. Vamos abrir a "Paleta de Comandos" do VS Code: digite `Ctrl-Shift-P` (Windows / Linux) ou `Cmd-Shift-P` (macOS). +1. Isso abrirá a Paleta de Comandos: uma pequena caixa de texto no topo da tela. Comece a digitar `aifeatures` até ver "Chat: Learn How to Hide AI features". Clique nela. + ![A Paleta de Comandos no topo da tela](images/vscode_find_aifeatures.png) +1. Isso abrirá as configurações e mostrará a opção "Disable and hide built-in AI features ...". Marque a caixa de seleção à frente dessa opção. + ![Marcar a opção para desativar](images/vscode_disable_aifeatures.png) + +Mais tarde, se quiser **reativar** os recursos de IA, você pode seguir as mesmas instruções para desmarcar a caixa. + + ### Configuração do Live Share [Visual Studio Live Share](https://visualstudio.microsoft.com/services/live-share/) é uma extensão do VS Code que permite compartilhar o código em seu editor de texto para depuração e programação em pares: vamos configurá-lo acima! From b869e4401175461e16f40a7138086a2ab47319cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A9lo=C3=AFse=20Bertoux?= <157502044+helober2@users.noreply.github.com> Date: Wed, 14 Jan 2026 10:09:57 +0100 Subject: [PATCH 38/47] Changed 2 confusing instructions (#503) --- windows.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/windows.md b/windows.md index cab913f3..f1e087a7 100644 --- a/windows.md +++ b/windows.md @@ -453,13 +453,13 @@ It should open the terminal settings: You may see an orange circle rather than a penguin as the logo for Ubuntu. -We have circled in red the part you need to change: +We have circled in red the part you need to add: ![Windows Terminal JSON settings file](images/windows_terminal_settings_json.png) First, let's ask Ubuntu to start directly inside your Ubuntu Home Directory instead of the Windows one: -- Locate the entry with both `"name": "Ubuntu",` and `"hidden": false,` -- Add the following line after it: + +Place the following command line inside the { } block that contains "name": "Ubuntu" (like in the screenshot): ```bash "commandline": "wsl.exe ~", From ec5a6dd0c52da658effba062618f9fca25462ab5 Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 14 Jan 2026 09:10:06 +0000 Subject: [PATCH 39/47] setup guides generated --- windows.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/windows.md b/windows.md index f1e087a7..cab913f3 100644 --- a/windows.md +++ b/windows.md @@ -453,13 +453,13 @@ It should open the terminal settings: You may see an orange circle rather than a penguin as the logo for Ubuntu. -We have circled in red the part you need to add: +We have circled in red the part you need to change: ![Windows Terminal JSON settings file](images/windows_terminal_settings_json.png) First, let's ask Ubuntu to start directly inside your Ubuntu Home Directory instead of the Windows one: - -Place the following command line inside the { } block that contains "name": "Ubuntu" (like in the screenshot): +- Locate the entry with both `"name": "Ubuntu",` and `"hidden": false,` +- Add the following line after it: ```bash "commandline": "wsl.exe ~", From b34a26a14a025e467667f452650b3feb65807449 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A9lo=C3=AFse=20Bertoux?= <157502044+helober2@users.noreply.github.com> Date: Wed, 14 Jan 2026 10:14:08 +0100 Subject: [PATCH 40/47] Changed 2 confusing instructions --- windows.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/windows.md b/windows.md index cab913f3..3a21336f 100644 --- a/windows.md +++ b/windows.md @@ -453,13 +453,13 @@ It should open the terminal settings: You may see an orange circle rather than a penguin as the logo for Ubuntu. -We have circled in red the part you need to change: +We have circled in red the part you need to add: ![Windows Terminal JSON settings file](images/windows_terminal_settings_json.png) -First, let's ask Ubuntu to start directly inside your Ubuntu Home Directory instead of the Windows one: -- Locate the entry with both `"name": "Ubuntu",` and `"hidden": false,` -- Add the following line after it: +First, let's ask Ubuntu to start directly inside your Ubuntu Home Directory instead of the Windows one. + +- Place the following line inside the { } block that contains "name": "Ubuntu" (like in the screenshot): ```bash "commandline": "wsl.exe ~", From 6fd3f1cae793f8e1365dce2fc81ce0e76fc97a17 Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 14 Jan 2026 09:14:18 +0000 Subject: [PATCH 41/47] setup guides generated --- windows.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/windows.md b/windows.md index 3a21336f..cab913f3 100644 --- a/windows.md +++ b/windows.md @@ -453,13 +453,13 @@ It should open the terminal settings: You may see an orange circle rather than a penguin as the logo for Ubuntu. -We have circled in red the part you need to add: +We have circled in red the part you need to change: ![Windows Terminal JSON settings file](images/windows_terminal_settings_json.png) -First, let's ask Ubuntu to start directly inside your Ubuntu Home Directory instead of the Windows one. - -- Place the following line inside the { } block that contains "name": "Ubuntu" (like in the screenshot): +First, let's ask Ubuntu to start directly inside your Ubuntu Home Directory instead of the Windows one: +- Locate the entry with both `"name": "Ubuntu",` and `"hidden": false,` +- Add the following line after it: ```bash "commandline": "wsl.exe ~", From b3003132739c903d3accc46febd0606fe28576cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A9lo=C3=AFse=20Bertoux?= <157502044+helober2@users.noreply.github.com> Date: Wed, 14 Jan 2026 11:45:15 +0100 Subject: [PATCH 42/47] Changed 2 confusing instructions (#505) --- _partials/windows_terminal.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/_partials/windows_terminal.md b/_partials/windows_terminal.md index 7a94ee07..ccb2138f 100644 --- a/_partials/windows_terminal.md +++ b/_partials/windows_terminal.md @@ -52,7 +52,7 @@ It should open the terminal settings: You may see an orange circle rather than a penguin as the logo for Ubuntu. -We have circled in red the part you need to change: +We have circled in red the part you need to add: ![Windows Terminal JSON settings file](images/windows_terminal_settings_json.png) @@ -66,9 +66,9 @@ First, let's ask Ubuntu to start directly inside your Ubuntu Home Directory inst :warning: Do not forget the comma at the end of the line! -Then, let's disable warnings for copy-pasting commands between Windows and Ubuntu: -- Locate the line `"defaultProfile": "{2c4de342-...}"` -- Add the following line after it: +Then, let's disable warnings for copy-pasting commands between Windows and Ubuntu. + +Place this line inside the { } block that contains "name": "Ubuntu" (like in the screenshot): ```bash "warning.multiLinePaste": false, From 167bd97791614b5ab3a42a9079ecb91b5b35f8a2 Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 14 Jan 2026 10:45:25 +0000 Subject: [PATCH 43/47] setup guides generated --- windows.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/windows.md b/windows.md index cab913f3..ff1c1ed5 100644 --- a/windows.md +++ b/windows.md @@ -453,7 +453,7 @@ It should open the terminal settings: You may see an orange circle rather than a penguin as the logo for Ubuntu. -We have circled in red the part you need to change: +We have circled in red the part you need to add: ![Windows Terminal JSON settings file](images/windows_terminal_settings_json.png) @@ -467,9 +467,9 @@ First, let's ask Ubuntu to start directly inside your Ubuntu Home Directory inst :warning: Do not forget the comma at the end of the line! -Then, let's disable warnings for copy-pasting commands between Windows and Ubuntu: -- Locate the line `"defaultProfile": "{2c4de342-...}"` -- Add the following line after it: +Then, let's disable warnings for copy-pasting commands between Windows and Ubuntu. + +Place this line inside the { } block that contains "name": "Ubuntu" (like in the screenshot): ```bash "warning.multiLinePaste": false, From cb5288cef2fe59dc661fd610e6d771c4732d3686 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A9lo=C3=AFse=20Bertoux?= <157502044+helober2@users.noreply.github.com> Date: Wed, 14 Jan 2026 11:51:25 +0100 Subject: [PATCH 44/47] Changed 2 confusing instructions (#506) * Changed 2 confusing instructions * Update windows_terminal.md --- _partials/windows_terminal.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/_partials/windows_terminal.md b/_partials/windows_terminal.md index ccb2138f..f4d16ae8 100644 --- a/_partials/windows_terminal.md +++ b/_partials/windows_terminal.md @@ -56,9 +56,9 @@ We have circled in red the part you need to add: ![Windows Terminal JSON settings file](images/windows_terminal_settings_json.png) -First, let's ask Ubuntu to start directly inside your Ubuntu Home Directory instead of the Windows one: -- Locate the entry with both `"name": "Ubuntu",` and `"hidden": false,` -- Add the following line after it: +First, let's ask Ubuntu to start directly inside your Ubuntu Home Directory instead of the Windows one. + +- Place this line inside the { } block that contains "name": "Ubuntu" (like in the screenshot): ```bash "commandline": "wsl.exe ~", @@ -66,9 +66,10 @@ First, let's ask Ubuntu to start directly inside your Ubuntu Home Directory inst :warning: Do not forget the comma at the end of the line! -Then, let's disable warnings for copy-pasting commands between Windows and Ubuntu. +Then, let's disable warnings for copy-pasting commands between Windows and Ubuntu: -Place this line inside the { } block that contains "name": "Ubuntu" (like in the screenshot): +- Locate the line "defaultProfile": "{2c4de342-...}" +- Add the following line after it: ```bash "warning.multiLinePaste": false, From 31e7b67ff9ef9cc13ec404471b0e6656a9b73567 Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 14 Jan 2026 10:51:33 +0000 Subject: [PATCH 45/47] setup guides generated --- windows.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/windows.md b/windows.md index ff1c1ed5..83881236 100644 --- a/windows.md +++ b/windows.md @@ -457,9 +457,9 @@ We have circled in red the part you need to add: ![Windows Terminal JSON settings file](images/windows_terminal_settings_json.png) -First, let's ask Ubuntu to start directly inside your Ubuntu Home Directory instead of the Windows one: -- Locate the entry with both `"name": "Ubuntu",` and `"hidden": false,` -- Add the following line after it: +First, let's ask Ubuntu to start directly inside your Ubuntu Home Directory instead of the Windows one. + +- Place this line inside the { } block that contains "name": "Ubuntu" (like in the screenshot): ```bash "commandline": "wsl.exe ~", @@ -467,9 +467,10 @@ First, let's ask Ubuntu to start directly inside your Ubuntu Home Directory inst :warning: Do not forget the comma at the end of the line! -Then, let's disable warnings for copy-pasting commands between Windows and Ubuntu. +Then, let's disable warnings for copy-pasting commands between Windows and Ubuntu: -Place this line inside the { } block that contains "name": "Ubuntu" (like in the screenshot): +- Locate the line "defaultProfile": "{2c4de342-...}" +- Add the following line after it: ```bash "warning.multiLinePaste": false, From a2b3645f95db0e2d9929dc5f21953c75264ddb9f Mon Sep 17 00:00:00 2001 From: Alexander Dubovoy <39504104+ajdubovoy@users.noreply.github.com> Date: Fri, 16 Jan 2026 22:26:48 +0900 Subject: [PATCH 46/47] [DNM] Upgrade to rails 8.1.1 (#499) * Upgrade to rails 8.1.1 * Upgrade sqlite3 --- build.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.rb b/build.rb index 08882fe9..74e5ead1 100755 --- a/build.rb +++ b/build.rb @@ -4,7 +4,7 @@ 'RUBY_SETUP_VERSION' => "3.3.5", 'NVM_VERSION' => "0.39.1", 'NODE_VERSION' => "20.17.0", - 'GEMS' => "colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 ruby-lsp" + 'GEMS' => "colored faker http pry-byebug rake rails:8.1.1 rest-client rspec rubocop-performance sqlite3:2.8.1 activerecord:8.1.1 ruby-lsp" } MACOS = %w[ From 674ae5a5d7589936c8c8c98ef57b73326c5d0fb5 Mon Sep 17 00:00:00 2001 From: github-actions Date: Fri, 16 Jan 2026 13:26:58 +0000 Subject: [PATCH 47/47] setup guides generated --- macos.cn.md | 2 +- macos.es.md | 2 +- macos.fr.md | 2 +- macos.md | 2 +- macos.pt.md | 2 +- ubuntu.cn.md | 2 +- ubuntu.es.md | 2 +- ubuntu.fr.md | 2 +- ubuntu.md | 2 +- ubuntu.pt.md | 2 +- windows.cn.md | 2 +- windows.es.md | 2 +- windows.fr.md | 2 +- windows.md | 2 +- windows.pt.md | 2 +- 15 files changed, 15 insertions(+), 15 deletions(-) diff --git a/macos.cn.md b/macos.cn.md index 5e451285..672867c2 100644 --- a/macos.cn.md +++ b/macos.cn.md @@ -420,7 +420,7 @@ gem update bundler 在你的终端里,复制粘贴下面的指令: ```bash -gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 ruby-lsp +gem install colored faker http pry-byebug rake rails:8.1.1 rest-client rspec rubocop-performance sqlite3:2.8.1 activerecord:8.1.1 ruby-lsp ``` :heavy_check_mark: 如果你看到 `xx gems installed`,那么一切正常 :+1: diff --git a/macos.es.md b/macos.es.md index 4dcd0e2b..d09d2c92 100644 --- a/macos.es.md +++ b/macos.es.md @@ -448,7 +448,7 @@ gem update bundler En tu terminal, copia y pega el siguiente comando: ```bash -gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 ruby-lsp +gem install colored faker http pry-byebug rake rails:8.1.1 rest-client rspec rubocop-performance sqlite3:2.8.1 activerecord:8.1.1 ruby-lsp ``` :heavy_check_mark: Si obtienes `xx gems installed`, entonces todo está bien :+1: diff --git a/macos.fr.md b/macos.fr.md index 9f716260..47e52eb8 100644 --- a/macos.fr.md +++ b/macos.fr.md @@ -445,7 +445,7 @@ gem update bundler Copie-colle la commande suivante dans ton terminal : ```bash -gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 ruby-lsp +gem install colored faker http pry-byebug rake rails:8.1.1 rest-client rspec rubocop-performance sqlite3:2.8.1 activerecord:8.1.1 ruby-lsp ``` :heavy_check_mark: Si tu vois apparaître `xx gems installed`, c’est bon :+1: diff --git a/macos.md b/macos.md index df73acf9..9180f04f 100644 --- a/macos.md +++ b/macos.md @@ -487,7 +487,7 @@ gem update bundler In your terminal, copy-paste the following command: ```bash -gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 ruby-lsp +gem install colored faker http pry-byebug rake rails:8.1.1 rest-client rspec rubocop-performance sqlite3:2.8.1 activerecord:8.1.1 ruby-lsp ``` :heavy_check_mark: If you get `xx gems installed`, then all good :+1: diff --git a/macos.pt.md b/macos.pt.md index 2589db86..8f399c5d 100644 --- a/macos.pt.md +++ b/macos.pt.md @@ -482,7 +482,7 @@ No mundo Ruby, chamamos bibliotecas externas de `gems`: são pedaços de código No seu terminal, copie e cole o seguinte comando: ```bash -gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 ruby-lsp +gem install colored faker http pry-byebug rake rails:8.1.1 rest-client rspec rubocop-performance sqlite3:2.8.1 activerecord:8.1.1 ruby-lsp ``` :heavy_check_mark: Se você tiver `xx gems installed`, então tudo bem :+1: diff --git a/ubuntu.cn.md b/ubuntu.cn.md index f8fb513f..3b71ecca 100644 --- a/ubuntu.cn.md +++ b/ubuntu.cn.md @@ -400,7 +400,7 @@ gem update bundler 在你的终端里,复制粘贴下面的指令: ```bash -gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 ruby-lsp +gem install colored faker http pry-byebug rake rails:8.1.1 rest-client rspec rubocop-performance sqlite3:2.8.1 activerecord:8.1.1 ruby-lsp ``` :heavy_check_mark: 如果你看到 `xx gems installed`,那么一切正常 :+1: diff --git a/ubuntu.es.md b/ubuntu.es.md index a57f5bc5..d59541b5 100644 --- a/ubuntu.es.md +++ b/ubuntu.es.md @@ -456,7 +456,7 @@ gem update bundler En tu terminal, copia y pega el siguiente comando: ```bash -gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 ruby-lsp +gem install colored faker http pry-byebug rake rails:8.1.1 rest-client rspec rubocop-performance sqlite3:2.8.1 activerecord:8.1.1 ruby-lsp ``` :heavy_check_mark: Si obtienes `xx gems installed`, entonces todo está bien :+1: diff --git a/ubuntu.fr.md b/ubuntu.fr.md index 1ed1f7fd..5b3eb7b5 100644 --- a/ubuntu.fr.md +++ b/ubuntu.fr.md @@ -456,7 +456,7 @@ gem update bundler Copie-colle la commande suivante dans ton terminal : ```bash -gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 ruby-lsp +gem install colored faker http pry-byebug rake rails:8.1.1 rest-client rspec rubocop-performance sqlite3:2.8.1 activerecord:8.1.1 ruby-lsp ``` :heavy_check_mark: Si tu vois apparaître `xx gems installed`, c’est bon :+1: diff --git a/ubuntu.md b/ubuntu.md index 8a128321..73460787 100644 --- a/ubuntu.md +++ b/ubuntu.md @@ -495,7 +495,7 @@ gem update bundler In your terminal, copy-paste the following command: ```bash -gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 ruby-lsp +gem install colored faker http pry-byebug rake rails:8.1.1 rest-client rspec rubocop-performance sqlite3:2.8.1 activerecord:8.1.1 ruby-lsp ``` :heavy_check_mark: If you get `xx gems installed`, then all good :+1: diff --git a/ubuntu.pt.md b/ubuntu.pt.md index 27da5eec..1b5f82db 100644 --- a/ubuntu.pt.md +++ b/ubuntu.pt.md @@ -490,7 +490,7 @@ No mundo Ruby, chamamos bibliotecas externas de `gems`: são pedaços de código No seu terminal, copie e cole o seguinte comando: ```bash -gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 ruby-lsp +gem install colored faker http pry-byebug rake rails:8.1.1 rest-client rspec rubocop-performance sqlite3:2.8.1 activerecord:8.1.1 ruby-lsp ``` :heavy_check_mark: Se você tiver `xx gems installed`, então tudo bem :+1: diff --git a/windows.cn.md b/windows.cn.md index 721a3aa8..660cb3c2 100644 --- a/windows.cn.md +++ b/windows.cn.md @@ -934,7 +934,7 @@ gem update bundler 在你的终端里,复制粘贴下面的指令: ```bash -gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 ruby-lsp +gem install colored faker http pry-byebug rake rails:8.1.1 rest-client rspec rubocop-performance sqlite3:2.8.1 activerecord:8.1.1 ruby-lsp ``` :heavy_check_mark: 如果你看到 `xx gems installed`,那么一切正常 :+1: diff --git a/windows.es.md b/windows.es.md index f123613b..31e836ff 100644 --- a/windows.es.md +++ b/windows.es.md @@ -967,7 +967,7 @@ gem update bundler En tu terminal, copia y pega el siguiente comando: ```bash -gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 ruby-lsp +gem install colored faker http pry-byebug rake rails:8.1.1 rest-client rspec rubocop-performance sqlite3:2.8.1 activerecord:8.1.1 ruby-lsp ``` :heavy_check_mark: Si obtienes `xx gems installed`, entonces todo está bien :+1: diff --git a/windows.fr.md b/windows.fr.md index 2113a752..fb652820 100644 --- a/windows.fr.md +++ b/windows.fr.md @@ -969,7 +969,7 @@ gem update bundler Copie-colle la commande suivante dans ton terminal : ```bash -gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 ruby-lsp +gem install colored faker http pry-byebug rake rails:8.1.1 rest-client rspec rubocop-performance sqlite3:2.8.1 activerecord:8.1.1 ruby-lsp ``` :heavy_check_mark: Si tu vois apparaître `xx gems installed`, c’est bon :+1: diff --git a/windows.md b/windows.md index 83881236..2c68c6cb 100644 --- a/windows.md +++ b/windows.md @@ -1027,7 +1027,7 @@ gem update bundler In your terminal, copy-paste the following command: ```bash -gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 ruby-lsp +gem install colored faker http pry-byebug rake rails:8.1.1 rest-client rspec rubocop-performance sqlite3:2.8.1 activerecord:8.1.1 ruby-lsp ``` :heavy_check_mark: If you get `xx gems installed`, then all good :+1: diff --git a/windows.pt.md b/windows.pt.md index c81810b1..277fecaa 100644 --- a/windows.pt.md +++ b/windows.pt.md @@ -1019,7 +1019,7 @@ No mundo Ruby, chamamos bibliotecas externas de `gems`: são pedaços de código No seu terminal, copie e cole o seguinte comando: ```bash -gem install colored faker http pry-byebug rake rails:7.1.3.4 rest-client rspec rubocop-performance sqlite3:1.7.3 activerecord:7.1.3.2 ruby-lsp +gem install colored faker http pry-byebug rake rails:8.1.1 rest-client rspec rubocop-performance sqlite3:2.8.1 activerecord:8.1.1 ruby-lsp ``` :heavy_check_mark: Se você tiver `xx gems installed`, então tudo bem :+1: